diff --git a/.ci/env b/.ci/env index e9328370248..ec9b255ffc8 100644 --- a/.ci/env +++ b/.ci/env @@ -1,2 +1,2 @@ -SPACK_CHECKOUT_VERSION=84cb7ff86b42e7fa45476750b6729144c58f70dc +SPACK_CHECKOUT_VERSION=cf9556230f1f236837b1a90c17eaebdeac02b31f SPACK_CHECKOUT_REPO=spack/spack diff --git a/.ci/gitlab/.gitlab-ci.yml b/.ci/gitlab/.gitlab-ci.yml index 1e9fceb7c78..75b580b809f 100644 --- a/.ci/gitlab/.gitlab-ci.yml +++ b/.ci/gitlab/.gitlab-ci.yml @@ -46,6 +46,14 @@ default: PIPELINE_MIRROR_TEMPLATE: "multi-src-mirrors.yaml.in" OIDC_TOKEN_AUDIENCE: "pr_binary_mirror" +.package_on_change: &package_on_change + paths: + - .ci/env + - .ci/gitlab/**/* + - repos/spack_repo/**/* + - stacks/$SPACK_CI_STACK_NAME/**/* + compare_to: HEAD~1 + ######################################## # Job templates ######################################## @@ -83,6 +91,7 @@ default: variables: <<: *common_pr_vars SPACK_PRUNE_UNTOUCHED: "True" + changes: *package_on_change - if: $CI_COMMIT_REF_NAME =~ /^pr[\d]+_.*$/ && $CI_PROJECT_NAME == "spack" # Pipelines on PR branches rebuild only what's missing, and do extra pruning @@ -249,6 +258,30 @@ dotenv: - python3 write_dotenv.py .ci/env - cat env +force_pipeline_status: + rules: + - if: $CI_COMMIT_REF_NAME =~ /^pr[\d]+_.*$/ && $CI_PROJECT_NAME == "spack-packages" + changes: *package_on_change + when: never + - if: $CI_PROJECT_NAME == "spack" + when: never + - if: $CI_COMMIT_REF_NAME =~ /^pr[\d]+_.*$/ + when: always + - when: never + stage: generate + tags: ["spack", "service_noop"] + retry: 0 + allow_failure: true + image: busybox@sha256:37f7b378a29ceb4c551b1b5582e27747b855bbfaa73fa11914fe0df028dc581f + variables: + CI_OIDC_REQUIRED: 0 + GIT_STRATEGY: "none" + CI_JOB_SIZE: "small" + KUBERNETES_CPU_REQUEST: "100m" + KUBERNETES_MEMORY_REQUEST: "5M" + script: + - echo "This job is a placeholder job to ensure a pipeline status is posted even if no jobs are run" + ######################################## # TEMPLATE FOR ADDING ANOTHER PIPELINE ######################################## @@ -574,7 +607,7 @@ tools-sdk-build: tutorial-generate: extends: [ ".tutorial", ".generate-x86_64"] - image: ghcr.io/spack/tutorial-ubuntu-22.04:2026-03-10 + image: ghcr.io/spack/tutorial-ubuntu-26.04:v2026-06-09 tutorial-build: extends: [ ".tutorial", ".build" ] diff --git a/.ci/gitlab/configs/ci.yaml b/.ci/gitlab/configs/ci.yaml index c548972abde..549ca30d35a 100644 --- a/.ci/gitlab/configs/ci.yaml +++ b/.ci/gitlab/configs/ci.yaml @@ -4,6 +4,7 @@ ci: broken-tests-packages: - superlu-dist # srun -n 4 hangs - papyrus + - visit # times out pipeline-gen: - build-job: @@ -16,10 +17,10 @@ ci: - spack compiler list - - mkdir -p ${SPACK_ARTIFACTS_ROOT}/user_data # AWS runners mount E4S public key (verification), UO runners mount public/private (signing/verification) - - - k=$CI_GPG_KEY_ROOT/e4s.gpg; [[ -r $k ]] && spack gpg trust $k + - - k=$CI_GPG_KEY_ROOT/e4s.gpg; [[ -r $k ]] && spack gpg trust -y $k # UO runners mount intermediate ci public key (verification), AWS runners mount public/private (signing/verification) - - k=$CI_GPG_KEY_ROOT/intermediate_ci_signing_key.gpg; [[ -r $k ]] && spack gpg trust $k - - k=$CI_GPG_KEY_ROOT/spack_public_key.gpg; [[ -r $k ]] && spack gpg trust $k + - k=$CI_GPG_KEY_ROOT/intermediate_ci_signing_key.gpg; [[ -r $k ]] && spack gpg trust -y $k + - k=$CI_GPG_KEY_ROOT/spack_public_key.gpg; [[ -r $k ]] && spack gpg trust -y $k script:: - - if [ -n "$SPACK_EXTRA_MIRROR" ]; then spack mirror add local "${SPACK_EXTRA_MIRROR}/${SPACK_CI_STACK_NAME}"; fi - spack config blame mirrors @@ -72,7 +73,7 @@ ci: - |+ for keyfile in $( find /tmp/public_keys -type f ); do - spack gpg trust $keyfile + spack gpg trust -y $keyfile done - spack gpg publish --update-index --mirror-url ${SPACK_BUILDCACHE_DESTINATION} id_tokens: @@ -94,7 +95,7 @@ ci: - echo Copying environment specs from ${SPACK_COPY_ONLY_SOURCE} to ${SPACK_COPY_ONLY_DESTINATION} - spack buildcache sync "${SPACK_COPY_ONLY_SOURCE}" "${SPACK_COPY_ONLY_DESTINATION}" - curl -fLsS https://spack.github.io/keys/spack-public-binary-key.pub -o /tmp/spack-public-binary-key.pub - - spack gpg trust /tmp/spack-public-binary-key.pub + - spack gpg trust -y /tmp/spack-public-binary-key.pub - spack gpg publish --mirror-url "${SPACK_COPY_ONLY_DESTINATION}" - spack buildcache update-index --keys "${SPACK_COPY_ONLY_DESTINATION}" when: "always" diff --git a/.ci/gitlab/configs/win64/ci.yaml b/.ci/gitlab/configs/win64/ci.yaml index 8caf70dc142..d71f7892024 100644 --- a/.ci/gitlab/configs/win64/ci.yaml +++ b/.ci/gitlab/configs/win64/ci.yaml @@ -14,8 +14,8 @@ ci: - cd ${CI_PROJECT_DIR} - fsutil 8dot3name set C:\ 0 - . ${SPACK_CI_SPACK_ROOT}\share\spack\setup-env.ps1 - - If (Test-Path -path C:\\key\intermediate_ci_signing_key.gpg) { spack.ps1 gpg trust C:\\key\intermediate_ci_signing_key.gpg } - - If (Test-Path -path C:\\key\spack_public_key.gpg) { spack.ps1 gpg trust C:\\key\spack_public_key.gpg } + - If (Test-Path -path C:\\key\intermediate_ci_signing_key.gpg) { spack.ps1 gpg trust -y C:\\key\intermediate_ci_signing_key.gpg } + - If (Test-Path -path C:\\key\spack_public_key.gpg) { spack.ps1 gpg trust -y C:\\key\spack_public_key.gpg } script:: - spack.ps1 env activate --without-view ${SPACK_CONCRETE_ENV_DIR} diff --git a/.github/workflows/audit.yaml b/.github/workflows/audit.yaml index 455358cf7c8..3c6601a9cda 100644 --- a/.github/workflows/audit.yaml +++ b/.github/workflows/audit.yaml @@ -25,7 +25,7 @@ jobs: run: shell: ${{ matrix.system.shell }} steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: ${{inputs.python_version}} diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml index 7ea427cb102..d23972aa657 100644 --- a/.github/workflows/bootstrap.yml +++ b/.github/workflows/bootstrap.yml @@ -66,7 +66,7 @@ jobs: make patch unzip which xz python3 python3-devel tree \ cmake bison - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: fetch-depth: 0 - uses: ./.github/actions/checkout-spack @@ -93,7 +93,7 @@ jobs: run: | brew install bison tree - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: fetch-depth: 0 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -126,7 +126,7 @@ jobs: sudo rm $(command -v gpg gpg2 patchelf) done - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: fetch-depth: 0 - uses: ./.github/actions/checkout-spack @@ -145,7 +145,7 @@ jobs: runs-on: "windows-latest" steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: fetch-depth: 0 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -184,7 +184,7 @@ jobs: bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \ make patch tcl unzip which xz - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: fetch-depth: 0 - uses: ./.github/actions/checkout-spack diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e2f5d661b8b..0a9112febaa 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -24,7 +24,7 @@ jobs: core: ${{ steps.filter.outputs.core }} packages: ${{ steps.filter.outputs.packages }} steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 if: ${{ github.event_name == 'push' || github.event_name == 'merge_group' }} with: fetch-depth: 0 diff --git a/.github/workflows/prechecks.yml b/.github/workflows/prechecks.yml index ba94e02a79b..667de1f23d2 100644 --- a/.github/workflows/prechecks.yml +++ b/.github/workflows/prechecks.yml @@ -17,7 +17,7 @@ jobs: validate: runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: '3.13' @@ -32,7 +32,7 @@ jobs: style: runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: fetch-depth: 2 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -58,7 +58,7 @@ jobs: ${{ inputs.with_packages == 'true' }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: # Depth 2 is required for this check fetch-depth: 2 @@ -77,7 +77,7 @@ jobs: image: ghcr.io/spack/all-pythons:2025-10-10 steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: fetch-depth: 0 - uses: ./.github/actions/checkout-spack diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml index 70fc7bc4ea1..e8b930e3bff 100644 --- a/.github/workflows/stale.yaml +++ b/.github/workflows/stale.yaml @@ -9,7 +9,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10.2.0 + - uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10.3.0 with: # Issues configuration stale-issue-message: > diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml index 36724c28000..b5154d1e060 100644 --- a/.github/workflows/triage.yml +++ b/.github/workflows/triage.yml @@ -19,7 +19,7 @@ jobs: pull-requests: write issues: write steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: ref: develop # DO NOT CHANGE diff --git a/.github/workflows/unit_tests.yaml b/.github/workflows/unit_tests.yaml index 88dc6d10cfa..00a83b098d3 100644 --- a/.github/workflows/unit_tests.yaml +++ b/.github/workflows/unit_tests.yaml @@ -37,7 +37,7 @@ jobs: on_develop: false steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: ${{ matrix.python-version }} @@ -62,7 +62,7 @@ jobs: os: ["macos-15", "macos-15-intel"] python-version: ["3.11"] steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: ${{ matrix.python-version }} @@ -82,7 +82,7 @@ jobs: powershell Invoke-Expression -Command "./.ci/windows_test_setup.ps1"; {0} runs-on: windows-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: 3.9 diff --git a/.github/workflows/update-src-mirror.yml b/.github/workflows/update-src-mirror.yml index d6bd6547adc..bbda819ac1c 100644 --- a/.github/workflows/update-src-mirror.yml +++ b/.github/workflows/update-src-mirror.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: # Depth 2 is required for this check fetch-depth: 2 @@ -52,7 +52,7 @@ jobs: - name: Configure AWS credentials if: steps.create-mirror.outputs.new-specs == 'true' - uses: aws-actions/configure-aws-credentials@d979d5b3a71173a29b74b5b88418bfda9437d885 # v6.1.1 + uses: aws-actions/configure-aws-credentials@e7f100cf4c008499ea8adda475de1042d6975c7b # v6.2.0 with: role-to-assume: ${{ secrets.AWS_ROLE_ARN }} aws-region: ${{ secrets.AWS_REGION }} diff --git a/repos/spack_repo/builtin/build_systems/cuda.py b/repos/spack_repo/builtin/build_systems/cuda.py index 87a3a43d39e..4425811f669 100644 --- a/repos/spack_repo/builtin/build_systems/cuda.py +++ b/repos/spack_repo/builtin/build_systems/cuda.py @@ -211,8 +211,7 @@ def compute_capabilities(arch_list: Iterable[str]) -> List[str]: conflicts("%gcc@13:", when="%cuda@:12.3") conflicts("%gcc@14:", when="%cuda@:12.6") conflicts("%gcc@15:", when="%cuda@:12.9") - conflicts("%gcc@16:", when="%cuda@:13.1") - conflicts("%gcc@15:", when="%cuda@13.1:") + conflicts("%gcc@16:", when="%cuda@:13.3") conflicts("%clang@12:", when="%cuda@:11.4.0") conflicts("%clang@13:", when="%cuda@:11.5") conflicts("%clang@14:", when="%cuda@:11.7") @@ -222,8 +221,8 @@ def compute_capabilities(arch_list: Iterable[str]) -> List[str]: conflicts("%clang@18:", when="%cuda@:12.5") conflicts("%clang@19:", when="%cuda@:12.6") conflicts("%clang@20:", when="%cuda@:12.9") - conflicts("%clang@21:", when="%cuda@:13.1") - conflicts("%clang@20:", when="%cuda@13.1:") + conflicts("%clang@21:", when="%cuda@:13.0") + conflicts("%clang@22:", when="%cuda@:13.3") # https://gist.github.com/ax3l/9489132#gistcomment-3860114 conflicts("%gcc@10", when="%cuda@:11.4.0") diff --git a/repos/spack_repo/builtin/build_systems/go.py b/repos/spack_repo/builtin/build_systems/go.py index bbd0956bf11..033d508e104 100644 --- a/repos/spack_repo/builtin/build_systems/go.py +++ b/repos/spack_repo/builtin/build_systems/go.py @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from typing import List + from spack.package import ( BuilderWithDefaults, EnvironmentModifications, @@ -64,7 +66,10 @@ class GoBuilder(BuilderWithDefaults): #: Names associated with package attributes in the old build-system format package_attributes = ( + "std_build_args", "build_args", + "std_ldflags", + "ldflags", "check_args", "build_directory", "install_time_test_callbacks", @@ -79,21 +84,34 @@ def build_directory(self): return self.pkg.stage.source_path @property - def build_args(self): - """Arguments for ``go build``.""" + def std_ldflags(self) -> List[str]: # Pass ldflags -s = --strip-all and -w = --no-warnings by default + return ["-s", "-w"] + + @property + def ldflags(self) -> List[str]: + return [] + + @property + def std_build_args(self): + """Arguments for ``go build``.""" return [ "-p", str(self.pkg.module.make_jobs), "-modcacherw", + "-trimpath", "-ldflags", - "-s -w", + " ".join([*self.std_ldflags, *self.ldflags]), "-o", f"{self.pkg.name}", ] @property - def check_args(self): + def build_args(self) -> List[str]: + return [] + + @property + def check_args(self) -> List[str]: """Argument for ``go test`` during check phase""" return [] @@ -105,7 +123,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: def build(self, pkg: GoPackage, spec: Spec, prefix: Prefix) -> None: """Runs ``go build`` in the source directory""" with working_dir(self.build_directory): - pkg.module.go("build", *self.build_args) + pkg.module.go("build", *self.std_build_args, *self.build_args) def install(self, pkg: GoPackage, spec: Spec, prefix: Prefix) -> None: """Install built binaries into prefix bin.""" diff --git a/repos/spack_repo/builtin/packages/adios2/package.py b/repos/spack_repo/builtin/packages/adios2/package.py index f85e310ff61..5ab5a3866d7 100644 --- a/repos/spack_repo/builtin/packages/adios2/package.py +++ b/repos/spack_repo/builtin/packages/adios2/package.py @@ -23,7 +23,7 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/ornladios/ADIOS2.git" test_requires_compiler = True - maintainers("ax3l", "vicentebolea", "williamfgc") + maintainers("ax3l", "vicentebolea", "williamfgc", "eisenhauer") tags = ["e4s"] diff --git a/repos/spack_repo/builtin/packages/akantu/package.py b/repos/spack_repo/builtin/packages/akantu/package.py index 394c54125b7..f19140ea23b 100644 --- a/repos/spack_repo/builtin/packages/akantu/package.py +++ b/repos/spack_repo/builtin/packages/akantu/package.py @@ -3,7 +3,6 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.cmake import CMakePackage -from spack_repo.builtin.packages.boost.package import Boost from spack.package import * @@ -17,7 +16,7 @@ class Akantu(CMakePackage): """ homepage = "https://akantu.ch" - url = "https://gitlab.com/akantu/akantu/-/archive/v3.0.0/akantu-v3.0.0.tar.gz" + url = "https://gitlab.com/akantu/akantu/-/archive/v5.0.6/akantu-v5.0.6.tar.gz" git = "https://gitlab.com/akantu/akantu.git" maintainers("nrichart") @@ -25,7 +24,12 @@ class Akantu(CMakePackage): license("LGPL-3.0-or-later") version("master", branch="master") - version("3.0.0", sha256="7e8f64e25956eba44def1b2d891f6db8ba824e4a82ff0d51d6b585b60ab465db") + version("5.0.6", sha256="ee197f6239e7c4c143edfc27a50c76512bd84c3eb0e11914b18e5782ed011c37") + version( + "3.0.0", + sha256="7e8f64e25956eba44def1b2d891f6db8ba824e4a82ff0d51d6b585b60ab465db", + deprecated=True, + ) variant( "external_solvers", @@ -34,72 +38,86 @@ class Akantu(CMakePackage): ) variant("mpi", default=True, description="Activates parallel capabilities") variant("python", default=False, description="Activates python bindings") + variant("cgal", default=False, description="Enable CGAL geometry support", when="@5:") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + + depends_on("boost") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + with when("@5"): + depends_on("eigen@3.3.7:", type="build") + depends_on("cmake@3.16.3:", type="build") + depends_on("cgal", when="+cgal") - depends_on("boost@:1.66", when="@:3.0") - depends_on(Boost.with_default_variants) - depends_on("lapack") - depends_on("cmake@3.5.1:", type="build") - depends_on("python", when="+python", type=("build", "run")) - depends_on("py-numpy", when="+python", type=("build", "run")) - depends_on("py-scipy", when="+python", type=("build", "run")) - depends_on("py-pybind11", when="@3.1:+python", type=("build", "run")) + with when("@3"): + depends_on("boost@:1.66") + depends_on("lapack") + depends_on("cmake@3.5.1:", type="build") - depends_on("mumps", when="~mpi external_solvers=mumps") - depends_on("mumps+mpi", when="+mpi external_solvers=mumps") - depends_on("netlib-scalapack", when="+mpi external_solvers=mumps") - depends_on("petsc+double", when="~mpi external_solvers=petsc") - depends_on("petsc+double+mpi", when="+mpi external_solvers=petsc") + with when("+python"): + extends("python") + depends_on("python", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + depends_on("py-pybind11", when="@3.1:", type=("build", "run")) - depends_on("mpi", when="+mpi") - depends_on("scotch", when="+mpi") + with when("+mpi"): + depends_on("mpi") + depends_on("scotch") - extends("python", when="+python") + with when("external_solvers=mumps"): + depends_on("mumps", when="~mpi") + depends_on("mumps+mpi", when="+mpi") + depends_on("netlib-scalapack", when="+mpi") + + with when("external_solvers=petsc"): + depends_on("petsc+double", when="~mpi") + depends_on("petsc+double+mpi", when="+mpi") conflicts("%gcc@:5.3") conflicts("@:3.0 external_solvers=petsc") conflicts("@:3.0 +python") def cmake_args(self): - spec = self.spec - args = [ - "-DAKANTU_COHESIVE_ELEMENT:BOOL=ON", - "-DAKANTU_DAMAGE_NON_LOCAL:BOOL=ON", - "-DAKANTU_HEAT_TRANSFER:BOOL=ON", - "-DAKANTU_SOLID_MECHANICS:BOOL=ON", - "-DAKANTU_STRUCTURAL_MECHANICS:BOOL=OFF", - f"-DAKANTU_PARALLEL:BOOL={'ON' if spec.satisfies('+mpi') else 'OFF'}", - f"-DAKANTU_PYTHON_INTERFACE:BOOL={'ON' if spec.satisfies('+python') else 'OFF'}", + self.define("AKANTU_VERSION", self.spec.version), + self.define("AKANTU_COHESIVE_ELEMENT", True), + self.define("AKANTU_DAMAGE_NON_LOCAL", True), + self.define("AKANTU_SOLID_MECHANICS", True), + self.define("AKANTU_STRUCTURAL_MECHANICS", self.spec.satisfies("@5:")), + self.define_from_variant("AKANTU_PARALLEL", "mpi"), + self.define_from_variant("AKANTU_PYTHON_INTERFACE", "python"), ] - if spec.satisfies("@:3.0"): - args.extend( - [ - "-DCMAKE_CXX_FLAGS=-Wno-class-memaccess", - "-DAKANTU_TRACTION_AT_SPLIT_NODE_CONTACT:BOOL=OFF", - ] - ) + if self.spec.satisfies("@5:"): + args += [ + self.define("AKANTU_DIFFUSION", True), + self.define_from_variant("AKANTU_EMBEDDED", "cgal"), + ] else: - args.append("-DAKANTU_TRACTION_AT_SPLIT_NODE_CONTACT:BOOL=ON") + args.append(self.define("AKANTU_HEAT_TRANSFER", True)) + + if self.spec.satisfies("@:3.0"): + args.append(self.define("CMAKE_CXX_FLAGS", "-Wno-class-memaccess")) solvers = [] - if spec.satisfies("external_solvers=mumps"): + if self.spec.satisfies("external_solvers=mumps"): solvers.append("Mumps") - args.append(f"-DMUMPS_DIR:PATH=${spec['mumps'].prefix}") - if spec.satisfies("external_solvers=petsc"): + args.append(self.define("MUMPS_DIR", self.spec["mumps"].prefix)) + if self.spec.satisfies("external_solvers=petsc"): solvers.append("PETSc") - if len(solvers) > 0: - args.extend( - [ - f"-DAKANTU_IMPLICIT_SOLVER:STRING={'+'.join(solvers)}", - "-DAKANTU_IMPLICIT:BOOL=ON", - ] - ) + if solvers: + args += [ + self.define("AKANTU_IMPLICIT_SOLVER", "+".join(solvers)), + self.define("AKANTU_IMPLICIT", True), + ] else: - args.append("-DAKANTU_IMPLICIT:BOOL=OFF") + args += [ + self.define("AKANTU_IMPLICIT_SOLVER", "Eigen"), + self.define("AKANTU_IMPLICIT", False), + ] return args diff --git a/repos/spack_repo/builtin/packages/amdlibflame/package.py b/repos/spack_repo/builtin/packages/amdlibflame/package.py index 4e073edf096..f0f326f6042 100644 --- a/repos/spack_repo/builtin/packages/amdlibflame/package.py +++ b/repos/spack_repo/builtin/packages/amdlibflame/package.py @@ -3,6 +3,8 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) # ----------------------------------------------------------------------------\ +import os + from spack_repo.builtin.build_systems import autotools, cmake from spack_repo.builtin.build_systems.cmake import CMakePackage, generator from spack_repo.builtin.packages.libflame.package import LibflameBase @@ -73,6 +75,11 @@ class Amdlibflame(CMakePackage, LibflameBase): variant("logging", default="False", description="Enable AOCL DTL Logging") variant("tracing", default="False", description="Enable AOCL DTL Tracing") + # Override the 'static' variant defined in LibflameBase: for CMake builds of amdlibflame, + # default this variant to False so that only shared libraries are built unless explicitly + # requested. + variant("static", default=False, when="@4.2:", description="Build static library") + # Build system build_system( conditional("cmake", when="@4.2:"), conditional("autotools", when="@:4.1"), default="cmake" @@ -87,6 +94,7 @@ class Amdlibflame(CMakePackage, LibflameBase): conflicts("threads=pthreads", msg="pthread is not supported") conflicts("threads=openmp", when="@:3", msg="openmp is not supported by amdlibflame < 4.0") requires("target=x86_64:", msg="AMD libflame available only on x86_64") + conflicts("~shared~static", msg="At least one library type (shared or static) must be built") patch("aocc-2.2.0.patch", when="@:2", level=1) patch("cray-compiler-wrapper.patch", when="@:3.0.0", level=1) @@ -112,16 +120,18 @@ class Amdlibflame(CMakePackage, LibflameBase): @property def lapack_libs(self): """find lapack_libs function""" - return find_libraries( - "libflame", root=self.prefix, shared="+shared" in self.spec, recursive=True - ) + # When both shared and static are built, prefer shared libraries. + # When only one type is built, return that type. + shared = self.spec.satisfies("+shared") + return find_libraries("libflame", root=self.prefix, shared=shared, recursive=True) @property def libs(self): """find libflame libs function""" - return find_libraries( - "libflame", root=self.prefix, shared="+shared" in self.spec, recursive=True - ) + # When both shared and static are built, prefer shared libraries. + # When only one type is built, return that type. + shared = self.spec.satisfies("+shared") + return find_libraries("libflame", root=self.prefix, shared=shared, recursive=True) def flag_handler(self, name, flags): if name == "cflags": @@ -175,10 +185,60 @@ def cmake_args(self): else: args.append(self.define("LF_ISA_CONFIG", spec.variants["vectorization"].value)) + # Note: When both +shared +static are requested, we use a two-pass build strategy. + # The first build is for shared libraries (handled here), and the second build + # (for static libraries) is handled in a separate build directory in the install() method. args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared")) return args + def install(self, pkg, spec, prefix): + """Install method with support for building both shared and static libraries. + + When both +shared and +static variants are enabled, this performs a two-pass build: + 1. First pass: Build and install shared libraries (using the standard build directory) + 2. Second pass: Build and install static libraries in a separate build directory + + Both builds install to the same prefix. The static build happens after the shared + build to ensure no conflicts, as static libraries (.a) and shared libraries (.so) + have different file extensions and can coexist in the same directory. + """ + # First build/install: shared libraries (if +shared) or static (if only +static) + super().install(pkg, spec, prefix) + + # Second build/install: static libraries (only if both +shared and +static) + if spec.satisfies("+shared +static"): + # Build static libraries in a separate build directory + build_dir_parent = os.path.dirname(self.build_directory) + build_dir_name = os.path.basename(self.build_directory) + static_build_dir = os.path.join(build_dir_parent, build_dir_name + "-static") + + with working_dir(static_build_dir, create=True): + # Configure for static libraries + static_args = self.cmake_args() + # Replace BUILD_SHARED_LIBS setting to build static libraries + static_args = [arg for arg in static_args if "BUILD_SHARED_LIBS" not in arg] + static_args.append(self.define("BUILD_SHARED_LIBS", False)) + + # Combine standard cmake args with static-specific args + options = self.std_cmake_args + static_args + options.append(os.path.abspath(self.root_cmakelists_dir)) + + # Run cmake configuration + pkg.module.cmake(*options) + + # Build static libraries + if self.generator == "Unix Makefiles": + pkg.module.make(*self.build_targets) + elif self.generator == "Ninja": + pkg.module.ninja(*self.build_targets) + + # Install static libraries to the same prefix + if self.generator == "Unix Makefiles": + pkg.module.make(*self.install_targets) + elif self.generator == "Ninja": + pkg.module.ninja(*self.install_targets) + class AutotoolsBuilder(autotools.AutotoolsBuilder): def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/amduprof/package.py b/repos/spack_repo/builtin/packages/amduprof/package.py index f99b9b2f8d5..24653c85037 100644 --- a/repos/spack_repo/builtin/packages/amduprof/package.py +++ b/repos/spack_repo/builtin/packages/amduprof/package.py @@ -22,6 +22,11 @@ class Amduprof(Package): maintainers("amd-toolchain-support") + version( + "5.3.518", + sha256="041dcaeaad74c49f7977e10afbefa5356c2c1066f65ca188ac0eb38589e9edb4", + url="file://{0}/AMDuProf_Linux_x64_5.3.518.tar.bz2".format(os.getcwd()), + ) version( "5.2.606", sha256="d5856a6640f6c673941dcb6e42f72b589d656ba40d2ba03ff1215611b2830f11", diff --git a/repos/spack_repo/builtin/packages/amrex/package.py b/repos/spack_repo/builtin/packages/amrex/package.py index ce167e0d0a7..301260372d4 100644 --- a/repos/spack_repo/builtin/packages/amrex/package.py +++ b/repos/spack_repo/builtin/packages/amrex/package.py @@ -29,6 +29,7 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") version("develop", branch="development") + version("26.06", sha256="38c6f9ec6b1d302d91140fd3c0f629954bf0243611c96605beb25221b3367f9b") version("26.05", sha256="70ec8f0e6917388b3d91a7c470648f6ce11a99096810420f1054ed98a041e315") version("26.04", sha256="b09c99d37989b980bba622695b5a9aec267f2430d79683683064c27de7a1776a") version("26.03", sha256="7139b8bb423a4311e8990bee6cb06b86a81de439363f35a3f29c808a93a003ca") diff --git a/repos/spack_repo/builtin/packages/aocc/package.py b/repos/spack_repo/builtin/packages/aocc/package.py index 233da1c4126..8af47884450 100644 --- a/repos/spack_repo/builtin/packages/aocc/package.py +++ b/repos/spack_repo/builtin/packages/aocc/package.py @@ -35,6 +35,11 @@ class Aocc(Package, LlvmDetection, CompilerPackage): maintainers("amd-toolchain-support") + version( + ver="5.2.0", + sha256="f98af7e2ae8801dd4ba443520653acb739536a86c2a1caf096310c3cfd554ca0", + url="https://download.amd.com/developer/eula/aocc/aocc-5-2/aocc-compiler-5.2.0.tar", + ) version( ver="5.1.0", sha256="3ccb56e399c66e10d437feb24b73552bc560210f7606d2609c06a7ef35d22c69", diff --git a/repos/spack_repo/builtin/packages/armpl_gcc/package.py b/repos/spack_repo/builtin/packages/armpl_gcc/package.py index f144b5af340..860a0664696 100644 --- a/repos/spack_repo/builtin/packages/armpl_gcc/package.py +++ b/repos/spack_repo/builtin/packages/armpl_gcc/package.py @@ -58,6 +58,10 @@ } _versions = { + "26.01.1": { + "deb": ("97bea9a6b873d7fbbe0f85150ff32fdc1d08cb3bd012ab79e687a595eb90141f"), + "rpm": ("c1206132a02e9ddd476862e63c97f7a3cfe79281788db1d107cd5aa7287c7c8a"), + }, "26.01": { "deb": ("cc55ab4120a5416fa1e90f98e3007b722a066aac5e445b629e2d3006abe3eadb"), "rpm": ("314728809e279743e37be5ac475c2647f3ab902a5be0735bd318c1dd53a9a064"), diff --git a/repos/spack_repo/builtin/packages/bash/package.py b/repos/spack_repo/builtin/packages/bash/package.py index 23ec3e70117..464954577b1 100644 --- a/repos/spack_repo/builtin/packages/bash/package.py +++ b/repos/spack_repo/builtin/packages/bash/package.py @@ -43,6 +43,12 @@ class Bash(AutotoolsPackage, GNUMirrorPackage): ("5.3", "001", "1f608434364af86b9b45c8b0ea3fb3b165fb830d27697e6cdfc7ac17dee3287f"), ("5.3", "002", "e385548a00130765ec7938a56fbdca52447ab41fabc95a25f19ade527e282001"), ("5.3", "003", "f245d9c7dc3f5a20d84b53d249334747940936f09dc97e1dcb89fc3ab37d60ed"), + ("5.3", "004", "9591d245045529f32f0812f94180b9d9ce9023f5a765c039b852e5dfc99747d0"), + ("5.3", "005", "cca1ef52dbbf433bc98e33269b64b2c814028efe2538be1e2c9a377da90bc99d"), + ("5.3", "006", "29119addefed8eff91ae37fd51822c31780ee30d4a28376e96002706c995ff10"), + ("5.3", "007", "c0976bbfffa1453c7cfdd62058f206a318568ff2d690f5d4fa048793fa3eb299"), + ("5.3", "008", "097cd723cbfb8907674ac32214063a3fd85282657ec5b4e544d2c0f719653fb4"), + ("5.3", "009", "eee30fe78a4b0cb2fe20e010e00308899cfc613e0774ebb3c8557a1552f24f8c"), ("5.2", "001", "f42f2fee923bc2209f406a1892772121c467f44533bedfe00a176139da5d310a"), ("5.2", "002", "45cc5e1b876550eee96f95bffb36c41b6cb7c07d33f671db5634405cd00fd7b8"), ("5.2", "003", "6a090cdbd334306fceacd0e4a1b9e0b0678efdbbdedbd1f5842035990c8abaff"), diff --git a/repos/spack_repo/builtin/packages/bfs/package.py b/repos/spack_repo/builtin/packages/bfs/package.py index 36a176061f8..d7a6cf2668b 100644 --- a/repos/spack_repo/builtin/packages/bfs/package.py +++ b/repos/spack_repo/builtin/packages/bfs/package.py @@ -20,6 +20,7 @@ class Bfs(MakefilePackage): license("0BSD") version("main", branch="main") + version("4.1.2", sha256="4dc9846bbd23acdad4bafb279416b4a60aee98829ab6c5a1380006ab28894f3d") version("4.1", sha256="7a2ccafc87803b6c42009019e0786cb1307f492c2d61d2fcb0be5dcfdd0049da") version("4.0.6", sha256="446a0a1a5bcbf8d026aab2b0f70f3d99c08e5fe18d3c564a8b7d9acde0792112") version("4.0.5", sha256="f7d9ebff00d9a010a5d6cc9b7bf1933095d7e5c0b11a8ec48c96c7ed8f993e5f") diff --git a/repos/spack_repo/builtin/packages/cbtf/package.py b/repos/spack_repo/builtin/packages/cbtf/package.py index 99b9ee73069..e28021be272 100644 --- a/repos/spack_repo/builtin/packages/cbtf/package.py +++ b/repos/spack_repo/builtin/packages/cbtf/package.py @@ -22,10 +22,11 @@ class Cbtf(CMakePackage): license("GPL-2.0-only") - version("develop", branch="master") - version("1.9.4.1", branch="1.9.4.1") - version("1.9.4", branch="1.9.4") - version("1.9.3", branch="1.9.3") + with default_args(deprecated=True): + version("develop", branch="master") + version("1.9.4.1", branch="1.9.4.1") + version("1.9.4", branch="1.9.4") + version("1.9.3", branch="1.9.3") variant( "runtime", default=False, description="build only the runtime libraries and collectors." diff --git a/repos/spack_repo/builtin/packages/cbtf_argonavis/package.py b/repos/spack_repo/builtin/packages/cbtf_argonavis/package.py index d84c04f0d3d..14b282009a1 100644 --- a/repos/spack_repo/builtin/packages/cbtf_argonavis/package.py +++ b/repos/spack_repo/builtin/packages/cbtf_argonavis/package.py @@ -18,10 +18,11 @@ class CbtfArgonavis(CMakePackage): maintainers("jgalarowicz") - version("develop", branch="master") - version("1.9.4.1", branch="1.9.4.1") - version("1.9.4", branch="1.9.4") - version("1.9.3", branch="1.9.3") + with default_args(deprecated=True): + version("develop", branch="master") + version("1.9.4.1", branch="1.9.4.1") + version("1.9.4", branch="1.9.4") + version("1.9.3", branch="1.9.3") variant( "crayfe", diff --git a/repos/spack_repo/builtin/packages/cbtf_argonavis_gui/package.py b/repos/spack_repo/builtin/packages/cbtf_argonavis_gui/package.py index e1162f4a56e..73170ef8544 100644 --- a/repos/spack_repo/builtin/packages/cbtf_argonavis_gui/package.py +++ b/repos/spack_repo/builtin/packages/cbtf_argonavis_gui/package.py @@ -20,8 +20,9 @@ class CbtfArgonavisGui(QMakePackage): maintainers("jgalarowicz") - version("develop", branch="master") - version("1.3.0.0", branch="1.3.0.0") + with default_args(deprecated=True): + version("develop", branch="master") + version("1.3.0.0", branch="1.3.0.0") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/cbtf_krell/package.py b/repos/spack_repo/builtin/packages/cbtf_krell/package.py index aa391a40651..98661b115b6 100644 --- a/repos/spack_repo/builtin/packages/cbtf_krell/package.py +++ b/repos/spack_repo/builtin/packages/cbtf_krell/package.py @@ -19,10 +19,11 @@ class CbtfKrell(CMakePackage): maintainers("jgalarowicz") - version("develop", branch="master") - version("1.9.4.1", branch="1.9.4.1") - version("1.9.4", branch="1.9.4") - version("1.9.3", branch="1.9.3") + with default_args(deprecated=True): + version("develop", branch="master") + version("1.9.4.1", branch="1.9.4.1") + version("1.9.4", branch="1.9.4") + version("1.9.3", branch="1.9.3") # MPI variants variant( diff --git a/repos/spack_repo/builtin/packages/cbtf_lanl/package.py b/repos/spack_repo/builtin/packages/cbtf_lanl/package.py index 10d9df264e7..6d165244ad4 100644 --- a/repos/spack_repo/builtin/packages/cbtf_lanl/package.py +++ b/repos/spack_repo/builtin/packages/cbtf_lanl/package.py @@ -16,10 +16,11 @@ class CbtfLanl(CMakePackage): maintainers("jgalarowicz") - version("develop", branch="master") - version("1.9.4.1", branch="1.9.4.1") - version("1.9.4", branch="1.9.4") - version("1.9.3", branch="1.9.3") + with default_args(deprecated=True): + version("develop", branch="master") + version("1.9.4.1", branch="1.9.4.1") + version("1.9.4", branch="1.9.4") + version("1.9.3", branch="1.9.3") variant( "build_type", diff --git a/repos/spack_repo/builtin/packages/cdo/package.py b/repos/spack_repo/builtin/packages/cdo/package.py index 6c81294a5e1..e840a944cd3 100644 --- a/repos/spack_repo/builtin/packages/cdo/package.py +++ b/repos/spack_repo/builtin/packages/cdo/package.py @@ -20,6 +20,11 @@ class Cdo(AutotoolsPackage): maintainers("skosukhin", "Try2Code") + version( + "2.6.2", + sha256="d59f57a3b33a063023b2b0ef8f38165e0bcf426d3b843031c5078e76832e957b", + url="https://code.mpimet.mpg.de/attachments/download/30213/cdo-2.6.2.tar.gz", + ) version( "2.6.1", sha256="ccf5f3bd5800f703c031bb5b10ae0cd3feac34d8eba7956661ff1ba6deb5985f", diff --git a/repos/spack_repo/builtin/packages/charmpp/package.py b/repos/spack_repo/builtin/packages/charmpp/package.py index 599e888010b..b2870ebe227 100644 --- a/repos/spack_repo/builtin/packages/charmpp/package.py +++ b/repos/spack_repo/builtin/packages/charmpp/package.py @@ -127,7 +127,12 @@ class Charmpp(Package): # Fix was suggested in https://github.com/charmplusplus/charm/pull/3646 and the same has # been implemented in v8.0.0 conflicts("%fortran=intel-oneapi-compilers", when="@8: +fortran") - conflicts("%fortran=aocc", when="@8: +fortran") + conflicts( + "%fortran=aocc@:4.2", + when="@8: +fortran", + msg="Charm++ 8.x +fortran fails to build with AOCC 4.2.0 and earlier; " + "use AOCC 5.0+ or charmpp@8: ~fortran", + ) # Versions 7.0.0+ use CMake by default when it's available. It's more # robust. diff --git a/repos/spack_repo/builtin/packages/cmake/package.py b/repos/spack_repo/builtin/packages/cmake/package.py index 52265cf6e52..8a9ef701a5a 100644 --- a/repos/spack_repo/builtin/packages/cmake/package.py +++ b/repos/spack_repo/builtin/packages/cmake/package.py @@ -31,6 +31,7 @@ class Cmake(Package): license("BSD-3-Clause") version("master", branch="master") + version("4.3.3", sha256="cba4bb7a44edf2877bb6f059932896383babe435b3a8c3b5df48b4aa41c9bb85") version("4.2.3", sha256="7efaccde8c5a6b2968bad6ce0fe60e19b6e10701a12fce948c2bf79bac8a11e9") version("4.1.5", sha256="50ce77215cf266630fa5de97c360f4c313bb79f94b35236b63c1216de3196356") version("4.0.6", sha256="9ebe11be8d304336d62a3e71ca36c18f0a4e40036b97c533d63cf730364b6528") diff --git a/repos/spack_repo/builtin/packages/cminpack/package.py b/repos/spack_repo/builtin/packages/cminpack/package.py index 96f781360e4..684233f5585 100644 --- a/repos/spack_repo/builtin/packages/cminpack/package.py +++ b/repos/spack_repo/builtin/packages/cminpack/package.py @@ -23,8 +23,9 @@ class Cminpack(CMakePackage): variant("shared", default=False, description="Build shared libraries") variant("blas", default=True, description="Compile with BLAS") - depends_on("c", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") depends_on("blas", when="+blas") diff --git a/repos/spack_repo/builtin/packages/comgr/package.py b/repos/spack_repo/builtin/packages/comgr/package.py index bc9a883cdd4..d09e4960882 100644 --- a/repos/spack_repo/builtin/packages/comgr/package.py +++ b/repos/spack_repo/builtin/packages/comgr/package.py @@ -65,6 +65,7 @@ def url_for_version(self, version): depends_on("zlib-api", type="link") depends_on("z3", type="link") depends_on("ncurses", type="link") + depends_on("python@3:", when="@6.4:") for ver in [ "5.7.0", diff --git a/repos/spack_repo/builtin/packages/conduit/package.py b/repos/spack_repo/builtin/packages/conduit/package.py index 998cf4a5060..c65675cf240 100644 --- a/repos/spack_repo/builtin/packages/conduit/package.py +++ b/repos/spack_repo/builtin/packages/conduit/package.py @@ -49,6 +49,7 @@ class Conduit(CachedCMakePackage): # is to bridge any spack dependencies that are still using the name master version("master", branch="develop", submodules=True) # note: 2021-05-05 latest tagged release is now preferred instead of develop + version("0.9.7", sha256="e207016e453dd360b2d9a5a1245e53a9aa26ed83fdfb02cc08fc7bfed664f923") version("0.9.6", sha256="370780082f095ebcb5c43067b650c78325088df726488dc5c6d414e7037c847d") version("0.9.5", sha256="d93294efbf0936da5a27941e13486aa1a04a74a59285786a2303eed19a24265a") version("0.9.4", sha256="c9edfb2ff09890084313ad9c2d83bfb7c10e70b696980762d1ae1488f9f08e6c") diff --git a/repos/spack_repo/builtin/packages/cosimio/package.py b/repos/spack_repo/builtin/packages/cosimio/package.py new file mode 100644 index 00000000000..ae1fe6ae1a3 --- /dev/null +++ b/repos/spack_repo/builtin/packages/cosimio/package.py @@ -0,0 +1,185 @@ +# Copyright 2013-2023 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_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class Cosimio(CMakePackage): + """The CoSimIO is a small library for interprocess communication in + CoSimulation contexts. It is designed for exchanging data between + different solvers or other software tools. For performing coupled + simulations it is used in combination with the CoSimulationApplication. + It is implemented as a detached interface: it follows the interface of + Kratos but is independent of it, which allows easy integration into + other codes / solvers. + """ + + tags = ["fem", "finite-elements", "hpc", "cosimulation", "coupling"] + + homepage = "https://github.com/KratosMultiphysics/CoSimIO" + git = "https://github.com/KratosMultiphysics/CoSimIO.git" + url = "https://github.com/KratosMultiphysics/CoSimIO/archive/refs/tags/v4.3.1.tar.gz" + + maintainers("loumalouomega", "philbucher", "pooyan-dadvand") + + version("master", branch="master") + version("4.3.1", sha256="9e57839175c06a3d2e8694f95f718707ae465867958ef3bc6b554f775915082b") + version("4.3.0", sha256="108a8c0b042f0eb307984accaecb2b6fc1407afd0bd4b36a4c5a98470a757a66") + version("4.2.0", sha256="0c7e96d689b016eefd86781c0a55ce2383088cd2612aadc9697a839a0fa8d2b3") + version("4.1.0", sha256="de02c526835d021c851dbbc1f95e4c929b10d0daccbabc80bcdc7503343678fc") + version("4.0.0", sha256="12f38d1282b41e1ebc1d2c66d799cb7537840495c98638c698215d390403f221") + version("3.0.0", sha256="02c902c2b28ae71241c4faf33f3e7a44f363b1d9732c53363cd33ffbbbe81eea") + + # ------------------------------------------------------------------------- + # Variants + # ------------------------------------------------------------------------- + variant("mpi", default=False, description="Enable MPI communication") + variant("c", default=True, description="Build C API") + variant("python", default=False, description="Build Python bindings") + variant("fortran", default=False, description="Build Fortran API") + variant("testing", default=False, description="Build tests") + variant("strict", default=False, description="Enable strict compiler warnings") + + # ------------------------------------------------------------------------- + # Conflicts + # ------------------------------------------------------------------------- + # The Fortran interface is built on top of the C interface. + conflicts("+fortran", when="~c", msg="+fortran requires +c (the Fortran API wraps the C API)") + + # ------------------------------------------------------------------------- + # Patches + # ------------------------------------------------------------------------- + def patch(self): + """Fix Fortran wrapper for gfortran 11+ compatibility (releases <= 4.3.1). + + Two bugs exist in co_sim_io/fortran/co_sim_io.f90: + + 1. Fixed-form continuation: FUNCTION declarations spanning two lines use + a column-6 ``&`` on the continuation line (fixed-form style), but + gfortran compiles ``.f90`` as free-form where ``&`` must be at the + **end** of the continued line. Fix: add trailing ``&`` to the + FUNCTION declaration line. + + 2. Missing ``USE, INTRINSIC :: ISO_C_BINDING`` and ``IMPORT`` inside 15 + INTERFACE block function declarations. gfortran 11+ hard-errors on + this; gfortran <=10 silently accepted it. + """ + if not self.spec.satisfies("@:4.3.1 +fortran"): + return + + fortran_file = join_path(self.stage.source_path, "co_sim_io", "fortran", "co_sim_io.f90") + + # BIND C name -> types to IMPORT in that interface block. + fixes = { + "CoSimIO_ImportData_fortran": "CoSimIO_Info", + "CoSimIO_Element_GetNodeByIndex": "CoSimIO_Node, CoSimIO_Element", + "CoSimIO_ModelPart_NumberOfNodes": "CoSimIO_ModelPart", + "CoSimIO_ModelPart_NumberOfLocalNodes": "CoSimIO_ModelPart", + "CoSimIO_ModelPart_NumberOfGhostNodes": "CoSimIO_ModelPart", + "CoSimIO_ModelPart_NumberOfElements": "CoSimIO_ModelPart", + "CoSimIO_ModelPart_GetNodeByIndex": "CoSimIO_Node, CoSimIO_ModelPart", + "CoSimIO_ModelPart_GetLocalNodeByIndex": "CoSimIO_Node, CoSimIO_ModelPart", + "CoSimIO_ModelPart_GetGhostNodeByIndex": "CoSimIO_Node, CoSimIO_ModelPart", + "CoSimIO_ModelPart_GetNodeById": "CoSimIO_Node, CoSimIO_ModelPart", + "CoSimIO_ModelPart_GetElementByIndex": "CoSimIO_Element, CoSimIO_ModelPart", + "CoSimIO_ModelPart_GetElementById": "CoSimIO_Element, CoSimIO_ModelPart", + "CoSimIO_ModelPart_CreateNewNode": "CoSimIO_Node, CoSimIO_ModelPart", + "CoSimIO_ModelPart_CreateNewGhostNode": "CoSimIO_Node, CoSimIO_ModelPart", + "CoSimIO_ModelPart_CreateNewElement": ( + "CoSimIO_Element, CoSimIO_ModelPart, CoSimIO_ElementType" + ), + } + + with open(fortran_file) as f: + lines = f.readlines() + + out = [] + i = 0 + while i < len(lines): + line = lines[i] + out.append(line) + + # Detect a BIND continuation line: starts (after whitespace) with & + # and contains one of our target BIND(C, NAME=...) patterns. + stripped = line.lstrip() + if stripped.startswith("&") and 'BIND(C, NAME="' in line: + bind_name = next((n for n in fixes if 'BIND(C, NAME="' + n + '")' in line), None) + if bind_name is not None: + # Fix 1: ensure the preceding FUNCTION line ends with & so + # that this is a valid free-form continuation. If it already + # ends with & (idempotent re-run), skip. + if len(out) >= 2 and not out[-2].rstrip().endswith("&"): + out[-2] = out[-2].rstrip("\n").rstrip() + " &\n" + + # Fix 2: inject USE/IMPORT after the BIND line if absent. + j = i + 1 + while j < len(lines) and lines[j].strip() == "": + j += 1 + if j < len(lines) and "USE, INTRINSIC" not in lines[j]: + out.append(" USE, INTRINSIC :: ISO_C_BINDING\n") + out.append(" IMPORT " + fixes[bind_name] + "\n") + + i += 1 + + with open(fortran_file, "w") as f: + f.writelines(out) + + # ------------------------------------------------------------------------- + # Compilers + # ------------------------------------------------------------------------- + # When building without MPI (`~mpi`), ensure Spack provides valid + # compiler wrappers so CMake can find `CC`, `CXX`, and `FC` when the + # corresponding language APIs are enabled. + with when("~mpi"): + depends_on("c", type="build") # Ensures C compiler is available + depends_on("cxx", type="build") # Ensures CXX compiler is available + # +fortran needs a Fortran compiler regardless of MPI + with when("+fortran"): + depends_on("fortran", type="build") # Ensures Fortran compiler is available + + # ------------------------------------------------------------------------- + # Dependencies + # ------------------------------------------------------------------------- + depends_on("cmake@3.15:", type="build") + + # MPI: any implementation satisfying the 'mpi' virtual package works + # (e.g. openmpi, mpich, intel-oneapi-mpi, mvapich2, ...) + depends_on("mpi", when="+mpi") + + # Python bindings + with when("+python"): + depends_on("python@3.6:", type=("build", "link", "run")) + # pybind11 is vendored under external_libraries/ but the system copy is + # preferred to avoid duplicating toolchain state. + depends_on("py-pybind11", type="build") + + extends("python") + + # ------------------------------------------------------------------------- + # CMake arguments + # ------------------------------------------------------------------------- + def cmake_args(self): + # Spack already forwards CMAKE_BUILD_TYPE; only set CoSimIO-specific + # knobs here so we don't override Spack's build-type logic. + args = [ + self.define_from_variant("CO_SIM_IO_BUILD_C", "c"), + self.define_from_variant("CO_SIM_IO_BUILD_PYTHON", "python"), + self.define_from_variant("CO_SIM_IO_BUILD_FORTRAN", "fortran"), + self.define_from_variant("CO_SIM_IO_BUILD_TESTING", "testing"), + self.define_from_variant("CO_SIM_IO_BUILD_MPI", "mpi"), + self.define_from_variant("CO_SIM_IO_STRICT_COMPILER", "strict"), + ] + + # The top-level CMakeLists declares `LANGUAGES CXX C` (no Fortran). + # cmake_add_fortran_subdirectory() searches for a Fortran compiler at + # configure time; without an explicit hint it may not find Spack's FC + # wrapper. Passing CMAKE_Fortran_COMPILER directly fixes this for all + # compilers, including gfortran 10+. + if "+fortran" in self.spec: + args.append(self.define("CMAKE_Fortran_COMPILER", self.compiler.fc)) + + return args diff --git a/repos/spack_repo/builtin/packages/csvtk/package.py b/repos/spack_repo/builtin/packages/csvtk/package.py index e8756491e98..c8572e2d77a 100644 --- a/repos/spack_repo/builtin/packages/csvtk/package.py +++ b/repos/spack_repo/builtin/packages/csvtk/package.py @@ -20,9 +20,7 @@ class Csvtk(GoPackage): depends_on("go@1.24:", type="build") - @property - def build_directory(self): - return f"{join_path(super().build_directory, self.name)}" + build_directory = "csvtk" @run_after("install") def install_completions(self): diff --git a/repos/spack_repo/builtin/packages/cuda/package.py b/repos/spack_repo/builtin/packages/cuda/package.py index b7fef494350..ef94df7f24f 100644 --- a/repos/spack_repo/builtin/packages/cuda/package.py +++ b/repos/spack_repo/builtin/packages/cuda/package.py @@ -23,6 +23,46 @@ # format returned by platform.system() and 'arch' by platform.machine() _versions = { + "13.3.0": { + "Linux-aarch64": ( + "94ec4572197b65532dcf3d327460417c6527fa42ded9d5010e06ddb89e878d4c", + "https://developer.download.nvidia.com/compute/cuda/13.3.0/local_installers/cuda_13.3.0_610.43.02_linux_sbsa.run", + ), + "Linux-x86_64": ( + "5f79488b57fe6936bc95a56f9b7e2838ab2f2ee3313b1008942206eebe06352d", + "https://developer.download.nvidia.com/compute/cuda/13.3.0/local_installers/cuda_13.3.0_610.43.02_linux.run", + ), + }, + "13.2.1": { + "Linux-aarch64": ( + "38560e0c48eba793c883ea1ada6ad4c37b744cb5284034d16fd7ee57f95dda04", + "https://developer.download.nvidia.com/compute/cuda/13.2.1/local_installers/cuda_13.2.1_595.58.03_linux_sbsa.run", + ), + "Linux-x86_64": ( + "5514a3fe7bcea92b25073c7c100c3e64e7961a7e1dbad6955adb8b59806053f0", + "https://developer.download.nvidia.com/compute/cuda/13.2.1/local_installers/cuda_13.2.1_595.58.03_linux.run", + ), + }, + "13.2.0": { + "Linux-aarch64": ( + "9684ebc64988f71ef1c70846cc9d158fb27950c1355bf37c8795c346346b6a72", + "https://developer.download.nvidia.com/compute/cuda/13.2.0/local_installers/cuda_13.2.0_595.45.04_linux_sbsa.run", + ), + "Linux-x86_64": ( + "c599b651582c8f345ebde7bcf089b7dcfcd8afd7d3ea7f50525698c563a239d7", + "https://developer.download.nvidia.com/compute/cuda/13.2.0/local_installers/cuda_13.2.0_595.45.04_linux.run", + ), + }, + "13.1.2": { + "Linux-aarch64": ( + "9d3963ce2d0d73e2175530ccb90f604821ab91b45b41dca85a96aeb6d96978c8", + "https://developer.download.nvidia.com/compute/cuda/13.1.2/local_installers/cuda_13.1.2_590.48.01_linux_sbsa.run", + ), + "Linux-x86_64": ( + "ad7d50d49898ea1a24518bb9c0c154f73eef3a1b3de22a05b5e3c907dbac4c1b", + "https://developer.download.nvidia.com/compute/cuda/13.1.2/local_installers/cuda_13.1.2_590.48.01_linux.run", + ), + }, "13.1.1": { "Linux-aarch64": ( "8adcd5d4b3e1e70f7420959b97514c0c97ec729da248d54902174c4d229bfd2c", @@ -775,6 +815,14 @@ class Cuda(Package): # cuda-12.8 libcusolver.so requires log2f@GLIBC_2.27 conflicts("glibc@:2.26", when="@12.8:") + conflicts( + "glibc@2.42:", + when="@:13.0", + msg="Incompatible exception specification of some C23 functions (cospi, " + "sinpi, rsqrt, cospif, sinpif, rsqrtf) added in glibc@2.41. Fixed in" + "cuda@13.1.", + ) + variant( "dev", default=False, description="Enable development dependencies, i.e to use cuda-gdb" ) @@ -785,8 +833,8 @@ class Cuda(Package): description="Allow unsupported host compiler and CUDA version combinations", ) - # depended on libxml2.so.2, known unused for 12.0+ (maybe unused for 11) - depends_on("libxml2@:2.13", when="@10.1.243:11") + # `cuda_installer` binary contained in run script depends on libxml2.so.2 + depends_on("libxml2@:2.13", when="@10.1.243:", type="build") # cuda-gdb needed libncurses.so.5 before 11.4.0 # see https://docs.nvidia.com/cuda/archive/11.3.1/cuda-gdb/index.html#common-issues-oss # see https://docs.nvidia.com/cuda/archive/11.4.0/cuda-gdb/index.html#release-notes diff --git a/repos/spack_repo/builtin/packages/dakota/package.py b/repos/spack_repo/builtin/packages/dakota/package.py index 439459ad566..75ff6195278 100644 --- a/repos/spack_repo/builtin/packages/dakota/package.py +++ b/repos/spack_repo/builtin/packages/dakota/package.py @@ -43,6 +43,14 @@ class Dakota(CMakePackage): license("LGPL-2.1-or-later") + # 6.24.0 uses the release tarball instead of git because the tag references a + # surfpack submodule commit not publicly available in the upstream repo. + # See https://github.com/snl-dakota/dakota/issues/192 + version( + "6.24.0", + sha256="da461ffe9df2c56c0b0125503f3b69753c30fa44ac9fabb46a43b44fa68a15fa", + url="https://github.com/snl-dakota/dakota/releases/download/v6.24.0/dakota-6.24.0-public-src-cli.tar.gz", + ) version( "6.23.0", tag="v6.23.0", @@ -79,9 +87,10 @@ class Dakota(CMakePackage): commit="f6cb33b517bb304795e1e14d3673fe289df2ec9b", submodules=submodules, ) - version("6.12", sha256="4d69f9cbb0c7319384ab9df27643ff6767eb410823930b8fbd56cc9de0885bc9") - version("6.9", sha256="989b689278964b96496e3058b8ef5c2724d74bcd232f898fe450c51eba7fe0c2") - version("6.3", sha256="0fbc310105860d77bb5c96de0e8813d75441fca1a5e6dfaf732aa095c4488d52") + with default_args(deprecated=True): + version("6.12", sha256="4d69f9cbb0c7319384ab9df27643ff6767eb410823930b8fbd56cc9de0885bc9") + version("6.9", sha256="989b689278964b96496e3058b8ef5c2724d74bcd232f898fe450c51eba7fe0c2") + version("6.3", sha256="0fbc310105860d77bb5c96de0e8813d75441fca1a5e6dfaf732aa095c4488d52") variant("shared", default=True, description="Enables the build of shared libraries") variant("mpi", default=True, description="Activates MPI support") @@ -111,28 +120,34 @@ class Dakota(CMakePackage): depends_on("cxx", type="build") depends_on("fortran", type="build") - # Generic 'lapack' provider won't work, dakota searches for - # 'LAPACKConfig.cmake' or 'lapack-config.cmake' on the path - depends_on("netlib-lapack +shared") + depends_on("blas") + depends_on("lapack") depends_on("mpi", when="+mpi") - depends_on("hdf5@1.10.4:1.10 +hl+cxx", when="+hdf5") + depends_on("hdf5@1.10.4: +hl+cxx", when="+hdf5") depends_on("python", when="+python") depends_on("py-numpy", when="+python-direct-interface") - depends_on("py-numpy@:1.26.4", when="@:6.20") depends_on("perl-data-dumper", type="build", when="@6.12:") - # TODO: replace this with an explicit list of components of Boost, - # for instance depends_on('boost +filesystem') - # See https://github.com/spack/spack/pull/22303 for reference - depends_on(Boost.with_default_variants, when="@:6.12") - depends_on("boost@:1.68.0", when="@:6.12") - depends_on("boost@1.69.0:1.84.0", when="@6.18:6.20") - depends_on("boost +filesystem +program_options +regex +serialization +system") + depends_on("boost +program_options +regex +serialization +system") + with when("@:6.12"): + depends_on(Boost.with_default_variants) + depends_on("boost@:1.68.0") + + with when("@:6.20"): + depends_on("boost@:1.84.0") + depends_on("py-numpy@:1.26.4") - depends_on("cmake@2.8.9:", type="build", when="@:6.12") - depends_on("cmake@3.17:", type="build", when="@6.18:") + with when("@6.18:"): + depends_on("boost@1.69.0:") + depends_on("cmake@3.17:", type="build") + + with when("@6.22:"): + depends_on("cmake@3.23:", type="build") + + with when("@6.23:"): + depends_on("boost@1.70:") # dakota@:6.18 has broken pybind11/CMake support conflicts("+python", when="@:6.18") @@ -172,27 +187,23 @@ def flag_handler(self, name, flags): def cmake_args(self): spec = self.spec - args = [ self.define_from_variant("BUILD_SHARED_LIBS", "shared"), self.define_from_variant("DAKOTA_PYTHON", "python"), self.define_from_variant("DAKOTA_PYTHON_DIRECT_INTERFACE", "python-direct-interface"), self.define_from_variant("DAKOTA_PYTHON_WRAPPER", "python-wrapper"), - self.define_from_variant("DAKOTA_PYTHON_SURROGATES", "python-wrapper"), - "-DBLAS_LIBS:STRING={}/lib64/libblas.so".format(spec["netlib-lapack"].prefix), - "-DLAPACK_LIBS:STRING={}/lib64/liblapack.so".format(spec["netlib-lapack"].prefix), + self.define_from_variant("DAKOTA_PYTHON_SURROGATES", "python-surrogates"), + self.define_from_variant("DAKOTA_HAVE_HDF5", "hdf5"), + self.define_from_variant("DAKOTA_HAVE_MPI", "mpi"), + self.define("BLAS_LIBS", spec["blas"].libs.joined(";")), + self.define("LAPACK_LIBS", spec["lapack"].libs.joined(";")), ] if spec.satisfies("+mpi"): - args.extend( - [ - "-DDAKOTA_HAVE_MPI:BOOL=ON", - "-DMPI_CXX_COMPILER:STRING=%s" % join_path(spec["mpi"].mpicxx), - ] - ) + args.append(self.define("MPI_CXX_COMPILER", join_path(spec["mpi"].mpicxx))) if spec.satisfies("+python-direct-interface") or spec.satisfies("+python-wrapper"): - args.append("-DDAKOTA_PYBIND11:BOOL=ON") + args.append(self.define("DAKOTA_PYBIND11", True)) if self.run_tests: args += ["-DCMAKE_CTEST_ARGUMENTS=-L;Accept"] diff --git a/repos/spack_repo/builtin/packages/ddc/package.py b/repos/spack_repo/builtin/packages/ddc/package.py index 48fb620f2a7..ca606e9daae 100644 --- a/repos/spack_repo/builtin/packages/ddc/package.py +++ b/repos/spack_repo/builtin/packages/ddc/package.py @@ -21,6 +21,7 @@ class Ddc(CMakePackage): license("MIT", checked_by="tpadioleau") version("main", branch="main", no_cache=True) + version("0.15.0", sha256="1bcb7eda695e7e37bb37dd7ea40adcb614c2cfe71b2890201424b05c48fce331") version("0.14.0", sha256="8c239cea877cf52c3334de6d5c5d248eac85e6df27b9476047fd7ff3f78b85b5") version("0.13.0", sha256="6b93a532896d9f5342b477a2bcf85f05d242c8d7b0331580a62e50a9bf155bad") version("0.12.0", sha256="30a464b00d712ce7264835cc162b63797185667fea3f4c9457d7dfff0a2bc0cc") @@ -95,6 +96,10 @@ class Ddc(CMakePackage): depends_on("googletest@:1 +gmock") depends_on("pdiplugin-user-code@1.6:", type=("build", "test"), when="+pdi") depends_on("pdiplugin-user-code@:1", type=("build", "test"), when="+pdi") + depends_on("py-numpy@1.24:", when="@0.15:") + depends_on("py-numpy@:2", when="@0.15:") + depends_on("py-pytest@8.4:", when="@0.15:") + depends_on("py-pytest@:9", when="@0.15:") conflicts("^kokkos@4.5.0", msg="Incompatible with the embedded mdspan of Kokkos") diff --git a/repos/spack_repo/builtin/packages/deno/package.py b/repos/spack_repo/builtin/packages/deno/package.py index 345b3abc2c3..b771814f009 100644 --- a/repos/spack_repo/builtin/packages/deno/package.py +++ b/repos/spack_repo/builtin/packages/deno/package.py @@ -21,35 +21,46 @@ class Deno(Package): skip_version_audit = ["platform=windows"] deno_versions = { + "2.8.1": { + "linux": { + "x86_64": "2d7bb6195226ac832e0bf7109a115f0af65ee69ac797a4bbde5b27a06cc242d9", + "aarch64": "67e9df91870fd0af700df924173e3009ea7ff6956e2c3c3bb86065d6070d0fd6", + }, + "darwin": { + "x86_64": "47473845e0522ba11dd279e3dd318e2d84ee200c56b8280594e0ae0b0f827460", + "arm64": "8154e2de0ee8c1cae31fa88e078724aaef0295fab9fd2ad6f8520389cee908f6", + }, + }, "2.4.2": { "linux": { - "x86_64": { - "sha256": "d84778633215b7cb93cf7690860d6241f632b087bd2a19de12cd410e6b2e157a", - "target": "x86_64-unknown-linux-gnu", - }, - "aarch64": { - "sha256": "4a3218e3ca99f2abbc41d20691bca7942d18ebcb01db6b4389cbb91eabf1055f", - "target": "aarch64-unknown-linux-gnu", - }, + "x86_64": "d84778633215b7cb93cf7690860d6241f632b087bd2a19de12cd410e6b2e157a", + "aarch64": "4a3218e3ca99f2abbc41d20691bca7942d18ebcb01db6b4389cbb91eabf1055f", }, "darwin": { - "x86_64": { - "sha256": "fa47eb72b8d1f3499a7fb3e6c7bbcd3b1e6407112bb03fafd40aa8038a54b93e", - "target": "x86_64-apple-darwin", - }, - "arm64": { - "sha256": "732f3ce50dc64a63972ca4efb48679299c01663ce918f710d695a68ce5f4c936", - "target": "aarch64-apple-darwin", - }, + "x86_64": "fa47eb72b8d1f3499a7fb3e6c7bbcd3b1e6407112bb03fafd40aa8038a54b93e", + "arm64": "732f3ce50dc64a63972ca4efb48679299c01663ce918f710d695a68ce5f4c936", }, # for some reason windows does not work # "windows": { - # "x86_64": { - # "sha256": "5a8c816f6e720378a74c2567679ba2a799c815b8c2ffc06b0e71da6c2a9bf189", - # "target": "x86_64-pc-windows-msvc", - # } + # "x86_64": "5a8c816f6e720378a74c2567679ba2a799c815b8c2ffc06b0e71da6c2a9bf189", # }, - } + }, + } + + zip_name = { + "linux": { + "x86_64": "x86_64-unknown-linux-gnu", + "aarch64": "aarch64-unknown-linux-gnu", + }, + "darwin": { + "x86_64": "x86_64-apple-darwin", + "arm64": "aarch64-apple-darwin", + }, + # for some reason windows does not work + # "windows": { + # "x86_64": "x86_64-pc-windows-msvc", + # } + # }, } license("MIT") @@ -59,7 +70,7 @@ class Deno(Package): for ver in deno_versions: if system in deno_versions[ver] and machine in deno_versions[ver][system]: - version(ver, sha256=deno_versions[ver][system][machine]["sha256"]) + version(ver, sha256=deno_versions[ver][system][machine]) def install(self, spec, prefix): mkdirp(prefix.bin) @@ -74,6 +85,6 @@ def url_for_version(self, version): ): return None - target = self.deno_versions[ver][self.system][self.machine]["target"] + target = self.zip_name[self.system][self.machine] return f"https://dl.deno.land/release/{version}/deno-{target}.zip" diff --git a/repos/spack_repo/builtin/packages/difftastic/package.py b/repos/spack_repo/builtin/packages/difftastic/package.py index a4b1a01aedf..8ce820da4ba 100644 --- a/repos/spack_repo/builtin/packages/difftastic/package.py +++ b/repos/spack_repo/builtin/packages/difftastic/package.py @@ -17,11 +17,14 @@ class Difftastic(CargoPackage): license("MIT") + version("0.69.0", sha256="49d722fb80a0324ea99fe11907f796cde635443084d15cc6f1afd9e0de54bde0") version("0.68.0", sha256="86cfd4232f99c5dac56bd1e6fab7b8d96cfaac7a4271738b50c8189031c97a66") version("0.67.0", sha256="a6a15d6ca9f9ab7c034d1770417d1829deb3fbe9dcf4731b9cba867e50e78437") + version("0.65.0", sha256="59462f69e2cedfdc1bee4fd0da48fe9a7ae635cdb6818c1a300b31c0b146d4b8") version("0.64.0", sha256="54c7c93309ff9a2cbe87153ac1d16e80bacac4042c80f6b7206e9b71a6f10d0b") version("0.63.0", sha256="f96bcf4fc961921d52cd9fe5aa94017924abde3d5a3b5a4727b103e9c2d4b416") + depends_on("rust@1.85:", type="build", when="@0.69:") depends_on("rust@1.77:", type="build", when="@0.68:") depends_on("rust@1.76:", type="build", when="@0.67:") depends_on("rust@1.75:", type="build", when="@0.65:") diff --git a/repos/spack_repo/builtin/packages/dock/package.py b/repos/spack_repo/builtin/packages/dock/package.py index 3dcc0152d74..5f895d6ad63 100644 --- a/repos/spack_repo/builtin/packages/dock/package.py +++ b/repos/spack_repo/builtin/packages/dock/package.py @@ -17,48 +17,64 @@ class Dock(Package): site, and the associated binding energy.""" homepage = "http://dock.compbio.ucsf.edu/DOCK_6/index.htm" - url = "file://{0}/dock.6.9_source.tar.gz".format(os.getcwd()) + url = "https://github.com/docking-org/dock6/archive/refs/tags/v6.13.1.tar.gz" + maintainers("snehring") - manual_download = True - version("6.9", sha256="c2caef9b4bb47bb0cb437f6dc21f4c605fd3d0d9cc817fa13748c050dc87a5a8") + license("BSD-3-Clause", checked_by="snehring") + + with when("@=6.9"): + manual_download = True + + version("6.13.1", sha256="1bfe7ff777e60af6bff785dc74f9f7d1b0403c518c34ce4d1e6db98ac0865db1") + + # I don't think you can actually get 6.9 anymore since they moved to github + version( + "6.9", + sha256="c2caef9b4bb47bb0cb437f6dc21f4c605fd3d0d9cc817fa13748c050dc87a5a8", + deprecated=True, + url=f"file://{os.getcwd()}/dock.6.9_source.tar.gz", + ) variant("mpi", default=True, description="Enable mpi") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + + depends_on("gmake", type="build") depends_on("bison", type="build") depends_on("flex", type="build") depends_on("mpi", when="+mpi") - def setup_build_environment(self, env: EnvironmentModifications) -> None: - if self.spec.satisfies("+mpi"): - env.set("MPICH_HOME", self.spec["mpi"].prefix) - def install(self, spec, prefix): - compiler_targets = {"gcc": "gnu", "intel": "intel", "sgi": "sgi"} - - if self.compiler.name not in compiler_targets: - template = "Unsupported compiler {0}! Supported compilers: {1}" - err = template.format(self.compiler.name, ", ".join(list(compiler_targets.keys()))) - - raise InstallError(err) - + mkdirp("bin") + # the object files aren't regenerated after the clean target runs, so let's just not do it + with working_dir(join_path("src", "docktools", "convgrids")): + for i in ["gridrdsl.mk", "gridconv.mk"]: + filter_file("install: clean all", "install: all", i) with working_dir("install"): - sh_args = ["./configure", compiler_targets[self.compiler.name]] - config_source = compiler_targets[self.compiler.name] - - if spec.satisfies("+mpi"): - sh_args.append("parallel") - config_source = config_source + ".parallel" - - if self.spec.satisfies("@6.9%gcc@10:"): - # Versions of gcc before 10 treat mismatched arguments as a warning - # 10+ makes it an error. This makes it a warning again - filter_file( - r"(-fno-second-underscore)", r"\1 -fallow-argument-mismatch", config_source - ) - - which("sh", required=True)(*sh_args) - which("make", required=True)("YACC=bison -o y.tab.c") + copy("gnu", "config.h") + for i in [r"^CC=.*$", r"^CXX=.*$", r"^FC=.*$"]: + filter_file(i, "", "config.h") + filter_file( + r"^FFLAGS=.*$", + "FFLAGS=-fno-automatic -fno-second-underscore -fallow-argument-mismatch", + "config.h", + ) + if self.spec.satisfies("+mpi"): + filter_file(r"^CXXFLAGS=.*$", "CXXFLAGS=-DBUILD_DOCK_WITH_MPI", "config.h") + filter_file(r"CFLAGS=.*$", "CFLAGS=-DBUILD_DOCK_WITH_MPI", "config.h") + filter_file(r"^DOCK_SUFFIX=.*", "DOCK_SUFFIX=.mpi", "config.h") + filter_file(r"^LOAD=.*$", f"LOAD={self.spec['mpi'].mpicxx}", "config.h") + else: + filter_file(r"^LOAD=.*$", f"LOAD={self.compiler.cxx}", "config.h") + filter_file(r"^CFLAGS=.*", "", "config.h") + + with open("config.h", "a", encoding="UTF-8") as f: + f.write(f"DOCKHOME={self.spec.prefix}") + which("make")("dock") + which("make")("utils") mkdirp(prefix.bin) install_tree("bin", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/e4s_cl/package.py b/repos/spack_repo/builtin/packages/e4s_cl/package.py index fa8e91c6372..b2b93ce8eab 100644 --- a/repos/spack_repo/builtin/packages/e4s_cl/package.py +++ b/repos/spack_repo/builtin/packages/e4s_cl/package.py @@ -13,7 +13,7 @@ class E4sCl(PythonPackage): maintainers("spoutn1k", "FrederickDeny") homepage = "https://e4s-cl.readthedocs.io" - url = "https://oaciss.uoregon.edu/e4s/e4s-cl/releases" + url = "https://github.com/E4S-Project/e4s-cl/archive/refs/tags/v1.0.8.tar.gz" git = "https://github.com/E4S-Project/e4s-cl" tags = ["e4s"] @@ -23,13 +23,16 @@ class E4sCl(PythonPackage): license("MIT") version("master", branch="master") + version("1.0.9", sha256="60a06417a98b7760e3d2ad911a6259eb516b28cd334a03cc84bb8c6d41ba1240") + version("1.0.8", sha256="b2bdb042db5f3106cc0a4c79781d03299828f9839a3903d1559c2c4a3e20a67c") version("1.0.5", commit="33b659e80a5b47a6b3e730e9eb67d1431b112587") version("1.0.4", commit="9781a62af20f951e3c2c19a522f4fc16d20a256e") version("1.0.3", commit="1b34fa7964273675ce18b9cd3006b4b87dda1ef2") version("1.0.1", commit="b2c92993e0c7cb42de07f0f7cc02da3a06816192") version("1.0.0", commit="410bb2e6601d9b90243a487ad7f7d2dabd8ba04c") - depends_on("python@3.7:", type=("build", "run")) + depends_on("python@3.8:", type=("build", "run"), when="@1.0.6:") + depends_on("python@3.7:", type=("build", "run"), when="@:1.0.5") depends_on("py-setuptools", type="build") depends_on("py-termcolor@1.1.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/eccodes/package.py b/repos/spack_repo/builtin/packages/eccodes/package.py index 3006a777d07..293f7538ccc 100644 --- a/repos/spack_repo/builtin/packages/eccodes/package.py +++ b/repos/spack_repo/builtin/packages/eccodes/package.py @@ -51,8 +51,10 @@ class Eccodes(CMakePackage): version("develop", branch="develop") + version("2.47.0", sha256="82da819aa9b51831dc14b3bf2918bfee50b1cd53a05088d0c3f4493758aae094") version("2.46.0", sha256="7d959253d5e34aeb16caa14d4889ac06486d19821216743142733a32ee7b4935") version("2.45.0", sha256="6c84b39d7cc5e3b8330eeabe880f3e337f9b2ee1ebce20ea03eecd785f6c39a1") + version("2.44.0", sha256="c75fb1f91b765b6b8b4774632a8a6fbcec96934db015fb63c2ad2560aedd443b") version("2.42.0", sha256="60371b357cb011dee546db2eabace5b7e27f0f87d3ea4a5adde7891371b3c128") version("2.41.0", sha256="a1467842e11ed7f62a2f5cc1982e04eec62398f4962e6ba03ace7646f32cf270") version("2.40.0", sha256="f58d5d7390fce86c62b26d76b9bc3c4d7d9a6cf2e5f8145d1d598089195e51ff") diff --git a/repos/spack_repo/builtin/packages/eccodes_cosmo_resources/package.py b/repos/spack_repo/builtin/packages/eccodes_cosmo_resources/package.py index 394f18e3da6..b863fc69591 100644 --- a/repos/spack_repo/builtin/packages/eccodes_cosmo_resources/package.py +++ b/repos/spack_repo/builtin/packages/eccodes_cosmo_resources/package.py @@ -20,6 +20,7 @@ class EccodesCosmoResources(Package): maintainers("huppd", "lxavier", "victoria-cherkas") + version("2.44.0.1", sha256="0413a791e53e2d2a120c7aea92560a729d2a8bb202b6fbcfa691911a2d066f06") version("2.36.0.3", sha256="503a1b5f8a0aefc782e0faab52960d957d1d73f042ea4e1ac6e4888e53784125") version("2.25.0.3", sha256="f2ebf768a489c17d6b3fbb49c27b50c2806d48cc03c4aa93a9e9bca0ff44c599") version("2.25.0.2", sha256="1fa3d3734583f98eee1a45e1a3cf9e340b8ca5fbe879dd6992db88e8a4db98a7") @@ -27,6 +28,7 @@ class EccodesCosmoResources(Package): version("2.18.0.1", sha256="666e14a3841f168a231487a55eea58fa5a6209a65a1f8a6ef02af713fa6fcbe7") depends_on("eccodes") + depends_on("eccodes@2.44.0", type=("build", "link", "run"), when="@2.44.0.1") depends_on("eccodes@2.36.4", type=("build", "link", "run"), when="@2.36.0.3") depends_on("eccodes@2.25.0", type=("build", "link", "run"), when="@2.25.0.1:2.25.0.3") depends_on("eccodes@2.18.0", type=("build", "link", "run"), when="@2.18.0.1") diff --git a/repos/spack_repo/builtin/packages/ecflow/package.py b/repos/spack_repo/builtin/packages/ecflow/package.py index 43fd6b444e5..dd66c056598 100644 --- a/repos/spack_repo/builtin/packages/ecflow/package.py +++ b/repos/spack_repo/builtin/packages/ecflow/package.py @@ -27,9 +27,16 @@ class Ecflow(CMakePackage): version("5.11.4", sha256="4836a876277c9a65a47a3dc87cae116c3009699f8a25bab4e3afabf160bcf212") version("5.8.4", sha256="bc628556f8458c269a309e4c3b8d5a807fae7dfd415e27416fe9a3f544f88951") version("5.8.3", sha256="1d890008414017da578dbd5a95cb1b4d599f01d5a3bb3e0297fe94a87fbd81a6") - version("4.13.0", sha256="c743896e0ec1d705edd2abf2ee5a47f4b6f7b1818d8c159b521bdff50a403e39") - version("4.12.0", sha256="566b797e8d78e3eb93946b923ef540ac61f50d4a17c9203d263c4fd5c39ab1d1") - version("4.11.1", sha256="b3bcc1255939f87b9ba18d802940e08c0cf6379ca6aeec1fef7bd169b0085d6c") + with default_args(deprecated=True): + version( + "4.13.0", sha256="c743896e0ec1d705edd2abf2ee5a47f4b6f7b1818d8c159b521bdff50a403e39" + ) + version( + "4.12.0", sha256="566b797e8d78e3eb93946b923ef540ac61f50d4a17c9203d263c4fd5c39ab1d1" + ) + version( + "4.11.1", sha256="b3bcc1255939f87b9ba18d802940e08c0cf6379ca6aeec1fef7bd169b0085d6c" + ) variant("ssl", default=True, description="Enable SSL") variant( diff --git a/repos/spack_repo/builtin/packages/emacs/package.py b/repos/spack_repo/builtin/packages/emacs/package.py index 88d47b59a5f..881ec2f59c0 100644 --- a/repos/spack_repo/builtin/packages/emacs/package.py +++ b/repos/spack_repo/builtin/packages/emacs/package.py @@ -60,7 +60,7 @@ class Emacs(AutotoolsPackage, GNUMirrorPackage): description="X11 toolkit when gui=x11 (gtk, athena)", when="gui=x11", ) - variant("json", default=False, when="@27:", description="Build with json support") + variant("json", default=False, when="@27:29", description="Build with json support") variant("native", default=False, when="@28:", description="Enable native compilation of elisp") variant("sqlite", default=False, when="@29.1:", description="Build with sqlite3 support") variant("tls", default=True, description="Build with gnutls support") diff --git a/repos/spack_repo/builtin/packages/enzyme/package.py b/repos/spack_repo/builtin/packages/enzyme/package.py index 9bea57ce15e..733bd00e8e0 100644 --- a/repos/spack_repo/builtin/packages/enzyme/package.py +++ b/repos/spack_repo/builtin/packages/enzyme/package.py @@ -16,7 +16,7 @@ class Enzyme(CMakePackage): """ homepage = "https://enzyme.mit.edu" - url = "https://github.com/wsmoses/Enzyme/archive/v0.0.172.tar.gz" + url = "https://github.com/wsmoses/Enzyme/archive/v0.0.266.tar.gz" list_url = "https://github.com/wsmoses/Enzyme/releases" git = "https://github.com/wsmoses/Enzyme" @@ -25,6 +25,7 @@ class Enzyme(CMakePackage): root_cmakelists_dir = "enzyme" version("main", branch="main") + version("0.0.266", sha256="174fd65b7aabf6b964582a3785dd638a1ffbf17c195ebd99288e60e58e620236") version("0.0.206", sha256="600fd2db370fb40abb6411e0e80df524aea03f2c1ad50a2765ecaab9e1115c77") version("0.0.196", sha256="2b9cfcb7c34e56fc8191423042df06241cf32928eefbb113ac3c5199e3361cb2") version("0.0.186", sha256="125e612df0b6b82b07e1e13218c515bc54e04aa1407e57f4f31d3abe995f4714") @@ -52,7 +53,8 @@ class Enzyme(CMakePackage): depends_on("libllvm@11:16", when="@0.0.80:0.0.99") depends_on("libllvm@11:19", when="@0.0.100:0.0.148") depends_on("libllvm@15:19", when="@0.0.149:0.0.185") - depends_on("libllvm@15:20", when="@0.0.186:") + depends_on("libllvm@15:20", when="@0.0.186:0.0.196") + depends_on("libllvm@15:21", when="@0.0.197:") depends_on("cmake@3.13:", type="build") def cmake_args(self): diff --git a/repos/spack_repo/builtin/packages/esmf/package.py b/repos/spack_repo/builtin/packages/esmf/package.py index 914a8217597..84e4140d503 100644 --- a/repos/spack_repo/builtin/packages/esmf/package.py +++ b/repos/spack_repo/builtin/packages/esmf/package.py @@ -18,9 +18,24 @@ class Esmf(MakefilePackage, PythonExtension): related Earth science applications. The ESMF defines an architecture for composing complex, coupled modeling systems and includes data structures and utilities for developing individual models. + The National Unified Operational Prediction Capability (NUOPC) Layer defines a common model architecture to support interoperable ESMF components. - The NUOPC Layer is included with the ESMF package.""" + The NUOPC Layer is included with the ESMF package. + + ESMX (Earth System Modeling eXecutable) extends this infrastructure by + providing a unified, runtime executable layer. It simplifies the deployment + of NUOPC-compliant components by allowing users to configure, drive, and + execute coupled earth system models dynamically via YAML configuration files, + reducing the need to write custom top-level application and driver code. + ESMX is included with the ESMF package. + + ESMPy is a Python interface to the ESMF gridding engine. It allows for + high-performance, parallel regridding of fields between structured grids, + unstructured meshes, and observational data streams directly within Python + workflows. This bridges native ESMF capabilities with the broader Python + data science ecosystem. + ESMPy is included with the ESMF package.""" homepage = "https://earthsystemmodeling.org/" url = "https://github.com/esmf-org/esmf/archive/v8.4.1.tar.gz" diff --git a/repos/spack_repo/builtin/packages/etcd/package.py b/repos/spack_repo/builtin/packages/etcd/package.py index c5cd1b7026e..6068605c86e 100644 --- a/repos/spack_repo/builtin/packages/etcd/package.py +++ b/repos/spack_repo/builtin/packages/etcd/package.py @@ -18,10 +18,12 @@ class Etcd(GoPackage): license("Apache-2.0") + version("3.6.12", sha256="43b78c492dd5dd5f012d14af85adf1ea15b25384cd2f8de04d7d68e418e4907a") version("3.6.5", sha256="96b2eabaf6da7dd21797152e7d1c1ce27da75926ae10e08a90b7ed0458287a4b") version("3.5.9", sha256="ab24d74b66ba1ed7d2bc391839d961e7215f0f3d674c3a9592dad6dc67a7b223") version("3.4.23", sha256="055c608c4898d25f23aefbc845ff074bf5e8a07e61ed41dbd5cc4d4f59c93093") + depends_on("go@1.25:", type="build", when="@3.6.9:") depends_on("go@1.24:", type="build", when="@3.6.5:") depends_on("go@1.19:", type="build") depends_on("gmake", type="build") diff --git a/repos/spack_repo/builtin/packages/fd/package.py b/repos/spack_repo/builtin/packages/fd/package.py index 87f2a942354..fb999a70d97 100644 --- a/repos/spack_repo/builtin/packages/fd/package.py +++ b/repos/spack_repo/builtin/packages/fd/package.py @@ -23,6 +23,7 @@ class Fd(CargoPackage): license("Apache-2.0 OR MIT") version("master", branch="master") + version("10.4.2", sha256="3a7e027af8c8e91c196ac259c703d78cd55c364706ddafbc66d02c326e57a456") version("10.3.0", sha256="2edbc917a533053855d5b635dff368d65756ce6f82ddefd57b6c202622d791e9") version("10.2.0", sha256="73329fe24c53f0ca47cd0939256ca5c4644742cb7c14cf4114c8c9871336d342") version("10.1.0", sha256="ee4b2403388344ff60125c79ff25b7895a170e7960f243ba2b5d51d2c3712d97") @@ -33,9 +34,10 @@ class Fd(CargoPackage): depends_on("c", type="build") - depends_on("rust@1.77.2:", type="build", when="@10:") - depends_on("rust@1.70:", type="build", when="@8.7.1:") - depends_on("rust@1.64:", type="build", when="@8.7:") + depends_on("rust@1.90.0:", type="build", when="@10.4.0:") + depends_on("rust@1.77.2:", type="build", when="@10.0.0:") + depends_on("rust@1.70.0:", type="build", when="@8.7.1:") + depends_on("rust@1.64.0:", type="build", when="@8.7.0:") depends_on("gmake", type="build") diff --git a/repos/spack_repo/builtin/packages/fmt/package.py b/repos/spack_repo/builtin/packages/fmt/package.py index ca571408e5b..6d6a86f8d4d 100644 --- a/repos/spack_repo/builtin/packages/fmt/package.py +++ b/repos/spack_repo/builtin/packages/fmt/package.py @@ -153,3 +153,13 @@ def cmake_args(self): args.append(self.define("FMT_TEST", self.run_tests)) return args + + @property + def libs(self): + # Debug builds provide libfmtd instead of libfmt + return find_libraries( + ["libfmt", "libfmtd"], + root=self.home, + recursive=True, + shared=self.spec.satisfies("+shared"), + ) diff --git a/repos/spack_repo/builtin/packages/foam_extend/package.py b/repos/spack_repo/builtin/packages/foam_extend/package.py index 698f6408bb7..a6c4f6bf7cd 100644 --- a/repos/spack_repo/builtin/packages/foam_extend/package.py +++ b/repos/spack_repo/builtin/packages/foam_extend/package.py @@ -63,7 +63,6 @@ class FoamExtend(Package): # variant('int64', default=False, # description='Compile with 64-bit label') variant("float32", default=False, description="Compile with 32-bit scalar (single-precision)") - variant("paraview", default=False, description="Build paraview plugins (eg, paraFoam)") variant("scotch", default=True, description="With scotch for decomposition") variant("ptscotch", default=True, description="With ptscotch for decomposition") variant("metis", default=True, description="With metis for decomposition") @@ -89,7 +88,6 @@ class FoamExtend(Package): depends_on("parmetis", when="+parmetis") # mgridgen is statically linked depends_on("parmgridgen", when="+parmgridgen", type="build") - depends_on("paraview@:5.0.1", when="+paraview") depends_on("mesquite") # General patches @@ -336,18 +334,6 @@ def configure(self, spec, prefix): "PARMGRIDGEN_INCLUDE_DIR": pkg.include, } - if self.spec.satisfies("+paraview"): - self.etc_prefs["paraview"] = { - "PARAVIEW_SYSTEM": 1, - "PARAVIEW_DIR": spec["paraview"].prefix, - "PARAVIEW_BIN_DIR": spec["paraview"].prefix.bin, - } - self.etc_prefs["qt"] = { - "QT_SYSTEM": 1, - "QT_DIR": spec["qt"].prefix, - "QT_BIN_DIR": spec["qt"].prefix.bin, - } - # Write prefs files according to the configuration. # Only need prefs.sh for building, but install both for end-users write_environ( diff --git a/repos/spack_repo/builtin/packages/fzf/package.py b/repos/spack_repo/builtin/packages/fzf/package.py index dfc7be7d200..89425b51ac7 100644 --- a/repos/spack_repo/builtin/packages/fzf/package.py +++ b/repos/spack_repo/builtin/packages/fzf/package.py @@ -26,6 +26,7 @@ class Fzf(GoPackage): # Versions from newest to oldest version("master", branch="master") + version("0.73.1", sha256="ae4f49f8606a7d28498208fa1b93c5d3b890719eea97e02559e66160138b750c") version("0.67.0", sha256="da72936dd23045346769dbf233a7a1fa6b4cfe4f0e856b279821598ce8f692af") version("0.66.0", sha256="576659beee244b4ecccf45f1c576340143d8ce6d97fa053e6cbdd3f75c66b351") version("0.65.2", sha256="53b7e0077833f96ae04fd1e312ed65b2d5c427422b652dd3ce6c2d1702f8ce56") diff --git a/repos/spack_repo/builtin/packages/gcc/package.py b/repos/spack_repo/builtin/packages/gcc/package.py index ebe9ca1eee3..96a57c1ff0b 100644 --- a/repos/spack_repo/builtin/packages/gcc/package.py +++ b/repos/spack_repo/builtin/packages/gcc/package.py @@ -15,7 +15,8 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): """The GNU Compiler Collection includes front ends for C, C++, Objective-C, - Fortran, Ada, and Go, as well as libraries for these languages.""" + Fortran, Ada, and Go, as well as libraries for these languages. + """ homepage = "https://gcc.gnu.org" gnu_mirror_path = "gcc/gcc-9.2.0/gcc-9.2.0.tar.xz" @@ -39,6 +40,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): version("16.1.0", sha256="50efb4d94c3397aff3b0d61a5abd748b4dd31d9d3f2ab7be05b171d36a510f79") # Previous stable series releases + version("15.3.0", sha256="fa59c1beef8995f27c4d71c1df227587189315d3e6faff1bb4306e61b0c530eb") version("15.2.0", sha256="438fd996826b0c82485a29da03a72d71d6e3541a83ec702df4271f6fe025d24e") version("15.1.0", sha256="e2b09ec21660f01fecffb715e0120265216943f038d0e48a9868713e54f06cea") @@ -64,9 +66,6 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): version("4.6.4", sha256="35af16afa0b67af9b8eb15cafb76d2bc5f568540552522f5dc2c88dd45d977e8") version("4.5.4", sha256="eef3f0456db8c3d992cbb51d5d32558190bc14f3bc19383dd93acc27acc6befc") - # Used in the tutorial - version("12.3.0", sha256="949a5d4f99e786421a93b532b22ffab5578de7321369975b91aec97adfda8c3b") - # Deprecated older non-final releases with default_args(deprecated=True): version( @@ -86,6 +85,9 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): version( "12.4.0", sha256="704f652604ccbccb14bdabf3478c9511c89788b12cb3bbffded37341916a9175" ) + version( + "12.3.0", sha256="949a5d4f99e786421a93b532b22ffab5578de7321369975b91aec97adfda8c3b" + ) version( "12.2.0", sha256="e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff" ) @@ -205,30 +207,34 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): ) variant("libsanitizer", default=True, description="Use libsanitizer") + # See https://gcc.gnu.org/install/prerequisites.html + depends_on("c", type="build") depends_on("cxx", type="build") - - depends_on("flex", type="build", when="@master") - - # https://gcc.gnu.org/install/prerequisites.html - depends_on("gmp@4.3.2:") # mawk is not sufficient for go support depends_on("gawk@3.1.5:", type="build") depends_on("texinfo@4.7:", type="build") depends_on("libtool", type="build") - # dependencies required for git versions - depends_on("m4@1.4.6:", when="@master", type="build") - depends_on("automake@1.15.1:", when="@master", type="build") - depends_on("autoconf@2.69:", when="@master", type="build") depends_on("gmake@3.80:", type="build") depends_on("perl@5", type="build") + depends_on("diffutils", type="build") + + with when("@master"): + depends_on("flex", type="build") + # dependencies required for git versions + depends_on("m4@1.4.6:", type="build") + depends_on("automake@1.15.1:", type="build") + depends_on("autoconf@2.69:", type="build") + + depends_on("gmp@4.3.2:") # GCC 7.3 does not compile with newer releases on some platforms, see # https://github.com/spack/spack/issues/6902#issuecomment-433030376 depends_on("mpfr@2.4.2:3.1.6", when="@:9.9") depends_on("mpfr@3.1.0:", when="@10:") depends_on("mpc@1.0.1:", when="@4.5:") + # Already released GCC versions do not support any newer version of ISL # GCC 5.4 https://github.com/spack/spack/issues/6902#issuecomment-433072097 # GCC 7.3 https://github.com/spack/spack/issues/6902#issuecomment-433030376 @@ -242,7 +248,6 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): depends_on("zlib-api", when="@6:") depends_on("zstd", when="@10:") - depends_on("diffutils", type="build") depends_on("iconv", when="platform=darwin") depends_on("gnat", when="languages=ada") depends_on( @@ -259,11 +264,12 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): # depends_on('cloog') # https://gcc.gnu.org/install/test.html - depends_on("dejagnu@1.4.4", type="test") - depends_on("expect", type="test") - depends_on("tcl", type="test") - depends_on("autogen@5.5.4:", type="test") - depends_on("guile@1.4.1:", type="test") + with default_args(type="test"): + depends_on("dejagnu@1.4.4") + depends_on("expect") + depends_on("tcl") + depends_on("autogen@5.5.4:") + depends_on("guile@1.4.1:") # See https://go.dev/doc/install/gccgo#Releases with when("languages=go"): @@ -394,6 +400,9 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): # NVPTX build disables bootstrap conflicts("+bootstrap") + # Graphite loop optimizations cause bootstrap comparison failures + conflicts("+graphite +bootstrap") + # Binutils can't build ld on macOS conflicts("+binutils", when="platform=darwin") @@ -1002,40 +1011,23 @@ def copy_nvptx_tools(self): # run configure/make/make(install) for the nvptx-none target # before running the host compiler phases - @run_before("configure") + @run_before("configure", when="+nvptx") def nvptx_install(self): - spec = self.spec - prefix = self.prefix - - if not spec.satisfies("+nvptx"): - return + self.copy_nvptx_tools() + self.link_newlib() # config.guess returns the host triple, e.g. "x86_64-pc-linux-gnu" guess = Executable("./config.guess") targetguess = guess(output=str).rstrip("\n") - - options = getattr(self, "configure_flag_args", []) - options += ["--prefix={0}".format(prefix)] - - options += [ - "--with-cuda-driver-include={0}".format(spec["cuda"].prefix.include), - "--with-cuda-driver-lib={0}".format(spec["cuda"].libs.directories[0]), - ] - - self.copy_nvptx_tools() - - self.link_newlib() - - # self.build_directory = 'spack-build-nvptx' with working_dir("spack-build-nvptx", create=True): options = [ - "--prefix={0}".format(prefix), - "--enable-languages={0}".format(",".join(spec.variants["languages"].value)), - "--with-mpfr={0}".format(spec["mpfr"].prefix), - "--with-gmp={0}".format(spec["gmp"].prefix), + f"--prefix={self.prefix}", + f"--enable-languages={','.join(self.spec.variants['languages'].value)}", + f"--with-mpfr={self.spec['mpfr'].prefix}", + f"--with-gmp={self.spec['gmp'].prefix}", "--target=nvptx-none", - "--with-build-time-tools={0}".format(join_path(prefix, "nvptx-none", "bin")), - "--enable-as-accelerator-for={0}".format(targetguess), + f"--with-build-time-tools={join_path(self.prefix, 'nvptx-none', 'bin')}", + f"--enable-as-accelerator-for={targetguess}", "--disable-sjlj-exceptions", "--enable-newlib-io-long-long", ] @@ -1161,10 +1153,10 @@ def detect_gdc(self): Should be use only if self.spec.satisfies("@12: languages=d") """ # Detect GCC package in the directory of the GCC compiler - # or in the $PATH if self.compiler.cc is not an absolute path: + # or in the $PATH if self["c"].cc is not an absolute path: from spack.detection import by_path # TODO: remove use of private Spack API - compiler_dir = os.path.dirname(self.compiler.cc) + compiler_dir = os.path.dirname(self["c"].cc) detected_packages = by_path( [self.name], path_hints=([compiler_dir] if os.path.isdir(compiler_dir) else None) ) @@ -1180,7 +1172,7 @@ def detect_gdc(self): if candidate_specs: # We now need to filter specs that match the compiler version: - compiler_spec = Spec(repr(self.compiler.spec)) + compiler_spec = self["c"].spec # First, try to filter specs that satisfy the compiler spec: new_candidate_specs = list( @@ -1211,7 +1203,7 @@ def detect_gdc(self): error_nl, self.spec.format("{name}{@version} {variants.languages}") ), ) - elif len(candidate_specs) == 0: + elif len(candidate_specs) == 1: return candidate_specs[0].extra_attributes["compilers"]["d"] else: # It is rather unlikely to end up here but let us try to resolve the ambiguity: @@ -1224,7 +1216,7 @@ def detect_gdc(self): else: raise InstallError( "Cannot resolve ambiguity when detecting GDC that belongs to %{0}".format( - self.compiler.spec + self["c"].spec ), long_msg="The candidates are:{0}{0}{1}{0}".format( error_nl, diff --git a/repos/spack_repo/builtin/packages/gdal/package.py b/repos/spack_repo/builtin/packages/gdal/package.py index 71befb4f412..6f77cc1f6e8 100644 --- a/repos/spack_repo/builtin/packages/gdal/package.py +++ b/repos/spack_repo/builtin/packages/gdal/package.py @@ -31,6 +31,7 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): license("MIT") maintainers("adamjstewart") + version("3.13.1", sha256="7398fb132753140740fac4f099f0dbe49d1ad074c4162290c308e067c46b7f92") version("3.13.0", sha256="1c537dd2f4d66f05534ae419bc2af495c2204ce13bb266c8cbd867dd6705f0c7") version("3.12.4", sha256="813094498c17522ac42821a5ea1ea783d8326c0adf286cce86a949038bd09198") version("3.12.3", sha256="398a5a32ee6e75040598a7f8e895126a8225118317f272d715867c844f932848") @@ -316,6 +317,7 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): depends_on("geos@3.1:", when="+geos") depends_on("giflib", when="+gif") depends_on("grass@5.7:", when="+grass") + # depends_on("grok@20.3.2:", when="@3.13.1:+grok") # depends_on("grok@20.2:", when="+grok") depends_on("libgta", when="+gta") depends_on("libheif@1.1:", when="+heif") @@ -376,6 +378,7 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): with when("+poppler"): depends_on("poppler@0.86:", when="@3.9:") depends_on("poppler@0.24:") + depends_on("poppler@:26.05", when="@:3.13.0") depends_on("poppler@:26.04", when="@:3.12.4") depends_on("poppler@:26.03", when="@:3.12.3") depends_on("poppler@:26.01", when="@:3.12.2") diff --git a/repos/spack_repo/builtin/packages/geomodel/package.py b/repos/spack_repo/builtin/packages/geomodel/package.py index 2feaa482c3c..763f1791342 100644 --- a/repos/spack_repo/builtin/packages/geomodel/package.py +++ b/repos/spack_repo/builtin/packages/geomodel/package.py @@ -19,6 +19,8 @@ class Geomodel(CMakePackage): license("Apache-2.0", checked_by="wdconinc") + version("6.27.0", sha256="621f7d18d39fff1d9cced1b9c985b92cb35effb5afb4072b1aac2627729f54c5") + version("6.26.0", sha256="01e51cc118ca84d865ef09583d119927712cab765b3953ebb7c69d9076c00b43") version("6.25.0", sha256="9f0a6c43e5c620eec1e39c6e4e3f4fa33fd6decda3079479393b55f1d1d12c24") version("6.24.0", sha256="739c6e13156eacde5a47ca84f9ea0a4cf6e90482cbd47e7310b980a81cfd281a") version("6.23.0", sha256="f39f2d1dc62693fd8358d0ca54716a5123bfa844458eb61f182a09dee292305a") diff --git a/repos/spack_repo/builtin/packages/gh/package.py b/repos/spack_repo/builtin/packages/gh/package.py index fc4fcc71f40..181c258ef52 100644 --- a/repos/spack_repo/builtin/packages/gh/package.py +++ b/repos/spack_repo/builtin/packages/gh/package.py @@ -69,11 +69,12 @@ class Gh(GoPackage): depends_on("go@1.18:", type="build", when="@2.10:") depends_on("go@1.16:", type="build") + build_directory = "cmd/gh" + @property - def build_args(self): - args = super().build_args - args.extend(["-trimpath", "./cmd/gh"]) - return args + def ldflags(self): + version_path = go("list", "../../internal/build", output=str).strip() + return [f"-X {version_path}.Version={self.spec.version}"] @property def check_args(self): diff --git a/repos/spack_repo/builtin/packages/ghex/package.py b/repos/spack_repo/builtin/packages/ghex/package.py index 09b8fca3b9e..d3ed780b41d 100644 --- a/repos/spack_repo/builtin/packages/ghex/package.py +++ b/repos/spack_repo/builtin/packages/ghex/package.py @@ -94,7 +94,7 @@ def cmake_args(self): arch_str = ";".join(spec.variants["cuda_arch"].value) args.append(self.define("CMAKE_CUDA_ARCHITECTURES", arch_str)) args.append(self.define("GHEX_USE_GPU", True)) - args.append(self.define("GHEX_GPU_TYPE", "CUDA")) + args.append(self.define("GHEX_GPU_TYPE", "NVIDIA")) elif spec.satisfies("+rocm"): arch_str = ";".join(spec.variants["amdgpu_target"].value) args.append(self.define("CMAKE_HIP_ARCHITECTURES", arch_str)) diff --git a/repos/spack_repo/builtin/packages/ginkgo/package.py b/repos/spack_repo/builtin/packages/ginkgo/package.py index 256e090ffd1..2c711832fc6 100644 --- a/repos/spack_repo/builtin/packages/ginkgo/package.py +++ b/repos/spack_repo/builtin/packages/ginkgo/package.py @@ -127,6 +127,9 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage): # https://github.com/ginkgo-project/ginkgo/pull/1926 conflicts("^cuda@13:", when="@:1.10.0 +cuda") + # https://github.com/ginkgo-project/ginkgo/pull/2002 + conflicts("^cuda@13.2:", when="@1.11.0 +cuda") + # error due to change in warpSize constant definition in ROCm 7.0 prior to v.1.11.0 # https://github.com/ginkgo-project/ginkgo/pull/1954 conflicts("^hip@7:", when="@:1.10.0 +rocm") diff --git a/repos/spack_repo/builtin/packages/givaro/package.py b/repos/spack_repo/builtin/packages/givaro/package.py index 2d0cb6f2069..86acd173499 100644 --- a/repos/spack_repo/builtin/packages/givaro/package.py +++ b/repos/spack_repo/builtin/packages/givaro/package.py @@ -22,6 +22,7 @@ class Givaro(AutotoolsPackage): license("CECILL-B", checked_by="d-torrance") + version("4.2.2", sha256="53e9fb290deb0e20799c62d250d65c2226013d60b4cebe6b0b54c73000cb8fff") version("4.2.1", sha256="feefb7445842ceb756f8bb13900d975b530551e488a2ae174bda7b636251de43") depends_on("cxx", type="build") diff --git a/repos/spack_repo/builtin/packages/glab/package.py b/repos/spack_repo/builtin/packages/glab/package.py index 1738a3d8a21..efdbaedbf3e 100644 --- a/repos/spack_repo/builtin/packages/glab/package.py +++ b/repos/spack_repo/builtin/packages/glab/package.py @@ -66,18 +66,8 @@ class Glab(GoPackage): # Required to correctly set the version # https://gitlab.com/gitlab-org/cli/-/blob/v1.55.0/Makefile?ref_type=tags#L44 @property - def build_args(self): - extra_ldflags = [f"-X 'main.version=v{self.version}'"] - - args = super().build_args - - if "-ldflags" in args: - ldflags_index = args.index("-ldflags") + 1 - args[ldflags_index] = args[ldflags_index] + " " + " ".join(extra_ldflags) - else: - args.extend(["-ldflags", " ".join(extra_ldflags)]) - - return args + def ldflags(self): + return [f"-X main.version=v{self.spec.version}"] @run_after("install") def install_completions(self): diff --git a/repos/spack_repo/builtin/packages/glib/package.py b/repos/spack_repo/builtin/packages/glib/package.py index 3b8777b1754..1340c3c4eb5 100644 --- a/repos/spack_repo/builtin/packages/glib/package.py +++ b/repos/spack_repo/builtin/packages/glib/package.py @@ -29,6 +29,7 @@ class Glib(MesonPackage): license("LGPL-2.1-or-later") # Even minor versions are stable, odd minor versions are development, only add even numbers + version("2.88.1", sha256="51ab804c56f6eab3e5045c774d1290ac5e4c923d4f9a3d8e33123bee45c1840e") version("2.86.3", sha256="b3211d8d34b9df5dca05787ef0ad5d7ca75dec998b970e1aab0001d229977c65") version("2.86.1", sha256="119d1708ca022556d6d2989ee90ad1b82bd9c0d1667e066944a6d0020e2d5e57") version("2.84.4", sha256="8a9ea10943c36fc117e253f80c91e477b673525ae45762942858aef57631bb90") diff --git a/repos/spack_repo/builtin/packages/glib_bootstrap/package.py b/repos/spack_repo/builtin/packages/glib_bootstrap/package.py index 1b8d4746259..6c87baa028f 100644 --- a/repos/spack_repo/builtin/packages/glib_bootstrap/package.py +++ b/repos/spack_repo/builtin/packages/glib_bootstrap/package.py @@ -27,6 +27,7 @@ class GlibBootstrap(MesonPackage): license("LGPL-2.1-or-later") # Even minor versions are stable, odd minor versions are development, only add even numbers + version("2.88.1", sha256="51ab804c56f6eab3e5045c774d1290ac5e4c923d4f9a3d8e33123bee45c1840e") version("2.86.3", sha256="b3211d8d34b9df5dca05787ef0ad5d7ca75dec998b970e1aab0001d229977c65") version("2.86.1", sha256="119d1708ca022556d6d2989ee90ad1b82bd9c0d1667e066944a6d0020e2d5e57") diff --git a/repos/spack_repo/builtin/packages/glow/package.py b/repos/spack_repo/builtin/packages/glow/package.py index 7387e9c82f7..1ea50339eb9 100644 --- a/repos/spack_repo/builtin/packages/glow/package.py +++ b/repos/spack_repo/builtin/packages/glow/package.py @@ -43,16 +43,8 @@ class Glow(GoPackage): depends_on("go@1.13:") @property - def build_args(self): - return [ - "-p", - str(make_jobs), - "-modcacherw", - "-ldflags", - f"-s -w -X main.Version={self.version}", - "-o", - f"{self.name}", - ] + def ldflags(self): + return [f"-X main.Version={self.spec.version}"] @run_after("install") def install_completions(self): diff --git a/repos/spack_repo/builtin/packages/gmp/package.py b/repos/spack_repo/builtin/packages/gmp/package.py index ea1b365e10d..de4fe73dc59 100644 --- a/repos/spack_repo/builtin/packages/gmp/package.py +++ b/repos/spack_repo/builtin/packages/gmp/package.py @@ -15,6 +15,8 @@ class Gmp(AutotoolsPackage, GNUMirrorPackage): homepage = "https://gmplib.org" gnu_mirror_path = "gmp/gmp-6.1.2.tar.bz2" + maintainers("alalazo") + license("LGPL-3.0-or-later OR GPL-2.0-or-later") version("6.3.0", sha256="ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb") diff --git a/repos/spack_repo/builtin/packages/gnupg/package.py b/repos/spack_repo/builtin/packages/gnupg/package.py index 6078d82c604..421cddbb5cb 100644 --- a/repos/spack_repo/builtin/packages/gnupg/package.py +++ b/repos/spack_repo/builtin/packages/gnupg/package.py @@ -19,12 +19,15 @@ class Gnupg(AutotoolsPackage): license("GPL-3.0-or-later") - version("2.5.17", sha256="2c1fbe20e2958fd8fb53cf37d7c38e84a900edc0d561a1c4af4bc3a10888685d") + version("2.5.20", sha256="6461266e99c308419a379abe6c356d54c214136c4589bd65951091138989ffc6") version("2.4.9", sha256="dd17ab2e9a04fd79d39d853f599cbc852062ddb9ab52a4ddeb4176fd8b302964") version("2.3.8", sha256="540b7a40e57da261fb10ef521a282e0021532a80fd023e75fb71757e8a4969ed") version("2.2.40", sha256="1164b29a75e8ab93ea15033300149e1872a7ef6bdda3d7c78229a735f8204c28") with default_args(deprecated=True): + version( + "2.5.17", sha256="2c1fbe20e2958fd8fb53cf37d7c38e84a900edc0d561a1c4af4bc3a10888685d" + ) version( "2.5.16", sha256="05144040fedb828ced2a6bafa2c4a0479ee4cceacf3b6d68ccc75b175ac13b7e" ) diff --git a/repos/spack_repo/builtin/packages/gnutls/package.py b/repos/spack_repo/builtin/packages/gnutls/package.py index 62118c45a33..a45f823528f 100644 --- a/repos/spack_repo/builtin/packages/gnutls/package.py +++ b/repos/spack_repo/builtin/packages/gnutls/package.py @@ -30,6 +30,7 @@ class Gnutls(AutotoolsPackage): # Version definitions version("master", branch="master") + version("3.8.13", sha256="ffed8ec1bf09c2426d4f14aae377de4753b53e537d685e604e99a8b16ca9c97e") version("3.8.12", sha256="a7b341421bfd459acf7a374ca4af3b9e06608dcd7bd792b2bf470bea012b8e51") version("3.8.10", sha256="db7fab7cce791e7727ebbef2334301c821d79a550ec55c9ef096b610b03eb6b7") version("3.8.9", sha256="69e113d802d1670c4d5ac1b99040b1f2d5c7c05daec5003813c049b5184820ed") diff --git a/repos/spack_repo/builtin/packages/go/package.py b/repos/spack_repo/builtin/packages/go/package.py index 87b5b193d51..41fe892adb3 100644 --- a/repos/spack_repo/builtin/packages/go/package.py +++ b/repos/spack_repo/builtin/packages/go/package.py @@ -41,8 +41,13 @@ class Go(Package): license("BSD-3-Clause") + version("1.26.4", sha256="4f668a32fbfc1132e6a881fb968c2f1dada631492a339211735fbb255a42602d") + version("1.26.3", sha256="1c646875d0aa8799133184ed57cf79ff24bdefe8c8820470602a9d3d6d9192b8") version("1.26.2", sha256="2e91ebb6947a96e9436fb2b3926a8802efe63a6d375dffec4f82aa9dbd6fd43b") version("1.26.1", sha256="3172293d04b209dc1144698e7ba13f0477f6ba8c5ffd0be66c20fdbc9785dfbb") + version("1.26.0", sha256="c9132a8a1f6bd2aa4aad1d74b8231d95274950483a4950657ee6c56e6e817790") + version("1.25.11", sha256="7b4e5b079b3c9bc420373ca68621a296b4d13c10735d4acac4171928d70f5480") + version("1.25.10", sha256="20cf04a92e5af99748e341bc8996fa28090c9ac98765fa115ec5ddf41d7af41d") version("1.25.9", sha256="0ec9ef8ebcea097aac37decae9f09a7218b451cd96be7d6ed513d8e4bcf909cf") version("1.25.8", sha256="e988d4a2446ac7fe3f6daa089a58e9936a52a381355adec1c8983230a8d6c59e") version("1.25.7", sha256="178f2832820274b43e177d32f06a3ebb0129e427dd20a5e4c88df2c1763cf10a") @@ -52,12 +57,16 @@ class Go(Package): version("1.25.3", sha256="a81a4ba593d0015e10c51e267de3ff07c7ac914dfca037d9517d029517097795") version("1.25.2", sha256="3711140cfb87fce8f7a13f7cd860df041e6c12f7610f40cac6ec6fa2b65e96e4") version("1.25.1", sha256="d010c109cee94d80efe681eab46bdea491ac906bf46583c32e9f0dbb0bd1a594") + version("1.25.0", sha256="4bd01e91297207bfa450ea40d4d5a93b1b531a5e438473b2a06e18e077227225") version("1.24.13", sha256="639a6204c2486b137df1eb6e78ee3ed038f9877d0e4b5a465e796a2153f858d7") version("1.24.12", sha256="fba2dd661b7be7b34d6bd17ed92f41c44a5e05953ad81ab34b4ec780e5e7dc41") version("1.24.11", sha256="ffdf97766a4c4b135cd53809713978e9ee1a943b2c8e28ad221a5429de30e210") version("1.24.10", sha256="34000dcc47a517b78fcf2657ee7d033328a57079fe60c4ed8b7b84260d1d19d3") + version("1.24.9", sha256="c72f81ba54fe00efe7f3e7499d400979246881b13b775e9a9bb85541c11be695") + version("1.24.8", sha256="b1ff32c5c4a50ddfa1a1cb78b60dd5a362aeb2184bb78f008b425b62095755fb") version("1.24.7", sha256="2a8f50db0f88803607c50d7ea8834dcb7bd483c6b428a91e360fdf8624b46464") version("1.24.6", sha256="e1cb5582aab588668bc04c07de18688070f6b8c9b2aaf361f821e19bd47cfdbd") + version("1.24.5", sha256="74fdb09f2352e2b25b7943e56836c9b47363d28dec1c8b56c4a9570f30b8f59f") version("1.24.4", sha256="5a86a83a31f9fa81490b8c5420ac384fd3d95a3e71fba665c7b3f95d1dfef2b4") version("1.24.3", sha256="229c08b600b1446798109fae1f569228102c8473caba8104b6418cb5bc032878") version("1.24.2", sha256="9dc77ffadc16d837a1bf32d99c624cb4df0647cee7b119edd9e7b1bcc05f2e00") diff --git a/repos/spack_repo/builtin/packages/go_sh/package.py b/repos/spack_repo/builtin/packages/go_sh/package.py index e9b772b3225..46f7e8cf131 100644 --- a/repos/spack_repo/builtin/packages/go_sh/package.py +++ b/repos/spack_repo/builtin/packages/go_sh/package.py @@ -48,20 +48,25 @@ def sanity_check_is_file(self): files.append(join_path("bin", "gosh")) return files + @property + def ldflags(self): + # v3.12 uses ldflags to set version; v3.13+ uses Go's VCS stamping + if self.spec.satisfies("@:3.12"): + return [f"-X main.version={self.spec.version}"] + return [] + def build(self, spec: Spec, prefix: Prefix) -> None: """Runs ``go build`` in the source directory for the specified variants.""" - # v3.12 uses ldflags to set version; v3.13+ uses Go's VCS stamping - if spec.satisfies("@:3.12"): - ldflags = f"-s -w -X main.version={spec.version}" - else: - ldflags = "-s -w" - common_flags = ("-p", str(make_jobs), "-modcacherw", "-ldflags", ldflags) with working_dir(self.build_directory): if spec.satisfies("+shfmt"): - go("build", "-o", "shfmt", *common_flags, "./cmd/shfmt") + args = list(self.std_build_args) + args[args.index("-o") + 1] = "shfmt" + go("build", *args, "./cmd/shfmt") if spec.satisfies("+gosh"): - go("build", "-o", "gosh", *common_flags, "./cmd/gosh") + args = list(self.std_build_args) + args[args.index("-o") + 1] = "gosh" + go("build", *args, "./cmd/gosh") def install(self, spec: Spec, prefix: Prefix) -> None: """Install built binaries into prefix bin.""" diff --git a/repos/spack_repo/builtin/packages/gomplate/package.py b/repos/spack_repo/builtin/packages/gomplate/package.py index 016306a275a..ff87d0c3a97 100644 --- a/repos/spack_repo/builtin/packages/gomplate/package.py +++ b/repos/spack_repo/builtin/packages/gomplate/package.py @@ -24,20 +24,9 @@ class Gomplate(GoPackage): depends_on("go@1.24.5:", type="build") - def build(self, spec, prefix): - # Retrieve the "path" (in Go namespace parlance) to the version object because - # we need to set its Version attribute. This is similar to what is done in the - # gomplate Makefile. - gomplate_version_path = self.module.go("list", "./version", output=str).strip() - with working_dir(f"{join_path(self.build_directory, 'cmd', self.name)}"): - # When building, set gomplate's version.Version to the value in the version - # object for this package - self.module.go( - "build", - "-p", - str(make_jobs), - "-ldflags", - f"-s -w -X {gomplate_version_path}.Version={self.version}", - "-o", - f"{join_path(self.build_directory, self.name)}", - ) + build_directory = "cmd/gomplate" + + @property + def ldflags(self): + version_path = go("list", "../../version", output=str).strip() + return [f"-X {version_path}.Version={self.spec.version}"] diff --git a/repos/spack_repo/builtin/packages/helm/package.py b/repos/spack_repo/builtin/packages/helm/package.py index 82cf847884c..3df8a8b92eb 100644 --- a/repos/spack_repo/builtin/packages/helm/package.py +++ b/repos/spack_repo/builtin/packages/helm/package.py @@ -17,9 +17,11 @@ class Helm(GoPackage): license("Apache-2.0") + version("4.2.0", sha256="98d6b09a7dce667d0638bd293b6ef768cfc6ba51afda42b0fe0be1c7a021ceb7") version("4.1.4", sha256="cc365ae17de9bd856972198f9c372f9fd2146852434ade3b3c96303b564cdb15") version("4.1.3", sha256="a336010d2a5bebc0588995cfda20919c47b20c9f8ed3e4ada9241684854bbf9f") + depends_on("go@1.26:", type="build", when="@4.2:") depends_on("go@1.25:", type="build", when="@4.1:") build_directory = "cmd/helm" diff --git a/repos/spack_repo/builtin/packages/hiop/package.py b/repos/spack_repo/builtin/packages/hiop/package.py index 465ff151eb3..51654b014f9 100644 --- a/repos/spack_repo/builtin/packages/hiop/package.py +++ b/repos/spack_repo/builtin/packages/hiop/package.py @@ -106,6 +106,12 @@ class Hiop(CMakePackage, CudaPackage, ROCmPackage): description="Enable/disable cuSovler LU refactorization", ) + patch( + "https://github.com/llnl/hiop/commit/1d50896dd8df0a7c853e998e6814566d8.patch?full_index=1", + sha256="e73daa7f15863cb3c9dfad9509d46984ad1943506a7a5e04183817eba6d14aed", + when="@1.2.0", + ) + depends_on("c", type="build") depends_on("cxx", type="build") depends_on("fortran", type="build") diff --git a/repos/spack_repo/builtin/packages/hugo/package.py b/repos/spack_repo/builtin/packages/hugo/package.py index 622844067bc..d8504de7b6d 100644 --- a/repos/spack_repo/builtin/packages/hugo/package.py +++ b/repos/spack_repo/builtin/packages/hugo/package.py @@ -63,7 +63,7 @@ def determine_version(cls, exe): @property def build_args(self): - args = super().build_args + args = [] if self.spec.satisfies("+extended"): args.extend(["--tags", "extended"]) diff --git a/repos/spack_repo/builtin/packages/hypre/package.py b/repos/spack_repo/builtin/packages/hypre/package.py index dc3150ed5a8..e6172d9d1df 100644 --- a/repos/spack_repo/builtin/packages/hypre/package.py +++ b/repos/spack_repo/builtin/packages/hypre/package.py @@ -216,6 +216,8 @@ def patch(self): # fix sequential compilation in 'src/seq_mv' conflicts("cxxstd=14", when="^cuda@13:") depends_on("cuda@:11", when="@:2.28.0") conflicts("^cuda@13:", when="@:2") + # https://github.com/hypre-space/hypre/pull/1487 + conflicts("^cuda@13.2:", when="@:3.1.0") for pkg, sm_ in product(gpu_pkgs, CudaPackage.cuda_arch_values): requires(f"^{pkg} cuda_arch={sm_}", when=f"+{pkg} cuda_arch={sm_}") diff --git a/repos/spack_repo/builtin/packages/igraph/fix_libxml2.patch b/repos/spack_repo/builtin/packages/igraph/fix_libxml2.patch new file mode 100644 index 00000000000..ec72c6f0abf --- /dev/null +++ b/repos/spack_repo/builtin/packages/igraph/fix_libxml2.patch @@ -0,0 +1,54 @@ +From b5922352e77efd74c80a730a27f811106d5e7eaa Mon Sep 17 00:00:00 2001 +From: Biswapriyo Nath +Date: Fri, 1 Dec 2023 12:58:18 +0000 +Subject: [PATCH] Fix compiler error with libxml2 2.12 and clang + +This commit fixes the following compiler error. + +graphml.c:1613:39: error: incompatible function pointer types passing +'void (*)(void *, xmlErrorPtr)' (aka 'void (*)(void *, struct _xmlError *)') to +parameter of type 'xmlStructuredErrorFunc' (aka 'void (*)(void *, const struct _xmlError *)') + [-Wincompatible-function-pointer-types] + 1613 | xmlSetStructuredErrorFunc(&state, &igraph_i_libxml_structured_error_handler); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +libxml2/libxml/xmlerror.h:898:29: note: passing argument to parameter 'handler' here + 898 | xmlStructuredErrorFunc handler); + | ^ + +According to the libxml2 changelog, this is due to a change in version 2.12: +https://download.gnome.org/sources/libxml2/2.12/libxml2-2.12.0.news + +Note: change in CHANGELOG.md removed in Spack +--- + CHANGELOG.md | 1 + + src/io/graphml.c | 8 ++++++++ + 2 files changed, 9 insertions(+) + +diff --git a/src/io/graphml.c b/src/io/graphml.c +index 402f8e4722..13a48675ad 100644 +--- a/src/io/graphml.c ++++ b/src/io/graphml.c +@@ -344,7 +344,11 @@ static void igraph_i_graphml_parser_state_set_error_from_varargs( + } + + static void igraph_i_graphml_parser_state_set_error_from_xmlerror( ++#if LIBXML_VERSION >= 21200 ++ struct igraph_i_graphml_parser_state *state, const xmlError *error ++#else + struct igraph_i_graphml_parser_state *state, const xmlErrorPtr error ++#endif + ) { + const size_t max_error_message_length = 4096; + +@@ -1530,7 +1534,11 @@ static void igraph_i_libxml_generic_error_handler(void* ctx, const char* msg, .. + va_end(args); + } + ++#if LIBXML_VERSION >= 21200 ++static void igraph_i_libxml_structured_error_handler(void* ctx, const xmlError *error) { ++#else + static void igraph_i_libxml_structured_error_handler(void* ctx, xmlErrorPtr error) { ++#endif + struct igraph_i_graphml_parser_state* state = (struct igraph_i_graphml_parser_state*) ctx; + igraph_i_graphml_parser_state_set_error_from_xmlerror(state, error); + } diff --git a/repos/spack_repo/builtin/packages/igraph/package.py b/repos/spack_repo/builtin/packages/igraph/package.py index 5e40da42813..3a7a31ca0b1 100644 --- a/repos/spack_repo/builtin/packages/igraph/package.py +++ b/repos/spack_repo/builtin/packages/igraph/package.py @@ -31,14 +31,17 @@ class Igraph(CMakePackage, AutotoolsPackage): depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated - with when("build_system=cmake"): - depends_on("arpack-ng") - depends_on("blas") - depends_on("glpk+gmp@4.57:") - depends_on("gmp") - depends_on("lapack") + # Not strictly a requirement. igraph does check for it in CMakeLists.txt + depends_on("python", type="build") - depends_on("libxml2") + depends_on("arpack-ng") + depends_on("glpk+gmp@4.57:") + depends_on("gmp") + depends_on("blas") + depends_on("lapack") + + depends_on("libxml2 +shared") + patch("fix_libxml2.patch", when="@0.10.0:0.10.8 ^libxml2@2.12:") def cmake_args(self): args = [ @@ -51,7 +54,6 @@ def cmake_args(self): "-DIGRAPH_USE_INTERNAL_GMP=OFF", "-DIGRAPH_USE_INTERNAL_LAPACK=OFF", "-DIGRAPH_USE_INTERNAL_PLFIT=ON", - "-DBLA_VENDOR=OpenBLAS", ] if self.spec.satisfies("+shared"): diff --git a/repos/spack_repo/builtin/packages/isl/package.py b/repos/spack_repo/builtin/packages/isl/package.py index 53bc79504cc..0736a4a8a69 100644 --- a/repos/spack_repo/builtin/packages/isl/package.py +++ b/repos/spack_repo/builtin/packages/isl/package.py @@ -14,8 +14,11 @@ class Isl(AutotoolsPackage): homepage = "https://libisl.sourceforge.io/" url = "https://libisl.sourceforge.io/isl-0.21.tar.bz2" + maintainers("alalazo") + license("MIT") + version("0.27", sha256="626335529331f7c89fec493de929e2e92fb3d8cc860fc7af554e0518ee0029ee") version("0.26", sha256="5eac8664e9d67be6bd0bee5085d6840b8baf738c06814df47eaf4166d9776436") version("0.25", sha256="4305c54d4eebc4bf3ce365af85f04984ef5aa97a52e01128445e26da5b1f467a") version("0.24", sha256="fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0") diff --git a/repos/spack_repo/builtin/packages/just/package.py b/repos/spack_repo/builtin/packages/just/package.py index 6f48fe210dd..9aa72c86004 100644 --- a/repos/spack_repo/builtin/packages/just/package.py +++ b/repos/spack_repo/builtin/packages/just/package.py @@ -19,6 +19,7 @@ class Just(CargoPackage): license("CC0-1.0", checked_by="Dando18") version("master", branch="master") + version("1.52.0", sha256="cd869b45801f1434d26c05df7ca999b7b56c7d1d57fb1211cdfd2526ec28f130") version("1.50.0", sha256="cca015e07739a1c26c6fc459f7d46e1e36ce0f7613114eddedd8cd3af55a10b7") version("1.49.0", sha256="442406ee14eb9a59414525cf262354fe2e752b22c224ce2a5e42b2c493226e09") version("1.46.0", sha256="f60a578502d0b29eaa2a72c5b0d91390b2064dfd8d1a1291c3b2525d587fd395") diff --git a/repos/spack_repo/builtin/packages/kokkos/package.py b/repos/spack_repo/builtin/packages/kokkos/package.py index c4c4cdcbf07..7bee0b8fd1d 100644 --- a/repos/spack_repo/builtin/packages/kokkos/package.py +++ b/repos/spack_repo/builtin/packages/kokkos/package.py @@ -599,29 +599,3 @@ def setup_build_tests(self): ] cmake(*cmake_args) cache_extra_test_sources(self, cmake_out_path) - - def test_run(self): - """Test if kokkos builds and runs""" - 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") - - cmake = self.spec["cmake"].command - cmake_args = [] - if self.spec.satisfies("+rocm"): - prefix_paths = ";".join(get_cmake_prefix_path(self)) - cmake_args.append(self.define("CMAKE_PREFIX_PATH", prefix_paths)) - - if self.spec.satisfies("+wrapper"): - cmake_args.append( - self.define("CMAKE_CXX_COMPILER", self["kokkos-nvcc-wrapper"].kokkos_cxx) - ) - else: - cmake_args.append(self.define("CMAKE_CXX_COMPILER", self["cxx"].cxx)) - - cmake(cmake_path, *cmake_args) - cmake("--build", ".") - cmake("--build", ".", "--target", "test") diff --git a/repos/spack_repo/builtin/packages/kubectl/package.py b/repos/spack_repo/builtin/packages/kubectl/package.py index c1c34adcecb..bcd4c880166 100644 --- a/repos/spack_repo/builtin/packages/kubectl/package.py +++ b/repos/spack_repo/builtin/packages/kubectl/package.py @@ -19,10 +19,14 @@ class Kubectl(GoPackage): license("Apache-2.0") + version("1.36.1", sha256="1ebfa65cc95fbeb2ef4aad6832a3fae4edb88516e43b6437b69a40895803e0e8") + version("1.35.5", sha256="c058972b598acb8fe08bc23e630e7e7582d86050bc78468c3026396a53ebc64b") version("1.35.4", sha256="46a0dead69674fb2bdf33f5ef1deadab123a96becfafef6043f399ae53761f4f") version("1.35.3", sha256="4374809bf135137568135384209f160acdab7372f2608fa60ca3513782db4f03") + version("1.34.8", sha256="1eae3875e830dd72c1b600cdd4c12aca95449a951a95dcea368a9cb4bdf88ed4") version("1.34.7", sha256="764f22a1c1f6e90c2de1b3075a8c34f6d365d6f08c56eefe7020e5da20bdd3a3") version("1.34.6", sha256="cc88a9e51d05c048876a474feb6e353fd9e9fe64bb95f5cfced27a0b29d28790") + version("1.33.12", sha256="4a33a8f8a098f245eefc39b5dd1e62feb81bcb76b470ca454a88fef6a688b6f6") version("1.33.11", sha256="52461ed85b0a0ac693f5d1841e90b8c65e91e9341c253c168968db2b9d53048e") version("1.33.10", sha256="a4dd3abd7da2f4f50ffe79583682a1f990856903b5d200948c12e69e632dd8ff") version("1.33.4", sha256="308f9ca06aa3b7c16021006cf831681a002f25a7c8c4a1809d354d9e0c79fc72") @@ -40,6 +44,7 @@ class Kubectl(GoPackage): version("1.30.11", sha256="f30e4082b6a554d4a2bfedd8b2308a5e6012287e15bec94f72987f717bab4133") depends_on("bash", type="build") + depends_on("go@1.26:", type="build", when="@1.36:") depends_on("go@1.25:", type="build", when="@1.35:") depends_on("go@1.24:", type="build", when="@1.33:") depends_on("go@1.23:", type="build", when="@1.32:") @@ -58,22 +63,12 @@ class Kubectl(GoPackage): # 4. https://github.com/kubernetes/kubernetes/blob/v1.32.2/hack/lib/init.sh#L61 # 5. https://github.com/kubernetes/kubernetes/blob/v1.32.2/hack/lib/version.sh#L151-L183 @property - def build_args(self): - kube_ldflags = [ - f"-X 'k8s.io/client-go/pkg/version.gitVersion=v{self.version}'", - f"-X 'k8s.io/client-go/pkg/version.gitMajor={self.version.up_to(1)}'", - f"-X 'k8s.io/client-go/pkg/version.gitMinor={str(self.version).split('.')[1]}'", - f"-X 'k8s.io/component-base/version.gitVersion=v{self.version}'", - f"-X 'k8s.io/component-base/version.gitMajor={self.version.up_to(1)}'", - f"-X 'k8s.io/component-base/version.gitMinor={str(self.version).split('.')[1]}'", + def ldflags(self): + return [ + f"-X k8s.io/client-go/pkg/version.gitVersion=v{self.spec.version}", + f"-X k8s.io/client-go/pkg/version.gitMajor={self.spec.version.up_to(1)}", + f"-X k8s.io/client-go/pkg/version.gitMinor={str(self.spec.version).split('.')[1]}", + f"-X k8s.io/component-base/version.gitVersion=v{self.spec.version}", + f"-X k8s.io/component-base/version.gitMajor={self.spec.version.up_to(1)}", + f"-X k8s.io/component-base/version.gitMinor={str(self.spec.version).split('.')[1]}", ] - - args = super().build_args - - if "-ldflags" in args: - ldflags_index = args.index("-ldflags") + 1 - args[ldflags_index] = args[ldflags_index] + " " + " ".join(kube_ldflags) - else: - args.extend(["-ldflags", " ".join(kube_ldflags)]) - - return args diff --git a/repos/spack_repo/builtin/packages/kubernetes/package.py b/repos/spack_repo/builtin/packages/kubernetes/package.py index befe1f6dc4d..7205388605e 100644 --- a/repos/spack_repo/builtin/packages/kubernetes/package.py +++ b/repos/spack_repo/builtin/packages/kubernetes/package.py @@ -19,10 +19,14 @@ class Kubernetes(Package): license("Apache-2.0") + version("1.36.1", sha256="1ebfa65cc95fbeb2ef4aad6832a3fae4edb88516e43b6437b69a40895803e0e8") + version("1.35.5", sha256="c058972b598acb8fe08bc23e630e7e7582d86050bc78468c3026396a53ebc64b") version("1.35.4", sha256="46a0dead69674fb2bdf33f5ef1deadab123a96becfafef6043f399ae53761f4f") version("1.35.3", sha256="4374809bf135137568135384209f160acdab7372f2608fa60ca3513782db4f03") + version("1.34.8", sha256="1eae3875e830dd72c1b600cdd4c12aca95449a951a95dcea368a9cb4bdf88ed4") version("1.34.7", sha256="764f22a1c1f6e90c2de1b3075a8c34f6d365d6f08c56eefe7020e5da20bdd3a3") version("1.34.6", sha256="cc88a9e51d05c048876a474feb6e353fd9e9fe64bb95f5cfced27a0b29d28790") + version("1.33.12", sha256="4a33a8f8a098f245eefc39b5dd1e62feb81bcb76b470ca454a88fef6a688b6f6") version("1.33.11", sha256="52461ed85b0a0ac693f5d1841e90b8c65e91e9341c253c168968db2b9d53048e") version("1.33.10", sha256="a4dd3abd7da2f4f50ffe79583682a1f990856903b5d200948c12e69e632dd8ff") version("1.33.2", sha256="5588bb13437c0e6881f58ede88d200301c3d28b8ce124d58d3e7ed781d1d8d40") @@ -42,6 +46,7 @@ class Kubernetes(Package): depends_on("bash") depends_on("gmake") + depends_on("go@1.26:", when="@1.36:") depends_on("go@1.25:", when="@1.35:") depends_on("go@1.24:", when="@1.33:") depends_on("go@1.23:", when="@1.32:") diff --git a/repos/spack_repo/builtin/packages/lean4/package.py b/repos/spack_repo/builtin/packages/lean4/package.py new file mode 100644 index 00000000000..88facaaf77b --- /dev/null +++ b/repos/spack_repo/builtin/packages/lean4/package.py @@ -0,0 +1,45 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class Lean4(CMakePackage): + """Lean 4 programming language and theorem prover. + + Lean is an open-source programming language and proof assistant + that enables correct, maintainable, and formally verified code. + """ + + homepage = "https://lean-lang.org" + url = "https://github.com/leanprover/lean4/archive/refs/tags/v4.30.0.tar.gz" + git = "https://github.com/leanprover/lean4.git" + + supplier = "Organization: Lean FRO" + + maintainers("wdconinc") + + license("Apache-2.0", checked_by="wdconinc") + + version("4.30.0", sha256="c11edd040d77be85865e41b4a37a77d14f824c07d8642434eb3561163f2afa5d") + + variant("gmp", default=True, description="Use GMP for big integers") + variant("mimalloc", default=True, description="Use mimalloc as the allocator") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("cmake@3.21:", type="build") + + depends_on("libuv") + + depends_on("gmp", when="+gmp") + + def cmake_args(self): + args = [ + self.define_from_variant("USE_GMP", "gmp"), + self.define_from_variant("USE_MIMALLOC", "mimalloc"), + ] + return args diff --git a/repos/spack_repo/builtin/packages/lfortran/package.py b/repos/spack_repo/builtin/packages/lfortran/package.py index 8b7d47a0b37..a0937ce6ba4 100644 --- a/repos/spack_repo/builtin/packages/lfortran/package.py +++ b/repos/spack_repo/builtin/packages/lfortran/package.py @@ -19,6 +19,8 @@ class Lfortran(CMakePackage): # The build process uses 'git describe --tags' to get the package version version("main", branch="main", get_full_repo=True) + version("0.63.0", sha256="e5ad61bc0571ec572dec542913858a9d9a6142ae5023ffc9517e1b0dc15da98c") + version("0.62.0", sha256="6b34221fa85ab2e3f102a73bcbf59125318f637bbb64da34fe1200425eed4788") version("0.61.0", sha256="e832c1d76c371da7a7e11ef9e7b686d9047788136dcfb20093da5dc165fcd20f") version("0.54.0", sha256="a46c44f8398ed0d14ca051a08982a3001642449c06a3be1c30944c3e027bbf51") version("0.49.0", sha256="a9225fd33d34ce786f72a964a1179579caff62dd176a6a1477d2594fecdc7cd6") diff --git a/repos/spack_repo/builtin/packages/libbson/package.py b/repos/spack_repo/builtin/packages/libbson/package.py index e50d51682d2..510606fca94 100644 --- a/repos/spack_repo/builtin/packages/libbson/package.py +++ b/repos/spack_repo/builtin/packages/libbson/package.py @@ -18,6 +18,7 @@ class Libbson(AutotoolsPackage, CMakePackage): maintainers("michaelkuhn") + version("2.3.0", sha256="0ef2c33345482d444ef766ebf3f066b4596bd6867a24ab6889b76dd51cb23878") version("1.27.2", sha256="a53010803e2df097a2ea756be6ece34c8f52cda2c18e6ea21115097b75f5d4bf") version("1.24.4", sha256="2f4a3e8943bfe3b8672c2053f88cf74acc8494dc98a45445f727901eee141544") version("1.23.4", sha256="209406c91fcf7c63aa633179a0a6b1b36ba237fb77e0470fd81f7299a408e334") @@ -38,8 +39,8 @@ class Libbson(AutotoolsPackage, CMakePackage): version("1.6.3", sha256="e9e4012a9080bdc927b5060b126a2c82ca11e71ebe7f2152d079fa2ce461a7fb") version("1.6.2", sha256="aad410123e4bd8a9804c3c3d79e03344e2df104872594dc2cf19605d492944ba") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") with when("build_system=cmake"): depends_on("cmake@3.1:", type="build") @@ -51,8 +52,9 @@ class Libbson(AutotoolsPackage, CMakePackage): ) def url_for_version(self, version): - if version >= Version("1.25.0"): + if version >= Version("1.25.0") and version <= Version("1.27.2"): return f"https://github.com/mongodb/mongo-c-driver/archive/refs/tags/{version}.tar.gz" + if version >= Version("1.10.0"): return f"https://github.com/mongodb/mongo-c-driver/releases/download/{version}/mongo-c-driver-{version}.tar.gz" else: diff --git a/repos/spack_repo/builtin/packages/libfuse/package.py b/repos/spack_repo/builtin/packages/libfuse/package.py index e23225f39e7..cc54482463c 100644 --- a/repos/spack_repo/builtin/packages/libfuse/package.py +++ b/repos/spack_repo/builtin/packages/libfuse/package.py @@ -18,6 +18,7 @@ class Libfuse(autotools.AutotoolsPackage, meson.MesonPackage): keep_werror = "all" + version("3.18.2", sha256="55a97cfd8661a9b42ff0123b44af52cac49feaec36987f4d968c046f93b42e1d") version("3.16.2", sha256="1bc306be1a1f4f6c8965fbdd79c9ccca021fdc4b277d501483a711cbd7dbcd6c") version("3.11.0", sha256="25a00226d2d449c15b2f08467d6d5ebbb2a428260c4ab773721c32adbc6da072") version("3.10.5", sha256="e73f75e58da59a0e333d337c105093c496c0fd7356ef3a5a540f560697c9c4e6") diff --git a/repos/spack_repo/builtin/packages/libgcrypt/package.py b/repos/spack_repo/builtin/packages/libgcrypt/package.py index 092114cad0f..9bd6e0c41f0 100644 --- a/repos/spack_repo/builtin/packages/libgcrypt/package.py +++ b/repos/spack_repo/builtin/packages/libgcrypt/package.py @@ -17,6 +17,7 @@ class Libgcrypt(AutotoolsPackage): license("LGPL-2.1-or-later AND GPL-2.0-or-later") + version("1.12.2", sha256="7ce33c2492221a0436f96a8500215e9f3e3dcb5fd26a757cd415e7a843babd5e") version("1.12.0", sha256="0311454e678189bad62a7e9402a9dd793025efff6e7449898616e2fc75e0f4f5") version("1.11.2", sha256="6ba59dd192270e8c1d22ddb41a07d95dcdbc1f0fb02d03c4b54b235814330aac") version("1.11.1", sha256="24e91c9123a46c54e8371f3a3a2502f1198f2893fbfbf59af95bc1c21499b00e") diff --git a/repos/spack_repo/builtin/packages/libgpg_error/package.py b/repos/spack_repo/builtin/packages/libgpg_error/package.py index 7e3f87715a4..066e6043729 100644 --- a/repos/spack_repo/builtin/packages/libgpg_error/package.py +++ b/repos/spack_repo/builtin/packages/libgpg_error/package.py @@ -17,6 +17,7 @@ class LibgpgError(AutotoolsPackage): license("GPL-2.0-or-later AND LGPL-2.1-or-later") + version("1.61", sha256="7a85413f2bc354f4f8aa832b718af122e48965e9e0eb9012ee659c13c6385c93") version("1.58", sha256="f943aea9a830a8bd938e5124b579efaece24a3225ff4c3d27611a80ce1260c27") version("1.55", sha256="95b178148863f07d45df0cea67e880a79b9ef71f5d230baddc0071128516ef78") version("1.51", sha256="be0f1b2db6b93eed55369cdf79f19f72750c8c7c39fc20b577e724545427e6b2") diff --git a/repos/spack_repo/builtin/packages/libksba/package.py b/repos/spack_repo/builtin/packages/libksba/package.py index 671e58efc1f..1fb2410fa12 100644 --- a/repos/spack_repo/builtin/packages/libksba/package.py +++ b/repos/spack_repo/builtin/packages/libksba/package.py @@ -18,6 +18,9 @@ class Libksba(AutotoolsPackage): license("LGPL-3.0-only AND GPL-2.0-only AND GPL-3.0-only") + version("1.8.0", sha256="296b9db9095749f2aa104202d7ab7fd09ad10710e00780a709c9754b1a1d9292") + version("1.7.0", sha256="e1d3a5745911f5a663fddecf526541c4241052a9e4cafbc92dc7f4096c7efdac") + version("1.6.8", sha256="0f4510f1c7a679c3545990a31479f391ad45d84e039176309d42f80cf41743f5") version("1.6.7", sha256="cf72510b8ebb4eb6693eef765749d83677a03c79291a311040a5bfd79baab763") version("1.6.6", sha256="5dec033d211559338838c0c4957c73dfdc3ee86f73977d6279640c9cd08ce6a4") version("1.6.5", sha256="a564628c574c99287998753f98d750babd91a4e9db451f46ad140466ef2a6d16") diff --git a/repos/spack_repo/builtin/packages/libleidenalg/package.py b/repos/spack_repo/builtin/packages/libleidenalg/package.py new file mode 100644 index 00000000000..4d89935938f --- /dev/null +++ b/repos/spack_repo/builtin/packages/libleidenalg/package.py @@ -0,0 +1,34 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class Libleidenalg(CMakePackage): + """This package implements the Leiden algorithm in C++. It relies on igraph + for it to function. It is mainly used with the Python Leidenalg package""" + + homepage = "https://github.com/vtraag/libleidenalg/" + url = "https://github.com/vtraag/libleidenalg/archive/refs/tags/0.10.0.tar.gz" + + maintainers("Markus92") + + license("GPL-3.0-or-later", checked_by="Markus92") + + version("0.10.0", sha256="ae265fb718e2233bfd01e3bc9679d9bed53a182e4cb13dbb12b49e6e92105cc7") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("igraph") + depends_on("igraph@0.10", when="@0.10:0.11") + + # Cherry-pick Patch for wrong includes + patch( + "https://github.com/vtraag/libleidenalg/commit/cfee16027c47318a849deafbead412afd265feb0.patch?full_index=1", + sha256="f4cb80b7e56502825981768919db8c25238552372d9f414ccaa393c437954bdf", + when="@:0.10", + ) diff --git a/repos/spack_repo/builtin/packages/libsodium/package.py b/repos/spack_repo/builtin/packages/libsodium/package.py index f8c18babd4e..ad8cf0f0fca 100644 --- a/repos/spack_repo/builtin/packages/libsodium/package.py +++ b/repos/spack_repo/builtin/packages/libsodium/package.py @@ -19,21 +19,37 @@ class Libsodium(AutotoolsPackage): license("ISC") + maintainers("alalazo") + version("master", branch="master") version("stable", branch="stable") + version("1.0.22", sha256="adbdd8f16149e81ac6078a03aca6fc03b592b89ef7b5ed83841c086191be3349") version("1.0.20", sha256="ebb65ef6ca439333c2bb41a0c1990587288da07f6c7fd07cb3a18cc18d30ce19") - version("1.0.19", sha256="018d79fe0a045cca07331d37bd0cb57b2e838c51bc48fd837a1472e50068bbea") - version("1.0.18", sha256="6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1") - version("1.0.17", sha256="0cc3dae33e642cc187b5ceb467e0ad0e1b51dcba577de1190e9ffa17766ac2b1") - version("1.0.16", sha256="eeadc7e1e1bcef09680fb4837d448fbdf57224978f865ac1c16745868fbd0533") - version("1.0.15", sha256="fb6a9e879a2f674592e4328c5d9f79f082405ee4bb05cb6e679b90afe9e178f4") - version("1.0.13", sha256="9c13accb1a9e59ab3affde0e60ef9a2149ed4d6e8f99c93c7a5b97499ee323fd") - version("1.0.3", sha256="cbcfc63cc90c05d18a20f229a62c7e7054a73731d0aa858c0517152c549b1288") - version("1.0.2", sha256="961d8f10047f545ae658bcc73b8ab0bf2c312ac945968dd579d87c768e5baa19") - version("1.0.1", sha256="c3090887a4ef9e2d63af1c1e77f5d5a0656fadb5105ebb9fb66a302210cb3af5") - version("1.0.0", sha256="ced1fe3d2066953fea94f307a92f8ae41bf0643739a44309cbe43aa881dbc9a5") - version("0.7.1", sha256="ef46bbb5bac263ef6d3fc00ccc11d4690aea83643412919fe15369b9870280a7") + with default_args(deprecated=True): + version( + "1.0.19", sha256="018d79fe0a045cca07331d37bd0cb57b2e838c51bc48fd837a1472e50068bbea" + ) + version( + "1.0.18", sha256="6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1" + ) + version( + "1.0.17", sha256="0cc3dae33e642cc187b5ceb467e0ad0e1b51dcba577de1190e9ffa17766ac2b1" + ) + version( + "1.0.16", sha256="eeadc7e1e1bcef09680fb4837d448fbdf57224978f865ac1c16745868fbd0533" + ) + version( + "1.0.15", sha256="fb6a9e879a2f674592e4328c5d9f79f082405ee4bb05cb6e679b90afe9e178f4" + ) + version( + "1.0.13", sha256="9c13accb1a9e59ab3affde0e60ef9a2149ed4d6e8f99c93c7a5b97499ee323fd" + ) + version("1.0.3", sha256="cbcfc63cc90c05d18a20f229a62c7e7054a73731d0aa858c0517152c549b1288") + version("1.0.2", sha256="961d8f10047f545ae658bcc73b8ab0bf2c312ac945968dd579d87c768e5baa19") + version("1.0.1", sha256="c3090887a4ef9e2d63af1c1e77f5d5a0656fadb5105ebb9fb66a302210cb3af5") + version("1.0.0", sha256="ced1fe3d2066953fea94f307a92f8ae41bf0643739a44309cbe43aa881dbc9a5") + version("0.7.1", sha256="ef46bbb5bac263ef6d3fc00ccc11d4690aea83643412919fe15369b9870280a7") depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/libunwind/package.py b/repos/spack_repo/builtin/packages/libunwind/package.py index 47335ef9670..bff1dbd60eb 100644 --- a/repos/spack_repo/builtin/packages/libunwind/package.py +++ b/repos/spack_repo/builtin/packages/libunwind/package.py @@ -102,8 +102,6 @@ class Libunwind(AutotoolsPackage): conflicts("target=ppc64:", when="@1.8") conflicts("target=ppc64le:", when="@1.8") - conflicts("target=aarch64:", when="@1.8:") - # https://github.com/libunwind/libunwind/issues/672 conflicts("%gcc@14:", when="@1.7.2") diff --git a/repos/spack_repo/builtin/packages/llvm_amdgpu/002-Add-rpath-to-hiprt.patch b/repos/spack_repo/builtin/packages/llvm_amdgpu/002-Add-rpath-to-hiprt.patch deleted file mode 100644 index 0107a2b1755..00000000000 --- a/repos/spack_repo/builtin/packages/llvm_amdgpu/002-Add-rpath-to-hiprt.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp -index ea628647d6ac..72a6b2bdfdc8 100644 ---- a/clang/lib/Driver/ToolChains/Linux.cpp -+++ b/clang/lib/Driver/ToolChains/Linux.cpp -@@ -985,7 +985,7 @@ void Linux::AddHIPRuntimeLibArgs(const ArgList &Args, - Args.MakeArgString(StringRef("-L") + RocmInstallation->getLibPath())); - - if (Args.hasFlag(options::OPT_frtlib_add_rpath, -- options::OPT_fno_rtlib_add_rpath, false)) { -+ options::OPT_fno_rtlib_add_rpath, true)) { - SmallString<0> p = RocmInstallation->getLibPath(); - llvm::sys::path::remove_dots(p, true); - CmdArgs.append({"-rpath", Args.MakeArgString(p)}); diff --git a/repos/spack_repo/builtin/packages/llvm_amdgpu/package.py b/repos/spack_repo/builtin/packages/llvm_amdgpu/package.py index 83733c85fbd..2f45ef3196c 100644 --- a/repos/spack_repo/builtin/packages/llvm_amdgpu/package.py +++ b/repos/spack_repo/builtin/packages/llvm_amdgpu/package.py @@ -139,7 +139,6 @@ class LlvmAmdgpu(CMakePackage, LlvmDetection, CompilerPackage): sha256="b4774ca19b030890d7b276d12c446400ccf8bc3aa724c7f2e9a73531a7400d69", when="@6", ) - patch("002-Add-rpath-to-hiprt.patch", when="@7.0:") # Fix for https://github.com/llvm/llvm-project/issues/78530 # Patch from https://github.com/llvm/llvm-project/pull/80071 @@ -474,6 +473,13 @@ def post_install(self): with open(os.path.join(self.prefix.bin, cfg), "w") as f: print(gcc_install_dir_flag, file=f) + if self.spec.satisfies("@7:"): + with open(os.path.join(self.prefix.bin, "rocm.cfg"), "w") as f: + print("-frtlib-add-rpath", file=f) + for cfg in cfg_files: + with open(os.path.join(self.prefix.bin, cfg), "a") as f: + print("@rocm.cfg", file=f) + # Required for enabling asan on dependent packages def setup_dependent_build_environment( self, env: EnvironmentModifications, dependent_spec: Spec diff --git a/repos/spack_repo/builtin/packages/mathic/package.py b/repos/spack_repo/builtin/packages/mathic/package.py index 21c4a3749c0..82e03533ec9 100644 --- a/repos/spack_repo/builtin/packages/mathic/package.py +++ b/repos/spack_repo/builtin/packages/mathic/package.py @@ -23,6 +23,7 @@ class Mathic(AutotoolsPackage): license("LGPL-2.0-or-later", checked_by="d-torrance") + version("1.4", sha256="722ab0cc970a251040597975d7700576060f031b2dc4f4465ff59d5bc604ede0") version("1.3", sha256="cb0503e2ade2090bd04cc247d11f127c51703082cba0b6e14116faf2c93e4050") version("1.2", sha256="1a7d459290e9183e0934a6dd2278db372b831b37fdb4a6f1db7e02e0f380fe1a") version("1.1", sha256="2499fb3df3c2f8a201ae5627cad95538aaabee0eee235002b8737bdb842b694a") diff --git a/repos/spack_repo/builtin/packages/mathicgb/package.py b/repos/spack_repo/builtin/packages/mathicgb/package.py index e2ffda453db..8464c65cedd 100644 --- a/repos/spack_repo/builtin/packages/mathicgb/package.py +++ b/repos/spack_repo/builtin/packages/mathicgb/package.py @@ -21,6 +21,7 @@ class Mathicgb(AutotoolsPackage): license("GPL-2.0-or-later", checked_by="d-torrance") + version("1.4", sha256="3c13033762fc8e26c6c47e8e2e8557fcbae030f7514372dc47b0c71272b7304e") version("1.3", sha256="d700c6d6d65f6d8c5c40d79e1012f1e60e6e2114100ce73a719be93770bd23d9") version("1.2", sha256="5052ea8b175658a018d51cecef6c8d31f103ca3a7254b3690b4dbf80cbf0322e") version("1.1", sha256="c756c2265df23fb7417f073cf09d63f05e093eb8136bf33904cec04eac24d5b3") diff --git a/repos/spack_repo/builtin/packages/megahit/package.py b/repos/spack_repo/builtin/packages/megahit/package.py index 2a371992c68..e8a79517460 100644 --- a/repos/spack_repo/builtin/packages/megahit/package.py +++ b/repos/spack_repo/builtin/packages/megahit/package.py @@ -2,28 +2,44 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.makefile import MakefilePackage +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.makefile import MakefileBuilder, MakefilePackage from spack.package import * -class Megahit(MakefilePackage): - """MEGAHIT: An ultra-fast single-node solution for - large and complex metagenomics assembly via succinct de Bruijn graph""" +class Megahit(CMakePackage, MakefilePackage): + """Ultra-fast and memory-efficient (meta-)genome assembler""" homepage = "https://github.com/voutcn/megahit" - url = "https://github.com/voutcn/megahit/archive/v1.1.3.tar.gz" + url = "https://github.com/voutcn/megahit/archive/refs/tags/v1.2.9.tar.gz" license("GPL-3.0-only") + build_system( + conditional("cmake", when="@1.2:"), conditional("makefile", when="@:1.1"), default="cmake" + ) + + version("1.2.9", sha256="09026eb07cc4e2d24f58b0a13f7a826ae8bb73da735a47cb1cbe6e4693118852") version("1.1.4", sha256="ecd64c8bfa516ef6b19f9b2961ede281ec814db836f1a91953c213c944e1575f") version("1.1.3", sha256="b6eefdee075aaf7a8f9090e2e8b08b770caff90aa43a255e0e220d82ce71c492") depends_on("zlib-api") - patch("amd.patch", when="target=aarch64:") + # CMake path + depends_on("cmake@2.8:", type="build", when="@1.2.9: build_system=cmake") + depends_on("gcc@4.8.4:", type="build", when="@1.2.9: build_system=cmake") + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("gzip", type="run", when="@1.2.9: build_system=cmake") + depends_on("bzip2", type="run", when="@1.2.9: build_system=cmake") + + patch("amd.patch", when="@1.1.4 target=aarch64:") + - def install(self, spec, prefix): +class MakefileBuilder(MakefileBuilder): + def install(self, pkg, spec, prefix): mkdirp(prefix.bin) install("megahit", prefix.bin) install("megahit_asm_core", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/memtailor/package.py b/repos/spack_repo/builtin/packages/memtailor/package.py index fea64946626..925abf54519 100644 --- a/repos/spack_repo/builtin/packages/memtailor/package.py +++ b/repos/spack_repo/builtin/packages/memtailor/package.py @@ -24,6 +24,7 @@ class Memtailor(AutotoolsPackage): license("BSD-3-Clause", checked_by="d-torrance") + version("1.4", sha256="4d5baebf701b04b44201b75831f451305b572a5bc39235a94567ad4e59ad6cdc") version("1.3", sha256="10f0c016e67912be1711a54b18c54d7024c8bfcaf0f279e11187402994150a20") version("1.2", sha256="86cd8f888d23f53256937b47cebe8430daeb8146ca9816c4d3aef0fc5ebc702b") version("1.1", sha256="ce0dc2e5befd1e1f65c99510bc68ddc5b60f13066eac12ec5ce4e1da822e44eb") diff --git a/repos/spack_repo/builtin/packages/miniforge3/package.py b/repos/spack_repo/builtin/packages/miniforge3/package.py index 640e71f71ca..84614f3993a 100644 --- a/repos/spack_repo/builtin/packages/miniforge3/package.py +++ b/repos/spack_repo/builtin/packages/miniforge3/package.py @@ -10,6 +10,10 @@ from spack.package import * _versions = { + "26.1.1-3": { + "Linux-x86_64": ("b25b828b702df4dd2a6d24d4eb56cfa912471dd8e3342cde2c3d86fe3dc2d870",), + "Linux-aarch64": ("83280e4ee71a5bd547d6b318f96e9ababe1054911ff6cc2b8801ce5493fe67e5",), + }, "25.3.0-3": { "Linux-x86_64": ("1b57f8cb991982063f79b56176881093abb1dc76d73fda32102afde60585b5a1",), "Linux-aarch64": ("ac89f17b0eec4e98d38a53d1ae688e0f22c77d8ea5b5f008c2455e90ef095339",), @@ -32,6 +36,12 @@ } +def _should_deprecate_version(version: str) -> bool: + major_version_to_deprecate = 20 + major_version = int(version.split(".")[0]) + return major_version < major_version_to_deprecate + + class Miniforge3(Package): """Miniforge3 is a minimal installer for conda and mamba specific to conda-forge.""" @@ -45,7 +55,7 @@ class Miniforge3(Package): key = f"{platform.system()}-{platform.machine()}" pkg = packages.get(key) if pkg: - version(ver, sha256=pkg[0], expand=False) + version(ver, sha256=pkg[0], expand=False, deprecated=_should_deprecate_version(ver)) variant("mamba", default=True, description="Enable mamba support.") @@ -82,3 +92,17 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: if "+mamba" in self.spec: filename = self.prefix.etc.join("profile.d").join("mamba.sh") env.extend(EnvironmentModifications.from_sourcing_file(filename)) + + @run_after("install") + @on_package_attributes(run_tests=True) + def check_install(self): + """Check the spack install of miniforge3.""" + + with working_dir(self.stage.source_path): + conda = Executable(self.prefix.bin.conda) + output = conda("--version", output=str.split) + assert "conda " in output + + if "+mamba" in self.spec: + mamba = Executable(self.prefix.bin.mamba) + mamba("--version") diff --git a/repos/spack_repo/builtin/packages/minisign/package.py b/repos/spack_repo/builtin/packages/minisign/package.py index b3da056ebb3..ceafd26a27e 100644 --- a/repos/spack_repo/builtin/packages/minisign/package.py +++ b/repos/spack_repo/builtin/packages/minisign/package.py @@ -16,14 +16,20 @@ class Minisign(CMakePackage): license("ISC") - version("0.11", sha256="74c2c78a1cd51a43a6c98f46a4eabefbc8668074ca9aa14115544276b663fc55") - version("0.9", sha256="caa4b3dd314e065c6f387b2713f7603673e39a8a0b1a76f96ef6c9a5b845da0f") - version("0.8", sha256="130eb5246076bc7ec42f13495a601382e566bb6733430d40a68de5e43a7f1082") - version("0.7", sha256="0c9f25ae647b6ba38cf7e6aea1da4e8fb20e1bc64ef0c679da737a38c8ad43ef") + version( + "0.12", + sha256="677e3dd52f559992c72be932d958587b5f731a1a295bcee37be878ed3f585926", + url="https://github.com/jedisct1/minisign/releases/download/0.12/minisign-0.12.tar.gz", + ) + with default_args(deprecated=True): + version("0.11", sha256="74c2c78a1cd51a43a6c98f46a4eabefbc8668074ca9aa14115544276b663fc55") + version("0.9", sha256="caa4b3dd314e065c6f387b2713f7603673e39a8a0b1a76f96ef6c9a5b845da0f") + version("0.8", sha256="130eb5246076bc7ec42f13495a601382e566bb6733430d40a68de5e43a7f1082") + version("0.7", sha256="0c9f25ae647b6ba38cf7e6aea1da4e8fb20e1bc64ef0c679da737a38c8ad43ef") variant("static", default=True, description="builds a static version of the executable") - depends_on("c", type="build") # generated + depends_on("c", type="build") depends_on("libsodium") diff --git a/repos/spack_repo/builtin/packages/mongo_c_driver/package.py b/repos/spack_repo/builtin/packages/mongo_c_driver/package.py index 777644b53ba..dd5ea5ad348 100644 --- a/repos/spack_repo/builtin/packages/mongo_c_driver/package.py +++ b/repos/spack_repo/builtin/packages/mongo_c_driver/package.py @@ -19,6 +19,7 @@ class MongoCDriver(AutotoolsPackage, CMakePackage): license("Apache-2.0") + version("2.3.0", sha256="0ef2c33345482d444ef766ebf3f066b4596bd6867a24ab6889b76dd51cb23878") version("1.27.2", sha256="a53010803e2df097a2ea756be6ece34c8f52cda2c18e6ea21115097b75f5d4bf") version("1.24.4", sha256="2f4a3e8943bfe3b8672c2053f88cf74acc8494dc98a45445f727901eee141544") version("1.23.3", sha256="c8f951d4f965d455f37ae2e10b72914736fc0f25c4ffc14afc3cbadd1a574ef6") @@ -48,8 +49,8 @@ class MongoCDriver(AutotoolsPackage, CMakePackage): when="@1.8.1", ) - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") with when("build_system=cmake"): depends_on("cmake@3.1:", type="build") @@ -66,16 +67,15 @@ class MongoCDriver(AutotoolsPackage, CMakePackage): ) def url_for_version(self, version): - if version >= Version("1.25.0"): + if version >= Version("1.25.0") and version <= Version("1.27.2"): return f"https://github.com/mongodb/mongo-c-driver/archive/refs/tags/{version}.tar.gz" - if version >= Version("1.10.0"): - return f"https://github.com/mongodb/mongo-c-driver/releases/download/{version}/mongo-c-driver-{version}.tar.gz" - else: - return f"https://github.com/mongodb/libbson/releases/download/{version}/libbson-{version}.tar.gz" + + return f"https://github.com/mongodb/mongo-c-driver/releases/download/{version}/mongo-c-driver-{version}.tar.gz" depends_on("pkgconfig", type="build") # When updating mongo-c-driver, libbson has to be kept in sync. + depends_on("libbson@2.3", when="@2.3") depends_on("libbson@1.27", when="@1.27") depends_on("libbson@1.24", when="@1.24") depends_on("libbson@1.23", when="@1.23") diff --git a/repos/spack_repo/builtin/packages/mpc/package.py b/repos/spack_repo/builtin/packages/mpc/package.py index dae9aea1af2..3108ded0b00 100644 --- a/repos/spack_repo/builtin/packages/mpc/package.py +++ b/repos/spack_repo/builtin/packages/mpc/package.py @@ -17,8 +17,15 @@ class Mpc(AutotoolsPackage, GNUMirrorPackage): gnu_mirror_path = "mpc/mpc-1.1.0.tar.gz" list_url = "http://www.multiprecision.org/mpc/download.html" + maintainers("alalazo") + license("GPL-2.0-or-later") + version( + "1.4.1", + sha256="91204cd32f164bd3b7c992d4a6a8ce6519511aadab30f78b6982d0bf8d73e931", + url="https://ftp.gnu.org/gnu/mpc/mpc-1.4.1.tar.xz", + ) version("1.3.1", sha256="ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8") version("1.2.1", sha256="17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459") version("1.1.0", sha256="6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e") diff --git a/repos/spack_repo/builtin/packages/mpfr/package.py b/repos/spack_repo/builtin/packages/mpfr/package.py index 71d3be23a1e..0fc18ea9002 100644 --- a/repos/spack_repo/builtin/packages/mpfr/package.py +++ b/repos/spack_repo/builtin/packages/mpfr/package.py @@ -15,7 +15,7 @@ class Mpfr(AutotoolsPackage, GNUMirrorPackage): homepage = "https://www.mpfr.org/" gnu_mirror_path = "mpfr/mpfr-4.0.2.tar.bz2" - maintainers("cessenat") + maintainers("alalazo", "cessenat") license("LGPL-3.0-or-later") diff --git a/repos/spack_repo/builtin/packages/mumps/package.py b/repos/spack_repo/builtin/packages/mumps/package.py index 8f0c22c0b1a..c0997a1ea14 100644 --- a/repos/spack_repo/builtin/packages/mumps/package.py +++ b/repos/spack_repo/builtin/packages/mumps/package.py @@ -66,6 +66,7 @@ class Mumps(Package): description="Allow BLAS calls in OpenMP regions " + "(warning: might not be supported by all multithread BLAS)", ) + variant("pkgconfig", default=False, description="Create unofficial pkgconfig files") depends_on("c", type="build") # generated depends_on("fortran", type="build") # generated @@ -175,7 +176,9 @@ def write_makefile_inc(self): ) orderings.append("-Dmetis") - + if "+pkgconfig" in self.spec: + # Keeping orderings in case we have to create pkg_config files + self.orderings = orderings makefile_conf.append("ORDERINGSF = %s" % (" ".join(orderings))) # Determine which compiler suite we are using @@ -441,6 +444,56 @@ def install(self, spec, prefix): zsimpletest = Executable("./zsimpletest") zsimpletest(input="input_simpletest_cmplx") + @run_after("install", when="+pkgconfig") + def create_pkgconfig(self): + """Create unofficial pkgconfig files for mumps libraries""" + libdir = join_path(self.prefix, "lib") + pkg_path = join_path(libdir, "pkgconfig") + mkdirp(pkg_path) + precision_desc = { + "s": "single", + "d": "double", + "c": "complex single", + "z": "complex double", + } + orderings = [ordering[2:] for ordering in self.orderings] + if len(orderings) > 1: + ord_desc = "with the following orderings available: " + ord_desc += ", ".join(orderings[:-1]) + ord_desc += f" and {orderings[-1]}" + else: + ord_desc = f"with the {orderings[0]} ordering available" + + if "+mpi" in self.spec: + parallel_desc = "parallel" + else: + parallel_desc = "sequential" + for char in "zscd": + if ( + ("+float" in self.spec and char == "s") + or ("+double" in self.spec and char == "d") + or ("+complex" in self.spec and "+float" in self.spec and char == "c") + or ("+complex" in self.spec and "+double" in self.spec and char == "z") + ): + with open(join_path(pkg_path, f"{char}mumps.pc"), "w") as f: + desc = f"The {parallel_desc} {precision_desc[char]} MUMPS library {ord_desc}" + f.write( + "\n".join( + [ + f"prefix={self.prefix}", + "exec_prefix=${prefix}", + "includedir=${prefix}/include", + "libdir=${exec_prefix}/lib", + "", + f"Name: {char}mumps", + f"Description: {desc}", + f"Version: {self.version}", + "Cflags: -I${includedir}", + f"Libs: -L${{libdir}} -l{char}mumps", + ] + ) + ) + @property def libs(self): component_libs = ["*mumps", "mumps_common", "pord"] diff --git a/repos/spack_repo/builtin/packages/mvapich_plus/package.py b/repos/spack_repo/builtin/packages/mvapich_plus/package.py index 8940adab127..72afc11bc29 100644 --- a/repos/spack_repo/builtin/packages/mvapich_plus/package.py +++ b/repos/spack_repo/builtin/packages/mvapich_plus/package.py @@ -30,6 +30,12 @@ class MvapichPlus(Package, CudaPackage, ROCmPackage): # Prefer the latest stable release + version( + "5.0.0", + sha256="23170011b09f10916782245ad5975567d5f76ae0db8602f5d2cda889186753c2", + url="https://mvapich.cse.ohio-state.edu/download/mvapich/plus/5.0.0/mvapich-plus-installer.sh", + expand=False, + ) version( "4.1", sha256="891b98563216222bd12171ec9ace4a831eef73094f3705a4635bb6104cdfb465", @@ -136,7 +142,7 @@ def install(self, spec, prefix): if spec.satisfies("^cuda"): gpu = "cuda" gpu_ver = str(spec["cuda"].version)[:4] - elif spec.satisfies("+rocm"): + elif spec.satisfies("+rocm") or spec.satisfies("^hip"): gpu = "rocm" gpu_ver = spec["hip"].version if spec.satisfies("+apu"): @@ -151,7 +157,7 @@ def install(self, spec, prefix): if spec.satisfies("process_managers=slurm"): slurm = ".slurm" rpm = f"mvapich-plus-{mvp_ver}-{gpu}{gpu_ver}.{rhel}.ofed{ofed}.{netmod}.{comp}\ -{slurm}{apu}-4.1-1.{el}.x86_64.rpm" +{slurm}{apu}-{mvp_ver}-1.{el}.x86_64.rpm" install_shell = which("bash", required=True) io = which("rpm2cpio", required=True).path diff --git a/repos/spack_repo/builtin/packages/nauty/package.py b/repos/spack_repo/builtin/packages/nauty/package.py index 344e31cb8a3..f3e35d9da06 100644 --- a/repos/spack_repo/builtin/packages/nauty/package.py +++ b/repos/spack_repo/builtin/packages/nauty/package.py @@ -19,9 +19,10 @@ class Nauty(AutotoolsPackage): license("Apache-2.0") + version("2.9.3", sha256="9fc4edae04f88a0f5883985be3b39cf7f898fd6cc96e96b9ee25452743cc1b5b") version("2.6r7", sha256="97b5648de17645895cbd56a9a0b3e23cf01f5332c476d013ea459f1a0363cdc6") - depends_on("c", type="build") # generated + depends_on("c", type="build") # Debian/ Fedora patches for @2.6r7: urls_for_patches = { @@ -88,8 +89,11 @@ def force_autoreconf(self): return self.spec.satisfies("@2.6r7") def url_for_version(self, version): - url = "https://pallini.di.uniroma1.it//nauty{0}.tar.gz" - return url.format(version.joined) + if version < Version("2.8"): + version_str = version.joined + else: + version_str = version.underscored + return f"https://pallini.di.uniroma1.it//nauty{version_str}.tar.gz" def patch(self): os.remove("makefile") diff --git a/repos/spack_repo/builtin/packages/nco/package.py b/repos/spack_repo/builtin/packages/nco/package.py index 9cbc4196ce0..b6c2b0ec175 100644 --- a/repos/spack_repo/builtin/packages/nco/package.py +++ b/repos/spack_repo/builtin/packages/nco/package.py @@ -20,6 +20,11 @@ class Nco(AutotoolsPackage): license("BSD-3-Clause") + version("5.3.9", sha256="705ffa98a78d468cdfaa5858f09213142265120fc26a78249a442ae2fa92ae96") + version("5.3.8", sha256="f23b0b95525473d305ab15b96266d1458e3dfa193b9ee701af826913602d473d") + version("5.3.7", sha256="f1103219bfddd838b80a326793c165a17f21ec612c9520342e34d556a6d012e5") + version("5.3.6", sha256="70d64f461a0d5262274495ee1a9d85735aa3115281fdf01df4f946a919f9f6ae") + version("5.3.5", sha256="f2373b68279ff48b5cacf431f6a9f459bae75dc58d76f74cbff0834938aa6224") version("5.3.4", sha256="265059157ab4e64e73b6aad96da1e09427ba8a03ed3e2348d0a5deb57cf76006") version("5.3.3", sha256="f9185e115e246fe884dcae0804146b56df7257f53de7ba190fea66977ccd5a64") version("5.3.2", sha256="645179433e0f54e7e6fefa9fcc74c1866ad55dd69f0fccbc262c550fcc186385") @@ -83,6 +88,7 @@ class Nco(AutotoolsPackage): depends_on("antlr@2.7.7+cxx") # required for ncap2 depends_on("gsl") # desirable for ncap2 depends_on("udunits") # allows dimensional unit transformations + depends_on("zstd") depends_on("flex", type="build") depends_on("bison", type="build") diff --git a/repos/spack_repo/builtin/packages/neovim/package.py b/repos/spack_repo/builtin/packages/neovim/package.py index 57e62a71df9..4a4905ada3f 100644 --- a/repos/spack_repo/builtin/packages/neovim/package.py +++ b/repos/spack_repo/builtin/packages/neovim/package.py @@ -16,10 +16,15 @@ class Neovim(CMakePackage): maintainers("albestro", "trws") - license("Apache-2.0 AND Vim") + license("Apache-2.0 AND Vim", checked_by="mcmehrtens", when="@0.1.0:") version("master", branch="master") version("stable", tag="stable") + version("0.12.3", sha256="36a6c66bfbba5d96fa512110aecddb981148a4d013b5ecd01a42877c49855a41") + version("0.12.2", sha256="ef9f58da7d687ed4d1dad9715542bf0dabdeedbfe8089e2ce17fff21b920a268") + version("0.12.1", sha256="41898a5073631bc8fd9ac43476b811c05fb3b88ffb043d4fbb9e75e478457336") + version("0.12.0", sha256="76b4875fc1a4805a807a9fa53ff0c8fb081620137a40fb879b32436e375aeb65") + version("0.11.7", sha256="b550b0e4cd2a0f9558bc6b278d27e47b528f7684efa2a46def438fcd64ee9822") version("0.11.6", sha256="d1c8e3f484ed1e231fd5f48f53b7345b628e52263d5eef489bb8b73ca8d90fca") version("0.11.5", sha256="c63450dfb42bb0115cd5e959f81c77989e1c8fd020d5e3f1e6d897154ce8b771") version("0.11.4", sha256="83cf9543bedab8bec8c11cd50ccd9a4bf1570420a914b9a28f83ad100ca6d524") @@ -67,7 +72,7 @@ class Neovim(CMakePackage): depends_on("cmake@3.0:", type="build") depends_on("pkgconfig", type="build") depends_on("gettext") - depends_on("gperf", type="link") + depends_on("gperf", type="link", when="@:0.7") depends_on("jemalloc", type="link", when="platform=linux") depends_on("lua-lpeg") depends_on("lua-mpack", when="@:0.10") @@ -83,7 +88,7 @@ class Neovim(CMakePackage): # versions with when("@0.6:"): depends_on("cmake@3.10:", type="build") - depends_on("gperf@3.1:", type="link") + depends_on("gperf@3.1:", type="link", when="@:0.7") conflicts("^libiconv@:1.14") depends_on("libtermkey@0.22:", type="link", when="@:0.9") depends_on("libvterm@0.1.4:", type="link", when="@:0.10") @@ -103,7 +108,8 @@ class Neovim(CMakePackage): depends_on("tree-sitter@0.20.9", when="@0.10") with when("@0.11:"): depends_on("cmake@3.16:", type="build") - depends_on("utf8proc@2.10.0", type="link") + depends_on("utf8proc@2.10.0:", type="link") + depends_on("tree-sitter@0.25:", type="link") # Support for `libvterm@0.2:` has been added in neovim@0.8.0 # term: Add support for libvterm >= 0.2 (https://github.com/neovim/neovim/releases/tag/v0.8.0) @@ -113,7 +119,7 @@ class Neovim(CMakePackage): # ts_parser_timeout_micros and ts_parser_set_timeout_micros not anymore in API # https://github.com/neovim/neovim/pull/33141 # https://github.com/tree-sitter/tree-sitter/pull/4814 - conflicts("tree-sitter@0.26:", when="@:0.11.6") + conflicts("tree-sitter@0.26:", when="@:0.11") @when("^lua") def cmake_args(self): diff --git a/repos/spack_repo/builtin/packages/netcdf_c/package.py b/repos/spack_repo/builtin/packages/netcdf_c/package.py index 35895fbc358..3b11b5b7695 100644 --- a/repos/spack_repo/builtin/packages/netcdf_c/package.py +++ b/repos/spack_repo/builtin/packages/netcdf_c/package.py @@ -4,6 +4,7 @@ import itertools import os +import pathlib import sys from spack_repo.builtin.build_systems import autotools, cmake @@ -27,6 +28,7 @@ class NetcdfC(CMakePackage, AutotoolsPackage): license("BSD-3-Clause") version("main", branch="main") + version("4.10.0", sha256="ce160f9c1483b32d1ba8b7633d7984510259e4e439c48a218b95a023dc02fd4c") version("4.9.3", sha256="990f46d49525d6ab5dc4249f8684c6deeaf54de6fec63a187e9fb382cc0ffdff") version("4.9.2", sha256="bc104d101278c68b303359b3dc4192f81592ae8640f1aee486921138f7f88cb7") version("4.9.0", sha256="9f4cb864f3ab54adb75409984c6202323d2fc66c003e5308f3cdf224ed41c0a6") @@ -37,20 +39,26 @@ class NetcdfC(CMakePackage, AutotoolsPackage): version("4.7.2", sha256="7648db7bd75fdd198f7be64625af7b276067de48a49dcdfd160f1c2ddff8189c") version("4.7.1", sha256="583e6b89c57037293fc3878c9181bb89151da8c6015ecea404dd426fea219b2c") version("4.7.0", sha256="26d03164074363b3911ed79b7cddd045c22adf5ebaf978943db11a1d9f15e9d3") - version("4.6.3", sha256="734a629cdaed907201084d003cfa091806d6080eeffbd4204e7c7f73ff9d3564") - version("4.6.2", sha256="673936c76ae0c496f6dde7e077f5be480afc1e300adb2c200bf56fbe22e5a82a") - version("4.6.1", sha256="a2fabf27c72a5ee746e3843e1debbaad37cd035767eaede2045371322211eebb") - version("4.6.0", sha256="6d740356399aac12290650325a05aec2fe92c1905df10761b2b0100994197725") - version("4.5.0", sha256="f7d1cb2a82100b9bf9a1130a50bc5c7baf0de5b5022860ac3e09a0a32f83cf4a") - # Version 4.4.1.1 is having problems in tests - # https://github.com/Unidata/netcdf-c/issues/343 - version("4.4.1.1", sha256="7f040a0542ed3f6d27f3002b074e509614e18d6c515b2005d1537fec01b24909") - # Version 4.4.1 can crash on you (in real life and in tests). See: - # https://github.com/Unidata/netcdf-c/issues/282 - version("4.4.1", sha256="17599385fd76ccdced368f448f654de2ed000fece44dece9fb5d598798b4c9d6") - version("4.4.0", sha256="09b78b152d3fd373bee4b5738dc05c7b2f5315fe34aa2d94ee9256661119112f") - version("4.3.3.1", sha256="f2ee78eb310637c007f001e7c18e2d773d23f3455242bde89647137b7344c2e2") - version("4.3.3", sha256="3f16e21bc3dfeb3973252b9addf5defb48994f84fc9c9356081f871526a680e7") + + with default_args(deprecated=True): + version("4.6.3", sha256="734a629cdaed907201084d003cfa091806d6080eeffbd4204e7c7f73ff9d3564") + version("4.6.2", sha256="673936c76ae0c496f6dde7e077f5be480afc1e300adb2c200bf56fbe22e5a82a") + version("4.6.1", sha256="a2fabf27c72a5ee746e3843e1debbaad37cd035767eaede2045371322211eebb") + version("4.6.0", sha256="6d740356399aac12290650325a05aec2fe92c1905df10761b2b0100994197725") + version("4.5.0", sha256="f7d1cb2a82100b9bf9a1130a50bc5c7baf0de5b5022860ac3e09a0a32f83cf4a") + # Version 4.4.1.1 is having problems in tests + # https://github.com/Unidata/netcdf-c/issues/343 + version( + "4.4.1.1", sha256="7f040a0542ed3f6d27f3002b074e509614e18d6c515b2005d1537fec01b24909" + ) + # Version 4.4.1 can crash on you (in real life and in tests). See: + # https://github.com/Unidata/netcdf-c/issues/282 + version("4.4.1", sha256="17599385fd76ccdced368f448f654de2ed000fece44dece9fb5d598798b4c9d6") + version("4.4.0", sha256="09b78b152d3fd373bee4b5738dc05c7b2f5315fe34aa2d94ee9256661119112f") + version( + "4.3.3.1", sha256="f2ee78eb310637c007f001e7c18e2d773d23f3455242bde89647137b7344c2e2" + ) + version("4.3.3", sha256="3f16e21bc3dfeb3973252b9addf5defb48994f84fc9c9356081f871526a680e7") with when("build_system=cmake"): # TODO: document why we need to revert https://github.com/Unidata/netcdf-c/pull/1731 @@ -143,6 +151,14 @@ class NetcdfC(CMakePackage, AutotoolsPackage): when="@4.9.0:4.9.2", ) + # Address the CVE-2025-14933 vulnerability (https://github.com/advisories/GHSA-cg32-6v27-jr43). + # See https://github.com/Unidata/netcdf-c/pull/3153 + patch( + "https://github.com/Unidata/netcdf-c/commit/0e0cb290673fa5a8056df603a95d6bdc7865e9c4.patch?full_index=1", + sha256="5adacbeb7021ba59e6cdb23bb0095c720b9da925b276418c66d5eb9c8ddb0d56", + when="@:4.9", + ) + variant("mpi", default=True, description="Enable parallel I/O for netcdf-4") variant("parallel-netcdf", default=False, description="Enable parallel I/O for classic files") variant("hdf4", default=False, description="Enable HDF4 support") @@ -401,11 +417,15 @@ def cmake_args(self): base_cmake_args.extend( [ self.define("ENABLE_PLUGIN_INSTALL", True), - self.define("NETCDF_WITH_PLUGIN_DIR", self.prefix.plugins), + self.define( + "NETCDF_WITH_PLUGIN_DIR", pathlib.Path(self.prefix.plugins).as_posix() + ), ] ) elif self.spec.satisfies("@4.9.0:+shared"): - base_cmake_args.append(self.define("PLUGIN_INSTALL_DIR", self.prefix.plugins)) + base_cmake_args.append( + self.define("PLUGIN_INSTALL_DIR", pathlib.Path(self.prefix.plugins).as_posix()) + ) return base_cmake_args @run_after("install") @@ -433,23 +453,27 @@ class AutotoolsBuilder(AnyBuilder, autotools.AutotoolsBuilder): def force_autoreconf(self): return any(self.spec.satisfies(s) for s in self.pkg._force_autoreconf_when) - @property - def build_targets(self): - # Starting version 4.8.0, the library includes C++ source files. None of those files is - # compiled in any configuration that we currently support. However, Automake still chooses - # the C++ compiler for linking, which leads to overlinking to the standard C++ library. - # To avoid that, we run make with an extra argument, which overrides the linker command. - # This way, the C++ compiler is never called, and the linking is done with the default - # command that runs the C compiler. - if self.spec.satisfies("@4.8.0:"): - return ["CXXLINK=${LINK}"] - return [] - @when("@4.6.3:") def autoreconf(self, pkg, spec, prefix): if not os.path.exists(self.configure_abs_path): Executable("./bootstrap")() + @run_before("autoreconf") + def filter_stdcxx(self): + # Starting version 4.8.0, the library includes C++ source files. None of those files is + # compiled in any configuration that we currently support. The C++ compiler is also never + # called for the compilation and linking (e.g. libnczarr.la, which is linked with + # --tag=CXX, is a convenience library and therefore is created with AR, not CXX). However, + # the Automake files are implemented to append -lstdc++ to the list of linker flags even + # when unnecessary, which we fix with the following patching: + if self.spec.satisfies("@4.8.0:"): + # Patch Makefile.in files to cover the case when autoreconf if skipped: + filenames = find(self.configure_directory, "Makefile.in", recursive=True) + # Patch the Automake include file to cover the case when autoreconf is run: + filenames.append(join_path(self.configure_directory, "lib_flags.am")) + with keep_modification_time(*filenames): + filter_file("-lstdc++", "", *filenames, string=True) + def configure_args(self): config_args = [ "--enable-v2", @@ -633,9 +657,16 @@ def configure_args(self): return config_args - # It looks like the issues with running the tests in parallel were fixed around version 4.6.0 - # (see https://github.com/Unidata/netcdf-c/commit/812c2fd4d108cca927582c0d84049c0f271bb9e0): - @when("@:4.5.0") def check(self): - # h5_test fails when run in parallel - make("check", parallel=False) + # Build all tests in parallel: + make("check", "TESTS=", parallel=True) + # Run the tests serially if needed. Also, run with the the --keep-going (-k) flag to run + # all tests even if a test in a subdirectory fails: + make( + "check", + "-k", + # The h5_test fails when run in parallel (it looks like the issues with running the + # tests in parallel were fixed around version 4.6.0, + # see https://github.com/Unidata/netcdf-c/commit/812c2fd4d108cca927582c0d84049c0f271bb9e0): + parallel=self.spec.satisfies("@4.6.0:"), + ) diff --git a/repos/spack_repo/builtin/packages/nvpl_blas/package.py b/repos/spack_repo/builtin/packages/nvpl_blas/package.py index f16ea292f41..cc041a5d7c7 100644 --- a/repos/spack_repo/builtin/packages/nvpl_blas/package.py +++ b/repos/spack_repo/builtin/packages/nvpl_blas/package.py @@ -21,8 +21,12 @@ class NvplBlas(Package): maintainers("albestro", "rasolca") - license("UNKNOWN") + redistribute(source=False, binary=False) + license("NVIDIA Software License Agreement") + + version("0.5.0.1", sha256="c51fc9cc908cca7c6aa39e72c492c2bfcc9472b542b109b6bcfa5d143f9d780e") + version("0.4.1.1", sha256="57704e2e211999c899bca26346b946b881b609554914245131b390410f7b93e8") version("0.4.0.1", sha256="6655898327ed36afd0242719075447058c3c89640b5b9bbfeb5af4dd5c101174") version("0.3.0", sha256="b51cb199a440c1e8673d3d845d395950c9a9020d4e83af2655eb96c23c6ec90d") version("0.2.0.1", sha256="ba29f6a9d3831b6ae5c9265b4d124c13b9b9e0faea025359b02b41ad230975c2") diff --git a/repos/spack_repo/builtin/packages/nvpl_common/package.py b/repos/spack_repo/builtin/packages/nvpl_common/package.py new file mode 100644 index 00000000000..20c8daefdb5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/nvpl_common/package.py @@ -0,0 +1,39 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.generic import Package + +from spack.package import * + + +class NvplCommon(Package): + """ + NVPL Common provides CMake packages for NVIDIA Performance Libraries (NVPL). + """ + + homepage = "https://docs.nvidia.com/nvpl/latest/index.html" + url = ( + "https://developer.download.nvidia.com/compute/nvpl/redist" + "/nvpl_common/linux-sbsa/nvpl_common-linux-sbsa-0.1.0.1-archive.tar.xz" + ) + + maintainers("rbberger") + + redistribute(source=False, binary=False) + + license("NVIDIA Software License Agreement") + + version("0.3.4", sha256="c68891dd293df0faf2ae3cebfeae69c567cf784c98006351abcde2a34fc387df") + version("0.3.3", sha256="fe87ccd63817427c6c9b9e292447a4e8f256b9c9157065fba1a338719fa433c8") + version("0.3.2", sha256="66c4d3d2772b10f40e5d92fa2bf92b68d33db58d4c448bfbb9f94bfe5ab94720") + version("0.3.1", sha256="8a516d983a5e6ddc299aacaccc7992c3028e1abbd020a47ffcdb0219187e41b6") + version("0.3.0", sha256="3019e73b6ea93ea41113fa6aab268ff1e76c706c2b5fea6a9a033b177e30fbbf") + version("0.2.0.1", sha256="8b3c65cb5001fd09be1f020582822e2a040a0ad8a30093f58f2eedbcee1e8ff6") + version("0.1.0.1", sha256="aa72c18dbbcfd882d77776370896fb4678bc92cf0dca3d868ae51b495ad59413") + + def url_for_version(self, version): + return f"https://developer.download.nvidia.com/compute/nvpl/redist/nvpl_common/linux-sbsa/nvpl_common-linux-sbsa-{version}-archive.tar.xz" + + def install(self, spec, prefix): + install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/nvpl_fft/package.py b/repos/spack_repo/builtin/packages/nvpl_fft/package.py index e0d3772adf5..f16a8e3ab80 100644 --- a/repos/spack_repo/builtin/packages/nvpl_fft/package.py +++ b/repos/spack_repo/builtin/packages/nvpl_fft/package.py @@ -20,8 +20,13 @@ class NvplFft(Package): "/nvpl_fft/linux-sbsa/nvpl_fft-linux-sbsa-0.1.0-archive.tar.xz" ) - license("UNKNOWN") + redistribute(source=False, binary=False) + license("NVIDIA Software License Agreement") + + version("0.5.0", sha256="fc53bf42124b0e395230109cea5c325fd6963b8797bdd98aa127cb402e92e813") + version("0.4.2.1", sha256="ebb9d98abc23ddee5c492e0bbf2c534570a38d7df1863a0630da2c6d7f5cca3d") + version("0.4.1", sha256="b7d114a795841f28109fcc1508a6848b33ab779bef01bacf143d3ea47a0fd0a1") version("0.4.0.1", sha256="e0309f28a98a5f920919a9c6a766b89b507907bde66e665e0a239005c6942781") version("0.3.0", sha256="e20791b77fa705e5a4f7aa5dada39b2a41e898189e0e60e680576128d532269b") version("0.2.0.2", sha256="264343405aad6aca451bf8bd0988b6217b2bb17fd8f99394b83e04d9ab2f7f91") @@ -29,6 +34,8 @@ class NvplFft(Package): provides("fftw-api@3") + depends_on("c", type="build") # for enforcing compiler restrictions + requires("target=armv8.2a:", msg="Any CPU with Arm-v8.2a+ microarch") conflicts("%gcc@:7") diff --git a/repos/spack_repo/builtin/packages/nvpl_lapack/package.py b/repos/spack_repo/builtin/packages/nvpl_lapack/package.py index 39160dde50a..ee9753bb464 100644 --- a/repos/spack_repo/builtin/packages/nvpl_lapack/package.py +++ b/repos/spack_repo/builtin/packages/nvpl_lapack/package.py @@ -21,8 +21,12 @@ class NvplLapack(Package): maintainers("albestro", "rasolca") - license("UNKNOWN") + redistribute(source=False, binary=False) + license("NVIDIA Software License Agreement") + + version("0.3.2", sha256="3e4d9969223a52ab011d1bf38156cbe31fba0e4f12c3b87729393972a16daecf") + version("0.3.1.1", sha256="f5b916aa36a8549946fc2262acebb082fe8c463bd1523a3c0cc2c93527231653") version("0.3.0", sha256="41cc18fc52f6869747b4185a96e34de93a53eb9d6aa95aab07082958055161b0") version("0.2.3.1", sha256="25927df133c5486fd71d5976c93917c96e62275a78dffc354bcaf1b022f56f8e") version("0.2.2.1", sha256="cdfbf69517a044e99e3e6231c8b2f4e845fd0de57775ccad6b4b0b4fe7e91e84") @@ -41,6 +45,8 @@ class NvplLapack(Package): multi=False, ) + depends_on("c", type="build") # for enforcing compiler restrictions + requires("target=armv8.2a:", msg="Any CPU with Arm-v8.2a+ microarch") # propagate variants for depends_on("nvpl-blas") diff --git a/repos/spack_repo/builtin/packages/nvpl_scalapack/package.py b/repos/spack_repo/builtin/packages/nvpl_scalapack/package.py index 84a5e607232..1180f891662 100644 --- a/repos/spack_repo/builtin/packages/nvpl_scalapack/package.py +++ b/repos/spack_repo/builtin/packages/nvpl_scalapack/package.py @@ -20,12 +20,19 @@ class NvplScalapack(Package): tags = ["e4s"] + redistribute(source=False, binary=False) + + license("NVIDIA Software License Agreement") + + version("0.2.3", sha256="1afa2a6f2ab0580bff2148cc769e4c03f79a5de622c89699564287dd1a1112cf") + version("0.2.2", sha256="20cf6c54a0352f2fb0060e6f5ef6b892c5d07a242f8aab31cd9bbceb58a7bd11") version("0.2.1", sha256="dada4d1ecf044d90609b9e62750b383d11be9b22c87e109414bcc07dce3c83c9") provides("scalapack") variant("ilp64", default=False, description="Force 64-bit Fortran native integers") + depends_on("c", type="build") # for enforcing compiler restrictions depends_on("nvpl-blas +ilp64", when="+ilp64") depends_on("nvpl-blas ~ilp64", when="~ilp64") depends_on("nvpl-lapack +ilp64", when="+ilp64") diff --git a/repos/spack_repo/builtin/packages/oc/package.py b/repos/spack_repo/builtin/packages/oc/package.py index a14feba9458..b0c29f079ad 100644 --- a/repos/spack_repo/builtin/packages/oc/package.py +++ b/repos/spack_repo/builtin/packages/oc/package.py @@ -35,11 +35,9 @@ class Oc(GoPackage): @property def build_args(self): - args = super().build_args tags = ["include_gcs", "include_oss", "containers_image_openpgp"] if self.spec.satisfies("+gssapi"): tags.append("gssapi") - args.extend(["-tags", " ".join(tags)]) - return args + return ["-tags", " ".join(tags)] diff --git a/repos/spack_repo/builtin/packages/omnictl/package.py b/repos/spack_repo/builtin/packages/omnictl/package.py index 3ceb5ca652f..032d683a83a 100644 --- a/repos/spack_repo/builtin/packages/omnictl/package.py +++ b/repos/spack_repo/builtin/packages/omnictl/package.py @@ -19,8 +19,10 @@ class Omnictl(GoPackage): license("BUSL-1.1", checked_by="RobertMaaskant") + version("1.8.2", sha256="40addbfac6c38e923df03d622b6d150d51fc254c4a622b4edd34658213cad36d") version("1.7.0", sha256="07dd01d8d724f59697e2754027dcbd12ee6e5bf2da1348e5b32d844e7eef4288") + depends_on("go@1.26.3:", type="build", when="@1.8.1:") depends_on("go@1.26.2:", type="build", when="@1.7.0:") build_directory = "cmd/omnictl" diff --git a/repos/spack_repo/builtin/packages/openbabel/package.py b/repos/spack_repo/builtin/packages/openbabel/package.py index 01dfe42d393..e01f87f1322 100644 --- a/repos/spack_repo/builtin/packages/openbabel/package.py +++ b/repos/spack_repo/builtin/packages/openbabel/package.py @@ -20,6 +20,7 @@ class Openbabel(CMakePackage): maintainers("RMeli") version("master", branch="master") + version("3.2.0", tag="openbabel-3-2-0", commit="5046ed24e1c33180537715e0204f3111125eb595") version("3.1.1", tag="openbabel-3-1-1", commit="cbd4db43f8908b874864280fdc03bf92569eebc1") version("3.1.0", tag="openbabel-3-1-0", commit="1e593abc1edf47352d5e8a0887654edf69a2f5f3") version("3.0.0", tag="openbabel-3-0-0", commit="49f9cfb32bd0bc6ea440639d338123eb27accbe2") @@ -27,7 +28,7 @@ class Openbabel(CMakePackage): version("2.4.0", tag="openbabel-2-4-0", commit="087f33320e6796f39e6a1da04f4de7ec46bec4af") variant("python", default=True, description="Build Python bindings") - variant("gui", default=True, description="Build with GUI") + variant("gui", default=False, description="Build with GUI") variant("cairo", default=True, description="Build with Cairo (PNG output support)") variant("openmp", default=False, description="Build with OpenMP") variant("maeparser", default=False, description="Built with MAE parser") @@ -38,8 +39,10 @@ class Openbabel(CMakePackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - # Pin because distutils was removed in 3.12 - depends_on("python@:3.11", type=("build", "run"), when="+python") + with when("+python"): + depends_on("python", type=("build", "run"), when="@3.2:") + # Pin because distutils was removed in 3.12 + depends_on("python@:3.11", type=("build", "run"), when="@:3.1.1") depends_on("cmake@3.1:", type="build") depends_on("pkgconfig", type="build") depends_on("swig@2.0:", type="build", when="+python") @@ -53,6 +56,7 @@ class Openbabel(CMakePackage): depends_on("rapidjson") # required to support JSON depends_on("libsm") depends_on("uuid") + depends_on("wxwidgets", when="+gui") depends_on("maeparser", when="+maeparser") depends_on("coordgen", when="+coordgen") @@ -66,6 +70,12 @@ class Openbabel(CMakePackage): # https://github.com/openbabel/openbabel/pull/2493 patch("cmake-time.patch", when="@3.1.1") + patch( + "https://github.com/openbabel/openbabel/pull/2964.patch?full_index=1", + sha256="0ada5d204487440dbb283995f8a6e04652def929b3cdaf7d71e801d6d31f1244", + when="@:3.2.0", + ) + def cmake_args(self): spec = self.spec args = [] diff --git a/repos/spack_repo/builtin/packages/openblas/package.py b/repos/spack_repo/builtin/packages/openblas/package.py index 1559d2c1040..cde6252ce91 100644 --- a/repos/spack_repo/builtin/packages/openblas/package.py +++ b/repos/spack_repo/builtin/packages/openblas/package.py @@ -21,7 +21,7 @@ class Openblas(CMakePackage, MakefilePackage): ) git = "https://github.com/OpenMathLib/OpenBLAS.git" - maintainers("mathomp4") + maintainers("mathomp4", "sethrj") libraries = ["libopenblas", "openblas"] @@ -555,8 +555,23 @@ def make_defs(self): else: make_defs.append("MAKE_NB_JOBS=0") # flag provided by OpenBLAS - # Add target and architecture flags - make_defs += self._microarch_target_args() + if self.spec.satisfies("target=m1:"): + # Use custom simplified target for macOS ARM procesors: + # GENERIC target results in SIGILL + make_defs += [ + "TARGET=VORTEX", + "NO_SVE=1", + ] + else: + # Try to intelligently add target and architecture flags + make_defs += self._microarch_target_args() + + # Prevent errors in `as` assembler from newer instructions + if self.spec.satisfies("%gcc@:4.8.4"): + make_defs.append("NO_AVX2=1") + + if not self.spec.satisfies("target=x86_64_v4:"): + make_defs.append("NO_AVX512=1") if self.spec.satisfies("+dynamic_dispatch"): make_defs += ["DYNAMIC_ARCH=1"] @@ -608,10 +623,6 @@ def make_defs(self): if self.spec.satisfies("+fortran%clang"): make_defs.append("TIMER=INT_CPU_TIME") - # Prevent errors in `as` assembler from newer instructions - if self.spec.satisfies("%gcc@:4.8.4"): - make_defs.append("NO_AVX2=1") - # Fujitsu Compiler dose not add Fortran runtime in rpath. if self.spec.satisfies("%fj"): make_defs.append("LDFLAGS=-lfj90i -lfj90f -lfjsrcinfo -lelf") @@ -624,19 +635,11 @@ def make_defs(self): if self.spec.satisfies("+bignuma"): make_defs.append("BIGNUMA=1") - if not self.spec.satisfies("target=x86_64_v4:"): - make_defs.append("NO_AVX512=1") - # Avoid that NUM_THREADS gets initialized with the host's number of CPUs. if self.spec.satisfies("threads=openmp") or self.spec.satisfies("threads=pthreads"): max_num_threads = self.spec.variants["max_num_threads"].value make_defs.append("NUM_THREADS={0}".format(max_num_threads)) - # Fix https://github.com/OpenMathLib/OpenBLAS/issues/4212 - # Following https://github.com/OpenMathLib/OpenBLAS/pull/4214 - if self.spec.satisfies("platform=darwin target=aarch64: %gcc"): - make_defs.append("NO_SVE=1") - return make_defs def build(self, pkg: MakefilePackage, spec: Spec, prefix: Prefix) -> None: diff --git a/repos/spack_repo/builtin/packages/openfoam/package.py b/repos/spack_repo/builtin/packages/openfoam/package.py index 9d63f69bc2a..4e825024a74 100644 --- a/repos/spack_repo/builtin/packages/openfoam/package.py +++ b/repos/spack_repo/builtin/packages/openfoam/package.py @@ -357,7 +357,10 @@ class Openfoam(Package): variant("zoltan", default=False, description="With zoltan renumbering") variant("mgridgen", default=False, description="With mgridgen support") variant( - "paraview", default=False, description="Build paraview plugins and runtime post-processing" + "paraview", + default=False, + description="Build paraview plugins and runtime post-processing", + when="@1706:", ) variant("vtk", default=False, description="With VTK runTimePostProcessing") variant( @@ -431,9 +434,7 @@ class Openfoam(Package): # ~/.spack/packages.yaml # 1706 ok with newer paraview but avoid pv-5.2, pv-5.3 readers - depends_on("paraview@5.4:", when="@1706:+paraview") - # 1612 plugins need older paraview - depends_on("paraview@:5.0.1", when="@1612+paraview") + depends_on("paraview", when="@1706:+paraview") # Icx only support from v2106 onwards conflicts("%oneapi", when="@:2012", msg="OneAPI compiler not supported. Try v2106 or greater.") diff --git a/repos/spack_repo/builtin/packages/openmpi/package.py b/repos/spack_repo/builtin/packages/openmpi/package.py index 57b79a48a21..e6705c2ee58 100644 --- a/repos/spack_repo/builtin/packages/openmpi/package.py +++ b/repos/spack_repo/builtin/packages/openmpi/package.py @@ -518,6 +518,23 @@ class Openmpi(AutotoolsPackage, CudaPackage, ROCmPackage): # https://github.com/open-mpi/ompi/commit/aa5577441ff1ab7f97f8b63e442b37457c7bd997 patch("add_string.patch", when="@5.0.1:5.0.8 +rocm") + # GCC 16: drop __opal_attribute_always_inline__ from mca_part_persist_start + # to fix "inlining failed in call to always_inline: recursive inlining" error + # https://github.com/open-mpi/ompi/issues/13721 + patch( + "https://github.com/open-mpi/ompi/commit/aa024ac73d624611cfe3af6f541b5d28dedf07bb.patch?full_index=1", + sha256="646eb1a7382d628eb821715ca69fc5467a9a25aaddfe8290dbce008536dbfaa0", + when="@5.0.0:", + ) + + # GCC 16: fix excessive brace initialization in memheap_base_frame.c + # https://github.com/open-mpi/ompi/issues/13757 + patch( + "https://github.com/open-mpi/ompi/commit/b878c7d974dae767246ad20ef9124a331d0f59a4.patch?full_index=1", + sha256="1dcebafdb310203f3b62456a5ba67e1a21ad3a88aaf40326734885d7b0d776f9", + when="@5.0.0: +openshmem", + ) + FABRICS = ( "psm", "psm2", diff --git a/repos/spack_repo/builtin/packages/paraview/package.py b/repos/spack_repo/builtin/packages/paraview/package.py index 8ab8b2a854f..e9a226e9221 100644 --- a/repos/spack_repo/builtin/packages/paraview/package.py +++ b/repos/spack_repo/builtin/packages/paraview/package.py @@ -64,14 +64,15 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): license("Apache-2.0") version("master", branch="master", submodules=True) + version("6.1.1", sha256="43671df11e1629cf9079815bfdfa9f22063a90cd1baed694072f80622f5ad92f") version("6.1.0", sha256="4e9d882874b2a161f3338a6644a5d8bc63748f0d7846f4690701b86a8a821dfc") version("6.0.1", sha256="5e56ac7af5e925b3cfd3fab82470933cbabc7e8fda87e14af64f995d6064eb06") - version("6.0.0", sha256="0ee07ae6377e5e97766aebf858eb9758668a52df041f319e7c975037a63bf189") version("5.13.3", sha256="3bd31bb56e07aa2af2a379895745bbc430c565518a363d935f2efc35b076df09") version("5.12.1", sha256="927f880c13deb6dde4172f4727d2b66f5576e15237b35778344f5dd1ddec863e") version("5.11.2", sha256="5c5d2f922f30d91feefc43b4a729015dbb1459f54c938896c123d2ac289c7a1e") with default_args(deprecated=True): + version("6.0.0", sha256="0ee07ae6377e5e97766aebf858eb9758668a52df041f319e7c975037a63bf189") version( "5.13.2", sha256="4e116250f8e1a9c480f97c5696c9cd72b4d4998b039ca46da8b224f27445f13e" ) @@ -90,40 +91,17 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): version( "5.11.0", sha256="9a0b8fe8b1a2cdfd0ace9a87fa87e0ec21ee0f6f0bcb1fdde050f4f585a25165" ) - version( - "5.10.1", sha256="520e3cdfba4f8592be477314c2f6c37ec73fb1d5b25ac30bdbd1c5214758b9c2" - ) - version( - "5.10.0", sha256="86d85fcbec395cdbc8e1301208d7c76d8f48b15dc6b967ffbbaeee31242343a5" - ) - version("5.9.1", sha256="0d486cb6fbf55e428845c9650486f87466efcb3155e40489182a7ea85dfd4c8d") - version("5.9.0", sha256="b03258b7cddb77f0ee142e3e77b377e5b1f503bcabc02bfa578298c99a06980d") - version("5.8.1", sha256="7653950392a0d7c0287c26f1d3a25cdbaa11baa7524b0af0e6a1a0d7d487d034") - version("5.8.0", sha256="219e4107abf40317ce054408e9c3b22fb935d464238c1c00c0161f1c8697a3f9") - version("5.7.0", sha256="e41e597e1be462974a03031380d9e5ba9a7efcdb22e4ca2f3fec50361f310874") - version("5.6.2", sha256="1f3710b77c58a46891808dbe23dc59a1259d9c6b7bb123aaaeaa6ddf2be882ea") - version("5.6.0", sha256="cb8c4d752ad9805c74b4a08f8ae6e83402c3f11e38b274dba171b99bb6ac2460") - version("5.5.2", sha256="64561f34c4402b88f3cb20a956842394dde5838efd7ebb301157a837114a0e2d") - version("5.5.1", sha256="a6e67a95a7a5711a2b5f95f38ccbff4912262b3e1b1af7d6b9afe8185aa85c0d") - version("5.5.0", sha256="1b619e326ff574de808732ca9a7447e4cd14e94ae6568f55b6581896cd569dff") - version("5.4.1", sha256="390d0f5dc66bf432e202a39b1f34193af4bf8aad2355338fa5e2778ea07a80e4") - version("5.4.0", sha256="f488d84a53b1286d2ee1967e386626c8ad05a6fe4e6cbdaa8d5e042f519f94a9") - version("5.3.0", sha256="046631bbf00775edc927314a3db207509666c9c6aadc7079e5159440fd2f88a0") - version("5.2.0", sha256="894e42ef8475bb49e4e7e64f4ee2c37c714facd18bfbb1d6de7f69676b062c96") - version("5.1.2", sha256="ff02b7307a256b7c6e8ad900dee5796297494df7f9a0804fe801eb2f66e6a187") - version("5.0.1", sha256="caddec83ec284162a2cbc46877b0e5a9d2cca59fb4ab0ea35b0948d2492950bb") - version("4.4.0", sha256="c2dc334a89df24ce5233b81b74740fc9f10bc181cd604109fd13f6ad2381fc73") variant( "development_files", default=True, description="Install include files for Catalyst or plugins support", ) - variant("python", default=False, description="Enable Python support", when="@5.8:") + variant("python", default=False, description="Enable Python support") variant("fortran", default=False, description="Enable Fortran support") variant("mpi", default=True, description="Enable MPI support") variant("qt", default=False, description="Enable Qt (gui) support") - variant("opengl2", default=True, description="Enable OpenGL2 backend", when="@5:5") + variant("opengl2", default=True, description="Enable OpenGL2 backend", when="@5") variant("osmesa_fallback", default=False, description="Enable OpenGL2 backend", when="@6:") variant("x", default=True, description="Enable X11 support") variant("examples", default=False, description="Build examples") @@ -134,8 +112,8 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): variant("eyedomelighting", default=False, description="Enable Eye Dome Lighting feature") variant("nvindex", default=False, description="Enable the pvNVIDIAIndeX plugin") variant("tbb", default=False, description="Enable multi-threaded parallelism with TBB") - variant("adios2", default=False, description="Enable ADIOS2 support", when="@5.8:") - variant("fides", default=False, description="Enable Fides support", when="@5.9:") + variant("adios2", default=False, description="Enable ADIOS2 support") + variant("fides", default=False, description="Enable Fides support") variant("visitbridge", default=False, description="Enable VisItBridge support") variant("raytracing", default=False, description="Enable Raytracing support") variant("cdi", default=False, description="Enable CDI support") @@ -145,12 +123,11 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): description="Enable openPMD support (w/ ADIOS2/HDF5)", when="@5.9: +python", ) - variant("catalyst", default=False, description="Enable Catalyst 1", when="@5.7:") + variant("catalyst", default=False, description="Enable Catalyst 1") variant( "libcatalyst", default=False, description="Enable Catalyst 2 (libcatalyst) implementation", - when="@5.10:", ) variant( @@ -169,7 +146,7 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): variant( "use_vtkm", default="default", - when="@5.3.0:5.13", + when="@5", multi=False, values=("default", "on", "off"), description="Build VTK-m with ParaView." @@ -178,35 +155,17 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): ) conflicts("~hdf5", when="+visitbridge") - conflicts("+adios2", when="@:5.10 ~mpi") conflicts("+fides", when="~adios2", msg="Fides needs ADIOS2") - conflicts("+fides", when="@:5 use_vtkm=off", msg="Fides needs VTK-m") - conflicts("+fides", when="@:5 use_vtkm=default", msg="Fides needs VTK-m") + conflicts("+fides", when="@5 use_vtkm=off", msg="Fides needs VTK-m") + conflicts("+fides", when="@5 use_vtkm=default", msg="Fides needs VTK-m") conflicts("+openpmd", when="~adios2 ~hdf5", msg="openPMD needs ADIOS2 and/or HDF5") conflicts("~shared", when="+cuda") - conflicts("+cuda", when="@5.8:5.10") conflicts("+cuda", when="use_vtkm=off") conflicts("+rocm", when="+cuda") conflicts("+rocm", when="use_vtkm=off") - conflicts("paraview@:5.10", when="+rocm") # Legacy rendering dropped in 5.5 # See commit: https://gitlab.kitware.com/paraview/paraview/-/commit/798d328c - conflicts("~opengl2", when="@5.5:5") - # in 5.7 you cannot reduce the size of the code for Catalyst builds. - conflicts("build_edition=catalyst_rendering", when="@:5.7") - conflicts("build_edition=catalyst", when="@:5.7") - conflicts("build_edition=rendering", when="@:5.7") - conflicts("build_edition=core", when="@:5.7") - # before 5.3.0, ParaView didn't have VTK-m/Viskores - conflicts("+cuda", when="@:5.3") - conflicts("+rocm", when="@:5.3") - # paraview@5.9.0 is recommended when using the xl compiler - # See https://gitlab.kitware.com/paraview/paraview/-/merge_requests/4433 - conflicts( - "paraview@:5.8", - when="%xl_r", - msg="Use paraview@5.9.0 with %xl_r. Earlier versions are not able to build with xl.", - ) + conflicts("~opengl2", when="@5") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -217,10 +176,7 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): extends("python", when="+python") - # VTK < 8.2.1 can't handle Python 3.8 - # This affects Paraview <= 5.7 (VTK 8.2.0) - # https://gitlab.kitware.com/vtk/vtk/-/issues/17670 - depends_on("python@3:", when="@5.8:+python", type=("build", "run")) + depends_on("python@3:", when="+python", type=("build", "run")) depends_on("py-numpy", when="+python", type=("build", "run")) depends_on("py-mpi4py", when="+python+mpi", type=("build", "run")) @@ -251,19 +207,18 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): depends_on("libx11") depends_on("libxcursor") # When Qt and X are enabled, GLX is required in the runtime - requires("^[virtuals=gl] glx", when="@:5") + requires("^[virtuals=gl] glx", when="@5") depends_on("glx", when="@6:", type=("run")) - # ParaView@:5 support Qt5 and requires a GL provider to be known at + # ParaView@5 support Qt5 and requires a GL provider to be known at # build/link time. - with when("@:5"): + with when("@5"): with when("+qt"): - depends_on("qt@:4", when="@:5.2.0") # https://discourse.paraview.org/t/paraview-5-9-and-minimum-recommended-qt-version/5333 - depends_on("qt@5.12:5", when="@5.9:5.13") + depends_on("qt@5.12:5", when="@5") depends_on("qt+sql") - depends_on("qt+opengl", when="@5.3.0:5 +opengl2") - depends_on("qt~opengl", when="@5.3.0:5 ~opengl2") + depends_on("qt+opengl", when="@5 +opengl2") + depends_on("qt~opengl", when="@5 ~opengl2") # Headless rendering not supported with Qt conflicts("osmesa") conflicts("egl") @@ -322,7 +277,7 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): # * the system rendering default (WGL/AGL/GLX) # * EGL # * OSMesa (guarenteed to exist and work on all systems) - depends_on("osmesa", type=("run"), when="+osmesa_fallback") + depends_on("osmesa", type=("link", "run"), when="+osmesa_fallback") # Depend on Viskores when it is needed for vk_variant in viskores_dependency_variants: @@ -355,12 +310,9 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): depends_on("expat") depends_on("eigen@3") depends_on("freetype") - depends_on("freetype@:2.10.2", when="@:5.8") - # depends_on('hdf5+mpi', when='+mpi') - # depends_on('hdf5~mpi', when='~mpi') depends_on("hdf5+hl+mpi", when="+hdf5+mpi") depends_on("hdf5+hl~mpi", when="+hdf5~mpi") - depends_on("hdf5@1.10:", when="+hdf5 @5.10:") + depends_on("hdf5@1.10:", when="+hdf5") depends_on("adios2+mpi", when="+adios2+mpi") depends_on("adios2~mpi", when="+adios2~mpi") depends_on("silo", when="+visitbridge") @@ -377,20 +329,14 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): depends_on("netcdf-c+parallel-netcdf", when="+mpi platform=darwin") depends_on("netcdf-c+parallel-netcdf", when="+mpi platform=freebsd") depends_on("netcdf-c+parallel-netcdf", when="+mpi platform=linux") - depends_on("netcdf-c@:4.9.2", when="@:5.13") + depends_on("netcdf-c@:4.9.2", when="@5") depends_on("pegtl@2.8.3") depends_on("protobuf@3.4:") - # Paraview 5.10 can't build with protobuf > 3.18 - # https://github.com/spack/spack/issues/37437 - depends_on("protobuf@3.4:3.18", when="@:5.10%oneapi") - depends_on("protobuf@3.4:3.18", when="@:5.10%intel@2021:") - depends_on("protobuf@3.4:3.18", when="@:5.10%xl") - depends_on("protobuf@3.4:3.18", when="@:5.10%xl_r") # protobuf requires newer abseil-cpp, which in turn requires C++14, - # but paraview uses C++11 by default. Use for 5.8+ until ParaView updates + # but paraview uses C++11 by default. Use until ParaView updates # its C++ standard level. - depends_on("protobuf@3.4:21", when="@5.8:%gcc") - depends_on("protobuf@3.4:21", when="@5.8:%clang") + depends_on("protobuf@3.4:21", when="%gcc") + depends_on("protobuf@3.4:21", when="%clang") depends_on("protobuf@3.4:21", when="@5.11:") depends_on("protobuf@3.4:21", when="@master") depends_on("libxml2") @@ -401,14 +347,13 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): # Older builds of pugi export their symbols differently, # and pre-5.9 is unable to handle that. - depends_on("pugixml@:1.10", when="@:5.8") - depends_on("pugixml", when="@5.9:") + depends_on("pugixml") # 5.13 uses 'remove_children': https://github.com/spack/spack/issues/47098 depends_on("pugixml@1.11:", when="@5.13:") # ParaView depends on cli11 due to changes in MR # https://gitlab.kitware.com/paraview/paraview/-/merge_requests/4951 - depends_on("cli11@1.9.1", when="@5.10:") + depends_on("cli11@1.9.1") # ParaView depends on nlohmann-json due to changes in MR # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8550 @@ -420,56 +365,26 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): depends_on("proj@8.1.0", when="@5.11:") # Patches to vendored VTK-m are needed for forward compat with CUDA 12 (mr 2972 and 3259) - depends_on("cuda@:11", when="@5.3:5.12 +cuda") - - patch("stl-reader-pv440.patch", when="@4.4.0") - - # Broken gcc-detection - improved in 5.1.0, redundant later - patch("gcc-compiler-pv501.patch", when="@:5.0.1") - - # Broken installation (ui_pqExportStateWizard.h) - fixed in 5.2.0 - patch("ui_pqExportStateWizard.patch", when="@:5.1.2") - - # Broken vtk-m config. Upstream catalyst changes - patch("vtkm-catalyst-pv551.patch", when="@5.5.0:5.5.2") - - # Broken H5Part with external parallel HDF5 - patch("h5part-parallel.patch", when="@5.7.0:5.7") - - # Broken downstream FindMPI - patch("vtkm-findmpi-downstream.patch", when="@5.9.0") - - # Include limits header wherever needed to fix compilation with GCC 11 - patch("paraview-gcc11-limits.patch", when="@5.8:5.9 %gcc@11.1.0:") + depends_on("cuda@:11", when="@5:5.12 +cuda") # Fix IOADIOS2 module to work with kits # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8653 - patch("vtk-adios2-module-no-kit.patch", when="@5.8:5.11") - - # Patch for paraview 5.9.0%xl_r - # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7591 - patch("xlc-compilation-pv590.patch", when="@5.9.0%xl_r") - - # intel oneapi doesn't compile some code in catalyst - patch("catalyst-etc_oneapi_fix.patch", when="@5.10.0:5.10.1%oneapi") + patch("vtk-adios2-module-no-kit.patch", when="@5:5.11") # Patch for paraview 5.8: ^hdf5@1.13.2: # Even with ~hdf5, hdf5 is part of the dependency tree due to netcdf-c # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/9690 - patch("vtk-xdmf2-hdf51.13.1.patch", when="@5.8:5.10") - patch("vtk-xdmf2-hdf51.13.2.patch", when="@5.8:5.11.0") + patch("vtk-xdmf2-hdf51.13.2.patch", when="@5.11.0") # a patch with the same name is also applied to vtk # the two patches are the same but for the path to the files they patch - patch("vtk_alias_hdf5.patch", when="@5.9.0:") + patch("vtk_alias_hdf5.patch") # Fix VTK to work with external freetype using CONFIG mode for find_package - patch("FindFreetype.cmake.patch", when="@5.10.1:") + patch("FindFreetype.cmake.patch") # Fix VTK to remove deprecated ADIOS2 functions # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10113 - patch("adios2-remove-deprecated-functions.patch", when="@5.10:5.11 ^adios2@2.9:") - - patch("exodusII-netcdf4.9.0.patch", when="@5.10.0:5.10.2") + patch("adios2-remove-deprecated-functions.patch", when="@5.11 ^adios2@2.9:") patch("kits_with_catalyst_5_12.patch", when="@5.12.0") @@ -507,12 +422,7 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): def url_for_version(self, version): _urlfmt = "http://www.paraview.org/files/v{0}/ParaView-v{1}{2}.tar.{3}" # Handle ParaView version-based custom URLs - if version < Version("5.1.0"): - return _urlfmt.format(version.up_to(2), version, "-source", "gz") - elif version < Version("5.6.1"): - return _urlfmt.format(version.up_to(2), version, "", "gz") - else: - return _urlfmt.format(version.up_to(2), version, "", "xz") + return _urlfmt.format(version.up_to(2), version, "", "xz") @property def paraview_subdir(self): @@ -531,10 +441,7 @@ def setup_dependent_build_environment( lib_dir = self.prefix.lib env.set("ParaView_DIR", self.prefix) - if self.spec.version <= Version("5.7.0"): - env.set("PARAVIEW_VTK_DIR", join_path(lib_dir, "cmake", self.paraview_subdir)) - else: - env.set("PARAVIEW_VTK_DIR", join_path(lib_dir, "cmake", self.paraview_subdir, "vtk")) + env.set("PARAVIEW_VTK_DIR", join_path(lib_dir, "cmake", self.paraview_subdir, "vtk")) def flag_handler(self, name, flags): if name == "ldflags" and self.spec.satisfies("%intel"): @@ -548,12 +455,8 @@ def flag_handler(self, name, flags): if name in ("cflags", "cxxflags"): # Constrain the HDF5 API - if self.spec.satisfies("@:5.9 +hdf5"): - if self.spec["hdf5"].satisfies("@1.10:"): - flags.append("-DH5_USE_18_API") - elif self.spec.satisfies("@5.10: +hdf5"): - if self.spec["hdf5"].satisfies("@1.12:"): - flags.append("-DH5_USE_110_API") + if self.spec["hdf5"].satisfies("@1.12:"): + flags.append("-DH5_USE_110_API") if self.spec.satisfies("%oneapi@2025:"): flags.append("-Wno-error=missing-template-arg-list-after-template-kw") @@ -573,65 +476,81 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: env.set("ParaView_DIR", self.prefix) - if self.spec.version <= Version("5.7.0"): - env.set("PARAVIEW_VTK_DIR", join_path(lib_dir, "cmake", self.paraview_subdir)) - else: - env.set("PARAVIEW_VTK_DIR", join_path(lib_dir, "cmake", self.paraview_subdir, "vtk")) - - if self.spec.version <= Version("5.4.1"): - lib_dir = join_path(lib_dir, self.paraview_subdir) + env.set("PARAVIEW_VTK_DIR", join_path(lib_dir, "cmake", self.paraview_subdir, "vtk")) env.prepend_path("LIBRARY_PATH", lib_dir) env.prepend_path("LD_LIBRARY_PATH", lib_dir) if "+python" in self.spec: - if self.spec.version <= Version("5.4.1"): - pv_pydir = join_path(lib_dir, "site-packages") + python_version = self.spec["python"].version.up_to(2) + pv_pydir = join_path(lib_dir, "python{0}".format(python_version), "site-packages") + if "+shared" in self.spec: env.prepend_path("PYTHONPATH", pv_pydir) - env.prepend_path("PYTHONPATH", join_path(pv_pydir, "vtk")) + # The Trilinos Catalyst adapter requires + # the vtkmodules directory in PYTHONPATH + env.prepend_path("PYTHONPATH", join_path(pv_pydir, "vtkmodules")) else: - python_version = self.spec["python"].version.up_to(2) - pv_pydir = join_path(lib_dir, "python{0}".format(python_version), "site-packages") - if "+shared" in self.spec or self.spec.version <= Version("5.7.0"): - env.prepend_path("PYTHONPATH", pv_pydir) - # The Trilinos Catalyst adapter requires - # the vtkmodules directory in PYTHONPATH - env.prepend_path("PYTHONPATH", join_path(pv_pydir, "vtkmodules")) - else: - env.prepend_path("PYTHONPATH", join_path(pv_pydir, "_paraview.zip")) - env.prepend_path("PYTHONPATH", join_path(pv_pydir, "_vtk.zip")) + env.prepend_path("PYTHONPATH", join_path(pv_pydir, "_paraview.zip")) + env.prepend_path("PYTHONPATH", join_path(pv_pydir, "_vtk.zip")) def cmake_args(self): """Populate cmake arguments for ParaView.""" spec = self.spec - def variant_bool(feature, on="ON", off="OFF"): - """Ternary for spec variant to ON/OFF string""" - if spec.satisfies(feature): - return on - return off - - includes = variant_bool("+development_files") + build_edition = spec.variants["build_edition"].value.upper() cmake_args = [ - "-DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=%s" % includes, "-DBUILD_TESTING:BOOL=OFF", "-DOpenGL_GL_PREFERENCE:STRING=LEGACY", + "-DVTK_MODULE_USE_EXTERNAL_ParaView_vtkcatalyst:BOOL=OFF", + "-DVTK_MODULE_USE_EXTERNAL_VTK_ioss:BOOL=OFF", + "-DVTK_MODULE_USE_EXTERNAL_VTK_exprtk:BOOL=OFF", + "-DVTK_MODULE_USE_EXTERNAL_VTK_fmt:BOOL=OFF", + "-DVTK_MODULE_USE_EXTERNAL_ParaView_cgns:BOOL=OFF", + "-DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps:BOOL=OFF", + "-DVTK_MODULE_USE_EXTERNAL_VTK_libharu:BOOL=OFF", + "-DVTK_MODULE_USE_EXTERNAL_VTK_utf8:BOOL=OFF", + "-DPARAVIEW_BUILD_WITH_EXTERNAL=ON", + f"-DPARAVIEW_BUILD_EDITION:STRING={build_edition}", + self.define_from_variant("PARAVIEW_INSTALL_DEVELOPMENT_FILES", "development_files"), self.define_from_variant("VTK_USE_X", "x"), self.define_from_variant("PARAVIEW_ENABLE_VISITBRIDGE", "visitbridge"), self.define_from_variant("VISIT_BUILD_READER_Silo", "visitbridge"), + self.define_from_variant("PARAVIEW_BUILD_WITH_KITS", "kits"), + self.define_from_variant("PARAVIEW_BUILD_PAGOSA_ADAPTOR", "pagosa"), + self.define_from_variant("PARAVIEW_BUILD_PLUGIN_EyeDomeLighting", "eyedomelighting"), + self.define_from_variant("PARAVIEW_PLUGIN_ENABLE_pvNVIDIAIndeX", "nvindex"), + self.define_from_variant("PARAVIEW_USE_QT", "qt"), + self.define_from_variant("PARAVIEW_ENABLE_EXAMPLES", "examples"), + self.define_from_variant("PARAVIEW_ENABLE_ADIOS2", "adios2"), + self.define_from_variant("PARAVIEW_ENABLE_FIDES", "fides"), + self.define_from_variant("PARAVIEW_USE_FORTRAN", "fortran"), + self.define_from_variant("PARAVIEW_USE_CUDA", "cuda"), + self.define_from_variant("PARAVIEW_USE_MPI", "mpi"), + self.define_from_variant("PARAVIEW_BUILD_SHARED_LIBS", "shared"), + self.define_from_variant("PARAVIEW_ENABLE_RAYTRACING", "raytracing"), + # Currently only support OSPRay ray tracing + self.define_from_variant("VTK_ENABLE_OSPRAY", "raytracing"), + self.define_from_variant("VTKOSPRAY_ENABLE_DENOISER", "raytracing"), + # CDI + self.define_from_variant("PARAVIEW_PLUGIN_ENABLE_CDIReader", "cdi"), + self.define_from_variant("PARAVIEW_PLUGIN_AUTOLOAD_CDIReader", "cdi"), ] - if spec.satisfies("@:5"): - cmake_args.append( - "-DVTK_OPENGL_HAS_OSMESA:BOOL=%s" % variant_bool("^[virtuals=gl] osmesa") - ) + # Configure OSMesa + if spec.satisfies("@5"): + if spec.satisfies("^[virtuals=gl] osmesa"): + cmake_args.append("-DVTK_OPENGL_HAS_OSMESA:BOOL=ON") + else: + cmake_args.append("-DVTK_OPENGL_HAS_OSMESA:BOOL=OFF") else: cmake_args.append(self.define_from_variant("VTK_OPENGL_HAS_OSMESA", "osmesa_fallback")) + # Configure EGL if spec.satisfies("^[virtuals=gl] egl"): cmake_args.append("-DVTK_OPENGL_HAS_EGL:BOOL=ON") + # Disable patched externals if spec.satisfies("@5.12:"): cmake_args.append("-DVTK_MODULE_USE_EXTERNAL_VTK_fast_float:BOOL=OFF") cmake_args.append("-DVTK_MODULE_USE_EXTERNAL_VTK_token:BOOL=OFF") @@ -639,74 +558,8 @@ def variant_bool(feature, on="ON", off="OFF"): if spec.satisfies("@5.11:"): cmake_args.append("-DVTK_MODULE_USE_EXTERNAL_VTK_verdict:BOOL=OFF") - if spec.satisfies("@5.10:"): - cmake_args.extend( - [ - "-DVTK_MODULE_USE_EXTERNAL_ParaView_vtkcatalyst:BOOL=OFF", - "-DVTK_MODULE_USE_EXTERNAL_VTK_ioss:BOOL=OFF", - "-DVTK_MODULE_USE_EXTERNAL_VTK_exprtk:BOOL=OFF", - "-DVTK_MODULE_USE_EXTERNAL_VTK_fmt:BOOL=OFF", - ] - ) - - if spec.satisfies("@:5.7") and spec["cmake"].satisfies("@3.17:"): - cmake_args.append("-DFPHSA_NAME_MISMATCHED:BOOL=ON") - - if spec.satisfies("@5.7:"): - if spec.satisfies("@5.8:"): - cmake_args.extend( - [ - "-DPARAVIEW_BUILD_EDITION:STRING=%s" - % spec.variants["build_edition"].value.upper(), - "-DPARAVIEW_USE_QT:BOOL=%s" % variant_bool("+qt"), - "-DPARAVIEW_BUILD_WITH_EXTERNAL=ON", - ] - ) - if spec.satisfies("%cce"): - cmake_args.append("-DVTK_PYTHON_OPTIONAL_LINK:BOOL=OFF") - else: # @5.7: - cmake_args.extend( - [ - "-DPARAVIEW_ENABLE_CATALYST:BOOL=ON", - "-DPARAVIEW_BUILD_QT_GUI:BOOL=%s" % variant_bool("+qt"), - "-DPARAVIEW_USE_EXTERNAL:BOOL=ON", - ] - ) - - cmake_args.extend( - [ - "-DPARAVIEW_ENABLE_EXAMPLES:BOOL=%s" % variant_bool("+examples"), - "-DVTK_MODULE_USE_EXTERNAL_ParaView_cgns=OFF", - "-DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps=OFF", - "-DVTK_MODULE_USE_EXTERNAL_VTK_libharu=OFF", - "-DVTK_MODULE_USE_EXTERNAL_VTK_utf8=OFF", - ] - ) - else: - rendering = variant_bool("+opengl2", "OpenGL2", "OpenGL") - cmake_args.extend( - [ - "-DPARAVIEW_BUILD_EXAMPLES:BOOL=%s" % variant_bool("+examples"), - "-DVTK_RENDERING_BACKEND:STRING=%s" % rendering, - "-DPARAVIEW_BUILD_QT_GUI:BOOL=%s" % variant_bool("+qt"), - "-DVTK_USE_SYSTEM_LIBRARIES:BOOL=ON", - "-DVTK_USE_SYSTEM_CGNS:BOOL=OFF", - "-DVTK_USE_SYSTEM_DIY2:BOOL=OFF", - "-DVTK_USE_SYSTEM_GL2PS:BOOL=OFF", - "-DVTK_USE_SYSTEM_ICET:BOOL=OFF", - "-DVTK_USE_SYSTEM_LIBHARU:BOOL=OFF", - "-DVTK_USE_SYSTEM_NETCDFCPP:BOOL=OFF", - "-DVTK_USE_SYSTEM_UTF8:BOOL=OFF", - "-DVTK_USE_SYSTEM_XDMF2:BOOL=OFF", - "-DVTK_USE_SYSTEM_XDMF3:BOOL=OFF", - ] - ) - - if "+adios2" in spec: - cmake_args.extend(["-DPARAVIEW_ENABLE_ADIOS2:BOOL=ON"]) - - if "+fides" in spec: - cmake_args.append("-DPARAVIEW_ENABLE_FIDES:BOOL=ON") + if spec.satisfies("%cce"): + cmake_args.append("-DVTK_PYTHON_OPTIONAL_LINK:BOOL=OFF") # The assumed qt version changed to QT5 (as of paraview 5.2.1), # so explicitly specify which QT major version is actually being used @@ -721,28 +574,18 @@ def variant_bool(feature, on="ON", off="OFF"): # Windows does not currently support Qt Quick cmake_args.append("-DVTK_MODULE_ENABLE_VTK_GUISupportQtQuick:STRING=NO") - if "+fortran" in spec: - cmake_args.append("-DPARAVIEW_USE_FORTRAN:BOOL=ON") - # CMake flags for python have changed with newer ParaView versions # Make sure Spack uses the right cmake flags if "+python" in spec: - py_use_opt = "USE" if spec.satisfies("@5.8:") else "ENABLE" - py_ver_opt = "PARAVIEW" if spec.satisfies("@5.7:") else "VTK" - py_ver_val = 3 cmake_args.extend( [ - "-DPARAVIEW_%s_PYTHON:BOOL=ON" % py_use_opt, - "-D%s_PYTHON_VERSION:STRING=%d" % (py_ver_opt, py_ver_val), + "-DPARAVIEW_USE_PYTHON:BOOL=ON", + "-DPARAVIEW_PYTHON_VERSION:STRING=3", ] ) - if spec.satisfies("@:5.6"): - cmake_args.append("-DVTK_USE_SYSTEM_MPI4PY:BOOL=%s" % variant_bool("+mpi")) - else: cmake_args.append("-DPARAVIEW_ENABLE_PYTHON:BOOL=OFF") - cmake_args.append("-DPARAVIEW_USE_MPI:BOOL=%s" % variant_bool("+mpi")) if "+mpi" in spec: mpi_args = ["-DMPIEXEC:FILEPATH=%s/bin/mpiexec" % spec["mpi"].prefix] if not sys.platform == "win32": @@ -755,10 +598,8 @@ def variant_bool(feature, on="ON", off="OFF"): ) cmake_args.extend(mpi_args) - cmake_args.append("-DPARAVIEW_BUILD_SHARED_LIBS:BOOL=%s" % variant_bool("+shared")) - - # VTK-m added to ParaView in 5.3.0 and up - if spec.satisfies("@5.3.0:5") and spec.variants["use_vtkm"].value != "default": + # VTK-m used in ParaView in 5.x + if spec.satisfies("@5") and spec.variants["use_vtkm"].value != "default": cmake_args.append( "-DPARAVIEW_USE_VTKM:BOOL=%s" % spec.variants["use_vtkm"].value.upper() ) @@ -774,15 +615,8 @@ def variant_bool(feature, on="ON", off="OFF"): else: cmake_args.append("-DPARAVIEW_USE_VISKORES:BOOL=OFF") - if spec.satisfies("@5.8:"): - cmake_args.append("-DPARAVIEW_USE_CUDA:BOOL=%s" % variant_bool("+cuda")) - elif spec.satisfies("@5.7:"): - cmake_args.append("-DVTK_USE_CUDA:BOOL=%s" % variant_bool("+cuda")) - else: - cmake_args.append("-DVTKm_ENABLE_CUDA:BOOL=%s" % variant_bool("+cuda")) - # VTK-m expects cuda_arch to be the arch name vs. the arch version. - if spec.satisfies("@:5 +cuda"): + if spec.satisfies("@5 +cuda"): if spec["cmake"].satisfies("@3.18:"): cmake_args.append( self.define( @@ -808,33 +642,9 @@ def variant_bool(feature, on="ON", off="OFF"): ["-DVTK_USE_X:BOOL=OFF", "-DPARAVIEW_DO_UNIX_STYLE_INSTALLS:BOOL=ON"] ) - if "+kits" in spec: - if spec.satisfies("@5.0:5.6"): - cmake_args.append("-DVTK_ENABLE_KITS:BOOL=ON") - elif spec.satisfies("@5.7"): - # cmake_args.append('-DPARAVIEW_ENABLE_KITS:BOOL=ON') - # Kits are broken with 5.7 - cmake_args.append("-DPARAVIEW_ENABLE_KITS:BOOL=OFF") - else: - cmake_args.append("-DPARAVIEW_BUILD_WITH_KITS:BOOL=ON") - - if "+pagosa" in spec: - cmake_args.append("-DPARAVIEW_BUILD_PAGOSA_ADAPTOR:BOOL=ON") - - if "+eyedomelighting" in spec: - cmake_args.append("-DPARAVIEW_BUILD_PLUGIN_EyeDomeLighting:BOOL=ON") - if "+tbb" in spec: cmake_args.append("-DVTK_SMP_IMPLEMENTATION_TYPE=TBB") - if "+nvindex" in spec: - cmake_args.append("-DPARAVIEW_PLUGIN_ENABLE_pvNVIDIAIndeX:BOOL=ON") - - # Hide git from Paraview so it will not use `git describe` - # to find its own version number - if spec.satisfies("@5.4.0:5.4.1"): - cmake_args.extend(["-DGIT_EXECUTABLE=FALSE"]) - # A bug that has been found in vtk causes an error for # intel builds for version 5.6. This should be revisited # with later versions of Paraview to see if the issues still @@ -852,9 +662,9 @@ def variant_bool(feature, on="ON", off="OFF"): # Configure ROCM/Kokkos if spec.satisfies("@5.11:5"): - cmake_args.append("-DPARAVIEW_USE_HIP:BOOL=%s" % variant_bool("+rocm")) + cmake_args.append(self.define_from_variant("PARAVIEW_USE_HIP", "rocm")) elif spec.satisfies("@6:"): - cmake_args.append("-DPARAVIEW_USE_KOKKOS:BOOL=%s" % variant_bool("+rocm")) + cmake_args.append(self.define_from_variant("PARAVIEW_USE_KOKKOS", "rocm")) if "+rocm" in spec: if spec.satisfies("@6:"): @@ -876,15 +686,6 @@ def variant_bool(feature, on="ON", off="OFF"): cmake_args.append("-DVTK_MODULE_ENABLE_ParaView_InSitu=YES") cmake_args.append("-DPARAVIEW_ENABLE_CATALYST=YES") - cmake_args.append(self.define_from_variant("PARAVIEW_ENABLE_RAYTRACING", "raytracing")) - # Currently only support OSPRay ray tracing - cmake_args.append(self.define_from_variant("VTK_ENABLE_OSPRAY", "raytracing")) - cmake_args.append(self.define_from_variant("VTKOSPRAY_ENABLE_DENOISER", "raytracing")) - - # CDI - cmake_args.append(self.define_from_variant("PARAVIEW_PLUGIN_ENABLE_CDIReader", "cdi")) - cmake_args.append(self.define_from_variant("PARAVIEW_PLUGIN_AUTOLOAD_CDIReader", "cdi")) - return cmake_args def test_smoke_test(self): diff --git a/repos/spack_repo/builtin/packages/paraview/vtk-consolidate-viskores-wrapping-pv61.patch b/repos/spack_repo/builtin/packages/paraview/vtk-consolidate-viskores-wrapping-pv61.patch index 5c6c5281ab6..21c7f46224f 100644 --- a/repos/spack_repo/builtin/packages/paraview/vtk-consolidate-viskores-wrapping-pv61.patch +++ b/repos/spack_repo/builtin/packages/paraview/vtk-consolidate-viskores-wrapping-pv61.patch @@ -19,10 +19,9 @@ flags. Accelerators/Vtkm/DataModel/CMakeLists.txt | 29 +---------------- .../Vtkm/DataModel/Testing/Cxx/CMakeLists.txt | 28 ---------------- Accelerators/Vtkm/Filters/CMakeLists.txt | 26 +-------------- - .../Vtkm/Filters/Testing/Cxx/CMakeLists.txt | 25 --------------- IO/CatalystConduit/CMakeLists.txt | 19 ++--------- ThirdParty/viskores/CMakeLists.txt | 17 +++++++++- - 9 files changed, 21 insertions(+), 186 deletions(-) + 8 files changed, 21 insertions(+), 186 deletions(-) diff --git a/Accelerators/Vtkm/Core/CMakeLists.txt b/Accelerators/Vtkm/Core/CMakeLists.txt index 0501715be03..3e863bc7b4c 100644 @@ -241,48 +240,11 @@ index 4eb9989da51..c24edd94be7 100644 if (MSVC) set(msvc_warning_flags -diff --git a/Accelerators/Vtkm/Filters/Testing/Cxx/CMakeLists.txt b/Accelerators/Vtkm/Filters/Testing/Cxx/CMakeLists.txt -index d72f0bd7ffe..6f6ec073cb7 100644 ---- a/Accelerators/Vtkm/Filters/Testing/Cxx/CMakeLists.txt -+++ b/Accelerators/Vtkm/Filters/Testing/Cxx/CMakeLists.txt -@@ -28,32 +28,7 @@ vtk_add_test_cxx(vtkAcceleratorsVTKmFiltersCxxTests tests - TestVTKMWarpVector.cxx,NO_SERDES - ) - --if (TARGET VTK::vtkviskores_cuda) -- foreach(src IN LISTS tests) -- string(REPLACE "," ";" src ${src}) -- list(GET src 0 src) -- -- set_source_files_properties(${src} PROPERTIES LANGUAGE CUDA) -- endforeach() -- -- #the tests aren't scoped as a child directory of vtkAcceleratorsVTKmFilters -- #so we need to redo this logic -- viskores_get_cuda_flags(CMAKE_CUDA_FLAGS) -- -- # Temporarily suppress "has address taken but no possible call to it" warnings, -- # until we figure out its implications. -- # We are disabling all warnings as nvlink has no known way to suppress -- # individual warning types. -- string(APPEND CMAKE_CUDA_FLAGS " -Xnvlink -w") -- --endif() -- - - vtk_test_cxx_executable(vtkAcceleratorsVTKmFiltersCxxTests tests - RENDERING_FACTORY - ) -- --if (TARGET VTK::vtkviskores_cuda) -- set_target_properties(vtkAcceleratorsVTKmFiltersCxxTests PROPERTIES -- CUDA_ARCHITECTURES OFF) --endif() diff --git a/IO/CatalystConduit/CMakeLists.txt b/IO/CatalystConduit/CMakeLists.txt index 91d60f1638c..d1d6049279a 100644 --- a/IO/CatalystConduit/CMakeLists.txt +++ b/IO/CatalystConduit/CMakeLists.txt -@@ -16,23 +16,8 @@ vtk_module_add_module(VTK::IOCatalystConduit +@@ -16,23 +16,10 @@ vtk_module_add_module(VTK::IOCatalystConduit CLASSES ${classes} PRIVATE_CLASSES ${private_classes}) @@ -304,7 +266,9 @@ index 91d60f1638c..d1d6049279a 100644 -endif () - +_vtk_module_real_target(vtkm_accel_target VTK::IOCatalystConduit) -+vtk_add_viskores_device_target_information(${vtkm_accel_target}) ++if (TARGET VTK::vtkviskores) ++ vtk_add_viskores_device_target_information(${vtkm_accel_target}) ++endif() vtk_add_test_mangling(VTK::IOCatalystConduit) add_subdirectory(Catalyst) diff --git a/repos/spack_repo/builtin/packages/pelican/package.py b/repos/spack_repo/builtin/packages/pelican/package.py index de8f67a87d3..fdaa4e1d8fe 100644 --- a/repos/spack_repo/builtin/packages/pelican/package.py +++ b/repos/spack_repo/builtin/packages/pelican/package.py @@ -26,6 +26,8 @@ class Pelican(GoPackage): depends_on("go@1.25:", type="build") + build_directory = "cmd" + @run_before("build", when="@:7.24") def create_frontend_placeholder(self): # web_ui/ui.go uses //go:embed frontend/out/*, which requires at least one @@ -36,26 +38,18 @@ def create_frontend_placeholder(self): mkdirp(out_dir) touch(join_path(out_dir, "placeholder")) - build_directory = "cmd" + @property + def ldflags(self): + return [f"-X github.com/pelicanplatform/pelican/version.version={self.spec.version}"] @property def build_args(self): # Build only the CLI client binary (no web frontend embedded) - args = super().build_args - version_ldflag = ( - f"-X github.com/pelicanplatform/pelican/version.version={self.spec.version}" - ) - if "-ldflags" in args: - args[args.index("-ldflags") + 1] += f" {version_ldflag}" - else: - args.extend(["-ldflags", version_ldflag]) - args.extend(["-tags", "forceposix,client"]) - return args + return ["-tags", "forceposix,client"] @run_after("build", when="+server") def build_server(self): - args = list(self.build_args) - args[args.index("-tags") + 1] = "forceposix,server" + args = [*self.std_build_args, "-tags", "forceposix,server"] args[args.index("-o") + 1] = "pelican-server" with working_dir(self.build_directory): go("build", *args) diff --git a/repos/spack_repo/builtin/packages/petsc/package.py b/repos/spack_repo/builtin/packages/petsc/package.py index 5786a522d92..314c04349fb 100644 --- a/repos/spack_repo/builtin/packages/petsc/package.py +++ b/repos/spack_repo/builtin/packages/petsc/package.py @@ -24,6 +24,7 @@ class Petsc(Package, CudaPackage, ROCmPackage): tags = ["e4s"] version("main", branch="main") + version("3.25.2", sha256="03fbcfb72e28dbd92eac042faf7a4ba7e75e602fd1c9af0676f78e0a762412ec") version("3.25.1", sha256="d9d9518110aea1f8f5444985cc1a95273ab140cdbcd2c2038c6309a3b611abb4") version("3.25.0", sha256="dc1c018c16bd9dcf40596959875725edb4ba8b854a0b67bbce62a0d4be1bd3be") version("3.24.6", sha256="d6ad14652996b0e0d3da51068eec902118057f275de867e8cf258ffd64d90a7d") diff --git a/repos/spack_repo/builtin/packages/pfunit/package.py b/repos/spack_repo/builtin/packages/pfunit/package.py index 90ea30f223c..aab7ef38fbd 100644 --- a/repos/spack_repo/builtin/packages/pfunit/package.py +++ b/repos/spack_repo/builtin/packages/pfunit/package.py @@ -23,6 +23,8 @@ class Pfunit(CMakePackage): license("NASA-1.3", checked_by="mathomp4", when="@:4.16") license("Apache-2.0", checked_by="mathomp4", when="@4.17:") + version("4.19.0", sha256="ec84e2e17d79598d782edc5468e7ebfe392ccf5aff9170a15c10f0b52f9f62b4") + version("4.18.2", sha256="d2bdc52372e42d8f0e27d06325c73ce0133b886d207cb5efb6d7fc6f0b536f48") version("4.18.1", sha256="34654ac27c3498333210cac480d6319d3d8c0230057fd0974f3e3c4d656b8cd9") version("4.18.0", sha256="e1beb32e95f487423720b85bbb8314f46af5321f3ed0d06cf0122bc479ecb812") version("4.17.1", sha256="de3d3a9d097762e41763035b1e8f39edfce7606c7ccda01839ca6331580ef38c") diff --git a/repos/spack_repo/builtin/packages/pprof/package.py b/repos/spack_repo/builtin/packages/pprof/package.py index 1a88061a8b8..bd057f5d193 100644 --- a/repos/spack_repo/builtin/packages/pprof/package.py +++ b/repos/spack_repo/builtin/packages/pprof/package.py @@ -14,23 +14,22 @@ class Pprof(GoPackage): git = "https://github.com/google/pprof.git" maintainers("mcmehrtens") + license("Apache-2.0", checked_by="mcmehrtens") + sanity_check_is_file = ["bin/pprof"] + # pprof doesn't have tagged releases version("main", branch="main", get_full_repo=True) - # pprof's go.mod requires go 1.24; Go supports the two most recent - # major releases, so this will need updating with new Go releases. - depends_on("go@1.24:", type="build") - variant( "graphviz", default=True, description="Enable graphic visualization of profiles (SVG, PDF, etc.)", ) - depends_on("graphviz", type="run", when="+graphviz") + # pprof's go.mod requires go 1.24; Go supports the two most recent + # major releases, so this will need updating with new Go releases. + depends_on("go@1.24:", type="build") - @property - def sanity_check_is_file(self): - return [join_path("bin", "pprof")] + depends_on("graphviz", type="run", when="+graphviz") diff --git a/repos/spack_repo/builtin/packages/py_aiohttp/package.py b/repos/spack_repo/builtin/packages/py_aiohttp/package.py index 0670f75ceec..2fec2269649 100644 --- a/repos/spack_repo/builtin/packages/py_aiohttp/package.py +++ b/repos/spack_repo/builtin/packages/py_aiohttp/package.py @@ -20,8 +20,13 @@ class PyAiohttp(PythonPackage): license("Apache-2.0 AND MIT", when="@3.13:") license("Apache-2.0", when="@:3.12") - version("3.13.5", sha256="9d98cc980ecc96be6eb4c1994ce35d28d8b1f5e5208a23b421187d1209dbb7d1") + version("3.14.0", sha256="2882de819734c715fd1b9c11c97e09fa020d14438203d1d354d8ed1702791c9b") with default_args(deprecated=True): + # https://www.cve.org/CVERecord?id=CVE-2026-47265 + # https://www.cve.org/CVERecord?id=CVE-2026-34993 + version( + "3.13.5", sha256="9d98cc980ecc96be6eb4c1994ce35d28d8b1f5e5208a23b421187d1209dbb7d1" + ) # https://www.cvedetails.com/cve/CVE-2025-69230/ # https://www.cvedetails.com/cve/CVE-2025-69229/ # https://www.cvedetails.com/cve/CVE-2025-69228/ diff --git a/repos/spack_repo/builtin/packages/py_anyio/package.py b/repos/spack_repo/builtin/packages/py_anyio/package.py index 52521ce659c..292224659f2 100644 --- a/repos/spack_repo/builtin/packages/py_anyio/package.py +++ b/repos/spack_repo/builtin/packages/py_anyio/package.py @@ -25,6 +25,10 @@ class PyAnyio(PythonPackage): version("3.3.4", sha256="67da67b5b21f96b9d3d65daa6ea99f5d5282cb09f50eb4456f8fb51dffefc3ff") version("3.2.1", sha256="07968db9fa7c1ca5435a133dc62f988d84ef78e1d9b22814a59d1c62618afbc5") + depends_on("python@3.8:", when="@4:") + depends_on("python@3.9:", when="@4.6:") + depends_on("python@3.10:", when="@4.13:") + with default_args(type="build"): depends_on("py-setuptools@77:", when="@4.12:") depends_on("py-setuptools@64:", when="@3.7:") diff --git a/repos/spack_repo/builtin/packages/py_apprise/package.py b/repos/spack_repo/builtin/packages/py_apprise/package.py new file mode 100644 index 00000000000..1d61bcde23d --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_apprise/package.py @@ -0,0 +1,30 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyApprise(PythonPackage): + """Apprise - Push Notifications that work with just about every platform!""" + + homepage = "https://github.com/caronc/apprise" + pypi = "apprise/apprise-1.9.6.tar.gz" + + version("1.9.6", sha256="4206be9cb5694a3d08dd8e0393bbb9b36212ac3a7769c2633620055e75c6caef") + + license("BSD-2-Clause") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-setuptools@69:", type="build") + + depends_on("py-requests", type=("build", "run")) + depends_on("py-requests-oauthlib", type=("build", "run")) + depends_on("py-click@5:", type=("build", "run")) + depends_on("py-markdown", type=("build", "run")) + depends_on("py-pyyaml", type=("build", "run")) + depends_on("py-certifi", type=("build", "run")) + depends_on("py-tzdata", when="platform=windows", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_archspec/package.py b/repos/spack_repo/builtin/packages/py_archspec/package.py index c6cb139ff72..ce3a4740193 100644 --- a/repos/spack_repo/builtin/packages/py_archspec/package.py +++ b/repos/spack_repo/builtin/packages/py_archspec/package.py @@ -18,6 +18,7 @@ class PyArchspec(PythonPackage): license("Apache-2.0 AND MIT", checked_by="wdconinc") + version("0.2.6", sha256="2ea980955530499865225eff917b649b39fd014b53f8c6461b6348c1d8b866f1") version("0.2.5", sha256="5bec8dfc5366ff299071200466dc9572d56db4e43abca3c66bdd62bc2b731a2a") version("0.2.4", sha256="eabbae22f315d24cc2ce786a092478ec8e245208c9877fb213c2172a6ecb9302") version("0.2.3", sha256="d07deb5b6e2ab3b74861e217523d02e69be8522f6e6565f4cc5d2062eb1a5d2c") diff --git a/repos/spack_repo/builtin/packages/py_asgi_lifespan/package.py b/repos/spack_repo/builtin/packages/py_asgi_lifespan/package.py new file mode 100644 index 00000000000..c5196e3b131 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_asgi_lifespan/package.py @@ -0,0 +1,24 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyAsgiLifespan(PythonPackage): + """Programmatic startup/shutdown of ASGI apps.""" + + homepage = "https://github.com/florimondmanca/asgi-lifespan" + pypi = "asgi-lifespan/asgi-lifespan-2.1.0.tar.gz" + + license("MIT") + + version("2.1.0", sha256="5e2effaf0bfe39829cf2d64e7ecc47c7d86d676a6599f7afba378c31f5e3a308") + + depends_on("python@3.7:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-setuptools-scm", type="build") + + depends_on("py-sniffio", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_ast_serialize/package.py b/repos/spack_repo/builtin/packages/py_ast_serialize/package.py new file mode 100644 index 00000000000..3ba4e21b908 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_ast_serialize/package.py @@ -0,0 +1,20 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyAstSerialize(PythonPackage): + """Python bindings for mypy AST serialization.""" + + homepage = "https://github.com/mypyc/ast_serialize" + pypi = "ast_serialize/ast_serialize-0.5.0.tar.gz" + + license("MIT") + + version("0.5.0", sha256="5880091bfe6f4f986f22866375c2e884843e7a0b6343ae41aeea659613d879b6") + + depends_on("py-maturin@1.9", type="build") diff --git a/repos/spack_repo/builtin/packages/py_asyncpg/package.py b/repos/spack_repo/builtin/packages/py_asyncpg/package.py new file mode 100644 index 00000000000..1c07edcab68 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_asyncpg/package.py @@ -0,0 +1,23 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyAsyncpg(PythonPackage): + """A fast PostgreSQL Database Client Library for Python/asyncio.""" + + homepage = "https://github.com/MagicStack/asyncpg" + pypi = "asyncpg/asyncpg-0.31.0.tar.gz" + + version("0.31.0", sha256="c989386c83940bfbd787180f2b1519415e2d3d6277a70d9d0f0145ac73500735") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-setuptools@77.0.3:", type="build") + depends_on("py-cython@3.2.1:3", type="build") + + depends_on("py-async-timeout@4.0.3:", when="^python@:3.10", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_beartype/package.py b/repos/spack_repo/builtin/packages/py_beartype/package.py index 0e14dd08238..3bd51d5b773 100644 --- a/repos/spack_repo/builtin/packages/py_beartype/package.py +++ b/repos/spack_repo/builtin/packages/py_beartype/package.py @@ -15,11 +15,13 @@ class PyBeartype(PythonPackage): license("MIT") + version("0.22.9", sha256="8f82b54aa723a2848a56008d18875f91c1db02c32ef6a62319a002e3e25a975f") version("0.21.0", sha256="f9a5078f5ce87261c2d22851d19b050b64f6a805439e8793aecf01ce660d3244") version("0.16.2", sha256="47ec1c8c3be3f999f4f9f829e8913f65926aa7e85b180d9ffd305dc78d3e7d7b") version("0.15.0", sha256="2af6a8d8a7267ccf7d271e1a3bd908afbc025d2a09aa51123567d7d7b37438df") # See PYTHON_VERSION_MIN in beartype/meta.py + depends_on("python@3.10:", when="@0.22.4:", type=("build", "run")) depends_on("python@3.9:", type=("build", "run"), when="@0.21.0:") depends_on("python@3.8:", type=("build", "run")) depends_on("py-hatchling@1.14:", type="build", when="@0.19:") diff --git a/repos/spack_repo/builtin/packages/py_bids_validator_deno/package.py b/repos/spack_repo/builtin/packages/py_bids_validator_deno/package.py index 9a53cafc62d..6e99787c9eb 100644 --- a/repos/spack_repo/builtin/packages/py_bids_validator_deno/package.py +++ b/repos/spack_repo/builtin/packages/py_bids_validator_deno/package.py @@ -15,6 +15,7 @@ class PyBidsValidatorDeno(PythonPackage): license("MIT") + version("2.4.1", sha256="a79b4af2818a200ff5a597715a3c1050ae93be7cb523bcfef54b93af057d8466") version("2.4.0", sha256="78cd6bc4d43aa6b17555185181c74b22e2ccaea8c3494175b6524807b467aa94") version("2.0.7", sha256="55a46dc9e134c2996ecb077896aad65e5320f3c864b41c47e108011f8fd1e2d1") diff --git a/repos/spack_repo/builtin/packages/py_boto3/package.py b/repos/spack_repo/builtin/packages/py_boto3/package.py index 9b6036f788c..f863be580c1 100644 --- a/repos/spack_repo/builtin/packages/py_boto3/package.py +++ b/repos/spack_repo/builtin/packages/py_boto3/package.py @@ -15,6 +15,7 @@ class PyBoto3(PythonPackage): license("Apache-2.0") + version("1.43.17", sha256="8cf48babdd52ff0e2d891dc661143780b361d3776a3be06cd719da0696995074") version("1.42.85", sha256="1cd3dcbfaba85c6071ba9397c1804b6a94a1a97031b8f1993fdba27c0c5d6eba") version("1.40.64", sha256="b92d6961c352f2bb8710c9892557d4b0e11258b70967d4e740e1c97375bcd779") version("1.34.162", sha256="873f8f5d2f6f85f1018cbb0535b03cceddc7b655b61f66a0a56995238804f41f") @@ -37,7 +38,8 @@ class PyBoto3(PythonPackage): version("1.9.253", sha256="d93f1774c4bc66e02acdda2067291acb9e228a035435753cb75f83ad2904cbe3") version("1.9.169", sha256="9d8bd0ca309b01265793b7e8d7b88c1df439737d77c8725988f0277bbf58d169") - depends_on("python@3.9:", when="@1.38:", type=("build", "run")) + depends_on("python@3.10:", when="@1.43:", type=("build", "run")) + depends_on("python@3.9:", when="@1.38:1.42", type=("build", "run")) depends_on("python@3.7:", when="@1.26:", type=("build", "run")) depends_on("python@3.6:", when="@1.18:", type=("build", "run")) depends_on("python@2.7:2.8,3.6:", when="@1.17:", type=("build", "run")) @@ -45,6 +47,7 @@ class PyBoto3(PythonPackage): depends_on("py-setuptools", type="build") with default_args(type=("build", "run")): + depends_on("py-botocore@1.43.17:1.43", when="@1.43.17") depends_on("py-botocore@1.42.85:1.42", when="@1.42.85") depends_on("py-botocore@1.40.64:1.40", when="@1.40.64") depends_on("py-botocore@1.34.162:1.34", when="@1.34.162") @@ -65,7 +68,8 @@ class PyBoto3(PythonPackage): depends_on("py-jmespath@0.7.1:1") depends_on("py-jmespath@0.7.1:0", when="@:1.20") - depends_on("py-s3transfer@0.16", when="@1.42:") + depends_on("py-s3transfer@0.18", when="@1.43:") + depends_on("py-s3transfer@0.16", when="@1.42:1.42") depends_on("py-s3transfer@0.14", when="@1.40.27:1.41.0") depends_on("py-s3transfer@0.10", when="@1.34.6:1.35") depends_on("py-s3transfer@0.9", when="@1.34:1.34.5") diff --git a/repos/spack_repo/builtin/packages/py_botocore/package.py b/repos/spack_repo/builtin/packages/py_botocore/package.py index 1ed1a9669da..50868ec47a4 100644 --- a/repos/spack_repo/builtin/packages/py_botocore/package.py +++ b/repos/spack_repo/builtin/packages/py_botocore/package.py @@ -15,6 +15,7 @@ class PyBotocore(PythonPackage): license("Apache-2.0") + version("1.43.17", sha256="27f4ecb80cf1e5be70415fc4a4d3db3907d41ef8178c9df822364f275427d375") version("1.42.85", sha256="2ee61f80b7724a143e16d0a85408ef5fa20b99dce7a3c8ec5d25cc8dced164c1") version("1.40.64", sha256="a13af4009f6912eafe32108f6fa584fb26e24375149836c2bcaaaaec9a7a9e58") version("1.34.162", sha256="adc23be4fb99ad31961236342b7cbf3c0bfc62532cd02852196032e8c0d682f3") @@ -44,7 +45,8 @@ class PyBotocore(PythonPackage): version("1.12.253", sha256="3baf129118575602ada9926f5166d82d02273c250d0feb313fc270944b27c48b") version("1.12.169", sha256="25b44c3253b5ed1c9093efb57ffca440c5099a2d62fa793e8b6c52e72f54b01e") - depends_on("python@3.9:", when="@1.38:", type=("build", "run")) + depends_on("python@3.10:", when="@1.43:", type=("build", "run")) + depends_on("python@3.9:", when="@1.38:1.42", type=("build", "run")) depends_on("py-setuptools", type="build") with default_args(type=("build", "run")): diff --git a/repos/spack_repo/builtin/packages/py_cachetools/package.py b/repos/spack_repo/builtin/packages/py_cachetools/package.py index 2ed44461435..23a13ed2030 100644 --- a/repos/spack_repo/builtin/packages/py_cachetools/package.py +++ b/repos/spack_repo/builtin/packages/py_cachetools/package.py @@ -19,6 +19,7 @@ class PyCachetools(PythonPackage): version("7.1.1", sha256="27bdf856d68fd3c71c26c01b5edc312124ed427524d1ddb31aa2b7746fe20d4b") version("6.2.6", sha256="16c33e1f276b9a9c0b49ab5782d901e3ad3de0dd6da9bf9bcd29ac5672f2f9e6") + version("6.2.4", sha256="82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607") version("5.5.2", sha256="1a661caa9175d26759571b2e19580f9d6393969e5dfca11fdb1f947a23e640d4") version("5.2.0", sha256="6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757") version("4.2.4", sha256="89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693") diff --git a/repos/spack_repo/builtin/packages/py_coolname/package.py b/repos/spack_repo/builtin/packages/py_coolname/package.py new file mode 100644 index 00000000000..4baa0602225 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_coolname/package.py @@ -0,0 +1,19 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyCoolname(PythonPackage): + """Random name and slug generator.""" + + homepage = "https://github.com/alexanderlukanin13/coolname" + pypi = "coolname/coolname-2.2.0.tar.gz" + + version("2.2.0", sha256="6c5d5731759104479e7ca195a9b64f7900ac5bead40183c09323c7d0be9e75c7") + + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_cuda_pathfinder/package.py b/repos/spack_repo/builtin/packages/py_cuda_pathfinder/package.py new file mode 100644 index 00000000000..1609cd2dffe --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_cuda_pathfinder/package.py @@ -0,0 +1,42 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyCudaPathfinder(PythonPackage): + """Pathfinder for CUDA components""" + + homepage = "https://nvidia.github.io/cuda-python/cuda-pathfinder" + url = "https://files.pythonhosted.org/packages/py3/c/cuda-pathfinder/cuda_pathfinder-1.3.3-py3-none-any.whl" + list_url = "https://pypi.org/project/cuda-pathfinder" + + license("Apache-2.0") + + version("1.5.4", sha256="9563d3175ce1828531acf4b94e1c1c7d67208c347ca002493e2654878b26f4b7") + version("1.5.3", sha256="dff021123aedbb4117cc7ec81717bbfe198fb4e8b5f1ee57e0e084fec5c8577d") + version("1.5.2", sha256="0c5f160a7756c5b072723cbbd6d861e38917ef956c68150b02f0b6e9271c71fa") + version("1.5.1", sha256="b3718097fb57cf9e8a904dd072d806f2c9a27627e35c020b06ab9454bcec08c0") + version("1.5.0", sha256="498f90a9e9de36044a7924742aecce11c50c49f735f1bc53e05aa46de9ea4110") + version("1.4.4", sha256="1a9e7feccae0d969ad88545d0462f2ed2750df8e6732309798dc1e1ca603a28b") + version("1.4.3", sha256="4345d8ead1f701c4fb8a99be6bc1843a7348b6ba0ef3b031f5a2d66fb128ae4c") + version("1.4.2", sha256="eb354abc20278f8609dc5b666a24648655bef5613c6dfe78a238a6fd95566754") + version("1.4.1", sha256="40793006082de88e0950753655e55558a446bed9a7d9d0bcb48b2506d50ed82a") + version("1.4.0", sha256="437079ca59e7b61ae439ecc501d69ed87b3accc34d58153ef1e54815e2c2e118") + version("1.3.5", sha256="6c88220f8637cb35d2a75c620d72efebf683b248b923713d8fbe235844c1a4b9") + version("1.3.4", sha256="fb983f6e0d43af27ef486e14d5989b5f904ef45cedf40538bfdcbffa6bb01fb2") + version("1.3.3", sha256="9984b664e404f7c134954a771be8775dfd6180ea1e1aef4a5a37d4be05d9bbb1") + version("1.3.2", sha256="7bd2774bc6be93aea226d579f415a63803b2b2c062207ed06c1d6dfc9cfacc3c") + version("1.3.1", sha256="0f04527f647e16ee26055447d3e4479bd608acce60f6506b14043f51d71736e7") + version("1.3.0", sha256="2e904a408ab4ebfba5b3ee67ecd15383487ffe109fc6e1f2e2ea61577e4519be") + version("1.2.3", sha256="e6cf54d550441e878002d9ec9d280863ef0d6bb2bd8f52ca01582a5f381eace4") + version("1.2.2", sha256="4a97b8eb29bc4bbd52f419141dd0345da95f67e599deeed686bd925729d22228") + version("1.2.1", sha256="d4fba3a8f6a01bbc72753d69bc7f6bcf8078a91a73adeea0f0c9adf917461d7b") + version("1.2.0", sha256="bf83060b06e571236cd77e2f26adab218dcceb2a87effbc830fe32940277f081") + version("1.1.0", sha256="3e66fe0af8ead20eca25e077d2e0cb2dcc027d4297d550a74f99a0211e610799") + version("1.0.0", sha256="672cc49ce16cb10cb39a9fbcfbcac2cf4a3a22561adee9faeea48f20ce19401f") + + depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_cupy/package.py b/repos/spack_repo/builtin/packages/py_cupy/package.py index 08436bbecba..fb4011e1428 100644 --- a/repos/spack_repo/builtin/packages/py_cupy/package.py +++ b/repos/spack_repo/builtin/packages/py_cupy/package.py @@ -18,17 +18,28 @@ class PyCupy(PythonPackage, CudaPackage, ROCmPackage): cuDNN, cuRand, cuSolver, cuSPARSE, cuFFT and NCCL to make full use of the GPU architecture.""" + # TODO: CuPy bundles some dependencies in `third_party` (cccl, dlpack, jitify, xsf). These + # should be modeled as explicit dependencies. + homepage = "https://cupy.dev/" pypi = "cupy/cupy-8.0.0.tar.gz" git = "https://github.com/cupy/cupy.git" + submodules = True version("main", branch="main") - version("14.0.0a1", sha256="12b6ba421bcd3eaf1f5bf9930cfbdcea50364aa8d5ebd1d3bd5808ea5a994ca9") + version("14.0.1", sha256="4b673ab2d8b2329abe7ae0a7ae6159656044a8eecca56cf0b834b7c907063205") + version("14.0.0", sha256="615a7dfbe699729785fa9ef0789de05ec1c278b8c3b675460ad19c8808802995") + version("13.6.0", sha256="3cba30ae3dd32b5d5c6536e710cb98015227cd4ba83c46b3f1825a7ae55b6667") version("13.5.1", sha256="3dba2f30258463482d52deb420862fbbbaf2c446165a5e8d67377ac6cb5c0870") + version("13.5.0", sha256="e24be7837c857f95cf484b4eff91a627a5e622aaece559060b138d9d64e6161d") + version("13.4.1", sha256="9654730da3f7122ba3fe99ce951247e299f3f9c23449a884ba9914444845f0cd") version("13.4.0", sha256="d4b60e5a1d3b89be40fad0845bb9fc467a653abe8660f752416fd38d24ab7fdb") version("13.3.0", sha256="9a2a17af2b99cce91dd1366939c3805e3f51f9de5046df64f29ccbad3bdf78ed") version("13.2.0", sha256="e4dbd2b2ed4159a5cc0c0f98a710a014950eb2c16eeb455e956128f3b3bd0d51") version("13.1.0", sha256="5caf62288481a27713384523623045380ff42e618be4245f478238ed1786f32d") + version("13.0.0", sha256="2f04e7857f692a713360dc9c3b06709806ab8404fca39b5af9721c04a2979aae") + version("12.3.0", sha256="47db32114e6fdd48d0510cbf0b08b0935522d7dfa3e39416b0c0da3914323524") + version("12.2.0", sha256="f95ffd0afeacb617b048fe028ede07b97dc9e95aca1610a022b1f3d20a9a027e") version("12.1.0", sha256="f6d31989cdb2d96581da12822e28b102f29e254427195c2017eac327869b7320") version("12.0.0", sha256="61ddbbef73d50d606bd5087570645f3c91ec9176c2566784c1d486d6a3404545") version("11.6.0", sha256="53dbb840072bb32d4bfbaa6bfa072365a30c98b1fcd1f43e48969071ad98f1a7") @@ -50,10 +61,9 @@ class PyCupy(PythonPackage, CudaPackage, ROCmPackage): depends_on("py-setuptools@:73", when="@:13.3", type="build") depends_on("py-cython@0.29.22:0.29", type="build", when="@:13.3") depends_on( - "py-cython@3:3.0.10,3.0.12:", type="build", when="@13.4:" + "py-cython@3:3.0.10,3.0.12:", type="build", when="@13.4:13" ) # 3.0.11 broken likely because of cython#6335, fixed in 3.0.12 - depends_on("py-cython@0.29.22:0.29", when="@:13.3 +all", type=("build", "run")) - depends_on("py-cython@3:", when="@13.4: +all", type=("build", "run")) + depends_on("py-cython@3.1", type="build", when="@14:") depends_on("py-fastrlock@0.5:", type=("build", "run")) depends_on("py-numpy@1.20:1.25", when="@:11", type=("build", "run")) depends_on("py-numpy@1.20:1.26", when="@12", type=("build", "run")) @@ -61,7 +71,7 @@ class PyCupy(PythonPackage, CudaPackage, ROCmPackage): depends_on("py-numpy@1.22:2.0", when="@13.2", type=("build", "run")) depends_on("py-numpy@1.22:2.2", when="@13.4", type=("build", "run")) depends_on("py-numpy@1.22:2.3", when="@13.5", type=("build", "run")) - depends_on("py-numpy@1.24:2", when="@14", type=("build", "run")) + depends_on("py-numpy@2:", when="@14", type=("build", "run")) depends_on("py-scipy@1.6:1.11", when="@:12+all", type=("build", "run")) depends_on("py-scipy@1.7:1.16", when="@13+all", type=("build", "run")) depends_on("py-scipy@1.10:1.16", when="@14+all", type=("build", "run")) @@ -76,6 +86,7 @@ class PyCupy(PythonPackage, CudaPackage, ROCmPackage): depends_on("cuda@:12.6", when="@13.3 +cuda") depends_on("cuda@:12.8", when="@13.4 +cuda") depends_on("cuda@:12.9", when="@13.5 +cuda") + depends_on("py-cuda-pathfinder", when="@14: +cuda") for a in CudaPackage.cuda_arch_values: depends_on("nccl +cuda cuda_arch={0}".format(a), when="+cuda cuda_arch={0}".format(a)) @@ -83,7 +94,7 @@ class PyCupy(PythonPackage, CudaPackage, ROCmPackage): "nccl@2.16:2.26 +cuda cuda_arch={0}".format(a), when="@13+cuda cuda_arch={0}".format(a) ) - depends_on("cudnn@8.8", when="@12.0.0: +cuda") + depends_on("cudnn@8.8", when="@12.0.0:13 +cuda") depends_on("cudnn@8.5", when="@11.2.0:11.6.0 +cuda") depends_on("cutensor", when="@:12.1.0 +cuda") depends_on("cutensor@2.0", when="@13.1: +cuda") @@ -111,6 +122,12 @@ class PyCupy(PythonPackage, CudaPackage, ROCmPackage): conflicts("+cuda +rocm") conflicts("+cuda cuda_arch=none") + patch( + "https://patch-diff.githubusercontent.com/raw/cupy/cupy/pull/9022.patch?full_index=1", + sha256="bc96ea317748e42f7651d9f3b97f8db224081f627bcfcb6cc48c2ca139143441", + when="@13.4 ^rocm-core@6.3", + ) + def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("CUPY_NUM_BUILD_JOBS", str(make_jobs)) if self.spec.satisfies("+cuda"): @@ -125,6 +142,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: "hipsparse": ["include", "include/hipsparse"], "hipfft": ["include", "include/hipfft"], "rocsolver": ["include", "include/rocsolver"], + "rccl": ["include", "include/rccl"], "roctracer-dev": ["include/roctracer"], "hiprand": ["include", "include/hiprand"], "rocrand": ["include"], diff --git a/repos/spack_repo/builtin/packages/py_datalad/package.py b/repos/spack_repo/builtin/packages/py_datalad/package.py index 563e324552e..45bad78beda 100644 --- a/repos/spack_repo/builtin/packages/py_datalad/package.py +++ b/repos/spack_repo/builtin/packages/py_datalad/package.py @@ -22,6 +22,7 @@ class PyDatalad(PythonPackage): pypi = "datalad/datalad-0.14.6.tar.gz" git = "https://github.com/datalad/datalad.git" + version("1.5.0", sha256="30dcbb393170bff55348496d8a17cb641874f7fef2cc347ce94b30aa4d3c3588") version("1.4.0", sha256="4f663b76eb5ffc560d747c9c4bcfe23e59afc62a0029557dac4f53ceec638833") version("1.2.3", sha256="48f19d3e4fc7b2725240e6c47d6710f3bc46ad6b42455ff76dd3f6e34226f39f") version("1.2.1", sha256="4d9f7ffe7a8a7b7eced97ba3d2d2257d527d4218c73ddf7e74eb343cf970d925") @@ -107,6 +108,7 @@ class PyDatalad(PythonPackage): depends_on("py-pytest@7", when="@0.17.0:0.17.8") depends_on("py-pytest-cov", when="@0.17.9:") depends_on("py-pytest-cov@3", when="@0.17.0:0.17.8") + depends_on("py-pytest-reportlog", when="@1.5:") depends_on("py-pytest-retry", when="@1.2.2:") depends_on("py-pytest-fail-slow@0.2:0", when="@0.17:") depends_on("py-types-python-dateutil", when="@0.17.4:") diff --git a/repos/spack_repo/builtin/packages/py_deisa/package.py b/repos/spack_repo/builtin/packages/py_deisa/package.py index 9f0b7b448c7..c525a8e3779 100644 --- a/repos/spack_repo/builtin/packages/py_deisa/package.py +++ b/repos/spack_repo/builtin/packages/py_deisa/package.py @@ -14,11 +14,14 @@ class PyDeisa(PythonPackage): homepage = "https://github.com/deisa-project/deisa" pypi = "deisa/deisa-0.3.0.tar.gz" + version("0.4.0", sha256="d4f8218e187fec747197bb5c6b1bd000d404fe6a6af2f3b2603bb6929a4b08ef") version("0.3.0", sha256="15e6747457e8801355d2227a8b59263da32e60474a4fed7f3b188e3782a8c702") depends_on("py-setuptools", type="build") + depends_on("python@3.8:", type=("build", "run")) depends_on("py-dask", type=("build", "run")) depends_on("py-distributed", type=("build", "run")) depends_on("py-numpy", type=("build", "run")) - depends_on("py-deisa-dask@0.3.0", type=("build", "run")) + depends_on("py-deisa-dask", type=("build", "run")) + depends_on("py-deisa-dask@0.3.0", when="@0.3.0", type=("build", "run")) depends_on("py-ray", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_deisa_core/package.py b/repos/spack_repo/builtin/packages/py_deisa_core/package.py index 7401ad40dee..0d38a7aac34 100644 --- a/repos/spack_repo/builtin/packages/py_deisa_core/package.py +++ b/repos/spack_repo/builtin/packages/py_deisa_core/package.py @@ -13,9 +13,11 @@ class PyDeisaCore(PythonPackage): homepage = "https://github.com/deisa-project/deisa-core" pypi = "deisa_core/deisa_core-0.2.0.tar.gz" + version("0.5.0", sha256="abd96c7c792359c2b45a9e4d375274526a6450386be16980da6b1efad06a9818") version("0.2.0", sha256="94df0fdbdaf1c48df82adc1b72c1fdea6c68dc65cb99f080f535886a8235cfb6") version("0.1.0", sha256="d907728d4a2acf0345d3e7b69cbf534678ab93c3cfa39f4040e7455a6f552718") + depends_on("python@3.8:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-dask", type=("build", "run"), when="@0.2.0:") depends_on("py-numpy", type=("build", "run"), when="@0.2.0:") diff --git a/repos/spack_repo/builtin/packages/py_deisa_dask/package.py b/repos/spack_repo/builtin/packages/py_deisa_dask/package.py index 61b11c926f0..17e2fc8e38c 100644 --- a/repos/spack_repo/builtin/packages/py_deisa_dask/package.py +++ b/repos/spack_repo/builtin/packages/py_deisa_dask/package.py @@ -13,10 +13,15 @@ class PyDeisaDask(PythonPackage): homepage = "https://github.com/deisa-project/deisa-dask" pypi = "deisa_dask/deisa_dask-0.3.0.tar.gz" + version("0.5.0", sha256="8b359207f4924da94b8203db9d6247af57e575ab2e18b49b6890989770040e79") + version("0.4.1", sha256="acfcb41e4384a6a90ca91bce47f29b0e147e660f2dfddb82240cf9d464a9cdfc") version("0.3.0", sha256="615483d3c21e05c1cdf0564db0245f7f6ba979e75c25a0292d3d42fcc4cf6d23") depends_on("py-setuptools", type="build") - depends_on("python@3.10:", type="build") - depends_on("py-deisa-core@0.1.0", type=("build", "run")) + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-deisa-core@0.5.0:", when="@0.4.0:", type=("build", "run")) + depends_on("py-deisa-core@0.1.0", when="@0.3.0", type=("build", "run")) + depends_on("py-dask@2024.9.0:", when="@0.5:", type=("build", "run")) depends_on("py-dask", type=("build", "run")) depends_on("py-distributed", type=("build", "run")) + depends_on("py-toolz", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_docket/package.py b/repos/spack_repo/builtin/packages/py_docket/package.py new file mode 100644 index 00000000000..3852066debb --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_docket/package.py @@ -0,0 +1,35 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyDocket(PythonPackage): + """A distributed background task system for Python functions.""" + + homepage = "https://github.com/chrisguidry/docket" + pypi = "pydocket/pydocket-0.16.6.tar.gz" + + license("MIT") + + version("0.16.6", sha256="b96c96ad7692827214ed4ff25fcf941ec38371314db5dcc1ae792b3e9d3a0294") + + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-hatchling", type="build") + + depends_on("py-cloudpickle@3.1.1:", type=("build", "run")) + depends_on("py-exceptiongroup@1.2:", when="^python@:3.10", type=("build", "run")) + depends_on("py-fakeredis@2.32.1: +lua", type=("build", "run")) + depends_on("py-opentelemetry-api@1.33.0:", type=("build", "run")) + depends_on("py-opentelemetry-exporter-prometheus@0.60b0:", type=("build", "run")) + depends_on("py-opentelemetry-instrumentation@0.60b0:", type=("build", "run")) + depends_on("py-prometheus-client@0.21.1:", type=("build", "run")) + depends_on("py-key-value-aio@0.3: +memory +redis", type=("build", "run")) + depends_on("py-python-json-logger@2.0.7:", type=("build", "run")) + depends_on("py-redis@5:", type=("build", "run")) + depends_on("py-rich@13.9.4:", type=("build", "run")) + depends_on("py-typer@0.15.1:", type=("build", "run")) + depends_on("py-typing-extensions@4.12:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_exceptiongroup/package.py b/repos/spack_repo/builtin/packages/py_exceptiongroup/package.py index 47d0fb8c88b..2766c2def5f 100644 --- a/repos/spack_repo/builtin/packages/py_exceptiongroup/package.py +++ b/repos/spack_repo/builtin/packages/py_exceptiongroup/package.py @@ -14,7 +14,10 @@ class PyExceptiongroup(PythonPackage): homepage = "https://github.com/agronholm/exceptiongroup" pypi = "exceptiongroup/exceptiongroup-1.0.4.tar.gz" + version("1.3.1", sha256="8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219") version("1.1.1", sha256="d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785") version("1.0.4", sha256="bd14967b79cd9bdb54d97323216f8fdf533e278df937aa2a90089e7d6e06e5ec") depends_on("py-flit-scm", type="build") + + depends_on("py-typing-extensions@4.6:", when="@1.3: ^python@:3.12", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_fakeredis/package.py b/repos/spack_repo/builtin/packages/py_fakeredis/package.py new file mode 100644 index 00000000000..0489f806d74 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_fakeredis/package.py @@ -0,0 +1,32 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyFakeredis(PythonPackage): + """Python implementation of redis API, can be used for testing purposes.""" + + homepage = "https://github.com/cunla/fakeredis-py" + pypi = "fakeredis/fakeredis-2.35.0.tar.gz" + + license("BSD-3-Clause") + + version("2.35.1", sha256="5bae5eba7b9d93cb968944ac40936373cf2397ff71667d4b595df65c3d2e413f") + + variant("lua", default=False, description="Enable Lua scripting support") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-hatchling", type="build") + + depends_on("py-redis@:7.1", type=("build", "run"), when="^python@:3.9") + depends_on("py-redis@4.3:", type=("build", "run"), when="^python@3.9:") + depends_on("py-redis@4:", type=("build", "run"), when="^python@:3.7") + depends_on("py-sortedcontainers@2:", type=("build", "run")) + depends_on("py-typing-extensions@4.7:", type=("build", "run"), when="^python@:3.10") + + depends_on("py-lupa@2.1:", type=("build", "run"), when="+lua") diff --git a/repos/spack_repo/builtin/packages/py_fenics_ufl/package.py b/repos/spack_repo/builtin/packages/py_fenics_ufl/package.py index 3c12ca0ec48..3a8dc696e43 100644 --- a/repos/spack_repo/builtin/packages/py_fenics_ufl/package.py +++ b/repos/spack_repo/builtin/packages/py_fenics_ufl/package.py @@ -22,6 +22,7 @@ class PyFenicsUfl(PythonPackage): license("LGPL-3.0-or-later") version("main", branch="main", no_cache=True) + version("2026.1.0", sha256="72c0e4ac3d2f648f30f860fd4e895d96415a77318cb4551c5dbc53dc644b7c96") version( "2025.2.0.post0", sha256="2182fed6d0fc41fd97244d73fe6aa95e50725e5ba8fe1b3b0f3f4d0215b45534" ) @@ -66,6 +67,7 @@ class PyFenicsUfl(PythonPackage): ) version("2016.2.0", tag="ufl-2016.2.0", commit="962d56f65821fb9c50ca4a5a858882c472243431") + depends_on("python@3.11:", when="@2026.1.0:", type=("build", "run")) depends_on("python@3.10:", when="@2025.2.0:", type=("build", "run")) depends_on("python@3.9:", when="@2025.1.0:", type=("build", "run")) depends_on("python@3.8:", when="@2023.2.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_filelock/package.py b/repos/spack_repo/builtin/packages/py_filelock/package.py index 90c7764ec92..2bee0981cb0 100644 --- a/repos/spack_repo/builtin/packages/py_filelock/package.py +++ b/repos/spack_repo/builtin/packages/py_filelock/package.py @@ -20,6 +20,7 @@ class PyFilelock(PythonPackage): license("Unlicense", when="@:3.22") license("MIT", when="@3.23:") + version("3.29.1", sha256="d97e6b1b9757569626c58caa07dc4beb1613f4a2938b1e8cc81afca398906c9e") version("3.29.0", sha256="69974355e960702e789734cb4871f884ea6fe50bd8404051a3530bc07809cf90") version("3.25.2", sha256="b64ece2b38f4ca29dd3e810287aa8c48182bbecd1ae6e9ae126c9b35f1382694") version("3.19.1", sha256="66eda1888b0171c998b35be2bcc0f6d75c388a7ce20c3f3f37aa8e96c2dddf58") diff --git a/repos/spack_repo/builtin/packages/py_griffe/package.py b/repos/spack_repo/builtin/packages/py_griffe/package.py index a7abd18cb9a..c8eae4ebb56 100644 --- a/repos/spack_repo/builtin/packages/py_griffe/package.py +++ b/repos/spack_repo/builtin/packages/py_griffe/package.py @@ -18,8 +18,13 @@ class PyGriffe(PythonPackage): license("ISC") + version("1.15.0", sha256="7726e3afd6f298fbc3696e67958803e7ac843c1cfe59734b6251a40cdbfb5eea") version("0.22.0", sha256="a3c25a2b7bf729ecee7cd455b4eff548f01c620b8f58a8097a800caad221f12e") + depends_on("python@3.10:", type=("build", "run"), when="@1.15:") depends_on("python@3.7:", type=("build", "run")) - depends_on("py-pdm-pep517", type="build") + depends_on("py-pdm-backend", type="build", when="@0.26:") + depends_on("py-pdm-pep517", type="build", when="@:0.25") + + depends_on("py-colorama@0.4:", type=("build", "run"), when="@1.15.0:") depends_on("py-cached-property", type=("build", "run"), when="^python@:3.7") diff --git a/repos/spack_repo/builtin/packages/py_hdf5plugin/package.py b/repos/spack_repo/builtin/packages/py_hdf5plugin/package.py new file mode 100644 index 00000000000..453b834129a --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_hdf5plugin/package.py @@ -0,0 +1,45 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyHdf5plugin(PythonPackage): + """hdf5plugin provides HDF5 compression filters (namely: Blosc, Blosc2, + BitShuffle, BZip2, FciDecomp, LZ4, Sperr, SZ, SZ3, Zfp, ZStd) and makes + them usable from h5py.""" + + homepage = "https://github.com/silx-kit/hdf5plugin" + pypi = "hdf5plugin/hdf5plugin-6.0.0.tar.gz" + + maintainers("Markus92") + + license("MIT", checked_by="Markus92") + + version("6.0.0", sha256="847ed9e96b451367a110f0ba64a3b260d38d64bbf3f25751858d3b56e094cfe0") + + variant("openmp", default=True, description="Build with OpenMP support") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + + depends_on("python@3.9:", type=("build", "run")) + + depends_on("py-setuptools@77:", type="build") + depends_on("py-py-cpuinfo@9.0.0", type="build") + + depends_on("py-h5py@3:", type=("build", "run")) + + def setup_build_environment(self, env): + env.set("HDF5PLUGIN_HDF5_DIR", self.spec["hdf5"].prefix) + + # Disable all optimizations as set by script + # Spack compiler wrapper will handle it all on its own + for feat in ["SSE2", "SSSE3", "AVX2", "AVX512", "NATIVE"]: + env.set(f"HDF5PLUGIN_{feat.upper()}", "False") + + if "+openmp" in self.spec: + env.set("HDF5PLUGIN_OPENMP", "True") diff --git a/repos/spack_repo/builtin/packages/py_jinja2_humanize_extension/package.py b/repos/spack_repo/builtin/packages/py_jinja2_humanize_extension/package.py new file mode 100644 index 00000000000..a1fb8028b1f --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_jinja2_humanize_extension/package.py @@ -0,0 +1,23 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyJinja2HumanizeExtension(PythonPackage): + """A jinja2 extension to use humanize library inside jinja2 templates.""" + + homepage = "https://github.com/metwork-framework/jinja2_humanize_extension" + pypi = "jinja2_humanize_extension/jinja2_humanize_extension-0.4.0.tar.gz" + + version("0.4.0", sha256="e7d69b1c20f32815bbec722330ee8af14b1287bb1c2b0afa590dbf031cadeaa0") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-setuptools", when="^python@3.11:", type="build") + + depends_on("py-jinja2", type=("build", "run")) + depends_on("py-humanize@3.14:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_jsonpatch/package.py b/repos/spack_repo/builtin/packages/py_jsonpatch/package.py index 71113861197..8b0ea602bde 100644 --- a/repos/spack_repo/builtin/packages/py_jsonpatch/package.py +++ b/repos/spack_repo/builtin/packages/py_jsonpatch/package.py @@ -15,6 +15,7 @@ class PyJsonpatch(PythonPackage): license("BSD-3-Clause") + version("1.33", sha256="9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c") version("1.23", sha256="49f29cab70e9068db3b1dc6b656cbe2ee4edf7dfe9bf5a0055f17a4b6804a4b9") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_jupyterlab/package.py b/repos/spack_repo/builtin/packages/py_jupyterlab/package.py index d78b7b47959..e028498e2b9 100644 --- a/repos/spack_repo/builtin/packages/py_jupyterlab/package.py +++ b/repos/spack_repo/builtin/packages/py_jupyterlab/package.py @@ -18,6 +18,7 @@ class PyJupyterlab(PythonPackage): license("BSD-3-Clause", checked_by="lgarrison") + version("4.5.8", sha256="af54d7242cc689a1e6c3ad213cc9b6d9781787d9ec67c52ec9a8f4707088cadd") version("4.5.7", sha256="55a9822c4754da305f41e113452c68383e214dcf96de760146af89ce5d5117b0") version("4.5.6", sha256="642fe2cfe7f0f5922a8a558ba7a0d246c7bc133b708dfe43f7b3a826d163cf42") version("4.4.10", sha256="521c017508af4e1d6d9d8a9d90f47a11c61197ad63b2178342489de42540a615") @@ -63,6 +64,7 @@ class PyJupyterlab(PythonPackage): depends_on("py-jupyterlab-server@2.27.1:2", when="@4.1.7:4.4") depends_on("py-jupyterlab-server@2.19:2", when="@4:4.1.6") depends_on("py-notebook-shim@0.2:", when="@4:") + depends_on("py-packaging@23.2:", when="@4.5.8:") depends_on("py-packaging", when="@3:") depends_on("py-setuptools@41.1:", when="@4.3.7:") depends_on("py-setuptools@40.8.0:", when="@4.3.5:") diff --git a/repos/spack_repo/builtin/packages/py_key_value_aio/package.py b/repos/spack_repo/builtin/packages/py_key_value_aio/package.py new file mode 100644 index 00000000000..633f9ab42d2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_key_value_aio/package.py @@ -0,0 +1,29 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyKeyValueAio(PythonPackage): + """A pluggable interface for KV Stores.""" + + homepage = "https://github.com/strawgate/py-key-value" + pypi = "py_key_value_aio/py_key_value_aio-0.4.4.tar.gz" + + version("0.4.4", sha256="e3012e6243ed7cc09bb05457bd4d03b1ba5c2b1ca8700096b3927db79ffbbe55") + + variant("memory", default=False, description="Enable memory backend") + variant("redis", default=False, description="Enable redis backend") + + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-uv-build@0.8.2:0.8", type="build") + + depends_on("py-beartype@0.20:", type=("build", "run")) + depends_on("py-typing-extensions@4.15:", type=("build", "run")) + + depends_on("py-cachetools@5:", type=("build", "run"), when="+memory") + depends_on("py-redis@4.3:", type=("build", "run"), when="+redis") diff --git a/repos/spack_repo/builtin/packages/py_leidenalg/package.py b/repos/spack_repo/builtin/packages/py_leidenalg/package.py new file mode 100644 index 00000000000..3b3aa0fd556 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_leidenalg/package.py @@ -0,0 +1,42 @@ +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyLeidenalg(PythonPackage): + """This package implements the Leiden algorithm in C++ and exposes it to python""" + + homepage = "https://leidenalg.readthedocs.io/en/latest/" + pypi = "leidenalg/leidenalg-0.10.0.tar.gz" + + version("0.10.0", sha256="a3829dceb3d9198a0489891d471f2abe8ffd5a3e8ddc8c298543d16caa8d7f19") + + depends_on("c", type=("build")) + depends_on("cxx", type=("build")) + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@45:", type=("build")) + depends_on("py-igraph@0.10", type=("build", "run")) + depends_on("igraph@0.10", type=("build")) + depends_on("py-setuptools-scm", type=("build")) + + # Add to this if new versions is released, they must amtch + depends_on("libleidenalg@0.10.0", when="@0.10.0") + + def patch(self): + filter_file( + r"'build-deps/install/include'", + f"'{self.spec['igraph'].prefix.include}', " + f"'{self.spec['libleidenalg'].prefix.include}'", + "setup.py", + string=True, + ) + filter_file( + r"'build-deps/install/lib'", + f"'{self.spec['igraph'].prefix.lib}', " + f"'{self.spec['igraph'].prefix.lib64}', " + f"'{self.spec['libleidenalg'].prefix.lib}', " + f"'{self.spec['libleidenalg'].prefix.lib64}'", + "setup.py", + string=True, + ) diff --git a/repos/spack_repo/builtin/packages/py_librt/package.py b/repos/spack_repo/builtin/packages/py_librt/package.py index 4bf6533f289..3909511c846 100644 --- a/repos/spack_repo/builtin/packages/py_librt/package.py +++ b/repos/spack_repo/builtin/packages/py_librt/package.py @@ -15,6 +15,7 @@ class PyLibrt(PythonPackage): license("MIT AND PSF-2.0") + version("0.11.0", sha256="075dc3ef4458a278e0195cbf6ac9d38808d9b906c5a6c7f7f79c3888276a3fb1") version("0.9.0", sha256="a0951822531e7aee6e0dfb556b30d5ee36bbe234faf60c20a16c01be3530869d") version("0.6.3", sha256="c724a884e642aa2bbad52bb0203ea40406ad742368a5f90da1b220e970384aae") diff --git a/repos/spack_repo/builtin/packages/py_lightning/package.py b/repos/spack_repo/builtin/packages/py_lightning/package.py index c9f9b602d97..ef003fbf504 100644 --- a/repos/spack_repo/builtin/packages/py_lightning/package.py +++ b/repos/spack_repo/builtin/packages/py_lightning/package.py @@ -19,6 +19,7 @@ class PyLightning(PythonPackage): maintainers("adamjstewart") version("master", branch="master") + version("2.6.5", sha256="16a30310ed69afde3748491feb5d13508908effd70390d2bfc203dc0812a4b4a") version("2.6.4", sha256="79a4eaf3db09e88485d0589abb6aa1beedde81e4e52536b1ddbb4478cda22235") version("2.6.1", sha256="859104b98c61add6fe60d0c623abf749baf25f2950a66ebdfb4bd18aa7decba9") version("2.6.0", sha256="881841716b59c1837ae0c562c2e64fea9bcf49ef9de3867bd1f868557ec23d04") diff --git a/repos/spack_repo/builtin/packages/py_logomaker/package.py b/repos/spack_repo/builtin/packages/py_logomaker/package.py new file mode 100644 index 00000000000..5094110f5cf --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_logomaker/package.py @@ -0,0 +1,28 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyLogomaker(PythonPackage): + """Software for creating highly customized sequence logos""" + + homepage = "https://github.com/jbkinney/logomaker" + pypi = "logomaker/logomaker-0.8.7.tar.gz" + + maintainers("Markus92") + + license("MIT", checked_by="Markus92") + + version("0.8.7", sha256="63783ce6e24449d6f1f01ce29c4ae1b91f6e54bc198e5da40ad18fcd0efc3302") + + depends_on("python@3.8:", type=("build", "run")) + + depends_on("py-hatchling", type="build") + + depends_on("py-numpy", type=("build", "run")) + depends_on("py-matplotlib", type=("build", "run")) + depends_on("py-pandas", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_lupa/package.py b/repos/spack_repo/builtin/packages/py_lupa/package.py new file mode 100644 index 00000000000..e701a015f97 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_lupa/package.py @@ -0,0 +1,21 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyLupa(PythonPackage): + """Python wrapper around Lua and LuaJIT.""" + + homepage = "https://github.com/scoder/lupa" + pypi = "lupa/lupa-2.6.tar.gz" + + version("2.6", sha256="9a770a6e89576be3447668d7ced312cd6fd41d3c13c2462c9dc2c2ab570e45d9") + + depends_on("py-setuptools", type="build") + depends_on("py-cython@3.1.6:", type="build") + + depends_on("lua-luajit", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_memelite/package.py b/repos/spack_repo/builtin/packages/py_memelite/package.py new file mode 100644 index 00000000000..155c17dd92a --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_memelite/package.py @@ -0,0 +1,34 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyMemelite(PythonPackage): + """The tools in the MEME suite are foundational for many sequence-based + analyses; MEME itself for discovering repeating patterns in sequences, FIMO + for scanning these patterns against long sequences, and Tomtom for scoring + these patterns against each other.""" + + homepage = "https://github.com/jmschrei/memesuite-lite" + pypi = "memelite/memelite-0.2.0.tar.gz" + + maintainers("Markus92") + + license("MIT", checked_by="Markus92") + + version("0.2.0", sha256="f028a7751369d6d1d88d736e3ac0a8ef1dfdc917618a3a6f958bdc9f380ed5d0") + + depends_on("python@3:", type=("build", "run")) + + depends_on("py-setuptools", type="build") + + depends_on("py-numpy@1.14.2:2.0.1", type=("build", "run")) + # https://github.com/jmschrei/memesuite-lite/issues/1 + depends_on("py-numba@0.60.0:", type=("build", "run")) + depends_on("py-pandas@1.3.3:", type=("build", "run")) + depends_on("py-pyfaidx@0.7.2.1:", type=("build", "run")) + depends_on("py-tqdm@4.64.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_mne/package.py b/repos/spack_repo/builtin/packages/py_mne/package.py index 397dd029d70..06a42abb191 100644 --- a/repos/spack_repo/builtin/packages/py_mne/package.py +++ b/repos/spack_repo/builtin/packages/py_mne/package.py @@ -18,6 +18,7 @@ class PyMne(PythonPackage): license("BSD-3-Clause") + version("1.12.1", sha256="244f844057f28a4da2509039dba637832ffb65f678ca76fc667312c493b12044") version("1.12.0", sha256="29ff8331ba58626b5ce361dee66c0de5e331a0fd8217ac7543fb552ce667f522") version("1.11.0", sha256="0a89b8fc44133b81218a35cdcba74ad0f8ae2e265136249b365b9ce04864c688") version("1.10.2", sha256="e83610ed3fa86086c7b2006e978e2ec39d9ebc8d72e2777fde64c68674ec561f") diff --git a/repos/spack_repo/builtin/packages/py_modisco/package.py b/repos/spack_repo/builtin/packages/py_modisco/package.py new file mode 100644 index 00000000000..9057dea1368 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_modisco/package.py @@ -0,0 +1,39 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyModisco(PythonPackage): + """Algorithm for discovering sequence motifs from + machine-learning-model-derived importance scores.""" + + homepage = "https://github.com/kundajelab/tfmodisco" + pypi = "modisco/modisco-2.5.2.tar.gz" + + maintainers("Markus92") + + license("MIT", checked_by="Markus92") + + version("2.5.2", sha256="820433d842803b66bcc8f29ef760edd2e62182a598bcfded6009f679dbbb53d5") + + depends_on("python@3.7:", type=("build", "run")) + + depends_on("py-setuptools", type="build") + + with default_args(type=("build", "run")): + depends_on("py-numpy@1.21.5:") + depends_on("py-scipy@1.6.2:") + depends_on("py-numba@0.53.1:") + depends_on("py-scikit-learn@1.0.2:") + depends_on("py-leidenalg@0.8.10:") + depends_on("py-igraph@0.9.11:") + depends_on("py-tqdm@4.38.0:") + depends_on("py-pandas@1.4.3:") + depends_on("py-logomaker@0.8:") + depends_on("py-h5py@3.7.0:") + depends_on("py-hdf5plugin") + depends_on("py-memelite") + depends_on("py-jinja2") diff --git a/repos/spack_repo/builtin/packages/py_mypy/package.py b/repos/spack_repo/builtin/packages/py_mypy/package.py index 64e54eaba84..3be6e0f309d 100644 --- a/repos/spack_repo/builtin/packages/py_mypy/package.py +++ b/repos/spack_repo/builtin/packages/py_mypy/package.py @@ -18,6 +18,7 @@ class PyMypy(PythonPackage): license("MIT AND PSF-2.0", checked_by="tgamblin") + version("2.1.0", sha256="81e76ad12c2d804512e9b13240d1588316531bfba07558286078bfbce9613633") version("1.19.0", sha256="f6b874ca77f733222641e5c46e4711648c4037ea13646fd0cdc814c2eaec2528") version("1.16.0", sha256="84b94283f817e2aa6350a14b4a8fb2a35a53c286f97c9d30f53b63620e7af8ab") version("1.15.0", sha256="404534629d51d3efea5c800ee7c42b72a6554d6c400e6a79eafe15d11341fd43") @@ -64,6 +65,7 @@ class PyMypy(PythonPackage): version("0.740", sha256="48c8bc99380575deb39f5d3400ebb6a8a1cb5cc669bbba4d3bb30f904e0a0e7d") with default_args(type="build"): + depends_on("py-setuptools@77.0.3:", when="@1.20:") depends_on("py-setuptools@75.1.0:", when="@1.14:") depends_on("py-setuptools@40.6.2:", when="@0.790:") depends_on("py-setuptools") @@ -74,21 +76,29 @@ class PyMypy(PythonPackage): depends_on("py-wheel@0.30:", when="@0.790:1.13") with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@1.20:") depends_on("python@3.9:", when="@1.15:") depends_on("python@3.8:", when="@1.5:") depends_on("python@3.7:", when="@0.981:") - depends_on("py-typing-extensions@4.6:", when="@1.11:") - depends_on("py-typing-extensions@4.1:", when="@1.5:") - depends_on("py-typing-extensions@3.10:", when="@0.930:") - depends_on("py-typing-extensions@3.7.4:", when="@0.700:") + + depends_on("py-typing-extensions@4.14:", when="@1.20.2: ^python@3.15:") + with when("^python@:3.14"): + depends_on("py-typing-extensions@4.6:", when="@1.11:") + depends_on("py-typing-extensions@4.1:", when="@1.5:") + depends_on("py-typing-extensions@3.10:", when="@0.930:") + depends_on("py-typing-extensions@3.7.4:", when="@0.700:") + depends_on("py-mypy-extensions@1:", when="@1.1:") depends_on("py-mypy-extensions@0.4.3:", when="@0.930:1.0") depends_on("py-mypy-extensions@0.4.3:0.4", when="@0.700:0.929") + depends_on("py-pathspec@1:", when="@1.20:") depends_on("py-pathspec@0.9:", when="@1.16:") depends_on("py-tomli@1.1:", when="@0.950: ^python@:3.10") depends_on("py-tomli@1.1:", when="@0.930:0.949") depends_on("py-tomli@1.1:2", when="@0.920:0.929") + depends_on("py-librt@0.11:", when="@2.1:") depends_on("py-librt@0.6.2:", when="@1.19:") + depends_on("py-ast-serialize@0.3:0", when="@2:") # Historical dependencies depends_on("py-types-typed-ast@1.5.8.5:1.5", when="@1.2:1.4") diff --git a/repos/spack_repo/builtin/packages/py_opentelemetry_api/package.py b/repos/spack_repo/builtin/packages/py_opentelemetry_api/package.py new file mode 100644 index 00000000000..2ed5b9043c3 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_opentelemetry_api/package.py @@ -0,0 +1,24 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyOpentelemetryApi(PythonPackage): + """OpenTelemetry Python API.""" + + homepage = "https://github.com/open-telemetry/opentelemetry-python" + pypi = "opentelemetry_api/opentelemetry_api-1.39.1.tar.gz" + + version("1.41.0", sha256="9421d911326ec12dee8bc933f7839090cad7a3f13fcfb0f9e82f8174dc003c09") + version("1.39.1", sha256="fbde8c80e1b937a2c61f20347e91c0c18a1940cecf012d62e65a7caf08967c9c") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-hatchling", type="build") + + depends_on("py-typing-extensions@4.5:", type=("build", "run")) + depends_on("py-importlib-metadata@6:8.7", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_opentelemetry_exporter_prometheus/package.py b/repos/spack_repo/builtin/packages/py_opentelemetry_exporter_prometheus/package.py new file mode 100644 index 00000000000..d2e37d6273c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_opentelemetry_exporter_prometheus/package.py @@ -0,0 +1,24 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyOpentelemetryExporterPrometheus(PythonPackage): + """Prometheus Metric Exporter for OpenTelemetry.""" + + homepage = "https://github.com/open-telemetry/opentelemetry-python" + pypi = "opentelemetry_exporter_prometheus/opentelemetry_exporter_prometheus-0.62b0.tar.gz" + + version("0.62b0", sha256="4d1106566a9b3e8dff028e69e9f2dc90723e6b431c900ff8c72982fcf11dbae5") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-hatchling", type="build") + + depends_on("py-opentelemetry-api@1.12:1", type=("build", "run")) + depends_on("py-opentelemetry-sdk@1.41:1", type=("build", "run")) + depends_on("py-prometheus-client@0.5:0", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_opentelemetry_instrumentation/package.py b/repos/spack_repo/builtin/packages/py_opentelemetry_instrumentation/package.py new file mode 100644 index 00000000000..f6062219343 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_opentelemetry_instrumentation/package.py @@ -0,0 +1,25 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyOpentelemetryInstrumentation(PythonPackage): + """Instrumentation Tools & Auto Instrumentation for OpenTelemetry Python.""" + + homepage = "https://github.com/open-telemetry/opentelemetry-python-contrib" + pypi = "opentelemetry_instrumentation/opentelemetry_instrumentation-0.62b0.tar.gz" + + version("0.62b0", sha256="aa1b0b9ab2e1722c2a8a5384fb016fc28d30bba51826676c8036074790d2861e") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-hatchling", type="build") + + depends_on("py-packaging@18:", type=("build", "run")) + depends_on("py-wrapt@1:2", type=("build", "run")) + depends_on("py-opentelemetry-api@1.4:1", type=("build", "run")) + depends_on("py-opentelemetry-semantic-conventions@0.62b0", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_opentelemetry_sdk/package.py b/repos/spack_repo/builtin/packages/py_opentelemetry_sdk/package.py new file mode 100644 index 00000000000..0df6a8ffcbf --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_opentelemetry_sdk/package.py @@ -0,0 +1,24 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyOpentelemetrySdk(PythonPackage): + """OpenTelemetry Python SDK.""" + + homepage = "https://github.com/open-telemetry/opentelemetry-python" + pypi = "opentelemetry_sdk/opentelemetry_sdk-1.41.0.tar.gz" + + version("1.41.0", sha256="7bddf3961131b318fc2d158947971a8e37e38b1cd23470cfb72b624e7cc108bd") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-hatchling", type="build") + + depends_on("py-opentelemetry-api@1.41.0", type=("build", "run")) + depends_on("py-opentelemetry-semantic-conventions@0.62b0", type=("build", "run")) + depends_on("py-typing-extensions@4.5:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_opentelemetry_semantic_conventions/package.py b/repos/spack_repo/builtin/packages/py_opentelemetry_semantic_conventions/package.py new file mode 100644 index 00000000000..139abb3f432 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_opentelemetry_semantic_conventions/package.py @@ -0,0 +1,23 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyOpentelemetrySemanticConventions(PythonPackage): + """OpenTelemetry Semantic Conventions.""" + + homepage = "https://github.com/open-telemetry/opentelemetry-python" + pypi = "opentelemetry_semantic_conventions/opentelemetry_semantic_conventions-0.62b0.tar.gz" + + version("0.62b0", sha256="cbfb3c8fc259575cf68a6e1b94083cc35adc4a6b06e8cf431efa0d62606c0097") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-hatchling", type="build") + + depends_on("py-opentelemetry-api@1.41.0", type=("build", "run")) + depends_on("py-typing-extensions@4.5:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_orjson/package.py b/repos/spack_repo/builtin/packages/py_orjson/package.py index 6278495fa75..ed21deeece3 100644 --- a/repos/spack_repo/builtin/packages/py_orjson/package.py +++ b/repos/spack_repo/builtin/packages/py_orjson/package.py @@ -15,6 +15,7 @@ class PyOrjson(PythonPackage): license("Apache-2.0") + version("3.11.5", sha256="82393ab47b4fe44ffd0a7659fa9cfaacc717eb617c93cde83795f14af5c2e9d5") version("3.11.1", sha256="48d82770a5fd88778063604c566f9c7c71820270c9cc9338d25147cbf34afd96") version("3.10.18", sha256="e8da3947d92123eda795b68228cafe2724815621fe35e8e320a9e9593a4bcd53") version("3.10.3", sha256="2b166507acae7ba2f7c315dcf185a9111ad5e992ac81f2d507aac39193c2c818") @@ -28,6 +29,8 @@ class PyOrjson(PythonPackage): depends_on("python@:3.12") with default_args(type="build"): + with when("@3.10.14:"): + depends_on("rust@1.82:") with when("@3.9:"): depends_on("rust@1.72:") depends_on("python@3.8:") diff --git a/repos/spack_repo/builtin/packages/py_pendulum/package.py b/repos/spack_repo/builtin/packages/py_pendulum/package.py new file mode 100644 index 00000000000..9d8181b8e00 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pendulum/package.py @@ -0,0 +1,24 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyPendulum(PythonPackage): + """Python datetimes made easy.""" + + homepage = "https://pendulum.eustace.io/" + pypi = "pendulum/pendulum-3.1.0.tar.gz" + + license("MIT") + + version("3.1.0", sha256="66f96303560f41d097bee7d2dc98ffca716fbb3a832c4b3062034c2d45865015") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-maturin@1", type="build") + + depends_on("py-python-dateutil@2.6:", type=("build", "run")) + depends_on("py-tzdata@2020.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_petsc4py/package.py b/repos/spack_repo/builtin/packages/py_petsc4py/package.py index 61adaa44405..b41abe46507 100644 --- a/repos/spack_repo/builtin/packages/py_petsc4py/package.py +++ b/repos/spack_repo/builtin/packages/py_petsc4py/package.py @@ -21,6 +21,7 @@ class PyPetsc4py(PythonPackage): license("BSD-2-Clause") version("main", branch="main") + version("3.25.2", sha256="dc1bcd7ccb367e9f76dcf6dd83a9c74426049003d3debc5a748618816b3d27bb") version("3.25.1", sha256="2cddfe810dd975988e350f821a15e657e88b7fc796c091b54040921ba2f6dce3") version("3.25.0", sha256="8eafd133adbb22a6b7cd963f5eb03f86d959b832c7e5843704caba29b79c5659") version("3.24.6", sha256="1b9594c9aabcd76eaf6092086d8b3f0f2e6c71e3c6088b41dde40fdaf776812a") diff --git a/repos/spack_repo/builtin/packages/py_pipcl/package.py b/repos/spack_repo/builtin/packages/py_pipcl/package.py new file mode 100644 index 00000000000..67de3139963 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pipcl/package.py @@ -0,0 +1,20 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyPipcl(PythonPackage): + """Python packaging operations, including PEP-517 support, + for use by a setup.py script.""" + + homepage = "https://github.com/ArtifexSoftware/pipcl" + pypi = "pipcl/pipcl-4.tar.gz" + + license("AGPL-3.0", checked_by="V-Karch") + + version("4", sha256="872af57ed3be4cfce9ffe16861514f8774675f8ddbc5df91b2d9ff283bb33f8c") diff --git a/repos/spack_repo/builtin/packages/py_plaid/package.py b/repos/spack_repo/builtin/packages/py_plaid/package.py new file mode 100644 index 00000000000..edb5441fc77 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_plaid/package.py @@ -0,0 +1,43 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyPlaid(PythonPackage): + """A package that implements a data model tailored for AI and ML + in the context of physics problems + """ + + homepage = "https://github.com/PLAID-lib/plaid" + pypi = "pyplaid/pyplaid-0.1.15.tar.gz" + + maintainers("williampiat3", "casenave", "bstaber") + + license("BSD-3-Clause", checked_by="casenave") + + version("0.1.15", sha256="e596ee155804da31793af0ee8f0e93c5fe629e246cbdca87dcae741a1e1f1205") + + # Build deps + with default_args(type="build"): + depends_on("py-setuptools@60:76.1.0") + depends_on("py-setuptools-scm@8:") + + # Build and run deps + with default_args(type=("build", "run")): + depends_on("python@3.11:3.13") + + # Run deps + with default_args(type=("run")): + depends_on("py-tqdm@4.60:4") + depends_on("py-pyyaml@6") + depends_on("py-pycgns@6.3:6") + depends_on("py-zarr@3.1:3") + depends_on("py-scikit-learn@1.4:1") + depends_on("py-datasets@2.18:4") + depends_on("py-numpy@1.26:2") + depends_on("py-matplotlib@3.8:3") + depends_on("py-pydantic@2.6:2") diff --git a/repos/spack_repo/builtin/packages/py_platformdirs/package.py b/repos/spack_repo/builtin/packages/py_platformdirs/package.py index 319276f784a..73167d5e7be 100644 --- a/repos/spack_repo/builtin/packages/py_platformdirs/package.py +++ b/repos/spack_repo/builtin/packages/py_platformdirs/package.py @@ -17,6 +17,7 @@ class PyPlatformdirs(PythonPackage): license("MIT") + version("4.10.0", sha256="31e761a6a0ca04faf7353ea759bdba55652be214725111e5aac52dfa29d4bef7") version("4.9.6", sha256="3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a") version("4.4.0", sha256="ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf") version("3.10.0", sha256="b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d") diff --git a/repos/spack_repo/builtin/packages/py_pydantic_extra_types/package.py b/repos/spack_repo/builtin/packages/py_pydantic_extra_types/package.py index 31dfb5f5229..c42b9d5d3d6 100644 --- a/repos/spack_repo/builtin/packages/py_pydantic_extra_types/package.py +++ b/repos/spack_repo/builtin/packages/py_pydantic_extra_types/package.py @@ -16,6 +16,7 @@ class PyPydanticExtraTypes(PythonPackage): license("MIT", checked_by="wdconinc") + version("2.10.5", sha256="1dcfa2c0cf741a422f088e0dbb4690e7bfadaaf050da3d6f80d6c3cf58a2bad8") version("2.10.0", sha256="552c47dd18fe1d00cfed75d9981162a2f3203cf7e77e55a3d3e70936f59587b9") depends_on("python@3.8:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pytest_reportlog/package.py b/repos/spack_repo/builtin/packages/py_pytest_reportlog/package.py new file mode 100644 index 00000000000..80e818b4886 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pytest_reportlog/package.py @@ -0,0 +1,27 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyPytestReportlog(PythonPackage): + """Replacement for the --resultlog option, focused in simplicity and extensibility.""" + + homepage = "https://github.com/pytest-dev/pytest-reportlog" + pypi = "pytest_reportlog/pytest_reportlog-1.0.0.tar.gz" + + license("MIT") + + version("1.0.0", sha256="75aec3a92bb53456c3e028605a636579d26f31c6f1e035ad9f706c203cfcb74e") + + with default_args(type="build"): + depends_on("py-hatchling") + depends_on("py-hatch-vcs") + + with default_args(type=("build", "run")): + depends_on("python@3.10:") + + depends_on("py-pytest") diff --git a/repos/spack_repo/builtin/packages/py_python_dateutil/package.py b/repos/spack_repo/builtin/packages/py_python_dateutil/package.py index ddfcdc80c14..b81f885475f 100644 --- a/repos/spack_repo/builtin/packages/py_python_dateutil/package.py +++ b/repos/spack_repo/builtin/packages/py_python_dateutil/package.py @@ -22,14 +22,18 @@ class PyPythonDateutil(PythonPackage): version("2.8.1", sha256="73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c") version("2.8.0", sha256="c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e") version("2.7.5", sha256="88f9287c0174266bb0d8cedd395cfba9c58e87e5ad86b2ce58859bc11be3cf02") - version("2.5.2", sha256="063907ef47f6e187b8fe0728952e4effb587a34f2dc356888646f9b71fbb2e4b") - version("2.4.2", sha256="3e95445c1db500a344079a47b171c45ef18f57d188dffdb0e4165c71bea8eb3d") - version("2.4.0", sha256="439df33ce47ef1478a4f4765f3390eab0ed3ec4ae10be32f2930000c8d19f417") - version("2.2", sha256="eec865307ebe7f329a6a9945c15453265a449cdaaf3710340828a1934d53e468") + with default_args(deprecated=True): + version("2.5.2", sha256="063907ef47f6e187b8fe0728952e4effb587a34f2dc356888646f9b71fbb2e4b") + version("2.4.2", sha256="3e95445c1db500a344079a47b171c45ef18f57d188dffdb0e4165c71bea8eb3d") + version("2.4.0", sha256="439df33ce47ef1478a4f4765f3390eab0ed3ec4ae10be32f2930000c8d19f417") + version("2.2", sha256="eec865307ebe7f329a6a9945c15453265a449cdaaf3710340828a1934d53e468") + + # parser.py uses collections.Callable, removed in Python 3.10; fixed in 2.7.0 + depends_on("python@:3.9", when="@:2.6", type=("build", "run")) with default_args(type="build"): depends_on("py-setuptools@24.3:") - depends_on("py-setuptools-scm@:7", when="@2.7:") + depends_on("py-setuptools-scm", when="@2.7:") depends_on("py-wheel", when="@2.8.0:") with default_args(type=("build", "run")): diff --git a/repos/spack_repo/builtin/packages/py_python_discovery/package.py b/repos/spack_repo/builtin/packages/py_python_discovery/package.py index de002554296..e21fab0b894 100644 --- a/repos/spack_repo/builtin/packages/py_python_discovery/package.py +++ b/repos/spack_repo/builtin/packages/py_python_discovery/package.py @@ -15,6 +15,7 @@ class PyPythonDiscovery(PythonPackage): license("MIT") + version("1.4.0", sha256="eb8bc7daad3c226c147e45bb4e970a1feb1bf4048ee178e6db59e197b8010ce3") version("1.2.2", sha256="876e9c57139eb757cb5878cbdd9ae5379e5d96266c99ef731119e04fffe533bb") version("1.2.1", sha256="180c4d114bff1c32462537eac5d6a332b768242b76b69c0259c7d14b1b680c9e") diff --git a/repos/spack_repo/builtin/packages/py_python_mumps/package.py b/repos/spack_repo/builtin/packages/py_python_mumps/package.py new file mode 100644 index 00000000000..edc5498bf80 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_python_mumps/package.py @@ -0,0 +1,52 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyPythonMumps(PythonPackage): + """Python wrapper for the MUMPS solver (python_mumps).""" + + homepage = "https://gitlab.kwant-project.org/kwant/python-mumps" + pypi = "python-mumps/python_mumps-0.0.6.tar.gz" + + maintainers("williampiat3", "akhmerov") + + license("BSD-2-Clause") + + version("0.0.6", sha256="58c33104f77c448e127e9e6da316f71dfb1a17719ecf022634669d513306b1fa") + + variant("mpi", default=True, description="Whether to have MPI support on python-mumps or not") + + # build dependencies + with default_args(type="build"): + depends_on("c") + depends_on("cxx") + depends_on("meson@1.8:") + depends_on("ninja") + depends_on("py-meson-python@0.18:") + depends_on("py-setuptools") + depends_on("py-setuptools-scm") + depends_on("py-cython@3.1.1:") + depends_on("pkgconfig") + + # Python dependencies + with default_args(type=("build", "run")): + depends_on("python@3.10:") + depends_on("py-numpy@2:") + depends_on("py-mpi4py@4.1:4", when="+mpi") + depends_on("py-scipy@1.13:") + + # Optional/test deps + depends_on("py-pytest", type="test") + + # External solver + depends_on("mumps+float+complex+double+metis+scotch+pkgconfig") + depends_on("mumps+mpi", when="+mpi") + depends_on("mumps~mpi", when="~mpi") + + patch("patch_meson_build.patch") diff --git a/repos/spack_repo/builtin/packages/py_python_mumps/patch_meson_build.patch b/repos/spack_repo/builtin/packages/py_python_mumps/patch_meson_build.patch new file mode 100644 index 00000000000..b6608c4f1be --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_python_mumps/patch_meson_build.patch @@ -0,0 +1,21 @@ +diff --git a/meson.build b/meson.build +index 67c5ea0..1ee00fd 100644 +--- a/meson.build ++++ b/meson.build +@@ -19,13 +19,15 @@ fs = import('fs') + # Declare NumPy via meson's dependency() (no explicit method), and add + # the NPY_NO_DEPRECATED_API compile flag. + numpy_nodepr_api = ['-DNPY_NO_DEPRECATED_API=NPY_1_9_API_VERSION'] +-np_dep_base = dependency('numpy') ++np_dep_base = dependency('numpy', version : '>=2') + np_dep = declare_dependency(dependencies: [np_dep_base], compile_args: numpy_nodepr_api) + + # Declare MUMPS dependencies using meson's dependency() resolution. + # Fail early if a named dependency is not available. + mumps_names = get_option('mumps_names') + mumps_deps = [] ++omp = dependency('openmp') ++mumps_deps += omp + foreach mumps_name : mumps_names + # 1) Try the package as given + pkg = dependency(mumps_name, required: false) \ No newline at end of file diff --git a/repos/spack_repo/builtin/packages/py_python_slugify/package.py b/repos/spack_repo/builtin/packages/py_python_slugify/package.py index 8fc170ca269..91b9d669f34 100644 --- a/repos/spack_repo/builtin/packages/py_python_slugify/package.py +++ b/repos/spack_repo/builtin/packages/py_python_slugify/package.py @@ -15,8 +15,11 @@ class PyPythonSlugify(PythonPackage): license("MIT") + version("8.0.4", sha256="59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856") version("4.0.0", sha256="a8fc3433821140e8f409a9831d13ae5deccd0b033d4744d94b31fea141bdd84c") - depends_on("python@2.7:2.8,3.5:", type=("build", "run")) + depends_on("python@3.7:", when="@7:", type=("build", "run")) + depends_on("python@2.7:2.8,3.5:", when="@:4", type=("build", "run")) depends_on("py-setuptools", type="build") + depends_on("py-text-unidecode@1.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_redis/package.py b/repos/spack_repo/builtin/packages/py_redis/package.py index cdb54ff95a7..57459bb945c 100644 --- a/repos/spack_repo/builtin/packages/py_redis/package.py +++ b/repos/spack_repo/builtin/packages/py_redis/package.py @@ -15,6 +15,7 @@ class PyRedis(PythonPackage): license("MIT") + version("7.1.0", sha256="b1cc3cfa5a2cb9c2ab3ba700864fb0ad75617b41f01352ce5779dabf6d5f9c3c") version("4.5.1", sha256="1eec3741cda408d3a5f84b78d089c8b8d895f21b3b050988351e925faf202864") version("3.5.3", sha256="0e7e0cfca8660dea8b7d5cd8c4f6c5e29e11f31158c0b0ae91a397f00e5a05a2") version("3.5.0", sha256="7378105cd8ea20c4edc49f028581e830c01ad5f00be851def0f4bc616a83cd89") @@ -26,10 +27,18 @@ class PyRedis(PythonPackage): description="Support for hiredis which speeds up parsing of multi bulk replies", ) - depends_on("py-setuptools", type="build") - depends_on("py-importlib-metadata@1:", when="@4: ^python@:3.7", type=("build", "run")) - depends_on("py-typing-extensions", when="@4: ^python@:3.7", type=("build", "run")) - depends_on("py-async-timeout@4.0.2:", when="@4:", type=("build", "run")) + depends_on("py-hatchling", type="build", when="@6:") + depends_on("py-setuptools", type="build", when="@:5") - depends_on("py-hiredis@1:", when="@4: +hiredis", type=("build", "run")) - depends_on("py-hiredis@0.1.3:", when="+hiredis", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@7.1.0:") + depends_on("python@3.8:", when="@5.1.0:") + depends_on("python") + + depends_on("py-importlib-metadata@1:", when="@4: ^python@:3.7") + depends_on("py-typing-extensions", when="@4: ^python@:3.7") + depends_on("py-async-timeout@4.0.3:", when="@5.0.3: ^python@:3.11.2") + depends_on("py-async-timeout@4.0.2:", when="@4:") + + depends_on("py-hiredis@1:", when="@4: +hiredis") + depends_on("py-hiredis@0.1.3:", when="+hiredis") diff --git a/repos/spack_repo/builtin/packages/py_s3transfer/package.py b/repos/spack_repo/builtin/packages/py_s3transfer/package.py index 816b152d56c..d2f53171a60 100644 --- a/repos/spack_repo/builtin/packages/py_s3transfer/package.py +++ b/repos/spack_repo/builtin/packages/py_s3transfer/package.py @@ -15,6 +15,7 @@ class PyS3transfer(PythonPackage): license("Apache-2.0") + version("0.18.0", sha256="3760b8b7ec1315da54048b2d626276732bee4300d054d492d4e1d43e20d4ecbd") version("0.16.0", sha256="8e990f13268025792229cd52fa10cb7163744bf56e719e0b9cb925ab79abf920") version("0.14.0", sha256="eff12264e7c8b4985074ccce27a3b38a485bb7f7422cc8046fee9be4983e4125") version("0.10.0", sha256="d0c8bbf672d5eebbe4e57945e23b972d963f07d82f661cabf678a5c88831595b") @@ -30,6 +31,8 @@ class PyS3transfer(PythonPackage): depends_on("py-setuptools", type="build") + depends_on("python@3.10:", when="@0.18:", type=("build", "run")) + depends_on("py-botocore@1.37.4:1", type=("build", "run"), when="@0.11.4:") depends_on("py-botocore@1.33.2:1", type=("build", "run"), when="@0.8.1:") depends_on("py-botocore@1.32.7:1", type=("build", "run"), when="@0.8.0:") diff --git a/repos/spack_repo/builtin/packages/py_scikit_learn/package.py b/repos/spack_repo/builtin/packages/py_scikit_learn/package.py index 3e8db6b1ad6..f7cf690ec89 100644 --- a/repos/spack_repo/builtin/packages/py_scikit_learn/package.py +++ b/repos/spack_repo/builtin/packages/py_scikit_learn/package.py @@ -21,6 +21,7 @@ class PyScikitLearn(PythonPackage): tags = ["e4s"] version("main", branch="main") + version("1.9.0", sha256="8833266989d3a5110178a9fae30783675460724d0e1efb13b14901d2c660c557") version("1.8.0", sha256="9bccbb3b40e3de10351f8f5068e105d0f4083b1a65fa07b6634fbc401a6287fd") version("1.7.2", sha256="20e9e49ecd130598f1ca38a1d85090e1a600147b9c02fa6f15d69cb53d968fda") version("1.7.1", sha256="24b3f1e976a4665aa74ee0fcaac2b8fccc6ae77c8e07ab25da3ba6d3292b9802") @@ -30,24 +31,33 @@ class PyScikitLearn(PythonPackage): version("1.5.2", sha256="b4237ed7b3fdd0a4882792e68ef2545d5baa50aca3bb45aa7df468138ad8f94d") version("1.5.1", sha256="0ea5d40c0e3951df445721927448755d3fe1d80833b0b7308ebff5d2a45e6414") version("1.5.0", sha256="789e3db01c750ed6d496fa2db7d50637857b451e57bcae863bff707c1247bef7") - version("1.4.2", sha256="daa1c471d95bad080c6e44b4946c9390a4842adc3082572c20e4f8884e39e959") - version("1.4.0", sha256="d4373c984eba20e393216edd51a3e3eede56cbe93d4247516d205643c3b93121") - version("1.3.2", sha256="a2f54c76accc15a34bfb9066e6c7a56c1e7235dda5762b990792330b52ccfb05") - version("1.3.1", sha256="1a231cced3ee3fa04756b4a7ab532dc9417acd581a330adff5f2c01ac2831fcf") - version("1.3.0", sha256="8be549886f5eda46436b6e555b0e4873b4f10aa21c07df45c4bc1735afbccd7a") - version("1.2.2", sha256="8429aea30ec24e7a8c7ed8a3fa6213adf3814a6efbea09e16e0a0c71e1a1a3d7") - version("1.2.1", sha256="fbf8a5c893c9b4b99bcc7ed8fb3e8500957a113f4101860386d06635520f7cfb") - version("1.2.0", sha256="680b65b3caee469541385d2ca5b03ff70408f6c618c583948312f0d2125df680") - version("1.1.3", sha256="bef51978a51ec19977700fe7b86aecea49c825884f3811756b74a3b152bb4e35") - version("1.1.2", sha256="7c22d1305b16f08d57751a4ea36071e2215efb4c09cb79183faa4e8e82a3dbf8") - version("1.1.1", sha256="3e77b71e8e644f86c8b5be7f1c285ef597de4c384961389ee3e9ca36c445b256") - version("1.1.0", sha256="80f9904f5b1356adfc32406725dd94c8cc9c8d265047d98390033a6c238cbb29") - version("1.0.2", sha256="b5870959a5484b614f26d31ca4c17524b1b0317522199dc985c3b4256e030767") - version("1.0.1", sha256="ac2ca9dbb754d61cfe1c83ba8483498ef951d29b93ec09d6f002847f210a99da") - version("1.0", sha256="776800194e757cd212b47cd05907e0eb67a554ad333fe76776060dbb729e3427") - version("0.24.2", sha256="d14701a12417930392cd3898e9646cf5670c190b933625ebe7511b1f7d7b8736") - version("0.24.1", sha256="a0334a1802e64d656022c3bfab56a73fbd6bf4b1298343f3688af2151810bbdf") - version("0.24.0", sha256="076369634ee72b5a5941440661e2f306ff4ac30903802dc52031c7e9199ac640") + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2024-5206/ + version("1.4.2", sha256="daa1c471d95bad080c6e44b4946c9390a4842adc3082572c20e4f8884e39e959") + version("1.4.0", sha256="d4373c984eba20e393216edd51a3e3eede56cbe93d4247516d205643c3b93121") + version("1.3.2", sha256="a2f54c76accc15a34bfb9066e6c7a56c1e7235dda5762b990792330b52ccfb05") + version("1.3.1", sha256="1a231cced3ee3fa04756b4a7ab532dc9417acd581a330adff5f2c01ac2831fcf") + version("1.3.0", sha256="8be549886f5eda46436b6e555b0e4873b4f10aa21c07df45c4bc1735afbccd7a") + version("1.2.2", sha256="8429aea30ec24e7a8c7ed8a3fa6213adf3814a6efbea09e16e0a0c71e1a1a3d7") + version("1.2.1", sha256="fbf8a5c893c9b4b99bcc7ed8fb3e8500957a113f4101860386d06635520f7cfb") + version("1.2.0", sha256="680b65b3caee469541385d2ca5b03ff70408f6c618c583948312f0d2125df680") + version("1.1.3", sha256="bef51978a51ec19977700fe7b86aecea49c825884f3811756b74a3b152bb4e35") + version("1.1.2", sha256="7c22d1305b16f08d57751a4ea36071e2215efb4c09cb79183faa4e8e82a3dbf8") + version("1.1.1", sha256="3e77b71e8e644f86c8b5be7f1c285ef597de4c384961389ee3e9ca36c445b256") + version("1.1.0", sha256="80f9904f5b1356adfc32406725dd94c8cc9c8d265047d98390033a6c238cbb29") + version("1.0.2", sha256="b5870959a5484b614f26d31ca4c17524b1b0317522199dc985c3b4256e030767") + version("1.0.1", sha256="ac2ca9dbb754d61cfe1c83ba8483498ef951d29b93ec09d6f002847f210a99da") + # https://www.cvedetails.com/cve/CVE-2020-28975/ + version("1.0", sha256="776800194e757cd212b47cd05907e0eb67a554ad333fe76776060dbb729e3427") + version( + "0.24.2", sha256="d14701a12417930392cd3898e9646cf5670c190b933625ebe7511b1f7d7b8736" + ) + version( + "0.24.1", sha256="a0334a1802e64d656022c3bfab56a73fbd6bf4b1298343f3688af2151810bbdf" + ) + version( + "0.24.0", sha256="076369634ee72b5a5941440661e2f306ff4ac30903802dc52031c7e9199ac640" + ) with default_args(type=("build", "link", "run")): # Based on PyPI wheel availability @@ -78,11 +88,14 @@ class PyScikitLearn(PythonPackage): depends_on("py-scipy@1.3.2:", when="@1.1:") depends_on("py-scipy@1.1.0:", when="@1.0:") depends_on("py-scipy@0.19.1:", when="@0.23:") + depends_on("py-joblib@1.4:", when="@1.9:") depends_on("py-joblib@1.3:", when="@1.8:") depends_on("py-joblib@1.2:", when="@1.4:") depends_on("py-joblib@1.1.1:", when="@1.2:") depends_on("py-joblib@1:", when="@1.1:") depends_on("py-joblib@0.11:") + depends_on("py-narwhals@2.0.1:", when="@1.9:") + depends_on("py-threadpoolctl@3.5:", when="@1.9:") depends_on("py-threadpoolctl@3.2:", when="@1.8:") depends_on("py-threadpoolctl@3.1:", when="@1.5:") depends_on("py-threadpoolctl@2.0:", when="@0.23:") diff --git a/repos/spack_repo/builtin/packages/py_semver/package.py b/repos/spack_repo/builtin/packages/py_semver/package.py index 2b9eb3c302c..0a2f300862e 100644 --- a/repos/spack_repo/builtin/packages/py_semver/package.py +++ b/repos/spack_repo/builtin/packages/py_semver/package.py @@ -20,5 +20,6 @@ class PySemver(PythonPackage): version("3.0.1", sha256="9ec78c5447883c67b97f98c3b6212796708191d22e4ad30f4570f840171cbce1") version("2.8.1", sha256="5b09010a66d9a3837211bb7ae5a20d10ba88f8cb49e92cb139a69ef90d5060d8") + depends_on("py-setuptools@61:", when="@3.0.3:", type="build") depends_on("py-setuptools", type="build") depends_on("py-setuptools-scm", when="@3:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_sqlalchemy/package.py b/repos/spack_repo/builtin/packages/py_sqlalchemy/package.py index b61f92be1ad..0c27999861c 100644 --- a/repos/spack_repo/builtin/packages/py_sqlalchemy/package.py +++ b/repos/spack_repo/builtin/packages/py_sqlalchemy/package.py @@ -37,6 +37,12 @@ class PySqlalchemy(PythonPackage): description="Python modules for database access", values=any_combination_of("mysql", "postgresql", "pymysql"), ) + variant( + "asyncio", + default=False, + description="asyncio drivers to interface with the database backend", + when="@1.4:", + ) with default_args(type="build"): depends_on("py-setuptools@61:", when="@2.0.33:") @@ -61,7 +67,10 @@ class PySqlalchemy(PythonPackage): depends_on("py-pymysql", when="backend=pymysql @:1.3") depends_on("py-psycopg2", when="backend=postgresql @:1.3") - conflicts("^py-greenlet@0.4.17", when="@1.4.0:2.0.30 ^python@:3.13") + conflicts("^py-greenlet@0.4.17", when="@1.4:2.0.39 ^python@:3.13") + + depends_on("py-greenlet@1:", when="@2.0.40: +asyncio", type=("build", "run")) + depends_on("py-greenlet", when="@1.4: +asyncio", type=("build", "run")) def url_for_version(self, version): if self.spec.satisfies("@2.0.33:"): diff --git a/repos/spack_repo/builtin/packages/py_starlette/package.py b/repos/spack_repo/builtin/packages/py_starlette/package.py index 26893820046..1f67f643b89 100644 --- a/repos/spack_repo/builtin/packages/py_starlette/package.py +++ b/repos/spack_repo/builtin/packages/py_starlette/package.py @@ -16,6 +16,7 @@ class PyStarlette(PythonPackage): license("BSD-3-Clause") + version("0.46.2", sha256="7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5") version("0.41.2", sha256="9834fd799d1a87fd346deb76158668cfa0b0d56f85caefe8268e2d97c3468b62") version("0.37.2", sha256="9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823") version("0.36.3", sha256="90a671733cfb35771d8cc605e0b679d23b992f8dcfad48cc60b38cb29aeb7080") @@ -28,5 +29,6 @@ class PyStarlette(PythonPackage): depends_on("py-hatchling", type="build") + depends_on("py-anyio@3.6.2:4", when="@0.45.2:", type=("build", "run")) depends_on("py-anyio@3.4:4", type=("build", "run")) depends_on("py-typing-extensions@3.10.0:", when="^python@:3.9", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_trove_classifiers/package.py b/repos/spack_repo/builtin/packages/py_trove_classifiers/package.py index 6be563b0bf5..201e41bfe37 100644 --- a/repos/spack_repo/builtin/packages/py_trove_classifiers/package.py +++ b/repos/spack_repo/builtin/packages/py_trove_classifiers/package.py @@ -16,6 +16,9 @@ class PyTroveClassifiers(PythonPackage): license("Apache-2.0") + version( + "2026.6.1.19", sha256="c5132b4b61a829d11cfbd2d72e97f20a45ed6edb95e45c5efdeb5e00836b2745" + ) version( "2026.4.28.13", sha256="c85bb8a53c3de7330d1699b844ed9fb809a602a09ac15dc79ad6d1a509be0676" ) diff --git a/repos/spack_repo/builtin/packages/py_typer/package.py b/repos/spack_repo/builtin/packages/py_typer/package.py index 92321b25abc..de0fa076f67 100644 --- a/repos/spack_repo/builtin/packages/py_typer/package.py +++ b/repos/spack_repo/builtin/packages/py_typer/package.py @@ -15,6 +15,7 @@ class PyTyper(PythonPackage): license("MIT", checked_by="lgarrison") + version("0.20.1", sha256="68585eb1b01203689c4199bc440d6be616f0851e9f0eb41e4a778845c5a0fd5b") version("0.15.1", sha256="a0588c0a7fa68a1978a069818657778f86abe6ff5ea6abf472f940a08bfe4f0a") version("0.12.5", sha256="f592f089bedcc8ec1b974125d64851029c3b1af145f04aca64d69410f0c9b722") version("0.9.0", sha256="50922fd79aea2f4751a8e0408ff10d2662bd0c8bbfa84755a699f3bada2978b2") diff --git a/repos/spack_repo/builtin/packages/py_typing_extensions/package.py b/repos/spack_repo/builtin/packages/py_typing_extensions/package.py index 133be46b7e3..49318001783 100644 --- a/repos/spack_repo/builtin/packages/py_typing_extensions/package.py +++ b/repos/spack_repo/builtin/packages/py_typing_extensions/package.py @@ -24,6 +24,7 @@ class PyTypingExtensions(PythonPackage): version("4.13.2", sha256="e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef") version("4.12.2", sha256="1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8") version("4.8.0", sha256="df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef") + version("4.7.1", sha256="b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2") version("4.6.3", sha256="d91d5919357fe7f681a9f2b5b4cb2a5f1ef0a1e9f59c4d8ff0d3491e05c0ffd5") version("4.5.0", sha256="5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb") version("4.3.0", sha256="e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6") diff --git a/repos/spack_repo/builtin/packages/py_uv_build/package.py b/repos/spack_repo/builtin/packages/py_uv_build/package.py new file mode 100644 index 00000000000..641597e3726 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_uv_build/package.py @@ -0,0 +1,24 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyUvBuild(PythonPackage): + """The uv build backend.""" + + homepage = "https://github.com/astral-sh/uv" + pypi = "uv_build/uv_build-0.8.2.tar.gz" + + license("Apache-2.0 OR MIT") + + tags = ["build-tools"] + + version("0.11.6", sha256="3ca25d4fca52e0598084fab352a4cafe737043f5682e3cb654164f033ba6d736") + version("0.8.2", sha256="7f80aa603eb67d1816917c1dc372de89a81bf082c9330418a604c5eedab54c46") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-maturin@1", type="build") diff --git a/repos/spack_repo/builtin/packages/py_virtualenv/package.py b/repos/spack_repo/builtin/packages/py_virtualenv/package.py index 36f6eb4a32f..dac7e24561e 100644 --- a/repos/spack_repo/builtin/packages/py_virtualenv/package.py +++ b/repos/spack_repo/builtin/packages/py_virtualenv/package.py @@ -16,6 +16,7 @@ class PyVirtualenv(PythonPackage): license("MIT") + version("21.4.1", sha256="2ca543c713b72840ceffd94e9bdedfbd09a661defa1f7f69e5429ad4059442e2") version("21.2.0", sha256="1720dc3a62ef5b443092e3f499228599045d7fea4c79199770499df8becf9098") version("20.35.3", sha256="4f1a845d131133bdff10590489610c98c168ff99dc75d6c96853801f7f67af44") version("20.26.6", sha256="280aede09a2a5c317e409a00102e7077c6432c5a38f0ef938e643805a7ad2c48") @@ -82,6 +83,7 @@ class PyVirtualenv(PythonPackage): depends_on("py-platformdirs@2.4:2", when="@20.16.3:20.21") depends_on("py-platformdirs@2:2", when="@20.5:20.16.2") + depends_on("py-python-discovery@1.4:", when="@21.4:") depends_on("py-python-discovery@1:", when="@21:") depends_on("py-typing-extensions@4.13.2:", when="@20.34: ^python@:3.10") diff --git a/repos/spack_repo/builtin/packages/py_whenever/package.py b/repos/spack_repo/builtin/packages/py_whenever/package.py new file mode 100644 index 00000000000..8d04f46f97e --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_whenever/package.py @@ -0,0 +1,28 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyWhenever(PythonPackage): + """Modern datetime library for Python.""" + + homepage = "https://github.com/ariebovenberg/whenever" + pypi = "whenever/whenever-0.9.5.tar.gz" + + license("MIT") + + version("0.9.5", sha256="9d8f2fbc70acdab98a99b81a2ac594ebd4cc68d5b3506b990729a5f0b04d0083") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-setuptools-rust", type="build") + + depends_on("py-tzdata@2020.1:", when="platform=windows", type=("build", "run")) + # Waiting for when="not platform=" + depends_on("py-tzlocal@4:", when="platform=windows", type=("build", "run")) + depends_on("py-tzlocal@4:", when="platform=cray", type=("build", "run")) + depends_on("py-tzlocal@4:", when="platform=solaris", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_xgboost/add-lib64-1.patch b/repos/spack_repo/builtin/packages/py_xgboost/add-lib64-1.patch new file mode 100644 index 00000000000..710c2b5b474 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_xgboost/add-lib64-1.patch @@ -0,0 +1,27 @@ +diff --color=auto -Naur a/setup.py b/setup.py +--- a/setup.py 2026-05-08 12:09:37 ++++ b/setup.py 2026-05-08 12:14:02 +@@ -245,9 +245,10 @@ + if USER_OPTIONS['use-system-libxgboost'][2] != 0: + self.logger.info('Using system libxgboost.') + lib_path = os.path.join(sys.prefix, 'lib') ++ lib64_path = os.path.join(sys.prefix, 'lib64') + msg = 'use-system-libxgboost is specified, but ' + lib_name() + \ +- ' is not found in: ' + lib_path +- assert os.path.exists(os.path.join(lib_path, lib_name())), msg ++ ' is not found in ' + lib_path + ' or ' + lib64_path ++ assert os.path.exists(os.path.join(lib_path, lib_name())) or os.path.exists(os.path.join(lib64_path, lib_name())), msg + return [] + + lib_dir = os.path.join(self.install_dir, 'xgboost', 'lib') +diff --color=auto -Naur a/xgboost/libpath.py b/xgboost/libpath.py +--- a/xgboost/libpath.py 2026-05-08 12:09:37 ++++ b/xgboost/libpath.py 2026-05-08 12:15:15 +@@ -28,6 +28,7 @@ + # use libxgboost from a system prefix, if available. This should be the last + # option. + os.path.join(sys.prefix, 'lib'), ++ os.path.join(sys.prefix, 'lib64'), + ] + + if sys.platform == 'win32': diff --git a/repos/spack_repo/builtin/packages/py_xgboost/add-lib64.patch b/repos/spack_repo/builtin/packages/py_xgboost/add-lib64-2.patch similarity index 100% rename from repos/spack_repo/builtin/packages/py_xgboost/add-lib64.patch rename to repos/spack_repo/builtin/packages/py_xgboost/add-lib64-2.patch diff --git a/repos/spack_repo/builtin/packages/py_xgboost/package.py b/repos/spack_repo/builtin/packages/py_xgboost/package.py index 71fdfd3e92c..5691cb22465 100644 --- a/repos/spack_repo/builtin/packages/py_xgboost/package.py +++ b/repos/spack_repo/builtin/packages/py_xgboost/package.py @@ -34,7 +34,6 @@ class PyXgboost(PythonPackage): ) variant("dask", default=False, description="Enables Dask extensions for distributed training.") variant("plotting", default=False, description="Enables tree and importance plotting.") - patch("add-lib64.patch", when="@2:") for ver in ["1.3.3", "1.5.2", "1.6.1", "1.6.2", "1.7.6", "2.1.0", "2.1.1"]: depends_on("xgboost@" + ver, when="@" + ver) @@ -71,6 +70,10 @@ class PyXgboost(PythonPackage): depends_on("py-graphviz") depends_on("py-matplotlib") + # Hard-coded to search lib directory, add lib64 for certain distros + patch("add-lib64-1.patch", when="@1") + patch("add-lib64-2.patch", when="@2:") + def patch(self): # Hard-coded to search for system libxgboost in the Python installation prefix # https://github.com/dmlc/xgboost/issues/6706 diff --git a/repos/spack_repo/builtin/packages/qmcpack/package.py b/repos/spack_repo/builtin/packages/qmcpack/package.py index 55fd618bd8e..bb33aced2a9 100644 --- a/repos/spack_repo/builtin/packages/qmcpack/package.py +++ b/repos/spack_repo/builtin/packages/qmcpack/package.py @@ -26,6 +26,7 @@ class Qmcpack(CMakePackage, CudaPackage): # can occasionally change. # NOTE: 12/19/2017 QMCPACK 3.0.0 does not build properly with Spack. version("develop") + version("4.3.0", tag="v4.3.0", commit="bb7eede051f98ec03296664b304982e655f960c4") version("4.2.0", tag="v4.2.0", commit="44a7f7e99a5770ea368b8ea35b181329606bc343") version("4.1.0", tag="v4.1.0", commit="c32123a5233186b177d75b800b86f1ad3b1a1413") version("4.0.0", tag="v4.0.0", commit="0199944fb644b4798446fdfc0549c81666a4a943") diff --git a/repos/spack_repo/builtin/packages/r_ggplot2/package.py b/repos/spack_repo/builtin/packages/r_ggplot2/package.py index 8598955f845..06a2095c91f 100644 --- a/repos/spack_repo/builtin/packages/r_ggplot2/package.py +++ b/repos/spack_repo/builtin/packages/r_ggplot2/package.py @@ -19,6 +19,7 @@ class RGgplot2(RPackage): license("MIT") + version("4.0.3", sha256="690224bd61642b6222adb109470988e87f786e193cca77a15c0923cf9da73fa5") version("4.0.2", sha256="b915244599222a71ea56e256ba3810e444424190dbc37654de08b366ef144412") version("3.5.2", sha256="0a30024a2ff3e569412223c8f14563ed504f3e0851de03e42d1b5f73fe1f06bf") version("3.5.1", sha256="7c58b424f99b3634038e6f6d1fe4b0241b8aecb50e9c50466d5590f7e3144721") @@ -36,36 +37,38 @@ class RGgplot2(RPackage): version("2.1.0", sha256="f2c323ae855d6c089e3a52138aa7bc25b9fe1429b8df9eae89d28ce3c0dd3969") with default_args(type=("build", "run")): - depends_on("r@3.1:") - depends_on("r@3.2:", when="@3.2.0:") - depends_on("r@3.3:", when="@3.3.4:") + depends_on("r@4.1:", when="@4:") depends_on("r@3.5:", when="@3.5.0:") - depends_on("r@4.1:", when="@4.0.2:") + depends_on("r@3.3:", when="@3.3.4:") + depends_on("r@3.2:", when="@3.2.0:") + depends_on("r@3.1:") + depends_on("r-cli", when="@3.4.0:") - depends_on("r-glue", when="@3.3.3:") + depends_on("r-gtable@0.3.6:", when="@4:") depends_on("r-gtable@0.1.1:") - depends_on("r-gtable@0.3.6:", when="@4.0.2:") depends_on("r-isoband", when="@3.3.3:") depends_on("r-lifecycle@1.0.1.1:", when="@3.4.0:") - depends_on("r-mass") - depends_on("r-mgcv", when="@3.2.0:") - depends_on("r-rlang@0.3.0:", when="@3.0.0:") - depends_on("r-rlang@0.4.10:", when="@3.3.4:") - depends_on("r-rlang@1.0.0:", when="@3.4.0:") depends_on("r-rlang@1.1.0:", when="@3.4.2:") - depends_on("r-s7", when="@4.0.2:") - depends_on("r-scales@0.5.0:") - depends_on("r-scales@1.2.0:", when="@3.4.0:3.4.4") + depends_on("r-rlang@1.0.0:", when="@3.4.0:") + depends_on("r-rlang@0.4.10:", when="@3.3.4:") + depends_on("r-rlang@0.3.0:", when="@3.0.0:") + depends_on("r-s7", when="@4:") + depends_on("r-scales@1.4.0:", when="@4:") depends_on("r-scales@1.3.0:", when="@3.5.0:") - depends_on("r-scales@1.4.0:", when="@4.0.2:") - depends_on("r-tibble") - depends_on("r-vctrs@0.5.0:", when="@3.4.0:") + depends_on("r-scales@1.2.0:", when="@3.4.0:3.4.4") + depends_on("r-scales@0.5.0:") depends_on("r-vctrs@0.6.0:", when="@3.5.1:") - depends_on("r-withr@2.0.0:", when="@3.0.0:") + depends_on("r-vctrs@0.5.0:", when="@3.4.0:") depends_on("r-withr@2.5.0:", when="@3.4.0:") + depends_on("r-withr@2.0.0:", when="@3.0.0:") + # Historical dependencies + depends_on("r-digest", when="@:3.3.6") + depends_on("r-glue", when="@3.3.3:3") + depends_on("r-lazyeval", when="@:3.2.0") + depends_on("r-mass", when="@:3") + depends_on("r-mgcv", when="@3.2.0:3") depends_on("r-plyr@1.7.1:", when="@:3.1.1") depends_on("r-reshape2", when="@:3.2.0") - depends_on("r-lazyeval", when="@:3.2.0") + depends_on("r-tibble", when="@:3") depends_on("r-viridislite", when="@3.0.0:3.2.0") - depends_on("r-digest", when="@:3.3.6") diff --git a/repos/spack_repo/builtin/packages/raja/package.py b/repos/spack_repo/builtin/packages/raja/package.py index c03cb9d0a92..f666d0ed74d 100644 --- a/repos/spack_repo/builtin/packages/raja/package.py +++ b/repos/spack_repo/builtin/packages/raja/package.py @@ -216,6 +216,8 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage): when="@2024.02.1:2024.02.99 %oneapi@2025:", ) + patch("tile-iterator-comparison-fix-2024.02.patch", when="@2024.02.0:2024.02.2") + variant("openmp", default=False, description="Build OpenMP backend") variant("shared", default=False, description="Build shared libs") variant("desul", default=False, description="Build desul atomics backend") diff --git a/repos/spack_repo/builtin/packages/raja/tile-iterator-comparison-fix-2024.02.patch b/repos/spack_repo/builtin/packages/raja/tile-iterator-comparison-fix-2024.02.patch new file mode 100644 index 00000000000..8b849e6f82b --- /dev/null +++ b/repos/spack_repo/builtin/packages/raja/tile-iterator-comparison-fix-2024.02.patch @@ -0,0 +1,20 @@ +diff --git a/include/RAJA/pattern/kernel/Tile.hpp b/include/RAJA/pattern/kernel/Tile.hpp +index 351c263..9b1d65d 100644 +--- a/include/RAJA/pattern/kernel/Tile.hpp ++++ b/include/RAJA/pattern/kernel/Tile.hpp +@@ -169,13 +169,13 @@ struct IterableTiler { + } + + RAJA_HOST_DEVICE +- RAJA_INLINE bool operator!=(const IterableTiler &rhs) const ++ RAJA_INLINE bool operator!=(const iterator &rhs) const + { + return block_id != rhs.block_id; + } + + RAJA_HOST_DEVICE +- RAJA_INLINE bool operator<(const IterableTiler &rhs) const ++ RAJA_INLINE bool operator<(const iterator &rhs) const + { + return block_id < rhs.block_id; + } diff --git a/repos/spack_repo/builtin/packages/raxml_ng/package.py b/repos/spack_repo/builtin/packages/raxml_ng/package.py index 1bb5b32c97b..9e95a74eca5 100644 --- a/repos/spack_repo/builtin/packages/raxml_ng/package.py +++ b/repos/spack_repo/builtin/packages/raxml_ng/package.py @@ -22,8 +22,11 @@ class RaxmlNg(CMakePackage): url = "https://github.com/amkozlov/raxml-ng/archive/2.0.0.tar.gz" git = "https://github.com/amkozlov/raxml-ng.git" + maintainers("stelzch") + license("AGPL-3.0-only") + version("2.0.2", submodules=True, commit="0ee964320a3288c09e3acc6ac92a1b555cc94e2e") version("2.0.1", submodules=True, commit="a7d61b56d2e0e6e263e4686bcbd0017659b37711") version("2.0.0", submodules=True, commit="e995a54dda83e440ee15e890093c5b2718787043") version("1.2.2", submodules=True, commit="805318cef87bd5d67064efa299b5d1cf948367fd") diff --git a/repos/spack_repo/builtin/packages/rclone/package.py b/repos/spack_repo/builtin/packages/rclone/package.py index 427dca99d65..1bcc645c52d 100644 --- a/repos/spack_repo/builtin/packages/rclone/package.py +++ b/repos/spack_repo/builtin/packages/rclone/package.py @@ -18,6 +18,7 @@ class Rclone(GoPackage): license("MIT") + version("1.74.3", sha256="c51062f24bb8e6d05c252c9c9fb527adc831715e0dd936ca0c9fb8d07e49d66a") version("1.73.5", sha256="19c929ce2f54bd22af2db4dd9d2a289499b02274f9f7d3c6639090761adfab1f") version("1.73.3", sha256="608dde134e02a429b95ae566d638e514a9a658d0d69c35812069cf1c1b8f24af") version("1.70.2", sha256="982b1f09239855e7e55fb6a3b6a8146fe2ef93c8ba6e015a9c5d6ada5297ea30") @@ -59,6 +60,11 @@ class Rclone(GoPackage): depends_on("go@1.17:", type="build", when="@1.58:") depends_on("go@1.14:", type="build") + @property + def ldflags(self): + version_path = go("list", "./fs", output=str).strip() + return [f"-X {version_path}.Version={self.spec.version}"] + @run_after("install") def install_completions(self): rclone = Executable(self.prefix.bin.rclone) diff --git a/repos/spack_repo/builtin/packages/readline/package.py b/repos/spack_repo/builtin/packages/readline/package.py index e7c8309b586..dcb1f511941 100644 --- a/repos/spack_repo/builtin/packages/readline/package.py +++ b/repos/spack_repo/builtin/packages/readline/package.py @@ -36,6 +36,8 @@ class Readline(AutotoolsPackage, GNUMirrorPackage): # TODO: patches below are not managed by the GNUMirrorPackage base class for verstr, num, checksum in [ ("8.3", "001", "21f0a03106dbe697337cd25c70eb0edbaa2bdb6d595b45f83285cdd35bac84de"), + ("8.3", "002", "e27364396ba9f6debf7cbaaf1a669e2b2854241ae07f7eca74ca8a8ba0c97472"), + ("8.3", "003", "72dee13601ce38f6746eb15239999a7c56f8e1ff5eb1ec8153a1f213e4acdb29"), ("8.2", "001", "bbf97f1ec40a929edab5aa81998c1e2ef435436c597754916e6a5868f273aff7"), ("8.2", "002", "e06503822c62f7bc0d9f387d4c78c09e0ce56e53872011363c74786c7cd4c053"), ("8.2", "003", "24f587ba46b46ed2b1868ccaf9947504feba154bb8faabd4adaea63ef7e6acb0"), diff --git a/repos/spack_repo/builtin/packages/rocksdb/package.py b/repos/spack_repo/builtin/packages/rocksdb/package.py index a97d77ea20d..5c2109c5fff 100644 --- a/repos/spack_repo/builtin/packages/rocksdb/package.py +++ b/repos/spack_repo/builtin/packages/rocksdb/package.py @@ -17,6 +17,7 @@ class Rocksdb(MakefilePackage): license("Apache-2.0 OR GPL-2.0-only") version("master", git=git, branch="master", submodules=True) + version("11.1.1", sha256="63f11183fe40725a0e89a9e392f2c86c94b90064f1d95f5173a02cfe40de13f7") version("10.10.1", sha256="df2ff348f3fac8578fd4b727eee7267aaf90cd403c99b55e898d1db63fa8cff5") version("10.4.2", sha256="afccfab496556904900afacf7d99887f1d50cb893e5d2288bd502db233adacac") version("9.4.0", sha256="1f829976aa24b8ba432e156f52c9e0f0bd89c46dc0cc5a9a628ea70571c1551c") diff --git a/repos/spack_repo/builtin/packages/ross/package.py b/repos/spack_repo/builtin/packages/ross/package.py index 3466a4666e3..6420dc2925f 100644 --- a/repos/spack_repo/builtin/packages/ross/package.py +++ b/repos/spack_repo/builtin/packages/ross/package.py @@ -18,6 +18,7 @@ class Ross(CMakePackage): version("develop", branch="develop") version("master", branch="master") + version("8.1.1", sha256="e886cfc1cb825a9cf1a43cc177f5c10df37b564912a29c4a9007370946908fba") version("8.0.0", sha256="5339c9afcf77821fb6ebbcd93b8a1e651c7883e94dff250528815a08f84f1694") version("7.2.0", sha256="c937f4c7baa1918b6cd08f4eafae8cab44eddcd4aaa1175c23ff8562583ad726") version("7.1.1", sha256="550e3288cefedcbc7e6ca16cfbee0477b70399d63e94f554b60b32d714029722") diff --git a/repos/spack_repo/builtin/packages/rust/package.py b/repos/spack_repo/builtin/packages/rust/package.py index 1a17316ee9a..38f4efda780 100644 --- a/repos/spack_repo/builtin/packages/rust/package.py +++ b/repos/spack_repo/builtin/packages/rust/package.py @@ -38,6 +38,7 @@ class Rust(Package): version("nightly") # Stable versions. + version("1.96.0", sha256="b99ce16cdf0ecfc761b585ac84d131b46733465a02f8ecd0ff2de9713c62ee09") version("1.92.0", sha256="9e0d2ca75c7e275fdc758255bf4b03afb3d65d1543602746907c933b6901c3b8") version("1.86.0", sha256="022a27286df67900a044d227d9db69d4732ec3d833e4ffc259c4425ed71eed80") version("1.85.0", sha256="2f4f3142ffb7c8402139cfa0796e24baaac8b9fd3f96b2deec3b94b4045c6a8a") @@ -88,6 +89,7 @@ class Rust(Package): depends_on("rust-bootstrap@nightly", type="build", when="@nightly") # Stable version dependencies + depends_on("rust-bootstrap@1.95:1.96", type="build", when="@1.96") depends_on("rust-bootstrap@1.91:1.92", type="build", when="@1.92") depends_on("rust-bootstrap@1.85:1.86", type="build", when="@1.86") depends_on("rust-bootstrap@1.84:1.85", type="build", when="@1.85") @@ -114,6 +116,10 @@ class Rust(Package): phases = ["configure", "build", "install"] + def url_for_version(self, version): + ext = "gz" if version <= Version("1.92.0") else "xz" + return f"https://static.rust-lang.org/dist/rustc-{version}-src.tar.{ext}" + @classmethod def determine_version(csl, exe): output = Executable(exe)("--version", output=str, error=str) diff --git a/repos/spack_repo/builtin/packages/rust_bootstrap/package.py b/repos/spack_repo/builtin/packages/rust_bootstrap/package.py index 454735bfe31..ae0d7d289f3 100644 --- a/repos/spack_repo/builtin/packages/rust_bootstrap/package.py +++ b/repos/spack_repo/builtin/packages/rust_bootstrap/package.py @@ -24,6 +24,17 @@ class RustBootstrap(Package): # should update these binary releases as bootstrapping requirements are # modified by new releases of Rust. rust_releases = { + "1.96.0": { + "darwin": { + "x86_64": "63a6d717a5e5392ac43f0a1593e7aabe6128c8685d318cb890603b1688cb3339", + "aarch64": "f04a974f3579d3524f6b9bc6490a27c9fb358050e7cd8a641945f30bf24c1dce", + }, + "linux": { + "x86_64": "c295047583a56238ea06b43f849f4b877fa12bfd4c7103f8d9a74c94c9c4e108", + "aarch64": "371eadcca97062219cbd8593628eb5d2802bc370515d085fedce1b56b2baed57", + "powerpc64le": "fea8e9155c69740415f1c96fa8879e61b16238e26cfee62d15f4f93aa83cb8d5", + }, + }, "1.92.0": { "darwin": { "x86_64": "fc6868991e61e9262272effbb8956b23428430f5f4300c1b48eaae3969f8af2a", @@ -202,15 +213,16 @@ def url_for_version(self, version): # `spack checksum rust-bootstrap@1.70.0-darwin-aarch64`. match = re.search(r"(\S+)-(\S+)-(\S+)", str(version)) if match: - version = match.group(1) + version = Version(match.group(1)) os = self.rust_os[match.group(2)] target = self.rust_targets[match.group(3)] else: os = self.rust_os[self.os] target = self.target - url = "https://static.rust-lang.org/dist/rust-{0}-{1}-{2}.tar.gz" - return url.format(version, target, os) + ext = "gz" if version <= Version("1.92.0") else "xz" + url = "https://static.rust-lang.org/dist/rust-{0}-{1}-{2}.tar.{3}" + return url.format(version, target, os, ext) @run_before("install", when="platform=linux") def fixup_rpaths(self): diff --git a/repos/spack_repo/builtin/packages/sensei/package.py b/repos/spack_repo/builtin/packages/sensei/package.py index 76779db0fce..68369d4c5e4 100644 --- a/repos/spack_repo/builtin/packages/sensei/package.py +++ b/repos/spack_repo/builtin/packages/sensei/package.py @@ -38,7 +38,9 @@ class Sensei(CMakePackage): variant("shared", default=True, description="Enables shared libraries") variant("ascent", default=False, description="Build with ParaView-Catalyst support") - variant("catalyst", default=False, description="Build with ParaView-Catalyst support") + variant( + "catalyst", default=False, description="Build with ParaView-Catalyst support", when="@5:" + ) variant("libsim", default=False, description="Build with VisIt-Libsim support") variant("vtkio", default=False, description="Enable adaptors to write to VTK XML format") variant("adios2", default=False, description="Enable ADIOS2 adaptors and endpoints") @@ -47,7 +49,7 @@ class Sensei(CMakePackage): "vtkm", default=False, description="Enable VTKm adaptors and endpoints", - when="@4: +catalyst", + when="@5: +catalyst", ) variant("python", default=False, description="Enable Python bindings", when="@3:") variant( @@ -64,18 +66,17 @@ class Sensei(CMakePackage): depends_on("paraview+hdf5", when="+catalyst+hdf5") depends_on("paraview+python", when="+catalyst+python") - depends_on("paraview@5.5.0:5.5.2", when="@:2.1.1 +catalyst") - depends_on("paraview@5.6:5.7", when="@3:3.2.1 +catalyst") - depends_on("paraview@5.7:5.9", when="@3.2.2 +catalyst") - depends_on("paraview@5.7:5.10", when="@4:4 +catalyst") + depends_on("paraview", when="@5:5 +catalyst") # Visit Dep depends_on("visit", when="+libsim") # VTK Dep - depends_on("vtk@8:8", when="@:3 ~catalyst") - depends_on("vtk+python", when="@:3 ~catalyst+python") - depends_on("vtk@9:", when="@4: +vtkio ~catalyst") + depends_on("vtk@8:8", when="@:3") + depends_on("vtk+python", when="@:3 +python") + depends_on("vtk+python", when="@5: ~catalyst +python") + depends_on("vtk@9:", when="@4:4 +vtkio") + depends_on("vtk@9:", when="@5: +vtkio ~catalyst") # VTK-m depends_on("paraview use_vtkm=on", when="+vtkm") diff --git a/repos/spack_repo/builtin/packages/sentieon_genomics/package.py b/repos/spack_repo/builtin/packages/sentieon_genomics/package.py index 16c2df03fd2..9ccea08bb53 100644 --- a/repos/spack_repo/builtin/packages/sentieon_genomics/package.py +++ b/repos/spack_repo/builtin/packages/sentieon_genomics/package.py @@ -27,6 +27,7 @@ class SentieonGenomics(Package): url = "https://s3.amazonaws.com/sentieon-release/software/sentieon-genomics-201808.01.tar.gz" maintainers("snehring") + version("202503.03", sha256="36eaa10c51c31547688bf715d6931ae12b24ab5ef45f95a73d23854411f45400") version("202503.02", sha256="b3d619b6b9305178ace70f7c46df786db4e697d31699df9e13db575caec2e470") version("202503.01", sha256="f6dd670e151ca86b27fdb0eb5a6c32813fca8666c55623d869283ea6301152c4") version("202503", sha256="da8fd40e8fe86e0d52ac7023b2ee561d5eb4a89f15afe79ef2ff1d3a13cea73d") diff --git a/repos/spack_repo/builtin/packages/seqkit/package.py b/repos/spack_repo/builtin/packages/seqkit/package.py index bbc9eabfc3b..fb3dcb46a76 100644 --- a/repos/spack_repo/builtin/packages/seqkit/package.py +++ b/repos/spack_repo/builtin/packages/seqkit/package.py @@ -2,18 +2,11 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems import go from spack_repo.builtin.build_systems.go import GoPackage from spack.package import * -class GoBuilder(go.GoBuilder): - @property - def build_directory(self): - return join_path(self.pkg.stage.source_path, "seqkit") - - class Seqkit(GoPackage): """seqkit: a cross-platform and ultrafast toolkit for FASTA/Q file manipulation""" @@ -30,3 +23,5 @@ class Seqkit(GoPackage): version("2.4.0", sha256="c319f3d5feb7c99309e654042432959f01bbc5f7e4c71f55dc9854df46c73c7f") depends_on("go@1.17:", type="build") + + build_directory = "seqkit" diff --git a/repos/spack_repo/builtin/packages/simgrid/package.py b/repos/spack_repo/builtin/packages/simgrid/package.py index 19e73a3e2e2..89c6562d4d0 100644 --- a/repos/spack_repo/builtin/packages/simgrid/package.py +++ b/repos/spack_repo/builtin/packages/simgrid/package.py @@ -54,16 +54,17 @@ class Simgrid(CMakePackage): sha256="4fdff0a8e4c81f8edf6f7eedfa32e19748abe688d156ea9240178c558c8bad33", url="https://github.com/simgrid/simgrid/releases/download/v3_22/SimGrid-3.22.tar.gz", ) - version( - "3.21", - sha256="d2a6e9021016dd39a2b6f8d5d18c8223f6885746c5269550d19ba29c47c0c6a0", - url="https://github.com/simgrid/simgrid/releases/download/v3_21/SimGrid-3.21.tar.gz", - ) - version( - "3.20", - sha256="4d4757eb45d87cf18d990d589c31d223b0ea8cf6fcd8c94fca4d38162193cef6", - url="https://github.com/simgrid/simgrid/releases/download/v3.20/SimGrid-3.20.tar.gz", - ) + with default_args(deprecated=True): + version( + "3.21", + sha256="d2a6e9021016dd39a2b6f8d5d18c8223f6885746c5269550d19ba29c47c0c6a0", + url="https://github.com/simgrid/simgrid/releases/download/v3_21/SimGrid-3.21.tar.gz", + ) + version( + "3.20", + sha256="4d4757eb45d87cf18d990d589c31d223b0ea8cf6fcd8c94fca4d38162193cef6", + url="https://github.com/simgrid/simgrid/releases/download/v3.20/SimGrid-3.20.tar.gz", + ) version("develop", branch="master") diff --git a/repos/spack_repo/builtin/packages/sst_core/package.py b/repos/spack_repo/builtin/packages/sst_core/package.py index 21cdd4e6155..f37fd3bf36d 100644 --- a/repos/spack_repo/builtin/packages/sst_core/package.py +++ b/repos/spack_repo/builtin/packages/sst_core/package.py @@ -21,6 +21,7 @@ class SstCore(AutotoolsPackage): license("BSD-3-Clause") + version("16.0.0", sha256="20733d6334bc80dd8cf5695d1eb3bd32ada80dcf3151695b8dbdbbac28ead616") version("15.1.2", sha256="21aabfddb80c7aaf65e562894e0542bdb871bbc630362c3cef579d949c456f33") version("15.1.1", sha256="651cf5ee1438a5128aea2ad8b518c5437a1637dce357cbcbdd58681fa749222f") version("15.1.0", sha256="ec3d9e733bcf99283b526cfb4a853787d303a8d55b2a42d5102b0f4f4a4feb81") @@ -87,7 +88,7 @@ class SstCore(AutotoolsPackage): depends_on("cxx", type="build") # generated depends_on("c", type="build") - depends_on("python@:3.11", type=("build", "run", "link")) + depends_on("python@3.9:", type=("build", "run", "link")) depends_on("mpi", when="+pdes_mpi") depends_on("zoltan", when="+zoltan") depends_on("hdf5 +cxx", when="+hdf5") @@ -96,7 +97,7 @@ class SstCore(AutotoolsPackage): depends_on("ncurses", when="+curses", type=("build", "link")) with when("@develop,master,14.0.0"): - depends_on("autoconf@1.68:", type="build") + depends_on("autoconf@2.69:", type="build") depends_on("automake@1.11.1:", type="build") depends_on("libtool@1.2.4:", type="build") depends_on("m4", type="build") @@ -105,6 +106,10 @@ class SstCore(AutotoolsPackage): with when("@14.0.0"): patch("1110-ncurses_detection.patch", level=0) + with when("^mpi=openmpi"): + # < 4 is untested and 5 doesn't pass tests due to reference outputs + depends_on("openmpi@4") + # force out-of-source builds build_directory = "spack-build" diff --git a/repos/spack_repo/builtin/packages/sst_elements/package.py b/repos/spack_repo/builtin/packages/sst_elements/package.py index adf44ef6659..1aad92036fa 100644 --- a/repos/spack_repo/builtin/packages/sst_elements/package.py +++ b/repos/spack_repo/builtin/packages/sst_elements/package.py @@ -21,6 +21,7 @@ class SstElements(AutotoolsPackage): license("BSD-3-Clause") + version("16.0.0", sha256="e0f72777df2d0619bd529334994132d919bd0cdc8f1e84bcbc4200564482258f") version("15.1.0", sha256="e7162bb8719341230217dd5ab9d36bb9529ed9ce3d206ca74948044290080c93") version("15.0.0", sha256="98f7fbd4bce16f639616edb889fb3c6667b50899273114854e77fcdb26bcddd6") version("14.1.0", sha256="433994065810d3afee4e355173e781cd76171043cce8835bbc40887672a33350") @@ -65,16 +66,15 @@ class SstElements(AutotoolsPackage): variant("otf2", default=False, description="Build with OTF2") variant("ariel_mpi", default=False, description="Build Ariel with MPI Support") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") - depends_on("python@:3.11", type=("build", "run")) + depends_on("python@3.9:", type=("build", "run")) depends_on("sst-core") depends_on("sst-core@develop", when="@develop") depends_on("sst-core@master", when="@master") - depends_on("intel-pin", when="+pin") + depends_on("intel-pin@:3", when="+pin") depends_on("dramsim2@2:", when="+dramsim2") depends_on("dramsim3@master", when="+dramsim3") depends_on("sst-dumpi@master", when="+dumpi") @@ -94,7 +94,7 @@ class SstElements(AutotoolsPackage): depends_on("mpi", when="+ariel_mpi") for version_name in ("master", "develop"): - depends_on("autoconf@1.68:", type="build", when="@{}".format(version_name)) + depends_on("autoconf@2.69:", type="build", when="@{}".format(version_name)) depends_on("automake@1.11.1:", type="build", when="@{}".format(version_name)) depends_on("libtool@1.2.4:", type="build", when="@{}".format(version_name)) depends_on("m4", type="build", when="@{}".format(version_name)) @@ -113,6 +113,10 @@ class SstElements(AutotoolsPackage): ) requires("+pin", when="+ariel_mpi", msg="Building Ariel requires pin") + with when("^mpi=openmpi"): + # < 4 is untested and 5 doesn't pass tests due to reference outputs + depends_on("openmpi@4") + # force out-of-source builds build_directory = "spack-build" diff --git a/repos/spack_repo/builtin/packages/sst_macro/package.py b/repos/spack_repo/builtin/packages/sst_macro/package.py index 443a07cd414..adc5c585de1 100644 --- a/repos/spack_repo/builtin/packages/sst_macro/package.py +++ b/repos/spack_repo/builtin/packages/sst_macro/package.py @@ -22,6 +22,7 @@ class SstMacro(AutotoolsPackage): maintainers("berquist", "jmlapre") + version("16.0.0", sha256="4d8c45b0a103b173d2efc7c692a2aad06bcec19d8bec20bc835261a7aabead3a") version("15.1.0", sha256="6ec4e2e79993672329063bb2e4b70f5b0f1317f7bdd46e9898a46d346d8b3a1d") version("15.0.0", sha256="ce4bdb28b1500f2fd6875e3ff7a630e24ae381b58c72ae24a5157181d9546d53") version("14.1.0", sha256="241f42f5c460b0e7462592a7f412bda9c9de19ad7a4b62c22f35be4093b57014") @@ -47,16 +48,19 @@ class SstMacro(AutotoolsPackage): version("master", branch="master") version("develop", branch="devel") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + # This can go away when the DUMPI package is depended on explicitly. + depends_on("fortran", type="build") for version_name in ("master", "develop"): depends_on("autoconf@1.68:", type="build", when="@{}".format(version_name)) depends_on("automake@1.11.1:", type="build", when="@{}".format(version_name)) - depends_on("libtool@1.2.4:", type="build", when="@{}".format(version_name)) + depends_on("libtool@2.2.6:", type="build", when="@{}".format(version_name)) depends_on("m4", type="build", when="@{}".format(version_name)) + depends_on("grep", type="build") + depends_on("sed", type="build") depends_on("binutils", type="build") depends_on("zlib-api", type=("build", "link")) depends_on("otf2", when="+otf2") @@ -65,6 +69,8 @@ class SstMacro(AutotoolsPackage): # Allow mismatch between core dependency version and current macro version. depends_on("sst-core", when="+core") depends_on("gettext") + # configure shows this as an optional dependency which is incorrect. + depends_on("python@3") variant("pdes_threads", default=True, description="Enable thread-parallel PDES simulation") variant("pdes_mpi", default=False, description="Enable distributed PDES simulation") @@ -128,4 +134,8 @@ def configure_args(self): env["F77"] = spec["mpi"].mpif77 env["FC"] = spec["mpi"].mpifc + args.append(f"--with-python={spec['python'].command.path}") + # Not python-config in order to match search precedence of sst-core + args.append(f"--with-python-config={spec['python'].prefix.bin.join('python3-config')}") + return args diff --git a/repos/spack_repo/builtin/packages/starship/package.py b/repos/spack_repo/builtin/packages/starship/package.py index ec1b6feadb1..bf2f4eab21d 100644 --- a/repos/spack_repo/builtin/packages/starship/package.py +++ b/repos/spack_repo/builtin/packages/starship/package.py @@ -15,14 +15,14 @@ class Starship(CargoPackage): maintainers("ebagrenrut") - license("ISC") + license("ISC", checked_by="mcmehrtens", when="@0.2.0:") + version("1.25.1", sha256="521306b14066ee7e332d998ef5b5b6455fdc6085c52e86b6316a7cdc37bae1d8") version("1.25.0", sha256="e77f3c23683eb544f6dae7171e3c80676aefc66329225bdcd58e40846bb6445f") version("1.24.2", sha256="b7ab0ef364f527395b46d2fb7f59f9592766b999844325e35f62c8fa4d528795") version("1.24.1", sha256="4f2ac4181c3dea66f84bf8c97a3cb39dd218c27c8e4ade4de149d3834a87c428") depends_on("c", type="build") - depends_on("cmake", type="build") depends_on("rust@1.90:", type="build", when="@1.24.2:") depends_on("rust@1.89:", type="build") diff --git a/repos/spack_repo/builtin/packages/strumpack/package.py b/repos/spack_repo/builtin/packages/strumpack/package.py index dbc9f9458e2..b5a5f96441d 100644 --- a/repos/spack_repo/builtin/packages/strumpack/package.py +++ b/repos/spack_repo/builtin/packages/strumpack/package.py @@ -127,6 +127,13 @@ class Strumpack(CMakePackage, CudaPackage, ROCmPackage): # https://github.com/pghysels/STRUMPACK/commit/e4b110b2d823c51a90575b77ec1531c699097a9f patch("strumpack-7.0.1-mpich-hipcc.patch", when="@7.0.1 +rocm ^mpich") + # https://github.com/pghysels/STRUMPACK/pull/142 + patch( + "https://github.com/pghysels/STRUMPACK/commit/e08ec96e8514d3b8e374fd436eae5e1590a2c254.patch?full_index=1", + sha256="db741166d26768f77a97651e628a75cc9d7894ad5613f20450a494bb3cb08bb0", + when="@8.0.0 +cuda ^cuda@13.2:", + ) + def cmake_args(self): spec = self.spec diff --git a/repos/spack_repo/builtin/packages/talosctl/package.py b/repos/spack_repo/builtin/packages/talosctl/package.py index 5453cf09c7f..8fd27a7208d 100644 --- a/repos/spack_repo/builtin/packages/talosctl/package.py +++ b/repos/spack_repo/builtin/packages/talosctl/package.py @@ -19,8 +19,10 @@ class Talosctl(GoPackage): license("MPL-2.0", checked_by="RobertMaaskant") + version("1.13.3", sha256="f0f42d68db52cec6f5e6f4da3994f7f4c9dca700e05b690184ea588251f92aca") version("1.12.6", sha256="bfae01fe1db88cadde1502c552f5bae673524f4dc3512fd99e001c85a86b4515") + depends_on("go@1.26.3:", type="build", when="@1.13.1:") depends_on("go@1.25.5:", type="build", when="@1.12.6:") build_directory = "cmd/talosctl" diff --git a/repos/spack_repo/builtin/packages/tau/package.py b/repos/spack_repo/builtin/packages/tau/package.py index 695c421a2e2..b39684716d1 100644 --- a/repos/spack_repo/builtin/packages/tau/package.py +++ b/repos/spack_repo/builtin/packages/tau/package.py @@ -222,6 +222,9 @@ class Tau(Package): conflicts("+comm", when="@:2.34 +python", msg="Bug in +comm with +python up to @2.34") + # header changes require upstream to add explicit includes + conflicts("^cuda@13.2:", when="@:2.35.1 +cuda") + # Elf only required from 2.28.1 on conflicts("+elf", when="@:2.28.0") conflicts("+libdwarf", when="@:2.28.0") diff --git a/repos/spack_repo/builtin/packages/tree_sitter/package.py b/repos/spack_repo/builtin/packages/tree_sitter/package.py index ee23e31c27d..523afcea63d 100644 --- a/repos/spack_repo/builtin/packages/tree_sitter/package.py +++ b/repos/spack_repo/builtin/packages/tree_sitter/package.py @@ -15,11 +15,18 @@ class TreeSitter(MakefilePackage): homepage = "https://tree-sitter.github.io/tree-sitter/" url = "https://github.com/tree-sitter/tree-sitter/archive/refs/tags/v0.20.1.tar.gz" + supplier = "Organization: tree-sitter" maintainers("albestro") - license("MIT") + license("MIT", checked_by="mcmehrtens", when="@0.14:") + version("0.26.9", sha256="8e14780500933f43d86662fcaa1b0ce99ebe9c220f4680bc929dce09a0e0cfc6") + version("0.26.8", sha256="e6826b7533ec3a885aba598377a6d20b5a6321ff3db76968e960c2352d3a5077") + version("0.26.7", sha256="4343107ad1097a35e106092b79e5dd87027142c6fba5e4486b1d1d44d5499f84") + version("0.26.6", sha256="b4218185a48a791d4022ab3969709e271a70a0253e94792abbcf18d7fcf4291c") + version("0.26.5", sha256="8e012493b2103e0471d3aba8048b73bc1a3138132974e2fd8bfb89a63e62f478") + version("0.26.4", sha256="08932434d4cf8472a63579253937c302dd97765c65febd59631860905fd3cbf7") version("0.26.3", sha256="7f4a7cf0a2cd217444063fe2a4d800bc9d21ed609badc2ac20c0841d67166550") version("0.26.2", sha256="3cda4166a049fc736326941d6f20783b698518b0f80d8735c7754a6b2d173d9a") version("0.25.3", sha256="862fac52653bc7bc9d2cd0630483e6bdf3d02bcd23da956ca32663c4798a93e3") @@ -54,7 +61,14 @@ class TreeSitter(MakefilePackage): depends_on("c", type="build") with when("+cli"): - depends_on("rust", type="build", when="+cli") + depends_on("rust", type="build") + + # minimum rust versions from `rust-version` in the upstream Cargo.toml + depends_on("rust@1.84:", type="build", when="@0.26:") + depends_on("rust@1.82:", type="build", when="@0.25") + depends_on("rust@1.74.1:", type="build", when="@0.22:0.24") + depends_on("rust@1.70:", type="build", when="@0.21") + depends_on("rust@1.65:", type="build", when="@0.20.8:0.20") # tree-sitter-cli needs a c compiler and a javascript runtime # https://tree-sitter.github.io/tree-sitter/creating-parsers/1-getting-started.html#dependencies @@ -71,22 +85,17 @@ class TreeSitter(MakefilePackage): when="@0.26:0.26.3", ) - def setup_build_environment(self, env): - env.set("PREFIX", self.prefix) - + def flag_handler(self, name, flags): # Starting from 0.25 endianness is taken into account using system headers # https://github.com/tree-sitter/tree-sitter/pull/3740 # but GLIBC provides them according to some defines that changed over time. # https://www.sourceware.org/glibc/wiki/Release/2.20#Deprecation_of__BSD_SOURCE_and__SVID_SOURCE_feature_macros - if self.spec.satisfies("@0.25 ^glibc@:2.19"): - env.append_flags("CFLAGS", "-D_BSD_SOURCE") - - def build(self, spec, prefix): - super().build(spec, prefix) + if name == "cflags" and self.spec.satisfies("@0.25 ^glibc@:2.19"): + flags.append("-D_BSD_SOURCE") + return (flags, None, None) - if spec.satisfies("+cli"): - cargo = Executable("cargo") - cargo("build") + def setup_build_environment(self, env): + env.set("PREFIX", self.prefix) def install(self, spec, prefix): super().install(spec, prefix) @@ -98,4 +107,4 @@ def install(self, spec, prefix): else: crate_cli_path = "cli" - cargo("install", "--root", prefix, "--path", crate_cli_path) + cargo("install", "--locked", "--root", prefix, "--path", crate_cli_path) diff --git a/repos/spack_repo/builtin/packages/trilinos/package.py b/repos/spack_repo/builtin/packages/trilinos/package.py index e362723bfcc..f8f5d24cae4 100644 --- a/repos/spack_repo/builtin/packages/trilinos/package.py +++ b/repos/spack_repo/builtin/packages/trilinos/package.py @@ -53,7 +53,9 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): version("master", branch="master") version("develop", branch="develop") + version("17.1.1", sha256="482bb76c9a993767a9e649261462f70620254a631d34fb089482d8474dfb2766") version("17.0.0", sha256="7afa68fc6bf1dfdcd0c07f7b61055b03509e62cee1a835d570201b46aa440a6b") + version("16.2.1", sha256="c68a9d28fc9e7b06f33804c1f5e998234820878c21ae075649483b56992cea05") version("16.2.0", sha256="543aa56232d7c0cbe73705fab2d3b5524f11b15fef8917aa14de02d23a5ca418") version("16.1.0", sha256="e9651c88f581049457036cfc01b527a9d3903c257338eeeab942befd7452f23a") version("16.0.0", sha256="46bfc40419ed2aa2db38c144fb8e61d4aa8170eaa654a88d833ba6b92903f309") @@ -479,16 +481,20 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): depends_on("kokkos+hip_relocatable_device_code", when="+rocm_rdc") depends_on("kokkos-kernels+cusparse", when="+cusparse") depends_on("kokkos~complex_align") - depends_on("kokkos@=5.0.2", when="@master:") + depends_on("kokkos@=5.1.1", when="@master:") + depends_on("kokkos@=5.1.1", when="@17.1") depends_on("kokkos@=5.0.2", when="@17.0") - depends_on("kokkos@=4.7.01", when="@16.2") + depends_on("kokkos@=4.7.04", when="@16.2.1") + depends_on("kokkos@=4.7.01", when="@16.2.0") depends_on("kokkos@=4.5.01", when="@16.1") depends_on("kokkos@=4.3.01", when="@16.0") depends_on("kokkos@=4.2.01", when="@15.1:15") depends_on("kokkos@=4.1.00", when="@14.4:15.0") - depends_on("kokkos-kernels@=5.0.2", when="@master:") + depends_on("kokkos-kernels@=5.1.1", when="@master:") + depends_on("kokkos-kernels@=5.1.1", when="@17.1") depends_on("kokkos-kernels@=5.0.2", when="@17.0") - depends_on("kokkos-kernels@=4.7.01", when="@16.2") + depends_on("kokkos-kernels@=4.7.04", when="@16.2.1") + depends_on("kokkos-kernels@=4.7.01", when="@16.2.0") depends_on("kokkos-kernels@=4.5.01", when="@16.1") depends_on("kokkos-kernels@=4.3.01", when="@16.0") depends_on("kokkos-kernels@=4.2.01", when="@15.1:15") diff --git a/repos/spack_repo/builtin/packages/trivy/package.py b/repos/spack_repo/builtin/packages/trivy/package.py index 7520c26ad90..f4764a43a25 100644 --- a/repos/spack_repo/builtin/packages/trivy/package.py +++ b/repos/spack_repo/builtin/packages/trivy/package.py @@ -17,6 +17,7 @@ class Trivy(GoPackage): license("Apache-2.0", checked_by="RobertMaaskant") + version("0.71.0", sha256="922f2e818849201df66fecdc9cf8b5f5d315130e476c1460621ab447db7d744f") version("0.70.0", sha256="ff9ac06468aab89802388f16d1d179f4680db714afbf6a8132a417d288aa008e") version("0.69.3", sha256="3ca5fa62932273dd7eef3b6ec762625da42304ebb8f13e4be9fdd61545ca1773") version("0.64.1", sha256="9e23c90bd1afd9c369f1582712907e8e0652c8f5825e599850183af174c65666") @@ -27,6 +28,7 @@ class Trivy(GoPackage): version("0.61.1", sha256="f6ad43e008c008d67842c9e2b4af80c2e96854db8009fba48fc37b4f9b15f59b") version("0.61.0", sha256="1e97b1b67a4c3aee9c567534e60355033a58ce43a3705bdf198d7449d53b6979") + depends_on("go@1.26.3:", type="build", when="@0.71.0:") depends_on("go@1.25.8:", type="build", when="@0.70.0:") depends_on("go@1.25.6:", type="build", when="@0.69.1:") depends_on("go@1.24.4:", type="build", when="@0.64:") @@ -35,21 +37,10 @@ class Trivy(GoPackage): build_directory = "cmd/trivy" - # Required to correctly set the version - # https://github.com/aquasecurity/trivy/blob/v0.61.0/goreleaser.yml#L11 @property - def build_args(self): - extra_ldflags = [f"-X 'github.com/aquasecurity/trivy/pkg/version/app.ver=v{self.version}'"] - - args = super().build_args - - if "-ldflags" in args: - ldflags_index = args.index("-ldflags") + 1 - args[ldflags_index] = args[ldflags_index] + " " + " ".join(extra_ldflags) - else: - args.extend(["-ldflags", " ".join(extra_ldflags)]) - - return args + def ldflags(self): + version_path = go("list", "../../pkg/version/app", output=str).strip() + return [f"-X {version_path}.ver=v{self.spec.version}"] def setup_build_environment(self, env: EnvironmentModifications) -> None: if self.spec.satisfies("@0.67.0:"): diff --git a/repos/spack_repo/builtin/packages/trng/package.py b/repos/spack_repo/builtin/packages/trng/package.py index e2d051e05f8..cb156b08e81 100644 --- a/repos/spack_repo/builtin/packages/trng/package.py +++ b/repos/spack_repo/builtin/packages/trng/package.py @@ -15,7 +15,7 @@ class Trng(CMakePackage): maintainers("chapman39") - version("4.28", commit="691817a4a0331421776e7f00efa9fbe81554da86", submodules=True) + version("4.28.1", commit="cc1b170b050b541ac481415b175394670c2a4e85", submodules=True) version("4.24", commit="a22a32b9a285d1293b74b17b34f81af5dcec6311") version("4.23.1", commit="610f7836610e9e01788f8461fbe83b67544ded7c") version("4.23", commit="22a30c493eff4cb547185fa48275683751df18e0") diff --git a/repos/spack_repo/builtin/packages/ucc/package.py b/repos/spack_repo/builtin/packages/ucc/package.py index 95defa1ccb9..805c4034298 100644 --- a/repos/spack_repo/builtin/packages/ucc/package.py +++ b/repos/spack_repo/builtin/packages/ucc/package.py @@ -18,6 +18,7 @@ class Ucc(AutotoolsPackage, CudaPackage, ROCmPackage): maintainers("zzzoom") + version("1.8.0", sha256="1fc0b7c5d6e5592ae1efff13705ff5cee2e67eba67914c2c70039e6854310b67") version("1.7.0", sha256="b40df0db75b8505844547574a3a7dad16c9033d7e1ca099ea8508bc57a62b454") version("1.6.0", sha256="c77897cdaec2114234504fd9259d5143a6933a8ee51aad52fbc4ad1c9752114d") version("1.5.1", sha256="7921424e4b6b756133497ab6fdfb8d038eea33f337d4c2dbce13f59e04d16e5b") diff --git a/repos/spack_repo/builtin/packages/umpire/package.py b/repos/spack_repo/builtin/packages/umpire/package.py index 8b3b880862d..db30c15eb8e 100644 --- a/repos/spack_repo/builtin/packages/umpire/package.py +++ b/repos/spack_repo/builtin/packages/umpire/package.py @@ -325,7 +325,6 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): conflicts("+deviceconst", when="~rocm~cuda") conflicts("~openmp", when="+omptarget", msg="OpenMP target requires OpenMP") conflicts("+cuda", when="+rocm") - conflicts("+tools", when="+rocm") conflicts( "+rocm", when="+omptarget", msg="Cant support both rocm and openmp device backends at once" ) diff --git a/repos/spack_repo/builtin/packages/util_linux/package.py b/repos/spack_repo/builtin/packages/util_linux/package.py index b95e0e8f75a..896c1b74836 100644 --- a/repos/spack_repo/builtin/packages/util_linux/package.py +++ b/repos/spack_repo/builtin/packages/util_linux/package.py @@ -19,26 +19,57 @@ class UtilLinux(AutotoolsPackage): license("GPL-2.0-only", checked_by="wdconinc") - version("2.40.2", sha256="7bec316b713a14c6be1a5721aa0e56a3b6170277329e6e1f1a56013cc91eece0") - version("2.40", sha256="2a51d08cb71fd8e491e0cf633032c928f9a2848417f8441cb8cf7ef9971de916") - version("2.39.3", sha256="40ea07584d56c310455471afa92c119ec259776a561af7159cc802344c2c370d") - version("2.39.1", sha256="d7c8a58eb2c7248a32754eb3a3b6772e368b984d9907ada834c2cf3e13024270") - version("2.38.1", sha256="0820eb8eea90408047e3715424bc6be771417047f683950fecb4bdd2e2cbbc6e") - version("2.38", sha256="c31d4e54f30b56b0f7ec8b342658c07de81378f2c067941c2b886da356f8ad42") - version("2.37.4", sha256="c8b7b4fa541f974cc32c1c6559d9bfca33651020a456ad6ee5fc9b0cacd00151") - version("2.37.2", sha256="15db966474e459b33fa390a6b892190a92079a73ca45384cde4c86e6ed265a86") - version("2.37.1", sha256="0fe9ee8ee7f157be8abcfc2902ec8de9fe30b39173b84e4c458675cef4709b35") - version("2.37", sha256="faa8b46d080faa6f32c57da81eda871e38e1e27ba4e9b61cb2589334671aba50") - version("2.36.2", sha256="f5dbe79057e7d68e1a46fc04083fc558b26a49499b1b3f50e4f4893150970463") - version("2.36", sha256="82942cd877a989f6d12d4ce2c757fb67ec53d8c5cd9af0537141ec5f84a2eea3") - version("2.35.1", sha256="37ac05d82c6410d89bc05d43cee101fefc8fe6cf6090b3ce7a1409a6f35db606") - version("2.35", sha256="98acab129a8490265052e6c1e033ca96d68758a13bb7fcd232c06bf16cc96238") - version("2.34", sha256="b62c92e5e1629642113cd41cec1ee86d1ee7e36b8ffe8ec3ac89c11797e9ac25") - version("2.33.1", sha256="e15bd3142b3a0c97fffecaed9adfdef8ab1d29211215d7ae614c177ef826e73a") - version("2.33", sha256="952fb0d3498e81bd67b3c48e283c80cb12c719bc2357ec5801e7d420991ad319") - version("2.29.2", sha256="29ccdf91d2c3245dc705f0ad3bf729ac41d8adcdbeff914e797c552ecb04a4c7") - version("2.29.1", sha256="a6a7adba65a368e6dad9582d9fbedee43126d990df51266eaee089a73c893653") - version("2.25", sha256="7e43273a9e2ab99b5a54ac914fddf5d08ba7ab9b114c550e9f03474672bd23a1") + version("2.42.1", sha256="36d2cfa2ae336732e144c36ceafdf3ed86319f5d7413a49bedb0a773e7833fe3") + version("2.41.4", sha256="843d7bfb2c9a3413cd9ba4f6d7580e73761b06f7264832d5a2fcb5cc1563b938") + + # @:2.40.2 fail to build with glibc@2.42: bsearch() became a type-safety macro and lsfd.c + # passed a compound literal with a trailing comma as its first argument, which the + # preprocessor split into two tokens. + with default_args(deprecated=True): + version( + "2.40.2", sha256="7bec316b713a14c6be1a5721aa0e56a3b6170277329e6e1f1a56013cc91eece0" + ) + version("2.40", sha256="2a51d08cb71fd8e491e0cf633032c928f9a2848417f8441cb8cf7ef9971de916") + version( + "2.39.3", sha256="40ea07584d56c310455471afa92c119ec259776a561af7159cc802344c2c370d" + ) + version( + "2.39.1", sha256="d7c8a58eb2c7248a32754eb3a3b6772e368b984d9907ada834c2cf3e13024270" + ) + version( + "2.38.1", sha256="0820eb8eea90408047e3715424bc6be771417047f683950fecb4bdd2e2cbbc6e" + ) + version("2.38", sha256="c31d4e54f30b56b0f7ec8b342658c07de81378f2c067941c2b886da356f8ad42") + version( + "2.37.4", sha256="c8b7b4fa541f974cc32c1c6559d9bfca33651020a456ad6ee5fc9b0cacd00151" + ) + version( + "2.37.2", sha256="15db966474e459b33fa390a6b892190a92079a73ca45384cde4c86e6ed265a86" + ) + version( + "2.37.1", sha256="0fe9ee8ee7f157be8abcfc2902ec8de9fe30b39173b84e4c458675cef4709b35" + ) + version("2.37", sha256="faa8b46d080faa6f32c57da81eda871e38e1e27ba4e9b61cb2589334671aba50") + version( + "2.36.2", sha256="f5dbe79057e7d68e1a46fc04083fc558b26a49499b1b3f50e4f4893150970463" + ) + version("2.36", sha256="82942cd877a989f6d12d4ce2c757fb67ec53d8c5cd9af0537141ec5f84a2eea3") + version( + "2.35.1", sha256="37ac05d82c6410d89bc05d43cee101fefc8fe6cf6090b3ce7a1409a6f35db606" + ) + version("2.35", sha256="98acab129a8490265052e6c1e033ca96d68758a13bb7fcd232c06bf16cc96238") + version("2.34", sha256="b62c92e5e1629642113cd41cec1ee86d1ee7e36b8ffe8ec3ac89c11797e9ac25") + version( + "2.33.1", sha256="e15bd3142b3a0c97fffecaed9adfdef8ab1d29211215d7ae614c177ef826e73a" + ) + version("2.33", sha256="952fb0d3498e81bd67b3c48e283c80cb12c719bc2357ec5801e7d420991ad319") + version( + "2.29.2", sha256="29ccdf91d2c3245dc705f0ad3bf729ac41d8adcdbeff914e797c552ecb04a4c7" + ) + version( + "2.29.1", sha256="a6a7adba65a368e6dad9582d9fbedee43126d990df51266eaee089a73c893653" + ) + version("2.25", sha256="7e43273a9e2ab99b5a54ac914fddf5d08ba7ab9b114c550e9f03474672bd23a1") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/visit/package.py b/repos/spack_repo/builtin/packages/visit/package.py index b29bd00e31f..3b379da6f1e 100644 --- a/repos/spack_repo/builtin/packages/visit/package.py +++ b/repos/spack_repo/builtin/packages/visit/package.py @@ -422,3 +422,29 @@ def determine_version(cls, exe): # see https://github.com/visit-dav/visit/issues/20055 unresolved_libraries = ["*"] + + def test_smoke_test(self): + """Test visit -cli""" + spec = self.spec + + if "~python" in spec: + raise SkipTest("Package must be installed with +python") + + visit_cmd = Executable(spec["visit"].prefix.bin.visit) + testdir = "smoke_test_build" + with working_dir(testdir, create=True): + script_file_path = "script_file.py" + with open(script_file_path, "w") as f: + f.write( + """ + from visit import * + if "AddPlot" in dir(): + print("VisIt Success") + """ + ) + visit_cmd("-cli", "-nowin", "-s", "{script_file_path}") + + @run_after("install") + @on_package_attributes(run_tests=True) + def build_test(self): + self.test_smoke_test() diff --git a/repos/spack_repo/builtin/packages/yaml_cpp/package.py b/repos/spack_repo/builtin/packages/yaml_cpp/package.py index 05ca9b59b0a..599524d89f8 100644 --- a/repos/spack_repo/builtin/packages/yaml_cpp/package.py +++ b/repos/spack_repo/builtin/packages/yaml_cpp/package.py @@ -25,8 +25,12 @@ class YamlCpp(CMakePackage): version("0.7.0", sha256="43e6a9fcb146ad871515f0d0873947e5d497a1c9c60c58cb102a97b47208b7c3") version("0.6.3", sha256="77ea1b90b3718aa0c324207cb29418f5bced2354c2e483a9523d98c3460af1ed") version("0.6.2", sha256="e4d8560e163c3d875fd5d9e5542b5fd5bec810febdcba61481fe5fc4e6b1fd05") - version("0.5.3", sha256="decc5beabb86e8ed9ebeb04358d5363a5c4f72d458b2c788cb2f3ac9c19467b2") - version("0.3.0", sha256="ab8d0e07aa14f10224ed6682065569761f363ec44bc36fcdb2946f6d38fe5a89") + with default_args(deprecated=True): + version( + "0.5.3", + sha256="decc5beabb86e8ed9ebeb04358d5363a5c4f72d458b2c788cb2f3ac9c19467b2", + ) + version("0.3.0", sha256="ab8d0e07aa14f10224ed6682065569761f363ec44bc36fcdb2946f6d38fe5a89") variant("shared", default=True, description="Build shared instead of static libraries") variant("pic", default=True, description="Build with position independent code") diff --git a/repos/spack_repo/builtin/packages/yamlfmt/package.py b/repos/spack_repo/builtin/packages/yamlfmt/package.py index b4af5cfb90f..ea3e4f78bc2 100644 --- a/repos/spack_repo/builtin/packages/yamlfmt/package.py +++ b/repos/spack_repo/builtin/packages/yamlfmt/package.py @@ -22,15 +22,8 @@ class Yamlfmt(GoPackage): depends_on("go@1.22:", type="build", when="@0.21:") depends_on("go@1.21:", type="build") + build_directory = "cmd/yamlfmt" + @property - def build_args(self): - return [ - "-p", - str(make_jobs), - "-modcacherw", - "-ldflags", - f"-s -w -X main.version={self.version}", - "-o", - f"{self.name}", - f"{join_path(self.build_directory, 'cmd', self.name)}", - ] + def ldflags(self): + return [f"-X main.version={self.spec.version}"] diff --git a/repos/spack_repo/builtin/packages/yarn/package.py b/repos/spack_repo/builtin/packages/yarn/package.py index 286baa5999b..fb646625079 100644 --- a/repos/spack_repo/builtin/packages/yarn/package.py +++ b/repos/spack_repo/builtin/packages/yarn/package.py @@ -21,6 +21,7 @@ class Yarn(Package): license("BSD-2-Clause") + version("4.16.0", sha256="51a55a9e12727d359908109f28492392d9f7e3975698034c7521ebe0019e0ce7") version("4.13.0", sha256="7ce8fd253740ea62980bca49b32bfc044810e09362cc46a4192673be9541a772") version("4.10.3", sha256="5494c77f7c7ea067f7c58456f61af458a684802e5bb25631659b7612d14e6c84") version("4.9.2", sha256="cbcd6ab876407c0999eceb74bcdac29ae47a544339bc99b17fcbe67901ede9b3") diff --git a/repos/spack_repo/builtin/packages/yosys/package.py b/repos/spack_repo/builtin/packages/yosys/package.py index a5ddb539d06..53b34fdedc3 100644 --- a/repos/spack_repo/builtin/packages/yosys/package.py +++ b/repos/spack_repo/builtin/packages/yosys/package.py @@ -30,6 +30,8 @@ class Yosys(MakefilePackage): version("master", branch="master") + version("0.66", commit="86f2ddebce7e98ce7cacc27e8a5c14cb53b51b51", submodules=True) + version("0.65", commit="b85cad634782fafac275e5f540c056bfacb2b5d2", submodules=True) version("0.64", commit="6d2c445aebd37261d0e33ed4d90d09fd1a7bf618", submodules=True) version("0.63", commit="70a11c6bf0e8dd669f56c7da3587f78b405138e2", submodules=True) version("0.62", commit="7326bb7d6641500ecb285c291a54a662cb1e76cf", submodules=True) diff --git a/repos/spack_repo/builtin/packages/yq/package.py b/repos/spack_repo/builtin/packages/yq/package.py index aaf186d2d57..1957a54a6a8 100644 --- a/repos/spack_repo/builtin/packages/yq/package.py +++ b/repos/spack_repo/builtin/packages/yq/package.py @@ -18,6 +18,7 @@ class Yq(GoPackage): license("MIT", checked_by="teaguesterling") + version("4.53.3", sha256="fadf86d0ae3988bb40fa8aad424d0c71658493f6377285e711c7e7e313b3b238") version("4.53.2", sha256="1bc19bb8b1029148afa3465a9383f6dcccb1ecce28a0af1d81f07c93396ce37d") version("4.52.5", sha256="4b1d8f8d903793af62adf74f4810542cbd03515a728d1add0868072ea9aa00b8") version("4.49.2", sha256="648d96cc490a4e08edb6bf8ff9498360b405263e202663cd9c92322b3aa557ef") diff --git a/repos/spack_repo/builtin/packages/zig/package.py b/repos/spack_repo/builtin/packages/zig/package.py index bba4abb9574..5250de89da5 100644 --- a/repos/spack_repo/builtin/packages/zig/package.py +++ b/repos/spack_repo/builtin/packages/zig/package.py @@ -18,13 +18,14 @@ class Zig(CMakePackage): license("MIT") + version("0.16.0", tag="0.16.0", commit="24fdd5b7a4c1c8b5deb5b56756b9dbc8e08c86a8") version("0.15.2", tag="0.15.2", commit="e4cbd752c8c05f131051f8c873cff7823177d7d3") - version("0.15.1", tag="0.15.1", commit="3db960767d12b6214bcf43f1966a037c7a586a12") - version("0.14.1", tag="0.14.1", commit="d03a147ea0a590ca711b3db07106effc559b0fc6") - version("0.14.0", tag="0.14.0", commit="5ad91a646a753cc3eecd8751e61cf458dadd9ac4") - version("0.13.0", tag="0.13.0", commit="cf90dfd3098bef5b3c22d5ab026173b3c357f2dd") with default_args(deprecated=True): + version("0.15.1", tag="0.15.1", commit="3db960767d12b6214bcf43f1966a037c7a586a12") + version("0.14.1", tag="0.14.1", commit="d03a147ea0a590ca711b3db07106effc559b0fc6") + version("0.14.0", tag="0.14.0", commit="5ad91a646a753cc3eecd8751e61cf458dadd9ac4") + version("0.13.0", tag="0.13.0", commit="cf90dfd3098bef5b3c22d5ab026173b3c357f2dd") version("0.12.0", tag="0.12.0", commit="a685ab1499d6560c523f0dbce2890dc140671e43") version("0.11.0", tag="0.11.0", commit="67709b638224ac03820226c6744d8b6ead59184c") version("0.10.1", tag="0.10.1", commit="b57081f039bd3f8f82210e8896e336e3c3a6869b") @@ -43,6 +44,7 @@ class Zig(CMakePackage): depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("llvm@21", when="@0.16") depends_on("llvm@20", when="@0.15") depends_on("llvm@19", when="@0.14") depends_on("llvm@18", when="@0.13") @@ -61,4 +63,5 @@ def cmake_args(self): self.define("ZIG_USE_CCACHE", True), self.define("ZIG_STATIC_LLVM", True), self.define("ZIG_STATIC_ZLIB", True), + self.define("ZIG_STATIC_ZSTD", True), ] diff --git a/stacks/developer-tools-aarch64-linux-gnu/spack.yaml b/stacks/developer-tools-aarch64-linux-gnu/spack.yaml index b94b8980ce1..e80a9f0a799 100644 --- a/stacks/developer-tools-aarch64-linux-gnu/spack.yaml +++ b/stacks/developer-tools-aarch64-linux-gnu/spack.yaml @@ -19,7 +19,7 @@ spack: - neovim~no_luajit - py-pynvim # FIXME (compiler as nodes): recover dependency on gcc as a library when +native - - emacs+json~native+treesitter # note, pulls in gcc + - emacs~native+treesitter # note, pulls in gcc # - tree-sitter is a dep, should also have cli but no package - nano # just in case # tags and scope search helpers diff --git a/stacks/developer-tools-darwin/spack.yaml b/stacks/developer-tools-darwin/spack.yaml index 79be821dcc0..f6950a65761 100644 --- a/stacks/developer-tools-darwin/spack.yaml +++ b/stacks/developer-tools-darwin/spack.yaml @@ -14,7 +14,7 @@ spack: reuse: false specs: # editors - - emacs+json~native+treesitter # TODO +native not supported until gcc builds on darwin + - emacs~native+treesitter # TODO +native not supported until gcc builds on darwin - nano # - neovim - py-pynvim diff --git a/stacks/developer-tools-x86_64_v3-linux-gnu/spack.yaml b/stacks/developer-tools-x86_64_v3-linux-gnu/spack.yaml index 237edae7e3e..eb709aed53e 100644 --- a/stacks/developer-tools-x86_64_v3-linux-gnu/spack.yaml +++ b/stacks/developer-tools-x86_64_v3-linux-gnu/spack.yaml @@ -22,7 +22,7 @@ spack: - neovim~no_luajit - py-pynvim # FIXME (compiler as nodes): recover dependency on gcc as a library when +native - - emacs+json~native+treesitter # note, pulls in gcc + - emacs~native+treesitter # note, pulls in gcc # - tree-sitter is a dep, should also have cli but no package - nano # just in case # tags and scope search helpers diff --git a/stacks/tutorial/spack.yaml b/stacks/tutorial/spack.yaml index 53167dce4f5..2735ece7651 100644 --- a/stacks/tutorial/spack.yaml +++ b/stacks/tutorial/spack.yaml @@ -14,9 +14,9 @@ spack: specs: - group: compiler specs: - - gcc@12 ~binutils + - gcc@16 build_type=Release +profiled +strip - - group: "gcc@11 specs" + - group: "gcc@15 specs" specs: - zlib-ng@2.2.4 - zlib-ng@2.0.7 @@ -29,19 +29,19 @@ spack: - trilinos ^openmpi - trilinos +hdf5 ^hdf5+hl+mpi ^mpich - mpileaks - - lmod@8.7.18 + - lmod@8.7.67 - environment-modules - macsio@1.1+scr ^scr@2.0.0~fortran ^silo~fortran ^hdf5~fortran - - julia@1.9 ^llvm ~clang ~gold ~lldb ~lua ~polly compiler-rt=none libcxx=none libunwind=none targets=x86 ^openblas threads=openmp + # - julia ^llvm ~clang ~gold ~lldb ~lua ~polly compiler-rt=none libcxx=none libunwind=none targets=x86 ^openblas threads=openmp - vim override: packages: c: - prefer: [gcc@11] + prefer: [gcc@15] cxx: - prefer: [gcc@11] + prefer: [gcc@15] fortran: - prefer: [gcc@11] + prefer: [gcc@15] - group: scalapacks needs: [compiler] @@ -55,16 +55,16 @@ spack: override: packages: c: - prefer: [gcc@12] + prefer: [gcc@16] cxx: - prefer: [gcc@12] + prefer: [gcc@16] fortran: - prefer: [gcc@12] + prefer: [gcc@16] # Miscellaneous specs use the default group - - zlib-ng@2.2.4%gcc@10 - - matrix: - - [ zlib-ng@2.2.4, tcl ^zlib-ng@2.0.7 ] - - [ '%clang@14' ] + # - zlib-ng@2.2.4%gcc@10 + #- matrix: + # - [ zlib-ng@2.2.4, tcl ^zlib-ng@2.0.7 ] + # - [ '%clang@14' ] concretizer: unify: false @@ -73,7 +73,7 @@ spack: pipeline-gen: - build-job: image: - name: ghcr.io/spack/tutorial-ubuntu-22.04:v2023-10-30 + name: ghcr.io/spack/tutorial-ubuntu-26.04:v2026-06-09 entrypoint: [''] cdash: diff --git a/tests/conftest.py b/tests/conftest.py index 79438d44919..fb0bd82026f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -567,6 +567,4 @@ def glibc_compatibility(): if spack.platforms.real_host().name != "linux": return - spack.solver.core.using_libc_compatibility = lambda: True - spack.solver.runtimes.using_libc_compatibility = spack.solver.core.using_libc_compatibility - spack.solver.asp.using_libc_compatibility = spack.solver.core.using_libc_compatibility + spack.platforms.using_libc_compatibility = lambda: True