Compare commits

..

1 Commits

Author SHA1 Message Date
Wouter Deconinck
af81387e6f on_package_attributes: pass checks to pkg in builder 2024-07-20 10:37:40 -05:00
82 changed files with 512 additions and 1252 deletions

View File

@@ -93,13 +93,13 @@ jobs:
path: dockerfiles
- name: Set up QEMU
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf
uses: docker/setup-qemu-action@5927c834f5b4fdf503fca6f4c7eccda82949e1ee
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@aa33708b10e362ff993539393ff100fa93ed6a27
uses: docker/setup-buildx-action@4fd812986e6c8c2a69e18311145f9371337f27d4
- name: Log in to GitHub Container Registry
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567
uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446
with:
registry: ghcr.io
username: ${{ github.actor }}
@@ -107,13 +107,13 @@ jobs:
- name: Log in to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567
uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build & Deploy ${{ matrix.dockerfile[0] }}
uses: docker/build-push-action@5176d81f87c23d6fc96624dfdbcd9f3830bbe445
uses: docker/build-push-action@1ca370b3a9802c92e886402e0dd88098a2533b12
with:
context: dockerfiles/${{ matrix.dockerfile[0] }}
platforms: ${{ matrix.dockerfile[1] }}

View File

@@ -1,4 +1,4 @@
sphinx==7.4.7
sphinx==7.4.6
sphinxcontrib-programoutput==0.17
sphinx_design==0.6.0
sphinx-rtd-theme==2.0.0
@@ -6,8 +6,8 @@ python-levenshtein==0.25.1
docutils==0.20.1
pygments==2.18.0
urllib3==2.2.2
pytest==8.3.1
pytest==8.2.2
isort==5.13.2
black==24.4.2
flake8==7.1.0
mypy==1.11.0
mypy==1.10.1

View File

@@ -72,7 +72,7 @@ def build_directory(self):
def build_args(self):
"""Arguments for ``go build``."""
# Pass ldflags -s = --strip-all and -w = --no-warnings by default
return ["-modcacherw", "-ldflags", "-s -w", "-o", f"{self.pkg.name}"]
return ["-ldflags", "-s -w", "-o", f"{self.pkg.name}"]
@property
def check_args(self):

View File

@@ -169,9 +169,7 @@ def pkg_hash(args):
def get_grep(required=False):
"""Get a grep command to use with ``spack pkg grep``."""
grep = exe.which(os.environ.get("SPACK_GREP") or "grep", required=required)
grep.ignore_quotes = True # allow `spack pkg grep '"quoted string"'` without warning
return grep
return exe.which(os.environ.get("SPACK_GREP") or "grep", required=required)
def pkg_grep(args, unknown_args):

View File

@@ -358,12 +358,14 @@ def on_package_attributes(**attr_dict):
def _execute_under_condition(func):
@functools.wraps(func)
def _wrapper(instance, *args, **kwargs):
# Support both builders and packages
pkg = instance.pkg if isinstance(instance, spack.builder.Builder) else instance
# If all the attributes have the value we require, then execute
has_all_attributes = all([hasattr(instance, key) for key in attr_dict])
has_all_attributes = all([hasattr(pkg, key) for key in attr_dict])
if has_all_attributes:
has_the_right_values = all(
[
getattr(instance, key) == value for key, value in attr_dict.items()
getattr(pkg, key) == value for key, value in attr_dict.items()
] # NOQA: ignore=E501
)
if has_the_right_values:

View File

@@ -31,7 +31,6 @@ def __init__(self, name):
self.default_envmod = EnvironmentModifications()
self.returncode = None
self.ignore_quotes = False
if not self.exe:
raise ProcessError("Cannot construct executable for '%s'" % name)
@@ -189,7 +188,7 @@ def process_cmd_output(out, err):
fail_on_error = kwargs.pop("fail_on_error", True)
ignore_errors = kwargs.pop("ignore_errors", ())
ignore_quotes = kwargs.pop("ignore_quotes", self.ignore_quotes)
ignore_quotes = kwargs.pop("ignore_quotes", False)
timeout = kwargs.pop("timeout", None)
# If they just want to ignore one error code, make it a tuple.

View File

@@ -376,7 +376,7 @@ e4s-neoverse_v1-build:
e4s-rocm-external-generate:
extends: [ ".e4s-rocm-external", ".generate-x86_64"]
image: ecpe4s/ubuntu22.04-runner-amd64-gcc-11.4-rocm6.1.2:2024.07.22
image: ecpe4s/ubuntu22.04-runner-amd64-gcc-11.4-rocm6.1.1:2024.06.23
e4s-rocm-external-build:
extends: [ ".e4s-rocm-external", ".build" ]
@@ -726,29 +726,6 @@ ml-linux-x86_64-cuda-build:
- artifacts: True
job: ml-linux-x86_64-cuda-generate
########################################
# Machine Learning - Linux x86_64 (ROCm)
########################################
.ml-linux-x86_64-rocm:
extends: [ ".linux_x86_64_v3" ]
variables:
SPACK_CI_STACK_NAME: ml-linux-x86_64-rocm
ml-linux-x86_64-rocm-generate:
extends: [ ".generate-x86_64", .ml-linux-x86_64-rocm, ".tags-x86_64_v4" ]
image: ghcr.io/spack/ubuntu-22.04:v2024-05-07
ml-linux-x86_64-rocm-build:
extends: [ ".build", ".ml-linux-x86_64-rocm" ]
trigger:
include:
- artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
job: ml-linux-x86_64-rocm-generate
strategy: depend
needs:
- artifacts: True
job: ml-linux-x86_64-rocm-generate
#########################################
# Machine Learning - Darwin aarch64 (MPS)
#########################################

View File

@@ -27,186 +27,186 @@ spack:
comgr:
buildable: false
externals:
- spec: comgr@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: comgr@6.1.1
prefix: /opt/rocm-6.1.1/
hip-rocclr:
buildable: false
externals:
- spec: hip-rocclr@6.1.2
prefix: /opt/rocm-6.1.2/hip
- spec: hip-rocclr@6.1.1
prefix: /opt/rocm-6.1.1/hip
hipblas:
buildable: false
externals:
- spec: hipblas@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: hipblas@6.1.1
prefix: /opt/rocm-6.1.1/
hipcub:
buildable: false
externals:
- spec: hipcub@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: hipcub@6.1.1
prefix: /opt/rocm-6.1.1/
hipfft:
buildable: false
externals:
- spec: hipfft@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: hipfft@6.1.1
prefix: /opt/rocm-6.1.1/
hipsparse:
buildable: false
externals:
- spec: hipsparse@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: hipsparse@6.1.1
prefix: /opt/rocm-6.1.1/
miopen-hip:
buildable: false
externals:
- spec: miopen-hip@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: miopen-hip@6.1.1
prefix: /opt/rocm-6.1.1/
miopengemm:
buildable: false
externals:
- spec: miopengemm@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: miopengemm@6.1.1
prefix: /opt/rocm-6.1.1/
rccl:
buildable: false
externals:
- spec: rccl@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: rccl@6.1.1
prefix: /opt/rocm-6.1.1/
rocblas:
buildable: false
externals:
- spec: rocblas@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: rocblas@6.1.1
prefix: /opt/rocm-6.1.1/
rocfft:
buildable: false
externals:
- spec: rocfft@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: rocfft@6.1.1
prefix: /opt/rocm-6.1.1/
rocm-clang-ocl:
buildable: false
externals:
- spec: rocm-clang-ocl@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: rocm-clang-ocl@6.1.1
prefix: /opt/rocm-6.1.1/
rocm-cmake:
buildable: false
externals:
- spec: rocm-cmake@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: rocm-cmake@6.1.1
prefix: /opt/rocm-6.1.1/
rocm-dbgapi:
buildable: false
externals:
- spec: rocm-dbgapi@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: rocm-dbgapi@6.1.1
prefix: /opt/rocm-6.1.1/
rocm-debug-agent:
buildable: false
externals:
- spec: rocm-debug-agent@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: rocm-debug-agent@6.1.1
prefix: /opt/rocm-6.1.1/
rocm-device-libs:
buildable: false
externals:
- spec: rocm-device-libs@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: rocm-device-libs@6.1.1
prefix: /opt/rocm-6.1.1/
rocm-gdb:
buildable: false
externals:
- spec: rocm-gdb@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: rocm-gdb@6.1.1
prefix: /opt/rocm-6.1.1/
rocm-opencl:
buildable: false
externals:
- spec: rocm-opencl@6.1.2
prefix: /opt/rocm-6.1.2/opencl
- spec: rocm-opencl@6.1.1
prefix: /opt/rocm-6.1.1/opencl
rocm-smi-lib:
buildable: false
externals:
- spec: rocm-smi-lib@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: rocm-smi-lib@6.1.1
prefix: /opt/rocm-6.1.1/
hip:
buildable: false
externals:
- spec: hip@6.1.2
prefix: /opt/rocm-6.1.2
- spec: hip@6.1.1
prefix: /opt/rocm-6.1.1
extra_attributes:
compilers:
c: /opt/rocm-6.1.2/llvm/bin/clang++
c++: /opt/rocm-6.1.2/llvm/bin/clang++
hip: /opt/rocm-6.1.2/hip/bin/hipcc
c: /opt/rocm-6.1.1/llvm/bin/clang++
c++: /opt/rocm-6.1.1/llvm/bin/clang++
hip: /opt/rocm-6.1.1/hip/bin/hipcc
hipify-clang:
buildable: false
externals:
- spec: hipify-clang@6.1.2
prefix: /opt/rocm-6.1.2
- spec: hipify-clang@6.1.1
prefix: /opt/rocm-6.1.1
llvm-amdgpu:
buildable: false
externals:
- spec: llvm-amdgpu@6.1.2
prefix: /opt/rocm-6.1.2/llvm
- spec: llvm-amdgpu@6.1.1
prefix: /opt/rocm-6.1.1/llvm
extra_attributes:
compilers:
c: /opt/rocm-6.1.2/llvm/bin/clang++
cxx: /opt/rocm-6.1.2/llvm/bin/clang++
c: /opt/rocm-6.1.1/llvm/bin/clang++
cxx: /opt/rocm-6.1.1/llvm/bin/clang++
hsakmt-roct:
buildable: false
externals:
- spec: hsakmt-roct@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: hsakmt-roct@6.1.1
prefix: /opt/rocm-6.1.1/
hsa-rocr-dev:
buildable: false
externals:
- spec: hsa-rocr-dev@6.1.2
prefix: /opt/rocm-6.1.2/
- spec: hsa-rocr-dev@6.1.1
prefix: /opt/rocm-6.1.1/
extra_atributes:
compilers:
c: /opt/rocm-6.1.2/llvm/bin/clang++
cxx: /opt/rocm-6.1.2/llvm/bin/clang++
c: /opt/rocm-6.1.1/llvm/bin/clang++
cxx: /opt/rocm-6.1.1/llvm/bin/clang++
roctracer-dev-api:
buildable: false
externals:
- spec: roctracer-dev-api@6.1.2
prefix: /opt/rocm-6.1.2
- spec: roctracer-dev-api@6.1.1
prefix: /opt/rocm-6.1.1
roctracer-dev:
buildable: false
externals:
- spec: roctracer-dev@4.5.3
prefix: /opt/rocm-6.1.2
prefix: /opt/rocm-6.1.1
rocprim:
buildable: false
externals:
- spec: rocprim@6.1.2
prefix: /opt/rocm-6.1.2
- spec: rocprim@6.1.1
prefix: /opt/rocm-6.1.1
rocrand:
buildable: false
externals:
- spec: rocrand@6.1.2
prefix: /opt/rocm-6.1.2
- spec: rocrand@6.1.1
prefix: /opt/rocm-6.1.1
hipsolver:
buildable: false
externals:
- spec: hipsolver@6.1.2
prefix: /opt/rocm-6.1.2
- spec: hipsolver@6.1.1
prefix: /opt/rocm-6.1.1
rocsolver:
buildable: false
externals:
- spec: rocsolver@6.1.2
prefix: /opt/rocm-6.1.2
- spec: rocsolver@6.1.1
prefix: /opt/rocm-6.1.1
rocsparse:
buildable: false
externals:
- spec: rocsparse@6.1.2
prefix: /opt/rocm-6.1.2
- spec: rocsparse@6.1.1
prefix: /opt/rocm-6.1.1
rocthrust:
buildable: false
externals:
- spec: rocthrust@6.1.2
prefix: /opt/rocm-6.1.2
- spec: rocthrust@6.1.1
prefix: /opt/rocm-6.1.1
rocprofiler-dev:
buildable: false
externals:
- spec: rocprofiler-dev@6.1.2
prefix: /opt/rocm-6.1.2
- spec: rocprofiler-dev@6.1.1
prefix: /opt/rocm-6.1.1
rocm-core:
buildable: false
externals:
- spec: rocm-core@6.1.2
prefix: /opt/rocm-6.1.2
- spec: rocm-core@6.1.1
prefix: /opt/rocm-6.1.1
specs:
# ROCM NOARCH
@@ -300,7 +300,7 @@ spack:
ci:
pipeline-gen:
- build-job:
image: ecpe4s/ubuntu22.04-runner-amd64-gcc-11.4-rocm6.1.2:2024.07.22
image: ecpe4s/ubuntu22.04-runner-amd64-gcc-11.4-rocm6.1.1:2024.06.23
cdash:
build-group: E4S ROCm External

View File

@@ -1,93 +0,0 @@
spack:
view: false
packages:
all:
require:
- target=x86_64_v3
- ~cuda
- +rocm
- amdgpu_target=gfx90a
gl:
require: "osmesa"
mpi:
require: openmpi
specs:
# Horovod
# - py-horovod
# Hugging Face
- py-transformers
# JAX
# Does not yet support Spack-installed ROCm
# - py-jax
# - py-jaxlib
# Keras
- py-keras backend=tensorflow
# - py-keras backend=jax
# - py-keras backend=torch
- py-keras-applications
- py-keras-preprocessing
- py-keras2onnx
# PyTorch
# Does not yet support Spack-installed ROCm
# - py-botorch
# - py-efficientnet-pytorch
# - py-gpytorch
# - py-kornia
# - py-lightning
# - py-pytorch-gradual-warmup-lr
# - py-pytorch-lightning
# - py-segmentation-models-pytorch
# - py-timm
# - py-torch
# - py-torch-cluster
# - py-torch-geometric
# - py-torch-nvidia-apex
# - py-torch-scatter
# - py-torch-sparse
# - py-torch-spline-conv
# - py-torchaudio
# - py-torchdata
# - py-torchfile
# - py-torchgeo
# - py-torchmetrics
# - py-torchtext
# - py-torchvision
# - py-vector-quantize-pytorch
# scikit-learn
- py-scikit-learn
- py-scikit-learn-extra
# TensorBoard
- py-tensorboard
- py-tensorboard-data-server
- py-tensorboard-plugin-wit
- py-tensorboardx
# TensorFlow
- py-tensorflow
- py-tensorflow-datasets
# version 2.16 is not available
# - py-tensorflow-estimator
- py-tensorflow-hub
- py-tensorflow-metadata
- py-tensorflow-probability
# XGBoost
# Does not yet support Spack-installed ROCm
# - py-xgboost
ci:
pipeline-gen:
- build-job:
image:
name: ghcr.io/spack/ubuntu-22.04:v2024-05-07
entrypoint: ['']
cdash:
build-group: Machine Learning

