From d2f00cb3c119b335d741e0de725a443e5dbf9ecc Mon Sep 17 00:00:00 2001 From: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Date: Tue, 29 Jul 2025 12:07:27 -0700 Subject: [PATCH 001/120] openmpi: Fix style issue not caught in #357 (#857) Signed-off-by: tldahlgren --- repos/spack_repo/builtin/packages/openmpi/package.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/openmpi/package.py b/repos/spack_repo/builtin/packages/openmpi/package.py index 1049039daa6..5ced8d4f4af 100644 --- a/repos/spack_repo/builtin/packages/openmpi/package.py +++ b/repos/spack_repo/builtin/packages/openmpi/package.py @@ -635,7 +635,12 @@ class Openmpi(AutotoolsPackage, CudaPackage, ROCmPackage): '-Wl,-flat_namespace'.""", ) - variant("cray-xpmem", default=False, when="fabrics=xpmem", description="use cray-xpmem instead of xpmem configure flag") + variant( + "cray-xpmem", + default=False, + when="fabrics=xpmem", + description="use cray-xpmem instead of xpmem configure flag", + ) # Patch to allow two-level namespace on a MacOS platform when building # openmpi. Unfortuntately, the openmpi configure command has flat namespace From 838eb4ee97411509f10401a36ad7d858c3d9d308 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Tue, 29 Jul 2025 21:58:56 +0200 Subject: [PATCH 002/120] Fix style issues in `develop` (#856) Signed-off-by: Massimiliano Culpo --- repos/spack_repo/builtin/packages/eccodes/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/eccodes/package.py b/repos/spack_repo/builtin/packages/eccodes/package.py index 795c5b78633..cd3cd6df7aa 100644 --- a/repos/spack_repo/builtin/packages/eccodes/package.py +++ b/repos/spack_repo/builtin/packages/eccodes/package.py @@ -52,7 +52,7 @@ class Eccodes(CMakePackage): version("develop", branch="develop") version("2.41.0", sha256="a1467842e11ed7f62a2f5cc1982e04eec62398f4962e6ba03ace7646f32cf270") - version("2.40.0", sha256="f58d5d7390fce86c62b26d76b9bc3c4d7d9a6cf2e5f8145d1d598089195e51ff") + version("2.40.0", sha256="f58d5d7390fce86c62b26d76b9bc3c4d7d9a6cf2e5f8145d1d598089195e51ff") version("2.38.0", sha256="96a21fbe8ca3aa4c31bb71bbd378b7fd130cbc0f7a477567d70e66a000ff68d9") version("2.34.0", sha256="3cd208c8ddad132789662cf8f67a9405514bfefcacac403c0d8c84507f303aba") version("2.33.0", sha256="bdcec8ce63654ec6803400c507f01220a9aa403a45fa6b5bdff7fdcc44fd7daf") From 9fdfa42266951f8c44356f878cc9d74bc883d6ae Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Tue, 29 Jul 2025 15:25:24 -0500 Subject: [PATCH 003/120] xrootd: conflict with cxxstd=17,20 when ~client_only resolved for 5.7 and later (#846) --- .../spack_repo/builtin/packages/xrootd/package.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/repos/spack_repo/builtin/packages/xrootd/package.py b/repos/spack_repo/builtin/packages/xrootd/package.py index 101393f4006..f8cc150403b 100644 --- a/repos/spack_repo/builtin/packages/xrootd/package.py +++ b/repos/spack_repo/builtin/packages/xrootd/package.py @@ -126,14 +126,16 @@ class Xrootd(CMakePackage): ) conflicts("cxxstd=98", when="@4.7.0:") - # C++ standard is not honored without - # https://github.com/xrootd/xrootd/pull/1929 - # Related: C++>14 causes compilation errors with ~client_only. See - # also https://github.com/xrootd/xrootd/pull/1933. + + # Before 5.7, the C++ standard was not honored. + # See https://github.com/xrootd/xrootd/pull/1929 + # and https://github.com/xrootd/xrootd/commit/9ef3a2a00b52105883613d2adb6d46a8409b2249 + # Related: C++>14 causes compilation errors with ~client_only. + # See https://github.com/xrootd/xrootd/pull/1933. conflicts("cxxstd=17", when="@5.0:5.5.2") conflicts("cxxstd=20", when="@5.0:5.5.2") - conflicts("cxxstd=17", when="@5 ~client_only") - conflicts("cxxstd=20", when="@5 ~client_only") + conflicts("cxxstd=17", when="@5:5.6 ~client_only") + conflicts("cxxstd=20", when="@5:5.6 ~client_only") conflicts("^scitokens-cpp", when="@:5.5.2 +client_only") depends_on("c", type="build") # generated From 4da151886b740089b1895359b7321ec230b39e4d Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Tue, 29 Jul 2025 22:52:24 +0200 Subject: [PATCH 004/120] Bump spack version (#839) --- .ci/env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/env b/.ci/env index 7fad55638dc..d1a22004e9e 100644 --- a/.ci/env +++ b/.ci/env @@ -1 +1 @@ -SPACK_CHECKOUT_VERSION=8bfe963d9b4f1f05fa49341f0df760125be1b891 +SPACK_CHECKOUT_VERSION=6dda2cab5d2c9edc1dee152a9350a44c5c3605df From 58b6a1d8bd50cf445699de91f8f1f7f8b3724161 Mon Sep 17 00:00:00 2001 From: "Ali K. Hamze" <6139089+alikhamze@users.noreply.github.com> Date: Tue, 29 Jul 2025 17:16:54 -0400 Subject: [PATCH 005/120] py_ase: new versions and maintainer (#849) * Add versions 3.24.0 and 3.25.0 * Add myself as a maintainer. * Switch to using the `when` context manager for dependencies and update dependecy versions.. Where the pyproject.toml or setup.py did not provide version constraints, I kept the ones from the older spack package. * Remove accidentally duplicated dependencies. * Update homepage and pypi version. * Simplify version constraints. --- .../builtin/packages/py_ase/package.py | 63 ++++++++++++++----- 1 file changed, 49 insertions(+), 14 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_ase/package.py b/repos/spack_repo/builtin/packages/py_ase/package.py index 914085ff237..2e09beab528 100644 --- a/repos/spack_repo/builtin/packages/py_ase/package.py +++ b/repos/spack_repo/builtin/packages/py_ase/package.py @@ -12,11 +12,15 @@ class PyAse(PythonPackage): and Python modules for setting up, manipulating, running, visualizing and analyzing atomistic simulations.""" - homepage = "https://wiki.fysik.dtu.dk/ase/" - pypi = "ase/ase-3.13.0.tar.gz" + homepage = "https://ase-lib.org/" + pypi = "ase/ase-3.25.0.tar.gz" license("LGPL-2.1-or-later") + maintainers("alikhamze") + + version("3.25.0", sha256="374cf8ca9fe588f05d6e856da3c9c17ef262dc968027b231d449334140c962c2") + version("3.24.0", sha256="9acc93d6daaf48cd27b844c56f8bf49428b9db0542faa3cc30d9d5b8e1842195") version("3.23.0", sha256="91a2aa31d89bd90b0efdfe4a7e84264f32828b2abfc9f38e65e041ad76fec8ae") version("3.21.1", sha256="78b01d88529d5f604e76bc64be102d48f058ca50faad72ac740d717545711c7b") version("3.21.0", sha256="2c561e9b767cf16fc8ce198ea9326d77c6b67d33a85f44b68455e23466a64608") @@ -31,15 +35,46 @@ class PyAse(PythonPackage): version("3.15.0", sha256="5e22d961b1311ef4ba2d83527f7cc7448abac8cf9bddd1593bee548459263fe8") version("3.13.0", sha256="c4046c50debac28415b36616d79aa28e68ae2cd03c013c2aed6a1e3d465c0ee1") - depends_on("python@2.6:", type=("build", "run"), when="@:3.15.0") - depends_on("python@3.5:", type=("build", "run"), when="@3.18.0:") - depends_on("python@3.6:", type=("build", "run"), when="@3.20.0:") - depends_on("python@3.8:", type=("build", "run"), when="@3.23.0:") - depends_on("py-numpy@1.11.3:", type=("build", "run")) - depends_on("py-numpy@1.18.5:", type=("build", "run"), when="@3.23.0:") - depends_on("py-matplotlib@2.0.0:", type=("build", "run")) - depends_on("py-matplotlib@3.3.4:", type=("build", "run"), when="@3.23.0:") - depends_on("py-scipy@0.18.1:", type=("build", "run")) - depends_on("py-scipy@1.6.0:", type=("build", "run"), when="@3.23.0:") - depends_on("py-flask", type=("build", "run"), when="@:3.18.0") - depends_on("py-setuptools", type="build") + with when("@3.24.0:"): + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-numpy@1.19.5:", type=("build", "run")) + depends_on("py-scipy@1.6:", type=("build", "run")) + depends_on("py-matplotlib@3.3.4:", type=("build", "run")) + depends_on("py-setuptools@61:", type="build") + + with when("@3.23.0"): + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-numpy@1.18.5:", type=("build", "run")) + depends_on("py-scipy@1.6:", type=("build", "run")) + depends_on("py-matplotlib@3.3.4:", type=("build", "run")) + depends_on("py-setuptools@61:", type="build") + + with when("@3.21"): + depends_on("python@3.6:", type=("build", "run")) + depends_on("py-numpy@1.18.5:", type=("build", "run")) + depends_on("py-scipy@1.6:", type=("build", "run")) + depends_on("py-matplotlib@3.3.4:", type=("build", "run")) + depends_on("py-setuptools", type="build") + + with when("@3.20.0"): + depends_on("python@3.6:", type=("build", "run")) + depends_on("py-numpy@1.11.3:", type=("build", "run")) + depends_on("py-scipy@0.18.1:", type=("build", "run")) + depends_on("py-matplotlib@2:", type=("build", "run")) + depends_on("py-setuptools", type="build") + + with when("@3.18:3.19.3"): + depends_on("python@3.5:", type=("build", "run")) + depends_on("py-numpy@1.11.3:", type=("build", "run")) + depends_on("py-scipy@0.18.1:", type=("build", "run")) + depends_on("py-matplotlib@2:", type=("build", "run")) + depends_on("py-flask", type=("build", "run"), when="@:3.18.0") + depends_on("py-setuptools", type="build") + + with when("@3.13:3.15"): + depends_on("python@3.4:", type=("build", "run")) + depends_on("py-numpy@1.11.3:", type=("build", "run")) + depends_on("py-scipy@0.18.1:", type=("build", "run")) + depends_on("py-matplotlib@2:", type=("build", "run")) + depends_on("py-flask", type=("build", "run")) + depends_on("py-setuptools", type="build") From 81ad98d6c4aff8455663b4314a0001e7e38c9268 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Wed, 30 Jul 2025 08:26:44 +0200 Subject: [PATCH 006/120] gha: test source canonicalization (#783) Test that the canonicalized sources of builtin's package.py files are identical for all supported Spack versions --- .github/workflows/bin/canonicalize.py | 148 ++++++++++++++++++++++++++ .github/workflows/prechecks.yml | 19 ++++ 2 files changed, 167 insertions(+) create mode 100755 .github/workflows/bin/canonicalize.py diff --git a/.github/workflows/bin/canonicalize.py b/.github/workflows/bin/canonicalize.py new file mode 100755 index 00000000000..8ca6106a10a --- /dev/null +++ b/.github/workflows/bin/canonicalize.py @@ -0,0 +1,148 @@ +#!/usr/bin/env python3 +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +import argparse +import ast +import os +import subprocess +import sys +from itertools import product +from typing import List + + +def run_git_command(*args: str, dir: str) -> None: + """Run a git command in the output directory.""" + subprocess.run( + [ + "git", + "-c", + "user.email=example@example.com", + "-c", + "user.name=Example", + "-c", + "init.defaultBranch=main", + "-c", + "color.ui=always", + "-C", + dir, + *args, + ], + check=True, + stdout=sys.stdout, + stderr=sys.stderr, + ) + + +def run(root: str, output_dir: str) -> None: + """Recurse over a directory and canonicalize all Python files.""" + from spack.util.package_hash import RemoveDocstrings, unparse + + count = 0 + stack = [root] + + while stack: + current = stack.pop() + for entry in os.scandir(current): + if entry.is_dir(follow_symlinks=False): + stack.append(entry.path) + elif entry.is_file(follow_symlinks=False) and entry.name.endswith(".py"): + try: + with open(entry.path, "r") as f: + src = f.read() + except OSError: + continue + + canonical_dir = os.path.join(output_dir, os.path.relpath(current, root)) + os.makedirs(canonical_dir, exist_ok=True) + with open(os.path.join(canonical_dir, entry.name), "w") as f: + f.write( + unparse(RemoveDocstrings().visit(ast.parse(src)), py_ver_consistent=True) + ) + count += 1 + + assert count > 0, "No Python files found in the specified directory." + + +def compare( + input_dir: str, output_dir: str, python_versions: List[str], spack_versions: List[str] +) -> None: + """Compare canonicalized files across different Python versions and error if they differ.""" + # Create a git repo in output_dir to track changes + os.makedirs(output_dir, exist_ok=True) + run_git_command("init", dir=output_dir) + + pairs = list(product(spack_versions, python_versions)) + + if len(pairs) < 2: + raise ValueError("At least two Python or two Spack versions must be given for comparison.") + + changes_with_previous: List[int] = [] + + for i, (spack_dir, python_exe) in enumerate(pairs): + print(f"\033[1;97mCanonicalizing with {python_exe} and {spack_dir}...\033[0m", flush=True) + + # Point PYTHONPATH to the given Spack library for the subprocess + if not os.path.isdir(spack_dir): + raise ValueError(f"Invalid Spack dir: {spack_dir}") + env = os.environ.copy() + spack_pythonpath = os.path.join(spack_dir, "lib", "spack") + if "PYTHONPATH" in env and env["PYTHONPATH"]: + env["PYTHONPATH"] = f"{spack_pythonpath}{os.pathsep}{env['PYTHONPATH']}" + else: + env["PYTHONPATH"] = spack_pythonpath + + subprocess.run( + [python_exe, __file__, "--run", "--input-dir", input_dir, "--output-dir", output_dir], + check=True, + stdout=sys.stdout, + stderr=sys.stderr, + env=env, + ) + if i > 0: + try: + run_git_command("diff", "--exit-code", "HEAD", dir=output_dir) + except subprocess.CalledProcessError: + changes_with_previous.append(i) + + # The first run creates a commit for reference + run_git_command("add", ".", dir=output_dir) + run_git_command( + "commit", + "--quiet", + "--allow-empty", # makes this idempotent when running locally + "-m", + f"Canonicalized with {python_exe} and {spack_dir}", + dir=output_dir, + ) + + for i in changes_with_previous: + previous_spack, previous_python = pairs[i - 1] + current_spack, current_python = pairs[i] + print( + f"\033[1;31mChanges detected between {previous_python} ({previous_spack}) and " + f"{current_python} ({current_spack})\033[0m" + ) + + if changes_with_previous: + exit(1) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Canonicalize Spack package files.") + parser.add_argument("--run", action="store_true", help="Generate canonicalized sources.") + parser.add_argument("--spack", nargs="+", help="Specify one or more Spack versions.") + parser.add_argument("--python", nargs="+", help="Specify one or more Python versions.") + parser.add_argument("--input-dir", type=str, required=True, help="A repo's packages dir.") + parser.add_argument( + "--output-dir", + type=str, + required=True, + help="The output directory for canonicalized package files.", + ) + args = parser.parse_args() + + if args.run: + run(args.input_dir, args.output_dir) + else: + compare(args.input_dir, args.output_dir, args.python, args.spack) diff --git a/.github/workflows/prechecks.yml b/.github/workflows/prechecks.yml index 7e838905e5a..04ddee72e64 100644 --- a/.github/workflows/prechecks.yml +++ b/.github/workflows/prechecks.yml @@ -73,3 +73,22 @@ jobs: run: | . spack-core/share/spack/setup-env.sh spack ci verify-versions HEAD~1 HEAD + + canonicalization: + name: package.py canonicalization + runs-on: ubuntu-latest + container: + image: ghcr.io/spack/all-pythons:2025-07-25 + + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + with: + fetch-depth: 0 + - uses: ./.github/actions/checkout-spack + + - name: Test package.py canonicalization + run: .github/workflows/bin/canonicalize.py + --spack $PWD/spack-core + --python python3.6 python3.7 python3.8 python3.9 python3.10 python3.11 python3.12 python3.13 + --input-dir repos/spack_repo/builtin/packages/ + --output-dir canonicalized From b842a298c5272a99cd01022631c9867d8e91e402 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Tue, 29 Jul 2025 23:56:34 -0700 Subject: [PATCH 007/120] formatting: make `ruff check` pass (#865) - [x] update `pyproject.toml` so that `ruff check` passes - [x] fix one remaining issue in `racket`: use `not in` Signed-off-by: Todd Gamblin --- pyproject.toml | 2 +- repos/spack_repo/builtin/build_systems/racket.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 874db4be6da..1ba32586182 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,7 +55,7 @@ skip-magic-trailing-comma = true [tool.ruff.lint] extend-select = ["I"] -ignore = ["E731", "E203"] +ignore = ["E731", "E203", "F403", "F405", "F811"] [tool.ruff.lint.isort] split-on-trailing-comma = false diff --git a/repos/spack_repo/builtin/build_systems/racket.py b/repos/spack_repo/builtin/build_systems/racket.py index 3f2a4f56811..2a931aaef9a 100644 --- a/repos/spack_repo/builtin/build_systems/racket.py +++ b/repos/spack_repo/builtin/build_systems/racket.py @@ -85,7 +85,7 @@ def install(self, pkg: RacketPackage, spec: Spec, prefix: Prefix) -> None: raco = Executable("raco") with working_dir(self.build_directory): parallel = pkg.parallel and ( - not os.environ.get("SPACK_NO_PARALLEL_MAKE", "false").lower() in ("true", "1") + os.environ.get("SPACK_NO_PARALLEL_MAKE", "false").lower() not in ("true", "1") ) name = pkg.racket_name assert name is not None, "Racket package name is not set" From 9b6b2502ee374688b6dad531f2eec94243fef03a Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Wed, 30 Jul 2025 12:56:41 +0200 Subject: [PATCH 008/120] Fixes to cray* packages (#844) * add an install method that raises * depend on `c` to be able to specify a compiler on the externals * require `linux` instead of conflicts with the complement --- .../builtin/packages/cray_fftw/package.py | 11 ++++--- .../builtin/packages/cray_libsci/package.py | 31 ++++++++++--------- .../builtin/packages/cray_mpich/package.py | 29 +++++++++-------- .../builtin/packages/cray_mvapich2/package.py | 26 +++++++++------- .../builtin/packages/cray_pmi/package.py | 19 +++++++++--- 5 files changed, 68 insertions(+), 48 deletions(-) diff --git a/repos/spack_repo/builtin/packages/cray_fftw/package.py b/repos/spack_repo/builtin/packages/cray_fftw/package.py index cf5ccbdb06d..c1840231ee7 100644 --- a/repos/spack_repo/builtin/packages/cray_fftw/package.py +++ b/repos/spack_repo/builtin/packages/cray_fftw/package.py @@ -1,9 +1,6 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.generic import Package - from spack.package import * @@ -20,7 +17,6 @@ class CrayFftw(Package): """ homepage = "https://support.hpe.com/" - has_code = False # Skip attempts to fetch source that is not available maintainers("haampie", "lukebroskop") @@ -42,6 +38,13 @@ class CrayFftw(Package): variant("mpi", default=True, description="Activate MPI support") depends_on("mpi", when="+mpi") + has_code = False # Skip attempts to fetch a source that is not available + + # Allows attaching compilers to externals in packages.yaml + depends_on("c", type="build") + + requires("platform=linux", msg="Cray software is only available on linux") + def install(self, spec, prefix): raise InstallError( self.spec.format( diff --git a/repos/spack_repo/builtin/packages/cray_libsci/package.py b/repos/spack_repo/builtin/packages/cray_libsci/package.py index 6724da81b23..3916732c45d 100644 --- a/repos/spack_repo/builtin/packages/cray_libsci/package.py +++ b/repos/spack_repo/builtin/packages/cray_libsci/package.py @@ -1,8 +1,6 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.generic import Package - from spack.package import * @@ -11,7 +9,6 @@ class CrayLibsci(Package): numerical routines optimized for best performance on Cray systems.""" homepage = "https://docs.nersc.gov/development/libraries/libsci/" - has_code = False # Skip attempts to fetch source that is not available version("23.02.1.1") version("22.11.1.2") @@ -27,9 +24,6 @@ class CrayLibsci(Package): version("16.06.1") version("16.03.1") - conflicts("platform=windows") - conflicts("platform=darwin") - variant("shared", default=True, description="enable shared libs") variant("openmp", default=False, description="link with openmp") variant("mpi", default=False, description="link with mpi libs") @@ -48,9 +42,24 @@ class CrayLibsci(Package): "rocmcc": "AMD", } + has_code = False # Skip attempts to fetch a source that is not available + + # Allows attaching compilers to externals in packages.yaml + depends_on("c", type="build") + + requires("platform=linux", msg="Cray software is only available on linux") + + def install(self, spec, prefix): + raise InstallError( + self.spec.format( + "{name} is not installable, you need to specify " + "it as an external package in packages.yaml" + ) + ) + @property def modname(self): - return "cray-libsci/{0}".format(self.version) + return f"cray-libsci/{self.version}" @property def external_prefix(self): @@ -95,11 +104,3 @@ def scalapack_libs(self): @property def libs(self): return self.blas_libs - - def install(self, spec, prefix): - raise InstallError( - self.spec.format( - "{name} is not installable, you need to specify " - "it as an external package in packages.yaml" - ) - ) diff --git a/repos/spack_repo/builtin/packages/cray_mpich/package.py b/repos/spack_repo/builtin/packages/cray_mpich/package.py index 5d3bb9ca234..84cb8b0f95f 100644 --- a/repos/spack_repo/builtin/packages/cray_mpich/package.py +++ b/repos/spack_repo/builtin/packages/cray_mpich/package.py @@ -5,7 +5,6 @@ import os from spack_repo.builtin.build_systems.cuda import CudaPackage -from spack_repo.builtin.build_systems.generic import Package from spack_repo.builtin.build_systems.rocm import ROCmPackage from spack_repo.builtin.packages.mpich.package import MpichEnvironmentModifications @@ -17,7 +16,6 @@ class CrayMpich(MpichEnvironmentModifications, Package, CudaPackage, ROCmPackage the Message Passing Interface (MPI) standard.""" homepage = "https://docs.nersc.gov/development/compilers/wrappers/" - has_code = False # Skip attempts to fetch source that is not available maintainers("etiennemlb", "haampie") @@ -41,8 +39,6 @@ class CrayMpich(MpichEnvironmentModifications, Package, CudaPackage, ROCmPackage depends_on("cray-pmi") depends_on("libfabric") - requires("platform=linux", msg="Cray MPICH is only available on Cray") - # cray-mpich 8.1.7: features MPI compiler wrappers variant("wrappers", default=True, when="@8.1.7:", description="enable MPI wrappers") @@ -56,9 +52,24 @@ class CrayMpich(MpichEnvironmentModifications, Package, CudaPackage, ROCmPackage "aocc": "AOCC", } + has_code = False # Skip attempts to fetch a source that is not available + + # Allows attaching compilers to externals in packages.yaml + depends_on("c", type="build") + + requires("platform=linux", msg="Cray software is only available on linux") + + def install(self, spec, prefix): + raise InstallError( + self.spec.format( + "{name} is not installable, you need to specify " + "it as an external package in packages.yaml" + ) + ) + @property def modname(self): - return "cray-mpich/{0}".format(self.version) + return f"cray-mpich/{self.version}" @property def external_prefix(self): @@ -100,14 +111,6 @@ def setup_dependent_package(self, module, dependent_spec): spec.mpifc = spack_fc spec.mpif77 = spack_f77 - def install(self, spec, prefix): - raise InstallError( - self.spec.format( - "{name} is not installable, you need to specify " - "it as an external package in packages.yaml" - ) - ) - @property def headers(self): hdrs = find_headers("mpi", self.prefix.include, recursive=True) diff --git a/repos/spack_repo/builtin/packages/cray_mvapich2/package.py b/repos/spack_repo/builtin/packages/cray_mvapich2/package.py index a2eb1b290b5..82c7b38113e 100644 --- a/repos/spack_repo/builtin/packages/cray_mvapich2/package.py +++ b/repos/spack_repo/builtin/packages/cray_mvapich2/package.py @@ -1,8 +1,6 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.generic import Package from spack_repo.builtin.packages.mpich.package import MpichEnvironmentModifications from spack.package import * @@ -12,7 +10,6 @@ class CrayMvapich2(MpichEnvironmentModifications, Package): """Cray/HPE packaging of MVAPICH2 for HPE Apollo systems""" homepage = "https://docs.nersc.gov/development/compilers/wrappers/" - has_code = False # Skip attempts to fetch source that is not available maintainers("hppritcha") @@ -28,7 +25,20 @@ class CrayMvapich2(MpichEnvironmentModifications, Package): provides("mpi@3") - requires("platform=linux", msg="Cray MVAPICH2 is only available on Cray") + has_code = False # Skip attempts to fetch a source that is not available + + # Allows attaching compilers to externals in packages.yaml + depends_on("c", type="build") + + requires("platform=linux", msg="Cray software is only available on linux") + + def install(self, spec, prefix): + raise InstallError( + self.spec.format( + "{name} is not installable, you need to specify " + "it as an external package in packages.yaml" + ) + ) def setup_run_environment(self, env: EnvironmentModifications) -> None: if self.spec.has_virtual_dependency("c"): @@ -40,11 +50,3 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: if self.spec.has_virtual_dependency("fortran"): env.set("MPIFC", self["fortran"].fortran) env.set("MPIF77", self["fortran"].fortran) - - def install(self, spec, prefix): - raise InstallError( - self.spec.format( - "{name} is not installable, you need to specify " - "it as an external package in packages.yaml" - ) - ) diff --git a/repos/spack_repo/builtin/packages/cray_pmi/package.py b/repos/spack_repo/builtin/packages/cray_pmi/package.py index f0a21dba416..840f97726cf 100644 --- a/repos/spack_repo/builtin/packages/cray_pmi/package.py +++ b/repos/spack_repo/builtin/packages/cray_pmi/package.py @@ -1,9 +1,6 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.generic import Package - from spack.package import * @@ -11,7 +8,6 @@ class CrayPmi(Package): """Cray's Process Management Interface library""" homepage = "https://docs.nersc.gov/development/compilers/wrappers/" - has_code = False # Skip attempts to fetch source that is not available maintainers("haampie") @@ -19,6 +15,21 @@ class CrayPmi(Package): version("5.0.16") version("5.0.11") + has_code = False # Skip attempts to fetch a source that is not available + + # Allows attaching compilers to externals in packages.yaml + depends_on("c", type="build") + + requires("platform=linux", msg="Cray software is only available on linux") + + def install(self, spec, prefix): + raise InstallError( + self.spec.format( + "{name} is not installable, you need to specify " + "it as an external package in packages.yaml" + ) + ) + @property def headers(self): return find_headers("pmi", self.prefix.include, recursive=True) From 70cfdbeb6496de1f657739259ee15d4c42914f20 Mon Sep 17 00:00:00 2001 From: Afzal Patel <122491982+afzpatel@users.noreply.github.com> Date: Wed, 30 Jul 2025 09:52:55 -0400 Subject: [PATCH 009/120] e4s ci: require ~hipblaslt for rocblas (#825) --- .ci/gitlab/stacks/e4s/spack.yaml | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/.ci/gitlab/stacks/e4s/spack.yaml b/.ci/gitlab/stacks/e4s/spack.yaml index c502c3cebcf..3f54efc75c0 100644 --- a/.ci/gitlab/stacks/e4s/spack.yaml +++ b/.ci/gitlab/stacks/e4s/spack.yaml @@ -48,6 +48,8 @@ spack: variants: +pic +xz openblas: variants: threads=openmp + rocblas: + require: ~hipblaslt #hangs in ci trilinos: variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu @@ -361,22 +363,22 @@ spack: - chai +rocm amdgpu_target=gfx90a - ecp-data-vis-sdk ~paraview +vtkm +rocm amdgpu_target=gfx90a # +paraview: CMake Error at VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/CMakeLists.txt:272 (find_package): Could not find a package configuration file provided by "rocthrust" with any of the following names: rocthrustConfig.cmake rocthrust-config.cmake - gasnet +rocm amdgpu_target=gfx90a -# - ginkgo +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep + - ginkgo +rocm amdgpu_target=gfx90a - heffte +rocm amdgpu_target=gfx90a - hpx +rocm amdgpu_target=gfx90a -# - hypre +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep + - hypre +rocm amdgpu_target=gfx90a - kokkos +rocm amdgpu_target=gfx90a - lammps +rocm amdgpu_target=gfx90a - legion +rocm amdgpu_target=gfx90a -# - libceed +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep -# - magma ~cuda +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep -# - mfem +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep + - libceed +rocm amdgpu_target=gfx90a + - magma ~cuda +rocm amdgpu_target=gfx90a + - mfem +rocm amdgpu_target=gfx90a - raja ~openmp +rocm amdgpu_target=gfx90a -# - slate +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep -# - strumpack ~slate +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep + - slate +rocm amdgpu_target=gfx90a + - strumpack ~slate +rocm amdgpu_target=gfx90a - sundials +rocm amdgpu_target=gfx90a -# - superlu-dist +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep -# - tasmanian ~openmp +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep + - superlu-dist +rocm amdgpu_target=gfx90a + - tasmanian ~openmp +rocm amdgpu_target=gfx90a - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack ~ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx90a - umpire +rocm amdgpu_target=gfx90a - upcxx +rocm amdgpu_target=gfx90a From ef4dd702a858cef27d964bf3425966e744dc0186 Mon Sep 17 00:00:00 2001 From: Miren Radia <32646026+mirenradia@users.noreply.github.com> Date: Wed, 30 Jul 2025 16:01:40 +0100 Subject: [PATCH 010/120] kadath: Update source git repo and fix build (#771) * kadath: Update source git repo and homepage The old repo no longer seems to be publicly accessible and all development seems to be taking place in the new repo. * kadath: Add all versions from new repo tags * kadath: Add C language dependence I think all of the source code is in C but the CMakeLists.txt doesn't specify the language dependence, hence it tests the C compiler too. --- .../builtin/packages/kadath/package.py | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/repos/spack_repo/builtin/packages/kadath/package.py b/repos/spack_repo/builtin/packages/kadath/package.py index 024e90e0b5f..c78be8e04a5 100644 --- a/repos/spack_repo/builtin/packages/kadath/package.py +++ b/repos/spack_repo/builtin/packages/kadath/package.py @@ -20,14 +20,30 @@ class Kadath(CMakePackage): mixed spin binaries. """ - homepage = "https://kadath.obspm.fr/fuka/" - git = "https://gitlab.obspm.fr/grandcle/Kadath.git" + homepage = "https://samueltootle.github.io/fuka/index.html" + git = "https://bitbucket.org/fukaws/fuka.git" maintainers("eschnett") license("GPL-3.0-or-later") version("fuka", branch="fuka") + version("2.3", tag="v2.3", commit="f8ee3c7795911e1363358bf155c70f649c100fb5") + version( + "ET_2025_05_v0", tag="ET_2025_05_v0", commit="f1259452c0a62eee3e37c2314691643659e02705" + ) + version( + "ET_2024_11_v0", tag="ET_2024_11_v0", commit="848b68cb9e7cf70b1e38b8135d4def6502db5aff" + ) + version( + "ET_2024_05_v0", tag="ET_2024_05_v0", commit="ac1b07452572a83c434a637c8171c02d0f36aafe" + ) + version( + "ET_2023_11_v0", tag="ET_2023_11_v0", commit="f6208ce5c2a0a9cdd7cd93611037ae077bed7265" + ) + version("2.2", tag="v2.2", commit="c15aa72964bcddbaae1811cbab6dc2650e59b990") + version("ET_2023_05v0", tag="ET_2023_05v0", commit="1e8e9c59dc0dc8746709b81c5c0c70dc73109309") + version("2.1", tag="v2.1", commit="1e8e9c59dc0dc8746709b81c5c0c70dc73109309") variant("mpi", default=True, description="Enable MPI support") @@ -40,6 +56,7 @@ class Kadath(CMakePackage): ) depends_on("cxx", type="build") # generated + depends_on("c", type="build") # CMakeLists.txt doesn't specify language depends_on("blas") depends_on("boost cxxstd=17") # kadath uses std=C++17 From 34bdef72be3ecd9b22663c5f748cd6810781f5e7 Mon Sep 17 00:00:00 2001 From: Paul Kuberry Date: Wed, 30 Jul 2025 11:59:29 -0400 Subject: [PATCH 011/120] compadre, py-pycompadre: add v1.6.2 (#870) --- repos/spack_repo/builtin/packages/compadre/package.py | 2 +- repos/spack_repo/builtin/packages/py_pycompadre/package.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/compadre/package.py b/repos/spack_repo/builtin/packages/compadre/package.py index 33d889dad26..d2e9788a513 100644 --- a/repos/spack_repo/builtin/packages/compadre/package.py +++ b/repos/spack_repo/builtin/packages/compadre/package.py @@ -22,6 +22,7 @@ class Compadre(CMakePackage): maintainers("kuberry") version("master", branch="master") + version("1.6.2", sha256="ad4122feed81e9f661ee86e73ad4bf53dbfb2470b389a4ea31e6c8d727c8bec8") version("1.6.0", sha256="5d937f85c2e64b50955beab1ac9f1083162f5239a5f13a40ef9a9c0e6ad216c9") version("1.5.0", sha256="b7dd6020cc5a7969de817d5c7f6c5acceaad0f08dcfd3d7cacfa9f42e4c8b335") version("1.4.1", sha256="2e1e7d8e30953f76b6dc3a4c86ec8103d4b29447194cb5d5abb74b8e4099bdd9") @@ -37,7 +38,6 @@ class Compadre(CMakePackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated depends_on("cmake@3.10:", type="build", when="@:1.4") depends_on("cmake@3.16:", type="build", when="@1.5:") diff --git a/repos/spack_repo/builtin/packages/py_pycompadre/package.py b/repos/spack_repo/builtin/packages/py_pycompadre/package.py index 0776666a75e..e472e6c3ef4 100644 --- a/repos/spack_repo/builtin/packages/py_pycompadre/package.py +++ b/repos/spack_repo/builtin/packages/py_pycompadre/package.py @@ -22,6 +22,7 @@ class PyPycompadre(PythonPackage): maintainers("kuberry") version("master", branch="master") + version("1.6.2", sha256="ad4122feed81e9f661ee86e73ad4bf53dbfb2470b389a4ea31e6c8d727c8bec8") version("1.6.0", sha256="5d937f85c2e64b50955beab1ac9f1083162f5239a5f13a40ef9a9c0e6ad216c9") version("1.5.0", sha256="b7dd6020cc5a7969de817d5c7f6c5acceaad0f08dcfd3d7cacfa9f42e4c8b335") version("1.4.1", sha256="2e1e7d8e30953f76b6dc3a4c86ec8103d4b29447194cb5d5abb74b8e4099bdd9") From dd48b3639cf752bb4de978f9f75f36462bfc0fbe Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Wed, 30 Jul 2025 18:01:49 +0200 Subject: [PATCH 012/120] libx11: add v1.8.12 (#868) --- repos/spack_repo/builtin/packages/libx11/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/libx11/package.py b/repos/spack_repo/builtin/packages/libx11/package.py index 14b346113c0..dcc78b180e2 100644 --- a/repos/spack_repo/builtin/packages/libx11/package.py +++ b/repos/spack_repo/builtin/packages/libx11/package.py @@ -19,6 +19,7 @@ class Libx11(AutotoolsPackage, XorgPackage): maintainers("wdconinc") + version("1.8.12", sha256="220fbcf54b6e4d8dc40076ff4ab87954358019982490b33c7802190b62d89ce1") version("1.8.11", sha256="17a37d1597354a1d8040196f1cdac54240c78c0bd1a1a95e97cc23215cf0b734") version("1.8.10", sha256="b7a1a90d881bb7b94df5cf31509e6b03f15c0972d3ac25ab0441f5fbc789650f") version("1.8.9", sha256="57ca5f07d263788ad661a86f4139412e8b699662e6b60c20f1f028c25a935e48") From aab4788f6a2dbb6d9c50574619e346c14ef961d8 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Wed, 30 Jul 2025 18:02:47 +0200 Subject: [PATCH 013/120] exempi: add v2.6.6 and fix compiler dependency (#841) --- repos/spack_repo/builtin/packages/exempi/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/repos/spack_repo/builtin/packages/exempi/package.py b/repos/spack_repo/builtin/packages/exempi/package.py index defc8204f22..feaa314e05d 100644 --- a/repos/spack_repo/builtin/packages/exempi/package.py +++ b/repos/spack_repo/builtin/packages/exempi/package.py @@ -20,9 +20,11 @@ class Exempi(AutotoolsPackage): license("BSD-3-Clause") + version("2.6.6", sha256="7513b7e42c3bd90a58d77d938c60d2e87c68f81646e7cb8b12d71fe334391c6f") version("2.6.1", sha256="072451ac1e0dc97ed69a2e5bfc235fd94fe093d837f65584d0e3581af5db18cd") version("2.5.2", sha256="52f54314aefd45945d47a6ecf4bd21f362e6467fa5d0538b0d45a06bc6eaaed5") + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("zlib-api") From 1b976bbdf7c5bce37d6541beb93445791f9292c6 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Wed, 30 Jul 2025 18:03:26 +0200 Subject: [PATCH 014/120] py-keras: add v3.11.0 (#867) Signed-off-by: Adam J. Stewart --- repos/spack_repo/builtin/packages/py_keras/package.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_keras/package.py b/repos/spack_repo/builtin/packages/py_keras/package.py index 65aabde23d4..80f233de509 100644 --- a/repos/spack_repo/builtin/packages/py_keras/package.py +++ b/repos/spack_repo/builtin/packages/py_keras/package.py @@ -24,6 +24,7 @@ class PyKeras(PythonPackage): tags = ["e4s"] license("Apache-2.0") + version("3.11.0", sha256="f5dfeaf4fcaea180e032f7c1e373f1868961e2940dcfcaaf9a5b711baf41bd60") version("3.10.0", sha256="6e9100bf66eaf6de4b7f288d34ef9bb8b5dcdd62f42c64cfd910226bb34ad2d2") version("3.9.2", sha256="322aab6418ee3de1e2bd0871b60a07f0e444e744a7e8cba79af8b42408879ecf") version("3.9.1", sha256="1ba893820258d4eab9a5a94a6faae2d8f4b134019d0bfa19868606b6381502ff") @@ -88,6 +89,7 @@ class PyKeras(PythonPackage): with default_args(type=("build", "run")): # pyproject.toml + depends_on("python@3.10:", when="@3.11:") depends_on("python@3.9:", when="@3:") depends_on("python@3.8:", when="@2.12:") depends_on("py-absl-py", when="@2.6:") @@ -112,7 +114,8 @@ class PyKeras(PythonPackage): # requirements-jax-cuda.txt with when("backend=jax"): - depends_on("py-jax@0.6.0", when="@3.10:") + depends_on("py-jax@0.6.2", when="@3.11:") + depends_on("py-jax@0.6.0", when="@3.10") depends_on("py-jax@0.4.28", when="@3.6:3.9") depends_on("py-jax@0.4.23", when="@3.0.5:3.5") depends_on("py-jax", when="@3:") @@ -128,7 +131,7 @@ class PyKeras(PythonPackage): depends_on("py-torch@2.1.2", when="@3.0.3:3.0.5") depends_on("py-torch@2.1.1", when="@3.0.1:3.0.2") depends_on("py-torch@2.1.0", when="@3.0.0") - depends_on("py-torchvision@0.20.1", when="@3.7:") + depends_on("py-torchvision@0.20.1", when="@3.7:3.8") depends_on("py-torchvision@0.19.1", when="@3.6") depends_on("py-torchvision@0.19.0", when="@3.5") depends_on("py-torchvision@0.17.1", when="@3.1:3.4") From 91b2d36b158e2ba57d60c4915e7b3deb5d7f318c Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 30 Jul 2025 11:04:48 -0500 Subject: [PATCH 015/120] xrootd: add v5.8.4, v5.7.3 (#848) --- repos/spack_repo/builtin/packages/xrootd/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/xrootd/package.py b/repos/spack_repo/builtin/packages/xrootd/package.py index f8cc150403b..8d0d30bc518 100644 --- a/repos/spack_repo/builtin/packages/xrootd/package.py +++ b/repos/spack_repo/builtin/packages/xrootd/package.py @@ -17,13 +17,15 @@ class Xrootd(CMakePackage): "https://xrootd.web.cern.ch/download/v5.7.0/xrootd-5.7.0.tar.gz", "https://github.com/xrootd/xrootd/releases/download/v5.7.0/xrootd-5.7.0.tar.gz", ] - list_url = "https://xrootd.web.cern.ch/dload.html" + list_url = "https://xrootd.org/dload.html" git = "https://github.com/xrootd/xrootd.git" maintainers("gartung", "greenc-FNAL", "marcmengel", "vitodb", "wdconinc") license("LGPL-3.0-only") + version("5.8.4", sha256="d8716bf764a7e8103aab83fbf4906ea2cc157646b1a633d99f91edbf204ff632") + version("5.7.3", sha256="3a90fda99a53cb6005ebecf7d6125ce382cedb0a27fb453e44a2c13bade0a90f") version("5.7.1", sha256="c28c9dc0a2f5d0134e803981be8b1e8b1c9a6ec13b49f5fa3040889b439f4041") version("5.7.0", sha256="214599bba98bc69875b82ac74f2d4b9ac8a554a1024119d8a9802b3d8b9986f8") version("5.6.9", sha256="44196167fbcf030d113e3749dfdecab934c43ec15e38e77481e29aac191ca3a8") From 0fd745368c9a7fc73b28653e0f33e81a27aca998 Mon Sep 17 00:00:00 2001 From: Andrew Nolan <32367657+andrewdnolan@users.noreply.github.com> Date: Wed, 30 Jul 2025 09:12:51 -0700 Subject: [PATCH 016/120] tempestremap: add v2.2.0 and v2.1.0 : 2.1.5 (#858) Co-authored-by: Xylar Asay-Davis --- .../spack_repo/builtin/packages/tempestremap/package.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/tempestremap/package.py b/repos/spack_repo/builtin/packages/tempestremap/package.py index 92800822ecf..cafc8ec3183 100644 --- a/repos/spack_repo/builtin/packages/tempestremap/package.py +++ b/repos/spack_repo/builtin/packages/tempestremap/package.py @@ -19,9 +19,16 @@ class Tempestremap(AutotoolsPackage): homepage = "https://github.com/ClimateGlobalChange/tempestremap" url = "https://github.com/ClimateGlobalChange/tempestremap/archive/v2.0.5.tar.gz" - maintainers("iulian787", "vijaysm", "paullric") + maintainers("iulian787", "vijaysm", "paullric", "xylar", "andrewdnolan") + version("2.2.0", sha256="548b902701ec7c3b6970e0c83c6b93bfb7fb38ecc30b6ef89de8182efd948fa3") version("2.1.6", sha256="d2208b5d6952eba5003ee7abcf22f46a254ba03f6b76dcc4d246068573d424e2") + version("2.1.5", sha256="1c8976b20555330294523114d18ecdd6e885df7af1887710a7a5a96e403770d3") + version("2.1.4", sha256="94e0bb4e1be9ec7282936f4d89996e0b99d89166fff14995bb7a3d3964577ebe") + version("2.1.3", sha256="f3925871b9bc19c39002665970283a6f70ec5e159f0c87c74d1ef4f7efa4c26a") + version("2.1.2", sha256="18421e1b81ecb5b2aa3bb8f3e9df084586d90c13b27960b78202d264f587934e") + version("2.1.1", sha256="f5ea21f82b358ba127550fc1f49e701cba0379d22ce030c274135109f678b980") + version("2.1.0", sha256="2dfae7d81d685eafd36da3b4a989676c0b2800b91e4fdac3e5ceb7a20eff99f2") version("2.0.5", sha256="8618f5cbde450922efa1d77e67b062c557788b0cf4304adca30237afe3ade887") version("2.0.4", sha256="8349eeb604e97b13d2ecde8626a69e579a7af70ad0e8a6925a8bb4306a4963a4") version("2.0.3", sha256="b4578c2cb101ba091a10dc914e15ac968257f5db27ca78bc9fb5dbd70bce191f") From b80f5e93ec78f5e47264376acbc379cb33c9113a Mon Sep 17 00:00:00 2001 From: Dave Keeshan <96727608+davekeeshan@users.noreply.github.com> Date: Wed, 30 Jul 2025 17:20:47 +0100 Subject: [PATCH 017/120] yosys: add v0.54, v0.55 (#852) --- repos/spack_repo/builtin/packages/yosys/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/repos/spack_repo/builtin/packages/yosys/package.py b/repos/spack_repo/builtin/packages/yosys/package.py index addf275c1d9..5809317f4ba 100644 --- a/repos/spack_repo/builtin/packages/yosys/package.py +++ b/repos/spack_repo/builtin/packages/yosys/package.py @@ -30,6 +30,8 @@ class Yosys(MakefilePackage): version("master", branch="master") + version("0.55", commit="60f126cd00c94892782470192d6c9f7abebe7c05", submodules=True) + version("0.54", commit="db72ec3bde296a9512b2d1e6fabf81cfb07c2c1b", submodules=True) version("0.53", commit="53c22ab7c0ced80861c7536c5dae682c30fb5834", submodules=True) version("0.52", commit="fee39a3284c90249e1d9684cf6944ffbbcbb8f90", submodules=True) version("0.51", commit="c4b5190229616f7ebf8197f43990b4429de3e420", submodules=True) From ed3ba7ea3cb97aa781e03a8e169772c199ac1d5c Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Wed, 30 Jul 2025 18:21:30 +0200 Subject: [PATCH 018/120] py-datalad: fix py-setuptools restriction for old versions (#851) --- repos/spack_repo/builtin/packages/py_datalad/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/py_datalad/package.py b/repos/spack_repo/builtin/packages/py_datalad/package.py index 6e701aeea0b..58f4ade48c7 100644 --- a/repos/spack_repo/builtin/packages/py_datalad/package.py +++ b/repos/spack_repo/builtin/packages/py_datalad/package.py @@ -47,7 +47,7 @@ class PyDatalad(PythonPackage): # upper bound needed because otherwise the following error occurs: # 'extras_require' must be a dictionary whose values are strings or lists # of strings containing valid project/version requirement specifiers. - depends_on("py-setuptools@40.8.0:66", when="@:17", type="build") + depends_on("py-setuptools@40.8.0:66", when="@:0.17", type="build") depends_on("git", type=("build", "run")) depends_on("git-annex", type=("build", "run")) From 06bcd9b8cba6649fc58b0a5ff62c2094e27558ab Mon Sep 17 00:00:00 2001 From: Dave Keeshan <96727608+davekeeshan@users.noreply.github.com> Date: Wed, 30 Jul 2025 17:22:50 +0100 Subject: [PATCH 019/120] verilator: add v5.038, remove fortran dependency (#850) --- repos/spack_repo/builtin/packages/verilator/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/verilator/package.py b/repos/spack_repo/builtin/packages/verilator/package.py index 9cf01958ed7..fcf70465f21 100644 --- a/repos/spack_repo/builtin/packages/verilator/package.py +++ b/repos/spack_repo/builtin/packages/verilator/package.py @@ -43,6 +43,7 @@ class Verilator(AutotoolsPackage): version("master", branch="master") + version("5.038", sha256="f8c03105224fa034095ba6c8a06443f61f6f59e1d72f76b718f89060e905a0d4") version("5.036", sha256="4199964882d56cf6a19ce80c6a297ebe3b0c35ea81106cd4f722342594337c47") version("5.034", sha256="002da98e316ca6eee40407f5deb7d7c43a0788847d39c90d4d31ddbbc03020e8") version("5.032", sha256="5a262564b10be8bdb31ff4fb67d77bcf5f52fc1b4e6c88d5ca3264fb481f1e41") @@ -79,7 +80,6 @@ class Verilator(AutotoolsPackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated depends_on("autoconf", type="build") depends_on("automake", type="build") From 6bb0e1b8f793ee7c158db8897cf0ed4bace9075d Mon Sep 17 00:00:00 2001 From: Andrew Nolan <32367657+andrewdnolan@users.noreply.github.com> Date: Wed, 30 Jul 2025 09:23:40 -0700 Subject: [PATCH 020/120] nco: add 5.3.4 (#833) --- repos/spack_repo/builtin/packages/nco/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/nco/package.py b/repos/spack_repo/builtin/packages/nco/package.py index c23dce975f5..9cbc4196ce0 100644 --- a/repos/spack_repo/builtin/packages/nco/package.py +++ b/repos/spack_repo/builtin/packages/nco/package.py @@ -14,12 +14,13 @@ class Nco(AutotoolsPackage): homepage = "https://nco.sourceforge.net/" url = "https://github.com/nco/nco/archive/5.0.1.tar.gz" - maintainers("altheaden", "xylar") + maintainers("altheaden", "andrewdnolan", "xylar") tags = ["e4s"] license("BSD-3-Clause") + version("5.3.4", sha256="265059157ab4e64e73b6aad96da1e09427ba8a03ed3e2348d0a5deb57cf76006") version("5.3.3", sha256="f9185e115e246fe884dcae0804146b56df7257f53de7ba190fea66977ccd5a64") version("5.3.2", sha256="645179433e0f54e7e6fefa9fcc74c1866ad55dd69f0fccbc262c550fcc186385") version("5.3.1", sha256="c527e991e1befcc839a14151a2982a20340ab1523ce98b66ef3efa2878ee039b") From 34a92d945cd025b95b427c7d761bc556b3908e7f Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Wed, 30 Jul 2025 18:24:25 +0200 Subject: [PATCH 021/120] py-datalad-neuroimaging: add v0.3.7 (#843) --- .../builtin/packages/py_datalad_neuroimaging/package.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/repos/spack_repo/builtin/packages/py_datalad_neuroimaging/package.py b/repos/spack_repo/builtin/packages/py_datalad_neuroimaging/package.py index c951f1126f1..7a22c73c90a 100644 --- a/repos/spack_repo/builtin/packages/py_datalad_neuroimaging/package.py +++ b/repos/spack_repo/builtin/packages/py_datalad_neuroimaging/package.py @@ -15,15 +15,20 @@ class PyDataladNeuroimaging(PythonPackage): license("MIT") + version("0.3.7", sha256="a13bfb10c60701d6551dec974e4460828f5c2167cd11c00c216136dc09341383") version("0.3.3", sha256="49a6852e68892e6cd13f245bca2d400abded5ea4fd2a69c9be41c710d0c49bb1") version("0.3.1", sha256="aaf7a3d10e8e7df1d8dee09e485bbe26787f496fb2302ed7ddea55a470a0f96e") + depends_on("python@3.9:", when="@0.3.6:", type=("build", "run")) + + depends_on("py-setuptools@59:", when="@0.3.7:", type="build") depends_on("py-setuptools@43:", when="@0.3.2:", type="build") depends_on("py-setuptools", type="build") depends_on("py-datalad@0.16.7:", when="@0.3.2:", type=("build", "run")) depends_on("py-datalad@0.12:", type=("build", "run")) depends_on("py-datalad-deprecated@0.2.7:", when="@0.3.3:", type=("build", "run")) + depends_on("py-pydicom@2:", when="@0.3.6:", type=("build", "run")) depends_on("py-pydicom", type=("build", "run")) depends_on("py-pybids@0.15.1:", when="@0.3.2:", type=("build", "run")) depends_on("py-pybids@0.9.2:", type=("build", "run")) From 81c2c6911fd3e81024b25f4cb60c8cb190b67d25 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Wed, 30 Jul 2025 18:24:48 +0200 Subject: [PATCH 022/120] py-datalad-metalad: add v0.4.22 (#842) --- .../builtin/packages/py_datalad_metalad/package.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/py_datalad_metalad/package.py b/repos/spack_repo/builtin/packages/py_datalad_metalad/package.py index affd3a86d9d..057179c7bb7 100644 --- a/repos/spack_repo/builtin/packages/py_datalad_metalad/package.py +++ b/repos/spack_repo/builtin/packages/py_datalad_metalad/package.py @@ -15,6 +15,7 @@ class PyDataladMetalad(PythonPackage): license("MIT") + version("0.4.22", sha256="14c48598de4fd23298ac0b326f8d9d1b215fef756d67dd4d173108cedbad1756") version("0.4.17", sha256="8854d5b8bc8387eff27639510f10c3cffe9cd76be018512a5d451be9708242b9") version("0.4.5", sha256="db1a0675e3c67fe2d9093e7098b142534f49588dea5ee048ee962422a9927fbf") version("0.2.1", sha256="70fe423136a168f7630b3e0ff1951e776d61e7d5f36670bddf24299ac0870285") @@ -22,7 +23,6 @@ class PyDataladMetalad(PythonPackage): depends_on("py-setuptools@30.3:", type=("build")) depends_on("py-setuptools", type=("build")) - depends_on("py-six", when="@0.3.1:", type=("build", "run")) depends_on("py-datalad@0.18:", when="@0.4.11:", type=("build", "run")) depends_on("py-datalad@0.15.6:", when="@0.3:", type=("build", "run")) depends_on("py-datalad@0.12.3:", type=("build", "run")) @@ -32,3 +32,6 @@ class PyDataladMetalad(PythonPackage): depends_on("py-pytest", when="@0.4.11:", type=("build", "run")) depends_on("py-pyyaml", when="@0.3.1:", type=("build", "run")) depends_on("git-annex", type=("run")) + + # Historical dependencies + depends_on("py-six", when="@0.3.1:0.4.17", type=("build", "run")) From ebf4489c4fb810164fb8e8b6dbc7c2363bb028ba Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Wed, 30 Jul 2025 18:26:16 +0200 Subject: [PATCH 023/120] py-datalad-metadata-model: add v0.3.11 (#837) --- .../builtin/packages/py_datalad_metadata_model/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/py_datalad_metadata_model/package.py b/repos/spack_repo/builtin/packages/py_datalad_metadata_model/package.py index 74e6244cb5c..7054ffe6d97 100644 --- a/repos/spack_repo/builtin/packages/py_datalad_metadata_model/package.py +++ b/repos/spack_repo/builtin/packages/py_datalad_metadata_model/package.py @@ -17,6 +17,7 @@ class PyDataladMetadataModel(PythonPackage): license("MIT") + version("0.3.11", sha256="95a113bb0eb5a27bf61b4a0ea6111f7cb01d707c0eba98359d9b8b87fcb078b4") version("0.3.10", sha256="2d113d43fe5c611633e8e2c354e9ddc1224f4f8d7305b2e1fa20cdd7f5deedc4") version("0.3.5", sha256="992241adef6d36ad7f9a83d8c7762d887fbec7111e06a2bd12fd8816e6ee739a") From 5bb9d2cbbcfedd4728d6c1457efbe68be3c61d7b Mon Sep 17 00:00:00 2001 From: Andrew Nolan <32367657+andrewdnolan@users.noreply.github.com> Date: Wed, 30 Jul 2025 09:32:31 -0700 Subject: [PATCH 024/120] netcdf-fortran: add v4.6.2 (#835) Co-authored-by: Xylar Asay-Davis --- repos/spack_repo/builtin/packages/netcdf_fortran/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/netcdf_fortran/package.py b/repos/spack_repo/builtin/packages/netcdf_fortran/package.py index ecf64f38196..9d037689fc7 100644 --- a/repos/spack_repo/builtin/packages/netcdf_fortran/package.py +++ b/repos/spack_repo/builtin/packages/netcdf_fortran/package.py @@ -26,6 +26,7 @@ class NetcdfFortran(AutotoolsPackage): license("Apache-2.0") + version("4.6.2", sha256="df26b99d9003c93a8bc287b58172bf1c279676f8c10d6dd0daf8bc7204877096") version("4.6.1", sha256="b50b0c72b8b16b140201a020936aa8aeda5c79cf265c55160986cd637807a37a") version("4.6.0", sha256="198bff6534cc85a121adc9e12f1c4bc53406c403bda331775a1291509e7b2f23") version("4.5.4", sha256="0a19b26a2b6e29fab5d29d7d7e08c24e87712d09a5cafeea90e16e0a2ab86b81") From 9e0f013d00073a4ca0585ff5b10e8105867fe7cb Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 30 Jul 2025 11:41:57 -0500 Subject: [PATCH 025/120] py-pybind11: add v3.0.0 (#793) --- repos/spack_repo/builtin/packages/py_pybind11/package.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/py_pybind11/package.py b/repos/spack_repo/builtin/packages/py_pybind11/package.py index cdfa8cb780d..4b0a584540c 100644 --- a/repos/spack_repo/builtin/packages/py_pybind11/package.py +++ b/repos/spack_repo/builtin/packages/py_pybind11/package.py @@ -28,6 +28,7 @@ class PyPybind11(CMakePackage, PythonExtension): maintainers("ax3l") version("master", branch="master") + version("3.0.0", sha256="453b1a3e2b266c3ae9da872411cadb6d693ac18063bd73226d96cfb7015a200c") version("2.13.6", sha256="e08cb87f4773da97fa7b5f035de8763abc656d87d5773e62f6da0587d1f0ec20") version("2.13.5", sha256="b1e209c42b3a9ed74da3e0b25a4f4cd478d89d5efbb48f04b277df427faf6252") version("2.13.4", sha256="efc901aa0aab439a3fea6efeaf930b5a349fb06394bf845c64ce15a9cf8f0240") @@ -63,8 +64,14 @@ class PyPybind11(CMakePackage, PythonExtension): depends_on("cxx", type="build") - depends_on("py-setuptools@42:", type="build") + with when("@3:"): + depends_on("py-scikit-build-core@0.11.2:", type="build") + with when("@:2"): + depends_on("py-setuptools@42:", type="build") + depends_on("py-pytest", type="test") + depends_on("py-build", type="test", when="@3:") + depends_on("py-tomlkit", type="test", when="@3:") depends_on("py-pip", type="build") depends_on("py-wheel", type="build") extends("python") From 418545530356bebc7ea01a90190ff5c9ed636a27 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Wed, 30 Jul 2025 18:47:37 +0200 Subject: [PATCH 026/120] py-scipy: add v1.16.1 (#823) Signed-off-by: Adam J. Stewart --- repos/spack_repo/builtin/packages/py_scipy/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/py_scipy/package.py b/repos/spack_repo/builtin/packages/py_scipy/package.py index 1d5726b3131..34f0a582f14 100644 --- a/repos/spack_repo/builtin/packages/py_scipy/package.py +++ b/repos/spack_repo/builtin/packages/py_scipy/package.py @@ -19,6 +19,7 @@ class PyScipy(PythonPackage): license("BSD-3-Clause") version("main", branch="main") + version("1.16.1", sha256="44c76f9e8b6e8e488a586190ab38016e4ed2f8a038af7cd3defa903c0a2238b3") version("1.16.0", sha256="b5ef54021e832869c8cfb03bc3bf20366cbcd426e02a58e8a58d7584dfbb8f62") version("1.15.3", sha256="eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf") version("1.15.2", sha256="cd58a314d92838f7e6f755c8a2167ead4f27e1fd5c1251fd54289569ef3495ec") @@ -67,7 +68,8 @@ class PyScipy(PythonPackage): # Based on wheel availability on PyPI with default_args(type=("build", "link", "run")): - depends_on("python@3.11:3.13", when="@1.16:") + depends_on("python@3.11:3.14", when="@1.16.1:") + depends_on("python@3.11:3.13", when="@1.16.0") depends_on("python@3.10:3.13", when="@1.14.1:1.15") depends_on("python@3.10:3.12", when="@1.14.0") depends_on("python@3.9:3.12", when="@1.11.2:1.13") From 8007c8c5d6bb063e470abb53ec2c776309ebee97 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 30 Jul 2025 11:52:36 -0500 Subject: [PATCH 027/120] meson: add v1.8.2, v1.7.2 (#811) --- repos/spack_repo/builtin/packages/meson/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/repos/spack_repo/builtin/packages/meson/package.py b/repos/spack_repo/builtin/packages/meson/package.py index a8249e3b3e9..cacf09ad560 100644 --- a/repos/spack_repo/builtin/packages/meson/package.py +++ b/repos/spack_repo/builtin/packages/meson/package.py @@ -21,6 +21,8 @@ class Meson(PythonPackage): license("Apache-2.0") + version("1.8.2", sha256="6b878fb0f6f0318cbd54e13539f89a1a8305791668e8e93ffd59d82722888dac") + version("1.7.2", sha256="3640ef596523393100df31ba790bc5fe732215e9711a66b673a21c4eb39bc8f1") version("1.7.0", sha256="a6ca46e2a11a0278bb6492ecd4e0520ff441b164ebfdef1e012b11beb848d26e") version("1.6.1", sha256="4889795777b536ea1a351982f3ef7c7b06a786ccb47036daba63cc5757c59edb") version("1.5.2", sha256="fb41882bef26ffc02647d9978cba502a4accdf2e94c0a6dc9cc498dd7463381e") From ac501c20ba77bc9970c7498d1be6971e9dcee737 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 30 Jul 2025 11:53:15 -0500 Subject: [PATCH 028/120] pixman: add v0.46.4, v0.44.2 (#810) * pixman: add v0.46.4, v0.44.2 * pixman: depends_on meson@1.3: when @0.44.2: --- repos/spack_repo/builtin/packages/pixman/package.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/repos/spack_repo/builtin/packages/pixman/package.py b/repos/spack_repo/builtin/packages/pixman/package.py index 6be0808245c..5f4ad1afe18 100644 --- a/repos/spack_repo/builtin/packages/pixman/package.py +++ b/repos/spack_repo/builtin/packages/pixman/package.py @@ -21,6 +21,8 @@ class Pixman(AutotoolsPackage, MesonPackage): license("MIT") + version("0.46.4", sha256="d09c44ebc3bd5bee7021c79f922fe8fb2fb57f7320f55e97ff9914d2346a591c") + version("0.44.2", sha256="6349061ce1a338ab6952b92194d1b0377472244208d47ff25bef86fc71973466") version("0.44.0", sha256="89a4c1e1e45e0b23dffe708202cb2eaffde0fe3727d7692b2e1739fec78a7dac") version("0.42.2", sha256="ea1480efada2fd948bc75366f7c349e1c96d3297d09a3fe62626e38e234a625e") version("0.42.0", sha256="07f74c8d95e4a43eb2b08578b37f40b7937e6c5b48597b3a0bb2c13a53f46c13") @@ -42,6 +44,7 @@ class Pixman(AutotoolsPackage, MesonPackage): depends_on("c", type="build") with when("build_system=meson"): depends_on("meson@0.52:", type="build") + depends_on("meson@1.3:", type="build", when="@0.44.2:") depends_on("pkgconfig", type="build") depends_on("flex", type="build") depends_on("bison@3:", type="build") From b2a59654a59fdc66d90c10677184a10bad358a97 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 30 Jul 2025 11:53:36 -0500 Subject: [PATCH 029/120] assimp: add v6.0.2 (#808) --- repos/spack_repo/builtin/packages/assimp/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/assimp/package.py b/repos/spack_repo/builtin/packages/assimp/package.py index 0dd1c679e24..24b87ef3fdb 100644 --- a/repos/spack_repo/builtin/packages/assimp/package.py +++ b/repos/spack_repo/builtin/packages/assimp/package.py @@ -20,6 +20,7 @@ class Assimp(CMakePackage): license("BSD-3-Clause", checked_by="wdconinc") version("master", branch="master") + version("6.0.2", sha256="d1822d9a19c9205d6e8bc533bf897174ddb360ce504680f294170cc1d6319751") version("5.4.3", sha256="66dfbaee288f2bc43172440a55d0235dfc7bf885dda6435c038e8000e79582cb") version("5.4.2", sha256="7414861a7b038e407b510e8b8c9e58d5bf8ca76c9dfe07a01d20af388ec5086a") version("5.4.0", sha256="a90f77b0269addb2f381b00c09ad47710f2aab6b1d904f5e9a29953c30104d3f") From 5666fa6e5b259e70880a2a6d64bdc4301c9bcf34 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 30 Jul 2025 12:00:53 -0500 Subject: [PATCH 030/120] mlpack: add v4.6.2 (#803) --- repos/spack_repo/builtin/packages/mlpack/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/mlpack/package.py b/repos/spack_repo/builtin/packages/mlpack/package.py index 21e08353b11..cdd1aff367e 100644 --- a/repos/spack_repo/builtin/packages/mlpack/package.py +++ b/repos/spack_repo/builtin/packages/mlpack/package.py @@ -21,6 +21,7 @@ class Mlpack(CMakePackage): license("BSD-3-Clause", checked_by="wdconinc") + version("4.6.2", sha256="2fe772da383a935645ced07a07b51942ca178d38129df3bf685890bc3c1752cf") version("4.5.1", sha256="58059b911a78b8bda91eef4cfc6278383b24e71865263c2e0569cf5faa59dda3") version("4.5.0", sha256="aab70aee10c134ef3fe568843fe4b3bb5e8901af30ea666f57462ad950682317") version("4.4.0", sha256="61c604026d05af26c244b0e47024698bbf150dfcc9d77b64057941d7d64d6cf6") From 58276d487102c48de8c8317b5bcb820b481fa9de Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 30 Jul 2025 12:01:14 -0500 Subject: [PATCH 031/120] valgrind: add v3.25.1 (#802) --- repos/spack_repo/builtin/packages/valgrind/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/valgrind/package.py b/repos/spack_repo/builtin/packages/valgrind/package.py index 72c6df180c2..ac9c5e65baa 100644 --- a/repos/spack_repo/builtin/packages/valgrind/package.py +++ b/repos/spack_repo/builtin/packages/valgrind/package.py @@ -29,6 +29,7 @@ class Valgrind(AutotoolsPackage, SourcewarePackage): license("GPL-2.0-or-later") version("develop", branch="master") + version("3.25.1", sha256="61deb8d0727b45c268efdc1b3b6c9e679cd97cbf5ee4b28d1dead7c8b7a271af") version("3.24.0", sha256="71aee202bdef1ae73898ccf7e9c315134fa7db6c246063afc503aef702ec03bd") version("3.23.0", sha256="c5c34a3380457b9b75606df890102e7df2c702b9420c2ebef9540f8b5d56264d") version("3.22.0", sha256="c811db5add2c5f729944caf47c4e7a65dcaabb9461e472b578765dd7bf6d2d4c") From fd5a69715a19431b043bffbbb40a038bf6a33453 Mon Sep 17 00:00:00 2001 From: Chris Marsh Date: Wed, 30 Jul 2025 11:21:19 -0600 Subject: [PATCH 032/120] hdfview: add new version and java usage (#487) --- .../builtin/packages/hdfview/package.py | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/hdfview/package.py b/repos/spack_repo/builtin/packages/hdfview/package.py index 98d5c180bca..7301fd85807 100644 --- a/repos/spack_repo/builtin/packages/hdfview/package.py +++ b/repos/spack_repo/builtin/packages/hdfview/package.py @@ -14,8 +14,9 @@ class Hdfview(Package): and editing HDF (HDF5 and HDF4) files.""" homepage = "https://www.hdfgroup.org/downloads/hdfview/" - url = "https://support.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfview-3.1.4/src/hdfview-3.1.4.tar.gz" + url = "https://github.com/HDFGroup/hdfview/releases/download/v3.3.2/HDFView-3.3.2.tar.gz" + version("3.3.2", sha256="6e83811ae98a45b82023baeca5335b9cfafd75d9f4cada93661896618b2b47aa") version("3.3.0", sha256="0916161861c21fa8dd354b445b48eff5a53d80a5c0b383e79eb64b7b108e2430") version("3.2.0", sha256="d3c0deff2cbd959508c4da9c712da72fb204ff6818a3434f00a7071f8e8cf2b8") version("3.1.4", sha256="898fcd5227d4e7b697efde5e5a969405f96b72517f9dfbdbdce2991290fd56a0") @@ -30,6 +31,10 @@ class Hdfview(Package): patch("fix_build.patch", when="@3.1.1") depends_on("ant", type="build") + + depends_on("java") + depends_on("java@21:", when="@3.3.2:") + depends_on("hdf5 +java") depends_on("hdf +java -external-xdr +shared") @@ -45,8 +50,18 @@ def install(self, spec, prefix): path = "build/HDF_Group/HDFView/{0}/".format(dir_version) hdfview = "{0}/{1}".format(path, "hdfview.sh") + # set the internal dir to be the spack install prefix filter_file(r"\$dir", prefix, hdfview) + # the wrapper script looks for these subdirectories, however they are not + # in the spackk install prefix, so filter out + filter_file(r"/lib/app", "", hdfview) + + # set the javabin to be spack's java + filter_file( + r"export JAVABIN=.+", f"export JAVABIN={self.spec['java'].prefix}/bin", hdfview + ) + mkdirp(prefix.bin) install(hdfview, prefix.bin.hdfview) chmod = which("chmod") @@ -57,3 +72,14 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("HDF5LIBS", self.spec["hdf5"].prefix) env.set("HDFLIBS", self.spec["hdf"].prefix) env.set("ANT_HOME", self.spec["ant"].prefix) + env.set("JAVA_HOME ", self.spec["java"].prefix) + + def url_for_version(self, version): + + # the new versions have a complex https://objects.githubusercontent.com url so use the + # github release + if version > Version("3.3.0"): + return super().url_for_version(version) + + url_fmt = "https://support.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfview-{0}/src/hdfview-{0}.tar.gz" + return url_fmt.format(version) From ff12d459e04c501edb3955105a1594a4534106c9 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 30 Jul 2025 12:23:05 -0500 Subject: [PATCH 033/120] coin3d: add v4.0.4 (#795) --- repos/spack_repo/builtin/packages/coin3d/package.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/coin3d/package.py b/repos/spack_repo/builtin/packages/coin3d/package.py index 00c88b0081b..b8adad5237c 100644 --- a/repos/spack_repo/builtin/packages/coin3d/package.py +++ b/repos/spack_repo/builtin/packages/coin3d/package.py @@ -19,6 +19,7 @@ class Coin3d(AutotoolsPackage, CMakePackage): license("BSD-3-Clause") + version("4.0.4", sha256="80efd056a445050939a265db307d106ac7524105774d4be924a71b0cff23a719") version("4.0.0", sha256="e4f4bd57804b8ed0e017424ad2e45c112912a928b83f86c89963df9015251476") version("3.1.0", sha256="70dd5ef39406e1d9e05eeadd54a5b51884a143e127530876a97744ca54173dc3") version("3.0.0", sha256="d5c2eb0ecaa5c83d93daf0e9e275e58a6a8dfadc74c873d51b0c939011f81bfa") @@ -61,7 +62,9 @@ class Coin3d(AutotoolsPackage, CMakePackage): ) def url_for_version(self, version): - if version >= Version("4.0.0"): + if version >= Version("4.0.1"): + url = "https://github.com/coin3d/coin/releases/download/v{0}/coin-{0}-src.tar.gz" + elif version >= Version("4.0.0"): url = "https://github.com/coin3d/coin/releases/download/Coin-{0}/coin-{0}-src.tar.gz" else: url = "https://github.com/coin3d/coin/archive/Coin-{0}.tar.gz" From 6eb67db1b8e52c339969d2b34c80b79d6221fd72 Mon Sep 17 00:00:00 2001 From: Dave Keeshan <96727608+davekeeshan@users.noreply.github.com> Date: Wed, 30 Jul 2025 18:25:06 +0100 Subject: [PATCH 034/120] libftdi: new package (#113) * Iniitial commit of compile file required for libftdi, covers version 1.3 through 1.5 * Remove unused import, os * Move license higher to pass style check * Remove one line to pass style check * Move file location to track with changes in spack and remove type="Build" from libusb and libconfuse * Fix formatting with black * Update var/spack/repos/spack_repo/builtin/packages/libftdi/package.py Sorry for the delay, (vacation) this makes sense Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> * Move file to repos directory * Black formatting --------- Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> --- .../builtin/packages/libftdi/package.py | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 repos/spack_repo/builtin/packages/libftdi/package.py diff --git a/repos/spack_repo/builtin/packages/libftdi/package.py b/repos/spack_repo/builtin/packages/libftdi/package.py new file mode 100644 index 00000000000..442bd98f9b1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/libftdi/package.py @@ -0,0 +1,30 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class Libftdi(CMakePackage): + """libftdi - A library (using libusb) to talk to FTDI's UART/FIFO chips + including the popular bitbang mode""" + + license("GPL-2.0-or-later") + + homepage = "https://www.intra2net.com/en/developer/libftdi/index.php" + git = "git://developer.intra2net.com/libftdi" + + maintainers("davekeeshan") + + version("master", branch="master") + version("1.5", commit="5c2c58e03ea999534e8cb64906c8ae8b15536c30") + version("1.4", commit="d5c1622a2ff0c722c0dc59533748489b45774e55") + version("1.3", commit="96d337a16b723d792f6ab5f40b7aa43120ac4782") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("libusb") + depends_on("libconfuse") From 633ec00a198102d61e7ffcdd551cd455a8689e66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A9vis=20Morvany?= <63788850+tretre91@users.noreply.github.com> Date: Wed, 30 Jul 2025 19:27:24 +0200 Subject: [PATCH 035/120] ddc: new package (#703) * Add ddc * Use the right copyright * Apply spack style * Fix formatting strings * Remove unneeded dependencies - Remove the blas dependency - Remove the `kokkos-kernels ~shared` requirement * Don't build pdiplugin-user-code's tests * Add maintainer * Use main instead of develop for the main branch version Co-authored-by: Thomas Padioleau --------- Co-authored-by: Thomas Padioleau --- .../builtin/packages/ddc/package.py | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 repos/spack_repo/builtin/packages/ddc/package.py diff --git a/repos/spack_repo/builtin/packages/ddc/package.py b/repos/spack_repo/builtin/packages/ddc/package.py new file mode 100644 index 00000000000..69adfdc10da --- /dev/null +++ b/repos/spack_repo/builtin/packages/ddc/package.py @@ -0,0 +1,142 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage + +from spack.package import * + + +class Ddc(CMakePackage): + """DDC is the discrete domain computation library.""" + + homepage = "https://github.com/CExA-project/ddc" + git = "https://github.com/CExA-project/ddc.git" + url = "https://github.com/CExA-project/ddc/archive/refs/tags/v0.4.2.tar.gz" + + maintainers("tpadioleau", "tretre91") + + license("MIT", checked_by="tpadioleau") + + version("main", branch="main", no_cache=True) + version("0.8.0", sha256="6c6d28f1d406e1417021f88d748829cae0afce2cb3714cf82fd3f4cd3b7b91b4") + version("0.7.0", sha256="128dd93d0021da35dcd62db7eabab3136c826a924dbe90368361d347e6bd3111") + + variant("fft", default=True, description="Build DDC kernels for FFT") + variant("pdi", default=True, description="Build DDC PDI wrapper") + variant("splines", default=True, description="Build DDC kernels for splines") + variant("deprecated_code", default=True, description="Build deprecated code") + variant( + "double_precision", + default=True, + description="Use double precision floating point numbers instead of single precision", + ) + variant("tests", default=False, description="Build the tests") + + depends_on("cxx", type="build") + + depends_on("cmake@3.22:3", type="build") + depends_on("kokkos@4.4.1:4") + + with when("+fft"): + for variant, backend in [ + ("~openmp", "host_backend=fftw-serial"), + ("+openmp", "host_backend=fftw-openmp"), + ("+cuda", "device_backend=cufft"), + ("+rocm", "device_backend=hipfft"), + ("+sycl", "device_backend=onemkl"), + ]: + depends_on(f"kokkos-fft@0.3.0 {backend}", when=f"^kokkos {variant}") + + with when("+splines"): + depends_on("ginkgo@1.8:1") + depends_on("kokkos-kernels@4.5.1:4") + depends_on("lapack") + + for arch in CudaPackage.cuda_arch_values: + with when(f"^kokkos +cuda cuda_arch={arch}"): + requires(f"^ginkgo +cuda cuda_arch={arch}") + requires(f"^kokkos-kernels +cuda cuda_arch={arch}") + + for target in ROCmPackage.amdgpu_targets: + requires( + f"^ginkgo +rocm amdgpu_target={target}", + when=f"^kokkos +rocm amdgpu_target={target}", + ) + + requires("^ginkgo +sycl", when="^kokkos +sycl") + requires("^ginkgo +openmp", when="^kokkos +openmp") + + depends_on("pdi@1.6:1", when="+pdi") + + with when("+tests"): + depends_on("googletest@1.14:1 +gmock") + depends_on("pdiplugin-user-code@1.6:1", type=("build", "test"), when="+pdi") + + conflicts( + "^kokkos@4.5.0", msg="DDC is not compatible with the embedded mdspan of Kokkos 4.5.0." + ) + + requires( + "^kokkos +cuda_relocatable_device_code +cuda_constexpr", + when="^kokkos +cuda", + msg="DDC relies on relocatable device code and the constexpr support of nvcc", + ) + requires( + "^kokkos +hip_relocatable_device_code", + when="^kokkos +rocm", + msg="DDC relies on relocatable device code", + ) + requires( + "^kokkos +sycl_relocatable_device_code", + when="^kokkos +sycl", + msg="DDC relies on relocatable device code", + ) + + def url_for_version(self, version): + return f"https://github.com/CExA-project/ddc/archive/refs/tags/v{version}.tar.gz" + + def cmake_args(self): + args = [ + self.define("DDC_BUILD_EXAMPLES", False), + self.define("DDC_BUILD_DOCUMENTATION", False), + self.define("DDC_Kokkos_DEPENDENCY_POLICY", "INSTALLED"), + self.define_from_variant("DDC_BUILD_TESTS", "tests"), + self.define_from_variant("DDC_BUILD_KERNELS_FFT", "fft"), + self.define_from_variant("DDC_BUILD_KERNELS_SPLINES", "splines"), + self.define_from_variant("DDC_BUILD_PDI_WRAPPER", "pdi"), + self.define_from_variant("DDC_BUILD_DEPRECATED_CODE", "deprecated_code"), + self.define_from_variant("DDC_BUILD_DOUBLE_PRECISION", "double_precision"), + ] + + if "+fft" in self.spec: + args.append(self.define("DDC_KokkosFFT_DEPENDENCY_POLICY", "INSTALLED")) + + if "+splines" in self.spec: + args.append(self.define("DDC_KokkosKernels_DEPENDENCY_POLICY", "INSTALLED")) + + lapack_provider = self.spec["lapack"] + if lapack_provider.name == "cray-libsci": + lapack_include_directories = "" + for directory in lapack_provider.headers.directories: + lapack_include_directories += f" -isystem {directory}" + args.extend( + [ + self.define("BLA_PREFER_PKGCONFIG", True), + self.define("BLA_PKGCONFIG_BLAS", "libsci"), + self.define("BLA_PKGCONFIG_LAPACK", "libsci"), + self.define("CMAKE_CXX_FLAGS", lapack_include_directories.strip()), + ] + ) + + if "+tests" in self.spec: + args.append(self.define("DDC_GTest_DEPENDENCY_POLICY", "INSTALLED")) + + if self.spec.satisfies("^kokkos+rocm"): + args.append(self.define("CMAKE_CXX_COMPILER", self["hip"].hipcc)) + else: + args.append(self.define("CMAKE_CXX_COMPILER", self["kokkos"].kokkos_cxx)) + + return args From d8724ac1e55cb7a94ff8d4a2b6e559b4c450d157 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Wed, 30 Jul 2025 19:29:31 +0200 Subject: [PATCH 036/120] py-geemap: add v0.36.0 (#773) Signed-off-by: Adam J. Stewart Co-authored-by: adamjstewart --- .../builtin/packages/py_anywidget/package.py | 25 +++++++++++++++++++ .../builtin/packages/py_geemap/package.py | 10 ++++++-- .../builtin/packages/py_psygnal/package.py | 22 ++++++++++++++++ 3 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 repos/spack_repo/builtin/packages/py_anywidget/package.py create mode 100644 repos/spack_repo/builtin/packages/py_psygnal/package.py diff --git a/repos/spack_repo/builtin/packages/py_anywidget/package.py b/repos/spack_repo/builtin/packages/py_anywidget/package.py new file mode 100644 index 00000000000..f52134e6685 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_anywidget/package.py @@ -0,0 +1,25 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyAnywidget(PythonPackage): + """custom jupyter widgets made easy.""" + + homepage = "https://github.com/manzt/anywidget" + pypi = "anywidget/anywidget-0.9.18.tar.gz" + + license("MIT") + + version("0.9.18", sha256="262cf459b517a7d044d6fbc84b953e9c83f026790b2dd3ce90f21a7f8eded00f") + + depends_on("py-hatchling", type="build") + + with default_args(type=("build", "run")): + depends_on("py-ipywidgets@7.6:") + depends_on("py-typing-extensions@4.2:") + depends_on("py-psygnal@0.8.1:") diff --git a/repos/spack_repo/builtin/packages/py_geemap/package.py b/repos/spack_repo/builtin/packages/py_geemap/package.py index f483c3a9c60..aa2019b38fc 100644 --- a/repos/spack_repo/builtin/packages/py_geemap/package.py +++ b/repos/spack_repo/builtin/packages/py_geemap/package.py @@ -15,16 +15,22 @@ class PyGeemap(PythonPackage): license("MIT") + version("0.36.0", sha256="cb5da3bc6414d4b75dc97a333e46cadc2492de992741abcb09d5b875e6f65823") version("0.35.1", sha256="98f3f17fb1d07a6fe43b06f03fb680e10517adfd96002184015a3d4fe92435d6") with default_args(type="build"): - depends_on("py-setuptools@64:") - depends_on("py-setuptools-scm@8:") + depends_on("py-hatchling", when="@0.36:") + + # Historical dependencies + depends_on("py-setuptools@64:", when="@:0.35") + depends_on("py-setuptools-scm@8:", when="@:0.35") with default_args(type=("build", "run")): + depends_on("py-anywidget", when="@0.36:") depends_on("py-bqplot") depends_on("py-colour") depends_on("py-earthengine-api@1:") + depends_on("py-eerepr@0.1:", when="@0.36:") depends_on("py-eerepr@0.0.4:") depends_on("py-folium@0.17:") depends_on("py-geocoder") diff --git a/repos/spack_repo/builtin/packages/py_psygnal/package.py b/repos/spack_repo/builtin/packages/py_psygnal/package.py new file mode 100644 index 00000000000..d2595dae2f2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_psygnal/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyPsygnal(PythonPackage): + """Fast python callback/event system modeled after Qt Signals.""" + + homepage = "https://github.com/pyapp-kit/psygnal" + pypi = "psygnal/psygnal-0.14.0.tar.gz" + + license("BSD-3-Clause") + + version("0.14.0", sha256="bdd219217d240611af31621a6701505256e245abb6e0dc86d7e4443c3f7d6d41") + + with default_args(type="build"): + depends_on("py-hatchling@1.8:") + depends_on("py-hatch-vcs") From 5b954751952e02b13952d4ec1112be99fbc103bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E5=9D=8E?= Date: Thu, 31 Jul 2025 01:32:28 +0800 Subject: [PATCH 037/120] py-fastapi: fix dependency (#777) --- repos/spack_repo/builtin/packages/py_fastapi/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/py_fastapi/package.py b/repos/spack_repo/builtin/packages/py_fastapi/package.py index 9bfb1d8ade0..f51f205827a 100644 --- a/repos/spack_repo/builtin/packages/py_fastapi/package.py +++ b/repos/spack_repo/builtin/packages/py_fastapi/package.py @@ -47,7 +47,7 @@ class PyFastapi(PythonPackage): 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.7.4:1", when="@0.96.1:0.100", 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")) From 242022621044d5e7045765d82c9e085611e7ccee Mon Sep 17 00:00:00 2001 From: Michael Kuhn Date: Wed, 30 Jul 2025 19:34:16 +0200 Subject: [PATCH 038/120] bash: add v5.3 (#587) --- repos/spack_repo/builtin/packages/bash/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/repos/spack_repo/builtin/packages/bash/package.py b/repos/spack_repo/builtin/packages/bash/package.py index c2f4cee1c1c..80c065138a2 100644 --- a/repos/spack_repo/builtin/packages/bash/package.py +++ b/repos/spack_repo/builtin/packages/bash/package.py @@ -18,6 +18,7 @@ class Bash(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") + version("5.3", sha256="62dd49c44c399ed1b3f7f731e87a782334d834f08e098a35f2c87547d5dbb269") version("5.2", sha256="a139c166df7ff4471c5e0733051642ee5556c1cc8a4a78f145583c5c81ab32fb") version("5.1", sha256="cc012bc860406dcf42f64431bcd3d2fa7560c02915a601aba9cd597a39329baa") version("5.0", sha256="b4a80f2ac66170b2913efbfb9f2594f1f76c7b1afd11f799e22035d63077fb4d") @@ -31,6 +32,7 @@ class Bash(AutotoolsPackage, GNUMirrorPackage): depends_on("libtool", type="build") depends_on("ncurses") + depends_on("readline@8.3:", when="@5.3:") depends_on("readline@8.2:", when="@5.2:") depends_on("readline@5.0:") depends_on("iconv") From 63d3063239246195e49f99acd69b4f99fdf73a52 Mon Sep 17 00:00:00 2001 From: cosunae Date: Wed, 30 Jul 2025 19:38:51 +0200 Subject: [PATCH 039/120] libaec: add v1.1.1 -> v1.1.4 (#705) --- repos/spack_repo/builtin/packages/libaec/package.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/repos/spack_repo/builtin/packages/libaec/package.py b/repos/spack_repo/builtin/packages/libaec/package.py index 7cf67f69e3f..805a14a3078 100644 --- a/repos/spack_repo/builtin/packages/libaec/package.py +++ b/repos/spack_repo/builtin/packages/libaec/package.py @@ -22,6 +22,10 @@ class Libaec(CMakePackage): license("BSD-2-Clause") + version("1.1.4", sha256="95439e861968cb0638a10b0bbdb37c9a10df1b22c5ee0293902acdbc68140f53") + version("1.1.3", sha256="453de44eb6ea2500843a4cf4d2e97d1be251d2df7beae6c2ebe374edcb11e378") + version("1.1.2", sha256="dc03ddbc9dabf806af1036e2c7bde44bbb1a2a6e0b186d46a6ca06390622afb9") + version("1.1.1", sha256="7be8e9b9a508fc165896fd7d85274666ac09e5a01be4f7de9fef5317065e13d4") version("1.0.6", sha256="abab8c237d85c982bb4d6bde9b03c1f3d611dcacbd58bca55afac2496d61d4be") version("1.0.5", sha256="7bf7be828dc3caefcc968e98a59b997b6b3b06e4123137e9e0b0988dc1be3b2f") version("1.0.4", sha256="7456adff4e817f94fc57a3eca824db1c203770ffb7a9253c435093ac5e239e31") From c457c249f67260ef44554e1dc1a7582d81f02c38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E5=9D=8E?= Date: Thu, 31 Jul 2025 01:39:53 +0800 Subject: [PATCH 040/120] cutlass: add v4.0.0, v4.1.0 (#667) --- repos/spack_repo/builtin/packages/cutlass/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/repos/spack_repo/builtin/packages/cutlass/package.py b/repos/spack_repo/builtin/packages/cutlass/package.py index 272a03a6279..9e934d720a3 100644 --- a/repos/spack_repo/builtin/packages/cutlass/package.py +++ b/repos/spack_repo/builtin/packages/cutlass/package.py @@ -17,6 +17,8 @@ class Cutlass(CMakePackage, CudaPackage): version("main", branch="main") version("master", branch="master") + version("4.1.0", sha256="8d4675b11e9e5207e3940eaac0f46db934ada371cbb3627c9fda642d912b6230") + version("4.0.0", sha256="44a121c5878827875856c175ebe82e955062e37cd61fcdf31ebe2e8874f2fc5c") version("3.9.2", sha256="4b97bd6cece9701664eec3a634a1f2f2061d85bf76d843fa5799e1a692b4db0d") version("3.9.1", sha256="7ffed3d7363a485c7d8ade63b3944c0a1e3e4cf2f22007f6d1cc3849c96bdc88") version("3.9.0", sha256="0ea98a598d1f77fade5187ff6ec6d9e6ef3acd267ee68850aae6e800dcbd69c7") From 9311ed03c213ecb0dac62a96276ca7e1fb607cf8 Mon Sep 17 00:00:00 2001 From: "Seth R. Johnson" Date: Wed, 30 Jul 2025 13:41:45 -0400 Subject: [PATCH 041/120] gdbm: patch nonexistent function (#373) See https://github.com/Homebrew/homebrew-core/pull/224974 --- repos/spack_repo/builtin/packages/gdbm/package.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/repos/spack_repo/builtin/packages/gdbm/package.py b/repos/spack_repo/builtin/packages/gdbm/package.py index 01e11ff1295..e0b059eabea 100644 --- a/repos/spack_repo/builtin/packages/gdbm/package.py +++ b/repos/spack_repo/builtin/packages/gdbm/package.py @@ -39,6 +39,13 @@ class Gdbm(AutotoolsPackage, GNUMirrorPackage): depends_on("readline") + # Fix nanosleep build error: https://cgit.git.savannah.gnu.org/cgit/gdbm.git/commit/?id=ed0a865345681982ea02c6159c0f3d7702c928a1 + patch( + "https://git.savannah.gnu.org/cgit/gdbm.git/rawdiff/?id=ed0a865345681982ea02c6159c0f3d7702c928a1", + sha256="cdba23a8da0bbdf91921247d226f9ca13e2a1c9541434f7a9132ba39346762ad", + when="@1.25 platform=darwin", + ) + patch("macOS.patch", when="@1.21 platform=darwin") patch("gdbm.patch", when="@:1.18 %gcc@10:") patch("gdbm.patch", when="@:1.18 %clang@11:") From a30431e70db8d06393b38669bf838c62fd50a787 Mon Sep 17 00:00:00 2001 From: Matt Thompson Date: Wed, 30 Jul 2025 13:44:05 -0400 Subject: [PATCH 042/120] gromacs: add v2024.4, apple-clang openmp support for 2025+ (#61) * gromacs: add v2024.4, apple-clang openmp support for 2025+ * Fix dependency spec Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> * Update comment Co-authored-by: Mark Abraham --------- Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Co-authored-by: Mark Abraham --- repos/spack_repo/builtin/packages/gromacs/package.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/gromacs/package.py b/repos/spack_repo/builtin/packages/gromacs/package.py index a9204435d8b..bbcd36af83d 100644 --- a/repos/spack_repo/builtin/packages/gromacs/package.py +++ b/repos/spack_repo/builtin/packages/gromacs/package.py @@ -226,9 +226,19 @@ class Gromacs(CMakePackage, CudaPackage): ) variant("openmp", default=True, description="Enables OpenMP at configure time") + + # When using apple-clang version 15.x or newer, need to use the llvm-openmp library + # We also protect with version 2025+ as there seems to be a CMake bug with + # Apple Clang and OpenMP that is fixed in 2025 + depends_on("llvm-openmp", when="@2025: +openmp %apple-clang@15:", type=("build", "run")) + + # But we need to block +openmp %apple-clang for GROMACS older than 2025 conflicts( - "+openmp", when="%apple-clang", msg="OpenMP not available for the Apple clang compiler" + "+openmp", + when="@:2024 %apple-clang", + msg="OpenMP not available for the Apple clang compiler", ) + variant("openmp_max_threads", default="none", description="Max number of OpenMP threads") conflicts( "+openmp_max_threads", when="~openmp", msg="OpenMP is off but OpenMP Max threads is set" From 506c7f30098d905d632fba37ff9749138605d92f Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 30 Jul 2025 11:45:52 -0600 Subject: [PATCH 043/120] spiner: add v1.6.4 (#676) --- repos/spack_repo/builtin/packages/spiner/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/spiner/package.py b/repos/spack_repo/builtin/packages/spiner/package.py index 6b4553b8b1d..ceecd706e5d 100644 --- a/repos/spack_repo/builtin/packages/spiner/package.py +++ b/repos/spack_repo/builtin/packages/spiner/package.py @@ -20,6 +20,7 @@ class Spiner(CMakePackage): license("BSD-3-Clause") version("main", branch="main") + version("1.6.4", sha256="a51de69e438f5e3893958736d246c41ca87fd6442ee1e0a9cc5d442861ac5404") version("1.6.3", sha256="f78c50e0b4d7c4fd3f380432f12a528941e2bee5171d6f200e9a52bbcea940e9") version("1.6.2", sha256="91fb403ce3b151fbdf8b6ff5aed0d8dde1177749f5633951027b100ebc7080d3") version("1.6.1", sha256="52774322571d3b9b0dc3c6b255257de9af0e8e6170834360f2252c1ac272cbe7") From ef586f2506e382d7cba1b6d1e7928f0e07ab4e25 Mon Sep 17 00:00:00 2001 From: "Ali K. Hamze" <6139089+alikhamze@users.noreply.github.com> Date: Wed, 30 Jul 2025 13:47:03 -0400 Subject: [PATCH 044/120] py-gpaw: new maintainers and package versions (#361) * Add myself and @Chronum94 as maintainers. * Update license, homepage, and pypi package. * Reorganize dependencies for clarity. * Add versions 23.6.1-25.1.0. * Add elpa variant. * Update dependencies for older versions to use when() context manager. * Limit versions 21.1.0 and lower to python 3.11 and lower due to removal of distutils from the standard library in python 3.12. * Replace format() with f-strings for readability. * Add elpa logic to the configuration writer. * Simplify siteconfig file writing. * Replace the fftw dependency with fftw-api and add some documenting comments. * Remove v1.3 and the associated patch because python 2 is no longer available in spack. * Update siteconfig writer to use fftw-api like the +fftw variant does. * Add openmp variant. * Mark all but the last two versions as deprecated. * Use defautl_args context manager for deprecating version. * Remove unneeded mpi compiler specification in config file. It broke CI tests and is not needed (tested for versions 23.1.0 and later). * Remove deprecated tag from newly added older versions. * [@spackbot] updating style on behalf of alikhamze * Revert "[@spackbot] updating style on behalf of alikhamze" This reverts commit 66b50562b216e0a49593ae8ac6de483eb028e0dd. * Manual style fixes since spackbot made merge conflicts in unrelated package files. * Remove comment about scalapack macros. They are used internally in gpaw, so we'll keep them. * Write PARALLEL mpi only for versions up to 19.8.1. Newer versions don't need it and jobs can be run using `gpaw python` instead of `gpaw-python`. * Add numpy_include only for @19.8.1 and remove python_include entirely. * Write parallel macro only for @19.8.1, no longer write mpi_include_dirs and mpi_library_dirs. * Restrict scipy and ase dependency versions for older gpaw versions. * Style fixes. * Add version 25.7.0 * Style fix. --------- Co-authored-by: alikhamze --- .../builtin/packages/py_gpaw/libxc.patch | 12 -- .../builtin/packages/py_gpaw/package.py | 197 ++++++++++++------ 2 files changed, 137 insertions(+), 72 deletions(-) delete mode 100644 repos/spack_repo/builtin/packages/py_gpaw/libxc.patch diff --git a/repos/spack_repo/builtin/packages/py_gpaw/libxc.patch b/repos/spack_repo/builtin/packages/py_gpaw/libxc.patch deleted file mode 100644 index 09a992876e2..00000000000 --- a/repos/spack_repo/builtin/packages/py_gpaw/libxc.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur gpaw-1.3.0.orig/c/xc/libxc.c gpaw-1.3.0/c/xc/libxc.c ---- gpaw-1.3.0.orig/c/xc/libxc.c 2019-09-06 14:59:35.151442058 +0300 -+++ gpaw-1.3.0/c/xc/libxc.c 2019-09-06 15:00:46.211440365 +0300 -@@ -801,7 +801,7 @@ - if (!PyArg_ParseTuple(args, "dOOOOOO", - &c, &n_g, &sigma_g, &lapl_g, &tau_g, &v_g, &vx_g)) - return NULL; -- xc_mgga_x_tb09_set_params(self->functional[0], c); -+ xc_func_set_ext_params(self->functional[0], &c); - xc_mgga_vxc(self->functional[0], PyArray_DIM(n_g, 0), - PyArray_DATA(n_g), - PyArray_DATA(sigma_g), diff --git a/repos/spack_repo/builtin/packages/py_gpaw/package.py b/repos/spack_repo/builtin/packages/py_gpaw/package.py index 3d29d1a0586..cb2f2f81633 100644 --- a/repos/spack_repo/builtin/packages/py_gpaw/package.py +++ b/repos/spack_repo/builtin/packages/py_gpaw/package.py @@ -12,45 +12,112 @@ class PyGpaw(PythonPackage): projector-augmented wave (PAW) method and the atomic simulation environment (ASE).""" - homepage = "https://wiki.fysik.dtu.dk/gpaw/index.html" - pypi = "gpaw/gpaw-1.3.0.tar.gz" + homepage = "https://gpaw.readthedocs.io/index.html" + pypi = "gpaw/gpaw-25.7.0.tar.gz" - license("GPL-3.0-only") + maintainers("alikhamze", "Chronum94") - version("21.1.0", sha256="96843b68e04bd1c12606036c9f99b0ddfa5e6ee08ce46835e6bb347a6bd560a3") - version("20.10.0", sha256="77c3d3918f5cc118e448f8063af4807d163b31d502067f5cbe31fc756eb3971d") - version("20.1.0", sha256="c84307eb9943852d78d966c0c8856fcefdefa68621139906909908fb641b8421") - version("19.8.1", sha256="79dee367d695d68409c4d69edcbad5c8679137d6715da403f6c2500cb2178c2a") - version("1.3.0", sha256="cf601c69ac496421e36111682bcc1d23da2dba2aabc96be51accf73dea30655c") + license("GPL-3.0-or-later", checked_by="alikhamze") + + version("25.7.0", sha256="93ac829bba36be74eab0d7deef5eb798613c04edbce196837208d206cf39c431") + version("25.1.0", sha256="80236e779784df3317e7da395dc59ea403bc0213bb3a68d02c17957162e972ea") + version("24.6.0", sha256="fb48ef0db48c0e321ce5967126a47900bba20c7efb420d6e7b5459983bd8f6f6") + version("23.9.1", sha256="19a24840b876003528864b7a0b38fc0d456800b83b8666b1f724273660745b47") + version("23.6.1", sha256="ff56d323a499972c8991770a6ab0334a6dd18df36e9c94360e0aa1ddf8867dfd") + with default_args(deprecated=True): + version( + "21.1.0", sha256="96843b68e04bd1c12606036c9f99b0ddfa5e6ee08ce46835e6bb347a6bd560a3" + ) + version( + "20.10.0", sha256="77c3d3918f5cc118e448f8063af4807d163b31d502067f5cbe31fc756eb3971d" + ) + version( + "20.1.0", sha256="c84307eb9943852d78d966c0c8856fcefdefa68621139906909908fb641b8421" + ) + version( + "19.8.1", sha256="79dee367d695d68409c4d69edcbad5c8679137d6715da403f6c2500cb2178c2a" + ) variant("mpi", default=True, description="Build with MPI support") variant("scalapack", default=True, description="Build with ScaLAPACK support") variant("fftw", default=True, description="Build with FFTW support") variant("libvdwxc", default=True, description="Build with libvdwxc support") + variant("elpa", default=True, description="Build with ELPA support") + variant("openmp", default=True, description="Build with OpenMP support") - depends_on("c", type="build") # generated - - depends_on("mpi", when="+mpi", type=("build", "link", "run")) - depends_on("python@2.6:", type=("build", "run"), when="@:1.3.0") - depends_on("python@3.5:", type=("build", "run"), when="@19.8.1:") - depends_on("python@3.6:", type=("build", "run"), when="@20.10.0:") + # Build dependencies + depends_on("c", type="build") depends_on("py-setuptools", type="build") - depends_on("py-ase@3.13.0:", type=("build", "run"), when="@1.3.0") - depends_on("py-ase@3.18.0:", type=("build", "run"), when="@19.8.1") - depends_on("py-ase@3.19.0:", type=("build", "run"), when="@20.1.0") - depends_on("py-ase@3.20.1:", type=("build", "run"), when="@20.10.0") - depends_on("py-ase@3.21.0:", type=("build", "run"), when="@21.1.0") - depends_on("py-numpy", type=("build", "run")) - depends_on("py-scipy", type=("build", "run")) - depends_on("libxc@3:4.3.4") + + # Version-agnostic required dependencies depends_on("blas") depends_on("lapack") - depends_on("fftw+mpi", when="+fftw +mpi") - depends_on("fftw~mpi", when="+fftw ~mpi") + + # Version-specific required dependencies + with when("@25.7.0:"): + depends_on("libxc") + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-ase@3.25.0:", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy@1.6.0:", type=("build", "run")) + + with when("@25.1.0:"): + depends_on("libxc") + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-ase@3.23.0:", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy@1.6.0:", type=("build", "run")) + + with when("@24.1.0:24.6.0"): + depends_on("libxc@:6.2.2") + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-ase@3.23.0:", type=("build", "run")) + depends_on("py-numpy@1.17:1.26.4", type=("build", "run")) + depends_on("py-scipy@1.6.0:", type=("build", "run")) + + with when("@23.6.1:23.9.1"): + depends_on("libxc@:6.2.2") + depends_on("python@3.7:", type=("build", "run")) + depends_on("py-ase@3.22.1:", type=("build", "run")) + depends_on("py-numpy@1.17:1.26.4", type=("build", "run")) + depends_on("py-scipy@1.6.0:", type=("build", "run")) + + with when("@21.1.0"): + depends_on("libxc@3:4.3.4") + depends_on("python@3.6:3.11", type=("build", "run")) + depends_on("py-ase@3.21.0:", type=("build", "run")) + depends_on("py-numpy@:1.26.4", type=("build", "run")) + depends_on("py-scipy@1.2.0:", type=("build", "run")) + + with when("@20.10.0"): + depends_on("libxc@3:4.3.4") + depends_on("python@3.6:3.11", type=("build", "run")) + depends_on("py-ase@3.20.1:", type=("build", "run")) + depends_on("py-numpy@:1.26.4", type=("build", "run")) + depends_on("py-scipy@1.2.0:1.6.3", type=("build", "run")) + + with when("@20.1.0"): + depends_on("libxc@3:4.3.4") + depends_on("python@3.6:3.11", type=("build", "run")) + depends_on("py-ase@3.19.0:3.20.1", type=("build", "run")) + depends_on("py-numpy@:1.26.4", type=("build", "run")) + depends_on("py-scipy@1.2.0:1.6.3", type=("build", "run")) + + with when("@19.8.1"): + depends_on("libxc@3:4.3.4") + depends_on("python@3.5:3.11", type=("build", "run")) + depends_on("py-ase@3.18.0:3.19.0", type=("build", "run")) + depends_on("py-numpy@:1.26.4", type=("build", "run")) + depends_on("py-scipy@1.2.0:1.6.3", type=("build", "run")) + + # Variant dependencies + depends_on("mpi", when="+mpi", type=("build", "link", "run")) + depends_on("fftw-api", when="+fftw") depends_on("scalapack", when="+scalapack") depends_on("libvdwxc", when="+libvdwxc") - - patch("libxc.patch", when="@1.3.0") + # Fixed elpa version due to compilation/linking errors on older and newer versions. + # Tested for versions @23.6.1:25.1.0 + depends_on("elpa@2022.11.001", when="+elpa") def patch(self): spec = self.spec @@ -60,36 +127,51 @@ def patch(self): blas = spec["blas"] lapack = spec["lapack"] - python_include = spec["python"].headers.directories[0] - numpy_include = join_path( - self["py-numpy"].module.python_platlib, "numpy", "core", "include" - ) - libs = blas.libs + lapack.libs + libxc.libs - include_dirs = [ - python_include, - numpy_include, - blas.prefix.include, - lapack.prefix.include, - libxc.prefix.include, - ] + + include_dirs = [blas.prefix.include, lapack.prefix.include, libxc.prefix.include] + + if spec.satisfies("@:19.8.1"): + numpy_include = join_path( + self["py-numpy"].module.python_platlib, "numpy", "core", "include" + ) + include_dirs += [numpy_include] + + runtime_library_dirs = [] + + bools = "" + if "+mpi" in spec: libs += spec["mpi"].libs - mpi_include_dirs = repr([spec["mpi"].prefix.include]) - mpi_library_dirs = repr(list(spec["mpi"].libs.directories)) include_dirs.append(spec["mpi"].prefix.include) + if "+scalapack" in spec: libs += spec["scalapack"].libs include_dirs.append(spec["scalapack"].prefix.include) scalapack_macros = repr( [("GPAW_NO_UNDERSCORE_CBLACS", "1"), ("GPAW_NO_UNDERSCORE_CSCALAPACK", "1")] ) + bools += "scalapack = True\n" + if "+fftw" in spec: - libs += spec["fftw"].libs - include_dirs.append(spec["fftw"].prefix.include) + libs += spec["fftw-api"].libs + include_dirs.append(spec["fftw-api"].prefix.include) + bools += "fftw = True\n" + if "+libvdwxc" in spec: libs += spec["libvdwxc"].libs include_dirs.append(spec["libvdwxc"].prefix.include) + bools += "libvdwxc = True\n" + + if "+elpa" in spec: + libs += spec["elpa"].libs + include_dirs.append(spec["elpa"].prefix.include) + bools += "elpa = True\n" + runtime_library_dirs += spec["elpa"].libs.directories + + if "+openmp" in spec: + openmp_compile_args = ["-fopenmp"] + openmp_link_args = ["-fopenmp"] lib_dirs = list(libs.directories) libs = list(libs.names) @@ -101,23 +183,18 @@ def patch(self): cfgfile = "siteconfig.py" with open(cfgfile, "w") as f: - f.write("libraries = {0}\n".format(repr(libs))) - f.write("include_dirs = {0}\n".format(repr(include_dirs))) - f.write("library_dirs = {0}\n".format(repr(lib_dirs))) - f.write("extra_link_args += ['-Wl,-rpath={0}']\n".format(rpath_str)) + f.write(bools) + f.write(f"libraries = {repr(libs)}\n") + f.write(f"include_dirs = {repr(include_dirs)}\n") + f.write(f"library_dirs = {repr(lib_dirs)}\n") + f.write(f"extra_link_args += ['-Wl,-rpath={rpath_str}']\n") if "+mpi" in spec: - f.write("define_macros += [('PARALLEL', '1')]\n") - f.write("compiler='{0}'\n".format(spec["mpi"].mpicc)) - f.write("mpicompiler = '{0}'\n".format(spec["mpi"].mpicc)) - f.write("mpi_include_dirs = {0}\n".format(mpi_include_dirs)) - f.write("mpi_library_dirs = {0}\n".format(mpi_library_dirs)) - else: - f.write("compiler='{0}'\n".format(self.compiler.cc)) - f.write("mpicompiler = None\n") + if spec.satisfies("@:19.8.1"): + f.write("define_macros += [('PARALLEL', '1')]\n") if "+scalapack" in spec: - f.write("scalapack = True\n") - f.write("define_macros += {0}\n".format(scalapack_macros)) - if "+fftw" in spec: - f.write("fftw = True\n") - if "+libvdwxc" in spec: - f.write("libvdwxc = True\n") + f.write(f"define_macros += {scalapack_macros}\n") + if "+elpa" in spec: + f.write(f"runtime_library_dirs = {repr(runtime_library_dirs)}\n") + if "+openmp" in spec: + f.write(f"extra_compile_args += {openmp_compile_args}\n") + f.write(f"extra_link_args += {openmp_link_args}\n") From ee1b48aa6f2323db517f3515c9fb195331b9f143 Mon Sep 17 00:00:00 2001 From: Alec Scott <19558067+alecbcs@users.noreply.github.com> Date: Wed, 30 Jul 2025 10:53:33 -0700 Subject: [PATCH 045/120] fzf: add v0.64.0 (#626) --- repos/spack_repo/builtin/packages/fzf/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/fzf/package.py b/repos/spack_repo/builtin/packages/fzf/package.py index 78c975ee135..0005cbdc076 100644 --- a/repos/spack_repo/builtin/packages/fzf/package.py +++ b/repos/spack_repo/builtin/packages/fzf/package.py @@ -26,6 +26,7 @@ class Fzf(GoPackage): # Versions from newest to oldest version("master", branch="master") + version("0.64.0", sha256="e990529375a75e9be03b58b6a136573b9fd1189c1223aaa760e47fcb94812172") version("0.62.0", sha256="e5beae86a3d026b2c2cfc165715d45b831b9f337a9e96f711ba3bc3d15e50900") version("0.61.0", sha256="5d72cdf708c6adc240b3b43dfecd218cf4703ea609422fb4d62812e9f79f0a12") version("0.60.3", sha256="bdef337774050c26c6c4a6f38bc4ccb0901450854cd7f667cb3a330166a9ada5") From 7bfe695c705c873d6d1f6c274a95c2711949a0f7 Mon Sep 17 00:00:00 2001 From: snehring <7978778+snehring@users.noreply.github.com> Date: Wed, 30 Jul 2025 13:00:06 -0500 Subject: [PATCH 046/120] javafx: adding v21.0.8 and v17.0.16 (#605) Signed-off-by: Shane Nehring --- .../builtin/packages/javafx/package.py | 41 ++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/javafx/package.py b/repos/spack_repo/builtin/packages/javafx/package.py index 05e0d3f48b3..ddbcfad9f73 100644 --- a/repos/spack_repo/builtin/packages/javafx/package.py +++ b/repos/spack_repo/builtin/packages/javafx/package.py @@ -9,6 +9,24 @@ from spack.package import * _versions = { + "21.0.8": { + "linux": { + "x86_64": ( + "https://download2.gluonhq.com/openjfx/21.0.8/openjfx-21.0.8_linux-x64_bin-sdk.zip", + "203530224e01b5a4b65e8c78f2569e5c491115b3523c0678b5b813b28402b562", + ) + }, + "darwin": { + "arm64": ( + "https://download2.gluonhq.com/openjfx/21.0.8/openjfx-21.0.8_osx-aarch64_bin-sdk.zip", + "261c429c6f55adccab13a937781c18e07d71b9c16355c6b420962443e5f9e85a", + ), + "x86_64": ( + "https://download2.gluonhq.com/openjfx/21.0.8/openjfx-21.0.8_osx-x64_bin-sdk.zip", + "35ae9f9a4b1a3a3d40102ca519c2f4e04e63b8368fab8d57323a8c07ba2ad0a5", + ), + }, + }, "20.0.1": { "linux": { "aarch64": ( @@ -30,7 +48,25 @@ "aa01f301bc611997f60ac86c2d9a7d7d1f652fd7092745720ae49cf7bb2935e4", ), }, - } + }, + "17.0.16": { + "linux": { + "x86_64": ( + "https://download2.gluonhq.com/openjfx/17.0.16/openjfx-17.0.16_linux-x64_bin-sdk.zip", + "0460f70d19da9791abdbfe4ae8280e540500fad95fdeb8b833de6e05cbaadcb9", + ) + }, + "darwin": { + "arm64": ( + "https://download2.gluonhq.com/openjfx/17.0.16/openjfx-17.0.16_osx-aarch64_bin-sdk.zip", + "8f1bf9d0ceacfba71232a219dba8ef6e4923c811bdf87381c2f6946e6695225f", + ), + "x86_64": ( + "https://download2.gluonhq.com/openjfx/17.0.16/openjfx-17.0.16_osx-x64_bin-sdk.zip", + "3034b2ad1e0a5f4bd29984b036a2e5111a6d1c3004317972061e9f7912e70b5c", + ), + }, + }, } @@ -54,6 +90,9 @@ class Javafx(Package): extends("openjdk") + depends_on("openjdk@17:", when="@20:21") + depends_on("openjdk@11:", when="@17") + conflicts("target=ppc64le:", msg="JavaFX is not available for ppc64le") conflicts("target=ppc64:", msg="JavaFX is not available for ppc64") conflicts("target=riscv64:", msg="JavaFX is not available for riscv64") From c4d983b764d7b1ee2b63da79f5f25365ac61ce7a Mon Sep 17 00:00:00 2001 From: Mateusz Jakub Fila <37295697+m-fila@users.noreply.github.com> Date: Wed, 30 Jul 2025 20:35:22 +0200 Subject: [PATCH 047/120] Julia: add v1.11.6 (#562) --- repos/spack_repo/builtin/packages/julia/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/julia/package.py b/repos/spack_repo/builtin/packages/julia/package.py index 58a3dddc790..5e3ccf9eaea 100644 --- a/repos/spack_repo/builtin/packages/julia/package.py +++ b/repos/spack_repo/builtin/packages/julia/package.py @@ -27,6 +27,7 @@ class Julia(MakefilePackage): maintainers("vchuravy", "haampie", "giordano") version("master", branch="master") + version("1.11.6", sha256="f02acdc8b9aadad568db405dfc4c82ea172f332d0c7a4a0db78ce36cd3cca9f3") version("1.11.5", sha256="bb6b42ff01bca3ff7118ddd360f96b4a6654ed7e658b82d50fb06504e7939755") version("1.11.4", sha256="28b06591df0ee40928712a88af8785eb05dc7ed08a7c9600dd7c376f90f9e53b") version("1.11.3", sha256="80f371ece1576fb7a38c8c930f7cad592fe314083b8a1fc9cd8bd8b165c9cb76") From 3dc5f175b794616e19f536747be5f6a50b689d79 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Wed, 30 Jul 2025 20:46:02 +0200 Subject: [PATCH 048/120] pandoc: add v3.7.0.2 (#748) * pandoc: add 3.7.0.2 * Ensure the URL version directory matches the version Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> * Add arm64 check * Fix old versions for darwin --------- Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> --- .../builtin/packages/pandoc/package.py | 51 ++++++++++++++++--- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/repos/spack_repo/builtin/packages/pandoc/package.py b/repos/spack_repo/builtin/packages/pandoc/package.py index 0feb113e950..ec8f96bbf0a 100644 --- a/repos/spack_repo/builtin/packages/pandoc/package.py +++ b/repos/spack_repo/builtin/packages/pandoc/package.py @@ -23,8 +23,17 @@ class Pandoc(Package): skip_version_audit = ["platform=windows"] - if platform.system() == "Linux" and platform.machine() == "aarch64": + system = platform.system().lower() + machine = platform.machine().lower() + if machine == "arm64": + machine = "aarch64" + + if system == "linux" and machine == "aarch64": url = "https://github.com/jgm/pandoc/releases/download/2.14.0.3/pandoc-2.14.0.3-linux-arm64.tar.gz" + + version( + "3.7.0.2", sha256="4ef2997ff0fa7f86ada5a217722f4f732293e38518b4442ececce16628bd0e44" + ) version( "2.19.2", sha256="43f364915b9da64905fc3f6009f5542f224e54fb24f71043ef5154540f1a3983" ) @@ -32,9 +41,12 @@ class Pandoc(Package): "2.14.0.3", sha256="1212e528fb717e0ffa6662d4930640abdbe0c36d14d283560a9688c8403bf34c" ) - elif platform.system() == "Linux": + elif system == "linux": url = "https://github.com/jgm/pandoc/releases/download/2.14.0.3/pandoc-2.14.0.3-linux-amd64.tar.gz" + version( + "3.7.0.2", sha256="8f8f67fdd540b6519326b0ac49d5c55c5d5d15e43920e80a086e02c8aff83268" + ) version( "2.19.2", sha256="9d55c7afb6a244e8a615451ed9cb02e6a6f187ad4d169c6d5a123fa74adb4830" ) @@ -50,22 +62,45 @@ class Pandoc(Package): url="https://github.com/jgm/pandoc/releases/download/2.7.3/pandoc-2.7.3-linux.tar.gz", ) - elif platform.system() == "Darwin": - url = "https://github.com/jgm/pandoc/releases/download/2.14.0.3/pandoc-2.14.0.3-macOS.zip" + elif system == "darwin" and machine == "aarch64": + url = "https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-arm64-macOS.zip" + + version( + "3.7.0.2", sha256="66a579bd8aae83de0bbeba43900953b075a6a3caaa7d1bfc19173e8f95d2ea17" + ) + + elif system == "darwin": + url = "https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-x86_64-macOS.zip" + + version( + "3.7.0.2", sha256="5495af2c548bd49fe00c28a7f6dadaa1348e6338b92368d3d6e29fd3e16061d1" + ) + if system == "darwin": + version( + "2.19.2", + sha256="af0cda69e31e42f01ba6adc0aa779d3e5853e6c092beeb420a4fc22712d2110b", + url="https://github.com/jgm/pandoc/releases/download/2.19.2/pandoc-2.19.2-macOS.zip", + ) version( - "2.19.2", sha256="af0cda69e31e42f01ba6adc0aa779d3e5853e6c092beeb420a4fc22712d2110b" + "2.14.0.3", + sha256="c6c1addd968699733c7d597cf269cc66d692371995703c32e5262f84a125c27b", + url="https://github.com/jgm/pandoc/releases/download/2.14.0.3/pandoc-2.14.0.3-macOS.zip", ) version( - "2.14.0.3", sha256="c6c1addd968699733c7d597cf269cc66d692371995703c32e5262f84a125c27b" + "2.11.4", + sha256="13b8597860afa6ab802993a684b340be3f31f4d2a06c50b6601f9e726cf76f71", + url="https://github.com/jgm/pandoc/releases/download/2.11.4/pandoc-2.11.4-macOS.zip", ) version( - "2.11.4", sha256="13b8597860afa6ab802993a684b340be3f31f4d2a06c50b6601f9e726cf76f71" + "2.7.3", + sha256="fb93800c90f3fab05dbd418ee6180d086b619c9179b822ddfecb608874554ff0", + url="https://github.com/jgm/pandoc/releases/download/2.7.3/pandoc-2.7.3-macOS.zip", ) - version("2.7.3", sha256="fb93800c90f3fab05dbd418ee6180d086b619c9179b822ddfecb608874554ff0") variant("texlive", default=False, description="Use TeX Live to enable PDF output") + conflicts("target=aarch64: platform=darwin", msg="aarch64 is not supported.", when="@:3.1") conflicts("target=aarch64:", msg="aarch64 is not supported.", when="@:2.11") depends_on("texlive", when="+texlive") From 9cb83443afa1996b76a9dceab7cfd9da067d4460 Mon Sep 17 00:00:00 2001 From: YI Zeping <18586016708@163.com> Date: Thu, 31 Jul 2025 03:26:59 +0800 Subject: [PATCH 049/120] CuPy: new version 13.5.1 and fixes (#725) * py-cupy: update for python 3.13 compatibility * add "main" version for py-cupy * add jsonschema version constraint, disable msccl, and add several include dirs * [@spackbot] updating style on behalf of yizeyi18 * Update py-scipy dependency Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> * apply suggestions from code review: - refine version constraint of py-setuptools for py-cupy - co-locate lines about py-cython in py-cupy - refine version constraint of py-cython in py-fastrlock * update optima dependency --------- Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> --- .../builtin/packages/py_cupy/package.py | 45 ++++++++++++++----- .../builtin/packages/py_fastrlock/package.py | 20 ++++++++- .../builtin/packages/rccl/package.py | 2 + .../packages/rocprofiler_dev/package.py | 2 +- 4 files changed, 55 insertions(+), 14 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_cupy/package.py b/repos/spack_repo/builtin/packages/py_cupy/package.py index 40ecf7ff89d..08436bbecba 100644 --- a/repos/spack_repo/builtin/packages/py_cupy/package.py +++ b/repos/spack_repo/builtin/packages/py_cupy/package.py @@ -20,7 +20,11 @@ class PyCupy(PythonPackage, CudaPackage, ROCmPackage): homepage = "https://cupy.dev/" pypi = "cupy/cupy-8.0.0.tar.gz" + git = "https://github.com/cupy/cupy.git" + version("main", branch="main") + version("14.0.0a1", sha256="12b6ba421bcd3eaf1f5bf9930cfbdcea50364aa8d5ebd1d3bd5808ea5a994ca9") + version("13.5.1", sha256="3dba2f30258463482d52deb420862fbbbaf2c446165a5e8d67377ac6cb5c0870") version("13.4.0", sha256="d4b60e5a1d3b89be40fad0845bb9fc467a653abe8660f752416fd38d24ab7fdb") version("13.3.0", sha256="9a2a17af2b99cce91dd1366939c3805e3f51f9de5046df64f29ccbad3bdf78ed") version("13.2.0", sha256="e4dbd2b2ed4159a5cc0c0f98a710a014950eb2c16eeb455e956128f3b3bd0d51") @@ -39,21 +43,30 @@ class PyCupy(PythonPackage, CudaPackage, ROCmPackage): depends_on("cxx", type="build") depends_on("python@3.7:", when="@:11", type=("build", "run")) - depends_on("python@3.8:", when="@12:", type=("build", "run")) + depends_on("python@3.8:3.11", when="@12", type=("build", "run")) + depends_on("python@3.9:3.13", when="@13", type=("build", "run")) + depends_on("python@3.10:", when="@14", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-cython@0.29.22:2", type="build", when="@:13.3") + depends_on("py-setuptools@:73", when="@:13.3", type="build") + depends_on("py-cython@0.29.22:0.29", type="build", when="@:13.3") depends_on( "py-cython@3:3.0.10,3.0.12:", type="build", when="@13.4:" ) # 3.0.11 broken likely because of cython#6335, fixed in 3.0.12 + depends_on("py-cython@0.29.22:0.29", when="@:13.3 +all", type=("build", "run")) + depends_on("py-cython@3:", when="@13.4: +all", type=("build", "run")) depends_on("py-fastrlock@0.5:", type=("build", "run")) depends_on("py-numpy@1.20:1.25", when="@:11", type=("build", "run")) - depends_on("py-numpy@1.20:1.26", when="@12:", type=("build", "run")) - depends_on("py-numpy@1.22:1.28", when="@13:", type=("build", "run")) - - depends_on("py-scipy@1.6:1.12", when="@:12+all", type=("build", "run")) - depends_on("py-scipy@1.7:1.13", when="@13:+all", type=("build", "run")) - depends_on("py-cython@0.29.22:2", when="+all", type=("build", "run")) + depends_on("py-numpy@1.20:1.26", when="@12", type=("build", "run")) + depends_on("py-numpy@1.22:1", when="@13.1", type=("build", "run")) + depends_on("py-numpy@1.22:2.0", when="@13.2", type=("build", "run")) + depends_on("py-numpy@1.22:2.2", when="@13.4", type=("build", "run")) + depends_on("py-numpy@1.22:2.3", when="@13.5", type=("build", "run")) + depends_on("py-numpy@1.24:2", when="@14", type=("build", "run")) + depends_on("py-scipy@1.6:1.11", when="@:12+all", type=("build", "run")) + depends_on("py-scipy@1.7:1.16", when="@13+all", type=("build", "run")) + depends_on("py-scipy@1.10:1.16", when="@14+all", type=("build", "run")) depends_on("py-optuna@2:", when="+all", type=("build", "run")) + depends_on("py-optuna@3:", when="@12:+all", type=("build", "run")) # Based on https://github.com/cupy/cupy/releases depends_on("cuda@:11.9", when="@:11 +cuda") @@ -61,16 +74,22 @@ class PyCupy(PythonPackage, CudaPackage, ROCmPackage): depends_on("cuda@:12.1", when="@13.0 +cuda") depends_on("cuda@:12.4", when="@13.1:13.2 +cuda") depends_on("cuda@:12.6", when="@13.3 +cuda") - depends_on("cuda@:12.8", when="@13.4: +cuda") + depends_on("cuda@:12.8", when="@13.4 +cuda") + depends_on("cuda@:12.9", when="@13.5 +cuda") for a in CudaPackage.cuda_arch_values: depends_on("nccl +cuda cuda_arch={0}".format(a), when="+cuda cuda_arch={0}".format(a)) + depends_on( + "nccl@2.16:2.26 +cuda cuda_arch={0}".format(a), when="@13+cuda cuda_arch={0}".format(a) + ) depends_on("cudnn@8.8", when="@12.0.0: +cuda") depends_on("cudnn@8.5", when="@11.2.0:11.6.0 +cuda") depends_on("cutensor", when="@:12.1.0 +cuda") - depends_on("cutensor@2.0.1.2", when="@13.1: +cuda") + depends_on("cutensor@2.0", when="@13.1: +cuda") + depends_on("hip@4:5", when="@:13.3 +rocm") + depends_on("hip@4:6", when="@13.4:13 +rocm") for _arch in ROCmPackage.amdgpu_targets: arch_str = "amdgpu_target={0}".format(_arch) rocm_str = "+rocm {0}".format(arch_str) @@ -102,8 +121,12 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: spec = self.spec incs = { + "hipblas": ["include", "include/hipblas"], + "hipsparse": ["include", "include/hipsparse"], + "hipfft": ["include", "include/hipfft"], + "rocsolver": ["include", "include/rocsolver"], "roctracer-dev": ["include/roctracer"], - "hiprand": ["include"], + "hiprand": ["include", "include/hiprand"], "rocrand": ["include"], "rocthrust": ["include"], "rocprim": ["include"], diff --git a/repos/spack_repo/builtin/packages/py_fastrlock/package.py b/repos/spack_repo/builtin/packages/py_fastrlock/package.py index 5496b5b03de..14203996577 100644 --- a/repos/spack_repo/builtin/packages/py_fastrlock/package.py +++ b/repos/spack_repo/builtin/packages/py_fastrlock/package.py @@ -16,6 +16,7 @@ class PyFastrlock(PythonPackage): license("MIT") + version("0.8.3", sha256="4af6734d92eaa3ab4373e6c9a1dd0d5ad1304e172b1521733c6c3b3d73c8fa5d") version("0.8.1", sha256="8a5f2f00021c4ac72e4dab910dc1863c0e008a2e7fb5c843933ae9bcfc3d0802") version("0.5", sha256="9ae1a31f6e069b5f0f28ba63c594d0c952065de0a375f7b491d21ebaccc5166f") @@ -23,8 +24,23 @@ class PyFastrlock(PythonPackage): depends_on("py-setuptools", type="build") depends_on("py-cython", type="build") + depends_on("py-cython@3.0.11:3.0", when="@0.8.3", type="build") + depends_on("py-cython@3.0.0:3.0", when="@0.8.1", type="build") + depends_on("py-cython@0.29.13", when="@0.5", type="build") # in newer pip versions --install-option does not exist - depends_on("py-pip@:23.0", type="build") + depends_on("py-pip", type="build") + depends_on("py-pip@:23.0", when="@:0.8.1", type="build") def install_options(self, spec, prefix): - return ["--with-cython"] + if self.spec.satisfies("^py-pip@:23.0"): + return ["--with-cython"] + else: + return [] + + def config_settings(self, spec, prefix): + # pip deprecated --install-option, suggests using --global-option instead + # in https://github.com/pypa/pip/issues/11859#issuecomment-1741867145 + if self.spec.satisfies("^py-pip@23.1:"): + return {"--global-option": "--with-cython"} + else: + return {} diff --git a/repos/spack_repo/builtin/packages/rccl/package.py b/repos/spack_repo/builtin/packages/rccl/package.py index 9da2780d2f4..5535d6f9f30 100644 --- a/repos/spack_repo/builtin/packages/rccl/package.py +++ b/repos/spack_repo/builtin/packages/rccl/package.py @@ -153,6 +153,8 @@ def cmake_args(self): self.define("ROCM_SMI_DIR", self.spec["rocm-smi-lib"].prefix), self.define("ROCM_PATH", self.spec["hip"].prefix), self.define("BUILD_TESTS", self.run_tests), + self.define("ENABLE_MSCCLPP", False), + self.define("ENABLE_MSCCL_KERNEL", False), ] if "auto" not in self.spec.variants["amdgpu_target"]: args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) diff --git a/repos/spack_repo/builtin/packages/rocprofiler_dev/package.py b/repos/spack_repo/builtin/packages/rocprofiler_dev/package.py index a2d1723cb68..68965cab8bd 100644 --- a/repos/spack_repo/builtin/packages/rocprofiler_dev/package.py +++ b/repos/spack_repo/builtin/packages/rocprofiler_dev/package.py @@ -116,7 +116,7 @@ class RocprofilerDev(CMakePackage): depends_on("py-pyyaml") depends_on("py-barectf") depends_on("py-setuptools") - depends_on("py-jsonschema") + depends_on("py-jsonschema@4:") depends_on("py-jinja2") depends_on("py-termcolor") depends_on("py-pandas", when="@6.0:") From 5ffc8831059ecc9c21e7a7c844654f4d5d868505 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Thu, 31 Jul 2025 02:16:20 -0700 Subject: [PATCH 050/120] ci: use `python -m pip install` instead of `pip install` (#885) The windows audits (at least) has started to fail with an error if we invoke pip as `pip install` and not with `python -m pip install`. > do you know why pip fails? I initially thought this was a stricter warning in newer python, but the python version is the same on ubuntu and windows. I don't know why it only started failing now, but apparently it's failing specifically on windows because using: ``` pip install ``` instead of: ``` python -m pip install ``` means `pip.exe` can't be upgraded because `pip.exe` is already running (something Linux is fine with). Running `python -m pip` circumvents this and allows pip to modify "itself". -[x] Update CI to use `python -m pip install` Signed-off-by: Todd Gamblin --- .github/workflows/audit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/audit.yaml b/.github/workflows/audit.yaml index 901c2dae54d..12a3ec5bdc7 100644 --- a/.github/workflows/audit.yaml +++ b/.github/workflows/audit.yaml @@ -31,7 +31,7 @@ jobs: python-version: ${{inputs.python_version}} - name: Install Python packages run: | - pip install --upgrade pip setuptools pytest coverage[toml] + python -m pip install --upgrade pip setuptools pytest coverage[toml] - name: Setup for Windows run if: runner.os == 'Windows' run: | From 61d00d1ff223ef531d9482a6bf2bdd8893fdf4d4 Mon Sep 17 00:00:00 2001 From: Luc Berger Date: Thu, 31 Jul 2025 06:07:13 -0600 Subject: [PATCH 051/120] trilinos: update for latest kokkos ecosystem release (#879) master and develop need to pull kokkos 4.6.02 not 4.6.01 Signed-off-by: Luc Berger-Vergiat --- repos/spack_repo/builtin/packages/trilinos/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/repos/spack_repo/builtin/packages/trilinos/package.py b/repos/spack_repo/builtin/packages/trilinos/package.py index b2759f9064f..fb5818ebd78 100644 --- a/repos/spack_repo/builtin/packages/trilinos/package.py +++ b/repos/spack_repo/builtin/packages/trilinos/package.py @@ -429,12 +429,12 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): depends_on("kokkos-kernels~shared", when="+cuda_rdc") depends_on("kokkos-kernels~shared", when="+rocm_rdc") depends_on("kokkos~complex_align") - depends_on("kokkos@=4.6.01", when="@master:") + depends_on("kokkos@=4.6.02", when="@master:") depends_on("kokkos@=4.5.01", when="@16.1") depends_on("kokkos@=4.3.01", when="@16.0") depends_on("kokkos@=4.2.01", when="@15.1:15") depends_on("kokkos@=4.1.00", when="@14.4:15.0") - depends_on("kokkos-kernels@=4.6.01", when="@master:") + depends_on("kokkos-kernels@=4.6.02", when="@master:") depends_on("kokkos-kernels@=4.5.01", when="@16.1") depends_on("kokkos-kernels@=4.3.01", when="@16.0") depends_on("kokkos-kernels@=4.2.01", when="@15.1:15") From 4fac4e17b2fadfaf2dad6022442e341596ecc0df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E5=9D=8E?= Date: Fri, 1 Aug 2025 19:59:00 +0800 Subject: [PATCH 052/120] py-huggingface-hub: add v0.33.1 (#820) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * py-huggingface-hub: add v0.33.1 * py-hugging * æ›´æ–° package.py * æ›´æ–° package.py * æ›´æ–° package.py * æ›´æ–° package.py * Update repos/spack_repo/builtin/packages/py_huggingface_hub/package.py Co-authored-by: Adam J. Stewart * Add py-hf-xet --------- Co-authored-by: Adam J. Stewart --- .../builtin/packages/py_hf_xet/package.py | 20 +++++++++++++++++++ .../packages/py_huggingface_hub/package.py | 4 ++++ 2 files changed, 24 insertions(+) create mode 100644 repos/spack_repo/builtin/packages/py_hf_xet/package.py diff --git a/repos/spack_repo/builtin/packages/py_hf_xet/package.py b/repos/spack_repo/builtin/packages/py_hf_xet/package.py new file mode 100644 index 00000000000..bb18dcf7567 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_hf_xet/package.py @@ -0,0 +1,20 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyHfXet(PythonPackage): + """Fast transfer of large files with the Hugging Face Hub.""" + + pypi = "hf-xet/hf_xet-1.1.5.tar.gz" + + license("Apache-2.0") + + version("1.1.5", sha256="69ebbcfd9ec44fdc2af73441619eeb06b94ee34511bbcf57cd423820090f5694") + + # https://github.com/huggingface/xet-core/blob/v1.1.5/hf_xet/pyproject.toml + depends_on("py-maturin@1.7:1", type="build") diff --git a/repos/spack_repo/builtin/packages/py_huggingface_hub/package.py b/repos/spack_repo/builtin/packages/py_huggingface_hub/package.py index de286a850b5..c5d530e3703 100644 --- a/repos/spack_repo/builtin/packages/py_huggingface_hub/package.py +++ b/repos/spack_repo/builtin/packages/py_huggingface_hub/package.py @@ -17,6 +17,8 @@ class PyHuggingfaceHub(PythonPackage): license("Apache-2.0") maintainers("adamjstewart") + version("0.34.3", sha256="d58130fd5aa7408480681475491c0abd7e835442082fbc3ef4d45b6c39f83853") + version("0.33.1", sha256="589b634f979da3ea4b8bdb3d79f97f547840dc83715918daf0b64209c0844c7b") version("0.26.2", sha256="b100d853465d965733964d123939ba287da60a547087783ddff8a323f340332b") version("0.24.6", sha256="cc2579e761d070713eaa9c323e3debe39d5b464ae3a7261c39a9195b27bb8000") version("0.23.4", sha256="35d99016433900e44ae7efe1c209164a5a81dbbcd53a52f99c281dcd7ce22431") @@ -53,6 +55,8 @@ class PyHuggingfaceHub(PythonPackage): depends_on("py-tqdm") depends_on("py-typing-extensions@3.7.4.3:", when="@0.10:") depends_on("py-typing-extensions", when="@0.0.10:") + depends_on("py-hf-xet@1.1.3:1", when="@0.34:") + depends_on("py-hf-xet@1.1.2:1", when="@0.32:") with when("+cli"): depends_on("py-inquirerpy@0.3.4") From fa3c4a63e4afeb946cd4ce04b393e4e177bc6077 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Fri, 1 Aug 2025 14:25:47 +0200 Subject: [PATCH 053/120] bash: fix checksum and add patches (#887) --- repos/spack_repo/builtin/packages/bash/package.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/bash/package.py b/repos/spack_repo/builtin/packages/bash/package.py index 80c065138a2..23ec3e70117 100644 --- a/repos/spack_repo/builtin/packages/bash/package.py +++ b/repos/spack_repo/builtin/packages/bash/package.py @@ -18,7 +18,7 @@ class Bash(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") - version("5.3", sha256="62dd49c44c399ed1b3f7f731e87a782334d834f08e098a35f2c87547d5dbb269") + version("5.3", sha256="0d5cd86965f869a26cf64f4b71be7b96f90a3ba8b3d74e27e8e9d9d5550f31ba") version("5.2", sha256="a139c166df7ff4471c5e0733051642ee5556c1cc8a4a78f145583c5c81ab32fb") version("5.1", sha256="cc012bc860406dcf42f64431bcd3d2fa7560c02915a601aba9cd597a39329baa") version("5.0", sha256="b4a80f2ac66170b2913efbfb9f2594f1f76c7b1afd11f799e22035d63077fb4d") @@ -40,6 +40,9 @@ class Bash(AutotoolsPackage, GNUMirrorPackage): # TODO: patches below are not managed by the GNUMirrorPackage base class for verstr, num, checksum in ( + ("5.3", "001", "1f608434364af86b9b45c8b0ea3fb3b165fb830d27697e6cdfc7ac17dee3287f"), + ("5.3", "002", "e385548a00130765ec7938a56fbdca52447ab41fabc95a25f19ade527e282001"), + ("5.3", "003", "f245d9c7dc3f5a20d84b53d249334747940936f09dc97e1dcb89fc3ab37d60ed"), ("5.2", "001", "f42f2fee923bc2209f406a1892772121c467f44533bedfe00a176139da5d310a"), ("5.2", "002", "45cc5e1b876550eee96f95bffb36c41b6cb7c07d33f671db5634405cd00fd7b8"), ("5.2", "003", "6a090cdbd334306fceacd0e4a1b9e0b0678efdbbdedbd1f5842035990c8abaff"), From c747f384ceb539ccd43297cd58b4159937d22e09 Mon Sep 17 00:00:00 2001 From: G-Ragghianti <33492707+G-Ragghianti@users.noreply.github.com> Date: Fri, 1 Aug 2025 11:52:12 -0400 Subject: [PATCH 054/120] dplasma: new package + required updates to parsec package (#502) --- .../builtin/packages/dplasma/package.py | 58 +++++++++++++++++++ .../packages/parsec/apply-header.patch | 14 +++++ .../builtin/packages/parsec/package.py | 6 +- 3 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 repos/spack_repo/builtin/packages/dplasma/package.py create mode 100644 repos/spack_repo/builtin/packages/parsec/apply-header.patch diff --git a/repos/spack_repo/builtin/packages/dplasma/package.py b/repos/spack_repo/builtin/packages/dplasma/package.py new file mode 100644 index 00000000000..6a0bd4afe57 --- /dev/null +++ b/repos/spack_repo/builtin/packages/dplasma/package.py @@ -0,0 +1,58 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +# + +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage + +from spack.package import * + + +class Dplasma(CMakePackage, CudaPackage): + """DPLASMA is a highly optimized, accelerator-aware, implementation of a + dense linear algebra package for distributed heterogeneous systems. It is + designed to deliver sustained performance for distributed systems where each + node featuring multiple sockets of multicore processors, and if available, + accelerators, using the PaRSEC runtime as a backend.""" + + homepage = "https://github.com/ICLDisco/dplasma" + git = "https://github.com/ICLDisco/dplasma.git" + maintainers("G-Ragghianti", "abouteiller", "bosilca", "herault") + + license("BSD-3-Clause-Open-MPI") + + version("develop", branch="master") + + variant( + "build_type", + default="RelWithDebInfo", + description="CMake build type", + values=("Debug", "Release", "RelWithDebInfo"), + ) + variant("shared", default=True, description="Build a shared library") + variant("cuda", default=True, description="Build with CUDA") + variant("internal-parsec", default="False", description="Build with internal PaRSEC") + + depends_on("c", type="build") + depends_on("cmake@3.18:", type="build") + depends_on("python", type="build") + depends_on("flex", type="build") + depends_on("bison", type="build") + depends_on("hwloc") + depends_on("mpi") + depends_on("blas") + depends_on("lapack") + depends_on("parsec+cuda", when="~internal-parsec+cuda") + depends_on("parsec~cuda", when="~internal-parsec~cuda") + + def cmake_args(self): + args = [ + self.define_from_variant("CMAKE_BUILD_TYPE", "build_type"), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define_from_variant("DPLASMA_GPU_WITH_CUDA", "cuda"), + self.define("DPLASMA_GPU_WITH_HIP", "Off"), + ] + if "~internal-parsec" in self.spec: + args.append(self.define("PaRSEC_ROOT", self.spec["parsec"].prefix)) + return args diff --git a/repos/spack_repo/builtin/packages/parsec/apply-header.patch b/repos/spack_repo/builtin/packages/parsec/apply-header.patch new file mode 100644 index 00000000000..993edd43f0c --- /dev/null +++ b/repos/spack_repo/builtin/packages/parsec/apply-header.patch @@ -0,0 +1,14 @@ +diff --git a/parsec/data_dist/matrix/CMakeLists.txt b/parsec/data_dist/matrix/CMakeLists.txt +index 51beffec2..597557c08 100644 +--- a/parsec/data_dist/matrix/CMakeLists.txt ++++ b/parsec/data_dist/matrix/CMakeLists.txt +@@ -32,7 +32,7 @@ if( TARGET parsec-ptgpp ) + target_ptg_sources(parsec PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/reduce_col.jdf;${CMAKE_CURRENT_SOURCE_DIR}/reduce_row.jdf;${CMAKE_CURRENT_SOURCE_DIR}/reduce.jdf;${CMAKE_CURRENT_SOURCE_DIR}/diag_band_to_rect.jdf;${CMAKE_CURRENT_SOURCE_DIR}/apply.jdf") + set_property(TARGET parsec + APPEND PROPERTY +- PRIVATE_HEADER_H data_dist/matrix/diag_band_to_rect.h) ++ PRIVATE_HEADER_H data_dist/matrix/diag_band_to_rect.h data_dist/matrix/apply.h) + endif( TARGET parsec-ptgpp ) + + target_sources(parsec PRIVATE ${sources}) + diff --git a/repos/spack_repo/builtin/packages/parsec/package.py b/repos/spack_repo/builtin/packages/parsec/package.py index 10fc41bb2a3..abce8323517 100644 --- a/repos/spack_repo/builtin/packages/parsec/package.py +++ b/repos/spack_repo/builtin/packages/parsec/package.py @@ -3,7 +3,6 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) # - from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.cuda import CudaPackage @@ -38,6 +37,10 @@ class Parsec(CMakePackage, CudaPackage): url="https://github.com/ICLDisco/parsec/archive/refs/tags/v1.1.0.tar.gz", ) + # Add data_dist/matrix/apply.h to the list of header files to install. + # This is required for building against this parsec installation. + patch("apply-header.patch", when="@4.0.2411") + variant( "build_type", default="RelWithDebInfo", @@ -85,6 +88,7 @@ def cmake_args(self): self.define_from_variant("PARSEC_PROF_TRACE", "profile"), self.define_from_variant("PARSEC_DEBUG_HISTORY", "debug_verbose"), self.define_from_variant("PARSEC_DEBUG_PARANOID", "debug_verbose"), + self.define("PARSEC_GPU_WITH_HIP", "Off"), ] return args From 54f61c470fbd834533347cdf458c20806d1d6855 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Fri, 1 Aug 2025 09:00:08 -0700 Subject: [PATCH 055/120] formatting: make `ruff format` almost pass (#866) This is intended to make moving to `ruff` easy. It is the result of running ```console ruff format . black . ``` which formats everything `ruff`'s way, then formats the parts `black` doesn't like `black`'s way. There are 11 files remaining on which they disagree. The goal here is to get the repository mostly formatted before moving to `ruff`. Mostly, this eliminates unnecessary string concatenation in packages, which makes them more readable and less prone to error, anyway. Signed-off-by: Todd Gamblin Co-authored-by: Harmen Stoppels --- pyproject.toml | 2 +- .../builtin/build_systems/autotools.py | 8 ++------ repos/spack_repo/builtin/build_systems/gnu.py | 2 +- .../builtin/build_systems/oneapi.py | 1 + .../builtin/build_systems/sourceforge.py | 2 +- .../builtin/build_systems/sourceware.py | 2 +- .../spack_repo/builtin/build_systems/xorg.py | 2 +- .../builtin/packages/aluminum/package.py | 6 ++---- .../builtin/packages/ams/package.py | 3 +-- .../builtin/packages/aotriton/package.py | 2 +- .../builtin/packages/armpl_gcc/package.py | 3 +-- .../builtin/packages/ascent/package.py | 2 +- .../builtin/packages/atk/package.py | 3 +-- .../builtin/packages/augustus/package.py | 4 ++-- .../builtin/packages/axl/package.py | 4 ++-- .../builtin/packages/axom/package.py | 4 +--- .../builtin/packages/bcftools/package.py | 2 +- .../builtin/packages/blt/package.py | 2 +- .../builtin/packages/bohrium/package.py | 4 +--- .../builtin/packages/boost/package.py | 2 +- .../builtin/packages/care/package.py | 2 +- .../builtin/packages/ccs_qcd/package.py | 2 +- .../builtin/packages/cgal/package.py | 2 +- .../builtin/packages/charmpp/package.py | 2 +- .../builtin/packages/conduit/package.py | 2 +- .../builtin/packages/cosmomc/package.py | 4 +--- .../builtin/packages/cp2k/package.py | 7 ++----- .../builtin/packages/dav_sdk/package.py | 2 +- .../builtin/packages/dealii/package.py | 13 ++++++------ .../builtin/packages/dftbplus/package.py | 10 ++++------ .../builtin/packages/docbook_xml/package.py | 9 ++++----- .../builtin/packages/eccodes/package.py | 4 ++-- .../builtin/packages/eckit/package.py | 5 ++--- .../packages/ecp_data_vis_sdk/package.py | 2 +- .../builtin/packages/elpa/package.py | 2 +- .../builtin/packages/esmf/package.py | 1 - .../builtin/packages/exciting/package.py | 2 +- .../builtin/packages/flamemaster/package.py | 6 +++--- .../builtin/packages/flann/package.py | 2 +- .../builtin/packages/flexi/package.py | 5 ++--- .../builtin/packages/fortrilinos/package.py | 2 +- .../builtin/packages/freetype/package.py | 3 +-- .../builtin/packages/gcc/package.py | 5 +++-- .../builtin/packages/geopm_runtime/package.py | 1 - .../packages/ghostscript_fonts/package.py | 2 +- .../builtin/packages/glib/package.py | 1 - .../builtin/packages/gpu_burn/package.py | 2 +- .../builtin/packages/graphviz/package.py | 4 ++-- .../builtin/packages/groff/package.py | 3 +-- .../builtin/packages/gromacs/package.py | 6 +++--- .../builtin/packages/grpc/package.py | 2 +- .../builtin/packages/gtkplus/package.py | 3 --- .../builtin/packages/hdf5/package.py | 2 +- .../builtin/packages/hicops/package.py | 11 +++++----- .../builtin/packages/hiop/package.py | 4 ++-- .../builtin/packages/hipblaslt/package.py | 4 ++-- .../builtin/packages/hpc_beeflow/package.py | 1 - .../builtin/packages/hpctoolkit/package.py | 3 +-- .../builtin/packages/hwloc/package.py | 8 ++++---- .../builtin/packages/hypre_cmake/package.py | 1 - .../builtin/packages/icedtea/package.py | 3 ++- .../builtin/packages/icu4c/package.py | 1 - .../builtin/packages/jsoncpp/package.py | 2 +- .../builtin/packages/jsonnet/package.py | 2 -- .../builtin/packages/kentutils/package.py | 2 +- .../builtin/packages/lbann/package.py | 3 +-- .../builtin/packages/lcals/package.py | 6 +++--- .../builtin/packages/libcint/package.py | 2 +- .../builtin/packages/libepoxy/package.py | 2 -- .../builtin/packages/libint/package.py | 2 +- .../builtin/packages/libunwind/package.py | 4 +--- .../builtin/packages/libxc/package.py | 2 -- .../builtin/packages/llvm/package.py | 2 +- .../builtin/packages/llvm_doe/package.py | 4 ++-- .../builtin/packages/lmdb/package.py | 3 +-- .../builtin/packages/madgraph5amc/package.py | 2 +- .../builtin/packages/mariadb/package.py | 2 +- .../builtin/packages/matio/package.py | 2 +- .../builtin/packages/mfem/package.py | 4 +--- .../builtin/packages/mimalloc/package.py | 6 ++---- .../builtin/packages/mpich/package.py | 3 +-- .../builtin/packages/mvapich/package.py | 2 +- .../builtin/packages/mvapich2/package.py | 2 +- .../builtin/packages/mvapich2x/package.py | 5 ++--- .../builtin/packages/mvapich_plus/package.py | 2 +- .../builtin/packages/namd/package.py | 2 +- .../builtin/packages/ncbi_toolkit/package.py | 2 +- .../builtin/packages/nektools/package.py | 4 +--- .../builtin/packages/networkdirect/package.py | 1 - .../builtin/packages/ngspice/package.py | 2 +- .../builtin/packages/nvhpc/package.py | 3 +-- .../builtin/packages/octopus/package.py | 4 ++-- .../builtin/packages/openmpi/package.py | 4 ++-- .../builtin/packages/opennurbs/package.py | 1 - .../builtin/packages/p3dfft3/package.py | 6 +++--- .../builtin/packages/paradiseo/package.py | 2 +- .../builtin/packages/parflow/package.py | 2 +- .../builtin/packages/pcre/package.py | 2 +- .../builtin/packages/pfind/package.py | 1 - .../builtin/packages/phist/package.py | 8 +++----- .../builtin/packages/picsar/package.py | 2 +- .../builtin/packages/pika/package.py | 3 +-- .../builtin/packages/pism/package.py | 2 +- .../builtin/packages/possvm/package.py | 2 +- .../builtin/packages/postgis/package.py | 2 +- .../builtin/packages/povray/package.py | 2 +- .../builtin/packages/py_charm4py/package.py | 2 +- .../builtin/packages/py_numpy/package.py | 5 +++-- .../packages/py_pint_xarray/package.py | 1 - .../builtin/packages/py_uproot/package.py | 6 ++---- .../builtin/packages/py_waves/package.py | 2 +- .../builtin/packages/qmcpack/package.py | 14 +++++-------- .../packages/quantum_espresso/package.py | 2 +- .../builtin/packages/r3d/package.py | 2 +- .../builtin/packages/regcm/package.py | 6 +++--- .../builtin/packages/relion/package.py | 4 ++-- .../packages/revocap_refiner/package.py | 2 +- .../builtin/packages/rocksdb/package.py | 2 +- .../builtin/packages/rocm_gdb/package.py | 3 ++- .../packages/rocm_validation_suite/package.py | 20 +++++++++---------- .../builtin/packages/root/package.py | 4 ++-- .../builtin/packages/s4pred/package.py | 2 +- .../builtin/packages/salmon/package.py | 2 +- .../builtin/packages/scotch/package.py | 1 - .../builtin/packages/scr/package.py | 2 +- .../builtin/packages/serialbox/package.py | 6 +++--- .../builtin/packages/shamrock/package.py | 1 - .../builtin/packages/sollve/package.py | 2 +- .../builtin/packages/sprng/package.py | 2 +- .../builtin/packages/sqlite/package.py | 2 +- .../builtin/packages/subread/package.py | 2 +- .../builtin/packages/tempo/package.py | 1 - .../builtin/packages/tfel/package.py | 2 -- .../builtin/packages/timemory/package.py | 12 +++++------ .../builtin/packages/turbomole/package.py | 2 +- .../builtin/packages/wannier90/package.py | 14 ++++++------- .../builtin/packages/whizard/package.py | 2 +- .../builtin/packages/wrf/package.py | 4 ++-- .../spack_repo/builtin/packages/wt/package.py | 4 +--- .../builtin/packages/yosys/package.py | 6 +++--- .../builtin/packages/zfp/package.py | 4 +--- .../builtin/packages/zlib/package.py | 2 +- .../packages/cmake_client/package.py | 6 +++--- 143 files changed, 208 insertions(+), 287 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 1ba32586182..26d1f536e68 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,7 +51,7 @@ extend-include = ["bin/spack"] extend-exclude = ["lib/spack/external", "*.pyi"] [tool.ruff.format] -skip-magic-trailing-comma = true +skip-magic-trailing-comma = false [tool.ruff.lint] extend-select = ["I"] diff --git a/repos/spack_repo/builtin/build_systems/autotools.py b/repos/spack_repo/builtin/build_systems/autotools.py index db4a6d792d6..cb8e2fff3a2 100644 --- a/repos/spack_repo/builtin/build_systems/autotools.py +++ b/repos/spack_repo/builtin/build_systems/autotools.py @@ -276,9 +276,7 @@ def runs_ok(script_abs_path): "`gnuconfig` package is broken" ).format(gnuconfig_dir) if gnuconfig.external: - msg += ( - " or the `gnuconfig` package prefix is misconfigured as" " an external package" - ) + msg += " or the `gnuconfig` package prefix is misconfigured as an external package" raise InstallError(msg) # Filter working substitutes @@ -756,9 +754,7 @@ def _activate_or_not( def _default_generator(is_activated): if is_activated: line = f"--{activation_word}-{option_value}" - if activation_value is not None and activation_value( - option_value - ): # NOQA=ignore=E501 + if activation_value is not None and activation_value(option_value): line = f"{line}={activation_value(option_value)}" return line return f"--{deactivation_word}-{option_value}" diff --git a/repos/spack_repo/builtin/build_systems/gnu.py b/repos/spack_repo/builtin/build_systems/gnu.py index ca207735b0f..b4ca058a429 100644 --- a/repos/spack_repo/builtin/build_systems/gnu.py +++ b/repos/spack_repo/builtin/build_systems/gnu.py @@ -30,5 +30,5 @@ def urls(self): def _ensure_gnu_mirror_path_is_set_or_raise(self): if self.gnu_mirror_path is None: cls_name = type(self).__name__ - msg = "{0} must define a `gnu_mirror_path` attribute" " [none defined]" + msg = "{0} must define a `gnu_mirror_path` attribute [none defined]" raise AttributeError(msg.format(cls_name)) diff --git a/repos/spack_repo/builtin/build_systems/oneapi.py b/repos/spack_repo/builtin/build_systems/oneapi.py index 9b45c6aa2a7..0dfdbc8357e 100644 --- a/repos/spack_repo/builtin/build_systems/oneapi.py +++ b/repos/spack_repo/builtin/build_systems/oneapi.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) """Common utilities for managing intel oneapi packages.""" + import os import platform import shutil diff --git a/repos/spack_repo/builtin/build_systems/sourceforge.py b/repos/spack_repo/builtin/build_systems/sourceforge.py index 555f1863715..6a97546915e 100644 --- a/repos/spack_repo/builtin/build_systems/sourceforge.py +++ b/repos/spack_repo/builtin/build_systems/sourceforge.py @@ -34,5 +34,5 @@ def urls(self): def _ensure_sourceforge_mirror_path_is_set_or_raise(self): if self.sourceforge_mirror_path is None: cls_name = type(self).__name__ - msg = "{0} must define a `sourceforge_mirror_path` attribute" " [none defined]" + msg = "{0} must define a `sourceforge_mirror_path` attribute [none defined]" raise AttributeError(msg.format(cls_name)) diff --git a/repos/spack_repo/builtin/build_systems/sourceware.py b/repos/spack_repo/builtin/build_systems/sourceware.py index cfbb09a1ceb..b44e90c736d 100644 --- a/repos/spack_repo/builtin/build_systems/sourceware.py +++ b/repos/spack_repo/builtin/build_systems/sourceware.py @@ -30,5 +30,5 @@ def urls(self): def _ensure_sourceware_mirror_path_is_set_or_raise(self): if self.sourceware_mirror_path is None: cls_name = type(self).__name__ - msg = "{0} must define a `sourceware_mirror_path` attribute" " [none defined]" + msg = "{0} must define a `sourceware_mirror_path` attribute [none defined]" raise AttributeError(msg.format(cls_name)) diff --git a/repos/spack_repo/builtin/build_systems/xorg.py b/repos/spack_repo/builtin/build_systems/xorg.py index ee642a112b4..38f12495bce 100644 --- a/repos/spack_repo/builtin/build_systems/xorg.py +++ b/repos/spack_repo/builtin/build_systems/xorg.py @@ -34,5 +34,5 @@ def urls(self): def _ensure_xorg_mirror_path_is_set_or_raise(self): if self.xorg_mirror_path is None: cls_name = type(self).__name__ - msg = "{0} must define a `xorg_mirror_path` attribute" " [none defined]" + msg = "{0} must define a `xorg_mirror_path` attribute [none defined]" raise AttributeError(msg.format(cls_name)) diff --git a/repos/spack_repo/builtin/packages/aluminum/package.py b/repos/spack_repo/builtin/packages/aluminum/package.py index 17f21c732e1..8dcf3c67969 100644 --- a/repos/spack_repo/builtin/packages/aluminum/package.py +++ b/repos/spack_repo/builtin/packages/aluminum/package.py @@ -51,14 +51,12 @@ class Aluminum(CachedCMakePackage, CudaPackage, ROCmPackage): "cuda_rma", default=False, when="+cuda", - description="Builds with support for CUDA intra-node " - " Put/Get and IPC RMA functionality", + description="Builds with support for CUDA intra-node Put/Get and IPC RMA functionality", ) variant( "ht", default=False, - description="Builds with support for host-enabled MPI" - " communication of accelerator data", + description="Builds with support for host-enabled MPI communication of accelerator data", ) variant("nccl", default=False, description="Builds with support for NCCL communication lib") variant( diff --git a/repos/spack_repo/builtin/packages/ams/package.py b/repos/spack_repo/builtin/packages/ams/package.py index 784b781ca01..2ff6d542c9e 100644 --- a/repos/spack_repo/builtin/packages/ams/package.py +++ b/repos/spack_repo/builtin/packages/ams/package.py @@ -143,8 +143,7 @@ def cmake_args(self): if spec.satisfies("+torch"): args.append("-DWITH_TORCH=On") args.append( - "-DTorch_DIR={0}/lib/python{1}/site-packages" - "/torch/share/cmake/Torch".format( + "-DTorch_DIR={0}/lib/python{1}/site-packages/torch/share/cmake/Torch".format( spec["py-torch"].prefix, spec["python"].version.up_to(2) ) ) diff --git a/repos/spack_repo/builtin/packages/aotriton/package.py b/repos/spack_repo/builtin/packages/aotriton/package.py index 84ae5f35897..068cdb1877c 100644 --- a/repos/spack_repo/builtin/packages/aotriton/package.py +++ b/repos/spack_repo/builtin/packages/aotriton/package.py @@ -58,7 +58,7 @@ def patch(self): if self.spec.satisfies("^hip"): filter_file( "/opt/rocm/llvm/bin/ld.lld", - f'{self.spec["llvm-amdgpu"].prefix}/bin/ld.lld', + f"{self.spec['llvm-amdgpu'].prefix}/bin/ld.lld", "third_party/triton/third_party/amd/backend/compiler.py", string=True, ) diff --git a/repos/spack_repo/builtin/packages/armpl_gcc/package.py b/repos/spack_repo/builtin/packages/armpl_gcc/package.py index 31bf88ab2a7..cf80ac4b038 100644 --- a/repos/spack_repo/builtin/packages/armpl_gcc/package.py +++ b/repos/spack_repo/builtin/packages/armpl_gcc/package.py @@ -284,8 +284,7 @@ def get_package_url_before_24(version): if os == "macOS": if armpl_version.startswith("23.06"): return ( - f"{base_url}/{armpl_version_dashed}/" - f"armpl_{armpl_version}_{compiler_version}.dmg" + f"{base_url}/{armpl_version_dashed}/armpl_{armpl_version}_{compiler_version}.dmg" ) else: filename = f"arm-performance-libraries_{armpl_version}_macOS.dmg" diff --git a/repos/spack_repo/builtin/packages/ascent/package.py b/repos/spack_repo/builtin/packages/ascent/package.py index 4d361084daa..5747012ace6 100644 --- a/repos/spack_repo/builtin/packages/ascent/package.py +++ b/repos/spack_repo/builtin/packages/ascent/package.py @@ -411,7 +411,7 @@ def _get_host_config_path(self, spec): sys_type = env["SYS_TYPE"] compiler_str = f"{self['c'].name}-{self['c'].version}" host_config_path = ( - f"{socket.gethostname()}-{sys_type}-{compiler_str}" f"-ascent-{spec.dag_hash()}.cmake" + f"{socket.gethostname()}-{sys_type}-{compiler_str}-ascent-{spec.dag_hash()}.cmake" ) host_config_path = os.path.abspath(join_path(self.stage.path, host_config_path)) return host_config_path diff --git a/repos/spack_repo/builtin/packages/atk/package.py b/repos/spack_repo/builtin/packages/atk/package.py index 458c023fd8c..d7305f023d3 100644 --- a/repos/spack_repo/builtin/packages/atk/package.py +++ b/repos/spack_repo/builtin/packages/atk/package.py @@ -37,8 +37,7 @@ class Atk(MesonPackage): def url_for_version(self, version): return ( - f"http://ftp.gnome.org/pub/gnome/sources/atk/" - f"{version.up_to(2)}/atk-{version}.tar.xz" + f"http://ftp.gnome.org/pub/gnome/sources/atk/{version.up_to(2)}/atk-{version}.tar.xz" ) def setup_run_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/augustus/package.py b/repos/spack_repo/builtin/packages/augustus/package.py index 13ea99c0f1b..76550b68c38 100644 --- a/repos/spack_repo/builtin/packages/augustus/package.py +++ b/repos/spack_repo/builtin/packages/augustus/package.py @@ -111,11 +111,11 @@ def edit(self, spec, prefix): makefile.filter("INCLUDES = *", "INCLUDES = -I$(BAMTOOLS)/include/bamtools ") if spec.satisfies("bamtools@2.5:"): makefile.filter( - "LIBS = -lbamtools -lz", "LIBS = $(BAMTOOLS)/lib64" "/libbamtools.a -lz" + "LIBS = -lbamtools -lz", "LIBS = $(BAMTOOLS)/lib64/libbamtools.a -lz" ) if spec.satisfies("bamtools@:2.4"): makefile.filter( - "LIBS = -lbamtools -lz", "LIBS = $(BAMTOOLS)/lib/bamtools" "/libbamtools.a -lz" + "LIBS = -lbamtools -lz", "LIBS = $(BAMTOOLS)/lib/bamtools/libbamtools.a -lz" ) with working_dir(join_path("auxprogs", "bam2hints")): makefile = FileFilter("Makefile") diff --git a/repos/spack_repo/builtin/packages/axl/package.py b/repos/spack_repo/builtin/packages/axl/package.py index a91eeaf2a9d..1e1cd37323b 100644 --- a/repos/spack_repo/builtin/packages/axl/package.py +++ b/repos/spack_repo/builtin/packages/axl/package.py @@ -9,9 +9,9 @@ def async_api_validator(pkg_name, variant_name, values): if "none" in values and len(values) != 1: - raise SpackError("The value 'none' is not usable" " with other async_api values.") + raise SpackError("The value 'none' is not usable with other async_api values.") if "intel_cppr" in values and "cray_dw" in values: - raise SpackError("The 'intel_cppr' and 'cray_dw' asynchronous" " APIs are incompatible.") + raise SpackError("The 'intel_cppr' and 'cray_dw' asynchronous APIs are incompatible.") class Axl(CMakePackage): diff --git a/repos/spack_repo/builtin/packages/axom/package.py b/repos/spack_repo/builtin/packages/axom/package.py index dc9aed7e170..ea2762c872b 100644 --- a/repos/spack_repo/builtin/packages/axom/package.py +++ b/repos/spack_repo/builtin/packages/axom/package.py @@ -393,9 +393,7 @@ def initconfig_hardware_entries(self): if spec.satisfies("+fortran") and self.is_fortran_compiler("xlf"): # Grab lib directory for the current fortran compiler libdir = pjoin(os.path.dirname(os.path.dirname(self.compiler.fc)), "lib") - description = ( - "Adds a missing rpath for libraries " "associated with the fortran compiler" - ) + description = "Adds a missing rpath for libraries associated with the fortran compiler" linker_flags = "${BLT_EXE_LINKER_FLAGS} -Wl,-rpath," + libdir diff --git a/repos/spack_repo/builtin/packages/bcftools/package.py b/repos/spack_repo/builtin/packages/bcftools/package.py index 62ce764e56a..44606813675 100644 --- a/repos/spack_repo/builtin/packages/bcftools/package.py +++ b/repos/spack_repo/builtin/packages/bcftools/package.py @@ -43,7 +43,7 @@ class Bcftools(AutotoolsPackage): variant( "libgsl", default=False, - description="build options that require the GNU scientific " "library", + description="build options that require the GNU scientific library", ) variant( diff --git a/repos/spack_repo/builtin/packages/blt/package.py b/repos/spack_repo/builtin/packages/blt/package.py index 2792ac7dc57..60f919edaa8 100644 --- a/repos/spack_repo/builtin/packages/blt/package.py +++ b/repos/spack_repo/builtin/packages/blt/package.py @@ -41,7 +41,7 @@ def llnl_link_helpers(options, spec, compiler): options.append(cmake_cache_string("BLT_EXE_LINKER_FLAGS", flags, description)) if "cxx" in spec and spec["cxx"].name == "cce": - description = "Adds a missing rpath for libraries " "associated with the fortran compiler" + description = "Adds a missing rpath for libraries associated with the fortran compiler" # Here is where to find libs that work for fortran libdir = "/opt/cray/pe/cce/{0}/cce-clang/x86_64/lib".format(compiler.version) linker_flags = "${{BLT_EXE_LINKER_FLAGS}} -Wl,-rpath,{0}".format(libdir) diff --git a/repos/spack_repo/builtin/packages/bohrium/package.py b/repos/spack_repo/builtin/packages/bohrium/package.py index deef0935c75..9056a1f460c 100644 --- a/repos/spack_repo/builtin/packages/bohrium/package.py +++ b/repos/spack_repo/builtin/packages/bohrium/package.py @@ -39,9 +39,7 @@ class Bohrium(CMakePackage, CudaPackage): variant("node", default=True, description="Build the node vector engine manager") variant("proxy", default=False, description="Build the proxy vector engine manager") variant( - "python", - default=True, - description="Build the numpy-like bridge " "to enable use from python", + "python", default=True, description="Build the numpy-like bridge to enable use from python" ) variant("cbridge", default=True, description="Build the bridge interface towards plain C") diff --git a/repos/spack_repo/builtin/packages/boost/package.py b/repos/spack_repo/builtin/packages/boost/package.py index f979619a647..00efbf8290f 100644 --- a/repos/spack_repo/builtin/packages/boost/package.py +++ b/repos/spack_repo/builtin/packages/boost/package.py @@ -245,7 +245,7 @@ def libs(self): values=("global", "protected", "hidden"), default="hidden", multi=False, - description="Default symbol visibility in compiled libraries " "(1.69.0 or later)", + description="Default symbol visibility in compiled libraries (1.69.0 or later)", ) depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/care/package.py b/repos/spack_repo/builtin/packages/care/package.py index 68ff9076446..a0553f5d740 100644 --- a/repos/spack_repo/builtin/packages/care/package.py +++ b/repos/spack_repo/builtin/packages/care/package.py @@ -100,7 +100,7 @@ class Care(CachedCMakePackage, CudaPackage, ROCmPackage): "implicit_conversions", default=False, when="@:0.14", - description="Enable implicit" "conversions to/from raw pointers", + description="Enable implicit conversions to/from raw pointers", ) variant("tests", default=False, description="Build tests") variant("benchmarks", default=False, description="Build benchmarks.") diff --git a/repos/spack_repo/builtin/packages/ccs_qcd/package.py b/repos/spack_repo/builtin/packages/ccs_qcd/package.py index dd6423f8f09..4fde6389fdf 100644 --- a/repos/spack_repo/builtin/packages/ccs_qcd/package.py +++ b/repos/spack_repo/builtin/packages/ccs_qcd/package.py @@ -62,7 +62,7 @@ class CcsQcd(MakefilePackage): def edit(self, spec, prefix): if spec.satisfies("%gcc") and spec.satisfies("arch=aarch64:"): chgopt = ( - "FFLAGS =-O3 -ffixed-line-length-132 -g -fopenmp" " -mcmodel=large -funderscoring" + "FFLAGS =-O3 -ffixed-line-length-132 -g -fopenmp -mcmodel=large -funderscoring" ) filter_file( "FFLAGS =.*", diff --git a/repos/spack_repo/builtin/packages/cgal/package.py b/repos/spack_repo/builtin/packages/cgal/package.py index 0f44a99a32b..2422c72aa43 100644 --- a/repos/spack_repo/builtin/packages/cgal/package.py +++ b/repos/spack_repo/builtin/packages/cgal/package.py @@ -132,7 +132,7 @@ class Cgal(CMakePackage): conflicts( "~header_only", when="@:4.9", - msg="Header only builds became optional in 4.9," " default thereafter", + msg="Header only builds became optional in 4.9, default thereafter", ) def url_for_version(self, version): diff --git a/repos/spack_repo/builtin/packages/charmpp/package.py b/repos/spack_repo/builtin/packages/charmpp/package.py index de77401a068..57178211dfc 100644 --- a/repos/spack_repo/builtin/packages/charmpp/package.py +++ b/repos/spack_repo/builtin/packages/charmpp/package.py @@ -366,7 +366,7 @@ def install(self, spec, prefix): # This is a Charm++ limitation; it would lead to a # build error raise InstallError( - "The +tcp variant requires " "the backend=netlrts communication mechanism" + "The +tcp variant requires the backend=netlrts communication mechanism" ) options.append("tcp") if spec.satisfies("+omp"): diff --git a/repos/spack_repo/builtin/packages/conduit/package.py b/repos/spack_repo/builtin/packages/conduit/package.py index 7606082bdf6..101e1f89cc2 100644 --- a/repos/spack_repo/builtin/packages/conduit/package.py +++ b/repos/spack_repo/builtin/packages/conduit/package.py @@ -309,7 +309,7 @@ def _get_host_config_path(self, spec): compiler_str = f"{self['c'].name}-{self['c'].version}" host_config_path = ( - f"{socket.gethostname()}-{sys_type}-{compiler_str}" f"-conduit-{spec.dag_hash()}.cmake" + f"{socket.gethostname()}-{sys_type}-{compiler_str}-conduit-{spec.dag_hash()}.cmake" ) dest_dir = self.stage.source_path host_config_path = os.path.abspath(join_path(dest_dir, host_config_path)) diff --git a/repos/spack_repo/builtin/packages/cosmomc/package.py b/repos/spack_repo/builtin/packages/cosmomc/package.py index cb90cb0ad33..e2cbe043be6 100644 --- a/repos/spack_repo/builtin/packages/cosmomc/package.py +++ b/repos/spack_repo/builtin/packages/cosmomc/package.py @@ -80,9 +80,7 @@ def install(self, spec, prefix): # rewrite the Makefile to use Spack's options all the time if spec.satisfies("%gcc"): if not spec.satisfies("%gcc@6:"): - raise InstallError( - "When using GCC, " "CosmoMC requires version gcc@6: for building" - ) + raise InstallError("When using GCC, CosmoMC requires version gcc@6: for building") choosecomp = "ifortErr=1" # choose gfortran elif spec.satisfies("%intel"): if not spec.satifies("%intel@14:"): diff --git a/repos/spack_repo/builtin/packages/cp2k/package.py b/repos/spack_repo/builtin/packages/cp2k/package.py index 9d3754c0c04..8f74546c0f1 100644 --- a/repos/spack_repo/builtin/packages/cp2k/package.py +++ b/repos/spack_repo/builtin/packages/cp2k/package.py @@ -869,15 +869,12 @@ def edit(self, pkg, spec, prefix): with open(self.makefile, "w") as mkf: if spec.satisfies("+plumed"): mkf.write( - "# include Plumed.inc as recommended by" - "PLUMED to include libraries and flags" + "# include Plumed.inc as recommended by PLUMED to include libraries and flags" ) mkf.write("include {0}\n".format(self.pkg["plumed"].plumed_inc)) mkf.write("\n# COMPILER, LINKER, TOOLS\n\n") - mkf.write( - "FC = {0}\n" "CC = {1}\n" "CXX = {2}\n" "LD = {3}\n".format(fc, cc, cxx, fc) - ) + mkf.write("FC = {0}\nCC = {1}\nCXX = {2}\nLD = {3}\n".format(fc, cc, cxx, fc)) if spec.satisfies("%intel"): intel_bin_dir = ancestor(pkg.compiler.cc) diff --git a/repos/spack_repo/builtin/packages/dav_sdk/package.py b/repos/spack_repo/builtin/packages/dav_sdk/package.py index b87a04abbcc..077ff0b834f 100644 --- a/repos/spack_repo/builtin/packages/dav_sdk/package.py +++ b/repos/spack_repo/builtin/packages/dav_sdk/package.py @@ -157,7 +157,7 @@ class DavSdk(BundlePackage, CudaPackage, ROCmPackage): # ParaView needs @5.11: in order to use CUDA/ROCM, therefore it is the minimum # required version since GPU capability is desired for ECP dav_sdk_depends_on( - "paraview@5.11:+mpi+openpmd+python+kits+shared+catalyst+libcatalyst" " use_vtkm=on", + "paraview@5.11:+mpi+openpmd+python+kits+shared+catalyst+libcatalyst use_vtkm=on", when="+paraview", propagate=["adios2", "cuda", "hdf5", "rocm"] + amdgpu_target_variants + cuda_arch_variants, ) diff --git a/repos/spack_repo/builtin/packages/dealii/package.py b/repos/spack_repo/builtin/packages/dealii/package.py index 41d726157a8..ac7bd93b27b 100644 --- a/repos/spack_repo/builtin/packages/dealii/package.py +++ b/repos/spack_repo/builtin/packages/dealii/package.py @@ -418,8 +418,9 @@ class Dealii(CMakePackage, CudaPackage): conflicts( "+{0}".format(_package), when="~mpi", - msg="To enable {0} it is necessary to build deal.II with " - "MPI support enabled.".format(_package), + msg="To enable {0} it is necessary to build deal.II with MPI support enabled.".format( + _package + ), ) # Optional dependencies: @@ -427,18 +428,16 @@ class Dealii(CMakePackage, CudaPackage): conflicts( "+adol-c", when="^trilinos+chaco", - msg="Symbol clash between the ADOL-C library and " "Trilinos SEACAS Chaco.", + msg="Symbol clash between the ADOL-C library and Trilinos SEACAS Chaco.", ) conflicts( "+adol-c", when="^trilinos+exodus", - msg="Symbol clash between the ADOL-C library and " "Trilinos Netcdf.", + msg="Symbol clash between the ADOL-C library and Trilinos Netcdf.", ) conflicts( - "+slepc", - when="~petsc", - msg="It is not possible to enable slepc interfaces " "without petsc.", + "+slepc", when="~petsc", msg="It is not possible to enable slepc interfaces without petsc." ) def cmake_args(self): diff --git a/repos/spack_repo/builtin/packages/dftbplus/package.py b/repos/spack_repo/builtin/packages/dftbplus/package.py index 6cd2e5c0f08..7192c182c91 100644 --- a/repos/spack_repo/builtin/packages/dftbplus/package.py +++ b/repos/spack_repo/builtin/packages/dftbplus/package.py @@ -59,7 +59,7 @@ class Dftbplus(CMakePackage, MakefilePackage): "chimes", default=False, when="@21.2:", - description="Whether repulsive corrections" "via the ChIMES library should be enabled.", + description="Whether repulsive corrections via the ChIMES library should be enabled.", ) variant( "elsi", @@ -69,9 +69,7 @@ class Dftbplus(CMakePackage, MakefilePackage): when="+mpi", ) variant( - "gpu", - default=False, - description="Use the MAGMA library " "for GPU accelerated computation", + "gpu", default=False, description="Use the MAGMA library for GPU accelerated computation" ) variant( "mbd", @@ -106,7 +104,7 @@ class Dftbplus(CMakePackage, MakefilePackage): variant( "sockets", default=False, - description="Whether the socket library " "(external control) should be linked", + description="Whether the socket library (external control) should be linked", ) variant( "transport", @@ -129,7 +127,7 @@ class Dftbplus(CMakePackage, MakefilePackage): "dftd3", default=False, when="@:19.1", - description="Use DftD3 dispersion library " "(if you need this dispersion model)", + description="Use DftD3 dispersion library (if you need this dispersion model)", ) depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/docbook_xml/package.py b/repos/spack_repo/builtin/packages/docbook_xml/package.py index f64c4cbda86..4a5db5b7396 100644 --- a/repos/spack_repo/builtin/packages/docbook_xml/package.py +++ b/repos/spack_repo/builtin/packages/docbook_xml/package.py @@ -77,8 +77,7 @@ def config_docbook(self): "--noout", "--add", "public", - "-//OASIS//ENTITIES DocBook XML Additional General Entities " - "V{0}//EN".format(version), + "-//OASIS//ENTITIES DocBook XML Additional General Entities V{0}//EN".format(version), f"file://{prefix}/dbgenent.mod", docbook, ) @@ -118,7 +117,7 @@ def config_docbook(self): "--noout", "--add", "public", - "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow " "Relations//EN", + "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN", f"file://{ent_dir}/isoamsa.ent", docbook, ) @@ -126,7 +125,7 @@ def config_docbook(self): "--noout", "--add", "public", - "ISO 8879:1986//ENTITIES Added Math Symbols: Binary " "Operators//EN", + "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN", f"file://{ent_dir}/isoamsb.ent", docbook, ) @@ -142,7 +141,7 @@ def config_docbook(self): "--noout", "--add", "public", - "ISO 8879:1986//ENTITIES Added Math Symbols: " "Negated Relations//EN", + "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN", f"file://{ent_dir}/isoamsn.ent", docbook, ) diff --git a/repos/spack_repo/builtin/packages/eccodes/package.py b/repos/spack_repo/builtin/packages/eccodes/package.py index cd3cd6df7aa..c3ba5c5ac25 100644 --- a/repos/spack_repo/builtin/packages/eccodes/package.py +++ b/repos/spack_repo/builtin/packages/eccodes/package.py @@ -127,13 +127,13 @@ class Eccodes(CMakePackage): conflicts( "+netcdf", when="~tools", - msg="Cannot enable the NetCDF conversion tool " "when the command line tools are disabled", + msg="Cannot enable the NetCDF conversion tool when the command line tools are disabled", ) conflicts( "~tools", when="@:2.18.0", - msg="The command line tools can be disabled " "only starting version 2.19.0", + msg="The command line tools can be disabled only starting version 2.19.0", ) for center, definitions in _definitions.items(): diff --git a/repos/spack_repo/builtin/packages/eckit/package.py b/repos/spack_repo/builtin/packages/eckit/package.py index 423a9c39d70..5916c3c1a12 100644 --- a/repos/spack_repo/builtin/packages/eckit/package.py +++ b/repos/spack_repo/builtin/packages/eckit/package.py @@ -64,7 +64,7 @@ class Eckit(CMakePackage): variant( "unicode", default=True, - description="Enable support for Unicode characters in Yaml/JSON" "parsers", + description="Enable support for Unicode characters in Yaml/JSON parsers", ) variant("aio", default=True, description="Enable asynchronous IO") variant("fismahigh", default=False, description="Apply patching for FISMA-high compliance") @@ -111,8 +111,7 @@ class Eckit(CMakePackage): conflicts( "linalg=lapack", when="linalg=mkl", - msg='"linalg=lapack" is implied when "linalg=mkl" and ' - "must not be specified additionally", + msg='"linalg=lapack" is implied when "linalg=mkl" and must not be specified additionally', ) def cmake_args(self): diff --git a/repos/spack_repo/builtin/packages/ecp_data_vis_sdk/package.py b/repos/spack_repo/builtin/packages/ecp_data_vis_sdk/package.py index aed15bcd6da..66075dab0f4 100644 --- a/repos/spack_repo/builtin/packages/ecp_data_vis_sdk/package.py +++ b/repos/spack_repo/builtin/packages/ecp_data_vis_sdk/package.py @@ -170,7 +170,7 @@ class EcpDataVisSdk(BundlePackage, CudaPackage, ROCmPackage): # ParaView needs @5.11: in order to use CUDA/ROCM, therefore it is the minimum # required version since GPU capability is desired for ECP dav_sdk_depends_on( - "paraview@5.11:+mpi+openpmd+python+kits+shared+catalyst+libcatalyst" " use_vtkm=on", + "paraview@5.11:+mpi+openpmd+python+kits+shared+catalyst+libcatalyst use_vtkm=on", when="+paraview", propagate=["adios2", "cuda", "hdf5", "rocm"] + amdgpu_target_variants + cuda_arch_variants, ) diff --git a/repos/spack_repo/builtin/packages/elpa/package.py b/repos/spack_repo/builtin/packages/elpa/package.py index d37f1d8f100..c8aa5bf8c31 100644 --- a/repos/spack_repo/builtin/packages/elpa/package.py +++ b/repos/spack_repo/builtin/packages/elpa/package.py @@ -227,7 +227,7 @@ def configure_args(self): ldflags = [spec["blas"].libs.search_flags, spec["lapack"].libs.search_flags, "-lstdc++"] libs = [spec["lapack"].libs.link_flags, spec["blas"].libs.link_flags] - options += [f'LDFLAGS={" ".join(ldflags)}', f'LIBS={" ".join(libs)}'] + options += [f"LDFLAGS={' '.join(ldflags)}", f"LIBS={' '.join(libs)}"] if self.spec.satisfies("+mpi"): options += [ diff --git a/repos/spack_repo/builtin/packages/esmf/package.py b/repos/spack_repo/builtin/packages/esmf/package.py index 59fd2015e00..7dfd358cfa1 100644 --- a/repos/spack_repo/builtin/packages/esmf/package.py +++ b/repos/spack_repo/builtin/packages/esmf/package.py @@ -172,7 +172,6 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: class PythonPipBuilder(python.PythonPipBuilder): - @property def build_directory(self): return os.path.join(self.stage.source_path, "src/addon/esmpy") diff --git a/repos/spack_repo/builtin/packages/exciting/package.py b/repos/spack_repo/builtin/packages/exciting/package.py index 25f0cb53fc5..b124438f52f 100644 --- a/repos/spack_repo/builtin/packages/exciting/package.py +++ b/repos/spack_repo/builtin/packages/exciting/package.py @@ -115,7 +115,7 @@ def edit(self, spec, prefix): opts["BUILDMPI"] = "true" opts["MPIF90"] = spec["mpi"].mpifc opts["MPIF90_CPP_OPTS"] = "-DMPI -DMPIRHO -DMPISEC" - opts["MPIF90_OPTS"] = " ".join(["$(F90_OPTS)", "$(CPP_ON_OPTS) " "$(MPIF90_CPP_OPTS)"]) + opts["MPIF90_OPTS"] = "$(F90_OPTS) $(CPP_ON_OPTS) $(MPIF90_CPP_OPTS)" opts["MPIF90MT"] = "$(MPIF90)" if spec.satisfies("+omp"): diff --git a/repos/spack_repo/builtin/packages/flamemaster/package.py b/repos/spack_repo/builtin/packages/flamemaster/package.py index 1ea50c50ec3..deb17225b26 100644 --- a/repos/spack_repo/builtin/packages/flamemaster/package.py +++ b/repos/spack_repo/builtin/packages/flamemaster/package.py @@ -33,12 +33,12 @@ class Flamemaster(CMakePackage): variant( "bilin_omega", default=True, - description="Compile with bilinear interpolation" "for collision integrals (omega)", + description="Compile with bilinear interpolation for collision integrals (omega)", ) variant( "combustion", default=False, - description="Integrate comustion libraries" "for kinetics, thermodynamics, and transport", + description="Integrate comustion libraries for kinetics, thermodynamics, and transport", ) variant( "fortran_code", @@ -111,7 +111,7 @@ class Flamemaster(CMakePackage): variant( "tests", default=False, - description="Install google-test framework for unit tests" "and enable units tests.", + description="Install google-test framework for unit tests and enable units tests.", ) variant( "third_party_in_build_dir", diff --git a/repos/spack_repo/builtin/packages/flann/package.py b/repos/spack_repo/builtin/packages/flann/package.py index 5e3b7c8a2a6..ef634def5cc 100644 --- a/repos/spack_repo/builtin/packages/flann/package.py +++ b/repos/spack_repo/builtin/packages/flann/package.py @@ -39,7 +39,7 @@ def url_for_version(self, version): # Options available in the CMakeLists.txt # Language bindings - variant("python", default=False, description="Build the Python bindings. " "Module: pyflann.") + variant("python", default=False, description="Build the Python bindings. Module: pyflann.") extends("python", when="+python") variant("matlab", default=False, description="Build the Matlab bindings.") # default to true for C because it's a C++ library, nothing extra needed diff --git a/repos/spack_repo/builtin/packages/flexi/package.py b/repos/spack_repo/builtin/packages/flexi/package.py index 9822eebe9a5..acadd5842dd 100644 --- a/repos/spack_repo/builtin/packages/flexi/package.py +++ b/repos/spack_repo/builtin/packages/flexi/package.py @@ -43,8 +43,7 @@ class Flexi(CMakePackage): values=("br1", "br2"), multi=False, description=( - "Two different lifting methods for the parabolic part of " - "the equation system available" + "Two different lifting methods for the parabolic part of the equation system available" ), ) variant( @@ -61,7 +60,7 @@ class Flexi(CMakePackage): "parabolic", default=True, description=( - "Defines whether the parabolic part of the chosen system " "should be included or not" + "Defines whether the parabolic part of the chosen system should be included or not" ), ) variant( diff --git a/repos/spack_repo/builtin/packages/fortrilinos/package.py b/repos/spack_repo/builtin/packages/fortrilinos/package.py index 0e57d49136c..5a1019d8a47 100644 --- a/repos/spack_repo/builtin/packages/fortrilinos/package.py +++ b/repos/spack_repo/builtin/packages/fortrilinos/package.py @@ -68,7 +68,7 @@ class Fortrilinos(CMakePackage): depends_on("trilinos gotype=long_long") # Full trilinos dependencies depends_on( - "trilinos+amesos2+anasazi+belos+kokkos+ifpack2+muelu+nox+tpetra" "+stratimikos", when="+hl" + "trilinos+amesos2+anasazi+belos+kokkos+ifpack2+muelu+nox+tpetra+stratimikos", when="+hl" ) def cmake_args(self): diff --git a/repos/spack_repo/builtin/packages/freetype/package.py b/repos/spack_repo/builtin/packages/freetype/package.py index 4c3497e6138..6177dc3b716 100644 --- a/repos/spack_repo/builtin/packages/freetype/package.py +++ b/repos/spack_repo/builtin/packages/freetype/package.py @@ -60,8 +60,7 @@ class Freetype(AutotoolsPackage, CMakePackage): conflicts( "%intel", when="@2.8:2.10.2", - msg="freetype-2.8 to 2.10.2 cannot be built with icc (does not " - "support __builtin_shuffle)", + msg="freetype-2.8 to 2.10.2 cannot be built with icc (does not support __builtin_shuffle)", ) variant("shared", default=True, description="Build shared libraries") diff --git a/repos/spack_repo/builtin/packages/gcc/package.py b/repos/spack_repo/builtin/packages/gcc/package.py index 1f4b15dc49f..9e103b96e78 100644 --- a/repos/spack_repo/builtin/packages/gcc/package.py +++ b/repos/spack_repo/builtin/packages/gcc/package.py @@ -1199,8 +1199,9 @@ def detect_gdc(self): return candidate_gdc else: raise InstallError( - "Cannot resolve ambiguity when detecting GDC that belongs to " - "%{0}".format(self.compiler.spec), + "Cannot resolve ambiguity when detecting GDC that belongs to %{0}".format( + self.compiler.spec + ), long_msg="The candidates are:{0}{0}{1}{0}".format( error_nl, error_nl.join( diff --git a/repos/spack_repo/builtin/packages/geopm_runtime/package.py b/repos/spack_repo/builtin/packages/geopm_runtime/package.py index 1a7543cbd14..40bb5140a8a 100644 --- a/repos/spack_repo/builtin/packages/geopm_runtime/package.py +++ b/repos/spack_repo/builtin/packages/geopm_runtime/package.py @@ -137,7 +137,6 @@ def autoreconf(self, spec, prefix): bash("./autogen.sh") def configure_args(self): - with when("@3.0.1"): args = [ "--with-bash-completion-dir=" diff --git a/repos/spack_repo/builtin/packages/ghostscript_fonts/package.py b/repos/spack_repo/builtin/packages/ghostscript_fonts/package.py index 53f6297b2d8..24a67cd8770 100644 --- a/repos/spack_repo/builtin/packages/ghostscript_fonts/package.py +++ b/repos/spack_repo/builtin/packages/ghostscript_fonts/package.py @@ -15,7 +15,7 @@ class GhostscriptFonts(Package, SourceforgePackage): homepage = "https://ghostscript.com/" sourceforge_mirror_path = ( - "gs-fonts/gs-fonts/8.11%20%28base%2035%2C%20GPL%29/" "ghostscript-fonts-std-8.11.tar.gz" + "gs-fonts/gs-fonts/8.11%20%28base%2035%2C%20GPL%29/ghostscript-fonts-std-8.11.tar.gz" ) license("GPL-2.0-or-later") diff --git a/repos/spack_repo/builtin/packages/glib/package.py b/repos/spack_repo/builtin/packages/glib/package.py index 2d8e2c3c4f6..5a28ac7caa0 100644 --- a/repos/spack_repo/builtin/packages/glib/package.py +++ b/repos/spack_repo/builtin/packages/glib/package.py @@ -133,7 +133,6 @@ def libs(self): class MesonBuilder(meson.MesonBuilder): - @property def dtrace_copy_path(self): return join_path(self.stage.source_path, "dtrace-copy") diff --git a/repos/spack_repo/builtin/packages/gpu_burn/package.py b/repos/spack_repo/builtin/packages/gpu_burn/package.py index c639314abd6..f186c289122 100644 --- a/repos/spack_repo/builtin/packages/gpu_burn/package.py +++ b/repos/spack_repo/builtin/packages/gpu_burn/package.py @@ -37,7 +37,7 @@ def edit(self, spec, prefix): archflag = " ".join(CudaPackage.cuda_flags(cuda_arch)) with open("Makefile", "w") as fh: fh.write("drv:\n") - fh.write("\tnvcc {0} -fatbin " "compare.cu -o compare.ptx\n".format(archflag)) + fh.write("\tnvcc {0} -fatbin compare.cu -o compare.ptx\n".format(archflag)) fh.write("\t{0} -O3 -c gpu_burn-drv.cpp\n".format(spack_cxx)) fh.write( "\t{0} -o gpu_burn gpu_burn-drv.o -O3 -lcuda " diff --git a/repos/spack_repo/builtin/packages/graphviz/package.py b/repos/spack_repo/builtin/packages/graphviz/package.py index 880b2d2c5c3..2b097250557 100644 --- a/repos/spack_repo/builtin/packages/graphviz/package.py +++ b/repos/spack_repo/builtin/packages/graphviz/package.py @@ -53,7 +53,7 @@ class Graphviz(AutotoolsPackage): variant( lang, default=False, - description="Enable for optional {0} language " "bindings".format(lang), + description="Enable for optional {0} language bindings".format(lang), ) # Feature variants @@ -148,7 +148,7 @@ class Graphviz(AutotoolsPackage): conflicts( "%gcc@:5.9", when="@2.40.1+qt ^qt@5:", - msg="graphviz-2.40.1 needs gcc-6 or greater to compile with QT5 " "suppport", + msg="graphviz-2.40.1 needs gcc-6 or greater to compile with QT5 suppport", ) def autoreconf(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/groff/package.py b/repos/spack_repo/builtin/packages/groff/package.py index 4b899f75723..f558950e0d9 100644 --- a/repos/spack_repo/builtin/packages/groff/package.py +++ b/repos/spack_repo/builtin/packages/groff/package.py @@ -37,8 +37,7 @@ class Groff(AutotoolsPackage, GNUMirrorPackage): variant( "uchardet", default=True, - description="Builds preconv with uchardet library for " - "automatic file encoding detection", + description="Builds preconv with uchardet library for automatic file encoding detection", ) conflicts("+uchardet", when="@:1.22.3") diff --git a/repos/spack_repo/builtin/packages/gromacs/package.py b/repos/spack_repo/builtin/packages/gromacs/package.py index bbcd36af83d..cf10b4b4dbf 100644 --- a/repos/spack_repo/builtin/packages/gromacs/package.py +++ b/repos/spack_repo/builtin/packages/gromacs/package.py @@ -673,13 +673,13 @@ def cmake_args(self): if self.spec.satisfies("+cufftmp"): options.append("-DGMX_USE_CUFFTMP=ON") options.append( - f'-DcuFFTMp_ROOT={self.spec["nvhpc"].prefix}/Linux_{self.spec.target.family}' - + f'/{self.spec["nvhpc"].version}/math_libs' + f"-DcuFFTMp_ROOT={self.spec['nvhpc'].prefix}/Linux_{self.spec.target.family}" + + f"/{self.spec['nvhpc'].version}/math_libs" ) if self.spec.satisfies("+heffte"): options.append("-DGMX_USE_HEFFTE=on") - options.append(f'-DHeffte_ROOT={self.spec["heffte"].prefix}') + options.append(f"-DHeffte_ROOT={self.spec['heffte'].prefix}") if self.spec.satisfies("+intel-data-center-gpu-max"): options.append("-DGMX_GPU_NB_CLUSTER_SIZE=8") diff --git a/repos/spack_repo/builtin/packages/grpc/package.py b/repos/spack_repo/builtin/packages/grpc/package.py index fd88a304a45..8f4cc206875 100644 --- a/repos/spack_repo/builtin/packages/grpc/package.py +++ b/repos/spack_repo/builtin/packages/grpc/package.py @@ -52,7 +52,7 @@ class Grpc(CMakePackage): variant( "codegen", default=True, - description="Builds code generation plugins for protobuf " "compiler (protoc)", + description="Builds code generation plugins for protobuf compiler (protoc)", ) variant( "cxxstd", diff --git a/repos/spack_repo/builtin/packages/gtkplus/package.py b/repos/spack_repo/builtin/packages/gtkplus/package.py index 082a0a6aa9f..707151b5e6e 100644 --- a/repos/spack_repo/builtin/packages/gtkplus/package.py +++ b/repos/spack_repo/builtin/packages/gtkplus/package.py @@ -120,7 +120,6 @@ def setup_dependent_run_environment( class BuildEnvironment: - def setup_dependent_build_environment( self, env: EnvironmentModifications, dependent_spec: Spec ) -> None: @@ -129,7 +128,6 @@ def setup_dependent_build_environment( class MesonBuilder(BuildEnvironment, meson.MesonBuilder): - def meson_args(self): args = [] @@ -150,7 +148,6 @@ def check(self): class AutotoolsBuilder(BuildEnvironment, autotools.AutotoolsBuilder): - def configure_args(self): true = which("true") args = [ diff --git a/repos/spack_repo/builtin/packages/hdf5/package.py b/repos/spack_repo/builtin/packages/hdf5/package.py index 606ad8445f2..57960ddfdb7 100644 --- a/repos/spack_repo/builtin/packages/hdf5/package.py +++ b/repos/spack_repo/builtin/packages/hdf5/package.py @@ -601,7 +601,7 @@ def ensure_parallel_compiler_wrappers(self): # 1.10.6 and 1.12.0. The current develop versions do not produce 'h5pfc' # at all. Here, we make sure that 'h5pfc' is available when Fortran and # MPI support are enabled (only for versions that generate 'h5fc'). - if self.spec.satisfies("@1.8.22:1.8," "1.10.6:1.10.9," "1.12.0:1.12.2" "+fortran+mpi"): + if self.spec.satisfies("@1.8.22:1.8,1.10.6:1.10.9,1.12.0:1.12.2+fortran+mpi"): with working_dir(self.prefix.bin): # No try/except here, fix the condition above instead: symlink("h5fc", "h5pfc") diff --git a/repos/spack_repo/builtin/packages/hicops/package.py b/repos/spack_repo/builtin/packages/hicops/package.py index 650e1fe8c8c..05563e33fe9 100644 --- a/repos/spack_repo/builtin/packages/hicops/package.py +++ b/repos/spack_repo/builtin/packages/hicops/package.py @@ -26,18 +26,17 @@ class Hicops(CMakePackage): variant( "timemory", default=False, - description="Enable timemory interface. Requires timemory " "installation.", + description="Enable timemory interface. Requires timemory installation.", ) variant( "mpip", default=False, - description="Enables the MPIP data_tracker via Timemory. " - "Requires timemory installation.", + description="Enables the MPIP data_tracker via Timemory. Requires timemory installation.", ) variant( "tailfit", default=True, - description="Use the tailfit method instead of Gumbelfit " "for e-value computation.", + description="Use the tailfit method instead of Gumbelfit for e-value computation.", ) variant("progress", default=True, description="Display HiCOPS progress marks.") variant( @@ -50,14 +49,14 @@ class Hicops(CMakePackage): variant( "qalen", default="100", - description="Maximum number of top K peaks to keep when " "spectrum preprocess.", + description="Maximum number of top K peaks to keep when spectrum preprocess.", values=int, multi=False, ) variant( "qchunk", default="10000", - description="Max size of each batch extracted from the " "dataset.", + description="Max size of each batch extracted from the dataset.", values=int, multi=False, ) diff --git a/repos/spack_repo/builtin/packages/hiop/package.py b/repos/spack_repo/builtin/packages/hiop/package.py index db138affa62..baa84a21630 100644 --- a/repos/spack_repo/builtin/packages/hiop/package.py +++ b/repos/spack_repo/builtin/packages/hiop/package.py @@ -93,7 +93,7 @@ class Hiop(CMakePackage, CudaPackage, ROCmPackage): variant( "deepchecking", default=False, - description="Ultra safety checks - " "used for increased robustness and self-diagnostics", + description="Ultra safety checks - used for increased robustness and self-diagnostics", ) variant("ginkgo", default=False, description="Enable/disable ginkgo solver") variant( @@ -320,7 +320,7 @@ def run_hiop(self, raja): exe = which(exe) for i, args in enumerate(options): - with test_part(self, f"test_{exName}_{i+1}", purpose=" ".join(args)): + with test_part(self, f"test_{exName}_{i + 1}", purpose=" ".join(args)): exe(*args) def test_NlpMdsEx1(self): diff --git a/repos/spack_repo/builtin/packages/hipblaslt/package.py b/repos/spack_repo/builtin/packages/hipblaslt/package.py index 7e276c4cb53..cd34fb162f9 100644 --- a/repos/spack_repo/builtin/packages/hipblaslt/package.py +++ b/repos/spack_repo/builtin/packages/hipblaslt/package.py @@ -124,14 +124,14 @@ def patch(self): ) filter_file( "${rocm_path}/bin/amdclang++", - f'{self.spec["llvm-amdgpu"].prefix}/bin/amdclang++', + f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++", "library/src/amd_detail/rocblaslt/src/kernels/compile_code_object.sh", string=True, ) if self.spec.satisfies("@6.3:"): filter_file( "${rocm_path}/bin/amdclang++", - f'{self.spec["llvm-amdgpu"].prefix}/bin/amdclang++', + f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++", "tensilelite/Tensile/Ops/gen_assembly.sh", string=True, ) diff --git a/repos/spack_repo/builtin/packages/hpc_beeflow/package.py b/repos/spack_repo/builtin/packages/hpc_beeflow/package.py index 14fc15e54b5..2e32212c0d1 100644 --- a/repos/spack_repo/builtin/packages/hpc_beeflow/package.py +++ b/repos/spack_repo/builtin/packages/hpc_beeflow/package.py @@ -61,7 +61,6 @@ class HpcBeeflow(PythonPackage): # Setup for when "no containers" is specified def setup_run_environment(self, env): - neo4j_bin = join_path(self.spec["neo4j"].prefix, "packaging/standalone/target") redis_bin = join_path(self.spec["redis"].prefix, "bin") diff --git a/repos/spack_repo/builtin/packages/hpctoolkit/package.py b/repos/spack_repo/builtin/packages/hpctoolkit/package.py index 2f95d9c49bd..5455ee69388 100644 --- a/repos/spack_repo/builtin/packages/hpctoolkit/package.py +++ b/repos/spack_repo/builtin/packages/hpctoolkit/package.py @@ -83,8 +83,7 @@ class Hpctoolkit(AutotoolsPackage, MesonPackage): variant( "papi", default=True, - description="Use PAPI instead of perfmon for access to " - "the hardware performance counters.", + description="Use PAPI instead of perfmon for access to the hardware performance counters.", ) # Accelerator variants: cuda, rocm, etc. diff --git a/repos/spack_repo/builtin/packages/hwloc/package.py b/repos/spack_repo/builtin/packages/hwloc/package.py index f8b5f9b1667..1f06dc5fe7e 100644 --- a/repos/spack_repo/builtin/packages/hwloc/package.py +++ b/repos/spack_repo/builtin/packages/hwloc/package.py @@ -191,11 +191,11 @@ def configure_args(self): args.append("--disable-rsmi") if self.spec.satisfies("+rocm"): - args.append(f'--with-rocm={self.spec["hip"].prefix}') - args.append(f'--with-rocm-version={self.spec["hip"].version}') + args.append(f"--with-rocm={self.spec['hip'].prefix}") + args.append(f"--with-rocm-version={self.spec['hip'].version}") if self.spec.satisfies("+cuda"): - args.append(f'--with-cuda={self.spec["cuda"].prefix}') - args.append(f'--with-cuda-version={self.spec["cuda"].version}') + args.append(f"--with-cuda={self.spec['cuda'].prefix}") + args.append(f"--with-cuda-version={self.spec['cuda'].version}") return args diff --git a/repos/spack_repo/builtin/packages/hypre_cmake/package.py b/repos/spack_repo/builtin/packages/hypre_cmake/package.py index 7c753358916..6af03859ced 100644 --- a/repos/spack_repo/builtin/packages/hypre_cmake/package.py +++ b/repos/spack_repo/builtin/packages/hypre_cmake/package.py @@ -133,7 +133,6 @@ def test_bigint(self): for exe_name in ["ex5big", "ex15big"]: with test_part(self, f"test_bigint_{exe_name}", purpose=f"Ensure {exe_name} runs"): - program = which(exe_name) if program is None: raise SkipTest(f"{exe_name} does not exist in version {self.version}") diff --git a/repos/spack_repo/builtin/packages/icedtea/package.py b/repos/spack_repo/builtin/packages/icedtea/package.py index cc8bb1d1c5f..bbf38e240fa 100644 --- a/repos/spack_repo/builtin/packages/icedtea/package.py +++ b/repos/spack_repo/builtin/packages/icedtea/package.py @@ -183,7 +183,8 @@ def configure_args(self): "--with-openjdk-checksum=no", "--with-nashorn-src-zip=" + self.stage[8].archive_file, "--with-nashorn-checksum=no", - "--disable-maintainer-mode" "--disable-downloading", + "--disable-maintainer-mode", + "--disable-downloading", "--disable-system-pcsc", "--disable-system-sctp", "--disable-system-kerberos", diff --git a/repos/spack_repo/builtin/packages/icu4c/package.py b/repos/spack_repo/builtin/packages/icu4c/package.py index 576d910b666..1e0c5d5889b 100644 --- a/repos/spack_repo/builtin/packages/icu4c/package.py +++ b/repos/spack_repo/builtin/packages/icu4c/package.py @@ -89,7 +89,6 @@ def libs(self): class AutotoolsBuilder(autotools.AutotoolsBuilder): - configure_directory = "source" # Need to make sure that locale is UTF-8 in order to process source files in UTF-8. diff --git a/repos/spack_repo/builtin/packages/jsoncpp/package.py b/repos/spack_repo/builtin/packages/jsoncpp/package.py index ae5540b96e3..548f3c0d415 100644 --- a/repos/spack_repo/builtin/packages/jsoncpp/package.py +++ b/repos/spack_repo/builtin/packages/jsoncpp/package.py @@ -70,7 +70,7 @@ class Jsoncpp(CMakePackage, MesonPackage): def patch(self): filter_file( "return d >= min && d <= max;", - "return d >= static_cast(min) && " "d <= static_cast(max);", + "return d >= static_cast(min) && d <= static_cast(max);", "src/lib_json/json_value.cpp", ) diff --git a/repos/spack_repo/builtin/packages/jsonnet/package.py b/repos/spack_repo/builtin/packages/jsonnet/package.py index bff933f274c..3e773bac32f 100644 --- a/repos/spack_repo/builtin/packages/jsonnet/package.py +++ b/repos/spack_repo/builtin/packages/jsonnet/package.py @@ -48,7 +48,6 @@ class Jsonnet(MakefilePackage, CMakePackage): class MakefileBuilder(makefile.MakefileBuilder): - @property def install_targets(self): return ["PREFIX={0}".format(self.prefix), "install"] @@ -60,7 +59,6 @@ def python_install(self): class CMakeBuilder(cmake.CMakeBuilder): - def cmake_args(self): return [ self.define("USE_SYSTEM_JSON", True), diff --git a/repos/spack_repo/builtin/packages/kentutils/package.py b/repos/spack_repo/builtin/packages/kentutils/package.py index d15e266236a..9087f738981 100644 --- a/repos/spack_repo/builtin/packages/kentutils/package.py +++ b/repos/spack_repo/builtin/packages/kentutils/package.py @@ -77,7 +77,7 @@ def flag_handler(self, name, flags): if name == "cflags": flags.append(self.compiler.cc_pic_flag) elif name == "ldflags": - flags.append(f'{self.spec["libiconv"].libs.ld_flags}') + flags.append(f"{self.spec['libiconv'].libs.ld_flags}") return (flags, None, None) @property diff --git a/repos/spack_repo/builtin/packages/lbann/package.py b/repos/spack_repo/builtin/packages/lbann/package.py index 046995b13eb..affda660a12 100644 --- a/repos/spack_repo/builtin/packages/lbann/package.py +++ b/repos/spack_repo/builtin/packages/lbann/package.py @@ -64,8 +64,7 @@ class Lbann(CachedCMakePackage, CudaPackage, ROCmPackage): "distconv", default=False, sticky=True, - description="Builds with support for spatial, filter, or channel " - "distributed convolutions", + description="Builds with support for spatial, filter, or channel distributed convolutions", ) variant( "dtype", diff --git a/repos/spack_repo/builtin/packages/lcals/package.py b/repos/spack_repo/builtin/packages/lcals/package.py index 1edfd65c060..509a5740dd3 100644 --- a/repos/spack_repo/builtin/packages/lcals/package.py +++ b/repos/spack_repo/builtin/packages/lcals/package.py @@ -78,14 +78,14 @@ def build_targets(self): if arch == "MIC" or (microarch == "sse" and arch == "x86"): cxxflags += "-DLCALS_PLATFORM_X86_SSE -DLCALS_COMPILER_GNU " cxx_compile += ( - "-Ofast -msse4.1 -finline-functions" " -finline-limit=10000 -std=c++11 " + "-Ofast -msse4.1 -finline-functions -finline-limit=10000 -std=c++11 " ) elif microarch == "avx" and arch == "x86": cxxflags += "-DLCALS_PLATFORM_X86_AVX -DLCALS_COMPILER_GNU " - cxx_compile += "-Ofast -mavx -finline-functions" " -finline-limit=10000 -std=c++11" + cxx_compile += "-Ofast -mavx -finline-functions -finline-limit=10000 -std=c++11" elif arch == "aarch64": cxxflags += "-DLCALS_COMPILER_GNU " - cxx_compile += "-Ofast -finline-functions" " -finline-limit=10000 -std=c++11" + cxx_compile += "-Ofast -finline-functions -finline-limit=10000 -std=c++11" cxxflags += self.compiler.openmp_flag targets.append("LCALS_ARCH=") diff --git a/repos/spack_repo/builtin/packages/libcint/package.py b/repos/spack_repo/builtin/packages/libcint/package.py index 5b1c29d7068..7feb4e14835 100644 --- a/repos/spack_repo/builtin/packages/libcint/package.py +++ b/repos/spack_repo/builtin/packages/libcint/package.py @@ -44,7 +44,7 @@ class Libcint(CMakePackage): variant( "pypzpx", default=False, - description="Enforce PYPZPX ordering of p-orbitals " "instead of PXPYPZ.", + description="Enforce PYPZPX ordering of p-orbitals instead of PXPYPZ.", ) variant("test", default=False, description="Build test programs") variant("shared", default=True, description="Build the shared library") diff --git a/repos/spack_repo/builtin/packages/libepoxy/package.py b/repos/spack_repo/builtin/packages/libepoxy/package.py index f24785427f5..c5687e4f75d 100644 --- a/repos/spack_repo/builtin/packages/libepoxy/package.py +++ b/repos/spack_repo/builtin/packages/libepoxy/package.py @@ -44,7 +44,6 @@ def url_for_version(self, version): class MesonBuilder(meson.MesonBuilder): - def meson_args(self): # Disable egl, otherwise configure fails with: # error: Package requirements (egl) were not met @@ -63,7 +62,6 @@ def meson_args(self): class AutotoolsBuilder(autotools.AutotoolsBuilder): - def configure_args(self): # Disable egl, otherwise configure fails with: # error: Package requirements (egl) were not met diff --git a/repos/spack_repo/builtin/packages/libint/package.py b/repos/spack_repo/builtin/packages/libint/package.py index fc2415f6f96..4cf6d4f5130 100644 --- a/repos/spack_repo/builtin/packages/libint/package.py +++ b/repos/spack_repo/builtin/packages/libint/package.py @@ -57,7 +57,7 @@ class Libint(AutotoolsPackage): "fma", default=False, description=( - "Generate code utilizing FMA" " (requires capable CPU and recent enough compiler)" + "Generate code utilizing FMA (requires capable CPU and recent enough compiler)" ), ) diff --git a/repos/spack_repo/builtin/packages/libunwind/package.py b/repos/spack_repo/builtin/packages/libunwind/package.py index 1699df9f133..7e6a700699a 100644 --- a/repos/spack_repo/builtin/packages/libunwind/package.py +++ b/repos/spack_repo/builtin/packages/libunwind/package.py @@ -74,9 +74,7 @@ class Libunwind(AutotoolsPackage): variant("xz", default=False, description="Support xz (lzma) compressed symbol tables.") variant( - "zlib", - default=False, - description="Support zlib compressed symbol tables " "(1.5 and later).", + "zlib", default=False, description="Support zlib compressed symbol tables (1.5 and later)." ) depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/libxc/package.py b/repos/spack_repo/builtin/packages/libxc/package.py index 7f58ad4cf49..ae8c6dbdadf 100644 --- a/repos/spack_repo/builtin/packages/libxc/package.py +++ b/repos/spack_repo/builtin/packages/libxc/package.py @@ -107,7 +107,6 @@ def libs(self): class AutotoolsBuilder(autotools.AutotoolsBuilder): - def setup_build_environment(self, env: EnvironmentModifications) -> None: # microarchitecture-specific optimization flags should be controlled # by Spack, otherwise we may end up with contradictory or invalid flags @@ -161,7 +160,6 @@ def check(self): class CMakeBuilder(cmake.CMakeBuilder): - def cmake_args(self): spec = self.spec args = [ diff --git a/repos/spack_repo/builtin/packages/llvm/package.py b/repos/spack_repo/builtin/packages/llvm/package.py index 880d6f5764f..be4eb6af79b 100644 --- a/repos/spack_repo/builtin/packages/llvm/package.py +++ b/repos/spack_repo/builtin/packages/llvm/package.py @@ -852,7 +852,7 @@ def determine_variants(cls, exes, version_str): @classmethod def validate_detected_spec(cls, spec, extra_attributes): # For LLVM 'compilers' is a mandatory attribute - msg = 'the extra attribute "compilers" must be set for ' 'the detected spec "{0}"'.format( + msg = 'the extra attribute "compilers" must be set for the detected spec "{0}"'.format( spec ) assert "compilers" in extra_attributes, msg diff --git a/repos/spack_repo/builtin/packages/llvm_doe/package.py b/repos/spack_repo/builtin/packages/llvm_doe/package.py index ac1f737145a..80950865b6a 100644 --- a/repos/spack_repo/builtin/packages/llvm_doe/package.py +++ b/repos/spack_repo/builtin/packages/llvm_doe/package.py @@ -53,7 +53,7 @@ class LlvmDoe(CMakePackage, CudaPackage): variant( "polly", default=True, - description="Build the LLVM polyhedral optimization plugin, " "only builds for 3.7.0+", + description="Build the LLVM polyhedral optimization plugin, only builds for 3.7.0+", ) variant("libcxx", default=True, description="Build the LLVM C++ standard library") variant( @@ -290,7 +290,7 @@ def determine_variants(cls, exes, version_str): @classmethod def validate_detected_spec(cls, spec, extra_attributes): # For LLVM 'compilers' is a mandatory attribute - msg = 'the extra attribute "compilers" must be set for ' 'the detected spec "{0}"'.format( + msg = 'the extra attribute "compilers" must be set for the detected spec "{0}"'.format( spec ) assert "compilers" in extra_attributes, msg diff --git a/repos/spack_repo/builtin/packages/lmdb/package.py b/repos/spack_repo/builtin/packages/lmdb/package.py index 1b37f0d3991..869e12ec129 100644 --- a/repos/spack_repo/builtin/packages/lmdb/package.py +++ b/repos/spack_repo/builtin/packages/lmdb/package.py @@ -49,8 +49,7 @@ def install_pkgconfig(self): f.write("\n") f.write("Name: LMDB\n") f.write( - "Description: Symas LMDB is an extraordinarily fast, " - "memory-efficient database.\n" + "Description: Symas LMDB is an extraordinarily fast, memory-efficient database.\n" ) f.write("Version: {0}\n".format(self.spec.version)) f.write("Cflags: -I${includedir}\n") diff --git a/repos/spack_repo/builtin/packages/madgraph5amc/package.py b/repos/spack_repo/builtin/packages/madgraph5amc/package.py index d087ed9e45d..3589ca57753 100644 --- a/repos/spack_repo/builtin/packages/madgraph5amc/package.py +++ b/repos/spack_repo/builtin/packages/madgraph5amc/package.py @@ -151,7 +151,7 @@ def installfile(filename): if "+pythia8" in spec: with open("install-pythia8-interface", "w") as f: f.write( - f"""set pythia8_path {spec['pythia8'].prefix} + f"""set pythia8_path {spec["pythia8"].prefix} install mg5amc_py8_interface """ ) diff --git a/repos/spack_repo/builtin/packages/mariadb/package.py b/repos/spack_repo/builtin/packages/mariadb/package.py index 6d1837a1118..7f54b132c35 100644 --- a/repos/spack_repo/builtin/packages/mariadb/package.py +++ b/repos/spack_repo/builtin/packages/mariadb/package.py @@ -40,7 +40,7 @@ class Mariadb(CMakePackage): variant( "nonblocking", default=True, - description="Allow non blocking " "operations in the mariadb client library.", + description="Allow non blocking operations in the mariadb client library.", ) provides("mariadb-client") diff --git a/repos/spack_repo/builtin/packages/matio/package.py b/repos/spack_repo/builtin/packages/matio/package.py index f5d69255911..31ba6669b8e 100644 --- a/repos/spack_repo/builtin/packages/matio/package.py +++ b/repos/spack_repo/builtin/packages/matio/package.py @@ -58,7 +58,7 @@ def patch(self): # workaround anonymous version tag linker error for the NVIDIA # compilers filter_file( - "${wl}-version-script " "${wl}$output_objdir/$libname.ver", + "${wl}-version-script ${wl}$output_objdir/$libname.ver", "", "configure", string=True, diff --git a/repos/spack_repo/builtin/packages/mfem/package.py b/repos/spack_repo/builtin/packages/mfem/package.py index 39c38b91ee7..146aa3ce942 100644 --- a/repos/spack_repo/builtin/packages/mfem/package.py +++ b/repos/spack_repo/builtin/packages/mfem/package.py @@ -186,9 +186,7 @@ class Mfem(Package, CudaPackage, ROCmPackage): "threadsafe", default=False, description=( - "Enable thread safe features." - " Required for OpenMP." - " May cause minor performance issues." + "Enable thread safe features. Required for OpenMP. May cause minor performance issues." ), ) variant( diff --git a/repos/spack_repo/builtin/packages/mimalloc/package.py b/repos/spack_repo/builtin/packages/mimalloc/package.py index 24f97e1cae8..aac7423dd24 100644 --- a/repos/spack_repo/builtin/packages/mimalloc/package.py +++ b/repos/spack_repo/builtin/packages/mimalloc/package.py @@ -77,15 +77,13 @@ class Mimalloc(CMakePackage): ), "override": ( True, - "Override the standard malloc interface (e.g. define entry points " - "for malloc() etc)", + "Override the standard malloc interface (e.g. define entry points for malloc() etc)", None, ), "xmalloc": (False, "Enable abort() call on memory allocation failure by default", None), "show_errors": ( False, - "Show error and warning messages by default (only enabled by default " - "in DEBUG mode)", + "Show error and warning messages by default (only enabled by default in DEBUG mode)", None, ), "use_cxx": ( diff --git a/repos/spack_repo/builtin/packages/mpich/package.py b/repos/spack_repo/builtin/packages/mpich/package.py index eaf3b0e797d..13d5c07068c 100644 --- a/repos/spack_repo/builtin/packages/mpich/package.py +++ b/repos/spack_repo/builtin/packages/mpich/package.py @@ -183,8 +183,7 @@ class Mpich(MpichEnvironmentModifications, AutotoolsPackage, CudaPackage, ROCmPa variant( "hcoll", default=False, - description="Enable support for Mellanox HCOLL accelerated " - "collective operations library", + description="Enable support for Mellanox HCOLL accelerated collective operations library", when="@3.3: device=ch4 netmod=ucx", ) diff --git a/repos/spack_repo/builtin/packages/mvapich/package.py b/repos/spack_repo/builtin/packages/mvapich/package.py index f6699806a2a..2de4480ff08 100644 --- a/repos/spack_repo/builtin/packages/mvapich/package.py +++ b/repos/spack_repo/builtin/packages/mvapich/package.py @@ -75,7 +75,7 @@ class Mvapich(MpichEnvironmentModifications, AutotoolsPackage): "process_managers", description="List of the process managers to activate", values=disjoint_sets(("auto",), ("slurm",), ("hydra", "gforker", "remshell")) - .with_error("'slurm' or 'auto' cannot be activated along with " "other process managers") + .with_error("'slurm' or 'auto' cannot be activated along with other process managers") .with_default("auto") .with_non_feature_values("auto"), ) diff --git a/repos/spack_repo/builtin/packages/mvapich2/package.py b/repos/spack_repo/builtin/packages/mvapich2/package.py index 73198c7de17..aaf01043fd8 100644 --- a/repos/spack_repo/builtin/packages/mvapich2/package.py +++ b/repos/spack_repo/builtin/packages/mvapich2/package.py @@ -80,7 +80,7 @@ class Mvapich2(MpichEnvironmentModifications, AutotoolsPackage): description="List of the process managers to activate", values=disjoint_sets(("auto",), ("slurm",), ("hydra", "gforker", "remshell")) .prohibit_empty_set() - .with_error("'slurm' or 'auto' cannot be activated along with " "other process managers") + .with_error("'slurm' or 'auto' cannot be activated along with other process managers") .with_default("auto") .with_non_feature_values("auto"), ) diff --git a/repos/spack_repo/builtin/packages/mvapich2x/package.py b/repos/spack_repo/builtin/packages/mvapich2x/package.py index 1f6fbf02004..c022af3fda2 100644 --- a/repos/spack_repo/builtin/packages/mvapich2x/package.py +++ b/repos/spack_repo/builtin/packages/mvapich2x/package.py @@ -39,8 +39,7 @@ class Mvapich2x(MpichEnvironmentModifications, AutotoolsPackage): variant( "feature", description=( - "Feature descriptions are specified at: " - "https://mvapich.cse.ohio-state.edu/downloads/" + "Feature descriptions are specified at: https://mvapich.cse.ohio-state.edu/downloads/" ), default="basic", values=("basic", "basic-xpmem", "advanced", "advanced-xpmem"), @@ -184,7 +183,7 @@ def construct_ldflags(self): spec = self.spec xpmem_ldflags = "" if "feature=basic-xpmem" in spec or "feature=advanced-xpmem" in spec: - xpmem_ldflags = " -Wl,-rpath,/opt/xpmem/lib " "-L/opt/xpmem/lib -lxpmem" + xpmem_ldflags = " -Wl,-rpath,/opt/xpmem/lib -L/opt/xpmem/lib -lxpmem" # Add default LDFLAGS and combine together LDFLAGS = "LDFLAGS=-Wl,-rpath,XORIGIN/placeholder" diff --git a/repos/spack_repo/builtin/packages/mvapich_plus/package.py b/repos/spack_repo/builtin/packages/mvapich_plus/package.py index d35c1f3a5d2..c933f498c42 100644 --- a/repos/spack_repo/builtin/packages/mvapich_plus/package.py +++ b/repos/spack_repo/builtin/packages/mvapich_plus/package.py @@ -72,7 +72,7 @@ class MvapichPlus(AutotoolsPackage, CudaPackage, ROCmPackage): "process_managers", description="List of the process managers to activate", values=disjoint_sets(("auto",), ("slurm",), ("hydra", "gforker", "remshell")) - .with_error("'slurm' or 'auto' cannot be activated along with " "other process managers") + .with_error("'slurm' or 'auto' cannot be activated along with other process managers") .with_default("auto") .with_non_feature_values("auto"), ) diff --git a/repos/spack_repo/builtin/packages/namd/package.py b/repos/spack_repo/builtin/packages/namd/package.py index f1740f13464..d32ffb0621e 100644 --- a/repos/spack_repo/builtin/packages/namd/package.py +++ b/repos/spack_repo/builtin/packages/namd/package.py @@ -267,7 +267,7 @@ def _edit_arch_target_based(self, spec, prefix): tty.info("Building binaries with AVX512-tile optimization") copy("Linux-AVX512-icc.arch", arch_filename) elif spec.version >= Version("2.14") and os.path.exists("Linux-SKX-icc.arch"): - tty.info("Building binaries with Skylake-X" "AVX512 optimization") + tty.info("Building binaries with Skylake-X AVX512 optimization") copy("Linux-SKX-icc.arch", arch_filename) else: return False diff --git a/repos/spack_repo/builtin/packages/ncbi_toolkit/package.py b/repos/spack_repo/builtin/packages/ncbi_toolkit/package.py index ab45a1e8273..0ea7d2b47cc 100644 --- a/repos/spack_repo/builtin/packages/ncbi_toolkit/package.py +++ b/repos/spack_repo/builtin/packages/ncbi_toolkit/package.py @@ -83,7 +83,7 @@ def patch(self): if self.spec.satisfies("@:22_0_0 ^boost@1.70:"): with working_dir(join_path("include", "corelib")): filter_file( - ("unit_test::ut_detail::" "ignore_unused_variable_warning"), + ("unit_test::ut_detail::ignore_unused_variable_warning"), "ignore_unused", "test_boost.hpp", string=True, diff --git a/repos/spack_repo/builtin/packages/nektools/package.py b/repos/spack_repo/builtin/packages/nektools/package.py index c182a932cf2..4300d4f9265 100644 --- a/repos/spack_repo/builtin/packages/nektools/package.py +++ b/repos/spack_repo/builtin/packages/nektools/package.py @@ -147,9 +147,7 @@ def install(self, spec, prefix): filter_file(r"\$\(OLAGS\)", "-qextname $(OLAGS)", join_path("postnek", "makefile")) # Define 'rename_' function that calls 'rename' with open(join_path("postnek", "xdriver.c"), "a") as xdriver: - xdriver.write( - "\nvoid rename_(char *from, char *to)\n{\n" " rename(from, to);\n}\n" - ) + xdriver.write("\nvoid rename_(char *from, char *to)\n{\n rename(from, to);\n}\n") maxnel = self.spec.variants["MAXNEL"].value filter_file(r"^#MAXNEL\s*=.*", "MAXNEL=" + maxnel, "maketools") diff --git a/repos/spack_repo/builtin/packages/networkdirect/package.py b/repos/spack_repo/builtin/packages/networkdirect/package.py index 744696e5537..6aee26c5a98 100644 --- a/repos/spack_repo/builtin/packages/networkdirect/package.py +++ b/repos/spack_repo/builtin/packages/networkdirect/package.py @@ -38,7 +38,6 @@ class Networkdirect(msbuild.MSBuildPackage): class MSBuildBuilder(msbuild.MSBuildBuilder): - build_targets = ["ndutil"] # Networkdirect is a unique package where providing diff --git a/repos/spack_repo/builtin/packages/ngspice/package.py b/repos/spack_repo/builtin/packages/ngspice/package.py index 03a3b33346c..61511198c05 100644 --- a/repos/spack_repo/builtin/packages/ngspice/package.py +++ b/repos/spack_repo/builtin/packages/ngspice/package.py @@ -52,7 +52,7 @@ class Ngspice(AutotoolsPackage): variant( "debug", default="auto", - description="Enable debugging features: " "auto is yes for build=lib, no for build=bin", + description="Enable debugging features: auto is yes for build=lib, no for build=bin", values=("auto", "yes", "no"), multi=False, ) diff --git a/repos/spack_repo/builtin/packages/nvhpc/package.py b/repos/spack_repo/builtin/packages/nvhpc/package.py index f01972ad461..2f31f9e68a3 100644 --- a/repos/spack_repo/builtin/packages/nvhpc/package.py +++ b/repos/spack_repo/builtin/packages/nvhpc/package.py @@ -488,8 +488,7 @@ class Nvhpc(Package, CompilerPackage): default="single", values=("single", "network"), multi=False, - description="Network installs are for installations shared " - "by different operating systems", + description="Network installs are for installations shared by different operating systems", ) variant("lapack", default=True, description="Enable LAPACK") variant("mpi", default=False, description="Enable MPI") diff --git a/repos/spack_repo/builtin/packages/octopus/package.py b/repos/spack_repo/builtin/packages/octopus/package.py index 7bad8179c38..474a0df5fbe 100644 --- a/repos/spack_repo/builtin/packages/octopus/package.py +++ b/repos/spack_repo/builtin/packages/octopus/package.py @@ -211,8 +211,8 @@ def test_recipe(self): expected = [ "Running octopus", "CalculationMode = recipe", - "DISCLAIMER: The authors do not " "guarantee that the implementation", - "recipe leads to an edible dish, " 'for it is clearly "system-dependent".', + "DISCLAIMER: The authors do not guarantee that the implementation", + 'recipe leads to an edible dish, for it is clearly "system-dependent".', "Calculation ended on", ] diff --git a/repos/spack_repo/builtin/packages/openmpi/package.py b/repos/spack_repo/builtin/packages/openmpi/package.py index 5ced8d4f4af..b08d77cc3be 100644 --- a/repos/spack_repo/builtin/packages/openmpi/package.py +++ b/repos/spack_repo/builtin/packages/openmpi/package.py @@ -521,7 +521,7 @@ class Openmpi(AutotoolsPackage, CudaPackage, ROCmPackage): values=disjoint_sets(("auto",), FABRICS).with_non_feature_values( "auto", "none" ), # shared memory transports - description="List of fabrics that are enabled; " "'auto' lets openmpi determine", + description="List of fabrics that are enabled; 'auto' lets openmpi determine", ) SCHEDULERS = ("alps", "lsf", "tm", "slurm", "sge", "loadleveler") @@ -775,7 +775,7 @@ def patch(self): conflicts( "schedulers=loadleveler", when="@3:", - msg="The loadleveler scheduler is not supported with " "openmpi(>=3).", + msg="The loadleveler scheduler is not supported with openmpi(>=3).", ) # According to this comment on github: diff --git a/repos/spack_repo/builtin/packages/opennurbs/package.py b/repos/spack_repo/builtin/packages/opennurbs/package.py index 0b9a15b1663..16cfb00536e 100644 --- a/repos/spack_repo/builtin/packages/opennurbs/package.py +++ b/repos/spack_repo/builtin/packages/opennurbs/package.py @@ -45,7 +45,6 @@ def cmake_args(self): class MakefileBuilder(makefile.MakefileBuilder): - def build(self, pkg, spec, prefix): make("RM=rm -f", "AR=ar cr", f"CC={spack_cc}", f"CCC={spack_cxx}", parallel=False) diff --git a/repos/spack_repo/builtin/packages/p3dfft3/package.py b/repos/spack_repo/builtin/packages/p3dfft3/package.py index 429623a625c..2d6e9bd09d6 100644 --- a/repos/spack_repo/builtin/packages/p3dfft3/package.py +++ b/repos/spack_repo/builtin/packages/p3dfft3/package.py @@ -27,17 +27,17 @@ class P3dfft3(AutotoolsPackage): variant( "measure", default=False, - description="Define if you want to use" "the measure fftw planner flag", + description="Define if you want to use the measure fftw planner flag", ) variant( "estimate", default=False, - description="Define if you want to" "use the estimate fftw planner flag", + description="Define if you want to use the estimate fftw planner flag", ) variant( "patient", default=False, - description="Define if you want to" "use the patient fftw planner flag", + description="Define if you want to use the patient fftw planner flag", ) # TODO: Add more configure options! diff --git a/repos/spack_repo/builtin/packages/paradiseo/package.py b/repos/spack_repo/builtin/packages/paradiseo/package.py index 37296b7ffe3..88293a6f437 100644 --- a/repos/spack_repo/builtin/packages/paradiseo/package.py +++ b/repos/spack_repo/builtin/packages/paradiseo/package.py @@ -28,7 +28,7 @@ class Paradiseo(CMakePackage): variant( "mpi", default=True, - description="Compile with parallel and distributed " "metaheuristics module", + description="Compile with parallel and distributed metaheuristics module", ) variant("smp", default=True, description="Compile with symmetric multi-processing module ") variant("edo", default=True, description="Compile with (Experimental) EDO module") diff --git a/repos/spack_repo/builtin/packages/parflow/package.py b/repos/spack_repo/builtin/packages/parflow/package.py index 8bcb308c4bd..8510bbef09f 100644 --- a/repos/spack_repo/builtin/packages/parflow/package.py +++ b/repos/spack_repo/builtin/packages/parflow/package.py @@ -71,7 +71,7 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: def test_single_phase_flow(self): """Run the single phase flow test""" run_path = join_path(self.spec.prefix, self.examples_dir) - options = ["default_single.tcl", "1", "1" "1"] + options = ["default_single.tcl", "1", "1", "1"] with working_dir(run_path): exe = which(f"{self.spec['tcl'].prefix.bin}/tclsh") exe(*options) diff --git a/repos/spack_repo/builtin/packages/pcre/package.py b/repos/spack_repo/builtin/packages/pcre/package.py index 73556103c23..7f7bdca8b9a 100644 --- a/repos/spack_repo/builtin/packages/pcre/package.py +++ b/repos/spack_repo/builtin/packages/pcre/package.py @@ -40,7 +40,7 @@ class Pcre(AutotoolsPackage, CMakePackage): variant( "utf", default=True, - description="Enable support for UTF-8/16/32, " "incompatible with EBCDIC.", + description="Enable support for UTF-8/16/32, incompatible with EBCDIC.", ) variant("shared", default=True, description="Build shared libraries") diff --git a/repos/spack_repo/builtin/packages/pfind/package.py b/repos/spack_repo/builtin/packages/pfind/package.py index 6986fef480b..8ba549a623e 100644 --- a/repos/spack_repo/builtin/packages/pfind/package.py +++ b/repos/spack_repo/builtin/packages/pfind/package.py @@ -26,7 +26,6 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("CXX", self.spec["mpi"].mpicxx, force=True) def install(self, spec, prefix): - for installer_path in ["./prepare.sh", "./compile.sh"]: set_executable(installer_path) installer = Executable(installer_path) diff --git a/repos/spack_repo/builtin/packages/phist/package.py b/repos/spack_repo/builtin/packages/phist/package.py index 680c4930997..00e4b214335 100644 --- a/repos/spack_repo/builtin/packages/phist/package.py +++ b/repos/spack_repo/builtin/packages/phist/package.py @@ -86,8 +86,7 @@ class Phist(CMakePackage): name="outlev", default="2", values=["0", "1", "2", "3", "4", "5"], - description="verbosity. 0: errors 1: +warnings 2: +info " - "3: +verbose 4: +extreme 5: +debug", + description="verbosity. 0: errors 1: +warnings 2: +info 3: +verbose 4: +extreme 5: +debug", ) variant( @@ -118,8 +117,7 @@ class Phist(CMakePackage): variant( "scamac", default=True, - description='enable/disable building the "SCAlable MAtrix ' - 'Collection" matrix generators.', + description='enable/disable building the "SCAlable MAtrix Collection" matrix generators.', ) variant( @@ -135,7 +133,7 @@ class Phist(CMakePackage): variant( "fortran", default=True, - description="generate Fortran 2003 bindings (requires Python3 and " "a Fortran compiler)", + description="generate Fortran 2003 bindings (requires Python3 and a Fortran compiler)", ) # Build error with LLVM and recent Trilinos, fixed in phist-1.12.1 diff --git a/repos/spack_repo/builtin/packages/picsar/package.py b/repos/spack_repo/builtin/packages/picsar/package.py index 2849194e5a1..884ac37e6de 100644 --- a/repos/spack_repo/builtin/packages/picsar/package.py +++ b/repos/spack_repo/builtin/packages/picsar/package.py @@ -77,7 +77,7 @@ def build_targets(self): if "%gcc" in self.spec: targets.append( - "FARGS=-g -fbounds-check -O3 -fopenmp " "-JModules -fallow-argument-mismatch" + "FARGS=-g -fbounds-check -O3 -fopenmp -JModules -fallow-argument-mismatch" ) return targets diff --git a/repos/spack_repo/builtin/packages/pika/package.py b/repos/spack_repo/builtin/packages/pika/package.py index 572742f8064..2cecbe3e883 100644 --- a/repos/spack_repo/builtin/packages/pika/package.py +++ b/repos/spack_repo/builtin/packages/pika/package.py @@ -91,8 +91,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage): variant( "generic_coroutines", default=default_generic_coroutines, - description="Use Boost.Context as the underlying coroutines" - " context switch implementation", + description="Use Boost.Context as the underlying coroutines context switch implementation", ) variant("examples", default=False, description="Build and install examples") diff --git a/repos/spack_repo/builtin/packages/pism/package.py b/repos/spack_repo/builtin/packages/pism/package.py index 3582e23f7f6..a88e7778aeb 100644 --- a/repos/spack_repo/builtin/packages/pism/package.py +++ b/repos/spack_repo/builtin/packages/pism/package.py @@ -32,7 +32,7 @@ class Pism(CMakePackage): variant( "proj", default=True, - description="Use Proj to compute cell areas, " "longitudes, and latitudes.", + description="Use Proj to compute cell areas, longitudes, and latitudes.", ) variant("parallel-netcdf4", default=False, description="Enables parallel NetCDF-4 I/O.") variant( diff --git a/repos/spack_repo/builtin/packages/possvm/package.py b/repos/spack_repo/builtin/packages/possvm/package.py index 0ac2c78702a..225f939c3ba 100644 --- a/repos/spack_repo/builtin/packages/possvm/package.py +++ b/repos/spack_repo/builtin/packages/possvm/package.py @@ -43,6 +43,6 @@ def install(self, spec, prefix): sed = Executable("sed") targets = ("possvm.py", join_path("scripts", "possvm_reconstruction.py")) for script in targets: - sed("-i", rf'1 i\#! {self.spec["python"].command.path}\n', script) + sed("-i", rf"1 i\#! {self.spec['python'].command.path}\n", script) os.chmod(script, 0o755) install(script, prefix.bin) diff --git a/repos/spack_repo/builtin/packages/postgis/package.py b/repos/spack_repo/builtin/packages/postgis/package.py index befb2cb4fb0..bd24dad247f 100644 --- a/repos/spack_repo/builtin/packages/postgis/package.py +++ b/repos/spack_repo/builtin/packages/postgis/package.py @@ -28,7 +28,7 @@ class Postgis(AutotoolsPackage): "gui", default=False, description=( - "Build with GUI support, creating shp2pgsql-gui graphical interface " "to shp2pgsql" + "Build with GUI support, creating shp2pgsql-gui graphical interface to shp2pgsql" ), ) diff --git a/repos/spack_repo/builtin/packages/povray/package.py b/repos/spack_repo/builtin/packages/povray/package.py index cfe4d86b547..c21b3b084b0 100644 --- a/repos/spack_repo/builtin/packages/povray/package.py +++ b/repos/spack_repo/builtin/packages/povray/package.py @@ -43,7 +43,7 @@ class Povray(AutotoolsPackage): variant( "io-restrictions", default=True, - description="Enable POV-Rays mechanism for control of I/O " "operations", + description="Enable POV-Rays mechanism for control of I/O operations", ) variant("jpeg", default=True, description="Build with jpeg support") variant("libpng", default=True, description="Build with libpng support") diff --git a/repos/spack_repo/builtin/packages/py_charm4py/package.py b/repos/spack_repo/builtin/packages/py_charm4py/package.py index 2ea3207e730..a849b99e5d2 100644 --- a/repos/spack_repo/builtin/packages/py_charm4py/package.py +++ b/repos/spack_repo/builtin/packages/py_charm4py/package.py @@ -29,7 +29,7 @@ class PyCharm4py(PythonPackage): variant( "mpi", default=True, - description="build Charm++ library with the MPI instead of TCP" " communication layer", + description="build Charm++ library with the MPI instead of TCP communication layer", ) # Builds its own charm++, so no charmpp dependency diff --git a/repos/spack_repo/builtin/packages/py_numpy/package.py b/repos/spack_repo/builtin/packages/py_numpy/package.py index 41642d8c8f1..0f5f598e6a4 100644 --- a/repos/spack_repo/builtin/packages/py_numpy/package.py +++ b/repos/spack_repo/builtin/packages/py_numpy/package.py @@ -371,8 +371,9 @@ def blas_lapack_pkg_config(self) -> Tuple[str, str, str]: if spec["blas"].satisfies("+ilp64") != spec["lapack"].satisfies("+ilp64"): raise InstallError( - "Either both blas and lapack must use ilp64 or none:" - " ({0} vs. {1})".format(blas, lapack) + "Either both blas and lapack must use ilp64 or none: ({0} vs. {1})".format( + blas, lapack + ) ) use_ilp64 = spec["blas"].satisfies("+ilp64") diff --git a/repos/spack_repo/builtin/packages/py_pint_xarray/package.py b/repos/spack_repo/builtin/packages/py_pint_xarray/package.py index 280eee39a00..03a439a5c67 100644 --- a/repos/spack_repo/builtin/packages/py_pint_xarray/package.py +++ b/repos/spack_repo/builtin/packages/py_pint_xarray/package.py @@ -37,7 +37,6 @@ class PyPintXarray(PythonPackage): depends_on("py-importlib-metadata", when="@0.2.1 ^python@:3.7", type=("build", "run")) def url_for_version(self, version): - if version >= Version("0.4"): return super().url_for_version(version) diff --git a/repos/spack_repo/builtin/packages/py_uproot/package.py b/repos/spack_repo/builtin/packages/py_uproot/package.py index 9dc363f1c09..6a22edf92b2 100644 --- a/repos/spack_repo/builtin/packages/py_uproot/package.py +++ b/repos/spack_repo/builtin/packages/py_uproot/package.py @@ -53,15 +53,13 @@ class PyUproot(PythonPackage): variant("xrootd", default=True, description="Build with xrootd support ") variant( - "lz4", - default=True, - description="Build with support for reading " "lz4-compressed rootfiles ", + "lz4", default=True, description="Build with support for reading lz4-compressed rootfiles " ) variant( "zstd", default=True, - description="Build with support for reading " "zstd-compressed rootfiles ", + description="Build with support for reading zstd-compressed rootfiles ", ) depends_on("python@2.6:2,3.5:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_waves/package.py b/repos/spack_repo/builtin/packages/py_waves/package.py index d6f6e2b6763..ebab80eece6 100644 --- a/repos/spack_repo/builtin/packages/py_waves/package.py +++ b/repos/spack_repo/builtin/packages/py_waves/package.py @@ -123,7 +123,7 @@ def install(self, spec, prefix): pathlib.Path(self.prefix).rglob("**/site-packages") )[0] python_package_documentation = python.copy() - python_package_documentation.add_default_env("SP_DIR", site_packages_directory), + python_package_documentation.add_default_env("SP_DIR", site_packages_directory) python_package_documentation("package_documentation.py") @run_after("install") diff --git a/repos/spack_repo/builtin/packages/qmcpack/package.py b/repos/spack_repo/builtin/packages/qmcpack/package.py index 91a049f8aa9..c53f41a46c3 100644 --- a/repos/spack_repo/builtin/packages/qmcpack/package.py +++ b/repos/spack_repo/builtin/packages/qmcpack/package.py @@ -65,8 +65,7 @@ class Qmcpack(CMakePackage, CudaPackage): variant( "mixed", default=False, - description="Build the mixed precision (mixture of single and " - "double precision) version", + description="Build the mixed precision (mixture of single and double precision) version", ) variant( "soa", @@ -127,15 +126,13 @@ class Qmcpack(CMakePackage, CudaPackage): conflicts("%gcc@:8", when="@3.15.0:") # QMCPACK 3.10.0 increased the minimum requirements for compiler versions - newer_compiler_warning = ( - "QMCPACK v3.10.0 or later requires a newer " "version of this compiler" - ) + newer_compiler_warning = "QMCPACK v3.10.0 or later requires a newer version of this compiler" conflicts("%gcc@:6", when="@3.10.0:", msg=newer_compiler_warning) conflicts("%intel@:18", when="@3.10.0:", msg=newer_compiler_warning) conflicts("%clang@:6", when="@3.10.0:", msg=newer_compiler_warning) # QMCPACK 3.6.0 or later requires support for C++14 - cpp14_warning = "QMCPACK v3.6.0 or later requires a " "compiler with support for C++14" + cpp14_warning = "QMCPACK v3.6.0 or later requires a compiler with support for C++14" conflicts("%gcc@:4", when="@3.6.0:", msg=cpp14_warning) conflicts("%intel@:17", when="@3.6.0:", msg=cpp14_warning) conflicts("%clang@:3.4", when="@3.6.0:", msg=cpp14_warning) @@ -155,8 +152,7 @@ class Qmcpack(CMakePackage, CudaPackage): # For older versions of QMCPACK, we issue a conflict below if you # try to use Intel MKL with a non-Intel compiler. mkl_warning = ( - "QMCPACK releases prior to 3.5.0 require the " - "Intel compiler when linking against Intel MKL" + "QMCPACK releases prior to 3.5.0 require the Intel compiler when linking against Intel MKL" ) conflicts("%gcc", when="@:3.4.0 ^[virtuals=blas,lapack] intel-oneapi-mkl", msg=mkl_warning) conflicts("%llvm", when="@:3.4.0 ^[virtuals=blas,lapack] intel-oneapi-mkl", msg=mkl_warning) @@ -328,7 +324,7 @@ def cmake_args(self): cuda_arch = cuda_arch_list[0] if len(cuda_arch_list) > 1: raise InstallError( - "QMCPACK only supports compilation for a single " "GPU architecture at a time" + "QMCPACK only supports compilation for a single GPU architecture at a time" ) if "@3.14.0:" in self.spec: args.append("-DCMAKE_CUDA_ARCHITECTURES={0}".format(cuda_arch)) diff --git a/repos/spack_repo/builtin/packages/quantum_espresso/package.py b/repos/spack_repo/builtin/packages/quantum_espresso/package.py index d64b4df29c3..15f332dce1c 100644 --- a/repos/spack_repo/builtin/packages/quantum_espresso/package.py +++ b/repos/spack_repo/builtin/packages/quantum_espresso/package.py @@ -194,7 +194,7 @@ class QuantumEspresso(CMakePackage, Package): ) conflicts( "@6.3:6.4.0 hdf5=serial", - msg="QE-to-QMCPACK wave function converter only " "supported with parallel HDF5", + msg="QE-to-QMCPACK wave function converter only supported with parallel HDF5", ) conflicts("@:7.0 hdf5=none", msg="QE-to-QMCPACK wave function converter requires HDF5") # QE > 7.0, the converter for QMCPACK can be built without hdf5 enabled in QE. diff --git a/repos/spack_repo/builtin/packages/r3d/package.py b/repos/spack_repo/builtin/packages/r3d/package.py index 4366ec748c8..4482e0bd688 100644 --- a/repos/spack_repo/builtin/packages/r3d/package.py +++ b/repos/spack_repo/builtin/packages/r3d/package.py @@ -26,7 +26,7 @@ class R3d(CMakePackage): "r3d_max_verts", default="0", description=( - "Maximum number of vertices allowed in a polyhedron " "(versions 2021-03-10 or later)" + "Maximum number of vertices allowed in a polyhedron (versions 2021-03-10 or later)" ), ) diff --git a/repos/spack_repo/builtin/packages/regcm/package.py b/repos/spack_repo/builtin/packages/regcm/package.py index 48638e70464..0bb8765d40c 100644 --- a/repos/spack_repo/builtin/packages/regcm/package.py +++ b/repos/spack_repo/builtin/packages/regcm/package.py @@ -54,7 +54,7 @@ class Regcm(AutotoolsPackage): variant( "pnetcdf", default=False, - description="Build NetCDF using the high performance parallel " "NetCDF implementation.", + description="Build NetCDF using the high performance parallel NetCDF implementation.", ) depends_on("fortran", type="build") @@ -114,13 +114,13 @@ def configure_args(self): # compiler from GCC and Intel, which are the only compiler # supported by RegCM 4.7.x. raise InstallError( - "Architecture optimizations are available " "only for GCC and Intel compilers." + "Architecture optimizations are available only for GCC and Intel compilers." ) if len(optimizations) > 1 and self.spec.satisfies(r"%gcc"): # https://github.com/spack/spack/issues/974 raise InstallError( - "The GCC compiler does not support " "multiple architecture optimizations." + "The GCC compiler does not support multiple architecture optimizations." ) # RegCM configure script treats --disable-X as --enable-X, so we diff --git a/repos/spack_repo/builtin/packages/relion/package.py b/repos/spack_repo/builtin/packages/relion/package.py index 98548d6093f..b9d88ed72c3 100644 --- a/repos/spack_repo/builtin/packages/relion/package.py +++ b/repos/spack_repo/builtin/packages/relion/package.py @@ -68,7 +68,7 @@ class Relion(CMakePackage, CudaPackage): "allow_ctf_in_sagd", default=True, description=( - "Allow CTF-modulation in SAGD, " "as specified in Claim 1 of patent US10,282,513B2" + "Allow CTF-modulation in SAGD, as specified in Claim 1 of patent US10,282,513B2" ), ) variant("altcpu", default=False, description="Use CPU acceleration", when="~cuda") @@ -76,7 +76,7 @@ class Relion(CMakePackage, CudaPackage): variant( "external_motioncor2", default=False, - description="Have external motioncor2 available in addition to " "Relion builtin", + description="Have external motioncor2 available in addition to Relion builtin", ) depends_on("mpi") diff --git a/repos/spack_repo/builtin/packages/revocap_refiner/package.py b/repos/spack_repo/builtin/packages/revocap_refiner/package.py index f43dbd1e763..cdec0a405e5 100644 --- a/repos/spack_repo/builtin/packages/revocap_refiner/package.py +++ b/repos/spack_repo/builtin/packages/revocap_refiner/package.py @@ -15,7 +15,7 @@ class RevocapRefiner(MakefilePackage): url = "https://www.frontistr.com/download/link.php?REVOCAP_Refiner-1.1.04.tar.gz" # git = "https://gitlab.com/FrontISTR-Commons/REVOCAP_Refiner.git" - maintainers("k-tokunaga", "kgoto", "tuna" "inagaki.kazuhisa") + maintainers("k-tokunaga", "kgoto", "tuna", "inagaki.kazuhisa") version("1.1.04", sha256="bf3d959f4c1ab08a7e99cd7e02e710c758af28d71500f4814eed8b4eb3fb2d13") diff --git a/repos/spack_repo/builtin/packages/rocksdb/package.py b/repos/spack_repo/builtin/packages/rocksdb/package.py index 9a8c3b0545d..fbc99603918 100644 --- a/repos/spack_repo/builtin/packages/rocksdb/package.py +++ b/repos/spack_repo/builtin/packages/rocksdb/package.py @@ -152,7 +152,7 @@ def install_pkgconfig(self): f.write("\n") f.write("Name: rocksdb\n") f.write( - "Description: RocksDB: A Persistent Key-Value Store for" " Flash and RAM Storage\n" + "Description: RocksDB: A Persistent Key-Value Store for Flash and RAM Storage\n" ) f.write("Version: {0}\n".format(self.spec.version)) f.write("Cflags: -I${includedir}\n") diff --git a/repos/spack_repo/builtin/packages/rocm_gdb/package.py b/repos/spack_repo/builtin/packages/rocm_gdb/package.py index 8fe83737666..c84ba84de70 100644 --- a/repos/spack_repo/builtin/packages/rocm_gdb/package.py +++ b/repos/spack_repo/builtin/packages/rocm_gdb/package.py @@ -100,7 +100,8 @@ def configure_args(self): "--disable-gdbtk", "--disable-shared", "--with-expat", - "--with-system-zlib" "--without-guile", + "--with-system-zlib", + "--without-guile", "--with-babeltrace", "--with-lzma", "--with-python", diff --git a/repos/spack_repo/builtin/packages/rocm_validation_suite/package.py b/repos/spack_repo/builtin/packages/rocm_validation_suite/package.py index 514436f4a7f..6018da474c2 100644 --- a/repos/spack_repo/builtin/packages/rocm_validation_suite/package.py +++ b/repos/spack_repo/builtin/packages/rocm_validation_suite/package.py @@ -141,21 +141,19 @@ def cmake_args(self): ] if self.spec.satisfies("@6.2.1:6.2.4"): - args.append(self.define("HIPRAND_DIR", self.spec["hiprand"].prefix)), - args.append(self.define("ROCRAND_DIR", self.spec["rocrand"].prefix)), + args.append(self.define("HIPRAND_DIR", self.spec["hiprand"].prefix)) + args.append(self.define("ROCRAND_DIR", self.spec["rocrand"].prefix)) libloc = self.spec["googletest"].prefix.lib64 if not os.path.isdir(libloc): libloc = self.spec["googletest"].prefix.lib args.append(self.define("UT_LIB", libloc)) if self.spec.satisfies("@:6.2"): - args.append(self.define("HIP_PATH", self.spec["hip"].prefix)), - args.append(self.define("HSA_PATH", self.spec["hsa-rocr-dev"].prefix)), - args.append(self.define("ROCM_SMI_DIR", self.spec["rocm-smi-lib"].prefix)), - args.append(self.define("ROCBLAS_DIR", self.spec["rocblas"].prefix)), - args.append( - self.define("YAML_CPP_INCLUDE_DIRS", self.spec["yaml-cpp"].prefix.include) - ), + args.append(self.define("HIP_PATH", self.spec["hip"].prefix)) + args.append(self.define("HSA_PATH", self.spec["hsa-rocr-dev"].prefix)) + args.append(self.define("ROCM_SMI_DIR", self.spec["rocm-smi-lib"].prefix)) + args.append(self.define("ROCBLAS_DIR", self.spec["rocblas"].prefix)) + args.append(self.define("YAML_CPP_INCLUDE_DIRS", self.spec["yaml-cpp"].prefix.include)) libloc = self.spec["hsakmt-roct"].prefix.lib64 if not os.path.isdir(libloc): @@ -163,7 +161,7 @@ def cmake_args(self): args.append(self.define("HSAKMT_LIB_DIR", libloc)) if self.spec.satisfies("@6.3.0:"): - args.append(self.define("CMAKE_INSTALL_RPATH", self.spec.prefix.lib)), - args.append(self.define("CPACK_PACKAGING_INSTALL_PREFIX", self.spec.prefix)), + args.append(self.define("CMAKE_INSTALL_RPATH", self.spec.prefix.lib)) + args.append(self.define("CPACK_PACKAGING_INSTALL_PREFIX", self.spec.prefix)) return args diff --git a/repos/spack_repo/builtin/packages/root/package.py b/repos/spack_repo/builtin/packages/root/package.py index d81f1bdcb24..77af2d97d84 100644 --- a/repos/spack_repo/builtin/packages/root/package.py +++ b/repos/spack_repo/builtin/packages/root/package.py @@ -298,7 +298,7 @@ class Root(CMakePackage): variant( "gminimal", default=True, - description="Ignore most of Root's feature defaults except for " "basic graphic options", + description="Ignore most of Root's feature defaults except for basic graphic options", ) variant("geom", default=True, description="Enable support for the geometry library") conflicts("~geom", when="@:6.33", msg="geom is always enabled through 6.33") @@ -325,7 +325,7 @@ class Root(CMakePackage): variant( "mlp", default=False, - description="Enable support for TMultilayerPerceptron " "classes' federation", + description="Enable support for TMultilayerPerceptron classes' federation", ) variant( "mysql", when="@:6.36", default=False, description="Enable support for MySQL databases" diff --git a/repos/spack_repo/builtin/packages/s4pred/package.py b/repos/spack_repo/builtin/packages/s4pred/package.py index 112a0f803ed..c772019a41e 100644 --- a/repos/spack_repo/builtin/packages/s4pred/package.py +++ b/repos/spack_repo/builtin/packages/s4pred/package.py @@ -39,7 +39,7 @@ def install(self, spec, prefix): filter_file("/weights/", "/../weights/", "run_model.py") # add shebang and ensure +x for the main script sed = Executable("sed") - sed("-i", rf'1 i\#! {self.spec["python"].command.path}\n', "run_model.py") + sed("-i", rf"1 i\#! {self.spec['python'].command.path}\n", "run_model.py") os.chmod("run_model.py", 0o755) # install files and make convenience symlink install("*.py", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/salmon/package.py b/repos/spack_repo/builtin/packages/salmon/package.py index 39d6b3b07e4..9ebd4b83bed 100644 --- a/repos/spack_repo/builtin/packages/salmon/package.py +++ b/repos/spack_repo/builtin/packages/salmon/package.py @@ -121,7 +121,7 @@ def patch(self): if self.spec.satisfies("@0.8.2:0.9.1"): filter_file( "${FAST_MALLOC_LIB}", - "${FAST_MALLOC_LIB}\n" "${CMAKE_DL_LIBS}", + "${FAST_MALLOC_LIB}\n${CMAKE_DL_LIBS}", "src/CMakeLists.txt", string=True, ) diff --git a/repos/spack_repo/builtin/packages/scotch/package.py b/repos/spack_repo/builtin/packages/scotch/package.py index b8d55ceb314..307eee1b0d1 100644 --- a/repos/spack_repo/builtin/packages/scotch/package.py +++ b/repos/spack_repo/builtin/packages/scotch/package.py @@ -129,7 +129,6 @@ def libs(self): class CMakeBuilder(cmake.CMakeBuilder): - def cmake_args(self): args = [ self.define_from_variant("BUILD_LIBSCOTCHMETIS", "metis"), diff --git a/repos/spack_repo/builtin/packages/scr/package.py b/repos/spack_repo/builtin/packages/scr/package.py index 9e5ade07698..37e1142a408 100644 --- a/repos/spack_repo/builtin/packages/scr/package.py +++ b/repos/spack_repo/builtin/packages/scr/package.py @@ -104,7 +104,7 @@ class Scr(CMakePackage): "dtcmp", default=True, when="@:2", - description="Build with DTCMP. " "Necessary to enable user directory naming at runtime", + description="Build with DTCMP. Necessary to enable user directory naming at runtime", ) depends_on("dtcmp", when="+dtcmp") depends_on("dtcmp", when="@3:") diff --git a/repos/spack_repo/builtin/packages/serialbox/package.py b/repos/spack_repo/builtin/packages/serialbox/package.py index 5e6bb93d9fd..b1871e8fecf 100644 --- a/repos/spack_repo/builtin/packages/serialbox/package.py +++ b/repos/spack_repo/builtin/packages/serialbox/package.py @@ -39,7 +39,7 @@ class Serialbox(CMakePackage): variant( "std-filesystem", default=True, - description="use std::experimental::filesystem (no dependency on " "compiled boost libs)", + description="use std::experimental::filesystem (no dependency on compiled boost libs)", ) depends_on("c", type="build") # generated @@ -76,12 +76,12 @@ class Serialbox(CMakePackage): conflicts( "+ftg", when="~fortran", - msg="the FortranTestGenerator frontend requires the Fortran " "interface", + msg="the FortranTestGenerator frontend requires the Fortran interface", ) conflicts( "+ftg", when="@:2.2.999", - msg="the FortranTestGenerator frontend is supported only " "starting version 2.3.0", + msg="the FortranTestGenerator frontend is supported only starting version 2.3.0", ) conflicts("+sdb", when="~python", msg="the stencil debugger requires the Python interface") conflicts("+fortran", when="~c", msg="the Fortran interface requires the C interface") diff --git a/repos/spack_repo/builtin/packages/shamrock/package.py b/repos/spack_repo/builtin/packages/shamrock/package.py index 59c8f5ebf68..76087ee7ae7 100644 --- a/repos/spack_repo/builtin/packages/shamrock/package.py +++ b/repos/spack_repo/builtin/packages/shamrock/package.py @@ -47,7 +47,6 @@ class Shamrock(CMakePackage): extends("python", when="+pybindings") def cmake_args(self): - spec = self.spec args = [ diff --git a/repos/spack_repo/builtin/packages/sollve/package.py b/repos/spack_repo/builtin/packages/sollve/package.py index 0713dfabb04..3d85f54b7d6 100644 --- a/repos/spack_repo/builtin/packages/sollve/package.py +++ b/repos/spack_repo/builtin/packages/sollve/package.py @@ -46,7 +46,7 @@ class Sollve(CMakePackage): variant( "link_dylib", default=False, - description="Build and link the libLLVM shared library rather " "than static", + description="Build and link the libLLVM shared library rather than static", ) variant( "all_targets", diff --git a/repos/spack_repo/builtin/packages/sprng/package.py b/repos/spack_repo/builtin/packages/sprng/package.py index f4460a31732..f3d400aef8e 100644 --- a/repos/spack_repo/builtin/packages/sprng/package.py +++ b/repos/spack_repo/builtin/packages/sprng/package.py @@ -60,7 +60,7 @@ def mpicxx_check(self): raise RuntimeError(msg) if "+fortran" in self.spec: if "fmpi" not in self.spec["fortran"].libs.names: - msg = "SPRNG requires fortran mpi " "libraries with mpi enabled" + msg = "SPRNG requires fortran mpi libraries with mpi enabled" raise RuntimeError(msg) # raise RuntimeError("test") diff --git a/repos/spack_repo/builtin/packages/sqlite/package.py b/repos/spack_repo/builtin/packages/sqlite/package.py index 9bc20b1b9a4..c7cbbc8fe01 100644 --- a/repos/spack_repo/builtin/packages/sqlite/package.py +++ b/repos/spack_repo/builtin/packages/sqlite/package.py @@ -162,7 +162,7 @@ def get_variant(name, has_variant): # check for fts def query_fts(version): - return "CREATE VIRTUAL TABLE name " "USING fts{:d}(sender, title, body);".format( + return "CREATE VIRTUAL TABLE name USING fts{:d}(sender, title, body);".format( version ) diff --git a/repos/spack_repo/builtin/packages/subread/package.py b/repos/spack_repo/builtin/packages/subread/package.py index dea66073814..e21089640c3 100644 --- a/repos/spack_repo/builtin/packages/subread/package.py +++ b/repos/spack_repo/builtin/packages/subread/package.py @@ -46,7 +46,7 @@ def build(self, spec, prefix): elif plat.startswith("darwin"): make("-f", "Makefile.MacOS") else: - raise InstallError("The communication mechanism %s is not" "supported" % plat) + raise InstallError("The communication mechanism %s is not supported" % plat) def install(self, spec, prefix): install_tree("bin", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/tempo/package.py b/repos/spack_repo/builtin/packages/tempo/package.py index c1afde7c2f5..18375190c08 100644 --- a/repos/spack_repo/builtin/packages/tempo/package.py +++ b/repos/spack_repo/builtin/packages/tempo/package.py @@ -45,7 +45,6 @@ def edit(self): @run_after("install") def post_install_packages(self): - # Copy some files over needed by TEMPO, again only for the master version if "master" in str(self.version): cd(self.stage.source_path) diff --git a/repos/spack_repo/builtin/packages/tfel/package.py b/repos/spack_repo/builtin/packages/tfel/package.py index 3b6a2856262..2aa848e12ec 100644 --- a/repos/spack_repo/builtin/packages/tfel/package.py +++ b/repos/spack_repo/builtin/packages/tfel/package.py @@ -165,7 +165,6 @@ class Tfel(CMakePackage): depends_on("python", when="+python", type=("build", "link", "run")) with when("+python_bindings"): - depends_on("python", type=("build", "link", "run")) depends_on("py-numpy", type=("build", "link", "run")) @@ -228,7 +227,6 @@ def cmake_args(self): args.append("-DPython_ADDITIONAL_VERSIONS={0}".format(python.version.up_to(2))) if "+python_bindings" in self.spec: - if "py-pybind11" in self.spec: args.append("-Dpybind11_DIR={0}".format(self.spec["py-pybind11"].prefix)) diff --git a/repos/spack_repo/builtin/packages/timemory/package.py b/repos/spack_repo/builtin/packages/timemory/package.py index 0e8f2190fd1..a9b86f4b392 100644 --- a/repos/spack_repo/builtin/packages/timemory/package.py +++ b/repos/spack_repo/builtin/packages/timemory/package.py @@ -40,7 +40,7 @@ class Timemory(CMakePackage, PythonExtension): variant( "python_hatchet", default=False, - description="Build Python hatchet submodule " "(does not conflict with py-hatchet)", + description="Build Python hatchet submodule (does not conflict with py-hatchet)", ) variant( "python_line_profiler", @@ -77,9 +77,7 @@ class Timemory(CMakePackage, PythonExtension): variant( "kokkos_tools", default=False, - description=( - "Build generic kokkos-tools libraries, e.g. " "kp_timemory, kp_timemory_filter" - ), + description=("Build generic kokkos-tools libraries, e.g. kp_timemory, kp_timemory_filter"), ) variant( "kokkos_build_config", @@ -122,7 +120,7 @@ class Timemory(CMakePackage, PythonExtension): variant( "cpu_target", default="auto", - description="Build for specific cpu architecture (specify " "cpu-model)", + description="Build for specific cpu architecture (specify cpu-model)", ) variant( "use_arch", @@ -143,7 +141,7 @@ class Timemory(CMakePackage, PythonExtension): variant( "statistics", default=True, - description="Build components w/ support for statistics " "(min/max/stddev)", + description="Build components w/ support for statistics (min/max/stddev)", ) variant( "extra_optimizations", @@ -179,7 +177,7 @@ class Timemory(CMakePackage, PythonExtension): variant( "require_packages", default=True, - description=("find_package(...) resulting in NOTFOUND " "generates error"), + description=("find_package(...) resulting in NOTFOUND generates error"), ) variant("compiler", default=True, description="Enable compiler instrumentation support") variant( diff --git a/repos/spack_repo/builtin/packages/turbomole/package.py b/repos/spack_repo/builtin/packages/turbomole/package.py index 2cca6ba57e1..a8040a69ff6 100644 --- a/repos/spack_repo/builtin/packages/turbomole/package.py +++ b/repos/spack_repo/builtin/packages/turbomole/package.py @@ -44,7 +44,7 @@ class Turbomole(Package): def do_fetch(self, mirror_only=True): if "+mpi" in self.spec and "+smp" in self.spec: - raise InstallError("Can not have both SMP and MPI enabled in the " "same build.") + raise InstallError("Can not have both SMP and MPI enabled in the same build.") super().do_fetch(mirror_only) def get_tm_arch(self): diff --git a/repos/spack_repo/builtin/packages/wannier90/package.py b/repos/spack_repo/builtin/packages/wannier90/package.py index 5260678aace..7d4619a3cb8 100644 --- a/repos/spack_repo/builtin/packages/wannier90/package.py +++ b/repos/spack_repo/builtin/packages/wannier90/package.py @@ -112,19 +112,17 @@ def edit(self, spec, prefix): ) filter_file( "../../wannier90.x: .*", - "../../wannier90.x: $(OBJS) " "../wannier_prog.F90 $(LIBRARY)", + "../../wannier90.x: $(OBJS) ../wannier_prog.F90 $(LIBRARY)", join_path(self.stage.source_path, "src/Makefile.2"), ) filter_file( - "../../postw90.x: $(OBJS_POST) " "$(POSTDIR)postw90.F90", - "../../postw90.x: $(OBJS_POST) " "$(POSTDIR)postw90.F90 $(LIBRARY)", + "../../postw90.x: $(OBJS_POST) $(POSTDIR)postw90.F90", + "../../postw90.x: $(OBJS_POST) $(POSTDIR)postw90.F90 $(LIBRARY)", join_path(self.stage.source_path, "src/Makefile.2"), string=True, ) filter_file( - "$(COMPILER) ../wannier_prog.F90 " - "$(LDOPTS) $(OBJS) $(LIBS) " - "-o ../../wannier90.x", + "$(COMPILER) ../wannier_prog.F90 $(LDOPTS) $(OBJS) $(LIBS) -o ../../wannier90.x", "$(COMPILER) -I../obj ../wannier_prog.F90 " "$(LDOPTS) -L../.. -lwannier " "-o ../../wannier90.x", @@ -143,8 +141,8 @@ def edit(self, spec, prefix): string=True, ) filter_file( - "$(AR) $(ARFLAGS) " "$(LIBRARY) $(OBJS2) $(OBJS)", - "$(MPIF90) $(FCOPTS) -shared -o " "$(LIBRARY) $(OBJS2) $(OBJS) $(LIBS)", + "$(AR) $(ARFLAGS) $(LIBRARY) $(OBJS2) $(OBJS)", + "$(MPIF90) $(FCOPTS) -shared -o $(LIBRARY) $(OBJS2) $(OBJS) $(LIBS)", join_path(self.stage.source_path, "src/Makefile.2"), string=True, ) diff --git a/repos/spack_repo/builtin/packages/whizard/package.py b/repos/spack_repo/builtin/packages/whizard/package.py index e865304081a..ef7ef0ecbaf 100644 --- a/repos/spack_repo/builtin/packages/whizard/package.py +++ b/repos/spack_repo/builtin/packages/whizard/package.py @@ -82,7 +82,7 @@ class Whizard(AutotoolsPackage): depends_on("qgraf", when="+gosam") depends_on( - "openloops@2.0.0: +compile_extra num_jobs=1 " "processes=eett,eevvjj,ppllj,tbw", + "openloops@2.0.0: +compile_extra num_jobs=1 processes=eett,eevvjj,ppllj,tbw", when="+openloops", ) depends_on("texlive", when="+latex") diff --git a/repos/spack_repo/builtin/packages/wrf/package.py b/repos/spack_repo/builtin/packages/wrf/package.py index 997759888ab..1cb58d9a9d6 100644 --- a/repos/spack_repo/builtin/packages/wrf/package.py +++ b/repos/spack_repo/builtin/packages/wrf/package.py @@ -451,7 +451,7 @@ def configure(self, spec, prefix): break if stallcounter > 300: raise InstallError( - "Output stalled for 30s, presumably an " "undetected question." + "Output stalled for 30s, presumably an undetected question." ) time.sleep(0.1) # Try to do a bit of rate limiting stallcounter += 1 @@ -504,7 +504,7 @@ def build(self, spec, prefix): result = self.run_compile_script() if not result: - tty.warn("Compilation failed first time (WRF idiosyncrasies?) " "- trying again...") + tty.warn("Compilation failed first time (WRF idiosyncrasies?) - trying again...") result = self.run_compile_script() if not result: diff --git a/repos/spack_repo/builtin/packages/wt/package.py b/repos/spack_repo/builtin/packages/wt/package.py index da600e91154..e779586a987 100644 --- a/repos/spack_repo/builtin/packages/wt/package.py +++ b/repos/spack_repo/builtin/packages/wt/package.py @@ -39,9 +39,7 @@ class Wt(CMakePackage): variant("postgresql", default=False, description="create PostgreSQL DBO") # variant('firebird', default=False, description='create Firebird DBO') variant( - "pango", - default=True, - description="improved font support in PDF and raster image " "painting", + "pango", default=True, description="improved font support in PDF and raster image painting" ) variant("zlib", default=True, description="compression in the built-in httpd") # variant('fastcgi', default=False, diff --git a/repos/spack_repo/builtin/packages/yosys/package.py b/repos/spack_repo/builtin/packages/yosys/package.py index 5809317f4ba..bf284c05027 100644 --- a/repos/spack_repo/builtin/packages/yosys/package.py +++ b/repos/spack_repo/builtin/packages/yosys/package.py @@ -92,13 +92,13 @@ def edit(self, spec, prefix): def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("PREFIX", self.prefix) - env.set("CXXFLAGS", f'-I{self.spec["readline"].prefix.include}') + env.set("CXXFLAGS", f"-I{self.spec['readline'].prefix.include}") env.set( - "LDFLAGS", f'-L{self.spec["readline"].prefix.lib} -L{self.spec["zlib"].prefix.lib}' + "LDFLAGS", f"-L{self.spec['readline'].prefix.lib} -L{self.spec['zlib'].prefix.lib}" ) if self.spec.satisfies("+abc"): env.set("ENABLE_ABC", "1") - env.set("ABC_READLINE_INCLUDES", f'-I{self.spec["readline"].prefix.include}') + env.set("ABC_READLINE_INCLUDES", f"-I{self.spec['readline'].prefix.include}") else: env.set("ENABLE_ABC", "0") if self.spec.satisfies("+ccache"): diff --git a/repos/spack_repo/builtin/packages/zfp/package.py b/repos/spack_repo/builtin/packages/zfp/package.py index 73c5d38d0ca..b081772768c 100644 --- a/repos/spack_repo/builtin/packages/zfp/package.py +++ b/repos/spack_repo/builtin/packages/zfp/package.py @@ -86,9 +86,7 @@ class Zfp(CMakePackage, CudaPackage): "daz", default=False, when="@1.0.0:", - description="Denormals are zero: " - "Treat denormal-only blocks as containing " - "all zeroes", + description="Denormals are zero: Treat denormal-only blocks as containing all zeroes", ) variant( diff --git a/repos/spack_repo/builtin/packages/zlib/package.py b/repos/spack_repo/builtin/packages/zlib/package.py index 45385d3ba94..4269f22c9c0 100644 --- a/repos/spack_repo/builtin/packages/zlib/package.py +++ b/repos/spack_repo/builtin/packages/zlib/package.py @@ -148,7 +148,7 @@ def edit(self, pkg, spec, prefix): class GenericBuilder(generic.GenericBuilder, SetupEnvironment): def install(self, pkg, spec, prefix): - nmake("-f" "win32\\Makefile.msc") + nmake("-fwin32\\Makefile.msc") build_dir = pkg.stage.source_path install_tree = { "bin": glob.glob(os.path.join(build_dir, "*.dll")), diff --git a/tests/repos/spack_repo/builtin_mock/packages/cmake_client/package.py b/tests/repos/spack_repo/builtin_mock/packages/cmake_client/package.py index 314960a32cd..ea18cc1a4cc 100644 --- a/tests/repos/spack_repo/builtin_mock/packages/cmake_client/package.py +++ b/tests/repos/spack_repo/builtin_mock/packages/cmake_client/package.py @@ -66,7 +66,7 @@ def setup_build_environment(self, spack_env): check( self.spec["cmake"].link_arg == "test link arg", - "link arg on dependency spec not readable from " "setup_build_environment.", + "link arg on dependency spec not readable from setup_build_environment.", ) def setup_dependent_build_environment( @@ -80,7 +80,7 @@ def setup_dependent_build_environment( check( self.spec["cmake"].link_arg == "test link arg", - "link arg on dependency spec not readable from " "setup_dependent_build_environment.", + "link arg on dependency spec not readable from setup_dependent_build_environment.", ) def setup_dependent_package(self, module, dspec): @@ -92,7 +92,7 @@ def setup_dependent_package(self, module, dspec): check( self.spec["cmake"].link_arg == "test link arg", - "link arg on dependency spec not readable from " "setup_dependent_package.", + "link arg on dependency spec not readable from setup_dependent_package.", ) def cmake(self, spec, prefix): From 4748643414346ce3543cab6a33963803456b75f3 Mon Sep 17 00:00:00 2001 From: G-Ragghianti <33492707+G-Ragghianti@users.noreply.github.com> Date: Fri, 1 Aug 2025 14:51:45 -0400 Subject: [PATCH 056/120] BlisBase: set `target=` configuration argument (#503) --- repos/spack_repo/builtin/packages/blis/package.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/repos/spack_repo/builtin/packages/blis/package.py b/repos/spack_repo/builtin/packages/blis/package.py index 869cc09d416..4065101cdcc 100644 --- a/repos/spack_repo/builtin/packages/blis/package.py +++ b/repos/spack_repo/builtin/packages/blis/package.py @@ -11,6 +11,11 @@ # https://github.com/flame/blis/issues/195 # https://github.com/flame/blis/issues/197 +# If the spack target architecture matches one of these values, +# provide this target to the Blis build as the Blis config target +# instead of using automatic configuration detection. +_targets = ["x86_64", "zen", "zen2"] + class BlisBase(MakefilePackage): """Base class for building BLIS, shared with the AMD optimized version @@ -83,8 +88,12 @@ def configure_args(self): return config_args def edit(self, spec, prefix): - # To ensure auto should always be the last argument for base and derived class - config_args = self.configure_args() + ["auto"] + target = "auto" + for _target in _targets: + if self.spec.satisfies(f"target={_target}"): + target = _target + # To ensure the target should always be the last argument for base and derived class + config_args = self.configure_args() + [target] configure("--prefix={0}".format(prefix), *config_args) @run_after("install") From c2bb5a6f2a2e85c61db717faf636f3bfb946fb2d Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Fri, 1 Aug 2025 21:04:00 +0200 Subject: [PATCH 057/120] py-cartopy: add v0.25.0 (#922) Signed-off-by: Adam J. Stewart --- repos/spack_repo/builtin/packages/py_cartopy/package.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/repos/spack_repo/builtin/packages/py_cartopy/package.py b/repos/spack_repo/builtin/packages/py_cartopy/package.py index 3078a8be392..4efdf3d8596 100644 --- a/repos/spack_repo/builtin/packages/py_cartopy/package.py +++ b/repos/spack_repo/builtin/packages/py_cartopy/package.py @@ -17,6 +17,7 @@ class PyCartopy(PythonPackage): license("LGPL-3.0-or-later") maintainers("adamjstewart") + version("0.25.0", sha256="55f1a390e5f3f075b221c7d91fb10258ad978db786c7930eba06eb45d28753fe") version("0.24.1", sha256="01c910d5634c69a7efdec46e0a17d473d2328767f001d4dc0b5c4b48e585c8bd") version("0.24.0", sha256="e044e0e0fa76bb7afde937bec541743dcbf6b6f23b933a21ebddcd20cfffb755") version("0.23.0", sha256="231f37b35701f2ba31d94959cca75e6da04c2eea3a7f14ce1c75ee3b0eae7676") @@ -56,6 +57,7 @@ class PyCartopy(PythonPackage): depends_on("python@:3.9", when="@:0.18") with default_args(type="build"): + depends_on("py-setuptools@77.0.3:", when="@0.25:") depends_on("py-setuptools@40.6:", when="@0.19:") depends_on("py-setuptools@0.7.2:") depends_on("py-cython@0.29.24:", when="@0.22:") @@ -64,6 +66,7 @@ class PyCartopy(PythonPackage): depends_on("py-cython@0.28:", when="@0.18:") depends_on("py-cython@0.15.1:", when="@0.17:") depends_on("py-cython") + depends_on("py-setuptools-scm@8:", when="@0.25:") depends_on("py-setuptools-scm@7:", when="@0.20.3:") depends_on("py-setuptools-scm", when="@0.19:") @@ -84,6 +87,7 @@ class PyCartopy(PythonPackage): depends_on("py-matplotlib@3.1:", when="@0.21") # https://github.com/SciTools/cartopy/issues/2086 depends_on("py-matplotlib@3.1:3.5", when="@0.20") + depends_on("py-shapely@2.0:", when="@0.25:") depends_on("py-shapely@1.8:", when="@0.24:") depends_on("py-shapely@1.7:", when="@0.22:") depends_on("py-shapely@1.6.4:", when="@0.21.1:0.21") From e0417696284c81c8fd3bb8afca7c0531b7431c02 Mon Sep 17 00:00:00 2001 From: Xavier Delaruelle Date: Fri, 1 Aug 2025 21:07:05 +0200 Subject: [PATCH 058/120] environment-modules: add v5.6.0 (#916) * add new version 5.6.0 * enable by require_via feature by default to allow hierarchical modulefiles * update repository URL (from cea-hpc to envmodules GitHub organization) Signed-off-by: Xavier Delaruelle --- .../builtin/packages/environment_modules/package.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/repos/spack_repo/builtin/packages/environment_modules/package.py b/repos/spack_repo/builtin/packages/environment_modules/package.py index e336cceb823..8e57e0e3bda 100644 --- a/repos/spack_repo/builtin/packages/environment_modules/package.py +++ b/repos/spack_repo/builtin/packages/environment_modules/package.py @@ -13,13 +13,14 @@ class EnvironmentModules(Package): modification of a user's environment via module files. """ - homepage = "https://cea-hpc.github.io/modules/" - url = "https://github.com/cea-hpc/modules/releases/download/v5.5.0/modules-5.5.0.tar.gz" - git = "https://github.com/cea-hpc/modules.git" + homepage = "https://envmodules.github.io/modules/" + url = "https://github.com/envmodules/modules/releases/download/v5.6.0/modules-5.6.0.tar.gz" + git = "https://github.com/envmodules/modules.git" maintainers("xdelaruelle") version("main", branch="main") + version("5.6.0", sha256="9dd78f1543012acd3a1a14ba86dc1dca8f7d176396ea3f0027a92dcf5ff2057c") version("5.5.0", sha256="ad0e360c7adc2515a99836863d98499b3ad89cd7548625499b20293845b040cb") version("5.4.0", sha256="586245cbf9420866078d8c28fce8ef4f192530c69a0f368f51e848340dcf3b90") version("5.3.1", sha256="d02f9ce4f8baf6c99edceb7c73bfdd1e97d77bcc4725810b86efed9f58dda962") @@ -93,13 +94,16 @@ def install(self, spec, prefix): ] # ./configure script on version 4.5.2 breaks when specific options are - # set (see https://github.com/cea-hpc/modules/issues/354) + # set (see https://github.com/envmodules/modules/issues/354) if not spec.satisfies("@4.5.2"): config_args.extend(["--disable-dependency-tracking", "--disable-silent-rules"]) if spec.satisfies("~X"): config_args = ["--without-x"] + config_args + if self.spec.satisfies("@5.6.0:"): + config_args.extend(["--enable-require-via"]) + if self.spec.satisfies("@5.5.0:"): config_args.extend(["--enable-conflict-unload"]) From 20aa538bd0d33743b8cd9dd9179c759b85615d47 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Fri, 1 Aug 2025 21:07:35 +0200 Subject: [PATCH 059/120] py-keras: add v3.11.1 (#913) Signed-off-by: Adam J. Stewart --- repos/spack_repo/builtin/packages/py_keras/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/py_keras/package.py b/repos/spack_repo/builtin/packages/py_keras/package.py index 80f233de509..76127f8aee4 100644 --- a/repos/spack_repo/builtin/packages/py_keras/package.py +++ b/repos/spack_repo/builtin/packages/py_keras/package.py @@ -24,6 +24,7 @@ class PyKeras(PythonPackage): tags = ["e4s"] license("Apache-2.0") + version("3.11.1", sha256="7a27f384467fa8d0b0281665b52efd6bd948f20854099e35929786ce44d847f0") version("3.11.0", sha256="f5dfeaf4fcaea180e032f7c1e373f1868961e2940dcfcaaf9a5b711baf41bd60") version("3.10.0", sha256="6e9100bf66eaf6de4b7f288d34ef9bb8b5dcdd62f42c64cfd910226bb34ad2d2") version("3.9.2", sha256="322aab6418ee3de1e2bd0871b60a07f0e444e744a7e8cba79af8b42408879ecf") From 34d5b2556af54d1fbbdc9879f68e43981fd036d8 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Fri, 1 Aug 2025 21:12:27 +0200 Subject: [PATCH 060/120] py-dunamai: add v1.25.0 (#894) --- repos/spack_repo/builtin/packages/py_dunamai/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/py_dunamai/package.py b/repos/spack_repo/builtin/packages/py_dunamai/package.py index 6f1238a383d..fef688eeb9d 100644 --- a/repos/spack_repo/builtin/packages/py_dunamai/package.py +++ b/repos/spack_repo/builtin/packages/py_dunamai/package.py @@ -15,6 +15,7 @@ class PyDunamai(PythonPackage): license("MIT") + version("1.25.0", sha256="a7f8360ea286d3dbaf0b6a1473f9253280ac93d619836ad4514facb70c0719d1") version("1.18.0", sha256="5200598561ea5ba956a6174c36e402e92206c6a6aa4a93a6c5cb8003ee1e0997") version("1.17.0", sha256="459381b585a1e78e4070f0d38a6afb4d67de2ee95064bf6b0438ec620dde0820") version("1.13.1", sha256="49597bdf653bdacdeb51ec6e0f1d4d2327309376fc83e6f1d42af6e29600515f") From af0113a17a2ec1cf009820d30708da486ab5bc91 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Fri, 1 Aug 2025 21:13:12 +0200 Subject: [PATCH 061/120] py-duecredit: add v0.10.2 (#892) --- .../builtin/packages/py_duecredit/package.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_duecredit/package.py b/repos/spack_repo/builtin/packages/py_duecredit/package.py index 22ec361f050..a08e8955606 100644 --- a/repos/spack_repo/builtin/packages/py_duecredit/package.py +++ b/repos/spack_repo/builtin/packages/py_duecredit/package.py @@ -15,13 +15,19 @@ class PyDuecredit(PythonPackage): license("BSD-2-Clause-FreeBSD") + version("0.10.2", sha256="fe73a20e4fbb2d972ba01edf37dec1b0ba1e646efe5ef4ccaf0c6724ca287d42") version("0.9.2", sha256="0e0fd87e9e46ce6c94308e9f780c203fe836d89628404f8bf5af96a7457bed1c") version("0.9.1", sha256="f6192ce9315b35f6a67174761291e61d0831e496e8ff4acbc061731e7604faf8") version("0.6.5", sha256="da3746c24f048e1b2e9bd15c001f0f453a29780ebb9d26367f478a63d15dee9b") + depends_on("python@3.8:", type="build", when="@0.10:") depends_on("py-setuptools", type="build") - depends_on("py-requests", type=("build", "run")) depends_on("py-citeproc-py@0.4:", type=("build", "run")) - depends_on("py-six", type=("build", "run")) - depends_on("py-importlib-metadata", when="@0.9: ^python@:3.7", type=("build", "run")) + depends_on("py-looseversion", type=("build", "run"), when="@0.10:") + depends_on("py-packaging", type=("build", "run"), when="@0.10:") + depends_on("py-requests", type=("build", "run")) + + # Historical dependencies + depends_on("py-six", type=("build", "run"), when="@:0.92") + depends_on("py-importlib-metadata", type=("build", "run"), when="@0.9 ^python@:3.7") From 08f5f89f4ff9de6e142e116da8efd734f95dd0eb Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Fri, 1 Aug 2025 21:13:53 +0200 Subject: [PATCH 062/120] py-distro: add v1.9.0 (#886) --- repos/spack_repo/builtin/packages/py_distro/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/py_distro/package.py b/repos/spack_repo/builtin/packages/py_distro/package.py index 7dee6fc4056..e29dd65225c 100644 --- a/repos/spack_repo/builtin/packages/py_distro/package.py +++ b/repos/spack_repo/builtin/packages/py_distro/package.py @@ -16,6 +16,7 @@ class PyDistro(PythonPackage): license("Apache-2.0") + version("1.9.0", sha256="2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed") version("1.8.0", sha256="02e111d1dc6a50abb8eed6bf31c3e48ed8b0830d1ea2a1b78c61765c2513fdd8") version("1.7.0", sha256="151aeccf60c216402932b52e40ee477a939f8d58898927378a02abbe852c1c39") version("1.6.0", sha256="83f5e5a09f9c5f68f60173de572930effbcc0287bb84fdc4426cb4168c088424") From 81482b3cec59cfec15efbcfd5d8464ea3d3a4c47 Mon Sep 17 00:00:00 2001 From: Alec Scott Date: Fri, 1 Aug 2025 13:05:36 -0700 Subject: [PATCH 063/120] ci: add remove package label (#920) Signed-off-by: Alec Scott --- .github/labels.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/labels.yml b/.github/labels.yml index aeef089cda4..a344f13cf7f 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -21,6 +21,11 @@ update-package: - 'modified' - 'renamed' +remove-package: + filename: '^repos/spack_repo/builtin/packages/[^/]+/package.py$' + status: + - 'removed' + maintainers: patch: '[+-] +maintainers +=' From a9d5a31c298c40ee7a7a757677ce591d297f7c47 Mon Sep 17 00:00:00 2001 From: Chris Marsh Date: Fri, 1 Aug 2025 15:10:29 -0600 Subject: [PATCH 064/120] py-xhistogram: fix python 3.12 (#898) * fix build with python 3.12 * [@spackbot] updating style on behalf of Chrismarsh * style * increase upper patch version limit * switch to .patch file * style * [@spackbot] updating style on behalf of Chrismarsh --------- Co-authored-by: Chrismarsh --- .../builtin/packages/py_xhistogram/package.py | 7 ++++ .../patch_py312_versioneer.patch | 39 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 repos/spack_repo/builtin/packages/py_xhistogram/patch_py312_versioneer.patch diff --git a/repos/spack_repo/builtin/packages/py_xhistogram/package.py b/repos/spack_repo/builtin/packages/py_xhistogram/package.py index 0d004ffc5ae..9b4162ddfcf 100644 --- a/repos/spack_repo/builtin/packages/py_xhistogram/package.py +++ b/repos/spack_repo/builtin/packages/py_xhistogram/package.py @@ -18,6 +18,13 @@ class PyXhistogram(PythonPackage): version("0.3.2", sha256="56b0751e1469eaed81710f644c8ba5c574b51883baa2feee26a95f2f708f91a1") depends_on("py-setuptools", type="build") + depends_on("py-versioneer", type="build") + depends_on("py-versioneer@0.29:", type="build", when="^python@3.12:") + depends_on("py-xarray@0.12:", type=("build", "run")) depends_on("py-dask@2.3:+array", type=("build", "run")) depends_on("py-numpy@1.17:", type=("build", "run")) + + # compatibility with python 3.12 + # https://github.com/xgcm/xhistogram/pull/90 + patch("patch_py312_versioneer.patch", when="^python@3.12:") diff --git a/repos/spack_repo/builtin/packages/py_xhistogram/patch_py312_versioneer.patch b/repos/spack_repo/builtin/packages/py_xhistogram/patch_py312_versioneer.patch new file mode 100644 index 00000000000..e39ecac6434 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_xhistogram/patch_py312_versioneer.patch @@ -0,0 +1,39 @@ +From 6eef6c697d95ea70883a5ff6ee2f3e7188eaa4c5 Mon Sep 17 00:00:00 2001 +From: Chris Marsh +Date: Mon, 28 Jul 2025 16:51:05 -0600 +Subject: [PATCH] fix versioneer for python 3.12+ + +--- + setup.py | 2 +- + versioneer.py | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/setup.py b/setup.py +index 532192a6f180f064d33a4e033373aa02afd400be..fbc96ff0ef18809d4e8222a3e016314254360d9f 100644 +--- a/setup.py ++++ b/setup.py +@@ -20,7 +20,7 @@ + "Topic :: Scientific/Engineering", + ] + +-INSTALL_REQUIRES = ["xarray>=0.12.0", "dask[array]>=2.3.0", "numpy>=1.17"] ++INSTALL_REQUIRES = ["xarray>=0.12.0", "dask[array]>=2.3.0", "numpy>=1.17", "versioneer>=0.29"] + PYTHON_REQUIRES = ">=3.7" + + DESCRIPTION = "Fast, flexible, label-aware histograms for numpy and xarray" +diff --git a/versioneer.py b/versioneer.py +index 2b5454051080d3601eefccb729816fb493768d15..8b24e239bece4aebb2c9250a207cda8d4461be12 100644 +--- a/versioneer.py ++++ b/versioneer.py +@@ -343,9 +343,9 @@ def get_config_from_root(root): + # configparser.NoOptionError (if it lacks "VCS="). See the docstring at + # the top of versioneer.py for instructions on writing your setup.cfg . + setup_cfg = os.path.join(root, "setup.cfg") +- parser = configparser.SafeConfigParser() ++ parser = configparser.ConfigParser() + with open(setup_cfg, "r") as f: +- parser.readfp(f) ++ parser.read_file(f) + VCS = parser.get("versioneer", "VCS") # mandatory + + def get(parser, name): From 3dc6225cfc1b0acfae5f76cec0af8ba680e5402b Mon Sep 17 00:00:00 2001 From: Huston Rogers Date: Fri, 1 Aug 2025 16:41:34 -0500 Subject: [PATCH 065/120] miniconda: add New Releases (#915) Added versions from the last time versions were updated. Includes 24.9 -> 25.1 --- .../builtin/packages/miniconda3/package.py | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/repos/spack_repo/builtin/packages/miniconda3/package.py b/repos/spack_repo/builtin/packages/miniconda3/package.py index 1a40111c210..c8589fb4262 100644 --- a/repos/spack_repo/builtin/packages/miniconda3/package.py +++ b/repos/spack_repo/builtin/packages/miniconda3/package.py @@ -10,6 +10,36 @@ from spack.package import * _versions = { + "25.5.1": { + "Linux-x86_64": ( + "612af113b49db0368e2be41ac4d51b7088eebd5f31daeeb89f23fff8f920db58", + "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.5.1-1-Linux-x86_64.sh", + ) + }, + "25.3.1": { + "Linux-x86_64": ( + "53a86109463cfd70ba7acab396d416e623012914eee004729e1ecd6fe94e8c69", + "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.3.1-1-Linux-x86_64.sh", + ) + }, + "25.1.1": { + "Linux-x86_64": ( + "4766d85b5f7d235ce250e998ebb5a8a8210cbd4f2b0fea4d2177b3ed9ea87884", + "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-Linux-x86_64.sh", + ) + }, + "24.11.1": { + "Linux-x86_64": ( + "636b209b00b6673471f846581829d4b96b9c3378679925a59a584257c3fef5a3", + "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.11.1-0-Linux-x86_64.sh", + ) + }, + "24.9.2": { + "Linux-x86_64": ( + "8d936ba600300e08eca3d874dee88c61c6f39303597b2b66baee54af4f7b4122", + "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.9.2-0-Linux-x86_64.sh", + ) + }, "24.7.1": { "Linux-x86_64": ( "33442cd3813df33dcbb4a932b938ee95398be98344dff4c30f7e757cd2110e4f", From b0a0ae07e73d9b8bede9c2d42b9553cd0a843bdd Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Fri, 1 Aug 2025 17:41:29 -0700 Subject: [PATCH 066/120] curl: add 8.14.1 and 8.15.0 (#739) Update to the latest 8.14.1 and 8.15.0 releases. `cmake` has some issues with `curl` 8.14.1 and `8.15` -- specifically, `cmake` 3.11:3.31.6` need a patch, and older versions won't work with these `curl` versions. `curl` 8.15 removes support for `secure_transport` TLS on macOS, which was our default TLS version. So, we need to make it rely on `openssl`. This is not too disruptive, as everyone is either installing `openssl` or pointing at an external one anyway. --------- Signed-off-by: Todd Gamblin Co-authored-by: John Parent --- .../builtin/packages/cmake/package.py | 7 ++++ .../builtin/packages/curl/package.py | 41 +++++++++++-------- 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/repos/spack_repo/builtin/packages/cmake/package.py b/repos/spack_repo/builtin/packages/cmake/package.py index a83c139b5c7..8c7de951c95 100644 --- a/repos/spack_repo/builtin/packages/cmake/package.py +++ b/repos/spack_repo/builtin/packages/cmake/package.py @@ -20,6 +20,7 @@ class Cmake(Package): homepage = "https://www.cmake.org" url = "https://github.com/Kitware/CMake/releases/download/v3.19.0/cmake-3.19.0.tar.gz" git = "https://gitlab.kitware.com/cmake/cmake.git" + github = "https://github.com/kitware/cmake" maintainers("alalazo", "johnwparent") @@ -167,6 +168,12 @@ class Cmake(Package): # https://gitlab.kitware.com/cmake/cmake/-/merge_requests/9623 patch("mr-9623.patch", when="@3.22.0:3.30") + patch( + f"{github}/commit/1b0c92a3a1b782ff3e1c4499b6ab8db614d45bcd.patch?full_index=1", + sha256="fdea723be9713f3ed4624055bf21ef5876647d63c151b91006608ec44a912ae1", + when="@3.11:3.31.6", + ) + depends_on("c", type="build") depends_on("cxx", type="build") diff --git a/repos/spack_repo/builtin/packages/curl/package.py b/repos/spack_repo/builtin/packages/curl/package.py index 6f59ee9784e..787201307ed 100644 --- a/repos/spack_repo/builtin/packages/curl/package.py +++ b/repos/spack_repo/builtin/packages/curl/package.py @@ -29,9 +29,15 @@ class Curl(NMakePackage, AutotoolsPackage): license("curl") - version("8.11.1", sha256="e9773ad1dfa21aedbfe8e1ef24c9478fa780b1b3d4f763c98dd04629b5e43485") + version("8.15.0", sha256="699a6d2192322792c88088576cff5fe188452e6ea71e82ca74409f07ecc62563") + version("8.14.1", sha256="5760ed3c1a6aac68793fc502114f35c3e088e8cd5c084c2d044abdf646ee48fb") # Deprecated versions due to CVEs + version( + "8.11.1", + sha256="e9773ad1dfa21aedbfe8e1ef24c9478fa780b1b3d4f763c98dd04629b5e43485", + deprecated=True, + ) version( "8.10.1", sha256="3763cd97aae41dcf41950d23e87ae23b2edb2ce3a5b0cf678af058c391b6ae31", @@ -80,18 +86,13 @@ class Curl(NMakePackage, AutotoolsPackage): deprecated=True, ) - default_tls = "openssl" - if sys.platform == "darwin": - default_tls = "secure_transport" - elif sys.platform == "win32": - default_tls = "sspi" - # TODO: add dependencies for other possible TLS backends - variant( - "tls", - default=default_tls, - description="TLS backend", - values=( + + # common arguments for tls variant definitions + tls_args = { + "description": "TLS backend", + "multi": True, + "values": ( # 'amissl', # 'bearssl', "gnutls", @@ -101,12 +102,17 @@ class Curl(NMakePackage, AutotoolsPackage): "openssl", # 'rustls', # 'schannel', - "secure_transport", + # secure_transport support was removed in curl 8.15.0 + conditional("secure_transport", when="platform=darwin @:8.14"), # 'wolfssl', conditional("sspi", when="platform=windows"), ), - multi=True, - ) + } + + variant("tls", default="openssl", **tls_args) + variant("tls", default="sspi", when="platform=windows", **tls_args) + variant("tls", default="secure_transport", when="platform=darwin @:8.14", **tls_args) + variant("nghttp2", default=True, description="build nghttp2 library (requires C++11)") variant("libssh2", default=False, description="enable libssh2 support") variant("libssh", default=False, description="enable libssh support", when="@7.58:") @@ -156,9 +162,12 @@ class Curl(NMakePackage, AutotoolsPackage): depends_on("krb5", when="+gssapi") depends_on("rtmpdump", when="+librtmp") + # Perl pops up as a build-time dependency sometimes in curl. + # They try to fix it quickly when it happens. # https://github.com/curl/curl/issues/12832 # https://github.com/curl/curl/issues/13508 - depends_on("perl", type="build", when="@8.6:8.7.1") + # https://github.com/curl/curl/issues/18088 + depends_on("perl", type="build", when="@8.6:8.7.1,8.15.0") # https://github.com/curl/curl/pull/9054 patch("easy-lock-sched-header.patch", when="@7.84.0") From d49f5ac9577d17a2521e9e61f57eac7a449affea Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Sat, 2 Aug 2025 12:58:32 +0200 Subject: [PATCH 067/120] py-libclang: setup.py renamed (#807) Signed-off-by: Adam J. Stewart --- repos/spack_repo/builtin/packages/py_libclang/package.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/py_libclang/package.py b/repos/spack_repo/builtin/packages/py_libclang/package.py index 2137be0bc24..6dc84df1ffe 100644 --- a/repos/spack_repo/builtin/packages/py_libclang/package.py +++ b/repos/spack_repo/builtin/packages/py_libclang/package.py @@ -38,9 +38,14 @@ class PyLibclang(PythonPackage): depends_on("llvm+clang@" + ver, when="@" + ver, type="build") def patch(self): + if self.version >= Version("14"): + setup = "setup_ext.py" + else: + setup = "setup.py" + filter_file( "source_dir = './native/'", "source_dir = '{0}'".format(self.spec["llvm"].libs.directories[0]), - "setup.py", + setup, string=True, ) From 63e5f02b547c4fab0a9ccaf680f0770417b10e65 Mon Sep 17 00:00:00 2001 From: ajpotts Date: Sun, 3 Aug 2025 12:01:26 -0400 Subject: [PATCH 068/120] Add ajpotts as Arkouda package maintainer (#901) Co-authored-by: ajpotts --- repos/spack_repo/builtin/packages/arkouda/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/arkouda/package.py b/repos/spack_repo/builtin/packages/arkouda/package.py index 003c278e04f..70c45560c6c 100644 --- a/repos/spack_repo/builtin/packages/arkouda/package.py +++ b/repos/spack_repo/builtin/packages/arkouda/package.py @@ -23,7 +23,7 @@ class Arkouda(MakefilePackage): # A list of GitHub accounts to notify when the package is updated. # TODO: add arkouda devs github account - maintainers("arezaii") + maintainers("ajpotts", "arezaii") version("master", branch="master") From 0dfba30325b64567914b013c640122a79f8c2eac Mon Sep 17 00:00:00 2001 From: Jeremy Wilkinson Date: Sun, 3 Aug 2025 18:04:00 +0200 Subject: [PATCH 069/120] FairROOT: new package (#673) * FairROOT: add fairroot, fairsoft-bundle, fairsoft-config packages * fix audit issues * fix style checks * remaining style checks in fairsoft_config * comments from PR review * Update repos/spack_repo/builtin/packages/fairroot/package.py Co-authored-by: Valentin Volkl --------- Co-authored-by: Valentin Volkl --- .../builtin/packages/fairroot/package.py | 96 +++++++++++++++++++ .../packages/fairsoft_bundle/package.py | 56 +++++++++++ .../packages/fairsoft_config/package.py | 44 +++++++++ 3 files changed, 196 insertions(+) create mode 100644 repos/spack_repo/builtin/packages/fairroot/package.py create mode 100644 repos/spack_repo/builtin/packages/fairsoft_bundle/package.py create mode 100644 repos/spack_repo/builtin/packages/fairsoft_config/package.py diff --git a/repos/spack_repo/builtin/packages/fairroot/package.py b/repos/spack_repo/builtin/packages/fairroot/package.py new file mode 100644 index 00000000000..8b01f297e47 --- /dev/null +++ b/repos/spack_repo/builtin/packages/fairroot/package.py @@ -0,0 +1,96 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class Fairroot(CMakePackage): + """C++ simulation, reconstruction and analysis framework for particle physics experiments""" + + homepage = "http://fairroot.gsi.de" + url = "https://github.com/FairRootGroup/FairRoot/archive/v18.8.2.tar.gz" + git = "https://github.com/FairRootGroup/FairRoot.git" + maintainers("dennisklein", "fuhlig1", "jezwilkinson") + + tags = ["hep"] + version("develop", branch="dev") + version("18.8.2", sha256="0bc9bafd9583f8a4c92977647c1eb360d66f45fbc6c81a15c5a1613640934684") + + variant( + "cxxstd", + default="17", + values=("17", "20"), + multi=False, + description="Use the specified C++ standard when building.", + ) + variant("sim", default=True, description="Enable simulation engines and event generators") + variant("examples", default=False, description="Install examples") + + depends_on("cmake@3.13.4:", type="build") + depends_on("boost@1.68.0: +container +serialization") + depends_on("faircmakemodules@0.2:", when="@18:") + depends_on("fairlogger@1.4.0:") + depends_on("fairmq@1.4.11:") + + # Version-specific fairsoft release dependencies + depends_on("fairsoft-bundle") + depends_on("fairsoft-bundle@2025-05", when="@18.8.2:") + + depends_on("flatbuffers") + depends_on("geant3", when="+sim") + depends_on("geant4", when="+sim") + depends_on("geant4-vmc", when="+sim") + depends_on("googletest@1.7.0:") + depends_on("msgpack-c@3.1:", when="+examples") + depends_on("protobuf") + depends_on("pythia6", when="+sim") + depends_on("pythia8", when="+sim") + depends_on("root+http+xml+gdml") + depends_on("vgm", when="+sim") + depends_on("vmc", when="@18.4: ^root@6.18:") + depends_on("yaml-cpp", when="@18.2:") + for std in ("17", "20"): + for dep in ("root", "fairmq"): + depends_on("{0} cxxstd={1}".format(dep, std), when="cxxstd={0}".format(std)) + + def setup_build_environment(self, env): + super(Fairroot, self).setup_build_environment(env) + env.unset("SIMPATH") + env.unset("FAIRSOFT_ROOT") + + def cmake_args(self): + options = [] + options.append("--log-level=VERBOSE") + if self.spec.satisfies("@18.4:"): + cxxstd = self.spec.variants["cxxstd"].value + if cxxstd != "default": + options.append("-DCMAKE_CXX_STANDARD={0}".format(cxxstd)) + if self.spec.satisfies("@:18,develop"): + options.append("-DROOTSYS={0}".format(self.spec["root"].prefix)) + options.append("-DPYTHIA8_DIR={0}".format(self.spec["pythia8"].prefix)) + + options.append("-DBUILD_EXAMPLES:BOOL=%s" % ("ON" if "+examples" in self.spec else "OFF")) + + if self.spec.satisfies("^boost@:1.69.99"): + options.append("-DBoost_NO_BOOST_CMAKE=ON") + options.append("-DBUILD_PROOF_SUPPORT=OFF") + return options + + @property + def root_library_path(self): + if self.spec.satisfies("^root@:6.25"): + return "LD_LIBRARY_PATH" + return "ROOT_LIBRARY_PATH" + + def common_env_setup(self, env): + # So that root finds the shared library / rootmap + env.prepend_path(self.root_library_path, self.prefix.lib) + + def setup_run_environment(self, env): + self.common_env_setup(env) + + def setup_dependent_run_environment(self, env, dependent_spec): + self.common_env_setup(env) diff --git a/repos/spack_repo/builtin/packages/fairsoft_bundle/package.py b/repos/spack_repo/builtin/packages/fairsoft_bundle/package.py new file mode 100644 index 00000000000..f0264ed0771 --- /dev/null +++ b/repos/spack_repo/builtin/packages/fairsoft_bundle/package.py @@ -0,0 +1,56 @@ +# Copyright Spack Project Developers. See COPYRIGHT for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.bundle import BundlePackage + +from spack.package import * + + +class FairsoftBundle(BundlePackage): + """Bundle package providing default environment for FAIR software""" + + homepage = "https://github.com/FairRootGroup/FairSoft" + maintainers("dennisklein", "fuhlig1", "jezwilkinson") + + # Releases: + version("2025-05") + + variant("graphics", default=False, description="Enable graphical support in ROOT") + variant("mt", default=False, description="Enable multithreading for GEANT4") + + # Some normal packages + depends_on("faircmakemodules") + + # Pin some variants: + depends_on("geant4 ~threads", when="~mt") + depends_on("geant4 +threads", when="+mt") + depends_on("geant4 ~qt~vecgeom~opengl~x11~motif") + + # ensure that OpenBLAS uses CMake build system (default Makefile causes issues on some Macs) + depends_on("openblas build_system=cmake ~dynamic_dispatch") + + # Generic ROOT dependencies + depends_on("root +fortran+pythia8+vc~vdt") + # Mostly for the experiments: + depends_on("root +python+tmva+mlp+xrootd+sqlite") + # FFTW for Panda + depends_on("root +fftw") + depends_on("fftw~mpi") + depends_on("root +spectrum", when="@2025-05:") + depends_on("root ~x~opengl~aqua", when="~graphics") + depends_on("root +x+opengl", when="+graphics") + + # Using "platform=" in a when clause gets concretized too late. + # and our root recipe disables +aqua on non-macOS now. + # depends_on("root +aqua", when="+graphics platform=darwin") + depends_on("root +aqua", when="+graphics") + + # Version-specific dependencies for FairSoft releases + depends_on("pythia8@8.313", when="@2025-05") + depends_on("root@6.36.00", when="@2025-05") + depends_on("vmc@2-1", when="@2025-05") + depends_on("geant3@4-4", when="@2025-05") + depends_on("vgm@5-3-1", when="@2025-05") + depends_on("geant4-vmc@6-7-p1", when="@2025-05") + depends_on("fairsoft-config fairsoft_version=may25", when="@2025-05", type="run") diff --git a/repos/spack_repo/builtin/packages/fairsoft_config/package.py b/repos/spack_repo/builtin/packages/fairsoft_config/package.py new file mode 100644 index 00000000000..7a4144fda36 --- /dev/null +++ b/repos/spack_repo/builtin/packages/fairsoft_config/package.py @@ -0,0 +1,44 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class FairsoftConfig(CMakePackage): + """Legacy fairsoft-config script""" + + homepage = "https://github.com/FairRootGroup/fairsoft-config" + git = "https://github.com/FairRootGroup/fairsoft-config" + maintainers("dennisklein", "fuhlig1", "jezwilkinson") + + version("master") + + variant( + "cxxstd", + default="17", + values=("17", "20"), + multi=False, + description="C++ standard reported", + ) + + variant( + "fairsoft_version", + default="develop", + values=("develop", "may25"), + multi=False, + description="Installed version of fairsoft-bundle", + ) + + depends_on("cmake@3:", type="build") + depends_on("root", type=("build", "link", "run")) + + def cmake_args(self): + args = [] + args += [ + self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"), + self.define_from_variant("FAIRSOFT_VERSION", "fairsoft_version"), + ] + return args From e345ac88cb18908ab07c6159384dce95be0e7674 Mon Sep 17 00:00:00 2001 From: Satish Balay Date: Sun, 3 Aug 2025 11:48:31 -0500 Subject: [PATCH 070/120] petsc, py-petsc4py: add v3.23.5 (#904) --- repos/spack_repo/builtin/packages/petsc/package.py | 1 + repos/spack_repo/builtin/packages/py_petsc4py/package.py | 1 + 2 files changed, 2 insertions(+) diff --git a/repos/spack_repo/builtin/packages/petsc/package.py b/repos/spack_repo/builtin/packages/petsc/package.py index f5611b737c3..3fe32719536 100644 --- a/repos/spack_repo/builtin/packages/petsc/package.py +++ b/repos/spack_repo/builtin/packages/petsc/package.py @@ -24,6 +24,7 @@ class Petsc(Package, CudaPackage, ROCmPackage): tags = ["e4s"] version("main", branch="main") + version("3.23.5", sha256="b0bb614dfbf36c286c8cad30912fe77359dccbf6b65a5edd1dde82af293f21fc") version("3.23.4", sha256="711b2ad46b14f12fe74fcbc7f9b514444646f1e7b20ed57dc7482d34dfc4ca77") version("3.23.3", sha256="bb51e8cbaa3782afce38c6f0bdd64d20ed090695992b7d49817518aa7e909139") version("3.23.2", sha256="030ec6c4e9ed885457a6155f20b6f914593a1cd960b28706521a19a9cdadd5e2") diff --git a/repos/spack_repo/builtin/packages/py_petsc4py/package.py b/repos/spack_repo/builtin/packages/py_petsc4py/package.py index 9c48660c686..6beaf0b7739 100644 --- a/repos/spack_repo/builtin/packages/py_petsc4py/package.py +++ b/repos/spack_repo/builtin/packages/py_petsc4py/package.py @@ -21,6 +21,7 @@ class PyPetsc4py(PythonPackage): license("BSD-2-Clause") version("main", branch="main") + version("3.23.5", sha256="2d4d5c98d86c4d9f2e6d811a3ba85d2be8a2af7153db446b6e411eb2a2e35a18") version("3.23.4", sha256="e91a7020873131eb3afdd108ab6b523e1d136e67a3283a703f9bf330ae9eaccd") version("3.23.3", sha256="e46914d30e55a91cd0100f7fb0bc99423e733e1a5c082cd69c6fb8f1b1a5b970") version("3.23.2", sha256="6e9220af93a9ee96ad90a47d1513cd5d86bfca02b3a9a902507146311cf4d059") From 71ab97d04a12a4dd584661656b2552eb0c973a06 Mon Sep 17 00:00:00 2001 From: Stephen Nicholas Swatman Date: Sun, 3 Aug 2025 19:47:44 +0200 Subject: [PATCH 071/120] acts dependencies: new versions as of 2025/07/07 (#497) This commit adds new versions of the covfie, detray, and GeoModel packages. --- repos/spack_repo/builtin/packages/covfie/package.py | 3 +++ repos/spack_repo/builtin/packages/detray/package.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/repos/spack_repo/builtin/packages/covfie/package.py b/repos/spack_repo/builtin/packages/covfie/package.py index 56ff7c5cf36..0d8f752fb0e 100644 --- a/repos/spack_repo/builtin/packages/covfie/package.py +++ b/repos/spack_repo/builtin/packages/covfie/package.py @@ -23,6 +23,9 @@ class Covfie(CMakePackage, CudaPackage, ROCmPackage): license("MPL-2.0") version("main", branch="main") + version("0.15.2", sha256="6eff65e05118d3007c689e3529a62bb1674348ac1b0f0f32afd953c62d1b8890") + version("0.15.1", sha256="809f1207ee9c96c6065fc9da796abfe9bdeab1bb987526da787f26b1d628ce7a") + version("0.15.0", sha256="16a0e781ae5c38585573316813f57562752734639c8c24193f37a8588e120bd7") version("0.14.0", sha256="b4d8afa712c6fc0e2bc6474367d65fad652864b18d0255c5f2c18fd4c6943993") version("0.13.0", sha256="e9cd0546c7bc9539f440273bbad303c97215ccd87403cedb4aa387a313938d57") version("0.12.1", sha256="c33d7707ee30ab5fa8df686a780600343760701023ac0b23355627e1f2f044de") diff --git a/repos/spack_repo/builtin/packages/detray/package.py b/repos/spack_repo/builtin/packages/detray/package.py index fd4a44466f9..3d1d715145a 100644 --- a/repos/spack_repo/builtin/packages/detray/package.py +++ b/repos/spack_repo/builtin/packages/detray/package.py @@ -21,6 +21,8 @@ class Detray(CMakePackage): license("MPL-2.0", checked_by="stephenswat") + version("0.100.1", sha256="5e68986889ae083503b3506015c649a0dcf1eadbeec642bb7749ee91c9fca201") + version("0.100.0", sha256="a34686403807db822dc71f2bc61b9d72e9837a525b22c0b86c6452bf9ec7b0e4") version("0.99.0", sha256="86baa957ec55e8eecb5a9dffe135b88265dd0f88f75bf0068c9068ea304c0fb5") version("0.98.0", sha256="d90c70d2d4bdd9dbd09024ff6990d57f610947c9544afccadf611316de76b2d9") version("0.97.0", sha256="cddee6074b92da9823afe016949c023843d9bc079caddaa7f52900dbefdf64a7") @@ -108,6 +110,7 @@ class Detray(CMakePackage): ) depends_on("actsvg +meta") + depends_on("actsvg @0.4.57:", when="@0.100:") def cmake_args(self): args = [ From ceab89432ae47e49d5a2148bf7d28f44029b72c6 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sun, 3 Aug 2025 19:26:30 -0500 Subject: [PATCH 072/120] apfel: fix cmake version typo (#928) --- repos/spack_repo/builtin/packages/apfel/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/apfel/package.py b/repos/spack_repo/builtin/packages/apfel/package.py index 659c1cd589b..601bb902c4c 100644 --- a/repos/spack_repo/builtin/packages/apfel/package.py +++ b/repos/spack_repo/builtin/packages/apfel/package.py @@ -35,7 +35,7 @@ class Apfel(AutotoolsPackage, CMakePackage): depends_on("fortran", type="build") with when("build_system=cmake"): - depends_on("cmake@03.15:") + depends_on("cmake@3.15:", type="build") extends("python", when="+python") depends_on("swig", when="+python") From 216da059856cef8b3f696506212e66680b3e1eef Mon Sep 17 00:00:00 2001 From: Samuel Fux Date: Mon, 4 Aug 2025 10:30:50 +0200 Subject: [PATCH 073/120] meep: add fftw-api dependency (#778) The configure script of meep assumes that FFTW is available on the system and will fail if it cannot link with -lfftw. Co-authored-by: Massimiliano Culpo --- repos/spack_repo/builtin/packages/meep/package.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/meep/package.py b/repos/spack_repo/builtin/packages/meep/package.py index 5d02308dcf1..2111d31949e 100644 --- a/repos/spack_repo/builtin/packages/meep/package.py +++ b/repos/spack_repo/builtin/packages/meep/package.py @@ -61,6 +61,7 @@ class Meep(AutotoolsPackage): depends_on("automake", type="build", when="@1.21.0:") depends_on("libtool", type="build", when="@1.21.0:") + depends_on("fftw-api") depends_on("blas", when="+blas") depends_on("lapack", when="+lapack") depends_on("harminv", when="+harminv") @@ -83,7 +84,9 @@ class Meep(AutotoolsPackage): def configure_args(self): spec = self.spec - config_args = ["--enable-shared"] + config_args = ["LDFLAGS={0}".format(spec["fftw-api"].libs.ld_flags)] + + config_args.append("--enable-shared") if "+blas" in spec: config_args.append("--with-blas={0}".format(spec["blas"].prefix.lib)) From e1adf7234c36d39270b8379873ec4c7d87ef02d5 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 4 Aug 2025 12:09:33 +0200 Subject: [PATCH 074/120] OpenMPI: can't build with flang 19 and older (#806) Signed-off-by: Adam J. Stewart --- repos/spack_repo/builtin/packages/openmpi/package.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/repos/spack_repo/builtin/packages/openmpi/package.py b/repos/spack_repo/builtin/packages/openmpi/package.py index b08d77cc3be..7437d8489d1 100644 --- a/repos/spack_repo/builtin/packages/openmpi/package.py +++ b/repos/spack_repo/builtin/packages/openmpi/package.py @@ -791,6 +791,9 @@ def patch(self): conflicts("~internal-pmix", "+internal-hwloc") conflicts("~internal-pmix", "+internal-libevent") + # May be able to get working for LLVM 18/19 using FC=flang-new + conflicts("%fortran=clang %llvm@:19") + filter_compiler_wrappers("openmpi/*-wrapper-data*", relative_root="share") extra_install_tests = "examples" From 1a476c7bdcd6c56665a2c9578d5237653c58c4ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Lacroix?= Date: Mon, 4 Aug 2025 22:46:54 +0200 Subject: [PATCH 075/120] udunits: Fix download URL (#931) --- repos/spack_repo/builtin/packages/udunits/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/udunits/package.py b/repos/spack_repo/builtin/packages/udunits/package.py index 07f70179a12..83a40b507e3 100644 --- a/repos/spack_repo/builtin/packages/udunits/package.py +++ b/repos/spack_repo/builtin/packages/udunits/package.py @@ -11,7 +11,7 @@ class Udunits(AutotoolsPackage): """Automated units conversion""" homepage = "https://www.unidata.ucar.edu/software/udunits" - url = "https://artifacts.unidata.ucar.edu/repository/downloads-udunits/2.2.28/udunits-2.2.28.tar.gz" + url = "https://downloads.unidata.ucar.edu/udunits/2.2.28/udunits-2.2.28.tar.gz" maintainers("AlexanderRichert-NOAA") From ddaeed751f506a05207e0d8522c685724125cee1 Mon Sep 17 00:00:00 2001 From: Thomas Bouvier Date: Mon, 4 Aug 2025 23:03:46 +0200 Subject: [PATCH 076/120] py-numpy-indexed: add new package (#934) * py-numpy-indexed: add new package * py-numpy-indexed: add missing dependency * py-numpy-indexed: fix typo * py-numpy-indexed: fix source url * [@spackbot] updating style on behalf of thomas-bouvier --------- Co-authored-by: thomas-bouvier --- .../packages/py_numpy_indexed/package.py | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 repos/spack_repo/builtin/packages/py_numpy_indexed/package.py diff --git a/repos/spack_repo/builtin/packages/py_numpy_indexed/package.py b/repos/spack_repo/builtin/packages/py_numpy_indexed/package.py new file mode 100644 index 00000000000..6bbee2edd83 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_numpy_indexed/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyNumpyIndexed(PythonPackage): + """This package contains functionality for indexed operations on numpy ndarrays, + providing efficient vectorized functionality such as grouping and set operations.""" + + homepage = "https://github.com/EelcoHoogendoorn/Numpy_arraysetops_EP" + url = ( + "https://pypi.io/packages/py2.py3/n/numpy_indexed/numpy_indexed-0.3.7-py2.py3-none-any.whl" + ) + + version("0.3.7", sha256="3e9f8f5ca453e49809618b3717b8ce07551b616a4ae43069c46aaad286386a9e") + + depends_on("py-setuptools", type="build") + + depends_on("python@3.5:", type=("build", "run")) + + depends_on("py-numpy", type=("build", "run")) + depends_on("py-future", type=("build", "run")) From c27b98c74c41e6b1000215d4fc5661aa6841694d Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Mon, 4 Aug 2025 14:05:15 -0700 Subject: [PATCH 077/120] ruff: check for undefined symbols in packages (#924) Playing around with `ruff` a bit more. `ruff` can have a list of `builtins` in `pyproject.toml` that lets us define which symbols can be used without being imported. I added the spack package API, and any globals we're using in packages to this. This enables us to stop ignoring F405 and to get undefined symbol checks working on packages. I think we can use this to check for Spack API violations and to curtail how many magic globals get into `builtin`. I think we can gradually whittle them down now that they are enumerated in one place and checkable with `ruff`. - [x] update `[tool.ruff]` in `pyproject.toml` with `builtins` for everything in the package API plus globals from `build_environment` and various packages and build systems. - [x] fix imports in tests - [x] mark undefined symbols in tests with `noqa` - [x] fix undefined symbols in all remaining packages in `builtin` --------- Signed-off-by: Todd Gamblin Co-authored-by: Harmen Stoppels --- pyproject.toml | 241 +++++++++++++++++- .../builtin/packages/amdsmi/package.py | 1 + .../builtin/packages/arborx/package.py | 2 +- .../builtin/packages/cmake/package.py | 2 +- .../builtin/packages/conduit/package.py | 1 - .../builtin/packages/dftbplus/package.py | 2 +- .../builtin/packages/elsi/package.py | 2 +- .../builtin/packages/fish/package.py | 1 + .../builtin/packages/mgard/package.py | 18 +- .../builtin/packages/mgcfd_op2/package.py | 7 +- .../builtin/packages/open3d/package.py | 1 - .../builtin/packages/paraview/package.py | 45 ++-- .../builtin/packages/pexsi/package.py | 2 + .../spack_repo/builtin/packages/r/package.py | 1 + .../builtin/packages/rmgdft/package.py | 8 +- .../packages/specfem3d_globe/package.py | 5 +- .../builtin/packages/sprng/package.py | 3 +- .../builtin/packages/sw4lite/package.py | 2 + .../builtin/packages/swig/package.py | 2 +- .../builtin/packages/wireshark/package.py | 2 +- .../builtin_mock/packages/cmake/package.py | 1 + .../packages/cmake_client/package.py | 10 +- .../builtin_mock/packages/mpich/package.py | 2 + 23 files changed, 307 insertions(+), 54 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 26d1f536e68..c081cdb8046 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,12 +50,251 @@ line-length = 99 extend-include = ["bin/spack"] extend-exclude = ["lib/spack/external", "*.pyi"] +# This is the Spack package API. We allow these functions to be imported with +# from spack.package import *, and we should update this when the package API +# changes. This also serves to catch the usage of things that are NOT in the +# package API, so that we can avoid having them in builtin. +builtins = [ + # core spack build environment + "configure", + "cscript", + "dso_suffix", + "make_jobs", + "msbuild", + "nmake", + "prefix", + "python", + "python_include", + "python_platlib", + "python_purelib", + "spack_cc", + "spack_cxx", + "spack_f77", + "spack_fc", + "static_to_shared_library", + # defined in packages or build systems, e.g. -- these can be removed over time + "aclocal", + "autoconf", + "autoheader", + "autom4te", + "automake", + "autoreconf", + "autoscan", + "autoupdate", + "bazel", + "cargo", + "cmake", + "ctest", + "gem", + "glibtool", + "glibtoolize", + "gmake", + "go", + "ifnames", + "kentutils_htslib_include_dir", + "kentutils_include_dir", + "kentutils_lib_dir", + "libtool", + "libtoolize", + "lua", + "luarocks", + "make", + "make", + "meson", + "msbuild", + "ninja", + "ninja", + "nmake", + "octave", + "perl", + "perl_lib_dir", + "pip", + "plumed", + "pypy", + "python", + "python_include", + "python_platlib", + "python_purelib", + "qmake", + "R", + "r_lib_dir", + "rake", + "ruby", + "scons", + # v2.0 + "BaseBuilder", + "Builder", + "Dict", + "EnvironmentModifications", + "Executable", + "FileFilter", + "FileList", + "HeaderList", + "InstallError", + "LibraryList", + "List", + "MakeExecutable", + "NoHeadersError", + "NoLibrariesError", + "Optional", + "PackageBase", + "Prefix", + "ProcessError", + "SkipTest", + "Spec", + "Version", + "all_deptypes", + "ancestor", + "any_combination_of", + "auto_or_any_combination_of", + "bash_completion_path", + "build_system_flags", + "build_system", + "cache_extra_test_sources", + "can_access", + "can_splice", + "cd", + "change_sed_delimiter", + "check_outputs", + "conditional", + "conflicts", + "copy_tree", + "copy", + "default_args", + "depends_on", + "determine_number_of_jobs", + "disjoint_sets", + "env_flags", + "env", + "extends", + "filter_compiler_wrappers", + "filter_file", + "find_all_headers", + "find_first", + "find_headers", + "find_libraries", + "find_required_file", + "find_system_libraries", + "find", + "fish_completion_path", + "fix_darwin_install_name", + "force_remove", + "force_symlink", + "get_escaped_text_output", + "inject_flags", + "install_test_root", + "install_tree", + "install", + "is_exe", + "join_path", + "keep_modification_time", + "library_extensions", + "license", + "maintainers", + "makedirs", + "mkdir", + "mkdirp", + "move", + "on_package_attributes", + "patch", + "provides", + "pwd", + "redistribute", + "register_builder", + "remove_directory_contents", + "remove_linked_tree", + "remove", + "removedirs", + "rename", + "requires", + "resource", + "rmtree", + "run_after", + "run_before", + "set_executable", + "set_install_permissions", + "symlink", + "test_part", + "touch", + "tty", + "variant", + "ver", + "version", + "when", + "which_string", + "which", + "working_dir", + "zsh_completion_path", + # v2.1 + "CompilerError", + "SpackError", + # v2.2 + "BuilderWithDefaults", + "ClassProperty", + "CompilerPropertyDetector", + "GenericBuilder", + "HKEY", + "LC_ID_DYLIB", + "LinkTree", + "MachO", + "ModuleChangePropagator", + "Package", + "WindowsRegistryView", + "apply_macos_rpath_fixups", + "classproperty", + "compare_output_file", + "compare_output", + "compile_c_and_execute", + "compiler_spec", + "create_builder", + "dedupe", + "delete_needed_from_elf", + "delete_rpath", + "environment_modifications_for_specs", + "execute_install_time_tests", + "filter_shebang", + "filter_system_paths", + "find_all_libraries", + "find_compilers", + "get_cmake_prefix_path", + "get_effective_jobs", + "get_elf_compat", + "get_path_args_from_module_line", + "get_user", + "has_shebang", + "host_platform", + "is_system_path", + "join_url", + "kernel_version", + "libc_from_dynamic_linker", + "macos_version", + "make_package_test_rpath", + "memoized", + "microarchitecture_flags_from_target", + "microarchitecture_flags", + "module_command", + "parse_dynamic_linker", + "parse_elf", + "path_contains_subdirectory", + "readlink", + "safe_remove", + "sbang_install_path", + "sbang_shebang_line", + "set_env", + "shared_library_suffix", + "spack_script", + "static_library_suffix", + "substitute_version_in_url", + "windows_sfn", +] + + [tool.ruff.format] skip-magic-trailing-comma = false [tool.ruff.lint] extend-select = ["I"] -ignore = ["E731", "E203", "F403", "F405", "F811"] +ignore = ["E731", "E203", "F403", "F811"] [tool.ruff.lint.isort] split-on-trailing-comma = false diff --git a/repos/spack_repo/builtin/packages/amdsmi/package.py b/repos/spack_repo/builtin/packages/amdsmi/package.py index c39e6614d44..3f8ca8dec96 100644 --- a/repos/spack_repo/builtin/packages/amdsmi/package.py +++ b/repos/spack_repo/builtin/packages/amdsmi/package.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re from spack_repo.builtin.build_systems.cmake import CMakePackage diff --git a/repos/spack_repo/builtin/packages/arborx/package.py b/repos/spack_repo/builtin/packages/arborx/package.py index 195be68d27e..099b25b9bd1 100644 --- a/repos/spack_repo/builtin/packages/arborx/package.py +++ b/repos/spack_repo/builtin/packages/arborx/package.py @@ -148,7 +148,7 @@ def test_run_ctest(self): """run ctest tests on the installed package""" cmake_args = [ ".", - cmake_prefix_path, + self.define("CMAKE_PREFIX_PATH", get_cmake_prefix_path()), f"-DCMAKE_CXX_COMPILER={os.environ['CXX']}", self.define( "Kokkos_ROOT", diff --git a/repos/spack_repo/builtin/packages/cmake/package.py b/repos/spack_repo/builtin/packages/cmake/package.py index 8c7de951c95..9b08da1bbf4 100644 --- a/repos/spack_repo/builtin/packages/cmake/package.py +++ b/repos/spack_repo/builtin/packages/cmake/package.py @@ -447,7 +447,7 @@ def run_version_check(self, bin): """Runs and checks output of the installed binary.""" exe_path = join_path(self.prefix.bin, bin) if not os.path.exists(exe_path): - raise SkipTest(f"{exe} is not installed") + raise SkipTest(f"{exe_path} is not installed") exe = which(exe_path) out = exe("--version", output=str.split, error=str.split) diff --git a/repos/spack_repo/builtin/packages/conduit/package.py b/repos/spack_repo/builtin/packages/conduit/package.py index 101e1f89cc2..5628cad442a 100644 --- a/repos/spack_repo/builtin/packages/conduit/package.py +++ b/repos/spack_repo/builtin/packages/conduit/package.py @@ -246,7 +246,6 @@ def url_for_version(self, version): return "https://github.com/LLNL/conduit/releases/download/v{0}/conduit-v{1}-src-with-blt.tar.gz".format( v, v ) - return url #################################################################### # Note: cmake, build, and install stages are handled by CMakePackage diff --git a/repos/spack_repo/builtin/packages/dftbplus/package.py b/repos/spack_repo/builtin/packages/dftbplus/package.py index 7192c182c91..78488fc4fe5 100644 --- a/repos/spack_repo/builtin/packages/dftbplus/package.py +++ b/repos/spack_repo/builtin/packages/dftbplus/package.py @@ -176,7 +176,7 @@ def edit(self, spec, prefix): After that, edit the make.arch to point to the dependencies And the last thing we do here is to set the installdir """ - dircwd = os.getcwd() + dircwd = pwd() makefile = FileFilter("makefile") makefile.filter("ROOT := .*", "ROOT := {0}".format(dircwd)) diff --git a/repos/spack_repo/builtin/packages/elsi/package.py b/repos/spack_repo/builtin/packages/elsi/package.py index f61b4555100..749d36d6e75 100644 --- a/repos/spack_repo/builtin/packages/elsi/package.py +++ b/repos/spack_repo/builtin/packages/elsi/package.py @@ -179,7 +179,7 @@ def cmake_args(self): if self.spec.satisfies("^elpa+cuda"): elpa_gpu_string = "nvidia-gpu" if self.spec.satisfies("^elpa@2021:") else "gpu" - args.append(self.define(ELSI_ELPA_GPU_STRING, elpa_gpu_string)) + args.append(self.define("ELSI_ELPA_GPU_STRING", elpa_gpu_string)) args.append(self.define("INC_PATHS", ";".join(set(inc_paths)))) diff --git a/repos/spack_repo/builtin/packages/fish/package.py b/repos/spack_repo/builtin/packages/fish/package.py index dc61e5d9b3a..c4d803db0fe 100644 --- a/repos/spack_repo/builtin/packages/fish/package.py +++ b/repos/spack_repo/builtin/packages/fish/package.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re from spack_repo.builtin.build_systems.cmake import CMakePackage diff --git a/repos/spack_repo/builtin/packages/mgard/package.py b/repos/spack_repo/builtin/packages/mgard/package.py index 37ae18415e5..37d0f384ea9 100644 --- a/repos/spack_repo/builtin/packages/mgard/package.py +++ b/repos/spack_repo/builtin/packages/mgard/package.py @@ -143,24 +143,28 @@ def cmake_args(self): args = ["-DBUILD_TESTING=OFF"] args.append(self.define_from_variant("MGARD_ENABLE_CUDA", "cuda")) args.append(self.define_from_variant("MGARD_ENABLE_HIP", "rocm")) + if "+cuda" in spec: cuda_arch_list = spec.variants["cuda_arch"].value arch_str = ";".join(cuda_arch_list) if cuda_arch_list[0] != "none": args.append(self.define("CMAKE_CUDA_ARCHITECTURES", arch_str)) - if "+rocm" in spec: - args.append(CMakeBuilder.define_hip_architectures(self)) - if self.spec.satisfies("@:compat-2021-11-12"): - if "+cuda" in self.spec: - if "75" in cuda_arch: + + if self.spec.satisfies("@:compat-2021-11-12"): + if "75" in cuda_arch_list: args.append("-DMGARD_ENABLE_CUDA_OPTIMIZE_TURING=ON") - if "70" in cuda_arch: + if "70" in cuda_arch_list: args.append("-DMGARD_ENABLE_CUDA_OPTIMIZE_VOLTA=ON") - elif self.spec.satisfies("@compat-2022-11-18:"): + + if "+rocm" in spec: + args.append(CMakeBuilder.define_hip_architectures(self)) + + if self.spec.satisfies("@compat-2022-11-18:"): args.append("-DMAXIMUM_DIMENSION=4") # how do we do variants with arbitrary values args.append("-DMGARD_ENABLE_CLI=OFF") # the CLI is busted args.append(self.define_from_variant("MGARD_ENABLE_OPENMP", "openmp")) args.append(self.define_from_variant("MGARD_ENABLE_TIMING", "timing")) args.append(self.define_from_variant("MGARD_ENABLE_SERIAL", "serial")) args.append(self.define_from_variant("MGARD_ENABLE_UNSTRUCTURED", "unstructured")) + return args diff --git a/repos/spack_repo/builtin/packages/mgcfd_op2/package.py b/repos/spack_repo/builtin/packages/mgcfd_op2/package.py index d36ec247bdf..bf7f876e141 100644 --- a/repos/spack_repo/builtin/packages/mgcfd_op2/package.py +++ b/repos/spack_repo/builtin/packages/mgcfd_op2/package.py @@ -63,13 +63,14 @@ def edit(self, spec, prefix): @property def build_targets(self): - if "+mpi" in self.spec: + spec = self.spec + if "+mpi" in spec: builds = ["mpi", "mpi_vec", "mpi_openmp"] - if "+cuda" in self.spec and spec.variants["cuda_arch"].value[0] != "none": + if "+cuda" in spec and spec.variants["cuda_arch"].value[0] != "none": builds.append("mpi_cuda") else: builds = ["seq", "openmp"] - if "+cuda" in self.spec and spec.variants["cuda_arch"].value[0] != "none": + if "+cuda" in spec and spec.variants["cuda_arch"].value[0] != "none": builds.append("cuda") return builds diff --git a/repos/spack_repo/builtin/packages/open3d/package.py b/repos/spack_repo/builtin/packages/open3d/package.py index afd31c072bd..acad63fed3d 100644 --- a/repos/spack_repo/builtin/packages/open3d/package.py +++ b/repos/spack_repo/builtin/packages/open3d/package.py @@ -128,5 +128,4 @@ def test_open3d_import(self): return with working_dir("spack-test"): - python = which(python.path) python("-c", "import open3d") diff --git a/repos/spack_repo/builtin/packages/paraview/package.py b/repos/spack_repo/builtin/packages/paraview/package.py index 7ce6800c5d4..9bcadac6fb9 100644 --- a/repos/spack_repo/builtin/packages/paraview/package.py +++ b/repos/spack_repo/builtin/packages/paraview/package.py @@ -17,6 +17,29 @@ IS_WINDOWS = sys.platform == "win32" +# This is (more or less) the mapping hard-coded in VTK-m logic +# see https://gitlab.kitware.com/vtk/vtk-m/-/blob/v2.1.0/CMake/VTKmDeviceAdapters.cmake?ref_type=tags#L221-247 +supported_cuda_archs = { + "20": "fermi", + "21": "fermi", + "30": "kepler", + "32": "kepler", + "35": "kepler", + "37": "kepler", + "50": "maxwel", + "52": "maxwel", + "53": "maxwel", + "60": "pascal", + "61": "pascal", + "62": "pascal", + "70": "volta", + "72": "volta", + "75": "turing", + "80": "ampere", + "86": "ampere", +} + + class Paraview(CMakePackage, CudaPackage, ROCmPackage): """ParaView is an open-source, multi-platform data analysis and visualization application. This package includes the Catalyst @@ -162,28 +185,6 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): # CUDA ARCH - # This is (more or less) the mapping hard-coded in VTK-m logic - # see https://gitlab.kitware.com/vtk/vtk-m/-/blob/v2.1.0/CMake/VTKmDeviceAdapters.cmake?ref_type=tags#L221-247 - supported_cuda_archs = { - "20": "fermi", - "21": "fermi", - "30": "kepler", - "32": "kepler", - "35": "kepler", - "37": "kepler", - "50": "maxwel", - "52": "maxwel", - "53": "maxwel", - "60": "pascal", - "61": "pascal", - "62": "pascal", - "70": "volta", - "72": "volta", - "75": "turing", - "80": "ampere", - "86": "ampere", - } - # VTK-m and transitively ParaView does not support Tesla Arch for _arch in ("10", "11", "12", "13"): conflicts(f"cuda_arch={_arch}", when="+cuda", msg="ParaView requires cuda_arch >= 20") diff --git a/repos/spack_repo/builtin/packages/pexsi/package.py b/repos/spack_repo/builtin/packages/pexsi/package.py index 3e8c6e1952c..db2cf0d372f 100644 --- a/repos/spack_repo/builtin/packages/pexsi/package.py +++ b/repos/spack_repo/builtin/packages/pexsi/package.py @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os + from spack_repo.builtin.build_systems import cmake, makefile from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.makefile import MakefilePackage diff --git a/repos/spack_repo/builtin/packages/r/package.py b/repos/spack_repo/builtin/packages/r/package.py index 43c4a305dfd..d0495c88459 100644 --- a/repos/spack_repo/builtin/packages/r/package.py +++ b/repos/spack_repo/builtin/packages/r/package.py @@ -3,6 +3,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os +import re from spack_repo.builtin.build_systems.autotools import AutotoolsPackage diff --git a/repos/spack_repo/builtin/packages/rmgdft/package.py b/repos/spack_repo/builtin/packages/rmgdft/package.py index 117ade12b79..6c93e88f014 100644 --- a/repos/spack_repo/builtin/packages/rmgdft/package.py +++ b/repos/spack_repo/builtin/packages/rmgdft/package.py @@ -90,10 +90,6 @@ def build_targets(self): spec = self.spec if "+cuda" in spec: targets = ["rmg-gpu"] - cuda_arch_list = spec.variants["cuda_arch"].value - cuda_arch = cuda_arch_list[0] - if cuda_arch != "none": - args.append("-DCUDA_FLAGS=-arch=sm_{0}".format(cuda_arch)) if "+local_orbitals" in spec: targets.append("rmg-on-gpu") else: @@ -115,6 +111,10 @@ def cmake_args(self): args.append("-DUSE_INTERNAL_PSEUDOPOTENTIALS=0") if "+cuda" in spec: args.append("-DRMG_CUDA_ENABLED=1") + cuda_arch_list = spec.variants["cuda_arch"].value + cuda_arch = cuda_arch_list[0] + if cuda_arch != "none": + args.append("-DCUDA_FLAGS=-arch=sm_{0}".format(cuda_arch)) return args def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/specfem3d_globe/package.py b/repos/spack_repo/builtin/packages/specfem3d_globe/package.py index 186088d9f0d..e67ba9bf4a0 100644 --- a/repos/spack_repo/builtin/packages/specfem3d_globe/package.py +++ b/repos/spack_repo/builtin/packages/specfem3d_globe/package.py @@ -44,13 +44,14 @@ class Specfem3dGlobe(AutotoolsPackage, CudaPackage): def configure_args(self): args = [] + spec = self.spec - if "+cuda" in self.spec: + if "+cuda" in spec: args.append("--with-cuda") args.append("CUDA_LIB={0}".format(spec["cuda"].libs.directories[0])) args.append("CUDA_INC={0}".format(spec["cuda"].prefix.include)) args.append("MPI_INC={0}".format(spec["mpi"].prefix.include)) - if "+opencl" in self.spec: + if "+opencl" in spec: args.append("--with-opencl") args.append("OCL_LIB={0}".format(spec["opencl"].libs.directories[0])) args.append("OCL_INC={0}".format(spec["opencl"].prefix.include)) diff --git a/repos/spack_repo/builtin/packages/sprng/package.py b/repos/spack_repo/builtin/packages/sprng/package.py index f3d400aef8e..7301fe72516 100644 --- a/repos/spack_repo/builtin/packages/sprng/package.py +++ b/repos/spack_repo/builtin/packages/sprng/package.py @@ -2,7 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack.package import * @@ -147,4 +146,4 @@ def listisclose(a, b, rel_tol=1e-09, abs_tol=1.0e-20): raise RuntimeError("sprng install check failed") else: print("test passed") - shutil.rmtree(checkdir) + rmtree(checkdir) diff --git a/repos/spack_repo/builtin/packages/sw4lite/package.py b/repos/spack_repo/builtin/packages/sw4lite/package.py index 698eeacc914..f0c388c9f0c 100644 --- a/repos/spack_repo/builtin/packages/sw4lite/package.py +++ b/repos/spack_repo/builtin/packages/sw4lite/package.py @@ -65,6 +65,8 @@ def build_targets(self): targets.append("ckernel=yes") if "+cuda" in self.spec: + cuda_arch = self.spec.variants["cuda_arch"].value + targets.append("NVCC = {0}".format(self.spec["cuda"].prefix.bin.nvcc)) targets.append("HOSTCOMP = {0}".format(spack_cxx)) targets.append("MPIPATH= {0} ".format(self.spec["mpi"].prefix)) diff --git a/repos/spack_repo/builtin/packages/swig/package.py b/repos/spack_repo/builtin/packages/swig/package.py index 2214d6370f2..7964b5ca5e4 100644 --- a/repos/spack_repo/builtin/packages/swig/package.py +++ b/repos/spack_repo/builtin/packages/swig/package.py @@ -130,7 +130,7 @@ def test_version(self): def test_swiglib(self): """check that the lib dir exists""" - assert os.path.isdir(self._swiglib), f"SWIG library does not exist at '{swiglib}'" + assert os.path.isdir(self._swiglib), f"SWIG library does not exist at '{self._swiglib}'" def test_swig_swg(self): """check that swig.swg exists""" diff --git a/repos/spack_repo/builtin/packages/wireshark/package.py b/repos/spack_repo/builtin/packages/wireshark/package.py index b7ad4fc92e4..fe415bb3d9d 100644 --- a/repos/spack_repo/builtin/packages/wireshark/package.py +++ b/repos/spack_repo/builtin/packages/wireshark/package.py @@ -100,7 +100,7 @@ def cmake_args(self): @run_after("install") def symlink(self): if self.spec.satisfies("platform=darwin"): - link( + symlink( join_path(self.prefix, "Wireshark.app/Contents/MacOS/Wireshark"), self.prefix.bin.wireshark, ) diff --git a/tests/repos/spack_repo/builtin_mock/packages/cmake/package.py b/tests/repos/spack_repo/builtin_mock/packages/cmake/package.py index 9ea777bfaac..59712f88116 100644 --- a/tests/repos/spack_repo/builtin_mock/packages/cmake/package.py +++ b/tests/repos/spack_repo/builtin_mock/packages/cmake/package.py @@ -3,6 +3,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os +import re import sys from spack_repo.builtin.build_systems.generic import Package diff --git a/tests/repos/spack_repo/builtin_mock/packages/cmake_client/package.py b/tests/repos/spack_repo/builtin_mock/packages/cmake_client/package.py index ea18cc1a4cc..dddf55dea42 100644 --- a/tests/repos/spack_repo/builtin_mock/packages/cmake_client/package.py +++ b/tests/repos/spack_repo/builtin_mock/packages/cmake_client/package.py @@ -58,9 +58,9 @@ def do_not_execute(self): self.did_something = True def setup_build_environment(self, spack_env): - spack_cc # Ensure spack module-scope variable is avaiabl + spack_cc # Ensure spack module-scope variable is avaiable check( - from_cmake == "from_cmake", + from_cmake == "from_cmake", # noqa: F405 "setup_build_environment couldn't read global set by cmake.", ) @@ -74,7 +74,7 @@ def setup_dependent_build_environment( ) -> None: spack_cc # Ensure spack module-scope variable is avaiable check( - from_cmake == "from_cmake", + from_cmake == "from_cmake", # noqa: F405 "setup_dependent_build_environment couldn't read global set by cmake.", ) @@ -86,7 +86,7 @@ def setup_dependent_build_environment( def setup_dependent_package(self, module, dspec): spack_cc # Ensure spack module-scope variable is avaiable check( - from_cmake == "from_cmake", + from_cmake == "from_cmake", # noqa: F405 "setup_dependent_package couldn't read global set by cmake.", ) @@ -118,7 +118,7 @@ def install(self, spec, prefix): "Wrong cmake was in environment: %s" % cmake, ) - check(from_cmake == "from_cmake", "Couldn't read global set by cmake.") + check(from_cmake == "from_cmake", "Couldn't read global set by cmake.") # noqa: F405 check( os.environ["from_cmake"] == "from_cmake", diff --git a/tests/repos/spack_repo/builtin_mock/packages/mpich/package.py b/tests/repos/spack_repo/builtin_mock/packages/mpich/package.py index e02cb9415a5..e05436f1ace 100644 --- a/tests/repos/spack_repo/builtin_mock/packages/mpich/package.py +++ b/tests/repos/spack_repo/builtin_mock/packages/mpich/package.py @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re + from spack_repo.builtin.build_systems.generic import Package from spack.package import * From d330735bc5042df99fcc15e12f12f168d61de86d Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Tue, 5 Aug 2025 11:49:20 +0200 Subject: [PATCH 078/120] undeprecate gcc@12.3.0 (#946) this is the default compiler of ubuntu 22.04, which is used in the tutorial. --- .ci/gitlab/stacks/tutorial/spack.yaml | 2 +- repos/spack_repo/builtin/packages/gcc/package.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.ci/gitlab/stacks/tutorial/spack.yaml b/.ci/gitlab/stacks/tutorial/spack.yaml index 6c3646c1c13..1f72ac08306 100644 --- a/.ci/gitlab/stacks/tutorial/spack.yaml +++ b/.ci/gitlab/stacks/tutorial/spack.yaml @@ -21,7 +21,7 @@ spack: - hdf5+hl+mpi ^mpich - trilinos - trilinos +hdf5 ^hdf5+hl+mpi ^mpich - - gcc@12 + - gcc@12.3 - mpileaks - lmod@8.7.18 - environment-modules diff --git a/repos/spack_repo/builtin/packages/gcc/package.py b/repos/spack_repo/builtin/packages/gcc/package.py index 9e103b96e78..8518c9a36ff 100644 --- a/repos/spack_repo/builtin/packages/gcc/package.py +++ b/repos/spack_repo/builtin/packages/gcc/package.py @@ -62,6 +62,9 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): version("4.6.4", sha256="35af16afa0b67af9b8eb15cafb76d2bc5f568540552522f5dc2c88dd45d977e8") version("4.5.4", sha256="eef3f0456db8c3d992cbb51d5d32558190bc14f3bc19383dd93acc27acc6befc") + # Used in the tutorial + version("12.3.0", sha256="949a5d4f99e786421a93b532b22ffab5578de7321369975b91aec97adfda8c3b") + # Deprecated older non-final releases with default_args(deprecated=True): version( @@ -81,9 +84,6 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): version( "12.4.0", sha256="704f652604ccbccb14bdabf3478c9511c89788b12cb3bbffded37341916a9175" ) - version( - "12.3.0", sha256="949a5d4f99e786421a93b532b22ffab5578de7321369975b91aec97adfda8c3b" - ) version( "12.2.0", sha256="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff" ) From 6a8906e68181a6611423eecc1ffdf0c6bc8d9d6a Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Tue, 5 Aug 2025 14:14:06 +0200 Subject: [PATCH 079/120] py-matplotlib: add v3.10.5 (#912) Signed-off-by: Adam J. Stewart --- repos/spack_repo/builtin/packages/py_matplotlib/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/py_matplotlib/package.py b/repos/spack_repo/builtin/packages/py_matplotlib/package.py index 710af78822d..30aedc85d54 100644 --- a/repos/spack_repo/builtin/packages/py_matplotlib/package.py +++ b/repos/spack_repo/builtin/packages/py_matplotlib/package.py @@ -27,6 +27,7 @@ class PyMatplotlib(PythonPackage): license("Apache-2.0") maintainers("adamjstewart", "rgommers") + version("3.10.5", sha256="352ed6ccfb7998a00881692f38b4ca083c691d3e275b4145423704c34c909076") version("3.10.3", sha256="2f82d2c5bb7ae93aaaa4cd42aca65d76ce6376f83304fa3a630b569aca274df0") version("3.10.1", sha256="e8d2d0e3881b129268585bf4765ad3ee73a4591d77b9a18c214ac7e3a79fb2ba") version("3.10.0", sha256="b886d02a581b96704c9d1ffe55709e49b4d2d52709ccebc4be42db856e511278") From a8afaa777db731acbc19c035c362972aad969de8 Mon Sep 17 00:00:00 2001 From: Hubertus van Dam Date: Tue, 5 Aug 2025 14:40:52 +0200 Subject: [PATCH 080/120] fltk: add 1.4.3 (#333) --- repos/spack_repo/builtin/packages/fltk/package.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/repos/spack_repo/builtin/packages/fltk/package.py b/repos/spack_repo/builtin/packages/fltk/package.py index 3c4385c0e0c..d39b59b5d39 100644 --- a/repos/spack_repo/builtin/packages/fltk/package.py +++ b/repos/spack_repo/builtin/packages/fltk/package.py @@ -21,18 +21,23 @@ class Fltk(Package): """ homepage = "https://www.fltk.org/" - url = "https://fltk.org/pub/fltk/1.3.3/fltk-1.3.3-source.tar.gz" + url = "https://github.com/fltk/fltk/archive/refs/tags/release-1.3.3.tar.gz" git = "https://github.com/fltk/fltk.git" version("master", branch="master") - version("1.3.7", sha256="5d2ccb7ad94e595d3d97509c7a931554e059dd970b7b29e6fd84cb70fd5491c6") - version("1.3.3", sha256="f8398d98d7221d40e77bc7b19e761adaf2f1ef8bb0c30eceb7beb4f2273d0d97") + version("1.4.3", sha256="6a11c0bf91b7b193a87a1928c32a953f36d7dd4b65fef3e9d0c40a51882f97a6") + version("1.3.7", sha256="019f65810fb0ea5acac14c852193e8f374e822e6a3034a3c80ed8676f6f3a090") + version("1.3.3", sha256="186bdc4234bea74bce4d47f186d41d35bdd47d48dbe5f829513a2183fbf8f3b2") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("gmake", type="build") + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") depends_on("libx11") + depends_on("freetype", when="@1.4.3:") patch("font.patch", when="@1.3.3") @@ -76,6 +81,8 @@ def install(self, spec, prefix): options.append("--disable-gl") # FLTK needs to be built in-source + autogen = Executable("./autogen.sh") + autogen() configure(*options) make() make("install") From 77e5734ed9740884c73178468e1a3b7507285b2e Mon Sep 17 00:00:00 2001 From: YI Zeping <18586016708@163.com> Date: Tue, 5 Aug 2025 20:42:53 +0800 Subject: [PATCH 081/120] expect: Fix build with %gcc@13: (#530) --- .../builtin/packages/expect/func_proto.patch | 333 ++++++++++++++++++ .../builtin/packages/expect/package.py | 2 + 2 files changed, 335 insertions(+) create mode 100644 repos/spack_repo/builtin/packages/expect/func_proto.patch diff --git a/repos/spack_repo/builtin/packages/expect/func_proto.patch b/repos/spack_repo/builtin/packages/expect/func_proto.patch new file mode 100644 index 00000000000..5d726b962ad --- /dev/null +++ b/repos/spack_repo/builtin/packages/expect/func_proto.patch @@ -0,0 +1,333 @@ +From c5e79881646e792f4f686ff4de5de14b1d1a18d2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 15 Aug 2022 18:25:23 -0700 +Subject: [PATCH] Add prototype to function definitions + +Compilers like clang has started erroring out on implicit-function-declaration +therefore arrange the relevant include files where needed. + +--- + exp_chan.c | 5 +++-- + exp_clib.c | 4 +++- + exp_main_sub.c | 5 +++++ + pty_termios.c | 4 ++++ + 4 files changed, 15 insertions(+), 3 deletions(-) + +diff --git a/exp_chan.c b/exp_chan.c +index 79f486c..50375d3 100644 +--- a/exp_chan.c ++++ b/exp_chan.c +@@ -35,6 +35,7 @@ + #include "exp_prog.h" + #include "exp_command.h" + #include "exp_log.h" ++#include "exp_event.h" /* exp_background_channelhandler */ + #include "tcldbg.h" /* Dbg_StdinMode */ + + extern int expSetBlockModeProc _ANSI_ARGS_((int fd, int mode)); +@@ -631,7 +632,7 @@ expWaitOnOne() { + } + + void +-exp_background_channelhandlers_run_all() ++exp_background_channelhandlers_run_all(void) + { + ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey); + ExpState *esPtr; +@@ -760,7 +761,7 @@ expCreateChannel(interp,fdin,fdout,pid) + } + + void +-expChannelInit() { ++expChannelInit(void) { + ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey); + + tsdPtr->channelCount = 0; +diff --git a/exp_clib.c b/exp_clib.c +index b21fb5d..8f31fc3 100644 +--- a/exp_clib.c ++++ b/exp_clib.c +@@ -9,13 +9,14 @@ would appreciate credit if this program or parts of it are used. + + #include "expect_cf.h" + #include ++#include + #include + #ifdef HAVE_INTTYPES_H + # include + #endif + #include + #include +- ++#include + #ifdef TIME_WITH_SYS_TIME + # include + # include +@@ -1738,6 +1739,7 @@ int exp_getptyslave(); + #define sysreturn(x) return(errno = x, -1) + + void exp_init_pty(); ++void exp_init_tty(); + + /* + The following functions are linked from the Tcl library. They +diff --git a/exp_main_sub.c b/exp_main_sub.c +index bf6c4be..f53b89e 100644 +--- a/exp_main_sub.c ++++ b/exp_main_sub.c +@@ -61,6 +61,11 @@ int exp_cmdlinecmds = FALSE; + int exp_interactive = FALSE; + int exp_buffer_command_input = FALSE;/* read in entire cmdfile at once */ + int exp_fgets(); ++int exp_tty_cooked_echo( ++ Tcl_Interp *interp, ++ exp_tty *tty_old, ++ int *was_raw, ++ int *was_echo); + + Tcl_Interp *exp_interp; /* for use by signal handlers who can't figure out */ + /* the interpreter directly */ +diff --git a/pty_termios.c b/pty_termios.c +index c605b23..80ed5e7 100644 +--- a/pty_termios.c ++++ b/pty_termios.c +@@ -7,6 +7,7 @@ would appreciate credit if you use this file or parts of it. + + */ + ++#include /* openpty */ + #include + #include + +@@ -15,6 +16,9 @@ would appreciate credit if you use this file or parts of it. + #endif + + #include "expect_cf.h" ++#include "tclInt.h" ++ ++extern char * expErrnoMsg _ANSI_ARGS_((int)); + + /* + The following functions are linked from the Tcl library. They +-- +2.37.2 + +diff --git a/exp_chan.c b/exp_chan.c +index c92e26b6fbd02305..944200a63b102672 100644 +--- a/exp_chan.c ++++ b/exp_chan.c +@@ -60,7 +60,7 @@ void exp_background_channelhandler _ANSI_ARGS_((ClientData, + + Tcl_ChannelType expChannelType = { + "exp", /* Type name. */ +- ExpBlockModeProc, /* Set blocking/nonblocking mode.*/ ++ TCL_CHANNEL_VERSION_2, + ExpCloseProc, /* Close proc. */ + ExpInputProc, /* Input proc. */ + ExpOutputProc, /* Output proc. */ +@@ -70,6 +70,7 @@ Tcl_ChannelType expChannelType = { + ExpWatchProc, /* Initialize notifier. */ + ExpGetHandleProc, /* Get OS handles out of channel. */ + NULL, /* Close2 proc */ ++ ExpBlockModeProc, /* Set blocking/nonblocking mode.*/ + }; + + typedef struct ThreadSpecificData { +Avoid calling exit without declaring the function. + +Add missing include for memcpy. + +Use AC_TYPE_SIGNAL to fix REARM_SIG check. Add missing includes. + +Fix various implicit int return types of main. + +diff --git a/configure.in b/configure.in +index 51558fa14d2bcf7e..055c88fbd8797eaa 100755 +--- a/configure.in ++++ b/configure.in +@@ -452,7 +452,11 @@ AC_CHECK_FUNC(siglongjmp, AC_DEFINE(HAVE_SIGLONGJMP)) + # because Unixware 2.0 handles it specially and refuses to compile + # autoconf's automatic test that is a call with no arguments + AC_MSG_CHECKING([for memcpy]) +-AC_TRY_LINK(,[ ++AC_TRY_LINK([ ++#ifdef HAVE_STRING_H ++#include ++#endif ++],[ + char *s1, *s2; + memcpy(s1,s2,0); + ], +@@ -469,6 +473,7 @@ memcpy(s1,s2,0); + AC_MSG_CHECKING([if WNOHANG requires _POSIX_SOURCE]) + AC_TRY_RUN([ + #include ++int + main() { + #ifndef WNOHANG + return 0; +@@ -489,6 +494,7 @@ rm -rf wnohang + AC_TRY_RUN([ + #include + #include ++int + main() { + #ifdef WNOHANG + FILE *fp = fopen("wnohang","w"); +@@ -527,16 +533,21 @@ else + AC_DEFINE(SELECT_MASK_TYPE, fd_set) + fi + +-dnl # Check for the data type of the function used in signal(). This +-dnl # must be before the test for rearming. +-dnl # echo checking return type of signal handlers +-dnl AC_HEADER_EGREP([(void|sighandler_t).*signal], signal.h, retsigtype=void,AC_DEFINE(RETSIGTYPE, int) retsigtype=int) ++AC_TYPE_SIGNAL + + # FIXME: check if alarm exists + AC_MSG_CHECKING([if signals need to be re-armed]) + AC_TRY_RUN([ + #include +-#define RETSIGTYPE $retsigtype ++#ifdef HAVE_STDLIB_H ++# include ++#endif ++#ifdef HAVE_UNISTD_H ++# include ++#endif ++#ifndef NO_SYS_WAIT_H ++# include ++#endif + + int signal_rearms = 0; + +@@ -553,6 +564,7 @@ int n; + signal_rearms++; + } + ++int + main() + { + signal(SIGINT,parent_sigint_handler); +@@ -714,10 +726,11 @@ fi + AC_MSG_CHECKING([for struct sgttyb]) + AC_TRY_RUN([ + #include ++int + main() + { + struct sgttyb tmp; +- exit(0); ++ return 0; + }], + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SGTTYB) +@@ -738,10 +751,11 @@ if test $mach -eq 0 ; then + # pty_termios.c is set up to handle pty_termio. + AC_MSG_CHECKING([for struct termio]) + AC_TRY_RUN([#include ++ int + main() + { + struct termio tmp; +- exit(0); ++ return 0; + }], + AC_DEFINE(HAVE_TERMIO) + PTY_TYPE=termios +@@ -760,10 +774,11 @@ if test $mach -eq 0 ; then + # include + # endif + # include ++ int + main() + { + struct termios tmp; +- exit(0); ++ return 0; + }], + AC_DEFINE(HAVE_TERMIOS) + PTY_TYPE=termios +@@ -782,6 +797,7 @@ AC_TRY_RUN([ + #include + #endif + #include ++int + main() { + #if defined(TCGETS) || defined(TCGETA) + return 0; +@@ -804,6 +820,7 @@ AC_TRY_RUN([ + #include + #endif + #include ++int + main() { + #ifdef TIOCGWINSZ + return 0; +@@ -823,6 +840,7 @@ main() { + AC_MSG_CHECKING([for Cray-style ptys]) + SETUID=":" + AC_TRY_RUN([ ++int + main(){ + #ifdef CRAY + return 0; +@@ -878,12 +896,13 @@ AC_MSG_CHECKING([for SV-style timezone]) + AC_TRY_RUN([ + extern char *tzname[2]; + extern int daylight; ++int + main() + { + int *x = &daylight; + char **y = tzname; + +- exit(0); ++ return 0; + }], + AC_DEFINE(HAVE_SV_TIMEZONE) + AC_MSG_RESULT(yes), +diff --git a/tclconfig/tcl.m4 b/tclconfig/tcl.m4 +index 0689cab3da994068..ebe839e5553ba520 100644 +--- a/tclconfig/tcl.m4 ++++ b/tclconfig/tcl.m4 +@@ -2400,7 +2400,7 @@ AC_DEFUN([TEA_TIME_HANDLER], [ + AC_TRY_COMPILE([#include ], + [extern long timezone; + timezone += 1; +- exit (0);], ++ return 0;], + tcl_cv_timezone_long=yes, tcl_cv_timezone_long=no)]) + if test $tcl_cv_timezone_long = yes ; then + AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?]) +@@ -2412,7 +2412,7 @@ AC_DEFUN([TEA_TIME_HANDLER], [ + AC_TRY_COMPILE([#include ], + [extern time_t timezone; + timezone += 1; +- exit (0);], ++ return 0;], + tcl_cv_timezone_time=yes, tcl_cv_timezone_time=no)]) + if test $tcl_cv_timezone_time = yes ; then + AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?]) +@@ -2452,17 +2452,17 @@ AC_DEFUN([TEA_BUGGY_STRTOD], [ + double value; + value = strtod(infString, &term); + if ((term != infString) && (term[-1] == 0)) { +- exit(1); ++ return 1; + } + value = strtod(nanString, &term); + if ((term != nanString) && (term[-1] == 0)) { +- exit(1); ++ return 1; + } + value = strtod(spaceString, &term); + if (term == (spaceString+1)) { +- exit(1); ++ return 1; + } +- exit(0); ++ return 0; + }], tcl_cv_strtod_buggy=ok, tcl_cv_strtod_buggy=buggy, + tcl_cv_strtod_buggy=buggy)]) + if test "$tcl_cv_strtod_buggy" = buggy; then diff --git a/repos/spack_repo/builtin/packages/expect/package.py b/repos/spack_repo/builtin/packages/expect/package.py index bf721fd93ea..7d795d5dd03 100644 --- a/repos/spack_repo/builtin/packages/expect/package.py +++ b/repos/spack_repo/builtin/packages/expect/package.py @@ -38,6 +38,8 @@ class Expect(AutotoolsPackage): patch("xcode_12.patch", when="%apple-clang@12:") patch("expect_detect_tcl_private_header_os_x_mountain_lion.patch", when="@5.45:5.45.0") + # https://sourceforge.net/p/expect/patches/24/ + patch("func_proto.patch", when="%gcc@13:") def configure_args(self): spec = self.spec From 06fd537e47144eec8a1f47c7cae562b65f710515 Mon Sep 17 00:00:00 2001 From: Derek Ryan Strong Date: Tue, 5 Aug 2025 05:43:31 -0700 Subject: [PATCH 082/120] libssh2: deprecate older versions due to CVEs (#446) --- .../builtin/packages/libssh2/package.py | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/repos/spack_repo/builtin/packages/libssh2/package.py b/repos/spack_repo/builtin/packages/libssh2/package.py index d960f3293a5..f0e7db2f9c8 100644 --- a/repos/spack_repo/builtin/packages/libssh2/package.py +++ b/repos/spack_repo/builtin/packages/libssh2/package.py @@ -18,14 +18,22 @@ class Libssh2(AutotoolsPackage, CMakePackage): license("BSD-3-Clause") version("1.11.1", sha256="d9ec76cbe34db98eec3539fe2c899d26b0c837cb3eb466a56b0f109cabf658f7") - version("1.11.0", sha256="3736161e41e2693324deb38c26cfdc3efe6209d634ba4258db1cecff6a5ad461") - version("1.10.0", sha256="2d64e90f3ded394b91d3a2e774ca203a4179f69aebee03003e5a6fa621e41d51") - version("1.9.0", sha256="d5fb8bd563305fd1074dda90bd053fb2d29fc4bce048d182f96eaa466dfadafd") - version("1.8.0", sha256="39f34e2f6835f4b992cafe8625073a88e5a28ba78f83e8099610a7b3af4676d4") - version("1.7.0", sha256="e4561fd43a50539a8c2ceb37841691baf03ecb7daf043766da1b112e4280d584") - version( - "1.4.3", sha256="eac6f85f9df9db2e6386906a6227eb2cd7b3245739561cad7d6dc1d5d021b96d" - ) # CentOS7 + + with default_args(deprecated=True): + # https://nvd.nist.gov/vuln/detail/CVE-2023-48795 + version( + "1.11.0", sha256="3736161e41e2693324deb38c26cfdc3efe6209d634ba4258db1cecff6a5ad461" + ) + version( + "1.10.0", sha256="2d64e90f3ded394b91d3a2e774ca203a4179f69aebee03003e5a6fa621e41d51" + ) + version("1.9.0", sha256="d5fb8bd563305fd1074dda90bd053fb2d29fc4bce048d182f96eaa466dfadafd") + # https://nvd.nist.gov/vuln/detail/CVE-2019-3863 + version("1.8.0", sha256="39f34e2f6835f4b992cafe8625073a88e5a28ba78f83e8099610a7b3af4676d4") + version("1.7.0", sha256="e4561fd43a50539a8c2ceb37841691baf03ecb7daf043766da1b112e4280d584") + version( + "1.4.3", sha256="eac6f85f9df9db2e6386906a6227eb2cd7b3245739561cad7d6dc1d5d021b96d" + ) # CentOS7 build_system("autotools", "cmake", default="autotools") From e2702ef1d499f4df8266e1a363a74b8006c0acf5 Mon Sep 17 00:00:00 2001 From: Alexandre DENIS Date: Tue, 5 Aug 2025 14:48:33 +0200 Subject: [PATCH 083/120] new packages: nmad, padicotm, pioman, puk, pukabi (#289) --- .../builtin/packages/nmad/package.py | 154 ++++++++++++++++++ .../builtin/packages/padicotm/package.py | 116 +++++++++++++ .../builtin/packages/pioman/package.py | 90 ++++++++++ .../builtin/packages/puk/package.py | 87 ++++++++++ .../builtin/packages/pukabi/package.py | 89 ++++++++++ 5 files changed, 536 insertions(+) create mode 100644 repos/spack_repo/builtin/packages/nmad/package.py create mode 100644 repos/spack_repo/builtin/packages/padicotm/package.py create mode 100644 repos/spack_repo/builtin/packages/pioman/package.py create mode 100644 repos/spack_repo/builtin/packages/puk/package.py create mode 100644 repos/spack_repo/builtin/packages/pukabi/package.py diff --git a/repos/spack_repo/builtin/packages/nmad/package.py b/repos/spack_repo/builtin/packages/nmad/package.py new file mode 100644 index 00000000000..6d7d5f36030 --- /dev/null +++ b/repos/spack_repo/builtin/packages/nmad/package.py @@ -0,0 +1,154 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack.package import * +from spack_repo.builtin.packages.puk.package import Puk + + +class Nmad(AutotoolsPackage): + """NewMadeleine communication library. + + NewMadeleine is a communication library for high-performance + networks, with its native interface as well as an MPI + interface. It comes with an optimizing scheduler that applies + optimization strategies on the flow of packets. It is fully + multi-threaded and very scalable. Its MPI implementation MadMPI + fully supports the MPI_THREAD_MULTIPLE multi-threading level. + """ + + homepage = "https://pm2.gitlabpages.inria.fr/newmadeleine/" + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-2025-03-18.tar.gz" + list_url = "https://pm2.gitlabpages.inria.fr/releases/" + git = "git@gitlab.inria.fr:pm2/pm2.git" + + maintainers("a-denis") + license("GPL-2.0-or-later", checked_by="a-denis") + + def url_for_version(self, version): + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-{0}.tar.gz" + return url.format(version) + + version("master", branch="master") + version( + "2025-03-18", sha256="2d0208809dd17bac4fd7e7f97b22e2240b925d8828b9ab5dc5f435e58ff97010" + ) + version( + "2024-11-21", sha256="76da169bbb9720a13be1f750480e1a7d6510830163878852876932639879d632" + ) + version( + "2024-07-12", sha256="ea9bb91b213950a52eb99d787110905d45ed02954ea9133596d690db5be0c31b" + ) + version( + "2022-05-31", sha256="afd19809a5a520a477ab596f951bbde3209868ab16febbc246592e8aed20c3ca" + ) + version( + "2021-05-21", sha256="6a207b032e623b8be0196a42dcaf4311bfe45ede2e044bd47611b6610c04c61e" + ) + + variant("optimize", default=True, description="Build in optimized mode") + variant("debug", default=False, description="Build in debug mode") + variant("asan", default=False, description="Build with Address Sanitizer (ASAN)") + variant("mpi", default=True, description="Enable builtin MPI implementation MadMPI") + variant("pukabi", default=False, description="Build with PukABI") + variant("pioman", default=True, description="Build with pioman") + variant("fortran", default=True, description="Enable FORTRAN support in MadMPI") + variant("profile", default=False, description="Enable nmad stats & profiling") + variant("ibverbs", default=True, description="use InfiniBand ibverbs") + variant("psm", default=False, description="use Intel Performance Scaled Messaging (PSM)") + variant("psm2", default=False, description="use Intel Performance Scaled Messaging 2 (PSM2)") + variant("ofi", default=True, description="use OpenFabric Interface (libfabric)") + variant("ucx", default=True, description="use Unified Communication X Library (ucx)") + variant("craypmi", default=False, description="use Cray PMI support") + variant("pmix", default=True, description="use slurm PMIx support") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build", when="+fortran") + depends_on("pkgconfig", type="build") + depends_on("autoconf@2.69:", type="build") + depends_on("gmake", type="build") + + depends_on("hwloc") + depends_on("psm", when="+psm") + depends_on("opa-psm2", when="+psm2") + depends_on("libfabric", when="+ofi") + depends_on("cray-pmi", when="+craypmi") + depends_on("pmix", when="+pmix") + depends_on("ucx", when="+ucx") + requires("+pukabi", when="+ibverbs", msg="ibverbs rcache requires pukabi") + + for v in Puk.versions: + depends_on(f"puk@{v}", when=f"@{v}") + depends_on(f"pukabi@{v}", when=f"@{v} +pukabi") + depends_on(f"pioman@{v}", when=f"@{v} +pioman") + depends_on(f"padicotm@{v}", when=f"@{v}") + + depends_on("puk") + depends_on("puk+asan", when="+asan") + depends_on("pukabi+mem", when="+pukabi") + depends_on("pioman", when="+pioman") + depends_on("padicotm~pioman", when="~pioman", type=("build", "link", "run")) + depends_on("padicotm+pioman", when="+pioman", type=("build", "link", "run")) + depends_on("padicotm+ibverbs", when="+ibverbs") + depends_on("padicotm+psm", when="+psm") + depends_on("padicotm+psm2", when="+psm2") + depends_on("padicotm+ofi", when="+ofi") + depends_on("padicotm+craypmi", when="+craypmi") + depends_on("padicotm+pmix", when="+pmix") + depends_on("padicotm+pukabi", when="+pukabi") + depends_on("padicotm~pukabi", when="~pukabi") + + conflicts("platform=darwin", msg="Darwin is not supported.") + conflicts("platform=windows", msg="Windows is not supported.") + conflicts("%gcc@:5", msg="Requires at least gcc 6.") + conflicts("%gcc@14:", when="@:2024-07-12", msg="Older release do not support gcc >= 14") + conflicts("%clang", when="+fortran", msg="No FORTRAN support with clang.") + + provides("mpi", when="+mpi") + + configure_directory = "nmad" + build_directory = "build" + + def autoreconf(self, spec, prefix): + with working_dir(self.configure_directory): + Executable("./autogen.sh")() + + def configure_args(self): + config_args = [ + "--without-pukabi", # no pukabi for now in spack + "--disable-sampling", # sampling currently broken; don"t attempt to use it + "--with-padicotm", # always use PadicoTM + ] + config_args += self.enable_or_disable("optimize") + config_args += self.enable_or_disable("debug") + config_args += self.enable_or_disable("asan") + config_args += self.enable_or_disable("mpi") + config_args += self.enable_or_disable("fortran") + config_args += self.enable_or_disable("profile") + config_args += self.with_or_without("pukabi") + config_args += self.with_or_without("pioman") + config_args += self.with_or_without("ibverbs") + config_args += self.with_or_without("psm") + config_args += self.with_or_without("psm2") + config_args += self.with_or_without("ofi") + config_args += self.with_or_without("ucx") + config_args += self.with_or_without("ibverbs") + config_args += self.with_or_without("pmix") + config_args += self.with_or_without("pmi2", variant="craypmi") + return config_args + + def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + if "+mpi" in self.spec: + spack_env.set("MPICC", join_path(self.prefix.bin, "mpicc.madmpi")) + spack_env.set("MPICXX", join_path(self.prefix.bin, "mpicxx.madmpi")) + spack_env.set("MPIF77", join_path(self.prefix.bin, "mpif77.madmpi")) + spack_env.set("MPIF90", join_path(self.prefix.bin, "mpif90.madmpi")) + + def setup_dependent_package(self, module, dependent_spec): + if "+mpi" in self.spec: + self.spec.mpicc = join_path(self.prefix.bin, "mpicc.madmpi") + self.spec.mpicxx = join_path(self.prefix.bin, "mpicxx.madmpi") + self.spec.mpifc = join_path(self.prefix.bin, "mpif90.madmpi") + self.spec.mpif77 = join_path(self.prefix.bin, "mpif77.madmpi") diff --git a/repos/spack_repo/builtin/packages/padicotm/package.py b/repos/spack_repo/builtin/packages/padicotm/package.py new file mode 100644 index 00000000000..e82337c41ed --- /dev/null +++ b/repos/spack_repo/builtin/packages/padicotm/package.py @@ -0,0 +1,116 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack.package import * +from spack_repo.builtin.packages.puk.package import Puk + + +class Padicotm(AutotoolsPackage): + """PadicoTM communication framework and launcher. + + PadicoTM is the runtime infrastructure for the Padico software + environment for computational grids. It is composed of a core + which provides a high-performance framework for networking and + multi-threading, on top of which the abstraction layer is built + with freely and dynamically assembled components. Various + communications methods are embedded in components that the user + may assemble to get the needed communication stack. + """ + + homepage = "https://pm2.gitlabpages.inria.fr/PadicoTM/" + url = "https://pm2.gitlabpages.inria.fr/releases/" + list_url = "https://pm2.gitlabpages.inria.fr/releases/" + git = "https://gitlab.inria.fr/pm2/pm2.git" + + maintainers("a-denis") + license("GPL-2.0-or-later", checked_by="a-denis") + + def url_for_version(self, version): + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-{0}.tar.gz" + return url.format(version) + + version("master", branch="master") + version( + "2025-03-18", sha256="2d0208809dd17bac4fd7e7f97b22e2240b925d8828b9ab5dc5f435e58ff97010" + ) + version( + "2024-11-21", sha256="76da169bbb9720a13be1f750480e1a7d6510830163878852876932639879d632" + ) + version( + "2024-07-12", sha256="ea9bb91b213950a52eb99d787110905d45ed02954ea9133596d690db5be0c31b" + ) + version( + "2022-05-31", sha256="afd19809a5a520a477ab596f951bbde3209868ab16febbc246592e8aed20c3ca" + ) + version( + "2021-05-21", sha256="6a207b032e623b8be0196a42dcaf4311bfe45ede2e044bd47611b6610c04c61e" + ) + + variant("optimize", default=True, description="Build in optimized mode") + variant("debug", default=False, description="Build in debug mode") + variant("asan", default=False, description="Build with Address Sanitizer (ASAN)") + variant("pukabi", default=False, description="Build with PukABI") + variant("pioman", default=True, description="use pioman I/O manager") + variant("ibverbs", default=True, description="use InfiniBand ibverbs") + variant("psm", default=False, description="use Intel Performance Scaled Messaging (PSM)") + variant("psm2", default=False, description="use Intel Performance Scaled Messaging 2 (PSM2)") + variant("ofi", default=True, description="use OpenFabric Interface (libfabric)") + variant("craypmi", default=False, description="use Cray PMI support") + variant("pmix", default=True, description="use slurm PMIx support") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("pkgconfig", type="build") + depends_on("autoconf@2.69:", type="build") + depends_on("gmake", type="build") + + depends_on("hwloc@2.0.0:", type=("build", "link", "run")) + depends_on("zlib") + depends_on("lz4") + depends_on("rdma-core", when="+ibverbs") + depends_on("psm", when="+psm") + depends_on("opa-psm2", when="+psm2") + depends_on("libfabric", when="+ofi") + depends_on("cray-pmi", when="+craypmi") + depends_on("pmix", when="+pmix") + requires("+pukabi", when="+ibverbs", msg="ibverbs rcache requires pukabi") + + for v in Puk.versions: + depends_on(f"puk@{v}", when=f"@{v}") + depends_on(f"pukabi@{v}", when=f"@{v} +pukabi") + depends_on(f"pioman@{v}", when=f"@{v} +pioman") + + depends_on("puk") + depends_on("pukabi", when="+pukabi") + depends_on("pioman", when="+pioman") + depends_on("puk+asan", when="+asan") + + conflicts("+pukabi", when="+asan", msg="PukABI and ASAN conflicts for LD_PRELOAD") + conflicts("platform=darwin", msg="Darwin is not supported.") + conflicts("platform=windows", msg="Windows is not supported.") + conflicts("%gcc@:5", msg="Requires at least gcc 6.") + conflicts("%gcc@14:", when="@:2024-07-12", msg="Older release do not support gcc >= 14") + + configure_directory = "PadicoTM" + build_directory = "build" + + def autoreconf(self, spec, prefix): + with working_dir(self.configure_directory): + Executable("./autogen.sh")() + + def configure_args(self): + config_args = ["--without-portals4"] # portals4 not packaged in spack + config_args += self.enable_or_disable("optimize") + config_args += self.enable_or_disable("debug") + config_args += self.enable_or_disable("asan") + config_args += self.with_or_without("pukabi") + config_args += self.with_or_without("pioman") + config_args += self.with_or_without("psm") + config_args += self.with_or_without("psm2") + config_args += self.with_or_without("ofi") + config_args += self.with_or_without("ibverbs") + config_args += self.with_or_without("pmix") + config_args += self.with_or_without("pmi2", variant="craypmi") + return config_args diff --git a/repos/spack_repo/builtin/packages/pioman/package.py b/repos/spack_repo/builtin/packages/pioman/package.py new file mode 100644 index 00000000000..bd7b4dcf9fd --- /dev/null +++ b/repos/spack_repo/builtin/packages/pioman/package.py @@ -0,0 +1,90 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack.package import * +from spack_repo.builtin.packages.puk.package import Puk + + +class Pioman(AutotoolsPackage): + """PIOMan I/O manager. + + PIOMan is a generic I/O manager, designed to deal with + interactions between communication and multi-threading. It + guarantees a good level of reactivity, is able to automatically + choose between active polling and blocking calls depending on the + context, and may offload I/O requests to idle cores when availble + to handle multiple requests in parallel and overlap communication + and computation. + """ + + homepage = "https://pm2.gitlabpages.inria.fr/pioman/" + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-2025-03-18.tar.gz" + list_url = "https://pm2.gitlabpages.inria.fr/releases/" + git = "https://gitlab.inria.fr/pm2/pm2.git" + + maintainers("a-denis") + license("GPL-2.0-or-later", checked_by="a-denis") + + def url_for_version(self, version): + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-{0}.tar.gz" + return url.format(version) + + version("master", branch="master") + version( + "2025-03-18", sha256="2d0208809dd17bac4fd7e7f97b22e2240b925d8828b9ab5dc5f435e58ff97010" + ) + version( + "2024-11-21", sha256="76da169bbb9720a13be1f750480e1a7d6510830163878852876932639879d632" + ) + version( + "2024-07-12", sha256="ea9bb91b213950a52eb99d787110905d45ed02954ea9133596d690db5be0c31b" + ) + version( + "2022-05-31", sha256="afd19809a5a520a477ab596f951bbde3209868ab16febbc246592e8aed20c3ca" + ) + version( + "2021-05-21", sha256="6a207b032e623b8be0196a42dcaf4311bfe45ede2e044bd47611b6610c04c61e" + ) + + variant("optimize", default=True, description="Build in optimized mode") + variant("debug", default=False, description="Build in debug mode") + variant("asan", default=False, description="Build with Address Sanitizer (ASAN)") + variant("pthread", default=True, description="use pthreads") + + depends_on("c", type="build") + depends_on("pkgconfig", type="build") + depends_on("autoconf@2.69:", type="build") + depends_on("gmake", type="build") + + depends_on("hwloc", type=("build", "link", "run")) + + for v in Puk.versions: + depends_on(f"puk@{v}", when=f"@{v}") + + depends_on("puk") + depends_on("puk+asan", when="+asan") + + conflicts("platform=darwin", msg="Darwin is not supported.") + conflicts("platform=windows", msg="Windows is not supported.") + conflicts("%gcc@:5", msg="Requires at least gcc 6.") + + configure_directory = "pioman" + build_directory = "build" + + def autoreconf(self, spec, prefix): + with working_dir(self.configure_directory): + Executable("./autogen.sh")() + + def configure_args(self): + config_args = [ + "--with-hwloc", # always use hwloc + "--without-gtg", # no gtg package in spack + "--without-simgrid", # no simgrid support in spack for now + ] + config_args += self.enable_or_disable("optimize") + config_args += self.enable_or_disable("debug") + config_args += self.enable_or_disable("asan") + config_args += self.with_or_without("pthread") + return config_args diff --git a/repos/spack_repo/builtin/packages/puk/package.py b/repos/spack_repo/builtin/packages/puk/package.py new file mode 100644 index 00000000000..9f9a91bb218 --- /dev/null +++ b/repos/spack_repo/builtin/packages/puk/package.py @@ -0,0 +1,87 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack.package import * + + +class Puk(AutotoolsPackage): + """Puk: Padico micro-kernel. + + Puk is the foundation module of PadicoTM. Its task is to manage + modules (loading, running and unloading). It comes with a powerful + component model used to assemble a communication stack. + """ + + homepage = "https://pm2.gitlabpages.inria.fr/" + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-2025-03-18.tar.gz" + list_url = "https://pm2.gitlabpages.inria.fr/releases/" + git = "https://gitlab.inria.fr/pm2/pm2.git" + + maintainers("a-denis") + license("GPL-2.0-or-later", checked_by="a-denis") + + def url_for_version(self, version): + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-{0}.tar.gz" + return url.format(version) + + version("master", branch="master") + version( + "2025-03-18", sha256="2d0208809dd17bac4fd7e7f97b22e2240b925d8828b9ab5dc5f435e58ff97010" + ) + version( + "2024-11-21", sha256="76da169bbb9720a13be1f750480e1a7d6510830163878852876932639879d632" + ) + version( + "2024-07-12", sha256="ea9bb91b213950a52eb99d787110905d45ed02954ea9133596d690db5be0c31b" + ) + version( + "2022-05-31", sha256="afd19809a5a520a477ab596f951bbde3209868ab16febbc246592e8aed20c3ca" + ) + version( + "2021-05-21", sha256="6a207b032e623b8be0196a42dcaf4311bfe45ede2e044bd47611b6610c04c61e" + ) + + variant("optimize", default=True, description="Build in optimized mode") + variant("debug", default=False, description="Build in debug mode") + variant("trace", default=False, description="enable Puk traces") + variant("profile", default=False, description="enable Puk memory profiling") + variant("asan", default=False, description="Build with Address Sanitizer (ASAN)") + variant("builtin", default=False, description="Build all modules as builtin") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("autoconf@2.69:", type="build") + depends_on("pkgconfig", type="build") + depends_on("gmake", type="build") + + depends_on("bash") + depends_on("expat@2.1.0:") + depends_on("gdb", when="+debug", type=("build", "run")) + depends_on("valgrind", when="+debug", type=("build", "run")) + + conflicts("platform=darwin", msg="Darwin is not supported.") + conflicts("platform=windows", msg="Windows is not supported.") + conflicts("%gcc@:5", msg="Requires at least gcc 6.") + conflicts("%gcc@14:", when="@:2024-07-12", msg="Older release do not support gcc >= 14") + + configure_directory = "Puk" + build_directory = "build" + + def autoreconf(self, spec, prefix): + with working_dir(self.configure_directory): + Executable("./autogen.sh")() + + def configure_args(self): + config_args = [ + "--enable-lfqueue=nblfq", # use nblfq by default for production + "--without-simgrid", # no simgrid support with spack for now + ] + config_args += self.enable_or_disable("optimize") + config_args += self.enable_or_disable("debug") + config_args += self.enable_or_disable("asan") + config_args += self.enable_or_disable("trace") + config_args += self.enable_or_disable("profile") + config_args += self.enable_or_disable("builtin") + return config_args diff --git a/repos/spack_repo/builtin/packages/pukabi/package.py b/repos/spack_repo/builtin/packages/pukabi/package.py new file mode 100644 index 00000000000..c15abddeea9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/pukabi/package.py @@ -0,0 +1,89 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack.package import * +from spack_repo.builtin.packages.puk.package import Puk + + +class Pukabi(AutotoolsPackage): + """PukABI: ABI manager for PadicoTM. + + PukABI is an ABI manager used by PadicoTM and NewMadeleine. It is + able to intercept symbols of the libc, so as to install a virtual + version or to add hooks. + """ + + homepage = "https://pm2.gitlabpages.inria.fr/" + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-2025-03-18.tar.gz" + list_url = "https://pm2.gitlabpages.inria.fr/releases/" + git = "https://gitlab.inria.fr/pm2/pm2.git" + + maintainers("a-denis") + license("GPL-2.0-or-later", checked_by="a-denis") + + def url_for_version(self, version): + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-{0}.tar.gz" + return url.format(version) + + version("master", branch="master") + version( + "2025-03-18", sha256="2d0208809dd17bac4fd7e7f97b22e2240b925d8828b9ab5dc5f435e58ff97010" + ) + version( + "2024-11-21", sha256="76da169bbb9720a13be1f750480e1a7d6510830163878852876932639879d632" + ) + version( + "2024-07-12", sha256="ea9bb91b213950a52eb99d787110905d45ed02954ea9133596d690db5be0c31b" + ) + version( + "2022-05-31", sha256="afd19809a5a520a477ab596f951bbde3209868ab16febbc246592e8aed20c3ca" + ) + version( + "2021-05-21", sha256="6a207b032e623b8be0196a42dcaf4311bfe45ede2e044bd47611b6610c04c61e" + ) + + variant("optimize", default=True, description="Build in optimized mode") + variant("debug", default=False, description="Build in debug mode") + variant("mem", default=True, description="intercept memory-related symbols") + variant("fsys", default=False, description="intercept filesystem-related symbols") + variant("proc", default=False, description="intercept process-related symbols") + variant("errno", default=False, description="intercept errno symbols") + variant("sleep", default=False, description="intercept sleep symbols") + variant("file", default=False, description="intercept FILE*-related symbols") + variant("resolv", default=False, description="intercept DNS resolver-related symbols") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("autoconf@2.69:", type="build") + depends_on("pkgconfig", type="build") + depends_on("gmake", type="build") + + for v in Puk.versions: + depends_on(f"puk@{v}", when=f"@{v}") + + conflicts("platform=darwin", msg="Darwin is not supported.") + conflicts("platform=windows", msg="Windows is not supported.") + conflicts("%gcc@:5", msg="Requires at least gcc 6.") + conflicts("%gcc@14:", when="@:2024-07-12", msg="Older release do not support gcc >= 14") + + configure_directory = "PukABI" + build_directory = "build" + + def autoreconf(self, spec, prefix): + with working_dir(self.configure_directory): + Executable("./autogen.sh")() + + def configure_args(self): + config_args = [] + config_args += self.enable_or_disable("optimize") + config_args += self.enable_or_disable("debug") + config_args += self.enable_or_disable("fsys") + config_args += self.enable_or_disable("proc") + config_args += self.enable_or_disable("mem") + config_args += self.enable_or_disable("errno") + config_args += self.enable_or_disable("sleep") + config_args += self.enable_or_disable("file") + config_args += self.enable_or_disable("resolv") + return config_args From 5c113b521fd51880966d87e7a24b0ebdc63e7fe2 Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Tue, 5 Aug 2025 14:51:57 +0200 Subject: [PATCH 084/120] macsio: +pdb implies +silo (#948) currently `macsio +pdb` adds a dependency on `silo` but leaves `~silo` off. That leads to issues when concretizing `macsio ^silo`, since there are two (for the concretizer equivalent) ways to get that dep, leading to non-determinism. --- repos/spack_repo/builtin/packages/macsio/package.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/repos/spack_repo/builtin/packages/macsio/package.py b/repos/spack_repo/builtin/packages/macsio/package.py index 426e46ff2be..7eafaffd9c1 100644 --- a/repos/spack_repo/builtin/packages/macsio/package.py +++ b/repos/spack_repo/builtin/packages/macsio/package.py @@ -42,12 +42,12 @@ class Macsio(CMakePackage): depends_on("hdf5+hl", when="+hdf5") # depends_on('hdf5+szip', when="+szip") depends_on("exodusii", when="+exodus") - # pdb is packaged with silo - depends_on("silo", when="+pdb") depends_on("typhonio", when="+typhonio") depends_on("scr", when="+scr") # macsio@1.1 has bug with ~mpi configuration conflicts("~mpi", when="@1.1") + # pdb is packaged with silo + conflicts("~silo +pdb") # Ref: https://github.com/LLNL/MACSio/commit/51b8c40cd9813adec5dd4dd6cee948bb9ddb7ee1 patch("cast.patch", when="@1.1") @@ -66,9 +66,7 @@ def cmake_args(self): cmake_args.append("-DWITH_SILO_PREFIX={0}".format(spec["silo"].prefix)) if "+pdb" in spec: - # pdb is a part of silo cmake_args.append("-DENABLE_PDB_PLUGIN=ON") - cmake_args.append("-DWITH_SILO_PREFIX={0}".format(spec["silo"].prefix)) if "+hdf5" in spec: cmake_args.append("-DENABLE_HDF5_PLUGIN=ON") cmake_args.append("-DWITH_HDF5_PREFIX={0}".format(spec["hdf5"].prefix)) From e5a6490e4174b352da9aa4e26edc90dc6685bc8d Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Tue, 5 Aug 2025 07:53:33 -0500 Subject: [PATCH 085/120] py-rpds-py: depends_on rust type=build (#138) --- repos/spack_repo/builtin/packages/py_rpds_py/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/py_rpds_py/package.py b/repos/spack_repo/builtin/packages/py_rpds_py/package.py index 786e92ec6b4..19c94c4ba6b 100644 --- a/repos/spack_repo/builtin/packages/py_rpds_py/package.py +++ b/repos/spack_repo/builtin/packages/py_rpds_py/package.py @@ -22,6 +22,6 @@ class PyRpdsPy(PythonPackage): depends_on("c", type="build") - depends_on("rust@1.76:", when="@0.19:") + depends_on("rust@1.76:", type="build", when="@0.19:") depends_on("py-maturin@1.0:1", type="build") depends_on("py-maturin@1.2:", type="build", when="@0.20:") From 3e277ff695096621057232d158d248ea3fa6789f Mon Sep 17 00:00:00 2001 From: Chris Marsh Date: Tue, 5 Aug 2025 10:08:52 -0600 Subject: [PATCH 086/120] py-dask_jobqueue: add new package (#923) * add new package dask jobqueue * Update package.py Co-authored-by: Wouter Deconinck * Update package.py Co-authored-by: Wouter Deconinck --------- Co-authored-by: Wouter Deconinck --- .../packages/py_dask_jobqueue/package.py | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 repos/spack_repo/builtin/packages/py_dask_jobqueue/package.py diff --git a/repos/spack_repo/builtin/packages/py_dask_jobqueue/package.py b/repos/spack_repo/builtin/packages/py_dask_jobqueue/package.py new file mode 100644 index 00000000000..145f36decbb --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_dask_jobqueue/package.py @@ -0,0 +1,29 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyDaskJobqueue(PythonPackage): + """Dask is a flexible parallel computing library for analytics.""" + + homepage = "https://github.com/dask/dask-jobqueue" + pypi = "dask_jobqueue/dask_jobqueue-0.9.0.tar.gz" + + maintainers("chrismarsh") + + license("BSD-3-Clause") + + version("0.9.0", sha256="494ef64b7bb3848c7d72ed334c288030caca6a09dca54cfaa3f395f4ba7f5c47") + + depends_on("py-setuptools", type="build") + depends_on("py-versioneer", type="build") + + depends_on("python@3.10:", type=("build", "run")) + + # requirements.txt + depends_on("py-dask@2022.2.0:", type=("build", "run")) + depends_on("py-distributed@2022.2.0:", type=("build", "run")) From 0bac2b22e408f87ffeaa8fe7509348c04a30d376 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20B=C3=B6lter?= <147392822+nboelte@users.noreply.github.com> Date: Tue, 5 Aug 2025 22:05:49 +0200 Subject: [PATCH 087/120] relion: Fix ~cuda variant build (#560) --- repos/spack_repo/builtin/packages/relion/package.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/repos/spack_repo/builtin/packages/relion/package.py b/repos/spack_repo/builtin/packages/relion/package.py index b9d88ed72c3..f80c3575b06 100644 --- a/repos/spack_repo/builtin/packages/relion/package.py +++ b/repos/spack_repo/builtin/packages/relion/package.py @@ -129,6 +129,10 @@ def cmake_args(self): else: args += ["-DCUDA=ON", "-DCudaTexture=ON", "-DCUDA_ARCH=%s" % (carch)] + if self.spec.satisfies("@5: ~cuda"): + # Relion 5 defaults to CUDA=ON so it has to be explicitly disabled. + args.append("-DCUDA=OFF") + return args def patch(self): From 4b243eb07a483a6bf527c2f74e5766b35afa528b Mon Sep 17 00:00:00 2001 From: Chris Marsh Date: Tue, 5 Aug 2025 14:56:09 -0600 Subject: [PATCH 088/120] gobject-introspection: restore setuptools@44: support (#929) * restore setuptools@44: support * [@spackbot] updating style on behalf of Chrismarsh * refine bounds Co-authored-by: Wouter Deconinck --------- Co-authored-by: Chrismarsh Co-authored-by: Wouter Deconinck --- .../builtin/packages/gobject_introspection/package.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/gobject_introspection/package.py b/repos/spack_repo/builtin/packages/gobject_introspection/package.py index 2960d44682f..5409751c4c9 100644 --- a/repos/spack_repo/builtin/packages/gobject_introspection/package.py +++ b/repos/spack_repo/builtin/packages/gobject_introspection/package.py @@ -57,10 +57,17 @@ class GobjectIntrospection(MesonPackage, AutotoolsPackage): # https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/283 depends_on("libffi@:3.3", when="@:1.72") # libffi 3.4 caused seg faults depends_on("python") + with when("^python@3.12:"): depends_on("py-setuptools@48:", type=("build", "run")) + # https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/490 - depends_on("py-setuptools@:73", type=("build", "run"), when="@:1.81.0") + # restores setuptools@74: support + patch( + "https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/490/commits.patch", + sha256="8085a21385aba2370ba0859f7d0c5f0a6d6a051ab3c0ea0b8881d567d6356299", + when="@1.66:1.81.0", + ) # This package creates several scripts from # toosl/g-ir-tool-template.in. In their original form these From 7800d18a83c87ec872474a0f7afa521c9c9e7221 Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Wed, 6 Aug 2025 03:17:47 +0200 Subject: [PATCH 089/120] netcdf-fortran: Make sure -fallow-argument-mismatch is added only for gfortran (#950) --- repos/spack_repo/builtin/packages/netcdf_fortran/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/netcdf_fortran/package.py b/repos/spack_repo/builtin/packages/netcdf_fortran/package.py index 9d037689fc7..db1926bb0f2 100644 --- a/repos/spack_repo/builtin/packages/netcdf_fortran/package.py +++ b/repos/spack_repo/builtin/packages/netcdf_fortran/package.py @@ -80,7 +80,7 @@ def flag_handler(self, name, flags): elif name == "fflags": if "+pic" in self.spec: flags.append(self.compiler.f77_pic_flag) - if self.spec.satisfies("%gcc@10:"): + if self.spec.satisfies("%fortran=gcc@10:"): # https://github.com/Unidata/netcdf-fortran/issues/212 flags.append("-fallow-argument-mismatch") elif self.compiler.name == "cce": From 2cfda672878412ce832cae94601b38fad8521493 Mon Sep 17 00:00:00 2001 From: Vicente Bolea Date: Tue, 5 Aug 2025 23:19:40 -0400 Subject: [PATCH 090/120] ascent: add version 0.9.4 (#744) * ascent: add version 0.9.4 * ascent: set python deps as default type --- .../builtin/packages/ascent/package.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/repos/spack_repo/builtin/packages/ascent/package.py b/repos/spack_repo/builtin/packages/ascent/package.py index 5747012ace6..b758700c45d 100644 --- a/repos/spack_repo/builtin/packages/ascent/package.py +++ b/repos/spack_repo/builtin/packages/ascent/package.py @@ -64,13 +64,17 @@ class Ascent(CMakePackage, CudaPackage, ROCmPackage): version("develop", branch="develop", submodules=True) version( - "0.9.3", - tag="v0.9.3", - commit="e69d6ec77938846caae8fea7ed988b1151ac9b81", + "0.9.4", + tag="v0.9.4", + commit="02e7f79d53db77b6af923bfa105840f574195474", submodules=True, preferred=True, ) + version( + "0.9.3", tag="v0.9.3", commit="e69d6ec77938846caae8fea7ed988b1151ac9b81", submodules=True + ) + version( "0.9.2", tag="v0.9.2", commit="b842516d12640e4a0d9433a18c7249440ef6fc3d", submodules=True ) @@ -173,6 +177,7 @@ class Ascent(CMakePackage, CudaPackage, ROCmPackage): # Certain CMake versions have been found to break for our use cases depends_on("cmake@3.14.1:3.14,3.18.2:", type="build") + depends_on("cmake@3.23:", type="build", when="@0.9.4:") ####################### # Conduit @@ -194,8 +199,9 @@ class Ascent(CMakePackage, CudaPackage, ROCmPackage): with when("+python"): depends_on("python+shared") extends("python") - depends_on("py-numpy", type=("build", "run")) - depends_on("py-pip", type=("build", "run")) + depends_on("py-numpy", type=("build", "link", "run")) + depends_on("py-pip") + depends_on("py-wheel", when="@0.9.4:") ####################### # MPI From 049cbc3bfc51d57d37f99adfdeb2cf880dd5c529 Mon Sep 17 00:00:00 2001 From: Marc Mengel Date: Wed, 6 Aug 2025 00:42:40 -0500 Subject: [PATCH 091/120] new py-psycopg2 version (#959) * new py-psycopg2 version * also get updated python versions * version off by 1 --------- Co-authored-by: Patrick Gartung --- repos/spack_repo/builtin/packages/py_psycopg2/package.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_psycopg2/package.py b/repos/spack_repo/builtin/packages/py_psycopg2/package.py index 6d6984d4ec4..b922aaa40f7 100644 --- a/repos/spack_repo/builtin/packages/py_psycopg2/package.py +++ b/repos/spack_repo/builtin/packages/py_psycopg2/package.py @@ -13,6 +13,7 @@ class PyPsycopg2(PythonPackage): homepage = "https://psycopg.org/" pypi = "psycopg2/psycopg2-2.8.6.tar.gz" + version("2.9.10", sha256="12ec0b40b0273f95296233e8750441339298e6a572f7039da5b260e3c8b60e11") version("2.9.6", sha256="f15158418fd826831b28585e2ab48ed8df2d0d98f502a2b4fe619e7d5ca29011") version("2.9.1", sha256="de5303a6f1d0a7a34b9d40e4d3bef684ccc44a49bbe3eb85e3c0bffb4a131b7c") version("2.8.6", sha256="fb23f6c71107c37fd667cb4ea363ddeb936b348bbd6449278eb92c189699f543") @@ -23,13 +24,15 @@ class PyPsycopg2(PythonPackage): # https://github.com/psycopg/psycopg2/blob/master/doc/src/install.rst # https://www.psycopg.org/docs/news.html#news # https://pypi.org/project/psycopg2/#history - depends_on("python@:3.11", when="@2.9.5:", type=("build", "link", "run")) + depends_on("python@:3.13", when="@2.9.10:", type=("build", "link", "run")) + depends_on("python@:3.11", when="@2.9.5:2.9.9", type=("build", "link", "run")) depends_on("python@:3.10", when="@2.9.1:2.9.4", type=("build", "link", "run")) depends_on("python@:3.9", when="@2.8.6:2.9.0", type=("build", "link", "run")) depends_on("py-setuptools", type="build") - depends_on("postgresql@9.1:15", when="@2.9.4:", type=("build", "link", "run")) + depends_on("postgresql@9.1:17", when="@2.9.10:", type=("build", "link", "run")) + depends_on("postgresql@9.1:15", when="@2.9.4:2.9.9", type=("build", "link", "run")) depends_on("postgresql@9.1:14", when="@2.9.2:2.9.3", type=("build", "link", "run")) depends_on("postgresql@9.1:13", when="@2.9:2.9.1", type=("build", "link", "run")) depends_on("postgresql@9.1:12", when="@2.8.4:2.8", type=("build", "link", "run")) From 7d20b7609d11bf8a2dcd709b356eb178daf4f77b Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Wed, 6 Aug 2025 09:46:08 +0200 Subject: [PATCH 092/120] Bump Spack version (#945) Signed-off-by: Massimiliano Culpo --- .ci/env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/env b/.ci/env index d1a22004e9e..a4c5ee50609 100644 --- a/.ci/env +++ b/.ci/env @@ -1 +1 @@ -SPACK_CHECKOUT_VERSION=6dda2cab5d2c9edc1dee152a9350a44c5c3605df +SPACK_CHECKOUT_VERSION=982e400c0a74a20a00f71008cc3b4a03c218cf09 From f92941fa6acb2ed88a5bfef6942210a436a48821 Mon Sep 17 00:00:00 2001 From: Anil Panta <47672624+panta-123@users.noreply.github.com> Date: Wed, 6 Aug 2025 04:07:38 -0400 Subject: [PATCH 093/120] rucio-client: add v37.3.0 (#159) * update version rucio-client * update dependencies * edit checksum * add url_for_version for swiftclient and update rucio-client to reflect versioning * argcomplete checksum correction * add python3.9 for urllib3 2.3.0 onwards, also need py-hatch-vcs * argcomplete 3.5.3 has hatchling.build backend * remove extra line and add : for 36 before fro rucio client dependency * formatting changes for rucio_client and swiftclient --- .../packages/py_python_swiftclient/package.py | 7 +++++ .../builtin/packages/py_rich/package.py | 1 + .../packages/py_rucio_clients/package.py | 31 ++++++++++++++----- .../builtin/packages/py_urllib3/package.py | 7 +++-- 4 files changed, 36 insertions(+), 10 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_python_swiftclient/package.py b/repos/spack_repo/builtin/packages/py_python_swiftclient/package.py index aefaab06722..3dd7661c957 100644 --- a/repos/spack_repo/builtin/packages/py_python_swiftclient/package.py +++ b/repos/spack_repo/builtin/packages/py_python_swiftclient/package.py @@ -15,6 +15,7 @@ class PyPythonSwiftclient(PythonPackage): maintainers("ajkotobi") + version("4.7.0", sha256="afd7575753d8e49617adcb11550187fd0b120fcd819f1e782c0b538f2d093773") version("4.6.0", sha256="d4d18540413893fc16ad87791d740f823f763435e8212e68eb53d60da2638233") version("3.12.0", sha256="313b444a14d0f9b628cbf3e8c52f2c4271658f9e8a33d4222851c2e4f0f7b7a0") version("3.11.1", sha256="06919d59676d3e215f4da4f3f930d71880dda3528289842b25199509df712411") @@ -37,3 +38,9 @@ class PyPythonSwiftclient(PythonPackage): depends_on("py-python-keystoneclient@0.7.0:", when="+keystone", type=("build", "run")) depends_on("py-six@1.9:", type=("build", "run"), when="@:3") + + def url_for_version(self, version): + if version < Version("4.7.0"): + return f"https://files.pythonhosted.org/packages/source/p/python-swiftclient/python-swiftclient-{version}.tar.gz" + else: + return f"https://files.pythonhosted.org/packages/source/p/python-swiftclient/python_swiftclient-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_rich/package.py b/repos/spack_repo/builtin/packages/py_rich/package.py index 9d7003c0be4..26d01c602c6 100644 --- a/repos/spack_repo/builtin/packages/py_rich/package.py +++ b/repos/spack_repo/builtin/packages/py_rich/package.py @@ -17,6 +17,7 @@ class PyRich(PythonPackage): license("MIT") + version("13.9.4", sha256="439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098") version("13.7.1", sha256="9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432") version("13.4.2", sha256="d653d6bccede5844304c605d5aac802c7cf9621efd700b46c7ec2b51ea914898") version("12.6.0", sha256="ba3a3775974105c221d31141f2c116f4fd65c5ceb0698657a11e9f295ec93fd0") diff --git a/repos/spack_repo/builtin/packages/py_rucio_clients/package.py b/repos/spack_repo/builtin/packages/py_rucio_clients/package.py index f58da9cc57c..762f86f42d2 100644 --- a/repos/spack_repo/builtin/packages/py_rucio_clients/package.py +++ b/repos/spack_repo/builtin/packages/py_rucio_clients/package.py @@ -17,6 +17,7 @@ class PyRucioClients(PythonPackage): license("Apache-2.0", checked_by="wdconinc") + version("37.3.0", sha256="b4bca8d451bc34528797ca188884a0c8b5ddfef2d32803765e6333455879f819") version( "36.0.0.post2", sha256="48ac2e3217aac9aaa70133cbfff991560bbeb162165bcf3dd3425967c8a2f816" ) @@ -38,24 +39,38 @@ class PyRucioClients(PythonPackage): # requirements/requirements.client.txt depends_on("python@3.9:", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-requests@2.32.2:", type=("build", "run")) - depends_on("py-urllib3@1.26.18:", type=("build", "run")) + depends_on("py-requests@2.32.2:", type=("build", "run"), when="@:36") + depends_on("py-urllib3@1.26.18:", type=("build", "run"), when="@:36") + depends_on("py-requests@2.32.3:", type=("build", "run"), when="@37:") + depends_on("py-urllib3@2.3.0:", type=("build", "run"), when="@37:") depends_on("py-dogpile-cache@1.2.2:", type=("build", "run")) depends_on("py-tabulate@0.9.0:", type=("build", "run")) - depends_on("py-jsonschema@4.20.0:", type=("build", "run")) + depends_on("py-jsonschema@4.20.0:", type=("build", "run"), when="@:36") + depends_on("py-jsonschema@4.23.0:", type=("build", "run"), when="@37:") depends_on("py-packaging@24.1:", type=("build", "run"), when="@36:") + depends_on("py-packaging@24.2:", type=("build", "run"), when="@37:") depends_on("py-rich@13.7.1:", type=("build", "run"), when="@36:") - depends_on("py-typing-extensions@4.12.2:", type=("build", "run"), when="@36:") + depends_on("py-rich@13.9.4:", type=("build", "run"), when="@37:") + depends_on("py-typing-extensions@4.12.2:", type=("build", "run")) + depends_on("py-click@8.1.7:", type=("build", "run"), when="@37:") with when("+ssh"): - depends_on("py-paramiko@3.4.0:") + depends_on("py-paramiko@3.4.0:", when="@:36") + depends_on("py-paramiko@3.5.1:", when="@37:") + with when("+kerberos"): depends_on("py-kerberos@1.3.1:") depends_on("py-pykerberos@1.2.4:") - depends_on("py-requests-kerberos@0.14.0:") + depends_on("py-requests-kerberos@0.14.0:", when="@:36") + depends_on("py-requests-kerberos@0.15.0:", when="@37:") + with when("+swift"): - depends_on("py-python-swiftclient@4.4.0:") + depends_on("py-python-swiftclient@4.4.0:", when="@:36") + depends_on("py-python-swiftclient@4.7.0:", when="@37:") + with when("+argcomplete"): - depends_on("py-argcomplete@3.1.6:") + depends_on("py-argcomplete@3.1.6:", when="@:36") + depends_on("py-argcomplete@3.5.3:", when="@37:") + with when("+dumper"): depends_on("py-python-magic@0.4.27:") diff --git a/repos/spack_repo/builtin/packages/py_urllib3/package.py b/repos/spack_repo/builtin/packages/py_urllib3/package.py index d029002c1d4..e20e7a7df90 100644 --- a/repos/spack_repo/builtin/packages/py_urllib3/package.py +++ b/repos/spack_repo/builtin/packages/py_urllib3/package.py @@ -16,7 +16,7 @@ class PyUrllib3(PythonPackage): git = "https://github.com/urllib3/urllib3.git" license("MIT") - + version("2.3.0", sha256="f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d") version("2.1.0", sha256="df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54") version("2.0.7", sha256="c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84") version("2.0.6", sha256="b19e1a85d206b56d7df1d5e683df4a7725252a964e3993648dd0fb5a1c157564") @@ -38,8 +38,11 @@ class PyUrllib3(PythonPackage): # Historical variant variant("secure", default=False, when="@:2.0", description="Add SSL/TLS support") - depends_on("python@3.8:", when="@2.1:", type=("build", "run")) + depends_on("python@3.8:", when="@2.1.0:2.2", type=("build", "run")) + depends_on("python@3.9:", when="@2.3:", type=("build", "run")) + depends_on("py-hatchling@1.6:1", when="@2:", type="build") + depends_on("py-hatch-vcs@0.4.0", when="@2.3:", type="build") with when("+brotli"): depends_on("py-brotli@1.0.9:", when="@1.26.9:", type=("build", "run")) From 2eaa674c54b69ebf8234f7c5d9955144dfb9007a Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Wed, 6 Aug 2025 10:10:41 +0200 Subject: [PATCH 094/120] py-decorator: add v5.2.1 (#884) --- repos/spack_repo/builtin/packages/py_decorator/package.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/repos/spack_repo/builtin/packages/py_decorator/package.py b/repos/spack_repo/builtin/packages/py_decorator/package.py index 0a39d928821..d5fc95b04a3 100644 --- a/repos/spack_repo/builtin/packages/py_decorator/package.py +++ b/repos/spack_repo/builtin/packages/py_decorator/package.py @@ -17,6 +17,7 @@ class PyDecorator(PythonPackage): license("BSD-2-Clause") + version("5.2.1", sha256="65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360") version("5.1.1", sha256="637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330") version("5.1.0", sha256="e59913af105b9860aa2c8d3272d9de5a56a4e608db9a2f167a8480b323d529a7") version("5.0.9", sha256="72ecfba4320a893c53f9706bebb2d55c270c1e51a28789361aa93e4a21319ed5") @@ -26,6 +27,10 @@ class PyDecorator(PythonPackage): version("4.3.0", sha256="c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c") version("4.0.9", sha256="90022e83316363788a55352fe39cfbed357aa3a71d90e5f2803a35471de4bba8") + depends_on("python@3.8:", when="@5.2:", type=("build", "run")) depends_on("python@3.5:", when="@5.0.1:", type=("build", "run")) depends_on("python@2.6:2.8,3.2:", type=("build", "run")) + + # uses pyproject.toml only + depends_on("py-setuptools@61:", when="@5.2.1:", type="build") depends_on("py-setuptools", type="build") From be26b17f88b43a311bcf87f668f2e77be63c2792 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Wed, 6 Aug 2025 10:11:16 +0200 Subject: [PATCH 095/120] py-debugpy: add v1.8.15 (#883) --- .../spack_repo/builtin/packages/py_debugpy/package.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/py_debugpy/package.py b/repos/spack_repo/builtin/packages/py_debugpy/package.py index a27a7d80ce9..567c0ead351 100644 --- a/repos/spack_repo/builtin/packages/py_debugpy/package.py +++ b/repos/spack_repo/builtin/packages/py_debugpy/package.py @@ -11,13 +11,14 @@ class PyDebugpy(PythonPackage): """An implementation of the Debug Adapter Protocol for Python.""" homepage = "https://github.com/microsoft/debugpy/" - pypi = "debugpy/debugpy-1.4.1.zip" + pypi = "debugpy/debugpy-1.8.15.tar.gz" # 'debugpy._vendored' requires additional dependencies, Windows-specific skip_modules = ["debugpy._vendored"] license("MIT") + version("1.8.15", sha256="58d7a20b7773ab5ee6bdfb2e6cf622fdf1e40c9d5aef2857d85391526719ac00") version("1.6.7", sha256="c4c2f0810fa25323abfdfa36cbbbb24e5c3b1a42cb762782de64439c575d67f2") version("1.6.6", sha256="b9c2130e1c632540fbf9c2c88341493797ddf58016e7cba02e311de9b0a96b67") version("1.6.3", sha256="e8922090514a890eec99cfb991bab872dd2e353ebb793164d5f01c362b9a40bf") @@ -25,3 +26,10 @@ class PyDebugpy(PythonPackage): version("1.4.1", sha256="889316de0b8ff3732927cb058cfbd3371e4cd0002ecc170d34c755ad289c867c") depends_on("py-setuptools", type="build") + + def url_for_version(self, version): + if version >= Version("1.8.10"): + extention = "tar.gz" + else: + extention = "zip" + return f"https://files.pythonhosted.org/packages/source/t/types-setuptools/debugpy-{version}.{extention}" From 36ce517f406ac086b79d4c2404e36204975db6e3 Mon Sep 17 00:00:00 2001 From: Harshula Jayasuriya Date: Wed, 6 Aug 2025 18:19:32 +1000 Subject: [PATCH 096/120] prrte: starting from v3.0.1 require pmix v4.2.4 or higher (#938) --- repos/spack_repo/builtin/packages/prrte/package.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/repos/spack_repo/builtin/packages/prrte/package.py b/repos/spack_repo/builtin/packages/prrte/package.py index 72109cb6282..73368d92e1f 100644 --- a/repos/spack_repo/builtin/packages/prrte/package.py +++ b/repos/spack_repo/builtin/packages/prrte/package.py @@ -46,6 +46,12 @@ class Prrte(AutotoolsPackage): depends_on("pmix") depends_on("pmix@:5", when="@:3") + # NOTE: prrte 3.0.1 requires pmix 4.2.4 + # https://github.com/openpmix/prrte/compare/v3.0.0...v3.0.1 + # https://github.com/openpmix/prrte/commit/63370ca00771a7a6004d6b638476ca794b04e4c1 + # -pmix_min_version=4.1.2 + # +pmix_min_version=4.2.4 + depends_on("pmix@4.2.4:", when="@3.0.1:") depends_on("libevent") depends_on("hwloc") depends_on("perl", type=("build")) From 57148e53cdcd39ed048d317d6bc11f98c47086c8 Mon Sep 17 00:00:00 2001 From: Buldram Date: Wed, 6 Aug 2025 04:22:33 -0400 Subject: [PATCH 097/120] chafa: add v1.16.2 (#492) --- repos/spack_repo/builtin/packages/chafa/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/chafa/package.py b/repos/spack_repo/builtin/packages/chafa/package.py index 8779fb4723d..c53765fca6c 100644 --- a/repos/spack_repo/builtin/packages/chafa/package.py +++ b/repos/spack_repo/builtin/packages/chafa/package.py @@ -13,13 +13,14 @@ class Chafa(AutotoolsPackage): suitable for display in a terminal.""" homepage = "https://hpjansson.org/chafa/" - url = "https://hpjansson.org/chafa/releases/chafa-1.16.1.tar.xz" + url = "https://hpjansson.org/chafa/releases/chafa-1.16.2.tar.xz" git = "https://github.com/hpjansson/chafa.git" license("LGPL-3.0-or-later", checked_by="Buldram") maintainers("Buldram") version("master", branch="master") + version("1.16.2", sha256="657898dd9a89b45130a44c1efe1fc03e2c7bd00c2f543ed7111613cb9e7861df") version("1.16.1", sha256="4a25debb71530baf0a748b15cfee6b8da6b513f696d9484987eaf410ecce1129") version("1.16.0", sha256="bf863e57b6200b696bde1742aa95d7feb8cd23b9df1e91e91859b2b1e54fd290") version("1.14.5", sha256="7b5b384d5fb76a641d00af0626ed2115fb255ea371d9bef11f8500286a7b09e5") From a273bfa02ae1a1df8b35daee4ec560583701e534 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Wed, 6 Aug 2025 10:31:29 +0200 Subject: [PATCH 098/120] py-aniso8601: add v10.0.1 (#590) --- repos/spack_repo/builtin/packages/py_aniso8601/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/py_aniso8601/package.py b/repos/spack_repo/builtin/packages/py_aniso8601/package.py index 10a7bb3c027..16444440cdd 100644 --- a/repos/spack_repo/builtin/packages/py_aniso8601/package.py +++ b/repos/spack_repo/builtin/packages/py_aniso8601/package.py @@ -15,6 +15,7 @@ class PyAniso8601(PythonPackage): license("BSD-3-Clause") + version("10.0.1", sha256="25488f8663dd1528ae1f54f94ac1ea51ae25b4d531539b8bc707fed184d16845") version("9.0.1", sha256="72e3117667eedf66951bb2d93f4296a56b94b078a8a95905a052611fb3f1b973") version("7.0.0", sha256="513d2b6637b7853806ae79ffaca6f3e8754bdd547048f5ccc1420aec4b714f1e") From 405e97751385dccbd6ec6e6f3b57dc28fc04c76b Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 6 Aug 2025 03:32:43 -0500 Subject: [PATCH 099/120] iwyu,g2,r-curl: requires(pkg) -> requires(^pkg) (#962) --- repos/spack_repo/builtin/packages/g2/package.py | 2 +- repos/spack_repo/builtin/packages/iwyu/package.py | 2 +- repos/spack_repo/builtin/packages/r_curl/package.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/repos/spack_repo/builtin/packages/g2/package.py b/repos/spack_repo/builtin/packages/g2/package.py index faff06554f8..8ec4c882a3b 100644 --- a/repos/spack_repo/builtin/packages/g2/package.py +++ b/repos/spack_repo/builtin/packages/g2/package.py @@ -73,7 +73,7 @@ class G2(CMakePackage): depends_on("ip@3.3.3:", when="+utils +w3emc") requires("^ip precision=d", when="^ip@4.1:") depends_on("sp", when="+utils +w3emc ^ip@:4") - requires("sp precision=d", when="^sp@2.4:") + requires("^sp precision=d", when="^sp@2.4:") with when("+w3emc"): depends_on("w3emc") depends_on("w3emc precision=4", when="precision=4") diff --git a/repos/spack_repo/builtin/packages/iwyu/package.py b/repos/spack_repo/builtin/packages/iwyu/package.py index 178dde1340c..564e577f36a 100644 --- a/repos/spack_repo/builtin/packages/iwyu/package.py +++ b/repos/spack_repo/builtin/packages/iwyu/package.py @@ -60,7 +60,7 @@ class Iwyu(CMakePackage): depends_on("llvm+clang@8.0:8", when="@0.12") depends_on("llvm+clang@7.0:7", when="@0.11") - requires("llvm targets=all", "llvm targets=x86", msg="iwyu needs the X86AsmParser") + requires("^llvm targets=all", "^llvm targets=x86", msg="iwyu needs the X86AsmParser") patch("iwyu-013-cmake.patch", when="@0.13:0.14") diff --git a/repos/spack_repo/builtin/packages/r_curl/package.py b/repos/spack_repo/builtin/packages/r_curl/package.py index a916a0fe29c..424ee6ea8e6 100644 --- a/repos/spack_repo/builtin/packages/r_curl/package.py +++ b/repos/spack_repo/builtin/packages/r_curl/package.py @@ -71,7 +71,7 @@ class RCurl(RPackage): depends_on("curl@:7.63", when="@:4.0") # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282908 - requires("curl@:8.10", when="@:5.2.1") + requires("^curl@:8.10", when="@:5.2.1") # (Jan 2025) MacOS ships a very buggy libcurl 8.7.1 so we avoid this until apple updates it # See: https://github.com/jeroen/curl/issues/376 From ab94c9948af262ddb312b6790f237e41ea2ade93 Mon Sep 17 00:00:00 2001 From: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> Date: Wed, 6 Aug 2025 10:33:49 +0200 Subject: [PATCH 100/120] py-alabaster: add v1.0.0 (#589) --- repos/spack_repo/builtin/packages/py_alabaster/package.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/repos/spack_repo/builtin/packages/py_alabaster/package.py b/repos/spack_repo/builtin/packages/py_alabaster/package.py index 922c4d8b989..8219de0ed43 100644 --- a/repos/spack_repo/builtin/packages/py_alabaster/package.py +++ b/repos/spack_repo/builtin/packages/py_alabaster/package.py @@ -15,12 +15,16 @@ class PyAlabaster(PythonPackage): pypi = "alabaster/alabaster-0.7.10.tar.gz" git = "https://github.com/sphinx-doc/alabaster.git" + license("BSD-3-Clause") + + version("1.0.0", sha256="c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e") version("0.7.16", sha256="75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65") version("0.7.13", sha256="a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2") version("0.7.12", sha256="a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02") version("0.7.10", sha256="37cdcb9e9954ed60912ebc1ca12a9d12178c26637abdf124e3cde2341c257fe0") version("0.7.9", sha256="47afd43b08a4ecaa45e3496e139a193ce364571e7e10c6a87ca1a4c57eb7ea08") + depends_on("python@3.10:", when="@1:", type=("build", "run")) depends_on("python@3.9:", when="@0.7.16:", type=("build", "run")) depends_on("py-flit-core@3.7:", when="@0.7.16:", type="build") depends_on("py-setuptools", when="@:0.7.13", type="build") From 5aa70b1b39617979520560854066253ef60e8020 Mon Sep 17 00:00:00 2001 From: Weiqun Zhang Date: Wed, 6 Aug 2025 01:44:19 -0700 Subject: [PATCH 101/120] amrex: add v25.08 (#954) --- repos/spack_repo/builtin/packages/amrex/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/amrex/package.py b/repos/spack_repo/builtin/packages/amrex/package.py index 7965f5b0b5e..2506516f036 100644 --- a/repos/spack_repo/builtin/packages/amrex/package.py +++ b/repos/spack_repo/builtin/packages/amrex/package.py @@ -29,6 +29,7 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") version("develop", branch="development") + version("25.08", sha256="6e903fd02e72a3d23b438ec257a96a5a948ac07200220669ab8ff16ff047bde6") version("25.07", sha256="19b9e5271451c202610f9c6569189c28fc05bcd655d53525df9169efeb5ee66f") version("25.06", sha256="2f69c708ddeaba6d4be3a12ab6951f171952f6f7948e628c5148d667c4197838") version("25.05", sha256="d80ae0b4ccb26696fcd3c04d96838592fd0043be25fceebd82cd165f809b1a5d") From cf2e2f7117354f36105b329142c31f2449c68892 Mon Sep 17 00:00:00 2001 From: Xavier Delaruelle Date: Wed, 6 Aug 2025 10:51:23 +0200 Subject: [PATCH 102/120] environment-modules: fix X variant + fix v3.2 build + add new-features variant (#952) * environment-modules: X variant only available on v3.2 Update X variant of environment-modules package to make it only available for 3.2 releases. * environment-modules: add cflags to compile old v3.2 To compile nowadays 3.2 releases of environment-modules, some cflags should be added to ignore implicit-function-declaration and int-conversion errors. * environment-modules: add new-features variant Add "new-features" variant that enables all new features implying a substantial behavior changes. This variant is on by default. When this variant is on, it adds the --enable-new-features argument to the list of configuration arguments. --enable-new-features implies --enable-conflict-unload and --enable-require-via arguments, thus it is not required anymore to add these 2 argument separately. Signed-off-by: Xavier Delaruelle --- .../packages/environment_modules/package.py | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/repos/spack_repo/builtin/packages/environment_modules/package.py b/repos/spack_repo/builtin/packages/environment_modules/package.py index 8e57e0e3bda..3b4eb315c7b 100644 --- a/repos/spack_repo/builtin/packages/environment_modules/package.py +++ b/repos/spack_repo/builtin/packages/environment_modules/package.py @@ -61,7 +61,13 @@ class EnvironmentModules(Package): url="http://prdownloads.sourceforge.net/modules/modules-3.2.10.tar.gz", ) - variant("X", default=True, description="Build with X functionality") + variant("X", default=True, when="@:3.2", description="Build with X functionality") + + # Enable all new features that are disabled by default due to the substantial behavior changes + # see https://modules.readthedocs.io/en/latest/INSTALL.html#instopt-enable-new-features + variant( + "new-features", default=True, when="@5.0:", description="Build with new features enabled" + ) depends_on("c", type="build") # generated @@ -83,6 +89,13 @@ class EnvironmentModules(Package): depends_on("tcl@8.5:8", type=("build", "link", "run"), when="@5.0.0:5.4.0") depends_on("tcl@8.5:", type=("build", "link", "run"), when="@5.5.0:") + def flag_handler(self, name, flags): + if name == "cflags": + if self.spec.satisfies("@:3.2"): + flags.append("-Wno-error=implicit-function-declaration") + flags.append("-Wno-error=int-conversion") + return (flags, None, None) + def install(self, spec, prefix): tcl = spec["tcl"] @@ -99,13 +112,10 @@ def install(self, spec, prefix): config_args.extend(["--disable-dependency-tracking", "--disable-silent-rules"]) if spec.satisfies("~X"): - config_args = ["--without-x"] + config_args - - if self.spec.satisfies("@5.6.0:"): - config_args.extend(["--enable-require-via"]) + config_args.extend(["--without-x"]) - if self.spec.satisfies("@5.5.0:"): - config_args.extend(["--enable-conflict-unload"]) + if spec.satisfies("+new-features"): + config_args.extend(["--enable-new-features"]) if self.spec.satisfies("@4.4.0:4.8"): config_args.extend( From 2282554242c9114402af18b28ea67795d5806755 Mon Sep 17 00:00:00 2001 From: snehring <7978778+snehring@users.noreply.github.com> Date: Wed, 6 Aug 2025 04:01:58 -0500 Subject: [PATCH 103/120] beast2: adding v2.7.7 (#604) Also adding in fixes for JAVA_HOME being overwritten and additional javafx module for gui stuff Signed-off-by: Shane Nehring --- repos/spack_repo/builtin/packages/beast2/package.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/repos/spack_repo/builtin/packages/beast2/package.py b/repos/spack_repo/builtin/packages/beast2/package.py index c68096f37a4..acabf2a1970 100644 --- a/repos/spack_repo/builtin/packages/beast2/package.py +++ b/repos/spack_repo/builtin/packages/beast2/package.py @@ -21,7 +21,11 @@ class Beast2(Package): maintainers("snehring") license("LGPL-2.1-or-later") - + version( + "2.7.7", + sha256="a866f3e5da4ef890a042f01849e32322aa0a8e16e3e1cb2c59f823de2611781a", + url="https://github.com/CompEvol/beast2/releases/download/v2.7.7/BEAST.v2.7.7.Linux.x86.tgz", + ) version( "2.7.4", sha256="f5086c74a0337190ae3459ef018468fc6b2eff68ae2b53fb5c96eb7b5df84004", @@ -44,12 +48,16 @@ def patch(self): # handle javafx stuff if self.spec.satisfies("@2.7.0:"): javafx = "--module-path {}".format(self.spec["javafx"].prefix.lib) - modules = "--add-modules javafx.controls" + modules = "--add-modules javafx.controls,javafx.fxml" with working_dir("bin"): for i in find(".", "*"): filter_file( r"(beast\.pkgmgmt.*\b)|(viz.*\b)", "{0} {1} \\1".format(javafx, modules), i ) + # remove exports of JAVA_HOME + with working_dir("bin"): + for i in find(".", "*"): + filter_file(r"^export\s+JAVA_HOME=.*$", "", i) def setup_run_environment(self, env: EnvironmentModifications) -> None: env.set("BEAST", self.prefix) From 7e2f78af5ee20f9c8b6768a53e39b4aeacd0c15e Mon Sep 17 00:00:00 2001 From: Dave Keeshan <96727608+davekeeshan@users.noreply.github.com> Date: Wed, 6 Aug 2025 10:13:09 +0100 Subject: [PATCH 104/120] verible: add v0.0.4013 (#855) --- repos/spack_repo/builtin/packages/verible/package.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/verible/package.py b/repos/spack_repo/builtin/packages/verible/package.py index 2eb69b43d5c..ef3dd887de5 100644 --- a/repos/spack_repo/builtin/packages/verible/package.py +++ b/repos/spack_repo/builtin/packages/verible/package.py @@ -37,6 +37,11 @@ class Verible(Package): version("master", branch="master") + version( + "0.0.4013", + sha256="703766302083af76eeb3e545683017643ff24e4184e3195296623992eb55e4b8", + url="https://github.com/chipsalliance/verible/archive/refs/tags/v0.0-4013-gba3dc371.tar.gz", + ) version( "0.0.3999", sha256="0b282233b91fc6884708f76232dcc3b38d47a14c783c5a0b8035bb23bcb8dbc7", @@ -118,7 +123,8 @@ class Verible(Package): url="https://github.com/chipsalliance/verible/archive/refs/tags/v0.0-3428-gcfcbb82b.tar.gz", ) - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("flex", type="build") depends_on("bison", type="build") From 9c5ce59b5166c2cb2d3b095880a4ebe391031ee0 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 6 Aug 2025 04:32:25 -0500 Subject: [PATCH 105/120] py-pytest: add v8.2.2, v8.3.5, v8.4.1 (#862) * py-pytest: add v8.2.2, v8.3.5, v8.4.1 * py-pytest: order newest first --- repos/spack_repo/builtin/packages/py_pytest/package.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/repos/spack_repo/builtin/packages/py_pytest/package.py b/repos/spack_repo/builtin/packages/py_pytest/package.py index 8c8e8a40d92..dd4518714c0 100644 --- a/repos/spack_repo/builtin/packages/py_pytest/package.py +++ b/repos/spack_repo/builtin/packages/py_pytest/package.py @@ -17,6 +17,9 @@ class PyPytest(PythonPackage): license("MIT") maintainers("adamjstewart") + version("8.4.1", sha256="7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c") + version("8.3.5", sha256="f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845") + version("8.2.2", sha256="de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977") version("8.2.1", sha256="5046e5b46d8e4cac199c373041f26be56fdb81eb4e67dc11d4e10811fc3408fd") version("8.0.0", sha256="249b1b0864530ba251b7438274c4d251c58d868edaaec8762893ad4a0d71c36c") version("7.4.4", sha256="2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280") @@ -54,16 +57,22 @@ class PyPytest(PythonPackage): depends_on("py-setuptools-scm", when="@3.1:") with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@8.4:") depends_on("python@3.8:", when="@8:") depends_on("python@3.7:", when="@7.1:") + # see https://github.com/pytest-dev/pytest/releases/tag/8.4.0 + depends_on("python@:3.13", when="@:8.3") # see https://github.com/pytest-dev/pytest/releases/tag/8.2.1 depends_on("python@:3.12", when="@:8.2.0") # see https://github.com/pytest-dev/pytest/releases/tag/7.3.2 depends_on("python@:3.11", when="@:7.3.1") + depends_on("py-colorama@0.4:", when="@8.4: platform=windows") depends_on("py-colorama", when="platform=windows") depends_on("py-exceptiongroup@1:", when="@7:^python@:3.10") + depends_on("py-iniconfig@1:", when="@8.4:") depends_on("py-iniconfig", when="@6.0:") + depends_on("py-packaging@20:", when="@8.4:") depends_on("py-packaging", when="@4.6:") depends_on("py-pluggy@1.5:1", when="@8.2:") depends_on("py-pluggy@1.3:1", when="@8:") @@ -75,6 +84,7 @@ class PyPytest(PythonPackage): depends_on("py-pluggy@0.7:", when="@3.7:4.3") depends_on("py-pluggy@0.5:0.7", when="@3.6.4:3.6") depends_on("py-pluggy@0.5:0.6", when="@:3.6.3") + depends_on("py-pygments@2.7.2:", when="@8.4:") depends_on("py-tomli@1:", when="@7.1: ^python@:3.10") depends_on("py-tomli@1:", when="@7.0") From 5acbd5c986320a1a1eff41ec8b810fc5b9a6c749 Mon Sep 17 00:00:00 2001 From: jgraciahlrs Date: Wed, 6 Aug 2025 11:34:25 +0200 Subject: [PATCH 106/120] GSL: fix configure args for external cblas (#943) --- repos/spack_repo/builtin/packages/gsl/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/gsl/package.py b/repos/spack_repo/builtin/packages/gsl/package.py index 21306295cf5..6c88f865009 100644 --- a/repos/spack_repo/builtin/packages/gsl/package.py +++ b/repos/spack_repo/builtin/packages/gsl/package.py @@ -65,7 +65,7 @@ def force_autoreconf(self): def configure_args(self): configure_args = [] if self.spec.satisfies("+external-cblas"): - configure_args.append("--with-external-cblas") + configure_args.append("--with-cblas-external") configure_args.append("CBLAS_CFLAGS=%s" % self.spec["blas"].headers.include_flags) configure_args.append("CBLAS_LIBS=%s" % self.spec["blas"].libs.ld_flags) From eaa42dd1d78e8b62297acf0d8f79b0265e01e1f6 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 6 Aug 2025 03:40:55 -0600 Subject: [PATCH 107/120] pdf2svg: add v0.2.4 (#942) --- repos/spack_repo/builtin/packages/pdf2svg/package.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/repos/spack_repo/builtin/packages/pdf2svg/package.py b/repos/spack_repo/builtin/packages/pdf2svg/package.py index 01311639bab..b73816f6f1f 100644 --- a/repos/spack_repo/builtin/packages/pdf2svg/package.py +++ b/repos/spack_repo/builtin/packages/pdf2svg/package.py @@ -15,6 +15,7 @@ class Pdf2svg(AutotoolsPackage): license("GPL-2.0-only") + version("0.2.4", sha256="fd765256f18b5890639e93cabdf631b640966ed1ea9ebd561aede9d3be2155e4") version("0.2.3", sha256="4fb186070b3e7d33a51821e3307dce57300a062570d028feccd4e628d50dea8a") version("0.2.2", sha256="e5f1d9b78821e44cd85379fb07f38a42f00bb2bde3743b95301ff8c0a5ae229a") @@ -22,8 +23,15 @@ class Pdf2svg(AutotoolsPackage): depends_on("pkgconfig@0.9.0:", type="build") depends_on("cairo@1.2.6:") + depends_on("cairo@1.16:", when="@0.2.4:") depends_on("poppler@0.5.4:+glib") + conflicts( + "^cairo@1.17.6:", + when="@:0.2.3", + msg="earlier versions produce wrong output with newer cairo versions", + ) + # Note: the latest version of poppler requires glib 2.41+, # but pdf2svg uses g_type_init, which is deprecated in glib 2.36+. # At some point, we will need to force pdf2svg to use older From 01abbf3baa4569529ffa66c5c9804f98233c30c7 Mon Sep 17 00:00:00 2001 From: Philipp Edelmann Date: Wed, 6 Aug 2025 03:41:56 -0600 Subject: [PATCH 108/120] parthenon: add correct language dependencies (#940) Parthenon declares C CXX in its CMakeLists.txt so we need to provide both. --- repos/spack_repo/builtin/packages/parthenon/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/parthenon/package.py b/repos/spack_repo/builtin/packages/parthenon/package.py index e0e34ce0f37..326e0ff52bc 100644 --- a/repos/spack_repo/builtin/packages/parthenon/package.py +++ b/repos/spack_repo/builtin/packages/parthenon/package.py @@ -48,7 +48,8 @@ class Parthenon(CMakePackage): # Dependencies # ------------------------------------------------------------# - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("cmake@3.16:", type="build") From ce835107202cedc224c2be51b1172e11062249c1 Mon Sep 17 00:00:00 2001 From: Andrew Nolan <32367657+andrewdnolan@users.noreply.github.com> Date: Wed, 6 Aug 2025 02:46:36 -0700 Subject: [PATCH 109/120] parallel-netcdf: add v1.14.1 (#936) --- repos/spack_repo/builtin/packages/parallel_netcdf/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/parallel_netcdf/package.py b/repos/spack_repo/builtin/packages/parallel_netcdf/package.py index 2fdf808c2ff..81e6592afc3 100644 --- a/repos/spack_repo/builtin/packages/parallel_netcdf/package.py +++ b/repos/spack_repo/builtin/packages/parallel_netcdf/package.py @@ -35,6 +35,7 @@ def url_for_version(self, version): return url version("master", branch="master") + version("1.14.1", sha256="6f0f7221006c211fce9ddd2c008796b8c69dd717b2ad1be0b4027fc328fd3220") version("1.14.0", sha256="575f189fb01c53f93b3d6ae0e506f46e19694807c81af0b9548e947995acf704") version("1.13.0", sha256="aba0f1c77a51990ba359d0f6388569ff77e530ee574e40592a1e206ed9b2c491") version("1.12.3", sha256="439e359d09bb93d0e58a6e3f928f39c2eae965b6c97f64e67cd42220d6034f77") From 9b9717368017c1dde9f0fc55f9c0e82064cccdb6 Mon Sep 17 00:00:00 2001 From: "Garth N. Wells" Date: Wed, 6 Aug 2025 10:49:33 +0100 Subject: [PATCH 110/120] (py-)fenics-dolfinx: dependency fixes and improvements (#914) --- .../packages/fenics_dolfinx/package.py | 21 +++++++++-------- .../packages/py_fenics_dolfinx/package.py | 23 ++++++++++++++----- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/repos/spack_repo/builtin/packages/fenics_dolfinx/package.py b/repos/spack_repo/builtin/packages/fenics_dolfinx/package.py index 2291e99c9f2..c6eac347a77 100644 --- a/repos/spack_repo/builtin/packages/fenics_dolfinx/package.py +++ b/repos/spack_repo/builtin/packages/fenics_dolfinx/package.py @@ -8,7 +8,7 @@ class FenicsDolfinx(CMakePackage): - """Next generation FEniCS problem solving environment""" + """Next generation FEniCS problem solving environment.""" homepage = "https://github.com/FEniCS/dolfinx" git = "https://github.com/FEniCS/dolfinx.git" @@ -17,7 +17,7 @@ class FenicsDolfinx(CMakePackage): license("LGPL-3.0-or-later") - version("main", branch="main") + version("main", branch="main", no_cache=True) version("0.9.0", sha256="b266c74360c2590c5745d74768c04568c965b44739becca4cd6b5aa58cdbbbd1") version("0.8.0", sha256="acf3104d9ecc0380677a6faf69eabfafc58d0cce43f7777e1307b95701c7cad9") version("0.7.2", sha256="7d9ce1338ce66580593b376327f23ac464a4ce89ef63c105efc1a38e5eae5c0b") @@ -32,31 +32,32 @@ class FenicsDolfinx(CMakePackage): multi=True, ) - # HDF5 dependency requires C in CMake - depends_on("c", type="build") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") # HDF5 dependency requires C in CMake + depends_on("cxx", type="build") # Graph partitioner dependencies depends_on("kahip@3.12:", when="partitioners=kahip") depends_on("parmetis", when="partitioners=parmetis") depends_on("scotch+mpi", when="partitioners=scotch") - variant("slepc", default=False, description="slepc support") - variant("adios2", default=False, description="adios2 support") + variant("slepc", default=False, description="SLEPc support") + variant("adios2", default=False, description="ADIOS2 support") variant("petsc", default=False, description="PETSc support") - depends_on("petsc", when="+slepc") depends_on("cmake@3.21:", when="@0.9:", type="build") depends_on("cmake@3.19:", when="@:0.8", type="build") depends_on("pkgconfig", type="build") depends_on("mpi") depends_on("hdf5+mpi") - depends_on("boost@1.7.0:+filesystem+program_options+timer") + depends_on("boost@1.70:") + depends_on("boost@1.70:+timer", when="@:0.9") depends_on("pugixml") depends_on("spdlog", when="@0.9:") depends_on("petsc+mpi+shared", when="+petsc") - depends_on("slepc", when="+slepc") + with when("+slepc"): + depends_on("petsc+mpi+shared") + depends_on("slepc") depends_on("adios2@2.8.1:+mpi", when="@0.9: +adios2") depends_on("adios2+mpi", when="+adios2") diff --git a/repos/spack_repo/builtin/packages/py_fenics_dolfinx/package.py b/repos/spack_repo/builtin/packages/py_fenics_dolfinx/package.py index e797a674097..fe06be31b28 100644 --- a/repos/spack_repo/builtin/packages/py_fenics_dolfinx/package.py +++ b/repos/spack_repo/builtin/packages/py_fenics_dolfinx/package.py @@ -9,7 +9,7 @@ class PyFenicsDolfinx(PythonPackage): """Python interface to the next generation FEniCS problem solving - environment""" + environment.""" homepage = "https://github.com/FEniCS/dolfinx" url = "https://github.com/FEniCS/dolfinx/archive/v0.1.0.tar.gz" @@ -18,13 +18,16 @@ class PyFenicsDolfinx(PythonPackage): license("LGPL-3.0-only") - version("main", branch="main") + version("main", branch="main", no_cache=True) version("0.9.0", sha256="b266c74360c2590c5745d74768c04568c965b44739becca4cd6b5aa58cdbbbd1") version("0.8.0", sha256="acf3104d9ecc0380677a6faf69eabfafc58d0cce43f7777e1307b95701c7cad9") version("0.7.2", sha256="7d9ce1338ce66580593b376327f23ac464a4ce89ef63c105efc1a38e5eae5c0b") version("0.6.0", sha256="eb8ac2bb2f032b0d393977993e1ab6b4101a84d54023a67206e3eac1a8d79b80") - depends_on("cxx", type="build") # generated + variant("petsc4py", default=False, description="petsc4py support") + variant("slepc4py", default=False, description="slepc4py support") + + depends_on("cxx", type="build") depends_on("cmake@3.21:", when="@0.9:", type="build") depends_on("cmake@3.19:", when="@:0.8", type="build") @@ -65,13 +68,21 @@ class PyFenicsDolfinx(PythonPackage): depends_on("py-numpy@1.21:", type=("build", "run")) depends_on("py-mpi4py", type=("build", "run")) - depends_on("py-petsc4py", type=("build", "run")) + + with when("+petsc4py"): + depends_on("fenics-dolfinx +petsc") + depends_on("py-petsc4py", type=("build", "run")) + with when("+slepc4py"): + depends_on("fenics-dolfinx +petsc +slepc") + depends_on("py-petsc4py", type=("build", "run")) + depends_on("py-slepc4py", type=("build", "run")) + depends_on("py-cffi@:1.16", type=("build", "run")) depends_on("py-nanobind@2:", when="@0.9:", type="build") depends_on("py-nanobind@1.8:1.9", when="@0.8", type="build") - depends_on("py-scikit-build-core+pyproject@0.10:", when="@0.10:", type="build") - depends_on("py-scikit-build-core+pyproject@0.5:", when="@0.8:0.9", type="build") + depends_on("py-scikit-build-core@0.10: +pyproject", when="@0.10:", type="build") + depends_on("py-scikit-build-core@0.5: +pyproject", when="@0.8:0.9", type="build") depends_on("py-pybind11@2.7.0:", when="@:0.7", type=("build", "run")) depends_on("py-setuptools@42:", when="@:0.7", type="build") From 30eda296f4dabcd9f99e5339d3b27bb70ae8f35f Mon Sep 17 00:00:00 2001 From: G-Ragghianti <33492707+G-Ragghianti@users.noreply.github.com> Date: Wed, 6 Aug 2025 05:51:04 -0400 Subject: [PATCH 111/120] papi: add v7.2.0 (#535) --- .../spack_repo/builtin/packages/papi/package.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/repos/spack_repo/builtin/packages/papi/package.py b/repos/spack_repo/builtin/packages/papi/package.py index a98de3b819b..4b45f2e1989 100644 --- a/repos/spack_repo/builtin/packages/papi/package.py +++ b/repos/spack_repo/builtin/packages/papi/package.py @@ -32,6 +32,7 @@ class Papi(AutotoolsPackage, ROCmPackage): license("BSD-3-Clause") version("master", branch="master") + version("7.2.0", sha256="a9bff89ccf39915d729e08ae0a0c6a71ce0ebbe98411e9a2eb3c83c8db0af39c") version("7.1.0", sha256="5818afb6dba3ece57f51e65897db5062f8e3464e6ed294b654ebf34c3991bc4f") version("7.0.1", sha256="c105da5d8fea7b113b0741a943d467a06c98db959ce71bdd9a50b9f03eecc43e") # Note: version 7.0.0 is omitted due to build issues, see PR 33940 for more information @@ -54,6 +55,7 @@ class Papi(AutotoolsPackage, ROCmPackage): variant("cuda", default=False, description="Enable CUDA support") variant("nvml", default=False, description="Enable NVML support") variant("rocm_smi", default=False, description="Enable ROCm SMI support") + variant("rocp_sdk", default=False, when="@7.2:", description="Enable ROCp support") variant( "rdpmc", default=True, @@ -68,9 +70,9 @@ class Papi(AutotoolsPackage, ROCmPackage): # The PAPI configure option "--with-shlib-tools" is deprecated # and therefore not implemented here - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") depends_on("lm-sensors", when="+lmsensors") depends_on("cuda", when="+cuda") @@ -78,6 +80,7 @@ class Papi(AutotoolsPackage, ROCmPackage): depends_on("bc", when="+cuda", type="build") depends_on("hsa-rocr-dev", when="+rocm") depends_on("rocprofiler-dev", when="+rocm") + depends_on("rocprofiler-sdk", when="+rocp_sdk") depends_on("llvm-amdgpu", when="+rocm") depends_on("rocm-openmp-extras", when="+rocm") depends_on("rocm-smi-lib", when="+rocm_smi") @@ -126,6 +129,8 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("AQLPROFILE_READ_API", "1") if "+rocm_smi" in spec: env.append_flags("CFLAGS", "-I%s/rocm_smi" % spec["rocm-smi-lib"].prefix.include) + if "+rocp_sdk" in spec: + env.set("PAPI_ROCP_SDK_ROOT", spec["rocprofiler-sdk"].prefix) # # Intel OneAPI LLVM cannot compile papi unless the DBG enviroment variable is cleared # @@ -159,6 +164,7 @@ def configure_args(self): "nvml", "rocm", "rocm_smi", + "rocp_sdk", ], ) if components: @@ -176,6 +182,11 @@ def configure_args(self): if "+debug" in spec: options.append("--with-debug=yes") + if self.run_tests: + options.append("--with-tests=ctests") + else: + options.append("--with-tests=no") + return options @run_before("configure") From 0c328ddf9a579760d155dbb3997e4e6ee71ca3f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20W=C3=B3jcik?= Date: Wed, 6 Aug 2025 11:52:24 +0200 Subject: [PATCH 112/120] prrte: add constraint on PMIx version (#917) --- repos/spack_repo/builtin/packages/prrte/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/repos/spack_repo/builtin/packages/prrte/package.py b/repos/spack_repo/builtin/packages/prrte/package.py index 73368d92e1f..ae94254d69b 100644 --- a/repos/spack_repo/builtin/packages/prrte/package.py +++ b/repos/spack_repo/builtin/packages/prrte/package.py @@ -45,6 +45,7 @@ class Prrte(AutotoolsPackage): depends_on("c", type="build") # generated depends_on("pmix") + depends_on("pmix@6:", when="@4:") depends_on("pmix@:5", when="@:3") # NOTE: prrte 3.0.1 requires pmix 4.2.4 # https://github.com/openpmix/prrte/compare/v3.0.0...v3.0.1 From c9f63215f54eb1ce9f0cf957aec11d1761e1631c Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 6 Aug 2025 03:55:00 -0600 Subject: [PATCH 113/120] ports_of_call: kokkos bugfix and update c dependency (#910) --- repos/spack_repo/builtin/packages/ports_of_call/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/repos/spack_repo/builtin/packages/ports_of_call/package.py b/repos/spack_repo/builtin/packages/ports_of_call/package.py index 31d8f33e969..89f933e25d5 100644 --- a/repos/spack_repo/builtin/packages/ports_of_call/package.py +++ b/repos/spack_repo/builtin/packages/ports_of_call/package.py @@ -56,7 +56,7 @@ class PortsOfCall(CMakePackage): when="@1.7.0: +test", ) - depends_on("c", type="build") # todo: disable cmake default? + depends_on("c", type="build", when="@:1.7.1") depends_on("cxx", type="build") depends_on("cmake@3.12:", type="build") @@ -76,5 +76,5 @@ def cmake_args(self): args.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc)) args.append(self.define("CMAKE_C_COMPILER", self.spec["hip"].hipcc)) if self.spec.satisfies("test_portability_strategy=Kokkos ^kokkos+cuda"): - args.append(self.define("CMAKE_CXX_COMPILER", self.spec["kokkos"].kokkos_cxx)) + args.append(self.define("CMAKE_CXX_COMPILER", self["kokkos"].kokkos_cxx)) return args From 5e7480f6665d688a5e60055716e5824bd03c9c91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E5=9D=8E?= Date: Wed, 6 Aug 2025 17:57:59 +0800 Subject: [PATCH 114/120] py-orjson: fix bug and and add v3.11.1 (#906) --- repos/spack_repo/builtin/packages/py_orjson/package.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/py_orjson/package.py b/repos/spack_repo/builtin/packages/py_orjson/package.py index 48bfd82e8ff..cac0ac44906 100644 --- a/repos/spack_repo/builtin/packages/py_orjson/package.py +++ b/repos/spack_repo/builtin/packages/py_orjson/package.py @@ -15,6 +15,7 @@ class PyOrjson(PythonPackage): license("Apache-2.0") + version("3.11.1", sha256="48d82770a5fd88778063604c566f9c7c71820270c9cc9338d25147cbf34afd96") version("3.10.3", sha256="2b166507acae7ba2f7c315dcf185a9111ad5e992ac81f2d507aac39193c2c818") version("3.9.15", sha256="95cae920959d772f30ab36d3b25f83bb0f3be671e986c72ce22f8fa700dae061") version("3.8.14", sha256="5ea93fd3ef7be7386f2516d728c877156de1559cda09453fc7dd7b696d0439b3") @@ -27,7 +28,10 @@ class PyOrjson(PythonPackage): depends_on("rust@1.60:") depends_on("python@3.7:") depends_on("py-maturin@0.13:0.14") - with when("@03.9:"): + with when("@3.9:"): depends_on("rust@1.72:") depends_on("python@3.8:") depends_on("py-maturin@1") + + with when("@:3.10.3"): + depends_on("python@:3.12") From 2d285038e9bd4180d67aed1d81b8920d35ce073f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E5=9D=8E?= Date: Wed, 6 Aug 2025 17:58:51 +0800 Subject: [PATCH 115/120] py-altair: fix python dependency and add v5.5.0 (#882) --- repos/spack_repo/builtin/packages/py_altair/package.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/repos/spack_repo/builtin/packages/py_altair/package.py b/repos/spack_repo/builtin/packages/py_altair/package.py index 7f565ff533d..a1894813912 100644 --- a/repos/spack_repo/builtin/packages/py_altair/package.py +++ b/repos/spack_repo/builtin/packages/py_altair/package.py @@ -14,6 +14,7 @@ class PyAltair(PythonPackage): license("BSD-3-Clause") + version("5.5.0", sha256="d960ebe6178c56de3855a68c47b516be38640b73fb3b5111c2a9ca90546dd73d") version("5.4.1", sha256="0ce8c2e66546cb327e5f2d7572ec0e7c6feece816203215613962f0ec1d76a82") version("5.2.0", sha256="2ad7f0c8010ebbc46319cc30febfb8e59ccf84969a201541c207bc3a4fa6cf81") version("5.1.2", sha256="e5f52a71853a607c61ce93ad4a414b3d486cd0d46ac597a24ae8bd1ac99dd460") @@ -30,6 +31,8 @@ class PyAltair(PythonPackage): conflicts("~pandas", when="@:5.3.0") depends_on("python@3.7:", type=("build", "run")) + depends_on("python@:3.12", type=("build", "run"), when="@:5.4.1") + depends_on("py-setuptools@40.6:", type="build", when="@:4") depends_on("py-entrypoints", type=("build", "run"), when="@2.0.0:4") From 7801e9a9bb83b9df2507c9e4aec25e425dc5b223 Mon Sep 17 00:00:00 2001 From: kenche-linaro <133872317+kenche-linaro@users.noreply.github.com> Date: Wed, 6 Aug 2025 11:00:34 +0100 Subject: [PATCH 116/120] linaro-forge: add v25.0.2 (#895) --- repos/spack_repo/builtin/packages/linaro_forge/package.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/repos/spack_repo/builtin/packages/linaro_forge/package.py b/repos/spack_repo/builtin/packages/linaro_forge/package.py index a9821d21961..55688cae569 100644 --- a/repos/spack_repo/builtin/packages/linaro_forge/package.py +++ b/repos/spack_repo/builtin/packages/linaro_forge/package.py @@ -24,6 +24,9 @@ class LinaroForge(Package): maintainers("kenche-linaro") if platform.machine() == "aarch64": + version( + "25.0.2", sha256="5cbce0612e76eafd47931154ad0b3183683112cfb5f2a38ae14769c56041f447" + ) version( "25.0.1", sha256="da16574f34c97142712cd4a56f1c99914abb069936a29b682a4d08cc39dc2e8d" ) @@ -115,6 +118,9 @@ class LinaroForge(Package): deprecated=True, ) elif platform.machine() == "x86_64": + version( + "25.0.2", sha256="9be88c3b2471af7f408f129f6941f11dc7838661d8f3cd172f82405b67e8f8c4" + ) version( "25.0.1", sha256="88313be739e64615bc8de68eea784de79adf4ff5821c6808ab47bd03e3df1143" ) From b535be16e51104bb79f3e7bae03c6da2b6ceb988 Mon Sep 17 00:00:00 2001 From: Greg Becker Date: Wed, 6 Aug 2025 11:01:28 +0100 Subject: [PATCH 117/120] dakota: add hdf5 variant, use cxx14, model trilinos dependency (#889) Signed-off-by: Gregory Becker --- repos/spack_repo/builtin/packages/dakota/package.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/repos/spack_repo/builtin/packages/dakota/package.py b/repos/spack_repo/builtin/packages/dakota/package.py index 30ee8eb9b74..433f886acd8 100644 --- a/repos/spack_repo/builtin/packages/dakota/package.py +++ b/repos/spack_repo/builtin/packages/dakota/package.py @@ -68,6 +68,7 @@ class Dakota(CMakePackage): variant("shared", default=True, description="Enables the build of shared libraries") variant("mpi", default=True, description="Activates MPI support") variant("python", default=True, description="Add Python dependency for dakota.interfacing API") + variant("hdf5", default=False, description="Add hdf5 support") depends_on("c", type="build") depends_on("cxx", type="build") @@ -80,6 +81,10 @@ class Dakota(CMakePackage): depends_on("blas") depends_on("mpi", when="+mpi") + depends_on("trilinos+rol") + depends_on("trilinos@13:", when="@6.13:") + + depends_on("hdf5@1.10.4:1.10 +hl+cxx", when="+hdf5") depends_on("python", when="+python") depends_on("perl-data-dumper", type="build", when="@6.12:") depends_on("boost@:1.68.0", when="@:6.12") @@ -104,6 +109,8 @@ def flag_handler(self, name, flags): # from gcc@10, dakota@:6.12 need an extra flag if self.spec.satisfies("@:6.12 %gcc@10:") and name == "fflags": flags.append("-fallow-argument-mismatch") + if name == "cxxflags": + flags.append(self["cxx"].standard_flag(language="cxx", standard="14")) return (flags, None, None) def cmake_args(self): From 41c963d928a98cf9cdfef2e1b6adaa8f6b63e3c1 Mon Sep 17 00:00:00 2001 From: Matthieu Dorier Date: Wed, 6 Aug 2025 11:01:53 +0100 Subject: [PATCH 118/120] mochi-margo: added version 0.19.1 and 0.19.2 (#888) --- repos/spack_repo/builtin/packages/mochi_margo/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/mochi_margo/package.py b/repos/spack_repo/builtin/packages/mochi_margo/package.py index 6637f203398..26fd0fb7693 100644 --- a/repos/spack_repo/builtin/packages/mochi_margo/package.py +++ b/repos/spack_repo/builtin/packages/mochi_margo/package.py @@ -18,6 +18,8 @@ class MochiMargo(AutotoolsPackage): maintainers("carns", "mdorier", "fbudin69500") version("main", branch="main") + version("0.19.2", sha256="cfd20117744631779f0e99a0bc0668a1ca4d6d3c89fce5e9926961f830491689") + version("0.19.1", sha256="77422156be5d1e24b16f6d65109ada29a2276c9d6fdd9a5392c23f1fbe370b98") version("0.19.0", sha256="269e3b52228fb59a8ab502b8fac4761fc15440817455bb006f311093bd4c02f3") version("0.18.3", sha256="4871af11d3cadc81e6f08a2112782c61324d9cdabc9e9b61c595c95da6d75127") version("0.18.2", sha256="a3a9fde826954be06b9123887533f91e6725faf6f6c682c080b97c2172a22057") @@ -67,7 +69,7 @@ class MochiMargo(AutotoolsPackage): version("0.4.3", sha256="61a634d6983bee2ffa06e1e2da4c541cb8f56ddd9dd9f8e04e8044fb38657475") version("0.4.2", sha256="91085e28f50e373b9616e1ae5c3c8d40a19a7d3776259592d8f361766890bcaa") - depends_on("c", type="build") # generated + depends_on("c", type="build") depends_on("json-c", when="@0.9:") depends_on("autoconf@2.65:", type=("build")) From 38620fa931198b9f39d99a073bb0cc3df6f10031 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 6 Aug 2025 05:02:28 -0500 Subject: [PATCH 119/120] meshlab: depends_on qt +ssl (#878) --- repos/spack_repo/builtin/packages/meshlab/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/meshlab/package.py b/repos/spack_repo/builtin/packages/meshlab/package.py index 5b5eedd4e66..cf9217f40a2 100644 --- a/repos/spack_repo/builtin/packages/meshlab/package.py +++ b/repos/spack_repo/builtin/packages/meshlab/package.py @@ -27,7 +27,7 @@ class Meshlab(CMakePackage): depends_on("eigen") depends_on("glew") depends_on("mpfr") - depends_on("qt@5.15: +opengl") + depends_on("qt@5.15: +opengl +ssl") def cmake_args(self): args = [ From 121c953bb4d026478335df2f864ac8059f1e0107 Mon Sep 17 00:00:00 2001 From: Jiakun Yan Date: Wed, 6 Aug 2025 07:17:30 -0500 Subject: [PATCH 120/120] hpx: add option for the lci parcelport (#941) --- repos/spack_repo/builtin/packages/hpx/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/hpx/package.py b/repos/spack_repo/builtin/packages/hpx/package.py index 451d88dcd8b..3ac7f1520bc 100644 --- a/repos/spack_repo/builtin/packages/hpx/package.py +++ b/repos/spack_repo/builtin/packages/hpx/package.py @@ -79,7 +79,7 @@ class Hpx(CMakePackage, CudaPackage, ROCmPackage): variant( "networking", - values=any_combination_of("tcp", "mpi").with_default("tcp"), + values=any_combination_of("tcp", "mpi", "lci").with_default("tcp"), description="Support for networking through parcelports", ) @@ -124,6 +124,7 @@ class Hpx(CMakePackage, CudaPackage, ROCmPackage): depends_on("mpi", when="networking=mpi") depends_on("mpi", when="+async_mpi") + depends_on("lci", when="networking=lci") depends_on("cuda", when="+async_cuda") @@ -250,6 +251,7 @@ def cmake_args(self): self.define("HPX_WITH_NETWORKING", "networking=none" not in spec), self.define("HPX_WITH_PARCELPORT_TCP", spec.satisfies("networking=tcp")), self.define("HPX_WITH_PARCELPORT_MPI", spec.satisfies("networking=mpi")), + self.define("HPX_WITH_PARCELPORT_LCI", spec.satisfies("networking=lci")), self.define( "HPX_WITH_MAX_CPU_COUNT", format_max_cpu_count(spec.variants["max_cpu_count"].value),