View File

@@ -36,10 +36,7 @@ class Apptainer(SingularityBase):
)
version("main", branch="main")
version("1.3.3", sha256="94a274ab4898cdb131f4e3867c4e15f7e16bc2823303d2afcbafee0242f0838d")
version("1.3.2", sha256="483910727e1a15843b93d9f2db1fc87e27804de9c74da13cc32cd4bd0d35e079")
# version "1.3.1" has security vulnerability CVE-2024-3727
# see also https://github.com/advisories/GHSA-6wvf-f2vw-3425
version("1.3.1", sha256="6956c689c4a8f148789c5c34b33c15ad8f3460b4cee3f48022119fd872eacee9")
version("1.2.5", sha256="606b67ef97683e1420401718687d258b1034fdf2edae72eeacd0828dffbfc2c2")
version("1.1.9", sha256="c615777539154288542cf393d3fd44c04ccb3260bc6330dc324d4e4ebe902bfa")
version("1.1.7", sha256="e6d3956a26c3965703402e17f153ba07f59bf710068806462b314d2d04e825e7")

View File

@@ -6,7 +6,7 @@
from spack.package import *
class Asciidoc(AutotoolsPackage, PythonPackage):
class Asciidoc(AutotoolsPackage):
"""A presentable text document format for writing articles, UNIX man
pages and other small to medium sized documents."""
@@ -17,12 +17,6 @@ class Asciidoc(AutotoolsPackage, PythonPackage):
license("GPL-2.0-only", checked_by="tgamblin")
build_system(
conditional("autotools", when="@:9"),
conditional("python_pip", when="@10:"),
default="python_pip",
)
version("master", branch="master")
version("10.2.0", sha256="684ea53c1f5b71d6d1ac6086bbc96906b1f709ecc7ab536615b0f0c9e1baa3cc")
version("9.1.0", sha256="5056c20157349f8dc74f005b6e88ccbf1078c4e26068876f13ca3d1d7d045fe7")
@@ -37,9 +31,6 @@ class Asciidoc(AutotoolsPackage, PythonPackage):
depends_on("docbook-xml", type=("build", "run"))
depends_on("docbook-xsl", type=("build", "run"))
depends_on("python@3.5:", type=("build", "run"))
with when("build_system=python_pip"):
depends_on("py-setuptools", type="build")
with when("build_system=autotools"):
depends_on("autoconf", type="build")
depends_on("automake", type="build")
depends_on("libtool", type="build")
depends_on("autoconf", type="build")
depends_on("automake", type="build")
depends_on("libtool", type="build")

View File

@@ -62,7 +62,7 @@ class Asio(AutotoolsPackage):
version("1.16.1", sha256="e40bbd531530f08318b7c7d7e84e457176d8eae6f5ad2e3714dc27b9131ecd35")
version("1.16.0", sha256="c87410ea62de6245aa239b9ed2057edf01d7f66acc3f5e50add9a29343c87512")
depends_on("cxx", type="build")
depends_on("cxx", type="build") # generated
depends_on("autoconf", type="build")
depends_on("automake", type="build")

View File

@@ -21,8 +21,5 @@ class Capstone(CMakePackage):
version("4.0.2", sha256="7c81d798022f81e7507f1a60d6817f63aa76e489aa4e7055255f21a22f5e526a")
version("4.0.1", sha256="79bbea8dbe466bd7d051e037db5961fdb34f67c9fac5c3471dd105cfb1e05dc7")
depends_on("c", type="build")
depends_on("cxx", type="build")
def cmake_args(self):
return ["-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE"]
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated

View File

@@ -29,8 +29,6 @@ class Cmake(Package):
license("BSD-3-Clause")
version("master", branch="master")
version("3.30.1", sha256="df9b3c53e3ce84c3c1b7c253e5ceff7d8d1f084ff0673d048f260e04ccb346e1")
version("3.30.0", sha256="157e5be6055c154c34f580795fe5832f260246506d32954a971300ed7899f579")
version("3.29.6", sha256="1391313003b83d48e2ab115a8b525a557f78d8c1544618b48d1d90184a10f0af")
version("3.29.5", sha256="dd63da7d763c0db455ca232f2c443f5234fe0b11f8bd6958a81d29cc987dfd6e")
version("3.29.4", sha256="b1b48d7100bdff0b46e8c8f6a3c86476dbe872c8df39c42b8d104298b3d56a2c")

View File

@@ -17,10 +17,6 @@ class DamaskGrid(CMakePackage):
license("AGPL-3.0-or-later")
version("3.0.0", sha256="aaebc65b3b10e6c313132ee97cfed427c115079b7e438cc0727c5207e159019f")
version(
"3.0.0-beta2", sha256="513567b4643f39e27ae32b9f75463fc6f388c1548d42f0393cc87ba02d075f6a"
)
version(
"3.0.0-beta", sha256="1e25e409ac559fc437d1887c6ca930677a732db89a3a32499d545dd75e93925c"
)
@@ -43,9 +39,8 @@ class DamaskGrid(CMakePackage):
depends_on("c", type="build") # generated
depends_on("fortran", type="build") # generated
depends_on("petsc@3.21", when="@3.0.0-beta2:")
depends_on("petsc@3.20.3:3.20", when="@3.0.0-beta")
depends_on("petsc@3.20.2:3.20", when="@3.0.0-alpha8")
depends_on("petsc@3.20.3:3.21", when="@3.0.0-beta")
depends_on("petsc@3.20.2:3.21", when="@3.0.0-alpha8")
depends_on("petsc@3.17.1:3.18", when="@3.0.0-alpha7")
depends_on("petsc@3.16.5:3.16", when="@3.0.0-alpha6")
depends_on("petsc@3.14.0:3.14,3.15.1:3.16", when="@3.0.0-alpha5")

View File

@@ -17,10 +17,6 @@ class DamaskMesh(CMakePackage):
license("AGPL-3.0-or-later")
version("3.0.0", sha256="aaebc65b3b10e6c313132ee97cfed427c115079b7e438cc0727c5207e159019f")
version(
"3.0.0-beta2", sha256="513567b4643f39e27ae32b9f75463fc6f388c1548d42f0393cc87ba02d075f6a"
)
version(
"3.0.0-beta", sha256="1e25e409ac559fc437d1887c6ca930677a732db89a3a32499d545dd75e93925c"
)
@@ -43,9 +39,8 @@ class DamaskMesh(CMakePackage):
depends_on("c", type="build") # generated
depends_on("fortran", type="build") # generated
depends_on("petsc@3.21", when="@3.0.0-beta2:")
depends_on("petsc@3.20.3:3.20", when="@3.0.0-beta")
depends_on("petsc@3.20.2:3.20", when="@3.0.0-alpha8")
depends_on("petsc@3.20.3:3.21", when="@3.0.0-beta")
depends_on("petsc@3.20.2:3.21", when="@3.0.0-alpha8")
depends_on("petsc@3.17.1:3.18", when="@3.0.0-alpha7")
depends_on("petsc@3.16.5:3.16", when="@3.0.0-alpha6")
depends_on("petsc@3.14.0:3.14,3.15.1:3.16", when="@3.0.0-alpha5")

View File

@@ -28,8 +28,6 @@ class Damask(BundlePackage):
maintainers("MarDiehl")
version("3.0.0")
version("3.0.0-beta2")
version("3.0.0-beta")
version("3.0.0-alpha8")
version("3.0.0-alpha7")
@@ -37,14 +35,6 @@ class Damask(BundlePackage):
version("3.0.0-alpha5")
version("3.0.0-alpha4")
depends_on("damask-grid@3.0.0", when="@3.0.0", type="run")
depends_on("damask-mesh@3.0.0", when="@3.0.0", type="run")
depends_on("py-damask@3.0.0", when="@3.0.0", type="run")
depends_on("damask-grid@3.0.0-beta2", when="@3.0.0-beta2", type="run")
depends_on("damask-mesh@3.0.0-beta2", when="@3.0.0-beta2", type="run")
depends_on("py-damask@3.0.0-beta2", when="@3.0.0-beta2", type="run")
depends_on("damask-grid@3.0.0-beta", when="@3.0.0-beta", type="run")
depends_on("damask-mesh@3.0.0-beta", when="@3.0.0-beta", type="run")
depends_on("py-damask@3.0.0-beta", when="@3.0.0-beta", type="run")

View File

@@ -36,10 +36,10 @@ def edit(self, spec, prefix):
makefile.filter(r"^\s*INSTALL_DIR\s*\?=.*", "INSTALL_DIR ?= " + prefix)
@run_before("install")
def preinstall(self):
def preinstall(self, spec, prefix):
# The $PREFIX/dedisp/include and $PREFIX/dedisp/lib directories don't seem
# to be created automatically by the software's Makefile so manually create them
libdir = join_path(self.prefix, "lib")
incdir = join_path(self.prefix, "include")
libdir = join_path(prefix, "lib")
incdir = join_path(prefix, "include")
mkdirp(libdir)
mkdirp(incdir)

View File

@@ -27,8 +27,8 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
version("0.1.0", sha256="f7ffcde22edabb3dc24a624e2888f98829ee526da384cd752b2b271c731ca9b1")
version("master", branch="master")
depends_on("c", type="build")
depends_on("cxx", type="build")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
variant("shared", default=True, description="Build shared libraries.")

View File

@@ -24,7 +24,6 @@ class Enzyme(CMakePackage):
root_cmakelists_dir = "enzyme"
version("main", branch="main")
version("0.0.135", sha256="49c798534faec7ba524a3ed053dd4352d690a44d3cad5a14915c9398dc9b175b")
version("0.0.100", sha256="fbc53ec02adc0303ff200d7699afface2d9fbc7350664e6c6d4c527ef11c2e82")
version("0.0.81", sha256="4c17d0c28f0572a3ab97a60f1e56bbc045ed5dd64c2daac53ae34371ca5e8b34")
version("0.0.69", sha256="144d964187551700fdf0a4807961ceab1480d4e4cd0bb0fc7bbfab48fe053aa2")

View File

@@ -18,7 +18,6 @@ class Fmt(CMakePackage):
license("MIT")
version("11.0.2", sha256="40fc58bebcf38c759e11a7bd8fdc163507d2423ef5058bba7f26280c5b9c5465")
version("11.0.1", sha256="62ca45531814109b5d6cef0cf2fd17db92c32a30dd23012976e768c685534814")
version("11.0.0", sha256="583ce480ef07fad76ef86e1e2a639fc231c3daa86c4aa6bcba524ce908f30699")
version("10.2.1", sha256="312151a2d13c8327f5c9c586ac6cf7cddc1658e8f53edae0ec56509c8fa516c9")
@@ -47,8 +46,6 @@ class Fmt(CMakePackage):
version("3.0.0", sha256="1b050b66fa31b74f1d75a14f15e99e728ab79572f176a53b2f8ad7c201c30ceb")
version("master", branch="master")
depends_on("cxx", type="build")
variant(
"cxxstd",
default="11",

View File

@@ -166,13 +166,8 @@ def std_when(values):
depends_on("libxmu", when="+x11")
depends_on("motif", when="+motif")
with when("+qt"):
depends_on("qmake")
with when("^[virtuals=qmake] qt-base"):
depends_on("qt-base +accessibility +gui +opengl")
with when("^[virtuals=qmake] qt"):
depends_on("qt@5: +opengl")
depends_on("qt@5.9:", when="@11.2:")
conflicts("@:11.1 ^[virtuals=qmake] qt-base", msg="Qt6 not supported before 11.2")
depends_on("qt@5: +opengl")
depends_on("qt@5.9:", when="@11.2:")
# As released, 10.0.4 has inconsistently capitalised filenames
# in the cmake files; this patch also enables cxxstd 14
@@ -312,9 +307,7 @@ def cmake_args(self):
if "+qt" in spec:
options.append(self.define("GEANT4_USE_QT", True))
if "^[virtuals=qmake] qt-base" in spec:
options.append(self.define("GEANT4_USE_QT_QT6", True))
options.append(self.define("QT_QMAKE_EXECUTABLE", spec["qmake"].prefix.bin.qmake))
options.append(self.define("QT_QMAKE_EXECUTABLE", spec["qt"].prefix.bin.qmake))
options.append(self.define_from_variant("GEANT4_USE_VTK", "vtk"))

View File

@@ -1,50 +0,0 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class GenerateNinja(Package):
"""
A meta-build system that generates build files for Ninja.
This is a fork of the Google GN package with some minor features and bug fixes
"""
homepage = "https://github.com/o-lim/generate-ninja"
url = "https://github.com/o-lim/generate-ninja/archive/refs/tags/v0.4.1.tar.gz"
license("BSD", checked_by="teaguesterling")
version("0.4.1", sha256="1b2bec9dd18602a4af9dc8782ca809e44305f1435d43c55f35ec9eec50ca7e9a")
version("0.4.0", sha256="3575ed41eec49fe756dbd2c402f70cd80ba2952cc59ce2091d0a82b7bd3ce8a0")
version("0.3.2", sha256="82e949c3970d77b28c9df7cf3f3df409798b65848e05ff415009e7e2118460a8")
version("0.3.1", sha256="ed0112b434b80c322fcc9203646eaef17c306a804bf2ff5e5df91677c4e58678")
version("0.3.0", sha256="e6091d34cfc6bc625bfad4bbdc001e10ed951651d0ae98785b509bdfadad6822")
version("0.2.2", sha256="3146bdef1db9dfdc2d48bb5ee5e8e4ef9642ebea7cf39c432681685db8a11c86")
version("0.2.1", sha256="bf27ddde69bd0791ce86bd3ab9ead51dcfb00d3f202168057b721fdc39d417c5")
version("0.2.0", sha256="6cfd6f4a2f6d656e8d5f64d7f03a575a569b2c0f662d1d828ee790c9d9c2be25")
version("0.1.0", sha256="eb94e0bb170416010d3efa296fce63e7fec19f1e3e9b5988b2418166ec068896")
depends_on("ninja")
depends_on("python", type="build")
depends_on("llvm+clang", type="build")
def setup_build_environment(self, env):
env.set("DEPLOY", "1")
env.set("CC", self.spec["llvm"].home.bin.clang)
env.set("CXX", self.spec["llvm"].home.bin.join("clang++"))
phases = ["configure", "build", "install"]
# build_targets = ["bootstrap", "gn"]
out_dir = "out"
def configure(self, spec, prefix):
python("build/gen.py")
def build(self, spec, prefix):
ninja("-C", self.out_dir)
def install(self, spec, prefix):
mkdir(prefix.bin)
install(join_path(self.out_dir, "gn"), prefix.bin.gn)

View File

@@ -15,14 +15,13 @@ class GeopmRuntime(AutotoolsPackage):
homepage = "https://geopm.github.io"
git = "https://github.com/geopm/geopm.git"
url = "https://github.com/geopm/geopm/tarball/v3.1.0"
url = "https://github.com/geopm/geopm/tarball/v3.0.1"
maintainers("bgeltz", "cmcantalupo")
license("BSD-3-Clause")
tags = ["e4s"]
version("develop", branch="dev", get_full_repo=True)
version("3.1.0", sha256="2d890cad906fd2008dc57f4e06537695d4a027e1dc1ed92feed4d81bb1a1449e")
version("3.0.1", sha256="32ba1948de58815ee055470dcdea64593d1113a6cad70ce00ab0286c127f8234")
depends_on("c", type="build") # generated
@@ -30,7 +29,7 @@ class GeopmRuntime(AutotoolsPackage):
depends_on("fortran", type="build") # generated
variant("debug", default=False, description="Enable debug")
variant("docs", default=False, when="@3.0.1", description="Create man pages with Sphinx")
variant("docs", default=False, description="Create man pages with Sphinx")
variant("overhead", default=False, description="Track time spent in GEOPM API calls")
variant("beta", default=False, description="Enable beta features")
variant("mpi", default=True, description="Enable MPI dependent components")
@@ -61,36 +60,30 @@ class GeopmRuntime(AutotoolsPackage):
depends_on("libtool", type="build")
depends_on("file")
with when("@3.0.1"):
# Docs dependencies
# Moved to python3-geopm-doc as of v3.1
depends_on("doxygen", type="build", when="+docs")
depends_on("py-sphinx", type="build", when="+docs")
depends_on("py-sphinx-rtd-theme@1:", type="build", when="+docs")
depends_on("py-sphinxemoji@0.2.0:", type="build", when="+docs")
depends_on("py-sphinx-tabs@3.3.1:", type="build", when="+docs")
depends_on("py-pygments@2.13.0:", type="build", when="+docs")
# Docs dependencies
depends_on("doxygen", type="build", when="+docs")
depends_on("py-sphinx", type="build", when="+docs")
depends_on("py-sphinx-rtd-theme@1:", type="build", when="+docs")
depends_on("py-sphinxemoji@0.2.0:", type="build", when="+docs")
depends_on("py-sphinx-tabs@3.3.1:", type="build", when="+docs")
depends_on("py-pygments@2.13.0:", type="build", when="+docs")
# Other Python dependencies - from scripts/setup.py
# Moved to python3-geopmdpy as of v3.1
depends_on("python@3.6:3", type=("build", "run"))
depends_on("py-setuptools@53.0.0:", type="build")
depends_on("py-cffi@1.14.5:", type="run")
depends_on("py-natsort@8.2.0:", type="run")
depends_on("py-numpy@1.19.5:", type="run")
depends_on("py-pandas@1.1.5:", type="run")
depends_on("py-tables@3.7.0:", type="run")
depends_on("py-psutil@5.8.0:", type="run")
depends_on("py-pyyaml@6.0:", type="run")
depends_on("py-docutils@0.18:", type="run", when="+checkprogs")
# Other Python dependencies - from scripts/setup.py
depends_on("python@3.6:3", type=("build", "run"))
depends_on("py-setuptools@53.0.0:", type="build")
depends_on("py-cffi@1.14.5:", type="run")
depends_on("py-natsort@8.2.0:", type="run")
depends_on("py-numpy@1.19.5:", type="run")
depends_on("py-pandas@1.1.5:", type="run")
depends_on("py-tables@3.7.0:", type="run")
depends_on("py-psutil@5.8.0:", type="run")
depends_on("py-pyyaml@6.0:", type="run")
depends_on("py-docutils@0.18:", type="run", when="+checkprogs")
# Other dependencies
for ver in ["3.0.1", "3.1.0", "develop"]:
depends_on(f"geopm-service@{ver}", type=("build", "run"), when=f"@{ver}")
for ver in ["3.0.1", "develop"]:
depends_on(f"geopm-service@{ver}", type="build", when=f"@{ver}")
depends_on(f"py-geopmdpy@{ver}", type="run", when=f"@{ver}")
if ver != "3.0.1": # geopmpy integrated into autotools build until 3.1
depends_on(f"py-geopmpy@{ver}", type="run", when=f"@{ver}")
depends_on("py-setuptools-scm@7.0.3:", when="@3.1:", type="build")
depends_on("bash-completion")
depends_on("unzip")
depends_on("mpi@2.2:", when="+mpi")
@@ -103,13 +96,6 @@ class GeopmRuntime(AutotoolsPackage):
extends("python")
@property
def configure_directory(self):
if self.version == Version("3.0.1"):
return "."
else:
return "libgeopm"
@property
def install_targets(self):
target = ["install"]
@@ -119,26 +105,20 @@ def install_targets(self):
def autoreconf(self, spec, prefix):
bash = which("bash")
with working_dir(self.configure_directory):
if not spec.version.isdevelop():
if self.version == Version("3.0.1"):
version_file = "VERSION_OVERRIDE"
else:
version_file = "VERSION"
# Required to workaround missing VERSION files
# from GitHub generated source tarballs
with open(version_file, "w") as fd:
fd.write(f"{spec.version}")
bash("./autogen.sh")
if not spec.version.isdevelop():
# Required to workaround missing VERSION files
# from GitHub generated source tarballs
with open("VERSION_OVERRIDE", "w") as fd:
fd.write(f"{spec.version}")
bash("./autogen.sh")
def configure_args(self):
with when("@3.0.1"):
args = [
"--with-bash-completion-dir="
+ join_path(self.spec.prefix, "share", "bash-completion", "completions")
]
args += ["--disable-geopmd-local", f"--with-geopmd={self.spec['geopm-service'].prefix}"]
args = [
"--with-bash-completion-dir="
+ join_path(self.spec.prefix, "share", "bash-completion", "completions"),
"--disable-geopmd-local",
f"--with-geopmd={self.spec['geopm-service'].prefix}",
]
args += self.enable_or_disable("debug")
args += self.enable_or_disable("docs")

View File

@@ -18,14 +18,13 @@ class GeopmService(AutotoolsPackage):
homepage = "https://geopm.github.io"
git = "https://github.com/geopm/geopm.git"
url = "https://github.com/geopm/geopm/tarball/v3.1.0"
url = "https://github.com/geopm/geopm/tarball/v3.0.1"
maintainers("bgeltz", "cmcantalupo")
license("BSD-3-Clause")
tags = ["e4s"]
version("develop", branch="dev", get_full_repo=True)
version("3.1.0", sha256="2d890cad906fd2008dc57f4e06537695d4a027e1dc1ed92feed4d81bb1a1449e")
version("3.0.1", sha256="32ba1948de58815ee055470dcdea64593d1113a6cad70ce00ab0286c127f8234")
depends_on("c", type="build") # generated
@@ -33,7 +32,7 @@ class GeopmService(AutotoolsPackage):
depends_on("fortran", type="build") # generated
variant("debug", default=False, description="Enable debug")
variant("docs", default=True, when="@3.0.1", description="Create man pages with Sphinx")
variant("docs", default=True, description="Create man pages with Sphinx")
variant("systemd", default=True, description="Enable use of systemd/DBus")
variant("liburing", default=True, description="Enables the use of liburing for batch I/O")
variant(
@@ -70,30 +69,24 @@ class GeopmService(AutotoolsPackage):
depends_on("libtool", type="build")
depends_on("file")
with when("@3.0.1"):
# Docs dependencies
# Moved to python3-geopm-doc as of v3.1
depends_on("doxygen", type="build", when="+docs")
depends_on("py-docstring-parser@0.13.0:", type="build", when="+docs")
depends_on("py-sphinx", type="build", when="+docs")
depends_on("py-sphinx-rtd-theme@1:", type="build", when="+docs")
depends_on("py-sphinxemoji@0.2.0:", type="build", when="+docs")
depends_on("py-sphinx-tabs@3.3.1:", type="build", when="+docs")
depends_on("py-pygments@2.13.0:", type="build", when="+docs")
# Docs dependencies
depends_on("doxygen", type="build", when="+docs")
depends_on("py-docstring-parser@0.13.0:", type="build", when="+docs")
depends_on("py-sphinx", type="build", when="+docs")
depends_on("py-sphinx-rtd-theme@1:", type="build", when="+docs")
depends_on("py-sphinxemoji@0.2.0:", type="build", when="+docs")
depends_on("py-sphinx-tabs@3.3.1:", type="build", when="+docs")
depends_on("py-pygments@2.13.0:", type="build", when="+docs")
# Other Python dependencies - from service/setup.py
# Moved to python3-geopmdpy as of v3.1
depends_on("py-setuptools@53.0.0:", type="build")
depends_on("py-dasbus@1.6.0:", type=("build", "run"))
depends_on("py-psutil@5.8.0:", type=("build", "run"))
depends_on("py-jsonschema@3.2.0:", type=("build", "run"))
depends_on("py-pyyaml@6.0:", type=("build", "run"))
depends_on("py-cffi@1.14.5:", type="run")
# Other Python dependencies - from service/setup.py
depends_on("py-dasbus@1.6.0:", type=("build", "run"))
depends_on("py-cffi@1.14.5:", type="run")
depends_on("py-psutil@5.8.0:", type="run")
depends_on("py-jsonschema@3.2.0:", type="run")
depends_on("py-pyyaml@6.0:", type="run")
depends_on("py-setuptools@53.0.0:", type="build")
# Other dependencies
for ver in ["3.1.0", "develop"]:
depends_on(f"py-geopmdpy@{ver}", type="run", when=f"@{ver}")
depends_on("py-setuptools-scm@7.0.3:", when="@3.1:", type="build")
depends_on("bash-completion")
depends_on("unzip")
depends_on("systemd", when="+systemd")
@@ -104,24 +97,15 @@ class GeopmService(AutotoolsPackage):
extends("python")
@property
def configure_directory(self):
if self.version == Version("3.0.1"):
return "service"
else:
return "libgeopmd"
configure_directory = "service"
def autoreconf(self, spec, prefix):
bash = which("bash")
with working_dir(self.configure_directory):
with working_dir("service"):
if not spec.version.isdevelop():
if self.version == Version("3.0.1"):
version_file = "VERSION_OVERRIDE"
else:
version_file = "VERSION"
# Required to workaround missing VERSION files
# from GitHub generated source tarballs
with open(version_file, "w") as fd:
with open("VERSION_OVERRIDE", "w") as fd:
fd.write(f"{spec.version}")
bash("./autogen.sh")

View File

@@ -6,7 +6,7 @@
from spack.package import *
class Gh(GoPackage):
class Gh(Package):
"""GitHub's official command line tool."""
homepage = "https://github.com/cli/cli"
@@ -43,10 +43,14 @@ class Gh(GoPackage):
depends_on("go@1.21:", type="build", when="@2.33.0:")
depends_on("go@1.22:", type="build", when="@2.47.0:")
phases = ["build", "install"]
class GoBuilder(spack.build_systems.go.GoBuilder):
@property
def build_args(self):
args = super().build_args
args.extend(["-trimpath", "./cmd/gh"])
return args
def setup_build_environment(self, env):
# Point GOPATH at the top of the staging dir for the build step.
env.prepend_path("GOPATH", self.stage.path)
def build(self, spec, prefix):
make()
def install(self, spec, prefix):
make("install", "prefix=" + prefix)

View File

@@ -34,8 +34,8 @@ class Gperftools(AutotoolsPackage, CMakePackage):
version("2.4", sha256="982a37226eb42f40714e26b8076815d5ea677a422fb52ff8bfca3704d9c30a2d")
version("2.3", sha256="093452ad45d639093c144b4ec732a3417e8ee1f3744f2b0f8d45c996223385ce")
depends_on("c", type="build")
depends_on("cxx", type="build")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
variant("sized_delete", default=False, description="Build sized delete operator")
variant(

View File

@@ -17,15 +17,14 @@ class Halide(CMakePackage, PythonExtension):
maintainers("wraith1995")
version("main", branch="main")
version("18.0.0", sha256="1176b42a3e2374ab38555d9316c78e39b157044b5a8e765c748bf3afd2edb351")
version("17.0.2", sha256="5f3a43ba27b47d3dcbcee963faabf1d633d4151031e60b6ff7cc62472e5677a0")
version("17.0.1", sha256="beb18331d9e4b6f69943bcc75fb9d923a250ae689f09f6940a01636243289727")
version("17.0.0", sha256="7e5a526b4074887b528d25b0265ddfa92c0a6d8bfdfbbba536313ecddf352da3")
version("16.0.0", sha256="a0cccee762681ea697124b8172dd65595856d0fa5bd4d1af7933046b4a085b04")
version("15.0.0", sha256="6680424f80c5731a85d977c06327096afe5af31da3667e91d4d36a25fabdda15")
version("14.0.0", sha256="f9fc9765217cbd10e3a3e3883a60fc8f2dbbeaac634b45c789577a8a87999a01")
depends_on("c", type="build")
depends_on("cxx", type="build")
version("16.0.0", sha256="a0cccee762681ea697124b8172dd65595856d0fa5bd4d1af7933046b4a085b04")
version("17.0.0", sha256="7e5a526b4074887b528d25b0265ddfa92c0a6d8bfdfbbba536313ecddf352da3")
version("17.0.1", sha256="beb18331d9e4b6f69943bcc75fb9d923a250ae689f09f6940a01636243289727")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
variant(
"build_type",
default="Release",
@@ -69,8 +68,6 @@ class Halide(CMakePackage, PythonExtension):
depends_on("llvm@15.0.0:15", type=("link", "run"), when="@15.0.0:15")
depends_on("llvm@16.0.0:16", type=("link", "run"), when="@16.0.0:16")
depends_on("llvm@17.0.0:17", type=("link", "run"), when="@17.0.0:17")
depends_on("llvm@17.0.0:18", type=("link", "run"), when="@18.0.0:18")
for v in _values:
depends_on(
"llvm targets={0}".format(v), type=("link", "run"), when="targets={0}".format(v)
@@ -82,8 +79,7 @@ class Halide(CMakePackage, PythonExtension):
depends_on("python@3.8:", type=("build", "link", "run"), when="+python")
# See https://github.com/halide/Halide/blob/main/requirements.txt
depends_on("py-pybind11@2.6.2", type="build", when="@14.0.0:17+python")
depends_on("py-pybind11@2.10.4", type="build", when="@18.0.0:+python")
depends_on("py-pybind11@2.6.2", type="build", when="+python")
depends_on("py-setuptools@43:", type="build", when="+python")
depends_on("py-scikit-build", type="build", when="+python")
depends_on("py-wheel", type="build", when="+python")

View File

@@ -120,11 +120,9 @@ def fix_configure(self):
filter_file("CC=./\\$SZIP_CC", "", "configure")
def flag_handler(self, name, flags):
if name == "cflags":
flags.append(self.compiler.cc_pic_flag)
if self.spec.compiler.name in ["apple-clang", "oneapi"]:
if self.spec.compiler.name == "apple-clang":
if name == "cflags":
flags.append("-Wno-error=implicit-function-declaration")
flags.append("-Wno-error=implicit-int")
return flags, None, None
@@ -162,4 +160,15 @@ def configure_args(self):
if "zlib" in self.spec:
extra_args.append("--with-zlib={0}".format(self.spec["zlib-api"].prefix))
# https://forum.hdfgroup.org/t/help-building-hdf4-with-clang-error-implicit-declaration-of-function-test-mgr-szip-is-invalid-in-c99/7680
# -fPIC: https://github.com/spack/spack/issues/43792
if self.spec.satisfies("%apple-clang"):
extra_args.append(
"CFLAGS=-Wno-error=implicit-function-declaration {0}".format(
self.compiler.cc_pic_flag
)
)
else:
extra_args.append("CFLAGS={0}".format(self.compiler.cc_pic_flag))
return extra_args

View File

@@ -18,11 +18,6 @@ class Heyoka(CMakePackage):
# SPDX identifier of the project's license.
license("MPL-2.0")
version("5.0.0", sha256="e9a4b5683a08706addc1b448e232f1e269d78586859fe3f4d93d4c5eee3bc8ae")
version("4.0.3", sha256="47608e785607782d896ae2347a29a143cdb7e5c602f48f5ea795cf682051dbee")
version("4.0.2", sha256="8eba8fe0626c3d48affad3055e490e5d21430a420af867d7d52c18ed6b602ae0")
version("4.0.1", sha256="25ad39a716c5d548260d505225a13b7fa86534761b6e3d3de991d9d097ec615f")
version("4.0.0", sha256="bc375271773993bd89d604a269c4931e54fb8508c8235397d47f0b60b78f3cdf")
version("3.2.0", sha256="37db24fbaf0e65d740ffb20f76ac1c8ab9fbd6893dc87dfd483c965b71dbf465")
version("3.1.0", sha256="7eecab47f44a9fff022cf24f226763dab8b075a9fdaa543a42f64bb2634b3ad8")
version("3.0.0", sha256="03ccb6fb015ad43877781763c0f2f49bd6db64c8b9493174e589c970ef00d7f2")
@@ -54,8 +49,7 @@ class Heyoka(CMakePackage):
depends_on("cmake@3.18:", type="build")
# Required dependencies
depends_on("llvm@13:17", when="@:4")
depends_on("llvm@13:18", when="@5")
depends_on("llvm@13:17")
depends_on("boost@1.69: +serialization")
depends_on("fmt@9:10")
depends_on("spdlog")

View File

@@ -24,7 +24,7 @@ class HpxKokkos(CMakePackage, CudaPackage, ROCmPackage):
version("0.2.0", sha256="289b711cea26afe80be002fc521234c9194cd0e8f69863f3b08b654674dbe5d5")
version("0.1.0", sha256="24edb817d0969f4aea1b68eab4984c2ea9a58f4760a9b8395e20f85b178f0850")
depends_on("cxx", type="build")
depends_on("cxx", type="build") # generated
cxxstds = ("14", "17", "20")
variant(

View File

@@ -41,7 +41,7 @@ class Hpx(CMakePackage, CudaPackage, ROCmPackage):
version("1.2.0", sha256="20942314bd90064d9775f63b0e58a8ea146af5260a4c84d0854f9f968077c170")
version("1.1.0", sha256="1f28bbe58d8f0da600d60c3a74a644d75ac777b20a018a5c1c6030a470e8a1c9")
depends_on("cxx", type="build")
depends_on("cxx", type="build") # generated
generator("ninja")

View File

@@ -7,7 +7,7 @@
from spack.package import *
class Hybpiper(PythonPackage, Package):
class Hybpiper(Package):
"""HybPiper was designed for targeted sequence capture, in which DNA
sequencing libraries are enriched for gene regions of interest,
especially for phylogenetics. HybPiper is a suite of Python scripts
@@ -17,51 +17,24 @@ class Hybpiper(PythonPackage, Package):
homepage = "https://github.com/mossmatters/HybPiper"
url = "https://github.com/mossmatters/HybPiper/archive/v1.2.0.tar.gz"
git = "https://github.com/mossmatters/HybPiper/HybPiper.git"
maintainers("snehring")
license("GPL-3.0-or-later")
version("2.1.8", sha256="ff358a560d6dbbec4fdac67457451cb4e6ca21b8661044c43902aa013d805e47")
version("1.3.1", sha256="7ca07a9390d1ca52c72721774fa220546f18d3fa3b58500f68f3b2d89dbc0ecf")
version("1.2.0", sha256="34c7b324e9bcacb6ccfe87dc50615d6f93866433b61a59291707efa858b6df57")
build_system(
conditional("python_pip", when="@2.1:"),
conditional("generic", when="@:1.3.1"),
default="python_pip",
)
depends_on("python@2.7:", type=("build", "run"))
depends_on("python@3.9:", type=("build", "run"), when="@2.1:")
depends_on("py-biopython", type=("build", "run"))
depends_on("py-biopython@1.80:", type=("build", "run"), when="@2.1:")
depends_on("py-matplotlib", type=("build", "run"), when="@2.1:")
depends_on("py-pandas", type=("build", "run"), when="@2.1:")
depends_on("py-pebble", type=("build", "run"), when="@2.1:")
depends_on("py-progressbar2", type=("build", "run"), when="@2.1:")
depends_on("py-psutil", type=("build", "run"), when="@2.1:")
depends_on("py-scipy", type=("build", "run"), when="@2.1:")
depends_on("py-seaborn", type=("build", "run"), when="@2.1:")
depends_on("exonerate")
depends_on("exonerate@2.4:", when="@2.1:")
depends_on("bbmap", when="@2.1:")
depends_on("blast-plus")
depends_on("blast-plus@2.9.0:", when="@2.1:")
depends_on("bwa")
depends_on("diamond", when="@2.1:")
depends_on("mafft", when="@2.1:")
depends_on("parallel")
depends_on("samtools")
depends_on("samtools@1.14", when="@2.1:")
depends_on("spades")
depends_on("spades@3.15.4:", when="@2.1:")
depends_on("parallel")
depends_on("bwa")
depends_on("samtools")
def setup_run_environment(self, env):
env.set("HYBPIPER_HOME", self.prefix)
@when("@:1.3.1")
def install(self, spec, prefix):
mkdirp(prefix.bin)
install("*.py", prefix.bin)

View File

@@ -234,8 +234,7 @@
@IntelOneApiPackage.update_description
class IntelOneapiCompilers(IntelOneApiPackage, CompilerPackage):
"""Intel oneAPI Compilers. Includes: icx, icpx, ifx, and ifort.
Releases before 2024.0 include icc/icpc"""
"""Intel oneAPI Compilers. Includes: icc, icpc, ifort, icx, icpx, and ifx."""
maintainers("rscohn2")

View File

@@ -4,8 +4,6 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import re
from spack.package import *
@@ -139,16 +137,6 @@ class IntelOneapiMpi(IntelOneApiLibraryPackage):
provides("mpi@:3.1")
conflicts("+generic-names +classic-names")
executables = [r"^mpiicpx$"]
version_regex = r"Intel\(R\) MPI Library (\S+)"
@classmethod
def determine_version(cls, exe):
output = Executable(exe)("-v", output=str, error=str)
match = re.search(cls.version_regex, output)
# strip @ from unsubstituted @IMPI_OFFICIALVERSION@
return match.group(1).strip("@") if match else None
@property
def mpiexec(self):
return self.component_prefix.bin.mpiexec

View File

@@ -4,7 +4,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os.path
import llnl.util.lang as lang
from llnl.util import lang, tty
from spack.package import *
@@ -202,7 +202,6 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage):
variant(dev, default=dflt, description=desc)
conflicts("+cuda", when="+rocm", msg="CUDA and ROCm are not compatible in Kokkos.")
depends_on("intel-oneapi-dpl", when="+sycl")
depends_on("rocthrust", when="@4.3: +rocm")
for opt, (dflt, desc) in options_variants.items():
variant(opt, default=dflt, description=desc, when=("+cuda" if "cuda" in opt else None))
@@ -355,7 +354,6 @@ def cmake_args(self):
if "+rocm" in self.spec:
options.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc))
options.append(self.define("Kokkos_ENABLE_ROCTHRUST", True))
elif "+wrapper" in self.spec:
options.append(
self.define("CMAKE_CXX_COMPILER", self.spec["kokkos-nvcc-wrapper"].kokkos_cxx)
@@ -380,6 +378,20 @@ def cmake_args(self):
test_script_relative_path = join_path("scripts", "spack_test")
# TODO: Replace this method and its 'get' use for cmake path with
# join_path(self.spec['cmake'].prefix.bin, 'cmake') once stand-alone
# tests can access build dependencies through self.spec['cmake'].
def cmake_bin(self, set=True):
"""(Hack) Set/get cmake dependency path."""
filepath = join_path(self.install_test_root, "cmake_bin_path.txt")
if set:
with open(filepath, "w") as out_file:
cmake_bin = join_path(self.spec["cmake"].prefix.bin, "cmake")
out_file.write("{0}\n".format(cmake_bin))
elif os.path.isfile(filepath):
with open(filepath, "r") as in_file:
return in_file.read().strip()
@run_after("install")
def setup_build_tests(self):
# Skip if unsupported version
@@ -398,19 +410,41 @@ def setup_build_tests(self):
]
cmake(*cmake_args)
self.cache_extra_test_sources(cmake_out_path)
self.cmake_bin(set=True)
def test_run(self):
"""Test if kokkos builds and runs"""
def build_tests(self, cmake_path):
"""Build test."""
cmake_bin = self.cmake_bin(set=False)
if not cmake_bin:
tty.msg("Skipping kokkos test: cmake_bin_path.txt not found")
return
cmake_args = [cmake_path, "-DEXECUTABLE_OUTPUT_PATH=" + cmake_path]
if not self.run_test(cmake_bin, options=cmake_args, purpose="Generate the Makefile"):
tty.warn("Skipping kokkos test: failed to generate Makefile")
return
if not self.run_test("make", purpose="Build test software"):
tty.warn("Skipping kokkos test: failed to build test")
def run_tests(self, cmake_path):
"""Run test."""
if not self.run_test(
"make", options=[cmake_path, "test"], purpose="Checking ability to execute."
):
tty.warn("Failed to run kokkos test")
def test(self):
# Skip if unsupported version
cmake_path = join_path(
self.test_suite.current_test_cache_dir, self.test_script_relative_path, "out"
)
if not os.path.exists(cmake_path):
raise SkipTest(f"{cmake_path} is missing")
tty.warn("Skipping smoke tests: {0} is missing".format(cmake_path))
return
cmake = self.spec["cmake"].command
cmake(cmake_path, "-DEXECUTABLE_OUTPUT_PATH=" + cmake_path)
make = which("make")
make()
make(cmake_path, "test")
self.build_tests(cmake_path)
self.run_tests(cmake_path)

View File

@@ -1,33 +0,0 @@
From b42116d6067a5233f72e5598032d4b396bb8eaac Mon Sep 17 00:00:00 2001
From: NIIBE Yutaka <gniibe@fsij.org>
Date: Thu, 4 Jul 2024 11:17:03 +0900
Subject: [PATCH] cipher:blake2: Fix for use_avx512.
* cipher/blake2.c (blake2s_init_ctx): Conditional with USE_AVX512.
--
GnuPG-bug-id: 7184
Reported-by: Aaron Howland
Fixing-commit: 909daa700e4b45d75469df298ee564b8fc2f4b72
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
---
cipher/blake2.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cipher/blake2.c b/cipher/blake2.c
index 451e71f6..1a04fbd8 100644
--- a/cipher/blake2.c
+++ b/cipher/blake2.c
@@ -830,7 +830,7 @@ static gcry_err_code_t blake2s_init_ctx(void *ctx, unsigned int flags,
#ifdef USE_AVX
c->use_avx = !!(features & HWF_INTEL_AVX);
#endif
-#ifdef USE_AVX
+#ifdef USE_AVX512
c->use_avx512 = !!(features & HWF_INTEL_AVX512);
#endif
--
2.30.2

View File

@@ -56,9 +56,6 @@ def flag_handler(self, name, flags):
# https://dev.gnupg.org/T6442
patch("rndgetentropy_no_getrandom.patch", when="@=1.10.2 platform=darwin")
# https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commit;h=b42116d6067a5233f72e5598032d4b396bb8eaac
patch("conditional_avx512.patch", when="@1.11.0")
def check(self):
# Without this hack, `make check` fails on macOS when SIP is enabled
# https://bugs.gnupg.org/gnupg/issue2056

View File

@@ -1,22 +0,0 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Libgudev(MesonPackage):
"""Provides GObject bindings for libudev."""
homepage = "https://gitlab.gnome.org/GNOME/libgudev/"
url = "https://download.gnome.org/sources/libgudev/238/libgudev-238.tar.xz"
maintainers("teaguesterling")
license("LGPL2.1", checked_by="teaguesterling")
version("238", sha256="61266ab1afc9d73dbc60a8b2af73e99d2fdff47d99544d085760e4fa667b5dd1")
with default_args(type=("build", "link", "run")):
depends_on("glib@2.38:")
depends_on("systemd@251:") # For libuvdev

View File

@@ -227,47 +227,34 @@ def build(self, spec, prefix):
# now build the library
with working_dir(os.path.join(self.build_directory, "generated")):
if spec.satisfies("@2.6.0"):
config_args = [
f"--prefix={prefix}",
"--enable-shared",
f"--with-boost={spec['boost'].prefix}",
f"--with-cxx-optflags={self.optflags}",
]
config_args += self.enable_or_disable("debug", activation_value=lambda x: "opt")
config_args += self.enable_or_disable("fortran")
configure = Executable("./configure")
configure(*config_args)
# see https://github.com/evaleev/libint/issues/144
force_remove(
join_path("include", "libint2", "basis.h"),
join_path("include", "libint2", "config.h"),
)
cmake_args = [
"..",
f"-DCMAKE_INSTALL_PREFIX={prefix}",
"-DLIBINT2_BUILD_SHARED_AND_STATIC_LIBS=ON",
]
if "+fortran" in spec:
cmake_args.append("-DENABLE_FORTRAN=ON")
if "+debug" in spec:
cmake_args.append("CMAKE_BUILD_TYPE=Debug")
cmake = Executable("cmake")
mkdirp("build")
with working_dir("build"):
cmake(*cmake_args)
make()
else:
cmake_args = [
"..",
f"-DCMAKE_INSTALL_PREFIX={prefix}",
"-DLIBINT2_BUILD_SHARED_AND_STATIC_LIBS=ON",
]
if "+fortran" in spec:
cmake_args.append("-DENABLE_FORTRAN=ON")
if "+debug" in spec:
cmake_args.append("CMAKE_BUILD_TYPE=Debug")
cmake = Executable("cmake")
mkdirp("build")
with working_dir("build"):
cmake(*cmake_args)
make()
@when("@2.6.0:")
def check(self):
path = join_path(self.build_directory, "generated")
if self.spec.satisfies("@2.9.0:"):
path = join_path(path, "build")
with working_dir(path):
with working_dir(os.path.join(self.build_directory, "generated", "build")):
make("check")
@when("@2.6.0:")
def install(self, spec, prefix):
path = join_path(self.build_directory, "generated")
if self.spec.satisfies("@2.9.0:"):
path = join_path(path, "build")
with working_dir(path):
with working_dir(os.path.join(self.build_directory, "generated", "build")):
make("install")
@when("@:2.6.0")
@@ -282,7 +269,3 @@ def patch(self):
"export/fortran/Makefile",
string=True,
)
@property
def libs(self):
return find_libraries("libint2", self.spec.prefix, shared=True, recursive=True)

View File

@@ -52,7 +52,6 @@ class Librsvg(AutotoolsPackage):
depends_on("libffi")
depends_on("shared-mime-info")
depends_on("py-docutils", type="build")
def url_for_version(self, version):
url = "https://download.gnome.org/sources/librsvg/"

View File

@@ -1,50 +0,0 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Libtraceevent(MakefilePackage):
"""Library to parse raw trace event formats."""
homepage = "https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git"
url = "https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/snapshot/libtraceevent-1.8.2.tar.gz"
git = "https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git"
maintainers("Jordan474")
license("LGPL-2.1-or-later AND GPL-2.0-or-later")
version("1.8.2", sha256="919f0c024c7b5059eace52d854d4df00ae7e361a4033e1b4d6fe01d97064a1b9")
variant("doc", default=False, description="Build documentation")
depends_on("c", type="build")
depends_on("asciidoc", when="+doc", type="build")
depends_on("xmlto", when="+doc", type="build")
def patch(self):
set_executable("Documentation/install-docs.sh.in")
@property
def common_targets(self):
return [
"prefix=" + self.prefix,
"pkgconfig_dir=" + join_path(self.prefix.lib, "pkgconfig"),
]
@property
def build_targets(self):
result = self.common_targets + ["all"]
if "+doc" in self.spec:
result.append("doc")
return result
@property
def install_targets(self):
result = self.common_targets + ["install"]
if "+doc" in self.spec:
result.append("doc-install")
return result

View File

@@ -1,13 +0,0 @@
diff --git a/configure b/configure
index 494ea9f..1ca6516 100755
--- a/configure
+++ b/configure
@@ -17006,7 +17006,7 @@ int
main ()
{
- fftw_plan *plan;
+ fftw_plan plan;
fftw_complex *a1, *a2;
fftw_execute_dft(plan, a1, a2);

View File

@@ -54,12 +54,3 @@ def configure_args(self):
args += ["--without-mpi"]
return args
# misuse of fftw_plan in m4 for fftw detection (configure fails with gcc 14)
# two patches for (1) m4 macro from upstream and (2) pre-generated configure in tarball
patch(
"https://gitlab.com/libvdwxc/libvdwxc/-/commit/9340f857515c4a2e56d2aa7cf3a21c41ba8559c3.diff",
sha256="b9ad695e54a25d7ffa92f783bb0a31d3b421225f97958972e32ba42893844b80",
when="@:0.4.0",
)
patch("fftw-detection.patch", when="@:0.4.0")

View File

@@ -1,76 +0,0 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Libwnck(MesonPackage, AutotoolsPackage):
"""Window Navigator Construction Kit"""
homepage = "https://gitlab.gnome.org/GNOME/libwnck"
url = "https://download.gnome.org/sources/libwnck/3.4/libwnck-3.4.9.tar.xz"
list_url = "https://download.gnome.org/sources/libwnck/"
list_depth = 2
def url_for_version(self, version):
base = "https://download.gnome.org/sources/libwnck"
dirname = version.up_to(1) if version >= Version("40") else version.up_to(2)
filename = f"libwnck-{version.up_to(3)}.tar.xz"
return f"{base}/{dirname}/{filename}"
license("GPLv2", checked_by="teaguesterling")
version("43.0", sha256="905bcdb85847d6b8f8861e56b30cd6dc61eae67ecef4cd994a9f925a26a2c1fe")
version("40.1", sha256="03134fa114ef3fbe34075aa83678f58aa2debe9fcef4ea23c0779e28601d6611")
version("3.36.0", sha256="bc508150b3ed5d22354b0e6774ad4eee465381ebc0ace45eb0e2d3a4186c925f")
version("3.24.1", sha256="afa6dc283582ffec15c3374790bcbcb5fb422bd38356d72deeef35bf7f9a1f04")
version("3.20.1", sha256="1cb03716bc477058dfdf3ebfa4f534de3b13b1aa067fcd064d0b7813291cba72")
version("3.14.1", sha256="bb643c9c423c8aa79c59973ce27ce91d3b180d1e9907902278fb79391f52befa")
version("3.4.9", sha256="96e6353f2701a1ea565ece54d791a7bebef1832d96126f7377c54bb3516682c4")
variant("cairo", default=True, description="Build with cairo support")
variant("install_tools", default=True, description="Install WNCK tools")
variant("xres", default=True, description="Build with xres support")
variant("introspection", default=True, description="Build with gobject-introspection support")
variant(
"startup_notification", default=True, description="Build with startup-notification support"
)
variant("gtk_doc", default=False, description="Build documentation")
build_system(
conditional("meson", when="@3.31:"),
conditional("autotools", when="@:3.24"),
default="meson",
)
with default_args(type="build"):
depends_on("pkgconfig@0.9.0:")
depends_on("gettext", when="@3.31:")
depends_on("intltool@0.40.6:", when="@:3.24")
depends_on("cmake", when="build_system=meson")
depends_on("gtk-doc@1.9:", when="+gtk_doc")
with default_args(type=("build", "link", "run")):
depends_on("glib@2")
depends_on("gdk-pixbuf")
depends_on("gtkplus@3.22:")
depends_on("cairo+X+gobject", when="+cairo")
depends_on("libxres", when="+xres")
depends_on("gobject-introspection", when="+introspection")
depends_on("startup-notification", when="+startup_notification")
def configure_args(self):
args = []
args += self.enable_or_disable("introspection")
args += self.enable_or_disable("install_tools")
args += self.enable_or_disable("startup_notification")
args += self.enable_or_disable("gtk_doc")
return args
def setup_dependent_build_environment(self, env, dep_spec):
if self.spec.satisfies("+introspection") and dep_spec.satisfies("+introspection"):
env.append_path("XDG_DATA_DIRS", self.prefix.share)

View File

@@ -14,56 +14,20 @@ class LinuxPam(AutotoolsPackage):
license("BSD-3-Clause")
version("1.6.1", sha256="f8923c740159052d719dbfc2a2f81942d68dd34fcaf61c706a02c9b80feeef8e")
version("1.6.0", sha256="fff4a34e5bbee77e2e8f1992f27631e2329bcbf8a0563ddeb5c3389b4e3169ad")
version("1.5.3", sha256="7ac4b50feee004a9fa88f1dfd2d2fa738a82896763050cd773b3c54b0a818283")
version("1.5.2", sha256="e4ec7131a91da44512574268f493c6d8ca105c87091691b8e9b56ca685d4f94d")
version("1.5.1", sha256="201d40730b1135b1b3cdea09f2c28ac634d73181ccd0172ceddee3649c5792fc")
version("1.5.2", sha256="e4ec7131a91da44512574268f493c6d8ca105c87091691b8e9b56ca685d4f94d")
version("1.5.0", sha256="02d39854b508fae9dc713f7733bbcdadbe17b50de965aedddd65bcb6cc7852c8")
version("1.4.0", sha256="cd6d928c51e64139be3bdb38692c68183a509b83d4f2c221024ccd4bcddfd034")
version("1.3.1", sha256="eff47a4ecd833fbf18de9686632a70ee8d0794b79aecb217ebd0ce11db4cd0db")
variant("unix", default=True, description="Build pam_unix model")
variant("selinux", default=False, description="Build with selinux support")
variant("nls", default=False, description="Build with natural language support")
variant("xauth", default=False, description="Build with xauth support")
variant("openssl", default=False, description="Build with openssl support")
variant("lastlog", default=False, description="Build pam_lastlog model")
variant("regenerate-docu", default=False, description="Regenerate docs")
depends_on("c", type="build") # generated
depends_on("libtirpc")
depends_on("libxcrypt")
depends_on("xauth", when="+xauth")
depends_on("c", type="build")
with default_args(type="build"):
depends_on("m4")
depends_on("autoconf")
depends_on("automake")
depends_on("libtool")
depends_on("gettext", when="+nls")
with when("+regenerate-docu"):
depends_on("bison")
depends_on("flex")
depends_on("yacc")
def flag_handler(self, name, flags):
if name == "ldflags" and self.spec.satisfies("+nls"):
flags += ["-lintl"] # Addresses https://github.com/spack/spack/issues/44637
return (flags, None, None)
def configure_args(self):
args = [f"--includedir={self.prefix.include.security}"]
args += self.enable_or_disable("nls")
args += self.enable_or_disable("openssl")
args += self.enable_or_disable("unix")
args += self.enable_or_disable("lastlog")
args += self.enable_or_disable("selinux")
args += self.enable_or_disable("regenerate-docu")
if self.spec.satisfies("+xauth"):
xauth = self.spec["xauth"]
args.append(f"--with-xauth={xauth.prefix.bin.xauth}")
return args
return [
"--disable-nls",
"--disable-regenerate-docu",
f"--includedir={self.prefix.include.security}",
]

View File

@@ -65,7 +65,6 @@ class Magma(CMakePackage, CudaPackage, ROCmPackage):
"6.0.2",
"6.1.0",
"6.1.1",
"6.1.2",
]:
depends_on(f"rocm-core@{ver}", when=f"@2.8.0: +rocm ^hip@{ver}")
depends_on("python", when="@master", type="build")

View File

@@ -32,8 +32,8 @@ class Mimalloc(CMakePackage):
version("1.7.7", sha256="0f6663be1e1764851bf9563fcf7a6b3330e23b933eb4737dd07e3289b87895fe")
version("1.7.6", sha256="d74f86ada2329016068bc5a243268f1f555edd620b6a7d6ce89295e7d6cf18da")
depends_on("c", type="build")
depends_on("cxx", type="build")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
depends_on("cmake@3.0:", type="build")

View File

@@ -29,8 +29,8 @@ class Mold(CMakePackage):
version("1.11.0", sha256="99318eced81b09a77e4c657011076cc8ec3d4b6867bd324b8677974545bc4d6f")
version("1.7.1", sha256="fa2558664db79a1e20f09162578632fa856b3cde966fbcb23084c352b827dfa9")
depends_on("c", type="build")
depends_on("cxx", type="build")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
depends_on("blake3", when="@2.2:")
depends_on("mimalloc")

View File

@@ -148,22 +148,15 @@ def patch(self):
if self.spec.satisfies("platform=windows @0:3.9.1"):
force_remove("LAPACKE/include/lapacke_mangling.h")
def xplatform_lib_name(self, lib):
return (
"lib" + lib
if not lib.startswith("lib") and not self.spec.satisfies("platform=windows")
else lib
)
@property
def blas_libs(self):
shared = "+shared" in self.spec
shared = True if "+shared" in self.spec else False
query_parameters = self.spec.last_query.extra_parameters
query2libraries = {
tuple(): [self.xplatform_lib_name("blas")],
("c", "fortran"): [self.xplatform_lib_name("cblas"), self.xplatform_lib_name("blas")],
("c",): [self.xplatform_lib_name("cblas")],
("fortran",): [self.xplatform_lib_name("blas")],
tuple(): ["libblas"],
("c", "fortran"): ["libcblas", "libblas"],
("c",): ["libcblas"],
("fortran",): ["libblas"],
}
key = tuple(sorted(query_parameters))
libraries = query2libraries[key]
@@ -174,13 +167,10 @@ def lapack_libs(self):
shared = True if "+shared" in self.spec else False
query_parameters = self.spec.last_query.extra_parameters
query2libraries = {
tuple(): [self.xplatform_lib_name("lapack")],
("c", "fortran"): [
self.xplatform_lib_name("lapacke"),
self.xplatform_lib_name("lapack"),
],
("c",): [self.xplatform_lib_name("lapacke")],
("fortran",): [self.xplatform_lib_name("lapack")],
tuple(): ["liblapack"],
("c", "fortran"): ["liblapacke", "liblapack"],
("c",): ["liblapacke"],
("fortran",): ["liblapack"],
}
key = tuple(sorted(query_parameters))
libraries = query2libraries[key]

View File

@@ -14,11 +14,6 @@ class Nextflow(Package):
maintainers("dialvarezs", "marcodelapierre")
version(
"24.04.3",
sha256="e258f6395a38f044eb734cba6790af98b561aa521f63e2701fe95c050986e11c",
expand=False,
)
version(
"24.04.1",
sha256="d1199179e31d0701d86e6c38afa9ccade93f62d545e800824be7767a130510ba",

View File

@@ -1,22 +0,0 @@
diff --git a/deps/cares/config/linux/ares_config.h b/deps/cares/config/linux/ares_config.h
index 3cb135a..88934ad 100644
--- a/deps/cares/config/linux/ares_config.h
+++ b/deps/cares/config/linux/ares_config.h
@@ -116,7 +116,7 @@
#define HAVE_GETNAMEINFO 1
/* Define to 1 if you have `getrandom` */
-#define HAVE_GETRANDOM 1
+#undef HAVE_GETRANDOM
/* Define to 1 if you have `getservbyport_r` */
#define HAVE_GETSERVBYPORT_R 1
@@ -329,7 +329,7 @@
#define HAVE_SYS_PARAM_H 1
/* Define to 1 if you have the <sys/random.h> header file. */
-#define HAVE_SYS_RANDOM_H 1
+#undef HAVE_SYS_RANDOM_H
/* Define to 1 if you have the <sys/select.h> header file. */
#define HAVE_SYS_SELECT_H 1

View File

@@ -22,22 +22,17 @@ class NodeJs(Package):
license("Unicode-TOU")
# Current (latest features) - odd major number
version("21.7.3", sha256="ce1f61347671ef219d9c2925313d629d3fef98fc8d7f5ef38dd4656f7d0f58e7")
version("19.2.0", sha256="aac9d1a366fb57d68f4639f9204d1de5d6387656959a97ed929a5ba9e62c033a")
version("17.9.1", sha256="1102f5e0aafaab8014d19c6c57142caf2ba3ef69d88d7a7f0f82798051796027")
version("15.3.0", sha256="cadfa384a5f14591b84ce07a1afe529f28deb0d43366fb0ae4e78afba96bfaf2")
version("13.8.0", sha256="815b5e1b18114f35da89e4d98febeaba97555d51ef593bd5175db2b05f2e8be6")
version("13.5.0", sha256="4b8078d896a7550d7ed399c1b4ac9043e9f883be404d9b337185c8d8479f2db8")
# LTS (recommended for most users) - even major number
version(
"22.4.0",
sha256="b62cd83c9a57a11349883f89b1727a16e66c02eb6255a4bf32714ff5d93165f5",
"18.12.1",
sha256="ba8174dda00d5b90943f37c6a180a1d37c861d91e04a4cb38dc1c0c74981c186",
preferred=True,
)
version("22.3.0", sha256="6326484853093ab6b8f361a267445f4a5bff469042cda11a3585497b13136b55")
version("20.15.0", sha256="01e2c034467a324a33e778c81f2808dff13d289eaa9307d3e9b06c171e4d932d")
version("18.12.1", sha256="ba8174dda00d5b90943f37c6a180a1d37c861d91e04a4cb38dc1c0c74981c186")
version("16.18.1", sha256="3d24c9c3a953afee43edc44569045eda56cd45cd58b0539922d17da62736189c")
version("14.21.1", sha256="76ba961536dc11e4dfd9b198c61ff3399e655eca959ae4b66d926f29bfcce9d3")
version("14.16.1", sha256="5f5080427abddde7f22fd2ba77cd2b8a1f86253277a1eec54bc98a202728ce80")
@@ -84,16 +79,9 @@ class NodeJs(Package):
# https://github.com/spack/spack/issues/19310
conflicts(
"%gcc@:4.8",
msg="fails to build with gcc 4.8 (see https://github.com/spack/spack/issues/19310)",
msg="fails to build with gcc 4.8 (see https://github.com/spack/spack/issues/19310",
)
conflicts(
"%gcc@14:", when="@:19", msg="fails to build with gcc 14+ due to implicit conversions"
)
# See https://github.com/nodejs/node/issues/52223
patch("fix-old-glibc-random-headers.patch", when="^glibc@:2.24")
def setup_build_environment(self, env):
# Force use of experimental Python 3 support
env.set("PYTHON", self.spec["python"].command.path)

View File

@@ -43,17 +43,11 @@ class Openmpi(AutotoolsPackage, CudaPackage):
version("main", branch="main", submodules=True)
# Current
version(
"5.0.5", sha256="6588d57c0a4bd299a24103f4e196051b29e8b55fbda49e11d5b3d32030a32776"
) # libmpi.so.40.40.5
# Still supported
version(
"5.0.4", sha256="64526852cdd88b2d30e022087c16ab3e03806c451b10cd691d5c1ac887d8ef9d"
) # libmpi.so.40.40.4
version(
"5.0.3", sha256="990582f206b3ab32e938aa31bbf07c639368e4405dca196fabe7f0f76eeda90b"
) # libmpi.so.40.40.3
# Still supported
version(
"5.0.2", sha256="ee46ad8eeee2c3ff70772160bff877cbf38c330a0bc3b3ddc811648b3396698f"
) # libmpi.so.40.40.2

View File

@@ -24,7 +24,7 @@ class PikaAlgorithms(CMakePackage):
version("0.1.0", sha256="64da008897dfa7373155595c46d2ce6b97a8a3cb5bea33ae7f2d1ff359f0d9b6")
version("main", branch="main")
depends_on("cxx", type="build")
depends_on("cxx", type="build") # generated
generator("ninja")

View File

@@ -51,7 +51,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
version("0.1.0", sha256="aa0ae2396cd264d821a73c4c7ecb118729bb3de042920c9248909d33755e7327")
version("main", branch="main")
depends_on("cxx", type="build")
depends_on("cxx", type="build") # generated
generator("ninja")

View File

@@ -3,6 +3,7 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
@@ -94,24 +95,17 @@ def configure_args(self):
args.append("--enable-pinentry-" + gui)
else:
args.append("--disable-pinentry-" + gui)
return args
def check_version(self, exe_name):
"""Version check"""
exe = which(join_path(self.prefix.bin, exe_name))
out = exe("--version", output=str.split, error=str.split)
assert str(self.version) in out
def test_pinentry(self):
"""Confirm pinentry version"""
self.check_version("pinentry")
def test_guis(self):
"""Check gui versions"""
def test(self):
kwargs = {
"exe": self.prefix.bin.pinentry,
"options": ["--version"],
"expected": [str(self.version)],
}
self.run_test(**kwargs)
for gui in self.supported_guis:
if f"gui={gui}" not in self.spec:
continue
exe_name = f"pinentry-{gui}"
with test_part(self, f"test_guis_{gui}", purpose=f"Check {exe_name} version"):
self.check_version(exe_name)
if "gui=" + gui in self.spec:
kwargs["exe"] = self.prefix.bin.pinentry + "-" + gui
self.run_test(**kwargs)

View File

@@ -23,19 +23,16 @@ class Povray(AutotoolsPackage):
realistic reflections, shading, perspective and other effects.
"""
# Add a proper url for your package's homepage here.
homepage = "http://povray.org/download/"
url = "https://github.com/POV-Ray/povray/archive/v3.7.0.8.tar.gz"
git = "https://github.com/POV-Ray/povray.git"
# maintainers('payerle' )
license("AGPL-3.0-or-later")
version("3.7.0.10", sha256="7bee83d9296b98b7956eb94210cf30aa5c1bbeada8ef6b93bb52228bbc83abff")
# The following version no longer builds
version(
"3.7.0.8",
sha256="53d11ebd2972fc452af168a00eb83aefb61387662c10784e81b63e44aa575de4",
deprecated=True,
)
version("3.7.0.8", sha256="53d11ebd2972fc452af168a00eb83aefb61387662c10784e81b63e44aa575de4")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
@@ -108,8 +105,8 @@ def configure_args(self):
# We generate a generic using process owner and fqdn of build host.
fqdn = socket.getfqdn()
uname = getpass.getuser()
compiled_by = f"Installed by spack <{uname}@{fqdn}>"
extra_args.append(f"COMPILED_BY={compiled_by}")
compiled_by = "Installed by spack <{0}@{1}>".format(uname, fqdn)
extra_args.append("COMPILED_BY={0}".format(compiled_by))
extra_args.append("--disable-silent-rules") # Verbose make output
extra_args += self.enable_or_disable("debug")
@@ -118,32 +115,32 @@ def configure_args(self):
extra_args += self.enable_or_disable("static")
if "+boost" in self.spec:
extra_args.append(f"--with-boost={self.spec['boost'].prefix}")
extra_args.append("--with-boost={0}".format(self.spec["boost"].prefix))
else:
extra_args.append("--without-boost")
if "+jpeg" in self.spec:
extra_args.append(f"--with-libjpeg={self.spec['jpeg'].prefix}")
extra_args.append("--with-libjpeg={0}".format(self.spec["jpeg"].prefix))
else:
extra_args.append("--without-libjpeg")
if "+libpng" in self.spec:
extra_args.append(f"--with-libpng={self.spec['libpng'].prefix}")
extra_args.append("--with-libpng={0}".format(self.spec["libpng"].prefix))
else:
extra_args.append("--without-libpng")
if "+libtiff" in self.spec:
extra_args.append(f"--with-libtiff={self.spec['libtiff'].prefix}")
extra_args.append("--with-libtiff={0}".format(self.spec["libtiff"].prefix))
else:
extra_args.append("--without-libtiff")
if "+mkl" in self.spec:
extra_args.append(f"--with-libmkl={self.spec['mkl'].prefix}")
extra_args.append("--with-libmkl={0}".format(self.spec["mkl"].prefix))
else:
extra_args.append("--without-libmkl")
if "+openexr" in self.spec:
extra_args.append(f"--with-openexr={self.spec['openexr'].prefix}")
extra_args.append("--with-openexr={0}".format(self.spec["openexr"].prefix))
else:
extra_args.append("--without-openexr")
@@ -154,11 +151,12 @@ def configure_args(self):
return extra_args
def test_render_sample(self):
"""Render sample file"""
def test(self):
povs = find(self.prefix.share, "biscuit.pov")[0]
copy(povs, ".")
exe = which("povray")
out = exe("biscuit.pov", output=str.split, error=str.split)
expected = "POV-Ray finished"
assert expected in out
self.run_test(
"povray",
options=["biscuit.pov"],
purpose="test: render sample file",
expected=["POV-Ray finished"],
)

View File

@@ -19,7 +19,6 @@ class PyArrow(PythonPackage):
license("Apache-2.0")
version("1.3.0", sha256="d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85")
version("1.2.3", sha256="3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1")
version("1.2.2", sha256="05caf1fd3d9a11a1135b2b6f09887421153b94558e5ef4d090b567b47173ac2b")
version("1.2.1", sha256="c2dde3c382d9f7e6922ce636bf0b318a7a853df40ecb383b29192e6c5cc82840")
@@ -27,12 +26,9 @@ class PyArrow(PythonPackage):
version("0.14.7", sha256="67f8be7c0cf420424bc62d8d7dc40b44e4bb2f7b515f9cc2954fb36e35797656")
version("0.14.1", sha256="2d30837085011ef0b90ff75aa0a28f5c7d063e96b7e76b6cbc7e690310256685")
depends_on("python@3.8:", type=("build", "run"), when="@1.3:")
depends_on("python@3.6:", type=("build", "run"), when="@1.2.1:")
depends_on("python@2.7:2.8,3.5:", type=("build", "run"), when="@:0.16.0")
depends_on("py-setuptools", type="build", when="@:1.2")
depends_on("py-flit-core@3.2:3", type="build", when="@1.3:")
depends_on("py-setuptools", type="build")
depends_on("py-python-dateutil", type=("build", "run"))
depends_on("py-typing-extensions", type=("build", "run"), when="@1.2.1:1.2 ^python@:3.7")
depends_on("py-typing-extensions", type=("build", "run"), when="@1.2.1: ^python@:3.7")
depends_on("py-python-dateutil@2.7.0:", type=("build", "run"), when="@1.2.1:")
depends_on("py-types-python-dateutil@2.8.10:", type=("build", "run"), when="@1.3:")

View File

@@ -14,7 +14,6 @@ class PyBlosc2(PythonPackage):
license("BSD-3-Clause")
version("2.6.2", sha256="8ca29d9aa988b85318bd8a9b707a7a06c8d6604ae1304cae059170437ae4f53a")
version("2.2.8", sha256="59065aac5e9b01b0e9f3825d8e7f69f64b59bbfab148a47c54e4115f62a97474")
version("2.0.0", sha256="f19b0b3674f6c825b490f00d8264b0c540c2cdc11ec7e81178d38b83c57790a1")

View File

@@ -17,8 +17,6 @@ class PyColored(PythonPackage):
homepage = "https://gitlab.com/dslackw/colored"
pypi = "colored/colored-1.4.2.tar.gz"
version("2.2.4", sha256="595e1dd7f3b472ea5f12af21d2fec8a2ea2cf8f9d93e67180197330b26df9b61")
version("1.4.2", sha256="056fac09d9e39b34296e7618897ed1b8c274f98423770c2980d829fd670955ed")
depends_on("py-setuptools", type="build", when="@1.4.2")
depends_on("py-flit-core@3.2.0:3", type="build", when="@2.2.4:")
depends_on("py-setuptools", type="build")

View File

@@ -17,10 +17,6 @@ class PyDamask(PythonPackage):
license("AGPL-3.0-or-later")
version("3.0.0", sha256="aaebc65b3b10e6c313132ee97cfed427c115079b7e438cc0727c5207e159019f")
version(
"3.0.0-beta2", sha256="513567b4643f39e27ae32b9f75463fc6f388c1548d42f0393cc87ba02d075f6a"
)
version(
"3.0.0-beta", sha256="1e25e409ac559fc437d1887c6ca930677a732db89a3a32499d545dd75e93925c"
)

View File

@@ -12,14 +12,13 @@ class PyGeopmdpy(PythonPackage):
homepage = "https://geopm.github.io"
git = "https://github.com/geopm/geopm.git"
url = "https://github.com/geopm/geopm/tarball/v3.1.0"
url = "https://github.com/geopm/geopm/tarball/v3.0.1"
maintainers("bgeltz", "cmcantalupo")
license("BSD-3-Clause")
tags = ["e4s"]
version("develop", branch="dev", get_full_repo=True)
version("3.1.0", sha256="2d890cad906fd2008dc57f4e06537695d4a027e1dc1ed92feed4d81bb1a1449e")
version("develop", branch="dev")
version("3.0.1", sha256="32ba1948de58815ee055470dcdea64593d1113a6cad70ce00ab0286c127f8234")
depends_on("c", type="build") # generated
@@ -32,23 +31,13 @@ class PyGeopmdpy(PythonPackage):
depends_on("py-jsonschema@3.2.0:", type="run")
depends_on("py-pyyaml@6.0:", type="run")
depends_on("py-setuptools@53.0.0:", type="build")
depends_on("py-setuptools-scm@7.0.3:", when="@3.1:", type="build")
depends_on("py-build@0.9.0:", when="@3.1:", type="build")
@property
def build_directory(self):
if self.version == Version("3.0.1"):
return "service"
else:
return "geopmdpy"
def setup_build_environment(self, env):
if not self.spec.version.isdevelop():
env.set("SETUPTOOLS_SCM_PRETEND_VERSION", self.version)
build_directory = "service"
@run_before("install")
def populate_version(self):
if self.version == Version("3.0.1"):
with working_dir(join_path(self.build_directory, "geopmdpy")):
# @develop builds will have a version of 0.0.0
if not self.spec.version.isdevelop():
with working_dir(join_path("service", "geopmdpy")):
with open("version.py", "w") as fd:
fd.write(f"__version__ = '{self.spec.version}'")

View File

@@ -1,41 +0,0 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyGeopmpy(PythonPackage):
"""The Global Extensible Open Power Manager (GEOPM) Service provides a
user interface for accessing hardware telemetry and settings securely."""
homepage = "https://geopm.github.io"
git = "https://github.com/geopm/geopm.git"
url = "https://github.com/geopm/geopm/tarball/v3.1.0"
maintainers("bgeltz", "cmcantalupo")
license("BSD-3-Clause")
tags = ["e4s"]
version("develop", branch="dev", get_full_repo=True)
version("3.1.0", sha256="2d890cad906fd2008dc57f4e06537695d4a027e1dc1ed92feed4d81bb1a1449e")
depends_on("python@3.6:3", type=("build", "run"))
depends_on("py-setuptools@53.0.0:", type="build")
depends_on("py-setuptools-scm@7.0.3:", when="@3.1:", type="build")
depends_on("py-build@0.9.0:", when="@3.1:", type="build")
depends_on("py-cffi@1.14.5:", type="run")
depends_on("py-natsort@8.2.0:", type="run")
depends_on("py-numpy@1.19.5:", type="run")
depends_on("py-pandas@1.1.5:", type="run")
depends_on("py-tables@3.7.0:", type="run")
depends_on("py-psutil@5.8.0:", type="run")
depends_on("py-pyyaml@6.0:", type="run")
depends_on("py-docutils@0.18:", type="run")
build_directory = "geopmpy"
def setup_build_environment(self, env):
if not self.spec.version.isdevelop():
env.set("SETUPTOOLS_SCM_PRETEND_VERSION", self.version)

View File

@@ -1,29 +0,0 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyMneBids(PythonPackage):
"""MNE-BIDS: Organizing MEG, EEG, and iEEG data according to the BIDS
specification and facilitating their analysis with MNE-Python."""
homepage = "https://mne.tools/mne-bids"
pypi = "mne_bids/mne_bids-0.15.0.tar.gz"
git = "https://github.com/mne-tools/mne-bids"
license("BSD-3-Clause")
version("0.15.0", sha256="8a3ac7fb586ba2be70eb687c67ae060b42693078c56232180b27161124c22f72")
variant("full", default=False, description="Enable full functionality.")
depends_on("python@3.9:", type=("build", "run"))
depends_on("py-hatchling", type="build")
depends_on("py-hatch-vcs", type="build")
depends_on("py-mne@1.5:", type=("build", "run"))
depends_on("py-numpy@1.21.2:", type=("build", "run"))
depends_on("py-scipy@1.7.1:", type=("build", "run"))

View File

@@ -17,7 +17,6 @@ class PyMne(PythonPackage):
license("BSD-3-Clause")
version("1.7.1", sha256="a87bbc998b792532d2c87add8b0f7bbf28a4d8cf5db1bdfb6d6e260791754498")
version("1.6.1", sha256="e4f5683d01cef675eddad788bdb6b44cc015dff0fb1ddfca3c4105edfb757ef8")
version("1.4.2", sha256="dd2bf35a90d951bef15ff3a651045b0373eff26018a821667109c727d55c7d63")
version("1.4.0", sha256="7834f5b79c2c9885ca601bbddd8db3c2b2f37c34443fc0caf0447751f6c37a2a")
@@ -31,10 +30,10 @@ class PyMne(PythonPackage):
variant("full", default=False, when="@:0.23", description="Enable full functionality.")
variant("hdf5", default=False, when="@1:", description="Enable hdf5 functionality.")
depends_on("python@3.9:", when="@1.7:", type=("build", "run"))
depends_on("python@3.8:", when="@1.4:", type=("build", "run"))
depends_on("py-hatchling", when="@1.7:", type="build")
depends_on("py-hatch-vcs", when="@1.7:", type="build")
depends_on("py-setuptools@45:", when="@1.4:", type="build")
depends_on("py-setuptools", type="build")
depends_on("py-setuptools-scm@6.2:", when="@1.4:", type="build")
# requirements_base.txt with versions specified in README.rst (marked with *)
depends_on("py-numpy@1.21.2:", when="@1.6.1:", type=("build", "run"))
@@ -56,20 +55,16 @@ class PyMne(PythonPackage):
depends_on("py-decorator", when="@1:", type=("build", "run"))
depends_on("py-packaging", when="@1:", type=("build", "run"))
depends_on("py-jinja2", when="@1:", type=("build", "run"))
depends_on(
"py-importlib-resources@5.10.2:", when="@1.6.1: ^python@:3.9", type=("build", "run")
)
depends_on("py-importlib-resources@5.10.2:", when="@1.4: ^python@:3.8", type=("build", "run"))
depends_on("py-lazy-loader@0.3:", when="@1.6.1:", type=("build", "run"))
with when("+hdf5"):
depends_on("py-h5io", type=("build", "run"))
depends_on("py-pymatreader", type=("build", "run"))
# Historical dependencies
depends_on("py-setuptools@45:", when="@1.4:1.6", type="build")
depends_on("py-setuptools", when="@:1.6", type="build")
depends_on("py-setuptools-scm@6.2:", when="@1.4:1.6", type="build")
depends_on(
"py-importlib-resources@5.10.2:", when="@1.4:1.6 ^python@:3.9", type=("build", "run")
)
with when("+full"):
# requirements.txt with versions specified in README.rst (marked with *)
depends_on("py-matplotlib@3.0.3:", type=("build", "run")) # *

View File

@@ -22,7 +22,6 @@ class PyNumpy(PythonPackage):
license("BSD-3-Clause")
version("main", branch="main")
version("2.0.1", sha256="485b87235796410c3519a699cfe1faab097e509e90ebb05dcd098db2ae87e7b3")
version("2.0.0", sha256="cf5d1c9e6837f8af9f92b6bd3e86d513cdc11f60fd62185cc49ec7d1aba34864")
version("1.26.4", sha256="2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010")
version("1.26.3", sha256="697df43e2b6310ecc9d95f05d5ef20eacc09c7c4ecc9da3f235d39e71b7da1e4")
@@ -75,8 +74,9 @@ class PyNumpy(PythonPackage):
version("1.17.4", sha256="f58913e9227400f1395c7b800503ebfdb0772f1c33ff8cb4d6451c06cabdf316")
version("1.17.3", sha256="a0678793096205a4d784bd99f32803ba8100f639cf3b932dc63b21621390ea7e")
depends_on("c", type="build")
depends_on("cxx", type="build")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
depends_on("fortran", type="build") # generated
# Based on PyPI wheel availability
with default_args(type=("build", "link", "run")):

View File

@@ -3,7 +3,6 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import glob
import os
import sys
import tempfile
@@ -382,8 +381,7 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension):
# https://www.tensorflow.org/install/source#tested_build_configurations
# https://github.com/tensorflow/tensorflow/issues/70199
# (-mavx512fp16 exists in gcc@12:)
conflicts("%gcc@:11", when="@2.17:")
conflicts("%gcc", when="@2.17:")
conflicts("%gcc@:9.3.0", when="@2.9:")
conflicts("%gcc@:7.3.0")
@@ -564,7 +562,6 @@ def setup_build_environment(self, env):
for pkg_dep in rocm_dependencies:
pkg_dep_cap = pkg_dep.upper().replace("-", "_")
env.set(f"{pkg_dep_cap}_PATH", spec[pkg_dep].prefix)
env.set("TF_ROCM_AMDGPU_TARGETS", ",".join(self.spec.variants["amdgpu_target"].value))
else:
env.set("TF_NEED_ROCM", "0")
@@ -711,14 +708,6 @@ def configure(self, spec, prefix):
def post_configure_fixes(self):
spec = self.spec
if spec.satisfies("@2.17:"):
filter_file(
"patchelf",
spec["patchelf"].prefix.bin.patchelf,
"tensorflow/tools/pip_package/build_pip_package.py",
string=True,
)
# make sure xla is actually turned off
if spec.satisfies("~xla"):
filter_file(
@@ -859,27 +848,14 @@ def build(self, spec, prefix):
bazel(*args)
if self.spec.satisfies("@:2.16"):
build_pip_package = Executable(
"bazel-bin/tensorflow/tools/pip_package/build_pip_package"
)
buildpath = join_path(self.stage.source_path, "spack-build")
build_pip_package("--src", buildpath)
build_pip_package = Executable("bazel-bin/tensorflow/tools/pip_package/build_pip_package")
buildpath = join_path(self.stage.source_path, "spack-build")
build_pip_package("--src", buildpath)
def install(self, spec, prefix):
tmp_path = env["TEST_TMPDIR"]
if self.spec.satisfies("@2.17:"):
buildpath = join_path(
self.stage.source_path, "bazel-bin/tensorflow/tools/pip_package/wheel_house/"
)
with working_dir(buildpath):
wheel = glob.glob("*.whl")[0]
args = std_pip_args + ["--prefix=" + prefix, wheel]
pip(*args)
else:
buildpath = join_path(self.stage.source_path, "spack-build")
with working_dir(buildpath):
args = std_pip_args + ["--prefix=" + prefix, "."]
pip(*args)
buildpath = join_path(self.stage.source_path, "spack-build")
with working_dir(buildpath):
args = std_pip_args + ["--prefix=" + prefix, "."]
pip(*args)
remove_linked_tree(tmp_path)

View File

@@ -19,15 +19,14 @@ class Rayleigh(MakefilePackage):
maintainers("tukss")
version("main", branch="main")
version("1.2.0", sha256="e90acf18d47f6066fa68fd7b16c70ad9781a00be9e97467e9a388773e21e9e09")
version("1.1.0", sha256="93fbbdbde6088807638e4dcbd4d622203fd4753c1831bab2cb8eaeca5cba45c3")
version("1.0.1", sha256="9c9e3b0b180f32a889f158e2ea2967f4ac2bb2124f5d264f230efb8c8f19ea36")
version("1.0.0", sha256="4f2e8249256adff8c4b0bc377ceacf8a6441dcee54b7d36c784f05a454dc6dcf")
version("0.9.1", sha256="ab96445fc61822fe2d2cba8729a85b36de6b541febf5759de6d614847844573f")
version("0.9.0", sha256="63a80d1619cb639f3cb01ab82a441b77d736eee94469c47c50ab740fa81c08f4")
depends_on("c", type="build")
depends_on("fortran", type="build")
depends_on("c", type="build") # generated
depends_on("fortran", type="build") # generated
depends_on("mpi")
depends_on("fftw-api@3")

View File

@@ -771,7 +771,7 @@ def add_include_path(dep_name):
add_include_path("xproto")
if "+opengl" in spec and "platform=darwin" not in spec:
add_include_path("glew")
add_include_path("glu")
add_include_path("mesa-glu")
if "platform=darwin" in spec:
# Newer deployment targets cause fatal errors in rootcling, so
# override with an empty value even though it may lead to link

View File

@@ -24,7 +24,6 @@ class Ruby(AutotoolsPackage, NMakePackage):
license("Ruby AND BSD-2-Clause AND MIT", checked_by="tgamblin")
version("3.3.4", sha256="fe6a30f97d54e029768f2ddf4923699c416cdbc3a6e96db3e2d5716c7db96a34")
version("3.3.2", sha256="3be1d100ebf2a0ce60c2cd8d22cd9db4d64b3e04a1943be2c4ff7b520f2bcb5b")
version("3.3.0", sha256="96518814d9832bece92a85415a819d4893b307db5921ae1f0f751a9a89a56b7d")
version("3.1.0", sha256="50a0504c6edcb4d61ce6b8cfdbddaa95707195fab0ecd7b5e92654b2a9412854")

View File

@@ -19,7 +19,7 @@ class Stdexec(CMakePackage):
version("23.03", sha256="2c9dfb6e56a190543049d2300ccccd1b626f4bb82af5b607869c626886fadd15")
version("main", branch="main")
depends_on("cxx", type="build")
depends_on("cxx", type="build") # generated
depends_on("cmake@3.23.1:", type="build")

View File

@@ -3,13 +3,8 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os
import llnl.util.tty as tty
from spack.package import *
from spack.util.environment import set_env
from spack.util.executable import ProcessError
class Strumpack(CMakePackage, CudaPackage, ROCmPackage):
@@ -210,7 +205,7 @@ def cache_test_sources(self):
install test subdirectory for use during `spack test run`."""
self.cache_extra_test_sources([self.test_data_dir, self.test_src_dir])
def _test_example(self, test_prog, test_cmd, pre_args=[]):
def _test_example(self, test_prog, test_cmd, test_args):
test_dir = join_path(self.test_suite.current_test_cache_dir, self.test_src_dir)
cmake_filename = join_path(test_dir, "CMakeLists.txt")
with open(cmake_filename, "w") as mkfile:
@@ -223,7 +218,9 @@ def _test_example(self, test_prog, test_cmd, pre_args=[]):
)
with working_dir(test_dir):
opts = self.builder.std_cmake_args + self.cmake_args() + ["."]
opts = self.builder.std_cmake_args
opts += self.cmake_args()
opts += ["."]
cmake = self.spec["cmake"].command
cmake(*opts)
@@ -232,32 +229,29 @@ def _test_example(self, test_prog, test_cmd, pre_args=[]):
with set_env(OMP_NUM_THREADS="1"):
exe = which(test_cmd)
test_args = pre_args + [join_path("..", self.test_data_dir, "pde900.mtx")]
exe(*test_args)
def test_sparse_seq(self):
"""Run sequential test_sparse"""
if "+mpi" in self.spec:
raise SkipTest("Package must be installed with '~mpi'")
test_exe = "test_sparse_seq"
self._test_example(test_exe, test_exe)
exe_arg = [join_path("..", self.test_data_dir, "pde900.mtx")]
self._test_example(test_exe, test_exe, exe_arg)
def test_sparse_mpi(self):
"""Run parallel test_sparse"""
if "+mpi" not in self.spec:
raise SkipTest("Package must be installed with '+mpi'")
test_exe_mpi = "test_sparse_mpi"
mpi_args = ["-n", "1", test_exe_mpi]
mpi_bin = self.spec["mpi"].prefix.bin
mpiexe_list = ["srun", mpi_bin.mpirun, mpi_bin.mpiexec]
test_args = ["-n", "1", test_exe_mpi, join_path("..", self.test_data_dir, "pde900.mtx")]
mpiexe_list = ["srun", "mpirun", "mpiexec"]
for exe in mpiexe_list:
tty.info(f"Attempting to build and launch with {os.path.basename(exe)}")
try:
args = ["--immediate=30"] + mpi_args if exe == "srun" else mpi_args
self._test_example(test_exe_mpi, exe, args)
self._test_example(test_exe_mpi, exe, test_args)
return
except (Exception, ProcessError) as err:
tty.info(f"Skipping {exe}: {str(err)}")
except Exception:
pass
assert False, "No MPI executable was found"
def check(self):

View File

@@ -97,69 +97,87 @@ def setup_run_environment(self, env):
if "+hdf5" in self.spec:
env.prepend_path("HDF5_PLUGIN_PATH", self.prefix.lib64)
def test_2d_float(self):
"""Run simple 2D compression/decompression"""
def _test_2d_float(self):
"""This test performs simple 2D compression/decompression (float)"""
test_data_dir = self.test_suite.current_test_data_dir
exe = which(self.prefix.bin.sz)
if exe is None:
raise SkipTest(f"sz is not installed for version {self.version}")
filename = "testfloat_8_8_128.dat"
orifile = test_data_dir.join(filename)
with working_dir(test_data_dir):
filename = "testfloat_8_8_128.dat"
orifile = test_data_dir.join(filename)
with test_part(
self, "test_2d_float_compression", purpose="testing 2D compression of sz"
):
options = ["-z", "-f", "-i", orifile, "-M", "REL", "-R", "1E-3", "-2", "8", "1024"]
exe(*options)
exe = "sz"
reason = "testing 2D compression of {0}".format(exe)
options = ["-z", "-f", "-i", orifile, "-M", "REL", "-R", "1E-3", "-2", "8", "1024"]
filename = "testfloat_8_8_128.dat.sz"
decfile = test_data_dir.join(filename)
self.run_test(
exe,
options,
[],
installed=True,
purpose=reason,
skip_missing=True,
work_dir=test_data_dir,
)
with test_part(
self, "test_2d_float_decompression", purpose="testing 2D decompression of sz"
):
options = ["-x", "-f", "-i", orifile, "-s", decfile, "-2", "8", "1024", "-a"]
exe(*options)
filename = "testfloat_8_8_128.dat.sz"
decfile = test_data_dir.join(filename)
reason = "testing 2D decompression of {0}".format(exe)
options = ["-x", "-f", "-i", orifile, "-s", decfile, "-2", "8", "1024", "-a"]
self.run_test(
exe,
options,
[],
installed=True,
purpose=reason,
skip_missing=True,
work_dir=test_data_dir,
)
def _test_3d_float(self):
"""This test performs simple 3D compression/decompression (float)"""
def test_3d_float(self):
"""Run simple 3D compression/decompression"""
test_data_dir = self.test_suite.current_test_data_dir
exe = which(self.prefix.bin.sz)
if exe is None:
raise SkipTest(f"sz is not installed for version {self.version}")
filename = "testfloat_8_8_128.dat"
orifile = test_data_dir.join(filename)
with working_dir(test_data_dir):
filename = "testfloat_8_8_128.dat"
orifile = test_data_dir.join(filename)
with test_part(
self, "test_3d_float_compression", purpose="testing 3D compression of sz"
):
options = [
"-z",
"-f",
"-i",
orifile,
"-M",
"REL",
"-R",
"1E-3",
"-3",
"8",
"8",
"128",
]
exe(*options)
exe = "sz"
reason = "testing 3D compression of {0}".format(exe)
options = ["-z", "-f", "-i", orifile, "-M", "REL", "-R", "1E-3", "-3", "8", "8", "128"]
filename = "testfloat_8_8_128.dat.sz"
decfile = test_data_dir.join(filename)
with test_part(
self, "test_3d_float_decompression", purpose="testing 3D decompression of sz"
):
options = ["-x", "-f", "-i", orifile, "-s", decfile, "-3", "8", "8", "128", "-a"]
exe(*options)
self.run_test(
exe,
options,
[],
installed=True,
purpose=reason,
skip_missing=True,
work_dir=test_data_dir,
)
filename = "testfloat_8_8_128.dat.sz"
decfile = test_data_dir.join(filename)
reason = "testing 3D decompression of {0}".format(exe)
options = ["-x", "-f", "-i", orifile, "-s", decfile, "-3", "8", "8", "128", "-a"]
self.run_test(
exe,
options,
[],
installed=True,
purpose=reason,
skip_missing=True,
work_dir=test_data_dir,
)
def test(self):
"""Perform smoke tests on the installed package"""
# run 2D compression and decompression (float)
self._test_2d_float()
# run 3D compression and decompression (float)
self._test_3d_float()
class AutotoolsBuilder(spack.build_systems.autotools.AutotoolsBuilder):

View File

@@ -22,8 +22,8 @@ class TracyClient(CMakePackage):
version("0.8.2", sha256="4784eddd89c17a5fa030d408392992b3da3c503c872800e9d3746d985cfcc92a")
version("0.8.1", sha256="004992012b2dc879a9f6d143cbf94d7ea30e88135db3ef08951605d214892891")
depends_on("c", type="build")
depends_on("cxx", type="build")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
variant("shared", default=True, description="Build the client library as a shared library")

View File

@@ -22,8 +22,8 @@ class Tracy(MakefilePackage):
version("0.8.2", sha256="4784eddd89c17a5fa030d408392992b3da3c503c872800e9d3746d985cfcc92a")
version("0.8.1", sha256="004992012b2dc879a9f6d143cbf94d7ea30e88135db3ef08951605d214892891")
depends_on("c", type="build")
depends_on("cxx", type="build")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
depends_on("capstone")
depends_on("dbus")

View File

@@ -13,7 +13,7 @@ class Uftrace(AutotoolsPackage):
"""Dynamic function graph tracer for Linux which demangles C, C++ and Rust calls"""
homepage = "https://uftrace.github.io/slide/"
url = "https://github.com/namhyung/uftrace/archive/v0.16.tar.gz"
url = "https://github.com/namhyung/uftrace/archive/v0.11.tar.gz"
git = "https://github.com/namhyung/uftrace.git"
executables = ["^uftrace$"]
maintainers("bernhardkaindl")
@@ -23,10 +23,11 @@ class Uftrace(AutotoolsPackage):
# The build process uses 'git describe --tags' to get the package version
version("master", branch="master", get_full_repo=True)
version("0.16", sha256="dd0549f610d186b6f25fa2334a5e82b6ddc232ec6ca088dbb41b3fe66961d6bb")
version("0.11", sha256="101dbb13cb3320ee76525ec26426f2aa1de4e3ee5af74f79cb403ae4d2c6c871")
version("0.10", sha256="b8b56d540ea95c3eafe56440d6a998e0a140d53ca2584916b6ca82702795bbd9")
depends_on("c", type="build")
depends_on("cxx", type="build") # full demangler support with libstdc++
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
variant("doc", default=False, description="Build uftrace's documentation")
variant("python2", default=False, description="Build uftrace with python2 support")
variant("python3", default=True, description="Build uftrace with python3 support")
@@ -37,12 +38,16 @@ class Uftrace(AutotoolsPackage):
depends_on("lsof", type="test")
depends_on("pkgconfig", type="build")
depends_on("libunwind")
depends_on("libtraceevent")
depends_on("ncurses")
depends_on("python@2.7:", when="+python2")
depends_on("python@3.5:", when="+python3")
depends_on("lua-luajit")
# Fix the version string if building below another git repo. Submitted upstream:
@when("@:0.11")
def patch(self):
filter_file("shell git", "shell test -e .git && git", "Makefile")
def check(self):
make("test", *["V=1", "-j{0}".format(max(int(make_jobs), 20))])
# In certain cases, tests using TCP/IP can hang. Ensure that spack can continue:
@@ -54,23 +59,26 @@ def install(self, spec, prefix):
def installcheck(self):
pass
def test_uftrace(self):
def test(self):
"""Perform stand-alone/smoke tests using the installed package."""
uftrace = which(self.prefix.bin.uftrace)
options = (["-A", ".", "-R", ".", "-P", "main", uftrace, "-V"],)
expected = [
r"dwarf",
r"luajit",
r"tui",
r"sched",
r"dynamic",
r"main\(2, ",
r" getopt_long\(2, ",
r" .*printf.*\(",
r"} = 0; /\* main \*/",
]
out = uftrace(*options, output=str.split, error=str.split)
check_outputs(expected, out)
uftrace = self.prefix.bin.uftrace
self.run_test(
uftrace,
["-A", ".", "-R", ".", "-P", "main", uftrace, "-V"],
[
r"dwarf",
r"luajit",
r"tui",
r"sched",
r"dynamic",
r"main\(2, ",
r" getopt_long\(2, ",
r" .*printf.*\(",
r"} = 0; /\* main \*/",
],
installed=True,
purpose="test: testing the installation",
)
@classmethod
def determine_version(cls, exe):

View File

@@ -6,6 +6,8 @@
import os
import socket
import llnl.util.tty as tty
from spack.package import *
from .blt import llnl_link_helpers
@@ -460,57 +462,37 @@ def initconfig_package_entries(self):
def cmake_args(self):
return []
def setup_run_environment(self, env):
for library in ["lib", "lib64"]:
lib_path = join_path(self.prefix, library)
if os.path.exists(lib_path):
env.append_path("LD_LIBRARY_PATH", lib_path)
def run_example(self, exe, expected):
def test(self):
"""Perform stand-alone checks on the installed package."""
if self.spec.satisfies("@:1") or not os.path.isdir(self.prefix.bin):
tty.info("Skipping: checks not installed in bin for v{0}".format(self.version))
return
exe_run = which(join_path(self.prefix.bin, exe))
if exe_run is None:
raise SkipTest(f"{exe} is not installed for version {self.version}")
out = exe_run(output=str.split, error=str.split)
check_outputs(expected, out)
# Run a subset of examples PROVIDED installed
# tutorials with readily checkable outputs.
checks = {
"malloc": ["99 should be 99"],
"recipe_dynamic_pool_heuristic": ["in the pool", "releas"],
"recipe_no_introspection": ["has allocated", "used"],
"strategy_example": ["Available allocators", "HOST"],
"tut_copy": ["Copied source data"],
"tut_introspection": ["Allocator used is HOST", "size of the allocation"],
"tut_memset": ["Set data from HOST"],
"tut_move": ["Moved source data", "HOST"],
"tut_reallocate": ["Reallocated data"],
"vector_allocator": [""],
}
def test_malloc(self):
"""Run Malloc"""
self.run_example("malloc", ["99 should be 99"])
def test_recipe_dynamic_pool_heuristic(self):
"""Multiple use allocator test"""
self.run_example("recipe_dynamic_pool_heuristic", ["in the pool", "releas"])
def test_recipe_no_introspection(self):
"""Test without introspection"""
self.run_example("recipe_no_introspection", ["has allocated", "used"])
def test_strategy_example(self):
"""Memory allocation strategy test"""
self.run_example("strategy_example", ["Available allocators", "HOST"])
def test_tut_copy(self):
"""Copy data test"""
self.run_example("tut_copy", ["Copied source data"])
def test_tut_introspection(self):
"""Keep track of pointer allocation test"""
self.run_example("tut_introspection", ["Allocator used is HOST", "size of the allocation"])
def test_tut_memset(self):
"""Set entire block of memory to one value test"""
self.run_example("tut_memset", ["Set data from HOST"])
def test_tut_move(self):
"""Move memory test"""
self.run_example("tut_move", ["Moved source data", "HOST"])
def test_tut_reallocate(self):
"""Reallocate memory test"""
self.run_example("tut_reallocate", ["Reallocated data"])
def test_vector_allocator(self):
"""Allocate vector memory test"""
self.run_example("vector_allocator", [""])
for exe in checks:
expected = checks[exe]
reason = "test: checking output from {0}".format(exe)
self.run_test(
exe,
[],
expected,
0,
installed=False,
purpose=reason,
skip_missing=True,
work_dir=self.prefix.bin,
)

View File

@@ -22,7 +22,7 @@ class Ut(CMakePackage):
version("2.0.0", sha256="8b5b11197d1308dfc1fe20efd6a656e0c833dbec2807e2292967f6e2f7c0420f")
version("1.1.9", sha256="1a666513157905aa0e53a13fac602b5673dcafb04a869100a85cd3f000c2ed0d")
depends_on("cxx", type="build")
depends_on("cxx", type="build") # generated
generator("ninja")

View File

@@ -20,7 +20,6 @@ class Votca(CMakePackage):
maintainers("junghans")
version("master", branch="master")
version("2024.1", sha256="68669a7d09020f780d2633eb865c6c53e5fb38d155f80c9670ebf9d10d10bee6")
version("2024", sha256="7f342e857f4a6ba6d25937f63830afa3c32cbd906255c8d78aa6c500cfd418c8")
version("2023", sha256="6150a38c77379d05592a56ae4392a00c4636d02198bb06108a3dc739a45115f8")
version("2022.1", sha256="358119b2645fe60f88ca621aed508c49fb61f88d29d3e3fa24b5b831ed4a66ec")

View File

@@ -1,38 +0,0 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class WasiSdkPrebuilt(Package):
"""
A group of standard API specifications for software compiled to the W3C WebAssembly standard
"""
homepage = "https://wasi.dev/"
url = "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-14/wasi-sdk-14.0-linux.tar.gz"
maintainers("teaguesterling")
license("APACHE-2.0", checked_by="teaguesterling")
version("22.0", sha256="fa46b8f1b5170b0fecc0daf467c39f44a6d326b80ced383ec4586a50bc38d7b8")
version("21.0", sha256="f2fe0723b337c484556b19d64c0f6c6044827014bfcd403d00951c65a86cfa26")
version("20.0", sha256="7030139d495a19fbeccb9449150c2b1531e15d8fb74419872a719a7580aad0f9")
version("19.0", sha256="d900abc826eec1955b9afd250e7cc2496338abbf6c440d86a313c06e42083fa1")
version("17.0", sha256="8778a476af7898a51db9b78395687cc9c8b69702850da77a763711e832614dac")
version("16.0", sha256="10df3418485e60b9283c1132102f8d3ca34b4fbe8c4649e30282ee84fe42d788")
version("15.0", sha256="9b1f2c900a034a44e59b74843cd79b4f189342598e554029367ef0a2ac286703")
version("14.0", sha256="8c8ebb7f71dcccbb8b1ab384499a53913b0b6d1b7b3281c3d70165e0f002e821")
provides("wasi-sdk")
def url_for_version(self, version):
base = "https://github.com/WebAssembly/wasi-sdk/releases/download"
major = version.up_to(1)
full = version.up_to(2)
return f"{base}/wasi-sdk-{major}/wasi-sdk-{full}-linux.tar.gz"
def install(self, spec, prefix):
install_tree("share/wasi-sysroot", prefix)

View File

@@ -22,8 +22,6 @@ class Whip(CMakePackage, CudaPackage, ROCmPackage):
version("0.2.0", sha256="d8fec662526accbd1624922fdf01a077d6f312cf253382660e4a2f65e28e8686")
version("0.1.0", sha256="5d557794f4afc8332fc660948a342f69e22bc9e5d575ffb3e3944cf526db5ec9")
depends_on("cxx", type="build")
depends_on("cmake@3.22:", type="build")
# Exactly one of +cuda and +rocm need to be set