diff --git a/.ci/configs/repos.yaml b/.ci/configs/repos.yaml deleted file mode 100644 index b6392bb67f0..00000000000 --- a/.ci/configs/repos.yaml +++ /dev/null @@ -1,2 +0,0 @@ -repos: - builtin:: ${CI_PROJECT_DIR}/repos/spack_repo/builtin diff --git a/.ci/env b/.ci/env index 7fad55638dc..e9328370248 100644 --- a/.ci/env +++ b/.ci/env @@ -1 +1,2 @@ -SPACK_CHECKOUT_VERSION=8bfe963d9b4f1f05fa49341f0df760125be1b891 +SPACK_CHECKOUT_VERSION=84cb7ff86b42e7fa45476750b6729144c58f70dc +SPACK_CHECKOUT_REPO=spack/spack diff --git a/.ci/gitlab/.gitlab-ci.yml b/.ci/gitlab/.gitlab-ci.yml index 96b09cf3a2d..4b8acc283b3 100644 --- a/.ci/gitlab/.gitlab-ci.yml +++ b/.ci/gitlab/.gitlab-ci.yml @@ -9,72 +9,102 @@ variables: # PROTECTED_MIRROR_FETCH_DOMAIN: "https://binaries.spack.io" PROTECTED_MIRROR_FETCH_DOMAIN: "s3://spack-binaries" PROTECTED_MIRROR_PUSH_DOMAIN: "s3://spack-binaries" + # SPACK_CI_DISABLE_STACKS: + # value: /^.*(cray).*$/ + # expand: false + # SPACK_CI_ENABLE_STACKS: + # value: /^.*(cray).*$/ + # expand: false default: image: { "name": "ghcr.io/spack/e4s-ubuntu-18.04:v2021-10-18", "entrypoint": [""] } .clone_spack: &clone_spack - - mkdir spack - - cd spack + - mkdir .ci/tmp + - mkdir .ci/tmp/spack + - cd .ci/tmp/spack - git init - - git remote add origin https://github.com/spack/spack.git + - git remote add origin https://github.com/${SPACK_CHECKOUT_REPO}.git - echo ${SPACK_CHECKOUT_VERSION} - git fetch --depth 1 origin ${SPACK_CHECKOUT_VERSION} - git checkout FETCH_HEAD - - cd .. + - cd ${CI_PROJECT_DIR} + +.trigger_build: &trigger_build + strategy: depend + forward: + pipeline_variables: true + +.common_pr_vars: &common_pr_vars + SPACK_PIPELINE_TYPE: "spack_pull_request" + SPACK_PRUNE_UNTOUCHED_DEPENDENT_DEPTH: "1" + # TODO: Change sync script to include target in branch name. Then we could + # TODO: have multiple types of "PR" pipeline here. It would be better if we could + # TODO: keep just this one and use a regex to capture the target branch, but so + # TODO: far gitlab doesn't support that. + PR_TARGET_REF_NAME: "develop" + 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 ######################################## .base-job: variables: PIPELINE_MIRROR_TEMPLATE: "single-src-protected-mirrors.yaml.in" - SPACK_CI_CONFIG_ROOT: "${CI_PROJECT_DIR}/.ci/gitlab/configs" - SPACK_CI_SCRIPTS_ROOT: "${CI_PROJECT_DIR}/.ci/gitlab/scripts" + SPACK_CI_CONFIG_ROOT: "${SPACK_CI_PACKAGES_ROOT}/.ci/gitlab/configs" + SPACK_CI_SCRIPTS_ROOT: "${SPACK_CI_PACKAGES_ROOT}/.ci/gitlab/scripts" rules: - if: $SPACK_CI_DISABLE_STACKS =~ /.+/ && $SPACK_CI_STACK_NAME =~ $SPACK_CI_DISABLE_STACKS when: never - if: $SPACK_CI_ENABLE_STACKS =~ /.+/ && $SPACK_CI_STACK_NAME !~ $SPACK_CI_ENABLE_STACKS when: never + - if: $CI_PROJECT_NAME == "spack" && $CI_COMMIT_REF_NAME =~ /^releases\/v.*/ + # Skip release pipelines for spack/spack. Release caches are only made for releases from + # spack/spack-packages + when: never - if: $CI_COMMIT_REF_NAME == "develop" || $CI_COMMIT_REF_NAME =~ /^releases\/v.*/ # Pipelines on develop/release branches only rebuild what is missing from the mirror - when: always + when: on_success variables: SPACK_PIPELINE_TYPE: "spack_protected_branch" SPACK_PRUNE_UNTOUCHED: "False" SPACK_COPY_BUILDCACHE: "${PROTECTED_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}" SPACK_REQUIRE_SIGNING: "True" OIDC_TOKEN_AUDIENCE: "protected_binary_mirror" - - if: $CI_COMMIT_TAG =~ /^develop-[\d]{4}-[\d]{2}-[\d]{2}$/ || $CI_COMMIT_TAG =~ /^v.*/ - # Pipelines on tags (release or dev snapshots) only copy binaries from one mirror to another + - if: $CI_COMMIT_TAG =~ /^v.*/ || $CI_COMMIT_TAG =~ /^develop-[\d]{4}-[\d]{2}-[\d]{2}$/ when: always variables: - SPACK_PIPELINE_TYPE: "spack_copy_only" - SPACK_COPY_BUILDCACHE: "${PROTECTED_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}" - PIPELINE_MIRROR_TEMPLATE: "copy-only-protected-mirrors.yaml.in" - OIDC_TOKEN_AUDIENCE: "protected_binary_mirror" - - if: $CI_COMMIT_REF_NAME =~ /^pr[\d]+_.*$/ + NOOP_JOB: 1 + - if: $CI_COMMIT_REF_NAME =~ /^pr[\d]+_.*$/ && $CI_PROJECT_NAME == "spack-packages" # Pipelines on PR branches rebuild only what's missing, and do extra pruning - when: always + when: on_success variables: - SPACK_PIPELINE_TYPE: "spack_pull_request" + <<: *common_pr_vars SPACK_PRUNE_UNTOUCHED: "True" - SPACK_PRUNE_UNTOUCHED_DEPENDENT_DEPTH: "1" - # TODO: Change sync script to include target in branch name. Then we could - # TODO: have multiple types of "PR" pipeline here. It would be better if we could - # TODO: keep just this one and use a regex to capture the target branch, but so - # TODO: far gitlab doesn't support that. - PR_TARGET_REF_NAME: "develop" - PIPELINE_MIRROR_TEMPLATE: "multi-src-mirrors.yaml.in" - OIDC_TOKEN_AUDIENCE: "pr_binary_mirror" + 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 + when: always + variables: + <<: *common_pr_vars + SPACK_PRUNE_UNTOUCHED: "False" .generate-common: stage: generate script: - spack --version - - spack env activate --without-view ${CI_PROJECT_DIR}/.ci/gitlab/stacks/${SPACK_CI_STACK_NAME} - - spack config add -f ./.ci/configs/repos.yaml + - spack env activate --without-view ${SPACK_CI_PACKAGES_ROOT}/stacks/${SPACK_CI_STACK_NAME} - spack repo list - spack compiler find - spack audit configs @@ -88,9 +118,14 @@ default: config blame > "${CI_PROJECT_DIR}/jobs_scratch_dir/${SPACK_CI_STACK_NAME}/spack.yaml.blame" - spack -v --color=always ci generate --check-index-only -j ${SPACK_CONCRETIZE_JOBS} + --forward-variable SPACK_CHECKOUT_VERSION + --forward-variable SPACK_CHECKOUT_REPO + --forward-variable SPACK_CI_PACKAGES_ROOT + --forward-variable SPACK_CI_SPACK_ROOT --artifacts-root "${CI_PROJECT_DIR}/jobs_scratch_dir/${SPACK_CI_STACK_NAME}" --output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/${SPACK_CI_STACK_NAME}/cloud-ci-pipeline.yml" artifacts: + when: always paths: - "${CI_PROJECT_DIR}/jobs_scratch_dir" - "${CI_PROJECT_DIR}/jobs_scratch_dir/${SPACK_CI_STACK_NAME}" @@ -103,25 +138,42 @@ default: KUBERNETES_MEMORY_REQUEST: 16G # avoid moving targets like branches and tags SPACK_CONCRETIZER_REQUIRE_CHECKSUM: 1 - SPACK_BACKTRACE: 1 interruptible: true timeout: 60 minutes + # Retry for everything but "legitimate build failures" (script_failure) retry: max: 2 when: - - always + - unknown_failure + - api_failure + - stuck_or_timeout_failure + - runner_system_failure + - runner_unsupported + - stale_schedule + - job_execution_timeout + - archived_failure + - unmet_prerequisites + - scheduler_failure + - data_integrity_failure # Generate without tags for cases using external runners .generate-base: extends: [ ".base-job", ".generate-common" ] before_script: + # Check if bypass for noop is set + - | + [ ! -z ${NOOP_JOB} ] && \ + python3 ${SPACK_CI_SCRIPTS_ROOT}/common/noop_job.py \ + "${CI_PROJECT_DIR}/jobs_scratch_dir/${SPACK_CI_STACK_NAME}/cloud-ci-pipeline.yml" + - | + [ ! -z ${NOOP_JOB} ] && exit 0 - uname -a || true - grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true - nproc || true - cat /proc/loadavg || true - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true - *clone_spack - - . "./spack/share/spack/setup-env.sh" + - . "${SPACK_CI_SPACK_ROOT}/share/spack/setup-env.sh" - spack arch after_script: - cat /proc/loadavg || true @@ -156,11 +208,18 @@ default: before_script: - $ErrorActionOld=$ErrorActionPreference - $ErrorActionPreference="SilentlyContinue" + - | + If ( $NOOP_JOB ) + { + python ${SPACK_CI_SCRIPTS_ROOT}/common/noop_job.py "${CI_PROJECT_DIR}/jobs_scratch_dir/${SPACK_CI_STACK_NAME}/cloud-ci-pipeline.yml" + } + - | + If ( $NOOP_JOB ) { exit 0 } - python -c"import psutil;print(psutil.getloadavg())" - (Get-WmiObject Win32_PhysicalMemory | measure-object Capacity -sum).sum/1kb - $ErrorActionPreference=$ErrorActionOld - *clone_spack - - . .\spack\share\spack\setup-env.ps1 + - . $SPACK_CI_SPACK_ROOT\share\spack\setup-env.ps1 - spack arch after_script: - $ErrorActionOld=$ErrorActionPreference @@ -170,7 +229,10 @@ default: - $ErrorActionPreference=$ErrorActionOld tags: ["spack", "public", "medium", "x86_64-win"] - image: "ghcr.io/johnwparent/windows-server21h2:sha-1c12b61" + image: { + name: "ghcr.io/johnwparent/windows-server21h2:sha-1c12b61", + entrypoint: [""] + } .build: extends: [ ".base-job" ] @@ -186,17 +248,46 @@ dotenv: KUBERNETES_MEMORY_REQUEST: "5M" artifacts: reports: - dotenv: .ci/env + dotenv: env tags: [ "spack", "service" ] script: - - cat .ci/env + - export WRITE_DOTENV_SCRIPT_REF="0f92f8bcd4dd94fc7379eef8db5c9ed6f1935402" + - export WRITE_DOTENV_SCRIPT_SHA256="124d80ef595b9ddc2fca3f202a70ee15378547ad5e887fe7d3b248669c5ee54a" + - curl -LSsO https://raw.githubusercontent.com/spack/spack-packages/$WRITE_DOTENV_SCRIPT_REF/.ci/gitlab/scripts/common/write_dotenv.py + - echo "$WRITE_DOTENV_SCRIPT_SHA256 write_dotenv.py" | sha256sum -c + - 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 ######################################## # # First add a new spack.yml defining the pipeline to run in -# .ci/gitlab/stacks/my-super-cool-stack/spack.yaml +# stacks/my-stack/spack.yaml # # Then add the following entries at the bottom of this file. # @@ -207,26 +298,25 @@ dotenv: # extends list. # ######################################## -# My Super Cool Pipeline +# My Stack Pipeline ######################################## -# .my-super-cool-stack: +# .my-stack: # variables: -# SPACK_CI_STACK_NAME: my-super-cool-stack -# tags: [ "all", "tags", "your", "job", "needs"] +# SPACK_CI_STACK_NAME: my-stack # -# my-super-cool-stack-generate: -# extends: [ ".generate", ".my-super-cool-stack" ] +# my-stack-generate: +# extends: [ ".generate", ".my-stack" ] # -# my-super-cool-stack-build: -# extends: [ ".build", ".my-super-cool-stack" ] +# my-stack-build: +# extends: [ ".build", ".my-stack" ] # trigger: +# <<: *trigger_build # include: -# - artifact: jobs_scratch_dir/my-super-cool-stack/cloud-ci-pipeline.yml -# job: my-super-cool-stack-generate -# strategy: depend +# - artifact: jobs_scratch_dir/my-stack/cloud-ci-pipeline.yml +# job: my-stack-generate # needs: # - artifacts: True -# job: my-super-cool-stack-generate +# job: my-stack-generate ######################################## # E4S pipeline @@ -242,10 +332,10 @@ e4s-generate: e4s-build: extends: [ ".e4s", ".build" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/e4s/cloud-ci-pipeline.yml job: e4s-generate - strategy: depend needs: - artifacts: True job: e4s-generate @@ -264,10 +354,10 @@ e4s-neoverse-v2-generate: e4s-neoverse-v2-build: extends: [ ".e4s-neoverse-v2", ".build" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/e4s-neoverse-v2/cloud-ci-pipeline.yml job: e4s-neoverse-v2-generate - strategy: depend needs: - artifacts: True job: e4s-neoverse-v2-generate @@ -281,15 +371,15 @@ e4s-neoverse-v2-build: e4s-rocm-external-generate: extends: [ ".e4s-rocm-external", ".generate-x86_64"] - image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-gcc-11.4-rocm6.2.1:2024.10.08 + image: ghcr.io/spack/e4s-rocm-base-x86_64:v7.2.3-1778518886 e4s-rocm-external-build: extends: [ ".e4s-rocm-external", ".build" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/e4s-rocm-external/cloud-ci-pipeline.yml job: e4s-rocm-external-generate - strategy: depend needs: - artifacts: True job: e4s-rocm-external-generate @@ -303,15 +393,15 @@ e4s-rocm-external-build: e4s-oneapi-generate: extends: [ ".e4s-oneapi", ".generate-x86_64"] - image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-oneapi-2025.1:2025.03.24 + image: ghcr.io/spack/e4s-oneapi-base-x86_64:v2025.3-1777667538 e4s-oneapi-build: extends: [ ".e4s-oneapi", ".build" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/e4s-oneapi/cloud-ci-pipeline.yml job: e4s-oneapi-generate - strategy: depend needs: - artifacts: True job: e4s-oneapi-generate @@ -329,10 +419,10 @@ build_systems-generate: build_systems-build: extends: [ ".build_systems", ".build" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/build_systems/cloud-ci-pipeline.yml job: build_systems-generate - strategy: depend needs: - artifacts: True job: build_systems-generate @@ -351,10 +441,10 @@ developer-tools-x86_64_v3-linux-gnu-generate: developer-tools-x86_64_v3-linux-gnu-build: extends: [ ".developer-tools-x86_64_v3-linux-gnu", ".build" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/developer-tools-x86_64_v3-linux-gnu/cloud-ci-pipeline.yml job: developer-tools-x86_64_v3-linux-gnu-generate - strategy: depend needs: - artifacts: True job: developer-tools-x86_64_v3-linux-gnu-generate @@ -374,10 +464,10 @@ developer-tools-aarch64-linux-gnu-generate: developer-tools-aarch64-linux-gnu-build: extends: [ ".developer-tools-aarch64-linux-gnu", ".build" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/developer-tools-aarch64-linux-gnu/cloud-ci-pipeline.yml job: developer-tools-aarch64-linux-gnu-generate - strategy: depend needs: - artifacts: True job: developer-tools-aarch64-linux-gnu-generate @@ -391,16 +481,16 @@ developer-tools-aarch64-linux-gnu-build: SPACK_CI_STACK_NAME: developer-tools-darwin developer-tools-darwin-generate: - tags: [ "macos-sequoia", "apple-clang-16", "aarch64-macos" ] + tags: [ "macos-tahoe", "apple-clang-17", "aarch64-macos" ] extends: [ ".developer-tools-darwin", ".generate-base"] developer-tools-darwin-build: extends: [ ".developer-tools-darwin", ".build" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/developer-tools-darwin/cloud-ci-pipeline.yml job: developer-tools-darwin-generate - strategy: depend needs: - artifacts: True job: developer-tools-darwin-generate @@ -414,20 +504,23 @@ developer-tools-darwin-build: radiuss-generate: extends: [ ".radiuss", ".generate-x86_64" ] + image: + name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 + entrypoint: [''] radiuss-build: extends: [ ".radiuss", ".build" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/radiuss/cloud-ci-pipeline.yml job: radiuss-generate - strategy: depend needs: - artifacts: True job: radiuss-generate ######################################## -# RADIUSS for AWS +# RADIUSS for CUDA ######################################## .tags-x86_64_v4: @@ -435,50 +528,28 @@ radiuss-build: SPACK_CI_TARGET: "x86_64_v4" tags: ["spack", "public", "aws", "medium", "x86_64_v4"] -# Include this AFTER .*-generate in "extends" list -.radiuss-aws-overrides: - # This controls image for generate step; build step is controlled by spack.yaml - # Note that generator emits OS info for build so these should be the same. - image: { "name": "ghcr.io/spack/e4s-amazonlinux-2:v2023-03-09", "entrypoint": [""] } - -.radiuss-aws: - variables: - SPACK_CI_STACK_NAME: radiuss-aws - -radiuss-aws-generate: - extends: [ ".radiuss-aws", ".generate-x86_64", ".radiuss-aws-overrides", ".tags-x86_64_v4" ] - -radiuss-aws-build: - extends: [ ".radiuss-aws", ".build" ] - trigger: - include: - - artifact: jobs_scratch_dir/radiuss-aws/cloud-ci-pipeline.yml - job: radiuss-aws-generate - strategy: depend - needs: - - artifacts: True - job: radiuss-aws-generate - - # Parallel Pipeline for aarch64 (reuses override image, but generates and builds on aarch64) -.radiuss-aws-aarch64: +.radiuss-aarch64: variables: - SPACK_CI_STACK_NAME: radiuss-aws-aarch64 + SPACK_CI_STACK_NAME: radiuss-aarch64 -radiuss-aws-aarch64-generate: - extends: [ ".radiuss-aws-aarch64", ".generate-aarch64", ".radiuss-aws-overrides" ] +radiuss-aarch64-generate: + extends: [ ".radiuss-aarch64", ".generate-aarch64" ] + image: + name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 + entrypoint: [''] -radiuss-aws-aarch64-build: - extends: [ ".radiuss-aws-aarch64", ".build" ] +radiuss-aarch64-build: + extends: [ ".radiuss-aarch64", ".build" ] trigger: + << : *trigger_build include: - - artifact: jobs_scratch_dir/radiuss-aws-aarch64/cloud-ci-pipeline.yml - job: radiuss-aws-aarch64-generate - strategy: depend + - artifact: jobs_scratch_dir/radiuss-aarch64/cloud-ci-pipeline.yml + job: radiuss-aarch64-generate needs: - artifacts: True - job: radiuss-aws-aarch64-generate + job: radiuss-aarch64-generate ######################################## # ECP Data & Vis SDK @@ -497,145 +568,101 @@ data-vis-sdk-generate: data-vis-sdk-build: extends: [ ".data-vis-sdk", ".build" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/data-vis-sdk/cloud-ci-pipeline.yml job: data-vis-sdk-generate - strategy: depend needs: - artifacts: True job: data-vis-sdk-generate ######################################## -# Spack Tutorial -######################################## -.tutorial: - variables: - SPACK_CI_STACK_NAME: tutorial - -tutorial-generate: - extends: [ ".tutorial", ".generate-x86_64"] - image: ghcr.io/spack/tutorial-ubuntu-22.04:v2023-10-30 - -tutorial-build: - extends: [ ".tutorial", ".build" ] - trigger: - include: - - artifact: jobs_scratch_dir/tutorial/cloud-ci-pipeline.yml - job: tutorial-generate - strategy: depend - needs: - - artifacts: True - job: tutorial-generate - -####################################### -# Machine Learning - Linux x86_64 (CPU) -####################################### -.ml-linux-x86_64-cpu: - variables: - SPACK_CI_STACK_NAME: ml-linux-x86_64-cpu - -ml-linux-x86_64-cpu-generate: - extends: [ ".generate-x86_64", .ml-linux-x86_64-cpu, ".tags-x86_64_v4" ] - image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 - -ml-linux-x86_64-cpu-build: - extends: [ ".build", ".ml-linux-x86_64-cpu" ] - trigger: - include: - - artifact: jobs_scratch_dir/ml-linux-x86_64-cpu/cloud-ci-pipeline.yml - job: ml-linux-x86_64-cpu-generate - strategy: depend - needs: - - artifacts: True - job: ml-linux-x86_64-cpu-generate - -######################################## -# Machine Learning - Linux x86_64 (CUDA) +# TOOLS SDK ######################################## -.ml-linux-x86_64-cuda: +.tools-sdk: variables: - SPACK_CI_STACK_NAME: ml-linux-x86_64-cuda + SPACK_CI_STACK_NAME: tools-sdk -ml-linux-x86_64-cuda-generate: - extends: [ ".generate-x86_64", .ml-linux-x86_64-cuda, ".tags-x86_64_v4" ] - image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 +tools-sdk-generate: + extends: [ ".tools-sdk", ".generate-x86_64"] + image: ghcr.io/spack/ubuntu20.04-runner-x86_64:2023-01-01 -ml-linux-x86_64-cuda-build: - extends: [ ".build", ".ml-linux-x86_64-cuda" ] +tools-sdk-build: + extends: [ ".tools-sdk", ".build" ] trigger: include: - - artifact: jobs_scratch_dir/ml-linux-x86_64-cuda/cloud-ci-pipeline.yml - job: ml-linux-x86_64-cuda-generate + - artifact: jobs_scratch_dir/tools-sdk/cloud-ci-pipeline.yml + job: tools-sdk-generate strategy: depend needs: - artifacts: True - job: ml-linux-x86_64-cuda-generate + job: tools-sdk-generate ######################################## -# Machine Learning - Linux x86_64 (ROCm) +# Spack Tutorial ######################################## -.ml-linux-x86_64-rocm: +.tutorial: variables: - SPACK_CI_STACK_NAME: ml-linux-x86_64-rocm + SPACK_CI_STACK_NAME: tutorial -ml-linux-x86_64-rocm-generate: - extends: [ ".generate-x86_64", .ml-linux-x86_64-rocm, ".tags-x86_64_v4" ] - image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 +tutorial-generate: + extends: [ ".tutorial", ".generate-x86_64"] + image: ghcr.io/spack/tutorial-ubuntu-22.04:2026-03-10 -ml-linux-x86_64-rocm-build: - extends: [ ".build", ".ml-linux-x86_64-rocm" ] +tutorial-build: + extends: [ ".tutorial", ".build" ] trigger: + << : *trigger_build include: - - artifact: jobs_scratch_dir/ml-linux-x86_64-rocm/cloud-ci-pipeline.yml - job: ml-linux-x86_64-rocm-generate - strategy: depend + - artifact: jobs_scratch_dir/tutorial/cloud-ci-pipeline.yml + job: tutorial-generate needs: - artifacts: True - job: ml-linux-x86_64-rocm-generate + job: tutorial-generate -######################################## -# Machine Learning - Linux aarch64 (CPU) -######################################## -.ml-linux-aarch64-cpu: +################################# +# Machine Learning - Linux x86_64 +################################# +.ml-linux-x86_64: variables: - SPACK_CI_STACK_NAME: ml-linux-aarch64-cpu + SPACK_CI_STACK_NAME: ml-linux-x86_64 -ml-linux-aarch64-cpu-generate: - extends: [ ".generate-aarch64", .ml-linux-aarch64-cpu ] - image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 +ml-linux-x86_64-generate: + extends: [ ".generate-x86_64", .ml-linux-x86_64, ".tags-x86_64_v4" ] + image: ghcr.io/spack/ubuntu-24.04:v2025-09-15 -ml-linux-aarch64-cpu-build: - extends: [ ".build", ".ml-linux-aarch64-cpu" ] +ml-linux-x86_64-build: + extends: [ ".build", ".ml-linux-x86_64" ] trigger: + << : *trigger_build include: - - artifact: jobs_scratch_dir/ml-linux-aarch64-cpu/cloud-ci-pipeline.yml - job: ml-linux-aarch64-cpu-generate - strategy: depend + - artifact: jobs_scratch_dir/ml-linux-x86_64/cloud-ci-pipeline.yml + job: ml-linux-x86_64-generate needs: - artifacts: True - job: ml-linux-aarch64-cpu-generate + job: ml-linux-x86_64-generate -######################################### -# Machine Learning - Linux aarch64 (CUDA) -######################################### -.ml-linux-aarch64-cuda: +################################## +# Machine Learning - Linux aarch64 +################################## +.ml-linux-aarch64: variables: - SPACK_CI_STACK_NAME: ml-linux-aarch64-cuda + SPACK_CI_STACK_NAME: ml-linux-aarch64 -ml-linux-aarch64-cuda-generate: - extends: [ ".generate-aarch64", .ml-linux-aarch64-cuda ] - image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 +ml-linux-aarch64-generate: + extends: [ ".generate-aarch64", .ml-linux-aarch64 ] + image: ghcr.io/spack/ubuntu-24.04:v2025-09-15 -ml-linux-aarch64-cuda-build: - extends: [ ".build", ".ml-linux-aarch64-cuda" ] +ml-linux-aarch64-build: + extends: [ ".build", ".ml-linux-aarch64" ] trigger: + << : *trigger_build include: - - artifact: jobs_scratch_dir/ml-linux-aarch64-cuda/cloud-ci-pipeline.yml - job: ml-linux-aarch64-cuda-generate - strategy: depend + - artifact: jobs_scratch_dir/ml-linux-aarch64/cloud-ci-pipeline.yml + job: ml-linux-aarch64-generate needs: - artifacts: True - job: ml-linux-aarch64-cuda-generate + job: ml-linux-aarch64-generate ######################################### # Machine Learning - Darwin aarch64 (MPS) @@ -645,16 +672,16 @@ ml-linux-aarch64-cuda-build: SPACK_CI_STACK_NAME: ml-darwin-aarch64-mps ml-darwin-aarch64-mps-generate: - tags: [ "macos-sequoia", "apple-clang-16", "aarch64-macos" ] + tags: [ "macos-tahoe", "apple-clang-17", "aarch64-macos" ] extends: [ ".ml-darwin-aarch64-mps", ".generate-base"] ml-darwin-aarch64-mps-build: extends: [ ".ml-darwin-aarch64-mps", ".build" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/ml-darwin-aarch64-mps/cloud-ci-pipeline.yml job: ml-darwin-aarch64-mps-generate - strategy: depend needs: - artifacts: True job: ml-darwin-aarch64-mps-generate @@ -668,88 +695,64 @@ ml-darwin-aarch64-mps-build: hep-generate: extends: [ ".hep", ".generate-x86_64"] - image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-gcc-11.4:2024.03.01 + image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 hep-build: extends: [ ".hep", ".build" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/hep/cloud-ci-pipeline.yml job: hep-generate - strategy: depend needs: - artifacts: True job: hep-generate -######################################## +##################### # AWS ParallelCluster -######################################## +##################### .aws-pcluster-generate: - image: { "name": "ghcr.io/spack/pcluster-amazonlinux-2:v2024-10-07", "entrypoint": [""] } + image: { "name": "ghcr.io/spack/pcluster-amazonlinux-2:2026-03-10", "entrypoint": [""] } # X86_64_V4 (one pipeline per target) .aws-pcluster-x86_64_v4: variables: SPACK_CI_STACK_NAME: aws-pcluster-x86_64_v4 -aws-pcluster-generate-x86_64_v4: +aws-pcluster-x86_64_v4-generate: extends: [ ".aws-pcluster-x86_64_v4", ".generate-base", ".tags-x86_64_v4", ".aws-pcluster-generate"] - before_script: - # TODO: Move this to the container next time it is rebuilt - - - uname -a || true - - grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true - - nproc || true - - cat /proc/loadavg || true - - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true - - *clone_spack - - . "./spack/share/spack/setup-env.sh" - - spack arch - - - export PATH=/home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-7.3.1/binutils-2.37-qvccg7zpskturysmr4bzbsfrx34kvazo/bin:$PATH - - spack -c "config:install_tree:root:/home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh" reindex - -aws-pcluster-build-x86_64_v4: + +aws-pcluster-x86_64_v4-build: extends: [ ".aws-pcluster-x86_64_v4", ".build" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/aws-pcluster-x86_64_v4/cloud-ci-pipeline.yml - job: aws-pcluster-generate-x86_64_v4 - strategy: depend + job: aws-pcluster-x86_64_v4-generate needs: - artifacts: True - job: aws-pcluster-generate-x86_64_v4 + job: aws-pcluster-x86_64_v4-generate # Neoverse_v1 (one pipeline per target) .aws-pcluster-neoverse_v1: variables: SPACK_CI_STACK_NAME: aws-pcluster-neoverse_v1 -aws-pcluster-generate-neoverse_v1: +aws-pcluster-neoverse_v1-generate: # TODO: Use updated runner tags: https://github.com/spack/spack-infrastructure/pull/694/files extends: [ ".aws-pcluster-neoverse_v1", ".generate-neoverse_v1", ".aws-pcluster-generate"] - before_script: - # TODO: Move this to the container next time it is rebuilt - - - uname -a || true - - grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true - - nproc || true - - cat /proc/loadavg || true - - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true - - *clone_spack - - . "./spack/share/spack/setup-env.sh" - - spack arch - - - export PATH=/home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-aarch64/gcc-7.3.1/binutils-2.37-2yxz3xsjfmesxujxtlrgcctxlyilynmp/bin:$PATH - - spack -c "config:install_tree:root:/home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh" reindex - -aws-pcluster-build-neoverse_v1: + +aws-pcluster-neoverse_v1-build: extends: [ ".aws-pcluster-neoverse_v1", ".build" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/aws-pcluster-neoverse_v1/cloud-ci-pipeline.yml - job: aws-pcluster-generate-neoverse_v1 - strategy: depend + job: aws-pcluster-neoverse_v1-generate needs: - artifacts: True - job: aws-pcluster-generate-neoverse_v1 + job: aws-pcluster-neoverse_v1-generate # Cray definitions .generate-cray: @@ -768,7 +771,7 @@ aws-pcluster-build-neoverse_v1: - cat /proc/loadavg || true - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true - *clone_spack - - . "./spack/share/spack/setup-env.sh" + - . "${SPACK_CI_SPACK_ROOT}/share/spack/setup-env.sh" - spack arch after_script: - cat /proc/loadavg || true @@ -796,10 +799,10 @@ e4s-cray-rhel-generate: e4s-cray-rhel-build: extends: [ ".build", ".e4s-cray-rhel" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/e4s-cray-rhel/cloud-ci-pipeline.yml job: e4s-cray-rhel-generate - strategy: depend needs: - artifacts: True job: e4s-cray-rhel-generate @@ -817,10 +820,10 @@ e4s-cray-rhel-build: .e4s-cray-sles-build: extends: [ ".build", ".e4s-cray-sles" ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/e4s-cray-sles/cloud-ci-pipeline.yml job: e4s-cray-sles-generate - strategy: depend needs: - artifacts: True job: e4s-cray-sles-generate @@ -842,10 +845,10 @@ windows-vis-generate: windows-vis-build: extends: [ ".build", ".windows-vis"] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/windows-vis/cloud-ci-pipeline.yml job: windows-vis-generate - strategy: depend needs: - artifacts: True job: windows-vis-generate @@ -864,10 +867,10 @@ bootstrap-x86_64-linux-gnu-generate: bootstrap-x86_64-linux-gnu-build: extends: [ .build, .bootstrap-x86_64-linux-gnu ] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/bootstrap-x86_64-linux-gnu/cloud-ci-pipeline.yml job: bootstrap-x86_64-linux-gnu-generate - strategy: depend needs: - artifacts: True job: bootstrap-x86_64-linux-gnu-generate @@ -880,16 +883,16 @@ bootstrap-x86_64-linux-gnu-build: SPACK_CI_STACK_NAME: bootstrap-aarch64-darwin bootstrap-aarch64-darwin-generate: - tags: [ "macos-sequoia", "apple-clang-16", "aarch64-macos" ] + tags: [ "macos-tahoe", "apple-clang-17", "aarch64-macos" ] extends: [.bootstrap-aarch64-darwin, .generate-base] bootstrap-aarch64-darwin-build: extends: [.bootstrap-aarch64-darwin, .build] trigger: + << : *trigger_build include: - artifact: jobs_scratch_dir/bootstrap-aarch64-darwin/cloud-ci-pipeline.yml job: bootstrap-aarch64-darwin-generate - strategy: depend needs: - artifacts: true job: bootstrap-aarch64-darwin-generate diff --git a/.ci/gitlab/config.yaml b/.ci/gitlab/config.yaml new file mode 100644 index 00000000000..6e5020319c5 --- /dev/null +++ b/.ci/gitlab/config.yaml @@ -0,0 +1,2 @@ +config: + misc_cache: "$user_cache_path/cache" diff --git a/.ci/gitlab/configs/ci.yaml b/.ci/gitlab/configs/ci.yaml index a6941e5bf5e..c548972abde 100644 --- a/.ci/gitlab/configs/ci.yaml +++ b/.ci/gitlab/configs/ci.yaml @@ -12,6 +12,7 @@ ci: - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true - - touch ${SPACK_USER_CACHE_PATH}/cache/*/* # bump mtime of cache so it is not invalidated - - spack env activate --without-view ${SPACK_CONCRETE_ENV_DIR} + - spack repo list - spack compiler list - - mkdir -p ${SPACK_ARTIFACTS_ROOT}/user_data # AWS runners mount E4S public key (verification), UO runners mount public/private (signing/verification) @@ -22,11 +23,12 @@ ci: script:: - - if [ -n "$SPACK_EXTRA_MIRROR" ]; then spack mirror add local "${SPACK_EXTRA_MIRROR}/${SPACK_CI_STACK_NAME}"; fi - spack config blame mirrors - - - spack --color=always --backtrace ci rebuild -j ${SPACK_BUILD_JOBS} --tests --timeout 300 > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) + - spack spec "/${SPACK_JOB_SPEC_DAG_HASH}" + - - spack --color=always ci rebuild -j ${SPACK_BUILD_JOBS} --tests --timeout 300 > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) after_script: - - cat /proc/loadavg || true - cat /proc/meminfo | grep 'MemTotal\|MemFree' || true - - - time ./spack/bin/spack python ${CI_PROJECT_DIR}/.ci/gitlab/scripts/common/aggregate_package_logs.spack.py + - - time ${SPACK_CI_SPACK_ROOT}/bin/spack python ${SPACK_CI_PACKAGES_ROOT}/.ci/gitlab/scripts/common/aggregate_package_logs.spack.py --prefix /home/software/spack:${CI_PROJECT_DIR}/opt/spack --log install_times.json ${SPACK_ARTIFACTS_ROOT}/user_data/install_times.json || true @@ -40,10 +42,25 @@ ci: id_tokens: GITLAB_OIDC_TOKEN: aud: "${OIDC_TOKEN_AUDIENCE}" + # Retry for everything but "legitimate build failures" (script_failure) + retry: + max: 2 + when:: + - unknown_failure + - api_failure + - stuck_or_timeout_failure + - runner_system_failure + - runner_unsupported + - stale_schedule + - job_execution_timeout + - archived_failure + - unmet_prerequisites + - scheduler_failure + - data_integrity_failure - signing-job: image: - name: ghcr.io/spack/notary@sha256:8b685186de3e26bfacbdfea27cf3802c853e2f1311e833e4d857247791a636dc + name: ghcr.io/spack/notary@sha256:a1e2575e12a1d60083a65f0a1b35abf0df85d7086e7f8b10c2a9926614a46127 entrypoint: [""] tags: ["aws"] script: @@ -108,7 +125,7 @@ ci: aud: "${OIDC_TOKEN_AUDIENCE}" - noop-job: - tags: ["service"] + tags: ["service_noop"] image: busybox@sha256:37f7b378a29ceb4c551b1b5582e27747b855bbfaa73fa11914fe0df028dc581f variables: CI_OIDC_REQUIRED: 0 @@ -125,18 +142,18 @@ ci: variables: # Disable local configs to avoid issues on shell runners SPACK_DISABLE_LOCAL_CONFIG: "1" + REMOTE_SCRIPT_CLONE_SPACK_SHA256: da9ce276f9c0fbcaaa78a90c6047588fc468a7d945e9b199309bfb8edf2c5190 + REMOTE_SCRIPT_REF: e1c30b77cd582a0aed5ff432a31fc1202427c80c before_script: - - export SPACK_USER_CACHE_PATH="${CI_PROJECT_DIR}/tmp/_user_cache/" - - uname -a || true - grep -E "vendor|model name" /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true - nproc || true - - - mkdir spack - - cd spack - - git init - - git remote add origin https://github.com/spack/spack.git - - git fetch --depth 1 origin ${SPACK_CHECKOUT_VERSION} - - git checkout FETCH_HEAD - - cd .. - - - . "./spack/share/spack/setup-env.sh" + # Clone the other repo + - - curl -LSsO https://raw.githubusercontent.com/spack/spack-packages/$REMOTE_SCRIPT_REF/.ci/gitlab/scripts/common/clone_spack.sh + - echo "$REMOTE_SCRIPT_CLONE_SPACK_SHA256 clone_spack.sh" > digest.txt + - sha256sum -c digest.txt + - sh clone_spack.sh + - - . "${SPACK_CI_SPACK_ROOT}/share/spack/setup-env.sh" - spack --version - spack arch diff --git a/.ci/gitlab/configs/cray-rhel/packages.yaml b/.ci/gitlab/configs/cray-rhel/packages.yaml index 9c8e63fbb74..b5c16129c2d 100644 --- a/.ci/gitlab/configs/cray-rhel/packages.yaml +++ b/.ci/gitlab/configs/cray-rhel/packages.yaml @@ -2,14 +2,14 @@ packages: cray-mpich: buildable: false externals: - - spec: cray-mpich@8.1.30 %cce - prefix: /opt/cray/pe/mpich/8.1.30/ofi/cray/18.0 + - spec: cray-mpich@9.0.1 %cce + prefix: /opt/cray/pe/mpich/9.0.1/ofi/cray/20.0 modules: - - cray-mpich/8.1.30 + - cray-mpich/9.0.1 cray-libsci: buildable: false externals: - - spec: cray-libsci@24.07.0 %cce - prefix: /opt/cray/pe/libsci/24.07.0/CRAY/18.0/x86_64/ + - spec: cray-libsci@25.09.0 %cce + prefix: /opt/cray/pe/libsci/25.09.0/CRAY/20.0/x86_64/ modules: - - cray-libsci/24.07.0 \ No newline at end of file + - cray-libsci/25.09.0 \ No newline at end of file diff --git a/.ci/gitlab/configs/darwin/ci.yaml b/.ci/gitlab/configs/darwin/ci.yaml index cdb9bb4bd18..077bf02069c 100644 --- a/.ci/gitlab/configs/darwin/ci.yaml +++ b/.ci/gitlab/configs/darwin/ci.yaml @@ -4,11 +4,22 @@ ci: - openmpi - py-mpi4py pipeline-gen: + - match_behavior: first + submapping: + - match: + - bazel + - llvm + - py-jaxlib + - py-tensorflow + - py-torch + - rust + build-job: + tags: [ "huge" ] - build-job-remove: tags: [spack] - build-job: - timeout: 120 minutes - tags: [ "macos-sequoia", "apple-clang-16", "aarch64-macos" ] + timeout: 240 minutes + tags: [ "macos-tahoe", "apple-clang-17", "aarch64-macos" ] variables: SPACK_GNUPGHOME: ${CI_PROJECT_DIR}/.gpg before_script: diff --git a/.ci/gitlab/configs/darwin/config.yaml b/.ci/gitlab/configs/darwin/config.yaml new file mode 100644 index 00000000000..9318afd907b --- /dev/null +++ b/.ci/gitlab/configs/darwin/config.yaml @@ -0,0 +1,2 @@ +config: + installer: new diff --git a/.ci/gitlab/configs/linux/ci.yaml b/.ci/gitlab/configs/linux/ci.yaml index 8dee200d543..9add0f89153 100644 --- a/.ci/gitlab/configs/linux/ci.yaml +++ b/.ci/gitlab/configs/linux/ci.yaml @@ -4,7 +4,7 @@ ci: before_script-: # Test package relocation on linux using a modified prefix # This is not well supported on MacOS (https://github.com/spack/spack/issues/37162) - - - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture.platform}-{architecture.target}/{name}-{version}-{hash}'" + - - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}/${SPACK_JOB_SPEC_DAG_HASH}:'morepadding/{architecture.platform}-{architecture.target}/{name}-{version}-{hash}'" - match_behavior: first submapping: - match: @@ -20,6 +20,7 @@ ci: KUBERNETES_MEMORY_REQUEST: 48G - match: + - llvm-amdgpu - nvhpc build-job: tags: [ "spack", "huge" ] @@ -31,6 +32,7 @@ ci: - match: - py-tensorflow + - rccl build-job: tags: [ "spack", "huge" ] variables: @@ -40,8 +42,7 @@ ci: KUBERNETES_MEMORY_REQUEST: 32G - match: - - py-jaxlib - - py-torchaudio + - dealii build-job: tags: [ "spack", "huge" ] variables: @@ -51,7 +52,7 @@ ci: KUBERNETES_MEMORY_REQUEST: 29G - match: - - dealii + - py-jaxlib build-job: tags: [ "spack", "huge" ] variables: @@ -61,7 +62,9 @@ ci: KUBERNETES_MEMORY_REQUEST: 26G - match: + - ginkgo - llvm + - py-torchaudio - rocblas build-job: tags: [ "spack", "huge" ] @@ -72,7 +75,8 @@ ci: KUBERNETES_MEMORY_REQUEST: 21G - match: - - ginkgo + - trilinos + - vtk-m build-job: tags: [ "spack", "huge" ] variables: @@ -82,12 +86,12 @@ ci: KUBERNETES_MEMORY_REQUEST: 18G - match: - - llvm-amdgpu + - acts + - cuda + - dd4hep - openfoam - - root - rust - salmon - - trilinos build-job: tags: [ "spack", "large" ] variables: @@ -97,25 +101,22 @@ ci: KUBERNETES_MEMORY_REQUEST: 15G - match: - - acts - ascent - - axom - cistem - - cuda - dray - ecp-data-vis-sdk - - hdf5 - - mfem + - kokkos + - legion - mpich - openturns - paraview - - raja - - rocfft + - qt - relion - rocsolver - - strumpack + - root - sundials - - vtk + - tasmanian + - upcxx - vtk-h build-job: tags: [ "spack", "large" ] @@ -126,10 +127,21 @@ ci: KUBERNETES_MEMORY_REQUEST: 12G - match: + - adios2 + - cabana + - camp - gaudi + - geant4 + - hipblas - hpx + - lammps + - mesa + - py-cinemasci - qt-declarative - - vtk-m + - strumpack + - sundials + - tau + - umpire build-job: tags: [ "spack", "large" ] variables: @@ -139,10 +151,32 @@ ci: KUBERNETES_MEMORY_REQUEST: "9G" - match: - - dd4hep + - amrex + - axom + - blaspp + - caliper + - chai + - ecp-data-vis-sdk - gcc + - hdf5 + - heffte + - hpctoolkit + - hypre + - lapackpp + - mfem + - omega-h + - openmpi + - parsec + - petsc - precice + - qt-base + - raja - rivet + - rocsparse + - superlu-dist + - visit + - vtk + - zfp build-job: tags: [ "spack", "large" ] variables: @@ -152,9 +186,14 @@ ci: KUBERNETES_MEMORY_REQUEST: "8G" - match: + - hwloc + - kokkos-kernels + - kokkos-nvcc-wrapper - lbann - magma - - qt + - papi + - rocfft + - slepc build-job: tags: [ "spack", "large" ] variables: @@ -165,9 +204,8 @@ ci: - match: - dyninst - - geant4 - intel-tbb - - qt-base + - sherpa build-job: tags: [ "spack", "medium" ] variables: @@ -178,12 +216,8 @@ ci: - match: - cmake - - hwloc - - kokkos-kernels - openblas - - rocsparse - slate - - visit build-job: tags: [ "spack", "medium" ] variables: @@ -193,12 +227,8 @@ ci: KUBERNETES_MEMORY_REQUEST: "5G" - match: - - camp - - hipblas - oce - parallel-netcdf - - sherpa - - zfp build-job: tags: [ "spack", "medium" ] variables: @@ -208,51 +238,31 @@ ci: KUBERNETES_MEMORY_REQUEST: "3G" - match: - - adios2 - - amrex - archer - autoconf-archive - - axom - blt - boost - butterflypack - - cabana - - caliper - curl - datatransferkit - dray + - eigen - fortrilinos - gettext - - hdf5 - - hpctoolkit - hydrogen - - hypre - - kokkos - - lammps - - legion - libxml2 - libzmq - llvm-openmp-ompt - - mesa - - mfem - mvapich2 - - openmpi - openpmd-api - - petsc - pygmo - py-petsc4py - py-scipy - - raja - slurm - sqlite - - sundials - - tasmanian - - umpire - - vtk - vtk-h - warpx - warpx +python - - zfp build-job: tags: [ "spack", "medium" ] variables: @@ -264,33 +274,21 @@ ci: - match: - ascent - binutils - - blaspp - - chai - conduit - double-conversion - - ecp-data-vis-sdk - - eigen - faodel - fftw - - heffte - - lapackpp - libtool - mpich - nasm - - omega-h + - ninja - pagmo2 - - papi - - parsec - pegtl - pdt - plumed - pumi - py-statsmodels - - slepc - strumpack - - superlu-dist - - tau - - upcxx build-job: tags: [ "spack", "medium" ] variables: @@ -300,7 +298,6 @@ ci: KUBERNETES_MEMORY_REQUEST: "2G" - match: - - kokkos-nvcc-wrapper - netlib-lapack build-job: tags: [ "spack", "medium" ] @@ -317,7 +314,6 @@ ci: - netlib-scalapack - parallelio - py-beniget - - py-cinemasci - py-ipython-genutils - py-packaging - samrai @@ -340,7 +336,6 @@ ci: - bison - blt - bzip2 - - camp - curl - czmq - darshan-util @@ -389,7 +384,6 @@ ci: - metis - mpfr - ncurses - - ninja - numactl - openjdk - openjpeg diff --git a/.ci/gitlab/configs/linux/config.yaml b/.ci/gitlab/configs/linux/config.yaml new file mode 100644 index 00000000000..9318afd907b --- /dev/null +++ b/.ci/gitlab/configs/linux/config.yaml @@ -0,0 +1,2 @@ +config: + installer: new diff --git a/.ci/gitlab/configs/linux/x86_64_v4/ci.yaml b/.ci/gitlab/configs/linux/x86_64_v4/ci.yaml index 835ee1844e2..a15e802bd96 100644 --- a/.ci/gitlab/configs/linux/x86_64_v4/ci.yaml +++ b/.ci/gitlab/configs/linux/x86_64_v4/ci.yaml @@ -3,8 +3,4 @@ ci: - build-job: variables: SPACK_CI_TARGET: x86_64_v4 - before_script: - - - curl -LfsS "https://github.com/JuliaBinaryWrappers/GNUMake_jll.jl/releases/download/GNUMake-v4.3.0+1/GNUMake.v4.3.0.x86_64-linux-gnu.tar.gz" -o gmake.tar.gz - - printf "fef1f59e56d2d11e6d700ba22d3444b6e583c663d6883fd0a4f63ab8bd280f0f gmake.tar.gz" | sha256sum --check --strict --quiet - - tar -xzf gmake.tar.gz -C /usr bin/make 2> /dev/null tags: ["x86_64_v4"] diff --git a/.ci/gitlab/configs/multi-src-mirrors.yaml.in b/.ci/gitlab/configs/multi-src-mirrors.yaml.in index e224ed0eb6d..14efe1d5516 100644 --- a/.ci/gitlab/configs/multi-src-mirrors.yaml.in +++ b/.ci/gitlab/configs/multi-src-mirrors.yaml.in @@ -5,7 +5,7 @@ mirrors: source: False binary: True buildcache-destination: - fetch: ${PR_MIRROR_FETCH_DOMAIN}/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME} - push: ${PR_MIRROR_PUSH_DOMAIN}/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME} + fetch: ${PR_MIRROR_FETCH_DOMAIN}/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME} + push: ${PR_MIRROR_PUSH_DOMAIN}/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME} source: False binary: True diff --git a/.ci/gitlab/configs/repos.yaml b/.ci/gitlab/configs/repos.yaml new file mode 100644 index 00000000000..0a1a41b23bc --- /dev/null +++ b/.ci/gitlab/configs/repos.yaml @@ -0,0 +1,3 @@ +repos: + builtin:: ../../../repos/spack_repo/builtin + ci: ../repos/spack_repo/ci diff --git a/.ci/gitlab/configs/win64/ci.yaml b/.ci/gitlab/configs/win64/ci.yaml index 0f7f3f56587..8caf70dc142 100644 --- a/.ci/gitlab/configs/win64/ci.yaml +++ b/.ci/gitlab/configs/win64/ci.yaml @@ -5,21 +5,24 @@ ci: - Write-Output "Done" before_script:: - - - mkdir spack - - cd spack + - - mkdir .ci/tmp/spack + - cd .ci/tmp/spack - git init - - git remote add origin https://github.com/spack/spack.git + - git remote add origin https://github.com/${SPACK_CHECKOUT_REPO}.git - git fetch --depth 1 origin ${SPACK_CHECKOUT_VERSION} - git checkout FETCH_HEAD - - cd .. + - cd ${CI_PROJECT_DIR} - fsutil 8dot3name set C:\ 0 - - . .\spack\share\spack\setup-env.ps1 + - . ${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 } script:: - spack.ps1 env activate --without-view ${SPACK_CONCRETE_ENV_DIR} - - spack.ps1 config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{hash}'" + - spack.ps1 config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}/${SPACK_JOB_SPEC_DAG_HASH}:'morepadding/{hash}'" - mkdir ${SPACK_ARTIFACTS_ROOT}/user_data - spack.ps1 --backtrace ci rebuild | Tee-Object -FilePath "${env:SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt" 2>&1 | Tee-Object -FilePath "${env:SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt" - image: "ghcr.io/johnwparent/windows-server21h2:sha-1c12b61" + image: { + name: "ghcr.io/johnwparent/windows-server21h2:sha-1c12b61", + entrypoint: [""] + } diff --git a/.ci/gitlab/configs/win64/packages.yaml b/.ci/gitlab/configs/win64/packages.yaml index b6d0089c5ac..a3362eab821 100644 --- a/.ci/gitlab/configs/win64/packages.yaml +++ b/.ci/gitlab/configs/win64/packages.yaml @@ -23,3 +23,8 @@ packages: - spec: win-sdk@10.0.22621 plat=x64 prefix: "C:\\Program Files (x86)\\Windows Kits\\10" buildable: False + win-wdk: + externals: + - spec: win-wdk@10.0.22621 plat=x64 + prefix: "C:\\Program Files (x86)\\Windows Kits\\10" + buildable: False diff --git a/.ci/gitlab/configs/win64/x86_64/ci.yaml b/.ci/gitlab/configs/win64/x86_64/ci.yaml index 8e3b45c336a..6f6f3ad6bcd 100644 --- a/.ci/gitlab/configs/win64/x86_64/ci.yaml +++ b/.ci/gitlab/configs/win64/x86_64/ci.yaml @@ -1,4 +1,40 @@ ci: pipeline-gen: + - match_behavior: first + submapping: + - match: + - abseil-cpp + - c-blosc + - ca-certificates-mozilla + - catch2 + - cgns + - compiler-wrapper + - fast-float + - freetype + - gl2ps + - harfbuzz + - msmpi + - nasm + - netcdf-cxx4 + - py-beautifulsoup4 + - py-cython + - py-flit-core + - py-meson-python + - py-packaging + - py-pip + - py-pyproject-metadata + - py-setuptools + - py-soupsieve + - sqlite + - zlib + build-job-remove: + tags: [ "medium" ] + build-job: + tags: [ "small" ] + variables: + CI_JOB_SIZE: small + SPACK_BUILD_JOBS: "4" + KUBERNETES_CPU_REQUEST: 4000m + KUBERNETES_MEMORY_REQUEST: 8G - build-job: - tags: [x86_64-win] + tags: [ "x86_64-win", "medium" ] diff --git a/.ci/gitlab/include.yaml b/.ci/gitlab/include.yaml index b16431941e4..835a791377a 100644 --- a/.ci/gitlab/include.yaml +++ b/.ci/gitlab/include.yaml @@ -41,5 +41,13 @@ include: - path: configs/linux when: platform == "linux" + # === Per-package resource requests (Only used for Linux on Kubernetes) === + - when: platform == "linux" + git: https://gitlab.spack.io/spack/resource-requests + branch: main + paths: + - ci.yaml + optional: true + # === Generic === - configs diff --git a/.ci/gitlab/repos/spack_repo/ci/__init__.py b/.ci/gitlab/repos/spack_repo/ci/__init__.py new file mode 100644 index 00000000000..c4ecc87fb8a --- /dev/null +++ b/.ci/gitlab/repos/spack_repo/ci/__init__.py @@ -0,0 +1,3 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) diff --git a/.ci/gitlab/repos/spack_repo/ci/packages/smoke_test/package.py b/.ci/gitlab/repos/spack_repo/ci/packages/smoke_test/package.py new file mode 100644 index 00000000000..2ce72bfca77 --- /dev/null +++ b/.ci/gitlab/repos/spack_repo/ci/packages/smoke_test/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.bundle import BundlePackage + +from spack.package import * + + +class SmokeTest(BundlePackage): + """This is a smoke-test package for use in CI to force pipelines to run re-build jobs. + + Note: This package requires that the builtin repo is also in the python path + """ + + homepage = "https://www.spack.io" + + maintainers("kwryankrattiger") + + # This package has the same license as Spack + license("Apache-2.0 OR MIT") + + version("0.1.0") + + def install(self, *args): + """This install method always fails. This ensures there is never a binary cache + created so this package is guarenteed to rebuild in CI + """ + raise InstallError("smoke-test") diff --git a/.ci/gitlab/repos/spack_repo/ci/repo.yaml b/.ci/gitlab/repos/spack_repo/ci/repo.yaml new file mode 100644 index 00000000000..5a6d206d1ac --- /dev/null +++ b/.ci/gitlab/repos/spack_repo/ci/repo.yaml @@ -0,0 +1,3 @@ +repo: + namespace: ci + api: v2.0 diff --git a/.ci/gitlab/scripts/common/clone_spack.sh b/.ci/gitlab/scripts/common/clone_spack.sh new file mode 100755 index 00000000000..23e0423c058 --- /dev/null +++ b/.ci/gitlab/scripts/common/clone_spack.sh @@ -0,0 +1,12 @@ +#!/bin/sh -e + +if [ -d .ci/tmp/spack ]; then + exit 0 +fi + +mkdir -p .ci/tmp/spack +cd .ci/tmp/spack +git init +git remote add origin "https://github.com/${SPACK_CHECKOUT_REPO}.git" +git fetch --depth 1 origin "${SPACK_CHECKOUT_VERSION}" +git checkout FETCH_HEAD diff --git a/.ci/gitlab/scripts/common/noop_job.py b/.ci/gitlab/scripts/common/noop_job.py new file mode 100644 index 00000000000..ae5d7f58534 --- /dev/null +++ b/.ci/gitlab/scripts/common/noop_job.py @@ -0,0 +1,35 @@ +import os +import sys + +# Noop job +# CI_OIDC_REQUIRED: 0 - disable OIDC setup +# GIT_STRATEGY: none - don't clone anything +# Allocate a small runner +# CI_JOB_SIZE: small +# KUBERNETES_CPU_REQUEST: 100m +# KUBERNETES_MEMORY_REQUEST: 5M +NOOP_JOB = """ +noop: + image: busybox@sha256:37f7b378a29ceb4c551b1b5582e27747b855bbfaa73fa11914fe0df028dc581f + variables: + CI_OIDC_REQUIRED: 0 + GIT_STRATEGY: none + CI_JOB_SIZE: small + KUBERNETES_CPU_REQUEST: 100m + KUBERNETES_MEMORY_REQUEST: 5M + before_script: [] + after_script: [] + script: + - echo "noop job generated by noop_job.py" + tags: [service_noop, spack] + retry: 0 + allow_failure: true +workflow: + rules: + - when: always +""" + +if __name__ == "__main__": + os.makedirs(os.path.dirname(sys.argv[1])) + with open(sys.argv[1], "w", encoding="utf-8") as fd: + fd.write(NOOP_JOB) diff --git a/.ci/gitlab/scripts/common/write_dotenv.py b/.ci/gitlab/scripts/common/write_dotenv.py new file mode 100644 index 00000000000..d0013dd72a9 --- /dev/null +++ b/.ci/gitlab/scripts/common/write_dotenv.py @@ -0,0 +1,55 @@ +import os +import sys + +CI_PROJECT_DIR = "." +CI_AUX_DIR = os.path.join(".ci", "tmp", "spack") + + +def configure_packages_repo(dotenv): + dotenv["SPACK_CI_PACKAGES_ROOT"] = CI_PROJECT_DIR + dotenv["SPACK_CI_SPACK_ROOT"] = CI_AUX_DIR + + +def configure_core_repo(dotenv): + dotenv["SPACK_CI_PACKAGES_ROOT"] = CI_AUX_DIR + dotenv["SPACK_CI_SPACK_ROOT"] = CI_PROJECT_DIR + + +def read_dotenv(file): + dotenv = {} + for line in file: + if "=" in line: + key, value = line.split("=", 1) + dotenv[key] = value.strip() + return dotenv + + +def write_dotenv(env, file): + for var, value in env.items(): + file.write(f"{var}={value}\n") + + +if __name__ == "__main__": + dotenv = {} + base_dotenv = sys.argv[1] if len(sys.argv) > 1 else None + if base_dotenv: + if os.path.exists(base_dotenv): + print(f"Found base dotenv: {base_dotenv}") + with open(base_dotenv, "r", encoding="utf-8") as fd: + dotenv = read_dotenv(fd) + else: + print(f"File does not exist: {base_dotenv}") + + # Setup the repo/version to be used for checkout + for checkout_var in ("SPACK_CHECKOUT_REPO", "SPACK_CHECKOUT_VERSION"): + if checkout_var in os.environ: + dotenv[checkout_var] = os.environ[checkout_var] + + repo_override = os.environ.get("CI_PROJECT_NAME") + if repo_override and not repo_override.endswith("packages"): + configure_core_repo(dotenv) + else: + configure_packages_repo(dotenv) + + with open("env", "w", encoding="utf-8") as fd: + write_dotenv(dotenv, fd) diff --git a/.ci/gitlab/stacks/aws-pcluster-neoverse_v1/spack.yaml b/.ci/gitlab/stacks/aws-pcluster-neoverse_v1/spack.yaml deleted file mode 100644 index 28d978dbc07..00000000000 --- a/.ci/gitlab/stacks/aws-pcluster-neoverse_v1/spack.yaml +++ /dev/null @@ -1,134 +0,0 @@ -spack: - view: false - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - definitions: - - apps: - - gromacs - - mpas-model - - mpich - - openfoam - - quantum-espresso - - wrf - - targets: - - target=neoverse_v1 - specs: - - matrix: - - [$apps] - - [$targets] - ci: - pipeline-gen: - - build-job: - image: {name: ghcr.io/spack/pcluster-amazonlinux-2:v2024-10-07, entrypoint: ['']} - tags: [aarch64] - before_script: - - - mkdir spack - - cd spack - - git init - - git remote add origin https://github.com/spack/spack.git - - git fetch --depth 1 origin ${SPACK_CHECKOUT_VERSION} - - git checkout FETCH_HEAD - - cd .. - - - . "./spack/share/spack/setup-env.sh" - - . /etc/profile.d/modules.sh - - spack --version - - spack arch - - export PATH=/home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-aarch64/gcc-7.3.1/binutils-2.37-2yxz3xsjfmesxujxtlrgcctxlyilynmp/bin:$PATH - - spack -c "config:install_tree:root:/home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh" reindex - - signing-job: - before_script: - # Do not distribute Intel & ARM binaries - - - export SPECS_PATH=${SPACK_BUILDCACHE_RELATIVE_SPECS_PATH} - - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/ | grep intel-oneapi | awk '{print $4}' | sed -e "s?^.*${SPECS_PATH}/??g"); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/$i; done - - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/ | grep armpl | awk '{print $4}' | sed -e "s?^.*${SPECS_PATH}/??g"); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/$i; done - cdash: - build-group: AWS Packages - - config: - shared_linking: - missing_library_policy: ignore # due to use of externals - - packages: - gcc: - externals: - - spec: gcc@=12.4.0 - prefix: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-aarch64/gcc-7.3.1/gcc-12.4.0-v6wxye6ijzrxnzxftcwnpu3psohsjl2b - extra_attributes: - compilers: - c: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-aarch64/gcc-7.3.1/gcc-12.4.0-v6wxye6ijzrxnzxftcwnpu3psohsjl2b/bin/gcc - cxx: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-aarch64/gcc-7.3.1/gcc-12.4.0-v6wxye6ijzrxnzxftcwnpu3psohsjl2b/bin/g++ - fortran: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-aarch64/gcc-7.3.1/gcc-12.4.0-v6wxye6ijzrxnzxftcwnpu3psohsjl2b/bin/gfortran - acfl: - require: - - "%gcc" - - "target=aarch64" - gromacs: - require: - - gromacs@2024.3 ^armpl-gcc ^openmpi - - "%gcc" - - target=neoverse_v1 - libfabric: - buildable: true - externals: - - prefix: /opt/amazon/efa/ - spec: libfabric@1.17.0 - require: - - fabrics=shm,efa - - target=neoverse_v1 - llvm: - variants: ~lldb - mpas-model: - require: - - precision=single ^parallelio+pnetcdf - - "%gcc" - - target=neoverse_v1 - mpich: - require: - - mpich pmi=pmi2 device=ch4 netmod=ofi +slurm - - target=neoverse_v1 - nvhpc: - require: - - "target=aarch64" - openfoam: - require: - - openfoam ^scotch@6.0.9 - - target=neoverse_v1 - openmpi: - variants: ~atomics ~cuda ~cxx ~cxx_exceptions ~internal-hwloc ~java +legacylaunchers ~lustre ~memchecker +pmi +romio ~singularity +vt +wrapper-rpath fabrics=ofi schedulers=slurm - require: - - '@4:' - - target=neoverse_v1 - # Palace does not build correctly with armpl until https://github.com/awslabs/palace/pull/207 is merged into a version. - # palace: - # require: - # - one_of: ["palace cxxflags=\"-include cstdint\" ^fmt@9.1.0"] - pmix: - require: - - "pmix@3:" - - target=neoverse_v1 - quantum-espresso: - require: - - quantum-espresso@6.6 %gcc ^armpl-gcc - - target=neoverse_v1 - slurm: - buildable: false - externals: - - prefix: /opt/slurm - spec: slurm@22.05.8 +pmix - require: - - "+pmix" - all: - target: ["neoverse_v1"] - require: - - "%gcc" - - "target=neoverse_v1" - providers: - blas: [armpl-gcc, openblas] - fftw-api: [armpl-gcc, fftw] - lapack: [armpl-gcc, openblas] - mpi: [openmpi, mpich] - scalapack: [netlib-scalapack] - permissions: - read: world - write: user diff --git a/.ci/gitlab/stacks/aws-pcluster-x86_64_v4/spack.yaml b/.ci/gitlab/stacks/aws-pcluster-x86_64_v4/spack.yaml deleted file mode 100644 index d117e2313d2..00000000000 --- a/.ci/gitlab/stacks/aws-pcluster-x86_64_v4/spack.yaml +++ /dev/null @@ -1,155 +0,0 @@ -spack: - view: false - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - definitions: - - apps: - - gromacs %oneapi - - lammps %oneapi - # earliest oneapi version with fix does not run on AmazonLinux2, see https://github.com/spack/spack/pull/46457 - # - mpas-model %oneapi - - openfoam %gcc - - palace %oneapi - # TODO: Find out how to make +ipo cmake flag work. - # - quantum-espresso %oneapi - - openmpi %oneapi - - wrf %oneapi - - targets: - - target=x86_64_v4 - - target=x86_64_v3 - specs: - - matrix: - - [$apps] - - [$targets] - ci: - pipeline-gen: - - build-job: - image: {name: ghcr.io/spack/pcluster-amazonlinux-2:v2024-10-07, entrypoint: ['']} - before_script: - - - mkdir spack - - cd spack - - git init - - git remote add origin https://github.com/spack/spack.git - - git fetch --depth 1 origin ${SPACK_CHECKOUT_VERSION} - - git checkout FETCH_HEAD - - cd .. - - - . "./spack/share/spack/setup-env.sh" - - . /etc/profile.d/modules.sh - - spack --version - - spack arch - - export PATH=/home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-7.3.1/binutils-2.37-qvccg7zpskturysmr4bzbsfrx34kvazo/bin:$PATH - - spack -c "config:install_tree:root:/home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh" reindex - - signing-job: - before_script: - # Do not distribute Intel & ARM binaries - - - export SPECS_PATH=${SPACK_BUILDCACHE_RELATIVE_SPECS_PATH} - - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/ | grep intel-oneapi | awk '{print $4}' | sed -e "s?^.*${SPECS_PATH}/??g"); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/$i; done - - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/ | grep armpl | awk '{print $4}' | sed -e "s?^.*${SPECS_PATH}/??g"); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/$i; done - cdash: - build-group: AWS Packages - - config: - shared_linking: - missing_library_policy: ignore # due to use of externals - - packages: - gcc: - externals: - - spec: gcc@=12.4.0 - prefix: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-7.3.1/gcc-12.4.0-pttzchh7o54nhmycj4wgzw5mic6rk2nb - extra_attributes: - compilers: - c: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-7.3.1/gcc-12.4.0-pttzchh7o54nhmycj4wgzw5mic6rk2nb/bin/gcc - cxx: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-7.3.1/gcc-12.4.0-pttzchh7o54nhmycj4wgzw5mic6rk2nb/bin/g++ - fortran: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-7.3.1/gcc-12.4.0-pttzchh7o54nhmycj4wgzw5mic6rk2nb/bin/gfortran - intel-oneapi-compilers: - externals: - - spec: intel-oneapi-compilers@=2024.1.0 - prefix: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-12.4.0/intel-oneapi-compilers-2024.1.0-f5u3psfhbwscasajkn324igtupn3blop - extra_attributes: - compilers: - c: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-12.4.0/intel-oneapi-compilers-2024.1.0-f5u3psfhbwscasajkn324igtupn3blop/compiler/2024.1/bin/icx - cxx: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-12.4.0/intel-oneapi-compilers-2024.1.0-f5u3psfhbwscasajkn324igtupn3blop/compiler/2024.1/bin/icpx - fortran: /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-12.4.0/intel-oneapi-compilers-2024.1.0-f5u3psfhbwscasajkn324igtupn3blop/compiler/2024.1/bin/ifx - extra_rpaths: - - /home/software/spack/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeh/linux-amzn2-x86_64_v3/gcc-7.3.1/gcc-12.4.0-pttzchh7o54nhmycj4wgzw5mic6rk2nb/lib64 - fortran: - require: - - "intel-oneapi-compilers" - gettext: - # Newer gettext cannot build with gcc@12 and old AL2 glibc headers - # Older gettext versions do not build correctly with oneapi. - require: - - one_of: ['@:0.20 %gcc', '%oneapi'] - gromacs: - require: - - +intel_provided_gcc ^intel-oneapi-mkl - intel-oneapi-mpi: - variants: +external-libfabric generic-names=True - lammps: - require: - - lammps_sizes=bigbig +molecule +kspace +rigid +asphere +opt +openmp +openmp-package fft=mkl ^intel-oneapi-mkl - - one_of: [+intel target=x86_64_v4, target=x86_64_v3] - bison: - require: - - "%gcc" - boost: - require: - - "%gcc" - libfabric: - buildable: true - externals: - - prefix: /opt/amazon/efa/ - spec: libfabric@1.17.0 - require: - - fabrics=shm,efa - mpas-model: - require: - - spec: precision=single ^parallelio+pnetcdf - when: '%oneapi' - mpich: - require: - - mpich pmi=pmi2 device=ch4 netmod=ofi +slurm - openfoam: - require: - - openfoam %gcc ^scotch@6.0.9 - openmpi: - variants: ~atomics ~cuda ~cxx ~cxx_exceptions ~internal-hwloc ~java +legacylaunchers ~lustre ~memchecker +pmi +romio ~singularity +vt +wrapper-rpath fabrics=ofi schedulers=slurm - require: - - 'openmpi @4:' - palace: - require: - - palace ^fmt@9.1.0 - pmix: - require: - - 'pmix@3:' - quantum-espresso: - require: - - quantum-espresso@6.6 ^intel-oneapi-mkl+cluster - slurm: - buildable: false - externals: - - prefix: /opt/slurm - spec: slurm@22.05.8 +pmix - require: - - +pmix - wrf: - require: - - wrf@4 build_type=dm+sm - all: - require: - - "%oneapi" - permissions: - read: world - write: user - providers: - blas: [intel-oneapi-mkl] - daal: [intel-oneapi-dal] - fftw-api: [intel-oneapi-mkl] - ipp: [intel-oneapi-ipp] - lapack: [intel-oneapi-mkl] - mkl: [intel-oneapi-mkl] - mpi: [intel-oneapi-mpi, openmpi, mpich] - tbb: [intel-oneapi-tbb, intel-tbb] - scalapack: [intel-oneapi-mkl] diff --git a/.ci/gitlab/stacks/bootstrap-aarch64-darwin/spack.yaml b/.ci/gitlab/stacks/bootstrap-aarch64-darwin/spack.yaml deleted file mode 100644 index d26718aca6a..00000000000 --- a/.ci/gitlab/stacks/bootstrap-aarch64-darwin/spack.yaml +++ /dev/null @@ -1,33 +0,0 @@ -spack: - view: false - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - packages: - all: - target: ["aarch64"] - require: target=aarch64 - - config: - deprecated: true # allow old python versions - - specs: - - clingo-bootstrap +optimized ^python@3.13 - - clingo-bootstrap +optimized ^python@3.12 - - clingo-bootstrap +optimized ^python@3.11 - - clingo-bootstrap +optimized ^python@3.10 - - clingo-bootstrap +optimized ^python@3.9 - - clingo-bootstrap +optimized ^python@3.8 - - - clingo-bootstrap@spack +optimized ^python@3.13 - - clingo-bootstrap@spack +optimized ^python@3.12 - - clingo-bootstrap@spack +optimized ^python@3.11 - - clingo-bootstrap@spack +optimized ^python@3.10 - - clingo-bootstrap@spack +optimized ^python@3.9 - - clingo-bootstrap@spack +optimized ^python@3.8 - - ci: - pipeline-gen: - - build-job: - variables: - CI_GPG_KEY_ROOT: /etc/protected-runner diff --git a/.ci/gitlab/stacks/bootstrap-x86_64-linux-gnu/spack.yaml b/.ci/gitlab/stacks/bootstrap-x86_64-linux-gnu/spack.yaml deleted file mode 100644 index d1e6f583bf6..00000000000 --- a/.ci/gitlab/stacks/bootstrap-x86_64-linux-gnu/spack.yaml +++ /dev/null @@ -1,38 +0,0 @@ -spack: - view: false - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - packages: - all: - target: ["x86_64_v3"] - require: target=x86_64_v3 - - config: - deprecated: true # allow old python versions - - specs: - - clingo-bootstrap +optimized ^python@3.13 - - clingo-bootstrap +optimized ^python@3.12 - - clingo-bootstrap +optimized ^python@3.11 - - clingo-bootstrap +optimized ^python@3.10 - - clingo-bootstrap +optimized ^python@3.9 - - clingo-bootstrap +optimized ^python@3.8 - - clingo-bootstrap +optimized ^python@3.7 - - clingo-bootstrap +optimized ^python@3.6 - - - clingo-bootstrap@spack +optimized ^python@3.13 - - clingo-bootstrap@spack +optimized ^python@3.12 - - clingo-bootstrap@spack +optimized ^python@3.11 - - clingo-bootstrap@spack +optimized ^python@3.10 - - clingo-bootstrap@spack +optimized ^python@3.9 - - clingo-bootstrap@spack +optimized ^python@3.8 - - clingo-bootstrap@spack +optimized ^python@3.7 - - clingo-bootstrap@spack +optimized ^python@3.6 - - ci: - pipeline-gen: - - build-job: - image: - name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 - entrypoint: [''] diff --git a/.ci/gitlab/stacks/build_systems/spack.yaml b/.ci/gitlab/stacks/build_systems/spack.yaml deleted file mode 100644 index 02c957161a6..00000000000 --- a/.ci/gitlab/stacks/build_systems/spack.yaml +++ /dev/null @@ -1,27 +0,0 @@ -spack: - view: false - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - packages: - all: - target: ["x86_64_v3"] - require: - - target=x86_64_v3 - c: - require: - - gcc - - specs: - - 'uncrustify build_system=autotools' - - 'uncrustify build_system=cmake' - - lz4 # MakefilePackage - - mpich~fortran # AutotoolsPackage - - py-setuptools # PythonPackage - - openjpeg # CMakePackage - - r-rcpp # RPackage - - ruby-rake # RubyPackage - - perl-data-dumper # PerlPackage - - cdash: - build-group: Build Systems diff --git a/.ci/gitlab/stacks/data-vis-sdk/spack.yaml b/.ci/gitlab/stacks/data-vis-sdk/spack.yaml deleted file mode 100644 index 5bd8271e811..00000000000 --- a/.ci/gitlab/stacks/data-vis-sdk/spack.yaml +++ /dev/null @@ -1,98 +0,0 @@ -spack: - view: false - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - packages: - all: - target: ["x86_64_v3"] - require: - - target=x86_64_v3 - c: - require: - - gcc@11 - cxx: - require: - - gcc@11 - fortran: - require: - - gcc@11 - - cmake: - variants: ~ownlibs - ecp-data-vis-sdk: - require: - - "+ascent +adios2 +cinema +darshan +faodel +hdf5 +pnetcdf +sensei +sz +unifyfs +veloc +vtkm +zfp" - - target=x86_64_v3 - hdf5: - require: - - "@1.14" - - target=x86_64_v3 - mesa: - require: - - "+glx +osmesa +opengl ~opengles +llvm" - - target=x86_64_v3 - libglx: - require: "mesa +glx" - ospray: - require: - - "@2.8.0" - - "+denoiser +mpi" - - target=x86_64_v3 - llvm: - require: - - "@14:" - - target=x86_64_v3 - # Minimize LLVM - variants: ~lldb~lld~libomptarget~polly~gold libunwind=none compiler-rt=none - libllvm: - require: ["llvm"] - visit: - require: - - "@3.4.1" - - target=x86_64_v3 - - concretizer: - unify: false - - definitions: - - paraview_specs: - - matrix: - - - paraview +raytracing +adios2 +fides - - - +qt ^[virtuals=gl] glx # GUI Support w/ GLX Rendering - - ~qt ^[virtuals=gl] glx # GLX Rendering - - ^[virtuals=gl] osmesa # OSMesa Rendering - - visit_specs: - - matrix: - - - visit - - - ~gui ^[virtuals=gl] glx - - ~gui ^[virtuals=gl] osmesa - - +gui ^[virtuals=gl] glx # GUI Support w/ GLX Rendering - - sdk_base_spec: - - matrix: - - - ecp-data-vis-sdk +ascent +adios2 +cinema +darshan +faodel +hdf5 +pnetcdf - +sensei +sz +unifyfs +veloc +vtkm +zfp - - - ~cuda ~rocm - # Current testing of GPU supported configurations - # is provided in the E4S stack - # - +cuda ~rocm - # - ~cuda +rocm - - specs: - # Test ParaView and VisIt builds with different GL backends - - matrix: - - [$sdk_base_spec] - - ["+paraview ~visit"] - - [$^paraview_specs] - - matrix: - - [$sdk_base_spec] - - ["~paraview +visit"] - - [$^visit_specs] - - ci: - pipeline-gen: - - build-job: - image: {name: ghcr.io/spack/ubuntu20.04-runner-x86_64:2023-01-01, entrypoint: [''] } - - cdash: - 'build-group:': Data and Vis SDK diff --git a/.ci/gitlab/stacks/developer-tools-aarch64-linux-gnu/spack.yaml b/.ci/gitlab/stacks/developer-tools-aarch64-linux-gnu/spack.yaml deleted file mode 100644 index e24c38c6cfa..00000000000 --- a/.ci/gitlab/stacks/developer-tools-aarch64-linux-gnu/spack.yaml +++ /dev/null @@ -1,85 +0,0 @@ -spack: - view: false - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - packages: - all: - require: - - target=aarch64 - prefer: - - '%gcc' - - concretizer: - unify: true - reuse: false - - specs: - # editors - - 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 - # - tree-sitter is a dep, should also have cli but no package - - nano # just in case - # tags and scope search helpers - - universal-ctags # only maintained ctags, works better with c++ - - direnv - # runtimes and compilers - - python - - llvm+link_llvm_dylib~lld~lldb~polly+python build_type=MinSizeRel # for clangd, clang-format - - node-js # for editor plugins etc., pyright language server - - npm - - cmake - - libtool - - go # to build fzf, gh, hub - - rust+dev # fd, ripgrep, hyperfine, exa, rust-analyzer - - binutils+ld+gold+plugins # support linking with built gcc - # styling and lints - - astyle - - cppcheck - - uncrustify - - py-fprettify - - py-fortran-language-server - - py-python-lsp-server - # cli dev tools - - ripgrep - - gh - - fd - - bfs - - fzf - - tree - - jq - - py-yq - - hub - - ncdu - - eza - - lsd - - hyperfine - - htop - - tmux - - ccache - # ensure we can use a jobserver build and do this fast - - gmake - - ninja # should be @kitware, can't be because of meson requirement - - openssl certs=system # must be this, system external does not work - - libtree - - patchelf - - sed - - which - - elfutils - - fontconfig - - font-util - - gdb - - flex - - graphviz - - doxygen - - meson - - ci: - pipeline-gen: - - build-job: - image: ghcr.io/spack/aarch64-linux-gnu:v2024-12-18 - - cdash: - build-group: Developer Tools aarch64-linux-gnu diff --git a/.ci/gitlab/stacks/developer-tools-darwin/spack.yaml b/.ci/gitlab/stacks/developer-tools-darwin/spack.yaml deleted file mode 100644 index fe076965454..00000000000 --- a/.ci/gitlab/stacks/developer-tools-darwin/spack.yaml +++ /dev/null @@ -1,75 +0,0 @@ -spack: - view: false - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - packages: - all: - require: - - target=aarch64 - concretizer: - unify: true - reuse: false - specs: - # editors - #- neovim~no_luajit # build fails: https://github.com/spack/spack/pull/48453#issuecomment-2624788262 - - py-pynvim - - emacs+json~native+treesitter # TODO native not supported until gcc builds on darwin - # - tree-sitter is a dep, should also have cli but no package - - nano # just in case - # tags and scope search helpers - - universal-ctags # only maintained ctags, works better with c++ - - direnv - # runtimes and compilers - - python - - llvm+link_llvm_dylib+lld~lldb~polly+python build_type=MinSizeRel # for clangd, clang-format - - node-js # for editor plugins etc., pyright language server - - npm - - cmake - - libtool - - go # to build fzf, gh, hub - - rust+dev # fd, ripgrep, hyperfine, exa, rust-analyzer - # styling and lints - - astyle - - cppcheck - - uncrustify - - py-fprettify - - py-fortran-language-server - - py-python-lsp-server - # cli dev tools - - ripgrep - - gh - - fd - - bfs - - fzf - - tree - - jq - - py-yq - - hub - - ncdu - - eza - - lsd - - hyperfine - - htop - - tmux - - ccache - # ensure we can use a jobserver build and do this fast - - gmake - - ninja # should be @kitware, can't be because of meson requirement - - libtree - - sed - - which - - flex - - graphviz - - doxygen - - meson - - lima - - ci: - pipeline-gen: - - build-job: - variables: - CI_GPG_KEY_ROOT: /etc/protected-runner - - cdash: - build-group: Developer Tools Darwin diff --git a/.ci/gitlab/stacks/developer-tools-x86_64_v3-linux-gnu/spack.yaml b/.ci/gitlab/stacks/developer-tools-x86_64_v3-linux-gnu/spack.yaml deleted file mode 100644 index 6c590181aaa..00000000000 --- a/.ci/gitlab/stacks/developer-tools-x86_64_v3-linux-gnu/spack.yaml +++ /dev/null @@ -1,88 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - packages: - all: - require: - - target=x86_64_v3 - - ~cuda - - ~rocm - prefer: - - "%gcc" - concretizer: - unify: true - reuse: false - static_analysis: true - - specs: - # editors - - 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 - # - tree-sitter is a dep, should also have cli but no package - - nano # just in case - # tags and scope search helpers - - universal-ctags # only maintained ctags, works better with c++ - - direnv - # runtimes and compilers - - python - - llvm+link_llvm_dylib~lld~lldb~polly+python build_type=MinSizeRel # for clangd, clang-format - - node-js # for editor plugins etc., pyright language server - - npm - - cmake - - libtool - - go # to build fzf, gh, hub - - rust+dev # fd, ripgrep, hyperfine, exa, rust-analyzer - - binutils+ld+gold+plugins # support linking with built gcc - # styling and lints - - astyle - - cppcheck - - uncrustify - - py-fprettify - - py-fortran-language-server - - py-python-lsp-server - # cli dev tools - - ripgrep - - gh - - fd - - bfs - - fzf - - tree - - jq - - py-yq - - hub - - ncdu - - eza - - lsd - - hyperfine - - htop - - tmux - - ccache - # ensure we can use a jobserver build and do this fast - - gmake - - ninja # should be @kitware, can't be because of meson requirement - - openssl certs=system # must be this, system external does not work - - libtree - - patchelf - - sed - - which - - elfutils - - fontconfig - - font-util - - gdb - - flex - - graphviz - - doxygen - - meson - - ci: - pipeline-gen: - - build-job: - image: ghcr.io/spack/x86_64_v3-linux-gnu:2024-12-12 - - cdash: - build-group: Developer Tools x86_64_v3-linux-gnu diff --git a/.ci/gitlab/stacks/e4s-cray-rhel/spack.yaml b/.ci/gitlab/stacks/e4s-cray-rhel/spack.yaml deleted file mode 100644 index f94beb32929..00000000000 --- a/.ci/gitlab/stacks/e4s-cray-rhel/spack.yaml +++ /dev/null @@ -1,202 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - concretizer: - static_analysis: true - - config: - shared_linking: - missing_library_policy: ignore # due to use of externals - - packages: - all: - require: - - target=x86_64_v3 - - "%cce" - providers: - blas: [cray-libsci] - c: [cce] - cxx: [cce] - fortran: [cce] - lapack: [cray-libsci] - mpi: [cray-mpich] - tbb: [intel-tbb] - scalapack: [netlib-scalapack] - variants: +mpi - - # Virtuals - blas: - require: - - cray-libsci - lapack: - require: - - cray-libsci - mpi: - require: - - cray-mpich - scalapack: - require: - - netlib-scalapack - - ncurses: - require: - - +termlib ldflags=-Wl,--undefined-version - - target=x86_64_v3 - tbb: - require: "intel-tbb" - binutils: - variants: +ld +gold +headers +libiberty ~nls - boost: - variants: +python +filesystem +iostreams +system - elfutils: - variants: ~nls - require: - - target=x86_64_v3 - - "%gcc" - gcc-runtime: - require: - - target=x86_64_v3 - - "%gcc" - hdf5: - variants: +fortran +hl +shared - libfabric: - variants: fabrics=sockets,tcp,udp,rxm - mgard: - require: - - target=x86_64_v3 - - "@compat-2023-01-10:" - mpich: - variants: ~wrapperrpath - paraview: - # Don't build GUI support or GLX rendering for HPC/container deployments - require: - - "~qt ^[virtuals=gl] osmesa" - - target=x86_64_v3 - petsc: - require: - - "+batch" - - target=x86_64_v3 - trilinos: - require: - - one_of: [+amesos +amesos2 +anasazi +aztec +boost +epetra +epetraext +ifpack - +intrepid +intrepid2 +isorropia +kokkos +minitensor +nox +piro +phalanx - +rol +rythmos +sacado +stk +shards +stratimikos +tempus +tpetra - +trilinoscouplings +zoltan] - - one_of: [gotype=long_long, gotype=all] - - one_of: [~ml ~muelu ~zoltan2 ~teko, +ml +muelu +zoltan2 +teko] - - one_of: [+superlu-dist, ~superlu-dist] - - one_of: [+shylu, ~shylu] - - target=x86_64_v3 - - specs: - # CPU - - adios - - aml - - arborx - - argobots - - boost +python +filesystem +iostreams +system - - cabana - - chai - - conduit - - datatransferkit - - flecsi - - flit - - ginkgo - - globalarrays - - gmp - - gotcha - - h5bench - - hdf5-vol-async - - hdf5-vol-cache cflags=-Wno-error=incompatible-function-pointer-types - - hdf5-vol-log - - heffte +fftw - - hypre - - kokkos +openmp - - kokkos-kernels +openmp - - legion - - libnrm - - libquo - - libunwind - - mercury - - metall - - mfem - - mpark-variant - - mpifileutils ~xattr cflags=-Wno-error=implicit-function-declaration - - nccmp - - nco - - netlib-scalapack cflags=-Wno-error=implicit-function-declaration - - openpmd-api ^adios2~mgard - - papyrus - - pdt - - petsc - - precice - - pumi - - qthreads scheduler=distrib - - raja - - slate ~cuda - - slepc - - stc - - sundials - - superlu - - superlu-dist - - swig - - swig@4.0.2-fortran - - sz3 - - tasmanian - - trilinos +belos +ifpack2 +stokhos - - turbine - - umap - - umpire - - veloc - - wannier90 - - # - alquimia # pflotran: petsc-3.19.4-c6pmpdtpzarytxo434zf76jqdkhdyn37/lib/petsc/conf/rules:169: material_aux.o] Error 1: fortran errors - # - amrex # disabled temporarily pending resolution of unreproducible CI failure - # - axom # axom: CMake Error at axom/sidre/cmake_install.cmake:154 (file): file INSTALL cannot find "/tmp/gitlab-runner-2/spack-stage/spack-stage-axom-0.8.1-jvol6riu34vuyqvrd5ft2gyhrxdqvf63/spack-build-jvol6ri/lib/fortran/axom_spio.mod": No such file or directory. - # - bolt # ld.lld: error: CMakeFiles/bolt-omp.dir/kmp_gsupport.cpp.o: symbol GOMP_atomic_end@@GOMP_1.0 has undefined version GOMP_1.0 - # - bricks # bricks: clang-15: error: clang frontend command failed with exit code 134 (use -v to see invocation) - # - butterflypack ^netlib-scalapack cflags=-Wno-error=implicit-function-declaration # ftn-2116 ftn: INTERNAL "driver" was terminated due to receipt of signal 01: Hangup. - # - caliper # papi: papi_internal.c:124:3: error: use of undeclared identifier '_papi_hwi_my_thread'; did you mean '_papi_hwi_read'? - # - charliecloud # libxcrypt-4.4.35: ld.lld: error: version script assignment of 'XCRYPT_2.0' to symbol 'xcrypt_r' failed: symbol not defined - # - cp2k +mpi # libxsmm: ftn-78 ftn: ERROR in command linel; The -f option has an invalid argument, "tree-vectorize". - # - dealii # llvm@14.0.6: ?; intel-tbb@2020.3: clang-15: error: unknown argument: '-flifetime-dse=1'; assimp@5.2.5: clang-15: error: clang frontend command failed with exit code 134 (use -v to see invocation) - # - dyninst # requires %gcc - # - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 +paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp ^hdf5@1.14 # llvm@14.0.6: ?; - # - exaworks # rust: ld.lld: error: relocation R_X86_64_32 cannot be used against local symbol; recompile with -fPIC'; defined in /opt/cray/pe/cce/15.0.1/cce/x86_64/lib/no_mmap.o, referenced by /opt/cray/pe/cce/15.0.1/cce/x86_64/lib/no_mmap.o:(__no_mmap_for_malloc) - # - flux-core # libxcrypt-4.4.35: ld.lld: error: version script assignment of 'XCRYPT_2.0' to symbol 'xcrypt_r' failed: symbol not defined - # - fortrilinos # trilinos-14.0.0: packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp:67:8: error: no type named 'uint32_t' in namespace 'std' - # - gasnet # configure error: User requested --enable-ofi but I don't know how to build ofi programs for your system - # - gptune # py-scipy: meson.build:82:0: ERROR: Unknown compiler(s): [['/home/gitlab-runner-3/builds/dWfnZWPh/0/spack/spack/lib/spack/env/cce/ftn']] - # - hpctoolkit # dyninst requires %gcc - # - hpx max_cpu_count=512 networking=mpi # libxcrypt-4.4.35 - # - lammps # lammps-20240829.1: Reversed (or previously applied) patch detected! Assume -R? [n] - # - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +mgard # mgard: - # - mgard +serial +openmp +timing +unstructured ~cuda # mgard - # - nrm # py-scipy: meson.build:82:0: ERROR: Unknown compiler(s): [['/home/gitlab-runner-3/builds/dWfnZWPh/0/spack/spack/lib/spack/env/cce/ftn']] - # - nvhpc # requires %gcc - # - omega-h # trilinos-13.4.1: packages/kokkos/core/src/impl/Kokkos_MemoryPool.cpp:112:48: error: unknown type name 'uint32_t' - # - openmpi # libxcrypt-4.4.35: ld.lld: error: version script assignment of 'XCRYPT_2.0' to symbol 'xcrypt_r' failed: symbol not defined - # - papi # papi_internal.c:124:3: error: use of undeclared identifier '_papi_hwi_my_thread'; did you mean '_papi_hwi_read'? - # - parsec ~cuda # parsec: parsec/fortran/CMakeFiles/parsec_fortran.dir/parsecf.F90.o: ftn-2103 ftn: WARNING in command line. The -W extra option is not supported or invalid and will be ignored. - # - phist # fortran_bindings/CMakeFiles/phist_fort.dir/phist_testing.F90.o: ftn-78 ftn: ERROR in command line. The -f option has an invalid argument, "no-math-errno". - # - plasma # %cce conflict - # - plumed # libxcrypt-4.4.35: ld.lld: error: version script assignment of 'XCRYPT_2.0' to symbol 'xcrypt_r' failed: symbol not defined - # - py-h5py +mpi # libxcrypt-4.4.35: ld.lld: error: version script assignment of 'XCRYPT_2.0' to symbol 'xcrypt_r' failed: symbol not defined - # - py-h5py ~mpi # libxcrypt-4.4.35: ld.lld: error: version script assignment of 'XCRYPT_2.0' to symbol 'xcrypt_r' failed: symbol not defined - # - py-jupyterhub # rust: ld.lld: error: relocation R_X86_64_32 cannot be used against local symbol; recompile with -fPIC'; defined in /opt/cray/pe/cce/15.0.1/cce/x86_64/lib/no_mmap.o, referenced by /opt/cray/pe/cce/15.0.1/cce/x86_64/lib/no_mmap.o:(__no_mmap_for_malloc) - # - py-libensemble +mpi +nlopt # libxcrypt-4.4.35: ld.lld: error: version script assignment of 'XCRYPT_2.0' to symbol 'xcrypt_r' failed: symbol not defined - # - py-petsc4py # libxcrypt-4.4.35: ld.lld: error: version script assignment of 'XCRYPT_2.0' to symbol 'xcrypt_r' failed: symbol not defined - # - quantum-espresso # quantum-espresso: CMake Error at cmake/FindSCALAPACK.cmake:503 (message): A required library with SCALAPACK API not found. Please specify library - # - scr # scr: make[2]: *** [examples/CMakeFiles/test_ckpt_F.dir/build.make:112: examples/test_ckpt_F] Error 1: /opt/cray/pe/cce/15.0.1/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld: /opt/cray/pe/mpich/8.1.25/ofi/cray/10.0/lib/libmpi_cray.so: undefined reference to `PMI_Barrier' - # - strumpack ~slate # strumpack: [test/CMakeFiles/test_HSS_seq.dir/build.make:117: test/test_HSS_seq] Error 1: ld.lld: error: undefined reference due to --no-allow-shlib-undefined: mpi_abort_ - # - tau +mpi +python # libelf: configure: error: installation or configuration problem: C compiler cannot create executables.; papi: papi_internal.c:124:3: error: use of undeclared identifier '_papi_hwi_my_thread'; did you mean '_papi_hwi_read'? - # - upcxx # upcxx: configure error: User requested --enable-ofi but I don't know how to build ofi programs for your system - # - variorum # variorum: /opt/cray/pe/cce/15.0.1/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld: /opt/cray/pe/lib64/libpals.so.0: undefined reference to `json_array_append_new@@libjansson.so.4' - # - warpx +python # py-scipy: meson.build:82:0: ERROR: Unknown compiler(s): [['/home/gitlab-runner-3/builds/dWfnZWPh/0/spack/spack/lib/spack/env/cce/ftn']] - # - xyce +mpi +shared +pymi +pymi_static_tpls ^trilinos~shylu # openblas: ftn-2307 ftn: ERROR in command line: The "-m" option must be followed by 0, 1, 2, 3 or 4.; make[2]: *** [: spotrf2.o] Error 1; make[1]: *** [Makefile:27: lapacklib] Error 2; make: *** [Makefile:250: netlib] Error 2 - - cdash: - build-group: E4S Cray diff --git a/.ci/gitlab/stacks/e4s-cray-sles/spack.yaml b/.ci/gitlab/stacks/e4s-cray-sles/spack.yaml deleted file mode 100644 index 1a222506f21..00000000000 --- a/.ci/gitlab/stacks/e4s-cray-sles/spack.yaml +++ /dev/null @@ -1,177 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - concretizer: - reuse: false - unify: false - - config: - shared_linking: - missing_library_policy: ignore # due to use of externals - - packages: - all: - require: '%gcc' - providers: - blas: [cray-libsci] - lapack: [cray-libsci] - mpi: [cray-mpich] - tbb: [intel-tbb] - scalapack: [netlib-scalapack] - target: [zen4] - variants: +mpi - - tbb: - require: "intel-tbb" - binutils: - variants: +ld +gold +headers +libiberty ~nls - boost: - variants: +python +filesystem +iostreams +system - cuda: - version: [11.7.0] - elfutils: - variants: ~nls - require: "%gcc" - hdf5: - variants: +fortran +hl +shared - libfabric: - variants: fabrics=sockets,tcp,udp,rxm - libunwind: - variants: +pic +xz - mpich: - variants: ~wrapperrpath - ncurses: - variants: +termlib - paraview: - # Don't build GUI support or GLX rendering for HPC/container deployments - require: "@5.11 ~qt ^[virtuals=gl] osmesa" - trilinos: - require: - - one_of: [+amesos +amesos2 +anasazi +aztec +boost +epetra +epetraext +ifpack - +intrepid +intrepid2 +isorropia +kokkos +minitensor +nox +piro +phalanx - +rol +rythmos +sacado +stk +shards +stratimikos +tempus +tpetra - +trilinoscouplings +zoltan] - - one_of: [gotype=long_long, gotype=all] - - one_of: [~ml ~muelu ~zoltan2 ~teko, +ml +muelu +zoltan2 +teko] - xz: - variants: +pic - mesa: - version: [21.3.8] - unzip: - require: "%gcc" - - specs: - # CPU - - adios - - aml - - arborx - - argobots - - bolt - - butterflypack - - boost +python +filesystem +iostreams +system - - cabana - - chai - - conduit - # - cp2k +mpi # cp2k: Error: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/COMPLEX(4)). - - datatransferkit - - flecsi - - fortrilinos - - ginkgo - - globalarrays - - gmp - - gotcha - - h5bench - - hdf5-vol-async - - hdf5-vol-cache - - hdf5-vol-log - - heffte +fftw - - hypre - - kokkos +openmp - - kokkos-kernels +openmp - - lammps - - legion - - libnrm - - libquo - - libunwind - - mercury - - metall - - mfem - - mgard +serial +openmp +timing +unstructured ~cuda - - mpark-variant - - mpifileutils ~xattr - - nccmp - - nco - - netlib-scalapack - - omega-h - - openmpi - - openpmd-api - - papi - - papyrus - - pdt - - pumi - - qthreads scheduler=distrib - - raja - - slate ~cuda - - stc - - sundials - - superlu - - superlu-dist - - swig - - swig@4.0.2-fortran - - sz3 - - tasmanian - - trilinos +belos +ifpack2 +stokhos - - turbine - - umap - - umpire - - veloc - - wannier90 - - # ERRORS - # - caliper # caliper: ModuleNotFoundError: No module named 'math'; src/mpi/services/mpiwrap/CMakeFiles/caliper-mpiwrap.dir/build.make:77: src/mpi/services/mpiwrap/Wrapper.cpp] Error 1 - # - charliecloud # python: Could not find platform dependent libraries - # - flit # python: Could not find platform dependent libraries - # - flux-core # python: Could not find platform dependent libraries - # - hpx max_cpu_count=512 networking=mpi # python: Could not find platform dependent libraries - # - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +mgard # python: Could not find platform dependent libraries - # - petsc # petsc: SyntaxError: (unicode error) \N escapes not supported (can't load unicodedata module) - # - plumed # python: Could not find platform dependent libraries - # - precice # petsc: SyntaxError: (unicode error) \N escapes not supported (can't load unicodedata module) - # - py-h5py +mpi # python: Could not find platform dependent libraries - # - py-h5py ~mpi # python: Could not find platform dependent libraries - # - py-libensemble +mpi +nlopt # python: Could not find platform dependent libraries - # - py-petsc4py # python: Could not find platform dependent libraries - # - slepc # petsc: SyntaxError: (unicode error) \N escapes not supported (can't load unicodedata module) - # - tau +mpi +python # tau: ERROR: Cannot find python library (libpython*.[so|dylib] - - # HOLDING THESE BACK UNTIL CRAY SLES CAPACITY IS EXPANDED AT UO - # - alquimia - # - amrex - # - axom - # - bricks - # - dealii - # - dyninst - # - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 +paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp ^hdf5@1.14 # llvm@14.0.6: ?; - # - exaworks - # - gasnet - # - gptune - # - hpctoolkit - # - nrm - # - nvhpc - # - parsec ~cuda - # - phist - # - plasma - # - py-jupyterhub - # - quantum-espresso - # - scr - # - strumpack ~slate - # - upcxx - # - variorum - # - xyce +mpi +shared +pymi +pymi_static_tpls ^trilinos~shylu - # - warpx +python - - cdash: - build-group: E4S Cray SLES diff --git a/.ci/gitlab/stacks/e4s-neoverse-v2/spack.yaml b/.ci/gitlab/stacks/e4s-neoverse-v2/spack.yaml deleted file mode 100644 index 6cf42e5b437..00000000000 --- a/.ci/gitlab/stacks/e4s-neoverse-v2/spack.yaml +++ /dev/null @@ -1,246 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - concretizer: - reuse: false - unify: false - - packages: - all: - require: - - "%gcc" - - target=neoverse_v2 - target: ["neoverse_v2"] - providers: - blas: [openblas] - mpi: [mpich] - variants: +mpi - binutils: - variants: +ld +gold +headers +libiberty ~nls - blas: - require: - - openblas - hdf5: - variants: +fortran +hl +shared - libfabric: - variants: fabrics=sockets,tcp,udp,rxm - openblas: - variants: threads=openmp - trilinos: - variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext - +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu - +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos - +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long - mpi: - require: mpich - mpich: - require: '~wrapperrpath ~hwloc target=neoverse_v2 %gcc' - tbb: - require: intel-tbb - vtk-m: - require: "+examples target=neoverse_v2 %gcc" - paraview: - require: "+examples target=neoverse_v2 %gcc" - - specs: - # CPU - # - adios - # - alquimia - # - aml - - amrex - - arborx - # - argobots - - ascent # ecp dav - - axom - # - bolt - # - boost - - butterflypack - - cabana - - caliper - - chai - # - charliecloud - - conduit - - cp2k +mpi - - datatransferkit - - dyninst - - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 ~paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp # +visit: ? - - exaworks - - fftx - - flecsi - # - flit - # - flux-core - - fortrilinos - # - gasnet - - ginkgo - # - globalarrays - # - gmp - # - gotcha - # - gptune ~mpispawn - - gromacs +cp2k ^cp2k +mpi +dlaf build_system=cmake - - h5bench - - hdf5-vol-async - - hdf5-vol-cache - - hdf5-vol-log - - heffte +fftw - - hpctoolkit - - hpx networking=mpi - - hypre - - kokkos +openmp - - kokkos-kernels +openmp - - lammps - - lbann - - legion - - libceed - - libnrm - - libquo - - libunwind - - loki - - mercury - - metall - - mfem - - mgard +serial +openmp +timing +unstructured ~cuda - - mpark-variant - - mpifileutils ~xattr - - nccmp - - nco - - netlib-scalapack - - nrm - # - nvhpc - - nwchem - - omega-h - - openfoam - # - openmpi - - openpmd-api - - papi - - papyrus - - parsec ~cuda - - pdt - - petsc - - phist - - plasma - - plumed - - precice - - pruners-ninja - - pumi - - py-amrex - - py-h5py - - py-jupyterhub - - py-libensemble - - py-petsc4py - - qthreads scheduler=distrib - - quantum-espresso - - raja - - rempi - - scr - - slate ~cuda - - slepc - - stc - - strumpack ~slate - - sundials - - superlu - - superlu-dist - # - swig@4.0.2-fortran - - sz3 - - tasmanian - - tau +mpi +python +syscall - - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long - - turbine - # - umap - - umpire - - upcxx - # - veloc - - wannier90 - - warpx +python - - xyce +mpi +shared +pymi +pymi_static_tpls - # INCLUDED IN ECP DAV CPU - # - adios2 - # - darshan-runtime - # - darshan-util - # - faodel - # - hdf5 - # - libcatalyst - # - parallel-netcdf - # - paraview - # - py-cinemasci - # - sz - # - unifyfs - # - visit # silo: https://github.com/spack/spack/issues/39538 - # - vtk-m - # - zfp - # -- - - laghos - # - bricks ~cuda # not respecting target=aarch64? - # - dealii # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'. - # - geopm # geopm: https://github.com/spack/spack/issues/38795 - # - glvis # glvis: https://github.com/spack/spack/issues/42839 - # - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp # py-numcodecs@0.7.3: gcc: error: unrecognized command-line option '-mno-sse2' - # - variorum # variorum: https://github.com/spack/spack/issues/38786 - - # CUDA NOARCH - - flux-core +cuda - - hpctoolkit +cuda - - papi +cuda - - tau +mpi +cuda +syscall - # -- - # - bricks +cuda # not respecting target=aarch64? - # - legion +cuda # legion: needs NVIDIA driver - - # CUDA 90 - - amrex +cuda cuda_arch=90 - - arborx +cuda cuda_arch=90 ^kokkos +wrapper - - cabana +cuda cuda_arch=90 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=90 - - caliper +cuda cuda_arch=90 - - chai +cuda cuda_arch=90 ^umpire ~shared - - fftx +cuda cuda_arch=90 - - flecsi +cuda cuda_arch=90 - - ginkgo +cuda cuda_arch=90 - - gromacs +cuda cuda_arch=90 - - heffte +cuda cuda_arch=90 - - hpx +cuda cuda_arch=90 - - kokkos +wrapper +cuda cuda_arch=90 - - kokkos-kernels +cuda cuda_arch=90 ^kokkos +wrapper +cuda cuda_arch=90 - - libceed +cuda cuda_arch=90 - - magma +cuda cuda_arch=90 - - mfem +cuda cuda_arch=90 - - mgard +serial +openmp +timing +unstructured +cuda cuda_arch=90 - - parsec +cuda cuda_arch=90 - - petsc +cuda cuda_arch=90 - - raja +cuda cuda_arch=90 - - slate +cuda cuda_arch=90 - - strumpack ~slate +cuda cuda_arch=90 - - sundials +cuda cuda_arch=90 - - superlu-dist +cuda cuda_arch=90 - - trilinos +cuda cuda_arch=90 - - umpire ~shared +cuda cuda_arch=90 - # INCLUDED IN ECP DAV CUDA - - adios2 +cuda cuda_arch=90 - # - ascent +cuda cuda_arch=90 # ascent: https://github.com/spack/spack/issues/38045 - # - paraview +cuda cuda_arch=90 # paraview: InstallError: Incompatible cuda_arch=90 - - vtk-m +cuda cuda_arch=90 - - zfp +cuda cuda_arch=90 - # -- - # - axom +cuda cuda_arch=90 # axom: https://github.com/spack/spack/issues/29520 - # - cp2k +mpi +cuda cuda_arch=90 # cp2k: cp2k only supports cuda_arch ('35', '37', '60', '70', '80') - # - cusz +cuda cuda_arch=90 # cusz: https://github.com/spack/spack/issues/38787 - # - dealii +cuda cuda_arch=90 # dealii: https://github.com/spack/spack/issues/39532 - # - ecp-data-vis-sdk +adios2 +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=90 # embree: https://github.com/spack/spack/issues/39534 - # - hypre +cuda cuda_arch=90 # concretizer: hypre +cuda requires cuda@:11, but cuda_arch=90 requires cuda@12: - # - lammps +cuda cuda_arch=90 # lammps: needs NVIDIA driver - # - lbann +cuda cuda_arch=90 # concretizer: Cannot select a single "version" for package "lbann" - # - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf ~cusz +mgard +cuda cuda_arch=90 # libpressio: CMake Error at CMakeLists.txt:498 (find_library): Could not find CUFile_LIBRARY using the following names: cufile ; +cusz: https://github.com/spack/spack/issues/38787 - # - omega-h +cuda cuda_arch=90 # omega-h: https://github.com/spack/spack/issues/39535 - # - py-torch +cuda cuda_arch=90 # skipped, installed by other means - # - slepc +cuda cuda_arch=90 # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'. - # - tasmanian +cuda cuda_arch=90 # tasmanian: conflicts with cuda@12 - # - upcxx +cuda cuda_arch=90 # upcxx: needs NVIDIA driver - - ci: - pipeline-gen: - - build-job: - image: ghcr.io/spack/spack/ubuntu22.04-runner-arm64-gcc-11.4:2024.03.01 - - cdash: - build-group: E4S ARM Neoverse V2 diff --git a/.ci/gitlab/stacks/e4s-oneapi/spack.yaml b/.ci/gitlab/stacks/e4s-oneapi/spack.yaml deleted file mode 100644 index 51ffdc4881a..00000000000 --- a/.ci/gitlab/stacks/e4s-oneapi/spack.yaml +++ /dev/null @@ -1,242 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - concretizer: - reuse: false - unify: false - static_analysis: false - - packages: - all: - require: - - target=x86_64_v3 - - '%oneapi' - providers: - c: [intel-oneapi-compilers, gcc] - cxx: [intel-oneapi-compilers, gcc] - fortran: [intel-oneapi-compilers, gcc] - blas: [openblas] - tbb: [intel-tbb] - variants: +mpi - gl: - require: osmesa - fortran: - require: intel-oneapi-compilers - elfutils: - variants: ~nls - hdf5: - variants: +fortran +hl +shared - libfabric: - variants: fabrics=sockets,tcp,udp,rxm - libunwind: - variants: +pic +xz - ncurses: - variants: +termlib - openblas: - variants: threads=openmp - require: 'cppflags="-O1" target=x86_64_v3 %oneapi' - trilinos: - variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext - +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu - +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos - +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long - xz: - variants: +pic - gcc-runtime: - require: 'target=x86_64_v3 %gcc' - binutils: - variants: +ld +gold +headers +libiberty ~nls - rust: - require: 'target=x86_64_v3 %gcc' - bison: - require: 'target=x86_64_v3 %gcc' - raja: - variants: +plugins - mpi: - require: intel-oneapi-mpi - - specs: - - adios - - alquimia - - aml - - amrex - - arborx - - argobots - - axom - - bolt - - boost - - bricks ~cuda - - butterflypack - - cabana - - caliper - - chai tests=none - - charliecloud - - conduit - - datatransferkit - - e4s-alc - - e4s-cl - - flecsi - - flit - - flux-core - - fortrilinos - - gasnet - - ginkgo - - globalarrays - - gmp - - gotcha - - gromacs - - h5bench - - hdf5-vol-async - - hdf5-vol-cache - - hdf5-vol-log - - heffte +fftw - - hpctoolkit - - hpx networking=mpi - - hypre - - kokkos +openmp - - kokkos-kernels +openmp - - laghos ^mfem~cuda - - lammps +amoeba +asphere +bocs +body +bpm +brownian +cg-dna +cg-spica +class2 +colloid +colvars +compress +coreshell +dielectric +diffraction +dipole +dpd-basic +dpd-meso +dpd-react +dpd-smooth +drude +eff +electrode +extra-compute +extra-dump +extra-fix +extra-molecule +extra-pair +fep +granular +interlayer +kspace +lepton +machdyn +manybody +mc +meam +mesont +misc +ml-iap +ml-pod +ml-snap +mofff +molecule +openmp-package +opt +orient +peri +phonon +plugin +poems +qeq +reaction +reaxff +replica +rigid +shock +sph +spin +srd +tally +uef +voronoi +yaff - - legion - - libceed - - libnrm - - libquo - - libunwind - - loki - - mercury - - metall - - mfem - - mgard +serial +openmp +timing +unstructured ~cuda - - mpark-variant - - mpifileutils ~xattr - - nccmp - - nco - - nekbone +mpi - - netcdf-fortran - - netlib-scalapack - - nrm - - nwchem - - omega-h - - openfoam - - openmpi - - openpmd-api - - papi target=x86_64_v3 - - papyrus - - parsec ~cuda - - pdt - - petsc - - phist - - plumed - - precice - - pruners-ninja - - pumi - - py-h5py - - py-libensemble - - py-petsc4py - - qthreads scheduler=distrib - - quantum-espresso - - raja - - rempi - - scr - - slate ~cuda - - slepc - - stc - - strumpack ~slate - - sundials - - superlu - - superlu-dist - - swig@4.0.2-fortran - - sz3 - - tasmanian - - tau +mpi +python +syscall - - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long - - turbine - - umap - - umpire - - upcxx - - variorum - - wannier90 - - wrf - - xyce +mpi +shared +pymi +pymi_static_tpls - # INCLUDED IN ECP DAV CPU - - adios2 - - ascent - - darshan-runtime - - darshan-util - - faodel - - hdf5 - - libcatalyst - - parallel-netcdf - - sz - - unifyfs - - veloc - - vtk-m ~openmp # +openmp: https://github.com/spack/spack/issues/31830 - - zfp - # -- - # - paraview +qt # concretize: paraview: Qt support requires GLX on non Windows; llvm-17.0.6: https://github.com/spack/spack/issues/49625 - # - py-cinemasci # py-maturin-1.8.3: rust-lld: error: undefined symbol: _intel_fast_memcpy - # - visit # vtk-9.2.6: ?? - # -- - # - chapel ~cuda ~rocm # chapel-2.4.0: KeyError: 'intel-oneapi-compilers': /builds/spack/spack/var/spack/repos/builtin/packages/chapel/package.py:602, in setup_chpl_compilers: env.set("CHPL_HOST_COMPILER", self.compiler_map[self.spec.compiler.name]) - # - cp2k +mpi # dbcsr-2.8.0: FAILED: src/CMakeFiles/dbcsr.dir/dbcsr_api.F-pp.f src/CMakeFiles/dbcsr.dir/dbcsr_api.F.o.ddi: - # - dealii # taskflow@3.7.0: cmake: Taskflow currently supports the following compilers: g++ v7.0 or above, clang++ v6.0 or above - # - exago +mpi ~ipopt +hiop ~python +raja ^hiop+raja~sparse # raja-0.14.0: RAJA/pattern/kernel/Tile.hpp:174:30: error: no member named 'block_id' in 'IterableTiler' - # - exaworks # py-maturin: rust-lld: error: undefined symbol: _intel_fast_memcpy - # - fftx # fftx-1.2.0: https://github.com/spack/spack/issues/49621 - # - fpm # fpm-0.10.0: /tmp/ifx1305151083OkWTRB/ifxqBG60i.i90: error #6405: The same named entity from different modules and/or program units cannot be referenced. [TOML_TABLE]; fpm.F90(32048): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [FPM_MANIFEST_PREPROCESS] - # - geopm-runtime # concretize: c-blosc2: conflicts with '%oneapi'; - - glvis # llvm-17.0.6: https://github.com/spack/spack/issues/49625 - # - gptune ~mpispawn # py-maturin-1.8.3: rust-lld: error: undefined symbol: __intel_cpu_feature_indicator_x - # - lbann # lbann-0.104: https://github.com/spack/spack/issues/49619 - # - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp # concretize: c-blosc2: conflicts with '%oneapi'; - # - nek5000 +mpi ~visit # nek5000-19.0: RuntimeError: Cannot build example: short_tests/eddy. - # - plasma # concretizer: requires("%gcc@4.9:", when="@17.1:") - # - py-deephyper # py-numpy-1.25.2: numpy/distutils/checks/cpu_avx512_knl.c:21:37: error: call to undeclared function '_mm512_exp2a23_pd'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] - # - py-jupyterhub # py-maturin: rust-lld: error: undefined symbol: _intel_fast_memcpy - # - warpx ~qed +python ~python_ipo compute=sycl ^py-amrex ~ipo # warpx-25.03: https://github.com/spack/spack/issues/49620 - # - wps # wps-4.5: InstallError: Compiler not recognized nor supported. - - # PYTHON PACKAGES - - opencv +python3 - - py-mpi4py - - py-numpy - - py-openai - - py-pooch - - py-pytest - - py-scikit-learn - - py-scipy - - py-seaborn - # -- - # - py-jupyterlab # py-maturin: rust-lld: error: undefined symbol: _intel_fast_memcpy - # - py-notebook # py-maturin: rust-lld: error: undefined symbol: _intel_fast_memcpy - - py-numba # llvm-14.0.6: https://github.com/spack/spack/issues/49625 - - py-pandas # llvm-14.0.6: https://github.com/spack/spack/issues/49625 - # - py-plotly # py-maturin: rust-lld: error: undefined symbol: _intel_fast_memcpy - - - aml +level_zero - - amrex +sycl - - arborx +sycl ^kokkos +sycl +openmp cxxstd=17 - - cabana +sycl ^kokkos +sycl +openmp cxxstd=17 - - ginkgo +sycl - - kokkos +sycl +openmp cxxstd=17 - - sundials +sycl +examples-install cxxstd=17 - - tau +mpi +opencl +level_zero +syscall - - upcxx +level_zero - # -- - # - heffte +sycl # heffte-2.4.1: intel-oneapi-mkl-2024.2.2-yevdna3rfdezkcm6vz4r3gtrz4grkts3/mkl/2024.2/lib//libmkl_sycl_rng.so: undefined reference to `__host_std::sycl_host_floor(sycl::_V1::vec)' - # - hpctoolkit +level_zero # hpctoolkit-2024.01.1: gpu/intel/level0/level0-command-process.c:94:61: error: illegal initializer type 'atomic_int' (aka '_Atomic(int)') - # - hypre +sycl # hypre-2.32.0: gpu/intel/level0/level0-command-process.c:94:61: error: illegal initializer type 'atomic_int' (aka '_Atomic(int)') - # - kokkos-kernels ^kokkos +sycl +openmp cxxstd=17 # kokkos-kernels-4.5.01: /opt/intel/oneapi/compiler/2025.1/bin/compiler/../../include/sycl/group_algorithm.hpp:598:31: error: SYCL kernel cannot call an undefined function without SYCL_EXTERNAL attribute - # - petsc +sycl # kokkos-kernels-4.4.01: /opt/intel/oneapi/compiler/2025.1/bin/compiler/../../include/sycl/group_algorithm.hpp:598:31: error: SYCL kernel cannot call an undefined function without SYCL_EXTERNAL attribute - # - slate +sycl # blaspp-2024.10.26: blas/device.hh:46:14: fatal error: 'sycl.hpp' file not found - - ci: - pipeline-gen: - - build-job: - image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-oneapi-2025.1:2025.03.24 - - cdash: - build-group: E4S OneAPI diff --git a/.ci/gitlab/stacks/e4s-rocm-external/spack.yaml b/.ci/gitlab/stacks/e4s-rocm-external/spack.yaml deleted file mode 100644 index 1b7e4418b9b..00000000000 --- a/.ci/gitlab/stacks/e4s-rocm-external/spack.yaml +++ /dev/null @@ -1,325 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - concretizer: - reuse: false - unify: false - - packages: - all: - require: - - 'target=x86_64_v3' - providers: - blas: [openblas] - variants: +mpi - tbb: - require: intel-tbb - mpi: - require: mpich - mpich: - require: '~wrapperrpath ~hwloc target=x86_64_v3 %gcc' - openblas: - variants: threads=openmp - paraview: - # Don't build GUI support or GLX rendering for HPC/container deployments - require: - - "@5.11: +examples ~qt ^[virtuals=gl] osmesa" - - 'target=x86_64_v3' - - # ROCm - comgr: - buildable: false - externals: - - spec: comgr@6.2.1 - prefix: /opt/rocm-6.2.1/ - hip-rocclr: - buildable: false - externals: - - spec: hip-rocclr@6.2.1 - prefix: /opt/rocm-6.2.1/hip - hipblas: - buildable: false - externals: - - spec: hipblas@6.2.1 - prefix: /opt/rocm-6.2.1/ - hipcub: - buildable: false - externals: - - spec: hipcub@6.2.1 - prefix: /opt/rocm-6.2.1/ - hipfft: - buildable: false - externals: - - spec: hipfft@6.2.1 - prefix: /opt/rocm-6.2.1/ - hipsparse: - buildable: false - externals: - - spec: hipsparse@6.2.1 - prefix: /opt/rocm-6.2.1/ - miopen-hip: - buildable: false - externals: - - spec: miopen-hip@6.2.1 - prefix: /opt/rocm-6.2.1/ - miopengemm: - buildable: false - externals: - - spec: miopengemm@6.2.1 - prefix: /opt/rocm-6.2.1/ - rccl: - buildable: false - externals: - - spec: rccl@6.2.1 - prefix: /opt/rocm-6.2.1/ - rocblas: - buildable: false - externals: - - spec: rocblas@6.2.1 - prefix: /opt/rocm-6.2.1/ - rocfft: - buildable: false - externals: - - spec: rocfft@6.2.1 - prefix: /opt/rocm-6.2.1/ - rocm-clang-ocl: - buildable: false - externals: - - spec: rocm-clang-ocl@6.2.1 - prefix: /opt/rocm-6.2.1/ - rocm-cmake: - buildable: false - externals: - - spec: rocm-cmake@6.2.1 - prefix: /opt/rocm-6.2.1/ - rocm-dbgapi: - buildable: false - externals: - - spec: rocm-dbgapi@6.2.1 - prefix: /opt/rocm-6.2.1/ - rocm-debug-agent: - buildable: false - externals: - - spec: rocm-debug-agent@6.2.1 - prefix: /opt/rocm-6.2.1/ - rocm-device-libs: - buildable: false - externals: - - spec: rocm-device-libs@6.2.1 - prefix: /opt/rocm-6.2.1/ - rocm-gdb: - buildable: false - externals: - - spec: rocm-gdb@6.2.1 - prefix: /opt/rocm-6.2.1/ - rocm-opencl: - buildable: false - externals: - - spec: rocm-opencl@6.2.1 - prefix: /opt/rocm-6.2.1/opencl - rocm-smi-lib: - buildable: false - externals: - - spec: rocm-smi-lib@6.2.1 - prefix: /opt/rocm-6.2.1/ - hip: - buildable: false - externals: - - spec: hip@6.2.1 - prefix: /opt/rocm-6.2.1 - extra_attributes: - compilers: - c: /opt/rocm-6.2.1/llvm/bin/clang++ - c++: /opt/rocm-6.2.1/llvm/bin/clang++ - hip: /opt/rocm-6.2.1/hip/bin/hipcc - hipify-clang: - buildable: false - externals: - - spec: hipify-clang@6.2.1 - prefix: /opt/rocm-6.2.1 - llvm-amdgpu: - buildable: false - externals: - - spec: llvm-amdgpu@6.2.1 - prefix: /opt/rocm-6.2.1/llvm - extra_attributes: - compilers: - c: /opt/rocm-6.2.1/llvm/bin/clang++ - cxx: /opt/rocm-6.2.1/llvm/bin/clang++ - hsakmt-roct: - buildable: false - externals: - - spec: hsakmt-roct@6.2.1 - prefix: /opt/rocm-6.2.1/ - hsa-rocr-dev: - buildable: false - externals: - - spec: hsa-rocr-dev@6.2.1 - prefix: /opt/rocm-6.2.1/ - extra_atributes: - compilers: - c: /opt/rocm-6.2.1/llvm/bin/clang++ - cxx: /opt/rocm-6.2.1/llvm/bin/clang++ - roctracer-dev-api: - buildable: false - externals: - - spec: roctracer-dev-api@6.2.1 - prefix: /opt/rocm-6.2.1 - roctracer-dev: - buildable: false - externals: - - spec: roctracer-dev@4.5.3 - prefix: /opt/rocm-6.2.1 - rocprim: - buildable: false - externals: - - spec: rocprim@6.2.1 - prefix: /opt/rocm-6.2.1 - rocrand: - buildable: false - externals: - - spec: rocrand@6.2.1 - prefix: /opt/rocm-6.2.1 - hipsolver: - buildable: false - externals: - - spec: hipsolver@6.2.1 - prefix: /opt/rocm-6.2.1 - rocsolver: - buildable: false - externals: - - spec: rocsolver@6.2.1 - prefix: /opt/rocm-6.2.1 - rocsparse: - buildable: false - externals: - - spec: rocsparse@6.2.1 - prefix: /opt/rocm-6.2.1 - rocthrust: - buildable: false - externals: - - spec: rocthrust@6.2.1 - prefix: /opt/rocm-6.2.1 - rocprofiler-dev: - buildable: false - externals: - - spec: rocprofiler-dev@6.2.1 - prefix: /opt/rocm-6.2.1 - rocm-core: - buildable: false - externals: - - spec: rocm-core@6.2.1 - prefix: /opt/rocm-6.2.1 - rocm-openmp-extras: - buildable: false - externals: - - spec: rocm-openmp-extras@6.2.1 - prefix: /opt/rocm-6.2.1 - - specs: - # ROCM NOARCH - - hpctoolkit +rocm - - tau +mpi +rocm +syscall - - # ROCM 908 - - adios2 +kokkos +rocm amdgpu_target=gfx908 - - amrex +rocm amdgpu_target=gfx908 - - arborx +rocm amdgpu_target=gfx908 - - cabana +rocm amdgpu_target=gfx908 - - caliper +rocm amdgpu_target=gfx908 - - chai +rocm amdgpu_target=gfx908 - - ecp-data-vis-sdk +paraview +vtkm +rocm amdgpu_target=gfx908 - - fftx +rocm amdgpu_target=gfx908 - - gasnet +rocm amdgpu_target=gfx908 - - ginkgo +rocm amdgpu_target=gfx908 - - heffte +rocm amdgpu_target=gfx908 - - hpx +rocm amdgpu_target=gfx908 - - hypre +rocm amdgpu_target=gfx908 - - kokkos +rocm amdgpu_target=gfx908 - - lammps +rocm amdgpu_target=gfx908 - - legion +rocm amdgpu_target=gfx908 - - libceed +rocm amdgpu_target=gfx908 - - magma ~cuda +rocm amdgpu_target=gfx908 - - mfem +rocm amdgpu_target=gfx908 - - raja ~openmp +rocm amdgpu_target=gfx908 - - strumpack ~slate +rocm amdgpu_target=gfx908 - - superlu-dist +rocm amdgpu_target=gfx908 - - tasmanian ~openmp +rocm amdgpu_target=gfx908 - - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack ~ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx908 - - umpire +rocm amdgpu_target=gfx908 - - upcxx +rocm amdgpu_target=gfx908 - # INCLUDED IN ECP DAV ROCM - # - hdf5 - # - hdf5-vol-async - # - hdf5-vol-cache - # - hdf5-vol-log - # - libcatalyst - # - paraview +rocm amdgpu_target=gfx908 # mesa: https://github.com/spack/spack/issues/44745 - # - vtk-m ~openmp +rocm amdgpu_target=gfx908 # vtk-m: https://github.com/spack/spack/issues/40268 - # -- - # - chapel +rocm amdgpu_target=gfx908 # chapel: need chapel >= 2.2 to support ROCm >5.4 - # - cp2k +mpi +rocm amdgpu_target=gfx908 # cp2k: Error: KeyError: 'No spec with name rocm in... "-L{}".format(spec["rocm"].libs.directories[0]), - # - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx908 ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx908 # raja: https://github.com/spack/spack/issues/44593 - # - lbann ~cuda +rocm amdgpu_target=gfx908 # aluminum: https://github.com/spack/spack/issues/38807 - # - papi +rocm amdgpu_target=gfx908 # papi: https://github.com/spack/spack/issues/27898 - # - petsc +rocm amdgpu_target=gfx908 # petsc: https://github.com/spack/spack/issues/44600 - # - slate +rocm amdgpu_target=gfx908 # slate: hip/device_gescale_row_col.hip.cc:58:49: error: use of overloaded operator '*' is ambiguous (with operand types 'HIP_vector_type' and 'const HIP_vector_type') - # - slepc +rocm amdgpu_target=gfx908 ^petsc +rocm amdgpu_target=gfx908 # petsc: https://github.com/spack/spack/issues/44600 - # - sundials +rocm amdgpu_target=gfx908 # sundials: https://github.com/spack/spack/issues/44601 - - # ROCM 90a - - adios2 +kokkos +rocm amdgpu_target=gfx90a - - amrex +rocm amdgpu_target=gfx90a - - arborx +rocm amdgpu_target=gfx90a - - cabana +rocm amdgpu_target=gfx90a - - caliper +rocm amdgpu_target=gfx90a - - chai +rocm amdgpu_target=gfx90a - - ecp-data-vis-sdk +paraview +vtkm +rocm amdgpu_target=gfx90a - - fftx +rocm amdgpu_target=gfx90a - - gasnet +rocm amdgpu_target=gfx90a - - ginkgo +rocm amdgpu_target=gfx90a - - heffte +rocm amdgpu_target=gfx90a - - hpx +rocm amdgpu_target=gfx90a - - hypre +rocm amdgpu_target=gfx90a - - kokkos +rocm amdgpu_target=gfx90a - - lammps +rocm amdgpu_target=gfx90a - - legion +rocm amdgpu_target=gfx90a - - libceed +rocm amdgpu_target=gfx90a - - magma ~cuda +rocm amdgpu_target=gfx90a - - mfem +rocm amdgpu_target=gfx90a - - raja ~openmp +rocm amdgpu_target=gfx90a - - strumpack ~slate +rocm amdgpu_target=gfx90a - - superlu-dist +rocm amdgpu_target=gfx90a - - tasmanian ~openmp +rocm amdgpu_target=gfx90a - - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack ~ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx90a - - umpire +rocm amdgpu_target=gfx90a - - upcxx +rocm amdgpu_target=gfx90a - # INCLUDED IN ECP DAV ROCM - # - hdf5 - # - hdf5-vol-async - # - hdf5-vol-cache - # - hdf5-vol-log - # - libcatalyst - # - paraview +rocm amdgpu_target=gfx90a # mesa: https://github.com/spack/spack/issues/44745 - # - vtk-m ~openmp +rocm amdgpu_target=gfx90a # vtk-m: https://github.com/spack/spack/issues/40268 - # -- - # - chapel +rocm amdgpu_target=gfx9a # chapel: need chapel >= 2.2 to support ROCm >5.4 - # - cp2k +mpi +rocm amdgpu_target=gfx90a # cp2k: Error: KeyError: 'No spec with name rocm in... "-L{}".format(spec["rocm"].libs.directories[0]), - # - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx90a ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx90a # raja: https://github.com/spack/spack/issues/44593 - # - lbann ~cuda +rocm amdgpu_target=gfx90a # aluminum: https://github.com/spack/spack/issues/38807 - # - papi +rocm amdgpu_target=gfx90a # papi: https://github.com/spack/spack/issues/27898 - # - petsc +rocm amdgpu_target=gfx90a # petsc: https://github.com/spack/spack/issues/44600 - # - slate +rocm amdgpu_target=gfx90a # slate: hip/device_gescale_row_col.hip.cc:58:49: error: use of overloaded operator '*' is ambiguous (with operand types 'HIP_vector_type' and 'const HIP_vector_type') - # - slepc +rocm amdgpu_target=gfx90a ^petsc +rocm amdgpu_target=gfx90a # petsc: https://github.com/spack/spack/issues/44600 - # - sundials +rocm amdgpu_target=gfx90a # sundials: https://github.com/spack/spack/issues/44601 - - ci: - pipeline-gen: - - build-job: - image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-gcc-11.4-rocm6.2.1:2024.10.08 - - cdash: - build-group: E4S ROCm External diff --git a/.ci/gitlab/stacks/e4s/spack.yaml b/.ci/gitlab/stacks/e4s/spack.yaml deleted file mode 100644 index c502c3cebcf..00000000000 --- a/.ci/gitlab/stacks/e4s/spack.yaml +++ /dev/null @@ -1,411 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - concretizer: - reuse: false - unify: false - static_analysis: true - - packages: - all: - require: - - "%gcc" - - target=x86_64_v3 - variants: +mpi - c: - require: gcc - cxx: - require: gcc - fortran: - require: gcc - mpi: - require: - - mpich - blas: - require: - - openblas - lapack: - require: - - openblas - binutils: - variants: +ld +gold +headers +libiberty ~nls - cmake: - require: - - "~qtgui" - - 'target=x86_64_v3 %gcc' - gmake: - require: - - "~guile" - - 'target=x86_64_v3 %gcc' - hdf5: - variants: +fortran +hl +shared - libfabric: - variants: fabrics=sockets,tcp,udp,rxm - libunwind: - variants: +pic +xz - openblas: - variants: threads=openmp - trilinos: - variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext - +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu - +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos - +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long - mpich: - require: - - '~wrapperrpath ~hwloc' - - 'target=x86_64_v3 %gcc' - tbb: - require: - - intel-tbb - vtk-m: - require: - - "+examples" - - 'target=x86_64_v3 %gcc' - visit: - require: - - "~gui target=x86_64_v3" - paraview: - # Don't build GUI support or GLX rendering for HPC/container deployments - require: - - "+examples" - - "~qt ^[virtuals=gl] osmesa" # Headless - - "target=x86_64_v3 %gcc" - - specs: - # CPU - - adios - - alquimia - - aml - - amrex - - arborx - - argobots - - axom - - bolt - - boost - - bricks ~cuda - - butterflypack - - cabana - - caliper - - chai - - chapel ~rocm ~cuda - - charliecloud - - conduit - - cp2k +mpi - - datatransferkit - - dealii ~vtk # https://github.com/spack/spack/pull/45554#issuecomment-2457255720 - - drishti - - dxt-explorer - - dyninst - - e4s-cl - - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 +paraview +pnetcdf +sz +unifyfs +veloc +visit +vtkm +zfp # - - exaworks - - fftx - - flecsi - - flit - - flux-core - - fortrilinos - - fpm - - gasnet - - geopm-runtime - - ginkgo - - globalarrays - - glvis - - gmp - - gotcha - - gptune ~mpispawn - - gromacs +cp2k ^cp2k +dlaf build_system=cmake - - h5bench - - hdf5-vol-async - - hdf5-vol-cache - - hdf5-vol-log - - heffte +fftw - - hpctoolkit - - hpx networking=mpi - - hypre - - julia ^llvm ~clang ~gold ~polly targets=amdgpu,bpf,nvptx,webassembly - - kokkos +openmp - - kokkos-kernels +openmp - - laghos - - lammps +amoeba +asphere +bocs +body +bpm +brownian +cg-dna +cg-spica +class2 +colloid +colvars +compress +coreshell +dielectric +diffraction +dipole +dpd-basic +dpd-meso +dpd-react +dpd-smooth +drude +eff +electrode +extra-compute +extra-dump +extra-fix +extra-molecule +extra-pair +fep +granular +interlayer +kspace +lepton +machdyn +manybody +mc +meam +mesont +misc +ml-iap +ml-pod +ml-snap +mofff +molecule +openmp-package +opt +orient +peri +phonon +plugin +poems +qeq +reaction +reaxff +replica +rigid +shock +sph +spin +srd +tally +uef +voronoi +yaff - - lbann - - legion - - libceed - - libnrm - - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp - - libquo - - libunwind - - loki - - mercury - - metall - - mfem - - mgard +serial +openmp +timing +unstructured ~cuda - - mpark-variant - - mpifileutils ~xattr - - nccmp - - nco - - nekbone +mpi - - netcdf-fortran - - netlib-scalapack - - nrm - - nvhpc - - nwchem - - omega-h - - openfoam - - openmpi - - openpmd-api - - papi - - papyrus - - parsec ~cuda - - pdt - - petsc - - phist - - plasma - - plumed - - precice - - pruners-ninja - - pumi - - py-amrex - - py-h5py - - py-jupyterhub - - py-libensemble - - py-petsc4py - - qthreads scheduler=distrib - - quantum-espresso - - raja - - rempi - - scr - - slate ~cuda - - slepc - - stc - - strumpack ~slate - - sundials - - superlu - - superlu-dist - - swig@4.0.2-fortran - - sz3 - - tasmanian - - tau +mpi +python +syscall - - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long - - turbine - - umap - - umpire - - upcxx - - variorum - - wannier90 - - wps - - wrf - - xyce +mpi +shared +pymi +pymi_static_tpls - # INCLUDED IN ECP DAV CPU - - adios2 - - ascent - - darshan-runtime - - darshan-util - - faodel - - hdf5 - - libcatalyst - - parallel-netcdf - - paraview - - py-cinemasci - - sz - - unifyfs - - veloc - - visit # silo: https://github.com/spack/spack/issues/39538 - - vtk-m - - warpx +python - - zfp - # -- - # - nek5000 +mpi +visit # nek5000: KeyError: 'No spec with name visit in nek5000@19.0/4mtjged6gb5yqgzlpjftjxxasqwqdysh' - - # PYTHON PACKAGES - - opencv +python3 - - py-horovod - - py-jax - - py-jupyterlab - - py-matplotlib - - py-mpi4py - - py-notebook - - py-numba - - py-numpy - - py-openai - - py-pandas - - py-plotly - - py-pooch - - py-pytest - - py-scikit-learn - - py-scipy - - py-seaborn - - py-tensorflow - - py-torch - - py-deephyper - - # CUDA NOARCH - - bricks +cuda - - flux-core +cuda - - hpctoolkit +cuda - - legion +cuda - - papi +cuda - - tau +mpi +cuda +syscall - - # CUDA 80 - - amrex +cuda cuda_arch=80 - - arborx +cuda cuda_arch=80 ^kokkos +wrapper - - axom +cuda cuda_arch=80 - - cabana +cuda cuda_arch=80 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=80 - - caliper +cuda cuda_arch=80 - - chai +cuda cuda_arch=80 ^umpire ~shared - - chapel +cuda cuda_arch=80 - - cusz +cuda cuda_arch=80 - - dealii +cuda cuda_arch=80 - - ecp-data-vis-sdk ~rocm +adios2 ~ascent +hdf5 +vtkm +zfp ~paraview +cuda cuda_arch=80 # +paraview: FAILED: VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/filter/flow/CMakeFiles/vtkm_filter_flow.dir/StreamSurface.cxx.o - - exago +mpi +python +raja +hiop ~rocm +cuda cuda_arch=80 ~ipopt ^hiop@1.0.0 ~sparse +mpi +raja ~rocm +cuda cuda_arch=80 - - fftx +cuda cuda_arch=80 - - flecsi +cuda cuda_arch=80 - - ginkgo +cuda cuda_arch=80 - - gromacs +cuda cuda_arch=80 - - heffte +cuda cuda_arch=80 - - hpx +cuda cuda_arch=80 - - hypre +cuda cuda_arch=80 - - kokkos +wrapper +cuda cuda_arch=80 - - kokkos-kernels +cuda cuda_arch=80 ^kokkos +wrapper +cuda cuda_arch=80 - - libceed +cuda cuda_arch=80 - - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +cusz +mgard +cuda cuda_arch=80 ^cusz +cuda cuda_arch=80 - - magma +cuda cuda_arch=80 - - mfem +cuda cuda_arch=80 - - mgard +serial +openmp +timing +unstructured +cuda cuda_arch=80 - - omega-h +cuda cuda_arch=80 - - parsec +cuda cuda_arch=80 - - petsc +cuda cuda_arch=80 - - py-torch +cuda cuda_arch=80 - - raja +cuda cuda_arch=80 - - slate +cuda cuda_arch=80 - - slepc +cuda cuda_arch=80 - - strumpack ~slate +cuda cuda_arch=80 - - sundials +cuda cuda_arch=80 - - superlu-dist +cuda cuda_arch=80 - - tasmanian +cuda cuda_arch=80 - - trilinos +cuda cuda_arch=80 - - umpire ~shared +cuda cuda_arch=80 - # INCLUDED IN ECP DAV CUDA - - adios2 +cuda cuda_arch=80 - # - ascent +cuda cuda_arch=80 # ascent: https://github.com/spack/spack/issues/38045 - # - paraview +cuda cuda_arch=80 # paraview: FAILED: VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/filter/flow/CMakeFiles/vtkm_filter_flow.dir/StreamSurface.cxx.o - - vtk-m +cuda cuda_arch=80 - - zfp +cuda cuda_arch=80 - # -- - # - lammps +cuda cuda_arch=80 # lammps: needs NVIDIA driver - # - lbann +cuda cuda_arch=80 # dihydrogen: hydrogen/device/gpu/CUB.hpp:41:5: error: reference to 'CachingDeviceAllocator' is ambiguous - # - upcxx +cuda cuda_arch=80 # upcxx: needs NVIDIA driver - - # CUDA 90 - - amrex +cuda cuda_arch=90 - - arborx +cuda cuda_arch=90 ^kokkos +wrapper - - axom +cuda cuda_arch=90 - - cabana +cuda cuda_arch=90 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=90 - - caliper +cuda cuda_arch=90 - - chai +cuda cuda_arch=90 ^umpire ~shared - - chapel +cuda cuda_arch=90 - - cusz +cuda cuda_arch=90 - - ecp-data-vis-sdk ~rocm +adios2 ~ascent +hdf5 +vtkm +zfp ~paraview +cuda cuda_arch=90 # +paraview: issue with cuda@12; +ascent: # ascent: https://github.com/spack/spack/issues/38045; +paraview: VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/exec/cuda/internal/ExecutionPolicy.h(121): error: namespace "thrust" has no member "sort" - - fftx +cuda cuda_arch=90 - - flecsi +cuda cuda_arch=90 - - ginkgo +cuda cuda_arch=90 - - gromacs +cuda cuda_arch=90 - - heffte +cuda cuda_arch=90 - - hpx +cuda cuda_arch=90 - - hypre +cuda cuda_arch=90 - - kokkos +wrapper +cuda cuda_arch=90 - - kokkos-kernels +cuda cuda_arch=90 ^kokkos +wrapper +cuda cuda_arch=90 - - libceed +cuda cuda_arch=90 - - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +cusz +mgard +cuda cuda_arch=90 ^cusz +cuda cuda_arch=90 - - magma +cuda cuda_arch=90 - - mfem +cuda cuda_arch=90 - - mgard +serial +openmp +timing +unstructured +cuda cuda_arch=90 - - omega-h +cuda cuda_arch=90 - - parsec +cuda cuda_arch=90 - - petsc +cuda cuda_arch=90 - - py-torch +cuda cuda_arch=90 - - raja +cuda cuda_arch=90 - - slate +cuda cuda_arch=90 - - slepc +cuda cuda_arch=90 - - strumpack ~slate +cuda cuda_arch=90 - - sundials +cuda cuda_arch=90 - - superlu-dist +cuda cuda_arch=90 - - tasmanian +cuda cuda_arch=90 - - trilinos +cuda cuda_arch=90 - - umpire ~shared +cuda cuda_arch=90 - # INCLUDED IN ECP DAV CUDA - - adios2 +cuda cuda_arch=90 - # - ascent +cuda cuda_arch=90 # ascent: https://github.com/spack/spack/issues/38045 - # - paraview +cuda cuda_arch=90 # paraview: Cannot satisfy 'cuda@:11' and 'cuda@12.0: - - vtk-m +cuda cuda_arch=90 - - zfp +cuda cuda_arch=90 - # -- - # - dealii +cuda cuda_arch=90 # dealii: conflicts with '+cuda ^cuda@12:'; dealii: https://github.com/spack/spack/issues/39532 - # - lammps +cuda cuda_arch=90 # lammps: needs NVIDIA driver - # - lbann +cuda cuda_arch=90 # dihydrogen: hydrogen/device/gpu/CUB.hpp:41:5: error: reference to 'CachingDeviceAllocator' is ambiguous - # - upcxx +cuda cuda_arch=90 # upcxx: needs NVIDIA driver - - # ROCM NOARCH - - hpctoolkit +rocm - - tau +mpi +rocm +syscall # tau: has issue with `spack env depfile` build - - # ROCM 90a - - adios2 +kokkos +rocm amdgpu_target=gfx90a - - amrex +rocm amdgpu_target=gfx90a - - arborx +rocm amdgpu_target=gfx90a - - cabana +rocm amdgpu_target=gfx90a - - caliper +rocm amdgpu_target=gfx90a - - chai +rocm amdgpu_target=gfx90a - - ecp-data-vis-sdk ~paraview +vtkm +rocm amdgpu_target=gfx90a # +paraview: CMake Error at VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/CMakeLists.txt:272 (find_package): Could not find a package configuration file provided by "rocthrust" with any of the following names: rocthrustConfig.cmake rocthrust-config.cmake - - gasnet +rocm amdgpu_target=gfx90a -# - ginkgo +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep - - heffte +rocm amdgpu_target=gfx90a - - hpx +rocm amdgpu_target=gfx90a -# - hypre +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep - - kokkos +rocm amdgpu_target=gfx90a - - lammps +rocm amdgpu_target=gfx90a - - legion +rocm amdgpu_target=gfx90a -# - libceed +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep -# - magma ~cuda +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep -# - mfem +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep - - raja ~openmp +rocm amdgpu_target=gfx90a -# - slate +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep -# - strumpack ~slate +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep - - sundials +rocm amdgpu_target=gfx90a -# - superlu-dist +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep -# - tasmanian ~openmp +rocm amdgpu_target=gfx90a # removed due to transitive hipblaslt dep - - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack ~ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx90a - - umpire +rocm amdgpu_target=gfx90a - - upcxx +rocm amdgpu_target=gfx90a - # INCLUDED IN ECP DAV ROCM - # - hdf5 - # - hdf5-vol-async - # - hdf5-vol-cache - # - hdf5-vol-log - # - libcatalyst - # - paraview +rocm amdgpu_target=gfx90a # paraview: CMake Error at VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/CMakeLists.txt:272 (find_package): Could not find a package configuration file provided by "rocthrust" with any of the following names: rocthrustConfig.cmake rocthrust-config.cmake - - vtk-m ~openmp +rocm amdgpu_target=gfx90a # vtk-m: https://github.com/spack/spack/issues/40268 - # -- - # - chapel +rocm amdgpu_target=gfx90a # chapel: lld: error: undefined symbol: llvm.amdgcn.readfirstlane.i32 - # - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx90a ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop ~sparse +mpi +raja +rocm amdgpu_target=gfx90a # hiop: CMake Error at cmake/FindHiopHipLibraries.cmake:23 (find_package); By not providing "Findhipfft.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "hipfft", but CMake did not find one. - # - fftx +rocm amdgpu_target=gfx90a # fftx: https://github.com/spack/spack/issues/47034 - # - lbann ~cuda +rocm amdgpu_target=gfx90a # concretize: Cannot select a single "version" for package "hiptt" - # - papi +rocm amdgpu_target=gfx90a # papi: https://github.com/spack/spack/issues/27898 - # - petsc +rocm amdgpu_target=gfx90a # petsc: hipblas-6.3.0-brvfa2h47yfpawguzbiac6ijtj3b6bcn/include/hipblas/hipblas.h:40:10: fatal error: 'hipblas-common/hipblas-common.h' file not found - # - slepc +rocm amdgpu_target=gfx90a ^petsc +rocm amdgpu_target=gfx90a # slepc: ERROR: Unable to link with PETSc - - # - cp2k +mpi +cuda cuda_arch=80 # cp2k: libxsmm_gemm.c:238: undefined reference to `sgemv_' - # - cp2k +mpi +cuda cuda_arch=90 # cp2k: libxsmm_gemm.c:238: undefined reference to `sgemv_' - # - cp2k +mpi +rocm amdgpu_target=gfx908 # cp2k: exts/build_dbcsr//Makefile:290: calculate_norms.o] Error 127 (ignored) - # - cp2k +mpi +rocm amdgpu_target=gfx90a # cp2k: exts/build_dbcsr//Makefile:290: calculate_norms.o] Error 127 (ignored) - - ci: - pipeline-gen: - - build-job: - image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-gcc-11.4:2024.03.01 - - cdash: - build-group: E4S diff --git a/.ci/gitlab/stacks/hep/spack.yaml b/.ci/gitlab/stacks/hep/spack.yaml deleted file mode 100644 index bcbe67d8c2b..00000000000 --- a/.ci/gitlab/stacks/hep/spack.yaml +++ /dev/null @@ -1,149 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - concretizer: - reuse: false - unify: when_possible - static_analysis: true - - packages: - all: - target: ["x86_64_v3"] - require: - - "%gcc" - - target=x86_64_v3 - providers: - blas: [openblas] - mpi: [mpich] - tbb: [intel-tbb] - variants: +mpi - acts: - require: - - +analysis +dd4hep +edm4hep +examples +fatras +geant4 +hepmc3 +podio +pythia8 +python +svg +tgeo cxxstd=20 - - target=x86_64_v3 - celeritas: - require: - - +geant4 +hepmc3 +root +shared cxxstd=20 - - target=x86_64_v3 - geant4: - require: - - +opengl +qt +threads +x11 - - target=x86_64_v3 - hip: - require: - - '@5.7.1 +rocm' - - target=x86_64_v3 - rivet: - require: - - hepmc=3 - - target=x86_64_v3 - root: - require: - - +arrow ~daos +davix +dcache +emacs +examples +fftw +fits +fortran +gdml +graphviz +gsl +http +math +minuit +mlp +mysql +opengl +postgres +pythia8 +python +r +roofit +root7 +rpath ~shadow +spectrum +sqlite +ssl +tbb +tmva +tmva-cpu +unuran +vc +vdt +veccore +webgui +x +xml +xrootd # cxxstd=20 - # note: root cxxstd=20 not concretizable within sherpa - - target=x86_64_v3 - vecgeom: - require: - - +gdml +geant4 +root +shared cxxstd=20 - - target=x86_64_v3 - - # Mark geant4 data as external to prevent wasting bandwidth on GB-scale files - geant4-data: - buildable: false - externals: - - spec: geant4-data@11.3.0 - prefix: /usr - - spec: geant4-data@11.2.2 - prefix: /usr - - spec: geant4-data@11.2.0 - prefix: /usr - - spec: geant4-data@11.1.0 - prefix: /usr - - spec: geant4-data@11.0.0 - prefix: /usr - - specs: - # CPU - - acts ~cuda - #- agile # fails on c++>11 compiler - - alpgen - - ampt - - apfel +lhapdf +python - - celeritas ~cuda +openmp ~rocm +vecgeom +covfie - - cepgen - - cernlib +shared - - collier - - dd4hep +ddalign +ddcad +ddcond +dddetectors +dddigi +ddeve +ddg4 +ddrec +edm4hep +hepmc3 +lcio +utilityapps +xercesc - - delphes +pythia8 - - dpmjet - - edm4hep - - evtgen +hepmc3 +photos +pythia8 +sherpa +tauola - - fastjet plugins=all - - feynhiggs - - fjcontrib - #- garfieldpp - - gaudi +aida +examples +heppdt +xercesc - - geant4 ~vtk ^[virtuals=qmake] qt - - geant4 ~vtk ^[virtuals=qmake] qt-base - #- genie +atmo - - geomodel +examples +fullsimlight +geomodelg4 +hepmc3 +pythia +tools ~visualization - - hepmc - - hepmc3 +interfaces +protobuf +python +rootio - #- herwig3 +njet +vbfnlo # Note: herwig3 fails to find evtgen - - hztool - - lcio -examples ~jar +rootdict # Note: lcio +examples ^ncurses -termlib, which leads to conflicts - - lhapdf +python - - lhapdfsets sets=default - - madgraph5amc - - njet - - opendatadetector - - openloops - - pandoramonitoring - - pandorapfa - - pandorasdk - - photos +hepmc3 - - podio +rntuple +sio - #- professor - - py-awkward - - py-boost-histogram - - py-hepunits - - py-hist - - py-histbook - - py-histoprint - - py-iminuit - - py-mplhep - - py-particle - - py-uhi - - py-uproot +lz4 +xrootd +zstd - - py-vector - - py-zfit - - pythia8 +evtgen +fastjet +hdf5 +hepmc +hepmc3 +lhapdf ~madgraph5amc +python +rivet ~root # pythia8 and root circularly depend - - rivet - - root ~cuda - - sherpa +analysis ~blackhat +gzip +hepmc3 +hepmc3root +lhapdf +lhole +openloops +pythia ~python ~recola ~rivet +root +ufo cxxstd=20 - - tauola +hepmc3 +lhapdf cxxstd=20 - - thepeg hepmc=3 ~rivet - - vecgeom ~cuda - - whizard +fastjet +gosam hepmc=3 +lcio +lhapdf +openloops +openmp +pythia8 - - xrootd +davix +http +krb5 +python +readline +scitokens-cpp - - yoda +hdf5 +highfive - - # CUDA - #- acts +cuda +traccc cuda_arch=80 - #- celeritas +cuda ~openmp +vecgeom cuda_arch=80 +covfie - - root +cuda +cudnn +tmva-gpu - - vecgeom +cuda cuda_arch=80 - - # ROCm - - celeritas +rocm amdgpu_target=gfx90a ~openmp ~vecgeom # only available with ORANGE - - ci: - pipeline-gen: - - build-job: - image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-gcc-11.4:2024.03.01 - - cdash: - build-group: HEP diff --git a/.ci/gitlab/stacks/ml-darwin-aarch64-mps/spack.yaml b/.ci/gitlab/stacks/ml-darwin-aarch64-mps/spack.yaml deleted file mode 100644 index 1de64f88999..00000000000 --- a/.ci/gitlab/stacks/ml-darwin-aarch64-mps/spack.yaml +++ /dev/null @@ -1,102 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - packages: - all: - target: ["aarch64"] - require: - - target=aarch64 - - +mps - - ~cuda - - ~rocm - mpi: - require: mpich - openblas: - require: - - ~fortran - - target=aarch64 - - specs: - # Horovod - - py-horovod - - # Hugging Face - - py-transformers - - # JAX - # Bazel codesign issues - # - py-jax - # - py-jaxlib - - # Keras - # Bazel codesign issues - # - py-keras backend=tensorflow - # - py-keras backend=jax - - py-keras backend=torch - - py-keras-applications - - py-keras-preprocessing - - py-keras2onnx - - # PyTorch - - py-botorch - - py-efficientnet-pytorch - - py-gpytorch - - py-kornia - - py-lightning - - py-pytorch-gradual-warmup-lr - - py-pytorch-lightning - - py-segmentation-models-pytorch - - py-timm - - py-torch - - py-torch-cluster - - py-torch-geometric - - py-torch-nvidia-apex - - py-torch-scatter - - py-torch-sparse - - py-torch-spline-conv - - py-torchaudio - - py-torchdata - - py-torchfile - - py-torchgeo - - py-torchmetrics - # fp16 mismatch between openblas and py_torch@2.3.0 - # - py-torchtext - - py-torchvision - - py-vector-quantize-pytorch - - # scikit-learn - - py-scikit-learn - - py-scikit-learn-extra - - # TensorBoard - - py-tensorboard - - py-tensorboard-data-server - - py-tensorboard-plugin-wit - - py-tensorboardx - - # TensorFlow - # Bazel codesign issues - # - py-tensorflow - # - py-tensorflow-datasets - # - py-tensorflow-estimator - # - py-tensorflow-hub - # - py-tensorflow-metadata - # - py-tensorflow-probability - - # XGBoost - - py-xgboost - - ci: - pipeline-gen: - - build-job: - variables: - CI_GPG_KEY_ROOT: /etc/protected-runner - - cdash: - build-group: Machine Learning MPS - url: https://cdash.spack.io - project: Spack Testing - site: Cloud Gitlab Infrastructure diff --git a/.ci/gitlab/stacks/ml-linux-aarch64-cpu/spack.yaml b/.ci/gitlab/stacks/ml-linux-aarch64-cpu/spack.yaml deleted file mode 100644 index 61aa1b277a0..00000000000 --- a/.ci/gitlab/stacks/ml-linux-aarch64-cpu/spack.yaml +++ /dev/null @@ -1,90 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - packages: - all: - target: ["aarch64"] - require: - - target=aarch64 - - ~cuda - - ~rocm - mpi: - require: openmpi - - specs: - # Horovod - - py-horovod - - # Hugging Face - - py-transformers - - # JAX - - py-jax - - py-jaxlib - - # Keras - - py-keras backend=tensorflow - - py-keras backend=jax - - py-keras backend=torch - - py-keras-applications - - py-keras-preprocessing - - py-keras2onnx - - # PyTorch - - py-botorch - - py-efficientnet-pytorch - - py-gpytorch - - py-kornia - - py-lightning - - py-pytorch-gradual-warmup-lr - - py-pytorch-lightning - - py-segmentation-models-pytorch - - py-timm - - py-torch - - py-torch-cluster - - py-torch-geometric - - py-torch-nvidia-apex - - py-torch-scatter - - py-torch-sparse - - py-torch-spline-conv - - py-torchaudio - - py-torchdata - - py-torchfile - - py-torchgeo - - py-torchmetrics - - py-torchtext - - py-torchvision - - py-vector-quantize-pytorch - - # scikit-learn - - py-scikit-learn - - py-scikit-learn-extra - - # TensorBoard - - py-tensorboard - - py-tensorboard-data-server - - py-tensorboard-plugin-wit - - py-tensorboardx - - # TensorFlow - - py-tensorflow - - py-tensorflow-datasets - - py-tensorflow-hub - - py-tensorflow-metadata - - py-tensorflow-probability - - # XGBoost - - py-xgboost - - ci: - pipeline-gen: - - build-job: - image: - name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 - entrypoint: [''] - - cdash: - build-group: Machine Learning diff --git a/.ci/gitlab/stacks/ml-linux-aarch64-cuda/spack.yaml b/.ci/gitlab/stacks/ml-linux-aarch64-cuda/spack.yaml deleted file mode 100644 index 37f231c789f..00000000000 --- a/.ci/gitlab/stacks/ml-linux-aarch64-cuda/spack.yaml +++ /dev/null @@ -1,104 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - packages: - all: - target: ["aarch64"] - require: - - target=aarch64 - - ~rocm - - +cuda - - cuda_arch=80 - llvm: - # https://github.com/spack/spack/issues/27999 - require: - - ~cuda - - target=aarch64 - mpi: - require: openmpi - py-torch: - require: - - target=aarch64 - - ~rocm - - +cuda - - cuda_arch=80 - - ~flash_attention - - specs: - # Horovod - - py-horovod - - # Hugging Face - - py-transformers - - # JAX - - py-jax - - py-jaxlib - - # Keras - - py-keras backend=tensorflow - - py-keras backend=jax - - py-keras backend=torch - - py-keras-applications - - py-keras-preprocessing - - py-keras2onnx - - # PyTorch - - py-botorch - - py-efficientnet-pytorch - - py-gpytorch - - py-kornia - - py-lightning - - py-pytorch-gradual-warmup-lr - - py-pytorch-lightning - - py-segmentation-models-pytorch - - py-timm - - py-torch - - py-torch-cluster - - py-torch-geometric - - py-torch-nvidia-apex - - py-torch-scatter - - py-torch-sparse - - py-torch-spline-conv - - py-torchaudio - - py-torchdata - - py-torchfile - - py-torchgeo - - py-torchmetrics - # torchtext requires older pytorch, which requires older cuda, which doesn't support newer GCC - # - py-torchtext - - py-torchvision - - py-vector-quantize-pytorch - - # scikit-learn - - py-scikit-learn - - py-scikit-learn-extra - - # TensorBoard - - py-tensorboard - - py-tensorboard-data-server - - py-tensorboard-plugin-wit - - py-tensorboardx - - # TensorFlow - - py-tensorflow - - py-tensorflow-datasets - - py-tensorflow-hub - - py-tensorflow-metadata - - py-tensorflow-probability - - # XGBoost - # xgboost requires older cuda, which doesn't support newer GCC - # - py-xgboost - - ci: - pipeline-gen: - - build-job: - image: - name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 - entrypoint: [''] - - cdash: - build-group: Machine Learning diff --git a/.ci/gitlab/stacks/ml-linux-x86_64-cpu/spack.yaml b/.ci/gitlab/stacks/ml-linux-x86_64-cpu/spack.yaml deleted file mode 100644 index 4b2869e8e67..00000000000 --- a/.ci/gitlab/stacks/ml-linux-x86_64-cpu/spack.yaml +++ /dev/null @@ -1,89 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - packages: - all: - target: ["x86_64_v3"] - require: - - target=x86_64_v3 - - ~cuda - - ~rocm - mpi: - require: openmpi - - specs: - # Horovod - - py-horovod - - # Hugging Face - - py-transformers - - # JAX - - py-jax - - py-jaxlib - - # Keras - - py-keras backend=tensorflow - - py-keras backend=jax - - py-keras backend=torch - - py-keras-applications - - py-keras-preprocessing - - py-keras2onnx - - # PyTorch - - py-botorch - - py-efficientnet-pytorch - - py-gpytorch - - py-kornia - - py-lightning - - py-pytorch-gradual-warmup-lr - - py-pytorch-lightning - - py-segmentation-models-pytorch - - py-timm - - py-torch - - py-torch-cluster - - py-torch-geometric - - py-torch-nvidia-apex - - py-torch-scatter - - py-torch-sparse - - py-torch-spline-conv - - py-torchaudio - - py-torchdata - - py-torchfile - - py-torchgeo - - py-torchmetrics - - py-torchtext - - py-torchvision - - py-vector-quantize-pytorch - - # scikit-learn - - py-scikit-learn - - py-scikit-learn-extra - - # TensorBoard - - py-tensorboard - - py-tensorboard-data-server - - py-tensorboard-plugin-wit - - py-tensorboardx - - # TensorFlow - - py-tensorflow - - py-tensorflow-datasets - - py-tensorflow-hub - - py-tensorflow-metadata - - py-tensorflow-probability - - # XGBoost - - py-xgboost - - ci: - pipeline-gen: - - build-job: - image: - name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 - entrypoint: [''] - - cdash: - build-group: Machine Learning diff --git a/.ci/gitlab/stacks/ml-linux-x86_64-cuda/spack.yaml b/.ci/gitlab/stacks/ml-linux-x86_64-cuda/spack.yaml deleted file mode 100644 index cecc3397c0a..00000000000 --- a/.ci/gitlab/stacks/ml-linux-x86_64-cuda/spack.yaml +++ /dev/null @@ -1,104 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - packages: - all: - target: ["x86_64_v3"] - require: - - target=x86_64_v3 - - ~rocm - - +cuda - - cuda_arch=80 - llvm: - # https://github.com/spack/spack/issues/27999 - require: - - ~cuda - - target=x86_64_v3 - mpi: - require: openmpi - py-torch: - require: - - target=x86_64_v3 - - ~rocm - - +cuda - - cuda_arch=80 - - ~flash_attention - - specs: - # Horovod - - py-horovod - - # Hugging Face - - py-transformers - - # JAX - - py-jax - - py-jaxlib - - # Keras - - py-keras backend=tensorflow - - py-keras backend=jax - - py-keras backend=torch - - py-keras-applications - - py-keras-preprocessing - - py-keras2onnx - - # PyTorch - - py-botorch - - py-efficientnet-pytorch - - py-gpytorch - - py-kornia - - py-lightning - - py-pytorch-gradual-warmup-lr - - py-pytorch-lightning - - py-segmentation-models-pytorch - - py-timm - - py-torch - - py-torch-cluster - - py-torch-geometric - - py-torch-nvidia-apex - - py-torch-scatter - - py-torch-sparse - - py-torch-spline-conv - - py-torchaudio - - py-torchdata - - py-torchfile - - py-torchgeo - - py-torchmetrics - # torchtext requires older pytorch, which requires older cuda, which doesn't support newer GCC - # - py-torchtext - - py-torchvision - - py-vector-quantize-pytorch - - # scikit-learn - - py-scikit-learn - - py-scikit-learn-extra - - # TensorBoard - - py-tensorboard - - py-tensorboard-data-server - - py-tensorboard-plugin-wit - - py-tensorboardx - - # TensorFlow - - py-tensorflow - - py-tensorflow-datasets - - py-tensorflow-hub - - py-tensorflow-metadata - - py-tensorflow-probability - - # XGBoost - # xgboost requires older cuda, which doesn't support newer GCC - # - py-xgboost - - ci: - pipeline-gen: - - build-job: - image: - name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 - entrypoint: [''] - - cdash: - build-group: Machine Learning diff --git a/.ci/gitlab/stacks/ml-linux-x86_64-rocm/spack.yaml b/.ci/gitlab/stacks/ml-linux-x86_64-rocm/spack.yaml deleted file mode 100644 index 312c81f4b99..00000000000 --- a/.ci/gitlab/stacks/ml-linux-x86_64-rocm/spack.yaml +++ /dev/null @@ -1,103 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - packages: - all: - target: ["x86_64_v3"] - require: - - target=x86_64_v3 - - ~cuda - - +rocm - - amdgpu_target=gfx90a - gl: - require: "osmesa" - mpi: - require: openmpi - py-torch: - require: - - target=x86_64_v3 - - ~cuda - - +rocm - - amdgpu_target=gfx90a - - ~flash_attention - miopen-hip: - require: ~ck - - specs: - # Horovod - # - py-horovod - - # Hugging Face - - py-transformers - - # JAX - - py-jax - - py-jaxlib - - # Keras - - py-keras backend=tensorflow - # - py-keras backend=jax - # - py-keras backend=torch - - py-keras-applications - - py-keras-preprocessing - - py-keras2onnx - - # PyTorch - # Does not yet support Spack-installed ROCm - # - py-botorch - # - py-efficientnet-pytorch - # - py-gpytorch - # - py-kornia - # - py-lightning - # - py-pytorch-gradual-warmup-lr - # - py-pytorch-lightning - # - py-segmentation-models-pytorch - # - py-timm - # - py-torch - # - py-torch-cluster - # - py-torch-geometric - # - py-torch-nvidia-apex - # - py-torch-scatter - # - py-torch-sparse - # - py-torch-spline-conv - # - py-torchaudio - # - py-torchdata - # - py-torchfile - # - py-torchgeo - # - py-torchmetrics - # - py-torchtext - # - py-torchvision - # - py-vector-quantize-pytorch - - # scikit-learn - - py-scikit-learn - - py-scikit-learn-extra - - # TensorBoard - - py-tensorboard - - py-tensorboard-data-server - - py-tensorboard-plugin-wit - - py-tensorboardx - - # TensorFlow - - py-tensorflow - - py-tensorflow-datasets - - py-tensorflow-hub - - py-tensorflow-metadata - - py-tensorflow-probability - - # XGBoost - # Does not yet support Spack-installed ROCm - # - py-xgboost - - ci: - pipeline-gen: - - build-job: - image: - name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 - entrypoint: [''] - - cdash: - build-group: Machine Learning diff --git a/.ci/gitlab/stacks/radiuss-aws-aarch64/spack.yaml b/.ci/gitlab/stacks/radiuss-aws-aarch64/spack.yaml deleted file mode 100644 index b0f8043ad5d..00000000000 --- a/.ci/gitlab/stacks/radiuss-aws-aarch64/spack.yaml +++ /dev/null @@ -1,50 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - packages: - all: - target: ["target=aarch64"] - require: - - "target=aarch64" - - "+mpi" - blas: - require: - - openblas - mpi: - require: - - openmpi - - definitions: - - radiuss: - - ascent - - blt - - caliper - - camp - - chai - - mfem - - mfem +superlu-dist+petsc+sundials - - raja - - umpire - - - compiler: - - '%gcc@7.3.1' - - - target: - - 'target=aarch64' - - specs: - - - matrix: - - - $radiuss - - - $compiler - - - $target - - ci: - pipeline-gen: - - build-job: - image: { "name": "ghcr.io/spack/e4s-amazonlinux-2:v2023-03-09", "entrypoint": [""] } - - cdash: - build-group: RADIUSS AWS Packages diff --git a/.ci/gitlab/stacks/radiuss-aws/spack.yaml b/.ci/gitlab/stacks/radiuss-aws/spack.yaml deleted file mode 100644 index a5a33db4b18..00000000000 --- a/.ci/gitlab/stacks/radiuss-aws/spack.yaml +++ /dev/null @@ -1,56 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - packages: - all: - providers: - blas: - - openblas - mkl: - - intel-oneapi-mkl - mpi: - - openmpi - - mpich - variants: +mpi cuda_arch=70 - require: target=x86_64_v3 - - definitions: - - radiuss: - - ascent - - blt - - caliper - - caliper +cuda - - camp - - camp +cuda - - chai - - chai +cuda +raja - - mfem - - mfem +superlu-dist+petsc+sundials - - mfem +cuda ^hypre+cuda - - raja - - raja +cuda - - umpire - - umpire +cuda - - - compiler: - - '%gcc@7.3.1' - - - target: - - 'target=x86_64_v3' - - specs: - - - matrix: - - - $radiuss - - - $compiler - - - $target - - ci: - pipeline-gen: - - build-job: - image: { "name": "ghcr.io/spack/e4s-amazonlinux-2:v2023-03-09", "entrypoint": [""] } - - cdash: - build-group: RADIUSS AWS Packages diff --git a/.ci/gitlab/stacks/radiuss/spack.yaml b/.ci/gitlab/stacks/radiuss/spack.yaml deleted file mode 100644 index 230e5dff864..00000000000 --- a/.ci/gitlab/stacks/radiuss/spack.yaml +++ /dev/null @@ -1,45 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - packages: - all: - target: [ "x86_64_v3" ] - require: - - target=x86_64_v3 - - '%gcc@7.5.0' - - providers: - mpi: [mvapich2] - - specs: - - ascent # ^conduit@0.6.0 - - axom - - blt - - caliper - - care # ~benchmarks ~examples ~tests - - chai # ~examples - - conduit # ^hdf5+shared - - flux-core - # - flux-sched - - hypre - - lbann - - lvarray ~tests # per Spack issue #23192 # ~examples - - mfem - - py-hatchet - - py-maestrowf - - py-merlin - - py-shroud - - raja # ~examples # ~tests - - raja-perf - - samrai - - scr - - sundials - - umpire # ~openmp - # - visit # ^mesa-glu@9.0.0 - - xbraid - - zfp - - cdash: - build-group: RADIUSS diff --git a/.ci/gitlab/stacks/tutorial/spack.yaml b/.ci/gitlab/stacks/tutorial/spack.yaml deleted file mode 100644 index 6c3646c1c13..00000000000 --- a/.ci/gitlab/stacks/tutorial/spack.yaml +++ /dev/null @@ -1,60 +0,0 @@ -spack: - view: false - - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - packages: - all: - require: target=x86_64_v3 - tbb: - require: intel-tbb - definitions: - - gcc_system_packages: - - matrix: - - - zlib-ng - - zlib-ng@2.0.7 - - zlib-ng@2.0.7 cflags=-O3 - - tcl - - tcl ^zlib-ng@2.0.7 cflags=-O3 - - hdf5 - - hdf5~mpi - - hdf5+hl+mpi ^mpich - - trilinos - - trilinos +hdf5 ^hdf5+hl+mpi ^mpich - - gcc@12 - - mpileaks - - lmod@8.7.18 - - 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 - - vim - - ['%gcc@11'] - - gcc_old_packages: - - zlib-ng%gcc@10 - - clang_packages: - - matrix: - - [zlib-ng, tcl ^zlib-ng@2.0.7] - - ['%clang@14'] - - gcc_spack_built_packages: - - matrix: - - [netlib-scalapack] - - [^mpich, ^openmpi] - - [^openblas, ^netlib-lapack] - - ['%gcc@12'] - - matrix: - - [py-scipy ^openblas, armadillo ^openblas, netlib-lapack, openmpi, mpich, elpa ^mpich] - - ['%gcc@12'] - specs: - - $gcc_system_packages - - $gcc_old_packages - - $clang_packages - - $gcc_spack_built_packages - - ci: - pipeline-gen: - - build-job: - image: - name: ghcr.io/spack/tutorial-ubuntu-22.04:v2023-10-30 - entrypoint: [''] - cdash: - build-group: Spack Tutorial diff --git a/.ci/gitlab/stacks/windows-vis/spack.yaml b/.ci/gitlab/stacks/windows-vis/spack.yaml deleted file mode 100644 index 2716fe7d473..00000000000 --- a/.ci/gitlab/stacks/windows-vis/spack.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Windows Visualization Stack -# maintainers: -# - John Parent (@johnwparent) -# - Ryan Krattiger (@kwryankrattiger) - -spack: - view: false - include: - - $CI_PROJECT_DIR/.ci/gitlab/ - - specs: - - "vtk@9: ~mpi" - - "boost" - - cdash: - build-group: Windows Visualization (Kitware) diff --git a/.ci/style_check.sh b/.ci/style_check.sh index 0980b2a2033..ee4f88684e6 100755 --- a/.ci/style_check.sh +++ b/.ci/style_check.sh @@ -4,7 +4,8 @@ die() { printf "%b%s%b\n" "\033[31;1m==> " "$1" "\033[0m" >&2; exit 1; } python_files() { git diff --name-only --diff-filter=ACMR -z "$ref" | grep -zE '\.pyi?$'; } ref="develop" -flags="--check --diff" +format_flags="--diff" +check_flags="--no-fix" while [ $# -gt 0 ]; do case "$1" in @@ -12,23 +13,27 @@ while [ $# -gt 0 ]; do echo "$0 [--help] [--fix] [ref]" exit 0 ;; - --fix) flags= ;; + --fix) + format_flags="" + check_flags="--fix" + ;; -*) die "unknown option: $1" ;; *) ref="$1" ;; esac shift done + +# Ref should always be the merge-base to avoid picking up extra files +ref=$(git merge-base $ref HEAD) + if ! python_files > /dev/null; then info "skipping style checks: no Python files changed" exit 0 fi -[ -d "spack-core" ] || die "no 'spack-core' dir found: should be a clone of 'spack/spack'" python_files | xargs -0 printf "%s\n" -info "running flake8" -python_files | xargs -0 -n 100 flake8 || error=1 -info "running isort" -python_files | xargs -0 -n 100 isort $flags || error=1 -info "running black" -python_files | xargs -0 -n 100 black --color $flags || error=1 +info "running ruff format" +python_files | xargs -0 -n 100 ruff format $format_flags || error=1 +info "running ruff check" +python_files | xargs -0 -n 100 ruff check $check_flags || error=1 [ "$error" = "1" ] && die "style checks failed" info "style checks passed" diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000000..469b7d5d60b --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://raw.githubusercontent.com/devcontainers/spec/refs/heads/main/schemas/devContainer.base.schema.json", + "image": "ghcr.io/spack/ubuntu-noble:develop", + "mounts": [ + { + "type": "volume", + "source": "spack-installs", + "target": "/opt/spack/opt/spack" + } + ], + "onCreateCommand": { + "setup-spack-bashrc": "echo '. /opt/spack/share/spack/setup-env.sh' >> /root/.bashrc", + "setup-spack-profile": "echo '. /opt/spack/share/spack/setup-env.sh' >> /etc/profile", + "add-workspace-as-repo": "/opt/spack/bin/spack repo add --scope site ${containerWorkspaceFolder}/repos/spack_repo/builtin", + "compile-for-generic-arch": "/opt/spack/bin/spack config --scope site add \"concretizer:targets:granularity:generic\"", + "stage-in-var-tmp": "/opt/spack/bin/spack config --scope site add \"config:build_stage:/var/tmp/spack-stage\"" + } +} diff --git a/.flake8 b/.flake8 deleted file mode 100644 index bd26bb8f675..00000000000 --- a/.flake8 +++ /dev/null @@ -1,24 +0,0 @@ -# -*- conf -*- -# This is the only flake8 rule Spack violates somewhat flagrantly -# - E731: do not assign a lambda expression, use a def -# -# This is the only flake8 exception needed when using Black. -# - E203: white space around slice operators can be required, ignore : warn -# -# We still allow these in packages -# - F403: from/import * used; unable to detect undefined names -# - F405: undefined name or from * -# - F821: undefined name (needed with from/import *) -# -[flake8] -extend-ignore = E731,E203 -max-line-length = 99 -per-file-ignores = - */package.py:F403,F405,F821 -format = spack - -[flake8:local-plugins] -report = - spack = flake8_formatter:SpackFormatter -paths = - ./spack-core/share/spack/qa/ diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000000..d9bd16b0923 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.py text eol=lf diff --git a/.github/actions/checkout-spack/action.yml b/.github/actions/checkout-spack/action.yml index c934daa3f50..c6fb5b39948 100644 --- a/.github/actions/checkout-spack/action.yml +++ b/.github/actions/checkout-spack/action.yml @@ -10,9 +10,9 @@ inputs: required: false default: '1' builtin: - description: Path to local clone of the builtin repository + description: 'Relative path under $GITHUB_WORKSPACE where the builtin repository lives' required: false - default: ${{ github.workspace }} + default: "" runs: using: "composite" steps: @@ -22,16 +22,22 @@ runs: run: | source .ci/env echo "version=${SPACK_CHECKOUT_VERSION}" >> $GITHUB_OUTPUT + echo "gh-repo=${SPACK_CHECKOUT_REPO}" >> $GITHUB_OUTPUT - name: Checkout Spack uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: - repository: spack/spack + repository: ${{ steps.spack-version.outputs.gh-repo}} ref: ${{ steps.spack-version.outputs.version }} path: ${{ inputs.path }} fetch-depth: ${{ inputs.fetch-depth }} - name: Override builtin repository path shell: bash - run: ${{ inputs.path }}/bin/spack repo set --destination "${{ inputs.builtin }}" --scope site builtin - - name: Spack package repositories - shell: bash - run: ${{ inputs.path }}/bin/spack config blame repos + run: | + REPOSITORY_PATH="$GITHUB_WORKSPACE/${{ inputs.builtin }}" + ${{ inputs.path }}/bin/spack repo set --destination "$REPOSITORY_PATH" --scope site builtin + ${{ inputs.path }}/bin/spack config blame repos + ${{ inputs.path }}/bin/spack repo list + if [ ! -f "$REPOSITORY_PATH/spack-repo-index.yaml" ]; then + echo "Error: "'"'"$REPOSITORY_PATH/spack-repo-index.yaml"'"'" file not found." + exit 1 + fi diff --git a/.github/labels.yml b/.github/labels.yml index aeef089cda4..afee4770679 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -1,3 +1,21 @@ +#======================================================================== +# Spack Packages Labels +#======================================================================== +#------------------------------------------------------------------------ +# CI/CD Modifications +#------------------------------------------------------------------------ +ci: + filename: '^\.(ci|github).*\.ya?ml$' + +#------------------------------------------------------------------------ +# Test Modifications +#------------------------------------------------------------------------ +tests: + filename: '^tests/.*$' + +#------------------------------------------------------------------------ +# Package Types +#------------------------------------------------------------------------ intel: package: 'intel' @@ -11,6 +29,9 @@ R: - '^r$' - '^r_' +#------------------------------------------------------------------------ +# Package Statuses +#------------------------------------------------------------------------ new-package: filename: '^repos/spack_repo/builtin/packages/[^/]+/package.py$' status: 'added' @@ -21,6 +42,14 @@ update-package: - 'modified' - 'renamed' +remove-package: + filename: '^repos/spack_repo/builtin/packages/[^/]+/package.py$' + status: + - 'removed' + +#------------------------------------------------------------------------ +# Package Properties +#------------------------------------------------------------------------ maintainers: patch: '[+-] +maintainers +=' diff --git a/.github/workflows/audit.yaml b/.github/workflows/audit.yaml index 901c2dae54d..455358cf7c8 100644 --- a/.github/workflows/audit.yaml +++ b/.github/workflows/audit.yaml @@ -25,26 +25,25 @@ jobs: run: shell: ${{ matrix.system.shell }} steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: ${{inputs.python_version}} - name: Install Python packages - run: | - pip install --upgrade pip setuptools pytest coverage[toml] + run: python -m pip install --upgrade pytest - name: Setup for Windows run if: runner.os == 'Windows' run: | python -m pip install --upgrade pywin32 - uses: ./.github/actions/checkout-spack - - name: Package audits (without coverage) + - name: Package audits if: ${{ runner.os != 'Windows' }} run: | . ./spack-core/share/spack/setup-env.sh spack -d audit packages spack -d audit configs spack -d audit externals - - name: Package audits (without coverage) + - name: Package audits if: ${{ runner.os == 'Windows' }} run: | ./spack-core/share/spack/setup-env.ps1 diff --git a/.github/workflows/bin/canonicalize.py b/.github/workflows/bin/canonicalize.py new file mode 100755 index 00000000000..8ca6106a10a --- /dev/null +++ b/.github/workflows/bin/canonicalize.py @@ -0,0 +1,148 @@ +#!/usr/bin/env python3 +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +import argparse +import ast +import os +import subprocess +import sys +from itertools import product +from typing import List + + +def run_git_command(*args: str, dir: str) -> None: + """Run a git command in the output directory.""" + subprocess.run( + [ + "git", + "-c", + "user.email=example@example.com", + "-c", + "user.name=Example", + "-c", + "init.defaultBranch=main", + "-c", + "color.ui=always", + "-C", + dir, + *args, + ], + check=True, + stdout=sys.stdout, + stderr=sys.stderr, + ) + + +def run(root: str, output_dir: str) -> None: + """Recurse over a directory and canonicalize all Python files.""" + from spack.util.package_hash import RemoveDocstrings, unparse + + count = 0 + stack = [root] + + while stack: + current = stack.pop() + for entry in os.scandir(current): + if entry.is_dir(follow_symlinks=False): + stack.append(entry.path) + elif entry.is_file(follow_symlinks=False) and entry.name.endswith(".py"): + try: + with open(entry.path, "r") as f: + src = f.read() + except OSError: + continue + + canonical_dir = os.path.join(output_dir, os.path.relpath(current, root)) + os.makedirs(canonical_dir, exist_ok=True) + with open(os.path.join(canonical_dir, entry.name), "w") as f: + f.write( + unparse(RemoveDocstrings().visit(ast.parse(src)), py_ver_consistent=True) + ) + count += 1 + + assert count > 0, "No Python files found in the specified directory." + + +def compare( + input_dir: str, output_dir: str, python_versions: List[str], spack_versions: List[str] +) -> None: + """Compare canonicalized files across different Python versions and error if they differ.""" + # Create a git repo in output_dir to track changes + os.makedirs(output_dir, exist_ok=True) + run_git_command("init", dir=output_dir) + + pairs = list(product(spack_versions, python_versions)) + + if len(pairs) < 2: + raise ValueError("At least two Python or two Spack versions must be given for comparison.") + + changes_with_previous: List[int] = [] + + for i, (spack_dir, python_exe) in enumerate(pairs): + print(f"\033[1;97mCanonicalizing with {python_exe} and {spack_dir}...\033[0m", flush=True) + + # Point PYTHONPATH to the given Spack library for the subprocess + if not os.path.isdir(spack_dir): + raise ValueError(f"Invalid Spack dir: {spack_dir}") + env = os.environ.copy() + spack_pythonpath = os.path.join(spack_dir, "lib", "spack") + if "PYTHONPATH" in env and env["PYTHONPATH"]: + env["PYTHONPATH"] = f"{spack_pythonpath}{os.pathsep}{env['PYTHONPATH']}" + else: + env["PYTHONPATH"] = spack_pythonpath + + subprocess.run( + [python_exe, __file__, "--run", "--input-dir", input_dir, "--output-dir", output_dir], + check=True, + stdout=sys.stdout, + stderr=sys.stderr, + env=env, + ) + if i > 0: + try: + run_git_command("diff", "--exit-code", "HEAD", dir=output_dir) + except subprocess.CalledProcessError: + changes_with_previous.append(i) + + # The first run creates a commit for reference + run_git_command("add", ".", dir=output_dir) + run_git_command( + "commit", + "--quiet", + "--allow-empty", # makes this idempotent when running locally + "-m", + f"Canonicalized with {python_exe} and {spack_dir}", + dir=output_dir, + ) + + for i in changes_with_previous: + previous_spack, previous_python = pairs[i - 1] + current_spack, current_python = pairs[i] + print( + f"\033[1;31mChanges detected between {previous_python} ({previous_spack}) and " + f"{current_python} ({current_spack})\033[0m" + ) + + if changes_with_previous: + exit(1) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Canonicalize Spack package files.") + parser.add_argument("--run", action="store_true", help="Generate canonicalized sources.") + parser.add_argument("--spack", nargs="+", help="Specify one or more Spack versions.") + parser.add_argument("--python", nargs="+", help="Specify one or more Python versions.") + parser.add_argument("--input-dir", type=str, required=True, help="A repo's packages dir.") + parser.add_argument( + "--output-dir", + type=str, + required=True, + help="The output directory for canonicalized package files.", + ) + args = parser.parse_args() + + if args.run: + run(args.input_dir, args.output_dir) + else: + compare(args.input_dir, args.output_dir, args.python, args.spack) diff --git a/.github/workflows/bin/spack-labeler.py b/.github/workflows/bin/spack-labeler.py index 7113d18575b..209fb0d1293 100755 --- a/.github/workflows/bin/spack-labeler.py +++ b/.github/workflows/bin/spack-labeler.py @@ -10,14 +10,14 @@ def import_labels_config(path: str): - with open(path) as fd: + with open(path, encoding="utf-8") as fd: try: label_patterns = yaml.safe_load(fd) except yaml.YAMLError as exc: raise Exception(f"Unable to load {path}\n{exc}") # compile all the regexes above, and ensure that all pattern dict values are lists - for label, pattern_dict in label_patterns.items(): + for pattern_dict in label_patterns.values(): for attr in pattern_dict.keys(): patterns = pattern_dict[attr] if not isinstance(patterns, list): @@ -28,21 +28,45 @@ def import_labels_config(path: str): def main(): - labels_config_path = os.environ.get("LABELS_CONFIG") - repository = os.environ.get("GH_REPO") - pr_number = os.environ.get("GH_PR_NUMBER") - token = os.environ.get("GH_TOKEN") - - headers = {"Accept": "application/vnd.github+json"} + # Validate required environment variables + required_vars = ["LABELS_CONFIG", "GH_REPO", "GH_PR_NUMBER"] + missing_vars = [var for var in required_vars if var not in os.environ] + if missing_vars: + raise Exception(f"Missing required environment variables: {', '.join(missing_vars)}") + + labels_config_path = os.environ["LABELS_CONFIG"] + repository = os.environ["GH_REPO"] + pr_number = os.environ["GH_PR_NUMBER"] + token = os.environ.get("GH_TOKEN", "") + + headers = {"Accept": "application/vnd.github+json", "User-Agent": "spack-labeler"} if token: headers["Authorization"] = f"Bearer {token}" label_patterns = import_labels_config(labels_config_path) + # use a requests session to attempt to retry failed requests if the GitHub API fails + session = requests.Session() + retries = requests.adapters.Retry( + total=3, backoff_factor=1, status_forcelist=[500, 502, 503, 504] + ) + session.mount("https://", requests.adapters.HTTPAdapter(max_retries=retries)) + url = f"https://api.github.com/repos/{repository}/pulls/{pr_number}" - pull_request = requests.get(url, headers=headers).json() + pull_request_resp = session.get(url, headers=headers, timeout=30) + if pull_request_resp.status_code != 200: + raise Exception( + f"Failed to query GitHub API for PR info [{pull_request_resp.status_code}]: " + f"{pull_request_resp.text}" + ) - pull_request_files = requests.get(url + "/files", headers=headers) + pull_request = pull_request_resp.json() + pull_request_files = session.get(url + "/files", headers=headers, timeout=30) + if pull_request_files.status_code != 200: + raise Exception( + f"Failed to query GitHub API for PR files [{pull_request_files.status_code}]: " + f"{pull_request_files.text}" + ) labels = set() @@ -57,7 +81,7 @@ def main(): # the corresponding labels. for label, pattern_dict in label_patterns.items(): attr_matches = [] - # Pattern matches for for each attribute are or'd together + # Pattern matches for each attribute are or'd together for attr, patterns in pattern_dict.items(): # 'patch' is an example of an attribute that is not required to # appear in response when listing pull request files. See here: @@ -74,6 +98,13 @@ def main(): labels.add(label) existing_labels = {label["name"] for label in pull_request["labels"]} + + # Maintain non-managed labels (i.e. those that are not in label_patterns) + labels.update(existing_labels.difference(label_patterns)) + + if not token: + print("Warning: No GH_TOKEN defined, performing a local dry run only") + if existing_labels == labels: print(f"[PR #{pr_number}]: labels already up-to-date") return @@ -87,10 +118,11 @@ def main(): print(f"[PR #{pr_number}]: Removing label(s): [{'] ['.join(removed_labels)}]") if token: - resp = requests.put( + resp = session.put( f"https://api.github.com/repos/{repository}/issues/{pr_number}/labels", json={"labels": list(labels)}, headers=headers, + timeout=30, ) resp.raise_for_status() diff --git a/.github/workflows/bin/spack-reviewers.py b/.github/workflows/bin/spack-reviewers.py new file mode 100755 index 00000000000..ae86e1c4b1f --- /dev/null +++ b/.github/workflows/bin/spack-reviewers.py @@ -0,0 +1,128 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import os +import re + +import requests + +import spack.repo + +IS_PACKAGE_CHANGE = re.compile(r"repos/spack_repo/builtin/packages/([^/]+)/.*$") + + +def msg(message: str, entries=()): + print(message, flush=True) + for entry in entries: + print(f" {entry}", flush=True) + + +def main(): + # Validate required environment variables + required_vars = ["GH_REPO", "GH_PR_NUMBER"] + missing_vars = [var for var in required_vars if var not in os.environ] + if missing_vars: + raise Exception(f"Missing required environment variables: {', '.join(missing_vars)}") + + repository = os.environ["GH_REPO"] + pr_number = os.environ["GH_PR_NUMBER"] + token = os.environ.get("GH_TOKEN", "") + + headers = {"Accept": "application/vnd.github+json", "User-Agent": "spack-reviewers"} + if token: + headers["Authorization"] = f"Bearer {token}" + + # use a requests session to attempt to retry failed requests if the GitHub API fails + session = requests.Session() + retries = requests.adapters.Retry( + total=3, backoff_factor=1, status_forcelist=[500, 502, 503, 504] + ) + session.mount("https://", requests.adapters.HTTPAdapter(max_retries=retries)) + + base_url = f"https://api.github.com/repos/{repository}" + pr_url = f"{base_url}/pulls/{pr_number}" + pull_request_resp = session.get(pr_url, headers=headers, timeout=30) + if pull_request_resp.status_code != 200: + raise Exception( + f"Failed to query GitHub API for PR info [{pull_request_resp.status_code}]: " + f"{pull_request_resp.text}" + ) + pull_request = pull_request_resp.json() + + if pull_request["draft"]: + msg("skipping draft pull request") + return + + existing_reviewers = {reviewer["login"] for reviewer in pull_request["requested_reviewers"]} + if existing_reviewers: + msg("existing reviewers:", existing_reviewers) + else: + msg("no existing reviewers") + + pull_request_files = session.get(f"{pr_url}/files", headers=headers, timeout=30) + if pull_request_files.status_code != 200: + raise Exception( + f"Failed to query GitHub API for PR files [{pull_request_files.status_code}]: " + f"{pull_request_files.text}" + ) + changed_packages = { + match.group(1) + for file in pull_request_files.json() + if (match := IS_PACKAGE_CHANGE.match(file["filename"])) + } + + if changed_packages: + msg("changed packages:", changed_packages) + else: + msg("no changed packages") + return + + maintainers: set[str] = set() + for package in changed_packages: + try: + maintainers.update(spack.repo.PATH.get_pkg_class(package).maintainers) + except spack.repo.UnknownPackageError as e: + msg(f"warning: {e}") + pass + + # filter maintainers to those who have triage permissions in the repo + # users without triage permissions are unable to review PRs + collab_url = f"{base_url}/collaborators" + pingable_maintainers = { + maintainer + for maintainer in maintainers + if session.get(f"{collab_url}/{maintainer}", headers=headers, timeout=30).status_code + == 204 + } + + if maintainers != pingable_maintainers: + msg( + "the following package maintainers cannot be added as reviewers " + "(no collaborator status):", + sorted(maintainers - pingable_maintainers), + ) + + author = pull_request["user"]["login"] + reviewers = (pingable_maintainers | existing_reviewers) - {author} + + if existing_reviewers == reviewers: + msg("reviewers already up-to-date") + return + + added_reviewers = reviewers - existing_reviewers + if added_reviewers: + msg("adding reviewers:", added_reviewers) + + if token: + resp = session.post( + f"{pr_url}/requested_reviewers", + json={"reviewers": list(reviewers)}, + headers=headers, + timeout=30, + ) + resp.raise_for_status() + + +if __name__ == "__main__": + main() diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml new file mode 100644 index 00000000000..7ea427cb102 --- /dev/null +++ b/.github/workflows/bootstrap.yml @@ -0,0 +1,199 @@ +name: Bootstrap + +on: + # This Workflow can be triggered manually + workflow_dispatch: + pull_request: + branches: + - develop + - releases/** + paths: + # CI + - '.ci/**' + - '.github/**' + # Build Systems + - 'repos/spack_repo/builtin/build_systems/**' + # Clingo + - 'repos/spack_repo/builtin/packages/clingo/**' + # GnuPG + - 'repos/spack_repo/builtin/packages/gnupg/**' + - 'repos/spack_repo/builtin/packages/libassuan/**' + - 'repos/spack_repo/builtin/packages/libgcrypt/**' + - 'repos/spack_repo/builtin/packages/libgpg-error/**' + - 'repos/spack_repo/builtin/packages/libksba/**' + - 'repos/spack_repo/builtin/packages/npth/**' + - 'repos/spack_repo/builtin/packages/pinentry/**' + # Dev dependencies + - 'repos/spack_repo/builtin/packages/python/**' + - 'repos/spack_repo/builtin/packages/python-venv/**' + - 'repos/spack_repo/builtin/packages/py-mypy/**' + - 'repos/spack_repo/builtin/packages/py-pytest/**' + - 'repos/spack_repo/builtin/packages/py-ruff/**' + - 'repos/spack_repo/builtin/packages/py-setuptools/**' + - 'repos/spack_repo/builtin/packages/py-wheel/**' + + schedule: + # nightly at 5:16 AM + - cron: '16 5 * * *' + +concurrency: + group: bootstrap-${{github.ref}}-${{github.event.pull_request.number || github.run_number}} + cancel-in-progress: true + +jobs: + distros-clingo-sources: + if: github.repository == 'spack/spack-packages' + runs-on: ubuntu-latest + container: ${{ matrix.image }} + strategy: + matrix: + image: ["fedora:latest", "opensuse/leap:latest"] + steps: + - name: Setup Fedora + if: ${{ matrix.image == 'fedora:latest' }} + run: | + dnf install -y \ + bzip2 curl file gcc-c++ gcc gcc-gfortran git gzip \ + make patch unzip which xz python3 python3-devel tree \ + cmake bison bison-devel libstdc++-static gawk + - name: Setup OpenSUSE + if: ${{ matrix.image == 'opensuse/leap:latest' }} + run: | + # Harden CI by applying the workaround described here: https://www.suse.com/support/kb/doc/?id=000019505 + zypper update -y || zypper update -y + zypper install -y \ + bzip2 curl file gcc-c++ gcc gcc-fortran tar git gpg2 gzip \ + make patch unzip which xz python3 python3-devel tree \ + cmake bison + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + fetch-depth: 0 + - uses: ./.github/actions/checkout-spack + - name: Bootstrap clingo + run: | + source spack-core/share/spack/setup-env.sh + spack repo list + spack bootstrap disable github-actions-v2 + spack bootstrap disable github-actions-v0.6 + spack external find cmake bison + spack repo list + spack -d solve zlib + tree ~/.spack/bootstrap/store/ + + clingo-sources: + if: github.repository == 'spack/spack-packages' + runs-on: ${{ matrix.runner }} + strategy: + matrix: + runner: ["macos-15", "macos-15-intel", "ubuntu-latest"] + steps: + - name: Setup macOS + if: ${{ matrix.runner != 'ubuntu-latest' }} + run: | + brew install bison tree + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + fetch-depth: 0 + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 + with: + python-version: "3.12" + - uses: ./.github/actions/checkout-spack + - name: Bootstrap clingo + run: | + source spack-core/share/spack/setup-env.sh + spack repo list + spack bootstrap disable github-actions-v2 + spack bootstrap disable github-actions-v0.6 + export PATH="$(brew --prefix bison)/bin:$(brew --prefix cmake)/bin:$PATH" + spack -d solve zlib + tree $HOME/.spack/bootstrap/store/ + + gnupg-sources: + if: github.repository == 'spack/spack-packages' + runs-on: ${{ matrix.runner }} + strategy: + matrix: + runner: [ "macos-15", "macos-15-intel", "ubuntu-latest" ] + steps: + - name: Setup macOS + if: ${{ matrix.runner != 'ubuntu-latest' }} + run: brew install tree gawk + - name: Remove system executables + run: | + while [ -n "$(command -v gpg gpg2 patchelf)" ]; do + sudo rm $(command -v gpg gpg2 patchelf) + done + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + fetch-depth: 0 + - uses: ./.github/actions/checkout-spack + - name: Bootstrap GnuPG + run: | + source spack-core/share/spack/setup-env.sh + spack repo list + spack solve zlib + spack bootstrap disable github-actions-v2 + spack bootstrap disable github-actions-v0.6 + spack -d gpg list + tree ~/.spack/bootstrap/store/ + + windows: + if: github.repository == 'spack/spack-packages' + runs-on: "windows-latest" + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + fetch-depth: 0 + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 + with: + python-version: "3.12" + # TODO: Check why this is needed here and not in spack/spack + - run: pip install pywin32 + - uses: ./.github/actions/checkout-spack + - name: Setup Windows + run: | + Remove-Item -Path (Get-Command gpg).Path + Remove-Item -Path (Get-Command file).Path + - name: Bootstrap clingo + run: | + ./spack-core/share/spack/setup-env.ps1 + spack bootstrap disable github-actions-v2 + spack bootstrap disable github-actions-v0.6 + spack external find --not-buildable cmake bison + spack -d solve zlib + ./spack-core/share/spack/qa/validate_last_exit.ps1 + tree $env:userprofile/.spack/bootstrap/store/ + - name: Bootstrap GnuPG + run: | + ./spack-core/share/spack/setup-env.ps1 + spack -d gpg list + ./spack-core/share/spack/qa/validate_last_exit.ps1 + tree $env:userprofile/.spack/bootstrap/store/ + + bootstrap-dev-rhel8: + runs-on: ubuntu-latest + container: registry.access.redhat.com/ubi8/ubi + steps: + - name: Install dependencies + run: | + dnf install -y \ + 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 + with: + fetch-depth: 0 + - uses: ./.github/actions/checkout-spack + with: + fetch-depth: 0 + - name: Bootstrap Spack development environment + run: | + source spack-core/share/spack/setup-env.sh + spack debug report + spack -d bootstrap now --dev + source .ci/env + spack -d style -b ${SPACK_CHECKOUT_VERSION} -t ruff-format diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 310a4aca767..e2f5d661b8b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -24,12 +24,12 @@ jobs: core: ${{ steps.filter.outputs.core }} packages: ${{ steps.filter.outputs.packages }} steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 if: ${{ github.event_name == 'push' || github.event_name == 'merge_group' }} with: fetch-depth: 0 # For pull requests it's not necessary to checkout the code - - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 + - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 id: filter with: # For merge group events, compare against the target branch (main) @@ -80,12 +80,10 @@ jobs: steps: - name: Success run: | - if [ "${{ needs.prechecks.result }}" == "failure" ] || [ "${{ needs.prechecks.result }}" == "canceled" ]; then - echo "GHA checks failed." - exit 1 - else - exit 0 - fi + [ "${{ needs.prechecks.result }}" = "success" ] && exit 0 + [ "${{ needs.prechecks.result }}" = "skipped" ] && exit 0 + echo "GHA checks failed." + exit 1 all: needs: [ unit-tests ] @@ -95,9 +93,7 @@ jobs: steps: - name: Status summary run: | - if [ "${{ needs.unit-tests.result }}" == "failure" ] || [ "${{ needs.unit-tests.result }}" == "canceled" ]; then - echo "Unit tests failed." - exit 1 - else - exit 0 - fi + [ "${{ needs.unit-tests.result }}" = "success" ] && exit 0 + [ "${{ needs.unit-tests.result }}" = "skipped" ] && exit 0 + echo "Unit tests failed." + exit 1 diff --git a/.github/workflows/prechecks.yml b/.github/workflows/prechecks.yml index 7e838905e5a..ba94e02a79b 100644 --- a/.github/workflows/prechecks.yml +++ b/.github/workflows/prechecks.yml @@ -17,8 +17,8 @@ jobs: validate: runs-on: ubuntu-latest steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: '3.13' - name: Install Python Packages @@ -32,19 +32,15 @@ jobs: style: runs-on: ubuntu-latest steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 2 - - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: '3.13' - name: Install Python packages run: | pip install -r .github/workflows/requirements/style/requirements.txt - - uses: ./.github/actions/checkout-spack - with: - # This path must match the path in pyprojects.toml - path: spack-core - name: Run style tests run: .ci/style_check.sh HEAD^ # todo: license check @@ -62,7 +58,7 @@ jobs: ${{ inputs.with_packages == 'true' }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: # Depth 2 is required for this check fetch-depth: 2 @@ -73,3 +69,22 @@ jobs: run: | . spack-core/share/spack/setup-env.sh spack ci verify-versions HEAD~1 HEAD + + canonicalization: + name: package.py canonicalization + runs-on: ubuntu-latest + container: + image: ghcr.io/spack/all-pythons:2025-10-10 + + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + fetch-depth: 0 + - uses: ./.github/actions/checkout-spack + + - name: Test package.py canonicalization + run: .github/workflows/bin/canonicalize.py + --spack $PWD/spack-core + --python python3.6 python3.7 python3.8 python3.9 python3.10 python3.11 python3.12 python3.13 python3.14 + --input-dir repos/spack_repo/builtin/packages/ + --output-dir canonicalized diff --git a/.github/workflows/requirements/style/requirements.txt b/.github/workflows/requirements/style/requirements.txt index 2a3b9048d1a..aee57ecbffd 100644 --- a/.github/workflows/requirements/style/requirements.txt +++ b/.github/workflows/requirements/style/requirements.txt @@ -1,8 +1,6 @@ -black==25.1.0 clingo==5.8.0 -flake8==7.2.0 -isort==6.0.1 mypy==1.15.0 -types-six==1.17.0.20250515 -vermin==1.6.0 pylint==3.3.7 +ruff==0.15.11 +types-six==1.17.0.20250515 +vermin==1.8.0 diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml index cbfdfa12a05..e8b930e3bff 100644 --- a/.github/workflows/stale.yaml +++ b/.github/workflows/stale.yaml @@ -9,25 +9,39 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 + - uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10.3.0 with: # Issues configuration - stale-issue-message: | - This issue has been automatically marked as stale because it has not had - recent activity in the last 6 months. It will be closed if no further activity occurs. - Thank you for your contributions. - close-issue-message: | - This issue was closed because it has been stalled for 30 days with no activity. + stale-issue-message: > + This issue has been automatically marked as stale because it has not had any activity in the last 6 months. + It will be closed in 30 days if there is no further activity. + + If the issue is waiting for a reply from maintainers, feel free to ping them as a reminder. + If it is waiting and has no comments yet, feel free to ping `@spack/spack-releasers` or simply leave a comment saying this should not be marked stale. + This will also reset the issue's stale state. + + Thank you for your contributions! + close-issue-message: > + This issue was closed because it had no activity for 30 days after being marked stale. + If you feel this is in error, please feel free to reopen this issue. stale-issue-label: 'stale' exempt-issue-labels: 'pinned,bug' # Pull requests configuration - stale-pr-message: | - This pull request has been automatically marked as stale because it has not had - recent activity in the last 6 months. It will be closed if no further activity occurs. - Thank you for your contributions. - close-pr-message: | - This pull request was closed because it has been stalled for 30 days with no activity. + stale-pr-message: > + This pull request has been automatically marked as stale because it has not had any activity in the last 6 months. + It will be closed in 30 days if there is no further activity. + + If the pull request is waiting for a reply from reviewers, feel free to ping them as a reminder. + If it is waiting and has no assigned reviewer, feel free to ping `@spack/spack-releasers` or simply leave a comment saying this should not be marked stale. + This will reset the pull request's stale state. + + To get more eyes on your pull request, you can post a link in the #pull-requests channel of the Spack Slack. + + Thank you for your contributions! + close-pr-message: > + This pull request was closed because it had no activity for 30 days after being marked stale. + If you feel this is in error, please feel free to reopen this pull request. stale-pr-label: 'stale' exempt-pr-labels: 'pinned' diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml index d57b42a4ddb..36724c28000 100644 --- a/.github/workflows/triage.yml +++ b/.github/workflows/triage.yml @@ -19,18 +19,36 @@ jobs: pull-requests: write issues: write steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: develop # DO NOT CHANGE - - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 + - uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 + id: generate-spackbot-token + with: + client-id: ${{ secrets.SPACKBOT_TRIAGE_CLIENT_ID }} + private-key: ${{ secrets.SPACKBOT_TRIAGE_PRIVATE_KEY }} + + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 + - uses: ./.github/actions/checkout-spack - name: Install Python dependencies run: pip install -r .github/workflows/requirements/triage/requirements.txt - - run: python3 .github/workflows/bin/spack-labeler.py + - name: Label PR + run: | + python3 .github/workflows/bin/spack-labeler.py env: GH_PR_NUMBER: ${{ github.event.number }} GH_REPO: ${{ github.repository }} - GH_TOKEN: ${{ github.token }} + GH_TOKEN: ${{ steps.generate-spackbot-token.outputs.token }} LABELS_CONFIG: .github/labels.yml + + - name: Tag Maintainers on PR + run: | + . spack-core/share/spack/setup-env.sh + spack-python .github/workflows/bin/spack-reviewers.py + env: + GH_PR_NUMBER: ${{ github.event.number }} + GH_REPO: ${{ github.repository }} + GH_TOKEN: ${{ steps.generate-spackbot-token.outputs.token }} diff --git a/.github/workflows/unit_tests.yaml b/.github/workflows/unit_tests.yaml index 256ee98e6b5..88dc6d10cfa 100644 --- a/.github/workflows/unit_tests.yaml +++ b/.github/workflows/unit_tests.yaml @@ -37,8 +37,8 @@ jobs: on_develop: false steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: ${{ matrix.python-version }} - name: Install System packages @@ -49,38 +49,30 @@ jobs: coreutils cvs gfortran graphviz gnupg2 mercurial ninja-build \ cmake bison libbison-dev subversion - name: Install Python packages - run: | - pip install --upgrade pip setuptools pytest pytest-xdist clingo + run: pip install --upgrade pytest clingo - uses: ./.github/actions/checkout-spack - - name: Run unit tests (without coverage) - run: | - . ./spack-core/share/spack/setup-env.sh - PYTHONPATH=${SPACK_ROOT}/lib/spack:${SPACK_ROOT}/lib/spack/external:${PYTHONPATH} python3 -m pytest -v --exitfirst + - name: Run unit tests + run: PYTHONPATH="$PWD/spack-core/lib/spack" python3 -m pytest -v --exitfirst # Run unit tests on MacOS macos: runs-on: ${{ matrix.os }} strategy: matrix: - os: [macos-13, macos-14] + os: ["macos-15", "macos-15-intel"] python-version: ["3.11"] steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: ${{ matrix.python-version }} - name: Install Python packages - run: | - pip install --upgrade pip setuptools - pip install --upgrade pytest pytest-xdist clingo + run: pip install --upgrade pytest clingo - name: Setup Homebrew packages - run: | - brew install dash fish gcc gnupg + run: brew install dash fish gcc gnupg - uses: ./.github/actions/checkout-spack - - name: Run unit tests (without coverage) - run: | - . ./spack-core/share/spack/setup-env.sh - PYTHONPATH=${SPACK_ROOT}/lib/spack:${SPACK_ROOT}/lib/spack/external:${PYTHONPATH} python3 -m pytest -v --exitfirst + - name: Run unit tests + run: PYTHONPATH="$PWD/spack-core/lib/spack" python3 -m pytest -v --exitfirst # Run unit tests on Windows windows: @@ -90,21 +82,18 @@ jobs: powershell Invoke-Expression -Command "./.ci/windows_test_setup.ps1"; {0} runs-on: windows-latest steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: 3.9 - name: Install Python packages - run: | - python -m pip install --upgrade pip pywin32 setuptools pytest clingo + run: python -m pip install --upgrade pywin32 pytest clingo #- name: Create local develop # run: | # ./.github/workflows/bin/setup_git.ps1 - uses: ./.github/actions/checkout-spack - - name: Run unit tests (without coverage) + - name: Run unit tests run: | - $new = "$Env:SPACK_ROOT\lib\spack;$Env:SPACK_ROOT\lib\spack\external" - $current = [Environment]::GetEnvironmentVariable("PYTHONPATH", "User") - $Env:PYTHONPATH = "$new;$current" + $Env:PYTHONPATH = "$Env:SPACK_ROOT\lib\spack;$Env:PYTHONPATH" python3 -m pytest -v --exitfirst ./.ci/validate_last_exit.ps1 diff --git a/.github/workflows/update-src-mirror.yml b/.github/workflows/update-src-mirror.yml new file mode 100644 index 00000000000..c268aa938d1 --- /dev/null +++ b/.github/workflows/update-src-mirror.yml @@ -0,0 +1,67 @@ +name: update-src-mirror + +on: + push: + branches: + - develop + +permissions: + id-token: write # Required for AWS OIDC authentication + contents: read + +jobs: + update-mirror: + if: github.repository == 'spack/spack-packages' + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + # Depth 2 is required for this check + fetch-depth: 2 + + - name: Checkout Spack + uses: ./.github/actions/checkout-spack + with: + fetch-depth: 1 + + - name: Create source mirror + id: create-mirror + run: | + source spack-core/share/spack/setup-env.sh + + # Create source mirror for changed specs + SPECS=$(spack repo show-version-updates \ + --no-manual-packages \ + --only-redistributable \ + --no-git-versions \ + builtin \ + "${{ github.event.before }}" \ + "${{ github.event.after }}") + + if [ -z "$SPECS" ]; then + echo "No specs to mirror" + echo "new-specs=false" >> $GITHUB_OUTPUT + exit 0 + fi + + echo "Creating mirror for:" + echo "$SPECS" + spack -c concretizer:unify:false mirror create -d src-mirror $SPECS + echo "new-specs=true" >> $GITHUB_OUTPUT + + - name: Configure AWS credentials + if: steps.create-mirror.outputs.new-specs == 'true' + uses: aws-actions/configure-aws-credentials@99214aa6889fcddfa57764031d71add364327e59 # v6.1.3 + with: + role-to-assume: ${{ secrets.AWS_ROLE_ARN }} + aws-region: ${{ secrets.AWS_REGION }} + + - name: Upload to S3 + if: steps.create-mirror.outputs.new-specs == 'true' + run: | + aws s3 cp src-mirror/_source-cache s3://${{ secrets.S3_BUCKET_NAME }}/_source-cache/ \ + --no-overwrite \ + --recursive \ + --no-progress + echo "Successfully uploaded source mirror to S3" diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000000..50f8b9a0430 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,538 @@ +# Spack packages v2026.03.0 + +The 2026.03.0 release of the spack packages is released out of phase from +the Spack tool release. This release is meant to bring new packages and +package version updates and deprecations that are not made available via +backports to previous releases. + +## Spack version compatibility + +This release continues to use the v2.2 Package API. This is the Package API +version used by the Spack v1.0.0 release. Any Spack version 1.0.0 or newer +is compatible with this release of the packages repo. + +This release was tested against Spack v1.2.0.dev0 (96cae55e9b09e12cf82326541b020a06f372deb4) +and the environments used to generate the binary caches use new features +that will be part of the Spack 1.2 release. The binary caches themselves are +compatible with any Spack v1.0.0 or newer (any Spack that supports the v3 +URL build cache layout), but the environments used to generate them +cannot be reconcretized with any existing Spack release, and require the +`develop` branch. + +See the [Package API +Documentation](https://spack.readthedocs.io/en/latest/package_api.html) +for full details on package versioning and compatibility. + +## Package statistics + +There are now 8752 packages in the spack-packages builtin repo. This +is up from 8615 in the previous release. + +## New and removed packages + +This release contains a number of deprecations to address CVEs in a number +of projects, notably those related to AI stacks. These deprecated versions +will be removed in the following release. + +In addition to new deprecations, all package versions deprecated prior to +the v2025.11.0 release have been removed with a few exceptions. + +| Package | Reason | +| ---------- | ----------------------------------------------------------------- | +| VTK | 8.2 for VisIt compatibility | +| Flecsi | maintainer request (#3573) | +| Fenics UFL | Older versions needed to continue building other Fenics libraries | + +### New packages + +* 4ti2 +* alsa-plugins +* amg4psblas +* aocl-dlp +* aotriton-llvm +* arm-kernels +* atfl +* autossh +* cabana-pd +* cargo-c +* civetweb +* claude-code +* codee +* csvtk +* deepmdkit +* eccodes-cosmo-resources +* exactextract +* fastq-scan +* fflas-ffpack +* fvtkhdf +* ggml +* gomplate +* hipdnn +* koliop +* libbeef +* llama-cpp +* lrose-core +* maqao +* mathic +* mathicgb +* memtailor +* meshoptimizer +* mimic-mcl +* mojitos +* mpsolve +* msolve +* mui +* nep +* normaliz +* nq +* pueue +* py-albucore +* py-antipickle +* py-apache-tvm-ffi +* py-authlib +* py-b2luigi +* py-chai-lab +* py-chemiscope +* py-codecarbon +* py-codechecker +* py-dcmstack +* py-deisa +* py-deisa-core +* py-deisa-dask +* py-derivative +* py-diagnostic +* py-eigenpy +* py-fief-client +* py-gemmi +* py-heudiconv +* py-ihm +* py-intake +* py-intake-esm +* py-itables +* py-kerchunk +* py-language-data +* py-librt +* py-lightpipes +* py-llama-cpp-python +* py-marisa-trie +* py-mdahole2 +* py-mendeleev +* py-metatrain +* py-modelcif +* py-mui4py +* py-nvidia-nvcomp +* py-nvidia-physicsnemo +* py-p2j +* py-pandera +* py-pathsimanalysis +* py-pmtiles +* py-proxystore +* py-pycryptodomex +* py-pylibjpeg-libjpeg +* py-pylibjpeg-rle +* py-pyroaring +* py-pysindy +* py-pytest-cmake +* py-pytest-socket +* py-python-docx +* py-pytuq +* py-pyvips +* py-rio-pmtiles +* py-roman-numerals +* py-sarif-tools +* py-sdnotify +* py-snakemake-interface-logger-plugins +* py-snakemake-interface-scheduler-plugins +* py-snakemake-storage-plugin-rucio +* py-sphericart +* py-sphericart-torch +* py-sphinxcontrib-tikz +* py-supermercado +* py-textual-fspicker +* py-tmtools +* py-torch-c-dlpack-ext +* py-torch-spex +* py-trame-common +* py-trame-vtk +* py-trame-vuetify +* py-trl +* py-ty +* py-types-geopandas +* py-types-pyyaml +* py-types-shapely +* py-types-tqdm +* py-typing-inspection +* py-uqinn +* py-validate-pyproject +* py-versioningit +* py-waterdynamics +* py-wigners +* py-yt-dlp +* py-yt-dlp-ejs +* r-bayesfactor +* r-contfrac +* r-elliptic +* r-ggpattern +* r-gridpattern +* r-hypergeo +* r-shinywidgets +* rank-run +* realm +* s5cmd +* shadowenv +* starship +* units-llnl +* xictools +* yamlfmt + +### Removed packages + +* salome-med +* scorec-core + +# Spack packages v2025.11.0 + +The 2025.11.0 release of the spack packages is released in conjunction +with the Spack 1.1.0 release. You can read about the [Spack 1.1 +release here](https://github.com/spack/spack/releases/v1.1.0). + +## Spack package API version + +This release uses Package API v2.4. We are guaranteeing that any Spack +release v1.x from v1.1.0 onwards will be backward compatible with +Package API v.2.4 -- i.e., it can execute code from packages in this +release. + +See the [Package API +Documentation](https://spack.readthedocs.io/en/latest/package_api.html) +for full details on package versioning and compatibility. + +## Package statistics + +There are now 8611 packages in the spack-packages builtin repo. This +is up from 8499 in the previous release. + +## New and removed packages + +All package versions deprecated prior to the 2025.07 release have been +removed, as have all versions that are unusable without versions +deprecated by that time, with the exception of deprecated versions of +the `gcc` package. + +All packages for which all versions were removed were removed from the repo. + +### New packages + +* alpscore +* aretomo +* aretomo2 +* babeltrace2 +* cohomcalg +* cpptrace +* croc +* cublasmp +* cufftmp +* cusolvermp +* cusparselt +* ddc +* deno +* dolfinx-mpc +* dplasma +* elastix +* erf +* fairroot +* fairsoft-bundle +* fairsoft-config +* fastplong +* frobby +* fwq +* geany +* givaro +* glib-bootstrap +* go-sh +* green-mbpt +* green-seet +* gribjump +* gspell +* hsa-amd-aqlprofile +* imod +* jonquil +* just +* kenlm +* kynema +* libftdi +* libgee +* libgit2-glib +* libhandy +* libmetatensor +* libmetatensor-torch +* libmetatomic-torch +* mamba +* model-angelo +* mozjs +* mscclpp +* mstore +* nvidia-container-toolkit +* openfpgaloader +* padicotm +* pbzip2 +* pioman +* podman-compose +* puk +* pukabi +* py-acres +* py-adios4dolfinx +* py-apebench +* py-app-model +* py-autoreject +* py-backports-tarfile +* py-bidict +* py-bids-validator-deno +* py-bidsschematools +* py-binary +* py-biosppy +* py-blake3 +* py-cachey +* py-cbor2 +* py-choreographer +* py-coherent-licensed +* py-courlan +* py-cramjam +* py-crc32c +* py-cuda-bindings +* py-dask-awkward +* py-dask-histogram +* py-dask-jobqueue +* py-dataproperty +* py-datatrove +* py-dolfinx-mpc +* py-eval-type-backport +* py-evaluate +* py-exponax +* py-fasttext-numpy2-wheel +* py-faust-cchardet +* py-flexcache +* py-flexparser +* py-freetype-py +* py-google-cloud-bigquery +* py-gpaw-data +* py-gromacswrapper +* py-hf-xet +* py-hsluv +* py-htmldate +* py-imutils +* py-in-n-out +* py-inscriptis +* py-ipython-pygments-lexers +* py-jaraco-context +* py-json-tricks +* py-justext +* py-lil-aretomo +* py-logistro +* py-magicgui +* py-makefun +* py-mbstrdecoder +* py-mdocfile +* py-metatensor-core +* py-metatensor-learn +* py-metatensor-operations +* py-metatensor-torch +* py-metatomic-torch +* py-microsoft-aurora +* py-morphosamplers +* py-mumps4py +* py-napari +* py-napari-console +* py-napari-plugin-engine +* py-napari-plugin-manager +* py-napari-svg +* py-nh3 +* py-npe2 +* py-numbagg +* py-numkit +* py-numpy-indexed +* py-nvidia-nvimagecodec +* py-nvidia-nvjpeg2k +* py-nvidia-nvtiff +* py-opencv-python +* py-paho-mqtt +* py-pathvalidate +* py-pdequinox +* py-peakutils +* py-psygnal +* py-pyahocorasick +* py-pyclibrary +* py-pyconify +* py-pydantic-compat +* py-pygrib +* py-pypinfo +* py-pypistats +* py-pysmiles +* py-pytablewriter +* py-pytest-memray +* py-relion +* py-relion-blush +* py-relion-classranker +* py-rouge-score +* py-scifem +* py-scikit-matter +* py-setuptools-reproducible +* py-simple-slurm +* py-simsimd +* py-snakeviz +* py-starfile +* py-stringzilla +* py-tabledata +* py-tcolorpy +* py-textual-plotext +* py-tilelang +* py-tinyrecord +* py-tld +* py-torchtoolbox +* py-trafilatura +* py-trainax +* py-typepy +* py-universal-pathlib +* py-vermouth-martinize +* py-vesin +* py-vispy +* py-warcio +* py-xcdat +* py-xgcm +* quest +* r-reformulas +* regenie +* repeatafterme +* ruby-charlock-holmes +* sandia-micro-benchmarks +* scorecard +* shred +* spack-configs-facilities +* spack-configs-tools-sdk +* tcl-bwidget +* tcl-togl +* tempestextremes +* terminalimageviewer +* topaz-3dem +* topcom +* torch-scatter +* tsne-cuda +* xcrysden* + +### Removed packages + +* apcomp +* autofact +* bcl2fastq2 +* blast-legacy +* compiz +* cupla +* ddt +* dray +* exa +* examinimd +* gconf +* geoip +* grandr +* grib-api +* ip2 +* kokkos-kernels-legacy +* kokkos-legacy +* lbzip2 +* libuuid +* melissa-api +* memsurfer +* micromamba +* miniaero +* miniconda2 +* mongodb +* mvapich2-gdr +* mvapich2x +* oce +* openturbine +* paraver +* parquet-cpp +* perl-alien-svn +* py-azure-cli +* py-azureml-automl-core +* py-azureml-core +* py-azureml-dataprep +* py-azureml-dataprep-native +* py-azureml-dataprep-rslex +* py-azureml-dataset-runtime +* py-azureml-pipeline +* py-azureml-pipeline-core +* py-azureml-pipeline-steps +* py-azureml-sdk +* py-azureml-telemetry +* py-azureml-train +* py-azureml-train-automl-client +* py-azureml-train-core +* py-azureml-train-restclients-hyperdrive +* py-cylc-uiserver +* py-deepsig +* py-dlio-profiler-py +* py-gdbgui +* py-graphene-tornado +* py-haphpipe +* py-motor +* py-mysqldb1 +* py-nibetaseries +* py-ninja +* py-nistats +* py-ocp-models +* py-pydv +* py-pyside +* py-rq +* py-sanic +* py-shiboken +* py-sierrapy +* py-xrootd-pyfs +* qbank +* r-kegg-db +* shortbred +* singularity-legacy +* sollve +* sparrow +* supernova +* testdfsio +* virtuoso +* votca-csg +* votca-csg-tutorials +* votca-csgapps +* votca-ctp +* votca-tools +* votca-xtp +* xsdk-examples + + +# Spack Packages v2025.07.0 + +This is the initial release of the Spack package repository as its own project, separate from the core Spack tool. + +## Package API version + +Starting with Spack `v1.0`, the [Spack Package API](https://spack.readthedocs.io/en/latest/package_api.html) is separately versioned from Spack. + +This release uses Package API `v2.2`. We are guaranteeing that any Spack `v1.x` release will be backward compatible with Package API `v.2.2` -- i.e., it can execute code from packages in this release. + +See the [Package API Documentation](https://spack.readthedocs.io/en/latest/package_api.html) for full details +on package versioning and compatibility. The high level details are: + +1. The `spack.package` Python module defines the Package API; +2. The Package API *minor version* is incremented when new functions or classes are exported from `spack.package`; and +3. The major version is incremented when functions or classes are removed or have breaking changes to their signatures (a rare occurrence). + +This independent versioning allows package authors to utilize new Spack features without waiting for a new Spack release. + +## Major changes from the `builtin` repository as it existed within Spack core +- Spack packages are defined in this repo; +- Spack build system classes are defined in this repo, in the `spack_repo.builtin.build_systems` module (previously in core in the `spack.build_systems` module). +- The structure of v2.x Spack repositories has changed. Directory names are now normalized so they are valid Python modules. Previously, directory names could contain hyphens and were not understood by editors and Python tooling. Now the naming scheme is: + - `py-numpy/package.py` -> `py_numpy/package.py` (hyphen is replaced by underscore) + - `7zip/package.py` -> `_7zip/package.py` (leading digits are now preceded by an underscore) + - `pass/package.py` -> `_pass/package.py` (reserved keywords are preceded by an underscore) + +## Spack version 1.0 + +Further information about new features and changes to packages since the `v0.23` release can be found in the [Spack v1.0.0 release notes](https://github.com/spack/spack/releases/tag/v1.0.0). diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 00000000000..5a8a693ff2a --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,60 @@ +### +# New stacks and unmaintained stacks to ping maintainers +# monitoring infrastructure capacity. +/stacks/ @eugeneswalker @kwryankrattiger @zackgalbreath + +### +# Stacks without maintainers will ping infrastructure maintainers +# /stacks/aws-pcluster-neoverse_v1/ +# /stacks/aws-pcluster-x86_64_v4/ + +### +# Stacks with maintainers +/stacks/bootstrap-aarch64-darwin/ @alalazo @haampie +/stacks/bootstrap-x86_64-linux-gnu/ @alalazo @haampie +/stacks/build_systems/ @alalazo +/stacks/data-vis-sdk/ @kwryankrattiger +/stacks/developer-tools-aarch64-linux-gnu/ @alalazo +/stacks/developer-tools-x86_64_v3-linux-gnu/ @alalazo +/stacks/developer-tools-darwin/ @eugeneswalker @trws +/stacks/e4s*/ @eugeneswalker +/stacks/hep/ @wdconinc +/stacks/ml-darwin-aarch64-mps/ @adamjstewart @eugeneswalker +/stacks/ml-linux*/ @adamjstewart +/stacks/tools-sdk/ @kwryankrattiger +/stacks/tutorial/ @alecbcs @becker33 @tldahlgren @tgamblin +/stacks/windows-vis/ @johnwparent @kwryankrattiger @scheibelp + +### +# CI Components maintained by Kitware +/.ci/configs/ @kwryankrattiger @zackgalbreath +/.ci/gitlab/configs/ @kwryankrattiger @zackgalbreath +.ci/gitlab/.gitlab-ci.yml @kwryankrattiger @zackgalbreath + +### +# CI Components maintained by UO +/.ci/gitlab/configs/cray*/ @eugeneswalker +/.ci/gitlab/configs/darwin*/ @eugeneswalker + +### +# GitHub Actions maintainers +/.github/actions @haampie @kwryankrattiger +/.github/workflows @alecbcs @alalazo @haampie @kwryankrattiger + +### +# GitHub project maintainers +.ci/env @spack/spack-releasers +.github/*.md @spack/spack-releasers +.github/*.yml @spack/spack-releasers +/.github/ISSUE_TEMPLATE/ @spack/spack-releasers +CODEOWNERS @spack/spack-releasers +LICENSE* @spack/spack-releasers +NOTICE @spack/spack-releasers +README.md @spack/spack-releasers +pyproject.toml @spack/spack-releasers +.gitignore @spack/spack-releasers + +### +# Packages tests maintainers +/tests/ @alalazo @becker33 @haampie @johnwparent @tldahlgren +.pytest.ini @alalazo @becker33 @haampie @tldahlgren diff --git a/README.md b/README.md index 2c7e23cf4e0..382e06b801c 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,77 @@ -# Spack Packages +

+ + + + Spack + -This is the default [Spack](https://github.com/spack/spack) packages repository, which -contains the set of packages maintained by the Spack community. In Spack v1.0 and later, -the repository here is automatically added to the Spack configuration. +
+
+ +Documentation Status +Slack +Matrix + +

+ +**[Getting Started]   •   [Community]   •   [Packaging Guide]   •   [Spack]** + +This is the default [Spack](https://github.com/spack/spack) package repository, which contains the set of packages maintained by the Spack community. +In Spack v1.0 and later, the repository here is automatically added to the Spack configuration. ## Contributing -To contribute, simply make a pull request to this repository with your package changes. -We run continuous integration on this repository to test builds of a large number of -Spack packages. +To contribute, make a pull request to this repository with your package changes. +We run continuous integration to test builds of a large number of Spack packages. + +If you want to test your changes locally before submitting a PR, you can make +Spack use your local clone of `spack-packages` like this: -If you want to test your package changes locally before submitting a pull request, -simply change Spack's default package repo from the default cache location to the full -path to your local git clone: ``` spack repo set --destination /path/to/local/spack-packages builtin ``` + `$spack` can be used to form a relative path to your Spack root directory. If you are migrating your pull requests from -[github.com/spack/spack](https://github.com/spack/spack), it is recommended to use the [the migration tool](https://github.com/spack/migrate-package-prs). +[github.com/spack/spack](https://github.com/spack/spack), it is recommended to use the [migration tool](https://github.com/spack/migrate-package-prs). + +## Community + +Spack is an open source project. Questions, discussion, and contributions are welcome. + +* **Slack workspace**: [spackpm.slack.com](https://spackpm.slack.com). + To get an invitation, visit [slack.spack.io](https://slack.spack.io). +* **Matrix space**: [#spack-space:matrix.org](https://matrix.to/#/#spack-space:matrix.org): + [bridged](https://github.com/matrix-org/matrix-appservice-slack#matrix-appservice-slack) to Slack. + +## Structure of this repo + +This repository does not look like the original Spack package repositories. Its structure +has been renovated a bit to make it work better with modern python tooling. The repo +looks like this: + +``` +spack-packages/ + repos/ # add this to PYTHONPATH for your editor + spack_repo/ # dedicated python package for spack repositories + builtin/ # namespace of this package repository + build_systems/ # build_systems: common base classes used by many packages + packages/ # This is where all the package.py files go + / # e.g., hdf5, zlib, mfem + package.py # actual package recipes +``` + +The new repository structure is designed around several goals: + +1. Make it easy to add the repository to `PYTHONPATH`; +2. Allow common python code like `build_systems` to live in the package repo, not core + Spack; and +3. Allow multiple repositories (e.g. something in addition to `builtin`) to live in the + same git repository. + +If you use an editor like vscode, you should be able to point it directly to the `repos/` +directory and have the editor understand the package code. ## Searching Spack packages @@ -49,3 +101,8 @@ See [LICENSE-MIT](https://github.com/spack/spack-packages/blob/develop/LICENSE-M SPDX-License-Identifier: (Apache-2.0 OR MIT) LLNL-CODE-811652 + +[Getting Started]: https://spack.readthedocs.io/en/latest/getting_started.html +[Community]: #community +[Packaging Guide]: https://spack.readthedocs.io/en/latest/packaging_guide_creation.html +[Spack]: https://github.com/spack/spack diff --git a/logo/spack-packages-logo-text.svg b/logo/spack-packages-logo-text.svg new file mode 100644 index 00000000000..f7334e52597 --- /dev/null +++ b/logo/spack-packages-logo-text.svg @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -= + diff --git a/logo/spack-packages-logo-white-text.svg b/logo/spack-packages-logo-white-text.svg new file mode 100644 index 00000000000..33f6686fa59 --- /dev/null +++ b/logo/spack-packages-logo-white-text.svg @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pyproject.toml b/pyproject.toml index 874db4be6da..3d53b3320b3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,61 +1,271 @@ [project] -name = "spack" -description = "The spack package manager" +name = "spack-repo-builtin" +description = "The builtin repository of the Spack package manager" requires-python = ">=3.6" -dependencies = ["clingo", "setuptools"] -dynamic = ["version"] - -[tool.hatch.version] -path = "repos/spack_repo/builtin/__init__.py" +version = "2026.5.0.dev0" # note: leading zeros are normalized away, so use single digit months. [project.optional-dependencies] dev = [ "pip>=21.3", "pytest", "pytest-xdist", - "setuptools", - "click", - "black", "mypy", - "isort", - "flake8", + "ruff", "vermin", ] ci = ["pytest-cov", "codecov[toml]"] -[build-system] -requires = ["hatchling"] -build-backend = "hatchling.build" +[tool.ruff] +fix = true +line-length = 99 -[tool.hatch.build.targets.wheel] -include = [ - "/repos", - "CITATION.cff", - "COPYRIGHT", - "LICENSE-APACHE", - "LICENSE-MIT", - "NOTICE", - "README.md", - "SECURITY.md", +# This is the Spack package API. We allow these functions to be imported with +# from spack.package import *, and we should update this when the package API +# changes. This also serves to catch the usage of things that are NOT in the +# package API, so that we can avoid having them in builtin. +builtins = [ + # core spack build environment + "configure", + "cscript", + "dso_suffix", + "make_jobs", + "msbuild", + "nmake", + "prefix", + "python", + "python_include", + "python_platlib", + "python_purelib", + "spack_cc", + "spack_cxx", + "spack_f77", + "spack_fc", + "static_to_shared_library", + # defined in packages or build systems, e.g. -- these can be removed over time + "aclocal", + "autoconf", + "autoheader", + "autom4te", + "automake", + "autoreconf", + "autoscan", + "autoupdate", + "bazel", + "cargo", + "cmake", + "cmake_cache_path", + "ctest", + "gem", + "glibtool", + "glibtoolize", + "gmake", + "go", + "ifnames", + "kentutils_htslib_include_dir", + "kentutils_include_dir", + "kentutils_lib_dir", + "libtool", + "libtoolize", + "lua", + "luarocks", + "make", + "make", + "meson", + "msbuild", + "ninja", + "ninja", + "nmake", + "octave", + "perl", + "perl_lib_dir", + "pip", + "plumed", + "pypy", + "python", + "python_include", + "python_platlib", + "python_purelib", + "qmake", + "R", + "r_lib_dir", + "rake", + "ruby", + "scons", + # v2.0 + "BaseBuilder", + "Builder", + "Dict", + "EnvironmentModifications", + "Executable", + "FileFilter", + "FileList", + "HeaderList", + "InstallError", + "LibraryList", + "List", + "MakeExecutable", + "NoHeadersError", + "NoLibrariesError", + "Optional", + "PackageBase", + "Prefix", + "ProcessError", + "SkipTest", + "Spec", + "Version", + "all_deptypes", + "ancestor", + "any_combination_of", + "auto_or_any_combination_of", + "bash_completion_path", + "build_system_flags", + "build_system", + "cache_extra_test_sources", + "can_access", + "can_splice", + "cd", + "change_sed_delimiter", + "check_outputs", + "conditional", + "conflicts", + "copy_tree", + "copy", + "default_args", + "depends_on", + "determine_number_of_jobs", + "disjoint_sets", + "env_flags", + "env", + "extends", + "filter_compiler_wrappers", + "filter_file", + "find_all_headers", + "find_first", + "find_headers", + "find_libraries", + "find_required_file", + "find_system_libraries", + "find", + "fish_completion_path", + "fix_darwin_install_name", + "force_remove", + "force_symlink", + "get_escaped_text_output", + "inject_flags", + "install_test_root", + "install_tree", + "install", + "is_exe", + "join_path", + "keep_modification_time", + "library_extensions", + "license", + "maintainers", + "makedirs", + "mkdir", + "mkdirp", + "move", + "on_package_attributes", + "patch", + "provides", + "pwd", + "redistribute", + "register_builder", + "remove_directory_contents", + "remove_linked_tree", + "remove", + "removedirs", + "rename", + "requires", + "resource", + "rmtree", + "run_after", + "run_before", + "set_executable", + "set_install_permissions", + "symlink", + "test_part", + "touch", + "tty", + "variant", + "ver", + "version", + "when", + "which_string", + "which", + "working_dir", + "zsh_completion_path", + # v2.1 + "CompilerError", + "SpackError", + # v2.2 + "BuilderWithDefaults", + "ClassProperty", + "CompilerPropertyDetector", + "GenericBuilder", + "HKEY", + "LC_ID_DYLIB", + "LinkTree", + "MachO", + "ModuleChangePropagator", + "Package", + "WindowsRegistryView", + "apply_macos_rpath_fixups", + "classproperty", + "compare_output_file", + "compare_output", + "compile_c_and_execute", + "compiler_spec", + "create_builder", + "dedupe", + "delete_needed_from_elf", + "delete_rpath", + "environment_modifications_for_specs", + "execute_install_time_tests", + "filter_shebang", + "filter_system_paths", + "find_all_libraries", + "find_compilers", + "get_cmake_prefix_path", + "get_effective_jobs", + "get_elf_compat", + "get_path_args_from_module_line", + "get_user", + "has_shebang", + "host_platform", + "is_system_path", + "join_url", + "kernel_version", + "libc_from_dynamic_linker", + "macos_version", + "make_package_test_rpath", + "memoized", + "microarchitecture_flags_from_target", + "microarchitecture_flags", + "module_command", + "parse_dynamic_linker", + "parse_elf", + "path_contains_subdirectory", + "readlink", + "safe_remove", + "sbang_install_path", + "sbang_shebang_line", + "set_env", + "shared_library_suffix", + "spack_script", + "static_library_suffix", + "substitute_version_in_url", + "windows_sfn", ] -[tool.hatch.envs.default] -features = ["dev"] - -[tool.hatch.envs.ci] -features = ["dev", "ci"] - -[tool.ruff] -line-length = 99 -extend-include = ["bin/spack"] -extend-exclude = ["lib/spack/external", "*.pyi"] [tool.ruff.format] -skip-magic-trailing-comma = true +line-ending = "lf" +skip-magic-trailing-comma = false [tool.ruff.lint] -extend-select = ["I"] -ignore = ["E731", "E203"] +extend-select = ["E", "I", "W"] +ignore = ["E731", "F403", "F811"] [tool.ruff.lint.isort] split-on-trailing-comma = false @@ -63,7 +273,6 @@ section-order = [ "future", "standard-library", "third-party", - "llnl", "spack", "first-party", "local-folder", @@ -71,113 +280,22 @@ section-order = [ [tool.ruff.lint.isort.sections] spack = ["spack"] -llnl = ["llnl"] - -[tool.ruff.lint.per-file-ignores] -"var/spack/*/package.py" = ["F403", "F405", "F811", "F821"] -"*-ci-package.py" = ["F403", "F405", "F821"] - -[tool.black] -line-length = 99 -include = "(repos/spack_repo|tests)/.*\\.pyi?$" -skip_magic_trailing_comma = true - -[tool.isort] -line_length = 99 -profile = "black" -sections = [ - "FUTURE", - "STDLIB", - "THIRDPARTY", - "LLNL", - "FIRSTPARTY", - "LOCALFOLDER", -] -known_first_party = "spack" -known_llnl = "llnl" -known_third_party = ["ruamel", "six"] -src_paths = "lib" -honor_noqa = true [tool.mypy] files = [ "repos/spack_repo/builtin/packages/*/package.py", "repos/spack_repo/builtin/build_systems/*.py", ] -mypy_path = ["spack-core/lib/spack", "spack-core/lib/spack/external", "repos/"] +mypy_path = ["repos/", "spack-core/lib/spack"] +explicit_package_bases = true allow_redefinition = true - -# This and a generated import file allows supporting packages namespace_packages = true - -# To avoid re-factoring all the externals, ignore errors and missing imports -# globally, then turn back on in spack and spack submodules -ignore_errors = true -ignore_missing_imports = true +disable_error_code = ["no-redef", "name-defined", "attr-defined"] [[tool.mypy.overrides]] module = "spack.*" -ignore_errors = false -ignore_missing_imports = false - -[[tool.mypy.overrides]] -module = "spack_repo.*" -ignore_errors = false -ignore_missing_imports = false -# we can't do this here, not a module scope option, in spack style instead -# disable_error_code = 'no-redef' - -[[tool.mypy.overrides]] -module = "llnl.*" -ignore_errors = false -ignore_missing_imports = false - -[[tool.mypy.overrides]] -module = "spack.test.packages" ignore_errors = true -# ignore errors in fake import path for packages -[[tool.mypy.overrides]] -module = "spack.pkg.*" -ignore_errors = true -ignore_missing_imports = true - -# Spack imports a number of external packages, and they *may* require Python 3.8 or -# higher in recent versions. This can cause mypy to fail because we check for 3.7 -# compatibility. We could restrict mypy to run for the oldest supported version (3.7), -# but that means most developers won't be able to run mypy, which means it'll fail -# more in CI. Instead, we exclude these imported packages from mypy checking. -[[tool.mypy.overrides]] -module = [ - "IPython", - "altgraph", - "attr", - "boto3", - "botocore", - "distro", - "importlib.metadata", - "jinja2", - "jsonschema", - "macholib", - "markupsafe", - "numpy", - "pkg_resources", - "pyristent", - "pytest", - "ruamel.yaml", - "six", -] -follow_imports = "skip" -follow_imports_for_stubs = true - -[tool.pyright] -useLibraryCodeForTypes = true -reportMissingImports = true -reportWildcardImportFromLibrary = false -include = ["lib/spack", "var/spack/repos", "var/spack/test_repos"] -ignore = ["lib/spack/external"] -extraPaths = ["lib/spack", "lib/spack/external"] - [tool.coverage.run] parallel = true @@ -185,12 +303,7 @@ concurrency = ["multiprocessing"] branch = true source = ["bin", "lib"] data_file = "./tests-coverage/.coverage" -omit = [ - "lib/spack/spack/test/*", - "lib/spack/docs/*", - "lib/spack/external/*", - "share/spack/qa/*", -] + [tool.coverage.report] # Regexes for lines to exclude from consideration @@ -223,70 +336,3 @@ source = [ [tool.coverage.html] directory = "htmlcov" - -[tool.vendoring] -destination = "lib/spack/external/_vendoring" -requirements = "lib/spack/external/vendor.txt" -namespace = "" - -protected-files = ["__init__.py", "README.rst", "vendor.txt"] -patches-dir = "lib/spack/external/patches" - -[tool.vendoring.transformations] -substitute = [ - { match = "typing_extensions", replace = "_vendoring.typing_extensions" }, - { match = "ruamel.yaml", replace = "_vendoring.ruamel.yaml" }, - { match = "altgraph", replace = "_vendoring.altgraph" }, - { match = "macholib", replace = "_vendoring.macholib" }, - { match = "from six", replace = "from _vendoring.six" }, - { match = "markupsafe", replace = "_vendoring.markupsafe" }, - { match = "jinja2", replace = "_vendoring.jinja2" }, - { match = "pyrsistent", replace = "_vendoring.pyrsistent" }, - { match = "import attr\n", replace = "import _vendoring.attr\n" }, - { match = "from attr", replace = "from _vendoring.attr" }, - { match = "import jsonschema", replace = "import _vendoring.jsonschema" }, - { match = "from jsonschema", replace = "from _vendoring.jsonschema" }, -] -drop = [ - # contains unnecessary scripts - "bin/", - # interpreter and OS specific msgpack libs - "msgpack/*.so", - # unneeded parts of setuptools - "easy_install.py", - "setuptools", - "pkg_resources/_vendor/", - "pkg_resources/extern/", - # trim vendored pygments styles and lexers - "pygments/styles/[!_]*.py", - "^pygments/lexers/(?!python|__init__|_mapping).*\\.py$", - # trim rich's markdown support - "rich/markdown.py", - # ruamel.yaml installs unneded files - "ruamel.*.pth", - "pvectorc.*.so", - # Trim jsonschema tests - "jsonschema/tests", - "archspec/json/tests", - "archspec/vendor/cpuid/.gitignore", - "pyrsistent/__init__.pyi", -] - -[tool.vendoring.typing-stubs] -_pyrsistent_version = [] -altgraph = [] -archspec = [] -distro = [] -jsonschema = [] -macholib = [] -pyrsistent = [] -ruamel = [] -six = [] - -[tool.vendoring.license.directories] -setuptools = "pkg_resources" - -[tool.vendoring.license.fallback-urls] -CacheControl = "https://raw.githubusercontent.com/ionrock/cachecontrol/v0.12.6/LICENSE.txt" -distlib = "https://bitbucket.org/pypa/distlib/raw/master/LICENSE.txt" -webencodings = "https://github.com/SimonSapin/python-webencodings/raw/master/LICENSE" diff --git a/pytest.ini b/pytest.ini index 7e8b9fa8f3f..4d249f45974 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,6 +1,6 @@ # content of pytest.ini [pytest] -addopts = --durations=30 -ra --strict-markers +addopts = --durations=30 -ra --strict-markers -p no:legacypath norecursedirs = tests/repos testpaths = tests python_files = *.py diff --git a/repos/spack_repo/builtin/build_systems/aspell_dict.py b/repos/spack_repo/builtin/build_systems/aspell_dict.py index b395b299775..68fbdd6a39e 100644 --- a/repos/spack_repo/builtin/build_systems/aspell_dict.py +++ b/repos/spack_repo/builtin/build_systems/aspell_dict.py @@ -15,7 +15,10 @@ class AspellBuilder(AutotoolsBuilder): """ def configure( - self, pkg: "AspellDictPackage", spec: Spec, prefix: Prefix # type: ignore[override] + self, + pkg: "AspellDictPackage", + spec: Spec, + prefix: Prefix, # type: ignore[override] ): aspell = spec["aspell"].prefix.bin.aspell prezip = spec["aspell"].prefix.bin.prezip diff --git a/repos/spack_repo/builtin/build_systems/autotools.py b/repos/spack_repo/builtin/build_systems/autotools.py index db4a6d792d6..20a220ecd53 100644 --- a/repos/spack_repo/builtin/build_systems/autotools.py +++ b/repos/spack_repo/builtin/build_systems/autotools.py @@ -276,9 +276,7 @@ def runs_ok(script_abs_path): "`gnuconfig` package is broken" ).format(gnuconfig_dir) if gnuconfig.external: - msg += ( - " or the `gnuconfig` package prefix is misconfigured as" " an external package" - ) + msg += " or the `gnuconfig` package prefix is misconfigured as an external package" raise InstallError(msg) # Filter working substitutes @@ -432,7 +430,7 @@ def _do_patch_libtool(self) -> None: else: language = "fortran" - if language not in self.spec: + if not self.spec.satisfies(f"%{language}"): continue x.filter( @@ -756,9 +754,7 @@ def _activate_or_not( def _default_generator(is_activated): if is_activated: line = f"--{activation_word}-{option_value}" - if activation_value is not None and activation_value( - option_value - ): # NOQA=ignore=E501 + if activation_value is not None and activation_value(option_value): line = f"{line}={activation_value(option_value)}" return line return f"--{deactivation_word}-{option_value}" diff --git a/repos/spack_repo/builtin/build_systems/cached_cmake.py b/repos/spack_repo/builtin/build_systems/cached_cmake.py index 834032ee961..1abf3ab3dce 100644 --- a/repos/spack_repo/builtin/build_systems/cached_cmake.py +++ b/repos/spack_repo/builtin/build_systems/cached_cmake.py @@ -107,7 +107,7 @@ def initconfig_compiler_entries(self): spec = self.pkg.spec # Fortran compiler is optional - if "FC" in os.environ: + if "FC" in os.environ and self.spec.satisfies("%fortran"): spack_fc_entry = cmake_cache_path("CMAKE_Fortran_COMPILER", os.environ["FC"]) system_fc_entry = cmake_cache_path( "CMAKE_Fortran_COMPILER", self.spec["fortran"].package.fortran @@ -280,7 +280,7 @@ def initconfig_hardware_entries(self): ] # Provide standard CMake arguments for dependent CachedCMakePackages - if spec.satisfies("^cuda"): + if spec.satisfies("%cuda"): entries.append("#------------------{0}".format("-" * 30)) entries.append("# Cuda") entries.append("#------------------{0}\n".format("-" * 30)) @@ -309,7 +309,7 @@ def initconfig_hardware_entries(self): entries.append("# ROCm") entries.append("#------------------{0}\n".format("-" * 30)) - rocm_root = os.path.dirname(spec["llvm-amdgpu"].prefix) + rocm_root = spec["llvm-amdgpu"].prefix entries.append(cmake_cache_path("ROCM_PATH", rocm_root)) archs = self.spec.variants["amdgpu_target"].value @@ -322,7 +322,7 @@ def initconfig_hardware_entries(self): cmake_cache_filepath("CMAKE_HIP_COMPILER", os.path.join(llvm_bin, "amdclang++")) ) - if spec.satisfies("%gcc"): + if spec.satisfies("%cxx=gcc"): entries.append( cmake_cache_string( "CMAKE_HIP_FLAGS", f"--gcc-toolchain={self.pkg.compiler.prefix}" diff --git a/repos/spack_repo/builtin/build_systems/cargo.py b/repos/spack_repo/builtin/build_systems/cargo.py index 5b80642e4dc..28d13f07a9e 100644 --- a/repos/spack_repo/builtin/build_systems/cargo.py +++ b/repos/spack_repo/builtin/build_systems/cargo.py @@ -4,7 +4,6 @@ from spack.package import ( BuilderWithDefaults, - EnvironmentModifications, PackageBase, Prefix, Spec, @@ -90,9 +89,6 @@ def check_args(self): """Argument for ``cargo test`` during check phase""" return [] - def setup_build_environment(self, env: EnvironmentModifications) -> None: - env.set("CARGO_HOME", self.stage.path) - def build(self, pkg: CargoPackage, spec: Spec, prefix: Prefix) -> None: """Runs ``cargo install`` in the source directory""" with working_dir(self.build_directory): diff --git a/repos/spack_repo/builtin/build_systems/cmake.py b/repos/spack_repo/builtin/build_systems/cmake.py index de6512a1a78..9c2b64f5b2c 100644 --- a/repos/spack_repo/builtin/build_systems/cmake.py +++ b/repos/spack_repo/builtin/build_systems/cmake.py @@ -42,29 +42,11 @@ def _extract_primary_generator(generator): return _primary_generator_extractor.match(generator).group(1) -def _maybe_set_python_hints(pkg: PackageBase, args: List[str]) -> None: - """Set the PYTHON_EXECUTABLE, Python_EXECUTABLE, and Python3_EXECUTABLE CMake variables - if the package has Python as build or link dep and ``find_python_hints`` is set to True. See - ``find_python_hints`` for context.""" - if not getattr(pkg, "find_python_hints", False) or not pkg.spec.dependencies( - "python", deptype=("build", "link") - ): - return - python_executable = pkg.spec["python"].command.path - args.extend( - [ - define("PYTHON_EXECUTABLE", python_executable), - define("Python_EXECUTABLE", python_executable), - define("Python3_EXECUTABLE", python_executable), - ] - ) - - def _supports_compilation_databases(pkg: PackageBase) -> bool: """Check if this package (and CMake) can support compilation databases.""" # CMAKE_EXPORT_COMPILE_COMMANDS only exists for CMake >= 3.5 - if not pkg.spec.satisfies("^cmake@3.5:"): + if not pkg.spec.satisfies("%cmake@3.5:"): return False # CMAKE_EXPORT_COMPILE_COMMANDS is only implemented for Makefile and Ninja generators @@ -172,6 +154,9 @@ class CMakePackage(PackageBase): https://cmake.org/cmake/help/latest/ """ + #: List of package names for which CMake argument injection should be disabled + disable_cmake_hints_from: List[str] = [] + #: This attribute is used in UI queries that need to know the build #: system base class build_system_class = "CMakePackage" @@ -179,13 +164,6 @@ class CMakePackage(PackageBase): #: Legacy buildsystem attribute used to deserialize and install old specs default_buildsystem = "cmake" - #: When this package depends on Python and ``find_python_hints`` is set to True, pass the - #: defines {Python3,Python,PYTHON}_EXECUTABLE explicitly, so that CMake locates the right - #: Python in its builtin FindPython3, FindPython, and FindPythonInterp modules. Spack does - #: CMake's job because CMake's modules by default only search for Python versions known at the - #: time of release. - find_python_hints = True - build_system("cmake") with when("build_system=cmake"): @@ -205,7 +183,7 @@ class CMakePackage(PackageBase): variant( "ipo", default=False, - when="^cmake@3.9:", + when="%cmake@3.9:", description="CMake interprocedural optimization", ) @@ -218,6 +196,20 @@ class CMakePackage(PackageBase): depends_on("gmake", type="build", when="generator=make") depends_on("ninja", type="build", when="generator=ninja") + # CMake earlier than 4.1 improperly handles arguments provided to + # the linker when using msvc as a c/cxx compiler and oneapi as a + # fortran compiler https://gitlab.kitware.com/cmake/cmake/-/issues/26005 + # + # Currently in Spack msvc is modeled as both the fortran/cxx compiler + # due to restrictions w/ oneapi on Windows, but in reality, when msvc + # is the fortran compiler, it is utilizing oneapi, and this + # must conflict. + # this should be updated to reflect a oneapi fortran provider + # once oneapi is usable with fortran on Windows + # NOTE: commented out for now because cmake@3 is used in Spack CI + # successfully with %fortran=msvc. + # depends_on("cmake@4.1:", type="build", when="%cxx=msvc %fortran=msvc") + def flags_to_build_system_args(self, flags): """Return a list of all command line arguments to pass the specified compiler flags to cmake. Note CMAKE does not have a cppflags option, @@ -393,7 +385,25 @@ def std_args(pkg: PackageBase, generator: Optional[str] = None) -> List[str]: ) _conditional_cmake_defaults(pkg, args) - _maybe_set_python_hints(pkg, args) + + # Append extra hint/option arguments from dependencies + # TODO: Consider properties from virtual packages like Mpi + disable_cmake_hints_from = getattr(pkg, "disable_cmake_hints_from", []) + for dep in pkg.spec.edges_to_dependencies(): + # Skip packages without the callback + dep_pkg = dep.spec.package + if not hasattr(dep_pkg, "dependent_cmake_args"): + continue + + # Skip disabled dependency cmake args + if dep_pkg.name in disable_cmake_hints_from: + continue + + # Skip disabled virtual dependency cmake args + if any(v in disable_cmake_hints_from for v in dep.virtuals): + continue + + args.extend(dep_pkg.dependent_cmake_args(pkg.spec)) return args @@ -599,7 +609,7 @@ def define_hip_architectures(pkg: PackageBase) -> str: not set. """ - if "amdgpu_target" in pkg.spec.variants and pkg.spec.satisfies("^cmake@3.21:"): + if "amdgpu_target" in pkg.spec.variants and pkg.spec.satisfies("%cmake@3.21:"): return define("CMAKE_HIP_ARCHITECTURES", pkg.spec.variants["amdgpu_target"].value) return "" @@ -614,6 +624,6 @@ def define_cuda_architectures(pkg: PackageBase) -> str: This method is no-op for cmake<3.18 and when ``cuda_arch`` variant is not set. """ - if "cuda_arch" in pkg.spec.variants and pkg.spec.satisfies("^cmake@3.18:"): + if "cuda_arch" in pkg.spec.variants and pkg.spec.satisfies("%cmake@3.18:"): return define("CMAKE_CUDA_ARCHITECTURES", pkg.spec.variants["cuda_arch"].value) return "" diff --git a/repos/spack_repo/builtin/build_systems/cuda.py b/repos/spack_repo/builtin/build_systems/cuda.py index a6b0b2ddef6..4425811f669 100644 --- a/repos/spack_repo/builtin/build_systems/cuda.py +++ b/repos/spack_repo/builtin/build_systems/cuda.py @@ -53,6 +53,9 @@ class CudaPackage(PackageBase): "103", "103a", "103f", + "110", + "110a", + "110f", "120", "120a", "120f", @@ -89,8 +92,8 @@ def cuda_flags(arch_list): def compute_capabilities(arch_list: Iterable[str]) -> List[str]: """Adds a decimal place to each CUDA arch. - >>> compute_capabilities(['90', '90a']) - ['9.0', '9.0a'] + >>> compute_capabilities(['90', '90a', '100f']) + ['9.0', '9.0a', '10.0f'] Args: arch_list: A list of integer strings, optionally followed by a suffix. @@ -128,17 +131,18 @@ def compute_capabilities(arch_list: Iterable[str]) -> List[str]: depends_on("cuda@6.5:11.8", when="cuda_arch=37") # Maxwell support: - depends_on("cuda@6.0:", when="cuda_arch=50") - depends_on("cuda@6.5:", when="cuda_arch=52") - depends_on("cuda@6.5:", when="cuda_arch=53") + depends_on("cuda@6.0:12.9", when="cuda_arch=50") + depends_on("cuda@6.5:12.9", when="cuda_arch=52") + depends_on("cuda@6.5:12.9", when="cuda_arch=53") # Pascal support: - depends_on("cuda@8.0:", when="cuda_arch=60") - depends_on("cuda@8.0:", when="cuda_arch=61") - depends_on("cuda@8.0:", when="cuda_arch=62") + depends_on("cuda@8.0:12.9", when="cuda_arch=60") + depends_on("cuda@8.0:12.9", when="cuda_arch=61") + depends_on("cuda@8.0:12.9", when="cuda_arch=62") # Volta support: - depends_on("cuda@9.0:", when="cuda_arch=70") + depends_on("cuda@9.0:12.9", when="cuda_arch=70") + # Turing support: depends_on("cuda@9.0:", when="cuda_arch=72") depends_on("cuda@10.0:", when="cuda_arch=75") @@ -157,16 +161,21 @@ def compute_capabilities(arch_list: Iterable[str]) -> List[str]: # Blackwell support: depends_on("cuda@12.8:", when="cuda_arch=100") depends_on("cuda@12.8:", when="cuda_arch=100a") - depends_on("cuda@12.8:", when="cuda_arch=101") - depends_on("cuda@12.8:", when="cuda_arch=101a") - depends_on("cuda@12.8:", when="cuda_arch=120") - depends_on("cuda@12.8:", when="cuda_arch=120a") depends_on("cuda@12.9:", when="cuda_arch=100f") - depends_on("cuda@12.9:", when="cuda_arch=101f") - depends_on("cuda@12.9:", when="cuda_arch=120f") depends_on("cuda@12.9:", when="cuda_arch=103") depends_on("cuda@12.9:", when="cuda_arch=103a") depends_on("cuda@12.9:", when="cuda_arch=103f") + # Compute Capability 101 was renamed to 110 in CUDA 13 + depends_on("cuda@12.8:12.9", when="cuda_arch=101") + depends_on("cuda@12.8:12.9", when="cuda_arch=101a") + depends_on("cuda@12.9", when="cuda_arch=101f") + depends_on("cuda@13.0:", when="cuda_arch=110") + depends_on("cuda@13.0:", when="cuda_arch=110a") + depends_on("cuda@13.0:", when="cuda_arch=110f") + + depends_on("cuda@12.8:", when="cuda_arch=120") + depends_on("cuda@12.8:", when="cuda_arch=120a") + depends_on("cuda@12.9:", when="cuda_arch=120f") depends_on("cuda@12.9:", when="cuda_arch=121") depends_on("cuda@12.9:", when="cuda_arch=121a") depends_on("cuda@12.9:", when="cuda_arch=121f") @@ -178,16 +187,16 @@ def compute_capabilities(arch_list: Iterable[str]) -> List[str]: # Linux x86_64 compiler conflicts from here: # https://gist.github.com/ax3l/9489132 - with when("^cuda~allow-unsupported-compilers"): + with when("+cuda %cuda~allow-unsupported-compilers"): # GCC # According to # https://github.com/spack/spack/pull/25054#issuecomment-886531664 # these conflicts are valid independently from the architecture # minimum supported versions - conflicts("%gcc@:4", when="+cuda ^cuda@11.0:") - conflicts("%gcc@:5", when="+cuda ^cuda@11.4:") - conflicts("%clang@:6", when="+cuda ^cuda@12.2:") + conflicts("%gcc@:4", when="%cuda@11.0:") + conflicts("%gcc@:5", when="%cuda@11.4:") + conflicts("%clang@:6", when="%cuda@12.2:") # maximum supported version # NOTE: @@ -195,41 +204,44 @@ def compute_capabilities(arch_list: Iterable[str]) -> List[str]: # it has been decided to use an upper bound for the latest version. # This implies that the last one in the list has to be updated at # each release of a new cuda minor version. - conflicts("%gcc@10:", when="+cuda ^cuda@:11.0") - conflicts("%gcc@11:", when="+cuda ^cuda@:11.4.0") - conflicts("%gcc@11.2:", when="+cuda ^cuda@:11.5") - conflicts("%gcc@12:", when="+cuda ^cuda@:11.8") - conflicts("%gcc@13:", when="+cuda ^cuda@:12.3") - conflicts("%gcc@14:", when="+cuda ^cuda@:12.6") - conflicts("%gcc@15:", when="+cuda ^cuda@:12.9") - conflicts("%clang@12:", when="+cuda ^cuda@:11.4.0") - conflicts("%clang@13:", when="+cuda ^cuda@:11.5") - conflicts("%clang@14:", when="+cuda ^cuda@:11.7") - conflicts("%clang@15:", when="+cuda ^cuda@:12.0") - conflicts("%clang@16:", when="+cuda ^cuda@:12.1") - conflicts("%clang@17:", when="+cuda ^cuda@:12.3") - conflicts("%clang@18:", when="+cuda ^cuda@:12.5") - conflicts("%clang@19:", when="+cuda ^cuda@:12.6") - conflicts("%clang@20:", when="+cuda ^cuda@:12.9") + conflicts("%gcc@10:", when="%cuda@:11.0") + conflicts("%gcc@11:", when="%cuda@:11.4.0") + conflicts("%gcc@11.2:", when="%cuda@:11.5") + conflicts("%gcc@12:", when="%cuda@:11.8") + 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.3") + conflicts("%clang@12:", when="%cuda@:11.4.0") + conflicts("%clang@13:", when="%cuda@:11.5") + conflicts("%clang@14:", when="%cuda@:11.7") + conflicts("%clang@15:", when="%cuda@:12.0") + conflicts("%clang@16:", when="%cuda@:12.1") + conflicts("%clang@17:", when="%cuda@:12.3") + 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.0") + conflicts("%clang@22:", when="%cuda@:13.3") # https://gist.github.com/ax3l/9489132#gistcomment-3860114 - conflicts("%gcc@10", when="+cuda ^cuda@:11.4.0") - conflicts("%gcc@5:", when="+cuda ^cuda@:7.5 target=x86_64:") - conflicts("%gcc@6:", when="+cuda ^cuda@:8 target=x86_64:") - conflicts("%gcc@7:", when="+cuda ^cuda@:9.1 target=x86_64:") - conflicts("%gcc@8:", when="+cuda ^cuda@:10.0.130 target=x86_64:") - conflicts("%gcc@9:", when="+cuda ^cuda@:10.2.89 target=x86_64:") - conflicts("%clang@:3.4", when="+cuda ^cuda@:7.5 target=x86_64:") - conflicts("%clang@:3.7,4:", when="+cuda ^cuda@8.0:9.0 target=x86_64:") - conflicts("%clang@:3.7,4.1:", when="+cuda ^cuda@9.1 target=x86_64:") - conflicts("%clang@:3.7,5.1:", when="+cuda ^cuda@9.2 target=x86_64:") - conflicts("%clang@:3.7,6.1:", when="+cuda ^cuda@10.0.130 target=x86_64:") - conflicts("%clang@:3.7,7.1:", when="+cuda ^cuda@10.1.105 target=x86_64:") - conflicts("%clang@:3.7,8.1:", when="+cuda ^cuda@10.1.105:10.1.243 target=x86_64:") - conflicts("%clang@:3.2,9:", when="+cuda ^cuda@10.2.89 target=x86_64:") - conflicts("%clang@:5", when="+cuda ^cuda@11.0.2: target=x86_64:") - conflicts("%clang@10:", when="+cuda ^cuda@:11.0.3 target=x86_64:") - conflicts("%clang@11:", when="+cuda ^cuda@:11.1.0 target=x86_64:") + conflicts("%gcc@10", when="%cuda@:11.4.0") + conflicts("%gcc@5:", when="%cuda@:7.5 target=x86_64:") + conflicts("%gcc@6:", when="%cuda@:8 target=x86_64:") + conflicts("%gcc@7:", when="%cuda@:9.1 target=x86_64:") + conflicts("%gcc@8:", when="%cuda@:10.0.130 target=x86_64:") + conflicts("%gcc@9:", when="%cuda@:10.2.89 target=x86_64:") + conflicts("%clang@:3.4", when="%cuda@:7.5 target=x86_64:") + conflicts("%clang@:3.7,4:", when="%cuda@8.0:9.0 target=x86_64:") + conflicts("%clang@:3.7,4.1:", when="%cuda@9.1 target=x86_64:") + conflicts("%clang@:3.7,5.1:", when="%cuda@9.2 target=x86_64:") + conflicts("%clang@:3.7,6.1:", when="%cuda@10.0.130 target=x86_64:") + conflicts("%clang@:3.7,7.1:", when="%cuda@10.1.105 target=x86_64:") + conflicts("%clang@:3.7,8.1:", when="%cuda@10.1.105:10.1.243 target=x86_64:") + conflicts("%clang@:3.2,9:", when="%cuda@10.2.89 target=x86_64:") + conflicts("%clang@:5", when="%cuda@11.0.2: target=x86_64:") + conflicts("%clang@10:", when="%cuda@:11.0.3 target=x86_64:") + conflicts("%clang@11:", when="%cuda@:11.1.0 target=x86_64:") # x86_64 vs. ppc64le differ according to NVidia docs # Linux ppc64le compiler conflicts from Table from the docs below: @@ -240,49 +252,50 @@ def compute_capabilities(arch_list: Iterable[str]) -> List[str]: # https://docs.nvidia.com/cuda/archive/8.0/cuda-installation-guide-linux/index.html # information prior to CUDA 9 difficult to find - conflicts("%gcc@6:", when="+cuda ^cuda@:9 target=ppc64le:") - conflicts("%gcc@8:", when="+cuda ^cuda@:10.0.130 target=ppc64le:") - conflicts("%gcc@9:", when="+cuda ^cuda@:10.1.243 target=ppc64le:") + conflicts("%gcc@6:", when="%cuda@:9 target=ppc64le:") + conflicts("%gcc@8:", when="%cuda@:10.0.130 target=ppc64le:") + conflicts("%gcc@9:", when="%cuda@:10.1.243 target=ppc64le:") # officially, CUDA 11.0.2 only supports the system GCC 8.3 on ppc64le - conflicts("%clang@4:", when="+cuda ^cuda@:9.0.176 target=ppc64le:") - conflicts("%clang@5:", when="+cuda ^cuda@:9.1 target=ppc64le:") - conflicts("%clang@6:", when="+cuda ^cuda@:9.2 target=ppc64le:") - conflicts("%clang@7:", when="+cuda ^cuda@10.0.130 target=ppc64le:") - conflicts("%clang@7.1:", when="+cuda ^cuda@:10.1.105 target=ppc64le:") - conflicts("%clang@8.1:", when="+cuda ^cuda@:10.2.89 target=ppc64le:") - conflicts("%clang@:5", when="+cuda ^cuda@11.0.2: target=ppc64le:") - conflicts("%clang@10:", when="+cuda ^cuda@:11.0.2 target=ppc64le:") - conflicts("%clang@11:", when="+cuda ^cuda@:11.1.0 target=ppc64le:") + conflicts("%clang@4:", when="%cuda@:9.0.176 target=ppc64le:") + conflicts("%clang@5:", when="%cuda@:9.1 target=ppc64le:") + conflicts("%clang@6:", when="%cuda@:9.2 target=ppc64le:") + conflicts("%clang@7:", when="%cuda@10.0.130 target=ppc64le:") + conflicts("%clang@7.1:", when="%cuda@:10.1.105 target=ppc64le:") + conflicts("%clang@8.1:", when="%cuda@:10.2.89 target=ppc64le:") + conflicts("%clang@:5", when="%cuda@11.0.2: target=ppc64le:") + conflicts("%clang@10:", when="%cuda@:11.0.2 target=ppc64le:") + conflicts("%clang@11:", when="%cuda@:11.1.0 target=ppc64le:") # Intel is mostly relevant for x86_64 Linux, even though it also # exists for Mac OS X. No information prior to CUDA 3.2 or Intel 11.1 - conflicts("%intel@:11.0", when="+cuda ^cuda@:3.1") - conflicts("%intel@:12.0", when="+cuda ^cuda@5.5:") - conflicts("%intel@:13.0", when="+cuda ^cuda@6.0:") - conflicts("%intel@:13.2", when="+cuda ^cuda@6.5:") - conflicts("%intel@:14.9", when="+cuda ^cuda@7:") + conflicts("%intel@:11.0", when="%cuda@:3.1") + conflicts("%intel@:12.0", when="%cuda@5.5:") + conflicts("%intel@:13.0", when="%cuda@6.0:") + conflicts("%intel@:13.2", when="%cuda@6.5:") + conflicts("%intel@:14.9", when="%cuda@7:") # Intel 15.x is compatible with CUDA 7 thru current CUDA - conflicts("%intel@16.0:", when="+cuda ^cuda@:8.0.43") - conflicts("%intel@17.0:", when="+cuda ^cuda@:8.0.60") - conflicts("%intel@18.0:", when="+cuda ^cuda@:9.9") - conflicts("%intel@19.0:", when="+cuda ^cuda@:10.0") - conflicts("%intel@19.1:", when="+cuda ^cuda@:10.1") - conflicts("%intel@19.2:", when="+cuda ^cuda@:11.1.0") - conflicts("%intel@2021:", when="+cuda ^cuda@:11.4.0") + conflicts("%intel@16.0:", when="%cuda@:8.0.43") + conflicts("%intel@17.0:", when="%cuda@:8.0.60") + conflicts("%intel@18.0:", when="%cuda@:9.9") + conflicts("%intel@19.0:", when="%cuda@:10.0") + conflicts("%intel@19.1:", when="%cuda@:10.1") + conflicts("%intel@19.2:", when="%cuda@:11.1.0") + conflicts("%intel@2021:", when="%cuda@:11.4.0") + conflicts("%intel", when="%cuda@13.0:") # ARM # https://github.com/spack/spack/pull/39666#issuecomment-2377609263 # Might need to be expanded to other gcc versions - conflicts("%gcc@13.2.0", when="+cuda ^cuda@:12.4 target=aarch64:") + conflicts("%gcc@13.2.0", when="%cuda@:12.4 target=aarch64:") # XL is mostly relevant for ppc64le Linux - conflicts("%xl@:12,14:", when="+cuda ^cuda@:9.1") - conflicts("%xl@:12,14:15,17:", when="+cuda ^cuda@9.2") - conflicts("%xl@:12,17:", when="+cuda ^cuda@:11.1.0") + conflicts("%xl@:12,14:", when="%cuda@:9.1") + conflicts("%xl@:12,14:15,17:", when="%cuda@9.2") + conflicts("%xl@:12,17:", when="%cuda@:11.1.0") # PowerPC. - conflicts("target=ppc64le", when="+cuda ^cuda@12.5:") + conflicts("target=ppc64le", when="%cuda@12.5:") # Darwin. # TODO: add missing conflicts for %apple-clang cuda@:10 - conflicts("platform=darwin", when="+cuda ^cuda@11.0.2:") + conflicts("platform=darwin", when="%cuda@11.0.2:") diff --git a/repos/spack_repo/builtin/build_systems/gnu.py b/repos/spack_repo/builtin/build_systems/gnu.py index ca207735b0f..b4ca058a429 100644 --- a/repos/spack_repo/builtin/build_systems/gnu.py +++ b/repos/spack_repo/builtin/build_systems/gnu.py @@ -30,5 +30,5 @@ def urls(self): def _ensure_gnu_mirror_path_is_set_or_raise(self): if self.gnu_mirror_path is None: cls_name = type(self).__name__ - msg = "{0} must define a `gnu_mirror_path` attribute" " [none defined]" + msg = "{0} must define a `gnu_mirror_path` attribute [none defined]" raise AttributeError(msg.format(cls_name)) diff --git a/repos/spack_repo/builtin/build_systems/go.py b/repos/spack_repo/builtin/build_systems/go.py index e7633c7313c..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, @@ -12,7 +14,6 @@ depends_on, execute_install_time_tests, install, - join_path, mkdirp, register_builder, run_after, @@ -65,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", @@ -74,39 +78,52 @@ class GoBuilder(BuilderWithDefaults): #: Callback names for install-time test install_time_test_callbacks = ["check"] - def setup_build_environment(self, env: EnvironmentModifications) -> None: - env.set("GO111MODULE", "on") - env.set("GOTOOLCHAIN", "local") - env.set("GOPATH", join_path(self.pkg.stage.path, "go")) - @property def build_directory(self): """Return the directory containing the main go.mod.""" 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 [] + def setup_build_environment(self, env: EnvironmentModifications) -> None: + """Setup build environment variables""" + # Enable CGO functionality if a package directly depends on a C compiler + env.set("CGO_ENABLED", "1" if self.spec.satisfies("%c") else "0") + 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/build_systems/lua.py b/repos/spack_repo/builtin/build_systems/lua.py index 329f6f19d54..3820dc35975 100644 --- a/repos/spack_repo/builtin/build_systems/lua.py +++ b/repos/spack_repo/builtin/build_systems/lua.py @@ -63,7 +63,10 @@ class LuaBuilder(Builder): package_attributes = () def unpack(self, pkg: LuaPackage, spec: Spec, prefix: Prefix) -> None: - if os.path.splitext(pkg.stage.archive_file)[1] == ".rock": + if ( + pkg.stage.archive_file is not None + and os.path.splitext(pkg.stage.archive_file)[1] == ".rock" + ): directory = pkg.luarocks("unpack", pkg.stage.archive_file, output=str) dirlines = directory.split("\n") # TODO: figure out how to scope this better @@ -87,9 +90,7 @@ def generate_luarocks_config(self, pkg: LuaPackage, spec: Spec, prefix: Prefix) rocks_trees={{ {} }} - """.format( - "\n".join(table_entries) - ) + """.format("\n".join(table_entries)) ) def preprocess(self, pkg: LuaPackage, spec: Spec, prefix: Prefix) -> None: diff --git a/repos/spack_repo/builtin/build_systems/meson.py b/repos/spack_repo/builtin/build_systems/meson.py index d6b6dd09dc1..1920d581267 100644 --- a/repos/spack_repo/builtin/build_systems/meson.py +++ b/repos/spack_repo/builtin/build_systems/meson.py @@ -64,7 +64,7 @@ class MesonPackage(PackageBase): # when setuptools is in PYTHONPATH; it has to be in system site-packages. In a future meson # release, the distutils requirement will be dropped, so this conflict can be relaxed. # We have patches to make it work with meson 1.1 and above. - conflicts("^python@3.12:", when="^meson@:1.0") + conflicts("^python@3.12:", when="%meson@:1.0") def flags_to_build_system_args(self, flags): """Produces a list of all command line arguments to pass the specified diff --git a/repos/spack_repo/builtin/build_systems/oneapi.py b/repos/spack_repo/builtin/build_systems/oneapi.py index 9be9023245a..f46aed69e50 100644 --- a/repos/spack_repo/builtin/build_systems/oneapi.py +++ b/repos/spack_repo/builtin/build_systems/oneapi.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) """Common utilities for managing intel oneapi packages.""" + import os import platform import shutil @@ -15,6 +16,7 @@ LibraryList, LinkTree, conflicts, + depends_on, find_libraries, get_user, join_path, @@ -22,6 +24,7 @@ mkdirp, redistribute, shared_library_suffix, + symlink, tty, variant, ) @@ -58,8 +61,8 @@ class IntelOneApiPackage(Package): def update_description(cls): """Updates oneapi package descriptions with common text.""" - text = """ LICENSE INFORMATION: By downloading and using this software, you agree to the terms - and conditions of the software license agreements at https://intel.ly/393CijO.""" + text = """ LICENSE INFORMATION: By downloading and using this software, you agree to the + terms and conditions of the software license agreements at https://intel.ly/393CijO.""" cls.__doc__ = cls.__doc__ + text return cls @@ -180,7 +183,7 @@ def symlink_dir(self, src, dest): link_tree = LinkTree(src_path) link_tree.merge(dest_path) else: - os.symlink(src_path, dest_path) + symlink(src_path, dest_path) class IntelOneApiLibraryPackage(IntelOneApiPackage): @@ -189,9 +192,15 @@ class IntelOneApiLibraryPackage(IntelOneApiPackage): Contains some convenient default implementations for libraries. Implement the method directly in the package if something different is needed. - """ + # HFP: for the time being, this package queries + # - compiler for its library path + # - spec about C-compiler + # Depending on a lanaguage seem to enable above. + # + depends_on("c", type="build") + def openmp_libs(self): """Supply LibraryList for linking OpenMP""" @@ -218,10 +227,9 @@ def openmp_libs(self): ) # query the compiler for the library path - with self.compiler.compiler_environment(): - omp_lib_path = Executable(self.compiler.cc)( - "--print-file-name", f"{libname}.{shared_library_suffix(self.spec)}", output=str - ).strip() + omp_lib_path = Executable(self.compiler.cc)( + "--print-file-name", f"{libname}.{shared_library_suffix(self.spec)}", output=str + ).strip() # Newer versions of clang do not give the full path to libomp. If that's # the case, look in a path relative to the compiler where libomp is @@ -286,7 +294,7 @@ def libs(self): return find_libraries("*", self.component_prefix.sdk.lib64) -class IntelOneApiStaticLibraryList: +class IntelOneApiStaticLibraryList(LibraryList): """Provides ld_flags when static linking is needed Oneapi puts static and dynamic libraries in the same directory, so diff --git a/repos/spack_repo/builtin/build_systems/python.py b/repos/spack_repo/builtin/build_systems/python.py index d0847cbdd9c..a3ec26c3f9d 100644 --- a/repos/spack_repo/builtin/build_systems/python.py +++ b/repos/spack_repo/builtin/build_systems/python.py @@ -2,8 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import functools -import operator import os import re import shutil @@ -15,25 +13,24 @@ ClassProperty, HeaderList, LibraryList, - NoHeadersError, - NoLibrariesError, PackageBase, Prefix, Spec, build_system, classproperty, depends_on, + determine_number_of_jobs, execute_install_time_tests, extends, filter_file, find, - find_all_headers, - find_all_libraries, + get_effective_jobs, has_shebang, join_path, path_contains_subdirectory, register_builder, run_after, + symlink, test_part, tty, when, @@ -163,7 +160,7 @@ def add_files_to_view(self, view, merge_map, skip_if_exists=True): continue # If it's executable and has a shebang, copy and patch it. - if (s.st_mode & 0b111) and has_shebang(src): + if (s.st_mode & (stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)) and has_shebang(src): copied_files[(s.st_dev, s.st_ino)] = dst shutil.copy2(src, dst) filter_file( @@ -180,7 +177,7 @@ def add_files_to_view(self, view, merge_map, skip_if_exists=True): except (OSError, KeyError): target = None if target: - os.symlink(os.path.relpath(target, os.path.dirname(dst)), dst) + symlink(os.path.relpath(target, os.path.dirname(dst)), dst) else: view.link(src, dst, spec=self.spec) @@ -190,14 +187,19 @@ def test_imports(self) -> None: # Make sure we are importing the installed modules, # not the ones in the source directory python = self.module.python - for module in self.import_modules: - with test_part( - self, - f"test_imports_{module}", - purpose=f"checking import of {module}", - work_dir="spack-test", - ): - python("-c", f"import {module}") + with test_part(self, "test_imports", purpose="checking imports", work_dir="spack-test"): + python( + "-c", + """ +import importlib +import sys + +for module in sys.argv[1:]: + print(module) + importlib.import_module(module) +""", + *self.import_modules, + ) def _homepage(cls: "PythonPackage") -> Optional[str]: @@ -258,46 +260,11 @@ def python_spec(self) -> Spec: @property def headers(self) -> HeaderList: - """Discover header files in platlib.""" - - # Remove py- prefix in package name - name = self.spec.name[3:] - - # Headers should only be in include or platlib, but no harm in checking purelib too - include = self.prefix.join(self.spec["python"].package.include).join(name) - python = self.python_spec - platlib = self.prefix.join(python.package.platlib).join(name) - purelib = self.prefix.join(python.package.purelib).join(name) - - headers_list = map(find_all_headers, [include, platlib, purelib]) - headers = functools.reduce(operator.add, headers_list) - - if headers: - return headers - - msg = "Unable to locate {} headers in {}, {}, or {}" - raise NoHeadersError(msg.format(self.spec.name, include, platlib, purelib)) + return HeaderList([]) @property def libs(self) -> LibraryList: - """Discover libraries in platlib.""" - - # Remove py- prefix in package name - name = self.spec.name[3:] - - # Libraries should only be in platlib, but no harm in checking purelib too - python = self.python_spec - platlib = self.prefix.join(python.package.platlib).join(name) - purelib = self.prefix.join(python.package.purelib).join(name) - - libs_list = map(functools.partial(find_all_libraries, recursive=True), [platlib, purelib]) - libs = functools.reduce(operator.add, libs_list) - - if libs: - return libs - - msg = "Unable to recursively locate {} libraries in {} or {}" - raise NoLibrariesError(msg.format(self.spec.name, platlib, purelib)) + return LibraryList([]) @register_builder("python_pip") @@ -353,7 +320,7 @@ def build_directory(self) -> str: """ return self.pkg.stage.source_path - def config_settings(self, spec: Spec, prefix: Prefix) -> Mapping[str, object]: + def config_settings(self, spec: Spec, prefix: Prefix) -> Dict[str, object]: """Configuration settings to be passed to the PEP 517 build backend. Requires pip 22.1 or newer for keys that appear only a single time, @@ -403,8 +370,18 @@ def install(self, pkg: PythonPackage, spec: Spec, prefix: Prefix) -> None: pip.add_default_arg("-m", "pip") args = PythonPipBuilder.std_args(pkg) + [f"--prefix={prefix}"] - - for setting in _flatten_dict(self.config_settings(spec, prefix)): + config_settings = self.config_settings(spec, prefix) + + # Pass -jN for compile-args if supported and needed + if spec.satisfies("%py-pip@22.1: %py-meson-python@0.11:"): + # get_effective_jobs returns None when a jobserver is active, then we don't pass -j. + jobs = get_effective_jobs( + jobs=determine_number_of_jobs(parallel=pkg.parallel), supports_jobserver=True + ) + if jobs is not None: + config_settings["compile-args"] = f"-j{jobs}" + + for setting in _flatten_dict(config_settings): args.append(f"--config-settings={setting}") for option in self.install_options(spec, prefix): args.append(f"--install-option={option}") diff --git a/repos/spack_repo/builtin/build_systems/r.py b/repos/spack_repo/builtin/build_systems/r.py index 0aa15a53533..759a14b4f97 100644 --- a/repos/spack_repo/builtin/build_systems/r.py +++ b/repos/spack_repo/builtin/build_systems/r.py @@ -1,9 +1,9 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from typing import Optional, Tuple +from typing import List, Optional, Tuple -from spack.package import ClassProperty, classproperty, extends, mkdirp +from spack.package import ClassProperty, classproperty, depends_on, extends, mkdirp from .generic import GenericBuilder, Package @@ -59,15 +59,18 @@ def _homepage(cls: "RPackage") -> Optional[str]: return None -def _url(cls: "RPackage") -> Optional[str]: +def _urls(cls: "RPackage") -> List[str]: if cls.cran: - return f"https://cloud.r-project.org/src/contrib/{cls.cran}_{str(list(cls.versions)[0])}.tar.gz" - return None + return [ + f"https://cran.r-project.org/src/contrib/{cls.cran}_{str(list(cls.versions)[0])}.tar.gz", + f"https://cran.r-project.org/src/contrib/Archive/{cls.cran}/{cls.cran}_{str(list(cls.versions)[0])}.tar.gz", + ] + return [] def _list_url(cls: "RPackage") -> Optional[str]: if cls.cran: - return f"https://cloud.r-project.org/src/contrib/Archive/{cls.cran}/" + return f"https://cran.r-project.org/src/contrib/Archive/{cls.cran}/" return None @@ -100,7 +103,12 @@ class RPackage(Package): extends("r") + # needed for packages that need compiling + depends_on("gmake", type="build", when="%c") + depends_on("gmake", type="build", when="%cxx") + depends_on("gmake", type="build", when="%fortran") + homepage: ClassProperty[Optional[str]] = classproperty(_homepage) - url: ClassProperty[Optional[str]] = classproperty(_url) + urls: ClassProperty[List[str]] = classproperty(_urls) list_url: ClassProperty[Optional[str]] = classproperty(_list_url) git: ClassProperty[Optional[str]] = classproperty(_git) diff --git a/repos/spack_repo/builtin/build_systems/racket.py b/repos/spack_repo/builtin/build_systems/racket.py index 3f2a4f56811..2a931aaef9a 100644 --- a/repos/spack_repo/builtin/build_systems/racket.py +++ b/repos/spack_repo/builtin/build_systems/racket.py @@ -85,7 +85,7 @@ def install(self, pkg: RacketPackage, spec: Spec, prefix: Prefix) -> None: raco = Executable("raco") with working_dir(self.build_directory): parallel = pkg.parallel and ( - not os.environ.get("SPACK_NO_PARALLEL_MAKE", "false").lower() in ("true", "1") + os.environ.get("SPACK_NO_PARALLEL_MAKE", "false").lower() not in ("true", "1") ) name = pkg.racket_name assert name is not None, "Racket package name is not set" diff --git a/repos/spack_repo/builtin/build_systems/rocm.py b/repos/spack_repo/builtin/build_systems/rocm.py index 69840462a43..df23c405ec2 100644 --- a/repos/spack_repo/builtin/build_systems/rocm.py +++ b/repos/spack_repo/builtin/build_systems/rocm.py @@ -75,6 +75,7 @@ # import os +import re from spack.package import ( EnvironmentModifications, @@ -82,6 +83,7 @@ any_combination_of, conflicts, depends_on, + join_path, variant, ) @@ -116,6 +118,7 @@ class ROCmPackage(PackageBase): "gfx940", "gfx941", "gfx942", + "gfx950", "gfx1010", "gfx1011", "gfx1012", @@ -131,6 +134,14 @@ class ROCmPackage(PackageBase): "gfx1101", "gfx1102", "gfx1103", + "gfx1150", + "gfx1151", + "gfx1152", + "gfx1153", + "gfx1200", + "gfx1201", + "gfx1250", + "gfx1251", ) variant("rocm", default=False, description="Enable ROCm support") @@ -203,3 +214,34 @@ def asan_on(self, env: EnvironmentModifications): # conflicts('%gcc@5:', when='+cuda ^cuda@:7.5' + arch_platform) # conflicts('platform=darwin', when='+cuda ^cuda@11.0.2:') # for hip-related limitations. + + +class ROCmLibrary(PackageBase): + """Helpers for detecting ROCm versions from an external installation.""" + + @classmethod + def determine_version(cls, path): + match = re.search(r"rocm-(\d+\.\d+\.\d+)", path) + if match: + return match.group(1) + return cls.version_from_rocm_version_h(path) + + @classmethod + def version_from_rocm_version_h(cls, path): + """Get ROCm version from /include/rocm-core/rocm_version.h""" + path_dir = os.path.dirname(os.path.abspath(path)) + rocm_prefix = os.path.dirname(path_dir) + header = join_path(rocm_prefix, "include", "rocm-core", "rocm_version.h") + if not os.path.isfile(header): + return None + try: + with open(header, encoding="utf-8", errors="replace") as f: + text = f.read() + except OSError: + return None + major_m = re.search(r"^\s*#\s*define\s+ROCM_VERSION_MAJOR\s+(\d+)", text, re.MULTILINE) + minor_m = re.search(r"^\s*#\s*define\s+ROCM_VERSION_MINOR\s+(\d+)", text, re.MULTILINE) + patch_m = re.search(r"^\s*#\s*define\s+ROCM_VERSION_PATCH\s+(\d+)", text, re.MULTILINE) + if not major_m or not minor_m or not patch_m: + return None + return "{0}.{1}.{2}".format(major_m.group(1), minor_m.group(1), patch_m.group(1)) diff --git a/repos/spack_repo/builtin/build_systems/sourceforge.py b/repos/spack_repo/builtin/build_systems/sourceforge.py index 555f1863715..6a97546915e 100644 --- a/repos/spack_repo/builtin/build_systems/sourceforge.py +++ b/repos/spack_repo/builtin/build_systems/sourceforge.py @@ -34,5 +34,5 @@ def urls(self): def _ensure_sourceforge_mirror_path_is_set_or_raise(self): if self.sourceforge_mirror_path is None: cls_name = type(self).__name__ - msg = "{0} must define a `sourceforge_mirror_path` attribute" " [none defined]" + msg = "{0} must define a `sourceforge_mirror_path` attribute [none defined]" raise AttributeError(msg.format(cls_name)) diff --git a/repos/spack_repo/builtin/build_systems/sourceware.py b/repos/spack_repo/builtin/build_systems/sourceware.py index cfbb09a1ceb..b44e90c736d 100644 --- a/repos/spack_repo/builtin/build_systems/sourceware.py +++ b/repos/spack_repo/builtin/build_systems/sourceware.py @@ -30,5 +30,5 @@ def urls(self): def _ensure_sourceware_mirror_path_is_set_or_raise(self): if self.sourceware_mirror_path is None: cls_name = type(self).__name__ - msg = "{0} must define a `sourceware_mirror_path` attribute" " [none defined]" + msg = "{0} must define a `sourceware_mirror_path` attribute [none defined]" raise AttributeError(msg.format(cls_name)) diff --git a/repos/spack_repo/builtin/build_systems/xorg.py b/repos/spack_repo/builtin/build_systems/xorg.py index ee642a112b4..38f12495bce 100644 --- a/repos/spack_repo/builtin/build_systems/xorg.py +++ b/repos/spack_repo/builtin/build_systems/xorg.py @@ -34,5 +34,5 @@ def urls(self): def _ensure_xorg_mirror_path_is_set_or_raise(self): if self.xorg_mirror_path is None: cls_name = type(self).__name__ - msg = "{0} must define a `xorg_mirror_path` attribute" " [none defined]" + msg = "{0} must define a `xorg_mirror_path` attribute [none defined]" raise AttributeError(msg.format(cls_name)) diff --git a/repos/spack_repo/builtin/packages/_4ti2/package.py b/repos/spack_repo/builtin/packages/_4ti2/package.py new file mode 100644 index 00000000000..7139a857823 --- /dev/null +++ b/repos/spack_repo/builtin/packages/_4ti2/package.py @@ -0,0 +1,36 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class _4ti2(AutotoolsPackage): + """4ti2 is a software package for algebraic, geometric, and + combinatorial problems on linear spaces. It provides tools for + working with integer linear systems, Hilbert bases, Graver bases, + Gröbner bases, and related structures that arise in combinatorial + optimization and algebraic geometry.""" + + homepage = "https://4ti2.github.io/" + + maintainers("d-torrance") + + license("GPL-2.0-or-later", checked_by="d-torrance") + + version("1.6.15", sha256="070e639398fda1a4665b3291e5ea80f2ba280d9bffd50656ad8482d471b96965") + version("1.6.14", sha256="1bc340173f93ca4abd30ea962118bd5057fdedf7e79c71d2a0c4cc9569f8b0b1") + version("1.6.13", sha256="f59e1ea5563d2188b0e8ff61a8584845a899e3e54a570305f6f99b26c9b1e6b5") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("glpk") + depends_on("gmp") + + depends_on("which", type="run") + + def url_for_version(self, version): + return f"https://github.com/4ti2/4ti2/releases/download/Release_{version.underscored}/4ti2-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/abacus/package.py b/repos/spack_repo/builtin/packages/abacus/package.py index 31754a92310..17674006ccf 100644 --- a/repos/spack_repo/builtin/packages/abacus/package.py +++ b/repos/spack_repo/builtin/packages/abacus/package.py @@ -16,11 +16,11 @@ class Abacus(MakefilePackage): for large-scale electronic-structure simulations from first principles""" - maintainers("bitllion") - homepage = "http://abacus.ustc.edu.cn/" - git = "https://github.com/abacusmodeling/abacus-develop.git" url = "https://github.com/abacusmodeling/abacus-develop/archive/refs/tags/v2.2.1.tar.gz" + git = "https://github.com/abacusmodeling/abacus-develop.git" + + maintainers("bitllion") license("LGPL-3.0-or-later") @@ -74,13 +74,13 @@ def edit(self, spec, prefix): spec["cereal"].prefix, ) - with open(self.build_directory + "/Makefile.vars", "w") as f: + with open(join_path(self.build_directory, "Makefile.vars"), "w") as f: f.write(tempInc) lineList = [] Pattern1 = re.compile("^ELPA_INCLUDE_DIR") Pattern2 = re.compile("^ELPA_LIB\\s*= ") - with open(self.build_directory + "/Makefile.system", "r") as f: + with open(join_path(self.build_directory, "Makefile.system"), "r") as f: while True: line = f.readline() if not line: @@ -91,11 +91,11 @@ def edit(self, spec, prefix): pass else: lineList.append(line) - with open(self.build_directory + "/Makefile.system", "w") as f: + with open(join_path(self.build_directory, "Makefile.system"), "w") as f: for i in lineList: f.write(i) - with open(self.build_directory + "/Makefile.system", "a") as f: + with open(join_path(self.build_directory, "Makefile.system"), "a") as f: f.write(system_var) def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/abinit/fix_for_gcc15_stdbool.patch b/repos/spack_repo/builtin/packages/abinit/fix_for_gcc15_stdbool.patch new file mode 100644 index 00000000000..905fa619710 --- /dev/null +++ b/repos/spack_repo/builtin/packages/abinit/fix_for_gcc15_stdbool.patch @@ -0,0 +1,24 @@ +diff --git a/shared/common/src/17_yaml_out/c_pair_list.c b/shared/common/src/17_yaml_out/c_pair_list.c +index e7a5927ff3..4db66be395 100644 +--- a/shared/common/src/17_yaml_out/c_pair_list.c ++++ b/shared/common/src/17_yaml_out/c_pair_list.c +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + + #include "abi_clib.h" + +@@ -26,8 +27,6 @@ + #define TC_REAL 1 + #define TC_STRING 2 + +-typedef uint8_t bool; +- + typedef union { + int i; + double r; +-- +2.49.0 + diff --git a/repos/spack_repo/builtin/packages/abinit/package.py b/repos/spack_repo/builtin/packages/abinit/package.py index a01b66d40cf..512d94bb872 100644 --- a/repos/spack_repo/builtin/packages/abinit/package.py +++ b/repos/spack_repo/builtin/packages/abinit/package.py @@ -3,11 +3,13 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage from spack.package import * -class Abinit(AutotoolsPackage): +class Abinit(AutotoolsPackage, CudaPackage, ROCmPackage): """ABINIT is a package whose main program allows one to find the total energy, charge density and electronic structure of systems made of electrons and nuclei (molecules and periodic solids) within @@ -30,6 +32,10 @@ class Abinit(AutotoolsPackage): license("Apache-2.0") maintainers("downloadico") + version("10.6.5", sha256="9ae9b563137e08302d830a58a8bc3df2d8d0f78afeca2029b451636651d18f74") + version("10.6.3", sha256="aceefc4289873097bb6b9dc4ec05efd897b9c052eb860746f6d778f4cd14317d") + version("10.4.7", sha256="161c60ef90686c19e0718363eb5a17bfa29494e5fbdc59be45a7342e20349768") + version("10.4.3", sha256="2150ac8472ad570f3cd3fa34c8bc6ac496c6715b319b69e3aa011a555d72d7d7") version("10.2.7", sha256="e0e1049b01b4ebaec29be632cd554caeccb4b2a8acf2e148c8ac505e6b226dc1") version("10.0.9", sha256="17650580295e07895f6c3c4b1f3f0fe0e0f3fea9bab5fd8ce7035b16a62f8e5e") version("10.0.7", sha256="a9fc044b33861b7defd50fafd19a73eb6f225e18ae30b23bc731d9c8009c881c") @@ -51,6 +57,24 @@ class Abinit(AutotoolsPackage): variant("wannier90", default=False, description="Enables the Wannier90 library") variant("libxml2", default=False, description="Enable libxml2 support, used by multibinit") + variant( + "gpu_openmp_offload", + when="@10.4: +openmp", + default=False, + description="Enable OpenMP offload support. Requires CUDA & NVHPC or ROCM & Cray CE", + ) + variant( + "gpu_aware_mpi", + when="@10.4: +mpi+gpu_openmp_offload", + default=True, + description="Enable optimizations for GPU-aware MPI", + ) + variant( + "gpu_markers", + when="@10.4: +gpu_openmp_offload", + default=False, + description="Enable GPU markers, either NVTX for CUDA or rocTX for ROCM", + ) variant( "optimization-flavor", @@ -67,7 +91,7 @@ class Abinit(AutotoolsPackage): depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated - depends_on("atompaw") + depends_on("atompaw", when="@:8") depends_on("blas") depends_on("lapack") @@ -80,6 +104,17 @@ class Abinit(AutotoolsPackage): depends_on("netcdf-fortran") + # Need OpenMP threaded FFTW and BLAS libraries when configured + # with OpenMP support + with when("+openmp"): + requires("^fftw+openmp", when="^[virtuals=fftw-api] fftw") + requires("^amdfftw+openmp", when="^[virtuals=fftw-api] amdfftw") + requires("^openblas threads=openmp", when="^[virtuals=blas] openblas") + requires("^amdblis threads=openmp", when="^[virtuals=blas] amdblis") + requires("^intel-oneapi-mkl threads=openmp", when="^[virtuals=blas] intel-oneapi-mkl") + requires("^armpl-gcc threads=openmp", when="^[virtuals=blas] armpl-gcc") + requires("^acfl threads=openmp", when="^[virtuals=blas] acfl") + with when("+mpi"): depends_on("netcdf-c+mpi") depends_on("hdf5+mpi") @@ -93,13 +128,39 @@ class Abinit(AutotoolsPackage): # Cannot ask for +wannier90 if it does not depend on MPI conflicts("+wannier90") + with when("+rocm"): + depends_on("hipblas+rocm") + depends_on("hipfft+rocm") + depends_on("hipsolver+rocm") + + # Need a MPI provider built with either CUDA or ROCM when configured + # with GPU-aware optimizations + requires( + "^cray-mpich +cuda", + "^mpich +cuda", + "^openmpi+cuda", + when="+gpu_aware_mpi+cuda", + policy="one_of", + msg="'+gpu_aware_mpi +cuda' requires an MPI implementation with CUDA awareness enabled.", + ) + + requires( + "^cray-mpich +rocm", + "^mpich +rocm", + "^openmpi +rocm", + when="+gpu_aware_mpi+rocm", + policy="one_of", + msg="'+gpu_aware_mpi +rocm' requires an MPI implementation with ROCm awareness enabled.", + ) + # constrain version of hdf5 - depends_on("hdf5@:1.8", when="@9:") + depends_on("hdf5@:1.8", when="@9:9.8") + depends_on("hdf5@:1.14", when="@10:") # constrain libxc version depends_on("libxc") depends_on("libxc@:2", when="@:8") - depends_on("libxc@:5", when="@9.8:") + depends_on("libxc+kxc@5:", when="@9.4:") # libxml2 depends_on("libxml2", when="@9:+libxml2") @@ -114,6 +175,58 @@ class Abinit(AutotoolsPackage): conflicts("%gcc@7:", when="@:8.8") conflicts("%gcc@9:", when="@:8.10") + conflicts("%nvhpc", when="@:9.8") + conflicts("%cce", when="@:9.8") + + conflicts( + "+gpu_openmp_offload", + when="~mpi", + msg="ABINIT builds with GPU support require MPI support enabled as well", + ) + conflicts( + "+cuda", + when="~gpu_openmp_offload", + msg="ABINIT builds with GPU support require OpenMP offload support enabled as well", + ) + conflicts( + "+rocm", + when="~gpu_openmp_offload", + msg="ABINIT builds with GPU support require OpenMP offload support enabled as well", + ) + conflicts( + "+cuda", + when="~openmp", + msg="ABINIT builds with GPU support require OpenMP support enabled as well", + ) + conflicts( + "+rocm", + when="~openmp", + msg="ABINIT builds with GPU support require OpenMP support enabled as well", + ) + conflicts("cuda_arch=none", when="+cuda", msg="CUDA architecture is required") + conflicts("amdgpu_target=none", when="+rocm", msg="ROCM architecture is required") + + requires( + "%nvhpc", + "%cce", + when="+gpu_openmp_offload", + policy="one_of", + msg="ABINIT with OpenMP offload builds only with NVHPC or Cray CE", + ) + requires( + "+cuda", + "+rocm", + when="+gpu_openmp_offload", + policy="one_of", + msg="ABINIT with OpenMP offload builds only with CUDA or ROCM", + ) + + # propagate ROCm architecture when +rocm + for arch in ROCmPackage.amdgpu_targets: + depends_on("hipblas+rocm amdgpu_target=%s" % arch, when="+rocm amdgpu_target=%s" % arch) + depends_on("hipfft+rocm amdgpu_target=%s" % arch, when="+rocm amdgpu_target=%s" % arch) + depends_on("hipsolver+rocm amdgpu_target=%s" % arch, when="+rocm amdgpu_target=%s" % arch) + # need openmp threading for abinit+openmp # TODO: The logic here can be reversed with the new concretizer. Instead of # using `conflicts`, `depends_on` could be used instead. @@ -140,6 +253,10 @@ class Abinit(AutotoolsPackage): patch("fix_for_fujitsu.patch", when="@:8 %fj") patch("fix_for_fujitsu.v9.patch", when="@9: %fj") + # Fix obsolete bool typedef (breaks in gcc@15) + # Fixed since 10.4 + patch("fix_for_gcc15_stdbool.patch", when="@9:10.2.7 %gcc@15:") + def configure_args(self): spec = self.spec options = self.with_or_without("libxml2") @@ -204,8 +321,27 @@ def configure_args(self): # Activate OpenMP in Abinit Fortran code. if spec.satisfies("+openmp"): oapp("--enable-openmp=yes") + if spec.satisfies("+gpu_openmp_offload"): + oapp("--enable-openmp-offload=yes") + else: + oapp("--enable-openmp-offload=no") else: oapp("--enable-openmp=no") + oapp("--enable-openmp-offload=no") + + if spec.satisfies("+cuda"): + oapp(f"--with-cuda={spec['cuda'].prefix}") + oapp(f"GPU_ARCH={self.spec.variants['cuda_arch'].value[0]}") + + if spec.satisfies("+rocm"): + oapp(f"--with-rocm={spec['hip'].prefix}") + oapp(f"GPU_ARCH={self.spec.variants['amdgpu_target'].value[0]}") + + if spec.satisfies("+gpu_aware_mpi"): + oapp("--enable-mpi-gpu-aware=yes") + + if spec.satisfies("+gpu_markers"): + oapp("--with-gpu-markers=yes") # BLAS/LAPACK/SCALAPACK-ELPA linalg = spec["lapack"].libs + spec["blas"].libs @@ -222,6 +358,9 @@ def configure_args(self): spec["lapack"].name == "openblas" or spec.satisfies("^fujitsu-ssl2") ): linalg_flavor = "openblas" + # Cray wrapper will set flags for cray-libsci itself so "netlib" is alright here + elif spec["lapack"].name == "cray-libsci": + linalg_flavor = "netlib" else: # If you need to force custom (and not have it as fallback, like now) # you should likely implement a variant to force it, but it seems that diff --git a/repos/spack_repo/builtin/packages/abseil_cpp/package.py b/repos/spack_repo/builtin/packages/abseil_cpp/package.py index 5f4fdecd2df..5073e3d949c 100644 --- a/repos/spack_repo/builtin/packages/abseil_cpp/package.py +++ b/repos/spack_repo/builtin/packages/abseil_cpp/package.py @@ -11,13 +11,16 @@ class AbseilCpp(CMakePackage): """Abseil Common Libraries (C++)""" homepage = "https://abseil.io/" - url = "https://github.com/abseil/abseil-cpp/archive/refs/tags/20211102.0.tar.gz" + url = "https://github.com/abseil/abseil-cpp/archive/refs/tags/20260107.1.tar.gz" maintainers("jcftang") tags = ["windows"] license("Apache-2.0", checked_by="wdconinc") + version( + "20260107.1", sha256="4314e2a7cbac89cac25a2f2322870f343d81579756ceff7f431803c2c9090195" + ) version( "20240722.0", sha256="f50e5ac311a81382da7fa75b97310e4b9006474f9560ac46f54a9967f07d4ae3" ) @@ -83,8 +86,13 @@ class AbseilCpp(CMakePackage): variant( "cxxstd", - values=(conditional("11", when="@:2022"), "14", "17", "20"), - default="14", + values=( + conditional("11", when="@:20220623"), + conditional("14", when="@:20250127"), + "17", + "20", + ), + default="17", description="C++ standard used during compilation", ) @@ -107,3 +115,8 @@ def cmake_args(self): self.define_from_variant("BUILD_SHARED_LIBS", "shared"), self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"), ] + + @property + def libs(self): + shared = self.spec.satisfies("+shared") + return find_libraries("libabsl_*", root=self.prefix, recursive=True, shared=shared) diff --git a/repos/spack_repo/builtin/packages/abyss/package.py b/repos/spack_repo/builtin/packages/abyss/package.py index 8f5554b373d..ee6ef1f1bf5 100644 --- a/repos/spack_repo/builtin/packages/abyss/package.py +++ b/repos/spack_repo/builtin/packages/abyss/package.py @@ -73,8 +73,11 @@ def configure_args(self): f"--with-sqlite={self.spec['sqlite'].prefix}", f"--with-mpi={self.spec['mpi'].prefix}", ] + if maxk: args.append(f"--enable-maxk={maxk}") - if self.spec["mpi"].name == "mpich": + + if self.spec.satisfies("%mpi=mpich"): args.append("--enable-mpich") + return args diff --git a/repos/spack_repo/builtin/packages/acfl/detection_test.yaml b/repos/spack_repo/builtin/packages/acfl/detection_test.yaml index 23fc1930f22..b8452eed0ba 100644 --- a/repos/spack_repo/builtin/packages/acfl/detection_test.yaml +++ b/repos/spack_repo/builtin/packages/acfl/detection_test.yaml @@ -81,3 +81,22 @@ paths: echo "InstalledDir: /usr/bin" platforms: [linux] results: [] + +- layout: # does not detect ATfL + - executables: + - "bin/armclang" + - "bin/armclang++" + script: | + echo "Arm Toolchain for Linux 20.1 clang version 20.1.0" + echo "Target: aarch64--linux-gnu" + echo "Thread model: posix" + echo "InstalledDir: /opt/arm/arm-toolchain-for-linux-20.1/bin" + - executables: + - "bin/armflang" + script: | + echo "Arm Toolchain for Linux 20.1 flang version 20.1.0" + echo "Target: aarch64--linux-gnu" + echo "Thread model: posix" + echo "InstalledDir: /opt/arm/arm-toolchain-for-linux-20.1/bin" + platforms: [linux] + results: [] diff --git a/repos/spack_repo/builtin/packages/ack/package.py b/repos/spack_repo/builtin/packages/ack/package.py index 8467d4f772a..adbd99f3b00 100644 --- a/repos/spack_repo/builtin/packages/ack/package.py +++ b/repos/spack_repo/builtin/packages/ack/package.py @@ -19,6 +19,18 @@ class Ack(Package): license("Artistic-2.0") + version( + "3.9.0", + sha256="b8916abc9d42ebe8cc82264e047ccff5cbc976401e32a3dc6fc01c551c0cb5f8", + url="https://beyondgrep.com/ack-v3.9.0", + expand=False, + ) + version( + "2.28", + sha256="0ab3df19513a2c71aa7901f7f522a5baf72ce69e6e0e34879979f157210734f6", + expand=False, + ) + version( "2.22", sha256="fd0617585b88517a3d41d3d206c1dc38058c57b90dfd88c278049a41aeb5be38", @@ -45,6 +57,8 @@ class Ack(Package): def install(self, spec, prefix): mkdirp(prefix.bin) ack_source = f"ack-{self.version}-single-file" + if spec.satisfies("@3.0.0:"): + ack_source = f"ack-v{self.version}" ack_installed = join_path(prefix.bin, "ack") # install source diff --git a/repos/spack_repo/builtin/packages/acl/package.py b/repos/spack_repo/builtin/packages/acl/package.py index b9adcb69d9b..f65bfc7391a 100644 --- a/repos/spack_repo/builtin/packages/acl/package.py +++ b/repos/spack_repo/builtin/packages/acl/package.py @@ -37,5 +37,5 @@ def flag_handler(self, name, flags): return self.build_system_flags(name, flags) def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/activemq/package.py b/repos/spack_repo/builtin/packages/activemq/package.py index 6dc2118206b..b710d81f563 100644 --- a/repos/spack_repo/builtin/packages/activemq/package.py +++ b/repos/spack_repo/builtin/packages/activemq/package.py @@ -21,23 +21,9 @@ class Activemq(Package): version("6.1.3", sha256="cad14e816e990f1312709ebfc228f42895d8c54c652d3cd56f0b5145635dc794") version("5.18.6", sha256="b1363696e4e014423f6ab22f1ece4bf14ee32b80bfa5bdbae7dd4026a47ff03a") - # https://nvd.nist.gov/vuln/detail/CVE-2023-46604 - version( - "5.17.3", - sha256="a4cc4c3a2f136707c2c696f3bb3ee2a86dbeff1b9eb5e237b14edc0c5e5a328f", - deprecated=True, - ) - # https://nvd.nist.gov/vuln/detail/CVE-2018-11775 - version( - "5.14.0", - sha256="81c623465af277dd50a141a8d9308d6ec8e1b78d9019b845873dc12d117aa9a6", - deprecated=True, - ) - depends_on("cxx", type="build") # generated depends_on("java") - depends_on("java@8:", when="@5.15:") depends_on("java@11:", when="@5.17:") depends_on("java@17:", when="@6:") diff --git a/repos/spack_repo/builtin/packages/acts/package.py b/repos/spack_repo/builtin/packages/acts/package.py index f2810f048f3..7badf672e17 100644 --- a/repos/spack_repo/builtin/packages/acts/package.py +++ b/repos/spack_repo/builtin/packages/acts/package.py @@ -8,6 +8,14 @@ from spack.package import * +# Submodules are only required for ODD +def submodules(package): + submodules = [] + if package is None or package.spec.satisfies("+odd"): + submodules.append("thirdparty/OpenDataDetector") + return submodules + + class Acts(CMakePackage, CudaPackage): """ A Common Tracking Software (Acts) @@ -26,7 +34,7 @@ class Acts(CMakePackage, CudaPackage): measurements. Key features of this project include: tracking geometry description which - can be constructed from TGeo, DD4Hep, or GDML input, simple and efficient + can be constructed from ROOT, DD4Hep, or GDML input, simple and efficient event data model, performant and highly flexible algorithms for track propagation and fitting, basic seed finding algorithms. """ @@ -42,197 +50,49 @@ class Acts(CMakePackage, CudaPackage): # Supported Acts versions version("main", branch="main") - version("master", branch="main", deprecated=True) # For compatibility - version("39.2.0", commit="94cf48783efd713f38106b18211d1c59f4e8cdec", submodules=True) - version("39.1.0", commit="09225b0d0bba24d57a696e347e3027b39404bb75", submodules=True) - version("39.0.0", commit="b055202e2fbdd509bc186eb4782714bc46f38f3f", submodules=True) - version("38.2.0", commit="9cb8f4494656553fd9b85955938b79b2fac4c9b0", submodules=True) - version("38.1.0", commit="8a20c88808f10bf4fcdfd7c6e077f23614c3ab90", submodules=True) - version("38.0.0", commit="0a6b5155e29e3b755bf351b8a76067fff9b4214b", submodules=True) - version("37.4.0", commit="4ae9a44f54c854599d1d753222ec36e0b5b4e9c7", submodules=True) - version("37.3.0", commit="b3e856d4dadcda7d1a88a9b846ce5a7acd8410c4", submodules=True) - version("37.2.0", commit="821144dc40d35b44aee0d7857a0bd1c99e4a3932", submodules=True) - version("37.1.0", commit="fa6ad4d52e0bd09cf8c78507fcbb18e9ac2c87a3", submodules=True) - version("37.0.1", commit="998b9c9dd42d5160c2540f8fa820505869bfdb79", submodules=True) - version("37.0.0", commit="117feaaadc7a2336755274e0cd70ba58a047a1de", submodules=True) - version("36.3.2", commit="01e124d253a3c9c9b9f5d2fde16682ce9d4599cd", submodules=True) - version("36.3.1", commit="b58e5b0c33fb8423ce60a6a45f333edd0d178acd", submodules=True) - version("36.3.0", commit="3b875cebabdd10462e224279558429f49ed75945", submodules=True) - version("36.2.0", commit="e2fb53da911dc481969e56d635898a46b8d78df9", submodules=True) - version("36.1.0", commit="3f19d1a0eec1d11937d66d0ef603f0b25b9b4e96", submodules=True) - version("36.0.0", commit="6eca77c45b136861272694edbb61bb77200948a5", submodules=True) - version("35.2.0", commit="b3b09f46d064c43050dd3d21cdf51d7a412134fc", submodules=True) - version("35.1.0", commit="9dfb47b8edeb8b9c75115462079bcb003dd3f031", submodules=True) - version("35.0.0", commit="352b423ec31934f825deb9897780246d60ffc44e", submodules=True) - version("34.1.0", commit="8e1b7a659d912cd98db9d700906ff59e708da574", submodules=True) - version("34.0.0", commit="daafd83adf0ce50f9667f3c9d4791a459e39fd1b", submodules=True) - version("33.1.0", commit="00591a593a648430820e980b031301d25c18f1c7", submodules=True) - version("33.0.0", commit="f6ed9013e76120137ae456583a04b554d88d9452", submodules=True) - version("32.1.0", commit="5333c67b49b4bfcd45558090e4ba37b4f86b82db", submodules=True) - version("32.0.2", commit="3d23e16a2d0ba68ce5a596ced16883f90de1fae4", submodules=True) - version("32.0.1", commit="6317634ec16eb40e52ca85445a014e378c9a4829", submodules=True) - version("32.0.0", commit="9385e36691bb2687437c39ad02ddb2ac21acccdc", submodules=True) - version("31.2.0", commit="1d2e90f534ff2c9bf1c40914980b426f4b5d3096", submodules=True) - version("31.1.0", commit="95c3ceef79a7b68fcfc7fd558c3134d0c7529dac", submodules=True) - version("31.0.0", commit="2cf3fe0254d2bf9434899fdcfbe316366a970956", submodules=True) - version("30.3.2", commit="76826f208f5929d8326798c87263f2563d0ae7e9", submodules=True) - version("30.3.1", commit="bbee459dd93855417d5717d53cbbb2bace7de2bb", submodules=True) - version("30.3.0", commit="311acb9ab41c2d79a4b90b193e5b25297182d670", submodules=True) - version("30.2.0", commit="264b0a3214cbf8ca013623fc196e2d90d647c58f", submodules=True) - version("30.1.1", commit="3d43492b2775e62051e9ad31f06b91d6e2357ab9", submodules=True) - version("30.1.0", commit="60d9eec916f6c81373858c8d99d821861d7efeb8", submodules=True) - version("30.0.0", commit="00fa3fabac86a1e65198d4b94dd263b1c731a84c", submodules=True) - version("29.2.0", commit="b2d65308399d8f653fa8bdd73a2a203c58608358", submodules=True) - version("29.1.0", commit="4681c3b142db469b00ca03e92e6b237f7c89d141", submodules=True) - version("29.0.0", commit="9c6e4597af39f826e17d46850fdb407a48817ba6", submodules=True) - version("28.2.0", commit="c612e7c625f961330e383fb7856cc7398dd82881", submodules=True) - version("28.1.0", commit="08e51b5f93c0d09f2d1e7e4f062e715072ec3e9b", submodules=True) - version("28.0.0", commit="0d8aa418c00e8f79bab2cf88234f3433670b447c", submodules=True) - version("27.1.0", commit="219480220738318fbedb943cac85415687d75b66", submodules=True) - version("27.0.0", commit="4d7029bd4e9285fcda2770aef6d78a7f833cb14f", submodules=True) - version("26.0.0", commit="d43af5c3bcf44f593721940e569ba267579e0334", submodules=True) - version("25.0.1", commit="1772d2a1a96acfd918a538c14a9e24fe7ce7f50b", submodules=True) - version("25.0.0", commit="c7b538d7b92fe6bffd619de7885b7ea97ddcd26a", submodules=True) - version("24.0.0", commit="4da149cd27ae3802a54f21a48e1757e475aa8189", submodules=True) - version("23.5.0", commit="8fad985ab78ceb9aaec25d1f658197833e4586fa", submodules=True) - version("23.4.0", commit="52723f7e7a2e6f9f59d6d7ca1cf183ca1cd43380", submodules=True) - version("23.3.0", commit="ec3e69da90b9dff52bdbe30cb7953417b6184d4b", submodules=True) - version("23.2.1", commit="a9fe5167d4d3b6b53b28d3b17060a5f3e380cf3a", submodules=True) - version("23.2.0", commit="bc3120d23a72cfdd0ea8f9a0997f59caf311672b", submodules=True) - version("23.1.0", commit="4479f182a37650a538344f749b967d6f757bdf60", submodules=True) - version("23.0.0", commit="5af1b1b5feb8ca8f4c2c69106a1b9ef612c70d9c", submodules=True) - version("22.0.1", commit="a4ac99dd72828c5eb3fac06e146f3391958fca8c", submodules=True) - version("22.0.0", commit="0fb6f8d2ace65338915451201e9ceb6cee11fb5e", submodules=True) - version("21.1.1", commit="8ae825de246e8e574d05d9eaf05ba4a937c69aa9", submodules=True) - version("21.1.0", commit="3b4b5c741c8541491d496a36b917b00b344d52d1", submodules=True) - version("21.0.0", commit="d8cb0fac3a44e1d44595a481f977df9bd70195fb", submodules=True) - version("20.3.0", commit="b1859b322744cb033328fd57d9e74fb5326aa56b", submodules=True) - version("20.2.0", commit="7750c1d24714314e8de716b92ebcd4a92cc4e303", submodules=True) - version("20.1.0", commit="be36226fb1be88d7be7c9b17a1c1f6e76ff0e006", submodules=True) - version("20.0.0", commit="3740e6cdbfb1f75d8e481686acdfa5b16d3c41a3", submodules=True) - version("19.11.0", commit="d56ca2583e55b48e77c853b7c567070d07fc1cae", submodules=True) - version("19.10.0", commit="2d07f60eb2280a46af1085600ec8327679bbb630", submodules=True) - version("19.9.0", commit="b655e18929ae0ccb6926d8e217b1b3fc02978d35", submodules=True) - version("19.8.0", commit="7582072dbaa70802264f20b392de4313afd25667", submodules=True) - version("19.7.0", commit="03cf7a3ae74b632b3f89416dc27cc993c9ae4628", submodules=True) - version("19.6.0", commit="333082914e6a51b381abc1cf52856829e3eb7890", submodules=True) - version("19.5.0", commit="bf9f0270eadd8e78d283557b7c9070b80dece4a7", submodules=True) - version("19.4.0", commit="498af243755219486c26d32fb125b7ebf2557166", submodules=True) - version("19.3.0", commit="747053f60254c5ad3aa1fe7b18ae89c19029f4a6", submodules=True) - version("19.2.0", commit="adf079e0f7e278837093bf53988da73730804e22", submodules=True) - version("19.1.0", commit="82f42a2cc80d4259db251275c09b84ee97a7bd22", submodules=True) - version("19.0.0", commit="1ce9c583150060ba8388051685433899713d56d9", submodules=True) - version("18.0.0", commit="fe03b5af6ca2b092dec87c4cef77dd552bbbe719", submodules=True) - version("17.1.0", commit="0d9c3a6da022da48d6401e10c273896a1f775a9e", submodules=True) - version("17.0.0", commit="ccbf4c7d4ec3698bac4db9687fab2455a3f9c203", submodules=True) - version("16.0.0", commit="9bd86921155e708189417b5a8019add10fd5b273", submodules=True) - version("15.1.0", commit="a96e6db7de6075e85b6d5346bc89845eeb89b324", submodules=True) - version("15.0.1", commit="b9469b8914f6a1bc47af0998eb7c9e8e20e4debc", submodules=True) - version("15.0.0", commit="0fef9e0831a90e946745390882aac871b211eaac", submodules=True) - version("14.1.0", commit="e883ab6acfe5033509ad1c27e8e2ba980dfa59f6", submodules=True) - version("14.0.0", commit="f902bef81b60133994315c13f7d32d60048c79d8", submodules=True) - version("13.0.0", commit="ad05672e48b693fd37156f1ad62ed57aa82f858c", submodules=True) - version("12.0.1", commit="a80d1ef995d8cdd4190cc09cb249276a3e0161f4", submodules=True) - version("12.0.0", commit="e0aa4e7dcb70df025576e050b6e652a2f736454a", submodules=True) - version("11.0.0", commit="eac3def261f65b343af6d8ce4bc40443ac57b57e") - version("10.0.0", commit="9bfe0b83f277f686408b896a84d2b9b53610f623") - version("9.02.0", commit="c438ee490e94eaf1c854a336ef54f398da637a48") - version("9.01.0", commit="bf8fd4c03dd94f497d8501df510d8f6a48434afd") - version("9.00.1", commit="7d59bc508d898d2cb67ba05a7150a978b9fcc32d") - version("9.00.0", commit="e6e3092bf3a9411aac7c11a24d7586abddb75d59") - version("8.03.0", commit="601c0a18b6738cae81c3e23422cfeb3ec7bddce9") - version("8.02.0", commit="f25cf639915fc2ac65b03882ad3eb11fb037ed00") - version("8.01.0", commit="ccc8c77bbc011f3adc020c565a509815be0ea029") - version("8.00.0", commit="50c972823144c007b406ae12d7ca25a1e0c35532") - version("7.00.0", commit="e663df7ab023bdb5ef206202efc2e54ccb71d416") - version("6.00.0", commit="a5cf04acd4b1a2c625e0826189109472a3392558") - version("5.00.0", commit="df77b91a7d37b8db6ed028a4d737014b5ad86bb7") - version("4.01.0", commit="c383bf434ef69939b47e840e0eac0ba632e6af9f") - version("4.00.0", commit="ed64b4b88d366b63adc4a8d1afe5bc97aa5751eb") - version("3.00.0", commit="e20260fccb469f4253519d3f0ddb3191b7046db3") - version("2.00.0", commit="8708eae2b2ccdf57ab7b451cfbba413daa1fc43c") - version("1.02.1", commit="f6ebeb9a28297ba8c54fd08b700057dd4ff2a311") - version("1.02.0", commit="e69b95acc9a264e63aded7d1714632066e090542") - version("1.01.0", commit="836fddd02c3eff33825833ff97d6abda5b5c20a0") - version("1.00.0", commit="ec9ce0bcdc837f568d42a12ddf3fc9c80db62f5d") - version("0.32.0", commit="a4cedab7e727e1327f2835db29d147cc86b21054") - version("0.31.0", commit="cfbd901555579a2f32f4efe2b76a7048442b42c3") - version("0.30.0", commit="a71ef0a9c742731611645214079884585a92b15e") - version("0.29.0", commit="33aa3e701728112e8908223c4a7fd521907c8ea4") - version("0.28.0", commit="55626b7401eeb93fc562e79bcf385f0ad0ac48bf") - version("0.27.1", commit="8ba3010a532137bc0ab6cf83a38b483cef646a01") - version("0.27.0", commit="f7b1a1c27d5a95d08bb67236ad0e117fcd1c679f") - version("0.26.0", commit="cf542b108b31fcc349fc18fb0466f889e4e42aa6") - version("0.25.2", commit="76bf1f3e4be51d4d27126b473a2caa8d8a72b320") - version("0.25.1", commit="6e8a1ea6d2c7385a78e3e190efb2a8a0c1fa957f") - version("0.25.0", commit="0aca171951a214299e8ff573682b1c5ecec63d42") - version("0.24.0", commit="ef4699c8500bfea59a5fe88bed67fde2f00f0adf") - version("0.23.0", commit="dc443dd7e663bc4d7fb3c1e3f1f75aaf57ffd4e4") - version("0.22.1", commit="ca1b8b1645db6b552f44c48d2ff34c8c29618f3a") - version("0.22.0", commit="2c8228f5843685fc0ae69a8b95dd8fc001139efb") - version("0.21.0", commit="10b719e68ddaca15b28ac25b3daddce8c0d3368d") - version("0.20.0", commit="1d37a849a9c318e8ca4fa541ef8433c1f004637b") - version("0.19.0", commit="408335636486c421c6222a64372250ef12544df6") - version("0.18.0", commit="d58a68cf75b52a5e0f563bc237f09250aa9da80c") - version("0.17.0", commit="0789f654ff484b013fd27e5023cf342785ea8d97") - version("0.16.0", commit="b3d965fe0b8ae335909d79114ef261c6b996773a") - version("0.15.0", commit="267c28f69c561e64369661a6235b03b5a610d6da") - version("0.14.0", commit="38d678fcb205b77d60326eae913fbb1b054acea1") - version("0.13.0", commit="b33f7270ddbbb33050b7ec60b4fa255dc2bfdc88") - version("0.12.1", commit="a8b3d36e7c6cb86487637589e0eff7bbe626054a") - version("0.12.0", commit="f9cda77299606d78c889fb1db2576c1971a271c4") - version("0.11.1", commit="c21196cd6c3ecc6da0f14d0a9ef227a274be584b") - version("0.11.0", commit="22bcea1f19adb0021ca61b843b95cfd2462dd31d") - version("0.10.5", commit="b6f7234ca8f18ee11e57709d019c14bf41cf9b19") - version("0.10.4", commit="42cbc359c209f5cf386e620b5a497192c024655e") - version("0.10.3", commit="a3bb86b79a65b3d2ceb962b60411fd0df4cf274c") - version("0.10.2", commit="64cbf28c862d8b0f95232b00c0e8c38949d5015d") - version("0.10.1", commit="0692dcf7824efbc504fb16f7aa00a50df395adbc") - version("0.10.0", commit="30ef843cb00427f9959b7de4d1b9843413a13f02") - version("0.09.5", commit="12b11fe8b0d428ccb8e92dda7dc809198f828672") - version("0.09.4", commit="e5dd9fbe179201e70347d1a3b9fa1899c226798f") - version("0.09.3", commit="a8f31303ee8720ed2946bfe2d59e81d0f70e307e") - version("0.09.2", commit="4e1f7fa73ffe07457080d787e206bf6466fe1680") - version("0.09.1", commit="69c451035516cb683b8f7bc0bab1a25893e9113d") - version("0.09.0", commit="004888b0a412f5bbaeef2ffaaeaf2aa182511494") - version("0.08.2", commit="c5d7568714e69e7344582b93b8d24e45d6b81bf9") - version("0.08.1", commit="289bdcc320f0b3ff1d792e29e462ec2d3ea15df6") - version("0.08.0", commit="99eedb38f305e3a1cd99d9b4473241b7cd641fa9") + version("46.3.0", commit="4f0e5d8ce158728ff275a733b720d087065563bd") + version("46.2.0", commit="fcecf616be7ddd240700f65a1508f21811ee4167") + version("46.1.0", commit="d6d17c9c2b28a54141477438d63176a8af2d3c76") + version("46.0.0", commit="a28f778b767fb8fcf9eba5675aecc71e28e30d50") + version("45.5.0", commit="1fe226214174c4b18b8d3a77c44a7d09de9c2e47") + version("45.4.0", commit="64ff294699e240c6935b18606be7c4b2ea213d6d") + version("45.3.0", commit="d1323a298569942d98ff46ee413031ebd604290d") + version("45.2.0", commit="c476557b74ccc8369fe1ef2c1f2e27cca4a356b6") + version("45.1.1", commit="da50efc7b15cad8fdc5e194719c72d7d8b706823") + version("45.1.0", commit="061a9d87b0fc07b554ec0b3849e875cf964f8323") + version("45.0.0", commit="92ab57740f8e875555ea28f542844ac1eb5db65b") + version("44.4.0", commit="a05c35a14b39a461925d11de12ccd2da5e38b3d1") + version("44.3.0", commit="d4c630145d5050dd2edc58f1de0c872caff23dd8") + version("44.2.0", commit="c3d440eb1e441fcd15995b8af87ea1497e0cc126") + version("44.1.0", commit="9c79dd801e4ab1e2485c3198cc6b987ec1369e5b", submodules=submodules) + version("44.0.1", commit="404f40aaa6211231b6c6726a364b08134a2e3fa4", submodules=submodules) + version("44.0.0", commit="d5d65c794d3676034f37d89e555c131b5b7ad807", submodules=submodules) + # NOTE: Versions between 39.2.0 and 44.0.0 are not available via Spack, + # as they cannot be built without downloading third-party dependencies + # from remote, non-Spack sources. + version("39.2.0", commit="94cf48783efd713f38106b18211d1c59f4e8cdec", submodules=submodules) + version("39.1.0", commit="09225b0d0bba24d57a696e347e3027b39404bb75", submodules=submodules) + version("39.0.0", commit="b055202e2fbdd509bc186eb4782714bc46f38f3f", submodules=submodules) + version("38.2.0", commit="9cb8f4494656553fd9b85955938b79b2fac4c9b0", submodules=submodules) + version("38.1.0", commit="8a20c88808f10bf4fcdfd7c6e077f23614c3ab90", submodules=submodules) + version("38.0.0", commit="0a6b5155e29e3b755bf351b8a76067fff9b4214b", submodules=submodules) # Variants that affect the core Acts library variant( "benchmarks", default=False, description="Build the performance benchmarks", when="@0.16:" ) - _cxxstd_values = ( - conditional("14", when="@:0.8.1"), - conditional("17", when="@:35"), - conditional("20", when="@24:"), - ) + _cxxstd_values = (conditional("20", when="@24:"),) _cxxstd_common = { "values": _cxxstd_values, "multi": False, "description": "Use the specified C++ standard when building.", } - variant("cxxstd", default="17", when="@:35", **_cxxstd_common) - variant("cxxstd", default="20", when="@36:", **_cxxstd_common) - variant( - "examples", - default=False, - description="Build the examples", - when="@0.23:16 +digitization +fatras +identification +json +tgeo", - ) - variant( - "examples", - default=False, - description="Build the examples", - when="@17:34 +fatras +identification +json +tgeo", - ) - variant( - "examples", - default=False, - description="Build the examples", - when="@35: +fatras +json +tgeo", - ) + variant("cxxstd", default="20", when="@38:", **_cxxstd_common) + variant("examples", default=False, description="Build the examples", when="@0.23:") + with when("+examples"): + requires("+root") + requires("+fatras") + requires("+json") variant("integration_tests", default=False, description="Build the integration tests") variant("unit_tests", default=False, description="Build the unit tests") variant( @@ -251,102 +111,67 @@ class Acts(CMakePackage, CudaPackage): ) # Variants that enable / disable Acts plugins - variant("alignment", default=False, description="Build the alignment package", when="@13:") - variant( - "autodiff", - default=False, - description="Build the auto-differentiation plugin", - when="@1.2:32", - ) - variant("dd4hep", default=False, description="Build the DD4hep plugin", when="+tgeo") - variant( - "digitization", - default=False, - description="Build the geometric digitization plugin", - when="@:16", - ) - variant("edm4hep", default=False, description="Build EDM4hep plugin", when="@25:") - # FIXME: Can't build Exa.TrkX plugin+examples yet, missing cuGraph dep - variant( - "fatras", - default=False, - description="Build the FAst TRAcking Simulation package", - when="@0.16:", - ) + variant("alignment", default=False, description="Build the alignment package") + variant("dd4hep", default=False, description="Build the DD4hep plugin", when="+root") + variant("edm4hep", default=False, description="Build EDM4hep plugin") + variant("gnn", default=False, description="Build the GNN plugin", when="@44:") + variant("fatras", default=False, description="Build the FAst TRAcking Simulation package") variant("fatras_geant4", default=False, description="Build Geant4 Fatras package") - variant("geomodel", default=False, description="Build GeoModel plugin", when="@33:") - variant( - "identification", default=False, description="Build the Identification plugin", when="@:34" - ) + variant("geomodel", default=False, description="Build GeoModel plugin") variant("json", default=False, description="Build the Json plugin") variant("legacy", default=False, description="Build the Legacy package") - variant("mlpack", default=False, description="Build MLpack plugin", when="@25:31") variant("onnx", default=False, description="Build ONNX plugin") - variant("odd", default=False, description="Build the Open Data Detector", when="@19.1:") - variant("podio", default=False, description="Build Podio plugin", when="@30.3:") variant( - "profilecpu", + "torch", default=False, - description="Enable CPU profiling using gperftools", - when="@19.3:", + description="Build the torch based parts of the GNN plugin", + when="@44:", ) - variant( - "profilemem", - default=False, - description="Enable memory profiling using gperftools", - when="@19.3:", - ) - variant("sycl", default=False, description="Build the SyCL plugin", when="@1:34") - variant( - "tgeo", default=False, description="Build the TGeo plugin", when="@:34 +identification" - ) - variant("tgeo", default=False, description="Build the TGeo plugin", when="@35:") - variant("traccc", default=False, description="Build the Traccc plugin", when="@35.1:") + requires("+gnn", when="+torch") + variant("odd", default=False, description="Build the Open Data Detector") + variant("podio", default=False, description="Build Podio plugin") + variant("profilecpu", default=False, description="Enable CPU profiling using gperftools") + variant("profilemem", default=False, description="Enable memory profiling using gperftools") + + # The TGeo and ROOT variants are synonyms, and the goal is to slowly phase + # out the TGeo name. The plan for this is as follow. First, we use both + # names as synonyms, ensuring that both must be true at the same time. We + # also enforce that nothing explicitly relies on the TGeo naming anymore, + # and we use ROOT instead. We then "deprecate" the TGeo naming by + # eliminating it in ACTS release 45. Finally, we retain the TGeo naming + # until version 44 of ACTS is removed due to deprecation. + variant("tgeo", default=False, description="Build the TGeo plugin", when="@:44") + variant("root", default=False, description="Build the ROOT plugin") + # Establish a mutual implication between the tgeo and root variants; if + # one is enabled, so must be the other. + with when("@:44"): + conflicts("~root", when="+tgeo") + conflicts("+root", when="~tgeo") + + variant("traccc", default=False, description="Build the Traccc plugin") + requires("+svg", when="+traccc") + requires("+json", when="+traccc") + + variant("mille", default=False, description="Build the Mille plugin", when="@45.4.0:") # Variants that only affect Acts examples for now variant( - "binaries", - default=False, - description="Build the examples binaries", - when="@23:32 +examples", - ) - variant( - "edm4hep", - default=False, - description="Build the EDM4hep examples", - when="@19.4.0:24 +examples", - ) - variant( - "geant4", - default=False, - description="Build the Geant4-based examples", - when="@0.23: +examples", + "geant4", default=False, description="Build the Geant4-based examples", when="+examples" ) variant( - "hepmc3", - default=False, - description="Build the HepMC3-based examples", - when="@0.23: +examples", + "hepmc3", default=False, description="Build the HepMC3-based examples", when="+examples" ) + requires("+hepmc3", when="@41: +examples") variant( - "pythia8", - default=False, - description="Build the Pythia8-based examples", - when="@0.23: +examples", + "pythia8", default=False, description="Build the Pythia8-based examples", when="+examples" ) variant( "python", default=False, description="Build python bindings for the examples", - when="@14: +examples", - ) - variant("svg", default=False, description="Build ActSVG display plugin", when="@20.1:") - variant( - "tbb", - default=True, - description="Build the examples with Threading Building Blocks library", - when="@19.8:19,20.1:37.2 +examples", + when="+examples", ) + variant("svg", default=False, description="Build ActSVG display plugin") variant("analysis", default=False, description="Build analysis applications in the examples") # Build dependencies @@ -354,102 +179,101 @@ class Acts(CMakePackage, CudaPackage): depends_on("cxx", type="build") depends_on("acts-dd4hep", when="@19 +dd4hep") with when("+svg"): - depends_on("actsvg@0.4.20:", when="@20.1:") - depends_on("actsvg@0.4.28:", when="@23.2:") - depends_on("actsvg@0.4.29:", when="@23.4:") - depends_on("actsvg@0.4.30:", when="@23.5:") - depends_on("actsvg@0.4.33:", when="@25:27") - depends_on("actsvg@0.4.35:", when="@28:") - depends_on("actsvg@0.4.39:", when="@32:") - depends_on("actsvg@0.4.40:", when="@32.1:") - depends_on( - "actsvg@0.4.51:", when="@37:" - ) # https://github.com/acts-project/actsvg/issues/94 + # https://github.com/acts-project/actsvg/issues/94 + depends_on("actsvg@0.4.51:") depends_on("actsvg@0.4.56:", when="@41.1:") # TODO: This should be when-constrained when the issue is fixed in ACTS. depends_on("actsvg@:0.4.56") # The version number of algebra plugins was not correct before v0.28.0. depends_on("acts-algebra-plugins @0.28:", when="+traccc") - depends_on("autodiff @0.6:", when="@17: +autodiff") - depends_on("autodiff @0.5.11:0.5.99", when="@1.2:16 +autodiff") - depends_on("boost @1.62:1.69 +program_options +test", when="@:0.10.3") - depends_on("boost @1.71: +filesystem +program_options +test", when="@0.10.4:") + depends_on("boost @1.71: +filesystem +program_options +test") + depends_on("boost @1.77:", when="@42:") + depends_on("boost @1.78:", when="@45:") depends_on("cmake @3.14:", type="build") depends_on("covfie @0.10:", when="+traccc") + depends_on("covfie @0.13.0:", when="+traccc @42:") depends_on("cuda @12:", when="+traccc") - depends_on("dd4hep @1.11: +dddetectors +ddrec", when="+dd4hep") - depends_on("dd4hep @1.21: +dddetectors +ddrec", when="@20: +dd4hep") + depends_on("dd4hep @1.21: +dddetectors +ddrec", when="+dd4hep") + depends_on("dd4hep @1.26:", when="@42: +dd4hep") depends_on("dd4hep +ddg4", when="+dd4hep +geant4 +examples") - depends_on("detray @0.72.1:", when="+traccc") - depends_on("detray @0.75.3:", when="@37: +traccc") - depends_on("edm4hep @0.4.1:", when="+edm4hep") - depends_on("edm4hep @0.7:", when="@25: +edm4hep") - depends_on("eigen @3.3.7:", when="@15.1:") - depends_on("eigen @3.3.7:3.3.99", when="@:15.0") - depends_on("eigen @3.4:", when="@36.1:") + depends_on("detray @0.75.3:", when="+traccc") + depends_on("detray @0.101.0:", when="@42.1: +traccc") + depends_on("edm4hep @0.7:", when="+edm4hep") + depends_on("edm4hep @0.10.5:", when="@42: +edm4hep") + depends_on("edm4hep @:0", when="@:44 +edm4hep") + depends_on("eigen @3.4:3") depends_on("geant4", when="+fatras_geant4") depends_on("geant4", when="+geant4") - depends_on("geomodel +geomodelg4", when="+geomodel") - depends_on("geomodel @4.6.0:", when="+geomodel") - depends_on("geomodel @6.3.0:", when="+geomodel @36.1:") + depends_on("geomodel @6.3.0: +geomodelg4", when="+geomodel") + depends_on("geomodel @6.8.0:", when="@43.1: +geomodel ") depends_on("git-lfs", when="@12.0.0:") depends_on("gperftools", when="+profilecpu") depends_on("gperftools", when="+profilemem") depends_on("hepmc3 @3.2.1:", when="+hepmc3") - depends_on("heppdt", when="+hepmc3 @:4.0") - depends_on("intel-tbb @2020.1:", when="+examples +tbb") - depends_on("intel-tbb @2020.1:", when="+examples @37.3:") - depends_on("mlpack@3.1.1:", when="+mlpack") - depends_on("nlohmann-json @3.9.1:", when="@0.14: +json") - depends_on("nlohmann-json @3.10.5:", when="@37: +json") - depends_on("podio @0.6:", when="@25: +edm4hep") - depends_on("podio @0.16:", when="@30.3: +edm4hep") - depends_on("podio @:0", when="@:35 +edm4hep") + depends_on("hepmc3 @3.2.4:", when="@42: +hepmc3") + depends_on("intel-tbb @2020.1:", when="+examples") + depends_on("millepede@01-00-00:", when="+mille") + depends_on("nlohmann-json @3.10.5:", when="+json") + depends_on("nlohmann-json @3.11.3:", when="@45: +json") + depends_on("torch-scatter", when="+gnn") + depends_on("torch-scatter +cuda", when="+cuda") + depends_on("podio @0.16:", when="+edm4hep") + depends_on("podio @:1.4", when="@:44.1 +edm4hep +examples") depends_on("podio @0.16:", when="+podio") - depends_on("podio @:0", when="@:35 +podio") + # TODO: Clarify version on next release + depends_on("podio @:1.4.1", when="@:44.1.0") depends_on("pythia8", when="+pythia8") depends_on("python", when="+python") - depends_on("python@3.8:", when="+python @19.11:19") depends_on("python@3.8:", when="+python @21:") - depends_on("py-onnxruntime@:1.12", when="+onnx @:23.2") - depends_on("py-onnxruntime@1.12:", when="+onnx @23.3:") - depends_on("py-pybind11 @2.6.2:", when="+python @18:") - depends_on("py-pybind11 @2.13.1:", when="+python @36:") + # NOTE: Python and many of the Python packages we depend on are build + # dependencies only, but marking them as such allows Spack to pick up + # different Python versions for e.g. the ACTS build and the numpy + # installation which, in turn, causes the ACTS build to fail. Until a more + # robust solution is available we pretend that these packages are also + # run- and link-time dependencies. + depends_on("python@3.12:", when="@44:") + depends_on("py-numpy @2.2", when="@44:") + depends_on("py-onnxruntime@1.12:", when="+onnx") + depends_on("py-particle @0.24", when="@44:") + depends_on("py-pybind11 @2.13.1:", when="+python") + depends_on("py-pybind11 @3.0.1:", when="+python @45.3:") depends_on("py-pytest", when="+python +unit_tests") + depends_on("py-setuptools", when="@44:44.1.0") + depends_on("py-sympy @1.13", when="@44:") + # TODO: Clarify version on next release + depends_on("py-hatchling", when="@44.1.1:") + depends_on("py-torch", when="+gnn +torch") - with when("+tgeo"): - depends_on("root @6.10:") - depends_on("root @6.20:", when="@0.8.1:") + with when("+root"): + depends_on("root @6.20:") + depends_on("root @6.28:", when="@42:") - depends_on("sycl", when="+sycl") - depends_on("vecmem@0.4: +sycl", when="+sycl") + depends_on("vecmem@1.17.0:", when="@42: +traccc") # ACTS imposes requirements on the C++ standard values used by ROOT for _cxxstd in _cxxstd_values: for _v in _cxxstd: depends_on(f"geant4 cxxstd={_v.value}", when=f"cxxstd={_v.value} +geant4") depends_on(f"geant4 cxxstd={_v.value}", when=f"cxxstd={_v.value} +fatras_geant4") - depends_on(f"root cxxstd={_v.value}", when=f"cxxstd={_v.value} +tgeo") + depends_on(f"root cxxstd={_v.value}", when=f"cxxstd={_v.value} +root") # When the traccc plugin is enabled, detray should match the Acts scalars with when("+traccc"): for _scalar in _scalar_values: depends_on(f"detray scalar={_scalar}", when=f"scalar={_scalar}") - # ACTS enables certain options anyway based on other options - conflicts("~svg", when="+traccc") - conflicts("~json", when="+traccc") - # ACTS has been using C++17 for a while, which precludes use of old GCC - conflicts("%gcc@:7", when="@0.23:") + conflicts("%gcc@:7") # When using C++20, disable gcc 9 and lower. conflicts("%gcc@:9", when="cxxstd=20") - # See https://github.com/acts-project/acts/pull/3362 - conflicts("^geant4@11.3:", when="@:35") # See https://github.com/acts-project/acts/pull/3512 conflicts("^boost@1.85.0") - # See https://github.com/acts-project/acts/pull/3921 - conflicts("^edm4hep@0.99:", when="@:37") + # See https://github.com/acts-project/acts/pull/4631 + conflicts("+gnn ~cuda", when="@:44.0") + + # The ODD package is fetched via the internet by the build system, which + # cannot be disabled. + conflicts("+odd", when="@44.2.0:") def cmake_args(self): spec = self.spec @@ -467,33 +291,20 @@ def example_cmake_variant(cmake_label, spack_variant, type="BUILD"): return f"-DACTS_{type}_EXAMPLES_{cmake_label}={enabled}" def plugin_label(plugin_name): - if spec.satisfies("@0.33:"): - return "PLUGIN_" + plugin_name - else: - return plugin_name + "_PLUGIN" + return "PLUGIN_" + plugin_name def plugin_cmake_variant(plugin_name, spack_variant): return cmake_variant(plugin_label(plugin_name), spack_variant) - integration_tests_label = "INTEGRATIONTESTS" - unit_tests_label = "UNITTESTS" - legacy_plugin_label = "LEGACY_PLUGIN" - if spec.satisfies("@:0.15"): - integration_tests_label = "INTEGRATION_TESTS" - unit_tests_label = "TESTS" - if spec.satisfies("@:0.32"): - legacy_plugin_label = "LEGACY" + log_failure_threshold = spec.variants["log_failure_threshold"].value args = [ cmake_variant("ALIGNMENT", "alignment"), cmake_variant("ANALYSIS_APPS", "analysis"), - plugin_cmake_variant("AUTODIFF", "autodiff"), cmake_variant("BENCHMARKS", "benchmarks"), - example_cmake_variant("BINARIES", "binaries"), plugin_cmake_variant("CUDA", "cuda"), plugin_cmake_variant("DD4HEP", "dd4hep"), example_cmake_variant("DD4HEP", "dd4hep"), - plugin_cmake_variant("DIGITIZATION", "digitization"), plugin_cmake_variant("EDM4HEP", "edm4hep"), example_cmake_variant("EDM4HEP", "edm4hep"), cmake_variant("EXAMPLES", "examples"), @@ -502,12 +313,11 @@ def plugin_cmake_variant(plugin_name, spack_variant): example_cmake_variant("GEANT4", "geant4"), plugin_cmake_variant("GEANT4", "geant4"), plugin_cmake_variant("GEOMODEL", "geomodel"), + plugin_cmake_variant("GNN", "gnn"), example_cmake_variant("HEPMC3", "hepmc3"), - plugin_cmake_variant("IDENTIFICATION", "identification"), - cmake_variant(integration_tests_label, "integration_tests"), + cmake_variant("INTEGRATIONTESTS", "integration_tests"), plugin_cmake_variant("JSON", "json"), - cmake_variant(legacy_plugin_label, "legacy"), - plugin_cmake_variant("MLPACK", "mlpack"), + cmake_variant("LEGACY_PLUGIN", "legacy"), cmake_variant("ODD", "odd"), plugin_cmake_variant("ONNX", "onnx"), enable_cmake_variant("CPU_PROFILING", "profilecpu"), @@ -517,43 +327,35 @@ def plugin_cmake_variant(plugin_name, spack_variant): example_cmake_variant("PYTHON_BINDINGS", "python"), self.define_from_variant("ACTS_CUSTOM_SCALARTYPE", "scalar"), plugin_cmake_variant("ACTSVG", "svg"), - plugin_cmake_variant("SYCL", "sycl"), - plugin_cmake_variant("TGEO", "tgeo"), - example_cmake_variant("TBB", "tbb", "USE"), + plugin_cmake_variant("TGEO", "root"), plugin_cmake_variant("TRACCC", "traccc"), - cmake_variant(unit_tests_label, "unit_tests"), + plugin_cmake_variant("MILLE", "mille"), + cmake_variant("UNITTESTS", "unit_tests"), + "-DACTS_USE_EXAMPLES_TBB=ON", ] - log_failure_threshold = spec.variants["log_failure_threshold"].value - args.append(f"-DACTS_LOG_FAILURE_THRESHOLD={log_failure_threshold}") - if spec.satisfies("@19.4.0:"): - args.append("-DACTS_ENABLE_LOG_FAILURE_THRESHOLD=ON") + # Set logging threshold + args.extend( + [ + f"-DACTS_LOG_FAILURE_THRESHOLD={log_failure_threshold}", + "-DACTS_ENABLE_LOG_FAILURE_THRESHOLD=ON", + ] + ) # Use dependencies provided by spack - if spec.satisfies("@20.3:"): - args.append("-DACTS_USE_SYSTEM_LIBS=ON") - if spec.satisfies("@35.1:36.0"): - args.append("-DACTS_USE_SYSTEM_DFELIBS=OFF") - else: - if spec.satisfies("+autodiff"): - args.append("-DACTS_USE_SYSTEM_AUTODIFF=ON") + args.extend(["-DACTS_USE_SYSTEM_LIBS=ON", "-DACTS_USE_SYSTEM_NLOHMANN_JSON=ON"]) - if spec.satisfies("@19:20.2 +dd4hep"): - args.append("-DACTS_USE_SYSTEM_ACTSDD4HEP=ON") + if spec.satisfies("+python"): + args.append("-DACTS_USE_SYSTEM_PYBIND11=ON") - if spec.satisfies("@0.33: +json"): - args.append("-DACTS_USE_SYSTEM_NLOHMANN_JSON=ON") - elif spec.satisfies("@0.14.0:0.32 +json"): - args.append("-DACTS_USE_BUNDLED_NLOHMANN_JSON=OFF") + if spec.satisfies("+svg"): + args.append("-DACTS_USE_SYSTEM_ACTSVG=ON") - if spec.satisfies("@18: +python"): - args.append("-DACTS_USE_SYSTEM_PYBIND11=ON") + if spec.satisfies("+vecmem"): + args.append("-DACTS_USE_SYSTEM_VECMEM=ON") - if spec.satisfies("@20.1: +svg"): - args.append("-DACTS_USE_SYSTEM_ACTSVG=ON") - - if spec.satisfies("@14: +vecmem"): - args.append("-DACTS_USE_SYSTEM_VECMEM=ON") + if spec.satisfies("+mille"): + args.append("-DACTS_USE_SYSTEM_MILLE=ON") if spec.satisfies("+cuda"): cuda_arch = spec.variants["cuda_arch"].value @@ -562,6 +364,11 @@ def plugin_cmake_variant(plugin_name, spack_variant): arch_str = ";".join(self.spec.variants["cuda_arch"].value) args.append(self.define("CMAKE_CUDA_ARCHITECTURES", arch_str)) + if spec.satisfies("+gnn"): + args.append(self.define_from_variant("ACTS_GNN_ENABLE_ONNX", "onnx")) + if spec.satisfies("@44:"): + args.append(self.define_from_variant("ACTS_GNN_ENABLE_TORCH", "torch")) + args.append(self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd")) return args diff --git a/repos/spack_repo/builtin/packages/acts_algebra_plugins/package.py b/repos/spack_repo/builtin/packages/acts_algebra_plugins/package.py index 1595064d169..2be9ed9abfb 100644 --- a/repos/spack_repo/builtin/packages/acts_algebra_plugins/package.py +++ b/repos/spack_repo/builtin/packages/acts_algebra_plugins/package.py @@ -18,6 +18,9 @@ class ActsAlgebraPlugins(CMakePackage): license("MPL-2.0", checked_by="stephenswat") + version("0.31.0", sha256="67d58fb6a88cf1d39f0c5706b0dab014c93174ae91abe81120c65d60b2483a8c") + version("0.30.0", sha256="fd3aa003d2091e8d4bd1ef1d9df78bed281a662d803f5ae747a3e16d263dc978") + version("0.29.0", sha256="ea3f6ed44a6770b64eb202471f79b3567ef62fda74af824a0f557e5364f2171a") version("0.28.0", sha256="d798ba2129bf922f54627233ef947b8bb2345db9199e3868cc48bc1da86d5f15") version("0.27.0", sha256="c2081b399b7f4e004bebd5bf8250ed9596b113002fe445bca7fdac24d2c5932c") version("0.26.2", sha256="0170f22e1a75493b86464f27991117bc2c5a9d52554c75786e321d4c591990e7") diff --git a/repos/spack_repo/builtin/packages/actsvg/package.py b/repos/spack_repo/builtin/packages/actsvg/package.py index 8e6f161a175..2b533912403 100644 --- a/repos/spack_repo/builtin/packages/actsvg/package.py +++ b/repos/spack_repo/builtin/packages/actsvg/package.py @@ -64,6 +64,16 @@ class Actsvg(CMakePackage): depends_on("py-pybind11@2.10:", when="+python @0.4.42:") depends_on("py-pybind11@2.13:", when="+python @0.4.53:") + def patch(self): + # Attempt to patch the version string into the source code, as many + # versions of this package do not have correct version strings embedded + # in the source code. + filter_file( + r"project\s*\(\s*actsvg\s+VERSION\s+\d+\.\d+(\.\d+)?\s+LANGUAGES\s+CXX\s*\)", + "project (actsvg VERSION %s LANGUAGES CXX )" % (str(self.spec.version)), + "CMakeLists.txt", + ) + def cmake_args(self): args = [ self.define_from_variant("ACTSVG_BUILD_EXAMPLES", "examples"), diff --git a/repos/spack_repo/builtin/packages/additivefoam/assets/assets_main/Allwmake b/repos/spack_repo/builtin/packages/additivefoam/assets/assets_main/Allwmake index 29ccbaaa217..a4dc9b1c152 100755 --- a/repos/spack_repo/builtin/packages/additivefoam/assets/assets_main/Allwmake +++ b/repos/spack_repo/builtin/packages/additivefoam/assets/assets_main/Allwmake @@ -2,3 +2,5 @@ cd ${0%/*} || exit 1 # Run from this directory ./applications/solvers/additiveFoam/Allwmake $targetType $* + +wmake -all $targetType applications/utilities diff --git a/repos/spack_repo/builtin/packages/adiak/package.py b/repos/spack_repo/builtin/packages/adiak/package.py index c402a9317cc..9e55757af28 100644 --- a/repos/spack_repo/builtin/packages/adiak/package.py +++ b/repos/spack_repo/builtin/packages/adiak/package.py @@ -2,12 +2,14 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.cmake import CMakePackage +import os + +from spack_repo.builtin.build_systems.cached_cmake import CachedCMakePackage, cmake_cache_option from spack.package import * -class Adiak(CMakePackage): +class Adiak(CachedCMakePackage): """Adiak collects metadata about HPC application runs and provides it to tools.""" @@ -19,42 +21,55 @@ class Adiak(CMakePackage): variant("mpi", default=True, description="Build with MPI support") variant("shared", default=True, description="Build dynamic libraries") + variant("python", default=False, when="@0.5.0:", description="Build Python bindings") + variant("tests", default=False, description="Build tests") license("MIT") - + version("master", branch="master") version( - "0.4.1", commit="7ac997111785bee6d9391664b1d18ebc2b3c557b", submodules=True, preferred=True + "0.5.0", commit="f08c8375c613e13e9b9c6a1db271cbf8f0d3f3e3", submodules=True, preferred=True ) + version("0.4.1", commit="7ac997111785bee6d9391664b1d18ebc2b3c557b", submodules=True) version("0.4.0", commit="7e8b7233f8a148b402128ed46b2f0c643e3b397e", submodules=True) version("0.2.2", commit="3aedd494c81c01df1183af28bc09bade2fabfcd3", submodules=True) - version( - "0.3.0-alpha", - commit="054d2693a977ed0e1f16c665b4966bb90924779e", - submodules=True, - deprecated=True, - ) version("0.2.1", commit="950e3bfb91519ecb7b7ee7fa3063bfab23c0e2c9", submodules=True) version("0.1.1", sha256="438e4652e15e206cd0019423d829fd4f2329323ff0c8861d9586bae051d9624b") + depends_on("blt", type="build") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated depends_on("mpi", when="+mpi") + with when("+python"): + extends("python") + depends_on("python@3:", type=("build", "link", "run")) + depends_on("py-pybind11@3.0.0:", type=("build", "link", "run")) + depends_on("py-mpi4py", type=("build", "link", "run"), when="+mpi") + + def initconfig_mpi_entries(self): + spec = self.spec + + entries = super().initconfig_mpi_entries() + entries.append(cmake_cache_option("ENABLE_MPI", spec.satisfies("+mpi"))) + return entries + def cmake_args(self): args = [] - if self.spec.satisfies("+mpi"): - args.append(f"-DMPI_CXX_COMPILER={self.spec['mpi'].mpicxx}") - args.append(f"-DMPI_C_COMPILER={self.spec['mpi'].mpicc}") - args.append("-DENABLE_MPI=ON") - else: - args.append("-DENABLE_MPI=OFF") if self.spec.satisfies("+shared"): args.append("-DBUILD_SHARED_LIBS=ON") else: args.append("-DBUILD_SHARED_LIBS=OFF") - args.append("-DENABLE_TESTS=OFF") + if self.spec.satisfies("+python"): + args.append("-DENABLE_PYTHON_BINDINGS=ON") + pybind11_cmake = os.path.join( + self.spec["py-pybind11"].prefix, "pybind11", "share", "cmake", "pybind11" + ) + args.append(f"-Dpybind11_DIR={pybind11_cmake}") + + args.append(self.define_from_variant("ENABLE_TESTS", "tests")) + return args diff --git a/repos/spack_repo/builtin/packages/adios2/2.5-fix-clear_cache.patch b/repos/spack_repo/builtin/packages/adios2/2.5-fix-clear_cache.patch deleted file mode 100644 index 2a2e86cc32d..00000000000 --- a/repos/spack_repo/builtin/packages/adios2/2.5-fix-clear_cache.patch +++ /dev/null @@ -1,213 +0,0 @@ -From 2f05a0b1def194001d1f6e0f9a07725c10b48301 Mon Sep 17 00:00:00 2001 -From: Greg Eisenhauer -Date: Fri, 13 Dec 2019 10:00:15 -0500 -Subject: [PATCH] Merge branch 'upstream-dill' into DillUpstream - -* upstream-dill: - dill 2019-12-12 (dac6dfcc) ---- - thirdparty/dill/dill/CMakeLists.txt | 5 ++++- - thirdparty/dill/dill/LICENSE | 24 ++++++++++++++++++++++++ - thirdparty/dill/dill/arm6.c | 19 +++---------------- - thirdparty/dill/dill/arm6_rt.c | 19 +++---------------- - thirdparty/dill/dill/arm8.c | 19 +++---------------- - thirdparty/dill/dill/arm8_rt.c | 19 +++---------------- - thirdparty/dill/dill/config.h.cmake | 7 +++++-- - 7 files changed, 45 insertions(+), 67 deletions(-) - create mode 100644 thirdparty/dill/dill/LICENSE - -diff --git a/thirdparty/dill/dill/CMakeLists.txt b/thirdparty/dill/dill/CMakeLists.txt -index 0461556a..695db8c6 100644 ---- a/thirdparty/dill/dill/CMakeLists.txt -+++ b/thirdparty/dill/dill/CMakeLists.txt -@@ -1,6 +1,6 @@ - cmake_minimum_required(VERSION 3.0) - --project(DILL VERSION 2.4.0 LANGUAGES C CXX) -+project(DILL VERSION 2.4.1 LANGUAGES C CXX) - - # Some boilerplate to setup nice output directories - include(GNUInstallDirs) -@@ -265,6 +265,9 @@ check_include_files(unistd.h HAVE_UNISTD_H) - check_include_files(stdarg.h STDC_HEADERS) - check_include_files(malloc.h HAVE_MALLOC_H) - check_include_files(memory.h HAVE_MEMORY_H) -+include(CheckSymbolExists) -+check_symbol_exists(__clear_cache "" CLEAR_CACHE_DEFINED) -+message(STATUS "Clear cache defined is ${CLEAR_CACHE_DEFINED}") - - set(NO_DISASSEMBLER TRUE) - if(DILL_ENABLE_DISASSEMBLY) -diff --git a/thirdparty/dill/dill/LICENSE b/thirdparty/dill/dill/LICENSE -new file mode 100644 -index 00000000..81b08341 ---- /dev/null -+++ b/thirdparty/dill/dill/LICENSE -@@ -0,0 +1,24 @@ -+Copyright (c) 2010, Georgia Tech Research Corporation -+All rights reserved. -+ -+Redistribution and use in source and binary forms, with or without -+modification, are permitted provided that the following conditions are met: -+ * Redistributions of source code must retain the above copyright -+ notice, this list of conditions and the following disclaimer. -+ * Redistributions in binary form must reproduce the above copyright -+ notice, this list of conditions and the following disclaimer in the -+ documentation and/or other materials provided with the distribution. -+ * Neither the name of the Georgia Tech Research Corporation nor the -+ names of its contributors may be used to endorse or promote products -+ derived from this software without specific prior written permission. -+ -+THIS SOFTWARE IS PROVIDED BY GEORGIA TECH RESEARCH CORPORATION ''AS IS'' AND -+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+DISCLAIMED. IN NO EVENT SHALL GEORGIA TECH BE LIABLE FOR ANY DIRECT, INDIRECT, -+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, -+OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -diff --git a/thirdparty/dill/dill/arm6.c b/thirdparty/dill/dill/arm6.c -index f2be1725..da90507c 100644 ---- a/thirdparty/dill/dill/arm6.c -+++ b/thirdparty/dill/dill/arm6.c -@@ -1526,22 +1526,9 @@ arm6_call_link(dill_stream s) - } - - --/* Clear the instruction cache from `beg' to `end'. This makes an -- inline system call to SYS_cacheflush. */ --#define CLEAR_INSN_CACHE(BEG, END) \ --{ \ -- register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \ -- register unsigned long _end __asm ("a2") = (unsigned long) (END); \ -- register unsigned long _flg __asm ("a3") = 0; \ -- __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" \ -- : "=r" (_beg) \ -- : "0" (_beg), "r" (_end), "r" (_flg)); \ --} --/* -- * Cache flush code grabbed from a Dec 1999 posting on libc-hacker -- * mailing list -- */ --extern void __clear_cache(char*, char *); -+#ifndef CLEAR_CACHE_DEFINED -+extern void __clear_cache(void *, void *); -+#endif - - static void - arm6_flush(void *base, void *limit) -diff --git a/thirdparty/dill/dill/arm6_rt.c b/thirdparty/dill/dill/arm6_rt.c -index 1f64b477..6b7e908e 100644 ---- a/thirdparty/dill/dill/arm6_rt.c -+++ b/thirdparty/dill/dill/arm6_rt.c -@@ -109,22 +109,9 @@ arm6_rt_call_link(char *code, call_t *t) - } - } - --/* Clear the instruction cache from `beg' to `end'. This makes an -- inline system call to SYS_cacheflush. */ --#define CLEAR_INSN_CACHE(BEG, END) \ --{ \ -- register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \ -- register unsigned long _end __asm ("a2") = (unsigned long) (END); \ -- register unsigned long _flg __asm ("a3") = 0; \ -- __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" \ -- : "=r" (_beg) \ -- : "0" (_beg), "r" (_end), "r" (_flg)); \ --} --/* -- * Cache flush code grabbed from a Dec 1999 posting on libc-hacker -- * mailing list -- */ --extern void __clear_cache(char*, char *); -+#ifndef CLEAR_CACHE_DEFINED -+extern void __clear_cache(void *, void *); -+#endif - - static void - arm6_flush(void *base, void *limit) -diff --git a/thirdparty/dill/dill/arm8.c b/thirdparty/dill/dill/arm8.c -index fd5ed79f..d1894635 100644 ---- a/thirdparty/dill/dill/arm8.c -+++ b/thirdparty/dill/dill/arm8.c -@@ -1524,22 +1524,9 @@ arm8_call_link(dill_stream s) - } - - --/* Clear the instruction cache from `beg' to `end'. This makes an -- inline system call to SYS_cacheflush. */ --#define CLEAR_INSN_CACHE(BEG, END) \ --{ \ -- register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \ -- register unsigned long _end __asm ("a2") = (unsigned long) (END); \ -- register unsigned long _flg __asm ("a3") = 0; \ -- __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" \ -- : "=r" (_beg) \ -- : "0" (_beg), "r" (_end), "r" (_flg)); \ --} --/* -- * Cache flush code grabbed from a Dec 1999 posting on libc-hacker -- * mailing list -- */ --extern void __clear_cache(char*, char *); -+#ifndef CLEAR_CACHE_DEFINED -+extern void __clear_cache(void *, void *); -+#endif - - static void - arm8_flush(void *base, void *limit) -diff --git a/thirdparty/dill/dill/arm8_rt.c b/thirdparty/dill/dill/arm8_rt.c -index bd0209cd..5cb107ed 100644 ---- a/thirdparty/dill/dill/arm8_rt.c -+++ b/thirdparty/dill/dill/arm8_rt.c -@@ -109,22 +109,9 @@ arm8_rt_call_link(char *code, call_t *t) - } - } - --/* Clear the instruction cache from `beg' to `end'. This makes an -- inline system call to SYS_cacheflush. */ --#define CLEAR_INSN_CACHE(BEG, END) \ --{ \ -- register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \ -- register unsigned long _end __asm ("a2") = (unsigned long) (END); \ -- register unsigned long _flg __asm ("a3") = 0; \ -- __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" \ -- : "=r" (_beg) \ -- : "0" (_beg), "r" (_end), "r" (_flg)); \ --} --/* -- * Cache flush code grabbed from a Dec 1999 posting on libc-hacker -- * mailing list -- */ --extern void __clear_cache(char*, char *); -+#ifndef CLEAR_CACHE_DEFINED -+extern void __clear_cache(void *, void *); -+#endif - - static void - arm8_flush(void *base, void *limit) -diff --git a/thirdparty/dill/dill/config.h.cmake b/thirdparty/dill/dill/config.h.cmake -index a8519064..a9622f56 100644 ---- a/thirdparty/dill/dill/config.h.cmake -+++ b/thirdparty/dill/dill/config.h.cmake -@@ -16,10 +16,13 @@ - #cmakedefine HAVE_DIS_ASM_H - - /* Define to 1 if you have the header file. */ --#undef HAVE_DLFCN_H -+#cmakedefine HAVE_DLFCN_H - - /* Define to 1 if you have the header file. */ --#undef HAVE_INTTYPES_H -+#cmakedefine HAVE_INTTYPES_H -+ -+/* Define to 1 if you have __clear_cache is defined */ -+#cmakedefine CLEAR_CACHE_DEFINED - - /* Define to 1 if you have the header file. */ - #cmakedefine HAVE_MALLOC_H --- -2.18.1 - diff --git a/repos/spack_repo/builtin/packages/adios2/2.6-fix-gcc10-symbols.patch b/repos/spack_repo/builtin/packages/adios2/2.6-fix-gcc10-symbols.patch deleted file mode 100644 index 70f2afb1d3b..00000000000 --- a/repos/spack_repo/builtin/packages/adios2/2.6-fix-gcc10-symbols.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 0ed2c03e407e6e6b501b00e7ce0b18f6a731ca6d Mon Sep 17 00:00:00 2001 -From: Kai Germaschewski -Date: Mon, 24 May 2021 15:00:38 -0400 -Subject: [PATCH] fix unresolved symbol errors when compiling with gcc10 - ---- - .../toolkit/format/dataman/DataManSerializer.cpp | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/source/adios2/toolkit/format/dataman/DataManSerializer.cpp b/source/adios2/toolkit/format/dataman/DataManSerializer.cpp -index 697d080ae..0ecca6b23 100644 ---- a/source/adios2/toolkit/format/dataman/DataManSerializer.cpp -+++ b/source/adios2/toolkit/format/dataman/DataManSerializer.cpp -@@ -1143,5 +1143,15 @@ void DataManSerializer::Log(const int level, const std::string &message, - } - } - -+#define declare_template_instantiation(T) \ -+ template int DataManSerializer::GetData( \ -+ T * outputData, const std::string &varName, const Dims &varStart, \ -+ const Dims &varCount, const size_t step, const Dims &varMemStart, \ -+ const Dims &varMemCount); -+ -+ADIOS2_FOREACH_PRIMITIVE_STDTYPE_1ARG(declare_template_instantiation) -+declare_template_instantiation(std::string) -+#undef declare_template_instantiation -+ - } // namespace format - } // namespace adios2 --- -2.32.0.rc3 - diff --git a/repos/spack_repo/builtin/packages/adios2/2.7-fix-python-test-deps.patch b/repos/spack_repo/builtin/packages/adios2/2.7-fix-python-test-deps.patch deleted file mode 100644 index 38e689dca1b..00000000000 --- a/repos/spack_repo/builtin/packages/adios2/2.7-fix-python-test-deps.patch +++ /dev/null @@ -1,175 +0,0 @@ -From 2454aafa08be8a275b2bdba56df1c38460d165ef Mon Sep 17 00:00:00 2001 -From: Chuck Atkins -Date: Fri, 22 Jan 2021 00:03:15 -0500 -Subject: [PATCH] Fix test dependency options to ignore python when testing is - disabled - ---- - CMakeLists.txt | 15 +++------------ - bindings/Matlab/README.txt | 2 +- - cmake/DetectOptions.cmake | 2 +- - scripts/conda/adios2/superbuild/CMakeLists.txt | 2 +- - scripts/docker/images/centos7/Dockerfile | 2 +- - scripts/docker/images/centos8/Dockerfile | 2 +- - scripts/docker/images/ubuntu/Dockerfile | 2 +- - scripts/runconf/runconf.sh | 2 +- - scripts/runconf/runconf_olcf.sh | 6 +++--- - 9 files changed, 13 insertions(+), 22 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 76e0e8fba..8823bbf87 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -114,6 +114,8 @@ if((NOT BUILD_SHARED_LIBS) AND (NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE)) - set(CMAKE_POSITION_INDEPENDENT_CODE ON) - endif() - -+include(CTest) -+ - adios_option(Blosc "Enable support for Blosc transforms" AUTO) - adios_option(BZip2 "Enable support for BZip2 transforms" AUTO) - adios_option(ZFP "Enable support for ZFP transforms" AUTO) -@@ -222,22 +224,11 @@ endif() - #------------------------------------------------------------------------------# - # Testing - #------------------------------------------------------------------------------# --if(DEFINED BUILD_TESTING) -- set(ADIOS2_BUILD_TESTING_DEFAULT ${BUILD_TESTING}) --else() -- set(ADIOS2_BUILD_TESTING_DEFAULT ON) --endif() --unset(BUILD_TESTING) --option(ADIOS2_BUILD_TESTING "Build the ADIOS2 testing tree" -- ${ADIOS2_BUILD_TESTING_DEFAULT}) -- - cmake_dependent_option(ADIOS2_RUN_MPI_MPMD_TESTS - "Enable the parallel MPMD tests" ON -- "ADIOS2_BUILD_TESTING;ADIOS2_HAVE_MPI" OFF) -+ "BUILD_TESTING;ADIOS2_HAVE_MPI" OFF) - mark_as_advanced(ADIOS2_RUN_MPI_MPMD_TESTS) - --include(CTest) --set(BUILD_TESTING ${ADIOS2_BUILD_TESTING}) - if(BUILD_TESTING) - find_program(DIFF_EXECUTABLE diff) - if(DIFF_EXECUTABLE) -diff --git a/bindings/Matlab/README.txt b/bindings/Matlab/README.txt -index 4b90fac77..f49b057bc 100644 ---- a/bindings/Matlab/README.txt -+++ b/bindings/Matlab/README.txt -@@ -43,5 +43,5 @@ $ cd - $ git pull - $ mkdir build.lean - $ cd build.lean --$ cmake -DCMAKE_INSTALL_PREFIX=/opt/adios/lean -DADIOS2_USE_MPI=OFF -DADIOS2_USE_Fortran=OFF -DADIOS2_USE_Python=OFF -DADIOS2_BUILD_EXAMPLES_EXPERIMENTAL=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DADIOS2_ENABLE_PIC=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DADIOS2_BUILD_TESTING=OFF -DADIOS2_USE_SST=OFF -DADIOS2_USE_BZip2=OFF -DADIOS2_USE_DataMan=OFF .. -+$ cmake -DCMAKE_INSTALL_PREFIX=/opt/adios/lean -DADIOS2_USE_MPI=OFF -DADIOS2_USE_Fortran=OFF -DADIOS2_USE_Python=OFF -DADIOS2_BUILD_EXAMPLES_EXPERIMENTAL=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DADIOS2_ENABLE_PIC=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_TESTING=OFF -DADIOS2_USE_SST=OFF -DADIOS2_USE_BZip2=OFF -DADIOS2_USE_DataMan=OFF .. - -diff --git a/cmake/DetectOptions.cmake b/cmake/DetectOptions.cmake -index ca449feee..3b8652d2d 100644 ---- a/cmake/DetectOptions.cmake -+++ b/cmake/DetectOptions.cmake -@@ -293,7 +293,7 @@ if(Python_FOUND) - endif() - - # Even if no python support, we still want the interpreter for tests --if(NOT Python_Interpreter_FOUND) -+if(BUILD_TESTING AND NOT Python_Interpreter_FOUND) - find_package(Python REQUIRED COMPONENTS Interpreter) - endif() - -diff --git a/scripts/conda/adios2/superbuild/CMakeLists.txt b/scripts/conda/adios2/superbuild/CMakeLists.txt -index 75e2ad984..ef0eec25b 100644 ---- a/scripts/conda/adios2/superbuild/CMakeLists.txt -+++ b/scripts/conda/adios2/superbuild/CMakeLists.txt -@@ -12,7 +12,7 @@ ExternalProject_Add(adios2 - -DCMAKE_BUILD_TYPE=Release - -DBUILD_SHARED_LIBS=ON - -DADIOS2_BUILD_EXAMPLES=OFF -- -DADIOS2_BUILD_TESTING=OFF -+ -DBUILD_TESTING=OFF - -DADIOS2_USE_Python=ON - -DPYTHON_EXECUTABLE=$ENV{PYTHON} - -DADIOS2_USE_MPI=ON -diff --git a/scripts/docker/images/centos7/Dockerfile b/scripts/docker/images/centos7/Dockerfile -index 96cb30acb..974bd90eb 100644 ---- a/scripts/docker/images/centos7/Dockerfile -+++ b/scripts/docker/images/centos7/Dockerfile -@@ -116,7 +116,7 @@ RUN git clone https://github.com/ornladios/adios2.git source && \ - module load mpi && \ - cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/opt/adios/${adios_ver_dir} \ -- -DADIOS2_BUILD_TESTING=OFF \ -+ -DBUILD_TESTING=OFF \ - -DADIOS2_BUILD_EXAMPLES=OFF \ - ../source && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ -diff --git a/scripts/docker/images/centos8/Dockerfile b/scripts/docker/images/centos8/Dockerfile -index 01e3af8cb..21a78c913 100644 ---- a/scripts/docker/images/centos8/Dockerfile -+++ b/scripts/docker/images/centos8/Dockerfile -@@ -116,7 +116,7 @@ RUN git clone https://github.com/ornladios/adios2.git source && \ - module load mpi && \ - cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/opt/adios/${adios_ver_dir} \ -- -DADIOS2_BUILD_TESTING=OFF \ -+ -DBUILD_TESTING=OFF \ - -DADIOS2_BUILD_EXAMPLES=OFF \ - ../source && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ -diff --git a/scripts/docker/images/ubuntu/Dockerfile b/scripts/docker/images/ubuntu/Dockerfile -index 1979b81a0..e0f654efb 100644 ---- a/scripts/docker/images/ubuntu/Dockerfile -+++ b/scripts/docker/images/ubuntu/Dockerfile -@@ -118,7 +118,7 @@ RUN git clone https://github.com/ornladios/adios2.git source && \ - . /etc/profile && \ - cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/opt/adios/${adios_ver_dir} \ -- -DADIOS2_BUILD_TESTING=OFF \ -+ -DBUILD_TESTING=OFF \ - -DADIOS2_BUILD_EXAMPLES=OFF \ - ../source && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ -diff --git a/scripts/runconf/runconf.sh b/scripts/runconf/runconf.sh -index 82c3ea21e..ec12ba7ef 100644 ---- a/scripts/runconf/runconf.sh -+++ b/scripts/runconf/runconf.sh -@@ -46,7 +46,7 @@ cmake -DCMAKE_INSTALL_PREFIX=${PWD}/install \ - -DBUILD_SHARED_LIBS=ON \ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ - -DCMAKE_BUILD_TYPE=Release \ -- -DADIOS2_BUILD_TESTING=${VALUE} \ -+ -DBUILD_TESTING=${VALUE} \ - -DADIOS2_BUILD_EXAMPLES=${VALUE} \ - -DADIOS2_USE_Endian_Reverse=OFF \ - ${ADIOS2_SOURCE} -diff --git a/scripts/runconf/runconf_olcf.sh b/scripts/runconf/runconf_olcf.sh -index 562f9b3dd..3d1ea83bc 100644 ---- a/scripts/runconf/runconf_olcf.sh -+++ b/scripts/runconf/runconf_olcf.sh -@@ -68,7 +68,7 @@ if [ `hostname | cut -c 1-5` == "titan" ]; then - -DADIOS2_USE_Python=OFF \ - -DADIOS2_BUILD_EXAMPLES_EXPERIMENTAL=OFF \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -- -DADIOS2_BUILD_TESTING=OFF \ -+ -DBUILD_TESTING=OFF \ - ${EXTERNAL_OPTS} \ - ${SRCDIR} - -@@ -118,7 +118,7 @@ elif [ `hostname -f | cut -c 1-9` == "summitdev" ]; then - -DADIOS2_USE_Python=OFF \ - -DADIOS2_BUILD_EXAMPLES_EXPERIMENTAL=OFF \ - -DCMAKE_BUILD_TYPE=Debug \ -- -DADIOS2_BUILD_TESTING=ON \ -+ -DBUILD_TESTING=ON \ - -DADIOS2_USE_DataMan=OFF \ - ${EXTERNAL_OPTS} \ - ${SRCDIR} -@@ -156,7 +156,7 @@ elif [ `hostname -f | cut -c 1-4` == "rhea" ]; then - -DADIOS2_USE_SST=OFF \ - -DADIOS2_BUILD_EXAMPLES_EXPERIMENTAL=OFF \ - -DCMAKE_BUILD_TYPE=Debug \ -- -DADIOS2_BUILD_TESTING=ON \ -+ -DBUILD_TESTING=ON \ - -DADIOS2_USE_DataMan=OFF \ - ${EXTERNAL_OPTS} \ - ${SRCDIR} diff --git a/repos/spack_repo/builtin/packages/adios2/cmake-update-findmpi.patch b/repos/spack_repo/builtin/packages/adios2/cmake-update-findmpi.patch deleted file mode 100644 index 1e00ca0beaf..00000000000 --- a/repos/spack_repo/builtin/packages/adios2/cmake-update-findmpi.patch +++ /dev/null @@ -1,837 +0,0 @@ -diff --git a/cmake/FindMPI.cmake b/cmake/FindMPI.cmake -index b1bcb97..2244878 100644 ---- a/cmake/FindMPI.cmake -+++ b/cmake/FindMPI.cmake -@@ -4,7 +4,7 @@ - #------------------------------------------------------------------------------# - - # This module is already included in new versions of CMake --if(CMAKE_VERSION VERSION_LESS 4.0) -+if(CMAKE_VERSION VERSION_LESS 3.15.1) - include(${CMAKE_CURRENT_LIST_DIR}/upstream/FindMPI.cmake) - else() - include(${CMAKE_ROOT}/Modules/FindMPI.cmake) -diff --git a/cmake/upstream/FindMPI.cmake b/cmake/upstream/FindMPI.cmake -index 6a874b3..8551821 100644 ---- a/cmake/upstream/FindMPI.cmake -+++ b/cmake/upstream/FindMPI.cmake -@@ -1,252 +1,263 @@ - # Distributed under the OSI-approved BSD 3-Clause License. See accompanying - # file Copyright.txt or https://cmake.org/licensing for details. - --#.rst: --# FindMPI --# ------- --# --# Find a Message Passing Interface (MPI) implementation. --# --# The Message Passing Interface (MPI) is a library used to write --# high-performance distributed-memory parallel applications, and is --# typically deployed on a cluster. MPI is a standard interface (defined --# by the MPI forum) for which many implementations are available. --# --# Variables for using MPI --# ^^^^^^^^^^^^^^^^^^^^^^^ --# --# The module exposes the components ``C``, ``CXX``, ``MPICXX`` and ``Fortran``. --# Each of these controls the various MPI languages to search for. --# The difference between ``CXX`` and ``MPICXX`` is that ``CXX`` refers to the --# MPI C API being usable from C++, whereas ``MPICXX`` refers to the MPI-2 C++ API --# that was removed again in MPI-3. --# --# Depending on the enabled components the following variables will be set: --# --# ``MPI_FOUND`` --# Variable indicating that MPI settings for all requested languages have been found. --# If no components are specified, this is true if MPI settings for all enabled languages --# were detected. Note that the ``MPICXX`` component does not affect this variable. --# ``MPI_VERSION`` --# Minimal version of MPI detected among the requested languages, or all enabled languages --# if no components were specified. --# --# This module will set the following variables per language in your --# project, where ```` is one of C, CXX, or Fortran: --# --# ``MPI__FOUND`` --# Variable indicating the MPI settings for ```` were found and that --# simple MPI test programs compile with the provided settings. --# ``MPI__COMPILER`` --# MPI compiler for ```` if such a program exists. --# ``MPI__COMPILE_OPTIONS`` --# Compilation options for MPI programs in ````, given as a :ref:`;-list `. --# ``MPI__COMPILE_DEFINITIONS`` --# Compilation definitions for MPI programs in ````, given as a :ref:`;-list `. --# ``MPI__INCLUDE_DIRS`` --# Include path(s) for MPI header. --# ``MPI__LINK_FLAGS`` --# Linker flags for MPI programs. --# ``MPI__LIBRARIES`` --# All libraries to link MPI programs against. --# --# Additionally, the following :prop_tgt:`IMPORTED` targets are defined: --# --# ``MPI::MPI_`` --# Target for using MPI from ````. --# --# The following variables indicating which bindings are present will be defined: --# --# ``MPI_MPICXX_FOUND`` --# Variable indicating whether the MPI-2 C++ bindings are present (introduced in MPI-2, removed with MPI-3). --# ``MPI_Fortran_HAVE_F77_HEADER`` --# True if the Fortran 77 header ``mpif.h`` is available. --# ``MPI_Fortran_HAVE_F90_MODULE`` --# True if the Fortran 90 module ``mpi`` can be used for accessing MPI (MPI-2 and higher only). --# ``MPI_Fortran_HAVE_F08_MODULE`` --# True if the Fortran 2008 ``mpi_f08`` is available to MPI programs (MPI-3 and higher only). --# --# If possible, the MPI version will be determined by this module. The facilities to detect the MPI version --# were introduced with MPI-1.2, and therefore cannot be found for older MPI versions. --# --# ``MPI__VERSION_MAJOR`` --# Major version of MPI implemented for ```` by the MPI distribution. --# ``MPI__VERSION_MINOR`` --# Minor version of MPI implemented for ```` by the MPI distribution. --# ``MPI__VERSION`` --# MPI version implemented for ```` by the MPI distribution. --# --# Note that there's no variable for the C bindings being accessible through ``mpi.h``, since the MPI standards --# always have required this binding to work in both C and C++ code. --# --# For running MPI programs, the module sets the following variables --# --# ``MPIEXEC_EXECUTABLE`` --# Executable for running MPI programs, if such exists. --# ``MPIEXEC_NUMPROC_FLAG`` --# Flag to pass to ``mpiexec`` before giving it the number of processors to run on. --# ``MPIEXEC_MAX_NUMPROCS`` --# Number of MPI processors to utilize. Defaults to the number --# of processors detected on the host system. --# ``MPIEXEC_PREFLAGS`` --# Flags to pass to ``mpiexec`` directly before the executable to run. --# ``MPIEXEC_POSTFLAGS`` --# Flags to pass to ``mpiexec`` after other flags. --# --# Variables for locating MPI --# ^^^^^^^^^^^^^^^^^^^^^^^^^^ --# --# This module performs a three step search for an MPI implementation: --# --# 1. Check if the compiler has MPI support built-in. This is the case if the user passed a --# compiler wrapper as ``CMAKE__COMPILER`` or if they're on a Cray system. --# 2. Attempt to find an MPI compiler wrapper and determine the compiler information from it. --# 3. Try to find an MPI implementation that does not ship such a wrapper by guessing settings. --# Currently, only Microsoft MPI and MPICH2 on Windows are supported. --# --# For controlling the second step, the following variables may be set: --# --# ``MPI__COMPILER`` --# Search for the specified compiler wrapper and use it. --# ``MPI__COMPILER_FLAGS`` --# Flags to pass to the MPI compiler wrapper during interrogation. Some compiler wrappers --# support linking debug or tracing libraries if a specific flag is passed and this variable --# may be used to obtain them. --# ``MPI_COMPILER_FLAGS`` --# Used to initialize ``MPI__COMPILER_FLAGS`` if no language specific flag has been given. --# Empty by default. --# ``MPI_EXECUTABLE_SUFFIX`` --# A suffix which is appended to all names that are being looked for. For instance you may set this --# to ``.mpich`` or ``.openmpi`` to prefer the one or the other on Debian and its derivatives. --# --# In order to control the guessing step, the following variable may be set: --# --# ``MPI_GUESS_LIBRARY_NAME`` --# Valid values are ``MSMPI`` and ``MPICH2``. If set, only the given library will be searched for. --# By default, ``MSMPI`` will be preferred over ``MPICH2`` if both are available. --# This also sets ``MPI_SKIP_COMPILER_WRAPPER`` to ``true``, which may be overridden. --# --# Each of the search steps may be skipped with the following control variables: --# --# ``MPI_ASSUME_NO_BUILTIN_MPI`` --# If true, the module assumes that the compiler itself does not provide an MPI implementation and --# skips to step 2. --# ``MPI_SKIP_COMPILER_WRAPPER`` --# If true, no compiler wrapper will be searched for. --# ``MPI_SKIP_GUESSING`` --# If true, the guessing step will be skipped. --# --# Additionally, the following control variable is available to change search behavior: --# --# ``MPI_CXX_SKIP_MPICXX`` --# Add some definitions that will disable the MPI-2 C++ bindings. --# Currently supported are MPICH, Open MPI, Platform MPI and derivatives thereof, --# for example MVAPICH or Intel MPI. --# --# If the find procedure fails for a variable ``MPI__WORKS``, then the settings detected by or passed to --# the module did not work and even a simple MPI test program failed to compile. --# --# If all of these parameters were not sufficient to find the right MPI implementation, a user may --# disable the entire autodetection process by specifying both a list of libraries in ``MPI__LIBRARIES`` --# and a list of include directories in ``MPI__ADDITIONAL_INCLUDE_DIRS``. --# Any other variable may be set in addition to these two. The module will then validate the MPI settings and store the --# settings in the cache. --# --# Cache variables for MPI --# ^^^^^^^^^^^^^^^^^^^^^^^ --# --# The variable ``MPI__INCLUDE_DIRS`` will be assembled from the following variables. --# For C and CXX: --# --# ``MPI__HEADER_DIR`` --# Location of the ``mpi.h`` header on disk. --# --# For Fortran: --# --# ``MPI_Fortran_F77_HEADER_DIR`` --# Location of the Fortran 77 header ``mpif.h``, if it exists. --# ``MPI_Fortran_MODULE_DIR`` --# Location of the ``mpi`` or ``mpi_f08`` modules, if available. --# --# For all languages the following variables are additionally considered: --# --# ``MPI__ADDITIONAL_INCLUDE_DIRS`` --# A :ref:`;-list ` of paths needed in addition to the normal include directories. --# ``MPI__INCLUDE_DIR`` --# Path variables for include folders referred to by ````. --# ``MPI__ADDITIONAL_INCLUDE_VARS`` --# A :ref:`;-list ` of ```` that will be added to the include locations of ````. --# --# The variable ``MPI__LIBRARIES`` will be assembled from the following variables: --# --# ``MPI__LIBRARY`` --# The location of a library called ```` for use with MPI. --# ``MPI__LIB_NAMES`` --# A :ref:`;-list ` of ```` that will be added to the include locations of ````. --# --# Usage of mpiexec --# ^^^^^^^^^^^^^^^^ --# --# When using ``MPIEXEC_EXECUTABLE`` to execute MPI applications, you should typically --# use all of the ``MPIEXEC_EXECUTABLE`` flags as follows: --# --# :: --# --# ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} --# ${MPIEXEC_PREFLAGS} EXECUTABLE ${MPIEXEC_POSTFLAGS} ARGS --# --# where ``EXECUTABLE`` is the MPI program, and ``ARGS`` are the arguments to --# pass to the MPI program. --# --# Advanced variables for using MPI --# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --# --# The module can perform some advanced feature detections upon explicit request. --# --# **Important notice:** The following checks cannot be performed without *executing* an MPI test program. --# Consider the special considerations for the behavior of :command:`try_run` during cross compilation. --# Moreover, running an MPI program can cause additional issues, like a firewall notification on some systems. --# You should only enable these detections if you absolutely need the information. --# --# If the following variables are set to true, the respective search will be performed: --# --# ``MPI_DETERMINE_Fortran_CAPABILITIES`` --# Determine for all available Fortran bindings what the values of ``MPI_SUBARRAYS_SUPPORTED`` and --# ``MPI_ASYNC_PROTECTS_NONBLOCKING`` are and make their values available as ``MPI_Fortran__SUBARRAYS`` --# and ``MPI_Fortran__ASYNCPROT``, where ```` is one of ``F77_HEADER``, ``F90_MODULE`` and --# ``F08_MODULE``. --# ``MPI_DETERMINE_LIBRARY_VERSION`` --# For each language, find the output of ``MPI_Get_library_version`` and make it available as ``MPI__LIBRARY_VERSION``. --# This information is usually tied to the runtime component of an MPI implementation and might differ depending on ````. --# Note that the return value is entirely implementation defined. This information might be used to identify --# the MPI vendor and for example pick the correct one of multiple third party binaries that matches the MPI vendor. --# --# Backward Compatibility --# ^^^^^^^^^^^^^^^^^^^^^^ --# --# For backward compatibility with older versions of FindMPI, these --# variables are set, but deprecated: --# --# :: --# --# MPI_COMPILER MPI_LIBRARY MPI_EXTRA_LIBRARY --# MPI_COMPILE_FLAGS MPI_INCLUDE_PATH MPI_LINK_FLAGS --# MPI_LIBRARIES --# --# In new projects, please use the ``MPI__XXX`` equivalents. --# Additionally, the following variables are deprecated: --# --# ``MPI__COMPILE_FLAGS`` --# Use ``MPI__COMPILE_OPTIONS`` and ``MPI__COMPILE_DEFINITIONS`` instead. --# ``MPI__INCLUDE_PATH`` --# For consumption use ``MPI__INCLUDE_DIRS`` and for specifying folders use ``MPI__ADDITIONAL_INCLUDE_DIRS`` instead. --# ``MPIEXEC`` --# Use ``MPIEXEC_EXECUTABLE`` instead. -+#[=======================================================================[.rst: -+FindMPI -+------- -+ -+Find a Message Passing Interface (MPI) implementation. -+ -+The Message Passing Interface (MPI) is a library used to write -+high-performance distributed-memory parallel applications, and is -+typically deployed on a cluster. MPI is a standard interface (defined -+by the MPI forum) for which many implementations are available. -+ -+Variables for using MPI -+^^^^^^^^^^^^^^^^^^^^^^^ -+ -+The module exposes the components ``C``, ``CXX``, ``MPICXX`` and ``Fortran``. -+Each of these controls the various MPI languages to search for. -+The difference between ``CXX`` and ``MPICXX`` is that ``CXX`` refers to the -+MPI C API being usable from C++, whereas ``MPICXX`` refers to the MPI-2 C++ API -+that was removed again in MPI-3. -+ -+Depending on the enabled components the following variables will be set: -+ -+``MPI_FOUND`` -+ Variable indicating that MPI settings for all requested languages have been found. -+ If no components are specified, this is true if MPI settings for all enabled languages -+ were detected. Note that the ``MPICXX`` component does not affect this variable. -+``MPI_VERSION`` -+ Minimal version of MPI detected among the requested languages, or all enabled languages -+ if no components were specified. -+ -+This module will set the following variables per language in your -+project, where ```` is one of C, CXX, or Fortran: -+ -+``MPI__FOUND`` -+ Variable indicating the MPI settings for ```` were found and that -+ simple MPI test programs compile with the provided settings. -+``MPI__COMPILER`` -+ MPI compiler for ```` if such a program exists. -+``MPI__COMPILE_OPTIONS`` -+ Compilation options for MPI programs in ````, given as a :ref:`;-list `. -+``MPI__COMPILE_DEFINITIONS`` -+ Compilation definitions for MPI programs in ````, given as a :ref:`;-list `. -+``MPI__INCLUDE_DIRS`` -+ Include path(s) for MPI header. -+``MPI__LINK_FLAGS`` -+ Linker flags for MPI programs. -+``MPI__LIBRARIES`` -+ All libraries to link MPI programs against. -+ -+Additionally, the following :prop_tgt:`IMPORTED` targets are defined: -+ -+``MPI::MPI_`` -+ Target for using MPI from ````. -+ -+The following variables indicating which bindings are present will be defined: -+ -+``MPI_MPICXX_FOUND`` -+ Variable indicating whether the MPI-2 C++ bindings are present (introduced in MPI-2, removed with MPI-3). -+``MPI_Fortran_HAVE_F77_HEADER`` -+ True if the Fortran 77 header ``mpif.h`` is available. -+``MPI_Fortran_HAVE_F90_MODULE`` -+ True if the Fortran 90 module ``mpi`` can be used for accessing MPI (MPI-2 and higher only). -+``MPI_Fortran_HAVE_F08_MODULE`` -+ True if the Fortran 2008 ``mpi_f08`` is available to MPI programs (MPI-3 and higher only). -+ -+If possible, the MPI version will be determined by this module. The facilities to detect the MPI version -+were introduced with MPI-1.2, and therefore cannot be found for older MPI versions. -+ -+``MPI__VERSION_MAJOR`` -+ Major version of MPI implemented for ```` by the MPI distribution. -+``MPI__VERSION_MINOR`` -+ Minor version of MPI implemented for ```` by the MPI distribution. -+``MPI__VERSION`` -+ MPI version implemented for ```` by the MPI distribution. -+ -+Note that there's no variable for the C bindings being accessible through ``mpi.h``, since the MPI standards -+always have required this binding to work in both C and C++ code. -+ -+For running MPI programs, the module sets the following variables -+ -+``MPIEXEC_EXECUTABLE`` -+ Executable for running MPI programs, if such exists. -+``MPIEXEC_NUMPROC_FLAG`` -+ Flag to pass to ``mpiexec`` before giving it the number of processors to run on. -+``MPIEXEC_MAX_NUMPROCS`` -+ Number of MPI processors to utilize. Defaults to the number -+ of processors detected on the host system. -+``MPIEXEC_PREFLAGS`` -+ Flags to pass to ``mpiexec`` directly before the executable to run. -+``MPIEXEC_POSTFLAGS`` -+ Flags to pass to ``mpiexec`` after other flags. -+ -+Variables for locating MPI -+^^^^^^^^^^^^^^^^^^^^^^^^^^ -+ -+This module performs a three step search for an MPI implementation: -+ -+1. Check if the compiler has MPI support built-in. This is the case if the user passed a -+ compiler wrapper as ``CMAKE__COMPILER`` or if they're on a Cray system. -+2. Attempt to find an MPI compiler wrapper and determine the compiler information from it. -+3. Try to find an MPI implementation that does not ship such a wrapper by guessing settings. -+ Currently, only Microsoft MPI and MPICH2 on Windows are supported. -+ -+For controlling the second step, the following variables may be set: -+ -+``MPI__COMPILER`` -+ Search for the specified compiler wrapper and use it. -+``MPI__COMPILER_FLAGS`` -+ Flags to pass to the MPI compiler wrapper during interrogation. Some compiler wrappers -+ support linking debug or tracing libraries if a specific flag is passed and this variable -+ may be used to obtain them. -+``MPI_COMPILER_FLAGS`` -+ Used to initialize ``MPI__COMPILER_FLAGS`` if no language specific flag has been given. -+ Empty by default. -+``MPI_EXECUTABLE_SUFFIX`` -+ A suffix which is appended to all names that are being looked for. For instance you may set this -+ to ``.mpich`` or ``.openmpi`` to prefer the one or the other on Debian and its derivatives. -+ -+In order to control the guessing step, the following variable may be set: -+ -+``MPI_GUESS_LIBRARY_NAME`` -+ Valid values are ``MSMPI`` and ``MPICH2``. If set, only the given library will be searched for. -+ By default, ``MSMPI`` will be preferred over ``MPICH2`` if both are available. -+ This also sets ``MPI_SKIP_COMPILER_WRAPPER`` to ``true``, which may be overridden. -+ -+Each of the search steps may be skipped with the following control variables: -+ -+``MPI_ASSUME_NO_BUILTIN_MPI`` -+ If true, the module assumes that the compiler itself does not provide an MPI implementation and -+ skips to step 2. -+``MPI_SKIP_COMPILER_WRAPPER`` -+ If true, no compiler wrapper will be searched for. -+``MPI_SKIP_GUESSING`` -+ If true, the guessing step will be skipped. -+ -+Additionally, the following control variable is available to change search behavior: -+ -+``MPI_CXX_SKIP_MPICXX`` -+ Add some definitions that will disable the MPI-2 C++ bindings. -+ Currently supported are MPICH, Open MPI, Platform MPI and derivatives thereof, -+ for example MVAPICH or Intel MPI. -+ -+If the find procedure fails for a variable ``MPI__WORKS``, then the settings detected by or passed to -+the module did not work and even a simple MPI test program failed to compile. -+ -+If all of these parameters were not sufficient to find the right MPI implementation, a user may -+disable the entire autodetection process by specifying both a list of libraries in ``MPI__LIBRARIES`` -+and a list of include directories in ``MPI__ADDITIONAL_INCLUDE_DIRS``. -+Any other variable may be set in addition to these two. The module will then validate the MPI settings and store the -+settings in the cache. -+ -+Cache variables for MPI -+^^^^^^^^^^^^^^^^^^^^^^^ -+ -+The variable ``MPI__INCLUDE_DIRS`` will be assembled from the following variables. -+For C and CXX: -+ -+``MPI__HEADER_DIR`` -+ Location of the ``mpi.h`` header on disk. -+ -+For Fortran: -+ -+``MPI_Fortran_F77_HEADER_DIR`` -+ Location of the Fortran 77 header ``mpif.h``, if it exists. -+``MPI_Fortran_MODULE_DIR`` -+ Location of the ``mpi`` or ``mpi_f08`` modules, if available. -+ -+For all languages the following variables are additionally considered: -+ -+``MPI__ADDITIONAL_INCLUDE_DIRS`` -+ A :ref:`;-list ` of paths needed in addition to the normal include directories. -+``MPI__INCLUDE_DIR`` -+ Path variables for include folders referred to by ````. -+``MPI__ADDITIONAL_INCLUDE_VARS`` -+ A :ref:`;-list ` of ```` that will be added to the include locations of ````. -+ -+The variable ``MPI__LIBRARIES`` will be assembled from the following variables: -+ -+``MPI__LIBRARY`` -+ The location of a library called ```` for use with MPI. -+``MPI__LIB_NAMES`` -+ A :ref:`;-list ` of ```` that will be added to the include locations of ````. -+ -+Usage of mpiexec -+^^^^^^^^^^^^^^^^ -+ -+When using ``MPIEXEC_EXECUTABLE`` to execute MPI applications, you should typically -+use all of the ``MPIEXEC_EXECUTABLE`` flags as follows: -+ -+:: -+ -+ ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} -+ ${MPIEXEC_PREFLAGS} EXECUTABLE ${MPIEXEC_POSTFLAGS} ARGS -+ -+where ``EXECUTABLE`` is the MPI program, and ``ARGS`` are the arguments to -+pass to the MPI program. -+ -+Advanced variables for using MPI -+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+ -+The module can perform some advanced feature detections upon explicit request. -+ -+**Important notice:** The following checks cannot be performed without *executing* an MPI test program. -+Consider the special considerations for the behavior of :command:`try_run` during cross compilation. -+Moreover, running an MPI program can cause additional issues, like a firewall notification on some systems. -+You should only enable these detections if you absolutely need the information. -+ -+If the following variables are set to true, the respective search will be performed: -+ -+``MPI_DETERMINE_Fortran_CAPABILITIES`` -+ Determine for all available Fortran bindings what the values of ``MPI_SUBARRAYS_SUPPORTED`` and -+ ``MPI_ASYNC_PROTECTS_NONBLOCKING`` are and make their values available as ``MPI_Fortran__SUBARRAYS`` -+ and ``MPI_Fortran__ASYNCPROT``, where ```` is one of ``F77_HEADER``, ``F90_MODULE`` and -+ ``F08_MODULE``. -+``MPI_DETERMINE_LIBRARY_VERSION`` -+ For each language, find the output of ``MPI_Get_library_version`` and make it available as ``MPI__LIBRARY_VERSION_STRING``. -+ This information is usually tied to the runtime component of an MPI implementation and might differ depending on ````. -+ Note that the return value is entirely implementation defined. This information might be used to identify -+ the MPI vendor and for example pick the correct one of multiple third party binaries that matches the MPI vendor. -+ -+Backward Compatibility -+^^^^^^^^^^^^^^^^^^^^^^ -+ -+For backward compatibility with older versions of FindMPI, these -+variables are set, but deprecated: -+ -+:: -+ -+ MPI_COMPILER MPI_LIBRARY MPI_EXTRA_LIBRARY -+ MPI_COMPILE_FLAGS MPI_INCLUDE_PATH MPI_LINK_FLAGS -+ MPI_LIBRARIES -+ -+In new projects, please use the ``MPI__XXX`` equivalents. -+Additionally, the following variables are deprecated: -+ -+``MPI__COMPILE_FLAGS`` -+ Use ``MPI__COMPILE_OPTIONS`` and ``MPI__COMPILE_DEFINITIONS`` instead. -+``MPI__INCLUDE_PATH`` -+ For consumption use ``MPI__INCLUDE_DIRS`` and for specifying folders use ``MPI__ADDITIONAL_INCLUDE_DIRS`` instead. -+``MPIEXEC`` -+ Use ``MPIEXEC_EXECUTABLE`` instead. -+#]=======================================================================] - - cmake_policy(PUSH) - cmake_policy(SET CMP0057 NEW) # if IN_LIST - --include(FindPackageHandleStandardArgs) -+include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) -+ -+if(CMAKE_VERISON VERSION_LESS 3.9) -+ if(WIN32) -+ set(_sep_args_type WINDOWS_COMMAND) -+ else() -+ set(_sep_args_type UNIX_COMMAND) -+ endif() -+else() -+ set(_sep_args_type NATIVE_COMMAND) -+endif() - - # Generic compiler names - set(_MPI_C_GENERIC_COMPILER_NAMES mpicc mpcc mpicc_r mpcc_r) -@@ -331,16 +342,10 @@ endforeach() - unset(_MPIEXEC_NAMES_BASE) - - function (_MPI_check_compiler LANG QUERY_FLAG OUTPUT_VARIABLE RESULT_VARIABLE) -- # Helper variable for command seperation -- if(WIN32) -- set(_MPI_COMMAND_TYPE WINDOWS_COMMAND) -- else() -- set(_MPI_COMMAND_TYPE UNIX_COMMAND) -- endif() - if(DEFINED MPI_${LANG}_COMPILER_FLAGS) -- separate_arguments(_MPI_COMPILER_WRAPPER_OPTIONS ${_MPI_COMMAND_TYPE} "${MPI_${LANG}_COMPILER_FLAGS}") -+ separate_arguments(_MPI_COMPILER_WRAPPER_OPTIONS ${_sep_args_type} "${MPI_${LANG}_COMPILER_FLAGS}") - else() -- separate_arguments(_MPI_COMPILER_WRAPPER_OPTIONS ${_MPI_COMMAND_TYPE} "${MPI_COMPILER_FLAGS}") -+ separate_arguments(_MPI_COMPILER_WRAPPER_OPTIONS ${_sep_args_type} "${MPI_COMPILER_FLAGS}") - endif() - execute_process( - COMMAND ${MPI_${LANG}_COMPILER} ${_MPI_COMPILER_WRAPPER_OPTIONS} ${QUERY_FLAG} -@@ -628,7 +633,7 @@ function (_MPI_interrogate_compiler LANG) - if (NOT MPI_ALL_INCLUDE_PATHS) - _MPI_check_compiler(${LANG} "-showme:incdirs" MPI_INCDIRS_CMDLINE MPI_INCDIRS_COMPILER_RETURN) - if(MPI_INCDIRS_COMPILER_RETURN) -- separate_arguments(MPI_ALL_INCLUDE_PATHS NATIVE_COMMAND "${MPI_INCDIRS_CMDLINE}") -+ separate_arguments(MPI_ALL_INCLUDE_PATHS ${_sep_args_type} "${MPI_INCDIRS_CMDLINE}") - endif() - endif() - -@@ -696,7 +701,7 @@ function (_MPI_interrogate_compiler LANG) - if (NOT MPI_ALL_LINK_PATHS) - _MPI_check_compiler(${LANG} "-showme:libdirs" MPI_LIBDIRS_CMDLINE MPI_LIBDIRS_COMPILER_RETURN) - if(MPI_LIBDIRS_COMPILER_RETURN) -- separate_arguments(MPI_ALL_LINK_PATHS NATIVE_COMMAND "${MPI_LIBDIRS_CMDLINE}") -+ separate_arguments(MPI_ALL_LINK_PATHS ${_sep_args_type} "${MPI_LIBDIRS_CMDLINE}") - endif() - endif() - -@@ -775,18 +780,20 @@ function (_MPI_interrogate_compiler LANG) - endforeach() - - # Add the link directories given explicitly that we haven't used back as linker directories. -- foreach(_MPI_LINK_DIRECTORY IN LISTS MPI_LINK_DIRECTORIES_LEFTOVER) -- file(TO_NATIVE_PATH "${_MPI_LINK_DIRECTORY}" _MPI_LINK_DIRECTORY_ACTUAL) -- string(FIND "${_MPI_LINK_DIRECTORY_ACTUAL}" " " _MPI_LINK_DIRECTORY_CONTAINS_SPACE) -- if(NOT _MPI_LINK_DIRECTORY_CONTAINS_SPACE EQUAL -1) -- set(_MPI_LINK_DIRECTORY_ACTUAL "\"${_MPI_LINK_DIRECTORY_ACTUAL}\"") -- endif() -- if(MPI_LINK_FLAGS_WORK) -- string(APPEND MPI_LINK_FLAGS_WORK " ${CMAKE_LIBRARY_PATH_FLAG}${_MPI_LINK_DIRECTORY_ACTUAL}") -- else() -- set(MPI_LINK_FLAGS_WORK "${CMAKE_LIBRARY_PATH_FLAG}${_MPI_LINK_DIRECTORY_ACTUAL}") -- endif() -- endforeach() -+ if(NOT WIN32) -+ foreach(_MPI_LINK_DIRECTORY IN LISTS MPI_LINK_DIRECTORIES_LEFTOVER) -+ file(TO_NATIVE_PATH "${_MPI_LINK_DIRECTORY}" _MPI_LINK_DIRECTORY_ACTUAL) -+ string(FIND "${_MPI_LINK_DIRECTORY_ACTUAL}" " " _MPI_LINK_DIRECTORY_CONTAINS_SPACE) -+ if(NOT _MPI_LINK_DIRECTORY_CONTAINS_SPACE EQUAL -1) -+ set(_MPI_LINK_DIRECTORY_ACTUAL "\"${_MPI_LINK_DIRECTORY_ACTUAL}\"") -+ endif() -+ if(MPI_LINK_FLAGS_WORK) -+ string(APPEND MPI_LINK_FLAGS_WORK " ${CMAKE_LIBRARY_PATH_FLAG}${_MPI_LINK_DIRECTORY_ACTUAL}") -+ else() -+ set(MPI_LINK_FLAGS_WORK "${CMAKE_LIBRARY_PATH_FLAG}${_MPI_LINK_DIRECTORY_ACTUAL}") -+ endif() -+ endforeach() -+ endif() - - # Deal with the libraries given with full path next - unset(MPI_DIRECT_LIB_NAMES_WORK) -@@ -1137,23 +1144,29 @@ macro(_MPI_create_imported_target LANG) - add_library(MPI::MPI_${LANG} INTERFACE IMPORTED) - endif() - -- set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_COMPILE_OPTIONS "${MPI_${LANG}_COMPILE_OPTIONS}") -+ if(NOT CMAKE_VERSION VERSION_LESS 3.12) -+ # When this is consumed for compiling CUDA, use '-Xcompiler' to wrap '-pthread'. -+ string(REPLACE "-pthread" "$<$:SHELL:-Xcompiler >-pthread" -+ _MPI_${LANG}_COMPILE_OPTIONS "${MPI_${LANG}_COMPILE_OPTIONS}") -+ endif() -+ set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_COMPILE_OPTIONS "${_MPI_${LANG}_COMPILE_OPTIONS}") -+ unset(_MPI_${LANG}_COMPILE_OPTIONS) -+ - set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_COMPILE_DEFINITIONS "${MPI_${LANG}_COMPILE_DEFINITIONS}") - -- set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_LINK_LIBRARIES "") - if(MPI_${LANG}_LINK_FLAGS) -- set_property(TARGET MPI::MPI_${LANG} APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${MPI_${LANG}_LINK_FLAGS}") -+ set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_LINK_OPTIONS "SHELL:${MPI_${LANG}_LINK_FLAGS}") - endif() - # If the compiler links MPI implicitly, no libraries will be found as they're contained within - # CMAKE__IMPLICIT_LINK_LIBRARIES already. - if(MPI_${LANG}_LIBRARIES) -- set_property(TARGET MPI::MPI_${LANG} APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${MPI_${LANG}_LIBRARIES}") -+ set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_LINK_LIBRARIES "${MPI_${LANG}_LIBRARIES}") - endif() - # Given the new design of FindMPI, INCLUDE_DIRS will always be located, even under implicit linking. - set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${MPI_${LANG}_INCLUDE_DIRS}") - endmacro() - --function(_MPI_try_staged_settings LANG MPI_TEST_FILE_NAME MODE RUN_BINARY) -+function(_MPI_try_staged_settings LANG MPI_TEST_FILE_NAME MODE RUN_BINARY SUPPRESS_ERRORS) - set(WORK_DIR "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindMPI") - set(SRC_DIR "${CMAKE_CURRENT_LIST_DIR}/FindMPI") - set(BIN_FILE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindMPI/${MPI_TEST_FILE_NAME}_${LANG}.bin") -@@ -1182,18 +1195,29 @@ function(_MPI_try_staged_settings LANG MPI_TEST_FILE_NAME MODE RUN_BINARY) - "${CMAKE_BINARY_DIR}" SOURCES "${MPI_TEST_SOURCE_FILE}" - COMPILE_DEFINITIONS ${MPI_TEST_COMPILE_DEFINITIONS} - LINK_LIBRARIES MPI::MPI_${LANG} -- RUN_OUTPUT_VARIABLE MPI_RUN_OUTPUT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE}) -+ RUN_OUTPUT_VARIABLE MPI_RUN_OUTPUT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE} -+ COMPILE_OUTPUT_VARIABLE _MPI_TRY_${MPI_TEST_FILE_NAME}_${MODE}_OUTPUT) - set(MPI_RUN_OUTPUT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE} "${MPI_RUN_OUTPUT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE}}" PARENT_SCOPE) - else() - try_compile(MPI_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE} - "${CMAKE_BINARY_DIR}" SOURCES "${MPI_TEST_SOURCE_FILE}" - COMPILE_DEFINITIONS ${MPI_TEST_COMPILE_DEFINITIONS} - LINK_LIBRARIES MPI::MPI_${LANG} -- COPY_FILE "${BIN_FILE}") -+ COPY_FILE "${BIN_FILE}" -+ OUTPUT_VARIABLE _MPI_TRY_${MPI_TEST_FILE_NAME}_${MODE}_OUTPUT) -+ endif() -+ if(NOT SUPPRESS_ERRORS) -+ if(NOT MPI_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE}) -+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log -+ "The MPI test ${MPI_TEST_FILE_NAME} for ${LANG} in mode ${MODE} failed to compile with the following output:\n${_MPI_TRY_${MPI_TEST_FILE_NAME}_${MODE}_OUTPUT}\n\n") -+ elseif(DEFINED MPI_RUN_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE} AND MPI_RUN_RESULT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE}) -+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log -+ "The MPI test ${MPI_TEST_FILE_NAME} for ${LANG} in mode ${MODE} failed to run with the following output:\n${MPI_RUN_OUTPUT_${LANG}_${MPI_TEST_FILE_NAME}_${MODE}}\n\n") -+ endif() - endif() - endfunction() - --macro(_MPI_check_lang_works LANG) -+macro(_MPI_check_lang_works LANG SUPPRESS_ERRORS) - # For Fortran we may have by the MPI-3 standard an implementation that provides: - # - the mpi_f08 module - # - *both*, the mpi module and 'mpif.h' -@@ -1201,9 +1225,9 @@ macro(_MPI_check_lang_works LANG) - if( NOT MPI_${LANG}_WORKS ) - if("${LANG}" STREQUAL "Fortran") - set(MPI_Fortran_INTEGER_LINE "(kind=MPI_INTEGER_KIND)") -- _MPI_try_staged_settings(${LANG} test_mpi F77_HEADER FALSE) -- _MPI_try_staged_settings(${LANG} test_mpi F90_MODULE FALSE) -- _MPI_try_staged_settings(${LANG} test_mpi F08_MODULE FALSE) -+ _MPI_try_staged_settings(${LANG} test_mpi F77_HEADER FALSE ${SUPPRESS_ERRORS}) -+ _MPI_try_staged_settings(${LANG} test_mpi F90_MODULE FALSE ${SUPPRESS_ERRORS}) -+ _MPI_try_staged_settings(${LANG} test_mpi F08_MODULE FALSE ${SUPPRESS_ERRORS}) - - set(MPI_${LANG}_WORKS FALSE) - -@@ -1219,14 +1243,14 @@ macro(_MPI_check_lang_works LANG) - # However, MPI-1 also did not define the Fortran 90 and 08 modules, so we only try the F77 header. - unset(MPI_Fortran_INTEGER_LINE) - if(NOT MPI_${LANG}_WORKS) -- _MPI_try_staged_settings(${LANG} test_mpi F77_HEADER_NOKIND FALSE) -+ _MPI_try_staged_settings(${LANG} test_mpi F77_HEADER_NOKIND FALSE ${SUPPRESS_ERRORS}) - if(MPI_RESULT_${LANG}_test_mpi_F77_HEADER_NOKIND) - set(MPI_${LANG}_WORKS TRUE) - set(MPI_${LANG}_HAVE_F77_HEADER TRUE) - endif() - endif() - else() -- _MPI_try_staged_settings(${LANG} test_mpi normal FALSE) -+ _MPI_try_staged_settings(${LANG} test_mpi normal FALSE ${SUPPRESS_ERRORS}) - # If 'test_mpi' built correctly, we've found valid MPI settings. There might not be MPI-2 C++ support, but there can't - # be MPI-2 C++ support without the C bindings being present, so checking for them is sufficient. - set(MPI_${LANG}_WORKS "${MPI_RESULT_${LANG}_test_mpi_normal}") -@@ -1388,7 +1412,7 @@ foreach(LANG IN ITEMS C CXX Fortran) - # Should the imported targets be empty, we effectively try whether the compiler supports MPI on its own, which is the case on e.g. - # Cray PrgEnv. - _MPI_create_imported_target(${LANG}) -- _MPI_check_lang_works(${LANG}) -+ _MPI_check_lang_works(${LANG} TRUE) - - # If the compiler can build MPI code on its own, it functions as an MPI compiler and we'll set the variable to point to it. - if(MPI_${LANG}_WORKS) -@@ -1440,7 +1464,7 @@ foreach(LANG IN ITEMS C CXX Fortran) - # If we haven't made the implicit compiler test yet, perform it now. - if(NOT MPI_${LANG}_TRIED_IMPLICIT) - _MPI_create_imported_target(${LANG}) -- _MPI_check_lang_works(${LANG}) -+ _MPI_check_lang_works(${LANG} TRUE) - endif() - - # Should the MPI compiler not work implicitly for MPI, still interrogate it. -@@ -1486,7 +1510,7 @@ foreach(LANG IN ITEMS C CXX Fortran) - _MPI_create_imported_target(${LANG}) - - if(NOT MPI_${LANG}_WORKS) -- _MPI_check_lang_works(${LANG}) -+ _MPI_check_lang_works(${LANG} FALSE) - endif() - - # Next, we'll initialize the MPI variables that have not been previously set. -@@ -1505,7 +1529,7 @@ foreach(LANG IN ITEMS C CXX Fortran) - if(MPI_${LANG}_WORKS) - if("${LANG}" STREQUAL "CXX" AND NOT DEFINED MPI_MPICXX_FOUND) - if(NOT MPI_CXX_SKIP_MPICXX AND NOT MPI_CXX_VALIDATE_SKIP_MPICXX) -- _MPI_try_staged_settings(${LANG} test_mpi MPICXX FALSE) -+ _MPI_try_staged_settings(${LANG} test_mpi MPICXX FALSE FALSE) - if(MPI_RESULT_${LANG}_test_mpi_MPICXX) - set(MPI_MPICXX_FOUND TRUE) - else() -@@ -1540,7 +1564,7 @@ foreach(LANG IN ITEMS C CXX Fortran) - # and MPI_SUBVERSION are provided. These defines did not exist in MPI 1.0 and 1.1 and therefore might not - # exist. For C/C++, test_mpi.c will handle the MPI_VERSION extraction, but for Fortran, we need mpiver.f90. - if(NOT DEFINED MPI_${LANG}_VERSION) -- _MPI_try_staged_settings(${LANG} mpiver ${MPI_${LANG}_HIGHEST_METHOD} FALSE) -+ _MPI_try_staged_settings(${LANG} mpiver ${MPI_${LANG}_HIGHEST_METHOD} FALSE FALSE) - if(MPI_RESULT_${LANG}_mpiver_${MPI_${LANG}_HIGHEST_METHOD}) - file(STRINGS ${MPI_BIN_FOLDER}/mpiver_${LANG}.bin _MPI_VERSION_STRING LIMIT_COUNT 1 REGEX "INFO:MPI-VER") - if("${_MPI_VERSION_STRING}" MATCHES ".*INFO:MPI-VER\\[([0-9]+)\\.([0-9]+)\\].*") -@@ -1559,7 +1583,7 @@ foreach(LANG IN ITEMS C CXX Fortran) - if(MPI_${LANG}_HAVE_${mpimethod}) - set(MPI_${LANG}_${mpimethod}_SUBARRAYS FALSE) - set(MPI_${LANG}_${mpimethod}_ASYNCPROT FALSE) -- _MPI_try_staged_settings(${LANG} fortranparam_mpi ${mpimethod} TRUE) -+ _MPI_try_staged_settings(${LANG} fortranparam_mpi ${mpimethod} TRUE FALSE) - if(MPI_RESULT_${LANG}_fortranparam_mpi_${mpimethod} AND - NOT "${MPI_RUN_RESULT_${LANG}_fortranparam_mpi_${mpimethod}}" STREQUAL "FAILED_TO_RUN") - if("${MPI_RUN_OUTPUT_${LANG}_fortranparam_mpi_${mpimethod}}" MATCHES -@@ -1600,7 +1624,7 @@ foreach(LANG IN ITEMS C CXX Fortran) - # It's also worth noting that the installed version string can depend on the language, or on the system the binary - # runs on if MPI is not statically linked. - if(MPI_DETERMINE_LIBRARY_VERSION AND NOT MPI_${LANG}_LIBRARY_VERSION_STRING) -- _MPI_try_staged_settings(${LANG} libver_mpi ${MPI_${LANG}_HIGHEST_METHOD} TRUE) -+ _MPI_try_staged_settings(${LANG} libver_mpi ${MPI_${LANG}_HIGHEST_METHOD} TRUE FALSE) - if(MPI_RESULT_${LANG}_libver_mpi_${MPI_${LANG}_HIGHEST_METHOD} AND - "${MPI_RUN_RESULT_${LANG}_libver_mpi_${MPI_${LANG}_HIGHEST_METHOD}}" EQUAL "0") - string(STRIP "${MPI_RUN_OUTPUT_${LANG}_libver_mpi_${MPI_${LANG}_HIGHEST_METHOD}}" -@@ -1686,7 +1710,10 @@ foreach(LANG IN ITEMS C CXX Fortran) - set(MPI_${LANG}_INCLUDE_PATH "${MPI_${LANG}_INCLUDE_DIRS}") - unset(MPI_${LANG}_COMPILE_FLAGS) - if(MPI_${LANG}_COMPILE_OPTIONS) -- set(MPI_${LANG}_COMPILE_FLAGS "${MPI_${LANG}_COMPILE_OPTIONS}") -+ set(MPI_${LANG}_COMPILE_OPTIONS) -+ foreach(flag IN LISTS MPI_${LANG}_COMPILE_FLAGS) -+ string(APPEND MPI_${LANG}_COMPILE_OPTIONS " ${flag}") -+ endforeach() - endif() - if(MPI_${LANG}_COMPILE_DEFINITIONS) - foreach(_MPI_DEF IN LISTS MPI_${LANG}_COMPILE_DEFINITIONS) -diff --git a/cmake/upstream/FindMPI/libver_mpi.c b/cmake/upstream/FindMPI/libver_mpi.c -index be9d19d..d89328a 100644 ---- a/cmake/upstream/FindMPI/libver_mpi.c -+++ b/cmake/upstream/FindMPI/libver_mpi.c -@@ -1,9 +1,9 @@ - #include - - #ifdef __cplusplus --#include -+# include - #else --#include -+# include - #endif - - int main(int argc, char* argv[]) -@@ -16,4 +16,5 @@ int main(int argc, char* argv[]) - #else - puts(mpilibver_str); - #endif -+ return 0; - } -diff --git a/cmake/upstream/FindMPI/test_mpi.c b/cmake/upstream/FindMPI/test_mpi.c -index b8a308a..7c96d54 100644 ---- a/cmake/upstream/FindMPI/test_mpi.c -+++ b/cmake/upstream/FindMPI/test_mpi.c -@@ -1,9 +1,9 @@ - #include - - #ifdef __cplusplus --#include -+# include - #else --#include -+# include - #endif - - #if defined(MPI_VERSION) && defined(MPI_SUBVERSION) -@@ -21,11 +21,11 @@ const char mpiver_str[] = { 'I', 'N', - int main(int argc, char* argv[]) - { - #if defined(MPI_VERSION) && defined(MPI_SUBVERSION) --#ifdef __cplusplus -+# ifdef __cplusplus - std::puts(mpiver_str); --#else -+# else - puts(mpiver_str); --#endif -+# endif - #endif - #ifdef TEST_MPI_MPICXX - MPI::MPI_Init(&argc, &argv); -@@ -34,4 +34,5 @@ int main(int argc, char* argv[]) - MPI_Init(&argc, &argv); - MPI_Finalize(); - #endif -+ return 0; - } -diff --git a/testing/adios2/engine/staging-common/TestCommonReadShared.cpp b/testing/adios2/engine/staging-common/TestCommonReadShared.cpp -index 72199b5..e2a73f3 100644 ---- a/testing/adios2/engine/staging-common/TestCommonReadShared.cpp -+++ b/testing/adios2/engine/staging-common/TestCommonReadShared.cpp -@@ -79,7 +79,6 @@ TEST_F(CommonReadTest, ADIOS2CommonRead1D8) - { - size_t writerSize; - -- - auto var1 = io1.InquireVariable(varname1); - auto var2 = io2.InquireVariable(varname2); - diff --git a/repos/spack_repo/builtin/packages/adios2/package.py b/repos/spack_repo/builtin/packages/adios2/package.py index 511c58886b4..f85e310ff61 100644 --- a/repos/spack_repo/builtin/packages/adios2/package.py +++ b/repos/spack_repo/builtin/packages/adios2/package.py @@ -18,7 +18,7 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage): """The Adaptable Input Output System version 2, developed in the Exascale Computing Program""" - homepage = "https://csmd.ornl.gov/software/adios2" + homepage = "https://adios2.readthedocs.io" url = "https://github.com/ornladios/ADIOS2/archive/v2.8.0.tar.gz" git = "https://github.com/ornladios/ADIOS2.git" test_requires_compiler = True @@ -30,11 +30,10 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage): license("Apache-2.0") version("master", branch="master") - version( - "2.10.2", - sha256="14cf0bcd94772194bce0f2c0e74dba187965d1cffd12d45f801c32929158579e", - preferred=True, - ) + version("2.12.1", sha256="71edd8f721448311852122fca8d83ae497b43846e5bfcdfd275dc06bb7f3d0c5") + version("2.12.0", sha256="c59aeb75f3ea9949c4ae2d597115536ee593dedb50592784917ba8d29c8a3b34") + version("2.11.0", sha256="0a2bd745e3f39745f07587e4a5f92d72f12fa0e2be305e7957bdceda03735dbf") + version("2.10.2", sha256="14cf0bcd94772194bce0f2c0e74dba187965d1cffd12d45f801c32929158579e") version("2.10.1", sha256="ce776f3a451994f4979c6bd6d946917a749290a37b7433c0254759b02695ad85") version("2.10.0", sha256="e5984de488bda546553dd2f46f047e539333891e63b9fe73944782ba6c2d95e4") version("2.9.2", sha256="78309297c82a95ee38ed3224c98b93d330128c753a43893f63bbe969320e4979") @@ -45,10 +44,6 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage): version("2.8.1", sha256="3f515b442bbd52e3189866b121613fe3b59edb8845692ea86fad83d1eba35d93") version("2.8.0", sha256="5af3d950e616989133955c2430bd09bcf6bad3a04cf62317b401eaf6e7c2d479") version("2.7.1", sha256="c8e237fd51f49d8a62a0660db12b72ea5067512aa7970f3fcf80b70e3f87ca3e") - with default_args(deprecated=True): - version("2.7.0", sha256="4b5df1a1f92d7ff380416dec7511cfcfe3dc44da27e486ed63c3e6cffb173924") - version("2.6.0", sha256="45b41889065f8b840725928db092848b8a8b8d1bfae1b92e72f8868d1c76216c") - version("2.5.0", sha256="7c8ff3bf5441dd662806df9650c56a669359cb0185ea232ecb3578de7b065329") # There's not really any consistency about how static and shared libs are # implemented across spack. What we're trying to support is specifically three @@ -74,10 +69,11 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage): ) variant("blosc", default=True, when="@2.4:2.8", description="Enable Blosc compression") variant("blosc2", default=True, when="@2.9:", description="Enable Blosc2 compression") - variant("bzip2", default=True, when="@2.4:", description="Enable BZip2 compression") + variant("bzip2", default=True, description="Enable BZip2 compression") variant("zfp", default=True, description="Enable ZFP compression") - variant("png", default=True, when="@2.4:", description="Enable PNG compression") - variant("sz", default=True, when="@2.6:", description="Enable SZ compression") + variant("png", default=True, description="Enable PNG compression") + variant("sz", default=True, description="Enable SZ2 compression") + variant("sz3", default=True, when="@2.12:", description="Enable SZ3 compression") variant("mgard", default=not IS_WINDOWS, when="@2.8:", description="Enable MGARD compression") # Rransport engines @@ -89,7 +85,7 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage): description="Enable the DataMan engine for WAN transports", ) variant("campaign", default=False, when="@2.10:", description="Enable campaign management") - variant("dataspaces", default=False, when="@2.5:", description="Enable support for DATASPACES") + variant("dataspaces", default=False, description="Enable support for DATASPACES") variant("ssc", default=True, when="@:2.7", description="Enable the SSC staging engine") variant("hdf5", default=False, description="Enable the HDF5 engine") variant( @@ -105,6 +101,8 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage): description="Enable support for in situ visualization plugin using ParaView Catalyst", ) + variant("xrootd", default=True, description="Enable the XRootD") + # Optional language bindings, C++11 and C always provided variant("kokkos", default=False, when="@2.9:", description="Enable Kokkos support") variant("sycl", default=False, when="@2.10:", description="Enable SYCL support") @@ -118,15 +116,25 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage): # ifx does not support submodules in separate files conflicts("%oneapi@:2022.1.0", when="+fortran") + # https://github.com/ornladios/ADIOS2/issues/4620 + conflicts("%cuda@13:", when="@:2.11 +cuda") + depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("fortran", type="build") + depends_on("fortran", type="build", when="+fortran") depends_on("cmake@3.12.0:", type="build") + depends_on("yaml-cpp") + depends_on("yaml-cpp@0.7.0:", when="@2.9:") + depends_on("nlohmann-json") + depends_on("pugixml@1.10:") + # Standalone CUDA support depends_on("cuda", when="+cuda ~kokkos") + depends_on("py-nanobind", when="@2.12: +python") + # Kokkos support with when("+kokkos"): depends_on("kokkos@3.7:") @@ -180,6 +188,7 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage): depends_on("dataspaces@1.8.0:", when="+dataspaces") depends_on("hdf5@:1.12", when="@:2.8 +hdf5") + depends_on("hdf5@1.12:", when="@2.9: +hdf5") depends_on("hdf5~mpi", when="+hdf5~mpi") depends_on("hdf5+mpi", when="+hdf5+mpi") @@ -192,42 +201,34 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage): depends_on("libpng@1.6:", when="+png") depends_on("zfp@0.5.1:0.5", when="+zfp") depends_on("sz@2.0.2.0:", when="+sz") + depends_on("sz3", when="+sz3") depends_on("mgard@compat-2022-11-18:", when="+mgard") depends_on("mgard@compat-2023-01-10:", when="@2.9: +mgard") extends("python", when="+python") depends_on("python", when="+python", type=("build", "run")) - depends_on("python@2.7:2.8,3.5:3.10", when="@:2.4.0 +python", type=("build", "run")) - depends_on("python@3.5:3.10", when="@2.5.0:2.7 +python", type=("build", "run")) + depends_on("python@3.5:3.10", when="@:2.7 +python", type=("build", "run")) + depends_on("python@3.8:", when="@2.10: +python", type=("build", "run")) depends_on("python", type="test") - depends_on("python@2.7:2.8,3.5:3.10", when="@:2.4.0", type="test") - depends_on("python@3.5:3.10", when="@2.5.0:2.7", type="test") + depends_on("python@3.5:3.10", when="@:2.7", type="test") depends_on("py-numpy@1.6.1:", when="+python", type=("build", "run")) depends_on("py-mpi4py@2.0.0:", when="+mpi +python", type=("build", "run")) depends_on("aws-sdk-cpp", when="+aws") depends_on("libcatalyst@2", when="+libcatalyst") + depends_on("xrootd~davix", when="+xrootd") + # error: invalid use of incomplete type 'PyFrameObject' {aka 'struct _frame'} conflicts("^python@3.11:", when="@:2.7") - # Fix findmpi when called by dependees - # See https://github.com/ornladios/ADIOS2/pull/1632 - patch("cmake-update-findmpi.patch", when="@2.4.0") - - # Fix the signature of the builtin clear_cache function in the - # third-party dill library. - # See https://github.com/ornladios/ADIOS2/pull/1899 - patch("2.5-fix-clear_cache.patch", when="@2.5.0") - - # Fix an unnecessary python dependency when testing is disabled - # See https://github.com/ornladios/ADIOS2/pull/2596 - patch("2.7-fix-python-test-deps.patch", when="@2.7.0") - - # Fix unresolved symbols when built with gcc10. - # See https://github.com/ornladios/ADIOS2/pull/2714 - patch("2.6-fix-gcc10-symbols.patch", when="@2.6.0") + # cmake build race condition + patch( + "https://github.com/ornladios/ADIOS2/commit/16869cf18cb4bd07d500c3048c3d34d1611674c7.patch?full_index=1", + when="@2.11.0", + sha256="3af07961975ec6c9023dca182ed19458c021cdf1812d34d9a9e9dad1da60ae75", + ) # add missing include patch("2.7-fix-missing-cstdint-include.patch", when="@2.7") @@ -236,7 +237,7 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage): # https://github.com/ornladios/adios2/pull/2710 patch( "https://github.com/ornladios/adios2/commit/72363a5ed1015c2bbb1c057d4d6b2e5662de12ec.patch?full_index=1", - when="@2.5:2.7.1", + when="@2.7.1", sha256="8221073d1b2f8944395a88a5d60a15c7370646b62f5fc6309867bbb6a8c2096c", ) @@ -252,6 +253,30 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage): # https://github.com/ornladios/ADIOS2/pull/4214 patch("2.10-enable-rocm6.patch", when="@2.9.1:2.10.1") + # Fix issue with GCC 7 + # https://github.com/ornladios/ADIOS2/pull/4591 + patch( + "https://github.com/ornladios/adios2/commit/b7a5957.patch?full_index=1", + sha256="d854008ab27d6ebfa66fffb78126b17713cda3234ed19bf331f85a720e599a32", + when="@2.8:2.10", + ) + + # https://github.com/ornladios/ADIOS2/pull/4729 + patch( + "https://github.com/ornladios/ADIOS2/commit/0bdda7d4729b898397e024010b1e82cb72921501.patch?full_index=1", + sha256="c7214845bc9e4262deb901f9d689236e014f5193018617675bea4bed80ca20aa", + when="@2.11", + ) + + # https://github.com/ornladios/ADIOS2/pull/5006 + # Using a diff rather than patch since the commit is a git subtree commit which does not play + # well with the github .patch URL param + patch( + "https://github.com/ornladios/ADIOS2/compare/98c51cc2207fd178d2f84f493d19710cf21f84c1^1...98c51cc2207fd178d2f84f493d19710cf21f84c1.diff?full_index=1", + sha256="0fe8ecf75eabf975caf5de447ac34084b574f78e73cf83cf158a9e58b692f2e3", + when="@2.12.0", + ) + @when("%fj") def patch(self): """add fujitsu mpi commands #16864""" @@ -275,8 +300,8 @@ def cmake_args(self): from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), from_variant("BUILD_SHARED_LIBS", "shared"), from_variant("ADIOS2_USE_AWSSDK", "aws"), - from_variant("ADIOS2_USE_Blosc", "blosc"), from_variant("ADIOS2_USE_Blosc2", "blosc2"), + from_variant("ADIOS2_USE_Blosc", "blosc"), from_variant("ADIOS2_USE_BZip2", "bzip2"), from_variant("ADIOS2_USE_Campaign", "campaign"), from_variant("ADIOS2_USE_DataMan", "dataman"), @@ -289,7 +314,9 @@ def cmake_args(self): from_variant("ADIOS2_USE_Python", "python"), from_variant("ADIOS2_USE_SSC", "ssc"), from_variant("ADIOS2_USE_SST", "sst"), + from_variant("ADIOS2_USE_SZ3", "sz3"), from_variant("ADIOS2_USE_SZ", "sz"), + from_variant("ADIOS2_USE_XRootD", "xrootd"), from_variant("ADIOS2_USE_ZFP", "zfp"), from_variant("ADIOS2_USE_Catalyst", "libcatalyst"), from_variant("ADIOS2_USE_LIBPRESSIO", "libpressio"), @@ -302,6 +329,10 @@ def cmake_args(self): self.define("ADIOS2_BUILD_EXAMPLES", False), self.define("ADIOS2_USE_Endian_Reverse", True), self.define("ADIOS2_USE_IME", False), + self.define("ADIOS2_USE_EXTERNAL_YAMLCPP", True), + self.define("ADIOS2_USE_EXTERNAL_NLOHMANN_JSON", True), + self.define("ADIOS2_USE_EXTERNAL_NANOBIND", self.spec.satisfies("@2.12: +python")), + self.define("ADIOS2_USE_EXTERNAL_PUGIXML", True), ] if spec.satisfies("+sst"): @@ -328,6 +359,12 @@ def cmake_args(self): if spec.satisfies("+rocm"): args.append(CMakeBuilder.define_hip_architectures(self)) + if spec.satisfies("+python"): + py_libdir = join_path( + self.prefix.lib, f"python{spec['python'].version.up_to(2)}", "site-packages" + ) + args.append(self.define("CMAKE_INSTALL_PYTHONDIR", py_libdir)) + return args @property @@ -335,22 +372,27 @@ def libs(self): spec = self.spec libs_to_seek = set() - if spec.satisfies("@2.6:"): - libs_to_seek.add("libadios2_core") - libs_to_seek.add("libadios2_c") + libs_to_seek.add("libadios2_core") + libs_to_seek.add("libadios2_c") + if spec.satisfies("@:2.10"): libs_to_seek.add("libadios2_cxx11") - if spec.satisfies("+fortran"): - libs_to_seek.add("libadios2_fortran") - - if spec.satisfies("+mpi"): - libs_to_seek.add("libadios2_core_mpi") - libs_to_seek.add("libadios2_c_mpi") + else: + libs_to_seek.add("libadios2_cxx") + if spec.satisfies("+fortran"): + libs_to_seek.add("libadios2_fortran") + + if spec.satisfies("+mpi"): + libs_to_seek.add("libadios2_core_mpi") + libs_to_seek.add("libadios2_c_mpi") + if spec.satisfies("@:2.10"): libs_to_seek.add("libadios2_cxx11_mpi") - if spec.satisfies("+fortran"): - libs_to_seek.add("libadios2_fortran_mpi") + else: + libs_to_seek.add("libadios2_cxx_mpi") + if spec.satisfies("+fortran"): + libs_to_seek.add("libadios2_fortran_mpi") - if "@2.7: +shared+hdf5" in spec and "@1.12:" in spec["hdf5"]: - libs_to_seek.add("libadios2_h5vol") + if "+shared+hdf5" in spec and "@1.12:" in spec["hdf5"]: + libs_to_seek.add("libadios2_h5vol") else: libs_to_seek.add("libadios2") @@ -369,6 +411,12 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: except ValueError: pass + if "+python" in self.spec: + py_libdir = join_path( + self.prefix.lib, f"python{self.spec['python'].version.up_to(2)}", "site-packages" + ) + env.prepend_path("PYTHONPATH", py_libdir) + @run_after("install") def setup_install_tests(self): """ @@ -389,9 +437,16 @@ def test_run_executables(self): f"test_run_executables_{cmd}", purpose=f"run installed adios2 executable {cmd}", ): - exe = which(join_path(self.prefix.bin, cmd)) + exe = which(join_path(self.prefix.bin, cmd), required=True) exe(*opts) + def test_python(self): + """Test adios2 python""" + if self.spec.satisfies("+python"): + with test_part(self, "test_python_import", purpose="import adios2 in python"): + python = Executable(self.spec["python"].prefix.bin.python) + python(*(["-c", "import adios2; print(adios2.__version__)"])) + def test_install(self): """Build and run an install tests""" srcdir = self.test_suite.current_test_cache_dir.testing.install.C diff --git a/repos/spack_repo/builtin/packages/adios_catalyst/package.py b/repos/spack_repo/builtin/packages/adios_catalyst/package.py new file mode 100644 index 00000000000..a183d10ae78 --- /dev/null +++ b/repos/spack_repo/builtin/packages/adios_catalyst/package.py @@ -0,0 +1,29 @@ +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class AdiosCatalyst(CMakePackage): + """AdiosCatalyst is a new Catalyst implementation for Adios2. + + The aim of this specific implementation is to be able to make in-transit simulation + with the SST engine of ADIOS2.""" + + homepage = "https://gitlab.kitware.com/paraview/adioscatalyst" + url = "https://gitlab.kitware.com/paraview/adioscatalyst" + git = "https://gitlab.kitware.com/paraview/adioscatalyst.git" + + maintainers("albestro") + + license("Apache-2.0", checked_by="albestro") + + version("main", branch="main") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cmake@3.20:", type="build") + + depends_on("libcatalyst") + depends_on("adios2") + depends_on("mpi") diff --git a/repos/spack_repo/builtin/packages/adlbx/package.py b/repos/spack_repo/builtin/packages/adlbx/package.py index 9cbeb3c5f00..39f0e9c4211 100644 --- a/repos/spack_repo/builtin/packages/adlbx/package.py +++ b/repos/spack_repo/builtin/packages/adlbx/package.py @@ -16,6 +16,7 @@ class Adlbx(AutotoolsPackage): git = "https://github.com/swift-lang/swift-t.git" version("master", branch="master") + version("1.0.7", sha256="b659c04033406f6cf1adad9a8c2177b3944247262b6b45026786dbcb0f68bf40") version("1.0.0", sha256="9d547b1d36e5af1b11c97d0b700c6cb1fec2661cf583553e22b090e3619caba7") version("0.9.2", sha256="524902d648001b689a98492402d754a607b8c1d0734699154063c1a4f3410d4a") version("0.9.1", sha256="8913493fe0c097ff13c721ab057514e5bdb55f6318d4e3512692ab739c3190b3") @@ -44,6 +45,9 @@ def configure_directory(self): else: return "." + def autoreconf(self, spec, prefix): + which("bash", required=True)("bootstrap") + def configure_args(self): args = ["--with-c-utils=" + self.spec["exmcutils"].prefix] return args diff --git a/repos/spack_repo/builtin/packages/adms/package.py b/repos/spack_repo/builtin/packages/adms/package.py index 925b79d38a7..06539feb81f 100644 --- a/repos/spack_repo/builtin/packages/adms/package.py +++ b/repos/spack_repo/builtin/packages/adms/package.py @@ -24,7 +24,8 @@ class Adms(AutotoolsPackage): version("master", branch="master") version("2.3.7", sha256="3a78e1283ecdc3f356410474b3ff44c4dcc82cb89772087fd3bbde8a1038ce08") - depends_on("c", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("bison@2.5:", type="build") depends_on("flex", type="build") @@ -32,5 +33,5 @@ class Adms(AutotoolsPackage): @when("@master") def autoreconf(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("./bootstrap.sh") diff --git a/repos/spack_repo/builtin/packages/affinity/package.py b/repos/spack_repo/builtin/packages/affinity/package.py index 406eaae0b43..89ea0369f41 100644 --- a/repos/spack_repo/builtin/packages/affinity/package.py +++ b/repos/spack_repo/builtin/packages/affinity/package.py @@ -4,11 +4,12 @@ from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage from spack.package import * -class Affinity(CMakePackage, CudaPackage): +class Affinity(CMakePackage, CudaPackage, ROCmPackage): """Simple applications for determining Linux thread and gpu affinity.""" homepage = "https://github.com/bcumming/affinity" @@ -20,9 +21,21 @@ class Affinity(CMakePackage, CudaPackage): license("BSD-3-Clause", checked_by="nhanford") variant("mpi", default=False, description="Build MPI support") - variant("rocm", default=False, description="Build ROCm Support") + conflicts("+rocm", when="+cuda") + conflicts("+cuda", when="+rocm") + + depends_on("cmake@3.21:", type="build") depends_on("mpi", when="+mpi") - depends_on("hip", when="+rocm") - depends_on("mpi", when="+mpi") - depends_on("mpi", when="+cuda") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + def cmake_args(self): + args = [self.define_from_variant("AFFINITY_MPI", "mpi")] + args += [ + self.define("AFFINITY_GPU_BACKEND", v) + for v in ["cuda", "rocm"] + if self.spec.satisfies(f"+{v}") + ] + return args diff --git a/repos/spack_repo/builtin/packages/albany/package.py b/repos/spack_repo/builtin/packages/albany/package.py index 873fcb774c8..8547b7a393a 100644 --- a/repos/spack_repo/builtin/packages/albany/package.py +++ b/repos/spack_repo/builtin/packages/albany/package.py @@ -15,7 +15,7 @@ class Albany(CMakePackage): including fluid mechanics, solid mechanics (elasticity and plasticity), ice-sheet flow, quantum device modeling, and many other applications.""" - homepage = "https://gahansen.github.io/Albany" + homepage = "https://sandialabs.github.io/Albany/" git = "https://github.com/gahansen/Albany.git" maintainers("gahansen") @@ -44,8 +44,8 @@ class Albany(CMakePackage): depends_on("mpi") depends_on( "trilinos" - "~superlu-dist+isorropia+tempus+rythmos+teko+intrepid+intrepid2" - "+minitensor+phalanx+nox+piro+rol+shards+stk+superlu" + "~superlu-dist+tempus+teko+intrepid2" + "+minitensor+phalanx+nox+piro+rol+shards+stk" "@master" ) diff --git a/repos/spack_repo/builtin/packages/albert/package.py b/repos/spack_repo/builtin/packages/albert/package.py index 44f49882941..c14cfb6f401 100644 --- a/repos/spack_repo/builtin/packages/albert/package.py +++ b/repos/spack_repo/builtin/packages/albert/package.py @@ -11,7 +11,7 @@ class Albert(MakefilePackage): """Albert is an interactive program to assist the specialist in the study of nonassociative algebra.""" - homepage = "https://people.cs.clemson.edu/~dpj/albertstuff/albert.html" + homepage = "https://dpj.people.clemson.edu/albertstuff/albert.html" url = "https://github.com/kentavv/Albert/archive/v4.0a_opt4.tar.gz" version("4.0a_opt4", sha256="80b9ee774789c9cd123072523cfb693c443c3624708a58a5af177a51f36b2c79") diff --git a/repos/spack_repo/builtin/packages/alembic/package.py b/repos/spack_repo/builtin/packages/alembic/package.py index b851399b6f4..d56c3ea8a60 100644 --- a/repos/spack_repo/builtin/packages/alembic/package.py +++ b/repos/spack_repo/builtin/packages/alembic/package.py @@ -18,6 +18,10 @@ class Alembic(CMakePackage): license("BSD-3-Clause") + version("1.8.10", sha256="06c9172faf29e9fdebb7be99621ca18b32b474f8e481238a159c87d16b298553") + version("1.8.9", sha256="8c59c10813feee917d262c71af77d6fa3db1acaf7c5fecfd4104167077403955") + version("1.8.8", sha256="ba1f34544608ef7d3f68cafea946ec9cc84792ddf9cda3e8d5590821df71f6c6") + version("1.8.7", sha256="6de0b97cd14dcfb7b2d0d788c951b6da3c5b336c47322ea881d64f18575c33da") version("1.8.6", sha256="c572ebdea3a5f0ce13774dd1fceb5b5815265cd1b29d142cf8c144b03c131c8c") version("1.8.5", sha256="180a12f08d391cd89f021f279dbe3b5423b1db751a9898540c8059a45825c2e9") version("1.7.16", sha256="2529586c89459af34d27a36ab114ad1d43dafd44061e65cfcfc73b7457379e7c") @@ -25,6 +29,7 @@ class Alembic(CMakePackage): variant("python", default=False, description="Python support") variant("hdf5", default=False, description="HDF5 support") + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("cmake@2.8.11:", type="build") diff --git a/repos/spack_repo/builtin/packages/all_library/package.py b/repos/spack_repo/builtin/packages/all_library/package.py index 3fc451f276c..52e558cc40e 100644 --- a/repos/spack_repo/builtin/packages/all_library/package.py +++ b/repos/spack_repo/builtin/packages/all_library/package.py @@ -14,7 +14,7 @@ class AllLibrary(CMakePackage): load balancing into particle based simulation codes. """ - homepage = "http://slms.pages.jsc.fz-juelich.de/websites/all-website/" + homepage = "https://slms.pages.jsc.fz-juelich.de/websites/all-website/" url = "https://gitlab.jsc.fz-juelich.de/SLMS/loadbalancing/-/archive/v0.9.2/loadbalancing-v0.9.2.tar.gz" git = "https://gitlab.jsc.fz-juelich.de/SLMS/loadbalancing.git" diff --git a/repos/spack_repo/builtin/packages/alluxio/package.py b/repos/spack_repo/builtin/packages/alluxio/package.py index 2c3d855c412..ea4af3dbea5 100644 --- a/repos/spack_repo/builtin/packages/alluxio/package.py +++ b/repos/spack_repo/builtin/packages/alluxio/package.py @@ -24,23 +24,6 @@ class Alluxio(Package): version("2.9.3", sha256="c71abc5e852d37cfd6b1dea076f056c6997e3f60fbb940bf005acb3a6354a369") version("2.9.1", sha256="e9456db7a08488af22dee3a44e4135bc03a0444e31c7753bf00f72465f68ffb9") - # https://nvd.nist.gov/vuln/detail/CVE-2022-23848 - version( - "2.7.2", - sha256="e428acfe0704cc68801ae2aa7b7ba920a0e35af9dded66b280649fc1d280a3d4", - deprecated=True, - ) - version( - "2.2.1", - sha256="0c6b0afcc4013437afb8113e1dfda9777561512269ea349c7fbf353dc0efd28a", - deprecated=True, - ) - version( - "2.2.0", - sha256="635847ea1a0f8ad04c99518620de035d4962fbfa9e5920bb0911ccf8e5ea82fc", - deprecated=True, - ) - depends_on("java@8", type="run") def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/alpaka/package.py b/repos/spack_repo/builtin/packages/alpaka/package.py index 7e557213898..a6725044d7b 100644 --- a/repos/spack_repo/builtin/packages/alpaka/package.py +++ b/repos/spack_repo/builtin/packages/alpaka/package.py @@ -13,7 +13,7 @@ class Alpaka(CMakePackage, CudaPackage): """Abstraction Library for Parallel Kernel Acceleration.""" homepage = "https://github.com/alpaka-group/alpaka" - url = "https://github.com/alpaka-group/alpaka/archive/refs/tags/0.6.0.tar.gz" + url = "https://github.com/alpaka-group/alpaka/archive/refs/tags/0.9.0.tar.gz" git = "https://github.com/alpaka-group/alpaka.git" maintainers("vvolkl") @@ -21,35 +21,20 @@ class Alpaka(CMakePackage, CudaPackage): license("MPL-2.0-no-copyleft-exception") version("develop", branch="develop") + version("2.1.1", sha256="2d30a43594c55067297947b0ec83300e4f2899497464c5cc6f142c823f3ea1b2") + # 2.1.0 is deprecated due to the buffer/view arrow operator bug + # see https://github.com/alpaka-group/alpaka/pull/2600 + version( + "2.1.0", + sha256="e5de511561d7630e856e58b6e191e054f627938d4be70cfefdc47c388449d77f", + deprecated=True, + ) + version("1.3.0", sha256="8caec8de11a5537c721d2112c97252f06ffee709392ea02fcf62df4b50511714") + version("2.0.0", sha256="ed313117aa922ef7260ec37bc5f79d750ae5547f0b9e0380a016590aa3a98e8b") version("1.2.0", sha256="069ea68ac950b17cffb3a3e790973aa5115f07ab23c0247a167e815b3c6e6fa2") version("1.1.0", sha256="95a8f1b706105d8a213116b6ba00e27bd904855c377f5a22a04aa0b86054dc35") version("1.0.0", sha256="38223dc1ca5bcf3916ff91f8825fb8caab7047430877222847e0ceb93bffecc9") version("0.9.0", sha256="3b2a5631366619fab5f3ceaf860219362f35db6c1148a601a3779a836cf29363") - version( - "0.8.0", - sha256="e01bc377a7657d9a3e0c5f8d3f83dffbd7d0b830283c59efcbc1fb98cf88de43", - deprecated=True, - ) - version( - "0.7.0", - sha256="4b61119a7b3b073f281ba15b63430db98b77dbd9420bc290a114f80121fbdd97", - deprecated=True, - ) - version( - "0.6.0", - sha256="7424ecaee3af15e587b327e983998410fa379c61d987bfe923c7e95d65db11a3", - deprecated=True, - ) - version( - "0.5.0", - sha256="0ba08ea19961dd986160219ba00d6162fe7758980d88a606eff6494d7b3a6cd1", - deprecated=True, - ) - version( - "0.4.0", - sha256="ad7905b13c22abcee4344ba225a65078e3f452ad45a9eda907e7d27c08315e46", - deprecated=True, - ) variant( "backend", @@ -64,9 +49,6 @@ class Alpaka(CMakePackage, CudaPackage): "cuda_only", "hip", "hip_only", - "sycl_cpu", - "sycl_gpu", - "sycl_fpga", ), description="Backends to enable", default="serial", @@ -76,34 +58,25 @@ class Alpaka(CMakePackage, CudaPackage): depends_on("cxx", type="build") # generated - depends_on("boost@1.65.1:", when="@0.4.0:0.8.0") - depends_on("boost@1.74:", when="@0.9.0:") + variant( + "boost_atomic_ref", + default=False, + when="@2:", + description="To use atomic ref from boost, if C++20 std::atomic_ref is not available", + ) + depends_on("boost@1.74:") + depends_on("boost@1.78:+atomic", when="@2: +boost_atomic_ref") - depends_on("cmake@3.11.4:", when="@0.4.0") - depends_on("cmake@3.15:", when="@0.5.0:0.7.0") - depends_on("cmake@3.18:", when="@0.8.0:0.9.0") - depends_on("cmake@3.22:", when="@1.0.0:") + depends_on("cmake@3.18:") + depends_on("cmake@3.22:", when="@1:") + depends_on("cmake@3.25:", when="@2:") # make sure no other backend is enabled if using cuda_only or hip_only - for v in ( - "serial", - "threads", - "tbb", - "omp2_gridblock", - "omp2_blockthread", - "cuda", - "hip", - "sycl_cpu", - "sycl_gpu", - "sycl_fpga", - ): + for v in ("serial", "threads", "tbb", "omp2_gridblock", "omp2_blockthread", "cuda", "hip"): conflicts("backend=cuda_only,%s" % v) conflicts("backend=hip_only,%s" % v) conflicts("backend=cuda_only,hip_only") - for v in ("sycl_cpu", "sycl_gpu", "sycl_fpga"): - conflicts("backend=%s" % v, when="@0.9.0:") - # todo: add conflict between cuda 11.3 and gcc 10.3.0 # see https://github.com/alpaka-group/alpaka/issues/1297 @@ -130,16 +103,6 @@ def cmake_args(self): if spec.satisfies("backend=hip_only"): args.append(self.define("ALPAKA_ACC_GPU_HIP_ENABLE", True)) args.append(self.define("ALPAKA_ACC_GPU_HIP_ONLY_MODE", True)) - if spec.satisfies("backend=sycl_cpu"): - args.append(self.define("ALPAKA_ACC_SYCL_ENABLE", True)) - args.append(self.define("ALPAKA_SYCL_ONEAPI_CPU", True)) - if spec.satisfies("backend=sycl_gpu"): - args.append(self.define("ALPAKA_ACC_SYCL_ENABLE", True)) - args.append(self.define("ALPAKA_SYCL_ONEAPI_GPU", True)) - args.append(self.define("ALPAKA_SYCL_ONEAPI_GPU_DEVICES", "spir64")) - if spec.satisfies("backend=sycl_fpga"): - args.append(self.define("ALPAKA_ACC_SYCL_ENABLE", True)) - args.append(self.define("ALPAKA_SYCL_ONEAPI_FPGA", True)) args.append(self.define_from_variant("alpaka_BUILD_EXAMPLES", "examples")) # need to define, as it is explicitly declared as an option by alpaka: diff --git a/repos/spack_repo/builtin/packages/alpgen/package.py b/repos/spack_repo/builtin/packages/alpgen/package.py index 9f73f9e27bb..7d1df108049 100644 --- a/repos/spack_repo/builtin/packages/alpgen/package.py +++ b/repos/spack_repo/builtin/packages/alpgen/package.py @@ -54,11 +54,11 @@ def patch(self): class MakefileBuilder(makefile.MakefileBuilder): def build(self, pkg, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./cms_build.sh") def install(self, pkg, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./cms_install.sh", prefix) for root, dirs, files in os.walk(prefix): diff --git a/repos/spack_repo/builtin/packages/alps/package.py b/repos/spack_repo/builtin/packages/alps/package.py index 8389d639b16..81ddc2f5310 100644 --- a/repos/spack_repo/builtin/packages/alps/package.py +++ b/repos/spack_repo/builtin/packages/alps/package.py @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os + from spack_repo.builtin.build_systems.cmake import CMakePackage from spack.package import * @@ -15,45 +17,47 @@ class Alps(CMakePackage): """ homepage = "https://github.com/ALPSim/ALPS" - url = "https://github.com/ALPSim/ALPS/archive/refs/tags/v2.3.3-beta.5.tar.gz" + url = "https://github.com/ALPSim/ALPS/archive/refs/tags/v2.3.4-beta.2.tar.gz" - maintainers("Sinan81") + maintainers("Ooolab", "egull", "Sinan81") - license("BSL-1.0", checked_by="Sinan81") + license("BSL-1.0", when="@:2.3.3", checked_by="Sinan81") + license("MIT", when="@2.3.4:", checked_by="Ooolab") version( - "2.3.3-beta.6", sha256="eb0c8115b034dd7a9dd585d277c4f86904ba374cdbdd130545aca1c432583b68" + "2.3.4-beta.2", + sha256="ca2e1307630e6fccac279ab7711036f7c6dee43c386fd6f24cfc77c86a3c7f1c", + preferred=True, ) + version("2.3.3", sha256="73d8c9038d00c7f768f65474b2a657d5c49daf105ddfcaef7d16737500b5d02f") + + variant("mpi", default=True, description="Build with MPI support") depends_on("c", type="build") depends_on("cxx", type="build") depends_on("fortran", type="build") - - # update version constraint on every boost release after providing version & checksum info - # in resources dictionary below depends_on( - "boost@:1.87 +chrono +date_time +filesystem +iostreams +mpi +numpy" - "+program_options +python +regex +serialization +system +test +thread +timer" - ) + "boost@1.80:", type="build" + ) # Just for headers. Note that the checksums are listed below depends_on("fftw") - depends_on("hdf5 ~mpi+hl") depends_on("lapack") depends_on("python", type=("build", "link", "run")) depends_on("py-numpy", type=("build", "run")) depends_on("py-scipy", type=("build", "run")) depends_on("py-matplotlib", type=("build", "run")) + depends_on("mpi", when="+mpi") + depends_on("hdf5+mpi+hl", when="+mpi") + depends_on("hdf5~mpi+hl", when="~mpi") + depends_on("zlib-api") extends("python") - # https://github.com/ALPSim/ALPS/issues/9 - conflicts( - "%gcc@14", when="@:2.3.3-beta.6", msg="use gcc older than version 14 or else build fails" - ) - # See https://github.com/ALPSim/ALPS/issues/6#issuecomment-2604912169 # for why this is needed for boost_version, boost_checksum in ( # boost version, shasum + ("1.89.0", "85a33fa22621b4f314f8e85e1a5e2a9363d22e4f4992925d4bb3bc631b5a0c7a"), + ("1.88.0", "46d9d2c06637b219270877c9e16155cbd015b6dc84349af064c088e9b5b12f7b"), ("1.87.0", "af57be25cb4c4f4b413ed692fe378affb4352ea50fbe294a11ef548f4d527d89"), ("1.86.0", "1bed88e40401b2cb7a1f76d4bab499e352fa4d0c5f31c0dbae64e24d34d7513b"), ("1.85.0", "7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617"), @@ -74,27 +78,125 @@ class Alps(CMakePackage): placement="boost_source_files", ) + # Patch for >=Boost 1.88.0 compatibility + def patch(self): + # Only apply patch for Boost versions greater than 1.87 + # Check if boost dependency is specified and get its version + if "boost" not in self.spec: + return + + boost_spec = self.spec["boost"] + # Compare versions: only apply patch if boost version > 1.87 + if boost_spec.version > Version("1.87"): + # Fix boost::is_same and boost::add_const for >=Boost 1.88.0 compatibility + # These type traits were moved to std:: in >=Boost 1.88.0 + + # First, let's add necessary includes + filter_file( + "#include ", + "#include \n#include ", + "src/alps/numeric/matrix/strided_iterator.hpp", + ) + + filter_file( + "#include ", + "#include \n#include ", + "src/alps/numeric/matrix/matrix_element_iterator.hpp", + ) + + # Now replace boost::is_same with std::is_same + filter_file( + "boost::is_same", "std::is_same", "src/alps/numeric/matrix/strided_iterator.hpp" + ) + + filter_file( + "boost::is_same", + "std::is_same", + "src/alps/numeric/matrix/matrix_element_iterator.hpp", + ) + + # Replace boost::add_const with std::add_const + filter_file( + "boost::add_const", + "std::add_const", + "src/alps/numeric/matrix/strided_iterator.hpp", + ) + + filter_file( + "boost::add_const", + "std::add_const", + "src/alps/numeric/matrix/matrix_element_iterator.hpp", + ) + def cmake_args(self): args = [] - # Boost_ROOT_DIR option is replaced by Boost_SRC_DIR as of 2.3.3-beta.6 - args.append( - "-DCMAKE_CXX_FLAGS={0}".format( - self.compiler.cxx14_flag - + " -fpermissive -DBOOST_NO_AUTO_PTR -DBOOST_FILESYSTEM_NO_CXX20_ATOMIC_REF" - + " -DBOOST_TIMER_ENABLE_DEPRECATED" - ) + + # Platform-specific C++ flags (e.g., -stdlib=libc++ on macOS) + cstdlibstr = "" + if self.spec.satisfies("platform=darwin"): + cstdlibstr = " -stdlib=libc++" + + # Assemble the full C++ flags string + cxx_flags = ( + self.compiler.cxx14_flag + + " -fpermissive -DBOOST_NO_AUTO_PTR -DBOOST_FILESYSTEM_NO_CXX20_ATOMIC_REF" + + " -DBOOST_TIMER_ENABLE_DEPRECATED" + + cstdlibstr ) + + args.append(self.define("CMAKE_CXX_FLAGS", cxx_flags)) + + # Boost source directory + boost_src_dir = os.path.join(self.stage.source_path, "boost_source_files") + args.append(self.define("Boost_SRC_DIR", boost_src_dir)) + + # Boost linking options + args.append(self.define("Boost_USE_STATIC_LIBS", True)) # → -DBoost_USE_STATIC_LIBS=ON args.append( - "-DBoost_SRC_DIR={0}".format(join_path(self.stage.source_path, "boost_source_files")) - ) + self.define("Boost_USE_STATIC_RUNTIME", False) + ) # → -DBoost_USE_STATIC_RUNTIME=OFF + + # MPI support + if self.spec.satisfies("+mpi"): + args.append(self.define("MPI_CXX_COMPILER", self.spec["mpi"].mpicxx)) + args.append(self.define("MPI_C_COMPILER", self.spec["mpi"].mpicc)) + else: + args.append(self.define("ENABLE_MPI", False)) + + # RPATH settings + args.append(self.define("CMAKE_INSTALL_RPATH_USE_LINK_PATH", True)) + args.append(self.define("CMAKE_BUILD_WITH_INSTALL_RPATH", True)) + + # Point to Spack's HDF5 + args.append(self.define("HDF5_DIR", self.spec["hdf5"].prefix)) + return args - @run_after("install") - def relocate_python_stuff(self): - pyalps_dir = join_path(python_platlib, "pyalps") - with working_dir(self.prefix): - copy_tree("pyalps", pyalps_dir) - with working_dir(self.prefix.lib): - copy_tree("pyalps", pyalps_dir) - # in pip installed pyalps package, xml dir is provided under platlib/pyalps - copy_tree("xml", join_path(pyalps_dir, "xml")) + def setup_build_environment(self, env): + # Set up environment for boost source compilation + boost_src_dir = os.path.join(self.stage.source_path, "boost_source_files") + env.set("BOOST_ROOT", boost_src_dir) + env.set("Boost_SRC_DIR", boost_src_dir) + + # Include paths for compilation + env.append_path("CPLUS_INCLUDE_PATH", self.spec["python"].headers.directories[0]) + + # For MPI - set compiler wrappers + if "+mpi" in self.spec: + env.set("MPI_CXX", self.spec["mpi"].mpicxx) + env.set("MPI_CC", self.spec["mpi"].mpicc) + env.set("MPICXX", self.spec["mpi"].mpicxx) + + # Add MPI include path if available + if hasattr(self.spec["mpi"], "headers"): + env.append_path("CPLUS_INCLUDE_PATH", self.spec["mpi"].headers.directories[0]) + + # For Python + env.set("PYTHON", self.spec["python"].command.path) + + # Compiler flags + env.append_flags("CXXFLAGS", "-fpermissive") + env.append_flags("CXXFLAGS", "-DBOOST_NO_AUTO_PTR") + env.append_flags("CXXFLAGS", "-DBOOST_FILESYSTEM_NO_CXX20_ATOMIC_REF") + env.append_flags("CXXFLAGS", "-DBOOST_TIMER_ENABLE_DEPRECATED") + env.append_flags("CXXFLAGS", self.compiler.cxx14_flag) diff --git a/repos/spack_repo/builtin/packages/alpscore/package.py b/repos/spack_repo/builtin/packages/alpscore/package.py new file mode 100644 index 00000000000..dbd9cb6973e --- /dev/null +++ b/repos/spack_repo/builtin/packages/alpscore/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.cmake import CMakePackage + +from spack.package import * + + +class Alpscore(CMakePackage): + """The ALPS (Algorithms and Libraries for Physics Simulations) Core libraries aim to provide + a set of well tested, robust, and standardized components for numerical simulations of + condensed matter systems, in particular systems with strongly correlated electrons. + Note that this package provides only the core libraries of ALPS. + """ + + # Homepage and source + homepage = "https://alpscore.org" + url = "https://github.com/ALPSCore/ALPSCore/archive/refs/tags/v2.3.2.tar.gz" + + # Maintainers and License info + maintainers("egull") + license("MIT", checked_by="egull") + + # Versions and checksums + version("2.3.2", sha256="bd9b5af0a33acc825ffedfaa0bf794a420ab2b9b50f6a4e634ecbde43ae9cc24") + + # Build system dependencies + depends_on("cmake@3.1:", type="build") + depends_on("c", type="build") + depends_on("cxx", type="build") + + # Other dependencies + depends_on("mpi") + depends_on("hdf5@1.8: ~mpi+hl") + depends_on("boost@1.56.0: +chrono +date_time +filesystem +iostreams +mpi") + depends_on("eigen@3.3.4:") + + # Conflicts in dependencies + conflicts("^cmake@3.6", when="platform=darwin", msg="CMake 3.6 has a known issue on macOS") + conflicts("^hdf5@1.10 ~mpi+hl", msg="HDF5 1.10 has a known issue") + + def cmake_args(self): + args = [] + mpi = self.spec["mpi"] + args.append(self.define("CMAKE_C_COMPILER", mpi.mpicc)) + args.append(self.define("CMAKE_CXX_COMPILER", mpi.mpicxx)) + return args + + def setup_run_environment(self, env): + # Set environment variable for ALPSCore + env.set("ALPSCore_DIR", self.prefix) diff --git a/repos/spack_repo/builtin/packages/alsa_lib/package.py b/repos/spack_repo/builtin/packages/alsa_lib/package.py index ed81b579a1e..95299a59a91 100644 --- a/repos/spack_repo/builtin/packages/alsa_lib/package.py +++ b/repos/spack_repo/builtin/packages/alsa_lib/package.py @@ -13,19 +13,28 @@ class AlsaLib(AutotoolsPackage): space library that developers compile ALSA applications against.""" homepage = "https://www.alsa-project.org" - url = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.2.3.2.tar.bz2" + url = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.2.15.2.tar.bz2" + git = "https://github.com/alsa-project/alsa-lib.git" license("LGPL-2.1-or-later") + version("1.2.15.3", sha256="7b079d614d582cade7ab8db2364e65271d0877a37df8757ac4ac0c8970be861e") + version("1.2.15.2", sha256="637eefd4966ce738da44464494df2b2894e19778fac2f9e7c47277e2af9297f4") + version("1.2.9", sha256="dc9c643fdc4ccfd0572cc685858dd41e08afb583f30460b317e4188275f615b2") + version("1.2.8", sha256="1ab01b74e33425ca99c2e36c0844fd6888273193bd898240fe8f93accbcbf347") version("1.2.3.2", sha256="e81fc5b7afcaee8c9fd7f64a1e3043e88d62e9ad2c4cff55f578df6b0a9abe15") version("1.2.2", sha256="d8e853d8805574777bbe40937812ad1419c9ea7210e176f0def3e6ed255ab3ec") version("1.1.4.1", sha256="91bb870c14d1c7c269213285eeed874fa3d28112077db061a3af8010d0885b76") variant("python", default=False, description="enable python") + variant("plugins", default=False, description="enable plugins") patch("python.patch", when="@1.1.4:1.1.5 +python") depends_on("c", type="build") # generated + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") depends_on("python", type=("link", "run"), when="+python") @@ -34,6 +43,8 @@ class AlsaLib(AutotoolsPackage): def configure_args(self): spec = self.spec args = [] + if spec.satisfies("+plugins"): + args.append("--with-pcm-plugins=all --with-ctl-plugins=all --enable-pcm") if spec.satisfies("+python"): args.append(f"--with-pythonlibs={spec['python'].libs.ld_flags}") args.append(f"--with-pythonincludes={spec['python'].headers.include_flags}") diff --git a/repos/spack_repo/builtin/packages/alsa_plugins/package.py b/repos/spack_repo/builtin/packages/alsa_plugins/package.py new file mode 100644 index 00000000000..34721caefcc --- /dev/null +++ b/repos/spack_repo/builtin/packages/alsa_plugins/package.py @@ -0,0 +1,58 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import os + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class AlsaPlugins(AutotoolsPackage): + """The ALSA Plugins package contains plugins for various audio libraries and sound servers.""" + + homepage = "https://github.com/alsa-project/alsa-plugins" + url = "https://github.com/alsa-project/alsa-plugins" + git = "https://github.com/alsa-project/alsa-plugins" + + # notify when the package is updated. + maintainers("biddisco") + + license("LGPL-2.1-or-later", checked_by="biddisco") + + version("1.2.12", tag="v1.2.12", commit="52574cb5ccbb8b546df2759e4b341a20332269b6") + + depends_on("c", type="build") + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + + depends_on("alsa-lib") + depends_on("pulseaudio +alsa", when="+pulseaudio") + + variant("pulseaudio", default=False, description="Enable pulseaudio support") + + conflicts("platform=darwin", msg="ALSA (+plugins) only works for Linux") + + def configure_args(self): + args = [] + args += self.enable_or_disable("pulseaudio") + return args + + # to get plugins to load without the user manually entering env vars for paths + def setup_run_environment(self, env): + # 1. ALSA plugin directory in ALSA_PLUGIN_DIR + alsa_plugin_dir = os.path.join(self.prefix.lib, "alsa-lib") + if os.path.exists(alsa_plugin_dir): + env.prepend_path("ALSA_PLUGIN_DIR", alsa_plugin_dir) + + # 2. ALSA lib directory in LD_LIBRARY_PATH + alsa_lib_libdir = self.spec["alsa-lib"].prefix.lib + if os.path.exists(alsa_lib_libdir): + env.prepend_path("LD_LIBRARY_PATH", alsa_lib_libdir) + + # 2. Pulseaudio lib directory in LD_LIBRARY_PATH + pulseaudio_libdir = os.path.join(self.spec["pulseaudio"].prefix.lib, "pulseaudio") + if os.path.exists(pulseaudio_libdir): + env.prepend_path("LD_LIBRARY_PATH", pulseaudio_libdir) diff --git a/repos/spack_repo/builtin/packages/aluminum/package.py b/repos/spack_repo/builtin/packages/aluminum/package.py index 17f21c732e1..8dcf3c67969 100644 --- a/repos/spack_repo/builtin/packages/aluminum/package.py +++ b/repos/spack_repo/builtin/packages/aluminum/package.py @@ -51,14 +51,12 @@ class Aluminum(CachedCMakePackage, CudaPackage, ROCmPackage): "cuda_rma", default=False, when="+cuda", - description="Builds with support for CUDA intra-node " - " Put/Get and IPC RMA functionality", + description="Builds with support for CUDA intra-node Put/Get and IPC RMA functionality", ) variant( "ht", default=False, - description="Builds with support for host-enabled MPI" - " communication of accelerator data", + description="Builds with support for host-enabled MPI communication of accelerator data", ) variant("nccl", default=False, description="Builds with support for NCCL communication lib") variant( diff --git a/repos/spack_repo/builtin/packages/amber/package.py b/repos/spack_repo/builtin/packages/amber/package.py index 101fb1fdb08..3c450691af3 100644 --- a/repos/spack_repo/builtin/packages/amber/package.py +++ b/repos/spack_repo/builtin/packages/amber/package.py @@ -32,17 +32,11 @@ class Amber(Package, CudaPackage): version("20", sha256="a4c53639441c8cc85adee397933d07856cc4a723c82c6bea585cd76c197ead75") version("18", sha256="2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277") - version( - "16", - sha256="3b7ef281fd3c46282a51b6a6deed9ed174a1f6d468002649d84bfc8a2577ae5d", - deprecated=True, - ) for ver, ambertools_ver, ambertools_checksum in ( # (version amber, version ambertools, sha256sum) ("20", "21", "f55fa930598d5a8e9749e8a22d1f25cab7fcf911d98570e35365dd7f262aaafd"), ("18", "19", "0c86937904854b64e4831e047851f504ec45b42e593db4ded92c1bee5973e699"), - ("16", "16", "7b876afe566e9dd7eb6a5aa952a955649044360f15c1f5d4d91ba7f41f3105fa"), ): resource( when="@{0}".format(ver), @@ -83,21 +77,6 @@ class Amber(Package, CudaPackage): ("18", "15", "4deb3df329c05729561dcc7310e49059eaddc504c4210ad31fad11dc70f61742"), ("18", "16", "cf02f9b949127363bad1aa700ab662a3c7cf9ce0e2e4750e066d2204b9500a99"), ("18", "17", "480300f949e0dd6402051810a9714adb388cf96e454a55346c76954cdd69413d"), - ("16", "1.txt", "c7ef2303bb35131a48e2256c5a3c7b391efa73e2acf757d7e39760efb6320ed4"), - ("16", "2", "a4db183f7c337a67f5d6b5015e3ae0af0d0edaa56894f0e9e3469c99708fed1c"), - ("16", "3", "5b279531c42445c6f58281dd94588460218d2258ec9013c8447f3e2b7b81bf02"), - ("16", "4", "035bddd63bc9d5fd6de26beab31887e5c14c3caa4958d2424d72f3c49832bd42"), - ("16", "5", "02d8a1fcb6baa466de4e3683afa48076394acd805f490fbbe50ab19040675136"), - ("16", "6", "69a3e64d75255d9179c98a2b3a63fe76d5be08c9fc41f27ac197663c97915113"), - ("16", "7", "0d674c907758e90a168345e6b35b7a0de79c2ead390ab372465a354fcab67d17"), - ("16", "8", "d722c0db46af905a5bd13b60e3130c4ddfb0c9da86df0a33253e5f8d53068946"), - ("16", "9", "b563e744fbc50c1240d23df369750879df2cec69fba933704b97a73a66d9c4f1"), - ("16", "10", "99affc65740080b7a1ab87c5c9119bf5be7cf47b2b2d8fc13407d35bd2ba6238"), - ("16", "11", "86b89dbcae80ef48720fd3c7da88cffbdabfd4021af5a827339b56a33ddae27a"), - ("16", "12", "c8d61d1efbd44086f88d74ad9e07dfdc3737dc7053c7d2503131ba0918973a03"), - ("16", "13", "5ce28e6e0118a4780ad72fc096e617c874cde7d140e15f87451babb25aaf2d8f"), - ("16", "14", "93703e734e76da30a5e050189a66d5a4d6bec5885752503c4c798e2f44049080"), - ("16", "15", "a156ec246cd06688043cefde24de0d715fd46b08f5c0235015c2c5c3c6e37488"), ): patch_url_str = "https://ambermd.org/bugfixes/{0}.0/update.{1}" patch(patch_url_str.format(ver, num), sha256=checksum, level=0, when="@{0}".format(ver)) @@ -139,7 +118,6 @@ class Amber(Package, CudaPackage): # /AmberTools/src/configure2:1329 depends_on("cuda@:11.1", when="@20:+cuda") # when='AmberTools@21:' depends_on("cuda@:10.2.89", when="@18+cuda") - depends_on("cuda@7.5.18", when="@:16+cuda") depends_on("gmake", type="build") # conflicts diff --git a/repos/spack_repo/builtin/packages/ambertools/package.py b/repos/spack_repo/builtin/packages/ambertools/package.py index f7d521e0a7f..50b67d71a8d 100644 --- a/repos/spack_repo/builtin/packages/ambertools/package.py +++ b/repos/spack_repo/builtin/packages/ambertools/package.py @@ -1,6 +1,7 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os from spack_repo.builtin.build_systems.cmake import CMakePackage @@ -13,17 +14,29 @@ class Ambertools(CMakePackage): and its components are mostly released under the GNU General Public License (GPL). A few components are included that are in the public domain or which have other, open-source, licenses. The libsander and - libpbsa libraries use the LGPL license.""" + libpbsa libraries use the LGPL license. + + A manual download is required for AmberTools. Spack will search your current + directory for the download files. Alternatively, add the files to a mirror + so that Spack can find them. For instructions on how to set up a mirror, see + https://spack.readthedocs.io/en/latest/mirrors.html + """ homepage = "https://ambermd.org/AmberTools.php" - url = "https://ambermd.org/downloads/AmberTools22jlmrcc.tar.bz2" + url = f"file://{os.getcwd()}/ambertools25.tar.bz2" + manual_download = True maintainers("d-beltran") - version("22jlmrcc", sha256="1571d4e0f7d45b2a71dce5999fa875aea8c90ee219eb218d7916bf30ea229121") - + version( + "22jlmrcc", + sha256="1571d4e0f7d45b2a71dce5999fa875aea8c90ee219eb218d7916bf30ea229121", + deprecated=True, + ) + version("25", sha256="ac009b2adeb25ccd2191db28905b867df49240e038dc590f423edf0d84f8a13b") depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("fortran", type="build") depends_on("flex", type="build") depends_on("bison", type="build") @@ -44,7 +57,8 @@ class Ambertools(CMakePackage): type=("build", "run"), ) # Python dependencies - depends_on("python@3.8:3.10 +tkinter", type=("build", "run")) + depends_on("python@3.8:3.10 +tkinter", when="@22jlmrcc", type=("build", "run")) + depends_on("python@3.11:", when="@25:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-numpy", type=("build", "run")) depends_on("py-matplotlib", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/amd_aocl/package.py b/repos/spack_repo/builtin/packages/amd_aocl/package.py index 76216e82a9b..ee92a4576e3 100644 --- a/repos/spack_repo/builtin/packages/amd_aocl/package.py +++ b/repos/spack_repo/builtin/packages/amd_aocl/package.py @@ -21,11 +21,13 @@ class AmdAocl(BundlePackage): https://www.amd.com/en/developer/aocl/eula/aocl-4-1-eula.html """ - homepage = "https://developer.amd.com/amd-aocl/" + homepage = "https://www.amd.com/en/developer/aocl.html" maintainers("amd-toolchain-support") - version("5.0", preferred=True) + version("5.2") + version("5.1") + version("5.0") version("4.2") version("4.1") version("4.0") @@ -63,7 +65,7 @@ class AmdAocl(BundlePackage): depends_on("aocl-da ~openmp") depends_on("aocl-compression ~openmp") - for vers in ["2.2", "3.0", "3.1", "3.2", "4.0", "4.1", "4.2", "5.0"]: + for vers in ["2.2", "3.0", "3.1", "3.2", "4.0", "4.1", "4.2", "5.0", "5.1", "5.2"]: with when(f"@={vers}"): depends_on(f"amdblis@={vers}") depends_on(f"amdfftw@={vers}") @@ -77,3 +79,5 @@ class AmdAocl(BundlePackage): depends_on(f"aocl-libmem@={vers}") if Version(vers) >= Version("5.0"): depends_on(f"aocl-da@={vers}") + if Version(vers) >= Version("5.2"): + depends_on(f"aocl-dlp@={vers}") diff --git a/repos/spack_repo/builtin/packages/amdblis/package.py b/repos/spack_repo/builtin/packages/amdblis/package.py index 88be9e2eb2e..5a6f8f8d1bf 100644 --- a/repos/spack_repo/builtin/packages/amdblis/package.py +++ b/repos/spack_repo/builtin/packages/amdblis/package.py @@ -36,11 +36,9 @@ class Amdblis(BlisBase): license("BSD-3-Clause") - version( - "5.0", - sha256="5abb34972b88b2839709d0af8785662bc651c7806ccfa41d386d93c900169bc2", - preferred=True, - ) + version("5.2", sha256="c553bd543eedc87920df9b82634ae4c02662145ed737f51fdf4c9bca5e588028") + version("5.1", sha256="4ab210cea8753f4be9646a3ad8e6b42c7d19380084a66312497c97278b8c76a4") + version("5.0", sha256="5abb34972b88b2839709d0af8785662bc651c7806ccfa41d386d93c900169bc2") version("4.2", sha256="0e1baf850ba0e6f99e79f64bbb0a59fcb838ddb5028e24527f52b407c3c62963") version("4.1", sha256="a05c6c7d359232580d1d599696053ad0beeedf50f3b88d5d22ee7d34375ab577") version("4.0", sha256="cddd31176834a932753ac0fc4c76332868feab3e9ac607fa197d8b44c1e74a41") @@ -109,9 +107,9 @@ def configure_args(self): def create_symlink(self): with working_dir(self.prefix.lib): if os.path.isfile("libblis-mt.a"): - os.symlink("libblis-mt.a", "libblis.a") + symlink("libblis-mt.a", "libblis.a") if os.path.isfile("libblis-mt.so"): - os.symlink("libblis-mt.so", "libblis.so") + symlink("libblis-mt.so", "libblis.so") @property def libs(self): diff --git a/repos/spack_repo/builtin/packages/amdfftw/amdfftw40-clang.patch b/repos/spack_repo/builtin/packages/amdfftw/amdfftw40-clang.patch deleted file mode 100644 index b475027a33b..00000000000 --- a/repos/spack_repo/builtin/packages/amdfftw/amdfftw40-clang.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Nur amd-fftw-4.0/kernel/cpy2d-pair.c amd-fftw-4.0-new/kernel/cpy2d-pair.c ---- amd-fftw-4.0/kernel/cpy2d-pair.c 2022-11-11 16:52:26.000000000 +0530 -+++ amd-fftw-4.0-new/kernel/cpy2d-pair.c 2023-05-12 00:09:10.408511128 +0530 -@@ -21,6 +21,7 @@ - - /* out of place copy routines for pairs of isomorphic 2D arrays */ - #include "kernel/ifftw.h" -+#include - - #ifdef AMD_OPT_ALL - #include "immintrin.h" diff --git a/repos/spack_repo/builtin/packages/amdfftw/package.py b/repos/spack_repo/builtin/packages/amdfftw/package.py index da51539e163..a50163fb98a 100644 --- a/repos/spack_repo/builtin/packages/amdfftw/package.py +++ b/repos/spack_repo/builtin/packages/amdfftw/package.py @@ -39,11 +39,9 @@ class Amdfftw(FftwBase): license("GPL-2.0-only") - version( - "5.0", - sha256="bead6c08309a206f8a6258971272affcca07f11eb57b5ecd8496e2e7e3ead877", - preferred=True, - ) + version("5.2", sha256="143c7a936fd197a94551aa1c67d7ae7cbf7d96338947aa21d3007df7aea46c78") + version("5.1", sha256="4cc0d6985afc5ce14cafc195ad46d9876ac4f35b959861b41a3b681385d7320d") + version("5.0", sha256="bead6c08309a206f8a6258971272affcca07f11eb57b5ecd8496e2e7e3ead877") version("4.2", sha256="391ef7d933e696762e3547a35b58ab18d22a6cf3e199c74889bcf25a1d1fc89b") version("4.1", sha256="f1cfecfcc0729f96a5bd61c6b26f3fa43bb0662d3fff370d4f73490c60cf4e59") version("4.0", sha256="5f02cb05f224bd86bd88ec6272b294c26dba3b1d22c7fb298745fd7b9d2271c0") diff --git a/repos/spack_repo/builtin/packages/amdlibflame/package.py b/repos/spack_repo/builtin/packages/amdlibflame/package.py index 0e8eb62a3e4..4e073edf096 100644 --- a/repos/spack_repo/builtin/packages/amdlibflame/package.py +++ b/repos/spack_repo/builtin/packages/amdlibflame/package.py @@ -48,11 +48,9 @@ class Amdlibflame(CMakePackage, LibflameBase): license("BSD-3-Clause") - version( - "5.0", - sha256="3bee3712459a8c5bd728a521d8a4c8f46735730bf35d48c878d2fc45fc000918", - preferred=True, - ) + version("5.2", sha256="fb5fe5128f718050c9911443fcf7ed91b60538a40d57084ed0124bb91afabb9b") + version("5.1", sha256="25524ba78b5952303369fa0859d217e44071144fd122a9dc3f72ed0bd73e3b2d") + version("5.0", sha256="3bee3712459a8c5bd728a521d8a4c8f46735730bf35d48c878d2fc45fc000918") version("4.2", sha256="93a433c169528ffba74a99df0ba3ce3d5b1fab9bf06ce8d2fd72ee84768ed84c") version("4.1", sha256="8aed69c60d11cc17e058cabcb8a931cee4f343064ade3e73d3392b7214624b61") version("4.0", sha256="bcb05763aa1df1e88f0da5e43ff86d956826cbea1d9c5ff591d78a3e091c66a4") @@ -83,7 +81,8 @@ class Amdlibflame(CMakePackage, LibflameBase): # Required dependencies with when("build_system=cmake"): generator("make") - depends_on("cmake@3.22:", type="build") + depends_on("cmake@3.22:", when="@:5.0", type="build") + depends_on("cmake@3.26:", when="@5.1:", type="build") conflicts("threads=pthreads", msg="pthread is not supported") conflicts("threads=openmp", when="@:3", msg="openmp is not supported by amdlibflame < 4.0") @@ -93,6 +92,9 @@ class Amdlibflame(CMakePackage, LibflameBase): patch("cray-compiler-wrapper.patch", when="@:3.0.0", level=1) patch("supermat.patch", when="@4.0:4.1", level=1) patch("libflame-pkgconfig.patch", when="@4.2") + # Apply amdlibflame@5.2 patch to fix necessary ifdef guards to check + # for Zen4 kernel availability + patch("zen3_build_fix.patch", when="@5.2", level=1) provides("flame@5.2", when="@2:") @@ -103,7 +105,7 @@ class Amdlibflame(CMakePackage, LibflameBase): depends_on("python+pythoncmd", type="build") depends_on("gmake@4:", when="@3.0.1,3.1:", type="build") - for vers in ["4.1", "4.2", "5.0"]: + for vers in ["4.1", "4.2", "5.0", "5.1", "5.2"]: with when(f"@{vers}"): depends_on(f"aocl-utils@{vers}") diff --git a/repos/spack_repo/builtin/packages/amdlibflame/zen3_build_fix.patch b/repos/spack_repo/builtin/packages/amdlibflame/zen3_build_fix.patch new file mode 100755 index 00000000000..e83342f48d4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/amdlibflame/zen3_build_fix.patch @@ -0,0 +1,101 @@ +diff --git a/src/base/flamec/blis/2/bl1_gemv.c b/src/base/flamec/blis/2/bl1_gemv.c +index 2fe328266..a18d08352 100644 +--- a/src/base/flamec/blis/2/bl1_gemv.c ++++ b/src/base/flamec/blis/2/bl1_gemv.c +@@ -9,7 +9,7 @@ + */ + + /* +-* Modifications Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved. ++* Modifications Copyright (c) 2023-2026 Advanced Micro Devices, Inc. All rights reserved. + */ + #include "blis1.h" + #include "FLA_f2c.h" +@@ -442,7 +442,7 @@ void bl1_dgemv_blas( trans1_t transa, integer m, integer n, double* alpha, doubl + *beta, + y, incy ); + #else +-#if FLA_ENABLE_AOCL_BLAS ++#if FLA_ENABLE_AOCL_BLAS && defined(BLIS_KERNELS_ZEN4) + /* Use direct single threaded BLIS kernel */ + aocl_fla_init(); + if ( FLA_IS_MIN_ARCH_ID( FLA_ARCH_AVX512 ) && incx > 0 && incy > 0 ) +diff --git a/src/map/lapack2flamec/f2c/c/dlarf.c b/src/map/lapack2flamec/f2c/c/dlarf.c +index fc0138588..2b6f7aabb 100644 +--- a/src/map/lapack2flamec/f2c/c/dlarf.c ++++ b/src/map/lapack2flamec/f2c/c/dlarf.c +@@ -4,7 +4,7 @@ + standard place, with -lf2c -lm -- in that order, at the end of the command line, as in cc *.o -lf2c + -lm Source for libf2c is in /netlib/f2c/libf2c.zip, e.g., http://www.netlib.org/f2c/libf2c.zip */ + /* +- * Modifications Copyright (c) 2024-2025 Advanced Micro Devices, Inc. All rights reserved. ++ * Modifications Copyright (c) 2024-2026 Advanced Micro Devices, Inc. All rights reserved. + */ + #include "FLA_f2c.h" /* Table of constant values */ + #if FLA_ENABLE_AOCL_BLAS +@@ -295,7 +295,7 @@ void dlarf_(char *side, integer *m, integer *n, doublereal *v, integer *incv, do + { + /* Process in a single call */ + /* w(1:lastc,1) := C(1:lastv,1:lastc)**T * v(1:lastv,1) */ +-#if FLA_ENABLE_AOCL_BLAS ++#if FLA_ENABLE_AOCL_BLAS && defined(BLIS_KERNELS_ZEN4) + if(FLA_IS_MIN_ARCH_ID(FLA_ARCH_AVX512) && *incv > 0) + { + /* Use direct single threaded BLIS kernel */ +@@ -376,7 +376,7 @@ void dlarf_(char *side, integer *m, integer *n, doublereal *v, integer *incv, do + else + { + /* w(1:lastc,1) := C(1:lastc,1:lastv) * v(1:lastv,1) */ +-#if FLA_ENABLE_AOCL_BLAS ++#if FLA_ENABLE_AOCL_BLAS && defined(BLIS_KERNELS_ZEN4) + aocl_fla_init(); + if(FLA_IS_MIN_ARCH_ID(FLA_ARCH_AVX512) && *incv > 0) + { +diff --git a/src/map/lapack2flamec/f2c/c/dlarft.c b/src/map/lapack2flamec/f2c/c/dlarft.c +index 4b2666a7a..f82ddaf99 100644 +--- a/src/map/lapack2flamec/f2c/c/dlarft.c ++++ b/src/map/lapack2flamec/f2c/c/dlarft.c +@@ -13,7 +13,6 @@ + + static integer c__1 = 1; + static doublereal c_b6 = 1.; +-static doublereal c_b0 = 0.; + /* > \brief \b DLARFT forms the triangular factor T of a block reflector H = I - vtvH */ + /* =========== DOCUMENTATION =========== */ + /* Online html documentation available at */ +@@ -278,7 +277,7 @@ void dlarft_(char *direct, char *storev, integer *n, integer *k, doublereal *v, + i__2 = j - i__; + i__3 = i__ - 1; + d__1 = -tau[i__]; +-#if FLA_ENABLE_AOCL_BLAS ++#if FLA_ENABLE_AOCL_BLAS && defined(BLIS_KERNELS_ZEN4) + if(FLA_IS_MIN_ARCH_ID(FLA_ARCH_AVX512)) + { + bli_dgemv_t_zen4_int(BLIS_CONJUGATE, BLIS_NO_CONJUGATE, i__2, i__3, &d__1, +@@ -315,7 +314,7 @@ void dlarft_(char *direct, char *storev, integer *n, integer *k, doublereal *v, + i__2 = i__ - 1; + i__3 = j - i__; + d__1 = -tau[i__]; +-#if FLA_ENABLE_AOCL_BLAS ++#if FLA_ENABLE_AOCL_BLAS && defined(BLIS_KERNELS_ZEN4) + if(FLA_IS_MIN_ARCH_ID(FLA_ARCH_AVX512) && *ldv > 0) + { + bli_dgemv_n_zen4_int_40x2_st(BLIS_NO_TRANSPOSE, BLIS_NO_CONJUGATE, i__2, +@@ -387,7 +386,7 @@ void dlarft_(char *direct, char *storev, integer *n, integer *k, doublereal *v, + i__1 = *n - *k + i__ - j; + i__2 = *k - i__; + d__1 = -tau[i__]; +-#if FLA_ENABLE_AOCL_BLAS ++#if FLA_ENABLE_AOCL_BLAS && defined(BLIS_KERNELS_ZEN4) + if(FLA_IS_MIN_ARCH_ID(FLA_ARCH_AVX512)) + { + bli_dgemv_t_zen4_int(BLIS_CONJUGATE, BLIS_NO_CONJUGATE, i__1, i__2, +@@ -424,7 +423,7 @@ void dlarft_(char *direct, char *storev, integer *n, integer *k, doublereal *v, + i__1 = *k - i__; + i__2 = *n - *k + i__ - j; + d__1 = -tau[i__]; +-#if FLA_ENABLE_AOCL_BLAS ++#if FLA_ENABLE_AOCL_BLAS && defined(BLIS_KERNELS_ZEN4) + if(FLA_IS_MIN_ARCH_ID(FLA_ARCH_AVX512) && *ldv > 0) + { + bli_dgemv_n_zen4_int_40x2_st(BLIS_NO_TRANSPOSE, BLIS_NO_CONJUGATE, i__1, diff --git a/repos/spack_repo/builtin/packages/amdlibm/package.py b/repos/spack_repo/builtin/packages/amdlibm/package.py index 5629e18d3ea..51a7da84d93 100644 --- a/repos/spack_repo/builtin/packages/amdlibm/package.py +++ b/repos/spack_repo/builtin/packages/amdlibm/package.py @@ -2,14 +2,14 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import os +from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.scons import SConsPackage from spack.package import * -class Amdlibm(SConsPackage): +class Amdlibm(SConsPackage, CMakePackage): """AMD LibM is a software library containing a collection of basic math functions optimized for x86-64 processor-based machines. It provides many routines from the list of standard C99 math functions. @@ -32,11 +32,9 @@ class Amdlibm(SConsPackage): license("BSD-3-Clause") - version( - "5.0", - sha256="ba1d50c068938c9a927e37e5630f683b6149d7d5a95efffeb76e7c9a8bcb2b5e", - preferred=True, - ) + version("5.2", sha256="5cec8d30dc1083923c332c80808eda637ebd385b02a0cebf65ce72b5c8cbc029") + version("5.1", sha256="7acf2c98469353b60a59fad167a98e1ae689055a3faf8352a254832145c9d59e") + version("5.0", sha256="ba1d50c068938c9a927e37e5630f683b6149d7d5a95efffeb76e7c9a8bcb2b5e") version("4.2", sha256="58847b942e998b3f52eb41ae26403c7392d244fcafa707cbf23165aac24edd9e") version("4.1", sha256="5bbbbc6bc721d9a775822eab60fbc11eb245e77d9f105b4fcb26a54d01456122") version("4.0", sha256="038c1eab544be77598eccda791b26553d3b9e2ee4ab3f5ad85fdd2a77d015a7d") @@ -47,14 +45,25 @@ class Amdlibm(SConsPackage): variant("verbose", default=False, description="Building with verbosity", when="@:4.1") + # Build system + # - For version 5.2: both 'cmake' and 'scons' are supported, with 'cmake' as default. + # - For version 5.1: both 'scons' and 'cmake' are supported, with 'scons' as default. + # - For versions below 5.1: only 'scons' is supported. + with when("@5.2"): + build_system("cmake", "scons", default="cmake") + + with when("@:5.1"): + build_system("scons", conditional("cmake", when="@5.1:"), default="scons") + # Mandatory dependencies depends_on("c", type="build") depends_on("cxx", type="build") depends_on("python@3.6.1:", type=("build", "run")) depends_on("scons@3.1.2:4.8.1", type=("build")) + depends_on("cmake@3.26:3.30.6", type="build", when="build_system=cmake") depends_on("mpfr", type=("link")) - for vers in ["4.1", "4.2", "5.0"]: + for vers in ["4.1", "4.2", "5.0", "5.1", "5.2"]: with when(f"@{vers}"): depends_on(f"aocl-utils@{vers}") @@ -63,12 +72,10 @@ class Amdlibm(SConsPackage): # Patch to update the SCons environment with newly introduced # Spack build environment variables. patch("libm-ose-SconsSpack.patch", when="@3.1:4.2") - patch("libm-ose-SconsSpack-5.patch", when="@5.0") + patch("libm-ose-SconsSpack-5.patch", when="@5.0:5.1") conflicts("%gcc@:9.1.0", msg="Minimum supported GCC version is 9.2.0") - conflicts("%clang@:9.0", msg="Minimum supported Clang version is 9") - conflicts("%clang@17.0.0:", msg="Maximum supported Clang version is 17.0.0") - conflicts("%gcc@14.3.0:", msg="Maximum supported GCC version is 14.2.0") + conflicts("%clang@:11.1", msg="Minimum supported Clang version is 12.0") conflicts("%aocc@3.2.0", msg="dependency on python@3.6.2") def patch(self): @@ -98,12 +105,22 @@ def build_args(self, spec, prefix): install_args = build_args + def cmake_args(self): + """Setting build arguments for amdlibm when using CMake""" + spec = self.spec + + args = [ + self.define("AOCL_UTILS_INCLUDE_DIR", spec["aocl-utils"].prefix.include), + f"-DAOCL_UTILS_LIB={spec['aocl-utils'].libs}", + ] + return args + @run_after("install") def create_symlink(self): """Symbolic link for backward compatibility""" with working_dir(self.prefix.lib): - os.symlink("libalm.a", "libamdlibm.a") - os.symlink("libalm.so", "libamdlibm.so") + symlink("libalm.a", "libamdlibm.a") + symlink("libalm.so", "libamdlibm.so") if self.spec.satisfies("@4.0:"): - os.symlink("libalmfast.a", "libamdlibmfast.a") - os.symlink("libalmfast.so", "libamdlibmfast.so") + symlink("libalmfast.a", "libamdlibmfast.a") + symlink("libalmfast.so", "libamdlibmfast.so") diff --git a/repos/spack_repo/builtin/packages/amdscalapack/package.py b/repos/spack_repo/builtin/packages/amdscalapack/package.py index 8906538343e..91b4592388f 100644 --- a/repos/spack_repo/builtin/packages/amdscalapack/package.py +++ b/repos/spack_repo/builtin/packages/amdscalapack/package.py @@ -33,11 +33,10 @@ class Amdscalapack(ScalapackBase): tags = ["e4s"] license("BSD-3-Clause-Open-MPI") - version( - "5.0", - sha256="a33cf16c51cfd65c7acb5fbdb8884a5c147cdefea73931b07863c56d54f812cc", - preferred=True, - ) + + version("5.2", sha256="ff01f0f39c9e6d44fa493e1c68d9862d2600f425e9caaec1fe5179c10debf1d9") + version("5.1", sha256="92f6f6b2081e27731c8b9e96c742203777cc7f2a848b96ca7511f4d259142b37") + version("5.0", sha256="a33cf16c51cfd65c7acb5fbdb8884a5c147cdefea73931b07863c56d54f812cc") version("4.2", sha256="c6e9a846c05cdc05252b0b5f264164329812800bf13f9d97c77114dc138e6ccb") version("4.1", sha256="b2e51c3604e5869d1faaef2e52c92071fcb3de1345aebb2ea172206622067ad9") version("4.0", sha256="f02913b5984597b22cdb9a36198ed61039a1bf130308e778dc31b2a7eb88b33b") @@ -64,7 +63,7 @@ def patch(self): filter_file("-cpp", "", "CMakeLists.txt") # remove the C-style comments in header file that cause issues with flang if self.spec.satisfies("@4.2: %clang@18:"): - which("sed")( + which("sed", required=True)( "-i", "1,23d", join_path(self.stage.source_path, "FRAMEWORK", "SL_Context_fortran_include.h"), diff --git a/repos/spack_repo/builtin/packages/amdsmi/package.py b/repos/spack_repo/builtin/packages/amdsmi/package.py index c39e6614d44..50f3de0cb2a 100644 --- a/repos/spack_repo/builtin/packages/amdsmi/package.py +++ b/repos/spack_repo/builtin/packages/amdsmi/package.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re from spack_repo.builtin.build_systems.cmake import CMakePackage @@ -14,13 +15,29 @@ class Amdsmi(CMakePackage): applications to monitor and control AMD device.""" homepage = "https://github.com/ROCm/amdsmi" - url = "https://github.com/ROCm/amdsmi/archive/refs/tags/rocm-6.4.1.tar.gz" + git = "https://github.com/ROCm/rocm-systems.git" tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") - libraries = ["libamd_smi"] - + executables = ["amd-smi"] license("MIT") + + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/amdsmi/archive/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-systems/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b") + version("7.2.1", sha256="201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f") + version("7.2.0", sha256="728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638") + version("7.1.1", sha256="2a9dfafac9593d3093c3f5fc611682e712f08816414f210344ea7b719c085ff5") + version("7.1.0", sha256="17ccddf8988a5674edb360b9f3b41bf3d94c6f4ba36cf8d84739c6ccdfc87c50") + version("7.0.2", sha256="6df8d828157124b513f4ffa6c059231398b19120f5b782ec42fc151862e2cf90") + version("7.0.0", sha256="5a126721473859afc687bd5f00bf480cffc76c2aed2bfa0b74dfbc87d93037a2") + version("6.4.3", sha256="a850125bf33402cad6e57d2130e32d8b37bfc315a6dcfddd90fb593fea1f0e46") + version("6.4.2", sha256="194652d8d6fa8acfdd638ae1d474647ea057441e139971d366a24cbb265722f9") version("6.4.1", sha256="5e1030cebacf2c92e63a555db6433ce7bb4f91409910ec98947e459d36630401") version("6.4.0", sha256="6f0200ba7305171e9dadbfcd41ff00c194b98d2b88e0555c57739ef01c767233") version("6.3.3", sha256="e23abc65a1cd75764d7da049b91cce2a095b287279efcd4f90b4b9b63b974dd5") @@ -36,8 +53,6 @@ class Amdsmi(CMakePackage): version("6.0.2", sha256="aeadf07750def0325a0eaa29e767530b2ec94f3d45dc3b7452fd7a2493769428") version("6.0.0", sha256="2626e3af9d60dec245c61af255525a0c0841a73fb7ec2836477c0ce5793de39c") version("5.7.0", sha256="144391d537710dafa9ef69571dd76203e56db6142ab61a1375346b5733137e23") - with default_args(deprecated=True): - version("5.6.0", sha256="595c9d6d79d9071290b2f19ab4ef9222c8d2983b4322b3143fcd9d0b1ce0f6d8") depends_on("c", type="build") depends_on("cxx", type="build") # generated @@ -54,19 +69,21 @@ class Amdsmi(CMakePackage): when="@6.2", ) - @classmethod - def determine_version(cls, lib): - match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib) - if match: - ver = "{0}.{1}.{2}".format( - int(match.group(1)), int(match.group(2)), int(match.group(3)) - ) + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/amdsmi" else: - ver = None - return ver + return "." def cmake_args(self): args = [] args.append(self.define("BUILD_TESTS", "ON")) args.append("-DCMAKE_INSTALL_LIBDIR=lib") return args + + @classmethod + def determine_version(cls, exe): + output = Executable(exe)("version", output=str, error=str) + match = re.search(r"ROCm version: (\d+\.\d+\.\d+)", output) + return match.group(1) if match else None diff --git a/repos/spack_repo/builtin/packages/amduprof/package.py b/repos/spack_repo/builtin/packages/amduprof/package.py index 3c5147f9035..24653c85037 100644 --- a/repos/spack_repo/builtin/packages/amduprof/package.py +++ b/repos/spack_repo/builtin/packages/amduprof/package.py @@ -22,11 +22,25 @@ 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", + url="file://{0}/AMDuProf_Linux_x64_5.2.606.tar.bz2".format(os.getcwd()), + ) + version( + "5.1.701", + sha256="8fd83170170883a6617391609545dffd557d6ca4a8f8f00a7a8a2d6cdee08189", + url="file://{0}/AMDuProf_Linux_x64_5.1.701.tar.bz2".format(os.getcwd()), + ) version( "5.0.1479", sha256="065d24d9b84d2ef94ae8a360bf55c74a0f3fe9250b01cc7fb2642495028130d5", url="file://{0}/AMDuProf_Linux_x64_5.0.1479.tar.bz2".format(os.getcwd()), - preferred=True, ) version( "4.2.850", diff --git a/repos/spack_repo/builtin/packages/amg4psblas/package.py b/repos/spack_repo/builtin/packages/amg4psblas/package.py new file mode 100644 index 00000000000..00603a49121 --- /dev/null +++ b/repos/spack_repo/builtin/packages/amg4psblas/package.py @@ -0,0 +1,114 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +# flake8: noqa: F401,F403 +from spack.package import * + + +class Amg4psblas(AutotoolsPackage): + """AMG4PSBLAS: Algebraic MultiGrid preconditioners for PSBLAS. + Part of the Parallel Sparse Computation Toolkit (PSCToolkit), AMG4PSBLAS provides + advanced preconditioners including Algebraic Multigrid (AMG) and Domain Decomposition + methods for use with the PSBLAS sparse linear system solvers. + """ + + homepage = "https://psctoolkit.github.io/" + git = "https://github.com/sfilippone/amg4psblas.git" + url = "https://github.com/sfilippone/amg4psblas/archive/refs/tags/v1.2.0.tar.gz" + + # List of GitHub accounts to notify when the package is updated. + maintainers("pasquadambra", "cirdans-home", "sfilippone") + + # SPDX identifier of the project's license below. + license("BSD-3-Clause", checked_by="cirdans-home") + + version("develop", branch="development") + version("1.2.0", sha256="971cac9917a84dad97eccef76feb89b5ea66afa0b80d13f45a62dd5685c01878") + version("1.2.0-rc3", sha256="589e23829ea569b984db964b0c40fdf2ae7165290c9118da45b0418514b5cf3a") + + # Variants for third-party libraries + variant("mumps", default=False, description="Activates mumps interface") + variant("umfpack", default=False, description="Activates UMFPACK interface") + variant("superlu", default=False, description="Activates SuperLU interface") + variant("superlu_dist", default=False, description="Activates SuperLU_dist interface") + # Variants for psblas + variant("mpi", default=True, description="Activates MPI support") + variant( + "cuda", + default=False, + description="Activate CUDA support, requires a CUDA-capable psblas with rightcudacc flags", + ) + variant("openmp", default=False, description="Activate OpenMP support") + # Additional configure options + variant("ccopt", default="none", description="Additional CCOPT flags") + variant("cxxopt", default="none", description="Additional CXXOPT flags") + variant("fcopt", default="none", description="Additional FCOPT flags") + variant("extra_opt", default="none", description="Additional EXTRA_OPT flags") + variant("libs", default="none", description="Additional link flags") + variant("clibs", default="none", description="Additional CLIBS flags") + variant("flibs", default="none", description="Additional FLIBS flags") + + # Dependencies: + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + # psblas + depends_on("psblas@develop", when="@develop") + depends_on("psblas@3.9.0", when="@1.2.0") + depends_on("psblas@3.9.0-rc3", when="@1.2.0-rc3") + depends_on("psblas+mpi", when="+mpi") + depends_on("psblas~mpi", when="~mpi") + depends_on("psblas+cuda", when="+cuda") + depends_on("psblas~cuda", when="~cuda") + depends_on("psblas+openmp", when="+openmp") + depends_on("psblas~openmp", when="~openmp") + # third-party libraries + depends_on("mumps+openmp", when="+openmp+mumps") + depends_on("mumps~openmp", when="~openmp+mumps") + depends_on("superlu", when="+superlu") + depends_on("psblas+metis", when="+superlu") + depends_on("superlu-dist+openmp", when="+openmp+superlu_dist") + depends_on("superlu-dist~openmp", when="~openmp+superlu_dist") + depends_on("suite-sparse", when="+umfpack") + # Conflicts + conflicts("~mpi", when="+mumps", msg="MUMPS requires MPI support") + conflicts("~mpi", when="+superlu_dist", msg="SuperLU_dist requires MPI support") + + def configure_args(self): + args = [f"--prefix={self.prefix}"] + args.append(f"--with-psblas={self.spec['psblas'].prefix}") + # Check external libraries + if "+mumps" in self.spec: + args.append(f"--with-mumpsdir={self.spec['mumps'].prefix}") + args.append(f"--with-mumpsincdir={self.spec['mumps'].prefix.include}") + args.append(f"--with-mumpslibdir={self.spec['mumps'].libs.directories[0]}") + if "+umfpack" in self.spec: + args.append(f"--with-umfpackdir={self.spec['suite-sparse'].prefix}") + args.append(f"--with-umfpackincdir={self.spec['suite-sparse'].prefix.include}") + args.append(f"--with-umfpacklibdir={self.spec['suite-sparse'].libs.directories[0]}") + if "+superlu" in self.spec: + args.append(f"--with-superludir={self.spec['superlu'].prefix}") + args.append(f"--with-superluincdir={self.spec['superlu'].prefix.include}") + args.append(f"--with-superlulibdir={self.spec['superlu'].libs.directories[0]}") + if "+superlu_dist" in self.spec: + args.append(f"--with-superludistdir={self.spec['superlu-dist'].prefix}") + args.append(f"--with-superludistincdir={self.spec['superlu-dist'].prefix.include}") + args.append( + f"--with-superludistlibdir={self.spec['superlu-dist'].libs.directories[0]}" + ) + # All the other options + for opt in ["ccopt", "cxxopt", "fcopt", "extra_opt", "libs", "clibs", "flibs"]: + val = self.spec.variants[opt].value + if val != "none": + args.append(f"--with-{opt.replace('_', '-')}={val}") + return args + + @run_after("install") + def samples(self, spec, prefix): + with working_dir(prefix.samples.advanced.fileread): + make() + with working_dir(prefix.samples.advanced.pdegen): + make() diff --git a/repos/spack_repo/builtin/packages/aml/package.py b/repos/spack_repo/builtin/packages/aml/package.py index 954542d70a7..39cd92a0477 100644 --- a/repos/spack_repo/builtin/packages/aml/package.py +++ b/repos/spack_repo/builtin/packages/aml/package.py @@ -36,11 +36,6 @@ class Aml(AutotoolsPackage): version("0.2.1", sha256="bae49e89ed0f2a2ad3547430e79b7e4c018d6228c6ed951a12d59afd0b35f71c") version("0.2.0", sha256="2044a2f3f1d7a19827dd9c0726172b690189b4d3fe938656c4160c022468cc4a") - version( - "0.1.0", - sha256="cc89a8768693f1f11539378b21cdca9f0ce3fc5cb564f9b3e4154a051dcea69b", - deprecated=True, - ) # Generate possible variants. ############################# @@ -127,7 +122,7 @@ def cache_test_sources(self): def test_check_tutorial(self): """Compile and run the tutorial tests as install checks""" - cc = which(os.environ["CC"]) + cc = which(os.environ["CC"], required=True) cc_options = [ "-o", self.smoke_test, @@ -141,6 +136,6 @@ def test_check_tutorial(self): ] cc(*cc_options) - smoke_test = which(self.smoke_test) + smoke_test = which(self.smoke_test, required=True) out = smoke_test(output=str.split, error=str.split) assert "Hello world" in out diff --git a/repos/spack_repo/builtin/packages/ampt/package.py b/repos/spack_repo/builtin/packages/ampt/package.py index e0113c3ddf9..91b536f3b0a 100644 --- a/repos/spack_repo/builtin/packages/ampt/package.py +++ b/repos/spack_repo/builtin/packages/ampt/package.py @@ -29,12 +29,12 @@ class Ampt(MakefilePackage): version( "2.26-t9b_atlas", sha256="9441b5f77c2ab91a57b291abd4afd12de7968f9cbe9f3cc8dbe60fbf5293ed55", - url="http://myweb.ecu.edu/linz/ampt/ampt-v1.26t9b-v2.26t9b.zip", + url="https://myweb.ecu.edu/linz/ampt/ampt-v1.26t9b-v2.26t9b.zip", ) version( "2.26-t9", sha256="9441b5f77c2ab91a57b291abd4afd12de7968f9cbe9f3cc8dbe60fbf5293ed55", - url="http://myweb.ecu.edu/linz/ampt/ampt-v1.26t9b-v2.26t9b.zip", + url="https://myweb.ecu.edu/linz/ampt/ampt-v1.26t9b-v2.26t9b.zip", ) def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/amr_wind/package.py b/repos/spack_repo/builtin/packages/amr_wind/package.py index 53412b7da97..5aeeb4077ed 100644 --- a/repos/spack_repo/builtin/packages/amr_wind/package.py +++ b/repos/spack_repo/builtin/packages/amr_wind/package.py @@ -17,212 +17,41 @@ class AmrWind(CMakePackage, CudaPackage, ROCmPackage): url = "https://github.com/Exawind/amr-wind/archive/refs/tags/v1.3.0.tar.gz" git = "https://github.com/Exawind/amr-wind.git" - maintainers("jrood-nrel", "psakievich") + maintainers("jrood-nrel") tags = ["ecp", "ecp-apps"] + submodules = True license("BSD-3-Clause") - version("main", branch="main", submodules=True) - version( - "3.6.0", tag="v3.6.0", commit="7346fd2a99e5d66ecf2ef3bafa1ebe621211d21f", submodules=True - ) - version( - "3.5.0", tag="v3.5.0", commit="412f015f2496cb0c0c802240bb9c11848b408fa0", submodules=True - ) - version( - "3.4.2", tag="v3.4.2", commit="ed475a0533dfacf1fdff0b707518ccf99040d9f9", submodules=True - ) - version( - "3.4.1", tag="v3.4.1", commit="effe63ca9061e6d2bd5c5e84b690d29c0869f029", submodules=True - ) - version( - "3.4.0", tag="v3.4.0", commit="38d1b9fd0b70aab4a01fd507f039750c2508bd1c", submodules=True - ) - version( - "3.3.1", tag="v3.3.1", commit="30fc9a15a65670ebe3226b85e76b2155b4e4251d", submodules=True - ) - version( - "3.3.0", tag="v3.3.0", commit="cba28f0fb9d7c5c6d1aeb57e67469c962f9a12d4", submodules=True - ) - version( - "3.2.3", tag="v3.2.3", commit="a609630eb7e21f6054a40d34865b2e7dd2be4eab", submodules=True - ) - version( - "3.2.2", tag="v3.2.2", commit="e12ec7b5a973a7e9d57dffdbf9a2875c601bb0cf", submodules=True - ) - version( - "3.2.1", tag="v3.2.1", commit="2b309bdb578d549eba08cd8bdf852aa85fbb33f2", submodules=True - ) - version( - "3.2.0", tag="v3.2.0", commit="bb0e9dcc59c694812a03703199ade0a3984161d5", submodules=True - ) - version( - "3.1.7", tag="v3.1.7", commit="b9858be2c7ae85ad3c78e414699fad4acf2a7a22", submodules=True - ) - version( - "3.1.6", tag="v3.1.6", commit="ca437affc6fd00490d8b14e244e53bf641207224", submodules=True - ) - version( - "3.1.5", tag="v3.1.5", commit="554f8aa1ac36c2bae17565c64d5bc33333cee396", submodules=True - ) - version( - "3.1.4", tag="v3.1.4", commit="e10f5ebd3141b9990a65ebe9f1bdca8554b59472", submodules=True - ) - version( - "3.1.3", tag="v3.1.3", commit="af8231ace69119133c4c8a906e98946ec5aa79c8", submodules=True - ) - version( - "3.1.2", tag="v3.1.2", commit="5edcac4496e30e450c0f21e7fa74f8b590dc3860", submodules=True - ) - version( - "3.1.1", tag="v3.1.1", commit="8ae06194fa47bf473615988f97a7b423d467b023", submodules=True - ) - version( - "3.1.0", tag="v3.1.0", commit="3e23581b132532bf70b09c38217ff9c46204f047", submodules=True - ) - version( - "3.0.2", tag="v3.0.2", commit="f867288dffecc6404189afa965189c2558cf9922", submodules=True - ) - version( - "3.0.1", tag="v3.0.1", commit="65aa85db5cb3bbabc767d5dde4b106b7022a0f90", submodules=True - ) - version( - "3.0.0", tag="v3.0.0", commit="2fbd345cfa7cb7277c1cb6a1323247579e1bbc32", submodules=True - ) - with default_args(deprecated=True): - version( - "2.6.0", - tag="v2.6.0", - commit="31ef1137b00b304b62b84edaa5b819c0bf0b7436", - submodules=True, - ) - version( - "2.5.0", - tag="v2.5.0", - commit="f9f499b6926339f96b3ff260495b8782c045555c", - submodules=True, - ) - version( - "2.4.3", - tag="v2.4.3", - commit="4be85f376d4939f8e5534b7985917e4cfccedfaf", - submodules=True, - ) - version( - "2.4.2", - tag="v2.4.2", - commit="5ebb2abf2df9c87e6086d8f55a4d929ff0cdb37b", - submodules=True, - ) - version( - "2.4.1", - tag="v2.4.1", - commit="40accd372f850e10fcbeee6ddecc4d15fd6364c6", - submodules=True, - ) - version( - "2.4.0", - tag="v2.4.0", - commit="b8ab898b7e9e8e78455b61e303940b80d00d18ca", - submodules=True, - ) - version( - "2.3.2", - tag="v2.3.2", - commit="61cbb21e8dfdeea47a0add772cd52abac33c4901", - submodules=True, - ) - version( - "2.3.1", - tag="v2.3.1", - commit="cc51dadb34de9f333605a5bfb83b72c9310f676a", - submodules=True, - ) - version( - "2.3.0", - tag="v2.3.0", - commit="6ba000b628aa3178545cdbbea508cc2cb2e5c76c", - submodules=True, - ) - version( - "2.2.1", - tag="v2.2.1", - commit="e131a79f8e68be181390a2656f54268f90a9e78a", - submodules=True, - ) - version( - "2.2.0", - tag="v2.2.0", - commit="bc787f21deca9239928182e27400133934c62658", - submodules=True, - ) - version( - "2.1.0", - tag="v2.1.0", - commit="13e15b52f4a1651a3d72324a71ba1e18255663e7", - submodules=True, - ) - version( - "2.0.0", - tag="v2.0.0", - commit="ea448365033fc6bc9ee0febeb369b377f4fd8240", - submodules=True, - ) - version( - "1.4.0", - tag="v1.4.0", - commit="bdddf133e41a9b7b4c8ce28f1ea1bebec47678f5", - submodules=True, - ) - version( - "1.3.1", - tag="v1.3.1", - commit="63692889143599de57232e64a9c7e4af8f0a2e1e", - submodules=True, - ) - version( - "1.3.0", - tag="v1.3.0", - commit="f74d7b3801f0492e586d440fac729d9dec595a8b", - submodules=True, - ) - version( - "1.2.1", - tag="v1.2.1", - commit="7291737434ca339ecc765355eab88ddd529ff68f", - submodules=True, - ) - version( - "1.2.0", - tag="v1.2.0", - commit="db9add5c1c68583a9019cb7ba6776bd580b0ab3e", - submodules=True, - ) - version( - "1.1.0", - tag="v1.1.0", - commit="30396bf70f0bd5ac65dd0f7b29757b0e02b22459", - submodules=True, - ) - version( - "1.0.1", - tag="v1.0.1", - commit="aa9b7e8e63833e6ac1cc3f60fcba5140416cc139", - submodules=True, - ) - version( - "1.0.0", - tag="v1.0.0", - commit="885f4137ce7b9e6c60f48aa5e4c1a54f1418ea9e", - submodules=True, - ) - version( - "0.9.0", - tag="v0.9.0", - commit="cf66ebe31fd5f27b76a83451cd22f346e7a67160", - submodules=True, - ) + version("main", branch="main") + version("3.9.1", tag="v3.9.1", commit="c41e3a727ad7ad9fe14df33c2db565b4248dc7ed") + version("3.9.0", tag="v3.9.0", commit="6c15368dc93d749fb0c3b216b0ccccaab6907251") + version("3.8.1", tag="v3.8.1", commit="464ce0891979dbef9972c5b868facee1c974779d") + version("3.8.0", tag="v3.8.0", commit="35d63755ce213caedc1c1e96e93e9a4bfe5bffc3") + version("3.7.0", tag="v3.7.0", commit="243e620c263761d34b3ef54694cfd3f787321c24") + version("3.6.0", tag="v3.6.0", commit="7346fd2a99e5d66ecf2ef3bafa1ebe621211d21f") + version("3.5.0", tag="v3.5.0", commit="412f015f2496cb0c0c802240bb9c11848b408fa0") + version("3.4.2", tag="v3.4.2", commit="ed475a0533dfacf1fdff0b707518ccf99040d9f9") + version("3.4.1", tag="v3.4.1", commit="effe63ca9061e6d2bd5c5e84b690d29c0869f029") + version("3.4.0", tag="v3.4.0", commit="38d1b9fd0b70aab4a01fd507f039750c2508bd1c") + version("3.3.1", tag="v3.3.1", commit="30fc9a15a65670ebe3226b85e76b2155b4e4251d") + version("3.3.0", tag="v3.3.0", commit="cba28f0fb9d7c5c6d1aeb57e67469c962f9a12d4") + version("3.2.3", tag="v3.2.3", commit="a609630eb7e21f6054a40d34865b2e7dd2be4eab") + version("3.2.2", tag="v3.2.2", commit="e12ec7b5a973a7e9d57dffdbf9a2875c601bb0cf") + version("3.2.1", tag="v3.2.1", commit="2b309bdb578d549eba08cd8bdf852aa85fbb33f2") + version("3.2.0", tag="v3.2.0", commit="bb0e9dcc59c694812a03703199ade0a3984161d5") + version("3.1.7", tag="v3.1.7", commit="b9858be2c7ae85ad3c78e414699fad4acf2a7a22") + version("3.1.6", tag="v3.1.6", commit="ca437affc6fd00490d8b14e244e53bf641207224") + version("3.1.5", tag="v3.1.5", commit="554f8aa1ac36c2bae17565c64d5bc33333cee396") + version("3.1.4", tag="v3.1.4", commit="e10f5ebd3141b9990a65ebe9f1bdca8554b59472") + version("3.1.3", tag="v3.1.3", commit="af8231ace69119133c4c8a906e98946ec5aa79c8") + version("3.1.2", tag="v3.1.2", commit="5edcac4496e30e450c0f21e7fa74f8b590dc3860") + version("3.1.1", tag="v3.1.1", commit="8ae06194fa47bf473615988f97a7b423d467b023") + version("3.1.0", tag="v3.1.0", commit="3e23581b132532bf70b09c38217ff9c46204f047") + version("3.0.2", tag="v3.0.2", commit="f867288dffecc6404189afa965189c2558cf9922") + version("3.0.1", tag="v3.0.1", commit="65aa85db5cb3bbabc767d5dde4b106b7022a0f90") + version("3.0.0", tag="v3.0.0", commit="2fbd345cfa7cb7277c1cb6a1323247579e1bbc32") variant("hypre", default=False, description="Enable Hypre integration") variant("ascent", default=False, description="Enable Ascent integration") @@ -230,6 +59,7 @@ class AmrWind(CMakePackage, CudaPackage, ROCmPackage): variant("mpi", default=True, description="Enable MPI support") variant("netcdf", default=False, description="Enable NetCDF support") variant("openfast", default=False, description="Enable OpenFAST integration") + variant("kynema", default=False, description="Enable Kynema integration") variant("openmp", default=False, description="Enable OpenMP for CPU builds") variant("shared", default=True, description="Build shared libraries") variant("tests", default=True, description="Activate regression tests") @@ -254,7 +84,7 @@ class AmrWind(CMakePackage, CudaPackage, ROCmPackage): depends_on("hdf5@:1.14.4-3", when="+hdf5") depends_on("h5z-zfp", when="+hdf5") depends_on("zfp", when="+hdf5") - depends_on("hypre~int64@2.29.0:", when="@0.9.0:+hypre") + depends_on("hypre~int64@2.29.0:", when="+hypre") depends_on("hypre+mpi", when="+hypre+mpi") depends_on("hypre+umpire", when="+hypre+umpire") depends_on("hypre+sycl", when="+hypre+sycl") @@ -267,12 +97,10 @@ class AmrWind(CMakePackage, CudaPackage, ROCmPackage): depends_on("py-numpy@2:", when="+netcdf") depends_on("py-matplotlib", when="+masa") depends_on("py-pandas", when="+masa") - depends_on("openfast+cxx", when="+openfast") + depends_on("openfast+cxx@3.5:4.0", when="@:3.5 +openfast") + depends_on("openfast+cxx@3.5.0:3.5.9,4.1:", when="@3.6: +openfast") depends_on("openfast+netcdf", when="+openfast+netcdf") - depends_on("openfast@2.6.0:3.4.1", when="@0.9.0:1 +openfast") - depends_on("openfast@3.5:", when="@2: +openfast") - depends_on("openfast@3.5:4.0", when="@2.0.0:3.5.9") - depends_on("openfast@3.5.0:3.5.9,4.1:", when="@3.6:") + depends_on("kynema", when="+kynema") depends_on("helics@:3.3.2", when="+helics") depends_on("helics@:3.3.2+mpi", when="+helics+mpi") depends_on("fftw", when="@2.1: +waves2amr") @@ -292,7 +120,6 @@ class AmrWind(CMakePackage, CudaPackage, ROCmPackage): conflicts("+openmp", when="+cuda") conflicts("+shared", when="+cuda") - conflicts("@:2.0", when="+waves2amr") conflicts( "openfast@4.0.0:4.0.3", msg="OpenFAST 4.0.0:4.0.3 contains a bug. Use OpenFAST >= 4.0.4." ) @@ -324,6 +151,7 @@ def cmake_args(self): "helics", "umpire", "sycl", + "kynema", ] args = [self.define_from_variant("AMR_WIND_ENABLE_%s" % v.upper(), v) for v in vs] diff --git a/repos/spack_repo/builtin/packages/amrex/amrex-26.04-changelog.patch b/repos/spack_repo/builtin/packages/amrex/amrex-26.04-changelog.patch new file mode 100644 index 00000000000..97291d9839d --- /dev/null +++ b/repos/spack_repo/builtin/packages/amrex/amrex-26.04-changelog.patch @@ -0,0 +1,10 @@ +diff --git a/CHANGES.md b/CHANGES.md +index 66a1eaaa0d..df33b8d2da 100644 +--- a/CHANGES.md ++++ b/CHANGES.md +@@ -1,4 +1,4 @@ +-# 26.03 ++# 26.04 + + ## Highlights: + diff --git a/repos/spack_repo/builtin/packages/amrex/package.py b/repos/spack_repo/builtin/packages/amrex/package.py index a28e5230650..ce167e0d0a7 100644 --- a/repos/spack_repo/builtin/packages/amrex/package.py +++ b/repos/spack_repo/builtin/packages/amrex/package.py @@ -24,11 +24,21 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage): tags = ["ecp", "e4s", "hpsf"] - maintainers("WeiqunZhang", "asalmgren", "atmyers") + maintainers("WeiqunZhang", "asalmgren", "atmyers", "ax3l") license("BSD-3-Clause") version("develop", branch="development") + version("26.05", sha256="70ec8f0e6917388b3d91a7c470648f6ce11a99096810420f1054ed98a041e315") + version("26.04", sha256="b09c99d37989b980bba622695b5a9aec267f2430d79683683064c27de7a1776a") + version("26.03", sha256="7139b8bb423a4311e8990bee6cb06b86a81de439363f35a3f29c808a93a003ca") + version("26.02", sha256="7627f0bac4f8025b555b6c7c7a26e2d4db4e7a7fda660b77b272ffe40749b7b2") + version("26.01", sha256="b26c8d36b3941881bb5db683147f94d5a48f9bcedfa4bcf65a36acb6f0710bcb") + version("25.12", sha256="60a788cf398563cdf25438a3bbe597fe1f3b18f359b30fb3c0f568dd62908f1a") + version("25.11", sha256="be9e5f04e1f3e2252a14e5bb817fb4f2c231e0901ef85ee4e14341616f6b1ba6") + version("25.10", sha256="3c3e9e239b42a5c73e72a418bd29cf6bb7660646ee62f5e11ff131eaaa04fa16") + version("25.09", sha256="9c288e502c98a9ebf62c9f46081ecd65703ad49bd8b3eaf17939146cf442163a") + version("25.08", sha256="6e903fd02e72a3d23b438ec257a96a5a948ac07200220669ab8ff16ff047bde6") version("25.07", sha256="19b9e5271451c202610f9c6569189c28fc05bcd655d53525df9169efeb5ee66f") version("25.06", sha256="2f69c708ddeaba6d4be3a12ab6951f171952f6f7948e628c5148d667c4197838") version("25.05", sha256="d80ae0b4ccb26696fcd3c04d96838592fd0043be25fceebd82cd165f809b1a5d") @@ -153,9 +163,22 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage): variant("hdf5", default=False, description="Enable HDF5-based I/O") variant("hypre", default=False, description="Enable Hypre interfaces") variant("petsc", default=False, description="Enable PETSc interfaces") - variant("sundials", default=False, description="Enable SUNDIALS interfaces") + variant("simd", default=False, description="Enable SIMD support", when="@25.09:") + variant("sundials", default=False, description="Enable SUNDIALS interfaces", when="@21:") variant("pic", default=False, description="Enable PIC") variant("sycl", default=False, description="Enable SYCL backend") + variant( + "gpu_rdc", + default=True, + description="Enable relocatable GPU device code support", + when="+cuda", + ) + variant( + "gpu_rdc", + default=True, + description="Enable relocatable GPU device code support", + when="+rocm", + ) # Build dependencies depends_on("c", type="build") # generated @@ -177,10 +200,9 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage): depends_on("conduit") depends_on("conduit +mpi", when="+mpi") with when("+catalyst"): - depends_on("libcatalyst@2.0: +conduit") + depends_on("libcatalyst@2.0:") depends_on("libcatalyst +mpi", when="+mpi") with when("+sundials"): - depends_on("sundials@4.0.0:4.1.0 +ARKODE +CVODE", when="@19.08:20.11") depends_on("sundials@5.7.0: +ARKODE +CVODE", when="@21.07:22.04") depends_on("sundials@6.0.0: +ARKODE +CVODE", when="@22.05:") for arch in CudaPackage.cuda_arch_values: @@ -206,6 +228,9 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage): depends_on("cuda@9.0.0:", when="@:22.04") depends_on("cuda@10.0.0:", when="@22.05:") depends_on("cuda@11.0.0:", when="@22.12:") + depends_on("cuda@12.2:", when="@26.05:") + depends_on("cuda@:12", when="@:25.09") # enforce cuda < 13 before 25.10 + depends_on("hip@6.0:", when="@26.05: +rocm") depends_on("python@2.7:", type="build", when="@:20.04") depends_on("cmake@3.5:", type="build", when="@:18.10") depends_on("cmake@3.13:", type="build", when="@18.11:19.03") @@ -225,12 +250,15 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage): depends_on("hypre@2.19.0:", type="link", when="@21.03: ~cuda") depends_on("hypre@2.20.0:", type="link", when="@21.03: +cuda") depends_on("petsc", type="link", when="+petsc") + depends_on("vir-simd", type="build", when="+simd") depends_on("intel-oneapi-mkl", type=("build", "link"), when="+sycl") # these versions of gcc have lambda function issues # see https://github.com/spack/spack/issues/22310 conflicts("%gcc@8.1.0:8.3.0", when="@21.03") conflicts("%gcc@8.1.0:8.2.0", when="@21.01:21.02") + conflicts("%gcc@:10", when="@25.06:", msg="AMReX 25.06+ requires GCC 11 or newer") + conflicts("%clang@:13", when="@25.06:", msg="AMReX 25.06+ requires Clang 14 or newer") # Check options compatibility conflicts( @@ -241,11 +269,6 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage): when="~conduit", msg="AMReX Catalyst2 support needs Conduit interfaces (+conduit)", ) - conflicts( - "+sundials", - when="@19.08:20.11 ~fortran", - msg="AMReX SUNDIALS support needs AMReX Fortran API (+fortran)", - ) conflicts( "+sundials", when="@20.12:21.06", @@ -302,6 +325,9 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage): "+sycl", when="@:21.05", msg="For SYCL support, AMReX version 21.06 and newer suggested." ) + # Fix release number in amrex-v26.04 + patch("amrex-26.04-changelog.patch", when="@26.04") + def url_for_version(self, version): if version >= Version("20.05"): url = "https://github.com/AMReX-Codes/amrex/releases/download/{0}/amrex-{0}.tar.gz" @@ -345,6 +371,7 @@ def cmake_args(self): self.define_from_variant("AMReX_HDF5", "hdf5"), self.define_from_variant("AMReX_HYPRE", "hypre"), self.define_from_variant("AMReX_PETSC", "petsc"), + self.define_from_variant("AMReX_SIMD", "simd"), self.define_from_variant("AMReX_SUNDIALS", "sundials"), self.define_from_variant("AMReX_PIC", "pic"), ] @@ -361,12 +388,14 @@ def cmake_args(self): args.append("-DAMReX_CUDA_ERROR_CROSS_EXECUTION_SPACE_CALL=ON") cuda_arch = self.spec.variants["cuda_arch"].value args.append("-DAMReX_CUDA_ARCH=" + self.get_cuda_arch_string(cuda_arch)) + args.append(self.define_from_variant("AMReX_GPU_RDC", "gpu_rdc")) if self.spec.satisfies("+rocm"): args.append("-DCMAKE_CXX_COMPILER={0}".format(self.spec["hip"].hipcc)) args.append("-DAMReX_GPU_BACKEND=HIP") targets = self.spec.variants["amdgpu_target"].value args.append("-DAMReX_AMD_ARCH=" + ";".join(str(x) for x in targets)) + args.append(self.define_from_variant("AMReX_GPU_RDC", "gpu_rdc")) if self.spec.satisfies("+sycl"): args.append("-DAMReX_GPU_BACKEND=SYCL") @@ -440,13 +469,13 @@ def test_run_install_test(self): args.append("-DCMAKE_PREFIX_PATH=" + ";".join(get_cmake_prefix_path(self))) args.extend(self.cmake_args()) - cmake = which(self.spec["cmake"].prefix.bin.cmake) + cmake = which(self.spec["cmake"].prefix.bin.cmake, required=True) cmake(*args) - make = which("make") + make = which("make", required=True) make() - install_test = which("install_test") + install_test = which("install_test", required=True) inputs_path = join_path( ".", "cache", "amrex", "Tests", "Amr", "Advection_AmrCore", "Exec", "inputs-ci" ) diff --git a/repos/spack_repo/builtin/packages/amrvis/package.py b/repos/spack_repo/builtin/packages/amrvis/package.py index 35ba811481e..cdc65699303 100644 --- a/repos/spack_repo/builtin/packages/amrvis/package.py +++ b/repos/spack_repo/builtin/packages/amrvis/package.py @@ -39,7 +39,9 @@ class Amrvis(MakefilePackage): variant("debug", default=False, description="Enable debugging features") variant("profiling", default=False, description="Enable AMReX profiling features") - depends_on("cxx", type="build") # generated + depends_on("cxx", type="build") + depends_on("c", type="build") + depends_on("fortran", type="build", when="+profiling") depends_on("gmake", type="build") depends_on("mpi", when="+mpi") diff --git a/repos/spack_repo/builtin/packages/ams/package.py b/repos/spack_repo/builtin/packages/ams/package.py index 784b781ca01..2ff6d542c9e 100644 --- a/repos/spack_repo/builtin/packages/ams/package.py +++ b/repos/spack_repo/builtin/packages/ams/package.py @@ -143,8 +143,7 @@ def cmake_args(self): if spec.satisfies("+torch"): args.append("-DWITH_TORCH=On") args.append( - "-DTorch_DIR={0}/lib/python{1}/site-packages" - "/torch/share/cmake/Torch".format( + "-DTorch_DIR={0}/lib/python{1}/site-packages/torch/share/cmake/Torch".format( spec["py-torch"].prefix, spec["python"].version.up_to(2) ) ) diff --git a/repos/spack_repo/builtin/packages/anaconda3/package.py b/repos/spack_repo/builtin/packages/anaconda3/package.py index bf3f5ae785b..e76d2d141b9 100644 --- a/repos/spack_repo/builtin/packages/anaconda3/package.py +++ b/repos/spack_repo/builtin/packages/anaconda3/package.py @@ -219,7 +219,7 @@ def url_for_version(self, version): def install(self, spec, prefix): dir, anaconda_script = split(self.stage.archive_file) - bash = which("bash") + bash = which("bash", required=True) bash(anaconda_script, "-b", "-f", "-p", self.prefix) def setup_run_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/angsd/package.py b/repos/spack_repo/builtin/packages/angsd/package.py index ef54960e2c6..b4e826c74aa 100644 --- a/repos/spack_repo/builtin/packages/angsd/package.py +++ b/repos/spack_repo/builtin/packages/angsd/package.py @@ -45,7 +45,7 @@ def setup_build_environment(self, env): env.set("HTSSRC", "systemwide") def install(self, spec, prefix): - binaries = ["angsd", "misc/realSFS", "misc/thetaStat"] + binaries = ["angsd", "misc/realSFS", "misc/thetaStat", "misc/NGSadmix"] mkdirp(prefix.bin) diff --git a/repos/spack_repo/builtin/packages/ant/package.py b/repos/spack_repo/builtin/packages/ant/package.py index c74fed38ac6..51f000b98db 100644 --- a/repos/spack_repo/builtin/packages/ant/package.py +++ b/repos/spack_repo/builtin/packages/ant/package.py @@ -21,71 +21,9 @@ class Ant(Package): version("1.10.14", sha256="9a5fe31f44d1eb62590cbe38e4fab25b25e2f68643b38a54b66498e0bf621b54") version("1.10.13", sha256="da006f4c888d41d0f3f213565e48aeff73e4d8a6196e494121d8da1e567a8406") - # https://nvd.nist.gov/vuln/detail/CVE-2020-1945 - version( - "1.10.7", - sha256="2f9c4ef094581663b41a7412324f65b854f17622e5b2da9fcb9541ca8737bd52", - deprecated=True, - ) - version( - "1.10.6", - sha256="c641721ae844196b28780e7999d2ae886085b89433438ab797d531413a924311", - deprecated=True, - ) - version( - "1.10.5", - sha256="5937cf11d74d75d6e8927402950b012e037e362f9f728262ce432ad289b9f6ca", - deprecated=True, - ) - version( - "1.10.4", - sha256="b0718c6c1b2b8d3bc77cd1e30ea183cd7741cfb52222a97c754e02b8e38d1948", - deprecated=True, - ) - version( - "1.10.3", - sha256="988b0cac947559f7347f314b9a3dae1af0dfdcc254de56d1469de005bf281c5a", - deprecated=True, - ) - version( - "1.10.2", - sha256="f3cf217b9befae2fef7198b51911e33a8809d98887cc971c8957596f459c6285", - deprecated=True, - ) - version( - "1.10.1", - sha256="68f7ced0aa15d1f9f672f23d67c86deaf728e9576936313cfbff4f7a0e6ce382", - deprecated=True, - ) - version( - "1.10.0", - sha256="1f78036c38753880e16fb755516c8070187a78fe4b2e99b59eda5b81b58eccaf", - deprecated=True, - ) - version( - "1.9.9", - sha256="d6a0c93777ab27db36212d77c5733ac80d17fe24e83f947df23a8e0ad4ac48cc", - deprecated=True, - ) - version( - "1.9.8", - sha256="5f4daf56e66fc7a71de772920ca27c15eac80cf1fcf41f3b4f2d535724942681", - deprecated=True, - ) - version( - "1.9.7", - sha256="648b3f3787bb0cb6226978b6d4898eb7e21ae391385357a5f824972dd910a1c8", - deprecated=True, - ) - version( - "1.9.6", - sha256="550d2aaf828785e30870c227056942c2a552da961db6010cedb2fbcfa8e3268d", - deprecated=True, - ) - depends_on("java") def install(self, spec, prefix): env["ANT_HOME"] = self.prefix - bash = which("bash") + bash = which("bash", required=True) bash("./build.sh", "install-lite") diff --git a/repos/spack_repo/builtin/packages/antimony/package.py b/repos/spack_repo/builtin/packages/antimony/package.py index a7558ae3bc7..c83152cdf43 100644 --- a/repos/spack_repo/builtin/packages/antimony/package.py +++ b/repos/spack_repo/builtin/packages/antimony/package.py @@ -11,7 +11,7 @@ class Antimony(CMakePackage): """Human readable language for modifying sbml""" homepage = "https://antimony.sourceforge.net/" - url = "antimony" + url = "https://downloads.sourceforge.net/project/antimony/Antimony source/2.8/antimony_src_v2.8.tar.gz" # noqa: E501 maintainers("rblake-llnl") @@ -25,12 +25,6 @@ class Antimony(CMakePackage): version("2.2", sha256="795c777dd90c28fd8c3f4f8896702744b7389cff2fcf40e797b4bfafbb6f7251") version("2.0", sha256="778146206e5f420d0e3d30dc25eabc9bad2759bfaf6b4b355bb1f72c5bc9593f") - def url_for_version(self, version): - url = "https://downloads.sourceforge.net/project/antimony/Antimony source/{0}/antimony_src_v{1}.tar.gz".format( - version, version - ) - return url - variant("qt", default=False, description="Build the QT editor.") variant("python", default=False, description="Build python bindings.") diff --git a/repos/spack_repo/builtin/packages/antlr4_cpp_runtime/package.py b/repos/spack_repo/builtin/packages/antlr4_cpp_runtime/package.py index 8b47893ab34..624fb4c88a1 100644 --- a/repos/spack_repo/builtin/packages/antlr4_cpp_runtime/package.py +++ b/repos/spack_repo/builtin/packages/antlr4_cpp_runtime/package.py @@ -27,9 +27,9 @@ class Antlr4CppRuntime(CMakePackage): "clanglibcpp", default=False, description="Compile with clang libc++ instead of libstdc++" ) - depends_on("uuid", type=["build", "link"], when="@:4.10.1") - depends_on("git", type=["build"]) - depends_on("pkgconfig", type=["build"]) + depends_on("uuid", type=("build", "link"), when="@:4.10.1") + depends_on("git", type="build") + depends_on("pkgconfig", type="build") def cmake_args(self): args = [ diff --git a/repos/spack_repo/builtin/packages/ants/package.py b/repos/spack_repo/builtin/packages/ants/package.py index bc8fa01cfbf..74ad02d2d85 100644 --- a/repos/spack_repo/builtin/packages/ants/package.py +++ b/repos/spack_repo/builtin/packages/ants/package.py @@ -20,14 +20,15 @@ class Ants(CMakePackage): git = "https://github.com/ANTsX/ANTs.git" url = "https://github.com/ANTsX/ANTs/archive/v2.2.0.tar.gz" + version("master", branch="master") version("2.5.1", sha256="8e3a7c0d3dab05883cba466aff262d78d832f679491318b94ce49b606565cebe") version("2.4.3", sha256="13ba78917aca0b20e69f4c43da607f8fe8c810edba23b6f5fd64fbd81b70a79a") version("2.4.0", sha256="a8ff78f4d2b16e495f340c9b0647f56c92cc4fc40b6ae04a60b941e5e239f9be") - version("20220205", commit="6f07ac55569d0d085d2adf7888d1c7a2bd563bfe", deprecated=True) version("2.3.5", sha256="2fddfd5f274a47f1c383e734a7e763b627c4a8383d2d3b9971561f335016bb0a") version("2.2.0", sha256="62f8f9ae141cb45025f4bb59277c053acf658d4a3ba868c9e0f609af72e66b4a") depends_on("cxx", type="build") # generated + depends_on("c", type="build") depends_on("zlib-api", type="link") diff --git a/repos/spack_repo/builtin/packages/aocc/package.py b/repos/spack_repo/builtin/packages/aocc/package.py index 1f07fde1849..8af47884450 100644 --- a/repos/spack_repo/builtin/packages/aocc/package.py +++ b/repos/spack_repo/builtin/packages/aocc/package.py @@ -1,7 +1,8 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import os.path +import glob +import os from spack_repo.builtin.build_systems.compiler import CompilerPackage from spack_repo.builtin.build_systems.generic import Package @@ -34,11 +35,20 @@ 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", + url="https://download.amd.com/developer/eula/aocc/aocc-5-1/aocc-compiler-5.1.0.tar", + ) version( ver="5.0.0", sha256="966fac2d2c759e9de6e969c10ada7a7b306c113f7f1e07ea376829ec86380daa", url="https://download.amd.com/developer/eula/aocc/aocc-5-0/aocc-compiler-5.0.0.tar", - preferred=True, ) version( ver="4.2.0", @@ -69,6 +79,8 @@ class Aocc(Package, LlvmDetection, CompilerPackage): depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("patchelf@:0.17", when="@:5 %gcc", type="build") depends_on("libxml2") depends_on("zlib-api") @@ -119,6 +131,33 @@ def cfg_files(self): with open(join_path(self.prefix.bin, "{}.cfg".format(compiler)), "w") as f: f.write(compiler_options) + # help flang find gcc + if self.spec.satisfies("@:5 %gcc") and self.compiler.prefix != "/usr": + # help flang{1,2} find libquadmath + libdir = self._libquadmath_dir() + patchelf = which("patchelf", required=True) + patchelf.add_default_arg("--set-rpath", libdir) + patchelf(join_path(self.prefix.bin, "flang1")) + patchelf(join_path(self.prefix.bin, "flang2")) + + # pass --gcc-toolchain & -Wl,-rpath to flang + # flang.cfg is ignored, so replace the flang symlink with a wrapper script + compiler_options += ' -Wno-unused-command-line-argument "-Wl,-rpath,{libdir}"' + clang = join_path(self.prefix.bin, "clang") + flang = join_path(self.prefix.bin, "flang") + assert os.path.islink(flang) + os.unlink(flang) + with open(flang, "x") as f: + f.write(f'#!/bin/sh\nexec -a "$0" "{clang}" {compiler_options} "$@"\n') + set_executable(flang) + + def _libquadmath_dir(self): + for lib in ["lib64", "lib"]: + libdir = join_path(self.compiler.prefix, lib) + if glob.glob(join_path(libdir, "libquadmath.*")): + return libdir + return None + def _cc_path(self): return os.path.join(self.spec.prefix.bin, "clang") diff --git a/repos/spack_repo/builtin/packages/aocl_compression/package.py b/repos/spack_repo/builtin/packages/aocl_compression/package.py index 4debffaa75c..e7e5507bdbf 100644 --- a/repos/spack_repo/builtin/packages/aocl_compression/package.py +++ b/repos/spack_repo/builtin/packages/aocl_compression/package.py @@ -44,11 +44,9 @@ class AoclCompression(CMakePackage): maintainers("amd-toolchain-support") - version( - "5.0", - sha256="50bfb2c4a4738b96ed6d45627062b17bb9d0e1787c7d83ead2841da520327fa4", - preferred=True, - ) + version("5.2", sha256="93a4eddd0a70e6d8701ecf2c55a06ab341d987ccd2e87c50a5c7e1efb37e033e") + version("5.1", sha256="9462c6898350d66a5d9ce0236c432c94b4c9393b638ddf6511628b784eb02720") + version("5.0", sha256="50bfb2c4a4738b96ed6d45627062b17bb9d0e1787c7d83ead2841da520327fa4") version("4.2", sha256="a18b3e7f64a8105c1500dda7b4c343e974b5e26bfe3dd838a1c1acf82a969c6f") variant("shared", default=True, description="Build shared library") @@ -76,7 +74,8 @@ class AoclCompression(CMakePackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("cmake@3.22:", type="build") + depends_on("cmake@3.22:", when="@:5.0", type="build") + depends_on("cmake@3.26:", when="@5.1:", type="build") def cmake_args(self): """Runs ``cmake`` in the build directory""" diff --git a/repos/spack_repo/builtin/packages/aocl_crypto/package.py b/repos/spack_repo/builtin/packages/aocl_crypto/package.py index c734e939ad4..262f7cbd3aa 100644 --- a/repos/spack_repo/builtin/packages/aocl_crypto/package.py +++ b/repos/spack_repo/builtin/packages/aocl_crypto/package.py @@ -38,11 +38,9 @@ class AoclCrypto(CMakePackage): maintainers("amd-toolchain-support") - version( - "5.0", - sha256="b15e609943f9977e13f2d5839195bb7411c843839a09f0ad47f78f57e8821c23", - preferred=True, - ) + version("5.2", sha256="a08da78287a05b6e48fc2870ef15053bb67d539ba83cf233ad8dcdc65f892d89") + version("5.1", sha256="a2f768b7d37516c5c29cca0034aba90b91d02e477c762f2fa0fe4b1c30613973") + version("5.0", sha256="b15e609943f9977e13f2d5839195bb7411c843839a09f0ad47f78f57e8821c23") version("4.2", sha256="2bdbedd8ab1b28632cadff237f4abd776e809940ad3633ad90fc52ce225911fe") variant("examples", default=False, description="Build examples") @@ -57,11 +55,12 @@ class AoclCrypto(CMakePackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("cmake@3.22:", type="build") + depends_on("cmake@3.22:", when="@:5.0", type="build") + depends_on("cmake@3.26:", when="@5.1:", type="build") depends_on("openssl@3.1.5:") depends_on("intel-oneapi-ippcp@2021.12.0:", when="+ipp") depends_on("p7zip", type="build") - for vers in ["4.2", "5.0"]: + for vers in ["4.2", "5.0", "5.1", "5.2"]: with when(f"@={vers}"): depends_on(f"aocl-utils@={vers}") diff --git a/repos/spack_repo/builtin/packages/aocl_da/package.py b/repos/spack_repo/builtin/packages/aocl_da/package.py index a26cc286f69..7f5a946dc1f 100644 --- a/repos/spack_repo/builtin/packages/aocl_da/package.py +++ b/repos/spack_repo/builtin/packages/aocl_da/package.py @@ -34,6 +34,8 @@ class AoclDa(CMakePackage): maintainers("amd-toolchain-support") + version("5.2", sha256="faaa250de44d0b7d15a75b26121d457ac895b5cddd87ae1d81882a685ca81eb9") + version("5.1", sha256="93cdb789c948bf750e531f95618bae4370d53eddc88960744ff02c9acbfe9ef5") version("5.0", sha256="3458adc7be39c78a08232c887f32838633149df0a69ccea024327c3edc5a5c1d") variant("examples", default=True, description="Build examples") @@ -57,9 +59,10 @@ class AoclDa(CMakePackage): depends_on("c", type="build") depends_on("cxx", type="build") depends_on("fortran", type="build") - - depends_on("cmake@3.22:", type="build") - for vers in ["5.0"]: + depends_on("cmake@3.22:", when="@:5.0", type="build") + depends_on("cmake@3.26:", when="@5.1:", type="build") + depends_on("boost@1.66.0:", when="@5.1:", type="build") + for vers in ["5.0", "5.1", "5.2"]: with when(f"@={vers}"): depends_on(f"aocl-utils@={vers} +shared", when="+shared") depends_on(f"aocl-utils@={vers} ~shared", when="~shared") @@ -116,6 +119,8 @@ def cmake_args(self): args.append(self.define_from_variant("BUILD_SMP", "openmp")) args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared")) args.append(self.define_from_variant("BUILD_PYTHON", "python")) + if self.spec.satisfies("@5.1:"): + args.append(self.define("Boost_INCLUDE_DIRS", self.spec["boost"].prefix.include)) return args @@ -123,7 +128,7 @@ def cmake_args(self): @on_package_attributes(run_tests=True) def test_python(self): """Perform smoke tests on the installed package.""" - pytest = which("pytest") + pytest = which("pytest", required=True) envmod = EnvironmentModifications() envmod.append_path("PYTHONPATH", join_path(self.prefix, "python_package")) pytest.add_default_envmod(envmod) diff --git a/repos/spack_repo/builtin/packages/aocl_dlp/package.py b/repos/spack_repo/builtin/packages/aocl_dlp/package.py new file mode 100644 index 00000000000..2b935338f78 --- /dev/null +++ b/repos/spack_repo/builtin/packages/aocl_dlp/package.py @@ -0,0 +1,63 @@ +# 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 AoclDlp(CMakePackage): + """AOCL-DLP is a library designed to provide optimized deep learning primitives for AMD + processors. It implements Low Precision GEMM (LPGEMM) and batch GEMM for deep learning + applications, supporting multiple data types as well as pre-operations and post-operations. + The library is tailored to leverage the full potential of AMD hardware, ensuring efficient + computation, scalability, and accelerated deep learning workloads.""" + + _name = "aocl-dlp" + homepage = "https://www.amd.com/en/developer/aocl/dlp.html" + git = "https://github.com/amd/aocl-dlp" + url = "https://github.com/amd/aocl-dlp/archive/refs/tags/5.2.tar.gz" + + maintainers("amd-toolchain-support") + + version("5.2", sha256="1eec26eeaf427cb2377ec21415ddce6e1bc62d4eab8ec51630a9c02711019c1c") + + # Feature toggles mapping directly to AOCL-DLP CMake options + variant("benchmarks", default=True, description="Build benchmarks") + variant("tests", default=True, description="Enable tests") + variant("ctest", default=False, description="Enable ctest") + variant("examples", default=True, description="Build examples") + variant("shared", default=True, description="Build shared libraries") + + # Threading model selection (maps to DLP_THREADING_MODEL) + variant( + "threads", + default="none", + values=("none", "openmp", "pthread"), + description="Select threading backend for AOCL-DLP", + ) + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("cmake@3.26:", type="build") + depends_on("numactl", when="+benchmarks") + + def cmake_args(self): + spec = self.spec + args = [] + + # Map multi-valued 'threads' variant to CMake var DLP_THREADING_MODEL + tmodel = spec.variants["threads"].value # 'none' | 'openmp' | 'pthread' + args.append(self.define("DLP_THREADING_MODEL", tmodel)) + + # Straight boolean mappings + args.append(self.define_from_variant("BUILD_BENCHMARKS", "benchmarks")) + args.append(self.define_from_variant("BUILD_TESTING", "tests")) + args.append( + self.define("DLP_CTEST_DISABLED", "OFF" if spec.variants["ctest"].value else "ON") + ) + args.append(self.define_from_variant("BUILD_EXAMPLES", "examples")) + args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared")) + + return args diff --git a/repos/spack_repo/builtin/packages/aocl_libmem/package.py b/repos/spack_repo/builtin/packages/aocl_libmem/package.py index 4cb6376e464..37aa5d7fe43 100644 --- a/repos/spack_repo/builtin/packages/aocl_libmem/package.py +++ b/repos/spack_repo/builtin/packages/aocl_libmem/package.py @@ -34,11 +34,9 @@ class AoclLibmem(CMakePackage): maintainers("amd-toolchain-support") - version( - "5.0", - sha256="d3148db1a57fec4f3468332c775cade356e8133bf88385991964edd7534b7e22", - preferred=True, - ) + version("5.2", sha256="06b56596fe32a4528a93d18a827bd5cbd814115d16390c6f2ae93d6b5715d41d") + version("5.1", sha256="e03bc712a576b3e14ae433a696558e121dc67aac7fc1b4dca9b727605784e994") + version("5.0", sha256="d3148db1a57fec4f3468332c775cade356e8133bf88385991964edd7534b7e22") version("4.2", sha256="4ff5bd8002e94cc2029ef1aeda72e7cf944b797c7f07383656caa93bcb447569") variant("logging", default=False, description="Enable/Disable logger") @@ -47,11 +45,29 @@ class AoclLibmem(CMakePackage): variant( "vectorization", default="auto", + when="@:5.0", description="Use hardware vectorization support", values=("avx2", "avx512", "auto"), multi=False, ) + # Add new variant for dynamic dispatcher support + variant( + "dynamic-dispatch", + default=False, + when="@5.1:", + description="Single portable optimized library" + " to execute on different x86 CPU architectures", + ) + variant( + "vectorization", + default="none", + when="@5.1:", + description="Use hardware vectorization support", + values=("avx2", "avx512", "auto", "none"), + multi=False, + ) + # validator needs to be built only for AuthenticAMD targets patch( "cmake.patch", @@ -59,10 +75,29 @@ class AoclLibmem(CMakePackage): when="@5.0", ) + # vectorization or ISA has precedence over +dynamic-dispatch and tunables + requires( + "vectorization=none", + when="+dynamic-dispatch", + msg=( + "+dynamic-dispatch requires vectorization=none. Set vectorization to 'none' " + "when enabling dynamic-dispatch." + ), + ) + requires( + "vectorization=none", + when="+tunables", + msg=( + "+tunables requires vectorization=none. Set vectorization to 'none' when " + "enabling tunables." + ), + ) + depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("cmake@3.22:", type="build") + depends_on("cmake@3.22:", when="@:5.0", type="build") + depends_on("cmake@3.26:", when="@5.1:", type="build") @property def libs(self): @@ -79,13 +114,31 @@ def cmake_args(self): args.append(self.define_from_variant("ENABLE_TUNABLES", "tunables")) args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared")) - if spec.satisfies("vectorisation=auto"): - if "avx512" in self.spec.target: - args.append("-ALMEM_ARCH=avx512") - elif "avx2" in self.spec.target: - args.append("-ALMEM_ARCH=avx2") + if spec.satisfies("@:5.0"): + vectorization = spec.variants["vectorization"].value + if vectorization == "auto": + target = spec.target + if "avx512" in target: + args.append("-DALMEM_ARCH=avx512") + elif "avx2" in target: + args.append("-DALMEM_ARCH=avx2") + else: + args.append("-DALMEM_ARCH=none") + else: + args.append(self.define("ALMEM_ARCH", vectorization)) + + # Managing Renamed CMake Option Values + if self.spec.satisfies("@5.1:"): + args.append(self.define_from_variant("ALMEM_LOGGING", "logging")) + args.append(self.define_from_variant("ALMEM_TUNABLES", "tunables")) + args.append(self.define_from_variant("ALMEM_DYN_DISPATCH", "dynamic-dispatch")) + + if self.spec.satisfies("vectorisation=auto"): + if "avx512" in self.spec.target: + args.append("-DALMEM_ISA=avx512") + elif "avx2" in self.spec.target: + args.append("-DALMEM_ISA=avx2") else: - args.append("-ALMEM_ARCH=none") - else: - args.append(self.define("ALMEM_ARCH", spec.variants["vectorization"].value)) + args.append(self.define("ALMEM_ISA", self.spec.variants["vectorization"].value)) + return args diff --git a/repos/spack_repo/builtin/packages/aocl_sparse/package.py b/repos/spack_repo/builtin/packages/aocl_sparse/package.py index 32acf058040..69d0e74db74 100644 --- a/repos/spack_repo/builtin/packages/aocl_sparse/package.py +++ b/repos/spack_repo/builtin/packages/aocl_sparse/package.py @@ -31,11 +31,9 @@ class AoclSparse(CMakePackage): license("MIT") - version( - "5.0", - sha256="7528970f41ae60563df9fe1f8cc74a435be1566c01868a603ab894e9956c3c94", - preferred=True, - ) + version("5.2", sha256="7de4ccb22b9bdf4733e621b44ebde1951dae5333841b02148fae382a8859f550") + version("5.1", sha256="a5fff94f9144cb5e5e0f4702cc0d48a20215ccccd06cbed915e566e5d901fa0a") + version("5.0", sha256="7528970f41ae60563df9fe1f8cc74a435be1566c01868a603ab894e9956c3c94") version("4.2", sha256="03cd67adcfea4a574fece98b60b4aba0a6e5a9c8f608ff1ccc1fb324a7185538") version("4.1", sha256="35ef437210bc25fdd802b462eaca830bfd928f962569b91b592f2866033ef2bb") version("4.0", sha256="68524e441fdc7bb923333b98151005bed39154d9f4b5e8310b5c37de1d69c2c3") @@ -44,6 +42,9 @@ class AoclSparse(CMakePackage): version("3.0", sha256="1d04ba16e04c065051af916b1ed9afce50296edfa9b1513211a7378e1d6b952e") version("2.2", sha256="33c2ed6622cda61d2613ee63ff12c116a6cd209c62e54307b8fde986cd65f664") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + variant("shared", default=True, description="Build shared library") variant("ilp64", default=False, description="Build with ILP64 support") variant("examples", default=False, description="Build sparse examples") @@ -57,10 +58,7 @@ class AoclSparse(CMakePackage): ) variant("openmp", default=True, when="@4.2:", description="Enable OpenMP support") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - for vers in ["4.1", "4.2", "5.0"]: + for vers in ["4.1", "4.2", "5.0", "5.1", "5.2"]: with when(f"@={vers}"): depends_on(f"amdblis@={vers}") depends_on(f"amdlibflame@={vers}") @@ -73,7 +71,8 @@ class AoclSparse(CMakePackage): depends_on("amdlibflame threads=none", when="~openmp") depends_on("boost", when="+benchmarks") depends_on("boost", when="@2.2") - depends_on("cmake@3.22:", type="build") + depends_on("cmake@3.22:", when="@:5.0", type="build") + depends_on("cmake@3.26:", when="@5.1:", type="build") @property def libs(self): diff --git a/repos/spack_repo/builtin/packages/aocl_utils/package.py b/repos/spack_repo/builtin/packages/aocl_utils/package.py index e4dee31bc06..71b36560335 100644 --- a/repos/spack_repo/builtin/packages/aocl_utils/package.py +++ b/repos/spack_repo/builtin/packages/aocl_utils/package.py @@ -36,11 +36,9 @@ class AoclUtils(CMakePackage): license("BSD-3-Clause") - version( - "5.0", - sha256="ee2e5d47f33a3f673b3b6fcb88a7ef1a28648f407485ad07b6e9bf1b86159c59", - preferred=True, - ) + version("5.2", sha256="db0d807170a6eb73fcccd720a65a3e3aa8a787ae656c46479f7d9b4e1f9ed08a") + version("5.1", sha256="68d75e04013abe90ea8308a9bc99b99532233b6c7f937f35381563f4124c20a5") + version("5.0", sha256="ee2e5d47f33a3f673b3b6fcb88a7ef1a28648f407485ad07b6e9bf1b86159c59") version("4.2", sha256="1294cdf275de44d3a22fea6fc4cd5bf66260d0a19abb2e488b898aaf632486bd") version("4.1", sha256="660746e7770dd195059ec25e124759b126ee9f060f43302d13354560ca76c02c") @@ -52,7 +50,8 @@ class AoclUtils(CMakePackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("cmake@3.22:", type="build") + depends_on("cmake@3.22:", when="@:5.0", type="build") + depends_on("cmake@3.26:", when="@5.1:", type="build") depends_on("doxygen", when="+doc") @property diff --git a/repos/spack_repo/builtin/packages/aom/package.py b/repos/spack_repo/builtin/packages/aom/package.py index d7a3d7bfcec..c693fb9a5c2 100644 --- a/repos/spack_repo/builtin/packages/aom/package.py +++ b/repos/spack_repo/builtin/packages/aom/package.py @@ -15,11 +15,11 @@ class Aom(CMakePackage): license("BSD-2-Clause AND AOM-Patent-License-1.0", checked_by="tgamblin") - version("v1.0.0-errata1", commit="29d8ce4836630df5cc7ab58f1afc4836765fc212") + version("3.12.1", tag="v3.12.1", commit="10aece4157eb79315da205f39e19bf6ab3ee30d0") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("yasm") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("nasm", type="build") def cmake_args(self): args = [] diff --git a/repos/spack_repo/builtin/packages/aotriton/package.py b/repos/spack_repo/builtin/packages/aotriton/package.py index 84ae5f35897..ff1ce88e3ac 100644 --- a/repos/spack_repo/builtin/packages/aotriton/package.py +++ b/repos/spack_repo/builtin/packages/aotriton/package.py @@ -18,6 +18,18 @@ class Aotriton(CMakePackage): maintainers("afzpatel", "srekolam", "renjithravindrankannath") license("MIT") + version( + "0.11.1b", + tag="0.11.1b", + commit="98371989e8a23267e284c94e95156a139e4b33c4", + submodules=True, + ) + version( + "0.11b", tag="0.11b", commit="972223c501ffc22068bb035ac5d64cf54318d895", submodules=True + ) + version( + "0.10b", tag="0.10b", commit="6fca155f4deeb8d9529326f7b69f350aeeb93477", submodules=True + ) version( "0.9.2b", tag="0.9.2b", commit="b388d223d8c7213545603e00f6f3148c54d1f525", submodules=True ) @@ -41,13 +53,22 @@ class Aotriton(CMakePackage): depends_on("py-filelock", type=("build", "run")) depends_on("cmake@3.26:", type="build") - depends_on("python@:3.11", type="build") + depends_on("python", type="build") depends_on("z3", type="link") depends_on("zlib-api", type="link") depends_on("xz", type="link") depends_on("pkgconfig", type="build") + + # build llvm version with mlir with the commit that matches inside the llvm-hash.txt + depends_on("aotriton-llvm@0.10", when="@0.10b:") + depends_on("aotriton-llvm@0.9", when="@0.9b") + depends_on("aotriton-llvm@0.8", when="@0.8b") + conflicts("^openssl@3.3.0") + # https://github.com/ROCm/aotriton/blob/main/README.md?plain=1#L24 + conflicts("%gcc@:11.3", when="@0.9b:", msg="The binary delivery is compiled with gcc13") + # ROCm dependencies depends_on("hip", type="build") depends_on("llvm-amdgpu", type="build") @@ -58,11 +79,50 @@ def patch(self): if self.spec.satisfies("^hip"): filter_file( "/opt/rocm/llvm/bin/ld.lld", - f'{self.spec["llvm-amdgpu"].prefix}/bin/ld.lld', + f"{self.spec['llvm-amdgpu'].prefix}/bin/ld.lld", "third_party/triton/third_party/amd/backend/compiler.py", string=True, ) + if self.spec.satisfies("@:0.9b"): + filter_file( + r"LLVM_INCLUDE_DIRS", + f"{self.spec['aotriton-llvm'].prefix}/include", + "third_party/triton/python/setup.py", + string=True, + ) + filter_file( + r"LLVM_LIBRARY_DIR", + f"{self.spec['aotriton-llvm'].prefix}/lib", + "third_party/triton/python/setup.py", + string=True, + ) + filter_file( + r"LLVM_SYSPATH", + f"{self.spec['aotriton-llvm'].prefix}", + "third_party/triton/python/setup.py", + string=True, + ) + if self.spec.satisfies("@0.10b:"): + filter_file( + r"LLVM_INCLUDE_DIRS", + f"{self.spec['aotriton-llvm'].prefix}/include", + "third_party/triton/setup.py", + string=True, + ) + filter_file( + r"LLVM_LIBRARY_DIR", + f"{self.spec['aotriton-llvm'].prefix}/lib", + "third_party/triton/setup.py", + string=True, + ) + filter_file( + r"LLVM_SYSPATH", + f"{self.spec['aotriton-llvm'].prefix}", + "third_party/triton/setup.py", + string=True, + ) + def setup_build_environment(self, env: EnvironmentModifications) -> None: """Set environment variables used to control the build""" if self.spec.satisfies("%clang"): @@ -73,4 +133,22 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: def cmake_args(self): args = [] args.append(self.define("AOTRITON_GPU_BUILD_TIMEOUT", 0)) + args.append(self.define("AOTRITON_NOIMAGE_MODE", "ON")) + # So libaotriton_v2.so and extensions find libamdhip64.so at runtime and + # during binary cache relocation (avoids "libamdhip64.so.6 => not found"). + args.append(self.define("CMAKE_INSTALL_RPATH", self.spec["hip"].prefix.lib)) + args.append(self.define("CMAKE_INSTALL_RPATH_USE_LINK_PATH", True)) + # So libaotriton_v2.so and extensions find shared libs at runtime and + # during binary cache relocation (avoids "=> not found" for e.g. + # libamdhip64.so.6, libz.so.1, libhsa-runtime64.so.1, libc++abi.so.1, + # libunwind.so.1). + rpath_dirs = [ + self.spec["hip"].prefix.lib, + self.spec["hsa-rocr-dev"].prefix.lib, + self.spec["zlib-api"].prefix.lib, + self.spec["aotriton-llvm"].prefix.lib, + ] + args.append(self.define("CMAKE_INSTALL_RPATH", rpath_dirs)) + if self.spec.satisfies("@0.11b"): + args.append(self.define("AOTRITON_USE_TORCH", "OFF")) return args diff --git a/repos/spack_repo/builtin/packages/aotriton_llvm/package.py b/repos/spack_repo/builtin/packages/aotriton_llvm/package.py new file mode 100644 index 00000000000..c23460c6f10 --- /dev/null +++ b/repos/spack_repo/builtin/packages/aotriton_llvm/package.py @@ -0,0 +1,71 @@ +# 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, generator +from spack_repo.builtin.build_systems.compiler import CompilerPackage +from spack_repo.builtin.build_systems.cuda import CudaPackage + +from spack.package import * + + +class AotritonLlvm(CMakePackage, CudaPackage, CompilerPackage): + """Package for aotriton-llvm: A custom LLVM build for AoTriton.""" + + homepage = "https://github.com/llvm/llvm-project" + git = "https://github.com/llvm/llvm-project" + url = "https://github.com/llvm/llvm-project/archive/llvmorg-7.1.0.tar.gz" + tags = ["rocm"] + + maintainers("afzpatel", "srekolam", "renjithravindrankannath") + + license("Apache-2.0") + + version("main", commit="b5cc222d7429fe6f18c787f633d5262fac2e676f") + version("0.10", commit="3c709802d31b5bc5ed3af8284b40593ff39b9eec") + version("0.9", commit="86b69c31642e98f8357df62c09d118ad1da4e16a") + version("0.8", commit="bd9145c8c21334e099d51b3e66f49d51d24931ee") + generator("ninja") + depends_on("cxx", type="build") + depends_on("c", type="build") + depends_on("cmake@3.13.4:", type="build") + depends_on("python", type="build") + depends_on("z3", type="link") + depends_on("zlib-api", type="link") + depends_on("ncurses+termlib", type="link") + depends_on("libxml2", type="link") + depends_on("py-pybind11") + depends_on("pkgconfig", type="build") + depends_on("py-nanobind", when="@0.10") + + root_cmakelists_dir = "llvm" + + def _standard_flag(self, *, language, standard): + flags = { + "cxx": { + "11": "-std=c++11", + "14": "-std=c++14", + "17": "-std=c++17", + "20": "-std=c++20", + }, + "c": {"99": "-std=c99", "11": "-std=c1x"}, + } + return flags[language][standard] + + def cmake_args(self): + llvm_projects = ["llvm", "mlir"] + args = [ + self.define("LLVM_ENABLE_Z3_SOLVER", "OFF"), + self.define("CMAKE_BUILD_TYPE", "Release"), + self.define("LLVM_REQUIRES_RTTI", True), + self.define("LLVM_ENABLE_LIBXML2", False), + self.define("LLVM_ENABLE_RTTI", "ON"), + self.define("CMAKE_INSTALL_LIBDIR", "lib"), + self.define("CMAKE_CXX_STANDARD", 17), + self.define("LLVM_BUILD_UTILS", "ON"), + self.define("LLVM_TARGETS_TO_BUILD", "host;NVPTX;AMDGPU"), + self.define("MLIR_ENABLE_BINDINGS_PYTHON", "ON"), + self.define("LLVM_ENABLE_TERMINFO", "OFF"), + ] + args.append(self.define("LLVM_ENABLE_PROJECTS", llvm_projects)) + return args diff --git a/repos/spack_repo/builtin/packages/apache_tvm/package.py b/repos/spack_repo/builtin/packages/apache_tvm/package.py index f93bc74a680..48f7cc7c52c 100644 --- a/repos/spack_repo/builtin/packages/apache_tvm/package.py +++ b/repos/spack_repo/builtin/packages/apache_tvm/package.py @@ -21,12 +21,6 @@ class ApacheTvm(CMakePackage, CudaPackage): url = "https://github.com/apache/tvm/releases/download/v0.19.0/apache-tvm-src-v0.19.0.tar.gz" version("0.19.0", sha256="13fd707eae37b9b2b77bccd39668764f61ae6824d50cd1ab8164df1c75565be1") - version( - "0.16.0", - sha256="55e2629c39248ef3b1ee280e34a960182bd17bea7ae0d0fa132bbdaaf5aba1ac", - url="https://dlcdn.apache.org/tvm/tvm-v0.16.0/apache-tvm-src-v0.16.0.tar.gz", - deprecated=True, - ) variant("llvm", default=True, description="Build with llvm for CPU codegen") @@ -35,13 +29,11 @@ class ApacheTvm(CMakePackage, CudaPackage): depends_on("cmake@3.18:", type="build") depends_on("python@3.7:", type=("build", "run")) - conflicts("^python@3.9.0:", when="@:0.16") depends_on("zlib-api", type=("link", "run")) depends_on("ncurses", type=("link", "run")) depends_on("llvm@4:", type="build", when="+llvm") - conflicts("^llvm@19.0.0:", when="@:0.16+llvm") depends_on("cuda@8:", when="+cuda") diff --git a/repos/spack_repo/builtin/packages/apcomp/package.py b/repos/spack_repo/builtin/packages/apcomp/package.py deleted file mode 100644 index 818808e46b1..00000000000 --- a/repos/spack_repo/builtin/packages/apcomp/package.py +++ /dev/null @@ -1,182 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - - -import os -import socket - -from spack_repo.builtin.build_systems.cmake import CMakeBuilder -from spack_repo.builtin.build_systems.generic import Package - -from spack.package import * - - -def cmake_cache_entry(name, value, vtype=None): - """ - Helper that creates CMake cache entry strings used in - 'host-config' files. - """ - if vtype is None: - if value == "ON" or value == "OFF": - vtype = "BOOL" - else: - vtype = "PATH" - return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype) - - -class Apcomp(Package): - """A multi use-case image compositor""" - - homepage = "https://github.com/Alpine-DAV/ap_compositor" - git = "https://github.com/Alpine-DAV/ap_compositor.git" - url = ( - "https://github.com/Alpine-DAV/ap_compositor/releases/download/v0.0.1/apcomp-v0.0.1.tar.gz" - ) - - maintainers("cyrush") - - with default_args(deprecated=True): # part of ascent - version("master", branch="master", submodules="True") - version("0.0.4", sha256="061876dd55e443de91a40d10662496f6bb58b0a3835aec78f5710f5a737d0494") - version("0.0.3", sha256="07e8c1d6a23205f4cc66d0a030e65a69e8344545f4d56213d968b67a410adc6e") - version("0.0.2", sha256="cb2e2c4524889408de2dd3d29665512c99763db13e6f5e35c3b55e52948c649c") - version("0.0.1", sha256="cbf85fe58d5d5bc2f468d081386cc8b79861046b3bb7e966edfa3f8e95b998b2") - - variant("openmp", default=True, description="Build with openmp support") - variant("mpi", default=True, description="Build with MPI support") - variant("shared", default=True, description="Build Shared Library") - # set to false for systems that implicitly link mpi - variant("blt_find_mpi", default=True, description="Use BLT CMake Find MPI logic") - - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated - - depends_on("cmake@3.9:", type="build") - depends_on("mpi", when="+mpi") - depends_on("llvm-openmp", when="+openmp %apple-clang") - depends_on("gmake", type="build") - - root_cmakelists_dir = "src" - - def install(self, spec, prefix): - """ - Build and install APComp - """ - with working_dir("spack-build", create=True): - host_cfg_fname = self.create_host_config(spec, prefix) - print("Configuring APComp...") - cmake(*CMakeBuilder.std_args(self), "-C", host_cfg_fname, "../src") - print("Building APComp...") - make() - print("Installing APComp...") - make("install") - # install copy of host config for provenance - install(host_cfg_fname, prefix) - - def create_host_config(self, spec, prefix): - """ - This method creates a 'host-config' file that specifies - all of the options used to configure and build apcomp. - """ - - ####################### - # Compiler Info - ####################### - c_compiler = env["SPACK_CC"] - cpp_compiler = env["SPACK_CXX"] - - ####################################################################### - # We directly fetch the names of the actual compilers to create a - # 'host config' file that works outside of the spack install env. - ####################################################################### - - sys_type = spec.architecture - # if on llnl systems, we can use the SYS_TYPE - if "SYS_TYPE" in env: - sys_type = env["SYS_TYPE"] - - ############################################## - # Find and record what CMake is used - ############################################## - - if spec.satisfies("+cmake"): - cmake_exe = spec["cmake"].command.path - else: - cmake_exe = which("cmake") - if cmake_exe is None: - msg = "failed to find CMake (and cmake variant is off)" - raise RuntimeError(msg) - cmake_exe = cmake_exe.path - - host_cfg_fname = "%s-%s-%s-apcomp.cmake" % (socket.gethostname(), sys_type, spec.compiler) - - cfg = open(host_cfg_fname, "w") - cfg.write("##################################\n") - cfg.write("# spack generated host-config\n") - cfg.write("##################################\n") - cfg.write("# {0}-{1}\n".format(sys_type, spec.compiler)) - cfg.write("##################################\n\n") - - # Include path to cmake for reference - cfg.write("# cmake from spack \n") - cfg.write("# cmake executable path: %s\n\n" % cmake_exe) - - ####################### - # Compiler Settings - ####################### - cfg.write("#######\n") - cfg.write("# using %s compiler spec\n" % spec.compiler) - cfg.write("#######\n\n") - cfg.write("# c compiler used by spack\n") - cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler)) - cfg.write("# cpp compiler used by spack\n") - cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler)) - - # shared vs static libs - if spec.satisfies("+shared"): - cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "ON")) - else: - cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "OFF")) - - if spec.satisfies("+openmp"): - cfg.write(cmake_cache_entry("ENABLE_OPENMP", "ON")) - else: - cfg.write(cmake_cache_entry("ENABLE_OPENMP", "OFF")) - - if spec.satisfies("+mpi"): - mpicc_path = spec["mpi"].mpicc - mpicxx_path = spec["mpi"].mpicxx - # if we are using compiler wrappers on cray systems - # use those for mpi wrappers, b/c spec['mpi'].mpicxx - # etc make return the spack compiler wrappers - # which can trip up mpi detection in CMake 3.14 - if cpp_compiler == "CC": - mpicc_path = "cc" - mpicxx_path = "CC" - cfg.write(cmake_cache_entry("ENABLE_MPI", "ON")) - cfg.write(cmake_cache_entry("MPI_C_COMPILER", mpicc_path)) - cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", mpicxx_path)) - if spec.satisfies("+blt_find_mpi"): - cfg.write(cmake_cache_entry("ENABLE_FIND_MPI", "ON")) - else: - cfg.write(cmake_cache_entry("ENABLE_FIND_MPI", "OFF")) - mpiexe_bin = join_path(spec["mpi"].prefix.bin, "mpiexec") - if os.path.isfile(mpiexe_bin): - # starting with cmake 3.10, FindMPI expects MPIEXEC_EXECUTABLE - # vs the older versions which expect MPIEXEC - if self.spec["cmake"].satisfies("@3.10:"): - cfg.write(cmake_cache_entry("MPIEXEC_EXECUTABLE", mpiexe_bin)) - else: - cfg.write(cmake_cache_entry("MPIEXEC", mpiexe_bin)) - else: - cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF")) - - cfg.write("##################################\n") - cfg.write("# end spack generated host-config\n") - cfg.write("##################################\n") - cfg.close() - - host_cfg_fname = os.path.abspath(host_cfg_fname) - tty.info("spack generated conduit host-config file: " + host_cfg_fname) - return host_cfg_fname diff --git a/repos/spack_repo/builtin/packages/aperture_photometry/package.py b/repos/spack_repo/builtin/packages/aperture_photometry/package.py index da705004b23..ab988c71ae4 100644 --- a/repos/spack_repo/builtin/packages/aperture_photometry/package.py +++ b/repos/spack_repo/builtin/packages/aperture_photometry/package.py @@ -18,11 +18,6 @@ class AperturePhotometry(Package): version("3.0.2", sha256="8ac430079825ba274567fb998dd693bb6f99490f5b896d4746178ba796bfdead") version("2.8.4", sha256="28ae136c708a3ebcb83632230e119a03ca1a65499006ab69dc76e21b4921f465") - version( - "2.8.2", - sha256="cb29eb39a630dc5d17c02fb824c69571fe1870a910a6acf9115c5f76fd89dd7e", - deprecated=True, - ) depends_on("java") diff --git a/repos/spack_repo/builtin/packages/apex/install-includes.patch b/repos/spack_repo/builtin/packages/apex/install-includes.patch deleted file mode 100644 index 5d584555ef3..00000000000 --- a/repos/spack_repo/builtin/packages/apex/install-includes.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/src/apex/CMakeLists.standalone b/src/apex/CMakeLists.standalone -index 5acfa34..bb43bd5 100644 ---- a/src/apex/CMakeLists.standalone -+++ b/src/apex/CMakeLists.standalone -@@ -143,6 +143,7 @@ INSTALL(FILES apex.h - profiler.hpp - task_wrapper.hpp - task_identifier.hpp -+ dependency_tree.hpp - DESTINATION include) - - INSTALL(TARGETS apex RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) diff --git a/repos/spack_repo/builtin/packages/apex/package.py b/repos/spack_repo/builtin/packages/apex/package.py index 110067b55d4..5e7a2ce56c1 100644 --- a/repos/spack_repo/builtin/packages/apex/package.py +++ b/repos/spack_repo/builtin/packages/apex/package.py @@ -27,46 +27,6 @@ class Apex(CMakePackage): version("2.6.2", sha256="0c3ec26631db7925f50cf4e8920a778b57d11913f239a0eb964081f925129725") version("2.6.1", sha256="511dbab0af541489052a3d6379c48f9577e51654491d3b2c8545020e9d29fb29") version("2.6.0", sha256="25b4f6afd1083475dc6680b5da87759c62d31fcf368996185573694fc40d5317") - version( - "2.5.1", - sha256="c01016e6a8a3a77e1021281ae53681cb83ea7a369c346ef85d45d27bacca2fca", - deprecated=True, - ) - version( - "2.5.0", - sha256="d4a95f6226985acf2143e2b779b7bba3caf823564b04826b022f1a0c31093a0f", - deprecated=True, - ) - version( - "2.4.1", - sha256="055d09dd36c529ebd3bab4defbec4ad1d227c004a291faf26e77e4ab79ce470c", - deprecated=True, - ) - version( - "2.4.0", - sha256="15d8957da7b37d2c684a6f0f32aef65b0b26be6558da17963cf71f3fd3cfdf2f", - deprecated=True, - ) - version( - "2.3.2", - sha256="acf37c024a2283cafbf206f508929208b62c8f800af22ad7c74c570863a31bb4", - deprecated=True, - ) - version( - "2.3.1", - sha256="86bf6933f2c53531fcb24cda9fc7dc9919909bed54740d1e0bc3e7ce6ed78091", - deprecated=True, - ) - version( - "2.3.0", - sha256="7e1d16c9651b913c5e28abdbad75f25c55ba25e9fa35f5d979c1d3f9b9852c58", - deprecated=True, - ) - version( - "2.2.0", - sha256="cd5eddb1f6d26b7dbb4a8afeca2aa28036c7d0987e0af0400f4f96733889c75c", - deprecated=True, - ) # Disable some default dependencies on Darwin/OSX darwin_default = False @@ -127,9 +87,6 @@ class Apex(CMakePackage): # Conflicts conflicts("+jemalloc", when="+gperftools") conflicts("+plugins", when="~activeharmony") - # Compatibility fixed in 2.6.0 with - # https://github.com/UO-OACISS/apex/commit/4a7bdbb93367c3b1172ccb978825c67316f8bf4a - conflicts("^otf2@3:", when="@:2.5") # https://github.com/UO-OACISS/apex/pull/177#issuecomment-1726322959 conflicts("+openmp", when="%gcc") @@ -144,19 +101,12 @@ class Apex(CMakePackage): # Patches - # This patch ensures that the missing dependency_tree.hpp header is - # installed - patch("install-includes.patch", when="@2.3.2:2.4.1") - def cmake_args(self): args = [] spec = self.spec # CMake variables were updated in version 2.3.0, to make prefix = "APEX_WITH" test_prefix = "APEX_" - if spec.satisfies("@2.2.0"): - prefix = "USE" - test_prefix = "" args.append(self.define_from_variant(prefix + "_ACTIVEHARMONY", "activeharmony")) args.append(self.define_from_variant(prefix + "_BFD", "binutils")) diff --git a/repos/spack_repo/builtin/packages/apfel/package.py b/repos/spack_repo/builtin/packages/apfel/package.py index 659c1cd589b..601bb902c4c 100644 --- a/repos/spack_repo/builtin/packages/apfel/package.py +++ b/repos/spack_repo/builtin/packages/apfel/package.py @@ -35,7 +35,7 @@ class Apfel(AutotoolsPackage, CMakePackage): depends_on("fortran", type="build") with when("build_system=cmake"): - depends_on("cmake@03.15:") + depends_on("cmake@3.15:", type="build") extends("python", when="+python") depends_on("swig", when="+python") diff --git a/repos/spack_repo/builtin/packages/apfelxx/package.py b/repos/spack_repo/builtin/packages/apfelxx/package.py new file mode 100644 index 00000000000..85c04969554 --- /dev/null +++ b/repos/spack_repo/builtin/packages/apfelxx/package.py @@ -0,0 +1,33 @@ +# 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 Apfelxx(CMakePackage): + """APFEL++ is a C++ rewriting of the Fortran 77 code APFEL + originally conceived to evolve collinear parton + distribution functions (PDFs).""" + + homepage = "https://github.com/vbertone/apfelxx" + url = "https://github.com/vbertone/apfelxx/archive/refs/tags/4.8.0.tar.gz" + git = "https://github.com/vbertone/apfelxx.git" + + tags = ["hep"] + + maintainers("wdconinc") + + license("GPL-3.0", checked_by="wdconinc") + + version("4.10.0", sha256="bff51f56f36c9fa8a2e9b35a87847e7f061d532ba15c8e7f151ad344e4aa2f3f") + + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("cmake@3.10:", type="build") + + depends_on("lhapdf") + depends_on("yaml-cpp") + depends_on("py-pybind11") diff --git a/repos/spack_repo/builtin/packages/apktool/package.py b/repos/spack_repo/builtin/packages/apktool/package.py index 3f59963b5d0..45a07a75665 100644 --- a/repos/spack_repo/builtin/packages/apktool/package.py +++ b/repos/spack_repo/builtin/packages/apktool/package.py @@ -28,7 +28,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: def install(self, spec, prefix): gradlew = Executable("./gradlew") gradlew("--info", "--debug", "build", "shadowJar") - ln = which("ln") + ln = which("ln", required=True) mkdir(join_path(prefix, "bin")) install( join_path("brut.apktool", "apktool-cli", "build", "libs", "apktool-cli-all.jar"), diff --git a/repos/spack_repo/builtin/packages/apple_glu/package.py b/repos/spack_repo/builtin/packages/apple_glu/package.py index 76371d1f5a2..80e7d18cd2b 100644 --- a/repos/spack_repo/builtin/packages/apple_glu/package.py +++ b/repos/spack_repo/builtin/packages/apple_glu/package.py @@ -14,3 +14,8 @@ class AppleGlu(AppleGlBase): provides("glu@1.3") requires("platform=darwin", msg="Apple-GL is only available on Darwin") + + def setup_dependent_build_environment( + self, env: EnvironmentModifications, dependent_spec: Spec + ): + env.prepend_path("OpenGL_ROOT", self.prefix) diff --git a/repos/spack_repo/builtin/packages/apptainer/package.py b/repos/spack_repo/builtin/packages/apptainer/package.py index 3dc7672a626..4ae0759aa8d 100644 --- a/repos/spack_repo/builtin/packages/apptainer/package.py +++ b/repos/spack_repo/builtin/packages/apptainer/package.py @@ -38,6 +38,9 @@ class Apptainer(SingularityBase): ) version("main", branch="main", get_full_repo=True) # apptainer version uses git describe + version("1.4.4", sha256="eb806e22dabfb6549c398b55e50c747e4c51b57f8879da9e29813de40af54b48") + version("1.4.3", sha256="dfb85b8ad48bd366245c7f6a1d0b56d2ce480cfdf18d7a64397098184b4ade90") + version("1.4.2", sha256="6dda1dd2ca8e42ed7f498d2bc8574f01d7ad3db68494e453639d76aef4424d1d") version("1.4.1", sha256="77f25c756397a0886baf462ffdde0e21fe528063505c67a51460c165094d166d") version("1.4.0", sha256="204cded54046547cb3eb4c7874bdf45892fedc58b0d104195c59d2972cba51d3") version("1.3.6", sha256="b5343369e7fdf67572f887d81f8d2b938f099fb39c876d96430d747935960d51") diff --git a/repos/spack_repo/builtin/packages/apr/missing_includes.patch b/repos/spack_repo/builtin/packages/apr/missing_includes.patch deleted file mode 100644 index a359cb510b8..00000000000 --- a/repos/spack_repo/builtin/packages/apr/missing_includes.patch +++ /dev/null @@ -1,153 +0,0 @@ -https://bz.apache.org/bugzilla/show_bug.cgi?id=64753 -*** a/configure 2020-09-25 09:58:14.000000000 +0200 ---- b/configure 2020-09-25 10:01:12.000000000 +0200 -*************** -*** 22913,22918 **** ---- 22913,22919 ---- - #include - #include - #include -+ #include - main() - { - char buf[1024]; -*************** -*** 24475,24480 **** ---- 24476,24482 ---- - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include -+ #include - #include - #ifdef WIN32 - #define binmode "b" -*************** -*** 24800,24805 **** ---- 24802,24808 ---- - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include -+ #include - #include - #ifdef WIN32 - #define binmode "b" -*************** -*** 24864,24869 **** ---- 24867,24873 ---- - /* end confdefs.h. */ - #include - #include -+ #include - #ifdef WIN32 - #define binmode "b" - #else -*************** -*** 24928,24933 **** ---- 24932,24938 ---- - /* end confdefs.h. */ - #include - #include -+ #include - #ifdef WIN32 - #define binmode "b" - #else -*************** -*** 25298,25303 **** ---- 25303,25309 ---- - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include -+ #include - $ac_includes_default - #ifdef WIN32 - #define binmode "b" -*************** -*** 25584,25589 **** ---- 25590,25596 ---- - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include -+ #include - #include - #include - #ifdef WIN32 -*************** -*** 26211,26216 **** ---- 26218,26224 ---- - #include - #include - #include -+ #include - main() - { - struct rlimit limit; -*************** -*** 26809,26814 **** ---- 26817,26823 ---- - /* end confdefs.h. */ - - #include -+ #include - #include - int main() - { -*************** -*** 27454,27459 **** ---- 27463,27469 ---- - #endif - #include - #include -+ #include - - int fd; - struct flock proc_mutex_lock_it = {0}; -*************** -*** 28763,28768 **** ---- 28773,28779 ---- - #ifndef HAVE_SOCKLEN_T - typedef int socklen_t; - #endif -+ #include - int main(void) { - int listen_s, connected_s, client_s; - int listen_port, rc; -*************** -*** 28913,28918 **** ---- 28924,28930 ---- - #ifdef HAVE_FCNTL_H - #include - #endif -+ #include - int main(void) { - int listen_s, connected_s, client_s; - int listen_port, rc; -*************** -*** 29598,29603 **** ---- 29610,29616 ---- - #ifdef HAVE_SYS_SOCKET_H - #include - #endif -+ #include - - int main(void) { - struct addrinfo hints, *ai; -*************** -*** 29661,29666 **** ---- 29674,29680 ---- - #ifdef HAVE_NETDB_H - #include - #endif -+ #include - - int main(void) { - if (EAI_ADDRFAMILY < 0) { -*************** -*** 29722,29727 **** ---- 29736,29742 ---- - #ifdef HAVE_NETINET_IN_H - #include - #endif -+ #include - - int main(void) { - struct sockaddr_in sa; diff --git a/repos/spack_repo/builtin/packages/apr/package.py b/repos/spack_repo/builtin/packages/apr/package.py index bbdb1b68f20..21fd3b65e4a 100644 --- a/repos/spack_repo/builtin/packages/apr/package.py +++ b/repos/spack_repo/builtin/packages/apr/package.py @@ -17,19 +17,8 @@ class Apr(AutotoolsPackage): version("1.7.5", sha256="3375fa365d67bcf945e52b52cba07abea57ef530f40b281ffbe977a9251361db") - # https://nvd.nist.gov/vuln/detail/CVE-2023-49582 - with default_args(deprecated=True): - version("1.7.4", sha256="a4137dd82a185076fa50ba54232d920a17c6469c30b0876569e1c2a05ff311d9") - version("1.7.3", sha256="af9bfd5b8a04425d6b419673f3e0a7656fade226aae78180d93f8a6f2d3d1c09") - version("1.7.2", sha256="3d8999b216f7b6235343a4e3d456ce9379aa9a380ffb308512f133f0c5eb2db9") - version("1.7.0", sha256="48e9dbf45ae3fdc7b491259ffb6ccf7d63049ffacbc1c0977cced095e4c2d5a2") - version("1.6.2", sha256="4fc24506c968c5faf57614f5d0aebe0e9d0b90afa47a883e1a1ca94f15f4a42e") - version("1.5.2", sha256="1af06e1720a58851d90694a984af18355b65bb0d047be03ec7d659c746d6dbdb") - depends_on("c", type="build") - patch("missing_includes.patch", when="@1.7.0") - depends_on("uuid", type="link") @property diff --git a/repos/spack_repo/builtin/packages/apr_util/package.py b/repos/spack_repo/builtin/packages/apr_util/package.py index da047ce8b82..b57f1319008 100644 --- a/repos/spack_repo/builtin/packages/apr_util/package.py +++ b/repos/spack_repo/builtin/packages/apr_util/package.py @@ -91,7 +91,7 @@ def configure_args(self): if spec.satisfies("+crypto ^openssl~shared"): # Need pkg-config to get zlib and -ldl flags # (see https://dev.apr.apache.narkive.com/pNnO9F1S/configure-bug-openssl) - pkgconf = which("pkg-config") + pkgconf = which("pkg-config", required=True) ssl_libs = pkgconf("--libs", "--static", "openssl", output=str) args.append(f"LIBS={ssl_libs}") diff --git a/repos/spack_repo/builtin/packages/aqlprofile/package.py b/repos/spack_repo/builtin/packages/aqlprofile/package.py index 8b6562b2888..b247b94f2c1 100644 --- a/repos/spack_repo/builtin/packages/aqlprofile/package.py +++ b/repos/spack_repo/builtin/packages/aqlprofile/package.py @@ -3,12 +3,41 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os +import re from spack_repo.builtin.build_systems.generic import Package from spack.package import * _versions = { + "6.4.3": { + "apt": ( + "9c859a05c6a246eebe75f40915d3788aff8f1f537ab62b3864852efbfb012a25", + "https://repo.radeon.com/rocm/apt/6.4.3/pool/main/h/hsa-amd-aqlprofile/hsa-amd-aqlprofile_1.0.0.60403-128~22.04_amd64.deb", + ), + "yum": ( + "2a0a3f76cfba27976f6e2053c6746000e693e733bdd7a466ef01127b51baf18a", + "https://repo.radeon.com/rocm/rhel8/6.4.3/main/hsa-amd-aqlprofile-1.0.0.60403-128.el8.x86_64.rpm", + ), + "zyp": ( + "d5393b2800678eb18bc63b8b5ac7dc54ce74d47e7ac7979f49f64be6ea4a774b", + "https://repo.radeon.com/rocm/zyp/6.4.3/main/hsa-amd-aqlprofile6.4.3-1.0.0.60403-sles156.128.x86_64.rpm", + ), + }, + "6.4.2": { + "apt": ( + "b0f2cbe31aa0ac9dd3a5584f580ea91b96412fca2feaac19f23bbfc5a60fc06d", + "https://repo.radeon.com/rocm/apt/6.4.2/pool/main/h/hsa-amd-aqlprofile/hsa-amd-aqlprofile_1.0.0.60402-120~22.04_amd64.deb", + ), + "yum": ( + "87201f122f27e1d6a8caaaa44b654e39aac41b46d63c44546c2aca3dfec3b8db", + "https://repo.radeon.com/rocm/rhel8/6.4.2/main/hsa-amd-aqlprofile-1.0.0.60402-120.el8.x86_64.rpm", + ), + "zyp": ( + "345c480f54435ac44f40b137d55bab05297b51d7206954afca26578ad75e6ef9", + "https://repo.radeon.com/rocm/zyp/6.4.2/main/hsa-amd-aqlprofile6.4.2-1.0.0.60402-sles156.120.x86_64.rpm", + ), + }, "6.4.1": { "apt": ( "9e0917b47d40318f73d4323bdc0fdaa27202931544bc4e89f706c4ddd9bd9428", @@ -233,34 +262,6 @@ "https://repo.radeon.com/rocm/zyp/5.7/main/hsa-amd-aqlprofile-1.0.0.50700.50700-sles154.63.x86_64.rpm", ), }, - "5.6.1": { - "apt": ( - "ddb231dc4c8ca45e586ba68cae86273c3bc109f5ec172855815fce1ea6aff172", - "https://repo.radeon.com/rocm/apt/5.6.1/pool/main/h/hsa-amd-aqlprofile/hsa-amd-aqlprofile_1.0.0.50601-93~20.04_amd64.deb", - ), - "yum": ( - "3c67b2e3cfbe71441d4c504dee2c55c9010a15ad7c973f1f858a052fb60524a6", - "https://repo.radeon.com/rocm/yum/5.6.1/main/hsa-amd-aqlprofile-1.0.0.50601-93.el7.x86_64.rpm", - ), - "zyp": ( - "956382a085356211a35cb24210764c4f5575ce4d3d842439e39cc94287004176", - "https://repo.radeon.com/rocm/zyp/5.6.1/main/hsa-amd-aqlprofile-1.0.0.50601-sles154.93.x86_64.rpm", - ), - }, - "5.6.0": { - "apt": ( - "67273e8513c0efdef6d52fb211a0cf4b7e117b1c5e737f8763946699324a9d7d", - "https://repo.radeon.com/rocm/apt/5.6/pool/main/h/hsa-amd-aqlprofile/hsa-amd-aqlprofile_1.0.0.50600-67~20.04_amd64.deb", - ), - "yum": ( - "0aefd5f0eca5c1bcb55f5c80e946e252685533cbb3c936417abd44fe94c1f28e", - "https://repo.radeon.com/rocm/yum/5.6/main/hsa-amd-aqlprofile-1.0.0.50600-67.el7.x86_64.rpm", - ), - "zyp": ( - "b752eb18eed98226bf0cffa492363d452b318432fd5ae01ad86172c4ce132bef", - "https://repo.radeon.com/rocm/zyp/5.6/main/hsa-amd-aqlprofile-1.0.0.50600-sles154.67.x86_64.rpm", - ), - }, } @@ -270,8 +271,12 @@ class Aqlprofile(Package): Provides AQL packets helper methods for perfcounters (PMC) and SQ threadtraces (SQTT). """ + tags = ["rocm"] + maintainers("afzpatel", "srekolam", "renjithravindrankannath") + libraries = ["libhsa-amd-aqlprofile64"] + spack_os = host_platform().default_os if "rhel" in spack_os or "centos" in spack_os: pkg_type = "yum" @@ -288,8 +293,6 @@ class Aqlprofile(Package): depends_on("cpio") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -306,6 +309,8 @@ class Aqlprofile(Package): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", ]: depends_on(f"hsa-rocr-dev@{ver}", when=f"@{ver}") @@ -323,8 +328,23 @@ def install(self, spec, prefix): install_tree(f"opt/rocm-{spec.version}/share/", prefix.share) install_tree(f"opt/rocm-{spec.version}/lib/", prefix.lib) + @classmethod + def determine_version(cls, lib): + match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib) + if match: + ver = "{0}.{1}.{2}".format( + int(match.group(1)), int(match.group(2)), int(match.group(3)) + ) + major = int(ver.split(".")[0]) + if major >= 7: + ver = None + else: + ver = None + return ver + def setup_run_environment(self, env: EnvironmentModifications) -> None: - env.prepend_path("LD_LIBRARY_PATH", self.spec["hsa-rocr-dev"].prefix.lib) + if not self.spec.external: + env.prepend_path("LD_LIBRARY_PATH", self.spec["hsa-rocr-dev"].prefix.lib) # This package is installed from binaries, and we haven't patched rpaths. unresolved_libraries = ["*"] diff --git a/repos/spack_repo/builtin/packages/arborx/package.py b/repos/spack_repo/builtin/packages/arborx/package.py index 08115a1ba80..706e7d33205 100644 --- a/repos/spack_repo/builtin/packages/arborx/package.py +++ b/repos/spack_repo/builtin/packages/arborx/package.py @@ -14,7 +14,7 @@ class Arborx(CMakePackage, CudaPackage, ROCmPackage): """ArborX is a performance-portable library for geometric search""" homepage = "https://github.com/arborx/arborx" - url = "https://github.com/arborx/arborx/archive/v1.1.tar.gz" + url = "https://github.com/arborx/arborx/archive/v2.1.tar.gz" git = "https://github.com/arborx/arborx.git" tags = ["e4s", "ecp"] @@ -26,6 +26,8 @@ class Arborx(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") version("master", branch="master") + version("2.1", sha256="7a8aa554304a31a598c357c0b5c8b562343c40a1336d716255e75e863a7d288c") + version("2.0.1", sha256="9a831c5086a4fedf312fc88eec24e1382cac7520516aa56f743ef7769638ce37") version("2.0", sha256="5ea6d8f832a69aac77d66c1ae55f96c2ff227272b8a6ba694c7ebcdf3a2413d5") version("1.7", sha256="e3d9a57a1d7c1ad62f6bbb43fd29a366506f3a16cbbe801c04d10f5fb0dec201") version("1.6", sha256="c2230de185d62f1999d36c6b8b92825f19ab9fbf30bdae90595cab04e76561a4") @@ -36,11 +38,6 @@ class Arborx(CMakePackage, CudaPackage, ROCmPackage): version("1.2", sha256="ed1939110b2330b7994dcbba649b100c241a2353ed2624e627a200a398096c20") version("1.1", sha256="2b5f2d2d5cec57c52f470c2bf4f42621b40271f870b4f80cb57e52df1acd90ce") version("1.0", sha256="9b5f45c8180622c907ef0b7cc27cb18ba272ac6558725d9e460c3f3e764f1075") - version( - "0.9-beta", - sha256="b349b5708d1aa00e8c20c209ac75dc2d164ff9bf1b85adb5437346d194ba6c0d", - deprecated=True, - ) # Allowed C++ standard variant( @@ -65,13 +62,12 @@ class Arborx(CMakePackage, CudaPackage, ROCmPackage): variant("mpi", default=True, description="enable MPI") for backend in kokkos_backends: deflt, descr = kokkos_backends[backend] - variant(backend.lower(), default=deflt, description=descr) + variant(backend, default=deflt, description=descr) variant("trilinos", default=False, when="@:1.5", description="use Kokkos from Trilinos") depends_on("cxx", type="build") - depends_on("cmake@3.12:", type="build") - depends_on("cmake@3.16:", type="build", when="@1.0:") + depends_on("cmake@3.16:", type="build") depends_on("cmake@3.22:", type="build", when="@2.0:") depends_on("mpi", when="+mpi") depends_on("rocthrust", when="+rocm") @@ -87,7 +83,7 @@ class Arborx(CMakePackage, CudaPackage, ROCmPackage): depends_on("kokkos@4.2.00:", when="@1.7") depends_on("kokkos@4.5.00:", when="@2.0:") for backend in kokkos_backends: - depends_on("kokkos+%s" % backend.lower(), when="~trilinos+%s" % backend.lower()) + depends_on(f"kokkos+{backend}", when=f"~trilinos+{backend}") for arch in CudaPackage.cuda_arch_values: cuda_dep = f"+cuda cuda_arch={arch}" @@ -101,7 +97,7 @@ class Arborx(CMakePackage, CudaPackage, ROCmPackage): conflicts("+cuda", when="cuda_arch=none") conflicts("^kokkos", when="+trilinos") - depends_on("kokkos+cuda_lambda", when="~trilinos+cuda") + requires("^kokkos+cuda_lambda", when="~trilinos+cuda ^kokkos@:4") # Trilinos with internal Kokkos # Notes: @@ -147,7 +143,7 @@ def test_run_ctest(self): """run ctest tests on the installed package""" cmake_args = [ ".", - cmake_prefix_path, + self.define("CMAKE_PREFIX_PATH", get_cmake_prefix_path()), f"-DCMAKE_CXX_COMPILER={os.environ['CXX']}", self.define( "Kokkos_ROOT", @@ -161,9 +157,9 @@ def test_run_ctest(self): ] if self.spec.satisfies("+mpi"): cmake_args.append(self.define("MPI_HOME", self.spec["mpi"].prefix)) - cmake = which(self.spec["cmake"].prefix.bin.cmake) - make = which("make") - ctest = which("ctest") + cmake = which(self.spec["cmake"].prefix.bin.cmake, required=True) + make = which("make", required=True) + ctest = which("ctest", required=True) with working_dir(self.cached_tests_work_dir): cmake(*cmake_args) diff --git a/repos/spack_repo/builtin/packages/archer/package.py b/repos/spack_repo/builtin/packages/archer/package.py index 75b7c4d4a58..1e689ad9b3c 100644 --- a/repos/spack_repo/builtin/packages/archer/package.py +++ b/repos/spack_repo/builtin/packages/archer/package.py @@ -62,8 +62,8 @@ def test_run_parallel_example(self): test_exe = "parallel-simple" test_src = f"{test_exe}.c" with working_dir(test_dir): - clang = which("clang-archer") + clang = which("clang-archer", required=True) clang("-o", test_exe, test_src) - parallel_simple = which(test_exe) + parallel_simple = which(test_exe, required=True) parallel_simple() diff --git a/repos/spack_repo/builtin/packages/aretomo/package.py b/repos/spack_repo/builtin/packages/aretomo/package.py new file mode 100644 index 00000000000..72d6109917f --- /dev/null +++ b/repos/spack_repo/builtin/packages/aretomo/package.py @@ -0,0 +1,49 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os + +from spack_repo.builtin.build_systems.generic import Package + +from spack.package import * + + +class Aretomo(Package): + """AreTomo, an abbreviation for Alignment and Reconstruction for Electron + Tomography, is a GPU accelerated software package that fully automates + motion-corrected marker-free tomographic alignment and reconstruction in a + single package.""" + + # AreTomo can be downloaded from the UCSF website + # https://msg.ucsf.edu/software + # AreTomo is not open-source. It is free for academic use only. + homepage = "https://doi.org/10.1016/j.yjsbx.2022.100068" + manual_download = True + + maintainers("Markus92") + + version( + "1.3.4", + url=f"file://{os.getcwd()}/AreTomo_1.3.4_Feb222023.zip", + sha256="d331e4a1843fd8e457b6c58e3ab4255582673f024bfb0fae08cd54fc0c0c77e7", + ) + + depends_on("patchelf", type="build") + + depends_on("cuda@10.1,10.2,11.1:11.8", type="link") + + def install(self, spec, prefix): + cuda_version = spec["cuda"].version.up_to(2).joined + + mkdirp(prefix.bin) + install( + "AreTomo_{0}_Cuda{1}_*".format(spec.version, cuda_version), + join_path(prefix.bin, "AreTomo"), + ) + + @run_after("install") + def ensure_rpaths(self): + patchelf = which("patchelf", required=True) + patchelf( + "--set-rpath", self.spec["cuda"].prefix.lib64, join_path(self.prefix.bin, "AreTomo") + ) diff --git a/repos/spack_repo/builtin/packages/aretomo2/cuda_arch_makefile.patch b/repos/spack_repo/builtin/packages/aretomo2/cuda_arch_makefile.patch new file mode 100644 index 00000000000..0ed24022889 --- /dev/null +++ b/repos/spack_repo/builtin/packages/aretomo2/cuda_arch_makefile.patch @@ -0,0 +1,20 @@ +diff --git a/makefile b/makefile +index b3af0ce..6fe7c00 100755 +--- a/makefile ++++ b/makefile +@@ -165,13 +165,8 @@ OBJS = $(patsubst %.cpp, %.o, $(SRCS)) + CC = g++ -std=c++11 + CFLAG = -c -g -pthread -m64 + NVCC = $(CUDAHOME)/bin/nvcc -std=c++11 +-CUFLAG = -Xptxas -dlcm=ca -O2 \ +- -gencode arch=compute_75,code=sm_75 \ +- -gencode arch=compute_70,code=sm_70 \ +- -gencode arch=compute_61,code=sm_61 \ +- -gencode arch=compute_60,code=sm_60 \ +- -gencode arch=compute_53,code=sm_53 \ +- -gencode arch=compute_52,code=sm_52 ++CUDA_GENCODE = -gencode arch=compute_60,code=sm_60 ++CUFLAG = -Xptxas -dlcm=ca -O2 $(CUDA_GENCODE) + #------------------------------------------ + cuda: $(CUCPPS) + diff --git a/repos/spack_repo/builtin/packages/aretomo2/package.py b/repos/spack_repo/builtin/packages/aretomo2/package.py new file mode 100644 index 00000000000..a4ac6c14730 --- /dev/null +++ b/repos/spack_repo/builtin/packages/aretomo2/package.py @@ -0,0 +1,47 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.makefile import MakefilePackage + +from spack.package import * + + +class Aretomo2(MakefilePackage, CudaPackage): + """AreTomo2 is a multi-GPU accelerated software package that fully automates + motion-corrected marker-free tomographic alignment and reconstruction, now + includes robust GPU-accelerated CTF (Contrast Transfer Function) estimation + in a single package.""" + + homepage = "https://github.com/czimaginginstitute/AreTomo2" + url = "https://github.com/czimaginginstitute/AreTomo2/archive/refs/tags/v1.1.2.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("1.1.2", sha256="4cbb4d25d28778041d80ef2c598519b17b9a40aa84e1e99daf48ad5a90d946b4") + + depends_on("c", type="build") # Not really, but CUDA does + depends_on("cxx", type="build") + depends_on("gmake", type="build") + + conflicts("~cuda") + conflicts("cuda_arch=none", when="+cuda", msg="A value for cuda_arch must be specified.") + + build_targets = ["exe"] + + patch("cuda_arch_makefile.patch") + + def edit(self, spec, prefix): + cuda_arch = self.spec.variants["cuda_arch"].value + cuda_gencode = " ".join(self.cuda_flags(cuda_arch)) + + makefile = FileFilter("makefile") + makefile.filter("NVCC = .*", "NVCC = nvcc -std=c++11") # Let Spack handle the path + makefile.filter("CUDAHOME = .*", f"CC = {self.spec['cuda'].prefix}") + makefile.filter("CUDA_GENCODE =.*", f"CUDA_GENCODE = {cuda_gencode}") + + def install(self, spec, prefix): + mkdir(prefix.bin) + install("AreTomo2", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/aretomo3/package.py b/repos/spack_repo/builtin/packages/aretomo3/package.py new file mode 100644 index 00000000000..3c84bafd7c6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/aretomo3/package.py @@ -0,0 +1,90 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.makefile import MakefilePackage + +from spack.package import * + + +class Aretomo3(MakefilePackage, CudaPackage): + """AreTomo3 is a multi-GPU accelerated software package that enables + real-time fully automated reconstruction of cryoET tomograms in parallel + with cryoET data collection. Integrating MotionCor3, AreTomo2, and GCtfFind + in a single application.""" + + homepage = "https://github.com/czimaginginstitute/AreTomo3" + url = "https://github.com/czimaginginstitute/AreTomo3/archive/refs/tags/v2.2.2.tar.gz" + git = "https://github.com/czimaginginstitute/AreTomo3.git" + + license("BSD-3-Clause") + + version("main", branch="main") + version("2.2.2", sha256="ee0a6bae8b541e1a1dd3465cf1e7d0bf4ee70b030662c55f2b583d678bb33fa9") + version("2.1.3", sha256="1a57a861e2598e56a98b9c2c8dde326b72a58cfa83eb5f542366982acd6acf4d") + + depends_on("cxx", type="build") + depends_on("gmake", type="build") + depends_on("cuda@12:", type=("build", "link")) + depends_on("libtiff", type=("build", "link")) + + conflicts("~cuda") + conflicts("cuda_arch=none", when="+cuda", msg="A value for cuda_arch must be specified.") + conflicts("^cuda@13:", when="@:2", msg="CUDA 13+ requires @main (makefile13 not in releases)") + + @property + def _makefile_name(self): + """Select makefile based on CUDA version.""" + if self.spec.satisfies("^cuda@13:"): + return "makefile13" + return "makefile11" + + @property + def build_directory(self): + return self.stage.source_path + + def edit(self, spec, prefix): + cuda = spec["cuda"] + cuda_arch = spec.variants["cuda_arch"].value + cuda_gencode = " ".join(self.cuda_flags(cuda_arch)) + stubs = cuda.prefix.lib64.stubs + tiff = spec["libtiff"] + makefile = FileFilter(self._makefile_name) + + # Set CUDA paths + makefile.filter(r"^CUDAHOME = .*", f"CUDAHOME = {cuda.prefix}") + + # Use Spack's compiler wrappers + makefile.filter(r"^CC = g\+\+", "CC = c++") + + # Use nvcc directly + makefile.filter(r"^NVCC = \$\(CUDAHOME\)/bin/nvcc", f"NVCC = {cuda.prefix}/bin/nvcc") + + # Replace CUFLAG gencode block + makefile.filter( + r"^CUFLAG = -Xptxas -dlcm=ca -O2 \\", f"CUFLAG = -Xptxas -dlcm=ca -O2 {cuda_gencode}" + ) + # Remove all old gencode continuation lines + makefile.filter(r"^\s+-gencode arch=compute_\d+,code=sm_\d+.*", "") + + # Add libtiff include to CFLAG + makefile.filter( + r"^CFLAG = -c -g -pthread -m64", f"CFLAG = -c -g -pthread -m64 -I{tiff.prefix.include}" + ) + + # Add stubs path for -lcuda (driver lib not in build container) + makefile.filter(r"-L\$\(CUDALIB\)/stubs", f"-L{stubs}") + + # Fix hardcoded g++ in link line + makefile.filter(r"@g\+\+ ", "@c++ ") + + # Add libtiff link flags + makefile.filter(r"-ltiff", f"-L{tiff.prefix.lib} -ltiff") + + def build(self, spec, prefix): + make("-f", self._makefile_name, "exe") + + def install(self, spec, prefix): + mkdir(prefix.bin) + install("AreTomo3", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/arkouda/makefile-fpic-2024.06.21.patch b/repos/spack_repo/builtin/packages/arkouda/makefile-fpic-2024.06.21.patch deleted file mode 100644 index ef88b1209fd..00000000000 --- a/repos/spack_repo/builtin/packages/arkouda/makefile-fpic-2024.06.21.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Makefile b/Makefile -index e607bb3cb..a4752dff6 100644 ---- a/Makefile -+++ b/Makefile -@@ -203,7 +203,7 @@ endif - - .PHONY: compile-arrow-cpp - compile-arrow-cpp: -- $(CHPL_CXX) -O3 -std=c++17 -c $(ARROW_CPP) -o $(ARROW_O) $(INCLUDE_FLAGS) $(ARROW_SANITIZE) -+ $(CHPL_CXX) -fPIC -O3 -std=c++17 -c $(ARROW_CPP) -o $(ARROW_O) $(INCLUDE_FLAGS) $(ARROW_SANITIZE) - - $(ARROW_O): $(ARROW_CPP) $(ARROW_H) - make compile-arrow-cpp diff --git a/repos/spack_repo/builtin/packages/arkouda/makefile-fpic-2025.12.16.patch b/repos/spack_repo/builtin/packages/arkouda/makefile-fpic-2025.12.16.patch new file mode 100644 index 00000000000..5ff7b57881c --- /dev/null +++ b/repos/spack_repo/builtin/packages/arkouda/makefile-fpic-2025.12.16.patch @@ -0,0 +1,23 @@ +diff --git a/make/Prologue.mk b/make/Prologue.mk +index 13a9c4be1..099896ec9 100644 +--- a/make/Prologue.mk ++++ b/make/Prologue.mk +@@ -236,15 +236,15 @@ compile-arrow-cpp: + + .PHONY: compile-arrow-write + compile-arrow-write: +- $(CHPL_CXX) -O3 -std=c++17 -c $(ARROW_WRITE_CPP) -o $(ARROW_WRITE_O) $(INCLUDE_FLAGS) $(ARROW_SANITIZE) ++ $(CHPL_CXX) -O3 -std=c++17 -fPIC -c $(ARROW_WRITE_CPP) -o $(ARROW_WRITE_O) $(INCLUDE_FLAGS) $(ARROW_SANITIZE) + + .PHONY: compile-arrow-read + compile-arrow-read: +- $(CHPL_CXX) -O3 -std=c++17 -c $(ARROW_READ_CPP) -o $(ARROW_READ_O) $(INCLUDE_FLAGS) $(ARROW_SANITIZE) ++ $(CHPL_CXX) -O3 -std=c++17 -fPIC -c $(ARROW_READ_CPP) -o $(ARROW_READ_O) $(INCLUDE_FLAGS) $(ARROW_SANITIZE) + + .PHONY: compile-arrow-util + compile-arrow-util: +- $(CHPL_CXX) -O3 -std=c++17 -c $(ARROW_UTIL_CPP) -o $(ARROW_UTIL_O) $(INCLUDE_FLAGS) $(ARROW_SANITIZE) ++ $(CHPL_CXX) -O3 -std=c++17 -fPIC -c $(ARROW_UTIL_CPP) -o $(ARROW_UTIL_O) $(INCLUDE_FLAGS) $(ARROW_SANITIZE) + + $(ARROW_UTIL_O): $(ARROW_UTIL_CPP) $(ARROW_UTIL_H) + make compile-arrow-util diff --git a/repos/spack_repo/builtin/packages/arkouda/package.py b/repos/spack_repo/builtin/packages/arkouda/package.py index 003c278e04f..6de21359793 100644 --- a/repos/spack_repo/builtin/packages/arkouda/package.py +++ b/repos/spack_repo/builtin/packages/arkouda/package.py @@ -15,23 +15,42 @@ class Arkouda(MakefilePackage): homepage = "https://github.com/Bears-R-Us/arkouda" # Arkouda does not have a current PyPI package, so we use the GitHub tarball - url = "https://github.com/Bears-R-Us/arkouda/archive/refs/tags/v2024.10.02.tar.gz" + list_url = "https://github.com/Bears-R-Us/arkouda/tags" + url = "https://github.com/Bears-R-Us/arkouda/archive/refs/tags/v2025.08.20.tar.gz" git = "https://github.com/Bears-R-Us/arkouda.git" # See https://spdx.org/licenses/ for a list. license("MIT") # A list of GitHub accounts to notify when the package is updated. - # TODO: add arkouda devs github account - maintainers("arezaii") + maintainers("1RyanK", "ajpotts", "arezaii", "drculhane", "jaketrookman") - version("master", branch="master") + version("main", branch="main") version( - "2024.10.02", sha256="00671a89a08be57ff90a94052f69bfc6fe793f7b50cf9195dd7ee794d6d13f23" + "2026.02.27", sha256="10ac344937ba7c8bfa4c3a23a2fadc4d0c3a3e2051acd0c2c3db7a6d453a660b" ) version( - "2024.06.21", sha256="ab7f753befb3a0b8e27a3d28f3c83332d2c6ae49678877a7456f0fcfe42df51c" + "2026.02.02.1", sha256="750b84c4e0f86688bef8f7a84eb56bb87063ad8805440768017e51813cded2e7" + ) + version( + "2026.02.02", sha256="050941496646160472b1e656cf9935bc552d47fa075abb8f67a3d90ddd346196" + ) + version( + "2025.12.16", sha256="72638e9d8aa1889b6bafa76c6e8060e0c8aab0871be2693f8fb10f57cd4acbfa" + ) + version( + "2025.09.30", sha256="10f488a3ff3482b66f1b1e8a4235d72e91ad07acb932eca85d1e695f0f6155a2" + ) + version( + "2025.08.20", + sha256="3e305930905397ff3a7a28a5d8cc2c9adca4194ca7f6ee51f749f427a2dea92c", + deprecated=True, + ) + version( + "2025.07.03", + sha256="eb888fac7b0eec6b4f3bfa0bfe14e5c8f15b449286e84c45ba95c44d8cd3917a", + deprecated=True, ) variant( @@ -40,20 +59,58 @@ class Arkouda(MakefilePackage): description="Build Arkouda for multi-locale execution on a cluster or supercomputer", ) - depends_on("chapel@2.1: +hdf5 +zmq", type=("build", "link", "run", "test")) + variant( + "array_nd_max", + default="1", + values=("1", "2", "3"), + multi=False, + description="Set ARRAY_ND_MAX used by Arkouda build", + ) + + variant( + "slurm-gasnet_ibv", default=False, description="Configure Chapel for Slurm + GASNet (ibv)" + ) + + depends_on( + "chapel@2.0:2.4 +hdf5 +zmq", + when="@2025.07.03:2025.08.20", + type=("build", "link", "run", "test"), + ) + depends_on( + "chapel@2.0:2.5 +hdf5 +zmq", when="@2025.09.30", type=("build", "link", "run", "test") + ) + depends_on( + "chapel@2.4:2.6 +hdf5 +zmq", when="@2025.12.16", type=("build", "link", "run", "test") + ) + depends_on( + "chapel@2.4:2.7 +hdf5 +zmq", when="@2026.02.02:", type=("build", "link", "run", "test") + ) + depends_on("cmake@3.13.4:", type="build") - depends_on("python@3.9:", type=("build", "link", "run", "test")) + depends_on( + "python@3.9:3.13", type=("build", "link", "run", "test"), when="@2025.07.03:2025.08.20" + ) + depends_on("python@3.10:3.13", type=("build", "link", "run", "test"), when="@2025.09.30:") depends_on("libzmq@4.2.5:", type=("build", "link", "run", "test")) depends_on("hdf5+hl~mpi", type=("build", "link", "run", "test")) depends_on("libiconv", type=("build", "link", "run", "test")) depends_on("libidn2", type=("build", "link", "run", "test")) depends_on( - "arrow +parquet +snappy +zlib +brotli +bz2 +lz4 +zstd", - type=("build", "link", "run", "test"), + "arrow+brotli+bz2+lz4+parquet+snappy+zlib+zstd", + type=("build", "link", "run"), + when="@2025.12.16:", ) + depends_on( + "arrow@15:19+brotli+bz2+lz4+parquet+snappy+zlib+zstd", + type=("build", "link", "run"), + when="@2025.07.03:", + ) + + # force lz4 to use cmake (add as a direct dep to control its variant) + depends_on("lz4 build_system=cmake", type="build") requires("^chapel comm=none", when="~distributed") - requires("^chapel +python-bindings", when="@2024.10.02:") + requires("^chapel +python-bindings", when="@2025.07.03:") requires( "^chapel comm=gasnet", "^chapel comm=ugni", @@ -62,9 +119,21 @@ class Arkouda(MakefilePackage): when="+distributed", ) + # Convenience integration: if the user selects Arkouda's slurm-gasnet_ibv, + # force Chapel into a compatible comm/launcher configuration. + requires( + "+distributed", + when="+slurm-gasnet_ibv", + msg="slurm-gasnet_ibv requires a distributed Arkouda build (+distributed)", + ) + requires( + "^chapel comm=gasnet comm_substrate=ibv launcher=slurm-gasnetrun_ibv", + when="+slurm-gasnet_ibv", + ) + # Some systems need explicit -fPIC flag when building the Arrow functions - patch("makefile-fpic-2024.06.21.patch", when="@2024.06.21") - patch("makefile-fpic-2024.10.02.patch", when="@2024.10.02:") + patch("makefile-fpic-2024.10.02.patch", when="@2025.07.03:2025.09.30") + patch("makefile-fpic-2025.12.16.patch", when="@2025.12.16") sanity_check_is_file = [join_path("bin", "arkouda_server")] @@ -87,6 +156,11 @@ def update_makefile_paths(self, spec, prefix): f.write("$(eval $(call add-path,{0}))\n".format(spec["libidn2"].prefix)) def build(self, spec, prefix): + nd = spec.variants["array_nd_max"].value + make_args = [f"ARRAY_ND_MAX={nd}"] + + make_args.append("ARROW_PIC=-fPIC") + # Detect distributed builds and skip the dependency checks built into # the Arkouda Makefile. These checks will try to spawn multiple jobs which may # cause the build to fail in situations where the user is constrained @@ -94,9 +168,9 @@ def build(self, spec, prefix): if spec.satisfies("+distributed"): with set_env(ARKOUDA_SKIP_CHECK_DEPS="1"): tty.warn("Distributed build detected. Skipping dependency checks") - make() + make(*make_args) else: - make() + make(*make_args) # Arkouda does not have an install target in its Makefile def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/arm_forge/package.py b/repos/spack_repo/builtin/packages/arm_forge/package.py index 3015a02e0e2..1e1ddac4428 100644 --- a/repos/spack_repo/builtin/packages/arm_forge/package.py +++ b/repos/spack_repo/builtin/packages/arm_forge/package.py @@ -18,8 +18,13 @@ class ArmForge(Package): through to complex parallel HPC codes with MPI, OpenMP, threads or CUDA.""" homepage = "https://www.arm.com/products/development-tools/server-and-hpc/forge" + maintainers("NickRF") + license("LicenseRef-ARM-Proprietary", checked_by="alecbcs") + + redistribute(source=False, binary=False) + # TODO: this mess should be fixed as soon as a way to parametrize/constrain # versions (and checksums) based on the target platform shows up diff --git a/repos/spack_repo/builtin/packages/arm_kernels/package.py b/repos/spack_repo/builtin/packages/arm_kernels/package.py new file mode 100644 index 00000000000..b9338d9aeb8 --- /dev/null +++ b/repos/spack_repo/builtin/packages/arm_kernels/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.makefile import MakefilePackage + +from spack.package import * + + +class ArmKernels(MakefilePackage): + """This is a suite of simple Arm assembly kernels for testing + the performance and functionality of Arm CPUs. + """ + + homepage = "https://github.com/NVIDIA/arm-kernels" + git = "https://github.com/NVIDIA/arm-kernels.git" + + maintainers("green-br") + + license("BSD-3-Clause") + + version("main", branch="main") + + requires("target=aarch64:", msg="package is only available on aarch64") + + depends_on("cxx", type="build") + + def patch(self): + filter_file(r"CXX = .*", "", "config.mk") + filter_file(r"CXXFLAGS = .*", "", "config.mk") + target = self.spec.target + if "sve" not in target.features: + filter_file(r"^.*_sve_.*\.x.*", " \\", "arithmetic/Makefile") + if "fphp" not in target.features: + filter_file(r"^.*fp16_.*\.x.*", " \\", "arithmetic/Makefile") + + def install(self, spec, prefix): + mkdir(prefix.bin) + install("arithmetic/*.x", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/armadillo/package.py b/repos/spack_repo/builtin/packages/armadillo/package.py index 6abdb95e41f..6f7212967c8 100644 --- a/repos/spack_repo/builtin/packages/armadillo/package.py +++ b/repos/spack_repo/builtin/packages/armadillo/package.py @@ -18,6 +18,10 @@ class Armadillo(CMakePackage): license("Apache-2.0") + version("15.2.2", sha256="8ee01cd4da55bc07b7bc7d3cba702ac6e8137d384d7e7185f3f4ae1f0c79704f") + version("15.0.3", sha256="9f55ec10f0a91fb6479ab4ed2b37a52445aee917706a238d170b5220c022fe43") + version("14.6.3", sha256="ad1e2aa5b90a389ab714e2d00972ce64da42582b17dd89c18935358551e6e205") + version("14.4.3", sha256="c3aadd59bdb0ea4339b056f29972f92ee19fdc52f68eb78d32d2e4caf4d80c3a") version("14.4.1", sha256="26ce272bfdc8246c278e6f8cfa53777a1efb14ef196e88082fee05da1a463491") version("14.4.0", sha256="023242fd59071d98c75fb015fd3293c921132dc39bf46d221d4b059aae8d79f4") version("14.2.3", sha256="fc70c3089a8d2bb7f2510588597d4b35b4323f6d4be5db5c17c6dba20ab4a9cc") @@ -43,10 +47,13 @@ class Armadillo(CMakePackage): depends_on("cmake@2.8.12:", type="build") depends_on("cmake@3.5:", type="build", when="@14:") + depends_on("cmake@3.10:", type="build", when="@14.6:") depends_on("arpack-ng") # old arpack causes undefined symbols depends_on("blas") depends_on("lapack") - depends_on("superlu@5.2:5") # only superlu@5 is supported + depends_on("superlu@5.2:5", when="@:14.4") + depends_on("superlu@5.2:7", when="@14.6:") + depends_on("metis", when="^superlu@6:") depends_on("hdf5", when="+hdf5") # Adds an `#undef linux` to prevent preprocessor expansion of include @@ -82,16 +89,21 @@ def patch(self): def cmake_args(self): spec = self.spec + # Build SuperLU library list including static METIS library for versions 6+ + superlu_libs = spec["superlu"].libs + if spec.satisfies("^superlu@6:"): + superlu_libs = superlu_libs + spec["metis"].libs + return [ # ARPACK support - self.define("ARPACK_LIBRARY", spec["arpack-ng"].libs.joined(";")), + self.define("ARPACK_LIBRARY", spec["arpack-ng"].libs), # BLAS support - self.define("BLAS_LIBRARY", spec["blas"].libs.joined(";")), + self.define("BLAS_LIBRARY", spec["blas"].libs), # LAPACK support - self.define("LAPACK_LIBRARY", spec["lapack"].libs.joined(";")), + self.define("LAPACK_LIBRARY", spec["lapack"].libs), # SuperLU support self.define("SuperLU_INCLUDE_DIR", spec["superlu"].prefix.include), - self.define("SuperLU_LIBRARY", spec["superlu"].libs.joined(";")), + self.define("SuperLU_LIBRARY", superlu_libs), # HDF5 support self.define("DETECT_HDF5", "ON" if spec.satisfies("+hdf5") else "OFF"), # disable flexiblas support because armadillo will possibly detect system diff --git a/repos/spack_repo/builtin/packages/armcomputelibrary/package.py b/repos/spack_repo/builtin/packages/armcomputelibrary/package.py index e996b4a2fa3..8f87703f651 100644 --- a/repos/spack_repo/builtin/packages/armcomputelibrary/package.py +++ b/repos/spack_repo/builtin/packages/armcomputelibrary/package.py @@ -56,7 +56,7 @@ class Armcomputelibrary(SConsPackage): variant( "multi_isa", default=False, - description="Build Multi ISA binary version of library." " Note works only for armv8.2-a.", + description="Build Multi ISA binary version of library. Note works only for armv8.2-a.", ) variant( "target_arch", @@ -67,7 +67,7 @@ class Armcomputelibrary(SConsPackage): ) variant("sve", default=False, description="Build for SVE.") variant("sve2", default=False, description="Build for SVE2.") - variant("neon", default=True, description="Enable Arm® Neon™ support") + variant("neon", default=True, description="Enable Arm Neon support") variant( "experimental_dynamic_fusion", default=False, diff --git a/repos/spack_repo/builtin/packages/armpl_gcc/package.py b/repos/spack_repo/builtin/packages/armpl_gcc/package.py index 31bf88ab2a7..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,18 @@ } _versions = { + "26.01.1": { + "deb": ("97bea9a6b873d7fbbe0f85150ff32fdc1d08cb3bd012ab79e687a595eb90141f"), + "rpm": ("c1206132a02e9ddd476862e63c97f7a3cfe79281788db1d107cd5aa7287c7c8a"), + }, + "26.01": { + "deb": ("cc55ab4120a5416fa1e90f98e3007b722a066aac5e445b629e2d3006abe3eadb"), + "rpm": ("314728809e279743e37be5ac475c2647f3ab902a5be0735bd318c1dd53a9a064"), + }, + "25.07": { + "deb": ("28a0cdf84b1f8e61d1d1ea484f4e2ecf645f7d916bb002ed34d46f6eb2e41345"), + "rpm": ("274d6f22b2f6c62cd72db4f64a91189159102aea87e6ae951ce92bcff230133b"), + }, "25.04.1": { "deb": ("2228ba0a4093b5fc7fb0d64ad074560d30e0900e2f2f48f4431aadde5c22fa07"), "rpm": ("666e6813cd54a9a75a33fe92f223f52e12371a1ac517da96695d3487ee1424d8"), @@ -284,8 +296,7 @@ def get_package_url_before_24(version): if os == "macOS": if armpl_version.startswith("23.06"): return ( - f"{base_url}/{armpl_version_dashed}/" - f"armpl_{armpl_version}_{compiler_version}.dmg" + f"{base_url}/{armpl_version_dashed}/armpl_{armpl_version}_{compiler_version}.dmg" ) else: filename = f"arm-performance-libraries_{armpl_version}_macOS.dmg" @@ -400,6 +411,7 @@ class ArmplGcc(Package): conflicts("%msvc", msg="Not compatible with MSVC compiler.") + variant("examples", default=True, description="Build and run ArmPL examples after install") variant("ilp64", default=False, description="use ilp64 specific Armpl library") variant("shared", default=True, description="enable shared libs") variant( @@ -414,16 +426,16 @@ class ArmplGcc(Package): provides("lapack") provides("fftw-api@3") - depends_on("c", type="build") - depends_on("fortran", type="build") - requires("^[virtuals=c,fortran] gcc", msg="armpl-gcc is only compatible with the GCC compiler") - - depends_on("gmake", type="build") + with when("+examples"): + depends_on("c", type="build") + depends_on("fortran", type="build") + depends_on("gmake", type="build") + requires("%c,fortran=gcc", msg="armpl-gcc examples require GCC toolchain") # Run the installer with the desired install directory def install(self, spec, prefix): if spec.platform == "darwin": - hdiutil = which("hdiutil") + hdiutil = which("hdiutil", required=True) # Mount image mountpoint = os.path.join(self.stage.path, "mount") if spec.satisfies("@:23"): @@ -473,13 +485,16 @@ def blas_libs(self): recursive=True, ) - # Link the same libraries as the gcc used for Arm PL - armpl_libs += find_libraries( - ["libstdc++", "libgomp", "libm"], - root=self["gcc"].prefix, - shared=self.spec.satisfies("+shared"), - recursive=True, - ) + # Link the same libraries as the gcc used for Arm PL, but only when + # building/running examples. Avoid injecting GCC runtimes by default + # to keep non-GCC toolchains (e.g., ATfL) conflict-free. + if self.spec.satisfies("+examples"): + armpl_libs += find_libraries( + ["libgomp", "libm"], + root=self["gcc"].prefix, + shared=self.spec.satisfies("+shared"), + recursive=True, + ) return armpl_libs @@ -516,8 +531,13 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: env.prepend_path("DYLD_LIBRARY_PATH", join_path(armpl_dir, "lib")) else: env.prepend_path("LD_LIBRARY_PATH", join_path(armpl_dir, "lib")) + if self.spec.satisfies("@:22"): + # pkgconfig directory is not in standard ("lib", "lib64", "share") location + env.append_path("PKG_CONFIG_PATH", join_path(armpl_dir, "pkgconfig")) + else: + env.append_path("PKG_CONFIG_PATH", join_path(armpl_dir, "lib/pkgconfig")) - @run_after("install") + @run_after("install", when="+examples") def check_install(self): armpl_dir = get_armpl_prefix(self.spec) suffix = get_armpl_suffix(self.spec) @@ -544,9 +564,4 @@ def make_pkgconfig_files(self): def setup_dependent_build_environment( self, env: EnvironmentModifications, dependent_spec: Spec ) -> None: - armpl_dir = get_armpl_prefix(self.spec) - if self.spec.satisfies("@:22"): - # pkgconfig directory is not in standard ("lib", "lib64", "share") location - env.append_path("PKG_CONFIG_PATH", join_path(armpl_dir, "pkgconfig")) - else: - env.append_path("PKG_CONFIG_PATH", join_path(armpl_dir, "lib/pkgconfig")) + self.setup_run_environment(env) diff --git a/repos/spack_repo/builtin/packages/arrayfire/3521-fix-build-failure-with-cudnn.patch b/repos/spack_repo/builtin/packages/arrayfire/3521-fix-build-failure-with-cudnn.patch new file mode 100644 index 00000000000..2e71ed65ff0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/arrayfire/3521-fix-build-failure-with-cudnn.patch @@ -0,0 +1,44 @@ +diff --git a/src/backend/cuda/platform.cpp b/src/backend/cuda/platform.cpp +index 52a22cdbaf..911774d48e 100644 +--- a/src/backend/cuda/platform.cpp ++++ b/src/backend/cuda/platform.cpp +@@ -49,6 +49,7 @@ + #include + #include + #include ++#include + + using std::call_once; + using std::make_unique; +@@ -124,7 +125,7 @@ unique_handle *nnManager(const int deviceId) { + }); + if (error) { + string error_msg = fmt::format("Error initializing cuDNN({}): {}.", +- error, errorString(error)); ++ static_cast::type>(error), errorString(error)); + AF_ERROR(error_msg, AF_ERR_RUNTIME); + } + CUDNN_CHECK(getCudnnPlugin().cudnnSetStream(cudnnHandles[deviceId], + +From 44c156a6267b89c5fd41e764b564e8d4ca8fac6e Mon Sep 17 00:00:00 2001 +From: errata-c +Date: Sun, 5 Nov 2023 14:21:24 -0500 +Subject: [PATCH 2/2] Fixed call to dependency_check with too few arguments + +--- + test/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index cf7e66255f..f019bf078e 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -20,7 +20,7 @@ if(AF_TEST_WITH_MTX_FILES) + endif() + + if(AF_WITH_EXTERNAL_PACKAGES_ONLY) +- dependency_check(GTest_FOUND) ++ dependency_check(GTest_FOUND "GTest not found.") + elseif(NOT TARGET GTest::gtest) + af_dep_check_and_populate(${gtest_prefix} + URI https://github.com/google/googletest.git diff --git a/repos/spack_repo/builtin/packages/arrayfire/add-build-dir-to-cmake.patch b/repos/spack_repo/builtin/packages/arrayfire/add-build-dir-to-cmake.patch new file mode 100644 index 00000000000..b7e62c9d427 --- /dev/null +++ b/repos/spack_repo/builtin/packages/arrayfire/add-build-dir-to-cmake.patch @@ -0,0 +1,11 @@ +--- CMakeLists.txt.orig 2024-09-19 17:48:51.000000000 +0000 ++++ CMakeLists.txt 2024-09-19 17:49:11.668924088 +0000 +@@ -310,7 +310,7 @@ + URI https://github.com/martinmoene/span-lite + REF "ccf2351" + ) +- add_subdirectory(${span-lite_SOURCE_DIR} EXCLUDE_FROM_ALL) ++ add_subdirectory(${span-lite_SOURCE_DIR} build EXCLUDE_FROM_ALL) + get_property(span_include_dir + TARGET span-lite + PROPERTY INTERFACE_INCLUDE_DIRECTORIES) diff --git a/repos/spack_repo/builtin/packages/arrayfire/fmt-v11.patch b/repos/spack_repo/builtin/packages/arrayfire/fmt-v11.patch new file mode 100644 index 00000000000..0ea11afb6cf --- /dev/null +++ b/repos/spack_repo/builtin/packages/arrayfire/fmt-v11.patch @@ -0,0 +1,96 @@ +diff --git a/src/backend/common/ArrayFireTypesIO.hpp b/src/backend/common/ArrayFireTypesIO.hpp +index e7a2e085e..5da74a9c2 100644 +--- a/src/backend/common/ArrayFireTypesIO.hpp ++++ b/src/backend/common/ArrayFireTypesIO.hpp +@@ -21,7 +21,7 @@ struct fmt::formatter { + } + + template +- auto format(const af_seq& p, FormatContext& ctx) -> decltype(ctx.out()) { ++ auto format(const af_seq& p, FormatContext& ctx) const -> decltype(ctx.out()) { + // ctx.out() is an output iterator to write to. + if (p.begin == af_span.begin && p.end == af_span.end && + p.step == af_span.step) { +@@ -73,18 +73,16 @@ struct fmt::formatter { + } + + template +- auto format(const arrayfire::common::Version& ver, FormatContext& ctx) ++ auto format(const arrayfire::common::Version& ver, FormatContext& ctx) const + -> decltype(ctx.out()) { + if (ver.major() == -1) return format_to(ctx.out(), "N/A"); +- if (ver.minor() == -1) show_minor = false; +- if (ver.patch() == -1) show_patch = false; +- if (show_major && !show_minor && !show_patch) { ++ if (show_major && (ver.minor() == -1) && (ver.patch() == -1)) { + return format_to(ctx.out(), "{}", ver.major()); + } +- if (show_major && show_minor && !show_patch) { ++ if (show_major && (ver.minor() != -1) && (ver.patch() == -1)) { + return format_to(ctx.out(), "{}.{}", ver.major(), ver.minor()); + } +- if (show_major && show_minor && show_patch) { ++ if (show_major && (ver.minor() != -1) && (ver.patch() != -1)) { + return format_to(ctx.out(), "{}.{}.{}", ver.major(), ver.minor(), + ver.patch()); + } +diff --git a/src/backend/common/debug.hpp b/src/backend/common/debug.hpp +index 54e74a295..07fa589ac 100644 +--- a/src/backend/common/debug.hpp ++++ b/src/backend/common/debug.hpp +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + #include + #include + +diff --git a/src/backend/common/jit/NodeIO.hpp b/src/backend/common/jit/NodeIO.hpp +index ac149d98d..edffdfae4 100644 +--- a/src/backend/common/jit/NodeIO.hpp ++++ b/src/backend/common/jit/NodeIO.hpp +@@ -16,7 +16,7 @@ + template<> + struct fmt::formatter : fmt::formatter { + template +- auto format(const af::dtype& p, FormatContext& ctx) -> decltype(ctx.out()) { ++ auto format(const af::dtype& p, FormatContext& ctx) const -> decltype(ctx.out()) { + format_to(ctx.out(), "{}", arrayfire::common::getName(p)); + return ctx.out(); + } +@@ -58,7 +58,7 @@ struct fmt::formatter { + // Formats the point p using the parsed format specification (presentation) + // stored in this formatter. + template +- auto format(const arrayfire::common::Node& node, FormatContext& ctx) ++ auto format(const arrayfire::common::Node& node, FormatContext& ctx) const + -> decltype(ctx.out()) { + // ctx.out() is an output iterator to write to. + +diff --git a/src/backend/cuda/debug_cuda.hpp b/src/backend/cuda/debug_cuda.hpp +index 555944a5e..93ebcf027 100644 +--- a/src/backend/cuda/debug_cuda.hpp ++++ b/src/backend/cuda/debug_cuda.hpp +@@ -29,7 +29,7 @@ template<> + struct fmt::formatter : fmt::formatter { + // parse is inherited from formatter. + template +- auto format(dim3 c, FormatContext& ctx) { ++ auto format(const dim3 &c, FormatContext &ctx) const { + std::string name = fmt::format("{} {} {}", c.x, c.y, c.z); + return formatter::format(name, ctx); + } +diff --git a/src/backend/opencl/compile_module.cpp b/src/backend/opencl/compile_module.cpp +index 89d382c9c..2c979fd5e 100644 +--- a/src/backend/opencl/compile_module.cpp ++++ b/src/backend/opencl/compile_module.cpp +@@ -22,6 +22,8 @@ + #include + #include + ++#include ++ + #include + #include + #include diff --git a/repos/spack_repo/builtin/packages/arrayfire/package.py b/repos/spack_repo/builtin/packages/arrayfire/package.py index b74c7d71795..3fd3b3c668e 100644 --- a/repos/spack_repo/builtin/packages/arrayfire/package.py +++ b/repos/spack_repo/builtin/packages/arrayfire/package.py @@ -19,30 +19,45 @@ class Arrayfire(CMakePackage, CudaPackage): license("FreeImage") - version("master") - version("3.8.1", commit="823e8e399fe8c120c6ec7ec75f09e6106b3074ca", tag="v3.8.1") - version( - "3.7.3", commit="59ac7b980d1ae124aae914fb29cbf086c948954d", submodules=True, tag="v3.7.3" - ) - version( - "3.7.2", commit="218dd2c99300e77496239ade76e94b0def65d032", submodules=True, tag="v3.7.2" - ) - version( - "3.7.0", commit="fbea2aeb6f7f2d277dcb0ab425a77bb18ed22291", submodules=True, tag="v3.7.0" - ) + with default_args(submodules=True, no_cache=True): + version("master") + version("3.9.0", commit="b59a1ae535da369db86451e5b28a7bc0eaf3e84a", tag="v3.9.0") + version("3.8.1", commit="823e8e399fe8c120c6ec7ec75f09e6106b3074ca", tag="v3.8.1") + version("3.7.3", commit="59ac7b980d1ae124aae914fb29cbf086c948954d", tag="v3.7.3") + version("3.7.2", commit="218dd2c99300e77496239ade76e94b0def65d032", tag="v3.7.2") + version("3.7.0", commit="fbea2aeb6f7f2d277dcb0ab425a77bb18ed22291", tag="v3.7.0") variant("forge", default=False, description="Enable graphics library") variant("opencl", default=False, description="Enable OpenCL backend") + variant("cuda", default=True, description="Enable CUDA backend") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + conflicts("~opencl", when="@3.9:") + conflicts("%gcc@13:", when="@:3.8.1") + conflicts("%clang@14:", when="@:3.8.1") + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cmake@3.18:", type="build", when="@3.9:") depends_on("boost@1.70:") + conflicts("boost@1.86", when="@3.9", msg="arrayfire@3.9.0 fails to build with boost@1.86") + depends_on("fftw-api@3:") + + oneapi_conflict = "arrayfire does not detect intel-oneapi-mkl as providing FFTW" + conflicts("^[virtuals=fftw-api] intel-oneapi-mkl", msg=oneapi_conflict) + depends_on("blas") - depends_on("cuda@7.5:", when="+cuda") + # https://github.com/arrayfire/arrayfire/wiki/Build-Instructions-for-Linux + depends_on("cuda@9.1:", when="+cuda") depends_on("cudnn", when="+cuda") + # arrayfire@3.8.1 fails to build with spdlog and fmt: + depends_on("fmt@8.1.1:", when="@3.7") + depends_on("fmt@8.1.1:", when="@3.9:") + depends_on("spdlog@1.9.2:", when="@3.7") + depends_on("spdlog@1.9.2:", when="@3.9:") + depends_on("opencl", when="+opencl") depends_on("pocl+icd", when="^[virtuals=opencl] pocl") @@ -53,6 +68,14 @@ class Arrayfire(CMakePackage, CudaPackage): depends_on("fontconfig", when="+forge") depends_on("glfw@3.1.4:", when="+forge") + # 3.9.0 introduced a cmake bug due to absolute paths being used. + # add_subdirectory not given a binary directory... (referencing internal build of span-lite). + patch("add-build-dir-to-cmake.patch", level=0, when="@3.9.0:") + # from Arch Linux https://gitlab.archlinux.org/archlinux/packaging/packages/arrayfire/-/raw/main/fmt-v11.patch?ref_type=heads + patch("fmt-v11.patch", level=1, when="@3.9.0:") + # https://gitlab.archlinux.org/archlinux/packaging/packages/arrayfire/-/blob/6add204c734deaed234c71f2a05c3e7bcf6f73dc/3521-fix-build-failure-with-cudnn.patch + patch("3521-fix-build-failure-with-cudnn.patch", level=1, when="@3.9.0:") + conflicts("cuda_arch=none", when="+cuda", msg="CUDA architecture is required") @property @@ -79,6 +102,8 @@ def cmake_args(self): self.define_from_variant("AF_BUILD_FORGE", "forge"), self.define_from_variant("AF_BUILD_OPENCL", "opencl"), self.define("BUILD_TESTING", self.run_tests), + self.define("AF_WITH_SPDLOG_HEADER_ONLY", not self.spec.satisfies("@3.8")), + self.define("AF_WITH_FMT_HEADER_ONLY", not self.spec.satisfies("@3.8")), ] ) diff --git a/repos/spack_repo/builtin/packages/arrow/package.py b/repos/spack_repo/builtin/packages/arrow/package.py index 5d5bf13f2d0..02e503380ca 100644 --- a/repos/spack_repo/builtin/packages/arrow/package.py +++ b/repos/spack_repo/builtin/packages/arrow/package.py @@ -19,6 +19,10 @@ class Arrow(CMakePackage, CudaPackage): license("Apache-2.0") + version("23.0.1", sha256="9a9a057bba3aa7080abc2ba8e7a079effa74626a4f308ac56bfce035d31ef1ac") + version("22.0.0", sha256="8a95e6c7b9bec2bc0058feb73efe38ad6cfd49a0c7094db29b37ecaa8ab16051") + version("21.0.0", sha256="e92401790fdba33bfb4b8aa522626d800ea7fda4b6f036aaf39849927d2cf88d") + version("20.0.0", sha256="67e31a4f46528634b8c3cbb0dc60ac8f85859d906b400d83d0b6f732b0c5b0e3") version("19.0.1", sha256="4c898504958841cc86b6f8710ecb2919f96b5e10fa8989ac10ac4fca8362d86a") version("18.0.0", sha256="9c473f2c9914c59ab571761c9497cf0e5cfd3ea335f7782ccc6121f5cb99ae9b") version("16.1.0", sha256="9762d9ecc13d09de2a03f9c625a74db0d645cb012de1e9a10dfed0b4ddc09524") @@ -52,6 +56,7 @@ class Arrow(CMakePackage, CudaPackage): depends_on("brotli", when="+brotli") depends_on("bzip2", when="+bz2") depends_on("cmake@3.2.0:", type="build") + depends_on("cmake@3.25.0:", type="build", when="@20:") depends_on("flatbuffers") conflicts("%gcc@14", when="@:15.0.1") # https://github.com/apache/arrow/issues/40009 depends_on("llvm@:11 +clang", when="+gandiva @:3", type="build") @@ -75,8 +80,7 @@ class Arrow(CMakePackage, CudaPackage): depends_on("re2+shared", when="+compute") depends_on("re2+shared", when="+gandiva") depends_on("re2+shared", when="+python") - depends_on("snappy~shared", when="+snappy @9:") - depends_on("snappy~shared", when="@8:") + depends_on("snappy", when="+snappy @8:") # thrift isn't found if it is built with autotools depends_on("thrift@0.11:+cpp build_system=cmake", when="+parquet") depends_on("utf8proc@2.7.0: +shared", when="+compute") @@ -97,10 +101,12 @@ class Arrow(CMakePackage, CudaPackage): description="CMake build type", values=("Debug", "FastDebug", "Release"), ) + variant("csv", default=False, description="Build support for reading of CSV") variant( "compute", default=False, description="Computational kernel functions and other support" ) variant("dataset", default=False, description="Build the Arrow Dataset integration") + variant("filesystem", default=False, description="Build the Arrow Filesystem Layer") variant("gandiva", default=False, description="Build Gandiva support") variant( "glog", @@ -126,6 +132,13 @@ class Arrow(CMakePackage, CudaPackage): root_cmakelists_dir = "cpp" + patch( + "https://github.com/apache/arrow/pull/49370.patch?full_index=1", + sha256="ca55e18c4eaaf59bcb145ada2aa5b556b8b87a93415ace059166716864145ceb", + when="@19:23.0 platform=darwin", + ) + conflicts("%apple-clang@21:", when="@:18") + def patch(self): """Prevent `-isystem /usr/include` from appearing, since this confuses gcc.""" filter_file( @@ -160,9 +173,15 @@ def cmake_args(self): # see https://issues.apache.org/jira/browse/ARROW-3844 args.append(self.define("ARROW_USE_SSE", "ON")) + # https://github.com/apache/arrow/issues/47790 + if self.spec.satisfies("%oneapi@2025:"): + args.append(self.define("ARROW_MIMALLOC", "OFF")) + args.append(self.define_from_variant("ARROW_COMPUTE", "compute")) + args.append(self.define_from_variant("ARROW_CSV", "csv")) args.append(self.define_from_variant("ARROW_CUDA", "cuda")) args.append(self.define_from_variant("ARROW_DATASET", "dataset")) + args.append(self.define_from_variant("ARROW_FILESYSTEM", "filesystem")) args.append(self.define_from_variant("ARROW_GANDIVA", "gandiva")) args.append(self.define_from_variant("ARROW_GLOG", "glog")) args.append(self.define_from_variant("ARROW_HDFS", "hdfs")) diff --git a/repos/spack_repo/builtin/packages/ascent/package.py b/repos/spack_repo/builtin/packages/ascent/package.py index 4d361084daa..bb3f267e9d8 100644 --- a/repos/spack_repo/builtin/packages/ascent/package.py +++ b/repos/spack_repo/builtin/packages/ascent/package.py @@ -64,13 +64,21 @@ class Ascent(CMakePackage, CudaPackage, ROCmPackage): version("develop", branch="develop", submodules=True) version( - "0.9.3", - tag="v0.9.3", - commit="e69d6ec77938846caae8fea7ed988b1151ac9b81", + "0.9.5", + tag="v0.9.5", + commit="1c32d88b01439263cb4e473756a222824bb75abb", submodules=True, preferred=True, ) + version( + "0.9.4", tag="v0.9.4", commit="02e7f79d53db77b6af923bfa105840f574195474", submodules=True + ) + + version( + "0.9.3", tag="v0.9.3", commit="e69d6ec77938846caae8fea7ed988b1151ac9b81", submodules=True + ) + version( "0.9.2", tag="v0.9.2", commit="b842516d12640e4a0d9433a18c7249440ef6fc3d", submodules=True ) @@ -122,10 +130,11 @@ class Ascent(CMakePackage, CudaPackage, ROCmPackage): variant("raja", default=True, description="Build with RAJA support") variant("umpire", default=True, description="Build with Umpire support") variant("mfem", default=False, description="Build MFEM filter support") - variant("dray", default=False, description="Build with Devil Ray support") + variant("dray", default=False, when="@0.8.1:", description="Build with Devil Ray support") variant("adios2", default=False, description="Build Adios2 filter support") variant("fides", default=False, description="Build Fides filter support") variant("occa", default=False, description="Build with OCCA support") + variant("catalyst", default=False, description="Build with Catalyst support") # caliper variant("caliper", default=False, description="Build Caliper support") @@ -169,10 +178,11 @@ class Ascent(CMakePackage, CudaPackage, ROCmPackage): ########################################################################### depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("fortran", type="build", when="+fortran") # Certain CMake versions have been found to break for our use cases depends_on("cmake@3.14.1:3.14,3.18.2:", type="build") + depends_on("cmake@3.23:", type="build", when="@0.9.4:") ####################### # Conduit @@ -180,9 +190,11 @@ class Ascent(CMakePackage, CudaPackage, ROCmPackage): depends_on("conduit@:0.7.2", when="@:0.7.1") depends_on("conduit@0.8.2:", when="@0.8:") depends_on("conduit@0.8.6:", when="@0.9:") - depends_on("conduit@0.9.1:0.9.3", when="@0.9.3:") - depends_on("conduit+python", when="+python") - depends_on("conduit~python", when="~python") + depends_on("conduit@0.9.1:0.9.3", when="@0.9.3") + depends_on("conduit@0.9.4", when="@0.9.4") + depends_on("conduit@0.9.5", when="@0.9.5") + depends_on("conduit+fortran", when="+fortran") + depends_on("conduit+python", when="+python", type=("build", "link", "run")) depends_on("conduit+mpi", when="+mpi") depends_on("conduit~mpi", when="~mpi") @@ -192,16 +204,22 @@ class Ascent(CMakePackage, CudaPackage, ROCmPackage): # we need a shared version of python b/c linking with static python lib # causes duplicate state issues when running compiled python modules. with when("+python"): - depends_on("python+shared") + depends_on("python+shared", type=("build", "link", "run")) + + # https://github.com/Alpine-DAV/ascent/issues/1628 + depends_on("python@:3.11", type=("build", "link", "run")) + extends("python") - depends_on("py-numpy", type=("build", "run")) - depends_on("py-pip", type=("build", "run")) + depends_on("py-numpy", type=("build", "link", "run")) + depends_on("py-pip", type="build") + depends_on("py-wheel", when="@0.9.4:", type="build") + depends_on("py-setuptools", type="build") ####################### # MPI ####################### depends_on("mpi", when="+mpi") - depends_on("py-mpi4py", when="+mpi+python") + depends_on("py-mpi4py", when="+mpi+python", type=("build", "link", "run")) ############################# # TPLs for Runtime Features @@ -213,7 +231,7 @@ class Ascent(CMakePackage, CudaPackage, ROCmPackage): ####################### with when("+raja"): depends_on("raja") - depends_on("raja@2024.02.1:2024.02.99", when="@0.9.3:") + depends_on("raja@2024.02.1:2025.03.1", when="@0.9.3:") depends_on("raja+openmp", when="+openmp") depends_on("raja~openmp", when="~openmp") depends_on("raja+rocm", when="+rocm") @@ -221,8 +239,9 @@ class Ascent(CMakePackage, CudaPackage, ROCmPackage): with when("+umpire"): depends_on("umpire") + depends_on("umpire@:6", when="@:0.8") depends_on("umpire@:2023.06.0", when="@:0.9.2") - depends_on("umpire@2024.02.1:2024.02.99", when="@0.9.3:") + depends_on("umpire@2024.02.1:2025.03.1", when="@0.9.3:") ####################### # BabelFlow @@ -290,35 +309,26 @@ class Ascent(CMakePackage, CudaPackage, ROCmPackage): depends_on("occa", when="+occa") # fides - depends_on("fides", when="+fides") - - ####################### - # Devil Ray - ####################### - # Ascent 0.9.0 includes Devil Ray, prior to 0.9.0 - # Devil Ray was developed externally - # devil ray variants with mpi - # we have to specify both because mfem makes us - depends_on("dray~test~utils", when="@:0.8.0 +dray") - depends_on("dray@0.1.8:", when="@:0.8.0 +dray") - # propagate relevent variants to dray - depends_on("dray+cuda", when="@:0.8.0 +dray+cuda") - depends_on("dray~cuda", when="@:0.8.0 +dray~cuda") - propagate_cuda_arch("dray", "@:0.8.0 +dray") - depends_on("dray+mpi", when="@:0.8.0 +dray+mpi") - depends_on("dray~mpi", when="@:0.8.0 +dray~mpi") - depends_on("dray+shared", when="@:0.8.0 +dray+shared") - depends_on("dray~shared", when="@:0.8.0 +dray~shared") - depends_on("dray+openmp", when="@:0.8.0 +dray+openmp") - depends_on("dray~openmp", when="@:0.8.0 +dray~openmp") + with when("+fides"): + depends_on("fides") + depends_on("fides@:1.2", when="@:0.9.5") # Adios2 - depends_on("adios2", when="+adios2") - # propagate relevent variants to adios2 - depends_on("adios2+mpi", when="+adios2+mpi") - depends_on("adios2~mpi", when="+adios2~mpi") - depends_on("adios2+shared", when="+adios2+shared") - depends_on("adios2~shared", when="+adios2~shared") + with when("+adios2"): + depends_on("adios2") + # propagate relevent variants to adios2 + depends_on("adios2+mpi", when="+mpi") + depends_on("adios2~mpi", when="~mpi") + depends_on("adios2+shared", when="+shared") + depends_on("adios2~shared", when="~shared") + depends_on("adios2+fortran", when="+fortran") + + # Catalyst + with when("+catalyst"): + depends_on("libcatalyst") + depends_on("libcatalyst+mpi", when="+mpi") + depends_on("libcatalyst+python", when="+python") + depends_on("libcatalyst+fortran", when="+fortran") ####################### # Caliper @@ -411,7 +421,7 @@ def _get_host_config_path(self, spec): sys_type = env["SYS_TYPE"] compiler_str = f"{self['c'].name}-{self['c'].version}" host_config_path = ( - f"{socket.gethostname()}-{sys_type}-{compiler_str}" f"-ascent-{spec.dag_hash()}.cmake" + f"{socket.gethostname()}-{sys_type}-{compiler_str}-ascent-{spec.dag_hash()}.cmake" ) host_config_path = os.path.abspath(join_path(self.stage.path, host_config_path)) return host_config_path @@ -510,8 +520,8 @@ def hostconfig(self): cfg.write(cmake_cache_entry("CMAKE_C_FLAGS", cflags)) cxxflags = cppflags + " ".join(spec.compiler_flags["cxxflags"]) if spec.satisfies("%oneapi@2025:"): - cxxflags += "-Wno-error=missing-template-arg-list-after-template-kw " - cxxflags += "-Wno-missing-template-arg-list-after-template-kw" + cxxflags += " -Wno-error=missing-template-arg-list-after-template-kw" + cxxflags += " -Wno-missing-template-arg-list-after-template-kw" if cxxflags: cfg.write(cmake_cache_entry("CMAKE_CXX_FLAGS", cxxflags)) fflags = " ".join(spec.compiler_flags["fflags"]) @@ -635,6 +645,12 @@ def hostconfig(self): if spec.satisfies("+cuda"): cfg.write(cmake_cache_entry("ENABLE_CUDA", "ON")) + cfg.write( + cmake_cache_entry( + "CMAKE_CUDA_ARCHITECTURES", ";".join(spec.variants["cuda_arch"].values) + ) + ) + else: cfg.write(cmake_cache_entry("ENABLE_CUDA", "OFF")) @@ -658,12 +674,6 @@ def hostconfig(self): cfg.write(cmake_cache_path("HIP_CLANG_PATH", f"{spec['llvm-amdgpu'].prefix.bin}")) cfg.write(cmake_cache_string("CMAKE_HIP_ARCHITECTURES", amdgpu_archs)) - clang_bindir = spec["llvm-amdgpu"].prefix.bin - cfg.write(cmake_cache_path("CMAKE_C_COMPILER", f"{clang_bindir}/clang", force=True)) - cfg.write( - cmake_cache_path("CMAKE_CXX_COMPILER", f"{clang_bindir}/clang++", force=True) - ) - # This is needed for Kokkos kokkos_cxxstd = spec["kokkos"].variants["cxxstd"].value cfg.write(cmake_cache_entry("CMAKE_CXX_STANDARD", kokkos_cxxstd)) @@ -758,19 +768,12 @@ def hostconfig(self): ####################### if spec.satisfies("+dray"): cfg.write("# devil ray\n") - if self.spec.satisfies("@0.8.1:"): - cfg.write(cmake_cache_entry("ENABLE_DRAY", "ON")) - cfg.write(cmake_cache_entry("ENABLE_APCOMP", "ON")) - else: - cfg.write("# devil ray from spack \n") - cfg.write(cmake_cache_entry("DRAY_DIR", spec["dray"].prefix)) - else: - if self.spec.satisfies("@0.8.1:"): - cfg.write("# devil ray\n") - cfg.write(cmake_cache_entry("ENABLE_DRAY", "OFF")) - cfg.write(cmake_cache_entry("ENABLE_APCOMP", "OFF")) - else: - cfg.write("# devil ray not build by spack\n") + cfg.write(cmake_cache_entry("ENABLE_DRAY", "ON")) + cfg.write(cmake_cache_entry("ENABLE_APCOMP", "ON")) + elif spec.satisfies("~dray"): + cfg.write("# devil ray\n") + cfg.write(cmake_cache_entry("ENABLE_DRAY", "OFF")) + cfg.write(cmake_cache_entry("ENABLE_APCOMP", "OFF")) ####################### # Adios2 @@ -802,6 +805,16 @@ def hostconfig(self): else: cfg.write("# caliper not built by spack \n") + ####################### + # Catalyst + ####################### + cfg.write("# Catalyst support\n") + + if spec.satisfies("+catalyst"): + cfg.write(cmake_cache_entry("CATALYST_DIR", spec["libcatalyst"].prefix)) + else: + cfg.write("# libcatalyst not built by spack \n") + ####################### # Finish host-config ####################### diff --git a/repos/spack_repo/builtin/packages/asio/package.py b/repos/spack_repo/builtin/packages/asio/package.py index a8387fc5558..7573d0d93c9 100644 --- a/repos/spack_repo/builtin/packages/asio/package.py +++ b/repos/spack_repo/builtin/packages/asio/package.py @@ -20,6 +20,8 @@ class Asio(AutotoolsPackage): license("BSL-1.0") # As uneven minor versions of asio are not considered stable, they wont be added anymore + version("1.38.0", sha256="5cf78ede456fd13b95fe692711f4f689be26c826f1f5541c7a1df3aa32bd9dbd") + version("1.36.0", sha256="0310a76b27e1854f09f696b30de57dc490b5e1b17faed1eb8c9a2891f956e52b") version("1.34.2", sha256="f3bac015305fbb700545bd2959fbc52d75a1ec2e05f9c7f695801273ceb78cf5") version("1.34.0", sha256="061ed6c8b97527756aed3e34d2cbcbcb6d3c80afd26ed6304f51119e1ef6a1cd") version("1.32.0", sha256="f1b94b80eeb00bb63a3c8cef5047d4e409df4d8a3fe502305976965827d95672") @@ -34,35 +36,10 @@ class Asio(AutotoolsPackage): version("1.22.2", sha256="985fc2d522f32d232d8386d2fa4ac6f2b25a0cad30495bf2e2e7997bce743f0b") version("1.22.1", sha256="30cb54a5de5e465d10ec0c2026d6b5917f5e89fffabdbabeb1475846fc9a2cf0") version("1.22.0", sha256="17bfd506f6d55c85a33603277a256b42ca5883bf290930040489ffeeed23724a") - version( - "1.21.0", - sha256="5d2d2dcb7bfb39bff941cabbfc8c27ee322a495470bf0f3a7c5238648cf5e6a9", - deprecated=True, # non-stable - ) version("1.20.0", sha256="34a8f07be6f54e3753874d46ecfa9b7ab7051c4e3f67103c52a33dfddaea48e6") - version( - "1.19.2", - sha256="5ee191aee825dfb1325cbacf643d599b186de057c88464ea98f1bae5ba4ff47a", - deprecated=True, # non-stable - ) - version( - "1.19.1", - sha256="2555e0a29256de5c77d6a34b14faefd28c76555e094ba0371acb0b91d483520e", - deprecated=True, # non-stable - ) - version( - "1.19.0", - sha256="11bc0e22fcdfb3f0b77574ac33760a3592c0dac7e7eece7668b823c158243629", - deprecated=True, # non-stable - ) version("1.18.2", sha256="8d67133b89e0f8b212e9f82fdcf1c7b21a978d453811e2cd941c680e72c2ca32") version("1.18.1", sha256="39c721b987b7a0d2fe2aee64310bd128cd8cc10f43481604d18cb2d8b342fd40") version("1.18.0", sha256="820688d1e0387ff55194ae20036cbae0fb3c7d11b7c3f46492369723c01df96f") - version( - "1.17.0", - sha256="46406a830f8334b3789e7352ed7309a39c7c30b685b0499d289eda4fd4ae2067", - deprecated=True, # non-stable - ) version("1.16.1", sha256="e40bbd531530f08318b7c7d7e84e457176d8eae6f5ad2e3714dc27b9131ecd35") version("1.16.0", sha256="c87410ea62de6245aa239b9ed2057edf01d7f66acc3f5e50add9a29343c87512") @@ -83,7 +60,7 @@ class Asio(AutotoolsPackage): msg="asio v1.22.1 fixed missing includes necessary for gcc v12 and above", ) - stds = ("11", "14", "17", "2a") + stds = ("11", "14", "17", "20", "23") variant( "cxxstd", default="11", @@ -124,4 +101,7 @@ def url_for_version(self, version): @property def configure_directory(self): - return os.path.join(self.stage.source_path, "asio") + if self.spec.satisfies("@1.38:"): + return self.stage.source_path + else: + return os.path.join(self.stage.source_path, "asio") diff --git a/repos/spack_repo/builtin/packages/aspell/package.py b/repos/spack_repo/builtin/packages/aspell/package.py index fff34a63f1a..8e9892342fd 100644 --- a/repos/spack_repo/builtin/packages/aspell/package.py +++ b/repos/spack_repo/builtin/packages/aspell/package.py @@ -18,18 +18,33 @@ class Aspell(AutotoolsPackage, GNUMirrorPackage): extendable = True # support activating dictionaries + maintainers("alecbcs") + license("LGPL-2.1-or-later") + version("0.60.8.2", sha256="57fe4863eae6048f72245a8575b44b718fb85ca14b9f8c0afc41b254dfd76919") version("0.60.8.1", sha256="d6da12b34d42d457fa604e435ad484a74b2effcd120ff40acd6bb3fb2887d21b") version("0.60.8", sha256="f9b77e515334a751b2e60daab5db23499e26c9209f5e7b7443b05235ad0226f2") version("0.60.6.1", sha256="f52583a83a63633701c5f71db3dc40aab87b7f76b29723aeb27941eff42df6e1") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("ncurses", type="link") patch("fix_cpp.patch") patch("issue-519.patch", when="@:0.60.6.1") + # allow aspell to build with newer compilers that enforce template instantiation + # e.g. gcc@15: and clang + patch( + "https://github.com/GNUAspell/aspell/commit/ee6cbb12ff36a1e6618d7388a78dd4e0a2b44041.patch?full_index=1", + sha256="96e6b23947744e5d1374640a38cf20ec541b64c00a063cbed6d1fcc3e3fc19ee", + when="@:0.60.8.1", + ) + + def configure_args(self): + return [f"--enable-curses={self.spec['ncurses:wide'].libs.ld_flags}"] + # workaround due to https://github.com/GNUAspell/aspell/issues/591 @run_after("configure", when="@0.60.8:") def make_missing_files(self): diff --git a/repos/spack_repo/builtin/packages/aspera_cli/package.py b/repos/spack_repo/builtin/packages/aspera_cli/package.py index 3e1f5541465..e03e7da8e91 100644 --- a/repos/spack_repo/builtin/packages/aspera_cli/package.py +++ b/repos/spack_repo/builtin/packages/aspera_cli/package.py @@ -36,7 +36,7 @@ def install(self, spec, prefix): stop_at="__ARCHIVE_FOLLOWS__", ) # Install - chmod = which("chmod") + chmod = which("chmod", required=True) chmod("+x", runfile) - runfile = which(runfile) + runfile = which(runfile, required=True) runfile() diff --git a/repos/spack_repo/builtin/packages/assimp/package.py b/repos/spack_repo/builtin/packages/assimp/package.py index 0dd1c679e24..24b87ef3fdb 100644 --- a/repos/spack_repo/builtin/packages/assimp/package.py +++ b/repos/spack_repo/builtin/packages/assimp/package.py @@ -20,6 +20,7 @@ class Assimp(CMakePackage): license("BSD-3-Clause", checked_by="wdconinc") version("master", branch="master") + version("6.0.2", sha256="d1822d9a19c9205d6e8bc533bf897174ddb360ce504680f294170cc1d6319751") version("5.4.3", sha256="66dfbaee288f2bc43172440a55d0235dfc7bf885dda6435c038e8000e79582cb") version("5.4.2", sha256="7414861a7b038e407b510e8b8c9e58d5bf8ca76c9dfe07a01d20af388ec5086a") version("5.4.0", sha256="a90f77b0269addb2f381b00c09ad47710f2aab6b1d904f5e9a29953c30104d3f") diff --git a/repos/spack_repo/builtin/packages/astra/package.py b/repos/spack_repo/builtin/packages/astra/package.py index b24e3991459..4aae15ae562 100644 --- a/repos/spack_repo/builtin/packages/astra/package.py +++ b/repos/spack_repo/builtin/packages/astra/package.py @@ -80,7 +80,7 @@ def install(self, spec, prefix): install("lineplot/lineplot", prefix.bin) install("pgxwin_server/pgxwin_server", prefix.bin) - chmod = which("chmod") + chmod = which("chmod", required=True) chmod("+x", join_path(prefix.bin, "Astra")) chmod("+x", join_path(prefix.bin, "generator")) if spec.satisfies("+gui"): diff --git a/repos/spack_repo/builtin/packages/at_spi2_core/package.py b/repos/spack_repo/builtin/packages/at_spi2_core/package.py index 48d5036ceac..470669f9dcc 100644 --- a/repos/spack_repo/builtin/packages/at_spi2_core/package.py +++ b/repos/spack_repo/builtin/packages/at_spi2_core/package.py @@ -40,6 +40,7 @@ class AtSpi2Core(MesonPackage): depends_on("gettext") depends_on("libx11") depends_on("libxi") + depends_on("libxml2", type="build", when="@2.47:") depends_on("libxtst") depends_on("recordproto") depends_on("inputproto") diff --git a/repos/spack_repo/builtin/packages/atfl/detection_test.yaml b/repos/spack_repo/builtin/packages/atfl/detection_test.yaml new file mode 100644 index 00000000000..2c6b6c6ffa3 --- /dev/null +++ b/repos/spack_repo/builtin/packages/atfl/detection_test.yaml @@ -0,0 +1,53 @@ +paths: +- layout: + - executables: + - "bin/armclang" + - "bin/armclang++" + script: | + echo "Arm Toolchain for Linux 20.1 clang version 20.1.0" + echo "Target: aarch64--linux-gnu" + echo "Thread model: posix" + echo "InstalledDir: /opt/arm/arm-toolchain-for-linux-20.1/bin" + - executables: + - "bin/armflang" + script: | + echo "Arm Toolchain for Linux 20.1 flang version 20.1.0" + echo "Target: aarch64--linux-gnu" + echo "Thread model: posix" + echo "InstalledDir: /opt/arm/arm-toolchain-for-linux-20.1/bin" + platforms: [linux] + results: + - spec: atfl@20.1.0 + extra_attributes: + compilers: + c: ".*/bin/armclang$" + cxx: ".*/bin/armclang[+][+]$" + fortran: ".*/bin/armflang$" + +# Negative tests: ensure ATfL does not detect other compilers +- layout: # does not detect upstream clang/LLVM + - executables: + - "bin/clang" + - "bin/clang++" + script: | + echo "clang version 20.1.0 (https://github.com/llvm/llvm-project abcdef)" + echo "Target: x86_64-unknown-linux-gnu" + echo "Thread model: posix" + echo "InstalledDir: /usr/bin" + platforms: [linux] + results: [] + +- layout: # does not detect ACfL + - executables: + - "bin/armclang" + - "bin/armclang++" + - "bin/armflang" + script: | + echo "Arm C/C++/Fortran Compiler version 19.3.1 (build number 75) (based on LLVM 7.0.2)" + echo "Target: aarch64--linux-gnu" + echo "Thread model: posix" + echo "InstalledDir:" + echo "/opt/arm/arm-hpc-compiler-19.3.5_Generic-AArch64_RHEL-7_aarch64-linux/bin" + platforms: [linux] + results: [] + diff --git a/repos/spack_repo/builtin/packages/atfl/package.py b/repos/spack_repo/builtin/packages/atfl/package.py new file mode 100644 index 00000000000..761a683ee27 --- /dev/null +++ b/repos/spack_repo/builtin/packages/atfl/package.py @@ -0,0 +1,251 @@ +# Copyright Spack Project Developers. See COPYRIGHT file. +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from pathlib import Path +from typing import ClassVar, Dict + +from spack_repo.builtin.build_systems.compiler import CompilerPackage +from spack_repo.builtin.build_systems.generic import Package +from spack_repo.builtin.packages.llvm.package import LlvmDetection + +from spack.package import * + +_VERSIONS = { + "22.1.0": { + "ubuntu22.04": ( + "c691180ffd64acd3aa68b04610283145702d66470ccb1de49b59141727e5da29", + "https://developer.arm.com/packages/arm-toolchains/ubuntu/pool/arm-toolchain-for-linux_22.1-54~jammy_arm64.deb", + ), + "ubuntu24.04": ( + "c5183342da63c780ca0877a7cdebcee982dee86d617bed72518d9e62082a955a", + "https://developer.arm.com/packages/arm-toolchains/ubuntu/pool/arm-toolchain-for-linux_22.1-54~noble_arm64.deb", + ), + "rhel8": ( + "030b4f7456c36cf956ecd82cd7d8b34210f501a9a3214acb9f3c660c1a931fe9", + "https://developer.arm.com/packages/arm-toolchains/rhel/el8/aarch64/arm-toolchain-for-linux-22.1-54.el8.aarch64.rpm", + ), + "rhel9": ( + "596fd8468fe3d132de168e043ca8a29b6c6fead275d2254ee630f2da27d6b1ae", + "https://developer.arm.com/packages/arm-toolchains/rhel/el9/aarch64/arm-toolchain-for-linux-22.1-54.el9.aarch64.rpm", + ), + "rhel10": ( + "89bd818d8d7b3e30f93a3ace60ab3d269a28c2b3b3e3ded31cd76d89877419ec", + "https://developer.arm.com/packages/arm-toolchains/rhel/el10/aarch64/arm-toolchain-for-linux-22.1-54.el10.aarch64.rpm", + ), + "amzn2023": ( + "48c01cd0bd8063eb55709d1a968aa0fb2465f129558974cff7dbe80e0a3d7785", + "https://developer.arm.com/packages/arm-toolchains/amazonlinux/al2023/aarch64/arm-toolchain-for-linux-22.1-54.al2023.aarch64.rpm", + ), + "sles15": ( + "83bab7739d8866453903ed4c9591e34a729e4414517ba290a7af269ed74d862c", + "https://developer.arm.com/packages/arm-toolchains/sles/sles15/aarch64/arm-toolchain-for-linux-22.1-54.sles15.aarch64.rpm", + ), + "sles16": ( + "48225eb252ca6894c83dbe7b4e8adf93bf316b9e93216794defa198dc50b0cc7", + "https://developer.arm.com/packages/arm-toolchains/sles/sles16/aarch64/arm-toolchain-for-linux-22.1-54.sles16.aarch64.rpm", + ), + }, + "21.1.1": { + "ubuntu22.04": ( + "8132ef95e4671c20a5f2b21dbe2d7ad8ae16137ea634e3e11096a8b87a3ffeee", + "https://developer.arm.com/packages/arm-toolchains%3Aubuntu-22/jammy/arm64/arm-toolchain-for-linux_21.1-81_arm64.deb", + ), + "ubuntu24.04": ( + "18f210fb04f27c50af932e1549deeda394a4ff351f9388957de0b096ab5f1db0", + "https://developer.arm.com/packages/arm-toolchains%3Aubuntu-24/noble/arm64/arm-toolchain-for-linux_21.1-81_arm64.deb", + ), + "rhel8": ( + "c5f0c3f7a25e269160aa3d684cb14edc57252bc38643929c67cda892f1c28dda", + "https://developer.arm.com/packages/arm-toolchains%3Arhel-8/el8/aarch64/arm-toolchain-for-linux-21.1-81.aarch64.rpm", + ), + "rhel9": ( + "3ead2888f8aa71b79a944270b1f7f723f56a7d161aeb2abaad14b3333f91f0e9", + "https://developer.arm.com/packages/arm-toolchains%3Arhel-9/el9/aarch64/arm-toolchain-for-linux-21.1-81.aarch64.rpm", + ), + "rhel10": ( + "a2fc22f18b7ee764ca11af48e6215b43ab47597cc67ba63fcccf0e40f9859a76", + "https://developer.arm.com/packages/arm-toolchains%3Arhel-10/el10/aarch64/arm-toolchain-for-linux-21.1-81.aarch64.rpm", + ), + "amzn2023": ( + "f7bc8c156aaa367dff1d6ced922e90581a04c8bac92e5675cc107eb3cd28428a", + "https://developer.arm.com/packages/arm-toolchains%3Aamzn-2023/al2023/aarch64/arm-toolchain-for-linux-21.1-81.aarch64.rpm", + ), + "sles15": ( + "8de2e35511d7f59a933c40e2e20ed2e01d018f51caba36dc5e9e0c6da71a3619", + "https://developer.arm.com/packages/arm-toolchains%3Asles-15/sl15/aarch64/arm-toolchain-for-linux-21.1-81.aarch64.rpm", + ), + }, + "20.1.0": { + "ubuntu22.04": ( + "944cf6420fb7b49c52d6c3d6f139fbb4896073ad401204a0cdf609faea360e73", + "https://developer.arm.com/packages/arm-toolchains%3Aubuntu-22/jammy/arm64/arm-toolchain-for-linux_20.1-65_arm64.deb", + ), + "ubuntu24.04": ( + "b9f7db08da8d579daad06999a65136e6b449b79c870a16264fbef1a7ab0cbe6b", + "https://developer.arm.com/packages/arm-toolchains%3Aubuntu-24/noble/arm64/arm-toolchain-for-linux_20.1-65_arm64.deb", + ), + "rhel8": ( + "795e6b74b2b538cc8431ff164c145aa7920ad9394ccf1d544a06667663b70f01", + "https://developer.arm.com/packages/arm-toolchains%3Arhel-8/el8/aarch64/arm-toolchain-for-linux-20.1-65.aarch64.rpm", + ), + "rhel9": ( + "453fc0f4d62968a833499f40a3d04deddbf292c9ff40fd3d246e84ba5b9d7d7a", + "https://developer.arm.com/packages/arm-toolchains%3Arhel-9/el9/aarch64/arm-toolchain-for-linux-20.1-65.aarch64.rpm", + ), + "amzn2023": ( + "87b2031290b9a48b0f2c700aff5f38560f7d1cb7d7f0b0f537ce18965260a54a", + "https://developer.arm.com/packages/arm-toolchains%3Aamzn-2023/al2023/aarch64/arm-toolchain-for-linux-20.1-65.aarch64.rpm", + ), + "sles15": ( + "506a9ddff6d7daf60e1d5b8cfed95f6f25e70db3cc9545d8ea3e9745056740f9", + "https://developer.arm.com/packages/arm-toolchains%3Asles-15/sl15/aarch64/arm-toolchain-for-linux-20.1-65.aarch64.rpm", + ), + }, +} + + +class Atfl(Package, LlvmDetection, CompilerPackage): + """Arm Toolchain for Linux (ATfL): LLVM-based AArch64 compilers. + + Installs the distro package (RPM/DEB) from Arm's repos, without root. + """ + + maintainers("pawosm-arm") + homepage = "https://developer.arm.com/documentation/110477" + + _alias: ClassVar[Dict[str, str]] = {"rocky10": "rhel10", "rocky9": "rhel9", "rocky8": "rhel8"} + for ver, per_os in _VERSIONS.items(): + pkg = per_os.get(_alias.get(host_platform().default_os, host_platform().default_os), None) + if pkg: + version(ver, sha256=pkg[0], url=pkg[1], expand=False) + + # Linux AArch64 only + requires("platform=linux", msg="ATfL is only available on Linux") + requires("target=aarch64:", msg="ATfL provides AArch64-native compilers") + + provides("c", "cxx") + provides("fortran") + + # Optional: allow opt-in to lld via the spec. Default is GNU ld for + # maximum compatibility; packages that prefer lld can request `%atfl+lld`. + variant("lld", default=False, description="Use lld linker (adds -fuse-ld=lld)") + + # Arm Performance Libraries are required: ATfL's default configuration + # links against ArmPL (e.g. -fveclib=ArmPL -> -lamath). Ensure it's + # present and wired into the environment so linking always succeeds. + depends_on("armpl-gcc~examples", type="run") + + compiler_languages = ["c", "cxx", "fortran"] + compiler_version_regex = r"Arm Toolchain for Linux [\d\.]+ [cf]lang version ([\d\.]+)" + c_names = ["armclang"] + cxx_names = ["armclang++"] + fortran_names = ["armflang"] + compiler_wrapper_link_paths = { + "c": join_path("arm", "armclang"), + "cxx": join_path("arm", "armclang++"), + "fortran": join_path("arm", "armflang"), + } + implicit_rpath_libs = ["libclang"] + stdcxx_libs = ("-lstdc++",) + + debug_flags = [ + "-gcodeview", + "-gdwarf-2", + "-gdwarf-3", + "-gdwarf-4", + "-gdwarf-5", + "-gline-tables-only", + "-gmodules", + "-g", + ] + + opt_flags = ["-O0", "-O1", "-O2", "-O3", "-Ofast", "-Os", "-Oz", "-Og", "-O", "-O4"] + + def archspec_name(self) -> str: + """Return the compiler name to use for archspec queries.""" + return "clang" + + def install(self, spec: Spec, prefix: Prefix) -> None: + """Install the package.""" + archive = self.stage.archive_file + extract_dir = join_path(self.stage.path, "extract") + mkdir(extract_dir) + if archive.endswith(".rpm"): + Executable("bsdtar")("-xf", archive, "-C", str(extract_dir)) + elif archive.endswith(".deb"): + Executable("dpkg-deb")("-x", archive, str(extract_dir)) + else: + raise InstallError(f"Unknown archive type: {archive}") + src_root = join_path(extract_dir, "opt", "arm", "arm-toolchain-for-linux") + + if not Path(src_root).is_dir(): + raise InstallError(f"Expected payload at {src_root}") + + # We must remove all of the libamath.* symlinks as they reach /opt + for cand in Path(src_root).rglob("libamath.*"): + if cand.is_symlink(): + cand.unlink() + + install_tree(str(src_root), prefix) + + with open(join_path(prefix, "bin", "atfl-performance.cfg"), "a") as f: + # Enable lld if requested. Some system builds (e.g. ncurses with + # version scripts) are stricter under lld; make this opt-in to + # maximize compatibility. + if self.spec.satisfies("+lld"): + print("-fuse-ld=lld", file=f) + + # ArmPL's libamath must be visible to the compiler. + # ArmPL directory layout: /armpl__gcc/lib + armpl_dir = join_path( + self["armpl-gcc"].prefix, "armpl_" + str(self["armpl-gcc"].version) + "_gcc", "lib" + ) + print(f"-L{armpl_dir} -Wl,-rpath={armpl_dir}", file=f) + + # Ensure ATfL's own Fortran runtime is available to dependents. + # At first, Flang was using libFortranRuntime and libFortranDecimal; + # later toolchains use libflang_rt.runtime. This avoids per-package + # tweaks. + fortran_runtime = "" + fortran_runtime_paths = set() + for cand in Path(prefix).rglob("libFortranRuntime.*"): + fortran_runtime = "-lFortranRuntime -lFortranDecimal" + fortran_runtime_paths.add(str(cand.parent)) + for cand in Path(prefix).rglob("libflang_rt.runtime.*"): + fortran_runtime = "-lflang_rt.runtime" + fortran_runtime_paths.add(str(cand.parent)) + for rt_path in fortran_runtime_paths: + print(f"-L{rt_path} -Wl,-rpath,{rt_path}", file=f) + print(f"-Wl,--push-state -Wl,--as-needed {fortran_runtime} -Wl,--pop-state", file=f) + + def _cc_path(self) -> str: + return join_path(self.prefix, "bin", "armclang") + + def _cxx_path(self) -> str: + return join_path(self.prefix, "bin", "armclang++") + + def _fortran_path(self) -> str: + return join_path(self.prefix, "bin", "armflang") + + def _standard_flag(self, *, language: str, standard: str) -> str: + flags = { + "cxx": {"11": "-std=c++11", "14": "-std=c++14", "17": "-std=c++17"}, + "c": {"99": "-std=c99", "11": "-std=c11"}, + } + return flags[language][standard] + + def setup_compiler_environment(self, env: EnvironmentModifications) -> None: + """Set up the build environment for this compiler package.""" + + # Prefer LLVM binutils (needed by LTO). + env.set("AR", join_path(self.prefix, "bin", "llvm-ar")) + env.set("NM", join_path(self.prefix, "bin", "llvm-nm")) + env.set("RANLIB", join_path(self.prefix, "bin", "llvm-ranlib")) + + def setup_run_environment(self, env: EnvironmentModifications) -> None: + """Set up the run environment for this package.""" + self.setup_compiler_environment(env) + + def setup_dependent_build_environment(self, env: EnvironmentModifications, _: Spec) -> None: + """Set up the build environment for packages that depend on this one.""" + self.setup_run_environment(env) diff --git a/repos/spack_repo/builtin/packages/atk/package.py b/repos/spack_repo/builtin/packages/atk/package.py index 458c023fd8c..d7305f023d3 100644 --- a/repos/spack_repo/builtin/packages/atk/package.py +++ b/repos/spack_repo/builtin/packages/atk/package.py @@ -37,8 +37,7 @@ class Atk(MesonPackage): def url_for_version(self, version): return ( - f"http://ftp.gnome.org/pub/gnome/sources/atk/" - f"{version.up_to(2)}/atk-{version}.tar.xz" + f"http://ftp.gnome.org/pub/gnome/sources/atk/{version.up_to(2)}/atk-{version}.tar.xz" ) def setup_run_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/atlas/package.py b/repos/spack_repo/builtin/packages/atlas/package.py index c6473804b1e..49aec23106b 100644 --- a/repos/spack_repo/builtin/packages/atlas/package.py +++ b/repos/spack_repo/builtin/packages/atlas/package.py @@ -21,18 +21,27 @@ class Atlas(Package): license("Apache-2.0") - # Developer (unstable) - version("3.11.41", sha256="477d567a8d683e891d786e9e8bb6ad6659daa9ba18e8dd0e2f70b7a54095f8de") - version("3.11.39", sha256="584bd44572746142bf19348139530c18f4538ce41d94330ff86ede38c36eddc9") - version("3.11.34", sha256="b6d42af3afd4fe54ef3a04a070fc7e75f6d8ac9f7d4886b636fe27ebfcbdf91f") - - # Stable - version( - "3.10.3", - sha256="2688eb733a6c5f78a18ef32144039adcd62fabce66f2eb51dd59dde806a6d2b7", - preferred=True, - ) - version("3.10.2", sha256="3aab139b118bf3fcdb4956fbd71676158d713ab0d3bccb2ae1dc3769db22102f") + with default_args(deprecated=True): + # Developer (unstable) + version( + "3.11.41", sha256="477d567a8d683e891d786e9e8bb6ad6659daa9ba18e8dd0e2f70b7a54095f8de" + ) + version( + "3.11.39", sha256="584bd44572746142bf19348139530c18f4538ce41d94330ff86ede38c36eddc9" + ) + version( + "3.11.34", sha256="b6d42af3afd4fe54ef3a04a070fc7e75f6d8ac9f7d4886b636fe27ebfcbdf91f" + ) + + # Stable + version( + "3.10.3", + sha256="2688eb733a6c5f78a18ef32144039adcd62fabce66f2eb51dd59dde806a6d2b7", + preferred=True, + ) + version( + "3.10.2", sha256="3aab139b118bf3fcdb4956fbd71676158d713ab0d3bccb2ae1dc3769db22102f" + ) depends_on("c", type="build") # generated depends_on("fortran", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/audacious/package.py b/repos/spack_repo/builtin/packages/audacious/package.py index 28eef79d1fa..5b44a0a6486 100644 --- a/repos/spack_repo/builtin/packages/audacious/package.py +++ b/repos/spack_repo/builtin/packages/audacious/package.py @@ -46,7 +46,7 @@ def patch(self): filter_file("-I m4", search_path_str, "autogen.sh") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/augustus/package.py b/repos/spack_repo/builtin/packages/augustus/package.py index 13ea99c0f1b..76550b68c38 100644 --- a/repos/spack_repo/builtin/packages/augustus/package.py +++ b/repos/spack_repo/builtin/packages/augustus/package.py @@ -111,11 +111,11 @@ def edit(self, spec, prefix): makefile.filter("INCLUDES = *", "INCLUDES = -I$(BAMTOOLS)/include/bamtools ") if spec.satisfies("bamtools@2.5:"): makefile.filter( - "LIBS = -lbamtools -lz", "LIBS = $(BAMTOOLS)/lib64" "/libbamtools.a -lz" + "LIBS = -lbamtools -lz", "LIBS = $(BAMTOOLS)/lib64/libbamtools.a -lz" ) if spec.satisfies("bamtools@:2.4"): makefile.filter( - "LIBS = -lbamtools -lz", "LIBS = $(BAMTOOLS)/lib/bamtools" "/libbamtools.a -lz" + "LIBS = -lbamtools -lz", "LIBS = $(BAMTOOLS)/lib/bamtools/libbamtools.a -lz" ) with working_dir(join_path("auxprogs", "bam2hints")): makefile = FileFilter("Makefile") diff --git a/repos/spack_repo/builtin/packages/autoconf_archive/package.py b/repos/spack_repo/builtin/packages/autoconf_archive/package.py index 9972201cd20..6b4bd9d0052 100644 --- a/repos/spack_repo/builtin/packages/autoconf_archive/package.py +++ b/repos/spack_repo/builtin/packages/autoconf_archive/package.py @@ -2,7 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack_repo.builtin.build_systems.gnu import GNUMirrorPackage @@ -18,6 +17,9 @@ class AutoconfArchive(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") + version( + "2024.10.16", sha256="7bcd5d001916f3a50ed7436f4f700e3d2b1bade3ed803219c592d62502a57363" + ) version( "2023.02.20", sha256="71d4048479ae28f1f5794619c3d72df9c01df49b1c628ef85fde37596dc31a33" ) diff --git a/repos/spack_repo/builtin/packages/autofact/package.py b/repos/spack_repo/builtin/packages/autofact/package.py deleted file mode 100644 index 4b9b25ab018..00000000000 --- a/repos/spack_repo/builtin/packages/autofact/package.py +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import glob - -from spack_repo.builtin.build_systems.generic import Package - -from spack.package import * - - -class Autofact(Package): - """An Automatic Functional Annotation and Classification Tool""" - - homepage = "https://megasun.bch.umontreal.ca/Software/AutoFACT.htm" - url = "https://megasun.bch.umontreal.ca/Software/AutoFACT_v3_4.tar" - - version("3_4", sha256="1465d263b19adb42f01f6e636ac40ef1c2e3dbd63461f977b89da9493fe9c6f4") - - depends_on("perl", type="run") - depends_on("perl-bioperl", type="run") - depends_on("perl-io-string", type="run") - depends_on("perl-libwww-perl", type="run") - depends_on("blast-legacy", type="run") - - def patch(self): - with working_dir("scripts"): - files = glob.iglob("*.pl") - for file in files: - change = FileFilter(file) - change.filter("usr/bin/perl", "usr/bin/env perl") - - def install(self, spec, prefix): - install_tree(self.stage.source_path, prefix) - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - env.prepend_path("PATH", self.prefix.scripts) - env.set("PATH2AUTOFACT", self.prefix) diff --git a/repos/spack_repo/builtin/packages/automake/package.py b/repos/spack_repo/builtin/packages/automake/package.py index e97102fdbcb..fed0fc776db 100644 --- a/repos/spack_repo/builtin/packages/automake/package.py +++ b/repos/spack_repo/builtin/packages/automake/package.py @@ -1,6 +1,7 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) + import re from spack_repo.builtin.build_systems.autotools import AutotoolsPackage @@ -15,8 +16,13 @@ class Automake(AutotoolsPackage, GNUMirrorPackage): homepage = "https://www.gnu.org/software/automake/" gnu_mirror_path = "automake/automake-1.15.tar.gz" + executables = ["^automake$"] + + tags = ["build-tools"] + license("GPL-2.0-or-later") + version("1.18.1", sha256="63e585246d0fc8772dffdee0724f2f988146d1a3f1c756a3dc5cfbefa3c01915") version("1.16.5", sha256="07bd24ad08a64bc17250ce09ec56e921d6343903943e99ccf63bbf0705e34605") version("1.16.3", sha256="ce010788b51f64511a1e9bb2a1ec626037c6d0e7ede32c1c103611b9d3cba65f") version("1.16.2", sha256="b2f361094b410b4acbf4efba7337bdb786335ca09eb2518635a09fb7319ca5c1") @@ -27,17 +33,13 @@ class Automake(AutotoolsPackage, GNUMirrorPackage): version("1.13.4", sha256="4c93abc0bff54b296f41f92dd3aa1e73e554265a6f719df465574983ef6f878c") version("1.11.6", sha256="53dbf1945401c43f4ce19c1971baecdbf8bc32e0f37fa3f49fe7b6992d0d2030") - depends_on("c", type="build") # generated - - depends_on("autoconf", type="build") + depends_on("c", type="build") + depends_on("autoconf@2.65:", type="build", when="@1.13.4:") + depends_on("autoconf@2.62:", type="build") depends_on("perl+threads", type=("build", "run")) build_directory = "spack-build" - tags = ["build-tools"] - - executables = ["^automake$"] - @classmethod def determine_version(cls, exe): output = Executable(exe)("--version", output=str, error=str) diff --git a/repos/spack_repo/builtin/packages/autossh/package.py b/repos/spack_repo/builtin/packages/autossh/package.py new file mode 100644 index 00000000000..2568c44c9ef --- /dev/null +++ b/repos/spack_repo/builtin/packages/autossh/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.autotools import AutotoolsPackage + +from spack.package import * + + +class Autossh(AutotoolsPackage): + """autossh is a program to start a copy of ssh and monitor it, + restarting it as necessary should it die or stop passing traffic.""" + + homepage = "https://www.harding.motd.ca/autossh/" + url = "https://www.harding.motd.ca/autossh/autossh-1.4g.tgz" + + license("custom") + + version("1.4g", sha256="5fc3cee3361ca1615af862364c480593171d0c54ec156de79fc421e31ae21277") + + depends_on("c", type="build") # generated + + depends_on("libnsl") + depends_on("openssh") diff --git a/repos/spack_repo/builtin/packages/avizo/package.py b/repos/spack_repo/builtin/packages/avizo/package.py index 9c4d33794a5..7e153f47787 100644 --- a/repos/spack_repo/builtin/packages/avizo/package.py +++ b/repos/spack_repo/builtin/packages/avizo/package.py @@ -22,7 +22,9 @@ class Avizo(Package): manual_download = True - license("GPL-3.0") + license("LicenseRef-Thermofisher-Proprietary", checked_by="alecbcs") + + redistribute(source=False, binary=False) version( "2020.1", @@ -69,7 +71,7 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: def install(self, spec, prefix): ver = self.version.joined - sh = which("sh") + sh = which("sh", required=True) sh(f"Avizo-{ver}-Linux64-gcc{self.gcc_ver[self.version.string]}.bin", "--noexec", "--keep") with working_dir("Avizo"): diff --git a/repos/spack_repo/builtin/packages/aws_ofi_nccl/package.py b/repos/spack_repo/builtin/packages/aws_ofi_nccl/package.py index bcb74a4bc33..a217101f5c7 100644 --- a/repos/spack_repo/builtin/packages/aws_ofi_nccl/package.py +++ b/repos/spack_repo/builtin/packages/aws_ofi_nccl/package.py @@ -13,12 +13,21 @@ class AwsOfiNccl(AutotoolsPackage): applications.""" homepage = "https://github.com/aws/aws-ofi-nccl" - url = "https://github.com/aws/aws-ofi-nccl/archive/v0.0.0.tar.gz" + url = "https://github.com/aws/aws-ofi-nccl/releases/download/v0.0.0/aws-ofi-nccl-0.0.0.tar.gz" git = "https://github.com/aws/aws-ofi-nccl.git" maintainers("bvanessen", "msimberg") version("master", branch="master") + version("1.19.0", sha256="fd8ecd15f0de88e07b2194637938dadcf247ad3b5150651dfd0bb0c4bb32ff3c") + version("1.18.0", sha256="12fd67f05872600c485d74b8e3c3a640d063322371170f3a9c17d67a5a2ca681") + version("1.17.3", sha256="0b3313e9ad48226cb143c8f1dead60bcd59a8083e582558ee44a438d58cc23c1") + version("1.17.2", sha256="6676f49cdfbaa10e953f18aad55f25812e0a7e716692bc911a69fd55cab42181") + version("1.17.1", sha256="15a3b5db51075d20b2cb255b99668a7161779fdf5455436e3bea02d59a04685a") + version("1.17.0", sha256="45a383ffca1e17866e290247e4a314d190aeee09c5380b983a62633168765ec1") + version("1.16.3", sha256="a3e99ecdb6331139b28097ffb3dc03418ed41d1867c6d225778e16a22fbebf60") + version("1.16.2", sha256="579ea75626d8ca5219b8b9c394521cd5d14c058c0f8f7851ce398a1d6bd005e3") + version("1.16.1", sha256="8688a49067bb763db42350563cc4420cd50570a79b7c1f71f8ee0f010cbe159c") version("1.16.0", sha256="442342eba7ac09f4a089cb4bf33d19935f59a4c7ad12109b4dca366f99a80f65") version("1.15.0", sha256="0a962d8444ad8312b08a2a9784671c554ae0350600e62bb6c6652e5bd3d96b9d") version("1.14.2", sha256="e523ea08ce0caeff5c949b2134b4897186d793ce908904dd9d47bb08230b9bbd") @@ -41,15 +50,21 @@ class AwsOfiNccl(AutotoolsPackage): version("1.7.1", sha256="d50a160c7aba76445e5c895fba0f3dbfdec51f702d218168a5e5017806cf0fb0") version("1.6.0", sha256="19a6fc91afe9a317fd3154c897fa219eab48fcdddefa66d881f1843c1165f7ee") + variant("cuda", default=True, description="Enable CUDA support") + variant("rocm", default=False, description="Enable ROCm support", when="@1.18:") variant("trace", default=False, description="Enable printing trace messages") variant("tests", default=False, description="Build tests") + conflicts("+cuda +rocm", msg="CUDA and ROCm support are mutually exclusive") + conflicts("~cuda ~rocm", msg="Either CUDA or ROCm support must be enabled") + depends_on("c", type="build") depends_on("cxx", type="build", when="@1.15:") depends_on("libfabric") - depends_on("cuda") - depends_on("nccl") + depends_on("cuda", when="+cuda") + depends_on("nccl fabrics=auto", when="+cuda") + depends_on("hip", when="+rocm") depends_on("mpi") depends_on("hwloc", when="@1.7:") depends_on("autoconf", type="build") @@ -57,14 +72,18 @@ class AwsOfiNccl(AutotoolsPackage): depends_on("libtool", type="build") def url_for_version(self, version): - if version < Version("1.7.0") or version >= Version("1.14.0"): + if version >= Version("1.19.0"): return super().url_for_version(version) - url_fmt = "https://github.com/aws/aws-ofi-nccl/archive/v{0}-aws.tar.gz" - return url_fmt.format(version) + elif version < Version("1.7.0") or version >= Version("1.14.0"): + return f"https://github.com/aws/aws-ofi-nccl/archive/v{version}.tar.gz" + else: + return f"https://github.com/aws/aws-ofi-nccl/archive/v{version}-aws.tar.gz" # To enable this plug-in to work with NCCL add it to the LD_LIBRARY_PATH def setup_run_environment(self, env: EnvironmentModifications) -> None: env.append_path("LD_LIBRARY_PATH", self.prefix.lib) + # Set the network so that NCCL doesn't pick up anything else. + env.set("NCCL_NET", "AWS Libfabric") # To enable this plug-in to work with NCCL add it to the LD_LIBRARY_PATH def setup_dependent_run_environment( @@ -81,11 +100,18 @@ def configure_args(self): args.extend( [ "--with-libfabric={0}".format(spec["libfabric"].prefix), - "--with-cuda={0}".format(spec["cuda"].prefix), - "--with-nccl={0}".format(spec["nccl"].prefix), "--with-mpi={0}".format(spec["mpi"].prefix), ] ) + if spec.satisfies("+cuda"): + args.extend( + [ + "--with-cuda={0}".format(spec["cuda"].prefix), + "--with-nccl={0}".format(spec["nccl"].prefix), + ] + ) + if spec.satisfies("+rocm"): + args.extend(["--with-rocm={0}".format(spec["hip"].prefix)]) if spec.satisfies("@1.7:"): args.extend(["--with-hwloc={0}".format(spec["hwloc"].prefix)]) diff --git a/repos/spack_repo/builtin/packages/aws_parallelcluster/package.py b/repos/spack_repo/builtin/packages/aws_parallelcluster/package.py index da6cdad067c..acd9d237197 100644 --- a/repos/spack_repo/builtin/packages/aws_parallelcluster/package.py +++ b/repos/spack_repo/builtin/packages/aws_parallelcluster/package.py @@ -52,31 +52,22 @@ class AwsParallelcluster(PythonPackage): version("2.5.1", sha256="4fd6e14583f8cf81f9e4aa1d6188e3708d3d14e6ae252de0a94caaf58be76303") version("2.5.0", sha256="3b0209342ea0d9d8cc95505456103ad87c2d4e35771aa838765918194efd0ad3") - depends_on("python@3.6:", when="@2.11:", type=("build", "run")) - depends_on("python@2.7:2.8,3.4:", when="@:2.10", type=("build", "run")) - - depends_on("py-future@0.16.0:0.18.2", when="@:2.10", type=("build", "run")) - - depends_on("py-ipaddress@1.0.22:", type=("build", "run")) - - depends_on("py-tabulate@0.8.3:0.8.10", when="@2.11: ^python@:3.9", type=("build", "run")) - depends_on("py-tabulate@0.8.8:0.8.10", when="@2.11: ^python@3.10:", type=("build", "run")) - depends_on("py-tabulate@0.8.2:0.8.3", when="@:2.8", type=("build", "run")) - depends_on("py-tabulate@0.8.2:0.8.7", when="@2.9:", type=("build", "run")) - - depends_on("py-pyyaml@5.3.1:", when="@2.9:", type=("build", "run")) - depends_on("py-pyyaml@5.2", when="@2.6:2.10", type=("build", "run")) - depends_on("py-pyyaml@5.1.2:", when="@:2.8", type=("build", "run")) - - depends_on("py-jinja2@2.11.3:", when="@2.11:", type=("build", "run")) - depends_on("py-jinja2@2.11.0:", when="@2.9:", type=("build", "run")) - - depends_on("py-boto3@1.17.27:", when="@2.11:", type=("build", "run")) - depends_on("py-boto3@1.16.14:", when="@2.10:", type=("build", "run")) - depends_on("py-boto3@1.14.3:", when="@2.8:2.9", type=("build", "run")) - depends_on("py-boto3@1.10.15:", when="@:2.7", type=("build", "run")) - - depends_on("py-setuptools", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("py-setuptools") + depends_on("py-boto3@1.16.14:", when="@2.10:") + depends_on("py-boto3@1.14.3:", when="@2.8:") + depends_on("py-boto3@1.10.15:") + depends_on("py-tabulate@0.8.8:0.8.10", when="@2.11.8:") + depends_on("py-tabulate@0.8.2:0.8.9", when="@2.11.0:2.11.7") + depends_on("py-tabulate@0.8.2:0.8.7", when="@2.9:2.10") + depends_on("py-tabulate@0.8.2:0.8.3", when="@:2.8") + depends_on("py-ipaddress@1.0.22:") + depends_on("py-pyyaml@5.3.1:", when="@2.9:") + depends_on("py-pyyaml@5.1.2:") + depends_on("py-jinja2@2.11:", when="@2.9:") + + # Historical dependencies + depends_on("py-future@0.16:0.18.2", when="@:2.10") @run_after("install") @on_package_attributes(run_tests=True) diff --git a/repos/spack_repo/builtin/packages/awscli_v2/package.py b/repos/spack_repo/builtin/packages/awscli_v2/package.py index 515fc628fd8..cd4e687ce87 100644 --- a/repos/spack_repo/builtin/packages/awscli_v2/package.py +++ b/repos/spack_repo/builtin/packages/awscli_v2/package.py @@ -14,6 +14,7 @@ class AwscliV2(PythonPackage): url = "https://github.com/aws/aws-cli/archive/refs/tags/2.13.22.tar.gz" list_url = "https://github.com/aws/aws-cli/tags" + license("Apache-2.0") maintainers("climbfuji", "teaguesterling") version("2.24.24", sha256="d7b135ef02c96d50d81c0b5eb2723cf474cfda8e1758cccabbcaa6c14f281419") @@ -22,15 +23,21 @@ class AwscliV2(PythonPackage): version("2.13.22", sha256="dd731a2ba5973f3219f24c8b332a223a29d959493c8a8e93746d65877d02afc1") with default_args(type="build"): - depends_on("py-flit-core@3.7.1:3.9.0", when="@2.22:") + depends_on("py-flit-core@3.7.1:", when="@2.22:") + # Upper bound relaxed for Python 3.14 support + # depends_on("py-flit-core@3.7.1:3.9.0", when="@2.22:") depends_on("py-flit-core@3.7.1:3.8.0", when="@:2.15") with default_args(type=("build", "run")): depends_on("py-colorama@0.2.5:0.4.6") - depends_on("py-docutils@0.10:0.19") - depends_on("py-cryptography@40:43.0.1", when="@2.22:") + # Upper bound relaxed for Sphinx compatibility + depends_on("py-docutils@0.10:") + # Upper bound relaxed to avoid CVEs + depends_on("py-cryptography@40:", when="@2.22:") depends_on("py-cryptography@3.3.2:40.0.1", when="@:2.15") - depends_on("py-ruamel-yaml@0.15:0.17.21") + depends_on("py-ruamel-yaml@0.15:") + # Upper bound relaxed for Python 3.14 support + # depends_on("py-ruamel-yaml@0.15:0.17.21") depends_on("py-ruamel-yaml-clib@0.2:", when="@2.22:") # Upper bound relaxed for Python 3.13 support # depends_on("py-ruamel-yaml-clib@0.2:0.2.8", when="@2.22:") diff --git a/repos/spack_repo/builtin/packages/axl/package.py b/repos/spack_repo/builtin/packages/axl/package.py index a91eeaf2a9d..10d7efab601 100644 --- a/repos/spack_repo/builtin/packages/axl/package.py +++ b/repos/spack_repo/builtin/packages/axl/package.py @@ -9,9 +9,9 @@ def async_api_validator(pkg_name, variant_name, values): if "none" in values and len(values) != 1: - raise SpackError("The value 'none' is not usable" " with other async_api values.") + raise SpackError("The value 'none' is not usable with other async_api values.") if "intel_cppr" in values and "cray_dw" in values: - raise SpackError("The 'intel_cppr' and 'cray_dw' asynchronous" " APIs are incompatible.") + raise SpackError("The 'intel_cppr' and 'cray_dw' asynchronous APIs are incompatible.") class Axl(CMakePackage): @@ -35,16 +35,6 @@ class Axl(CMakePackage): version("0.5.0", sha256="9f3bbb4de563896551bdb68e889ba93ea1984586961ad8c627ed766bff020acf") version("0.4.0", sha256="0530142629d77406a00643be32492760c2cf12d1b56c6b6416791c8ff5298db2") version("0.3.0", sha256="737d616b669109805f7aed1858baac36c97bf0016e1115b5c56ded05d792613e") - version( - "0.2.0", - sha256="d04a445f102b438fe96a1ff3429790b0c035f0d23c2797bb5601a00b582a71fc", - deprecated=True, - ) - version( - "0.1.1", - sha256="36edac007938fe47d979679414c5c27938944d32536e2e149f642916c5c08eaa", - deprecated=True, - ) depends_on("c", type="build") depends_on("cxx", type="build") diff --git a/repos/spack_repo/builtin/packages/axom/package.py b/repos/spack_repo/builtin/packages/axom/package.py index dc9aed7e170..0f8262df5f9 100644 --- a/repos/spack_repo/builtin/packages/axom/package.py +++ b/repos/spack_repo/builtin/packages/axom/package.py @@ -18,16 +18,39 @@ from spack.package import * +# Axom components we expose to Spack. Core is always built and is not listed here. +_AXOM_COMPONENTS = ( + "bump", + "inlet", + "klee", + "lumberjack", + "mint", + "mir", + "multimat", + "primal", + "quest", + "sidre", + "sina", + "slam", + "slic", + "spin", +) + -def get_spec_path(spec, package_name, path_replacements={}, use_bin=False): +def get_spec_path(spec, package_name, path_replacements={}, use_bin=False, use_lib=False): """Extracts the prefix path for the given spack package path_replacements is a dictionary with string replacements for the path. """ - if not use_bin: - path = spec[package_name].prefix - else: + if use_bin and use_lib: + raise ValueError("Only one of use_bin or use_lib can be True") + + if use_bin: path = spec[package_name].prefix.bin + elif use_lib: + path = spec[package_name].prefix.lib + else: + path = spec[package_name].prefix path = os.path.realpath(path) @@ -45,7 +68,7 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage): homepage = "https://github.com/LLNL/axom" git = "https://github.com/LLNL/axom.git" - tags = ["radiuss", "e4s"] + tags = ["radiuss"] test_requires_compiler = True @@ -53,6 +76,10 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage): version("main", branch="main") version("develop", branch="develop") + version("0.14.0", tag="v0.14.0", commit="146c8c15386a810791b7ab5c7fcb288cadea6151") + version("0.13.0", tag="v0.13.0", commit="d00f6c66ef390ad746ae840f1074d982513611ac") + version("0.12.0", tag="v0.12.0", commit="297544010a3dfb98145a1a85f09f9c648c00a18c") + version("0.11.0", tag="v0.11.0", commit="685960486aa55d3a74a821ee02f6d9d9a3e67ab1") version("0.10.1", tag="v0.10.1", commit="6626ee1c5668176fb64dd9a52dec3e8596b3ba6b") version("0.10.0", tag="v0.10.0", commit="ea853a34a834415ea75f824160fc44cba9a0755d") version("0.9.0", tag="v0.9.0", commit="5f531595d941d16fa3b8583bfc347a845d9feb6d") @@ -84,6 +111,7 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage): variant("examples", default=True, description="Build examples") variant("tools", default=True, description="Build tools") + variant("tutorials", default=True, description="Build tutorials") # Hard requirement after Axom 0.6.1 variant("cpp14", default=True, description="Build with C++14 support") @@ -98,10 +126,31 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage): variant( "profiling", default=False, - when="@develop", - description="Build with hooks for Adiak/Caliper performance analysis", + when="@:0.12", + description="Build with hooks for Adiak/Caliper performance analysis. " + "Deprecated -- use the adiak and/or caliper variants directly " + "versions 0.13.0 and onwards.", + ) + + # variant for Axom components + variant( + "components", + description=( + "Comma separated list of Axom components to enable. " + "'all' enables all components; 'none' disables all components " + "Missing dependencies will be added (e.g. we'll add `sidre` " + "and `conduit` for `components=inlet`)" + ), + values=any_combination_of("all", *_AXOM_COMPONENTS).with_default("all"), ) + variant("int64", default=True, description="Use 64bit integers for IndexType") + + # variants for package dependencies + variant("adiak", default=False, when="@0.13:", description="Build with adiak") + variant("caliper", default=False, when="@0.13:", description="Build with caliper") + variant("conduit", default=True, description="Build with conduit") + variant("opencascade", default=False, description="Build with opencascade") variant("mfem", default=False, description="Build with mfem") @@ -128,16 +177,20 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("cmake@3.21:", type="build", when="+rocm") depends_on("blt", type="build") + depends_on("blt@0.7.1:", type="build", when="@0.12:") + depends_on("blt@0.7", type="build", when="@0.11:") + depends_on("blt@0.6.2", type="build", when="@0.9:0.10") depends_on("blt@0.5.1:0.5.3", type="build", when="@0.6.1:0.8") - depends_on("blt@0.6.2:", type="build", when="@0.9:") depends_on("mpi", when="+mpi") # Libraries # Forward variants to Conduit - for _var in ["fortran", "hdf5", "mpi", "python"]: - depends_on("conduit+{0}".format(_var), when="+{0}".format(_var)) - depends_on("conduit~{0}".format(_var), when="~{0}".format(_var)) + with when("+conduit"): + for _var in ["hdf5", "mpi"]: + depends_on("conduit+{0}".format(_var), when="+{0}".format(_var)) + depends_on("conduit~{0}".format(_var), when="~{0}".format(_var)) + depends_on("conduit+fortran", when="+fortran") depends_on("hdf5", when="+hdf5") @@ -148,21 +201,34 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage): with when("+umpire"): depends_on("umpire") - depends_on("umpire@2024.02.0:", when="@0.9:") + depends_on("umpire@2025.12:", when="@0.13:") + depends_on("umpire@2025.09:", when="@0.12:") + depends_on("umpire@2025.03", when="@0.11") + depends_on("umpire@2024.07", when="@0.10") + depends_on("umpire@2024.02", when="@0.9") depends_on("umpire@2022.03.0:2023.06", when="@0.7.0:0.8") depends_on("umpire@6.0.0", when="@0.6.0") depends_on("umpire@5:5.0.1", when="@:0.5.0") depends_on("umpire+openmp", when="+openmp") + depends_on("umpire+mpi3_shmem", when="+mpi") with when("+raja"): depends_on("raja") - depends_on("raja@2024.02.0:", when="@0.9:") + depends_on("raja@2025.12.1:", when="@0.13:") + depends_on("raja@2025.09:", when="@0.12:") + depends_on("raja@2025.03", when="@0.11") + depends_on("raja@2024.07", when="@0.10") + depends_on("raja@2024.02", when="@0.9") depends_on("raja@2022.03.0:2023.06", when="@0.7.0:0.8") depends_on("raja@0.14.0", when="@0.6.0") depends_on("raja@:0.13.0", when="@:0.5.0") depends_on("raja~openmp", when="~openmp") depends_on("raja+openmp", when="+openmp") + # we're planning to remove support for the profiling variant, + # but still need to support it for now + depends_on("adiak", when="+adiak") + depends_on("caliper", when="+caliper") with when("+profiling"): depends_on("adiak") depends_on("caliper+adiak~papi") @@ -179,17 +245,29 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on(f"{dep}+shared", when="+shared") depends_on(f"{dep}~shared", when="~shared") + with when("+adiak"): + for fwd in ("mpi", "shared"): + depends_on(f"adiak+{fwd}", when=f"+{fwd}") + + with when("+caliper"): + for fwd in ("cuda", "rocm", "mpi", "shared"): + depends_on(f"caliper+{fwd}", when=f"+{fwd}") + for val in CudaPackage.cuda_arch_values: ext_cuda_dep = f"+cuda cuda_arch={val}" depends_on(f"raja {ext_cuda_dep}", when=f"+raja {ext_cuda_dep}") depends_on(f"umpire {ext_cuda_dep}", when=f"+umpire {ext_cuda_dep}") + depends_on(f"caliper {ext_cuda_dep}", when=f"+caliper {ext_cuda_dep}") depends_on(f"caliper {ext_cuda_dep}", when=f"+profiling {ext_cuda_dep}") + depends_on(f"mfem {ext_cuda_dep}", when=f"+mfem {ext_cuda_dep}") for val in ROCmPackage.amdgpu_targets: ext_rocm_dep = f"+rocm amdgpu_target={val}" depends_on(f"raja {ext_rocm_dep}", when=f"+raja {ext_rocm_dep}") depends_on(f"umpire {ext_rocm_dep}", when=f"+umpire {ext_rocm_dep}") + depends_on(f"caliper {ext_rocm_dep}", when=f"+caliper {ext_rocm_dep}") depends_on(f"caliper {ext_rocm_dep}", when=f"+profiling {ext_rocm_dep}") + depends_on(f"mfem {ext_rocm_dep}", when=f"+mfem {ext_rocm_dep}") depends_on("rocprim", when="+rocm") @@ -202,6 +280,13 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("python", when="+python") + # Python + with when("+python"): + depends_on("py-nanobind@2.7.0:") + depends_on("py-pytest") + depends_on("py-numpy") + depends_on("conduit+python") + # Devtools with when("+devtools"): depends_on("cppcheck") @@ -211,7 +296,35 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("py-sphinx") depends_on("py-shroud") depends_on("py-jsonschema") - depends_on("llvm+clang@14", type="build") + depends_on("py-yapf") + + # Need clang@19 for clang-format + # (ENABLE_CLANGFORMAT will be OFF if not the exact version) + depends_on("llvm+clang@19", type="build") + + # Component requirements + # ----------------------------------------------------------------------- + # Hard inter-component dependencies taken from Axom's dependency graph. + requires(f"components={','.join(_AXOM_COMPONENTS)}", when="components=all") + + requires("components=sidre,slic,spin,primal", when="components=bump") + requires("components=sidre,slic,primal", when="components=inlet") + requires("components=sidre,slic,inlet,primal", when="components=klee") + requires("components=slic,slam", when="components=mint") + requires("components=bump,sidre,slic,slam,primal", when="components=mir") + requires("components=slic,slam", when="components=multimat") + requires("components=slic", when="components=primal") + requires("components=slic,slam,primal,mint,spin", when="components=quest") + requires("components=slic", when="components=sidre") + requires("components=slic", when="components=sina") + requires("components=slic", when="components=slam") + requires("components=slic,slam,primal", when="components=spin") + + # Hard dependencies of Axom components on other packages + requires("+conduit", when="components=bump") + requires("+conduit", when="components=mir") + requires("+conduit", when="components=sidre") + requires("+conduit", when="components=sina") # ----------------------------------------------------------------------- # Conflicts @@ -225,7 +338,6 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage): # Sidre requires conduit_blueprint_mpi.hpp conflicts("^conduit@:0.6.0", when="@0.5.0:") - conflicts("+openmp", when="+rocm") conflicts("+cuda", when="+rocm") conflicts("~raja", when="+cuda") @@ -304,6 +416,18 @@ def initconfig_compiler_entries(self): if spec.satisfies("%cce"): entries.append(cmake_cache_string("CMAKE_CXX_FLAGS_DEBUG", "-O1 -g")) + # Remove unusable -Mfreeform flag injected by spack + entries = [entry.replace("-Mfreeform", "") for entry in entries] + + # Disable intrusive warning: + # icpx: remark: note that use of '-g' without any optimization-level + # option will turn off most compiler optimizations similar to use of + # '-O0'; use '-Rno-debug-disables-optimization' to disable this remark + if spec.satisfies("%oneapi"): + entries.append( + cmake_cache_string("CMAKE_CXX_FLAGS_DEBUG", "-g -Rno-debug-disables-optimization") + ) + return entries def initconfig_hardware_entries(self): @@ -315,7 +439,9 @@ def initconfig_hardware_entries(self): entries.append(cmake_cache_option("CMAKE_CUDA_SEPARABLE_COMPILATION", True)) # CUDA_FLAGS - cudaflags = "${CMAKE_CUDA_FLAGS} -restrict --expt-extended-lambda " + cudaflags = ( + "${CMAKE_CUDA_FLAGS} -restrict --expt-extended-lambda --expt-relaxed-constexpr " + ) # Pass through any cxxflags to the host compiler via nvcc's Xcompiler flag host_cxx_flags = spec.compiler_flags["cxxflags"] @@ -339,37 +465,61 @@ def initconfig_hardware_entries(self): entries.append(cmake_cache_option("ENABLE_HIP", True)) - rocm_root = os.path.dirname(spec["llvm-amdgpu"].prefix) - entries.append(cmake_cache_path("ROCM_PATH", rocm_root)) + hip_link_flags = "" - hip_link_flags = "-L{0}/lib -Wl,-rpath,{0}/lib ".format(rocm_root) + rocm_root = spec["llvm-amdgpu"].prefix + entries.append(cmake_cache_path("ROCM_ROOT_DIR", rocm_root)) # Recommended MPI flags - hip_link_flags += "-lxpmem " - hip_link_flags += "-L/opt/cray/pe/mpich/{0}/gtl/lib ".format(spec["mpi"].version) - hip_link_flags += "-Wl,-rpath,/opt/cray/pe/mpich/{0}/gtl/lib ".format( - spec["mpi"].version - ) - hip_link_flags += "-lmpi_gtl_hsa " + if spec.satisfies("+mpi"): + hip_link_flags += "-lxpmem " + hip_link_flags += "-L/opt/cray/pe/mpich/{0}/gtl/lib ".format( + spec["mpi"].version.up_to(3) + ) + hip_link_flags += "-Wl,-rpath,/opt/cray/pe/mpich/{0}/gtl/lib ".format( + spec["mpi"].version.up_to(3) + ) + hip_link_flags += "-lmpi_gtl_hsa " + + if spec.satisfies("^hip@6.0.0:"): + hip_link_flags += "-L{0}/lib/llvm/lib -Wl,-rpath,{0}/lib/llvm/lib ".format( + rocm_root + ) + else: + hip_link_flags += "-L{0}/llvm/lib -Wl,-rpath,{0}/llvm/lib ".format(rocm_root) + # Only amdclang requires this path; cray compiler fails if this is included + if spec.satisfies("%llvm-amdgpu"): + hip_link_flags += "-L{0}/lib -Wl,-rpath,{0}/lib ".format(rocm_root) + hip_link_flags += "-lpgmath " # Fixes for mpi for rocm until wrapper paths are fixed # These flags are already part of the wrapped compilers on TOSS4 systems if spec.satisfies("+fortran") and self.is_fortran_compiler("amdflang"): hip_link_flags += "-Wl,--disable-new-dtags " + hip_link_flags += "-lflang -lflangrti " - if spec.satisfies("^hip@6.0.0:"): - hip_link_flags += "-L{0}/lib/llvm/lib -Wl,-rpath,{0}/lib/llvm/lib ".format( - rocm_root - ) - else: - hip_link_flags += "-L{0}/llvm/lib -Wl,-rpath,{0}/llvm/lib ".format(rocm_root) - hip_link_flags += "-lpgmath -lflang -lflangrti -lompstub " + # Additional library path for cray compiler + if self.spec.satisfies("%cce"): + lib_path = "/opt/cray/pe/cce/{0}/cce/x86_64/lib".format(self.spec.compiler.version) + hip_link_flags += "-L{0} -Wl,-rpath,{0}".format(lib_path) - # Remove extra link library for crayftn - if spec.satisfies("+fortran") and self.is_fortran_compiler("crayftn"): - entries.append( - cmake_cache_string("BLT_CMAKE_IMPLICIT_LINK_LIBRARIES_EXCLUDE", "unwind") - ) + if spec.satisfies("+fortran"): + link_remove_list = [] + + # Remove extra link library for crayftn + if self.is_fortran_compiler("crayftn"): + link_remove_list += ["unwind"] + + # Remove injected OpenMP stub library + if spec.satisfies("+openmp"): + link_remove_list += ["ompstub"] + + if link_remove_list: + entries.append( + cmake_cache_string( + "BLT_CMAKE_IMPLICIT_LINK_LIBRARIES_EXCLUDE", ";".join(link_remove_list) + ) + ) # Additional libraries for TOSS4 hip_link_flags += "-lamdhip64 -lhsakmt -lhsa-runtime64 -lamd_comgr " @@ -393,9 +543,7 @@ def initconfig_hardware_entries(self): if spec.satisfies("+fortran") and self.is_fortran_compiler("xlf"): # Grab lib directory for the current fortran compiler libdir = pjoin(os.path.dirname(os.path.dirname(self.compiler.fc)), "lib") - description = ( - "Adds a missing rpath for libraries " "associated with the fortran compiler" - ) + description = "Adds a missing rpath for libraries associated with the fortran compiler" linker_flags = "${BLT_EXE_LINKER_FLAGS} -Wl,-rpath," + libdir @@ -431,6 +579,23 @@ def initconfig_hardware_entries(self): cmake_cache_string("BLT_OPENMP_LINK_FLAGS", openmp_gen_exp, description) ) + if spec.satisfies("+openmp") and spec.satisfies("+rocm") and self.spec.satisfies("%cce"): + openmp_gen_exp = ( + "$<$>:" + "-fopenmp=libomp>;$<$:-fopenmp>" + ) + + description = ( + "Different OpenMP compile & link flags between HIP and CXX compilers (amdclang++)" + ) + entries.append( + cmake_cache_string("BLT_OPENMP_COMPILE_FLAGS", openmp_gen_exp, description) + ) + entries.append( + cmake_cache_string("BLT_OPENMP_LINK_FLAGS", openmp_gen_exp, description) + ) + if spec.satisfies("target=ppc64le:"): # Fix for working around CMake adding implicit link directories # returned by the BlueOS compilers to link executables with @@ -478,6 +643,26 @@ def initconfig_package_entries(self): entries = [] path_replacements = {} + all_components_enabled = all( + spec.satisfies(f"components={comp}") for comp in _AXOM_COMPONENTS + ) + + if all_components_enabled: + print("All axom components enabled") + else: + print( + f"The following Axom components are enabled: {spec.variants['components'].value}" + ) + + entries.append("#------------------{0}".format("-" * 60)) + entries.append("# Axom components") + entries.append("#------------------{0}\n".format("-" * 60)) + entries.append(cmake_cache_option("AXOM_ENABLE_ALL_COMPONENTS", False)) + + for comp in spec.variants["components"].value: + if comp in _AXOM_COMPONENTS: + entries.append(cmake_cache_option(f"AXOM_ENABLE_{comp.upper()}", True)) + # TPL locations entries.append("#------------------{0}".format("-" * 60)) entries.append("# TPLs") @@ -485,29 +670,38 @@ def initconfig_package_entries(self): # Try to find the common prefix of the TPL directory. # If found, we will use this in the TPL paths - path1 = os.path.realpath(spec["conduit"].prefix) - path2 = os.path.realpath(self.prefix) - self.find_path_replacement(path1, path2, path_replacements, "TPL_ROOT", entries) - - conduit_dir = get_spec_path(spec, "conduit", path_replacements) - entries.append(cmake_cache_path("CONDUIT_DIR", conduit_dir)) - - # optional tpls - for dep in ("mfem", "hdf5", "lua", "raja", "umpire", "opencascade"): - if spec.satisfies("+%s" % dep): + variant_deps = [ + "conduit", + "c2c", + "mfem", + "hdf5", + "lua", + "raja", + "umpire", + "opencascade", + "adiak", + "caliper", + ] + + for dep in variant_deps: + if dep in ["lua"]: # skip entries often outside the common prefix + continue + + if spec.satisfies(f"^{dep}"): + path1 = os.path.realpath(spec[dep].prefix) + path2 = os.path.realpath(os.path.dirname(self.prefix)) + self.find_path_replacement(path1, path2, path_replacements, "TPL_ROOT", entries) + break + + # optional tpls based on variants + for dep in variant_deps: + if spec.satisfies(f"^{dep}"): dep_dir = get_spec_path(spec, dep, path_replacements) entries.append(cmake_cache_path("%s_DIR" % dep.upper(), dep_dir)) else: entries.append("# %s not built\n" % dep.upper()) - if spec.satisfies("+profiling"): - dep_dir = get_spec_path(spec, "adiak", path_replacements) - entries.append(cmake_cache_path("ADIAK_DIR", dep_dir)) - - dep_dir = get_spec_path(spec, "caliper", path_replacements) - entries.append(cmake_cache_path("CALIPER_DIR", dep_dir)) - - if spec.satisfies("+umpire") and spec.satisfies("^camp"): + if (spec.satisfies("+raja") or spec.satisfies("+umpire")) and spec.satisfies("^camp"): dep_dir = get_spec_path(spec, "camp", path_replacements) entries.append(cmake_cache_path("CAMP_DIR", dep_dir)) @@ -541,7 +735,7 @@ def initconfig_package_entries(self): ################################## entries.append("#------------------{0}".format("-" * 60)) - entries.append("# Devtools") + entries.append("# Devtools & Python") entries.append("#------------------{0}\n".format("-" * 60)) # Add common prefix to path replacement list @@ -551,18 +745,16 @@ def initconfig_package_entries(self): path2 = os.path.realpath(spec["doxygen"].prefix) self.find_path_replacement(path1, path2, path_replacements, "DEVTOOLS_ROOT", entries) - if spec.satisfies("+devtools") and spec.satisfies("^llvm"): + if spec.satisfies("+devtools") and spec.satisfies("^llvm@19"): clang_fmt_path = spec["llvm"].prefix.bin.join("clang-format") entries.append(cmake_cache_path("CLANGFORMAT_EXECUTABLE", clang_fmt_path)) else: - entries.append("# ClangFormat disabled due to llvm and devtools not in spec\n") + entries.append("# ClangFormat disabled since llvm@19 and devtools not in spec\n") entries.append(cmake_cache_option("ENABLE_CLANGFORMAT", False)) if spec.satisfies("+python") or spec.satisfies("+devtools"): - python_path = os.path.realpath(spec["python"].command.path) - for key in path_replacements: - python_path = python_path.replace(key, path_replacements[key]) - entries.append(cmake_cache_path("PYTHON_EXECUTABLE", python_path)) + python_bin_dir = get_spec_path(spec, "python", path_replacements, use_bin=True) + entries.append(cmake_cache_path("Python_EXECUTABLE", pjoin(python_bin_dir, "python3"))) if spec.satisfies("^py-jsonschema"): jsonschema_dir = get_spec_path(spec, "py-jsonschema", path_replacements, use_bin=True) @@ -578,6 +770,10 @@ def initconfig_package_entries(self): cmake_cache_path("SPHINX_EXECUTABLE", pjoin(sphinx_bin_dir, "sphinx-build")) ) + if spec.satisfies("^py-yapf"): + yapf_bin_dir = get_spec_path(spec, "py-yapf", path_replacements, use_bin=True) + entries.append(cmake_cache_path("YAPF_EXECUTABLE", pjoin(yapf_bin_dir, "yapf"))) + if spec.satisfies("^py-shroud"): shroud_bin_dir = get_spec_path(spec, "py-shroud", path_replacements, use_bin=True) entries.append(cmake_cache_path("SHROUD_EXECUTABLE", pjoin(shroud_bin_dir, "shroud"))) @@ -589,6 +785,18 @@ def initconfig_package_entries(self): cmake_cache_path("%s_EXECUTABLE" % dep.upper(), pjoin(dep_bin_dir, dep)) ) + if spec.satisfies("+python"): + # pytest requires pluggy and iniconfig + for dep in ("py-nanobind", "py-pytest", "py-numpy", "py-pluggy", "py-iniconfig"): + if spec.satisfies("^{0}".format(dep)): + dep_dir = get_spec_path(spec, dep, path_replacements, use_lib=True) + py_libdir = join_path( + dep_dir, f"python{spec['python'].version.up_to(2)}", "site-packages" + ) + entries.append( + cmake_cache_path("%s_DIR" % dep.upper().replace("-", "_"), py_libdir) + ) + return entries def cmake_args(self): @@ -604,8 +812,8 @@ def cmake_args(self): options.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared")) options.append(self.define_from_variant("AXOM_ENABLE_EXAMPLES", "examples")) options.append(self.define_from_variant("AXOM_ENABLE_TOOLS", "tools")) - if self.spec.satisfies("~raja") or self.spec.satisfies("+umpire"): - options.append("-DAXOM_ENABLE_MIR:BOOL=OFF") + options.append(self.define_from_variant("AXOM_ENABLE_TUTORIALS", "tutorials")) + options.append(self.define_from_variant("AXOM_USE_64BIT_INDEXTYPE", "int64")) return options @@ -624,7 +832,7 @@ def build_test(self): print("Running Axom Unit Tests...") make("test") - @run_after("install") + @run_after("install", when="+examples") @on_package_attributes(run_tests=True) def test_install_using_cmake(self): """build example with cmake and run""" @@ -640,7 +848,7 @@ def test_install_using_cmake(self): example() make("clean") - @run_after("install") + @run_after("install", when="+examples") @on_package_attributes(run_tests=True) def test_install_using_make(self): """build example with make and run""" diff --git a/repos/spack_repo/builtin/packages/babeltrace/package.py b/repos/spack_repo/builtin/packages/babeltrace/package.py index e00ebccec2e..f19a931e748 100644 --- a/repos/spack_repo/builtin/packages/babeltrace/package.py +++ b/repos/spack_repo/builtin/packages/babeltrace/package.py @@ -26,3 +26,4 @@ class Babeltrace(AutotoolsPackage): depends_on("glib@2.22:", type=("build", "link")) depends_on("uuid") depends_on("popt") + depends_on("elfutils") diff --git a/repos/spack_repo/builtin/packages/babeltrace2/package.py b/repos/spack_repo/builtin/packages/babeltrace2/package.py new file mode 100644 index 00000000000..19762bba861 --- /dev/null +++ b/repos/spack_repo/builtin/packages/babeltrace2/package.py @@ -0,0 +1,74 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Babeltrace2(AutotoolsPackage): + """ + Babeltrace 2: CTF trace processing library, CLI, and Python3 bindings (bt2). + """ + + homepage = "https://babeltrace.org/" + git = "https://github.com/efficios/babeltrace.git" + url = "https://github.com/efficios/babeltrace/archive/refs/tags/v2.1.2.tar.gz" + + # Maintaining this package; not the original author of Babeltrace2 + maintainers("minghangli-uni") + + license("MIT") + + version("2.1.2", sha256="92e261e1811f4a7f747ee4bc5ac21c0054cd7906f88ad799fab81f16e08c2122") + version("2.1.1", sha256="1ad8cea3fc31e8d18e869d0c01581318e534f3976a9f3636fdab4423f1113d47") + version("2.1.0", sha256="808426a78efdeb1db71c71dba9ddb39902f7cc2604cee698849bc291d0af377e") + version("2.0.7", sha256="a8c1965590b0cf04b1985881b2a5727a0e49d628a99bdaade4f3e29f0c36e5b1") + version("2.0.6", sha256="a3a548b3e5b2a1d18c865299f083aa9716fcb6fed4a5713f29a87d3e9e39041c") + version("2.0.5", sha256="c058f9a2dc0b1287dcc20ef59fc0e13f54b9c43c14ffd58d5dc1c10786884a81") + version("2.0.4", sha256="37d3e81bc4abc42e4fa99488685eab3458212c6531ccadcf53cf1534d762bf22") + version("2.0.3", sha256="6cdeaa3bfc12d47936e7c664c5a2610c376ad3d2dfc8cf947137c4b3a2051dd3") + version("2.0.2", sha256="1c09428fec2d0000bf6f5332da2624b39fbf110477b82d2cb0856dcb74c58afc") + + variant("python", default=True, description="Build Python3 bindings (bt2)") + variant("plugins", default=True, description="Enable Python plugin provider") + variant("manpages", default=True, description="Build man pages") + + depends_on("c", type="build") + + depends_on("pkgconfig", type="build") + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + depends_on("glib@2.22:", type=("build", "link")) + depends_on("python@3.4:", when="+python", type=("build", "run")) + depends_on("py-setuptools", when="+python", type="build") + depends_on("swig@2.0:", when="+python", type="build") + + depends_on("asciidoc", when="+manpages", type="build") + depends_on("xmlto", when="+manpages", type="build") + + def setup_build_environment(self, env): + if self.spec.satisfies("+python"): + env.set("PYTHON", self.spec["python"].command.path) + + def setup_run_environment(self, env): + if self.spec.satisfies("+python"): + pyver = self.spec["python"].version.up_to(2) + env.prepend_path( + "PYTHONPATH", join_path(self.prefix.lib, f"python{pyver}", "site-packages") + ) + + def configure_args(self): + args = [] + if self.spec.satisfies("+python"): + args.append("--enable-python-bindings") + + if self.spec.satisfies("+plugins"): + args.append("--enable-python-plugins") + + if self.spec.satisfies("~manpages"): + args.append("--disable-man-pages") + + return args diff --git a/repos/spack_repo/builtin/packages/babl/package.py b/repos/spack_repo/builtin/packages/babl/package.py index 232b16d5b0f..18bb94db495 100644 --- a/repos/spack_repo/builtin/packages/babl/package.py +++ b/repos/spack_repo/builtin/packages/babl/package.py @@ -37,6 +37,7 @@ class Babl(MesonPackage): depends_on("pkgconfig", type="build") depends_on("lcms") depends_on("gobject-introspection") + depends_on("glib", type="build") def setup_dependent_build_environment( self, env: EnvironmentModifications, dependent_spec: Spec diff --git a/repos/spack_repo/builtin/packages/bamutil/package.py b/repos/spack_repo/builtin/packages/bamutil/package.py index 3bddd7f505d..a6388908f89 100644 --- a/repos/spack_repo/builtin/packages/bamutil/package.py +++ b/repos/spack_repo/builtin/packages/bamutil/package.py @@ -25,7 +25,8 @@ class Bamutil(MakefilePackage): url="https://genome.sph.umich.edu/w/images/7/70/BamUtilLibStatGen.1.0.13.tgz", ) - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("zlib-api") depends_on("git", type="build", when="@1.0.15:") diff --git a/repos/spack_repo/builtin/packages/bart/Makefile-0.9.00.patch b/repos/spack_repo/builtin/packages/bart/Makefile-0.9.00.patch new file mode 100644 index 00000000000..948bd289681 --- /dev/null +++ b/repos/spack_repo/builtin/packages/bart/Makefile-0.9.00.patch @@ -0,0 +1,47 @@ +diff --git a/Makefile b/Makefile +index 9e60c8ea..9ec62766 100644 +--- a/Makefile ++++ b/Makefile +@@ -86,12 +86,12 @@ else + ARFLAGS ?= rs + endif + +-ifeq ($(BUILDTYPE), Linux) +-ifneq (,$(findstring Red Hat,$(shell gcc --version))) +- CPPFLAGS+=-I/usr/include/lapacke/ +- LDFLAGS+=-L/usr/lib64/atlas -ltatlas +-endif +-endif ++#ifeq ($(BUILDTYPE), Linux) ++#ifneq (,$(findstring Red Hat,$(shell gcc --version))) ++# CPPFLAGS+=-I/usr/include/lapacke/ ++# LDFLAGS+=-L/usr/lib64/atlas -ltatlas ++#endif ++#endif + + ifeq ($(UNAME),Cygwin) + BUILDTYPE = Cygwin +@@ -405,9 +405,9 @@ ifeq ($(BUILDTYPE), MacOSX) + CUDA_L := -L$(CUDA_BASE)/$(CUDA_LIB) -lcufft -lcudart -lcublas -m64 -lstdc++ + else + ifeq ($(CUDNN),1) +-CUDA_L := -L$(CUDA_BASE)/$(CUDA_LIB) -L$(CUDNN_BASE)/$(CUDNN_LIB) -lcudnn -lcufft -lcudart -lcublas -lstdc++ -Wl,-rpath $(CUDA_BASE)/$(CUDA_LIB) ++CUDA_L := -L$(CUDA_BASE)/$(CUDA_LIB) -L$(CUDNN_BASE)/$(CUDNN_LIB) -lcudnn -lcufft -lcudart -lcublas -lstdc++ + else +-CUDA_L := -L$(CUDA_BASE)/$(CUDA_LIB) -lcufft -lcudart -lcublas -lstdc++ -Wl,-rpath $(CUDA_BASE)/$(CUDA_LIB) ++CUDA_L := -L$(CUDA_BASE)/$(CUDA_LIB) -lcufft -lcudart -lcublas -lstdc++ + endif + endif + else +@@ -471,9 +471,9 @@ CPPFLAGS += -Isrc/lapacke + else + ifeq ($(OPENBLAS), 1) + ifeq ($(FORTRAN), 0) +-BLAS_L := -L$(BLAS_BASE)/lib -lopenblas ++BLAS_L := -lopenblas + else +-BLAS_L := -L$(BLAS_BASE)/lib -llapacke -lopenblas ++BLAS_L := -llapacke -lopenblas + endif + CPPFLAGS += -DUSE_OPENBLAS + CFLAGS += -DUSE_OPENBLAS diff --git a/repos/spack_repo/builtin/packages/bart/bart_path-0.9.00.patch b/repos/spack_repo/builtin/packages/bart/bart_path-0.9.00.patch new file mode 100644 index 00000000000..fad314777cd --- /dev/null +++ b/repos/spack_repo/builtin/packages/bart/bart_path-0.9.00.patch @@ -0,0 +1,248 @@ +diff --git a/commands/sub b/commands/sub +index 6038e58e..0d39b56d 100755 +--- a/commands/sub ++++ b/commands/sub +@@ -1,9 +1,9 @@ +-#!/bin/bash ++#!/usr/bin/env bash + set -e + +-if [ ! -f ${BART_TOOLBOX_PATH}/bart ] ; then ++if [ ! -f ${BART_TOOLBOX_PATH}/bin/bart ] ; then + +- if [ -f ${TOOLBOX_PATH}/bart ] ; then ++ if [ -f ${TOOLBOX_PATH}/bin/bart ] ; then + BART_TOOLBOX_PATH=${TOOLBOX_PATH} + else + echo "\$BART_TOOLBOX_PATH is not set correctly!" +@@ -18,5 +18,5 @@ if [ $# -lt 3 ] ; then + exit 1 + fi + +-${BART_TOOLBOX_PATH}/bart saxpy -- -1. $1 $2 $3 ++bart saxpy -- -1. $1 $2 $3 + +diff --git a/matlab/get_bart_path.m b/matlab/get_bart_path.m +index 8874a675..e491e41f 100644 +--- a/matlab/get_bart_path.m ++++ b/matlab/get_bart_path.m +@@ -7,7 +7,7 @@ function [bart_path, isWSL] = get_bart_path() + % 2022 Jon Tamir + + % Check bart toolbox path +- bart_path = getenv('BART_TOOLBOX_PATH'); ++ bart_path = [getenv('BART_TOOLBOX_PATH') '/bin']; + isWSL = false; + if isempty(bart_path) + if ~isempty(getenv('TOOLBOX_PATH')) +diff --git a/python/bart.py b/python/bart.py +index c777e20a..943bb1b7 100644 +--- a/python/bart.py ++++ b/python/bart.py +@@ -19,7 +19,7 @@ def bart(nargout, cmd, *args, **kwargs): + return + + try: +- bart_path = os.environ['BART_TOOLBOX_PATH'] ++ bart_path = os.path.join(os.environ['BART_TOOLBOX_PATH'], 'bin') + except: + bart_path = None + # support old environment variable: +diff --git a/python/splines_from_svg.py b/python/splines_from_svg.py +index d08370cd..744fa08b 100755 +--- a/python/splines_from_svg.py ++++ b/python/splines_from_svg.py +@@ -20,12 +20,12 @@ import numpy as np + import argparse + + import sys +-if 'BART_TOOLBOX_PATH' in os.environ and os.path.exists(os.environ['BART_TOOLBOX_PATH']): +- sys.path.insert(0, os.path.join(os.environ['BART_TOOLBOX_PATH'], 'python')) +-elif 'TOOLBOX_PATH' in os.environ and os.path.exists(os.environ['TOOLBOX_PATH']): +- sys.path.insert(0, os.path.join(os.environ['TOOLBOX_PATH'], 'python')) +-else: +- raise RuntimeError("BART_TOOLBOX_PATH is not set correctly!") ++#if 'BART_TOOLBOX_PATH' in os.environ and os.path.exists(os.environ['BART_TOOLBOX_PATH']): ++# sys.path.insert(0, os.path.join(os.environ['BART_TOOLBOX_PATH'], 'python')) ++#elif 'TOOLBOX_PATH' in os.environ and os.path.exists(os.environ['TOOLBOX_PATH']): ++# sys.path.insert(0, os.path.join(os.environ['TOOLBOX_PATH'], 'python')) ++#else: ++# raise RuntimeError("BART_TOOLBOX_PATH is not set correctly!") + import cfl + + DBLEVEL = 0 +diff --git a/scripts/espirit_econ.sh b/scripts/espirit_econ.sh +index 07140d97..5075ea7d 100644 +--- a/scripts/espirit_econ.sh ++++ b/scripts/espirit_econ.sh +@@ -56,15 +56,15 @@ if [ $# -lt 2 ] ; then + fi + + +-if [ ! -e "$BART_TOOLBOX_PATH"/bart ] ; then +- if [ -e "$TOOLBOX_PATH"/bart ] ; then ++if [ ! -e "$BART_TOOLBOX_PATH"/bin/bart ] ; then ++ if [ -e "$TOOLBOX_PATH"/bin/bart ] ; then + BART_TOOLBOX_PATH="$TOOLBOX_PATH" + else + echo "\$BART_TOOLBOX_PATH is not set correctly!" >&2 + exit 1 + fi + fi +-export PATH="$BART_TOOLBOX_PATH:$PATH" ++ + + input=$(readlink -f "$1") + output=$(readlink -f "$2") +@@ -75,7 +75,7 @@ if [ ! -e $input.cfl ] ; then + exit 1 + fi + +-if [ ! -e $TOOLBOX_PATH/bart ] ; then ++if [ ! -e $TOOLBOX_PATH/bin ] ; then + echo "\$TOOLBOX_PATH is not set correctly!" >&2 + exit 1 + fi +diff --git a/scripts/grasp.sh b/scripts/grasp.sh +index 7fc4db1c..a685d4d5 100644 +--- a/scripts/grasp.sh ++++ b/scripts/grasp.sh +@@ -90,15 +90,14 @@ if [ $# -lt 2 ] ; then + fi + + +-if [ ! -e "$BART_TOOLBOX_PATH"/bart ] ; then +- if [ -e "$TOOLBOX_PATH"/bart ] ; then ++if [ ! -e "$BART_TOOLBOX_PATH"/bin/bart ] ; then ++ if [ -e "$TOOLBOX_PATH"/bin/bart ] ; then + BART_TOOLBOX_PATH="$TOOLBOX_PATH" + else + echo "\$BART_TOOLBOX_PATH is not set correctly!" >&2 + exit 1 + fi + fi +-export PATH="$BART_TOOLBOX_PATH:$PATH" + + input=$(readlink -f "$1") + output=$(readlink -f "$2") +@@ -109,8 +108,8 @@ if [ ! -e $input ] ; then + exit 1 + fi + +-if [ ! -e $TOOLBOX_PATH/bart ] ; then +- echo "\$TOOLBOX_PATH is not set correctly!" >&2 ++if [ ! -e $BART_TOOLBOX_PATH/bin/bart ] ; then ++ echo "\$BART_TOOLBOX_PATH is not set correctly!" >&2 + exit 1 + fi + +diff --git a/scripts/kspace_precond.sh b/scripts/kspace_precond.sh +index 59cb1b2b..3d076abe 100755 +--- a/scripts/kspace_precond.sh ++++ b/scripts/kspace_precond.sh +@@ -56,15 +56,14 @@ if [ $# -lt 3 ] ; then + exit 1 + fi + +-if [ ! -e "$BART_TOOLBOX_PATH"/bart ] ; then +- if [ -e "$TOOLBOX_PATH"/bart ] ; then ++if [ ! -e "$BART_TOOLBOX_PATH"/bin/bart ] ; then ++ if [ -e "$TOOLBOX_PATH"/bin/bart ] ; then + BART_TOOLBOX_PATH="$TOOLBOX_PATH" + else + echo "\$BART_TOOLBOX_PATH is not set correctly!" >&2 + exit 1 + fi + fi +-export PATH="$BART_TOOLBOX_PATH:$PATH" + + ones=$(readlink -f "$1") + traj=$(readlink -f "$2") +diff --git a/scripts/life.sh b/scripts/life.sh +index 35de1750..36590ec6 100644 +--- a/scripts/life.sh ++++ b/scripts/life.sh +@@ -1,14 +1,13 @@ + #!/bin/bash + +-if [ ! -e "$BART_TOOLBOX_PATH"/bart ] ; then +- if [ -e "$TOOLBOX_PATH"/bart ] ; then ++if [ ! -e "$BART_TOOLBOX_PATH"/bin/bart ] ; then ++ if [ -e "$TOOLBOX_PATH"/bin/bart ] ; then + BART_TOOLBOX_PATH="$TOOLBOX_PATH" + else + echo "\$BART_TOOLBOX_PATH is not set correctly!" >&2 + exit 1 + fi + fi +-export PATH="$BART_TOOLBOX_PATH:$PATH" + + + #bart vec 0 0 1 0 v1 +diff --git a/scripts/phantom.sh b/scripts/phantom.sh +index 8a1c4ada..3f6aa0bf 100755 +--- a/scripts/phantom.sh ++++ b/scripts/phantom.sh +@@ -86,15 +86,14 @@ if [ $# != 1 ] ; then + fi + + +-if [ ! -e "$BART_TOOLBOX_PATH"/bart ] ; then +- if [ -e "$TOOLBOX_PATH"/bart ] ; then ++if [ ! -e "$BART_TOOLBOX_PATH"/bin/bart ] ; then ++ if [ -e "$TOOLBOX_PATH"/bin/bart ] ; then + BART_TOOLBOX_PATH="$TOOLBOX_PATH" + else + echo "\$BART_TOOLBOX_PATH is not set correctly!" >&2 + exit 1 + fi + fi +-export PATH="$BART_TOOLBOX_PATH:$PATH" + + + output=$(readlink -f "$1") +diff --git a/scripts/profile.sh b/scripts/profile.sh +index 2245ba4d..580367c2 100644 +--- a/scripts/profile.sh ++++ b/scripts/profile.sh +@@ -45,8 +45,8 @@ if [ ! -e $input ] ; then + exit 1 + fi + +-if [ ! -e "$BART_TOOLBOX_PATH"/bart ] ; then +- if [ -e "$TOOLBOX_PATH"/bart ] ; then ++if [ ! -e "$BART_TOOLBOX_PATH"/bin/bart ] ; then ++ if [ -e "$TOOLBOX_PATH"/bin/bart ] ; then + BART_TOOLBOX_PATH="$TOOLBOX_PATH" + else + echo "\$BART_TOOLBOX_PATH is not set correctly!" >&2 +@@ -61,7 +61,7 @@ trap 'rm -rf "$WORKDIR"' EXIT + cd $WORKDIR + + +-nm --defined-only "$BART_TOOLBOX_PATH"/bart | cut -c11-16,19- | sort > bart.syms ++nm --defined-only "$BART_TOOLBOX_PATH"/bin/bart | cut -c11-16,19- | sort > bart.syms + + + cat $in | grep "^TRACE" \ +diff --git a/scripts/radial_dcf.sh b/scripts/radial_dcf.sh +index 8ec2323e..dc0939fb 100644 +--- a/scripts/radial_dcf.sh ++++ b/scripts/radial_dcf.sh +@@ -1,14 +1,13 @@ + #!/bin/bash + +-if [ ! -e "$BART_TOOLBOX_PATH"/bart ] ; then +- if [ -e "$TOOLBOX_PATH"/bart ] ; then ++if [ ! -e "$BART_TOOLBOX_PATH"/bin/bart ] ; then ++ if [ -e "$TOOLBOX_PATH"/bin/bart ] ; then + BART_TOOLBOX_PATH="$TOOLBOX_PATH" + else + echo "\$BART_TOOLBOX_PATH is not set correctly!" >&2 + exit 1 + fi + fi +-export PATH="$BART_TOOLBOX_PATH:$PATH" + + # oversampled radial trajectory + bart traj -r -y55 -x256 traj_tmp diff --git a/repos/spack_repo/builtin/packages/bart/package.py b/repos/spack_repo/builtin/packages/bart/package.py index 51e07674649..19bee946c26 100644 --- a/repos/spack_repo/builtin/packages/bart/package.py +++ b/repos/spack_repo/builtin/packages/bart/package.py @@ -1,14 +1,16 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os from spack_repo.builtin.build_systems.cuda import CudaPackage from spack_repo.builtin.build_systems.makefile import MakefilePackage +from spack_repo.builtin.build_systems.python import PythonExtension from spack.package import * -class Bart(MakefilePackage, CudaPackage): +class Bart(MakefilePackage, CudaPackage, PythonExtension): """BART: Toolbox for Computational Magnetic Resonance Imaging""" homepage = "https://mrirecon.github.io/bart/" @@ -16,12 +18,14 @@ class Bart(MakefilePackage, CudaPackage): license("BSD-3-Clause") + version("0.9.00", sha256="86668e4d56460a5f5def2d01fba2b5143830f34028f09cad42c099d862bd892d") version("0.7.00", sha256="a16afc4b632c703d95b5c34e47acd82fafc19f51f9aff442373eecfef08bfc41") version("0.6.00", sha256="dbbd33d1e3ed3324fe21f90a3b62cb51765fe369f21df100b46a32004928f18d") version("0.5.00", sha256="30eedcda0f0ef3808157542e0d67df5be49ee41e4f41487af5c850632788f643") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + depends_on("gcc@11:", type="build", when="@0.9:") # patch to fix build with MKL patch( @@ -32,11 +36,13 @@ class Bart(MakefilePackage, CudaPackage): # patch to fix Makefile for openblas and cuda patch("Makefile.patch", when="@:0.6.00") - patch("Makefile-0.7.00.patch", when="@0.7.00:") + patch("Makefile-0.7.00.patch", when="@0.7.00") + patch("Makefile-0.9.00.patch", when="@0.9.00") # patch to set path to bart patch("bart_path-0.5.00.patch", when="@0.5.00") - patch("bart_path-0.6.00.patch", when="@0.6.00:") + patch("bart_path-0.6.00.patch", when="@0.6.00:0.7") + patch("bart_path-0.9.00.patch", when="@0.9.00") depends_on("libpng") depends_on("fftw") @@ -48,27 +54,29 @@ class Bart(MakefilePackage, CudaPackage): conflicts("^atlas", msg="BART does not currently support atlas") - def edit(self, spec, prefix): - env["PREFIX"] = prefix - env["FFTW_BASE"] = spec["fftw"].prefix + def setup_build_environment(self, env): + env.set("PREFIX", self.prefix) + env.set("FFTW_BASE", self.spec["fftw"].prefix) - if spec["blas"].name == "openblas": - env["OPENBLAS"] = "1" + if self.spec["blas"].name == "openblas": + env.set("OPENBLAS", "1") + env.set("FORTRAN", "0") - elif spec.satisfies("^[virtuals=blas] intel-oneapi-mkl"): - env["MKL"] = "1" - env["MKL_BASE"] = spec["mkl"].prefix.mkl + elif self.spec.satisfies("^[virtuals=blas] intel-oneapi-mkl"): + env.set("MKL", "1") + env.set("MKL_BASE", self.spec["mkl"].prefix.mkl) else: - env["BLAS_BASE"] = spec["blas"].prefix + env.set("BLAS_BASE", self.spec["blas"].prefix) - if "^netlib-lapack+lapacke" not in spec: - env["NOLAPACKE"] = "1" + if self.spec.satisfies("@:0.7.00"): + if "^netlib-lapack+lapacke" not in self.spec: + env.set("NOLAPACKE", "1") - if spec.satisfies("+cuda"): + if self.spec.satisfies("+cuda"): cuda_arch = self.spec.variants["cuda_arch"].value - env["CUDA"] = "1" - env["CUDA_BASE"] = spec["cuda"].prefix - env["GPUARCH_FLAGS"] = " ".join(self.cuda_flags(cuda_arch)) + env.set("CUDA", "1") + env.set("CUDA_BASE", self.spec["cuda"].prefix) + env.set("GPUARCH_FLAGS", " ".join(self.cuda_flags(cuda_arch))) def install(self, spec, prefix): make("install") @@ -77,6 +85,8 @@ def install(self, spec, prefix): install_tree("matlab", prefix.matlab) install("startup.m", prefix) + os.makedirs(python_platlib, exist_ok=True) + install("python/bart.py", python_platlib) install("python/cfl.py", python_platlib) install("python/wslsupport.py", python_platlib) @@ -89,4 +99,7 @@ def install(self, spec, prefix): filter_file(r"#!/usr/bin/python", "#!/usr/bin/env python", prefix.bin.bartview) def setup_run_environment(self, env: EnvironmentModifications) -> None: - env.set("TOOLBOX_PATH", self.prefix) + if self.spec.satisfies("@0.9:"): + env.set("BART_TOOLBOX_PATH", self.prefix) + else: + env.set("TOOLBOX_PATH", self.prefix) diff --git a/repos/spack_repo/builtin/packages/bash/package.py b/repos/spack_repo/builtin/packages/bash/package.py index c2f4cee1c1c..464954577b1 100644 --- a/repos/spack_repo/builtin/packages/bash/package.py +++ b/repos/spack_repo/builtin/packages/bash/package.py @@ -18,6 +18,7 @@ class Bash(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") + version("5.3", sha256="0d5cd86965f869a26cf64f4b71be7b96f90a3ba8b3d74e27e8e9d9d5550f31ba") version("5.2", sha256="a139c166df7ff4471c5e0733051642ee5556c1cc8a4a78f145583c5c81ab32fb") version("5.1", sha256="cc012bc860406dcf42f64431bcd3d2fa7560c02915a601aba9cd597a39329baa") version("5.0", sha256="b4a80f2ac66170b2913efbfb9f2594f1f76c7b1afd11f799e22035d63077fb4d") @@ -31,6 +32,7 @@ class Bash(AutotoolsPackage, GNUMirrorPackage): depends_on("libtool", type="build") depends_on("ncurses") + depends_on("readline@8.3:", when="@5.3:") depends_on("readline@8.2:", when="@5.2:") depends_on("readline@5.0:") depends_on("iconv") @@ -38,6 +40,15 @@ class Bash(AutotoolsPackage, GNUMirrorPackage): # TODO: patches below are not managed by the GNUMirrorPackage base class for verstr, num, checksum in ( + ("5.3", "001", "1f608434364af86b9b45c8b0ea3fb3b165fb830d27697e6cdfc7ac17dee3287f"), + ("5.3", "002", "e385548a00130765ec7938a56fbdca52447ab41fabc95a25f19ade527e282001"), + ("5.3", "003", "f245d9c7dc3f5a20d84b53d249334747940936f09dc97e1dcb89fc3ab37d60ed"), + ("5.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/bats/package.py b/repos/spack_repo/builtin/packages/bats/package.py index 23b47acc252..68fae2a336f 100644 --- a/repos/spack_repo/builtin/packages/bats/package.py +++ b/repos/spack_repo/builtin/packages/bats/package.py @@ -11,10 +11,11 @@ class Bats(Package): """Bats is a TAP-compliant testing framework for Bash.""" homepage = "https://github.com/bats-core/bats-core" - url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.10.0.tar.gz" + url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.13.0.tar.gz" license("MIT") + version("1.13.0", sha256="a85e12b8828271a152b338ca8109aa23493b57950987c8e6dff97ba492772ff3") version("1.10.0", sha256="a1a9f7875aa4b6a9480ca384d5865f1ccf1b0b1faead6b47aa47d79709a5c5fd") version( "0.4.0", @@ -23,5 +24,5 @@ class Bats(Package): ) def install(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./install.sh", prefix) diff --git a/repos/spack_repo/builtin/packages/bazel/missing-headers-gcc15.patch b/repos/spack_repo/builtin/packages/bazel/missing-headers-gcc15.patch new file mode 100644 index 00000000000..de71b1091d5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/bazel/missing-headers-gcc15.patch @@ -0,0 +1,24 @@ +diff --git a/src/main/cpp/archive_utils.h b/src/main/cpp/archive_utils.h +index 18856ab67dbddd..5298a36d6af4f8 100644 +--- a/src/main/cpp/archive_utils.h ++++ b/src/main/cpp/archive_utils.h +@@ -15,6 +15,7 @@ + #ifndef BAZEL_SRC_MAIN_CPP_ARCHIVE_UTILS_H_ + #define BAZEL_SRC_MAIN_CPP_ARCHIVE_UTILS_H_ + ++#include + #include + #include + +diff --git a/src/main/cpp/util/logging.h b/src/main/cpp/util/logging.h +index b2cd459d06c639..7bf5a006b069ef 100644 +--- a/src/main/cpp/util/logging.h ++++ b/src/main/cpp/util/logging.h +@@ -14,6 +14,7 @@ + #ifndef BAZEL_SRC_MAIN_CPP_LOGGING_H_ + #define BAZEL_SRC_MAIN_CPP_LOGGING_H_ + ++#include + #include + #include + #include diff --git a/repos/spack_repo/builtin/packages/bazel/package.py b/repos/spack_repo/builtin/packages/bazel/package.py index a4d51ab8c1b..49595a0ce55 100644 --- a/repos/spack_repo/builtin/packages/bazel/package.py +++ b/repos/spack_repo/builtin/packages/bazel/package.py @@ -25,6 +25,9 @@ class Bazel(Package): license("Apache-2.0") + version("7.7.1", sha256="6181b3570c2f657d989b1141fb0c1a08eb5f08106ca577dc7dc52e7d0238379a") + version("7.7.0", sha256="277946818c77fff70be442864cecc41faac862b6f2d0d37033e2da0b1fee7e0f") + version("7.6.2", sha256="320582db87133c6a7b58d93b6a97bb7d67916fe7940d60fbb4ecc36c7a48da6d") version("7.4.1", sha256="83386618bc489f4da36266ef2620ec64a526c686cf07041332caff7c953afaf5") version("7.0.2", sha256="dea2b90575d43ef3e41c402f64c2481844ecbf0b40f8548b75a204a4d504e035") version("7.0.1", sha256="596b13e071d27c43343ec8f5d263cb5312fafe7ef8702401f7ed492f182f4e6c") @@ -56,91 +59,6 @@ class Bazel(Package): version("4.1.0", sha256="f377d755c96a50f6bd2f423562598d822f43356783330a0b780ad442864d6eeb") version("4.0.0", sha256="d350f80e70654932db252db380d2ec0144a00e86f8d9f2b4c799ffdb48e9cdd1") version("3.7.2", sha256="de255bb42163a915312df9f4b86e5b874b46d9e8d4b72604b5123c3a845ed9b1") - version( - "3.7.1", - sha256="c9244e5905df6b0190113e26082c72d58b56b1b0dec66d076f083ce4089b0307", - deprecated=True, - ) - version( - "3.7.0", - sha256="63873623917c756d1be49ff4d5fc23049736180e6b9a7d5236c6f204eddae3cc", - deprecated=True, - ) - version( - "3.6.0", - sha256="3a18f24febb5203f11b0985b27e120ac623058d1d5ca79cd6df992e67d57240a", - deprecated=True, - ) - version( - "3.5.1", - sha256="67eae714578b22d24192b0eb3a2d35b07578bbd57a33c50f1e74f8acd6378b3c", - deprecated=True, - ) - version( - "3.5.0", - sha256="334429059cf82e222ca8a9d9dbbd26f8e1eb308613463c2b8655dd4201b127ec", - deprecated=True, - ) - version( - "3.4.1", - sha256="27af1f11c8f23436915925b25cf6e1fb07fccf2d2a193a307c93437c60f63ba8", - deprecated=True, - ) - version( - "3.4.0", - sha256="7583abf8905ba9dd5394294e815e8873635ac4e5067e63392e8a33b397e450d8", - deprecated=True, - ) - version( - "3.3.1", - sha256="e0f1f43c65c4e0a38522b37e81f6129d8a1f7cd3d8884847be306544a7492747", - deprecated=True, - ) - version( - "3.3.0", - sha256="05a03960de09d5775839c5766ad8a0a30f261feaba5fa53ce3e49168d1eee826", - deprecated=True, - ) - version( - "3.2.0", - sha256="44ec129436f6de45f2230e14100104919443a1364c2491f5601666b358738bfa", - deprecated=True, - ) - version( - "3.1.0", - sha256="d7f40d0cac95a06cea6cb5b7f7769085257caebc3ee84269dd9298da760d5615", - deprecated=True, - ) - version( - "3.0.0", - sha256="530f5132e0a50da7ebb0ed08d9b6f1ddfd0d7d9b5d0beb2df5d687a4c8daf6b3", - deprecated=True, - ) - version( - "2.2.0", - sha256="9379878a834d105a47a87d3d7b981852dd9f64bc16620eacd564b48533e169a7", - deprecated=True, - ) - version( - "2.1.1", - sha256="83f67f28f4e47ff69043307d1791c9bffe83949e84165d49058b84eded932647", - deprecated=True, - ) - version( - "2.1.0", - sha256="3371cd9050989173a3b27364668328653a65653a50a85c320adc53953b4d5f46", - deprecated=True, - ) - version( - "2.0.1", - sha256="a863ed9e6fc420fbd92e63a12fe1a5b9be1a7a36f11f61f1fdc582c813bbe543", - deprecated=True, - ) - version( - "2.0.0", - sha256="724da3c656f68e787a86ebb9844773aa1c2e3a873cc39462a8f1b336153d6cbb", - deprecated=True, - ) variant( "nodepfail", @@ -156,10 +74,13 @@ class Bazel(Package): depends_on("cxx", type="build") depends_on("java@21", when="@7.2:", type=("build", "run")) depends_on("java@11", when="@5.3:7.1", type=("build", "run")) - depends_on("java@8,11", when="@3.3:5.2", type=("build", "run")) - depends_on("java@8", when="@0.6:3.2", type=("build", "run")) + depends_on("java@8,11", when="@:5.2", type=("build", "run")) depends_on("python+pythoncmd", type=("build", "run")) + # https://github.com/bazelbuild/bazel/pull/27014 + # https://github.com/bazelbuild/bazel/pull/27160 + conflicts("os=tahoe", when="@:7.6.1,8:8.4.1") + patch( "https://github.com/bazelbuild/bazel/commit/05b1f061c9256ec0eb6fb71716ed93feb0c31b59.patch?full_index=1", sha256="e695708d20fbb84d94e1d2a896330de6222f9f20bb34ef65cdfe634d3454f06c", @@ -170,8 +91,7 @@ class Bazel(Package): patch("bazelruleclassprovider-0.25.patch") # Inject include paths - patch("unix_cc_configure-3.0.patch", when="@3:") - patch("unix_cc_configure-0.15.patch", when="@:2") + patch("unix_cc_configure-3.0.patch") # Set CC and CXX patch("compile-0.29.patch") @@ -198,6 +118,10 @@ class Bazel(Package): patch("unix_cc_configure_fj-0.29.1.patch", when="@:4%fj") patch("bazelruleclassprovider_fj-0.25.patch", when="%fj") + # https://github.com/bazelbuild/bazel/pull/27014 + # https://github.com/bazelbuild/bazel/pull/27160 + conflicts("os=tahoe", when="@:7.6,8:8.4.1") + # https://blog.bazel.build/2021/05/21/bazel-4-1.html conflicts("platform=darwin target=aarch64:", when="@:4.0") @@ -212,10 +136,13 @@ class Bazel(Package): # Patches for compiling various older bazels which had ICWYU violations revealed by # (but not unique to) GCC 11 header changes. These are derived from # https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/29084/ - patch("gcc11_1.patch", when="@:4") - patch("gcc11_2.patch", when="@:4") - patch("gcc11_3.patch", when="@:4") - patch("gcc11_4.patch", when="@4.1:4") + patch("gcc11_1.patch", when="@:4 %gcc@11:") + patch("gcc11_2.patch", when="@:4 %gcc@11:") + patch("gcc11_3.patch", when="@:4 %gcc@11:") + patch("gcc11_4.patch", when="@4.1:4 %gcc@11:") + + # https://github.com/bazelbuild/bazel/pull/27001 + patch("missing-headers-gcc15.patch", when="@:7.6 %gcc@15:") # Bazel-4.0.0 does not compile with gcc-11 # Newer versions of grpc and abseil dependencies are needed but are not in bazel-4.0.0 @@ -282,6 +209,11 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("BAZEL_LINKOPTS", "") env.set("BAZEL_LINKLIBS", "-lstdc++") + # https://github.com/bazelbuild/bazel/issues/27349 + # https://github.com/bazelbuild/bazel/issues/27401 + if self.spec.satisfies("@7.6.2:7"): + env.set("BAZEL_DEV_VERSION_OVERRIDE", str(self.version)) + args = ["--color=no", "--verbose_failures", f"--jobs={make_jobs}"] # Use local java installation @@ -304,7 +236,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: @run_before("install") def bootstrap(self): - bash = which("bash") + bash = which("bash", required=True) bash("./compile.sh") def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/bazel/unix_cc_configure-0.15.patch b/repos/spack_repo/builtin/packages/bazel/unix_cc_configure-0.15.patch deleted file mode 100644 index 74fd8bfb79b..00000000000 --- a/repos/spack_repo/builtin/packages/bazel/unix_cc_configure-0.15.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/tools/cpp/unix_cc_configure.bzl -+++ b/tools/cpp/unix_cc_configure.bzl -@@ -145,11 +145,18 @@ def get_escaped_cxx_inc_directories(repository_ctx, cc, lang_flag, additional_fl - else: - inc_dirs = result.stderr[index1 + 1:index2].strip() - -- return [ -+ default_inc_directories = [ - _prepare_include_path(repository_ctx, _cxx_inc_convert(p)) - for p in inc_dirs.split("\n") - ] - -+ env = repository_ctx.os.environ -+ if "SPACK_INCLUDE_DIRS" in env: -+ for path in env["SPACK_INCLUDE_DIRS"].split(":"): -+ default_inc_directories.append(path) -+ -+ return default_inc_directories -+ - def _is_compiler_option_supported(repository_ctx, cc, option): - """Checks that `option` is supported by the C compiler. Doesn't %-escape the option.""" - result = repository_ctx.execute([ diff --git a/repos/spack_repo/builtin/packages/bbmap/package.py b/repos/spack_repo/builtin/packages/bbmap/package.py index 798e3c35274..fb99d675ae3 100644 --- a/repos/spack_repo/builtin/packages/bbmap/package.py +++ b/repos/spack_repo/builtin/packages/bbmap/package.py @@ -2,28 +2,62 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.generic import Package +from spack_repo.builtin.build_systems.makefile import MakefilePackage from spack_repo.builtin.build_systems.sourceforge import SourceforgePackage from spack.package import * -class Bbmap(Package, SourceforgePackage): +class Bbmap(MakefilePackage, SourceforgePackage): """Short read aligner for DNA and RNA-seq data.""" - homepage = "https://sourceforge.net/projects/bbmap/" + homepage = "https://bbmap.org/tools/bbmap" sourceforge_mirror_path = "bbmap/BBMap_38.63.tar.gz" license("BSD-3-Clause-LBNL") + version("39.59", sha256="a657b6f04f35125b31e431317927d3adc0a3d3655a36014aceb0e3fceb0d4cb0") version("39.01", sha256="98608da50130c47f3abd095b889cc87f60beeb8b96169b664bc9d849abe093e6") version("38.63", sha256="089064104526c8d696164aefa067f935b888bc71ef95527c72a98c17ee90a01f") version("37.78", sha256="f2da19f64d2bfb7db4c0392212668b425c96a27c77bd9d88d8f0aea90a193509") version("37.36", sha256="befe76d7d6f3d0f0cd79b8a01004a2283bdc0b5ab21b0743e9dbde7c7d79e8a9") - depends_on("c", type="build") # generated + variant( + "usejni", + default=False, + description=( + "Compile the libbbtoolsjni library for accelerated versions of BBMap, Dedupe, " + "BBMerge, and IceCreamFinder" + ), + ) - depends_on("java") + # Building BBMap's jni libraries requires gcc, per the BBMap docs + depends_on("c", type="build", when="+usejni") + requires("%c=gcc", when="+usejni") + depends_on("java@8:", type=("build", "link", "run")) + + def edit(self, spec, prefix): + makefile = "makefile.linux" + + if spec.satisfies("platform=darwin"): + makefile = "makefile.osx" + + with working_dir(join_path(self.build_directory, "jni")): + rename(makefile, "Makefile") + + @when("+usejni") + def build(self, spec, prefix): + with working_dir(join_path(self.build_directory, "jni")): + # BBMap comes with a pre-compiled x86_64 library that must first be removed + make("clean") + make() + + @when("~usejni") + def build(self, spec, prefix): + with working_dir(join_path(self.build_directory, "jni")): + # When not building libbbtoolsjni, we should still remove the pre-compiled + # library for x86_64, as it may fail on other platforms. + make("clean") def install(self, spec, prefix): install_tree(".", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/bc/package.py b/repos/spack_repo/builtin/packages/bc/package.py index dec5af725b5..5b59a4f2d88 100644 --- a/repos/spack_repo/builtin/packages/bc/package.py +++ b/repos/spack_repo/builtin/packages/bc/package.py @@ -18,6 +18,7 @@ class Bc(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") + version("1.08.2", sha256="ae470fec429775653e042015edc928d07c8c3b2fc59765172a330d3d87785f86") version("1.07.1", sha256="62adfca89b0a1c0164c2cdca59ca210c1d44c3ffc46daf9931cf4942664cb02a") version("1.07", sha256="55cf1fc33a728d7c3d386cc7b0cb556eb5bacf8e0cb5a3fcca7f109fc61205ad") diff --git a/repos/spack_repo/builtin/packages/bcftools/package.py b/repos/spack_repo/builtin/packages/bcftools/package.py index 62ce764e56a..9bb32653789 100644 --- a/repos/spack_repo/builtin/packages/bcftools/package.py +++ b/repos/spack_repo/builtin/packages/bcftools/package.py @@ -21,6 +21,7 @@ class Bcftools(AutotoolsPackage): license("GPL-3.0-or-later") + version("1.22", sha256="f2ab9e2f605b1203a7e9cbfb0a3eb7689322297f8c34b45dc5237fe57d98489f") version("1.21", sha256="528a4cc1d3555368db75a700b22a3c95da893fd1827f6d304716dfd45ea4e282") version("1.20", sha256="312b8329de5130dd3a37678c712951e61e5771557c7129a70a327a300fda8620") version("1.19", sha256="782b5f1bc690415192231e82213b3493b047f45e630dc8ef6f154d6126ab3e68") @@ -43,7 +44,7 @@ class Bcftools(AutotoolsPackage): variant( "libgsl", default=False, - description="build options that require the GNU scientific " "library", + description="build options that require the GNU scientific library", ) variant( @@ -63,6 +64,7 @@ class Bcftools(AutotoolsPackage): depends_on("perl", when="@1.8:+perl-filters", type=("build", "run")) depends_on("htslib") + depends_on("htslib@1.22", when="@1.22") depends_on("htslib@1.21", when="@1.21") depends_on("htslib@1.20", when="@1.20") depends_on("htslib@1.19", when="@1.19") diff --git a/repos/spack_repo/builtin/packages/bcl2fastq2/cmake-macros.patch b/repos/spack_repo/builtin/packages/bcl2fastq2/cmake-macros.patch deleted file mode 100644 index a799ef68e58..00000000000 --- a/repos/spack_repo/builtin/packages/bcl2fastq2/cmake-macros.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/src/cmake/bcl2fastq_redist_macros.cmake 2017-05-11 15:03:27.652495488 -0700 -+++ b/src/cmake/bcl2fastq_redist_macros.cmake 2017-05-11 15:06:38.326745889 -0700 -@@ -30,6 +30,7 @@ - message(" Found: ${libname}, correct version ${version}") - message(" ${${libname}_UPPER}_INCLUDE_DIR = ${${${libname}_UPPER}_INCLUDE_DIR}") - message(" ${${libname}_UPPER}_LIBRARIES = ${${${libname}_UPPER}_LIBRARIES}") -+ set (HAVE_${${libname}_UPPER} true CACHE BOOL "package" FORCE) - else("${${${libname}_UPPER}_VERSION_STRING}" STREQUAL "${version}") - message(" Not found: ${libname}, incorrect version ( ${${${libname}_UPPER}_VERSION} )") - set(${${libname}_UPPER}_FOUND "FALSE") diff --git a/repos/spack_repo/builtin/packages/bcl2fastq2/cxxConfigure-aarch64.patch b/repos/spack_repo/builtin/packages/bcl2fastq2/cxxConfigure-aarch64.patch deleted file mode 100644 index 490b9fcd078..00000000000 --- a/repos/spack_repo/builtin/packages/bcl2fastq2/cxxConfigure-aarch64.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/src/cmake/cxxConfigure.cmake 2017-06-22 12:14:50.000000000 -0500 -+++ b/src/cmake/cxxConfigure.cmake 2023-09-25 11:50:55.819690648 -0500 -@@ -118,7 +118,7 @@ - set(BCL2FASTQ_DEP_LIB ${BCL2FASTQ_DEP_LIB} "${LIBEXSLT_LIBRARIES}" "${LIBXSLT_LIBRARIES}" "${LIBXML2_LIBRARIES}") - - #set (CMAKE_CXX_FLAGS "$ENV{CXX_FLAGS} $ENV{CXXFLAGS} -fopenmp -msse2 -Werror -Wall -Wextra -Wunused -Wno-long-long -Wsign-compare -Wpointer-arith" CACHE STRING "g++ flags" FORCE) --set (CMAKE_CXX_FLAGS "$ENV{CXX_FLAGS} $ENV{CXXFLAGS} -std=c++11 -fopenmp -msse2 -Wall -Wextra -Wunused -Wno-long-long -Wsign-compare -Wpointer-arith" CACHE STRING "g++ flags" FORCE) -+set (CMAKE_CXX_FLAGS "$ENV{CXX_FLAGS} $ENV{CXXFLAGS} -std=c++11 -fopenmp -Wall -Wextra -Wunused -Wno-long-long -Wsign-compare -Wpointer-arith" CACHE STRING "g++ flags" FORCE) - #set (CMAKE_CXX_FLAGS_DEBUG "-O0 -g -pg -fprofile-arcs -ftest-coverage -D_GLIBCXX_DEBUG" CACHE STRING "g++ flags" FORCE) - set (CMAKE_CXX_FLAGS_DEBUG "-O0 -std=c++11 -g -pg -fprofile-arcs -ftest-coverage" CACHE STRING "g++ flags" FORCE) - #set (CMAKE_CXX_FLAGS_DEBUG "-std=c++11 -O0 -g -pg -fprofile-arcs -ftest-coverage" CACHE STRING "g++ flags" FORCE) diff --git a/repos/spack_repo/builtin/packages/bcl2fastq2/cxxConfigure-cmake.patch b/repos/spack_repo/builtin/packages/bcl2fastq2/cxxConfigure-cmake.patch deleted file mode 100644 index 4452bb31c19..00000000000 --- a/repos/spack_repo/builtin/packages/bcl2fastq2/cxxConfigure-cmake.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/src/cmake/cxxConfigure.cmake 2017-05-11 16:55:14.745107845 -0700 -+++ b/src/cmake/cxxConfigure.cmake 2017-05-11 17:16:39.355981745 -0700 -@@ -101,6 +101,9 @@ - if((NOT HAVE_LIBXML2) OR (NOT HAVE_LIBXSLT)) - find_package_version(LibXml2 ${BCL2FASTQ_LIBXML2_VERSION}) - find_package_version(LibXslt ${BCL2FASTQ_LIBXSLT_VERSION}) -+ # macro isn't ONLY for redist, see its definition... -+ string(REGEX REPLACE "/include$" "" LIBEXSLT_HINT ${LIBXSLT_INCLUDE_DIR}) -+ find_library_redist(LIBEXSLT ${LIBEXSLT_HINT} libexslt/exslt.h exslt) - endif((NOT HAVE_LIBXML2) OR (NOT HAVE_LIBXSLT)) - - if((NOT HAVE_LIBXML2) OR (NOT HAVE_LIBXSLT)) diff --git a/repos/spack_repo/builtin/packages/bcl2fastq2/package.py b/repos/spack_repo/builtin/packages/bcl2fastq2/package.py deleted file mode 100644 index e0fa4ce4ede..00000000000 --- a/repos/spack_repo/builtin/packages/bcl2fastq2/package.py +++ /dev/null @@ -1,124 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import glob -import os - -from spack_repo.builtin.build_systems.generic import Package - -from spack.package import * - - -# This application uses cmake to build, but they wrap it with a -# configure script that performs dark magic. This package does it -# their way. -class Bcl2fastq2(Package): - """The bcl2fastq2 Conversion Software converts base - call (BCL) files from a sequencing run into FASTQ - files.""" - - homepage = "https://support.illumina.com/downloads/bcl2fastq-conversion-software-v2-20.html" - - license("BSD-3-Clause") - - version( - "2.20.0.422", sha256="8dd3044767d044aa4ce46de0de562b111c44e5b8b7348e04e665eb1b4f101fe3" - ) - version( - "2.19.1.403", sha256="cf13580f2c1ebcc3642b4d98a02ad01e41a44e644db7d31730f9767b25521806" - ) - - conflicts("platform=darwin", msg="malloc.h/etc requirements break build on macs") - - depends_on("c", type="build") - depends_on("cxx", type="build") - - # TODO: supporting boost >= 1.56.0 will require patching bcl2fastq/src/cxx/lib/io/Xml.cpp - # as described in https://gist.github.com/jblachly/f8dc0f328d66659d9ee005548a5a2d2e - depends_on("boost@1.54.0:1.55") - - depends_on( - "boost+chrono+date_time+filesystem+iostreams+program_options+regex" - "+serialization+system+timer+thread" - ) - with default_args(type="build"): - depends_on("cmake@2.8.9:") - depends_on("gmake") - depends_on("libxml2@2.7.8") - depends_on("libxslt@1.1.26~crypto") - depends_on("libgcrypt") - depends_on("zlib-api") - - # Their cmake macros don't set the flag when they find a library - # that makes them happy. - patch("cmake-macros.patch") - # After finding the libxslt bits, cmake still needs to wire in the - # libexslt bits. - patch("cxxConfigure-cmake.patch") - # -msse2 isn't valid for arm - patch("cxxConfigure-aarch64.patch", when="target=aarch64:") - - root_cmakelists_dir = "src" - - # v2.17.1.14 and v2.18.0.12 were available via HTTP. - # v2.19.1.403 is only available via ftp. - # v2.20.0.422 was available on ftp and is still accessible via HTTPS behind a login - # who knows what the future will hold. - def url_for_version(self, version): - url = "ftp://webdata2:webdata2@ussd-ftp.illumina.com/downloads/software/bcl2fastq/bcl2fastq2-v{0}-tar.zip" - if version.string == "2.19.1.403": - return url.format(version.up_to(3).dotted) - else: - return url.format(version.up_to(3).dashed) - - # Illumina tucks the source inside a gzipped tarball inside a zip - # file. We let the normal Spack expansion bit unzip the zip file, - # then follow it with a function untars the tarball after Spack's - # done it's bit. - def do_stage(self, mirror_only=False): - # wrap (decorate) the standard expand_archive step with a - # helper, then call the real do_stage(). - self.stage.expand_archive = self.unpack_it(self.stage.expand_archive) - super().do_stage(mirror_only) - - def unpack_it(self, f): - def wrap(): - f() # call the original expand_archive() - - # The tarfile should now reside in the well-known source - # directory (i.e., self.stage.source_path). - with working_dir(self.stage.path): - source_subdir = os.path.relpath(self.stage.source_path, self.stage.path) - files = glob.glob(os.path.join(source_subdir, "bcl2fastq*.tar.gz")) - if len(files) == 1: - # Rename the tarball so it resides in self.stage.path - # alongside the original zip file before unpacking it. - tarball = files[0] - basename = os.path.basename(tarball) - os.rename(tarball, basename) - tty.msg("Unpacking bcl2fastq2 tarball") - tar = which("tar") - tar("-xf", basename) - - # Rename the unpacked directory to the well-known - # source path self.stage.source_path. - os.rename("bcl2fastq", source_subdir) - tty.msg("Finished unpacking bcl2fastq2 tarball") - - elif self.stage.expanded: - # The unpacked files already reside in the "well known" - # source directory (i.e., self.stage.source_path). - tty.msg("The tarball has already been unpacked.") - - return wrap - - def install(self, spec, prefix): - bash = which("bash") - bash( - "src/configure", - "--prefix={0}".format(prefix), - "--with-cmake={0}".format(join_path(spec["cmake"].prefix.bin, "cmake")), - ) - make(parallel=True) - make("install") diff --git a/repos/spack_repo/builtin/packages/bdftopcf/package.py b/repos/spack_repo/builtin/packages/bdftopcf/package.py index ba49def8b98..7c21ded1ff1 100644 --- a/repos/spack_repo/builtin/packages/bdftopcf/package.py +++ b/repos/spack_repo/builtin/packages/bdftopcf/package.py @@ -18,9 +18,11 @@ class Bdftopcf(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/util/bdftopcf" xorg_mirror_path = "util/bdftopcf-1.0.5.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/util/bdftopcf.git" license("MIT") + version("1.1.2", sha256="31c88b9194c34ee35c433759d141eaca177dcdead835c8832021cc013324b924") version("1.1.1", sha256="3291df9910c006a0345f3eac485e2a5734bbb79a0d97bf1f2b4cddad48fb1bc4") version("1.1", sha256="699d1a62012035b1461c7f8e3f05a51c8bd6f28f348983249fb89bbff7309b47") version("1.0.5", sha256="78a5ec945de1d33e6812167b1383554fda36e38576849e74a9039dc7364ff2c3") diff --git a/repos/spack_repo/builtin/packages/bdw_gc/package.py b/repos/spack_repo/builtin/packages/bdw_gc/package.py index de59f420c00..8c20c87c770 100644 --- a/repos/spack_repo/builtin/packages/bdw_gc/package.py +++ b/repos/spack_repo/builtin/packages/bdw_gc/package.py @@ -12,10 +12,11 @@ class BdwGc(AutotoolsPackage): collecting replacement for C malloc or C++ new.""" homepage = "https://www.hboehm.info/gc/" - url = "https://github.com/ivmai/bdwgc/releases/download/v8.2.8/gc-8.2.8.tar.gz" + url = "https://github.com/bdwgc/bdwgc/releases/download/v8.2.12/gc-8.2.12.tar.gz" license("Xerox") + version("8.2.12", sha256="42e5194ad06ab6ffb806c83eb99c03462b495d979cda782f3c72c08af833cd4e") version("8.2.8", sha256="7649020621cb26325e1fb5c8742590d92fb48ce5c259b502faf7d9fb5dabb160") version("8.2.6", sha256="b9183fe49d4c44c7327992f626f8eaa1d8b14de140f243edb1c9dcff7719a7fc") version("8.2.4", sha256="3d0d3cdbe077403d3106bb40f0cbb563413d6efdbb2a7e1cd6886595dec48fc2") @@ -41,9 +42,10 @@ class BdwGc(AutotoolsPackage): multi=False, description="Multithreading support", ) + variant("cxx", default=False, description="Enable C++ support") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("libatomic-ops", when="+libatomic-ops") @@ -54,6 +56,7 @@ def configure_args(self): "--enable-static", "--with-libatomic-ops={0}".format("yes" if "+libatomic-ops" in spec else "no"), "--enable-threads={0}".format(spec.variants["threads"].value), + "--enable-cplusplus={0}".format("yes" if "+cxx" in spec else "no"), ] return config_args diff --git a/repos/spack_repo/builtin/packages/bear/package.py b/repos/spack_repo/builtin/packages/bear/package.py index 6c73932087e..ace796e9c19 100644 --- a/repos/spack_repo/builtin/packages/bear/package.py +++ b/repos/spack_repo/builtin/packages/bear/package.py @@ -18,6 +18,9 @@ class Bear(CMakePackage): license("GPL-3.0-or-later") + version("3.1.6", sha256="99cd891eec6e89b734d7cafe0e623dd8c2f27d8cbf3ee9bc4807e69e5c8fb55c") + version("3.1.5", sha256="4ac7b041222dcfc7231c6570d5bd76c39eaeda7a075ee2385b84256e7d659733") + version("3.1.4", sha256="a1105023795b3e1b9abc29c088cdec5464cc9f3b640b5078dc90a505498da5ff") version("3.1.3", sha256="8314438428069ffeca15e2644eaa51284f884b7a1b2ddfdafe12152581b13398") version("3.1.2", sha256="5f94e98480bd8576a64cd1d59649f34b09b4e02a81f1d983c92af1113e061fc3") version("3.1.1", sha256="52f8ee68ee490e5f2714eebad9e1288e89c82b9fd7bf756f600cff03de63a119") diff --git a/repos/spack_repo/builtin/packages/beast1/package.py b/repos/spack_repo/builtin/packages/beast1/package.py index 131b3b9dbea..f85f8925eff 100644 --- a/repos/spack_repo/builtin/packages/beast1/package.py +++ b/repos/spack_repo/builtin/packages/beast1/package.py @@ -23,9 +23,8 @@ class Beast1(Package): depends_on("java", type="run") depends_on("libbeagle", type=("build", "link", "run"), when="+beagle") - def url_for_version(self, ver): - base = "https://github.com/beast-dev/beast-mcmc/releases/download" - return "{0}/v{1}/BEASTv{1}.tgz".format(base, ver.dotted) + def url_for_version(self, version): + return f"https://github.com/beast-dev/beast-mcmc/releases/download/v{version.dotted}/BEASTv{version.dotted}.tgz" def setup_run_environment(self, env: EnvironmentModifications) -> None: env.set("BEAST1", self.prefix) diff --git a/repos/spack_repo/builtin/packages/beast2/package.py b/repos/spack_repo/builtin/packages/beast2/package.py index c68096f37a4..51f2e60c5dd 100644 --- a/repos/spack_repo/builtin/packages/beast2/package.py +++ b/repos/spack_repo/builtin/packages/beast2/package.py @@ -21,7 +21,11 @@ class Beast2(Package): maintainers("snehring") license("LGPL-2.1-or-later") - + version( + "2.7.7", + sha256="a866f3e5da4ef890a042f01849e32322aa0a8e16e3e1cb2c59f823de2611781a", + url="https://github.com/CompEvol/beast2/releases/download/v2.7.7/BEAST.v2.7.7.Linux.x86.tgz", + ) version( "2.7.4", sha256="f5086c74a0337190ae3459ef018468fc6b2eff68ae2b53fb5c96eb7b5df84004", @@ -44,12 +48,16 @@ def patch(self): # handle javafx stuff if self.spec.satisfies("@2.7.0:"): javafx = "--module-path {}".format(self.spec["javafx"].prefix.lib) - modules = "--add-modules javafx.controls" + modules = "--add-modules javafx.controls,javafx.fxml" with working_dir("bin"): for i in find(".", "*"): filter_file( r"(beast\.pkgmgmt.*\b)|(viz.*\b)", "{0} {1} \\1".format(javafx, modules), i ) + # remove exports of JAVA_HOME + with working_dir("bin"): + for i in find(".", "*"): + filter_file(r"^export\s+JAVA_HOME=.*$", "", i) def setup_run_environment(self, env: EnvironmentModifications) -> None: env.set("BEAST", self.prefix) @@ -59,7 +67,7 @@ def install(self, spec, prefix): install_tree("examples", join_path(self.prefix, "examples")) install_tree("images", join_path(self.prefix, "images")) install_tree("lib", prefix.lib) - if spec.satisfies("@:2.6.4"): + if spec.satisfies("@:2.6.7"): template_dir = "templates" else: template_dir = "fxtemplates" diff --git a/repos/spack_repo/builtin/packages/beast_tracer/package.py b/repos/spack_repo/builtin/packages/beast_tracer/package.py index 3d5d3448d9e..6cfccbdedbb 100644 --- a/repos/spack_repo/builtin/packages/beast_tracer/package.py +++ b/repos/spack_repo/builtin/packages/beast_tracer/package.py @@ -25,7 +25,7 @@ class BeastTracer(Package): depends_on("java", type=("build", "run")) def install(self, spec, prefix): - ant = which("ant") + ant = which("ant", required=True) ant("dist") mkdirp(prefix.bin) diff --git a/repos/spack_repo/builtin/packages/beatnik/package.py b/repos/spack_repo/builtin/packages/beatnik/package.py index 323aa716469..745757d6ce0 100644 --- a/repos/spack_repo/builtin/packages/beatnik/package.py +++ b/repos/spack_repo/builtin/packages/beatnik/package.py @@ -35,14 +35,13 @@ class Beatnik(CMakePackage, CudaPackage, ROCmPackage): depends_on("mpi") with when("+cuda"): depends_on("mpich +cuda", when="^[virtuals=mpi] mpich") - depends_on("mvapich +cuda", when="^[virtuals=mpi] mvapich") - depends_on("mvapich2 +cuda", when="^[virtuals=mpi] mvapich2") - depends_on("mvapich2-gdr +cuda", when="^[virtuals=mpi] mvapich2-gdr") + depends_on("mvapich-plus +cuda", when="^[virtuals=mpi] mvapich-plus") depends_on("openmpi +cuda", when="^[virtuals=mpi] openmpi") with when("+rocm"): depends_on("mpich +rocm", when="^[virtuals=mpi] mpich") - depends_on("mvapich2-gdr +rocm", when="^[virtuals=mpi] mvapich2-gdr") + depends_on("mvapich-plus +rocm", when="^[virtuals=mpi] mvapich-plus") + depends_on("openmpi +rocm", when="^[virtuals=mpi] openmpi@5:") # Kokkos dependencies depends_on("kokkos @4:") diff --git a/repos/spack_repo/builtin/packages/bedops/package.py b/repos/spack_repo/builtin/packages/bedops/package.py index c3c39f081da..3c3f3c4d802 100644 --- a/repos/spack_repo/builtin/packages/bedops/package.py +++ b/repos/spack_repo/builtin/packages/bedops/package.py @@ -18,8 +18,12 @@ class Bedops(MakefilePackage): maintainers("jacorvar") - license("bzip2-1.0.6") + # Regarding the peculiar license() directive: bedops is licensed under the GPL v2, + # but the bedops source bundles source for bzlip2, jansson, and zlib, and its + # LICENSE has the licenses for those source codes appended. + license("GPL-2.0-only AND bzip2-1.0.6 AND MIT AND Zlib") + version("2.4.42", sha256="9daa0c098e37490a07f84664d2c61ff8909689995cf7e1673d259ccd4f1c453c") version("2.4.41", sha256="3b868c820d59dd38372417efc31e9be3fbdca8cf0a6b39f13fb2b822607d6194") version("2.4.40", sha256="8c01db76669dc58c595e2e1b9bdb6d462f3363fc569b15c460a63a63b8b6bf30") version("2.4.39", sha256="f8bae10c6e1ccfb873be13446c67fc3a54658515fb5071663883f788fc0e4912") @@ -30,6 +34,8 @@ class Bedops(MakefilePackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + depends_on("python", type="run") + @property def build_targets(self): # avoid static linking with glibc for all invocations diff --git a/repos/spack_repo/builtin/packages/benchmark/package.py b/repos/spack_repo/builtin/packages/benchmark/package.py index b2b495ea917..a67890c88c5 100644 --- a/repos/spack_repo/builtin/packages/benchmark/package.py +++ b/repos/spack_repo/builtin/packages/benchmark/package.py @@ -20,6 +20,7 @@ class Benchmark(CMakePackage): # first properly installed CMake config packages in # 1.2.0 release: https://github.com/google/benchmark/issues/363 version("main", branch="main") + version("1.9.5", sha256="9631341c82bac4a288bef951f8b26b41f69021794184ece969f8473977eaa340") version("1.9.4", sha256="b334658edd35efcf06a99d9be21e4e93e092bd5f95074c1673d5c8705d95c104") version("1.9.3", sha256="b94263b018042007eb53f79639f21ae47800808c73cf1b7df85622b6e2b1aa32") version("1.9.2", sha256="409075176168dc46bbb81b74c1b4b6900385b5d16bfc181d678afb060d928bd3") diff --git a/repos/spack_repo/builtin/packages/berkeley_db/package.py b/repos/spack_repo/builtin/packages/berkeley_db/package.py index 52603e77386..e8f6a87f9ea 100644 --- a/repos/spack_repo/builtin/packages/berkeley_db/package.py +++ b/repos/spack_repo/builtin/packages/berkeley_db/package.py @@ -18,21 +18,12 @@ class BerkeleyDb(AutotoolsPackage): executables = [r"^db_load$"] # One should be sufficient - license("UPL-1.0") + license("AGPL-3.0-only OR LicenseRef-Oracle-Proprietary", when="@6.0.20:") + license("Sleepycat", when="@:6.0.19", checked_by="alecbcs") version("18.1.40", sha256="0cecb2ef0c67b166de93732769abdeba0555086d51de1090df325e18ee8da9c8") - version( - "18.1.32", - sha256="fa1fe7de9ba91ad472c25d026f931802597c29f28ae951960685cde487c8d654", - deprecated=True, - ) version("6.2.32", sha256="a9c5e2b004a5777aa03510cfe5cd766a4a3b777713406b02809c17c8e0e7a8fb") version("6.1.29", sha256="b3c18180e4160d97dd197ba1d37c19f6ea2ec91d31bbfaf8972d99ba097af17d") - version( - "6.0.35", - sha256="24421affa8ae436fe427ae4f5f2d1634da83d3d55a5ad6354a98eeedb825de55", - deprecated=True, - ) version("5.3.28", sha256="e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628") depends_on("c", type="build") # generated @@ -118,7 +109,7 @@ def check_exe_version(self, exe): if not os.path.exists(installed_exe): raise SkipTest(f"{exe} is not installed") - exe = which(installed_exe) + exe = which(installed_exe, required=True) out = exe("-V", output=str.split, error=str.split) assert self.spec.version.string in out diff --git a/repos/spack_repo/builtin/packages/berkeleygw/package.py b/repos/spack_repo/builtin/packages/berkeleygw/package.py index 2cf1d1178a8..dacad65ae9e 100644 --- a/repos/spack_repo/builtin/packages/berkeleygw/package.py +++ b/repos/spack_repo/builtin/packages/berkeleygw/package.py @@ -110,7 +110,7 @@ class Berkeleygw(MakefilePackage): def edit(self, spec, prefix): # archive is a tar file, despite the .gz expension - tar = which("tar") + tar = which("tar", required=True) tar("-x", "-o", "-f", self.stage.archive_file, "--strip-components=1") # get generic arch.mk template diff --git a/repos/spack_repo/builtin/packages/bfs/package.py b/repos/spack_repo/builtin/packages/bfs/package.py index afa599a1c5c..36a176061f8 100644 --- a/repos/spack_repo/builtin/packages/bfs/package.py +++ b/repos/spack_repo/builtin/packages/bfs/package.py @@ -19,9 +19,8 @@ class Bfs(MakefilePackage): license("0BSD") - sanity_check_is_file = ["bin/bfs"] - version("main", branch="main") + version("4.1", sha256="7a2ccafc87803b6c42009019e0786cb1307f492c2d61d2fcb0be5dcfdd0049da") version("4.0.6", sha256="446a0a1a5bcbf8d026aab2b0f70f3d99c08e5fe18d3c564a8b7d9acde0792112") version("4.0.5", sha256="f7d9ebff00d9a010a5d6cc9b7bf1933095d7e5c0b11a8ec48c96c7ed8f993e5f") version("4.0.4", sha256="209da9e9f43d8fe30fd689c189ea529e9d6b5358ce84a63a44721003aea3e1ca") @@ -32,28 +31,37 @@ class Bfs(MakefilePackage): version("3.0.2", sha256="d3456a9aeecc031064db0dbe012e55a11eb97be88d0ab33a90e570fe66457f92") version("3.0.1", sha256="a38bb704201ed29f4e0b989fb2ab3791ca51c3eff90acfc31fff424579bbf962") - # Build dependencies depends_on("c", type="build") + depends_on("sed", type="build") + + depends_on("oniguruma") - # System dependencies depends_on("acl", when="platform=linux") depends_on("attr", when="platform=linux") depends_on("libcap", when="platform=linux") depends_on("liburing@2.4:", when="platform=linux @3.1:") - # Required dependencies - depends_on("oniguruma") + # Sanity checks + sanity_check_is_file = ["bin/bfs"] + sanity_check_is_dir = ["share/man/man1"] @run_before("build", when="@4:") def configure(self): + """Configure for version 4.0 and later.""" args = ["--enable-release", f"--prefix={self.prefix}"] configure_exe = Executable("./configure") configure_exe(*args) - def install(self, spec, prefix): - """Install the package.""" - if spec.satisfies("@:3"): - make("install", f"PREFIX={prefix}") - else: - make("install") + @property + def install_targets(self): + """Return install targets based on version.""" + if self.spec.satisfies("@:3"): + return ["install", f"PREFIX={self.prefix}"] + return ["install"] + + def test_version(self): + """Check bfs can run and report its version.""" + bfs = which(self.prefix.bin.bfs) + out = bfs("--version", output=str.split, error=str.split) + assert str(self.spec.version) in out diff --git a/repos/spack_repo/builtin/packages/bgen/dont-build-with-bundled-deps.patch b/repos/spack_repo/builtin/packages/bgen/dont-build-with-bundled-deps.patch new file mode 100644 index 00000000000..e284b015b52 --- /dev/null +++ b/repos/spack_repo/builtin/packages/bgen/dont-build-with-bundled-deps.patch @@ -0,0 +1,97 @@ +diff --git a/wscript b/wscript +index a6385d9..1a17fc0 100644 +--- a/wscript ++++ b/wscript +@@ -24,6 +24,8 @@ def configure( cfg ): + raise Exception( "Unknown value for --mode, please specify --mode=debug or --mode=release" ) + + cfg.check_cxx( lib='z', uselib_store='zlib', msg = 'zlib' ) ++ cfg.check_cxx( lib='zstd', uselib_store='zstd', msg = 'zstd' ) ++ cfg.check_cxx( lib='sqlite3', uselib_store='sqlite', msg = 'sqlite' ) + if platform.system() != "Darwin": + cfg.check_cxx( lib='rt', uselib_store='rt', msg = 'rt' ) + cfg.check_cxx( lib='pthread', uselib_store='pthread', msg = 'pthread' ) +@@ -63,7 +65,7 @@ def build( bld ): + use = 'zlib zstd sqlite3 db', + export_includes = 'genfile/include' + ) +- bld.recurse( [ '3rd_party', 'appcontext', 'genfile', 'db', 'apps', 'example', 'test', 'R' ] ) ++ bld.recurse( [ 'appcontext', 'genfile', 'db', 'apps', 'example', 'test', 'R' ] ) + # Copy files into rbgen package directory + for source in bgen_sources: + bld( rule = 'cp ${SRC} ${TGT}', source = source, target = 'R/rbgen/src/bgen/' + os.path.basename( source.abspath() ), always = True ) +@@ -125,66 +127,19 @@ class ReleaseBuilder: + rbgen_dir = os.path.join( tempdir, release_stub ) + shutil.copytree( 'R/package/', rbgen_dir ) + os.makedirs( os.path.join( rbgen_dir, "src", "include" )) +- os.makedirs( os.path.join( rbgen_dir, "src", "include", "boost" )) +- os.makedirs( os.path.join( rbgen_dir, "src", "include", "zstd-1.1.0" )) + os.makedirs( os.path.join( rbgen_dir, "src", "db" )) + os.makedirs( os.path.join( rbgen_dir, "src", "bgen" )) +- os.makedirs( os.path.join( rbgen_dir, "src", "boost" )) +- os.makedirs( os.path.join( rbgen_dir, "src", "sqlite3" )) +- os.makedirs( os.path.join( rbgen_dir, "src", "zstd-1.1.0" )) + + # Copy source files in + from glob import glob + for filename in glob( 'src/*.cpp' ): + shutil.copy( filename, os.path.join( rbgen_dir, "src", "bgen", os.path.basename( filename ) ) ) + +- for filename in glob( 'db/src/*.cpp' ): +- shutil.copy( filename, os.path.join( rbgen_dir, "src", "db", os.path.basename( filename ) ) ) +- +- for filename in glob( '3rd_party/sqlite3/sqlite3/sqlite3.c' ): +- shutil.copy( filename, os.path.join( rbgen_dir, "src", "sqlite3", os.path.basename( filename ) ) ) +- +- for filename in glob( '3rd_party/zstd-1.1.0/lib/common/*.c' ) + glob( '3rd_party/zstd-1.1.0/lib/compress/*.c' ) + glob( '3rd_party/zstd-1.1.0/lib/decompress/*.c' ): +- shutil.copy( filename, os.path.join( rbgen_dir, "src", "zstd-1.1.0", os.path.basename( filename ) ) ) +- +- boostGlobs = [ +- 'libs/system/src/*.cpp', +- 'libs/thread/src/*.cpp', +- 'libs/thread/src/*.inl', +- 'libs/thread/src/pthread/once_atomic.cpp', +- 'libs/thread/src/pthread/thread.cpp', +- 'libs/thread/src/pthread/timeconv.inl', +- 'libs/filesystem/src/*.cpp', +- 'libs/date_time/src/posix_time/*.cpp', +- 'libs/timer/src/*.cpp', +- 'libs/chrono/src/*.cpp', +- ] +- +- for pattern in boostGlobs: +- for filename in glob( '3rd_party/boost_1_55_0/%s' % pattern ): +- shutil.copy( filename, os.path.join( rbgen_dir, "src", "boost", os.path.basename( filename ) ) ) +- + include_paths = [ +- "3rd_party/boost_1_55_0/boost/", +- "3rd_party/zstd-1.1.0/", +- "3rd_party/sqlite3/", + "genfile/include/genfile", + "db/include/db" + ] + +- boostHeaderLibs = [ +- 'system', +- 'thread', +- 'filesystem', +- 'date_time', +- 'timer', +- 'chrono', +- 'preprocessor', +- 'function', +- 'optional', +- 'mpl' +- ] +- + for include_path in include_paths: + for root, path, filenames in os.walk( include_path ): + self.makedirs( os.path.join( rbgen_dir, "src", "include", root )) +@@ -198,7 +153,6 @@ class ReleaseBuilder: + ): + dest = os.path.join( rbgen_dir, "src", "include", root, name ) + shutil.copy( fullname, os.path.join( rbgen_dir, "src", "include", fullname )) +- #print "Copied \"%s\"." % fullname + + tarball = self.create_tarball( 'rbgen', release_stub, tempdir ) + return os.path.join( tempdir, tarball ) diff --git a/repos/spack_repo/builtin/packages/bgen/package.py b/repos/spack_repo/builtin/packages/bgen/package.py index e740e5897b1..a939194dc20 100644 --- a/repos/spack_repo/builtin/packages/bgen/package.py +++ b/repos/spack_repo/builtin/packages/bgen/package.py @@ -20,6 +20,7 @@ class Bgen(WafPackage): homepage = "https://enkre.net/cgi-bin/code/bgen" license("BSL-1.0") + maintainers("teaguesterling") version( "1.1.7", @@ -27,5 +28,91 @@ class Bgen(WafPackage): url="https://enkre.net/cgi-bin/code/bgen/tarball/6ac2d582f9/BGEN-6ac2d582f9.tar.gz", ) + variant("headers", default=True, description="Install headers") + variant("libs", default=True, description="Install static libraries") + variant("bundled-deps", default=False, description="Use bundled 3rd party dependencies") + variant("full-source", default=False, description="Install source tree as well") + depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + depends_on("fossil", type="build") + depends_on("zlib-api") + + with when("~bundled-deps"): + # Upper bound of boost not known. Doesn't work with 1.85 + depends_on( + "boost@1.55:+chrono+date_time+exception+filesystem+math+system+thread+timer+shared" + ) + depends_on("sqlite@3") + depends_on("zstd libs=shared,static") + patch("dont-build-with-bundled-deps.patch") + + def flag_handler(self, name, flags): + # Version 1.1.7 not compatible with C++17 + if name == "cxxflags": + flags.append("-std=c++11") + elif name == "ldflags": + deps = ["zlib-api"] + if self.spec.satisfies("~bundled-deps"): + deps += ["boost", "zstd", "sqlite"] + for dep in deps: + flags.append(self.spec[dep].libs.ld_flags) + return (flags, None, None) + + def patch(self): + filter_file("-Wno-c++11-long-long", "", "wscript", string=True) # Creates lots of noise + + if self.spec.satisfies("^boost@1.56:"): + filter_file( + "(total_count == 0)", + "(*total_count == 0)", + "appcontext/src/CmdLineUIContext.cpp", + string=True, + ) + + # Update build script to remove references to bundled dependencies + if self.spec.satisfies("~bundled-deps"): + for dep, old_include in [ + ("boost", '"3rd_party/boost_1_55_0/boost/"'), + ("zstd", '"3rd_party/zstd-1.1.0/"'), + ("sqlite", '"3rd_party/sqlite3/"'), + ]: + header_dirs = self.spec[dep].headers.directories + new_include = ", ".join(f'"{d}"' for d in header_dirs) + filter_file(old_include, new_include, "wscript") + filter_file( + '"sqlite3/sqlite3.h"', + "", + "db/include/db/SQLite3Connection.hpp", + "db/include/db/SQLite3Statement.hpp", + "db/include/db/SQLStatement.hpp", + "db/src/SQLite3Statement.cpp", + "db/src/SQLStatement.cpp", + string=True, + ) + + def install(self, spec, prefix): + super().install(spec, prefix) + if spec.satisfies("+headers"): + for src in ["appcontext", "db", "genfile"]: + include_dir = join_path(self.stage.source_path, src, "include") + src_dir = join_path(self.stage.source_path, src, "src") + code_dir = join_path(prefix.src.bgen, src) + install_tree(include_dir, prefix.include.bgen) + if src not in ["genfile"]: + install_tree(src_dir, code_dir) + + if spec.satisfies("+libs"): + mkdirp(prefix.lib.bgen.db) + build_dir = join_path(self.stage.source_path, "build") + install(join_path(build_dir, "libbgen.a"), prefix.lib.bgen) + install(join_path(build_dir, "db/libdb.a"), prefix.lib.bgen.db) + + if spec.satisfies("+full-source"): + src_dir = join_path(prefix.opt.src.bgen) + makedirs(src_dir) + install_tree(self.stage.source_path, src_dir) + + @property + def bgen_static_lib_dir(self): + return self.install.lib.bgen diff --git a/repos/spack_repo/builtin/packages/bigdft_core/package.py b/repos/spack_repo/builtin/packages/bigdft_core/package.py index 957362bc9c3..96988a9ec3b 100644 --- a/repos/spack_repo/builtin/packages/bigdft_core/package.py +++ b/repos/spack_repo/builtin/packages/bigdft_core/package.py @@ -19,7 +19,8 @@ class BigdftCore(AutotoolsPackage, CudaPackage): version("develop", branch="devel") version("1.9.5", sha256="5fe51e92bb746569207295feebbcd154ce4f1b364a3981bace75c45e983b2741") version("1.9.4", sha256="fa22115e6353e553d2277bf054eb73a4710e92dfeb1ed9c5bf245337187f393d") - # version("1.9.3", sha256="f5f3da95d7552219f94366b4d2a524b2beac988fb2921673a65a128f9a8f0489") # broken + # broken + # version("1.9.3", sha256="f5f3da95d7552219f94366b4d2a524b2beac988fb2921673a65a128f9a8f0489") version("1.9.2", sha256="dc9e49b68f122a9886fa0ef09970f62e7ba21bb9ab1b86be9b7d7e22ed8fbe0f") version("1.9.1", sha256="3c334da26d2a201b572579fc1a7f8caad1cbf971e848a3e10d83bc4dc8c82e41") version("1.9.0", sha256="4500e505f5a29d213f678a91d00a10fef9dc00860ea4b3edf9280f33ed0d1ac8") diff --git a/repos/spack_repo/builtin/packages/bigdft_spred/package.py b/repos/spack_repo/builtin/packages/bigdft_spred/package.py index c8206fb93d2..d71b1399cee 100644 --- a/repos/spack_repo/builtin/packages/bigdft_spred/package.py +++ b/repos/spack_repo/builtin/packages/bigdft_spred/package.py @@ -18,7 +18,8 @@ class BigdftSpred(AutotoolsPackage): version("develop", branch="devel") version("1.9.5", sha256="5fe51e92bb746569207295feebbcd154ce4f1b364a3981bace75c45e983b2741") version("1.9.4", sha256="fa22115e6353e553d2277bf054eb73a4710e92dfeb1ed9c5bf245337187f393d") - # version("1.9.3", sha256="f5f3da95d7552219f94366b4d2a524b2beac988fb2921673a65a128f9a8f0489") # bigdft-core broken + # bigdft-core broken + # version("1.9.3", sha256="f5f3da95d7552219f94366b4d2a524b2beac988fb2921673a65a128f9a8f0489") version("1.9.2", sha256="dc9e49b68f122a9886fa0ef09970f62e7ba21bb9ab1b86be9b7d7e22ed8fbe0f") version("1.9.1", sha256="3c334da26d2a201b572579fc1a7f8caad1cbf971e848a3e10d83bc4dc8c82e41") version("1.9.0", sha256="4500e505f5a29d213f678a91d00a10fef9dc00860ea4b3edf9280f33ed0d1ac8") diff --git a/repos/spack_repo/builtin/packages/binutils/cr16.patch b/repos/spack_repo/builtin/packages/binutils/cr16.patch deleted file mode 100644 index 2727c70b238..00000000000 --- a/repos/spack_repo/builtin/packages/binutils/cr16.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- old/opcodes/cr16-dis.c 2014-10-14 03:32:04.000000000 -0400 -+++ new/opcodes/cr16-dis.c 2016-01-14 21:54:26.000000000 -0500 -@@ -78,7 +78,7 @@ - REG_ARG_TYPE; - - /* Current opcode table entry we're disassembling. */ --const inst *instruction; -+extern const inst *instruction; - /* Current instruction we're disassembling. */ - ins cr16_currInsn; - /* The current instruction is read into 3 consecutive words. */ -@@ -86,12 +86,12 @@ - /* Contains all words in appropriate order. */ - ULONGLONG cr16_allWords; - /* Holds the current processed argument number. */ --int processing_argument_number; -+extern int processing_argument_number; - /* Nonzero means a IMM4 instruction. */ - int imm4flag; - /* Nonzero means the instruction's original size is - incremented (escape sequence is used). */ --int size_changed; -+extern int size_changed; - - - /* Print the constant expression length. */ diff --git a/repos/spack_repo/builtin/packages/binutils/package.py b/repos/spack_repo/builtin/packages/binutils/package.py index a0e9bbff91a..bdb280c64e5 100644 --- a/repos/spack_repo/builtin/packages/binutils/package.py +++ b/repos/spack_repo/builtin/packages/binutils/package.py @@ -28,6 +28,9 @@ class Binutils(AutotoolsPackage, GNUMirrorPackage): "GPL-2.0-or-later AND LGPL-2.1-or-later AND GPL-3.0-or-later AND LGPL-3.0-or-later", checked_by="tgamblin", ) + version("2.46.0", sha256="0f3152632a2a9ce066f20963e9bb40af7cf85b9b6c409ed892fd0676e84ecd12") + version("2.45.1", sha256="860daddec9085cb4011279136fc8ad29eb533e9446d7524af7f517dd18f00224") + version("2.45", sha256="1393f90db70c2ebd785fb434d6127f8888c559d5eeb9c006c354b203bab3473e") version("2.44", sha256="f66390a661faa117d00fab2e79cf2dc9d097b42cc296bf3f8677d1e7b452dc3a") version("2.43.1", sha256="becaac5d295e037587b63a42fad57fe3d9d7b83f478eb24b67f9eec5d0f1872f") version("2.43", sha256="fed3c3077f0df7a4a1aa47b080b8c53277593ccbb4e5e78b73ffb4e3f265e750") @@ -46,56 +49,12 @@ class Binutils(AutotoolsPackage, GNUMirrorPackage): version("2.32", sha256="de38b15c902eb2725eac6af21183a5f34ea4634cb0bcef19612b50e5ed31072d") version("2.31.1", sha256="ffcc382695bf947da6135e7436b8ed52d991cf270db897190f19d6f9838564d0") version("2.30", sha256="efeade848067e9a03f1918b1da0d37aaffa0b0127a06b5e9236229851d9d0c09") - version( - "2.29.1", - sha256="1509dff41369fb70aed23682351b663b56db894034773e6dbf7d5d6071fc55cc", - deprecated=True, - ) - version( - "2.28", - sha256="6297433ee120b11b4b0a1c8f3512d7d73501753142ab9e2daa13c5a3edd32a72", - deprecated=True, - ) - version( - "2.27", - sha256="369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88", - deprecated=True, - ) - version( - "2.26", - sha256="c2ace41809542f5237afc7e3b8f32bb92bc7bc53c6232a84463c423b0714ecd9", - deprecated=True, - ) - version( - "2.25.1", - sha256="b5b14added7d78a8d1ca70b5cb75fef57ce2197264f4f5835326b0df22ac9f22", - deprecated=True, - ) - version( - "2.25", - sha256="22defc65cfa3ef2a3395faaea75d6331c6e62ea5dfacfed3e2ec17b08c882923", - deprecated=True, - ) - version( - "2.24", - sha256="e5e8c5be9664e7f7f96e0d09919110ab5ad597794f5b1809871177a0f0f14137", - deprecated=True, - ) - version( - "2.23.2", - sha256="fe914e56fed7a9ec2eb45274b1f2e14b0d8b4f41906a5194eac6883cfe5c1097", - deprecated=True, - ) - version( - "2.20.1", - sha256="71d37c96451333c5c0b84b170169fdcb138bbb27397dc06281905d9717c8ed64", - deprecated=True, - ) variant("plugins", default=True, description="enable plugins, needed for gold linker") # When you build ld.gold you automatically get ld, even when you add the # --disable-ld flag - variant("gold", default=False, when="+ld", description="build the gold linker") + # The gold linker was removed in v2.44. + variant("gold", default=False, when="@:2.43 +ld", description="Build the gold linker.") variant("libiberty", default=False, description="Also install libiberty.") variant("nls", default=False, description="Enable Native Language Support") variant("headers", default=False, description="Install extra headers (e.g. ELF)") @@ -122,7 +81,6 @@ class Binutils(AutotoolsPackage, GNUMirrorPackage): default="zlib", values=(conditional("zstd", when="@2.40:"), "zlib", "none"), description="Enable debug section compression by default in ld, gas, gold.", - when="@2.26:", ) variant( "debuginfod", @@ -131,9 +89,6 @@ class Binutils(AutotoolsPackage, GNUMirrorPackage): when="@2.34:", ) - patch("cr16.patch", when="@:2.29.1") - patch("update_symbol-2.26.patch", when="@2.26") - # 2.36 is missing some dependencies, this patch allows a parallel build. # https://sourceware.org/bugzilla/show_bug.cgi?id=27482 patch("parallel-build-2.36.patch", when="@2.36") @@ -157,11 +112,6 @@ class Binutils(AutotoolsPackage, GNUMirrorPackage): # PGO runs tests, which requires `runtest` from dejagnu depends_on("dejagnu", when="+pgo", type="build") - # Prior to 2.30, gold did not distribute the generated files and - # thus needs bison, even for a one-time build. - depends_on("m4", type="build", when="@:2.29 +gold") - depends_on("bison", type="build", when="@:2.29 +gold") - # 2.34:2.40 needs makeinfo due to a bug, see: # https://sourceware.org/bugzilla/show_bug.cgi?id=25491 # https://sourceware.org/bugzilla/show_bug.cgi?id=28909 @@ -265,7 +215,7 @@ def test_binaries(self): if not os.path.exists(installed_exe): raise SkipTest("{0} is not installed".format(_bin)) - exe = which(installed_exe) + exe = which(installed_exe, required=True) out = exe("--version", output=str.split, error=str.split) assert version in out @@ -287,6 +237,7 @@ def configure_args(self): "--disable-dependency-tracking", "--disable-werror", "--enable-64-bit-bfd", + "--enable-deterministic-archives", "--enable-multilib", "--enable-pic", "--enable-targets={}".format(targets), diff --git a/repos/spack_repo/builtin/packages/binutils/update_symbol-2.26.patch b/repos/spack_repo/builtin/packages/binutils/update_symbol-2.26.patch deleted file mode 100644 index 2601f63a6b2..00000000000 --- a/repos/spack_repo/builtin/packages/binutils/update_symbol-2.26.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 544ddf9322b1b83982e5cb84a54d084ee7e718ea Mon Sep 17 00:00:00 2001 -From: H.J. Lu -Date: Wed, 24 Feb 2016 15:13:35 -0800 -Subject: [PATCH] Update symbol version for symbol from linker script - -We need to update symbol version for symbols from linker script. - -Backport from master - -bfd/ - - PR ld/19698 - * elflink.c (bfd_elf_record_link_assignment): Set versioned if - symbol version is unknown. - -ld/ - - PR ld/19698 - * testsuite/ld-elf/pr19698.d: New file. - * testsuite/ld-elf/pr19698.s: Likewise. - * testsuite/ld-elf/pr19698.t: Likewise. ---- - bfd/ChangeLog | 9 +++++++++ - bfd/elflink.c | 13 +++++++++++++ - ld/ChangeLog | 10 ++++++++++ - ld/testsuite/ld-elf/pr19698.d | 10 ++++++++++ - ld/testsuite/ld-elf/pr19698.s | 5 +++++ - ld/testsuite/ld-elf/pr19698.t | 11 +++++++++++ - 6 files changed, 58 insertions(+), 0 deletions(-) - create mode 100644 ld/testsuite/ld-elf/pr19698.d - create mode 100644 ld/testsuite/ld-elf/pr19698.s - create mode 100644 ld/testsuite/ld-elf/pr19698.t - -diff --git a/bfd/elflink.c b/bfd/elflink.c -index ae8d148..8fcaadd 100644 ---- a/bfd/elflink.c -+++ b/bfd/elflink.c -@@ -555,6 +555,19 @@ bfd_elf_record_link_assignment (bfd *output_bfd, - if (h == NULL) - return provide; - -+ if (h->versioned == unknown) -+ { -+ /* Set versioned if symbol version is unknown. */ -+ char *version = strrchr (name, ELF_VER_CHR); -+ if (version) -+ { -+ if (version > name && version[-1] != ELF_VER_CHR) -+ h->versioned = versioned_hidden; -+ else -+ h->versioned = versioned; -+ } -+ } -+ - switch (h->root.type) - { - case bfd_link_hash_defined: -diff --git a/ld/testsuite/ld-elf/pr19698.d b/ld/testsuite/ld-elf/pr19698.d -new file mode 100644 -index 0000000..a39f67a ---- /dev/null -+++ b/ld/testsuite/ld-elf/pr19698.d -@@ -0,0 +1,10 @@ -+#ld: -shared $srcdir/$subdir/pr19698.t -+#readelf : --dyn-syms --wide -+#target: *-*-linux* *-*-gnu* *-*-solaris* -+ -+Symbol table '\.dynsym' contains [0-9]+ entries: -+#... -+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +FUNC +GLOBAL +DEFAULT +[0-9]+ +foo@VERS.1 -+#... -+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +FUNC +GLOBAL +DEFAULT +[0-9]+ +foo@@VERS.2 -+#pass -diff --git a/ld/testsuite/ld-elf/pr19698.s b/ld/testsuite/ld-elf/pr19698.s -new file mode 100644 -index 0000000..875dca4 ---- /dev/null -+++ b/ld/testsuite/ld-elf/pr19698.s -@@ -0,0 +1,5 @@ -+ .text -+ .globl foo -+ .type foo, %function -+foo: -+ .byte 0 -diff --git a/ld/testsuite/ld-elf/pr19698.t b/ld/testsuite/ld-elf/pr19698.t -new file mode 100644 -index 0000000..09d9125 ---- /dev/null -+++ b/ld/testsuite/ld-elf/pr19698.t -@@ -0,0 +1,11 @@ -+"foo@VERS.1" = foo; -+ -+VERSION { -+VERS.2 { -+ global: -+ foo; -+}; -+ -+VERS.1 { -+}; -+} --- -1.7.1 - diff --git a/repos/spack_repo/builtin/packages/biobambam2/package.py b/repos/spack_repo/builtin/packages/biobambam2/package.py index d849c7baa2a..0fc031b96e6 100644 --- a/repos/spack_repo/builtin/packages/biobambam2/package.py +++ b/repos/spack_repo/builtin/packages/biobambam2/package.py @@ -21,6 +21,7 @@ class Biobambam2(AutotoolsPackage): url="https://gitlab.com/german.tischler/biobambam2/-/archive/2.0.177-release-20201112105453/biobambam2-2.0.177-release-20201112105453.tar.gz", ) + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("autoconf", type="build") @@ -51,6 +52,6 @@ def test_short_sort(self): """run testshortsort.sh to check alignments sorted by coordinate""" test_dir = join_path(self.test_suite.current_test_cache_dir, self.test_src_dir) with working_dir(test_dir): - sh = which("sh") + sh = which("sh", required=True) out = sh("testshortsort.sh", output=str.split, error=str.split) assert "Alignments sorted by coordinate." in out diff --git a/repos/spack_repo/builtin/packages/blaspp/package.py b/repos/spack_repo/builtin/packages/blaspp/package.py index e1d4e03f193..f2b17210e73 100644 --- a/repos/spack_repo/builtin/packages/blaspp/package.py +++ b/repos/spack_repo/builtin/packages/blaspp/package.py @@ -24,6 +24,9 @@ class Blaspp(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") version("master", branch="master") + version( + "2025.05.28", sha256="c54a302c78676e611e18339cab388992ef02d3fb323a6bae7a0df54643245629" + ) version( "2024.10.26", sha256="c15ae19dbed1be35e8258048a044d3104da59e7e52b4fe7fe7ea5032708a8d2c" ) @@ -66,6 +69,7 @@ class Blaspp(CMakePackage, CudaPackage, ROCmPackage): depends_on("cmake@3.15.0:", type="build") depends_on("blas") + depends_on("lapack") depends_on("llvm-openmp", when="+openmp %apple-clang") depends_on("rocblas", when="+rocm") depends_on("intel-oneapi-mkl", when="+sycl") @@ -111,6 +115,7 @@ def cmake_args(self): "-DBUILD_SHARED_LIBS=%s" % ("+shared" in spec), backend_config, "-DBLAS_LIBRARIES=%s" % spec["blas"].libs.joined(";"), + "-DLAPACK_LIBRARIES=%s" % spec["lapack"].libs.joined(";"), ] if spec["blas"].name == "cray-libsci": diff --git a/repos/spack_repo/builtin/packages/blast2go/package.py b/repos/spack_repo/builtin/packages/blast2go/package.py index 6329a90caf2..d4fb34a8394 100644 --- a/repos/spack_repo/builtin/packages/blast2go/package.py +++ b/repos/spack_repo/builtin/packages/blast2go/package.py @@ -42,5 +42,5 @@ def install(self, spec, prefix): f.writelines(config_input_data) with open(config_input_file, "r") as f: - bash = which("bash") + bash = which("bash", required=True) bash("Blast2GO_unix_%s.sh" % self.version.underscored, input=f) diff --git a/repos/spack_repo/builtin/packages/blast_legacy/package.py b/repos/spack_repo/builtin/packages/blast_legacy/package.py deleted file mode 100644 index 0f4c208edc8..00000000000 --- a/repos/spack_repo/builtin/packages/blast_legacy/package.py +++ /dev/null @@ -1,42 +0,0 @@ -# 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 BlastLegacy(Package): - """Legacy NCBI BLAST distribution -- no longer supported. - Contains older programs including `blastall'""" - - homepage = "https://www.ncbi.nlm.nih.gov/" - url = "ftp://ftp.ncbi.nlm.nih.gov/blast/executables/legacy.NOTSUPPORTED/2.2.26/ncbi.tar.gz" - - version( - "2.2.26", - sha256="d8fffac25efc8ca894c707c840a4797a8a949ae6fd983d2f91c9972f788efb7d", - deprecated=True, - ) - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - depends_on("tcsh", type="build") - - def install(self, spec, prefix): - filter_file("/bin/csh -f", "/usr/bin/env tcsh", "make/ln-if-absent", string=True) - - symlink(self.stage.source_path, "../ncbi") - tcsh = which("tcsh") - with working_dir(".."): - tcsh("./ncbi/make/makedis.csh") - - # depends on local data in the source tree - install_path = join_path(prefix, "usr/local/blast-legacy") - mkdirp(install_path) - install_tree(".", install_path) - - # symlink build output with binaries - symlink(join_path(install_path, "build"), prefix.bin) diff --git a/repos/spack_repo/builtin/packages/blast_plus/package.py b/repos/spack_repo/builtin/packages/blast_plus/package.py index f5c60dc369f..d4dc6601a24 100644 --- a/repos/spack_repo/builtin/packages/blast_plus/package.py +++ b/repos/spack_repo/builtin/packages/blast_plus/package.py @@ -15,6 +15,7 @@ class BlastPlus(AutotoolsPackage): maintainers("weijianwen") + version("2.17.0", sha256="502057a88e9990e34e62758be21ea474cc0ad68d6a63a2e37b2372af1e5ea147") version("2.16.0", sha256="17c93cf009721023e5aecf5753f9c6a255d157561638b91b3ad7276fd6950c2b") version("2.15.0", sha256="6918c370524c8d44e028bf491e8f245a895e07c66c77b261ce3b38d6058216e0") version("2.14.1", sha256="712c2dbdf0fb13cc1c2d4f4ef5dd1ce4b06c3b57e96dfea8f23e6e99f5b1650e") @@ -69,6 +70,8 @@ def patch(self): variant("pcre", default=True, description="Build with pcre support") variant("perl", default=True, description="Build with perl support") variant("python", default=True, description="Build with python support") + variant("sqlite", default=False, description="Build with sqlite support") + variant("zstd", default=False, when="@2.10:", description="Build with zstd support") depends_on("jpeg", when="+jpeg") depends_on("libpng", when="+png") @@ -86,9 +89,18 @@ def patch(self): depends_on("perl", when="+perl") depends_on("lmdb", when="@2.7.1:") + depends_on("sqlite", when="+sqlite") + depends_on("zstd", when="+zstd") configure_directory = "c++" + requires("+sqlite", when="@2.15.0:", msg="sqlite support is required in 2.15 and later") + requires( + "+zstd+zlib+bzip2", + when="@2.17.0:", + msg="zstd, zlib, and bzip2 are required 2.17 and later", + ) + def configure_args(self): spec = self.spec @@ -105,17 +117,17 @@ def configure_args(self): config_args.extend(["--with-dll", "--without-static", "--without-static-exe"]) if spec.satisfies("+jpeg"): - config_args.append("--with-jpeg={0}".format(self.spec["jpeg"].prefix)) + config_args.append(f"--with-jpeg={self.spec['jpeg'].prefix}") else: config_args.append("--without-jpeg") if spec.satisfies("+png"): - config_args.append("--with-png={0}".format(self.spec["libpng"].prefix)) + config_args.append(f"--with-png={self.spec['libpng'].prefix}") else: config_args.append("--without-png") if spec.satisfies("+freetype"): - config_args.append("--with-freetype={0}".format(self.spec["freetype"].prefix)) + config_args.append(f"--with-freetype={self.spec['freetype'].prefix}") else: config_args.append("--without-freetype") @@ -123,49 +135,55 @@ def configure_args(self): # if '+hdf5' in spec: # # FIXME # config_args.append( - # '--with-hdf5={0}'.format(self.spec['hdf5'].prefix) + # f'--with-hdf5={self.spec["hdf5"].prefix}') # ) # else: # config_args.append('--without-hdf5') if spec.satisfies("+zlib"): - config_args.append("--with-z={0}".format(self.spec["zlib-api"].prefix)) + config_args.append(f"--with-z={self.spec['zlib-api'].prefix}") else: config_args.append("--without-z") if spec.satisfies("+bzip2"): - config_args.append("--with-bz2={0}".format(self.spec["bzip2"].prefix)) + config_args.append(f"--with-bz2={self.spec['bzip2'].prefix}") else: config_args.append("--without-bz2") if spec.satisfies("+lzo"): - config_args.append("--with-lzo={0}".format(self.spec["lzo"].prefix)) + config_args.append(f"--with-lzo={self.spec['lzo'].prefix}") else: config_args.append("--without-lzo") if spec.satisfies("+gnutls"): - config_args.append("--with-gnutls={0}".format(self.spec["gnutls"].prefix)) + config_args.append(f"--with-gnutls={self.spec['gnutls'].prefix}") else: config_args.append("--without-gnutls") if spec.satisfies("+openssl"): - config_args.append("--with-openssl={0}".format(self.spec["openssl"].prefix)) + config_args.append(f"--with-openssl={self.spec['openssl'].prefix}") else: config_args.append("--without-openssl") if spec.satisfies("+pcre"): - config_args.append("--with-pcre={0}".format(self.spec["pcre"].prefix)) + config_args.append(f"--with-pcre={self.spec['pcre'].prefix}") else: config_args.append("--without-pcre") if spec.satisfies("+python"): - config_args.append("--with-python={0}".format(self.spec["python"].home)) + config_args.append(f"--with-python={self.spec['python'].home}") else: config_args.append("--without-python") if spec.satisfies("+perl"): - config_args.append("--with-perl={0}".format(self.spec["perl"].prefix)) + config_args.append(f"--with-perl={self.spec['perl'].prefix}") else: config_args.append("--without-python") + with when("+sqlite"): + config_args.append(f"--with-sqlite3={self.spec['sqlite'].prefix}") + + with when("+zstd"): + config_args.append(f"--with-zstd={self.spec['zstd'].prefix}") + return config_args diff --git a/repos/spack_repo/builtin/packages/blis/package.py b/repos/spack_repo/builtin/packages/blis/package.py index 869cc09d416..c1b70cc72a3 100644 --- a/repos/spack_repo/builtin/packages/blis/package.py +++ b/repos/spack_repo/builtin/packages/blis/package.py @@ -11,6 +11,18 @@ # https://github.com/flame/blis/issues/195 # https://github.com/flame/blis/issues/197 +# Mapping from Spack target names to BLIS config targets, ordered +# from most specific to most generic. The first match wins. +# When the Spack name matches the BLIS config name, the value is None. +_targets = { + "zen3": None, + "zen2": None, + "zen": None, + "skylake_avx512": "skx", + "haswell": None, + "x86_64": None, +} + class BlisBase(MakefilePackage): """Base class for building BLIS, shared with the AMD optimized version @@ -83,8 +95,13 @@ def configure_args(self): return config_args def edit(self, spec, prefix): - # To ensure auto should always be the last argument for base and derived class - config_args = self.configure_args() + ["auto"] + target = "auto" + for spack_target, blis_target in _targets.items(): + if self.spec.satisfies(f"target={spack_target}:"): + target = blis_target or spack_target + break + # To ensure the target should always be the last argument for base and derived class + config_args = self.configure_args() + [target] configure("--prefix={0}".format(prefix), *config_args) @run_after("install") @@ -124,6 +141,8 @@ class Blis(BlisBase): license("BSD-3-Clause") version("master", branch="master") + version("2.0", sha256="08bbebd77914a6d1a43874ae5ec2f54fe6a77cba745f2532df28361b0f1ad1b3") + version("1.2", sha256="c36f2bd7580f1d30c2d81c5081b76da1058db888d303d7f5a3a41e0cb09bea94") version("1.0", sha256="9c12972aa1e50f64ca61684eba6828f2f3dd509384b1e41a1e8a9aedea4b16a6") version("0.9.0", sha256="1135f664be7355427b91025075562805cdc6cc730d3173f83533b2c5dcc2f308") version("0.8.1", sha256="729694128719801e82fae7b5f2489ab73e4a467f46271beff09588c9265a697b") @@ -142,6 +161,25 @@ class Blis(BlisBase): depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated + # Override base class variant and adds conditional values + variant( + "threads", + default="none", + values=("pthreads", "openmp", conditional("hpx", when="@1.1:"), "none"), + description="Multithreading support", + multi=False, + ) + + variant("scalapack", default=False, description="ScaLAPACK compatibility", when="@2.0:") + # Problems with permissions on installed libraries: # https://github.com/flame/blis/issues/343 patch("Makefile_0.6.0.patch", when="@0.4.0:0.6.0") + + def configure_args(self): + config_args = super().configure_args() + if self.spec.satisfies("+scalapack"): + config_args.append("--enable-scalapack-compat") + elif self.spec.satisfies("~scalapack"): + config_args.append("--disable-scalapack-compat") + return config_args diff --git a/repos/spack_repo/builtin/packages/blt/package.py b/repos/spack_repo/builtin/packages/blt/package.py index 2792ac7dc57..00c807d04e7 100644 --- a/repos/spack_repo/builtin/packages/blt/package.py +++ b/repos/spack_repo/builtin/packages/blt/package.py @@ -24,24 +24,8 @@ def spec_uses_gccname(spec): def llnl_link_helpers(options, spec, compiler): - # From local package: - if "fortran" in spec: - fortran_compilers = ["gfortran", "xlf"] - if any(f_comp in compiler.fc for f_comp in fortran_compilers) and ( - "clang" in compiler.cxx - ): - # Pass fortran compiler lib as rpath to find missing libstdc++ - libdir = os.path.join(os.path.dirname(os.path.dirname(compiler.fc)), "lib") - flags = "" - for _libpath in [libdir, libdir + "64"]: - if os.path.exists(_libpath): - flags += " -Wl,-rpath,{0}".format(_libpath) - description = "Adds a missing libstdc++ rpath" - if flags: - options.append(cmake_cache_string("BLT_EXE_LINKER_FLAGS", flags, description)) - if "cxx" in spec and spec["cxx"].name == "cce": - description = "Adds a missing rpath for libraries " "associated with the fortran compiler" + description = "Adds a missing rpath for libraries associated with the fortran compiler" # Here is where to find libs that work for fortran libdir = "/opt/cray/pe/cce/{0}/cce-clang/x86_64/lib".format(compiler.version) linker_flags = "${{BLT_EXE_LINKER_FLAGS}} -Wl,-rpath,{0}".format(libdir) @@ -71,10 +55,8 @@ class Blt(Package): version("develop", branch="develop") version("main", branch="main") - # Note: 0.4.0+ contains a breaking change to BLT created targets - # if you export targets this could cause problems in downstream - # projects if not handled properly. More info here: - # https://llnl-blt.readthedocs.io/en/develop/tutorial/exporting_targets.html + version("0.7.2", sha256="107f2c1d616bcfc629a11d887f0bb1b602aef1fe5e4580db65e592f23925e23f") + version("0.7.1", sha256="136765087b78da96dff77dfd6eb9a1238dbfb67da9c7474bc8fb8532fc8ee015") version("0.7.0", sha256="df8720a9cba1199d21f1d32649cebb9dddf95aa61bc3ac23f6c8a3c6b6083528") version("0.6.2", sha256="84b663162957c1fe0e896ac8e94cbf2b6def4a152ccfa12a293db14fb25191c8") version("0.6.1", sha256="205540b704b8da5a967475be9e8f2d1a5e77009b950e7fbf01c0edabc4315906") @@ -84,6 +66,10 @@ class Blt(Package): version("0.5.1", sha256="ff7e87eefc48704a0721b66174612b945955adaa0a56aa69dd0473074fa4badf") version("0.5.0", sha256="5f680ef922d0e0a7ff1b1a5fc8aa107cd4f543ad888cbc9b12639bea72a6ab1f") version("0.4.1", sha256="16cc3e067ddcf48b99358107e5035a17549f52dcc701a35cd18a9d9f536826c1") + # Note: 0.4.0+ contains a breaking change to BLT created targets + # if you export targets this could cause problems in downstream + # projects if not handled properly. More info here: + # https://llnl-blt.readthedocs.io/en/develop/tutorial/exporting_targets.html version("0.4.0", sha256="f3bc45d28b9b2eb6df43b75d4f6f89a1557d73d012da7b75bac1be0574767193") version("0.3.6", sha256="6276317c29e7ff8524fbea47d9288ddb40ac06e9f9da5e878bf9011e2c99bf71") version("0.3.5", sha256="68a1c224bb9203461ae6f5ab0ff3c50b4a58dcce6c2d2799489a1811f425fb84") @@ -91,6 +77,14 @@ class Blt(Package): version("0.2.5", sha256="3a000f60194e47b3e5623cc528cbcaf88f7fea4d9620b3c7446ff6658dc582a5") version("0.2.0", sha256="c0cadf1269c2feb189e398a356e3c49170bc832df95e5564e32bdbb1eb0fa1b3") + # https://github.com/google/googletest/pull/4798 + # Make BLT compatible with OpenAPI 2025.2 + patch( + "https://github.com/LLNL/blt/commit/5ff55b519fc8d5216b07edaf301e2d2bf328021e.patch?full_index=1", + sha256="116702b89d01e022546911fe0b823afa99a6b37a35077055141ad5d480508422", + when="@0.7.1", + ) + depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/bmake/package.py b/repos/spack_repo/builtin/packages/bmake/package.py index 53d12c91275..4c1fe2b6b43 100644 --- a/repos/spack_repo/builtin/packages/bmake/package.py +++ b/repos/spack_repo/builtin/packages/bmake/package.py @@ -31,7 +31,7 @@ def patch(self): filter_file("GetDir /bmake", "GetDir " + self.stage.source_path, "boot-strap", string=True) def install(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("boot-strap", "op=configure") sh("boot-strap", "op=build") sh("boot-strap", "--prefix={0}".format(prefix), "op=install") diff --git a/repos/spack_repo/builtin/packages/bmi/package.py b/repos/spack_repo/builtin/packages/bmi/package.py index c61db46e5dd..892a9ac418a 100644 --- a/repos/spack_repo/builtin/packages/bmi/package.py +++ b/repos/spack_repo/builtin/packages/bmi/package.py @@ -19,6 +19,7 @@ class Bmi(AutotoolsPackage): license("LGPL-2.1-or-later") version("main", branch="main") + version("2.8.2", sha256="ac61deafd5e28a74f35e4a4d7005bbdadf98bb56b58a44281c8241d02701cbca") version("2.8.1", sha256="28aa4341f0456cf20ee762f712d7c749ab8f864003329f9327c18ea03fc7ffdb") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/bohrium/package.py b/repos/spack_repo/builtin/packages/bohrium/package.py index deef0935c75..9056a1f460c 100644 --- a/repos/spack_repo/builtin/packages/bohrium/package.py +++ b/repos/spack_repo/builtin/packages/bohrium/package.py @@ -39,9 +39,7 @@ class Bohrium(CMakePackage, CudaPackage): variant("node", default=True, description="Build the node vector engine manager") variant("proxy", default=False, description="Build the proxy vector engine manager") variant( - "python", - default=True, - description="Build the numpy-like bridge " "to enable use from python", + "python", default=True, description="Build the numpy-like bridge to enable use from python" ) variant("cbridge", default=True, description="Build the bridge interface towards plain C") diff --git a/repos/spack_repo/builtin/packages/bolt/package.py b/repos/spack_repo/builtin/packages/bolt/package.py index a60dcbd274b..2166666c644 100644 --- a/repos/spack_repo/builtin/packages/bolt/package.py +++ b/repos/spack_repo/builtin/packages/bolt/package.py @@ -71,7 +71,7 @@ def test_sample_nested_example(self): test_dir = os.path.dirname(path) with working_dir(test_dir): - cxx = which(os.environ["CXX"]) + cxx = which(os.environ["CXX"], required=True) cxx( "-L{0}".format(self.prefix.lib), "-I{0}".format(self.prefix.include), @@ -82,5 +82,5 @@ def test_sample_nested_example(self): "-lbolt", ) - sample_nested = which(exe) + sample_nested = which(exe, required=True) sample_nested() diff --git a/repos/spack_repo/builtin/packages/boost/container_PR101.patch b/repos/spack_repo/builtin/packages/boost/container_PR101.patch new file mode 100644 index 00000000000..2353b6f8096 --- /dev/null +++ b/repos/spack_repo/builtin/packages/boost/container_PR101.patch @@ -0,0 +1,18 @@ +--- a/boost/container/detail/flat_tree.hpp ++++ b/boost/container/detail/flat_tree.hpp +@@ -1215,14 +1215,14 @@ class flat_tree + template + BOOST_CONTAINER_FORCEINLINE void merge_unique(flat_tree& source) + { +- this->insert( boost::make_move_iterator(source.begin()) ++ this->insert_unique( boost::make_move_iterator(source.begin()) + , boost::make_move_iterator(source.end())); + } + + template + BOOST_CONTAINER_FORCEINLINE void merge_equal(flat_tree& source) + { +- this->insert( boost::make_move_iterator(source.begin()) ++ this->insert_equal( boost::make_move_iterator(source.begin()) + , boost::make_move_iterator(source.end())); + } diff --git a/repos/spack_repo/builtin/packages/boost/oneapi_pthread.patch b/repos/spack_repo/builtin/packages/boost/oneapi_pthread.patch new file mode 100644 index 00000000000..adf6588bde9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/boost/oneapi_pthread.patch @@ -0,0 +1,13 @@ +diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh +index 29d08fcbe..48fefb8e6 100755 +--- a/tools/build/src/engine/build.sh ++++ b/tools/build/src/engine/build.sh +@@ -180,7 +180,7 @@ check_toolset () + fi + # Intel oneAPI (intel-linux) + if test_toolset intel-linux && test_path icpx ; then +- if test_compiler icpx -x c++ -std=c++11 ; then B2_TOOLSET=intel-linux ; return ${TRUE} ; fi ++ if test_compiler icpx -x c++ -std=c++11 -pthread; then B2_TOOLSET=intel-linux ; return ${TRUE} ; fi + fi + if test_toolset intel-linux && test_path icc ; then + if test_compiler icc -x c++ -std=c++11 ; then B2_TOOLSET=intel-linux ; return ${TRUE} ; fi diff --git a/repos/spack_repo/builtin/packages/boost/package.py b/repos/spack_repo/builtin/packages/boost/package.py index f979619a647..d8b0442b034 100644 --- a/repos/spack_repo/builtin/packages/boost/package.py +++ b/repos/spack_repo/builtin/packages/boost/package.py @@ -31,6 +31,8 @@ class Boost(Package): license("BSL-1.0") version("develop", branch="develop", submodules=True) + version("1.90.0", sha256="49551aff3b22cbc5c5a9ed3dbc92f0e23ea50a0f7325b0d198b705e8ee3fc305") + version("1.89.0", sha256="85a33fa22621b4f314f8e85e1a5e2a9363d22e4f4992925d4bb3bc631b5a0c7a") version("1.88.0", sha256="46d9d2c06637b219270877c9e16155cbd015b6dc84349af064c088e9b5b12f7b") version("1.87.0", sha256="af57be25cb4c4f4b413ed692fe378affb4352ea50fbe294a11ef548f4d527d89") version("1.86.0", sha256="1bed88e40401b2cb7a1f76d4bab499e352fa4d0c5f31c0dbae64e24d34d7513b") @@ -123,6 +125,7 @@ class Boost(Package): "container", "context", "contract", + "conversion", "coroutine", "date_time", "exception", @@ -138,6 +141,7 @@ class Boost(Package): "mpi", "mqtt5", "nowide", + "openmethod", "program_options", "python", "random", @@ -159,10 +163,25 @@ class Boost(Package): # signals library was removed from boost in 1.69 # https://www.boost.org/releases/1.69.0/#:~:text=Discontinued all_libs_opts = { - "charconv": {"when": "@1.85.0:"}, - "cobalt": {"when": "@1.84.0:"}, + "openmethod": {"when": "@1.90:"}, + "mqtt5": {"when": "@1.88:"}, + "charconv": {"when": "@1.85:"}, + "cobalt": {"when": "@1.84"}, + "url": {"when": "@1.81:"}, + "json": {"when": "@1.75:"}, + "nowide": {"when": "@1.73:"}, "signals": {"when": "@:1.68"}, - "signals2": {"when": "@1.4:"}, + "contract": {"when": "@1.67:"}, + "stacktrace": {"when": "@1.65:"}, + "fiber": {"when": "@1.62:"}, + "type_erasure": {"when": "@1.60:"}, + "atomic": {"when": "@1.53:"}, + "coroutine": {"when": "@1.54:1.66"}, + "context": {"when": "@1.51:"}, + "container": {"when": "@1.56:"}, + "locale": {"when": "@1.48:"}, + "chrono": {"when": "@1.47:"}, + "signals2": {"when": "@1.87:"}, } for lib in all_libs: @@ -245,7 +264,7 @@ def libs(self): values=("global", "protected", "hidden"), default="hidden", multi=False, - description="Default symbol visibility in compiled libraries " "(1.69.0 or later)", + description="Default symbol visibility in compiled libraries (1.69.0 or later)", ) depends_on("c", type="build") @@ -317,6 +336,9 @@ def libs(self): # (https://github.com/spack/spack/pull/32879#issuecomment-1265933265) conflicts("%oneapi", when="@1.80") + # Boost did not support the oneapi compilers prior to 1.76 + conflicts("%oneapi@2023:", when="@:1.75") + # Boost 1.85.0 stacktrace added a hard compilation error that has to # explicitly be suppressed on some platforms: # https://github.com/boostorg/stacktrace/pull/150. This conflict could be @@ -376,6 +398,14 @@ def libs(self): sha256="b6f6ce68282159d46c716a1e6c819c815914bdb096cddc516fa48134209659f2", ) + # Fix: "Compile issue with flat_tree insert" + # See: https://github.com/boostorg/container/pull/101 + patch( + "container_PR101.patch", + when="@1.66.0:1.69.0", + sha256="d216bf7c826c577912aa518c76c17697898483f95336cc035ae9ed16b12dc2b0", + ) + # Fix: "Unable to compile code using boost/process.hpp" # See: https://github.com/boostorg/process/issues/116 # Patch: https://github.com/boostorg/process/commit/6a4d2ff72114ef47c7afaf92e1042aca3dfa41b0.patch @@ -455,6 +485,13 @@ def libs(self): # https://www.intel.com/content/www/us/en/developer/articles/technical/building-boost-with-oneapi.html patch("intel-oneapi-linux-jam.patch", when="@1.76: %oneapi") + # https://github.com/spack/spack/issues/44003 + patch( + "oneapi_pthread.patch", + sha256="7845717c5d916fabc0e62eb6e1f5ad8f13baaf4a4b71b99b19847703386064c4", + when="@1.76: %oneapi@2022:", + ) + # https://github.com/boostorg/phoenix/issues/111 patch("boost_phoenix_1.81.0.patch", level=2, when="@1.81.0:1.82.0") @@ -507,6 +544,7 @@ def determine_toolset(self, spec): "%intel": "intel", "%oneapi": "intel", "%clang": "clang", + "%apple-clang": "clang", "%arm": "clang", "%xl": "xlcpp", "%xl_r": "xlcpp", diff --git a/repos/spack_repo/builtin/packages/bowtie2/package.py b/repos/spack_repo/builtin/packages/bowtie2/package.py index 187f87825f9..31755be4096 100644 --- a/repos/spack_repo/builtin/packages/bowtie2/package.py +++ b/repos/spack_repo/builtin/packages/bowtie2/package.py @@ -30,6 +30,8 @@ class Bowtie2(MakefilePackage): version("2.3.0", sha256="f9f841e780e78b1ae24b17981e2469e6d5add90ec22ef563af23ae2dd5ca003c") version("2.2.5", sha256="e22766dd9421c10e82a3e207ee1f0eb924c025b909ad5fffa36633cd7978d3b0") + depends_on("cxx", type="build") + depends_on("tbb", when="@2.3.0:") depends_on("readline", when="@2.3.1:") depends_on("perl", type="run") diff --git a/repos/spack_repo/builtin/packages/bpp_core/package.py b/repos/spack_repo/builtin/packages/bpp_core/package.py index c00c2e61652..659c4f8a324 100644 --- a/repos/spack_repo/builtin/packages/bpp_core/package.py +++ b/repos/spack_repo/builtin/packages/bpp_core/package.py @@ -18,11 +18,6 @@ class BppCore(CMakePackage): license("CECILL-2.0") version("2.4.1", sha256="1150b8ced22cff23dd4770d7c23fad11239070b44007740e77407f0d746c0af6") - version( - "2.2.0", - sha256="aacd4afddd1584ab6bfa1ff6931259408f1d39958a0bdc5f78bf1f9ee4e98b79", - deprecated=True, - ) depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/bpp_phyl/package.py b/repos/spack_repo/builtin/packages/bpp_phyl/package.py index a399f241deb..18249903b6f 100644 --- a/repos/spack_repo/builtin/packages/bpp_phyl/package.py +++ b/repos/spack_repo/builtin/packages/bpp_phyl/package.py @@ -18,11 +18,6 @@ class BppPhyl(CMakePackage): license("CECILL-2.0") version("2.4.1", sha256="e7bf7d4570f756b7773904ffa600ffcd77c965553ddb5cbc252092d1da962ff2") - version( - "2.2.0", - sha256="f346d87bbc7858924f3c99d7d74eb4a1f7a1b926746c68d8c28e07396c64237b", - deprecated=True, - ) depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/bpp_seq/package.py b/repos/spack_repo/builtin/packages/bpp_seq/package.py index 2b92d704737..a8273447104 100644 --- a/repos/spack_repo/builtin/packages/bpp_seq/package.py +++ b/repos/spack_repo/builtin/packages/bpp_seq/package.py @@ -18,11 +18,6 @@ class BppSeq(CMakePackage): license("CECILL-2.0") version("2.4.1", sha256="dbfcb04803e4b7f08f9f159da8a947c91906c3ca8b20683ac193f6dc524d4655") - version( - "2.2.0", - sha256="0927d7fb0301c1b99a7353d5876deadb4a3040776cc74e8fe1c366fe920e7b6b", - deprecated=True, - ) depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/bpp_suite/package.py b/repos/spack_repo/builtin/packages/bpp_suite/package.py index 8f558b1752e..fd1c314092f 100644 --- a/repos/spack_repo/builtin/packages/bpp_suite/package.py +++ b/repos/spack_repo/builtin/packages/bpp_suite/package.py @@ -19,11 +19,6 @@ class BppSuite(CMakePackage): license("CECILL-2.0") version("2.4.1", sha256="0485adcc17e37439069d27e4fac144e5ae38036ba21f31e6d21f070ce4ea5199") - version( - "2.2.0", - sha256="761fa5eec794af221d971ae70fd8c43171ad71a6bb5f20549263a1797b43f138", - deprecated=True, - ) depends_on("cxx", type="build") # generated @@ -32,7 +27,7 @@ class BppSuite(CMakePackage): depends_on("bpp-core") depends_on("bpp-seq") depends_on("bpp-phyl") - depends_on("bpp-popgen", when="@2.4.1:") + depends_on("bpp-popgen") # Clarify isinf's namespace, because Fujitsu compiler can't # resolve ambiguous of 'isinf' function. diff --git a/repos/spack_repo/builtin/packages/bracken/package.py b/repos/spack_repo/builtin/packages/bracken/package.py index a4b6f529e4a..5d1c9101625 100644 --- a/repos/spack_repo/builtin/packages/bracken/package.py +++ b/repos/spack_repo/builtin/packages/bracken/package.py @@ -31,7 +31,7 @@ class Bracken(Package): def install(self, spec, prefix): mkdirp(prefix.bin.src) # installer builds kmer2read_distr in src - chmod = which("chmod") + chmod = which("chmod", required=True) chmod("+x", "./install_bracken.sh") installer = Executable("./install_bracken.sh") installer(self.stage.source_path) diff --git a/repos/spack_repo/builtin/packages/breakdancer/package.py b/repos/spack_repo/builtin/packages/breakdancer/package.py index 447c7800fee..fb75354b5fd 100644 --- a/repos/spack_repo/builtin/packages/breakdancer/package.py +++ b/repos/spack_repo/builtin/packages/breakdancer/package.py @@ -23,10 +23,7 @@ class Breakdancer(CMakePackage): version("1.4.5", sha256="5d74f3a90f5c69026ebb4cf4cb9ccc51ec8dd49ac7a88595a1efabd5a73e92b6") version( - "master", - submodules="true", - git="https://github.com/genome/breakdancer.git", - preferred=True, + "master", submodules=True, git="https://github.com/genome/breakdancer.git", preferred=True ) depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/bricks/package.py b/repos/spack_repo/builtin/packages/bricks/package.py index 2c85950704a..de752e0b201 100644 --- a/repos/spack_repo/builtin/packages/bricks/package.py +++ b/repos/spack_repo/builtin/packages/bricks/package.py @@ -42,7 +42,8 @@ class Bricks(CMakePackage): depends_on("automake", type="build") depends_on("libtool", type="build") depends_on("opencl-clhpp", when="+cuda") - depends_on("cuda", when="+cuda") + # See https://github.com/spack/spack-packages/pull/2059#issuecomment-3443184517 for CUDA 13 + depends_on("cuda@:12", when="+cuda") depends_on("mpi") patch("bricks-cmakelists-option-opencl.patch") @@ -88,10 +89,10 @@ def test_bricklib_example(self): raise SkipTest("{0} is missing".format(source_dir)) with working_dir(source_dir): - cmake = which(self.spec["cmake"].prefix.bin.cmake) + cmake = which(self.spec["cmake"].prefix.bin.cmake, required=True) cmake(".") cmake("--build", ".") - example = which("example") + example = which("example", required=True) example() diff --git a/repos/spack_repo/builtin/packages/bridger/package.py b/repos/spack_repo/builtin/packages/bridger/package.py index 8c9b7280adb..98a7416a38f 100644 --- a/repos/spack_repo/builtin/packages/bridger/package.py +++ b/repos/spack_repo/builtin/packages/bridger/package.py @@ -23,7 +23,7 @@ class Bridger(MakefilePackage, SourceforgePackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("boost + exception + filesystem + system + serialization + graph") + depends_on("boost@:1.83+exception+filesystem+system+serialization+graph") depends_on("ncurses~termlib") depends_on("perl", type="run") diff --git a/repos/spack_repo/builtin/packages/brltty/package.py b/repos/spack_repo/builtin/packages/brltty/package.py index bfb030d6fb7..ccff2fba77c 100644 --- a/repos/spack_repo/builtin/packages/brltty/package.py +++ b/repos/spack_repo/builtin/packages/brltty/package.py @@ -32,5 +32,5 @@ class Brltty(AutotoolsPackage): depends_on("alsa-lib", when="platform=linux", type="link") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("autogen") diff --git a/repos/spack_repo/builtin/packages/brotli/package.py b/repos/spack_repo/builtin/packages/brotli/package.py index 9ed57b3eee9..2e267e5f838 100644 --- a/repos/spack_repo/builtin/packages/brotli/package.py +++ b/repos/spack_repo/builtin/packages/brotli/package.py @@ -15,14 +15,20 @@ class Brotli(CMakePackage): license("MIT") - version("1.1.0", sha256="e720a6ca29428b803f4ad165371771f5398faba397edf6778837a18599ea13ff") - version("1.0.9", sha256="f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46") - version("1.0.7", sha256="4c61bfb0faca87219ea587326c467b95acb25555b53d1a421ffa3c8a9296ee2c") + version("1.2.0", sha256="816c96e8e8f193b40151dad7e8ff37b1221d019dbcb9c35cd3fadbfe6477dfec") - depends_on("c", type="build") # generated + with default_args(deprecated=True): + version("1.1.0", sha256="e720a6ca29428b803f4ad165371771f5398faba397edf6778837a18599ea13ff") + version("1.0.9", sha256="f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46") + version("1.0.7", sha256="4c61bfb0faca87219ea587326c467b95acb25555b53d1a421ffa3c8a9296ee2c") - @run_after("install") + depends_on("c", type="build") + + depends_on("cmake@3.15:", type="build", when="@1.1.0:") + depends_on("cmake@2.8.6:", type="build", when="@1.0.7:") + + @run_after("install", when="@:1.0") def darwin_fix(self): - # The shared library is not installed correctly on Darwin; fix this + # cmake_minimum_required(VERSION 2.8.6) issue related to install name. Fixed in v1.1+ if self.spec.satisfies("platform=darwin"): fix_darwin_install_name(self.prefix.lib) diff --git a/repos/spack_repo/builtin/packages/btop/gnu-source.patch b/repos/spack_repo/builtin/packages/btop/gnu-source.patch new file mode 100644 index 00000000000..b749d34446c --- /dev/null +++ b/repos/spack_repo/builtin/packages/btop/gnu-source.patch @@ -0,0 +1,13 @@ +--- a/src/linux/intel_gpu_top/intel_gpu_top.c ++++ b/src/linux/intel_gpu_top/intel_gpu_top.c +@@ -23,6 +23,10 @@ + * DEALINGS IN THE SOFTWARE. + */ + ++#ifndef _GNU_SOURCE ++#define _GNU_SOURCE ++#endif ++ + #include + #include + #include diff --git a/repos/spack_repo/builtin/packages/btop/package.py b/repos/spack_repo/builtin/packages/btop/package.py index d74c23df86e..6be12b521e8 100644 --- a/repos/spack_repo/builtin/packages/btop/package.py +++ b/repos/spack_repo/builtin/packages/btop/package.py @@ -20,12 +20,17 @@ class Btop(MakefilePackage, CMakePackage): license("Apache-2.0") - version("1.4.4", sha256="98d464041015c888c7b48de14ece5ebc6e410bc00ca7bb7c5a8010fe781f1dd8") - version("1.4.3", sha256="81b133e59699a7fd89c5c54806e16452232f6452be9c14b3a634122e3ebed592") - version("1.4.0", sha256="ac0d2371bf69d5136de7e9470c6fb286cbee2e16b4c7a6d2cd48a14796e86650") - version("1.3.2", sha256="331d18488b1dc7f06cfa12cff909230816a24c57790ba3e8224b117e3f0ae03e") - version("1.3.0", sha256="375e078ce2091969f0cd14030620bd1a94987451cf7a73859127a786006a32cf") - version("1.2.13", sha256="668dc4782432564c35ad0d32748f972248cc5c5448c9009faeb3445282920e02") + version("1.4.7", sha256="933de2e4d1b2211a638be463eb6e8616891bfba73aef5d38060bd8319baeefc6") + version("1.4.6", sha256="4beb90172c6acaac08c1b4a5112fb616772e214a7ef992bcbd461453295a58be") + with default_args(deprecated=True): + version("1.4.4", sha256="98d464041015c888c7b48de14ece5ebc6e410bc00ca7bb7c5a8010fe781f1dd8") + version("1.4.3", sha256="81b133e59699a7fd89c5c54806e16452232f6452be9c14b3a634122e3ebed592") + version("1.4.0", sha256="ac0d2371bf69d5136de7e9470c6fb286cbee2e16b4c7a6d2cd48a14796e86650") + version("1.3.2", sha256="331d18488b1dc7f06cfa12cff909230816a24c57790ba3e8224b117e3f0ae03e") + version("1.3.0", sha256="375e078ce2091969f0cd14030620bd1a94987451cf7a73859127a786006a32cf") + version( + "1.2.13", sha256="668dc4782432564c35ad0d32748f972248cc5c5448c9009faeb3445282920e02" + ) build_system("makefile", conditional("cmake", when="@1.3.0:"), default="cmake") @@ -35,11 +40,17 @@ class Btop(MakefilePackage, CMakePackage): depends_on("cxx", type="build") depends_on("cmake@3.24:", type="build", when="@1.3.0: build_system=cmake") + depends_on("cmake@3.25:", type="build", when="@1.4.1: build_system=cmake") + depends_on("googletest@1.17:", type="test", when="@1.4.6: build_system=cmake") # Fix linking GPU support, by adding an explicit "target_link_libraries" to ${CMAKE_DL_LIBS} patch("link-dl.patch", when="+gpu @:1.4.0") + # gcc does not define _GNU_SOURCE by default, making asprintf undeclared in the bundled + # intel_gpu_top C code. See https://github.com/aristocratos/btop/issues/1565 + patch("gnu-source.patch", when="+gpu @1.3.0:") - requires("%gcc@10:", "%clang@16:", policy="one_of", msg="C++ 20 is required") + requires("%gcc@11:", "%clang@16:", policy="one_of", msg="C++ 20 is required") + requires("%gcc@14:", "%clang@19:", policy="one_of", msg="C++ 23 is required", when="@1.4.6:") class MakefileBuilder(makefile.MakefileBuilder): @@ -52,4 +63,7 @@ def install_targets(self): class CMakeBuilder(cmake.CMakeBuilder): def cmake_args(self): - return [self.define_from_variant("BTOP_GPU", "gpu")] + return [ + self.define_from_variant("BTOP_GPU", "gpu"), + self.define("BUILD_TESTING", self.pkg.run_tests), + ] diff --git a/repos/spack_repo/builtin/packages/busybox/package.py b/repos/spack_repo/builtin/packages/busybox/package.py index e3835f1ee83..838b34760e8 100644 --- a/repos/spack_repo/builtin/packages/busybox/package.py +++ b/repos/spack_repo/builtin/packages/busybox/package.py @@ -18,12 +18,27 @@ class Busybox(MakefilePackage): license("GPL-2.0-only") version("1.37.0", sha256="3311dff32e746499f4df0d5df04d7eb396382d7e108bb9250e7b519b837043a4") - version("1.36.1", sha256="b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314") - version("1.36.0", sha256="542750c8af7cb2630e201780b4f99f3dcceeb06f505b479ec68241c1e6af61a5") - version("1.31.1", sha256="d0f940a72f648943c1f2211e0e3117387c31d765137d92bd8284a3fb9752a998") - version("1.31.0", sha256="0e4925392fd9f3743cc517e031b68b012b24a63b0cf6c1ff03cce7bb3846cc99") - version("1.30.1", sha256="3d1d04a4dbd34048f4794815a5c48ebb9eb53c5277e09ffffc060323b95dfbdc") - version("1.30.0", sha256="9553da068c0a30b1b8b72479908c1ba58672e2be7b535363a88de5e0f7bc04ce") + + # CVE-2022-48174 + with default_args(deprecated=True): + version( + "1.36.1", sha256="b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314" + ) + version( + "1.36.0", sha256="542750c8af7cb2630e201780b4f99f3dcceeb06f505b479ec68241c1e6af61a5" + ) + version( + "1.31.1", sha256="d0f940a72f648943c1f2211e0e3117387c31d765137d92bd8284a3fb9752a998" + ) + version( + "1.31.0", sha256="0e4925392fd9f3743cc517e031b68b012b24a63b0cf6c1ff03cce7bb3846cc99" + ) + version( + "1.30.1", sha256="3d1d04a4dbd34048f4794815a5c48ebb9eb53c5277e09ffffc060323b95dfbdc" + ) + version( + "1.30.0", sha256="9553da068c0a30b1b8b72479908c1ba58672e2be7b535363a88de5e0f7bc04ce" + ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/bwa/package.py b/repos/spack_repo/builtin/packages/bwa/package.py index 9582a5afdc9..e364a7ff34a 100644 --- a/repos/spack_repo/builtin/packages/bwa/package.py +++ b/repos/spack_repo/builtin/packages/bwa/package.py @@ -17,6 +17,16 @@ class Bwa(Package): license("GPL-3.0-only") + version( + "0.7.19", + sha256="cdff5db67652c5b805a3df08c4e813a822c65791913eccfb3cf7d528588f37bc", + url="https://github.com/lh3/bwa/archive/refs/tags/v0.7.19.tar.gz", + ) + version( + "0.7.18", + sha256="194788087f7b9a77c0114aa481b2ef21439f6abab72488c83917302e8d0e7870", + url="https://github.com/lh3/bwa/archive/refs/tags/v0.7.18.tar.gz", + ) version("0.7.17", sha256="de1b4d4e745c0b7fc3e107b5155a51ac063011d33a5d82696331ecf4bed8d0fd") version("0.7.15", sha256="2f56afefa49acc9bf45f12edb58e412565086cc20be098b8bf15ec07de8c0515") version("0.7.13", sha256="559b3c63266e5d5351f7665268263dbb9592f3c1c4569e7a4a75a15f17f0aedc") @@ -37,6 +47,12 @@ class Bwa(Package): when="target=aarch64:", ) + patch( + "https://github.com/lh3/bwa/commit/2a1ae7b6f34a96ea25be007ac9d91e57e9d32284.patch?full_index=1", + sha256="92191690850c131bd462816162697a79b63558094000badea87a0d5d1b669325", + when="@0.7.13:0.7.17", + ) + def install(self, spec, prefix): zlib_inc_path = spec["zlib-api"].prefix.include if platform.machine() == "aarch64": @@ -51,14 +67,6 @@ def install(self, spec, prefix): filter_file(r"^LIBS=", "LIBS=-L%s " % spec["zlib-api"].prefix.lib, "Makefile") # use spack C compiler filter_file("^CC=.*", "CC={0}".format(spack_cc), "Makefile") - # fix gcc 10+ errors - if self.spec.satisfies("%gcc@10:"): - filter_file( - "const uint8_t rle_auxtab[8]", - "extern const uint8_t rle_auxtab[8]", - "rle.h", - string=True, - ) make() mkdirp(prefix.bin) diff --git a/repos/spack_repo/builtin/packages/byobu/package.py b/repos/spack_repo/builtin/packages/byobu/package.py index 24685729906..0205813d182 100644 --- a/repos/spack_repo/builtin/packages/byobu/package.py +++ b/repos/spack_repo/builtin/packages/byobu/package.py @@ -11,16 +11,53 @@ class Byobu(AutotoolsPackage): """Byobu: Text-based window manager and terminal multiplexer.""" - homepage = "https://www.byobu.co/" - url = "https://launchpad.net/byobu/trunk/5.123/+download/byobu_5.123.orig.tar.gz" + homepage = "https://www.byobu.org/" - maintainers("matthiasdiener") + maintainers("ebagrenrut") license("GPL-3.0-or-later") + version("6.13", sha256="9690c629588e8f95d16b2461950d39934faaf8005dd2a283886d4e3bd6c86df6") version("5.131", sha256="77ac751ae79d8e3f0377ac64b64bc9738fa68d68466b8d2ff652b63b1d985e52") version("5.127", sha256="4bafc7cb69ff5b0ab6998816d58cd1ef7175e5de75abc1dd7ffd6d5288a4f63b") version("5.125", sha256="5022c82705a5d57f1d4e8dcb1819fd04628af2d4b4618b7d44fa27ebfcdda9db") version("5.123", sha256="2e5a5425368d2f74c0b8649ce88fc653420c248f6c7945b4b718f382adc5a67d") - depends_on("tmux", type=("build", "run")) + variant("python", default=True, description="Python support for byobu-config") + + # byobu 6 source is not pre-autoconfigured + depends_on("autoconf", when="@6:", type="build") + depends_on("automake", when="@6:", type="build") + depends_on("libtool", when="@6:", type="build") + + depends_on("coreutils", type=("build", "run")) + depends_on("findutils", type=("build", "run")) + depends_on("gawk", type=("build", "run")) + depends_on("grep", type=("build", "run")) + depends_on("sed", type=("build", "run")) + + # The `-h` argument to byobu commands invokes man + depends_on("man-db", type="run") + depends_on("screen", type="run") + depends_on("tmux", type="run") + + # newt and its snack Python module are needed for byobu-config. If the user + # does not want byobu@6 with a python in its spec, they can disable the + # python variant, but sacrifice the byobu-config functionality. + depends_on("newt+python", when="+python", type="run") + depends_on("python", when="+python", type="run") + + def url_for_version(self, version): + # byobu 6+ are released on GitHub + if version < Version("6"): + return ( + f"https://launchpad.net/byobu/trunk/{version}/+download/" + f"byobu_{version}.orig.tar.gz" + ) + + else: + return f"https://github.com/dustinkirkland/byobu/archive/refs/tags/{version}.tar.gz" + + @when("+python") + def setup_run_environment(self, env: EnvironmentModifications) -> None: + env.set("BYOBU_PYTHON", f"{self.spec['python'].command}") diff --git a/repos/spack_repo/builtin/packages/c/package.py b/repos/spack_repo/builtin/packages/c/package.py index 054eb51f8e7..fef6c1acef1 100644 --- a/repos/spack_repo/builtin/packages/c/package.py +++ b/repos/spack_repo/builtin/packages/c/package.py @@ -17,7 +17,7 @@ class C(Package): def test_c(self): """build and run C examples""" - cc = which(os.environ["CC"]) + cc = which(os.environ["CC"], required=True) expected = ["Hello world", "YES!"] test_source = self.test_suite.current_test_data_dir @@ -26,6 +26,6 @@ def test_c(self): with test_part(self, f"test_c_{test}", f"build and run {exe_name}"): filepath = join_path(test_source, test) cc("-o", exe_name, filepath) - exe = which(exe_name) + exe = which(exe_name, required=True) out = exe(output=str.split, error=str.split) check_outputs(expected, out) diff --git a/repos/spack_repo/builtin/packages/c_raft/package.py b/repos/spack_repo/builtin/packages/c_raft/package.py index 9c20ca4e6ca..f4510e93121 100644 --- a/repos/spack_repo/builtin/packages/c_raft/package.py +++ b/repos/spack_repo/builtin/packages/c_raft/package.py @@ -12,13 +12,31 @@ class CRaft(AutotoolsPackage): """C implementation of the Raft consensus protocol.""" homepage = "https://raft.readthedocs.io/en/latest/" - git = "https://github.com/canonical/raft.git" - url = "https://github.com/canonical/raft/archive/refs/tags/v0.17.1.tar.gz" + git = "https://github.com/cowsql/raft.git" + url = "https://github.com/cowsql/raft/archive/refs/tags/v0.17.1.tar.gz" maintainers("mdorier") - version("master", branch="master") - version("0.17.1", sha256="e31c7fafbdd5f94913161c5d64341a203364e512524b47295c97a91e83c4198b") + version("main", branch="main") + version("0.22.1", sha256="385f91a0b542ebe8b81c8f8500310dcd575fd028ea0cd2ede8807fa920dcf604") + version("0.22.0", sha256="1534146ea40ca0c29abd5369037bc14927f7acd001b61486739ba6b49a28bdff") + version("0.21.0", sha256="131385e50ed964eed5b5ebac2a8f2789493969b3de3ffb871c009ff2515fab0e") + version("0.20.0", sha256="adb110fd4f3982f26d1ff2644b25c623e6794aa159bf85c3ae4824e91ceb249a") + version("0.19.1", sha256="fb75ec93c4f8c161f73e08a4d0273f36817a20c91b89035abe793ca9b3dd6fba") + version("0.19.0", sha256="60d5af9a9ade3b290819b936754eeeacfc66769bc49c9f9dd7be89054e98907f") + version("0.18.3", sha256="8709bd4fda9e871bf54b929d32265ce54f304fce94527566d2c44f723753838b") + version("0.18.2", sha256="cc3e12877150cb9cdfa82486a9bfe39e4050dba8a6e8a55aa27c86b7d21237b9") + version("0.18.1", sha256="f863f395c0fefe9aa8491f1d1dd87686fa53f7fe2c2fd223e9a03b3141a08597") + version("0.17.7", sha256="7d0249953c2e2b112e9006cbefa32b8449def3b6ed79ca8e80ddb0937fca9c72") + version( + "0.17.1", + sha256="e31c7fafbdd5f94913161c5d64341a203364e512524b47295c97a91e83c4198b", + url="https://github.com/canonical/raft/archive/refs/tags/v0.17.1.tar.gz", + ) + + variant("uv", default=True, description="Enable libuv support") + variant("lz4", default=True, when="+uv", description="Enable lz4 support") + variant("legacy", default=False, when="@0.22.2:", description="Enable legacy API") depends_on("c", type="build") # generated @@ -27,14 +45,18 @@ class CRaft(AutotoolsPackage): depends_on("libtool", type="build") depends_on("m4", type="build") - variant("uv", default=True, description="Enable libuv support") - depends_on("libuv@1.18.0:", when="+uv") + depends_on("lz4", when="+lz4") def autoreconf(self, spec, prefix): autoreconf("--install", "--verbose", "--force") def configure_args(self): - args = ["--disable-lz4"] + args = [] + args += self.enable_or_disable("lz4") args += self.enable_or_disable("uv") + if "+legacy" in self.spec: + args += ["--enable-v0"] + else: + args += ["--disable-v0", "--disable-fixture"] return args diff --git a/repos/spack_repo/builtin/packages/ca_certificates_mozilla/package.py b/repos/spack_repo/builtin/packages/ca_certificates_mozilla/package.py index eb36f819b34..a233834e90c 100644 --- a/repos/spack_repo/builtin/packages/ca_certificates_mozilla/package.py +++ b/repos/spack_repo/builtin/packages/ca_certificates_mozilla/package.py @@ -16,108 +16,21 @@ class CaCertificatesMozilla(Package): maintainers("haampie") version( - "2025-05-20", - sha256="ab3ee3651977a4178a702b0b828a4ee7b2bbb9127235b0ab740e2e15974bf5db", + "2026-03-19", + sha256="b6e66569cc3d438dd5abe514d0df50005d570bfc96c14dca8f768d020cb96171", expand=False, ) + version( + "2025-08-12", + sha256="64dfd5b1026700e0a0a324964749da9adc69ae5e51e899bf16ff47d6fd0e9a5e", + expand=False, + deprecated=True, + ) - with default_args(deprecated=True, expand=False): - version( - "2025-02-25", sha256="50a6277ec69113f00c5fd45f09e8b97a4b3e32daa35d3a95ab30137a55386cef" - ) - version( - "2024-12-31", sha256="a3f328c21e39ddd1f2be1cea43ac0dec819eaa20a90425d7da901a11531b3aa5" - ) - version( - "2024-11-26", sha256="bb1782d281fe60d4a2dcf41bc229abe3e46c280212597d4abcc25bddf667739b" - ) - version( - "2024-09-24", sha256="189d3cf6d103185fba06d76c1af915263c6d42225481a1759e853b33ac857540" - ) - version( - "2024-07-02", sha256="1bf458412568e134a4514f5e170a328d11091e071c7110955c9884ed87972ac9" - ) - version( - "2024-03-11", sha256="1794c1d4f7055b7d02c2170337b61b48a2ef6c90d77e95444fd2596f4cac609f" - ) - version( - "2023-12-12", sha256="ccbdfc2fe1a0d7bbbb9cc15710271acf1bb1afe4c8f1725fe95c4c7733fcbe5a" - ) - version( - "2023-08-22", sha256="23c2469e2a568362a62eecf1b49ed90a15621e6fa30e29947ded3436422de9b9" - ) - version( - "2023-05-30", sha256="5fadcae90aa4ae041150f8e2d26c37d980522cdb49f923fc1e1b5eb8d74e71ad" - ) - version( - "2023-01-10", sha256="fb1ecd641d0a02c01bc9036d513cb658bbda62a75e246bedbc01764560a639f0" - ) - version( - "2022-10-11", sha256="2cff03f9efdaf52626bd1b451d700605dc1ea000c5da56bd0fc59f8f43071040" - ) - version( - "2022-07-19", sha256="6ed95025fba2aef0ce7b647607225745624497f876d74ef6ec22b26e73e9de77" - ) - version( - "2022-04-26", sha256="08df40e8f528ed283b0e480ba4bcdbfdd2fdcf695a7ada1668243072d80f8b6f" - ) - version( - "2022-03-29", sha256="1979e7fe618c51ed1c9df43bba92f977a0d3fe7497ffa2a5e80dfc559a1e5a29" - ) - version( - "2022-03-18", sha256="2d0575e481482551a6a4f9152e7d2ab4bafaeaee5f2606edb829c2fdb3713336" - ) - version( - "2022-02-01", sha256="1d9195b76d2ea25c2b5ae9bee52d05075244d78fcd9c58ee0b6fac47d395a5eb" - ) - version( - "2021-10-26", sha256="ae31ecb3c6e9ff3154cb7a55f017090448f88482f0e94ac927c0c67a1f33b9cf" - ) - version( - "2021-09-30", sha256="f524fc21859b776e18df01a87880efa198112214e13494275dbcbd9bcb71d976" - ) - version( - "2021-07-05", sha256="a3b534269c6974631db35f952e8d7c7dbf3d81ab329a232df575c2661de1214a" - ) - version( - "2021-05-25", sha256="3a32ad57e7f5556e36ede625b854057ac51f996d59e0952c207040077cbe48a9" - ) - version( - "2021-04-13", sha256="533610ad2b004c1622a40622f86ced5e89762e1c0e4b3ae08b31b240d863e91f" - ) - version( - "2021-01-19", sha256="e010c0c071a2c79a76aa3c289dc7e4ac4ed38492bfda06d766a80b707ebd2f29" - ) - version( - "2020-12-08", sha256="313d562594ebd07846ad6b840dd18993f22e0f8b3f275d9aacfae118f4f00fb7" - ) - version( - "2020-10-14", sha256="bb28d145ed1a4ee67253d8ddb11268069c9dafe3db25a9eee654974c4e43eee5" - ) - version( - "2020-07-22", sha256="2782f0f8e89c786f40240fc1916677be660fb8d8e25dede50c9f6f7b0c2c2178" - ) - version( - "2020-06-24", sha256="726889705b00f736200ed7999f7a50021b8735d53228d679c4e6665aa3b44987" - ) - version( - "2020-01-01", sha256="adf770dfd574a0d6026bfaa270cb6879b063957177a991d453ff1d302c02081f" - ) - version( - "2019-11-27", sha256="0d98a1a961aab523c9dc547e315e1d79e887dea575426ff03567e455fc0b66b4" - ) - version( - "2019-10-16", sha256="5cd8052fcf548ba7e08899d8458a32942bf70450c9af67a0850b4c711804a2e4" - ) - version( - "2019-08-28", sha256="38b6230aa4bee062cd34ee0ff6da173250899642b1937fc130896290b6bd91e3" - ) - - # Make spack checksum work def url_for_version(self, version): - return "https://curl.se/ca/cacert-{0}.pem".format(version) + return f"https://curl.se/ca/cacert-{version}.pem" - def setup_dependent_package(self, module, dep_spec): + def setup_dependent_package(self, module, dependent_spec): """Returns the absolute path to the bundled certificates""" self.spec.pem_path = join_path(self.prefix.share, "cacert.pem") @@ -126,4 +39,4 @@ def install(self, spec, prefix): share = join_path(prefix, "share") # https://github.com/spack/spack/issues/32948 mkdirp(share) - install("cacert-{0}.pem".format(spec.version), join_path(share, "cacert.pem")) + install(f"cacert-{spec.version}.pem", join_path(share, "cacert.pem")) diff --git a/repos/spack_repo/builtin/packages/cabana/package.py b/repos/spack_repo/builtin/packages/cabana/package.py index 27c0d8f27ce..7e2a669aba4 100644 --- a/repos/spack_repo/builtin/packages/cabana/package.py +++ b/repos/spack_repo/builtin/packages/cabana/package.py @@ -28,20 +28,19 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage): version("0.5.0", sha256="b7579d44e106d764d82b0539285385d28f7bbb911a572efd05c711b28b85d8b1") version("0.4.0", sha256="c347d23dc4a5204f9cc5906ccf3454f0b0b1612351bbe0d1c58b14cddde81e85") version("0.3.0", sha256="fb67ab9aaf254b103ae0eb5cc913ddae3bf3cd0cf6010e9686e577a2981ca84f") - version("0.2.0", sha256="3e0c0e224e90f4997f6c7e2b92f00ffa18f8bcff72f789e0908cea0828afc2cb") - version("0.1.0", sha256="3280712facf6932b9d1aff375b24c932abb9f60a8addb0c0a1950afd0cb9b9cf") - version("0.1.0-rc0", sha256="73754d38aaa0c2a1e012be6959787108fec142294774c23f70292f59c1bdc6c5") _kokkos_backends = Kokkos.devices_variants for _backend in _kokkos_backends: - _deflt, _descr = _kokkos_backends[_backend] - variant(_backend.lower(), default=_deflt, description=_descr) + _deflt, _when, _descr = _kokkos_backends[_backend] + if _when is not None: + _when = f"^kokkos{_when}" + variant(_backend.lower(), default=_deflt, description=_descr, when=_when) variant("shared", default=True, description="Build shared libraries") variant("mpi", default=True, description="Build with mpi support") variant("all", default=False, description="Build with ALL support") variant("arborx", default=False, description="Build with ArborX support") - variant("heffte", default=False, description="Build with heFFTe support") + variant("heffte", default=False, description="Build with heFFTe support", when="@0.5:") variant("hypre", default=False, description="Build with HYPRE support") variant("silo", default=False, description="Build with SILO support") variant("hdf5", default=False, description="Build with HDF5 support") @@ -58,16 +57,14 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage): depends_on("cmake@3.16:", type="build", when="@0.5.0:") depends_on("googletest", type="build", when="+testing") - _versions = {":0.2": "-legacy", "0.3:": "@3.1:", "0.4:": "@3.2:", "0.6:": "@3.7:"} + + depends_on("kokkos") + _versions = {"0.3:": "@3.1:", "0.4:": "@3.2:", "0.6:": "@3.7:"} for _version in _versions: _kk_version = _versions[_version] for _backend in _kokkos_backends: - if _kk_version == "-legacy" and _backend == "pthread": - _kk_spec = "kokkos-legacy+pthreads" - elif _kk_version == "-legacy" and _backend not in ["serial", "openmp", "cuda"]: - continue # Handled separately by Cuda/ROCmPackage below - elif _backend == "cuda" or _backend == "hip": + if _backend == "cuda" or _backend == "hip": continue else: _kk_spec = "kokkos{0}+{1}".format(_kk_version, _backend) @@ -97,10 +94,11 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage): # Dependencies for subpackages depends_on("all-library", when="@0.5.0:+all") - depends_on("arborx", when="@0.3.0:+arborx") - depends_on("hypre-cmake@2.22.0:", when="@0.4.0:+hypre") - depends_on("hypre-cmake@2.22.1:", when="@0.5.0:+hypre") - depends_on("heffte@2.0.0", when="@0.4.0+heffte") + depends_on("arborx", when="+arborx @master") + depends_on("arborx@1.7", when="+arborx @:0.7.0") + depends_on("hypre-cmake@2.22.0:", when="@0.4.0 +hypre") + depends_on("hypre-cmake@2.22.1:", when="@0.5.0:0.7.0 +hypre") + depends_on("hypre@3.0.0:", when="@0.8.0:+hypre") depends_on("heffte@2.1.0", when="@0.5.0+heffte") depends_on("heffte@2.3.0:", when="@0.6.0:+heffte") depends_on("silo", when="@0.5.0:+silo") @@ -121,11 +119,13 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage): conflicts("+grid", when="@:0.6 %gcc@13:") # Conflict variants only available in newer versions of cabana - conflicts("+rocm", when="@:0.2.0") conflicts("+sycl", when="@:0.3.0") conflicts("+silo", when="@:0.3.0") conflicts("+hdf5", when="@:0.5.0") + # Hypre doesn't support rocm for older versions + conflicts("+hypre +rocm", when="@:0.7.0") + @when("+mpi") def patch(self): # CMakeLists.txt tries to enable C when MPI is requsted, but too late: @@ -137,10 +137,6 @@ def cmake_args(self): enable = ["CAJITA", "TESTING", "EXAMPLES", "PERFORMANCE_TESTING"] require = ["ALL", "ARBORX", "HEFFTE", "HYPRE", "SILO", "HDF5"] - # These variables were removed in 0.3.0 (where backends are - # automatically used from Kokkos) - if self.spec.satisfies("@:0.2.0"): - enable += ["Serial", "OpenMP", "Cuda"] # MPI was changed from ENABLE to REQUIRE in 0.4.0 if self.spec.satisfies("@:0.3.0"): enable += ["MPI"] diff --git a/repos/spack_repo/builtin/packages/cabana_pd/package.py b/repos/spack_repo/builtin/packages/cabana_pd/package.py new file mode 100644 index 00000000000..32c60f06950 --- /dev/null +++ b/repos/spack_repo/builtin/packages/cabana_pd/package.py @@ -0,0 +1,58 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage + +from spack.package import * + + +class CabanaPd(CMakePackage, CudaPackage, ROCmPackage): + """Peridynamics with the Cabana library""" + + homepage = "https://github.com/ORNL/CabanaPD" + url = "https://github.com/ORNL/CabanaPD/archive/refs/tags/0.4.0.tar.gz" + + maintainers("streeve") + license("BSD 3-Clause", checked_by="cmelone") + + version("0.4.0", sha256="a8971284d3c3d0b5f0bf7ee64e893a2b1e2d094cc0ba62b3c04b1f2fda476bca") + + variant("hdf5", default=False, description="Enable HDF5 support") + variant("silo", default=False, description="Enable SILO support") + variant("tests", default=False, description="Enable unit tests") + + depends_on("cmake@3.11:", type="build") + depends_on("cxx", type="build") + depends_on("c", type="build") + + # cannot simultaneously use hipcc and another c++ compiler + requires("%cxx=rocmcc", when="+rocm") + + depends_on("cabana+grid@0.7.0:") + depends_on("nlohmann-json@3.10.0:") + depends_on("cabana+hdf5", when="+hdf5") + depends_on("cabana+silo", when="+silo") + depends_on("googletest", when="+tests") + + for arch in CudaPackage.cuda_arch_values: + cuda_dep = f"+cuda cuda_arch={arch}" + depends_on(f"cabana {cuda_dep}", when=cuda_dep) + + for arch in ROCmPackage.amdgpu_targets: + rocm_dep = f"+rocm amdgpu_target={arch}" + depends_on(f"cabana {rocm_dep}", when=rocm_dep) + + def cmake_args(self): + args = [] + + args.append(self.define_from_variant("CabanaPD_ENABLE_TESTING", "tests")) + + # use hipcc as the cxx compiler if we are compiling for rocm + # keeps the wrapper instead of changing CMAKE_CXX_COMPILER + if self.spec.satisfies("+rocm"): + env["SPACK_CXX"] = self.spec["hip"].hipcc + + return args diff --git a/repos/spack_repo/builtin/packages/cairo/package.py b/repos/spack_repo/builtin/packages/cairo/package.py index 3d22c52412b..a06daa373ef 100644 --- a/repos/spack_repo/builtin/packages/cairo/package.py +++ b/repos/spack_repo/builtin/packages/cairo/package.py @@ -18,6 +18,7 @@ class Cairo(AutotoolsPackage, MesonPackage): license("LGPL-2.1-or-later OR MPL-1.1", checked_by="tgamblin") + version("1.18.4", sha256="445ed8208a6e4823de1226a74ca319d3600e83f6369f99b14265006599c32ccb") version("1.18.2", sha256="a62b9bb42425e844cc3d6ddde043ff39dbabedd1542eba57a2eb79f85889d45a") version("1.18.0", sha256="243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64") version( @@ -45,14 +46,14 @@ class Cairo(AutotoolsPackage, MesonPackage): variant("X", default=False, description="Build with X11 support") variant("gobject", default=False, description="Enable cairo's gobject functions feature") - variant("svg", default=False, description="Enable cairo's SVG functions feature") - variant("png", default=False, description="Enable cairo's PNG functions feature") + variant("svg", default=True, description="Enable cairo's SVG functions feature") + variant("png", default=True, description="Enable cairo's PNG functions feature") # doesn't exist @1.17.8: but kept as compatibility - variant("pdf", default=False, description="Enable cairo's PDF surface backend feature") + variant("pdf", default=True, description="Enable cairo's PDF surface backend feature") - variant("ft", default=False, description="Enable cairo's FreeType font backend feature") - variant("fc", default=False, description="Enable cairo's Fontconfig font backend feature") + variant("ft", default=True, description="Enable cairo's FreeType font backend feature") + variant("fc", default=True, description="Enable cairo's Fontconfig font backend feature") # variants and build system depends for the autotools builds with when("build_system=autotools"): @@ -80,7 +81,7 @@ class Cairo(AutotoolsPackage, MesonPackage): variant("dwrite", default=False, description="Microsoft Windows DWrite font backend") variant( "zlib", - default=False, + default=True, description="Enable cairo's script, ps, pdf, xml functions feature", ) @@ -90,8 +91,8 @@ class Cairo(AutotoolsPackage, MesonPackage): # meson seems to have assumptions about what is enabled/disabled # so this protects against incompatible combinations requires( - "~zlib~ft~fc~png~pdf", "+zlib+ft+fc+png+pdf", + "~zlib~ft~fc~png~pdf", policy="one_of", msg="these variants must be activated, or deactivated, together", ) @@ -142,7 +143,7 @@ class Cairo(AutotoolsPackage, MesonPackage): # patch from https://gitlab.freedesktop.org/cairo/cairo/issues/346 patch("fontconfig.patch", when="@1.16.0:1.17.2") # Don't regenerate docs to avoid a dependency on gtk-doc - patch("disable-gtk-docs.patch", when="build_system=autotools ^autoconf@2.70:") + patch("disable-gtk-docs.patch", when="build_system=autotools") class MesonBuilder(meson.MesonBuilder): @@ -178,7 +179,7 @@ class AutotoolsBuilder(autotools.AutotoolsBuilder): def autoreconf(self, pkg, spec, prefix): # Regenerate, directing the script *not* to call configure before Spack # does - which("sh")("./autogen.sh", extra_env={"NOCONFIGURE": "1"}) + which("sh", required=True)("./autogen.sh", extra_env={"NOCONFIGURE": "1"}) def configure_args(self): args = ["--disable-trace", "--enable-tee"] # can cause problems with libiberty @@ -196,7 +197,7 @@ def configure_args(self): args.extend(self.with_or_without("pic")) if self.spec.satisfies("+ft ^freetype~shared"): - pkgconf = which("pkg-config") + pkgconf = which("pkg-config", required=True) ldflags = pkgconf("--libs-only-L", "--static", "freetype2", output=str) libs = pkgconf("--libs-only-l", "--static", "freetype2", output=str) args.append(f"LDFLAGS={ldflags}") diff --git a/repos/spack_repo/builtin/packages/caliper/libunwind.patch b/repos/spack_repo/builtin/packages/caliper/libunwind.patch new file mode 100644 index 00000000000..9fe02b46d64 --- /dev/null +++ b/repos/spack_repo/builtin/packages/caliper/libunwind.patch @@ -0,0 +1,52 @@ +diff --git a/cmake/FindLibunwind.cmake b/cmake/FindLibunwind.cmake +index 04f325d9..7868138f 100644 +--- a/cmake/FindLibunwind.cmake ++++ b/cmake/FindLibunwind.cmake +@@ -3,20 +3,38 @@ + # + # LIBUNWIND_PREFIX - Set to the libunwind installation directory + # +-# LIBUNWIND_INCLUDE_DIR - Path to libunwind.h ++# LIBUNWIND_INCLUDE_DIRS - Path to libunwind.h + # LIBUNWIND_LIBRARIES - List of libraries for using libunwind + # LIBUNWIND_FOUND - True if libunwind was found + +-find_path(LIBUNWIND_PREFIX +- include/libunwind.h) ++if(LIBUNWIND_PREFIX) ++ # When prefix is explicitly provided, only look there ++ find_library(LIBUNWIND_LIBRARIES ++ NAMES unwind ++ PATHS ${LIBUNWIND_PREFIX}/lib ++ NO_DEFAULT_PATH) + +-find_library(LIBUNWIND_LIBRARIES +- NAMES unwind +- HINTS ${LIBUNWIND_PREFIX}/lib) ++ find_path(LIBUNWIND_INCLUDE_DIRS ++ NAMES libunwind.h ++ PATHS ${LIBUNWIND_PREFIX}/include ++ NO_DEFAULT_PATH) + +-find_path(LIBUNWIND_INCLUDE_DIRS +- NAMES libunwind.h +- HINTS ${LIBUNWIND_PREFIX}/include) ++ if(NOT LIBUNWIND_LIBRARIES OR NOT LIBUNWIND_INCLUDE_DIRS) ++ message(WARNING "LIBUNWIND_PREFIX was set to '${LIBUNWIND_PREFIX}' but libunwind was not found there") ++ endif() ++else() ++ # Try to find libunwind in standard locations ++ find_path(LIBUNWIND_PREFIX ++ include/libunwind.h) ++ ++ find_library(LIBUNWIND_LIBRARIES ++ NAMES unwind ++ HINTS ${LIBUNWIND_PREFIX}/lib) ++ ++ find_path(LIBUNWIND_INCLUDE_DIRS ++ NAMES libunwind.h ++ HINTS ${LIBUNWIND_PREFIX}/include) ++endif() + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(Libunwind DEFAULT_MSG LIBUNWIND_LIBRARIES LIBUNWIND_INCLUDE_DIRS) diff --git a/repos/spack_repo/builtin/packages/caliper/package.py b/repos/spack_repo/builtin/packages/caliper/package.py index a52b2699a04..dd0c4e7fcf2 100644 --- a/repos/spack_repo/builtin/packages/caliper/package.py +++ b/repos/spack_repo/builtin/packages/caliper/package.py @@ -3,6 +3,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os +import re import socket import sys @@ -10,6 +11,7 @@ CachedCMakePackage, cmake_cache_option, cmake_cache_path, + cmake_cache_string, ) from spack_repo.builtin.build_systems.cuda import CudaPackage from spack_repo.builtin.build_systems.rocm import ROCmPackage @@ -26,7 +28,7 @@ class Caliper(CachedCMakePackage, CudaPackage, ROCmPackage): homepage = "https://github.com/LLNL/Caliper" git = "https://github.com/LLNL/Caliper.git" - url = "https://github.com/LLNL/Caliper/archive/v2.12.1.tar.gz" + url = "https://github.com/LLNL/Caliper/archive/v2.14.0.tar.gz" tags = ["e4s", "radiuss"] maintainers("daboehme", "adrienbernede") @@ -36,58 +38,14 @@ class Caliper(CachedCMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") version("master", branch="master") + version("2.14.0", sha256="b42c35dfbe485960dd326033893dae37ac00d9807c5c3e6b5b1f396bc4af273f") + version("2.13.1", sha256="7cef0173e0e0673abb7943a2641b660adfbc3d6bc4b33941ab4f431f92a4d016") + version("2.13.0", sha256="28c6e8fd940bdee9e80d1e8ae1ce0f76d6a690cbb6242d4eec115d6c0204e331") version("2.12.1", sha256="2b5a8f98382c94dc75cc3f4517c758eaf9a3f9cea0a8dbdc7b38506060d6955c") version("2.11.0", sha256="b86b733cbb73495d5f3fe06e6a9885ec77365c8aa9195e7654581180adc2217c") version("2.10.0", sha256="14c4fb5edd5e67808d581523b4f8f05ace8549698c0e90d84b53171a77f58565") version("2.9.1", sha256="4771d630de505eff9227e0ec498d0da33ae6f9c34df23cb201b56181b8759e9e") version("2.9.0", sha256="507ea74be64a2dfd111b292c24c4f55f459257528ba51a5242313fa50978371f") - version( - "2.8.0", - sha256="17807b364b5ac4b05997ead41bd173e773f9a26ff573ff2fe61e0e70eab496e4", - deprecated=True, - ) - version( - "2.7.0", - sha256="b3bf290ec2692284c6b4f54cc0c507b5700c536571d3e1a66e56626618024b2b", - deprecated=True, - ) - version( - "2.6.0", - sha256="6efcd3e4845cc9a6169e0d934840766b12182c6d09aa3ceca4ae776e23b6360f", - deprecated=True, - ) - version( - "2.5.0", - sha256="d553e60697d61c53de369b9ca464eb30710bda90fba9671201543b64eeac943c", - deprecated=True, - ) - version( - "2.4.0", tag="v2.4.0", commit="30577b4b8beae104b2b35ed487fec52590a99b3d", deprecated=True - ) - version( - "2.3.0", tag="v2.3.0", commit="9fd89bb0120750d1f9dfe37bd963e24e478a2a20", deprecated=True - ) - version( - "2.2.0", tag="v2.2.0", commit="c408e9b3642c7aa80eff37b0826d819c57e7bc04", deprecated=True - ) - version( - "2.1.1", tag="v2.1.1", commit="0593b0e01c1d8d3e50c990399cc0fee403485599", deprecated=True - ) - version( - "2.0.1", tag="v2.0.1", commit="4d7ff46381c53a461e62edd949e2d9dea9db7b08", deprecated=True - ) - version( - "1.9.1", tag="v1.9.1", commit="cfc1defbbee20b50dd3e3477badd09a92b1df970", deprecated=True - ) - version( - "1.9.0", tag="v1.9.0", commit="8356e747349b285aa621c5b74e71559f0babc4a1", deprecated=True - ) - version( - "1.8.0", tag="v1.8.0", commit="117c1ef596b617dc71407b8b67eebef094a654f8", deprecated=True - ) - version( - "1.7.0", tag="v1.7.0", commit="898277c93d884d4e7ca1ffcf3bbea81d22364f26", deprecated=True - ) is_linux = sys.platform.startswith("linux") variant("shared", default=True, description="Build shared libraries") @@ -104,24 +62,24 @@ class Caliper(CachedCMakePackage, CudaPackage, ROCmPackage): # Gotcha is Linux-only variant("gotcha", default=is_linux, description="Enable GOTCHA support") variant("sampler", default=is_linux, description="Enable sampling support on Linux") - variant("sosflow", default=False, description="Enable SOSflow support") variant("fortran", default=False, description="Enable Fortran support") variant("variorum", default=False, description="Enable Variorum support") variant("vtune", default=False, description="Enable Intel Vtune support") - variant("kokkos", default=True, when="@2.3.0:", description="Enable Kokkos profiling support") + variant("kokkos", default=True, description="Enable Kokkos profiling support") variant("tests", default=False, description="Enable tests") variant("tools", default=True, description="Enable tools") - variant("python", default=False, when="@v2.12:", description="Build Python bindings") + variant("python", default=False, description="Build Python bindings") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", when="+fortran", type="build") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("rocprofiler-sdk", when="@2.14: +rocm") - depends_on("adiak@0.1:0", when="@2.2:2.10 +adiak") + depends_on("adiak@0.1:0", when="@:2.10 +adiak") depends_on("adiak@0.4:0", when="@2.11: +adiak") - depends_on("papi@5.3:5", when="@:2.2 +papi") - depends_on("papi@5.3:", when="@2.3: +papi") + depends_on("papi@5.3:", when="+papi") depends_on("libpfm4@4.8:4", when="+libpfm") @@ -131,23 +89,24 @@ class Caliper(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("variorum", when="+variorum") depends_on("intel-oneapi-vtune", when="+vtune") - depends_on("sosflow@spack", when="@1.0:1+sosflow") - depends_on("cmake", type="build") depends_on("python", type="build") depends_on("python@3", when="+python", type=("build", "link", "run")) depends_on("py-pybind11", when="+python", type=("build", "link", "run")) - # sosflow support not yet in 2.0 - conflicts("+sosflow", "@2:") - conflicts("+adiak", "@:2.1") - conflicts("+libdw", "@:2.4") - conflicts("+rocm", "@:2.7") conflicts("+rocm+cuda") # Legacy nvtx is only supported until cuda@12.8, newer cuda only provides nvtx3. - conflicts("^cuda@12.9:", "@:2.12.1") + depends_on("cuda@:12.8", when="@:2.13.1 +cuda") + # rocprofiler-sdk is only supported since rocm@6.2.4. + depends_on("llvm-amdgpu@6.2.4:", when="@2.14: +rocm") + patch("libunwind.patch", when="@:2.13") + patch( + "https://github.com/LLNL/Caliper/commit/648f8ab496a4a2c3f38e0cfa572340e429d8c76e.patch?full_index=1", + sha256="d947b5df6b68a24f516bb3b4ec04c28d4b8246ac0cbe664cf113dd2b6ca92073", + when="@2.12:2.13", + ) patch("for_aarch64.patch", when="@:2.11 target=aarch64:") patch( "sampler-service-missing-libunwind-include-dir.patch", @@ -199,14 +158,64 @@ def initconfig_hardware_entries(self): entries.append(cmake_cache_option("WITH_NVTX", True)) entries.append(cmake_cache_path("CUDA_TOOLKIT_ROOT_DIR", spec["cuda"].prefix)) entries.append(cmake_cache_path("CUPTI_PREFIX", spec["cuda"].prefix)) + + # CUDA configuration from cuda_for_radiuss_projects + cuda_flags = [] + if not spec.satisfies("cuda_arch=none"): + cuda_archs = ";".join(spec.variants["cuda_arch"].value) + entries.append(cmake_cache_string("CMAKE_CUDA_ARCHITECTURES", cuda_archs)) + + # gcc-toolchain support + gcc_toolchain_regex = re.compile(".*gcc-toolchain.*") + using_toolchain = list( + filter(gcc_toolchain_regex.match, spec.compiler_flags["cxxflags"]) + ) + if using_toolchain: + cuda_flags.append("-Xcompiler {}".format(using_toolchain[0])) + + if cuda_flags: + entries.append(cmake_cache_string("CMAKE_CUDA_FLAGS", " ".join(cuda_flags))) else: entries.append(cmake_cache_option("WITH_CUPTI", False)) entries.append(cmake_cache_option("WITH_NVTX", False)) if spec.satisfies("+rocm"): - entries.append(cmake_cache_option("WITH_ROCTRACER", True)) - entries.append(cmake_cache_option("WITH_ROCTX", True)) + # HIP configuration from hip_for_radiuss_projects + rocm_root = spec["llvm-amdgpu"].prefix + gcc_toolchain_regex = re.compile(".*gcc-toolchain.*") + using_toolchain = list( + filter(gcc_toolchain_regex.match, spec.compiler_flags["cxxflags"]) + ) + hip_link_flags = "" + + if using_toolchain: + gcc_prefix = using_toolchain[0] + entries.append( + cmake_cache_string("HIP_CLANG_FLAGS", "--gcc-toolchain={0}".format(gcc_prefix)) + ) + entries.append( + cmake_cache_string( + "CMAKE_EXE_LINKER_FLAGS", + hip_link_flags + " -Wl,-rpath={0}/lib64".format(gcc_prefix), + ) + ) + else: + entries.append( + cmake_cache_string( + "CMAKE_EXE_LINKER_FLAGS", "-Wl,-rpath={0}/llvm/lib/".format(rocm_root) + ) + ) + + if spec.satisfies("@2.14:"): + entries.append(cmake_cache_option("WITH_ROCPROFILER", True)) + entries.append(cmake_cache_option("WITH_ROCTRACER", False)) + entries.append(cmake_cache_option("WITH_ROCTX", False)) + else: + entries.append(cmake_cache_option("WITH_ROCPROFILER", False)) + entries.append(cmake_cache_option("WITH_ROCTRACER", True)) + entries.append(cmake_cache_option("WITH_ROCTX", True)) else: + entries.append(cmake_cache_option("WITH_ROCPROFILER", False)) entries.append(cmake_cache_option("WITH_ROCTRACER", False)) entries.append(cmake_cache_option("WITH_ROCTX", False)) @@ -263,10 +272,7 @@ def initconfig_package_entries(self): entries.append(cmake_cache_option("WITH_VARIORUM", spec.satisfies("+variorum"))) entries.append(cmake_cache_option("WITH_VTUNE", spec.satisfies("+vtune"))) entries.append(cmake_cache_option("WITH_PYTHON_BINDINGS", spec.satisfies("+python"))) - - # -DWITH_CALLPATH was renamed -DWITH_LIBUNWIND in 2.5 - callpath_flag = "LIBUNWIND" if spec.satisfies("@2.5:") else "CALLPATH" - entries.append(cmake_cache_option("WITH_%s" % callpath_flag, spec.satisfies("+libunwind"))) + entries.append(cmake_cache_option("WITH_LIBUNWIND", spec.satisfies("+libunwind"))) return entries @@ -296,7 +302,7 @@ def test_cxx_example(self): lib_dir = self.prefix.lib if os.path.exists(self.prefix.lib) else self.prefix.lib64 - cxx = which(os.environ["CXX"]) + cxx = which(os.environ["CXX"], required=True) test_dir = os.path.dirname(source_path) with working_dir(test_dir): cxx( @@ -310,5 +316,5 @@ def test_cxx_example(self): "-lstdc++", ) - cxx_example = which(exe) + cxx_example = which(exe, required=True) cxx_example() diff --git a/repos/spack_repo/builtin/packages/callpath/package.py b/repos/spack_repo/builtin/packages/callpath/package.py index 5d16e1448c1..627d7f40eb5 100644 --- a/repos/spack_repo/builtin/packages/callpath/package.py +++ b/repos/spack_repo/builtin/packages/callpath/package.py @@ -32,8 +32,12 @@ def cmake_args(self): # TODO: offer options for the walker used. args = ["-DCALLPATH_WALKER=dyninst"] - if self.spec.satisfies("^dyninst@9.3.0:"): - std_flag = self.compiler.cxx11_flag - args.append("-DCMAKE_CXX_FLAGS='{0} -fpermissive'".format(std_flag)) + std_flag = self.compiler.cxx11_flag + flags = [std_flag, "-fpermissive"] + + if self.spec.satisfies("^tbb@2021.1:"): + flags.append("-DDYNINST_TBB_HAS_VERSION_H") + + args.append("-DCMAKE_CXX_FLAGS={0}".format(" ".join(flags))) return args diff --git a/repos/spack_repo/builtin/packages/camp/package.py b/repos/spack_repo/builtin/packages/camp/package.py index b541df0f368..83e933808bc 100644 --- a/repos/spack_repo/builtin/packages/camp/package.py +++ b/repos/spack_repo/builtin/packages/camp/package.py @@ -25,6 +25,24 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") version("main", branch="main", submodules=False) + version( + "2025.12.0", + tag="v2025.12.0", + commit="a8caefa9f4c811b1a114b4ed2c9b681d40f12325", + submodules=False, + ) + version( + "2025.09.2", + tag="v2025.09.2", + commit="4070ce93a802849d61037310a87c50cc24c9e498", + submodules=False, + ) + version( + "2025.09.0", + tag="v2025.09.0", + commit="b642f29b9d0eee9113bea2791958c29243063e5c", + submodules=False, + ) version( "2025.03.0", tag="v2025.03.0", @@ -77,6 +95,8 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage): depends_on("cub", when="^cuda@:10") depends_on("blt", type="build") + depends_on("blt@0.7.1:", type="build", when="@2025.09.0:") + depends_on("blt@0.7.0:", type="build", when="@2025.03.0:") depends_on("blt@0.6.2:", type="build", when="@2024.02.1:") depends_on("blt@0.6.1", type="build", when="@2024.02.0") depends_on("blt@0.5.0:0.5.3", type="build", when="@2022.03.0:2023.06.0") @@ -117,7 +137,8 @@ def cmake_args(self): options.append(self.define_from_variant("ENABLE_HIP", "rocm")) if spec.satisfies("+rocm"): - options.append("-DHIP_ROOT_DIR={0}".format(spec["hip"].prefix)) + rocm_root = spec["llvm-amdgpu"].prefix + options.append(self.define("ROCM_PATH", rocm_root)) archs = ";".join(self.spec.variants["amdgpu_target"].value) options.append("-DCMAKE_HIP_ARCHITECTURES={0}".format(archs)) diff --git a/repos/spack_repo/builtin/packages/cantera/package.py b/repos/spack_repo/builtin/packages/cantera/package.py index 2fc1a94b24c..cb4f3aa3cd4 100644 --- a/repos/spack_repo/builtin/packages/cantera/package.py +++ b/repos/spack_repo/builtin/packages/cantera/package.py @@ -10,39 +10,183 @@ from spack.package import * +def submodules(package): + submodules = [] + if package is not None and package.spec.satisfies("~external-eigen"): + submodules.append("ext/eigen") + if package is not None and package.spec.satisfies("~external-fmt"): + submodules.append("ext/fmt") + if package is not None and package.spec.satisfies("~external-googletest"): + submodules.append("ext/googletest") + if package is not None and package.spec.satisfies("~external-sundials"): + submodules.append("ext/sundials") + if ( + package is not None + and package.spec.satisfies("~external-highfive") + and package.spec.satisfies("@3.0.0:") + ): + submodules.append("ext/HighFive") + if ( + package is not None + and package.spec.satisfies("~external-yamlcpp") + and package.spec.satisfies("@2.5.1:") + ): + submodules.append("ext/yaml-cpp") + return submodules + + class Cantera(SConsPackage): - """Cantera is a suite of object-oriented software tools for problems - involving chemical kinetics, thermodynamics, and/or transport processes.""" + """Cantera is an open-source suite of tools for problems involving + chemical kinetics, thermodynamics, and transport processes.""" homepage = "https://www.cantera.org/docs/sphinx/html/index.html" url = "https://github.com/Cantera/cantera/archive/v2.5.1.tar.gz" - - version("2.5.1", sha256="59f673cec686bc9b1eeccc1b1c9158a3978a3abe7491d00e8b355908c1c3be0a") - version("2.4.0", sha256="0dc771693b657d8f4ba835dd229939e5b9cfd8348d2f5ba82775451a524365a5") - version("2.3.0", sha256="06624f0f06bdd2acc9c0dba13443d945323ba40f68a9d422d95247c02e539b57") - version("2.2.1", sha256="c7bca241848f541466f56e479402521c618410168e8983e2b54ae48888480e1e") - - variant("python", default=False, description="Build the Cantera Python module") - variant("matlab", default=False, description="Build the Cantera Matlab toolbox") - variant("sundials", default=True, description="Build with Sundials") + git = "https://github.com/Cantera/cantera.git" + + version( + "3.2.0", + tag="v3.2.0", + commit="4a8358eb80cfeb50474386b5f9ec0b3a83519889", + submodules=submodules, + ) + version( + "3.1.0", + tag="v3.1.0", + commit="6e0027548cf295bd478b8acfe34816f2db6dd58b", + submodules=submodules, + ) + version( + "3.0.0", + tag="v3.0.0", + commit="806842dacc59203cfe98b8467a27a6b386cd5ece", + submodules=submodules, + ) + + version( + "2.6.0", + tag="v2.6.0", + commit="9573e6b1e1097dca3bf86da37726333ab62663bb", + submodules=submodules, + ) + + version( + "2.5.1", + tag="v2.5.1", + commit="b0bace78223959cd3e5a15317734cacff7b0b0a2", + submodules=submodules, + ) + + version( + "2.4.0", + tag="v2.4.0", + commit="8f2468da525ca7ab96a0fabf96c493b429fd522d", + submodules=submodules, + ) + + version( + "2.3.0", + tag="v2.3.0", + commit="8329edf45fc4a3e0b1a93e882be77ef2fbf9c9c5", + submodules=submodules, + deprecated=True, # python 2.7 required, unsupported + ) + + version( + "2.2.1", + tag="v2.2.1", + commit="92d17b5feb98107ac104a7e4deb43fd35748288d", + deprecated=True, # python 2.7 required, unsupported + ) + + variant( + "blas-lapack", + default=False, + description=( + "Use external blas and lapack installation. " + "Otherwise, linear algebra is done with Eigen." + ), + ) + variant("debug", default=True, description="With compiler debugging symbols") + + variant("hdf5", default=False, description="With HDF5 support") + conflicts("+hdf5", when="@:2.4.0") + + variant( + "legacy-clib", + default=False, + description="Build the legacy CLib instead of the generated CLib.", + ) + conflicts("+legacy-clib", when="@:2.6") + + variant("python", default=False, description="With the cantera python module") + + variant("external-eigen", default=False, description="Use external eigen installation") + conflicts("+external-eigen", when="@:2.2.1") + + variant("external-fmt", default=False, description="Use external fmt installation") + conflicts("+external-fmt", when="@:2.2.1") + + variant( + "external-googletest", default=False, description="Use external googletest installation" + ) + conflicts("+external-googletest", when="@:2.2.1") + + variant("external-highfive", default=False, description="Use external highfive installation") + conflicts("+external-highfive", when="@:2.6.0") + + variant("external-sundials", default=False, description="Use external sundials installation") + + variant("external-yamlcpp", default=False, description="Use external yaml-cpp installation") + conflicts("+external-yamlcpp", when="@2.4.0:") + + variant( + "matlab", + default=False, + description="Build the Cantera legacy Matlab toolbox (vesion <= 3.0)", + ) + conflicts("+matlab", when="@3.1.0:") + + variant( + "libdirname", + default="lib", + description="Directory name where Cantera is installed", + values=("lib", "lib64", "libx32"), + multi=False, + ) # Required dependencies depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated - depends_on("fmt@3.0.0:3.0.2", when="@2.3.0:") - depends_on("googletest+gmock", when="@2.3.0:") - depends_on("eigen", when="@2.3.0:") + # build dependencies + depends_on("py-packaging", type="build") + depends_on("python@3.10:", when="@3.0.0:", type="build") + depends_on("python@:3.10", when="@2.4.0:2.6.0", type="build") + + # additional dependencies for version >= 3.2.0 + depends_on("doxygen@1.8:", when="@3.2.0:", type="build") + depends_on("py-ruamel-yaml@0.17.16:", when="@3.2.0:", type="build") + depends_on("py-jinja2@2.10:", when="@3.2.0:", type="build") + + # optional external dependencies + # otherwise versions included as submodules are used + depends_on("eigen", when="+external-eigen") + depends_on("fmt@3.0.0:3.0.2", when="+external-fmt") + depends_on("googletest+gmock", when="+external-googletest") + depends_on("hdf5", when="+hdf5") + depends_on("highfive", when="@3.0.0: +external-highfive") + depends_on("yaml-cpp", when="+external-yamlcpp") + depends_on("sundials@7:", when="@3.1.0: +external-sundials") + depends_on("sundials@:6", when="@3.0.0 +external-sundials") + depends_on("sundials@:5", when="@:2.6.0 +external-sundials") + depends_on("blas", when="+blas-lapack") + depends_on("lapack", when="+blas-lapack") # 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) - depends_on("sundials@:3.1.2+lapack", when="+sundials") # must be compiled with -fPIC - depends_on("blas") - depends_on("lapack") - depends_on("yaml-cpp") # Python module dependencies extends("python", when="+python") @@ -50,41 +194,53 @@ class Cantera(SConsPackage): depends_on("py-numpy", when="+python", type=("build", "run")) depends_on("py-scipy", when="+python", type=("build", "run")) depends_on("py-3to2", when="+python", type=("build", "run")) + depends_on("py-pip", when="+python", type=("build", "run")) + depends_on("py-matplotlib", when="+python", type=("build", "run")) + depends_on("py-ruamel-yaml@0.17.16:", when="+python", type=("build", "run")) # Matlab toolbox dependencies extends("matlab", when="+matlab") - conflicts("~sundials", when="@2.3.0:") - def build_args(self, spec, prefix): # Valid args can be found by running `scons help` - # Required args args = [ "build", "prefix={0}".format(prefix), - "VERBOSE=yes", "CC={0}".format(spack_cc), "CXX={0}".format(spack_cxx), "FORTRAN={0}".format(spack_fc), - "cc_flags={0}".format(self.compiler.cc_pic_flag), # Allow Spack environment variables to propagate through to SCons "env_vars=all", ] + if spec.satisfies("@2.5.1:"): + args.extend( + [ + "libdirname={0}".format(spec.variants["libdirname"].value), + "cc_flags={0}".format(self.compiler.cc_pic_flag), + ] + ) + else: + # enable build of versions <= 2.4.0 with modern compilers + args.append("cc_flags={0} -fcommon".format(self.compiler.cc_pic_flag)) + + if spec.satisfies("@:2.5.1"): + args.append("VERBOSE=yes") + if spec.satisfies("@:2.2.1"): args.append("F77={0}".format(spack_f77)) - # fmt support - if spec.satisfies("@2.3.0:"): + # Use external fmt installation + if spec.satisfies("+external-fmt"): args.append("system_fmt=y") - # Googletest support - if spec.satisfies("@2.3.0:"): + # Use external googletest installation + if spec.satisfies("+external-googletest"): args.append("system_googletest=y") - # Eigen support - if spec.satisfies("@2.3.0:"): + # Use external eigen installation + if spec.satisfies("+external-eigen"): args.extend( [ "system_eigen=y", @@ -97,14 +253,61 @@ def build_args(self, spec, prefix): ] ) - # BLAS/LAPACK support - lapack_blas = spec["lapack"].libs + spec["blas"].libs - args.extend( - [ - "blas_lapack_libs={0}".format(",".join(lapack_blas.names)), - "blas_lapack_dir={0}".format(spec["lapack"].prefix.lib), - ] - ) + # HDF5 support + if spec.satisfies("+hdf5"): + args.extend( + [ + "hdf_support=y", + "hdf_include={0}".format(spec["hdf5"].prefix.include), + "hdf_libdir={0}".format(spec["hdf5"].prefix.libs), + ] + ) + + # Use external highfive installation + if spec.satisfies("+external-highfive") and spec.satisfies("@3.0.0:"): + args.extend( + ["system_highfive=y", "extra_inc_dirs={0}".format(spec["highfive"].prefix.include)] + ) + + # Use external yaml-cpp installation + if spec.satisfies("+external-yamlcpp"): + args.extend( + [ + "system_yamlcpp=y", + "extra_inc_dirs={0}".format(spec["yaml-cpp"].prefix.include), + "extra_lib_dirs={0}".format(spec["yaml-cpp"].prefix.libs), + ] + ) + + # Use external sundials installation + if spec.satisfies("+external-sundials"): + args.extend( + [ + "system_sundials=y", + "sundials_include={0}".format(spec["sundials"].prefix.include), + "sundials_libdir={0}".format(spec["sundials"].prefix.libs), + ] + ) + + # Use external BLAS/LAPACK installations + if spec.satisfies("+blaslapack"): + lapack_blas = spec["lapack"].libs + spec["blas"].libs + args.extend( + [ + "blas_lapack_libs={0}".format(",".join(lapack_blas.names)), + "blas_lapack_dir={0}".format(spec["lapack"].prefix.lib), + ] + ) + + # Enable debugging symbols + if spec.satisfies("+debug"): + args.append("debug=yes") + else: + args.append("debug=no") + + # legacy CLib + if spec.satisfies("+legacy-clib"): + args.append("clib_legacy=yes") # Boost support if spec.satisfies("@2.3.0:"): @@ -118,40 +321,27 @@ def build_args(self, spec, prefix): ] ) - # Sundials support - if spec.satisfies("+sundials"): - if spec.satisfies("@2.3.0:"): - args.append("system_sundials=y") - else: - args.extend( - [ - "use_sundials=y", - "sundials_license={0}".format(spec["sundials"].prefix.LICENSE), - ] - ) - - args.extend( - [ - "sundials_include={0}".format(spec["sundials"].prefix.include), - "sundials_libdir={0}".format(spec["sundials"].prefix.lib), - ] - ) - # Python module if spec.satisfies("+python"): - args.extend(["python_package=full", "python_cmd={0}".format(python.path)]) - if spec["python"].satisfies("@3:"): - args.extend(["python3_package=y", "python3_cmd={0}".format(python.path)]) + if spec.satisfies("@:2.5.1"): + args.extend(["python_package=full", "python_cmd={0}".format(python.path)]) + if spec["python"].satisfies("@3:"): + args.extend(["python3_package=y", "python3_cmd={0}".format(python.path)]) + else: + args.append("python3_package=n") else: - args.append("python3_package=n") + args.extend(["python_package=y", "python_cmd={0}".format(python.path)]) else: - args.append("python_package=none") - args.append("python3_package=n") + if spec.satisfies("@:2.5.1"): + args.append("python_package=none") + args.append("python3_package=n") + else: + args.append("python_package=n") # Matlab toolbox - if spec.satisfies("+matlab"): + if spec.satisfies("+matlab") and spec.satisfies("@:3.1.0"): args.extend(["matlab_toolbox=y", "matlab_path={0}".format(spec["matlab"].prefix)]) - else: + elif spec.satisfies("@:2.5.1"): args.append("matlab_toolbox=n") return args diff --git a/repos/spack_repo/builtin/packages/capnproto/package.py b/repos/spack_repo/builtin/packages/capnproto/package.py index a8802a33773..189e8bc4371 100644 --- a/repos/spack_repo/builtin/packages/capnproto/package.py +++ b/repos/spack_repo/builtin/packages/capnproto/package.py @@ -37,6 +37,7 @@ class Capnproto(AutotoolsPackage): version("0.5.1.1", sha256="caf308e92683b278bc6c568d4fb5558eca78180cac1eb4a3db15d435bf25116f") version("0.4.1.2", sha256="6376c1910e9bc9d09dc46d53b063c5bdcb5cdf066a8210e9fffe299fb863f0d9") + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("zlib-api", when="+zlib") diff --git a/repos/spack_repo/builtin/packages/capstone/package.py b/repos/spack_repo/builtin/packages/capstone/package.py index d371b1dec8c..15cf4684946 100644 --- a/repos/spack_repo/builtin/packages/capstone/package.py +++ b/repos/spack_repo/builtin/packages/capstone/package.py @@ -26,4 +26,12 @@ class Capstone(CMakePackage): depends_on("cxx", type="build") def cmake_args(self): - return ["-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE"] + args = ["-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE"] + + # Always build the shared libraries + if self.spec.satisfies("@next"): + args.append("-DCAPSTONE_BUILD_SHARED_LIBS:BOOL=TRUE") + else: + args.append("-DBUILD_SHARED_LIBS:BOOL=TRUE") + + return args diff --git a/repos/spack_repo/builtin/packages/care/package.py b/repos/spack_repo/builtin/packages/care/package.py index 68ff9076446..9dc872e7439 100644 --- a/repos/spack_repo/builtin/packages/care/package.py +++ b/repos/spack_repo/builtin/packages/care/package.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re import socket from spack_repo.builtin.build_systems.cached_cmake import ( @@ -32,6 +33,18 @@ class Care(CachedCMakePackage, CudaPackage, ROCmPackage): version("develop", branch="develop", submodules=False) version("master", branch="master", submodules=False) + version( + "0.15.3", + tag="v0.15.3", + commit="132252376aa460fa900d034f7b018d3a169afce6", + submodules=False, + ) + version( + "0.15.2", + tag="v0.15.2", + commit="f61289ab3db627b568e5c211b1ab8e13a3b6d211", + submodules=False, + ) version( "0.15.1", tag="v0.15.1", @@ -86,12 +99,12 @@ class Care(CachedCMakePackage, CudaPackage, ROCmPackage): commit="a9978083035eb00a090451bd36d7987bc935204d", submodules=False, ) - version("0.10.0", tag="v0.10.0", submodules="True") + version("0.10.0", tag="v0.10.0", submodules=True) version( - "0.3.0", tag="v0.3.0", commit="5e2b69b2836c9f2215207ca9a36a690cb77eea33", submodules="True" + "0.3.0", tag="v0.3.0", commit="5e2b69b2836c9f2215207ca9a36a690cb77eea33", submodules=True ) version( - "0.2.0", tag="v0.2.0", commit="30135e03b14b1dc753634e9147dafede0663906f", submodules="True" + "0.2.0", tag="v0.2.0", commit="30135e03b14b1dc753634e9147dafede0663906f", submodules=True ) variant("openmp", default=False, description="Build with OpenMP support") @@ -100,17 +113,27 @@ class Care(CachedCMakePackage, CudaPackage, ROCmPackage): "implicit_conversions", default=False, when="@:0.14", - description="Enable implicit" "conversions to/from raw pointers", + description="Enable implicit conversions to/from raw pointers", ) variant("tests", default=False, description="Build tests") variant("benchmarks", default=False, description="Build benchmarks.") variant("examples", default=False, description="Build examples.") variant("docs", default=False, description="Build documentation") variant("loop_fuser", default=False, description="Enable loop fusion capability") + variant( + "legacy_compatibility_mode", default=False, description="Enable legacy compatibility mode" + ) + variant( + "cxxstd", + default="17", + values=("11", "14", "17", "20"), + description="C++ standard to build with", + ) + conflicts("cxxstd=11", when="@0.15.2:") + conflicts("cxxstd=14", when="@0.15.2:") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated depends_on("cmake", type="build") depends_on("cmake@3.23:", type="build", when="@0.13.2:") @@ -121,6 +144,7 @@ class Care(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("cmake@3.8:", type="build") depends_on("blt", type="build") + depends_on("blt@0.7.1:", type="build", when="@0.15.2:") depends_on("blt@0.6.2:", type="build", when="@0.13.0:") depends_on("blt@0.6.1:", type="build", when="@0.12.0:") depends_on("blt@0.5.2:", type="build", when="@0.10.0:") @@ -132,24 +156,34 @@ class Care(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("umpire") depends_on("umpire+mpi", when="+mpi") - depends_on("umpire@2024.07.0:", when="@0.13.2:") - depends_on("umpire@2024.02.1:", when="@0.13.0:") - depends_on("umpire@2024.02.0:", when="@0.12.0:") - depends_on("umpire@2022.10.0:", when="@0.10.0:") + depends_on("umpire@2025.12:", when="@0.15.3:") + depends_on("umpire@2025.09", when="@0.15.2") + depends_on("umpire@2025.03", when="@0.15.0") + depends_on("umpire@2024.07.0", when="@0.13.2") + depends_on("umpire@2024.02.1", when="@0.13.0") + depends_on("umpire@2024.02.0", when="@0.12.0") + depends_on("umpire@2022.10.0", when="@0.10.0") depends_on("raja") - depends_on("raja@2024.07.0:", when="@0.13.2:") - depends_on("raja@2024.02.2:", when="@0.13.1:") - depends_on("raja@2024.02.1:", when="@0.13.0:") - depends_on("raja@2024.02.0:", when="@0.12.0:") - depends_on("raja@2022.10.5:", when="@0.10.0:") - - depends_on("chai+enable_pick+raja") - depends_on("chai@2024.07.0:", when="@0.13.2:") - depends_on("chai@2024.02.2:", when="@0.13.1:") - depends_on("chai@2024.02.1:", when="@0.13.0:") - depends_on("chai@2024.02.0:", when="@0.12.0:") - depends_on("chai@2022.10.0:", when="@0.10.0:") + depends_on("raja@2025.12:", when="@0.15.3:") + depends_on("raja@2025.09", when="@0.15.2") + depends_on("raja@2025.03", when="@0.15.0") + depends_on("raja@2024.07.0", when="@0.13.2") + depends_on("raja@2024.02.2", when="@0.13.1") + depends_on("raja@2024.02.1", when="@0.13.0") + depends_on("raja@2024.02.0", when="@0.12.0") + depends_on("raja@2022.10.5", when="@0.10.0") + + depends_on("chai+enable_pick", when="@:0.14.99") + depends_on("chai+raja") + depends_on("chai@2025.12:", when="@0.15.3:") + depends_on("chai@2025.09.1", when="@0.15.2") + depends_on("chai@2025.03", when="@0.15.0") + depends_on("chai@2024.07.0", when="@0.13.2") + depends_on("chai@2024.02.2", when="@0.13.1") + depends_on("chai@2024.02.1", when="@0.13.0") + depends_on("chai@2024.02.0", when="@0.12.0") + depends_on("chai@2022.10.0", when="@0.10.0") conflicts("+openmp", when="+rocm") conflicts("+openmp", when="+cuda") @@ -161,10 +195,6 @@ class Care(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("chai+openmp") with when("+cuda"): - # WARNING: this package currently only supports an internal cub - # package. This will cause a race condition if compiled with another - # package that uses cub. TODO: have all packages point to the same external - # cub package. depends_on("cub") depends_on("umpire+cuda") @@ -199,6 +229,10 @@ def _get_sys_type(self, spec): sys_type = env["SYS_TYPE"] return sys_type + @property + def cxx_std(self): + return self.spec.variants.get("cxxstd").value + @property def cache_name(self): hostname = socket.gethostname() @@ -236,11 +270,54 @@ def initconfig_hardware_entries(self): entries.append(cmake_cache_option("CUDA_SEPARABLE_COMPILATION", True)) entries.append(cmake_cache_string("NVTOOLSEXT_DIR", spec["cuda"].prefix)) entries.append(cmake_cache_string("CUB_DIR", spec["cub"].prefix)) + + # CUDA configuration from cuda_for_radiuss_projects + cuda_flags = [] + if not spec.satisfies("cuda_arch=none"): + cuda_archs = ";".join(spec.variants["cuda_arch"].value) + entries.append(cmake_cache_string("CMAKE_CUDA_ARCHITECTURES", cuda_archs)) + + # gcc-toolchain support + gcc_toolchain_regex = re.compile(".*gcc-toolchain.*") + using_toolchain = list( + filter(gcc_toolchain_regex.match, spec.compiler_flags["cxxflags"]) + ) + if using_toolchain: + cuda_flags.append("-Xcompiler {}".format(using_toolchain[0])) + + if cuda_flags: + entries.append(cmake_cache_string("CMAKE_CUDA_FLAGS", " ".join(cuda_flags))) else: entries.append(cmake_cache_option("ENABLE_CUDA", False)) if spec.satisfies("+rocm"): entries.append(cmake_cache_option("ENABLE_HIP", True)) + + # HIP configuration from hip_for_radiuss_projects + rocm_root = spec["llvm-amdgpu"].prefix + gcc_toolchain_regex = re.compile(".*gcc-toolchain.*") + using_toolchain = list( + filter(gcc_toolchain_regex.match, spec.compiler_flags["cxxflags"]) + ) + hip_link_flags = "" + + if using_toolchain: + gcc_prefix = using_toolchain[0] + entries.append( + cmake_cache_string("HIP_CLANG_FLAGS", "--gcc-toolchain={0}".format(gcc_prefix)) + ) + entries.append( + cmake_cache_string( + "CMAKE_EXE_LINKER_FLAGS", + hip_link_flags + " -Wl,-rpath={0}/lib64".format(gcc_prefix), + ) + ) + else: + entries.append( + cmake_cache_string( + "CMAKE_EXE_LINKER_FLAGS", "-Wl,-rpath={0}/llvm/lib/".format(rocm_root) + ) + ) else: entries.append(cmake_cache_option("ENABLE_HIP", False)) @@ -248,8 +325,8 @@ def initconfig_hardware_entries(self): def initconfig_mpi_entries(self): spec = self.spec - entries = super(Care, self).initconfig_mpi_entries() + entries.append(cmake_cache_option("ENABLE_MPI", spec.satisfies("+mpi"))) return entries @@ -276,12 +353,8 @@ def initconfig_package_entries(self): entries.append(cmake_cache_string("CMAKE_BUILD_TYPE", spec.variants["build_type"].value)) - # C++14 - if spec.satisfies("@:0.14.1"): - entries.append(cmake_cache_string("BLT_CXX_STD", "c++14")) - # C++17 - else: - entries.append(cmake_cache_string("BLT_CXX_STD", "c++17")) + # C++ standard + entries.append(cmake_cache_string("BLT_CXX_STD", f"c++{self.cxx_std}")) entries.append(cmake_cache_option("ENABLE_TESTS", spec.satisfies("+tests"))) entries.append(cmake_cache_option("CARE_ENABLE_TESTS", spec.satisfies("+tests"))) @@ -310,6 +383,11 @@ def initconfig_package_entries(self): ) entries.append(cmake_cache_option("CARE_ENABLE_LOOP_FUSER", spec.satisfies("+loop_fuser"))) + entries.append( + cmake_cache_option( + "CARE_LEGACY_COMPATIBILITY_MODE", spec.satisfies("+legacy_compatibility_mode") + ) + ) return entries diff --git a/repos/spack_repo/builtin/packages/cargo_c/package.py b/repos/spack_repo/builtin/packages/cargo_c/package.py new file mode 100644 index 00000000000..44ce6808d6c --- /dev/null +++ b/repos/spack_repo/builtin/packages/cargo_c/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.cargo import CargoPackage + +from spack.package import * + + +class CargoC(CargoPackage): + """A package to build and install C-compatible libraries""" + + homepage = "https://github.com/lu-zero/cargo-c" + url = "https://github.com/lu-zero/cargo-c/archive/refs/tags/v0.10.18.tar.gz" + git = "https://github.com/lu-zero/cargo-c.git" + + license("MIT", checked_by="jmcarcell") + + version("0.10.18", sha256="0f2b699be7ad5cac05624701065ae521c7f6b8159bdbcb8103445fc2440d1a7e") + version("0.10.17", sha256="a92b752f35e3ef54c992b2ba382466eb58a11020d13e62a25a4101bc055d5146") + version("0.10.16", sha256="c0ebb3175393da5b55c3cd83ba1ae9d42d32e2aece6ceff1424239ffb68eb3e3") + + depends_on("c", type="build") + + depends_on("openssl") + depends_on("rust@1.89:", type="build", when="@0.10.17:") + depends_on("rust@1.88:", type="build", when="@0.10.16:") diff --git a/repos/spack_repo/builtin/packages/casacore/package.py b/repos/spack_repo/builtin/packages/casacore/package.py index 15e6ca3c786..6eaa74f08a9 100644 --- a/repos/spack_repo/builtin/packages/casacore/package.py +++ b/repos/spack_repo/builtin/packages/casacore/package.py @@ -19,6 +19,8 @@ class Casacore(CMakePackage): license("LGPL-2.0-only") + version("3.7.1", sha256="ad7ad865d5d8517524bdde71e0083a69442648b693850660dadb0ce6109d91c7") + version("3.7.0", sha256="85fc4656697f75b82133a702067dcd59803a43ad138b0d8413a9f6dca7e3e47c") version("3.6.1", sha256="480d3340fa17e9ba67f18efbaff4bbb272a01d1f400d2295c0b6c86eb7abcf82") version("3.6.0", sha256="c88075aa73c2139b323b71a7f5d56cec5a6a0de649efd11e2d00ca033be5a0d7") version("3.5.0", sha256="63f1c8eff932b0fcbd38c598a5811e6e5397b72835b637d6f426105a183b3f91") @@ -74,7 +76,8 @@ class Casacore(CMakePackage): depends_on("python@2.6:", when="@:3.5.0 +python") depends_on("python@3:", when="@3.6.0: +python") depends_on("boost +python", when="+python") - depends_on("boost +system +filesystem", when="+dysco") + depends_on("boost +system +filesystem", type=("build", "link"), when="@:3.6 +dysco") + depends_on("boost +system +filesystem", type="test", when="@3.7: +dysco") depends_on("py-numpy@:1", when="@:3.6.0 +python") depends_on("py-numpy", when="@3.6.1: +python") depends_on("gsl", when="+dysco") @@ -129,4 +132,6 @@ def cmake_args(self): def patch(self): # Rely on CMake ability to find hdf5, available since CMake 3.7.X - os.remove("cmake/FindHDF5.cmake") + hdf5_cmake = "cmake/FindHDF5.cmake" + if os.path.exists(hdf5_cmake): + os.remove(hdf5_cmake) diff --git a/repos/spack_repo/builtin/packages/casper/package.py b/repos/spack_repo/builtin/packages/casper/package.py index 044ee41ecfb..701e10cdb2b 100644 --- a/repos/spack_repo/builtin/packages/casper/package.py +++ b/repos/spack_repo/builtin/packages/casper/package.py @@ -18,11 +18,6 @@ class Casper(MakefilePackage): git = "https://github.com/skwonPNU/casper.git" version("20220916", commit="08655cad5af7e801f05fdb9e643dcd859f823cba") - version( - "0.8.2", - sha256="3005e165cebf8ce4e12815b7660a833e0733441b5c7e5ecbfdccef7414b0c914", - deprecated=True, - ) depends_on("c", type="build") # generated depends_on("cxx", type="build") @@ -32,11 +27,6 @@ class Casper(MakefilePackage): conflicts("%gcc@7.1.0") - def flag_handler(self, name, flags): - if self.spec.satisfies("@:0.8.2") and name.lower() == "cxxflags": - flags.append(self.compiler.cxx98_flag) - return (flags, None, None) - def install(self, spec, prefix): install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/cassandra/package.py b/repos/spack_repo/builtin/packages/cassandra/package.py index 0ff476d13b4..2463241cb7e 100644 --- a/repos/spack_repo/builtin/packages/cassandra/package.py +++ b/repos/spack_repo/builtin/packages/cassandra/package.py @@ -19,26 +19,8 @@ class Cassandra(Package): license("Apache-2.0", checked_by="wdconinc") version("5.0.1", sha256="73f4c807b0aa4036500d5dc54e30ef82bcf549ab1917eff2bbc7189b0337ea84") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2021-44521 - version("4.0.1", sha256="ed7022e30d9b77d9ce1072f8de95ab01ef7c5c6ed30f304e413dd5a3f92a52f8") - version( - "3.11.11", sha256="a5639af781005410995a96f512d505c1def7b70cf5bbbec52e7cd5ff31b6cea3" - ) - version( - "3.11.6", sha256="ce34edebd1b6bb35216ae97bd06d3efc338c05b273b78267556a99f85d30e45b" - ) - version( - "3.11.5", sha256="a765adcaa42a6c881f5e79d030854d082900992cc11da40eee413bb235970a6a" - ) - # https://nvd.nist.gov/vuln/detail/CVE-2020-17516 - version( - "2.2.19", sha256="5496c0254a66b6d50bde7999d1bab9129b0406b71ad3318558f4d7dbfbed0ab9" - ) - - depends_on("java@11:", type=("build", "run"), when="@5:") - depends_on("java@9:", type=("build", "run"), when="@4.0.0:") - depends_on("java@:8", type=("build", "run"), when="@:3.11.11") + + depends_on("java@11:", type=("build", "run")) def install(self, spec, prefix): install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/cassini_headers/package.py b/repos/spack_repo/builtin/packages/cassini_headers/package.py index bffd9aa9ddf..ae6d0e828b4 100644 --- a/repos/spack_repo/builtin/packages/cassini_headers/package.py +++ b/repos/spack_repo/builtin/packages/cassini_headers/package.py @@ -18,6 +18,11 @@ class CassiniHeaders(Package): license("GPL-2.0-only or BSD-2-Clause") version("main", branch="main") + version("13.1.0", tag="release/shs-13.1.0") + version("13.0.0", tag="release/shs-13.0.0") + version("12.0.2", tag="release/shs-12.0.2") + version("12.0.1", tag="release/shs-12.0.1") + version("12.0.0", tag="release/shs-12.0.0") def install(self, spec, prefix): with working_dir(self.stage.source_path): diff --git a/repos/spack_repo/builtin/packages/castep/package.py b/repos/spack_repo/builtin/packages/castep/package.py index 3e98bf0392f..8cf9cfc1db9 100644 --- a/repos/spack_repo/builtin/packages/castep/package.py +++ b/repos/spack_repo/builtin/packages/castep/package.py @@ -2,14 +2,17 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) + import os +from spack_repo.builtin.build_systems import cmake, makefile +from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.makefile import MakefilePackage from spack.package import * -class Castep(MakefilePackage): +class Castep(CMakePackage, MakefilePackage): """ CASTEP is a leading code for calculating the properties of materials from first principles. @@ -21,15 +24,56 @@ class Castep(MakefilePackage): """ homepage = "http://castep.org" - url = f"file://{os.getcwd()}/CASTEP-21.11.tar.gz" + url = f"file://{os.getcwd()}/CASTEP-25.12.tar.gz" manual_download = True + version("25.12", sha256="e21177bfe4cb3f3d098b666c90771e3da2826503b002b8e325e3ca1e230cfc7d") version("21.11", sha256="d909936a51dd3dff7a0847c2597175b05c8d0018d5afe416737499408914728f") version( "19.1.1.rc2", sha256="1fce21dc604774e11b5194d5f30df8a0510afddc16daf3f8b9bbb3f62748f86a" ) + build_system( + conditional("cmake", when="@25:"), conditional("makefile", when="@:21"), default="cmake" + ) + + # GCC 9+ for f2008 features + requires("%gcc@9:", when="@25.12:") + requires("%gcc@4.9.1:", when="@21.11:") + variant("mpi", default=True, description="Enable MPI build") + variant( + "portable", + default=True, + description="Build a generic executable which ought to run on most CPUs", + ) + + with when("build_system=makefile"): + depends_on("gmake@3.82:", when="@21:21", type="build") + + with when("build_system=cmake"): + depends_on("cmake@3.18:", type="build") + depends_on("pkgconfig", type="build") + variant("grimmed3", default=True, description="Use Grimme D3 functionals") + variant("grimmed4", default=True, description="Use Grimme D4 functionals") + variant("dlmg", default=True, description="Use DLMG Functionality functionals") + variant("openmp", default=True, description="Use OpenMP threading") + variant("tools", default=True, description="Build the executable auxilliary programs") + variant( + "utilities", default=True, description="Build the third-party scripts and utilities" + ) + + depends_on("c", type="build") + depends_on("fortran", type="build") + + depends_on("gcc@9:", when="@25:", type="build") + depends_on("gcc@4.9:", when="@21.11:", type="build") + extends("python@:3.11", type=("build", "run")) + depends_on("py-pip", type="build") + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + depends_on("py-matplotlib", type=("build", "run")) + depends_on("perl", type=("build", "run")) depends_on("rsync", type="build") depends_on("blas") depends_on("lapack") @@ -38,16 +82,47 @@ class Castep(MakefilePackage): parallel = True - def edit(self, spec, prefix): + +class CMakeBuilder(cmake.CMakeBuilder): + @property + def build_targets(self): + spec = self.spec + targetlist = ["castep"] + if spec.satisfies("+tools"): + targetlist.append("tools") + if spec.satisfies("+utilities"): + targetlist.append("utilities") + return targetlist + + def cmake_args(self): + args = [ + self.define_from_variant("WITH_MPI", "mpi"), + self.define_from_variant("WITH_GRIMMED3", "grimmed3"), + self.define_from_variant("WITH_GRIMMED4", "grimmed4"), + self.define_from_variant("WITH_DLMG", "dlmg"), + self.define_from_variant("WITH_OpenMP", "openmp"), + self.define_from_variant("PORTABLE", "portable"), + ] + return args + + +class MakefileBuilder(makefile.MakefileBuilder): + def edit(self, pkg, spec, prefix): if spec.satisfies("%gcc"): - dlmakefile = FileFilter("LibSource/dl_mg-2.0.3/platforms/castep.inc") - dlmakefile.filter(r"MPIFLAGS = -DMPI", "MPIFLAGS = -fallow-argument-mismatch -DMPI") - if self.spec.satisfies("@20:"): - platfile = FileFilter("obj/platforms/linux_x86_64_gfortran.mk") - else: - platfile = FileFilter("obj/platforms/linux_x86_64_gfortran9.0.mk") - platfile.filter(r"^\s*OPT_CPU\s*=.*", "OPT_CPU = ") - platfile.filter(r"^\s*FFLAGS_E\s*=.*", "FFLAGS_E = -fallow-argument-mismatch ") + if self.spec.satisfies("@21:21"): + if spec.satisfies("%gcc@10:"): + platfile = FileFilter("obj/platforms/linux_x86_64_gfortran10.mk") + else: + platfile = FileFilter("obj/platforms/linux_x86_64_gfortran.mk") + elif self.spec.satisfies("@19:19"): + if spec.satisfies("%gcc@9:"): + platfile = FileFilter("obj/platforms/linux_x86_64_gfortran9.0.mk") + else: + platfile = FileFilter("obj/platforms/linux_x86_64_gfortran.mk") + platfile.filter(r"MPIFLAGS = -DMPI", "MPIFLAGS = -fallow-argument-mismatch -DMPI") + platfile.filter(r"^\s*FFLAGS_E\s*=.*", "FFLAGS_E = -fallow-argument-mismatch ") + + platfile.filter(r"^LD_FLAGS\s=.*$", "LD_FLAGS = $(OPT) -fopenmp") elif spec.satisfies("%intel"): if self.spec.satisfies("@20:"): platfile = FileFilter("obj/platforms/linux_x86_64_ifort.mk") @@ -63,6 +138,9 @@ def build_targets(self): if spec.satisfies("+mpi"): targetlist.append("COMMS_ARCH=mpi") + if spec.satisfies("+portable"): + targetlist.append("TARGETCPU=portable") + targetlist.append(f"FFTLIBDIR={spec['fftw-api'].prefix.lib}") targetlist.append(f"MATHLIBDIR={spec['blas'].prefix.lib}") @@ -79,10 +157,12 @@ def build_targets(self): if spec.satisfies("target=x86_64:"): if spec.satisfies("platform=linux"): if spec.satisfies("%gcc"): - if self.spec.satisfies("@20:"): - targetlist.append("ARCH=linux_x86_64_gfortran") - else: + if self.spec.satisfies("@21:21") and spec.satisfies("%gcc@10:"): + targetlist.append("ARCH=linux_x86_64_gfortran10") + elif self.spec.satisfies("@19:19") and spec.satisfies("%gcc@9:"): targetlist.append("ARCH=linux_x86_64_gfortran9.0") + else: + targetlist.append("ARCH=linux_x86_64_gfortran") if spec.satisfies("%intel"): if self.spec.satisfies("@20:"): targetlist.append("ARCH=linux_x86_64_ifort") @@ -91,6 +171,6 @@ def build_targets(self): return targetlist - def install(self, spec, prefix): + def install(self, pkg, spec, prefix): mkdirp(prefix.bin) make("install", "install-tools", *self.build_targets, "INSTALL_DIR={0}".format(prefix.bin)) diff --git a/repos/spack_repo/builtin/packages/catch2/package.py b/repos/spack_repo/builtin/packages/catch2/package.py index 4c4d834bb1c..3de08e82766 100644 --- a/repos/spack_repo/builtin/packages/catch2/package.py +++ b/repos/spack_repo/builtin/packages/catch2/package.py @@ -36,16 +36,6 @@ class Catch2(CMakePackage): version("3.1.1", sha256="2106bccfec18c8ce673623d56780220e38527dd8f283ccba26aa4b8758737d0e") version("3.1.0", sha256="c252b2d9537e18046d8b82535069d2567f77043f8e644acf9a9fffc22ea6e6f7") version("3.0.1", sha256="8c4173c68ae7da1b5b505194a0c2d6f1b2aef4ec1e3e7463bde451f26bbaf4e7") - version( - "3.0.0-preview4", - sha256="2458d47d923b65ab611656cb7669d1810bcc4faa62e4c054a7405b1914cd4aee", - deprecated=True, - ) - version( - "3.0.0-preview3", - sha256="06a4f903858f21c553e988f8b76c9c6915d1f95f95512d6a58c421e02a2c4975", - deprecated=True, - ) version("2.13.10", sha256="d54a712b7b1d7708bc7a819a8e6e47b2fde9536f487b89ccbca295072a7d9943") version("2.13.9", sha256="06dbc7620e3b96c2b69d57bf337028bf245a211b3cddb843835bfe258f427a52") version("2.13.8", sha256="b9b592bd743c09f13ee4bf35fc30eeee2748963184f6bea836b146e6cc2a585a") diff --git a/repos/spack_repo/builtin/packages/cbc/package.py b/repos/spack_repo/builtin/packages/cbc/package.py index 60136b95362..d18973da5ec 100644 --- a/repos/spack_repo/builtin/packages/cbc/package.py +++ b/repos/spack_repo/builtin/packages/cbc/package.py @@ -17,16 +17,21 @@ class Cbc(AutotoolsPackage): license("EPL-2.0") + version("2.10.13", sha256="62fde44dcf6f3d05c5cd291d7435cdd1b7e8acd3c78ec481dd39fe49cbc40399") version("2.10.11", sha256="1fb591dd88336fdaf096b8e42e46111e41671a5eb85d4ee36e45baff1678bd33") version("2.10.9", sha256="96d02593b01fd1460d421f002734384e4eb1e93ebe1fb3570dc2b7600f20a27e") version("2.10.8", sha256="8525abb541ee1b8e6ff03b00411b66e98bbc58f95be1aefd49d2bca571be2eaf") version("2.10.5", sha256="cc44c1950ff4615e7791d7e03ea34318ca001d3cac6dc3f7f5ee392459ce6719") + version("2.9.10", sha256="4fc4c3dbb57a6d14f6676159c814b1a921736a16c6052ec777a23e2663f2cbaf") + version("2.9.6", sha256="f0a14f7efed6fff9a3bec702e1b8a660570f2ebe064d9187a151b52479e3fe62") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("pkgconfig", type="build") depends_on("coinutils") depends_on("osi") + depends_on("clp") depends_on("cgl") build_directory = "spack-build" diff --git a/repos/spack_repo/builtin/packages/cbindgen/package.py b/repos/spack_repo/builtin/packages/cbindgen/package.py index c3e855f8d45..43d4a76677e 100644 --- a/repos/spack_repo/builtin/packages/cbindgen/package.py +++ b/repos/spack_repo/builtin/packages/cbindgen/package.py @@ -14,6 +14,7 @@ class Cbindgen(CargoPackage): license("MPL", checked_by="teaguesterling") + version("0.29.0", sha256="6697f449d4a15d814d991249a611af961c97e36d9344c7ced6df35c5c25b40cc") version("0.26.0", sha256="b45e1a64875b615702a86ac3084ef69ae32926241cd2b687a30c12474be15105") version("0.25.0", sha256="363ac6317a5788de8f2b0104a472a747883d4b9126fa119c681879509dbdbc28") version("0.24.3", sha256="5d693ab54acc085b9f2dbafbcf0a1f089737f7e0cb1686fa338c2aaa05dc7705") diff --git a/repos/spack_repo/builtin/packages/ccache/package.py b/repos/spack_repo/builtin/packages/ccache/package.py index 301cbeca507..c320d59fbcd 100644 --- a/repos/spack_repo/builtin/packages/ccache/package.py +++ b/repos/spack_repo/builtin/packages/ccache/package.py @@ -24,6 +24,12 @@ class Ccache(CMakePackage): license("GPL-3.0-or-later") + version("4.12.1", sha256="a3da50ab0fb0d42f60c17d1450312e6ace9b681f6221cb77c8a09a845f9d760c") + version("4.12", sha256="e884c62cbacae2e9488b8641a671a79fb7a1221db01310dacef61c9e55c2e55b") + version("4.11.3", sha256="28a407314f03a7bd7a008038dbaffa83448bc670e2fc119609b1d99fb33bb600") + version("4.11.2", sha256="d51b82bb8c3932649323fd4cb8e5a0a9f7fe7f672c71a6d6839bee13b4ded4c5") + version("4.11.1", sha256="7b44bd8acd8b062540cdb468d67ea4721a9a1c4759cd17de873d3c05f3930e68") + version("4.11", sha256="7dba208540dc61cedd5c93df8c960055a35f06e29a0a3cf766962251d4a5c766") version("4.10.2", sha256="108100960bb7e64573ea925af2ee7611701241abb36ce0aae3354528403a7d87") version("4.9.1", sha256="12834ecaaaf2db069dda1d1d991f91c19e3274cc04a471af5b64195def17e90f") version("4.8.3", sha256="d59dd569ad2bbc826c0bc335c8ebd73e78ed0f2f40ba6b30069347e63585d9ef") @@ -72,6 +78,10 @@ class Ccache(CMakePackage): depends_on("zlib-api", when="@:3") depends_on("zstd", when="@4.0:") + depends_on("fmt@8:", when="@4.10:") + depends_on("xxhash@0.8:", when="@4.10:") + depends_on("span-lite@0.10.3:", when="@4.10:") + # NOTE: blake3, cpphttplib, tlexpected are all automatically vendored depends_on("hiredis@0.13.3:", when="@4.4: +redis") depends_on("pkgconfig", type="build", when="@4.4:") @@ -84,16 +94,26 @@ class Ccache(CMakePackage): patch("fix-gcc-12.patch", when="@4.8:4.8.2 %gcc@12") def cmake_args(self): - return [ + args = [ # The test suite does not support the compiler being a wrapper script # https://github.com/ccache/ccache/issues/914#issuecomment-922521690 self.define("ENABLE_TESTING", False), self.define("ENABLE_DOCUMENTATION", False), self.define_from_variant("REDIS_STORAGE_BACKEND", "redis"), - self.define("ZSTD_FROM_INTERNET", False), - self.define("HIREDIS_FROM_INTERNET", False), ] + if self.spec.satisfies("@4.10:"): + args.extend([self.define("DEPS", "LOCAL")]) + else: + args.extend( + [ + self.define("ZSTD_FROM_INTERNET", False), + self.define("HIREDIS_FROM_INTERNET", False), + ] + ) + + return args + # Before 4.0 this was an Autotools package @when("@:3") def cmake(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/ccls/package.py b/repos/spack_repo/builtin/packages/ccls/package.py index bb40f88ac22..b308ed23508 100644 --- a/repos/spack_repo/builtin/packages/ccls/package.py +++ b/repos/spack_repo/builtin/packages/ccls/package.py @@ -18,6 +18,12 @@ class Ccls(CMakePackage): license("Apache-2.0") + version( + "0.20241108", sha256="76224663c3554eef9102dca66d804874d0252312d7c7d02941c615c87dcb68af" + ) + version( + "0.20240505", sha256="4ea6d90a9f93d5503e59c3bd0e5568ab262ff3dcf1b7539b50a0ede4a0e32fea" + ) version( "0.20240202", sha256="355ff7f5eb5f24d278dda05cccd9157e89583272d0559d6b382630171f142d86" ) @@ -30,12 +36,12 @@ class Ccls(CMakePackage): version( "0.20210330", sha256="28c228f49dfc0f23cb5d581b7de35792648f32c39f4ca35f68ff8c9cb5ce56c2" ) - version( - "0.20201025", sha256="1470797b2c1a466e2d8a069efd807aac6fefdef8a556e1edf2d44f370c949221" - ) - depends_on("cxx", type="build") # generated + depends_on("cxx", type="build") + depends_on("c", type="build") depends_on("cmake@3.8:", type="build") - depends_on("llvm@7:") + depends_on("llvm@10:19", when="@=0.20241108") + depends_on("llvm@7:19", when="@=0.20240505") + depends_on("llvm@7:18", when="@:0.20240202") depends_on("rapidjson") diff --git a/repos/spack_repo/builtin/packages/ccs_qcd/package.py b/repos/spack_repo/builtin/packages/ccs_qcd/package.py index dd6423f8f09..4fde6389fdf 100644 --- a/repos/spack_repo/builtin/packages/ccs_qcd/package.py +++ b/repos/spack_repo/builtin/packages/ccs_qcd/package.py @@ -62,7 +62,7 @@ class CcsQcd(MakefilePackage): def edit(self, spec, prefix): if spec.satisfies("%gcc") and spec.satisfies("arch=aarch64:"): chgopt = ( - "FFLAGS =-O3 -ffixed-line-length-132 -g -fopenmp" " -mcmodel=large -funderscoring" + "FFLAGS =-O3 -ffixed-line-length-132 -g -fopenmp -mcmodel=large -funderscoring" ) filter_file( "FFLAGS =.*", diff --git a/repos/spack_repo/builtin/packages/cddlib/package.py b/repos/spack_repo/builtin/packages/cddlib/package.py index 50b45d6e85e..c68bf2fe811 100644 --- a/repos/spack_repo/builtin/packages/cddlib/package.py +++ b/repos/spack_repo/builtin/packages/cddlib/package.py @@ -23,8 +23,10 @@ class Cddlib(AutotoolsPackage): version("0.94m", sha256="70dffdb3369b8704dc75428a1b3c42ab9047b81ce039f12f427e2eb2b1b0dee2") version("0.94h", sha256="7382782c3834214b022c8b2898ed775a7bf915f2cb2acb73fa045d6fd9a3de33") - depends_on("c", type="build") # generated + depends_on("c", type="build") + variant("gmp", default=False, description="Build with GMP support") + depends_on("gmp", when="+gmp") depends_on("gmp", when="@0.94h") def url_for_version(self, version): diff --git a/repos/spack_repo/builtin/packages/cdi/cmake-config-libname.patch b/repos/spack_repo/builtin/packages/cdi/cmake-config-libname.patch new file mode 100644 index 00000000000..f865a1d4828 --- /dev/null +++ b/repos/spack_repo/builtin/packages/cdi/cmake-config-libname.patch @@ -0,0 +1,11 @@ +--- a/src/cmake/cdi/cdi-config.cmake.in 2025-11-17 12:11:39.815703396 +0100 ++++ b/src/cmake/cdi/cdi-config.cmake.in 2025-11-17 12:12:10.614797500 +0100 +@@ -15,7 +15,7 @@ + mark_as_advanced(CDI_INCLUDE_DIRECTORY) + + find_library(CDI_LIBRARY +- NAMES cdilib ++ NAMES cdi + PATHS "${CDI_ROOT_DIR}/lib" + # use following line instead of previous if this file can be configured + # PATHS "@libdir@" diff --git a/repos/spack_repo/builtin/packages/cdi/package.py b/repos/spack_repo/builtin/packages/cdi/package.py index 267dcc120e6..e4db2f3797e 100644 --- a/repos/spack_repo/builtin/packages/cdi/package.py +++ b/repos/spack_repo/builtin/packages/cdi/package.py @@ -14,16 +14,36 @@ class Cdi(AutotoolsPackage): """ homepage = "https://code.mpimet.mpg.de/projects/cdi" - url = "https://code.mpimet.mpg.de/attachments/download/29309/cdi-2.4.0.tar.gz" + url = "https://gitlab.dkrz.de/mpim-sw/libcdi/-/archive/cdi-2.4.0/download.tar.gz" + git = "https://gitlab.dkrz.de/mpim-sw/libcdi" - version("2.4.0", sha256="91fca015b04c6841b9eab8b49e7726d35e35b9ec4350922072ec6e9d5eb174ef") + version("2.5.4", sha256="605d4a9192e9657d87bdbe544e31c96b81890e9acdfc137ecc8581721ce5390f") + version("2.5.3", sha256="e6a97e4af7a18afcc8caee13e2018c61e6885d871fd20441b51d7eae123c8305") + version("2.5.1.1", sha256="922a62c85ea7b7445f13821ec69516ce36f8ef0965e5fa6e6e560db57f264763") + version("2.5.1", sha256="639985873f82cd11d5cbfc121939e8d6ea24dc8454314845d5a7abd056878f59") + version("2.5.0", sha256="511f5fd9414ef68e7f452a4114eae4a319dd8ff45f0e80ab07be2b16d35c79e9") + version("2.4.3", sha256="b54e110feff209855cebf00751d5bb912ddf6f177bc1471a48a53ea751b982ab") + version("2.4.0", sha256="f7e27fa067177d89ff95080705863025b9e8d2c5e660352c1e193a42bf3c6683") variant( "netcdf", default=True, description="This is needed to read/write NetCDF files with CDI" ) + with default_args(type="build"): + depends_on("c") + + depends_on("autoconf") + depends_on("automake") + depends_on("libtool") + depends_on("netcdf-c", when="+netcdf") + # note: + # starting from 2.5.1 the provided cmake config file looks for `cdi` instead of `libcdi`, + # but autotools still builds `cdi`. + # cmake build system is going to build `libcdi` in future releases. + patch("cmake-config-libname.patch", when="@2.5.1: build_system=autotools") + def configure_args(self): args = [] if "+netcdf" in self.spec: diff --git a/repos/spack_repo/builtin/packages/cdo/package.py b/repos/spack_repo/builtin/packages/cdo/package.py index 8fb9eb33465..a712f789645 100644 --- a/repos/spack_repo/builtin/packages/cdo/package.py +++ b/repos/spack_repo/builtin/packages/cdo/package.py @@ -20,6 +20,26 @@ class Cdo(AutotoolsPackage): maintainers("skosukhin", "Try2Code") + version( + "2.6.1", + sha256="ccf5f3bd5800f703c031bb5b10ae0cd3feac34d8eba7956661ff1ba6deb5985f", + url="https://code.mpimet.mpg.de/attachments/download/30210/cdo-2.6.1.tar.gz", + ) + version( + "2.6.0", + sha256="752d5cda6fa3fdb8a04dcea16af5918e5f9f54657d9a5d2e35ae34f5755c31d8", + url="https://code.mpimet.mpg.de/attachments/download/30182/cdo-2.6.0.tar.gz", + ) + version( + "2.5.4", + sha256="c7fc17d3eda8c216edb2f5e36c8ab32bcaeeb6b6f16296246f065c576d4efad2", + url="https://code.mpimet.mpg.de/attachments/download/30128/cdo-2.5.4.tar.gz", + ) + version( + "2.5.3", + sha256="470fee8f4d2b4eddf9ec82d0adccf1f6b4821ddf34b33bfe6b7069b6b6457b40", + url="https://code.mpimet.mpg.de/attachments/download/30045/cdo-2.5.3.tar.gz", + ) version( "2.5.2", sha256="3b28da72d75547663b1b9b08332bfe3f884d27742d0eeeb7f3c8b2c70f521fa9", @@ -202,10 +222,7 @@ class Cdo(AutotoolsPackage): variant("netcdf", default=True, description="Enable NetCDF support") variant( - "grib2", - default="eccodes", - values=("eccodes", "grib-api", "none"), - description="Specify GRIB2 backend", + "grib2", default="eccodes", values=("eccodes", "none"), description="Specify GRIB2 backend" ) variant( "external-grib1", @@ -238,7 +255,6 @@ class Cdo(AutotoolsPackage): # Same in case hdf5 is used in the frontend depends_on("hdf5+threadsafe", when="+hdf5") - depends_on("grib-api", when="grib2=grib-api") depends_on("eccodes", when="grib2=eccodes") depends_on("szip", when="+szip") @@ -302,14 +318,16 @@ def yes_or_prefix(spec_name): flags["LIBS"].append(eccodes_libs.link_flags) if not is_system_path(eccodes_spec.prefix): flags["LDFLAGS"].append(eccodes_libs.search_flags) - if eccodes_spec.satisfies("~shared"): - jpeglib = eccodes_spec.variants["jp2k"].value - flags["LIBS"].append(self.spec[jpeglib].libs.link_flags) - flags["LDFLAGS"].append(self.spec[jpeglib].libs.ld_flags) - elif self.spec.variants["grib2"].value == "grib-api": - config_args.append("--with-grib_api=" + yes_or_prefix("grib-api")) - if self.spec.satisfies("@1.9:"): - config_args.append("--without-eccodes") +# DH* not in upstream 2026/06/02 +# if eccodes_spec.satisfies("~shared"): +# jpeglib = eccodes_spec.variants["jp2k"].value +# flags["LIBS"].append(self.spec[jpeglib].libs.link_flags) +# flags["LDFLAGS"].append(self.spec[jpeglib].libs.ld_flags) +# elif self.spec.variants["grib2"].value == "grib-api": +# config_args.append("--with-grib_api=" + yes_or_prefix("grib-api")) +# if self.spec.satisfies("@1.9:"): +# config_args.append("--without-eccodes") +# *DH else: config_args.append("--without-grib_api") if self.spec.satisfies("@1.9:"): diff --git a/repos/spack_repo/builtin/packages/cdt/package.py b/repos/spack_repo/builtin/packages/cdt/package.py index 9739ee386d2..b9b33ccf9d9 100644 --- a/repos/spack_repo/builtin/packages/cdt/package.py +++ b/repos/spack_repo/builtin/packages/cdt/package.py @@ -15,8 +15,9 @@ class Cdt(CMakePackage): maintainers("jcortial-safran") - license("MPL-2.0-no-copyleft-exception") + license("MPL-2.0-no-copyleft-exception", checked_by="jcortial-safran") + version("1.4.4", sha256="97e57bdd1cf8219dcc81634236a502390a20dda3599dd3414a74343b7f03427f") version("1.4.1", sha256="86df99eb5f02a73eeb8c6ea45765eed0d7f206e8d4d9f6479f77e3c590ae5bb3") version("1.4.0", sha256="cb5a95a39b417f5a4d170c7ebe97232d0ed36ea64069339b14964dd52dea95ab") version("1.3.6", sha256="15881e4c451f3b7cceade9b11884b3813ff674dff3edae4fb7c440634f8d4c33") @@ -42,6 +43,9 @@ class Cdt(CMakePackage): depends_on("cxx", type="build") # generated depends_on("cmake@3.4:", type="build") + # https://github.com/artem-ogre/CDT/issues/197 + depends_on("cmake@:3", when="@:1.4.1", type="build") + depends_on("boost", when="+boost") root_cmakelists_dir = "CDT" diff --git a/repos/spack_repo/builtin/packages/ceed/package.py b/repos/spack_repo/builtin/packages/ceed/package.py index 9e8677c5d41..c0581e45e24 100644 --- a/repos/spack_repo/builtin/packages/ceed/package.py +++ b/repos/spack_repo/builtin/packages/ceed/package.py @@ -30,7 +30,7 @@ class Ceed(BundlePackage, CudaPackage, ROCmPackage): variant("mfem", default=True, description="Build MFEM, Laghos and Remhos") variant("nek", default=True, description="Build Nek5000, GSLIB, Nekbone, and NekCEM") variant("occa", default=True, description="Enable OCCA support") - variant("petsc", default=True, description="Build PETSc and HPGMG", when="@2:") + variant("petsc", default=True, description="Build PETSc and HPGMG", when="@4:") variant("pumi", default=True, description="Build PUMI") variant("omega-h", default=True, description="Build Omega_h") variant( @@ -135,13 +135,13 @@ class Ceed(BundlePackage, CudaPackage, ROCmPackage): # ceed-2.0 depends_on("nek5000@17.0", when="@2.0.0+nek") depends_on("nektools@17.0%gcc", when="@2.0.0+nek") - depends_on("gslib@1.0.2", when="@2.0.0+nek") + depends_on("gslib@1.0.3", when="@2.0.0+nek") depends_on("nekbone@17.0", when="@2.0.0+nek") depends_on("nekcem@7332619", when="@2.0.0+nek") # ceed-1.0 depends_on("nek5000@17.0", when="@1.0.0+nek") depends_on("nektools@17.0%gcc", when="@1.0.0+nek") - depends_on("gslib@1.0.2", when="@1.0.0+nek") + depends_on("gslib@1.0.3", when="@1.0.0+nek") depends_on("nekbone@17.0", when="@1.0.0+nek") depends_on("nekcem@0b8bedd", when="@1.0.0+nek") @@ -182,28 +182,9 @@ class Ceed(BundlePackage, CudaPackage, ROCmPackage): depends_on("petsc@3.15.0:3.15~hdf5~superlu-dist", when="@4.0.0+petsc+quickbuild") depends_on("petsc@3.15.0:3.15+mpi+double~int64", when="@4.0.0:4+petsc~mfem") # ceed-3.0 - depends_on("petsc+cuda", when="@3.0.0+petsc+cuda") - # For a +quickbuild we disable hdf5, and superlu-dist in PETSc. - depends_on("petsc@3.13.0:3.13~hdf5~superlu-dist", when="@3.0.0+petsc+quickbuild") - depends_on("petsc@3.13.0:3.13+mpi+double~int64", when="@3.0.0+petsc~mfem") # Coax concretizer to use version of hypre required by transitive # dependencies (mfem, petsc) depends_on("hypre@:2.18.2", when="@3.0.0+mfem") - # The mfem petsc examples need the petsc variants +hypre, +suite-sparse, - # and +mumps: - depends_on( - "petsc@3.13.0:3.13+mpi+hypre+suite-sparse+mumps+double~int64", when="@3.0.0+petsc+mfem" - ) - # ceed-2.0 - # For a +quickbuild we disable hdf5, and superlu-dist in PETSc. - # Ideally, these can be turned into recommendations to Spack for - # concretizing the PETSc spec, if Spack ever supports recommendations. - depends_on("petsc@3.11.1~hdf5~superlu-dist", when="@2.0.0+petsc+quickbuild") - depends_on("petsc@3.11.1+mpi+double~int64", when="@2.0.0+petsc~mfem") - # The mfem petsc examples need the petsc variants +hypre, +suite-sparse, - # and +mumps: - depends_on("petsc@3.11.1+mpi+hypre+suite-sparse+mumps+double~int64", when="@2.0.0+petsc+mfem") - depends_on("hpgmg@0.4+fe", when="@2.0.0+petsc") # MAGMA # ceed 5.0 @@ -286,8 +267,7 @@ class Ceed(BundlePackage, CudaPackage, ROCmPackage): depends_on("laghos@3.1", when="@4.0.0+mfem") depends_on("remhos@1.0", when="@4.0.0+mfem") # ceed-3.0 - depends_on("mfem@4.1.0+mpi+examples+miniapps", when="@3.0.0+mfem~petsc") - depends_on("mfem@4.1.0+mpi+petsc+examples+miniapps", when="@3.0.0+mfem+petsc") + depends_on("mfem@4.1.0+mpi+examples+miniapps", when="@3.0.0+mfem") depends_on("mfem@4.1.0+pumi", when="@3.0.0+mfem+pumi") depends_on("mfem@4.1.0+gslib", when="@3.0.0+mfem+nek") depends_on("mfem@4.1.0+libceed", when="@3.0.0+mfem") @@ -296,31 +276,18 @@ class Ceed(BundlePackage, CudaPackage, ROCmPackage): depends_on("laghos@3.0", when="@3.0.0+mfem") depends_on("remhos@1.0", when="@3.0.0+mfem") - # If using gcc version <= 4.8 build suite-sparse version <= 5.1.0 - depends_on("suite-sparse@:5.1.0", when="@3.0.0+mfem+petsc%gcc@:4.8") - # ceed-2.0 - depends_on("mfem@3.4.0+mpi+examples+miniapps", when="@2.0.0+mfem~petsc") - depends_on("mfem@3.4.0+mpi+petsc+examples+miniapps", when="@2.0.0+mfem+petsc") + depends_on("mfem@3.4.0+mpi+examples+miniapps", when="@2.0.0+mfem") depends_on("mfem@3.4.0+pumi", when="@2.0.0+mfem+pumi") depends_on("laghos@2.0", when="@2.0.0+mfem") - # Help the spack concretizer find a suitable version of hypre: - depends_on("hypre~internal-superlu", when="@2.0.0+mfem") - depends_on("hypre~internal-superlu~superlu-dist", when="@2.0.0+mfem+quickbuild") - - # If using gcc version <= 4.8 build suite-sparse version <= 5.1.0 - depends_on("suite-sparse@:5.1.0", when="@2.0.0+mfem+petsc%gcc@:4.8") + depends_on("hypre", when="@2.0.0+mfem") + depends_on("hypre~superlu-dist", when="@2.0.0+mfem+quickbuild") # ceed-1.0 depends_on("mfem@3.3.2+mpi+examples+miniapps", when="@1.0.0+mfem") depends_on("mfem@3.3.2+mpi+petsc+examples+miniapps", when="@1.0.0+mfem") depends_on("laghos@1.0", when="@1.0.0+mfem") - # The next line seems to be necessary because the concretizer somehow - # decides that mfem requires 'hypre+internal-superlu' even though the mfem - # package lists simply 'hypre' as dependency. This is only an issue because - # petsc explicitly requires 'hypre~internal-superlu' which for the - # concretizer is a conflict. - depends_on("hypre~internal-superlu", when="@1.0.0+mfem") + depends_on("hypre", when="@1.0.0+mfem") # If using gcc version <= 4.8 build suite-sparse version <= 5.1.0 depends_on("suite-sparse@:5.1.0", when="@1.0.0+mfem%gcc@:4.8") diff --git a/repos/spack_repo/builtin/packages/celeritas/package.py b/repos/spack_repo/builtin/packages/celeritas/package.py index 01718394afa..b7a8ef6f613 100644 --- a/repos/spack_repo/builtin/packages/celeritas/package.py +++ b/repos/spack_repo/builtin/packages/celeritas/package.py @@ -27,32 +27,15 @@ class Celeritas(CMakePackage, CudaPackage, ROCmPackage): version("develop", branch="develop", get_full_repo=True) + version("0.6.3", sha256="c87910acd0bb9dc85c53e2e4d9958f36d3bb1e5975f0e08fe7274b332a2ccf27") + version("0.6.2", sha256="efca5a7f4797cd29d2b4e0b2251896b9fe4253ed95ff5c18f4d0476d4c34b48d") + version("0.6.1", sha256="fe97cdb87e579559c29a0366058327243945bf2a0e25aac4d562c8fe0c672c2a") version("0.6.0", sha256="c776dee357ecff42f85ed02c328f24b092400af28e67af2c0e195ce8f67613b0") version("0.5.3", sha256="4d1fe1f34e899c3599898fb6d44686d2582a41b0872784514aa8c562597b3ee6") version("0.5.2", sha256="46311c096b271d0331b82c02485ac6bf650d5b0f7bd948fb01aef5058f8824e3") version("0.5.1", sha256="182d5466fbd98ba9400b343b55f6a06e03b77daed4de1dd16f632ac0a3620249") version("0.5.0", sha256="4a8834224d96fd01897e5872ac109f60d91ef0bd7b63fac05a73dcdb61a5530e") version("0.4.4", sha256="8b5ae63aa2d50c2ecf48d752424e4a33c50c07d9f0f5ca5448246de3286fd836") - version( - "0.4.3", - sha256="b4f603dce1dc9c4894ea4c86f6574026ea8536714982e7dc6dff7472c925c892", - deprecated=True, - ) - version( - "0.4.2", - sha256="eeca9705413f5e16e0fb81154e042600c8df125af7049912757feb01d43730e2", - deprecated=True, - ) - version( - "0.4.1", - sha256="24e5c15eb9eec45f52d94a6719ae3505388b49d409cb7e26c875c70ac409bd2c", - deprecated=True, - ) - version( - "0.4.0", - sha256="8b8eaef84641eeca0fc40321d358205fc9d51e3c6dc7bd1bf03218c1919c774e", - deprecated=True, - ) _cxxstd_values = ("17", "20") @@ -81,11 +64,11 @@ class Celeritas(CMakePackage, CudaPackage, ROCmPackage): depends_on("cmake@3.13:", type="build") depends_on("cmake@3.18:", type="build", when="+cuda+vecgeom") depends_on("cmake@3.22:", type="build", when="+rocm") + depends_on("cmake@3.27:", type="build", when="+covfie") depends_on("cli11", when="@0.6:") depends_on("nlohmann-json") depends_on("covfie@0.13:", when="+covfie") - depends_on("geant4@10.5:11.1", when="@0.3.1:0.4.1 +geant4") depends_on("geant4@10.5:11.2", when="@0.4.2:0.4 +geant4") depends_on("geant4@10.5:", when="@0.5: +geant4") depends_on("g4vg@1.0.2:", when="@0.6: +geant4 +vecgeom") @@ -134,6 +117,12 @@ class Celeritas(CMakePackage, CudaPackage, ROCmPackage): sha256="1161c4f1166860d35d2a3f103236a63acd6a35aee2d2c27561cb929941d1c170", when="@0.5.0 +geant4 ^geant4@11.3.0:", ) + # CUDA 13 API change: removed clockRate and memoryClockRate + patch( + "https://github.com/celeritas-project/celeritas/commit/71221336cc3fc4232eda4b5b96fc5079a4193d86.patch?full_index=1", + sha256="cc44c5d6d8fb371ff3d42e13521eb0752780715e9d070b46699633ca3cd7e995", + when="@:0.6.2 +cuda ^cuda@13:", + ) def cmake_args(self): define = self.define diff --git a/repos/spack_repo/builtin/packages/ceres_solver/package.py b/repos/spack_repo/builtin/packages/ceres_solver/package.py index 3a2cae1e751..4877a2ec81a 100644 --- a/repos/spack_repo/builtin/packages/ceres_solver/package.py +++ b/repos/spack_repo/builtin/packages/ceres_solver/package.py @@ -35,8 +35,8 @@ class CeresSolver(CMakePackage): depends_on("cmake@2.8.0:", type="build", when="@1.12.0:1.14.0") depends_on("cmake@3.5:", type="build", when="@2.0.0") depends_on("cmake@3.16:3.27", type="build", when="@2.2.0") - depends_on("eigen@3:") - depends_on("eigen@3.3:", when="@2.0.0:") + depends_on("eigen@3") + depends_on("eigen@3.3:3", when="@2.0.0:") depends_on("lapack") depends_on("glog@0.3.5:") depends_on("suite-sparse", when="+suitesparse") diff --git a/repos/spack_repo/builtin/packages/cfitsio/package.py b/repos/spack_repo/builtin/packages/cfitsio/package.py index f5452d31bd4..892dc232e16 100644 --- a/repos/spack_repo/builtin/packages/cfitsio/package.py +++ b/repos/spack_repo/builtin/packages/cfitsio/package.py @@ -14,9 +14,11 @@ class Cfitsio(AutotoolsPackage): homepage = "https://heasarc.gsfc.nasa.gov/fitsio/" url = "https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio-3.49.tar.gz" + git = "https://github.com/HEASARC/cfitsio.git" license("custom") + version("4.6.3", sha256="fad44fff274fdda5ffcc0c0fff3bc3c596362722b9292fc8944db91187813600") version("4.5.0", sha256="e4854fc3365c1462e493aa586bfaa2f3d0bb8c20b75a524955db64c27427ce09") version("4.4.1", sha256="66a1dc3f21800f9eeabd9eac577b91fcdd9aabba678fbba3b8527319110d1d25") version("4.4.0", sha256="95900cf95ae760839e7cb9678a7b2fad0858d6ac12234f934bd1cb6bfc246ba9") diff --git a/repos/spack_repo/builtin/packages/cgal/package.py b/repos/spack_repo/builtin/packages/cgal/package.py index 45d7d05083d..921777aaca8 100644 --- a/repos/spack_repo/builtin/packages/cgal/package.py +++ b/repos/spack_repo/builtin/packages/cgal/package.py @@ -18,7 +18,12 @@ class Cgal(CMakePackage): homepage = "https://www.cgal.org/" url = "https://github.com/CGAL/cgal/releases/download/v5.4.1/CGAL-5.4.1.tar.xz" + version("6.0.2", sha256="f30c5be7c25a2a3ea24bccbaab5cf63fafda63c0279f34d7e7f8b3212821fed6") version("6.0.1", sha256="0acdfbf317c556630dd526f3253780f29b6ec9713ee92903e81b5c93c0f59b7f") + version("6.0", sha256="6b0c9b47c7735a2462ff34a6c3c749d1ff4addc1454924b76263dc60ab119268") + version("5.6.3", sha256="15c743cb395d1a0855b9062525f3ae0cd40486489acfe7ce1457c3710ab34111") + version("5.6.2", sha256="458f60df8e8f1f2fdad93c8f24e1aa8f4b095cc61a14fac81b90680d7306a42e") + version("5.6.1", sha256="cdb15e7ee31e0663589d3107a79988a37b7b1719df3d24f2058545d1bcdd5837") version("5.6", sha256="dcab9b08a50a06a7cc2cc69a8a12200f8d8f391b9b8013ae476965c10b45161f") version("5.5.3", sha256="0a04f662693256328b05babfabb5e3a5b7db2f5a58d52e3c520df9d0828ddd73") version("5.5.2", sha256="b2b05d5616ecc69facdc24417cce0b04fb4321491d107db45103add520e3d8c3") @@ -74,8 +79,7 @@ class Cgal(CMakePackage): depends_on("c", type="build") depends_on("cxx", type="build") - # Upper bound follows CGAL's @6: CMakeLists.txt - depends_on("cmake@3.12:3.29", type="build", when="@6:") + depends_on("cmake@3.12:3", type="build", when="@6:") depends_on("cmake@2.8.11:", type="build", when="@:5") # Essential Third Party Libraries @@ -133,7 +137,7 @@ class Cgal(CMakePackage): conflicts( "~header_only", when="@:4.9", - msg="Header only builds became optional in 4.9," " default thereafter", + msg="Header only builds became optional in 4.9, default thereafter", ) def url_for_version(self, version): diff --git a/repos/spack_repo/builtin/packages/cgdb/package.py b/repos/spack_repo/builtin/packages/cgdb/package.py index a8695b56fdc..8d7d451d5cc 100644 --- a/repos/spack_repo/builtin/packages/cgdb/package.py +++ b/repos/spack_repo/builtin/packages/cgdb/package.py @@ -38,7 +38,7 @@ class Cgdb(AutotoolsPackage): @when("@master") def autoreconf(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("autogen.sh") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/cgdcbxd/package.py b/repos/spack_repo/builtin/packages/cgdcbxd/package.py index 0201bdd9f36..be22c263324 100644 --- a/repos/spack_repo/builtin/packages/cgdcbxd/package.py +++ b/repos/spack_repo/builtin/packages/cgdcbxd/package.py @@ -30,7 +30,7 @@ class Cgdcbxd(AutotoolsPackage): depends_on("libmnl") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./bootstrap.sh") @property diff --git a/repos/spack_repo/builtin/packages/cgl/package.py b/repos/spack_repo/builtin/packages/cgl/package.py index 8b280db0657..d8f28ce11c4 100644 --- a/repos/spack_repo/builtin/packages/cgl/package.py +++ b/repos/spack_repo/builtin/packages/cgl/package.py @@ -16,19 +16,35 @@ class Cgl(AutotoolsPackage): with a solver. It does not directly call a solver.""" homepage = "https://projects.coin-or.org/Cgl" - url = "https://github.com/coin-or/Cgl/archive/releases/0.60.3.tar.gz" + url = "https://github.com/coin-or/Cgl/archive/releases/0.60.10.tar.gz" license("EPL-2.0") + version("0.60.10", sha256="41b7ac9402db883d9c487eb7101e59eb513cefd726e6e7a669dc94664d9385e6") version("0.60.8", sha256="1482ba38afb783d124df8d5392337f79fdd507716e9f1fb6b98fc090acd1ad96") version("0.60.7", sha256="93b30a80b5d2880c2e72d5877c64bdeaf4d7c1928b3194ea2f88b1aa4517fb1b") version("0.60.6", sha256="9e2c51ffad816ab408763d6b931e2a3060482ee4bf1983148969de96d4b2c9ce") version("0.60.3", sha256="cfeeedd68feab7c0ce377eb9c7b61715120478f12c4dd0064b05ad640e20f3fb") + version("0.59.11", sha256="b670f69a81fed8eddd3198688b73bd8ee4b6382388901f78df92fcaf97c40a92") + version("0.59.7", sha256="1bf0fb2012ec535d1c44aea53469d9705967e7bbae5de1d87e1985c90fd6d6a8") + version("0.58.11", sha256="7503594257d08f48a48fa1cfdd9982aeac8b34b787efb6c9af475bf3f6563d16") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("pkgconfig", type="build") + depends_on("coinutils@2.11.0:", when="@0.60:") + depends_on("coinutils@2.10.3:", when="@0.59:") depends_on("coinutils") + depends_on("osi") depends_on("clp") build_directory = "spack-build" + + def setup_build_environment(self, env): + # With older versions of GCC, there was a high chance of math headers being included + # implicitly by other headers, allowing files with missing inclusion to build. + + if self.spec.satisfies("%gcc@11:") and self.spec.satisfies("@:0.59.9"): + env.append_flags("CXXFLAGS", "-DHAVE_CFLOAT=1") diff --git a/repos/spack_repo/builtin/packages/cgm/package.py b/repos/spack_repo/builtin/packages/cgm/package.py index 1b70a55516e..27d1f54f110 100644 --- a/repos/spack_repo/builtin/packages/cgm/package.py +++ b/repos/spack_repo/builtin/packages/cgm/package.py @@ -21,14 +21,12 @@ class Cgm(AutotoolsPackage): version("13.1", sha256="985aa6c5db4257999af6f2bdfcb24f2bce74191cdcd98e937700db7fd9f6b549") variant("mpi", default=True, description="enable mpi support") - variant("oce", default=False, description="enable oce geometry kernel") variant("debug", default=False, description="enable debug symbols") variant("shared", default=False, description="enable shared builds") depends_on("cxx", type="build") # generated depends_on("mpi", when="+mpi") - depends_on("oce+X11", when="+oce") def configure_args(self): spec = self.spec @@ -45,10 +43,7 @@ def configure_args(self): else: args.append("--without-mpi") - if spec.satisfies("+oce"): - args.append("--with-occ={0}".format(spec["oce"].prefix)) - else: - args.append("--without-occ") + args.append("--without-occ") if spec.satisfies("+debug"): args.append("--enable-debug") diff --git a/repos/spack_repo/builtin/packages/chafa/package.py b/repos/spack_repo/builtin/packages/chafa/package.py index 8779fb4723d..95bf04a0f64 100644 --- a/repos/spack_repo/builtin/packages/chafa/package.py +++ b/repos/spack_repo/builtin/packages/chafa/package.py @@ -13,13 +13,13 @@ class Chafa(AutotoolsPackage): suitable for display in a terminal.""" homepage = "https://hpjansson.org/chafa/" - url = "https://hpjansson.org/chafa/releases/chafa-1.16.1.tar.xz" + url = "https://hpjansson.org/chafa/releases/chafa-1.16.2.tar.xz" git = "https://github.com/hpjansson/chafa.git" license("LGPL-3.0-or-later", checked_by="Buldram") - maintainers("Buldram") version("master", branch="master") + version("1.16.2", sha256="657898dd9a89b45130a44c1efe1fc03e2c7bd00c2f543ed7111613cb9e7861df") version("1.16.1", sha256="4a25debb71530baf0a748b15cfee6b8da6b513f696d9484987eaf410ecce1129") version("1.16.0", sha256="bf863e57b6200b696bde1742aa95d7feb8cd23b9df1e91e91859b2b1e54fd290") version("1.14.5", sha256="7b5b384d5fb76a641d00af0626ed2115fb255ea371d9bef11f8500286a7b09e5") diff --git a/repos/spack_repo/builtin/packages/chai/package.py b/repos/spack_repo/builtin/packages/chai/package.py index 140581b5000..ecd69a4c75b 100644 --- a/repos/spack_repo/builtin/packages/chai/package.py +++ b/repos/spack_repo/builtin/packages/chai/package.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re import socket from spack_repo.builtin.build_systems.cached_cmake import ( @@ -31,6 +32,30 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") version("develop", branch="develop", submodules=False) + version( + "2025.12.0", + tag="v2025.12.0", + commit="26d5646707e1848b0524379b12a7716e4a830a27", + submodules=False, + ) + version( + "2025.09.1", + tag="v2025.09.1", + commit="51e66b8a5a6caac41aa329c8643180b8e2b33e5f", + submodules=False, + ) + version( + "2025.09.0", + tag="v2025.09.0", + commit="352ae302535d9dc5ba50b77bf508c89fc7500d30", + submodules=False, + ) + version( + "2025.03.1", + tag="v2025.03.1", + commit="2e83ca803ec8656d2ca677972fdd1378a17ad5d2", + submodules=False, + ) version( "2025.03.0", tag="v2025.03.0", @@ -126,6 +151,8 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage): variant("raja", default=False, description="Build plugin for RAJA") variant("examples", default=True, description="Build examples.") variant("openmp", default=False, description="Build using OpenMP") + variant("disable_rm", default=False, description="Make ManagedArray a thin wrapper") + # TODO: figure out gtest dependency and then set this default True # and remove the +tests conflict below. variant( @@ -146,6 +173,8 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("cmake@3.8:", type="build") depends_on("blt", type="build") + depends_on("blt@0.7.1:", type="build", when="@2025.09.0:") + depends_on("blt@0.7.0:", type="build", when="@2025.03.0:") depends_on("blt@0.6.2:", type="build", when="@2024.02.1:") depends_on("blt@0.6.1", type="build", when="@2024.02.0") depends_on("blt@0.5.3", type="build", when="@2023.06.0") @@ -157,7 +186,10 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage): conflicts("^blt@:0.3.6", when="+rocm") depends_on("umpire") - depends_on("umpire@2024.07.0:", when="@2024.07.0:") + depends_on("umpire@2025.12:", when="@2025.12:") + depends_on("umpire@2025.09", when="@2025.09") + depends_on("umpire@2025.03", when="@2025.03") + depends_on("umpire@2024.07.0", when="@2024.07.0") depends_on("umpire@2024.02.1", when="@2024.02.1") depends_on("umpire@2024.02.0", when="@2024.02.0") depends_on("umpire@2023.06.0", when="@2023.06.0") @@ -185,7 +217,11 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage): with when("+raja"): depends_on("raja~openmp", when="~openmp") depends_on("raja+openmp", when="+openmp") - depends_on("raja@2024.07.0:", when="@2024.07.0:") + depends_on("raja@2025.12:", when="@2025.12.0:") + depends_on("raja@2025.09", when="@2025.09.0") + depends_on("raja@2025.03.2", when="@2025.03.1") + depends_on("raja@2025.03.0", when="@2025.03.0") + depends_on("raja@2024.07.0", when="@2024.07.0") depends_on("raja@2024.02.2", when="@2024.02.2") depends_on("raja@2024.02.1", when="@2024.02.1") depends_on("raja@2024.02.0", when="@2024.02.0") @@ -255,11 +291,54 @@ def initconfig_hardware_entries(self): if spec.satisfies("+separable_compilation"): entries.append(cmake_cache_option("CMAKE_CUDA_SEPARABLE_COMPILATION", True)) entries.append(cmake_cache_option("CUDA_SEPARABLE_COMPILATION", True)) + + # CUDA configuration from cuda_for_radiuss_projects + cuda_flags = [] + if not spec.satisfies("cuda_arch=none"): + cuda_archs = ";".join(spec.variants["cuda_arch"].value) + entries.append(cmake_cache_string("CMAKE_CUDA_ARCHITECTURES", cuda_archs)) + + # gcc-toolchain support + gcc_toolchain_regex = re.compile(".*gcc-toolchain.*") + using_toolchain = list( + filter(gcc_toolchain_regex.match, spec.compiler_flags["cxxflags"]) + ) + if using_toolchain: + cuda_flags.append("-Xcompiler {}".format(using_toolchain[0])) + + if cuda_flags: + entries.append(cmake_cache_string("CMAKE_CUDA_FLAGS", " ".join(cuda_flags))) else: entries.append(cmake_cache_option("ENABLE_CUDA", False)) if spec.satisfies("+rocm"): entries.append(cmake_cache_option("ENABLE_HIP", True)) + + # HIP configuration from hip_for_radiuss_projects + rocm_root = spec["llvm-amdgpu"].prefix + gcc_toolchain_regex = re.compile(".*gcc-toolchain.*") + using_toolchain = list( + filter(gcc_toolchain_regex.match, spec.compiler_flags["cxxflags"]) + ) + hip_link_flags = "" + + if using_toolchain: + gcc_prefix = using_toolchain[0] + entries.append( + cmake_cache_string("HIP_CLANG_FLAGS", "--gcc-toolchain={0}".format(gcc_prefix)) + ) + entries.append( + cmake_cache_string( + "CMAKE_EXE_LINKER_FLAGS", + hip_link_flags + " -Wl,-rpath={0}/lib64".format(gcc_prefix), + ) + ) + else: + entries.append( + cmake_cache_string( + "CMAKE_EXE_LINKER_FLAGS", "-Wl,-rpath={0}/llvm/lib/".format(rocm_root) + ) + ) else: entries.append(cmake_cache_option("ENABLE_HIP", False)) @@ -267,8 +346,8 @@ def initconfig_hardware_entries(self): def initconfig_mpi_entries(self): spec = self.spec - entries = super(Chai, self).initconfig_mpi_entries() + entries.append(cmake_cache_option("ENABLE_MPI", spec.satisfies("+mpi"))) return entries @@ -323,6 +402,10 @@ def initconfig_package_entries(self): ) ) + entries.append( + cmake_cache_option("{}DISABLE_RM".format(option_prefix), spec.satisfies("+disable_rm")) + ) + return entries def cmake_args(self): diff --git a/repos/spack_repo/builtin/packages/chameleon/package.py b/repos/spack_repo/builtin/packages/chameleon/package.py index ae2385df011..eaa436794c3 100644 --- a/repos/spack_repo/builtin/packages/chameleon/package.py +++ b/repos/spack_repo/builtin/packages/chameleon/package.py @@ -13,11 +13,12 @@ class Chameleon(CMakePackage, CudaPackage): """Dense Linear Algebra for Scalable Multi-core Architectures and GPGPUs""" homepage = "https://gitlab.inria.fr/solverstack/chameleon" - url = "https://gitlab.inria.fr/api/v4/projects/616/packages/generic/source/v1.3.0/chameleon-1.3.0.tar.gz" + url = "https://gitlab.inria.fr/api/v4/projects/616/packages/generic/source/v1.4.0/chameleon-1.4.0.tar.gz" git = "https://gitlab.inria.fr/solverstack/chameleon.git" maintainers("fpruvost") version("master", branch="master", submodules=True) + version("1.4.0", sha256="7b65a6168ebdfc11a1c9994454ee474673fc92348d5aa8724e83c34fd5010aaf") version("1.3.0", sha256="2725d2d2a9885e619e0c8d41306b9b9dc6d5df635b710cf8d077a14803ea26cd") version("1.2.0", sha256="b8988ecbff19c603ae9f61441653c21bba18d040bee9bb83f7fc9077043e50b4") version("1.1.0", sha256="e64d0438dfaf5effb3740e53f3ab017d12744b85a138b2ef702a81df559126df") diff --git a/repos/spack_repo/builtin/packages/chapel/fix_spack_cc_wrapper_in_cray_prgenv_2.8.patch b/repos/spack_repo/builtin/packages/chapel/fix_spack_cc_wrapper_in_cray_prgenv_2.8.patch new file mode 100644 index 00000000000..075af01551e --- /dev/null +++ b/repos/spack_repo/builtin/packages/chapel/fix_spack_cc_wrapper_in_cray_prgenv_2.8.patch @@ -0,0 +1,23 @@ +diff --git a/util/chplenv/chpl_llvm.py b/util/chplenv/chpl_llvm.py +index 4da5d4648ba..4398b9704d9 100755 +--- a/util/chplenv/chpl_llvm.py ++++ b/util/chplenv/chpl_llvm.py +@@ -1286,12 +1286,15 @@ def get_clang_prgenv_args(): + + # Use cc --cray-print-opts=... to get arguments from compiler driver + ++ # find the actual cc in case something like spack has wrapped it ++ real_cc = os.path.join(os.environ["CRAYPE_DIR"], "bin", "cc") ++ + # Get compilation arguments +- opts = run_command(["cc", "--cray-print-opts=cflags"]) ++ opts = run_command([real_cc, "--cray-print-opts=cflags"]) + comp_args.extend(opts.split()) + + # Get link arguments +- opts = run_command(["cc", "--cray-print-opts=libs"]) ++ opts = run_command([real_cc, "--cray-print-opts=libs"]) + link_args.extend(opts.split()) + + return (comp_args, link_args) + diff --git a/repos/spack_repo/builtin/packages/chapel/package.py b/repos/spack_repo/builtin/packages/chapel/package.py index e22ca804f86..65e0438f6cd 100644 --- a/repos/spack_repo/builtin/packages/chapel/package.py +++ b/repos/spack_repo/builtin/packages/chapel/package.py @@ -50,7 +50,7 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage): test_requires_compiler = True # TODO: Re-enable these once we add determine_version and determine_variants - # executables = ["^chpl$", "^chpldoc$"] + # executables = ["^chpl$", "^chpldoc$", "^mason$"] # A list of GitHub accounts to notify when the package is updated. # TODO: add chapel-project github account @@ -63,18 +63,24 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage): version("main", branch="main") - version("2.5.0", sha256="020220ca9bf52b9f416e9a029bdc465bb1f635c1e274c6ca3c18d1f83e41fce1") - version("2.4.0", sha256="a51a472488290df12d1657db2e7118ab519743094f33650f910d92b54c56f315") - version("2.3.0", sha256="0185970388aef1f1fae2a031edf060d5eac4eb6e6b1089e7e3b15a130edd8a31") - version("2.2.0", sha256="bb16952a87127028031fd2b56781bea01ab4de7c3466f7b6a378c4d8895754b6") - version("2.1.0", sha256="72593c037505dd76e8b5989358b7580a3fdb213051a406adb26a487d26c68c60") - version("2.0.1", sha256="19ebcd88d829712468cfef10c634c3e975acdf78dd1a57671d11657574636053") - version("2.0.0", sha256="b5387e9d37b214328f422961e2249f2687453c2702b2633b7d6a678e544b9a02") + version("2.8.0", sha256="80e8c3018e33e49674c7a2542e062547ea41d64d6595edb3b799e90c88f963f8") + version("2.7.0", sha256="5e3269babdae334c80fc3f25114698fdfe53e84ea06626af22d2b54eeb75bee6") + version("2.6.0", sha256="e469c35be601cf1f59af542ab885e8a14aa2b087b79af0d5372a4421976c74b6") + + with default_args(deprecated=True): + version("2.5.0", sha256="020220ca9bf52b9f416e9a029bdc465bb1f635c1e274c6ca3c18d1f83e41fce1") + version("2.4.0", sha256="a51a472488290df12d1657db2e7118ab519743094f33650f910d92b54c56f315") + version("2.3.0", sha256="0185970388aef1f1fae2a031edf060d5eac4eb6e6b1089e7e3b15a130edd8a31") + version("2.2.0", sha256="bb16952a87127028031fd2b56781bea01ab4de7c3466f7b6a378c4d8895754b6") + version("2.1.0", sha256="72593c037505dd76e8b5989358b7580a3fdb213051a406adb26a487d26c68c60") + version("2.0.1", sha256="19ebcd88d829712468cfef10c634c3e975acdf78dd1a57671d11657574636053") + version("2.0.0", sha256="b5387e9d37b214328f422961e2249f2687453c2702b2633b7d6a678e544b9a02") sanity_check_is_dir = ["bin", join_path("lib", "chapel"), join_path("share", "chapel")] sanity_check_is_file = [join_path("bin", "chpl")] - patch("fix_spack_cc_wrapper_in_cray_prgenv.patch", when="@2.0.0:") + patch("fix_spack_cc_wrapper_in_cray_prgenv.patch", when="@2.0.0:2.7") + patch("fix_spack_cc_wrapper_in_cray_prgenv_2.8.patch", when="@2.8:") patch("fix_chpl_shared_lib_path.patch", when="@2.1.1:2.2 +python-bindings") # PR 26388 patch("fix_chpl_shared_lib_path_2.3.patch", when="@2.2.1:2.3 +python-bindings") # PR 26388 patch("fix_chpl_line_length.patch", when="@:2.3.0") # PRs 26357, 26381, 26491 @@ -85,6 +91,16 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage): when="@2.2:2.5", sha256="1e49e48eb838c38db5b81ca4859e566067a61d537269e35a6a356edb76d3c86b", ) + # Fix CUDA 12.9 deprecation warnings + with when("@2.8"): + patch( + "https://github.com/chapel-lang/chapel/pull/28795.patch?full_index=1", + sha256="050ec846beaf836b026b23524f613b3eac8e74a11b8d86768a74fa4f07cc610c", + ) + patch( + "https://github.com/chapel-lang/chapel/commit/ab76ba2fe8cedb238be25f58ecc09a7ea7002d1d.patch?full_index=1", + sha256="61c65175ff62a6a7e912e7a0e353bb58849fd9eb35e1dd92957e1d74ff6ae2ed", + ) launcher_names = ( "amudprun", @@ -115,7 +131,7 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage): "dpcpp": "intel", "gcc": "gnu", "intel": "intel", - "llvm": "llvm", + "llvm": "clang", "oneapi": "intel", "rocmcc": "clang", "unset": "unset", @@ -165,6 +181,7 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage): "darwin", "hpe-apollo", "hpe-cray-ex", + "hpe-cray-xd", "linux32", "linux64", "netbsd32", @@ -184,6 +201,8 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage): # TODO: refactor this somehow, this is a separate documentation tool, not a variant of chapel variant("chpldoc", default=False, description="Build chpldoc in addition to chpl") + variant("mason", default=False, description="Enable Mason package manager support") + variant("developer", default=False, description="Enable Chapel developer mode") variant( @@ -193,6 +212,15 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage): values=("gasnet", "none", "ofi", "ugni"), ) + variant( + "comm_ofi_oob", + values=("sockets", "mpi", "pmi2", "unset"), + default="unset", + description="Select out-of-band support (CHPL_COMM_OFI_OOB)", + multi=False, + when="@2.2: comm=ofi", + ) + variant( "comm_substrate", default="unset", @@ -421,11 +449,16 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage): # TODO: for CHPL_X_CC and CHPL_X_CXX, can we capture an arbitrary path, possibly # with arguments? + # NOTE: this list should include all vars potentially set by this spackage in + # setup_run_environment that potentially affect the build, otherwise executing + # `spack load chapel` may contaminate a subsequent `spack install chapel`. chpl_env_vars = [ "CHPL_ATOMICS", "CHPL_AUX_FILESYS", "CHPL_COMM", + "CHPL_COMM_OFI_OOB", "CHPL_COMM_SUBSTRATE", + "CHPL_CUDA_PATH", "CHPL_DEVELOPER", "CHPL_GASNET_SEGMENT", "CHPL_GMP", @@ -434,9 +467,9 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage): "CHPL_GPU_MEM_STRATEGY", "CHPL_HOME", "CHPL_HOST_ARCH", - # "CHPL_HOST_CC", + "CHPL_HOST_CC", "CHPL_HOST_COMPILER", - # "CHPL_HOST_CXX", + "CHPL_HOST_CXX", "CHPL_HOST_JEMALLOC", "CHPL_HOST_MEM", "CHPL_HOST_PLATFORM", @@ -449,15 +482,17 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage): "CHPL_LLVM_SUPPORT", "CHPL_LLVM_VERSION", "CHPL_LOCALE_MODEL", + "CHPL_MAKE_THIRD_PARTY", "CHPL_MEM", "CHPL_RE2", + "CHPL_ROCM_PATH", "CHPL_SANITIZE", "CHPL_SANITIZE_EXE", "CHPL_TARGET_ARCH", - # "CHPL_TARGET_CC", + "CHPL_TARGET_CC", "CHPL_TARGET_COMPILER", "CHPL_TARGET_CPU", - # "CHPL_TARGET_CXX", + "CHPL_TARGET_CXX", "CHPL_TARGET_PLATFORM", "CHPL_TASKS", "CHPL_TIMERS", @@ -472,19 +507,71 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage): conflicts("+rocm", when="+cuda", msg="Chapel must be built with either CUDA or ROCm, not both") - conflicts( - "^llvm@20", - when="@:2.5 +cuda", - msg="Chapel through 2.5 does not support Nvidia GPUs with LLVM 20, see " - "https://github.com/chapel-lang/chapel/issues/27273", - ) + # GPU requirements should encode the requirements documented at: + # https://chapel-lang.org/docs/technotes/gpu.html#requirements + + # CUDA conflicts and dependencies + with when("+cuda"): + conflicts("llvm=none", msg="Cuda support requires building with LLVM") - conflicts("+rocm", when="@:2.1", msg="ROCm support in spack requires Chapel 2.0.0 or later") - # Chapel restricts the allowable ROCm versions - with when("@2.2: +rocm"): - depends_on("hsa-rocr-dev@6.0:6.2") - depends_on("hip@6.0:6.2") - requires("llvm=bundled", when="+rocm ^hip@6.0:6.2", msg="ROCm 6 support requires llvm=bundled") + depends_on("llvm@16:", when="llvm=spack ^cuda@12:") + requires( + "^llvm targets=all", + msg="llvm=spack +cuda requires LLVM support the nvptx target", + when="llvm=spack", + ) + conflicts( + "^llvm@20:", + when="@:2.5", + msg="Chapel through 2.5 does not support Nvidia GPUs with LLVM 20+, see " + "https://github.com/chapel-lang/chapel/issues/27273", + ) + + conflicts("cuda@12.9:", when="@:2.7") # deprecation warnings otherwise + + # ROCm conflicts and dependencies + with when("+rocm"): + conflicts("llvm=none", msg="ROCm support requires building with LLVM") + + conflicts("@:2.1", msg="ROCm support in spack requires Chapel 2.2.0 or later") + + # Chapel restricts the allowable ROCm versions + with when("@:2.7"): + depends_on("hsa-rocr-dev@6.0:6.2") + depends_on("hip@6.0:6.2") + with when("@2.8:"): + # ROCm 6.4 is specifically prohibited. Although Chapel allows it + # (see https://github.com/chapel-lang/chapel/pull/28220), the + # support is untested; being stricter here to reduce the amount of + # variables in getting the Spack package to work. + depends_on("hsa-rocr-dev@6.0:6.3,7") + depends_on("hip@6.0:6.3,7") + + # Chapel requires using the (patched) bundled LLVM for some versions + # of ROCm. + # Switching off of hsa-rocr-dev version rather than both it and hip, + # with the assumption they will always be the same, but if that changes + # this will need to be adjusted. + with when("^hsa-rocr-dev@6.0:6.2"): + requires("llvm=bundled", msg="Chapel ROCm 6.0-6.2 support requires llvm=bundled") + with when("^hsa-rocr-dev@6.3:6"): + # For 6.3-6.x, either bundled LLVM or system LLVM >= 21 is allowed. + depends_on("llvm@21:", when="llvm=spack") + with when("^hsa-rocr-dev@7"): + # For 7.x, we require LLVM >= 21, and as of release 2.8 the bundled + # LLVM is 19, so effectively we require _system_ LLVM >= 21. + # TODO: Modify this constraint and message when Chapel releases + # with a bundled LLVM >= 21. + requires("llvm=spack", msg="Chapel ROCm 7 support currently requires llvm=spack") + depends_on("llvm@21:") + + # Workaround for ROCmPackage forcing a dependency on llvm-amdgpu, which + # provides %rocmcc, which we don't want to use. + requires( + *("%" + comp for comp in compiler_map.keys() if comp != "rocmcc" and comp != "unset"), + policy="any_of", # any to ensure %clang works + msg="Chapel ROCm support requires a supported host compiler other than rocmcc", + ) conflicts( "comm_substrate=unset", @@ -522,13 +609,18 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage): "https://chapel-lang.org/docs/usingchapel/chplenv.html#chpl-host-jemalloc", ) - with when("llvm=none"): - conflicts("+cuda", msg="Cuda support requires building with LLVM") - conflicts("+rocm", msg="ROCm support requires building with LLVM") + conflicts( + "+python-bindings", + when="llvm=none", + msg="Python bindings require building with LLVM, see " + "https://chapel-lang.org/docs/tools/chapel-py/chapel-py.html#installation", + ) + + for target in ["host", "target"]: conflicts( - "+python-bindings", - msg="Python bindings require building with LLVM, see " - "https://chapel-lang.org/docs/tools/chapel-py/chapel-py.html#installation", + f"{target}_platform=hpe-cray-xd", + when="@:2.4", + msg="Platform hpe-cray-xd requires Chapel 2.5.0 or later", ) # Add dependencies @@ -537,20 +629,21 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage): depends_on("doxygen@1.8.17:", when="+chpldoc") + requires("+chpldoc", when="+mason", msg="Mason requires chpldoc") + # TODO: what would it take to make `comm` be a multi-valued variant? + # so even if a user had `comm=ofi +mason`, the concretized spec would be + # `comm=ofi,none +mason` + requires("comm=none", when="+mason", msg="Mason requires comm=none") + requires("re2=bundled", when="+mason", msg="Mason requires re2=bundled") + # TODO: keep up to date with util/chplenv/chpl_llvm.py - with when("llvm=spack ~rocm"): + with when("llvm=spack"): depends_on("llvm@11:17", when="@:2.0.1") depends_on("llvm@11:18", when="@2.1:2.2") depends_on("llvm@11:19", when="@2.3:2.4") - depends_on("llvm@11:20", when="@2.5:") - - # Based on docs https://chapel-lang.org/docs/technotes/gpu.html#requirements - depends_on("llvm@16:", when="llvm=spack +cuda ^cuda@12:") - requires( - "^llvm targets=all", - msg="llvm=spack +cuda requires LLVM support the nvptx target", - when="llvm=spack +cuda", - ) + depends_on("llvm@11:20", when="@2.5") + depends_on("llvm@14:20", when="@2.6:2.7") + depends_on("llvm@14:21", when="@2.8:") # This is because certain systems have binutils installed as a system package # but do not include the headers. Spack incorrectly supplies those external @@ -565,7 +658,7 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage): # but many of these are ALSO run-time dependencies of the executable # application built by that Chapel compiler from user-provided sources. with default_args(type=("build", "link", "run", "test")): - depends_on("cuda@11:", when="+cuda") + depends_on("cuda@11:12", when="+cuda") depends_on("gmp", when="gmp=spack") depends_on("hwloc", when="hwloc=spack") depends_on("libfabric", when="libfabric=spack") @@ -589,10 +682,15 @@ def unset_chpl_env_vars(self, env): def build(self, spec, prefix): with set_env(CHPL_MAKE_THIRD_PARTY=join_path(self.build_directory, "third-party")): + # print all the explicitly set CHPL_* config variables to assist in debugging + for var in self.chpl_env_vars: + tty.info(var + "=" + os.getenv(var, "")) make() with set_env(CHPL_HOME=self.build_directory): if spec.satisfies("+chpldoc"): make("chpldoc") + if spec.satisfies("+mason"): + make("mason") if spec.satisfies("+python-bindings"): make("chapel-py-venv") python("-m", "ensurepip", "--default-pip") @@ -633,20 +731,10 @@ def setup_chpl_compilers(self, env): # Undo spack compiler wrappers: # the C/C++ compilers must work post-install - if self.spec.satisfies("+rocm llvm=spack"): - env.set( - "CHPL_LLVM_CONFIG", - join_path(self.spec["llvm-amdgpu"].prefix, "bin", "llvm-config"), - ) - real_cc = join_path(self.spec["llvm-amdgpu"].prefix, "bin", "clang") - real_cxx = join_path(self.spec["llvm-amdgpu"].prefix, "bin", "clang++") - - # +rocm appears to also require a matching LLVM host compiler to guarantee linkage - env.set("CHPL_HOST_COMPILER", "llvm") - env.set("CHPL_HOST_CC", real_cc) - env.set("CHPL_HOST_CXX", real_cxx) - - elif self.spec.satisfies("llvm=spack"): + # If we ever switch back to using llvm-amdgpu for some ROCm versions, + # we will need a separate case here to use the binaries it provides + # rather than those of vanilla LLVM. + if self.spec.satisfies("llvm=spack"): env.set("CHPL_LLVM_CONFIG", join_path(self.spec["llvm"].prefix, "bin", "llvm-config")) real_cc = join_path(self.spec["llvm"].prefix, "bin", "clang") real_cxx = join_path(self.spec["llvm"].prefix, "bin", "clang++") @@ -775,6 +863,12 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: self.unset_chpl_env_vars(env) self.setup_env_vars(env) + @run_before("configure") + def print_configuration(self): + # print all the explicitly set CHPL_* config variables to assist in debugging + for var in self.chpl_env_vars: + tty.info(var + "=" + os.getenv(var, "")) + def setup_run_environment(self, env: EnvironmentModifications) -> None: self.setup_env_vars(env) chpl_home = join_path(self.prefix.share, "chapel", self._output_version_short) @@ -857,9 +951,7 @@ def test_version(self): path = join_path(self.prefix.bin, exe) if not os.path.isfile(path): raise SkipTest(f"{path} is not installed") - prog = which(path) - if prog is None: - raise RuntimeError(f"Could not find {path}") + prog = which(path, required=True) output = prog("--version", output=str.split, error=str.split) assert expected in output diff --git a/repos/spack_repo/builtin/packages/charliecloud/package.py b/repos/spack_repo/builtin/packages/charliecloud/package.py index 65f02376462..6d69b50d2e8 100644 --- a/repos/spack_repo/builtin/packages/charliecloud/package.py +++ b/repos/spack_repo/builtin/packages/charliecloud/package.py @@ -10,105 +10,44 @@ class Charliecloud(AutotoolsPackage): """Lightweight user-defined software stacks for HPC.""" - maintainers("j-ogas", "reidpr") - homepage = "https://hpc.github.io/charliecloud" - url = "https://github.com/hpc/charliecloud/releases/download/v0.18/charliecloud-0.18.tar.gz" - git = "https://github.com/hpc/charliecloud.git" + maintainers("j-ogas", "reidpr", "loshak") + homepage = "https://charliecloud.io/" + url = "https://gitlab.com/charliecloud/charliecloud/-/package_files/290882913/download" + git = "https://gitlab.com/charliecloud/charliecloud.git" tags = ["e4s"] license("Apache-2.0") - version("master", branch="master") - version("0.38", sha256="1a3766d57ff4db9c65fd5c561bbaac52476c9a19fa10c1554190912a03429b7a") - version("0.37", sha256="1fd8e7cd1dd09a001aead5e105e3234792c1a1e9e30417f495ab3f422ade7397") - version("0.36", sha256="b6b1a085d8ff82abc6d625ab990af3925c84fa08ec837828b383f329bd0b8e72") - version("0.35", sha256="042f5be5ed8eda95f45230b4647510780142a50adb4e748be57e8dd8926b310e") - version( - "0.34", - deprecated=True, - sha256="034080c162949f4344ae1011cda026d4bb3ecd5cdb53135ac06d236f87e3b27d", - ) - version( - "0.33", - deprecated=True, - sha256="ed2bd3589d1e5f7b33a1542c887d69856f6d7d57a6ec8ef5b8e9335eda48a045", - ) - version( - "0.32", - deprecated=True, - sha256="47826b14966c400b250c35ff28a903f8e5b5e12d9e2a2b473e0f00f4e8393c47", - ) - version( - "0.31", - deprecated=True, - sha256="7305c3d9010386c1b96fb95297feccb5c9d7ff82a3377d1d98eb8faef76bced9", - ) - version( - "0.30", - deprecated=True, - sha256="97d45b25c9f813d8bae79b16de49503a165bc94c05dd2166975154d9b6ac78e9", - ) - version( - "0.29", - deprecated=True, - sha256="c89562e9dce4c10027434ad52eaca2140e2ba8667aa1ec9eadf789b4d7c1a6db", - ) - version( - "0.28", - deprecated=True, - sha256="1ce43b012f475bddb514bb75993efeda9e58ffa93ddbdbd9b86d647f57254c3b", - ) - version( - "0.27", - deprecated=True, - sha256="1142938ce73ec8a5dfe3a19a241b1f1ffbb63b582ac63d459aebec842c3f4b72", - ) + version("main", branch="main") version( - "0.26", - deprecated=True, - sha256="5e1e64e869c59905fac0cbbd6ceb82340ee54728415d28ef588fd5de5557038a", + "0.44", + sha256="2a01ecbb6cb2cfe0495338484fdba1ea63e44a48caff0d77ddd602f9e12177cf", + url="https://gitlab.com/charliecloud/charliecloud/-/package_files/290882913/download", + extension="tar.gz", ) version( - "0.25", - deprecated=True, - sha256="62d6fd211e3a573f54578e1b01d5c298f9788b7eaf2db46ac94c2dcef604cc94", - ) - version( - "0.24", - deprecated=True, - sha256="63379bcbad7b90b33457251696d6720416e4acefcf2b49cd6cb495a567e511c2", - ) - version( - "0.23", - deprecated=True, - sha256="5e458b943ad0e27d1264bb089e48d4a676219179b0e96a7d761387a36c45b4d9", - ) - version( - "0.22", - deprecated=True, - sha256="f65e4111ce87e449c656032da69f3b1cfc70a5a416a5e410329c1b0b2e953907", - ) - version( - "0.21", - deprecated=True, - sha256="024884074d283c4a0387d899161610fa4ae739ac1efcc9e53d7d626ddc20359f", - ) - version( - "0.19", - deprecated=True, - sha256="99619fd86860cda18f7f7a7cf7391f702ec9ebd3193791320dea647769996447", - ) - version( - "0.18", - deprecated=True, - sha256="15ce63353afe1fc6bcc10979496a54fcd5628f997cb13c827c9fc7afb795bdc5", + "0.43", + sha256="540c8d1ac5d6194116abd96f12fad5d3079f82e9fbceca2704e5ecadb3e04299", + url="https://gitlab.com/charliecloud/charliecloud/-/package_files/256549905/download", + extension="tar.gz", ) + version("0.42", sha256="be98c025f58336a7b6e6d79804ef89dd489c5dcc5ad8faccb551ea0065dcd13a") + version("0.41", sha256="065cc50f8b7893f8a0e28d9d06e2e3640d0d8139d10ad59fe941aea1e33dfdc6") + version("0.40", sha256="dcad81136d1fed905be6e573a7bf191ea655ae7827f7980bbe6559942f2affdd") + version("0.39", sha256="38503b507119a970ac288df7181aefe6cd1a125b9d509f5cb162dacea7143fd1") + version("0.38", sha256="1a3766d57ff4db9c65fd5c561bbaac52476c9a19fa10c1554190912a03429b7a") + version("0.37", sha256="1fd8e7cd1dd09a001aead5e105e3234792c1a1e9e30417f495ab3f422ade7397") + version("0.36", sha256="b6b1a085d8ff82abc6d625ab990af3925c84fa08ec837828b383f329bd0b8e72") + version("0.35", sha256="042f5be5ed8eda95f45230b4647510780142a50adb4e748be57e8dd8926b310e") variant("docs", default=False, description="Build man pages and html docs") - variant("squashfuse", default=True, description="Build with squashfuse support", when="@0.32:") + variant("squashfuse", default=True, description="Build with squashfuse support") + variant("cdi", default=True, description="Build with CDI support", when="@0.40:") depends_on("c", type="build") # generated + depends_on("bdw-gc", type=("build", "link")) + depends_on("bdw-gc@8:", type=("build", "link"), when="@0.40:") # Autoconf. depends_on("m4", type="build") @@ -122,8 +61,7 @@ class Charliecloud(AutotoolsPackage): # Image manipulation. depends_on("python@3.6:", type="run") depends_on("py-requests", type="run") - depends_on("git@2.28.1:", type="run", when="@0.29:") # build cache - depends_on("py-lark", type="run", when="@:0.24") # 0.25+ bundles lark + depends_on("git@2.28.1:", type="run") # build cache # Man page and html docs. depends_on("rsync", type="build", when="+docs") @@ -131,8 +69,7 @@ class Charliecloud(AutotoolsPackage): depends_on("py-sphinx-rtd-theme", type="build", when="+docs") # Bash automated testing harness (bats). - depends_on("bats@0.4.0", when="@:0.32") - depends_on("bats@1.10.0:", when="@0.33:") + depends_on("bats@1.10.0:") # Require pip and wheel for git checkout builds (master). depends_on("py-pip@21.1.2:", type="build", when="@master") @@ -150,17 +87,31 @@ class Charliecloud(AutotoolsPackage): # Charliecloud's automatic mount/un-mounting requirements. A more manual # approach with squashfuse could implemented in a different variant. with when("+squashfuse"): - depends_on("libfuse@3:", type=("build", "run", "link"), when="@0.32:") + depends_on("libfuse@3:", type=("build", "run", "link")) depends_on("pkgconfig", type="build", when="@0.37:") depends_on("squashfuse@0.1.105:0.2.0,0.4.0:", type="link", when="@0.36:") depends_on("squashfuse@0.1.105:0.2.0,0.4.0", type="link", when="@0.35") - depends_on("squashfuse@0.1.105", type="link", when="@0.32:0.34") + + with when("+cdi"): + # Require cjson for CDI support + depends_on("cjson", type="build", when="@0.40:") + + def url_for_version(self, version): + if version >= Version("0.39"): + url_fmt = "https://gitlab.com/charliecloud/main/-/archive/v{0}/main-v{0}.tar.gz" + else: + url_fmt = "https://github.com/hpc/charliecloud/releases/download/v{0}/charliecloud-{0}.tar.gz" + return url_fmt.format(version) + + @property + def force_autoreconf(self): + return self.spec.satisfies("@0.39:") def autoreconf(self, spec, prefix): - which("bash")("autogen.sh") + which("bash", required=True)("autogen.sh") def configure_args(self): - args = [f"--with-python={self.spec['python'].command.path}"] + args = ["--with-python=/usr/bin/env python3"] if self.spec.satisfies("+docs"): sphinx_bin = f"{self.spec['py-sphinx'].prefix.bin}" @@ -170,9 +121,23 @@ def configure_args(self): args.append("--disable-html") if self.spec.satisfies("+squashfuse"): - args.append(f"--with-libsquashfuse={self.spec['squashfuse'].prefix}") + if self.spec.satisfies("@:0.39"): + args.append(f"--with-libsquashfuse={self.spec['squashfuse'].prefix}") + else: + # Version 0.40+ uses a new syntax for squashfuse + args.append(f"--with-squashfuse-include={self.spec['squashfuse'].prefix}/include") + args.append(f"--with-squashfuse-lib={self.spec['squashfuse'].prefix}/lib") else: - args.append("--with-libsquashfuse=no") + if self.spec.satisfies("@:0.39"): + args.append("--with-libsquashfuse=no") + else: + args.append("--with-squashfuse=no") + + if "+cdi" in self.spec and self.spec.satisfies("@0.40:"): + cjson_spec = self.spec["cjson"] + args.append("--with-json=yes") + args.append(f"--with-json-include={cjson_spec.prefix.include}") + args.append(f"--with-json-lib={cjson_spec.libs.directories[0]}") return args diff --git a/repos/spack_repo/builtin/packages/charmpp/package.py b/repos/spack_repo/builtin/packages/charmpp/package.py index de77401a068..599e888010b 100644 --- a/repos/spack_repo/builtin/packages/charmpp/package.py +++ b/repos/spack_repo/builtin/packages/charmpp/package.py @@ -95,7 +95,7 @@ class Charmpp(Package): variant( "pmi", default="none", - values=("none", "simplepmi", "slurmpmi", "slurmpmi2", "pmix", "cray-pmi"), + values=("none", "simplepmi", "slurmpmi2", "pmix", "cray-pmi"), description="The ucx/ofi/gni backends need PMI to run!", ) @@ -139,7 +139,6 @@ class Charmpp(Package): depends_on("ucx", when="backend=ucx") depends_on("libfabric", when="backend=ofi") - depends_on("slurm@:17-11-9-2", when="pmi=slurmpmi") depends_on("slurm@17-11-9-2:", when="pmi=slurmpmi2") # FIXME : As of now spack's OpenMPI recipe does not have a PMIx variant @@ -148,7 +147,6 @@ class Charmpp(Package): depends_on("openmpi", when="pmi=pmix") depends_on("mpi", when="pmi=simplepmi") - depends_on("mpi", when="pmi=slurmpmi") depends_on("mpi", when="pmi=slurmpmi2") depends_on("cray-mpich", when="pmi=cray-pmi") @@ -308,11 +306,7 @@ def install(self, spec, prefix): "Note that PMIx is the preferred option." ) - if ( - ("pmi=simplepmi" in self.spec) - or ("pmi=slurmpmi" in self.spec) - or ("pmi=slurmpmi2" in self.spec) - ): + if ("pmi=simplepmi" in self.spec) or ("pmi=slurmpmi2" in self.spec): if self.spec.satisfies("^openmpi"): raise InstallError( "To use any process management interface other than PMIx, " @@ -333,8 +327,6 @@ def install(self, spec, prefix): options.append("-j%d" % make_jobs) options.append("--destination=%s" % builddir) - if spec.satisfies("pmi=slurmpmi"): - options.append("slurmpmi") if spec.satisfies("pmi=slurmpmi2"): options.append("slurmpmi2") if spec.satisfies("pmi=pmix"): @@ -366,7 +358,7 @@ def install(self, spec, prefix): # This is a Charm++ limitation; it would lead to a # build error raise InstallError( - "The +tcp variant requires " "the backend=netlrts communication mechanism" + "The +tcp variant requires the backend=netlrts communication mechanism" ) options.append("tcp") if spec.satisfies("+omp"): diff --git a/repos/spack_repo/builtin/packages/chez_scheme/package.py b/repos/spack_repo/builtin/packages/chez_scheme/package.py index 7ccddb022ac..c9edacf69c1 100644 --- a/repos/spack_repo/builtin/packages/chez_scheme/package.py +++ b/repos/spack_repo/builtin/packages/chez_scheme/package.py @@ -16,7 +16,6 @@ class ChezScheme(AutotoolsPackage): git = "https://github.com/cisco/ChezScheme.git" license("Apache-2.0", checked_by="Buldram") - maintainers("Buldram") version("main", branch="main", submodules=True) version("10.1.0", sha256="9181a6c8c4ab5e5d32d879ff159d335a50d4f8b388611ae22a263e932c35398b") diff --git a/repos/spack_repo/builtin/packages/cimfomfa/package.py b/repos/spack_repo/builtin/packages/cimfomfa/package.py new file mode 100644 index 00000000000..ec116378bbb --- /dev/null +++ b/repos/spack_repo/builtin/packages/cimfomfa/package.py @@ -0,0 +1,35 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import shutil + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Cimfomfa(AutotoolsPackage): + """This library supports both MCL, a cluster algorithm for graphs, and zoem, a macro/DSL + language. It supplies abstractions for memory management, I/O, associative arrays, strings, + heaps, and a few other things. + """ + + homepage = "https://github.com/micans/cimfomfa" + url = "https://github.com/micans/cimfomfa/archive/refs/tags/21-361.tar.gz" + + license("GPL-2.0-or-later", checked_by="emwjacobson") + + version("21-361", sha256="e554f7838a16dfee79999b28133abf58dce01ac9a18f99c38c4183805b5b19d4") + + depends_on("c", type="build") + + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + depends_on("m4", type="build") + + def autoreconf(self, spec, prefix): + # The configure file isn't named properly + shutil.move("configure.ac.in", "configure.ac") + autoreconf("--install", "--verbose", "--force") diff --git a/repos/spack_repo/builtin/packages/civetweb/package.py b/repos/spack_repo/builtin/packages/civetweb/package.py new file mode 100644 index 00000000000..a023d3d49b4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/civetweb/package.py @@ -0,0 +1,56 @@ +# 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 Civetweb(CMakePackage): + """CivetWeb is an easy to use, powerful, C (C/C++) embeddable + web server with optional CGI, SSL and Lua support.""" + + homepage = "https://github.com/civetweb/civetweb" + url = "https://github.com/civetweb/civetweb/archive/refs/tags/v1.16.tar.gz" + git = "https://github.com/civetweb/civetweb.git" + maintainers("wdconinc") + + license("MIT", checked_by="wdconinc") + + version("1.16-213-g5864b55a", commit="5864b55a94f4b5238155cbf2baec707f0fa2ba6d") + version("1.16", sha256="f0e471c1bf4e7804a6cfb41ea9d13e7d623b2bcc7bc1e2a4dd54951a24d60285") + + variant("shared", default=False, description="Build shared libraries instead of static ones") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("lua") + depends_on("openssl") + depends_on("zlib-api") + + def cmake_args(self): + args = [ + self.define("CIVETWEB_BUILD_TESTING", self.run_tests), + self.define("CIVETWEB_ENABLE_SERVER_EXECUTABLE", True), + self.define("CIVETWEB_ENABLE_CXX", True), + self.define("CIVETWEB_ENABLE_HTTP2", True), + self.define("CIVETWEB_ENABLE_IPV6", True), + self.define("CIVETWEB_ENABLE_WEBSOCKETS", True), + self.define("CIVETWEB_ENABLE_X_DOM_SOCKET", True), + self.define("CIVETWEB_ENABLE_LUA", False), + self.define("CIVETWEB_ENABLE_ZLIB", True), + self.define("CIVETWEB_ENABLE_SSL", True), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + ] + args.append( + self.define("CIVETWEB_SSL_OPENSSL_API_1_0", self.spec.satisfies("^openssl@1.0")) + ) + args.append( + self.define("CIVETWEB_SSL_OPENSSL_API_1_1", self.spec.satisfies("^openssl@1.1")) + ) + args.append( + self.define("CIVETWEB_SSL_OPENSSL_API_3_0", self.spec.satisfies("^openssl@3:")) + ) + return args diff --git a/repos/spack_repo/builtin/packages/clapack/package.py b/repos/spack_repo/builtin/packages/clapack/package.py index 8c39ae7a761..8d45d861b86 100644 --- a/repos/spack_repo/builtin/packages/clapack/package.py +++ b/repos/spack_repo/builtin/packages/clapack/package.py @@ -8,7 +8,7 @@ class Clapack(MakefilePackage): - """CLAPACK is a f2c'ed version of LAPACK. + """CLAPACK is a f2c'ed version of LAPACK 3.2.1. The CLAPACK library was built using a Fortran to C conversion utility called f2c. The entire Fortran 77 LAPACK library is run through f2c to @@ -23,24 +23,12 @@ class Clapack(MakefilePackage): version("3.2.1", sha256="6dc4c382164beec8aaed8fd2acc36ad24232c406eda6db462bd4c41d5e455fac") - variant("external-blas", default=True, description="Build with external BLAS (ATLAS here).") - depends_on("c", type="build") # generated - depends_on("atlas", when="+external-blas") + build_targets = ["f2clib", "blaslib", "lib"] def edit(self, spec, prefix): copy("make.inc.example", "make.inc") - if spec.satisfies("+external-blas"): - make_inc = FileFilter("make.inc") - make_inc.filter(r"^BLASLIB.*", "BLASLIB = ../../libcblaswr.a -lcblas -latlas") - makefile = FileFilter("Makefile") - makefile.filter(r"^lib.*", "lib: variants lapacklib tmglib") - - def build(self, spec, prefix): - make("f2clib") - make("cblaswrap" if "+external-blas" in spec else "blaslib") - make("lib") def install(self, spec, prefix): install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/claude_code/package.py b/repos/spack_repo/builtin/packages/claude_code/package.py new file mode 100644 index 00000000000..0e9f0b4869f --- /dev/null +++ b/repos/spack_repo/builtin/packages/claude_code/package.py @@ -0,0 +1,33 @@ +# 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 ClaudeCode(Package): + """Claude Code is an agentic coding tool that lives in your terminal, + understands your codebase, and helps you code faster by executing routine + tasks, explaining complex code, and handling git workflows -- all through + natural language commands.""" + + homepage = "https://github.com/anthropics/claude-code" + url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.0.36.tgz" + git = "https://github.com/anthropics/claude-code.git" + + maintainers("wdconinc") + license("Anthropic-Claude") + + version("2.1.50", sha256="4d7ab6b04c666ebf2c966a9d22e5b8f57706c0d5a5941523b9b02af9f84e45d5") + version("2.0.36", sha256="42095aacc8e39d8b7d5c0162fb44d873a1cc39430681269bac492c004cfd0e13") + + depends_on("node-js@18:", type=("build", "run")) + depends_on("npm", type="build") + + def install(self, spec, prefix): + npm = which("npm", required=True) + # Set AUTHORIZED to true per package.json:scripts:prepare + with set_env(AUTHORIZED="true"): + npm("install", "--global", f"--prefix={prefix}") diff --git a/repos/spack_repo/builtin/packages/clhep/darwin/CLHEP.patch b/repos/spack_repo/builtin/packages/clhep/darwin/CLHEP.patch deleted file mode 100644 index ca1d96574ab..00000000000 --- a/repos/spack_repo/builtin/packages/clhep/darwin/CLHEP.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- CLHEP/CMakeLists.txt 2016-06-20 14:41:12.000000000 -0500 -+++ CLHEP/CMakeLists.txt 2016-06-20 14:40:57.000000000 -0500 -@@ -37,7 +37,7 @@ - # If Policy CMP0042 exists, use OLD to prefer the use of install names - # instead of the new @rpath default. - if(POLICY CMP0042) -- cmake_policy(SET CMP0042 NEW) -+ cmake_policy(SET CMP0042 OLD) - endif() - - set(CMAKE_MODULE_PATH diff --git a/repos/spack_repo/builtin/packages/clhep/package.py b/repos/spack_repo/builtin/packages/clhep/package.py index 16289f3e7e6..c3860bf55a1 100644 --- a/repos/spack_repo/builtin/packages/clhep/package.py +++ b/repos/spack_repo/builtin/packages/clhep/package.py @@ -11,48 +11,47 @@ class Clhep(CMakePackage): """CLHEP is a C++ Class Library for High Energy Physics.""" - homepage = "https://proj-clhep.web.cern.ch/proj-clhep/" - url = "https://proj-clhep.web.cern.ch/proj-clhep/dist1/clhep-2.4.1.3.tgz" - list_url = "https://proj-clhep.web.cern.ch/proj-clhep/" - list_depth = 1 + homepage = "https://gitlab.cern.ch/CLHEP/CLHEP" + git = "https://gitlab.cern.ch/CLHEP/CLHEP.git" tags = ["hep"] maintainers("drbenmorgan") - version("2.4.7.1", sha256="1c8304a7772ac6b99195f1300378c6e3ddf4ad07c85d64a04505652abb8a55f9") - version("2.4.7.0", sha256="7fa460030bc1a804ea7da8cce7611b93261493bbb66c3cfd3ceec935d7e1b8d3") - version("2.4.6.4", sha256="49c89330f1903ef707d3c5d79c16a7c5a6f2c90fc290e2034ee3834809489e57") - version("2.4.6.3", sha256="fcd007f11b10ba4af28d027222b63148d0eb44ff7a082eee353bdf921f9c684a") - version("2.4.6.2", sha256="aded73e49bac85a5b4e86f64a0ee3d6f3cfe5551b0f7731c78b6d8f9dac6e8dc") - version("2.4.6.0", sha256="e8d16debb84ced28e40e9ae84789cf5a0adad45f9213fbac3ce7583e06caa7b1") - version("2.4.5.4", sha256="983fb4ea1fe423217fe9debc709569495a62a3b4540eb790d557c5a34dffbbb6") - version("2.4.5.3", sha256="45f63eeb097f02fe67b86a7dadbf10d409b401c28a1a3e172db36252c3097c13") - version("2.4.5.1", sha256="2517c9b344ad9f55974786ae6e7a0ef8b22f4abcbf506df91194ea2299ce3813") - version("2.4.4.0", sha256="5df78c11733a091da9ae5a24ce31161d44034dd45f20455587db85f1ca1ba539") - version("2.4.1.3", sha256="27c257934929f4cb1643aa60aeaad6519025d8f0a1c199bc3137ad7368245913") - version("2.4.1.2", sha256="ff96e7282254164380460bc8cf2dff2b58944084eadcd872b5661eb5a33fa4b8") - version("2.4.1.0", sha256="d14736eb5c3d21f86ce831dc1afcf03d423825b35c84deb6f8fd16773528c54d") - version("2.4.0.4", sha256="eb013841c57990befa1e977a11a552ab8328733c1c3b6cecfde86da40dc22113") - version("2.4.0.2", sha256="1e9891c5badb718c24933e7a5c6ee4d64fd4d5cf3a40c150ad18e864ec86b8a4") - version("2.4.0.1", sha256="4c7e2c6ac63e0237100e4ddcbfdc3d7e7dc6592f95bdbdcc0e43a6892b9fd6e0") - version("2.4.0.0", sha256="5e5cf284323898b4c807db6e684d65d379ade65fe0e93f7b10456890a6dee8cc") - version("2.3.4.6", sha256="3e53947036f8570c7a08bed670a862426dbca17328afcecd6c875d8487fef204") - version("2.3.4.5", sha256="1199d04626cb8bc1307e282b143018691077cc61fe2f286a382030262eda8764") - version("2.3.4.4", sha256="e54de15ffa5108a1913c4910845436345c89ddb83480cd03277a795fafabfb9d") - version("2.3.4.3", sha256="1019479265f956bd660c11cb439e1443d4fd1655e8d51accf8b1e703e4262dff") - version("2.3.4.2", sha256="6d1e15ccbe1ca6e71d541e78ca7e8c9f3d986ee0da5177a4b8cda00c619dc691") - version("2.3.3.2", sha256="4e69a5afb1b7ecc435395195140afc85bbbb9f4d3572f59451c3882f3015a7c1") - version("2.3.3.1", sha256="cd74bfae4773620dd0c7cc9c1696a08386931d7e47a3906aa632cc5cb44ed6bd") - version("2.3.3.0", sha256="0bcae1bed8d3aa4256e3a553a4f60484312f2121dcc83492a40f08a70881c8c0") - version("2.3.2.2", sha256="885481ae32c2f31c3b7f14a5e5d68bc56dc3df0c597be464d7ffa265b8a5a1af") - version("2.3.1.1", sha256="0e2b170df99176feb0aa4f20ea3b33463193c086682749790c5b9b79388d0ff4") - version("2.3.1.0", sha256="66272ae3100d3aec096b1298e1e24ec25b80e4dac28332b45ec3284023592963") - version("2.3.0.0", sha256="63e77f4f34baa5eaa0adb1ca2438734f2d6f5ca112d830650dd005a6109f2397") - version("2.2.0.8", sha256="f735e236b1f023ba7399269733b2e84eaed4de615081555b1ab3af25a1e92112") - version("2.2.0.5", sha256="92e8b5d32ae96154edd27d0c641ba048ad33cb69dd4f1cfb72fc578770a34818") - version("2.2.0.4", sha256="9bf7fcd9892313c8d1436bc4a4a285a016c4f8e81e1fc65bdf6783207ae57550") - version("2.1.2.3", sha256="4353231be09c134507092161cd3ced27a065ca0ebb31ee0256e60a8163c47c3b") + version("2.4.7.2", sha256="c40c239fa2c5810b60f4e9ddd6a8cc2ce81b962aa170994748cd2a2b5ac87f84") + version("2.4.7.1", sha256="6c39dfecfb8369c4ba9d353471fa7cc818116f9c4dfef35bb5a086a9b2ccd40b") + version("2.4.7.0", sha256="6705da2fa08db9b8ad16cff6687932f3135d402c28ee48f23ee7e7297f9fab91") + version("2.4.6.4", sha256="df94daccadc422dda70162c71103c963581f258c7d160f4e20fce26fc1949f4a") + version("2.4.6.3", sha256="6c24d015e8dfaf81112c79ce7ebcf1ce1273e014c980917a9225b9664d27ff28") + version("2.4.6.2", sha256="97bf944d672e10fdd1824a2b27cf99f26f4868593e31b14af510fd36230955a3") + version("2.4.6.0", sha256="f2dffc46d4221276b396fbb1ab5b2dff1e62215a231426b5396c5ba5daca0cb3") + version("2.4.5.4", sha256="d00cb79f3902a12ec573219e6590725afc0e77176e4e5096c4de4c51a20ba47d") + version("2.4.5.3", sha256="3d5df7e4dce698ff401c2744c5dcdf24796d25894443339e2426ae7eb62b8feb") + version("2.4.5.1", sha256="8729e1c0fe545f2c1b631b3a0bfaa6edb3880c4d401ec638db98a8f63b136bc4") + version("2.4.4.0", sha256="b9d9364fe0f3fbc03e0f0cf53b81e8190dae38f81cc854b6b712e1b85d472752") + version("2.4.1.3", sha256="aa2725db049c455d8e3c78678889c013deef83bcba0146bdf04e859c38054d52") + version("2.4.1.2", sha256="bb6e36dc1ab055d0b47bb24377b570b100b37ace402cbc0d858e49be0a1b72c6") + version("2.4.1.0", sha256="21b6823c8f859f2e042c71032cc23ddcca22a98186a374f0bde4ed54683a649b") + version("2.4.0.4", sha256="058cf042fedc5ac21c59a4acb2b5af2c56bf4a310456ada4ecf590dd8ac7b444") + version("2.4.0.2", sha256="d459681835ecfa272dfe48d42667f25fb2cb480981c0df381b4c051f26504b80") + version("2.4.0.1", sha256="1370a036ca8530df97d0c20722f26ace7c34b34070a5d3bf892feeb9d4f83756") + version("2.4.0.0", sha256="e205c51b7b8e5109d30a55d72570c65440ebf670d43063b729264a4dc69c9645") + version("2.3.4.6", sha256="ef12c4e0e0452d07f4a5e6370c747589b8bc1ed5001507ccd17685aab4728752") + version("2.3.4.5", sha256="4ed1b18a0c146a915cbc44b8f6b2b8289c99bf9e9a538bf4db9f7b3bbe3d762e") + version("2.3.4.4", sha256="f7228b83396ee34e6ab12538c470a3f6bd4d657158dd362bee443a29f1d4abe6") + version("2.3.4.3", sha256="91eaaaad6c60f58a9bb71ea525259f81829d0f47384a61ca07f8d3920ebb3540") + version("2.3.4.2", sha256="deaa9396b23779f185eead508fa156637d4c85abfdb3dfb8a673436fa05ad562") + version("2.3.3.2", sha256="3dd41587ac99b27c6aa4ca3dd6204ba96b774627f3f28079cf0f01663340a811") + version("2.3.3.1", sha256="fc837873e4172497f97b8d3e77c7508d6c554320465da73cf6b0bea8a2aae993") + version("2.3.3.0", sha256="aacf0fdbdd6f38f485533e1b92d383a1eb6252dab8e5644694580cc7121ffe06") + version("2.3.2.2", sha256="9a9b6ac3e6c6c9dcd29e528a3ac3371a67223c75fb8898770d36d0ae4a222ace") + version("2.3.1.1", sha256="6300568a5fbdf0bd3c051349bee11aca8d95993921ecf01147ce298db58a30b4") + version("2.3.1.0", sha256="68863cfa89d15c7ca026524b67f5ab663c9a737ed3b9927dfbc732379a1937d0") + version("2.3.0.0", sha256="b3d1d81bacc0997ca9bcf730e0d6046b3759d9573ade0d89d24afeca15a51836") + version("2.2.0.8", sha256="ad3fcd9a5c650b8eb7b5a78ae2016d64066ca451adda774afef46da497a116ea") + version("2.2.0.5", sha256="97d6e08c1e6b6cfc89cc6b98c2b49f35cdfe338e71cd6a85f0ae2aa1d5995b7e") + version("2.2.0.4", sha256="2d98542c26e077eb54909c625b448c9adb2726e27b23f5e027f43da5e9789ecd") + version("2.1.2.3", sha256="a3fb65bb4ded5271db889e07a42cd988ae928216f0758a27a52772d243efa07f") variant( "cxxstd", @@ -62,6 +61,8 @@ class Clhep(CMakePackage): "14", conditional("17", when="@2.3.4.3:"), conditional("20", when="@2.4.6.4:"), + # Assuming versions not supporting C++20 do not support C++23 + conditional("23", when="@2.4.6.4:"), ), multi=False, description="Use the specified C++ standard when building.", @@ -75,8 +76,6 @@ class Clhep(CMakePackage): variant("cms", default=False, description="Apply CMS-specific changes") - root_cmakelists_dir = "CLHEP" # Extra directory layer. - patch("clhep-cms.patch", when="+cms", level=0) def patch(self): @@ -96,3 +95,7 @@ def cmake_args(self): "-DCLHEP_BUILD_CXXSTD=-std=c++{0}".format(self.spec.variants["cxxstd"].value) ] return cmake_args + + def url_for_version(self, version): + url = "https://gitlab.cern.ch/CLHEP/CLHEP/-/archive/CLHEP_{0}/CLHEP-CLHEP_{0}.tar.gz" + return url.format(version.underscored) diff --git a/repos/spack_repo/builtin/packages/cli11/package.py b/repos/spack_repo/builtin/packages/cli11/package.py index f76fca7d0b2..1d436b1c9ac 100644 --- a/repos/spack_repo/builtin/packages/cli11/package.py +++ b/repos/spack_repo/builtin/packages/cli11/package.py @@ -13,10 +13,11 @@ class Cli11(CMakePackage): homepage = "https://cliutils.github.io/CLI11/book/" url = "https://github.com/CLIUtils/CLI11/archive/v1.9.1.tar.gz" - maintainers("nightlark") + maintainers("nightlark", "sethrj") license("BSD-3-Clause") + version("2.6.1", sha256="377691f3fac2b340f12a2f79f523c780564578ba3d6eaf5238e9f35895d5ba95") version("2.5.0", sha256="17e02b4cddc2fa348e5dbdbb582c59a3486fa2b2433e70a0c3bacb871334fd55") version("2.4.2", sha256="f2d893a65c3b1324c50d4e682c0cdc021dd0477ae2c048544f39eed6654b699a") version("2.4.1", sha256="73b7ec52261ce8fe980a29df6b4ceb66243bb0b779451dbd3d014cfec9fdbb58") @@ -30,18 +31,31 @@ class Cli11(CMakePackage): variant("pic", default=True, description="Produce position-independent code") - depends_on("cxx", type="build") # generated + # When it is precompiled, CLI11_COMPILE gets defined + # https://github.com/CLIUtils/CLI11/blob/bb9bd85e3b8129571b084911affc6f0e9ae6be25/src/CMakeLists.txt#L6 + # which causes cli11 to look for which + # is not installed when the static lib is created. The itention seems to be to use + # precompiled via add_subdirectory(CLI11). + variant("precompiled", default=False, description="Library is compiled into a static library") - depends_on("cmake@3.4:", type="build") - depends_on("cmake@3.5:", type="build", when="@2.4:") - depends_on("cmake@3.10:", type="build", when="@2.5:") + depends_on("cxx", type="build") + + depends_on("cmake@3.4:", type="build", when="@:2.3") + depends_on("cmake@3.5:", type="build", when="@2.4") + depends_on("cmake@3.10:", type="build", when="@2.5") + depends_on("cmake@3.14:", type="build", when="@2.6:") def cmake_args(self): args = [ self.define("CLI11_BUILD_EXAMPLES", False), self.define("CLI11_BUILD_DOCS", False), self.define("CLI11_BUILD_TESTS", False), - self.define("CLI11_PRECOMPILED", True), + self.define_from_variant("CLI11_PRECOMPILED", "precompiled"), self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), ] return args + + @when("@2.3:") + def install(self, spec, prefix): + super().install(spec, prefix) + install_tree("include/CLI/impl", join_path(prefix.include, "CLI/impl")) diff --git a/repos/spack_repo/builtin/packages/clingo/package.py b/repos/spack_repo/builtin/packages/clingo/package.py index 9f82f001175..548ea467847 100644 --- a/repos/spack_repo/builtin/packages/clingo/package.py +++ b/repos/spack_repo/builtin/packages/clingo/package.py @@ -10,12 +10,10 @@ class Clingo(CMakePackage): """Clingo: A grounder and solver for logic programs - Clingo is part of the Potassco project for Answer Set - Programming (ASP). ASP offers a simple and powerful modeling - language to describe combinatorial problems as logic - programs. The clingo system then takes such a logic program and - computes answer sets representing solutions to the given - problem.""" + Clingo is part of the Potassco project for Answer Set Programming (ASP). ASP offers a simple + and powerful modeling language to describe combinatorial problems as logic programs. The + clingo system then takes such a logic program and computes answer sets representing solutions + to the given problem.""" homepage = "https://potassco.org/clingo/" url = "https://github.com/potassco/clingo/archive/v5.2.2.tar.gz" @@ -25,6 +23,9 @@ class Clingo(CMakePackage): license("MIT") + # Development version for clingo 6 + version("develop", branch="wip-20", submodules=True) + version("master", branch="master", submodules=True) version("spack", commit="2a025667090d71b2c9dce60fe924feb6bde8f667", submodules=True) @@ -34,19 +35,14 @@ class Clingo(CMakePackage): sha256="544b76779676075bb4f557f05a015cbdbfbd0df4b2cc925ad976e86870154d81", preferred=True, ) - version("5.7.0", sha256="ed5401bda54315184697fd69ff0f15389c62779e812058a5f296ba587ed9c10b") version("5.6.2", sha256="81eb7b14977ac57c97c905bd570f30be2859eabc7fe534da3cdc65eaca44f5be") version("5.5.2", sha256="a2a0a590485e26dce18860ac002576232d70accc5bfcb11c0c22e66beb23baa6") - version("5.5.1", sha256="b9cf2ba2001f8241b8b1d369b6f353e628582e2a00f13566e51c03c4dd61f67e") - version("5.5.0", sha256="c9d7004a0caec61b636ad1c1960fbf339ef8fdee9719321fc1b6b210613a8499") version("5.4.1", sha256="ac6606388abfe2482167ce8fd4eb0737ef6abeeb35a9d3ac3016c6f715bfee02") - version("5.4.0", sha256="e2de331ee0a6d254193aab5995338a621372517adcf91568092be8ac511c18f3") - version("5.3.0", sha256="b0d406d2809352caef7fccf69e8864d55e81ee84f4888b0744894977f703f976") - version("5.2.2", sha256="da1ef8142e75c5a6f23c9403b90d4f40b9f862969ba71e2aaee9a257d058bfcf") depends_on("c", type="build") depends_on("cxx", type="build") + variant("apps", default=True, description="build command line applications") variant("docs", default=False, description="build documentation with Doxygen") variant("python", default=True, description="build with python bindings") @@ -54,12 +50,23 @@ class Clingo(CMakePackage): depends_on("cmake@3.1:", type="build") depends_on("cmake@3.18:", type="build", when="@5.5:") - # 5.7.1 and lower incompatible with cmake 4.0 due to cmake_minimum_required version 3.1 - depends_on("cmake@:3", type="build", when="@:5.7") - depends_on("doxygen", type="build", when="+docs") - with when("@spack,master"): + depends_on("re2c@0.13:", type="build") + + with when("@5.6:5.8,master"): + depends_on("re2c@1.1.1:", type="build") + # forward compat issue: reference to undefined condition 'aspif' + depends_on("re2c@:3", type="build") + depends_on("bison@2.5:", type="build", when="platform=linux") + depends_on("bison@2.5:", type="build", when="platform=darwin") + depends_on("bison@2.5:", type="build", when="platform=freebsd") + + with when("@6:"): + depends_on("re2c@3:", type="build") + depends_on("cmake@3.22.1:", type="build") + + with when("@spack"): depends_on("re2c@0.13:", type="build") depends_on("bison@2.5:", type="build", when="platform=linux") depends_on("bison@2.5:", type="build", when="platform=darwin") @@ -71,12 +78,12 @@ class Clingo(CMakePackage): with when("+python"): extends("python") - depends_on("python", type=("build", "link", "run")) - # Clingo 5.5.0 supports Python 3.6 or later and needs CFFI - depends_on("python@3.6.0:", type=("build", "link", "run"), when="@5.5.0:") - depends_on("py-cffi", type=("build", "run"), when="@5.5.0: platform=linux") - depends_on("py-cffi", type=("build", "run"), when="@5.5.0: platform=darwin") - depends_on("py-cffi", type=("build", "run"), when="@5.5.0: platform=freebsd") + depends_on("python@3.6:", type=("build", "link", "run")) + + with when("@5.5: +python"): + depends_on("py-cffi@1.14:", type=("build", "run"), when="platform=linux") + depends_on("py-cffi@1.14:", type=("build", "run"), when="platform=darwin") + depends_on("py-cffi@1.14:", type=("build", "run"), when="platform=freebsd") patch("python38.patch", when="@5.3:5.4.0") patch("size-t.patch", when="%msvc") @@ -86,7 +93,7 @@ class Clingo(CMakePackage): def patch(self): # In bootstrap/prototypes/*.json we don't want to have specs that work for any python # version, so this conditional patch lives here instead of being its own directive. - if self.spec.satisfies("@spack,5.3:5.4 ^python@3.9:"): + if self.spec.satisfies("@spack,5.3:5.4 %python@3.9:"): filter_file( "if (!PyEval_ThreadsInitialized()) { PyEval_InitThreads(); }", "", @@ -95,7 +102,7 @@ def patch(self): ) # Doxygen is optional but can't be disabled with a -D, so patch # it out if it's really supposed to be disabled - if self.spec.satisfies("~docs"): + if self.spec.satisfies("@:5.8 ~docs"): filter_file( r"find_package\(Doxygen\)", 'message("Doxygen disabled for Spack build.")', @@ -103,32 +110,50 @@ def patch(self): "clasp/libpotassco/CMakeLists.txt", ) - @property - def cmake_py_shared(self): - return self.define("CLINGO_BUILD_PY_SHARED", "ON") + cmake_py_shared = True def cmake_args(self): - args = [self.define("CLINGO_BUILD_WITH_LUA", False)] - if self.spec.satisfies("+python"): - suffix = python( - "-c", "import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX'))", output=str - ).strip() + args = [ + self.define("CLASP_INSTALL_LIB", True), + self.define("CLASP_BUILD_WITH_THREADS", True), + self.define("CLINGO_BUILD_TESTS", False), + self.define("CLINGO_BUILD_EXAMPLES", False), + ] + + if self.spec.satisfies("@:5"): + # Use LTO also for non-Intel compilers please. This can be removed when they + # bump cmake_minimum_required to VERSION 3.9. + if self.spec.satisfies("+ipo"): + args.append(self.define("CMAKE_POLICY_DEFAULT_CMP0069", "NEW")) + args += [ - self.define("CLINGO_REQUIRE_PYTHON", True), - self.define("CLINGO_BUILD_WITH_PYTHON", True), - self.define("PYCLINGO_USER_INSTALL", False), - self.define("PYCLINGO_USE_INSTALL_PREFIX", True), - self.define("PYCLINGO_INSTALL_DIR", python_platlib), - self.define("PYCLINGO_SUFFIX", suffix), - self.cmake_py_shared, + self.define_from_variant("CLINGO_BUILD_APPS", "apps"), + self.define("CLINGO_BUILD_WITH_LUA", False), ] - else: - args += [self.define("CLINGO_BUILD_WITH_PYTHON", False)] - # Use LTO also for non-Intel compilers please. This can be removed when they - # bump cmake_minimum_required to VERSION 3.9. - if self.spec.satisfies("+ipo"): - args.append(self.define("CMAKE_POLICY_DEFAULT_CMP0069", "NEW")) + if self.spec.satisfies("+python"): + suffix = python( + "-c", + "import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX'))", + output=str, + ).strip() + args += [ + self.define("CLINGO_REQUIRE_PYTHON", True), + self.define("CLINGO_BUILD_WITH_PYTHON", True), + self.define("PYCLINGO_USER_INSTALL", False), + self.define("PYCLINGO_USE_INSTALL_PREFIX", True), + self.define("PYCLINGO_INSTALL_DIR", python_platlib), + self.define("PYCLINGO_SUFFIX", suffix), + self.define("CLINGO_BUILD_PY_SHARED", self.cmake_py_shared), + ] + else: + args.append(self.define("CLINGO_BUILD_WITH_PYTHON", False)) + + elif self.spec.satisfies("@6:"): + args += [ + self.define_from_variant("CLINGO_BUILD_APP", "apps"), + self.define_from_variant("CLINGO_BUILD_PYTHON", "python"), + ] return args diff --git a/repos/spack_repo/builtin/packages/clingo_bootstrap/package.py b/repos/spack_repo/builtin/packages/clingo_bootstrap/package.py index 0920994fd68..1f1ae2ffa62 100644 --- a/repos/spack_repo/builtin/packages/clingo_bootstrap/package.py +++ b/repos/spack_repo/builtin/packages/clingo_bootstrap/package.py @@ -15,6 +15,7 @@ class ClingoBootstrap(Clingo): maintainers("alalazo") variant("build_type", default="Release", values=("Release",), description="CMake build type") + variant("apps", default=False, description="build command line applications") variant( "static_libstdcpp", @@ -44,10 +45,25 @@ class ClingoBootstrap(Clingo): patch("version-script.patch", when="@spack,5.5:5.6") patch("version-script-5.4.patch", when="@5.2:5.4") + # flat multimap for performance: https://github.com/potassco/clasp/pull/118 + patch( + "https://github.com/haampie/clasp/commit/0f43ac61e8576404c6a33f25954883d3e51ef0df.patch?full_index=1", + sha256="0a266a4d475c225af30607ccd2b541cfca0e4b31368219f6de71039c8df156b3", + working_dir="clasp", + when="@:5.7 +optimized", + ) + patch( + "https://github.com/haampie/clasp/commit/208972863506ecbd85ed0bd78fac580b5e9c9c90.patch?full_index=1", + sha256="c569fb439a99b709b6e6ac05253b344e4f3055d52223265baa55946db6d44e8b", + working_dir="clasp", + when="@5.8: +optimized", + ) + # CMake at version 3.16.0 or higher has the possibility to force the # Python interpreter, which is crucial to build against external Python # in environment where more than one interpreter is in the same prefix depends_on("cmake@3.16.0:", type="build") + depends_on("clingo-bootstrap-pgo", type="build", when="+optimized") # On Linux we bootstrap with GCC or clang requires( @@ -68,12 +84,7 @@ class ClingoBootstrap(Clingo): # Clingo needs the Python module to be usable by Spack conflicts("~python", msg="Python support is required to bootstrap Spack") - @property - def cmake_py_shared(self): - return self.define("CLINGO_BUILD_PY_SHARED", "OFF") - - def cmake_args(self): - return [*super().cmake_args(), self.define("CLINGO_BUILD_APPS", False)] + cmake_py_shared = False @run_before("cmake", when="+optimized") def pgo_train(self): @@ -84,12 +95,15 @@ def pgo_train(self): Executable("xcrun")("-find", "llvm-profdata", output=str).strip() ) + # Find the PGO script before starting the build + script = which_string("clingo-pgo.py", required=True) + # First configure with PGO flags, and do build apps. reports = os.path.abspath("reports") sources = os.path.abspath(self.root_cmakelists_dir) cmake_options = self.std_cmake_args + self.cmake_args() + [sources] - # Set PGO training flags. + # Set PGO flags. generate_mods = EnvironmentModifications() generate_mods.append_flags("CFLAGS", f"-fprofile-generate={reports}") generate_mods.append_flags("CXXFLAGS", f"-fprofile-generate={reports}") @@ -103,14 +117,9 @@ def pgo_train(self): # Clean the reports dir. rmtree(reports, ignore_errors=True) - # Run spack solve --fresh hdf5 with instrumented clingo. - python_runtime_env = EnvironmentModifications() - python_runtime_env.extend( - environment_modifications_for_specs(self.spec, set_package_py_globals=False) - ) - python_runtime_env.unset("SPACK_ENV") - python_runtime_env.unset("SPACK_PYTHON") - python(spack_script, "solve", "--fresh", "hdf5", extra_env=python_runtime_env) + # Generate profile data. + env = environment_modifications_for_specs(self.spec, set_package_py_globals=False) + python(script, extra_env=env) # Clean the build dir. rmtree(self.build_directory, ignore_errors=True) diff --git a/repos/spack_repo/builtin/packages/clingo_bootstrap_pgo/package.py b/repos/spack_repo/builtin/packages/clingo_bootstrap_pgo/package.py new file mode 100644 index 00000000000..655b16a8801 --- /dev/null +++ b/repos/spack_repo/builtin/packages/clingo_bootstrap_pgo/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.generic import Package + +from spack.package import * + + +class ClingoBootstrapPgo(Package): + """Resources for profile-guided optimization for clingo-bootstrap""" + + homepage = "https://github.com/spack/spack-clingo-pgo" + git = "https://github.com/spack/spack-clingo-pgo.git" + + maintainers("haampie") + + version("1.0.0", commit="64bec625ae06b32b7f5f01bccf9d27d0432a018f") + + def install(self, spec, prefix): + install_tree("bin", prefix.bin) + install_tree("share", prefix.share) diff --git a/repos/spack_repo/builtin/packages/cln/package.py b/repos/spack_repo/builtin/packages/cln/package.py index 734ffe06c14..e4398acefb6 100644 --- a/repos/spack_repo/builtin/packages/cln/package.py +++ b/repos/spack_repo/builtin/packages/cln/package.py @@ -18,7 +18,7 @@ class Cln(AutotoolsPackage): homepage = "https://www.ginac.de/CLN/" url = "https://www.ginac.de/CLN/cln-1.3.7.tar.bz2" - git = "git://www.ginac.de/cln.git" + git = "https://codeberg.org/ginac/cln.git" maintainers("prudhomm") license("GPL-2.0-or-later") @@ -42,6 +42,7 @@ class Cln(AutotoolsPackage): depends_on("cxx", type="build") # generated depends_on("autoconf", type="build") + depends_on("autoconf-archive", type="build") depends_on("automake", type="build") depends_on("libtool", type="build") depends_on("m4", type="build") @@ -52,15 +53,15 @@ class Cln(AutotoolsPackage): depends_on("gettext", type="build") def autoreconf(self, spec, prefix): - autoreconf_args = ["-i"] + autoreconf_args = ["-i", "-f"] - aclocal_pkg_list = ["gettext"] + aclocal_pkg_list = ["gettext", "autoconf-archive"] aclocal_path = os.path.join("share", "aclocal") for pkg in aclocal_pkg_list: autoreconf_args += ["-I", os.path.join(spec[pkg].prefix, aclocal_path)] - autoreconf = which("autoreconf") + autoreconf = which("autoreconf", required=True) autoreconf(*autoreconf_args) @run_before("autoreconf") @@ -68,10 +69,10 @@ def force_config_rpath(self): source_directory = self.stage.source_path build_aux_directory = os.path.join(source_directory, "build-aux") - mkdir = which("mkdir") + mkdir = which("mkdir", required=True) mkdir(build_aux_directory) - touch = which("touch") + touch = which("touch", required=True) touch(os.path.join(build_aux_directory, "config.rpath")) def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/cloverleaf/package.py b/repos/spack_repo/builtin/packages/cloverleaf/package.py index a945499eed8..7c44a8a3add 100644 --- a/repos/spack_repo/builtin/packages/cloverleaf/package.py +++ b/repos/spack_repo/builtin/packages/cloverleaf/package.py @@ -53,7 +53,7 @@ class Cloverleaf(MakefilePackage): def patch_for_reference_module(self): if self.spec.satisfies("@master %aocc"): fp = join_path(self.package_dir, "aocc_support.patch") - which("patch")("-s", "-p0", "-i", "{0}".format(fp), "-d", ".") + which("patch", required=True)("-s", "-p0", "-i", "{0}".format(fp), "-d", ".") @property def type_of_build(self): diff --git a/repos/spack_repo/builtin/packages/clp/package.py b/repos/spack_repo/builtin/packages/clp/package.py index 6816c30b367..2b07f11af46 100644 --- a/repos/spack_repo/builtin/packages/clp/package.py +++ b/repos/spack_repo/builtin/packages/clp/package.py @@ -12,22 +12,33 @@ class Clp(AutotoolsPackage): linear programming solver written in C++.""" homepage = "https://projects.coin-or.org/Clp" - url = "https://github.com/coin-or/Clp/archive/releases/1.17.6.tar.gz" + url = "https://github.com/coin-or/Clp/archive/releases/1.17.11.tar.gz" license("EPL-2.0") + version("1.17.11", sha256="2c078e174dc1a7a308e091b6256fb34b4017897fc140ea707ba207b2913ea46d") version("1.17.9", sha256="b02109be54e2c9c6babc9480c242b2c3c7499368cfca8c0430f74782a694a49f") version("1.17.7", sha256="c4c2c0e014220ce8b6294f3be0f3a595a37bef58a14bf9bac406016e9e73b0f5") version("1.17.6", sha256="afff465b1620cfcbb7b7c17b5d331d412039650ff471c4160c7eb24ae01284c9") version("1.17.4", sha256="ef412cde00cb1313d9041115a700d8d59d4b8b8b5e4dde43e9deb5108fcfbea8") - version("1.16.11", sha256="b525451423a9a09a043e6a13d9436e13e3ee7a7049f558ad41a110742fa65f39") + version("1.16.12", sha256="3ea36ea3d1500bec9d5c9a105dbc5dc282851272b6bb1412cd6edf2a4b5ea559") + version("1.16.11", sha256="ac42c00ba95e1e034ae75ba0e3a5ff03b452191e0c9b2f5e2d5e65bf652fb0a1") + version("1.16.8", sha256="22042aaf5857272b83039be8d1f84baff8f349a76f2527c62de7ad36717c7d04") + version("1.15.12", sha256="652c45aabbe06859ba2e7f702962447cf7af71f7c6835e847074dc44c327faf0") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + + # Passing -DNDEBUG to CXXFLAGS allows building with %gcc@11: but with side-effects. + conflicts("gcc@11:", when="@:1.16.10") depends_on("pkgconfig", type="build") + + depends_on("coinutils@2.11.2:", when="@1.17.2:") + depends_on("coinutils@2.11.0:", when="@1.17.0:1.17.1") + depends_on("coinutils@2.10.6:", when="@1.16.6:1.16") depends_on("coinutils") + depends_on("osi") - depends_on("pkgconfig", type="build") build_directory = "spack-build" diff --git a/repos/spack_repo/builtin/packages/clustalw/package.py b/repos/spack_repo/builtin/packages/clustalw/package.py index 41e8d4ba011..a86963c9c63 100644 --- a/repos/spack_repo/builtin/packages/clustalw/package.py +++ b/repos/spack_repo/builtin/packages/clustalw/package.py @@ -10,11 +10,12 @@ class Clustalw(AutotoolsPackage): """Multiple alignment of nucleic acid and protein sequences.""" - homepage = "http://www.clustal.org/clustal2/" - url = "http://www.clustal.org/download/2.1/clustalw-2.1.tar.gz" + homepage = "https://ftp.ebi.ac.uk/pub/software/clustalw2" + url = "https://ftp.ebi.ac.uk/pub/software/clustalw2/2.1/clustalw-2.1.tar.gz" license("LGPL-3.0-only") version("2.1", sha256="e052059b87abfd8c9e695c280bfba86a65899138c82abccd5b00478a80f49486") + depends_on("c", type="build") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/cmake/package.py b/repos/spack_repo/builtin/packages/cmake/package.py index a83c139b5c7..8a9ef701a5a 100644 --- a/repos/spack_repo/builtin/packages/cmake/package.py +++ b/repos/spack_repo/builtin/packages/cmake/package.py @@ -20,6 +20,7 @@ class Cmake(Package): homepage = "https://www.cmake.org" url = "https://github.com/Kitware/CMake/releases/download/v3.19.0/cmake-3.19.0.tar.gz" git = "https://gitlab.kitware.com/cmake/cmake.git" + github = "https://github.com/kitware/cmake" maintainers("alalazo", "johnwparent") @@ -30,16 +31,16 @@ class Cmake(Package): license("BSD-3-Clause") version("master", branch="master") - version("4.0.3", sha256="8d3537b7b7732660ea247398f166be892fe6131d63cc291944b45b91279f3ffb") - version("4.0.0", sha256="ddc54ad63b87e153cf50be450a6580f1b17b4881de8941da963ff56991a4083b") + version("4.3.3", sha256="cba4bb7a44edf2877bb6f059932896383babe435b3a8c3b5df48b4aa41c9bb85") + version("4.2.3", sha256="7efaccde8c5a6b2968bad6ce0fe60e19b6e10701a12fce948c2bf79bac8a11e9") + version("4.1.5", sha256="50ce77215cf266630fa5de97c360f4c313bb79f94b35236b63c1216de3196356") + version("4.0.6", sha256="9ebe11be8d304336d62a3e71ca36c18f0a4e40036b97c533d63cf730364b6528") version( - "3.31.8", - sha256="e3cde3ca83dc2d3212105326b8f1b565116be808394384007e7ef1c253af6caa", + "3.31.11", + sha256="c0a3b3f2912b2166f522d5010ffb6029d8454ee635f5ad7a3247e0be7f9a15c9", preferred=True, ) - version("3.31.6", sha256="653427f0f5014750aafff22727fb2aa60c6c732ca91808cfb78ce22ddd9e55f0") version("3.30.9", sha256="65f765bb87c8019316cabe67cbe5e8f45ede334eeb5afd161ca6874d17994e0d") - version("3.30.8", sha256="10434223a40531b4d6bd77f8ffc471f1714029f4e6d2c83c499187a940276720") version("3.29.6", sha256="1391313003b83d48e2ab115a8b525a557f78d8c1544618b48d1d90184a10f0af") version("3.28.6", sha256="c39c733900affc4eb0e9688b4d1a45435a732105d9bf9cc1e75dd2b9b81a36bb") version("3.27.9", sha256="609a9b98572a6a5ea477f912cffb973109ed4d0a6a6b3f9e2353d2cdc048708e") @@ -72,53 +73,13 @@ class Cmake(Package): version("2.8.10.2", sha256="ce524fb39da06ee6d47534bbcec6e0b50422e18b62abc4781a4ba72ea2910eb1") with default_args(deprecated=True): + version("4.2.2", sha256="bbda94dd31636e89eb1cc18f8355f6b01d9193d7676549fba282057e8b730f58") + version("4.2.0", sha256="4104e94657d247c811cb29985405a360b78130b5d51e7f6daceb2447830bd579") + version("4.1.2", sha256="643f04182b7ba323ab31f526f785134fb79cba3188a852206ef0473fee282a15") + version("4.1.1", sha256="b29f6f19733aa224b7763507a108a427ed48c688e1faf22b29c44e1c30549282") + version("4.0.4", sha256="629be82af0b76e029b675a4a37569e2ddc1769d42a768957c00ec0e98407737e") version( - "3.31.5", sha256="66fb53a145648be56b46fa9e8ccade3a4d0dfc92e401e52ce76bdad1fea43d27" - ) - version( - "3.31.4", sha256="a6130bfe75f5ba5c73e672e34359f7c0a1931521957e8393a5c2922c8b0f7f25" - ) - version( - "3.31.3", sha256="fac45bc6d410b49b3113ab866074888d6c9e9dc81a141874446eb239ac38cb87" - ) - version( - "3.31.2", sha256="42abb3f48f37dbd739cdfeb19d3712db0c5935ed5c2aef6c340f9ae9114238a2" - ) - version( - "3.31.1", sha256="c4fc2a9bd0cd5f899ccb2fb81ec422e175090bc0de5d90e906dd453b53065719" - ) - version( - "3.31.0", sha256="300b71db6d69dcc1ab7c5aae61cbc1aa2778a3e00cbd918bc720203e311468c3" - ) - version( - "3.30.7", sha256="470e44d9c7caa3bd869ef953071b84f565b5d378d0a9eccbbbcd72031f21b9de" - ) - version( - "3.30.6", sha256="a7aa25cdd8545156fe0fec95ebbd53cb2b5173a8717e227f6e8a755185c168cf" - ) - version( - "3.30.5", sha256="9f55e1a40508f2f29b7e065fa08c29f82c402fa0402da839fffe64a25755a86d" - ) - version( - "3.30.4", sha256="c759c97274f1e7aaaafcb1f0d261f9de9bf3a5d6ecb7e2df616324a46fe704b2" - ) - version( - "3.30.3", sha256="6d5de15b6715091df7f5441007425264bdd477809f80333fdf95f846aaff88e4" - ) - version( - "3.30.2", sha256="46074c781eccebc433e98f0bbfa265ca3fd4381f245ca3b140e7711531d60db2" - ) - version( - "3.30.1", sha256="df9b3c53e3ce84c3c1b7c253e5ceff7d8d1f084ff0673d048f260e04ccb346e1" - ) - version( - "3.30.0", sha256="157e5be6055c154c34f580795fe5832f260246506d32954a971300ed7899f579" - ) - version( - "3.29.5", sha256="dd63da7d763c0db455ca232f2c443f5234fe0b11f8bd6958a81d29cc987dfd6e" - ) - version( - "3.29.4", sha256="b1b48d7100bdff0b46e8c8f6a3c86476dbe872c8df39c42b8d104298b3d56a2c" + "3.31.9", sha256="5d4fdec04247ca8a8e8f63692f0d0f1e9d6d082a2bdd008dff8ab3ba7215aa83" ) depends_on("c", type="build") @@ -167,6 +128,12 @@ class Cmake(Package): # https://gitlab.kitware.com/cmake/cmake/-/merge_requests/9623 patch("mr-9623.patch", when="@3.22.0:3.30") + patch( + f"{github}/commit/1b0c92a3a1b782ff3e1c4499b6ab8db614d45bcd.patch?full_index=1", + sha256="fdea723be9713f3ed4624055bf21ef5876647d63c151b91006608ec44a912ae1", + when="@3.11:3.31.6", + ) + depends_on("c", type="build") depends_on("cxx", type="build") @@ -202,8 +169,12 @@ class Cmake(Package): # provide Spack's TLS libs anyways, which is not flexible, and actually # leads to issues where we have to keep track of the vendored curl version # and its conflicts with OpenSSL. + depends_on("curl@:8.15", when="@:3.25") depends_on("curl") + # https://gitlab.kitware.com/cmake/cmake/-/merge_requests/11134 + conflicts("curl@8.16:", when="@:3.30") + # When using curl, cmake defaults to using system zlib too, probably because # curl already depends on zlib. Therefore, also unconditionaly depend on zlib. depends_on("zlib-api") @@ -283,6 +254,16 @@ class Cmake(Package): phases = ["bootstrap", "build", "install"] + def patch(self): + # https://github.com/Kitware/CMake/commit/c8143074cf3954b1e169904eb9d843cfbe14acc3 + if self.spec.satisfies("@2.8,3.2:3.31.8,4.0:4.0.3,4.1:4.1.1"): + filter_file( + "curl_proxytype HTTPProxyType;", + "long HTTPProxyType;", + "Source/CTest/cmCTestCurl.h", + string=True, + ) + @classmethod def determine_version(cls, exe): output = Executable(exe)("--version", output=str, error=str) @@ -440,9 +421,9 @@ def run_version_check(self, bin): """Runs and checks output of the installed binary.""" exe_path = join_path(self.prefix.bin, bin) if not os.path.exists(exe_path): - raise SkipTest(f"{exe} is not installed") + raise SkipTest(f"{exe_path} is not installed") - exe = which(exe_path) + exe = which(exe_path, required=True) out = exe("--version", output=str.split, error=str.split) assert f"version {self.spec.version}" in out 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/cmockery/package.py b/repos/spack_repo/builtin/packages/cmockery/package.py index 8b79505fc77..7b89c032f78 100644 --- a/repos/spack_repo/builtin/packages/cmockery/package.py +++ b/repos/spack_repo/builtin/packages/cmockery/package.py @@ -28,5 +28,5 @@ class Cmockery(AutotoolsPackage): depends_on("libtool", type="build") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/cni_plugins/package.py b/repos/spack_repo/builtin/packages/cni_plugins/package.py index 64050c82a3a..9fed76b87d0 100644 --- a/repos/spack_repo/builtin/packages/cni_plugins/package.py +++ b/repos/spack_repo/builtin/packages/cni_plugins/package.py @@ -27,7 +27,7 @@ class CniPlugins(Package): def install(self, spec, prefix): utils = "github.com/containernetworking/plugins/pkg/utils/buildversion" - which("./build_linux.sh")( + which("./build_linux.sh", required=True)( "-ldflags", "-extldflags -static -X {0}.BuildVersion={1}".format(utils, self.version) ) install_tree("bin", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/codecov/package.py b/repos/spack_repo/builtin/packages/codecov/package.py index 6cf2f740819..1d982a6da6c 100644 --- a/repos/spack_repo/builtin/packages/codecov/package.py +++ b/repos/spack_repo/builtin/packages/codecov/package.py @@ -41,7 +41,7 @@ def url_for_version(self, version): def install(self, spec, prefix): codecov = self.stage.archive_file - chmod = which("chmod") + chmod = which("chmod", required=True) chmod("+x", codecov) mkdirp(prefix.bin) install(codecov, prefix.bin.codecov) diff --git a/repos/spack_repo/builtin/packages/codipack/package.py b/repos/spack_repo/builtin/packages/codipack/package.py index 526af9bdc85..93e6e0d3666 100644 --- a/repos/spack_repo/builtin/packages/codipack/package.py +++ b/repos/spack_repo/builtin/packages/codipack/package.py @@ -25,7 +25,8 @@ class Codipack(CMakePackage, Package): version("1.9.3", sha256="27dd92d0b5132de37b431989c0c3d5bd829821a6a2e31e0529137e427421f06e") version("openmp", branch="experimentalOpenMPSupport") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("cmake@3.12:", type="build", when="@2.1.0:") diff --git a/repos/spack_repo/builtin/packages/cohomcalg/fix-literal-suffix.patch b/repos/spack_repo/builtin/packages/cohomcalg/fix-literal-suffix.patch new file mode 100644 index 00000000000..39618bb1db6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/cohomcalg/fix-literal-suffix.patch @@ -0,0 +1,29 @@ +From 47fac28e47b59d50aa3e219c6cd57c50fb422f20 Mon Sep 17 00:00:00 2001 +From: Doug Torrance +Date: Wed, 24 Sep 2025 03:19:46 +0000 +Subject: [PATCH] Fix C++11 literal-suffix warning by adding spaces around + format macro + +Add spaces between string literals and P_VALUE_FMT in value_print calls +so that the macro expansion concatenates properly. This avoids the +invalid suffix warning under C++11 and ensures portable compilation. +--- + source/polylib_mod/matrix.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/source/polylib_mod/matrix.c b/source/polylib_mod/matrix.c +index 1d84800..6afc1f6 100644 +--- a/source/polylib_mod/matrix.c ++++ b/source/polylib_mod/matrix.c +@@ -150,7 +150,7 @@ void Matrix_Print(FILE *Dst, const char *Format, Matrix *Mat) + p=*(Mat->p+i); + for (j=0;j= Version("4.0.0"): + if version >= Version("4.0.1"): + url = "https://github.com/coin3d/coin/releases/download/v{0}/coin-{0}-src.tar.gz" + elif version >= Version("4.0.0"): url = "https://github.com/coin3d/coin/releases/download/Coin-{0}/coin-{0}-src.tar.gz" else: url = "https://github.com/coin3d/coin/archive/Coin-{0}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/coinhsl/package.py b/repos/spack_repo/builtin/packages/coinhsl/package.py index 01a317db8c3..dadc76a210b 100644 --- a/repos/spack_repo/builtin/packages/coinhsl/package.py +++ b/repos/spack_repo/builtin/packages/coinhsl/package.py @@ -23,6 +23,9 @@ class Coinhsl(MesonPackage, AutotoolsPackage): that Spack can find it. For instructions on how to set up a mirror, see https://spack.readthedocs.io/en/latest/mirrors.html""" + depends_on("c", type="build") + depends_on("fortran", type="build") + build_system( conditional("autotools", when="@b:2019.05.21"), conditional("meson", when="@2023:,:b"), diff --git a/repos/spack_repo/builtin/packages/coinmp/package.py b/repos/spack_repo/builtin/packages/coinmp/package.py new file mode 100644 index 00000000000..1092d3d609c --- /dev/null +++ b/repos/spack_repo/builtin/packages/coinmp/package.py @@ -0,0 +1,31 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Coinmp(AutotoolsPackage): + """C-API library for CLP, CBC, and CGL.""" + + homepage = "https://github.com/coin-or/CoinMP" + url = "https://github.com/coin-or/CoinMP/archive/refs/tags/releases/1.8.4.tar.gz" + git = "https://github.com/coin-or/CoinMP.git" + + license("CPL-1.0") + + version("1.8.4", sha256="ec03a5110d9d79da950669e3400f3b81c4391747b14821d8997f9f8755873150") + version("1.8.3", sha256="a7a70b5a2f19eb57f55ce079c0b83ca36507ba83118a1ade52e46cb75b35bcb1") + version("1.7.6", sha256="d7316e2f11886d1b14d0be82990305e33f4b034f2251f05c206168b854f5010a") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("pkgconfig", type="build") + + depends_on("coinutils") + depends_on("osi") + depends_on("clp") + depends_on("cgl") + depends_on("cbc") diff --git a/repos/spack_repo/builtin/packages/coinutils/package.py b/repos/spack_repo/builtin/packages/coinutils/package.py index 99442be279e..c7e1b5b94e9 100644 --- a/repos/spack_repo/builtin/packages/coinutils/package.py +++ b/repos/spack_repo/builtin/packages/coinutils/package.py @@ -13,15 +13,26 @@ class Coinutils(AutotoolsPackage): projects.""" homepage = "https://projects.coin-or.org/Coinutils" - url = "https://github.com/coin-or/CoinUtils/archive/releases/2.11.4.tar.gz" + url = "https://github.com/coin-or/CoinUtils/archive/releases/2.11.13.tar.gz" license("EPL-2.0") + version("2.11.13", sha256="ddfea48e10209215748bc9f90a8c04abbb912b662c1aefaf280018d0a181ef79") version("2.11.10", sha256="80c7c215262df8d6bd2ba171617c5df844445871e9891ec6372df12ccbe5bcfd") version("2.11.9", sha256="15d572ace4cd3b7c8ce117081b65a2bd5b5a4ebaba54fadc99c7a244160f88b8") version("2.11.6", sha256="6ea31d5214f7eb27fa3ffb2bdad7ec96499dd2aaaeb4a7d0abd90ef852fc79ca") version("2.11.4", sha256="d4effff4452e73356eed9f889efd9c44fe9cd68bd37b608a5ebb2c58bd45ef81") + version("2.10.15", sha256="b10e4ef56118f6c090e637fc75b84e8e0001c1ce5d867a834e9ff5ef03f119ad") + version("2.10.10", sha256="f6c90b2a042faae84a6e8d56851283f594610372e0a54835f042de2d364541d6") + version("2.9.19", sha256="0eb6139ff6d4dcc8957ef6a73b74d62c48339471595e70d67ba3e6470a8eab05") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") build_directory = "spack-build" + + def setup_build_environment(self, env): + if self.spec.satisfies("%gcc@11:") and self.spec.satisfies("@:2.10.13"): + # older autoconf script fails to set this variable with newer GCC versions + env.append_flags("CXXFLAGS", "-DHAVE_CFLOAT=1") diff --git a/repos/spack_repo/builtin/packages/comet/package.py b/repos/spack_repo/builtin/packages/comet/package.py new file mode 100644 index 00000000000..8cee30254a2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/comet/package.py @@ -0,0 +1,40 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.makefile import MakefilePackage + +from spack.package import * + + +class Comet(MakefilePackage): + """A tandem mass spectrometry (MS/MS) sequence database search tool.""" + + homepage = "https://uwpr.github.io/Comet" + url = "https://github.com/UWPR/Comet/archive/refs/tags/v2026.01.1.tar.gz" + git = "https://github.com/UWPR/Comet.git" + + maintainers("w8jcik") + + license("Apache-2.0") + + version("2026.01.1", sha256="c444cf8e5b303677c8f8efe4d3141db9bfacba16b28c9e5e35621bd3e8e05c99") + version("2025.03.0", sha256="7e1b1d9cf19a4af6c9fc3d2a635cb5066775904c7f3b486b7038a947cd6f3ead") + version("2024.02.0", sha256="57ac30bc2d1a8b53c4eb3ccf7f282bbb36fa96691dacea7a41efa2205c288340") + version("2023.01.2", sha256="4316230dab89e4cc16776e4c2bb1141b413fd1a347764abf5ce9e9bff522a4ca") + version("2022.01.1", sha256="07763e6aa4ac166eb3ded38a74f23b26e6eadc0f7024262c052aa63811e84d75") + version("2022.01.0", sha256="f59f2d8df1ee3a48919244cf107a03197f65b5e0533a96f1d55d35deb8054e94") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + parallel = False + + def edit(self, spec, prefix): + if spec.satisfies("@2025.02.0:"): + mstoolkit_makefile = FileFilter("MSToolkit/Makefile") + mstoolkit_makefile.filter(r"CC = g\+\+", "") + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install("comet.exe", join_path(prefix.bin, "comet")) diff --git a/repos/spack_repo/builtin/packages/comgr/package.py b/repos/spack_repo/builtin/packages/comgr/package.py index 8ed255d39c5..bc9a883cdd4 100644 --- a/repos/spack_repo/builtin/packages/comgr/package.py +++ b/repos/spack_repo/builtin/packages/comgr/package.py @@ -13,8 +13,13 @@ class Comgr(CMakePackage): """This provides various Lightning Compiler related services. It currently contains one library, the Code Object Manager (Comgr)""" - homepage = "https://github.com/ROCm/ROCm-CompilerSupport" - git = "https://github.com/ROCm/ROCm-CompilerSupport.git" + homepage = "https://github.com/ROCm/llvm-project" + git = "https://github.com/ROCm/llvm-project.git" + + tags = ["rocm"] + maintainers("srekolam", "renjithravindrankannath", "haampie", "afzpatel") + libraries = ["libamd_comgr"] + license("NCSA") def url_for_version(self, version): if version <= Version("6.0.2"): @@ -23,13 +28,15 @@ def url_for_version(self, version): url = "https://github.com/ROCm/llvm-project/archive/rocm-{0}.tar.gz" return url.format(version) - tags = ["rocm"] - - maintainers("srekolam", "renjithravindrankannath", "haampie", "afzpatel") - libraries = ["libamd_comgr"] - - license("NCSA") - + version("7.2.3", sha256="6239fa0c72b150cf0a325676264d3030a67389dec4fca7103f563a70c2b70114") + version("7.2.1", sha256="4d3449d758e3f79b336248b0207a394eda04ba5cdd48a4088e135ddf769127fa") + version("7.2.0", sha256="e86138d2a63fbcbdf64668d55573b26ae944d0f0ae5a3f5bb59bf7bdb3124d3f") + version("7.1.1", sha256="d76a16db4a56914383029e241823f7bc2a3d645f2967dd22230f11c11cfe189e") + version("7.1.0", sha256="87f5532b8b653bd18541cdf6e59923cbd340b300d8ec5046d3e4288d9e5195c0") + version("7.0.2", sha256="fd612fa750bebd0c3be0ea642b2cae8ff5c7e00a2280b22b9ea16ee86a11d763") + version("7.0.0", sha256="3d479a2aa615b6bb35cd3521122fbff34188dc0cc52d8b0acda59f9f55198211") + version("6.4.3", sha256="7a484b621d568eef000ee8c4d2d46d589e5682b950f1f410ce7215031f1f3ad7") + version("6.4.2", sha256="9f42cb73d90bd4561686c0366f60f6e58cfd32ff24b094c69e8259fb5d177457") version("6.4.1", sha256="460ad28677092b9eb86ffdc49bcb4d01035e32b4f05161d85f90c9fa80239f50") version("6.4.0", sha256="dca1c145a23f05229d5d646241f9d1d3c5dbf1d745b338ae020eabe33beb965c") version("6.3.3", sha256="4df9aba24e574edf23844c0d2d9dda112811db5c2b08c9428604a21b819eb23d") @@ -46,9 +53,6 @@ def url_for_version(self, version): version("6.0.0", sha256="04353d27a512642a5e5339532a39d0aabe44e0964985de37b150a2550385800a") version("5.7.1", sha256="3b9433b4a0527167c3e9dfc37a3c54e0550744b8d4a8e1be298c8d4bcedfee7c") version("5.7.0", sha256="e234bcb93d602377cfaaacb59aeac5796edcd842a618162867b7e670c3a2c42c") - with default_args(deprecated=True): - version("5.6.1", sha256="0a85d84619f98be26ca7a32c71f94ed3c4e9866133789eabb451be64ce739300") - version("5.6.0", sha256="9396a7238b547ee68146c669b10b9d5de8f1d76527c649133c75d8076a185a72") variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") @@ -63,8 +67,6 @@ def url_for_version(self, version): depends_on("ncurses", type="link") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -81,6 +83,15 @@ def url_for_version(self, version): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: # llvm libs are linked statically, so this *could* be a build dep depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") @@ -104,6 +115,7 @@ def cmake_args(self): return args def setup_build_environment(self, env: EnvironmentModifications) -> None: + env.prepend_path("CMAKE_MODULE_PATH", self.spec["llvm-amdgpu"].prefix.lib.cmake.clang) if self.spec.satisfies("@5.7: +asan"): env.set("CC", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang") env.set("CXX", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang++") diff --git a/repos/spack_repo/builtin/packages/compadre/package.py b/repos/spack_repo/builtin/packages/compadre/package.py index 33d889dad26..581a820c60d 100644 --- a/repos/spack_repo/builtin/packages/compadre/package.py +++ b/repos/spack_repo/builtin/packages/compadre/package.py @@ -22,28 +22,55 @@ class Compadre(CMakePackage): maintainers("kuberry") version("master", branch="master") - version("1.6.0", sha256="5d937f85c2e64b50955beab1ac9f1083162f5239a5f13a40ef9a9c0e6ad216c9") - version("1.5.0", sha256="b7dd6020cc5a7969de817d5c7f6c5acceaad0f08dcfd3d7cacfa9f42e4c8b335") - version("1.4.1", sha256="2e1e7d8e30953f76b6dc3a4c86ec8103d4b29447194cb5d5abb74b8e4099bdd9") - version("1.3.0", sha256="f711a840fd921e84660451ded408023ec3bcfc98fd0a7dc4a299bfae6ab489c2") - - variant( - "debug", - default="0", - values=["0", "1", "2"], - multi=False, - description="Debugging level 0) release 1) debug 2) extreme debugging", + version("1.7.3", sha256="982f918daa5d8ad46145b9fb91ae0c1ecbdc722bc030367cba51901c8fd4c3fe") + version("1.7.2", sha256="4b7c2944300fd025957be44a1114177dfa0aafcf9e613d830a94e020b2f1751e") + version( + "1.6.2", + sha256="ad4122feed81e9f661ee86e73ad4bf53dbfb2470b389a4ea31e6c8d727c8bec8", + deprecated=True, + ) + version( + "1.6.0", + sha256="5d937f85c2e64b50955beab1ac9f1083162f5239a5f13a40ef9a9c0e6ad216c9", + deprecated=True, + ) + version( + "1.5.0", + sha256="b7dd6020cc5a7969de817d5c7f6c5acceaad0f08dcfd3d7cacfa9f42e4c8b335", + deprecated=True, + ) + version( + "1.4.1", + sha256="2e1e7d8e30953f76b6dc3a4c86ec8103d4b29447194cb5d5abb74b8e4099bdd9", + deprecated=True, + ) + version( + "1.3.0", + sha256="f711a840fd921e84660451ded408023ec3bcfc98fd0a7dc4a299bfae6ab489c2", + deprecated=True, ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated depends_on("cmake@3.10:", type="build", when="@:1.4") - depends_on("cmake@3.16:", type="build", when="@1.5:") + depends_on("cmake@3.16:", type="build", when="@1.5:1.6") + depends_on("cmake@3.24:", type="build", when="@1.7:") depends_on("kokkos-kernels@3.3.01:4", when="@:1.5") - depends_on("kokkos-kernels@4:", when="@1.6:") + depends_on("kokkos-kernels@4:", when="@1.6") + depends_on("kokkos-kernels@4.5.1:", when="@1.7:") + requires("%clang", when="^kokkos+cuda~wrapper") + + variant( + "build_type", + default="Debug", + values=("Debug", "Release", "RelWithDebInfo", "MinSizeRel"), + description="CMake build type: Debug, Release, RelWithDebInfo, MinSizeRel", + ) + variant("extreme_debug", default="False", description="Enable extreme debugging") + conflicts("+extreme_debug", when="build_type=Release") + conflicts("+extreme_debug", when="build_type=RelWithDebInfo") variant("mpi", default=False, description="Enable MPI support") depends_on("mpi", when="+mpi") @@ -57,6 +84,25 @@ class Compadre(CMakePackage): when="@1.5.0", ) + # logic borrowed from Trilinos recipe + def setup_build_environment(self, env: EnvironmentModifications) -> None: + spec = self.spec + if "^kokkos+cuda+wrapper" in spec: + if "+mpi" in spec: + env.set("OMPI_CXX", self["kokkos-nvcc-wrapper"].kokkos_cxx) + env.set("MPICH_CXX", self["kokkos-nvcc-wrapper"].kokkos_cxx) + env.set("MPICXX_CXX", self["kokkos-nvcc-wrapper"].kokkos_cxx) + else: + env.set("CXX", self["kokkos-nvcc-wrapper"].kokkos_cxx) + + if "^kokkos+rocm" in spec: + if "+mpi" in spec: + env.set("OMPI_CXX", self.spec["hip"].hipcc) + env.set("MPICH_CXX", self.spec["hip"].hipcc) + env.set("MPICXX_CXX", self.spec["hip"].hipcc) + else: + env.set("CXX", self.spec["hip"].hipcc) + def cmake_args(self): spec = self.spec @@ -64,29 +110,33 @@ def cmake_args(self): kokkos_kernels = spec["kokkos-kernels"] options = [] - options.extend( - [ - "-DKokkosCore_PREFIX={0}".format(kokkos.prefix), - "-DKokkosKernels_PREFIX={0}".format(kokkos_kernels.prefix), - "-DCMAKE_CXX_COMPILER:STRING={0}".format(self["kokkos"].kokkos_cxx), - # Compadre_USE_PYTHON is OFF by default - "-DCompadre_USE_PYTHON=OFF", - ] - ) - - if spec.variants["debug"].value == "0": - if spec.satisfies("^kokkos~cuda"): - options.append( - "-DCMAKE_CXX_FLAGS:STRING=%s" - % "' -Ofast -funroll-loops -march=native -mtune=native '" - ) - options.append("-DCompadre_DEBUG:BOOL=OFF") + if spec.satisfies("@:1.6"): + options.extend( + [ + "-DKokkosCore_PREFIX={0}".format(kokkos.prefix), + "-DKokkosKernels_PREFIX={0}".format(kokkos_kernels.prefix), + ] + ) else: - options.append("-DCMAKE_CXX_FLAGS:STRING='-g -O0'") - options.append("-DCMAKE_BUILD_TYPE:STRING=DEBUG") - options.append("-DCompadre_DEBUG:BOOL=ON") - if spec.variants["debug"].value == "2": - options.append("-DCompadre_EXTREME_DEBUG:BOOL=ON") + options.extend( + [ + "-DKokkos_ROOT={0}".format(kokkos.prefix), + "-DKokkosKernels_ROOT={0}".format(kokkos_kernels.prefix), + ] + ) + options.append("-DCompadre_USE_PYTHON=OFF") + + # Compadre_DEBUG is default OFF and handled from CMAKE_BUILD_TYPE beginning in v1.7.0 + if spec.satisfies("@:1.6"): + if spec.variants["build_type"].value.upper() == "RELEASE": + options.append("-DCompadre_DEBUG:BOOL=OFF") + elif spec.variants["build_type"].value.upper() == "RELWITHDEBINFO": + options.append("-DCompadre_DEBUG:BOOL=OFF") + else: + options.append("-DCompadre_DEBUG:BOOL=ON") + + if spec.variants["extreme_debug"].value: + options.append("-DCompadre_EXTREME_DEBUG:BOOL=ON") if spec.satisfies("+mpi"): options.append("-DCompadre_USE_MPI:BOOL=ON") diff --git a/repos/spack_repo/builtin/packages/compiler_wrapper/cc.sh b/repos/spack_repo/builtin/packages/compiler_wrapper/cc.sh deleted file mode 100755 index 3cfb0ffbf86..00000000000 --- a/repos/spack_repo/builtin/packages/compiler_wrapper/cc.sh +++ /dev/null @@ -1,964 +0,0 @@ -#!/bin/sh -f -# shellcheck disable=SC2034 # evals in this script fool shellcheck -# -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -# -# Spack compiler wrapper script. -# -# Compiler commands go through this compiler wrapper in Spack builds. -# The compiler wrapper is a thin layer around the standard compilers. -# It enables several key pieces of functionality: -# -# 1. It allows Spack to swap compilers into and out of builds easily. -# 2. It adds several options to the compile line so that spack -# packages can find their dependencies at build time and run time: -# -I and/or -isystem arguments for dependency /include directories. -# -L arguments for dependency /lib directories. -# -Wl,-rpath arguments for dependency /lib directories. -# - -# Reset IFS to the default: whitespace-separated lists. When we use -# other separators, we set and reset it. -unset IFS - -# Separator for lists whose names end with `_list`. -# We pick the alarm bell character, which is highly unlikely to -# conflict with anything. This is a literal bell character (which -# we have to use since POSIX sh does not convert escape sequences -# like '\a' outside of the format argument of `printf`). -# NOTE: Depending on your editor this may look empty, but it is not. -readonly lsep='' - -# This is an array of environment variables that need to be set before -# the script runs. They are set by routines in spack.build_environment -# as part of the package installation process. -readonly params="\ -SPACK_COMPILER_WRAPPER_PATH -SPACK_DEBUG_LOG_DIR -SPACK_DEBUG_LOG_ID -SPACK_SHORT_SPEC -SPACK_SYSTEM_DIRS -SPACK_MANAGED_DIRS" - -# Optional parameters that aren't required to be set - -# Boolean (true/false/custom) if we want to add debug flags -# SPACK_ADD_DEBUG_FLAGS - -# If a custom flag is requested, it will be defined -# SPACK_DEBUG_FLAGS - -# The compiler input variables are checked for sanity later: -# SPACK_CC, SPACK_CXX, SPACK_F77, SPACK_FC -# The default compiler flags are passed from these variables: -# SPACK_CFLAGS, SPACK_CXXFLAGS, SPACK_FFLAGS, -# SPACK_LDFLAGS, SPACK_LDLIBS -# Debug env var is optional; set to "TRUE" for debug logging: -# SPACK_DEBUG -# Test command is used to unit test the compiler script. -# SPACK_TEST_COMMAND - -# die MESSAGE -# Print a message and exit with error code 1. -die() { - echo "[spack cc] ERROR: $*" - exit 1 -} - -# empty VARNAME -# Return whether the variable VARNAME is unset or set to the empty string. -empty() { - eval "test -z \"\${$1}\"" -} - -# setsep LISTNAME -# Set the global variable 'sep' to the separator for a list with name LISTNAME. -# There are three types of lists: -# 1. regular lists end with _list and are separated by $lsep -# 2. directory lists end with _dirs/_DIRS/PATH(S) and are separated by ':' -# 3. any other list is assumed to be separated by spaces: " " -setsep() { - case "$1" in - *_dirs|*_DIRS|*PATH|*PATHS) - sep=':' - ;; - *_list) - sep="$lsep" - ;; - *) - sep=" " - ;; - esac -} - -# prepend LISTNAME ELEMENT -# -# Prepend ELEMENT to the list stored in the variable LISTNAME. -# Handles empty lists and single-element lists. -prepend() { - varname="$1" - elt="$2" - - if empty "$varname"; then - eval "$varname=\"\${elt}\"" - else - # Get the appropriate separator for the list we're appending to. - setsep "$varname" - eval "$varname=\"\${elt}${sep}\${$varname}\"" - fi -} - -# append LISTNAME ELEMENT [SEP] -# -# Append ELEMENT to the list stored in the variable LISTNAME, -# assuming the list is separated by SEP. -# Handles empty lists and single-element lists. -append() { - varname="$1" - elt="$2" - - if empty "$varname"; then - eval "$varname=\"\${elt}\"" - else - # Get the appropriate separator for the list we're appending to. - setsep "$varname" - eval "$varname=\"\${$varname}${sep}\${elt}\"" - fi -} - -# extend LISTNAME1 LISTNAME2 [PREFIX] -# -# Append the elements stored in the variable LISTNAME2 -# to the list stored in LISTNAME1. -# If PREFIX is provided, prepend it to each element. -extend() { - # Figure out the appropriate IFS for the list we're reading. - setsep "$2" - if [ "$sep" != " " ]; then - IFS="$sep" - fi - eval "for elt in \${$2}; do append $1 \"$3\${elt}\"; done" - unset IFS -} - -# preextend LISTNAME1 LISTNAME2 [PREFIX] -# -# Prepend the elements stored in the list at LISTNAME2 -# to the list at LISTNAME1, preserving order. -# If PREFIX is provided, prepend it to each element. -preextend() { - # Figure out the appropriate IFS for the list we're reading. - setsep "$2" - if [ "$sep" != " " ]; then - IFS="$sep" - fi - - # first, reverse the list to prepend - _reversed_list="" - eval "for elt in \${$2}; do prepend _reversed_list \"$3\${elt}\"; done" - - # prepend reversed list to preextend in order - IFS="${lsep}" - for elt in $_reversed_list; do prepend "$1" "$3${elt}"; done - unset IFS -} - -execute() { - # dump the full command if the caller supplies SPACK_TEST_COMMAND=dump-args - if [ -n "${SPACK_TEST_COMMAND=}" ]; then - case "$SPACK_TEST_COMMAND" in - dump-args) - IFS="$lsep" - for arg in $full_command_list; do - echo "$arg" - done - unset IFS - exit - ;; - dump-env-*) - var=${SPACK_TEST_COMMAND#dump-env-} - eval "printf '%s\n' \"\$0: \$var: \$$var\"" - ;; - *) - die "Unknown test command: '$SPACK_TEST_COMMAND'" - ;; - esac - fi - - # - # Write the input and output commands to debug logs if it's asked for. - # - if [ "$SPACK_DEBUG" = TRUE ]; then - input_log="$SPACK_DEBUG_LOG_DIR/spack-cc-$SPACK_DEBUG_LOG_ID.in.log" - output_log="$SPACK_DEBUG_LOG_DIR/spack-cc-$SPACK_DEBUG_LOG_ID.out.log" - echo "[$mode] $command $input_command" >> "$input_log" - IFS="$lsep" - echo "[$mode] "$full_command_list >> "$output_log" - unset IFS - fi - - # Execute the full command, preserving spaces with IFS set - # to the alarm bell separator. - IFS="$lsep"; exec $full_command_list - exit -} - -# Fail with a clear message if the input contains any bell characters. -if eval "[ \"\${*#*${lsep}}\" != \"\$*\" ]"; then - die "Compiler command line contains our separator ('${lsep}'). Cannot parse." -fi - -# ensure required variables are set -for param in $params; do - if eval "test -z \"\${${param}:-}\""; then - die "Spack compiler must be run from Spack! Input '$param' is missing." - fi -done - -# eval this because SPACK_MANAGED_DIRS and SPACK_SYSTEM_DIRS are inputs we don't wanna loop over. -# moving the eval inside the function would eval it every call. -eval "\ -path_order() { -case \"\$1\" in - $SPACK_MANAGED_DIRS) return 0 ;; - $SPACK_SYSTEM_DIRS) return 2 ;; - /*) return 1 ;; -esac -} -" - -# path_list functions. Path_lists have 3 parts: spack_store_, and system_, -# which are used to prioritize paths when assembling the final command line. - -# init_path_lists LISTNAME -# Set , spack_store_, and system_ to "". -init_path_lists() { - eval "spack_store_$1=\"\"" - eval "$1=\"\"" - eval "system_$1=\"\"" -} - -# assign_path_lists LISTNAME1 LISTNAME2 -# Copy contents of LISTNAME2 into LISTNAME1, for each path_list prefix. -assign_path_lists() { - eval "spack_store_$1=\"\${spack_store_$2}\"" - eval "$1=\"\${$2}\"" - eval "system_$1=\"\${system_$2}\"" -} - -# append_path_lists LISTNAME ELT -# Append the provided ELT to the appropriate list, based on the result of path_order(). -append_path_lists() { - path_order "$2" - case $? in - 0) eval "append spack_store_$1 \"\$2\"" ;; - 1) eval "append $1 \"\$2\"" ;; - 2) eval "append system_$1 \"\$2\"" ;; - esac -} - -# Check if optional parameters are defined -# If we aren't asking for debug flags, don't add them -if [ -z "${SPACK_ADD_DEBUG_FLAGS:-}" ]; then - SPACK_ADD_DEBUG_FLAGS="false" -fi - -# SPACK_ADD_DEBUG_FLAGS must be true/false/custom -is_valid="false" -for param in "true" "false" "custom"; do - if [ "$param" = "$SPACK_ADD_DEBUG_FLAGS" ]; then - is_valid="true" - fi -done - -# Exit with error if we are given an incorrect value -if [ "$is_valid" = "false" ]; then - die "SPACK_ADD_DEBUG_FLAGS, if defined, must be one of 'true', 'false', or 'custom'." -fi - -# Figure out the type of compiler, the language, and the mode so that -# the compiler script knows what to do. -# -# Possible languages are C, C++, Fortran 77, and Fortran 90. -# 'command' is set based on the input command to $SPACK_[CC|CXX|F77|F90] -# -# 'mode' is set to one of: -# vcheck version check -# cpp preprocess -# cc compile -# as assemble -# ld link -# ccld compile & link - -# Note. SPACK_ALWAYS_XFLAGS are applied for all compiler invocations, -# including version checks (SPACK_XFLAGS variants are not applied -# for version checks). -command="${0##*/}" -comp="CC" -vcheck_flags="" -case "$command" in - cpp) - mode=cpp - debug_flags="-g" - vcheck_flags="${SPACK_ALWAYS_CPPFLAGS}" - ;; - cc|c89|c99|gcc|clang|armclang|icc|icx|pgcc|nvc|xlc|xlc_r|fcc|amdclang|cl.exe|craycc) - command="$SPACK_CC" - language="C" - comp="CC" - lang_flags=C - debug_flags="-g" - vcheck_flags="${SPACK_ALWAYS_CFLAGS}" - ;; - c++|CC|g++|clang++|armclang++|icpc|icpx|pgc++|nvc++|xlc++|xlc++_r|FCC|amdclang++|crayCC) - command="$SPACK_CXX" - language="C++" - comp="CXX" - lang_flags=CXX - debug_flags="-g" - vcheck_flags="${SPACK_ALWAYS_CXXFLAGS}" - ;; - ftn|f90|fc|f95|gfortran|flang|armflang|ifort|ifx|pgfortran|nvfortran|xlf90|xlf90_r|nagfor|frt|amdflang|crayftn) - command="$SPACK_FC" - language="Fortran 90" - comp="FC" - lang_flags=F - debug_flags="-g" - vcheck_flags="${SPACK_ALWAYS_FFLAGS}" - ;; - f77|xlf|xlf_r|pgf77) - command="$SPACK_F77" - language="Fortran 77" - comp="F77" - lang_flags=F - debug_flags="-g" - vcheck_flags="${SPACK_ALWAYS_FFLAGS}" - ;; - ld|ld.gold|ld.lld) - mode=ld - if [ -z "$SPACK_CC_RPATH_ARG" ]; then - comp="CXX" - fi - ;; - *) - die "Unknown compiler: $command" - ;; -esac - -# If any of the arguments below are present, then the mode is vcheck. -# In vcheck mode, nothing is added in terms of extra search paths or -# libraries. -if [ -z "$mode" ] || [ "$mode" = ld ]; then - for arg in "$@"; do - case $arg in - -v|-V|--version|-dumpversion) - mode=vcheck - break - ;; - esac - done -fi - -# Finish setting up the mode. -if [ -z "$mode" ]; then - mode=ccld - for arg in "$@"; do - if [ "$arg" = "-E" ]; then - mode=cpp - break - elif [ "$arg" = "-S" ]; then - mode=as - break - elif [ "$arg" = "-c" ]; then - mode=cc - break - fi - done -fi - -# This is needed to ensure we set RPATH instead of RUNPATH -# (or the opposite, depending on the configuration in config.yaml) -# -# Documentation on this mechanism is lacking at best. A few sources -# of information are (note that some of them take explicitly the -# opposite stance that Spack does): -# -# http://blog.qt.io/blog/2011/10/28/rpath-and-runpath/ -# https://wiki.debian.org/RpathIssue -# -# The only discussion I could find on enabling new dynamic tags by -# default on ld is the following: -# -# https://sourceware.org/ml/binutils/2013-01/msg00307.html -# -dtags_to_add="${SPACK_DTAGS_TO_ADD}" -dtags_to_strip="${SPACK_DTAGS_TO_STRIP}" - -linker_arg="ERROR: LINKER ARG WAS NOT SET, MAYBE THE PACKAGE DOES NOT DEPEND ON ${comp}?" -eval "linker_arg=\${SPACK_${comp}_LINKER_ARG:?${linker_arg}}" - -# Set up rpath variable according to language. -rpath="ERROR: RPATH ARG WAS NOT SET, MAYBE THE PACKAGE DOES NOT DEPEND ON ${comp}?" -eval "rpath=\${SPACK_${comp}_RPATH_ARG:?${rpath}}" - -# Dump the mode and exit if the command is dump-mode. -if [ "$SPACK_TEST_COMMAND" = "dump-mode" ]; then - echo "$mode" - exit -fi - -# -# Filter '.' and Spack environment directories out of PATH so that -# this script doesn't just call itself -# -new_dirs="" -IFS=':' -for dir in $PATH; do - addpath=true - for spack_env_dir in $SPACK_COMPILER_WRAPPER_PATH; do - case "${dir%%/}" in - "$spack_env_dir"|'.'|'') - addpath=false - break - ;; - esac - done - if [ $addpath = true ]; then - append new_dirs "$dir" - fi -done -unset IFS -export PATH="$new_dirs" - -if [ "$mode" = vcheck ]; then - full_command_list="$command" - args="$@" - extend full_command_list vcheck_flags - extend full_command_list args - execute -fi - -# Darwin's linker has a -r argument that merges object files together. -# It doesn't work with -rpath. -# This variable controls whether they are added. -add_rpaths=true -if [ "$mode" = ld ] || [ "$mode" = ccld ]; then - if [ "${SPACK_SHORT_SPEC#*darwin}" != "${SPACK_SHORT_SPEC}" ]; then - for arg in "$@"; do - if [ "$arg" = "-r" ]; then - if [ "$mode" = ld ] || [ "$mode" = ccld ]; then - add_rpaths=false - break - fi - elif [ "$arg" = "-Wl,-r" ] && [ "$mode" = ccld ]; then - add_rpaths=false - break - fi - done - fi -fi - -# Save original command for debug logging -input_command="$*" - -# -# Parse the command line arguments. -# -# We extract -L, -I, -isystem and -Wl,-rpath arguments from the -# command line and recombine them with Spack arguments later. We -# parse these out so that we can make sure that system paths come -# last, that package arguments come first, and that Spack arguments -# are injected properly. -# -# All other arguments, including -l arguments, are treated as -# 'other_args' and left in their original order. This ensures that -# --start-group, --end-group, and other order-sensitive flags continue to -# work as the caller expects. -# -# The libs variable is initialized here for completeness, and it is also -# used later to inject flags supplied via `ldlibs` on the command -# line. These come into the wrappers via SPACK_LDLIBS. - -# The loop below breaks up the command line into these lists of components. -# The lists are all bell-separated to be as flexible as possible, as their -# contents may come from the command line, from ' '-separated lists, -# ':'-separated lists, etc. - -parse_Wl() { - while [ $# -ne 0 ]; do - if [ "$wl_expect_rpath" = yes ]; then - append_path_lists return_rpath_dirs_list "$1" - wl_expect_rpath=no - else - case "$1" in - -rpath=*) - arg="${1#-rpath=}" - if [ -z "$arg" ]; then - shift; continue - fi - append_path_lists return_rpath_dirs_list "$arg" - ;; - --rpath=*) - arg="${1#--rpath=}" - if [ -z "$arg" ]; then - shift; continue - fi - append_path_lists return_rpath_dirs_list "$arg" - ;; - -rpath|--rpath) - wl_expect_rpath=yes - ;; - "$dtags_to_strip") - ;; - -Wl) - # Nested -Wl,-Wl means we're in NAG compiler territory. We don't support it. - return 1 - ;; - *) - append return_other_args_list "-Wl,$1" - ;; - esac - fi - shift - done -} - -categorize_arguments() { - - unset IFS - - return_other_args_list="" - return_isystem_was_used="" - - init_path_lists return_isystem_include_dirs_list - init_path_lists return_include_dirs_list - init_path_lists return_lib_dirs_list - init_path_lists return_rpath_dirs_list - - # Global state for keeping track of -Wl,-rpath -Wl,/path - wl_expect_rpath=no - - # Same, but for -Xlinker -rpath -Xlinker /path - xlinker_expect_rpath=no - - while [ $# -ne 0 ]; do - - # an RPATH to be added after the case statement. - rp="" - - # Multiple consecutive spaces in the command line can - # result in blank arguments - if [ -z "$1" ]; then - shift - continue - fi - - if [ -n "${SPACK_COMPILER_FLAGS_KEEP}" ] ; then - # NOTE: the eval is required to allow `|` alternatives inside the variable - eval "\ - case \"\$1\" in - $SPACK_COMPILER_FLAGS_KEEP) - append return_other_args_list \"\$1\" - shift - continue - ;; - esac - " - fi - # the replace list is a space-separated list of pipe-separated pairs, - # the first in each pair is the original prefix to be matched, the - # second is the replacement prefix - if [ -n "${SPACK_COMPILER_FLAGS_REPLACE}" ] ; then - for rep in ${SPACK_COMPILER_FLAGS_REPLACE} ; do - before=${rep%|*} - after=${rep#*|} - eval "\ - stripped=\"\${1##$before}\" - " - if [ "$stripped" = "$1" ] ; then - continue - fi - - replaced="$after$stripped" - - # it matched, remove it - shift - - if [ -z "$replaced" ] ; then - # completely removed, continue OUTER loop - continue 2 - fi - - # re-build argument list with replacement - set -- "$replaced" "$@" - done - fi - - case "$1" in - -isystem*) - arg="${1#-isystem}" - return_isystem_was_used=true - if [ -z "$arg" ]; then shift; arg="$1"; fi - append_path_lists return_isystem_include_dirs_list "$arg" - ;; - -I*) - arg="${1#-I}" - if [ -z "$arg" ]; then shift; arg="$1"; fi - append_path_lists return_include_dirs_list "$arg" - ;; - -L*) - arg="${1#-L}" - if [ -z "$arg" ]; then shift; arg="$1"; fi - append_path_lists return_lib_dirs_list "$arg" - ;; - -l*) - # -loopopt=0 is generated erroneously in autoconf <= 2.69, - # and passed by ifx to the linker, which confuses it with a - # library. Filter it out. - # TODO: generalize filtering of args with an env var, so that - # TODO: we do not have to special case this here. - if { [ "$mode" = "ccld" ] || [ $mode = "ld" ]; } \ - && [ "$1" != "${1#-loopopt}" ]; then - shift - continue - fi - arg="${1#-l}" - if [ -z "$arg" ]; then shift; arg="$1"; fi - append return_other_args_list "-l$arg" - ;; - -Wl,*) - IFS=, - if ! parse_Wl ${1#-Wl,}; then - append return_other_args_list "$1" - fi - unset IFS - ;; - -Xlinker) - shift - if [ $# -eq 0 ]; then - # -Xlinker without value: let the compiler error about it. - append return_other_args_list -Xlinker - xlinker_expect_rpath=no - break - elif [ "$xlinker_expect_rpath" = yes ]; then - # Register the path of -Xlinker -rpath -Xlinker - append_path_lists return_rpath_dirs_list "$1" - xlinker_expect_rpath=no - else - case "$1" in - -rpath=*) - arg="${1#-rpath=}" - append_path_lists return_rpath_dirs_list "$arg" - ;; - --rpath=*) - arg="${1#--rpath=}" - append_path_lists return_rpath_dirs_list "$arg" - ;; - -rpath|--rpath) - xlinker_expect_rpath=yes - ;; - "$dtags_to_strip") - ;; - *) - append return_other_args_list -Xlinker - append return_other_args_list "$1" - ;; - esac - fi - ;; - "$dtags_to_strip") - ;; - *) - # if mode is not ld, we can just add to other args - if [ "$mode" != "ld" ]; then - append return_other_args_list "$1" - shift - continue - fi - - # if we're in linker mode, we need to parse raw RPATH args - case "$1" in - -rpath=*) - arg="${1#-rpath=}" - append_path_lists return_rpath_dirs_list "$arg" - ;; - --rpath=*) - arg="${1#--rpath=}" - append_path_lists return_rpath_dirs_list "$arg" - ;; - -rpath|--rpath) - if [ $# -eq 1 ]; then - # -rpath without value: let the linker raise an error. - append return_other_args_list "$1" - break - fi - shift - append_path_lists return_rpath_dirs_list "$1" - ;; - *) - append return_other_args_list "$1" - ;; - esac - ;; - esac - shift - done - - # We found `-Xlinker -rpath` but no matching value `-Xlinker /path`. Just append - # `-Xlinker -rpath` again and let the compiler or linker handle the error during arg - # parsing. - if [ "$xlinker_expect_rpath" = yes ]; then - append return_other_args_list -Xlinker - append return_other_args_list -rpath - fi - - # Same, but for -Wl flags. - if [ "$wl_expect_rpath" = yes ]; then - append return_other_args_list -Wl,-rpath - fi -} - -categorize_arguments "$@" - -assign_path_lists isystem_include_dirs_list return_isystem_include_dirs_list -assign_path_lists include_dirs_list return_include_dirs_list -assign_path_lists lib_dirs_list return_lib_dirs_list -assign_path_lists rpath_dirs_list return_rpath_dirs_list - -isystem_was_used="$return_isystem_was_used" -other_args_list="$return_other_args_list" - -# -# Add flags from Spack's cppflags, cflags, cxxflags, fcflags, fflags, and -# ldflags. We stick to the order that gmake puts the flags in by default. -# -# See the gmake manual on implicit rules for details: -# https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html -# -flags_list="" - -# Add debug flags -if [ "${SPACK_ADD_DEBUG_FLAGS}" = "true" ]; then - extend flags_list debug_flags - -# If a custom flag is requested, derive from environment -elif [ "$SPACK_ADD_DEBUG_FLAGS" = "custom" ]; then - extend flags_list SPACK_DEBUG_FLAGS -fi - -spack_flags_list="" - -# Fortran flags come before CPPFLAGS -case "$mode" in - cc|ccld) - case $lang_flags in - F) - extend spack_flags_list SPACK_ALWAYS_FFLAGS - extend spack_flags_list SPACK_FFLAGS - ;; - esac - ;; -esac - -# C preprocessor flags come before any C/CXX flags -case "$mode" in - cpp|as|cc|ccld) - extend spack_flags_list SPACK_ALWAYS_CPPFLAGS - extend spack_flags_list SPACK_CPPFLAGS - ;; -esac - - -# Add C and C++ flags -case "$mode" in - cc|ccld) - case $lang_flags in - C) - extend spack_flags_list SPACK_ALWAYS_CFLAGS - extend spack_flags_list SPACK_CFLAGS - preextend flags_list SPACK_TARGET_ARGS_CC - ;; - CXX) - extend spack_flags_list SPACK_ALWAYS_CXXFLAGS - extend spack_flags_list SPACK_CXXFLAGS - preextend flags_list SPACK_TARGET_ARGS_CXX - ;; - F) - preextend flags_list SPACK_TARGET_ARGS_FORTRAN - ;; - esac - ;; -esac - -# Linker flags -case "$mode" in - ccld) - extend spack_flags_list SPACK_LDFLAGS - ;; -esac - -IFS="$lsep" - categorize_arguments $spack_flags_list -unset IFS - -assign_path_lists spack_flags_isystem_include_dirs_list return_isystem_include_dirs_list -assign_path_lists spack_flags_include_dirs_list return_include_dirs_list -assign_path_lists spack_flags_lib_dirs_list return_lib_dirs_list -assign_path_lists spack_flags_rpath_dirs_list return_rpath_dirs_list - -spack_flags_isystem_was_used="$return_isystem_was_used" -spack_flags_other_args_list="$return_other_args_list" - - -# On macOS insert headerpad_max_install_names linker flag -if [ "$mode" = ld ] || [ "$mode" = ccld ]; then - if [ "${SPACK_SHORT_SPEC#*darwin}" != "${SPACK_SHORT_SPEC}" ]; then - case "$mode" in - ld) - append flags_list "-headerpad_max_install_names" ;; - ccld) - append flags_list "-Wl,-headerpad_max_install_names" ;; - esac - fi -fi - -if [ "$mode" = ccld ] || [ "$mode" = ld ]; then - if [ "$add_rpaths" != "false" ]; then - # Append RPATH directories. Note that in the case of the - # top-level package these directories may not exist yet. For dependencies - # it is assumed that paths have already been confirmed. - extend spack_store_rpath_dirs_list SPACK_STORE_RPATH_DIRS - extend rpath_dirs_list SPACK_RPATH_DIRS - fi -fi - -if [ "$mode" = ccld ] || [ "$mode" = ld ]; then - extend spack_store_lib_dirs_list SPACK_STORE_LINK_DIRS - extend lib_dirs_list SPACK_LINK_DIRS -fi - -libs_list="" - -# add RPATHs if we're in in any linking mode -case "$mode" in - ld|ccld) - # Set extra RPATHs - extend lib_dirs_list SPACK_COMPILER_EXTRA_RPATHS - if [ "$add_rpaths" != "false" ]; then - extend rpath_dirs_list SPACK_COMPILER_EXTRA_RPATHS - fi - - # Set implicit RPATHs - if [ "$add_rpaths" != "false" ]; then - extend rpath_dirs_list SPACK_COMPILER_IMPLICIT_RPATHS - fi - - # Add SPACK_LDLIBS to args - for lib in $SPACK_LDLIBS; do - append libs_list "${lib#-l}" - done - ;; -esac - -case "$mode" in - cpp|cc|as|ccld) - if [ "$spack_flags_isystem_was_used" = "true" ] || [ "$isystem_was_used" = "true" ]; then - extend spack_store_isystem_include_dirs_list SPACK_STORE_INCLUDE_DIRS - extend isystem_include_dirs_list SPACK_INCLUDE_DIRS - else - extend spack_store_include_dirs_list SPACK_STORE_INCLUDE_DIRS - extend include_dirs_list SPACK_INCLUDE_DIRS - fi - ;; -esac - -# -# Finally, reassemble the command line. -# -args_list="$flags_list" - -# Include search paths partitioned by (in store, non-sytem, system) -# NOTE: adding ${lsep} to the prefix here turns every added element into two -extend args_list spack_store_spack_flags_include_dirs_list -I -extend args_list spack_store_include_dirs_list -I - -extend args_list spack_flags_include_dirs_list -I -extend args_list include_dirs_list -I - -extend args_list spack_store_spack_flags_isystem_include_dirs_list "-isystem${lsep}" -extend args_list spack_store_isystem_include_dirs_list "-isystem${lsep}" - -extend args_list spack_flags_isystem_include_dirs_list "-isystem${lsep}" -extend args_list isystem_include_dirs_list "-isystem${lsep}" - -extend args_list system_spack_flags_include_dirs_list -I -extend args_list system_include_dirs_list -I - -extend args_list system_spack_flags_isystem_include_dirs_list "-isystem${lsep}" -extend args_list system_isystem_include_dirs_list "-isystem${lsep}" - -# Library search paths partitioned by (in store, non-sytem, system) -extend args_list spack_store_spack_flags_lib_dirs_list "-L" -extend args_list spack_store_lib_dirs_list "-L" - -extend args_list spack_flags_lib_dirs_list "-L" -extend args_list lib_dirs_list "-L" - -extend args_list system_spack_flags_lib_dirs_list "-L" -extend args_list system_lib_dirs_list "-L" - -# RPATHs arguments -rpath_prefix="" -case "$mode" in - ccld) - if [ -n "$dtags_to_add" ] ; then - append args_list "$linker_arg$dtags_to_add" - fi - rpath_prefix="$rpath" - ;; - ld) - if [ -n "$dtags_to_add" ] ; then - append args_list "$dtags_to_add" - fi - rpath_prefix="-rpath${lsep}" - ;; -esac - -# if mode is ccld or ld, extend RPATH lists with the prefix determined above -if [ -n "$rpath_prefix" ]; then - extend args_list spack_store_spack_flags_rpath_dirs_list "$rpath_prefix" - extend args_list spack_store_rpath_dirs_list "$rpath_prefix" - - extend args_list spack_flags_rpath_dirs_list "$rpath_prefix" - extend args_list rpath_dirs_list "$rpath_prefix" - - extend args_list system_spack_flags_rpath_dirs_list "$rpath_prefix" - extend args_list system_rpath_dirs_list "$rpath_prefix" -fi - -# Other arguments from the input command -extend args_list other_args_list -extend args_list spack_flags_other_args_list - -# Inject SPACK_LDLIBS, if supplied -extend args_list libs_list "-l" - -full_command_list="$command" -extend full_command_list args_list - -# prepend the ccache binary if we're using ccache -if [ -n "$SPACK_CCACHE_BINARY" ]; then - case "$lang_flags" in - C|CXX) # ccache only supports C languages - prepend full_command_list "${SPACK_CCACHE_BINARY}" - # workaround for stage being a temp folder - # see #3761#issuecomment-294352232 - export CCACHE_NOHASHDIR=yes - ;; - esac -fi - -execute diff --git a/repos/spack_repo/builtin/packages/compiler_wrapper/package.py b/repos/spack_repo/builtin/packages/compiler_wrapper/package.py index b3c21b360c6..eef1d7e1ad5 100644 --- a/repos/spack_repo/builtin/packages/compiler_wrapper/package.py +++ b/repos/spack_repo/builtin/packages/compiler_wrapper/package.py @@ -27,20 +27,19 @@ class CompilerWrapper(Package): """ homepage = "https://github.com/spack/spack" - url = f"file:///{pathlib.PurePath(__file__).parent}/cc.sh" + url = "https://github.com/spack/compiler-wrapper/releases/download/v1.0/compiler-wrapper-1.0.tar.gz" # FIXME (compiler as nodes): use a different tag, since this is only to exclude # this node from auto-generated rules tags = ["runtime"] + maintainers("haampie") + license("Apache-2.0 OR MIT") if sys.platform != "win32": - version( - "1.0", - sha256="c65a9d2b2d4eef67ab5cb0684d706bb9f005bb2be94f53d82683d7055bdb837c", - expand=False, - ) + version("1.1.0", sha256="a07b35081d14b0729090bc1e5790a5dda2d5b997e064c62da39a1224ee249b2a") + version("1.0", sha256="ac876f7600fa6cb0c74ae172ef1c61661aacff03a6befbc7d87e092e2f2233f9") else: version("1.0") has_code = False @@ -173,6 +172,10 @@ def setup_dependent_build_environment( compiler = getattr(compiler_pkg, attr_name) env.set(spack_var_name, compiler) + # -frandom-seed= is needed for deterministic builds with GCC + if compiler_pkg.name == "gcc" and self.spec.satisfies("@1.1:"): + env.set(f"SPACK_{wrapper_var_name}_HAS_FRANDOM_SEED", "1") + if language not in compiler_pkg.compiler_wrapper_link_paths: continue diff --git a/repos/spack_repo/builtin/packages/compiz/package.py b/repos/spack_repo/builtin/packages/compiz/package.py deleted file mode 100644 index 01c6436e3ec..00000000000 --- a/repos/spack_repo/builtin/packages/compiz/package.py +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage -from spack_repo.builtin.build_systems.xorg import XorgPackage - -from spack.package import * - - -class Compiz(AutotoolsPackage, XorgPackage): - """compiz - OpenGL window and compositing manager. - - Compiz is an OpenGL compositing manager that use - GLX_EXT_texture_from_pixmap for binding redirected top-level - windows to texture objects. It has a flexible plug-in system - and it is designed to run well on most graphics hardware.""" - - homepage = "http://www.compiz.org/" - xorg_mirror_path = "app/compiz-0.7.8.tar.gz" - - license("MIT") - - version("0.7.8", sha256="b46f52b776cc78e85357a07688d04b36ec19c65eadeaf6f6cfcca7b8515e6503") - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - depends_on("libxcb") - depends_on("libxcomposite") - depends_on("libxfixes") - depends_on("libxdamage") - depends_on("libxrandr") - depends_on("libxinerama") - depends_on("libice") - depends_on("libsm") - depends_on("libxml2") - depends_on("libxslt") - - # TODO: add dependencies - # libstartup-notification-1.0 >= 0.7 - depends_on("libxrender") - depends_on("libpng") - depends_on("glib") - depends_on("gconf") diff --git a/repos/spack_repo/builtin/packages/composable_kernel/package.py b/repos/spack_repo/builtin/packages/composable_kernel/package.py index f7d21f7d3d1..23b7cd3330c 100644 --- a/repos/spack_repo/builtin/packages/composable_kernel/package.py +++ b/repos/spack_repo/builtin/packages/composable_kernel/package.py @@ -2,24 +2,40 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.cmake import CMakePackage -from spack_repo.builtin.build_systems.rocm import ROCmPackage +from spack_repo.builtin.build_systems.cmake import CMakePackage, generator +from spack_repo.builtin.build_systems.rocm import ROCmLibrary, ROCmPackage from spack.package import * -class ComposableKernel(CMakePackage): +class ComposableKernel(ROCmLibrary, CMakePackage): """Composable Kernel: Performance Portable Programming Model for Machine Learning Tensor Operators.""" homepage = "https://github.com/ROCm/composable_kernel" - git = "https://github.com/ROCm/composable_kernel.git" - url = "https://github.com/ROCm/composable_kernel/archive/refs/tags/rocm-6.4.1.tar.gz" - maintainers("srekolam", "afzpatel") + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] + maintainers("srekolam", "afzpatel") + libraries = ["libdevice_contraction_operations.a", "libdevice_conv_operations.a"] license("MIT") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/composable_kernel/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="e1174a4b6faa12ef31dac0324547fd49aca09fee380bd89ecd49a44bb34b72cc") + version("7.1.0", sha256="03c7fffcad2aed373486315266fdf9dd400a280d383b543ff48ebd3acb3f985f") + version("7.0.2", sha256="b7293e3451750f606ab845585b3dd4eb4e185d4dda4a22290d73e8874a45a26b") + version("7.0.0", sha256="20593d704608f39edfdfe0075ca030471b7df32ae594a5f4d8762a59bb012108") + version("6.4.3", sha256="70d9a2da51d7967e95329884dbd0154753b3ffaecd7272501c59e951bb5160cc") + version("6.4.2", sha256="6e2acd889d7558f3be88915f249496394a690dd5d7675c36e4053e3856b51567") version("6.4.1", sha256="6db4d36673da6506ca52625b3bd40c29d3b376d31a224fd221ffe60cf97564bf") version("6.4.0", sha256="8dbfea0bdc4950ca60e8d1ea43edf1f515c4a34e47ead951415c49a0669a3baf") version("6.3.3", sha256="b7102efba044455416a6127af1951019fe8365a653ea7eb0b1d83bb4542c9309") @@ -36,9 +52,6 @@ class ComposableKernel(CMakePackage): version("6.0.0", sha256="a8f736f2f2a8afa4cddd06301205be27774d85f545429049b4a2bbbe6fcd67df") version("5.7.1", sha256="75f66e023c2e31948e91fa26366eaeac72d871fc2e5188361d4465179f13876e") version("5.7.0", sha256="d9624dbaef04e0138f9f73596c49b4fe9ded69974bae7236354baa32649bf21a") - with default_args(deprecated=True): - version("5.6.1", commit="f5ec04f091fa5c48c67d7bacec36a414d0be06a5") - version("5.6.0", commit="f5ec04f091fa5c48c67d7bacec36a414d0be06a5") amdgpu_targets = ROCmPackage.amdgpu_targets variant( @@ -60,7 +73,18 @@ class ComposableKernel(CMakePackage): depends_on("pkgconfig", type="build") depends_on("cmake@3.16:", type="build") + generator("ninja") + for ver in [ + "7.2.3", + "7.2.1", + "7.2.0", + "7.1.1", + "7.1.0", + "7.0.2", + "7.0.0", + "6.4.3", + "6.4.2", "6.4.1", "6.4.0", "6.3.3", @@ -77,10 +101,8 @@ class ComposableKernel(CMakePackage): "6.0.0", "5.7.1", "5.7.0", - "5.6.1", - "5.6.0", ]: - depends_on("hip@" + ver, when="@" + ver) + depends_on("hip+rocm@" + ver, when="@" + ver) depends_on("llvm-amdgpu@" + ver, when="@" + ver) depends_on("rocm-cmake@" + ver, when="@" + ver, type="build") @@ -88,6 +110,13 @@ class ComposableKernel(CMakePackage): # https://github.com/ROCm/composable_kernel/commit/959073842c0db839d45d565eb260fd018c996ce4 patch("0001-mark-kernels-maybe-unused.patch", when="@6.2") + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/composablekernel" + else: + return "." + def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("CXX", self.spec["hip"].hipcc) @@ -107,18 +136,12 @@ def cmake_args(self): args.append(self.define("INSTANCES_ONLY", "ON")) if self.run_tests: args.append(self.define("BUILD_TESTING", "ON")) - elif self.spec.satisfies("@:6.1"): + else: + args.append(self.define("BUILD_TESTING", "OFF")) + if self.spec.satisfies("@:6.1"): args.append(self.define("INSTANCES_ONLY", "ON")) if self.spec.satisfies("@:5.7"): args.append(self.define("CMAKE_CXX_FLAGS", "-O3")) if self.spec.satisfies("@6.2:"): args.append(self.define("BUILD_DEV", "OFF")) return args - - def build(self, spec, prefix): - with working_dir(self.build_directory): - # only instances is necessary to build and install - if self.spec.satisfies("@5.6.0:"): - make() - else: - make("instances") diff --git a/repos/spack_repo/builtin/packages/composyx/package.py b/repos/spack_repo/builtin/packages/composyx/package.py index d6863c044a5..ddb5c45e343 100644 --- a/repos/spack_repo/builtin/packages/composyx/package.py +++ b/repos/spack_repo/builtin/packages/composyx/package.py @@ -13,10 +13,12 @@ class Composyx(CMakePackage): homepage = "https://gitlab.inria.fr/composyx/composyx" git = "https://gitlab.inria.fr/composyx/composyx.git" - url = "https://gitlab.inria.fr/api/v4/projects/52455/packages/generic/source/v1.3.1/composyx-1.3.1.tar.gz" + url = "https://gitlab.inria.fr/api/v4/projects/52455/packages/generic/source/v1.4.1/composyx-1.4.1.tar.gz" maintainers("fpruvost") version("main", branch="main", submodules=True) + version("1.4.1", sha256="7b51c1686aebefc8c2d704e07a13083a44d5862c09c7b3892d6982c6e133f300") + version("1.4.0", sha256="8b8e29b80284c65ca0c18774628ddaeca503e8b0345e295c1f1f823607395818") version("1.3.1", sha256="738a69c5df2d146c3cba56df6730478b3d206b9dde898e6cc759c4cb5930aea7") version("1.0.1", sha256="d97936e3b297fde435c165cbe29cb39e5d88ae368be451b1c45b8ee51486782c") diff --git a/repos/spack_repo/builtin/packages/conda4aarch64/package.py b/repos/spack_repo/builtin/packages/conda4aarch64/package.py index c0a61dc533c..ec90d32dc33 100644 --- a/repos/spack_repo/builtin/packages/conda4aarch64/package.py +++ b/repos/spack_repo/builtin/packages/conda4aarch64/package.py @@ -25,7 +25,7 @@ class Conda4aarch64(Package): def install(self, spec, prefix): conda_script = self.stage.archive_file - bash = which("bash") + bash = which("bash", required=True) bash(conda_script, "-b", "-f", "-p", self.prefix) def setup_run_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/conduit/package.py b/repos/spack_repo/builtin/packages/conduit/package.py index 7606082bdf6..c65675cf240 100644 --- a/repos/spack_repo/builtin/packages/conduit/package.py +++ b/repos/spack_repo/builtin/packages/conduit/package.py @@ -5,9 +5,13 @@ import glob import os import shutil -import socket -from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cached_cmake import ( + CachedCMakePackage, + cmake_cache_option, + cmake_cache_path, + cmake_cache_string, +) from spack.package import * @@ -26,7 +30,7 @@ def cmake_cache_entry(name, value, vtype=None, force=False): return 'set({0} "{1}" CACHE {2} ""{3})\n\n'.format(name, value, vtype, force_str) -class Conduit(CMakePackage): +class Conduit(CachedCMakePackage): """Conduit is an open source project from Lawrence Livermore National Laboratory that provides an intuitive model for describing hierarchical scientific data in C++, C, Fortran, and Python. It is used for data @@ -38,12 +42,16 @@ class Conduit(CMakePackage): tags = ["radiuss", "e4s"] license("BSD-3-Clause") + test_requires_compiler = True version("develop", branch="develop", submodules=True) # note: the main branch in conduit was renamed to develop, this next entry # 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") version("0.9.3", sha256="2968fa8df6e6c43800c019a008ef064ee9995dc2ff448b72dc5017c188a2e6d4") version("0.9.2", sha256="45d5a4eccd0fc978d153d29c440c53c483b8f29dfcf78ddcc9aa15c59b257177") @@ -146,6 +154,8 @@ class Conduit(CMakePackage): depends_on("py-numpy", when="+python", type=("build", "run")) depends_on("py-mpi4py", when="+python+mpi", type=("build", "run")) depends_on("py-pip", when="+python", type="build") + depends_on("py-wheel", when="+python", type="build") + depends_on("py-setuptools", when="+python", type="build") ####################### # I/O Packages @@ -246,178 +256,18 @@ def url_for_version(self, version): return "https://github.com/LLNL/conduit/releases/download/v{0}/conduit-v{1}-src-with-blt.tar.gz".format( v, v ) - return url - #################################################################### - # Note: cmake, build, and install stages are handled by CMakePackage - #################################################################### - - # provide cmake args (pass host config as cmake cache file) - def cmake_args(self): - host_config = self._get_host_config_path(self.spec) - options = [] - options.extend(["-C", host_config]) - return options - - @run_after("build") - @on_package_attributes(run_tests=True) - def build_test(self): - with working_dir("spack-build"): - print("Running Conduit Unit Tests...") - make("test") - - # Copy the generated host-config to install directory for downstream use - @run_before("install") - def copy_host_config(self): - src = self._get_host_config_path(self.spec) - dst = join_path(self.spec.prefix, os.path.basename(src)) - copy(src, dst) - - @run_after("install") - @on_package_attributes(run_tests=True) - def check_install(self): - """ - Checks the spack install of conduit using conduit's - using-with-cmake example - """ - print("Checking Conduit installation...") - spec = self.spec - install_prefix = spec.prefix - example_src_dir = join_path(install_prefix, "examples", "conduit", "using-with-cmake") - print("Checking using-with-cmake example...") - with working_dir("check-conduit-using-with-cmake-example", create=True): - cmake_args = ["-DCONDUIT_DIR={0}".format(install_prefix), example_src_dir] - cmake(*cmake_args) - make() - example = Executable("./conduit_example") - example() - print("Checking using-with-make example...") - example_src_dir = join_path(install_prefix, "examples", "conduit", "using-with-make") - example_files = glob.glob(join_path(example_src_dir, "*")) - with working_dir("check-conduit-using-with-make-example", create=True): - for example_file in example_files: - shutil.copy(example_file, ".") - make("CONDUIT_DIR={0}".format(install_prefix)) - example = Executable("./conduit_example") - example() - - def _get_host_config_path(self, spec): - sys_type = spec.architecture - # if on llnl systems, we can use the SYS_TYPE - if "SYS_TYPE" in env: - sys_type = env["SYS_TYPE"] - - compiler_str = f"{self['c'].name}-{self['c'].version}" - host_config_path = ( - f"{socket.gethostname()}-{sys_type}-{compiler_str}" f"-conduit-{spec.dag_hash()}.cmake" - ) - dest_dir = self.stage.source_path - host_config_path = os.path.abspath(join_path(dest_dir, host_config_path)) - return host_config_path - - @run_before("cmake") - def hostconfig(self): - """ - This method creates a 'host-config' file that specifies - all of the options used to configure and build conduit. - - For more details about 'host-config' files see: - http://software.llnl.gov/conduit/building.html - """ + ############################## + # Init compiler config entries + ############################## + def initconfig_compiler_entries(self): spec = self.spec - if not os.path.isdir(spec.prefix): - os.mkdir(spec.prefix) - - ####################### - # Compiler Info - ####################### - c_compiler = env["SPACK_CC"] - cpp_compiler = env["SPACK_CXX"] - if spec.satisfies("+fortran"): - f_compiler = env["SPACK_FC"] - else: - f_compiler = None - - ####################################################################### - # Directly fetch the names of the actual compilers to create a - # 'host config' file that works outside of the spack install env. - ####################################################################### - - sys_type = spec.architecture - # if on llnl systems, we can use the SYS_TYPE - if "SYS_TYPE" in env: - sys_type = env["SYS_TYPE"] - - # are we on a specific machine - on_blueos = "blueos" in sys_type - - ############################################## - # Find and record what CMake is used - ############################################## - - cmake_exe = spec["cmake"].command.path - - # get hostconfig name - host_cfg_fname = self._get_host_config_path(spec) - - cfg = open(host_cfg_fname, "w") - cfg.write("##################################\n") - cfg.write("# spack generated host-config\n") - cfg.write("##################################\n") - cfg.write("# {0}-{1}\n".format(sys_type, spec.compiler)) - cfg.write("##################################\n\n") - - # Include path to cmake for reference - cfg.write("# cmake from spack \n") - cfg.write("# cmake executable path: %s\n\n" % cmake_exe) - - ####################### - # Compiler Settings - ####################### - - cfg.write("#######\n") - cfg.write("# using %s compiler spec\n" % spec.compiler) - cfg.write("#######\n\n") - cfg.write("# c compiler used by spack\n") - cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler)) - cfg.write("# cpp compiler used by spack\n") - cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler)) - - cfg.write("# fortran compiler used by spack\n") - if spec.satisfies("+fortran"): - cfg.write(cmake_cache_entry("ENABLE_FORTRAN", "ON")) - cfg.write(cmake_cache_entry("CMAKE_Fortran_COMPILER", f_compiler)) - else: - cfg.write(cmake_cache_entry("ENABLE_FORTRAN", "OFF")) + entries = super().initconfig_compiler_entries() + f_compiler = getattr(self.compiler, "fc", None) + cpp_compiler = getattr(self.compiler, "cxx", "") + rpaths = list(self.compiler.extra_rpaths) - if spec.satisfies("+shared"): - cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "ON")) - else: - cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "OFF")) - - # use global spack compiler flags - cppflags = " ".join(spec.compiler_flags["cppflags"]) - if cppflags: - # avoid always ending up with ' ' with no flags defined - cppflags += " " - cflags = cppflags + " ".join(spec.compiler_flags["cflags"]) - if cflags: - cfg.write(cmake_cache_entry("CMAKE_C_FLAGS", cflags)) - cxxflags = cppflags + " ".join(spec.compiler_flags["cxxflags"]) - if cxxflags: - cfg.write(cmake_cache_entry("CMAKE_CXX_FLAGS", cxxflags)) - fflags = " ".join(spec.compiler_flags["fflags"]) - if self.spec.satisfies("%cce"): - fflags += " -ef" - if fflags: - cfg.write(cmake_cache_entry("CMAKE_Fortran_FLAGS", fflags)) - - # Add various rpath linker flags - rpaths = [] - if self.compiler.extra_rpaths: - rpaths += self.compiler.extra_rpaths - - # Note: This is not needed if we add `extra_rpaths` to this compiler spec case + # Note: This is not needed if we add `extra_rpaths` to this compiler spec case if (f_compiler is not None) and ("gfortran" in f_compiler) and ("clang" in cpp_compiler): libdir = os.path.join(os.path.dirname(os.path.dirname(f_compiler)), "lib") for _libpath in [libdir, libdir + "64"]: @@ -427,215 +277,146 @@ def hostconfig(self): linkerflags = "" for rpath in rpaths: linkerflags += "-Wl,-rpath,{} ".format(rpath) - cfg.write(cmake_cache_entry("CMAKE_EXE_LINKER_FLAGS", linkerflags)) + entries.append( + cmake_cache_string( + "CMAKE_EXE_LINKER_FLAGS", "${CMAKE_EXE_LINKER_FLAGS} " + linkerflags, force=True + ) + ) if spec.satisfies("+shared"): - cfg.write(cmake_cache_entry("CMAKE_SHARED_LINKER_FLAGS", linkerflags)) - - ####################### - # BLT - ####################### - cfg.write(cmake_cache_entry("BLT_SOURCE_DIR", spec["blt"].prefix)) - - ####################### - # Examples/Utilities - ####################### - if spec.satisfies("+examples"): - cfg.write(cmake_cache_entry("ENABLE_EXAMPLES", "ON")) - else: - cfg.write(cmake_cache_entry("ENABLE_EXAMPLES", "OFF")) + entries.append( + cmake_cache_string( + "CMAKE_SHARED_LINKER_FLAGS", + "${CMAKE_SHARED_LINKER_FLAGS} " + linkerflags, + force=True, + ) + ) - if spec.satisfies("+utilities"): - cfg.write(cmake_cache_entry("ENABLE_UTILS", "ON")) - else: - cfg.write(cmake_cache_entry("ENABLE_UTILS", "OFF")) + if spec.satisfies("%cce"): + entries.append( + cmake_cache_string("CMAKE_Fortran_FLAGS", "${CMAKE_Fortran_FLAGS} -ef", force=True) + ) - ####################### - # Unit Tests - ####################### - if spec.satisfies("+test"): - cfg.write(cmake_cache_entry("ENABLE_TESTS", "ON")) - else: - cfg.write(cmake_cache_entry("ENABLE_TESTS", "OFF")) + sys_type = os.environ.get("SYS_TYPE", str(spec.architecture)) + on_blueos = "blueos" in sys_type # extra fun for blueos if on_blueos and "+fortran" in spec and (f_compiler is not None) and ("xlf" in f_compiler): - # Fix missing std linker flag in xlc compiler flags = "-WF,-C! -qxlf2003=polymorphic" - cfg.write(cmake_cache_entry("BLT_FORTRAN_FLAGS", flags)) + entries.append(cmake_cache_string("BLT_FORTRAN_FLAGS", flags)) # Grab lib directory for the current fortran compiler libdir = os.path.join(os.path.dirname(os.path.dirname(f_compiler)), "lib") rpaths = "-Wl,-rpath,{0} -Wl,-rpath,{0}64".format(libdir) flags = "${BLT_EXE_LINKER_FLAGS} -lstdc++ " + rpaths - cfg.write(cmake_cache_entry("BLT_EXE_LINKER_FLAGS", flags)) + entries.append(cmake_cache_string("BLT_EXE_LINKER_FLAGS", flags)) if spec.satisfies("+shared"): flags = "${CMAKE_SHARED_LINKER_FLAGS} " + rpaths - cfg.write(cmake_cache_entry("CMAKE_SHARED_LINKER_FLAGS", flags, force=True)) + entries.append(cmake_cache_string("CMAKE_SHARED_LINKER_FLAGS", flags, force=True)) + return entries - ####################### - # Python - ####################### + ######################### + # Init mpi config entries + ######################### + def initconfig_mpi_entries(self): + spec = self.spec + entries = super().initconfig_mpi_entries() + entries.append(cmake_cache_option("ENABLE_MPI", spec.satisfies("+mpi"))) + if spec.satisfies("+mpi"): + entries.append(cmake_cache_option("ENABLE_FIND_MPI", spec.satisfies("+blt_find_mpi"))) + return entries + + ###################################### + # Init package-specific config entries + ###################################### + def initconfig_package_entries(self): + spec = self.spec + entries = super().initconfig_package_entries() - cfg.write("# Python Support\n") + entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec["blt"].prefix)) + + entries.append(cmake_cache_option("BUILD_SHARED_LIBS", spec.satisfies("+shared"))) + entries.append(cmake_cache_option("ENABLE_EXAMPLES", spec.satisfies("+examples"))) + entries.append(cmake_cache_option("ENABLE_UTILS", spec.satisfies("+utilities"))) + entries.append(cmake_cache_option("ENABLE_FORTRAN", spec.satisfies("+fortran"))) + entries.append(cmake_cache_option("ENABLE_PYTHON", spec.satisfies("+python"))) if spec.satisfies("+python"): - cfg.write("# Enable python module builds\n") - cfg.write(cmake_cache_entry("ENABLE_PYTHON", "ON")) - cfg.write("# python from spack \n") - cfg.write(cmake_cache_entry("PYTHON_EXECUTABLE", python.path)) + entries.append(cmake_cache_path("PYTHON_EXECUTABLE", spec["python"].command.path)) try: - cfg.write("# python module install dir\n") - cfg.write(cmake_cache_entry("PYTHON_MODULE_INSTALL_PREFIX", python_platlib)) + entries.append(cmake_cache_path("PYTHON_MODULE_INSTALL_PREFIX", python_platlib)) except NameError: - # spack's won't exist in a subclass pass - else: - cfg.write(cmake_cache_entry("ENABLE_PYTHON", "OFF")) + enable_docs = False if spec.satisfies("+doc"): if spec.satisfies("+python"): - cfg.write(cmake_cache_entry("ENABLE_DOCS", "ON")) - - cfg.write("# sphinx from spack \n") + enable_docs = True sphinx_build_exe = join_path(spec["py-sphinx"].prefix.bin, "sphinx-build") - cfg.write(cmake_cache_entry("SPHINX_EXECUTABLE", sphinx_build_exe)) + entries.append(cmake_cache_path("SPHINX_EXECUTABLE", sphinx_build_exe)) if spec.satisfies("+doxygen"): - cfg.write("# doxygen from uberenv\n") doxygen_exe = spec["doxygen"].command.path - cfg.write(cmake_cache_entry("DOXYGEN_EXECUTABLE", doxygen_exe)) - else: - cfg.write(cmake_cache_entry("ENABLE_DOCS", "OFF")) + entries.append(cmake_cache_path("DOXYGEN_EXECUTABLE", doxygen_exe)) + entries.append(cmake_cache_option("ENABLE_DOCS", enable_docs)) - ####################### - # MPI - ####################### - - cfg.write("# MPI Support\n") - - if spec.satisfies("+mpi"): - mpicc_path = spec["mpi"].mpicc - mpicxx_path = spec["mpi"].mpicxx - mpifc_path = spec["mpi"].mpifc if "+fortran" in spec else None - # if we are using compiler wrappers on cray systems - # use those for mpi wrappers, b/c spec['mpi'].mpicxx - # etc make return the spack compiler wrappers - # which can trip up mpi detection in CMake 3.14 - if spec["mpi"].mpicc == spack_cc: - mpicc_path = c_compiler - mpicxx_path = cpp_compiler - mpifc_path = f_compiler - cfg.write(cmake_cache_entry("ENABLE_MPI", "ON")) - cfg.write(cmake_cache_entry("MPI_C_COMPILER", mpicc_path)) - cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", mpicxx_path)) - if spec.satisfies("+blt_find_mpi"): - cfg.write(cmake_cache_entry("ENABLE_FIND_MPI", "ON")) - else: - cfg.write(cmake_cache_entry("ENABLE_FIND_MPI", "OFF")) - if spec.satisfies("+fortran"): - cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", mpifc_path)) - - mpiexe_bin = join_path(spec["mpi"].prefix.bin, "mpiexec") - if os.path.isfile(mpiexe_bin): - # starting with cmake 3.10, FindMPI expects MPIEXEC_EXECUTABLE - # vs the older versions which expect MPIEXEC - if self.spec["cmake"].satisfies("@3.10:"): - cfg.write(cmake_cache_entry("MPIEXEC_EXECUTABLE", mpiexe_bin)) - else: - cfg.write(cmake_cache_entry("MPIEXEC", mpiexe_bin)) - else: - cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF")) - - ####################### - # ZFP - ####################### - cfg.write("# zfp from spack \n") - if spec.satisfies("+zfp"): - cfg.write(cmake_cache_entry("ZFP_DIR", spec["zfp"].prefix)) - else: - cfg.write("# zfp not built by spack \n") - - ####################### - # Caliper - ####################### - cfg.write("# caliper from spack \n") - if spec.satisfies("+caliper"): - cfg.write(cmake_cache_entry("CALIPER_DIR", spec["caliper"].prefix)) - cfg.write(cmake_cache_entry("ADIAK_DIR", spec["adiak"].prefix)) - else: - cfg.write("# caliper not built by spack \n") - - ####################################################################### - # I/O Packages - ####################################################################### - - cfg.write("# I/O Packages\n\n") - - ####################### - # HDF5 - ####################### - - cfg.write("# hdf5 from spack \n") + entries.append(cmake_cache_option("ENABLE_TESTS", spec.satisfies("+test"))) if spec.satisfies("+hdf5"): - cfg.write(cmake_cache_entry("HDF5_DIR", spec["hdf5"].prefix)) + entries.append(cmake_cache_path("HDF5_DIR", spec["hdf5"].prefix)) if spec.satisfies("^zlib-api"): # HDF5 depends on zlib - cfg.write(cmake_cache_entry("ZLIB_DIR", spec["zlib-api"].prefix)) - else: - cfg.write("# hdf5 not built by spack \n") - - ####################### - # h5z-zfp - ####################### - - cfg.write("# h5z-zfp from spack \n") - - if spec.satisfies("+hdf5+zfp"): - cfg.write(cmake_cache_entry("H5ZZFP_DIR", spec["h5z-zfp"].prefix)) - else: - cfg.write("# h5z-zfp not built by spack \n") - - ####################### - # Silo - ####################### - - cfg.write("# silo from spack \n") - + entries.append(cmake_cache_path("ZLIB_DIR", spec["zlib-api"].prefix)) if spec.satisfies("+silo"): - cfg.write(cmake_cache_entry("SILO_DIR", spec["silo"].prefix)) - else: - cfg.write("# silo not built by spack \n") - - ####################### - # ADIOS - ####################### - - cfg.write("# ADIOS from spack \n") - + entries.append(cmake_cache_path("SILO_DIR", spec["silo"].prefix)) if spec.satisfies("+adios"): - cfg.write(cmake_cache_entry("ADIOS_DIR", spec["adios"].prefix)) - else: - cfg.write("# adios not built by spack \n") + entries.append(cmake_cache_path("ADIOS_DIR", spec["adios"].prefix)) + if spec.satisfies("+zfp"): + entries.append(cmake_cache_path("ZFP_DIR", spec["zfp"].prefix)) + if spec.satisfies("+hdf5+zfp"): + entries.append(cmake_cache_path("H5ZZFP_DIR", spec["h5z-zfp"].prefix)) + if spec.satisfies("+parmetis"): + entries.append(cmake_cache_path("PARMETIS_DIR", spec["parmetis"].prefix)) + entries.append(cmake_cache_path("METIS_DIR", spec["metis"].prefix)) + if spec.satisfies("+caliper"): + entries.append(cmake_cache_path("CALIPER_DIR", spec["caliper"].prefix)) + entries.append(cmake_cache_path("ADIAK_DIR", spec["adiak"].prefix)) - ####################### - # Parmetis - ####################### + return entries - cfg.write("# parmetis from spack \n") + # cmake args handled by CachedCMakePackage + def cmake_args(self): + return [] - if spec.satisfies("+parmetis"): - cfg.write(cmake_cache_entry("METIS_DIR", spec["metis"].prefix)) - cfg.write(cmake_cache_entry("PARMETIS_DIR", spec["parmetis"].prefix)) - else: - cfg.write("# parmetis not built by spack \n") - - ####################### - # Finish host-config - ####################### - cfg.write("##################################\n") - cfg.write("# end spack generated host-config\n") - cfg.write("##################################\n") - cfg.close() - - host_cfg_fname = os.path.abspath(host_cfg_fname) - tty.info("spack generated conduit host-config file: " + host_cfg_fname) + @run_after("build") + @on_package_attributes(run_tests=True) + def build_test(self): + with working_dir(self.build_directory): + tty.msg("Running Conduit Unit Tests...") + make("test") + + @run_after("install") + @on_package_attributes(run_tests=True) + def check_install(self): + """ + Checks the spack install of conduit using conduit's + using-with-cmake example + """ + print("Checking Conduit installation...") + spec = self.spec + install_prefix = spec.prefix + example_src_dir = join_path(install_prefix, "examples", "conduit", "using-with-cmake") + print("Checking using-with-cmake example...") + with working_dir("check-conduit-using-with-cmake-example", create=True): + cmake_args = ["-DCONDUIT_DIR={0}".format(install_prefix), example_src_dir] + cmake(*cmake_args) + make() + example = Executable("./conduit_example") + example() + print("Checking using-with-make example...") + example_src_dir = join_path(install_prefix, "examples", "conduit", "using-with-make") + example_files = glob.glob(join_path(example_src_dir, "*")) + with working_dir("check-conduit-using-with-make-example", create=True): + for example_file in example_files: + shutil.copy(example_file, ".") + make("CONDUIT_DIR={0}".format(install_prefix)) + example = Executable("./conduit_example") + example() diff --git a/repos/spack_repo/builtin/packages/conquest/package.py b/repos/spack_repo/builtin/packages/conquest/package.py index 45bfe96eec0..58929aa44eb 100644 --- a/repos/spack_repo/builtin/packages/conquest/package.py +++ b/repos/spack_repo/builtin/packages/conquest/package.py @@ -64,7 +64,9 @@ def build_targets(self): return ["Conquest"] def edit(self, spec, prefix): - fflags = "-O3 -fallow-argument-mismatch" + fflags = "-O3" + if self.spec.satisfies("%gcc@10:"): + fflags += " -fallow-argument-mismatch" ldflags = "" if self.spec.satisfies("+openmp"): @@ -96,6 +98,7 @@ def edit(self, spec, prefix): defs_file.filter(".*BLAS=.*", f"BLAS= {lapack_ld} {blas_ld}") defs_file.filter(".*FFT_LIB=.*", f"FFT_LIB={fftw_ld}") defs_file.filter(".*XC_LIB=.*", f"XC_LIB={libxc_ld} -lxcf90 -lxc") + defs_file.filter("-lscalapack", "") if self.spec.satisfies("+openmp"): defs_file.filter("OMP_DUMMY = DUMMY", "OMP_DUMMY = ") diff --git a/repos/spack_repo/builtin/packages/corenlp/package.py b/repos/spack_repo/builtin/packages/corenlp/package.py index 977dc2f110e..254ed493f5c 100644 --- a/repos/spack_repo/builtin/packages/corenlp/package.py +++ b/repos/spack_repo/builtin/packages/corenlp/package.py @@ -37,6 +37,7 @@ class Corenlp(Package): ) depends_on("ant", type="build") + depends_on("java@8:", type="build") def install(self, spec, prefix): ant = self.spec["ant"].command diff --git a/repos/spack_repo/builtin/packages/coreutils/package.py b/repos/spack_repo/builtin/packages/coreutils/package.py index 6bf6a1cfdd7..5affaeae10c 100644 --- a/repos/spack_repo/builtin/packages/coreutils/package.py +++ b/repos/spack_repo/builtin/packages/coreutils/package.py @@ -26,6 +26,8 @@ class Coreutils(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") + version("9.10", sha256="16535a9adf0b10037364e2d612aad3d9f4eca3a344949ced74d12faf4bd51d25") + version("9.7", sha256="e8bb26ad0293f9b5a1fc43fb42ba970e312c66ce92c1b0b16713d7500db251bf") version("9.5", sha256="cd328edeac92f6a665de9f323c93b712af1858bc2e0d88f3f7100469470a1b8a") version("9.4", sha256="ea613a4cf44612326e917201bbbcdfbd301de21ffc3b59b6e5c07e040b275e52") version("9.3", sha256="adbcfcfe899235b71e8768dcf07cd532520b7f54f9a8064843f8d199a904bbaa") @@ -39,7 +41,10 @@ class Coreutils(AutotoolsPackage, GNUMirrorPackage): version("8.26", sha256="155e94d748f8e2bc327c66e0cbebdb8d6ab265d2f37c3c928f7bf6c3beba9a8e") version("8.23", sha256="ec43ca5bcfc62242accb46b7f121f6b684ee21ecd7d075059bf650ff9e37b82d") - depends_on("c", type="build") # generated + depends_on("c", type="build") + + # https://cgit.git.savannah.gnu.org/cgit/coreutils.git/commit/?id=0d77e1b7ea2840dbc10994f61894f1a3f64b46f9 + depends_on("openssl@3:", type="link", when="@8.32:") variant( "gprefix", @@ -60,7 +65,7 @@ class Coreutils(AutotoolsPackage, GNUMirrorPackage): def configure_args(self): spec = self.spec - configure_args = [] + configure_args = ["--disable-nls"] if spec.satisfies("platform=darwin"): if self.spec.satisfies("+gprefix"): configure_args.append("--program-prefix=g") diff --git a/repos/spack_repo/builtin/packages/cosign/package.py b/repos/spack_repo/builtin/packages/cosign/package.py index 0fafd4374d9..47169456e5a 100644 --- a/repos/spack_repo/builtin/packages/cosign/package.py +++ b/repos/spack_repo/builtin/packages/cosign/package.py @@ -32,7 +32,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.prepend_path("GOPATH", self.stage.path) def install(self, spec, prefix): - go = which("go") + go = which("go", required=True) go("build", "-o", "cosign", os.path.join("cmd", "cosign", "main.go")) mkdirp(prefix.bin) install("cosign", prefix.bin) 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/cosma/package.py b/repos/spack_repo/builtin/packages/cosma/package.py index 6f29b3028a2..e89342b7fb1 100644 --- a/repos/spack_repo/builtin/packages/cosma/package.py +++ b/repos/spack_repo/builtin/packages/cosma/package.py @@ -13,7 +13,7 @@ class Cosma(CMakePackage): Distributed Communication-Optimal Matrix-Matrix Multiplication Library """ - maintainers("haampie", "kabicm", "teonnik", "simonpintarelli", "mtaillefumier") + maintainers("haampie", "kabicm", "simonpintarelli", "mtaillefumier") homepage = "https://github.com/eth-cscs/COSMA" url = "https://github.com/eth-cscs/COSMA/archive/refs/tags/v2.6.6.tar.gz" git = "https://github.com/eth-cscs/COSMA.git" @@ -23,6 +23,11 @@ class Cosma(CMakePackage): # note: The default archives produced with github do not have the archives # of the submodules. version("master", branch="master", submodules=False) + version("2.8.4", sha256="b478cc239a99baf6fdf889d123308a6b01a4521330bdb3f4def457feb0f7dfa0") + version("2.8.2", sha256="bcf42558c1cdc35e91f662a9e87ae606f22d0c1aaf0cb763a6e4385c412c8f6b") + version("2.8.1", sha256="563bb0785dca32ede780a05ad424db9b6d7f473a909ca423931b96204e2b5d9c") + version("2.8.0", sha256="fd5a0b64c2858858eac46d1a897d51d844cf68f303b480f2e2b3f5a04eb83b5c") + version("2.7.1", sha256="ef9acaecf0c073cb3358ea6fed07388811ba2f47469ba3803eefff956403f50e") version("2.7.0", sha256="f4775d18379539d7bb5053bff8acb4e13d6ed31a9677f498d9099a7500488789") version("2.6.6", sha256="1604be101e77192fbcc5551236bc87888d336e402f5409bbdd9dea900401cc37") version("2.6.5", sha256="10d9b7ecc1ce44ec5b9e0c0bf89278a63029912ec3ea99661be8576b553ececf") @@ -48,6 +53,12 @@ class Cosma(CMakePackage): variant("apps", default=False, description="Build miniapp") variant("profiling", default=False, description="Enable profiling") variant("gpu_direct", default=False, description="GPU aware MPI") + variant( + "unified_memory", + default=False, + description="Enable unified memory support", + when="@2.8.2:+rocm", + ) with when("+cuda"): variant("nccl", default=False, description="Use cuda nccl") @@ -84,6 +95,8 @@ class Cosma(CMakePackage): depends_on("semiprof", when="+profiling") depends_on("costa+profiling", when="+profiling") + depends_on("costa@2.3:", when="@2.8:") + patch("fj-ssl2.patch", when="^fujitsu-ssl2") def setup_build_environment(self, env: EnvironmentModifications) -> None: @@ -136,6 +149,7 @@ def cmake_args(self): self.define_from_variant("COSMA_WITH_RCCL", "rccl"), self.define_from_variant("COSMA_WITH_GPU_AWARE_MPI", "gpu_direct"), self.define_from_variant("COSMA_WITH_PROFILING", "profiling"), + self.define_from_variant("COSMA_USE_UNIFIED_MEMORY", "unified_memory"), self.define("COSMA_WITH_BENCHMARKS", False), self.define("COSMA_BLAS", self.cosma_blas_cmake_arg()), self.define("COSMA_SCALAPACK", self.cosma_scalapack_cmake_arg()), diff --git a/repos/spack_repo/builtin/packages/cosmomc/package.py b/repos/spack_repo/builtin/packages/cosmomc/package.py index cb90cb0ad33..cf9acb41934 100644 --- a/repos/spack_repo/builtin/packages/cosmomc/package.py +++ b/repos/spack_repo/builtin/packages/cosmomc/package.py @@ -69,7 +69,7 @@ def install(self, spec, prefix): except OSError: pass if spec.satisfies("+planck"): - os.symlink(join_path(os.environ["CLIK_DATA"], "plc_2.0"), clikdir) + symlink(join_path(os.environ["CLIK_DATA"], "plc_2.0"), clikdir) else: os.environ.pop("CLIK_DATA", "") os.environ.pop("CLIK_PATH", "") @@ -80,12 +80,10 @@ def install(self, spec, prefix): # rewrite the Makefile to use Spack's options all the time if spec.satisfies("%gcc"): if not spec.satisfies("%gcc@6:"): - raise InstallError( - "When using GCC, " "CosmoMC requires version gcc@6: for building" - ) + raise InstallError("When using GCC, CosmoMC requires version gcc@6: for building") choosecomp = "ifortErr=1" # choose gfortran elif spec.satisfies("%intel"): - if not spec.satifies("%intel@14:"): + if not spec.satisfies("%intel@14:"): raise InstallError( "When using the Intel compiler, " "CosmoMC requires version intel@14: for building" @@ -180,7 +178,7 @@ def check_install(self): cosmomc = Executable(exe) with working_dir("spack-check", create=True): for entry in ["camb", "chains", "data", "paramnames", "planck_covmats"]: - os.symlink(join_path(prefix.share, "cosmomc", entry), entry) + symlink(join_path(prefix.share, "cosmomc", entry), entry) inifile = join_path(prefix.share, "cosmomc", "test.ini") cosmomc(*(args + [inifile])) if spec.satisfies("+planck"): diff --git a/repos/spack_repo/builtin/packages/costa/package.py b/repos/spack_repo/builtin/packages/costa/package.py index 61d1561b51a..aeedac38677 100644 --- a/repos/spack_repo/builtin/packages/costa/package.py +++ b/repos/spack_repo/builtin/packages/costa/package.py @@ -14,7 +14,7 @@ class Costa(CMakePackage): Based on the paper: https://arxiv.org/abs/2106.06601 """ - maintainers("haampie", "kabicm", "RMeli", "mtaillefumier") + maintainers("kabicm", "RMeli", "mtaillefumier", "simonpintarelli") homepage = "https://github.com/eth-cscs/COSTA" url = "https://github.com/eth-cscs/COSTA/archive/refs/tags/v2.2.4.tar.gz" git = "https://github.com/eth-cscs/COSTA.git" @@ -25,6 +25,13 @@ class Costa(CMakePackage): # note: The default archives produced with github do not have the archives # of the submodules. version("master", branch="master", submodules=True) + version("2.3.2", sha256="2beb8b30ab641693094efe0015e5cb7393c25cef4753deb67493e17d05f9a797") + version( + "2.3.1", + sha256="ab3a30165a821c77d34013ef8d01a9be5fefcc804e85c1e338ac970122ae938b", + deprecated=True, + ) + version("2.3.0", sha256="0413311a2821d4cd1f3f026672a75a5b5a2956f61305c07d7fc14565a126b517") version("2.2.4", sha256="2155af3696cd0db1d18f9da7325de6fbcd87833c5b9e62445229e17151f7fd0b") version("2.2.3", sha256="e0b74851603b9da1a104dfaf50504c8af748c73999610a37f9384ed0c23ae5df") version("2.2.2", sha256="e87bc37aad14ac0c5922237be5d5390145c9ac6aef0350ed17d86cb2d994e67c") @@ -48,6 +55,7 @@ class Costa(CMakePackage): depends_on("cxxopts", when="+apps") depends_on("cxxopts", when="+tests") depends_on("semiprof", when="+profiling") + depends_on("googletest", when="@2.3.1: +tests") def url_for_version(self, version): if version == Version("2.0"): diff --git a/repos/spack_repo/builtin/packages/costo/package.py b/repos/spack_repo/builtin/packages/costo/package.py index e664b013f3d..254daf3d38e 100644 --- a/repos/spack_repo/builtin/packages/costo/package.py +++ b/repos/spack_repo/builtin/packages/costo/package.py @@ -22,13 +22,12 @@ class Costo(CMakePackage): version("0.0.8", tag="v0.0.8", preferred=True) version("0.0.5", tag="v0.0.5") version("develop", branch="devel") - version("main", branch="main", deprecated=True) variant("shared", default=True, description="Build shared library") variant("tests", default=False, description="Enable testing") - depends_on("mpi", type=all) - depends_on("python@3.10:", type=all) + depends_on("mpi", type=("build", "link", "run")) + depends_on("python@3.10:", type=("build", "link", "run")) depends_on("py-non-regression-test-tools", type="build") depends_on("py-pyvista", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/covfie/package.py b/repos/spack_repo/builtin/packages/covfie/package.py index 56ff7c5cf36..9334621056f 100644 --- a/repos/spack_repo/builtin/packages/covfie/package.py +++ b/repos/spack_repo/builtin/packages/covfie/package.py @@ -23,6 +23,13 @@ class Covfie(CMakePackage, CudaPackage, ROCmPackage): license("MPL-2.0") version("main", branch="main") + version("0.15.6", sha256="ed22408f981692398408ffe04ff8e6230c022288552a83dbc2ad34b96003a84e") + version("0.15.5", sha256="1b2b34e3a968f24a2c1adb495bff5b8f943c0f72c729c199d8881cb4d0fc2dc0") + version("0.15.4", sha256="9a69f57c4a48acefedc7e8bc2cb38f688584a0535d79bb7eab9c0cc5c8c7290c") + version("0.15.3", sha256="72da1147c44731caf9163f3931de78d7605a44f056f22a2f6ea024ad02a1ba71") + version("0.15.2", sha256="6eff65e05118d3007c689e3529a62bb1674348ac1b0f0f32afd953c62d1b8890") + version("0.15.1", sha256="809f1207ee9c96c6065fc9da796abfe9bdeab1bb987526da787f26b1d628ce7a") + version("0.15.0", sha256="16a0e781ae5c38585573316813f57562752734639c8c24193f37a8588e120bd7") version("0.14.0", sha256="b4d8afa712c6fc0e2bc6474367d65fad652864b18d0255c5f2c18fd4c6943993") version("0.13.0", sha256="e9cd0546c7bc9539f440273bbad303c97215ccd87403cedb4aa387a313938d57") version("0.12.1", sha256="c33d7707ee30ab5fa8df686a780600343760701023ac0b23355627e1f2f044de") @@ -36,12 +43,16 @@ class Covfie(CMakePackage, CudaPackage, ROCmPackage): depends_on("cmake@3.21:", type="build", when="@0.11:") depends_on("cmake@3.18:", type="build") + # requirements for examples + depends_on("boost@1.71: +log +program_options", type="test") + def cmake_args(self): args = [ self.define("COVFIE_PLATFORM_CPU", True), self.define_from_variant("COVFIE_PLATFORM_CUDA", "cuda"), self.define_from_variant("COVFIE_PLATFORM_HIP", "rocm"), self.define("COVFIE_QUIET", True), + self.define("COVFIE_BUILD_EXAMPLES", self.run_tests), self.define("COVFIE_BUILD_TESTS", self.run_tests), ] diff --git a/repos/spack_repo/builtin/packages/cp2k/package.py b/repos/spack_repo/builtin/packages/cp2k/package.py index 9d3754c0c04..9ff9a5257e7 100644 --- a/repos/spack_repo/builtin/packages/cp2k/package.py +++ b/repos/spack_repo/builtin/packages/cp2k/package.py @@ -24,6 +24,7 @@ "gfx90a": "Mi250", "gfx90a:xnack-": "Mi250", "gfx90a:xnack+": "Mi250", + "gfx942": "Mi300", } @@ -33,19 +34,25 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage): periodic, material, crystal, and biological systems """ - build_system(conditional("cmake", when="@2023.2:"), "makefile", default="cmake") + build_system( + conditional("cmake", when="@2023.2:"), + conditional("makefile", when="@:2025.2"), + default="cmake", + ) homepage = "https://www.cp2k.org" - url = "https://github.com/cp2k/cp2k/releases/download/v3.0.0/cp2k-3.0.tar.bz2" + url = "https://github.com/cp2k/cp2k/releases/download/v2025.2/cp2k-2025.2.tar.bz2" git = "https://github.com/cp2k/cp2k.git" list_url = "https://github.com/cp2k/cp2k/releases" - maintainers("dev-zero", "mtaillefumier", "RMeli", "abussy") + maintainers("dev-zero", "mtaillefumier", "RMeli", "abussy", "hfp") tags = ["e4s"] license("GPL-2.0-or-later") + version("2026.1", sha256="4364c74bcffaa474bc234e11686b09550e4d06932acf2147a341e4f7679dd88e") + version("2025.2", sha256="c8392a4e123304644ec8d241443796277c6ed7ae977452317e779f3c387c2e19") version("2025.1", sha256="65c8ad5488897b0f995919b9fa77f2aba4b61677ba1e3c19bb093d5c08a8ce1d") version("2024.3", sha256="a6eeee773b6b1fb417def576e4049a89a08a0ed5feffcd7f0b33c7d7b48f19ba") version("2024.2", sha256="cc3e56c971dee9e89b705a1103765aba57bf41ad39a11c89d3de04c8b8cdf473") @@ -58,7 +65,7 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage): version("8.2", sha256="2e24768720efed1a5a4a58e83e2aca502cd8b95544c21695eb0de71ed652f20a") version("8.1", sha256="7f37aead120730234a60b2989d0547ae5e5498d93b1e9b5eb548c041ee8e7772") version("7.1", sha256="ccd711a09a426145440e666310dd01cc5772ab103493c4ae6a3470898cd0addb") - version("master", branch="master", submodules="True") + version("master", branch="master", submodules=True) generator("ninja") @@ -70,6 +77,7 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage): values=("libxsmm", "libsmm", "blas"), description="Library for small matrix multiplications", ) + variant("opencl", default=False, description="Enable OpenCL backend") variant("plumed", default=False, description="Enable PLUMED support") variant( "libint", default=True, description="Use libint, required for HFX (and possibly others)" @@ -115,21 +123,36 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage): " are enabled", ) variant("pytorch", default=False, description="Enable libtorch support") - variant("quip", default=False, description="Enable quip support") + variant( + "openpmd-api", + default=False, + description="Enable openPMD support", + when="@2026.2: build_system=cmake", + ) + variant("quip", default=False, when="@:2025.2", description="Enable quip support") variant("dftd4", when="@2024.2:", default=False, description="Enable DFT-D4 support") variant("mpi_f08", default=False, description="Use MPI F08 module", when="+mpi") variant("smeagol", default=False, description="Enable libsmeagol support", when="@2025.2:") + variant("dbm_gpu", default=True, description="Enable DBM GPU backend", when="@2025.2:") + variant("grid_gpu", default=True, description="Enable grid GPU backend", when="@2025.2:") + variant( + "grid_gpu", default=False, description="Enable grid GPU backend", when="@2025.2: +opencl" + ) variant( "pw_gpu", default=True, description="Enable FFT calculations on GPU", when="@2025.2: +cuda" ) - variant("grid_gpu", default=True, description="Enable grid GPU backend", when="@2025.2:") - variant("dbm_gpu", default=True, description="Enable DBM GPU backend", when="@2025.2:") variant( "pw_gpu", default=False, description="Enable FFT calculations on GPU", when="@2025.2: +rocm", ) + variant( + "pw_gpu", + default=False, + description="Enable FFT calculations on GPU", + when="@2025.2: +opencl", + ) variant( "hip_backend_cuda", default=False, @@ -169,8 +192,11 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage): ) variant("vdwxc", default=False, description="Enable VDW support in SIRIUS.", when="+sirius") - variant("deepmd", default=False, description="Enable DeepMD-kit support") + variant("tblite", default=False, description="Enable tblite support", when="@2025.2:") + variant("nlcg", default=False, description="Enable nlcg support in sirius", when="+sirius") + variant("vcsqnm", default=False, description="Enable VCSQNM support in sirius", when="+sirius") + conflicts("+deepmd", msg="DeepMD-kit is not yet available in Spack") with when("+cuda"): @@ -222,8 +248,8 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage): depends_on("greenx", when="+greenx") depends_on("hdf5+hl+fortran", when="+hdf5") depends_on("trexio", when="+trexio") - depends_on("libvdwxc", when="+vdwxc") + depends_on("tblite build_system=cmake", when="+tblite") # Force openmp propagation on some providers of blas / fftw-api with when("+openmp"): depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw") @@ -231,21 +257,33 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage): depends_on("cray-fftw+openmp", when="^[virtuals=fftw-api] cray-fftw") depends_on("armpl-gcc threads=openmp", when="^[virtuals=blas] armpl-gcc") depends_on("openblas threads=openmp", when="^[virtuals=blas] openblas") + depends_on("intel-oneapi-mkl threads=openmp", when="^[virtuals=fftw-api] intel-oneapi-mkl") + depends_on( + "intel-oneapi-mkl+gfortran threads=openmp", + when="^[virtuals=blas] intel-oneapi-mkl %gcc", + ) + depends_on("intel-oneapi-mkl threads=openmp", when="^[virtuals=blas] intel-oneapi-mkl") # The Cray compiler wrappers will automatically add libsci_mp with # -fopenmp. Since CP2K unconditionally links blas/lapack/scalapack # we have to be consistent. depends_on("cray-libsci+openmp", when="^[virtuals=blas] cray-libsci") with when("smm=libxsmm"): - depends_on("libxsmm~header-only") # require libxsmm-1.11+ since 1.10 can leak file descriptors in Fortran depends_on("libxsmm@1.11:") depends_on("libxsmm@1.17:", when="@9.1:") - # build needs to be fixed for libxsmm@2 once it is released - depends_on("libxsmm@:1") # use pkg-config (support added in libxsmm-1.10) to link to libxsmm depends_on("pkgconfig", type="build") + # Several packages provide "opencl" (incl. ICD/loader), e.g., "cuda" + with when("+opencl"): + depends_on("opencl", when="+opencl") + opencl_loader_header_version = "2022.10.24" + depends_on(f"opencl-c-headers@{opencl_loader_header_version}:") + requires(f"%opencl=opencl-icd-loader@{opencl_loader_header_version}:") + # OpenCL backend implementation relies on LIBXSMM + requires("smm=libxsmm") + with when("+libint"): depends_on("pkgconfig", type="build", when="@7.0:") for lmax in HFX_LMAX_RANGE: @@ -274,6 +312,7 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage): depends_on("mpi@3:", when="@2023.1:") depends_on("scalapack") depends_on("mpich+fortran", when="^[virtuals=mpi] mpich") + depends_on("intel-oneapi-mkl +cluster", when="^[virtuals=scalapack] intel-oneapi-mkl") conflicts("~mpi_f08", when="^mpich@4.1:") with when("+cosma"): @@ -334,29 +373,38 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage): # like ELPA, SCALAPACK are independent and Spack will ensure that # a consistent/compatible combination is pulled into the dependency graph. with when("+sirius"): - depends_on("sirius+fortran+shared") + depends_on("sirius+fortran+shared+scalapack") depends_on("sirius+cuda", when="+cuda") depends_on("sirius+rocm", when="+rocm") depends_on("sirius+openmp", when="+openmp") depends_on("sirius~openmp", when="~openmp") depends_on("sirius@7.3:", when="@9.1") - depends_on("sirius@7.4:7.5", when="@2023.2") + depends_on("sirius@7.4:", when="@2023.2") depends_on("sirius@7.5:", when="@2024.1:") - depends_on("sirius@7.6:7.7 +pugixml", when="@2024.2:") - depends_on("sirius@7.7: +pugixml", when="@2025.2:") + depends_on("sirius@7.6:+pugixml", when="@2024.2:") + depends_on("sirius@7.7:+pugixml", when="@2025.2:") depends_on("sirius+vdwxc", when="+vdwxc") + depends_on("sirius+nlcglib", when="@2025.2:+nlcg") + depends_on("sirius+vcsqnm", when="@2025.2:+vcsqnm") + depends_on("sirius@7.8.1:+dftd3+dftd4", when="@2025.2:+dftd4") + depends_on("sirius@7.5.0:+dlaf", when="+dlaf") with when("+libvori"): depends_on("libvori@201219:", when="@8.1") depends_on("libvori@210412:", when="@8.2:") depends_on("libvori@220621:", when="@2023.1:") + with when("+openpmd-api"): + depends_on("openpmd-api@0.16.1:") + # the bundled libcusmm uses numpy in the parameter prediction (v7+) # which is written using Python 3 depends_on("py-numpy", when="@7:+cuda") depends_on("python@3.6:", when="@7:+cuda") depends_on("py-fypp") + depends_on("py-torch", when="+pytorch") + depends_on("spglib", when="+spglib") depends_on("dftd4@3.6.0: build_system=cmake", when="+dftd4") @@ -366,10 +414,13 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage): # DBCSR as external dependency depends_on("dbcsr@2.6: ~examples") + depends_on("dbcsr@2.8:", when="@2025.1:") depends_on("dbcsr+openmp", when="+openmp") + depends_on("dbcsr+opencl", when="+opencl") depends_on("dbcsr+mpi", when="+mpi") - depends_on("dbcsr+cuda", when="+cuda") depends_on("dbcsr+rocm", when="+rocm") + depends_on("dbcsr+cuda", when="+cuda") + depends_on("dbcsr smm=libxsmm", when="smm=libxsmm") depends_on("dbcsr smm=blas", when="smm=blas") @@ -397,7 +448,14 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage): # versions. Instead just mark all unsupported cuda archs as conflicting. supported_cuda_arch_list = ("35", "37", "60", "70", "80", "90") - supported_rocm_arch_list = ("gfx906", "gfx908", "gfx90a", "gfx90a:xnack-", "gfx90a:xnack+") + supported_rocm_arch_list = ( + "gfx906", + "gfx908", + "gfx90a", + "gfx90a:xnack-", + "gfx90a:xnack+", + "gfx942", + ) cuda_msg = "cp2k only supports cuda_arch {0}".format(supported_cuda_arch_list) rocm_msg = "cp2k only supports amdgpu_target {0}".format(supported_rocm_arch_list) @@ -461,6 +519,14 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage): # https://github.com/electronic-structure/SIRIUS/pull/1048 patch("sirius-api-7.7.0.patch", when="@2024.2:2025.1 ^sirius@7.7.0") + # Fix missing S in data/BASIS_MOLOPT_UZH + # https://github.com/cp2k/cp2k/pull/4140 + patch( + "https://github.com/cp2k/cp2k/commit/da03128481adf8f78a8a04ebeae0490480c03b89.patch?full_index=1", + sha256="0d542c414216866953c95e642d2590b3d313717dfaebbf12cfafedbdd3bf54a3", + when="@=2025.1", + ) + def patch(self): # Patch for an undefined constant due to incompatible changes in ELPA if self.spec.satisfies("@9.1:2022.2 +elpa"): @@ -472,6 +538,9 @@ def patch(self): ) # Patch for resolving .mod file conflicts in ROCm by implementing 'USE, INTRINSIC' + # This patch triggers compilation errors on some systems as rocm install these + # modules files in rocm/include/llvm and this directory is given to gcc + if self.spec.satisfies("+rocm"): for directory, subdirectory, files in os.walk(os.getcwd()): for i in files: @@ -494,7 +563,7 @@ def url_for_version(self, version): class MakefileBuilder(makefile.MakefileBuilder): def edit(self, pkg, spec, prefix): - pkgconf = which("pkg-config") + pkgconf = which("pkg-config", required=True) fftw = spec["fftw-api:openmp" if "+openmp" in spec else "fftw-api"] fftw_header_dir = fftw.headers.directories[0] @@ -507,7 +576,8 @@ def edit(self, pkg, spec, prefix): optimization_flags = { "gcc": ["-O2", "-funroll-loops", "-ftree-vectorize"], - "intel": ["-O2", "-pc64", "-unroll"], + "intel-oneapi-compilers": ["-O2", "-fp-model precise"], + "intel": ["-g", "-O2", "-fp-model precise"], "nvhpc": ["-fast"], "cce": ["-O2"], "xl": ["-O3"], @@ -545,10 +615,8 @@ def edit(self, pkg, spec, prefix): # C99-style for-loops with inline definition of iterating variable. cflags.append(pkg.compiler.c99_flag) - if spec.satisfies("%intel"): - cflags.append("-fp-model precise") - cxxflags.append("-fp-model precise") - fcflags += ["-fp-model precise", "-heap-arrays 64", "-g", "-traceback"] + if spec.satisfies("%intel") or spec.satisfies("%intel-oneapi-compilers"): + fcflags += ["-traceback"] # -heap-arrays 64 elif spec.satisfies("%gcc"): fcflags += [ "-ffree-form", @@ -711,9 +779,16 @@ def edit(self, pkg, spec, prefix): fc = spack_fc if "~mpi" in spec else spec["mpi"].mpifc # Intel - if spec.satisfies("%intel"): - cppflags.extend(["-D__INTEL", "-D__HAS_ISO_C_BINDING", "-D__USE_CP2K_TRACE"]) - fcflags.extend(["-diag-disable 8290,8291,10010,10212,11060", "-free", "-fpp"]) + if spec.satisfies("%intel") or spec.satisfies("%intel-oneapi-compilers"): + cppflags.extend( + [ + "-D__INTEL", + "-D__HAS_IEEE_EXCEPTIONS", + "-D__HAS_ISO_C_BINDING", + "-D__USE_CP2K_TRACE", + ] + ) + fcflags.extend(["-free", "-fpp", "-diag-disable 8290,8291,10010,10212,11060"]) # FFTW, LAPACK, BLAS lapack = spec["lapack"].libs @@ -869,15 +944,12 @@ def edit(self, pkg, spec, prefix): with open(self.makefile, "w") as mkf: if spec.satisfies("+plumed"): mkf.write( - "# include Plumed.inc as recommended by" - "PLUMED to include libraries and flags" + "# include Plumed.inc as recommended by PLUMED to include libraries and flags" ) mkf.write("include {0}\n".format(self.pkg["plumed"].plumed_inc)) mkf.write("\n# COMPILER, LINKER, TOOLS\n\n") - mkf.write( - "FC = {0}\n" "CC = {1}\n" "CXX = {2}\n" "LD = {3}\n".format(fc, cc, cxx, fc) - ) + mkf.write("FC = {0}\nCC = {1}\nCXX = {2}\nLD = {3}\n".format(fc, cc, cxx, fc)) if spec.satisfies("%intel"): intel_bin_dir = ancestor(pkg.compiler.cc) @@ -889,7 +961,7 @@ def edit(self, pkg, spec, prefix): # and use `-fpp` instead mkf.write("CPP = # {0} -P\n".format(spack_cc)) mkf.write("AR = {0}/xiar -qs\n".format(intel_bin_dir)) - else: + else: # incl. spec.satisfies("%intel-oneapi-compilers") mkf.write("CPP = # {0} -E\n".format(spack_cc)) mkf.write("AR = ar -qs\n") # r = qs is a GNU extension @@ -918,7 +990,7 @@ def fflags(var, lst): mkf.write(fflags("LDFLAGS", ldflags)) mkf.write(fflags("LIBS", libs)) - if spec.satisfies("%intel"): + if spec.satisfies("%intel") or spec.satisfies("%intel-oneapi-compilers"): mkf.write(fflags("LDFLAGS_C", ldflags + ["-nofor-main"])) if spec.satisfies("%aocc@5:"): @@ -1040,6 +1112,9 @@ def cmake_args(self): spec = self.spec args = [] + if spec.satisfies("+opencl"): + args += [self.define("CP2K_USE_ACCEL", "OPENCL")] + if spec.satisfies("+cuda"): if (len(spec.variants["cuda_arch"].value) > 1) or spec.satisfies("cuda_arch=none"): raise InstallError("CP2K supports only one cuda_arch at a time.") @@ -1077,6 +1152,7 @@ def cmake_args(self): self.define_from_variant("CP2K_USE_COSMA", "cosma"), self.define_from_variant("CP2K_USE_LIBXC", "libxc"), self.define_from_variant("CP2K_USE_LIBTORCH", "pytorch"), + self.define_from_variant("CP2K_USE_OPENPMD", "openpmd-api"), self.define_from_variant("CP2K_USE_METIS", "pexsi"), self.define_from_variant("CP2K_USE_SUPERLU", "pexsi"), self.define_from_variant("CP2K_USE_PLUMED", "plumed"), @@ -1096,8 +1172,15 @@ def cmake_args(self): self.define_from_variant("CP2K_USE_TREXIO", "trexio"), self.define_from_variant("CP2K_USE_GREENX", "greenx"), self.define_from_variant("CP2K_USE_LIBVDWXC", "vdwxc"), + self.define_from_variant("CP2K_USE_TBLITE", "tblite"), ] + if spec.satisfies("+sirius"): + args += [ + self.define_from_variant("CP2K_USE_SIRIUS_DFTD4", "dftd4"), + self.define_from_variant("CP2K_USE_SIRIUS_VCSQNM", "vcsqnm"), + self.define_from_variant("CP2K_USE_SIRIUS_NLCG", "nlcg"), + ] if spec.satisfies("^[virtuals=fftw-api] fftw+openmp"): args += ["-DCP2K_USE_FFTW3_WITH_OPENMP=ON"] @@ -1121,10 +1204,14 @@ def cmake_args(self): blas = spec["blas"] if blas.name == "intel-oneapi-mkl": - if spec.satisfies("^[virtuals=fftw-api] intel-oneapi-mkl"): - args += ["-DCP2K_USE_FFTW3_WITH_MKL=ON"] - args += ["-DCP2K_BLAS_VENDOR=MKL"] + + if spec.satisfies("+openmp"): + mkl_thread = "thread" if spec.satisfies("%gcc") else "intel-thread" + args += [f"-DCP2K_BLAS_THREADING={mkl_thread}"] + else: + args += ["-DCP2K_BLAS_THREADING=sequential"] + if sys.platform == "darwin": args += [ self.define("CP2K_BLAS_VENDOR", "CUSTOM"), diff --git a/repos/spack_repo/builtin/packages/cplex/package.py b/repos/spack_repo/builtin/packages/cplex/package.py index 3db95a16c2b..fbf84069f0c 100644 --- a/repos/spack_repo/builtin/packages/cplex/package.py +++ b/repos/spack_repo/builtin/packages/cplex/package.py @@ -21,6 +21,10 @@ class Cplex(Package): maintainers("robgics") + license("LicenseRef-IBM-Proprietary", checked_by="alecbcs") + + redistribute(source=False, binary=False) + version( "12.10.0", sha256="cd530eb9c6d446bd18b5dc5a3d61070bfad92c3efd6565d2d8e31a2acfb496f7", diff --git a/repos/spack_repo/builtin/packages/cpmd/package.py b/repos/spack_repo/builtin/packages/cpmd/package.py index e7df09fc3c5..65201b22353 100644 --- a/repos/spack_repo/builtin/packages/cpmd/package.py +++ b/repos/spack_repo/builtin/packages/cpmd/package.py @@ -78,7 +78,7 @@ def edit(self, spec, prefix): # create Makefile os.chmod("./scripts/configure.sh", 0o755) - bash = which("bash") + bash = which("bash", required=True) if spec.satisfies("+omp"): bash("./configure.sh", "-omp", cbase) else: @@ -100,7 +100,7 @@ def test_cpmd(self): exe_name = "cpmd.x" opts.append(test_file) opts.append(test_dir) - cpmd = which(exe_name) + cpmd = which(exe_name, required=True) out = cpmd(*opts, output=str.split, error=str.split) expected = [ diff --git a/repos/spack_repo/builtin/packages/cpp_termcolor/package.py b/repos/spack_repo/builtin/packages/cpp_termcolor/package.py index 86c82e23065..40ebc40960f 100644 --- a/repos/spack_repo/builtin/packages/cpp_termcolor/package.py +++ b/repos/spack_repo/builtin/packages/cpp_termcolor/package.py @@ -20,7 +20,8 @@ class CppTermcolor(CMakePackage): version("2.0.0", sha256="4a73a77053822ca1ed6d4a2af416d31028ec992fb0ffa794af95bd6216bb6a20") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("cmake@3.0:", type="build") diff --git a/repos/spack_repo/builtin/packages/cppad/package.py b/repos/spack_repo/builtin/packages/cppad/package.py index dc898a139a9..6b2c0a9449f 100644 --- a/repos/spack_repo/builtin/packages/cppad/package.py +++ b/repos/spack_repo/builtin/packages/cppad/package.py @@ -23,16 +23,6 @@ class Cppad(CMakePackage): version( "20220000.5", sha256="9fb4562f6169855eadcd86ac4671593d1c0edf97bb6ce7cbb28e19af2bfc165e" ) - version( - "20180000.0", - sha256="a5226e4c5aa2ad6d95668f987b39939315bf134a0a793231984e6d42d6488cca", - deprecated=True, - ) - version( - "20170114", - sha256="fa3980a882be2a668a7522146273a1b4f1d8dabe66ad4aafa8964c8c1fd6f957", - deprecated=True, - ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/cppcheck/package.py b/repos/spack_repo/builtin/packages/cppcheck/package.py index 16ae9c65c20..3f5b7569c4a 100644 --- a/repos/spack_repo/builtin/packages/cppcheck/package.py +++ b/repos/spack_repo/builtin/packages/cppcheck/package.py @@ -17,28 +17,9 @@ class Cppcheck(CMakePackage): license("GPL-3.0-or-later") + version("2.18.0", sha256="dc74e300ac59f2ef9f9c05c21d48ae4c8dd1ce17f08914dd30c738ff482e748f") version("2.17.1", sha256="bfd681868248ec03855ca7c2aea7bcb1f39b8b18860d76aec805a92a967b966c") - with default_args(deprecated=True): - version("2.9", sha256="d89f3282c70814fa66669e1ea0323c0484563b3f8249c7a2dcaac2ad07651dc7") - version("2.8", sha256="a5ed97a99173d2952cd93fcb028a3405a7b3b992e7168e2ae9d527b991770203") - version("2.7", sha256="ac74c0973c46a052760f4ff7ca6a84616ca5795510542d195a6f122c53079291") - version("2.1", sha256="ab26eeef039e5b58aac01efb8cb664f2cc16bf9879c61bc93cd00c95be89a5f7") - version("2.0", sha256="5f77d36a37ed9ef58ea8b499e4b1db20468114c9ca12b5fb39b95906cab25a3f") - version("1.90", sha256="43758d56613596c29440e55ea96a5a13e36f81ca377a8939648b5242faf61883") - version("1.89", sha256="5f02389cb24554f5a7ac3d29db8ac19c740f23c92e97eb7fec3881fe86c26f2c") - version("1.88", sha256="bb25441749977713476dc630dfe7617b3d9e95c46fec0edbec4ff8ff6fda38ca") - version("1.87", sha256="e3b0a46747822471df275417d4b74b56ecac88367433e7428f39288a32c581ca") - version("1.81", sha256="bb694f37ae0b5fed48c6cdc2fb5e528daf32cefc64e16b1a520c5411323cf27e") - version("1.78", sha256="e42696f7d6321b98cb479ad9728d051effe543b26aca8102428f60b9850786b1") - version("1.72", sha256="9460b184ff2d8dd15344f3e2f42f634c86e4dd3303e1e9b3f13dc67536aab420") - version("1.68", sha256="add6e5e12b05ca02b356cd0ec7420ae0dcafddeaef183b4dfbdef59c617349b1") - - def url_for_version(self, version): - if version <= Version("2.9"): - return f"https://downloads.sourceforge.net/project/cppcheck/cppcheck/{version}/cppcheck-{version}.tar.bz2" - return f"https://github.com/danmar/cppcheck/archive/{version}.tar.gz" - variant("rules", default=False, description="Enable rules (requires PCRE)") depends_on("c", type="build") @@ -53,7 +34,3 @@ def cmake_args(self): self.define("BUILD_TESTS", self.run_tests), self.define_from_variant("HAVE_RULES", "rules"), ] - - @run_after("install", when="@:2.9") - def install_cppcheck_htmlreport(self): - install("htmlreport/cppcheck-htmlreport", self.prefix.bin) diff --git a/repos/spack_repo/builtin/packages/cpptrace/package.py b/repos/spack_repo/builtin/packages/cpptrace/package.py new file mode 100644 index 00000000000..ff490b306cc --- /dev/null +++ b/repos/spack_repo/builtin/packages/cpptrace/package.py @@ -0,0 +1,40 @@ +# 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, generator + +from spack.package import * + + +class Cpptrace(CMakePackage): + """Simple, portable, and self-contained stacktrace library for C++11 and newer.""" + + homepage = "https://github.com/jeremy-rifkin/cpptrace" + url = "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v1.0.0.tar.gz" + + maintainers("RMeli") + + license("MIT", checked_by="RMeli") + + version("1.0.0", sha256="0e11aebb6b9b98ce9134a58532b63982365aadc76533a4fbb7f6fb6edb32de2e") + + variant("shared", default=False, description="Build shared libraries") + variant("external_libdwarf", default=False, description="Use external libdwarf") + variant("external_zstd", default=False, description="Use external zstd") + + generator("ninja") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("libdwarf", when="+external_libdwarf") + depends_on("zstd", when="+external_zstd") + + def cmake_args(self): + args = [ + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define_from_variant("CPPTRACE_USE_EXTERNAL_LIBDWARF", "external_libdwarf"), + self.define_from_variant("CPPTRACE_USE_EXTERNAL_ZSTD", "external_zstd"), + ] + return args diff --git a/repos/spack_repo/builtin/packages/cppunit/cppunit-1.14-defaulted-function-deleted.patch b/repos/spack_repo/builtin/packages/cppunit/cppunit-1.14-defaulted-function-deleted.patch deleted file mode 100644 index 59c2d5d114b..00000000000 --- a/repos/spack_repo/builtin/packages/cppunit/cppunit-1.14-defaulted-function-deleted.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/include/cppunit/extensions/TestSuiteBuilderContext.h b/include/cppunit/extensions/TestSuiteBuilderContext.h -index 12d157e..ad1a34f 100644 ---- a/include/cppunit/extensions/TestSuiteBuilderContext.h -+++ b/include/cppunit/extensions/TestSuiteBuilderContext.h -@@ -42,8 +42,6 @@ public: - - TestSuiteBuilderContextBase(TestSuiteBuilderContextBase const &) = default; - TestSuiteBuilderContextBase(TestSuiteBuilderContextBase &&) = default; -- TestSuiteBuilderContextBase & operator =(TestSuiteBuilderContextBase const &) = default; -- TestSuiteBuilderContextBase & operator =(TestSuiteBuilderContextBase &&) = default; - - /*! \brief Adds a test to the fixture suite. - * diff --git a/repos/spack_repo/builtin/packages/cppunit/package.py b/repos/spack_repo/builtin/packages/cppunit/package.py index 50f6936371f..a20215b6685 100644 --- a/repos/spack_repo/builtin/packages/cppunit/package.py +++ b/repos/spack_repo/builtin/packages/cppunit/package.py @@ -18,14 +18,9 @@ class Cppunit(AutotoolsPackage): version("master", branch="master") version("1.15.1", sha256="89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7") - version("1.15_20220904", commit="78e64f0edb4f3271a6ddbcdf9cba05138597bfca", deprecated=True) version("1.14.0", sha256="3d569869d27b48860210c758c4f313082103a5e58219a7669b52bfd29d674780") version("1.13.2", sha256="3f47d246e3346f2ba4d7c9e882db3ad9ebd3fcbd2e8b732f946e0e3eeb9f429f") - # https://github.com/cms-sw/cmsdist/blob/IB/CMSSW_12_6_X/master/cppunit-1.14-defaulted-function-deleted.patch - # https://cgit.freedesktop.org/libreoffice/cppunit/commit/?h=cppunit-1.15.1&id=834f3a287387bd6230c98b0c5375aff568c75e02 - patch("cppunit-1.14-defaulted-function-deleted.patch", when="@1.15_20220904") - variant( "cxxstd", default="default", @@ -45,9 +40,9 @@ class Cppunit(AutotoolsPackage): depends_on("cxx", type="build") depends_on("c", type="build") - depends_on("autoconf", type="build", when="@master,1.15_20220904") - depends_on("automake", type="build", when="@master,1.15_20220904") - depends_on("libtool", type="build", when="@master,1.15_20220904") + depends_on("autoconf", type="build", when="@master") + depends_on("automake", type="build", when="@master") + depends_on("libtool", type="build", when="@master") def setup_build_environment(self, env: EnvironmentModifications) -> None: cxxstd = self.spec.variants["cxxstd"].value diff --git a/repos/spack_repo/builtin/packages/cpuinfo/package.py b/repos/spack_repo/builtin/packages/cpuinfo/package.py index 1e67897b4f8..30894573333 100644 --- a/repos/spack_repo/builtin/packages/cpuinfo/package.py +++ b/repos/spack_repo/builtin/packages/cpuinfo/package.py @@ -20,7 +20,9 @@ class Cpuinfo(CMakePackage): license("BSD-2-Clause") version("main", branch="main") - version("2024-09-26", commit="1e83a2fdd3102f65c6f1fb602c1b320486218a99") # py-torch@2.6: + version("2025-11-14", commit="f858c30bcb16f8effd5ff46996f0514539e17abc") # py-torch@2.10: + version("2025-03-21", commit="5e3d2445e6a84d9599bee2bf78edbb4d80865e1d") # py-torch@2.8:2.9 + version("2024-09-26", commit="1e83a2fdd3102f65c6f1fb602c1b320486218a99") # py-torch@2.6:2.7 version("2024-09-06", commit="094fc30b9256f54dad5ad23bcbfb5de74781422f") # py-torch@2.5.1 version("2024-08-30", commit="fa1c679da8d19e1d87f20175ae1ec10995cd3dd3") # py-torch@2.5.0 version("2023-11-04", commit="d6860c477c99f1fce9e28eb206891af3c0e1a1d7") # py-torch@2.3:2.4 @@ -34,11 +36,13 @@ class Cpuinfo(CMakePackage): version("2018-05-13", commit="1e6c8c99d27f2b5eb9d2e6231055c6a4115b85e5") # py-torch@0.4.1 version("2018-04-04", commit="831dc28341b5f20d13e840caf87eaba644d82643") # py-torch@:0.4.0 - depends_on("c", type="build") - depends_on("cxx", type="build") - generator("ninja") - depends_on("cmake@3.5:", type="build") + + with default_args(type="build"): + depends_on("c") + depends_on("cxx") + depends_on("cmake@3.18:", when="@2025-09-06:") + depends_on("cmake@3.5:") def cmake_args(self): # cpuinfo cannot produce a shared build with MSVC because it does not export diff --git a/repos/spack_repo/builtin/packages/cracklib/package.py b/repos/spack_repo/builtin/packages/cracklib/package.py index 5df5fecd7ef..9f300840fc5 100644 --- a/repos/spack_repo/builtin/packages/cracklib/package.py +++ b/repos/spack_repo/builtin/packages/cracklib/package.py @@ -34,7 +34,7 @@ class Cracklib(AutotoolsPackage): def autoreconf(self, spec, prefix): with working_dir("src"): - sh = which("sh") + sh = which("sh", required=True) sh("./autogen.sh") def setup_run_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/cray_fftw/package.py b/repos/spack_repo/builtin/packages/cray_fftw/package.py index cf5ccbdb06d..c1840231ee7 100644 --- a/repos/spack_repo/builtin/packages/cray_fftw/package.py +++ b/repos/spack_repo/builtin/packages/cray_fftw/package.py @@ -1,9 +1,6 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.generic import Package - from spack.package import * @@ -20,7 +17,6 @@ class CrayFftw(Package): """ homepage = "https://support.hpe.com/" - has_code = False # Skip attempts to fetch source that is not available maintainers("haampie", "lukebroskop") @@ -42,6 +38,13 @@ class CrayFftw(Package): variant("mpi", default=True, description="Activate MPI support") depends_on("mpi", when="+mpi") + has_code = False # Skip attempts to fetch a source that is not available + + # Allows attaching compilers to externals in packages.yaml + depends_on("c", type="build") + + requires("platform=linux", msg="Cray software is only available on linux") + def install(self, spec, prefix): raise InstallError( self.spec.format( diff --git a/repos/spack_repo/builtin/packages/cray_libsci/package.py b/repos/spack_repo/builtin/packages/cray_libsci/package.py index 6724da81b23..3916732c45d 100644 --- a/repos/spack_repo/builtin/packages/cray_libsci/package.py +++ b/repos/spack_repo/builtin/packages/cray_libsci/package.py @@ -1,8 +1,6 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.generic import Package - from spack.package import * @@ -11,7 +9,6 @@ class CrayLibsci(Package): numerical routines optimized for best performance on Cray systems.""" homepage = "https://docs.nersc.gov/development/libraries/libsci/" - has_code = False # Skip attempts to fetch source that is not available version("23.02.1.1") version("22.11.1.2") @@ -27,9 +24,6 @@ class CrayLibsci(Package): version("16.06.1") version("16.03.1") - conflicts("platform=windows") - conflicts("platform=darwin") - variant("shared", default=True, description="enable shared libs") variant("openmp", default=False, description="link with openmp") variant("mpi", default=False, description="link with mpi libs") @@ -48,9 +42,24 @@ class CrayLibsci(Package): "rocmcc": "AMD", } + has_code = False # Skip attempts to fetch a source that is not available + + # Allows attaching compilers to externals in packages.yaml + depends_on("c", type="build") + + requires("platform=linux", msg="Cray software is only available on linux") + + def install(self, spec, prefix): + raise InstallError( + self.spec.format( + "{name} is not installable, you need to specify " + "it as an external package in packages.yaml" + ) + ) + @property def modname(self): - return "cray-libsci/{0}".format(self.version) + return f"cray-libsci/{self.version}" @property def external_prefix(self): @@ -95,11 +104,3 @@ def scalapack_libs(self): @property def libs(self): return self.blas_libs - - def install(self, spec, prefix): - raise InstallError( - self.spec.format( - "{name} is not installable, you need to specify " - "it as an external package in packages.yaml" - ) - ) diff --git a/repos/spack_repo/builtin/packages/cray_mpich/package.py b/repos/spack_repo/builtin/packages/cray_mpich/package.py index 8aab40daab9..bd310bcf950 100644 --- a/repos/spack_repo/builtin/packages/cray_mpich/package.py +++ b/repos/spack_repo/builtin/packages/cray_mpich/package.py @@ -5,7 +5,6 @@ import os from spack_repo.builtin.build_systems.cuda import CudaPackage -from spack_repo.builtin.build_systems.generic import Package from spack_repo.builtin.build_systems.rocm import ROCmPackage from spack_repo.builtin.packages.mpich.package import MpichEnvironmentModifications @@ -17,10 +16,13 @@ class CrayMpich(MpichEnvironmentModifications, Package, CudaPackage, ROCmPackage the Message Passing Interface (MPI) standard.""" homepage = "https://docs.nersc.gov/development/compilers/wrappers/" - has_code = False # Skip attempts to fetch source that is not available maintainers("etiennemlb", "haampie") + version("9.1.0") + version("9.0.1") + version("8.1.32") + version("8.1.31") version("8.1.30") version("8.1.28") version("8.1.25") @@ -41,12 +43,11 @@ class CrayMpich(MpichEnvironmentModifications, Package, CudaPackage, ROCmPackage depends_on("cray-pmi") depends_on("libfabric") - requires("platform=linux", msg="Cray MPICH is only available on Cray") - # cray-mpich 8.1.7: features MPI compiler wrappers variant("wrappers", default=True, when="@8.1.7:", description="enable MPI wrappers") - provides("mpi@3") + provides("mpi@3", when="@:8") + provides("mpi@4", when="@9:") canonical_names = { "gcc": "GNU", @@ -56,9 +57,24 @@ class CrayMpich(MpichEnvironmentModifications, Package, CudaPackage, ROCmPackage "aocc": "AOCC", } + has_code = False # Skip attempts to fetch a source that is not available + + # Allows attaching compilers to externals in packages.yaml + depends_on("c", type="build") + + requires("platform=linux", msg="Cray software is only available on linux") + + def install(self, spec, prefix): + raise InstallError( + self.spec.format( + "{name} is not installable, you need to specify " + "it as an external package in packages.yaml" + ) + ) + @property def modname(self): - return "cray-mpich/{0}".format(self.version) + return f"cray-mpich/{self.version}" @property def external_prefix(self): @@ -103,14 +119,6 @@ def setup_dependent_package(self, module, dependent_spec): spec.mpifc = dependent_spec["fortran"].package.fortran spec.mpif77 = dependent_spec["fortran"].package.fortran - def install(self, spec, prefix): - raise InstallError( - self.spec.format( - "{name} is not installable, you need to specify " - "it as an external package in packages.yaml" - ) - ) - @property def headers(self): hdrs = find_headers("mpi", self.prefix.include, recursive=True) diff --git a/repos/spack_repo/builtin/packages/cray_mvapich2/package.py b/repos/spack_repo/builtin/packages/cray_mvapich2/package.py index a2eb1b290b5..82c7b38113e 100644 --- a/repos/spack_repo/builtin/packages/cray_mvapich2/package.py +++ b/repos/spack_repo/builtin/packages/cray_mvapich2/package.py @@ -1,8 +1,6 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.generic import Package from spack_repo.builtin.packages.mpich.package import MpichEnvironmentModifications from spack.package import * @@ -12,7 +10,6 @@ class CrayMvapich2(MpichEnvironmentModifications, Package): """Cray/HPE packaging of MVAPICH2 for HPE Apollo systems""" homepage = "https://docs.nersc.gov/development/compilers/wrappers/" - has_code = False # Skip attempts to fetch source that is not available maintainers("hppritcha") @@ -28,7 +25,20 @@ class CrayMvapich2(MpichEnvironmentModifications, Package): provides("mpi@3") - requires("platform=linux", msg="Cray MVAPICH2 is only available on Cray") + has_code = False # Skip attempts to fetch a source that is not available + + # Allows attaching compilers to externals in packages.yaml + depends_on("c", type="build") + + requires("platform=linux", msg="Cray software is only available on linux") + + def install(self, spec, prefix): + raise InstallError( + self.spec.format( + "{name} is not installable, you need to specify " + "it as an external package in packages.yaml" + ) + ) def setup_run_environment(self, env: EnvironmentModifications) -> None: if self.spec.has_virtual_dependency("c"): @@ -40,11 +50,3 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: if self.spec.has_virtual_dependency("fortran"): env.set("MPIFC", self["fortran"].fortran) env.set("MPIF77", self["fortran"].fortran) - - def install(self, spec, prefix): - raise InstallError( - self.spec.format( - "{name} is not installable, you need to specify " - "it as an external package in packages.yaml" - ) - ) diff --git a/repos/spack_repo/builtin/packages/cray_pmi/package.py b/repos/spack_repo/builtin/packages/cray_pmi/package.py index f0a21dba416..840f97726cf 100644 --- a/repos/spack_repo/builtin/packages/cray_pmi/package.py +++ b/repos/spack_repo/builtin/packages/cray_pmi/package.py @@ -1,9 +1,6 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.generic import Package - from spack.package import * @@ -11,7 +8,6 @@ class CrayPmi(Package): """Cray's Process Management Interface library""" homepage = "https://docs.nersc.gov/development/compilers/wrappers/" - has_code = False # Skip attempts to fetch source that is not available maintainers("haampie") @@ -19,6 +15,21 @@ class CrayPmi(Package): version("5.0.16") version("5.0.11") + has_code = False # Skip attempts to fetch a source that is not available + + # Allows attaching compilers to externals in packages.yaml + depends_on("c", type="build") + + requires("platform=linux", msg="Cray software is only available on linux") + + def install(self, spec, prefix): + raise InstallError( + self.spec.format( + "{name} is not installable, you need to specify " + "it as an external package in packages.yaml" + ) + ) + @property def headers(self): return find_headers("pmi", self.prefix.include, recursive=True) diff --git a/repos/spack_repo/builtin/packages/croc/package.py b/repos/spack_repo/builtin/packages/croc/package.py new file mode 100644 index 00000000000..bfc92493ce3 --- /dev/null +++ b/repos/spack_repo/builtin/packages/croc/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.go import GoPackage + +from spack.package import * + + +class Croc(GoPackage): + """croc is a tool that allows any two computers to simply and securely transfer files and + folders. + """ + + homepage = "https://schollz.com/software/croc6" + url = "https://github.com/schollz/croc/archive/refs/tags/v10.2.5.tar.gz" + + maintainers("zzzoom") + + license("MIT", checked_by="zzzoom") + + version("10.2.5", sha256="993e0bb72e79c5168d78db5c14d84f69beeab819ab4d06f4d98fcddd23487207") + + depends_on("go@1.24.0:", type="build", when="@10.2.5:") diff --git a/repos/spack_repo/builtin/packages/cronie/package.py b/repos/spack_repo/builtin/packages/cronie/package.py index b6c7e2dfa62..0f911223048 100644 --- a/repos/spack_repo/builtin/packages/cronie/package.py +++ b/repos/spack_repo/builtin/packages/cronie/package.py @@ -23,7 +23,7 @@ class Cronie(AutotoolsPackage): depends_on("c", type="build") # generated def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") def setup_run_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/crux_toolkit/package.py b/repos/spack_repo/builtin/packages/crux_toolkit/package.py new file mode 100644 index 00000000000..fa270e92764 --- /dev/null +++ b/repos/spack_repo/builtin/packages/crux_toolkit/package.py @@ -0,0 +1,48 @@ +# 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 CruxToolkit(CMakePackage): + """Mass spectrometry analysis toolkit.""" + + homepage = "https://crux.ms" + url = "https://github.com/crux-toolkit/crux-toolkit/archive/refs/tags/crux-4.3.2.tar.gz" + + license("Apache-2.0") + + version("4.3.2", sha256="6911c1cb45e5a188036edcbfbaf9ab6d34679321988a88de1cd192f1e4a2630b") + + depends_on("cmake@3.15:", type="build") + + # Additional dependencies are downloaded during build (the logic cannot be disabled) + # from https://github.com/crux-toolkit/crux-toolkit/blob/crux-4.3.2/ext/CMakeLists.txt + # + # MSToolkit 83.27-g20e99ce (Apache-2.0) + # https://github.com/mhoopmann/mstoolkit/commits/20e99c + # + # ProteoWizard 3.0-25123 (Apache-2.0) + # https://noble.gs.washington.edu/crux-downloads/pwiz-src-3_0_25123_b0e5f51.tar.bz2 + # + # Percolator 3.07.01 (Apache-2.0) + # https://github.com/percolator/percolator/commits/310f924 + # + # Protobuf 3.19.4 (Custom BSD-3-Clause) + # https://github.com/protocolbuffers/protobuf/blob/main/LICENSE + # https://github.com/protocolbuffers/protobuf/releases/download/v3.19.4/protobuf-all-3.19.4.tar.gz + # + # gflags 2.2.2 (BSD-3-Clause) + # https://codeload.github.com/gflags/gflags/tar.gz/v2.2.2 + # + # Comet 2025.01.1 (Apache-2.0) + # https://github.com/UWPR/Comet + # + # NeoPepXMLParser e89f166 (Apache-2.0) + # https://github.com/mhoopmann/NeoPepXMLParser.git + # + # Kojak 4307dfa (Apache-2.0) + # https://github.com/mhoopmann/kojak.git diff --git a/repos/spack_repo/builtin/packages/cry/package.py b/repos/spack_repo/builtin/packages/cry/package.py new file mode 100644 index 00000000000..a7bb7367bbf --- /dev/null +++ b/repos/spack_repo/builtin/packages/cry/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.makefile import MakefilePackage + +from spack.package import * + + +class Cry(MakefilePackage): + """CRY — Cosmic-RaY shower generator library. + + A library for generating correlated cosmic-ray particle showers. + """ + + homepage = "https://nuclear.llnl.gov/simulation" + url = "https://nuclear.llnl.gov/simulation/cry_v1.7.tar.gz" + + maintainers("wdconinc") + + version("1.7", sha256="dcee2428f81cba113f82e0c7c42f4d85bff4b8530e5ab5c82c059bed3e570c20") + + depends_on("cxx", type="build") + + def install(self, spec, prefix): + install_tree("lib", prefix.lib) + install_tree("src", prefix.include.cry) + install_tree("data", prefix.share.cry.data) diff --git a/repos/spack_repo/builtin/packages/csdp/package.py b/repos/spack_repo/builtin/packages/csdp/package.py index 4af23c65102..87b505106a0 100644 --- a/repos/spack_repo/builtin/packages/csdp/package.py +++ b/repos/spack_repo/builtin/packages/csdp/package.py @@ -15,15 +15,31 @@ class Csdp(MakefilePackage): homepage = "https://projects.coin-or.org/Csdp" url = "https://www.coin-or.org/download/source/Csdp/Csdp-6.1.1.tgz" - license("CPL-1.0") + license("CPL-1.0", when="@:6.2.0", checked_by="d-torrance") + # license has been updated in git for future releases to EPL-2.0 + version("6.2.0", sha256="7f202a15f33483ee205dcfbd0573fdbd74911604bb739a04f8baa35f8a055c5b") version("6.1.1", sha256="0558a46ac534e846bf866b76a9a44e8a854d84558efa50988ffc092f99a138b9") - depends_on("c", type="build") # generated + depends_on("c", type="build") - depends_on("atlas") + depends_on("blas") + depends_on("lapack") def edit(self, spec, prefix): mkdirp(prefix.bin) makefile = FileFilter("Makefile") makefile.filter("/usr/local/bin", prefix.bin) + makefile.filter(r"^export LIBS.*$", "") # use flag_handler instead + + def flag_handler(self, name: str, flags: List[str]): + if name == "ldflags": + flags.extend( + [ + f"-L{self.stage.source_path}/lib -lsdp", + self.spec["lapack"].libs.ld_flags, + self.spec["blas"].libs.ld_flags, + "-lm", + ] + ) + return (flags, None, None) diff --git a/repos/spack_repo/builtin/packages/csvtk/package.py b/repos/spack_repo/builtin/packages/csvtk/package.py new file mode 100644 index 00000000000..c8572e2d77a --- /dev/null +++ b/repos/spack_repo/builtin/packages/csvtk/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.go import GoPackage + +from spack.package import * + + +class Csvtk(GoPackage): + """csvtk is a cross-platform, efficient and practical CSV/TSV toolkit.""" + + homepage = "https://bioinf.shenwei.me/csvtk/" + url = "https://github.com/shenwei356/csvtk/archive/refs/tags/v0.36.0.tar.gz" + + maintainers("ebagrenrut") + + license("MIT") + + version("0.36.0", sha256="0acea7e49c8af12ed76b11ec562ffc05a2fff28cb3c4e7b032e9271f13599ec8") + + depends_on("go@1.24:", type="build") + + build_directory = "csvtk" + + @run_after("install") + def install_completions(self): + csvtk = Executable(self.prefix.bin.csvtk) + + bash_comp_path = bash_completion_path(self.prefix) + mkdirp(bash_comp_path) + csvtk("genautocomplete", "--shell=bash", f"--file={join_path(bash_comp_path, self.name)}") + + fish_comp_path = fish_completion_path(self.prefix) + mkdirp(fish_comp_path) + csvtk( + "genautocomplete", + "--shell=fish", + f"--file={join_path(fish_comp_path, self.name)}.fish", + ) + + zsh_comp_path = zsh_completion_path(self.prefix) + mkdirp(zsh_comp_path) + csvtk( + "genautocomplete", "--shell=zsh", f"--file={join_path(zsh_comp_path, f'_{self.name}')}" + ) diff --git a/repos/spack_repo/builtin/packages/ctffind/package.py b/repos/spack_repo/builtin/packages/ctffind/package.py index fe1b1bdc48d..cd476d2492e 100644 --- a/repos/spack_repo/builtin/packages/ctffind/package.py +++ b/repos/spack_repo/builtin/packages/ctffind/package.py @@ -26,7 +26,8 @@ class Ctffind(AutotoolsPackage): extension="tar.gz", ) - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") def url_for_version(self, version): url = "https://grigoriefflab.umassmed.edu/system/tdf?path=ctffind-{0}.tar.gz&file=1&type=node&id=26" diff --git a/repos/spack_repo/builtin/packages/ctpl/package.py b/repos/spack_repo/builtin/packages/ctpl/package.py index 6673f91108d..426b18ba335 100644 --- a/repos/spack_repo/builtin/packages/ctpl/package.py +++ b/repos/spack_repo/builtin/packages/ctpl/package.py @@ -29,5 +29,5 @@ class Ctpl(AutotoolsPackage): depends_on("glib@2.10:") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/cube/package.py b/repos/spack_repo/builtin/packages/cube/package.py index fae9e672bf5..6fefcbf12f4 100644 --- a/repos/spack_repo/builtin/packages/cube/package.py +++ b/repos/spack_repo/builtin/packages/cube/package.py @@ -19,65 +19,35 @@ class Cube(AutotoolsPackage): url = "https://apps.fz-juelich.de/scalasca/releases/cube/4.4/dist/cubegui-4.4.2.tar.gz" maintainers("swat-jsc") + version("4.9", sha256="10c76d6e3d44df64066d087a0ee9195b4e8121798a84a4d8bdc1da0e80837e11") version("4.8.2", sha256="bf2e02002bb2e5c4f61832ce37b62a440675c6453463014b33b2474aac78f86d") version("4.8.1", sha256="a8a2a62b4e587c012d3d32385bed7c500db14232419795e0f4272d1dcefc55bc") version("4.8", sha256="1df8fcaea95323e7eaf0cc010784a41243532c2123a27ce93cb7e3241557ff76") version("4.7.1", sha256="7c96bf9ffb8cc132945f706657756fe6f88b7f7a5243ecd3741f599c2006d428") version("4.7", sha256="103fe00fa9846685746ce56231f64d850764a87737dc0407c9d0a24037590f68") version("4.6", sha256="1871c6736121d94a22314cb5daa8f3cbb978b58bfe54f677c4c9c9693757d0c5") - version("4.5", sha256="ffe84108adce0adf06dca80820d941b1a60a5580a8bacc8f7c1b6989c8ab1bfa") - version("4.4.4", sha256="9b7b96d5a64b558a9017cc3599bba93a42095534e018e3de9b1f80ab6d04cc34") - version("4.4.3", sha256="bf4b0f2ff68507ff82ba24eb4895aed961710dae16d783c222a12f152440cf36") - version("4.4.2", sha256="29b6479616a524f8325f5031a883963bf965fb92569de33271a020f08650ec7b") - version("4.4", sha256="0620bae3ac357d0486ce7f5f97e448eeb2494c9a31865b679380ee08c6750e70") - version("4.3.5", sha256="1dc26f473e8bb4cdbdd411224c3c2026a394f3e936f1918000dc65a222753912") - version("4.3.4", sha256="34c55fc5d0c84942c0845a7324d84cde09f3bc1b3fae6a0f9556f7ea0e201065") - version("4.3.3", sha256="ce8e1bff5a208fe5700a0194170be85bbd8f554e1aa1514b4afc5129326c7f83") - version("4.2.3", sha256="b30c6998bcc54f795bcd6de3cfbef9c3cec094f782820174b533f628b0e60765") - - variant("gui", default=True, description="Build Cube GUI") - - patch("qt-version.patch", when="@4.3.0:4.3 +gui") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("cubelib@4.8:4.8.99", when="@4.8:4.8.99") - depends_on("cubelib@4.7:4.7.99", when="@4.7:4.7.99") - depends_on("cubelib@4.6:4.6.99", when="@4.6:4.6.99") - depends_on("cubelib@4.5:4.5.99", when="@4.5:4.5.99") - # There is a backwards dependency in series 4 - depends_on("cubelib@4.4:4.4.4", when="@4.4.4") - depends_on("cubelib@4.4:4.4.3", when="@4.4.3") - depends_on("cubelib@4.4:4.4.2", when="@4.4.2") - depends_on("cubelib@4.4", when="@4.4") + depends_on("cubelib@4.9", when="@4.9") + depends_on("cubelib@4.8", when="@4.8") + depends_on("cubelib@4.7", when="@4.7") + depends_on("cubelib@4.6", when="@4.6") depends_on("pkgconfig", type="build") depends_on("dbus") depends_on("zlib-api") - depends_on("qt@5:", when="@4.3.0: +gui") - depends_on("qt@4.8:", when="@4.2.0:4.2 +gui") - - conflicts("~gui", when="@4.4:") + depends_on("qt@5:") def url_for_version(self, version): - if version >= Version("4.4"): - url = "http://apps.fz-juelich.de/scalasca/releases/cube/{0}/dist/cubegui-{1}.tar.gz" - else: - url = "http://apps.fz-juelich.de/scalasca/releases/cube/{0}/dist/cube-{1}.tar.gz" + url = "https://apps.fz-juelich.de/scalasca/releases/cube/{0}/dist/cubegui-{1}.tar.gz" return url.format(version.up_to(2), version) def configure_args(self): - spec = self.spec - - configure_args = ["--enable-shared"] - - if "+gui" not in spec: - configure_args.append("--without-gui") - - return configure_args + return ["--enable-shared"] def install(self, spec, prefix): make("install", parallel=False) diff --git a/repos/spack_repo/builtin/packages/cube/qt-version.patch b/repos/spack_repo/builtin/packages/cube/qt-version.patch deleted file mode 100644 index 33f36e76d27..00000000000 --- a/repos/spack_repo/builtin/packages/cube/qt-version.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -ruw cube-4.3.5.orig/build-backend/configure cube-4.3.5/build-backend/configure ---- cube-4.3.5.orig/build-backend/configure 2017-05-23 13:15:46.121704000 +0200 -+++ cube-4.3.5/build-backend/configure 2018-02-14 15:07:27.313842086 +0100 -@@ -5589,7 +5589,7 @@ - else - echo "$as_me:$LINENO: Running $QMAKE --version:" >&5 - $QMAKE --version >&5 2>&1 -- qmake_version_sed='/^.*Qt.version.\([0-9]\.[0-9]\.[0-9]\).in.*$/!d;s//\1/' -+ qmake_version_sed='/^.*Qt.version.\([0-9]\.[0-9]\+\.[0-9]\+\).in.*$/!d;s//\1/' - at_cv_QT_VERSION=`$QMAKE --version 2>&1 | sed "$qmake_version_sed"` - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_QT_VERSION" >&5 -diff -ruw cube-4.3.5.orig/build-frontend/configure cube-4.3.5/build-frontend/configure ---- cube-4.3.5.orig/build-frontend/configure 2017-05-23 13:16:00.499773000 +0200 -+++ cube-4.3.5/build-frontend/configure 2018-02-14 15:07:46.349487111 +0100 -@@ -19757,7 +19757,7 @@ - else - echo "$as_me:$LINENO: Running $QMAKE --version:" >&5 - $QMAKE --version >&5 2>&1 -- qmake_version_sed='/^.*Qt.version.\([0-9]\.[0-9]\.[0-9]\).in.*$/!d;s//\1/' -+ qmake_version_sed='/^.*Qt.version.\([0-9]\.[0-9]\+\.[0-9]\+\).in.*$/!d;s//\1/' - at_cv_QT_VERSION=`$QMAKE --version 2>&1 | sed "$qmake_version_sed"` - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_QT_VERSION" >&5 diff --git a/repos/spack_repo/builtin/packages/cubelib/package.py b/repos/spack_repo/builtin/packages/cubelib/package.py index e72c2c3d4a1..e4377e5a3a5 100644 --- a/repos/spack_repo/builtin/packages/cubelib/package.py +++ b/repos/spack_repo/builtin/packages/cubelib/package.py @@ -21,31 +21,6 @@ class Cubelib(AutotoolsPackage): version("4.7.1", sha256="62cf33a51acd9a723fff9a4a5411cd74203e24e0c4ffc5b9e82e011778ed4f2f") version("4.7", sha256="e44352c80a25a49b0fa0748792ccc9f1be31300a96c32de982b92477a8740938") version("4.6", sha256="36eaffa7688db8b9304c9e48ca5dc4edc2cb66538aaf48657b9b5ccd7979385b") - version( - "4.5", - sha256="98f66837b4a834b1aacbcd4480a242d7a8c4a1b8dd44e02e836b8c7a4f0ffd98", - deprecated="true", - ) - version( - "4.4.4", - sha256="adb8216ee3b7701383884417374e7ff946edb30e56640307c65465187dca7512", - deprecated="true", - ) - version( - "4.4.3", - sha256="bcd4fa81a5ba37194e590a5d7c3e6c44b448f5e156a175837b77c21206847a8d", - deprecated="true", - ) - version( - "4.4.2", - sha256="843335c7d238493f1b4cb8e07555ccfe99a3fa521bf162e9d8eaa6733aa1f949", - deprecated="true", - ) - version( - "4.4", - sha256="77548e1732fa5e82b13cc8465c8a21349bf42b45a382217d2e70d18576741d5c", - deprecated="true", - ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -54,7 +29,7 @@ class Cubelib(AutotoolsPackage): depends_on("zlib-api") def url_for_version(self, version): - url = "http://apps.fz-juelich.de/scalasca/releases/cube/{0}/dist/cubelib-{1}.tar.gz" + url = "https://apps.fz-juelich.de/scalasca/releases/cube/{0}/dist/cubelib-{1}.tar.gz" return url.format(version.up_to(2), version) diff --git a/repos/spack_repo/builtin/packages/cubew/package.py b/repos/spack_repo/builtin/packages/cubew/package.py index 090476bcf66..8cc361af871 100644 --- a/repos/spack_repo/builtin/packages/cubew/package.py +++ b/repos/spack_repo/builtin/packages/cubew/package.py @@ -22,31 +22,6 @@ class Cubew(AutotoolsPackage): version("4.7.1", sha256="0d364a4930ca876aa887ec40d12399d61a225dbab69e57379b293516d7b6db8d") version("4.7", sha256="a7c7fca13e6cb252f08d4380223d7c56a8e86a67de147bcc0279ebb849c884a5") version("4.6", sha256="99fe58ce7ab13061ebfbc360aedaecc28099a30636c5269a42c0cbaf57149aa8") - version( - "4.5", - sha256="16bd8fd864197a74ca65f7325761ad75d73d555072326e95e1338cff39f28a5c", - deprecated="true", - ) - version( - "4.4.3", - sha256="93fff6cc1e8b0780f0171ef5302a2e1a257f99b6383fbfc1b9b82f925ceff501", - deprecated="true", - ) - version( - "4.4.2", - sha256="31a71e9a05e6523de2b86b4026821bbb75fb411eb5b18ae38b27c1f44158014a", - deprecated="true", - ) - version( - "4.4.1", - sha256="c09e3f5a3533ebedee2cc7dfaacd7bac4680c14c3fa540669466583a23f04b67", - deprecated="true", - ) - version( - "4.4", - sha256="b1d6fecb546bc645ced430ea3fc166e85835f3b997d4e5f0dece71919fc95a99", - deprecated="true", - ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -55,7 +30,7 @@ class Cubew(AutotoolsPackage): depends_on("zlib-api") def url_for_version(self, version): - url = "http://apps.fz-juelich.de/scalasca/releases/cube/{0}/dist/cubew-{1}.tar.gz" + url = "https://apps.fz-juelich.de/scalasca/releases/cube/{0}/dist/cubew-{1}.tar.gz" return url.format(version.up_to(2), version) diff --git a/repos/spack_repo/builtin/packages/cublasmp/package.py b/repos/spack_repo/builtin/packages/cublasmp/package.py new file mode 100644 index 00000000000..e59404fd454 --- /dev/null +++ b/repos/spack_repo/builtin/packages/cublasmp/package.py @@ -0,0 +1,56 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import platform + +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.generic import Package + +from spack.package import * + +_versions = { + "0.5.0.898": { + "Linux-x86_64": dict( + sha256="e8bc831d743bbbf5f5af8b728ab4da74acdcea37c4ee1022e63f8f537d5488a2", + url="https://developer.download.nvidia.com/compute/cublasmp/redist/libcublasmp/linux-x86_64/libcublasmp-linux-x86_64-0.5.0.898_cuda12-archive.tar.xz", + ), + "Linux-aarch64": dict( + sha256="6e548a11bd6ba6c4aef77c9d1c16bdc39b7ec268547f856c5dab39085fbb7fd4", + url="https://developer.download.nvidia.com/compute/cublasmp/redist/libcublasmp/linux-sbsa/libcublasmp-linux-sbsa-0.5.0.898_cuda12-archive.tar.xz", + ), + } +} + + +class Cublasmp(Package, CudaPackage): + """ + NVIDIA cuBLASMp is a high-performance, multi-process, GPU-accelerated library + for distributed basic dense linear algebra. + """ + + homepage = "https://docs.nvidia.com/cuda/cublasmp/" + url = "https://developer.download.nvidia.com/compute/cublasmp/redist/libcublasmp/" + + maintainers("albestro") + + license("UNKNOWN") + + for ver, packages in _versions.items(): + package = packages.get(f"{platform.system()}-{platform.machine()}") + if package: + version(ver, **package) + + conflicts("~cuda", msg="cuBLASMp requires CUDA") + + depends_on("cuda@12:") + depends_on("nvshmem@3.1:") + depends_on("nccl@2.18.5:") + + for cuda_arch in CudaPackage.cuda_arch_values: + with when(f"cuda_arch={cuda_arch}"): + depends_on(f"nvshmem cuda_arch={cuda_arch}") + depends_on(f"nccl cuda_arch={cuda_arch}") + + def install(self, spec, prefix): + install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/cuda/package.py b/repos/spack_repo/builtin/packages/cuda/package.py index 718b87b40db..ef94df7f24f 100644 --- a/repos/spack_repo/builtin/packages/cuda/package.py +++ b/repos/spack_repo/builtin/packages/cuda/package.py @@ -23,6 +23,106 @@ # 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", + "https://developer.download.nvidia.com/compute/cuda/13.1.1/local_installers/cuda_13.1.1_590.48.01_linux_sbsa.run", + ), + "Linux-x86_64": ( + "24ff323723722781436804b392a48f691cb40de9808095d3e2192d0db6dfb8e4", + "https://developer.download.nvidia.com/compute/cuda/13.1.1/local_installers/cuda_13.1.1_590.48.01_linux.run", + ), + }, + "13.1.0": { + "Linux-aarch64": ( + "06cda49a7031b1c99f784237be5c852619379cbba9555036045044b9ddc99240", + "https://developer.download.nvidia.com/compute/cuda/13.1.0/local_installers/cuda_13.1.0_590.44.01_linux_sbsa.run", + ), + "Linux-x86_64": ( + "6b4fdf2694b3d7afbc526f26412b4cf4f050b202324455053307310f53b323a7", + "https://developer.download.nvidia.com/compute/cuda/13.1.0/local_installers/cuda_13.1.0_590.44.01_linux.run", + ), + }, + "13.0.2": { + "Linux-aarch64": ( + "93ab4c77ae2bc0f1f600ef48ccd3ff25a3203a6a6161a84511a33cbf5b5621fc", + "https://developer.download.nvidia.com/compute/cuda/13.0.2/local_installers/cuda_13.0.2_580.95.05_linux_sbsa.run", + ), + "Linux-x86_64": ( + "81a5d0d0870ba2022efb0a531dcc60adbdc2bbff7b3ef19d6fd6d8105406c775", + "https://developer.download.nvidia.com/compute/cuda/13.0.2/local_installers/cuda_13.0.2_580.95.05_linux.run", + ), + }, + "13.0.1": { + "Linux-aarch64": ( + "927e2c2a6a3e0d12e7e93df10dad6d8f3c688b9e27e9d2034f82d437ec2d2666", + "https://developer.download.nvidia.com/compute/cuda/13.0.1/local_installers/cuda_13.0.1_580.82.07_linux_sbsa.run", + ), + "Linux-x86_64": ( + "4c7ac59d1f41d67be27d140a4622801738ad71088570a0facfd6ec878a4c4100", + "https://developer.download.nvidia.com/compute/cuda/13.0.1/local_installers/cuda_13.0.1_580.82.07_linux.run", + ), + }, + "13.0.0": { + "Linux-aarch64": ( + "d956c956d0aef7270f26e6d8a9dbb2aeb3bd0d2214195c0e0e230a4cd37ff3d2", + "https://developer.download.nvidia.com/compute/cuda/13.0.0/local_installers/cuda_13.0.0_580.65.06_linux_sbsa.run", + ), + "Linux-x86_64": ( + "c64969f35ad99bf3f9e8acb8e3d22355150c6ca07acc16a853778600a9b65ba6", + "https://developer.download.nvidia.com/compute/cuda/13.0.0/local_installers/cuda_13.0.0_580.65.06_linux.run", + ), + }, + "12.9.1": { + "Linux-aarch64": ( + "64f47ab791a76b6889702425e0755385f5fa216c5a9f061875c7deed5f08cdb6", + "https://developer.download.nvidia.com/compute/cuda/12.9.1/local_installers/cuda_12.9.1_575.57.08_linux_sbsa.run", + ), + "Linux-x86_64": ( + "0f6d806ddd87230d2adbe8a6006a9d20144fdbda9de2d6acc677daa5d036417a", + "https://developer.download.nvidia.com/compute/cuda/12.9.1/local_installers/cuda_12.9.1_575.57.08_linux.run", + ), + }, "12.9.0": { "Linux-aarch64": ( "f3b7ae71f95d11de0a03ccfa1c0aff7be336d2199b50b1a15b03695fd15a6409", @@ -715,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" ) @@ -725,11 +833,15 @@ class Cuda(Package): description="Allow unsupported host compiler and CUDA version combinations", ) - depends_on("libxml2", when="@10.1.243:") + # `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 - depends_on("ncurses abi=5", type="run", when="@:11.3.99+dev") + depends_on("ncurses abi=5", type="run", when="@:11.3") + + depends_on("gzip", type="build") + depends_on("coreutils", type="build") provides("opencl@:1.2", when="@7:") provides("opencl@:1.1", when="@:6") @@ -746,7 +858,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: # CUDA 9 has a fix for this, but CUDA 8 and lower don't. env.append_path("PERL5LIB", self.stage.source_path) - if self.spec.satisfies("@10.1.243:"): + if self.spec.satisfies("^libxml2"): libxml2_home = self.spec["libxml2"].prefix env.set("LIBXML2HOME", libxml2_home) env.append_path("LD_LIBRARY_PATH", libxml2_home.lib) @@ -798,9 +910,9 @@ def install(self, spec, prefix): includedir = "targets/ppc64le-linux/include" os.makedirs(os.path.join(prefix, includedir)) os.makedirs(os.path.join(prefix, "src")) - os.symlink(includedir, os.path.join(prefix, "include")) + symlink(includedir, os.path.join(prefix, "include")) - install_shell = which("sh") + install_shell = which("sh", required=True) if self.spec.satisfies("@:8.0.61"): # Perl 5.26 removed current directory from module search path. diff --git a/repos/spack_repo/builtin/packages/cudnn/package.py b/repos/spack_repo/builtin/packages/cudnn/package.py index 5cbb0c85b0e..3031e3e2c78 100644 --- a/repos/spack_repo/builtin/packages/cudnn/package.py +++ b/repos/spack_repo/builtin/packages/cudnn/package.py @@ -4,12 +4,176 @@ import os import platform +from pathlib import Path from spack_repo.builtin.build_systems.generic import Package from spack.package import * _versions = { + # cuDNN 9.21.0 + "9.21.0.82-13": { + "Linux-x86_64": "f52b44a8cd5e9560ace9e2656771b2f03598ddee2cf41cf252b8a29867e5381c", + "Linux-aarch64": "ef9f4c11a8d42056d531cb71a8b9a9c483143447f45f68a5d9ce4b763a80e7a1", + }, + "9.21.0.82-12": { + "Linux-x86_64": "9f97dde6528a1733550c79ee3f5ba3e9a0638e0e1670e4b167d56e0ef6d5910b", + "Linux-aarch64": "f12e2ad2c0722c8feaeefe416a697cdb117817d73d8ddab5d45ba65a51b01b46", + }, + # cuDNN 9.20.0 + "9.20.0.48-13": { + "Linux-x86_64": "73f091ee57668dc18e8b1b61811c0ddff2ec0b762efe613e9f27f9ebfd6c20c0", + "Linux-aarch64": "21140178191c620799ec09620ae1d89649c9b95441163f8ef956e1493a0e3704", + }, + "9.20.0.48-12": { + "Linux-x86_64": "c10623d2ee9fd4cd0a5d809237958b80884405c2f8a122712dd7b98c1d780a92", + "Linux-aarch64": "6ca43b54656cd3f65585b289cace425dccb421e4e8bba0ad3cb4d844db3cc01e", + }, + # cuDNN 9.19.1 + "9.19.1.2-13": { + "Linux-x86_64": "0c1315a013a140a1e9f6425ddd494ac346410acc78f64d4449ff4cf061fae2ae", + "Linux-aarch64": "608eb48bb928adae8268f4f9b639835996d918495fb46ef2b96764d836699ac8", + }, + "9.19.1.2-12": { + "Linux-x86_64": "80e57a4880458ec14c394291ed891452a80ebbdae6ca81a1472bdf8d98cf2992", + "Linux-aarch64": "ba61845ec6cc5e5b8076b4547616333b1afc17f345b5edb3de44e6b718cee7c8", + }, + # cuDNN 9.18.1 + "9.18.1.3-13": { + "Linux-x86_64": "de68f9e387c9195af0de6c7b4a4e22d103bd5ea20f27ffe1f92b8c30fe833178", + "Linux-aarch64": "f38a97d1332d765dd3e168b001baa06c3f8cf4bd9dd80dcaca807b7878752aa0", + }, + "9.18.1.3-12": { + "Linux-x86_64": "d52bc0633e074bddf8e971f996bd9fc12b83b0717401ebcf2d35e77cfda59e9f", + "Linux-aarch64": "11a0259d41f52201ac5948cbbda0e5fed468edc3ea63ce42c7c23e653a0c1af8", + }, + # cuDNN 9.17.1 + "9.17.1.4-13": { + "Linux-x86_64": "ba1c895c328b274bff31ac0cd71d7d63ca3f1f070f7007aaff4cac012b971528", + "Linux-aarch64": "6a44b27a05b4e7e477aba6ed019eefa46028f758f15b1de67f1384aef4bcb6fb", + }, + "9.17.1.4-12": { + "Linux-x86_64": "fb82878a4efd3461b68ba0d2bb7db79331e793ac766b430c05c2ede407afb7a8", + "Linux-aarch64": "3b7211a69908ecaabda4298f0e4f2793caf391bfb5108ee2a2fd5c33412eb0cf", + }, + # cuDNN 9.17.0 + "9.17.0.29-13": { + "Linux-x86_64": "455f15075493c82a1a8850aae6120f3fa6f7e457cbef56c1cb2e0a618b5b509e", + "Linux-aarch64": "19be6d8f2b63a459e6758185c1e8feeddecdb4b56717dc4e4bbcfe30a0619b7d", + }, + "9.17.0.29-12": { + "Linux-x86_64": "595de8d82e979beee74b079ca1249c6292f643f6543ee7f2df8499d51da159f0", + "Linux-aarch64": "8b6a90133a06e0b25bcdcd806a86f23a94b99837e2b8b46e3c8eddfdc1ff06cb", + }, + # cuDNN 9.16.0 + "9.16.0.29-13": { + "Linux-x86_64": "b524133292dd0a8ea0899a468005ea6332154929fffce337f8ea53b7bd217cfc", + "Linux-aarch64": "da7a66fbdb3c780b2e9e5dbcb4a15aa83f17030bf848daf98e6247e7982234cb", + }, + "9.16.0.29-12": { + "Linux-x86_64": "d0cd6f0ef099b0ca1e667239e8e83559ab9814a6a5e454ee737517ddd0a37b10", + "Linux-aarch64": "cd5576183668b6e3eb8e7825b477a97dd5cb309065e42b507f293703b26e39d1", + }, + # cuDNN 9.15.1 + "9.15.1.9-13": { + "Linux-x86_64": "cb3434657f66dd548ee71b5646a7451b3a4be197caecbebae8c18f8ffba22666", + "Linux-aarch64": "4e8bcd859105d4b9749a16c88cfbe177611e60ae88cd0d0ed04412ccb9822897", + }, + "9.15.1.9-12": { + "Linux-x86_64": "4bd08d37ef761af423714adfd1d8107bdd2581a55136f8d70d15560f7330b194", + "Linux-aarch64": "7301d4c76d016350b86747907e45228354fe6939e317ead501420e3db04b9e6b", + }, + # cuDNN 9.15.0 + "9.15.0.58-13": { + "Linux-x86_64": "6ddfeaa00ba534c7917f15666d7fc1e8f05f822a7681eb9adbe4b86beaebe8bc", + "Linux-aarch64": "ea86b8270cb31c397425d123d0d64ab483e695a81155e798ad9324024bcfa0ed", + }, + "9.15.0.57-12": { + "Linux-x86_64": "183cb46b7b6d5d7c70258ce674cf795611a59a32c220d25e4f772f9f07f77e29", + "Linux-aarch64": "dbc46d54aab04b04885c6df344373e5879366b6c066856cafb0cfc2707842595", + }, + # cuDNN 9.14.0 + "9.14.0.64-13": { + "Linux-x86_64": "75b8c5feb7e65107dc8881af2cf245f9be77274f607c019a966347e36d1526e7", + "Linux-aarch64": "79b052a3c78784b7010fe07ffa56c86f731abe365678851dc92a6ee1c1ee5452", + }, + "9.14.0.64-12": { + "Linux-x86_64": "fcaf904938b5bab4e782f4d064dd5b5fca7d9872a7f21a9491cf145634be4473", + "Linux-aarch64": "971edb53eb694fc94d3d167d5332ac9e79a6eefb85b1668b21c070940da353e5", + }, + # cuDNN 9.13.1 + "9.13.1.26-13": { + "Linux-x86_64": "114cdfd8173bc49449a4b570323e4a9a9bc2ad2766abc4cd3d63f5cd208e3804", + "Linux-aarch64": "258590df03a98c3f812d7d32e41bba52919765ba730de8693036c711b265d930", + }, + "9.13.1.26-12": { + "Linux-x86_64": "f922c5d77939a0a2db9d0e3440749c532830b7a03e2657947ae75291165e6dee", + "Linux-aarch64": "56249ac2777b61ee70bb56b01e9b9eaf53fdc9be50fc2540d9a290df2dc4cd53", + }, + # cuDNN 9.13.0 + "9.13.0.50-13": { + "Linux-x86_64": "02f47d9456773c80d97ed245efd9eb22bb985dcfdb74559213536035291e7a01", + "Linux-aarch64": "78931057322ab87b72b0a988462568412edfed5bdef1eaf717961351b53cb3d0", + }, + "9.13.0.50-12": { + "Linux-x86_64": "28c5c59316464434eb7bafe75fc36285160c28d559a50056ded13394955d1f7d", + "Linux-aarch64": "28f3f86aa102870c5d6804bca1bb1a0dcc1df69d0235c0a4120ae0aa6d14ffc7", + }, + # cuDNN 9.12.0 + "9.12.0.46-13": { + "Linux-x86_64": "ce92b4058d95c85959b822baa56389126a31678f5068b486523d1aa7f6490fcb", + "Linux-aarch64": "27d9e9c70a5f464ddbacd4fdd433f4e736d6f4b32387c111d77d33b583c46f26", + }, + "9.12.0.46-12": { + "Linux-x86_64": "21fad1b3a8a3db018868184b2082bd492633ae5101752432d655782bd108b19e", + "Linux-aarch64": "af8c670f221bd0837c27452c1a88d31384b459e9dd0947818a06fbafdbef7f69", + }, + # cuDNN 9.11.1 + "9.11.1.4-12": { + "Linux-x86_64": "609ac48a448e4533287a4d7c62056bf130fae8c3b1eb2a218080e29e0026ec18", + "Linux-aarch64": "e7a65ea73f65ee9ec9cc73bfaa5441d06a1116f62943d01b8dad02f4b51b177c", + }, + # cuDNN 9.11.0 + "9.11.0.98-12": { + "Linux-x86_64": "b60c8fad01fa1521d2e71ed38887b90478d7f07b3da49fd68ab118a9fee4da48", + "Linux-aarch64": "5fcd6451d88a9d3b7facbc00481fa5e2bb15f2ca6dc6f86e0b2b201bc42ecd56", + }, + # cuDNN 9.10.2 + "9.10.2.21-12": { + "Linux-x86_64": "d0defcbc4c6dad711ff4cb66d254036a300c9071b07c7b64199aacab534313c1", + "Linux-aarch64": "4d57dceba3be27a68b078ce8630525bf40ab7f1b546eb45d0b363c3eeb55f8fa", + }, + "9.10.2.21-11": { + "Linux-x86_64": "ab05bc70a120425b8b811544a6bc6458ca1f3cc54a8ccc51a1113749ecab1442", + "Linux-aarch64": "6461e6037a3b8ab5a9c17f527877d493f7cde9eb855fadf686140c7e3fb41aaf", + }, + # cuDNN 9.10.1 + "9.10.1.4-12": { + "Linux-x86_64": "be759754e5bd1fcd9b490e224796c87f093c1e92b2b6357854d5371b6aeeb8be", + "Linux-aarch64": "d5cd68d4d09a151ad839a352f6fa01c3f86ccfb498704456892b992c3d8e4c88", + }, + "9.10.1.4-11": { + "Linux-x86_64": "f92286c1e84792759c39dc4d79db21ede2f96bf939f6a2f355e7e607e2184a37", + "Linux-aarch64": "04b93f4ddb010cde223aeb7713209f37a7bda0b56d72740bc819310876f0d329", + }, + # cuDNN 9.10.0 + "9.10.0.56-12": { + "Linux-x86_64": "cc0ad9eaaf6ef6569b20250111f9df0569816c17076c58aad8aea1661e2fc781", + "Linux-aarch64": "83ccb2a039f266e3aedc4ac6b186ded5f49d1be67e82b445f595eb2ec3cc17eb", + }, + "9.10.0.56-11": { + "Linux-x86_64": "a0579702b538378243795328c186bb37199618494b498f1b74a5b61304861733", + "Linux-aarch64": "b1a5cfd60c96ce8a09d0c7dc5c5427d874e08cc8813f5bad29755d674c8b0374", + }, + # cuDNN 9.9.0 + "9.9.0.52-12": { + "Linux-x86_64": "73f99e9c5d39cb7799dfe0f7b42d09a0bf6e3f5a90dbd16d570438daa1daea18", + "Linux-aarch64": "f0faeee9eff3d77d0e8a3c55ce6a096ee6050f7da4e54e1ff541e9fa31820bbd", + }, + "9.9.0.52-11": { + "Linux-x86_64": "5696665117d87f112024ec47d7d3a90f5f338d13226dd6ea50e5b24d6163872f", + "Linux-aarch64": "564323790e3c9f9b4ebcbbf7624cac8c0f8f6b1c8da42efcd0bd5087ed9bcd8c", + }, # cuDNN 9.8.0 "9.8.0.87-12": { "Linux-x86_64": "321b9b33bb1287404d93d5672d352f16feabc4b220ac6ae0b86e4b27f257dcf4", @@ -369,6 +533,8 @@ class Cudnn(Package): cuda_ver = cuda_ver.up_to(1) depends_on(f"cuda@{cuda_ver}", when=f"@{long_ver}") + depends_on("patchelf", type="build", when="@8") + def url_for_version(self, version): # Get the system and machine arch for building the file path sys = "{0}-{1}".format(platform.system(), platform.machine()) @@ -445,5 +611,18 @@ def install(self, spec, prefix): if os.path.isdir(target_include) and not os.path.isdir(prefix.include): symlink(target_include, prefix.include) + # CuDNN 8 does not have rpaths set in the helper libraries, which can cause + # issues if the LD_LIBRARY_PATH is not set at runtime. + # This is not an issue in cudnn@:7 as those only have one libcudnn.so file, + # and also not an issue in cudnn@9 comes with RPATH set to $ORIGIN + # in all those helper libraries. + # Note that libcudnn.so does come with the RPATH set. + @run_after("install", when="@8") + def ensure_rpaths(self): + patchelf = which("patchelf") + for path in Path(self.prefix.lib).rglob("lib*.so.*"): + if not path.is_symlink() and not path.name.startswith("libcudnn.so"): + patchelf("--set-rpath", "$ORIGIN", str(path)) + # contains precompiled binaries without rpaths unresolved_libraries = ["*"] diff --git a/repos/spack_repo/builtin/packages/cudss/package.py b/repos/spack_repo/builtin/packages/cudss/package.py index 94d2ac761a4..2dc0d83ad73 100644 --- a/repos/spack_repo/builtin/packages/cudss/package.py +++ b/repos/spack_repo/builtin/packages/cudss/package.py @@ -9,6 +9,26 @@ from spack.package import * _versions = { + "0.7.1": { + "Linux-x86_64": ( + "946571d9ea164f948e402dd97a14541cb90fbec800336cfa7ae644af5937632f", + "https://developer.download.nvidia.com/compute/cudss/redist/libcudss/linux-x86_64/libcudss-linux-x86_64-0.7.1.4_cuda12-archive.tar.xz", + ), + "Linux-aarch64": ( + "f283c31b6badf4a5277014295705eac8e6e28f27de30d746719ea1cef7a750b8", + "https://developer.download.nvidia.com/compute/cudss/redist/libcudss/linux-aarch64/libcudss-linux-aarch64-0.7.1.4_cuda12-archive.tar.xz", + ), + }, + "0.7.0": { + "Linux-x86_64": ( + "c98d5ef87e8b6a356b21a678715033b19620ce58b5fa64c97e25e6d3e76e42dc", + "https://developer.download.nvidia.com/compute/cudss/redist/libcudss/linux-x86_64/libcudss-linux-x86_64-0.7.0.20_cuda12-archive.tar.xz", + ), + "Linux-aarch64": ( + "ce3de5e6a0cee00fd1fc355881308ef0c692c6e14b6a5625aa35a7f9df98b846", + "https://developer.download.nvidia.com/compute/cudss/redist/libcudss/linux-aarch64/libcudss-linux-aarch64-0.7.0.20_cuda12-archive.tar.xz", + ), + }, "0.6.0": { "Linux-x86_64": ( "159ce1d4e3e4bba13b0bd15cf943e44b869c53b7a94f9bac980768c927f02e75", diff --git a/repos/spack_repo/builtin/packages/cufftmp/package.py b/repos/spack_repo/builtin/packages/cufftmp/package.py new file mode 100644 index 00000000000..af16451d11d --- /dev/null +++ b/repos/spack_repo/builtin/packages/cufftmp/package.py @@ -0,0 +1,58 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import platform + +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.generic import Package + +from spack.package import * + +_versions = { + "11.4.0.6": { + "Linux-x86_64": dict( + sha256="6a0597e10e698ab46ea9a607efe06f681ba6e2bf0d8eddd8a72a09c18a8f7253", + url="https://developer.download.nvidia.com/compute/cufftmp/redist/libcufftmp/linux-x86_64/libcufftmp-linux-x86_64-11.4.0.6_cuda12-archive.tar.xz", + ), + "Linux-aarch64": dict( + sha256="c0f944fd6ef2e13ef5adfd48ef2e02660f5f573a69c515580096a9eaae13be16", + url="https://developer.download.nvidia.com/compute/cufftmp/redist/libcufftmp/linux-sbsa/libcufftmp-linux-sbsa-11.4.0.6_cuda12-archive.tar.xz", + ), + } +} + + +class Cufftmp(Package, CudaPackage): + """ + NVIDIA cuFFTMp library. + """ + + homepage = "https://docs.nvidia.com/cuda/cufftmp/" + url = "https://developer.download.nvidia.com/compute/cufftmp/redist/libcufftmp" + + maintainers("albestro") + + # https://docs.nvidia.com/cuda/cufftmp/license.html + license("NVIDIA Software License Agreement") + + for ver, packages in _versions.items(): + package = packages.get(f"{platform.system()}-{platform.machine()}") + if package: + version(ver, **package) + + conflicts("~cuda", msg="cuFFTMp requires CUDA") + + depends_on("cuda@12:") + depends_on("nvshmem") + + # cuFFTMp requires a specific version of NVSHMEM + # https://docs.nvidia.com/cuda/cufftmp/usage/nvshmem_and_cufftmp.html#compatibility + depends_on("nvshmem@3.1.7:", when="@11.4.0") + + for cuda_arch in CudaPackage.cuda_arch_values: + with when(f"cuda_arch={cuda_arch}"): + depends_on(f"nvshmem cuda_arch={cuda_arch}") + + def install(self, spec, prefix): + install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/cupla/package.py b/repos/spack_repo/builtin/packages/cupla/package.py deleted file mode 100644 index 17b5d6b553a..00000000000 --- a/repos/spack_repo/builtin/packages/cupla/package.py +++ /dev/null @@ -1,47 +0,0 @@ -# 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 Cupla(Package): - """C++ User interface for the Platform independent Library Alpaka""" - - homepage = "https://github.com/alpaka-group/cupla" - git = "https://github.com/alpaka-group/cupla.git" - url = "https://github.com/alpaka-group/cupla/archive/refs/tags/0.3.0.tar.gz" - - maintainers("vvolkl") - - version("develop", branch="dev") - version("master", branch="master") - version("0.3.0", sha256="035512517167967697e73544c788453de5e3f0bc4e8d4864b41b2e287365cbaf") - - depends_on("cxx", type="build") # generated - - depends_on("alpaka@0.6.0:0.7") - - def install(self, spec, prefix): - install_tree("include", self.prefix.include) - install_tree("src", self.prefix.src) - install_tree("doc", self.prefix.share.cupla.doc) - install_tree("example", self.prefix.example) - install_tree("cmake", self.prefix.cmake) - install("Findcupla.cmake", self.prefix) - install("cuplaConfig.cmake", self.prefix) - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - env.set("CUPLA_ROOT", self.prefix) - env.prepend_path("CMAKE_PREFIX_PATH", self.prefix) - env.set("CUPLA", self.prefix.share.cupla) - - def setup_dependent_build_environment( - self, env: EnvironmentModifications, dependent_spec: Spec - ) -> None: - env.set("CUPLA_ROOT", self.prefix) - env.prepend_path("CMAKE_PREFIX_PATH", self.prefix) - env.set("CUPLA", self.prefix.share.cupla) diff --git a/repos/spack_repo/builtin/packages/cups/package.py b/repos/spack_repo/builtin/packages/cups/package.py index c05030e0534..577c558d239 100644 --- a/repos/spack_repo/builtin/packages/cups/package.py +++ b/repos/spack_repo/builtin/packages/cups/package.py @@ -23,10 +23,6 @@ class Cups(AutotoolsPackage): version("2.4.11", sha256="9a88fe1da3a29a917c3fc67ce6eb3178399d68e1a548c6d86c70d9b13651fd71") version("2.4.10", sha256="d75757c2bc0f7a28b02ee4d52ca9e4b1aa1ba2affe16b985854f5336940e5ad7") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2023-4504 - version("2.3.3", sha256="261fd948bce8647b6d5cb2a1784f0c24cc52b5c4e827b71d726020bcc502f3ee") - version("2.2.3", sha256="66701fe15838f2c892052c913bde1ba106bbee2e0a953c955a62ecacce76885f") depends_on("c", type="build") depends_on("cxx", type="build") @@ -34,10 +30,6 @@ class Cups(AutotoolsPackage): depends_on("gnutls") - def url_for_version(self, version): - org = "apple" if version < Version("2.4") else "OpenPrinting" - return f"https://github.com/{org}/cups/releases/download/v{version}/cups-{version}-source.tar.gz" - def configure_args(self): args = ["--enable-gnutls", "--with-components=core"] return args diff --git a/repos/spack_repo/builtin/packages/curl/easy-lock-sched-header.patch b/repos/spack_repo/builtin/packages/curl/easy-lock-sched-header.patch deleted file mode 100644 index 33f08fa42f2..00000000000 --- a/repos/spack_repo/builtin/packages/curl/easy-lock-sched-header.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e2e7f54b7bea521fa8373095d0f43261a720cda0 Mon Sep 17 00:00:00 2001 -From: Daniel Stenberg -Date: Mon, 27 Jun 2022 08:46:21 +0200 -Subject: [PATCH] easy_lock.h: include sched.h if available to fix build - -Patched-by: Harry Sintonen - -Closes #9054 ---- - lib/easy_lock.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/lib/easy_lock.h b/lib/easy_lock.h -index 819f50ce815b8..1f54289ceb2d3 100644 ---- a/lib/easy_lock.h -+++ b/lib/easy_lock.h -@@ -36,6 +36,9 @@ - - #elif defined (HAVE_ATOMIC) - #include -+#if defined(HAVE_SCHED_YIELD) -+#include -+#endif - - #define curl_simple_lock atomic_bool - #define CURL_SIMPLE_LOCK_INIT false diff --git a/repos/spack_repo/builtin/packages/curl/package.py b/repos/spack_repo/builtin/packages/curl/package.py index 6f59ee9784e..8792112b6f7 100644 --- a/repos/spack_repo/builtin/packages/curl/package.py +++ b/repos/spack_repo/builtin/packages/curl/package.py @@ -8,14 +8,15 @@ import sys from spack_repo.builtin.build_systems.autotools import AutotoolsBuilder, AutotoolsPackage +from spack_repo.builtin.build_systems.cmake import CMakeBuilder, CMakePackage from spack_repo.builtin.build_systems.nmake import NMakeBuilder, NMakePackage from spack.package import * -is_windows = sys.platform == "win32" +IS_WINDOWS = sys.platform == "win32" -class Curl(NMakePackage, AutotoolsPackage): +class Curl(NMakePackage, AutotoolsPackage, CMakePackage): """cURL is an open source command line tool and library for transferring data with URL syntax""" @@ -29,99 +30,58 @@ class Curl(NMakePackage, AutotoolsPackage): license("curl") - version("8.11.1", sha256="e9773ad1dfa21aedbfe8e1ef24c9478fa780b1b3d4f763c98dd04629b5e43485") - - # Deprecated versions due to CVEs - version( - "8.10.1", - sha256="3763cd97aae41dcf41950d23e87ae23b2edb2ce3a5b0cf678af058c391b6ae31", - deprecated=True, - ) - version( - "8.8.0", - sha256="40d3792d38cfa244d8f692974a567e9a5f3387c547579f1124e95ea2a1020d0d", - deprecated=True, - ) - version( - "8.7.1", - sha256="05bbd2b698e9cfbab477c33aa5e99b4975501835a41b7ca6ca71de03d8849e76", - deprecated=True, - ) - version( - "8.6.0", - sha256="b4785f2d8877fa92c0e45d7155cf8cc6750dbda961f4b1a45bcbec990cf2fa9b", - deprecated=True, - ) - version( - "8.4.0", - sha256="e5250581a9c032b1b6ed3cf2f9c114c811fc41881069e9892d115cc73f9e88c6", - deprecated=True, - ) - version( - "8.1.2", - sha256="b54974d32fd610acace92e3df1f643144015ac65847f0a041fdc17db6f43f243", - deprecated=True, - ) - version( - "8.0.1", - sha256="9b6b1e96b748d04b968786b6bdf407aa5c75ab53a3d37c1c8c81cdb736555ccf", - deprecated=True, - ) - # needed by r@:4.2 - version( - "7.88.1", - sha256="8224b45cce12abde039c12dc0711b7ea85b104b9ad534d6e4c5b4e188a61c907", - deprecated=True, - ) - # needed by old r-curl - version( - "7.63.0", - sha256="9bab7ed4ecff77020a312d84cc5fb7eb02d58419d218f267477a724a17fd8dd8", - deprecated=True, - ) - - default_tls = "openssl" - if sys.platform == "darwin": - default_tls = "secure_transport" - elif sys.platform == "win32": - default_tls = "sspi" + version("8.20.0", sha256="4be48e69cf467246cb97d369b85d78a08528f2b37cffef2418ee16e6a4eb596e") + version("8.19.0", sha256="eba3230c1b659211a7afa0fbf475978cbf99c412e4d72d9aa92d020c460742d4") + version("8.18.0", sha256="ffd671a3dad424fb68e113a5b9894c5d1b5e13a88c6bdf0d4af6645123b31faf") + version("8.17.0", sha256="230032528ce5f85594d4f3eace63364c4244ccc3c801b7f8db1982722f2761f4") + version("8.15.0", sha256="699a6d2192322792c88088576cff5fe188452e6ea71e82ca74409f07ecc62563") + version("8.14.1", sha256="5760ed3c1a6aac68793fc502114f35c3e088e8cd5c084c2d044abdf646ee48fb") # TODO: add dependencies for other possible TLS backends - variant( - "tls", - default=default_tls, - description="TLS backend", - values=( + + # common arguments for tls variant definitions + tls_args = { + "description": "TLS backend", + "multi": True, + "values": ( # 'amissl', # 'bearssl', "gnutls", - conditional("mbedtls", when="@7.46:"), + "mbedtls", # 'mesalink', - conditional("nss", when="@:7.81"), "openssl", # 'rustls', # 'schannel', - "secure_transport", + # secure_transport support was removed in curl 8.15.0 + conditional("secure_transport", when="platform=darwin @:8.14"), # 'wolfssl', conditional("sspi", when="platform=windows"), ), - multi=True, - ) + } + + variant("tls", default="openssl", **tls_args) + variant("tls", default="sspi", when="platform=windows", **tls_args) + variant("tls", default="secure_transport", when="platform=darwin @:8.14", **tls_args) + variant("nghttp2", default=True, description="build nghttp2 library (requires C++11)") variant("libssh2", default=False, description="enable libssh2 support") - variant("libssh", default=False, description="enable libssh support", when="@7.58:") + variant("libssh", default=False, description="enable libssh support") variant("gssapi", default=False, description="enable Kerberos support") variant("librtmp", default=False, description="enable Rtmp support") variant("ldap", default=False, description="enable ldap support") variant("libidn2", default=False, description="enable libidn2 support") variant( "libs", - default="shared,static" if not is_windows else "shared", + default="shared,static" if not IS_WINDOWS else "shared", values=("shared", "static"), - multi=not is_windows, + multi=not IS_WINDOWS, description="Build shared libs, static libs or both", ) + with when("platform=windows build_system=cmake"): + variant("static-crt", default=False, description="Link to static CRT") + variant("unicode", default=False, description="Use the unicode version of Windows API") + conflicts("platform=linux", when="tls=secure_transport", msg="Only supported on macOS") depends_on("c", type="build") # generated @@ -131,22 +91,16 @@ class Curl(NMakePackage, AutotoolsPackage): depends_on("pkgconfig", type="build", when="platform=linux") depends_on("pkgconfig", type="build", when="platform=freebsd") - depends_on("gnutls", when="tls=gnutls") - - with when("tls=mbedtls"): - depends_on("mbedtls +pic") - depends_on("mbedtls@:2", when="@:7.78") - depends_on("mbedtls@:3.5", when="@:8.7") - depends_on("mbedtls@2:", when="@7.79:") - depends_on("mbedtls@3.2:", when="@8.8") # https://github.com/curl/curl/issues/13748 + # CMake 4.0: is not compatible with CMake systems requiring + # 3.0, which curl@7.63 requires + depends_on("cmake@:3", type="build", when="build_system=cmake @:7.63") - depends_on("nss", when="tls=nss") - - with when("tls=openssl"): - depends_on("openssl") - # Since https://github.com/curl/curl/commit/ee36e86ce8f77a017c49b8312814c33f4b969565 - # there is OpenSSL 3 detection. - depends_on("openssl@:1", when="@:7.76") + depends_on("gnutls@3.6.5:", when="tls=gnutls @8.18:") + depends_on("gnutls", when="tls=gnutls") + depends_on("mbedtls@3: +pic", when="tls=mbedtls @8.17:") + depends_on("mbedtls@2: +pic", when="tls=mbedtls") + depends_on("openssl@3:", when="tls=openssl @8.18:") + depends_on("openssl", when="tls=openssl") depends_on("libidn2", when="+libidn2") depends_on("zlib-api") @@ -156,14 +110,19 @@ class Curl(NMakePackage, AutotoolsPackage): depends_on("krb5", when="+gssapi") depends_on("rtmpdump", when="+librtmp") + # Perl pops up as a build-time dependency sometimes in curl. + # They try to fix it quickly when it happens. # https://github.com/curl/curl/issues/12832 # https://github.com/curl/curl/issues/13508 - depends_on("perl", type="build", when="@8.6:8.7.1") - - # https://github.com/curl/curl/pull/9054 - patch("easy-lock-sched-header.patch", when="@7.84.0") - - build_system("autotools", conditional("nmake", when="platform=windows"), default="autotools") + # https://github.com/curl/curl/issues/18088 + depends_on("perl", type="build", when="@8.15.0") + + build_system( + "autotools", + "cmake", + conditional("nmake", when="@:8.11 platform=windows"), + default="cmake" if IS_WINDOWS else "autotools", + ) @classmethod def determine_version(cls, exe): @@ -227,12 +186,10 @@ def configure_args(self): "--without-libgsasl", "--without-libpsl", "--without-zstd", + "--disable-docs", "--disable-manual", ] - if spec.satisfies("@8.7:"): - args.append("--disable-docs") - args += self.enable_or_disable("libs") # Make gnutls / openssl decide what certs are trusted. @@ -240,12 +197,6 @@ def configure_args(self): if spec.satisfies("tls=gnutls") or spec.satisfies("tls=openssl"): args.extend(["--without-ca-bundle", "--without-ca-path", "--with-ca-fallback"]) - # https://daniel.haxx.se/blog/2021/06/07/bye-bye-metalink-in-curl/ - # We always disable it explicitly, but the flag is gone in newer - # versions. - if spec.satisfies("@:7.77"): - args.append("--without-libmetalink") - if spec.satisfies("+gssapi"): args.append("--with-gssapi=" + spec["krb5"].prefix) else: @@ -268,41 +219,22 @@ def with_or_without_gnutls(self, activated): return "--without-gnutls" def with_or_without_mbedtls(self, activated): - if self.spec.satisfies("@7.46:"): - if activated: - return "--with-mbedtls=" + self.spec["mbedtls"].prefix - else: - return "--without-mbedtls" - - def with_or_without_nss(self, activated): if activated: - return "--with-nss=" + self.spec["nss"].prefix + return "--with-mbedtls=" + self.spec["mbedtls"].prefix else: - return "--without-nss" + return "--without-mbedtls" def with_or_without_openssl(self, activated): - if self.spec.satisfies("@7.77:"): - if activated: - return "--with-openssl=" + self.spec["openssl"].prefix - else: - return "--without-openssl" + if activated: + return "--with-openssl=" + self.spec["openssl"].prefix else: - if activated: - return "--with-ssl=" + self.spec["openssl"].prefix - else: - return "--without-ssl" + return "--without-openssl" def with_or_without_secure_transport(self, activated): - if self.spec.satisfies("@7.65:"): - if activated: - return "--with-secure-transport" - else: - return "--without-secure-transport" + if activated: + return "--with-secure-transport" else: - if activated: - return "--with-darwinssl" - else: - return "--without-darwinssl" + return "--without-secure-transport" class NMakeBuilder(BuildEnvironment, NMakeBuilder): @@ -314,6 +246,7 @@ def nmake_args(self): args.append("mode=%s" % mode) args.append("WITH_ZLIB=%s" % mode) args.append("ZLIB_PATH=%s" % self.spec["zlib-api"].prefix) + args.append("WINBUILD_ACKNOWLEDGE_DEPRECATED=yes") if self.spec.satisfies("+libssh"): args.append("WITH_SSH=%s" % mode) if self.spec.satisfies("+libssh2"): @@ -365,3 +298,55 @@ def install(self, pkg, spec, prefix): # safeguard against future curl releases that do this for us if os.path.exists(libcurl_a) and not os.path.exists(libcurl): symlink(libcurl_a, libcurl) + + +class CMakeBuilder(CMakeBuilder): + def cmake_args(self): + args = [ + self.define("BUILD_TESTING", False), + self.define("CURL_USE_LIBPSL", False), + # Curl's CMake will turn this off if not building static libcurl + self.define("BUILD_STATIC_CURL", True), + # enables install from cmake + self.define("CURL_DISABLE_INSTALL", False), + self.define("BUILD_MISC_DOCS", False), + self.define("BUILD_LIBCURL_DOCS", False), + self.define("BUILD_EXAMPLES", False), + self.define("CURL_BROTLI", False), + self.define("CURL_USE_GSASL", False), + self.define("CURL_ZSTD", False), + self.define("ENABLE_CURL_MANUAL", False), + self.define_from_variant("CURL_USE_LIBSSH2", "libssh2"), + self.define_from_variant("CURL_USE_LIBSSH", "libssh"), + self.define_from_variant("CURL_USE_OPENLDAP", "ldap"), + self.define_from_variant("CURL_DISABLE_LDAP", "ldap"), + self.define_from_variant("USE_NGHTTP2", "nghttp2"), + self.define_from_variant("CURL_USE_GSSAPI", "gssapi"), + self.define_from_variant("USE_LIBRTMP", "librtmp"), + self.define_from_variant("USE_LIBIDN2", "libidn2"), + ] + + if self.spec.satisfies("tls=sspi"): + args.append(self.define("CURL_WINDOWS_SSPI", True)) + if self.spec.satisfies("tls=gnutls"): + args.append(self.define("CURL_USE_GNUTLS", True)) + if self.spec.satisfies("tls=mbedtls"): + args.append(self.define("CURL_USE_MBEDTLS", True)) + if self.spec.satisfies("tls=openssl"): + args.append(self.define("CURL_USE_OPENSSL", True)) + + if self.spec.satisfies("platform=windows"): + args.extend( + [ + self.define_from_variant("ENABLE_UNICODE", "unicode"), + self.define_from_variant("CURL_STATIC_CRT", "static-crt"), + ] + ) + if self.spec.satisfies("+ldap"): + args.append(self.define("USE_WIN32_LDAP", True)) + + if self.spec.satisfies("libs=shared"): + args.append(self.define("BUILD_SHARED_LIBS", True)) + if self.spec.satisfies("libs=static"): + args.append(self.define("BUILD_STATIC_LIBS", True)) + return args diff --git a/repos/spack_repo/builtin/packages/cusolvermp/package.py b/repos/spack_repo/builtin/packages/cusolvermp/package.py new file mode 100644 index 00000000000..84b8c55fa03 --- /dev/null +++ b/repos/spack_repo/builtin/packages/cusolvermp/package.py @@ -0,0 +1,65 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import platform + +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.generic import Package + +from spack.package import * + +_versions = { + "0.7.0.833": { + "Linux-x86_64": dict( + sha256="5383f35eefd45cc0a5cbd173a4a353941f02b912eb2f8d3a85c30345054df5e9", + url="https://developer.download.nvidia.com/compute/cusolvermp/redist/libcusolvermp/linux-x86_64/libcusolvermp-linux-x86_64-0.7.0.833_cuda12-archive.tar.xz", + ), + "Linux-aarch64": dict( + sha256="a0012c5be7ac742a26cf8894bed3c703edea84eddf0d5dca42d35582622ffb9b", + url="https://developer.download.nvidia.com/compute/cusolvermp/redist/libcusolvermp/linux-sbsa/libcusolvermp-linux-sbsa-0.7.0.833_cuda12-archive.tar.xz", + ), + }, + "0.7.2.888": { + "Linux-x86_64": dict( + sha256="70243423e07861007ca5a95d35247af4ecdbcd0bf77aa09016a1abf3dcffb6a8", + url="https://developer.download.nvidia.com/compute/cusolvermp/redist/libcusolvermp/linux-x86_64/libcusolvermp-linux-x86_64-0.7.2.888_cuda12-archive.tar.xz", + ), + "Linux-aarch64": dict( + sha256="4c1a2688ec0072dec6d9d2303b489a48ad34a419e42ba05f51af68a43221fed6", + url="https://developer.download.nvidia.com/compute/cusolvermp/redist/libcusolvermp/linux-sbsa/libcusolvermp-linux-sbsa-0.7.2.888_cuda12-archive.tar.xz", + ), + }, +} + + +class Cusolvermp(Package, CudaPackage): + """ + NVIDIA cuSOLVERMp is a high-performance, distributed-memory, GPU-accelerated library + that provides tools for the solution of dense linear systems and eigenvalue problems. + """ + + homepage = "https://docs.nvidia.com/cuda/cusolvermp/" + url = "https://developer.download.nvidia.com/compute/cusolvermp/redist/libcusolvermp" + + maintainers("albestro") + + # https://docs.nvidia.com/cuda/cusolvermp/license.html + license("NVIDIA Software License Agreement") + + for ver, packages in _versions.items(): + package = packages.get(f"{platform.system()}-{platform.machine()}") + if package: + version(ver, **package) + + conflicts("~cuda", msg="cuSOLVERMp requires CUDA") + + depends_on("cuda@12:") + conflicts("cuda@13", msg="Not yet supported by the spack package.") + depends_on("nccl@2.18.5:") + + for cuda_arch in CudaPackage.cuda_arch_values: + depends_on(f"nccl cuda_arch={cuda_arch}", when=f"cuda_arch={cuda_arch}") + + def install(self, spec, prefix): + install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/cusparselt/package.py b/repos/spack_repo/builtin/packages/cusparselt/package.py new file mode 100644 index 00000000000..4e90be3b23b --- /dev/null +++ b/repos/spack_repo/builtin/packages/cusparselt/package.py @@ -0,0 +1,66 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import platform + +from spack.package import * + + +class Cusparselt(Package): + """A high-performance CUDA library dedicated to general matrix-matrix operations + in which at least one operand is a structured sparse matrix with 50% sparsity ratio.""" + + homepage = "https://docs.nvidia.com/cuda/cusparselt/" + + skip_version_audit = ["platform=darwin", "platform=windows"] + + maintainers("thomas-bouvier") + + system = platform.system().lower() + arch = platform.machine() + if "linux" in system and arch == "x86_64": + # version( + # "0.8.1-cuda130", + # sha256="82dd3e5ebc199a27011f58857a80cd825e77bba634ab2286ba3d4e13115db89a", + # url="https://developer.download.nvidia.com/compute/cusparselt/redist/libcusparse_lt/linux-x86_64/libcusparse_lt-linux-x86_64-0.8.1.1_cuda13-archive.tar.xz", + # ) + version( + "0.8.1-cuda120", + sha256="b34272e683e9f798435af05dc124657d1444cd0e13802c3d2f3152e31cd898a3", + url="https://developer.download.nvidia.com/compute/cusparselt/redist/libcusparse_lt/linux-x86_64/libcusparse_lt-linux-x86_64-0.8.1.1_cuda12-archive.tar.xz", + ) + elif "linux" in system and arch == "aarch64": + # version( + # "0.8.1-cuda130", + # sha256="0fcf5808f66c71f755b4a73af2e955292e4334fec6a851eea1ac2e20878602b7", + # url="https://developer.download.nvidia.com/compute/cusparselt/redist/libcusparse_lt/linux-aarch64/libcusparse_lt-linux-aarch64-0.8.1.1_cuda13-archive.tar.xz", + # ) + version( + "0.8.1-cuda120", + sha256="5426a897c73a9b98a83c4e132d15abc63dc4a00f7e38266e7b82c42cd58a01e1", + url="https://developer.download.nvidia.com/compute/cusparselt/redist/libcusparse_lt/linux-aarch64/libcusparse_lt-linux-aarch64-0.8.1.1_cuda12-archive.tar.xz", + ) + + # cuda130_versions = ("@0.8.1-cuda130",) + cuda120_versions = ("@0.8.1-cuda120",) + + # for v in cuda130_versions: + # depends_on("cuda@13", when=v, type=("build", "run")) + for v in cuda120_versions: + depends_on("cuda@12", when=v, type=("build", "run")) + + depends_on("c", type="build") + depends_on("cxx", type="build") + + # Installation instructions + def install(self, spec, prefix): + # Create installation directories + mkdirp(prefix.lib) + mkdirp(prefix.include) + + # Copy library files + install_tree("lib", prefix.lib) + + # Copy header files + install_tree("include", prefix.include) diff --git a/repos/spack_repo/builtin/packages/cusz/package.py b/repos/spack_repo/builtin/packages/cusz/package.py index 851aa383312..84a230752d0 100644 --- a/repos/spack_repo/builtin/packages/cusz/package.py +++ b/repos/spack_repo/builtin/packages/cusz/package.py @@ -35,6 +35,9 @@ class Cusz(CMakePackage, CudaPackage): # these version of Cuda provide the CUB headers, but not CUB cmake configuration that we use. conflicts("^cuda@11.0.2:11.2.2") + # https://github.com/spack/spack-packages/pull/2059#issuecomment-3443184517 + conflicts("^cuda@13:") + depends_on("cub", when="^cuda@:10.2.89") patch("thrust-includes.patch", when="@0.10:0.14 ^cuda@12.8:") diff --git a/repos/spack_repo/builtin/packages/cutlass/package.py b/repos/spack_repo/builtin/packages/cutlass/package.py index 272a03a6279..9e934d720a3 100644 --- a/repos/spack_repo/builtin/packages/cutlass/package.py +++ b/repos/spack_repo/builtin/packages/cutlass/package.py @@ -17,6 +17,8 @@ class Cutlass(CMakePackage, CudaPackage): version("main", branch="main") version("master", branch="master") + version("4.1.0", sha256="8d4675b11e9e5207e3940eaac0f46db934ada371cbb3627c9fda642d912b6230") + version("4.0.0", sha256="44a121c5878827875856c175ebe82e955062e37cd61fcdf31ebe2e8874f2fc5c") version("3.9.2", sha256="4b97bd6cece9701664eec3a634a1f2f2061d85bf76d843fa5799e1a692b4db0d") version("3.9.1", sha256="7ffed3d7363a485c7d8ade63b3944c0a1e3e4cf2f22007f6d1cc3849c96bdc88") version("3.9.0", sha256="0ea98a598d1f77fade5187ff6ec6d9e6ef3acd267ee68850aae6e800dcbd69c7") diff --git a/repos/spack_repo/builtin/packages/cvector/package.py b/repos/spack_repo/builtin/packages/cvector/package.py index c9871bb2ab9..b3dbca701c7 100644 --- a/repos/spack_repo/builtin/packages/cvector/package.py +++ b/repos/spack_repo/builtin/packages/cvector/package.py @@ -17,11 +17,6 @@ class Cvector(MakefilePackage): license("LGPL-2.1-or-later") version("1.0.3.1", sha256="6492b2beb26c3179cdd19abc90dc47a685be471c594d5ab664283e1d3586acdc") - version( - "1.0.3", - sha256="d3fa92de3cd5ba8697abdbb52080248b2c252a81cf40a8ec639be301518d0ce3", - deprecated=True, - ) depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/cxi_driver/package.py b/repos/spack_repo/builtin/packages/cxi_driver/package.py index 22cd7c883b6..e1b4fa43639 100644 --- a/repos/spack_repo/builtin/packages/cxi_driver/package.py +++ b/repos/spack_repo/builtin/packages/cxi_driver/package.py @@ -17,6 +17,11 @@ class CxiDriver(Package): license("GPL-2.0") version("main", branch="main") + version("13.1.0", tag="release/shs-13.1.0") + version("13.0.0", tag="release/shs-13.0.0") + version("12.0.2", tag="release/shs-12.0.2") + version("12.0.1", tag="release/shs-12.0.1") + version("12.0.0", tag="release/shs-12.0.0") def install(self, spec, prefix): with working_dir(self.stage.source_path): diff --git a/repos/spack_repo/builtin/packages/cxx/package.py b/repos/spack_repo/builtin/packages/cxx/package.py index 6fc77d1bd04..65401d8c546 100644 --- a/repos/spack_repo/builtin/packages/cxx/package.py +++ b/repos/spack_repo/builtin/packages/cxx/package.py @@ -25,6 +25,6 @@ def test_cxx(self): with test_part(self, f"test_cxx_{test}", f"build and run {exe_name}"): filepath = join_path(test_source, test) cxx("-o", exe_name, filepath) - exe = which(exe_name) + exe = which(exe_name, required=True) out = exe(output=str.split, error=str.split) check_outputs(expected, out) diff --git a/repos/spack_repo/builtin/packages/cxxopts/package.py b/repos/spack_repo/builtin/packages/cxxopts/package.py index 47d26733cb7..672de18144e 100644 --- a/repos/spack_repo/builtin/packages/cxxopts/package.py +++ b/repos/spack_repo/builtin/packages/cxxopts/package.py @@ -16,6 +16,7 @@ class Cxxopts(CMakePackage): license("MIT") + version("3.3.1", sha256="3bfc70542c521d4b55a46429d808178916a579b28d048bd8c727ee76c39e2072") version("3.2.0", sha256="9f43fa972532e5df6c5fd5ad0f5bac606cdec541ccaf1732463d8070bbb7f03b") version("3.1.1", sha256="523175f792eb0ff04f9e653c90746c12655f10cb70f1d5e6d6d9491420298a08") version("3.0.0", sha256="36f41fa2a46b3c1466613b63f3fa73dc24d912bc90d667147f1e43215a8c6d00") diff --git a/repos/spack_repo/builtin/packages/cyrus_sasl/package.py b/repos/spack_repo/builtin/packages/cyrus_sasl/package.py index e4b71facacb..7c126b6d09c 100644 --- a/repos/spack_repo/builtin/packages/cyrus_sasl/package.py +++ b/repos/spack_repo/builtin/packages/cyrus_sasl/package.py @@ -14,23 +14,49 @@ class CyrusSasl(AutotoolsPackage): homepage = "https://github.com/cyrusimap/cyrus-sasl" url = "https://github.com/cyrusimap/cyrus-sasl/archive/cyrus-sasl-2.1.27.tar.gz" + git = "https://github.com/cyrusimap/cyrus-sasl.git" license("custom") - version("2.1.28", sha256="3e38933a30b9ce183a5488b4f6a5937a702549cde0d3287903d80968ad4ec341") - version("2.1.27", sha256="b564d773803dc4cff42d2bdc04c80f2b105897a724c247817d4e4a99dd6b9976") - version("2.1.26", sha256="7c14d1b5bd1434adf2dd79f70538617e6aa2a7bde447454b90b84ac5c4d034ba") - version("2.1.25", sha256="8bfd4fa4def54c760e5061f2a74c278384c3b9807f02c4b07dab68b5894cc7c1") - version("2.1.24", sha256="1df15c492f7ecb90be49531a347b3df21b041c2e0325dcc4fc5a6e98384c40dd") - version("2.1.23", sha256="b1ec43f62d68446a6a5879925c63d94e26089c5a46cd83e061dd685d014c7d1f") + # Since the latest release of cyrus-sasl is old and not supported on gcc-15, + # we add a newer version on the master branch. + # As 2.1.28 was not tagged on the master branch, we identify as equivalent + # commit fdcd13ceaef8de684dc69008011fa865c5b4a3ac, and describe from there. + version("2.1.28-148-ge256dd0c", commit="e256dd0cc61d60cbb905b601241077f0a2ba0907") + + # Official releases are preferred + version( + "2.1.28", + sha256="3e38933a30b9ce183a5488b4f6a5937a702549cde0d3287903d80968ad4ec341", + preferred=True, + ) + + # CVE-2022-24407 + with default_args(deprecated=True): + version( + "2.1.27", sha256="b564d773803dc4cff42d2bdc04c80f2b105897a724c247817d4e4a99dd6b9976" + ) + version( + "2.1.26", sha256="7c14d1b5bd1434adf2dd79f70538617e6aa2a7bde447454b90b84ac5c4d034ba" + ) + version( + "2.1.25", sha256="8bfd4fa4def54c760e5061f2a74c278384c3b9807f02c4b07dab68b5894cc7c1" + ) + version( + "2.1.24", sha256="1df15c492f7ecb90be49531a347b3df21b041c2e0325dcc4fc5a6e98384c40dd" + ) + version( + "2.1.23", sha256="b1ec43f62d68446a6a5879925c63d94e26089c5a46cd83e061dd685d014c7d1f" + ) # ensure include time.h, https://github.com/cyrusimap/cyrus-sasl/pull/709 patch( "https://github.com/cyrusimap/cyrus-sasl/commit/266f0acf7f5e029afbb3e263437039e50cd6c262.patch?full_index=1", sha256="819342fe68475ac1690136ff4ce9b73c028f433ae150898add36f724a8e2274b", - when="@2.1.27:2.1.28", + when="@2.1.27:2.1.28-0", ) conflicts("%gcc@14:", when="@:2.1.26") + conflicts("%gcc@15:", when="@:2.1.28-147") depends_on("c", type="build") @@ -42,3 +68,8 @@ class CyrusSasl(AutotoolsPackage): depends_on("openssl", type="link") depends_on("libxcrypt", type="link") depends_on("krb5", type="link") + + @when("platform=darwin") + def configure_args(self): + # avoid installing to /Library/Frameworks/SASL2.framework + return ["--disable-macos-framework"] diff --git a/repos/spack_repo/builtin/packages/dakota/dakota_6.18_tolerance_cmath.patch b/repos/spack_repo/builtin/packages/dakota/dakota_6.18_tolerance_cmath.patch new file mode 100644 index 00000000000..17832c6741f --- /dev/null +++ b/repos/spack_repo/builtin/packages/dakota/dakota_6.18_tolerance_cmath.patch @@ -0,0 +1,32 @@ +diff --git a/src/unit/test_tolerance_intervals.cpp b/src/unit/test_tolerance_intervals.cpp +index c8c133c2e..694fca054 100644 +--- a/src/unit/test_tolerance_intervals.cpp ++++ b/src/unit/test_tolerance_intervals.cpp +@@ -16,6 +16,7 @@ + + #include + #include ++#include + + namespace Dakota { + namespace TestToleranceIntervals { +@@ -517,8 +518,8 @@ void test_DSTIEN_valid_input_04_noValidResponseSamples() + // ************************************************************************ + BOOST_CHECK( num_valid_samples == 0 ); + for (size_t k = 0; k < num_fns; ++k) { +- BOOST_CHECK( isnan(computed_dstien_mus [k]) ); +- BOOST_CHECK( isnan(computed_dstien_sigmas[k]) ); ++ BOOST_CHECK( std::isnan(computed_dstien_mus [k]) ); ++ BOOST_CHECK( std::isnan(computed_dstien_sigmas[k]) ); + } + } + +@@ -587,7 +588,7 @@ void test_DSTIEN_valid_input_05_justOneValidResponseSample() + BOOST_CHECK( num_valid_samples == 1 ); + for (size_t k = 0; k < num_fns; ++k) { + BOOST_CHECK( computed_dstien_mus[k] == expected_dstien_mus[k] ); +- BOOST_CHECK( isnan(computed_dstien_sigmas[k]) ); ++ BOOST_CHECK( std::isnan(computed_dstien_sigmas[k]) ); + } + } + diff --git a/repos/spack_repo/builtin/packages/dakota/dakota_data_types_cstdint.patch b/repos/spack_repo/builtin/packages/dakota/dakota_data_types_cstdint.patch new file mode 100644 index 00000000000..a0925d5d85c --- /dev/null +++ b/repos/spack_repo/builtin/packages/dakota/dakota_data_types_cstdint.patch @@ -0,0 +1,12 @@ +diff --git a/src/dakota_data_types.hpp b/src/dakota_data_types.hpp +index e770d180e..a45b518f0 100644 +--- a/src/dakota_data_types.hpp ++++ b/src/dakota_data_types.hpp +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + + namespace Dakota { + diff --git a/repos/spack_repo/builtin/packages/dakota/dakota_tolerance_cmath.patch b/repos/spack_repo/builtin/packages/dakota/dakota_tolerance_cmath.patch new file mode 100644 index 00000000000..d601fe13312 --- /dev/null +++ b/repos/spack_repo/builtin/packages/dakota/dakota_tolerance_cmath.patch @@ -0,0 +1,32 @@ +diff --git a/src/unit/dakota_tolerance_intervals/test_tolerance_intervals.cpp b/src/unit/dakota_tolerance_intervals/test_tolerance_intervals.cpp +index a7b4bfa26..00790f10e 100644 +--- a/src/unit/dakota_tolerance_intervals/test_tolerance_intervals.cpp ++++ b/src/unit/dakota_tolerance_intervals/test_tolerance_intervals.cpp +@@ -16,6 +16,7 @@ + + #include + #include ++#include + + namespace Dakota { + namespace TestToleranceIntervals { +@@ -517,8 +518,8 @@ void test_DSTIEN_valid_input_04_noValidResponseSamples() + // ************************************************************************ + BOOST_CHECK( num_valid_samples == 0 ); + for (size_t k = 0; k < num_fns; ++k) { +- BOOST_CHECK( isnan(computed_dstien_mus [k]) ); +- BOOST_CHECK( isnan(computed_dstien_sigmas[k]) ); ++ BOOST_CHECK( std::isnan(computed_dstien_mus [k]) ); ++ BOOST_CHECK( std::isnan(computed_dstien_sigmas[k]) ); + } + } + +@@ -587,7 +588,7 @@ void test_DSTIEN_valid_input_05_justOneValidResponseSample() + BOOST_CHECK( num_valid_samples == 1 ); + for (size_t k = 0; k < num_fns; ++k) { + BOOST_CHECK( computed_dstien_mus[k] == expected_dstien_mus[k] ); +- BOOST_CHECK( isnan(computed_dstien_sigmas[k]) ); ++ BOOST_CHECK( std::isnan(computed_dstien_sigmas[k]) ); + } + } + diff --git a/repos/spack_repo/builtin/packages/dakota/package.py b/repos/spack_repo/builtin/packages/dakota/package.py index 30ee8eb9b74..439459ad566 100644 --- a/repos/spack_repo/builtin/packages/dakota/package.py +++ b/repos/spack_repo/builtin/packages/dakota/package.py @@ -43,6 +43,24 @@ class Dakota(CMakePackage): license("LGPL-2.1-or-later") + version( + "6.23.0", + tag="v6.23.0", + commit="85fea9f46d0d292877233b257d5f9791b082bd82", + submodules=submodules, + ) + version( + "6.22.0", + tag="v6.22.0", + commit="688b1bcf32fc88e9adfcd6055caed750433b21d0", + submodules=submodules, + ) + version( + "6.21.0", + tag="v6.21.0", + commit="9efbad2baf416dc53a5a1d4cc17e3ae39a029632", + submodules=submodules, + ) version( "6.20.0", tag="v6.20.0", @@ -68,6 +86,26 @@ class Dakota(CMakePackage): variant("shared", default=True, description="Enables the build of shared libraries") variant("mpi", default=True, description="Activates MPI support") variant("python", default=True, description="Add Python dependency for dakota.interfacing API") + variant("hdf5", default=False, description="Add hdf5 support") + + variant( + "python-direct-interface", + default=False, + when="+python", + description="Activate direct python interface", + ) + variant( + "python-wrapper", + default=False, + when="+python", + description="Top-level dakota.environment Python wrapper", + ) + variant( + "python-surrogates", + default=False, + when="+python", + description="Dakota Python interface to surrogate module", + ) depends_on("c", type="build") depends_on("cxx", type="build") @@ -75,35 +113,61 @@ class Dakota(CMakePackage): # Generic 'lapack' provider won't work, dakota searches for # 'LAPACKConfig.cmake' or 'lapack-config.cmake' on the path - depends_on("netlib-lapack") + depends_on("netlib-lapack +shared") - depends_on("blas") depends_on("mpi", when="+mpi") + depends_on("hdf5@1.10.4:1.10 +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:") - 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") # 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("cmake@2.8.9:", type="build") + 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("cmake@2.8.9:", type="build", when="@:6.12") depends_on("cmake@3.17:", type="build", when="@6.18:") - # dakota@:6.20 don't compile with gcc@13, and it is currently the latest version: - conflicts("%gcc@13:") - # dakota@:6.12 don't compile with gcc@12: + # dakota@:6.18 has broken pybind11/CMake support + conflicts("+python", when="@:6.18") + # dakota@:6.12 does not compile with gcc@12: conflicts("%gcc@12:", when="@:6.12") - # dakota@:6.9 don't compile with gcc@11: + # dakota@:6.9 does not compile with gcc@11: conflicts("%gcc@11:", when="@:6.9") + # cannot have python surrogates without python direct interface or python wrapper + conflicts( + "+python-surrogates", + when="~python-wrapper ~python-direct-interface", + msg=( + "Use either +python-wrapper or +python-direct-interface " + "in combination with +python-surrogates." + ), + ) + + # enable modern compilers with older versions + patch("teuchos_cstdint.patch", when="@:6.21", working_dir="packages/external") + + patch("dakota_data_types_cstdint.patch", when="@:6.22") + + patch("dakota_tolerance_cmath.patch", when="@6.19") + + patch("dakota_6.18_tolerance_cmath.patch", when="@:6.18") + def flag_handler(self, name, flags): # from gcc@10, dakota@:6.12 need an extra flag if self.spec.satisfies("@:6.12 %gcc@10:") and name == "fflags": flags.append("-fallow-argument-mismatch") + if name == "cxxflags" and self.spec.satisfies("@:6.20.0"): + flags.append(self["cxx"].standard_flag(language="cxx", standard="14")) + if name == "cxxflags" and self.spec.satisfies("@6.21.0:"): + flags.append(self["cxx"].standard_flag(language="cxx", standard="17")) return (flags, None, None) def cmake_args(self): @@ -112,6 +176,11 @@ def cmake_args(self): 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), ] if spec.satisfies("+mpi"): @@ -122,7 +191,13 @@ def cmake_args(self): ] ) + if spec.satisfies("+python-direct-interface") or spec.satisfies("+python-wrapper"): + args.append("-DDAKOTA_PYBIND11:BOOL=ON") + if self.run_tests: args += ["-DCMAKE_CTEST_ARGUMENTS=-L;Accept"] return args + + def setup_run_environment(self, env: EnvironmentModifications) -> None: + env.prepend_path("PYTHONPATH", join_path(self.prefix, "share/dakota/Python")) diff --git a/repos/spack_repo/builtin/packages/dakota/teuchos_cstdint.patch b/repos/spack_repo/builtin/packages/dakota/teuchos_cstdint.patch new file mode 100644 index 00000000000..14a4c4cb266 --- /dev/null +++ b/repos/spack_repo/builtin/packages/dakota/teuchos_cstdint.patch @@ -0,0 +1,12 @@ +diff --git a/trilinos/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp b/trilinos/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp +index e82e8be9..b41b0d03 100644 +--- a/trilinos/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp ++++ b/trilinos/packages/teuchos/core/src/Teuchos_BigUIntDecl.hpp +@@ -43,6 +43,7 @@ + #define TEUCHOS_BIG_UINT_DECL_HPP + + #include ++#include + + /*! \file Teuchos_BigUIntDecl.hpp + \brief Arbitrary-precision unsigned integer declaration. diff --git a/repos/spack_repo/builtin/packages/damaris/package.py b/repos/spack_repo/builtin/packages/damaris/package.py index 3f0984adb6d..f61e712f974 100644 --- a/repos/spack_repo/builtin/packages/damaris/package.py +++ b/repos/spack_repo/builtin/packages/damaris/package.py @@ -19,6 +19,8 @@ class Damaris(CMakePackage): license("LGPL-3.0-or-later") version("master", branch="master") + version("1.13.0", tag="v1.13.0", commit="22cea534be36d49e68c78f553d72426bdc8da013") + version("1.12.1", tag="v1.12.1", commit="34473ed117445f97a26091890f8ffd111a1d8b9c") version("1.12.0", tag="v1.12.0", commit="62599496ea208788530a952fdf0037495a6b6270") version("1.11.1", tag="v1.11.1", commit="a7954bbeed999bbf04305e2f6855bc7ddade78fd") version("1.11.0", tag="v1.11.0", commit="1aee2a8971584712d81323d77f9805448fe54947") @@ -31,21 +33,6 @@ class Damaris(CMakePackage): version("1.8.0", tag="v1.8.0", commit="56701eee59d464cc73d248fbd5e7a8a70e7a3933") version("1.7.1", tag="v1.7.1", commit="09dfbe7828ee295b4433c9e01c6523fa6b4adab5") version("1.7.0", tag="v1.7.0", commit="9ab3ea4c568de16f5d43b8b5ad71feb4864a5584") - version( - "1.6.0", tag="v1.6.0", commit="1fe4c61cce03babd24315b8e6156f226baac97a2", deprecated=True - ) - version( - "1.5.0", tag="v1.5.0", commit="68206a696ad430aa8426ca370501aa71914fbc87", deprecated=True - ) - version( - "1.3.3", tag="v1.3.3", commit="f1c473507c080738f7092f6a7d72deb938ade786", deprecated=True - ) - version( - "1.3.2", tag="v1.3.2", commit="38b50664523e56900809a19f0cf52fc0ab5dca53", deprecated=True - ) - version( - "1.3.1", tag="v1.3.1", commit="6cee3690fa7d387acc8f5f650a7b019e13b90284", deprecated=True - ) variant("fortran", default=True, description="Enables Fortran support") variant("hdf5", default=False, description="Enables the HDF5 storage plugin") diff --git a/repos/spack_repo/builtin/packages/darshan_runtime/package.py b/repos/spack_repo/builtin/packages/darshan_runtime/package.py index 69072a7eeed..9249c46026e 100644 --- a/repos/spack_repo/builtin/packages/darshan_runtime/package.py +++ b/repos/spack_repo/builtin/packages/darshan_runtime/package.py @@ -17,7 +17,7 @@ class DarshanRuntime(AutotoolsPackage): systems where you intend to instrument MPI applications.""" homepage = "https://www.mcs.anl.gov/research/projects/darshan/" - url = "https://web.cels.anl.gov/projects/darshan/releases/darshan-3.4.0.tar.gz" + url = "https://github.com/darshan-hpc/darshan/archive/refs/tags/3.5.0.tar.gz" git = "https://github.com/darshan-hpc/darshan.git" maintainers("carns", "wkliao") @@ -26,6 +26,7 @@ class DarshanRuntime(AutotoolsPackage): test_requires_compiler = True version("main", branch="main", submodules=True) + version("3.5.0", sha256="76eac5a3ff556476ef8df53aa61851756bf6dcab59f5b92bb307abfdcbcd7f36") version("3.4.7", sha256="115a6d840b3bdb30751c271c0dec098b25bed2f8c77175125c133564d76afe5b") version("3.4.6", sha256="092b35e7af859af903dce0c51bcb5d3901dd0d9ad79d1b2f3282692407f032ee") version("3.4.5", sha256="1c017ac635fab5ee0e87a6b52c5c7273962813569495cb1dd3b7cfa6e19f6ed0") @@ -104,9 +105,26 @@ class DarshanRuntime(AutotoolsPackage): default="none", description="Path to centralized, formatted Darshan log directory", ) - variant("mmap_logs", default=False, description="Use mmap to store Darshan log data") + + variant( + "mmap_logs", + default=False, + description="Use mmap to store Darshan log data", + when="@:3.4.7", + ) + + variant( + "mmap_logs", default=True, description="Use mmap to store Darshan log data", when="@3.5.0:" + ) + variant("group_readable_logs", default=False, description="Write group-readable logs") + def url_for_version(self, version): + if self.spec.satisfies("@:3.4"): + return f"https://web.cels.anl.gov/projects/darshan/releases/darshan-{version}.tar.gz" + else: + return f"https://github.com/darshan-hpc/darshan/archive/refs/tags/{version}.tar.gz" + @property def configure_directory(self): return "darshan-runtime" @@ -203,7 +221,7 @@ def test_mpi_io_test(self): cc(*(link_opt)) # run test program and intercept - mpi_io_test = which(join_path(".", testexe)) + mpi_io_test = which(join_path(".", testexe), required=True) out = mpi_io_test("-f", "tmp.dat", output=str.split, error=str.split) env.pop("LD_PRELOAD") diff --git a/repos/spack_repo/builtin/packages/darshan_util/package.py b/repos/spack_repo/builtin/packages/darshan_util/package.py index 8ef6710990c..73bf5330e5f 100644 --- a/repos/spack_repo/builtin/packages/darshan_util/package.py +++ b/repos/spack_repo/builtin/packages/darshan_util/package.py @@ -14,7 +14,7 @@ class DarshanUtil(AutotoolsPackage): log files produced by Darshan (runtime).""" homepage = "https://www.mcs.anl.gov/research/projects/darshan/" - url = "https://web.cels.anl.gov/projects/darshan/releases/darshan-3.4.0.tar.gz" + url = "https://github.com/darshan-hpc/darshan/archive/refs/tags/3.5.0.tar.gz" git = "https://github.com/darshan-hpc/darshan.git" maintainers("carns", "wkliao") @@ -22,6 +22,7 @@ class DarshanUtil(AutotoolsPackage): tags = ["e4s"] version("main", branch="main", submodules="True") + version("3.5.0", sha256="76eac5a3ff556476ef8df53aa61851756bf6dcab59f5b92bb307abfdcbcd7f36") version("3.4.7", sha256="115a6d840b3bdb30751c271c0dec098b25bed2f8c77175125c133564d76afe5b") version("3.4.6", sha256="092b35e7af859af903dce0c51bcb5d3901dd0d9ad79d1b2f3282692407f032ee") version("3.4.5", sha256="1c017ac635fab5ee0e87a6b52c5c7273962813569495cb1dd3b7cfa6e19f6ed0") @@ -77,6 +78,12 @@ class DarshanUtil(AutotoolsPackage): patch("retvoid.patch", when="@3.2.0:3.2.1") + def url_for_version(self, version): + if self.spec.satisfies("@:3.4"): + return f"https://web.cels.anl.gov/projects/darshan/releases/darshan-{version}.tar.gz" + else: + return f"https://github.com/darshan-hpc/darshan/archive/refs/tags/{version}.tar.gz" + @property def configure_directory(self): return "darshan-util" @@ -131,6 +138,6 @@ def test_parser(self): r"STDIO\s+0\s+\w+\s+STDIO_OPENS\s+\d+", ] logname = self.test_suite.current_test_cache_dir.join(self.tests_log_path) - parser = which(join_path(self.prefix.bin, "darshan-parser")) + parser = which(join_path(self.prefix.bin, "darshan-parser"), required=True) out = parser(logname, output=str.split, error=str.split) check_outputs(expected_output, out) diff --git a/repos/spack_repo/builtin/packages/dataspaces/package.py b/repos/spack_repo/builtin/packages/dataspaces/package.py index 17e515bd5fd..9e645f140ec 100644 --- a/repos/spack_repo/builtin/packages/dataspaces/package.py +++ b/repos/spack_repo/builtin/packages/dataspaces/package.py @@ -45,7 +45,7 @@ class Dataspaces(AutotoolsPackage): depends_on("mpi", when="+mpi") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") def setup_build_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/dav_sdk/package.py b/repos/spack_repo/builtin/packages/dav_sdk/package.py index b87a04abbcc..70c7911dbdf 100644 --- a/repos/spack_repo/builtin/packages/dav_sdk/package.py +++ b/repos/spack_repo/builtin/packages/dav_sdk/package.py @@ -138,7 +138,7 @@ class DavSdk(BundlePackage, CudaPackage, ROCmPackage): # Fortran support with ascent is problematic on some Cray platforms so the # SDK is explicitly disabling it until the issues are resolved. dav_sdk_depends_on( - "ascent+mpi~fortran+python+shared+vtkh+dray~test", + "ascent+mpi~fortran+python+shared+vtkh~test", when="+ascent", propagate=["adios2", "cuda"] + cuda_arch_variants, ) @@ -157,7 +157,7 @@ class DavSdk(BundlePackage, CudaPackage, ROCmPackage): # ParaView needs @5.11: in order to use CUDA/ROCM, therefore it is the minimum # required version since GPU capability is desired for ECP dav_sdk_depends_on( - "paraview@5.11:+mpi+openpmd+python+kits+shared+catalyst+libcatalyst" " use_vtkm=on", + "paraview@5.11:+mpi+openpmd+python+kits+shared+catalyst+libcatalyst use_vtkm=on", when="+paraview", propagate=["adios2", "cuda", "hdf5", "rocm"] + amdgpu_target_variants + cuda_arch_variants, ) diff --git a/repos/spack_repo/builtin/packages/davix/fix-gsoap-version-detection.patch b/repos/spack_repo/builtin/packages/davix/fix-gsoap-version-detection.patch new file mode 100644 index 00000000000..d7cfd5f6cad --- /dev/null +++ b/repos/spack_repo/builtin/packages/davix/fix-gsoap-version-detection.patch @@ -0,0 +1,18 @@ +--- a/cmake/modules/FindgSOAP.cmake ++++ b/cmake/modules/FindgSOAP.cmake +@@ -61,14 +61,9 @@ + message(STATUS " - wsdlh : ${GSOAP_WSDL2H}") + message(STATUS " - SOAPCPP2 : ${GSOAP_SOAPCPP2}") + +-execute_process(COMMAND ${GSOAP_SOAPCPP2} "-help" OUTPUT_VARIABLE GSOAP_STRING_VERSION ERROR_VARIABLE GSOAP_STRING_VERSION ) ++execute_process(COMMAND ${GSOAP_SOAPCPP2} "-V" OUTPUT_VARIABLE GSOAP_STRING_VERSION ERROR_VARIABLE GSOAP_STRING_VERSION) + string(REGEX MATCH "[0-9]*\\.[0-9]*\\.[0-9]*" GSOAP_VERSION ${GSOAP_STRING_VERSION}) + +-if( "${GSOAP_VERSION}" STREQUAL "..") +- execute_process(COMMAND ${GSOAP_SOAPCPP2} "-v" TIMEOUT 1 OUTPUT_VARIABLE GSOAP_STRING_VERSION ERROR_VARIABLE GSOAP_STRING_VERSION ) +- string(REGEX MATCH "[0-9]*\\.[0-9]*\\.[0-9]*" GSOAP_VERSION ${GSOAP_STRING_VERSION}) +-endif() +- + message(STATUS " - GSOAP VERSION : ${GSOAP_VERSION}") + if( "${GSOAP_VERSION}" VERSION_LESS "2.7.6") + set(GSOAP_276_COMPAT_FLAGS "") \ No newline at end of file diff --git a/repos/spack_repo/builtin/packages/davix/package.py b/repos/spack_repo/builtin/packages/davix/package.py index fb26becbb9f..92aebd9ecae 100644 --- a/repos/spack_repo/builtin/packages/davix/package.py +++ b/repos/spack_repo/builtin/packages/davix/package.py @@ -38,21 +38,6 @@ class Davix(CMakePackage): ) version("0.7.6", sha256="a2e7fdff29f7ba247a3bcdb08ab1db6d6ed745de2d3971b46526986caf360673") version("0.7.5", sha256="d920ca976846875d83af4dc50c99280bb3741fcf8351d5733453e70fa5fe6fc8") - version( - "0.7.3", - sha256="cd46276e72c6a0da1e2ad30eb66ec509a4c023687767c62a66713fa8c23d328a", - deprecated=True, - ) - version( - "0.6.9", - sha256="fbd97eb5fdf82ca48770d06bf8e2805b35f23255478aa381a9d25a49eb98e348", - deprecated=True, - ) - version( - "0.6.8", - sha256="e1820f4cc3fc44858ae97197a3922cce2a1130ff553b080ba19e06eb8383ddf7", - deprecated=True, - ) variant( "cxxstd", @@ -77,8 +62,12 @@ class Davix(CMakePackage): variant("thirdparty", default=False, description="Build vendored libraries") depends_on("gsoap", when="+thirdparty") - def url_for_version(self, v): - return f"https://github.com/cern-fts/davix/releases/download/R_{v.underscored}/davix-{v}.tar.gz" + # soapcpp2 -v (lowercase) reads from stdin instead of exiting; use -V (uppercase) + # which prints the version string and exits immediately. + patch("fix-gsoap-version-detection.patch", when="+thirdparty") + + def url_for_version(self, version): + return f"https://github.com/cern-fts/davix/releases/download/R_{version.underscored}/davix-{version}.tar.gz" def cmake_args(self): return [ diff --git a/repos/spack_repo/builtin/packages/dbcsr/package.py b/repos/spack_repo/builtin/packages/dbcsr/package.py index 672dcd5d54e..5db94ca27d7 100644 --- a/repos/spack_repo/builtin/packages/dbcsr/package.py +++ b/repos/spack_repo/builtin/packages/dbcsr/package.py @@ -19,11 +19,13 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage): url = "https://github.com/cp2k/dbcsr/releases/download/v2.2.0/dbcsr-2.2.0.tar.gz" list_url = "https://github.com/cp2k/dbcsr/releases" - maintainers("dev-zero", "mtaillefumier", "RMeli") + maintainers("dev-zero", "mtaillefumier", "RMeli", "hfp") license("GPL-2.0-or-later") version("develop", branch="develop") + version("2.9.1", sha256="fa5a4aeba0a07761511af2c26c779bd811b5ea0ef06a5d94535b6dd7b2e0ce59") + version("2.9.0", sha256="a04cacd2203bd97a31ac993f9ab84237a48191140bba29efadbc27db544bbcd6") version("2.8.0", sha256="d55e4f052f28d1ed0faeaa07557241439243287a184d1fd27f875c8b9ca6bd96") version("2.7.0", sha256="25c367b49fb108c5230bcfb127f05fc16deff2bb467f437023dfa6045aff66f6") version("2.6.0", sha256="c67b02ff9abc7c1f529af446a9f01f3ef9e5b0574f220259128da8d5ca7e9dc6") @@ -38,7 +40,7 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage): variant("tests", default=False, description="Build DBCSR unit tests") variant("tests", default=True, description="Build DBCSR unit tests", when="@2.1:2.2") variant("mpi", default=True, description="Compile with MPI") - variant("openmp", default=False, description="Build with OpenMP support") + variant("openmp", default=True, description="Build with OpenMP support") variant("shared", default=True, description="Build shared library") variant( "smm", @@ -60,7 +62,7 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage): variant("opencl", default=False, description="Enable OpenCL backend") variant("mpi_f08", default=False, when="@2.6:", description="Use mpi F08 module") - variant("g2g", default=False, description="GPU-aware MPI with CUDA/HIP") + variant("g2g", default=False, when="@:2.8", description="GPU-aware MPI with CUDA/HIP") conflicts("+g2g", when="~cuda ~rocm", msg="GPU-aware MPI requires +cuda or +rocm") depends_on("c", type="build") # generated @@ -72,8 +74,7 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage): depends_on("mpi", when="+mpi") with when("smm=libxsmm"): - depends_on("libxsmm~header-only") - depends_on("libxsmm@1.11:1") + depends_on("libxsmm@1.11:") depends_on("cmake@3.10:", type="build") depends_on("cmake@3.12:", type="build", when="@2.1:") @@ -87,7 +88,11 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage): depends_on("hipblas", when="+rocm") + # Several packages provide "opencl" (incl. ICD/loader), e.g., "cuda" depends_on("opencl", when="+opencl") + opencl_loader_header_version = "2022.10.24" + depends_on(f"opencl-c-headers@{opencl_loader_header_version}:", when="+opencl") + requires(f"%opencl=opencl-icd-loader@{opencl_loader_header_version}:", when="+opencl") # All examples require MPI conflicts("+examples", when="~mpi", msg="Examples require MPI") @@ -97,31 +102,44 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage): # properties, since the parent class defines constraints for different archs # Instead just mark all unsupported cuda archs as conflicting. dbcsr_cuda_archs = ("35", "37", "60", "70", "80", "90") - cuda_msg = "dbcsr only supports cuda_arch {0}".format(dbcsr_cuda_archs) + cuda_msg = f"dbcsr only supports cuda_arch {dbcsr_cuda_archs}" for arch in CudaPackage.cuda_arch_values: if arch not in dbcsr_cuda_archs: - conflicts("+cuda", when="cuda_arch={0}".format(arch), msg=cuda_msg) + conflicts("+cuda", when=f"cuda_arch={arch}", msg=cuda_msg) conflicts("+cuda", when="cuda_arch=none", msg=cuda_msg) - dbcsr_amdgpu_targets = ("gfx906", "gfx910", "gfx90a", "gfx90a:xnack-", "gfx90a:xnack+") - amd_msg = f"DBCSR supports these AMD gpu targets: {', '.join(dbcsr_amdgpu_targets)}" + dbcsr_amdgpu_targets = ( + "gfx906", + "gfx910", + "gfx90a", + "gfx90a:xnack-", + "gfx90a:xnack+", + "gfx942", + "gfx950", + ) + amd_msg = f"""DBCSR supports these AMD gpu targets: {", ".join(dbcsr_amdgpu_targets)}. + Set amdgpu_target explicitly to one of the supported targets""" for arch in ROCmPackage.amdgpu_targets: if arch not in dbcsr_amdgpu_targets: - conflicts("+rocm", when="amdgpu_target={0}".format(arch), msg=amd_msg) + conflicts("+rocm", when=f"amdgpu_target={arch}", msg=amd_msg) - accel_msg = "CUDA, ROCm and OpenCL support are mutually exlusive" + # GPU runtimes are usually mutually exclusive + accel_msg = "CUDA and ROCm are mutually exlusive" conflicts("+cuda", when="+rocm", msg=accel_msg) conflicts("+cuda", when="+opencl", msg=accel_msg) conflicts("+rocm", when="+opencl", msg=accel_msg) - # Require openmp threading for OpenBLAS by making other options conflict + # Require OpenMP threading by making other options conflict + conflicts("^intel-oneapi-mkl threads=none", when="+openmp") + conflicts("^intel-oneapi-mkl threads=tbb", when="+openmp") conflicts("^openblas threads=pthreads", when="+openmp") conflicts("^openblas threads=none", when="+openmp") - conflicts("smm=blas", when="+opencl") + # OpenCL backend implementation relies on LIBXSMM + requires("smm=libxsmm", when="+opencl") with when("+mpi"): # When using mpich 4.1 or higher, mpi_f08 has to be used, otherwise: @@ -161,16 +179,21 @@ def cmake_args(self): self.define_from_variant("USE_OPENMP", "openmp"), # C API needs MPI self.define_from_variant("WITH_C_API", "mpi"), - "-DBLAS_FOUND=true", - "-DBLAS_LIBRARIES=%s" % (spec["blas"].libs.joined(";")), - "-DLAPACK_FOUND=true", - "-DLAPACK_LIBRARIES=%s" % (spec["lapack"].libs.joined(";")), self.define_from_variant("BUILD_SHARED_LIBS", "shared"), self.define_from_variant("WITH_EXAMPLES", "examples"), self.define_from_variant("WITH_G2G", "g2g"), self.define_from_variant("BUILD_TESTING", "tests"), ] + lapack, blas = spec["lapack"], spec["blas"] + if blas.name != "intel-oneapi-mkl": + args += [ + "-DBLAS_FOUND=true", + "-DBLAS_LIBRARIES=%s" % (blas.libs.joined(";")), + "-DLAPACK_FOUND=true", + "-DLAPACK_LIBRARIES=%s" % (lapack.libs.joined(";")), + ] + if self.spec.satisfies("+cuda"): cuda_arch = self.spec.variants["cuda_arch"].value[0] @@ -197,9 +220,11 @@ def cmake_args(self): "gfx90a": "Mi250", "gfx90a:xnack-": "Mi250", "gfx90a:xnack+": "Mi250", + "gfx942": "Mi300", + "gfx950": "Mi350", }[amd_arch] - args += ["-DWITH_GPU={0}".format(gpuver), "-DUSE_ACCEL=hip"] + args += [f"-DWITH_GPU={gpuver}", "-DUSE_ACCEL=hip"] if self.spec.satisfies("+opencl"): args += ["-DUSE_ACCEL=opencl"] diff --git a/repos/spack_repo/builtin/packages/dcm2niix/package.py b/repos/spack_repo/builtin/packages/dcm2niix/package.py index 23674ca5ddb..1849a5209cc 100644 --- a/repos/spack_repo/builtin/packages/dcm2niix/package.py +++ b/repos/spack_repo/builtin/packages/dcm2niix/package.py @@ -14,8 +14,11 @@ class Dcm2niix(CMakePackage): homepage = "https://github.com/rordenlab/dcm2niix" url = "https://github.com/rordenlab/dcm2niix/archive/refs/tags/v1.0.20220720.tar.gz" - license("Zlib") + license("BSD-3-Clause AND MIT", checked_by="Markus92") + version( + "1.0.20250506", sha256="1b24658678b6c24141e58760dbea9fe2786ffdd736bcc37a36d9cdabc731bafa" + ) version( "1.0.20240202", sha256="ad8e4a5b97a682c32ef1d88283c15c7cb767c4092cb1754119f8e8b3d940fe91" ) @@ -26,5 +29,31 @@ class Dcm2niix(CMakePackage): "1.0.20210317", sha256="42fb22458ebfe44036c3d6145dacc6c1dc577ebbb067bedc190ed06f546ee05a" ) + # Only compile the console app. The superbuild pulls in lot of dependencies through Git + # and doesn't propagate some Spack-controlled CMake parameters (most notably RPath) + # In practice, the app is what we want anyways + root_cmakelists_dir = "console" + depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + + variant("jp2k", default=False, description="Enable JPEG2000 support") + variant("jpegls", default=False, description="Enable JPEG-LS support") + + depends_on("pkgconfig", type="build") + + depends_on("openjpeg", when="+jp2k") + depends_on("zlib-api") + + def cmake_args(self): + args = [ + self.define("ZLIB_IMPLEMENTATION", "System"), + # Not all systems have a libstdc++.a while dynamic is always there + self.define("USE_STATIC_RUNTIME", "OFF"), + self.define_from_variant("USE_JPEGLS", "jpegls"), + ] + + if self.spec.satisfies("+jp2k"): + args.append(self.define("USE_OPENJPEG", "System")) + + return args diff --git a/repos/spack_repo/builtin/packages/dd4hep/package.py b/repos/spack_repo/builtin/packages/dd4hep/package.py index 3ea1ef71c99..74c754b4efe 100644 --- a/repos/spack_repo/builtin/packages/dd4hep/package.py +++ b/repos/spack_repo/builtin/packages/dd4hep/package.py @@ -7,6 +7,15 @@ from spack.package import * +def _std_when(values): + for v in values: + if isinstance(v, str): + yield v, "" + continue + for c in v: + yield c.value, c.when + + class Dd4hep(CMakePackage): """DD4hep is a software framework for providing a complete solution for full detector description (geometry, materials, visualization, readout, @@ -27,6 +36,11 @@ class Dd4hep(CMakePackage): license("LGPL-3.0-or-later") version("master", branch="master") + version("1.37", sha256="ade63b28c13d8e265ef95185326bc311fdf76cd3afe1a2bc44c7ff3f6a19409c") + version("1.36", sha256="89c60c035fba04c94ee6ea68d4caecfe4c3c7edbb46aec9e613e6af9826fba2f") + version("1.35", sha256="d15c6fbc762e8863a7c5b222a661baae8e9e30263554a9e5c24c593c1effd00b") + version("1.34", sha256="1c121f4b3eb14d104b7a7f734e7e52efc4b6e4e5bc74d21d5d2de1b91c8f9f75") + version("1.33", sha256="23f78163e1371a5f092758cdc60a18906b1b19bbeacdd7c68557ebf71424fc23") version("1.32.1", sha256="f47fbede967b609e142c3116d23b4993f9d57fbae28a1739b5333503bc498883") version("1.32", sha256="8bde4eab9af9841e040447282ea7df3a16e4bcec587c3a1e32f41987da9b1b4d") version("1.31", sha256="9c06a1b4462fc1b51161404889c74b37350162d0b0ac2154db27e3f102670bd1") @@ -71,7 +85,7 @@ class Dd4hep(CMakePackage): variant("ddcond", default=True, description="Build DDCond subpackage.") variant("ddalign", default=True, description="Build DDAlign subpackage.") variant("dddigi", default=True, description="Build DDDigi subpackage.") - variant("ddeve", default=True, description="Build DDEve subpackage.") + variant("ddeve", default=True, description="Build DDEve subpackage.", when="@1.24:") variant("utilityapps", default=True, description="Build UtilityApps subpackage.") # variants for other build options @@ -85,7 +99,7 @@ class Dd4hep(CMakePackage): when="@1.26: +hepmc3", ) variant("lcio", default=False, description="Enable build with lcio") - variant("edm4hep", default=True, description="Enable build with edm4hep") + variant("edm4hep", default=True, description="Enable build with edm4hep", when="@1.24:") variant("geant4units", default=False, description="Use geant4 units throughout") variant("tbb", default=False, description="Enable build with tbb") variant( @@ -95,7 +109,7 @@ class Dd4hep(CMakePackage): " some places in addtion to the debug build type", ) - _cxxstd_values = ("14", "17", "20") + _cxxstd_values = (conditional("14", when="@:1.34"), "17", "20", "23") variant( "cxxstd", default="20", @@ -110,9 +124,9 @@ class Dd4hep(CMakePackage): depends_on("cmake @3.12:", type="build") depends_on("cmake @3.14:", type="build", when="@1.26:") - for _std in _cxxstd_values: + for _std, _when in _std_when(_cxxstd_values): for _pkg in ["boost", "root"]: - depends_on(f"{_pkg} cxxstd={_std}", when=f"cxxstd={_std}") + depends_on(f"{_pkg} cxxstd={_std}", when=f"{_when} cxxstd={_std}") depends_on("boost @1.49:") depends_on("boost +system +filesystem", when="%gcc@:7") @@ -121,7 +135,6 @@ class Dd4hep(CMakePackage): with when("+ddeve"): depends_on("root @6.08: +geom +opengl +x") - depends_on("root @:6.27", when="@:1.23") conflicts("^root ~webgui", when="^root@6.28:") # For DD4hep >= 1.24, DDEve_Interface needs ROOT::ROOTGeomViewer only if ROOT >= 6.27 requires("^root +root7 +webgui", when="@1.24: ^root @6.27:") @@ -132,8 +145,8 @@ class Dd4hep(CMakePackage): with when("+ddg4"): depends_on("boost +iostreams") depends_on("geant4@10.2.2:") - for _std in _cxxstd_values: - depends_on(f"geant4 cxxstd={_std}", when=f"cxxstd={_std}") + for _std, _when in _std_when(_cxxstd_values): + depends_on(f"geant4 cxxstd={_std}", when=f"{_when} cxxstd={_std}") depends_on("imagemagick", when="+doc") depends_on("xerces-c", when="+xercesc") @@ -155,11 +168,15 @@ class Dd4hep(CMakePackage): # Specific version requirements depends_on("edm4hep@0.10.5:", when="@1.31:") - depends_on("podio@:0.16.03", when="@:1.23") + # Need https://github.com/AIDASoft/DD4hep/pull/1552 to build against edm4hep@1.0 + depends_on("edm4hep@:0.99.4", when="@:1.34") depends_on("podio@:0", when="@:1.29") depends_on("podio@0.16:", when="@1.24:") depends_on("podio@0.16.3:", when="@1.26:") depends_on("podio@0.16.7:", when="@1.31:") + # Needs a version where the following changes have landed + # https://github.com/AIDASoft/DD4hep/commit/b16e724627bd131cc8395a60f4eb9e0e261d5890 + depends_on("podio@:1.4", when="@:1.32") extends("python") @@ -174,6 +191,11 @@ class Dd4hep(CMakePackage): # See https://github.com/AIDASoft/DD4hep/issues/1210 conflicts("^root@6.31.1:", when="@:1.27") + # See https://github.com/AIDASoft/DD4hep/pull/1547 + conflicts( + "^python +freethreading", when="@:1.34", msg="python free-threading requires dd4hep@1.35:" + ) + @property def libs(self): # We need to override libs here, because we don't build a libdd4hep so @@ -229,7 +251,13 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: env.set("DD4hep_DIR", self.prefix) env.set("DD4hep_ROOT", self.prefix) if len(self.libs.directories) > 0: - env.prepend_path("LD_LIBRARY_PATH", self.libs.directories[0]) + # Plugin lookup mechanism is system-dependent + libvar = ( + "DYLD_LIBRARY_PATH" + if self.spec.satisfies("platform=darwin") + else "LD_LIBRARY_PATH" + ) + env.prepend_path(libvar, self.libs.directories[0]) def url_for_version(self, version): # dd4hep releases are dashes and padded with a leading zero diff --git a/repos/spack_repo/builtin/packages/ddc/package.py b/repos/spack_repo/builtin/packages/ddc/package.py new file mode 100644 index 00000000000..48fb620f2a7 --- /dev/null +++ b/repos/spack_repo/builtin/packages/ddc/package.py @@ -0,0 +1,163 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage + +from spack.package import * + + +class Ddc(CMakePackage): + """DDC is the discrete domain computation library.""" + + homepage = "https://github.com/CExA-project/ddc" + git = "https://github.com/CExA-project/ddc.git" + url = "https://github.com/CExA-project/ddc/archive/refs/tags/v0.7.0.tar.gz" + + maintainers("tpadioleau", "tretre91") + + license("MIT", checked_by="tpadioleau") + + version("main", branch="main", no_cache=True) + version("0.14.0", sha256="8c239cea877cf52c3334de6d5c5d248eac85e6df27b9476047fd7ff3f78b85b5") + version("0.13.0", sha256="6b93a532896d9f5342b477a2bcf85f05d242c8d7b0331580a62e50a9bf155bad") + version("0.12.0", sha256="30a464b00d712ce7264835cc162b63797185667fea3f4c9457d7dfff0a2bc0cc") + version("0.11.0", sha256="c3ee616cc6cbbf417dade247cd49805b1a5422b4ac3539cb954f608b8ea27cf4") + version("0.10.0", sha256="0ab717a21c641b59af8119ff665c0322498fcccf5f49b2c3a2746eecbf1a4964") + version("0.9.0", sha256="e975a19f2d8e4fc668ab7628e145b927987812496c94b384ee9e72d054711078") + version("0.8.0", sha256="6c6d28f1d406e1417021f88d748829cae0afce2cb3714cf82fd3f4cd3b7b91b4") + version("0.7.0", sha256="128dd93d0021da35dcd62db7eabab3136c826a924dbe90368361d347e6bd3111") + + variant("fft", default=True, description="Build DDC kernels for FFT") + variant("pdi", default=True, description="Build DDC PDI wrapper") + variant("splines", default=True, description="Build DDC kernels for splines") + variant("deprecated_code", default=True, description="Build deprecated code") + variant( + "double_precision", + default=True, + description="Use double precision floating point numbers instead of single precision", + ) + variant("tests", default=False, description="Build the tests") + + depends_on("cxx", type="build") + + depends_on("cmake@3.25:", type="build", when="@0.9:") + depends_on("cmake@3.22:", type="build") + depends_on("cmake@:4", type="build") + depends_on("cmake@:3", type="build", when="@:0.8") + + depends_on("kokkos@4.4.1:") + depends_on("kokkos@:5") + depends_on("kokkos@:4", when="@:0.8") + + with when("+fft"): + depends_on("kokkos-fft@0.3:") + depends_on("kokkos-fft@:1") + depends_on("kokkos-fft@:0", when="@:0.10") + depends_on("kokkos-fft host_backend=fftw-serial", when="^kokkos ~openmp") + depends_on("kokkos-fft host_backend=fftw-openmp", when="^kokkos +openmp") + depends_on("kokkos-fft device_backend=cufft", when="^kokkos +cuda") + depends_on("kokkos-fft device_backend=hipfft", when="^kokkos +rocm") + depends_on("kokkos-fft device_backend=onemkl", when="^kokkos +sycl") + + with when("+splines"): + depends_on("ginkgo@1.8:") + depends_on("ginkgo@:1") + depends_on("kokkos-kernels@4.7:", when="@0.12:") + depends_on("kokkos-kernels@4.5.1:") + depends_on("kokkos-kernels@:5") + depends_on("kokkos-kernels@:4", when="@:0.8") + depends_on("lapack") + + for arch in CudaPackage.cuda_arch_values: + with when(f"^kokkos +cuda cuda_arch={arch}"): + depends_on(f"ginkgo +cuda cuda_arch={arch}") + depends_on(f"kokkos-kernels +cuda cuda_arch={arch}") + + for target in ROCmPackage.amdgpu_targets: + depends_on( + f"ginkgo +rocm amdgpu_target={target}", + when=f"^kokkos +rocm amdgpu_target={target}", + ) + + depends_on("ginkgo +sycl", when="^kokkos +sycl") + depends_on("ginkgo +openmp", when="^kokkos +openmp") + + with when("+pdi"): + depends_on("pdi@1.10.1:", when="@0.11:") + depends_on("pdi@1.6:") + depends_on("pdi@:1") + + with when("+tests"): + depends_on("googletest@1.14: +gmock") + 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") + + conflicts("^kokkos@4.5.0", msg="Incompatible with the embedded mdspan of Kokkos") + + requires( + "^kokkos +cuda_constexpr", + when="^kokkos +cuda", + msg="DDC relies on the constexpr support of nvcc", + ) + requires( + "^kokkos +cuda_relocatable_device_code", + when="^kokkos +cuda", + msg="DDC relies on relocatable device code", + ) + requires( + "^kokkos +hip_relocatable_device_code", + when="^kokkos +rocm", + msg="DDC relies on relocatable device code", + ) + requires( + "^kokkos +sycl_relocatable_device_code", + when="^kokkos +sycl", + msg="DDC relies on relocatable device code", + ) + + def cmake_args(self): + args = [ + self.define("DDC_BUILD_EXAMPLES", False), + self.define("DDC_BUILD_DOCUMENTATION", False), + self.define("DDC_Kokkos_DEPENDENCY_POLICY", "INSTALLED"), + self.define_from_variant("DDC_BUILD_TESTS", "tests"), + self.define_from_variant("DDC_BUILD_KERNELS_FFT", "fft"), + self.define_from_variant("DDC_BUILD_KERNELS_SPLINES", "splines"), + self.define_from_variant("DDC_BUILD_PDI_WRAPPER", "pdi"), + self.define_from_variant("DDC_BUILD_DEPRECATED_CODE", "deprecated_code"), + self.define_from_variant("DDC_BUILD_DOUBLE_PRECISION", "double_precision"), + ] + + if self.spec.satisfies("+fft"): + args.append(self.define("DDC_KokkosFFT_DEPENDENCY_POLICY", "INSTALLED")) + + if self.spec.satisfies("+splines"): + args.append(self.define("DDC_KokkosKernels_DEPENDENCY_POLICY", "INSTALLED")) + + lapack_provider = self.spec["lapack"] + if lapack_provider.name == "cray-libsci": + lapack_include_directories = "" + for directory in lapack_provider.headers.directories: + lapack_include_directories += f" -isystem {directory}" + args.extend( + [ + self.define("BLA_PREFER_PKGCONFIG", True), + self.define("BLA_PKGCONFIG_BLAS", "libsci"), + self.define("BLA_PKGCONFIG_LAPACK", "libsci"), + self.define("CMAKE_CXX_FLAGS", lapack_include_directories.strip()), + ] + ) + + if self.spec.satisfies("+tests"): + args.append(self.define("DDC_GTest_DEPENDENCY_POLICY", "INSTALLED")) + + if self.spec.satisfies("^kokkos+rocm"): + args.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc)) + else: + args.append(self.define("CMAKE_CXX_COMPILER", self["kokkos"].kokkos_cxx)) + + return args diff --git a/repos/spack_repo/builtin/packages/ddt/package.py b/repos/spack_repo/builtin/packages/ddt/package.py deleted file mode 100644 index 5b3d12582c1..00000000000 --- a/repos/spack_repo/builtin/packages/ddt/package.py +++ /dev/null @@ -1,59 +0,0 @@ -# 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 Ddt(Package): - """Arm DDT is the number one debugger in research, industry, and academia - for software engineers and scientists developing C++, C, Fortran parallel - and threaded applications on CPUs, GPUs, Intel and Arm. Arm DDT is trusted - as a powerful tool for automatic detection of memory bugs and divergent - behavior to achieve lightning-fast performance at all scales.""" - - homepage = "https://arm.com" - url = "https://downloads.linaroforge.com/22.1.3/linaro-forge-22.1.3-linux-x86_64.tar" - list_url = "https://www.linaroforge.com/download-documentation" - - maintainers("robgics") - - license_required = True - license_files = ["./licences/ddt.lic"] - - with default_args(deprecated=True): - # All versions are deprecated; the package linaro-forge is preferred - version( - "24.0.3", sha256="1796559fb86220d5e17777215d3820f4b04aba271782276b81601d5065284526" - ) - version( - "23.1.2", sha256="675d2d8e4510afefa0405eecb46ac8bf440ff35a5a40d5507dc12d29678a22bf" - ) - version( - "23.0.4", sha256="41a81840a273ea9a232efb4f031149867c5eff7a6381d787e18195f1171caac4" - ) - version( - "22.1.3", sha256="4f8a8b1df6ad712e89c82eedf4bd85b93b57b3c8d5b37d13480ff058fa8f4467" - ) - version( - "22.0.2", sha256="3db0c3993d1db617f850c48d25c9239f06a018c895ea305786a7ad836a44496d" - ) - # Versions before 22.0 have a security vulnerability. Do not install them. - - def url_for_version(self, version): - if version <= Version("22.1.3"): - return ( - f"https://downloads.linaroforge.com/{version}/arm-forge-{version}-linux-x86_64.tar" - ) - else: - return f"https://downloads.linaroforge.com/{version}/linaro-forge-{version}-linux-x86_64.tar" - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - env.prepend_path("PATH", join_path(self.prefix, "bin")) - - def install(self, spec, prefix): - install_shell = which("sh") - args = ["./textinstall.sh", "--accept-license", prefix] - install_shell(*args) diff --git a/repos/spack_repo/builtin/packages/dealii/package.py b/repos/spack_repo/builtin/packages/dealii/package.py index 41d726157a8..764d08fd741 100644 --- a/repos/spack_repo/builtin/packages/dealii/package.py +++ b/repos/spack_repo/builtin/packages/dealii/package.py @@ -32,6 +32,8 @@ class Dealii(CMakePackage, CudaPackage): generator("make") version("master", branch="master") + version("9.7.1", sha256="0f2096ef83db54fdcebe9f3d148fa713f63f1c3f567941b53bcb4a1a8ea7de43") + version("9.7.0", sha256="398ffbb5de1ea52b88a47aaa54a253ad58ee4e810a8c5aa0a0f549ecb1bc4c6c") version("9.6.2", sha256="1051e332de3822488e91c2b0460681052a3c4c5ac261cdd7a6af784869a25523") version("9.6.1", sha256="9fcaa3968ac2eab41573b3614756a898a3ea91afcd9f3477ab2f30bb19aa669a") version("9.6.0", sha256="675323f0eb8eed2cfc93e2ced07a0ec5727c6a566ff9e7786c01a2ddcde17bed") @@ -84,7 +86,10 @@ class Dealii(CMakePackage, CudaPackage): variant("doc", default=False, description="Compile with documentation") variant("examples", default=True, description="Install source files of tutorial programs") variant( - "examples_compile", default=True, description="Install binary files of tutorial programs" + "examples_compile", + default=True, + when="@:9.6", + description="Install binary files of tutorial programs", ) variant("int64", default=False, description="Compile with 64 bit indices support") variant("mpi", default=True, description="Compile with MPI") @@ -110,12 +115,11 @@ class Dealii(CMakePackage, CudaPackage): variant("muparser", default=True, description="Compile with muParser") variant("nanoflann", default=False, description="Compile with Nanoflann") variant("netcdf", default=False, description="Compile with Netcdf (only with MPI)") - variant("oce", default=False, description="Compile with OCE") variant("opencascade", default=True, description="Compile with OPENCASCADE") variant("p4est", default=True, description="Compile with P4est (only with MPI)") variant("petsc", default=True, description="Compile with Petsc (only with MPI)") variant("scalapack", default=True, description="Compile with ScaLAPACK (only with MPI)") - variant("sundials", default=True, description="Compile with Sundials") + variant("sundials", default=True, description="Compile with Sundials", when="@9.3:") variant("slepc", default=True, description="Compile with Slepc (only with Petsc and MPI)") variant("symengine", default=True, description="Compile with SymEngine") variant("simplex", default=True, description="Compile with Simplex support") @@ -193,6 +197,7 @@ class Dealii(CMakePackage, CudaPackage): depends_on("adol-c@2.6.4:", when="@9.0:+adol-c") depends_on("arborx", when="@9.3:+arborx") depends_on("arborx+trilinos", when="@9.3:+arborx+trilinos") + depends_on("arborx@1.5:", when="@9.7:+arborx") depends_on("arpack-ng+mpi", when="+arpack+mpi") depends_on("assimp", when="@9.0:+assimp") # cgal 6 not yet supported: https://github.com/spack/spack/pull/47285#issuecomment-2455403447 @@ -202,9 +207,8 @@ class Dealii(CMakePackage, CudaPackage): depends_on("graphviz", when="+doc") depends_on("ginkgo", when="@9.1:+ginkgo") depends_on("ginkgo@1.4.0:", when="@9.4:+ginkgo") - depends_on("gmsh+oce", when="@9.0:+gmsh+oce", type=("build", "run")) depends_on("gmsh+opencascade", when="@9.0:+gmsh+opencascade", type=("build", "run")) - depends_on("gmsh", when="@9.0:+gmsh~opencascade~oce", type=("build", "run")) + depends_on("gmsh", when="@9.0:+gmsh~opencascade", type=("build", "run")) depends_on("gsl", when="@8.5.0:+gsl") # TODO: next line fixes concretization with petsc depends_on("hdf5+mpi+hl+fortran", when="+hdf5+mpi+petsc") @@ -223,7 +227,6 @@ class Dealii(CMakePackage, CudaPackage): depends_on("nanoflann", when="@9.0:9.2+nanoflann") depends_on("netcdf-c+mpi", when="+netcdf+mpi") depends_on("netcdf-cxx", when="+netcdf+mpi") - depends_on("oce", when="+oce") depends_on("opencascade", when="+opencascade") depends_on("p4est", when="+p4est+mpi") depends_on("petsc+mpi~int64", when="+petsc+mpi~int64") @@ -231,10 +234,10 @@ class Dealii(CMakePackage, CudaPackage): depends_on("scalapack", when="@9.0:+scalapack") depends_on("slepc", when="+slepc+petsc+mpi") depends_on("slepc~arpack", when="+slepc+petsc+mpi+int64") - depends_on("sundials@:3~pthread", when="@9.0:9.2+sundials") depends_on("sundials@5:5.8", when="@9.3:9.3.3+sundials") depends_on("sundials@5:6.7", when="@9.3.4:+sundials") depends_on("taskflow@3.4:", when="@9.6:+taskflow") + depends_on("taskflow@3.10:", when="@9.7:+taskflow") depends_on("trilinos gotype=int", when="+trilinos@12.18.1:") depends_on("trilinos+cuda+cuda_constexpr", when="@9.6:+trilinos+cuda") # TODO: next line fixes concretization with trilinos and adol-c @@ -257,7 +260,8 @@ class Dealii(CMakePackage, CudaPackage): depends_on("symengine@0.6:", when="@9.2:+symengine") depends_on("tbb", when="+threads") # do not require +rol to make concretization of xsdk possible - depends_on("trilinos+amesos+aztec+epetra+ifpack+ml+muelu+sacado", when="+trilinos") + # Trilinos no longer has epetra from 17 onward + depends_on("trilinos+amesos+aztec+epetra+ifpack+ml+muelu+sacado@:16", when="+trilinos") depends_on("trilinos~hypre", when="+trilinos+int64") for _arch in CudaPackage.cuda_arch_values: arch_str = f"+cuda cuda_arch={_arch}" @@ -341,8 +345,6 @@ class Dealii(CMakePackage, CudaPackage): msg="Deal.II 9.6 onwards requires the C++ standard to be set to 17 or later.", ) - conflicts("oce", when="+opencascade", msg="Only one among OCE or OPENCASCADE can be selected.") - # Interfaces added in 8.5.0: for _package in ["gsl", "python"]: conflicts( @@ -354,7 +356,7 @@ class Dealii(CMakePackage, CudaPackage): ) # Interfaces added in 9.0.0: - for _package in ["assimp", "gmsh", "nanoflann", "scalapack", "sundials", "adol-c"]: + for _package in ["assimp", "gmsh", "nanoflann", "scalapack", "adol-c"]: conflicts( "+{0}".format(_package), when="@:8.5.1", @@ -418,8 +420,9 @@ class Dealii(CMakePackage, CudaPackage): conflicts( "+{0}".format(_package), when="~mpi", - msg="To enable {0} it is necessary to build deal.II with " - "MPI support enabled.".format(_package), + msg="To enable {0} it is necessary to build deal.II with MPI support enabled.".format( + _package + ), ) # Optional dependencies: @@ -427,18 +430,16 @@ class Dealii(CMakePackage, CudaPackage): conflicts( "+adol-c", when="^trilinos+chaco", - msg="Symbol clash between the ADOL-C library and " "Trilinos SEACAS Chaco.", + msg="Symbol clash between the ADOL-C library and Trilinos SEACAS Chaco.", ) conflicts( "+adol-c", when="^trilinos+exodus", - msg="Symbol clash between the ADOL-C library and " "Trilinos Netcdf.", + msg="Symbol clash between the ADOL-C library and Trilinos Netcdf.", ) conflicts( - "+slepc", - when="~petsc", - msg="It is not possible to enable slepc interfaces " "without petsc.", + "+slepc", when="~petsc", msg="It is not possible to enable slepc interfaces without petsc." ) def cmake_args(self): @@ -498,8 +499,7 @@ def cmake_args(self): # Enforce the specified C++ standard if spec.variants["cxxstd"].value != "default": - cxxstd = spec.variants["cxxstd"].value - cxx_flags.extend(["-std=c++{0}".format(cxxstd)]) + options.append(self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd")) # Performance # Set recommended flags for maximum (matrix-free) performance, see @@ -661,11 +661,6 @@ def cmake_args(self): ] ) - # Open Cascade -- OCE - if "+oce" in spec: - options.append(self.define_from_variant("DEAL_II_WITH_OPENCASCADE", "oce")) - options.append(self.define("OPENCASCADE_DIR", spec["oce"].prefix)) - # Open Cascade -- OpenCascade if "+opencascade" in spec: options.append(self.define_from_variant("DEAL_II_WITH_OPENCASCADE", "opencascade")) diff --git a/repos/spack_repo/builtin/packages/deconseq_standalone/package.py b/repos/spack_repo/builtin/packages/deconseq_standalone/package.py index 8d5bc638334..88a9669d011 100644 --- a/repos/spack_repo/builtin/packages/deconseq_standalone/package.py +++ b/repos/spack_repo/builtin/packages/deconseq_standalone/package.py @@ -33,7 +33,7 @@ def install(self, spec, prefix): install("splitFasta.pl", prefix.bin) install("DeconSeqConfig.pm", prefix) - chmod = which("chmod") + chmod = which("chmod", required=True) chmod("+x", join_path(prefix.bin, "bwa64")) chmod("+x", join_path(prefix.bin, "bwaMAC")) chmod("+x", join_path(prefix.bin, "deconseq.pl")) diff --git a/repos/spack_repo/builtin/packages/deepmdkit/package.py b/repos/spack_repo/builtin/packages/deepmdkit/package.py new file mode 100644 index 00000000000..55c83370a6b --- /dev/null +++ b/repos/spack_repo/builtin/packages/deepmdkit/package.py @@ -0,0 +1,58 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class Deepmdkit(CMakePackage): + """DeePMD-kit is a package written in Python/C++, designed to minimize the effort + required to build deep learning-based model of interatomic potential energy + and force field and to perform molecular dynamics (MD). This brings new hopes + to addressing the accuracy-versus-efficiency dilemma in molecular simulations. + Applications of DeePMD-kit span from finite molecules to extended systems and + from metallic systems to chemically bonded systems.""" + + homepage = "https://github.com/deepmodeling/deepmd-kit" + url = "https://github.com/deepmodeling/deepmd-kit/archive/v3.0.2.tar.gz" + git = "https://github.com/deepmodeling/deepmd-kit.git" + + license("LGPL-3.0", checked_by="mkrack") + + maintainers("mkrack") + + version("3.1.3", sha256="4387128aab98d9819b3484957a8857030f805cbab90c035c509ea87a72b182fa") + version("3.1.2", sha256="8042a4939c5c0eba4f1c8adc530a83343630c42f9e268dff372c03ae0ec3f1f2") + version("3.1.0", sha256="45f13df9ed011438d139a7f61416b8d7940f63c47fcde53180bfccd60c9d22ee") + version("3.0.2", sha256="b828d3a44730ea852505abbdb24ea5b556f2bf8b16de5a9c76018ed1ced7121b") + + variant("tensorflow", default=False, description="Enable TensorFlow interface") + variant("pytorch", default=False, description="Enable PyTorch interface") + variant("jax", default=False, description="Enable JAX interface") + variant("build_testing", default=False, description="Build test and enable coverage") + variant("native_optimization", default=False, description="Enable native optimization") + variant("dp_using_c_api", default=True, description="Build third-party interface with C API") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("py-torch", when="+pytorch") + + requires("+jax", when="+tensorflow") + + root_cmakelists_dir = "source" + + build_targets = ["deepmd_c"] + + def cmake_args(self): + args = [ + self.define_from_variant("ENABLE_TENSORFLOW", "tensorflow"), + self.define_from_variant("ENABLE_PYTORCH", "pytorch"), + self.define_from_variant("ENABLE_JAX", "jax"), + self.define_from_variant("BUILD_TESTING", "build_testing"), + self.define_from_variant("ENABLE_NATIVE_OPTIMIZATION", "native_optimization"), + self.define_from_variant("DP_USING_C_AP", "dp_using_c_api"), + ] + return args diff --git a/repos/spack_repo/builtin/packages/delly2/package.py b/repos/spack_repo/builtin/packages/delly2/package.py index 4ccf151a99d..9e473e02eeb 100644 --- a/repos/spack_repo/builtin/packages/delly2/package.py +++ b/repos/spack_repo/builtin/packages/delly2/package.py @@ -24,7 +24,6 @@ class Delly2(MakefilePackage): version("1.1.8", sha256="f72a1143dc71449fc277fc8b3e337a4d35b2fe736f3693a14b1986efa8da4889") version("1.1.6", sha256="08961e9c81431eb486476fa71eea94941ad24ec1970b71e5a7720623a39bfd2a") version("0.9.1", tag="v0.9.1", commit="ef1cd626a85cfd1c1b7acfca2b5fd5957f2a05f1") - version("2017-08-03", commit="e32a9cd55c7e3df5a6ae4a91f31a0deb354529fc", deprecated=True) variant("openmp", default=False, description="Build with openmp support") @@ -48,32 +47,14 @@ def edit(self, spec, prefix): env["PARALLEL"] = "1" # Only want to build delly source, not submodules. Build fails # using provided submodules, succeeds with existing spack recipes. - if self.spec.satisfies("@2017-08-03"): - makefile = FileFilter("Makefile") - makefile.filter("HTSLIBSOURCES =", "#HTSLIBSOURCES") - makefile.filter("BOOSTSOURCES =", "#BOOSTSOURCES") - makefile.filter("SEQTK_ROOT ?=", "#SEQTK_ROOT") - makefile.filter("BOOST_ROOT ?=", "#BOOST_ROOT") - makefile.filter("cd src", "# cd src") - makefile.filter(".htslib ", "") - makefile.filter(".bcftools ", "") - makefile.filter(".boost ", "") - makefile.filter(".htslib:", "# .htslib:") - makefile.filter(".bcftools:", "# .bcftools:") - makefile.filter(".boost:", "# .boost:") - else: - env["EBROOTHTSLIB"] = self.spec["htslib"].prefix - if self.spec.satisfies("@0.9.1"): - filter_file( - "BUILT_PROGRAMS =.*$", "BUILT_PROGRAMS = src/delly src/dpe", "Makefile" - ) - filter_file("${SUBMODULES}", "", "Makefile", string=True) + env["EBROOTHTSLIB"] = self.spec["htslib"].prefix + if self.spec.satisfies("@0.9.1"): + filter_file("BUILT_PROGRAMS =.*$", "BUILT_PROGRAMS = src/delly src/dpe", "Makefile") + filter_file("${SUBMODULES}", "", "Makefile", string=True) def install(self, spec, prefix): mkdirp(prefix.bin) with working_dir("src"): install("delly", prefix.bin) - if self.spec.satisfies("@0.9.1") or self.spec.satisfies("@2017-08-03"): + if self.spec.satisfies("@0.9.1"): install("dpe", prefix.bin) - if self.spec.satisfies("@2017-08-03"): - install("cov", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/delta/package.py b/repos/spack_repo/builtin/packages/delta/package.py index 4bdc734a37e..4d8cd55e555 100644 --- a/repos/spack_repo/builtin/packages/delta/package.py +++ b/repos/spack_repo/builtin/packages/delta/package.py @@ -26,7 +26,7 @@ class Delta(Package): depends_on("java@8", type=("build", "run")) def install(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("build/sbt", "compile") bash("build/sbt", "package") install_tree("target", prefix.target) diff --git a/repos/spack_repo/builtin/packages/demuxlet/package.py b/repos/spack_repo/builtin/packages/demuxlet/package.py index 398ad146d07..8e3739a4243 100644 --- a/repos/spack_repo/builtin/packages/demuxlet/package.py +++ b/repos/spack_repo/builtin/packages/demuxlet/package.py @@ -33,8 +33,21 @@ def patch(self): filter_file("-I ../../htslib/htslib", "", "Makefile.am", string=True) filter_file("-I ../htslib/", "", "Makefile.am", string=True) filter_file("../htslib/libhts.a", "-lhts", "Makefile.am", string=True) + + # Add -ldeflate to LDFLAGS when depending on htslib with libdeflate if self.spec.satisfies("^htslib+libdeflate"): filter_file("-lcrypto", "-lcrypto -ldeflate", "Makefile.am", string=True) + # Remove -lcurl from LDFLAGS when depending on htslib sans libcurl + if self.spec.satisfies("^htslib~libcurl"): + filter_file("-lcurl", "", "Makefile.am", string=True) + + # Remove -lcrypto from LDFLAGS when depending on htslib sans S3 URL support. + # htslib's s3 variant is conditional and ~s3 will not be in its spec when + # ~libcurl is in its spec, so we must check for the case in which +s3 is not + # explicit. + if not self.spec.satisfies("^htslib+s3"): + filter_file("-lcrypto", "", "Makefile.am", string=True) + def autoreconf(self, spec, prefix): - which("autoreconf")("-vfi") + which("autoreconf", required=True)("-vfi") diff --git a/repos/spack_repo/builtin/packages/deno/package.py b/repos/spack_repo/builtin/packages/deno/package.py new file mode 100644 index 00000000000..b771814f009 --- /dev/null +++ b/repos/spack_repo/builtin/packages/deno/package.py @@ -0,0 +1,90 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import platform + +from spack_repo.builtin.build_systems.generic import Package + +from spack.package import * + + +class Deno(Package): + """A modern runtime for JavaScript and TypeScript.""" + + homepage = "https://docs.deno.com/" + url = "https://dl.deno.land/release/v2.4.2/deno-x86_64-unknown-linux-gnu.zip" + + # installation is reproducing what the install script does: + # https://github.com/denoland/deno_install/blob/master/install.sh + + 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": "d84778633215b7cb93cf7690860d6241f632b087bd2a19de12cd410e6b2e157a", + "aarch64": "4a3218e3ca99f2abbc41d20691bca7942d18ebcb01db6b4389cbb91eabf1055f", + }, + "darwin": { + "x86_64": "fa47eb72b8d1f3499a7fb3e6c7bbcd3b1e6407112bb03fafd40aa8038a54b93e", + "arm64": "732f3ce50dc64a63972ca4efb48679299c01663ce918f710d695a68ce5f4c936", + }, + # for some reason windows does not work + # "windows": { + # "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") + + system = platform.system().lower() + machine = platform.machine().lower() + + 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]) + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install("deno", prefix.bin) + + def url_for_version(self, version): + ver = version.string + + if ( + self.system not in self.deno_versions[ver] + and self.machine not in self.deno_versions[ver][self.system] + ): + return None + + 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/detray/package.py b/repos/spack_repo/builtin/packages/detray/package.py index fd4a44466f9..49ab7be85b9 100644 --- a/repos/spack_repo/builtin/packages/detray/package.py +++ b/repos/spack_repo/builtin/packages/detray/package.py @@ -21,6 +21,26 @@ class Detray(CMakePackage): license("MPL-2.0", checked_by="stephenswat") + version("1.0.1", sha256="6ba1b5ab140a81d2eb825658703bda992715f52e3a202995660a984fc68ac507") + version("1.0.0", sha256="d47301b153089370975fa6a21b8ae7548baa37f44e1474e3b7b79e87923b5123") + version("0.112.0", sha256="9782791ac9101ec3e4b4e7587e728baa5708a1149f4ae775796173da2666f19b") + version("0.111.0", sha256="676a8b42b5dccabaa63de12c0ff8bcbf77b06f0b0f0ba78fd021be114e74d40a") + version("0.110.0", sha256="32e29b010d703fc7c718d3cc687ac2cd95115bdf63c764bde35cc95a5f1a89d0") + version("0.109.2", sha256="512975a20524b24d3d84aa536b950bacba66aa1fee5213b2d92f35e8dd090ae4") + version("0.109.1", sha256="bb5f1285f5ca0c465f7ca13609348f849d57628dc7bfa5558b184cabc485f57e") + version("0.109.0", sha256="84e26928e17cf7c503920fe3502d38ad94684d9481fd11918a730df6eecc29fb") + version("0.108.0", sha256="e4ac45df0ae0dc9f10eb0d178a699afeb5e1b67834bed6017d57660fe4cd5f8a") + version("0.107.0", sha256="7764bfc27521965b28c28b65b5f099266b4ae355cd0f4a9944e47fea143dc35c") + version("0.106.0", sha256="9695430a1537e86c06b1423054dfd3b5ae717c9b84e1b233ae48fc3fd859b27a") + version("0.105.1", sha256="100f5954560426a14258a5debe1c1f25ae491611eec557d6733fa821889abbb7") + version("0.105.0", sha256="a2c5758420a1544a745e58cb2aa0eaac02cd4548a9a527b8b58d94759e5d38c7") + version("0.104.1", sha256="b75b3f2a27d4a03a69e66815b34ef2e7f6973919c8d9b1daff32d1135a28c0c6") + version("0.104.0", sha256="b11b98e32fbae972ae065d71ab70fcccfee1a83d7f71e611d4cfe2fce4bce6d8") + version("0.103.0", sha256="7b3d3c94cf42be7450e9fe008b567a2f425e6f1986b61d8a3a66814383599043") + version("0.102.0", sha256="534848b5d5d25c33dffd35a48cda04b24aea03c7c13d0c1240ad73ef06765368") + version("0.101.0", sha256="f13db54da9b888258ab73a963d5a4bc08b655cc4aef47935e486b7cbe43e0965") + version("0.100.1", sha256="5e68986889ae083503b3506015c649a0dcf1eadbeec642bb7749ee91c9fca201") + version("0.100.0", sha256="a34686403807db822dc71f2bc61b9d72e9837a525b22c0b86c6452bf9ec7b0e4") version("0.99.0", sha256="86baa957ec55e8eecb5a9dffe135b88265dd0f88f75bf0068c9068ea304c0fb5") version("0.98.0", sha256="d90c70d2d4bdd9dbd09024ff6990d57f610947c9544afccadf611316de76b2d9") version("0.97.0", sha256="cddee6074b92da9823afe016949c023843d9bc079caddaa7f52900dbefdf64a7") @@ -49,14 +69,6 @@ class Detray(CMakePackage): version("0.76.0", sha256="affa0e28ca96d168e377ba33642e0b626aacdc79f9436233f5561006018f9b9e") version("0.75.3", sha256="1249d7398d1e534bd36b6f5a7d06a5e67adf6adeb8bca188d7e35490a675de7a") version("0.75.2", sha256="249066c138eac4114032e8d558f3a05885140a809332a347c7667978dbff54ee") - version("0.74.2", sha256="9fd14cf1ec30477d33c530670e9fed86b07db083912fe51dac64bf2453b321e8") - version("0.73.0", sha256="f574016bc7515a34a675b577e93316e18cf753f1ab7581dcf1c8271a28cb7406") - version("0.72.1", sha256="6cc8d34bc0d801338e9ab142c4a9884d19d9c02555dbb56972fab86b98d0f75b") - version("0.71.0", sha256="2be2b3dac6f77aa8cea033eba841378dc3703ff93c99e4d05ea03df685e6d508") - version("0.70.0", sha256="14fa1d478d44d5d987caea6f4b365bce870aa8e140c21b802c527afa3a5db869") - version("0.69.1", sha256="7100ec86a47458a35f5943cd6c7da07c68b8c1c2f62d36d13b8bb50568d0abe5") - version("0.68.0", sha256="6d57835f22ced9243fbcc29b84ea4c01878a46bfa5910e320c933e9bf8e96612") - version("0.67.0", sha256="87b1b29f333c955ea6160f9dda89628490d85a9e5186c2f35f57b322bbe27e18") variant("csv", default=True, description="Enable the CSV IO plugin") _cxxstd_values = ( @@ -87,27 +99,34 @@ class Detray(CMakePackage): depends_on("cmake@3.21:", type="build", when="@0.95:") depends_on("vecmem@1.6.0:") depends_on("vecmem@1.8.0:", when="@0.76:") + depends_on("vecmem@1.18.0:", when="@0.102:") depends_on("covfie@0.10.0:") + depends_on("covfie@0.15.3:", when="@0.102:") depends_on("nlohmann-json@3.11.0:", when="+json") depends_on("dfelibs@20211029:", when="@:0.88") - depends_on("acts-algebra-plugins@0.18.0: +vecmem") - depends_on("acts-algebra-plugins +vc", when="+vc") - depends_on("acts-algebra-plugins +eigen", when="+eigen") - depends_on("acts-algebra-plugins +smatrix", when="+smatrix") - # The version number of algebra plugins was not correct before v0.28.0. - depends_on("acts-algebra-plugins@0.28.0:", when="@0.87:") - depends_on("acts-algebra-plugins@0.28.0: +vecmem", when="@0.95:") + with when("@:0.110"): + depends_on("acts-algebra-plugins@0.18.0: +vecmem") + depends_on("acts-algebra-plugins +vc", when="+vc") + depends_on("acts-algebra-plugins +eigen", when="+eigen") + depends_on("acts-algebra-plugins +smatrix", when="+smatrix") + # The version number of algebra plugins was not correct before v0.28.0. + depends_on("acts-algebra-plugins@0.28.0:", when="@0.87:") + depends_on("acts-algebra-plugins@0.28.0: +vecmem", when="@0.95:") + depends_on("acts-algebra-plugins@0.30.0: +vecmem", when="@0.103:") - # Detray imposes requirements on the C++ standard values used by Algebra - # Plugins. - with when("+smatrix"): - for _cxxstd in _cxxstd_values: - for _v in _cxxstd: - depends_on( - f"acts-algebra-plugins cxxstd={_v.value}", when=f"cxxstd={_v.value} {_v.when}" - ) + # Detray imposes requirements on the C++ standard values used by Algebra + # Plugins. + with when("+smatrix"): + for _cxxstd in _cxxstd_values: + for _v in _cxxstd: + depends_on( + f"acts-algebra-plugins cxxstd={_v.value}", + when=f"cxxstd={_v.value} {_v.when}", + ) + depends_on("python@3:", when="@1.0:", type="build") depends_on("actsvg +meta") + depends_on("actsvg @0.4.57:", when="@0.100:") def cmake_args(self): args = [ diff --git a/repos/spack_repo/builtin/packages/dftbplus/package.py b/repos/spack_repo/builtin/packages/dftbplus/package.py index 6cd2e5c0f08..f1096ca307e 100644 --- a/repos/spack_repo/builtin/packages/dftbplus/package.py +++ b/repos/spack_repo/builtin/packages/dftbplus/package.py @@ -3,12 +3,11 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.cmake import CMakePackage, generator -from spack_repo.builtin.build_systems.makefile import MakefilePackage from spack.package import * -class Dftbplus(CMakePackage, MakefilePackage): +class Dftbplus(CMakePackage): """DFTB+ is an implementation of the Density Functional based Tight Binding (DFTB) method, containing many extensions to the original method.""" @@ -20,12 +19,6 @@ class Dftbplus(CMakePackage, MakefilePackage): maintainers("HaoZeke", "aradi", "iamashwin99") generator("ninja") - build_system( - conditional("cmake", when="@20.1:"), - conditional("makefile", when="@:19.1"), - default="cmake", - ) - license("CC-BY-SA-4.0") version("main", branch="main") @@ -38,11 +31,6 @@ class Dftbplus(CMakePackage, MakefilePackage): version("20.2.1", sha256="95cc85fdb08bd57ca013bd09f4f902303720e17d015a5fab2d4db63fcb6d9cb3") version("20.2", sha256="eafd219159d600624041658046c89db539ceb0c1d2988b72321c80d9b992c9bf") version("20.1", sha256="04c2b906b8670937c8ddd9c5fb68e7e9921b464840cf54aa3d698db98167d0b7") - version( - "19.1", - deprecated=True, - sha256="78f45ef0571c78cf732a5493d32830455a832fa05ebcad43098895e46ad8d220", - ) variant( "api", @@ -59,7 +47,7 @@ class Dftbplus(CMakePackage, MakefilePackage): "chimes", default=False, when="@21.2:", - description="Whether repulsive corrections" "via the ChIMES library should be enabled.", + description="Whether repulsive corrections via the ChIMES library should be enabled.", ) variant( "elsi", @@ -69,9 +57,7 @@ class Dftbplus(CMakePackage, MakefilePackage): when="+mpi", ) variant( - "gpu", - default=False, - description="Use the MAGMA library " "for GPU accelerated computation", + "gpu", default=False, description="Use the MAGMA library for GPU accelerated computation" ) variant( "mbd", @@ -106,7 +92,7 @@ class Dftbplus(CMakePackage, MakefilePackage): variant( "sockets", default=False, - description="Whether the socket library " "(external control) should be linked", + description="Whether the socket library (external control) should be linked", ) variant( "transport", @@ -125,13 +111,6 @@ class Dftbplus(CMakePackage, MakefilePackage): variant("shared", default=False, description="Most often for the Python wrappers.") - variant( - "dftd3", - default=False, - when="@:19.1", - description="Use DftD3 dispersion library " "(if you need this dispersion model)", - ) - depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated @@ -151,8 +130,6 @@ class Dftbplus(CMakePackage, MakefilePackage): depends_on("scalapack", when="+mpi") depends_on("python@3.2:", type=("build", "run")) depends_on("py-numpy", type=("build", "run")) # for tests - # Only for 19.1 - depends_on("dftd3-lib@0.9.2", when="+dftd3") # Conflicts conflicts("+python", when="~shared") @@ -168,93 +145,6 @@ class Dftbplus(CMakePackage, MakefilePackage): # Extensions extends("python", when="+python") - @when("@19.1") # Only version without CMake - def edit(self, spec, prefix): - """ - First, change the ROOT variable, because, for some reason, - the Makefile and the spack install script run in different directories - Then, if using GCC, rename the file 'sys/make.x86_64-linux-gnu' - to make.arch. - After that, edit the make.arch to point to the dependencies - And the last thing we do here is to set the installdir - """ - dircwd = os.getcwd() - makefile = FileFilter("makefile") - makefile.filter("ROOT := .*", "ROOT := {0}".format(dircwd)) - - archmake = join_path(".", "sys", "make.x86_64-linux-gnu") - copy(archmake, join_path(dircwd, "make.arch")) - - march = FileFilter(join_path(dircwd, "make.arch")) - - mconfig = FileFilter(join_path(dircwd, "make.config")) - - mconfig.filter("INSTALLDIR := .*", "INSTALLDIR := {0}".format(prefix)) - - if self.spec.satisfies("+gpu"): - march.filter("MAGMADIR = .*", "MAGMADIR = {0}".format(spec["magma"].prefix)) - - mconfig.filter("WITH_GPU := .*", "WITH_GPU := 1") - - if self.spec.satisfies("+mpi"): - march.filter( - "SCALAPACKDIR = .*", "SCALAPACKDIR = {0}".format(spec["scalapack"].prefix) - ) - - march.filter( - "LIB_LAPACK = -l.*", "LIB_LAPACK = {0}".format(spec["blas"].libs.ld_flags) - ) - - march.filter("mpifort", "{0}".format(spec["mpi"].mpifc)) - - mconfig.filter("WITH_MPI := .*", "WITH_MPI := 1") - - if self.spec.satisfies("+elsi"): - mconfig.filter("WITH_ELSI := .*", "WITH_ELSI := 1") - - has_pexsi = "+enable_pexsi" in spec["elsi"] - - mconfig.filter( - "WITH_PEXSI := .*", - "WITH_PEXSI := {0}".format("1" if has_pexsi is True else "0"), - ) - - march.filter( - "ELSIINCDIR .*", "ELSIINCDIR = {0}".format(spec["elsi"].prefix.include) - ) - - march.filter("ELSIDIR .*", "ELSIDIR = {0}".format(spec["elsi"].prefix)) - - else: - march.filter( - "LIB_LAPACK += -l.*", "LIB_LAPACK += {0}".format(spec["blas"].libs.ld_flags) - ) - - if self.spec.satisfies("+sockets"): - mconfig.filter("WITH_SOCKETS := .*", "WITH_SOCKETS := 1") - - if self.spec.satisfies("+transport"): - mconfig.filter("WITH_TRANSPORT := .*", "WITH_TRANSPORT := 1") - - if self.spec.satisfies("+arpack"): - march.filter( - "ARPACK_LIBS = .*", "ARPACK_LIBS = {0}".format(spec["arpack-ng"].libs.ld_flags) - ) - - mconfig.filter("WITH_ARPACK := .*", "WITH_ARPACK := 1") - - if self.spec.satisfies("+dftd3"): - march.filter("COMPILE_DFTD3 = .*", "COMPILE_DFTD3 = 0") - march.filter( - "DFTD3_INCS = .*", "DFTD3_INCS = -I{0}".format(spec["dftd3-lib"].prefix.include) - ) - - march.filter( - "DFTD3_LIBS = .*", "DFTD3_LIBS = -L{0} -ldftd3".format(spec["dftd3-lib"].prefix) - ) - - mconfig.filter("WITH_DFTD3 := .*", "WITH_DFTD3 := 1") - def cmake_args(self): args = [ self.define_from_variant("WITH_OPENMP", "openmp"), diff --git a/repos/spack_repo/builtin/packages/dftd4/package.py b/repos/spack_repo/builtin/packages/dftd4/package.py index de857d8bca7..078c0286964 100644 --- a/repos/spack_repo/builtin/packages/dftd4/package.py +++ b/repos/spack_repo/builtin/packages/dftd4/package.py @@ -23,6 +23,12 @@ class Dftd4(MesonPackage, CMakePackage): build_system("cmake", "meson", default="meson") version("main", branch="main") + version("4.2.0", sha256="467e024071510ad82b862c66c383c2ebc164fc1140e15dfc79f48d2f999fd184") + version("4.1.1", sha256="c8e6388d7d7d748dbcf91117f35aa50108492d4fd2266d60782cf85a16651887") + version("4.1.0", sha256="344aafa9e994a08186c95bf4421d70aeb493fd9f8038726fc2782dd3f892c3a9") + version("4.0.2", sha256="ed4a6a3ba0a89b8d6825bf11724dee647fd8ee6272e7822e0cbd9847994eb872") + version("4.0.1", sha256="d3781763390c349794d70663e4e54e368d19a5869c98fe939b32e9069432201b") + version("4.0.0", sha256="401e49893d98a1da82896998a6345b62f709683cbb19d9cbbe10564b9fc353e4") version("3.7.0", sha256="4e8749df6852bf863d5d1831780a2d30e9ac4afcfebbbfe5f6a6a73d06d6c6ee") version("3.6.0", sha256="56b3b4650853a34347d3d56c93d7596ecbe2208c4a14dbd027959fd4a009679d") version("3.5.0", sha256="d2bab992b5ef999fd13fec8eb1da9e9e8d94b8727a2e624d176086197a00a46f") @@ -39,6 +45,8 @@ class Dftd4(MesonPackage, CMakePackage): when="build_system=meson", description="Build Python extension module", ) + with when("build_system=cmake"): + variant("shared", default=True, description="Build shared libraries") depends_on("c", type="build") depends_on("fortran", type="build") @@ -56,10 +64,12 @@ class Dftd4(MesonPackage, CMakePackage): depends_on(f"mctc-lib build_system={build_system}", when=f"build_system={build_system}") depends_on(f"multicharge build_system={build_system}", when=f"build_system={build_system}") + depends_on("mctc-lib@0.3", when="@:3.7") + depends_on("multicharge@0.3", when="@:3.7") extends("python", when="+python") def url_for_version(self, version): - if version <= Version("3.6.0"): + if version < Version("4.1.0") and version != Version("3.7.0"): return f"https://github.com/dftd4/dftd4/releases/download/v{version}/dftd4-{version}-source.tar.xz" return super().url_for_version(version) @@ -83,4 +93,7 @@ def meson_args(self): class CMakeBuilder(cmake.CMakeBuilder): def cmake_args(self): - return [self.define_from_variant("WITH_OPENMP", "openmp")] + return [ + self.define_from_variant("WITH_OPENMP", "openmp"), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + ] diff --git a/repos/spack_repo/builtin/packages/dia_umpire_se/package.py b/repos/spack_repo/builtin/packages/dia_umpire_se/package.py new file mode 100644 index 00000000000..123ba89e526 --- /dev/null +++ b/repos/spack_repo/builtin/packages/dia_umpire_se/package.py @@ -0,0 +1,70 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from glob import glob + +from spack_repo.builtin.build_systems.generic import Package + +from spack.package import * + + +class DiaUmpireSe(Package): + """Computational analysis for mass spectrometry-based proteomics data.""" + + homepage = "https://diaumpire.nesvilab.org/" + url = "https://github.com/Nesvilab/DIA-Umpire/archive/refs/tags/v2.2.8.tar.gz" + git = "https://github.com/Nesvilab/DIA-Umpire.git" + + maintainers("w8jcik") + + license("GPL-3.0") + + version("2.3.4", commit="68b73feeec6b4ef4812b5b3a7c410270e609b1ad") + version("2.2.9", commit="255e0fec1d3775fd9616c2e4c40e137ca1766476") + version("2.2.8", sha256="94113ea5c088189a28afc88ccfd1e0e4435755a3f499beb1dab10df0fb927282") + + depends_on("java@11:15", type=("build", "run"), when="@2.3.4:") + depends_on("java@9:15", type=("build", "run"), when="@2.2.9:2.3.3") + depends_on("java@1.7:15", type=("build", "run"), when="@:2.2.8") + + def install(self, spec, prefix): + if spec.satisfies("@2.2.9:"): + batmass_jars = [] + + with working_dir("lib"): + for jar in glob("batmass-io-*.jar"): + batmass_jars.append(jar) + + build_gradle = FileFilter("DIA_Umpire_SE/build.gradle") + + build_gradle.filter( + r"implementation project\(':DIA-Umpire'\)", + f"implementation project(':DIA-Umpire')\n implementation name: \"{batmass_jars[0].rstrip('.jar')}\"", # noqa + ) + + with working_dir("DIA_Umpire_SE"): + gradlew = Executable("./gradlew") + gradlew("clean", "build", "--no-daemon") + + mkdirp(prefix.lib) + + with working_dir("DIA_Umpire_SE/build/libs"): + for jar in glob("*"): + install(jar, prefix.lib) + + if spec.satisfies("^openjdk@11:"): + silence_java_warnings_params = ( + "--add-opens=java.base/java.lang=ALL-UNNAMED " + "--add-opens=java.base/java.math=ALL-UNNAMED " + "--add-opens=java.base/java.net=ALL-UNNAMED " + "--add-opens=java.base/java.text=ALL-UNNAMED " + "--add-opens=java.base/java.util=ALL-UNNAMED " + "--add-opens=java.base/java.util.concurrent=ALL-UNNAMED " + ) + + launcher_script = FileFilter("DIA_Umpire_SE/build/scripts/DIA_Umpire_SE") + launcher_script.filter(r"\$JAVA_OPTS", f"{silence_java_warnings_params} $JAVA_OPTS") + + mkdirp(prefix.bin) + install("DIA_Umpire_SE/build/scripts/DIA_Umpire_SE", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/dicom3tools/package.py b/repos/spack_repo/builtin/packages/dicom3tools/package.py index 2de5a4f550d..36ad82ea1c3 100644 --- a/repos/spack_repo/builtin/packages/dicom3tools/package.py +++ b/repos/spack_repo/builtin/packages/dicom3tools/package.py @@ -71,7 +71,7 @@ def build(self, spec, prefix): "config/generic.cf", ) - imake = which("imake") + imake = which("imake", required=True) imake("-I./config", "-DDefaultUIDRoot={0}".format(uid_root)) make("World") diff --git a/repos/spack_repo/builtin/packages/difftastic/package.py b/repos/spack_repo/builtin/packages/difftastic/package.py index af2d89ba473..a4b1a01aedf 100644 --- a/repos/spack_repo/builtin/packages/difftastic/package.py +++ b/repos/spack_repo/builtin/packages/difftastic/package.py @@ -17,6 +17,14 @@ class Difftastic(CargoPackage): license("MIT") + version("0.68.0", sha256="86cfd4232f99c5dac56bd1e6fab7b8d96cfaac7a4271738b50c8189031c97a66") + version("0.67.0", sha256="a6a15d6ca9f9ab7c034d1770417d1829deb3fbe9dcf4731b9cba867e50e78437") + version("0.64.0", sha256="54c7c93309ff9a2cbe87153ac1d16e80bacac4042c80f6b7206e9b71a6f10d0b") version("0.63.0", sha256="f96bcf4fc961921d52cd9fe5aa94017924abde3d5a3b5a4727b103e9c2d4b416") - depends_on("rust@0.64.0:", type="build") + 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:") + depends_on("rust@1.74.1:", type="build", when="@0.62:") + + depends_on("gmake", type="build") diff --git a/repos/spack_repo/builtin/packages/diffutils/package.py b/repos/spack_repo/builtin/packages/diffutils/package.py index 95032c0a556..c7860ef9d15 100644 --- a/repos/spack_repo/builtin/packages/diffutils/package.py +++ b/repos/spack_repo/builtin/packages/diffutils/package.py @@ -21,15 +21,17 @@ class Diffutils(AutotoolsPackage, GNUMirrorPackage): homepage = "https://www.gnu.org/software/diffutils/" gnu_mirror_path = "diffutils/diffutils-3.7.tar.xz" - license("GPL-3.0-or-later") + license("GPL-3.0-or-later", checked_by="wdconinc") + version("3.12", sha256="7c8b7f9fc8609141fdea9cece85249d308624391ff61dedaf528fcb337727dfd") + version("3.11", sha256="a73ef05fe37dd585f7d87068e4a0639760419f810138bd75c61ddaa1f9e2131e") version("3.10", sha256="90e5e93cc724e4ebe12ede80df1634063c7a855692685919bfe60b556c9bd09e") version("3.9", sha256="d80d3be90a201868de83d78dad3413ad88160cc53bcc36eb9eaf7c20dbf023f1") version("3.8", sha256="a6bdd7d1b31266d11c4f4de6c1b748d4607ab0231af5188fc2533d0ae2438fec") version("3.7", sha256="b3a7a6221c3dc916085f0d205abf6b8e1ba443d4dd965118da364a1dc1cb3a26") version("3.6", sha256="d621e8bdd4b573918c8145f7ae61817d1be9deb4c8d2328a65cea8e11d783bd6") - depends_on("c", type="build") # generated + depends_on("c", type="build") build_directory = "spack-build" @@ -47,6 +49,9 @@ class Diffutils(AutotoolsPackage, GNUMirrorPackage): def setup_build_environment(self, env: EnvironmentModifications) -> None: if self.spec.satisfies("%fj"): env.append_flags("CFLAGS", "-Qunused-arguments") + # Use C11 std to ensure two-arg static_assert (no C23 for Intel Classic) + if self.spec.satisfies("@3.10: %intel"): + env.append_flags("CFLAGS", "-std=c11") @classmethod def determine_version(cls, exe): diff --git a/repos/spack_repo/builtin/packages/dineof/package.py b/repos/spack_repo/builtin/packages/dineof/package.py new file mode 100644 index 00000000000..86c9873ab26 --- /dev/null +++ b/repos/spack_repo/builtin/packages/dineof/package.py @@ -0,0 +1,60 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.makefile import MakefilePackage + +from spack.package import * + + +class Dineof(MakefilePackage): + """DINEOF (Data Interpolating Empirical Orthogonal Functions) is an + EOF-based method to fill in missing data from geophysical fields, such as + clouds in sea surface temperature. + + For more information on how DINEOF works, please refer to Alvera-Azcarate + et al (2005) and Beckers and Rixen (2003). The multivariate application of + DINEOF is explained in Alvera-Azcarate et al (2007), and in Beckers et al + (2006) the error calculation using an optimal interpolation approach is + explained. If you need a copy of any of these papers, don't hesitate to + contact us! For more information about the Lanczos solver, see Toumazou and + Cretaux (2001). + + References: + Alvera-Azcarate et al (2005) - https://doi.org/10.1016/j.ocemod.2004.08.001 + Beckers and Rixen (2003) - https://doi.org/10.1175/1520-0426(2003)020%3C1839:ECADFF%3E2.0.CO;2 + Alvera-Azcarate et al (2007) - https://doi.org/10.1029/2006JC003660 + Beckers et al (2006) - https://doi.org/10.5194/os-2-183-2006 + Toumazou and Cretaux (2001) - https://doi.org/10.1175/1520-0493(2001)129%3C1243:UALEIT%3E2.0.CO;2 + """ + + homepage = "https://github.com/aida-alvera/DINEOF" + url = "https://github.com/aida-alvera/DINEOF/archive/refs/tags/v2.0.0.tar.gz" + + maintainers("aida-alvera", "insalt-glitch") + license("GPL-2.0-only", checked_by="insalt-glitch") + version("2.0.0", sha256="7a729c27599f3887d2f40e8ddbbdcb29046ae0e225d099739f0adea30b5eb2c0") + + depends_on("gmake", type="build") + depends_on("fortran", type="build") + + depends_on("blas", type=("build", "link", "run")) + depends_on("lapack", type=("build", "link", "run")) + depends_on("netcdf-c", type=("build", "link", "run")) + depends_on("netcdf-fortran", type=("build", "link", "run")) + depends_on("arpack-ng", type=("build", "link", "run")) + + def edit(self, spec, prefix): + copy("config.mk.template", "config.mk") + + def build(self, spec, prefix): + make( + f"FC={self.compiler.fc}", + f"BLAS_LIB={spec['blas'].libs.joined()}", + f"LAPACK_LIB={spec['lapack'].libs.joined()}", + parallel=False, + ) + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install("dineof", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/direnv/package.py b/repos/spack_repo/builtin/packages/direnv/package.py index d108bda6821..91dfaba9aae 100644 --- a/repos/spack_repo/builtin/packages/direnv/package.py +++ b/repos/spack_repo/builtin/packages/direnv/package.py @@ -22,6 +22,7 @@ class Direnv(GoPackage): # Versions (newest to oldest) version("master", branch="master") + version("2.37.1", sha256="4142fbb661f3218913fac08d327c415e87b3e66bd0953185294ff8f3228ead24") version("2.36.0", sha256="edb89ca67ef46a792d4e20177dae9dbd229e26dcbcfb17baa9645c1ff7cc47b0") version("2.35.0", sha256="a7aaec49d1b305f0745dad364af967fb3dc9bb5befc9f29d268d528b5a474e57") version("2.34.0", sha256="3d7067e71500e95d69eac86a271a6b6fc3f2f2817ba0e9a589524bf3e73e007c") diff --git a/repos/spack_repo/builtin/packages/distcc/package.py b/repos/spack_repo/builtin/packages/distcc/package.py index c5e22ce5cd6..91a89efc74a 100644 --- a/repos/spack_repo/builtin/packages/distcc/package.py +++ b/repos/spack_repo/builtin/packages/distcc/package.py @@ -26,7 +26,7 @@ class Distcc(AutotoolsPackage): depends_on("libiberty") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") def setup_run_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/diy/package.py b/repos/spack_repo/builtin/packages/diy/package.py index a2e42f28ef3..d7c971f9b97 100644 --- a/repos/spack_repo/builtin/packages/diy/package.py +++ b/repos/spack_repo/builtin/packages/diy/package.py @@ -23,6 +23,7 @@ class Diy(CMakePackage): version("3.5.0", sha256="b3b5490441d521b6e9b33471c782948194bf95c7c3df3eb97bc5cf4530b91576") depends_on("cxx", type="build") # generated + depends_on("c", type="build") depends_on("mpi") diff --git a/repos/spack_repo/builtin/packages/dla_future/package.py b/repos/spack_repo/builtin/packages/dla_future/package.py index ea2e0030bc9..40c0317a6d1 100644 --- a/repos/spack_repo/builtin/packages/dla_future/package.py +++ b/repos/spack_repo/builtin/packages/dla_future/package.py @@ -19,30 +19,21 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") - version("0.10.0", sha256="cdee4e4fe5c5c08c5a7a5a3848175daa62884793988b4284c40df81cc2339c74") - version("0.9.0", sha256="0297afb46285745413fd4536d8d7fe123e3045d4899cc91eed501bcd4b588ea6") - version("0.8.0", sha256="4c30c33ee22417514d839a75d99ae4c24860078fb595ee24ce4ebf45fbce5e69") - version("0.7.3", sha256="8c829b72f4ea9c924abdb6fe2ac7489304be4056ab76b8eba226c33ce7b7dc0e") - version( - "0.7.1", - sha256="651129686b7fb04178f230c763b371192f9cb91262ddb9959f722449715bdfe8", - deprecated=True, - ) - version( - "0.7.0", - sha256="40a62bc70b0a06246a16348ce6701ccfab1f0c1ace99684de4bfc6c90776f8c6", - deprecated=True, - ) - version("0.6.0", sha256="85dfcee36ff28fa44da3134408c40ebd611bccff8a295982a7c78eaf982524d9") - version("0.5.0", sha256="f964ee2a96bb58b3f0ee4563ae65fcd136e409a7c0e66beda33f926fc9515a8e") - version("0.4.1", sha256="ba95f26475ad68da1f3a24d091dc1b925525e269e4c83c1eaf1d37d29b526666") - version("0.4.0", sha256="34fd0da0d1a72b6981bed0bba029ba0947e0d0d99beb3e0aad0a478095c9527d") - version("0.3.1", sha256="350a7fd216790182aa52639a3d574990a9d57843e02b92d87b854912f4812bfe") - version("0.3.0", sha256="9887ac0b466ca03d704a8738bc89e68550ed33509578c576390e98e76b64911b") - version("0.2.1", sha256="4c2669d58f041304bd618a9d69d9879a42e6366612c2fc932df3894d0326b7fe") - version("0.2.0", sha256="da73cbd1b88287c86d84b1045a05406b742be924e65c52588bbff200abd81a10") - version("0.1.0", sha256="f7ffcde22edabb3dc24a624e2888f98829ee526da384cd752b2b271c731ca9b1") version("master", branch="master") + version("0.10.0", sha256="cdee4e4fe5c5c08c5a7a5a3848175daa62884793988b4284c40df81cc2339c74") + with default_args(deprecated=True): + version("0.9.0", sha256="0297afb46285745413fd4536d8d7fe123e3045d4899cc91eed501bcd4b588ea6") + version("0.8.0", sha256="4c30c33ee22417514d839a75d99ae4c24860078fb595ee24ce4ebf45fbce5e69") + version("0.7.3", sha256="8c829b72f4ea9c924abdb6fe2ac7489304be4056ab76b8eba226c33ce7b7dc0e") + version("0.6.0", sha256="85dfcee36ff28fa44da3134408c40ebd611bccff8a295982a7c78eaf982524d9") + version("0.5.0", sha256="f964ee2a96bb58b3f0ee4563ae65fcd136e409a7c0e66beda33f926fc9515a8e") + version("0.4.1", sha256="ba95f26475ad68da1f3a24d091dc1b925525e269e4c83c1eaf1d37d29b526666") + version("0.4.0", sha256="34fd0da0d1a72b6981bed0bba029ba0947e0d0d99beb3e0aad0a478095c9527d") + version("0.3.1", sha256="350a7fd216790182aa52639a3d574990a9d57843e02b92d87b854912f4812bfe") + version("0.3.0", sha256="9887ac0b466ca03d704a8738bc89e68550ed33509578c576390e98e76b64911b") + version("0.2.1", sha256="4c2669d58f041304bd618a9d69d9879a42e6366612c2fc932df3894d0326b7fe") + version("0.2.0", sha256="da73cbd1b88287c86d84b1045a05406b742be924e65c52588bbff200abd81a10") + version("0.1.0", sha256="f7ffcde22edabb3dc24a624e2888f98829ee526da384cd752b2b271c731ca9b1") variant("shared", default=True, description="Build shared libraries.") @@ -147,10 +138,6 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage): # https://github.com/eth-cscs/DLA-Future/pull/1043 conflicts("%gcc@9:10", when="@:0.3.0") - # Compilation failure with ROCm introduced in 0.7.0 and fixed in 0.7.1: - # https://github.com/eth-cscs/DLA-Future/pull/1241 - conflicts("+rocm ^hip@5.6:6.0", when="@0.7.0") - depends_on("hdf5 +cxx+mpi+threadsafe+shared", when="+hdf5") conflicts("+cuda", when="+rocm") diff --git a/repos/spack_repo/builtin/packages/dlb/package.py b/repos/spack_repo/builtin/packages/dlb/package.py index 27fddc10e63..ac3fca844c3 100644 --- a/repos/spack_repo/builtin/packages/dlb/package.py +++ b/repos/spack_repo/builtin/packages/dlb/package.py @@ -23,6 +23,11 @@ class Dlb(AutotoolsPackage): license("LGPL-3.0-or-later") version("main", branch="main") + version("3.7.0", sha256="25155576f1b1a9e3753cc033b610b0e1eb809acf7e76b85cbadc769ff046913a") + version("3.6.2", sha256="7f5703c72d57aad98a99e654f400bc20fc5213581f6ccfd2efd5ae26a0303141") + version("3.6.1", sha256="d5f3b8af5ddf7cf9baa2e76bffb20e2ea2ad2980c4d36155ad186e7afc709377") + version("3.6.0", sha256="52b42be9422e5036797c93e0ab592ad336ab14b9a5f9ff7dc428506e67beca6d") + version("3.5.3", sha256="4aac0e5d9eb701c51ec82adc7b56acddbd41e136d2fa3ef1dadb4c6b691a7f3b") version("3.5.2", sha256="ec81284f77aa07c1589a91f75ed1c88501beb6c8340f5bcad603c210f5c446d4") version("3.5.1", sha256="32ec884c90220478f9873bf37eb11b536bfc3739d108ba6b29edefb651a10c34") version("3.5.0", sha256="df7fe979059998c2199dc4ee3775d623287fcce728be07e2f6657da2314daf6b") @@ -40,6 +45,7 @@ class Dlb(AutotoolsPackage): variant("mpi", default=True, description="Build MPI libraries") variant("hwloc", default=True, description="Enable HWLOC support") variant("papi", default=True, description="Enable PAPI support") + variant("cuda", default=False, description="Enable CUDA support") depends_on("c", type="build") depends_on("fortran", type="build") @@ -47,6 +53,7 @@ class Dlb(AutotoolsPackage): depends_on("mpi", when="+mpi") depends_on("hwloc", when="+hwloc") depends_on("papi", when="@3.4: +papi") + depends_on("cuda", when="@3.6: +cuda") depends_on("python", type="build") depends_on("autoconf", type="build", when="@main") depends_on("automake", type="build", when="@main") @@ -60,5 +67,7 @@ def configure_args(self): args.extend(self.with_or_without("hwloc")) if self.spec.satisfies("@3.4:"): args.extend(self.with_or_without("papi")) + if self.spec.satisfies("@3.6:"): + args.extend(self.with_or_without("cuda")) return args diff --git a/repos/spack_repo/builtin/packages/dlib/package.py b/repos/spack_repo/builtin/packages/dlib/package.py index eb9ed44603b..7f50fa0b9cc 100644 --- a/repos/spack_repo/builtin/packages/dlib/package.py +++ b/repos/spack_repo/builtin/packages/dlib/package.py @@ -11,7 +11,7 @@ class Dlib(CMakePackage, CudaPackage): """toolkit containing machine learning algorithms and tools for creating complex software in C++ to solve real world problems""" - homepage = "http://dlib.net/" + homepage = "https://dlib.net/" url = "https://github.com/davisking/dlib/archive/v19.19.tar.gz" git = "https://github.com/davisking/dlib" diff --git a/repos/spack_repo/builtin/packages/dlpack/package.py b/repos/spack_repo/builtin/packages/dlpack/package.py index 587f7f612be..3b502be1825 100644 --- a/repos/spack_repo/builtin/packages/dlpack/package.py +++ b/repos/spack_repo/builtin/packages/dlpack/package.py @@ -18,6 +18,8 @@ class Dlpack(CMakePackage): license("Apache-2.0") version("master", branch="master") + version("1.2", sha256="58284a3b004a48450c958a23b30274527ebaf35a061124bbd4193fffa45efbd6") + version("1.1", sha256="2e3b94b55825c240cc58e6721e15b449978cbae21a2a4caa23058b0157ee2fb3") version("1.0", sha256="f8cfdcb634ff3cf0e3d9a3426e019e1c6469780a3b0020c9bc4ecc09cf9abcb1") version("0.8", sha256="cf965c26a5430ba4cc53d61963f288edddcd77443aa4c85ce722aaf1e2f29513") version("0.5", sha256="9209ac194a175aaab4381313891fba047cb173b2bdd15ac934f83f567f9cd514") @@ -26,5 +28,8 @@ class Dlpack(CMakePackage): version("0.2", sha256="419f76ef723d21b72b704b2c4bf718dcd9d2ecd44cd28c8a71798389b7932ae5") version("0.1", sha256="c69b06bfe03711e9d9d3f4d3f307d6dfd7e21d4864a053cca26296d5d05c175c") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cmake@3.2:", type="build") + depends_on("cmake@3.16:", type="build", when="@1.2:") diff --git a/repos/spack_repo/builtin/packages/dmd/package.py b/repos/spack_repo/builtin/packages/dmd/package.py index 594b6486194..c6b2d7750f9 100644 --- a/repos/spack_repo/builtin/packages/dmd/package.py +++ b/repos/spack_repo/builtin/packages/dmd/package.py @@ -53,9 +53,9 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: def edit(self, spec, prefix): # Move contents to dmd/ - mkdir = which("mkdir") + mkdir = which("mkdir", required=True) mkdir("dmd") - mv = which("mv") + mv = which("mv", required=True) dmd_files = [ f for f in os.listdir(".") diff --git a/repos/spack_repo/builtin/packages/dmlc_core/package.py b/repos/spack_repo/builtin/packages/dmlc_core/package.py index ba08eb012ba..beabd25acd0 100644 --- a/repos/spack_repo/builtin/packages/dmlc_core/package.py +++ b/repos/spack_repo/builtin/packages/dmlc_core/package.py @@ -20,6 +20,7 @@ class DmlcCore(CMakePackage): version("master") version("20170508", commit="a6c5701219e635fea808d264aefc5b03c3aec314") + depends_on("c", type="build") depends_on("cxx", type="build") # generated variant("openmp", default=False, description="Enable OpenMP support") diff --git a/repos/spack_repo/builtin/packages/docbook_xml/package.py b/repos/spack_repo/builtin/packages/docbook_xml/package.py index f64c4cbda86..87fa6eca07a 100644 --- a/repos/spack_repo/builtin/packages/docbook_xml/package.py +++ b/repos/spack_repo/builtin/packages/docbook_xml/package.py @@ -37,7 +37,7 @@ def config_docbook(self): version = self.version docbook = join_path(prefix, "docbook") ent_dir = join_path(prefix, "ent") - xmlcatalog = which("xmlcatalog") + xmlcatalog = which("xmlcatalog", required=True) # create docbook xmlcatalog("--noout", "--create", docbook) @@ -77,8 +77,7 @@ def config_docbook(self): "--noout", "--add", "public", - "-//OASIS//ENTITIES DocBook XML Additional General Entities " - "V{0}//EN".format(version), + "-//OASIS//ENTITIES DocBook XML Additional General Entities V{0}//EN".format(version), f"file://{prefix}/dbgenent.mod", docbook, ) @@ -118,7 +117,7 @@ def config_docbook(self): "--noout", "--add", "public", - "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow " "Relations//EN", + "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN", f"file://{ent_dir}/isoamsa.ent", docbook, ) @@ -126,7 +125,7 @@ def config_docbook(self): "--noout", "--add", "public", - "ISO 8879:1986//ENTITIES Added Math Symbols: Binary " "Operators//EN", + "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN", f"file://{ent_dir}/isoamsb.ent", docbook, ) @@ -142,7 +141,7 @@ def config_docbook(self): "--noout", "--add", "public", - "ISO 8879:1986//ENTITIES Added Math Symbols: " "Negated Relations//EN", + "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN", f"file://{ent_dir}/isoamsn.ent", docbook, ) diff --git a/repos/spack_repo/builtin/packages/docbook_xsl/package.py b/repos/spack_repo/builtin/packages/docbook_xsl/package.py index eaf18cc5401..20faf2b3c36 100644 --- a/repos/spack_repo/builtin/packages/docbook_xsl/package.py +++ b/repos/spack_repo/builtin/packages/docbook_xsl/package.py @@ -39,7 +39,7 @@ def config_docbook(self): catalog = self.catalog version = self.version xml_xsd = join_path(prefix, "slides", "schema", "xsd", "xml.xsd") - xmlcatalog = which("xmlcatalog") + xmlcatalog = which("xmlcatalog", required=True) # create catalog xmlcatalog("--noout", "--create", catalog) diff --git a/repos/spack_repo/builtin/packages/dock/package.py b/repos/spack_repo/builtin/packages/dock/package.py index d7f42065937..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")(*sh_args) - which("make")("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/dolfinx_mpc/package.py b/repos/spack_repo/builtin/packages/dolfinx_mpc/package.py new file mode 100644 index 00000000000..7036f21c96f --- /dev/null +++ b/repos/spack_repo/builtin/packages/dolfinx_mpc/package.py @@ -0,0 +1,40 @@ +# 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 DolfinxMpc(CMakePackage): + """Extension of fenics-dolfinx for multipoint constraints.""" + + homepage = "https://www.jsdokken.com/dolfinx_mpc" + url = "https://github.com/jorgensd/dolfinx_mpc/archive/v0.9.3.tar.gz" + git = "https://github.com/jorgensd/dolfinx_mpc.git" + + maintainers("jorgensd") + + license("MIT", checked_by="jorgensd") + + version("main", branch="main") + version("0.9.3", sha256="efa312cc498e428aab44acccc9bb0c74c200eda005742de7778c8e68fa84e8df") + version("0.8.1", sha256="e0254b4a1c9c1456583c1415821946b11b0b2e48dbfee6558da2bbedfe78b461") + + # HDF5 dependency requires C in CMake + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("fenics-dolfinx@main+petsc", when="@main") + depends_on("fenics-dolfinx@0.9+petsc", when="@0.9") + depends_on("fenics-dolfinx@0.8+petsc", when="@0.8") + depends_on("boost@1.70:+timer+filesystem", when="@:0.9") + depends_on("cmake@3.21:", when="@0.9:", type="build") + depends_on("cmake@3.19:", when="@:0.8", type="build") + + conflicts("%gcc@:9.10", msg="fenics-dolfinx requires GCC-10 or newer for C++20 support") + conflicts("%clang@:9.10", msg="fenics-dolfinx requires Clang-10 or newer for C++20 support") + + root_cmakelists_dir = "cpp" diff --git a/repos/spack_repo/builtin/packages/dorado/cmake-htslib.patch b/repos/spack_repo/builtin/packages/dorado/cmake-htslib.patch deleted file mode 100644 index a918ee5a782..00000000000 --- a/repos/spack_repo/builtin/packages/dorado/cmake-htslib.patch +++ /dev/null @@ -1,111 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 64d6091e..323412a4 100755 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -316,10 +316,6 @@ target_link_libraries(dorado_lib - minimap2 - ) - --if(NOT WIN32) -- add_dependencies(dorado_lib htslib_project) --endif() -- - if(NOT DORADO_DISABLE_DORADO) - if(NOT WIN32) - # Set up RPATHs so we can find dependencies -diff --git a/cmake/Htslib.cmake b/cmake/Htslib.cmake -index caabc1a3..c72fe534 100644 ---- a/cmake/Htslib.cmake -+++ b/cmake/Htslib.cmake -@@ -1,68 +1,4 @@ --if(NOT TARGET htslib) # lazy include guard -- if(WIN32) -- message(STATUS "Fetching htslib") -- download_and_extract(https://cdn.oxfordnanoportal.com/software/analysis/htslib-win.tar.gz htslib-win) -- set(HTSLIB_DIR ${DORADO_3RD_PARTY_DOWNLOAD}/htslib-win CACHE STRING -- "Path to htslib repo") -- add_library(htslib SHARED IMPORTED) -- set_target_properties(htslib PROPERTIES -- "IMPORTED_IMPLIB" ${HTSLIB_DIR}/hts-3.lib -- "IMPORTED_LOCATION" ${HTSLIB_DIR}/hts-3.dll -- "INTERFACE_INCLUDE_DIRECTORIES" ${HTSLIB_DIR}) -- target_link_directories(htslib INTERFACE ${HTSLIB_DIR}) -- else() -- message(STATUS "Setting up htslib build") -- set(HTSLIB_DIR ${DORADO_3RD_PARTY_SOURCE}/htslib CACHE STRING "Path to htslib repo") -- set(htslib_PREFIX ${CMAKE_BINARY_DIR}/3rdparty/htslib) -+include_directories(${HTSLIB_PREFIX}/include) - -- find_program(MAKE_COMMAND make REQUIRED) -- find_program(AUTOCONF_COMMAND autoconf REQUIRED) -- find_program(AUTOHEADER_COMMAND autoheader REQUIRED) -- execute_process(COMMAND bash -c "${AUTOCONF_COMMAND} -V | sed 's/.* //; q'" -- OUTPUT_VARIABLE AUTOCONF_VERS) -- if (AUTOCONF_VERS VERSION_GREATER_EQUAL 2.70 AND NOT CMAKE_GENERATOR STREQUAL "Xcode") -- set(AUTOCONF_COMMAND autoreconf --install) -- endif() -- -- # The Htslib build apparently requires BUILD_IN_SOURCE=1, which is a problem when -- # switching between build targets because htscodecs object files aren't regenerated. -- # To avoid this, copy the source tree to a build-specific directory and do the build there. -- set(HTSLIB_BUILD ${CMAKE_BINARY_DIR}/htslib_build) -- file(COPY ${HTSLIB_DIR} DESTINATION ${HTSLIB_BUILD}) -- -- if (CMAKE_SYSTEM_NAME STREQUAL "iOS") -- # We need cross-compilation mode for iOS builds. Otherwise we end up trying to link a MacOS library -- # into an iOS target. -- set(CONFIGURE_FLAGS --host=aarch64-apple-darwin "CFLAGS=-isysroot ${CMAKE_OSX_SYSROOT}" "CC=${CMAKE_C_COMPILER}" "LDFLAGS=-isysroot ${CMAKE_OSX_SYSROOT}") -- # By default the dylib install name will be some local path that won't work on the device. -- set(INSTALL_NAME ${CMAKE_INSTALL_NAME_TOOL} -id "@executable_path/Frameworks/libhts.3.dylib" ${htslib_PREFIX}/lib/libhts.3.dylib) -- endif() -- -- include(ExternalProject) -- ExternalProject_Add(htslib_project -- PREFIX ${HTSLIB_BUILD} -- SOURCE_DIR ${HTSLIB_BUILD}/htslib -- BUILD_IN_SOURCE 1 -- CONFIGURE_COMMAND ${AUTOHEADER_COMMAND} -- COMMAND ${AUTOCONF_COMMAND} -- COMMAND ./configure --disable-bz2 --disable-lzma --disable-libcurl --disable-s3 --disable-gcs ${CONFIGURE_FLAGS} -- BUILD_COMMAND ${MAKE_COMMAND} install prefix=${htslib_PREFIX} -- COMMAND ${INSTALL_NAME} -- INSTALL_COMMAND "" -- BUILD_BYPRODUCTS ${htslib_PREFIX}/lib/libhts.a -- LOG_CONFIGURE 0 -- LOG_BUILD 0 -- LOG_TEST 0 -- LOG_INSTALL 0 -- ) -- -- add_library(htslib STATIC IMPORTED) -- # Need to ensure this directory exists before we can add it to INTERFACE_INCLUDE_DIRECTORIES -- file(MAKE_DIRECTORY ${htslib_PREFIX}/include) -- set_target_properties(htslib -- PROPERTIES -- "IMPORTED_LOCATION" ${htslib_PREFIX}/lib/libhts.a -- "INTERFACE_INCLUDE_DIRECTORIES" ${htslib_PREFIX}/include) -- message(STATUS "Done Building htslib") -- endif() --endif() -+add_library(htslib SHARED IMPORTED) -+set_target_properties(htslib PROPERTIES IMPORTED_LOCATION ${HTSLIB_PREFIX}/lib/libhts.so) -diff --git a/dorado/utils/CMakeLists.txt b/dorado/utils/CMakeLists.txt -index 9bbf7067..e78feabe 100644 ---- a/dorado/utils/CMakeLists.txt -+++ b/dorado/utils/CMakeLists.txt -@@ -117,13 +117,9 @@ if(APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "iOS") - target_link_libraries(dorado_utils PUBLIC ${IOKIT}) - endif() - --if(NOT WIN32) -- add_dependencies(dorado_utils htslib_project) --endif() -- - # GCC 8 ICEs trying to compile this file with ASAN+optimisations enabled, so knock down the optimisation to try and help it out. - if (ECM_ENABLE_SANITIZERS AND (CMAKE_CXX_COMPILER_ID MATCHES "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0)) - set_source_files_properties(duplex_utils.cpp PROPERTIES COMPILE_OPTIONS "-O0") - endif() - --enable_warnings_as_errors(dorado_utils) -\ No newline at end of file -+enable_warnings_as_errors(dorado_utils) diff --git a/repos/spack_repo/builtin/packages/dorado/hdf5-libaec-0.5.3.patch b/repos/spack_repo/builtin/packages/dorado/hdf5-libaec-0.5.3.patch new file mode 100644 index 00000000000..19f41a31397 --- /dev/null +++ b/repos/spack_repo/builtin/packages/dorado/hdf5-libaec-0.5.3.patch @@ -0,0 +1,10 @@ +diff --git a/cmake/HDF5.cmake b/cmake/HDF5.cmake +index 256a17c0..e99ef8ec 100644 +--- a/cmake/HDF5.cmake ++++ b/cmake/HDF5.cmake +@@ -55,4 +55,5 @@ else() + endif() + + find_package(ZLIB QUIET) ++find_package(libaec COMPONENTS sz-shared) + find_package(HDF5 COMPONENTS C QUIET) diff --git a/repos/spack_repo/builtin/packages/dorado/hdf5-libaec-0.6.3.patch b/repos/spack_repo/builtin/packages/dorado/hdf5-libaec-0.6.3.patch new file mode 100644 index 00000000000..9236afc13f4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/dorado/hdf5-libaec-0.6.3.patch @@ -0,0 +1,10 @@ +diff --git a/cmake/HDF5.cmake b/cmake/HDF5.cmake +index d1b9432b..d09566cb 100644 +--- a/cmake/HDF5.cmake ++++ b/cmake/HDF5.cmake +@@ -65,4 +65,5 @@ else() + endif() + + find_package(ZLIB REQUIRED) ++find_package(libaec COMPONENTS sz-shared REQUIRED) + find_package(HDF5 COMPONENTS C REQUIRED) diff --git a/repos/spack_repo/builtin/packages/dorado/package.py b/repos/spack_repo/builtin/packages/dorado/package.py index c23e311a738..94822a96ec7 100644 --- a/repos/spack_repo/builtin/packages/dorado/package.py +++ b/repos/spack_repo/builtin/packages/dorado/package.py @@ -18,6 +18,14 @@ class Dorado(CMakePackage, CudaPackage): maintainers("snehring") + version("1.4.0", commit="ba44a0132a6fc54ffa790add140ebf6006a5a994", submodules=True) + version("1.2.0", commit="f9443bb8695f075dadc60bf4d1d92d8fd4361668", submodules=True) + version("1.1.1", commit="e72f14925cd435fff823ebf244ce2195b135a863", submodules=True) + version("1.0.2", commit="c758d2f6b01db2993282b4705f75d0cd53af43b8", submodules=True) + version("0.9.6", commit="0949eb8de80dce9a198c08c0e37e31ed1eb627fc", submodules=True) + version("0.8.3", commit="98456f7e595e64c0ec4bc13bda6cbdbe96c12039", submodules=True) + version("0.7.4", commit="a9de62e43eea37ce4e912faedb5ac57cd9b1c7dc", submodules=True) + version("0.6.3", commit="19d900eb9ff5e85e8deec77106def424b6d517d3", submodules=True) version("0.5.3", commit="d9af343c0097e0e60503231e036d69e6eda2f19a", submodules=True) version("0.5.1", commit="a7fb3e3d4afa7a11cb52422e7eecb1a2cdb7860f", submodules=True) @@ -30,7 +38,9 @@ class Dorado(CMakePackage, CudaPackage): depends_on("curl", type="build") depends_on("cuda") depends_on("hdf5@:1+hl+cxx+szip") - depends_on("htslib@1.15.1") + depends_on("htslib@1.15.1", when="@:0.5") + depends_on("htslib@1.21", when="@0.6:1.1") + depends_on("htslib@1.22", when="@1.2.0:") depends_on("openssl") depends_on("zstd") depends_on("libdeflate") @@ -39,12 +49,42 @@ class Dorado(CMakePackage, CudaPackage): conflicts("%gcc@:8", msg="Dorado requires at least gcc@9 to compile.") conflicts("%gcc@13:", msg="Dorado will not build with gcc@13 and newer.") - patch("cmake-htslib.patch") + patch("hdf5-libaec-0.5.3.patch", when="@:0.5.3") + patch("hdf5-libaec-0.6.3.patch", when="@0.6:0.9") def setup_build_environment(self, env: EnvironmentModifications) -> None: env.prepend_path("LD_LIBRARY_PATH", self.spec["libdeflate"].prefix.lib64) env.prepend_path("LIBRARY_PATH", self.spec["libdeflate"].prefix.lib64) + def patch(self): + if self.spec.satisfies("@:0.9"): # 1.0 removes these lines from the CMakeLists.txt files + filter_file( + "add_dependencies(dorado_lib htslib_project)", "", "CMakeLists.txt", string=True + ) + filter_file( + "add_dependencies(dorado_utils htslib_project)", + "", + "dorado/utils/CMakeLists.txt", + string=True, + ) + + if self.spec.satisfies("@0.9.5:0.9.6"): + filter_file( + "add_dependencies(dorado_secondary htslib_project)", + "", + "dorado/secondary/CMakeLists.txt", + string=True, + ) + + # Make CMake use spack's hdflib + with open("cmake/Htslib.cmake", "w") as f: + f.write("include_directories(${HTSLIB_PREFIX}/include)\n") + f.write("add_library(htslib SHARED IMPORTED)\n") + f.write( + "set_target_properties(htslib PROPERTIES IMPORTED_LOCATION " + "${HTSLIB_PREFIX}/lib/libhts.so)\n" + ) + def cmake_args(self): htslib_prefix = self.spec["htslib"].prefix args = [f"-DHTSLIB_PREFIX={htslib_prefix}", f"-DDORADO_INSTALL_PATH={self.prefix}"] diff --git a/repos/spack_repo/builtin/packages/dotnet_core_sdk/package.py b/repos/spack_repo/builtin/packages/dotnet_core_sdk/package.py index d43ddfc1bc8..e0d2d1f597a 100644 --- a/repos/spack_repo/builtin/packages/dotnet_core_sdk/package.py +++ b/repos/spack_repo/builtin/packages/dotnet_core_sdk/package.py @@ -15,6 +15,7 @@ class DotnetCoreSdk(Package): homepage = "https://www.microsoft.com/net/" + maintainers("grospelliergilles") license("MIT") if platform.system() == "Linux" and platform.machine() == "x86_64": @@ -24,61 +25,11 @@ class DotnetCoreSdk(Package): sha256="2212ace90b536bd99910baf485e925024a37fc08e31fc8c1014fe4392b8d4967", preferred=True, ) - - version( - "8.0.4", - url="https://download.visualstudio.microsoft.com/download/pr/0a1b3cbd-b4af-4d0d-9ed7-0054f0e200b4/4bcc533c66379caaa91770236667aacb/dotnet-sdk-8.0.204-linux-x64.tar.gz", - sha256="0ec834dc0f11a994057cd05d84c6250db726457f2fe308091d50543a5285dd15", - deprecated=True, - ) - - version( - "7.0.18", - url="https://download.visualstudio.microsoft.com/download/pr/a256265b-0ec6-4b63-b943-bc27bcfc98c0/47c8bbd54d7f6dbfe0ca4985c410282e/dotnet-sdk-7.0.408-linux-x64.tar.gz", - sha256="e72beb77f59d5c55de46f52cce01b68f244e28058f646f1ea4ecf8a35b177e58", - deprecated=True, - ) - version( "6.0.36", url="https://builds.dotnet.microsoft.com/dotnet/Sdk/6.0.428/dotnet-sdk-6.0.428-linux-x64.tar.gz", sha256="9b2f9b91e28677b58e47d34a1d9e2a88f597af1f6acd44764a3abc2f1bacdc8a", ) - - version( - "6.0.25", - url="https://download.visualstudio.microsoft.com/download/pr/1cac4d08-3025-4c00-972d-5c7ea446d1d7/a83bc5cbedf8b90495802ccfedaeb2e6/dotnet-sdk-6.0.417-linux-x64.tar.gz", - sha256="1b7c5ea04ccb817e1a411c9e1f89d7a4e54c0842b01b457e141bbc254ce97ba2", - deprecated=True, - ) - - version( - "6.0.2", - url="https://download.visualstudio.microsoft.com/download/pr/e7acb87d-ab08-4620-9050-b3e80f688d36/e93bbadc19b12f81e3a6761719f28b47/dotnet-sdk-6.0.102-linux-x64.tar.gz", - sha256="9bdd4dacdf9a23d386f207ec19260afd36a7fb7302233c9abc0b47e65ffc3119", - deprecated=True, - ) - - version( - "5.0.4", - url="https://download.visualstudio.microsoft.com/download/pr/73a9cb2a-1acd-4d20-b864-d12797ca3d40/075dbe1dc3bba4aa85ca420167b861b6/dotnet-sdk-5.0.201-linux-x64.tar.gz", - sha256="9ff77087831e8ca32719566ec9ef537e136cfc02c5ff565e53f5509cc6e7b341", - deprecated=True, - ) - - version( - "3.1.13", - url="https://download.visualstudio.microsoft.com/download/pr/ab82011d-2549-4e23-a8a9-a2b522a31f27/6e615d6177e49c3e874d05ee3566e8bf/dotnet-sdk-3.1.407-linux-x64.tar.gz", - sha256="a744359910206fe657c3a02dfa54092f288a44c63c7c86891e866f0678a7e911", - deprecated=True, - ) - - version( - "2.1.300", - url="https://download.microsoft.com/download/8/8/5/88544F33-836A-49A5-8B67-451C24709A8F/dotnet-sdk-2.1.300-linux-x64.tar.gz", - sha256="fabca4c8825182ff18e5a2f82dfe75aecd10260ee9e7c85a8c4b3d108e5d8e1b", - deprecated=True, - ) elif platform.system() == "Linux" and platform.machine() == "aarch64": version( "8.0.17", @@ -86,32 +37,38 @@ class DotnetCoreSdk(Package): sha256="7e28342741de05af2c4244c7384230bf51a3ffe6f314f26a25d1b57222c27751", preferred=True, ) - version( - "8.0.4", - url="https://download.visualstudio.microsoft.com/download/pr/1e449990-2934-47ee-97fb-b78f0e587c98/1c92c33593932f7a86efa5aff18960ed/dotnet-sdk-8.0.204-linux-arm64.tar.gz", - sha256="c6ecb0c1897e217e8d20153a0119276ee1091c0600aecf2aca8e674c3575942e", - deprecated=True, + "6.0.36", + url="https://builds.dotnet.microsoft.com/dotnet/Sdk/6.0.428/dotnet-sdk-6.0.428-linux-arm64.tar.gz", + sha256="b5956b0d9ab3063c2886ec74adc953394e81a1aa3f5075c6b41b3e4f1d7a53f9", ) - + elif platform.system() == "Darwin" and platform.machine() == "x86_64": version( - "7.0.18", - url="https://download.visualstudio.microsoft.com/download/pr/460f951f-0944-442b-8474-555e20394ca8/5fcf6b1845d87d772f919737b3dd5f55/dotnet-sdk-7.0.408-linux-arm64.tar.gz", - sha256="dd9a8794561a8b9c658a2ba832328449a34b0dd0cdcb79e31d6efc2d0c9a8efc", - deprecated=True, + "8.0.21", + url="https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.121/dotnet-sdk-8.0.121-osx-x64.tar.gz", + sha256="7ac6d6356300947e5c926fb6eb03bcda10d6d886d063de17ed63ae23b70e4756", + preferred=True, ) - + elif platform.system() == "Darwin" and platform.machine() == "aarch64": version( - "6.0.36", - url="https://builds.dotnet.microsoft.com/dotnet/Sdk/6.0.428/dotnet-sdk-6.0.428-linux-arm64.tar.gz", - sha256="b5956b0d9ab3063c2886ec74adc953394e81a1aa3f5075c6b41b3e4f1d7a53f9", + "8.0.21", + url="https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.121/dotnet-sdk-8.0.121-osx-arm64.tar.gz", + sha256="2cc5724a8470c3cd6db9f3d3c4970f5cd019a5186546a7acb0edd1703c6b8a09", + preferred=True, ) - + elif platform.system() == "Windows" and platform.machine() == "x86_64": version( - "6.0.25", - url="https://download.visualstudio.microsoft.com/download/pr/03972b46-ddcd-4529-b8e0-df5c1264cd98/285a1f545020e3ddc47d15cf95ca7a33/dotnet-sdk-6.0.417-linux-arm64.tar.gz", - sha256="c071e936442b90b80a941ab177b8c7851bc5377cf842cc1e61922b3d7fefeb0e", - deprecated=True, + "8.0.21", + url="https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.121/dotnet-sdk-8.0.121-win-x64.zip", + sha256="f5bbabfaaad0a07e19a641516a0a3d32160d5a05d2431d1bc67a1fcd47a0ca76", + preferred=True, + ) + elif platform.system() == "Windows" and platform.machine() == "aarch64": + version( + "8.0.21", + url="https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.121/dotnet-sdk-8.0.121-win-arm64.zip", + sha256="9ef78ec827d453bdfe774b7ebf2c504b0257e9d5116698accf60b06291ee8b4b", + preferred=True, ) variant("telemetry", default=False, description="allow collection of telemetry data") diff --git a/repos/spack_repo/builtin/packages/double_conversion/package.py b/repos/spack_repo/builtin/packages/double_conversion/package.py index 8b02e21d130..3eeb9fc987b 100644 --- a/repos/spack_repo/builtin/packages/double_conversion/package.py +++ b/repos/spack_repo/builtin/packages/double_conversion/package.py @@ -24,6 +24,7 @@ class DoubleConversion(CMakePackage): license("BSD-3-Clause") + version("3.4.0", sha256="effee857e20e86e32f125205c2be1374e748f5516a5519434bece0db56d6e581") version("3.3.0", sha256="4080014235f90854ffade6d1c423940b314bbca273a338235f049da296e47183") version("3.2.1", sha256="55aa41b463346b1032585c04fe7d0adec9db56598d8d699841cdadeb3597e909") version("3.1.5", sha256="72c0e3925a1214095afc6f1c214faecbec20e8526cf6b8a541cf72195a11887f") @@ -34,8 +35,14 @@ class DoubleConversion(CMakePackage): version("1.1.4", sha256="24b5edce8c88f0f632c83e60e0bde11252656dc3b714ba195619c1798ff28834") version("1.1.3", sha256="f0d1b8621592a3cf010c04c3e1c0f08455fc0fc7ee22e1583e2a63dc6d3e3871") - depends_on("c", type="build") - depends_on("cxx", type="build") + with default_args(type="build"): + depends_on("c") + depends_on("cxx") + + # ignore upper limit restriction since it builts fine with newer version as well + depends_on("cmake@3.29:", when="@3.4:") + depends_on("cmake@3:", when="@3.1:3.2") + depends_on("cmake@2.8:") def cmake_args(self): return ["-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true"] diff --git a/repos/spack_repo/builtin/packages/doxygen/package.py b/repos/spack_repo/builtin/packages/doxygen/package.py index afe6aad8529..e928f5d3dca 100644 --- a/repos/spack_repo/builtin/packages/doxygen/package.py +++ b/repos/spack_repo/builtin/packages/doxygen/package.py @@ -10,17 +10,22 @@ class Doxygen(CMakePackage): - """Doxygen is the de facto standard tool for generating documentation - from annotated C++ sources, but it also supports other popular programming - languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba, - Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some - extent D..""" + """Doxygen is the de facto standard tool for generating documentation from annotated C++ + sources, but it also supports other popular programming languages such as C, Objective-C, C#, + PHP, Java, Python, IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, and to some + extent D. Doxygen also supports the hardware description language VHDL. + """ homepage = "https://www.doxygen.org" url = "https://github.com/doxygen/doxygen/archive/refs/tags/Release_1_13_2.tar.gz" - license("GPL-2.0-or-later") + license("GPL-2.0", checked_by="mcmehrtens") + version("1.17.0", sha256="28199ea88989fc56e302c927ef979596fe9247dd231e767ba6edcdbaa49f78aa") + version("1.16.1", sha256="cdf9d614ee8ed6a939ad12ab31a6aaa1b0c089dff2a4ce20aa008893b686d636") + version("1.16.0", sha256="329ece14a718852e22bf9e9cc5cf0b2df20b70a6853417e818e80a6ea78ea6ac") + version("1.15.0", sha256="b2a79d92a934d4dcda2bb0006e65adbabfcfe83343e024d5f598ff3a62c23dda") + version("1.14.0", sha256="5663bf33e979381f470c2f4055c3b162e0abe41bdd6c5dccefd8d8775780bcc3") version("1.13.2", sha256="4c9d9c8e95c2af4163ee92bcb0f3af03b2a4089402a353e4715771e8d3701c48") version("1.13.1", sha256="16632b5052e0e5f8acbcfc80aaf37f0e445e777ca68aab0df136a68fa855d91c") version("1.13.0", sha256="f447f6d3dce91e70d323611fc5e1b15dfff705093eddbe8f36f2d9b10d99743d") @@ -46,9 +51,8 @@ class Doxygen(CMakePackage): version("1.8.11", sha256="86263cb4ce1caa41937465f73f644651bd73128d685d35f18dea3046c7c42c12") version("1.8.10", sha256="0ac08900e5dc3ab5b65976991bf197623a7cc33ec3b32fe29360fb55d0c16b60") - 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") # graphviz appears to be a run-time optional dependency variant("graphviz", default=False, description="Build with dot command support from Graphviz.") @@ -135,6 +139,10 @@ def determine_variants(cls, exes, version_str): when="@1.10:1.11.0", ) + # Doxygen fails to compile if newer version of LLVM are used + # https://github.com/doxygen/doxygen/issues/10928 + conflicts("%llvm@19:", when="@:1.13.2") + # Some GCC 7.x get stuck in an infinite loop conflicts("%gcc@7.0:7.9", when="@1.9:") @@ -158,4 +166,5 @@ def cmake_args(self): return [ self.define("use_sys_spdlog", self.spec.satisfies("@1.9.8:")), self.define("use_sys_sqlite3", self.spec.satisfies("@1.10:")), + self.define("use_sys_fmt", self.spec.satisfies("@1.14:")), ] diff --git a/repos/spack_repo/builtin/packages/dplasma/package.py b/repos/spack_repo/builtin/packages/dplasma/package.py new file mode 100644 index 00000000000..6a0bd4afe57 --- /dev/null +++ b/repos/spack_repo/builtin/packages/dplasma/package.py @@ -0,0 +1,58 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +# + +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage + +from spack.package import * + + +class Dplasma(CMakePackage, CudaPackage): + """DPLASMA is a highly optimized, accelerator-aware, implementation of a + dense linear algebra package for distributed heterogeneous systems. It is + designed to deliver sustained performance for distributed systems where each + node featuring multiple sockets of multicore processors, and if available, + accelerators, using the PaRSEC runtime as a backend.""" + + homepage = "https://github.com/ICLDisco/dplasma" + git = "https://github.com/ICLDisco/dplasma.git" + maintainers("G-Ragghianti", "abouteiller", "bosilca", "herault") + + license("BSD-3-Clause-Open-MPI") + + version("develop", branch="master") + + variant( + "build_type", + default="RelWithDebInfo", + description="CMake build type", + values=("Debug", "Release", "RelWithDebInfo"), + ) + variant("shared", default=True, description="Build a shared library") + variant("cuda", default=True, description="Build with CUDA") + variant("internal-parsec", default="False", description="Build with internal PaRSEC") + + depends_on("c", type="build") + depends_on("cmake@3.18:", type="build") + depends_on("python", type="build") + depends_on("flex", type="build") + depends_on("bison", type="build") + depends_on("hwloc") + depends_on("mpi") + depends_on("blas") + depends_on("lapack") + depends_on("parsec+cuda", when="~internal-parsec+cuda") + depends_on("parsec~cuda", when="~internal-parsec~cuda") + + def cmake_args(self): + args = [ + self.define_from_variant("CMAKE_BUILD_TYPE", "build_type"), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define_from_variant("DPLASMA_GPU_WITH_CUDA", "cuda"), + self.define("DPLASMA_GPU_WITH_HIP", "Off"), + ] + if "~internal-parsec" in self.spec: + args.append(self.define("PaRSEC_ROOT", self.spec["parsec"].prefix)) + return args diff --git a/repos/spack_repo/builtin/packages/draco/package.py b/repos/spack_repo/builtin/packages/draco/package.py index 02fa03a52e2..c96e6815a16 100644 --- a/repos/spack_repo/builtin/packages/draco/package.py +++ b/repos/spack_repo/builtin/packages/draco/package.py @@ -23,6 +23,8 @@ class Draco(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause-Open-MPI") version("develop", branch="develop") + version("7.22.0", sha256="c3cb0c122918b4f9a391351318a8384b8e5100621fcfa62e39112b9a8727bddb") + version("7.21.0", sha256="f6856eca57c9286662104c82cb124edadaf93830aa672d2995caef4f7cd9b486") version("7.20.0", sha256="5b695f686c914dfac7cc144ffba37f24b1fb1e53058fbcb6df0ea94fe9971ea6") version("7.19.0", sha256="04b33cfea244052efcdd40d2b9dd79348749d34647aaf4dfcb15cdfdbe989783") version("7.18.0", sha256="b210e202a06ffdaf149193b5cba164411fd508e20e573e1dfc46d1f56e3fffaa") @@ -146,17 +148,25 @@ def cmake_args(self): # FMA option if "+fast_fma" in self.spec: - options.extend( - [ - "-DDRACO_ROUNDOFF_MODE={0}".format( - "FAST" if "build_type=Release" in spec else "ACCURATE" - ) - ] - ) + # Newer draco versions only offer "FAST" and "NOFMA" (effectively an ON/OFF switch). + if spec.satisfies("@7.21.0:"): + options.extend(["-DDRACO_ROUNDOFF_MODE=FAST"]) + # Older draco versions offered several software and hardware FMA options + else: + options.extend( + [ + "-DDRACO_ROUNDOFF_MODE={0}".format( + "FAST" if "build_type=Release" in spec else "ACCURATE" + ) + ] + ) # OneAPI-specific logic if spec.satisfies("%oneapi"): # Known issues with oneapi+IPO for packages that depend on draco. options.extend(["-DUSE_IPO=OFF"]) + # "rocm" mixed-builds barf when IPO/LTO is on. + if spec.satisfies("@7.20.0: +rocm"): + options.extend(["-DUSE_IPO=OFF"]) return options def check(self): diff --git a/repos/spack_repo/builtin/packages/dramsim3/package.py b/repos/spack_repo/builtin/packages/dramsim3/package.py index dd62a43b605..4eae3061531 100644 --- a/repos/spack_repo/builtin/packages/dramsim3/package.py +++ b/repos/spack_repo/builtin/packages/dramsim3/package.py @@ -31,7 +31,7 @@ class Dramsim3(Package): depends_on("gmake", type="build") def install(self, spec, prefix): - cmake = which("cmake") + cmake = which("cmake", required=True) cmake(".") make() diff --git a/repos/spack_repo/builtin/packages/dray/package.py b/repos/spack_repo/builtin/packages/dray/package.py deleted file mode 100644 index e66eab7b9dc..00000000000 --- a/repos/spack_repo/builtin/packages/dray/package.py +++ /dev/null @@ -1,343 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os -import socket - -from spack_repo.builtin.build_systems.cmake import CMakeBuilder -from spack_repo.builtin.build_systems.cuda import CudaPackage -from spack_repo.builtin.build_systems.generic import Package - -from spack.package import * - - -def propagate_cuda_arch(package, spec=None): - if not spec: - spec = "" - for cuda_arch in CudaPackage.cuda_arch_values: - depends_on( - "{0} +cuda cuda_arch={1}".format(package, cuda_arch), - when="{0} +cuda cuda_arch={1}".format(spec, cuda_arch), - ) - - -def cmake_cache_entry(name, value, vtype=None): - """ - Helper that creates CMake cache entry strings used in - 'host-config' files. - """ - if vtype is None: - if value == "ON" or value == "OFF": - vtype = "BOOL" - else: - vtype = "PATH" - return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype) - - -class Dray(Package, CudaPackage): - """High-Order Mesh Ray Tracer.""" - - homepage = "https://github.com/LLNL/devil_ray" - git = "https://github.com/LLNL/devil_ray.git" - url = "https://github.com/LLNL/devil_ray/releases/download/v0.1.2/dray-v0.1.2.tar.gz" - - maintainers("cyrush") - - license("BSD-3-Clause") - - with default_args(deprecated=True): # part of ascent - version("develop", branch="develop", submodules="True") - version("0.1.8", sha256="ae78ca6a5a31f06f6400a4a1ff6fc1d75347c8b41027a80662179f5b877eee30") - version("0.1.7", sha256="11ea794c1a24d7ed0d76bad7209d62bafc033ec40a2ea3a00e68fe598c6aa46d") - version("0.1.6", sha256="43f39039599e3493cbbaeaf5621b611bef301ff504bed6e32c98f30bb2179e92") - version("0.1.5", sha256="aaf0975561a8e7910b9353e2dc30bd78abf9f01c306ec042422b7da223d3a8b8") - version("0.1.4", sha256="e763a3aa537b23486a4788f9d68db0a3eb545f6a2e617cd7c8a876682ca2d0a0") - version("0.1.3", sha256="b2f624a072463189997343b1ed911cc34c9bb1b6c7f0c3e48efeb40c05dd0d92") - version("0.1.2", sha256="46937f20124b28dc78a634e8e063a3e7a3bbfd9f424ce2680b08417010c376da") - version("0.1.1", sha256="e5daa49ee3367c087f5028dc5a08655298beb318014c6f3f65ef4a08fcbe346c") - version("0.1.0", sha256="8b341138e1069361351e0a94478608c5af479cca76e2f97d556229aed45c0169") - - variant("openmp", default=True, description="Build OpenMP backend") - variant("shared", default=True, description="Build as shared libs") - variant("test", default=True, description="Build unit tests") - variant("utils", default=True, description="Build utilities") - variant("logging", default=False, description="Enable logging") - variant("stats", default=False, description="Enable stats") - variant("mpi", default=True, description="Enable MPI compiler") - # set to false for systems that implicitly link mpi - variant("blt_find_mpi", default=True, description="Use BLT CMake Find MPI logic") - - depends_on("c", type="build") - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated - - depends_on("mpi", when="+mpi") - - depends_on("cmake@3.9:", type="build") - depends_on("cmake@3.14:", when="+cuda", type="build") - - depends_on("conduit~shared", when="~shared") - depends_on("conduit+shared", when="+shared") - - depends_on("apcomp~mpi", when="~mpi") - depends_on("apcomp+mpi", when="+mpi") - depends_on("apcomp~openmp", when="~openmp") - depends_on("apcomp+openmp", when="+openmp") - depends_on("apcomp~shared", when="~shared") - depends_on("apcomp+shared", when="+shared") - - depends_on("raja@0.14.0:0.14", when="@0.1.8:") - depends_on("raja@:0.14", when="@0.1.7:") - depends_on("raja@:0.13", when="@:0.1.6") - depends_on("raja@0.12.0:") - depends_on("raja~cuda", when="~cuda") - depends_on("raja+cuda", when="+cuda") - propagate_cuda_arch("raja") - depends_on("raja~shared", when="~shared") - depends_on("raja+shared", when="+shared") - depends_on("raja~openmp", when="~openmp") - depends_on("raja+openmp", when="+openmp") - - depends_on("umpire@:4.9", when="@:0.1.6") - # Only use umpire cuda if not shared. - depends_on("umpire+cuda", when="+cuda") - depends_on("umpire~cuda", when="~cuda") - depends_on("umpire+cuda~shared", when="+cuda+shared") - depends_on("umpire~cuda+shared", when="~cuda+shared") - propagate_cuda_arch("umpire") - depends_on("umpire~shared", when="~shared") - - depends_on("mfem+conduit~threadsafe") - depends_on("mfem+shared", when="+shared") - depends_on("mfem~shared", when="~shared") - depends_on("gmake", type="build") - - def setup_build_environment(self, env: EnvironmentModifications) -> None: - env.set("CTEST_OUTPUT_ON_FAILURE", "1") - - def install(self, spec, prefix): - """ - Build and install Devil Ray. - """ - with working_dir("spack-build", create=True): - host_cfg_fname = self.create_host_config(spec, prefix) - print("Configuring Devil Ray...") - cmake( - *CMakeBuilder.std_args(self, generator="Unix Makefiles"), - "-C", - host_cfg_fname, - "../src", - ) - print("Building Devil Ray...") - make() - # run unit tests if requested - if "+test" in spec and self.run_tests: - print("Running Devil Ray Unit Tests...") - make("test") - print("Installing Devil Ray...") - make("install") - # install copy of host config for provenance - install(host_cfg_fname, prefix) - - def create_host_config(self, spec, prefix): - """ - This method creates a 'host-config' file that specifies - all of the options used to configure and build ascent. - - For more details about 'host-config' files see: - https://ascent.readthedocs.io/en/latest/BuildingAscent.html - """ - - ####################### - # Compiler Info - ####################### - c_compiler = env["SPACK_CC"] - cpp_compiler = env["SPACK_CXX"] - - ####################################################################### - # By directly fetching the names of the actual compilers we appear - # to doing something evil here, but this is necessary to create a - # 'host config' file that works outside of the spack install env. - ####################################################################### - - sys_type = spec.architecture - # if on llnl systems, we can use the SYS_TYPE - if "SYS_TYPE" in env: - sys_type = env["SYS_TYPE"] - - ############################################## - # Find and record what CMake is used - ############################################## - - if spec.satisfies("+cmake"): - cmake_exe = spec["cmake"].command.path - else: - cmake_exe = which("cmake") - if cmake_exe is None: - msg = "failed to find CMake (and cmake variant is off)" - raise RuntimeError(msg) - cmake_exe = cmake_exe.path - - host_cfg_fname = "%s-%s-%s-devil_ray.cmake" % ( - socket.gethostname(), - sys_type, - spec.compiler, - ) - - cfg = open(host_cfg_fname, "w") - cfg.write("##################################\n") - cfg.write("# spack generated host-config\n") - cfg.write("##################################\n") - cfg.write("# {0}-{1}\n".format(sys_type, spec.compiler)) - cfg.write("##################################\n\n") - - # Include path to cmake for reference - cfg.write("# cmake from spack \n") - cfg.write("# cmake executable path: %s\n\n" % cmake_exe) - - ####################### - # Compiler Settings - ####################### - cfg.write("#######\n") - cfg.write("# using %s compiler spec\n" % spec.compiler) - cfg.write("#######\n\n") - cfg.write("# c compiler used by spack\n") - cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler)) - cfg.write("# cpp compiler used by spack\n") - cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler)) - - if spec.satisfies("+mpi"): - mpicc_path = spec["mpi"].mpicc - mpicxx_path = spec["mpi"].mpicxx - # if we are using compiler wrappers on cray systems - # use those for mpi wrappers, b/c spec['mpi'].mpicxx - # etc make return the spack compiler wrappers - # which can trip up mpi detection in CMake 3.14 - if spec["mpi"].mpicc == spack_cc: - mpicc_path = c_compiler - mpicxx_path = cpp_compiler - cfg.write(cmake_cache_entry("ENABLE_MPI", "ON")) - cfg.write(cmake_cache_entry("MPI_C_COMPILER", mpicc_path)) - cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", mpicxx_path)) - if spec.satisfies("+blt_find_mpi"): - cfg.write(cmake_cache_entry("ENABLE_FIND_MPI", "ON")) - else: - cfg.write(cmake_cache_entry("ENABLE_FIND_MPI", "OFF")) - mpiexe_bin = join_path(spec["mpi"].prefix.bin, "mpiexec") - if os.path.isfile(mpiexe_bin): - # starting with cmake 3.10, FindMPI expects MPIEXEC_EXECUTABLE - # vs the older versions which expect MPIEXEC - if self.spec["cmake"].satisfies("@3.10:"): - cfg.write(cmake_cache_entry("MPIEXEC_EXECUTABLE", mpiexe_bin)) - else: - cfg.write(cmake_cache_entry("MPIEXEC", mpiexe_bin)) - else: - cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF")) - - # use global spack compiler flags - cppflags = " ".join(spec.compiler_flags["cppflags"]) - if cppflags: - # avoid always ending up with ' ' with no flags defined - cppflags += " " - cflags = cppflags + " ".join(spec.compiler_flags["cflags"]) - if cflags: - cfg.write(cmake_cache_entry("CMAKE_C_FLAGS", cflags)) - cxxflags = cppflags + " ".join(spec.compiler_flags["cxxflags"]) - if cxxflags: - cfg.write(cmake_cache_entry("CMAKE_CXX_FLAGS", cxxflags)) - fflags = " ".join(spec.compiler_flags["fflags"]) - if self.spec.satisfies("%cce"): - fflags += " -ef" - if fflags: - cfg.write(cmake_cache_entry("CMAKE_Fortran_FLAGS", fflags)) - - ####################### - # Backends - ####################### - - cfg.write("# CUDA Support\n") - - if spec.satisfies("+cuda"): - cfg.write(cmake_cache_entry("ENABLE_CUDA", "ON")) - if "cuda_arch" in spec.variants: - cuda_value = spec.variants["cuda_arch"].value - cuda_arch = cuda_value[0] - cfg.write(cmake_cache_entry("CUDA_ARCH", "sm_{0}".format(cuda_arch))) - else: - cfg.write(cmake_cache_entry("ENABLE_CUDA", "OFF")) - - if spec.satisfies("+openmp"): - cfg.write(cmake_cache_entry("ENABLE_OPENMP", "ON")) - else: - cfg.write(cmake_cache_entry("ENABLE_OPENMP", "OFF")) - - # shared vs static libs - if spec.satisfies("+shared"): - cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "ON")) - else: - cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "OFF")) - - ####################### - # Unit Tests - ####################### - if spec.satisfies("+test"): - cfg.write(cmake_cache_entry("DRAY_ENABLE_TESTS", "ON")) - # we need this to control BLT tests - cfg.write(cmake_cache_entry("ENABLE_TESTS", "ON")) - else: - cfg.write(cmake_cache_entry("DRAY_ENABLE_TESTS", "OFF")) - # we need this to control BLT tests - cfg.write(cmake_cache_entry("ENABLE_TESTS", "OFF")) - - ####################### - # Utilities - ####################### - if spec.satisfies("+utils"): - cfg.write(cmake_cache_entry("DRAY_ENABLE_UTILS", "ON")) - else: - cfg.write(cmake_cache_entry("DRAY_ENABLE_UTILS", "OFF")) - - ####################### - # Logging - ####################### - if spec.satisfies("+logging"): - cfg.write(cmake_cache_entry("ENABLE_LOGGING", "ON")) - else: - cfg.write(cmake_cache_entry("ENABLE_LOGGING", "OFF")) - - ####################### - # Status - ####################### - if spec.satisfies("+stats"): - cfg.write(cmake_cache_entry("ENABLE_STATS", "ON")) - else: - cfg.write(cmake_cache_entry("ENABLE_STATS", "OFF")) - - ####################################################################### - # Core Dependencies - ####################################################################### - - cfg.write("# conduit from spack \n") - cfg.write(cmake_cache_entry("CONDUIT_DIR", spec["conduit"].prefix)) - - cfg.write("# mfem from spack \n") - cfg.write(cmake_cache_entry("MFEM_DIR", spec["mfem"].prefix)) - - cfg.write("# raja from spack \n") - cfg.write(cmake_cache_entry("RAJA_DIR", spec["raja"].prefix)) - - cfg.write("# umpire from spack \n") - cfg.write(cmake_cache_entry("UMPIRE_DIR", spec["umpire"].prefix)) - - cfg.write("# apcompositor from spack \n") - cfg.write(cmake_cache_entry("APCOMP_DIR", spec["apcomp"].prefix)) - - cfg.write("##################################\n") - cfg.write("# end spack generated host-config\n") - cfg.write("##################################\n") - cfg.close() - - host_cfg_fname = os.path.abspath(host_cfg_fname) - tty.info("spack generated conduit host-config file: " + host_cfg_fname) - return host_cfg_fname diff --git a/repos/spack_repo/builtin/packages/drill/package.py b/repos/spack_repo/builtin/packages/drill/package.py index d0194019dc0..bf885aaf365 100644 --- a/repos/spack_repo/builtin/packages/drill/package.py +++ b/repos/spack_repo/builtin/packages/drill/package.py @@ -22,27 +22,9 @@ class Drill(Package): version("1.21.2", sha256="77e2e7438f1b4605409828eaa86690f1e84b038465778a04585bd8fb21d68e3b") version("1.20.3", sha256="1520cd2524cf8e0ce45fcf02e8e5e3e044465c6dacad853f9fadf9c918863cad") - with default_args(deprecated=True): - # Log4Shell vulnerability (CVE-2021-44228) affects all versions before 1.20.0 - version( - "1.17.0", sha256="a3d2d544bcc32b915fb53fced0f982670bd6fe2abd764423e566a5f6b54debf1" - ) - version( - "1.16.0", sha256="fd195d2b38f393459b37d8f13ac1f36cdbe38495eabb08252da38e3544e87839" - ) - version( - "1.15.0", sha256="188c1d0df28e50f0265f4bc3c5871b4e7abc9450a4e5a7dbe7f0b23146bec76b" - ) - version( - "1.14.0", sha256="1145bdbb723119f271d32daf4cdd77cdeebe88ddcb7d04facd585b715bb5723b" - ) - version( - "1.13.0", sha256="8da6d56f75ae01e0bee6176095d32760e7183dd0200f10ee68b8cd3f882def6a" - ) # pom.xml, requireJavaVersion - depends_on("java@7:", type="run") - depends_on("java@8:", type="run", when="@1.14:") + depends_on("java@8:", type="run") def install(self, spec, prefix): install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/drishti/package.py b/repos/spack_repo/builtin/packages/drishti/package.py index 5d9f4c4cc0a..be24ed95f1c 100644 --- a/repos/spack_repo/builtin/packages/drishti/package.py +++ b/repos/spack_repo/builtin/packages/drishti/package.py @@ -37,5 +37,5 @@ class Drishti(PythonPackage): def test_help(self): """Run drishti help.""" - drishti = which(self.prefix.bin.drishti) + drishti = which(self.prefix.bin.drishti, required=True) drishti("-h") diff --git a/repos/spack_repo/builtin/packages/dropwatch/package.py b/repos/spack_repo/builtin/packages/dropwatch/package.py index 729eb3b4f49..3638d98cb82 100644 --- a/repos/spack_repo/builtin/packages/dropwatch/package.py +++ b/repos/spack_repo/builtin/packages/dropwatch/package.py @@ -33,7 +33,7 @@ class Dropwatch(AutotoolsPackage): depends_on("readline") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") def check(self): diff --git a/repos/spack_repo/builtin/packages/dsfmt/package.py b/repos/spack_repo/builtin/packages/dsfmt/package.py index c51d260d1cb..8b9b9f4ff49 100644 --- a/repos/spack_repo/builtin/packages/dsfmt/package.py +++ b/repos/spack_repo/builtin/packages/dsfmt/package.py @@ -10,7 +10,7 @@ class Dsfmt(MakefilePackage): """Double precision SIMD-oriented Fast Mersenne Twister""" - homepage = "http://www.math.sci.hiroshima-u.ac.jp/m-mat/MT/SFMT/" + homepage = "https://www.math.sci.hiroshima-u.ac.jp/m-mat/MT/SFMT/" url = "https://github.com/MersenneTwister-Lab/dSFMT/archive/v2.2.4.tar.gz" maintainers("haampie") diff --git a/repos/spack_repo/builtin/packages/dsqss/package.py b/repos/spack_repo/builtin/packages/dsqss/package.py index bf38ec12bdd..4ba237541fa 100644 --- a/repos/spack_repo/builtin/packages/dsqss/package.py +++ b/repos/spack_repo/builtin/packages/dsqss/package.py @@ -75,10 +75,10 @@ def test_dla(self): exe_name = "dla" opts.append("param.in") with test_part(self, "test_dla_run", purpose="run dla"): - exe = which(exe_name) + exe = which(exe_name, required=True) exe(*opts) with test_part(self, "test_dla_results", purpose="confirming dla results"): - cat = which("cat") + cat = which("cat", required=True) out = cat("sample.log", output=str.split, error=str.split) assert "R ene = -3.74300000e-01 2.96344394e-03" in out diff --git a/repos/spack_repo/builtin/packages/dssp/package.py b/repos/spack_repo/builtin/packages/dssp/package.py index 3d70de268c8..b75560acf78 100644 --- a/repos/spack_repo/builtin/packages/dssp/package.py +++ b/repos/spack_repo/builtin/packages/dssp/package.py @@ -2,35 +2,37 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage -from spack_repo.builtin.packages.boost.package import Boost +from spack_repo.builtin.build_systems.autotools import AutotoolsBuilder, AutotoolsPackage +from spack_repo.builtin.build_systems.cmake import CMakeBuilder, CMakePackage from spack.package import * -class Dssp(AutotoolsPackage): +class Dssp(CMakePackage, AutotoolsPackage): """'mkdssp' utility. (dictionary of protein secondary structure)""" - homepage = "https://github.com/cmbi/dssp" - url = "https://github.com/cmbi/dssp/archive/3.1.4.tar.gz" + homepage = "https://pdb-redo.eu/dssp" + url = "https://github.com/PDB-REDO/dssp/archive/refs/tags/v4.5.8.tar.gz" - license("GPL-3.0-or-later") + license("GPL-3.0-or-later", when="@2.3.0:3.1.4") + license("BSD-2-Clause", when="@4:") - version("3.1.4", sha256="496282b4b5defc55d111190ab9f1b615a9574a2f090e7cf5444521c747b272d4") - version("2.3.0", sha256="4c95976d86dc64949cb0807fbd58c7bee5393df0001999405863dc90f05846c6") - - depends_on("cxx", type="build") # generated - - depends_on("autoconf", type="build") - depends_on("automake", type="build") - depends_on("libtool", type="build") - depends_on("m4", type="build") - depends_on("boost@1.48:") + build_system( + conditional("autotools", when="@:3.1.4"), conditional("cmake", when="@4:"), default="cmake" + ) - # 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) + version("4.6.1", sha256="5ddb8274f03ac0338adffcd661989f515fffb95d40afca404cf2677024256ae3") + version("4.5.8", sha256="634bf8d8dd96954bd680da90f3dcb66b87189c13b12b52b61de8af9d597b74ac") + version( + "3.1.4", + sha256="496282b4b5defc55d111190ab9f1b615a9574a2f090e7cf5444521c747b272d4", + url="https://github.com/cmbi/dssp/archive/refs/tags/2.3.0.tar.gz", + ) + version( + "2.3.0", + sha256="4c95976d86dc64949cb0807fbd58c7bee5393df0001999405863dc90f05846c6", + url="https://github.com/cmbi/dssp/archive/refs/tags/3.1.4.tar.gz", + ) # pdb data download. # 1ALK.pdb - PDB (protein data bank) : https://www.rcsb.org/ @@ -42,14 +44,57 @@ class Dssp(AutotoolsPackage): placement="pdb", ) - def configure_args(self): - args = ["--with-boost=%s" % self.spec["boost"].prefix] - return args + depends_on("c", type="build") + depends_on("cxx", type="build") # generated - @run_after("configure") - def edit(self): - makefile = FileFilter(join_path(self.stage.source_path, "Makefile")) - makefile.filter(".*-Werror .*", " -Wno-error \\") + with when("build_system=autotools"): + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + depends_on("m4", type="build") + depends_on( + "boost@1.48:1.84+date_time+system+filesystem+iostreams+program_options+thread+test\ + cxxstd=11", + when="@:3.1.4", + ) + + # header only library (at this time) + depends_on("libmcfp@1.4.2", type="build", when="@4.5.8:") + depends_on("libcifpp@9.0.6", when="@4.5.8") + depends_on("libcifpp@10.0.3", when="@4.6.1") + depends_on("fmt", when="@4.5.8 %gcc@:12") + depends_on("sqlite@3:", when="@4.6:") + + extends("python", when="+python") + depends_on("boost@1.86:+python", when="+python") + with when("@4.6.1:"): + conflicts("%gcc@:12", msg="Requires gcc@13:") + conflicts("%clang@:13", msg="Requires llvm@14:") + + variant("python", default=False, description="build python module", when="@4:") + + def patch(self): + # unavailable until gcc13 + if self.spec.satisfies("@4.5.8 %gcc@:12"): + # do evil things + filter_file( + "#include ", + "#include ", + join_path("libdssp", "src", "dssp-io.cpp"), + string=True, + ) + filter_file( + "std::format", + "fmt::format", + join_path("libdssp", "src", "dssp-io.cpp"), + string=True, + ) + filter_file(r"(find_package\(Threads\))", "\\1\nfind_package(fmt)", "CMakeLists.txt") + filter_file( + r"(target_link_libraries\(mkdssp .*dssp::dssp)\)", + r"\1 fmt::fmt)", + "CMakeLists.txt", + ) @run_after("install") def cache_test_sources(self): @@ -59,6 +104,27 @@ def cache_test_sources(self): def test_mkdssp(self): """calculate structure for example""" pdb_path = self.test_suite.current_test_cache_dir.pdb - mkdssp = which(self.prefix.bin.mkdssp) + mkdssp = which(self.prefix.bin.mkdssp, required=True) with working_dir(pdb_path): mkdssp("1ALK.pdb", "1alk.dssp") + + +class CMakeBuilder(CMakeBuilder): + def cmake_args(self): + args = [ + self.define("INSTALL_LIBRARY", True), + self.define_from_variant("BUILD_PYTHON_MODULE", "python"), + ] + + return args + + +class AutotoolsBuilder(AutotoolsBuilder): + def configure_args(self): + args = ["--with-boost=%s" % self.spec["boost"].prefix] + return args + + @run_after("configure") + def edit(self): + makefile = FileFilter(join_path(self.stage.source_path, "Makefile")) + makefile.filter(".*-Werror .*", " -Wno-error \\") diff --git a/repos/spack_repo/builtin/packages/dtc/package.py b/repos/spack_repo/builtin/packages/dtc/package.py index 7a6c8b561af..457845d2421 100644 --- a/repos/spack_repo/builtin/packages/dtc/package.py +++ b/repos/spack_repo/builtin/packages/dtc/package.py @@ -28,6 +28,7 @@ class Dtc(MakefilePackage): depends_on("pkgconfig", type="build") depends_on("python", type="build") depends_on("libyaml", type=("build", "link")) + depends_on("diffutils", type="build") def edit(self, spec, prefix): makefile = FileFilter("Makefile") diff --git a/repos/spack_repo/builtin/packages/duckdb/package.py b/repos/spack_repo/builtin/packages/duckdb/package.py index 5c651866ec4..b5fe098a7e1 100644 --- a/repos/spack_repo/builtin/packages/duckdb/package.py +++ b/repos/spack_repo/builtin/packages/duckdb/package.py @@ -3,12 +3,12 @@ # 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.package import * -class Duckdb(MakefilePackage): +class Duckdb(CMakePackage): """DuckDB is an in-process SQL OLAP Database Management System.""" homepage = "https://duckdb.org" @@ -19,6 +19,15 @@ class Duckdb(MakefilePackage): maintainers("glentner", "teaguesterling") version("master", branch="master") + version("1.5.2", sha256="6d8612fc87115cf4d3512a934ada5d1669db29378b4cc8e226fdfa8f5c537385") + version("1.5.1", sha256="2de9901f05d445e6a24b79127fd70f2e4fbd552b44dc1dc668aca07fbf97f716") + version("1.5.0", sha256="fb039699c5a91dec9876540aed7904b6b4e713b800014840dbf641168147a556") + version("1.4.4", sha256="43645e15419c6539bae6915ba397de6569e4a7ca0d502be95d653a78fdb0bece") + version("1.4.3", sha256="b6a2afd09d9cf07e50d5cd07077df7f7697b61cca2eb00754f5adf89a1ae6c64") + version("1.4.2", sha256="43193b3661e0f6dce8a1ad9144bbd21c42601fe0e84efee7b3577a4bb160965c") + version("1.4.1", sha256="91e55efe2c1627c4432d620ee9d2ffcd72f954699e76d7dab523348a7dfbb00a") + version("1.4.0", sha256="c06d08577555b3f80d19a6e09eec6c2e200b8d0165db4cd775aac97473e53dfc") + version("1.3.2", sha256="a10b388e516f6d9cc5d571fa55f14c936b73a2ca17400a76aae6c3f1cc2e20cb") version("1.3.0", sha256="9c8c5ac0d26f2a97d81867485cf501fd0491ad6ecaf593118cc6122f2fc8924c") version("1.2.2", sha256="99387810537dd3f90454e5620ab624405d7f2e0d997aa1e3999316b7969592ed") version("1.2.1", sha256="481a05d59cb8eaf4d78e5495ab0c99ed53e3b41e84aeaf24eef4144f2c60d1cc") @@ -27,176 +36,63 @@ class Duckdb(MakefilePackage): version("1.1.2", sha256="a3319a64c390ed0454c869b2e4fc0af2413cd49f55cd0f1400aaed9069cdbc4c") version("1.1.1", sha256="a764cef80287ccfd8555884d8facbe962154e7c747043c0842cd07873b4d6752") version("1.1.0", sha256="d9be2c6d3a5ebe2b3d33044fb2cb535bb0bd972a27ae38c4de5e1b4caa4bf68d") - # CVE-2024-41672 - version( - "1.0.0", - sha256="04e472e646f5cadd0a3f877a143610674b0d2bcf9f4102203ac3c3d02f1c5f26", - deprecated=True, - ) - version( - "0.10.3", - sha256="7855587b3491dd488993287caee28720bee43ae28e92e8f41ea4631e9afcbf88", - deprecated=True, - ) - version( - "0.10.2", - sha256="662a0ba5c35d678ab6870db8f65ffa1c72e6096ad525a35b41b275139684cea6", - deprecated=True, - ) - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - depends_on("python@3.7:") - with default_args(type="build"): - depends_on("cmake") - depends_on("gmake") - depends_on("ninja", when="+ninjabuild") - depends_on("py-pip", when="+python") - depends_on("py-setuptools-scm", when="+python") - depends_on("pkgconfig", when="+static_openssl") - depends_on("zlib-api", when="+static_openssl") - depends_on("openssl", when="+httpfs") - depends_on("icu4c", when="~icu") # Build Options - variant("cli", default=True, description="Compile with command line client") variant("icu", default=False, description="Compile with bundled ICU library") - variant("ninjabuild", default=True, description="Use GEN=ninja to build") - variant("static_openssl", default=False, description="Build with static openSSL") - variant( - "openssl", - default=False, - description="Compile with bundled OpenSSL library", - when="@:0.9.2", - ) - variant("extension_autoload", default=False, description="Enable extension auto-loading") variant("extension_autoinstall", default=False, description="Enable extension auto-installing") variant("extension_repo", default=True, description="Copy extensions to prefix") # Extensions variant("autocomplete", default=True, description="Include autocomplete for CLI in build") - variant("excel", default=True, description="Include Excel formatting extension in build") - variant("httpfs", default=True, description="Include HTTPFS (& S3) support in build") - variant("inet", default=True, description="Include INET (ip address) support in build") variant("json", default=True, description="Include JSON support in build") variant("parquet", default=True, description="Include parquent support in build") variant("tpce", default=False, description="Include TPCE in build") variant("tpch", default=False, description="Include TPCH in build") - # FTS was moved to an out-of-tree extension after v1.1.3 + # FTS and HTTPFS were moved to an out-of-tree extension in v1.2.0 variant( "fts", default=True, description="Include FTS (full text search) support in build", when="@:1.1", ) + variant( + "httpfs", default=True, description="Include HTTPFS (& S3) support in build", when="@:1.1" + ) # APIs variant("python", default=True, description="Build with Python driver") - extends("python", when="+python") - # Observed failure in an AVX2-specific codeblock on x86_64_v4 target - conflicts( - "@1.0.0", - when="target=x86_64_v3:", - msg="See: https://github.com/duckdb/duckdb/issues/12362", - ) + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("python@3.7:") + depends_on("openssl", when="+httpfs") + depends_on("icu4c", when="~icu") - @property - def duckdb_extension_prefix(self): - return self.prefix.lib.duckdb + with when("+python"): + extends("python") + depends_on("py-pip", type="build") + depends_on("py-setuptools-scm", type="build") def setup_build_environment(self, env: EnvironmentModifications) -> None: - cmake_args = [] # Future use - if self.spec.satisfies("+ninjabuild"): - env.set("GEN", "ninja") if self.spec.satisfies("+python"): env.set("SETUPTOOLS_SCM_PRETEND_VERSION", f"{self.spec.version}") - if self.spec.satisfies("+static_openssl"): - env.set("STATIC_OPENSSL", "1") - variant_flags = [ - "autocomplete", - "cli", - "excel", - "fts", - "httpfs", - "icu", - "inet", - "json", - "openssl", # Deprecate after 0.9.2 retired - "parquet", - "python", - "tpce", - "tpch", + env.set("PIP_PREFIX", self.prefix) + + def cmake_args(self): + extensions = ("autocomplete", "icu", "json", "parquet", "tpch", "fts", "httpfs") + args = [ + self.define( + "BUILD_EXTENSIONS", [ext for ext in extensions if self.spec.satisfies(f"+{ext}")] + ), + self.define("OVERRIDE_GIT_DESCRIBE", f"v{self.spec.version}"), + self.define("LOCAL_EXTENSION_REPO", self.prefix.lib.duckdb.extensions), + self.define("ENABLE_EXTENSION_AUTOLOADING", "1"), # string, not boolean + self.define("ENABLE_EXTENSION_AUTOINSTALL", "1"), # string, not boolean ] - for flag in variant_flags: - make_flag = "BUILD_" + flag.upper() - if "+" + flag in self.spec: - env.set(make_flag, "1") - elif "~" + flag in self.spec: - env.set(make_flag, "0") - if self.spec.satisfies("@0.10.2:"): - env.set("OVERRIDE_GIT_DESCRIBE", f"v{self.spec.version}") - if self.spec.satisfies("+extension_repo"): - env.set("LOCAL_EXTENSION_REPO", self.prefix.lib.duckdb.extensions) - if self.spec.satisfies("+extension_autoload"): - env.set("ENABLE_EXTENSION_AUTOLOADING", "1") - if self.spec.satisfies("+extension_autoinstall"): - env.set("ENABLE_EXTENSION_AUTOINSTALL", "1") - - if cmake_args: - env.set("EXTRA_CMAKE_VARIABLES", " ".join(cmake_args)) - - def url_for_version(self, version): - return "https://github.com/duckdb/duckdb/archive/refs/tags/v{0}.tar.gz".format(version) - - def patch(self): - # DuckDB pulls its version from a git tag, which it can't find in the tarball - # and thus defaults to something arbitrary and breaks extensions. - # We use the Spack version to inject it in the right place during the build - # Patching is not needed for versions from 0.10.2 onward as we can - # set OVERRIDE_GIT_DESCRIBE to force the version when not building from a repo. - - version = self.spec.version - if self.spec.satisfies("@:0.9.2"): - # Prior to version 0.10.0, this was sufficient - filter_file( - r'(message\(STATUS "git hash \$\{GIT_COMMIT_HASH\}, ' - r'version \$\{DUCKDB_VERSION\}"\))', - 'set(DUCKDB_VERSION "v{0}")\n\\1'.format(version), - "CMakeLists.txt", - ) - elif not self.spec.satisfies("@0.10.0"): - # Override the fallback values that are set when GIT_COMMIT_HASH doesn't work - for i, n in enumerate(["MAJOR", "MINOR", "PATCH"]): - filter_file( - r"set\(DUCKDB_{0}_VERSION \d+\)".format(n), - "set(DUCKDB_{0}_VERSION {1})".format(n, version[i]), - "CMakeLists.txt", - ) - # Need to manually set DUCKDB_NORMALIZED_VERSION for helper scripts - filter_file( - r'(message\(STATUS "git hash \$\{GIT_COMMIT_HASH\},' - r" version \$\{DUCKDB_VERSION\}," - r' extension folder \$\{DUCKDB_NORMALIZED_VERSION\}"\))', - 'set(DUCKDB_VERSION "v${DUCKDB_MAJOR_VERSION}' - '.${DUCKDB_MINOR_VERSION}.${DUCKDB_PATCH_VERSION}")' - '\nset(DUCKDB_NORMALIZED_VERSION "${DUCKDB_VERSION}")' - "\n\\1", - "CMakeLists.txt", - ) - - if self.spec.satisfies("+extension_repo"): - mkdirp(self.prefix.lib.duckdb.extensions) - - def install(self, spec, prefix): - mkdir(prefix.bin) - mkdirp(prefix.lib) - mkdir(prefix.include) - build_dir = join_path("build", "release") - install(join_path(build_dir, "duckdb"), prefix.bin) - install(join_path(build_dir, "src", "libduckdb.so"), prefix.lib) - install(join_path(build_dir, "src", "libduckdb_static.a"), prefix.lib) - install_tree(join_path("src", "include"), prefix.include) + if self.spec.satisfies("+python"): + args.append(self.define("BUILD_PYTHON", "1")) + if self.spec.satisfies("+tpce"): + args.append(self.define("BUILD_TPCE", "1")) + return args diff --git a/repos/spack_repo/builtin/packages/dust/package.py b/repos/spack_repo/builtin/packages/dust/package.py index 4af7d5ee260..c28dd859a07 100644 --- a/repos/spack_repo/builtin/packages/dust/package.py +++ b/repos/spack_repo/builtin/packages/dust/package.py @@ -13,10 +13,20 @@ class Dust(Package): homepage = "https://github.com/bootandy/dust" url = "https://github.com/bootandy/dust/archive/v0.7.5.tar.gz" - maintainers("fangohr") + maintainers("fangohr", "yig") license("Apache-2.0") + version("1.2.4", sha256="2f6768534bd01727234e67f1dd3754c9547aa18c715f6ee52094e881ebac50e3") + version("1.2.3", sha256="424b26adfbafeac31da269ecb3f189eca09803e60fad90b3ff692cf52e0aeeee") + version("1.2.2", sha256="e72f539ebe2f30bd85f83f8efd87c70c11e27126eeccd93560d94d2f01e153fe") + version("1.2.1", sha256="d8ac1a78287a9ea9e6a0e350886dbef8902f5f1dcba9bbc25afafe2ed2ca0a95") + version("1.2.0", sha256="e879e6bf662e07cff2962b68529dd78c3bafb67541aaa76e8c9d25ecb505b850") + version("1.1.2", sha256="31da99483ee6110d43ed5e7c56a59f40f33b389e45d09d91fca022b42d442040") + version("1.1.1", sha256="98cae3e4b32514e51fcc1ed07fdbe6929d4b80942925348cc6e57b308d9c4cb0") + version("1.1.0", sha256="2429b4ac76ad8520b99e7167dbb70c8e0088b5fad2c79f799e22b7d137d5fc33") + version("1.0.0", sha256="34b72116ab6db9bdb97bc1e49dadf392a1619838204b44b0a4695539d54ffbe8") + version("0.9.0", sha256="70efd66e662fcd93bbc6cf2f8c3104a1de7e52090f709e9040a34bdc7c72ea9c") version("0.8.6", sha256="feede818e814011207c5bfeaf06dd9fc95825c59ab70942aa9b9314791c5d6b6") version("0.7.5", sha256="f892aaf7a0a7852e12d01b2ced6c2484fb6dc5fe7562abdf0c44a2d08aa52618") @@ -25,7 +35,7 @@ class Dust(Package): sanity_check_is_file = [join_path("bin", "dust")] def install(self, spec, prefix): - cargo = which("cargo") + cargo = which("cargo", required=True) cargo("install", "--root", prefix, "--path", ".") @run_after("install") @@ -36,6 +46,6 @@ def check_install(self): def test_run(self): """check dust can execute (with option '--version')""" - dust = which(self.prefix.bin.dust) + dust = which(self.prefix.bin.dust, required=True) out = dust("--version", output=str.split, error=str.split) assert "Dust " in out diff --git a/repos/spack_repo/builtin/packages/dyninst/include_cstdint.patch b/repos/spack_repo/builtin/packages/dyninst/include_cstdint.patch new file mode 100644 index 00000000000..8f2a88a311e --- /dev/null +++ b/repos/spack_repo/builtin/packages/dyninst/include_cstdint.patch @@ -0,0 +1,36 @@ +diff --git a/common/src/arch-x86.h b/common/src/arch-x86.h +index ecdc3dc13..7745306d3 100644 +--- a/common/src/arch-x86.h ++++ b/common/src/arch-x86.h +@@ -40,6 +40,7 @@ + #include + #include + #include ++#include + #include "entryIDs.h" + #include "registers/MachRegister.h" + #include "common/src/ia32_locations.h" +diff --git a/common/src/sha1.C b/common/src/sha1.C +index 08dd9f6bb..489e6314a 100644 +--- a/common/src/sha1.C ++++ b/common/src/sha1.C +@@ -102,6 +102,7 @@ A million repetitions of "a" + + #include + #include ++#include + + #include "dyntypes.h" + #include "common/src/sha1.h" +diff --git a/instructionAPI/h/ArchSpecificFormatters.h b/instructionAPI/h/ArchSpecificFormatters.h +index b32d4cc14..145c604f9 100644 +--- a/instructionAPI/h/ArchSpecificFormatters.h ++++ b/instructionAPI/h/ArchSpecificFormatters.h +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + #include "Architecture.h" + #include "registers/MachRegister.h" + diff --git a/repos/spack_repo/builtin/packages/dyninst/package.py b/repos/spack_repo/builtin/packages/dyninst/package.py index 42bd0e5784f..f7d32f90721 100644 --- a/repos/spack_repo/builtin/packages/dyninst/package.py +++ b/repos/spack_repo/builtin/packages/dyninst/package.py @@ -13,7 +13,7 @@ class Dyninst(CMakePackage): """API for dynamic binary instrumentation. Modify programs while they are executing without recompiling, re-linking, or re-executing.""" - homepage = "https://dyninst.org" + homepage = "https://paradyn.org" url = "https://github.com/dyninst/dyninst/archive/refs/tags/v12.2.0.tar.gz" git = "https://github.com/dyninst/dyninst.git" maintainers("hainest") @@ -53,6 +53,8 @@ class Dyninst(CMakePackage): depends_on("boost@1.70.0:", when="@12:12.3.0") depends_on("boost@1.71.0:", when="@13:") + depends_on("rocm-openmp-extras", when="+openmp %llvm-amdgpu", type="build") + depends_on("libiberty+pic") # Parallel DWARF parsing requires a thread-safe libdw @@ -69,6 +71,12 @@ class Dyninst(CMakePackage): depends_on("tbb") requires("^[virtuals=tbb] intel-tbb@2019.9:", when="@13.0.0:") + patch( + "https://github.com/dyninst/dyninst/commit/e03567db37547f9a848f68f5a0e2c58d2aa17fe9.patch?full_index=1", + when="@:13.0.0 %tbb@2021.1:", + sha256="db3ede99643346b1beb9a2f7849e7aba3d36204093b97752c2bc0ec7e9e79290", + ) + with when("@13.0.0:"): depends_on("cmake@3.14.0:", type="build") conflicts("cmake@3.19.0") @@ -81,6 +89,8 @@ class Dyninst(CMakePackage): when="@10.0.0:12.2.0", sha256="0064d8d51bd01bd0035e1ebc49276f627ce6366d4524c92cf47d3c09b0031f96", ) + # missing include + patch("include_cstdint.patch", when="@13.0.0") requires("%gcc", when="@:12", msg="dyninst builds only with GCC") @@ -110,7 +120,7 @@ def cmake_args(self): def test_ptls(self): """Run parseThat on /bin/ls to rewrite with basic instrumentation""" - parseThat = which(self.prefix.bin.parseThat) + parseThat = which(self.prefix.bin.parseThat, required=True) os.environ["DYNINSTAPI_RT_LIB"] = join_path(self.prefix.lib, "libdyninstAPI_RT.so") parseThat( "--binary-edit={0:s}".format(join_path(self.test_suite.stage, "ls.rewritten")), diff --git a/repos/spack_repo/builtin/packages/e2fsprogs/package.py b/repos/spack_repo/builtin/packages/e2fsprogs/package.py index 8e7e9921cf0..8d61b0b9857 100644 --- a/repos/spack_repo/builtin/packages/e2fsprogs/package.py +++ b/repos/spack_repo/builtin/packages/e2fsprogs/package.py @@ -12,10 +12,11 @@ class E2fsprogs(AutotoolsPackage): It also supports the ext3 and ext4 filesystems.""" homepage = "https://github.com/tytso/e2fsprogs" - url = "https://github.com/tytso/e2fsprogs/archive/v1.45.6.tar.gz" + url = "https://github.com/tytso/e2fsprogs/archive/v1.47.3.tar.gz" license("GPL-2.0-or-later AND LGPL-2.0-or-later AND BSD-3-Clause AND MIT") + version("1.47.3", sha256="9286ee5471a8a5339a61eb952739e4614a5b1dbed79ca73a78f014885ce2ad53") version("1.47.1", sha256="db95ff1cb6ef741c9aa8875d9f3f52a34168360febba765b6377b80bada09a8c") version("1.47.0", sha256="74c8ea97c73294edc6c11dc5e7fbb4324f86c28efd66ad0ba50be4eec8a48be2") version("1.45.6", sha256="d785164a2977cd88758cb0cac5c29add3fe491562a60040cfb193abcd0f9609b") diff --git a/repos/spack_repo/builtin/packages/e4s_alc/package.py b/repos/spack_repo/builtin/packages/e4s_alc/package.py index 0156c6c941e..1307d74ee53 100644 --- a/repos/spack_repo/builtin/packages/e4s_alc/package.py +++ b/repos/spack_repo/builtin/packages/e4s_alc/package.py @@ -21,6 +21,7 @@ class E4sAlc(PythonPackage): license("MIT") version("main", branch="main") + version("1.0.3", commit="54fc0a955c5ae0221a425ce439e34a7e2ac92a87") version("1.0.2", commit="9eddfc61659ecab3c0253b2eac020ddb6e610b49") version("1.0.1", commit="262298128a4991ffc773b1bd835687fb6493311e") diff --git a/repos/spack_repo/builtin/packages/e4s_cl/package.py b/repos/spack_repo/builtin/packages/e4s_cl/package.py index c2806fa97a6..7d528a3a2a3 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,12 +23,15 @@ class E4sCl(PythonPackage): license("MIT") version("master", branch="master") + 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/ea_utils/package.py b/repos/spack_repo/builtin/packages/ea_utils/package.py index 8bf14e2b067..2f239ed25c8 100644 --- a/repos/spack_repo/builtin/packages/ea_utils/package.py +++ b/repos/spack_repo/builtin/packages/ea_utils/package.py @@ -20,11 +20,6 @@ class EaUtils(MakefilePackage): maintainers("snehring") version("2021-10-20", commit="10c21926a4dce4289d5052acfd73b8e744d4fede") - version( - "1.04.807", - sha256="aa09d25e6aa7ae71d2ce4198a98e58d563f151f8ff248e4602fa437f12b8d05f", - deprecated=True, - ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -33,7 +28,7 @@ class EaUtils(MakefilePackage): depends_on("zlib-api") depends_on("gsl") depends_on("bamtools") - depends_on("perl", type=["build", "run"]) + depends_on("perl", type=("build", "run")) build_directory = "clipper" diff --git a/repos/spack_repo/builtin/packages/easi/package.py b/repos/spack_repo/builtin/packages/easi/package.py index 09cd4faf9f6..03ce3c83dd1 100644 --- a/repos/spack_repo/builtin/packages/easi/package.py +++ b/repos/spack_repo/builtin/packages/easi/package.py @@ -22,6 +22,7 @@ class Easi(CMakePackage): license("BSD-3-Clause") version("master", branch="master") + version("1.6.2", tag="v1.6.2", commit="3e4585f5e01b7dc6a1500c70fc3c4c10d6805733") version("1.6.1", tag="v1.6.1", commit="f79a943e34e1921b169af6504a68928dc626b6a9") version("1.5.2", tag="v1.5.2", commit="0d87b1a7db31e453d52c7213cb9b31bda88cbf40") version("1.5.1", tag="v1.5.1", commit="d12f3371ed26c7371e4efcc11e3cd468063ffdda") @@ -68,10 +69,11 @@ class Easi(CMakePackage): conflicts("jit=impalajit", when="target=riscv64:") def cmake_args(self): - args = [] - args.append(self.define_from_variant("ASAGI", "asagi")) - args.append(self.define_from_variant("PYTHON_BINDINGS", "python")) - self.define("PYBIND11_USE_FETCHCONTENT", False) + args = [ + self.define_from_variant("ASAGI", "asagi"), + self.define_from_variant("PYTHON_BINDINGS", "python"), + self.define("PYBIND11_USE_FETCHCONTENT", False), + ] spec = self.spec if spec.satisfies("jit=impalajit") or spec.satisfies("jit=impalajit-llvm"): args.append(self.define("IMPALAJIT", True)) diff --git a/repos/spack_repo/builtin/packages/ecbuild/package.py b/repos/spack_repo/builtin/packages/ecbuild/package.py index 70b68e322c8..11bab7c3cf4 100644 --- a/repos/spack_repo/builtin/packages/ecbuild/package.py +++ b/repos/spack_repo/builtin/packages/ecbuild/package.py @@ -13,15 +13,19 @@ class Ecbuild(CMakePackage): homepage = "https://github.com/ecmwf/ecbuild" url = "https://github.com/ecmwf/ecbuild/archive/refs/tags/3.6.1.tar.gz" + list_url = "https://github.com/ecmwf/ecbuild/tags" - maintainers("skosukhin", "climbfuji", "victoria-cherkas") + maintainers("climbfuji", "victoria-cherkas") license("Apache-2.0") + version("3.13.1", sha256="9759815aef22c9154589ea025056db086c575af9dac635614b561ab825f9477e") + version("3.13.0", sha256="7be83510e7209c61273121bcf817780597c3afa41a5129bfccc281f0df1ffda1") version("3.12.0", sha256="70c7fc9b17f736a3312167c2c36d13b3b5833a255fe2b168b2886ad7c743ffdf") version("3.11.0", sha256="38a96bdeb38feb65446b6f95b35492232abd188c41b8a28fd128f9f88e00b05d") version("3.10.0", sha256="7065e1725584b507517cbfc456299ff588e20adf37bc6210ce89fb65a1ad08d0") version("3.9.1", sha256="48c2dbd342865049cc39afd7fe886fce9ce162105ca72b8aef9a09c21d9655ba") + version("3.9.0", sha256="8ad20169a7d917d6ac81a7ca0d1b11616e2aeb82c7782f6ae5b768603a3e000a") version("3.8.5", sha256="aa0c44cab0fffec4c0b3542e91ebcc736b3d41b68a068d30c023ec0df5f93425") version("3.7.2", sha256="7a2d192cef1e53dc5431a688b2e316251b017d25808190faed485903594a3fb9") version("3.6.5", sha256="98bff3d3c269f973f4bfbe29b4de834cd1d43f15b1c8d1941ee2bfe15e3d4f7f") diff --git a/repos/spack_repo/builtin/packages/eccodes/package.py b/repos/spack_repo/builtin/packages/eccodes/package.py index 795c5b78633..3006a777d07 100644 --- a/repos/spack_repo/builtin/packages/eccodes/package.py +++ b/repos/spack_repo/builtin/packages/eccodes/package.py @@ -2,7 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack_repo.builtin.build_systems.cmake import CMakePackage from spack.package import * @@ -51,9 +50,17 @@ class Eccodes(CMakePackage): license("Apache-2.0") version("develop", branch="develop") + + version("2.46.0", sha256="7d959253d5e34aeb16caa14d4889ac06486d19821216743142733a32ee7b4935") + version("2.45.0", sha256="6c84b39d7cc5e3b8330eeabe880f3e337f9b2ee1ebce20ea03eecd785f6c39a1") + version("2.42.0", sha256="60371b357cb011dee546db2eabace5b7e27f0f87d3ea4a5adde7891371b3c128") version("2.41.0", sha256="a1467842e11ed7f62a2f5cc1982e04eec62398f4962e6ba03ace7646f32cf270") - version("2.40.0", sha256="f58d5d7390fce86c62b26d76b9bc3c4d7d9a6cf2e5f8145d1d598089195e51ff") + version("2.40.0", sha256="f58d5d7390fce86c62b26d76b9bc3c4d7d9a6cf2e5f8145d1d598089195e51ff") + version("2.39.5", tag="2.39.5", commit="ccfac25b50894b9929a100fad2e967e5c15e50bc") + version("2.39.0", sha256="0c4d746700acc49af9c878925f1b26bdd42443ff7c2d7c676deb2babb6847afb") + version("2.38.3", sha256="fa7b7ffb22973ed1dfbeb208c042a67a805ab070f1288a0f1f0707a1020d1c81") version("2.38.0", sha256="96a21fbe8ca3aa4c31bb71bbd378b7fd130cbc0f7a477567d70e66a000ff68d9") + version("2.36.4", sha256="adec6188dfd1d6ef71d86736d66f6b26486c188c3f37e8dcc016dc713ae482e6") version("2.34.0", sha256="3cd208c8ddad132789662cf8f67a9405514bfefcacac403c0d8c84507f303aba") version("2.33.0", sha256="bdcec8ce63654ec6803400c507f01220a9aa403a45fa6b5bdff7fdcc44fd7daf") version("2.32.1", sha256="ad2ac1bf36577b1d35c4a771b4d174a06f522a1e5ef6c1f5e53a795fb624863e") @@ -97,9 +104,11 @@ class Eccodes(CMakePackage): description="List of extra definitions to install", ) - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + variant("geo", default=False, description="Enable eckit::geo") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", when="+fortran", type="build") depends_on("netcdf-c", when="+netcdf") # Cannot be built with openjpeg@2.0.x. @@ -124,16 +133,18 @@ class Eccodes(CMakePackage): conflicts("+openmp", when="+pthreads", msg="Cannot enable both POSIX threads and OMP") + depends_on("eckit", when="+geo") + conflicts( "+netcdf", when="~tools", - msg="Cannot enable the NetCDF conversion tool " "when the command line tools are disabled", + msg="Cannot enable the NetCDF conversion tool when the command line tools are disabled", ) conflicts( "~tools", when="@:2.18.0", - msg="The command line tools can be disabled " "only starting version 2.19.0", + msg="The command line tools can be disabled only starting version 2.19.0", ) for center, definitions in _definitions.items(): @@ -323,6 +334,8 @@ def cmake_args(self): self.define_from_variant("ENABLE_ECCODES_THREADS", "pthreads"), self.define_from_variant("ENABLE_ECCODES_OMP_THREADS", "openmp"), self.define_from_variant("ENABLE_MEMFS", "memfs"), + self.define_from_variant("ENABLE_GEOGRAPHY", "geo"), + self.define_from_variant("ENABLE_ECKIT_GEO", "geo"), self.define( "ENABLE_PYTHON{0}".format("2" if self.spec.satisfies("@2.20.0:") else ""), False ), diff --git a/repos/spack_repo/builtin/packages/eccodes_cosmo_resources/package.py b/repos/spack_repo/builtin/packages/eccodes_cosmo_resources/package.py new file mode 100644 index 00000000000..394f18e3da6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/eccodes_cosmo_resources/package.py @@ -0,0 +1,57 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class EccodesCosmoResources(Package): + """To simplify the usage of the GRIB 2 format within the COSMO Consortium, + a COSMO GRIB 2 Policy has been defined. One element of this policy is to + define a unified ecCodes system for the COSMO community, which is compatible + with all COSMO software. This unified system is split into two parts, + the vendor distribution of the ecCodes, available from ECMWF and the modified + samples and definitions used by the COSMO consortium, available in the + current repository.""" + + homepage = "https://github.com/COSMO-ORG/eccodes-cosmo-resources.git" + url = "https://github.com/COSMO-ORG/eccodes-cosmo-resources/archive/refs/tags/v2.36.0.3.tar.gz" + git = "https://github.com/COSMO-ORG/eccodes-cosmo-resources.git" + + maintainers("huppd", "lxavier", "victoria-cherkas") + + version("2.36.0.3", sha256="503a1b5f8a0aefc782e0faab52960d957d1d73f042ea4e1ac6e4888e53784125") + version("2.25.0.3", sha256="f2ebf768a489c17d6b3fbb49c27b50c2806d48cc03c4aa93a9e9bca0ff44c599") + version("2.25.0.2", sha256="1fa3d3734583f98eee1a45e1a3cf9e340b8ca5fbe879dd6992db88e8a4db98a7") + version("2.25.0.1", sha256="8e0b6b7bd01a435b2a80da40981425276cae5851923183175935861e2f1f36ec") + version("2.18.0.1", sha256="666e14a3841f168a231487a55eea58fa5a6209a65a1f8a6ef02af713fa6fcbe7") + + depends_on("eccodes") + 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") + + def setup_run_environment(self, env): + eccodes_definition_path = ":".join( + [ + self.prefix + "/cosmoDefinitions/definitions/", + self.spec["eccodes"].prefix + "/share/eccodes/definitions/", + ] + ) + env.prepend_path("GRIB_DEFINITION_PATH", eccodes_definition_path) + env.prepend_path("ECCODES_DEFINITION_PATH", eccodes_definition_path) + + eccodes_samples_path = self.prefix + "/cosmoDefinitions/samples/" + env.prepend_path("GRIB_SAMPLES_PATH", eccodes_samples_path) + env.prepend_path("ECCODES_SAMPLES_PATH", eccodes_samples_path) + + def setup_dependent_build_environment(self, env, dependent_spec): + self.setup_run_environment(env) + + def install(self, spec, prefix): + mkdir(prefix.cosmoDefinitions) + mkdir(prefix.cosmoDefinitions + "/definitions") + mkdir(prefix.cosmoDefinitions + "/samples") + install_tree("definitions", prefix.cosmoDefinitions + "/definitions") + install_tree("samples", prefix.cosmoDefinitions + "/samples") + install("RELEASE", prefix.cosmoDefinitions) diff --git a/repos/spack_repo/builtin/packages/ecflow/package.py b/repos/spack_repo/builtin/packages/ecflow/package.py index 571126c1e81..43fd6b444e5 100644 --- a/repos/spack_repo/builtin/packages/ecflow/package.py +++ b/repos/spack_repo/builtin/packages/ecflow/package.py @@ -125,7 +125,7 @@ def remove_recursive_symlink_in_source_code(self): @when("+ssl ^openssl~shared") def patch(self): - pkgconf = which("pkg-config") + pkgconf = which("pkg-config", required=True) liblist_l = pkgconf("--libs-only-l", "--static", "openssl", output=str).split() liblist = " ".join([ll.replace("-l", "") for ll in liblist_l]) for sdir in ["Client", "Server"]: diff --git a/repos/spack_repo/builtin/packages/eckit/package.py b/repos/spack_repo/builtin/packages/eckit/package.py index 3772404e14d..d2603d68087 100644 --- a/repos/spack_repo/builtin/packages/eckit/package.py +++ b/repos/spack_repo/builtin/packages/eckit/package.py @@ -16,15 +16,20 @@ class Eckit(CMakePackage): homepage = "https://github.com/ecmwf/eckit" git = "https://github.com/ecmwf/eckit.git" url = "https://github.com/ecmwf/eckit/archive/refs/tags/1.16.0.tar.gz" + list_url = "https://github.com/ecmwf/eckit/tags" - maintainers("skosukhin", "climbfuji", "victoria-cherkas") + maintainers("climbfuji", "victoria-cherkas") license("Apache-2.0") + version("2.0.2", sha256="46b9c1f90e0b565698c5c79c54676401d33738ec82995c025d5d5aabeb13ad2b") + version("1.33.0", sha256="a15f89df0cdaa2d8a74843a1e72a7b3b304958a4fe119b51eec5efadbf113d4f") version("1.32.3", sha256="33e0fac2656cdd2f2d877dbfe7a4751ee657ab732c00dd90bd48a406298a100f") + version("1.32.2", sha256="f2940e99f1550119497418221e4c5073eb9c3ea776b15a4f56236ef4438a1210") version("1.31.4", sha256="045ebd9aaecf2773dc8c82f4226022776576cb0d911a76f8d1d069c97e9530c8") version("1.30.0", sha256="1f58360dedfaa285a6b8087916768e6d12406e9fda2b6ba0a5c875f7a3db5398") version("1.29.3", sha256="5afb6ac5bd95d68b7b0fdf42bdfe21370515b8e9ef7b3db91a89e021aa9133f2") + version("1.28.8", sha256="4bd4fbb971ec9b53a64d47f40336c130b37349850ae82114d5c04f393ea70d23") version("1.28.3", sha256="24b2b8d9869849a646aa3fd9d95e4181a92358cd837d95b22e25d718a6ad7738") version("1.28.2", sha256="d122db8bb5bcaadf3256a24f0f90d9bcedad35ef8f25e7eccd8c93c506dbdd24") version("1.27.0", sha256="499f3f8c9aec8d3f42369e3ceedc98b2b09ac04993cfd38dfdf7d38931703fe7") @@ -56,7 +61,6 @@ class Eckit(CMakePackage): values=any_combination_of("eigen", "armadillo", "mkl", "lapack"), description="List of supported linear algebra backends", ) - # There is probably a more elegant way to handle the differences # in valid compression backends, but this works ... variant( @@ -78,13 +82,13 @@ class Eckit(CMakePackage): variant( "unicode", default=True, - description="Enable support for Unicode characters in Yaml/JSON" "parsers", + description="Enable support for Unicode characters in Yaml/JSON parsers", ) variant("aio", default=True, description="Enable asynchronous IO") variant("fismahigh", default=False, description="Apply patching for FISMA-high compliance") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") # Build issues with cmake 3.20, not sure about 3.21 depends_on("cmake@3.12:3.19,3.22:", type="build") @@ -127,8 +131,7 @@ class Eckit(CMakePackage): conflicts( "linalg=lapack", when="linalg=mkl", - msg='"linalg=lapack" is implied when "linalg=mkl" and ' - "must not be specified additionally", + msg='"linalg=lapack" is implied when "linalg=mkl" and must not be specified additionally', ) def cmake_args(self): diff --git a/repos/spack_repo/builtin/packages/ecp_data_vis_sdk/package.py b/repos/spack_repo/builtin/packages/ecp_data_vis_sdk/package.py index aed15bcd6da..52139a974d7 100644 --- a/repos/spack_repo/builtin/packages/ecp_data_vis_sdk/package.py +++ b/repos/spack_repo/builtin/packages/ecp_data_vis_sdk/package.py @@ -151,7 +151,7 @@ class EcpDataVisSdk(BundlePackage, CudaPackage, ROCmPackage): # Fortran support with ascent is problematic on some Cray platforms so the # SDK is explicitly disabling it until the issues are resolved. dav_sdk_depends_on( - "ascent+mpi~fortran+python+shared+vtkh+dray~test", + "ascent+mpi~fortran+python+shared+vtkh~test", when="+ascent", propagate=["adios2", "cuda"] + cuda_arch_variants, ) @@ -170,7 +170,7 @@ class EcpDataVisSdk(BundlePackage, CudaPackage, ROCmPackage): # ParaView needs @5.11: in order to use CUDA/ROCM, therefore it is the minimum # required version since GPU capability is desired for ECP dav_sdk_depends_on( - "paraview@5.11:+mpi+openpmd+python+kits+shared+catalyst+libcatalyst" " use_vtkm=on", + "paraview@5.11:+mpi+openpmd+python+kits+shared+catalyst+libcatalyst use_vtkm=on", when="+paraview", propagate=["adios2", "cuda", "hdf5", "rocm"] + amdgpu_target_variants + cuda_arch_variants, ) diff --git a/repos/spack_repo/builtin/packages/ecp_proxy_apps/package.py b/repos/spack_repo/builtin/packages/ecp_proxy_apps/package.py index 89665dc0fad..d36175abddd 100644 --- a/repos/spack_repo/builtin/packages/ecp_proxy_apps/package.py +++ b/repos/spack_repo/builtin/packages/ecp_proxy_apps/package.py @@ -63,9 +63,6 @@ class EcpProxyApps(BundlePackage): depends_on("amg2013@1.1", when="@2.0") depends_on("miniamr@1.4.1", when="@2.0:2.1") - # Added with release 1.1 - depends_on("examinimd@1.0", when="@1.1:") - depends_on("nekbone@17.0", when="@1.0:") depends_on("swfft@1.0", when="@1.0:") diff --git a/repos/spack_repo/builtin/packages/ectrans/package.py b/repos/spack_repo/builtin/packages/ectrans/package.py index d0288c201b0..f0171ad17a8 100644 --- a/repos/spack_repo/builtin/packages/ectrans/package.py +++ b/repos/spack_repo/builtin/packages/ectrans/package.py @@ -8,17 +8,21 @@ class Ectrans(CMakePackage): - """Ectrans is the global spherical Harmonics transforms library, - extracted from the IFS. It is using a hybrid of MPI and OpenMP - parallelisation strategies. The package contains both single- and double precision - Fortran libraries (trans_sp, trans_dp), as well as a - C interface to the double-precision version (transi_dp).""" + """ecTrans is a library for performing efficient and scalable spectral transformations. It is + used for transforming fields from a grid point space on the sphere (e.g. latitude-longitude) to + a spectral space based on spherical harmonics (for global transformations) or bifourier + harmonics (for limited area transformations), which constitutes a direct transform. A + corresponding inverse transform can also be performed. A transform consists of a Fourier + transform in the longitudinal direction and either a Legendre transform (global) or another + Fourier transform (limited area) in the latitudinal direction. ecTrans can also operate on + fields which are distributed across separate MPI tasks and performs the necessary communication + to ensure all data needed for a particular transform are resident on a local task.""" homepage = "https://github.com/ecmwf-ifs/ectrans" git = "https://github.com/ecmwf-ifs/ectrans.git" url = "https://github.com/ecmwf-ifs/ectrans/archive/1.1.0.tar.gz" - maintainers("climbfuji") + maintainers("climbfuji", "samhatfield") license("Apache-2.0") @@ -47,6 +51,12 @@ class Ectrans(CMakePackage): variant("mkl", default=False, description="Use MKL") variant("fftw", default=True, description="Use FFTW") + variant( + "etrans", + default=False, + when="@1.6.0:", + description="Compile limited-area-model transform library etrans", + ) variant("transi", default=True, description="Compile TransI C-interface to trans") depends_on("c", type="build") @@ -56,7 +66,7 @@ class Ectrans(CMakePackage): # Add explicit dependency on newer cmake versions in order to apply patch # "find_lapack.patch", see below and https://github.com/ecmwf-ifs/ectrans/issues/316 # Newer versions of ectrans (1.7.0+) also require cmake@3.25: by default. - depends_on("cmake@3.25:", when="@1.5:", type="build") + depends_on("cmake@3.25:", type="build") depends_on("ecbuild", type="build") depends_on("mpi", when="+mpi") @@ -88,6 +98,7 @@ def cmake_args(self): self.define_from_variant("ENABLE_SINGLE_PRECISION", "single_precision"), self.define_from_variant("ENABLE_FFTW", "fftw"), self.define_from_variant("ENABLE_MKL", "mkl"), + self.define_from_variant("ENABLE_ETRANS", "etrans"), self.define_from_variant("ENABLE_TRANSI", "transi"), # Turn off use of contiguous keyword in Fortran because a number # of compilers have issues with it, and the hardcoded list of "bad" diff --git a/repos/spack_repo/builtin/packages/ed/package.py b/repos/spack_repo/builtin/packages/ed/package.py index d6d0f7dae27..3b3b0f1c48e 100644 --- a/repos/spack_repo/builtin/packages/ed/package.py +++ b/repos/spack_repo/builtin/packages/ed/package.py @@ -21,5 +21,14 @@ class Ed(AutotoolsPackage, GNUMirrorPackage): version("1.4", sha256="db36da85ee1a9d8bafb4b041bd4c8c11becba0c43ec446353b67045de1634fda") depends_on("c", type="build") # generated + depends_on("cxx", type="build") parallel = False + + def configure_args(self): + args = [] + + args.append(f"CC={spack_cc}") + args.append(f"CXX={spack_cxx}") + + return args diff --git a/repos/spack_repo/builtin/packages/edm4hep/package.py b/repos/spack_repo/builtin/packages/edm4hep/package.py index bd2265c642a..2b0a196cd73 100644 --- a/repos/spack_repo/builtin/packages/edm4hep/package.py +++ b/repos/spack_repo/builtin/packages/edm4hep/package.py @@ -22,37 +22,19 @@ class Edm4hep(CMakePackage): license("Apache-2.0") version("main", branch="main") + version("1.0", sha256="7bb76479883997ba39357b0db65d96d5f1201bc8a79b47866db8b44f76a231be") + version("0.99.4", sha256="34a76e74a3199b96d8108425fdf894cafa7e4a71483d4893537c3026b4e666d6") + version("0.99.3", sha256="c89e90085d83c5565b2609a81532af0d631d423fdf6d03396f666ea3a8472429") version("0.99.2", sha256="b3e7abb61fd969e4c9aef55dd6839a2186bf0b0d3801174fe6e0b9df8e0ebace") version("0.99.1", sha256="84d990f09dbd0ad2198596c0c51238a4b15391f51febfb15dd3d191dc7aae9f4") version("0.99", sha256="3636e8c14474237029bf1a8be11c53b57ad3ed438fd70a7e9b87c5d08f1f2ea6") version("0.10.5", sha256="003c8e0c8e1d1844592d43d41384f4320586fbfa51d4d728ae0870b9c4f78d81") - version( - "0.10.4", - sha256="76d51947525bc8a27b62f567033255da2e632d42d07a32ff578887948d56bd6f", - deprecated=True, - ) - version( - "0.10.3", - sha256="0ba5e4e90376f750f9531831909160e3d7b9c2d1f020d7556f0d3977b7eaafcc", - deprecated=True, - ) - version( - "0.10.2", - sha256="c22c5c2f0fd1d09da9b734c1fa7ee546675fd2b047406db6ab8266e7657486d2", - deprecated=True, - ) - version( - "0.10.1", - sha256="28a3bd4df899309b14ec0d441f8b6ed0065206a08a0018113bb490e9d008caed", - deprecated=True, - ) - version( - "0.10", - sha256="a95c917c19793cfad6b0959854a653c5ce698c965598cabd649d544da07712c0", - deprecated=True, - ) - _cxxstd_values = (conditional("17", when="@:0.99.0"), conditional("20", when="@0.10:")) + _cxxstd_values = ( + conditional("17", when="@:0.99.0"), + conditional("20", when="@0.10:"), + conditional("23", when="@0.99.1:"), + ) variant( "cxxstd", default="20", @@ -70,17 +52,19 @@ class Edm4hep(CMakePackage): depends_on("cxx", type="build") # generated - depends_on("cmake@3.3:", type="build") - depends_on("cmake@3.23:", type="build", when="@0.10.3:") + depends_on("cmake@3.23:", type="build") depends_on("python", type="build") depends_on("root@6.08:") depends_on("nlohmann-json@3.10.5:", when="@0.99.2: +json") depends_on("nlohmann-json@3.10.5:", when="@:0.99.1") + depends_on("podio@1.6:", when="@0.99.3:") depends_on("podio@1:", when="@0.99:") depends_on("podio@0.15:", when="@:0.10.5") depends_on("podio@:1.1", when="@:0.99.0") depends_on("podio@1.3:", when="@0.99.2:") + depends_on("podio@:1.6", when="@:0.99.4") + depends_on("podio@1.7:", when="@1.0:") for _std in _cxxstd_values: for _v in _std: depends_on(f"podio cxxstd={_v.value}", when=f"cxxstd={_v.value}") @@ -96,6 +80,11 @@ class Edm4hep(CMakePackage): extends("python", when="@0.10.6:") conflicts("%clang@:16", when="@0.99.1:", msg="Incomplete consteval support in clang") + conflicts( + "^python +freethreading", + when="@:0.99.4", + msg="python free-threading requires edm4hep@0.99.5:", + ) # Fix missing nljson import # NOTE that downstream packages (dd4hep) may fail for 0.99 and before diff --git a/repos/spack_repo/builtin/packages/eigen/package.py b/repos/spack_repo/builtin/packages/eigen/package.py index 5e5862c62ec..9736c3ef674 100644 --- a/repos/spack_repo/builtin/packages/eigen/package.py +++ b/repos/spack_repo/builtin/packages/eigen/package.py @@ -14,32 +14,40 @@ class Eigen(CMakePackage, ROCmPackage): vectors, numerical solvers, and related algorithms. """ - homepage = "https://eigen.tuxfamily.org/" + homepage = "https://libeigen.gitlab.io/" git = "https://gitlab.com/libeigen/eigen.git" url = "https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz" - maintainers("HaoZeke") + maintainers("HaoZeke", "jcortial-safran") license("MPL-2.0") version("master", branch="master") + version("5.0.1", sha256="e9c326dc8c05cd1e044c71f30f1b2e34a6161a3b6ecf445d56b53ff1669e3dec") + version("5.0.0", sha256="315c881e19e17542a7d428c5aa37d113c89b9500d350c433797b730cd449c056") + version("3.4.1", sha256="b93c667d1b69265cdb4d9f30ec21f8facbbe8b307cf34c0b9942834c6d4fdbe2") version("3.4.0", sha256="8586084f71f9bde545ee7fa6d00288b264a2b7ac3607b974e54d13e7162c1c72") version("3.3.9", sha256="7985975b787340124786f092b3a07d594b2e9cd53bbfe5f3d9b1daee7d55f56f") - version("3.3.8", sha256="146a480b8ed1fb6ac7cd33fec9eb5e8f8f62c3683b3f850094d9d5c35a92419a") - version("3.3.7", sha256="d56fbad95abf993f8af608484729e3d87ef611dd85b3380a8bad1d5cbc373a57") - version("3.3.6", sha256="e7cd8c94d6516d1ada9893ccc7c9a400fcee99927c902f15adba940787104dba") - version("3.3.5", sha256="383407ab3d0c268074e97a2cbba84ac197fd24532f014aa2adc522355c1aa2d0") - version("3.3.4", sha256="c5ca6e3442fb48ae75159ca7568854d9ba737bc351460f27ee91b6f3f9fd1f3d") - version("3.3.3", sha256="fd72694390bd8e81586205717d2cf823e718f584b779a155db747d1e68481a2e") - version("3.3.2", sha256="8d7611247fba1236da4dee7a64607017b6fb9ca5e3f0dc44d480e5d33d5663a5") - version("3.3.1", sha256="50dd21a8997fce0857b27a126811ae8ee7619984ab5425ecf33510cec649e642") - version("3.3.0", sha256="de82e01f97e1a95f121bd3ace87aa1237818353c14e38f630a65f5ba2c92f0e1") version("3.2.10", sha256="0920cb60ec38de5fb509650014eff7cc6d26a097c7b38c7db4b1aa5df5c85042") - version("3.2.9", sha256="f683b20259ad72c3d384c00278166dd2a42d99b78dcd589ed4a6ca74bbb4ca07") - version("3.2.8", sha256="64c54781cfe9eefef2792003ab04b271d4b2ec32eda6e9cdf120d7aad4ebb282") - version("3.2.7", sha256="0ea9df884873275bf39c2965d486fa2d112f3a64b97b60b45b8bc4bb034a36c1") - version("3.2.6", sha256="e097b8dcc5ad30d40af4ad72d7052e3f78639469baf83cffaadc045459cda21f") - version("3.2.5", sha256="8068bd528a2ff3885eb55225c27237cf5cda834355599f05c2c85345db8338b4") + + with default_args(deprecated=True): + version("3.3.8", sha256="146a480b8ed1fb6ac7cd33fec9eb5e8f8f62c3683b3f850094d9d5c35a92419a") + version("3.3.7", sha256="d56fbad95abf993f8af608484729e3d87ef611dd85b3380a8bad1d5cbc373a57") + version("3.3.6", sha256="e7cd8c94d6516d1ada9893ccc7c9a400fcee99927c902f15adba940787104dba") + version("3.3.5", sha256="383407ab3d0c268074e97a2cbba84ac197fd24532f014aa2adc522355c1aa2d0") + version("3.3.4", sha256="c5ca6e3442fb48ae75159ca7568854d9ba737bc351460f27ee91b6f3f9fd1f3d") + version("3.3.3", sha256="fd72694390bd8e81586205717d2cf823e718f584b779a155db747d1e68481a2e") + version("3.3.2", sha256="8d7611247fba1236da4dee7a64607017b6fb9ca5e3f0dc44d480e5d33d5663a5") + version("3.3.1", sha256="50dd21a8997fce0857b27a126811ae8ee7619984ab5425ecf33510cec649e642") + version("3.3.0", sha256="de82e01f97e1a95f121bd3ace87aa1237818353c14e38f630a65f5ba2c92f0e1") + version("3.2.9", sha256="f683b20259ad72c3d384c00278166dd2a42d99b78dcd589ed4a6ca74bbb4ca07") + version("3.2.8", sha256="64c54781cfe9eefef2792003ab04b271d4b2ec32eda6e9cdf120d7aad4ebb282") + version("3.2.7", sha256="0ea9df884873275bf39c2965d486fa2d112f3a64b97b60b45b8bc4bb034a36c1") + version("3.2.6", sha256="e097b8dcc5ad30d40af4ad72d7052e3f78639469baf83cffaadc045459cda21f") + version("3.2.5", sha256="8068bd528a2ff3885eb55225c27237cf5cda834355599f05c2c85345db8338b4") + + variant("blas", description="Build eigen-based BLAS", when="@3.4.1:", default=False) + variant("lapack", description="Build eigen-based LAPACK", when="@3.4.1:", default=False) variant("nightly", description="run Nightly test", default=False) @@ -62,22 +70,35 @@ class Eigen(CMakePackage, ROCmPackage): sha256="b8877a84c4338f08ab8a6bb8b274c768e93d36ac05b733b078745198919a74bf", ) + patch( + "https://gitlab.com/libeigen/eigen/-/merge_requests/2017.diff", + sha256="89b31dd7a28764b95758c9777f9084cacede084e87d5d2623efc754dc1987864", + when="@5.0.0 platform=windows", + ) + + patch( + "https://gitlab.com/libeigen/eigen/-/merge_requests/2019.diff", + sha256="5d4521e391a4e62e1ee7a98df5dbb20f67c4a1210863babfdbfec0466c8d2b13", + when="@5.0.0 platform=windows", + ) + + # Building eigen-based LAPACK implementation requires to also build BLAS + conflicts("~blas", when="+lapack") + + conflicts("platform=windows", when="@3.4.1 +blas") + # there is a bug in 3.3.4 that provokes a compile error with the xl compiler # See https://gitlab.com/libeigen/eigen/-/issues/1555 patch("xlc-compilation-3.3.4.patch", when="@3.3.4%xl_r") - # From http://eigen.tuxfamily.org/index.php?title=Main_Page#Requirements - # "Eigen doesn't have any dependencies other than the C++ standard - # library." - variant( - "build_type", - default="RelWithDebInfo", - description="The build type to build", - values=("Debug", "Release", "RelWithDebInfo"), - ) - depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("fortran", type="build", when="@3.4.1: +lapack") + depends_on("fortran", type="build", when="@3.4.1:3 +blas") + + depends_on("cmake@3.10:", when="@3.4.1:", type="build") + depends_on("cmake@3.5:", when="@3.4.0", type="build") + depends_on("cmake@:3", when="@:3.3", type="build") depends_on("boost@1.53:", when="@master", type="test") # TODO: latex and doxygen needed to produce docs with make doc @@ -90,6 +111,8 @@ def cmake_args(self): args = [ self.define("EIGEN_BUILD_TESTING", self.run_tests), self.define("EIGEN_LEAVE_TEST_IN_ALL_TARGET", self.run_tests), + self.define_from_variant("EIGEN_BUILD_BLAS", "blas"), + self.define_from_variant("EIGEN_BUILD_LAPACK", "lapack"), ] if self.spec.satisfies("@:3.4"): diff --git a/repos/spack_repo/builtin/packages/eigenexa/package.py b/repos/spack_repo/builtin/packages/eigenexa/package.py index d5e4ecca9e2..5121825976f 100644 --- a/repos/spack_repo/builtin/packages/eigenexa/package.py +++ b/repos/spack_repo/builtin/packages/eigenexa/package.py @@ -97,6 +97,6 @@ def test_benchmarks(self): join_path(test_cache_dir, "IN"), ] env["OMP_NUM_THREADS"] = "1" - sh = which("sh") + sh = which("sh", required=True) out = sh(*opts, output=str.split, error=str.split) assert "EigenExa Test Passed !" in out diff --git a/repos/spack_repo/builtin/packages/elasticsearch/package.py b/repos/spack_repo/builtin/packages/elasticsearch/package.py index 9b89710975c..6c947627ff7 100644 --- a/repos/spack_repo/builtin/packages/elasticsearch/package.py +++ b/repos/spack_repo/builtin/packages/elasticsearch/package.py @@ -17,20 +17,9 @@ class Elasticsearch(Package): url = "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.2-linux-x86_64.tar.gz" version("8.15.2", sha256="0b6905ede457be9d1d73d0b6be1c3a7c7c6220829846b532f2604ad30ba7308f") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2018-3831 - version("6.4.0", sha256="e9786efb5cecd12adee2807c7640ba9a1ab3b484d2e87497bb8d0b6df0e24f01") - version("6.3.0", sha256="0464127140820d82b24bd2830232131ea85bcd49267a8bc7365e4fa391dee2a3") - version("6.2.4", sha256="91e6f1ea1e1dd39011e7a703d2751ca46ee374665b08b0bfe17e0c0c27000e8e") depends_on("java", type="run") - def url_for_version(self, version): - if self.spec.satisfies("@:6"): - return f"https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-{version}.tar.gz" - else: - return f"https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-{version}-linux-x86_64.tar.gz" - def install(self, spec, prefix): dirs = ["bin", "config", "lib", "modules", "plugins"] diff --git a/repos/spack_repo/builtin/packages/elastix/package.py b/repos/spack_repo/builtin/packages/elastix/package.py new file mode 100644 index 00000000000..b53a2e40618 --- /dev/null +++ b/repos/spack_repo/builtin/packages/elastix/package.py @@ -0,0 +1,36 @@ +# 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 Elastix(CMakePackage): + """Welcome to elastix: a toolbox for rigid and nonrigid registration of images. + + elastix is open source software, based on the well-known Insight Segmentation + and Registration Toolkit (ITK). The software consists of a collection of + algorithms that are commonly used to solve (medical) image registration problems. + The modular design of elastix allows the user to quickly configure, test, + and compare different registration methods for a specific application. + A command-line interface enables automated processing of large numbers of + data sets, by means of scripting. + """ + + homepage = "https://www.elastix.dev" + url = "https://github.com/SuperElastix/elastix/archive/refs/tags/5.2.0.tar.gz" + + maintainers("Markus92") + + license("Apache-2.0", checked_by="Markus92") + + version("5.2.0", sha256="7267d7f2efccc3ddd9529aa83e4d10eeea3707a972de06b2e020fc95d4bec6c1") + version("5.1.0", sha256="f2e3e33359d1e35cb986bc1eb7a1b0179cdb20a67e410ac8423102a160bfc29e") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("itk@5.4:", when="@5.2:") + depends_on("itk@5.3:", when="@5.1:") diff --git a/repos/spack_repo/builtin/packages/elbencho/package.py b/repos/spack_repo/builtin/packages/elbencho/package.py index 499705876c3..da3202f02b8 100644 --- a/repos/spack_repo/builtin/packages/elbencho/package.py +++ b/repos/spack_repo/builtin/packages/elbencho/package.py @@ -24,6 +24,8 @@ class Elbencho(MakefilePackage): version("master", branch="master") + version("3.0-37", sha256="9d877d5e8d3d035d447a46e0d4f4b335e9d9834592dfb83d86dbb5ab1ed1bd76") + version("3.0-35", sha256="0a1b4128d71ac3e972a0875f601530760d7d3ab1ecbe998558c5c425d668366b") version("3.0-3", sha256="5769abcdaebefe2984ac3053fb6e91a54e1863d5ea8f72daea830e10b27c0eaf") version("3.0-1", sha256="19dad85e1fc74419dcdf740f11a47d3f6d566770a06e40976755a3404566c11d") version("2.2-5", sha256="4b598639452665a8b79c4c9d8a22ae63fb9b04057635a45e686aa3939ee255b4") diff --git a/repos/spack_repo/builtin/packages/elfutils/package.py b/repos/spack_repo/builtin/packages/elfutils/package.py index ded21a376bf..99e39bf3219 100644 --- a/repos/spack_repo/builtin/packages/elfutils/package.py +++ b/repos/spack_repo/builtin/packages/elfutils/package.py @@ -28,6 +28,8 @@ class Elfutils(AutotoolsPackage, SourcewarePackage): license("GPL-3.0-or-later AND ( GPL-2.0-or-later OR LGPL-3.0-or-later )") + version("0.194", sha256="09e2ff033d39baa8b388a2d7fbc5390bfde99ae3b7c67c7daaf7433fbcf0f01e") + version("0.193", sha256="7857f44b624f4d8d421df851aaae7b1402cfe6bcdd2d8049f15fc07d3dde7635") version("0.192", sha256="616099beae24aba11f9b63d86ca6cc8d566d968b802391334c91df54eab416b4") version("0.191", sha256="df76db71366d1d708365fc7a6c60ca48398f14367eb2b8954efc8897147ad871") version("0.190", sha256="8e00a3a9b5f04bc1dc273ae86281d2d26ed412020b391ffcc23198f10231d692") @@ -81,7 +83,7 @@ class Elfutils(AutotoolsPackage, SourcewarePackage): depends_on("gettext", when="+nls") depends_on("iconv") depends_on("m4", type="build") - depends_on("pkgconfig@0.9.0:", type=("build", "link")) + depends_on("pkgconfig", type=("build", "link")) # debuginfod has extra dependencies with when("+debuginfod"), default_args(type="link"): diff --git a/repos/spack_repo/builtin/packages/elk/package.py b/repos/spack_repo/builtin/packages/elk/package.py index 7072634a5d1..6748fac86db 100644 --- a/repos/spack_repo/builtin/packages/elk/package.py +++ b/repos/spack_repo/builtin/packages/elk/package.py @@ -23,11 +23,6 @@ class Elk(MakefilePackage): version("7.2.42", sha256="73f03776dbf9b2147bfcc5b7c062af5befa0944608f6fc4b6a1e590615400fc6") version("7.1.14", sha256="7c2ff30f4b1d72d5dc116de9d70761f2c206700c69d85dd82a17a5a6374453d2") version("7.0.12", sha256="9995387c681d0e5a9bd52cb274530b23c0370468b6be86f6c90a6ec445cb8a01") - version( - "3.3.17", - sha256="c9b87ae4ef367ed43afc2d43eb961745668e40670995e8e24c13db41b7e85d73", - deprecated=True, - ) # what linear algebra packages to use? the choices are # internal - use internal libraries @@ -59,7 +54,6 @@ class Elk(MakefilePackage): conflicts("linalg=mkl", when="fft=fftw") conflicts("linalg=mkl", when="fft=internal") - conflicts("linalg=blis", when="@:3") conflicts("fft=mkl", when="linalg=internal") conflicts("fft=mkl", when="linalg=generic") conflicts("fft=mkl", when="linalg=openblas") @@ -99,7 +93,6 @@ class Elk(MakefilePackage): depends_on("libxc@7:", when="@10:+libxc") depends_on("libxc@6:", when="@:9+libxc") depends_on("libxc@5:", when="@:7+libxc") - depends_on("libxc@:3", when="@:3+libxc") depends_on("wannier90", when="+w90") # Cannot be built in parallel @@ -196,7 +189,7 @@ def edit(self, spec, prefix): config["SRC_FFT"] = "mkl_dfti.f90 zfftifc_mkl.f90" if spec.satisfies("@8.6:"): config["SRC_FFT"] += " cfftifc_mkl.f90" - cp = which("cp") + cp = which("cp", required=True) mkl_prefix = spec["mkl"].prefix cp( join_path(mkl_prefix.include, "mkl_dfti.f90"), @@ -252,5 +245,5 @@ def install(self, spec, prefix): @on_package_attributes(run_tests=True) def check(self): with working_dir("{0}/tests".format(self.build_directory)): - bash = which("bash") + bash = which("bash", required=True) bash("./test.sh") diff --git a/repos/spack_repo/builtin/packages/elpa/hipcc.patch b/repos/spack_repo/builtin/packages/elpa/hipcc.patch new file mode 100644 index 00000000000..4d199689ab2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/elpa/hipcc.patch @@ -0,0 +1,23 @@ +diff --git a/hipcc_wrap b/hipcc_wrap +index 9c843ace84..344e7247e9 100755 +--- a/hipcc_wrap ++++ b/hipcc_wrap +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!/bin/bash + + ARGS=() + for arg in "$@"; do +diff --git a/test/shared/GPU/ROCm/test_rocmFunctions.hip b/test/shared/GPU/ROCm/test_rocmFunctions.hip +index ddb5956950..b04368d71a 100644 +--- a/test/shared/GPU/ROCm/test_rocmFunctions.hip ++++ b/test/shared/GPU/ROCm/test_rocmFunctions.hip +@@ -331,7 +331,7 @@ + #else /* HIPBLAS */ + #include "rocblas/rocblas.h" + #ifdef WITH_AMD_ROCSOLVER +-#include ++#include + #endif + #endif /* HIPBLAS */ + #include "hip/hip_runtime_api.h" diff --git a/repos/spack_repo/builtin/packages/elpa/package.py b/repos/spack_repo/builtin/packages/elpa/package.py index d37f1d8f100..d18e785d35c 100644 --- a/repos/spack_repo/builtin/packages/elpa/package.py +++ b/repos/spack_repo/builtin/packages/elpa/package.py @@ -27,6 +27,15 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage): version("master", branch="master") + version( + "2026.02.001", sha256="a379f27f4dbd27b2ee45017afec656d064301e97150c874649bdfd64957b75ed" + ) + version( + "2025.06.001", sha256="feeb1fea1ab4a8670b8d3240765ef0ada828062ef7ec9b735eecba2848515c94" + ) + version( + "2025.01.002", sha256="8febe408c590ba9b44bd8bce04605fd1b7da964afcd8fd5f1ce9edecb3d0b65d" + ) version( "2025.01.001", sha256="3ef0c6aed9a3e05db6efafe6e14d66eb88b2a1354d61e765b7cde0d3d5f3951e" ) @@ -68,6 +77,9 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage): variant( "gpu_streams", default=True, when="+cuda", description="Activates GPU streams support" ) + variant( + "gpu_streams", default=True, when="+rocm", description="Activates GPU streams support" + ) patch("fujitsu.patch", when="%fj") # wrong filename handling in elpa's custom preprocessor @@ -76,6 +88,7 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage): sha256="90f18c84e740a35d726e44078a111fac3b6278a0e750ce1f3ea154ee78e93298", when="@:2025.01.001", ) + patch("hipcc.patch", when="+rocm @2025.01.001:2025.06.001") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -89,6 +102,9 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage): depends_on("mpi", when="+mpi") depends_on("scalapack", when="+mpi") depends_on("rocblas", when="+rocm") + # elpa 2024.05.001 enables rocsolver by default + # https://github.com/marekandreas/elpa/commit/de90ce3d634be468e71c2827d788de52ceb606bf#diff-49473dca262eeab3b4a43002adb08b4db31020d190caaad1594b47f1d5daa810R2635-R2638 + depends_on("rocsolver", when="+rocm @2024.05.001:") depends_on("libtool", type="build") depends_on("python@3:", type="build") depends_on("scalapack", when="+autotune") @@ -107,7 +123,7 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage): when="@2021.05.001: %gcc@:7", msg="ELPA-2021.05.001+ requires GCC-8+ for OpenMP support", ) - conflicts("+mpi", when="+rocm", msg="ROCm support and MPI are not yet compatible") + conflicts("+mpi", when="+rocm @:2024", msg="ROCm support and MPI are not yet compatible") conflicts( "+gpu_streams", when="@:2023.11.001-patched +openmp", @@ -145,7 +161,30 @@ def headers(self): return hlist build_directory = "spack-build" - parallel = False + # parallel = False + + def flag_handler(self, name, flags): + spec = self.spec + if name == "cflags": + if spec.satisfies("^[virtuals=c] gcc") or spec.satisfies("^[virtuals=c] aocc"): + flags.append("-O3") + if name == "fflags": + if spec.satisfies("^[virtuals=fortran] aocc"): + flags.append("-O3") + elif spec.satisfies("^[virtuals=fortran] gcc"): + flags.append("-O3 -ffree-line-length-none") + if spec.satisfies("+autotune"): + flags.append("-fallow-argument-mismatch") + elif spec.satisfies("^[virtuals=fortran] fj") and spec.satisfies("+openmp"): + flags.append("-Kparallel") + if name == "ldflags": + flags += [spec["blas"].libs.search_flags, spec["lapack"].libs.search_flags, "-lstdc++"] + flags += [spec["lapack"].libs.link_flags, spec["blas"].libs.link_flags] + if self.spec.satisfies("@2024.05.001,2025.01.001 %aocc"): + # fix an issue where main library and test suite containing duplicate symbols + flags.append("-Wl,--allow-multiple-definition") + + return (flags, None, None) def configure_args(self): spec = self.spec @@ -176,17 +215,9 @@ def configure_args(self): if not any(f in spec.target for f in simd_features): options.append("--enable-generic" + kernels) - if self.compiler.name == "gcc": - options.extend(["CFLAGS=-O3", "FCFLAGS=-O3 -ffree-line-length-none"]) - - if spec.satisfies("%aocc"): - options.extend(["FCFLAGS=-O3", "CFLAGS=-O3"]) - if spec.satisfies("%fj"): options.append("--disable-Fortran2008-features") options.append("--enable-FUGAKU") - if spec.satisfies("+openmp"): - options.extend(["FCFLAGS=-Kparallel"]) cuda_flag = "nvidia-gpu" if spec.satisfies("+cuda"): @@ -213,7 +244,16 @@ def configure_args(self): # Can't yet be changed to the new option --enable-amd-gpu-kernels # https://github.com/marekandreas/elpa/issues/55 options.append("--enable-amd-gpu") - options.append("CXX={0}".format(self.spec["hip"].hipcc)) + if spec.satisfies("@2025.01.001:"): + options.append( + "HIPCC={0} {1} {2}".format( + spec["hip"].hipcc, + spec["rocblas"].headers.include_flags, + spec["rocsolver"].headers.include_flags, + ) + ) + else: + options.append("CXX={0}".format(spec["hip"].hipcc)) if spec.satisfies("+gpu_streams"): options.append("--enable-gpu-streams=amd") @@ -223,12 +263,6 @@ def configure_args(self): options += self.enable_or_disable("openmp") - # Additional linker search paths and link libs - ldflags = [spec["blas"].libs.search_flags, spec["lapack"].libs.search_flags, "-lstdc++"] - libs = [spec["lapack"].libs.link_flags, spec["blas"].libs.link_flags] - - options += [f'LDFLAGS={" ".join(ldflags)}', f'LIBS={" ".join(libs)}'] - if self.spec.satisfies("+mpi"): options += [ "CC={0}".format(spec["mpi"].mpicc), @@ -244,5 +278,8 @@ def configure_args(self): options.append("--disable-silent-rules") options.append("--without-threading-support-check-during-build") + options.append("--disable-c-tests") + options.append("--disable-cpp-tests") + options.append("--disable-Fortran-tests") return options diff --git a/repos/spack_repo/builtin/packages/elsi/package.py b/repos/spack_repo/builtin/packages/elsi/package.py index f61b4555100..85112d2faf0 100644 --- a/repos/spack_repo/builtin/packages/elsi/package.py +++ b/repos/spack_repo/builtin/packages/elsi/package.py @@ -19,23 +19,12 @@ class Elsi(CMakePackage, CudaPackage): license("BSD-3-Clause") + version("master", branch="master") version("2.11.0", sha256="2e6929827ed9c99a32381ed9da40482e862c28608d59d4f27db7dcbcaed1520d") version("2.10.1", sha256="b3c7526d46a9139a26680787172a3df15bc648715a35bdf384053231e94ab829") - version( - "2.2.1", - sha256="5b4b2e8fa4b3b68131fe02cc1803a884039b89a1b1138af474af66453bec0b4d", - deprecated=True, - ) - version("master", branch="master") generator("ninja") - variant( - "add_underscore", - default=True, - description="Suffix C functions with an underscore", - when="@2.2.1", - ) variant( "elpa2_kernel", default="none", @@ -48,21 +37,9 @@ class Elsi(CMakePackage, CudaPackage): variant("use_external_elpa", default=True, description="Build ELPA using SPACK") variant("use_external_ntpoly", default=True, description="Build NTPoly using SPACK") variant( - "use_external_superlu", default=True, description="Use external SuperLU DIST", when="@:2.2" - ) - variant( - "use_external_pexsi", - default=True, - description="Use external PEXSI", - when="@2.3: +enable_pexsi", + "use_external_pexsi", default=True, description="Use external PEXSI", when="+enable_pexsi" ) variant("use_external_omm", default=True, description="Use external libOMM") - variant( - "use_mpi_iallgather", - default=True, - description="Use non-blocking collective MPI functions", - when="@:2.5", - ) variant( "internal_elpa_version", default="2020", @@ -95,9 +72,6 @@ class Elsi(CMakePackage, CudaPackage): depends_on("slepc~cuda", when="~cuda") depends_on("petsc+cuda", when="+cuda") depends_on("petsc~cuda", when="~cuda") - with when("+use_external_superlu"): - depends_on("superlu-dist+cuda", when="+cuda") - depends_on("superlu-dist~cuda", when="~cuda") with when("+enable_pexsi +use_external_pexsi"): depends_on("pexsi+fortran") depends_on("superlu-dist+cuda", when="+cuda") @@ -119,8 +93,6 @@ def cmake_args(self): libs_names.append("elpa") if self.spec.satisfies("+use_external_ntpoly"): libs_names.append("ntpoly") - if self.spec.satisfies("+use_external_superlu"): - libs_names.append("superlu-dist") if self.spec.satisfies("+use_external_pexsi"): libs_names.append("superlu-dist") libs_names.append("pexsi") @@ -152,16 +124,13 @@ def cmake_args(self): self.define("CMAKE_Fortran_COMPILER", self.spec["mpi"].mpifc), self.define("CMAKE_C_COMPILER", self.spec["mpi"].mpicc), self.define("CMAKE_CXX_COMPILER", self.spec["mpi"].mpicxx), - self.define_from_variant("ADD_UNDERSCORE", "add_underscore"), self.define_from_variant("ENABLE_PEXSI", "enable_pexsi"), self.define_from_variant("ENABLE_SIPS", "enable_sips"), self.define_from_variant("ENABLE_DLAF", "dlaf"), self.define_from_variant("USE_EXTERNAL_ELPA", "use_external_elpa"), self.define_from_variant("USE_EXTERNAL_NTPOLY", "use_external_ntpoly"), self.define_from_variant("USE_EXTERNAL_OMM", "use_external_omm"), - self.define_from_variant("USE_EXTERNAL_SUPERLU", "use_external_superlu"), self.define_from_variant("USE_EXTERNAL_PEXSI", "use_external_pexsi"), - self.define_from_variant("USE_MPI_IALLGATHER", "use_mpi_iallgather"), self.define("ENABLE_TESTS", self.run_tests), self.define("ENABLE_C_TESTS", self.run_tests), self.define_from_variant("USE_GPU_CUDA", "cuda"), @@ -179,7 +148,7 @@ def cmake_args(self): if self.spec.satisfies("^elpa+cuda"): elpa_gpu_string = "nvidia-gpu" if self.spec.satisfies("^elpa@2021:") else "gpu" - args.append(self.define(ELSI_ELPA_GPU_STRING, elpa_gpu_string)) + args.append(self.define("ELSI_ELPA_GPU_STRING", elpa_gpu_string)) args.append(self.define("INC_PATHS", ";".join(set(inc_paths)))) diff --git a/repos/spack_repo/builtin/packages/emacs/disable-posix-spawn-macos.patch b/repos/spack_repo/builtin/packages/emacs/disable-posix-spawn-macos.patch new file mode 100644 index 00000000000..70cc2bdd58b --- /dev/null +++ b/repos/spack_repo/builtin/packages/emacs/disable-posix-spawn-macos.patch @@ -0,0 +1,12 @@ +diff --git a/src/callproc.c b/src/callproc.c +--- a/src/callproc.c ++++ b/src/callproc.c +@@ -44,7 +44,7 @@ Copyright (C) 1985-1988, 1993-1995, 1999-2025 Free Software Foundation, + Haiku */ \ + && !defined HAIKU + # include +-# define USABLE_POSIX_SPAWN 1 ++# define USABLE_POSIX_SPAWN 0 + #else + # define USABLE_POSIX_SPAWN 0 + #endif diff --git a/repos/spack_repo/builtin/packages/emacs/package.py b/repos/spack_repo/builtin/packages/emacs/package.py index 730d1f7c446..881ec2f59c0 100644 --- a/repos/spack_repo/builtin/packages/emacs/package.py +++ b/repos/spack_repo/builtin/packages/emacs/package.py @@ -3,7 +3,6 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os -import sys from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack_repo.builtin.build_systems.gnu import GNUMirrorPackage @@ -30,6 +29,7 @@ class Emacs(AutotoolsPackage, GNUMirrorPackage): sanity_check_is_dir = ["share/emacs"] version("master", branch="master") + version("30.2", sha256="1d79a4ba4d6596f302a7146843fe59cf5caec798190bcc07c907e7ba244b076d") version("30.1", sha256="54404782ea5de37e8fcc4391fa9d4a41359a4ba9689b541f6bc97dd1ac283f6c") version("29.4", sha256="1adb1b9a2c6cdb316609b3e86b0ba1ceb523f8de540cfdda2aec95b6a5343abf") version("29.3", sha256="2de8df5cab8ac697c69a1c46690772b0cf58fe7529f1d1999582c67d927d22e4") @@ -60,8 +60,9 @@ 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") variant("treesitter", default=False, when="@29:", description="Build with tree-sitter support") @@ -86,9 +87,13 @@ class Emacs(AutotoolsPackage, GNUMirrorPackage): # Optional dependencies depends_on("gnutls", when="+tls") - depends_on("tree-sitter", when="+treesitter") - depends_on("gcc@11: +strip languages=jit", when="+native") + depends_on("gcc@11: languages=jit", when="+native") depends_on("jansson@2.7:", when="+json") + depends_on("sqlite@3", when="+sqlite") + + with when("+treesitter"): + depends_on("tree-sitter") + depends_on("tree-sitter@:0.25", when="@:30.2") # GUI dependencies with when("gui=x11"): @@ -106,6 +111,13 @@ class Emacs(AutotoolsPackage, GNUMirrorPackage): conflicts("gui=x11", when="platform=darwin", msg="Use gui=cocoa for macOS GUI support") conflicts("@:26.3", when="platform=darwin os=catalina") + # Xcode 26 adds support for `posix_spawn_file_actions_addchdir`, but older + # macOS kernels (for example, macOS 15) do not implement it. The newer CLI + # tools can therefore appear to support the feature even though the kernel + # lacks the required support, causing Emacs to segfault during compilation. + patch("disable-posix-spawn-macos.patch", when="@28:30.2 platform=darwin os=sequoia") + patch("disable-posix-spawn-macos.patch", when="@28:30.2 platform=darwin os=sonoma") + def configure_args(self): args = [] @@ -118,7 +130,7 @@ def configure_args(self): args.append("--disable-ns-self-contained") else: args.append("--without-x") - if sys.platform == "darwin": + if self.spec.satisfies("platform=darwin"): args.append("--without-ns") args.extend(self.with_or_without("native-compilation", variant="native")) @@ -167,6 +179,6 @@ def run_version_check(self, bin): if not os.path.exists(exe_path): raise SkipTest(f"{exe_path} is not installed") - exe = which(exe_path) + exe = which(exe_path, required=True) out = exe("--version", output=str.split, error=str.split) assert str(self.spec.version) in out diff --git a/repos/spack_repo/builtin/packages/emblmygff3/package.py b/repos/spack_repo/builtin/packages/emblmygff3/package.py index 753819dd797..6c33b65843a 100644 --- a/repos/spack_repo/builtin/packages/emblmygff3/package.py +++ b/repos/spack_repo/builtin/packages/emblmygff3/package.py @@ -21,11 +21,14 @@ class Emblmygff3(PythonPackage): license("GPL-3.0-or-later") + version("2.4", sha256="1a559f5c870959b40d7ee1a9752c7495ef52d4753f42e9a495fb816c734629a9") version("2.2", sha256="225b2b50da9064f779e164b2859506d7540d11fa78f7d41b5c0d94f02f7845c5") version("2.1", sha256="64aef403bc64088eca504b69acffb3fb16ec4448cd3d6c9692b7baf276b92fd2") - depends_on("py-setuptools", type="build") - depends_on("python@3.8.0:", type=("build", "run")) - depends_on("py-biopython@1.78:", type=("build", "run")) - depends_on("py-bcbio-gff@0.6.4:", type=("build", "run")) - depends_on("py-numpy@1.22:", type=("build", "run")) + depends_on("py-setuptools@:81", type="build") + with default_args(type=("build", "run")): + depends_on("python@3.8.0:") + depends_on("python@3.9:", when="@2.4:") + depends_on("py-biopython@1.78:") + depends_on("py-bcbio-gff@0.6.4:") + depends_on("py-numpy@1.22:") diff --git a/repos/spack_repo/builtin/packages/enca/package.py b/repos/spack_repo/builtin/packages/enca/package.py index 139d10c38af..94162932afa 100644 --- a/repos/spack_repo/builtin/packages/enca/package.py +++ b/repos/spack_repo/builtin/packages/enca/package.py @@ -28,5 +28,5 @@ class Enca(AutotoolsPackage): depends_on("libtool", type="build") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/energyplus/package.py b/repos/spack_repo/builtin/packages/energyplus/package.py index 3d66631f441..620421f5a99 100644 --- a/repos/spack_repo/builtin/packages/energyplus/package.py +++ b/repos/spack_repo/builtin/packages/energyplus/package.py @@ -3,7 +3,6 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import glob -import os from spack_repo.builtin.build_systems.generic import Package @@ -52,4 +51,4 @@ def install(self, spec, prefix): mkdirp(prefix.bin) for b in ["energyplus", "EPMacro", "ExpandObjects"]: - os.symlink(join_path(prefix.lib.energyplus, b), join_path(prefix.bin, b)) + symlink(join_path(prefix.lib.energyplus, b), join_path(prefix.bin, b)) diff --git a/repos/spack_repo/builtin/packages/entrezdirect/package.py b/repos/spack_repo/builtin/packages/entrezdirect/package.py index b6f91a4b836..cda9047a5e7 100644 --- a/repos/spack_repo/builtin/packages/entrezdirect/package.py +++ b/repos/spack_repo/builtin/packages/entrezdirect/package.py @@ -95,9 +95,8 @@ class Entrezdirect(Package): depends_on("perl-xml-simple", type="run") depends_on("python", type="run", when="@22:") - def url_for_version(self, ver): - pfx = "https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/" - return pfx + "{0}/edirect-{0}.tar.gz".format(ver.dotted) + def url_for_version(self, version): + return f"https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/{version.dotted}/edirect-{version.dotted}.tar.gz" def install(self, spec, prefix): for i in ["rchive", "transmute", "xtract"]: diff --git a/repos/spack_repo/builtin/packages/environment_modules/package.py b/repos/spack_repo/builtin/packages/environment_modules/package.py index e336cceb823..53ae8cf3039 100644 --- a/repos/spack_repo/builtin/packages/environment_modules/package.py +++ b/repos/spack_repo/builtin/packages/environment_modules/package.py @@ -13,13 +13,15 @@ class EnvironmentModules(Package): modification of a user's environment via module files. """ - homepage = "https://cea-hpc.github.io/modules/" - url = "https://github.com/cea-hpc/modules/releases/download/v5.5.0/modules-5.5.0.tar.gz" - git = "https://github.com/cea-hpc/modules.git" + homepage = "https://envmodules.io" + url = "https://github.com/envmodules/modules/releases/download/v5.6.1/modules-5.6.1.tar.gz" + git = "https://github.com/envmodules/modules.git" maintainers("xdelaruelle") version("main", branch="main") + version("5.6.1", sha256="b175e57860e62d87b6118a79cc2d76e857e5774a9ff78558d6726122760b0034") + version("5.6.0", sha256="9dd78f1543012acd3a1a14ba86dc1dca8f7d176396ea3f0027a92dcf5ff2057c") version("5.5.0", sha256="ad0e360c7adc2515a99836863d98499b3ad89cd7548625499b20293845b040cb") version("5.4.0", sha256="586245cbf9420866078d8c28fce8ef4f192530c69a0f368f51e848340dcf3b90") version("5.3.1", sha256="d02f9ce4f8baf6c99edceb7c73bfdd1e97d77bcc4725810b86efed9f58dda962") @@ -60,7 +62,13 @@ class EnvironmentModules(Package): url="http://prdownloads.sourceforge.net/modules/modules-3.2.10.tar.gz", ) - variant("X", default=True, description="Build with X functionality") + variant("X", default=True, when="@:3.2", description="Build with X functionality") + + # Enable all new features that are disabled by default due to the substantial behavior changes + # see https://modules.readthedocs.io/en/latest/INSTALL.html#instopt-enable-new-features + variant( + "new-features", default=True, when="@5.0:", description="Build with new features enabled" + ) depends_on("c", type="build") # generated @@ -82,6 +90,13 @@ class EnvironmentModules(Package): depends_on("tcl@8.5:8", type=("build", "link", "run"), when="@5.0.0:5.4.0") depends_on("tcl@8.5:", type=("build", "link", "run"), when="@5.5.0:") + def flag_handler(self, name, flags): + if name == "cflags": + if self.spec.satisfies("@:3.2"): + flags.append("-Wno-error=implicit-function-declaration") + flags.append("-Wno-error=int-conversion") + return (flags, None, None) + def install(self, spec, prefix): tcl = spec["tcl"] @@ -93,15 +108,15 @@ def install(self, spec, prefix): ] # ./configure script on version 4.5.2 breaks when specific options are - # set (see https://github.com/cea-hpc/modules/issues/354) + # set (see https://github.com/envmodules/modules/issues/354) if not spec.satisfies("@4.5.2"): config_args.extend(["--disable-dependency-tracking", "--disable-silent-rules"]) if spec.satisfies("~X"): - config_args = ["--without-x"] + config_args + config_args.extend(["--without-x"]) - if self.spec.satisfies("@5.5.0:"): - config_args.extend(["--enable-conflict-unload"]) + if spec.satisfies("+new-features"): + config_args.extend(["--enable-new-features"]) if self.spec.satisfies("@4.4.0:4.8"): config_args.extend( diff --git a/repos/spack_repo/builtin/packages/enzo/package.py b/repos/spack_repo/builtin/packages/enzo/package.py index c822aca87ed..9f748c0a078 100644 --- a/repos/spack_repo/builtin/packages/enzo/package.py +++ b/repos/spack_repo/builtin/packages/enzo/package.py @@ -15,7 +15,6 @@ class Enzo(MakefilePackage): git = "https://github.com/enzo-project/enzo-dev.git" version("main", branch="main") - version("master", branch="main", deprecated=True) version("2.6.1", sha256="280270accfc1ddb60e92cc98ca538a3e5787e8cc93ed58fb5c3ab75db8c4b048") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/enzyme/package.py b/repos/spack_repo/builtin/packages/enzyme/package.py index debd5bb30e1..9bea57ce15e 100644 --- a/repos/spack_repo/builtin/packages/enzyme/package.py +++ b/repos/spack_repo/builtin/packages/enzyme/package.py @@ -25,6 +25,10 @@ class Enzyme(CMakePackage): root_cmakelists_dir = "enzyme" version("main", branch="main") + version("0.0.206", sha256="600fd2db370fb40abb6411e0e80df524aea03f2c1ad50a2765ecaab9e1115c77") + version("0.0.196", sha256="2b9cfcb7c34e56fc8191423042df06241cf32928eefbb113ac3c5199e3361cb2") + version("0.0.186", sha256="125e612df0b6b82b07e1e13218c515bc54e04aa1407e57f4f31d3abe995f4714") + version("0.0.180", sha256="d65a8e889413bb9518da00d65524c07352f1794b55c163f0db6828844c779ed4") version("0.0.173", sha256="b8477fb5bead9e9ece76d450ebd0afee99914235c6e1a6ef8c05bf288e3c0478") version("0.0.172", sha256="688200164787d543641cb446cff20f6a8e8b5c92bb7032ebe7f867efa67ceafb") version("0.0.135", sha256="49c798534faec7ba524a3ed053dd4352d690a44d3cad5a14915c9398dc9b175b") @@ -41,23 +45,37 @@ class Enzyme(CMakePackage): depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated - depends_on("llvm@7:12", when="@0.0.13:0.0.15") - depends_on("llvm@7:14", when="@0.0.32:0.0.47") - depends_on("llvm@7:14", when="@0.0.48:0.0.68") - depends_on("llvm@9:16", when="@0.0.69:0.0.79") - depends_on("llvm@11:16", when="@0.0.80:0.0.99") - depends_on("llvm@11:19", when="@0.0.100:0.0.148") - depends_on("llvm@15:19", when="@0.0.149:") + depends_on("libllvm@7:12", when="@0.0.13:0.0.15") + depends_on("libllvm@7:14", when="@0.0.32:0.0.47") + depends_on("libllvm@7:14", when="@0.0.48:0.0.68") + depends_on("libllvm@9:16", when="@0.0.69:0.0.79") + 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("cmake@3.13:", type="build") def cmake_args(self): - spec = self.spec - args = ["-DLLVM_DIR=" + spec["llvm"].prefix.lib + "/cmake/llvm"] + args = ["-DLLVM_DIR=" + self.llvm_prefix + "/lib/cmake/llvm"] return args + @property + def llvm_prefix(self): + spec = self.spec + if spec.satisfies("%libllvm=llvm"): + return spec["llvm"].prefix + if spec.satisfies("%libllvm=llvm-amdgpu"): + return spec["llvm-amdgpu"].prefix + raise InstallError("Unknown 'libllvm' provider!") + + @property + def llvm_version(self): + llvm_config = Executable(self.llvm_prefix + "/bin/llvm-config") + return Version(llvm_config("--version", output=str)) + @property def libs(self): - ver = self.spec["llvm"].version.up_to(1) + ver = self.llvm_version.up_to(1) libs = ["LLVMEnzyme-{0}".format(ver), "ClangEnzyme-{0}".format(ver)] if self.version >= Version("0.0.32"): # TODO actual lower bound libs.append("LLDEnzyme-{0}".format(ver)) @@ -69,14 +87,14 @@ def setup_dependent_build_environment( ) -> None: # Get the LLVMEnzyme, ClangEnzyme and LLDEnzyme lib paths and set # environment variables - ver = self.spec["llvm"].version.up_to(1) + ver = self.llvm_version.up_to(1) llvm = find_libraries("LLVMEnzyme-{0}".format(ver), root=self.prefix, recursive=True) - env.set("LLVMENZYME", llvm) + env.set("LLVMENZYME", ";".join(llvm)) clang = find_libraries("ClangEnzyme-{0}".format(ver), root=self.prefix, recursive=True) - env.set("CLANGENZYME", clang) + env.set("CLANGENZYME", ";".join(clang)) if self.version >= Version("0.0.32"): # TODO actual lower bound lld = find_libraries("LLDEnzyme-{0}".format(ver), root=self.prefix, recursive=True) - env.set("LLDMENZYME", lld) + env.set("LLDENZYME", ";".join(lld)) diff --git a/repos/spack_repo/builtin/packages/eospac/package.py b/repos/spack_repo/builtin/packages/eospac/package.py index d5bf24fec3d..36ce59974a4 100644 --- a/repos/spack_repo/builtin/packages/eospac/package.py +++ b/repos/spack_repo/builtin/packages/eospac/package.py @@ -17,12 +17,6 @@ class Eospac(Package): list_url = "https://laws.lanl.gov/projects/data/eos/eospacReleases.php" maintainers("KineticTheory") - # - An EOSPAC release labeled "beta" doesn't always imply that the release - # is less suitable for production. According to the current EOSPAC - # release procedure, even a release that only fixes known bugs in a - # previous stable release will appear first as a new beta. - # - alpha and beta versions are marked with 'deprecated=True' to help - # spack's version comparison. version( "6.5.12", sha256="62d5f4a6a30c9acb426bd6bd972edc7fad392e5b941f950126ed0d3be5fd5162", @@ -68,75 +62,21 @@ class Eospac(Package): sha256="4e539418f773a5bd00dc49a5000ca857e5228cc5e83f198d46827a5671d34cff", url="https://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.5.0_6b10f4ccc1fc333b5d6023b93ab194ab0621d5ae.tgz", ) - version( - "6.5.0beta", - sha256="42e6d491aaf296e4d6ab946481aaafd64b0a4e9801fc2ff098cc16aa118f54c8", - url="https://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.5.0beta_859ce5b1b8c4106057ca61d03a6c9c713a7f0328.tgz", - deprecated=True, - ) - version( - "6.5.0alpha.1", - sha256="c7334342dd2e071e17c60d8fabb11d2908c9d48c9b49ea83c3609a10b7b8877b", - url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.5.0alpha.1_62053188b9842842e41508c54196c533e0b91e51.tgz", - deprecated=True, - ) version( "6.4.2", sha256="13627a5c94d3a456659d1bba0f3cec157380933fbd401e13e25906166150a252", url="https://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.2_e2f7906a0863932e3d65d329f789c4b90c6be58d.tgz", ) - version( - "6.4.2beta", - sha256="635b94f1ec7558deca92a3858c92db0f4437170252bb114cbdb809b74b6ee870", - url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.2beta_a62baf70708536f6fb5486e315c730fa76c1f6b5.tgz", - deprecated=True, - ) version( "6.4.1", sha256="2310c49bd7a60cad41d2cb1059c5f0a1904f0c778b164937182382df326ca003", url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.1_0cc1bc21a8bb1adadbae0dd3a2135790e8119320.tgz", ) - version( - "6.4.1beta", - sha256="479074a7be724760f8f1f90a8673f6197b7c5aa1ff76242ecf3790c9016e08c3", - url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.1beta_b651322c74cf5729732afd5d77c66c41d677be5e.tgz", - deprecated=True, - ) - version( - "6.4.1alpha.2", - sha256="cd075e7a41137da85ee0680c64534675d50979516e9639b17fa004619651ac47", - url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.1alpha.2_e2aaba283f57511b94afa9283e5ee794b03439dc.tgz", - deprecated=True, - ) version( "6.4.0", sha256="15a953beac735c68431afe86ffe33323d540d0fbbbec03ba79438dd29736051d", url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0_612ea8c9b8ffa6d9175d9118955571d9107f1e3c.tgz", ) - version( - "6.4.0beta.4", - sha256="0ebfd8badff575ea77444aa978629dbdca3135a0b5eb373b8daba058773d4635", - url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0beta.4_aff6429bb6868de31a980278bafa13487c2ce83f.tgz", - deprecated=True, - ) - version( - "6.4.0beta.3", - sha256="9f387ca5356519494c6f3f27adb0c165cf9f9e15e3355a67bf940a4a92eebdab", - url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0beta.3_90ff265f62aa1780bfcd0a62dad807b6be6ed461.tgz", - deprecated=True, - ) - version( - "6.4.0beta.2", - sha256="f9db46cd6c62a6f83960d802350f3e37675921af102969b293c02eb797558a53", - url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0beta.2_69196eadbc77506561eef711f19d2f03b4ab0ffa.tgz", - deprecated=True, - ) - version( - "6.4.0beta.1", - sha256="14c5c804e5f628f41e8ed80bcee5a80adeb6c6f3d130715421ca99a30c7eb7e2", - url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0beta.1_r20171213193219.tgz", - deprecated=True, - ) version( "6.3.1", sha256="aa1112c4251c9c3c2883a7ab2c7f2abff2c339f29dbbf8421ef88b0c9df904f8", @@ -149,11 +89,11 @@ class Eospac(Package): depends_on("gmake", type="build") # This patch allows the use of spack's compile wrapper 'flang' - patch("flang.patch", when="@:6.4.0beta.2%clang") + patch("flang.patch", when="@:6.3%clang") patch("frt.patch", when="%fj") # This patch corrects EOSPAC's selection of compiler flags when # compilers are specified using absolute pathnames. - patch("cpuinfo_comp_flags_key.patch", when="@:6.4.1,6.4.2beta") + patch("cpuinfo_comp_flags_key.patch", when="@:6.4.1") # This patchset corrects EOSPAC's selection of compiler flags when # intel-classic@2021 is used. patch("650-ic2021.patch", when="@6.5.0%intel") @@ -192,7 +132,3 @@ def install(self, spec, prefix): "INSTALLED_BIN_DIR={0}".format(prefix.bin), *compilerArgs, ) - # fix conflict with linux's getopt for 6.4.0beta.2 - if spec.satisfies("@6.4.0beta.2"): - with working_dir(prefix.bin): - move("getopt", "driver_getopt") diff --git a/repos/spack_repo/builtin/packages/epic/package.py b/repos/spack_repo/builtin/packages/epic/package.py new file mode 100644 index 00000000000..44d104b8d3d --- /dev/null +++ b/repos/spack_repo/builtin/packages/epic/package.py @@ -0,0 +1,53 @@ +# 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 Epic(CMakePackage): + """EpIC is a modern and versatile Monte Carlo generator used in + studying exclusive processes. These processes are sensitive to + generalised parton distributions (GPDs), which describe the 3D + partonic structure of hadrons in the language of quantum + chromodynamics (QCD). EpIC has been developed to support the + current and future experimental programmes, like Electron-Ion + Collider (EIC) to be constructed in Brookhaven National Laboratory.""" + + homepage = "https://pawelsznajder.github.io/epic" + url = "https://github.com/pawelsznajder/epic/archive/refs/tags/v.1.1.8.tar.gz" + git = "https://github.com/pawelsznajder/epic.git" + + tags = ["hep"] + + maintainers("wdconinc") + + license("GPL-3.0", checked_by="wdconinc") + + version("1.1.8", sha256="f2b9add278e614fb012856e7b9df676789cb47d33af66438e7962a849f025339") + + depends_on("cxx", type="build") + depends_on("cmake@3.5:", type="build") + + depends_on("partons") + depends_on("partons-elementary-utils") + depends_on("partons-numa") + depends_on("sfml@:2") + depends_on("cln") + depends_on("gsl") + depends_on("apfelxx") + depends_on("lhapdf") + depends_on("libxml2") + depends_on("root") + depends_on("hepmc3 +rootio") + depends_on("boost") + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install(join_path(self.stage.source_path, "bin", "epic"), prefix.bin) + install_tree( + join_path(self.stage.source_path, "data"), + join_path(prefix.share, "epic", "data"), + ) diff --git a/repos/spack_repo/builtin/packages/epics_base/package.py b/repos/spack_repo/builtin/packages/epics_base/package.py index 7bf14c085d8..87f6d004868 100644 --- a/repos/spack_repo/builtin/packages/epics_base/package.py +++ b/repos/spack_repo/builtin/packages/epics_base/package.py @@ -19,7 +19,12 @@ class EpicsBase(MakefilePackage): maintainers("glenn-horton-smith") + version("7.0.9", sha256="acd62c9b97b60caea9303cc3aab922dbf2bc3bfb3d20e0027110ffe4c906a6c7") + version("7.0.8.1", sha256="6c93a5e09b21392adbb3de423605d428ee4ddb1272fc708a251b082272fa73f5") + version("7.0.8", sha256="9232b53afa617d0b95cfcb93952fde100342f2e29e829d34fa66ed61410439d4") + version("7.0.7", sha256="44d6980e19c7ad097b9e3d20c3401fb20699ed346afc307c8d1b44cf7109d475") version("7.0.6.1", sha256="8ff318f25e2b70df466f933636a2da85e4b0c841504b9e89857652a4786b6387") + version("3.15.9", sha256="93fcc2f19102d6d211ddc706812391b221267e526f114386ed1e3097c9354c8d") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/eq_r/package.py b/repos/spack_repo/builtin/packages/eq_r/package.py index 530fbd8e698..d01901fc3d3 100644 --- a/repos/spack_repo/builtin/packages/eq_r/package.py +++ b/repos/spack_repo/builtin/packages/eq_r/package.py @@ -15,7 +15,7 @@ class EqR(AutotoolsPackage): Installs EQ/R. """ - homepage = "http://emews.org" + homepage = "https://emews.org" url = "https://github.com/emews/EQ-R/archive/1.0.tar.gz" git = "https://github.com/emews/EQ-R.git" @@ -48,11 +48,7 @@ def configure_args(self): args = ["--with-tcl=" + self.spec["tcl"].prefix] r_location = "{0}/rlib/R".format(self.spec["r"].prefix) if not os.path.exists(r_location): - rscript = which("Rscript") - if rscript is not None: - r_location = rscript("-e", "cat(R.home())", output=str) - else: - msg = "couldn't locate Rscript on your PATH" - raise RuntimeError(msg) + rscript = which("Rscript", required=True) + r_location = rscript("-e", "cat(R.home())", output=str) args.append("--with-r={0}".format(r_location)) return args diff --git a/repos/spack_repo/builtin/packages/erf/package.py b/repos/spack_repo/builtin/packages/erf/package.py new file mode 100644 index 00000000000..369eb2c388a --- /dev/null +++ b/repos/spack_repo/builtin/packages/erf/package.py @@ -0,0 +1,145 @@ +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage + +from spack.package import * + + +def submodules(package): + submodules = [] + + if package.spec.satisfies("+noahmp"): + submodules.append("Submodules/Noah-MP") + + return submodules + + +class Erf(CMakePackage, CudaPackage): + """ERF solves the compressible Navier-Stokes on a Arakawa C-grid + for large-scale weather modeling. + """ + + homepage = "https://erf.readthedocs.io/en/latest/index.html" + url = "https://github.com/erf-model/ERF/archive/refs/tags/25.10.tar.gz" + git = "https://github.com/erf-model/ERF.git" + + def url_for_version(self, version): + return f"https://github.com/erf-model/ERF/archive/refs/tags/{version}.tar.gz" + + test_requires_compiler = True + + maintainers("larenspear") + + license("BSD-3-Clause", checked_by="larenspear") + + version("26.04", tag="26.04", submodules=submodules) + version("26.03", tag="26.03", submodules=submodules) + version("26.02", tag="26.02", submodules=submodules) + version("26.01", tag="26.01", submodules=submodules) + version("25.12", tag="25.12", submodules=submodules) + version("25.11", tag="25.11", submodules=submodules) + version("25.10", tag="25.10", submodules=submodules) + version("25.08", tag="25.08", submodules=submodules) + version("25.07", tag="25.07", submodules=submodules) + version("25.06", tag="25.06", submodules=submodules) + version("25.05", tag="25.05", submodules=submodules) + version("25.04", tag="25.04", submodules=submodules) + version("25.03", tag="25.03", submodules=submodules) + version("25.01", tag="25.01", submodules=submodules) + version("24.11", tag="24.11", submodules=submodules) + version("24.10", tag="24.10", submodules=submodules) + version("24.09", tag="24.09", submodules=submodules) + version("24.08", tag="24.08", submodules=submodules) + version("24.06", tag="24.06", submodules=submodules) + version("24.05", tag="24.05", submodules=submodules) + version("24.04", tag="24.04", submodules=submodules) + version("24.03", tag="24.03", submodules=submodules) + version("24.02", tag="24.02", submodules=submodules) + version("24.01", tag="24.01", submodules=submodules) + version("23.12", tag="23.12", submodules=submodules) + version("23.11", tag="23.11", submodules=submodules) + version("23.10", tag="23.10", submodules=submodules) + + variant("mpi", default=False, description="Enable MPI support") + variant("openmp", default=False, description="Enable OpenMP support") + variant("netcdf", default=False, description="Enable NetCDF support") + variant("particles", default=False, description="Enable particle support") + variant("multiblock", default=False, description="Enable multiblock support") + variant("tests", default=False, description="Enable tests") + variant("fcompare", default=False, description="Enable fcompare") + variant("fft", default=False, description="Enable FFT support") + variant("noahmp", default=False, description="Enable Noah-MP") + + with default_args(type="build"): + depends_on("cmake@3.20:") + depends_on("git") + depends_on("c") + depends_on("cxx") + depends_on("fortran") + depends_on("pkgconfig") + + with default_args(type=("build", "link")): + for v in ("mpi", "openmp", "cuda", "particles"): + depends_on(f"amrex+{v}", when=f"+{v}") + depends_on(f"amrex~{v}", when=f"~{v}") + for sm in CudaPackage.cuda_arch_values: + depends_on(f"amrex+cuda cuda_arch={sm}", when=f"+cuda cuda_arch={sm}") + depends_on("mpi", when="+mpi") + depends_on("cuda@11.0:", when="+cuda") + depends_on("fftw", when="+fft") + + with when("+netcdf"): + depends_on("amrex+mpi") + depends_on("netcdf-c+mpi+parallel-netcdf") + depends_on("netcdf-fortran") + depends_on("hdf5+mpi", when="+mpi") + + conflicts("+openmp", when="+cuda", msg="Cannot enable both OpenMP and CUDA") + conflicts("+fft", when="~mpi", msg="FFT support requires MPI") + + def cmake_args(self): + args = [ + self.define_from_variant("ERF_ENABLE_MPI", "mpi"), + self.define_from_variant("ERF_ENABLE_OMP", "openmp"), + self.define_from_variant("ERF_ENABLE_NETCDF", "netcdf"), + self.define_from_variant("ERF_ENABLE_PARTICLES", "particles"), + self.define_from_variant("ERF_ENABLE_MULTIBLOCK", "multiblock"), + self.define_from_variant("ERF_BUILD_TESTS", "tests"), + self.define_from_variant("ERF_BUILD_FCOMPARE", "fcompare"), + self.define_from_variant("ERF_ENABLE_FFT", "fft"), + self.define_from_variant("ERF_ENABLE_NOAHMP", "noahmp"), + self.define("ERF_DIM", "3"), + self.define("ERF_USE_INTERNAL_AMREX", False), + self.define("ERF_CLONE_AMREX", False), + self.define("GIT_SUBMODULE_PROTOCOL", "https"), + self.define("MPIEXEC_PREFLAGS", "--oversubscribe"), + self.define("ERF_DIM", "3"), + ] + + if "+netcdf" in self.spec: + args.extend( + [ + self.define("NetCDF_C_PATH", self.spec["netcdf-c"].prefix), + self.define("NetCDF_FORTRAN_PATH", self.spec["netcdf-fortran"].prefix), + ] + ) + + if "+cuda" in self.spec: + archs = self.spec.variants["cuda_arch"].value or ["80"] + args.append(self.define("CMAKE_CUDA_ARCHITECTURES", ";".join(archs))) + args.extend( + [ + self.define("ERF_ENABLE_CUDA", "ON"), + self.define("CUDAToolkit_ROOT", self.spec["cuda"].prefix), + ] + ) + + return args + + def setup_build_environment(self, env): + super().setup_build_environment(env) + env.set("AMREX_HOME", self.spec["amrex"].prefix) + if "+openmp" in self.spec: + if "%clang" in self.spec or "%gcc" in self.spec: + env.append_flags("CFLAGS", self.compiler.openmp_flag) + env.append_flags("CXXFLAGS", self.compiler.openmp_flag) + env.append_flags("FFLAGS", self.compiler.openmp_flag) diff --git a/repos/spack_repo/builtin/packages/esmf/cstddef.patch b/repos/spack_repo/builtin/packages/esmf/cstddef.patch deleted file mode 100644 index da35a08058b..00000000000 --- a/repos/spack_repo/builtin/packages/esmf/cstddef.patch +++ /dev/null @@ -1,159 +0,0 @@ -From 7980f9c7c5ca8cfe88f684c962d4d02b23734ba7 Mon Sep 17 00:00:00 2001 -From: Walter Spector -Date: Wed, 2 May 2018 13:36:17 -0700 -Subject: [PATCH] Include for size_t where needed with gfortran and - PGI - especially on darwin. - ---- - build_config/Cygwin.gfortran.default/ESMC_Conf.h | 1 + - build_config/Darwin.gfortran.default/ESMC_Conf.h | 1 + - build_config/Darwin.gfortranclang.default/ESMC_Conf.h | 1 + - build_config/Darwin.pgi.default/ESMC_Conf.h | 2 +- - build_config/Linux.gfortran.default/ESMC_Conf.h | 1 + - build_config/Linux.gfortranclang.default/ESMC_Conf.h | 1 + - build_config/Linux.pgi.default/ESMC_Conf.h | 2 +- - build_config/Linux.pgigcc.default/ESMC_Conf.h | 2 +- - build_config/MinGW.gfortran.default/ESMC_Conf.h | 1 + - build_config/Unicos.gfortran.default/ESMC_Conf.h | 1 + - build_config/Unicos.pgi.default/ESMC_Conf.h | 2 +- - 11 files changed, 11 insertions(+), 4 deletions(-) - -diff --git a/build_config/Cygwin.gfortran.default/ESMC_Conf.h b/build_config/Cygwin.gfortran.default/ESMC_Conf.h -index 59938a9c34..bd30b3adb6 100644 ---- a/build_config/Cygwin.gfortran.default/ESMC_Conf.h -+++ b/build_config/Cygwin.gfortran.default/ESMC_Conf.h -@@ -31,6 +31,7 @@ Licensed under the University of Illinois-NCSA License. - // Typedef to match the data type of the 'hidden' string length - // argument that Fortran uses when passing CHARACTER strings. - #if (__GNUC__ > 7) -+#include - typedef size_t ESMCI_FortranStrLenArg; - #else - typedef int ESMCI_FortranStrLenArg; -diff --git a/build_config/Darwin.gfortran.default/ESMC_Conf.h b/build_config/Darwin.gfortran.default/ESMC_Conf.h -index a5e44c2bbc..7efb245743 100644 ---- a/build_config/Darwin.gfortran.default/ESMC_Conf.h -+++ b/build_config/Darwin.gfortran.default/ESMC_Conf.h -@@ -31,6 +31,7 @@ Licensed under the University of Illinois-NCSA License. - // Typedef to match the data type of the 'hidden' string length - // argument that Fortran uses when passing CHARACTER strings. - #if (__GNUC__ > 7) -+#include - typedef size_t ESMCI_FortranStrLenArg; - #else - typedef int ESMCI_FortranStrLenArg; -diff --git a/build_config/Darwin.gfortranclang.default/ESMC_Conf.h b/build_config/Darwin.gfortranclang.default/ESMC_Conf.h -index a5e44c2bbc..7efb245743 100644 ---- a/build_config/Darwin.gfortranclang.default/ESMC_Conf.h -+++ b/build_config/Darwin.gfortranclang.default/ESMC_Conf.h -@@ -31,6 +31,7 @@ Licensed under the University of Illinois-NCSA License. - // Typedef to match the data type of the 'hidden' string length - // argument that Fortran uses when passing CHARACTER strings. - #if (__GNUC__ > 7) -+#include - typedef size_t ESMCI_FortranStrLenArg; - #else - typedef int ESMCI_FortranStrLenArg; -diff --git a/build_config/Darwin.pgi.default/ESMC_Conf.h b/build_config/Darwin.pgi.default/ESMC_Conf.h -index 717f6d8825..4ce0178f48 100644 ---- a/build_config/Darwin.pgi.default/ESMC_Conf.h -+++ b/build_config/Darwin.pgi.default/ESMC_Conf.h -@@ -27,7 +27,7 @@ Licensed under the University of Illinois-NCSA License. - #if (ESMF_PGIVERSION_MAJOR < 12) - typedef int ESMCI_FortranStrLenArg; - #else --#include -+#include - typedef size_t ESMCI_FortranStrLenArg; - #endif - #endif -diff --git a/build_config/Linux.gfortran.default/ESMC_Conf.h b/build_config/Linux.gfortran.default/ESMC_Conf.h -index cbde731331..e8edf9364d 100644 ---- a/build_config/Linux.gfortran.default/ESMC_Conf.h -+++ b/build_config/Linux.gfortran.default/ESMC_Conf.h -@@ -31,6 +31,7 @@ Licensed under the University of Illinois-NCSA License. - // Typedef to match the data type of the 'hidden' string length - // argument that Fortran uses when passing CHARACTER strings. - #if (__GNUC__ > 7) -+#include - typedef size_t ESMCI_FortranStrLenArg; - #else - typedef int ESMCI_FortranStrLenArg; -diff --git a/build_config/Linux.gfortranclang.default/ESMC_Conf.h b/build_config/Linux.gfortranclang.default/ESMC_Conf.h -index cbde731331..e8edf9364d 100644 ---- a/build_config/Linux.gfortranclang.default/ESMC_Conf.h -+++ b/build_config/Linux.gfortranclang.default/ESMC_Conf.h -@@ -31,6 +31,7 @@ Licensed under the University of Illinois-NCSA License. - // Typedef to match the data type of the 'hidden' string length - // argument that Fortran uses when passing CHARACTER strings. - #if (__GNUC__ > 7) -+#include - typedef size_t ESMCI_FortranStrLenArg; - #else - typedef int ESMCI_FortranStrLenArg; -diff --git a/build_config/Linux.pgi.default/ESMC_Conf.h b/build_config/Linux.pgi.default/ESMC_Conf.h -index 1c2ccaa9b2..618b3edd09 100644 ---- a/build_config/Linux.pgi.default/ESMC_Conf.h -+++ b/build_config/Linux.pgi.default/ESMC_Conf.h -@@ -35,7 +35,7 @@ is a c++-11 feature. - #if (ESMF_PGIVERSION_MAJOR < 12) - typedef int ESMCI_FortranStrLenArg; - #else --#include -+#include - typedef size_t ESMCI_FortranStrLenArg; - #endif - #endif -diff --git a/build_config/Linux.pgigcc.default/ESMC_Conf.h b/build_config/Linux.pgigcc.default/ESMC_Conf.h -index a374e8230c..cd8fb278b7 100644 ---- a/build_config/Linux.pgigcc.default/ESMC_Conf.h -+++ b/build_config/Linux.pgigcc.default/ESMC_Conf.h -@@ -27,7 +27,7 @@ Licensed under the University of Illinois-NCSA License. - #if (ESMF_PGIVERSION_MAJOR < 12) - typedef int ESMCI_FortranStrLenArg; - #else --#include -+#include - typedef size_t ESMCI_FortranStrLenArg; - #endif - #endif -diff --git a/build_config/MinGW.gfortran.default/ESMC_Conf.h b/build_config/MinGW.gfortran.default/ESMC_Conf.h -index b0c26fcb18..6fe050d7c6 100644 ---- a/build_config/MinGW.gfortran.default/ESMC_Conf.h -+++ b/build_config/MinGW.gfortran.default/ESMC_Conf.h -@@ -31,6 +31,7 @@ Licensed under the University of Illinois-NCSA License. - // Typedef to match the data type of the 'hidden' string length - // argument that Fortran uses when passing CHARACTER strings. - #if (__GNUC__ > 7) -+#include - typedef size_t ESMCI_FortranStrLenArg; - #else - typedef int ESMCI_FortranStrLenArg; -diff --git a/build_config/Unicos.gfortran.default/ESMC_Conf.h b/build_config/Unicos.gfortran.default/ESMC_Conf.h -index c536a57351..2e84350051 100644 ---- a/build_config/Unicos.gfortran.default/ESMC_Conf.h -+++ b/build_config/Unicos.gfortran.default/ESMC_Conf.h -@@ -31,6 +31,7 @@ Licensed under the University of Illinois-NCSA License. - // Typedef to match the data type of the 'hidden' string length - // argument that Fortran uses when passing CHARACTER strings. - #if (__GNUC__ > 7) -+#include - typedef size_t ESMCI_FortranStrLenArg; - #else - typedef int ESMCI_FortranStrLenArg; -diff --git a/build_config/Unicos.pgi.default/ESMC_Conf.h b/build_config/Unicos.pgi.default/ESMC_Conf.h -index 0be960389a..8da044868c 100644 ---- a/build_config/Unicos.pgi.default/ESMC_Conf.h -+++ b/build_config/Unicos.pgi.default/ESMC_Conf.h -@@ -27,7 +27,7 @@ Licensed under the University of Illinois-NCSA License. - #if (ESMF_PGIVERSION_MAJOR < 12) - typedef int ESMCI_FortranStrLenArg; - #else --#include -+#include - typedef size_t ESMCI_FortranStrLenArg; - #endif - #endif --- -2.17.1 - diff --git a/repos/spack_repo/builtin/packages/esmf/package.py b/repos/spack_repo/builtin/packages/esmf/package.py index 2050a57b70f..b36583c3ca4 100644 --- a/repos/spack_repo/builtin/packages/esmf/package.py +++ b/repos/spack_repo/builtin/packages/esmf/package.py @@ -26,7 +26,9 @@ class Esmf(MakefilePackage, PythonExtension): url = "https://github.com/esmf-org/esmf/archive/v8.4.1.tar.gz" git = "https://github.com/esmf-org/esmf.git" - maintainers("climbfuji", "jedwards4b", "AlexanderRichert-NOAA", "theurich", "uturuncoglu") + maintainers( + "climbfuji", "jedwards4b", "AlexanderRichert-NOAA", "theurich", "uturuncoglu", "danrosen25" + ) # Develop is a special name for spack and is always considered the newest version version("develop", branch="develop") @@ -43,30 +45,12 @@ class Esmf(MakefilePackage, PythonExtension): version("8.5.0", sha256="acd0b2641587007cc3ca318427f47b9cae5bfd2da8d2a16ea778f637107c29c4") version("8.4.2", sha256="969304efa518c7859567fa6e65efd960df2b4f6d72dbf2c3f29e39e4ab5ae594") version("8.4.1", sha256="1b54cee91aacaa9df400bd284614cbb0257e175f6f3ec9977a2d991ed8aa1af6") - version( - "8.4.0", - sha256="28531810bf1ae78646cda6494a53d455d194400f19dccd13d6361871de42ed0f", - deprecated=True, - ) version("8.3.1", sha256="6c39261e55dcdf9781cdfa344417b9606f7f961889d5ec626150f992f04f146d") - version( - "8.3.0", - sha256="0ff43ede83d1ac6beabd3d5e2a646f7574174b28a48d1b9f2c318a054ba268fd", - deprecated=True, - ) version("8.2.0", sha256="27866c31fdb63c58e78211de970470ca02d274f5d4d6d97e94284d63b1c1d9e4") version("8.1.1", sha256="629690c7a488e84ac7252470349458d7aaa98b54c260f8b3911a2e2f3e713dd0") - version( - "8.1.0", - sha256="226219ec61cace89f4678eece93188155d7cbb50a13ec4c9c93174ef3d58d7c0", - deprecated=True, - ) version("8.0.1", sha256="13ce2ca0ae622548c00f7bb18317fb100235ca8b7ddbfac7e201a339e8eb05a3") - version( - "8.0.0", - sha256="4b7904fdc935710071c4aafb9370834d40c2ee06365a8b5845317be8f71bf51f", - deprecated=True, - ) + + # deprecated versions version( "7.1.0r", sha256="e08f21544083dcbe162b472852e321f8df14f4f711f35508403d32df438367a7", @@ -151,10 +135,6 @@ class Esmf(MakefilePackage, PythonExtension): patch("longtoint.patch", when="@:8.3.2 %cce@14:") patch("longtoint.patch", when="@:8.3.2 %oneapi@2022:") - # Missing include file for newer gcc compilers - # https://trac.macports.org/ticket/57493 - patch("cstddef.patch", when="@7.1.0r %gcc@8:") - # Skip info print of ESMF_CPP due to permission denied errors # https://github.com/spack/spack/issues/35957 patch("esmf_cpp_info.patch") @@ -174,12 +154,23 @@ def patch(self): os.path.join("src/addon/esmpy/pyproject.toml"), ) + def url_for_version(self, version): + if version < Version("8.0.0"): + # Older ESMF releases had a custom tag format ESMF_x_y_z + return "https://github.com/esmf-org/esmf/archive/ESMF_{0}.tar.gz".format( + version.underscored + ) + else: + # Starting with ESMF 8.0.0 releases are in the form vx.y.z + return "https://github.com/esmf-org/esmf/archive/refs/tags/v{0}.tar.gz".format( + version.dotted + ) + def setup_run_environment(self, env: EnvironmentModifications) -> None: env.set("ESMFMKFILE", os.path.join(self.prefix.lib, "esmf.mk")) class PythonPipBuilder(python.PythonPipBuilder): - @property def build_directory(self): return os.path.join(self.stage.source_path, "src/addon/esmpy") @@ -194,18 +185,6 @@ class MakefileBuilder(makefile.MakefileBuilder): # below sets the compilers to the MPI wrappers. filter_compiler_wrappers("esmf.mk", relative_root="lib") - def url_for_version(self, version): - if version < Version("8.0.0"): - # Older ESMF releases had a custom tag format ESMF_x_y_z - return "https://github.com/esmf-org/esmf/archive/ESMF_{0}.tar.gz".format( - version.underscored - ) - else: - # Starting with ESMF 8.0.0 releases are in the form vx.y.z - return "https://github.com/esmf-org/esmf/archive/refs/tags/v{0}.tar.gz".format( - version.dotted - ) - def setup_build_environment(self, env: EnvironmentModifications) -> None: spec = self.spec # Installation instructions can be found at: @@ -253,9 +232,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: if spec["fortran"].name == "gcc" and spec["c"].name == "gcc": gfortran_major_version = int(spec["fortran"].version[0]) env.set("ESMF_COMPILER", "gfortran") - elif self.pkg.compiler.name == "intel" or self.pkg.compiler.name == "oneapi" \ - or self.pkg.compiler.name == "intel-oneapi-compilers-classic" \ - or self.pkg.compiler.name == "intel-oneapi-compilers": + elif spec["fortran"].name in ["intel-oneapi-compilers", "intel-oneapi-compilers-classic"]: env.set("ESMF_COMPILER", "intel") elif spec["fortran"].name == "gcc" and spec["c"].name in ["clang", "apple-clang"]: gfortran_major_version = int(spec["fortran"].version[0]) @@ -370,8 +347,19 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: # ESMF code. env.set("ESMF_LAPACK", "system") - # Specifies the path where the LAPACK library is located. - env.set("ESMF_LAPACK_LIBPATH", spec["lapack"].prefix.lib) + # Specifies the path where the LAPACK library is located. We cannot + # simply rely on spec["lapack"].prefix.lib here because some + # providers (e.g., MKL) use a deeper directory structure for the + # library directory that is not easily generalized. We must also + # filter out any system library paths included by the package. + env.set( + "ESMF_LAPACK_LIBPATH", + [ + lib_dir + for lib_dir in spec["lapack"].libs.directories + if spec["lapack"].prefix in lib_dir + ][0], + ) # Specifies the linker directive needed to link the LAPACK library # to the application. @@ -449,7 +437,11 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: @run_after("install") def post_install(self): - install_tree("cmake", self.prefix.cmake) + # Only copy the raw source cmake tree for legacy v8.0 - v8.6 installations. + # Newer versions handle this inside ESMF's native install target. + if self.spec.satisfies("@8:8.6"): + install_tree("cmake", self.prefix.cmake) + # Several applications using ESMF are affected by CMake # capitalization issue. The following fix allows all apps # to use as-is. Note that since the macOS file system is @@ -458,9 +450,12 @@ def post_install(self): for suffix in [shared_library_suffix(self.spec), static_library_suffix(self.spec)]: library_path = os.path.join(self.prefix.lib, "libesmf.%s" % suffix) if os.path.exists(library_path): - os.symlink(library_path, os.path.join(self.prefix.lib, "libESMF.%s" % suffix)) - # https://github.com/esmf-org/esmf/issues/497 - filter_file("-lmpi_cxx", "", os.path.join(self.prefix.lib, "esmf.mk"), string=True) + symlink(library_path, os.path.join(self.prefix.lib, "libESMF.%s" % suffix)) + + # Pre v9 problem with explicit MPI C++ binding link dependency + if self.spec.satisfies("@:8"): + # https://github.com/esmf-org/esmf/issues/497 + filter_file("-lmpi_cxx", "", os.path.join(self.prefix.lib, "esmf.mk"), string=True) def check(self): make("check", parallel=False) diff --git a/repos/spack_repo/builtin/packages/estarlight/package.py b/repos/spack_repo/builtin/packages/estarlight/package.py index 56e5f0828f3..1779f9ca767 100644 --- a/repos/spack_repo/builtin/packages/estarlight/package.py +++ b/repos/spack_repo/builtin/packages/estarlight/package.py @@ -20,6 +20,10 @@ class Estarlight(CMakePackage): maintainers("wdconinc") version("master", branch="master") + version("1.2.0", sha256="230e6e02a198b5902f78289f1e7abc53877a09dfaa09b18e5379a17956cd309d") + version("1.1.0", sha256="86896df9084975685efdf28d421d5bf273c65526be2d4ec24e6fddc94900a8c6") + version("1.0.3", sha256="c417e5f62faf7983f548a83e3c86cef2cfc72a55f87c0928cd5eb5d38c86d434") + version("1.0.2", sha256="cf54b833c66a905603a84c4f3132af61c4bfaa239f3e216431150e0fa22da494") version("1.0.1", sha256="b43c1dd3663d8f325f30b17dd7cf4b49f2eb8ceeed7319c5aabebec8676279fd") variant("dpmjet", default=False, description="Use dpmjet for jets") diff --git a/repos/spack_repo/builtin/packages/etcd/package.py b/repos/spack_repo/builtin/packages/etcd/package.py index 30c71d06c5f..c5cd1b7026e 100644 --- a/repos/spack_repo/builtin/packages/etcd/package.py +++ b/repos/spack_repo/builtin/packages/etcd/package.py @@ -2,12 +2,12 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.generic import Package +from spack_repo.builtin.build_systems.go import GoPackage from spack.package import * -class Etcd(Package): +class Etcd(GoPackage): """etcd is a distributed reliable key-value store for the most critical data of a distributed system""" @@ -18,16 +18,10 @@ class Etcd(Package): license("Apache-2.0") + version("3.6.5", sha256="96b2eabaf6da7dd21797152e7d1c1ce27da75926ae10e08a90b7ed0458287a4b") version("3.5.9", sha256="ab24d74b66ba1ed7d2bc391839d961e7215f0f3d674c3a9592dad6dc67a7b223") version("3.4.23", sha256="055c608c4898d25f23aefbc845ff074bf5e8a07e61ed41dbd5cc4d4f59c93093") - depends_on("go@1.19:") + depends_on("go@1.24:", type="build", when="@3.6.5:") + depends_on("go@1.19:", type="build") depends_on("gmake", type="build") - - def setup_build_environment(self, env: EnvironmentModifications) -> None: - # Point GOPATH at the top of the staging dir for the build step. - env.prepend_path("GOPATH", self.stage.path) - - def install(self, spec, prefix): - make() - install_tree("bin", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/etsf_io/package.py b/repos/spack_repo/builtin/packages/etsf_io/package.py index bc177d8faeb..95b0c141081 100644 --- a/repos/spack_repo/builtin/packages/etsf_io/package.py +++ b/repos/spack_repo/builtin/packages/etsf_io/package.py @@ -65,6 +65,6 @@ def install(self, spec, prefix): def test_etsf_io_help(self): """check etsf_io can execute (--help)""" - etsfio = which(self.prefix.bin.etsf_io) + etsfio = which(self.prefix.bin.etsf_io, required=True) out = etsfio("--help", output=str.split, error=str.split) assert "Usage: etsf_io" in out diff --git a/repos/spack_repo/builtin/packages/evtgen/g2c.patch b/repos/spack_repo/builtin/packages/evtgen/g2c.patch deleted file mode 100644 index 0cce1d54014..00000000000 --- a/repos/spack_repo/builtin/packages/evtgen/g2c.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/configure b/configure -index 375e3b7..e47deac 100755 ---- a/configure -+++ b/configure -@@ -196,7 +196,7 @@ echo "Platform is $ARCH" - FFLAGS="${FFLAGS_OPT}" - CFLAGS="${CFLAGS_OPT}" - CXXFLAGS="${CXXFLAGS_OPT}" --FLIBS="-lfrtbegin -lg2c" -+#FLIBS="-lfrtbegin -lg2c" - SOFLAGS="-soname" - - if [ ${COMPMODE} = OPT ]; then -@@ -213,7 +213,7 @@ if [ $ARCH = Linux ]; then - FFLAGS="${FFLAGS_OPT} -Wno-globals" - CFLAGS="${CFLAGS_OPT}" - CXXFLAGS="${CXXFLAGS_OPT}" -- FLIBS="-lfrtbegin -lg2c" -+ #FLIBS="-lfrtbegin -lg2c" - if [ ${COMPMODE} = OPT ]; then - FFLAGS="${FFLAGS_OPT}" - CFLAGS="${CFLAGS_OPT}" diff --git a/repos/spack_repo/builtin/packages/exa/package.py b/repos/spack_repo/builtin/packages/exa/package.py deleted file mode 100644 index dcfa513ae30..00000000000 --- a/repos/spack_repo/builtin/packages/exa/package.py +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.cargo import CargoPackage - -from spack.package import * - - -class Exa(CargoPackage): - """DEPRECATED: The exa upstream is no longer maintained, see the eza package for a - replacement. - - exa is a replacement for ls written in Rust.""" - - homepage = "https://the.exa.website" - url = "https://github.com/ogham/exa/archive/v0.9.0.tar.gz" - - version( - "0.10.1", - sha256="ff0fa0bfc4edef8bdbbb3cabe6fdbd5481a71abbbcc2159f402dea515353ae7c", - deprecated=True, - ) - version( - "0.9.0", - sha256="96e743ffac0512a278de9ca3277183536ee8b691a46ff200ec27e28108fef783", - deprecated=True, - ) diff --git a/repos/spack_repo/builtin/packages/exaca/package.py b/repos/spack_repo/builtin/packages/exaca/package.py index ac6632035ae..3bc99ec0128 100644 --- a/repos/spack_repo/builtin/packages/exaca/package.py +++ b/repos/spack_repo/builtin/packages/exaca/package.py @@ -33,8 +33,10 @@ class Exaca(CMakePackage, CudaPackage, ROCmPackage): _kokkos_backends = Kokkos.devices_variants for _backend in _kokkos_backends: - _deflt, _descr = _kokkos_backends[_backend] - variant(_backend.lower(), default=_deflt, description=_descr) + _deflt, _when, _descr = _kokkos_backends[_backend] + if _when is not None: + _when = f"^kokkos{_when}" + variant(_backend.lower(), default=_deflt, description=_descr, when=_when) variant("shared", default=True, description="Build shared libraries") variant("testing", default=False, description="Build unit tests") diff --git a/repos/spack_repo/builtin/packages/exactextract/package.py b/repos/spack_repo/builtin/packages/exactextract/package.py new file mode 100644 index 00000000000..14ef96699f7 --- /dev/null +++ b/repos/spack_repo/builtin/packages/exactextract/package.py @@ -0,0 +1,58 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.python import PythonExtension, PythonPipBuilder + +from spack.package import * + + +class Exactextract(CMakePackage, PythonExtension): + """exactextract is a library for extracting and summarizing the + values in the portion of a raster dataset that is covered by a polygon, + often referred to as zonal statistics.""" + + homepage = "https://isciences.github.io/exactextract/index.html" + git = "https://github.com/isciences/exactextract.git" + url = "https://github.com/isciences/exactextract/archive/refs/tags/v0.3.0.tar.gz" + + maintainers("Chrismarsh") + + license("Apache-2.0") + + version("0.3.0", sha256="0f825bb27daa184c822ff155c8462ec69cac34a0ca1cc95b2f3a02ebb99b7e65") + + variant("python", default=False, description="Enable Python support") + variant("tbb", default=False, description="Enable TBB parallel support") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("cmake@3.8:", type="build") + + # header only + depends_on("cli11", type="build") + + depends_on("geos@3.5:", type=("build", "run")) + depends_on("gdal@2:", type=("build", "run")) + depends_on("intel-oneapi-tbb", type=("build", "run"), when="+tbb") + + with when("+python"): + extends("python", type=("build", "link", "run")) + depends_on("py-pip") + depends_on("py-scikit-build-core", type="build") + depends_on("py-pybind11") + + def cmake_args(self): + cmake_args = [ + self.define_from_variant("BUILD_PYTHON", "python"), + self.define_from_variant("BUILD_PARALLEL_TBB", "tbb"), + ] + + return cmake_args + + @run_after("install") + def install_python(self): + if self.spec.satisfies("+python"): + # build the python library + pip(*PythonPipBuilder.std_args(self), f"--prefix={self.prefix}", ".") diff --git a/repos/spack_repo/builtin/packages/exago/package.py b/repos/spack_repo/builtin/packages/exago/package.py index 3df128e304c..e72041bdd88 100644 --- a/repos/spack_repo/builtin/packages/exago/package.py +++ b/repos/spack_repo/builtin/packages/exago/package.py @@ -11,63 +11,108 @@ from spack.package import * +def submodules(package): + submodules = [] + submodules.append("tpl/pybind11") + submodules.append("tpl/spdlog") + submodules.append("tpl/toml11") + + return submodules + + class Exago(CMakePackage, CudaPackage, ROCmPackage): """ExaGO is a package for solving large-scale power grid optimization problems on parallel and distributed architectures, particularly targeted for exascale machines.""" - homepage = "https://github.com/pnnl/ExaGO" - git = "https://github.com/pnnl/ExaGO.git" + homepage = "https://github.com/ornl/ExaGO" + git = "https://github.com/ornl/ExaGO.git" maintainers("ryandanehy", "cameronrutherford", "pelesh") version( - "1.6.0", tag="v1.6.0", commit="159cd173572280ac0f6f094a71dcc3ebeeb34076", submodules=True + "2.0.0", + tag="v2.0.0", + commit="d80d9a00914c096121832c6bb778d83b0b40c3c9", + submodules=submodules, ) version( - "1.5.1", tag="v1.5.1", commit="84e9faf9d9dad8d851075eba26038338d90e6d3a", submodules=True + "1.6.0", + commit="159cd173572280ac0f6f094a71dcc3ebeeb34076", + submodules=submodules, + deprecated=True, ) version( - "1.5.0", tag="v1.5.0", commit="227f49573a28bdd234be5500b3733be78a958f15", submodules=True + "1.5.1", + commit="84e9faf9d9dad8d851075eba26038338d90e6d3a", + submodules=submodules, + deprecated=True, ) version( - "1.4.1", tag="v1.4.1", commit="ea607c685444b5f345bfdc9a59c345f0f30adde2", submodules=True + "1.5.0", + commit="227f49573a28bdd234be5500b3733be78a958f15", + submodules=submodules, + deprecated=True, ) version( - "1.4.0", tag="v1.4.0", commit="4f4c3fdb40b52ace2d6ba000e7f24b340ec8e886", submodules=True + "1.4.1", + commit="ea607c685444b5f345bfdc9a59c345f0f30adde2", + submodules=submodules, + deprecated=True, ) version( - "1.3.0", tag="v1.3.0", commit="58b039d746a6eac8e84b0afc01354cd58caec485", submodules=True + "1.4.0", + commit="4f4c3fdb40b52ace2d6ba000e7f24b340ec8e886", + submodules=submodules, + deprecated=True, ) version( - "1.2.0", tag="v1.2.0", commit="255a214ec747b7bdde7a6d8151c083067b4d0907", submodules=True + "1.3.0", + commit="58b039d746a6eac8e84b0afc01354cd58caec485", + submodules=submodules, + deprecated=True, ) version( - "1.1.2", tag="v1.1.2", commit="db3bb16e19c09e01402071623258dae4d13e5133", submodules=True + "1.1.2", + commit="db3bb16e19c09e01402071623258dae4d13e5133", + submodules=submodules, + deprecated=True, ) version( - "1.1.1", tag="v1.1.1", commit="0e0a3f27604876749d47c06ec71daaca4b270df9", submodules=True + "1.1.1", + commit="0e0a3f27604876749d47c06ec71daaca4b270df9", + submodules=submodules, + deprecated=True, ) version( - "1.1.0", tag="v1.1.0", commit="dc8dd85544ff1b55a64a3cbbbdf12b8a0c6fdaf6", submodules=True + "1.1.0", + commit="dc8dd85544ff1b55a64a3cbbbdf12b8a0c6fdaf6", + submodules=submodules, + deprecated=True, ) - version("1.0.0", tag="v1.0.0", commit="230d7df2f384f68b952a1ea03aad41431eaad283") - version("0.99.2", tag="v0.99.2", commit="56961641f50827b3aa4c14524f2f978dc48b9ce5") - version("0.99.1", tag="v0.99.1", commit="0ae426c76651ba5a9dbcaeb95f18d1b8ba961690") - version("main", branch="main", submodules=True) - version("develop", branch="develop", submodules=True) + version("1.0.0", commit="230d7df2f384f68b952a1ea03aad41431eaad283", deprecated=True) + version("0.99.2", commit="56961641f50827b3aa4c14524f2f978dc48b9ce5", deprecated=True) + version("0.99.1", commit="0ae426c76651ba5a9dbcaeb95f18d1b8ba961690", deprecated=True) + version("main", branch="main", submodules=submodules) + version("develop", branch="develop", submodules=submodules) version( "snapshot.5-18-2022", - tag="5-18-2022-snapshot", commit="3eb58335db71bb72341153a7867eb607402067ca", - submodules=True, + submodules=submodules, + deprecated=True, + ) + version( + "kpp2", + commit="1da764d80a2db793f4c43ca50e50981f7ed3880a", + submodules=submodules, + deprecated=True, ) - version("kpp2", tag="kpp2", commit="1da764d80a2db793f4c43ca50e50981f7ed3880a", submodules=True) - # Progrmming model options + # Programming model options variant("mpi", default=True, description="Enable/Disable MPI") variant("raja", default=False, description="Enable/Disable RAJA") variant("python", default=True, when="@1.4:", description="Enable/Disable Python bindings") variant("logging", default=True, description="Enable/Disable spdlog based logging") + variant("testing", default=True, description="Enable/Disable testing") conflicts( "+python", when="+ipopt+rocm", msg="Python bindings require -fPIC with Ipopt for rocm." @@ -107,10 +152,12 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage): depends_on("pkgconfig", type="build") depends_on("mpi", when="+mpi") depends_on("blas") - depends_on("ipopt~mumps", when="+ipopt") + depends_on("ipopt", when="+ipopt") depends_on("cuda", when="+cuda") depends_on("raja", when="+raja") depends_on("umpire", when="+raja") + depends_on("spdlog", when="@2.0:+logging") + depends_on("fmt", when="@2.0:+logging") depends_on("cmake@3.18:", type="build") # Profiling @@ -153,30 +200,33 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage): depends_on("hiop@0.5.1:", when="@1.1.0:+hiop") depends_on("hiop@0.5.3:", when="@1.3.0:+hiop") depends_on("hiop@0.7.0:1.0.0", when="@1.5.0:1.6.0+hiop") - depends_on("hiop@1.0.1:", when="@develop:+hiop") + depends_on("hiop@1.0.1:", when="@2.0:+hiop") depends_on("hiop~mpi", when="+hiop~mpi") depends_on("hiop+mpi", when="+hiop+mpi") + depends_on("hiop+raja", when="+hiop+raja") # RAJA dependency logic # ExaGO will support +raja~hiop in the future - depends_on("hiop+raja", when="+hiop+raja") - # This is duplicated from HiOp - # RAJA > 0.14 and Umpire > 6.0 require c++ std 14 - # We are working on supporting newer Umpire/RAJA versions - depends_on("raja@0.14.0:0.14 +shared", when="@1.1.0:+raja") - depends_on("umpire@6.0.0:6", when="@1.1.0:+raja") - depends_on("camp@0.2.3:0.2", when="@1.1.0:+raja") + depends_on("raja", when="+raja") + depends_on("umpire", when="+raja") + # This is no longer a requirement in RAJA > 0.14 depends_on("umpire+cuda~shared", when="+raja+cuda ^raja@:0.14") + # PETSc version dependency logic depends_on("petsc@3.13:3.14", when="@:1.2") depends_on("petsc@3.16", when="@1.3:1.4") depends_on("petsc@3.18:3.19", when="@1.5") - depends_on("petsc@3.19:", when="@1.6:") - + depends_on("petsc@3.19:3.23", when="@1.6") + depends_on("petsc@3.24:", when="@2.0:") depends_on("petsc~mpi", when="~mpi") + # Ipopt versiondependency logic + depends_on("ipopt@3.12", when="@:1.6") + depends_on("ipopt@3.14:", when="@2.0:") + + # cuda_arch and amdgpu_target dependency logic for arch in CudaPackage.cuda_arch_values: cuda_dep = "+cuda cuda_arch={0}".format(arch) depends_on("hiop {0}".format(cuda_dep), when=cuda_dep) @@ -224,7 +274,7 @@ def cmake_args(self): [ self.define("EXAGO_ENABLE_GPU", "+cuda" in spec or "+rocm" in spec), self.define("PETSC_DIR", spec["petsc"].prefix), - self.define("EXAGO_RUN_TESTS", self.run_tests), + self.define_from_variant("EXAGO_RUN_TESTS", "testing"), self.define("LAPACK_LIBRARIES", spec["lapack"].libs + spec["blas"].libs), self.define_from_variant("EXAGO_ENABLE_CUDA", "cuda"), self.define_from_variant("EXAGO_ENABLE_HIP", "rocm"), diff --git a/repos/spack_repo/builtin/packages/examinimd/package.py b/repos/spack_repo/builtin/packages/examinimd/package.py deleted file mode 100644 index 3e1b5030349..00000000000 --- a/repos/spack_repo/builtin/packages/examinimd/package.py +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - - -from spack_repo.builtin.build_systems.makefile import MakefilePackage - -from spack.package import * - - -class Examinimd(MakefilePackage): - """ExaMiniMD is a proxy application and research vehicle for particle codes, - in particular Molecular Dynamics (MD). Compared to previous MD proxy apps - (MiniMD, COMD), its design is significantly more modular in order to allow - independent investigation of different aspects. To achieve that the main - components such as force calculation, communication, neighbor list - construction and binning are derived classes whose main functionality is - accessed via virtual functions. This allows a developer to write a new - derived class and drop it into the code without touching much of the - rest of the application.""" - - tags = ["proxy-app", "ecp-proxy-app"] - - homepage = "https://github.com/ECP-copa/ExaMiniMD" - url = "https://github.com/ECP-copa/ExaMiniMD/archive/1.0.zip" - git = "https://github.com/ECP-copa/ExaMiniMD.git" - - version("develop", branch="master") - version("1.0", sha256="d5f884ecc3a5f9723cc57a4c188da926b392605650606c1c8c34f2d1953f2534") - - variant("mpi", default=True, description="Build with MPI support") - variant("openmp", default=False, description="Build with OpenMP support") - variant("pthreads", default=False, description="Build with POSIX Threads support") - # TODO: Set up cuda variant when test machine available - - conflicts("+openmp", when="+pthreads") - - depends_on("cxx", type="build") - - depends_on("kokkos-legacy") - depends_on("mpi", when="+mpi") - - @property - def build_targets(self): - targets = [] - # Append Kokkos - targets.append("KOKKOS_PATH={0}".format(self.spec["kokkos-legacy"].prefix)) - # Set kokkos device - if self.spec.satisfies("openmp"): - targets.append("KOKKOS_DEVICES=OpenMP") - elif self.spec.satisfies("pthreads"): - targets.append("KOKKOS_DEVICES=Pthread") - else: - targets.append("KOKKOS_DEVICES=Serial") - # Set MPI as needed - if self.spec.satisfies("+mpi"): - targets.append("MPI=1") - targets.append("CXX = {0}".format(self.spec["mpi"].mpicxx)) - else: - targets.append("MPI=0") - targets.append("CXX = {0}".format(spack_cxx)) - return targets - - def install(self, spec, prefix): - mkdirp(prefix.bin) - install("src/ExaMiniMD", prefix.bin) - install_tree("input", prefix.input) - mkdirp(prefix.docs) - install("README.md", prefix.docs) - install("LICENSE", prefix.docs) diff --git a/repos/spack_repo/builtin/packages/exawind/package.py b/repos/spack_repo/builtin/packages/exawind/package.py index a0c0be8c8d5..34ed66579a1 100644 --- a/repos/spack_repo/builtin/packages/exawind/package.py +++ b/repos/spack_repo/builtin/packages/exawind/package.py @@ -18,27 +18,22 @@ class Exawind(CMakePackage, CudaPackage, ROCmPackage): maintainers("jrood-nrel") tags = ["ecp", "ecp-apps"] + submodules = True license("Apache-2.0") - version("master", branch="main", submodules=True) - version( - "2.0.0", tag="v2.0.0", commit="d25aa549c7cbd9d6213541cd4b046bd9c0c54652", submodules=True - ) - version( - "1.2.0", tag="v1.2.0", commit="4c49c7775c580b6bd2556e6c00fd13c08737d5eb", submodules=True - ) - version( - "1.1.0", tag="v1.1.0", commit="c8823f19fc8d19ea051df0ff68780e56981a7f94", submodules=True - ) - version( - "1.0.0", tag="v1.0.0", commit="85718893d2510c8a2e8c8e94c768ce6a67f94703", submodules=True - ) + version("master", branch="main") + version("2.1.0", tag="v2.1.0", commit="b726a1128f02edb72f504130830d44622710225a") + version("2.0.0", tag="v2.0.0", commit="d25aa549c7cbd9d6213541cd4b046bd9c0c54652") + version("1.2.0", tag="v1.2.0", commit="4c49c7775c580b6bd2556e6c00fd13c08737d5eb") + version("1.1.0", tag="v1.1.0", commit="c8823f19fc8d19ea051df0ff68780e56981a7f94") + version("1.0.0", tag="v1.0.0", commit="85718893d2510c8a2e8c8e94c768ce6a67f94703") variant("amr_wind_gpu", default=False, description="Enable AMR-Wind on the GPU") variant("nalu_wind_gpu", default=False, description="Enable Nalu-Wind on the GPU") variant("sycl", default=False, description="Enable SYCL backend for AMR-Wind") variant("gpu-aware-mpi", default=False, description="gpu-aware-mpi") + variant("kynema", default=False, description="Couple with Kynema structural solver") depends_on("c", type="build") depends_on("cxx", type="build") @@ -75,6 +70,7 @@ class Exawind(CMakePackage, CudaPackage, ROCmPackage): depends_on("yaml-cpp@0.6:") depends_on("tioga~nodegid") depends_on("openfast+cxx@2.6.0:") + depends_on("nalu-wind+kynema", when="+kynema") depends_on("amr-wind+sycl", when="+amr_wind_gpu+sycl") depends_on("kokkos-nvcc-wrapper", type="build", when="+cuda") depends_on("mpi") diff --git a/repos/spack_repo/builtin/packages/exchcxx/package.py b/repos/spack_repo/builtin/packages/exchcxx/package.py new file mode 100644 index 00000000000..9216cae7e33 --- /dev/null +++ b/repos/spack_repo/builtin/packages/exchcxx/package.py @@ -0,0 +1,41 @@ +# 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, generator +from spack_repo.builtin.build_systems.cuda import CudaPackage + +from spack.package import * + + +class Exchcxx(CMakePackage, CudaPackage): + """Exchange correlation (XC) library for density functional theory (DFT) + calculations in modern C++.""" + + homepage = "https://github.com/wavefunction91/ExchCXX" + git = "https://github.com/wavefunction91/ExchCXX.git" + url = "https://github.com/wavefunction91/ExchCXX/archive/refs/tags/v1.0.0.tar.gz" + + maintainers("awvwgk") + + license("BSD-3-Clause") + + version("master", branch="master") + version("1.0.0", sha256="0ea38aab563ea5d11a03d80dc1bf909821091d903eb852c5cb350484753a847a") + + depends_on("cxx", type="build") + depends_on("cmake@3.20:", type="build") + depends_on("ninja@1.10:", type="build") + depends_on("libxc@7.0.0:") + depends_on("cuda", when="+cuda") + + generator("ninja") + + variant("cuda", default=False, description="Build with CUDA support") + + def cmake_args(self): + args = [] + if "+cuda" in self.spec: + args.append(self.define("EXCHCXX_ENABLE_CUDA", True)) + return args diff --git a/repos/spack_repo/builtin/packages/exciting/package.py b/repos/spack_repo/builtin/packages/exciting/package.py index 25f0cb53fc5..b124438f52f 100644 --- a/repos/spack_repo/builtin/packages/exciting/package.py +++ b/repos/spack_repo/builtin/packages/exciting/package.py @@ -115,7 +115,7 @@ def edit(self, spec, prefix): opts["BUILDMPI"] = "true" opts["MPIF90"] = spec["mpi"].mpifc opts["MPIF90_CPP_OPTS"] = "-DMPI -DMPIRHO -DMPISEC" - opts["MPIF90_OPTS"] = " ".join(["$(F90_OPTS)", "$(CPP_ON_OPTS) " "$(MPIF90_CPP_OPTS)"]) + opts["MPIF90_OPTS"] = "$(F90_OPTS) $(CPP_ON_OPTS) $(MPIF90_CPP_OPTS)" opts["MPIF90MT"] = "$(MPIF90)" if spec.satisfies("+omp"): diff --git a/repos/spack_repo/builtin/packages/exempi/package.py b/repos/spack_repo/builtin/packages/exempi/package.py index defc8204f22..feaa314e05d 100644 --- a/repos/spack_repo/builtin/packages/exempi/package.py +++ b/repos/spack_repo/builtin/packages/exempi/package.py @@ -20,9 +20,11 @@ class Exempi(AutotoolsPackage): license("BSD-3-Clause") + version("2.6.6", sha256="7513b7e42c3bd90a58d77d938c60d2e87c68f81646e7cb8b12d71fe334391c6f") version("2.6.1", sha256="072451ac1e0dc97ed69a2e5bfc235fd94fe093d837f65584d0e3581af5db18cd") version("2.5.2", sha256="52f54314aefd45945d47a6ecf4bd21f362e6467fa5d0538b0d45a06bc6eaaed5") + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("zlib-api") diff --git a/repos/spack_repo/builtin/packages/exiv2/package.py b/repos/spack_repo/builtin/packages/exiv2/package.py index 124eaacdeb7..e81bb70d309 100644 --- a/repos/spack_repo/builtin/packages/exiv2/package.py +++ b/repos/spack_repo/builtin/packages/exiv2/package.py @@ -20,8 +20,15 @@ class Exiv2(CMakePackage): version("0.27.6", sha256="f16ee5ff08b6994c66106109417857f13e711fca100ac43c6a403d4f02b59602") version("0.27.5", sha256="1da1721f84809e4d37b3f106adb18b70b1b0441c860746ce6812bb3df184ed6c") version("0.27.4", sha256="9fb2752c92f63c9853e0bef9768f21138eeac046280f40ded5f37d06a34880d9") - version("0.27.3", sha256="6398bc743c32b85b2cb2a604273b8c90aa4eb0fd7c1700bf66cbb2712b4f00c1") - version("0.27.2", sha256="3dbcaf01fbc5b98d42f091d1ff0d4b6cd9750dc724de3d9c0d113948570b2934") + + # CVE-2021-29457, CVE-2021-31292 + with default_args(deprecated=True): + version( + "0.27.3", sha256="6398bc743c32b85b2cb2a604273b8c90aa4eb0fd7c1700bf66cbb2712b4f00c1" + ) + version( + "0.27.2", sha256="3dbcaf01fbc5b98d42f091d1ff0d4b6cd9750dc724de3d9c0d113948570b2934" + ) depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/exmcutils/package.py b/repos/spack_repo/builtin/packages/exmcutils/package.py index 427550e10eb..865b62aea2c 100644 --- a/repos/spack_repo/builtin/packages/exmcutils/package.py +++ b/repos/spack_repo/builtin/packages/exmcutils/package.py @@ -12,10 +12,14 @@ class Exmcutils(AutotoolsPackage): """ExM C-Utils: Generic C utility library for ADLB/X and Swift/T""" homepage = "http://swift-lang.org/Swift-T" - url = "https://swift-lang.github.io/swift-t-downloads/spack/exmcutils-0.6.0.tar.gz" + url = "https://swift-lang.github.io/swift-t-downloads/spack/exmcutils-0.6.4.tar.gz" git = "https://github.com/swift-lang/swift-t.git" + maintainers("j-woz") + version("master", branch="master") + version("0.6.5", sha256="48c5b783297f59354538f99146526670ed71475b975348ca1d5423be61011e7c") + version("0.6.4", sha256="7a0c473cdb3eb97379e4aaf7be5cd04f57c463726d1a1a0b3ab73de6763b8b7c") version("0.6.0", sha256="43812f79ae83adcacc05d4eb64bc8faa1c893994ffcdfb40a871f6fa4c9c1435") version("0.5.7", sha256="6b84f43e8928d835dbd68c735ece6a9b7c648a1a4488ec2b1d2f3c4ceec508e8") version("0.5.6", sha256="296ba85cc828bd816c7c4de9453f589da37f32854a58ffda3586b6f371a23abf") @@ -29,6 +33,9 @@ def configure_directory(self): else: return "." + def autoreconf(self, spec, prefix): + which("bash", required=True)("bootstrap") + depends_on("m4", when="@master") depends_on("autoconf", when="@master") depends_on("automake", when="@master") diff --git a/repos/spack_repo/builtin/packages/exodusii/package.py b/repos/spack_repo/builtin/packages/exodusii/package.py index 67ae3f3ffbe..2c61d053d82 100644 --- a/repos/spack_repo/builtin/packages/exodusii/package.py +++ b/repos/spack_repo/builtin/packages/exodusii/package.py @@ -31,6 +31,15 @@ class Exodusii(CMakePackage): license("BSD-3-Clause") version("master", branch="master") + version( + "2025-10-14", sha256="d2442cff8ba963cd538f75fb4d7eb50b3f5c75cb01c8603af8185481f25db042" + ) + version( + "2025-08-28", sha256="7a8092dec82af8c5074911ce1d156176948addf7ccf34362c16bba99eff0ee72" + ) + version( + "2025-08-19", sha256="cdd571a26e77f7a0053c1c5638fed19a111f43f82b8a4c0f7e7b3339dc4cd401" + ) version( "2024-04-03", sha256="72b095bae64b2b6c232630f79de763c6ade00c9b1199fc6980800891b2ab3751" ) @@ -61,70 +70,19 @@ class Exodusii(CMakePackage): version( "2022-01-27", sha256="d21c14b9b30f773cef8e2029773f3cc35da021eebe9060298231f95021eb814f" ) - version( - "2021-10-11", - sha256="5c04d252e1c4a10b037aa352b89487e581ec6b52bdb46e9e85f101bbdcd9c388", - deprecated=True, - ) - version( - "2021-04-05", - sha256="f40d318674753287b8b28d2b4e5cca872cd772d4c7383af4a8f3eeb48fcc7ec0", - deprecated=True, - ) - version( - "2021-04-02", - sha256="811037a68eaff0daf9f34bd31b2ab1c9b8f028dfcb998ab01fbcb80d9458257c", - deprecated=True, - ) - version( - "2021-01-20", - sha256="6ff7c3f0651138f2e2305b5270108ca45f96346a739b35a126a0a260c91cbe64", - deprecated=True, - ) - version( - "2021-01-06", - sha256="69cafef17d8e624c2d9871f3a281ff3690116a6f82162fe5c1507bb4ecd6a32a", - deprecated=True, - ) - version( - "2020-08-13", - sha256="5b128a8ad9b0a69cff4fe937828d6d1702f1fe8aa80d4751e6522939afe62957", - deprecated=True, - ) - version( - "2020-05-12", - sha256="0402facf6cf23d903d878fb924b5d57e9f279dead5b92cf986953a6b91a6e81f", - deprecated=True, - ) - version( - "2020-03-16", - sha256="ed1d42c8c657931ecd45367a465cf9c00255772d9cd0811fc9baacdb67fc71fa", - deprecated=True, - ) - version( - "2020-01-16", - sha256="db69dca25595e88a40c00db0ccf2afed1ecd6008ba30bb478a4e1c5dd61998b8", - deprecated=True, - ) - version( - "2019-12-18", - sha256="88a71de836aa26fd63756cf3ffbf3978612edc5b6c61fa8de32fe9d638007774", - deprecated=True, - ) - version( - "2019-10-14", - sha256="f143d90e8a7516d25979d1416e580dea638332db723f26ae94a712dfe4052e8f", - deprecated=True, - ) - version("2016-08-09", commit="2ffeb1bd39454ad5aa230e12969ce976f3d1c92b", deprecated=True) - patch("Fix-ioss-tpl.patch", when="@2021-10-11:") + patch("Fix-ioss-tpl.patch", when="@:2024-04-03") # Build options variant("fortran", default=False, description="Compile with Fortran support") variant("shared", default=True, description="Enables the build of shared libraries") variant("mpi", default=True, description="Enables MPI parallelism.") variant("thread_safe", default=False, description="Enable thread-safe exodus library") + variant("tests", default=False, description="Build tests") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build", when="+fortran") depends_on("cmake@3.22:", when="@2023-10-24:", type="build") depends_on("cmake@3.17:", when="@:2023-05-30", type="build") @@ -165,6 +123,7 @@ def cmake_args(self): from_variant(project_name_base + "_ENABLE_SEACASExodus_for", "fortran"), from_variant(project_name_base + "_ENABLE_SEACASExoIIv2for32", "fortran"), define(project_name_base + "_HIDE_DEPRECATED_CODE", False), + from_variant("BUILD_TESTING", "tests"), from_variant("CMAKE_INSTALL_RPATH_USE_LINK_PATH", "shared"), from_variant("BUILD_SHARED_LIBS", "shared"), from_variant("SEACASExodus_ENABLE_THREADSAFE", "thread_safe"), diff --git a/repos/spack_repo/builtin/packages/expat/package.py b/repos/spack_repo/builtin/packages/expat/package.py index 004a6662103..7cac7e10143 100644 --- a/repos/spack_repo/builtin/packages/expat/package.py +++ b/repos/spack_repo/builtin/packages/expat/package.py @@ -18,146 +18,44 @@ class Expat(AutotoolsPackage, CMakePackage): url = "https://github.com/libexpat/libexpat/releases/download/R_2_2_9/expat-2.2.9.tar.bz2" license("MIT") - version("2.7.1", sha256="45c98ae1e9b5127325d25186cf8c511fa814078e9efeae7987a574b482b79b3d") - version("2.7.0", sha256="10f3e94896cd7f44de566cafa2e0e1f35e8df06d119b38d117c0e72d74a4b4b7") - # deprecate all releases before 2.7.0 because of security issues - # CVE-2024-8176 (fixed in 2.7.0) version( - "2.6.4", - sha256="8dc480b796163d4436e6f1352e71800a774f73dbae213f1860b60607d2a83ada", - deprecated=True, - ) - # CVE-2024-50602 (fixed in 2.6.4) - version( - "2.6.3", - sha256="b8baef92f328eebcf731f4d18103951c61fa8c8ec21d5ff4202fb6f2198aeb2d", - deprecated=True, - ) - # CVE-2024-45490 (fixed in 2.6.3) - # CVE-2024-45491 (fixed in 2.6.3) - # CVE-2024-45492 (fixed in 2.6.3) - version( - "2.6.2", - sha256="9c7c1b5dcbc3c237c500a8fb1493e14d9582146dd9b42aa8d3ffb856a3b927e0", - deprecated=True, - ) - # CVE-2024-28757 (fixed in 2.6.2) - version( - "2.6.1", - sha256="4677d957c0c6cb2a3321101944574c24113b637c7ab1cf0659a27c5babc201fd", - deprecated=True, - ) - version( - "2.6.0", - sha256="ff60e6a6b6ce570ae012dc7b73169c7fdf4b6bf08c12ed0ec6f55736b78d85ba", - deprecated=True, - ) - # CVE-2023-52425 (fixed in 2.6.0) - # CVE-2023-52426 (fixed in 2.6.0) - version( - "2.5.0", - sha256="6f0e6e01f7b30025fa05c85fdad1e5d0ec7fd35d9f61b22f34998de11969ff67", - deprecated=True, - ) - # CVE-2022-43680 (fixed in 2.5.0) - # CVE-2022-40674 (fixed in 2.4.9) - version( - "2.4.8", - sha256="a247a7f6bbb21cf2ca81ea4cbb916bfb9717ca523631675f99b3d4a5678dcd16", - deprecated=True, - ) - version( - "2.4.7", - sha256="e149bdd8b90254c62b3d195da53a09bd531a4d63a963b0d8a5268d48dd2f6a65", - deprecated=True, - ) - # CVE-2022-25236 (fixed in 2.4.7) - version( - "2.4.6", - sha256="ce317706b07cae150f90cddd4253f5b4fba929607488af5ac47bf2bc08e31f09", - deprecated=True, - ) - version( - "2.4.5", - sha256="fbb430f964c7a2db2626452b6769e6a8d5d23593a453ccbc21701b74deabedff", - deprecated=True, - ) - # CVE-2022-25235 (fixed in 2.4.5) - # CVE-2022-25236 (fixed in 2.4.5) - # CVE-2022-25313 (fixed in 2.4.5) - # CVE-2022-25314 (fixed in 2.4.5) - # CVE-2022-25315 (fixed in 2.4.5) - version( - "2.4.4", - sha256="14c58c2a0b5b8b31836514dfab41bd191836db7aa7b84ae5c47bc0327a20d64a", - deprecated=True, - ) - # CVE-2022-23852 (fixed in 2.4.4) - # CVE-2022-23990 (fixed in 2.4.4) - version( - "2.4.3", - sha256="6f262e216a494fbf42d8c22bc841b3e117c21f2467a19dc4c27c991b5622f986", - deprecated=True, - ) - # CVE-2021-45960 (fixed in 2.4.3) - # CVE-2021-46143 (fixed in 2.4.3) - # CVE-2022-22822 (fixed in 2.4.3) - # CVE-2022-22823 (fixed in 2.4.3) - # CVE-2022-22824 (fixed in 2.4.3) - # CVE-2022-22825 (fixed in 2.4.3) - # CVE-2022-22826 (fixed in 2.4.3) - # CVE-2022-22827 (fixed in 2.4.3) - version( - "2.4.1", - sha256="2f9b6a580b94577b150a7d5617ad4643a4301a6616ff459307df3e225bcfbf40", - deprecated=True, - ) - version( - "2.4.0", - sha256="8c59142ef88913bc0a8b6e4c58970c034210ca552e6271f52f6cd6cce3708424", - deprecated=True, + "2.8.1", + sha256="f5833dd2e1cd7739ec9182804a1a29c4f0cc7c2f26b633d3a2188b7766a88ecb", ) - # CVE-2013-0340 (fixed in 2.4.0) + # deprecate all releases before 2.8.1 because of various security issues version( - "2.3.0", - sha256="f122a20eada303f904d5e0513326c5b821248f2d4d2afbf5c6f1339e511c0586", + "2.8.0", + sha256="586494499ac3ad46d87f3beda7b1f770c1c8026a9b60e151593f8b29089a52ca", deprecated=True, ) version( - "2.2.10", - sha256="b2c160f1b60e92da69de8e12333096aeb0c3bf692d41c60794de278af72135a5", + "2.7.5", + sha256="386a423d40580f1e392e8b512b7635cac5083fe0631961e74e036b0a7a830d77", deprecated=True, ) version( - "2.2.9", - sha256="f1063084dc4302a427dabcca499c8312b3a32a29b7d2506653ecc8f950a9a237", + "2.7.4", + sha256="e6af11b01e32e5ef64906a5cca8809eabc4beb7ff2f9a0e6aabbd42e825135d0", deprecated=True, ) - # CVE-2019-15903 (fixed in 2.2.8) - # CVE-2018-20843 (fixed in 2.2.7) version( - "2.2.6", - sha256="17b43c2716d521369f82fc2dc70f359860e90fa440bea65b3b85f0b246ea81f2", + "2.7.3", + sha256="59c31441fec9a66205307749eccfee551055f2d792f329f18d97099e919a3b2f", deprecated=True, ) version( - "2.2.5", - sha256="d9dc32efba7e74f788fcc4f212a43216fc37cf5f23f4c2339664d473353aedf6", + "2.7.2", + sha256="976f6c2d358953c22398d64cd93790ba5abc62e02a1bbc204a3a264adea149b8", deprecated=True, ) - # CVE-2017-11742 (fixed in 2.2.3) version( - "2.2.2", - sha256="4376911fcf81a23ebd821bbabc26fd933f3ac74833f74924342c29aad2c86046", + "2.7.1", + sha256="45c98ae1e9b5127325d25186cf8c511fa814078e9efeae7987a574b482b79b3d", deprecated=True, ) - # CVE-2017-9233 (fixed in 2.2.1) - # CVE-2016-9063 (fixed in 2.2.1) - # CVE-2016-5300 (fixed in 2.2.1, in part fixed earlier) - # CVE-2012-0876 (fixed in 2.2.1, improved fix) version( - "2.2.0", - sha256="d9e50ff2d19b3538bd2127902a89987474e1a4db8e43a66a4d1a712ab9a504ff", + "2.7.0", + sha256="10f3e94896cd7f44de566cafa2e0e1f35e8df06d119b38d117c0e72d74a4b4b7", deprecated=True, ) @@ -167,10 +65,6 @@ class Expat(AutotoolsPackage, CMakePackage): # entropy source. "Older" linux systems (aka CentOS 7) do not # support get_random so we'll provide a high quality source via # libbsd. - # There's no need for it in earlier versions, so 'conflict' if - # someone's asking for an older version and also libbsd. - # In order to install an older version, you'll need to add - # `~libbsd`. variant( "libbsd", default=sys.platform == "linux", @@ -187,7 +81,7 @@ class Expat(AutotoolsPackage, CMakePackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("libbsd", when="@2.2.1:+libbsd") + depends_on("libbsd", when="+libbsd") def url_for_version(self, version): url = "https://github.com/libexpat/libexpat/releases/download/R_{0}/expat-{1}.tar.bz2" @@ -198,7 +92,7 @@ class AutotoolsBuilder(autotools.AutotoolsBuilder): def configure_args(self): spec = self.spec args = ["--without-docbook", "--enable-static"] - if spec.satisfies("+libbsd") and spec.satisfies("@2.2.1:"): + if spec.satisfies("+libbsd"): args.append("--with-libbsd") return args @@ -210,7 +104,7 @@ def cmake_args(self): self.define_from_variant("BUILD_SHARED_LIBS", "shared"), ] - if self.spec.satisfies("+libbsd") and self.spec.satisfies("@2.2.1:"): + if self.spec.satisfies("+libbsd"): args.append(self.define_from_variant("EXPAT_WITH_LIBBSD", "libbsd")) return args diff --git a/repos/spack_repo/builtin/packages/expect/func_proto.patch b/repos/spack_repo/builtin/packages/expect/func_proto.patch new file mode 100644 index 00000000000..5d726b962ad --- /dev/null +++ b/repos/spack_repo/builtin/packages/expect/func_proto.patch @@ -0,0 +1,333 @@ +From c5e79881646e792f4f686ff4de5de14b1d1a18d2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 15 Aug 2022 18:25:23 -0700 +Subject: [PATCH] Add prototype to function definitions + +Compilers like clang has started erroring out on implicit-function-declaration +therefore arrange the relevant include files where needed. + +--- + exp_chan.c | 5 +++-- + exp_clib.c | 4 +++- + exp_main_sub.c | 5 +++++ + pty_termios.c | 4 ++++ + 4 files changed, 15 insertions(+), 3 deletions(-) + +diff --git a/exp_chan.c b/exp_chan.c +index 79f486c..50375d3 100644 +--- a/exp_chan.c ++++ b/exp_chan.c +@@ -35,6 +35,7 @@ + #include "exp_prog.h" + #include "exp_command.h" + #include "exp_log.h" ++#include "exp_event.h" /* exp_background_channelhandler */ + #include "tcldbg.h" /* Dbg_StdinMode */ + + extern int expSetBlockModeProc _ANSI_ARGS_((int fd, int mode)); +@@ -631,7 +632,7 @@ expWaitOnOne() { + } + + void +-exp_background_channelhandlers_run_all() ++exp_background_channelhandlers_run_all(void) + { + ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey); + ExpState *esPtr; +@@ -760,7 +761,7 @@ expCreateChannel(interp,fdin,fdout,pid) + } + + void +-expChannelInit() { ++expChannelInit(void) { + ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey); + + tsdPtr->channelCount = 0; +diff --git a/exp_clib.c b/exp_clib.c +index b21fb5d..8f31fc3 100644 +--- a/exp_clib.c ++++ b/exp_clib.c +@@ -9,13 +9,14 @@ would appreciate credit if this program or parts of it are used. + + #include "expect_cf.h" + #include ++#include + #include + #ifdef HAVE_INTTYPES_H + # include + #endif + #include + #include +- ++#include + #ifdef TIME_WITH_SYS_TIME + # include + # include +@@ -1738,6 +1739,7 @@ int exp_getptyslave(); + #define sysreturn(x) return(errno = x, -1) + + void exp_init_pty(); ++void exp_init_tty(); + + /* + The following functions are linked from the Tcl library. They +diff --git a/exp_main_sub.c b/exp_main_sub.c +index bf6c4be..f53b89e 100644 +--- a/exp_main_sub.c ++++ b/exp_main_sub.c +@@ -61,6 +61,11 @@ int exp_cmdlinecmds = FALSE; + int exp_interactive = FALSE; + int exp_buffer_command_input = FALSE;/* read in entire cmdfile at once */ + int exp_fgets(); ++int exp_tty_cooked_echo( ++ Tcl_Interp *interp, ++ exp_tty *tty_old, ++ int *was_raw, ++ int *was_echo); + + Tcl_Interp *exp_interp; /* for use by signal handlers who can't figure out */ + /* the interpreter directly */ +diff --git a/pty_termios.c b/pty_termios.c +index c605b23..80ed5e7 100644 +--- a/pty_termios.c ++++ b/pty_termios.c +@@ -7,6 +7,7 @@ would appreciate credit if you use this file or parts of it. + + */ + ++#include /* openpty */ + #include + #include + +@@ -15,6 +16,9 @@ would appreciate credit if you use this file or parts of it. + #endif + + #include "expect_cf.h" ++#include "tclInt.h" ++ ++extern char * expErrnoMsg _ANSI_ARGS_((int)); + + /* + The following functions are linked from the Tcl library. They +-- +2.37.2 + +diff --git a/exp_chan.c b/exp_chan.c +index c92e26b6fbd02305..944200a63b102672 100644 +--- a/exp_chan.c ++++ b/exp_chan.c +@@ -60,7 +60,7 @@ void exp_background_channelhandler _ANSI_ARGS_((ClientData, + + Tcl_ChannelType expChannelType = { + "exp", /* Type name. */ +- ExpBlockModeProc, /* Set blocking/nonblocking mode.*/ ++ TCL_CHANNEL_VERSION_2, + ExpCloseProc, /* Close proc. */ + ExpInputProc, /* Input proc. */ + ExpOutputProc, /* Output proc. */ +@@ -70,6 +70,7 @@ Tcl_ChannelType expChannelType = { + ExpWatchProc, /* Initialize notifier. */ + ExpGetHandleProc, /* Get OS handles out of channel. */ + NULL, /* Close2 proc */ ++ ExpBlockModeProc, /* Set blocking/nonblocking mode.*/ + }; + + typedef struct ThreadSpecificData { +Avoid calling exit without declaring the function. + +Add missing include for memcpy. + +Use AC_TYPE_SIGNAL to fix REARM_SIG check. Add missing includes. + +Fix various implicit int return types of main. + +diff --git a/configure.in b/configure.in +index 51558fa14d2bcf7e..055c88fbd8797eaa 100755 +--- a/configure.in ++++ b/configure.in +@@ -452,7 +452,11 @@ AC_CHECK_FUNC(siglongjmp, AC_DEFINE(HAVE_SIGLONGJMP)) + # because Unixware 2.0 handles it specially and refuses to compile + # autoconf's automatic test that is a call with no arguments + AC_MSG_CHECKING([for memcpy]) +-AC_TRY_LINK(,[ ++AC_TRY_LINK([ ++#ifdef HAVE_STRING_H ++#include ++#endif ++],[ + char *s1, *s2; + memcpy(s1,s2,0); + ], +@@ -469,6 +473,7 @@ memcpy(s1,s2,0); + AC_MSG_CHECKING([if WNOHANG requires _POSIX_SOURCE]) + AC_TRY_RUN([ + #include ++int + main() { + #ifndef WNOHANG + return 0; +@@ -489,6 +494,7 @@ rm -rf wnohang + AC_TRY_RUN([ + #include + #include ++int + main() { + #ifdef WNOHANG + FILE *fp = fopen("wnohang","w"); +@@ -527,16 +533,21 @@ else + AC_DEFINE(SELECT_MASK_TYPE, fd_set) + fi + +-dnl # Check for the data type of the function used in signal(). This +-dnl # must be before the test for rearming. +-dnl # echo checking return type of signal handlers +-dnl AC_HEADER_EGREP([(void|sighandler_t).*signal], signal.h, retsigtype=void,AC_DEFINE(RETSIGTYPE, int) retsigtype=int) ++AC_TYPE_SIGNAL + + # FIXME: check if alarm exists + AC_MSG_CHECKING([if signals need to be re-armed]) + AC_TRY_RUN([ + #include +-#define RETSIGTYPE $retsigtype ++#ifdef HAVE_STDLIB_H ++# include ++#endif ++#ifdef HAVE_UNISTD_H ++# include ++#endif ++#ifndef NO_SYS_WAIT_H ++# include ++#endif + + int signal_rearms = 0; + +@@ -553,6 +564,7 @@ int n; + signal_rearms++; + } + ++int + main() + { + signal(SIGINT,parent_sigint_handler); +@@ -714,10 +726,11 @@ fi + AC_MSG_CHECKING([for struct sgttyb]) + AC_TRY_RUN([ + #include ++int + main() + { + struct sgttyb tmp; +- exit(0); ++ return 0; + }], + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SGTTYB) +@@ -738,10 +751,11 @@ if test $mach -eq 0 ; then + # pty_termios.c is set up to handle pty_termio. + AC_MSG_CHECKING([for struct termio]) + AC_TRY_RUN([#include ++ int + main() + { + struct termio tmp; +- exit(0); ++ return 0; + }], + AC_DEFINE(HAVE_TERMIO) + PTY_TYPE=termios +@@ -760,10 +774,11 @@ if test $mach -eq 0 ; then + # include + # endif + # include ++ int + main() + { + struct termios tmp; +- exit(0); ++ return 0; + }], + AC_DEFINE(HAVE_TERMIOS) + PTY_TYPE=termios +@@ -782,6 +797,7 @@ AC_TRY_RUN([ + #include + #endif + #include ++int + main() { + #if defined(TCGETS) || defined(TCGETA) + return 0; +@@ -804,6 +820,7 @@ AC_TRY_RUN([ + #include + #endif + #include ++int + main() { + #ifdef TIOCGWINSZ + return 0; +@@ -823,6 +840,7 @@ main() { + AC_MSG_CHECKING([for Cray-style ptys]) + SETUID=":" + AC_TRY_RUN([ ++int + main(){ + #ifdef CRAY + return 0; +@@ -878,12 +896,13 @@ AC_MSG_CHECKING([for SV-style timezone]) + AC_TRY_RUN([ + extern char *tzname[2]; + extern int daylight; ++int + main() + { + int *x = &daylight; + char **y = tzname; + +- exit(0); ++ return 0; + }], + AC_DEFINE(HAVE_SV_TIMEZONE) + AC_MSG_RESULT(yes), +diff --git a/tclconfig/tcl.m4 b/tclconfig/tcl.m4 +index 0689cab3da994068..ebe839e5553ba520 100644 +--- a/tclconfig/tcl.m4 ++++ b/tclconfig/tcl.m4 +@@ -2400,7 +2400,7 @@ AC_DEFUN([TEA_TIME_HANDLER], [ + AC_TRY_COMPILE([#include ], + [extern long timezone; + timezone += 1; +- exit (0);], ++ return 0;], + tcl_cv_timezone_long=yes, tcl_cv_timezone_long=no)]) + if test $tcl_cv_timezone_long = yes ; then + AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?]) +@@ -2412,7 +2412,7 @@ AC_DEFUN([TEA_TIME_HANDLER], [ + AC_TRY_COMPILE([#include ], + [extern time_t timezone; + timezone += 1; +- exit (0);], ++ return 0;], + tcl_cv_timezone_time=yes, tcl_cv_timezone_time=no)]) + if test $tcl_cv_timezone_time = yes ; then + AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?]) +@@ -2452,17 +2452,17 @@ AC_DEFUN([TEA_BUGGY_STRTOD], [ + double value; + value = strtod(infString, &term); + if ((term != infString) && (term[-1] == 0)) { +- exit(1); ++ return 1; + } + value = strtod(nanString, &term); + if ((term != nanString) && (term[-1] == 0)) { +- exit(1); ++ return 1; + } + value = strtod(spaceString, &term); + if (term == (spaceString+1)) { +- exit(1); ++ return 1; + } +- exit(0); ++ return 0; + }], tcl_cv_strtod_buggy=ok, tcl_cv_strtod_buggy=buggy, + tcl_cv_strtod_buggy=buggy)]) + if test "$tcl_cv_strtod_buggy" = buggy; then diff --git a/repos/spack_repo/builtin/packages/expect/package.py b/repos/spack_repo/builtin/packages/expect/package.py index bf721fd93ea..7d795d5dd03 100644 --- a/repos/spack_repo/builtin/packages/expect/package.py +++ b/repos/spack_repo/builtin/packages/expect/package.py @@ -38,6 +38,8 @@ class Expect(AutotoolsPackage): patch("xcode_12.patch", when="%apple-clang@12:") patch("expect_detect_tcl_private_header_os_x_mountain_lion.patch", when="@5.45:5.45.0") + # https://sourceforge.net/p/expect/patches/24/ + patch("func_proto.patch", when="%gcc@13:") def configure_args(self): spec = self.spec diff --git a/repos/spack_repo/builtin/packages/express/package.py b/repos/spack_repo/builtin/packages/express/package.py index e412875f3aa..eb84d01a518 100644 --- a/repos/spack_repo/builtin/packages/express/package.py +++ b/repos/spack_repo/builtin/packages/express/package.py @@ -30,6 +30,7 @@ class Express(CMakePackage): "+date_time+exception+filesystem+system+chrono" "+atomic+container+math+thread+program_options" ) + depends_on("protobuf") depends_on("bamtools") depends_on("zlib-api") depends_on("c", type="build") @@ -56,5 +57,22 @@ def patch(self): "%s" % self.spec["bamtools"].libs, ) + # Dont try and compile against specific file + edit.filter(r"\${PROTOBUF_LIB_DIR}/libprotobuf.a", "%s" % self.spec["protobuf"].libs) + + if self.spec.satisfies("%boost@1.82:"): + # If "boost@1.82:" C++14 is needed + # https://github.com/boostorg/math/releases/tag/boost-1.82.0 + filter_file("CMAKE_CXX_STANDARD 11", "CMAKE_CXX_STANDARD 14", "CMakeLists.txt") + if self.spec.satisfies("^abseil-cpp"): + # newer protobuffs depend on abseil-cpp, which enforces a cxx minimum, that I _believe_ + # is related to the cxxstd variant on it (defaults to 17) + cxxstd = self.spec["abseil-cpp"].variants["cxxstd"].value + filter_file( + r"CMAKE_CXX_STANDARD [0-9]{2}", f"CMAKE_CXX_STANDARD {cxxstd}", "CMakeLists.txt" + ) + if self.spec.satisfies("%boost@1.89:"): + filter_file(r"^.*\tsystem$", "", "CMakeLists.txt") + def setup_build_environment(self, env: EnvironmentModifications) -> None: env.prepend_path("CPATH", self.spec["bamtools"].prefix.include.bamtools) diff --git a/repos/spack_repo/builtin/packages/eztrace/package.py b/repos/spack_repo/builtin/packages/eztrace/package.py index 7a276e9540a..0461b511208 100644 --- a/repos/spack_repo/builtin/packages/eztrace/package.py +++ b/repos/spack_repo/builtin/packages/eztrace/package.py @@ -21,11 +21,14 @@ class Eztrace(CMakePackage, AutotoolsPackage, CudaPackage): version("master", branch="master") version("develop", branch="dev") + version("2.2.1", sha256="5da87acee12575b9f61cb33dea48a5886a68c9113cb08604d6d2a0a67ff18958") version("2.1", sha256="ab5076086eced78e4c6cf7736e7765ca1337dec95a881c9270a42b3251aeea19") version("2.0", sha256="67bd296f059cdfab303c62f674af3e1e858213d6945bd79cb8ede4a035c0c2d6") version("1.1-13", sha256="6144d04fb62b3ccad41af0268cd921161f168d0cca3f6c210c448bb0b07be7e0") version("1.1-10", sha256="63d1af2db38b04efa817614574f381e7536e12db06a2c75375d1795adda3d1d8") + variant("kokkos", default=False, description="Enable Kokkos support", when="@2.2:") + variant("python", default=False, description="Enable Python support", when="@2.2:") variant("starpu", default=False, description="Enable StarPU support", when="@2.1:") variant("netcdf", default=False, description="Enable NetCDF support", when="@2.1:") variant("pnetcdf", default=False, description="Enable PNetCDF support", when="@2.1:") @@ -51,6 +54,8 @@ class Eztrace(CMakePackage, AutotoolsPackage, CudaPackage): with when("build_system=cmake"): depends_on("cmake@3.1:", type="build") + depends_on("kokkos-tools", when="+kokkos") + depends_on("python", when="+python") depends_on("starpu", when="+starpu") depends_on("cuda", when="+cuda") depends_on("netcdf-c", when="+netcdf") @@ -96,6 +101,10 @@ def cmake_args(self): if spec.satisfies("@2.1: %llvm-openmp-ompt"): args.append(self.define("EZTRACE_ENABLE_OMPT", True)) + if spec.satisfies("+kokkos"): + args.append(self.define("EZTRACE_ENABLE_KOKKOS", True)) + if spec.satisfies("+python"): + args.append(self.define("EZTRACE_ENABLE_PYTHON", True)) if spec.satisfies("+starpu"): args.append(self.define("EZTRACE_ENABLE_STARPU", True)) if spec.satisfies("+cuda"): diff --git a/repos/spack_repo/builtin/packages/fabulous/package.py b/repos/spack_repo/builtin/packages/fabulous/package.py index 5b1315fbfeb..c4a992a7915 100644 --- a/repos/spack_repo/builtin/packages/fabulous/package.py +++ b/repos/spack_repo/builtin/packages/fabulous/package.py @@ -18,6 +18,7 @@ class Fabulous(CMakePackage): maintainers("fpruvost") version("master", branch="master", submodules=True) + version("1.1.4", sha256="bdfad5addb6df40b811bc076eacf71555f6a6291fe043e8eb9f9b0a4ee9720c5") version("1.1.3", sha256="a75a5461984360286c26b104c1d01ac6cf7c3151bfaa42d8e980eb072981f3ef") variant("blasmt", default=False, description="use multi-threaded blas and lapack kernels") diff --git a/repos/spack_repo/builtin/packages/faircmakemodules/package.py b/repos/spack_repo/builtin/packages/faircmakemodules/package.py index f2991698063..13bf044d976 100644 --- a/repos/spack_repo/builtin/packages/faircmakemodules/package.py +++ b/repos/spack_repo/builtin/packages/faircmakemodules/package.py @@ -8,7 +8,9 @@ class Faircmakemodules(CMakePackage): - """CMake Modules developed in the context of various FAIR (https://www.gsi.de/en/researchaccelerators/fair) projects""" + """CMake Modules developed in the context of various FAIR + (https://www.gsi.de/en/researchaccelerators/fair) projects. + """ homepage = "https://fairrootgroup.github.io/FairCMakeModules/latest/" url = "https://github.com/FairRootGroup/FairCMakeModules/archive/refs/tags/v1.0.0.tar.gz" diff --git a/repos/spack_repo/builtin/packages/fairlogger/package.py b/repos/spack_repo/builtin/packages/fairlogger/package.py index 38968c102ac..640b02a91df 100644 --- a/repos/spack_repo/builtin/packages/fairlogger/package.py +++ b/repos/spack_repo/builtin/packages/fairlogger/package.py @@ -16,22 +16,8 @@ class Fairlogger(CMakePackage): maintainers("dennisklein", "ChristianTackeGSI") version("develop", branch="dev", get_full_repo=True) + version("2.3.1", sha256="6cebaeed266f0018c42e02d70a725ad83209a52b950e4d75c490e8bead5db7c7") version("2.2.0", sha256="8dfb11e3aa0a9c545f3dfb310d261956727cea558d4123fd8c9c98e135e4d02b") - version( - "1.11.1", - sha256="bba5814f101d705792499e43b387190d8b8c7592466171ae045d4926485f2f70", - deprecated=True, - ) - version( - "1.10.4", - sha256="2fa321893f2c8c599cca160db243299ce1e941fbfb3f935b1139caa943bc0dba", - deprecated=True, - ) - version( - "1.9.3", - sha256="0c02076ed708372d5ae7bdebcefc8e45a8cbfa480eea781308336d60a2781f3a", - deprecated=True, - ) generator("make", "ninja", default="ninja") @@ -45,15 +31,7 @@ class Fairlogger(CMakePackage): variant( "cxxstd", default="default", - values=( - "default", - conditional("11", when="@:1.9"), - conditional("14", when="@:1"), - "17", - "20", - "23", - "26", - ), + values=("default", "17", "20", "23", "26"), multi=False, description="Use the specified C++ standard when building.", ) @@ -69,7 +47,7 @@ class Fairlogger(CMakePackage): depends_on("boost", when="+pretty") conflicts("^boost@1.70:", when="^cmake@:3.14") depends_on("fmt") - depends_on("fmt@:8", when="@:1.9") + depends_on("fmt@:11", when="@:2.3.0") def patch(self): """FairLogger gets its version number from git. @@ -84,9 +62,6 @@ def patch(self): "CMakeLists.txt", ) - if self.spec.satisfies("@:1"): - filter_file(r"(LANGUAGES C CXX)", r"LANGUAGES CXX", "CMakeLists.txt") - def cmake_args(self): args = [ self.define("DISABLE_COLOR", True), diff --git a/repos/spack_repo/builtin/packages/fairmq/package.py b/repos/spack_repo/builtin/packages/fairmq/package.py index 6ddb8a5e2a6..03e1c2af871 100644 --- a/repos/spack_repo/builtin/packages/fairmq/package.py +++ b/repos/spack_repo/builtin/packages/fairmq/package.py @@ -22,6 +22,7 @@ class Fairmq(CMakePackage): # depends on the git metadata, see also # https://github.com/spack/spack/issues/19972 # https://github.com/spack/spack/issues/14344 + version("1.10.1", tag="v1.10.1", commit="fa64faf3f755e9b00e0af738826718bf5117c8ea") version("1.9.2", tag="v1.9.2", commit="24e7a5b8d01aa30c51820f67c13a2cb7bc1ac7da") version("1.9.1", tag="v1.9.1", commit="c11506e95878a39837c5af92dc99b4a1248c13ac") version("1.8.1", tag="v1.8.1", commit="961eca52761a31a0200c567b44e2b2d6d6e50df3") @@ -58,7 +59,8 @@ class Fairmq(CMakePackage): depends_on("git") depends_on("boost@1.66: +container+program_options+filesystem+date_time+regex") - conflicts("^boost@1.88:") + conflicts("^boost@1.88") + conflicts("^boost@1.89:", when="@:1.10.0") depends_on("fairlogger@1.6: +pretty") depends_on("libzmq@4.1.4:") diff --git a/repos/spack_repo/builtin/packages/fairroot/package.py b/repos/spack_repo/builtin/packages/fairroot/package.py new file mode 100644 index 00000000000..7198eff436f --- /dev/null +++ b/repos/spack_repo/builtin/packages/fairroot/package.py @@ -0,0 +1,99 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class Fairroot(CMakePackage): + """C++ simulation, reconstruction and analysis framework for particle physics experiments""" + + homepage = "http://fairroot.gsi.de" + url = "https://github.com/FairRootGroup/FairRoot/archive/v18.8.2.tar.gz" + git = "https://github.com/FairRootGroup/FairRoot.git" + maintainers("dennisklein", "fuhlig1", "jezwilkinson") + + tags = ["hep"] + version("develop", branch="dev") + version("19.0.0", sha256="6ad650ece4b673f72f4ddfe2bffeb671239c775b672b4e99673e7145ea6d8ab2") + version("18.8.2", sha256="0bc9bafd9583f8a4c92977647c1eb360d66f45fbc6c81a15c5a1613640934684") + + variant( + "cxxstd", + default="17", + values=("17", "20"), + multi=False, + description="Use the specified C++ standard when building.", + ) + variant("sim", default=True, description="Enable simulation engines and event generators") + variant("examples", default=False, description="Install examples") + + depends_on("cmake@3.13.4:", type="build") + depends_on("cmake@3.18:", type="build", when="@19:") + depends_on("boost@1.68.0: +container +serialization") + depends_on("faircmakemodules@0.2:", when="@18:") + depends_on("fairlogger@1.4.0:") + depends_on("fairmq@1.4.11:") + + # Version-specific fairsoft release dependencies + depends_on("fairsoft-bundle") + depends_on("fairsoft-bundle@2025-05", when="@18.8.2:") + + depends_on("flatbuffers") + depends_on("fmt", when="@19:") + depends_on("geant3", when="+sim") + depends_on("geant4", when="+sim") + depends_on("geant4-vmc", when="+sim") + depends_on("googletest@1.7.0:") + depends_on("msgpack-c@3.1:", when="+examples") + depends_on("protobuf") + depends_on("pythia6", when="+sim") + depends_on("pythia8", when="+sim") + depends_on("root+http+xml+gdml") + depends_on("vgm", when="+sim") + depends_on("vmc", when="@18.4: ^root@6.18:") + depends_on("yaml-cpp", when="@18.2:") + for std in ("17", "20"): + for dep in ("root", "fairmq"): + depends_on("{0} cxxstd={1}".format(dep, std), when="cxxstd={0}".format(std)) + + def setup_build_environment(self, env): + super(Fairroot, self).setup_build_environment(env) + env.unset("SIMPATH") + env.unset("FAIRSOFT_ROOT") + + def cmake_args(self): + options = [] + options.append("--log-level=VERBOSE") + if self.spec.satisfies("@18.4:"): + cxxstd = self.spec.variants["cxxstd"].value + if cxxstd != "default": + options.append("-DCMAKE_CXX_STANDARD={0}".format(cxxstd)) + if self.spec.satisfies("@:18,develop"): + options.append("-DROOTSYS={0}".format(self.spec["root"].prefix)) + options.append("-DPYTHIA8_DIR={0}".format(self.spec["pythia8"].prefix)) + + options.append("-DBUILD_EXAMPLES:BOOL=%s" % ("ON" if "+examples" in self.spec else "OFF")) + + if self.spec.satisfies("^boost@:1.69.99"): + options.append("-DBoost_NO_BOOST_CMAKE=ON") + options.append("-DBUILD_PROOF_SUPPORT=OFF") + return options + + @property + def root_library_path(self): + if self.spec.satisfies("^root@:6.25"): + return "LD_LIBRARY_PATH" + return "ROOT_LIBRARY_PATH" + + def common_env_setup(self, env): + # So that root finds the shared library / rootmap + env.prepend_path(self.root_library_path, self.prefix.lib) + + def setup_run_environment(self, env): + self.common_env_setup(env) + + def setup_dependent_run_environment(self, env, dependent_spec): + self.common_env_setup(env) diff --git a/repos/spack_repo/builtin/packages/fairsoft_bundle/package.py b/repos/spack_repo/builtin/packages/fairsoft_bundle/package.py new file mode 100644 index 00000000000..f0264ed0771 --- /dev/null +++ b/repos/spack_repo/builtin/packages/fairsoft_bundle/package.py @@ -0,0 +1,56 @@ +# Copyright Spack Project Developers. See COPYRIGHT for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.bundle import BundlePackage + +from spack.package import * + + +class FairsoftBundle(BundlePackage): + """Bundle package providing default environment for FAIR software""" + + homepage = "https://github.com/FairRootGroup/FairSoft" + maintainers("dennisklein", "fuhlig1", "jezwilkinson") + + # Releases: + version("2025-05") + + variant("graphics", default=False, description="Enable graphical support in ROOT") + variant("mt", default=False, description="Enable multithreading for GEANT4") + + # Some normal packages + depends_on("faircmakemodules") + + # Pin some variants: + depends_on("geant4 ~threads", when="~mt") + depends_on("geant4 +threads", when="+mt") + depends_on("geant4 ~qt~vecgeom~opengl~x11~motif") + + # ensure that OpenBLAS uses CMake build system (default Makefile causes issues on some Macs) + depends_on("openblas build_system=cmake ~dynamic_dispatch") + + # Generic ROOT dependencies + depends_on("root +fortran+pythia8+vc~vdt") + # Mostly for the experiments: + depends_on("root +python+tmva+mlp+xrootd+sqlite") + # FFTW for Panda + depends_on("root +fftw") + depends_on("fftw~mpi") + depends_on("root +spectrum", when="@2025-05:") + depends_on("root ~x~opengl~aqua", when="~graphics") + depends_on("root +x+opengl", when="+graphics") + + # Using "platform=" in a when clause gets concretized too late. + # and our root recipe disables +aqua on non-macOS now. + # depends_on("root +aqua", when="+graphics platform=darwin") + depends_on("root +aqua", when="+graphics") + + # Version-specific dependencies for FairSoft releases + depends_on("pythia8@8.313", when="@2025-05") + depends_on("root@6.36.00", when="@2025-05") + depends_on("vmc@2-1", when="@2025-05") + depends_on("geant3@4-4", when="@2025-05") + depends_on("vgm@5-3-1", when="@2025-05") + depends_on("geant4-vmc@6-7-p1", when="@2025-05") + depends_on("fairsoft-config fairsoft_version=may25", when="@2025-05", type="run") diff --git a/repos/spack_repo/builtin/packages/fairsoft_config/package.py b/repos/spack_repo/builtin/packages/fairsoft_config/package.py new file mode 100644 index 00000000000..7a4144fda36 --- /dev/null +++ b/repos/spack_repo/builtin/packages/fairsoft_config/package.py @@ -0,0 +1,44 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class FairsoftConfig(CMakePackage): + """Legacy fairsoft-config script""" + + homepage = "https://github.com/FairRootGroup/fairsoft-config" + git = "https://github.com/FairRootGroup/fairsoft-config" + maintainers("dennisklein", "fuhlig1", "jezwilkinson") + + version("master") + + variant( + "cxxstd", + default="17", + values=("17", "20"), + multi=False, + description="C++ standard reported", + ) + + variant( + "fairsoft_version", + default="develop", + values=("develop", "may25"), + multi=False, + description="Installed version of fairsoft-bundle", + ) + + depends_on("cmake@3:", type="build") + depends_on("root", type=("build", "link", "run")) + + def cmake_args(self): + args = [] + args += [ + self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"), + self.define_from_variant("FAIRSOFT_VERSION", "fairsoft_version"), + ] + return args diff --git a/repos/spack_repo/builtin/packages/faiss/package.py b/repos/spack_repo/builtin/packages/faiss/package.py index 832137465f1..77f229f6334 100644 --- a/repos/spack_repo/builtin/packages/faiss/package.py +++ b/repos/spack_repo/builtin/packages/faiss/package.py @@ -4,10 +4,11 @@ import os -from spack_repo.builtin.build_systems import autotools, cmake, python +from spack_repo.builtin.build_systems import autotools, cmake from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.python import PythonPipBuilder from spack.package import * @@ -34,6 +35,7 @@ class Faiss(AutotoolsPackage, CMakePackage, CudaPackage): license("MIT") + version("1.14.1", sha256="0216d38d8c5c460433815b72d3cde6725eaa5d5770576277a2abc01ffc414d20") version("1.8.0", sha256="56ece0a419d62eaa11e39022fa27c8ed6d5a9b9eb7416cc5a0fdbeab07ec2f0c") version("1.7.4", sha256="d9a7b31bf7fd6eb32c10b7ea7ff918160eed5be04fe63bb7b4b4b5f2bbde01ad") version("1.7.2", sha256="d49b4afd6a7a5b64f260a236ee9b2efb760edb08c33d5ea5610c2f078a5995ec") @@ -117,9 +119,9 @@ def install(self, pkg, spec, prefix): super().install(pkg, spec, prefix) if spec.satisfies("+python"): - class CustomPythonPipBuilder(python.PythonPipBuilder): + class CustomPythonPipBuilder(PythonPipBuilder): def __init__(self, pkg, build_dirname): - python.PythonPipBuilder.__init__(self, pkg) + PythonPipBuilder.__init__(self, pkg) self.build_dirname = build_dirname @property @@ -159,7 +161,7 @@ def install(self, pkg, spec, prefix): if self.spec.satisfies("+python"): with working_dir("python"): - pip(*python.PythonPipBuilder.std_args(pkg), f"--prefix={prefix}", ".") + pip(*PythonPipBuilder.std_args(pkg), f"--prefix={prefix}", ".") if "+tests" not in self.spec: return diff --git a/repos/spack_repo/builtin/packages/faketime/package.py b/repos/spack_repo/builtin/packages/faketime/package.py index 6c279d53d26..626d6712a40 100644 --- a/repos/spack_repo/builtin/packages/faketime/package.py +++ b/repos/spack_repo/builtin/packages/faketime/package.py @@ -17,6 +17,7 @@ class Faketime(MakefilePackage): license("GPL-2.0-only", checked_by="wdconinc") + version("0.9.12", sha256="4fc32218697c052adcdc5ee395581f2554ca56d086ac817ced2be0d6f1f8a9fa") version("0.9.10", sha256="729ad33b9c750a50d9c68e97b90499680a74afd1568d859c574c0fe56fe7947f") depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/fakexrandr/package.py b/repos/spack_repo/builtin/packages/fakexrandr/package.py index 3b6fde1d1f8..5465cad22a8 100644 --- a/repos/spack_repo/builtin/packages/fakexrandr/package.py +++ b/repos/spack_repo/builtin/packages/fakexrandr/package.py @@ -35,9 +35,7 @@ def edit(self, spec, prefix): #define XRANDR_PATCH {2} #define REAL_XRANDR_LIB "{3}" #define FAKEXRANDR_INSTALL_DIR "{4}" -""".format( - version[0], version[1], version[2], spec["libxrandr"].libs[0], prefix.lib - ) +""".format(version[0], version[1], version[2], spec["libxrandr"].libs[0], prefix.lib) ) # Also need to hack Makefile diff --git a/repos/spack_repo/builtin/packages/falcon/package.py b/repos/spack_repo/builtin/packages/falcon/package.py index 3e5597964d5..dbb212e5afd 100644 --- a/repos/spack_repo/builtin/packages/falcon/package.py +++ b/repos/spack_repo/builtin/packages/falcon/package.py @@ -24,9 +24,9 @@ class Falcon(PythonPackage): depends_on("c", type="build") # generated - depends_on("py-setuptools", type="run") + depends_on("py-setuptools@:81", type=("build", "run")) depends_on("py-pypeflow", type="run") - depends_on("py-networkx@1.7:1.10", type=["build", "run"]) + depends_on("py-networkx@1.7:1.10", type=("build", "run")) depends_on("pacbio-dazz-db", type="run") depends_on("pacbio-daligner", type="run") depends_on("pacbio-dextractor", type="run") @@ -35,3 +35,6 @@ class Falcon(PythonPackage): # Python version 3 and later should return # a value of PyObject type. [-Wreturn-type] patch("Py_None.patch", when="^python@3:") + + def patch(self): + filter_file(r"^( local_version = ).*$", rf"\1'.{self.version.dotted}'", "setup.py") diff --git a/repos/spack_repo/builtin/packages/fann/package.py b/repos/spack_repo/builtin/packages/fann/package.py index 153719d6aa6..9f58b640ae6 100644 --- a/repos/spack_repo/builtin/packages/fann/package.py +++ b/repos/spack_repo/builtin/packages/fann/package.py @@ -23,10 +23,12 @@ class Fann(CMakePackage): homepage = "https://leenissen.dk/fann/wp/" url = "https://github.com/libfann/fann/archive/2.2.0.tar.gz" + git = "https://github.com/libfann/fann.git" - license("LGPL-2.0-or-later") + license("LGPL-2.0-or-later", checked_by="wdconinc") + version("master", branch="master") version("2.2.0", sha256="f31c92c1589996f97d855939b37293478ac03d24b4e1c08ff21e0bd093449c3c") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") diff --git a/repos/spack_repo/builtin/packages/fargparse/package.py b/repos/spack_repo/builtin/packages/fargparse/package.py index c1fd367266f..20e361c7ecb 100644 --- a/repos/spack_repo/builtin/packages/fargparse/package.py +++ b/repos/spack_repo/builtin/packages/fargparse/package.py @@ -18,9 +18,12 @@ class Fargparse(CMakePackage): maintainers("mathomp4", "tclune") + license("Apache-2.0", checked_by="mathomp4") + version("develop", branch="develop") version("main", branch="main") + version("1.11.0", sha256="867854b0d312ef22ba3938f5398727973942a31d75f4e1abd3cd9d35f0159691") version("1.10.0", sha256="c2f2b2c2f0dc263e484f7f5f6918d93f40c5b96b8970b5f19426f0a89e14a8f9") version("1.9.0", sha256="c83c13fa90b6b45adf8d84fe00571174acfa118d2a0d1e8c467f74bbd7dec49d") version("1.8.0", sha256="37108bd3c65d892d8c24611ce4d8e5451767e4afe81445fde67eab652178dd01") diff --git a/repos/spack_repo/builtin/packages/fast_float/package.py b/repos/spack_repo/builtin/packages/fast_float/package.py index c7f298e3f8e..149a3cc2a3b 100644 --- a/repos/spack_repo/builtin/packages/fast_float/package.py +++ b/repos/spack_repo/builtin/packages/fast_float/package.py @@ -16,6 +16,11 @@ class FastFloat(CMakePackage): license("Apache-2.0 OR BSL-1.0 OR MIT", checked_by="pranav-sivararamn") + version("8.1.0", sha256="4bfabb5979716995090ce68dce83f88f99629bc17ae280eae79311c5340143e1") + version("8.0.2", sha256="e14a33089712b681d74d94e2a11362643bd7d769ae8f7e7caefe955f57f7eacd") + version("8.0.1", sha256="18f868f0117b359351f2886be669ce9cda9ea281e6bf0bcc020226c981cc3280") + version("8.0.0", sha256="f312f2dc34c61e665f4b132c0307d6f70ad9420185fa831911bc24408acf625d") + version("7.0.0", sha256="d2a08e722f461fe699ba61392cd29e6b23be013d0f56e50c7786d0954bffcb17") version("6.1.6", sha256="4458aae4b0eb55717968edda42987cabf5f7fc737aee8fede87a70035dba9ab0") version("6.1.5", sha256="597126ff5edc3ee59d502c210ded229401a30dafecb96a513135e9719fcad55f") version("6.1.4", sha256="12cb6d250824160ca16bcb9d51f0ca7693d0d10cb444f34f1093bc02acfce704") diff --git a/repos/spack_repo/builtin/packages/fastani/package.py b/repos/spack_repo/builtin/packages/fastani/package.py index 6a34e7868c6..73c760b1f83 100644 --- a/repos/spack_repo/builtin/packages/fastani/package.py +++ b/repos/spack_repo/builtin/packages/fastani/package.py @@ -32,3 +32,6 @@ class Fastani(CMakePackage, AutotoolsPackage): depends_on("m4", type="build", when="build_system=autotools") depends_on("gsl", type=("build", "link")) depends_on("zlib-api", type=("build", "link")) + + def cmake_args(self): + return ["-DBUILD_TESTING=OFF"] diff --git a/repos/spack_repo/builtin/packages/fastdfs/package.py b/repos/spack_repo/builtin/packages/fastdfs/package.py index ad277bc5f09..d5d8c227944 100644 --- a/repos/spack_repo/builtin/packages/fastdfs/package.py +++ b/repos/spack_repo/builtin/packages/fastdfs/package.py @@ -34,7 +34,7 @@ class Fastdfs(Package): depends_on("libfastcommon", type="build") def install(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("make.sh") sh("make.sh", "install") install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/fastjet/package.py b/repos/spack_repo/builtin/packages/fastjet/package.py index 711642cf611..43084dbb761 100644 --- a/repos/spack_repo/builtin/packages/fastjet/package.py +++ b/repos/spack_repo/builtin/packages/fastjet/package.py @@ -26,6 +26,7 @@ class Fastjet(AutotoolsPackage): license("GPL-2.0-only") + version("3.5.1", sha256="9a4154163e72041dee3fdde9cb24e814625e178091a8734a6ad5375e5371b423") version("3.5.0", sha256="42d0cacffb204b1160591d507489ee50375a279efb173f8da426ca1bde9d4c29") version("3.4.3", sha256="cc175471bfab8656b8c6183a8e5e9ad05d5f7506e46f3212a9a8230905b8f6a3") version("3.4.2", sha256="b3d33155b55ce43f420cd6d99b525acf7bdc2593a7bb7ea898a9ddb3d8ca38e3") diff --git a/repos/spack_repo/builtin/packages/fastmath/package.py b/repos/spack_repo/builtin/packages/fastmath/package.py index 36b68252118..6617f4e4a52 100644 --- a/repos/spack_repo/builtin/packages/fastmath/package.py +++ b/repos/spack_repo/builtin/packages/fastmath/package.py @@ -20,7 +20,7 @@ class Fastmath(BundlePackage): depends_on("amrex") # default is 3 dimensions depends_on("chombo@3.2") - depends_on("hypre~internal-superlu") + depends_on("hypre") # depends_on('ml-trilinos') # hoping for stripped down install of just ml # depends_on('nox-trilinos') # hoping for stripped down install of just nox depends_on("mpi") diff --git a/repos/spack_repo/builtin/packages/fastplong/package.py b/repos/spack_repo/builtin/packages/fastplong/package.py new file mode 100644 index 00000000000..496d7296c80 --- /dev/null +++ b/repos/spack_repo/builtin/packages/fastplong/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.makefile import MakefilePackage + +from spack.package import * + + +class Fastplong(MakefilePackage): + """Ultrafast preprocessing and quality control for long reads (Nanopore, + PacBio, Cyclone, etc.).""" + + homepage = "https://github.com/OpenGene/fastplong" + url = "https://github.com/OpenGene/fastplong/archive/refs/tags/v0.4.1.tar.gz" + + maintainers("emwjacobson") + + license("MIT", checked_by="emwjacobson") + + version("0.4.1", sha256="9d957babfaa216512a542a39dd1b0389384b3d444b55353032e7b707c2cfc969") + + depends_on("cxx", type="build") + + depends_on("libdeflate") + depends_on("isa-l") + depends_on("highway") + + def install(self, spec, prefix): + mkdirp(prefix.bin) + make(f"PREFIX={prefix}", "install") diff --git a/repos/spack_repo/builtin/packages/fastq_scan/package.py b/repos/spack_repo/builtin/packages/fastq_scan/package.py new file mode 100644 index 00000000000..9336ab8eda7 --- /dev/null +++ b/repos/spack_repo/builtin/packages/fastq_scan/package.py @@ -0,0 +1,37 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. + +from spack_repo.builtin.build_systems.makefile import MakefilePackage + +from spack.package import * + + +class FastqScan(MakefilePackage): + """Fastq-scan reads a FASTQ from stdin and outputs summary statistics in JSON.""" + + homepage = "https://github.com/rpetit3/fastq-scan" + url = "https://github.com/rpetit3/fastq-scan/archive/refs/tags/v1.0.1.tar.gz" + + maintainers("josue-iac") + + license("MIT") + + version("1.0.1", sha256="b0b781cfac1e0fb90a432151c290f7e79a1af882f643406cc62ec8ec994fdf6d") + version("1.0.0", sha256="3f1157196cf51294b421c640eb67593a059c8cee2f80f5479358c51f88f496c5") + version("0.4.4", sha256="e05779660495b26af51de00562f6c28f2ab32be16794ea223ba82dc78d112ee1") + version("0.4.3", sha256="4d0ff86d746040051f830697c0f793ba039b0a1f5eae6ef641406fe7551cf169") + version("0.4.2", sha256="d991f6978f2fb05363cbf548d2c8396e52503c332e73c5159c2f1cb5228fb249") + version("0.4.1", sha256="5fc4bf0b00da283a709c38c77fe4b30b98567cca9198fbdf033fd7aee2673032") + version("0.4.0", sha256="45ca1fcc824c0abbc057cae190808c56f842b2d565f6ca7f2a4aac6372045c4e") + version("0.3", sha256="e63cc9efa157e5dc65173b0fce1c87a8fdbaf7be2f493b6e1fc40d128510d101") + version("0.2", sha256="0f5235fe6b358b29c7e9330e5db0ae5f25b01ddf6703426d6d8a529503d920cc") + + depends_on("zlib", type=("build", "link")) + + @property + def build_targets(self): + return [f"CXX={self.compiler.cxx}", "all"] + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install("fastq-scan", prefix.bin) + install("README.md", prefix) diff --git a/repos/spack_repo/builtin/packages/fastqc/fastqc_0.11.2.patch b/repos/spack_repo/builtin/packages/fastqc/fastqc_0.11.2.patch new file mode 100644 index 00000000000..257a2780ea9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/fastqc/fastqc_0.11.2.patch @@ -0,0 +1,30 @@ +--- fastqc.orig 2025-08-27 13:04:45.212667517 -0500 ++++ fastqc 2025-08-27 13:07:49.877031362 -0500 +@@ -38,12 +38,21 @@ + $delimiter = ';'; + } + +-if ($ENV{CLASSPATH}) { +- $ENV{CLASSPATH} .= "$delimiter$RealBin$delimiter$RealBin/sam-1.103.jar$delimiter$RealBin/jbzip2-0.9.jar"; +-} +-else { +- $ENV{CLASSPATH} = "$RealBin$delimiter$RealBin/sam-1.103.jar$delimiter$RealBin/jbzip2-0.9.jar"; +-} ++# The lib dir is $RealBin/../lib ++# start with list of jars we need and prefix them with the lib dir ++# then stick CLASSPATH onto the front (empty or otherwise...) ++# then filter out anything that's empty (perhaps CLASSPATH...) ++# then join all the remainings bits with the delimiter. ++use File::Basename; ++use File::Spec::Functions; ++my $_lib = catfile(dirname($RealBin), 'lib'); ++$ENV{CLASSPATH} = ++ join($delimiter, ++ grep {$_} ++ ($ENV{CLASSPATH}, ++ $_lib, ++ map {"$_lib/$_"} ++ qw(sam-1.103.jar jbzip2-0.9.jar))); + + my @java_args; + my @files; diff --git a/repos/spack_repo/builtin/packages/fastqc/package.py b/repos/spack_repo/builtin/packages/fastqc/package.py index c9ef70708a8..f793005a409 100644 --- a/repos/spack_repo/builtin/packages/fastqc/package.py +++ b/repos/spack_repo/builtin/packages/fastqc/package.py @@ -20,12 +20,15 @@ class Fastqc(Package): version("0.11.7", sha256="59cf50876bbe5f363442eb989e43ae3eaab8d932c49e8cff2c1a1898dd721112") version("0.11.5", sha256="dd7a5ad80ceed2588cf6d6ffe35e0f161c0d9977ed08355f5e4d9473282cbd66") version("0.11.4", sha256="adb233f9fae7b02fe99e716664502adfec1b9a3fbb84eed4497122d6d33d1fe7") + version("0.11.2", sha256="f362b141e696d67442fa16c3a71118936e0b14a0343bb88735973a920cbaef09") depends_on("java", type="run") depends_on("perl") # for fastqc "script", any perl will do patch("fastqc_0.12.x.patch", level=0, when="@0.12:") - patch("fastqc_0.11.x.patch", level=0, when="@:0.11.9") + patch("fastqc_0.11.x.patch", level=0, when="@0.11.4:0.11.9") + # Custom patch for 0.11.2 as it doesn't have one of the .jar files + patch("fastqc_0.11.2.patch", level=0, when="@0.11.2") def patch(self): filter_file("/usr/bin/perl", self.spec["perl"].command.path, "fastqc", backup=False) @@ -34,7 +37,8 @@ def install(self, spec, prefix): mkdir(prefix.bin) mkdir(prefix.lib) install("fastqc", prefix.bin) - install("cisd-jhdf5.jar", prefix.lib) + if not self.spec.satisfies("@0.11.2"): + install("cisd-jhdf5.jar", prefix.lib) install("jbzip2-0.9.jar", prefix.lib) if self.spec.satisfies("@:0.11.9"): install("sam-1.103.jar", prefix.lib) @@ -42,5 +46,5 @@ def install(self, spec, prefix): install("htsjdk.jar", prefix.lib) for d in ["Configuration", "net", "org", "Templates", "uk"]: install_tree(d, join_path(prefix.lib, d)) - chmod = which("chmod") + chmod = which("chmod", required=True) chmod("+x", prefix.bin.fastqc) diff --git a/repos/spack_repo/builtin/packages/fcgi/package.py b/repos/spack_repo/builtin/packages/fcgi/package.py index 76c9c518baf..617faa6e84d 100644 --- a/repos/spack_repo/builtin/packages/fcgi/package.py +++ b/repos/spack_repo/builtin/packages/fcgi/package.py @@ -18,14 +18,17 @@ class Fcgi(AutotoolsPackage): license("OML") - version("2.4.4", sha256="c0e0d9cc7d1e456d7278c974e2826f593ef5ca555783eba81e7e9c1a07ae0ecc") - version("2.4.3", sha256="5273bc54c28215d81b9bd78f937a9bcdd4fe94e41ccd8d7c991aa8a01b50b70e") - version("2.4.2", sha256="1fe83501edfc3a7ec96bb1e69db3fd5ea1730135bd73ab152186fd0b437013bc") - version( - "2.4.1-SNAP-0910052249", - sha256="829dc89a0a372c7b0b172303ec9b42e9d20615d6d0e9fc81570fdac6c41a0f30", - url="https://github.com/FastCGI-Archives/FastCGI.com/raw/master/original_snapshot/fcgi-2.4.1-SNAP-0910052249.tar.gz", - ) + version("2.4.7", sha256="e41ddc3a473b555bdc0cbd80703dcb1f4610c1a7700d3b9d3d0c14a416e1074b") + # CVE-2025-23016 + with default_args(deprecated=True): + version("2.4.4", sha256="c0e0d9cc7d1e456d7278c974e2826f593ef5ca555783eba81e7e9c1a07ae0ecc") + version("2.4.3", sha256="5273bc54c28215d81b9bd78f937a9bcdd4fe94e41ccd8d7c991aa8a01b50b70e") + version("2.4.2", sha256="1fe83501edfc3a7ec96bb1e69db3fd5ea1730135bd73ab152186fd0b437013bc") + version( + "2.4.1-SNAP-0910052249", + sha256="829dc89a0a372c7b0b172303ec9b42e9d20615d6d0e9fc81570fdac6c41a0f30", + url="https://github.com/FastCGI-Archives/FastCGI.com/raw/master/original_snapshot/fcgi-2.4.1-SNAP-0910052249.tar.gz", + ) depends_on("c", type="build") depends_on("cxx", type="build") @@ -34,3 +37,9 @@ class Fcgi(AutotoolsPackage): depends_on("libtool", type="build") parallel = False + + def patch(self): + if self.spec.satisfies("@2.4.7"): + # 2.4.7 removed m4/ but not AC_CONFIG_MACRO_DIR + # https://github.com/FastCGI-Archives/fcgi2/pull/78 + mkdirp(self.stage.source_path, "m4") diff --git a/repos/spack_repo/builtin/packages/fckit/package.py b/repos/spack_repo/builtin/packages/fckit/package.py index f1ac84959e8..26fe1aa3c09 100644 --- a/repos/spack_repo/builtin/packages/fckit/package.py +++ b/repos/spack_repo/builtin/packages/fckit/package.py @@ -23,6 +23,7 @@ class Fckit(CMakePackage): version("master", branch="master") version("develop", branch="develop") + version("0.14.2", sha256="e12b3a2101c39ec478f1208962ef4c3d0f95ef3ef2d4ff39c804c48f8dfb147b") version("0.14.1", sha256="b15c3a30d4c6aaf9b97d8930bf1b7fd94b015746c421daeb3e648170b30bcbcb") version("0.13.2", sha256="990623eb4eb999145f2d852da9fbd71a69e2e0be601c655c274e8382750dfda2") version("0.13.1", sha256="89a067a7b5b1f2c7909739b567bd43b69f8a2d91e8cbcbac58655fb2d861db51") @@ -48,7 +49,9 @@ class Fckit(CMakePackage): variant("eckit", default=True, description="Enable eckit") depends_on("eckit@:1.23 +mpi", when="@:0.10 +eckit") - depends_on("eckit@1.24: +mpi", when="@0.11: +eckit") + # https://github.com/ecmwf/fckit/pull/84 + depends_on("eckit@1.24:1.33 +mpi", when="@0.11:0.14.1 +eckit") + depends_on("eckit@2: +mpi", when="@0.14.2: +eckit") variant("openmp", default=True, description="Use OpenMP?") depends_on("llvm-openmp", when="+openmp %apple-clang", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/fd/package.py b/repos/spack_repo/builtin/packages/fd/package.py index 309e81496aa..87f2a942354 100644 --- a/repos/spack_repo/builtin/packages/fd/package.py +++ b/repos/spack_repo/builtin/packages/fd/package.py @@ -22,8 +22,8 @@ class Fd(CargoPackage): license("Apache-2.0 OR MIT") - # Versions from newest to oldest version("master", branch="master") + version("10.3.0", sha256="2edbc917a533053855d5b635dff368d65756ce6f82ddefd57b6c202622d791e9") version("10.2.0", sha256="73329fe24c53f0ca47cd0939256ca5c4644742cb7c14cf4114c8c9871336d342") version("10.1.0", sha256="ee4b2403388344ff60125c79ff25b7895a170e7960f243ba2b5d51d2c3712d97") version("9.0.0", sha256="306d7662994e06e23d25587246fa3fb1f528579e42a84f5128e75feec635a370") @@ -31,12 +31,14 @@ class Fd(CargoPackage): version("8.4.0", sha256="d0c2fc7ddbe74e3fd88bf5bb02e0f69078ee6d2aeea3d8df42f508543c9db05d") version("7.4.0", sha256="33570ba65e7f8b438746cb92bb9bc4a6030b482a0d50db37c830c4e315877537") - # Build dependencies 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("gmake", type="build") + @run_after("install") def install_completions(self): """Install shell completion files for bash, fish, and zsh.""" diff --git a/repos/spack_repo/builtin/packages/fdb/package.py b/repos/spack_repo/builtin/packages/fdb/package.py index 64ef0fead34..b579a9a6ab6 100644 --- a/repos/spack_repo/builtin/packages/fdb/package.py +++ b/repos/spack_repo/builtin/packages/fdb/package.py @@ -14,12 +14,22 @@ class Fdb(CMakePackage): homepage = "https://github.com/ecmwf/fdb" url = "https://github.com/ecmwf/fdb/archive/refs/tags/5.7.8.tar.gz" git = "https://github.com/ecmwf/fdb.git" + list_url = "https://github.com/ecmwf/fdb/tags" - maintainers("skosukhin", "victoria-cherkas") + maintainers("victoria-cherkas") license("Apache-2.0") version("master", branch="master") + + version("5.19.2", sha256="7dfffd7279a53431fe11a82b5c6dcc94f42bc5100a0ff925fe0b54de94d1cfe2") + version("5.19.1", sha256="de5edddd4c17cb4ddfe61bfed60a6b37408d5ed92a2d19a493592e1abfe65a8d") + version("5.19.0", sha256="1275c4b89dcdfcb342a255e22a7d500070d5d32251910c4c2a10d5734c0590eb") + version("5.18.3", sha256="8b6fff6c32923bd8e456f2ec1540b171b4efdbf92e81ae2e5ff2967dec224a86") + version("5.18.0", sha256="d72c7180b9c0e3048a19bc60df6f2827e7849dea8299b7d3f21d5ffb7fc99951") + version("5.17.3", sha256="b477f95a00bd0177e26490e0d0911679aba9183c53ac525625fe1665487068d0") + version("5.16.2", sha256="1014c85f7bd6f406f9abd04d0f5bd5bd757c17a1556dd6e49e0288bf455da12a") + version("5.13.106", sha256="34c7ee498f7511f5255ffcfd94bee51264c6e4892063e2c2a172f2a4fd86062d") version("5.11.23", sha256="09b1d93f2b71d70c7b69472dfbd45a7da0257211f5505b5fcaf55bfc28ca6c65") version("5.11.17", sha256="375c6893c7c60f6fdd666d2abaccb2558667bd450100817c0e1072708ad5591e") version("5.10.8", sha256="6a0db8f98e13c035098dd6ea2d7559f883664cbf9cba8143749539122ac46099") diff --git a/repos/spack_repo/builtin/packages/fenics/package.py b/repos/spack_repo/builtin/packages/fenics/package.py index 160c416bf5b..5bba72fd338 100644 --- a/repos/spack_repo/builtin/packages/fenics/package.py +++ b/repos/spack_repo/builtin/packages/fenics/package.py @@ -30,19 +30,8 @@ class Fenics(CMakePackage): version( "2018.1.0.post1", sha256="425cc49b90e0f5c2ebdd765ba9934b1ada97e2ac2710d982d6d267a5e2c5982d" ) - # Pre 2018.1.0 versions are deprecated due to expected compatibility issues - version( - "2017.2.0.post0", - sha256="d3c40cd8c1c882f517999c25ea4220adcd01dbb1d829406fce99b1fc40184c82", - deprecated=True, - ) - version( - "2016.2.0", - sha256="c6760996660a476f77889e11e4a0bc117cc774be0eec777b02a7f01d9ce7f43d", - deprecated=True, - ) - dolfin_versions = ["2019.1.0", "2018.1.0", "2017.2.0", "2016.2.0"] + dolfin_versions = ["2019.1.0", "2018.1.0"] variant("python", default=True, description="Compile with Python interface") variant("hdf5", default=True, description="Compile with HDF5") diff --git a/repos/spack_repo/builtin/packages/fenics_basix/package.py b/repos/spack_repo/builtin/packages/fenics_basix/package.py index f91f40ba11f..f6025fa6e05 100644 --- a/repos/spack_repo/builtin/packages/fenics_basix/package.py +++ b/repos/spack_repo/builtin/packages/fenics_basix/package.py @@ -17,13 +17,22 @@ class FenicsBasix(CMakePackage): license("MIT") - version("main", branch="main") + version("main", branch="main", no_cache=True) + version( + "0.10.0.post0", sha256="11a6482fb8d7204fbd77aaf457a9ae3e75db1707b3e30ea2c938eccfee925ea4" + ) + version("0.10.0", sha256="b93221dac7d3fea8c10e77617f6201036de35d0c5437440b718de69a28c3773f") version("0.9.0", sha256="60e96b2393084729b261cb10370f0e44d12735ab3dbd1f15890dec23b9e85329") version("0.8.0", sha256="b299af82daf8fa3e4845e17f202491fe71b313bf6ab64c767a5287190b3dd7fe") - version("0.7.0", sha256="9bee81b396ee452eec8d9735f278cb44cb6994c6bc30aec8ed9bb4b12d83fa7f") - version("0.6.0", sha256="687ae53153c98facac4080dcdc7081701db1dcea8c5e7ae3feb72aec17f83304") - depends_on("cxx", type="build") # generated + variant( + "build_type", + default="RelWithDebInfo", + description="CMake build type", + values=("Debug", "Release", "RelWithDebInfo", "MinSizeRel", "Developer"), + ) + + depends_on("cxx", type="build") depends_on("cmake@3.21:", when="@0.9:", type="build") depends_on("cmake@3.19:", when="@:0.8", type="build") diff --git a/repos/spack_repo/builtin/packages/fenics_dolfinx/0.8-boost-filesystem.patch b/repos/spack_repo/builtin/packages/fenics_dolfinx/0.8-boost-filesystem.patch new file mode 100644 index 00000000000..2df16dda36a --- /dev/null +++ b/repos/spack_repo/builtin/packages/fenics_dolfinx/0.8-boost-filesystem.patch @@ -0,0 +1,11 @@ +--- a/cpp/cmake/templates/DOLFINXConfig.cmake.in ++++ b/cpp/cmake/templates/DOLFINXConfig.cmake.in +@@ -17,7 +17,7 @@ if(DEFINED ENV{BOOST_ROOT} OR DEFINED BOOST_ROOT) + endif() + set(Boost_USE_MULTITHREADED $ENV{BOOST_USE_MULTITHREADED}) + set(Boost_VERBOSE TRUE) +-find_dependency(Boost 1.70 REQUIRED COMPONENTS timer filesystem) ++find_dependency(Boost 1.70 REQUIRED COMPONENTS timer) + + if(@ufcx_FOUND@) + find_dependency(ufcx) diff --git a/repos/spack_repo/builtin/packages/fenics_dolfinx/package.py b/repos/spack_repo/builtin/packages/fenics_dolfinx/package.py index 2291e99c9f2..c53169db7fa 100644 --- a/repos/spack_repo/builtin/packages/fenics_dolfinx/package.py +++ b/repos/spack_repo/builtin/packages/fenics_dolfinx/package.py @@ -8,20 +8,30 @@ class FenicsDolfinx(CMakePackage): - """Next generation FEniCS problem solving environment""" + """Next generation FEniCS problem solving environment.""" homepage = "https://github.com/FEniCS/dolfinx" git = "https://github.com/FEniCS/dolfinx.git" url = "https://github.com/FEniCS/dolfinx/archive/v0.1.0.tar.gz" maintainers("chrisrichardson", "garth-wells", "nate-sime", "jhale") - license("LGPL-3.0-or-later") - version("main", branch="main") + version("main", branch="main", no_cache=True) + version( + "0.10.0.post4", sha256="3f827a88ab52843fbd7a5cc7814ecba165bdec65fd10df05eb031c286e8cd605" + ) version("0.9.0", sha256="b266c74360c2590c5745d74768c04568c965b44739becca4cd6b5aa58cdbbbd1") version("0.8.0", sha256="acf3104d9ecc0380677a6faf69eabfafc58d0cce43f7777e1307b95701c7cad9") - version("0.7.2", sha256="7d9ce1338ce66580593b376327f23ac464a4ce89ef63c105efc1a38e5eae5c0b") - version("0.6.0", sha256="eb8ac2bb2f032b0d393977993e1ab6b4101a84d54023a67206e3eac1a8d79b80") + + patch("0.8-boost-filesystem.patch", when="@0.8") + + # CMake build types + variant( + "build_type", + default="RelWithDebInfo", + description="CMake build type", + values=("Debug", "Release", "RelWithDebInfo", "MinSizeRel", "Developer"), + ) # Graph partitioner variants variant( @@ -32,49 +42,51 @@ class FenicsDolfinx(CMakePackage): multi=True, ) - # HDF5 dependency requires C in CMake - depends_on("c", type="build") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") # HDF5 dependency requires C in CMake config + depends_on("cxx", type="build") + + conflicts("%gcc@:12", when="@0.10:") # Graph partitioner dependencies depends_on("kahip@3.12:", when="partitioners=kahip") depends_on("parmetis", when="partitioners=parmetis") depends_on("scotch+mpi", when="partitioners=scotch") + # 0.9: finds SCOTCH in CMake CONFIG mode, which requires SCOTCH 7.0.1: + depends_on("scotch@7.0.1:", when="@0.9:") - variant("slepc", default=False, description="slepc support") - variant("adios2", default=False, description="adios2 support") + variant("slepc", default=False, description="SLEPc support") + variant("adios2", default=False, description="ADIOS2 support") variant("petsc", default=False, description="PETSc support") + variant("superlu-dist", default=False, description="SuperLU_DIST support", when="@main") + + conflicts("~petsc", when="+slepc", msg="+slepc requires +petsc") - depends_on("petsc", when="+slepc") depends_on("cmake@3.21:", when="@0.9:", type="build") depends_on("cmake@3.19:", when="@:0.8", type="build") depends_on("pkgconfig", type="build") depends_on("mpi") depends_on("hdf5+mpi") - depends_on("boost@1.7.0:+filesystem+program_options+timer") + depends_on("boost@1.70:") + depends_on("boost@1.70:+timer", when="@:0.9") depends_on("pugixml") depends_on("spdlog", when="@0.9:") depends_on("petsc+mpi+shared", when="+petsc") - depends_on("slepc", when="+slepc") + with when("+slepc"): + depends_on("petsc+mpi+shared") + depends_on("slepc") - depends_on("adios2@2.8.1:+mpi", when="@0.9: +adios2") + depends_on("adios2@:2.10", when="@:0.9 +adios2") + depends_on("adios2@2.8.1:", when="@0.9: +adios2") depends_on("adios2+mpi", when="+adios2") - depends_on("fenics-ufcx@main", when="@main") - depends_on("fenics-ufcx@0.9", when="@0.9") - depends_on("fenics-ufcx@0.8", when="@0.8") - depends_on("fenics-ufcx@0.7", when="@0.7") - depends_on("fenics-ufcx@0.6", when="@0.6") - - depends_on("fenics-basix@main", when="@main") - depends_on("fenics-basix@0.9", when="@0.9") - depends_on("fenics-basix@0.8", when="@0.8") - depends_on("fenics-basix@0.7", when="@0.7") - depends_on("fenics-basix@0.6", when="@0.6") + depends_on("superlu-dist", when="+superlu-dist") - conflicts("%gcc@:9.10", msg="fenics-dolfinx requires GCC-10 or newer for C++20 support") - conflicts("%clang@:9.10", msg="fenics-dolfinx requires Clang-10 or newer for C++20 support") + for ver in ("main", "0.10", "0.9", "0.8"): + depends_on(f"fenics-ufcx@{ver}", when=f"@{ver}") + depends_on(f"fenics-basix@{ver}", when=f"@{ver}") + depends_on(f"py-fenics-ffcx@{ver}", when=f"@{ver}", type="test") + depends_on("catch2", type="test") root_cmakelists_dir = "cpp" @@ -88,4 +100,5 @@ def cmake_args(self): self.define("DOLFINX_ENABLE_KAHIP", "partitioners=kahip" in self.spec), self.define("DOLFINX_ENABLE_PARMETIS", "partitioners=parmetis" in self.spec), self.define("DOLFINX_ENABLE_SCOTCH", "partitioners=scotch" in self.spec), + self.define("DOLFINX_ENABLE_SUPERLU_DIST", "superlu-dist" in self.spec), ] diff --git a/repos/spack_repo/builtin/packages/fenics_ufcx/package.py b/repos/spack_repo/builtin/packages/fenics_ufcx/package.py index be3a4a30ec0..debc4992ee8 100644 --- a/repos/spack_repo/builtin/packages/fenics_ufcx/package.py +++ b/repos/spack_repo/builtin/packages/fenics_ufcx/package.py @@ -17,14 +17,14 @@ class FenicsUfcx(CMakePackage): url = "https://github.com/FEniCS/ffcx/archive/v0.4.2.tar.gz" maintainers("ma595", "jhale", "garth-wells", "chrisrichardson") - license("LGPL-3.0-or-later") + license("Unlicense") - version("main", branch="main") + version("main", branch="main", no_cache=True) + version("0.10.0", sha256="fa27e2dc68988cbf9aca537eb5a58483f75cc719c1a383713b7f8cca49844ff9") version("0.9.0", sha256="afa517272a3d2249f513cb711c50b77cf8368dd0b8f5ea4b759142229204a448") version("0.8.0", sha256="8a854782dbd119ec1c23c4522a2134d5281e7f1bd2f37d64489f75da055282e3") - version("0.7.0", sha256="7f3c3ca91d63ce7831d37799cc19d0551bdcd275bdfa4c099711679533dd1c71") - version("0.6.0", sha256="076fad61d406afffd41019ae1abf6da3f76406c035c772abad2156127667980e") depends_on("cmake@3.19:", type="build") + depends_on("c", type="build") root_cmakelists_dir = "cmake" diff --git a/repos/spack_repo/builtin/packages/fflas_ffpack/package.py b/repos/spack_repo/builtin/packages/fflas_ffpack/package.py new file mode 100644 index 00000000000..4b9d3ffcfc5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/fflas_ffpack/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.autotools import AutotoolsPackage + +from spack.package import * + + +class FflasFfpack(AutotoolsPackage): + """FFLAS-FFPACK is a library for dense linear algebra over finite + fields, providing high-performance implementations of classical + and fast matrix algorithms (e.g., Gaussian elimination, rank, + determinant, minimal/characteristic polynomials) using Givaro for + finite field arithmetic.""" + + homepage = "https://linbox-team.github.io/fflas-ffpack/" + url = "https://github.com/linbox-team/fflas-ffpack/releases/download/v2.5.0/fflas-ffpack-2.5.0.tar.gz" + + maintainers("d-torrance") + + license("LGPL-2.1-or-later", checked_by="d-torrance") + + version("2.5.0", sha256="dafb4c0835824d28e4f823748579be6e4c8889c9570c6ce9cce1e186c3ebbb23") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("pkgconfig", type="build") + + depends_on("blas") + depends_on("givaro") + depends_on("lapack") diff --git a/repos/spack_repo/builtin/packages/ffmpeg/package.py b/repos/spack_repo/builtin/packages/ffmpeg/package.py index 27f58304557..1cf661e3ec1 100644 --- a/repos/spack_repo/builtin/packages/ffmpeg/package.py +++ b/repos/spack_repo/builtin/packages/ffmpeg/package.py @@ -21,6 +21,9 @@ class Ffmpeg(AutotoolsPackage): license("LGPL-2.1-or-later AND GPL-2.0-or-later", when="+gpl", checked_by="wdconinc") version("master", branch="master") + version("8.1", sha256="c07039598df7d64d3c8b42c4e25b1959fc908621c6f6c2946881133f3b27eda2") + version("8.0.1", sha256="65ff433fab5727fb2dc41f1d508dc60e6192fea44cab2e0301194feee4bcf1d7") + version("8.0", sha256="3e74acc48ddb9f5f70b6747d3f439d51e7cc5497f097d58e5975c84488f4d186") version("7.1", sha256="fd59e6160476095082e94150ada5a6032d7dcc282fe38ce682a00c18e7820528") version("7.0.2", sha256="1ed250407ea8f955cca2f1139da3229fbc13032a0802e4b744be195865ff1541") version("7.0", sha256="a24d9074bf5523a65aaa9e7bd02afe4109ce79d69bd77d104fed3dab4b934d7a") @@ -95,16 +98,17 @@ class Ffmpeg(AutotoolsPackage): conflicts("@1", when="platform=darwin target=aarch64:", msg="requires gas-preprocessor") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("alsa-lib", when="platform=linux") depends_on("iconv") - depends_on("yasm@1.2.0:") + depends_on("nasm", type="build") depends_on("zlib-api") depends_on("pkgconfig", type="build") + depends_on("aom@2.0.0:", when="@7.1:+libaom") depends_on("aom", when="+libaom") depends_on("bzip2", when="+bzlib") depends_on("fontconfig", when="+drawtext") diff --git a/repos/spack_repo/builtin/packages/fftw/package.py b/repos/spack_repo/builtin/packages/fftw/package.py index 3bed0c90b3b..6b794cb18a8 100644 --- a/repos/spack_repo/builtin/packages/fftw/package.py +++ b/repos/spack_repo/builtin/packages/fftw/package.py @@ -78,7 +78,7 @@ def patch(self): def autoreconf(self, spec, prefix): if spec.satisfies("+pfft_patches"): - autoreconf = which("autoreconf") + autoreconf = which("autoreconf", required=True) autoreconf("-ifv") @property @@ -106,6 +106,13 @@ def configure(self, spec, prefix): options = ["--prefix={0}".format(prefix), "--enable-threads"] options.extend(self.enable_or_disable("shared")) + # On Apple Arm machines, force to use aarch64 rather than arm + # to check for NEON due to logic in configure. + if self.spec.satisfies("platform=darwin target=m1:"): + uname = Executable("uname") + uname_r = uname("-r", output=str) + options.append("--build=aarch64-apple-darwin{0}".format(uname_r)) + if not self.compiler.f77 or not self.compiler.fc: options.append("--disable-fortran") if spec.satisfies("@:2"): @@ -121,12 +128,19 @@ def configure(self, spec, prefix): if spec.satisfies("+mpi"): options.append("--enable-mpi") + if spec.satisfies("target=aarch64:"): + options.append("--enable-armv8-cntvct-el0") + # Specific SIMD support. # all precisions - simd_features = ["sse2", "avx", "avx2", "avx512", "avx-128-fma", "kcvi", "vsx"] + simd_features = ["sse2", "avx", "avx2", "avx512", "avx-128-fma", "kcvi", "vsx", "asimd"] # float only float_simd_features = ["altivec", "sse", "neon"] + # armv8 introduced asimd to replace neon feature + if "asimd" in spec.target: + float_simd_features.remove("neon") + # Workaround NVIDIA/PGI compiler bug when avx512 is enabled if spec.satisfies("%nvhpc"): if "avx512" in simd_features: @@ -142,10 +156,21 @@ def configure(self, spec, prefix): if spec.satisfies("%nvhpc") and "neon" in simd_features: simd_features.remove("neon") + # GCC on apple silicon does not support Neon intrinsics + if ( + spec.satisfies("platform=darwin target=aarch64: %gcc") + and "neon" in float_simd_features + ): + float_simd_features.remove("neon") + simd_options = [] for feature in simd_features: msg = "--enable-{0}" if feature in spec.target else "--disable-{0}" - simd_options.append(msg.format(feature)) + feature_opt = feature + # CPU feature is asimd but neon used in option. + if feature == "asimd": + feature_opt = "neon" + simd_options.append(msg.format(feature_opt)) # If no features are found, enable the generic ones if not any(f in spec.target for f in simd_features + float_simd_features): @@ -215,6 +240,7 @@ class Fftw(FftwBase): license("GPL-2.0-or-later") + version("3.3.11", sha256="5630c24cdeb33b131612f7eb4b1a9934234754f9f388ff8617458d0be6f239a1") version("3.3.10", sha256="56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467") version("3.3.9", sha256="bf2c7ce40b04ae811af714deb512510cc2c17b9ab9d6ddcf49fe4487eea7af3d") version("3.3.8", sha256="6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303") @@ -244,7 +270,7 @@ class Fftw(FftwBase): patch( "https://github.com/FFTW/fftw3/commit/f69fef7aa546d4477a2a3fd7f13fa8b2f6c54af7.patch?full_index=1", sha256="872cff9a7d346e91a108ffd3540bfcebeb8cf86c7f40f6b31fd07a80267cbf53", - when="@3.3.7:", + when="@3.3.7:3.3.10", ) patch("pfft-3.3.5.patch", when="@3.3.5:3.3.8+pfft_patches", level=0) patch("pfft-3.3.4.patch", when="@3.3.4+pfft_patches", level=0) diff --git a/repos/spack_repo/builtin/packages/fftx/package.py b/repos/spack_repo/builtin/packages/fftx/package.py index f0c13340ce3..76cb06c7c50 100644 --- a/repos/spack_repo/builtin/packages/fftx/package.py +++ b/repos/spack_repo/builtin/packages/fftx/package.py @@ -41,6 +41,8 @@ class Fftx(CMakePackage, CudaPackage, ROCmPackage): # +fftx +simt +mpi +jit conflicts("+rocm", when="+cuda", msg="FFTX only supports one GPU backend at a time") + # https://github.com/spack/spack-packages/pull/2059#issuecomment-3443184517 + conflicts("^cuda@13:", when="+cuda") @run_before("cmake") def create_lib_source_code(self): @@ -55,7 +57,7 @@ def create_lib_source_code(self): # From the root directory run the config-fftx-libs.sh script with working_dir(self.stage.source_path): - bash = which("bash") + bash = which("bash", required=True) bash("./config-fftx-libs.sh", backend) def cmake_args(self): diff --git a/repos/spack_repo/builtin/packages/fiat/package.py b/repos/spack_repo/builtin/packages/fiat/package.py index 2c6c6b2f2f4..354888de023 100644 --- a/repos/spack_repo/builtin/packages/fiat/package.py +++ b/repos/spack_repo/builtin/packages/fiat/package.py @@ -20,6 +20,7 @@ class Fiat(CMakePackage): license("Apache-2.0") version("main", branch="main", no_cache=True) + version("1.6.2", sha256="772394f531fabc6965997407309074481ff2e2b1bca78da9e041acfe01d3a085") version("1.6.1", sha256="fec30ac572d626d8f1a8bd0d03c41aac156e6911f9f822e5f7e5991aff91ba37") version("1.5.1", sha256="50834bf5d8cb4bde92df9028f799aeba411a0a16e55ca33da10a329b5d7f55ea") version("1.4.1", sha256="7d49316150e59afabd853df0066b457a268731633898ab51f6f244569679c84a") diff --git a/repos/spack_repo/builtin/packages/fides/package.py b/repos/spack_repo/builtin/packages/fides/package.py index 340e8a2bd4e..597a2621aaf 100644 --- a/repos/spack_repo/builtin/packages/fides/package.py +++ b/repos/spack_repo/builtin/packages/fides/package.py @@ -17,6 +17,7 @@ class Fides(CMakePackage): maintainers("caitlinross", "dpugmire") version("master", branch="master") + version("1.3.0", sha256="1ba00efd68a1dde418dbc774b19b6c6a02d56c0ee696bdcaeb8c9e54697c6ae0") version("1.2.0", sha256="12be939d75c765dab9241f9ed2b64af01cce2b10281de402f64fb685e6ccd7df") version("1.1.0", sha256="40d2e08b8d5cfdfc809eae6ed2ae0731108ce3b1383485f4934a5ec8aaa9425e") version("1.0.0", sha256="c355fdb4ca3790c1fa9a4491a0d294b8f883b6946c540ad9e5633c9fd8c8c3aa") @@ -35,7 +36,8 @@ class Fides(CMakePackage): depends_on("adios2@2.8:", when="@1.2") depends_on("adios2@2.7:2.8", when="@1.1") - depends_on("vtk-m@1.9:") + depends_on("viskores@1:", when="@1.3:") + depends_on("vtk-m@1.9:", when="@:1.2") # vtk-m 2.0 has a breaking change in cmake target name depends_on("vtk-m@:1.9", when="@:1.1") @@ -47,9 +49,12 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: def cmake_args(self): spec = self.spec options = [ - self.define("VTKm_DIR", spec["vtk-m"].prefix), self.define("ADIOS2_DIR", spec["adios2"].prefix), self.define("FIDES_ENABLE_TESTING", "OFF"), self.define("FIDES_ENABLE_EXAMPLES", "OFF"), ] + + if spec.satisfies("^vtk-m"): + options.append(self.define("VTKm_DIR", spec["vtk-m"].prefix)) + return options diff --git a/repos/spack_repo/builtin/packages/figlet/package.py b/repos/spack_repo/builtin/packages/figlet/package.py index caafc154146..6dc9cad9bb8 100644 --- a/repos/spack_repo/builtin/packages/figlet/package.py +++ b/repos/spack_repo/builtin/packages/figlet/package.py @@ -11,7 +11,7 @@ class Figlet(MakefilePackage): """FIGlet is a program that creates large characters out of ordinary screen characters.""" - homepage = "http://www.figlet.org/" + homepage = "https://www.figlet.org/" url = "https://github.com/cmatsuoka/figlet/archive/2.2.5.tar.gz" license("BSD-3-Clause") diff --git a/repos/spack_repo/builtin/packages/file/package.py b/repos/spack_repo/builtin/packages/file/package.py index 75c7ca48640..671f6421a2b 100644 --- a/repos/spack_repo/builtin/packages/file/package.py +++ b/repos/spack_repo/builtin/packages/file/package.py @@ -18,8 +18,11 @@ class File(AutotoolsPackage): maintainers("sethrj") + executables = ["^file$"] + license("BSD-2-Clause") + version("5.46", sha256="c9cc77c7c560c543135edc555af609d5619dbef011997e988ce40a3d75d86088") version("5.45", sha256="fc97f51029bb0e2c9f4e3bffefdaf678f0e039ee872b9de5c002a6d09c784d82") version("5.44", sha256="3751c7fba8dbc831cb8d7cc8aff21035459b8ce5155ef8b0880a27d028475f3b") version("5.43", sha256="8c8015e91ae0e8d0321d94c78239892ef9dbc70c4ade0008c0e95894abfb1991") @@ -30,12 +33,9 @@ class File(AutotoolsPackage): version("5.38", sha256="593c2ffc2ab349c5aea0f55fedfe4d681737b6b62376a9b3ad1e77b2cc19fa34") version("5.37", sha256="e9c13967f7dd339a3c241b7710ba093560b9a33013491318e88e6b8b57bae07f") - executables = ["^file$"] - variant("static", default=True, description="Also build static libraries") - depends_on("c", type="build") # generated - + depends_on("c", type="build") depends_on("bzip2") depends_on("xz", when="@5.38:") depends_on("zlib-api") diff --git a/repos/spack_repo/builtin/packages/finch/package.py b/repos/spack_repo/builtin/packages/finch/package.py index 8350a9426df..58a2e5e2aea 100644 --- a/repos/spack_repo/builtin/packages/finch/package.py +++ b/repos/spack_repo/builtin/packages/finch/package.py @@ -28,8 +28,10 @@ class Finch(CMakePackage, CudaPackage, ROCmPackage): _kokkos_backends = Kokkos.devices_variants for _backend in _kokkos_backends: - _deflt, _descr = _kokkos_backends[_backend] - variant(_backend.lower(), default=_deflt, description=_descr) + _deflt, _when, _descr = _kokkos_backends[_backend] + if _when is not None: + _when = f"^kokkos{_when}" + variant(_backend.lower(), default=_deflt, description=_descr, when=_when) variant("shared", default=True, description="Build shared libraries") diff --git a/repos/spack_repo/builtin/packages/fipscheck/package.py b/repos/spack_repo/builtin/packages/fipscheck/package.py index 25ee4416b83..6e71a25df27 100644 --- a/repos/spack_repo/builtin/packages/fipscheck/package.py +++ b/repos/spack_repo/builtin/packages/fipscheck/package.py @@ -27,5 +27,5 @@ class Fipscheck(AutotoolsPackage): depends_on("pkgconfig", type="build") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/fish/package.py b/repos/spack_repo/builtin/packages/fish/package.py index dc61e5d9b3a..67da40886e1 100644 --- a/repos/spack_repo/builtin/packages/fish/package.py +++ b/repos/spack_repo/builtin/packages/fish/package.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re from spack_repo.builtin.build_systems.cmake import CMakePackage @@ -23,6 +24,11 @@ class Fish(CMakePackage): license("GPL-2.0-only") version("master", branch="master") + version("4.2.0", sha256="6c43be5a9274963c06ba4cd55a109dfcc4d5d3a8054ed0e0a3666388581ec252") + version("4.1.2", sha256="52873934fc1ee21a1496e9f4521409013e540f77cbf29142a1b17ab93ffaafac") + version("4.1.1", sha256="aaf567cac98aa92fed9db3280801e2de45306169c8915e0fff1a61c07e56d2c1") + version("4.1.0", sha256="07a76c67e161b9edc772e6f1d66ebead85d7056e86631d61577f9f9a529c4d9c") + version("4.0.9", sha256="3decb552c93a2abbba7e43211a33b6c2ec2aeaf285b738fe4b50f9013f8551f6") version("4.0.2", sha256="6e1ecdb164285fc057b2f35acbdc20815c1623099e7bb47bbfc011120adf7e83") version("4.0.1", sha256="4ed63a70207283e15cf21fc5f21db4230421e4f98d4826b5b1c8254d69c762b5") version("4.0.0", sha256="2fda5bd970357064d8d4c896e08285ba59965ca2a8c4829ca8a82bf3b89c69f3") @@ -43,6 +49,7 @@ class Fish(CMakePackage): variant("docs", default=False, description="Build documentation") # https://github.com/fish-shell/fish-shell#dependencies-1 + depends_on("rust@1.85:", when="@4.2:") depends_on("rust@1.70:", when="@4:") depends_on("cmake@3.15:", when="@4:", type="build") depends_on("cmake@3.5:", when="@3.4:", type="build") diff --git a/repos/spack_repo/builtin/packages/fixesproto/package.py b/repos/spack_repo/builtin/packages/fixesproto/package.py index 7ba59ab50cc..15a9b4e887a 100644 --- a/repos/spack_repo/builtin/packages/fixesproto/package.py +++ b/repos/spack_repo/builtin/packages/fixesproto/package.py @@ -20,6 +20,8 @@ class Fixesproto(AutotoolsPackage, XorgPackage): version("5.0", sha256="67865a0e3cdc7dec1fd676f0927f7011ad4036c18eb320a2b41dbd56282f33b8") + depends_on("c", type="build") + depends_on("pkgconfig", type="build") depends_on("util-macros", type="build") depends_on("xextproto") diff --git a/repos/spack_repo/builtin/packages/flamegraph/package.py b/repos/spack_repo/builtin/packages/flamegraph/package.py new file mode 100644 index 00000000000..d9caa355a7d --- /dev/null +++ b/repos/spack_repo/builtin/packages/flamegraph/package.py @@ -0,0 +1,42 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import os + +from spack_repo.builtin.build_systems.generic import Package + +from spack.package import * + + +class Flamegraph(Package): + """FlameGraph is a stack trace visualizer that produces interactive + SVG flame graphs from profiling data collected by Linux perf, + DTrace, SystemTap, and other profilers. Developed by Brendan Gregg.""" + + homepage = "https://www.brendangregg.com/flamegraphs.html" + url = "https://github.com/brendangregg/FlameGraph/archive/refs/tags/v1.0.tar.gz" + git = "https://github.com/brendangregg/FlameGraph.git" + + maintainers("CodingYayaToure") + + license("CDDL-1.0") + + version("1.0", sha256="c5ba824228a4f7781336477015cb3b2d8178ffd86bccd5f51864ed52a5ad6675") + + depends_on("perl", type="run") + + def install(self, spec, prefix): + mkdirp(prefix.bin) + scripts = [ + "flamegraph.pl", + "stackcollapse-perf.pl", + "stackcollapse.pl", + "stackcollapse-recursive.pl", + "difffolded.pl", + "flamechart.pl", + ] + for script in scripts: + if os.path.exists(script): + install(script, prefix.bin) + os.chmod(join_path(prefix.bin, script), 0o755) diff --git a/repos/spack_repo/builtin/packages/flamemaster/package.py b/repos/spack_repo/builtin/packages/flamemaster/package.py index 1ea50c50ec3..deb17225b26 100644 --- a/repos/spack_repo/builtin/packages/flamemaster/package.py +++ b/repos/spack_repo/builtin/packages/flamemaster/package.py @@ -33,12 +33,12 @@ class Flamemaster(CMakePackage): variant( "bilin_omega", default=True, - description="Compile with bilinear interpolation" "for collision integrals (omega)", + description="Compile with bilinear interpolation for collision integrals (omega)", ) variant( "combustion", default=False, - description="Integrate comustion libraries" "for kinetics, thermodynamics, and transport", + description="Integrate comustion libraries for kinetics, thermodynamics, and transport", ) variant( "fortran_code", @@ -111,7 +111,7 @@ class Flamemaster(CMakePackage): variant( "tests", default=False, - description="Install google-test framework for unit tests" "and enable units tests.", + description="Install google-test framework for unit tests and enable units tests.", ) variant( "third_party_in_build_dir", diff --git a/repos/spack_repo/builtin/packages/flann/package.py b/repos/spack_repo/builtin/packages/flann/package.py index 5e3b7c8a2a6..ef634def5cc 100644 --- a/repos/spack_repo/builtin/packages/flann/package.py +++ b/repos/spack_repo/builtin/packages/flann/package.py @@ -39,7 +39,7 @@ def url_for_version(self, version): # Options available in the CMakeLists.txt # Language bindings - variant("python", default=False, description="Build the Python bindings. " "Module: pyflann.") + variant("python", default=False, description="Build the Python bindings. Module: pyflann.") extends("python", when="+python") variant("matlab", default=False, description="Build the Matlab bindings.") # default to true for C because it's a C++ library, nothing extra needed diff --git a/repos/spack_repo/builtin/packages/flecsi/package.py b/repos/spack_repo/builtin/packages/flecsi/package.py index 10a28f619c8..b321449d311 100644 --- a/repos/spack_repo/builtin/packages/flecsi/package.py +++ b/repos/spack_repo/builtin/packages/flecsi/package.py @@ -18,27 +18,20 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage): mesh topology, mesh geometry, and mesh adjacency information. """ - homepage = "http://flecsi.org/" + homepage = "https://www.flecsi.org/" git = "https://github.com/flecsi/flecsi.git" maintainers("rbberger", "opensdh") tags = ["e4s"] + version("2.4.1", tag="v2.4.1", commit="f57a634e3f1f136e8932ad81f267d3b69657ae15") version("2.4.0", tag="v2.4.0", commit="598d518b4105ec91ee42ee50420aa46a32a0f60f") version("2.3.2", tag="v2.3.2", commit="736fc74248777a00dbd41f1a66ae49e615c8a514") version( - "2.3.1", tag="v2.3.1", commit="6c04b9b21790533e457764bd7f8f26757db1552f", deprecated=True + "2.2.1", tag="v2.2.1", commit="84b5b232aebab40610f57387778db80f6c8c84c5", deprecated=True ) version( - "2.3.0", tag="v2.3.0", commit="90bc8267fceb02060e54646f73b45d4252aef491", deprecated=True - ) - version("2.2.1", tag="v2.2.1", commit="84b5b232aebab40610f57387778db80f6c8c84c5") - version("2.2.0", tag="v2.2.0", commit="dd531ac16c5df124d76e385c6ebe9b9589c2d3ad") - version( - "2.1.0", tag="v2.1.0", commit="533df139c267e2a93c268dfe68f9aec55de11cf0", deprecated=True - ) - version( - "2.0.0", tag="v2.0.0", commit="5ceebadf75d1c98999ea9e9446926722d061ec22", deprecated=True + "2.2.0", tag="v2.2.0", commit="dd531ac16c5df124d76e385c6ebe9b9589c2d3ad", deprecated=True ) variant( @@ -51,7 +44,7 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage): variant("shared", default=True, description="Build shared libraries") variant("flog", default=False, description="Enable logging support") variant("graphviz", default=False, description="Enable GraphViz Support") - variant("doc", default=False, description="Enable documentation", when="@2.2:") + variant("doc", default=False, description="Enable documentation") variant("hdf5", default=True, description="Enable HDF5 Support") variant( "caliper_detail", @@ -70,28 +63,24 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage): for level in ("low", "medium", "high"): depends_on("caliper@:2.5,2.8:", when=f"caliper_detail={level}") - depends_on("graphviz", when="+graphviz") + depends_on("graphviz@:12", when="+graphviz") depends_on("hdf5+hl+mpi", when="+hdf5") depends_on("metis@5.1.0:", when="@:2.3.1") depends_on("parmetis@4.0.3:", when="@:2.3.1") - depends_on("boost@1.70.0: cxxstd=17 +program_options +stacktrace") + depends_on("boost@1.79.0: +program_options +stacktrace") - depends_on("cmake@3.15:") - depends_on("cmake@3.19:", when="@2.2:") - depends_on("cmake@3.23:", when="@2.3:") + depends_on("cmake@3.19:", type="build") + depends_on("cmake@3.23:", when="@2.3:", type="build") depends_on("boost +atomic +filesystem +regex +system", when="@:2.2.1") - depends_on("boost@1.79.0:", when="@2.2:") - depends_on("kokkos@3.2.00:", when="+kokkos") - depends_on("kokkos@3.7:", when="+kokkos @2.3:") - depends_on("kokkos@3.7:", when="@2.4:") + depends_on("kokkos", when="+kokkos @2.3:") + depends_on("kokkos", when="@2.4:") depends_on("kokkos +cuda", when="+kokkos +cuda") - requires("^kokkos +cuda_constexpr +cuda_lambda", when="^kokkos +cuda") + requires("^kokkos +cuda_lambda", when="^kokkos@:4 +cuda") + requires("^kokkos +cuda_constexpr", when="^kokkos +cuda") depends_on("kokkos +rocm", when="+kokkos +rocm") depends_on("kokkos +openmp", when="+kokkos +openmp") requires("+openmp", when="@:2.3 ^kokkos +openmp") - depends_on("legion@cr-20210122", when="backend=legion @2.0:2.1.0") depends_on("legion@cr-20230307", when="backend=legion @2.2.0:2.2.1") - depends_on("legion@24.03.0:", when="backend=legion @2.2.2:") depends_on("legion@24.09.0:", when="backend=legion @2.3.1:") depends_on("legion+shared", when="backend=legion +shared") depends_on("legion+hdf5", when="backend=legion +hdf5") @@ -100,18 +89,20 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage): depends_on("legion+cuda", when="backend=legion ^kokkos+cuda") depends_on("legion+rocm", when="backend=legion ^kokkos+rocm") depends_on("hdf5@1.10.7:", when="backend=legion +hdf5") - depends_on("hpx@1.10.0: cxxstd=17 malloc=system", when="backend=hpx") + depends_on("hpx@1.10.0: malloc=system", when="backend=hpx") depends_on("mpi") depends_on("mpich@3.4.1:", when="^[virtuals=mpi] mpich") depends_on("openmpi@4.1.0:", when="^[virtuals=mpi] openmpi") depends_on("graphviz@2.49.0:", when="+graphviz @2.3:") - # FleCSI 2.2+ documentation dependencies - depends_on("py-sphinx", when="+doc") - depends_on("py-sphinx-rtd-theme", when="+doc") - depends_on("py-recommonmark", when="@:2.2 +doc") - depends_on("doxygen", when="+doc") - depends_on("graphviz", when="+doc") + # FleCSI documentation dependencies + depends_on("py-sphinx", when="+doc", type="build") + depends_on("py-sphinx-rtd-theme@:2", when="+doc", type="build") + depends_on("py-recommonmark", when="@:2.2 +doc", type="build") + depends_on("doxygen", when="+doc", type="build") + depends_on("graphviz", when="+doc", type="build") + depends_on("texlive", when="@2.4.1: +doc", type="build") + depends_on("pdf2svg", when="@2.4.1: +doc", type="build") # Propagate cuda_arch requirement to dependencies for _flag in CudaPackage.cuda_arch_values: @@ -134,48 +125,34 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage): conflicts("+hdf5", when="backend=hpx", msg="HPX backend doesn't support HDF5") conflicts("^hpx networking=none", when="backend=hpx") + for cxxstd in ("11", "14"): + conflicts(f"^boost cxxstd={cxxstd}") + conflicts(f"^hpx cxxstd={cxxstd}", when="backend=hpx") + def cmake_args(self): spec = self.spec - - if spec.satisfies("@2.2:"): - options = [ - self.define_from_variant("FLECSI_BACKEND", "backend"), - self.define_from_variant("CALIPER_DETAIL", "caliper_detail"), - self.define_from_variant("ENABLE_FLOG", "flog"), - self.define_from_variant("ENABLE_GRAPHVIZ", "graphviz"), - self.define_from_variant("ENABLE_HDF5", "hdf5"), - self.define_from_variant("ENABLE_KOKKOS", "kokkos"), - self.define_from_variant("ENABLE_OPENMP", "openmp"), - self.define_from_variant("BUILD_SHARED_LIBS", "shared"), - self.define("ENABLE_UNIT_TESTS", self.run_tests), - self.define_from_variant("ENABLE_DOCUMENTATION", "doc"), - ] - - if self.spec.satisfies("^kokkos +rocm"): - options.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc)) - options.append(self.define("CMAKE_C_COMPILER", self.spec["hip"].hipcc)) - if self.spec.satisfies("backend=legion"): - # CMake pulled in via find_package(Legion) won't work without this - options.append(self.define("HIP_PATH", "{0}/hip".format(spec["hip"].prefix))) - elif self.spec.satisfies("^kokkos"): - options.append(self.define("CMAKE_CXX_COMPILER", self["kokkos"].kokkos_cxx)) - else: - # kept for supporing version prior to 2.2 - options = [ - self.define_from_variant("FLECSI_RUNTIME_MODEL", "backend"), - self.define_from_variant("BUILD_SHARED_LIBS", "shared"), - self.define_from_variant("CALIPER_DETAIL", "caliper_detail"), - self.define_from_variant("ENABLE_GRAPHVIZ", "graphviz"), - self.define_from_variant("ENABLE_KOKKOS", "kokkos"), - self.define_from_variant("ENABLE_OPENMP", "openmp"), - self.define_from_variant("ENABLE_DOXYGEN", "doc"), - self.define_from_variant("ENABLE_FLOG", "flog"), - self.define("ENABLE_MPI", True), - self.define("ENABLE_UNIT_TESTS", self.run_tests), - self.define_from_variant("ENABLE_HDF5", "hdf5"), - ] - - if spec.variants["backend"].value == "hpx": - options.append(self.define("HPX_IGNORE_CMAKE_BUILD_TYPE_COMPATIBILITY", True)) + options = [ + self.define_from_variant("FLECSI_BACKEND", "backend"), + self.define_from_variant("CALIPER_DETAIL", "caliper_detail"), + self.define_from_variant("ENABLE_FLOG", "flog"), + self.define_from_variant("ENABLE_GRAPHVIZ", "graphviz"), + self.define_from_variant("ENABLE_HDF5", "hdf5"), + self.define_from_variant("ENABLE_KOKKOS", "kokkos"), + self.define_from_variant("ENABLE_OPENMP", "openmp"), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define("ENABLE_UNIT_TESTS", self.run_tests), + self.define_from_variant("ENABLE_DOCUMENTATION", "doc"), + ] + + if self.spec.satisfies("^kokkos +rocm") and not self.spec.satisfies( + "^kokkos %cxx=llvm-amdgpu" + ): + options.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc)) + options.append(self.define("CMAKE_C_COMPILER", self.spec["hip"].hipcc)) + if self.spec.satisfies("backend=legion"): + # CMake pulled in via find_package(Legion) won't work without this + options.append(self.define("HIP_PATH", "{0}/hip".format(spec["hip"].prefix))) + elif self.spec.satisfies("^kokkos +cuda"): + options.append(self.define("CMAKE_CXX_COMPILER", self["kokkos"].kokkos_cxx)) return options diff --git a/repos/spack_repo/builtin/packages/fleur/package.py b/repos/spack_repo/builtin/packages/fleur/package.py index 1014a29ecc3..2094c35b685 100644 --- a/repos/spack_repo/builtin/packages/fleur/package.py +++ b/repos/spack_repo/builtin/packages/fleur/package.py @@ -2,12 +2,12 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.generic import Package +from spack_repo.builtin.build_systems.cmake import CMakePackage from spack.package import * -class Fleur(Package): +class Fleur(CMakePackage): """FLEUR (Full-potential Linearised augmented plane wave in EURope) is a code family for calculating groundstate as well as excited-state properties of solids within the context of density functional theory (DFT).""" @@ -18,6 +18,7 @@ class Fleur(Package): license("MIT") version("develop", branch="develop") + version("8.1", tag="MaX-R8.1", commit="6dc78fc1e5b4b6ec93155a860ca57a0ffa71d503") version("7.2", tag="MaX-R7.2", commit="447eed3b7ec3de5fcdfbd232cd1eda4caefb51d3") version("5.1", tag="MaX-R5.1", commit="a482abd9511b16412c2222e2ac1b1a303acd454b") version("5.0", tag="MaX-R5", commit="f2df362c3dad6ef39938807ea14e4ec4cb677723") @@ -39,18 +40,19 @@ class Fleur(Package): variant("spfft", default=False, description="Enable spfft support") variant("wannier90", default=False, description="Enable wannier90 support") variant("openmp", default=False, description="Enable OpenMP support.") + # FLEUR only ships compiler flags for Release and Debug builds. variant( "build_type", - default="RelWithDebInfo", - description="The build type to build", - values=("Debug", "Release", "RelWithDebInfo"), + default="Release", + description="CMake build type", + values=("Release", "Debug"), ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated - depends_on("cmake", type="build") + depends_on("cmake@3.12:", type="build") depends_on("python@3:", type="build") depends_on("blas") depends_on("lapack") @@ -59,15 +61,15 @@ class Fleur(Package): depends_on("intel-oneapi-mkl", when="fft=mkl") depends_on("fftw-api", when="fft=fftw") depends_on("scalapack", when="+scalapack") - depends_on("libxc", when="+external_libxc") - depends_on("hdf5+hl+fortran", when="+hdf5") + depends_on("libxc+fortran", when="+external_libxc") + depends_on("hdf5+fortran+mpi", when="+hdf5+mpi") + depends_on("hdf5+fortran~mpi", when="+hdf5~mpi") depends_on("magma+fortran", when="+magma") depends_on("wannier90", when="+wannier90") depends_on("spfft+fortran~openmp", when="+spfft~openmp") depends_on("spfft+fortran+openmp", when="+spfft+openmp") depends_on("elpa~openmp", when="+elpa~openmp") depends_on("elpa+openmp", when="+elpa+openmp") - depends_on("gmake", type="build") conflicts("%intel@:16.0.4", msg="ifort version <16.0 will most probably not work correctly") conflicts("%gcc@:6.3.0", msg="gfortran is known to work with versions newer than v6.3") @@ -77,101 +79,22 @@ class Fleur(Package): conflicts("@:4.0", when="+spfft", msg="SpFFT is supported from Fleur v4.0") conflicts("@:4.0", when="+external_libxc", msg="External libxc is supported from Fleur v4.0") - def setup_build_environment(self, env: EnvironmentModifications) -> None: + def cmake_args(self): spec = self.spec - - if spec.satisfies("+mpi"): - env.set("CC", spec["mpi"].mpicc, force=True) - env.set("FC", spec["mpi"].mpifc, force=True) - env.set("CXX", spec["mpi"].mpicxx, force=True) - - @run_before("install") - def configure(self): - spec = self.spec - sh = which("bash") - - options = { - "-link": [], - "-libdir": [], - "-includedir": [], - # "-flags": [] - } - - options["-link"].append(spec["blas"].libs.link_flags) - options["-libdir"].append(spec["blas"].prefix.lib) - options["-includedir"].append(spec["blas"].prefix.include) - - options["-link"].append(spec["lapack"].libs.link_flags) - options["-libdir"].append(spec["lapack"].prefix.lib) - options["-includedir"].append(spec["lapack"].prefix.include) - - options["-link"].append(spec["libxml2"].libs.link_flags) - options["-libdir"].append(spec["libxml2"].prefix.lib) - options["-includedir"].append(spec["libxml2"].prefix.include) - options["-includedir"].append(join_path(spec["libxml2"].prefix.include, "libxml2")) - - if spec.satisfies("fft=mkl"): - options["-link"].append(spec["intel-oneapi-mkl"].libs.link_flags) - options["-libdir"].append(spec["intel-oneapi-mkl"].prefix.lib) - options["-includedir"].append(spec["intel-oneapi-mkl"].prefix.include) - if spec.satisfies("fft=fftw"): - options["-link"].append(spec["fftw-api"].libs.link_flags) - options["-libdir"].append(spec["fftw-api"].prefix.lib) - options["-includedir"].append(spec["fftw-api"].prefix.include) - if spec.satisfies("+scalapack"): - options["-link"].append(spec["scalapack"].libs.link_flags) - options["-libdir"].append(spec["scalapack"].prefix.lib) - if spec.satisfies("+external_libxc"): - # Workaround: The fortran library is called libxcf90.a/so - # but spec['wannier90'].libs.link_flags return -lxc - options["-link"].append("-lxcf90") - options["-libdir"].append(spec["libxc"].prefix.lib) - options["-includedir"].append(spec["libxc"].prefix.include) - if spec.satisfies("+hdf5"): - options["-link"].append(spec["hdf5"].libs.link_flags) - options["-libdir"].append(spec["hdf5"].prefix.lib) - options["-includedir"].append(spec["hdf5"].prefix.include) - if spec.satisfies("+magma"): - options["-link"].append(spec["magma"].libs.link_flags) - options["-libdir"].append(spec["magma"].prefix.lib) - options["-includedir"].append(spec["magma"].prefix.include) - if spec.satisfies("+wannier90"): - # Workaround: The library is not called wannier90.a/so - # for this reason spec['wannier90'].libs.link_flags fails! - options["-link"].append("-lwannier") - options["-libdir"].append(spec["wannier90"].prefix.lib) - if spec.satisfies("+spfft"): - options["-link"].append(spec["spfft"].libs.link_flags) - # Workaround: The library is installed in /lib64 not /lib - options["-libdir"].append(spec["spfft"].prefix.lib + "64") - # Workaround: The library needs spfft.mod in include/spfft path - options["-includedir"].append(join_path(spec["spfft"].prefix.include, "spfft")) + args = [ + self.define_from_variant("CLI_FLEUR_USE_MPI", "mpi"), + self.define_from_variant("CLI_FLEUR_USE_HDF5", "hdf5"), + self.define_from_variant("CLI_FLEUR_USE_SCALAPACK", "scalapack"), + self.define_from_variant("CLI_FLEUR_USE_WANNIER", "wannier90"), + self.define_from_variant("CLI_FLEUR_USE_LIBXC", "external_libxc"), + self.define_from_variant("CLI_FLEUR_USE_MAGMA", "magma"), + ] if spec.satisfies("+elpa"): - options["-link"].append(spec["elpa"].libs.link_flags) - options["-libdir"].append(spec["elpa"].prefix.lib) - # Workaround: The library needs elpa.mod in include/elpa_%VERS/modules - options["-includedir"].append(spec["elpa"].prefix.include) - options["-includedir"].append(spec["elpa"].headers.include_flags[2:]) - options["-includedir"].append( - join_path(spec["elpa"].headers.include_flags[2:], "modules") - ) - - args = [] - args.append("-link") - args.append(" ".join(options["-link"])) - args.append("-libdir") - args.append(" ".join(options["-libdir"])) - args.append("-includedir") - args.append(" ".join(options["-includedir"])) - - sh("configure.sh", *args) - - def install(self, spec, prefix): - with working_dir("build"): - make() - mkdirp(prefix.bin) - if spec.satisfies("+mpi"): - install("fleur_MPI", prefix.bin) - else: - install("fleur", prefix.bin) - install("inpgen", prefix.bin) + args.append(self.define("CLI_FLEUR_USE_ELPA", "external")) + if spec.satisfies("+mpi"): + args += [ + self.define("CMAKE_C_COMPILER", spec["mpi"].mpicc), + self.define("CMAKE_CXX_COMPILER", spec["mpi"].mpicxx), + self.define("CMAKE_Fortran_COMPILER", spec["mpi"].mpifc), + ] + return args diff --git a/repos/spack_repo/builtin/packages/flexi/package.py b/repos/spack_repo/builtin/packages/flexi/package.py index 9822eebe9a5..acadd5842dd 100644 --- a/repos/spack_repo/builtin/packages/flexi/package.py +++ b/repos/spack_repo/builtin/packages/flexi/package.py @@ -43,8 +43,7 @@ class Flexi(CMakePackage): values=("br1", "br2"), multi=False, description=( - "Two different lifting methods for the parabolic part of " - "the equation system available" + "Two different lifting methods for the parabolic part of the equation system available" ), ) variant( @@ -61,7 +60,7 @@ class Flexi(CMakePackage): "parabolic", default=True, description=( - "Defines whether the parabolic part of the chosen system " "should be included or not" + "Defines whether the parabolic part of the chosen system should be included or not" ), ) variant( diff --git a/repos/spack_repo/builtin/packages/flibcpp/package.py b/repos/spack_repo/builtin/packages/flibcpp/package.py index 7430433645d..d07924b9214 100644 --- a/repos/spack_repo/builtin/packages/flibcpp/package.py +++ b/repos/spack_repo/builtin/packages/flibcpp/package.py @@ -80,9 +80,9 @@ def test_examples(self): self.define("CMAKE_Fortran_COMPILER", self.compiler.fc), ] cmake_args.append(self.cached_tests_work_dir) - cmake = which(self.spec["cmake"].prefix.bin.cmake) - make = which("make") - sh = which("sh") + cmake = which(self.spec["cmake"].prefix.bin.cmake, required=True) + make = which("make", required=True) + sh = which("sh", required=True) with working_dir(self.cached_tests_work_dir): cmake(*cmake_args) diff --git a/repos/spack_repo/builtin/packages/flint/package.py b/repos/spack_repo/builtin/packages/flint/package.py index c0ae1ef85b9..43224f95b7f 100644 --- a/repos/spack_repo/builtin/packages/flint/package.py +++ b/repos/spack_repo/builtin/packages/flint/package.py @@ -11,7 +11,7 @@ class Flint(AutotoolsPackage): """FLINT (Fast Library for Number Theory).""" homepage = "https://flintlib.org" - url = "https://flintlib.org/flint-3.1.2.tar.gz" + url = "https://flintlib.org/download/flint-3.1.2.tar.gz" git = "https://github.com/flintlib/flint.git" list_url = "https://flintlib.org/downloads.html" list_depth = 0 @@ -19,6 +19,8 @@ class Flint(AutotoolsPackage): license("LGPL-2.1-or-later") version("main", branch="main") + version("3.5.0", sha256="3982f385f00610a944e0152eb0a29893b2366fa640e8f5f3076c47564cf7e2a6") + version("3.4.0", sha256="9497679804dead926e3affeb8d4c58739d1c7684d60c2c12827550d28e454a33") version("3.1.2", sha256="fdb3a431a37464834acff3bdc145f4fe8d0f951dd5327c4c6f93f4cbac5c2700") version("3.0.1", sha256="7b311a00503a863881eb8177dbeb84322f29399f3d7d72f3b1a4c9ba1d5794b4") version("2.5.2", sha256="cbf1fe0034533c53c5c41761017065f85207a1b770483e98b2392315f6575e87") @@ -36,6 +38,8 @@ class Flint(AutotoolsPackage): depends_on("gmp") # mpir is a drop-in replacement for this depends_on("mpfr") # Could also be built against mpir + depends_on("m4", type="build") + def configure_args(self): spec = self.spec return [f"--with-gmp={spec['gmp'].prefix}", f"--with-mpfr={spec['mpfr'].prefix}"] diff --git a/repos/spack_repo/builtin/packages/fltk/package.py b/repos/spack_repo/builtin/packages/fltk/package.py index 3c4385c0e0c..8d21b0aaee1 100644 --- a/repos/spack_repo/builtin/packages/fltk/package.py +++ b/repos/spack_repo/builtin/packages/fltk/package.py @@ -21,18 +21,25 @@ class Fltk(Package): """ homepage = "https://www.fltk.org/" - url = "https://fltk.org/pub/fltk/1.3.3/fltk-1.3.3-source.tar.gz" + url = "https://github.com/fltk/fltk/archive/refs/tags/release-1.3.3.tar.gz" git = "https://github.com/fltk/fltk.git" version("master", branch="master") - version("1.3.7", sha256="5d2ccb7ad94e595d3d97509c7a931554e059dd970b7b29e6fd84cb70fd5491c6") - version("1.3.3", sha256="f8398d98d7221d40e77bc7b19e761adaf2f1ef8bb0c30eceb7beb4f2273d0d97") + version("1.4.4", sha256="cbf5f7846af596206e8e4489e14c9981f98d7b37168110a00dcd26d8d479a669") + version("1.4.3", sha256="6a11c0bf91b7b193a87a1928c32a953f36d7dd4b65fef3e9d0c40a51882f97a6") + version("1.3.7", sha256="019f65810fb0ea5acac14c852193e8f374e822e6a3034a3c80ed8676f6f3a090") + version("1.3.3", sha256="186bdc4234bea74bce4d47f186d41d35bdd47d48dbe5f829513a2183fbf8f3b2") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("gmake", type="build") + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + depends_on("pkgconfig", type="build", when="@1.3.7") depends_on("libx11") + depends_on("freetype", when="@1.4.3:") patch("font.patch", when="@1.3.3") @@ -76,6 +83,8 @@ def install(self, spec, prefix): options.append("--disable-gl") # FLTK needs to be built in-source + autogen = Executable("./autogen.sh") + autogen() configure(*options) make() make("install") diff --git a/repos/spack_repo/builtin/packages/flux_core/package.py b/repos/spack_repo/builtin/packages/flux_core/package.py index 3ca2bb14ab7..21da9835c47 100644 --- a/repos/spack_repo/builtin/packages/flux_core/package.py +++ b/repos/spack_repo/builtin/packages/flux_core/package.py @@ -22,6 +22,14 @@ class FluxCore(AutotoolsPackage): license("LGPL-3.0-only") version("master", branch="master") + version("0.81.0", sha256="c560f457ee6d208b8b4d02abad6d284ec5ea21268bba4e8c3840abbc1bf79329") + version("0.80.0", sha256="d4e19e4454b6288be68dd53ad906065995ae3bb1f5453c55fef6f40122b081d3") + version("0.79.0", sha256="d5f077cba01ef972adf1986d968ee85c19c96783dbc5e42fc2c967e494c59839") + version("0.78.0", sha256="9159ccb64826b23391abe7c125a9e2ccaa1eb6409eeb2fd2a6ee4be07bf39e56") + version("0.77.0", sha256="5a0b10690a4147c311658f44c6adb81e6a60dae1ded0b3b78fa6756ac4c02cca") + version("0.76.0", sha256="c28d271a50b4065c2399af844a51d2b0e7ab3fa262f4bbf15a4c1115cd6fe77c") + version("0.75.0", sha256="08219025dfa477ff39b51ae6f5a6ffe3ff648335c19b10693245dd8121f7c320") + version("0.74.0", sha256="de05fadf036e95a580eefe3329a092a37745ba5ac50657eb3f2ea00cd2e2db7e") version("0.73.0", sha256="d029c3da68bd0a0bea40d964de772e90a55eec72303b610396882f9e94d8c0c6") version("0.72.0", sha256="1642d9f93cca6e0e934b534609787a31753462215ab376d190cdced16c386524") version("0.71.0", sha256="023fd3e2153e20ba28cdf60fefa14d60053df61de3b9e273bf6f9a9ebdef0b52") @@ -162,7 +170,7 @@ def setup(self): def setup(self): with working_dir(self.stage.source_path): # Allow git-describe to get last tag so flux-version works: - git = which("git") + git = which("git", required=True) # When using spack develop, this will already be unshallow try: git("fetch", "--unshallow") @@ -175,7 +183,7 @@ def autoreconf(self, spec, prefix): self.setup() if not os.path.exists("configure"): # Bootstrap with autotools - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") @property diff --git a/repos/spack_repo/builtin/packages/flux_pmix/package.py b/repos/spack_repo/builtin/packages/flux_pmix/package.py index 7928eefc99f..87cd386fb65 100644 --- a/repos/spack_repo/builtin/packages/flux_pmix/package.py +++ b/repos/spack_repo/builtin/packages/flux_pmix/package.py @@ -19,6 +19,7 @@ class FluxPmix(AutotoolsPackage): maintainers("grondo") version("main", branch="main") + version("0.7.0", sha256="0ad9fa0d76e8ffeaa4aa45bd39760b623219e8d3d2a66eb62e8832c2f7e3f47b") version("0.6.0", sha256="31f9d9b99f8a75c05e2fd183a35998f104d8e80bd819c57252aca477be0d4c6e") version("0.5.0", sha256="f382800b1a342df0268146ea7ce33011299bf0c69a46ac8a52e87de6026c9322") version("0.4.0", sha256="f7f58891fc9d9a97a0399b3ab186f2cae30a75806ba0b4d4c1307f07b3f6d1bc") @@ -40,7 +41,7 @@ class FluxPmix(AutotoolsPackage): def autoreconf(self, spec, prefix): if not os.path.exists("configure"): # Bootstrap with autotools - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") @run_after("install") diff --git a/repos/spack_repo/builtin/packages/flux_python/package.py b/repos/spack_repo/builtin/packages/flux_python/package.py index 270b2a1499c..4ee57404493 100644 --- a/repos/spack_repo/builtin/packages/flux_python/package.py +++ b/repos/spack_repo/builtin/packages/flux_python/package.py @@ -15,6 +15,12 @@ class FluxPython(PythonPackage): license("LGPL-3.0-only") + version("0.80.0", sha256="afb0d7beca1e34f5ee91da6c5bdae9cca88b77f9aa74ee3461a1cf587e644ee0") + version("0.78.0", sha256="537a958b44822f045cea78644952bf696bd9fe4b6f509e583a5a1cb1e2a28406") + version("0.77.0", sha256="9b08b6cb4edf8c366b66dcaf084823594d01b79dc060701043198d1942faf19a") + version("0.76.0", sha256="6b06e608f2a17b6253cf3e59a7b5eeb0304cc5298f83cde1354dbd08de40c2ec") + version("0.75.0", sha256="2de3f687c053b417cf66ec58c0426da3d06970abef850c08e78c996cbe37b379") + version("0.73.0", sha256="ee1451cb818957afe9fd0cae8c8405b2b1f20292616ab386e75cdc47d677cfaa") version("0.70.0", sha256="88835aaa4d8886a5db825f72940171b92a8d33abd4835915e97e1dbd1f09c49a") version("0.68.0", sha256="5ab31bffe0ea369e4cb204f809f7f4db63626f31e84e9cf9f83286d37bff96eb") version("0.66.0", sha256="56b6f0356e8bb143629332c1fb0ddaa16b7e6afdf1fa459bb9b3b35d1366c8e3") @@ -26,3 +32,7 @@ class FluxPython(PythonPackage): depends_on("py-setuptools", type="build") depends_on("py-pyyaml", type=("build", "run")) depends_on("py-cffi", type=("build", "run")) + + depends_on("flux-core", type=("build", "link", "run")) + depends_on("flux-security") + depends_on("json-glib") diff --git a/repos/spack_repo/builtin/packages/flux_sched/package.py b/repos/spack_repo/builtin/packages/flux_sched/package.py index 4a5405e9d97..1f27c843df7 100644 --- a/repos/spack_repo/builtin/packages/flux_sched/package.py +++ b/repos/spack_repo/builtin/packages/flux_sched/package.py @@ -23,6 +23,10 @@ class FluxSched(CMakePackage, AutotoolsPackage): license("LGPL-3.0-only") version("master", branch="master") + version("0.48.0", sha256="8f8de89e445303e07b27912d4044862a8594d46b68d20dbb28b1e20bef198efe") + version("0.47.0", sha256="80194e5c23e7ef5f4bf6cb1c9f63f949f979e9f58c7976e5453c31f244d3fd6a") + version("0.46.0", sha256="117a2c9cd01a4fef372a546c53ea9b4d5fe2b9490b33c0816fcac556675eda0b") + version("0.45.0", sha256="2190858b687bf576c5e0ac409f678a67bc00c449a9f05e1f2b2284ae275a227f") version("0.44.0", sha256="a2b71a0c5fb51a89d32cff9eca2fc7c275a7a1a81746bea8d00b4c1868af366e") version("0.43.0", sha256="0d9f6b88f99270fa84094b144a35bd6075adf92b9ec5c7f7f60fceffa668c996") version("0.42.2", sha256="3a4a513c6539f2927e7a544f431e97456e50c71b63f8744d31e0dee3dc7fcc2e") @@ -146,7 +150,7 @@ def setup(self): def setup(self): with working_dir(self.stage.source_path): # Allow git-describe to get last tag so flux-version works: - git = which("git") + git = which("git", required=True) # When using spack develop, this will already be unshallow try: git("fetch", "--unshallow") @@ -162,7 +166,7 @@ def autoreconf(self, spec, prefix): # make sure configure doesn't get confused by the staging symlink with working_dir(self.configure_directory): # Bootstrap with autotools - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") @when("@:0.20") diff --git a/repos/spack_repo/builtin/packages/flux_security/package.py b/repos/spack_repo/builtin/packages/flux_security/package.py index f3cf4cc24e1..67556446e1d 100644 --- a/repos/spack_repo/builtin/packages/flux_security/package.py +++ b/repos/spack_repo/builtin/packages/flux_security/package.py @@ -51,7 +51,7 @@ def setup(self): def setup(self): with working_dir(self.stage.source_path): # Allow git-describe to get last tag so flux-version works: - git = which("git") + git = which("git", required=True) # When using spack develop, this will already be unshallow try: git("fetch", "--unshallow") @@ -67,5 +67,5 @@ def autoreconf(self, spec, prefix): # make sure configure doesn't get confused by the staging symlink with working_dir(self.configure_directory): # Bootstrap with autotools - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/fluxbox/package.py b/repos/spack_repo/builtin/packages/fluxbox/package.py index 20a63841a7d..96a32a1c237 100644 --- a/repos/spack_repo/builtin/packages/fluxbox/package.py +++ b/repos/spack_repo/builtin/packages/fluxbox/package.py @@ -14,7 +14,7 @@ class Fluxbox(AutotoolsPackage): to make an easy, and extremely fast, desktop experience. """ - homepage = "http://fluxbox.org/" + homepage = "https://fluxbox.org/" url = "http://sourceforge.net/projects/fluxbox/files/fluxbox/1.3.7/fluxbox-1.3.7.tar.gz" license("MIT") diff --git a/repos/spack_repo/builtin/packages/fmt/package.py b/repos/spack_repo/builtin/packages/fmt/package.py index 9f5a0707d13..ca571408e5b 100644 --- a/repos/spack_repo/builtin/packages/fmt/package.py +++ b/repos/spack_repo/builtin/packages/fmt/package.py @@ -19,6 +19,8 @@ class Fmt(CMakePackage): license("MIT") + version("12.1.0", sha256="695fd197fa5aff8fc67b5f2bbc110490a875cdf7a41686ac8512fb480fa8ada7") + version("12.0.0", sha256="1c32293203449792bf8e94c7f6699c643887e826f2d66a80869b4f279fb07d25") version("11.2.0", sha256="203eb4e8aa0d746c62d8f903df58e0419e3751591bb53ff971096eaa0ebd4ec3") version("11.1.4", sha256="49b039601196e1a765e81c5c9a05a61ed3d33f23b3961323d7322e4fe213d3e6") version("11.1.3", sha256="7df2fd3426b18d552840c071c977dc891efe274051d2e7c47e2c83c3918ba6df") diff --git a/repos/spack_repo/builtin/packages/foam_extend/package.py b/repos/spack_repo/builtin/packages/foam_extend/package.py index 315b44890f5..698f6408bb7 100644 --- a/repos/spack_repo/builtin/packages/foam_extend/package.py +++ b/repos/spack_repo/builtin/packages/foam_extend/package.py @@ -59,8 +59,6 @@ class FoamExtend(Package): version("4.1", git="http://git.code.sf.net/p/foam-extend/foam-extend-4.1.git") version("4.0", git="http://git.code.sf.net/p/foam-extend/foam-extend-4.0.git") version("3.2", git="http://git.code.sf.net/p/foam-extend/foam-extend-3.2.git") - version("3.1", git="http://git.code.sf.net/p/foam-extend/foam-extend-3.1.git", deprecated=True) - version("3.0", git="http://git.code.sf.net/p/foam-extend/foam-extend-3.0.git", deprecated=True) # variant('int64', default=False, # description='Compile with 64-bit label') @@ -223,7 +221,7 @@ def rename_source(self): with working_dir(parent): if original != target and not os.path.lexists(target): os.rename(original, target) - os.symlink(target, original) + symlink(target, original) tty.info("renamed {0} -> {1}".format(original, target)) def patch(self): @@ -429,7 +427,7 @@ def install_links(self): """Add symlinks into bin/, lib/ (eg, for other applications)""" # Make build log visible - it contains OpenFOAM-specific information with working_dir(self.projectdir): - os.symlink( + symlink( join_path(os.path.relpath(self.install_log_path)), join_path("log." + str(self.foam_arch)), ) diff --git a/repos/spack_repo/builtin/packages/font_util/package.py b/repos/spack_repo/builtin/packages/font_util/package.py index 3d7e8397de9..24282df3318 100644 --- a/repos/spack_repo/builtin/packages/font_util/package.py +++ b/repos/spack_repo/builtin/packages/font_util/package.py @@ -252,7 +252,7 @@ def font_install(self): p = join_path(self.spec.prefix, "share", "aclocal") autoconf_args.append(f"--include={p}") fonts = self.spec.variants["fonts"].value - autoreconf = which("autoreconf") + autoreconf = which("autoreconf", required=True) for font in fonts: fontroot = find(font, "*", recursive=False) diff --git a/repos/spack_repo/builtin/packages/fontconfig/package.py b/repos/spack_repo/builtin/packages/fontconfig/package.py index 849e7e0dd8e..c0ed2ff6ae3 100644 --- a/repos/spack_repo/builtin/packages/fontconfig/package.py +++ b/repos/spack_repo/builtin/packages/fontconfig/package.py @@ -25,14 +25,13 @@ class Fontconfig(AutotoolsPackage): version("2.11.1", sha256="b6b066c7dce3f436fdc0dfbae9d36122b38094f4f53bd8dffd45e195b0540d8d") depends_on("c", type="build") # generated - depends_on("fortran", type="build") # freetype2 21.0.15+ provided by freetype 2.8.1+ depends_on("freetype@2.8.1:", when="@2.13:") depends_on("freetype") depends_on("gperf", type="build", when="@2.11.1:") depends_on("libxml2@2.6:") - depends_on("pkgconfig@0.9:", type="build") + depends_on("pkgconfig", type="build") depends_on("font-util") depends_on("uuid", when="@2.13.1:") depends_on("python@3:", type="build", when="@2.13.93:") @@ -62,7 +61,7 @@ def configure_args(self): if self.spec["libxml2"].satisfies("~shared"): deps.append("libxml-2.0") if deps: - pc = which("pkg-config") + pc = which("pkg-config", required=True) for lib in deps: ldflags.append(pc(lib, "--static", "--libs-only-L", output=str).strip()) libs.append(pc(lib, "--static", "--libs-only-l", output=str).strip()) @@ -71,7 +70,6 @@ def configure_args(self): if self.spec.satisfies("+pic"): args.append(f"CFLAGS={self.compiler.cc_pic_flag}") - args.append(f"FFLAGS={self.compiler.f77_pic_flag}") args.extend(self.with_or_without("pic")) diff --git a/repos/spack_repo/builtin/packages/fontsproto/package.py b/repos/spack_repo/builtin/packages/fontsproto/package.py index 7cf5e9afbfb..87026ecec6a 100644 --- a/repos/spack_repo/builtin/packages/fontsproto/package.py +++ b/repos/spack_repo/builtin/packages/fontsproto/package.py @@ -16,5 +16,7 @@ class Fontsproto(AutotoolsPackage, XorgPackage): version("2.1.3", sha256="72c44e63044b2b66f6fa112921621ecc20c71193982de4f198d9a29cda385c5e") + depends_on("c", type="build") + depends_on("pkgconfig", type="build") depends_on("util-macros", type="build") diff --git a/repos/spack_repo/builtin/packages/formetis/package.py b/repos/spack_repo/builtin/packages/formetis/package.py index db4c5b1847b..364c404638a 100644 --- a/repos/spack_repo/builtin/packages/formetis/package.py +++ b/repos/spack_repo/builtin/packages/formetis/package.py @@ -71,11 +71,11 @@ def test_metis(self): if self.spec.satisfies("+mpi"): cmake_args.append(self.define("ParMETIS_ROOT", self.spec["parmetis"].prefix)) cmake_args.append(self.cached_tests_work_dir) - cmake = which(self.spec["cmake"].prefix.bin.cmake) - make = which("make") + cmake = which(self.spec["cmake"].prefix.bin.cmake, required=True) + make = which("make", required=True) with working_dir(self.cached_tests_work_dir): cmake(*cmake_args) make() - metis = which("metis") + metis = which("metis", required=True) metis() diff --git a/repos/spack_repo/builtin/packages/fortran/package.py b/repos/spack_repo/builtin/packages/fortran/package.py index d06df758140..b1705a4525d 100644 --- a/repos/spack_repo/builtin/packages/fortran/package.py +++ b/repos/spack_repo/builtin/packages/fortran/package.py @@ -18,13 +18,13 @@ class Fortran(Package): def test_fortran(self): """Compile and run 'Hello world'""" expected = ["Hello world", "YES!"] - fc = which(os.environ["FC"]) + fc = which(os.environ["FC"], required=True) test_source = self.test_suite.current_test_data_dir for test in os.listdir(test_source): exe_name = f"{test}.exe" with test_part(self, f"test_fortran_{test}", f"run {exe_name}"): fc("-o", exe_name, join_path(test_source, test)) - exe = which(exe_name) + exe = which(exe_name, required=True) out = exe(output=str.split, error=str.split) check_outputs(expected, out) diff --git a/repos/spack_repo/builtin/packages/fortrilinos/package.py b/repos/spack_repo/builtin/packages/fortrilinos/package.py index 0e57d49136c..1a4459ce0d1 100644 --- a/repos/spack_repo/builtin/packages/fortrilinos/package.py +++ b/repos/spack_repo/builtin/packages/fortrilinos/package.py @@ -68,7 +68,7 @@ class Fortrilinos(CMakePackage): depends_on("trilinos gotype=long_long") # Full trilinos dependencies depends_on( - "trilinos+amesos2+anasazi+belos+kokkos+ifpack2+muelu+nox+tpetra" "+stratimikos", when="+hl" + "trilinos+amesos2+anasazi+belos+kokkos+ifpack2+muelu+nox+tpetra+stratimikos", when="+hl" ) def cmake_args(self): @@ -99,9 +99,9 @@ def test_installation(self): self.define("CMAKE_Fortran_COMPILER", self.compiler.fc), self.cached_tests_work_dir, ] - cmake = which(self.spec["cmake"].prefix.bin.cmake) - ctest = which("ctest") - make = which("make") + cmake = which(self.spec["cmake"].prefix.bin.cmake, required=True) + ctest = which("ctest", required=True) + make = which("make", required=True) with working_dir(self.cached_tests_work_dir, create=True): cmake(*cmake_args) diff --git a/repos/spack_repo/builtin/packages/fortuno/package.py b/repos/spack_repo/builtin/packages/fortuno/package.py new file mode 100644 index 00000000000..9e47cf7d2ea --- /dev/null +++ b/repos/spack_repo/builtin/packages/fortuno/package.py @@ -0,0 +1,47 @@ +# 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 Fortuno(CMakePackage): + """Flexible & extensible object oriented Fortran unit testing framework for + serial, MPI-parallel and coarray-parallel projects""" + + homepage = "https://fortuno.readthedocs.io/en/latest/" + url = "https://github.com/fortuno-repos/fortuno/archive/refs/tags/v0.1.0.tar.gz" + git = "https://github.com/fortuno-repos/fortuno.git" + + maintainers("SeanBryan51") + + license("BSD-2-Clause-Patent", checked_by="SeanBryan51") + + version("0.1.0", sha256="9639be1159e03d5e31032af6aa9d4f8483d1f3df0b84a3b43a564273a68ff5e1") + + variant("serial", default=True, description="Build serial interface") + variant("mpi", default=False, description="Build MPI interface") + variant("coarray", default=False, description="Build coarray interface") + variant("shared", default=True, description="Build as shared library") + + depends_on("fortran", type="build") + depends_on("cmake@3.22:", type="build") + depends_on("mpi", when="+mpi") + depends_on("opencoarrays", when="+coarray%gcc") + + def cmake_args(self): + args = [] + args.append(self.define_from_variant("FORTUNO_WITH_SERIAL", "serial")) + args.append(self.define_from_variant("FORTUNO_WITH_MPI", "mpi")) + args.append(self.define_from_variant("FORTUNO_WITH_COARRAY", "coarray")) + args.append(self.define_from_variant("FORTUNO_BUILD_SHARED_LIBS", "shared")) + args.append(self.define("FORTUNO_WITH_TESTS", self.run_tests)) + args.append(self.define("FORTUNO_INSTALL", True)) + args.append(self.define("FORTUNO_WITH_EXAMPLES", False)) + if self.spec.satisfies("^opencoarrays"): + args.append(self.define("CMAKE_Fortran_COMPILER", "caf")) + args.append(self.define("FORTUNO_FFLAGS_COARRAY", "")) + args.append(self.define("FORTUNO_LDFLAGS_COARRAY", "")) + return args diff --git a/repos/spack_repo/builtin/packages/fplll/package.py b/repos/spack_repo/builtin/packages/fplll/package.py index 27537eb63a4..31b48f0e866 100644 --- a/repos/spack_repo/builtin/packages/fplll/package.py +++ b/repos/spack_repo/builtin/packages/fplll/package.py @@ -17,6 +17,7 @@ class Fplll(AutotoolsPackage): license("LGPL-2.1-or-later") + version("5.5.0", sha256="f0af6bdd0ebd5871e87ff3ef7737cb5360b1e38181a4e5a8c1236f3476fec3b2") version("5.4.4", sha256="0fd9d378f04ff886d8864728baf5d90b8b0b82c1e541e92550644fb54f75691d") version("5.4.1", sha256="7bd887957173aa592091772c1c36f6aa606b3b2ace0d14e2c26c7463dcf2deb7") version("5.4.0", sha256="fe192a65a56439b098e26e3b7ee224dda7c2c73a58f36ef2cc6f9185ae8c482b") @@ -29,7 +30,8 @@ class Fplll(AutotoolsPackage): version("5.1.0", sha256="58175c54cc92752576a64361c73e4ea7797fc18fb703b3f22c7570a09075486f") version("5.0.3", sha256="d2b11b7dcb26c30ac1aab9ff75aca9b3dd6e0b0b40c382af16017a717dfe05c2") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("gmp") depends_on("mpfr") diff --git a/repos/spack_repo/builtin/packages/fpm/package.py b/repos/spack_repo/builtin/packages/fpm/package.py index b0b4ec02187..d681ca0b201 100644 --- a/repos/spack_repo/builtin/packages/fpm/package.py +++ b/repos/spack_repo/builtin/packages/fpm/package.py @@ -26,6 +26,10 @@ class Fpm(Package): license("MIT") + version("0.13.0", sha256="2c81b448efe9f6a93f4c3cfd7131a42249cd611121857f2bae15b8e2d69ff9a7") + version("0.12.0", sha256="b519b614c693dc26f553f0eb902fc707adab9d1759f17ff098412c14d6b290fe") + version("0.11.0", sha256="f6c998c9afd39eb42c7e80a306cfbed5faa77eaa42eb4f75b93864c338db1795") + version("0.10.1", sha256="dd97b3b61f2ec8a7ea7a2a588920097f513f74ff8b1a12531074dad07c81dc6c") version("0.10.0", sha256="00d687e17bdada4dcae0ff1ea2e01bad287dcc77a74c3bbde0c9ff9633b655bb") version("0.9.0", sha256="484debabd7d22186ac41f865ddf63475c279a61a51aaff5636ed615860b5b8d7") version("0.8.2", sha256="67fd8f4f78d19662c61855f531465e347ab0bc913ba59bd419f75f4022d2cd70") diff --git a/repos/spack_repo/builtin/packages/fq/package.py b/repos/spack_repo/builtin/packages/fq/package.py index a70e0af4153..60f28b099ab 100644 --- a/repos/spack_repo/builtin/packages/fq/package.py +++ b/repos/spack_repo/builtin/packages/fq/package.py @@ -23,5 +23,5 @@ class Fq(Package): depends_on("rust") def install(self, spec, prefix): - cargo = which("cargo") + cargo = which("cargo", required=True) cargo("install", "--root", prefix, "--path", ".") diff --git a/repos/spack_repo/builtin/packages/freebayes/package.py b/repos/spack_repo/builtin/packages/freebayes/package.py index b3e8d85029c..3b19e317e02 100644 --- a/repos/spack_repo/builtin/packages/freebayes/package.py +++ b/repos/spack_repo/builtin/packages/freebayes/package.py @@ -19,12 +19,6 @@ class Freebayes(MesonPackage): version("1.3.6", sha256="6016c1e58fdf34a1f6f77b720dd8e12e13a127f7cbac9c747e47954561b437f5") version("1.3.5", sha256="7e2635690e916ed85cec36b3263e6e5357413a4f2bf3035362d9749335e8a696") - version( - "1.1.0", - commit="39e5e4bcb801556141f2da36aba1df5c5c60701f", - submodules=True, - deprecated=True, - ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -32,57 +26,28 @@ class Freebayes(MesonPackage): depends_on("cmake", type="build") depends_on("zlib-api") - # Deps for @1.3.5 and beyond - depends_on("ninja", type="build", when="@1.3.5:") - depends_on("pkgconfig", type="build", when="@1.3.5:") - depends_on("htslib", when="@1.3.5:") - depends_on("zlib-api", when="@1.3.5:") - depends_on("xz", when="@1.3.5:") - depends_on("parallel", when="@1.3.5:") - depends_on("vcftools", when="@1.3.5:") - depends_on("bc", when="@1.3.5:") - depends_on("samtools", when="@1.3.5:") + depends_on("ninja", type="build") + depends_on("pkgconfig", type="build") + depends_on("htslib") + depends_on("zlib-api") + depends_on("xz") + depends_on("parallel") + depends_on("vcftools") + depends_on("bc") + depends_on("samtools") depends_on("gmake", type="build") parallel = False - @when("@:1.1.0") - def edit(self, spec, prefix): - makefile = FileFilter("Makefile") - b = prefix.bin - makefile.filter( - "cp bin/freebayes bin/bamleftalign /usr/local/bin/", - "cp bin/freebayes bin/bamleftalign {0}".format(b), - ) - - @when("@:1.1.0") - @run_before("install") - def make_prefix_dot_bin(self): - mkdir(prefix.bin) - - @when("@:1.1.0") - def meson(self, spec, prefix): - pass - - @when("@:1.1.0") - def build(self, spec, prefix): - make() - - @when("@:1.1.0") - def install(self, spec, prefix): - make("install") - @property def vcflib_builddir(self): return join_path(self.build_directory, "vcflib") - @when("@1.3.4:") def setup_build_environment(self, env: EnvironmentModifications) -> None: if self.run_tests: env.prepend_path("PATH", self.vcflib_builddir) env.prepend_path("PATH", self.build_directory) - @when("@1.3.4:") def check(self): mkdir(self.vcflib_builddir) with working_dir(self.vcflib_builddir): diff --git a/repos/spack_repo/builtin/packages/freecad/package.py b/repos/spack_repo/builtin/packages/freecad/package.py index 2494f5ab6a7..4d60d5ecdc6 100644 --- a/repos/spack_repo/builtin/packages/freecad/package.py +++ b/repos/spack_repo/builtin/packages/freecad/package.py @@ -15,11 +15,14 @@ class Freecad(CMakePackage): homepage = "https://www.freecad.org/" url = "https://github.com/FreeCAD/FreeCAD/archive/refs/tags/0.20.2.tar.gz" + git = "https://github.com/FreeCAD/FreeCAD" maintainers("aweits") license("LGPL-2.0-or-later") + version("1.0.2", commit="256fc7eff3379911ab5daf88e10182c509aa8052", submodules=True) + version("1.0.1", commit="878f0b8c9c72c6f215833a99f2762bc3a3cf2abd", submodules=True) version("0.20.2", sha256="46922f3a477e742e1a89cd5346692d63aebb2b67af887b3e463e094a4ae055da") depends_on("c", type="build") # generated @@ -29,7 +32,7 @@ class Freecad(CMakePackage): depends_on("opencascade") depends_on("xerces-c") depends_on("vtk") - depends_on("salome-med") + depends_on("med") depends_on( "boost+python+filesystem+date_time+graph+iostreams+program_options+regex+serialization+system+thread" # noqa: E501 ) diff --git a/repos/spack_repo/builtin/packages/freefem/package.py b/repos/spack_repo/builtin/packages/freefem/package.py index 31b270e5a2b..a284fdda2e9 100644 --- a/repos/spack_repo/builtin/packages/freefem/package.py +++ b/repos/spack_repo/builtin/packages/freefem/package.py @@ -16,10 +16,16 @@ class Freefem(AutotoolsPackage): """ homepage = "https://freefem.org" - url = "https://github.com/FreeFem/FreeFem-sources/archive/refs/tags/v4.10.tar.gz" + url = "https://github.com/FreeFem/FreeFem-sources/archive/refs/tags/v4.16.tar.gz" + git = "https://github.com/FreeFem/FreeFem-sources.git" - maintainers("corentin-dev") + maintainers("mohd-afeef-badri") + license("LGPL-3.0-only", checked_by="mohd-afeef-badri") + + version("develop", branch="develop") + version("4.16", sha256="9921af94fb69c85a650b05b0eeb4d56623af35f5d71d635b7ba5e2508c02246a") + version("4.15", sha256="a47af5a7c7006ae8c648845e55d732ea403837af869493000a008b2013c698e3") version("4.14", sha256="931cbfe9ef6f6530756c300c5ae47bfdaca21c560a5407cb33325a376a3b6af8") version("4.13", sha256="aefd4ff02333209f7433abef2e74acb621b6946063ff27e81cf2da43120b6ae4") version("4.12", sha256="291c5f46761711d6303914f9c4f165fd85a7b7b69141f7473e0b6484ce6ab0f5") @@ -34,6 +40,7 @@ class Freefem(AutotoolsPackage): variant("mpi", default=False, description="Activate MPI support") variant("petsc", default=False, description="Compile with PETSc/SLEPc") + variant("superlu", default=True, description="Activate SuperLU support") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -49,7 +56,7 @@ class Freefem(AutotoolsPackage): # depends_on("patch", type="build") # depends_on("unzip", type="build") - depends_on("netlib-lapack") + depends_on("lapack") depends_on("mpi", when="+mpi") depends_on("slepc", when="+petsc") @@ -84,4 +91,7 @@ def configure_args(self): options.append("--without-petsc") options.append("--without-slepc") + if spec.satisfies("~superlu"): + options.append("--disable-superlu") + return options diff --git a/repos/spack_repo/builtin/packages/freeimage/package.py b/repos/spack_repo/builtin/packages/freeimage/package.py index ef876cb762f..b6ac6f92054 100644 --- a/repos/spack_repo/builtin/packages/freeimage/package.py +++ b/repos/spack_repo/builtin/packages/freeimage/package.py @@ -14,7 +14,11 @@ class Freeimage(MakefilePackage): homepage = "https://freeimage.sourceforge.net/" - version("3.18.0", sha256="f41379682f9ada94ea7b34fe86bf9ee00935a3147be41b6569c9605a53e438fd") + # CVE-2024-31570 + with default_args(deprecated=True): + version( + "3.18.0", sha256="f41379682f9ada94ea7b34fe86bf9ee00935a3147be41b6569c9605a53e438fd" + ) patch("install_fixes.patch", when="@3.18.0") diff --git a/repos/spack_repo/builtin/packages/freeipmi/package.py b/repos/spack_repo/builtin/packages/freeipmi/package.py index 74292cddf51..22d0eb5ba26 100644 --- a/repos/spack_repo/builtin/packages/freeipmi/package.py +++ b/repos/spack_repo/builtin/packages/freeipmi/package.py @@ -26,6 +26,7 @@ class Freeipmi(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") + version("1.6.16", sha256="5bcef6bb9eb680e49b4a3623579930ace7899f53925b2045fe9f91ad6904111d") version("1.6.9", sha256="f25e1c35f3d0f1b5a99cc31ecc2353ca83ed46a15163842fba870127dc9c8206") version("1.6.4", sha256="65dfbb95a30438ba247f01a58498862a37d2e71c8c950bcfcee459d079241a3c") diff --git a/repos/spack_repo/builtin/packages/freetype/package.py b/repos/spack_repo/builtin/packages/freetype/package.py index 7771e17beeb..07ecdbb48e6 100644 --- a/repos/spack_repo/builtin/packages/freetype/package.py +++ b/repos/spack_repo/builtin/packages/freetype/package.py @@ -23,15 +23,11 @@ class Freetype(AutotoolsPackage, CMakePackage): license("FTL OR GPL-2.0-or-later") + version("2.14.2", sha256="752c2671f85c54a84b7f0dd2b5cd26b6b741117033886ffbc5ac89a68464b848") + version("2.14.1", sha256="174d9e53402e1bf9ec7277e22ec199ba3e55a6be2c0740cb18c0ee9850fc8c34") + version("2.14.0", sha256="73819bbf34c84f18b89ebbd35107d3ae92c604ff7336cd09ff1452930c2dcb9c") version("2.13.3", sha256="5c3a8e78f7b24c20b25b54ee575d6daa40007a5f4eea2845861c3409b3021747") - # Freetype 2.13.3 broke the public interface, so marking 2.13.2 as preferred in spack 0.23 - # Once spack 0.23 has been released, this preference can be removed again. - # https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests/330 - version( - "2.13.2", - sha256="1ac27e16c134a7f2ccea177faba19801131116fd682efc1f5737037c5db224b5", - preferred=True, - ) + version("2.13.2", sha256="1ac27e16c134a7f2ccea177faba19801131116fd682efc1f5737037c5db224b5") version("2.13.1", sha256="0b109c59914f25b4411a8de2a506fdd18fa8457eb86eca6c7b15c19110a92fa5") version("2.13.0", sha256="a7aca0e532a276ea8d85bd31149f0a74c33d19c8d287116ef8f5f8357b4f1f80") version("2.12.1", sha256="efe71fd4b8246f1b0b1b9bfca13cfff1c9ad85930340c27df469733bbb620938") @@ -62,8 +58,7 @@ class Freetype(AutotoolsPackage, CMakePackage): conflicts( "%intel", when="@2.8:2.10.2", - msg="freetype-2.8 to 2.10.2 cannot be built with icc (does not " - "support __builtin_shuffle)", + msg="freetype-2.8 to 2.10.2 cannot be built with icc (does not support __builtin_shuffle)", ) variant("shared", default=True, description="Build shared libraries") diff --git a/repos/spack_repo/builtin/packages/frobby/package.py b/repos/spack_repo/builtin/packages/frobby/package.py new file mode 100644 index 00000000000..2fd16b55720 --- /dev/null +++ b/repos/spack_repo/builtin/packages/frobby/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.makefile import MakefilePackage + +from spack.package import * + + +class Frobby(MakefilePackage): + """Frobby is a software system for computations with monomial + ideals, intended for research in computational algebra. It + supports Euler characteristics, Hilbert series, maximal standard + monomials, combinatorial optimization, primary and irreducible + decomposition, Alexander duals, associated primes, minimization + and intersection of monomial ideals, and the computation of + Frobenius problems with very large numbers.""" + + homepage = "https://github.com/Macaulay2/frobby" + url = "https://github.com/Macaulay2/frobby/releases/download/v0.9.7/frobby_v0.9.7.tar.gz" + git = "https://github.com/Macaulay2/frobby" + + maintainers("d-torrance") + + license("GPL-2.0-or-later", checked_by="d-torrance") + + version("0.9.9", sha256="4c072c2ee208d853b7173921d45cc7d39297cf3f7fd9c8e7da8e482da3b51aa3") + version("0.9.8", sha256="a39fdc4d68c20bf7259ef8f11262e0f74df912be5012dfac834545aa40296301") + version("0.9.7", sha256="efd0a825b67731aa5fb4ea8d2e1004830cc11685be3e09f5401612c411214a96") + version("0.9.5", tag="v0.9.5", commit="cbda56e8bb0d706f8cd7e6594a8a034797f53eb5") + + depends_on("cxx", type="build") + + depends_on("gmp") + + def build(self, spec, prefix): + make("all") + make("library", "RANLIB=ranlib") # static library + make("library", "MODE=shared") + + @when("@0.9.7:") + def install(self, spec, prefix): + make("install", f"PREFIX={prefix}") + + @when("@:0.9.5") + def install(self, spec, prefix): + make("install", f"PREFIX={prefix}", f"BIN_INSTALL_DIR={prefix.bin}") + mkdirp(prefix.lib) + mkdirp(prefix.include) + install("bin/libfrobby.a", prefix.lib) + install("bin/libfrobby.so", prefix.lib) + install("src/frobby.h", prefix.include) diff --git a/repos/spack_repo/builtin/packages/frugally_deep/package.py b/repos/spack_repo/builtin/packages/frugally_deep/package.py index d24ca04a2aa..fcd3d5f808d 100644 --- a/repos/spack_repo/builtin/packages/frugally_deep/package.py +++ b/repos/spack_repo/builtin/packages/frugally_deep/package.py @@ -11,6 +11,7 @@ class FrugallyDeep(CMakePackage): """A lightweight header-only library for using Keras (TensorFlow) models in C++.""" homepage = "https://github.com/Dobiasd/frugally-deep" + git = "https://github.com/Dobiasd/frugally-deep.git" url = "https://github.com/Dobiasd/frugally-deep/archive/refs/tags/v0.16.3.tar.gz" license("MIT") @@ -24,6 +25,7 @@ class FrugallyDeep(CMakePackage): version("0.16.2", sha256="b16af09606dcf02359de53b7c47323baaeda9a174e1c87e126c3127c55571971") version("0.16.1", sha256="4dac01b779fded96b252b58b76fd29d93bb61257cfff9d2d96ccdab4f0e362ee") version("0.16.0", sha256="5ffe8dddb43a645094b2ca1d48e4ee78e685fbef3c89f08cea8425a39dad9865") + version("0.15.31", commit="6eb3fb09a163e08e7f154c9e1a707f435655ca88") depends_on("c", type="build") depends_on("cxx", type="build") diff --git a/repos/spack_repo/builtin/packages/fsl/package.py b/repos/spack_repo/builtin/packages/fsl/package.py index 43432b9f756..4bafb7c13a1 100644 --- a/repos/spack_repo/builtin/packages/fsl/package.py +++ b/repos/spack_repo/builtin/packages/fsl/package.py @@ -36,7 +36,7 @@ class Fsl(Package, CudaPackage): depends_on("glu") depends_on("iconv") depends_on("openblas", when="@6:") - depends_on("vtk@:8") + depends_on("vtk") conflicts("cuda_arch=none", when="+cuda", msg="must select a CUDA architecture") conflicts("platform=darwin", msg="currently only packaged for linux") @@ -168,7 +168,7 @@ def install(self, spec, prefix): build = Executable(join_path(self.stage.source_path, "build")) build() - rm = which("rm") + rm = which("rm", required=True) for file in glob.glob("build*"): rm("-f", file) rm("-r", "-f", "src") diff --git a/repos/spack_repo/builtin/packages/fujitsu_fftw/package.py b/repos/spack_repo/builtin/packages/fujitsu_fftw/package.py index 6a9954c91d1..00447ca2365 100644 --- a/repos/spack_repo/builtin/packages/fujitsu_fftw/package.py +++ b/repos/spack_repo/builtin/packages/fujitsu_fftw/package.py @@ -49,9 +49,9 @@ class FujitsuFftw(FftwBase): requires("target=a64fx") def autoreconf(self, spec, prefix): - touch = which("touch") + touch = which("touch", required=True) touch("ChangeLog") - autoreconf = which("autoreconf") + autoreconf = which("autoreconf", required=True) autoreconf("-ifv") def configure(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/fullock/package.py b/repos/spack_repo/builtin/packages/fullock/package.py index 18808da78b8..785def3ce46 100644 --- a/repos/spack_repo/builtin/packages/fullock/package.py +++ b/repos/spack_repo/builtin/packages/fullock/package.py @@ -34,5 +34,5 @@ class Fullock(AutotoolsPackage): depends_on("m4", type="build") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/fuse_overlayfs/package.py b/repos/spack_repo/builtin/packages/fuse_overlayfs/package.py index 9f3f5813617..d8088d46e7a 100644 --- a/repos/spack_repo/builtin/packages/fuse_overlayfs/package.py +++ b/repos/spack_repo/builtin/packages/fuse_overlayfs/package.py @@ -16,6 +16,7 @@ class FuseOverlayfs(AutotoolsPackage): license("GPL-2.0-or-later") + version("1.16", sha256="45968517603389ead067222d234bc8d8ed33e4b4f8ba16216bdd3e6aedcccea9") version("1.14", sha256="0779d1ee8fbb6adb48df40e54efa9c608e1d7bbd844800a4c32c110d5fcbe9f2") version("1.13", sha256="96d10344921d5796bcba7a38580ae14a53c4e60399bb90b238ac5a10b3bb65b2") version("1.10", sha256="4351eaed7cf26a5012c14c6e0fc883ef65a7b5dcc95ba129ce485904106c25a9") @@ -30,7 +31,7 @@ class FuseOverlayfs(AutotoolsPackage): version("1.1.1", sha256="9a1c4221a82059fd9686dd8b519d432bae126c08f9d891fb722bcb51ba4933ec") version("1.1.0", sha256="060168c2d5a8c6cc768b4542eba9953b7ff4a31f94bfb2e05b3d1051390838b1") - depends_on("c", type="build") # generated + depends_on("c", type="build") depends_on("autoconf", type="build") depends_on("automake", type="build") diff --git a/repos/spack_repo/builtin/packages/fvtkhdf/package.py b/repos/spack_repo/builtin/packages/fvtkhdf/package.py new file mode 100644 index 00000000000..d6b56f20526 --- /dev/null +++ b/repos/spack_repo/builtin/packages/fvtkhdf/package.py @@ -0,0 +1,47 @@ +# 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 Fvtkhdf(CMakePackage): + """Modern Fortran library for writing VTKHDF format files.""" + + maintainers("nncarlson") + + homepage = "https://github.com/nncarlson/fvtkhdf" + url = "https://github.com/nncarlson/fvtkhdf/releases/download/v0.6.0/fvtkhdf-0.6.0.tar.gz" + git = "https://github.com/nncarlson/fvtkhdf.git" + + license("BSD-2-Clause") + + conflicts( + "platform=windows", msg="This package is not supported on native Windows; use WSL instead." + ) + + version("0.6.0", sha256="3b3eb63cd4cfd29fbadb39f8518a751e64f385ac7c8e4bf3da0407e62728db2e") + version("0.5.1", sha256="e7bf499335a2f29a44b34b0c833fb19574a934702eaa6bc6b38e82fc443bf50a") + + variant("shared", default=True, description="Build shared libraries") + variant("mpi_f08", default=True, description="Expose mpi_f08 communicator overloads") + + depends_on("c", type="build") + depends_on("fortran", type="build") + depends_on("cmake@3.28:", type="build") + depends_on("mpi") + depends_on("hdf5@1.14:1.14+mpi") + depends_on("python@3:", type="build") + depends_on("py-fypp", type="build") + + def cmake_args(self): + return [ + self.define("ENABLE_MPI", True), + self.define_from_variant("USE_MPI_F08", "mpi_f08"), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define("BUILD_HTML", False), + self.define("BUILD_EXAMPLES", False), + self.define("BUILD_TESTING", False), + ] diff --git a/repos/spack_repo/builtin/packages/fwq/package.py b/repos/spack_repo/builtin/packages/fwq/package.py new file mode 100644 index 00000000000..bbbaf741b4c --- /dev/null +++ b/repos/spack_repo/builtin/packages/fwq/package.py @@ -0,0 +1,51 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import os.path + +from spack_repo.builtin.build_systems.makefile import MakefilePackage + +from spack.package import * + + +class Fwq(MakefilePackage): + """FWQ is the Fixed Work Quanta benchmark designed to test system noise on HPC systems.""" + + homepage = "https://github.com/LLNL/system-noise" + git = "https://github.com/LLNL/system-noise.git" + + maintainers("eleon", "nhanford") + + license("MIT", checked_by="nhanford") + + version("main", branch="main") + + variant("mpi", default=False, description="Build MPI-dependent benchmarks.") + + depends_on("mpi", when="+mpi") + depends_on("gcc") + depends_on("py-pandas") + + build_directory = "fwq" + + @property + def build_targets(self): + targets = ["single", "thread"] + if self.spec.satisfies("+mpi"): + targets.append("mpi") + return targets + + @property + def install_targets(self): + targets = ["fwq", "fwq-th"] + if self.spec.satisfies("+mpi"): + targets.append("fwq-mpi") + return targets + + def install(self, spec, prefix): + mkdir(prefix.bin) + with working_dir(self.build_directory): + for target in self.install_targets: + install(target, prefix.bin) + install(os.path.join("scripts", "fwq-stats.py"), prefix.bin) diff --git a/repos/spack_repo/builtin/packages/fzf/github_mirrors.patch b/repos/spack_repo/builtin/packages/fzf/github_mirrors.patch deleted file mode 100644 index d17663286a2..00000000000 --- a/repos/spack_repo/builtin/packages/fzf/github_mirrors.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- a/Makefile 2019-03-29 08:58:38.934257084 -0600 -+++ b/Makefile 2019-03-29 08:58:38.934257084 -0600 -@@ -99,7 +99,12 @@ - ln -sf $(ROOT_DIR)/vendor $(VENDOR_LINK) - - vendor: $(GLIDE_YAML) -- go get -u github.com/Masterminds/glide && $(GOPATH)/bin/glide install && touch $@ -+ go get -u github.com/Masterminds/glide -+ $(GOPATH)/bin/glide $(if ${GLIDE_HOME}, --home ${GLIDE_HOME},) mirror set https://golang.org/x/crypto https://github.com/golang/crypto --vcs git -+ $(GOPATH)/bin/glide $(if ${GLIDE_HOME}, --home ${GLIDE_HOME},) mirror set https://golang.org/x/text https://github.com/golang/text --vcs git -+ $(GOPATH)/bin/glide $(if ${GLIDE_HOME}, --home ${GLIDE_HOME},) mirror set https://golang.org/x/sys https://github.com/golang/sys --vcs git -+ $(GOPATH)/bin/glide $(if ${GLIDE_HOME}, --home ${GLIDE_HOME},) mirror set https://gopkg.in/yaml.v2 https://github.com/go-yaml/yaml.git --vcs git -+ $(GOPATH)/bin/glide $(if ${GLIDE_HOME}, --home ${GLIDE_HOME},) install && touch $@ - - test: $(SOURCES) vendor - SHELL=/bin/sh GOOS= go test -v -tags "$(TAGS)" \ diff --git a/repos/spack_repo/builtin/packages/fzf/package.py b/repos/spack_repo/builtin/packages/fzf/package.py index 78c975ee135..dfc7be7d200 100644 --- a/repos/spack_repo/builtin/packages/fzf/package.py +++ b/repos/spack_repo/builtin/packages/fzf/package.py @@ -26,6 +26,11 @@ class Fzf(GoPackage): # Versions from newest to oldest version("master", branch="master") + version("0.67.0", sha256="da72936dd23045346769dbf233a7a1fa6b4cfe4f0e856b279821598ce8f692af") + version("0.66.0", sha256="576659beee244b4ecccf45f1c576340143d8ce6d97fa053e6cbdd3f75c66b351") + version("0.65.2", sha256="53b7e0077833f96ae04fd1e312ed65b2d5c427422b652dd3ce6c2d1702f8ce56") + version("0.65.1", sha256="82fa35dc3ba5d716db26a507f90bb0e724f586123c28ad3fb376bd8384669abf") + version("0.64.0", sha256="e990529375a75e9be03b58b6a136573b9fd1189c1223aaa760e47fcb94812172") version("0.62.0", sha256="e5beae86a3d026b2c2cfc165715d45b831b9f337a9e96f711ba3bc3d15e50900") version("0.61.0", sha256="5d72cdf708c6adc240b3b43dfecd218cf4703ea609422fb4d62812e9f79f0a12") version("0.60.3", sha256="bdef337774050c26c6c4a6f38bc4ccb0901450854cd7f667cb3a330166a9ada5") @@ -49,7 +54,8 @@ class Fzf(GoPackage): variant("vim", default=False, description="Install vim plugins for fzf") # Build dependencies - depends_on("go@1.20:", type="build", when="@0.49.0:") + depends_on("go@1.23:", type="build", when="@0.66:") + depends_on("go@1.20:", type="build", when="@0.49:") depends_on("go@1.17:", type="build") executables = ["^fzf$"] @@ -72,7 +78,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: super().setup_build_environment(env) # Set required environment variables for non-git builds - env.set("FZF_VERSION", self.spec.version) + env.set("FZF_VERSION", self.spec.version.string) env.set("FZF_REVISION", "tarball") @run_after("install") diff --git a/repos/spack_repo/builtin/packages/g2/package.py b/repos/spack_repo/builtin/packages/g2/package.py index 152bba20846..dc50300b30e 100644 --- a/repos/spack_repo/builtin/packages/g2/package.py +++ b/repos/spack_repo/builtin/packages/g2/package.py @@ -73,7 +73,7 @@ class G2(CMakePackage): depends_on("ip@3.3.3:", when="+utils +w3emc") requires("^ip precision=d", when="^ip@4.1:") depends_on("sp", when="+utils +w3emc ^ip@:4") - requires("sp precision=d", when="^sp@2.4:") + requires("^sp precision=d", when="^sp@2.4:") with when("+w3emc"): depends_on("w3emc") depends_on("w3emc precision=4", when="precision=4") diff --git a/repos/spack_repo/builtin/packages/g4adept/package.py b/repos/spack_repo/builtin/packages/g4adept/package.py new file mode 100644 index 00000000000..5b52c17f64e --- /dev/null +++ b/repos/spack_repo/builtin/packages/g4adept/package.py @@ -0,0 +1,73 @@ +# 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 CMakeBuilder, CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage + +from spack.package import * + + +class G4adept(CMakePackage, CudaPackage): + """Accelerated demonstrator of electromagnetic Particle Transport""" + + homepage = "https://adept-project.readthedocs.io/" + url = "https://github.com/apt-sim/AdePT/archive/refs/tags/v0.2.0.tar.gz" + git = "https://github.com/apt-sim/AdePT.git" + + maintainers("wdconinc", "sethrj") + + license("Apache-2.0", checked_by="wdconinc") + + version("0.3.0", sha256="e179d0b600beeeb34357c767bbc22498715ca6719917abbc14221fde39fb2885") + version("0.2.0", sha256="4075ebb652b17d6cf94b341fdc64df088ce9538b0aba433e413606d5cb51c618") + + variant( + "covfie", default=True, description="Use external B field from file via the covfie library" + ) + variant("examples", default=False, description="Build examples") + variant( + "split_kernels", default=False, description="Run split version of the transport kernels" + ) + variant("surf", default=False, description="Enable surface model navigation on GPU") + variant( + "mixed_precision", + default=False, + description="Use B-field integration and surface model in mixed precision", + ) + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("cmake@3.25.2:", type="build") + + depends_on("veccore@0.5.2:") + depends_on("vecgeom@2: +cuda +gdml") + depends_on("xerces-c") + depends_on("geant4 ~vecgeom") + depends_on("g4vg@1.0.3:") + depends_on("g4hepem +cuda +early_tracking_exit") + depends_on("hepmc3", type="test") + + with when("+covfie"): + for arch in CudaPackage.cuda_arch_values: + depends_on(f"covfie +cuda cuda_arch={arch}", when=f"+cuda cuda_arch={arch}") + + for pkg in ["vecgeom", "g4hepem"]: + for arch in CudaPackage.cuda_arch_values: + depends_on(f"{pkg} +cuda cuda_arch={arch}", when=f"+cuda cuda_arch={arch}") + + conflicts("~cuda", msg="AdePT requires CUDA support") + conflicts("cuda_arch=none", when="+cuda", msg="CUDA architecture is required") + + def cmake_args(self): + args = [ + self.define("ADEPT_BUILD_TESTING", self.run_tests), + self.define_from_variant("ADEPT_BUILD_EXAMPLES", "examples"), + self.define_from_variant("ADEPT_USE_EXT_BFIELD", "covfie"), + self.define_from_variant("ADEPT_MIXED_PRECISION", "mixed_precision"), + self.define_from_variant("ADEPT_USE_SPLIT_KERNELS", "split_kernels"), + self.define_from_variant("ADEPT_USE_SURF", "surf"), + self.define("ADEPT_USE_BUILTIN_G4VG", False), + ] + args.append(CMakeBuilder.define_cuda_architectures(self)) + return args diff --git a/repos/spack_repo/builtin/packages/g4channeling/package.py b/repos/spack_repo/builtin/packages/g4channeling/package.py index f32544c2805..6b37092736c 100644 --- a/repos/spack_repo/builtin/packages/g4channeling/package.py +++ b/repos/spack_repo/builtin/packages/g4channeling/package.py @@ -19,6 +19,7 @@ class G4channeling(Package): maintainers("drbenmorgan") # Only versions relevant to Geant4 releases built by spack are added + version("2.0", sha256="662159288644e07b79d7fe091efbebba52b59546b3dc6f5d285b976ad12f2d06") version("1.0", sha256="203e3c69984ca09acd181a1d31a9b0efafad4bc12e6c608f0b05e695120d67f2") def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/g4emlow/package.py b/repos/spack_repo/builtin/packages/g4emlow/package.py index 4f36290bf1d..d44e6629ef0 100644 --- a/repos/spack_repo/builtin/packages/g4emlow/package.py +++ b/repos/spack_repo/builtin/packages/g4emlow/package.py @@ -19,6 +19,7 @@ class G4emlow(Package): maintainers("drbenmorgan") # Only versions relevant to Geant4 releases built by spack are added + version("8.8", sha256="b60cfd63176f5d16107e2a25b35b235155032d1735d749670ca50fede12624cf") version("8.6.1", sha256="4a93588d26080ce1d336b94f76fadabe4905fb8f1cba2415795023d6cd8f4a8a") version("8.6", sha256="fb7abed0d1db1d8b9ea364279b95e228d7bf3e3a5dc8d449b81665cada4a1a9e") version("8.5", sha256="66baca49ac5d45e2ac10c125b4fb266225e511803e66981909ce9cd3e9bcef73") diff --git a/repos/spack_repo/builtin/packages/g4hepem/package.py b/repos/spack_repo/builtin/packages/g4hepem/package.py new file mode 100644 index 00000000000..b9b79cb2cc1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/g4hepem/package.py @@ -0,0 +1,46 @@ +# 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 CMakeBuilder, CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage + +from spack.package import * + + +class G4hepem(CMakePackage, CudaPackage): + """Geant4 EM physics simulation R&D project looking for solutions + to reduce the computing performance bottleneck experienced by + HEP detector simulation applications.""" + + homepage = "https://github.com/mnovak42/g4hepem" + url = "https://github.com/mnovak42/g4hepem/archive/refs/tags/20251114.tar.gz" + git = "https://github.com/mnovak42/g4hepem.git" + + maintainers("wdconinc") + + license("Apache-2.0", checked_by="wdconinc") + + version("20251114", sha256="d1bf94fd9403043f0c5f3b8bb6d9b79d6108f07c19d8b7403de0acd66774f8af") + + variant( + "early_tracking_exit", default=False, description="Enable user-defined early tracking exit" + ) + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("cmake@3.17:", type="build") + + depends_on("geant4@10.6:") + + def cmake_args(self): + args = [ + self.define("BUILD_TESTING", self.run_tests), + self.define("CMAKE_CXX_STANDARD", self.spec["geant4"].variants["cxxstd"].value), + self.define("G4HepEm_GEANT4_BUILD", True), + self.define_from_variant("G4HepEm_CUDA_BUILD", "cuda"), + self.define_from_variant("G4HepEm_EARLY_TRACKING_EXIT", "early_tracking_exit"), + ] + if self.spec.satisfies("+cuda"): + args.append(CMakeBuilder.define_cuda_architectures(self)) + return args diff --git a/repos/spack_repo/builtin/packages/g4incl/package.py b/repos/spack_repo/builtin/packages/g4incl/package.py index fb4e601054e..f506caae4d5 100644 --- a/repos/spack_repo/builtin/packages/g4incl/package.py +++ b/repos/spack_repo/builtin/packages/g4incl/package.py @@ -20,6 +20,7 @@ class G4incl(Package): maintainers("drbenmorgan") # Only versions relevant to Geant4 releases built by spack are added + version("1.3", sha256="e4b3dbe52acef53536454e22443091212843821bd23628eed846d299599f3bf9") version("1.2", sha256="f880b16073ee0a92d7494f3276a6d52d4de1d3677a0d4c7c58700396ed0e1a7e") version("1.1", sha256="5d82e71db5f5a1b659937506576be58db7de7753ec5913128141ae7fce673b44") version("1.0", sha256="716161821ae9f3d0565fbf3c2cf34f4e02e3e519eb419a82236eef22c2c4367d") diff --git a/repos/spack_repo/builtin/packages/g4particlexs/package.py b/repos/spack_repo/builtin/packages/g4particlexs/package.py index 473becc4e9b..d5b343c6051 100644 --- a/repos/spack_repo/builtin/packages/g4particlexs/package.py +++ b/repos/spack_repo/builtin/packages/g4particlexs/package.py @@ -20,6 +20,7 @@ class G4particlexs(Package): maintainers("drbenmorgan") # Only versions relevant to Geant4 releases built by spack are added + version("4.2", sha256="c52bbf86aaa589b78aba80b16ab0adf1041ea300de5395865b97fcee6eb55851") version("4.1", sha256="07ae1e048e9ac8e7f91f6696497dd55bd50ccc822d97af1a0b9e923212a6d7d1") version("4.0", sha256="9381039703c3f2b0fd36ab4999362a2c8b4ff9080c322f90b4e319281133ca95") version("3.1.1", sha256="66c17edd6cb6967375d0497add84c2201907a25e33db782ebc26051d38f2afda") diff --git a/repos/spack_repo/builtin/packages/g4photonevaporation/package.py b/repos/spack_repo/builtin/packages/g4photonevaporation/package.py index a7a9b418e93..85bae7bbb7f 100644 --- a/repos/spack_repo/builtin/packages/g4photonevaporation/package.py +++ b/repos/spack_repo/builtin/packages/g4photonevaporation/package.py @@ -19,6 +19,7 @@ class G4photonevaporation(Package): maintainers("drbenmorgan") # Only versions relevant to Geant4 releases built by spack are added + version("6.1.2", sha256="02149c0ab91d88ee24e78532558777e39a068b9fcdd199136101ff58e635e742") version("6.1", sha256="5ffc1f99a81d50c9020186d59874af73c53ba24c1842b3b82b3188223bb246f2") version("5.7", sha256="761e42e56ffdde3d9839f9f9d8102607c6b4c0329151ee518206f4ee9e77e7e5") version("5.5", sha256="5995dda126c18bd7f68861efde87b4af438c329ecbe849572031ceed8f5e76d7") diff --git a/repos/spack_repo/builtin/packages/g4pii/package.py b/repos/spack_repo/builtin/packages/g4pii/package.py index 7e28eaf0957..47cc2444bc8 100644 --- a/repos/spack_repo/builtin/packages/g4pii/package.py +++ b/repos/spack_repo/builtin/packages/g4pii/package.py @@ -34,7 +34,7 @@ def setup_dependent_run_environment( def url_for_version(self, version): """Handle version string.""" - return "https://geant4-data.web.cern.ch/geant4-data/datasets/G4PII.1.3.tar.gz" % version + return f"https://geant4-data.web.cern.ch/geant4-data/datasets/G4PII.{version}.tar.gz" @property def g4datasetname(self): diff --git a/repos/spack_repo/builtin/packages/g4vg/package.py b/repos/spack_repo/builtin/packages/g4vg/package.py index 58b0e9aa663..d87f383834b 100644 --- a/repos/spack_repo/builtin/packages/g4vg/package.py +++ b/repos/spack_repo/builtin/packages/g4vg/package.py @@ -20,6 +20,8 @@ class G4vg(CMakePackage): version("develop", branch="main", get_full_repo=True) + version("1.0.6", sha256="81d6b2e79dcf32e4d3886966da2996924efe06f8e36ad5a6200b0bd153f690f5") + version("1.0.5", sha256="fa44d071aaf95de596f7b22d2062830acd7e154a3bc9d67ad5a306eff64630d2") version("1.0.4", sha256="ac38878aedaf9fe628f498290cf4fa6cdd21980b7b83663ce8ef3c8f3ff31cb2") version("1.0.3", sha256="6f0920a9ad2e04a701bec636f117d4093be1e50761f091ec507efd078b659bcd") version("1.0.2", sha256="daeb9263f2741c4a1073eb26f2e9fc10e89207c1ed3425da70db934069ff4160") @@ -29,7 +31,8 @@ class G4vg(CMakePackage): variant("shared", default=True, description="Build shared libraries") depends_on("cxx", type="build") - depends_on("vecgeom@1.2.8:") + depends_on("vecgeom@1.2.7:", when="@1.0.5:") + depends_on("vecgeom@1.2.8:", when="@:1.0.4") depends_on("geant4") def cmake_args(self): diff --git a/repos/spack_repo/builtin/packages/gadap/package.py b/repos/spack_repo/builtin/packages/gadap/package.py index 64409b8f972..a375f75fd9e 100644 --- a/repos/spack_repo/builtin/packages/gadap/package.py +++ b/repos/spack_repo/builtin/packages/gadap/package.py @@ -19,7 +19,8 @@ class Gadap(AutotoolsPackage): version("2.0", sha256="ae9a989ca00ec29fb40616383d170883f07c022456db338399982a8a94ec0100") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("curl@7.18.0:") depends_on("libdap4") diff --git a/repos/spack_repo/builtin/packages/gams/package.py b/repos/spack_repo/builtin/packages/gams/package.py index 1dec2800468..0ab0909da62 100644 --- a/repos/spack_repo/builtin/packages/gams/package.py +++ b/repos/spack_repo/builtin/packages/gams/package.py @@ -17,6 +17,10 @@ class Gams(Package): homepage = "https://www.gams.com/" manual_download = True + license("LicenseRef-GAMS-Proprietary", checked_by="alecbcs") + + redistribute(source=False, binary=False) + version("27.2", md5="4f3f3484a4389661e0522a4cfe0289fd", expand=False) def url_for_version(self, version): diff --git a/repos/spack_repo/builtin/packages/garfieldpp/package.py b/repos/spack_repo/builtin/packages/garfieldpp/package.py index 7b1e8f7fbd7..5ce603be591 100644 --- a/repos/spack_repo/builtin/packages/garfieldpp/package.py +++ b/repos/spack_repo/builtin/packages/garfieldpp/package.py @@ -27,6 +27,8 @@ class Garfieldpp(CMakePackage): variant("examples", default=False, description="Build garfield examples") version("master", branch="master") + version("2025.12", sha256="51b66fdd2bada636c4f586a08a1795aadf65de57a387970a5735945bca0bd394") + version("2025.01", sha256="0343aa4a5984ecfc52561c931c844658494afe768fbfedab65e7bfd7a7b503b3") version("5.0", sha256="453e83c2829f57046c471a691e7cd9630650a3c6a696f3be6e86bf2d5159e7b3") version("4.0", sha256="82bc1f0395213bd30a7cd854426e6757d0b4155e99ffd4405355c9648fa5ada3") version("3.0", sha256="c1282427a784658bc38b71c8e8cfc8c9f5202b185f0854d85f7c9c5a747c5406") @@ -39,6 +41,12 @@ class Garfieldpp(CMakePackage): depends_on("gsl") depends_on("geant4", when="+examples") + conflicts( + "^root@6.38:", + when="@:2025.01", + msg="Garfield++ <= 2025.01 is not compatible with ROOT >= 6.38", + ) + def cmake_args(self): args = [ "-DCMAKE_INSTALL_LIBDIR=lib", diff --git a/repos/spack_repo/builtin/packages/gasnet/package.py b/repos/spack_repo/builtin/packages/gasnet/package.py index d287cfeb0ae..7ab61a7c833 100644 --- a/repos/spack_repo/builtin/packages/gasnet/package.py +++ b/repos/spack_repo/builtin/packages/gasnet/package.py @@ -3,7 +3,9 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os +import re import warnings +from pathlib import Path from spack_repo.builtin.build_systems.cuda import CudaPackage from spack_repo.builtin.build_systems.generic import Package @@ -22,73 +24,56 @@ class Gasnet(Package, CudaPackage, ROCmPackage): writers (as opposed to end users), and the primary goals are high performance, interface portability, and expressiveness. - ***NOTICE***: The GASNet library built by this Spack package is ONLY intended for - unit-testing purposes, and is generally UNSUITABLE FOR PRODUCTION USE. - The RECOMMENDED way to build GASNet is as an embedded library as configured - by the higher-level client runtime package (UPC++, Legion, Chapel, etc), including - system-specific configuration. + ***NOTICE***: The Spack built version of GASNet is generally considered + UNSUITABLE FOR PRODUCTION USE by its authors. The RECOMMENDED way to build + GASNet is as an embedded library as configured by the higher-level client + runtime package (UPC++, Chapel, etc), including system-specific configuration. + + Despite this recommendation, this Spack package is a best effort to allow + supporting a range of platforms. For optimal performance and more + fine-grained control on a particular target platform, HPC admins can provide an + external build. + + Note on variant defaults: + Many variants default to "auto" to respect GASNet's carefully tuned + configure-time auto-detection. The configure script's defaults were + chosen over time to balance the needs of multiple clients and target + systems. Explicit variant settings override this auto-detection. """ homepage = "https://gasnet.lbl.gov" url = "https://gasnet.lbl.gov/EX/GASNet-2024.5.0.tar.gz" - git = "https://bitbucket.org/berkeleylab/gasnet.git" + git = "https://github.com/BerkeleyLab/gasnet.git" - maintainers("PHHargrove", "bonachea") + license("BSD-3-Clause-LBNL") + + maintainers("PHHargrove", "bonachea", "rbberger") tags = ["e4s", "ecp"] + executables = ["^gasnet_trace$"] + # Note to spackage maintainers: + # GASNet's branch ordering in git is: + # develop >= stable >= main >= numbered releases + # which doesn't match Spack's sorting for infinity version strings. + # Please avoid version ranges on non-numeric refs! version("develop", branch="develop") - version("main", branch="stable") - version("master", branch="master") + version("stable", branch="stable") + version("main", branch="main") # commit hash e2fdec corresponds to tag gex-2025.2.0-snapshot version("2025.2.0-snapshot", commit="e2fdece76d86d7b4fa090fbff9b46eb98ce97177") # Versions fetched from git require a Bootstrap step - bootstrap_version = "@master:,2025.2.0-snapshot" + bootstrap_version = "@develop,stable,main,2025.2.0-snapshot" + version("2025.8.0", sha256="bd5919099477d1d2f59c247d006e9d1ac017c9190c974f5e069667418e5bf48d") version("2024.5.0", sha256="f945e80f71d340664766b66290496d230e021df5e5cd88f404d101258446daa9") version("2023.9.0", sha256="2d9f15a794e10683579ce494cd458b0dd97e2d3327c4d17e1fea79bd95576ce6") - version("2023.3.0", sha256="e1fa783d38a503cf2efa7662be591ca5c2bb98d19ac72a9bc6da457329a9a14f") - version( - "2022.9.2", - deprecated=True, - sha256="2352d52f395a9aa14cc57d82957d9f1ebd928d0a0021fd26c5f1382a06cd6f1d", - ) - version( - "2022.9.0", - deprecated=True, - sha256="6873ff4ad8ebee49da4378f2d78095a6ccc31333d6ae4cd739b9f772af11f936", - ) - version( - "2022.3.0", - deprecated=True, - sha256="91b59aa84c0680c807e00d3d1d8fa7c33c1aed50b86d1616f93e499620a9ba09", - ) - version( - "2021.9.0", - deprecated=True, - sha256="1b6ff6cdad5ecf76b92032ef9507e8a0876c9fc3ee0ab008de847c1fad0359ee", - ) - version( - "2021.3.0", - deprecated=True, - sha256="8a40fb3fa8bacc3922cd4d45217816fcb60100357ab97fb622a245567ea31747", - ) - version( - "2020.10.0", - deprecated=True, - sha256="ed17baf7fce90499b539857ee37b3eea961aa475cffbde77e4c607a34ece06a0", - ) - version( - "2020.3.0", - deprecated=True, - sha256="019eb2d2284856e6fabe6c8c0061c874f10e95fa0265245f227fd3497f1bb274", - ) version( - "2019.9.0", + "2023.3.0", deprecated=True, - sha256="117f5fdb16e53d0fa8a47a1e28cccab1d8020ed4f6e50163d985dc90226aaa2c", + sha256="e1fa783d38a503cf2efa7662be591ca5c2bb98d19ac72a9bc6da457329a9a14f", ) # Do NOT add older versions here. # GASNet-EX releases over 2 years old are not supported. @@ -107,29 +92,104 @@ class Gasnet(Package, CudaPackage, ROCmPackage): + "For detailed recommendations, consult https://gasnet.lbl.gov", ) + # ============================================================ + # Threading support variants + # ============================================================ + + variant( + "pthreads", + default="auto", + values=("auto", "on", "off"), + description="Enable use of pthreads (required for PAR/PARSYNC modes)", + ) + + variant( + "threadmode", + default="auto", + values=("auto", "seq", "par", "parsync"), + description="support threaded GASNet clients", + multi=True, + ) + conflicts("threadmode=auto", when="threadmode=seq") + conflicts("threadmode=auto", when="threadmode=par") + conflicts("threadmode=auto", when="threadmode=parsync") + + # ============================================================ + # Memory and system variants + # ============================================================ + + variant( + "pshm", + default="auto", + values=("auto", "on", "off"), + description="Enable/disable inter-process shared memory support", + ) + + variant( + "pmi", + default="auto", + values=("auto", "none", "x", "1", "2", "cray"), + description="PMI version (auto-detected when needed by conduit)", + ) + variant("debug", default=False, description="Enable library debugging mode") + variant( + "mpi_compat", default=False, description="Enable/disable MPI compatibility in all conduits" + ) + variant( + "segment", + default="fast", + values=("fast", "large", "everything"), + description="Build GASNet in the FAST/LARGE/EVERYTHING shared segment configuration", + ) + + with when("conduits=ofi"): + variant( + "ofi_provider", + default="auto", + values=("auto", "generic", "cxi", "psm2", "verbs", "gni", "efa", "sockets", "udp"), + description="Statically configure ofi-conduit for the given provider", + ) + variant( + "ofi_spawner", + default="auto", + values=("auto", "ssh", "mpi", "pmi"), + description="ofi job spawner", + ) + + with when("conduits=ibv"): + variant( + "ibv_max_hcas", + default="1", + values=lambda x: x.isdigit() and int(x) > 0, + description="Maximum number of IBV HCAs to open", + ) + variant( + "ibv_spawner", + default="auto", + values=("auto", "ssh", "mpi", "pmi"), + description="ibv job spawner", + ) + + with when("conduits=ucx"): + variant( + "ucx_spawner", + default="auto", + values=("auto", "ssh", "mpi", "pmi"), + description="ucx job spawner", + ) variant( "cuda", default=False, description="Enables support for the CUDA memory kind in some conduits.\n" + "NOTE: Requires CUDA Driver library be present on the build system", - when="@2020.11:", - ) - conflicts( - "+cuda", - when="@:2020.10", - msg="GASNet version 2020.11.0 or newer required for CUDA support", ) variant( "rocm", default=False, description="Enables support for the ROCm/HIP memory kind in some conduits", - when="@2021.9:", - ) - conflicts( - "+rocm", when="@:2021.8", msg="GASNet version 2021.9.0 or newer required for ROCm support" ) variant( @@ -140,13 +200,22 @@ class Gasnet(Package, CudaPackage, ROCmPackage): when="@2023.9.0:", ) - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + variant( + "pic", default=False, description="Produce position-independent code (for shared libs)" + ) + + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("gmake", type="build") + depends_on("mpi", when="+mpi_compat") depends_on("mpi", when="conduits=mpi") + depends_on("libfabric", when="conduits=ofi") + depends_on("pmix", when="pmi=x") + depends_on("cray-pmi", when="pmi=cray") + depends_on("autoconf@2.69", type="build", when=bootstrap_version) depends_on("automake@1.16:", type="build", when=bootstrap_version) @@ -156,13 +225,55 @@ class Gasnet(Package, CudaPackage, ROCmPackage): depends_on("oneapi-level-zero@1.8.0:", when="+level_zero") + # ============================================================ + # Conflicts + # ============================================================ + + conflicts("threadmode=par", when="pthreads=off", msg="PAR mode requires pthreads") + conflicts("threadmode=parsync", when="pthreads=off", msg="PARSYNC mode requires pthreads") + conflicts( + "pshm=on", when="segment=everything", msg="PSHM not compatible with SEGMENT_EVERYTHING" + ) + conflicts( + "conduits=ucx", + when="segment=everything", + msg="UCX conduit not compatible with SEGMENT_EVERYTHING", + ) + + def enable_or_disable(self, option_name, value): + if value: + return [f"--enable-{option_name}"] + return [f"--disable-{option_name}"] + + def enable_disable_or_auto(self, option_name, variant_name=None): + """Helper for variants with 'auto', 'on', 'off' values. + + Returns configure flags for the given option. + 'auto' returns [], 'on' returns ['--enable-{option_name}'], + 'off' returns ['--disable-{option_name}']. + + Args: + option_name: The configure option name (e.g., 'pthreads') + variant_name: The variant name (e.g., 'pthreads'). If None, uses option_name. + """ + if variant_name is None: + variant_name = option_name + + value = self.spec.variants[variant_name].value + + if value == "on": + return [f"--enable-{option_name}"] + elif value == "off": + return [f"--disable-{option_name}"] + return [] # auto + def install(self, spec, prefix): if spec.satisfies(self.bootstrap_version): bootstrapsh = Executable("./Bootstrap") bootstrapsh() # Record git-describe when fetched from git: try: - git = which("git") + git = which("git", required=True) git("describe", "--long", "--always", output="version.git") except ProcessError: warnings.warn("Omitting version stamp due to git error") @@ -176,14 +287,54 @@ def install(self, spec, prefix): # (eg. Berkeley UPC, UPC++, Legion, etc), some of which provide build-time # selection of the GASNet library sources. This spack package provides # the GASNet-EX sources, for use by appropriate client packages. - install_tree(".", prefix + "/src") - - # Library build is provided for unit-testing purposes only (see notice above) - if "conduits=none" not in spec: - options = ["--prefix=%s" % prefix] - - if spec.satisfies("+debug"): - options.append("--enable-debug") + install_tree(self.stage.source_path, prefix + "/src") + + if not spec.satisfies("conduits=none"): + options = [f"--prefix={prefix}", "--disable-auto-conduit-detect", "--enable-rpath"] + + flags = {"cflags": [], "cxxflags": [], "mpi-cflags": []} + + if spec.satisfies("+pic"): + flags["cflags"].append(self.compiler.cc_pic_flag) + flags["mpi-cflags"].append(self.compiler.cc_pic_flag) + flags["cxxflags"].append(self.compiler.cxx_pic_flag) + + for key, value in sorted(flags.items()): + if value: + options.append(f"--with-{key}={' '.join(value)}") + + options += self.enable_or_disable("debug", spec.satisfies("+debug")) + if not spec.satisfies("threadmode=auto"): + options += self.enable_or_disable("seq", spec.satisfies("threadmode=seq")) + options += self.enable_or_disable("par", spec.satisfies("threadmode=par")) + options += self.enable_or_disable("parsync", spec.satisfies("threadmode=parsync")) + options += self.enable_or_disable("mpi-compat", spec.satisfies("+mpi_compat")) + + options += self.enable_disable_or_auto("pthreads") + options += self.enable_disable_or_auto("pshm") + + # PMI + pmi_val = spec.variants["pmi"].value + if pmi_val == "none": + options.append("--disable-pmi") + elif pmi_val != "auto": + options.append("--enable-pmi") + options.append(f"--with-pmi-version={pmi_val}") + if pmi_val == "x": + options.append(f"--with-pmi-home={spec['pmix'].prefix}") + elif pmi_val == "cray": + options.append(f"--with-pmi-home={spec['cray-pmi'].prefix}") + # else: "auto" - let configure and conduits auto-detect PMI needs + + # ============================================================ + # Segment configuration + # ============================================================ + + options.append(f"--enable-segment-{spec.variants['segment'].value}") + + # ============================================================ + # GPU support (CUDA, ROCm, Level Zero) + # ============================================================ if spec.satisfies("+cuda"): options.append("--enable-kind-cuda-uva") @@ -197,16 +348,30 @@ def install(self, spec, prefix): options.append("--enable-kind-ze") options.append("--with-ze-home=" + spec["oneapi-level-zero"].prefix) - if spec.satisfies("conduits=mpi"): - options.append("--enable-mpi-compat") - else: - options.append("--disable-mpi-compat") + # ============================================================ + # Conduits + # ============================================================ - options.append("--disable-auto-conduit-detect") for c in spec.variants["conduits"].value: - options.append("--enable-" + c) + options.append(f"--enable-{c}") - options.append("--enable-rpath") + if spec.satisfies("conduits=mpi") or spec.satisfies("+mpi_compat"): + options.append(f"--with-mpi-cc={spec['mpi'].mpicc}") + + if spec.satisfies("conduits=ibv"): + options.append(f"--with-ibv-max-hcas={spec.variants['ibv_max_hcas'].value}") + if not spec.satisfies("ibv_spawner=auto"): + options.append(f"--with-ibv-spawner={spec.variants['ibv_spawner'].value}") + + if spec.satisfies("conduits=ofi"): + if not spec.satisfies("ofi_provider=auto"): + options.append(f"--with-ofi-provider={spec.variants['ofi_provider'].value}") + if not spec.satisfies("ofi_spawner=auto"): + options.append(f"--with-ofi-spawner={spec.variants['ofi_spawner'].value}") + + if spec.satisfies("conduits=ucx"): + if not spec.satisfies("ucx_spawner=auto"): + options.append(f"--with-ucx-spawner={spec.variants['ucx_spawner'].value}") configure(*options) make() @@ -215,10 +380,10 @@ def install(self, spec, prefix): for c in spec.variants["conduits"].value: testdir = join_path(self.prefix.tests, c) mkdirp(testdir) - make("-C", c + "-conduit", "testgasnet-par") - install(c + "-conduit/testgasnet", testdir) - make("-C", c + "-conduit", "testtools-par") - install(c + "-conduit/testtools", self.prefix.tests) + make("-C", f"{c}-conduit", "testgasnet") + make("-C", f"{c}-conduit", "testtools") + install(f"{c}-conduit/testgasnet", testdir) + install(f"{c}-conduit/testtools", prefix.tests) @run_after("install") @on_package_attributes(run_tests=True) @@ -280,3 +445,77 @@ def test_testgasnet(self): args = spawner[c][1:] + [test] out = exe(*args, output=str.split, error=str.split) assert expected in out + + @classmethod + def determine_version(cls, exe): + prefix = Path(exe).parent.parent + config = prefix / "include" / "gasnet_config.h" + if config.exists(): + with open(config, "r") as f: + for line in f: + if line.startswith("#define GASNETI_RELEASE_VERSION"): + return line.split()[2] + return None + + @classmethod + def determine_variants(cls, exes, version): + results = [] + for exe in exes: + variants = [] + prefix = Path(exe).parent.parent + config = prefix / "include" / "gasnet_config.h" + lib_dir = prefix / "lib" + + if config.exists(): + flags = {"threadmode": set()} + conduits = [] + + with open(config, "r") as f: + for line in f: + if line.startswith("#define GASNETI_CONDUITS"): + m = re.search(r'"([^"]*)"', line) + conduits = m.group(1).split() if m else [] + variants.append(f"conduits={','.join(conduits)}") + elif line.startswith("#define GASNET_SEGMENT_FAST 1"): + variants.append("segment=fast") + elif line.startswith("#define GASNET_SEGMENT_LARGE 1"): + variants.append("segment=large") + elif line.startswith("#define GASNET_SEGMENT_EVERYTHING 1"): + variants.append("segment=everything") + elif line.startswith("#define GASNETI_MK_CLASS_CUDA_UVA_ENABLED 1"): + flags["cuda"] = True + elif line.startswith("#define GASNETI_MK_CLASS_HIP_ENABLED 1"): + flags["rocm"] = True + elif line.startswith("#define GASNETI_MK_CLASS_ZE_ENABLED 1"): + flags["level_zero"] = True + elif line.startswith("#define GASNETI_PSHM_ENABLED 1"): + flags["pshm"] = True + elif line.startswith("#define HAVE_PTHREAD_H 1"): + flags["pthreads"] = True + elif line.startswith("#define GASNET_DEBUG 1"): + flags["debug"] = True + + # Detect threading modes by checking for library files + # Check any conduit (use first one found) for mode-specific libraries + if lib_dir.exists() and conduits: + for conduit in conduits: + if (lib_dir / f"libgasnet-{conduit}-seq.a").exists(): + flags["threadmode"].add("seq") + if (lib_dir / f"libgasnet-{conduit}-par.a").exists(): + flags["threadmode"].add("par") + if (lib_dir / f"libgasnet-{conduit}-parsync.a").exists(): + flags["threadmode"].add("parsync") + + # Add auto/on/off variants + variants.append("pshm=on" if flags.get("pshm") else "pshm=off") + variants.append("pthreads=on" if flags.get("pthreads") else "pthreads=off") + variants.append(f"threadmode={','.join(flags['threadmode'])}") + + # Add boolean variants + variants.append("+debug" if flags.get("debug") else "~debug") + variants.append("+cuda" if flags.get("cuda") else "~cuda") + variants.append("+rocm" if flags.get("rocm") else "~rocm") + variants.append("+level_zero" if flags.get("level_zero") else "~level_zero") + + results.append(" ".join(variants)) + return results diff --git a/repos/spack_repo/builtin/packages/gate/package.py b/repos/spack_repo/builtin/packages/gate/package.py index 6a612452dc4..2d132a6217c 100644 --- a/repos/spack_repo/builtin/packages/gate/package.py +++ b/repos/spack_repo/builtin/packages/gate/package.py @@ -29,6 +29,7 @@ class Gate(CMakePackage): license("LGPL-3.0-or-later") + version("9.4.2", sha256="11dac0770a13b12647c1b8532d8f11bf401e768dec1e2d054ede71544d961b4d") version("9.1", sha256="aaab874198500b81d45b27cc6d6a51e72cca9519910b893a5c85c8e6d3ffa4fc") version("9.0", sha256="8354f392facc0b7ae2ddf0eed61cc43136195b198ba399df25e874886b8b69cb") @@ -46,7 +47,10 @@ class Gate(CMakePackage): depends_on("geant4@:10.6~threads", when="@9.0") # Gate needs a non-threaded geant4 depends_on("geant4@:10.7~threads", when="@9.1") # Gate needs a non-threaded geant4 + depends_on("geant4@11.4~threads", when="@9.4") + depends_on("root@6", when="@9.4") depends_on("root") + depends_on("itk@5: +rtk", when="+rtk @9.4") depends_on("itk+rtk", when="+rtk") patch("cluster_tools_filemerger_Makefile.patch") diff --git a/repos/spack_repo/builtin/packages/gau2grid/package.py b/repos/spack_repo/builtin/packages/gau2grid/package.py new file mode 100644 index 00000000000..662ea623a50 --- /dev/null +++ b/repos/spack_repo/builtin/packages/gau2grid/package.py @@ -0,0 +1,40 @@ +# 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, generator + +from spack.package import * + + +class Gau2grid(CMakePackage): + """Gau2Grid is a library for efficient evaluation of Gaussian + basis functions on grids.""" + + homepage = "https://gau2grid.readthedocs.io" + git = "https://github.com/psi4/gau2grid.git" + url = "https://github.com/psi4/gau2grid/archive/refs/tags/v2.0.8.tar.gz" + + maintainers("awvwgk") + + license("BSD-3-Clause") + + version("master", branch="master") + version("2.0.8", sha256="c5f445344a465c1d9afc6516544dc4a2fba588af7ba0f1ac1a6b538260f0cd96") + version("2.0.9", sha256="7879bdddf3a52cd2a051086215977822bbe8d1af927fcf5b4fb0256a38b8a76c") + + depends_on("cmake@3.12:", type="build") + depends_on("ninja@1.10:", type="build") + depends_on("python@2.12:", type="build") + depends_on("py-numpy", type="build") + + generator("ninja") + + def cmake_args(self): + args = [ + self.define("MAX_AM", 8), + self.define("ENABLE_XHOST", False), + self.define("INSTALL_PYMOD", False), + ] + return args diff --git a/repos/spack_repo/builtin/packages/gaudi/package.py b/repos/spack_repo/builtin/packages/gaudi/package.py index 655dbe1ed30..017dbc5f927 100644 --- a/repos/spack_repo/builtin/packages/gaudi/package.py +++ b/repos/spack_repo/builtin/packages/gaudi/package.py @@ -18,6 +18,9 @@ class Gaudi(CMakePackage, CudaPackage): tags = ["hep"] version("master", branch="master") + version("40.2", sha256="93bf0ae5e33d7d3a5aa36504840ed62aeab9f6f8ddddd4ea1b23bc5455b51e41") + version("40.1", sha256="f02010c865717d397b8fc8b8bf5d904e711ee2e416f3d12330cf04deaa7a4343") + version("40.0", sha256="0cfe696967067b23382968a5c5ab1b4b7f38a7dd3ee2e321d1bff0dd8f99d2f9") version("39.4", sha256="dd698e0788811fa8325ed5f37ecf3fd9bde55720489224a517b52360819564d7") version("39.3", sha256="009a306a7413f3207f0d5fa19034186c0bb3c8de0c807d38f515338a41a8a0bc") version("39.2", sha256="9697f5092df49187e3d30256c821a4400534e77ddaa2d976ba4bb22745c904d6") @@ -56,16 +59,35 @@ class Gaudi(CMakePackage, CudaPackage): maintainers("drbenmorgan", "vvolkl", "jmcarcell") + _cxxstd_values = ( + conditional("14", when="@:38"), + conditional("17", when="@:38"), + conditional("20", when="@38:"), + ) + _cxxstd_common = { + "values": _cxxstd_values, + "multi": False, + "description": "Use the specified C++ standard when building.", + } + variant("cxxstd", default="17", when="@:38", **_cxxstd_common) + variant("cxxstd", default="20", when="@39:", **_cxxstd_common) + variant("aida", default=False, description="Build AIDA interfaces support") - variant("cppunit", default=False, description="Build with CppUnit unit testing") + variant("cppunit", default=False, description="Build with CppUnit unit testing", when="@:40.0") variant("docs", default=False, description="Build documentation with Doxygen") variant("examples", default=False, description="Build examples") variant("gaudialg", default=False, description="Build GaudiAlg support", when="@37.0:38") - variant("gperftools", default=False, description="Build with Google PerfTools support") + variant( + "gperftools", default=False, description="Build with Google PerfTools support", when="@:39" + ) variant("heppdt", default=False, description="Build with HEP Particle Data Table support") - variant("jemalloc", default=False, description="Build with jemalloc allocator support") - variant("unwind", default=False, description="Build with unwind call-chains") - variant("vtune", default=False, description="Build with Intel VTune profiler support") + variant( + "jemalloc", default=False, description="Build with jemalloc allocator support", when="@:39" + ) + variant("unwind", default=False, description="Build with unwind call-chains", when="@:39") + variant( + "vtune", default=False, description="Build with Intel VTune profiler support", when="@:39" + ) variant("xercesc", default=False, description="Build with Xerces-C XML support") patch("fmt_fix.patch", when="@36.6:36.12 ^fmt@10:") @@ -93,7 +115,23 @@ class Gaudi(CMakePackage, CudaPackage): sha256="6b377fd10828bf26367c26792a5465351f3f0b5f7f6073dbcae6fa9195d4a414", when="@38.1:39", ) - conflicts("^root@6.36:", when="@:38.0") + # Legacy CompressionSetting removed in ROOT 6.36, but used through Gaudi 39.1. + # See https://gitlab.cern.ch/gaudi/Gaudi/-/merge_requests/1678 + conflicts("^root@6.36:", when="@:39.1") + + # IAuditor: define static strings in implementation + # https://gitlab.cern.ch/gaudi/Gaudi/-/merge_requests/1781 + # https://gitlab.cern.ch/gaudi/Gaudi/-/merge_requests/1785 + patch( + "https://gitlab.cern.ch/gaudi/Gaudi/-/commit/ae53669e3845fce50719643e66dedc2569cbd834.diff", + sha256="52499558f968ad41cde77c4e57d6ea7409f692c22af025433eaf567a70819b27", + when="@40.0", + ) + patch( + "https://gitlab.cern.ch/gaudi/Gaudi/-/commit/31bcb0a31e1daa5b2d8969b0df0c6fbe55af7fa1.diff", + sha256="f812fae60f17a5a2e75ccd68f0e8c28a1df9e272b569e086ad756ef4fc75661a", + when="@40.0", + ) # These dependencies are needed for a minimal Gaudi build depends_on("cxx", type="build") @@ -114,13 +152,20 @@ class Gaudi(CMakePackage, CudaPackage): ) depends_on(f"boost@1.70: +{boost_libs}", when="@35:") depends_on(f"boost@1.70: +{boost_libs}+fiber", when="@39:") + # Until gaudi@40.0, there is a build dependency on boost::system, removed in boost@1.89. + # Ref: https://gitlab.cern.ch/gaudi/Gaudi/-/merge_requests/1809 + conflicts("^boost@1.89:", when="@:40.0", msg="Boost@1.89: requires Gaudi@40.1:") depends_on("clhep") depends_on("cmake", type="build") - depends_on("cmake@3.19:", type="build", when="@39:") + depends_on("cmake@3.19:", type="build", when="@39:40.0") + depends_on("cmake@3.29:", type="build", when="@40.1:") depends_on("cppgsl") + depends_on("fmt") depends_on("fmt@:8", when="@:36.9") - depends_on("fmt@:10") + depends_on("fmt@:10", when="@:38") + depends_on("fmt@:11", when="@:39") + depends_on("fmt@:10", type="test") # https://gitlab.cern.ch/gaudi/Gaudi/-/issues/345 depends_on("intel-tbb@:2020.3", when="@:37.0") depends_on("tbb", when="@37.1:") depends_on("uuid") @@ -131,15 +176,19 @@ class Gaudi(CMakePackage, CudaPackage): depends_on("py-pyyaml", type=("build", "run", "test")) depends_on("range-v3") depends_on("root +python +root7 +ssl +tbb") - requires("^root +threads", when="^root@:6.19.01") + # force root to have the same cxxstd + for _cxxstd in _cxxstd_values: + for _v in _cxxstd: + depends_on(f"root cxxstd={_v.value}", when=f"cxxstd={_v.value}") depends_on("zlib-api") depends_on("py-pytest-cov", when="@39:") # Testing dependencies - # Note: gaudi only builds examples when testing enabled for pv in (["catch2", "@36.8:"], ["py-nose", "@35:37"], ["py-pytest", "@36.2:"]): depends_on(pv[0], when=pv[1], type="test") - depends_on(pv[0], when=pv[1] + " +examples") + with when("@:38.1"): + # Note: until 38.1 gaudi only builds examples when testing enabled + depends_on(pv[0], when=pv[1] + " +examples") # Adding these dependencies triggers the build of most optional components depends_on("cppunit", when="+cppunit") @@ -166,8 +215,10 @@ def patch(self): def cmake_args(self): args = [ - # Note: gaudi only builds examples when testing enabled - self.define("BUILD_TESTING", self.run_tests or self.spec.satisfies("+examples")), + # Note: until 38.1, gaudi only builds examples when testing enabled + self.define( + "BUILD_TESTING", self.run_tests or self.spec.satisfies("@:38.1 +examples") + ), self.define_from_variant("GAUDI_BUILD_EXAMPLES", "examples"), self.define_from_variant("GAUDI_USE_AIDA", "aida"), self.define_from_variant("GAUDI_USE_CPPUNIT", "cppunit"), @@ -181,14 +232,16 @@ def cmake_args(self): self.define_from_variant("GAUDI_USE_DOXYGEN", "docs"), # needed to build core services like rndmsvc self.define("GAUDI_USE_CLHEP", True), - self.define("GAUDI_USE_PYTHON_MAJOR", str(self.spec["python"].version.up_to(1))), # todo: self.define("GAUDI_USE_INTELAMPLIFIER", False), ] # Release notes for v39.0: https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v39r0 # Gaudi@39: needs C++ >= 20, and we need to force CMake to use C++ 20 with old gcc: - if self.spec.satisfies("@39: %gcc@:13"): - args.append(self.define("GAUDI_CXX_STANDARD", "20")) + args.append(self.define_from_variant("GAUDI_CXX_STANDARD", "cxxstd")) + if self.spec.satisfies("%apple-clang"): + # fixes a build error with apple-clang + args.append(self.define("CMAKE_CXX_FLAGS", "-fmodules")) + return args def setup_run_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/gaussian_view/package.py b/repos/spack_repo/builtin/packages/gaussian_view/package.py index f4cf4f58afd..6c17817ecad 100644 --- a/repos/spack_repo/builtin/packages/gaussian_view/package.py +++ b/repos/spack_repo/builtin/packages/gaussian_view/package.py @@ -61,7 +61,7 @@ def install(self, spec, prefix): # on what is installed on the host # the $ORIGIN prefix is required for the executable to find its # own bundled shared libraries - patchelf = which("patchelf") + patchelf = which("patchelf", required=True) rpath = "$ORIGIN:$ORIGIN/lib" + ":".join( self.spec[dep].libs.directories[0] for dep in ["libx11", "libxext", "libxrender", "libice", "libsm", "gl", "glu"] diff --git a/repos/spack_repo/builtin/packages/gauxc/package.py b/repos/spack_repo/builtin/packages/gauxc/package.py new file mode 100644 index 00000000000..4dde7c7591d --- /dev/null +++ b/repos/spack_repo/builtin/packages/gauxc/package.py @@ -0,0 +1,69 @@ +# 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, generator +from spack_repo.builtin.build_systems.cuda import CudaPackage + +from spack.package import * + + +class Gauxc(CMakePackage, CudaPackage): + """GauXC is a modern, modular C++ library for the evaluation of quantities related to + the exchange-correlation (XC) energy (e.g. potential, etc) in the Gaussian basis set + discretization of Kohn-Sham density function theory (KS-DFT) on heterogenous architectures.""" + + homepage = "https://github.com/wavefunction91/GauXC" + git = "https://github.com/wavefunction91/GauXC.git" + url = "https://github.com/wavefunction91/GauXC/archive/refs/tags/v1.1.tar.gz" + + maintainers("awvwgk") + + license("BSD-3-Clause") + + version("master", branch="master") + version( + "1.2.dev2", + sha256="6659d00522b443f2557a960a9ba0217449d2ee25df809634d6becca23eb0f1ff", + url="https://github.com/microsoft/skala/releases/download/v1.1.1/gauxc-skala-r2.tar.gz", + ) + version("1.1", sha256="17de077fb23e44d03b0ed14dcd8117c01e5b3431fbefa2352d751639ada7f91c") + + depends_on("cxx", type="build") + depends_on("cmake@3.20:", type="build") + depends_on("ninja@1.10:", type="build") + depends_on("exchcxx ~cuda", when="~cuda") + depends_on("exchcxx +cuda", when="+cuda") + depends_on("integratorxx") + depends_on("hdf5", when="+hdf5") + depends_on("mpi", when="+mpi") + depends_on("cuda", when="+cuda") + depends_on("highfive@:2.10.1", when="+hdf5") + depends_on("gau2grid") + depends_on("blas") + depends_on("nlohmann-json", when="+skala") + depends_on("py-torch@2:", when="+skala") + depends_on("py-torch@2: +cuda", when="+skala+cuda") + + generator("ninja") + + variant("openmp", default=True, description="Build with OpenMP support") + variant("mpi", default=False, description="Build with MPI support") + variant("cuda", default=False, description="Build with CUDA support") + variant("hdf5", default=False, description="Build with HDF5 support") + variant("c", default=False, description="Build with C support", when="@1.2.dev2") + variant("fortran", default=False, description="Build with Fortran support", when="@1.2.dev2") + variant("skala", default=False, description="Build with Skala support", when="@1.2.dev2") + + def cmake_args(self): + args = [ + self.define("GAUXC_ENABLE_OPENMP", self.spec.satisfies("+openmp")), + self.define("GAUXC_ENABLE_MPI", self.spec.satisfies("+mpi")), + self.define("GAUXC_ENABLE_CUDA", self.spec.satisfies("+cuda")), + self.define("GAUXC_ENABLE_HDF5", self.spec.satisfies("+hdf5")), + self.define("GAUXC_ENABLE_C", self.spec.satisfies("+c")), + self.define("GAUXC_ENABLE_FORTRAN", self.spec.satisfies("+fortran")), + self.define("GAUXC_ENABLE_ONEDFT", self.spec.satisfies("+skala")), + ] + return args diff --git a/repos/spack_repo/builtin/packages/gawk/package.py b/repos/spack_repo/builtin/packages/gawk/package.py index 66476925296..8d277294f57 100644 --- a/repos/spack_repo/builtin/packages/gawk/package.py +++ b/repos/spack_repo/builtin/packages/gawk/package.py @@ -1,6 +1,7 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) + import re from spack_repo.builtin.build_systems.autotools import AutotoolsPackage @@ -32,6 +33,8 @@ class Gawk(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") + version("5.4.0", sha256="3dd430f0cd3b4428c6c3f6afc021b9cd3c1f8c93f7a688dc268ca428a90b4ac1") + version("5.3.2", sha256="f8c3486509de705192138b00ef2c00bbbdd0e84c30d5c07d23fc73a9dc4cc9cc") version("5.3.1", sha256="694db764812a6236423d4ff40ceb7b6c4c441301b72ad502bb5c27e00cd56f78") version("5.3.0", sha256="ca9c16d3d11d0ff8c69d79dc0b47267e1329a69b39b799895604ed447d3ca90b") version("5.2.2", sha256="3c1fce1446b4cbee1cd273bd7ec64bc87d89f61537471cd3e05e33a965a250e9") @@ -43,10 +46,9 @@ class Gawk(AutotoolsPackage, GNUMirrorPackage): variant("nls", default=False, description="Enable Native Language Support") - depends_on("c", type="build") # generated - + depends_on("c", type="build") depends_on("gettext", when="+nls") - depends_on("libsigsegv") + depends_on("libsigsegv", when="@:5.2") depends_on("readline") depends_on("mpfr") depends_on("gmp") diff --git a/repos/spack_repo/builtin/packages/gcc/fixincludes-gcc-12.1.patch b/repos/spack_repo/builtin/packages/gcc/fixincludes-gcc-12.1.patch new file mode 100644 index 00000000000..1c938a116a0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/gcc/fixincludes-gcc-12.1.patch @@ -0,0 +1,42 @@ +diff --git i/fixincludes/fixincl.x w/fixincludes/fixincl.x +index bad490453b7..ead33dc5693 100644 +--- i/fixincludes/fixincl.x ++++ w/fixincludes/fixincl.x +@@ -7224,8 +7224,15 @@ tSCC zPthread_Incomplete_Struct_ArgumentList[] = + tSCC zPthread_Incomplete_Struct_ArgumentSelect0[] = + "struct __jmp_buf_tag"; + +-#define PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT 1 ++/* ++ * content bypass pattern - skip fix if pattern found ++ */ ++tSCC zPthread_Incomplete_Struct_ArgumentBypass0[] = ++ "bits/types/struct___jmp_buf_tag.h"; ++ ++#define PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT 2 + static tTestDesc aPthread_Incomplete_Struct_ArgumentTests[] = { ++ { TT_NEGREP, zPthread_Incomplete_Struct_ArgumentBypass0, (regex_t*)NULL }, + { TT_EGREP, zPthread_Incomplete_Struct_ArgumentSelect0, (regex_t*)NULL }, }; + + /* +@@ -10872,7 +10879,7 @@ static const char* apzX11_SprintfPatch[] = { + * + * List of all fixes + */ +-#define REGEX_COUNT 305 ++#define REGEX_COUNT 306 + #define MACH_LIST_SIZE_LIMIT 187 + #define FIX_COUNT 267 + +diff --git i/fixincludes/inclhack.def w/fixincludes/inclhack.def +index 7605ac89aa2..43fa4a4df1c 100644 +--- i/fixincludes/inclhack.def ++++ w/fixincludes/inclhack.def +@@ -3626,6 +3626,7 @@ fix = { + hackname = pthread_incomplete_struct_argument; + files = pthread.h; + select = "struct __jmp_buf_tag"; ++ bypass = "bits/types/struct___jmp_buf_tag.h"; + c_fix = format; + c_fix_arg = "%1 *%2%3"; + c_fix_arg = "^(extern int __sigsetjmp \\(struct __jmp_buf_tag) " diff --git a/repos/spack_repo/builtin/packages/gcc/fixincludes-gcc-12.4.patch b/repos/spack_repo/builtin/packages/gcc/fixincludes-gcc-12.4.patch new file mode 100644 index 00000000000..d3cae49fed8 --- /dev/null +++ b/repos/spack_repo/builtin/packages/gcc/fixincludes-gcc-12.4.patch @@ -0,0 +1,42 @@ +diff --git i/fixincludes/fixincl.x w/fixincludes/fixincl.x +index 0e65c60955b..fbc446521a0 100644 +--- i/fixincludes/fixincl.x ++++ w/fixincludes/fixincl.x +@@ -7311,8 +7311,15 @@ tSCC zPthread_Incomplete_Struct_ArgumentList[] = + tSCC zPthread_Incomplete_Struct_ArgumentSelect0[] = + "struct __jmp_buf_tag"; + +-#define PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT 1 ++/* ++ * content bypass pattern - skip fix if pattern found ++ */ ++tSCC zPthread_Incomplete_Struct_ArgumentBypass0[] = ++ "bits/types/struct___jmp_buf_tag.h"; ++ ++#define PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT 2 + static tTestDesc aPthread_Incomplete_Struct_ArgumentTests[] = { ++ { TT_NEGREP, zPthread_Incomplete_Struct_ArgumentBypass0, (regex_t*)NULL }, + { TT_EGREP, zPthread_Incomplete_Struct_ArgumentSelect0, (regex_t*)NULL }, }; + + /* +@@ -10959,7 +10966,7 @@ static const char* apzX11_SprintfPatch[] = { + * + * List of all fixes + */ +-#define REGEX_COUNT 307 ++#define REGEX_COUNT 308 + #define MACH_LIST_SIZE_LIMIT 187 + #define FIX_COUNT 269 + +diff --git i/fixincludes/inclhack.def w/fixincludes/inclhack.def +index f217ae978d2..a5f2af0ba2a 100644 +--- i/fixincludes/inclhack.def ++++ w/fixincludes/inclhack.def +@@ -3675,6 +3675,7 @@ fix = { + hackname = pthread_incomplete_struct_argument; + files = pthread.h; + select = "struct __jmp_buf_tag"; ++ bypass = "bits/types/struct___jmp_buf_tag.h"; + c_fix = format; + c_fix_arg = "%1 *%2%3"; + c_fix_arg = "^(extern int __sigsetjmp \\(struct __jmp_buf_tag) " diff --git a/repos/spack_repo/builtin/packages/gcc/fixincludes-gcc-13-14.patch b/repos/spack_repo/builtin/packages/gcc/fixincludes-gcc-13-14.patch new file mode 100644 index 00000000000..6804948ee44 --- /dev/null +++ b/repos/spack_repo/builtin/packages/gcc/fixincludes-gcc-13-14.patch @@ -0,0 +1,42 @@ +diff --git i/fixincludes/fixincl.x w/fixincludes/fixincl.x +index 45d65f4872a..3e1b959829a 100644 +--- i/fixincludes/fixincl.x ++++ w/fixincludes/fixincl.x +@@ -7514,8 +7514,15 @@ tSCC zPthread_Incomplete_Struct_ArgumentList[] = + tSCC zPthread_Incomplete_Struct_ArgumentSelect0[] = + "struct __jmp_buf_tag"; + +-#define PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT 1 ++/* ++ * content bypass pattern - skip fix if pattern found ++ */ ++tSCC zPthread_Incomplete_Struct_ArgumentBypass0[] = ++ "bits/types/struct___jmp_buf_tag.h"; ++ ++#define PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT 2 + static tTestDesc aPthread_Incomplete_Struct_ArgumentTests[] = { ++ { TT_NEGREP, zPthread_Incomplete_Struct_ArgumentBypass0, (regex_t*)NULL }, + { TT_EGREP, zPthread_Incomplete_Struct_ArgumentSelect0, (regex_t*)NULL }, }; + + /* +@@ -11169,7 +11176,7 @@ static const char* apzX11_SprintfPatch[] = { + * + * List of all fixes + */ +-#define REGEX_COUNT 313 ++#define REGEX_COUNT 314 + #define MACH_LIST_SIZE_LIMIT 187 + #define FIX_COUNT 274 + +diff --git i/fixincludes/inclhack.def w/fixincludes/inclhack.def +index 67a1082f926..97eeb4d16a2 100644 +--- i/fixincludes/inclhack.def ++++ w/fixincludes/inclhack.def +@@ -3808,6 +3808,7 @@ fix = { + hackname = pthread_incomplete_struct_argument; + files = pthread.h; + select = "struct __jmp_buf_tag"; ++ bypass = "bits/types/struct___jmp_buf_tag.h"; + c_fix = format; + c_fix_arg = "%1 *%2%3"; + c_fix_arg = "^(extern int __sigsetjmp \\(struct __jmp_buf_tag) " diff --git a/repos/spack_repo/builtin/packages/gcc/package.py b/repos/spack_repo/builtin/packages/gcc/package.py index ab212414263..dff82aab3f5 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" @@ -36,9 +37,11 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): version("master", branch="master") # Latest stable - version("15.1.0", sha256="e2b09ec21660f01fecffb715e0120265216943f038d0e48a9868713e54f06cea") + version("16.1.0", sha256="50efb4d94c3397aff3b0d61a5abd748b4dd31d9d3f2ab7be05b171d36a510f79") # Previous stable series releases + version("15.2.0", sha256="438fd996826b0c82485a29da03a72d71d6e3541a83ec702df4271f6fe025d24e") + version("15.1.0", sha256="e2b09ec21660f01fecffb715e0120265216943f038d0e48a9868713e54f06cea") # Final releases of previous versions version("14.3.0", sha256="e0dc77297625631ac8e50fa92fffefe899a4eb702592da5c32ef04e2293aca3a") @@ -179,7 +182,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): multi=True, description="Compilers and runtime libraries to build", ) - variant("binutils", default=False, description="Build via binutils") + variant("binutils", default=True, description="Use binutils linker and assembler") variant("mold", default=False, description="Use mold as the linker by default", when="@12:") variant( "piclibs", default=False, description="Build PIC versions of libgfortran.a and libstdc++.a" @@ -201,31 +204,36 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): variant( "profiled", default=False, description="Use Profile Guided Optimization", when="+bootstrap" ) + 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 @@ -239,7 +247,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( @@ -256,11 +263,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"): @@ -318,11 +326,6 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): conflicts("languages=jit", when="@:4") with when("languages=d"): - # The very first version of GDC that became part of GCC already supported version 2.076 of - # the language and runtime. - # See https://wiki.dlang.org/GDC#Status - provides("D@2") - # Support for the D programming language has been added to GCC 9. # See https://gcc.gnu.org/gcc-9/changes.html#d conflicts("@:8", msg="support for D has been added in GCC 9.1") @@ -396,6 +399,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") @@ -411,24 +417,32 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): msg="Only GCC 11.3+ support aarch64-darwin", ) - # Newer binutils than RHEL's is required to run `as` on some instructions - # generated by new GCC (see https://github.com/spack/spack/issues/12235) - conflicts("~binutils", when="@7: os=rhel6", msg="New GCC cannot use system assembler on RHEL6") - # Ditto for RHEL7/8: OpenBLAS uses flags which the RHEL system-binutils don't have: - # https://github.com/xianyi/OpenBLAS/issues/3805#issuecomment-1319878852 - conflicts( - "~binutils", when="@10: os=rhel7", msg="gcc: Add +binutils - preinstalled as might be old" - ) - conflicts( - "~binutils", when="@10: os=rhel8", msg="gcc: Add +binutils - preinstalled as might be old" - ) - # GCC 11 requires GCC 4.8 or later (https://gcc.gnu.org/gcc-11/changes.html) conflicts("%gcc@:4.7", when="@11:") # https://github.com/iains/gcc-12-branch/issues/6 conflicts("@:12", when="%apple-clang@14:14.0") + # Applies + # https://github.com/gcc-mirror/gcc/commit/ea2798892de373b14f9fc7ae8a0d820eaddca98c, + # which fixes an incorrectly applied fixincludes rule for pthread.h, making + # the installed GCC not portable across different glibc versions. Original + # GCC bug report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118009. For + # GCC 15 we can directly use the upstream patch. For GCC 12-14 the patch + # has been backported. The patch is not applied to GCC 11 since the "fixinclude" + # is in fact needed for that version (see GCC commit description). Older versions + # have not been checked or tested. + # This patchset conflicts with Iain's Darwin patches and is not needed on Darwin + with when("platform=linux"): + patch( + "https://github.com/gcc-mirror/gcc/commit/ea2798892de373b14f9fc7ae8a0d820eaddca98c.patch?full_index=1", + sha256="0999dbf856725566373f25a6f192a3520ea036db8e1f31928aae9750e6e38be7", + when="@15:15.2", + ) + patch("fixincludes-gcc-13-14.patch", when="@13:14") + patch("fixincludes-gcc-12.4.patch", when="@12.4:12") + patch("fixincludes-gcc-12.1.patch", when="@12:12.3") + if sys.platform == "darwin": # Fix parallel build on APFS filesystem # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797 @@ -463,10 +477,11 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): ) # aarch64-darwin support from Iain Sandoe's branch + # the 14.2.0 branch has patches applicable to the x86_64 builds too, e.g., https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116809 patch( - "https://github.com/iains/gcc-14-branch/compare/04696df09633baf97cdbbdd6e9929b9d472161d3..a495b2dded281beeafec91074e4e82a5a3df8104.patch?full_index=1", - sha256="838cf070bec5468340018bf003f714f6340c562b878f3244303d2b7ba9949ccd", - when="@14.2.0 target=aarch64:", + "https://github.com/iains/gcc-14-branch/compare/04696df09633baf97cdbbdd6e9929b9d472161d3..5e090fc0112f86cbcaebb6065ad97ea599868505.patch?full_index=1", + sha256="d74542461b22ae2d23533323e01861f4c66d252345c51682740f521a74412500", + when="@14.2.0", ) patch( "https://github.com/iains/gcc-14-branch/compare/cd0059a1976303638cea95f216de129334fc04d1..gcc-14.1-darwin-r1.patch?full_index=1", @@ -529,6 +544,9 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage): conflicts("+bootstrap", when="@11.3.0,13.1: target=aarch64:") + # 14.2.0 cannot bootstrap on x86_64 + conflicts("+bootstrap", when="@14.2.0") + # Use -headerpad_max_install_names in the build, # otherwise updated load commands won't fit in the Mach-O header. # This is needed because `gcc` avoids the superenv shim. @@ -789,15 +807,12 @@ def patch(self): ) self.build_optimization_config() - def get_common_target_flags(self, spec): - """Get the right (but pessimistic) architecture specific flags supported by - both host gcc and to-be-built gcc. For example: gcc@7 %gcc@12 target=znver3 - should pick -march=znver1, since that's what gcc@7 supports.""" - microarchitectures = [spec.target] + spec.target.ancestors - for uarch in microarchitectures: - flags = microarchitecture_flags_from_target( - uarch, compiler=Spec(f"gcc@={spec.version}") - ) + def get_common_target_flags(self) -> str: + """Get the microarchitecture flags supported by both the current spec and its gcc dep. + For example: gcc@7 target=znver3 %gcc@12 should pick -march=znver1, since that's what + gcc@7 supports.""" + for uarch in (self.spec.target, *self.spec.target.ancestors): + flags = microarchitecture_flags_from_target(uarch, compiler=self.spec) if flags: return flags # no arch specific flags in common, unlikely to happen. @@ -824,7 +839,7 @@ def build_optimization_config(self): # Note we're not adding this for aarch64 because of # https://github.com/spack/spack/issues/31184 if "+bootstrap %gcc" in self.spec and self.spec.target.family != "aarch64": - flags += " " + self.get_common_target_flags(self.spec) + flags += " " + self.get_common_target_flags() if self.spec.satisfies("+bootstrap"): variables = ["BOOT_CFLAGS", "CFLAGS_FOR_TARGET", "CXXFLAGS_FOR_TARGET"] @@ -881,6 +896,12 @@ def configure_args(self): else: options.extend(["--disable-bootstrap"]) + # enable_libsanitizer + if spec.satisfies("+libsanitizer"): + options.extend(["--enable-libsanitizer"]) + else: + options.extend(["--disable-libsanitizer"]) + # Configure include and lib directories explicitly for these # dependencies since the short GCC option assumes that libraries # are installed in "/lib" which might not be true on all OS @@ -989,40 +1010,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", ] @@ -1119,6 +1123,14 @@ def write_specs_file(self): set_install_permissions(libgomp_spec_file) tty.info(f"Wrote new libgomp spec file to {libgomp_spec_file}") + # The configure --sysroot doesn't propagate down into the sub-builds, e.g., libiberty. + # Starting with SDK 26 and clang 17, limits.h amongst other sys includes aren't included + # via other means, resulting in a failed build. Keep this for other builds for safety. + def setup_build_environment(self, env: EnvironmentModifications) -> None: + if self.spec.satisfies("platform=darwin"): + macos_sdk_path = Executable("xcrun")("--show-sdk-path", output=str).strip() + env.set("CFLAGS", f"--sysroot {macos_sdk_path}") + def setup_run_environment(self, env: EnvironmentModifications) -> None: if self.cc and self.spec.satisfies("languages=c"): env.set("CC", self.cc) @@ -1140,10 +1152,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) ) @@ -1159,7 +1171,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( @@ -1190,7 +1202,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: @@ -1202,8 +1214,9 @@ def detect_gdc(self): return candidate_gdc else: raise InstallError( - "Cannot resolve ambiguity when detecting GDC that belongs to " - "%{0}".format(self.compiler.spec), + "Cannot resolve ambiguity when detecting GDC that belongs to %{0}".format( + self["c"].spec + ), long_msg="The candidates are:{0}{0}{1}{0}".format( error_nl, error_nl.join( diff --git a/repos/spack_repo/builtin/packages/gcc_runtime/package.py b/repos/spack_repo/builtin/packages/gcc_runtime/package.py index f0797571a64..b64510895bf 100644 --- a/repos/spack_repo/builtin/packages/gcc_runtime/package.py +++ b/repos/spack_repo/builtin/packages/gcc_runtime/package.py @@ -68,7 +68,7 @@ def install(self, spec, prefix): return for path, name in libraries: - install(path, os.path.join(prefix.lib, name)) + install(path, os.path.join(prefix.lib, os.path.basename(name))) if spec.platform in ("linux", "freebsd"): _drop_libgfortran_zlib(prefix.lib) diff --git a/repos/spack_repo/builtin/packages/gchp/package.py b/repos/spack_repo/builtin/packages/gchp/package.py index d0147c62e38..ae24e45155f 100644 --- a/repos/spack_repo/builtin/packages/gchp/package.py +++ b/repos/spack_repo/builtin/packages/gchp/package.py @@ -19,6 +19,31 @@ class Gchp(CMakePackage): license("MIT") + version("14.7.1", commit="503642dfe2b02c219e69fed52e027faea1a0063d", submodules=True) + version("14.7.0", commit="3216f281670dc124f2649dedfa60293eba38a8de", submodules=True) + version("14.6.3", commit="1f5d79a54a55a716c2707c607794441ff5cc5c30", submodules=True) + version("14.6.2", commit="54bf9e48fcb0e2b7968382052f8c86ee115d6c0c", submodules=True) + version("14.6.1", commit="c4591eb9953c732d81026976e494352da90b17a9", submodules=True) + version("14.6.0", commit="fbb215f11977f6a0a4e7cc1c27843e3409f1360c", submodules=True) + version("14.5.3", commit="915abefbe20a628a7c00becda0306a7c29eff6cb", submodules=True) + version("14.5.2", commit="59fcade5dbeb924c86d00d5cef539e8181c89e23", submodules=True) + version("14.5.1", commit="5b7a4a7d39d9bd2da894ca9d7af4e0040475f1d4", submodules=True) + version("14.5.0", commit="a9e7c3f073921a0c31327332fd29facc8b31db99", submodules=True) + version("14.4.3", commit="e499969f3831261e1fd15774b9fc68d01d012ba2", submodules=True) + version("14.4.2", commit="856010810a7b32d3df695a4802dd65868f9a5a8b", submodules=True) + version("14.4.1", commit="966d10d6c95236e53cc93fa334715d235d325b76", submodules=True) + version("14.4.0", commit="cfbebef856dfb5aaa2504116d50bef65484a98e8", submodules=True) + version("14.3.1", commit="495766f538ab82d775cc7b12fcf320712b04550b", submodules=True) + version("14.3.0", commit="14cb7564fde9c9457b638ceb4d091ffec578f0b8", submodules=True) + version("14.2.3", commit="3a1a52faac1179a7fa8ac405481221667be4ef91", submodules=True) + version("14.2.2", commit="074494ee693714a16a7f93ffb8d354a07150e34d", submodules=True) + version("14.2.1", commit="6413378b92167be9dd6d564a17f058b77f1a0091", submodules=True) + version("14.2.0", commit="2c5417bb0b3b351e2298d07e885685c7e0298c47", submodules=True) + version("14.1.1", commit="0345abf5cb237a72e0fc33873263f6618ff3e16b", submodules=True) + version("14.1.0", commit="c6d533b7481be2dca303e53380238074f1c0cf01", submodules=True) + version("14.0.2", commit="7973fb683095ccee24c9ca006ef95421b85d1781", submodules=True) + version("14.0.1", commit="a1be697c01c507abcd4645598fea795293414b87", submodules=True) + version("14.0.0", commit="e7a5aaf226ed41c43ef38b42ff8aace4a4307104", submodules=True) version("13.4.0", commit="d8c6d4d8db1c5b0ba54d4893185d999a619afc58", submodules=True) version("13.3.4", commit="efb2346381648ffff04ce441d5d61d7fec0c53fe", submodules=True) version("13.2.1", commit="9dc2340cac684971fa961559a4dc3d8818326ab8", submodules=True) @@ -36,10 +61,15 @@ class Gchp(CMakePackage): depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated - depends_on("esmf@8.0.1", when="@13.0.0:") + depends_on("esmf@8.0.1", when="@:13") + depends_on("esmf@8.0.0:", when="@14.0") + depends_on("esmf@8.1.0:", when="@14.1") + depends_on("esmf@8.4.2:", when="@14.2:14.6") + depends_on("esmf@8.6.1:", when="@14.7:") + depends_on("udunits@2", when="@14.7:") depends_on("mpi@3") depends_on("netcdf-fortran") - depends_on("cmake@3.13:") + depends_on("cmake@3.24:") depends_on("libfabric", when="+ofi") depends_on("m4") @@ -73,3 +103,6 @@ def install(self, spec, prefix): # messages that point to specific modules / lines of the source code. # Including source code thus facilitates runtime debugging. shutil.move(self.stage.source_path, join_path(prefix, "source_code")) + + # Ensure that the bin directory gets installed + install_tree(join_path(self.build_directory, "bin"), prefix.bin) diff --git a/repos/spack_repo/builtin/packages/gconf/package.py b/repos/spack_repo/builtin/packages/gconf/package.py deleted file mode 100644 index 34ad950f46f..00000000000 --- a/repos/spack_repo/builtin/packages/gconf/package.py +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage - -from spack.package import * - - -class Gconf(AutotoolsPackage): - """GConf is a system for storing application preferences. - - Note that this software is now deprecated in favor of moving to GSettings - and dconf with the GNOME 3 transition. - """ - - homepage = "https://en.wikipedia.org/wiki/GConf" - url = "http://ftp.gnome.org/pub/gnome/sources/GConf/3.2/GConf-3.2.6.tar.xz" - - version( - "3.2.6", - sha256="1912b91803ab09a5eed34d364bf09fe3a2a9c96751fde03a4e0cfa51a04d784c", - deprecated=True, - ) - - depends_on("c", type="build") # generated - - depends_on("pkgconfig", type="build") - depends_on("gettext", type="build") - depends_on("intltool", type="build") - depends_on("glib@2.14.0:") - depends_on("libxml2") - depends_on("dbus") - depends_on("dbus-glib") - depends_on("orbit2") - depends_on("perl-xml-parser", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/gdal/package.py b/repos/spack_repo/builtin/packages/gdal/package.py index 8a05392e09b..48453c45a6e 100644 --- a/repos/spack_repo/builtin/packages/gdal/package.py +++ b/repos/spack_repo/builtin/packages/gdal/package.py @@ -31,7 +31,19 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): license("MIT") maintainers("adamjstewart") + version("3.13.0", sha256="1c537dd2f4d66f05534ae419bc2af495c2204ce13bb266c8cbd867dd6705f0c7") + version("3.12.4", sha256="813094498c17522ac42821a5ea1ea783d8326c0adf286cce86a949038bd09198") + version("3.12.3", sha256="398a5a32ee6e75040598a7f8e895126a8225118317f272d715867c844f932848") + version("3.12.2", sha256="21c5e0f91974383b4c5692b7103650f176f2f54f1b0d449787f444b89881e9b4") + version("3.12.1", sha256="2a4fd3170ff81def93db60f7f61f2842a2ae7ad0335e4ed4ba305252f05835de") + version("3.12.0", sha256="428c19fff818bbb4136766cfee86fae2eebd3620806aa40af21844f4f0b2dbcf") + version("3.11.5", sha256="79f66756f1c843b5ee52c8482d4f6bd2a8b7706d6161cc11f0b27c83d638796a") + version("3.11.4", sha256="6401eba2bb63f5ef7a08d2157f240194f06d508d096898a705637aeea9d3bbe8") + version("3.11.3", sha256="ba0807729fa681eed55bb6d5588bb9e4bde2b691c46e8d6d375ff5eaf789b16a") + version("3.11.2", sha256="bda41b7cf12f05995a00106ae0db1b784d9c307953d81c76d351c7dbeb121aeb") + version("3.11.1", sha256="21341b39a960295bd3194bcc5f119f773229b4701cd752499fbd850f3cc160fd") version("3.11.0", sha256="ba1a17a74428bfd5c789ce293f59b6a3d8bfabab747431c33331ac0ac579ea71") + version("3.10.3", sha256="335a8d2c7567d783563d3fed37e8b58d72d9c1723f6fd1d8c299fe4c0d936781") version("3.10.2", sha256="67b4e08acd1cc4b6bd67b97d580be5a8118b586ad6a426b09d5853898deeada5") version("3.10.1", sha256="9211eac72b53f5f85d23cf6d83ee20245c6d818733405024e71f2af41e5c5f91") version("3.10.0", sha256="af821a3bcf68cf085724c21c9b53605fd451d83af3c8854d8bf194638eb734a8") @@ -61,11 +73,13 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): version("3.4.3", sha256="02a27b35899e1c4c3bcb6007da900128ddd7e8ab7cd6ccfecf338a301eadad5a") version("3.4.2", sha256="16baf03dfccf9e3f72bb2e15cd2d5b3f4be0437cdff8a785bceab0c7be557335") version("3.4.1", sha256="332f053516ca45101ef0f7fa96309b64242688a8024780a5d93be0230e42173d") - version("3.4.0", sha256="ac7bd2bb9436f3fc38bc7309704672980f82d64b4d57627d27849259b8f71d5c") - version("3.3.3", sha256="1e8fc8b19c77238c7f4c27857d04857b65d8b7e8050d3aac256d70fa48a21e76") - version("3.3.2", sha256="630e34141cf398c3078d7d8f08bb44e804c65bbf09807b3610dcbfbc37115cc3") - version("3.3.1", sha256="48ab00b77d49f08cf66c60ccce55abb6455c3079f545e60c90ee7ce857bccb70") - version("3.3.0", sha256="190c8f4b56afc767f43836b2a5cd53cc52ee7fdc25eb78c6079c5a244e28efa7") + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2021-45943/ + version("3.4.0", sha256="ac7bd2bb9436f3fc38bc7309704672980f82d64b4d57627d27849259b8f71d5c") + version("3.3.3", sha256="1e8fc8b19c77238c7f4c27857d04857b65d8b7e8050d3aac256d70fa48a21e76") + version("3.3.2", sha256="630e34141cf398c3078d7d8f08bb44e804c65bbf09807b3610dcbfbc37115cc3") + version("3.3.1", sha256="48ab00b77d49f08cf66c60ccce55abb6455c3079f545e60c90ee7ce857bccb70") + version("3.3.0", sha256="190c8f4b56afc767f43836b2a5cd53cc52ee7fdc25eb78c6079c5a244e28efa7") version("3.2.3", sha256="d9ec8458fe97fd02bf36379e7f63eaafce1005eeb60e329ed25bb2d2a17a796f") version("3.2.2", sha256="a7e1e414e5c405af48982bf4724a3da64a05770254f2ce8affb5f58a7604ca57") version("3.2.1", sha256="6c588b58fcb63ff3f288eb9f02d76791c0955ba9210d98c3abd879c770ae28ea") @@ -78,32 +92,10 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): version("3.0.4", sha256="5569a4daa1abcbba47a9d535172fc335194d9214fdb96cd0f139bb57329ae277") version("3.0.3", sha256="e20add5802265159366f197a8bb354899e1693eab8dbba2208de14a457566109") version("3.0.2", sha256="c3765371ce391715c8f28bd6defbc70b57aa43341f6e94605f04fe3c92468983") - version("3.0.1", sha256="45b4ae25dbd87282d589eca76481c426f72132d7a599556470d5c38263b09266") - version("3.0.0", sha256="ad316fa052d94d9606e90b20a514b92b2dd64e3142dfdbd8f10981a5fcd5c43e") with default_args(deprecated=True): - version("2.4.4", sha256="a383bd3cf555d6e1169666b01b5b3025b2722ed39e834f1b65090f604405dcd8") - version("2.4.3", sha256="d52dc3e0cff3af3e898d887c4151442989f416e839948e73f0994f0224bbff60") - version("2.4.2", sha256="dcc132e469c5eb76fa4aaff238d32e45a5d947dc5b6c801a123b70045b618e0c") - version("2.4.1", sha256="fd51b4900b2fc49b98d8714f55fc8a78ebfd07218357f93fb796791115a5a1ad") - version("2.4.0", sha256="c3791dcc6d37e59f6efa86e2df2a55a4485237b0a48e330ae08949f0cdf00f27") - version("2.3.3", sha256="c3635e41766a648f945d235b922e3c5306e26a2ee5bbd730d2181e242f5f46fe") - version("2.3.2", sha256="3f6d78fe8807d1d6afb7bed27394f19467840a82bc36d65e66316fa0aa9d32a4") - version("2.3.1", sha256="9c4625c45a3ee7e49a604ef221778983dd9fd8104922a87f20b99d9bedb7725a") - version("2.3.0", sha256="6f75e49aa30de140525ccb58688667efe3a2d770576feb7fbc91023b7f552aa2") - version("2.2.4", sha256="441eb1d1acb35238ca43a1a0a649493fc91fdcbab231d0747e9d462eea192278") - version("2.2.3", sha256="a328d63d476b3653f5a25b5f7971e87a15cdf8860ab0729d4b1157ba988b8d0b") - version("2.2.2", sha256="eb25d6ee85f4f5ac1d5581958f8c6eed9b1d50746f82866fe92e507541def35b") - version("2.2.1", sha256="927098d54083ac919a497f787b835b099e9a194f2e5444dbff901f7426b86066") - version("2.2.0", sha256="0d4c326862e0f118e17418c042c2bcd037b25abd3fb198e1fc5d40b11a9fc8ea") - version("2.1.4", sha256="e06a7ae4c4ed2fd678cd045ff50a10ff5002f3b81cdfcd8ab03c39ce962d9b63") - version("2.1.3", sha256="b489793627e6cb8d2ff8d7737b61daf58382fe189fae4c581ddfd48c04b49005") - version("2.1.2", sha256="b597f36bd29a2b4368998ddd32b28c8cdf3c8192237a81b99af83cc17d7fa374") - version("2.1.1", sha256="87ce516ce757ad1edf1e21f007fbe232ed2e932af422e9893f40199711c41f92") - version("2.1.0", sha256="568b43441955b306364fcf97fb47d4c1512ac6f2f5f76b2ec39a890d2418ee03") - version("2.0.3", sha256="3c6c5ade299c7a52fc9c5d2111110c97032e1f0c2593ce6091c364b1a43b442a") - version("2.0.2", sha256="90f838853cc1c07e55893483faa7e923e4b4b1659c6bc9df3538366030a7e622") - version("2.0.1", sha256="2564c91ed8ed36274ee31002a25798f5babc4221e879cb5013867733d80f9920") - version("2.0.0", sha256="91704fafeea2349c5e268dc1e2d03921b3aae64b05ee01d59fdfc1a6b0ffc061") + # https://www.cvedetails.com/cve/CVE-2019-17545/ + version("3.0.1", sha256="45b4ae25dbd87282d589eca76481c426f72132d7a599556470d5c38263b09266") + version("3.0.0", sha256="ad316fa052d94d9606e90b20a514b92b2dd64e3142dfdbd8f10981a5fcd5c43e") # Optional dependencies # https://gdal.org/en/stable/development/building_from_source.html @@ -113,8 +105,10 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): default=False, description="Speed up computations related to the Thin Plate Spline transformer", ) + # cmake configure fails if arrow~filesystem is found when variant ~arrow + # https://github.com/OSGeo/gdal/issues/12327 variant( - "arrow", default=False, when="build_system=cmake", description="Required for Arrow driver" + "arrow", default=True, when="build_system=cmake", description="Required for Arrow driver" ) variant("avif", default=False, when="@3.10:", description="Required for AVIF driver") variant( @@ -122,11 +116,10 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): ) variant("blosc", default=False, when="@3.4:", description="Required for Zarr driver") variant("brunsli", default=False, when="@3.4:", description="Required for MRF driver") - variant("bsb", default=False, when="@:2", description="Required for BSB driver") variant("cfitsio", default=False, description="Required for FITS driver") variant("crnlib", default=False, description="Required for DDS driver") variant("curl", default=True, description="Required for network access") - variant("cryptopp", default=False, when="@2.1:", description="Required for EEDAI driver") + variant("cryptopp", default=False, description="Required for EEDAI driver") variant("deflate", default=False, when="@3.2:", description="Required for Deflate compression") variant("dods", default=False, when="@:3.4", description="Required for DODS driver") variant("ecw", default=False, description="Required for ECW driver") @@ -145,14 +138,12 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): variant("geos", default=True, description="Required for geometry processing operations in OGR") variant("gif", default=False, description="Required for GIF driver") variant("grass", default=False, when="@:3.4", description="Required for GRASS driver") - variant("grib", default=False, when="@:2", description="Required for GRIB driver") + variant("grok", default=False, when="@3.13:", description="Required for JP2Grok driver") variant("gta", default=False, description="Required for GTA driver") variant("heif", default=False, when="@3.2:", description="Required for HEIF driver") variant("hdf4", default=False, description="Required for HDF4 driver") variant("hdf5", default=False, description="Required for HDF5, BAG, and KEA drivers") - variant( - "hdfs", default=False, when="@2.4:", description="Required for Hadoop filesystem support" - ) + variant("hdfs", default=False, description="Required for Hadoop filesystem support") variant("iconv", default=False, description="Required for text encoding conversion") variant("idb", default=False, description="Required for IDB driver") variant("ingres", default=False, when="@:3.4", description="Required for Ingres driver") @@ -161,7 +152,7 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): variant("jxl", default=False, when="@3.4:", description="Required for JPEGXL driver") variant("kdu", default=False, description="Required for JP2KAK and JPIPKAK drivers") variant("kea", default=False, description="Required for KEA driver") - variant("lerc", default=True, when="@2.4:", description="Required for LERC compression") + variant("lerc", default=True, description="Required for LERC compression") variant("libaec", default=False, when="@3.8:", description="Optional for GRIB driver") variant("libcsf", default=False, description="Required for PCRaster driver") variant("libkml", default=False, description="Required for LIBKML driver") @@ -170,11 +161,10 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): variant( "libxml2", default=False, description="Required for XML validation in many OGR drivers" ) - variant("luratech", default=False, when="@2.2:", description="Required for JP2Lura driver") + variant("luratech", default=False, when="@:3.10", description="Required for JP2Lura driver") variant("lz4", default=False, when="@3.4:", description="Required for Zarr driver") variant("mdb", default=False, when="@:3.4", description="Required for MDB driver") - variant("mongocxx", default=False, when="@2.1:", description="Required for MongoDBv3 driver") - variant("mrf", default=False, when="@2.1:2", description="Required for MRF driver") + variant("mongocxx", default=False, description="Required for MongoDBv3 driver") variant("mrsid", default=False, description="Required for MrSID driver") variant( "mrsid_lidar", default=False, when="@:3.4", description="Required for MrSID/MG4 driver" @@ -206,15 +196,20 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): when="build_system=cmake", description="Required for SAP HANA driver", ) - variant("ogdi", default=False, description="Required for OGDI driver") + variant("ogdi", default=False, when="@:3.10", description="Required for OGDI driver") variant( "opencad", default=False, when="build_system=cmake", description="Required for CAD driver" ) - variant("opencl", default=False, description="Required to accelerate warping computations") + variant( + "opencl", + default=False, + when="@:3.10", + description="Required to accelerate warping computations", + ) variant("opendrive", default=False, when="@3.10:", description="Required for XODR driver") variant("openexr", default=False, when="@3.1:", description="Required for EXR driver") variant("openjpeg", default=False, description="Required for JP2OpenJPEG driver") - variant("openssl", default=False, when="@2.3:", description="Required for EEDAI driver") + variant("openssl", default=False, description="Required for EEDAI driver") variant("oracle", default=False, description="Required for OCI and GeoRaster drivers") variant( "parquet", @@ -226,7 +221,7 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): variant( "pcre2", default=False, description="Required for REGEXP operator in drivers using SQLite3" ) - variant("pdfium", default=False, when="@2.1:", description="Possible backend for PDF driver") + variant("pdfium", default=False, description="Possible backend for PDF driver") variant("png", default=True, description="Required for PNG driver") variant("podofo", default=False, description="Possible backend for PDF driver") variant("poppler", default=False, description="Possible backend for PDF driver") @@ -242,30 +237,27 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): description="Used for linear interpolation of gdal_grid", ) variant("rasdaman", default=False, when="@:3.6", description="Required for Rasdaman driver") - variant( - "rasterlite2", default=False, when="@2.2:", description="Required for RasterLite2 driver" - ) - variant("rdb", default=False, when="@3.1:", description="Required for RDB driver") + variant("rasterlite2", default=False, description="Required for RasterLite2 driver") + variant("rdb", default=False, when="@3.1:3.10", description="Required for RDB driver") variant("sde", default=False, when="@:3.1", description="Required for SDE driver") - variant("sfcgal", default=False, when="@2.2:", description="Provides 3D geometry operations") + variant("sfcgal", default=False, description="Provides 3D geometry operations") variant("spatialite", default=False, description="Required for SQLite and GPKG drivers") variant("sqlite3", default=True, description="Required for SQLite and GPKG drivers") variant("teigha", default=False, description="Required for DWG and DGNv8 drivers") - variant("tiledb", default=False, when="@3:", description="Required for TileDB driver") + variant("tiledb", default=False, description="Required for TileDB driver") variant("webp", default=False, description="Required for WEBP driver") variant( "xercesc", default=False, description="Required for XML parsing capabilities in many OGR drivers", ) - variant("zstd", default=False, when="@2.3:", description="Required for Zarr driver") + variant("zstd", default=False, description="Required for Zarr driver") # Language bindings variant("python", default=False, description="Build Python bindings") variant("java", default=False, description="Build Java bindings") variant("csharp", default=False, when="build_system=cmake", description="Build C# bindings") variant("perl", default=False, when="@:3.4", description="Build Perl bindings") - variant("php", default=False, when="@:2.3", description="Build PHP bindings") variant("shared", default=True, description="Build shared libraries") variant("pic", default=False, description="Enable position-independent code (PIC)") @@ -288,33 +280,26 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): # Required dependencies # Versions come from gdal_check_package in cmake/helpers/CheckDependentLibraries.cmake - depends_on("pkgconfig@0.25:", type="build") + depends_on("pkgconfig", type="build") depends_on("proj@6.3.1:", when="@3.9:") - depends_on("proj@6:", when="@3:") - depends_on("proj@:6", when="@2.5:2") - depends_on("proj@:5", when="@2.4") - depends_on("proj@:4", when="@:2.3") + depends_on("proj@6:") depends_on("zlib-api") depends_on("libtiff@4.1:", when="@3.9:") - depends_on("libtiff@4:", when="@3:") - depends_on("libtiff@3.6.0:") # 3.9.0+ needed to pass testsuite - depends_on("libgeotiff@1.5:", when="@3:") - depends_on("libgeotiff@1.2.1:1.5", when="@2.4.1:2") - depends_on("libgeotiff@1.2.1:1.4", when="@:2.4.0") + depends_on("libtiff@4:") + depends_on("libgeotiff@1.5:") depends_on("json-c") - depends_on("json-c@0.12.1", when="@:2.2") # Optional dependencies depends_on("libarchive", when="+archive") depends_on("armadillo", when="+armadillo") depends_on("blas", when="+armadillo") depends_on("lapack", when="+armadillo") - depends_on("arrow", when="+arrow") + depends_on("arrow+filesystem", when="+arrow") + depends_on("libavif", when="+avif") # depends_on("basis-universal", when="+basisu") depends_on("c-blosc", when="+blosc") depends_on("brunsli", when="+brunsli") - # depends_on('bsb', when='+bsb') depends_on("cfitsio", when="+cfitsio") depends_on("crunch", when="+crnlib") depends_on("curl@7.68:", when="@3.9:+curl") @@ -334,7 +319,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("grib-api", when="+grib") + # depends_on("grok@20.2:", when="+grok") depends_on("libgta", when="+gta") depends_on("libheif@1.1:", when="+heif") depends_on("hdf", when="+hdf4") @@ -347,7 +332,7 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): depends_on("iconv", when="+iconv") # depends_on('idb', when='+idb') # depends_on('ingres', when='+ingres') - depends_on("jasper@1.900.1", patches=[patch("uuid.patch")], when="+jasper") + # depends_on("jasper@1.900.1", patches=[patch("uuid.patch")], when="+jasper") depends_on("jpeg", when="+jpeg") depends_on("libjxl", when="+jxl") # depends_on('kakadu', when='+kdu') @@ -364,7 +349,6 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): depends_on("jackcess@1.2", type="run", when="+mdb") depends_on("mongo-cxx-driver", when="+mongocxx") # depends_on('bsoncxx', when='+mongocxx') - # depends_on('mrf', when='+mrf') # depends_on('mrsid', when='+mrsid') # depends_on('lizardtech-lidar', when='+mrsid_lidar') # depends_on('mssql_ncli', when='+mssql_ncli') @@ -384,7 +368,7 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): depends_on("openjpeg", when="+openjpeg") depends_on("openssl", when="+openssl") depends_on("oracle-instant-client", when="+oracle") - depends_on("arrow", when="+parquet") + depends_on("arrow+parquet+filesystem", when="+parquet") # depends_on('pcidsk', when='+pcidsk') depends_on("pcre2", when="@3.5:+pcre2") depends_on("pcre", when="@:3.4+pcre2") @@ -392,13 +376,16 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): depends_on("libpng@1.6:", when="@3.9:+png") depends_on("libpng", when="+png") # depends_on('podofo', when='+podofo') - depends_on("poppler@0.86:", when="@3.9:+poppler") - depends_on("poppler@0.24:", when="@3:+poppler") - depends_on("poppler@:0.63", when="@:2.3+poppler") - depends_on("poppler@:0.71", when="@:2.4+poppler") - depends_on("poppler@:21", when="@:3.4.1+poppler") - depends_on("poppler@:25.01", when="@:3.10.1+poppler") - depends_on("poppler", when="+poppler") + with when("+poppler"): + depends_on("poppler@0.86:", when="@3.9:") + depends_on("poppler@0.24:") + 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") + depends_on("poppler@:26.00", when="@:3.12.1") + depends_on("poppler@:25.09", when="@:3.11.4") + depends_on("poppler@:25.01", when="@:3.10.1") + depends_on("poppler@:21", when="@:3.4.1") depends_on("postgresql", when="+postgresql") depends_on("qhull", when="+qhull") depends_on("qhull@2015:", when="@3.5:+qhull") @@ -444,15 +431,11 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): depends_on("py-numpy@:1", when="@:3.8+python", type=("build", "run")) depends_on("swig@4:", type="build", when="+python") depends_on("java@7:", type=("build", "link", "run"), when="@3.2:+java") - depends_on("java@6:", type=("build", "link", "run"), when="@2.4:+java") - depends_on("java@5:", type=("build", "link", "run"), when="@2.1:+java") - depends_on("java@4:", type=("build", "link", "run"), when="@:2.0+java") + depends_on("java@6:", type=("build", "link", "run"), when="+java") depends_on("ant", type="build", when="+java") depends_on("swig@4:", type="build", when="+java") depends_on("perl", type=("build", "run"), when="+perl") depends_on("swig@4:", type="build", when="+perl") - depends_on("php", type=("build", "link", "run"), when="+php") - depends_on("swig@4:", type="build", when="+php") # https://gdal.org/development/rfc/rfc88_googletest.html depends_on("googletest@1.10:", type="test") @@ -464,7 +447,7 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): conflicts("%msvc@:19.14") # https://gdal.org/development/rfc/rfc68_cplusplus11.html - with default_args(when="@2.3:", msg="GDAL requires C++11 support"): + with default_args(msg="GDAL requires C++11 support"): conflicts("%gcc@:4.8.0") conflicts("%clang@:3.2") conflicts("%msvc@:13") @@ -477,11 +460,9 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): conflicts("~jpeg", when="@3:3.5.0") # TODO: investigate build issues conflicts("+brunsli", when="@3.4") - conflicts("+qhull", when="@2.1") conflicts("+mdb", when="~java", msg="MDB driver requires Java") # TODO: add packages for the following dependencies - conflicts("+bsb") conflicts("+dods") conflicts("+ecw") conflicts("+epsilon") @@ -489,10 +470,10 @@ class Gdal(CMakePackage, AutotoolsPackage, PythonExtension): conflicts("+fme") conflicts("+idb") conflicts("+ingres") + conflicts("+jasper") conflicts("+kdu") conflicts("+libcsf") conflicts("+luratech") - conflicts("+mrf") conflicts("+mrsid") conflicts("+mrsid_lidar") conflicts("+mssql_ncli") @@ -557,7 +538,7 @@ def patch(self): class CMakeBuilder(CMakeBuilder): def cmake_args(self): - # https://gdal.org/build_hints.html + # https://gdal.org/en/stable/development/building_from_source.html args = [ # Only use Spack-installed dependencies self.define("GDAL_USE_EXTERNAL_LIBS", False), @@ -703,11 +684,11 @@ def configure_args(self): "--with-libjson-c={}".format(self.spec["json-c"].prefix), "--with-libtiff={}".format(self.spec["libtiff"].prefix), "--with-libz={}".format(self.spec["zlib-api"].prefix), + "--with-proj={}".format(self.spec["proj"].prefix), # Optional dependencies self.with_or_without("armadillo", package="armadillo"), self.with_or_without("blosc", package="c-blosc"), self.with_or_without("brunsli"), - self.with_or_without("bsb"), self.with_or_without("cfitsio", package="cfitsio"), self.with_or_without("dds", variant="crnlib", package="crunch"), self.with_or_without("curl", package="curl", attribute="command"), @@ -724,7 +705,6 @@ def configure_args(self): self.with_or_without("geos", package="geos", attribute="command"), self.with_or_without("gif", package="giflib"), self.with_or_without("grass", package="grass"), - self.with_or_without("grib"), self.with_or_without("libgrass", variant="grass"), self.with_or_without("gta", package="gta"), self.with_or_without("heif"), @@ -745,7 +725,7 @@ def configure_args(self): self.with_or_without("jp2lura", variant="luratech", package="luratech"), self.with_or_without("lz4", package="lz4"), self.with_or_without("mdb"), - self.with_or_without("mrf"), + self.with_or_without("mongocxxv3", variant="mongocxx"), self.with_or_without("mrsid", package="mrsid"), self.with_or_without("mrsid_lidar", package="lizardtech-lidar"), self.with_or_without("mysql", package="mysql", attribute="command"), @@ -761,6 +741,7 @@ def configure_args(self): self.with_or_without("pcidsk", package="pcidsk"), self.with_or_without("pcre", variant="pcre2"), self.with_or_without("pdfium", package="pdfium"), + self.with_or_without("pg", variant="postgresql"), self.with_or_without("png", package="libpng"), self.with_or_without("podofo", package="podofo"), self.with_or_without("poppler", package="poppler"), @@ -772,9 +753,11 @@ def configure_args(self): self.with_or_without("spatialite", package="libspatialite"), self.with_or_without("sqlite3", package="sqlite"), self.with_or_without("sfcgal", package="sfcgal", attribute="command"), + self.with_or_without("teigha", package="teigha"), self.with_or_without("tiledb", package="tiledb"), self.with_or_without("webp", package="libwebp"), self.with_or_without("xerces", variant="xercesc", package="xerces-c"), + self.with_or_without("xml2", variant="libxml2"), self.with_or_without("zstd", package="zstd"), # Language bindings self.with_or_without("python", package="python", attribute="command"), @@ -782,7 +765,6 @@ def configure_args(self): self.with_or_without("jvm-lib", variant="mdb", package="java", attribute="libs"), self.with_or_without("jvm-lib-add-rpath", variant="mdb"), self.with_or_without("perl"), - self.with_or_without("php"), ] if self.spec.satisfies("+iconv"): if self.spec["iconv"].name == "libiconv": @@ -790,42 +772,6 @@ def configure_args(self): else: args.append("--without-libiconv-prefix") - args.extend(self.enable_or_disable("shared")) - args.append(self.with_or_without("pic")) - - # Renamed or modified flags - if self.spec.satisfies("@3:"): - args.extend( - [ - self.with_or_without("xml2", variant="libxml2"), - self.with_or_without("mongocxxv3", variant="mongocxx"), - self.with_or_without("pg", variant="postgresql"), - ] - ) - else: - args.extend( - [ - self.with_or_without( - "xml2", variant="libxml2", package="libxml2", attribute="command" - ), - self.with_or_without("mongocxx", variant="mongocxx"), - self.with_or_without( - "pg", variant="postgresql", package="postgresql", attribute="command" - ), - ] - ) - - if self.spec.satisfies("@2.3:"): - args.append("--with-proj={}".format(self.spec["proj"].prefix)) - - if self.spec.satisfies("@2.2:"): - args.append(self.with_or_without("teigha", package="teigha")) - else: - args.append(self.with_or_without("dwgdirect", variant="teigha", package="teigha")) - - ldflags = [] - libs = [] - if self.spec.satisfies("+hdf4"): hdf4 = self.spec["hdf"] if "+external-xdr" in hdf4 and hdf4["rpc"].name == "libtirpc": diff --git a/repos/spack_repo/builtin/packages/gdal/uuid.patch b/repos/spack_repo/builtin/packages/gdal/uuid.patch deleted file mode 100644 index 3990dad0cd4..00000000000 --- a/repos/spack_repo/builtin/packages/gdal/uuid.patch +++ /dev/null @@ -1,234 +0,0 @@ -diff -Naur jasper-1.900.1/src/libjasper/jp2/jp2_cod.c jasper-1.900.1.uuid/src/libjasper/jp2/jp2_cod.c ---- jasper-1.900.1/src/libjasper/jp2/jp2_cod.c 2007-01-19 15:43:05.000000000 -0600 -+++ jasper-1.900.1.uuid/src/libjasper/jp2/jp2_cod.c 2007-03-06 07:49:58.000000000 -0600 -@@ -5,6 +5,11 @@ - * All rights reserved. - */ - -+/* -+ * Modified by Andrey Kiselev to properly handle UUID -+ * box. -+ */ -+ - /* __START_OF_JASPER_LICENSE__ - * - * JasPer License Version 2.0 -@@ -127,6 +132,9 @@ - static int jp2_pclr_getdata(jp2_box_t *box, jas_stream_t *in); - static int jp2_pclr_putdata(jp2_box_t *box, jas_stream_t *out); - static void jp2_pclr_dumpdata(jp2_box_t *box, FILE *out); -+static void jp2_uuid_destroy(jp2_box_t *box); -+static int jp2_uuid_getdata(jp2_box_t *box, jas_stream_t *in); -+static int jp2_uuid_putdata(jp2_box_t *box, jas_stream_t *out); - - /******************************************************************************\ - * Local data. -@@ -164,7 +172,7 @@ - {JP2_BOX_XML, "XML", 0, - {0, 0, 0, 0, 0}}, - {JP2_BOX_UUID, "UUID", 0, -- {0, 0, 0, 0, 0}}, -+ {0, jp2_uuid_destroy, jp2_uuid_getdata, jp2_uuid_putdata, 0}}, - {JP2_BOX_UINF, "UINF", JP2_BOX_SUPER, - {0, 0, 0, 0, 0}}, - {JP2_BOX_ULST, "ULST", 0, -@@ -271,7 +279,7 @@ - } else { - box->datalen = box->len - JP2_BOX_HDRLEN(false); - } -- if (box->len != 0 && box->len < 8) { -+ if (box->len != 0 && box->len < JP2_BOX_HDRLEN(false)) { - goto error; - } - -@@ -876,6 +884,56 @@ - } - } - -+static void jp2_uuid_destroy(jp2_box_t *box) -+{ -+ jp2_uuid_t *uuid = &box->data.uuid; -+ if (uuid->data) -+ { -+ jas_free(uuid->data); -+ uuid->data = NULL; -+ } -+} -+ -+static int jp2_uuid_getdata(jp2_box_t *box, jas_stream_t *in) -+{ -+ jp2_uuid_t *uuid = &box->data.uuid; -+ int i; -+ -+ for (i = 0; i < 16; i++) -+ { -+ if (jp2_getuint8(in, &uuid->uuid[i])) -+ return -1; -+ } -+ -+ uuid->datalen = box->datalen - 16; -+ uuid->data = jas_malloc(uuid->datalen * sizeof(uint_fast8_t)); -+ for (i = 0; i < uuid->datalen; i++) -+ { -+ if (jp2_getuint8(in, &uuid->data[i])) -+ return -1; -+ } -+ return 0; -+} -+ -+static int jp2_uuid_putdata(jp2_box_t *box, jas_stream_t *out) -+{ -+ jp2_uuid_t *uuid = &box->data.uuid; -+ int i; -+ -+ for (i = 0; i < 16; i++) -+ { -+ if (jp2_putuint8(out, uuid->uuid[i])) -+ return -1; -+ } -+ -+ for (i = 0; i < uuid->datalen; i++) -+ { -+ if (jp2_putuint8(out, uuid->data[i])) -+ return -1; -+ } -+ return 0; -+} -+ - static int jp2_getint(jas_stream_t *in, int s, int n, int_fast32_t *val) - { - int c; -diff -Naur jasper-1.900.1/src/libjasper/jp2/jp2_cod.h jasper-1.900.1.uuid/src/libjasper/jp2/jp2_cod.h ---- jasper-1.900.1/src/libjasper/jp2/jp2_cod.h 2007-01-19 15:43:05.000000000 -0600 -+++ jasper-1.900.1.uuid/src/libjasper/jp2/jp2_cod.h 2007-03-06 07:49:58.000000000 -0600 -@@ -5,6 +5,11 @@ - * All rights reserved. - */ - -+/* -+ * Modified by Andrey Kiselev to properly handle UUID -+ * box. -+ */ -+ - /* __START_OF_JASPER_LICENSE__ - * - * JasPer License Version 2.0 -@@ -229,6 +234,12 @@ - jp2_cmapent_t *ents; - } jp2_cmap_t; - -+typedef struct { -+ uint_fast32_t datalen; -+ uint_fast8_t uuid[16]; -+ uint_fast8_t *data; -+} jp2_uuid_t; -+ - #define JP2_CMAP_DIRECT 0 - #define JP2_CMAP_PALETTE 1 - -@@ -257,6 +268,7 @@ - jp2_pclr_t pclr; - jp2_cdef_t cdef; - jp2_cmap_t cmap; -+ jp2_uuid_t uuid; - } data; - - } jp2_box_t; -diff -Naur jasper-1.900.1/src/libjasper/jp2/jp2_enc.c jasper-1.900.1.uuid/src/libjasper/jp2/jp2_enc.c ---- jasper-1.900.1/src/libjasper/jp2/jp2_enc.c 2007-01-19 15:43:05.000000000 -0600 -+++ jasper-1.900.1.uuid/src/libjasper/jp2/jp2_enc.c 2007-03-06 07:49:58.000000000 -0600 -@@ -5,6 +5,11 @@ - * All rights reserved. - */ - -+/* -+ * Modified by Andrey Kiselev to properly handle UUID -+ * box. -+ */ -+ - /* __START_OF_JASPER_LICENSE__ - * - * JasPer License Version 2.0 -@@ -86,7 +91,7 @@ - * Functions. - \******************************************************************************/ - --int jp2_encode(jas_image_t *image, jas_stream_t *out, char *optstr) -+int jp2_write_header(jas_image_t *image, jas_stream_t *out) - { - jp2_box_t *box; - jp2_ftyp_t *ftyp; -@@ -97,8 +102,6 @@ - long len; - uint_fast16_t cmptno; - jp2_colr_t *colr; -- char buf[4096]; -- uint_fast32_t overhead; - jp2_cdefchan_t *cdefchanent; - jp2_cdef_t *cdef; - int i; -@@ -326,6 +329,26 @@ - jas_stream_close(tmpstream); - tmpstream = 0; - -+ return 0; -+ abort(); -+ -+error: -+ -+ if (box) { -+ jp2_box_destroy(box); -+ } -+ if (tmpstream) { -+ jas_stream_close(tmpstream); -+ } -+ return -1; -+} -+ -+int jp2_write_codestream(jas_image_t *image, jas_stream_t *out, char *optstr) -+{ -+ jp2_box_t *box; -+ char buf[4096]; -+ uint_fast32_t overhead; -+ - /* - * Output the contiguous code stream box. - */ -@@ -358,12 +381,34 @@ - if (box) { - jp2_box_destroy(box); - } -- if (tmpstream) { -- jas_stream_close(tmpstream); -- } - return -1; - } - -+int jp2_encode(jas_image_t *image, jas_stream_t *out, char *optstr) -+{ -+ if (jp2_write_header(image, out) < 0) -+ return -1; -+ if (jp2_write_codestream(image, out, optstr) < 0) -+ return -1; -+ -+ return 0; -+} -+ -+int jp2_encode_uuid(jas_image_t *image, jas_stream_t *out, -+ char *optstr, jp2_box_t *uuid) -+{ -+ if (jp2_write_header(image, out) < 0) -+ return -1; -+ if (uuid) { -+ if (jp2_box_put(uuid, out)) -+ return -1; -+ } -+ if (jp2_write_codestream(image, out, optstr) < 0) -+ return -1; -+ -+ return 0; -+} -+ - static uint_fast32_t jp2_gettypeasoc(int colorspace, int ctype) - { - int type; diff --git a/repos/spack_repo/builtin/packages/gdb/package.py b/repos/spack_repo/builtin/packages/gdb/package.py index 1495a32adf1..b5e62551d92 100644 --- a/repos/spack_repo/builtin/packages/gdb/package.py +++ b/repos/spack_repo/builtin/packages/gdb/package.py @@ -23,6 +23,7 @@ class Gdb(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later AND LGPL-3.0-or-later") + version("17.1", sha256="2b93c4c9726a4b8cfe771036e155377405dfa41c483d90945481319c5663c120") version("16.2", sha256="bdc1da4a033280ac752e7d34b0418efaa45bed093235cb88e62ea961752a37f8") version("15.2", sha256="9d16bc2539a2a20dc3ef99b48b8414d51c51305c8577eb7a1da00996f6dea223") version("14.2", sha256="2de5174762e959a5e529e20c20d88a04735469d8fffd98f61664e70b341dc47c") @@ -47,7 +48,7 @@ class Gdb(AutotoolsPackage, GNUMirrorPackage): version("7.11.1", sha256="57e9e9aa3172ee16aa1e9c66fef08b4393b51872cc153e3f1ffdf18a57440586") version("7.10.1", sha256="ff14f8050e6484508c73cbfa63731e57901478490ca1672dc0b5e2b03f6af622") - variant("python", default=True, description="Compile with Python support", when="@8.2:") + variant("python", default=True, description="Compile with Python support", when="@9.3:") variant("xz", default=True, description="Compile with lzma support") variant("source-highlight", default=False, description="Compile with source-highlight support") variant("lto", default=False, description="Enable lto") @@ -89,9 +90,6 @@ class Gdb(AutotoolsPackage, GNUMirrorPackage): # Optional dependencies with when("+python"), default_args(type=("build", "link", "run")): depends_on("python") - # gdb@9.2 will segmentation fault if it builds with python@3.9. - # https://bugzilla.redhat.com/show_bug.cgi?id=1829702 - depends_on("python@:3.8", when="@:9.2") # pyOS_ReadlineTState became private API in cpython commit # d228825e08883fc13f35eb91435f95d32524931c depends_on("python@:3.12", when="@:14.2") diff --git a/repos/spack_repo/builtin/packages/gdbm/package.py b/repos/spack_repo/builtin/packages/gdbm/package.py index e42e37ceeac..e1b0f8f7e0f 100644 --- a/repos/spack_repo/builtin/packages/gdbm/package.py +++ b/repos/spack_repo/builtin/packages/gdbm/package.py @@ -19,6 +19,7 @@ class Gdbm(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") + version("1.26", sha256="6a24504a14de4a744103dcb936be976df6fbe88ccff26065e54c1c47946f4a5e") version("1.25", sha256="d02db3c5926ed877f8817b81cd1f92f53ef74ca8c6db543fbba0271b34f393ec") version("1.24", sha256="695e9827fdf763513f133910bc7e6cfdb9187943a4fec943e57449723d2b8dbf") version("1.23", sha256="74b1081d21fff13ae4bd7c16e5d6e504a4c26f7cde1dca0d963a484174bbcacd") @@ -39,6 +40,13 @@ class Gdbm(AutotoolsPackage, GNUMirrorPackage): depends_on("readline") + # Fix nanosleep build error: https://cgit.git.savannah.gnu.org/cgit/gdbm.git/commit/?id=ed0a865345681982ea02c6159c0f3d7702c928a1 + patch( + "https://git.savannah.gnu.org/cgit/gdbm.git/rawdiff/?id=ed0a865345681982ea02c6159c0f3d7702c928a1", + sha256="cdba23a8da0bbdf91921247d226f9ca13e2a1c9541434f7a9132ba39346762ad", + when="@1.25 platform=darwin", + ) + patch("macOS.patch", when="@1.21 platform=darwin") patch("gdbm.patch", when="@:1.18 %gcc@10:") patch("gdbm.patch", when="@:1.18 %clang@11:") @@ -47,6 +55,14 @@ class Gdbm(AutotoolsPackage, GNUMirrorPackage): patch("gdbm.patch", when="@:1.18 %oneapi") patch("gdbm.patch", when="@:1.18 %arm@21:") + def flag_handler(self, name, flags): + if name == "cflags": + # See https://src.fedoraproject.org/rpms/gdbm/blob/44ea7380c69b1c139fe385bc1c5940070b36c626/f/gdbm.spec#_62 + if self.spec.satisfies("@:1.24 %gcc@15:"): + flags.append("-std=gnu11") + + return (flags, None, None) + def configure_args(self): # GDBM uses some non-standard GNU extensions, # enabled with -D_GNU_SOURCE. See: diff --git a/repos/spack_repo/builtin/packages/gdk_pixbuf/package.py b/repos/spack_repo/builtin/packages/gdk_pixbuf/package.py index 3151e7ec76a..860c509eeac 100644 --- a/repos/spack_repo/builtin/packages/gdk_pixbuf/package.py +++ b/repos/spack_repo/builtin/packages/gdk_pixbuf/package.py @@ -21,27 +21,6 @@ class GdkPixbuf(MesonPackage): license("LGPL-2.1-or-later", checked_by="wdconinc") version("2.42.12", sha256="b9505b3445b9a7e48ced34760c3bcb73e966df3ac94c95a148cb669ab748e3c7") - # https://nvd.nist.gov/vuln/detail/CVE-2022-48622 - version( - "2.42.10", - sha256="ee9b6c75d13ba096907a2e3c6b27b61bcd17f5c7ebeab5a5b439d2f2e39fe44b", - deprecated=True, - ) - version( - "2.42.9", - sha256="28f7958e7bf29a32d4e963556d241d0a41a6786582ff6a5ad11665e0347fc962", - deprecated=True, - ) - version( - "2.42.6", - sha256="c4a6b75b7ed8f58ca48da830b9fa00ed96d668d3ab4b1f723dcf902f78bde77f", - deprecated=True, - ) - version( - "2.42.2", - sha256="83c66a1cfd591d7680c144d2922c5955d38b4db336d7cd3ee109f7bcf9afef15", - deprecated=True, - ) variant("tiff", default=False, description="Enable TIFF support(partially broken)") # Man page creation was getting docbook errors, see issue #18853 diff --git a/repos/spack_repo/builtin/packages/gdrcopy/package.py b/repos/spack_repo/builtin/packages/gdrcopy/package.py index 7935f538f41..7c8328670c4 100644 --- a/repos/spack_repo/builtin/packages/gdrcopy/package.py +++ b/repos/spack_repo/builtin/packages/gdrcopy/package.py @@ -20,6 +20,7 @@ class Gdrcopy(MakefilePackage, CudaPackage): license("MIT") version("master", branch="master") + version("2.5.1", sha256="c6d5ebb7dabb89d798f27609511735595004da73af28d93ac041bb5290c4cbec") version("2.5", sha256="196400877be7e511edcf2a87b21a605cca99522ff217c97429348fd9153b30d7") version("2.4.4", sha256="8802f7bc4a589a610118023bdcdd83c10a56dea399acf6eeaac32e8cc10739a8") version("2.4.3", sha256="2727e671d6091f1178a1b10124c41f5a4dd5ce8a23b65a084ef00c178d5914b2") @@ -50,6 +51,9 @@ class Gdrcopy(MakefilePackage, CudaPackage): def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("CUDA", self.spec["cuda"].prefix) + if self.spec.satisfies("@2.4:"): + env.set("NVCCFLAGS", " ".join(self.cuda_flags(self.spec.variants["cuda_arch"].values))) + def build(self, spec, prefix): make("lib") make("exes") diff --git a/repos/spack_repo/builtin/packages/geant3/package.py b/repos/spack_repo/builtin/packages/geant3/package.py index e577f34b9ca..cf9a9e28543 100644 --- a/repos/spack_repo/builtin/packages/geant3/package.py +++ b/repos/spack_repo/builtin/packages/geant3/package.py @@ -14,6 +14,7 @@ class Geant3(CMakePackage): homepage = "https://github.com/vmc-project/geant3" url = "https://github.com/vmc-project/geant3/archive/v3-7.tar.gz" + version("4-4", sha256="31ad296d856aa282a347abcb451809e110237d8a3fd7c47458777c2c29ae47f2") version("4-1", sha256="a1dcab7bc7a7493e4c78d7bec22cd816e79e40992bf9db0d616e2a0125fcdf50") version("3-8", sha256="6ff6745eef59139d791bef043b405f6d515be1d98096cf4e82ac4c1f61f737dc") version("3-7", sha256="36cd57c6e5a54ff11e8687b30f54d774b676e06c55658cbc1ad787d1fadbe509") @@ -21,11 +22,11 @@ class Geant3(CMakePackage): version("3-5", sha256="5bec0b442bbb3456d5cd1751ac9f90f1da48df0fcb7f6bf0a86c566bfc408261") version("3-4", sha256="c7b487ab4fb4e6479c652b9b11dcafb686edf35e2f2048045c501e4f5597d62c") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") - depends_on("root~vmc") + depends_on("root") depends_on("vmc") variant( @@ -39,7 +40,9 @@ class Geant3(CMakePackage): def cmake_args(self): args = [] if self.spec.satisfies("%gcc@10:"): - args.append('-DCMAKE_Fortran_FLAGS="-fallow-argument-mismatch -fallow-invalid-boz"') + args.append( + self.define("CMAKE_Fortran_FLAGS", "-fallow-argument-mismatch -fallow-invalid-boz") + ) args.append(self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd")) return args diff --git a/repos/spack_repo/builtin/packages/geant4/geant4-10.3-clhep-cmake.patch b/repos/spack_repo/builtin/packages/geant4/geant4-10.3-clhep-cmake.patch deleted file mode 100644 index b865f3bde24..00000000000 --- a/repos/spack_repo/builtin/packages/geant4/geant4-10.3-clhep-cmake.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/cmake/Modules/FindCLHEP.cmake b/cmake/Modules/FindCLHEP.cmake -index 8b59f1c0a..f616d678e 100644 ---- a/cmake/Modules/FindCLHEP.cmake -+++ b/cmake/Modules/FindCLHEP.cmake -@@ -180,7 +180,10 @@ if(UNIX) - execute_process(COMMAND ${CLHEP_CONFIG_EXECUTABLE} --prefix - OUTPUT_VARIABLE _clhep_config_prefix - OUTPUT_STRIP_TRAILING_WHITESPACE) -- -+ if (_clhep_config_prefix) -+ # Remove wrapping double quotes. -+ string(REGEX REPLACE "\"(.*)\"" "\\1" _clhep_config_prefix "${_clhep_config_prefix}") -+ endif() - list(APPEND _clhep_root_hints ${_clhep_config_prefix}) - endif() - elseif(WIN32 AND NOT UNIX) -diff --git a/cmake/Templates/Geant4Config.cmake.in b/cmake/Templates/Geant4Config.cmake.in -index d6fe408b3..f355be2af 100644 ---- a/cmake/Templates/Geant4Config.cmake.in -+++ b/cmake/Templates/Geant4Config.cmake.in -@@ -268,13 +268,7 @@ set(Geant4_builtin_clhep_FOUND @GEANT4_USE_BUILTIN_CLHEP@) - if(NOT Geant4_builtin_clhep_FOUND) - set(Geant4_system_clhep_ISGRANULAR @GEANT4_USE_SYSTEM_CLHEP_GRANULAR@) - -- set(CLHEP_ROOT_DIR "@CLHEP_ROOT_DIR@") -- set(__GEANT4_OLD_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}) -- set(CMAKE_MODULE_PATH "${_geant4_thisdir}/Modules" ${CMAKE_MODULE_PATH}) - find_package(CLHEP @CLHEP_VERSION@ REQUIRED @__g4_clhep_components@) -- set(CMAKE_MODULE_PATH ${__GEANT4_OLD_CMAKE_MODULE_PATH}) -- unset(CLHEP_ROOT_DIR) -- unset(__GEANT4_OLD_CMAKE_MODULE_PATH) - #CLHEP doesn't use target properties fully yet, so always include_directories - include_directories(${CLHEP_INCLUDE_DIRS}) - endif() diff --git a/repos/spack_repo/builtin/packages/geant4/package.py b/repos/spack_repo/builtin/packages/geant4/package.py index e1141003e04..1d694f63b4b 100644 --- a/repos/spack_repo/builtin/packages/geant4/package.py +++ b/repos/spack_repo/builtin/packages/geant4/package.py @@ -26,6 +26,8 @@ class Geant4(CMakePackage): maintainers("drbenmorgan", "sethrj") + version("11.4.1", sha256="99dcf5f9d4f806fb8c4fde85cb2674a42e4ca19833143464ff7efa55c1852140") + version("11.4.0", sha256="a6d78cf70ba46902cb74ff65d09dc2d1e46b4ab9325862f84e439f0d4ec329fb") version("11.3.2", sha256="077edca6aa3b3940f351cf9a948457cad3fb117f215b88c52cce315e1a07fd7a") version("11.3.1", sha256="9059da076928f25cab1ff1f35e0f611a4d7fe005e374e9b8d7f3ff2434b7af54") version("11.3.0", sha256="d9d71daff8890a7b5e0e33ea9a65fe6308ad6713000b43ba6705af77078e7ead") @@ -60,6 +62,7 @@ class Geant4(CMakePackage): conditional("11", "14", when="@:10"), conditional("17", when="@10.4.1:"), conditional("20", when="@10.7.0:"), + conditional("23", when="@11:"), ) variant( "cxxstd", @@ -70,7 +73,7 @@ class Geant4(CMakePackage): ) variant("threads", default=True, description="Build with multithreading") - variant("vecgeom", default=False, description="Enable vecgeom support", when="@10.4:") + variant("vecgeom", default=False, description="Enable vecgeom support", when="@10.7:") variant("opengl", default=False, description="Optional OpenGL support") variant("x11", default=False, description="Optional X11 support") variant("motif", default=False, description="Optional motif support") @@ -78,7 +81,7 @@ class Geant4(CMakePackage): variant("hdf5", default=False, description="Enable HDF5 support", when="@10.4:") variant("python", default=False, description="Enable Python bindings", when="@10.6.2:11.0") variant("tbb", default=False, description="Use TBB as a tasking backend", when="@11:") - variant("timemory", default=False, description="Use TiMemory for profiling", when="@9.5:") + variant("timemory", default=False, description="Use TiMemory for profiling", when="@9.5:11.2") variant("vtk", default=False, description="Enable VTK support", when="@11:") # For most users, obtaining the Geant4 data via Spack will be useful; the @@ -141,7 +144,8 @@ class Geant4(CMakePackage): "11.1", "11.2.0:11.2.1", "11.2.2:11.2", - "11.3:", + "11.3", + "11.4:", ]: depends_on("geant4-data@" + _vers, type="run", when="+data @" + _vers) @@ -157,6 +161,7 @@ class Geant4(CMakePackage): extends("python", when="+python") # CLHEP version requirements to be reviewed + depends_on("clhep@2.4.7.2:", when="@11.4:") depends_on("clhep@2.4.7.1:", when="@11.3:") depends_on("clhep@2.4.6.0:", when="@11.1:") depends_on("clhep@2.4.5.1:", when="@11.0.0:") @@ -166,14 +171,10 @@ class Geant4(CMakePackage): # Vecgeom specific versions for each Geant4 version with when("+vecgeom"): - depends_on("vecgeom@1.2.8:", when="@11.3:") depends_on("vecgeom@1.2.6:", when="@11.2:") depends_on("vecgeom@1.2.0:", when="@11.1") depends_on("vecgeom@1.1.18:1.1", when="@11.0.0:11.0") depends_on("vecgeom@1.1.8:1.1", when="@10.7.0:10.7") - depends_on("vecgeom@1.1.5", when="@10.6.0:10.6") - depends_on("vecgeom@1.1.0", when="@10.5.0:10.5") - depends_on("vecgeom@0.5.2", when="@10.4.0:10.4") with when("+hdf5"): depends_on("hdf5 +threadsafe") @@ -201,7 +202,8 @@ class Geant4(CMakePackage): depends_on("qt-base +accessibility +gui +opengl") with when("^[virtuals=qmake] qt"): depends_on("qt@5: +opengl") - depends_on("qt@5.9:", when="@11.2:") + depends_on("qt@5.9:", when="@11.2:11.3") + conflicts("@11.4: ^[virtuals=qmake] qt", msg="Qt5 not supported in 11.4 and later") conflicts("@:11.1 ^[virtuals=qmake] qt-base", msg="Qt6 not supported before 11.2") # CMAKE PROBLEMS # @@ -334,6 +336,14 @@ def cmake_args(self): options.append(self.define("GEANT4_INSTALL_DATA", False)) if spec.satisfies("+data"): options.append(self.define("GEANT4_INSTALL_DATADIR", self.datadir)) + variants = self.spec["geant4-data"].variants + for v in ["tendl", "nudexlib", "urrpt"]: + if v in variants: + # Inform Geant4 whether this optional dataset is in use + # so that it's exported to Geant4_DATASET_DESCRIPTIONS + options.append( + self.define("GEANT4_INSTALL_DATASETS_" + v.upper(), variants[v].value) + ) # Vecgeom if spec.satisfies("+vecgeom"): diff --git a/repos/spack_repo/builtin/packages/geant4_data/package.py b/repos/spack_repo/builtin/packages/geant4_data/package.py index eb8ee45eee6..2d29d17896a 100644 --- a/repos/spack_repo/builtin/packages/geant4_data/package.py +++ b/repos/spack_repo/builtin/packages/geant4_data/package.py @@ -18,6 +18,7 @@ class Geant4Data(BundlePackage): tags = ["hep"] + version("11.4.0") version("11.3.0") version("11.2.2") version("11.2.0") @@ -45,6 +46,20 @@ class Geant4Data(BundlePackage): # they generally don't change on the patch level # Can move to declaring on a dataset basis if needed _datasets = { + "11.4.0:11.4": [ + "g4ndl@4.7.1", + "g4emlow@8.8", + "g4photonevaporation@6.1.2", + "g4radioactivedecay@6.1.2", + "g4particlexs@4.2", + "g4pii@1.3", + "g4realsurface@2.2", + "g4saiddata@2.0", + "g4abla@3.3", + "g4incl@1.3", + "g4ensdfstate@3.0", + "g4channeling@2.0", + ], "11.3.0:11.3": [ "g4ndl@4.7.1", "g4emlow@8.6.1", @@ -196,7 +211,7 @@ class Geant4Data(BundlePackage): depends_on(_d, type=("build", "run"), when=_vers) _datasets_tendl = { - "11.0:11.3": "g4tendl@1.4", + "11.0:11.4": "g4tendl@1.4", "10.4:10.7": "g4tendl@1.3.2", "10.3:10.3": "g4tendl@1.3", } @@ -205,10 +220,10 @@ class Geant4Data(BundlePackage): with when("+tendl"): for _vers, _d in _datasets_tendl.items(): depends_on(_d, type=("build", "run"), when="@" + _vers) - variant("nudexlib", default=True, when="@11.3.0:11.3", description="Enable G4NUDEXLIB") + variant("nudexlib", default=True, when="@11.3:", description="Enable G4NUDEXLIB") with when("+nudexlib"): depends_on("g4nudexlib@1.0", type=("build", "run")) - variant("urrpt", default=True, when="@11.3.0:11.3", description="Enable G4URRPT") + variant("urrpt", default=True, when="@11.3:", description="Enable G4URRPT") with when("+urrpt"): depends_on("g4urrpt@1.1", type=("build", "run")) @@ -227,4 +242,4 @@ def install(self, spec, prefix): raise InstallError(f"Dependency `{s.name}` does not expose `g4datasetname`") d = "{0}/data/{1}".format(s.prefix.share, s.package.g4datasetname) - os.symlink(d, os.path.basename(d)) + symlink(d, os.path.basename(d)) diff --git a/repos/spack_repo/builtin/packages/geant4_vmc/package.py b/repos/spack_repo/builtin/packages/geant4_vmc/package.py index 24adfa6d195..682e7ce948b 100644 --- a/repos/spack_repo/builtin/packages/geant4_vmc/package.py +++ b/repos/spack_repo/builtin/packages/geant4_vmc/package.py @@ -21,6 +21,8 @@ class Geant4Vmc(CMakePackage): license("GPL-3.0-only") version("master", branch="master") + version("6-7-p1", sha256="e1e80c78987f94d6e2f9644052a57f43946fc73309197a4c4400906d227d27ae") + version("6-5", sha256="e5f08ea18f52d27365c237e8866bbddbf28b82843b4e12bcd5aa832350776ed0") version("6-1-p1", sha256="b3115cd891192ae6cb347737854ee01a22620498f005beb7644af12461ad8b9d") version("5-3", sha256="22f58530963988380509a7741ad6b3dde21806f3862fb55c11cc27f25d3d3c2d") version("5-2", sha256="5bd0e4a4f938048b35724f06075952ecfbc8a97ffc979630cfe2788323845b13") @@ -36,10 +38,13 @@ class Geant4Vmc(CMakePackage): version("4-0-p2", sha256="cdd73c499cd296f13b6c0d37e161e7d94343f85617b2a7577ded8312248f9b9b") version("3-6-p6", sha256="e62a62ff7075ff9afb2ffe420610374f62136094a447bbbc5f739a2238ddb0f0") + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("cmake@3.3:", type="build") + depends_on("cmake@3.16:", type="build", when="@6-7:") depends_on("geant4") + depends_on("geant4@11.2.0:", when="@6-7:") depends_on("vmc") def setup_build_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/geany/package.py b/repos/spack_repo/builtin/packages/geany/package.py new file mode 100644 index 00000000000..c7581afa0e6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/geany/package.py @@ -0,0 +1,41 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Geany(AutotoolsPackage): + """Geany is a powerful, stable and lightweight programmer's text editor + that provides tons of useful features without bogging down your workflow. + It runs on Linux, Windows and macOS, is translated into over 40 languages, + and has built-in support for more than 50 programming languages.""" + + homepage = "https://www.geany.org/" + url = "https://download.geany.org/geany-2.1.tar.bz2" + + maintainers("Markus92") + + license("GPL-2.0-or-later", checked_by="Markus92") + + version("2.1", sha256="6b96a8844463300c10b9692a0a5edad8236eec9e84342f575f83d4fc89331228") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + depends_on("m4", type="build") + + depends_on("gtkplus@3.24:") + depends_on("pango") + depends_on("glib") + depends_on("atk") + # not an official dependency, but it tries linking against it + depends_on("libxinerama") + + def autoreconf(self, spec, prefix): + autoreconf("--install", "--verbose", "--force") diff --git a/repos/spack_repo/builtin/packages/generalbrokenlines/package.py b/repos/spack_repo/builtin/packages/generalbrokenlines/package.py new file mode 100644 index 00000000000..556e6875d2b --- /dev/null +++ b/repos/spack_repo/builtin/packages/generalbrokenlines/package.py @@ -0,0 +1,62 @@ +# 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 Generalbrokenlines(CMakePackage): + """Advanced track fitting: A trajectory based on General Broken Lines is a + track refit to add the description of multiple scattering to an initial + trajectory based on the propagation in a magnetic field (and average energy + loss).""" + + homepage = "https://gitlab.desy.de/millepede/general-broken-lines" + url = "https://gitlab.desy.de/millepede/general-broken-lines/-/archive/V04-00-00/general-broken-lines-V04-00-00.tar.gz" + git = "https://gitlab.desy.de/millepede/general-broken-lines.git" + + license("LGPL-2.0-only", checked_by="paulgessinger") + + version("main", branch="main") + version("04-00-03", sha256="e5361f8f3862f1567da43c965065f21b8ef7987568e65a50b91b300b40386af3") + version("04-00-01", sha256="d3ab79babd953a8cffd7fca6a3753be923dd64d28e50eae89ee2b910c3d9d599") + version("04-00-00", sha256="ac2818cd7b8f84cb75c721521320f6c85ff8423bcf9b6be6d2bfee6e205a07db") + + patch( + "https://gitlab.desy.de/millepede/general-broken-lines/-/merge_requests/2.diff", + sha256="9578a86fcbb4dcd6bca14e9d6531c545b1ea798944b8d47d858ca20d58f6bd64", + when="@4.0.0", + ) + + variant("root", default=False, description="Enable ROOT support") + + _cxxstd_values = ["17", "20", "23"] + variant( + "cxxstd", + default="20", + values=_cxxstd_values, + multi=False, + description="Use the specified C++ standard when building.", + ) + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + + depends_on("mille") + depends_on("eigen@2.91:") + + for cxxstd in _cxxstd_values: + depends_on(f"root cxxstd={cxxstd}", when=f"+root cxxstd={cxxstd}") + + root_cmakelists_dir = "cpp" + + def cmake_args(self): + args = [ + self.define_from_variant("SUPPORT_ROOT", "root"), + self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"), + ] + + return args diff --git a/repos/spack_repo/builtin/packages/genfit/package.py b/repos/spack_repo/builtin/packages/genfit/package.py index e8135e0674b..bb597f5612b 100644 --- a/repos/spack_repo/builtin/packages/genfit/package.py +++ b/repos/spack_repo/builtin/packages/genfit/package.py @@ -28,13 +28,10 @@ class Genfit(CMakePackage): version("02-00-02", sha256="b415abec7466d7fd15de6c37cd970c07a6581fe303fdfa3a8bc9258ea1c19d7d") version("02-00-01", sha256="e5a3eabf1ab53178fbd40aff0a8071bf48bac558ba1b798769106ccf230c4120") version("02-00-00", sha256="0bfd5dd152ad0573daa4153a731945824e0ce266f844988b6a8bebafb7f2dacc") - # Untagged version from 2017-06-23 known to work with root@6.16.00 - version("b496504a", sha256="e1582b35782118ade08498adc03f3fda01979ff8bed61e0520edae46d7bfe477") depends_on("cxx", type="build") # generated depends_on("c", type="build") depends_on("root") - depends_on("root@:6.16.00", when="@b496504a") depends_on("eigen") depends_on("googletest") diff --git a/repos/spack_repo/builtin/packages/genie/package.py b/repos/spack_repo/builtin/packages/genie/package.py index 5e4cb41742b..07e9c0216f7 100644 --- a/repos/spack_repo/builtin/packages/genie/package.py +++ b/repos/spack_repo/builtin/packages/genie/package.py @@ -22,6 +22,7 @@ class Genie(Package): maintainers("davehadley") version("master", branch="master") + version("3.6.2", sha256="5770346d888bbac7a80872e7aa01953437ab867e335e39cc7412c9b83a0b4e2a") version("3.4.2", sha256="c5935aea86d2ba9897ab55bb581622c561575957d19e572691d3bc0833ed9512") version("3.0.6", sha256="ab56ea85d0c1d09029254365bfe75a1427effa717389753b9e0c1b6c2eaa5eaf") version("3.0.4", sha256="53f034618fef9f7f0e17d1c4ed72743e4bba590e824b795177a1a8a8486c861e") diff --git a/repos/spack_repo/builtin/packages/geode/package.py b/repos/spack_repo/builtin/packages/geode/package.py index 79f775a8683..0945409c285 100644 --- a/repos/spack_repo/builtin/packages/geode/package.py +++ b/repos/spack_repo/builtin/packages/geode/package.py @@ -24,13 +24,6 @@ class Geode(Package): version("1.15.1", sha256="2668970982d373ef42cff5076e7073b03e82c8e2fcd7757d5799b2506e265d57") version("1.14.3", sha256="5efb1c71db34ba3b7ce1004579f8b9b7a43eae30f42c37837d5abd68c6d778bd") version("1.13.8", sha256="b5fc105ce0a16aaf7ba341668e022d458b18d6d2c44705a8c79c42077c6d8229") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2022-37021 - version("1.9.2", sha256="4b8118114ef43166f6bf73af56b93aadbf9108fcab06d1fbbb8e27f7d559d7e0") - version("1.9.0", sha256="8794808ebc89bc855f0b989b32e91e890d446cfd058e123f6ccb9e12597c1c4f") - version("1.8.0", sha256="58edc41edac4eabd899322b73a24727eac41f6253274c2ce7d0a82227121ae3e") - version("1.7.0", sha256="91eec04420f46e949d32104479c4a4b5b34a4e5570dca7b98ca067a30d5a783d") - version("1.6.0", sha256="79e8d81d058b1c4edd5fb414ff30ac530f7913b978f5abc899c353fcb06e5ef3") depends_on("java", type="run") diff --git a/repos/spack_repo/builtin/packages/geoip/package.py b/repos/spack_repo/builtin/packages/geoip/package.py deleted file mode 100644 index 69e246dcb7f..00000000000 --- a/repos/spack_repo/builtin/packages/geoip/package.py +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage - -from spack.package import * - - -class Geoip(AutotoolsPackage): - """Library for country/city/organization to IP address - or hostname mapping. This package has been deprecated. Use geoip-api-c instead.""" - - homepage = "https://www.maxmind.com/app/c" - url = "https://github.com/maxmind/geoip-api-c/releases/download/v1.6.12/GeoIP-1.6.12.tar.gz" - - license("LGPL-2.1-or-later") - - with default_args(deprecated=True): - # Note: use geoip-api-c instead - version( - "1.6.12", sha256="1dfb748003c5e4b7fd56ba8c4cd786633d5d6f409547584f6910398389636f80" - ) - version( - "1.6.11", sha256="b0e5a92200b5ab540d118983f7b7191caf4faf1ae879c44afa3ff2a2abcdb0f5" - ) - version( - "1.6.10", sha256="cb44e0d0dbc45efe2e399e695864e58237ce00026fba8a74b31d85888c89c67a" - ) - - depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/geomodel/package.py b/repos/spack_repo/builtin/packages/geomodel/package.py index 7b469e21648..763f1791342 100644 --- a/repos/spack_repo/builtin/packages/geomodel/package.py +++ b/repos/spack_repo/builtin/packages/geomodel/package.py @@ -19,6 +19,19 @@ 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") + version("6.22.0", sha256="6e23db099c3c7603d13c13dfac1152db484a69c0b9b962ec0ab495ae3299f2cd") + version("6.21.0", sha256="44712cbe821eadfd74b187906686b52cf16d824c330d93a98d00f29c3e683314") + version("6.20.0", sha256="e8ecb860658d94a6582be4b607111d9b81f3c38c9e46b8d6f4aae88573b5b878") + version("6.19.0", sha256="d78e9035bd520c5aae007ee5806116ac0a9077b99927bd8810ced49295e1f44d") + version("6.18.0", sha256="c32a7e1946bc7710f873e0e64b977cd3aad49e480833c728592428fd6aab34e4") + version("6.17.0", sha256="61c9e68e41fae9dc697e90440bb668d364df952b1d53f034d2384e6720e8823c") + version("6.16.0", sha256="bdecb722f1e45a7fccab05ded30ac231d6362ece3e681a203f40a1ed2f40be10") + version("6.15.0", sha256="6e71a2b76972bd2940d035cdb96a8083a04b4ebe93ea95404b5aed39049c76da") version("6.14.0", sha256="b294f624145f922efd1da4016b79e698cabb0034cc6791841648d7845fd9fb15") version("6.13.0", sha256="8f1ebfe7fb502af078ed535410160becca2eb81286b94154b43c89873a3c45ad") version("6.12.0", sha256="4fa32672c6cb3d9b89ddf5e9566d0c283e5769768db6236883d72fecdd6207cd") @@ -84,7 +97,8 @@ class Geomodel(CMakePackage): depends_on("cmake@3.16:", type="build") depends_on("cmake@:3", when="@:6.10", type="build") - depends_on("eigen@3.2.9:") + depends_on("eigen@3.2.9:3", when="@:6.20") + depends_on("eigen@3.2.9:5", when="@6.21:") depends_on("nlohmann-json@3.6.1:") depends_on("sqlite@3.7.17:") depends_on("xerces-c@3.2.3:") @@ -99,9 +113,11 @@ class Geomodel(CMakePackage): depends_on("qmake") with when("^[virtuals=qmake] qt"): depends_on("qt +gui +opengl +sql") + # https://gitlab.cern.ch/GeoModelDev/GeoModel/-/merge_requests/567 + conflicts("@6.23:") with when("^[virtuals=qmake] qt-base"): depends_on("qt-base +gui +opengl +sql +widgets") - depends_on("qt-5compat") + depends_on("qt-5compat", when="@6.22:") depends_on("coin3d") depends_on("soqt") depends_on("gl") diff --git a/repos/spack_repo/builtin/packages/geopm_runtime/package.py b/repos/spack_repo/builtin/packages/geopm_runtime/package.py deleted file mode 100644 index 2dc145cc79d..00000000000 --- a/repos/spack_repo/builtin/packages/geopm_runtime/package.py +++ /dev/null @@ -1,169 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os - -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage - -from spack.package import * - - -class GeopmRuntime(AutotoolsPackage): - """The Global Extensible Open Power Manager (GEOPM) Runtime is designed to - enhance energy efficiency of applications through active hardware - configuration.""" - - homepage = "https://geopm.github.io" - git = "https://github.com/geopm/geopm.git" - url = "https://github.com/geopm/geopm/tarball/v3.1.0" - - maintainers("bgeltz", "cmcantalupo") - license("BSD-3-Clause") - tags = ["e4s"] - - version("develop", branch="dev", get_full_repo=True) - version("3.1.0", sha256="2d890cad906fd2008dc57f4e06537695d4a027e1dc1ed92feed4d81bb1a1449e") - version("3.0.1", sha256="32ba1948de58815ee055470dcdea64593d1113a6cad70ce00ab0286c127f8234") - - variant("debug", default=False, description="Enable debug") - variant("docs", default=False, when="@3.0.1", description="Create man pages with Sphinx") - variant("overhead", default=False, description="Track time spent in GEOPM API calls") - variant("beta", default=False, description="Enable beta features") - variant("mpi", default=True, description="Enable MPI dependent components") - variant("fortran", default=True, description="Build fortran interface") - variant("openmp", default=True, description="Build with OpenMP") - variant("ompt", default=True, description="Use OpenMP Tools Interface") - variant("gnu-ld", default=False, description="Assume C compiler uses gnu-ld") - variant("intel-mkl", default=True, description="Build with Intel MKL support") - variant( - "checkprogs", - default=False, - description='Build tests (use with "devbuild" or "install --keep-stage")', - ) - - conflicts("%gcc@:7.2", msg="Requires C++17 support") - conflicts("%clang@:4", msg="Requires C++17 support") - conflicts("%gcc", when="+ompt") - - conflicts("platform=darwin", msg="Darwin is not supported") - conflicts("platform=windows", msg="Windows is not supported") - - conflicts("target=aarch64:", msg="Only available on x86_64", when="@3.0.1") - conflicts("target=ppc64:", msg="Only available on x86_64", when="@3.0.1") - conflicts("target=ppc64le:", msg="Only available on x86_64", when="@3.0.1") - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated - - # Autotools dependencies - depends_on("automake", type="build") - depends_on("autoconf", type="build") - depends_on("libtool", type="build") - depends_on("file") - - with when("@3.0.1"): - # Docs dependencies - # Moved to python3-geopm-doc as of v3.1 - depends_on("doxygen", type="build", when="+docs") - depends_on("py-sphinx", type="build", when="+docs") - depends_on("py-sphinx-rtd-theme@1:", type="build", when="+docs") - depends_on("py-sphinxemoji@0.2.0:", type="build", when="+docs") - depends_on("py-sphinx-tabs@3.3.1:", type="build", when="+docs") - depends_on("py-pygments@2.13.0:", type="build", when="+docs") - - # Other Python dependencies - from scripts/setup.py - # Moved to python3-geopmdpy as of v3.1 - depends_on("python@3.6:3", type=("build", "run")) - depends_on("py-setuptools@53.0.0:", type="build") - depends_on("py-cffi@1.14.5:", type="run") - depends_on("py-natsort@8.2.0:", type="run") - depends_on("py-numpy@1.19.5:", type="run") - depends_on("py-pandas@1.1.5:", type="run") - depends_on("py-tables@3.7.0:", type="run") - depends_on("py-psutil@5.8.0:", type="run") - depends_on("py-pyyaml@6.0:", type="run") - depends_on("py-docutils@0.18:", type="run", when="+checkprogs") - - # Other dependencies - for ver in ["3.0.1", "3.1.0", "develop"]: - depends_on(f"geopm-service@{ver}", type=("build", "run"), when=f"@{ver}") - depends_on(f"py-geopmdpy@{ver}", type="run", when=f"@{ver}") - if ver != "3.0.1": # geopmpy integrated into autotools build until 3.1 - depends_on(f"py-geopmpy@{ver}", type="run", when=f"@{ver}") - depends_on("py-setuptools-scm@7.0.3:", when="@3.1:", type="build") - depends_on("bash-completion") - depends_on("unzip") - depends_on("mpi@2.2:", when="+mpi") - depends_on("libelf") - depends_on("numactl", type="run", when="+checkprogs") - depends_on("stress-ng", type="run", when="+checkprogs") - - # Intel dependencies - depends_on("intel-oneapi-mkl%oneapi", when="+intel-mkl") - - extends("python") - - @property - def configure_directory(self): - if self.version == Version("3.0.1"): - return "." - else: - return "libgeopm" - - @property - def install_targets(self): - target = ["install"] - if self.spec.satisfies("+checkprogs"): - target += ["checkprogs"] - return target - - def autoreconf(self, spec, prefix): - bash = which("bash") - with working_dir(self.configure_directory): - if not spec.version.isdevelop(): - if self.version == Version("3.0.1"): - version_file = "VERSION_OVERRIDE" - else: - version_file = "VERSION" - # Required to workaround missing VERSION files - # from GitHub generated source tarballs - with open(version_file, "w") as fd: - fd.write(f"{spec.version}") - bash("./autogen.sh") - - def configure_args(self): - - with when("@3.0.1"): - args = [ - "--with-bash-completion-dir=" - + join_path(self.spec.prefix, "share", "bash-completion", "completions") - ] - args += ["--disable-geopmd-local", f"--with-geopmd={self.spec['geopm-service'].prefix}"] - - args += self.enable_or_disable("debug") - args += self.enable_or_disable("docs") - args += self.enable_or_disable("overhead") - args += self.enable_or_disable("beta") - args += self.enable_or_disable("mpi") - args += self.enable_or_disable("fortran") - args += self.enable_or_disable("openmp") - args += self.enable_or_disable("ompt") - args += self.with_or_without("gnu-ld") - - return args - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - # Required to ensure libgeopm.so - # can be used with LD_PRELOAD - if os.path.isdir(self.prefix.lib64): - lib_dir = self.prefix.lib64 - else: - lib_dir = self.prefix.lib - env.prepend_path("LD_LIBRARY_PATH", lib_dir) - - if self.spec.satisfies("+checkprogs"): - env.set("GEOPM_SOURCE", self.stage.source_path) - env.prepend_path("PYTHONPATH", self.stage.source_path) - env.set("GEOPM_INSTALL", self.prefix) diff --git a/repos/spack_repo/builtin/packages/geopm_service/0001-Support-NVML-via-CUDA-installation.patch b/repos/spack_repo/builtin/packages/geopm_service/0001-Support-NVML-via-CUDA-installation.patch deleted file mode 100644 index 153e53809ae..00000000000 --- a/repos/spack_repo/builtin/packages/geopm_service/0001-Support-NVML-via-CUDA-installation.patch +++ /dev/null @@ -1,28 +0,0 @@ -From cea9ceba3996e58af24c614c91a3d8721f0d8406 Mon Sep 17 00:00:00 2001 -From: Brad Geltz -Date: Thu, 14 Dec 2023 16:35:02 -0800 -Subject: [PATCH] Support NVML via CUDA installation - -Signed-off-by: Brad Geltz ---- - configure.ac | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/service/configure.ac b/service/configure.ac -index f9eb56d50..e8b523006 100644 ---- a/service/configure.ac -+++ b/service/configure.ac -@@ -264,8 +264,8 @@ AC_ARG_WITH([nvml], [AS_HELP_STRING([--with-nvml=PATH], - [specify directory for installed nvml package.])]) - if test "x$with_nvml" != x; then - AM_CPPFLAGS="$AM_CPPFLAGS -I$with_nvml/include" -- LD_LIBRARY_PATH="$with_nvml/lib64:$with_nvml/lib:$LD_LIBRARY_PATH" -- AM_LDFLAGS="$AM_LDFLAGS -L$with_nvml/lib -L$with_nvml/lib64" -+ LD_LIBRARY_PATH="$with_nvml/lib64:$with_nvml/lib:$with_nvml/lib/stubs:$LD_LIBRARY_PATH" -+ AM_LDFLAGS="$AM_LDFLAGS -L$with_nvml/lib -L$with_nvml/lib64 -L$with_nvml/lib/stubs" - fi - - AC_ARG_WITH([dcgm], [AS_HELP_STRING([--with-dcgm=PATH], --- -2.26.2 - diff --git a/repos/spack_repo/builtin/packages/geopm_service/package.py b/repos/spack_repo/builtin/packages/geopm_service/package.py deleted file mode 100644 index fb6d593a4fd..00000000000 --- a/repos/spack_repo/builtin/packages/geopm_service/package.py +++ /dev/null @@ -1,165 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os - -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage - -from spack.package import * - - -class GeopmService(AutotoolsPackage): - """The Global Extensible Open Power Manager (GEOPM) Service provides a - user interface for accessing hardware telemetry and settings securely. - - Note: GEOPM interfaces with hardware using Model Specific Registers (MSRs). - For proper usage make sure MSRs are made available via the msr or - msr-safe kernel modules by your administrator.""" - - homepage = "https://geopm.github.io" - git = "https://github.com/geopm/geopm.git" - url = "https://github.com/geopm/geopm/tarball/v3.1.0" - - maintainers("bgeltz", "cmcantalupo") - license("BSD-3-Clause") - tags = ["e4s"] - - version("develop", branch="dev", get_full_repo=True) - version("3.1.0", sha256="2d890cad906fd2008dc57f4e06537695d4a027e1dc1ed92feed4d81bb1a1449e") - version("3.0.1", sha256="32ba1948de58815ee055470dcdea64593d1113a6cad70ce00ab0286c127f8234") - - variant("debug", default=False, description="Enable debug") - variant("docs", default=True, when="@3.0.1", description="Create man pages with Sphinx") - variant("systemd", default=True, description="Enable use of systemd/DBus") - variant("liburing", default=True, description="Enables the use of liburing for batch I/O") - variant( - "libcap", default=True, description="Enables the use of libcap to do capabilities checks" - ) - variant("gnu-ld", default=False, description="Assume C compiler uses gnu-ld") - - variant("level_zero", default=False, description="Enables the use of oneAPI Level Zero loader") - variant("nvml", default=False, description="Enable NVML support") - - variant( - "rawmsr", - default=True, - description="Enable direct use of standard msr device driver", - when="@develop", - ) - - conflicts("+nvml", when="+level_zero", msg="LevelZero and NVML support are mutually exclusive") - - conflicts("%gcc@:7.2", msg="Requires C++17 support") - conflicts("%clang@:4", msg="Requires C++17 support") - - conflicts("platform=darwin", msg="Darwin is not supported") - conflicts("platform=windows", msg="Windows is not supported") - - conflicts("target=aarch64:", msg="Only available on x86_64", when="@3.0.1") - conflicts("target=ppc64:", msg="Only available on x86_64", when="@3.0.1") - conflicts("target=ppc64le:", msg="Only available on x86_64", when="@3.0.1") - - patch("0001-Support-NVML-via-CUDA-installation.patch", when="+nvml") - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated - - # Autotools dependencies - depends_on("automake", type="build") - depends_on("autoconf", type="build") - depends_on("libtool", type="build") - depends_on("file") - - with when("@3.0.1"): - # Docs dependencies - # Moved to python3-geopm-doc as of v3.1 - depends_on("doxygen", type="build", when="+docs") - depends_on("py-docstring-parser@0.13.0:", type="build", when="+docs") - depends_on("py-sphinx", type="build", when="+docs") - depends_on("py-sphinx-rtd-theme@1:", type="build", when="+docs") - depends_on("py-sphinxemoji@0.2.0:", type="build", when="+docs") - depends_on("py-sphinx-tabs@3.3.1:", type="build", when="+docs") - depends_on("py-pygments@2.13.0:", type="build", when="+docs") - - # Other Python dependencies - from service/setup.py - # Moved to python3-geopmdpy as of v3.1 - depends_on("py-setuptools@53.0.0:", type="build") - depends_on("py-dasbus@1.6.0:", type=("build", "run")) - depends_on("py-psutil@5.8.0:", type=("build", "run")) - depends_on("py-jsonschema@3.2.0:", type=("build", "run")) - depends_on("py-pyyaml@6.0:", type=("build", "run")) - depends_on("py-cffi@1.14.5:", type="run") - - # Other dependencies - for ver in ["3.1.0", "develop"]: - depends_on(f"py-geopmdpy@{ver}", type="run", when=f"@{ver}") - depends_on("py-setuptools-scm@7.0.3:", when="@3.1:", type="build") - depends_on("bash-completion") - depends_on("unzip") - depends_on("systemd", when="+systemd") - depends_on("libcap", when="+libcap") - depends_on("liburing", when="+liburing") - depends_on("oneapi-level-zero", when="+level_zero") - depends_on("cuda", when="+nvml") - - extends("python") - - @property - def configure_directory(self): - if self.version == Version("3.0.1"): - return "service" - else: - return "libgeopmd" - - def autoreconf(self, spec, prefix): - bash = which("bash") - with working_dir(self.configure_directory): - if not spec.version.isdevelop(): - if self.version == Version("3.0.1"): - version_file = "VERSION_OVERRIDE" - else: - version_file = "VERSION" - # Required to workaround missing VERSION files - # from GitHub generated source tarballs - with open(version_file, "w") as fd: - fd.write(f"{spec.version}") - bash("./autogen.sh") - - def configure_args(self): - args = [ - "--with-bash-completion-dir=" - + join_path(self.spec.prefix, "share", "bash-completion", "completions"), - *self.enable_or_disable("debug"), - *self.enable_or_disable("docs"), - *self.enable_or_disable("systemd"), - *self.enable_or_disable("liburing"), - *self.with_or_without("liburing", activation_value="prefix"), - *self.enable_or_disable("libcap"), - *self.with_or_without("gnu-ld"), - *self.enable_or_disable("levelzero", variant="level_zero"), - *self.enable_or_disable("nvml"), - *self.enable_or_disable("rawmsr"), - ] - - if self.spec.satisfies("+nvml"): - args += [ - "--with-nvml=" - + join_path( - self.spec["cuda"].prefix, "targets", f"{self.spec.target.family}-linux" - ) - ] - - if self.spec.satisfies("@develop") and self.spec.target.family != "x86_64": - args.append("--disable-cpuid") - return args - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - # Required to ensure geopmdpy can load - # libgeopmd.so.2 via CFFI - if os.path.isdir(self.prefix.lib64): - lib_dir = self.prefix.lib64 - else: - lib_dir = self.prefix.lib - env.prepend_path("LD_LIBRARY_PATH", lib_dir) diff --git a/repos/spack_repo/builtin/packages/geos/geos_python3_config.patch b/repos/spack_repo/builtin/packages/geos/geos_python3_config.patch deleted file mode 100644 index 303c49d6cda..00000000000 --- a/repos/spack_repo/builtin/packages/geos/geos_python3_config.patch +++ /dev/null @@ -1,67 +0,0 @@ -diff -Naur spack-src/configure spack-src.patched/configure ---- spack-src/configure 2020-03-10 13:55:53.000000000 -0400 -+++ spack-src.patched/configure 2021-05-06 11:33:59.062284048 -0400 -@@ -19263,10 +19263,11 @@ - - - # Check for Python library path -+ PYTHON_MAJOR=`echo $PYTHON_VERSION | sed "s,\..*$,,"` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python library path" >&5 - $as_echo_n "checking for Python library path... " >&6; } - for i in "$base_python_path/lib/python$PYTHON_VERSION/config/" "$base_python_path/lib/python$PYTHON_VERSION/" "$base_python_path/lib/python/config/" "$base_python_path/lib/python/" "$base_python_path/" "$base_python_path/libs/" ; do -- python_path=`find $i -name libpython$PYTHON_VERSION.* -print 2> /dev/null | sed "1q"` -+ python_path=`find $i -name libpython$PYTHON_MAJOR.* -print 2> /dev/null | sed "1q"` - if test -n "$python_path" ; then - break - fi -@@ -19277,7 +19278,7 @@ - if test -z "$python_path" ; then - as_fn_error $? "cannot find Python library path" "$LINENO" 5 - fi -- PYTHON_LDFLAGS="-L$python_path -lpython$PYTHON_VERSION" -+ PYTHON_LDFLAGS="-L$python_path -lpython$PYTHON_MAJOR" - - # - python_site=`echo $base_python_path | sed "s/config/site-packages/"` -@@ -19290,7 +19291,7 @@ - $as_echo_n "checking python extra libraries... " >&6; } - PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ - conf = distutils.sysconfig.get_config_var; \ -- print (conf('LOCALMODLIBS') or '')+' '+(conf('LIBS') or '')" -+ print((conf('LOCALMODLIBS') or '')+' '+(conf('LIBS') or ''))" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LIBS" >&5 - $as_echo "$PYTHON_EXTRA_LIBS" >&6; }` - -diff -Naur spack-src/macros/ac_python_devel.m4 spack-src.patched/macros/ac_python_devel.m4 ---- spack-src/macros/ac_python_devel.m4 2017-09-06 09:48:30.000000000 -0400 -+++ spack-src.patched/macros/ac_python_devel.m4 2021-05-06 11:32:59.545478100 -0400 -@@ -43,9 +43,10 @@ - AC_SUBST([PYTHON_CPPFLAGS],[-I$python_path]) - - # Check for Python library path -+ PYTHON_MAJOR=`echo $PYTHON_VERSION | sed "s,\..*$,,"` - AC_MSG_CHECKING([for Python library path]) - for i in "$base_python_path/lib/python$PYTHON_VERSION/config/" "$base_python_path/lib/python$PYTHON_VERSION/" "$base_python_path/lib/python/config/" "$base_python_path/lib/python/" "$base_python_path/" "$base_python_path/libs/" ; do -- python_path=`find $i -name libpython$PYTHON_VERSION.* -print 2> /dev/null | sed "1q"` -+ python_path=`find $i -name libpython$PYTHON_MAJOR.* -print 2> /dev/null | sed "1q"` - if test -n "$python_path" ; then - break - fi -@@ -55,7 +56,7 @@ - if test -z "$python_path" ; then - AC_MSG_ERROR([cannot find Python library path]) - fi -- AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -lpython$PYTHON_VERSION"]) -+ AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -lpython$PYTHON_MAJOR"]) - # - python_site=`echo $base_python_path | sed "s/config/site-packages/"` - AC_SUBST([PYTHON_SITE_PKG],[$python_site]) -@@ -65,7 +66,7 @@ - AC_MSG_CHECKING(python extra libraries) - PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ - conf = distutils.sysconfig.get_config_var; \ -- print (conf('LOCALMODLIBS') or '')+' '+(conf('LIBS') or '')" -+ print((conf('LOCALMODLIBS') or '')+' '+(conf('LIBS') or ''))" - AC_MSG_RESULT($PYTHON_EXTRA_LIBS)` - AC_SUBST(PYTHON_EXTRA_LIBS) - ]) diff --git a/repos/spack_repo/builtin/packages/geos/package.py b/repos/spack_repo/builtin/packages/geos/package.py index 33bb9c60cd0..aaf7ee77c9f 100644 --- a/repos/spack_repo/builtin/packages/geos/package.py +++ b/repos/spack_repo/builtin/packages/geos/package.py @@ -23,6 +23,8 @@ class Geos(CMakePackage): license("LGPL-2.1-or-later") maintainers("adamjstewart") + version("3.14.1", sha256="3c20919cda9a505db07b5216baa980bacdaa0702da715b43f176fb07eff7e716") + version("3.14.0", sha256="fe85286b1977121894794b36a7464d05049361bedabf972e70d8f9bf1e3ce928") version("3.13.1", sha256="df2c50503295f325e7c8d7b783aca8ba4773919cde984193850cf9e361dfd28c") version("3.13.0", sha256="47ec83ff334d672b9e4426695f15da6e6368244214971fabf386ff8ef6df39e4") version("3.12.3", sha256="6155e5a570cc2e80a5e2617e0f5831af1ad2e2573d500538732e481357a9adcf") diff --git a/repos/spack_repo/builtin/packages/gettext/package.py b/repos/spack_repo/builtin/packages/gettext/package.py index 3898cd611d8..c7b51f10145 100644 --- a/repos/spack_repo/builtin/packages/gettext/package.py +++ b/repos/spack_repo/builtin/packages/gettext/package.py @@ -23,6 +23,8 @@ class Gettext(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later AND LGPL-2.1-or-later AND MIT") + version("1.0", sha256="71132a3fb71e68245b8f2ac4e9e97137d3e5c02f415636eb508ae607bc01add7") + version("0.26", sha256="d1fb86e260cfe7da6031f94d2e44c0da55903dbae0a2fa0fae78c91ae1b56f00") version("0.23.1", sha256="c1f97a72a7385b7e71dd07b5fea6cdaf12c9b88b564976b23bd8c11857af2970") version("0.22.5", sha256="fe10c37353213d78a5b83d48af231e005c4da84db5ce88037d88355938259640") version("0.22.4", sha256="29217f1816ee2e777fa9a01f9956a14139c0c23cc1b20368f06b2888e8a34116") @@ -121,6 +123,10 @@ def configure_args(self): "--without-cvs", ] + # Until we know why we need them, do not build D sources: + if spec.satisfies("@0.25:"): + config_args.append("--disable-d") + config_args.extend(self.enable_or_disable("shared")) if self.spec["iconv"].name == "libiconv": @@ -166,3 +172,10 @@ def libs(self): shared=True if not shared_variant else shared_variant.value, ) return libs + + def setup_dependent_build_environment( + self, env: EnvironmentModifications, dependent_spec: Spec + ) -> None: + # In addition to prefix/share/aclocal, newer versions of gettext also + # install m4 files into prefix/share/gettext/m4. + env.append_path("ACLOCAL_PATH", self.prefix.share.gettext.m4) diff --git a/repos/spack_repo/builtin/packages/gfan/package.py b/repos/spack_repo/builtin/packages/gfan/package.py new file mode 100644 index 00000000000..db3a2fad381 --- /dev/null +++ b/repos/spack_repo/builtin/packages/gfan/package.py @@ -0,0 +1,41 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.makefile import MakefilePackage + +from spack.package import * + + +class Gfan(MakefilePackage): + """Gfan computes Gröbner fans and tropical varieties of polynomial + ideals, with tools for universal Gröbner bases, tropical curves, + hypersurfaces, and related structures in tropical geometry.""" + + homepage = "https://users-math.au.dk/jensen/software/gfan/gfan.html" + url = "https://users-math.au.dk/jensen/software/gfan/gfan0.6.2.tar.gz" + + maintainers("d-torrance") + + license("GPL-2.0-or-later", checked_by="d-torrance") + + version("0.6.2", sha256="a674d5e5dc43634397de0d55dd5da3c32bd358d05f72b73a50e62c1a1686f10a") + + depends_on("cxx", type="build") + + depends_on("cddlib+gmp") + depends_on("gmp") + + patch( + "https://raw.githubusercontent.com/Macaulay2/M2/aa0a8e3/M2/libraries/gfan/patch-0.6.2", + sha256="52eb59458f14644c00fa3281a2d1cf26143a31dab32293a5c69f222ffce6c3b1", + when="@0.6.2", + ) + + def flag_handler(self, name: str, flags: List[str]): + if name == "cppflags": + flags.extend(["-DNOCDDPREFIX", f"-I{self.spec['cddlib'].prefix.include}/cddlib"]) + return (flags, None, None) + + @property + def install_targets(self): + return ["install", f"PREFIX={self.spec.prefix}"] diff --git a/repos/spack_repo/builtin/packages/gflags/package.py b/repos/spack_repo/builtin/packages/gflags/package.py index 3dc8b22f46d..114f871b045 100644 --- a/repos/spack_repo/builtin/packages/gflags/package.py +++ b/repos/spack_repo/builtin/packages/gflags/package.py @@ -27,4 +27,7 @@ class Gflags(CMakePackage): depends_on("cmake@2.8.12:", type="build") def cmake_args(self): - return ["-DBUILD_SHARED_LIBS=ON"] + return [ + self.define("BUILD_SHARED_LIBS", True), + self.define("REGISTER_INSTALL_PREFIX", False), + ] diff --git a/repos/spack_repo/builtin/packages/gftl/package.py b/repos/spack_repo/builtin/packages/gftl/package.py index 695b6ee89a7..9a2283a7a8e 100644 --- a/repos/spack_repo/builtin/packages/gftl/package.py +++ b/repos/spack_repo/builtin/packages/gftl/package.py @@ -37,9 +37,12 @@ class Gftl(CMakePackage): maintainers("mathomp4", "tclune") + license("Apache-2.0", checked_by="mathomp4") + version("develop", branch="develop") version("main", branch="main") + version("1.17.0", sha256="2a86047d329297c1c6147b1619d1412259a21d9c2188e229ebf6c4e73ec51546") version("1.16.0", sha256="c72061a955e79a2d2fd58ddacedb5dfdf3a4a36881c53fad167830d320dbf1a6") version("1.15.2", sha256="1d3b7057da7057995c13055ba1149ed53e80937423b74d0ab5f40e6b85b7e6aa") version("1.15.1", sha256="13b9e17b7ec5e9ba19d0ee3ad1957bfa2015055b654891c6bb0bbe68b7a040d7") diff --git a/repos/spack_repo/builtin/packages/gftl_shared/package.py b/repos/spack_repo/builtin/packages/gftl_shared/package.py index 8b82837c10e..e8462813f14 100644 --- a/repos/spack_repo/builtin/packages/gftl_shared/package.py +++ b/repos/spack_repo/builtin/packages/gftl_shared/package.py @@ -22,10 +22,11 @@ class GftlShared(CMakePackage): maintainers("mathomp4", "tclune") - license("Apache-2.0") + license("Apache-2.0", checked_by="mathomp4") version("main", branch="main") + version("1.12.0", sha256="38f0353c4d53d474db9d6b301223c2848ac19e5e8c83b136d4c03605ac4bd768") version("1.11.0", sha256="785f3ccae7a28a3060c2155d67754379991e60cde19b1b238f77ef68dc2ad022") version("1.10.0", sha256="42158fe75fa6bee336516c7531b4c6c4e7252dee2fed541eec740209a07ceafe") version("1.9.0", sha256="a3291ce61b512fe88628cc074b02363c2ba3081e7b453371089121988482dd6f") diff --git a/repos/spack_repo/builtin/packages/ggml/package.py b/repos/spack_repo/builtin/packages/ggml/package.py new file mode 100644 index 00000000000..72142fb1c6d --- /dev/null +++ b/repos/spack_repo/builtin/packages/ggml/package.py @@ -0,0 +1,87 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage + +from spack.package import * + + +class GGMLPackageBase(CMakePackage, CudaPackage, ROCmPackage): + variant("shared", default=True, description="build shared libraries") + variant("cpu", default=True, description="build CPU backend") + variant("blas", default=True, description="build BLAS backend") + variant("openmp", default=True, description="build OpenMP backend") + variant("cuda", default=False, description="build CUDA backend") + variant("rocm", default=False, description="build HIP backend") + variant("metal", default=True, description="build Metal backend", when="platform=darwin") + variant("rpc", default=False, description="build with RPC support") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("git", type="build") + + depends_on("blas", when="+blas") + depends_on("llvm-openmp", when="platform=darwin %apple-clang") + + depends_on("hipblas", when="+rocm") + depends_on("rocblas", when="+rocm") + + def cmake_args(self): + args = [ + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define_from_variant("GGML_CPU", "cpu"), + self.define_from_variant("GGML_BLAS", "blas"), + self.define_from_variant("GGML_OPENMP", "openmp"), + self.define_from_variant("GGML_CUDA", "cuda"), + self.define_from_variant("GGML_ROCM", "rocm"), + self.define_from_variant("GGML_METAL", "metal"), + self.define_from_variant("GGML_RPC", "rpc"), + ] + + if self.spec.satisfies("+blas"): + if self.spec.satisfies("%blas=openblas"): + blas_vendor = "OpenBLAS" + elif self.spec.satisfies("%blas=intel-oneapi-mkl"): + blas_vendor = "Intel" + elif self.spec.satisfies("%blas=veclibfort"): + blas_vendor = "Apple" + else: + blas_vendor = "Generic" + args.append(self.define("GGML_BLAS_VENDOR", blas_vendor)) + + if self.spec.satisfies("+cuda"): + args.append(self.define("CMAKE_CUDA_COMPILER", f"{self.spec['cuda'].prefix}/bin/nvcc")) + if not self.spec.satisfies("cuda_arch=none"): + archs = self.spec.variants["cuda_arch"].value + arch_str = ";".join(archs) + args.append(self.define("CMAKE_CUDA_ARCHITECTURES", arch_str)) + + if self.spec.satisfies("+rocm"): + args.append( + self.define( + "CMAKE_HIP_COMPILER", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++" + ) + ) + if not self.spec.satisfies("amdgpu_target=none"): + archs = self.spec.variants["amdgpu_target"].value + arch_str = ";".join(archs) + args.append(self.define("CMAKE_HIP_ARCHITECTURES", arch_str)) + return args + + +class Ggml(GGMLPackageBase): + """Tensor library for machine learning""" + + homepage = "https://github.com/ggml-org/ggml" + git = "https://github.com/ggml-org/ggml.git" + + maintainers("rbberger") + + license("MIT") + + version("master", branch="master") + version("0.9.4", tag="v0.9.4", commit="72632094336524a9c809e129e8b1c52154543a5a") diff --git a/repos/spack_repo/builtin/packages/gh/package.py b/repos/spack_repo/builtin/packages/gh/package.py index 573acd7082b..c10a70230b0 100644 --- a/repos/spack_repo/builtin/packages/gh/package.py +++ b/repos/spack_repo/builtin/packages/gh/package.py @@ -17,6 +17,11 @@ class Gh(GoPackage): license("MIT") + version("2.92.0", sha256="ad18928ce4e2695d7fc1adefa0f5e0496e570a430016cee4c22d7bf87e5d9c1d") + version("2.90.0", sha256="87a6a3b3df1155e9d253ec6ae273d9e018773498b7ce7570f896a7cb75b64e39") + version("2.89.0", sha256="bc9c11f75e4aeb7e1f0bd5f543a3edabb8958655025f8cdc3d9bbe14435a7441") + version("2.79.0", sha256="2408f3f5d69ea7efde1f174ee058ca011b8ab24e583178c6f090f3e91767bda4") + version("2.76.2", sha256="6aee5afebdabd33f4c5e8604a9b7fa55e5bbac2a5cd36101cc221c990320c8b3") version("2.74.2", sha256="58d383e75e1a6f3eb5e5694f232d1ed6f7f53681fda9c6a997e6e1be344edd94") version("2.74.1", sha256="ac894d0f16f78db34818c396aad542b1512a776b925a7639d5d5a30d205a103b") version("2.74.0", sha256="b13e60f114388cbc20ba410d57b43f262814dec7d3e37363accfd525c6885d3b") @@ -53,20 +58,23 @@ class Gh(GoPackage): conflicts("platform=darwin", when="@2.28.0") - depends_on("go@1.24.4:", type="build", when="@2.74.2:") - depends_on("go@1.23.0:", type="build", when="@2.66.0:") - depends_on("go@1.22.5:", type="build", when="@2.56.0:") - depends_on("go@1.22.0:", type="build", when="@2.47.0:") - depends_on("go@1.21.0:", type="build", when="@2.33.0:") - depends_on("go@1.19.0:", type="build", when="@2.21.0:") - depends_on("go@1.18.0:", type="build", when="@2.10.0:") - depends_on("go@1.16.0:", type="build") + depends_on("go@1.26:", type="build", when="@2.92.0:") + depends_on("go@1.26.1:", type="build", when="@2.89.0:") + depends_on("go@1.24:", type="build", when="@2.74.2:") + depends_on("go@1.23:", type="build", when="@2.66:") + depends_on("go@1.22.5:", type="build", when="@2.56:") + depends_on("go@1.22:", type="build", when="@2.47:") + depends_on("go@1.21:", type="build", when="@2.33:") + depends_on("go@1.19:", type="build", when="@2.21:") + 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 new file mode 100644 index 00000000000..d3ed780b41d --- /dev/null +++ b/repos/spack_repo/builtin/packages/ghex/package.py @@ -0,0 +1,106 @@ +# 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, generator +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage + +from spack.package import * + + +class Ghex(CMakePackage, CudaPackage, ROCmPackage): + """Generic exascale-ready library for halo-exchange operations on variety of + grids/meshes""" + + homepage = "https://ghex-org.github.io/GHEX" + url = "https://github.com/ghex-org/GHEX/archive/refs/tags/v0.0.0.tar.gz" + git = "https://github.com/ghex-org/GHEX.git" + + maintainers("boeschf", "msimberg") + + license("BSD-3-Clause", checked_by="msimberg") + + version("master", branch="master") + version("0.6.0", sha256="7a9ebeef0f7dcbb2fa44c529f52d2be6cc2bf8a1720d232343b3f5fd071a1e92") + version("0.5.0", sha256="b2324441c2210783a90e83439e0d5c8e0aa462a7797ebbc6e48a47dfcada4848") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + generator("ninja") + + depends_on("ninja", type="build") + + backends = ("mpi", "ucx", "libfabric") + variant( + "backend", default="mpi", description="Transport backend", values=backends, multi=False + ) + variant("xpmem", default=False, description="Use xpmem shared memory") + variant("python", default=True, description="Build Python bindings") + + depends_on("cmake@3.21:", type="build") + depends_on("googletest", type="test") + depends_on("mpi") + depends_on("boost") + depends_on("xpmem", when="+xpmem", type=("build", "run")) + + depends_on("gridtools") + depends_on("oomph") + for backend in backends: + depends_on(f"oomph backend={backend}", when=f"backend={backend}") + depends_on("oomph+cuda", when="+cuda") + depends_on("oomph+rocm", when="+rocm") + depends_on("oomph~rocm~cuda", when="~rocm~cuda") + + conflicts("+cuda +rocm", msg="CUDA and ROCm support are mutually exclusive") + conflicts( + "cuda_arch=none", when="+cuda", msg="CUDA support requires at least one architecture" + ) + conflicts( + "amdgpu_target=none", when="+rocm", msg="ROCm support requires at least one architecture" + ) + + with when("+python"): + extends("python") + depends_on("python@3.7:", type=("build", "run")) + depends_on("py-pip", type="build") + depends_on("py-pybind11", type="build", when="@:0.5") + depends_on("py-nanobind", type="build", when="@0.6:") + depends_on("py-mpi4py", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + + depends_on("py-pytest", when="+python", type="test") + + def cmake_args(self): + spec = self.spec + + args = [ + self.define("GHEX_USE_BUNDLED_LIBS", False), + self.define("GHEX_TRANSPORT_BACKEND", spec.variants["backend"].value.upper()), + self.define_from_variant("GHEX_USE_XPMEM", "xpmem"), + self.define_from_variant("GHEX_BUILD_PYTHON_BINDINGS", "python"), + self.define("GHEX_WITH_TESTING", self.run_tests), + ] + + if spec.satisfies("+python"): + args.append(self.define("GHEX_PYTHON_LIB_PATH", python_platlib)) + + if self.run_tests and spec.satisfies("^mpi=openmpi"): + args.append(self.define("MPIEXEC_PREFLAGS", "--oversubscribe")) + + if spec.satisfies("+cuda"): + 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", "NVIDIA")) + elif spec.satisfies("+rocm"): + arch_str = ";".join(spec.variants["amdgpu_target"].value) + args.append(self.define("CMAKE_HIP_ARCHITECTURES", arch_str)) + args.append(self.define("GHEX_USE_GPU", True)) + args.append(self.define("GHEX_GPU_TYPE", "AMD")) + else: + args.append(self.define("GHEX_USE_GPU", False)) + + return args diff --git a/repos/spack_repo/builtin/packages/ghostscript/package.py b/repos/spack_repo/builtin/packages/ghostscript/package.py index 9c43be6c250..10c0bcf1024 100644 --- a/repos/spack_repo/builtin/packages/ghostscript/package.py +++ b/repos/spack_repo/builtin/packages/ghostscript/package.py @@ -21,40 +21,8 @@ class Ghostscript(AutotoolsPackage): license("AGPL-3.0-or-later", checked_by="wdconinc") + version("10.06.0", sha256="5bd6da34794928cc7e616f288e32bd0be7f9a5ca2d3c206a0af2c19a4e3a318f") version("10.05.0", sha256="56e77833de683825c420d0af8cb90aa8ba7da71ea6fb5624290cbc1b53fe7942") - with default_args(deprecated=True): - # 10.05.0 fixes a few vulnerabilities, see - # https://ghostscript.readthedocs.io/en/gs10.05.0/News.html - version( - "10.04.0", sha256="c764dfbb7b13fc71a7a05c634e014f9bb1fb83b899fe39efc0b6c3522a9998b1" - ) - # https://nvd.nist.gov/vuln/detail/CVE-2024-46956 - version( - "10.03.1", sha256="31cd01682ad23a801cc3bbc222a55f07c4ea3e068bdfb447792d54db21a2e8ad" - ) - version( - "10.02.1", sha256="e429e4f5b01615a4f0f93a4128e8a1a4d932dff983b1774174c79c0630717ad9" - ) - version( - "10.01.2", sha256="a4cd61a07fec161bee35da0211a5e5cde8ff8a0aaf942fc0176715e499d21661" - ) - version( - "10.0.0", sha256="a57764d70caf85e2fc0b0f59b83b92e25775631714dcdb97cc6e0cea414bb5a3" - ) - version( - "9.56.1", sha256="1598b9a38659cce8448d42a73054b2f9cbfcc40a9b97eeec5f22d4d6cd1de8e6" - ) - version( - "9.54.0", sha256="0646bb97f6f4d10a763f4919c54fa28b4fbdd3dff8e7de3410431c81762cade0" - ) - version( - "9.53.3", sha256="6eaf422f26a81854a230b80fd18aaef7e8d94d661485bd2e97e695b9dce7bf7f" - ) - version("9.50", sha256="0f53e89fd647815828fc5171613e860e8535b68f7afbc91bf89aee886769ce89") - version("9.27", sha256="9760e8bdd07a08dbd445188a6557cb70e60ccb6a5601f7dbfba0d225e28ce285") - version("9.26", sha256="831fc019bd477f7cc2d481dc5395ebfa4a593a95eb2fe1eb231a97e450d7540d") - version("9.21", sha256="02bceadbc4dddeb6f2eec9c8b1623d945d355ca11b8b4df035332b217d58ce85") - version("9.18", sha256="5fc93079749a250be5404c465943850e3ed5ffbc0d5c07e10c7c5ee8afbbdb1b") # --enable-dynamic is deprecated, but kept as a variant since it used to be default # https://github.com/ArtifexSoftware/ghostpdl/commit/fe0f842da782b097ce13c31fccacce2374ed6d4b @@ -63,28 +31,29 @@ class Ghostscript(AutotoolsPackage): # https://www.ghostscript.com/ocr.html variant("tesseract", default=False, description="Use the Tesseract library for OCR") variant("gtk", default=True, description="Enable gtk+ device for screen output") + variant("krb5", default=True, description="Enable Kerberos 5 support") + variant("x11", default=True, description="Enable X11 support") + variant("dbus", default=True, description="Enable D-Bus support") depends_on("c", type="build") depends_on("pkgconfig", type="build") - depends_on("krb5", type="link") + depends_on("krb5", type="link", when="+krb5") depends_on("freetype@2.4.2:") + depends_on("fontconfig", type="link") depends_on("jpeg") depends_on("lcms") depends_on("libpng") depends_on("libtiff") depends_on("zlib-api") - depends_on("libx11") - depends_on("libxt") - depends_on("libxext") + depends_on("libx11", when="+x11") + depends_on("libxt", when="+x11") + depends_on("libxext", when="+x11") depends_on("gtkplus", type="link", when="+gtk") - depends_on("dbus", type="link") + depends_on("dbus", type="link", when="+dbus") depends_on("libiconv", type="link") - # https://www.ghostscript.com/doc/9.53.0/News.htm - conflicts("+tesseract", when="@:9.52", msg="Tesseract OCR engine added in 9.53.0") - # https://trac.macports.org/ticket/62832 conflicts( "+tesseract", when="platform=darwin", msg="Tesseract does not build correctly on macOS" @@ -92,13 +61,6 @@ class Ghostscript(AutotoolsPackage): patch("nogoto.patch", when="%fj@:4.1.0") - # Related bug report: https://bugs.ghostscript.com/show_bug.cgi?id=702985 - patch( - "https://github.com/ArtifexSoftware/ghostpdl/commit/41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch?full_index=1", - when="@:9.53.3^freetype@2.10.3:", - sha256="f3c2e56aa552a030c6db2923276ff2d140e39c511f92d9ef6c74a24776940af7", - ) - build_targets = ["default", "so"] install_targets = ["install", "soinstall"] @@ -114,11 +76,7 @@ def patch(self): Note that this approach is also recommended by Linux from Scratch: https://www.linuxfromscratch.org/blfs/view/svn/pst/gs.html """ - directories = ["freetype", "jpeg", "libpng", "zlib"] - if self.spec.satisfies("@:9.21"): - directories.append("lcms2") - else: - directories.append("lcms2mt") + directories = ["freetype", "jpeg", "lcms2mt", "libpng", "zlib"] for directory in directories: shutil.rmtree(directory) @@ -138,13 +96,11 @@ def configure_args(self): "--without-libiconv", ] - if self.spec.satisfies("@9.53:"): - args.extend(self.with_or_without("tesseract")) + args.extend(self.with_or_without("tesseract")) if self.spec.satisfies("+dynamic"): args.append("--enable-dynamic") - if self.spec.satisfies("@10.01.0:"): - args.append("--disable-hidden-visibility") + args.append("--disable-hidden-visibility") else: args.append("--disable-dynamic") diff --git a/repos/spack_repo/builtin/packages/ghostscript_fonts/package.py b/repos/spack_repo/builtin/packages/ghostscript_fonts/package.py index 53f6297b2d8..24a67cd8770 100644 --- a/repos/spack_repo/builtin/packages/ghostscript_fonts/package.py +++ b/repos/spack_repo/builtin/packages/ghostscript_fonts/package.py @@ -15,7 +15,7 @@ class GhostscriptFonts(Package, SourceforgePackage): homepage = "https://ghostscript.com/" sourceforge_mirror_path = ( - "gs-fonts/gs-fonts/8.11%20%28base%2035%2C%20GPL%29/" "ghostscript-fonts-std-8.11.tar.gz" + "gs-fonts/gs-fonts/8.11%20%28base%2035%2C%20GPL%29/ghostscript-fonts-std-8.11.tar.gz" ) license("GPL-2.0-or-later") diff --git a/repos/spack_repo/builtin/packages/gimp/package.py b/repos/spack_repo/builtin/packages/gimp/package.py index be8f806a654..6e771118d80 100644 --- a/repos/spack_repo/builtin/packages/gimp/package.py +++ b/repos/spack_repo/builtin/packages/gimp/package.py @@ -27,22 +27,6 @@ class Gimp(AutotoolsPackage): license("GPL-3.0-or-later") version("2.10.38", sha256="50a845eec11c8831fe8661707950f5b8446e35f30edfb9acf98f85c1133f856e") - with default_args(deprecated=True): - version( - "2.10.32", sha256="3f15c70554af5dcc1b46e6dc68f3d8f0a6cc9fe56b6d78ac08c0fd859ab89a25" - ) - version( - "2.10.30", sha256="88815daa76ed7d4277eeb353358bafa116cd2fcd2c861d95b95135c1d52b67dc" - ) - version( - "2.10.28", sha256="4f4dc22cff1ab5f026feaa2ab55e05775b3a11e198186b47bdab79cbfa078826" - ) - version( - "2.10.26", sha256="5ddbccf1db462a41df9a26197fcb0d24c7152753a36b3c8b8a9506b4136395f7" - ) - version( - "2.10.24", sha256="bd1bb762368c0dd3175cf05006812dd676949c3707e21f4e6857435cb435989e" - ) variant("doc", default=True, description="Build documentation with gtk-doc") variant("ghostscript", default=True, description="Build with ghostscript support") @@ -78,13 +62,12 @@ class Gimp(AutotoolsPackage): depends_on("glib") depends_on("glib-networking") depends_on("gtk-doc", when="+doc") - depends_on("gtkplus@2.24.32:2.24.100") + depends_on("gtkplus@2.24.32:") depends_on("intltool") depends_on("jpeg") depends_on("libexif") # depends_on("libheif+libde265", when="+libheif") depends_on("libjxl", when="+jpegxl") - depends_on("libjxl@:0.7", when="+jpegxl@:2.10.32") depends_on("libmng", when="+libmng") depends_on("libmypaint@1.4") depends_on("libpng") @@ -108,10 +91,6 @@ def url_for_version(self, version): url = "https://download.gimp.org/gimp/v{0}/gimp-{1}.tar.bz2" return url.format(version.up_to(2), version) - @when("@:2.10.32") - def patch(self): - filter_file("babl ", "babl-0.1 ", "configure") - def configure_args(self): args = [ "--disable-python", diff --git a/repos/spack_repo/builtin/packages/ginkgo/CAS-HIP-NVCC-1.2.0.patch b/repos/spack_repo/builtin/packages/ginkgo/CAS-HIP-NVCC-1.2.0.patch deleted file mode 100644 index d562b0315bb..00000000000 --- a/repos/spack_repo/builtin/packages/ginkgo/CAS-HIP-NVCC-1.2.0.patch +++ /dev/null @@ -1,10 +0,0 @@ -diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt -index 884e50bf6..40618311a 100644 ---- a/third_party/CMakeLists.txt -+++ b/third_party/CMakeLists.txt -@@ -1,4 +1,4 @@ --if(GINKGO_BUILD_CUDA) -+if(GINKGO_BUILD_CUDA OR (GINKGO_BUILD_HIP AND GINKGO_HIP_PLATFORM STREQUAL "nvcc")) - enable_language(CUDA) - if (GINKGO_USE_EXTERNAL_CAS) - include(CudaArchitectureSelector RESULT_VARIABLE GINKGO_CAS_FILE) diff --git a/repos/spack_repo/builtin/packages/ginkgo/package.py b/repos/spack_repo/builtin/packages/ginkgo/package.py index a8a2222ab06..2c711832fc6 100644 --- a/repos/spack_repo/builtin/packages/ginkgo/package.py +++ b/repos/spack_repo/builtin/packages/ginkgo/package.py @@ -30,6 +30,8 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage): version("develop", branch="develop") version("main", branch="main") version("master", branch="master", deprecated=True) + version("1.11.0", commit="4c77a5d826bd1597fd093f39c47688f8cc735690") # v1.11.0 + version("1.10.0", commit="d4e0e9f8c8eb36cc2044189834d82742b925f27e") # v1.10.0 version("1.9.0", commit="20cfd68795f58078898da9890baa311b46845a8b") # v1.9.0 version("1.8.0", commit="586b1754058d7a32d4bd1b650f9603484c2a8927") # v1.8.0 version("1.7.0", commit="49242ff89af1e695d7794f6d50ed9933024b66fe") # v1.7.0 @@ -58,6 +60,9 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage): variant( "half_precision", default=True, description="Enable half-precision support", when="@1.9.0:" ) + variant( + "bfloat16_precision", default=True, description="Enable bfloat16 support", when="@1.10.0:" + ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -74,6 +79,8 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage): depends_on("mpi@3.1:", when="+mpi") depends_on("rocthrust", when="+rocm") + # https://github.com/ginkgo-project/ginkgo/issues/1983 + depends_on("rocthrust@:7.1", when="@:1.11 +rocm") depends_on("hipsparse", when="+rocm") depends_on("hipblas", when="+rocm") depends_on("rocrand", when="+rocm") @@ -82,9 +89,9 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage): # ROCPRIM is not a direct dependency, but until we have reviewed our CMake # setup for rocthrust, this needs to also be added here. depends_on("rocprim", when="+rocm") + depends_on("hip", when="+rocm") depends_on("hwloc@2.1:", when="+hwloc") - # TODO: replace with the next PAPI version when available (>7.0.1.0) - depends_on("papi@master+sde", when="+sde") + depends_on("papi@7.1.0: +sde", when="+sde") depends_on("googletest", type="test") depends_on("numactl", type="test", when="+hwloc") @@ -117,6 +124,16 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage): # Probably fixed in NVIDIA/cccl#1528 which hopefully comes with the next CUDA release conflicts("^cuda@12.4", when="+cuda", msg="CCCL 2.3 bug causes build failure.") + # 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") + # https://github.com/ginkgo-project/ginkgo/pull/1524 patch("ginkgo-sycl-pr1524.patch", when="@1.7.0 +sycl %oneapi@2024:") @@ -129,6 +146,10 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage): # Add missing include statement patch("thrust-count-header.patch", when="+rocm @1.5.0") + # Revert the fix from github.com/ginkgo-project/ginkgo/pull/1954/changes + # This only affects the benchmark part of Ginkgo, which is not built by spack anyway + patch("remove_finding_thrust.patch", when="@1.11.0 +cuda") + # Correctly find rocthrust through CMake patch( "https://github.com/ginkgo-project/ginkgo/commit/369b12a5f4431577d60a61e67f2b0537b428abca.patch?full_index=1", @@ -136,6 +157,13 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage): when="+rocm @1.8.0", ) + # Removes undefined behavior in MPI call + patch( + "https://github.com/ginkgo-project/ginkgo/pull/1875.patch?full_index=1", + sha256="25b3b040e0836a65ed416607bed8bc62dd56cf6f2630e2950cc840b904134891", + when="@1.10.0", + ) + def setup_build_environment(self, env: EnvironmentModifications) -> None: spec = self.spec if spec.satisfies("+sycl"): @@ -173,6 +201,7 @@ def cmake_args(self): from_variant("GINKGO_WITH_PAPI_SDE", "sde"), from_variant("GINKGO_DEVEL_TOOLS", "develtools"), from_variant("GINKGO_ENABLE_HALF", "half_precision"), + from_variant("GINKGO_ENABLE_BFLOAT16", "bfloat16_precision"), # As we are not exposing benchmarks, examples, tests nor doc # as part of the installation, disable building them altogether. "-DGINKGO_BUILD_BENCHMARKS=OFF", @@ -206,6 +235,7 @@ def cmake_args(self): if archs != "none": arch_str = ";".join(archs) args.append("-DGINKGO_HIP_AMDGPU={0}".format(arch_str)) + args.append(self.define("CMAKE_HIP_ARCHITECTURES", arch_str)) if spec.satisfies("^hip@5.2.0:"): args.append( self.define("CMAKE_MODULE_PATH", self.spec["hip"].prefix.lib.cmake.hip) @@ -254,12 +284,12 @@ def _build_and_run_test(self, script): cmakelists.write(data) cmakelists.close() - cmake = which(self.spec["cmake"].prefix.bin.cmake) - make = which("make") + cmake = which(self.spec["cmake"].prefix.bin.cmake, required=True) + make = which("make", required=True) with working_dir(src_dir): cmake(*cmake_args) make() - exe = which(script) + exe = which(script, required=True) output = exe(output=str.split, error=str.split) assert "correctly detected and is complete" in output diff --git a/repos/spack_repo/builtin/packages/ginkgo/remove_finding_thrust.patch b/repos/spack_repo/builtin/packages/ginkgo/remove_finding_thrust.patch new file mode 100644 index 00000000000..8fe0208ca9b --- /dev/null +++ b/repos/spack_repo/builtin/packages/ginkgo/remove_finding_thrust.patch @@ -0,0 +1,58 @@ +Subject: [PATCH] remove_finding_thrust +--- +Index: cuda/CMakeLists.txt +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/cuda/CMakeLists.txt b/cuda/CMakeLists.txt +--- a/cuda/CMakeLists.txt (revision 4c77a5d826bd1597fd093f39c47688f8cc735690) ++++ b/cuda/CMakeLists.txt (date 1770048537701) +@@ -156,9 +156,6 @@ + CUDA::cufft + nvtx::nvtx + ) +-if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 13) +- target_link_libraries(ginkgo_cuda PRIVATE Thrust) +-endif() + # NVTX3 is header-only and requires dlopen/dlclose in static builds + target_link_libraries(ginkgo_cuda PUBLIC ginkgo_device ${CMAKE_DL_LIBS}) + +Index: benchmark/CMakeLists.txt +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/benchmark/CMakeLists.txt b/benchmark/CMakeLists.txt +--- a/benchmark/CMakeLists.txt (revision 4c77a5d826bd1597fd093f39c47688f8cc735690) ++++ b/benchmark/CMakeLists.txt (date 1770048537691) +@@ -40,9 +40,6 @@ + cusparse_linops_${type} + PRIVATE Ginkgo::ginkgo CUDA::cudart CUDA::cublas CUDA::cusparse + ) +- if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 13) +- target_link_libraries(cusparse_linops_${type} PRIVATE Thrust) +- endif() + ginkgo_compile_features(cusparse_linops_${type}) + endfunction() + +Index: cmake/cuda.cmake +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/cmake/cuda.cmake b/cmake/cuda.cmake +--- a/cmake/cuda.cmake (revision 4c77a5d826bd1597fd093f39c47688f8cc735690) ++++ b/cmake/cuda.cmake (date 1770048537709) +@@ -14,11 +14,6 @@ + + find_package(NVTX REQUIRED) + +-if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 13) +- find_package(Thrust REQUIRED) +- thrust_create_target(Thrust) +-endif() +- + if( + CMAKE_CUDA_HOST_COMPILER + AND NOT CMAKE_CXX_COMPILER STREQUAL CMAKE_CUDA_HOST_COMPILER diff --git a/repos/spack_repo/builtin/packages/git/package.py b/repos/spack_repo/builtin/packages/git/package.py index 3adadb095ec..02178f4d1ea 100644 --- a/repos/spack_repo/builtin/packages/git/package.py +++ b/repos/spack_repo/builtin/packages/git/package.py @@ -18,6 +18,8 @@ class Git(AutotoolsPackage): homepage = "https://git-scm.com" url = "https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.12.0.tar.gz" + git = "https://github.com/git/git.git" + maintainers("jennfshr") tags = ["build-tools"] @@ -26,9 +28,22 @@ class Git(AutotoolsPackage): license("GPL-2.0-only") + sanity_check_is_file = ["bin/git"] + # Every new git release comes with a corresponding manpage resource: # https://www.kernel.org/pub/software/scm/git/git-manpages-{version}.tar.gz # https://mirrors.edge.kernel.org/pub/software/scm/git/sha256sums.asc + version("master", branch="master") + version("2.53.0", sha256="429dc0f5fe5f14109930cdbbb588c5d6ef5b8528910f0d738040744bebdc6275") + version("2.52.0", sha256="6880cb1e737e26f81cf7db9957ab2b5bb2aa1490d87619480b860816e0c10c32") + version("2.51.2", sha256="9b44c2b337ec838e10aad42439d390963904449710d30c9e7e4ba449f45da98f") + version("2.51.1", sha256="b049d79e6a6cb3d81334bf689af6301f4d4c884191dfae65d2bb314a90384831") + version("2.51.0", sha256="3d531799d2cf2cac8e294ec6e3229e07bfca60dc6c783fe69e7712738bef7283") + version("2.50.1", sha256="522d1635f8b62b484b0ce24993818aad3cab8e11ebb57e196bda38a3140ea915") + version("2.50.0", sha256="920f8ca563d16a7d4fdecb44349cbffbc5cb814a8b36c96028463478197050da") + version("2.49.1", sha256="84a8383ffc77146133bc128a544450cf8ce5166cbea5056c98033d2f0c454794") + version("2.49.0", sha256="f8047f572f665bebeb637fd5f14678f31b3ca5d2ff9a18f20bd925bd48f75d3c") + version("2.48.2", sha256="e7f32466e7316431d472b014c344a80e68d92ba6b3aa069f64499bbe605e2383") version("2.48.1", sha256="51b4d03b1e311ba673591210f94f24a4c5781453e1eb188822e3d9cdc04c2212") version("2.47.2", sha256="a5d26bf7b01b2f0571b5a99300c256e556bd89b2a03088accf7b81bfa4f8f2fd") version("2.46.3", sha256="f7ae38b1d2c4724cd9088575da470229b3360903a17b531f2e86967d856ed7ed") @@ -39,107 +54,28 @@ class Git(AutotoolsPackage): version("2.41.3", sha256="2bf6589869f59b9c06e7b71ff8da3d7bb67b75549ca42c6f0ec81ab5e4570aa8") version("2.40.4", sha256="796993ef502481acbeb7caa22ffbf5f22daf8b273ab6d8dafc0ed178337d2659") - # Deprecated versions (https://groups.google.com/g/git-packagers/c/zxdH4LPix3U) - with default_args(deprecated=True): - version( - "2.47.0", sha256="a84a7917e0ab608312834413f01fc01edc7844f9f9002ba69f3b4f4bcb8d937a" - ) - version( - "2.46.2", sha256="65c5689fd44f1d09de7fd8c44de7fef074ddd69dda8b8503d44afb91495ecbce" - ) - version( - "2.45.2", sha256="98b26090ed667099a3691b93698d1e213e1ded73d36a2fde7e9125fce28ba234" - ) - version( - "2.44.2", sha256="f0655e81c5ecfeef7440aa4fcffa1c1a77eaccf764d6fe29579e9a06eac2cd04" - ) - version( - "2.43.5", sha256="324c3b85d668e6afe571b3502035848e4b349dead35188e2b8ab1b96c0cd45ff" - ) - version( - "2.42.3", sha256="f42a8e8f6c0add4516f9e4607554c8ad698161b7d721b82073fe315a59621961" - ) - version( - "2.41.2", sha256="481aa0a15aa37802880a6245b96c1570d7337c44700d5d888344cd6d43d85306" - ) - version( - "2.40.3", sha256="b3dc96b20edcdbe6bea7736ea55bb80babf683d126cc7f353ed4e3bc304cd7da" - ) - version( - "2.39.5", sha256="ca0ec03fb2696f552f37135a56a0242fa062bd350cb243dc4a15c86f1cafbc99" - ) - - # Deprecated versions (https://groups.google.com/g/git-packagers/c/x6-nKLV20aE) - with default_args(deprecated=True): - version( - "2.45.1", sha256="10acb581993061e616be9c5674469335922025a666318e0748cb8306079fef24" - ) - version( - "2.44.1", sha256="118214bb8d7ba971a62741416e757562b8f5451cefc087a407e91857897c92cc" - ) - version( - "2.43.4", sha256="bfd717dc31922f718232a25a929d199e26146df5e876fdf0ff90a7cc95fa06e2" - ) - version( - "2.42.2", sha256="3b24b712fa6e9a3da5b7d3e68b1854466905aadb93a43088a38816bcc3b9d043" - ) - version( - "2.41.1", sha256="06d2a681aa7f1bdb6e7f7101631407e7412faa534e1fa0eb6fdcb9975d867d31" - ) - version( - "2.40.2", sha256="1dcdfbb4eeb3ef2c2d9154f888d4a6f0cf19f19acad76f0d32e725e7bc147753" - ) - version( - "2.39.4", sha256="b895ed2b5d98fd3dcfde5807f16d5fb17c4f83044e7d08e597ae13de222f0d26" - ) - - # Deprecated versions (see https://github.blog/2024-05-14-securing-git-addressing-5-new-vulnerabilities/). - with default_args(deprecated=True): - version( - "2.42.0", sha256="34aedd54210d7216a55d642bbb4cfb22695b7610719a106bf0ddef4c82a8beed" - ) - version( - "2.41.0", sha256="c4a6a3dd1827895a80cbd824e14d94811796ae54037549e0da93f7b84cb45b9f" - ) - version( - "2.40.1", sha256="55511f10f3b1cdf5db4e0e3dea61819dfb67661b0507a5a2b061c70e4f87e14c" - ) - version( - "2.39.3", sha256="2f9aa93c548941cc5aff641cedc24add15b912ad8c9b36ff5a41b1a9dcad783e" - ) - depends_on("c", type="build") # generated for _version, _sha256_manpage in { + "2.53.0": "4954390466c125e82dce4a978dd1dadda13a916564d908cfdbd319f2e174a8ae", + "2.52.0": "14426e66b5a12c188e44f53f89282bc586b34ebc3a22fafa8eb80d0bbe370f10", + "2.51.2": "811aa98750c6d5e4c67848c9991f3d0cbe6cb109da5aefaf4a08c1d760533410", + "2.51.1": "7c4568091b95af3a52508be4e988da4fbe194f4f410024d6af3f1af3735e3b08", + "2.51.0": "c0e5d07f0051454df2cbdfac78e22e961e15ed5b09f10c6e58e315ca303492c2", + "2.50.1": "96088c583129c97ed9a2b01771b8b28ad79d9f2997b46786616df3e34b180ee4", + "2.50.0": "2e5485302a60c691e7ceb8fd994d80b04fcc9bd92daac050bf063f9a0974cfa6", + "2.49.1": "81ec532662884778c5c48ba024e539ea6f00b1d7ae60a7b83fd1b951bfbaae1a", + "2.49.0": "b561252841ead1e32d87dbec8f257399ea08f759c98df62c3bafa5a658f2f8ac", + "2.48.2": "b7c274da7097844fb87d6dd0f9a2073c801bd856141c8af5ae9e56ba9686d3b3", "2.48.1": "88742466926d3d682be5214470ae92b79a68796a9d171d393763a5767de5a581", "2.47.2": "8a36a81ee3a031acbfc831a0972d849aa8777926a6c49c76141b0e0e4744dcb3", - "2.47.0": "1a6f1e775dfe324a9b521793cbd2b3bba546442cc2ac2106d4df33dea9005038", "2.46.3": "5744ca6fd3ef39d0390400a47f2d7208668433af3d599cfbec7bb1c7140efe79", - "2.46.2": "4bc3774ee4597098977befa4ec30b0f2cbed3b59b756e7cbb59ce1738682d43a", "2.45.3": "eae81e0d8b00f19c47d7efecfa04642e06e777dd44e3e87ef2b192ba617cddaa", - "2.45.2": "48c1e2e3ecbb2ce9faa020a19fcdbc6ce64ea25692111b5930686bc0bb4f0e7f", - "2.45.1": "d9098fd93a3c0ef242814fc856a99886ce31dae2ba457afc416ba4e92af8f8f5", "2.44.3": "0f76464bbf8c0f5ccccfbacbd58d121376ff1e5147c4e0753b1ab1d578b9371e", - "2.44.2": "ee6a7238d5ede18fe21c0cc2131c7fbff1f871c25e2848892ee864d40baf7218", - "2.44.1": "8d80359e44cbcce256c1eb1389cb8e15ccfcd267fbb8df567d5ce19ce006eb42", "2.43.6": "ce364c74d475d321acc8b710558647ee8177876ee529456bd7f92cbb9f6961d8", - "2.43.5": "df3c3d0f0834959aa33005e6f8134c1e56ab01f34d1497ceb34b2dd8ec7d4de4", - "2.43.4": "99d3a0394a6093237123237fd6c0d3de1041d5ceaedc3bfc016807914275d3e2", "2.42.4": "6d207f38158d9f01c26feccb99af5a65ed3df20a18451649ce1ee718aabc331d", - "2.42.3": "3c8c55dcbc3f59560c63e6ced400f7251e9a00d876d365cb4fe9be6b3c3e3713", - "2.42.2": "2ddfa2187fdaf9ab2b27c0ab043e46793127c26c82a824ffe980f006be049286", - "2.42.0": "51643c53d70ce15dde83b6da2bad76ba0c7bbcd4f944d7c378f03a15b9f2e1de", "2.41.3": "4f373c1f3d35e8f22f0920928f3d9968aa99a2a5a2673a8ed9964b96c8ee10bf", - "2.41.2": "a758988c81478a942e1593ecf11568b962506bff1119061bad04bd4149b40c2c", - "2.41.1": "7093ef7dacfa8cdb3c4689d8bc1f06186d9b2420bec49087a3a6a4dee26ddcec", - "2.41.0": "7b77c646b36d33c5c0f62677a147142011093270d6fd628ca38c42d5301f3888", "2.40.4": "4a03ec30184aa27f5cf4123c532590be42d80e4b4797ad096f00b82109de1486", - "2.40.3": "fa9b837e1e161ebdbbbfde27a883a90fe5f603ce1618086a384bccda59c47de5", - "2.40.2": "2c71f3f3e4801176f97708f2093756bce672ef260c6d95c255046e6727b3a031", - "2.40.1": "6bbde434121bd0bf8aa574c60fd9a162388383679bd5ddd99921505149ffd4c2", - "2.39.5": "16aac22749bd55d845c422068702781a9c89e6cdde7de1c3aa1dd0fb41aeae39", - "2.39.4": "fedd01dd22a15b84bcbcad68c1b37113ba2c64381c19b6c9f3aa9b2818e126dc", - "2.39.3": "c8377b5a3ff497d7e6377363c270931496e982509ff27a1e46956d6637671642", }.items(): resource( name="git-manpages", @@ -150,7 +86,6 @@ class Git(AutotoolsPackage): ) variant("tcltk", default=False, description="Gitk: provide Tcl/Tk in the run environment") - variant("svn", default=False, description="Provide SVN Perl dependency in run environment") variant("perl", default=True, description="Do not use Perl scripts or libraries at all") variant("nls", default=True, description="Enable native language support") variant("man", default=True, description="Install manual pages") @@ -161,6 +96,7 @@ class Git(AutotoolsPackage): depends_on("libtool", type="build") depends_on("m4", type="build") depends_on("curl") + depends_on("curl@7.61.0:", when="@2.48:") depends_on("expat") depends_on("gettext", when="+nls") depends_on("iconv") @@ -168,13 +104,20 @@ class Git(AutotoolsPackage): depends_on("openssl") depends_on("pcre2") depends_on("perl", when="+perl") + depends_on("perl@5.26.0:", when="@2.48: +perl") depends_on("zlib-api") depends_on("openssh", type="run") - depends_on("perl-alien-svn", type="run", when="+svn") depends_on("tk", type=("build", "link"), when="+tcltk") depends_on("diffutils", type="build", when="@2.48:") - conflicts("+svn", when="~perl") + # v2.53.0 made a lot of improvements to the makefile, but caused a bug with the git + # osxcredentialhelper sub component + # https://lore.kernel.org/git/pull.2046.v4.git.1771551540816.gitgitgadget@gmail.com/ + patch( + "https://github.com/gitgitgadget/git/commit/3e9cc24e68ef311500406ef4d170be30e36e1231.patch?full_index=1", + sha256="67fa97142eed2ab2b0e9385b233254adb4bdf4dd42addf966d6ece3fd2a3c294", + when="@2.53.0 platform=darwin", + ) @classmethod def determine_version(cls, exe): @@ -196,6 +139,20 @@ def determine_variants(cls, exes, version_str): def patch(self): filter_file(r"^EXTLIBS =$", "#EXTLIBS =", "Makefile") + custom_lines = [] + + # https://github.com/git/git/commit/cdda67de0316ec29dfc1e290bb7f2154b7b95ee8 + if self.spec.satisfies("platform=linux"): + if self.spec.satisfies("@2.50:"): + if self.spec.satisfies("^glibc@:2.24"): + custom_lines.append("CSPRNG_METHOD=") + if self.spec.satisfies("^glibc@2.36:"): + custom_lines.append("CSPRNG_METHOD=arc4random") + + with open("config.mak", "w") as config_file: + for entry in custom_lines: + config_file.write(entry + "\n") + def setup_build_environment(self, env: EnvironmentModifications) -> None: # We use EXTLIBS rather than LDFLAGS so that git's Makefile # inserts the information into the proper place in the link commands @@ -233,24 +190,21 @@ def configure_args(self): spec = self.spec configure_args = [ - "--with-curl={0}".format(spec["curl"].prefix), - "--with-expat={0}".format(spec["expat"].prefix), - "--with-openssl={0}".format(spec["openssl"].prefix), - "--with-zlib={0}".format(spec["zlib-api"].prefix), + f"--with-curl={spec['curl'].prefix}", + f"--with-expat={spec['expat'].prefix}", + f"--with-openssl={spec['openssl'].prefix}", + f"--with-libpcre2={spec['pcre2'].prefix}", + f"--with-zlib={spec['zlib-api'].prefix}", ] if self.spec["iconv"].name == "libiconv": configure_args.append(f"--with-iconv={self.spec['iconv'].prefix}") if self.spec.satisfies("+perl"): - configure_args.append("--with-perl={0}".format(spec["perl"].command.path)) + configure_args.append(f"--with-perl={spec['perl'].command.path}") - if self.spec.satisfies("^pcre"): - configure_args.append("--with-libpcre={0}".format(spec["pcre"].prefix)) - if self.spec.satisfies("^pcre2"): - configure_args.append("--with-libpcre2={0}".format(spec["pcre2"].prefix)) if self.spec.satisfies("+tcltk"): - configure_args.append("--with-tcltk={0}".format(self.spec["tk"].prefix.bin.wish)) + configure_args.append(f"--with-tcltk={self.spec['tk'].prefix.bin.wish}") else: configure_args.append("--without-tcltk") @@ -322,22 +276,8 @@ def install_manpages(self): def install_subtree(self): if self.spec.satisfies("+subtree"): with working_dir("contrib/subtree"): - make_args = ["V=1", "prefix={}".format(self.prefix.bin)] + make_args = ["V=1", f"prefix={self.prefix.bin}"] make(" ".join(make_args)) - install_args = ["V=1", "prefix={}".format(self.prefix.bin), "install"] + install_args = ["V=1", f"prefix={self.prefix.bin}", "install"] make(" ".join(install_args)) install("git-subtree", self.prefix.bin) - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - # Setup run environment if using SVN extension - # Libs from perl-alien-svn and apr-util are required in - # LD_LIBRARY_PATH - # TODO: extend to other platforms - if self.spec.satisfies("+svn platform=linux"): - perl_svn = self.spec["perl-alien-svn"] - env.prepend_path( - "LD_LIBRARY_PATH", - join_path( - perl_svn.prefix, "lib", "perl5", "x86_64-linux-thread-multi", "Alien", "SVN" - ), - ) diff --git a/repos/spack_repo/builtin/packages/git_annex/package.py b/repos/spack_repo/builtin/packages/git_annex/package.py index 225a3fa4d1a..1eac4111cb5 100644 --- a/repos/spack_repo/builtin/packages/git_annex/package.py +++ b/repos/spack_repo/builtin/packages/git_annex/package.py @@ -35,7 +35,9 @@ class GitAnnex(Package): # - $ ls -l git-annex/linux/current/ # gives for example for amd64 # git-annex-standalone-amd64.tar.gz -> - # ../../../.git/annex/objects/KM/Ff/SHA256E-s51276461--a1cef631ef2cc0c977580eacaa1294d7617727df99214920ca6e8f3172bae03e.tar.gz/SHA256E-s51276461--a1cef631ef2cc0c977580eacaa1294d7617727df99214920ca6e8f3172bae03e.tar.gz + # ../../../.git/annex/objects/KM/Ff/ + # SHA256E-s51276461--a1cef631ef2cc0c977580eacaa1294d7617727df99214920ca6e8f3172bae03e.tar.gz/ + # SHA256E-s51276461--a1cef631ef2cc0c977580eacaa1294d7617727df99214920ca6e8f3172bae03e.tar.gz # - exchange "../../../" with "https://downloads.kitenet.net" and you have the link # the version to the link can be found in # git-annex/linux/current/git-annex-standalone-amd64.tar.gz.info @@ -130,4 +132,4 @@ def install(self, spec, prefix): git_files = ["git", "git-receive-pack", "git-shell", "git-upload-pack"] for i in git_files: os.remove(join_path(prefix.bin, i)) - os.symlink(join_path(spec["git"].prefix.bin, i), join_path(prefix.bin, i)) + symlink(join_path(spec["git"].prefix.bin, i), join_path(prefix.bin, i)) diff --git a/repos/spack_repo/builtin/packages/git_filter_repo/package.py b/repos/spack_repo/builtin/packages/git_filter_repo/package.py index 90323bf36f8..12933f253a4 100644 --- a/repos/spack_repo/builtin/packages/git_filter_repo/package.py +++ b/repos/spack_repo/builtin/packages/git_filter_repo/package.py @@ -18,10 +18,12 @@ class GitFilterRepo(Package): license("MIT") + version("2.47.0", sha256="4662cbe5918196a9f1b5b3e1211a32e61cff1812419c21df4f47c5439f09e902") version("2.38.0", sha256="db954f4cae9e47c6be3bd3161bc80540d44f5379cb9cf9df498f4e019f0a41a9") version("2.34.0", sha256="b1bf46af1e6a91a54056d0254e480803db8e40f631336c559a1a94d2a08389c4") depends_on("git@2.22.0:", type="run") + depends_on("python@3.6:", when="@2.47:", type="run") depends_on("python@3.5:", type="run") def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/givaro/package.py b/repos/spack_repo/builtin/packages/givaro/package.py new file mode 100644 index 00000000000..86acd173499 --- /dev/null +++ b/repos/spack_repo/builtin/packages/givaro/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.autotools import AutotoolsPackage + +from spack.package import * + + +class Givaro(AutotoolsPackage): + """Givaro is a C++ library focused on arithmetic and algebraic + computations. It supports finite fields, finite rings, + polynomials, algebraic number fields, and other algebraic + structures. Givaro is widely used as a building block in computer + algebra systems and research software for number theory, algebra, + and cryptography.""" + + homepage = "https://casys.gricad-pages.univ-grenoble-alpes.fr/givaro/" + url = "https://github.com/linbox-team/givaro/releases/download/v4.2.1/givaro-4.2.1.tar.gz" + + maintainers("d-torrance") + + license("CECILL-B", checked_by="d-torrance") + + version("4.2.2", sha256="53e9fb290deb0e20799c62d250d65c2226013d60b4cebe6b0b54c73000cb8fff") + version("4.2.1", sha256="feefb7445842ceb756f8bb13900d975b530551e488a2ae174bda7b636251de43") + + depends_on("cxx", type="build") + + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + depends_on("m4", type="build") + + depends_on("gmp") diff --git a/repos/spack_repo/builtin/packages/glab/package.py b/repos/spack_repo/builtin/packages/glab/package.py index e34a5c5ff30..efdbaedbf3e 100644 --- a/repos/spack_repo/builtin/packages/glab/package.py +++ b/repos/spack_repo/builtin/packages/glab/package.py @@ -17,6 +17,7 @@ class Glab(GoPackage): license("MIT") + version("1.92.1", sha256="5c45ee23929932249e6bf04c117a2257511db5459227bf24c6748ac063308160") version("1.61.0", sha256="dde7aa48adfa79c88fd76e362ebf16ebf1901b9aaed0c76b3eae0bf874709483") version("1.59.2", sha256="d14bdbcfc39410caa2c9011fad4929f4c123ff2a5f14f7b4b87d792b11a7cd19") version("1.58.0", sha256="6c41765ffbb8adbe210fe44f759db89cdafe4b98cdd692be2986b7454fc476c5") @@ -43,6 +44,7 @@ class Glab(GoPackage): version("1.20.0", sha256="6beb0186fa50d0dea3b05fcfe6e4bc1f9be0c07aa5fa15b37ca2047b16980412") with default_args(type="build"): + depends_on("go@1.26.1:", when="@1.92.1:") depends_on("go@1.24.4:", when="@1.60.1:") depends_on("go@1.24.3:", when="@1.58:") depends_on("go@1.24.2:", when="@1.56:") @@ -64,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/glew/package.py b/repos/spack_repo/builtin/packages/glew/package.py index b699f4a9f32..135da5bea6e 100644 --- a/repos/spack_repo/builtin/packages/glew/package.py +++ b/repos/spack_repo/builtin/packages/glew/package.py @@ -11,18 +11,21 @@ class Glew(CMakePackage): homepage = "https://glew.sourceforge.net/" url = "https://github.com/nigels-com/glew/releases/download/glew-2.1.0/glew-2.1.0.tgz" + git = "https://github.com/nigels-com/glew.git" root_cmakelists_dir = "build/cmake" maintainers("biddisco") license("GPL-2.0-or-later") + version("2.3.1", sha256="b64790f94b926acd7e8f84c5d6000a86cb43967bd1e688b03089079799c9e889") version("2.2.0", sha256="d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1") version("2.1.0", sha256="04de91e7e6763039bc11940095cd9c7f880baba82196a7765f727ac05a993c95") version("2.0.0", sha256="c572c30a4e64689c342ba1624130ac98936d7af90c3103f9ce12b8a0c5736764") depends_on("c", type="build") # generated + depends_on("cmake@3.16:", type="build", when="@2.3:") depends_on("gl") depends_on("libx11", when="^[virtuals=gl] glx") depends_on("xproto", when="^[virtuals=gl] glx") @@ -32,19 +35,25 @@ class Glew(CMakePackage): patch("remove-pkgconfig-glu-dep.patch") # Define APIENTRY in osmesa build if not defined, see # https://github.com/nigels-com/glew/pull/407 - patch("mesa-24.0.0-osmesa.patch", when="^mesa@24.0.0:") + patch("mesa-24.0.0-osmesa.patch", when="@:2.2 ^mesa@24.0.0:") def cmake_args(self): spec = self.spec + + # glew 2.3.0+ explicitly uses OPENGL_opengl_LIBRARY and OPENGL_glx_LIBRARY + # in CMakeLists.txt, so we must set them to empty string instead of "IGNORE" + # to avoid linker errors. Earlier versions don't use these variables directly. + ignore_value = "" if spec.satisfies("@2.3.0:") else "IGNORE" + args = [ self.define("BUILD_UTILS", True), self.define("GLEW_REGAL", False), self.define("GLEW_EGL", spec.satisfies("^[virtuals=gl] egl")), self.define("OPENGL_INCLUDE_DIR", spec["gl"].headers.directories[0]), self.define("OPENGL_gl_LIBRARY", spec["gl"].libs[0]), - self.define("OPENGL_opengl_LIBRARY", "IGNORE"), - self.define("OPENGL_glx_LIBRARY", "IGNORE"), - self.define("OPENGL_glu_LIBRARY", "IGNORE"), + self.define("OPENGL_opengl_LIBRARY", ignore_value), + self.define("OPENGL_glx_LIBRARY", ignore_value), + self.define("OPENGL_glu_LIBRARY", ignore_value), self.define("GLEW_OSMESA", spec.satisfies("^[virtuals=gl] osmesa")), ] if spec.satisfies("^[virtuals=gl] egl"): @@ -52,7 +61,7 @@ def cmake_args(self): self.define("OPENGL_egl_LIBRARY", [spec["egl"].libs[0], spec["egl"].libs[1]]) ) else: - args.append(self.define("OPENGL_egl_LIBRARY", "IGNORE")) + args.append(self.define("OPENGL_egl_LIBRARY", ignore_value)) return args diff --git a/repos/spack_repo/builtin/packages/glib/package.py b/repos/spack_repo/builtin/packages/glib/package.py index 1b0f32e596e..fe01739cd24 100644 --- a/repos/spack_repo/builtin/packages/glib/package.py +++ b/repos/spack_repo/builtin/packages/glib/package.py @@ -29,13 +29,14 @@ 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") version("2.82.5", sha256="05c2031f9bdf6b5aba7a06ca84f0b4aced28b19bf1b50c6ab25cc675277cbc3f") version("2.82.2", sha256="ab45f5a323048b1659ee0fbda5cecd94b099ab3e4b9abf26ae06aeb3e781fd63") - version( - "2.78.3", - sha256="609801dd373796e515972bf95fc0b2daa44545481ee2f465c4f204d224b2bc21", - preferred=True, - ) + version("2.80.5", sha256="9f23a9de803c695bbfde7e37d6626b18b9a83869689dd79019bf3ae66c3e6771") + version("2.78.3", sha256="609801dd373796e515972bf95fc0b2daa44545481ee2f465c4f204d224b2bc21") version("2.78.0", sha256="44eaab8b720877ce303c5540b657b126f12dc94972d9880b52959f43fb537b30") version("2.76.6", sha256="1136ae6987dcbb64e0be3197a80190520f7acab81e2bfb937dc85c11c8aa9f04") version("2.76.4", sha256="5a5a191c96836e166a7771f7ea6ca2b0069c603c7da3cba1cd38d1694a395dda") @@ -78,6 +79,12 @@ class Glib(MesonPackage): values=any_combination_of("dtrace", "systemtap"), description="Enable tracing support", ) + variant( + "introspection", + default=True, + description="Build with introspection support", + when="@2.79:", + ) depends_on("c", type="build") depends_on("cxx", type="build") @@ -89,7 +96,12 @@ class Glib(MesonPackage): depends_on("meson@0.52.0:", when="@2.71:") depends_on("meson@0.49.2:", when="@2.61.2:") depends_on("meson@0.48.0:") - depends_on("pkgconfig", type="build") + depends_on("pkgconfig") + depends_on("gobject-introspection@1.80:", when="+introspection") + # glib-bootstrap is needed in the PKG_CONFIG_PATH during build to + # configure gobject-instrospection. After that glib itself can be + # used as the glib implementation. + depends_on("glib-bootstrap", type="build", when="%gobject-introspection@1.80:") depends_on("libffi") depends_on("zlib-api") @@ -124,16 +136,24 @@ def patch(self): gio_tests.filter("'file' : {},", "") gio_tests.filter("'gdbus-peer'", "'file'") gio_tests.filter("'gdbus-address-get-session' : {},", "") - filter_file("'mkenums.py'( : {})*,*", "", "gobject/tests/meson.build") + filter_file("'mkenums.py' : {},", "", "gobject/tests/meson.build") filter_file("'fileutils' : {},", "", "glib/tests/meson.build") + def setup_run_environment(self, env: EnvironmentModifications) -> None: + env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0")) + + def setup_dependent_run_environment( + self, env: EnvironmentModifications, dependent_spec: Spec + ) -> None: + env.prepend_path("XDG_DATA_DIRS", self.prefix.share) + env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0")) + @property def libs(self): return find_libraries(["libglib*"], root=self.prefix, recursive=True) class MesonBuilder(meson.MesonBuilder): - @property def dtrace_copy_path(self): return join_path(self.stage.source_path, "dtrace-copy") @@ -169,7 +189,7 @@ def fix_dtrace_usr_bin_path(self): # '/usr/bin/python' in the shebang. To work around that # we copy the original script into a temporary folder, and # change the shebang to '/usr/bin/env python' - dtrace = which("dtrace").path + dtrace = which("dtrace", required=True).path dtrace_copy = join_path(self.dtrace_copy_path, "dtrace") with working_dir(self.dtrace_copy_path, create=True): @@ -203,8 +223,21 @@ def gettext_libdir(self): join_path(self.spec["glib"].libs.directories[0], "pkgconfig", "glib-2.0.pc"), ) + def setup_dependent_build_environment( + self, env: EnvironmentModifications, dependent_spec: Spec + ) -> None: + env.prepend_path("XDG_DATA_DIRS", self.prefix.share) + env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0")) + def meson_args(self): args = [] + + if self.spec.satisfies("@2.79:"): + if self.spec.satisfies("+introspection"): + args.append("-Dintrospection=enabled") + else: + args.append("-Dintrospection=disabled") + if self.spec.satisfies("@2.63.5:"): if self.spec.satisfies("+libmount"): args.append("-Dlibmount=enabled") @@ -230,9 +263,11 @@ def meson_args(self): args.append("-Dgtk_doc=false") args.append("-Dlibelf=enabled") + # https://github.com/GNOME/glib/commit/fa13c41da7fb03a710bfd8840cae4bb57cf14829 + if self.spec.satisfies("@2.65.1:"): + args.append("-Dsysprof=disabled") + # arguments for older versions - if self.spec.satisfies("@:2.72"): - args.append("-Dgettext=external") if self.spec.satisfies("@:2.74"): if self.spec["iconv"].name == "libiconv": if self.spec.satisfies("@2.61.0:"): diff --git a/repos/spack_repo/builtin/packages/glib_bootstrap/package.py b/repos/spack_repo/builtin/packages/glib_bootstrap/package.py new file mode 100644 index 00000000000..6c87baa028f --- /dev/null +++ b/repos/spack_repo/builtin/packages/glib_bootstrap/package.py @@ -0,0 +1,72 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems import meson +from spack_repo.builtin.build_systems.meson import MesonPackage + +from spack.package import * + + +class GlibBootstrap(MesonPackage): + """GLib provides the core application building blocks for libraries and applications written + in C. + + The GLib package contains a low-level libraries useful for providing data structure handling + for C, portability wrappers and interfaces for such runtime functionality as an event loop, + threads, dynamic loading and an object system. + """ + + homepage = "https://developer.gnome.org/glib/" + url = "https://download.gnome.org/sources/glib/2.86/glib-2.86.1.tar.xz" + list_url = "https://download.gnome.org/sources/glib" + list_depth = 1 + + maintainers("michaelkuhn") + + 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") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + with default_args(type="build"): + depends_on("meson@1.4:", when="@2.83:") + depends_on("pkgconfig", type="build") + + depends_on("libffi") + depends_on("zlib-api") + depends_on("gettext") + depends_on("perl", type=("build", "run")) + extends("python", type=("build", "run")) + depends_on("pcre2@10.34:") + depends_on("iconv") + + def url_for_version(self, version): + return f"https://download.gnome.org/sources/glib/{version.up_to(2)}/glib-{version}.tar.xz" + + @property + def libs(self): + return find_libraries(["libglib*"], root=self.prefix, recursive=True) + + +class MesonBuilder(meson.MesonBuilder): + def meson_args(self): + args = [ + "-Dselinux=disabled", + "-Dlibmount=disabled", + "-Dman-pages=disabled", + "-Ddtrace=disabled", + "-Dsystemtap=disabled", + "-Dsysprof=disabled", + "-Dtests=false", + "-Dnls=disabled", + "-Dlibelf=disabled", + "-Dintrospection=disabled", + ] + + return args diff --git a/repos/spack_repo/builtin/packages/glibc/package.py b/repos/spack_repo/builtin/packages/glibc/package.py index 7ae8f8ba502..bd86394d59a 100644 --- a/repos/spack_repo/builtin/packages/glibc/package.py +++ b/repos/spack_repo/builtin/packages/glibc/package.py @@ -29,6 +29,7 @@ class Glibc(AutotoolsPackage, GNUMirrorPackage): provides("iconv") version("master", branch="master") + version("2.43", sha256="e1e622cbd635019090fa23260e5d9ec219b12f97ae7ae02f033d4ae42cf2c004") version("2.39", sha256="97f84f3b7588cd54093a6f6389b0c1a81e70d99708d74963a2e3eab7c7dc942d") version("2.38", sha256="16e51e0455e288f03380b436e41d5927c60945abd86d0c9852b84be57dd6ed5e") version("2.37", sha256="e3a790c2f84eed5c5d569ed6172c253c607dd3962135437da413aa39aa4fd352") diff --git a/repos/spack_repo/builtin/packages/globus_common/package.py b/repos/spack_repo/builtin/packages/globus_common/package.py index 4690ed1a4a4..5487b85d961 100644 --- a/repos/spack_repo/builtin/packages/globus_common/package.py +++ b/repos/spack_repo/builtin/packages/globus_common/package.py @@ -24,6 +24,7 @@ class GlobusCommon(AutotoolsPackage): license("Apache-2.0", checked_by="wdconinc") + version("18.15", sha256="b47485bbf1118976f347dcfe539a2116725f6c202d438c4ef109d282340464d5") version("18.14", sha256="22368942a78e608d8fe6d9f7379abc628e2bd7af54a98c7d2bddc265d6f0ba45") depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/globus_ftp_client/package.py b/repos/spack_repo/builtin/packages/globus_ftp_client/package.py index e0971517acd..bdf71e2e9a7 100644 --- a/repos/spack_repo/builtin/packages/globus_ftp_client/package.py +++ b/repos/spack_repo/builtin/packages/globus_ftp_client/package.py @@ -24,6 +24,7 @@ class GlobusFtpClient(AutotoolsPackage): license("Apache-2.0", checked_by="wdconinc") + version("9.9", sha256="3ac4c2f9a50bed8e17b590c37363110c7b34bb44bb4dd356dca7cc6273c87db6") version("9.8", sha256="aa83229f70352e106fc29f28cef4fc8fdab37c794603e7b425f193d947e5926c") depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/globus_gass_transfer/package.py b/repos/spack_repo/builtin/packages/globus_gass_transfer/package.py index e0d90c69bae..78c8ceaf4f8 100644 --- a/repos/spack_repo/builtin/packages/globus_gass_transfer/package.py +++ b/repos/spack_repo/builtin/packages/globus_gass_transfer/package.py @@ -24,6 +24,7 @@ class GlobusGassTransfer(AutotoolsPackage): license("Apache-2.0", checked_by="wdconinc") + version("9.5", sha256="748f41997c7fd08166d9fda52d2418e89b2655a529ea079c8e3e5f2bfda564de") version("9.4", sha256="c5ad54d0e4959f7dc4131918ad9d40d49db2823b84aec8229127826a9601fbf9") depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/globus_gsi_credential/package.py b/repos/spack_repo/builtin/packages/globus_gsi_credential/package.py index bbfc43a8a53..e6937c8d189 100644 --- a/repos/spack_repo/builtin/packages/globus_gsi_credential/package.py +++ b/repos/spack_repo/builtin/packages/globus_gsi_credential/package.py @@ -24,6 +24,7 @@ class GlobusGsiCredential(AutotoolsPackage): license("Apache-2.0", checked_by="wdconinc") + version("8.5", sha256="abbcc12163299437bedad81de777b6cc36d3fb228fd37de414ca738f6ad14486") version("8.4", sha256="19e8fde9d4b335d60a021ac58c7559e5c34981e9332a8e574eda0b44ec160fa7") depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/globus_gsi_proxy_ssl/package.py b/repos/spack_repo/builtin/packages/globus_gsi_proxy_ssl/package.py index 5ec579d044f..641335c1b78 100644 --- a/repos/spack_repo/builtin/packages/globus_gsi_proxy_ssl/package.py +++ b/repos/spack_repo/builtin/packages/globus_gsi_proxy_ssl/package.py @@ -24,6 +24,7 @@ class GlobusGsiProxySsl(AutotoolsPackage): license("Apache-2.0", checked_by="wdconinc") + version("6.6", sha256="2b26087089993bf69d6827e9ce01c1afbc34d9ca8bf9d63cbcd55b5aae370f5b") version("6.5", sha256="4f20042d80a1fe28b40d9f7f4a1fc9f2790645e9b3f426a659b0c3f01eb04259") depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/globus_xio_popen_driver/package.py b/repos/spack_repo/builtin/packages/globus_xio_popen_driver/package.py index 7ff00b238d5..31dc22b5ca5 100644 --- a/repos/spack_repo/builtin/packages/globus_xio_popen_driver/package.py +++ b/repos/spack_repo/builtin/packages/globus_xio_popen_driver/package.py @@ -22,8 +22,6 @@ class GlobusXioPopenDriver(AutotoolsPackage): homepage = "https://github.com/gridcf/gct/blob/master/xio/drivers/popen/source" url = "https://repo.gridcf.org/gct6/sources/globus_xio_popen_driver-4.1.tar.gz" - maintainers("github_user1", "github_user2") - license("Apache-2.0", checked_by="wdconinc") version("4.1", sha256="6e9875c0d279511d8c476f71a46346712512284ade0623cd780c4e504908c110") diff --git a/repos/spack_repo/builtin/packages/gloo/package.py b/repos/spack_repo/builtin/packages/gloo/package.py index 4ab285ed0d1..501b3a2b857 100644 --- a/repos/spack_repo/builtin/packages/gloo/package.py +++ b/repos/spack_repo/builtin/packages/gloo/package.py @@ -17,7 +17,10 @@ class Gloo(CMakePackage, CudaPackage): license("BSD-3-Clause") version("master", branch="master") - version("2023-12-03", commit="5354032ea08eadd7fc4456477f7f7c6308818509") # py-torch@2.3: + version("2025-12-02", commit="3135b0b41b67dde590eef0938a0bf3d6238df5f7") # py-torch@2.11: + version("2025-08-21", commit="54cbae0d3a67fa890b4c3d9ee162b7860315e341") # py-torch@2.9:2.10 + version("2025-06-04", commit="c7b7b022c124d9643957d9bd55f57ac59fce8fa2") # py-torch@2.8 + version("2023-12-03", commit="5354032ea08eadd7fc4456477f7f7c6308818509") # py-torch@2.3:2.7 version("2023-05-19", commit="597accfd79f5b0f9d57b228dec088ca996686475") # py-torch@2.1:2.2 version("2023-01-17", commit="10909297fedab0a680799211a299203e53515032") # py-torch@2.0 version("2022-05-18", commit="5b143513263133af2b95547e97c07cebeb72bf72") # py-torch@1.13 @@ -61,6 +64,7 @@ class Gloo(CMakePackage, CudaPackage): def cmake_args(self): return [ + self.define_from_variant("GLOO_USE_TORCH_DTYPES", "cuda"), self.define_from_variant("USE_CUDA", "cuda"), self.define_from_variant("USE_LIBUV", "libuv"), ] diff --git a/repos/spack_repo/builtin/packages/glow/package.py b/repos/spack_repo/builtin/packages/glow/package.py index b8f7ec816a2..1ea50339eb9 100644 --- a/repos/spack_repo/builtin/packages/glow/package.py +++ b/repos/spack_repo/builtin/packages/glow/package.py @@ -23,6 +23,7 @@ class Glow(GoPackage): license("MIT") + version("2.1.1", sha256="f13e1d6be1ab4baf725a7fedc4cd240fc7e5c7276af2d92f199e590e1ef33967") version("1.5.1", sha256="b4ecf269b7c6447e19591b1d23f398ef2b38a6a75be68458390b42d3efc44b92") version("1.5.0", sha256="66f2a876eba15d71cfd08b56667fb07e1d49d383aa17d31696a39e794e23ba92") version("1.4.1", sha256="ff6dfd7568f0bac5144ffa3a429ed956dcbdb531487ef6e38ac61365322c9601") @@ -34,6 +35,17 @@ class Glow(GoPackage): version("1.0.2", sha256="2d98c1e780d750b83d8da094de4c2a999c324021906e6d813b7c75d0320243c8") version("1.0.1", sha256="78d163bea8e6c13fb343f1e3586e93e0392e5052c408a248cc2f0fcc7aa38618") + # Based on go.mod + depends_on("go@1.24.1:", when="@2.1.1:") + depends_on("go@1.23.6:", when="@2.1.0:") + depends_on("go@1.21.4:", when="@2.0.0:") + depends_on("go@1.16:", when="@1.5.0:") + depends_on("go@1.13:") + + @property + def ldflags(self): + return [f"-X main.Version={self.spec.version}"] + @run_after("install") def install_completions(self): glow = Executable(self.prefix.bin.glow) diff --git a/repos/spack_repo/builtin/packages/glusterfs/package.py b/repos/spack_repo/builtin/packages/glusterfs/package.py index 674920524ae..ef21e22f568 100644 --- a/repos/spack_repo/builtin/packages/glusterfs/package.py +++ b/repos/spack_repo/builtin/packages/glusterfs/package.py @@ -46,5 +46,5 @@ def url_for_version(self, version): return url.format(version.up_to(1), version) def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/glvis/package.py b/repos/spack_repo/builtin/packages/glvis/package.py index b04c8b424d5..92aae0ee516 100644 --- a/repos/spack_repo/builtin/packages/glvis/package.py +++ b/repos/spack_repo/builtin/packages/glvis/package.py @@ -45,6 +45,27 @@ class Glvis(MakefilePackage): version("develop", branch="master") + version( + "4.4", + sha256="d726e6f8d72b80a42aa1a75a55f9c8b07173231d865fc13d24290245aaaf9af7", + url="https://bit.ly/glvis-4-4", + extension=".tar.gz", + ) + + version( + "4.3.2", + sha256="d24f0b444a3dcdb99eada90852308b657e5a0bb8c6225545ca5628445aa47ad1", + url="https://bit.ly/glvis-4-3-2", + extension=".tar.gz", + ) + + version( + "4.3.0", + sha256="6e2f8bf5182990b49099cc3e9f238e9b69ff382fc94b11b7e5cc50680a3a061e", + url="https://bit.ly/glvis-4-3", + extension=".tar.gz", + ) + version( "4.2", sha256="314fb04040cd0a8128d6dac62ba67d7067c2c097364e5747182ee8371049b42a", @@ -106,6 +127,7 @@ class Glvis(MakefilePackage): depends_on("cxx", type="build") # generated depends_on("mfem@develop", when="@develop") + depends_on("mfem@4.7.0:", when="@4.3:4.4") depends_on("mfem@4.4.0:", when="@4.2") depends_on("mfem@4.3.0:", when="@4.1") depends_on("mfem@4.0.0:", when="@4.0") diff --git a/repos/spack_repo/builtin/packages/glx/package.py b/repos/spack_repo/builtin/packages/glx/package.py index 0caaf0646d9..bd161ea7d7a 100644 --- a/repos/spack_repo/builtin/packages/glx/package.py +++ b/repos/spack_repo/builtin/packages/glx/package.py @@ -14,9 +14,18 @@ class Glx(BundlePackage): version("1.4") + # GLX is only supported on Linux-like platforms + conflicts("platform=windows") + conflicts("platform=darwin") + depends_on("libglx") provides("gl@4.5") + def setup_dependent_build_environment( + self, env: EnvironmentModifications, dependent_spec: Spec + ): + env.prepend_path("OpenGL_ROOT", self.home) + @property def home(self): return self.spec["libglx"].home diff --git a/repos/spack_repo/builtin/packages/gmake/package.py b/repos/spack_repo/builtin/packages/gmake/package.py index e9acc826a9e..4db0ec5391a 100644 --- a/repos/spack_repo/builtin/packages/gmake/package.py +++ b/repos/spack_repo/builtin/packages/gmake/package.py @@ -27,11 +27,6 @@ class Gmake(Package, GNUMirrorPackage): version("4.3", sha256="e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19") version("4.2.1", sha256="e40b8f018c1da64edd1cc9a6fce5fa63b2e707e404e20cad91fbae337c98a5b7") version("4.1", sha256="9fc7a9783d3d2ea002aa1348f851875a2636116c433677453cc1d1acc3fc4d55") - version( - "4.0", - deprecated=True, - sha256="fc42139fb0d4b4291929788ebaf77e2a4de7eaca95e31f3634ef7d4932051f69", - ) variant("guile", default=False, description="Support GNU Guile for embedded scripting") @@ -95,12 +90,12 @@ def install(self, spec, prefix): Executable(build_sh)() os.mkdir(prefix.bin) install("make", prefix.bin) - os.symlink("make", prefix.bin.gmake) + symlink("make", prefix.bin.gmake) - def setup_dependent_package(self, module, dspec): + def setup_dependent_package(self, module, dependent_spec): module.make = MakeExecutable( self.spec.prefix.bin.make, - jobs=determine_number_of_jobs(parallel=dspec.package.parallel), + jobs=determine_number_of_jobs(parallel=dependent_spec.package.parallel), ) @property diff --git a/repos/spack_repo/builtin/packages/gmp/gcc15.patch b/repos/spack_repo/builtin/packages/gmp/gcc15.patch new file mode 100644 index 00000000000..5ac1c631228 --- /dev/null +++ b/repos/spack_repo/builtin/packages/gmp/gcc15.patch @@ -0,0 +1,12 @@ +diff -r e84c5c785bbe -r 8e7bb4ae7a18 acinclude.m4 +--- a/acinclude.m4 Wed Dec 04 18:26:27 2024 +0100 ++++ b/acinclude.m4 Wed Jan 29 22:38:02 2025 +0100 +@@ -609,7 +609,7 @@ + + #if defined (__GNUC__) && ! defined (__cplusplus) + typedef unsigned long long t1;typedef t1*t2; +-void g(){} ++void g(int,t1 const*,t1,t2,t1 const*,int){} + void h(){} + static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0) + {t1 c,x,r;int i;if(v0){c=1;for(i=1;i None: + if self.spec.satisfies("%gcc@7:"): + env.set("LDFLAGS", "-Wl,--copy-dt-needed-entries") + def configure_args(self): # see https://github.com/Homebrew/homebrew-core/blob/master/Formula/gnuplot.rb # and https://github.com/macports/macports-ports/blob/master/math/gnuplot/Portfile @@ -168,7 +172,4 @@ def configure_args(self): # TODO: --with-aquaterm depends_on('aquaterm') options.append("--without-aquaterm") - if spec.satisfies("%gcc@8:"): - os.environ["LDFLAGS"] = "-Wl,--copy-dt-needed-entries" - return options diff --git a/repos/spack_repo/builtin/packages/gnutls/package.py b/repos/spack_repo/builtin/packages/gnutls/package.py index 648502a49d9..62118c45a33 100644 --- a/repos/spack_repo/builtin/packages/gnutls/package.py +++ b/repos/spack_repo/builtin/packages/gnutls/package.py @@ -30,6 +30,8 @@ class Gnutls(AutotoolsPackage): # Version definitions version("master", branch="master") + version("3.8.12", sha256="a7b341421bfd459acf7a374ca4af3b9e06608dcd7bd792b2bf470bea012b8e51") + version("3.8.10", sha256="db7fab7cce791e7727ebbef2334301c821d79a550ec55c9ef096b610b03eb6b7") version("3.8.9", sha256="69e113d802d1670c4d5ac1b99040b1f2d5c7c05daec5003813c049b5184820ed") version("3.8.8", sha256="ac4f020e583880b51380ed226e59033244bc536cad2623f2e26f5afa2939d8fb") version("3.8.4", sha256="2bea4e154794f3f00180fa2a5c51fe8b005ac7a31cd58bd44cdfa7f36ebc3a9b") @@ -74,11 +76,17 @@ class Gnutls(AutotoolsPackage): # Required dependencies depends_on("gettext") - depends_on("libidn2@:2.0", when="@:3.5") + # backward compat depends_on("libidn2") + depends_on("libidn2@2.0:", when="@3.6.14:") + depends_on("nettle") + depends_on("nettle@3.10:", when="@3.8.11:") + depends_on("nettle@3.6:", when="@3.7:") depends_on("nettle@3.4.1:", when="@3.6.7.1:") - depends_on("nettle@:2.9", when="@3.3.9") - depends_on("nettle", when="@3.5:") + # forward compat + depends_on("libidn2@:2.0", when="@:3.5") + depends_on("nettle@:3", when="@:3.8") + depends_on("nettle@:2.9", when="@:3.3.9") # Optional dependencies depends_on("guile", when="+guile") diff --git a/repos/spack_repo/builtin/packages/go/misc-cgo-testcshared.patch b/repos/spack_repo/builtin/packages/go/misc-cgo-testcshared.patch deleted file mode 100644 index 17751df8165..00000000000 --- a/repos/spack_repo/builtin/packages/go/misc-cgo-testcshared.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- misc/cgo/testcshared/test.bash.orig 2016-11-19 00:00:11.917000000 +0000 -+++ misc/cgo/testcshared/test.bash 2016-11-19 00:00:22.081000000 +0000 -@@ -107,7 +107,7 @@ - - # test0: exported symbols in shared lib are accessible. - # TODO(iant): using _shared here shouldn't really be necessary. --$(go env CC) ${GOGCCFLAGS} -I ${installdir} -o testp main0.c libgo.$libext -+$(go env CC) ${GOGCCFLAGS} -I ${installdir} -o testp main0.c ./libgo.$libext - binpush testp - - output=$(run LD_LIBRARY_PATH=. ./testp) diff --git a/repos/spack_repo/builtin/packages/go/package.py b/repos/spack_repo/builtin/packages/go/package.py index 20670f411aa..87b5b193d51 100644 --- a/repos/spack_repo/builtin/packages/go/package.py +++ b/repos/spack_repo/builtin/packages/go/package.py @@ -2,7 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import os import re from spack_repo.builtin.build_systems.generic import Package @@ -36,16 +35,35 @@ class Go(Package): extendable = True executables = ["^go$"] unresolved_libraries = ["libtiff.so.*"] # go/src/debug/elf/testdata/libtiffxx.so_ + tags = ["build-tools"] maintainers("alecbcs") license("BSD-3-Clause") + version("1.26.2", sha256="2e91ebb6947a96e9436fb2b3926a8802efe63a6d375dffec4f82aa9dbd6fd43b") + version("1.26.1", sha256="3172293d04b209dc1144698e7ba13f0477f6ba8c5ffd0be66c20fdbc9785dfbb") + version("1.25.9", sha256="0ec9ef8ebcea097aac37decae9f09a7218b451cd96be7d6ed513d8e4bcf909cf") + version("1.25.8", sha256="e988d4a2446ac7fe3f6daa089a58e9936a52a381355adec1c8983230a8d6c59e") + version("1.25.7", sha256="178f2832820274b43e177d32f06a3ebb0129e427dd20a5e4c88df2c1763cf10a") + version("1.25.6", sha256="58cbf771e44d76de6f56d19e33b77d745a1e489340922875e46585b975c2b059") + version("1.25.5", sha256="22a5fd0a91efcd28a1b0537106b9959b2804b61f59c3758b51e8e5429c1a954f") + version("1.25.4", sha256="160043b7f17b6d60b50369436917fda8d5034640ba39ae2431c6b95a889cc98c") + version("1.25.3", sha256="a81a4ba593d0015e10c51e267de3ff07c7ac914dfca037d9517d029517097795") + version("1.25.2", sha256="3711140cfb87fce8f7a13f7cd860df041e6c12f7610f40cac6ec6fa2b65e96e4") + version("1.25.1", sha256="d010c109cee94d80efe681eab46bdea491ac906bf46583c32e9f0dbb0bd1a594") + 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.7", sha256="2a8f50db0f88803607c50d7ea8834dcb7bd483c6b428a91e360fdf8624b46464") + version("1.24.6", sha256="e1cb5582aab588668bc04c07de18688070f6b8c9b2aaf361f821e19bd47cfdbd") version("1.24.4", sha256="5a86a83a31f9fa81490b8c5420ac384fd3d95a3e71fba665c7b3f95d1dfef2b4") version("1.24.3", sha256="229c08b600b1446798109fae1f569228102c8473caba8104b6418cb5bc032878") version("1.24.2", sha256="9dc77ffadc16d837a1bf32d99c624cb4df0647cee7b119edd9e7b1bcc05f2e00") version("1.24.1", sha256="8244ebf46c65607db10222b5806aeb31c1fcf8979c1b6b12f60c677e9a3c0656") version("1.24.0", sha256="d14120614acb29d12bcab72bd689f257eb4be9e0b6f88a8fb7e41ac65f8556e5") + version("1.23.12", sha256="e1cce9379a24e895714a412c7ddd157d2614d9edbe83a84449b6e1840b4f1226") version("1.23.10", sha256="800a7ae1bff179a227b653a2f644517c800443b8b4abf3273af5e1cb7113de59") version("1.23.9", sha256="08f6419547563ed9e7037d12b9c8909677c72f75f62ef85887ed9dbf49b8d2dd") version("1.23.8", sha256="0ca1f1e37ea255e3ce283af3f4e628502fb444587da987a5bb96d6c6f15930d4") @@ -62,35 +80,15 @@ class Go(Package): version("1.22.6", sha256="9e48d99d519882579917d8189c17e98c373ce25abaebb98772e2927088992a51") version("1.22.4", sha256="fed720678e728a7ca30ba8d1ded1caafe27d16028fab0232b8ba8e22008fb784") - # Deprecated versions due to CVEs - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2024-24790 - # https://nvd.nist.gov/vuln/detail/CVE-2024-24789 - version( - "1.22.2", sha256="374ea82b289ec738e968267cac59c7d5ff180f9492250254784b2044e90df5a9" - ) - version( - "1.22.1", sha256="79c9b91d7f109515a25fc3ecdaad125d67e6bdb54f6d4d98580f46799caea321" - ) - version( - "1.22.0", sha256="4d196c3d41a0d6c1dfc64d04e3cc1f608b0c436bd87b7060ce3e23234e1f4d5c" - ) - version( - "1.21.6", sha256="124926a62e45f78daabbaedb9c011d97633186a33c238ffc1e25320c02046248" - ) - version( - "1.21.5", sha256="285cbbdf4b6e6e62ed58f370f3f6d8c30825d6e56c5853c66d3c23bcdb09db19" - ) - provides("golang") depends_on("bash", type="build") depends_on("grep", type="build") depends_on("sed", type="build") - depends_on("go-or-gccgo-bootstrap@1.22.6:", type="build", when="@1.24:") - depends_on("go-or-gccgo-bootstrap@1.20.6:", type="build", when="@1.22:") - depends_on("go-or-gccgo-bootstrap@1.17.13:", type="build", when="@1.20:") + depends_on("go-or-gccgo-bootstrap@1.24:", type="build", when="@1.26:") + depends_on("go-or-gccgo-bootstrap@1.22:", type="build", when="@1.24:") + depends_on("go-or-gccgo-bootstrap@1.20:", type="build", when="@1.22:") depends_on("go-or-gccgo-bootstrap", type="build") phases = ["build", "install"] @@ -116,14 +114,20 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: def build(self, spec, prefix): # Build script depend on bash - bash = which("bash") + bash = which("bash", required=True) with working_dir("src"): bash(f"{'all' if self.run_tests else 'make'}.bash") def install(self, spec, prefix): install_tree(".", prefix.go) - os.symlink(prefix.go.bin, prefix.bin) + symlink(prefix.go.bin, prefix.bin) + + def setup_dependent_build_environment(self, env, dependent_spec): + env.set("GO111MODULE", "on") + env.set("GOTOOLCHAIN", "local") + env.set("GOMAXPROCS", str(make_jobs)) + env.set("GOPATH", join_path(dependent_spec.package.stage.path, "go")) def setup_dependent_package(self, module, dependent_spec): """Called before go modules' build(), install() methods. diff --git a/repos/spack_repo/builtin/packages/go/time_test.patch b/repos/spack_repo/builtin/packages/go/time_test.patch deleted file mode 100644 index c3e0697c914..00000000000 --- a/repos/spack_repo/builtin/packages/go/time_test.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/src/time/time_test.go b/src/time/time_test.go -index 68236fd..2e47d08 100644 ---- a/src/time/time_test.go -+++ b/src/time/time_test.go -@@ -943,8 +943,11 @@ func TestLoadFixed(t *testing.T) { - // but Go and most other systems use "east is positive". - // So GMT+1 corresponds to -3600 in the Go zone, not +3600. - name, offset := Now().In(loc).Zone() -- if name != "GMT+1" || offset != -1*60*60 { -- t.Errorf("Now().In(loc).Zone() = %q, %d, want %q, %d", name, offset, "GMT+1", -1*60*60) -+ // The zone abbreviation is "-01" since tzdata-2016g, and "GMT+1" -+ // on earlier versions; we accept both. (Issue #17276). -+ if !(name == "GMT+1" || name == "-01") || offset != -1*60*60 { -+ t.Errorf("Now().In(loc).Zone() = %q, %d, want %q or %q, %d", -+ name, offset, "GMT+1", "-01", -1*60*60) - } - } - diff --git a/repos/spack_repo/builtin/packages/go_bootstrap/package.py b/repos/spack_repo/builtin/packages/go_bootstrap/package.py index 6811c3fb75c..da41abe29b0 100644 --- a/repos/spack_repo/builtin/packages/go_bootstrap/package.py +++ b/repos/spack_repo/builtin/packages/go_bootstrap/package.py @@ -33,6 +33,17 @@ class GoBootstrap(Package): # should update these binary releases on a yearly schedule as # bootstrapping requirements are modified by new releases of go. go_releases = { + "1.24.13": { + "darwin": { + "amd64": "6cc6549b06725220b342b740497ffd24e0ebdcef75781a77931ca199f46ad781", + "arm64": "f282d882c3353485e2fc6c634606d85caf36e855167d59b996dbeae19fa7629a", + }, + "linux": { + "amd64": "1fc94b57134d51669c72173ad5d49fd62afb0f1db9bf3f798fd98ee423f8d730", + "arm64": "74d97be1cc3a474129590c67ebf748a96e72d9f3a2b6fef3ed3275de591d49b3", + "ppc64le": "5f0dfab58ce15a84d824363c041246c76847a69d14f9ffac16bd5342299ecc14", + }, + }, "1.22.12": { "darwin": { "amd64": "e7bbe07e96f0bd3df04225090fe1e7852ed33af37c43a23e16edbbb3b90a5b7c", diff --git a/repos/spack_repo/builtin/packages/go_sh/package.py b/repos/spack_repo/builtin/packages/go_sh/package.py new file mode 100644 index 00000000000..e9b772b3225 --- /dev/null +++ b/repos/spack_repo/builtin/packages/go_sh/package.py @@ -0,0 +1,73 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.go import GoPackage + +from spack.package import * + + +class GoSh(GoPackage): + """A shell parser, formatter, and interpreter. Supports POSIX + Shell, Bash, Zsh and mksh.""" + + homepage = "https://github.com/mvdan/sh" + git = "https://github.com/mvdan/sh.git" + url = "https://github.com/mvdan/sh/archive/refs/tags/v3.12.0.tar.gz" + + maintainers("mcmehrtens") + license("BSD-3-Clause", checked_by="mcmehrtens") + + version( + "3.13.1", + tag="v3.13.1", + commit="2f3f5e36d9b0f8f14c998d50aa20a28832205ae8", + get_full_repo=True, + ) + version( + "3.13.0", + tag="v3.13.0", + commit="5c4d285c3e8fa3b85137b34cec5ce66b98d97bdc", + get_full_repo=True, + ) + version("3.12.0", sha256="ac15f42feeba55af29bd07698a881deebed1cd07e937effe140d9300e79d5ceb") + + depends_on("go@1.25:", type="build", when="@3.13:") + depends_on("go@1.23:", type="build", when="@3.12") + + variant("shfmt", default=True, description="Build and install shfmt") + variant("gosh", default=False, description="Build and install gosh") + conflicts("~shfmt~gosh", msg="One of shfmt or gosh must be specified") + + @property + def sanity_check_is_file(self): + files = [] + if self.spec.satisfies("+shfmt"): + files.append(join_path("bin", "shfmt")) + if self.spec.satisfies("+gosh"): + files.append(join_path("bin", "gosh")) + return files + + 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") + if spec.satisfies("+gosh"): + go("build", "-o", "gosh", *common_flags, "./cmd/gosh") + + def install(self, spec: Spec, prefix: Prefix) -> None: + """Install built binaries into prefix bin.""" + with working_dir(self.build_directory): + mkdirp(prefix.bin) + if spec.satisfies("+shfmt"): + install("shfmt", prefix.bin) + if spec.satisfies("+gosh"): + install("gosh", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/gobject_introspection/package.py b/repos/spack_repo/builtin/packages/gobject_introspection/package.py index 2960d44682f..39854524af2 100644 --- a/repos/spack_repo/builtin/packages/gobject_introspection/package.py +++ b/repos/spack_repo/builtin/packages/gobject_introspection/package.py @@ -1,7 +1,7 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems import autotools +from spack_repo.builtin.build_systems import autotools, meson from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack_repo.builtin.build_systems.meson import MesonPackage @@ -21,6 +21,10 @@ class GobjectIntrospection(MesonPackage, AutotoolsPackage): license("LGPL-2.0-or-later AND GPL-2.0-or-later AND MIT") + version("1.86.0", sha256="920d1a3fcedeadc32acff95c2e203b319039dd4b4a08dd1a2dfd283d19c0b9ae") + version("1.84.0", sha256="945b57da7ec262e5c266b89e091d14be800cc424277d82a02872b7d794a84779") + version("1.82.0", sha256="0f5a4c1908424bf26bc41e9361168c363685080fbdb87a196c891c8401ca2f09") + version("1.80.1", sha256="a1df7c424e15bda1ab639c00e9051b9adf5cea1a9e512f8a603b53cd199bc6d8") version("1.78.1", sha256="bd7babd99af7258e76819e45ba4a6bc399608fe762d83fde3cac033c50841bb4") version("1.76.1", sha256="196178bf64345501dcdc4d8469b36aa6fe80489354efe71cb7cb8ab82a3738bf") version("1.72.1", sha256="012e313186e3186cf0fde6decb57d970adf90e6b1fac5612fe69cbb5ba99543a") @@ -45,7 +49,9 @@ class GobjectIntrospection(MesonPackage, AutotoolsPackage): # Does not build with sed from Darwin depends_on("sed", when="platform=darwin", type="build") - depends_on("cairo+gobject") + depends_on("cairo+gobject", when="@:1.78") + depends_on("glib-bootstrap@2.82:", when="@1.82:") + depends_on("glib-bootstrap@2.80:", when="@1.80") depends_on("glib@2.78:", when="@1.78") depends_on("glib@2.76:", when="@1.76") depends_on("glib@2.58:", when="@1.60:1.72") @@ -57,10 +63,17 @@ class GobjectIntrospection(MesonPackage, AutotoolsPackage): # https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/283 depends_on("libffi@:3.3", when="@:1.72") # libffi 3.4 caused seg faults depends_on("python") + with when("^python@3.12:"): depends_on("py-setuptools@48:", type=("build", "run")) + # https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/490 - depends_on("py-setuptools@:73", type=("build", "run"), when="@:1.81.0") + # restores setuptools@74: support + patch( + "https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/490/commits.patch", + sha256="8085a21385aba2370ba0859f7d0c5f0a6d6a051ab3c0ea0b8881d567d6356299", + when="@1.66:1.81.0", + ) # This package creates several scripts from # toosl/g-ir-tool-template.in. In their original form these @@ -117,35 +130,49 @@ def url_for_version(self, version): url = "https://download.gnome.org/sources/gobject-introspection/{0}/gobject-introspection-{1}.tar.xz" return url.format(version.up_to(2), version) - def setup_build_environment(self, env: EnvironmentModifications) -> None: - # Only needed for sbang.patch above - if self.spec.satisfies("@:1.60"): - env.set("SPACK_SBANG", sbang_install_path()) - env.set("GI_SCANNER_DISABLE_CACHE", "1") - def setup_run_environment(self, env: EnvironmentModifications) -> None: env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0")) - def setup_dependent_build_environment( + def setup_dependent_run_environment( self, env: EnvironmentModifications, dependent_spec: Spec ) -> None: env.prepend_path("XDG_DATA_DIRS", self.prefix.share) env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0")) + + @property + def parallel(self): + return not self.spec.satisfies("%fj") + + +class BuildEnvironment: + def setup_build_environment(self, env: EnvironmentModifications) -> None: + # Only needed for sbang.patch above + if self.spec.satisfies("@:1.60"): + env.set("SPACK_SBANG", sbang_install_path()) env.set("GI_SCANNER_DISABLE_CACHE", "1") - def setup_dependent_run_environment( + def setup_dependent_build_environment( self, env: EnvironmentModifications, dependent_spec: Spec ) -> None: env.prepend_path("XDG_DATA_DIRS", self.prefix.share) env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0")) + env.set("GI_SCANNER_DISABLE_CACHE", "1") - @property - def parallel(self): - return not self.spec.satisfies("%fj") + +class AutotoolsBuilder(BuildEnvironment, autotools.AutotoolsBuilder): + @run_before("build") + def filter_file_to_avoid_overly_long_shebangs(self): + filter_file( + "#!/usr/bin/env @PYTHON@", "#!@PYTHON@", "tools/g-ir-tool-template.in", string=True + ) -class AutotoolsBuilderPackage(autotools.AutotoolsBuilder): +class MesonBuilder(BuildEnvironment, meson.MesonBuilder): @run_before("build") def filter_file_to_avoid_overly_long_shebangs(self): - # we need to filter this file to avoid an overly long hashbang line - filter_file("#!/usr/bin/env @PYTHON@", "#!@PYTHON@", "tools/g-ir-tool-template.in") + filter_file( + "#!@PYTHON_CMD@", + f"{sbang_shebang_line()}\n#!@PYTHON_CMD@", + "tools/g-ir-tool-template.in", + string=True, + ) diff --git a/repos/spack_repo/builtin/packages/gocryptfs/package.py b/repos/spack_repo/builtin/packages/gocryptfs/package.py index d20bc4d52f1..50eb905b052 100644 --- a/repos/spack_repo/builtin/packages/gocryptfs/package.py +++ b/repos/spack_repo/builtin/packages/gocryptfs/package.py @@ -19,6 +19,7 @@ class Gocryptfs(GoPackage): license("MIT", checked_by="snehring") + version("2.6.1", sha256="ebb45acdaa3e980f466a189fc1bce909822e3091383878d07b4eaa524689c250") version("2.5.1", sha256="b2e69d382caef598ffa1071b8d5f6e9df30d38fe2f9e9b0bee0d2e7436654f6d") version("2.4.0", sha256="26a93456588506f4078f192b70e7816b6a4042a14b748b28a50d2b6c9b10e2ec") diff --git a/repos/spack_repo/builtin/packages/goimports/package.py b/repos/spack_repo/builtin/packages/goimports/package.py index 524c7856f34..39acacc9f09 100644 --- a/repos/spack_repo/builtin/packages/goimports/package.py +++ b/repos/spack_repo/builtin/packages/goimports/package.py @@ -18,10 +18,13 @@ class Goimports(GoPackage): license("BSD-3-Clause", checked_by="alecbcs") + version("0.38.0", sha256="39c2467aa441a75a5c758100291846ec5304f8f76fea2e89043071b7c526e113") + version("0.37.0", sha256="6a88c95ce260c45fe9bdf49a3286db72e4fd3732a873676d551b777407345acf") version("0.33.0", sha256="22fd6c3146bf6cd38aa1b1a4f94ddf9e07ac5eb62f5db713ceb6d91df015cf4a") version("0.28.0", sha256="2c0aa55c1748ba406eec2db21bf44ebec62b1d5812b6ba350b5d421af1544adb") version("0.25.0", sha256="c536188f5db744371f526f3059960945ed580b3ee60553a4f01956251ab36d20") + depends_on("go@1.24:", type="build", when="@0.37:") depends_on("go@1.23:", type="build", when="@0.31:") depends_on("go@1.22:", type="build", when="@0.25:") diff --git a/repos/spack_repo/builtin/packages/gomplate/package.py b/repos/spack_repo/builtin/packages/gomplate/package.py new file mode 100644 index 00000000000..ff87d0c3a97 --- /dev/null +++ b/repos/spack_repo/builtin/packages/gomplate/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.go import GoPackage + +from spack.package import * + + +class Gomplate(GoPackage): + """ + gomplate is a template renderer which supports a growing list of datasources, + such as: JSON (including EJSON - encrypted JSON), YAML, AWS EC2 metadata, Hashicorp + Consul and Hashicorp Vault secrets. + """ + + homepage = "https://gomplate.ca/" + url = "https://github.com/hairyhenderson/gomplate/archive/refs/tags/v4.3.3.tar.gz" + + maintainers("ebagrenrut") + + license("MIT") + + version("4.3.3", sha256="d15c66230d72bdc13b0155f28d391c55cac45b7fdbe1ff4a73db8ee263471a3d") + + depends_on("go@1.24.5:", type="build") + + 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/google_cloud_cli/package.py b/repos/spack_repo/builtin/packages/google_cloud_cli/package.py index 808ad883f61..c501a7cbcc1 100644 --- a/repos/spack_repo/builtin/packages/google_cloud_cli/package.py +++ b/repos/spack_repo/builtin/packages/google_cloud_cli/package.py @@ -8,7 +8,25 @@ from spack.package import * +# https://console.cloud.google.com/storage/browser/cloud-sdk-release versions = { + "544.0.0": { + "darwin": { + "arm": "7c8517fc6cc5127cc1545038b13994284838f41cbbd3f073dc7f611dd24ccf22", + "x86": "6065746cef0cc2f8afc1e840b251cda97c40f1016a3a519c966157680012c3ce", + "x86_64": "9e78585f1a972d0f11e3591d4d15dd73ba8a381c7b1b1dea8b3835d6842f1b11", + }, + "linux": { + "arm": "0a2c93d98895c91bac2bb2628a0d88dfe537754adf047ec419020de46cc96e8b", + "x86": "33779e26bb13fce8bca09baa2f04441080636d3c03aea21b2c55bb1635f32172", + "x86_64": "d5663d4574b2b73bc6c848a70d8f315b6a17f14fb31952a069d6509308b9fb11", + }, + "windows": { + "arm": "ff6dc9052b8a33f8641dd09e3cd023357f1cb2b09ddeaa8fe07e8e36e683ec30", + "x86": "bdbfb60f4c8a3c20625cf9d57ed16c81c99a1a900c9868272ee7cc0cd1dc19f7", + "x86_64": "e07f324525338863029b7dde7d8a4edd9ad1d8c99f421b00309e9bccb645ec2f", + }, + }, "504.0.1": { "darwin": { "arm": "00485cda52bcb80ae796914304dff59ec609eafe1153474746c5ac3bc576a574", @@ -69,11 +87,11 @@ class GoogleCloudCli(Package): depends_on("c", type="build") - # RELEASE_NOTES + # https://docs.cloud.google.com/sdk/docs/release-notes with default_args(type=("build", "run")): - depends_on("python") - depends_on("python@:3.13", when="@500:") - depends_on("python@:3.12", when="@456:499") + depends_on("python@:3.14") + depends_on("python@:3.13", when="@:542") + depends_on("python@:3.12", when="@:499") depends_on("python@:3.10", when="@:455") def url_for_version(self, version): diff --git a/repos/spack_repo/builtin/packages/googletest/package.py b/repos/spack_repo/builtin/packages/googletest/package.py index 1a50cd54840..4944de50224 100644 --- a/repos/spack_repo/builtin/packages/googletest/package.py +++ b/repos/spack_repo/builtin/packages/googletest/package.py @@ -44,13 +44,14 @@ class Googletest(CMakePackage): variant( "cxxstd", - default="14", + default="17", values=("98", "11", "14", "17", "20"), multi=False, description="Use the specified C++ standard when building", ) conflicts("cxxstd=98", when="@1.9:") conflicts("cxxstd=11", when="@1.13:") + conflicts("cxxstd=14", when="@1.17:") def cmake_args(self): spec = self.spec diff --git a/repos/spack_repo/builtin/packages/gopls/package.py b/repos/spack_repo/builtin/packages/gopls/package.py index d34acda785a..2a839e394c6 100644 --- a/repos/spack_repo/builtin/packages/gopls/package.py +++ b/repos/spack_repo/builtin/packages/gopls/package.py @@ -17,10 +17,13 @@ class Gopls(GoPackage): license("BSD-3-Clause", checked_by="alecbcs") + version("0.20.0", sha256="1ff2a83be8be5a61b97fc5d72eab66f368ec20b52c513cc6656fc2e502e46f19") version("0.18.1", sha256="e49fae5dd964432a0ea1661868e858acd2aa66aaf7e1c1d646fb8506f15c8e52") version("0.17.1", sha256="5794ebd3302ef4fd08de284834b22810dbb17b7e08efeeaa9b96d5c94eb90d6d") version("0.16.2", sha256="be68b3159fcb8cde9ebb8b468f67f03531c58be2de33edbac69e5599f2d4a2c1") + depends_on("go@1.24.2:", type="build", when="@0.19:") + depends_on("go@1.23.4:", type="build", when="@0.18:") depends_on("go@1.23.1:", type="build", when="@0.17:") build_directory = "gopls" diff --git a/repos/spack_repo/builtin/packages/goshimmer/package.py b/repos/spack_repo/builtin/packages/goshimmer/package.py index 9ab64e60efe..38c81bda09e 100644 --- a/repos/spack_repo/builtin/packages/goshimmer/package.py +++ b/repos/spack_repo/builtin/packages/goshimmer/package.py @@ -35,11 +35,11 @@ def patch(self): filter_file("./snapshot.bin", self.snapbin, file + ".go") def install(self, spec, prefix): - which("go")("build", "-modcacherw", "-tags", "rocksdb,netgo") + which("go", required=True)("build", "-modcacherw", "-tags", "rocksdb,netgo") mkdir(prefix.bin) install("config.default.json", prefix.bin) install("goshimmer", prefix.bin) - which("wget")( + which("wget", required=True)( "-O", self.snapbin, "https://dbfiles-goshimmer.s3.eu-central-1.amazonaws.com/snapshots/nectar/snapshot-latest.bin", diff --git a/repos/spack_repo/builtin/packages/gperf/package.py b/repos/spack_repo/builtin/packages/gperf/package.py index 0ba1db71f88..5fc6b5470d5 100644 --- a/repos/spack_repo/builtin/packages/gperf/package.py +++ b/repos/spack_repo/builtin/packages/gperf/package.py @@ -21,6 +21,7 @@ class Gperf(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") + version("3.3", sha256="fd87e0aba7e43ae054837afd6cd4db03a3f2693deb3619085e6ed9d8d9604ad8") version("3.1", sha256="588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2") version("3.0.4", sha256="767112a204407e62dbc3106647cf839ed544f3cf5d0f0523aaa2508623aad63e") @@ -31,6 +32,20 @@ class Gperf(AutotoolsPackage, GNUMirrorPackage): # which is necessary to build gperf with recent compilers that default to # c++17 where using the register keyword results in a compile-time error. # This has no impact on correctness. - patch("register.patch") + patch("register.patch", when="@:3.1") + + def configure_args(self): + args = [] + + # Intel oneAPI icx incorrectly marks glibc's error() as noreturn, + # causing the gnulib gl_cv_func_working_error configure test to + # infinite-loop and consume unbounded memory. + # Fix available in icx 2026, but this workaround is needed for + # all versions of icx up to 2025. + # https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/All-versions-of-icx-miscompile-error-0-resulting-in-segfaults/m-p/1744208 + if self.spec.satisfies("%oneapi@:2025"): + args.append("gl_cv_func_working_error=yes") + + return args # NOTE: `make check` is known to fail tests diff --git a/repos/spack_repo/builtin/packages/gperftools/package.py b/repos/spack_repo/builtin/packages/gperftools/package.py index 0c22b5910ae..50b42dc49b2 100644 --- a/repos/spack_repo/builtin/packages/gperftools/package.py +++ b/repos/spack_repo/builtin/packages/gperftools/package.py @@ -24,6 +24,11 @@ class Gperftools(AutotoolsPackage, CMakePackage): build_system(conditional("cmake", when="@2.8.1:"), "autotools", default="cmake") + version("2.18.1", sha256="d18d919175f9e4d740ace6b52f0f4f91284160c454e91b36ffd6456282a02206") + version("2.18", sha256="a64c8873b63ebf631a5fc05af7f81f3ddf550c3bde37245e10311c7ae7a0c718") + version("2.17.2", sha256="bb172a54312f623b53d8b94cab040248c559decdb87574ed873e80b516e6e8eb") + version("2.17.1", sha256="7c0e083a4d321c25d8122ba35baa16e9dcd75ffd93e88002f6fb9664a19a9bda") + version("2.17", sha256="9661218de70c933dd8b296c6fd0f7c3993baa205ac5026961c1ed31716b79ae4") version("2.16", sha256="f12624af5c5987f2cc830ee534f754c3c5961eec08004c26a8b80de015cf056f") version("2.15", sha256="c69fef855628c81ef56f12e3c58f2b7ce1f326c0a1fe783e5cae0b88cbbe9a80") version("2.14", sha256="6b561baf304b53d0a25311bd2e29bc993bed76b7c562380949e7cb5e3846b299") diff --git a/repos/spack_repo/builtin/packages/gpi_2/package.py b/repos/spack_repo/builtin/packages/gpi_2/package.py index 4cef96c5ba6..46147f204c0 100644 --- a/repos/spack_repo/builtin/packages/gpi_2/package.py +++ b/repos/spack_repo/builtin/packages/gpi_2/package.py @@ -86,7 +86,7 @@ def set_specific_cflags(self, spec): # GPI-2 without autotools @when("@:1.3.3") def autoreconf(self, spec, prefix): - touch = which("touch") + touch = which("touch", required=True) touch("configure") pass @@ -120,7 +120,7 @@ def old_install(self, spec, prefix): config_args += ["--with-mpi={0}".format(spec["mpi"].prefix)] with working_dir(self.build_directory): - install = which("./install.sh") + install = which("./install.sh", required=True) install(*config_args) @when("@:1.3.3") @@ -130,7 +130,7 @@ def install(self, spec, prefix): # GPI-2 with autotools @when("@1.4.0:") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") def with_or_without_infiniband(self, activated): @@ -172,5 +172,5 @@ def set_machines(self): def check(self): self.set_machines() with working_dir("{0}/tests".format(self.build_directory)): - bash = which("bash") + bash = which("bash", required=True) bash("./runtests.sh") diff --git a/repos/spack_repo/builtin/packages/gpi_space/package.py b/repos/spack_repo/builtin/packages/gpi_space/package.py index c3bb8dee842..c002f702dfc 100644 --- a/repos/spack_repo/builtin/packages/gpi_space/package.py +++ b/repos/spack_repo/builtin/packages/gpi_space/package.py @@ -19,7 +19,7 @@ class GpiSpace(CMakePackage): """ homepage = "https://www.gpi-space.de" - url = "https://github.com/cc-hpc-itwm/gpispace/archive/refs/tags/v21.09.tar.gz" + url = "https://github.com/cc-hpc-itwm/gpispace/archive/refs/tags/v26.3.tar.gz" git = "https://github.com/cc-hpc-itwm/gpispace.git" maintainers("mzeyen1985", "tiberot", "rumach", "mrahn", "acastanedam") @@ -27,6 +27,7 @@ class GpiSpace(CMakePackage): license("GPL-3.0-or-later") version("latest", branch="main") + version("26.3", sha256="0f940bf8fd818998cdf5942cebdb187726f1f97ab8bf1a5b49192c503fdc7261") version("24.12", sha256="9cd97b8e41b4494c14a90afff6b801f9cf3b5811205e39c33a481ab09db59920") version("23.06", sha256="b4ee51f309c80c12a7842c0909041903608c6144535bc6faac3bbb8ff40e9213") version("22.12", sha256="1c0ab9a1ada9dbbc0f80fb04ddbbb24ff900231f709cb99aa63f0d135a3ad398") @@ -62,39 +63,60 @@ class GpiSpace(CMakePackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + variant( + "expression_shell", + default=False, + description="Enable the gspc-expression-shell utility", + when="@26.3:", + ) + depends_on("cmake@3.15.0:", type="build") depends_on("cmake@3.16.0:", type="build", when="@23.06:") depends_on("chrpath@0.13:", type=("build", "run")) depends_on("pkgconfig", type="build") depends_on( - "boost@1.62.0:1.63.0" - "+atomic +chrono +coroutine +context +date_time +filesystem +iostreams" - " +program_options +random +regex +serialization +test +timer cxxstd=14", - when="@:23.06", - ) - depends_on( - "boost@1.62.0:1.63.0" - "+atomic +chrono +coroutine +context +date_time +filesystem +iostreams" - " +program_options +random +regex +serialization +test +timer cxxstd=17", - when="@24.12:", + "boost+atomic +chrono +date_time +iostreams +program_options +random +regex +serialization" + "+test +timer" ) + depends_on("boost@1.62.0:1.63.0+coroutine +context cxxstd=17", when="@26.3:") + depends_on("boost@1.62.0:1.63.0+filesystem cxxstd=17", when="@24.12 ^openssl@1.1:") + depends_on("boost@1.61.0:1.63.0+filesystem cxxstd=17", when="@24.12 ^openssl@:1.0") + depends_on("boost@1.62.0:1.63.0+filesystem cxxstd=14", when="@:23.06 ^openssl@1.1:") + depends_on("boost@1.61.0:1.63.0+filesystem cxxstd=14", when="@:23.06 ^openssl@:1.0") depends_on("hwloc@1.10: +libudev ~libxml2 libs=static") - depends_on("libssh2") + depends_on("libssh2@1.7:", when="^openssl@:1.0") + depends_on("libssh2@1.8:", when="^openssl@1.1:") depends_on("openssl@0.9:") + depends_on("readline", when="@26.3:+expression_shell") with when("+iml"): depends_on("gpi-2@1.3.2:1.3.3 fabrics=infiniband", when="@:22.09 network=infiniband") depends_on("gpi-2@1.3.2:1.3.3 fabrics=ethernet", when="@:22.09 network=ethernet") - depends_on("gpi-2@1.5.0: fabrics=infiniband", when="@22.12: network=infiniband") - depends_on("gpi-2@1.5.0: fabrics=ethernet", when="@22.12: network=ethernet") + depends_on("gpi-2@1.5.0: fabrics=infiniband", when="@22.12:24.12 network=infiniband") + depends_on("gpi-2@1.5.0: fabrics=ethernet", when="@22.12:24.12 network=ethernet") + depends_on("gpi-2@1.6.0: fabrics=infiniband", when="@26.3: network=infiniband") + depends_on("gpi-2@1.6.0: fabrics=ethernet", when="@26.3: network=ethernet") depends_on("qt@5.9:5.15", when="+monitor") def cmake_args(self): - args = [ - self.define("FHG_ASSERT_MODE", False), - self.define("INSTALL_DO_NOT_BUNDLE", True), - self.define("BUILD_TESTING", False), - self.define_from_variant("GSPC_WITH_MONITOR_APP", "monitor"), - self.define_from_variant("GSPC_WITH_IML", "iml"), - ] + args = [] + + if self.spec.satisfies("@26.3:"): + args.append(self.define("GSPC_ASSERT_MODE", False)) + args.append(self.define("GSPC_INSTALL_DO_NOT_BUNDLE", True)) + args.append(self.define("GSPC_TEST", False)) + else: + args.append(self.define("FHG_ASSERT_MODE", False)) + args.append(self.define("INSTALL_DO_NOT_BUNDLE", True)) + args.append(self.define("BUILD_TESTING", False)) + + args.extend( + [ + self.define_from_variant("GSPC_WITH_MONITOR_APP", "monitor"), + self.define_from_variant("GSPC_WITH_IML", "iml"), + ] + ) + + if self.spec.satisfies("@26.3:"): + args.append(self.define_from_variant("GSPC_WITH_EXPRESSION_SHELL", "expression_shell")) return args diff --git a/repos/spack_repo/builtin/packages/gplates/package.py b/repos/spack_repo/builtin/packages/gplates/package.py index 800ec2e3334..880f5eab084 100644 --- a/repos/spack_repo/builtin/packages/gplates/package.py +++ b/repos/spack_repo/builtin/packages/gplates/package.py @@ -25,45 +25,19 @@ class Gplates(CMakePackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("cmake@3.5:", when="@2.3:", type="build") - depends_on("cmake@2.8.8:", when="@2.1", type="build") - depends_on("cmake@2.6.2:", when="@2.0", type="build") + depends_on("cmake@3.5:", type="build") depends_on("gl") depends_on("glu") depends_on("glew") - depends_on("python@2:3", when="@2.3:") - depends_on("boost@1.35:1.75+program_options+python+system+thread", when="@2.3:") - # Boost's Python library has a different name starting with 1.67. - depends_on("boost@1.34:1.66+program_options+python+system+thread", when="@2.1") - # There were changes to Boost's optional in 1.61 that make the build fail. - depends_on("boost@1.34:1.60+program_options+python+system+thread", when="@2.0") - depends_on("qt@5.6:+opengl", when="@2.3:") - # Qt 5 does not support (at least) the Q_WS_* constants. - depends_on("qt@4.4:4+opengl", when="@:2.1") - depends_on("gdal@1.3.2:", when="@2.3:") - depends_on("gdal@1.3.2:2", when="@2.1") - depends_on("cgal@4.7:", when="@2.3:") - depends_on("cgal@3.3.1:", when="@:2.1") - depends_on("proj@4.6:", when="@2.3:") - # Released before PROJ.6 was released, so assuming it's not supported - depends_on("proj@4.6:5", when="@:2.1") + depends_on("python@2:3") + depends_on("boost@1.35:1.75+program_options+python+system+thread") + depends_on("qt@5.6:+opengl") + depends_on("gdal@1.3.2:") + depends_on("cgal@4.7:") + depends_on("proj@4.6:") depends_on("qwt@6.0.1:") - depends_on("zlib-api", when="@2.3:") + depends_on("zlib-api") # When built in parallel, headers are not generated before they are used # (specifically, ViewportWindowUi.h) with the Makefiles generator. generator("ninja") - - @when("@:2.1") - def patch(self): - # GPlates overrides FindPythonLibs and finds the static library, which - # can not be used easily. Fall back to CMake's version, which finds - # the shared library instead. - force_remove("cmake/modules/FindPythonLibs.cmake") - - # GPlates only installs its binary for the Release configuration. - filter_file( - "CONFIGURATIONS release", - "CONFIGURATIONS Debug Release RelWithDebInfo MinSizeRel", - "src/CMakeLists.txt", - ) diff --git a/repos/spack_repo/builtin/packages/gprofng_gui/package.py b/repos/spack_repo/builtin/packages/gprofng_gui/package.py index 1054a267734..1b2f7f153e6 100644 --- a/repos/spack_repo/builtin/packages/gprofng_gui/package.py +++ b/repos/spack_repo/builtin/packages/gprofng_gui/package.py @@ -21,6 +21,7 @@ class GprofngGui(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-only", checked_by="pramodk") version("develop", branch="master") + version("2.2", sha256="4a974d82f9e360bc442a4b548f170f92f4845b28e17e831007542b7dddfd1d95") version("1.1", sha256="94fa577b856f00b89a2832771a265e221818b88dc0b36d8bca365efe6f08e12a") version("1.0", sha256="c88da8ec91a9943636301fb7da9d337fe0851d874f8f7a4d2169bd859ee72dbc") diff --git a/repos/spack_repo/builtin/packages/gptune/gptunev5-autotune.patch b/repos/spack_repo/builtin/packages/gptune/gptunev5-autotune.patch new file mode 100644 index 00000000000..8a9815b4200 --- /dev/null +++ b/repos/spack_repo/builtin/packages/gptune/gptunev5-autotune.patch @@ -0,0 +1,28 @@ +--- a/autotune/problem.py ++++ b/autotune/problem.py +@@ -12,6 +12,7 @@ class TuningProblem: + objective (Callable): a function wich returns a single scalar or a tuple of scalar values. + constraints (str, Callable, optional): if str then it is ... if a Callable then it is .... Defaults to None. + models (...): analytical models. Defaults to None. ++ input_var (...): a function to define the variance per tuning parameter value. Defaults to None. + name (str, optional): A name corresponding to the TuningProblem. Defaults to None. + constants (Dict): A dictionary defining global constants. Defaults to None. + +@@ -46,6 +47,7 @@ class TuningProblem: + objective: Callable, + constraints=None, + models=None, ++ input_var=None, + name=None, + constants=None, + **kwargs): +@@ -57,4 +59,8 @@ class TuningProblem: + self.objective = objective + self.constraints = constraints + self.models = models ++ self.input_var = input_var + self.constants = constants ++ ++ def update_input_space(self, input_space): ++ self.input_space = input_space + diff --git a/repos/spack_repo/builtin/packages/gptune/gptunev5-skopt.patch b/repos/spack_repo/builtin/packages/gptune/gptunev5-skopt.patch new file mode 100644 index 00000000000..6dddb2a91a0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/gptune/gptunev5-skopt.patch @@ -0,0 +1,64 @@ +--- skopt/space/space.py.orig 2025-12-12 09:26:36 ++++ skopt/space/space.py 2025-12-12 09:26:55 +@@ -250,7 +250,7 @@ + + """ + def __init__(self, low, high, prior="uniform", base=10, transform=None, +- name=None, dtype=float): ++ name=None, dtype=float, optimize=True): + if high <= low: + raise ValueError("the lower bound {} has to be less than the" + " upper bound {}".format(low, high)) +@@ -267,6 +267,7 @@ + self._rvs = None + self.transformer = None + self.transform_ = transform ++ self.optimize = optimize + if isinstance(self.dtype, str) and self.dtype\ + not in ['float', 'float16', 'float32', 'float64']: + raise ValueError("dtype must be 'float', 'float16', 'float32'" +@@ -346,7 +347,8 @@ + self.low, self.high).astype(self.dtype) + if self.dtype == float or self.dtype == 'float': + # necessary, otherwise the type is converted to a numpy type +- return getattr(inv_transform, "tolist", lambda: value)() ++ inv_transform = getattr(inv_transform, "tolist", lambda: value)() ++ return [round(val, 8) for val in inv_transform] # round(val, 6) causes problems in the random sample generation when #sample>1e6 + else: + return inv_transform + +@@ -435,7 +437,7 @@ + + """ + def __init__(self, low, high, prior="uniform", base=10, transform=None, +- name=None, dtype=np.int64): ++ name=None, dtype=np.int64, optimize=True): + if high <= low: + raise ValueError("the lower bound {} has to be less than the" + " upper bound {}".format(low, high)) +@@ -450,6 +452,7 @@ + self.name = name + self.dtype = dtype + self.transform_ = transform ++ self.optimize = optimize + self._rvs = None + self.transformer = None + +--- skopt/space/transformers.py.orig 2025-12-12 09:26:36 ++++ skopt/space/transformers.py 2025-12-12 09:27:05 +@@ -259,7 +259,7 @@ + if (self.high - self.low) == 0.: + return X * 0. + if self.is_int: +- return (np.round(X).astype(np.int) - self.low) /\ ++ return (np.round(X).astype(int) - self.low) /\ + (self.high - self.low) + else: + return (X - self.low) / (self.high - self.low) +@@ -272,7 +272,7 @@ + raise ValueError("All values should be greater than 0.0") + X_orig = X * (self.high - self.low) + self.low + if self.is_int: +- return np.round(X_orig).astype(np.int) ++ return np.round(X_orig).astype(int) + return X_orig diff --git a/repos/spack_repo/builtin/packages/gptune/gptunev5.patch b/repos/spack_repo/builtin/packages/gptune/gptunev5.patch new file mode 100644 index 00000000000..64e29c71129 --- /dev/null +++ b/repos/spack_repo/builtin/packages/gptune/gptunev5.patch @@ -0,0 +1,8 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -246,6 +246,7 @@ + GPTune/problem.py + GPTune/sample.py + GPTune/search.py ++ GPTune/mcmc.py + ) diff --git a/repos/spack_repo/builtin/packages/gptune/package.py b/repos/spack_repo/builtin/packages/gptune/package.py index a28a689fb14..a2879997879 100644 --- a/repos/spack_repo/builtin/packages/gptune/package.py +++ b/repos/spack_repo/builtin/packages/gptune/package.py @@ -22,7 +22,7 @@ class Gptune(CMakePackage): Bayesian optimization methodologies.""" homepage = "https://gptune.lbl.gov/" - url = "https://github.com/gptune/GPTune/archive/refs/tags/3.0.0.tar.gz" + url = "https://github.com/gptune/GPTune/archive/refs/tags/5.0.0.tar.gz" git = "https://github.com/gptune/GPTune.git" maintainers("liuyangzhuan") @@ -31,9 +31,11 @@ class Gptune(CMakePackage): license("BSD-3-Clause-LBNL") version("master", branch="master") + version("5.0.0", sha256="edb28563ef9e0de32f71197b5528262fd7dfcdb85a42df534ff13caf7187dd4c") version("4.0.0", sha256="4f954a810d83b73f5abe5b15b79e3ed5b7ebf7bc0ae7335d27b68111bd078102") version("3.0.0", sha256="e19bfc3033fff11ff8c20cae65b88b7ca005d2c4e4db047f9f23226126ec92fa") version("2.1.0", sha256="737e0a1d83f66531098beafa73dd479f12def576be83b1c7b8ea5f1615d60a53") + patch("gptunev5.patch", when="@5.0.0") variant("superlu", default=False, description="Build the SuperLU_DIST example") variant("hypre", default=False, description="Build the Hypre example") @@ -51,6 +53,7 @@ class Gptune(CMakePackage): depends_on("scalapack", type="link") depends_on("py-setuptools", type="build") depends_on("py-ipyparallel", type=("build", "run")) + depends_on("py-numpy@1.24:", type=("build", "run"), when="@5.0.0:") depends_on("py-numpy@:1.23", type=("build", "run"), when="@:4.0.0") depends_on("py-numpy@:1.21.5", type=("build", "run"), when="@:2.1.0") depends_on("py-pandas", type=("build", "run")) @@ -58,12 +61,30 @@ class Gptune(CMakePackage): depends_on("py-scikit-learn", type=("build", "run")) depends_on("py-matplotlib", type=("build", "run")) depends_on("py-pyyaml", type=("build", "run")) - depends_on("py-scikit-optimize@0.9.0", patches=[patch("space.patch")], type=("build", "run")) - depends_on("py-gpy", type=("build", "run")) + depends_on( + "py-scikit-optimize@0.9.0", + patches=[patch("space.patch")], + type=("build", "run"), + when="@:4.0.0", + ) + depends_on( + "py-scikit-optimize@0.9.0", + patches=[patch("gptunev5-skopt.patch", level=0)], + type=("build", "run"), + when="@5.0.0:", + ) + depends_on("py-gpy@1.13.2:", type=("build", "run"), when="^python@3.9:") + depends_on("py-gpy@:1.13.1", type=("build", "run"), when="^python@:3.8") depends_on("py-lhsmdu", type=("build", "run")) depends_on("py-hpbandster", type=("build", "run")) depends_on("py-opentuner", type=("build", "run")) depends_on("py-ytopt-autotune@1.1.0", type=("build", "run")) + depends_on( + "py-ytopt-autotune@1.1.0", + patches=[patch("gptunev5-autotune.patch")], + type=("build", "run"), + when="@5.0.0:", + ) depends_on("py-filelock", type=("build", "run")) depends_on("py-requests", type=("build", "run")) depends_on("py-pyaml", type=("build", "run")) @@ -90,7 +111,7 @@ def cmake_args(self): fc_flags.append("-fallow-argument-mismatch") args = [ - "-DGPTUNE_INSTALL_PATH=%s" % python_platlib, + f"-DGPTUNE_INSTALL_PATH={join_path(self.prefix, self.spec['python'].package.platlib)}", "-DTPL_BLAS_LIBRARIES=%s" % spec["blas"].libs.joined(";"), "-DTPL_LAPACK_LIBRARIES=%s" % spec["lapack"].libs.joined(";"), "-DTPL_SCALAPACK_LIBRARIES=%s" % spec["scalapack"].libs.joined(";"), @@ -135,7 +156,7 @@ def cache_test_sources(self): envfile.write("export GPTUNEROOT=$PWD\n") mpirun = spec["mpi"].prefix.bin.mpirun envfile.write(f"export MPIRUN={mpirun}\n") - gptune_path = join_path(python_platlib, "gptune") + gptune_path = join_path(self.prefix, self.spec["python"].package.platlib, "GPTune") envfile.write(f"export PYTHONPATH={gptune_path}:$PYTHONPATH\n") envfile.write("export proc=$(spack arch)\n") envfile.write(f"export mpi={spec['mpi'].name}\n") @@ -149,15 +170,15 @@ def cache_test_sources(self): + spec["blas"].name + '\\":{\\"version_split\\":' + " [" - + str(spec["blas"].versions).replace(".", ",") + + str(spec["blas"].version).replace(".", ",") + ']},\\"' + spec["mpi"].name + '\\":{\\"version_split\\": [' - + str(spec["mpi"].versions).replace(".", ",") + + str(spec["mpi"].version).replace(".", ",") + ']},\\"' + spec["scalapack"].name + '\\":{\\"version_split\\": [' - + str(spec["scalapack"].versions).replace(".", ",") + + str(spec["scalapack"].version).replace(".", ",") + ']},\\"' + str(comp_name) + '\\":{\\"version_split\\": [' @@ -169,15 +190,15 @@ def cache_test_sources(self): + 'configurations\\":{\\"' + spec["blas"].name + '\\":{\\"version_split\\": [' - + str(spec["blas"].versions).replace(".", ",") + + str(spec["blas"].version).replace(".", ",") + ']},\\"' + spec["mpi"].name + '\\":{\\"version_split\\": [' - + str(spec["mpi"].versions).replace(".", ",") + + str(spec["mpi"].version).replace(".", ",") + ']},\\"' + spec["scalapack"].name + '\\":{\\"version_split\\": [' - + str(spec["scalapack"].versions).replace(".", ",") + + str(spec["scalapack"].version).replace(".", ",") + ']},\\"' + str(comp_name) + '\\":{\\"version_split\\": [' @@ -196,13 +217,19 @@ def cache_test_sources(self): ) # copy the environment configuration to the python install directory - cp = which("cp") - cp(script_path, join_path(python_platlib, "gptune")) + cp = which("cp", required=True) + platlib = self.spec["python"].package.platlib + cp(script_path, join_path(self.prefix, platlib, "run_env.sh")) + cp( + "-r", + join_path(self.prefix, platlib, "GPTune"), + join_path(self.prefix, platlib, "gptune"), + ) def setup_run_environment(self, env: EnvironmentModifications) -> None: - env.set("GPTUNE_INSTALL_PATH", python_platlib) - - cmd = {"bash": which("bash"), "cp": which("cp"), "git": which("git"), "rm": which("rm")} + env.set("GPTUNE_INSTALL_PATH", join_path(self.prefix, self.spec["python"].package.platlib)) + gptune_path = join_path(self.prefix, self.spec["python"].package.platlib, "GPTune") + env.prepend_path("PYTHONPATH", gptune_path) def test_hypre(self): """set up and run hypre example""" @@ -214,13 +241,17 @@ def test_hypre(self): if not self.spec["hypre"].satisfies("@2.19.0"): raise SkipTest("Package test only works for hypre@2.19.0") + rm = which("rm", required=True) + cp = which("cp", required=True) + git = which("git", required=True) + bash = which("bash", required=True) test_dir = join_path(self.test_suite.current_test_cache_dir, self.examples_src_dir) # copy hypre executables to the correct place wd = join_path(test_dir, "Hypre") with working_dir(wd): - self.cmd["rm"]("-rf", "hypre") - self.cmd["git"]( + rm("-rf", "hypre") + git( "clone", "--depth", "1", @@ -231,12 +262,12 @@ def test_hypre(self): hypre_test_dir = join_path(wd, "hypre", "src", "test") mkdirp(hypre_test_dir) - self.cmd["cp"]("-r", self.spec["hypre"].prefix.bin.ij, hypre_test_dir) + cp("-r", self.spec["hypre"].prefix.bin.ij, hypre_test_dir) # now run the test example with working_dir(join_path(test_dir, "Hypre")): terminate_bash_failures(".") - self.cmd["bash"]("run_examples.sh") + bash("run_examples.sh") def test_superlu(self): """set up and run superlu tests""" @@ -247,18 +278,22 @@ def test_superlu(self): if self.spec["superlu-dist"].version < Version("7.1"): raise SkipTest("Package must be installed with superlu-dist@:7.1") + rm = which("rm", required=True) + cp = which("cp", required=True) + git = which("git", required=True) + bash = which("bash", required=True) test_dir = join_path(self.test_suite.current_test_cache_dir, self.examples_src_dir) # copy only works for-dist executables to the correct place wd = join_path(test_dir, "SuperLU_DIST") with working_dir(wd): - self.cmd["rm"]("-rf", "superlu_dist") + rm("-rf", "superlu_dist") version = self.spec["superlu-dist"].version.string tag = f"v{version}" if version.replace(".", "").isdigit() else version # TODO: Replace this IF/when superlu-dist renames its "master" # branch's version from "develop" to "master". tag = "master" if tag == "develop" else tag - self.cmd["git"]( + git( "clone", "--depth", "1", @@ -270,7 +305,7 @@ def test_superlu(self): superludriver = self.spec["superlu-dist"].prefix.lib.EXAMPLE.pddrive_spawn example_dir = join_path(wd, "superlu_dist", "build", "EXAMPLE") mkdirp(example_dir) - self.cmd["cp"]("-r", superludriver, example_dir) + cp("-r", superludriver, example_dir) apps = ["SuperLU_DIST", "SuperLU_DIST_RCI"] for app in apps: @@ -279,21 +314,23 @@ def test_superlu(self): raise SkipTest("Package must be installed with +superlu+mpispawn") with working_dir(join_path(test_dir, app)): terminate_bash_failures(".") - self.cmd["bash"]("run_examples.sh") + bash("run_examples.sh") def test_demo(self): """Run the demo test""" if self.spec.satisfies("~mpispawn"): raise SkipTest("Package must be installed with +mpispawn") + bash = which("bash", required=True) test_dir = join_path(self.test_suite.current_test_cache_dir, self.examples_src_dir) with working_dir(join_path(test_dir, "GPTune-Demo")): terminate_bash_failures(".") - self.cmd["bash"]("run_examples.sh") + bash("run_examples.sh") def test_scalapack(self): """Run scalapack tests""" + bash = which("bash", required=True) test_dir = join_path(self.test_suite.current_test_cache_dir, self.examples_src_dir) apps = ["Scalapack-PDGEQRF", "Scalapack-PDGEQRF_RCI"] @@ -303,4 +340,4 @@ def test_scalapack(self): raise SkipTest("Package must be installed with +superlu+mpispawn") with working_dir(join_path(test_dir, app)): terminate_bash_failures(".") - self.cmd["bash"]("run_examples.sh") + bash("run_examples.sh") diff --git a/repos/spack_repo/builtin/packages/gpu_burn/package.py b/repos/spack_repo/builtin/packages/gpu_burn/package.py index c639314abd6..f186c289122 100644 --- a/repos/spack_repo/builtin/packages/gpu_burn/package.py +++ b/repos/spack_repo/builtin/packages/gpu_burn/package.py @@ -37,7 +37,7 @@ def edit(self, spec, prefix): archflag = " ".join(CudaPackage.cuda_flags(cuda_arch)) with open("Makefile", "w") as fh: fh.write("drv:\n") - fh.write("\tnvcc {0} -fatbin " "compare.cu -o compare.ptx\n".format(archflag)) + fh.write("\tnvcc {0} -fatbin compare.cu -o compare.ptx\n".format(archflag)) fh.write("\t{0} -O3 -c gpu_burn-drv.cpp\n".format(spack_cxx)) fh.write( "\t{0} -o gpu_burn gpu_burn-drv.o -O3 -lcuda " diff --git a/repos/spack_repo/builtin/packages/grads/package.py b/repos/spack_repo/builtin/packages/grads/package.py index e987b139b10..ba9ea1a5af0 100644 --- a/repos/spack_repo/builtin/packages/grads/package.py +++ b/repos/spack_repo/builtin/packages/grads/package.py @@ -46,7 +46,8 @@ class Grads(AutotoolsPackage): variant("hdf4", default=True, when="@2.2.2:", description="Enable HDF4 support") variant("netcdf", default=True, when="@2.2.2:", description="Enable NetCDF support") - depends_on("c", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("hdf5", when="+hdf5") depends_on("hdf", when="+hdf4") @@ -93,6 +94,10 @@ def flag_handler(self, name, flags): if "hdf5" in spec and spec["hdf5"].satisfies("@1.12:"): flags.append("-DH5_USE_110_API") + strict_compilers = ("%apple-clang@15:", "%clang@16:", "%oneapi", "%gcc@14:") + if any(spec.satisfies(s) for s in strict_compilers): + flags.append("-Wno-error=implicit-function-declaration") + return (flags, None, None) def setup_build_environment(self, env: EnvironmentModifications) -> None: @@ -119,7 +124,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("PKG_CONFIG", self.spec["pkgconfig"].prefix.bin.join("pkg-config")) if "+hdf4" in self.spec and "~shared" in self.spec["hdf"]: - env.set("LIBS", self.spec["hdf:transitive"].libs) + env.set("LIBS", self.spec["hdf:transitive"].libs.ld_flags) def setup_run_environment(self, env: EnvironmentModifications) -> None: env.set("GADDIR", self.prefix.data) diff --git a/repos/spack_repo/builtin/packages/grafana/package.py b/repos/spack_repo/builtin/packages/grafana/package.py index 901942f10c2..e35390c60b9 100644 --- a/repos/spack_repo/builtin/packages/grafana/package.py +++ b/repos/spack_repo/builtin/packages/grafana/package.py @@ -27,6 +27,6 @@ class Grafana(Package): depends_on("go", type="build") def install(self, spec, prefix): - go = which("go") + go = which("go", required=True) go("run", "build.go", "build") install_tree("bin", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/grandr/package.py b/repos/spack_repo/builtin/packages/grandr/package.py deleted file mode 100644 index da775ed8780..00000000000 --- a/repos/spack_repo/builtin/packages/grandr/package.py +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage -from spack_repo.builtin.build_systems.xorg import XorgPackage - -from spack.package import * - - -class Grandr(AutotoolsPackage, XorgPackage): - """RandR user interface using GTK+ libraries.""" - - homepage = "https://cgit.freedesktop.org/xorg/app/grandr" - xorg_mirror_path = "app/grandr-0.1.tar.gz" - - version("0.1", sha256="67a049c8dccdb48897efbd86c2b1d3b0ff5ce3c7859c46b0297d64c881b36d24") - - depends_on("c", type="build") # generated - - depends_on("gtkplus@2.0.0:") - depends_on("gconf") - depends_on("xrandr@1.2:") diff --git a/repos/spack_repo/builtin/packages/graphite2/package.py b/repos/spack_repo/builtin/packages/graphite2/package.py index 5bf6c9fdea3..0b21f6f3ea0 100644 --- a/repos/spack_repo/builtin/packages/graphite2/package.py +++ b/repos/spack_repo/builtin/packages/graphite2/package.py @@ -31,6 +31,12 @@ class Graphite2(CMakePackage): patch("regparm.patch") + patch( + "https://src.fedoraproject.org/rpms/graphite2/raw/deba28323b0a3b7a3dcfd06df1efc2195b102ed7/f/graphite2-1.3.14-gcc15.patch", + sha256="4cff0ae949153596d26d5f8bfaa4ce80bcff23a157b34ff797c6d00b4268a4b1", + when="%gcc@15:", + ) + @run_after("install") def darwin_fix(self): # The shared library is not installed correctly on Darwin; fix this diff --git a/repos/spack_repo/builtin/packages/graphlib/package.py b/repos/spack_repo/builtin/packages/graphlib/package.py index d2ba1975e83..9c1613869d9 100644 --- a/repos/spack_repo/builtin/packages/graphlib/package.py +++ b/repos/spack_repo/builtin/packages/graphlib/package.py @@ -18,5 +18,6 @@ class Graphlib(CMakePackage): version("3.0.0", sha256="c3d889f7bc25b9662426605e52f14cd16f9c05b034738a343890707f5f5681f1") depends_on("c", type="build") # generated + depends_on("cxx", type="build") depends_on("cmake@2.6:", type="build") diff --git a/repos/spack_repo/builtin/packages/graphviz/package.py b/repos/spack_repo/builtin/packages/graphviz/package.py index 880b2d2c5c3..38e53966a47 100644 --- a/repos/spack_repo/builtin/packages/graphviz/package.py +++ b/repos/spack_repo/builtin/packages/graphviz/package.py @@ -3,6 +3,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os +import re import sys from spack_repo.builtin.build_systems.autotools import AutotoolsPackage @@ -19,8 +20,13 @@ class Graphviz(AutotoolsPackage): git = "https://gitlab.com/graphviz/graphviz.git" url = "https://gitlab.com/graphviz/graphviz/-/archive/2.46.0/graphviz-2.46.0.tar.bz2" + maintainers("sethrj") + license("EPL-1.0") + version("14.0.1", sha256="7ce6c384da3c3e5e1f2216489c37f42c313def843eea4d20199c219779f544b8") + version("13.1.2", sha256="c062e7ef870b2b2d0196076b601839316ede3a5a10efad2e9d9f2d3fbd9d57ca") + version("12.2.1", sha256="a990b38c3ea807a06597ce8d46d87878e59bb3fb12609fd98c02a861a4ca81b8") version("12.1.0", sha256="ad2023c23935397d4b5a34c14682f8098d2f20d2144c63d20d05be372757fdb1") version("11.0.0", sha256="95173d21922082b0b2649fb24c1dc4bbc1e39504a92903b88df39804778cbb9d") version("10.0.1", sha256="eaa60fea2b3ad904e3bf6919710c1ba3207ce31b5d7da1687dd3b734de8736f6") @@ -35,11 +41,6 @@ class Graphviz(AutotoolsPackage): version("2.44.1", sha256="0f8f3fbeaddd474e0a270dc9bb0e247a1ae4284ae35125af4adceffae5c7ae9b") version("2.42.4", sha256="a1ca0c4273d96bbf32fbfcbb784c8da2e38da13e7d2bbf9b24fe94ae45e79c4c") version("2.40.1", sha256="581596aaeac5dae3f57da6ecde62ad7709a992df341e8f7c6177b41e8b1ae4f6") - version( - "2.38.0", - sha256="c1b1e326b5d1f45b0ce91edd7acc68e80ff6be6b470008766e4d466aafc9801f", - deprecated=True, - ) # Language bindings language_bindings = ["java"] @@ -53,7 +54,7 @@ class Graphviz(AutotoolsPackage): variant( lang, default=False, - description="Enable for optional {0} language " "bindings".format(lang), + description="Enable for optional {0} language bindings".format(lang), ) # Feature variants @@ -148,16 +149,26 @@ class Graphviz(AutotoolsPackage): conflicts( "%gcc@:5.9", when="@2.40.1+qt ^qt@5:", - msg="graphviz-2.40.1 needs gcc-6 or greater to compile with QT5 " "suppport", + msg="graphviz-2.40.1 needs gcc-6 or greater to compile with QT5 suppport", ) + tags = ["build-tools"] + + executables = ["^dot$"] + + @classmethod + def determine_version(cls, exe): + output = Executable(exe)("--version", output=str, error=str) + match = re.search(r"graphviz\s+version\s+([\d\.]+)", output) + return match.group(1) if match else None + def autoreconf(self, spec, prefix): # We need to generate 'configure' when checking out sources from git # If configure exists nothing needs to be done if os.path.exists(self.configure_abs_path): return # Else bootstrap (disabling auto-configure with NOCONFIG) - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh", "NOCONFIG") @property diff --git a/repos/spack_repo/builtin/packages/green_mbpt/package.py b/repos/spack_repo/builtin/packages/green_mbpt/package.py new file mode 100644 index 00000000000..e6338300189 --- /dev/null +++ b/repos/spack_repo/builtin/packages/green_mbpt/package.py @@ -0,0 +1,70 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage + +from spack.package import * + + +class GreenMbpt(CMakePackage, CudaPackage): + """GreenMbpt (green-mbpt) is a weak-coupling perturbation expansion solver for the simulation + of electronic structure in real materials using first principles Green's function methods. + """ + + # Homepage and source + homepage = "https://www.green-phys.org" + url = "https://github.com/Green-Phys/green-mbpt/archive/refs/tags/v0.3.1.tar.gz" + + # Maintainers and License info + maintainers("egull", "gauravharsha") + license("MIT", checked_by="egull") + + # Versions and checksums + version("0.3.1", sha256="a7f80bf722fefeb275f66d348c3e756ac0e29b8dd3b67376696587b66e338521") + version( + "0.3.0", + sha256="181873fa442831d21662cf38c15f30ae97d89c07c5256d45232774a5c072574d", + deprecated=True, + ) # Known issues, use v0.3.1+ + + # Variant for CUDA Kernels + variant("cuda", default=False, description="Enable CUDA support (requires CUDAToolkit >= 12)") + conflicts( + "cuda_arch=none", + when="+cuda", + msg="A value for cuda_arch must be specified. Add cuda_arch=XX." + "Visit https://developer.nvidia.com/cuda-gpus to find out the architecture of your GPU." + "You can also run `nvidia-smi` on the compute nodes if the NVIDIA drivers are installed.", + ) + + # Build system dependency + depends_on("cmake@3.27:", type="build") + depends_on("c", type="build") + depends_on("cxx", type="build") + + # Other dependencies + depends_on("mpi") + depends_on("eigen@:4.9.0") + depends_on("hdf5@1.10.0: ~mpi+hl") + depends_on("blas") + + # CUDA variant dependency + depends_on("cuda@12:12.9", when="+cuda") + + def cmake_args(self): + args = [] + # Tell CMake to use Spack's MPI wrappers + mpi = self.spec["mpi"] + args.append(self.define("CMAKE_C_COMPILER", mpi.mpicc)) + args.append(self.define("CMAKE_CXX_COMPILER", mpi.mpicxx)) + args.append(self.define("Build_Tests", "OFF")) # Disable building tests by default + if "+cuda" in self.spec: + args.append(self.define("CUSTOM_KERNELS", "https://github.com/Green-Phys/green-gpu")) + args.append(self.define("GPU_ARCHS", self.spec.variants["cuda_arch"].value[0])) + return args + + def setup_run_environment(self, env): + # Set environment variable for GreenMbpt + env.set("GREENMBPT_ROOT", self.prefix) diff --git a/repos/spack_repo/builtin/packages/green_seet/package.py b/repos/spack_repo/builtin/packages/green_seet/package.py new file mode 100644 index 00000000000..2144746e370 --- /dev/null +++ b/repos/spack_repo/builtin/packages/green_seet/package.py @@ -0,0 +1,86 @@ +# 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 GreenSeet(CMakePackage): + """Green-SEET is a multi-scale Green's function embedding code that combines the Green's + function weak-coupling perturbation theories (GF2 and GW) and self-energy embedding theory + (SEET) to treat strongly correlated systems. The code is developed to perform + ab initio calculations of realistic periodic systems with large unit cells containing + transition metal atoms. + """ + + # Homepage and source + homepage = "https://www.green-phys.org" + url = "https://github.com/Green-Phys/green-mbpt" + git = "https://github.com/Green-Phys/green-mbpt" + + # Maintainers and License info + maintainers("egull", "gauravharsha") + license("MIT") + + # Versions and checksums + version("seet-dev", branch="SEET", commit="7b076bf07930157d9583f9e942867bc08605a4dd") + + # Build system dependency + depends_on("cmake@3.27:", type="build") + depends_on("c", type="build") + depends_on("cxx", type="build") + + # Other dependencies + depends_on("mpi") + depends_on("eigen") + depends_on("hdf5@1.10.0: ~mpi+hl") + depends_on("blas") + depends_on("arpack-ng@3.5.0:") + depends_on("alpscore@2.3.2:") + + # TODO: CUDA Variant -- consider later + + def cmake_args(self): + args = [] + # Tell CMake to use Spack's MPI wrappers + mpi = self.spec["mpi"] + args.append(self.define("CMAKE_C_COMPILER", mpi.mpicc)) + args.append(self.define("CMAKE_CXX_COMPILER", mpi.mpicxx)) + return args + + def install(self, spec, prefix): + # ---------- Step 1: Build green-seet-solvrs ---------- + # NOTE: green-seet-solvers will be merged into green-mbpt for next SEET release + seet_solvers_src_dir = join_path(self.stage.source_path, "seet_solvers_src") + git = which("git", required=True) + git("clone", "https://github.com/Green-Phys/green-seet-solvers.git", seet_solvers_src_dir) + + seet_solvers_build_dir = join_path(seet_solvers_src_dir, "spack-build") + seet_solvers_install_dir = join_path(prefix, "seet_solvers") + + args = self.cmake_args() + [ + self.define("ALPSCore_DIR", spec["alpscore"].prefix), + self.define("ARPACK_DIR", spec["arpack-ng"].prefix), + self.define("CMAKE_INSTALL_PREFIX", seet_solvers_install_dir), + self.define("CMAKE_INSTALL_RPATH_USE_LINK_PATH", True), + ] + + with working_dir(seet_solvers_build_dir, create=True): + cmake(seet_solvers_src_dir, *args) + make() + make("install") + + # ---------- Step 2: Build main project ---------- + build_dir = join_path(self.stage.source_path, "spack-build") + args_main = self.cmake_args() + [self.define("CMAKE_INSTALL_PREFIX", prefix)] + + with working_dir(build_dir, create=True): + cmake(self.stage.source_path, *args_main) + make() + make("install") + + def setup_run_environment(self, env): + # Set environment variable for GreenSeet + env.set("GREENSEET_ROOT", self.prefix) diff --git a/repos/spack_repo/builtin/packages/greenx/cmake.patch b/repos/spack_repo/builtin/packages/greenx/cmake.patch new file mode 100644 index 00000000000..43716e23817 --- /dev/null +++ b/repos/spack_repo/builtin/packages/greenx/cmake.patch @@ -0,0 +1,85 @@ +From 52408cb9fc329b2e5f9af8bb34327d58b66d5d37 Mon Sep 17 00:00:00 2001 +From: Mathieu Taillefumier +Date: Tue, 30 Dec 2025 16:30:28 +0100 +Subject: [PATCH] Fix for finding gmpxx when find_package(greenX) is called + +--- + cmake/FindGMPXX.cmake | 23 ++++++++++++----------- + cmake/greenXConfig.cmake.in | 9 ++++++++- + 2 files changed, 20 insertions(+), 12 deletions(-) + +diff --git a/cmake/FindGMPXX.cmake b/cmake/FindGMPXX.cmake +index c8bbe50..2a27c11 100644 +--- a/cmake/FindGMPXX.cmake ++++ b/cmake/FindGMPXX.cmake +@@ -10,30 +10,31 @@ if (PKG_CONFIG_FOUND) + pkg_check_modules(GREENX_GMPXX IMPORTED_TARGET GLOBAL gmpxx) + pkg_check_modules(GREENX_GMP IMPORTED_TARGET GLOBAL gmp) + endif() ++ ++find_path(GREENX_GMPXX_INCLUDE_DIR NAMES gmpxx.h) ++ + if(NOT GREENX_GMP_FOUND) +- find_path(GREENX_GMPXX_INCLUDE_DIR NAMES gmpxx.h) +- find_library(GREENX_GMPXX_LIBRARY NAMES gmpxx) +- find_library(GREENX_GMP_LIBRARY NAMES gmp) ++ find_library(GREENX_GMPXX_LIBRARIES NAMES gmpxx) ++ find_library(GREENX_GMP_LIBRARIES NAMES gmp) + else() +- set(GREENX_GMP_LIBRARY ${GREENX_GMP_LINK_LIBRARIES}) +- set(GREENX_GMPXX_LIBRARY ${GREENX_GMPXX_LINK_LIBRARIES}) +- set(GREENX_GMPXX_INCLUDE_DIR ${GREENX_GMP_INCLUDE_DIRS}) ++ set(GREENX_GMPXX_LIBRARIES "${GREENX_GMPXX_LINK_LIBRARIES}") ++ set(GREENX_GMP_LIBRARIES "${GREENX_GMP_LINK_LIBRARIES}") + endif() + +-find_package_handle_standard_args(GMPXX DEFAULT_MSG GREENX_GMPXX_INCLUDE_DIRS GREENX_GMPXX_LIBRARY GREENX_GMP_LIBRARY) ++find_package_handle_standard_args(GMPXX DEFAULT_MSG GREENX_GMPXX_INCLUDE_DIR GREENX_GMPXX_LIBRARIES GREENX_GMP_LIBRARIES) ++set(GREENX_GMPXX_LIBRARIES ${GREENX_GMPXX_LIBRARIES} ${GREENX_GMP_LIBRARIES}) + +-set(GREENX_GMPXX_LIBRARIES ${GREENX_GMPXX_LIBRARY} ${GREENX_GMP_LIBRARY}) + + if (NOT TARGET greenX::gmpxx) + add_library(greenX::gmpxx INTERFACE IMPORTED) + set_target_properties(greenX::gmpxx + PROPERTIES + INTERFACE_LINK_LIBRARIES "${GREENX_GMPXX_LIBRARIES}") +- if (GREENX_GMPXX_INCLUDE_DIRS) ++ if (GREENX_GMPXX_INCLUDE_DIR) + set_target_properties(greenX::gmpxx + PROPERTIES +- INTERFACE_INCLUDE_DIRECTORIES ${GREENX_GMPXX_INCLUDE_DIRS}) ++ INTERFACE_INCLUDE_DIRECTORIES ${GREENX_GMPXX_INCLUDE_DIR}) + endif() + endif() + +-mark_as_advanced(GMPXX_INCLUDE_DIR GMPXX_LIBRARY) ++mark_as_advanced(GREENX_GMPXX_INCLUDE_DIR GREENX_GMPXX_LIBRARIES) +diff --git a/cmake/greenXConfig.cmake.in b/cmake/greenXConfig.cmake.in +index d89f70d..21bbab9 100644 +--- a/cmake/greenXConfig.cmake.in ++++ b/cmake/greenXConfig.cmake.in +@@ -1,12 +1,19 @@ + include(CMakeFindDependencyMacro) + ++if (NOT TARGET greenX::GXCommon) ++ ++set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}" ++ ${CMAKE_MODULE_PATH}) ++ + # If greenX depends on other libraries, do: + find_dependency(BLAS REQUIRED) + find_dependency(LAPACK REQUIRED) + + if(@ENABLE_GNU_GMP@) +- find_dependency(GMPXX) ++ find_dependency(GMPXX REQUIRED) + endif() + + # Finally, pull in the targets you exported: + include("${CMAKE_CURRENT_LIST_DIR}/greenXTargets.cmake") ++ ++endif() +-- +2.52.0 + diff --git a/repos/spack_repo/builtin/packages/greenx/package.py b/repos/spack_repo/builtin/packages/greenx/package.py index 2e7ffdf95ef..80fc3187293 100644 --- a/repos/spack_repo/builtin/packages/greenx/package.py +++ b/repos/spack_repo/builtin/packages/greenx/package.py @@ -52,6 +52,12 @@ class Greenx(CMakePackage): when="@:2.3", ) + patch( + "cmake.patch", + sha256="c0810c8f26926f417c62cde9306ed4e869a6e0aa085e4226f853d694a042a25d", + when="@:2.3", + ) + def cmake_args(self): args = [ self.define_from_variant("BUILD_SHARED_LIBS", "shared"), diff --git a/repos/spack_repo/builtin/packages/grep/package.py b/repos/spack_repo/builtin/packages/grep/package.py index 01bc2108172..fc513b32e71 100644 --- a/repos/spack_repo/builtin/packages/grep/package.py +++ b/repos/spack_repo/builtin/packages/grep/package.py @@ -15,8 +15,11 @@ class Grep(AutotoolsPackage, GNUMirrorPackage): homepage = "https://www.gnu.org/software/grep/" gnu_mirror_path = "grep/grep-3.3.tar.xz" + executables = ["^grep$"] + license("GPL-3.0-or-later") + version("3.12", sha256="2649b27c0e90e632eadcd757be06c6e9a4f48d941de51e7c0f83ff76408a07b9") version("3.11", sha256="1db2aedde89d0dea42b16d9528f894c8d15dae4e190b59aecc78f5a951276eab") version("3.10", sha256="24efa5b595fb5a7100879b51b8868a0bb87a71c183d02c4c602633b88af6855b") version("3.9", sha256="abcd11409ee23d4caf35feb422e53bbac867014cfeed313bb5f488aca170b599") @@ -25,15 +28,11 @@ class Grep(AutotoolsPackage, GNUMirrorPackage): variant("pcre", default=False, description="Enable Perl Compatible Regular Expression support") - build_directory = "spack-build" - - depends_on("c", type="build") # generated - + depends_on("c", type="build") depends_on("pcre2", when="@3.8:+pcre") depends_on("pcre", when="@:3.7+pcre") - # For spack external find - executables = ["^grep$"] + build_directory = "spack-build" @classmethod def determine_version(cls, exe): diff --git a/repos/spack_repo/builtin/packages/grib_api/cmake_install_rpath.patch b/repos/spack_repo/builtin/packages/grib_api/cmake_install_rpath.patch deleted file mode 100644 index 7e2b2508837..00000000000 --- a/repos/spack_repo/builtin/packages/grib_api/cmake_install_rpath.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/cmake/ecbuild_append_to_rpath.cmake -+++ b/cmake/ecbuild_append_to_rpath.cmake -@@ -31,7 +31,7 @@ function( _path_append var path ) - else() - list( FIND ${var} ${path} _found ) - if( _found EQUAL "-1" ) -- set( ${var} "${${var}}:${path}" PARENT_SCOPE ) -+ set( ${var} "${${var}};${path}" PARENT_SCOPE ) - endif() - endif() - endfunction() diff --git a/repos/spack_repo/builtin/packages/grib_api/enable_only_jasper.patch b/repos/spack_repo/builtin/packages/grib_api/enable_only_jasper.patch deleted file mode 100644 index 06e9790f59d..00000000000 --- a/repos/spack_repo/builtin/packages/grib_api/enable_only_jasper.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -106,18 +106,7 @@ set( HAVE_LIBOPENJPEG 0 ) - - if( ENABLE_JPG ) - -- # Note: This is a deprecated feature but we need it to find Jasper at ECMWF. -- # ecbuild_add_extra_search_paths modifies CMAKE_PREFIX_PATH -- # which can affect future package discovery if not undone by the caller. -- # The current CMAKE_PREFIX_PATH is backed up as _CMAKE_PREFIX_PATH -- # -- set(CMAKE_WARN_DEPRECATED OFF) # Suppress deprecation message -- ecbuild_add_extra_search_paths( jasper ) - find_package( Jasper ) -- set(CMAKE_PREFIX_PATH ${_CMAKE_PREFIX_PATH}) # Restore CMAKE_PREFIX_PATH -- set(CMAKE_WARN_DEPRECATED ON) # Remove suppression -- -- find_package( OpenJPEG ) - - if( JASPER_FOUND ) - list( APPEND GRIB_API_TPLS Jasper ) -@@ -125,12 +114,6 @@ if( ENABLE_JPG ) - set( HAVE_LIBJASPER 1 ) - endif() - -- if( OPENJPEG_FOUND ) -- list( APPEND GRIB_API_TPLS OpenJPEG ) -- set( HAVE_JPEG 1 ) -- set( HAVE_LIBOPENJPEG 1 ) -- endif() -- - endif() - - diff --git a/repos/spack_repo/builtin/packages/grib_api/enable_only_openjpeg.patch b/repos/spack_repo/builtin/packages/grib_api/enable_only_openjpeg.patch deleted file mode 100644 index a4404770294..00000000000 --- a/repos/spack_repo/builtin/packages/grib_api/enable_only_openjpeg.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -106,25 +106,8 @@ set( HAVE_LIBOPENJPEG 0 ) - - if( ENABLE_JPG ) - -- # Note: This is a deprecated feature but we need it to find Jasper at ECMWF. -- # ecbuild_add_extra_search_paths modifies CMAKE_PREFIX_PATH -- # which can affect future package discovery if not undone by the caller. -- # The current CMAKE_PREFIX_PATH is backed up as _CMAKE_PREFIX_PATH -- # -- set(CMAKE_WARN_DEPRECATED OFF) # Suppress deprecation message -- ecbuild_add_extra_search_paths( jasper ) -- find_package( Jasper ) -- set(CMAKE_PREFIX_PATH ${_CMAKE_PREFIX_PATH}) # Restore CMAKE_PREFIX_PATH -- set(CMAKE_WARN_DEPRECATED ON) # Remove suppression -- - find_package( OpenJPEG ) - -- if( JASPER_FOUND ) -- list( APPEND GRIB_API_TPLS Jasper ) -- set( HAVE_JPEG 1 ) -- set( HAVE_LIBJASPER 1 ) -- endif() -- - if( OPENJPEG_FOUND ) - list( APPEND GRIB_API_TPLS OpenJPEG ) - set( HAVE_JPEG 1 ) diff --git a/repos/spack_repo/builtin/packages/grib_api/package.py b/repos/spack_repo/builtin/packages/grib_api/package.py deleted file mode 100644 index 5a575f06ca4..00000000000 --- a/repos/spack_repo/builtin/packages/grib_api/package.py +++ /dev/null @@ -1,146 +0,0 @@ -# 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 GribApi(CMakePackage): - """The ECMWF GRIB API is an application program interface accessible from - C, FORTRAN and Python programs developed for encoding and decoding WMO - FM-92 GRIB edition 1 and edition 2 messages. The API was deprecated - https://www.ecmwf.int/en/newsletter/152/news/end-road-grib-api in favor - of ecCodes.""" - - homepage = "https://www.ecmwf.int/en/newsletter/152/news/end-road-grib-api" - url = "https://software.ecmwf.int/wiki/download/attachments/3473437/grib_api-1.17.0-Source.tar.gz?api=v2" - list_url = "https://software.ecmwf.int/wiki/display/GRIB/Releases" - - maintainers("skosukhin") - - version( - "1.24.0", - sha256="6b0d443cb0802c5de652e5816c5b88734cb3ead454eb932c5ec12ef8d4f77bcd", - deprecated=True, - ) - version( - "1.21.0", - sha256="50c2b58303ab578c55735e6c21c72ffc24f82a5bf52565550f54d49cb60e8a90", - deprecated=True, - ) - version( - "1.17.0", - sha256="55cbb4fdcb4ee1be6a27cece9ae7e26070beb8ab6cb7e77773db3fb0d4272462", - deprecated=True, - ) - version( - "1.16.0", - sha256="0068ca4149a9f991d4c86a813ac73b4e2299c6a3fd53aba9e6ab276ef6f0ff9a", - deprecated=True, - ) - - variant( - "netcdf", default=False, description="Enable netcdf encoding/decoding using netcdf library" - ) - variant( - "jp2k", - default="openjpeg", - values=("openjpeg", "jasper", "none"), - description="Specify JPEG2000 decoding/encoding backend", - ) - variant("png", default=False, description="Enable png for decoding/encoding") - variant( - "aec", default=False, description="Enable Adaptive Entropy Coding for decoding/encoding" - ) - variant("pthreads", default=False, description="Enable POSIX threads") - variant("openmp", default=False, description="Enable OpenMP threads") - variant("fortran", default=False, description="Enable the Fortran support") - variant( - "examples", default=True, description="Build the examples (part of the full test suite)" - ) - variant("test", default=True, description="Enable the tests") - variant( - "build_type", - default="RelWithDebInfo", - description="The build type to build", - values=("Debug", "Release", "RelWithDebInfo", "Production"), - ) - - # The building script tries to find an optional package valgrind when - # tests are enabled but the testing scripts don't use it. - # depends_on('valgrind', type='test', when='+test') - - depends_on("fortran", type="build", when="+fortran") - - depends_on("netcdf-c", when="+netcdf") - depends_on("openjpeg@1.5.0:1.5", when="jp2k=openjpeg") - depends_on("jasper", when="jp2k=jasper") - depends_on("libpng", when="+png") - depends_on("libaec", when="+aec") - - conflicts("+openmp", when="+pthreads", msg="Cannot enable both POSIX threads and OMP") - - # The following enforces linking against the specified JPEG2000 backend. - patch("enable_only_openjpeg.patch", when="jp2k=openjpeg") - patch("enable_only_jasper.patch", when="jp2k=jasper") - - # CMAKE_INSTALL_RPATH must be a semicolon-separated list. - patch("cmake_install_rpath.patch") - - def cmake_args(self): - var_opt_list = [ - ("+pthreads", "GRIB_THREADS"), - ("+openmp", "GRIB_OMP_THREADS"), - ("+fortran", "FORTRAN"), - ("+examples", "EXAMPLES"), - ("+test", "TESTS"), - ] - - args = [ - "-DENABLE_%s=%s" % (opt, "ON" if var in self.spec else "OFF") - for var, opt in var_opt_list - ] - - if self.spec.satisfies("+netcdf"): - args.extend( - [ - "-DENABLE_NETCDF=ON", - # Prevent overriding by environment variable - # HDF5_ROOT. - "-DHDF5_ROOT=" + self.spec["hdf5"].prefix, - # Prevent possible overriding by environment variables - # NETCDF_ROOT, NETCDF_DIR, and NETCDF_PATH. - "-DNETCDF_PATH=" + self.spec["netcdf-c"].prefix, - ] - ) - else: - args.append("-DENABLE_NETCDF=OFF") - - if self.spec.variants["jp2k"].value == "none": - args.append("-DENABLE_JPG=OFF") - else: - args.append("-DENABLE_JPG=ON") - - if self.spec.variants["jp2k"].value == "openjpeg": - args.append("-DOPENJPEG_PATH=" + self.spec["openjpeg"].prefix) - - if self.spec.satisfies("+png"): - args.extend(["-DENABLE_PNG=ON", "-DZLIB_ROOT=" + self.spec["zlib-api"].prefix]) - else: - args.append("-DENABLE_PNG=OFF") - - if self.spec.satisfies("+aec"): - args.extend( - [ - "-DENABLE_AEC=ON", - # Prevent overriding by environment variables - # AEC_DIR and AEC_PATH. - "-DAEC_DIR=" + self.spec["libaec"].prefix, - ] - ) - else: - args.append("-DENABLE_AEC=OFF") - - return args diff --git a/repos/spack_repo/builtin/packages/grib_util/package.py b/repos/spack_repo/builtin/packages/grib_util/package.py index 5f8ec7c8bd3..c8271246c7e 100644 --- a/repos/spack_repo/builtin/packages/grib_util/package.py +++ b/repos/spack_repo/builtin/packages/grib_util/package.py @@ -56,7 +56,7 @@ def cmake_args(self): args = [ self.define_from_variant("OPENMP", "openmp"), self.define("BUILD_TESTING", self.run_tests), - self.define("G2C_COMPARE", self.run_tests), + self.define("G2C_COMPARE", False), ] return args diff --git a/repos/spack_repo/builtin/packages/gribjump/package.py b/repos/spack_repo/builtin/packages/gribjump/package.py new file mode 100644 index 00000000000..948bbd8c66e --- /dev/null +++ b/repos/spack_repo/builtin/packages/gribjump/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 Gribjump(CMakePackage): + """GribJump is a C++ library for extracting subsets of data from GRIB files, + particularly data archived in the FDB + """ + + homepage = "https://github.com/ecmwf/gribjump" + url = "https://github.com/ecmwf/gribjump/archive/refs/tags/0.10.0.tar.gz" + git = "https://github.com/ecmwf/gribjump.git" + list_url = "https://github.com/ecmwf/gribjump/tags" + + maintainers("cosunae") + + license("Apache-2.0") + + version("0.10.3", sha256="8001f8a0e4b03664134ea42612d22d6499e098d2063b12182030986895689f6c") + version("0.10.2", sha256="c1635c1f902daa244592b60c9b1a81375b467409635bd2cbfc6993d32554bd3d") + version("0.10.0", sha256="04a6c7322e585acb7e432e74d68f073ab584a42af9dcb2b4b97f17aebf17d07f") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cmake@3.12:", type="build") + depends_on("ecbuild", type="build") + depends_on("eckit") + depends_on("eccodes") + depends_on("fdb") + depends_on("metkit") + depends_on("libaec@1.1.1:") + + def cmake_args(self): + args = [ + self.define("ENABLE_MEMFS", True), + self.define("ENABLE_ECCODES_THREADS", True), + self.define("ENABLE_AEC", True), + ] + return args diff --git a/repos/spack_repo/builtin/packages/gridtools/package.py b/repos/spack_repo/builtin/packages/gridtools/package.py new file mode 100644 index 00000000000..318717639c3 --- /dev/null +++ b/repos/spack_repo/builtin/packages/gridtools/package.py @@ -0,0 +1,33 @@ +# 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, generator + +from spack.package import * + + +class Gridtools(CMakePackage): + """Libraries and utilities to develop performance portable applications for + weather and climate""" + + homepage = "https://gridtools.github.io" + url = "https://github.com/GridTools/gridtools/archive/refs/tags/v0.0.0.tar.gz" + git = "https://github.com/GridTools/gridtools.git" + + maintainers("msimberg") + + license("BSD-3-Clause", checked_by="msimberg") + + version("master", branch="master") + version("2.3.9", sha256="463bd29c4cee7027e99ad0ba5a9f121be481efbc75c604af4256927c5670fd7c") + + depends_on("cxx", type="build") + + generator("ninja") + + depends_on("ninja", type="build") + + def cmake_args(self): + args = [self.define("BUILD_TESTING", False), self.define("GT_INSTALL_EXAMPLES", False)] + return args diff --git a/repos/spack_repo/builtin/packages/grnboost/package.py b/repos/spack_repo/builtin/packages/grnboost/package.py index b8b8d2d0fd2..7e9b25adbc7 100644 --- a/repos/spack_repo/builtin/packages/grnboost/package.py +++ b/repos/spack_repo/builtin/packages/grnboost/package.py @@ -43,6 +43,6 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: env.set("XGBOOST_JAR", xgboost_jar) def install(self, spec, prefix): - sbt = which("sbt") + sbt = which("sbt", required=True) sbt("assembly") install_tree("target", prefix.target) diff --git a/repos/spack_repo/builtin/packages/groff/package.py b/repos/spack_repo/builtin/packages/groff/package.py index 4b899f75723..f558950e0d9 100644 --- a/repos/spack_repo/builtin/packages/groff/package.py +++ b/repos/spack_repo/builtin/packages/groff/package.py @@ -37,8 +37,7 @@ class Groff(AutotoolsPackage, GNUMirrorPackage): variant( "uchardet", default=True, - description="Builds preconv with uchardet library for " - "automatic file encoding detection", + description="Builds preconv with uchardet library for automatic file encoding detection", ) conflicts("+uchardet", when="@:1.22.3") diff --git a/repos/spack_repo/builtin/packages/gromacs/gmxDetectCpu-cmake-3.14.patch b/repos/spack_repo/builtin/packages/gromacs/gmxDetectCpu-cmake-3.14.patch deleted file mode 100644 index 2f94a6a99eb..00000000000 --- a/repos/spack_repo/builtin/packages/gromacs/gmxDetectCpu-cmake-3.14.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/cmake/gmxDetectCpu.cmake -+++ b/cmake/gmxDetectCpu.cmake -@@ -83,7 +83,7 @@ function(gmx_run_cpu_detection TYPE) - set(GCC_INLINE_ASM_DEFINE "-DGMX_X86_GCC_INLINE_ASM=0") - endif() - -- set(_compile_definitions "${GCC_INLINE_ASM_DEFINE} -I${PROJECT_SOURCE_DIR}/src -DGMX_CPUINFO_STANDALONE ${GMX_STDLIB_CXX_FLAGS} -DGMX_TARGET_X86=${GMX_TARGET_X86_VALUE}") -+ set(_compile_definitions ${GCC_INLINE_ASM_DEFINE} -I${PROJECT_SOURCE_DIR}/src -DGMX_CPUINFO_STANDALONE ${GMX_STDLIB_CXX_FLAGS} -DGMX_TARGET_X86=${GMX_TARGET_X86_VALUE}) - set(LINK_LIBRARIES "${GMX_STDLIB_LIBRARIES}") - try_compile(CPU_DETECTION_COMPILED - "${PROJECT_BINARY_DIR}" - diff --git a/repos/spack_repo/builtin/packages/gromacs/gmxDetectSimd-cmake-3.14.patch b/repos/spack_repo/builtin/packages/gromacs/gmxDetectSimd-cmake-3.14.patch deleted file mode 100644 index f30ec78a7a3..00000000000 --- a/repos/spack_repo/builtin/packages/gromacs/gmxDetectSimd-cmake-3.14.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/cmake/gmxDetectSimd.cmake -+++ b/cmake/gmxDetectSimd.cmake -@@ -77,7 +77,7 @@ function(gmx_suggest_simd _suggested_simd) - else() - set(GMX_TARGET_X86_VALUE 0) - endif() -- set(_compile_definitions "${GCC_INLINE_ASM_DEFINE} -I${CMAKE_SOURCE_DIR}/src -DGMX_CPUINFO_STANDALONE ${GMX_STDLIB_CXX_FLAGS} -DGMX_TARGET_X86=${GMX_TARGET_X86_VALUE}") -+ set(_compile_definitions ${GCC_INLINE_ASM_DEFINE} -I${CMAKE_SOURCE_DIR}/src -DGMX_CPUINFO_STANDALONE ${GMX_STDLIB_CXX_FLAGS} -DGMX_TARGET_X86=${GMX_TARGET_X86_VALUE}) - - # Prepare a default suggestion - set(OUTPUT_SIMD "None") diff --git a/repos/spack_repo/builtin/packages/gromacs/package.py b/repos/spack_repo/builtin/packages/gromacs/package.py index a9204435d8b..8e27d466666 100644 --- a/repos/spack_repo/builtin/packages/gromacs/package.py +++ b/repos/spack_repo/builtin/packages/gromacs/package.py @@ -51,81 +51,20 @@ class Gromacs(CMakePackage, CudaPackage): # Exception: Otherwise, versions before 2022 will be removed when # 2025 is supported. version("main", branch="main") - version("master", branch="main", deprecated=True) + version("2026.1", sha256="d95a313f56db7e05ee3a21e50f582fdee5176c2f60b900bab2461fd95c5e81be") + version("2026.0", sha256="229726f436cc515bfd8c4aa7af3a97b18072f71b5ebd0b08daf6565571e2d9eb") + version("2025.4", sha256="ca17720b4a260eb73649211e9f6a940ee7543452129844213c3accb0a927a5c3") + version("2025.3", sha256="8bdfca0268f3f10a7ca3c06e59b62f73ea02420c67211c0ff3912f32d7833c65") version("2025.2", sha256="0df09f9d45a99ef00e66b9baa9493a27e906813763a3b6c7672217c66b43ea11") version("2025.1", sha256="0adf621a80fd8043f8defec84ce02811c0cdf42a052232890932d81f25c4d28a") version("2025.0", sha256="a27ad35a646295bbec129abe684d9d03d1e2e0bd76b0d625e9055746aaefae82") + version("2024.6", sha256="7cbad81f51c71a144d646515a7249aa74940b3f68071f51410e3a9473f05b339") version("2024.5", sha256="fecf06b186cddb942cfb42ee8da5f3eb2b9993e6acc0a2f18d14ac0b014424f3") version("2024.4", sha256="ac618ece2e58afa86b536c5a2c4fcb937f0760318f12d18f10346b6bdebd86a8") version("2024.3", sha256="bbda056ee59390be7d58d84c13a9ec0d4e3635617adf2eb747034922cba1f029") version("2024.2", sha256="802a7e335f2e895770f57b159e4ec368ebb0ff2ce6daccf706c6e8025c36852b") version("2024.1", sha256="937d8f12a36fffbf2af7add71adbb5aa5c5537892d46c9a76afbecab1aa0aac7") version("2024", sha256="04d226d52066a8bc3a42e00d6213de737b4ec292e26703065924ff01956801e2") - version( - "2023.5", - sha256="9cc491d3601a5fe0ec0de727e4432c34877f596fe8a463d4cf0f0f53fb34d08b", - deprecated=True, - ) - version( - "2023.4", - sha256="e5d6c4d9e7ccacfaccb0888619bd21b5ea8911f82b410e68d6db5d40f695f231", - deprecated=True, - ) - version( - "2023.3", - sha256="4ec8f8d0c7af76b13f8fd16db8e2c120e749de439ae9554d9f653f812d78d1cb", - deprecated=True, - ) - version( - "2023.2", - sha256="bce1480727e4b2bb900413b75d99a3266f3507877da4f5b2d491df798f9fcdae", - deprecated=True, - ) - version( - "2023.1", - sha256="eef2bb4a6cb6314cf9da47f26df2a0d27af4bf7b3099723d43601073ab0a42f4", - deprecated=True, - ) - version( - "2023", - sha256="ac92c6da72fbbcca414fd8a8d979e56ecf17c4c1cdabed2da5cfb4e7277b7ba8", - deprecated=True, - ) - version( - "2022.6", - sha256="75d277138475679dd3e334e384a71516570cde767310476687f2a5b72333ea41", - deprecated=True, - ) - version( - "2022.5", - sha256="083cc3c424bb93ffe86c12f952e3e5b4e6c9f6520de5338761f24b75e018c223", - deprecated=True, - ) - version( - "2022.4", - sha256="c511be602ff29402065b50906841def98752639b92a95f1b0a1060d9b5e27297", - deprecated=True, - ) - version( - "2022.3", - sha256="14cfb130ddaf8f759a3af643c04f5a0d0d32b09bc3448b16afa5b617f5e35dae", - deprecated=True, - ) - version( - "2022.2", - sha256="656404f884d2fa2244c97d2a5b92af148d0dbea94ad13004724b3fcbf45e01bf", - deprecated=True, - ) - version( - "2022.1", - sha256="85ddab5197d79524a702c4959c2c43be875e0fc471df3a35224939dce8512450", - deprecated=True, - ) - version( - "2022", - sha256="fad60d606c02e6164018692c6c9f2c159a9130c2bf32e8c5f4f1b6ba2dda2b68", - deprecated=True, - ) # See exception documented above version("2019.6", sha256="bebe396dc0db11a9d4cc205abc13b50d88225617642508168a2195324f06a358") @@ -226,9 +165,19 @@ class Gromacs(CMakePackage, CudaPackage): ) variant("openmp", default=True, description="Enables OpenMP at configure time") + + # When using apple-clang version 15.x or newer, need to use the llvm-openmp library + # We also protect with version 2025+ as there seems to be a CMake bug with + # Apple Clang and OpenMP that is fixed in 2025 + depends_on("llvm-openmp", when="@2025: +openmp %apple-clang@15:", type=("build", "run")) + + # But we need to block +openmp %apple-clang for GROMACS older than 2025 conflicts( - "+openmp", when="%apple-clang", msg="OpenMP not available for the Apple clang compiler" + "+openmp", + when="@:2024 %apple-clang", + msg="OpenMP not available for the Apple clang compiler", ) + variant("openmp_max_threads", default="none", description="Max number of OpenMP threads") conflicts( "+openmp_max_threads", when="~openmp", msg="OpenMP is off but OpenMP Max threads is set" @@ -242,6 +191,13 @@ class Gromacs(CMakePackage, CudaPackage): variant( "sve", default=True, description="Enable SVE on aarch64 if available", when="target=a64fx" ) + conflicts( + "+sve", + when="%clang@20", + msg="There is a severe performance regression in GROMACS with SVE and Clang 20; " + "disable SVE (~sve) or use a different compiler. " + "See https://gitlab.com/gromacs/gromacs/-/issues/5390", + ) variant( "relaxed_double_precision", default=False, @@ -270,6 +226,7 @@ class Gromacs(CMakePackage, CudaPackage): depends_on("mpi", when="+mpi") + # Plumed 2.10.0 needs Gromacs 2025.0, 2024.3, 2023.5, 2022.5 # Plumed 2.9.0 needs Gromacs 2023, 2022.5, 2021.7, 2020.7 # Plumed 2.8.3 needs Gromacs 2022.5, 2021.7, 2020.7, 2019.6 # Plumed 2.8.2 needs Gromacs 2022.5, 2021.7, 2020.7, 2019.6 @@ -307,15 +264,19 @@ class Gromacs(CMakePackage, CudaPackage): # see https://github.com/spack/spack/releases/tag/v0.20.0 plumed_patches = { - "=2023": "2.9.1", - "2022.5": "2.8.2:2.9.1", + "2025.0": "2.10.0", + "2024.3": "2.9.3:2.10.0", + "2024.2": "2.9.2", + "2023.5": "2.9.2:2.10.0", + "=2023": "2.9.0:2.9.1", + "2022.5": "2.8.2:2.10.0", "2022.3": "2.8.1", - "2021.7": "2.8.2:2.9.1", + "2021.7": "2.8.2:2.9.4", "2021.6": "2.8.1", "2021.5": "2.7.5:2.7.6", "2021.4": "2.7.3:2.8.0", "=2021": "2.7.1:2.7.2", - "2020.7": "2.8.1:2.9.1", + "2020.7": "2.8.1:2.9.4", "2020.6": "2.7.2:2.8.0", "2020.5": "2.7.1", "2020.4": "2.6.2:2.7.0", @@ -364,7 +325,9 @@ class Gromacs(CMakePackage, CudaPackage): depends_on("cmake@3.9.6:3", type="build", when="@2020") depends_on("cmake@3.13.0:3", type="build", when="@2021") depends_on("cmake@3.16.3:3", type="build", when="@2022:") - depends_on("cmake@3.18.4:3", type="build", when="@main") + depends_on("cmake@3.18.4:3", type="build", when="@2023:") + depends_on("cmake@3.28.0:3", type="build", when="@2025:") + depends_on("cmake@3.28.0:3", type="build", when="@main") depends_on("cmake@3.16.0:3", type="build", when="%fj") depends_on("pkgconfig", type="build") @@ -381,7 +344,6 @@ class Gromacs(CMakePackage, CudaPackage): depends_on("gcc-runtime@9:", when="@2023:2024") depends_on("gcc-runtime@11:", when="@2025:") - depends_on("hwloc@1.0:1", when="+hwloc@2016:2018") depends_on("hwloc", when="+hwloc@2019:") depends_on("cp2k@8.1:", when="+cp2k") @@ -402,14 +364,15 @@ class Gromacs(CMakePackage, CudaPackage): requires("^[virtuals=fftw-api] intel-oneapi-mkl", when="^[virtuals=lapack] intel-oneapi-mkl") requires("^[virtuals=lapack] intel-oneapi-mkl", when="^[virtuals=fftw-api] intel-oneapi-mkl") - patch("gmxDetectCpu-cmake-3.14.patch", when="@2018:2019.3^cmake@3.14.0:") - patch("gmxDetectSimd-cmake-3.14.patch", when="@5.0:2017^cmake@3.14.0:") - # 2021.2 will always try to build tests (see https://gromacs.bioexcel.eu/t/compilation-failure-for-gromacs-2021-1-and-2021-2-with-cmake-3-20-2/2129) + # 2025.0 CMake fix for PLUMED patch( - "https://gitlab.com/gromacs/gromacs/-/commit/10262892e11a87fda0f59e633c89ed5ab1100509.diff", - sha256="2c30d00404b76421c13866cc42afa5e63276f7926c862838751b158df8727b1b", - when="@2021.1:2021.2", + "https://gitlab.com/gromacs/gromacs/-/merge_requests/4966.diff", + sha256="9372c235719ca04d6dd418fb5943f773e03f05246e3e059a8578089b14b2420c", + when="@2025.0", ) + # https://gitlab.com/gromacs/gromacs/-/issues/5289 + # https://gitlab.com/gromacs/gromacs/-/merge_requests/4965 + patch("pr4965-2025.0.patch", when="@2025.0") filter_compiler_wrappers( "*.cmake", relative_root=os.path.join("share", "cmake", "gromacs_mpi") @@ -663,13 +626,13 @@ def cmake_args(self): if self.spec.satisfies("+cufftmp"): options.append("-DGMX_USE_CUFFTMP=ON") options.append( - f'-DcuFFTMp_ROOT={self.spec["nvhpc"].prefix}/Linux_{self.spec.target.family}' - + f'/{self.spec["nvhpc"].version}/math_libs' + f"-DcuFFTMp_ROOT={self.spec['nvhpc'].prefix}/Linux_{self.spec.target.family}" + + f"/{self.spec['nvhpc'].version}/math_libs" ) if self.spec.satisfies("+heffte"): options.append("-DGMX_USE_HEFFTE=on") - options.append(f'-DHeffte_ROOT={self.spec["heffte"].prefix}') + options.append(f"-DHeffte_ROOT={self.spec['heffte'].prefix}") if self.spec.satisfies("+intel-data-center-gpu-max"): options.append("-DGMX_GPU_NB_CLUSTER_SIZE=8") @@ -816,9 +779,12 @@ def cmake_args(self): # Ensure that the GROMACS log files report how the code was patched # during the build, so that any problems are easier to diagnose. + # Do not rely on GMX_USE_PLUMED=AUTO if self.spec.satisfies("+plumed"): + options.append("-DGMX_USE_PLUMED=ON") options.append("-DGMX_VERSION_STRING_OF_FORK=PLUMED-spack") else: + options.append("-DGMX_USE_PLUMED=OFF") options.append("-DGMX_VERSION_STRING_OF_FORK=spack") return options diff --git a/repos/spack_repo/builtin/packages/gromacs/pr4965-2025.0.patch b/repos/spack_repo/builtin/packages/gromacs/pr4965-2025.0.patch new file mode 100644 index 00000000000..b5d07f372e4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/gromacs/pr4965-2025.0.patch @@ -0,0 +1,16 @@ +diff --git a/src/gromacs/domdec/ga2la.cpp b/src/gromacs/domdec/ga2la.cpp +index f8de0a23f92f0bf50afbd996e4c062e9909b74e8..32999842220b671fc6e93ce9418f938f083666cd 100644 +--- a/src/gromacs/domdec/ga2la.cpp ++++ b/src/gromacs/domdec/ga2la.cpp +@@ -80,8 +80,9 @@ gmx_ga2la_t::gmx_ga2la_t(int numAtomsTotal, int numAtomsLocal) : + } + else + { +- new (&(data_.hashed)) +- gmx::HashedMap(numAtomsLocal, gmx_omp_nthreads_get(ModuleMultiThread::Domdec)); ++ // We would like to be able to use more than 1 thread for clearing the hashed map, ++ // but the gmx_omp_nthreads might not be initialized at this point. See #5289 ++ new (&(data_.hashed)) gmx::HashedMap(numAtomsLocal); + } + } + diff --git a/repos/spack_repo/builtin/packages/gromacs_swaxs/gmxDetectCpu-cmake-3.14.patch b/repos/spack_repo/builtin/packages/gromacs_swaxs/gmxDetectCpu-cmake-3.14.patch deleted file mode 100644 index 534ac4baabf..00000000000 --- a/repos/spack_repo/builtin/packages/gromacs_swaxs/gmxDetectCpu-cmake-3.14.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/cmake/gmxDetectCpu.cmake -+++ b/cmake/gmxDetectCpu.cmake -@@ -83,7 +83,7 @@ function(gmx_run_cpu_detection TYPE) - set(GCC_INLINE_ASM_DEFINE "-DGMX_X86_GCC_INLINE_ASM=0") - endif() - -- set(_compile_definitions "${GCC_INLINE_ASM_DEFINE} -I${PROJECT_SOURCE_DIR}/src -DGMX_CPUINFO_STANDALONE ${GMX_STDLIB_CXX_FLAGS} -DGMX_TARGET_X86=${GMX_TARGET_X86_VALUE}") -+ set(_compile_definitions ${GCC_INLINE_ASM_DEFINE} -I${PROJECT_SOURCE_DIR}/src -DGMX_CPUINFO_STANDALONE ${GMX_STDLIB_CXX_FLAGS} -DGMX_TARGET_X86=${GMX_TARGET_X86_VALUE}) - set(LINK_LIBRARIES "${GMX_STDLIB_LIBRARIES}") - try_compile(CPU_DETECTION_COMPILED - "${PROJECT_BINARY_DIR}" diff --git a/repos/spack_repo/builtin/packages/gromacs_swaxs/gmxDetectSimd-cmake-3.14.patch b/repos/spack_repo/builtin/packages/gromacs_swaxs/gmxDetectSimd-cmake-3.14.patch deleted file mode 100644 index f30ec78a7a3..00000000000 --- a/repos/spack_repo/builtin/packages/gromacs_swaxs/gmxDetectSimd-cmake-3.14.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/cmake/gmxDetectSimd.cmake -+++ b/cmake/gmxDetectSimd.cmake -@@ -77,7 +77,7 @@ function(gmx_suggest_simd _suggested_simd) - else() - set(GMX_TARGET_X86_VALUE 0) - endif() -- set(_compile_definitions "${GCC_INLINE_ASM_DEFINE} -I${CMAKE_SOURCE_DIR}/src -DGMX_CPUINFO_STANDALONE ${GMX_STDLIB_CXX_FLAGS} -DGMX_TARGET_X86=${GMX_TARGET_X86_VALUE}") -+ set(_compile_definitions ${GCC_INLINE_ASM_DEFINE} -I${CMAKE_SOURCE_DIR}/src -DGMX_CPUINFO_STANDALONE ${GMX_STDLIB_CXX_FLAGS} -DGMX_TARGET_X86=${GMX_TARGET_X86_VALUE}) - - # Prepare a default suggestion - set(OUTPUT_SIMD "None") diff --git a/repos/spack_repo/builtin/packages/gromacs_swaxs/package.py b/repos/spack_repo/builtin/packages/gromacs_swaxs/package.py index 905abd632a9..7361717b947 100644 --- a/repos/spack_repo/builtin/packages/gromacs_swaxs/package.py +++ b/repos/spack_repo/builtin/packages/gromacs_swaxs/package.py @@ -40,13 +40,6 @@ class GromacsSwaxs(Gromacs): url="https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2021.swaxs-0.2/gromacs-swaxs-release-2021.swaxs-0.2.tar.bz2", ) - version( - "2021.4-0.1", - sha256="eda1c8a7aae6001ef40480addf9fff9cdccc7e2b80480e36d069f50d6f2be26e", - deprecated=True, - url="https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2021.swaxs-0.1/gromacs-swaxs-release-2021.swaxs-0.1.tar.bz2", - ) - version( "2020.7-0.4", sha256="3eb0975ec92a89f6a3be548896307376974805ac685a9f776b0131a449a6b8a4", @@ -65,26 +58,12 @@ class GromacsSwaxs(Gromacs): url="https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2020.swaxs-0.2/gromacs-swaxs-release-2020.swaxs-0.2.tar.bz2", ) - version( - "2020.6-0.1", - sha256="3d8360a3cc9144772786bddaa11e3dbc37d6a466b99f3314bf3928261c2fddcf", - deprecated=True, - url="https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2020.swaxs-0.1/gromacs-swaxs-release-2020.swaxs-0.1.tar.bz2", - ) - version( "2019.6-0.3", sha256="1cf81592813333954bb1051321543f211d81f120a821a0c9386081e4cd367e84", url="https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2019.swaxs-0.3/gromacs-swaxs-release-2019.swaxs-0.3.tar.bz2", ) - version( - "2019.6-0.2", - sha256="a45eeee3983a4443d3a40ea417770f3abd93f43eb80e021fd9d6830e414565cb", - deprecated=True, - url="https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2019.swaxs-0.2/gromacs-swaxs-release-2019.swaxs-0.2.tar.bz2", - ) - version( "2019.6-0.1", sha256="91da09eed80646d6a1c500be78891bef22623a19795a9bc89adf9f2ec4f85635", @@ -97,13 +76,6 @@ class GromacsSwaxs(Gromacs): url="https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2018.swaxs-0.4/gromacs-swaxs-release-2018.swaxs-0.4.tar.bz2", ) - version( - "2018.8-0.3", - sha256="5e94d636fda28e81ff1f3cff2c9f6e7f458bf496f4d1ed7bc10e911bd98b303c", - deprecated=True, - url="https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2018.swaxs-0.3/gromacs-swaxs-release-2018.swaxs-0.3.tar.bz2", - ) - version( "2018.8-0.2", sha256="f8bf0d363334a9117a2a8deb690dadaa826b73b57a761949c7846a13b84b5af5", diff --git a/repos/spack_repo/builtin/packages/grpc/package.py b/repos/spack_repo/builtin/packages/grpc/package.py index fd88a304a45..d907a38a517 100644 --- a/repos/spack_repo/builtin/packages/grpc/package.py +++ b/repos/spack_repo/builtin/packages/grpc/package.py @@ -14,6 +14,8 @@ class Grpc(CMakePackage): license("Apache-2.0 AND BSD-3-Clause AND MIT") + version("1.76.0", sha256="0af37b800953130b47c075b56683ee60bdc3eda3c37fc6004193f5b569758204") + version("1.67.1", sha256="d74f8e99a433982a12d7899f6773e285c9824e1d9a173ea1d1fb26c9bd089299") version("1.66.1", sha256="79ed4ab72fa9589b20f8b0b76c16e353e4cfec1d773d33afad605d97b5682c61") version("1.64.0", sha256="d5509e40fb24f6390deeef8a88668124f4ec77d2ebb3b1a957b235a2f08b70c0") version("1.63.0", sha256="493d9905aa09124c2f44268b66205dd013f3925a7e82995f36745974e97af609") @@ -52,7 +54,7 @@ class Grpc(CMakePackage): variant( "codegen", default=True, - description="Builds code generation plugins for protobuf " "compiler (protoc)", + description="Builds code generation plugins for protobuf compiler (protoc)", ) variant( "cxxstd", @@ -67,6 +69,11 @@ class Grpc(CMakePackage): depends_on("protobuf") depends_on("protobuf@3.22:", when="@1.55:") + # older versions require the removed header file + depends_on("protobuf@:33", when="@:1.71") + # https://github.com/grpc/grpc/commit/dfdda9eb9d308640ea6947f3ad16c86d7b89d7fd + depends_on("protobuf@:29", when="@:1.68") + depends_on("openssl") depends_on("zlib-api") depends_on("c-ares") @@ -75,6 +82,7 @@ class Grpc(CMakePackage): depends_on("abseil-cpp") # missing includes: https://github.com/grpc/grpc/commit/bc044174401a0842b36b8682936fc93b5041cf88 depends_on("abseil-cpp@:20230802", when="@:1.61") + depends_on("abseil-cpp@20240116.1:20240117.0", when="@1.67") depends_on("re2+pic@2023-09-01", when="@1.33.1:") @@ -102,3 +110,27 @@ def cmake_args(self): if self.spec.satisfies("@1.33.1:"): args.append("-DgRPC_RE2_PROVIDER:String=package") return args + + def patch(self): + # GCC 13+ and Clang 15+ removed implicit transitive includes (e.g. , + # , , ). Inject them into the portability header + if self.spec.satisfies("%gcc@13:") or self.spec.satisfies("%clang@15:"): + filter_file( + r"(#define GRPC_SUPPORT_PORT_PLATFORM_H)", + r"\1" + "\n// Added by Spack: fix missing transitive includes for GCC 13+ / Clang 15+\n" + "#if defined(__cplusplus)\n" + "#include \n" + "#include \n" + "#include \n" + "#include \n" + "#endif\n", + join_path(self.stage.source_path, "include/grpc/support/port_platform.h"), + ) + + # glob.cc uses std::min/std::max but omits + filter_file( + r'(#include "absl/strings/string_view.h")', + '#include \n#include "absl/strings/string_view.h"', + join_path(self.stage.source_path, "src/core/util/glob.cc"), + ) diff --git a/repos/spack_repo/builtin/packages/gsl/package.py b/repos/spack_repo/builtin/packages/gsl/package.py index 21306295cf5..74a4f3dfcb0 100644 --- a/repos/spack_repo/builtin/packages/gsl/package.py +++ b/repos/spack_repo/builtin/packages/gsl/package.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os import re from spack_repo.builtin.build_systems.autotools import AutotoolsPackage @@ -65,8 +66,13 @@ def force_autoreconf(self): def configure_args(self): configure_args = [] if self.spec.satisfies("+external-cblas"): - configure_args.append("--with-external-cblas") - configure_args.append("CBLAS_CFLAGS=%s" % self.spec["blas"].headers.include_flags) + inc = self.spec["blas"].headers.include_flags + # openblas can install the headers into include/openblas which trips up the autoconf + if self.spec["blas"].name == "openblas": + inc = os.path.join(inc, "openblas") + + configure_args.append("--with-cblas-external") + configure_args.append("CBLAS_CFLAGS=%s" % inc) configure_args.append("CBLAS_LIBS=%s" % self.spec["blas"].libs.ld_flags) configure_args.extend(self.enable_or_disable("shared")) diff --git a/repos/spack_repo/builtin/packages/gslib/package.py b/repos/spack_repo/builtin/packages/gslib/package.py index d40eeb607ca..b3f8360db1c 100644 --- a/repos/spack_repo/builtin/packages/gslib/package.py +++ b/repos/spack_repo/builtin/packages/gslib/package.py @@ -20,15 +20,6 @@ class Gslib(Package): version("1.0.5", tag="v1.0.5", commit="1de2fba1d94e27e20f3bc3af6a3a35901e223ecd") version("1.0.4", tag="v1.0.4", commit="00a074c15a13fdfd121ac5781ae450af809dde3b") version("1.0.3", tag="v1.0.3", commit="e2df99fad9480a981034fd0e4b3a7fe8f3cf9ae3") - version( - "1.0.2", tag="v1.0.2", commit="e53419c32a4a326e55e1c3e0d7de14ce665c1788", deprecated=True - ) - version( - "1.0.1", tag="v1.0.1", commit="d16685f24551b7efd69e58d96dc76aec75239ea3", deprecated=True - ) - version( - "1.0.0", tag="v1.0.0", commit="9533e652320a3b26a72c36487ae265b02072cd48", deprecated=True - ) variant("mpi", default=True, description="Build with MPI") variant("mpiio", default=True, description="Build with MPI I/O") diff --git a/repos/spack_repo/builtin/packages/gsoap/package.py b/repos/spack_repo/builtin/packages/gsoap/package.py index bba002167e2..3a14e54bfb9 100644 --- a/repos/spack_repo/builtin/packages/gsoap/package.py +++ b/repos/spack_repo/builtin/packages/gsoap/package.py @@ -20,29 +20,6 @@ class Gsoap(AutotoolsPackage, SourceforgePackage): maintainers("greenc-FNAL", "gartung", "marcmengel", "vitodb") version("2.8.135", sha256="b11757e405d55d4674dfbf88c4fa6d7e24155cf64ed8ed578ccad2f2b555e98d") - with default_args(deprecated=True): - # Unavailable for direct download anymore - version( - "2.8.127", sha256="25ecad1bbc363494eb7ea95a68508e4c93cc20596fad9ebc196c6572bbbd3c08" - ) - version( - "2.8.124", sha256="4b798780989338f665ef8e171bbcc422a271004d62d5852666d5eeca33a6a636" - ) - version( - "2.8.119", sha256="8997c43b599a2bfe4a788e303a5dd24bbf5992fd06d56f606ca680ca5b0070cf" - ) - version( - "2.8.114", sha256="aa70a999258100c170a3f8750c1f91318a477d440f6a28117f68bc1ded32327f" - ) - version( - "2.8.113", sha256="e73782b618303cf55ea6a45751b75ba96797a7a12967ed9d02e6d5761977e73a" - ) - version( - "2.8.112", sha256="05345312e0bb4d81c98ae63b97cff9eb097f38dafe09356189f9d8e235c54095" - ) - version( - "2.8.111", sha256="f1670c7e3aeaa66bc5658539fbd162e5099f022666855ef2b2c2bac07fec4bd3" - ) depends_on("openssl") depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/gspell/package.py b/repos/spack_repo/builtin/packages/gspell/package.py new file mode 100644 index 00000000000..f9cad7a19ba --- /dev/null +++ b/repos/spack_repo/builtin/packages/gspell/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.meson import MesonPackage + +from spack.package import * + + +class Gspell(MesonPackage): + """A spell-checking library for GTK applications""" + + homepage = "https://github.com/gnome/gspell" + url = "https://download.gnome.org/sources/gspell/1.14/gspell-1.14.0.tar.xz" + + maintainers("KineticTheory") + + license("GNU LGPL-2.1") + + version("1.14.0", sha256="64ea1d8e9edc1c25b45a920e80daf67559d1866ffcd7f8432fecfea6d0fe8897") + + depends_on("c", type="build") + + depends_on("cairo", type="build") + depends_on("enchant", type="build") + depends_on("glib@2.54:", type="build") + depends_on("gtk-doc", type="build") + depends_on("gtkplus") + depends_on("harfbuzz", type="build") + depends_on("icu4c", type="build") + depends_on("libffi", type="build") + depends_on("mesa", type="build") + depends_on("pcre2", type="build") + depends_on("vala", type="build") + depends_on("zlib", type="build") + + def url_for_version(self, version): + return ( + f"https://download.gnome.org/sources/gspell/{version.up_to(2)}/gspell-{version}.tar.xz" + ) + + def meson_args(self): + return ["-Dgtk_doc=false", "-Dtests=false"] diff --git a/repos/spack_repo/builtin/packages/gtk_doc/package.py b/repos/spack_repo/builtin/packages/gtk_doc/package.py index e35be390cec..28d72dc19d9 100644 --- a/repos/spack_repo/builtin/packages/gtk_doc/package.py +++ b/repos/spack_repo/builtin/packages/gtk_doc/package.py @@ -35,7 +35,7 @@ class GtkDoc(AutotoolsPackage): depends_on("itstool", type="build") depends_on("libtool", type="build") depends_on("m4", type="build") - depends_on("pkgconfig@0.19:", type=("build", "run")) + depends_on("pkgconfig", type=("build", "run")) depends_on("python@3.2:", type=("build", "run")) depends_on("py-pygments", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/gtkorvo_atl/package.py b/repos/spack_repo/builtin/packages/gtkorvo_atl/package.py index bd15ee05a08..dbee59ffafb 100644 --- a/repos/spack_repo/builtin/packages/gtkorvo_atl/package.py +++ b/repos/spack_repo/builtin/packages/gtkorvo_atl/package.py @@ -16,26 +16,32 @@ class GtkorvoAtl(CMakePackage): url = "https://github.com/GTkorvo/atl/archive/v2.1.tar.gz" git = "https://github.com/GTkorvo/atl.git" + maintainers("eisenhauer", "vicentebolea") + version("master", branch="master") - version("develop", branch="master", deprecated=True) - version("2.2.1", sha256="7ff2dca93702ed56e3bbfd8eb52da3bb5f0e7bef5006f3ca29aaa468cab89037") - version("2.2", sha256="d88b6eaa3926e499317973bfb2ae469c584bb064da198217ea5fede6d919e160") - version("2.1", sha256="379b493ba867b76d76eabfe5bfeec85239606e821509c31e8eb93c2dc238e4a8") + version("2.3.0", sha256="8f5746bc2362fd7fe3aa1814f1704449972570f903b2391a7ae6e4efa4cd60be") + + with default_args(deprecated=True): + version("2.2.1", sha256="7ff2dca93702ed56e3bbfd8eb52da3bb5f0e7bef5006f3ca29aaa468cab89037") + version("2.2", sha256="d88b6eaa3926e499317973bfb2ae469c584bb064da198217ea5fede6d919e160") + version("2.1", sha256="379b493ba867b76d76eabfe5bfeec85239606e821509c31e8eb93c2dc238e4a8") + + variant("shared", default=True, when="@2.3:", description="Build shared libraries") depends_on("c", type="build") # generated - depends_on("gtkorvo-cercs-env") + depends_on("gtkorvo-cercs-env", when="@:2.2.1") def cmake_args(self): args = [] - if self.spec.satisfies("@2.2:"): + if self.spec.satisfies("@2.3:"): + args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared")) + elif self.spec.satisfies("@2.2"): args.append("-DBUILD_SHARED_LIBS=OFF") else: args.append("-DENABLE_BUILD_STATIC=STATIC") - if self.run_tests: - args.append("-DENABLE_TESTING=1") - else: - args.append("-DENABLE_TESTING=0") + args.append(self.define("ENABLE_TESTING", self.run_tests)) + args.append("-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE") return args diff --git a/repos/spack_repo/builtin/packages/gtkorvo_dill/package.py b/repos/spack_repo/builtin/packages/gtkorvo_dill/package.py index e9b2ddc6954..20228e7b7a5 100644 --- a/repos/spack_repo/builtin/packages/gtkorvo_dill/package.py +++ b/repos/spack_repo/builtin/packages/gtkorvo_dill/package.py @@ -17,9 +17,18 @@ class GtkorvoDill(CMakePackage): url = "https://github.com/GTkorvo/dill/archive/v2.1.tar.gz" git = "https://github.com/GTkorvo/dill.git" + maintainers("eisenhauer", "vicentebolea") + version("develop", branch="master") - version("2.4", sha256="ed7745d13e8c6a556f324dcc0e48a807fc993bdd5bb1daa94c1df116cb7e81fa") - version("2.1", sha256="7671e1f3c25ac6a4ec2320cec2c342a2f668efb170e3dba186718ed17d2cf084") + version("3.3.0", sha256="b29b68ce0cb778ccee614db12405cb72e817b74e914ca909a39e6a4a62fdd9a5") + version("3.2.0", sha256="80d7e80a7b4d532e71de860f0b138bdf63db350b4517f08c5a596a4c84a501a4") + + with default_args(deprecated=True): + version("2.4.1", sha256="93c9e3c8e24ab91786639273a89934c2f384638b03aa0dd0f40e58cdf5a8f0f7") + version("2.4", sha256="ed7745d13e8c6a556f324dcc0e48a807fc993bdd5bb1daa94c1df116cb7e81fa") + version("2.1", sha256="7671e1f3c25ac6a4ec2320cec2c342a2f668efb170e3dba186718ed17d2cf084") + + variant("shared", default=True, when="@3.2:", description="Build shared libraries") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -30,14 +39,14 @@ class GtkorvoDill(CMakePackage): def cmake_args(self): args = [] - if self.spec.satisfies("@2.4:"): + if self.spec.satisfies("@3.2:"): + args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared")) + elif self.spec.satisfies("@2.4"): args.append("-DBUILD_SHARED_LIBS=OFF") else: args.append("-DENABLE_BUILD_STATIC=STATIC") - if self.run_tests: - args.append("-DENABLE_TESTING=1") - else: - args.append("-DENABLE_TESTING=0") + args.append(self.define("ENABLE_TESTING", self.run_tests)) + args.append("-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE") return args diff --git a/repos/spack_repo/builtin/packages/gtkplus/package.py b/repos/spack_repo/builtin/packages/gtkplus/package.py index 082a0a6aa9f..831fb52f1c7 100644 --- a/repos/spack_repo/builtin/packages/gtkplus/package.py +++ b/repos/spack_repo/builtin/packages/gtkplus/package.py @@ -14,44 +14,21 @@ class Gtkplus(AutotoolsPackage, MesonPackage): interfaces for applications.""" homepage = "https://www.gtk.org/" - url = "https://download.gnome.org/sources/gtk+/3.24/gtk+-3.24.26.tar.xz" + url = "https://download.gnome.org/sources/gtk/3.24/gtk-3.24.50.tar.xz" license("LGPL-2.0-or-later") build_system( conditional("autotools", when="@:3.24.35"), conditional("meson", when="@3.24.9:"), - default="autotools", + default="meson", ) + version("3.24.50", sha256="399118a5699314622165a11b769ea9b6ed68e037b6d46d57cfcf4851dec07529") + version("3.24.43", sha256="7e04f0648515034b806b74ae5d774d87cffb1a2a96c468cb5be476d51bf2f3c7") version("3.24.41", sha256="47da61487af3087a94bc49296fd025ca0bc02f96ef06c556e7c8988bd651b6fa") version("3.24.29", sha256="f57ec4ade8f15cab0c23a80dcaee85b876e70a8823d9105f067ce335a8268caa") version("3.24.26", sha256="2cc1b2dc5cad15d25b6abd115c55ffd8331e8d4677745dd3ce6db725b4fff1e9") - version( - "3.22.30", - sha256="a1a4a5c12703d4e1ccda28333b87ff462741dc365131fbc94c218ae81d9a6567", - deprecated=True, - ) - version( - "3.20.10", - sha256="e81da1af1c5c1fee87ba439770e17272fa5c06e64572939814da406859e56b70", - deprecated=True, - ) - version( - "2.24.32", - sha256="b6c8a93ddda5eabe3bfee1eb39636c9a03d2a56c7b62828b359bf197943c582e", - deprecated=True, - ) - version( - "2.24.31", - sha256="68c1922732c7efc08df4656a5366dcc3afdc8791513400dac276009b40954658", - deprecated=True, - ) - version( - "2.24.25", - sha256="38af1020cb8ff3d10dda2c8807f11e92af9d2fa4045de61c62eedb7fbc7ea5b3", - deprecated=True, - ) variant("cups", default=False, description="enable cups support") @@ -95,7 +72,10 @@ class Gtkplus(AutotoolsPackage, MesonPackage): patch("no-demos.patch", when="@2.0:2") def url_for_version(self, version): - url = "https://download.gnome.org/sources/gtk+/{0}/gtk+-{1}.tar.xz" + if self.spec.satisfies("@:3.24.43"): + url = "https://download.gnome.org/sources/gtk+/{0}/gtk+-{1}.tar.xz" + else: + url = "https://download.gnome.org/sources/gtk/{0}/gtk-{1}.tar.xz" return url.format(version.up_to(2), version) def patch(self): @@ -120,7 +100,6 @@ def setup_dependent_run_environment( class BuildEnvironment: - def setup_dependent_build_environment( self, env: EnvironmentModifications, dependent_spec: Spec ) -> None: @@ -129,7 +108,6 @@ def setup_dependent_build_environment( class MesonBuilder(BuildEnvironment, meson.MesonBuilder): - def meson_args(self): args = [] @@ -150,9 +128,8 @@ def check(self): class AutotoolsBuilder(BuildEnvironment, autotools.AutotoolsBuilder): - def configure_args(self): - true = which("true") + true = which("true", required=True) args = [ "--prefix={0}".format(self.prefix), # disable building of gtk-doc files following #9771 diff --git a/repos/spack_repo/builtin/packages/gtksourceview/package.py b/repos/spack_repo/builtin/packages/gtksourceview/package.py index 5edb47bf8c0..9b6aa640c16 100644 --- a/repos/spack_repo/builtin/packages/gtksourceview/package.py +++ b/repos/spack_repo/builtin/packages/gtksourceview/package.py @@ -4,11 +4,12 @@ from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.build_systems.meson import MesonPackage from spack.package import * -class Gtksourceview(AutotoolsPackage): +class Gtksourceview(MesonPackage, AutotoolsPackage): """GtkSourceView is a GNOME library that extends GtkTextView, the standard GTK+ widget for multiline text editing. GtkSourceView adds support for syntax highlighting, undo/redo, file loading and saving, @@ -21,6 +22,7 @@ class Gtksourceview(AutotoolsPackage): license("LGPL-2.1-or-later") + version("4.8.4", sha256="7ec9d18fb283d1f84a3a3eff3b7a72b09a10c9c006597b3fbabbb5958420a87d") version("4.2.0", sha256="c431eb234dc83c7819e58f77dd2af973252c7750da1c9d125ddc94268f94f675") version("3.24.11", sha256="691b074a37b2a307f7f48edc5b8c7afa7301709be56378ccf9cc9735909077fd") @@ -28,6 +30,10 @@ class Gtksourceview(AutotoolsPackage): depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated + build_system( + conditional("autotools", when="@:4.2"), conditional("meson", when="@4.8:"), default="meson" + ) + depends_on("m4", type="build") depends_on("autoconf", type="build") depends_on("automake", type="build") @@ -36,13 +42,14 @@ class Gtksourceview(AutotoolsPackage): depends_on("intltool", type="build") depends_on("pkgconfig", type="build") depends_on("gettext") - depends_on("glib@2.48.0:", when="@3.24.11:4.2.0") - depends_on("gtkplus@3.20.0:", when="@3.24.11:4.2.0") - depends_on("libxml2@2.6:", when="@3.24.11:4.2.0") + depends_on("glib@2.48.0:", when="@3.24.11:") + depends_on("gtkplus@3.20.0:", when="@3.24.11:") + depends_on("libxml2@2.6:", when="@3.24.11:") depends_on("pango") depends_on("gdk-pixbuf") depends_on("atk") depends_on("iconv") + depends_on("vala", when="@4.8:") def url_for_version(self, version): url = "https://download.gnome.org/sources/gtksourceview/" @@ -68,5 +75,5 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: # TODO: If https://github.com/spack/spack/pull/12344 is merged, this # method is unnecessary. def autoreconf(self, spec, prefix): - autoreconf = which("autoreconf") + autoreconf = which("autoreconf", required=True) autoreconf("-ifv") diff --git a/repos/spack_repo/builtin/packages/guacamole_server/package.py b/repos/spack_repo/builtin/packages/guacamole_server/package.py index cf58c1360b3..1c73ebd25c5 100644 --- a/repos/spack_repo/builtin/packages/guacamole_server/package.py +++ b/repos/spack_repo/builtin/packages/guacamole_server/package.py @@ -18,9 +18,6 @@ class GuacamoleServer(AutotoolsPackage): license("GPL-3.0-or-later") version("1.5.5", sha256="50430c0f0f3b92f2cd3e60436fab0cedee8c1a9f762696a666016347039c731e") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2023-43826 - version("1.1.0", sha256="d0f0c66ebfa7a4fd6689ae5240f21797b5177945a042388b691b15b8bd5c81a8") depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/guile/package.py b/repos/spack_repo/builtin/packages/guile/package.py index 10d9de2a668..48a252224d9 100644 --- a/repos/spack_repo/builtin/packages/guile/package.py +++ b/repos/spack_repo/builtin/packages/guile/package.py @@ -13,10 +13,12 @@ class Guile(AutotoolsPackage, GNUMirrorPackage): the official extension language for the GNU operating system.""" homepage = "https://www.gnu.org/software/guile/" - gnu_mirror_path = "guile/guile-2.2.0.tar.gz" + gnu_mirror_path = "guile/guile-3.0.11.tar.gz" license("LGPL-3.0-or-later AND GPL-3.0-or-later") + version("3.0.11", sha256="3c9c16972a73bb792752f2e4f1cce7212d7638d5494b5f7e8e19f3819dbf3a19") + version("3.0.10", sha256="2dbdbc97598b2faf31013564efb48e4fed44131d28e996c26abe8a5b23b56c2a") version("2.2.6", sha256="08c0e7487777740b61cdd97949b69e8a5e2997d8c2fe6c7e175819eb18444506") version("2.2.5", sha256="c3c7a2f6ae0d8321a240c7ebc532a1d47af8c63214157a73789e2b2305b4c927") version("2.2.4", sha256="33b904c0bf4e48e156f3fb1d0e6b0392033bd610c6c9d9a0410c6e0ea96a3e5c") @@ -28,6 +30,7 @@ class Guile(AutotoolsPackage, GNUMirrorPackage): version("2.0.11", sha256="e6786c934346fa2e38e46d8d81a622bb1c16d130153523f6129fcd79ef1fb040") variant("readline", default=True, description="Use the readline library") + variant("gmp", default=True, description="Use the GMP library") variant( "threads", default="none", @@ -35,19 +38,22 @@ class Guile(AutotoolsPackage, GNUMirrorPackage): multi=False, description="Use the thread interface", ) + variant("shared", default=True, description="Build shared library") depends_on("c", type="build") # generated depends_on("bdw-gc@7.0: threads=none", when="threads=none") depends_on("bdw-gc@7.0: threads=posix", when="threads=posix") depends_on("bdw-gc@7.0: threads=dgux386", when="threads=dgux386") - depends_on("gmp@4.2:") + depends_on("gmp@4.2:", when="+gmp") depends_on("gettext") depends_on("libtool@1.5.6:", type="link") # links to libltdl.so depends_on("libunistring@0.9.3:") depends_on("libffi") + depends_on("libxcrypt", type="link") depends_on("readline", when="+readline") depends_on("pkgconfig", type="build") + depends_on("gperf", when="@3:") build_directory = "spack-build" @@ -82,4 +88,12 @@ def configure_args(self): else: config_args.append("--without-libreadline-prefix") + if not spec.satisfies("+gmp"): + config_args.append("--enable-mini-gmp") + + if spec.satisfies("+shared"): + config_args.append("--enable-shared") + else: + config_args.append("--disable-shared") + return config_args diff --git a/repos/spack_repo/builtin/packages/gxsview/package.py b/repos/spack_repo/builtin/packages/gxsview/package.py index 44b5a5f60f2..da23a9520c3 100644 --- a/repos/spack_repo/builtin/packages/gxsview/package.py +++ b/repos/spack_repo/builtin/packages/gxsview/package.py @@ -41,6 +41,7 @@ class Gxsview(QMakePackage): "2021.07.01", sha256="000f9b4721d4ee03b02730dbbfe83947f96a60a183342b127f0b6b63b03e8f9a" ) + depends_on("cxx", type="build") depends_on("fontconfig") depends_on("qt@5.14.0:+opengl+gui") depends_on("vtk@8.0:+qt+opengl2") # +mpi+python are optional diff --git a/repos/spack_repo/builtin/packages/gzip/package.py b/repos/spack_repo/builtin/packages/gzip/package.py index 6055d5eaef7..3c0a1c37ff4 100644 --- a/repos/spack_repo/builtin/packages/gzip/package.py +++ b/repos/spack_repo/builtin/packages/gzip/package.py @@ -16,22 +16,8 @@ class Gzip(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") + version("1.14", sha256="613d6ea44f1248d7370c7ccdeee0dd0017a09e6c39de894b3c6f03f981191c6b") version("1.13", sha256="20fc818aeebae87cdbf209d35141ad9d3cf312b35a5e6be61bfcfbf9eddd212a") - version( - "1.12", - sha256="5b4fb14d38314e09f2fc8a1c510e7cd540a3ea0e3eb9b0420046b82c3bf41085", - deprecated=True, - ) - version( - "1.11", - sha256="3e8a0e0c45bad3009341dce17d71536c4c655d9313039021ce7554a26cd50ed9", - deprecated=True, - ) - version( - "1.10", - sha256="c91f74430bf7bc20402e1f657d0b252cb80aa66ba333a25704512af346633c68", - deprecated=True, - ) depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/h5bench/package.py b/repos/spack_repo/builtin/packages/h5bench/package.py index fbae9480512..bf76c1862d4 100644 --- a/repos/spack_repo/builtin/packages/h5bench/package.py +++ b/repos/spack_repo/builtin/packages/h5bench/package.py @@ -24,23 +24,14 @@ class H5bench(CMakePackage): version("1.4", commit="67a3e6d91508e5ab77db79c6187b2eb3c96119e0", submodules=True) version("1.3", commit="ec75a466a77c337b4252c0afe1055c7fbe841e16", submodules=True) - version( - "1.2", commit="866af6777573d20740d02acc47a9080de093e4ad", submodules=True, deprecated=True - ) - version( - "1.1", commit="1276530a128025b83a4d9e3814a98f92876bb5c4", submodules=True, deprecated=True - ) - version( - "1.0", commit="9d3438c1bc66c5976279ef203bd11a8d48ade724", submodules=True, deprecated=True - ) - - variant("metadata", default=False, when="@1.2:", description="Enables metadata benchmark") - variant("amrex", default=False, when="@1.2:", description="Enables AMReX benchmark") - variant("exerciser", default=False, when="@1.2:", description="Enables exerciser benchmark") - variant("openpmd", default=False, when="@1.2:", description="Enables OpenPMD benchmark") - variant("e3sm", default=False, when="@1.2:", description="Enables E3SM benchmark") - variant("async", default=False, when="@1.2:", description="Enables ASYNC VOL Connector") - variant("all", default=False, when="@1.2:", description="Enables all h5bench benchmarks") + + variant("metadata", default=False, description="Enables metadata benchmark") + variant("amrex", default=False, description="Enables AMReX benchmark") + variant("exerciser", default=False, description="Enables exerciser benchmark") + variant("openpmd", default=False, description="Enables OpenPMD benchmark") + variant("e3sm", default=False, description="Enables E3SM benchmark") + variant("async", default=False, description="Enables ASYNC VOL Connector") + variant("all", default=False, description="Enables all h5bench benchmarks") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -83,15 +74,17 @@ def setup_build_tests(self): def mpi_launcher(self): commands = ["mpirun", "mpiexec"] - return which(*commands, path=[self.spec["mpi"].prefix.bin]) or which(*commands) + return which(*commands, path=[self.spec["mpi"].prefix.bin]) or which( + *commands, required=True + ) def test_help(self): """Run h5bench help.""" - h5bench = which(self.prefix.bin.h5bench) + h5bench = which(self.prefix.bin.h5bench, required=True) h5bench("-h") def test_h5bench(self): """Run h5bench synchronous write test.""" with working_dir(self.test_suite.current_test_cache_dir): - h5bench = which(self.prefix.bin.h5bench) + h5bench = which(self.prefix.bin.h5bench, required=True) h5bench("--debug", "--abort", "samples/sync-write-1d-contig-contig.json") diff --git a/repos/spack_repo/builtin/packages/h5hut/package.py b/repos/spack_repo/builtin/packages/h5hut/package.py index decf085005f..8feb8fd66e2 100644 --- a/repos/spack_repo/builtin/packages/h5hut/package.py +++ b/repos/spack_repo/builtin/packages/h5hut/package.py @@ -52,7 +52,7 @@ def flag_handler(self, name, flags): return flags, None, build_system_flags def autoreconf(self, spec, prefix): - which("bash")("autogen.sh") + which("bash", required=True)("autogen.sh") def configure_args(self): spec = self.spec diff --git a/repos/spack_repo/builtin/packages/hammer/package.py b/repos/spack_repo/builtin/packages/hammer/package.py new file mode 100644 index 00000000000..7e72fb293a3 --- /dev/null +++ b/repos/spack_repo/builtin/packages/hammer/package.py @@ -0,0 +1,50 @@ +# 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 Hammer(CMakePackage): + """HAMMER — Helicity Amplitude Module for Matrix Element Reweighting. + + A tool for reweighting Monte Carlo simulations for semileptonic B-decays. + """ + + homepage = "https://hammer.physics.lbl.gov" + url = "https://hammer.physics.lbl.gov/Hammer-1.4.1-Source.tar.gz" + git = "https://gitlab.com/mpapucci/Hammer.git" + + maintainers("wdconinc") + + license("GPL-3.0", checked_by="wdconinc") + + version("1.4.1", sha256="0d225a7fd3ff0dea25532cb3fceaa38e27ce338eae6d17c65db519f8d2fe28cd") + + variant("root", default=False, description="Build with ROOT support") + variant("python", default=True, description="Build with Python bindings") + variant("examples", default=False, description="Install and build Hammer examples") + + depends_on("cxx", type="build") + depends_on("cmake@3.2:3", type="build") # @:3 for use of TestEndianess.c.in + + depends_on("boost@1.50: +thread") + depends_on("yaml-cpp@0.6:") + + depends_on("root", when="+root") + depends_on("python", when="+python") + depends_on("hepmc3", when="+examples") + + def cmake_args(self): + return [ + self.define("BUILD_SHARED_LIBS", True), + self.define("BUILD_DOCUMENTATION", False), + self.define("ENABLE_TESTS", self.run_tests), + self.define("INSTALL_EXTERNAL_DEPENDENCIES", False), + self.define_from_variant("WITH_ROOT", "root"), + self.define_from_variant("WITH_PYTHON", "python"), + self.define_from_variant("WITH_EXAMPLES", "examples"), + self.define_from_variant("WITH_EXAMPLES_EXTRA", "examples"), + ] diff --git a/repos/spack_repo/builtin/packages/hapcut2/package.py b/repos/spack_repo/builtin/packages/hapcut2/package.py index 601466428e8..6d814cd0c9b 100644 --- a/repos/spack_repo/builtin/packages/hapcut2/package.py +++ b/repos/spack_repo/builtin/packages/hapcut2/package.py @@ -19,12 +19,6 @@ class Hapcut2(MakefilePackage): license("BSD-2-Clause") version("v1.3.1", commit="c6481d5fd0618dc3e82b2eb8c2b4835d9a4f6da7") - version( - "2017-07-10", - commit="2966b94c2c2f97813b757d4999b7a6471df1160e", - submodules=True, - deprecated=True, - ) depends_on("c", type="build") # generated @@ -35,7 +29,6 @@ class Hapcut2(MakefilePackage): depends_on("bzip2") depends_on("zlib-api") - @when("@v1.3.1:") def edit(self, spec, prefix): filter_file("CC=.*$", "", "Makefile") filter_file("CFLAGS=.*$", "CFLAGS=-Wall -g -O3 -D_GNU_SOURCE", "Makefile") diff --git a/repos/spack_repo/builtin/packages/hard/package.py b/repos/spack_repo/builtin/packages/hard/package.py index 63698422db7..6d3211ac401 100644 --- a/repos/spack_repo/builtin/packages/hard/package.py +++ b/repos/spack_repo/builtin/packages/hard/package.py @@ -20,7 +20,7 @@ class Hard(CMakePackage): variant("radiation", default=True, description="Enable support for radiation physics") variant("tests", default=False, description="Enable unit tests") - depends_on("flecsi@2.3.0") + depends_on("flecsi@2.3") depends_on("libcatalyst", when="+catalyst") depends_on("yaml-cpp@0.8:") diff --git a/repos/spack_repo/builtin/packages/harfbuzz/package.py b/repos/spack_repo/builtin/packages/harfbuzz/package.py index 5853ed18043..3646f01e4fe 100644 --- a/repos/spack_repo/builtin/packages/harfbuzz/package.py +++ b/repos/spack_repo/builtin/packages/harfbuzz/package.py @@ -130,17 +130,7 @@ class Harfbuzz(MesonPackage, AutotoolsPackage, CMakePackage): depends_on("zlib-api") depends_on("graphite2", when="+graphite2") - conflicts( - "%intel", when="@2.3.1:", msg="harfbuzz-2.3.1 does not build with the Intel compiler" - ) - - def url_for_version(self, version): - if self.spec.satisfies("@2.3.2:"): - url = "https://github.com/harfbuzz/harfbuzz/releases/download/{0}/harfbuzz-{0}.tar.xz" - else: - url = "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-{0}.tar.bz2" - - return url.format(version) + conflicts("%intel", msg="harfbuzz-2.3.1 does not build with the Intel compiler") # Function borrowed from superlu def flag_handler(self, name, flags): @@ -209,7 +199,7 @@ def configure_args(self): # disable building of gtk-doc files following #9771 args.append("--disable-gtk-doc-html") - true = which("true") + true = which("true", required=True) args.append(f"GTKDOC_CHECK={true}") args.append(f"GTKDOC_CHECK_PATH={true}") args.append(f"GTKDOC_MKPDF={true}") diff --git a/repos/spack_repo/builtin/packages/hashcat/package.py b/repos/spack_repo/builtin/packages/hashcat/package.py index 6dfe9e5ccab..6458cdb413c 100644 --- a/repos/spack_repo/builtin/packages/hashcat/package.py +++ b/repos/spack_repo/builtin/packages/hashcat/package.py @@ -15,10 +15,14 @@ class Hashcat(MakefilePackage): facilities to help enable distributed password cracking.""" homepage = "https://hashcat.net/hashcat/" - url = "https://github.com/hashcat/hashcat/archive/v6.1.1.tar.gz" + url = "https://github.com/hashcat/hashcat/archive/v7.1.2.tar.gz" license("MIT") + version("7.1.2", sha256="9546a6326d747530b44fcc079babad40304a87f32d3c9080016d58b39cfc8b96") + version("7.1.1", sha256="1cdf6db3058088d7e3883f63519b5d345dbda0184ec8e1e1cb984e1255e297f0") + version("7.1.0", sha256="cf2d73d36b85dfc5a36d20bf2d7516858173d5ef780df2055bc926c6f902da77") + version("7.0.0", sha256="842b71d0d34b02000588247aae9fec9a0fc13277f2cd3a6a4925b0f09b33bf75") version("6.2.6", sha256="b25e1077bcf34908cc8f18c1a69a2ec98b047b2cbcf0f51144dcf3ba1e0b7b2a") version("6.1.1", sha256="39c140bbb3c0bdb1564bfa9b9a1cff49115a42f4c9c19e9b066b617aea309f80") version("6.1.0", sha256="916f92434e3b36a126be1d1247a95cd3b32b4d814604960a2ca325d4cc0542d1") @@ -26,8 +30,16 @@ class Hashcat(MakefilePackage): version("5.1.0", sha256="283beaa68e1eab41de080a58bb92349c8e47a2bb1b93d10f36ea30f418f1e338") version("5.0.0", sha256="7092d98cf0d8b29bd6efe2cf94802442dd8d7283982e9439eafbdef62b0db08f") + variant("python", default=False, description="Enable optional Python support") + variant("rust", default=False, description="Enable Rust plugin support") + depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + depends_on("python@3.12:", type=("build", "run"), when="+python") + depends_on("rust", type="build", when="+rust") + + def build(self, spec, prefix): + make("SHARED=1") def install(self, spec, prefix): - make("SHARED=1", "PREFIX={0}".format(prefix), "install") + make("PREFIX={0}".format(prefix), "install") diff --git a/repos/spack_repo/builtin/packages/hazelcast/package.py b/repos/spack_repo/builtin/packages/hazelcast/package.py index ae2c7efc1f5..b11ee7da7bf 100644 --- a/repos/spack_repo/builtin/packages/hazelcast/package.py +++ b/repos/spack_repo/builtin/packages/hazelcast/package.py @@ -26,4 +26,6 @@ class Hazelcast(MavenPackage): version("3.12.7", sha256="0747de968082bc50202f825b4010be28a3885b3dbcee4b83cbe21b2f8b26a7e0") version("3.11.7", sha256="c9f636b8813027d4cc24459bd27740549f89b4f11f62a868079bcb5b41d9b2bb") - depends_on("java@8:", type=("build", "run")) + # Maven 2.0.0 cannot compile for JVM 23+ bytecode + # https://github.com/hazelcast/hazelcast/blob/v5.5.0/hazelcast-parent/pom.xml#L103 + depends_on("java@8:22", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/hdf/package.py b/repos/spack_repo/builtin/packages/hdf/package.py index 3d72877e62e..cf253c1b32f 100644 --- a/repos/spack_repo/builtin/packages/hdf/package.py +++ b/repos/spack_repo/builtin/packages/hdf/package.py @@ -20,6 +20,11 @@ class Hdf(AutotoolsPackage): list_depth = 2 maintainers("lrknox") + version( + "4.3.1", + sha256="a2c69eb752aee385b73d4255e4387134dd5e182780d64da0a5cb0d6e1d3dea3b", + url="https://github.com/HDFGroup/hdf4/releases/download/hdf4.3.1/hdf4.3.1.tar.gz", + ) version("4.2.15", sha256="dbeeef525af7c2d01539906c28953f0fdab7dba603d1bc1ec4a5af60d002c459") version("4.2.14", sha256="2d383e87c8a0ca6a5352adbd1d5546e6cc43dc21ff7d90f93efa644d85c0b14a") version("4.2.13", sha256="be9813c1dc3712c2df977d4960e1f13f20f447dfa8c3ce53331d610c1f470483") @@ -76,30 +81,30 @@ class Hdf(AutotoolsPackage): patch( "https://src.fedoraproject.org/rpms/hdf/raw/edbe5f49646b609f5bc9aeeee5a2be47e9556e8c/f/hdf-ppc.patch?full_index=1", sha256="5434f29a87856aa05124c7a9409b3ec3106c30b1ad722720773623190f6bfda8", - when="@4.2.15:", + when="@4.2.15:4.2", ) patch( "https://src.fedoraproject.org/rpms/hdf/raw/edbe5f49646b609f5bc9aeeee5a2be47e9556e8c/f/hdf-4.2.4-sparc.patch?full_index=1", sha256="ce75518cccbeb80ab976b299225ea6104c3eec1ec13c09e2289913279fcf1b39", - when="@4.2.15:", + when="@4.2.15:4.2", ) patch( "https://src.fedoraproject.org/rpms/hdf/raw/edbe5f49646b609f5bc9aeeee5a2be47e9556e8c/f/hdf-s390.patch?full_index=1", sha256="f7d67e8c3d0dad8bfca308936c6ac917cc0b63222c6339a29efdce14e8be6475", - when="@4.2.15:", + when="@4.2.15:4.2", ) patch( "https://src.fedoraproject.org/rpms/hdf/raw/edbe5f49646b609f5bc9aeeee5a2be47e9556e8c/f/hdf-arm.patch?full_index=1", sha256="d54592df281c92e7e655b8312d18bef9ed096848de9430510e0699e98246ccd3", - when="@4.2.15:", + when="@4.2.15:4.2", ) patch( "https://src.fedoraproject.org/rpms/hdf/raw/edbe5f49646b609f5bc9aeeee5a2be47e9556e8c/f/hdf-aarch64.patch?full_index=1", sha256="49733dd6143be7b30a28d386701df64a72507974274f7e4c0a9e74205510ea72", - when="@4.2.15:", + when="@4.2.15:4.2", ) # https://github.com/jcsda/spack-stack/issues/317 - patch("hdfi_h_apple_m1.patch", when="@4.2.15: target=aarch64: platform=darwin") + patch("hdfi_h_apple_m1.patch", when="@4.2.15:4.2 target=aarch64: platform=darwin") @property def libs(self): @@ -134,7 +139,7 @@ def libs(self): if not shared and "transitive" in query_parameters: libs += self.spec["jpeg:transitive"].libs - libs += self.spec["zlib:transitive"].libs + libs += self.spec["zlib-api:transitive"].libs if self.spec.satisfies("+szip"): libs += self.spec["szip:transitive"].libs if self.spec.satisfies("+external-xdr") and self.spec["rpc"].name == "libtirpc": @@ -242,7 +247,7 @@ def _check_version_match(self, exe): if not os.path.isfile(path): raise SkipTest(f"{exe} is not installed") - exe = which(path) + exe = which(path, required=True) out = exe("-V", output=str.split, error=str.split) vers = f"Version {self.spec.version.up_to(2)}" assert vers in out @@ -281,19 +286,19 @@ def test_gif_converters(self): with test_part( self, "test_gif_converters_hdf2gif", purpose=f"convert {base_name} hdf-to-gif" ): - hdf2gif = which(self.prefix.bin.hdf2gif) + hdf2gif = which(self.prefix.bin.hdf2gif, required=True) hdf2gif(storm_fn, gif_fn) with test_part( self, "test_gif_converters_gif2hdf", purpose=f"convert {base_name} gif-to-hdf" ): - gif2hdf = which(self.prefix.bin.gif2hdf) + gif2hdf = which(self.prefix.bin.gif2hdf, required=True) gif2hdf(gif_fn, new_hdf_fn) with test_part( self, "test_gif_converters_hdiff", purpose=f"compare new and orig {base_name} hdf" ): - hdiff = which(self.prefix.bin.hdiff) + hdiff = which(self.prefix.bin.hdiff, required=True) hdiff(new_hdf_fn, storm_fn) def test_list(self): @@ -308,6 +313,6 @@ def test_list(self): storm_fn = os.path.join(self.cached_tests_work_dir, f"{base_name}.hdf") - hdfls = which(self.prefix.bin.hdfls) + hdfls = which(self.prefix.bin.hdfls, required=True) out = hdfls(storm_fn, output=str.split, error=str.split) check_outputs(expected, out) diff --git a/repos/spack_repo/builtin/packages/hdf5/package.py b/repos/spack_repo/builtin/packages/hdf5/package.py index 5c6386d434e..459d4b99918 100644 --- a/repos/spack_repo/builtin/packages/hdf5/package.py +++ b/repos/spack_repo/builtin/packages/hdf5/package.py @@ -39,6 +39,12 @@ class Hdf5(CMakePackage): version("develop-1.10", branch="hdf5_1_10") version("develop-1.8", branch="hdf5_1_8") + version( + "2.1.0", + sha256="ce7f5515a95d588b8606c3fb50643f8b88ac52ffbbde9c63bb1edca6a256e964", + url="https://github.com/HDFGroup/hdf5/releases/download/2.1.0/hdf5-2.1.0.tar.gz", + ) + # Odd versions are considered experimental releases # Even versions are maintenance versions version( @@ -116,6 +122,14 @@ class Hdf5(CMakePackage): variant("hl", default=False, description="Enable the high-level library") variant("cxx", default=False, description="Enable C++ support") + variant( + "cxxstd", + default="11", + values=("98", "11", "14", "17", "20", "23"), + multi=False, + when="+cxx", + description="Use the specified C++ standard when building.", + ) variant("map", when="@1.14:", default=False, description="Enable MAP API support") variant( "subfiling", when="@1.14: +mpi", default=False, description="Enable Subfiling VFD support" @@ -131,7 +145,7 @@ class Hdf5(CMakePackage): "api", default="default", description="Choose api compatibility for earlier version", - values=("default", "v116", "v114", "v112", "v110", "v18", "v16"), + values=("default", "v200", "v114", "v112", "v110", "v18", "v16"), multi=False, ) @@ -140,7 +154,8 @@ class Hdf5(CMakePackage): depends_on("fortran", type="build", when="+fortran") depends_on("cmake@3.12:", type="build") - depends_on("cmake@3.18:", type="build", when="@1.13:") + depends_on("cmake@3.18:", type="build", when="@1.14:") + depends_on("cmake@3.26:", type="build", when="@2.0:") with when("+mpi"): depends_on("mpi") @@ -165,11 +180,11 @@ class Hdf5(CMakePackage): conflicts("+fortran", when="@1.14.1-2 %intel", msg="Fortran API broken in 1.14.1-2 with Intel") conflicts("+mpi", "^mpich@4.0:4.0.3") - conflicts("api=v116", when="@1.6:1.14", msg="v116 is not compatible with this release") + conflicts("api=v200", when="@1.6:1.14", msg="v200 is not compatible with this release") conflicts( - "api=v116", + "api=v200", when="@develop-1.8:develop-1.14", - msg="v116 is not compatible with this release", + msg="v200 is not compatible with this release", ) conflicts("api=v114", when="@1.6:1.12", msg="v114 is not compatible with this release") conflicts( @@ -198,6 +213,13 @@ class Hdf5(CMakePackage): "+fortran", when="@1.13.3:^cmake@:3.22", msg="cmake_minimum_required is not set correctly." ) + # https://github.com/HDFGroup/hdf5/pull/6267 + patch( + "https://github.com/HDFGroup/hdf5/commit/84e5adf753cdd97a807df2da6338bb0e0cdf9862.patch?full_index=1", + sha256="cf8056ec86e01aaf384bef3aecc11dc111a3f11bd83e80d1156af7f939328135", + when="@2.1.0", + ) + # HDF5 searches for zlib CMake config files before it falls back to # FindZLIB.cmake. We don't build zlib with CMake by default, so have to # delete the first search, otherwise it may find a system zlib. See @@ -508,7 +530,7 @@ def is_enabled(text): variants.append("~szip") match = re.search(r"Default API mapping: (\S+)", output) - if match and match.group(1) in set(["v114", "v112", "v110", "v18", "v16"]): + if match and match.group(1) in set(["v200", "v114", "v112", "v110", "v18", "v16"]): variants.append("api={0}".format(match.group(1))) results.append(" ".join(variants)) @@ -519,12 +541,6 @@ def is_enabled(text): def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("SZIP_INSTALL", self.spec["szip"].prefix) - def setup_run_environment(self, env: EnvironmentModifications) -> None: - # According to related github posts and problems running test_install - # as a stand-alone test, it appears the lib path must be added to - # LD_LIBRARY_PATH. - env.append_path("LD_LIBRARY_PATH", self.prefix.lib) - def cmake_args(self): spec = self.spec @@ -532,22 +548,19 @@ def cmake_args(self): tty.warn("hdf5@:1.8.15+shared does not produce static libraries") args = [ - # Always enable this option. This does not actually enable any - # features: it only *allows* the user to specify certain - # combinations of other arguments. - self.define("ALLOW_UNSUPPORTED", True), + self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"), # Speed-up the building by skipping the examples: self.define("HDF5_BUILD_EXAMPLES", False), self.define( "BUILD_TESTING", - self.run_tests or + self.run_tests + or # Version 1.8.22 fails to build the tools when shared libraries # are enabled but the tests are disabled. spec.satisfies("@1.8.22+shared+tools"), ), self.define_from_variant("HDF5_ENABLE_SUBFILING_VFD", "subfiling"), self.define_from_variant("HDF5_ENABLE_MAP_API", "map"), - self.define("HDF5_ENABLE_Z_LIB_SUPPORT", True), self.define_from_variant("HDF5_ENABLE_SZIP_SUPPORT", "szip"), self.define_from_variant("HDF5_ENABLE_SZIP_ENCODING", "szip"), self.define_from_variant("BUILD_SHARED_LIBS", "shared"), @@ -561,20 +574,41 @@ def cmake_args(self): self.define_from_variant("HDF5_BUILD_TOOLS", "tools"), ] + # Always enable this option. This does not actually enable any + # features: it only *allows* the user to specify certain combinations + # of other arguments that would normally be rejected as unsupported + # configurations. + # Note: This option was renamed from ALLOW_UNSUPPORTED to + # HDF5_ALLOW_UNSUPPORTED in HDF5 2.0.0 as part of the standardization + # of CMake option naming. + if self.spec.satisfies("@2.0.0:"): + args.append(self.define("HDF5_ALLOW_UNSUPPORTED", True)) + else: + args.append(self.define("ALLOW_UNSUPPORTED", True)) + + # The name of option HDF5_ENABLE_Z_LIB_SUPPORT was also changed + # to HDF5_ENABLE_ZLIB_SUPPORT. + if self.spec.satisfies("@2.0.0:"): + args.append(self.define("HDF5_ENABLE_ZLIB_SUPPORT", True)) + else: + args.append(self.define("HDF5_ENABLE_Z_LIB_SUPPORT", True)) + + # The name of option DEFAULT_API_VERSION was also changed to + # HDF5_DEFAULT_API_VERSION api = spec.variants["api"].value if api != "default": - args.append(self.define("DEFAULT_API_VERSION", api)) + if self.spec.satisfies("@2.0.0:"): + args.append(self.define("HDF5_DEFAULT_API_VERSION", api)) + else: + args.append(self.define("DEFAULT_API_VERSION", api)) # MSMPI does not provide compiler wrappers # and pointing these variables at the MSVC compilers # breaks CMake's mpi detection for MSMPI. if spec.satisfies("+mpi") and "msmpi" not in spec: - args.extend( - [ - "-DMPI_C_COMPILER:PATH=%s" % spec["mpi"].mpicc, - "-DCMAKE_C_COMPILER:PATH=%s" % spec["mpi"].mpicc, - ] - ) + if spec.satisfies("+cxx"): + args.append(self.define("MPI_CXX_COMPILER", spec["mpi"].mpicxx)) + args.append(self.define("MPI_C_COMPILER", spec["mpi"].mpicc)) if spec.satisfies("+cxx"): args.extend( @@ -585,12 +619,7 @@ def cmake_args(self): ) if spec.satisfies("+fortran"): - args.extend( - [ - "-DMPI_Fortran_COMPILER:PATH=%s" % spec["mpi"].mpifc, - "-DCMAKE_Fortran_COMPILER:PATH=%s" % spec["mpi"].mpifc, - ] - ) + args.append(self.define("MPI_Fortran_COMPILER", spec["mpi"].mpifc)) # work-around for https://github.com/HDFGroup/hdf5/issues/1320 if spec.satisfies("@1.10.8,1.13.0"): @@ -623,7 +652,7 @@ def ensure_parallel_compiler_wrappers(self): # 1.10.6 and 1.12.0. The current develop versions do not produce 'h5pfc' # at all. Here, we make sure that 'h5pfc' is available when Fortran and # MPI support are enabled (only for versions that generate 'h5fc'). - if self.spec.satisfies("@1.8.22:1.8," "1.10.6:1.10.9," "1.12.0:1.12.2" "+fortran+mpi"): + if self.spec.satisfies("@1.8.22:1.8,1.10.6:1.10.9,1.12.0:1.12.2+fortran+mpi"): with working_dir(self.prefix.bin): # No try/except here, fix the condition above instead: symlink("h5fc", "h5pfc") @@ -676,7 +705,7 @@ def link_debug_libs(self): with working_dir(self.prefix.lib): for lib in libs: libname = os.path.split(lib)[1] - os.symlink(libname, libname.replace("_debug", "")) + symlink(libname, libname.replace("_debug", "")) @run_after("install") def symlink_to_h5hl_wrappers(self): @@ -807,7 +836,7 @@ def test_version(self): if not os.path.isfile(path): raise SkipTest(f"{path} is not installed") - prog = which(path) + prog = which(path, required=True) output = prog(option, output=str.split, error=str.split) assert expected in output @@ -816,15 +845,15 @@ def test_example(self): test_data_dir = self.test_suite.current_test_data_dir with working_dir(test_data_dir, create=True): filename = "spack.h5" - h5dump = which(self.prefix.bin.h5dump) + h5dump = which(self.prefix.bin.h5dump, required=True) out = h5dump(filename, output=str.split, error=str.split) expected = get_escaped_text_output("dump.out") check_outputs(expected, out) - h5copy = which(self.prefix.bin.h5copy) + h5copy = which(self.prefix.bin.h5copy, required=True) copyname = "test.h5" options = ["-i", filename, "-s", "Spack", "-o", copyname, "-d", "Spack"] h5copy(*options) - h5diff = which(self.prefix.bin.h5diff) + h5diff = which(self.prefix.bin.h5diff, required=True) h5diff(filename, copyname) diff --git a/repos/spack_repo/builtin/packages/hdf5_blosc/package.py b/repos/spack_repo/builtin/packages/hdf5_blosc/package.py index bbcafc26b60..0d0dbd3f717 100644 --- a/repos/spack_repo/builtin/packages/hdf5_blosc/package.py +++ b/repos/spack_repo/builtin/packages/hdf5_blosc/package.py @@ -2,7 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import os import shutil import sys @@ -17,14 +16,14 @@ def _install_shlib(name, src, dst): shlib0 = name + ".0.dylib" shlib = name + ".dylib" install(join_path(src, shlib0), join_path(dst, shlib0)) - os.symlink(shlib0, join_path(dst, shlib)) + symlink(shlib0, join_path(dst, shlib)) else: shlib000 = name + ".so.0.0.0" shlib0 = name + ".so.0" shlib = name + ".dylib" install(join_path(src, shlib000), join_path(dst, shlib000)) - os.symlink(shlib000, join_path(dst, shlib0)) - os.symlink(shlib0, join_path(dst, shlib)) + symlink(shlib000, join_path(dst, shlib0)) + symlink(shlib0, join_path(dst, shlib)) class Hdf5Blosc(Package): @@ -198,7 +197,7 @@ def check_install(self, spec): print(output) print("-" * 80) print("Environment:") - env = which("env") + env = which("env", required=True) env() raise RuntimeError("HDF5 Blosc plugin check failed") shutil.rmtree(checkdir) diff --git a/repos/spack_repo/builtin/packages/hdf5_vol_cache/package.py b/repos/spack_repo/builtin/packages/hdf5_vol_cache/package.py index 9b21f1c781c..3e889b15fc4 100644 --- a/repos/spack_repo/builtin/packages/hdf5_vol_cache/package.py +++ b/repos/spack_repo/builtin/packages/hdf5_vol_cache/package.py @@ -32,6 +32,8 @@ def flag_handler(self, name, flags): if name == "cflags": if self.spec.satisfies("%oneapi") or self.spec.satisfies("%cce"): flags.append("-Wno-error=incompatible-function-pointer-types") + if self.spec.satisfies("%gcc@14:"): + flags.append("-Wno-error=incompatible-pointer-types") return (flags, None, None) def setup_run_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/hdf5_vol_log/hdf5_examples_option.patch b/repos/spack_repo/builtin/packages/hdf5_vol_log/hdf5_examples_option.patch new file mode 100644 index 00000000000..5018feb32e9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/hdf5_vol_log/hdf5_examples_option.patch @@ -0,0 +1,39 @@ +diff --git a/configure.ac b/configure.ac +index b73901f..1f53de6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -695,6 +695,14 @@ if test "x${have_openpmd}" = xyes; then + fi + AM_CONDITIONAL(HAVE_OPENPMD, [test "x${have_openpmd}" = xyes]) + ++hdf5_examples=yes ++AC_ARG_ENABLE([hdf5-examples], ++ [AS_HELP_STRING([--disable-hdf5-examples], ++ [Disable hdf5 examples. @<:@default: enabled@:>@])], ++ [hdf5_examples=${enableval}], [hdf5_examples=yes] ++) ++AM_CONDITIONAL(HDF5_EXAMPLES, [test "x${hdf5_examples}" = xyes]) ++ + dnl Configuration Date + dnl Note that command 'date' is not portable across Unix platforms + if test "x$SOURCE_DATE_EPOCH" != x ; then +diff --git a/examples/Makefile.am b/examples/Makefile.am +index b209b5e..eb34ad5 100644 +--- a/examples/Makefile.am ++++ b/examples/Makefile.am +@@ -58,9 +58,13 @@ SH_LOG_COMPILER = + + TESTS = $(TESTPROGRAMS) + +-C_SUBDIRS = hdf5_examples ++C_SUBDIRS = + +-DIST_SUBDIRS = $(C_SUBDIRS) ++if HDF5_EXAMPLES ++ C_SUBDIRS += hdf5_examples ++endif ++ ++DIST_SUBDIRS = hdf5_examples + + SUBDIRS = . $(C_SUBDIRS) + diff --git a/repos/spack_repo/builtin/packages/hdf5_vol_log/package.py b/repos/spack_repo/builtin/packages/hdf5_vol_log/package.py index d8034153a6c..f863db5babd 100644 --- a/repos/spack_repo/builtin/packages/hdf5_vol_log/package.py +++ b/repos/spack_repo/builtin/packages/hdf5_vol_log/package.py @@ -22,6 +22,8 @@ class Hdf5VolLog(AutotoolsPackage): version("1.4.0", tag="logvol.1.4.0", commit="786d2cc4da8b4a0827ee00b1b0ab3968ef942f99") + variant("hdf5_examples", default=True, description="Enable HDF5 examples", when="@1.4.0") + depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -32,12 +34,18 @@ class Hdf5VolLog(AutotoolsPackage): depends_on("libtool", type="build") depends_on("m4", type="build") + # Adds an option to disable examples downloaded during build + # https://github.com/HDFGroup/vol-log-based/pull/79 + patch("hdf5_examples_option.patch", when="@1.4.0") + def setup_run_environment(self, env: EnvironmentModifications) -> None: env.prepend_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib) def configure_args(self): - return [ + args = [ "--enable-shared", "--enable-zlib", "--with-mpi={}".format(self.spec["mpi"].prefix), ] + args.extend(self.enable_or_disable("hdf5-examples", variant="hdf5_examples")) + return args diff --git a/repos/spack_repo/builtin/packages/hdf_eos2/package.py b/repos/spack_repo/builtin/packages/hdf_eos2/package.py index b9156441b8e..198af3a548d 100644 --- a/repos/spack_repo/builtin/packages/hdf_eos2/package.py +++ b/repos/spack_repo/builtin/packages/hdf_eos2/package.py @@ -17,48 +17,46 @@ class HdfEos2(AutotoolsPackage): """ homepage = "https://hdfeos.org" - # Starting with @3, download requires authentication. So reverting - # to a manual download - url = "file://{0}/hdf-eos2-3.0-src.tar.gz".format(os.getcwd()) - manual_download = True - - # The download URLs for @2 versions are messing, and include sha256 checksum. - # Templates for url_for_version. 0 is sha256 checksum, 1 is filename - # This is just a template. See version_list and url_for_version below - v2url = "https://git.earthdata.nasa.gov/rest/git-lfs/storage/DAS/hdfeos/{0}?response-content-disposition=attachment%3B%20filename%3D%22{1}%22%3B%20filename*%3Dutf-8%27%27{1}" - - maintainers("climbfuji") - - # Crazy URL scheme, differing with each version, and including the - # sha256 checksum in the URL. Yuck - # The data in version_list is used to generate versions and urls - # In basename expansions, 0 is raw version, - # 1 is for version with dots => underscores + url = "https://git.earthdata.nasa.gov/projects/DAS/repos/hdfeos" + + maintainers("climbfuji", "danrosen25") + + # Archives are committed to a branch related to the version + # but the branch name and archive name are subject to change + # from version to version version_list = [ { "version": "3.0", - "basename": "hdf-eos2-{0}-src.tar.gz", + "branch": "HDFEOS2_3.0", + "archive": "hdf-eos2-3.0-src.tar.gz", "sha256": "3a5564b4d69b541139ff7dfdad948696cf31d9d1a6ea8af290c91a4c0ee37188", - "can_auto_download": False, }, { "version": "2.20v1.00", + "branch": "HDFEOS2.20", + "archive": "HDF-EOS2.20v1.00.tar.Z", "sha256": "cb0f900d2732ab01e51284d6c9e90d0e852d61bba9bce3b43af0430ab5414903", - "basename": "HDF-EOS{0}.tar.Z", - "can_auto_download": True, + }, + { + "version": "2.19v1.00", + "branch": "HDFEOS2.19", + "archive": "HDF-EOS2.19v1.00.tar.Z", + "sha256": "3fffa081466e85d2b9436d984bc44fe97bbb33ad9d8b7055a322095dc4672e31", }, { "version": "2.19b", + "branch": "HDFEOS2.19", + "archive": "hdfeos2_19b.zip", "sha256": "a69993508dbf5fa6120bac3c906ab26f1ad277348dfc2c891305023cfdf5dc9d", - "basename": "hdfeos{1}.zip", - "can_auto_download": True, + "deprecated": True, }, ] for vrec in version_list: ver = vrec["version"] sha256 = vrec["sha256"] - version(ver, sha256=sha256) + deprecated = vrec.get("deprecated", False) + version(ver, sha256=sha256, deprecated=deprecated) variant( "shared", default=True, description="Build shared libraries (can be used with +static)" @@ -66,17 +64,20 @@ class HdfEos2(AutotoolsPackage): variant( "static", default=True, description="Build static libraries (can be used with +shared)" ) + variant("fortran", default=False, description="Enable Fortran support") conflicts("~static", when="~shared", msg="At least one of +static or +shared must be set") + conflicts("%gcc@14:", when="@:2", msg="GCC 14+ is only supported for version 3.0+") depends_on("c", type="build") + depends_on("fortran", type="build", when="+fortran") # Build dependencies depends_on("hdf") # Because hdf always depends on zlib and jpeg in spack, the tests below in configure_args # (if self.spec.satisfies("^jpeg"):) always returns true and hdf-eos2 wants zlib and jpeg, too. - depends_on("zlib-api") - depends_on("jpeg") + depends_on("zlib-api", when="^hdf") + depends_on("jpeg", when="^hdf") depends_on("szip", when="^hdf +szip") # Fix some problematic logic in stock configure script @@ -93,13 +94,9 @@ class HdfEos2(AutotoolsPackage): def url_for_version(self, version): vrec = [x for x in self.version_list if x["version"] == version.dotted.string] if vrec: - fname = vrec[0]["basename"].format(version.dotted, version.underscored) - sha256 = vrec[0]["sha256"] - can_auto_download = vrec[0].get("can_auto_download", False) - if can_auto_download: - myurl = self.v2url.format(sha256, fname) - else: - myurl = self.url + branch = vrec[0]["branch"] + archive = vrec[0]["archive"] + myurl = f"{self.url}/raw/{archive}?at=refs%2Fheads%2F{branch}" return myurl else: sys.exit( @@ -125,14 +122,17 @@ def fix_configure(self): def flag_handler(self, name, flags): if name == "cflags": flags.append(self.compiler.cc_pic_flag) - if self.spec.compiler.name in ["apple-clang", "llvm", "intel-oneapi-compilers"]: + if ( + self.spec.satisfies("%clang@16:") + or self.spec.satisfies("%apple-clang@15:") + or self.spec.satisfies("%oneapi") + or self.spec.satisfies("%gcc@14:") + ): flags.append("-Wno-error=implicit-function-declaration") flags.append("-Wno-error=implicit-int") # Testing shows we need one extra flag for gcc@14 if self.spec.satisfies("%gcc@14:"): - flags.append("-Wno-error=implicit-function-declaration") - flags.append("-Wno-error=implicit-int") flags.append("-Wno-error=incompatible-pointer-types") return flags, None, None @@ -145,6 +145,18 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: extra_ldflags.append(tmp) # Set LDFLAGS env.set("LDFLAGS", " ".join(extra_ldflags)) + # Use h4cc compiler wrapper and flags + if self.spec.satisfies("^hdf"): + env.set("CC", os.path.join(self.spec["hdf"].prefix.bin, "h4cc")) + if ( + self.spec.satisfies("%clang@16:") + or self.spec.satisfies("%apple-clang@15:") + or self.spec.satisfies("%oneapi") + or self.spec.satisfies("%gcc@14:") + ): + env.set( + "CFLAGS", "-Wno-error=implicit-function-declaration -Wno-error=implicit-int" + ) def configure_args(self): extra_args = [] @@ -157,17 +169,27 @@ def configure_args(self): extra_args.extend(self.enable_or_disable("shared")) extra_args.extend(self.enable_or_disable("static")) + # Set fortran + extra_args.extend(self.enable_or_disable("fortran")) + # Provide config args for dependencies - extra_args.append("--with-hdf4={0}".format(self.spec["hdf"].prefix)) + if self.spec.satisfies("^hdf"): + tmp = self.spec["hdf"].libs.directories + if tmp: + extra_args.append("--with-hdf4={0}".format(tmp[0])) if self.spec.satisfies("^jpeg"): # Allow handling whatever provider of jpeg are using tmp = self.spec["jpeg"].libs.directories if tmp: - tmp = tmp[0] - extra_args.append("--with-jpeg={0}".format(tmp)) + extra_args.append("--with-jpeg={0}".format(tmp[0])) if self.spec.satisfies("^szip"): - extra_args.append("--with-szlib={0}".format(self.spec["szip"].prefix)) - if self.spec.satisfies("^zlib"): - extra_args.append("--with-zlib={0}".format(self.spec["zlib-api"].prefix)) + tmp = self.spec["szip"].libs.directories + if tmp: + extra_args.append("--with-szlib={0}".format(tmp[0])) + if self.spec.satisfies("^zlib-api"): + # Allow handling whatever provider of zlib-api are using + tmp = self.spec["zlib-api"].libs.directories + if tmp: + extra_args.append("--with-zlib={0}".format(tmp[0])) return extra_args diff --git a/repos/spack_repo/builtin/packages/hdfview/package.py b/repos/spack_repo/builtin/packages/hdfview/package.py index 98d5c180bca..3fd60a21c02 100644 --- a/repos/spack_repo/builtin/packages/hdfview/package.py +++ b/repos/spack_repo/builtin/packages/hdfview/package.py @@ -14,8 +14,9 @@ class Hdfview(Package): and editing HDF (HDF5 and HDF4) files.""" homepage = "https://www.hdfgroup.org/downloads/hdfview/" - url = "https://support.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfview-3.1.4/src/hdfview-3.1.4.tar.gz" + url = "https://github.com/HDFGroup/hdfview/releases/download/v3.3.2/HDFView-3.3.2.tar.gz" + version("3.3.2", sha256="6e83811ae98a45b82023baeca5335b9cfafd75d9f4cada93661896618b2b47aa") version("3.3.0", sha256="0916161861c21fa8dd354b445b48eff5a53d80a5c0b383e79eb64b7b108e2430") version("3.2.0", sha256="d3c0deff2cbd959508c4da9c712da72fb204ff6818a3434f00a7071f8e8cf2b8") version("3.1.4", sha256="898fcd5227d4e7b697efde5e5a969405f96b72517f9dfbdbdce2991290fd56a0") @@ -30,6 +31,10 @@ class Hdfview(Package): patch("fix_build.patch", when="@3.1.1") depends_on("ant", type="build") + + depends_on("java") + depends_on("java@21:", when="@3.3.2:") + depends_on("hdf5 +java") depends_on("hdf +java -external-xdr +shared") @@ -38,18 +43,28 @@ class Hdfview(Package): depends_on("hdf5@1.14:", when="@3.3:") def install(self, spec, prefix): - ant = which("ant") + ant = which("ant", required=True) ant("-Dbuild.debug=false", "deploy") dir_version = os.listdir("build/HDF_Group/HDFView/")[0] path = "build/HDF_Group/HDFView/{0}/".format(dir_version) hdfview = "{0}/{1}".format(path, "hdfview.sh") + # set the internal dir to be the spack install prefix filter_file(r"\$dir", prefix, hdfview) + # the wrapper script looks for these subdirectories, however they are not + # in the spackk install prefix, so filter out + filter_file(r"/lib/app", "", hdfview) + + # set the javabin to be spack's java + filter_file( + r"export JAVABIN=.+", f"export JAVABIN={self.spec['java'].prefix}/bin", hdfview + ) + mkdirp(prefix.bin) install(hdfview, prefix.bin.hdfview) - chmod = which("chmod") + chmod = which("chmod", required=True) chmod("+x", self.prefix.bin.hdfview) install_tree(path, prefix) @@ -57,3 +72,13 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("HDF5LIBS", self.spec["hdf5"].prefix) env.set("HDFLIBS", self.spec["hdf"].prefix) env.set("ANT_HOME", self.spec["ant"].prefix) + env.set("JAVA_HOME ", self.spec["java"].prefix) + + def url_for_version(self, version): + # the new versions have a complex https://objects.githubusercontent.com url so use the + # github release + if version > Version("3.3.0"): + return super().url_for_version(version) + + url_fmt = "https://support.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfview-{0}/src/hdfview-{0}.tar.gz" + return url_fmt.format(version) diff --git a/repos/spack_repo/builtin/packages/healpix_cxx/package.py b/repos/spack_repo/builtin/packages/healpix_cxx/package.py index c2ff5aaa7c9..03179a0eecf 100644 --- a/repos/spack_repo/builtin/packages/healpix_cxx/package.py +++ b/repos/spack_repo/builtin/packages/healpix_cxx/package.py @@ -3,31 +3,23 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.build_systems.sourceforge import SourceforgePackage from spack.package import * -class HealpixCxx(AutotoolsPackage): +class HealpixCxx(AutotoolsPackage, SourceforgePackage): """Healpix-CXX is a C/C++ library for calculating Hierarchical Equal Area isoLatitude Pixelation of a sphere.""" homepage = "https://healpix.sourceforge.io" - url = "https://ayera.dl.sourceforge.net/project/healpix/Healpix_3.50/healpix_cxx-3.50.0.tar.gz" + sourceforge_mirror_path = "healpix/healpix_cxx-3.50.0.tar.gz" license("GPL-2.0-or-later") version("3.50.0", sha256="6538ee160423e8a0c0f92cf2b2001e1a2afd9567d026a86ff6e2287c1580cb4c") - depends_on("cfitsio") - depends_on("libsharp", type="build") - - def patch(self): - spec = self.spec - configure_fix = FileFilter("configure") - # Link libsharp static libs - configure_fix.filter( - r"^SHARP_LIBS=.*$", - 'SHARP_LIBS="-L{0} -lsharp -lc_utils -lfftpack -lm"'.format( - spec["libsharp"].prefix.lib - ), - ) + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cfitsio@3") diff --git a/repos/spack_repo/builtin/packages/heffte/fortran200.patch b/repos/spack_repo/builtin/packages/heffte/fortran200.patch deleted file mode 100644 index 564f12492d6..00000000000 --- a/repos/spack_repo/builtin/packages/heffte/fortran200.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/fortran/test_mixed.f90 b/fortran/test_mixed.f90 -index 69424a8..b65d758 100644 ---- a/fortran/test_mixed.f90 -+++ b/fortran/test_mixed.f90 -@@ -37,7 +37,7 @@ allocate(output(fft_cpu%size_outbox())) - - do i = 1, fft_cpu%size_inbox() - input(i) = i --endif -+enddo - - call fft_cpu%forward(input, output, scale_fftw_symmetric) - diff --git a/repos/spack_repo/builtin/packages/heffte/package.py b/repos/spack_repo/builtin/packages/heffte/package.py index d340d008831..2d8cb3db055 100644 --- a/repos/spack_repo/builtin/packages/heffte/package.py +++ b/repos/spack_repo/builtin/packages/heffte/package.py @@ -29,14 +29,8 @@ class Heffte(CMakePackage, CudaPackage, ROCmPackage): version("2.3.0", sha256="63db8c9a8822211d23e29f7adf5aa88bb462c91d7a18c296c3ef3a06be8d6171") version("2.2.0", sha256="332346d5c1d1032288d09839134c79e4a9704e213a2d53051e96c3c414c74df0") version("2.1.0", sha256="63b8ea45a220afc4fa0b14769c0dd291e614a2fe9d5a91c50d28f16ee29b3f1c") - version( - "2.0.0", - sha256="b575fafe19a635265904ca302d48e778341b1567c055ea7f2939c8c6718f7212", - deprecated=True, - ) patch("cmake-magma-v230.patch", when="@2.3.0") - patch("fortran200.patch", when="@2.0.0") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -73,6 +67,8 @@ class Heffte(CMakePackage, CudaPackage, ROCmPackage): depends_on("fftw@3.3.8:", when="+fftw", type=("build", "run")) depends_on("intel-oneapi-mkl", when="+mkl", type=("build", "run")) + # mkl renamed dfti.hpp to dft.hpp in 2026.0, which breaks heffte@2.4.1 and earlier + conflicts("^intel-oneapi-mkl@2026.0:", when="@:2.4.1") depends_on("cuda@8.0:", when="+cuda", type=("build", "run")) depends_on("hip@3.8.0:", when="+rocm", type=("build", "run")) depends_on("rocfft@3.8.0:", when="+rocm", type=("build", "run")) @@ -172,9 +168,9 @@ def test_make_test(self): # Provide the root directory of the MPI installation. options.append(self.define("MPI_HOME", self.spec["mpi"].prefix)) - cmake = which(self.spec["cmake"].prefix.bin.cmake) + cmake = which(self.spec["cmake"].prefix.bin.cmake, required=True) cmake(*options) - make = which("make") + make = which("make", required=True) make() make("test") diff --git a/repos/spack_repo/builtin/packages/helm/package.py b/repos/spack_repo/builtin/packages/helm/package.py new file mode 100644 index 00000000000..82cf847884c --- /dev/null +++ b/repos/spack_repo/builtin/packages/helm/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.go import GoPackage + +from spack.package import * + + +class Helm(GoPackage): + """The Kubernetes Package Manager""" + + homepage = "https://helm.sh" + url = "https://github.com/helm/helm/archive/refs/tags/v4.1.3.tar.gz" + + maintainers("alecbcs") + + license("Apache-2.0") + + version("4.1.4", sha256="cc365ae17de9bd856972198f9c372f9fd2146852434ade3b3c96303b564cdb15") + version("4.1.3", sha256="a336010d2a5bebc0588995cfda20919c47b20c9f8ed3e4ada9241684854bbf9f") + + depends_on("go@1.25:", type="build", when="@4.1:") + + build_directory = "cmd/helm" diff --git a/repos/spack_repo/builtin/packages/hepmc3/package.py b/repos/spack_repo/builtin/packages/hepmc3/package.py index 5cbd1a8cbd2..0eef5d265f8 100644 --- a/repos/spack_repo/builtin/packages/hepmc3/package.py +++ b/repos/spack_repo/builtin/packages/hepmc3/package.py @@ -21,6 +21,7 @@ class Hepmc3(CMakePackage): license("LGPL-3.0-or-later") + version("3.3.1", sha256="08240160b0f28dc3293aa4d61ce65e2d67cd597acf6faca439f2e46625f7e793") version("3.3.0", sha256="6f876091edcf7ee6d0c0db04e080056e89efc1a61abe62355d97ce8e735769d6") version("3.2.7", sha256="587faa6556cc54ccd89ad35421461b4761d7809bc17a2e72f5034daea142232b") version("3.2.6", sha256="248f3b5b36dd773844cbe73d51f60891458334b986b259754c59dbf4bbf1d525") @@ -45,9 +46,8 @@ class Hepmc3(CMakePackage): description="Install interfaces for some Monte-Carlo Event Gens", ) - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type="build", when="@:3.2") + depends_on("cxx", type="build") depends_on("cmake@2.8.9:", type="build") with when("+rootio"): @@ -57,6 +57,7 @@ class Hepmc3(CMakePackage): depends_on("python", when="+python") conflicts("%gcc@9.3.0", when="@:3.1.1") + # See https://gitlab.cern.ch/hepmc/HepMC3/-/merge_requests/58.diff patch("ba38f14d8f56c16cc4105d98f6d4540c928c6150.patch", when="@3.1.2:3.2.1 %gcc@9.3.0") extends("python", when="+python") diff --git a/repos/spack_repo/builtin/packages/hevea/package.py b/repos/spack_repo/builtin/packages/hevea/package.py index f20ee32dbb2..fa0cd002e64 100644 --- a/repos/spack_repo/builtin/packages/hevea/package.py +++ b/repos/spack_repo/builtin/packages/hevea/package.py @@ -19,6 +19,7 @@ class Hevea(MakefilePackage): license("LGPL-2.0-only") version("develop", branch="master") + version("2.38", sha256="6c4337f9b3b3e0be106f74ee4277744988d0a2ac46b7bf66bfef9f044ad7f900") version("2.36", sha256="9848359f935af24b6f962b2ed5d5ac32614bffeb37da374b0960cc0f58e69f0c") version("2.35", sha256="78f834cc7a8112ec59d0b8acdfbed0c8ac7dbb85f964d0be1f4eed04f25cdf54") version("2.34", sha256="f505a2a5bafdc2ea389ec521876844e6fdcb5c1b656396b7e8421c1631469ea2") diff --git a/repos/spack_repo/builtin/packages/hicops/package.py b/repos/spack_repo/builtin/packages/hicops/package.py index 650e1fe8c8c..05563e33fe9 100644 --- a/repos/spack_repo/builtin/packages/hicops/package.py +++ b/repos/spack_repo/builtin/packages/hicops/package.py @@ -26,18 +26,17 @@ class Hicops(CMakePackage): variant( "timemory", default=False, - description="Enable timemory interface. Requires timemory " "installation.", + description="Enable timemory interface. Requires timemory installation.", ) variant( "mpip", default=False, - description="Enables the MPIP data_tracker via Timemory. " - "Requires timemory installation.", + description="Enables the MPIP data_tracker via Timemory. Requires timemory installation.", ) variant( "tailfit", default=True, - description="Use the tailfit method instead of Gumbelfit " "for e-value computation.", + description="Use the tailfit method instead of Gumbelfit for e-value computation.", ) variant("progress", default=True, description="Display HiCOPS progress marks.") variant( @@ -50,14 +49,14 @@ class Hicops(CMakePackage): variant( "qalen", default="100", - description="Maximum number of top K peaks to keep when " "spectrum preprocess.", + description="Maximum number of top K peaks to keep when spectrum preprocess.", values=int, multi=False, ) variant( "qchunk", default="10000", - description="Max size of each batch extracted from the " "dataset.", + description="Max size of each batch extracted from the dataset.", values=int, multi=False, ) diff --git a/repos/spack_repo/builtin/packages/hicup/package.py b/repos/spack_repo/builtin/packages/hicup/package.py index 2f687c53d65..5358f95e227 100644 --- a/repos/spack_repo/builtin/packages/hicup/package.py +++ b/repos/spack_repo/builtin/packages/hicup/package.py @@ -37,8 +37,8 @@ class Hicup(Package): depends_on("bowtie", type="run", when="+bowtie") def edit(self, spec, prefix): - grep = which("grep") - chmod = which("chmod") + grep = which("grep", required=True) + chmod = which("chmod", required=True) perl_files = grep("-lRr", "#!/usr/bin/perl", ".").splitlines() for f in perl_files: filter_file("/usr/bin/perl", self.spec["perl"].command.path, f, backup=False) diff --git a/repos/spack_repo/builtin/packages/highfive/package.py b/repos/spack_repo/builtin/packages/highfive/package.py index 2580e02c190..5fbe42fed86 100644 --- a/repos/spack_repo/builtin/packages/highfive/package.py +++ b/repos/spack_repo/builtin/packages/highfive/package.py @@ -12,14 +12,18 @@ class Highfive(CMakePackage): """HighFive - Header only C++ HDF5 interface""" - homepage = "https://github.com/BlueBrain/HighFive" - url = "https://github.com/BlueBrain/HighFive/archive/v1.2.tar.gz" - git = "https://github.com/BlueBrain/HighFive.git" + homepage = "https://github.com/highfive-devs/highfive" + git = "https://github.com/highfive-devs/highfive.git" + maintainers("1uc") license("BSL-1.0") version("develop", branch="master") + version("3.3.0", sha256="325cfbcf0c0296a6dd26f3b088801b7ebb8d6f109c0565c11d2d8c4af3253bff") + version("3.2.0", sha256="01ea2eed7dbce1cf5dfff59476cfa113a7822b641aecbd99c674592fe7a4e630") + version("3.1.1", sha256="622034f34badda41255d7793e1c5a3046954dcf0875b0bca076e7c77088a8890") + version("3.0.0", sha256="cf9ad114b79bfa2c1deceefc6d4e710b882451ebaa81c063e2eb1de908e7c989") version("2.10.1", sha256="60d66ba1315730494470afaf402bb40300a39eb6ef3b9d67263335a236069cce") version("2.10.0", sha256="c29e8e1520e7298fabb26545f804e35bb3af257005c1c2df62e39986458d7c38") version("2.9.0", sha256="6301def8ceb9f4d7a595988612db288b448a3c0546f6c83417dab38c64994d7e") @@ -66,3 +70,10 @@ def cmake_args(self): self.define("HIGHFIVE_UNIT_TESTS", False), self.define("HIGHFIVE_EXAMPLES", False), ] + + def url_for_version(self, version): + if version < Version("3.0.0"): + url = "https://github.com/BlueBrain/HighFive/archive/v{0}.tar.gz" + else: + url = "https://github.com/highfive-devs/highfive/archive/v{0}.tar.gz" + return url.format(version) diff --git a/repos/spack_repo/builtin/packages/hiop/package.py b/repos/spack_repo/builtin/packages/hiop/package.py index db138affa62..465ff151eb3 100644 --- a/repos/spack_repo/builtin/packages/hiop/package.py +++ b/repos/spack_repo/builtin/packages/hiop/package.py @@ -25,6 +25,9 @@ class Hiop(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") # Most recent tagged snapshot is the preferred version when profiling. + version( + "1.2.0", tag="v1.2.0", commit="6acee835136e9beddf3570b28739a1b1001e528a", submodules=True + ) version( "1.1.1", tag="v1.1.1", commit="d8762e05150b2040a27f69d8bf6603f22190a869", submodules=True ) @@ -93,7 +96,7 @@ class Hiop(CMakePackage, CudaPackage, ROCmPackage): variant( "deepchecking", default=False, - description="Ultra safety checks - " "used for increased robustness and self-diagnostics", + description="Ultra safety checks - used for increased robustness and self-diagnostics", ) variant("ginkgo", default=False, description="Enable/disable ginkgo solver") variant( @@ -154,11 +157,10 @@ class Hiop(CMakePackage, CudaPackage, ROCmPackage): depends_on("raja+openmp", when="+raja~cuda~rocm") # RAJA > 0.14 and Umpire > 6.0 require c++ std 14 - # We are working on supporting newer Umpire/RAJA versions - depends_on("raja@2024.07.0", when="@1.1.1:+raja") + depends_on("raja@2024.07.0:", when="@1.1.1:+raja") depends_on("raja@0.14", when="@0.5:1.1.0+raja") depends_on("raja@:0.13", when="@0.3.99:0.4+raja") - depends_on("umpire@2024.07.0", when="@1.1.1:+raja") + depends_on("umpire@2024.07.0:", when="@1.1.1:+raja") depends_on("umpire@6", when="@0.5:1.1.0+raja") depends_on("umpire@:5", when="@0.3.99:0.4+raja") depends_on("camp@0.2.3:0.2", when="@0.3.99:1.1.0+raja") @@ -317,10 +319,10 @@ def run_hiop(self, raja): ["400", "100", "0", "-empty_sp_row", "-selfcheck"], ] - exe = which(exe) + exe = which(exe, required=True) for i, args in enumerate(options): - with test_part(self, f"test_{exName}_{i+1}", purpose=" ".join(args)): + with test_part(self, f"test_{exName}_{i + 1}", purpose=" ".join(args)): exe(*args) def test_NlpMdsEx1(self): diff --git a/repos/spack_repo/builtin/packages/hip/0014-remove-compiler-rt-linkage-for-host.5.6.0.patch b/repos/spack_repo/builtin/packages/hip/0014-remove-compiler-rt-linkage-for-host.5.6.0.patch deleted file mode 100644 index dfca3691f17..00000000000 --- a/repos/spack_repo/builtin/packages/hip/0014-remove-compiler-rt-linkage-for-host.5.6.0.patch +++ /dev/null @@ -1,75 +0,0 @@ -From cd4283eab943a3018237035afea61f1b5e0042cd Mon Sep 17 00:00:00 2001 -From: Renjith Ravindran -Date: Wed, 27 Sep 2023 06:38:18 +0000 -Subject: [PATCH] Remove-compiler-rt-linkage-for-host - ---- - clr/hipamd/CMakeLists.txt | 6 ++++-- - clr/hipamd/hip-config.cmake.in | 1 - - hipcc/bin/hipcc.pl | 11 ++++++++--- - 3 files changed, 12 insertions(+), 6 deletions(-) - -diff --git a/clr/hipamd/CMakeLists.txt b/clr/hipamd/CMakeLists.txt -index c14a9ad..ca49f7f 100755 ---- a/clr/hipamd/CMakeLists.txt -+++ b/clr/hipamd/CMakeLists.txt -@@ -400,8 +400,10 @@ if (NOT ${HIPCC_BIN_DIR} STREQUAL "") - install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.pl DESTINATION bin) - install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.pl DESTINATION bin) - install(PROGRAMS ${HIPCC_BIN_DIR}/hipvars.pm DESTINATION bin) -- install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.bat DESTINATION bin) -- install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.bat DESTINATION bin) -+ if(WIN32) -+ install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.bat DESTINATION bin) -+ install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.bat DESTINATION bin) -+ endif() - endif() - - ############################# -diff --git a/clr/hipamd/hip-config.cmake.in b/clr/hipamd/hip-config.cmake.in -index 537a599..7d10273 100755 ---- a/clr/hipamd/hip-config.cmake.in -+++ b/clr/hipamd/hip-config.cmake.in -@@ -245,7 +245,6 @@ if(HIP_COMPILER STREQUAL "clang") - # Add support for __fp16 and _Float16, explicitly link with compiler-rt - if( "${CLANGRT_BUILTINS_FETCH_EXIT_CODE}" STREQUAL "0" ) - # CLANG_RT Builtins found Successfully Set interface link libraries property -- set_property(TARGET hip::host APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${CLANGRT_BUILTINS}") - set_property(TARGET hip::device APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${CLANGRT_BUILTINS}") - else() - message(STATUS "clangrt builtins lib not found: ${CLANGRT_BUILTINS_FETCH_EXIT_CODE}") -diff --git a/hipcc/bin/hipcc.pl b/hipcc/bin/hipcc.pl -index 56dcda2..c7ae60b 100755 ---- a/hipcc/bin/hipcc.pl -+++ b/hipcc/bin/hipcc.pl -@@ -155,11 +155,15 @@ if ($HIP_PLATFORM eq "amd") { - if($isWindows) { - $execExtension = ".exe"; - } -- $HIPCC="$HIP_CLANG_PATH/clang++" . $execExtension; -+ # llvm_path is set inside the hip recipe -+ $LLVM_PATH= $ENV{'LLVM_PATH'}; -+ $HIPCC="${LLVM_PATH}/bin/clang++" . $execExtension; -+ - - # If $HIPCC clang++ is not compiled, use clang instead - if ( ! -e $HIPCC ) { -- $HIPCC="$HIP_CLANG_PATH/clang" . $execExtension; -+ $LLVM_PATH= $ENV{'LLVM_PATH'}; -+ $HIPCC="${LLVM_PATH}/bin/clang" . $execExtension; - $HIPLDFLAGS = "--driver-mode=g++"; - } - # to avoid using dk linker or MSVC linker -@@ -483,7 +487,8 @@ if($HIP_PLATFORM eq "amd"){ - $targetsStr = $ENV{HCC_AMDGPU_TARGET}; - } elsif (not $isWindows) { - # Else try using rocm_agent_enumerator -- $ROCM_AGENT_ENUM = "${ROCM_PATH}/bin/rocm_agent_enumerator"; -+ $ROCMINFO_PATH = $ENV{'ROCMINFO_PATH'} // $ROCMINFO_PATH; -+ $ROCM_AGENT_ENUM = "${ROCMINFO_PATH}/bin/rocm_agent_enumerator"; - $targetsStr = `${ROCM_AGENT_ENUM} -t GPU`; - $targetsStr =~ s/\n/,/g; - } --- -2.31.1 - diff --git a/repos/spack_repo/builtin/packages/hip/package.py b/repos/spack_repo/builtin/packages/hip/package.py index c0159671246..4ef4ef9ac6f 100644 --- a/repos/spack_repo/builtin/packages/hip/package.py +++ b/repos/spack_repo/builtin/packages/hip/package.py @@ -17,14 +17,22 @@ class Hip(CMakePackage): homepage = "https://github.com/ROCm/HIP" git = "https://github.com/ROCm/HIP.git" - url = "https://github.com/ROCm/HIP/archive/rocm-6.4.1.tar.gz" + url = "https://github.com/ROCm/HIP/archive/rocm-6.4.3.tar.gz" tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "haampie", "afzpatel") libraries = ["libamdhip64"] license("MIT") - + version("7.2.3", sha256="e6ab65cb2a236eee0e1f2738457367dffc3ce1e8dfb050ac22b7712e35aa896e") + version("7.2.1", sha256="40a27fc18d08ea4f28b5e0990d38a3fec10ff491a2d5adb647b3faa5016873de") + version("7.2.0", sha256="4a22fcd0baf8df47d2e234f887f5bc03d522ce78928f82d1b0669a55897c4205") + version("7.1.1", sha256="c64b3219237903d6b27944f236930a1024ed17eb5399165875fbf410fcacf6f4") + version("7.1.0", sha256="e757a6e4a15d4113cd7cd8a4e9a2a3ff7a6a9ccbc65951179419331214f2784a") + version("7.0.2", sha256="80486998b115e5f61b72913887ccc0507ac332eda4068879bdfb7e3c8611f666") + version("7.0.0", sha256="762794050eb9f47d8278a3d023bb47fd075c30c91ea9c4719cae55d91535de3c") + version("6.4.3", sha256="3def2459ca9258f04d35d1d3b0173237cea2b963814886bb8af6a0e317718d3d") + version("6.4.2", sha256="27e3558ecafa9a7471441aabdd870648fa2619147caa721bd98514fa00d246c1") version("6.4.1", sha256="f26f098b08504636c6f4e1da45b162f1df2ce6608eba85606fa7932d8fea960f") version("6.4.0", sha256="bec899ba67df9aa7056297e5ad104b8e36938b1bab22f1f418f69a8e0043d07f") version("6.3.3", sha256="aa3a5466304d1dbee0d976b50fccb710dd12e2e1d5534793396447c0ff845e2c") @@ -41,9 +49,6 @@ class Hip(CMakePackage): version("6.0.0", sha256="ba8ce0d0960b260ff44ab47da58f98b8df9b659835aa62e32e018a63379bbc79") version("5.7.1", sha256="ea34c75d2cff366fcdd45109c5be460a48d4fcf72b8a534368b54eae5d05db0e") version("5.7.0", sha256="8974a436e7f1daf232a77e27a215bcb24a8cc132aa11b5b885a7417ad4246074") - with default_args(deprecated=True): - version("5.6.1", sha256="1b0178da8e997eb0cbf2af63e1940f56aeddc8b9715d822d2c87fd60dbc01173") - version("5.6.0", sha256="befbfb4691d4331b1fdfe1f17a862e82e962eb9fb90457b2c61a5130b3e6b85b") variant("rocm", default=True, description="Enable ROCm support") variant("cuda", default=False, description="Build with CUDA") @@ -77,8 +82,6 @@ class Hip(CMakePackage): depends_on("numactl") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -93,8 +96,6 @@ class Hip(CMakePackage): depends_on(f"hsakmt-roct@{ver}", when=f"@{ver}") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -111,6 +112,15 @@ class Hip(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hsa-rocr-dev@{ver}", when=f"@{ver}") depends_on(f"comgr@{ver}", when=f"@{ver}") @@ -134,10 +144,38 @@ class Hip(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hipcc@{ver}", when=f"@{ver}") - for ver in ["6.2.0", "6.2.1", "6.2.4", "6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: + for ver in [ + "6.2.0", + "6.2.1", + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"rocprofiler-register@{ver}", when=f"@{ver}") # roc-obj-ls requirements @@ -146,6 +184,12 @@ class Hip(CMakePackage): # Add hip-clr sources thru the below for d_version, d_shasum in [ + ("7.1.1", "b09539ef53a775c03352f9843f3a346e4f2ad3941c1954e953d352e4984ee708"), + ("7.1.0", "d53ee72dd430c934a53b1fe5c798ac34c53e8826589f8f9f214419512059ad2d"), + ("7.0.2", "b49b1ccbf86ef78f4da5ff13ec3ee94f6133c55db3a95b823577b0808db5f2f1"), + ("7.0.0", "cc417e73cda903511db5a72b77704fd41bf7b39204c5cacb2c64701b344b8c5d"), + ("6.4.3", "aa7c9d9d7da3b5fc944b17ca7c032e8924a8dc327ec79eb8cb7f0c9df6fa76dc"), + ("6.4.2", "6dca1ffff36dbf8665594a72b47b8dd0362f7ee446dea03961d8b5a639bf3ede"), ("6.4.1", "18ee75a04f6fc55e72f8b3fcad1e0d58eceb2ce0e0696ca76d9b3dfaf4bfd7ff"), ("6.4.0", "76fd0ad83da0dabf7c91ca4cff6c51f2be8ab259e08ad9743af47d1b3473c2ff"), ("6.3.3", "8e5adca8f8c2d99d4a4e49605dd6b56b7881b762ee8ce15b4a7000e3cd982fec"), @@ -162,8 +206,6 @@ class Hip(CMakePackage): ("6.0.0", "798b55b5b5fb90dd19db54f136d8d8e1da9ae1e408d5b12b896101d635f97e50"), ("5.7.1", "c78490335233a11b4d8a5426ace7417c555f5e2325de10422df06c0f0f00f7eb"), ("5.7.0", "bc2447cb6fd86dff6a333b04e77ce85755104d9011a14a044af53caf02449573"), - ("5.6.1", "0b88af1e99643899d11b1c8cf8a3c46601051b328a5e0ffbd44ee88b7eb0db33"), - ("5.6.0", "8dcd99110737a294f67a805639cf372890c8ca16c7603caaa793e71e84478fe4"), ]: resource( name="clr", @@ -190,12 +232,25 @@ class Hip(CMakePackage): when="@5.7:6.0", ) + for d_version, d_shasum in [ + ("7.2.3", "e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b"), + ("7.2.1", "201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f"), + ("7.2.0", "728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638"), + ]: + resource( + name="rocm-systems", + url=f"https://github.com/ROCm/rocm-systems/archive/rocm-{d_version}.tar.gz", + sha256=d_shasum, + expand=True, + destination="", + placement="rocm-systems", + when=f"@{d_version}", + ) + # Add hipcc sources thru the below for d_version, d_shasum in [ ("5.7.1", "d47d27ef2b5de7f49cdfd8547832ac9b437a32e6fc6f0e9c1646f4b704c90aee"), ("5.7.0", "9f839bf7226e5e26f3150f8ba6eca507ab9a668e68b207736301b3bb9040c973"), - ("5.6.1", "5800fac92b841ef6f52acda78d9bf86f83970bec0fb848a6265d239bdb7eb51a"), - ("5.6.0", "fdb7fdc9e4648376120330f034ee8353038d34c8a015f9eb0c208c56eeddd097"), ]: resource( name="hipcc", @@ -208,6 +263,12 @@ class Hip(CMakePackage): ) # Add hipother sources thru the below for d_version, d_shasum in [ + ("7.1.1", "abf5ad4e94aa2d504b4f6d0279780066f3d9a07518fa8b5af0edeac2a6b69d41"), + ("7.1.0", "076e8deba8a6db67bda7d97da8c2395d2a698d968a9cda5bda43ce65cce015ed"), + ("7.0.2", "90ba233cc5242a2b3d2f4b4576b9d61f78bbf13f648e713a377b10df00257592"), + ("7.0.0", "611aa99b4fe88988850e4533056ebfede1cb546ca2f208dbf3eda84b041ef6d6"), + ("6.4.3", "bf5112a7dbc62ba292d782297edebb385b18563f4efebfb4b581230f9383a89f"), + ("6.4.2", "c2828018e6241bf0464c38f63e16abeab0e8eb861f052454b2d1bc96e0bae66a"), ("6.4.1", "2251976146b65a5bdda5a46bfecf323d8dd122104a96394b0e76b35060a10842"), ("6.4.0", "53d5654d34e00f4bfa0846b291fe87ef6d43087349917159e663a842ea29a783"), ("6.3.3", "95cb2aab4bd996f0bd5f38427412cd768692a11fad70b97d20e402f32b1ef03e"), @@ -236,11 +297,10 @@ class Hip(CMakePackage): # Improve compilation without git repo and remove compiler rt linkage # for host and correction in CMake target path variable and # correcting the CMake path variable. - patch("0014-remove-compiler-rt-linkage-for-host.5.6.0.patch", when="@5.6.0:5.6") patch("0014-Remove-compiler-rt-linkage-for-host-for-5.7.0.patch", when="@5.7.0:5.7") patch("0014-remove-compiler-rt-linkage-for-host.6.0.patch", when="@6.0") patch("0014-remove-compiler-rt-linkage-for-host.6.1.patch", when="@6.1") - patch("0015-reverting-operator-mixup-fix-for-slate.patch", when="@5.6:6.0") + patch("0015-reverting-operator-mixup-fix-for-slate.patch", when="@:6.0") patch("0018-reverting-hipMemoryType-with-memoryType.patch", when="@6.0:6.2") # See https://github.com/ROCm/HIP/pull/3206 @@ -252,7 +312,10 @@ class Hip(CMakePackage): @property def root_cmakelists_dir(self): - return "clr" + if self.spec.satisfies("@7.2:"): + return "rocm-systems/projects/clr" + else: + return "clr" def get_paths(self): if self.spec.external: @@ -283,6 +346,7 @@ def get_paths(self): "comgr": rocm_prefix, "rocm-device-libs": rocm_prefix, "hipify-clang": rocm_prefix, + "rocm-core": rocm_prefix, } if self.spec.satisfies("@5.7:"): @@ -300,6 +364,7 @@ def get_paths(self): "comgr": self.spec["comgr"].prefix, "rocm-device-libs": self.spec["llvm-amdgpu"].prefix, "hipify-clang": self.spec["hipify-clang"].prefix, + "rocm-core": self.spec["rocm-core"].prefix, } paths["bitcode"] = paths["rocm-device-libs"].amdgcn.bitcode @@ -372,11 +437,10 @@ def set_variables(self, env): # to the hip prefix directory for non-external builds so that the # bin/.hipVersion file can still be parsed. # See also https://github.com/ROCm/HIP/issues/2223 - env.append_path( - "HIPCC_COMPILE_FLAGS_APPEND", f"--rocm-path={paths['rocm-path']}", separator=" " - ) - env.append_path( - "HIPCC_LINK_FLAGS_APPEND", f"--rocm-path={paths['rocm-path']}", separator=" " + env.append_flags("HIPCC_COMPILE_FLAGS_APPEND", f"--rocm-path={paths['rocm-path']}") + env.append_flags("HIPCC_LINK_FLAGS_APPEND", f"--rocm-path={paths['rocm-path']}") + env.append_flags( + "HIPCC_COMPILE_FLAGS_APPEND", f"-isystem {paths['rocm-core']}/include" ) elif self.spec.satisfies("+cuda"): env.set("CUDA_PATH", self.spec["cuda"].prefix) @@ -387,20 +451,23 @@ def set_variables(self, env): # being used to compile. This is only important for external ROCm # installations, which may otherwise pick up the wrong GCC toolchain. if self.spec.external and self.spec.satisfies("%gcc"): - # This is picked up by hipcc. - env.append_path( - "HIPCC_COMPILE_FLAGS_APPEND", - f"--gcc-toolchain={self.compiler.prefix}", - separator=" ", + gcc = Executable(self.compiler.cc) + libgcc_path = gcc("-print-file-name=libgcc.a", output=str, fail_on_error=False).strip() + libgcc_dir = os.path.abspath(os.path.dirname(libgcc_path)) + gcc_install_dir_flag = ( + f"--gcc-install-dir={libgcc_dir}" if os.path.exists(libgcc_dir) else None ) - env.append_path( - "HIPCC_LINK_FLAGS_APPEND", f"--gcc-toolchain={self.compiler.prefix}", separator=" " - ) - # This is picked up by CMake when using HIP as a CMake language. - env.append_path("HIPFLAGS", f"--gcc-toolchain={self.compiler.prefix}", separator=" ") + + if gcc_install_dir_flag: + # This is picked up by hipcc. + env.append_flags("HIPCC_COMPILE_FLAGS_APPEND", gcc_install_dir_flag) + env.append_flags("HIPCC_LINK_FLAGS_APPEND", gcc_install_dir_flag) + # This is picked up by CMake when using HIP as a CMake language. + env.append_flags("HIPFLAGS", gcc_install_dir_flag) def setup_build_environment(self, env: EnvironmentModifications) -> None: self.set_variables(env) + env.set("HIP_PATH", self.spec.prefix) def setup_run_environment(self, env: EnvironmentModifications) -> None: self.set_variables(env) @@ -408,29 +475,50 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: def setup_dependent_build_environment( self, env: EnvironmentModifications, dependent_spec: Spec ) -> None: - self.set_variables(env) + env.set("HIPCC_COMPILE_FLAGS_APPEND", "") + if self.spec.satisfies("+rocm"): + paths = self.get_paths() + env.append_path( + "HIPCC_COMPILE_FLAGS_APPEND", f"--rocm-path={paths['rocm-path']}", separator=" " + ) + env.append_path( + "HIPCC_LINK_FLAGS_APPEND", f"--rocm-path={paths['rocm-path']}", separator=" " + ) + env.append_path( + "HIPCC_COMPILE_FLAGS_APPEND", + f"-isystem {paths['rocm-core']}/include", + separator=" ", + ) - if "amdgpu_target" in dependent_spec.variants: - arch = dependent_spec.variants["amdgpu_target"] - if "none" not in arch and "auto" not in arch: - env.set("HCC_AMDGPU_TARGET", ",".join(arch.value)) + if "amdgpu_target" in dependent_spec.variants: + arch = dependent_spec.variants["amdgpu_target"].value + # some packages may define their own amdgpu_target variant that is not multi + if isinstance(arch, str): + arch = [arch] + if "none" not in arch and "auto" not in arch: + env.set("HCC_AMDGPU_TARGET", ",".join(arch)) - def setup_dependent_run_environment( - self, env: EnvironmentModifications, dependent_spec: Spec - ) -> None: - self.setup_dependent_build_environment(env, dependent_spec) + if self.spec.external and self.spec.satisfies("%gcc"): + # This is picked up by hipcc. + env.append_path( + "HIPCC_COMPILE_FLAGS_APPEND", + f"--gcc-toolchain={self.compiler.prefix}", + separator=" ", + ) + env.append_path( + "HIPCC_LINK_FLAGS_APPEND", f"--gcc-toolchain={self.compiler.prefix}", separator=" " + ) + # This is picked up by CMake when using HIP as a CMake language. + env.append_path("HIPFLAGS", f"--gcc-toolchain={self.compiler.prefix}", separator=" ") def setup_dependent_package(self, module, dependent_spec): self.spec.hipcc = join_path(self.prefix.bin, "hipcc") def patch(self): - if self.spec.satisfies("@5.6.0:5.6 +rocm"): - filter_file( - '"${ROCM_PATH}/llvm"', - self.spec["llvm-amdgpu"].prefix, - "clr/hipamd/hip-config.cmake.in", - string=True, - ) + if self.spec.satisfies("@7.2:"): + clr_dir = "rocm-systems/projects/clr" + else: + clr_dir = "clr" if self.spec.satisfies("@5.7:6.2 +rocm"): filter_file( '"${ROCM_PATH}/llvm"', @@ -442,21 +530,17 @@ def patch(self): filter_file( '"${ROCM_PATH}/llvm"', self.spec["llvm-amdgpu"].prefix, - "clr/hipamd/hip-config-amd.cmake.in", + f"{clr_dir}/hipamd/hip-config-amd.cmake.in", string=True, ) perl = self.spec["perl"].command - - if self.spec.satisfies("@5.6:"): - with working_dir("clr/hipamd/bin"): - filter_file("^#!/usr/bin/perl", f"#!{perl}", "roc-obj-extract", "roc-obj-ls") - if self.spec.satisfies("@5.6:5.7"): + with working_dir(f"{clr_dir}/hipamd/bin"): + filter_file("^#!/usr/bin/perl", f"#!{perl}", "roc-obj-extract", "roc-obj-ls") + if self.spec.satisfies("@5.7"): with working_dir("hipcc/bin"): filter_shebang("hipconfig") - - if self.spec.satisfies("+rocm"): - numactl = self.spec["numactl"].prefix.lib - if self.spec.satisfies("@5.6:5.7"): + if self.spec.satisfies("+rocm"): + numactl = self.spec["numactl"].prefix.lib with working_dir("hipcc/src"): filter_file(" -lnuma", f" -L{numactl} -lnuma", "hipBin_amd.h") @@ -509,7 +593,11 @@ def cmake_args(self): if self.spec.satisfies("+cuda"): args.append(self.define("HIP_PLATFORM", "nvidia")) - args.append(self.define("HIPNV_DIR", self.stage.source_path + "/hipother/hipnv")) + if self.spec.satisfies("@:7.1"): + hipnv_path = f"{self.stage.source_path}/hipother/hipnv" + else: + hipnv_path = f"{self.stage.source_path}/rocm-systems/projects/hipother/hipnv" + args.append(self.define("HIPNV_DIR", hipnv_path)) args.append(self.define("HIP_COMMON_DIR", self.stage.source_path)) args.append(self.define("HIP_CATCH_TEST", "OFF")) @@ -518,7 +606,7 @@ def cmake_args(self): args.append(self.define("AMD_OPENCL_PATH", self.stage.source_path + "/clr/opencl")) args.append(self.define("CLR_BUILD_HIP", True)) args.append(self.define("CLR_BUILD_OCL", False)) - if self.spec.satisfies("@5.6:5.7"): + if self.spec.satisfies("@5.7"): args.append(self.define("HIPCC_BIN_DIR", self.stage.source_path + "/hipcc/bin")) if self.spec.satisfies("@6.0:"): args.append(self.define("HIPCC_BIN_DIR", self.spec["hipcc"].prefix.bin)) diff --git a/repos/spack_repo/builtin/packages/hip_tensor/package.py b/repos/spack_repo/builtin/packages/hip_tensor/package.py index 7ecb8fde6c0..32e6893fa13 100644 --- a/repos/spack_repo/builtin/packages/hip_tensor/package.py +++ b/repos/spack_repo/builtin/packages/hip_tensor/package.py @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re + from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.rocm import ROCmPackage @@ -12,12 +14,28 @@ class HipTensor(CMakePackage, ROCmPackage): """AMD’s C++ library for accelerating tensor primitives""" homepage = "https://github.com/ROCm/hipTensor" - git = "https://github.com/ROCm/hipTensor.git" - url = "https://github.com/ROCm/hipTensor/archive/refs/tags/rocm-6.4.1.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("srekolam", "afzpatel") + libraries = ["libhiptensor"] + + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/hipTensor/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="43976aee80cc9c70024f7b4ef9fc6745a7cd39d3a24fa626b79f00aa2a6ebdd0") + version("7.1.0", sha256="bb51a6bb5831646bcee8965da14239542bbd21a1002d07b90d98b5868cebdeed") + version("7.0.2", sha256="c326190bf711f41b32441fe28bf92a04fb2a1a2af5e9d23bbafaa17a9b3e661f") + version("7.0.0", sha256="9fb429b9b8bb762f97cae040a33755498147eb29b83702f0159bed8aa576547c") + version("6.4.3", sha256="2b584559691b710b52447d44da062f29cf4f1151257d8f491875f68107c60f5c") + version("6.4.2", sha256="de5285ae9eb105153ac6e2cd699d9020a30c7e99d7918f90ea83bdcda935f6d9") version("6.4.1", sha256="25d9d63bc4aef76e64b679b14c0fb102a0d513a3ab188d66ed91ac9bd35c5f39") version("6.4.0", sha256="cc2a738defa72cd2b39f4d358c7967dc93b490160b6eb74f893c4626ad334310") version("6.3.3", sha256="2f4e34c5a96004e24fcdf70f9157f1079ab177a78f6dbf96ea8290f668257c23") @@ -57,15 +75,48 @@ class HipTensor(CMakePackage, ROCmPackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: - depends_on(f"composable-kernel@{ver}", when=f"@{ver}") + for tgt in ROCmPackage.amdgpu_targets: + depends_on( + f"composable-kernel@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}" + ) depends_on(f"rocm-cmake@{ver}", when=f"@{ver}") depends_on(f"hipcc@{ver}", when=f"@{ver}") + depends_on(f"hip@{ver}", when=f"@{ver}") + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/hiptensor" + else: + return "." + + @classmethod + def determine_version(cls, lib): + match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib) + if match: + ver = "{0}.{1}.{2}".format( + int(match.group(1)), int(match.group(2)), int(match.group(3)) + ) + else: + ver = None + return ver def setup_build_environment(self, env: EnvironmentModifications) -> None: if self.spec.satisfies("@6.1"): env.set("CXX", self.spec["hipcc"].prefix.bin.hipcc) else: env.set("CXX", self.spec["hip"].hipcc) + if self.spec.satisfies("@7.2:"): + env.set("CC", self.spec["hip"].hipcc) if self.spec.satisfies("+asan"): self.asan_on(env) diff --git a/repos/spack_repo/builtin/packages/hip_tests/0001_link_numa.patch b/repos/spack_repo/builtin/packages/hip_tests/0001_link_numa.patch new file mode 100644 index 00000000000..0c49521d7e3 --- /dev/null +++ b/repos/spack_repo/builtin/packages/hip_tests/0001_link_numa.patch @@ -0,0 +1,23 @@ +diff --git a/projects/hip-tests/catch/unit/memory/CMakeLists.txt b/projects/hip-tests/catch/unit/memory/CMakeLists.txt +index 788b060..af51f33 100644 +--- a/projects/hip-tests/catch/unit/memory/CMakeLists.txt ++++ b/projects/hip-tests/catch/unit/memory/CMakeLists.txt +@@ -135,12 +135,14 @@ hip_add_exe_to_target(NAME MemoryTest1 + + if(UNIX) + # link libnuma for numa_available(), numa_max_node(), move_pages(), etc. +- find_library(NUMA_LIB numa) +- if(NUMA_LIB) +- target_link_libraries(MemoryTest1 ${NUMA_LIB}) ++ find_package(NUMA QUIET) ++ if(NUMA_FOUND) ++ set(NUMA "${NUMA_LIBRARIES}") ++ target_include_directories(MemoryTest1 PRIVATE ${NUMA_INCLUDE_DIR}) + else() +- message(WARNING "libnuma not found; HostNuma tests will fail to link") ++ find_library(NUMA NAMES numa REQUIRED) + endif() ++ target_link_libraries(MemoryTest1 ${NUMA}) + endif() + + if(HIP_PLATFORM MATCHES "amd") diff --git a/repos/spack_repo/builtin/packages/hip_tests/package.py b/repos/spack_repo/builtin/packages/hip_tests/package.py index 49f1fefc689..b1393f25f7c 100644 --- a/repos/spack_repo/builtin/packages/hip_tests/package.py +++ b/repos/spack_repo/builtin/packages/hip_tests/package.py @@ -14,12 +14,27 @@ class HipTests(CMakePackage): """This repository provides unit tests for HIP implementation.""" homepage = "https://github.com/ROCm/hip-tests" - url = "https://github.com/ROCm/hip-tests/archive/refs/tags/rocm-6.4.1.tar.gz" - git = "https://github.com/ROCm/hip-tests.git" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-systems.git" + tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/hip-tests/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-systems/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b") + version("7.2.1", sha256="201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f") + version("7.2.0", sha256="728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638") + version("7.1.1", sha256="30b8a449ef6f3d4d037dbc135ed47d178c4c39a29e2e0ae6f0550aa996cab063") + version("7.1.0", sha256="15ae5ad99befcf6c96da5c4e85767a2e0abd3d80c72164f3fd61af3c1b642e5c") + version("7.0.2", sha256="db64843cbaf07475be89569e9791990eadda73b30c703305e3e1396b08efedac") + version("7.0.0", sha256="f09760abd2f7f3a296419834096cf4a9e42ce3cbcf5f0efc36e74d0b7eb801eb") + version("6.4.3", sha256="7e25bb8ae6c707000ae9620cf4cd42ff055223630139d6219b017e5516a42487") + version("6.4.2", sha256="8a39c8b9fa373636b86dd4c2df758a525de6772f27ee1e8e2c3d84c3f287532a") version("6.4.1", sha256="81614a66fc4dd97a0b6948d067f9423116ca852725074c4deecf549d379b2680") version("6.4.0", sha256="bf609b7b4c7a567ed265d3cb305510321a47c5f311a80ae8d1beed1f4891c070") version("6.3.3", sha256="7c8ccc78bdc7d684f2bc55ef1affa64e7ddad4b2bf28f12a5aede079002b8a12") @@ -50,6 +65,15 @@ class HipTests(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") depends_on(f"hip@{ver}", when=f"@{ver}") @@ -58,50 +82,74 @@ class HipTests(CMakePackage): depends_on(f"hipify-clang@{ver}", when=f"@{ver}") depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") - root_cmakelists_dir = "catch" + patch("0001_link_numa.patch", when="@7.2:") + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/hip-tests/catch" + else: + return "catch" def patch(self): + if self.spec.satisfies("@7.2:"): + hip_tests_dir = "projects/hip-tests/" + else: + hip_tests_dir = "" + filter_file( "${ROCM_PATH}/bin/rocm_agent_enumerator", f"{self.spec['rocminfo'].prefix}/bin/rocm_agent_enumerator", - "catch/CMakeLists.txt", + f"{hip_tests_dir}catch/CMakeLists.txt", string=True, ) filter_file( "/opt/rocm/bin/rocm_agent_enumerator", f"{self.spec['rocminfo'].prefix}/bin/rocm_agent_enumerator", - "catch/hipTestMain/hip_test_context.cc", + f"{hip_tests_dir}catch/hipTestMain/hip_test_context.cc", string=True, ) filter_file( "${HIP_PATH}/llvm", self.spec["llvm-amdgpu"].prefix, - "samples/2_Cookbook/17_llvm_ir_to_executable/CMakeLists.txt", - "samples/2_Cookbook/16_assembly_to_executable/CMakeLists.txt", + f"{hip_tests_dir}samples/2_Cookbook/17_llvm_ir_to_executable/CMakeLists.txt", + f"{hip_tests_dir}samples/2_Cookbook/16_assembly_to_executable/CMakeLists.txt", string=True, ) filter_file( "${ROCM_PATH}/llvm", self.spec["llvm-amdgpu"].prefix, - "catch/CMakeLists.txt", - "samples/2_Cookbook/16_assembly_to_executable/CMakeLists.txt", - "samples/2_Cookbook/21_cmake_hip_cxx_clang/CMakeLists.txt", - "samples/2_Cookbook/18_cmake_hip_device/CMakeLists.txt", - "samples/2_Cookbook/17_llvm_ir_to_executable/CMakeLists.txt", - "samples/2_Cookbook/23_cmake_hiprtc/CMakeLists.txt", - "samples/2_Cookbook/22_cmake_hip_lang/CMakeLists.txt", - "samples/2_Cookbook/19_cmake_lang/CMakeLists.txt", - string=True, - ) - filter_file( - "${CMAKE_PREFIX_PATH}/bin/hipify-perl", - f"{self.spec['hipify-clang'].prefix.bin}/hipify-perl", - "samples/0_Intro/square/CMakeLists.txt", + f"{hip_tests_dir}catch/CMakeLists.txt", + f"{hip_tests_dir}samples/2_Cookbook/16_assembly_to_executable/CMakeLists.txt", + f"{hip_tests_dir}samples/2_Cookbook/21_cmake_hip_cxx_clang/CMakeLists.txt", + f"{hip_tests_dir}samples/2_Cookbook/18_cmake_hip_device/CMakeLists.txt", + f"{hip_tests_dir}samples/2_Cookbook/17_llvm_ir_to_executable/CMakeLists.txt", + f"{hip_tests_dir}samples/2_Cookbook/23_cmake_hiprtc/CMakeLists.txt", + f"{hip_tests_dir}samples/2_Cookbook/22_cmake_hip_lang/CMakeLists.txt", + f"{hip_tests_dir}samples/2_Cookbook/19_cmake_lang/CMakeLists.txt", string=True, ) + if self.spec.satisfies("@:6.4"): + filter_file( + "${CMAKE_PREFIX_PATH}/bin/hipify-perl", + f"{self.spec['hipify-clang'].prefix.bin}/hipify-perl", + f"{hip_tests_dir}samples/0_Intro/square/CMakeLists.txt", + string=True, + ) + if self.spec.satisfies("@7.0:"): + filter_file( + "${ROCM_PATH}/bin/hipify-perl", + f"{self.spec['hipify-clang'].prefix.bin}/hipify-perl", + f"{hip_tests_dir}samples/0_Intro/square/CMakeLists.txt", + string=True, + ) def setup_build_environment(self, env: EnvironmentModifications) -> None: - env.set("CXX", self.spec["hip"].hipcc) + if self.spec.satisfies("@:7.1"): + env.set("CXX", self.spec["hip"].hipcc) + else: + env.set("CXX", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++") + env.set("CC", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang") def cmake_args(self): args = [ @@ -111,6 +159,13 @@ def cmake_args(self): ] if self.spec.satisfies("^cmake@3.21.0:3.21.2"): args.append(self.define("__skip_rocmclang", "ON")) + if self.spec.satisfies("@7.2:"): + args.append( + self.define( + "CMAKE_MODULE_PATH", + f"{self.stage.source_path}/projects/hip-tests/catch/perftests/memory", + ) + ) return args def build(self, spec, prefix): @@ -121,7 +176,14 @@ def build(self, spec, prefix): def cache_test_sources(self): """Copy the tests source files after the package is installed to an install test subdirectory for use during `spack test run`.""" - cache_extra_test_sources(self, "samples") + if self.spec.satisfies("@7.2:"): + hip_tests_dir = "projects/hip-tests/" + else: + hip_tests_dir = "" + + cache_extra_test_sources(self, f"{hip_tests_dir}samples") + if self.spec.satisfies("@7.0:"): + cache_extra_test_sources(self, f"{hip_tests_dir}catch") def test_samples(self): """build and run all hip samples""" @@ -161,7 +223,13 @@ def test_samples(self): if self.spec.satisfies("@6.2:"): sample_test_binaries.append("2_Cookbook/22_cmake_hip_lang/square2") - test_dir = join_path(self.test_suite.current_test_cache_dir, "samples") + + if self.spec.satisfies("@7.2:"): + hip_tests_dir = "projects/hip-tests/" + else: + hip_tests_dir = "" + + test_dir = join_path(self.test_suite.current_test_cache_dir, hip_tests_dir, "samples") prefix_paths = ";".join(get_cmake_prefix_path(self)) clang_cpp_path = join_path(self.spec["llvm-amdgpu"].prefix, "bin", "clang++") clang_path = join_path(self.spec["llvm-amdgpu"].prefix, "bin", "clang") @@ -175,7 +243,7 @@ def test_samples(self): ".", ] - cmake = which(self.spec["cmake"].prefix.bin.cmake) + cmake = which(self.spec["cmake"].prefix.bin.cmake, required=True) with working_dir(test_dir, create=True): cmake(*cc_options) make("build_samples") diff --git a/repos/spack_repo/builtin/packages/hipblas/package.py b/repos/spack_repo/builtin/packages/hipblas/package.py index 051e63ece62..0e3a114ad96 100644 --- a/repos/spack_repo/builtin/packages/hipblas/package.py +++ b/repos/spack_repo/builtin/packages/hipblas/package.py @@ -16,15 +16,29 @@ class Hipblas(CMakePackage, CudaPackage, ROCmPackage): supported backends""" homepage = "https://github.com/ROCm/hipBLAS" - git = "https://github.com/ROCm/hipBLAS.git" - url = "https://github.com/ROCm/hipBLAS/archive/rocm-6.2.4.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("cgmb", "srekolam", "renjithravindrankannath", "haampie", "afzpatel") libraries = ["libhipblas"] - license("MIT") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/hipBLAS/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="4a77f19a6229a6135fc9e2ea8e7694efda984c654a11a8c650fa9480aaf1ca84") + version("7.1.0", sha256="719c27d839d2008be5c5ec270299d98aab820eaf6aee907b7fa12cecd0cea092") + version("7.0.2", sha256="af179faab4ff5eec5d5ca3af3640644c72c9a9ca676cfab50591e9d9f3fadf80") + version("7.0.0", sha256="9500c514cb272f09cba9bea74eaac9873e8a8afc1ed30e9f5b87f795d4eda877") + version("6.4.3", sha256="75121df09f9b0b3116c19258c9526e0cff3d8845361031305ba0369f140fd8b8") + version("6.4.2", sha256="f56035ecb60c5244f27fd4b5f5298096212fa301689615bdce833b83bf3da733") version("6.4.1", sha256="3fa0a690bf96104afb093d19a4f565012a59ab6df378df8aef5420914e82d91b") version("6.4.0", sha256="544a302bdc494af02147dc14c75d088031927e1c3a2f7a349d817497000b1c34") version("6.3.3", sha256="8f645a5c9298170e71354437188eeca8272ff2b98077e9f34d1ca0fd7f27b7f8") @@ -41,9 +55,6 @@ class Hipblas(CMakePackage, CudaPackage, ROCmPackage): version("6.0.0", sha256="8fbd0c244fe82eded866e06d2399b1d91ab5d43d2ebcb73382c7ce1ae48d9cb3") version("5.7.1", sha256="794e9298f48ffbe3bd1c1ab87a5c2c2b953713500155fdec9ef8cbb11f81fc8a") version("5.7.0", sha256="8c6cd2ffa4ce6ab03e05feffe074685b5525610870aebe9d78f817b3037f33a4") - with default_args(deprecated=True): - version("5.6.1", sha256="f9da82fbefc68b84081ea0ed0139b91d2a540357fcf505c7f1d57eab01eb327c") - version("5.6.0", sha256="9453a31324e10ba528f8f4755d2c270d0ed9baa33e980d8f8383204d8e28a563") # default to an 'auto' variant until amdgpu_targets can be given a better default than 'none' amdgpu_targets = ROCmPackage.amdgpu_targets @@ -71,16 +82,16 @@ class Hipblas(CMakePackage, CudaPackage, ROCmPackage): depends_on("googletest@1.10.0:", type="test") depends_on("netlib-lapack@3.7.1:", type="test") - depends_on("boost@1.64.0:1.76.0 +program_options cxxstd=14", type="test") + depends_on("boost@1.64.0:1.76.0 +program_options cxxstd=14", type="test", when="@:7.1") depends_on("py-pyaml", type="test", when="@6.1:") - patch("remove-hipblas-clients-file-installation.patch", when="@5.6:5.7.1") - patch("remove-hipblas-clients-file-installation-6.0.patch", when="@6.0:") - patch("modify-hipblas-common-dependency.patch", when="@6.3:") + patch("remove-hipblas-clients-file-installation.patch", when="@5.7") + patch("remove-hipblas-clients-file-installation-6.0.patch", when="@6.0:6") + patch("modify-hipblas-common-dependency.patch", when="@6.3:6") depends_on("hip +cuda", when="+cuda") - for ver in ["5.6.0", "5.6.1", "5.7.0", "5.7.1"]: + for ver in ["5.7.0", "5.7.1"]: depends_on(f"rocm-cmake@{ver}", when=f"+rocm @{ver}") depends_on(f"rocsolver@{ver}", when=f"+rocm @{ver}") depends_on(f"rocblas@{ver}", when=f"+rocm @{ver}") @@ -100,18 +111,74 @@ class Hipblas(CMakePackage, CudaPackage, ROCmPackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocm-cmake@{ver}", when=f"+rocm @{ver}") depends_on(f"rocsolver@{ver}", when=f"+rocm @{ver}") depends_on(f"rocblas@{ver}", when=f"+rocm @{ver}") + + for ver in [ + "6.0.0", + "6.0.2", + "6.1.0", + "6.1.1", + "6.1.2", + "6.2.0", + "6.2.1", + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + ]: depends_on(f"rocm-openmp-extras@{ver}", type="test", when=f"+rocm @{ver}") for tgt in ROCmPackage.amdgpu_targets: depends_on(f"rocblas amdgpu_target={tgt}", when=f"+rocm amdgpu_target={tgt}") depends_on(f"rocsolver amdgpu_target={tgt}", when=f"+rocm amdgpu_target={tgt}") - for ver in ["6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: + + for ver in [ + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"hipblas-common@{ver}", when=f"@{ver}") + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/hipblas" + else: + return "." + @classmethod def determine_version(cls, lib): match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib) @@ -137,13 +204,26 @@ def cmake_args(self): # FindHIP.cmake is still used for +cuda if self.spec.satisfies("+cuda"): args.append(self.define("CMAKE_MODULE_PATH", self.spec["hip"].prefix.lib.cmake.hip)) - if self.spec.satisfies("@5.6.0:6.3.1"): + if self.spec.satisfies("@:6.3.1"): args.append(self.define("BUILD_FILE_REORG_BACKWARD_COMPATIBILITY", True)) if self.spec.satisfies("@6.1:") and self.run_tests: args.append(self.define("LINK_BLIS", "OFF")) - + if self.spec.satisfies("@7.2:") and self.run_tests: + args.append( + self.define( + "BLAS_LIBRARIES", f"{self.spec['netlib-lapack'].prefix.lib}/libcblas.so" + ) + ) + args.append( + self.define( + "LAPACK_LIBRARIES", f"{self.spec['netlib-lapack'].prefix.lib}/liblapack.so" + ) + ) + args.append( + self.define("CBLAS_INCLUDE_DIRS", self.spec["netlib-lapack"].prefix.include) + ) return args def check(self): exe = Executable(join_path(self.build_directory, "clients", "staging", "hipblas-test")) - exe("--gtest_filter=-*known_bug*") + exe("--gtest_filter=-*known_bug*:_/getrs*:_/getri_batched.solver*:_/gels_batched.solver*") diff --git a/repos/spack_repo/builtin/packages/hipblas_common/package.py b/repos/spack_repo/builtin/packages/hipblas_common/package.py index 0fbe000764c..94f934c17a8 100644 --- a/repos/spack_repo/builtin/packages/hipblas_common/package.py +++ b/repos/spack_repo/builtin/packages/hipblas_common/package.py @@ -12,14 +12,38 @@ class HipblasCommon(CMakePackage): homepage = "https://github.com/ROCm/hipBLAS-common" url = "https://github.com/ROCm/hipBLAS-common/archive/refs/tags/rocm-6.3.0.tar.gz" + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") - license("MIT") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/hipBLAS-common/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="1baedf7562c7afdca5f688b9117949941082b30cd5ea8630b30e9ac299cf56ea") + version("7.1.0", sha256="6c00bb9335ad2ad3d4730eb41ebc704b0207162d5f98da1cdce3eea1087c3944") + version("7.0.2", sha256="7b8007784831d895fb0a432f366388bc7d212443a25ea9f14eb2aa0a7b4ad5d7") + version("7.0.0", sha256="a20e4770a5758e931b7a79c5e0f2a061a1b11195217f74d512cdc764124fc564") + version("6.4.3", sha256="a6a0ad9b12fb104e96d19556e576bb2a8ddb630acf6209f171a61707eed1d6c8") + version("6.4.2", sha256="2212ebede73269864d5303fec94f4d0774c196f68dc9afe50af4014f82f1e073") version("6.4.1", sha256="ba3cb314ceab9183aeac851e536c5d143933986f3099533edd327ffeb4b48e9b") version("6.4.0", sha256="8953bcf13ba1aa03cb29481bd90eaef373bf0e41cadff68e567ecd2ec0b07363") version("6.3.3", sha256="b2b77abb5c851674839b583dc313684b5f6aa676e8186ff0a5696b6962c2b4da") version("6.3.2", sha256="29aa1ac1a0f684a09fe2ea8a34ae8af3622c27708c7df403a7481e75174e1984") version("6.3.1", sha256="512e652483b5580713eca14db3fa633d0441cd7c02cdb0d26e631ea605b9231b") version("6.3.0", sha256="240bb1b0f2e6632447e34deae967df259af1eec085470e58a6d0aa040c8530b0") + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/hipblas-common" + else: + return "." diff --git a/repos/spack_repo/builtin/packages/hipblaslt/0004-Set-rocm-smi-ld-path-7.0.patch b/repos/spack_repo/builtin/packages/hipblaslt/0004-Set-rocm-smi-ld-path-7.0.patch new file mode 100644 index 00000000000..39c9f6d0fa0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/hipblaslt/0004-Set-rocm-smi-ld-path-7.0.patch @@ -0,0 +1,22 @@ +diff --git a/tensilelite/Tensile/Common/GlobalParameters.py b/tensilelite/Tensile/Common/GlobalParameters.py +index 4cbf586..e2602b9 100644 +--- a/tensilelite/Tensile/Common/GlobalParameters.py ++++ b/tensilelite/Tensile/Common/GlobalParameters.py +@@ -552,7 +552,7 @@ def assignGlobalParameters(config, isaInfoMap: Dict[IsaVersion, IsaInfo]): + + globalParameters["ROCmBinPath"] = os.path.join(globalParameters["ROCmPath"], "bin") + try: +- globalParameters["ROCmSMIPath"] = locateExe(globalParameters["ROCmBinPath"], "rocm-smi") ++ globalParameters["ROCmSMIPath"] = os.environ.get("ROCM_SMI_PATH") + except OSError: + if os.name == "nt": + # rocm-smi is not presently supported on Windows so do not require it. +@@ -560,7 +560,7 @@ def assignGlobalParameters(config, isaInfoMap: Dict[IsaVersion, IsaInfo]): + else: + raise + globalParameters["ROCmLdPath"] = locateExe( +- os.path.join(globalParameters["ROCmPath"], "lib/llvm/bin"), ++ os.environ.get("ROCM_LD_PATH"), + "ld.lld" if os.name != "nt" else "ld.lld.exe" + ) + diff --git a/repos/spack_repo/builtin/packages/hipblaslt/0005-add-offload-bundler-path.patch b/repos/spack_repo/builtin/packages/hipblaslt/0005-add-offload-bundler-path.patch new file mode 100644 index 00000000000..e6bbf842a3c --- /dev/null +++ b/repos/spack_repo/builtin/packages/hipblaslt/0005-add-offload-bundler-path.patch @@ -0,0 +1,14 @@ +diff --git a/projects/hipblaslt/device-library/CMakeLists.txt b/projects/hipblaslt/device-library/CMakeLists.txt +index a9a698334e..c101f3ddb6 100644 +--- a/projects/hipblaslt/device-library/CMakeLists.txt ++++ b/projects/hipblaslt/device-library/CMakeLists.txt +@@ -17,6 +17,9 @@ list(JOIN GPU_TARGETS "$" TENSILELITE_GPU_TARGETS_SEMI_ESCAPED) + + set(TENSILELITE_BUILD_OPTS ${TENSILELITE_BUILD_OPTS} "--architecture=${TENSILELITE_GPU_TARGETS_SEMI_ESCAPED}") + set(TENSILELITE_BUILD_OPTS ${TENSILELITE_BUILD_OPTS} "--cxx-compiler=${CMAKE_CXX_COMPILER}") ++if(TENSILELITE_OFFLOADBUNDLER) ++ set(TENSILELITE_BUILD_OPTS ${TENSILELITE_BUILD_OPTS} "--offload-bundler=${TENSILELITE_OFFLOADBUNDLER}") ++endif() + if(HIPBLASLT_ENABLE_ASAN) + set(TENSILELITE_BUILD_OPTS ${TENSILELITE_BUILD_OPTS} "--address-sanitizer") + endif() diff --git a/repos/spack_repo/builtin/packages/hipblaslt/002-link-roctracer.7.0.patch b/repos/spack_repo/builtin/packages/hipblaslt/002-link-roctracer.7.0.patch new file mode 100644 index 00000000000..a425e4fd6d2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/hipblaslt/002-link-roctracer.7.0.patch @@ -0,0 +1,51 @@ +diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt +index 8e056b6..d99d2e1 100644 +--- a/library/CMakeLists.txt ++++ b/library/CMakeLists.txt +@@ -62,6 +62,7 @@ set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}) + # Create hipBLASLt library + add_library(hipblaslt ${hipblaslt_headers_public}) + add_library(roc::hipblaslt ALIAS hipblaslt) ++target_include_directories( hipblaslt PRIVATE ${MSGPACK_DIR}/include ) + + # Include sources + add_subdirectory(src) +@@ -158,7 +159,9 @@ if(NOT BUILD_CUDA) + endif() + + if(HIPBLASLT_ENABLE_MARKER) +- target_link_libraries(hipblaslt PRIVATE -lroctx64) ++ find_path(ROCTRACER_INCLUDE_DIR "roctracer/roctx.h") ++ target_include_directories(hipblaslt PRIVATE ${ROCTRACER_INCLUDE_DIR}) ++ target_link_libraries(hipblaslt PRIVATE ${rocTracer}) + endif() + + if( NOT BUILD_CUDA AND NOT LEGACY_HIPBLAS_DIRECT ) +diff --git a/tensilelite/Tensile/Source/client/CMakeLists.txt b/tensilelite/Tensile/Source/client/CMakeLists.txt +index 3401dd7..1f36d4d 100644 +--- a/tensilelite/Tensile/Source/client/CMakeLists.txt ++++ b/tensilelite/Tensile/Source/client/CMakeLists.txt +@@ -65,7 +65,9 @@ target_include_directories(TensileClient PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/inc + target_link_libraries(TensileClient PRIVATE TensileHost Boost::program_options Boost::filesystem rocm_smi) + + if(Tensile_ENABLE_MARKER) +- target_link_libraries(TensileClient PRIVATE -lroctx64) ++ find_path(ROCTRACER_INCLUDE_DIR "roctracer/roctx.h") ++ target_include_directories(TensileClient PRIVATE ${ROCTRACER_INCLUDE_DIR}) ++ target_link_libraries(TensileClient PRIVATE ${rocTracer}) + endif() + + if(TENSILE_USE_OPENMP) +diff --git a/tensilelite/Tensile/cmake/TensileConfig.cmake b/tensilelite/Tensile/cmake/TensileConfig.cmake +index 8b9a949..a36eef9 100644 +--- a/tensilelite/Tensile/cmake/TensileConfig.cmake ++++ b/tensilelite/Tensile/cmake/TensileConfig.cmake +@@ -129,6 +129,8 @@ function(TensileCreateLibraryFiles + + message(STATUS "Tensile script: ${Script}") + ++ set(Options ${Options} "--offload-bundler=$ENV{TENSILE_ROCM_OFFLOAD_BUNDLER_PATH}") ++ + if(Tensile_NO_LAZY_LIBRARY_LOADING) + set(Options ${Options} "--no-lazy-library-loading") + endif() diff --git a/repos/spack_repo/builtin/packages/hipblaslt/005-add-roctracer-include-dir.patch b/repos/spack_repo/builtin/packages/hipblaslt/005-add-roctracer-include-dir.patch new file mode 100644 index 00000000000..be7ead9a5da --- /dev/null +++ b/repos/spack_repo/builtin/packages/hipblaslt/005-add-roctracer-include-dir.patch @@ -0,0 +1,20 @@ +diff --git a/projects/hipblaslt/CMakeLists.txt b/projects/hipblaslt/CMakeLists.txt +index dbccca9..724ff0b 100644 +--- a/projects/hipblaslt/CMakeLists.txt ++++ b/projects/hipblaslt/CMakeLists.txt +@@ -121,6 +121,7 @@ if(HIPBLASLT_ENABLE_HOST) + endif() + if(HIPBLASLT_ENABLE_MARKER) + find_library(rocTracer roctx64 REQUIRED) ++ find_path(ROCTRACER_INCLUDE_DIR "roctracer/roctx.h") + else() + set(rocTracer) + endif() +@@ -269,6 +270,7 @@ if(HIPBLASLT_ENABLE_HOST) + + if(HIPBLASLT_ENABLE_MARKER) + target_compile_definitions(hipblaslt PRIVATE HIPBLASLT_ENABLE_MARKER) ++ target_include_directories(hipblaslt PRIVATE ${ROCTRACER_INCLUDE_DIR}) + endif() + + target_include_directories(hipblaslt diff --git a/repos/spack_repo/builtin/packages/hipblaslt/package.py b/repos/spack_repo/builtin/packages/hipblaslt/package.py index 7e276c4cb53..ca3a8bd0997 100644 --- a/repos/spack_repo/builtin/packages/hipblaslt/package.py +++ b/repos/spack_repo/builtin/packages/hipblaslt/package.py @@ -2,6 +2,9 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os +import re + from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.rocm import ROCmPackage @@ -13,13 +16,30 @@ class Hipblaslt(CMakePackage): and extends functionalities beyond a traditional BLAS library""" homepage = "https://github.com/ROCm/hipBLASLt" - url = "https://github.com/ROCm/hipBLASLt/archive/refs/tags/rocm-6.4.1.tar.gz" - git = "https://github.com/ROCm/hipBLASLt.git" + git = "https://github.com/ROCm/rocm-libraries.git" maintainers("srekolam", "afzpatel", "renjithravindrankannath") tags = ["rocm"] + libraries = ["libhipblaslt"] license("MIT") + + def url_for_version(self, version): + if version <= Version("7.0.2"): + url = "https://github.com/ROCm/hipBLASLt/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="2c00694c6131192354b0e785e4dcb06a302e4b7891ec50ca30927e05ba7b368b") + version("7.1.0", sha256="d9e138a15e8195a7e9b5e15240e50c557b830d50a2bafa27db14dad3884dbfd8") + version("7.0.2", sha256="52d7c1c6852f501f5bd37fa962e6538592741792593a173d8b6963b8f7bd2c41") + version("7.0.0", sha256="9a38822eea27080dbeab7dd9d39b4bdaeb7c25bc5d19ca6ccf24674c3b34dbae") + version("6.4.3", sha256="64252588faf8a9089838e8f427e911617916fd6905a8cc65370e8d25fafdf0e4") + version("6.4.2", sha256="5e5f4a84aa4e5ef6018d0d91e97fc20394c7c17822cc8fb8307fff07b1d91823") version("6.4.1", sha256="929f781f86df40143c3ab98df2d746170dedb6788e368335e24c84796285a8a4") version("6.4.0", sha256="a4baa0c7336db9d46a0884c8ccfd0fb7e00a502b478aed9f588aa26fa8773353") version("6.3.3", sha256="f32d666b37bdbecbf924cc98653fa3d30a0de629039d4dad44d35a2082e39e5a") @@ -47,6 +67,8 @@ class Hipblaslt(CMakePackage): depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("cmake@3.25.2:", type="build", when="@6.2.0:") depends_on("python@3.7:") depends_on("python@3.8:3.13.2", when="@6.4:") @@ -66,19 +88,79 @@ class Hipblaslt(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + ]: + depends_on(f"rocm-openmp-extras@{ver}", type="test", when=f"@{ver}") + + for ver in [ + "6.0.0", + "6.0.2", + "6.1.0", + "6.1.1", + "6.1.2", + "6.2.0", + "6.2.1", + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") - depends_on(f"rocm-openmp-extras@{ver}", type="test", when=f"@{ver}") for ver in ["6.0.0", "6.0.2", "6.1.0", "6.1.1", "6.1.2", "6.2.0", "6.2.1", "6.2.4"]: depends_on(f"hipblas@{ver}", when=f"@{ver}") - for ver in ["6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: + for ver in [ + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"hipblas-common@{ver}", when=f"@{ver}") depends_on(f"rocm-smi-lib@{ver}", when=f"@{ver}") - for ver in ["6.4.0", "6.4.1"]: + for ver in [ + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"roctracer-dev@{ver}", when=f"@{ver}") depends_on("msgpack-c") @@ -87,6 +169,12 @@ class Hipblaslt(CMakePackage): depends_on("netlib-lapack@3.7.1:", type="test") depends_on("py-pyyaml", type="test") depends_on("python-venv", when="@6.4:") + depends_on("blis", type="test", when="@7.1:") + depends_on("boost+filesystem", when="@7.1:") + depends_on("googletest@1.10.0:", when="@7.1:") + depends_on("py-pyyaml+libyaml", when="@7.1:") + depends_on("py-packaging", when="@7.1:") + depends_on("py-msgpack", when="@7.1:") # Sets the proper for clang++ and clang-offload-blunder. # Also adds hipblas and msgpack include directories @@ -96,14 +184,30 @@ class Hipblaslt(CMakePackage): patch("0001-Set-LLVM_Path-Add-Hiblas-Include-to-CmakeLists-6.1.Patch", when="@6.1:6.2") patch("0001-Set-LLVM-Path-6.3.Patch", when="@6.3") patch("002-link-roctracer.patch", when="@6.4") - patch("003-use-rocm-smi-config.patch", when="@6.4") + patch("002-link-roctracer.7.0.patch", when="@7.0") + + patch("003-use-rocm-smi-config.patch", when="@6.4:7.0") + patch("0004-Set-rocm-smi-ld-path-7.0.patch", when="@7.0") + # https://github.com/ROCm/rocm-libraries/pull/2115 + patch("005-add-roctracer-include-dir.patch", when="@7.1") + patch( + "https://github.com/ROCm/rocm-libraries/commit/841ea340cbf3d7aa0dd37ba2da18a44128602b79.patch?full_index=1", + sha256="503555b92ccbc33e50a10e2ba1d38e8f3349b93d786c7f6b19aaacb736c9bf7c", + when="@7.2", + ) + # https://github.com/ROCm/rocm-libraries/pull/5990 + patch("0005-add-offload-bundler-path.patch", when="@7.1:") def setup_build_environment(self, env: EnvironmentModifications) -> None: - env.set("CXX", self.spec["hip"].hipcc) - if self.spec.satisfies("@6.3.0:"): + if self.spec.satisfies("@:6.4"): + env.set("CXX", self.spec["hip"].hipcc) + else: + env.set("CXX", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++") + if self.spec.satisfies("@6.3.0:6.4"): env.set( "TENSILE_ROCM_ASSEMBLER_PATH", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang++" ) + if self.spec.satisfies("@6.3.0:7.0"): env.set( "TENSILE_ROCM_OFFLOAD_BUNDLER_PATH", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang-offload-bundler", @@ -113,9 +217,17 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: "ROCM_AGENT_ENUMERATOR_PATH", f"{self.spec['rocminfo'].prefix}/bin/rocm_agent_enumerator", ) + if self.spec.satisfies("@7.0:"): + env.set("ROCM_LD_PATH", f"{self.spec['llvm-amdgpu'].prefix}/bin/ld.lld") + env.set("CC", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang") + + if self.spec.satisfies("@7.1") and self.run_tests: + env.append_flags("LDFLAGS", "-lstdc++fs") def patch(self): - if self.spec.satisfies("@6.3:"): + purelib = self.spec["python"].package.purelib + joblib_path = os.path.join(self.spec["py-joblib"].prefix, purelib) + if self.spec.satisfies("@6.3:6.4"): filter_file( "${rocm_path}/llvm/bin", self.spec["llvm-amdgpu"].prefix.bin, @@ -124,17 +236,77 @@ def patch(self): ) filter_file( "${rocm_path}/bin/amdclang++", - f'{self.spec["llvm-amdgpu"].prefix}/bin/amdclang++', + f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++", "library/src/amd_detail/rocblaslt/src/kernels/compile_code_object.sh", string=True, ) - if self.spec.satisfies("@6.3:"): filter_file( "${rocm_path}/bin/amdclang++", - f'{self.spec["llvm-amdgpu"].prefix}/bin/amdclang++', + f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++", "tensilelite/Tensile/Ops/gen_assembly.sh", string=True, ) + if self.spec.satisfies("@7.0"): + filter_file( + "${PROJECT_BINARY_DIR}/lib", + ":".join(["${PROJECT_BINARY_DIR}/lib", joblib_path]), + "tensilelite/CMakeLists.txt", + "tensilelite/Tensile/cmake/TensileConfig.cmake", + "library/src/amd_detail/rocblaslt/src/extops/CMakeLists.txt", + string=True, + ) + if not self.spec["hip"].external: + if self.spec.satisfies("@6.4:7.0") and self.run_tests: + filter_file( + r"${HIP_CLANG_ROOT}/lib", + "{0}/lib".format(self.spec["rocm-openmp-extras"].prefix), + "clients/CMakeLists.txt", + string=True, + ) + if self.spec.satisfies("@7.1") and self.run_tests: + filter_file( + r"${HIP_CLANG_ROOT}/lib", + "{0}/lib".format(self.spec["rocm-openmp-extras"].prefix), + "projects/hipblaslt/clients/CMakeLists.txt", + string=True, + ) + if self.spec.satisfies("@7.1:"): + yaml_path = os.path.join(self.spec["py-pyyaml"].prefix, purelib) + packaging_path = os.path.join(self.spec["py-packaging"].prefix, purelib) + msgpack_path = os.path.join(self.spec["py-msgpack"].prefix, purelib) + filter_file( + "${_python_path}", + ":".join( + ["${_python_path}", joblib_path, yaml_path, packaging_path, msgpack_path] + ), + "projects/hipblaslt/cmake/hipblaslt_python.cmake", + string=True, + ) + filter_file( + "${PROJECT_BINARY_DIR}/lib", + ":".join(["${PROJECT_BINARY_DIR}/lib", joblib_path]), + "projects/hipblaslt/tensilelite/CMakeLists.txt", + "projects/hipblaslt/tensilelite/Tensile/cmake/TensileConfig.cmake", + string=True, + ) + + @classmethod + def determine_version(cls, lib): + match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib) + if match: + ver = "{0}.{1}.{2}".format( + int(match.group(1)), int(match.group(2)), int(match.group(3)) + ) + else: + ver = None + return ver + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.1:"): + return "projects/hipblaslt" + else: + return "." def cmake_args(self): args = [ @@ -144,11 +316,38 @@ def cmake_args(self): self.define("BUILD_CLIENTS_TESTS", self.run_tests), ] if "auto" not in self.spec.variants["amdgpu_target"]: - args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) + if self.spec.satisfies("@7.1:"): + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) + else: + args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) if self.run_tests: args.append( self.define("ROCM_OPENMP_EXTRAS_DIR", self.spec["rocm-openmp-extras"].prefix) ) if self.spec.satisfies("@6.4:"): + args.append(self.define("Python_EXECUTABLE", self.spec["python"].prefix.bin.python3)) args.append(self.define("Python_ROOT", self.spec["python"].prefix.bin)) + if self.spec.satisfies("@7.0:"): + args.append( + self.define( + "ROCROLLER_ASSEMBLER_PATH", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++" + ) + ) + args.append( + self.define( + "Tensile_COMPILER", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++" + ) + ) + if self.spec.satisfies("@7.1:"): + args.append(self.define("HIPBLASLT_ENABLE_CLIENT", self.run_tests)) + args.append( + self.define( + "TENSILELITE_OFFLOADBUNDLER", + f"{self.spec['llvm-amdgpu'].prefix}/bin/clang-offload-bundler", + ) + ) + else: + args.append(self.define("BUILD_CLIENTS_TESTS", self.run_tests)) + if self.spec.satisfies("@7.1: %gcc@8.0:8.9"): + args.append(self.define("HIPBLASLT_ENABLE_ROCROLLER", "False")) return args diff --git a/repos/spack_repo/builtin/packages/hipcc/0002-Update-rocm-agent-enumerator-path.patch b/repos/spack_repo/builtin/packages/hipcc/0002-Update-rocm-agent-enumerator-path.patch new file mode 100644 index 00000000000..7372fae2fea --- /dev/null +++ b/repos/spack_repo/builtin/packages/hipcc/0002-Update-rocm-agent-enumerator-path.patch @@ -0,0 +1,13 @@ +diff --git a/amd/hipcc/src/hipBin_amd.h b/amd/hipcc/src/hipBin_amd.h +index ecea39e07..daef09011 100644 +--- a/amd/hipcc/src/hipBin_amd.h ++++ b/amd/hipcc/src/hipBin_amd.h +@@ -782,7 +782,7 @@ void HipBinAmd::executeHipCCCmd(vector argv) { + } else if (os != windows) { + // Else try using rocm_agent_enumerator + string ROCM_AGENT_ENUM; +- ROCM_AGENT_ENUM = roccmPath + "/bin/rocm_agent_enumerator"; ++ ROCM_AGENT_ENUM = string(getenv("ROCMINFO_PATH")) + "/bin/rocm_agent_enumerator"; + targetsStr = ROCM_AGENT_ENUM +" -t GPU"; + SystemCmdOut sysOut = hipBinUtilPtr_->exec(targetsStr.c_str()); + regex toReplace("\n+"); diff --git a/repos/spack_repo/builtin/packages/hipcc/package.py b/repos/spack_repo/builtin/packages/hipcc/package.py index 1e032c4873e..ff5e89ff5ca 100644 --- a/repos/spack_repo/builtin/packages/hipcc/package.py +++ b/repos/spack_repo/builtin/packages/hipcc/package.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re from spack_repo.builtin.build_systems.cmake import CMakePackage @@ -11,8 +12,13 @@ class Hipcc(CMakePackage): """HIPCC: HIP compiler driver""" - homepage = "https://github.com/ROCm/hipcc" - git = "https://github.com/ROCm/hipcc.git" + homepage = "https://github.com/ROCm/llvm-project" + git = "https://github.com/ROCm/llvm-project.git" + + tags = ["rocm"] + maintainers("srekolam", "renjithravindrankannath", "afzpatel") + executables = ["hipcc"] + license("MIT") def url_for_version(self, version): if version <= Version("6.0.2"): @@ -21,10 +27,15 @@ def url_for_version(self, version): url = "https://github.com/ROCm/llvm-project/archive/rocm-{0}.tar.gz" return url.format(version) - maintainers("srekolam", "renjithravindrankannath", "afzpatel") - tags = ["rocm"] - - license("MIT") + version("7.2.3", sha256="6239fa0c72b150cf0a325676264d3030a67389dec4fca7103f563a70c2b70114") + version("7.2.1", sha256="4d3449d758e3f79b336248b0207a394eda04ba5cdd48a4088e135ddf769127fa") + version("7.2.0", sha256="e86138d2a63fbcbdf64668d55573b26ae944d0f0ae5a3f5bb59bf7bdb3124d3f") + version("7.1.1", sha256="d76a16db4a56914383029e241823f7bc2a3d645f2967dd22230f11c11cfe189e") + version("7.1.0", sha256="87f5532b8b653bd18541cdf6e59923cbd340b300d8ec5046d3e4288d9e5195c0") + version("7.0.2", sha256="fd612fa750bebd0c3be0ea642b2cae8ff5c7e00a2280b22b9ea16ee86a11d763") + version("7.0.0", sha256="3d479a2aa615b6bb35cd3521122fbff34188dc0cc52d8b0acda59f9f55198211") + version("6.4.3", sha256="7a484b621d568eef000ee8c4d2d46d589e5682b950f1f410ce7215031f1f3ad7") + version("6.4.2", sha256="9f42cb73d90bd4561686c0366f60f6e58cfd32ff24b094c69e8259fb5d177457") version("6.4.1", sha256="460ad28677092b9eb86ffdc49bcb4d01035e32b4f05161d85f90c9fa80239f50") version("6.4.0", sha256="dca1c145a23f05229d5d646241f9d1d3c5dbf1d745b338ae020eabe33beb965c") version("6.3.3", sha256="4df9aba24e574edf23844c0d2d9dda112811db5c2b08c9428604a21b819eb23d") @@ -50,7 +61,8 @@ def url_for_version(self, version): patch("0014-remove-compiler-rt-linkage-for-host.6.0.patch", when="@6.0") patch("0014-remove-compiler-rt-linkage-for-host.6.1.patch", when="@6.1") - patch("0001-Update-the-ROCMINFO-HIPCLANG-PATHS-inside-hipcc-6.2.0.patch", when="@6.2:") + patch("0001-Update-the-ROCMINFO-HIPCLANG-PATHS-inside-hipcc-6.2.0.patch", when="@6.2:6") + patch("0002-Update-rocm-agent-enumerator-path.patch", when="@7.0:") @property def root_cmakelists_dir(self): @@ -59,6 +71,12 @@ def root_cmakelists_dir(self): else: return join_path("amd", "hipcc") + @classmethod + def determine_version(cls, exe): + output = Executable(exe)("--version", output=str, error=str) + match = re.search(r"roc-(\S+)", output) + return match.group(1) if match else None + def patch(self): numactl = self.spec["numactl"].prefix.lib if self.spec.satisfies("@:6.0"): diff --git a/repos/spack_repo/builtin/packages/hipcub/package.py b/repos/spack_repo/builtin/packages/hipcub/package.py index 3bed85e0014..a86f3758b97 100644 --- a/repos/spack_repo/builtin/packages/hipcub/package.py +++ b/repos/spack_repo/builtin/packages/hipcub/package.py @@ -13,14 +13,28 @@ class Hipcub(CMakePackage, CudaPackage, ROCmPackage): """Radeon Open Compute Parallel Primitives Library""" homepage = "https://github.com/ROCm/hipCUB" - git = "https://github.com/ROCm/hipCUB.git" - url = "https://github.com/ROCm/hipCUB/archive/rocm-6.1.2.tar.gz" - tags = ["rocm"] - - license("BSD-3-Clause") + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") + license("BSD-3-Clause") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/hipCUB/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="2a7dc48ba7feb0f21d62844df7e1ef075249e9d2a491b76c8eb8f60335eb24b1") + version("7.1.0", sha256="131c1168f0b690874f5bce2f20c37ce854d4de47487ad1ffd2d361445276c0b8") + version("7.0.2", sha256="ed7ce02bbbd1ed49dfeb2ec86cae01825dc7081c98875f046a9950ac4c9c8caa") + version("7.0.0", sha256="fc17f982514fc5f5dd45938969d47f86b59f529500da9b160a32ca9cd5bc5796") + version("6.4.3", sha256="1246f2d23665e4c4ec58a923d96b35cbfa4079adeda8bac47ba8fad3f85437bf") + version("6.4.2", sha256="31efcb029c6f5056c04a03e881704206e988dda949cd308ef8c474e5bb9bbaee") version("6.4.1", sha256="93a213a37142ae38518b6d912b89dc0ecb50e092ce84df4cb06447f1528fcc29") version("6.4.0", sha256="2c044ed9bf53b9410ef6de4ca578384569b0a89cac4e8604dfdde390b2918481") version("6.3.3", sha256="4ce22aba007c6c8a8b2231adefa7785b1869e5fdd4af29b0371a499a523c2dc6") @@ -37,9 +51,6 @@ class Hipcub(CMakePackage, CudaPackage, ROCmPackage): version("6.0.0", sha256="8d9f6e1e3f8433a2ceae1b0efd6727c21383980077e264725d00d5fee165bd30") version("5.7.1", sha256="9b23a58408bc4c549d3c754196cb3e2c1a50e177ab0a286101cbea2f7f173945") version("5.7.0", sha256="899356867f662d9a6f3870bb4a496f605a3143c6ad4d1fa9e9faead68fa8d13b") - with default_args(deprecated=True): - version("5.6.1", sha256="4b9479daa40424c9ddbc14ce967aa170680f8ca1ed01a514e6e30ccfa22552ce") - version("5.6.0", sha256="5e74ddbf833f39836bf9ec6c6750348c7386a85ca67aaf9bb54d16c9e1959031") # default to an 'auto' variant until amdgpu_targets can be given a better default than 'none' amdgpu_targets = ROCmPackage.amdgpu_targets @@ -59,15 +70,14 @@ class Hipcub(CMakePackage, CudaPackage, ROCmPackage): conflicts("+cuda +rocm", msg="CUDA and ROCm support are mutually exclusive") conflicts("~cuda ~rocm", msg="CUDA or ROCm support is required") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("cmake@3.10.2:", type="build") depends_on("googletest@1.10.0:", type="test") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -84,13 +94,32 @@ class Hipcub(CMakePackage, CudaPackage, ROCmPackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: - depends_on(f"rocprim@{ver}", when=f"+rocm @{ver}") depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") - depends_on(f"hip +cuda@{ver}", when=f"+cuda @{ver}") + depends_on(f"hip@{ver} +cuda", when=f"+cuda @{ver}") + for tgt in ROCmPackage.amdgpu_targets: + depends_on( + f"rocprim@{ver} amdgpu_target={tgt}", when=f"@{ver} +rocm amdgpu_target={tgt}" + ) # fix hardcoded search in /opt/rocm and broken config mode search - patch("find-hip-cuda-rocm-5.3.patch", when="@5.6:5.7 +cuda") + patch("find-hip-cuda-rocm-5.3.patch", when="@5.7 +cuda") + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/hipcub" + else: + return "." def setup_build_environment(self, env: EnvironmentModifications) -> None: if self.spec.satisfies("+rocm"): @@ -107,7 +136,9 @@ def cmake_args(self): # FindHIP.cmake is still used for +cuda if self.spec.satisfies("+cuda"): args.append(self.define("CMAKE_MODULE_PATH", self.spec["hip"].prefix.lib.cmake.hip)) - if self.spec.satisfies("@5.6.0:6.3.1"): + if self.spec.satisfies("@:6.3.1"): args.append(self.define("BUILD_FILE_REORG_BACKWARD_COMPATIBILITY", True)) + if "auto" not in self.spec.variants["amdgpu_target"]: + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) return args diff --git a/repos/spack_repo/builtin/packages/hipdnn/0001-change-the-install-prefix-of-hipdnn-for-spack-builds.patch b/repos/spack_repo/builtin/packages/hipdnn/0001-change-the-install-prefix-of-hipdnn-for-spack-builds.patch new file mode 100644 index 00000000000..873b5615287 --- /dev/null +++ b/repos/spack_repo/builtin/packages/hipdnn/0001-change-the-install-prefix-of-hipdnn-for-spack-builds.patch @@ -0,0 +1,54 @@ +From ea46de7344846a1bde96ef6cc9437e18b3e9ddf3 Mon Sep 17 00:00:00 2001 +From: sreenivasa murthy kolam +Date: Wed, 11 Feb 2026 09:52:31 +0000 +Subject: [PATCH] change the install prefix of hipdnn for spack builds + +--- + projects/hipdnn/CMakeLists.txt | 2 +- + projects/hipdnn/sdk/CMakeLists.txt | 6 +++--- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/projects/hipdnn/CMakeLists.txt b/projects/hipdnn/CMakeLists.txt +index 7c6df64..4e6284f 100644 +--- a/projects/hipdnn/CMakeLists.txt ++++ b/projects/hipdnn/CMakeLists.txt +@@ -29,7 +29,7 @@ project( + LANGUAGES CXX) + + if(NOT WIN32) +- set(CMAKE_INSTALL_PREFIX "${ROCM_PATH}" CACHE PATH "Install path prefix" FORCE) ++ set(CMAKE_INSTALL_PREFIX "${ROCM_PATH}" CACHE PATH "") + message(STATUS "Setting CMAKE_INSTALL_PREFIX to ${CMAKE_INSTALL_PREFIX}") + endif() + +diff --git a/projects/hipdnn/sdk/CMakeLists.txt b/projects/hipdnn/sdk/CMakeLists.txt +index db7efc4..a10600a 100644 +--- a/projects/hipdnn/sdk/CMakeLists.txt ++++ b/projects/hipdnn/sdk/CMakeLists.txt +@@ -59,7 +59,7 @@ set_target_properties(flatc PROPERTIES COMPILE_FLAGS "-w") + _restore_var(FLATBUFFERS_FLATC_SCHEMA_EXTRA_ARGS) + + add_library(hipdnn_sdk INTERFACE) +-target_link_libraries(hipdnn_sdk INTERFACE FlatBuffers spdlog_header_only nlohmann_json) ++target_link_libraries(hipdnn_sdk INTERFACE FlatBuffers spdlog::spdlog_header_only nlohmann_json::nlohmann_json) + add_dependencies(hipdnn_sdk generate_hipdnn_sdk_headers) + + target_include_directories(hipdnn_sdk INTERFACE +@@ -80,12 +80,12 @@ configure_package_config_file( + ) + + export( +- TARGETS hipdnn_sdk FlatBuffers spdlog_header_only nlohmann_json ++ TARGETS hipdnn_sdk FlatBuffers + FILE "${CMAKE_BINARY_DIR}/lib/cmake/hipdnn_sdk/hipdnn_sdkTargets.cmake" + ) + + install( +- TARGETS hipdnn_sdk FlatBuffers spdlog_header_only nlohmann_json ++ TARGETS hipdnn_sdk FlatBuffers + EXPORT hipdnn_sdk_targets + ) + +-- +2.43.5 + diff --git a/repos/spack_repo/builtin/packages/hipdnn/package.py b/repos/spack_repo/builtin/packages/hipdnn/package.py new file mode 100644 index 00000000000..30ab30372eb --- /dev/null +++ b/repos/spack_repo/builtin/packages/hipdnn/package.py @@ -0,0 +1,131 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import re + +from spack_repo.builtin.build_systems.cmake import CMakePackage, generator +from spack_repo.builtin.build_systems.rocm import ROCmPackage + +from spack.package import * + + +class Hipdnn(CMakePackage): + """hipDNN is a graph-based deep learning library for AMD GPUs that leverages a flexible + plugin architecture to provide optimized implementations and utilities + for various routines""" + + homepage = "https://github.com/ROCm/hipDNN" + url = "https://github.com/ROCm/rocm-libraries/archive/refs/tags/rocm-7.1.1.tar.gz" + git = "https://github.com/ROCm/hipDNN.git" + + maintainers("srekolam", "afzpatel", "renjithravindrankannath") + tags = ["rocm"] + libraries = ["libmiopen_legacy_plugin", "libhipdnn_backend"] + + license("MIT") + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="2c00694c6131192354b0e785e4dcb06a302e4b7891ec50ca30927e05ba7b368b") + + amdgpu_targets = ROCmPackage.amdgpu_targets + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) + variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") + variant("plugins", default=True, description="Build with plugins enabled or disabled") + variant("frontend", default=True, description="Build with front-end enabled or disabled") + + generator("ninja") + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cmake@3.13.4:", type="build") + depends_on("nlohmann-json") + depends_on("flatbuffers") + depends_on("spdlog") + depends_on("googletest") + + for ver in ["7.1.1", "7.2.0", "7.2.1", "7.2.3"]: + depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") + depends_on(f"hip@{ver}", when=f"@{ver}") + depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") + depends_on(f"miopen-hip@{ver}", when=f"@{ver}") + + patch("0001-change-the-install-prefix-of-hipdnn-for-spack-builds.patch", when="@7.1") + + def patch(self): + filter_file( + r"${ROCM_PATH}/llvm/bin", + "{0}/bin".format(self.spec["llvm-amdgpu"].prefix), + "projects/hipdnn/cmake/ClangToolChain.cmake", + string=True, + ) + filter_file( + r"${ROCM_PATH}/llvm/lib", + "{0}/lib".format(self.spec["llvm-amdgpu"].prefix), + "projects/hipdnn/cmake/ClangToolChain.cmake", + string=True, + ) + if self.spec.satisfies("@7.2:"): + filter_file( + r"${ROCM_PATH}${DEFAULT_ROCM_LLVM_ROOT}", + self.spec["llvm-amdgpu"].prefix, + "projects/hipdnn/cmake/ClangToolChain.cmake", + string=True, + ) + + @classmethod + def determine_version(cls, lib): + match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib) + if match: + ver = "{0}.{1}.{2}".format( + int(match.group(1)), int(match.group(2)), int(match.group(3)) + ) + else: + ver = None + return ver + + @property + def root_cmakelists_dir(self): + return "projects/hipdnn" + + def setup_build_environment(self, env: EnvironmentModifications) -> None: + if self.spec.satisfies("@7.1:"): + env.set("CC", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang") + env.set("CXX", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang++") + if self.spec.satisfies("+asan"): + env.set("ASAN_OPTIONS", "detect_leaks=0") + env.set("CFLAGS", "-fsanitize=address -shared-libasan") + env.set("CXXFLAGS", "-fsanitize=address -shared-libasan") + env.set("LDFLAGS", "-fuse-ld=lld") + + def cmake_args(self): + spec = self.spec + args = [ + self.define_from_variant("BUILD_ADDRESS_SANITIZER", "asan"), + self.define_from_variant("HIP_DNN_BUILD_PLUGINS", "plugins"), + self.define_from_variant("HIP_DNN_BUILD_FRONTEND", "frontend"), + self.define( + "HIP_DNN_NLOHMANN_JSON_INCLUDE_DIR", + "{0}/include".format(spec["nlohmann-json"].prefix), + ), + self.define( + "HIP_DNN_FLATBUFFERS_INCLUDE_DIR", "{0}/include".format(spec["flatbuffers"].prefix) + ), + self.define("HIP_DNN_SPDLOG_INCLUDE_DIR", "{0}/include".format(spec["spdlog"].prefix)), + self.define("HIPDNN_NO_DOWNLOAD", "ON"), + self.define("HIP_DNN_SKIP_TESTS", not self.run_tests), + ] + if "auto" not in self.spec.variants["amdgpu_target"]: + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) + if spec.satisfies("@7.2:"): + args.append(self.define("CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT", "OFF")) + args.append(self.define("CMAKE_MAKE_PROGRAM", spec["ninja"].prefix.bin.ninja)) + args.append(self.define("ROCM_LLVM_BIN_DIR", spec["llvm-amdgpu"].prefix.bin)) + return args diff --git a/repos/spack_repo/builtin/packages/hipfft/package.py b/repos/spack_repo/builtin/packages/hipfft/package.py index 9eac118617a..6eaca22b86e 100644 --- a/repos/spack_repo/builtin/packages/hipfft/package.py +++ b/repos/spack_repo/builtin/packages/hipfft/package.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.cuda import CudaPackage @@ -18,14 +19,29 @@ class Hipfft(CMakePackage, CudaPackage, ROCmPackage): inputs into the backend and results back to the application.""" homepage = "https://github.com/ROCm/hipFFT" - git = "https://github.com/ROCm/hipFFT.git" - url = "https://github.com/ROCm/hipfft/archive/rocm-6.1.0.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("renjithravindrankannath", "srekolam", "afzpatel") - + libraries = ["libhipfft"] license("MIT") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/hipfft/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="c86e34055576a662bfcb5897a4fe4ab1a4e350b1c4f35b3262b5112c5c640163") + version("7.1.0", sha256="94d8d901fdec2a41957f83139dea125bda4127af40d47f03b637a7920d73db50") + version("7.0.2", sha256="78b929e2ecafceb996f94132ad19091d98da2967a0cddc24be964cefd6719ec5") + version("7.0.0", sha256="2ee108f05d508ce56a805e0c39b691a9f6c0712ef596c95a7558cf32a9201105") + version("6.4.3", sha256="3850864e40005c2a9ea7aa17680235137837b3eea544a32895639a7be160e631") + version("6.4.2", sha256="a4330e0ede640b40fcda6dd690e7037b11f3f2fc532400620a5f8a7cc58c291e") version("6.4.1", sha256="4f29b1d5cfb31bcc7fe9357b1d0e323fff9064fd0ee503fd116665c6dc24e8a4") version("6.4.0", sha256="f16859ba3823f8b29f2aac120cef3395109babf93a0a5069c3b4c7c67ef35e96") version("6.3.3", sha256="c032d59a45b0eb4441539498bd4c22d8442fbc554cb08d6cb452a1d27be6c57c") @@ -42,9 +58,6 @@ class Hipfft(CMakePackage, CudaPackage, ROCmPackage): version("6.0.0", sha256="44f328b7862c066459089dfe62833cb7d626c6ceb71c57d8c7d6bba45dad491e") version("5.7.1", sha256="33452576649df479f084076c47d0b30f6f1da34864094bce767dd9bf609f04aa") version("5.7.0", sha256="daa5dc44580145e85ff8ffa7eb40a3d1ef41f3217549c01281715ff696a31588") - with default_args(deprecated=True): - version("5.6.1", sha256="d2ae36b8eacd39b865e8a7972b8eb86bcea2de4ac90711bba7e29b39b01eaa74") - version("5.6.0", sha256="c7f425b693caf9371b42226d86392335d993a117d23219b6ba1fd13523cb8261") # default to an 'auto' variant until amdgpu_targets can be given a better default than 'none' amdgpu_targets = ROCmPackage.amdgpu_targets @@ -70,9 +83,10 @@ class Hipfft(CMakePackage, CudaPackage, ROCmPackage): depends_on("hip +cuda", when="+cuda") + # CUFFT_INCOMPLETE_PARAMETER_LIST has been removed + depends_on("cuda@:12", when="+cuda") + for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -89,15 +103,43 @@ class Hipfft(CMakePackage, CudaPackage, ROCmPackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") - depends_on(f"rocfft@{ver}", when=f"+rocm @{ver}") + for tgt in ROCmPackage.amdgpu_targets: + depends_on( + f"rocfft@{ver} amdgpu_target={tgt}", when=f"@{ver} +rocm amdgpu_target={tgt}" + ) - for tgt in ROCmPackage.amdgpu_targets: - depends_on(f"rocfft amdgpu_target={tgt}", when=f"+rocm amdgpu_target={tgt}") # https://github.com/ROCm/rocFFT/pull/85) patch("001-remove-submodule-and-sync-shared-files-from-rocFFT.patch", when="@6.0.0") + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/hipfft" + else: + return "." + + @classmethod + def determine_version(cls, lib): + match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib) + if match: + ver = "{0}.{1}.{2}".format( + int(match.group(1)), int(match.group(2)), int(match.group(3)) + ) + else: + ver = None + return ver + def setup_build_environment(self, env: EnvironmentModifications) -> None: if self.spec.satisfies("+asan"): self.asan_on(env) @@ -112,6 +154,6 @@ def cmake_args(self): args.append(self.define("BUILD_WITH_LIB", "ROCM")) elif self.spec.satisfies("+cuda"): args.append(self.define("BUILD_WITH_LIB", "CUDA")) - if self.spec.satisfies("@5.6.0:6.3.1"): + if self.spec.satisfies("@:6.3.1"): args.append(self.define("BUILD_FILE_REORG_BACKWARD_COMPATIBILITY", True)) return args diff --git a/repos/spack_repo/builtin/packages/hipfort/package.py b/repos/spack_repo/builtin/packages/hipfort/package.py index e55d1365d57..fd670067d1f 100644 --- a/repos/spack_repo/builtin/packages/hipfort/package.py +++ b/repos/spack_repo/builtin/packages/hipfort/package.py @@ -3,22 +3,33 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary from spack.package import * -class Hipfort(CMakePackage): +class Hipfort(ROCmLibrary, CMakePackage): """Radeon Open Compute Parallel Primitives Library""" homepage = "https://github.com/ROCm/hipfort" git = "https://github.com/ROCm/hipfort.git" - url = "https://github.com/ROCm/hipfort/archive/rocm-6.1.1.tar.gz" + url = "https://github.com/ROCm/hipfort/archive/rocm-6.4.3.tar.gz" tags = ["rocm"] license("MIT") maintainers("cgmb", "srekolam", "renjithravindrankannath", "afzpatel") - + libraries = ["libhipfort-amdgcn.a", "libhipfort-nvptx.a"] + + version("7.2.3", sha256="21cb7049a1696a3f91666e5dcae184c496846c26618da3263affb7659fa659f5") + version("7.2.1", sha256="a908ed8a3f871581e55166fdbfdd24ab97d1a5ff91573b552ed3cae89607c298") + version("7.2.0", sha256="0e59a7fd503ed4a76db89b3c679658108d3f0a7e6730ecfb7555087b203805c8") + version("7.1.1", sha256="4e1e1aafc6eec9cabed3c90777591a15b033b8f9a58cacbaadf92cc21fcd896f") + version("7.1.0", sha256="b4e74b92919e59cbccbc0baf611f49d50e7d160d2fda86e6eb2aed78ff20f89c") + version("7.0.2", sha256="25de35f1d261f82a6022b0eb0322167398971bde3d48483f8936f3341b510ab2") + version("7.0.0", sha256="7b6f7033ec4b73934bd1b04a396f9e920eac5f5a2c17d06fc2a74aeb38b2f27f") + version("6.4.3", sha256="6cfd4f704ee4f156d15afa30b8e029a4af336a6cb60fe4f6ca6fb85c86a266bd") + version("6.4.2", sha256="28f83c278bffb5a07469466061a4e6a76dce1030bcb7d16aa73da803181e532b") version("6.4.1", sha256="4981ab58a59da29b79bb038cd3438e84bf5a7f246b1de4c41d3fec6a11d37294") version("6.4.0", sha256="a2e4c10f1c6561789208ba5a41a00b562c8048ec503339cb4eed236ee3cf6131") version("6.3.3", sha256="dacb7d5a30689e6a8f81ec251daaa4a74b40f1d28145953c7d42ccd29cecee7c") @@ -35,9 +46,6 @@ class Hipfort(CMakePackage): version("6.0.0", sha256="151cf11648885db799aade0d00a7882589e7195643b02beaa251f1b2a43aceed") version("5.7.1", sha256="859fac509e195f3ab97c555b5f63afea325a61aae0f281cb19a970a1b533dead") version("5.7.0", sha256="57b04d59f61683a1b141d6d831d10c9fdecea483991ec02d14c14e441e935c05") - with default_args(deprecated=True): - version("5.6.1", sha256="a55345cc9ccaf0cd69d306b8eb9ec2a02c220a57e9c396443cc7273aa3377adc") - version("5.6.0", sha256="03176a099bc81e212ad1bf9d86f35561f8f2d21a2f126732d7620e1ea59888d5") depends_on("c", type="build") depends_on("cxx", type="build") # generated @@ -50,8 +58,6 @@ class Hipfort(CMakePackage): depends_on("binutils", when="%cce") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -68,6 +74,15 @@ class Hipfort(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hip@{ver}", type="build", when=f"@{ver}") diff --git a/repos/spack_repo/builtin/packages/hipify_clang/package.py b/repos/spack_repo/builtin/packages/hipify_clang/package.py index 2404e9d2782..6bb3ee41395 100644 --- a/repos/spack_repo/builtin/packages/hipify_clang/package.py +++ b/repos/spack_repo/builtin/packages/hipify_clang/package.py @@ -3,23 +3,33 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary from spack.package import * -class HipifyClang(CMakePackage): +class HipifyClang(ROCmLibrary, CMakePackage): """hipify-clang is a clang-based tool for translation CUDA sources into HIP sources""" homepage = "https://github.com/ROCm/HIPIFY" git = "https://github.com/ROCm/HIPIFY.git" - url = "https://github.com/ROCm/HIPIFY/archive/rocm-6.4.1.tar.gz" + url = "https://github.com/ROCm/HIPIFY/archive/rocm-6.4.3.tar.gz" tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") + executables = ["hipify-perl"] license("MIT") - + version("7.2.3", sha256="5d0adbdffa866f3ca3e94da8ac92304dc97272dcd9c3440b15943fc0bc7c8ad8") + version("7.2.1", sha256="1d5504a69024491c582e224445df4c917b0b5ee3b0830c0909119eca97b70e9f") + version("7.2.0", sha256="ddea52cc4b624f5a48413cc390d0308c9b889d9dd6699077f4cfb7d014417a9f") + version("7.1.1", sha256="abb80ecc0ea82fd847a95a9c2dd1d182990a7a495f1eab6126e7c5e9dc8b68a7") + version("7.1.0", sha256="9fb4e739f116b5a5b8c437808c71c6c1f31dd6184c9be21d67d4b8bf1d91b4f2") + version("7.0.2", sha256="d6e78b025c2cb36f9470d1ec572adc8abc7f2c79bb9a5e21cf46fabd305c4b9c") + version("7.0.0", sha256="285c23572087efa55196d65c94714541831090e20427e8281dd44771e6faf1f5") + version("6.4.3", sha256="00156b62bfe3e8c848fb7e4573e55253ec0c86e663a226e794ff314934060182") + version("6.4.2", sha256="b20623789fcdd21d3fb9d935b8c4c51c12f9b3e444e7e02f29e2869899db2531") version("6.4.1", sha256="f22595edb0501bc29aa62263a65333748ebb5a50db80179f6c8e5141697a22ef") version("6.4.0", sha256="874e3ee9801f795aaae30d6ea86e5edc991d5f71a5dee0a8e8eb7ce6379a51eb") version("6.3.3", sha256="94d32b0e02c0c34debb9a8034cb5fcd6c2ee35b67350c64690034cf94cd38ddd") @@ -36,26 +46,21 @@ class HipifyClang(CMakePackage): version("6.0.0", sha256="91bed2b72a6684a04e078e50b12b36b93f64ff96523283f4e5d9a33c11e6b967") version("5.7.1", sha256="43121e62233dab010ab686d6805bc2d3163f0dc5e89cc503d50c4bcd59eeb394") version("5.7.0", sha256="10e4386727e102fba166f012147120a6ec776e8d95fbcac3af93e243205d80a6") - with default_args(deprecated=True): - version("5.6.1", sha256="ec3a4f276556f9fd924ea3c89be11b6c6ddf999cdd4387f669e38e41ee0042e8") - version("5.6.0", sha256="a2572037a7d3bd0813bd6819a5e6c0e911678db5fd3ab15a65370601df91891b") variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") # the patch was added to install the targets in the correct directory structure # this will fix the issue https://github.com/spack/spack/issues/30711 - patch("0002-install-hipify-clang-in-bin-dir-and-llvm-clangs-head.patch", when="@5.6:6.0") + patch("0002-install-hipify-clang-in-bin-dir-and-llvm-clangs-head.patch", when="@:6.0") patch("0003-install-hipify-clang-in-bin-dir-and-llvm-clangs-head.patch", when="@6.1") - patch("0001-use-source-permission-for-hipify-perl.patch", when="@6.2:") + patch("0001-use-source-permission-for-hipify-perl.patch", when="@6.2:6") depends_on("c", type="build") depends_on("cxx", type="build") depends_on("cmake@3.5:", type="build") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -72,6 +77,15 @@ class HipifyClang(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") depends_on(f"rocm-core@{ver}", when=f"@{ver}") diff --git a/repos/spack_repo/builtin/packages/hiprand/package.py b/repos/spack_repo/builtin/packages/hiprand/package.py index bde43018727..1af92864fc0 100644 --- a/repos/spack_repo/builtin/packages/hiprand/package.py +++ b/repos/spack_repo/builtin/packages/hiprand/package.py @@ -16,15 +16,29 @@ class Hiprand(CMakePackage, CudaPackage, ROCmPackage): and quasi-random numbers with either cuRAND or rocRAND backends.""" homepage = "https://github.com/ROCm/hipRAND" - git = "https://github.com/ROCm/hipRAND.git" - url = "https://github.com/ROCm/hipRAND/archive/rocm-6.1.2.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("cgmb", "srekolam", "renjithravindrankannath", "afzpatel") libraries = ["libhiprand"] - license("MIT") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/hipRAND/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="f53767646725a3c76be9287196df3e2ae17370c0db3774feba7ca90cfec69785") + version("7.1.0", sha256="c3bd27e74f0769fe46ea5067e05001f909dc83f01000a22e04e6a0e3d6f4dfc8") + version("7.0.2", sha256="0c7d18e55fd61070f3bd05b09217caf32c0cb502234b7d732562325b09c9483b") + version("7.0.0", sha256="fe0e5161e31591ae7441680c3a1f6d4c1a3fc298ef9f688acbfb3e8a3e6c936c") + version("6.4.3", sha256="15b67f1b0dcad6319d2fa54d3330a075e74d52a650b682f44afa086cb0f526f0") + version("6.4.2", sha256="5edc609c1ef03f97a06bcf0e1aaa0402a3964cc66d3437da8136becf2db75a43") version("6.4.1", sha256="6310b63c31c68e454f6498f06679843bdbd27e1eca0fd40ed1700cae9fce88e0") version("6.4.0", sha256="60e9153edf617e984361696aa60af3ad44c5ae01ed75ad610c617a387b0559a4") version("6.3.3", sha256="ea0d7638a463c06d30692205f8c591d3fe025b58a772226ca1c972e723118a2f") @@ -41,9 +55,6 @@ class Hiprand(CMakePackage, CudaPackage, ROCmPackage): version("6.0.0", sha256="7e06c98f9da7c0b20b55b2106cf3a48b9ef6577a79549a455667ae97bd15b61d") version("5.7.1", sha256="81a9f5f0960dce125ce1ab1c7eb58bb07c8756346f9e46a1cc65aa61d5a114f8") version("5.7.0", sha256="4dee76719839503b02ce7d38e1c61bbdb2da18da7f63a7ef7012c84c71aa0a9d") - with default_args(deprecated=True): - version("5.6.1", sha256="a73d5578bc7f8dff0b8960e4bff97bc4fc28f508a19ed6acd1cfd4d3e76b47ee") - version("5.6.0", sha256="8c214e2f90337a5317a69950026bf337b1e567d43bb9ae64f2a802af2228c313") # default to an 'auto' variant until amdgpu_targets can be given a better default than 'none' amdgpu_targets = ROCmPackage.amdgpu_targets @@ -77,8 +88,6 @@ class Hiprand(CMakePackage, CudaPackage, ROCmPackage): depends_on("googletest@1.10.0:", type="test") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -95,6 +104,15 @@ class Hiprand(CMakePackage, CudaPackage, ROCmPackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on("rocrand@" + ver, when="+rocm @" + ver) depends_on(f"rocm-cmake@{ver}", type="build", when=f"@{ver}") @@ -104,6 +122,13 @@ class Hiprand(CMakePackage, CudaPackage, ROCmPackage): "rocrand amdgpu_target={0}".format(tgt), when="+rocm amdgpu_target={0}".format(tgt) ) + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/hiprand" + else: + return "." + def setup_build_environment(self, env: EnvironmentModifications) -> None: if self.spec.satisfies("+rocm"): env.set("CXX", self.spec["hip"].hipcc) @@ -136,6 +161,9 @@ def cmake_args(self): else: args.append(self.define("BUILD_WITH_LIB", "ROCM")) - if self.spec.satisfies("@5.6.0:6.3.1"): + if self.spec.satisfies("@:6.3.1"): args.append(self.define("BUILD_FILE_REORG_BACKWARD_COMPATIBILITY", True)) + if "auto" not in self.spec.variants["amdgpu_target"]: + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) + return args diff --git a/repos/spack_repo/builtin/packages/hipsolver/package.py b/repos/spack_repo/builtin/packages/hipsolver/package.py index 60a95c3d8cd..b84482ee320 100644 --- a/repos/spack_repo/builtin/packages/hipsolver/package.py +++ b/repos/spack_repo/builtin/packages/hipsolver/package.py @@ -21,15 +21,29 @@ class Hipsolver(CMakePackage, CudaPackage, ROCmPackage): and cuSOLVER as backends.""" homepage = "https://github.com/ROCm/hipSOLVER" - git = "https://github.com/ROCm/hipSOLVER.git" - url = "https://github.com/ROCm/hipSOLVER/archive/rocm-6.4.1.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("cgmb", "srekolam", "renjithravindrankannath", "afzpatel") libraries = ["libhipsolver"] - license("MIT") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/hipSOLVER/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="bd664e3cd43bfcc7e94d5a387c27262c4b218d6d2e71e086992b174349dd1c10") + version("7.1.0", sha256="19b87cd27b9048964e94a77bb8c07a23ecfd5f96a73a91eebd1d365487bad2bf") + version("7.0.2", sha256="eac1a691bdc00ceb50580c1dab6cbffd6c7d579ebbad145857f58c4de84a3cae") + version("7.0.0", sha256="5ea1e0250651da458158432409bd4c06a53224902e17ea26f3b941aed15ee8aa") + version("6.4.3", sha256="403c2d0aacc3ea2dea5f6d61aca058337d448a224891b887ae1601ce68af8d15") + version("6.4.2", sha256="5c1afee73157d042fd1dcae1ac416ea6f6f62207d7cb08595942b9f016673631") version("6.4.1", sha256="86ac30d5cf741a254485ed54c7f51e4c9bc9803cda31dab8e86f11b39742b28e") version("6.4.0", sha256="d6cf798c5f2d1d00a442f7a3f07c6f3a9e4ce5b3be36608aac7c97175dac9eb0") version("6.3.3", sha256="529263f9abe5b7485bbabedc3993630abaa0d5fd547c4add0993d1cb0d71e226") @@ -46,9 +60,6 @@ class Hipsolver(CMakePackage, CudaPackage, ROCmPackage): version("6.0.0", sha256="385849db02189d5e62096457e52ae899ae5c1ae7d409dc1da61f904d8861b48c") version("5.7.1", sha256="5592e965c0dc5722931302289643d1ece370220af2c7afc58af97b3395295658") version("5.7.0", sha256="0e35795bfbcb57ed8e8437471209fb7d230babcc31d9a4a0b3640c3ee639f4a7") - with default_args(deprecated=True): - version("5.6.1", sha256="2e546bc7771f7bf0aa7892b69cded725941573e8b70614759c3d03c21eb78dde") - version("5.6.0", sha256="11fa51d210853d93d24d55b20367738e49711793412f58e8d7689710b92ae16c") # default to an 'auto' variant until amdgpu_targets can be given a better default than 'none' amdgpu_targets = ROCmPackage.amdgpu_targets @@ -84,8 +95,6 @@ class Hipsolver(CMakePackage, CudaPackage, ROCmPackage): depends_on("hip +cuda", when="+cuda") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -102,6 +111,15 @@ class Hipsolver(CMakePackage, CudaPackage, ROCmPackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocm-cmake@{ver}", when=f"+rocm @{ver}") depends_on(f"rocblas@{ver}", when=f"+rocm @{ver}") @@ -116,9 +134,16 @@ class Hipsolver(CMakePackage, CudaPackage, ROCmPackage): patch("001-suite-sparse-include-path.patch", when="@6.1.0") patch("0001-suite-sparse-include-path-6.1.1.patch", when="@6.1.1:6.2") + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/hipsolver" + else: + return "." + def check(self): exe = join_path(self.build_directory, "clients", "staging", "hipsolver-test") - exe = which(exe) + exe = which(exe, required=True) exe(["--gtest_filter=-*known_bug*"]) @classmethod @@ -157,4 +182,6 @@ def cmake_args(self): if not os.path.isdir(libloc): libloc = self.spec["suite-sparse"].prefix.lib args.append(self.define("SUITE_SPARSE_LIBDIR", libloc)) + if "auto" not in self.spec.variants["amdgpu_target"]: + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) return args diff --git a/repos/spack_repo/builtin/packages/hipsparse/package.py b/repos/spack_repo/builtin/packages/hipsparse/package.py index 0baf4edf966..abf03fb33bc 100644 --- a/repos/spack_repo/builtin/packages/hipsparse/package.py +++ b/repos/spack_repo/builtin/packages/hipsparse/package.py @@ -16,14 +16,29 @@ class Hipsparse(CMakePackage, CudaPackage, ROCmPackage): multiple supported backends""" homepage = "https://github.com/ROCm/hipSPARSE" - git = "https://github.com/ROCm/hipSPARSE.git" - url = "https://github.com/ROCm/hipSPARSE/archive/rocm-6.4.1.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("cgmb", "srekolam", "renjithravindrankannath", "haampie", "afzpatel") libraries = ["libhipsparse"] - license("MIT") + + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/hipsparse/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="b001834d8e65c3878d1a69d08803d5b6ce4fe623e78099fe51cb146d0ffa10e7") + version("7.1.0", sha256="1d399d16a388279f71c8de19e6ccfde35a3dedc5ba49858bca7a377aa08198c0") + version("7.0.2", sha256="8f2d187ef9a44e58538a7bf3298b245e740066c74e431da01c38ed35fad649fc") + version("7.0.0", sha256="09102f4a74cfcffb8371428f70a592a004b72f4f08135d35738b34c4d5a5edba") + version("6.4.3", sha256="0ac06136778a25e7d38c69d831d169b85ad370d0ae1cd45deb5f63a43797244e") + version("6.4.2", sha256="e6ed9a0dab093f428418c7914f3d2e1612cafc280cd0ee27ab4df8c93284a5ed") version("6.4.1", sha256="cae547776076066c0ee19a7f98516ac2e9a0cf3bb3b0809d7a4e474f9ee4cb90") version("6.4.0", sha256="aaab3e9a905f5c5f470634ed7a0929ef93e28d2c5fe4f6f89338b39a937f1825") version("6.3.3", sha256="61c26eb93e857c942a03ea4350a403e20191be465041e542ad7da00058e89ead") @@ -40,9 +55,6 @@ class Hipsparse(CMakePackage, CudaPackage, ROCmPackage): version("6.0.0", sha256="718a5f03b6a579c0542a60d00f5688bec53a181b429b7ee8ce3c8b6c4a78d754") version("5.7.1", sha256="16c3818260611226c3576d8d55ad8f51e0890d2473503edf2c9313250ae65ca7") version("5.7.0", sha256="729b749b5340034639873a99e6091963374f6f0456c8f36d076c96f03fe43888") - with default_args(deprecated=True): - version("5.6.1", sha256="d636d0c5d1e38cc0c09b1e95380199ec82bd465b94bd6661f0c8d9374d9b565d") - version("5.6.0", sha256="3a6931b744ebaa4469a4c50d059a008403e4dc2a4f04dd69c3c6d20916b4a491") # default to an 'auto' variant until amdgpu_targets can be given a better default than 'none' amdgpu_targets = ROCmPackage.amdgpu_targets @@ -73,8 +85,6 @@ class Hipsparse(CMakePackage, CudaPackage, ROCmPackage): depends_on("googletest", when="@6.3:") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -91,6 +101,15 @@ class Hipsparse(CMakePackage, CudaPackage, ROCmPackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") depends_on(f"rocsparse@{ver}", when=f"+rocm @{ver}") @@ -98,6 +117,20 @@ class Hipsparse(CMakePackage, CudaPackage, ROCmPackage): for tgt in ROCmPackage.amdgpu_targets: depends_on(f"rocsparse amdgpu_target={tgt}", when=f"+rocm amdgpu_target={tgt}") + # Add c++17 to hipsparse to fix error with std::filesystem + patch( + "https://github.com/ROCm/hipSPARSE/commit/037b54ecc129edaaff59d3df149a3f071466ba29.patch?full_index=1", + sha256="02f44a3bac6f9983648afeb606aa43b7329547218e0f13b9d31b685acb8b198e", + when="@6.3", + ) + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/hipsparse" + else: + return "." + @classmethod def determine_version(cls, lib): match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib) @@ -115,7 +148,6 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: def cmake_args(self): args = [ - self.define("CMAKE_CXX_STANDARD", "14"), self.define("BUILD_CLIENTS_SAMPLES", "OFF"), self.define("BUILD_CLIENTS_TESTS", "OFF"), self.define("CMAKE_INSTALL_LIBDIR", "lib"), @@ -126,6 +158,10 @@ def cmake_args(self): # FindHIP.cmake is still used for +cuda if self.spec.satisfies("+cuda"): args.append(self.define("CMAKE_MODULE_PATH", self.spec["hip"].prefix.lib.cmake.hip)) - if self.spec.satisfies("@5.6.0:6.3.1"): + if self.spec.satisfies("@:6.3.1"): args.append(self.define("BUILD_FILE_REORG_BACKWARD_COMPATIBILITY", True)) + if self.spec.satisfies("@:6"): + args.append(self.define("CMAKE_CXX_STANDARD", "14")) + if "auto" not in self.spec.variants["amdgpu_target"]: + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) return args diff --git a/repos/spack_repo/builtin/packages/hipsparselt/0003-add-roctracer-inc-dir.patch b/repos/spack_repo/builtin/packages/hipsparselt/0003-add-roctracer-inc-dir.patch new file mode 100644 index 00000000000..f2f9713e6c4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/hipsparselt/0003-add-roctracer-inc-dir.patch @@ -0,0 +1,29 @@ +diff --git a/projects/hipsparselt/CMakeLists.txt b/projects/hipsparselt/CMakeLists.txt +index b11b01c..dddda1c 100644 +--- a/projects/hipsparselt/CMakeLists.txt ++++ b/projects/hipsparselt/CMakeLists.txt +@@ -120,6 +120,12 @@ if(HIPSPARSELT_ENABLE_MARKER) + message(FATAL_ERROR "rocTracer marker is not supported with CUDA backend.") + else() + find_library(ROCTX64_LIBRARY REQUIRED HINTS lib NAMES roctx64 libroctx64) ++ get_filename_component(ROCTRACER_LIB_DIR ${ROCTX64_LIBRARY} DIRECTORY) ++ get_filename_component(ROCTRACER_ROOT_DIR ${ROCTRACER_LIB_DIR} DIRECTORY) ++ find_path(ROCTRACER_INCLUDE_DIR "roctracer/roctx.h" ++ HINTS ${ROCTRACER_ROOT_DIR} ++ PATH_SUFFIXES include ++ REQUIRED) + endif() + endif() + +diff --git a/projects/hipsparselt/library/CMakeLists.txt b/projects/hipsparselt/library/CMakeLists.txt +index 7513bb6..3660170 100644 +--- a/projects/hipsparselt/library/CMakeLists.txt ++++ b/projects/hipsparselt/library/CMakeLists.txt +@@ -40,6 +40,7 @@ endif() + + if(HIPSPARSELT_ENABLE_MARKER) + target_compile_definitions(hipsparselt PRIVATE HIPSPARSELT_ENABLE_MARKER) ++ target_include_directories(hipsparselt PRIVATE ${ROCTRACER_INCLUDE_DIR}) + target_link_libraries(hipsparselt PRIVATE ${ROCTX64_LIBRARY}) + else() + target_compile_definitions(hipsparselt PRIVATE DISABLE_ROCTX) diff --git a/repos/spack_repo/builtin/packages/hipsparselt/package.py b/repos/spack_repo/builtin/packages/hipsparselt/package.py index 148b93cc23e..0ee83ae9394 100644 --- a/repos/spack_repo/builtin/packages/hipsparselt/package.py +++ b/repos/spack_repo/builtin/packages/hipsparselt/package.py @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os +import re from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.rocm import ROCmPackage @@ -17,12 +19,29 @@ class Hipsparselt(CMakePackage, ROCmPackage): Currently, hipSPARSELt supports rocSPARSELt and cuSPARSELt v0.4 as backends.""" homepage = "https://github.com/ROCm/hipsparselt" - url = "https://github.com/ROCm/hipSPARSELt/archive/refs/tags/rocm-6.4.1.tar.gz" - git = "https://github.com/ROCm/hipsparseLt.git" + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("srekolam", "afzpatel", "renjithravindrankannath") - + libraries = ["libhipsparselt"] license("MIT") + + def url_for_version(self, version): + if version <= Version("7.0.2"): + url = "https://github.com/ROCm/hipsparselt/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="2c00694c6131192354b0e785e4dcb06a302e4b7891ec50ca30927e05ba7b368b") + version("7.1.0", sha256="d9e138a15e8195a7e9b5e15240e50c557b830d50a2bafa27db14dad3884dbfd8") + version("7.0.2", sha256="04bb529fa656624f8875b726aa5ef1699207fdc5de4b3446986eafc4890ef708") + version("7.0.0", sha256="317f035fe13f3fa008d567f9553978483821ab34ca8108ecc11fbb2b47bd99e0") + version("6.4.3", sha256="2255b2732a9101a7b4fb51f4d11810be64dc3999728c77850a3918cabcf5cb50") + version("6.4.2", sha256="5148b05436e8f7ceffdb31a01da53adc061019055cecf9b71051103045656dc8") version("6.4.1", sha256="74836c789e912e61532aacf275efb053ac6d0818b3da360e7b236e1b82b3152b") version("6.4.0", sha256="3950f424c5623bdf764e23c263f3a63de62e3690f491251b88054e27560dc604") version("6.3.3", sha256="6b756e20fddb37b8c1237ef8e124452c9bdd46acad8a40699d10b609d0d2ebfc") @@ -53,7 +72,32 @@ class Hipsparselt(CMakePackage, ROCmPackage): variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") depends_on("c", type="build") - depends_on("cxx", type="build") # generated + depends_on("cxx", type="build") + depends_on("fortran", type="build") + + for ver in [ + "6.0.0", + "6.0.2", + "6.1.0", + "6.1.1", + "6.1.2", + "6.2.0", + "6.2.1", + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + ]: + depends_on(f"rocm-openmp-extras@{ver}", when=f"@{ver}", type="test") for ver in [ "6.0.0", @@ -70,15 +114,47 @@ class Hipsparselt(CMakePackage, ROCmPackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"hipsparse@{ver}", when=f"@{ver}") - depends_on(f"rocm-openmp-extras@{ver}", when=f"@{ver}", type="test") depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") - for ver in ["6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: + for ver in [ + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"rocm-smi-lib@{ver}", when=f"@{ver}") + for ver in ["7.0.0", "7.0.2"]: + depends_on(f"roctracer-dev@{ver}", when=f"@{ver}") + + for ver in ["7.1.0", "7.1.1", "7.2.0", "7.2.1", "7.2.3"]: + depends_on(f"roctracer-dev@{ver}", when=f"@{ver}") + depends_on(f"hipblas-common@{ver}", when=f"@{ver}") + depends_on(f"rocm-cmake@{ver}", when=f"@{ver}") + depends_on("cmake@3.5:", type="build") depends_on("msgpack-c@3:") depends_on("python@3.6:") @@ -89,7 +165,22 @@ class Hipsparselt(CMakePackage, ROCmPackage): depends_on("py-joblib") depends_on("googletest@1.10.0:", type="test") depends_on("netlib-lapack@3.7.1:", type="test") + depends_on("amdblis", type="test", when="@7.2:") + depends_on("python-venv", when="@7.0:") + depends_on("py-pyyaml+libyaml", when="@7.1:") + depends_on("py-packaging", when="@7.1:") + depends_on("py-msgpack", when="@7.1:") + for t_version, t_commit in [ + ("7.0.2", "7fc3631478ce7887f3cfdba3adb149240ac539db"), + ("7.0.0", "7fc3631478ce7887f3cfdba3adb149240ac539db"), + ]: + resource( + name="hipblaslt", + git="https://github.com/ROCm/hipBLASLt.git", + commit=t_commit, + when=f"@{t_version}", + ) patch("0001-update-llvm-path-add-hipsparse-include-dir-for-spack.patch", when="@6.0") # Below patch sets the proper path for clang++,lld and clang-offload-blunder inside the # tensorlite subdir of hipblas . Also adds hipsparse and msgpack include directories @@ -98,9 +189,65 @@ class Hipsparselt(CMakePackage, ROCmPackage): patch("0001-update-llvm-path-add-hipsparse-include-dir-for-spack-6.2.patch", when="@6.2") patch("0001-update-llvm-path-add-hipsparse-include-dir-for-spack-6.3.patch", when="@6.3") patch("0002-add-hipsparse-include.patch", when="@6.4") + patch("0003-add-roctracer-inc-dir.patch", when="@7.2") + + @classmethod + def determine_version(cls, lib): + match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib) + if match: + ver = "{0}.{1}.{2}".format( + int(match.group(1)), int(match.group(2)), int(match.group(3)) + ) + else: + ver = None + return ver + + def patch(self): + purelib = self.spec["python"].package.purelib + joblib_path = os.path.join(self.spec["py-joblib"].prefix, purelib) + if not self.spec["hip"].external: + if self.spec.satisfies("@6.4:7.1") and self.run_tests: + filter_file( + r"${HIP_CLANG_ROOT}/lib", + "{0}/lib".format(self.spec["rocm-openmp-extras"].prefix), + "clients/CMakeLists.txt", + string=True, + ) + if self.spec.satisfies("@7.0"): + filter_file( + "${PROJECT_BINARY_DIR}/lib", + ":".join(["${PROJECT_BINARY_DIR}/lib", joblib_path]), + "hipBLASLt/tensilelite/CMakeLists.txt", + "hipBLASLt/tensilelite/Tensile/cmake/TensileConfig.cmake", + "hipBLASLt/library/src/amd_detail/rocblaslt/src/extops/CMakeLists.txt", + string=True, + ) + if self.spec.satisfies("@7.1:"): + filter_file( + "${PROJECT_BINARY_DIR}/lib", + ":".join(["${PROJECT_BINARY_DIR}/lib", joblib_path]), + "projects/hipblaslt/tensilelite/CMakeLists.txt", + "projects/hipblaslt/tensilelite/Tensile/cmake/TensileConfig.cmake", + string=True, + ) + yaml_path = os.path.join(self.spec["py-pyyaml"].prefix, purelib) + packaging_path = os.path.join(self.spec["py-packaging"].prefix, purelib) + msgpack_path = os.path.join(self.spec["py-msgpack"].prefix, purelib) + filter_file( + "${_python_path}", + ":".join( + ["${_python_path}", joblib_path, yaml_path, packaging_path, msgpack_path] + ), + "projects/hipblaslt/cmake/hipblaslt_python.cmake", + string=True, + ) def setup_build_environment(self, env: EnvironmentModifications) -> None: - env.set("CXX", self.spec["hip"].hipcc) + if self.spec.satisfies("@7.1:"): + env.set("CXX", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++") + env.set("CC", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang") + else: + env.set("CXX", self.spec["hip"].hipcc) if self.spec.satisfies("+asan"): env.set("CC", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang") env.set("TENSILE_ROCM_ASSEMBLER_PATH", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang++") @@ -115,19 +262,44 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: if self.spec.satisfies("@6.3:"): env.set("ROCM_SMI_PATH", f"{self.spec['rocm-smi-lib'].prefix}/bin/rocm-smi") + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.1:"): + return "projects/hipsparselt" + else: + return "." + def cmake_args(self): args = [ self.define("Tensile_CODE_OBJECT_VERSION", "default"), self.define("MSGPACK_DIR", self.spec["msgpack-c"].prefix), self.define_from_variant("BUILD_ADDRESS_SANITIZER", "asan"), - self.define("BUILD_CLIENTS_TESTS", self.run_tests), self.define("BUILD_SHARED_LIBS", "ON"), - self.define("BUILD_CLIENTS_SAMPLES", "OFF"), ] if "auto" not in self.spec.variants["amdgpu_target"]: args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) - if self.run_tests: + if self.spec.satisfies("@7.0"): args.append( - self.define("ROCM_OPENMP_EXTRAS_DIR", self.spec["rocm-openmp-extras"].prefix) + self.define( + "Tensile_TEST_LOCAL_PATH", f"{self.stage.source_path}/hipBLASLt/tensilelite" + ) ) + if self.spec.satisfies("@7.0:"): + args.append(self.define("Python_EXECUTABLE", self.spec["python"].prefix.bin.python3)) + args.append(self.define("Python_ROOT", self.spec["python"].prefix.bin)) + if self.spec.satisfies("@7.1"): + args.append(self.define("BUILD_USE_LOCAL_TENSILE", "OFF")) + if self.spec.satisfies("@7.2:"): + args.append(self.define("BUILD_TESTING", self.run_tests)) + args.append(self.define("HIPSPARSELT_ENABLE_CLIENT", self.run_tests)) + args.append(self.define("HIPSPARSELT_ENABLE_SAMPLES", "OFF")) + args.append(self.define("HIPSPARSELT_ENABLE_BENCHMARKS", "OFF")) + args.append(self.define("HIPSPARSELT_ENABLE_BLIS", self.run_tests)) + else: + args.append(self.define("BUILD_CLIENTS_TESTS", self.run_tests)) + args.append(self.define("BUILD_CLIENTS_SAMPLES", "OFF")) + if self.run_tests: + args.append( + self.define("ROCM_OPENMP_EXTRAS_DIR", self.spec["rocm-openmp-extras"].prefix) + ) return args diff --git a/repos/spack_repo/builtin/packages/hive/package.py b/repos/spack_repo/builtin/packages/hive/package.py index dc10288ed05..749960be63b 100644 --- a/repos/spack_repo/builtin/packages/hive/package.py +++ b/repos/spack_repo/builtin/packages/hive/package.py @@ -21,12 +21,6 @@ class Hive(Package): license("Apache-2.0", checked_by="wdconinc") version("4.0.1", sha256="2bf988a1ed17437b1103e367939c25a13f64d36cf6d1c3bef8c3f319f0067619") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2020-13949 - version("3.1.3", sha256="0c9b6a6359a7341b6029cc9347435ee7b379f93846f779d710b13f795b54bb16") - version("3.1.2", sha256="d75dcf36908b4e7b9b0ec9aec57a46a6628b97b276c233cb2c2f1a3e89b13462") - version("2.3.6", sha256="0b3736edc8d15f01ed649bfce7d74346c35fd57567411e9d0c3f48578f76610d") - version("1.2.2", sha256="763b246a1a1ceeb815493d1e5e1d71836b0c5b9be1c4cd9c8d685565113771d1") depends_on("hadoop", type="run") diff --git a/repos/spack_repo/builtin/packages/homer/package.py b/repos/spack_repo/builtin/packages/homer/package.py index 98bb04597c2..4f5c7d98f38 100644 --- a/repos/spack_repo/builtin/packages/homer/package.py +++ b/repos/spack_repo/builtin/packages/homer/package.py @@ -45,7 +45,7 @@ def install(self, spec, prefix): ) # compile/prepare binaries and perl scripts with the correct paths - perl = which("perl") + perl = which("perl", required=True) perl("configureHomer.pl", "-local") # download extra data if requested diff --git a/repos/spack_repo/builtin/packages/hpc_beeflow/package.py b/repos/spack_repo/builtin/packages/hpc_beeflow/package.py index 14fc15e54b5..2e32212c0d1 100644 --- a/repos/spack_repo/builtin/packages/hpc_beeflow/package.py +++ b/repos/spack_repo/builtin/packages/hpc_beeflow/package.py @@ -61,7 +61,6 @@ class HpcBeeflow(PythonPackage): # Setup for when "no containers" is specified def setup_run_environment(self, env): - neo4j_bin = join_path(self.spec["neo4j"].prefix, "packaging/standalone/target") redis_bin = join_path(self.spec["redis"].prefix, "bin") diff --git a/repos/spack_repo/builtin/packages/hpckit/package.py b/repos/spack_repo/builtin/packages/hpckit/package.py new file mode 100644 index 00000000000..c1c74d2a5a3 --- /dev/null +++ b/repos/spack_repo/builtin/packages/hpckit/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.generic import Package + +from spack.package import * + + +class Hpckit(Package): + """Kunpeng HPCKit base installation - Complete HPC toolkit.""" + + homepage = "https://www.hikunpeng.com/developer/hpc/hpckit-download" + url = "https://mirrors.huaweicloud.com/kunpeng/archive/HPC/HPCKit/HPCKit_25.1.0_Linux-aarch64.tar.gz" + + license("UNKNOWN", checked_by="wjunLu") + + version( + "25.2.1", + url="https://mirrors.huaweicloud.com/kunpeng/archive/HPC/HPCKit/HPCKit_25.2.1_Linux-aarch64.tar.gz", + sha256="be9e6b07a0e768570387ab62fed19d59d72af3ae7d01bc240edd9b9dc80dd539", + ) + version( + "25.1.0", + url="https://mirrors.huaweicloud.com/kunpeng/archive/HPC/HPCKit/HPCKit_25.1.0_Linux-aarch64.tar.gz", + sha256="e58a43cebf0cea071ee69c0106a7edaaec9a6fb7022f13d091a0bd43bf85e2d5", + preferred=True, + ) + + def install(self, spec, prefix): + sh = which("sh") + sh("./install.sh", "-y", "--prefix=" + prefix) diff --git a/repos/spack_repo/builtin/packages/hpctoolkit/package.py b/repos/spack_repo/builtin/packages/hpctoolkit/package.py index 2f95d9c49bd..70c2f901418 100644 --- a/repos/spack_repo/builtin/packages/hpctoolkit/package.py +++ b/repos/spack_repo/builtin/packages/hpctoolkit/package.py @@ -29,9 +29,19 @@ class Hpctoolkit(AutotoolsPackage, MesonPackage): test_requires_compiler = True - license("BSD-3-Clause") + license("Apache-2.0", when="@2025:") + license("BSD-3-Clause", when="@:2024") version("develop", branch="develop") + version("2026.0.stable", branch="release/2026.0") + version("2026.0.1", tag="2026.0.1", commit="fc620c4751e6e233725620b2f22b1bcaa07c967f") + version("2026.0.0", tag="2026.0.0", commit="7134ddc4bc68b0c7a92f31d1268bdd01e177efc0") + version("2025.1.stable", branch="release/2025.1") + version("2025.1.2", tag="2025.1.2", commit="b2f42a93d7f40a20398d35905d8d54a4568cb52e") + version("2025.1.1", tag="2025.1.1", commit="a1ffae9da0e7da042c70e6ed592db35286e4483d") + version("2025.1.0", tag="2025.1.0", commit="9f9bdf0885ffc28ab51251bc5359485ff75d2a21") + version("2025.0.stable", branch="release/2025.0") + version("2025.0.1", tag="2025.0.1", commit="ed42fab06e0c4be41fba510f151a5ae153fbd5e5") version("2024.01.stable", branch="release/2024.01") version("2024.01.1", tag="2024.01.1", commit="0672b9a9a2a1e3846c5e2059fb73a07a129f22cd") version("2023.08.stable", branch="release/2023.08") @@ -39,18 +49,6 @@ class Hpctoolkit(AutotoolsPackage, MesonPackage): version("2023.03.stable", branch="release/2023.03") version("2023.03.01", commit="9e0daf2ad169f6c7f6c60408475b3c2f71baebbf") version("2022.10.01", commit="e8a5cc87e8f5ddfd14338459a4106f8e0d162c83") - version("2022.05.15", commit="8ac72d9963c4ed7b7f56acb65feb02fbce353479", deprecated=True) - version("2022.04.15", commit="a92fdad29fc180cc522a9087bba9554a829ee002", deprecated=True) - version("2022.01.15", commit="0238e9a052a696707e4e65b2269f342baad728ae", deprecated=True) - version("2021.10.15", commit="a8f289e4dc87ff98e05cfc105978c09eb2f5ea16", deprecated=True) - version("2021.05.15", commit="004ea0c2aea6a261e7d5d216c24f8a703fc6c408", deprecated=True) - version("2021.03.01", commit="68a051044c952f0f4dac459d9941875c700039e7", deprecated=True) - version("2020.08.03", commit="d9d13c705d81e5de38e624254cf0875cce6add9a", deprecated=True) - version("2020.07.21", commit="4e56c780cffc53875aca67d6472a2fb3678970eb", deprecated=True) - version("2020.06.12", commit="ac6ae1156e77d35596fea743ed8ae768f7222f19", deprecated=True) - version("2020.03.01", commit="94ede4e6fa1e05e6f080be8dc388240ea027f769", deprecated=True) - version("2019.12.28", commit="b4e1877ff96069fd8ed0fdf0e36283a5b4b62240", deprecated=True) - version("2019.08.14", commit="6ea44ed3f93ede2d0a48937f288a2d41188a277c", deprecated=True) # Options for MPI and hpcprof-mpi. We always support profiling # MPI applications. These options add hpcprof-mpi, the MPI @@ -83,8 +81,7 @@ class Hpctoolkit(AutotoolsPackage, MesonPackage): variant( "papi", default=True, - description="Use PAPI instead of perfmon for access to " - "the hardware performance counters.", + description="Use PAPI instead of perfmon for access to the hardware performance counters.", ) # Accelerator variants: cuda, rocm, etc. @@ -119,13 +116,22 @@ class Hpctoolkit(AutotoolsPackage, MesonPackage): "docs", default=False, description="Include extra documentation (user's manual)", - when="@develop", + when="@2025:", ) variant( "python", default=False, description="Support unwinding Python source.", when="@2023.03:" ) + variant( + "auditor_default", + default=True, + sticky=True, + when="@2025:", + description="Whether to use LD_AUDIT by default in hpcrun, can be set to " + "false to work around bugs in Glibc <2.35", + ) + build_system( conditional("meson", when="@2024.01:"), conditional("autotools", when="@:2024.01"), @@ -135,13 +141,15 @@ class Hpctoolkit(AutotoolsPackage, MesonPackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + depends_on("rocm-openmp-extras", when="%llvm-amdgpu", type="build") + with when("@2024.01: build_system=autotools"): depends_on("autoconf", type="build") depends_on("automake", type="build") depends_on("libtool", type="build") with when("build_system=meson"): - depends_on("meson@1.1.0:", type="build") + depends_on("meson@1.3.2:", type="build") with when("@:2024.01"): depends_on("gmake", type="build") @@ -181,23 +189,29 @@ class Hpctoolkit(AutotoolsPackage, MesonPackage): depends_on("libunwind@1.4: +xz") depends_on("libunwind +pic libs=static", when="@:2023.08") depends_on("mbedtls+pic", when="@:2022.03") + depends_on("patchelf@0.11:", when="@2025:") depends_on("xerces-c transcoder=iconv") - depends_on("xxhash@0.8.1:", when="@develop") + depends_on("xxhash@0.8.1:", when="@2025:") depends_on("xz", type="link") depends_on("xz+pic libs=static", type="link", when="@:2023.08") depends_on("yaml-cpp@0.7.0: +shared", when="@2022.10:") - depends_on("googletest@1.8.1: +gmock", type="test", when="@develop") + depends_on("googletest@1.8.1: +gmock", type="test", when="@2025:") depends_on("zlib-api") depends_on("zlib+shared", when="^[virtuals=zlib-api] zlib") - depends_on("py-docutils", type="build", when="@develop") - depends_on("py-sphinx", type="build", when="+docs") - depends_on("py-myst-parser@0.19:", type="build", when="+docs") + depends_on("py-docutils", type="build", when="@2025:") + depends_on("py-sphinx@6:", type="build", when="+docs") + depends_on("py-sphinx@6:8", type="build", when="@2025.0 +docs") + depends_on("py-myst-parser@3:", type="build", when="+docs") + depends_on("py-myst-parser@3:4", type="build", when="@2025.0 +docs") + depends_on("py-sphinx-book-theme@1:", type="build", when="+docs") + depends_on("py-sphinx-book-theme@1", type="build", when="@2025.0 +docs") depends_on("cuda", when="+cuda") depends_on("oneapi-level-zero", when="+level_zero") depends_on("oneapi-igc", when="+gtpin") + depends_on("oneapi-igc", when="@2026: +level_zero") depends_on("intel-gtpin", when="+gtpin") depends_on("opencl-c-headers", when="+opencl") @@ -215,12 +229,25 @@ class Hpctoolkit(AutotoolsPackage, MesonPackage): depends_on("intel-xed+pic") depends_on("intel-xed+deprecated-includes", when="@:2024.01.1") - # Avoid 'link' dep, we don't actually link, and that adds rpath - # that conflicts with app. - depends_on("hip@4.5:", type=("build", "run"), when="+rocm") - depends_on("hsa-rocr-dev@4.5:", type=("build", "run"), when="+rocm") - depends_on("roctracer-dev@4.5:", type=("build", "run"), when="+rocm") - depends_on("rocprofiler-dev@4.5:", type=("build", "run"), when="+rocm") + with when("@:2024"): + # Avoid 'link' dep, we don't actually link, and that adds rpath + # that conflicts with app. + depends_on("hip@4.5:", type=("build", "run"), when="+rocm") + depends_on("hsa-rocr-dev@4.5:", type=("build", "run"), when="+rocm") + depends_on("roctracer-dev@4.5:", type=("build", "run"), when="+rocm") + depends_on("rocprofiler-dev@4.5:", type=("build", "run"), when="+rocm") + + with when("@2025:2025.0"): + # The consideration above is no longer needed as of 2025.0.0, we use libdl and + # similar tricks to avoid rpath conflicts. + depends_on("hip@4.5:", when="+rocm") + depends_on("hsa-rocr-dev@4.5:", when="+rocm") + depends_on("roctracer-dev@4.5:", when="+rocm") + depends_on("rocprofiler-dev@4.5:", when="+rocm") + + with when("@2025.1:"): + depends_on("rocprofiler-sdk@6.2:", when="+rocm") + depends_on("hip@6.2:", type="test", when="+rocm") conflicts("%gcc@:7", when="@2022.10:", msg="hpctoolkit requires gnu gcc 8.x or later") conflicts("%gcc@:6", when="@2021.00:2022.06", msg="hpctoolkit requires gnu gcc 7.x or later") @@ -232,10 +259,17 @@ class Hpctoolkit(AutotoolsPackage, MesonPackage): # https://gitlab.com/hpctoolkit/hpctoolkit/-/issues/831 conflicts( - "^elfutils@0.191:", + "^elfutils@0.191", msg="avoid elfutils 0.191 (known critical errors in hpcstruct for CUDA binaries)", ) + # https://gitlab.com/hpctoolkit/hpctoolkit/-/issues/897 + conflicts( + "%cmake@3.30:3.31", + when="@2025: +cuda", + msg="avoid known conflict between CMake 3.30:3.31 and CUDA", + ) + conflicts("+cray", when="@2022.10.01", msg="hpcprof-mpi is not available in 2022.10.01") conflicts("+mpi", when="@2022.10.01", msg="hpcprof-mpi is not available in 2022.10.01") @@ -257,6 +291,20 @@ class Hpctoolkit(AutotoolsPackage, MesonPackage): # hsa include path is hsa-rocr-dev-prefix-path/include patch("correcting-hsa-include-path.patch", when="@2024.01 ^hip@6.0:") + # Fix +gtpin build for original Meson release + patch( + "https://gitlab.com/hpctoolkit/hpctoolkit/-/merge_requests/1329.diff", + when="@2025.0.1 +gtpin", + sha256="ac486278726620ef932c48aef41d5aab6ba0359b5b1eced651724237877f445b", + ) + + # Fix +docs build for 2025.0.x versions before the fix was merged + patch( + "https://gitlab.com/hpctoolkit/hpctoolkit/-/merge_requests/1395.diff", + when="@2025.0:2025.0.1 +docs", + sha256="7954f9286e707832595bb31b19137ea9d5c7e3ef801cb9a69d2e1d78d383fdab", + ) + # Fix a bug where make would mistakenly overwrite hpcrun-fmt.h. # https://gitlab.com/hpctoolkit/hpctoolkit/-/merge_requests/751 @when("@:2022") @@ -286,15 +334,15 @@ def test_sort(self): cxx = Executable(self["cxx"].cxx) cxx(self.test_suite.current_test_data_dir.join("sort.cpp"), "-o", exe) - hpcrun = which("hpcrun") + hpcrun = which("hpcrun", required=True) meas = "tst-sort.m" hpcrun("-e", "REALTIME@5000", "-t", "-o", meas, "./" + exe) - hpcstruct = which("hpcstruct") + hpcstruct = which("hpcstruct", required=True) struct = "tst-sort.hpcstruct" hpcstruct("-j", "4", "--time", "-o", struct, "./" + exe) - hpcprof = which("hpcprof") + hpcprof = which("hpcprof", required=True) db = "tst-sort.d" hpcprof("-S", struct, "-o", db, meas) @@ -422,9 +470,11 @@ def meson_args(self): "-Drocm=" + ("enabled" if spec.satisfies("+rocm") else "disabled"), "-Dlevel0=" + ("enabled" if spec.satisfies("+level_zero") else "disabled"), "-Dgtpin=" + ("enabled" if spec.satisfies("+gtpin") else "disabled"), + "-Dhpcrun_use_auditor_by_default=" + + ("true" if spec.satisfies("+auditor_default") else "false"), ] - if spec.satisfies("@develop"): + if spec.satisfies("@2025:"): args.append("-Dtests=" + ("enabled" if self.pkg.run_tests else "disabled")) if spec.satisfies("@:2024.01"): diff --git a/repos/spack_repo/builtin/packages/hpcviewer/package.py b/repos/spack_repo/builtin/packages/hpcviewer/package.py index 3a076ffe40e..c664725ddee 100644 --- a/repos/spack_repo/builtin/packages/hpcviewer/package.py +++ b/repos/spack_repo/builtin/packages/hpcviewer/package.py @@ -4,6 +4,7 @@ import os import platform +import shlex from spack_repo.builtin.build_systems.generic import Package @@ -13,7 +14,7 @@ class Hpcviewer(Package): """Binary distribution of hpcviewer and integrated hpctraceviewer for the Rice HPCToolkit (Linux x86_64, ppc64le and aarch64, and MacOSX - x86_64 and M1/M2). + x86_64 and Apple M-series). Note: hpctoolkit databases are platform independent, so you don't need to install hpctoolkit to run the viewers and it's common to @@ -26,6 +27,21 @@ class Hpcviewer(Package): skip_version_audit = ["platform=windows"] darwin_sha = { + ( + "2026.1.1", + "aarch64", + ): "d29d6cc2e6b534e3a46ab73f07db53597acb0e965fc8ff5bbf1948a54634f532", + ("2026.1.1", "x86_64"): "8af2f3d9b0a2b9585e67dd8410db3f3d3075856ee9ba502760c5311ebbb32db0", + ( + "2026.0.0", + "aarch64", + ): "fc0a131c791112a33bc48501b864fa49ab41fbd8819218f6d1ff223da443fcaf", + ("2026.0.0", "x86_64"): "d2329843a618d235b9db2795aa726ceb3561d586c8997a336e96c00eb1c1d8b6", + ( + "2025.3.1", + "aarch64", + ): "c87d29f70bc39c23926c001d8393d48d2fdf1ae41da8096a5f2ab40b18d20105", + ("2025.3.1", "x86_64"): "6b0f3d8e77fe4e0a7b6a97d022fba5671bc94762ff2d3c71ea4a3ab377d8fff2", ("2025.01", "aarch64"): "8884c60a972f864bd43fcf1933be5ec2095427de12394c96b943d2064dab044d", ("2025.01", "x86_64"): "2959313d5603ca9b14da04f3e5d51b19fc21c374eb3d5cc687d3f77f67bbf8b9", ("2024.09", "aarch64"): "f2e5b516105fe99315950ac4cc3bce120afadeca57cfaa16d58684756950d373", @@ -54,6 +70,42 @@ class Hpcviewer(Package): } viewer_sha = { + ( + "2026.1.1", + "aarch64", + ): "41ed7d2545cc94a626420b25a6d3733d678891b99c5d5d49a7ce0114a21a430b", + ( + "2026.1.1", + "ppc64le", + ): "2031e5a79b6bd10da8c9b8aec5be018244bb5213304784c12a45e43b85c6ad2f", + ("2026.1.1", "x86_64"): "56db0b4c13a9d6b41eb67ca00d46cb0325f38a9076d0722dee97a4a7f6079d52", + ( + "2026.0.0", + "aarch64", + ): "878b8df17ddc1e9acda37066a09f73b7bd58523e26bd2d06ca3550ed850fddec", + ( + "2026.0.0", + "ppc64le", + ): "814a6bd45aa938bf76bc5c83c35bdc0b9e2f72f8bab9035cd29a8dc96dc10aac", + ("2026.0.0", "x86_64"): "308fe3e066bf0da56de6a38aaf5b4a01ab77af3265b0257c3dd72f640689bc60", + ( + "2025.3.1", + "aarch64", + ): "bf9d519cb679bf1ee49da46a6eb3c5f1f223f58e3228c53b9c13d6368dcc16dd", + ( + "2025.3.1", + "ppc64le", + ): "89752d321e2a9001db171145dd724962a3881443dd62445f13ffd1a2e9c38f4f", + ("2025.3.1", "x86_64"): "3ad32708332fc61d53c67d93c17eeec3659e127df14552665f5689ad62773145", + ( + "2025.2.0", + "aarch64", + ): "565bba471273f897c3436dd8b152720e7862a44588204171b8778a2f5b463dfc", + ( + "2025.2.0", + "ppc64le", + ): "79ee51a1d0bc514571dfa7ca70b667e05b935cd0de8bc2a7603b304d2d357adc", + ("2025.2.0", "x86_64"): "e468637b212c03ebc121f8e2933e52885cd9133216b6b90262ab1441a9158959", ("2025.01", "aarch64"): "5cb9c0a9fb15fa9128da0d609554a76541d726737f4bc6b42bee87a2b9fe7e3d", ("2025.01", "ppc64le"): "d487d9a3752527a2ab3e754b34182c6c5878b62e9b97131237cce990f08d7dfb", ("2025.01", "x86_64"): "95af82b5e3b7a20f31a0b86f3ef5980f3caab7661eedba1810ebf2cf1340bd5b", @@ -144,7 +196,8 @@ class Hpcviewer(Package): if arch == machine: version( ver, - url=f"https://gitlab.com/hpctoolkit/hpcviewer/-/releases/{ver}/downloads/hpcviewer-macosx.cocoa.{arch}.zip", + url=f"https://gitlab.com/hpctoolkit/hpcviewer/-/releases/{ver}/downloads/hpcviewer-macosx.cocoa.{arch}" + + (".tar.gz" if ver > "2025.01" else ".zip"), sha256=sha, # Versions before 2022.01 are dead links deprecated=(ver < "2022.01"), @@ -156,7 +209,8 @@ class Hpcviewer(Package): if arch == machine: version( ver, - url=f"https://gitlab.com/hpctoolkit/hpcviewer/-/releases/{ver}/downloads/hpcviewer-linux.gtk.{arch}.tgz", + url=f"https://gitlab.com/hpctoolkit/hpcviewer/-/releases/{ver}/downloads/hpcviewer-linux.gtk.{arch}" + + (".tar.gz" if ver > "2025.01" else ".tgz"), sha256=sha, # Versions before 2022.01 are dead links deprecated=(ver < "2022.01"), @@ -174,12 +228,15 @@ class Hpcviewer(Package): when=f"@{ver}", ) - depends_on("java@17:", type=("build", "run"), when="@2024.09:") + depends_on("java@17:", type=("build", "run"), when="@2024.09:2025.2") depends_on("java@11:", type=("build", "run"), when="@2021.0:2024.02") depends_on("java@8", type=("build", "run"), when="@:2020") + # Eclipse requires a newer glibc on powerpc, but not x86. + depends_on("glibc@2.34:", when="@2025.3: target=ppc64le:") + # Install for MacOSX / Darwin - @when("platform=darwin") + @when("platform=darwin @:2025.2") def install(self, spec, prefix): # Add path to java binary to hpcviewer.ini file. ini_file = join_path("Contents", "Eclipse", "hpcviewer.ini") @@ -199,12 +256,26 @@ def install(self, spec, prefix): file.write("open " + app_dir + "\n") os.chmod(viewer_file, 0o755) - @when("platform=linux") + @when("platform=darwin @2025.3:") def install(self, spec, prefix): - self.linux_install(spec, prefix) + # Install the bundle as prefix/lib/hpcviewer.app + bundle_dir = join_path(prefix, "lib", "hpcviewer.app") + install_tree(".", bundle_dir) + + # Add launch script to open the app + mkdirp(prefix.bin) + wrapper = join_path(prefix.bin, "hpcviewer") + with open(wrapper, "w") as wrapperf: + wrapperf.write( + f"""\ +#!/bin/sh +open {shlex.quote(str(bundle_dir))} +""" + ) + set_executable(wrapper) - # Both hpcviewer and trace viewer have an install script. - def linux_install(self, spec, prefix): + @when("platform=linux @:2025.2") + def install(self, spec, prefix): args = ["--java", spec["java"].home, prefix] # Sometimes the script is install.sh, sometimes install. @@ -220,3 +291,13 @@ def linux_install(self, spec, prefix): cd("TRACE") inst = Executable(inst_path) inst(*args) + + @when("platform=linux @2025.3:") + def install(self, spec, prefix): + # Install the bundle as prefix/lib/hpcviewer + bundle_dir = join_path(prefix, "lib", "hpcviewer") + install_tree(".", bundle_dir) + + # Expose a `hpcviewer` symlink to the launcher + mkdirp(prefix.bin) + symlink(join_path(bundle_dir, "hpcviewer"), join_path(prefix.bin, "hpcviewer")) diff --git a/repos/spack_repo/builtin/packages/hping/package.py b/repos/spack_repo/builtin/packages/hping/package.py index f5d9b526f4e..d06e9f306d3 100644 --- a/repos/spack_repo/builtin/packages/hping/package.py +++ b/repos/spack_repo/builtin/packages/hping/package.py @@ -10,7 +10,7 @@ class Hping(AutotoolsPackage): """hping is a command-line oriented TCP/IP packet assembler/analyzer.""" - homepage = "http://www.hping.org" + homepage = "https://www.hping.org" git = "https://github.com/antirez/hping.git" license("GPL-2.0-only") diff --git a/repos/spack_repo/builtin/packages/hpx/package.py b/repos/spack_repo/builtin/packages/hpx/package.py index 451d88dcd8b..ceeceb81ca0 100644 --- a/repos/spack_repo/builtin/packages/hpx/package.py +++ b/repos/spack_repo/builtin/packages/hpx/package.py @@ -47,8 +47,7 @@ class Hpx(CMakePackage, CudaPackage, ROCmPackage): generator("ninja") - map_cxxstd = lambda cxxstd: "2a" if cxxstd == "20" else cxxstd - cxxstds = ("11", "14", "17", "20") + cxxstds = ("11", "14", "17", "20", "23") variant( "cxxstd", default="17", @@ -79,7 +78,7 @@ class Hpx(CMakePackage, CudaPackage, ROCmPackage): variant( "networking", - values=any_combination_of("tcp", "mpi").with_default("tcp"), + values=any_combination_of("tcp", "mpi", "lci").with_default("tcp"), description="Support for networking through parcelports", ) @@ -111,11 +110,8 @@ class Hpx(CMakePackage, CudaPackage, ROCmPackage): depends_on(Boost.with_default_variants) depends_on("boost +context", when="+generic_coroutines") for cxxstd in cxxstds: - depends_on("boost cxxstd={0}".format(map_cxxstd(cxxstd)), when="cxxstd={0}".format(cxxstd)) - - with when("@1.7:"): - for cxxstd in cxxstds: - depends_on(f"asio cxxstd={map_cxxstd(cxxstd)}", when=f"cxxstd={cxxstd}") + depends_on(f"boost cxxstd={cxxstd}", when=f"cxxstd={cxxstd}") + depends_on(f"asio cxxstd={cxxstd}", when=f"@1.7: cxxstd={cxxstd}") depends_on("gperftools", when="malloc=tcmalloc") depends_on("jemalloc", when="malloc=jemalloc") @@ -124,6 +120,7 @@ class Hpx(CMakePackage, CudaPackage, ROCmPackage): depends_on("mpi", when="networking=mpi") depends_on("mpi", when="+async_mpi") + depends_on("lci", when="networking=lci") depends_on("cuda", when="+async_cuda") @@ -250,6 +247,7 @@ def cmake_args(self): self.define("HPX_WITH_NETWORKING", "networking=none" not in spec), self.define("HPX_WITH_PARCELPORT_TCP", spec.satisfies("networking=tcp")), self.define("HPX_WITH_PARCELPORT_MPI", spec.satisfies("networking=mpi")), + self.define("HPX_WITH_PARCELPORT_LCI", spec.satisfies("networking=lci")), self.define( "HPX_WITH_MAX_CPU_COUNT", format_max_cpu_count(spec.variants["max_cpu_count"].value), diff --git a/repos/spack_repo/builtin/packages/hpx_kokkos/package.py b/repos/spack_repo/builtin/packages/hpx_kokkos/package.py index dd83e64e311..31b5032c37b 100644 --- a/repos/spack_repo/builtin/packages/hpx_kokkos/package.py +++ b/repos/spack_repo/builtin/packages/hpx_kokkos/package.py @@ -24,7 +24,6 @@ class HpxKokkos(CMakePackage, CudaPackage, ROCmPackage): version("0.4.0", sha256="dafef55521cf4bf7ab28ebad546ea1d3fb83fac3a9932e292db4ab3666cd833f") version("0.3.0", sha256="83c1d11dab95552ad0abdae767c71f757811d7b51d82bd231653dc942e89a45d") version("0.2.0", sha256="289b711cea26afe80be002fc521234c9194cd0e8f69863f3b08b654674dbe5d5") - version("0.1.0", sha256="24edb817d0969f4aea1b68eab4984c2ea9a58f4760a9b8395e20f85b178f0850") cxxstds = ("14", "17", "20") variant( @@ -38,7 +37,7 @@ class HpxKokkos(CMakePackage, CudaPackage, ROCmPackage): variant( "future_type", default="polling", - values=future_types_map.keys(), + values=tuple(future_types_map.keys()), description="Integration type for GPU futures", ) @@ -60,9 +59,6 @@ class HpxKokkos(CMakePackage, CudaPackage, ROCmPackage): depends_on("hpx@1.7", when="@0.2") depends_on("kokkos@3.6:", when="@0.2") - depends_on("hpx@1.6", when="@0.1") - depends_on("kokkos@3.2:3.5", when="@0.1") - for cxxstd in cxxstds: depends_on("hpx cxxstd={0}".format(cxxstd), when="cxxstd={0}".format(cxxstd)) depends_on("kokkos cxxstd={0}".format(cxxstd), when="cxxstd={0}".format(cxxstd)) diff --git a/repos/spack_repo/builtin/packages/hsa_amd_aqlprofile/package.py b/repos/spack_repo/builtin/packages/hsa_amd_aqlprofile/package.py new file mode 100644 index 00000000000..8eee1677986 --- /dev/null +++ b/repos/spack_repo/builtin/packages/hsa_amd_aqlprofile/package.py @@ -0,0 +1,63 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import re + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class HsaAmdAqlprofile(CMakePackage): + """Architected Queuing Language Profiling Library + AQLprofile is an open source library that enables advanced + GPU profiling and tracing on AMD platforms""" + + homepage = "https://github.com/ROCm/aqlprofile" + git = "https://github.com/ROCm/rocm-systems" + tags = ["rocm"] + maintainers("srekolam", "renjithravindrankannath", "afzpatel") + libraries = ["libhsa-amd-aqlprofile64"] + + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/aqlprofile/archive/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-systems/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b") + version("7.2.1", sha256="201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f") + version("7.2.0", sha256="728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638") + version("7.1.1", sha256="0137f429a551c431a81f613e114b247d7e269ab9201154d6c87fe7fc86987a66") + version("7.1.0", sha256="19964494662243773a89c8f20e78a6903b5c886fdb472703b6c9f5bec36d3120") + version("7.0.2", sha256="1c56781bf40e7195b1dd670b8f05ecc0b2007c57c0a0b80fea97dfaa9999e8e3") + version("7.0.0", sha256="25f040c867e22f4a0b4147317133dc50eccf60e72fc2c91e8d25083fa84c313e") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + for ver in ["7.0.0", "7.0.2", "7.1.0", "7.1.1", "7.2.0", "7.2.1", "7.2.3"]: + depends_on(f"hsa-rocr-dev@{ver}", when=f"@{ver}") + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@:7.1"): + return "." + else: + return "projects/aqlprofile" + + @classmethod + def determine_version(cls, lib): + match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib) + if match: + ver = "{0}.{1}.{2}".format( + int(match.group(1)), int(match.group(2)), int(match.group(3)) + ) + major = int(ver.split(".")[0]) + if major < 7: + ver = None + else: + ver = None + return ver diff --git a/repos/spack_repo/builtin/packages/hsa_rocr_dev/0002-Remove-explicit-RPATH-again.patch b/repos/spack_repo/builtin/packages/hsa_rocr_dev/0002-Remove-explicit-RPATH-again.patch deleted file mode 100644 index 7d3150e40c3..00000000000 --- a/repos/spack_repo/builtin/packages/hsa_rocr_dev/0002-Remove-explicit-RPATH-again.patch +++ /dev/null @@ -1,26 +0,0 @@ -From fb6bc54d50ec511118557bfad7f1b892adcc1a1d Mon Sep 17 00:00:00 2001 -From: Renjith Ravindran -Date: Tue, 10 Oct 2023 01:15:08 +0000 -Subject: [PATCH] Updating patch for the latest code - ---- - src/CMakeLists.txt | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 8fb02b1..b40c972 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -122,9 +122,6 @@ target_include_directories( ${CORE_RUNTIME_TARGET} - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/libamdhsacode ) - --## Set RUNPATH - ../../lib covers use of the legacy symlink in /hsa/lib/ --set_property(TARGET ${CORE_RUNTIME_TARGET} PROPERTY INSTALL_RPATH "$ORIGIN;$ORIGIN/../../lib;$ORIGIN/../../lib64;$ORIGIN/../lib64" ) -- - ## ------------------------- Linux Compiler and Linker options ------------------------- - set ( HSA_CXX_FLAGS ${HSA_COMMON_CXX_FLAGS} -fexceptions -fno-rtti -fvisibility=hidden -Wno-error=missing-braces -Wno-error=sign-compare -Wno-sign-compare -Wno-write-strings -Wno-conversion-null -fno-math-errno -fno-threadsafe-statics -fmerge-all-constants -fms-extensions -Wno-error=comment -Wno-comment -Wno-error=pointer-arith -Wno-pointer-arith -Wno-error=unused-variable -Wno-error=unused-function ) - --- -2.31.1 - diff --git a/repos/spack_repo/builtin/packages/hsa_rocr_dev/package.py b/repos/spack_repo/builtin/packages/hsa_rocr_dev/package.py index aad5dc28c4e..4b3079dc2dd 100644 --- a/repos/spack_repo/builtin/packages/hsa_rocr_dev/package.py +++ b/repos/spack_repo/builtin/packages/hsa_rocr_dev/package.py @@ -17,13 +17,28 @@ class HsaRocrDev(CMakePackage): Linux HSA Runtime for Boltzmann (ROCm) platforms.""" homepage = "https://github.com/ROCm/ROCR-Runtime" - git = "https://github.com/ROCm/ROCR-Runtime.git" - url = "https://github.com/ROCm/ROCR-Runtime/archive/rocm-6.2.4.tar.gz" + git = "https://github.com/ROCm/rocm-systems.git" tags = ["rocm"] + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/ROCR-Runtime/archive/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-systems/archive/rocm-{0}.tar.gz" + return url.format(version) + maintainers("srekolam", "renjithravindrankannath", "haampie", "afzpatel") libraries = ["libhsa-runtime64"] + version("7.2.3", sha256="e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b") + version("7.2.1", sha256="201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f") + version("7.2.0", sha256="728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638") + version("7.1.1", sha256="4c5b58afa1e11461954bd005a10ebf29941c120f1d6a7863954597f5eacfc605") + version("7.1.0", sha256="383fa8e1776c3ee527cdddc9f9ac6f7134c3fcd8758eae9be8bd3a8b7fdca9b1") + version("7.0.2", sha256="9c2020f7a42d60fe9775865ab58464078007926a3b01f1ca8128557c89e7a566") + version("7.0.0", sha256="9ea2cbcf343f643ede6e16d82fbd0303771e1978759b2e546d0efc0df3263e4c") + version("6.4.3", sha256="3b23bed04cbed72304d31d69901eb76afa2099c7ac37f055348dfcda2d25e41a") + version("6.4.2", sha256="8ad5dbf7cb0f728b8e515f46a41db24ed3b99ca894ccdd9f4d9bac969e9e35bb") version("6.4.1", sha256="f72d100a46a2dd9f4c870cef156604777f1bdb1841df039d14bf37b19814b9da") version("6.4.0", sha256="ff740e8c8f2229c6dc47577363f707b1a44ea4254f8ad74f8f0a669998829535") version("6.3.3", sha256="aa2e30d3d68707d6df4840e954bb08cc13cd312cec1a98a64d97adbe07262f50") @@ -40,9 +55,6 @@ class HsaRocrDev(CMakePackage): version("6.0.0", sha256="99e8fa1af52d0bf382f28468e1a345af1ff3452c35914a6a7b5eeaf69fc568db") version("5.7.1", sha256="655e9bfef4b0b6ad3f9b89c934dc0a8377273bb0bccbda6c399ac5d5d2c1c04c") version("5.7.0", sha256="2c56ec5c78a36f2b847afd4632cb25dbf6ecc58661eb2ae038c2552342e6ce23") - with default_args(deprecated=True): - version("5.6.1", sha256="4de9a57c2092edf9398d671c8a2c60626eb7daf358caf710da70d9c105490221") - version("5.6.0", sha256="30875d440df9d8481ffb24d87755eae20a0efc1114849a72619ea954f1e9206c") variant("shared", default=True, description="Build shared or static library") variant("image", default=True, description="build with or without image support") @@ -63,8 +75,6 @@ class HsaRocrDev(CMakePackage): depends_on("libdrm", when="@6.3:") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -79,8 +89,6 @@ class HsaRocrDev(CMakePackage): depends_on(f"hsakmt-roct@{ver}", when=f"@{ver}") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -97,18 +105,43 @@ class HsaRocrDev(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") depends_on(f"rocm-core@{ver}", when=f"@{ver}") - for ver in ["6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: + for ver in [ + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"rocprofiler-register@{ver}", when=f"@{ver}") - patch("0002-Remove-explicit-RPATH-again.patch", when="@:5.6") - @property def root_cmakelists_dir(self): - if self.spec.satisfies("@6.3:"): + if self.spec.satisfies("@7.2:"): + return "projects/rocr-runtime" + elif self.spec.satisfies("@6.3:"): return "." else: return "src" diff --git a/repos/spack_repo/builtin/packages/hsakmt_roct/package.py b/repos/spack_repo/builtin/packages/hsakmt_roct/package.py index 883ce578bca..0b6c6b8a4cb 100644 --- a/repos/spack_repo/builtin/packages/hsakmt_roct/package.py +++ b/repos/spack_repo/builtin/packages/hsakmt_roct/package.py @@ -32,9 +32,6 @@ class HsakmtRoct(CMakePackage): version("6.0.0", sha256="9f4e80bd0a714ce45326941b906a62298c62025eff186dc6c48282ce84c787c7") version("5.7.1", sha256="38bc3732886a52ca9cd477ec6fcde3ab17a0ba5dc8e2f7ac34c4de597bd00e8b") version("5.7.0", sha256="52293e40c4ba0c653d796e2f6109f5fb4c79f5fb82310ecbfd9a5432acf9da43") - with default_args(deprecated=True): - version("5.6.1", sha256="d60b355bfd21a08e0e36270fd56f98d052c3c6edca47da887fa32bf32759c29b") - version("5.6.0", sha256="cd009c5c09f664f046c428ba9843582ab468f7b88d560747eb949d8d7f8c5567") variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") @@ -47,8 +44,6 @@ class HsakmtRoct(CMakePackage): depends_on("libdrm") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -97,10 +92,10 @@ def check_install(self): ] cmake = self.spec["cmake"].command cmake(*cc_options) - make = which("make") + make = which("make", required=True) make() os.environ["LD_LIBRARY_PATH"] = hsakmt_path os.environ["BIN_DIR"] = os.getcwd() - run_kfdtest = which(join_path("scripts", "run_kfdtest.sh")) + run_kfdtest = which(join_path("scripts", "run_kfdtest.sh"), required=True) run_kfdtest() make("clean") diff --git a/repos/spack_repo/builtin/packages/htop/package.py b/repos/spack_repo/builtin/packages/htop/package.py index 453bd2b21a1..e7c3c1a31c0 100644 --- a/repos/spack_repo/builtin/packages/htop/package.py +++ b/repos/spack_repo/builtin/packages/htop/package.py @@ -16,6 +16,8 @@ class Htop(AutotoolsPackage): license("GPL-2.0-or-later") + version("3.4.1", sha256="af9ec878f831b7c27d33e775c668ec79d569aa781861c995a0fbadc1bdb666cf") + version("3.4.0", sha256="7a45cd93b393eaa5804a7e490d58d0940b1c74bb24ecff2ae7b5c49e7a3c1198") version("3.3.0", sha256="1e5cc328eee2bd1acff89f860e3179ea24b85df3ac483433f92a29977b14b045") version("3.2.2", sha256="3829c742a835a0426db41bb039d1b976420c21ec65e93b35cd9bfd2d57f44ac8") version("3.2.1", sha256="b5ffac1949a8daaabcffa659c0964360b5008782aae4dfa7702d2323cfb4f438") diff --git a/repos/spack_repo/builtin/packages/htslib/package.py b/repos/spack_repo/builtin/packages/htslib/package.py index 3cb13e3a934..2460131cf02 100644 --- a/repos/spack_repo/builtin/packages/htslib/package.py +++ b/repos/spack_repo/builtin/packages/htslib/package.py @@ -17,6 +17,7 @@ class Htslib(AutotoolsPackage): license("MIT AND BSD-3-Clause-Modification") + version("1.22.1", sha256="3dfa6eeb71db719907fe3ef7c72cb2ec9965b20b58036547c858c89b58c342f7") version("1.21", sha256="84b510e735f4963641f26fd88c8abdee81ff4cb62168310ae716636aac0f1823") version("1.20", sha256="e52d95b14da68e0cfd7d27faf56fef2f88c2eaf32a2be51c72e146e3aa928544") version("1.19.1", sha256="222d74d3574fb67b158c6988c980eeaaba8a0656f5e4ffb76b5fa57f035933ec") diff --git a/repos/spack_repo/builtin/packages/httpd/package.py b/repos/spack_repo/builtin/packages/httpd/package.py index 4dbb06c94a8..2bacd63b0d2 100644 --- a/repos/spack_repo/builtin/packages/httpd/package.py +++ b/repos/spack_repo/builtin/packages/httpd/package.py @@ -18,18 +18,6 @@ class Httpd(AutotoolsPackage): version("2.4.62", sha256="674188e7bf44ced82da8db522da946849e22080d73d16c93f7f4df89e25729ec") - # https://nvd.nist.gov/vuln/detail/CVE-2024-38477 - version( - "2.4.59", - sha256="ec51501ec480284ff52f637258135d333230a7d229c3afa6f6c2f9040e321323", - deprecated=True, - ) - version( - "2.4.55", - sha256="11d6ba19e36c0b93ca62e47e6ffc2d2f2884942694bce0f23f39c71bdc5f69ac", - deprecated=True, - ) - depends_on("c", type="build") depends_on("m4", type="build") depends_on("autoconf", type="build") diff --git a/repos/spack_repo/builtin/packages/httpie/package.py b/repos/spack_repo/builtin/packages/httpie/package.py index ba3b85289e1..409366e6bfb 100644 --- a/repos/spack_repo/builtin/packages/httpie/package.py +++ b/repos/spack_repo/builtin/packages/httpie/package.py @@ -12,10 +12,11 @@ class Httpie(PythonPackage): homepage = "https://httpie.io/" pypi = "httpie/httpie-2.6.0.tar.gz" - maintainers("BoboTiG") + maintainers("ebagrenrut") license("BSD-3-Clause") + version("3.2.4", sha256="302ad436c3dc14fd0d1b19d4572ef8d62b146bcd94b505f3c2521f701e2e7a2a") version("3.2.1", sha256="c9c0032ca3a8d62492b7231b2dd83d94becf3b71baf8a4bbcd9ed1038537e3ec") version("2.6.0", sha256="ef929317b239bbf0a5bb7159b4c5d2edbfc55f8a0bcf9cd24ce597daec2afca5") version("2.5.0", sha256="fe6a8bc50fb0635a84ebe1296a732e39357c3e1354541bf51a7057b4877e47f9") @@ -33,3 +34,6 @@ class Httpie(PythonPackage): depends_on("py-importlib-metadata@1.4.0:", when="@3: ^python@:3.7", type=("build", "run")) depends_on("py-rich@9.10.0:", when="@3.2.1:", type=("build", "run")) depends_on("py-colorama@0.2.4:", when="platform=windows", type=("build", "run")) + depends_on("py-urllib3", type=("build", "run")) + + conflicts("py-urllib3@2:", when="@:3.2.1") diff --git a/repos/spack_repo/builtin/packages/hub/package.py b/repos/spack_repo/builtin/packages/hub/package.py index 1af05da13c9..cbdb22d7b97 100644 --- a/repos/spack_repo/builtin/packages/hub/package.py +++ b/repos/spack_repo/builtin/packages/hub/package.py @@ -20,26 +20,6 @@ class Hub(Package): version("master", branch="master") version("2.14.2", sha256="e19e0fdfd1c69c401e1c24dd2d4ecf3fd9044aa4bd3f8d6fd942ed1b2b2ad21a") - version( - "2.2.2", - sha256="610572ee903aea1fa8622c16ab7ddef2bd1bfec9f4854447ab8e0fbdbe6a0cae", - deprecated=True, - ) - version( - "2.2.1", - sha256="9350aba6a8e3da9d26b7258a4020bf84491af69595f7484f922d75fc8b86dc10", - deprecated=True, - ) - version( - "2.2.0", - sha256="2da1351197eb5696c207f22c69a5422af052d74277b73d0b8661efb9ec1d0eb1", - deprecated=True, - ) - version( - "1.12.4", - sha256="b7fe404d7dc5f60554f088bec12de5e80229331430ea0ced46d5bf89ecae5117", - deprecated=True, - ) depends_on("c", type="build") # generated @@ -50,7 +30,7 @@ def install(self, spec, prefix): if spec.version < Version("2.14"): env["GOPATH"] = self.stage.source_path + ":" + env["GOPATH"] env["GO111MODULE"] = "off" - bash = which("bash") + bash = which("bash", required=True) bash(os.path.join("script", "build"), "-o", prefix.bin.hub) return env["GO111MODULE"] = "on" diff --git a/repos/spack_repo/builtin/packages/hugo/package.py b/repos/spack_repo/builtin/packages/hugo/package.py index 4a9dad57b11..d8504de7b6d 100644 --- a/repos/spack_repo/builtin/packages/hugo/package.py +++ b/repos/spack_repo/builtin/packages/hugo/package.py @@ -21,6 +21,8 @@ class Hugo(GoPackage): license("Apache-2.0") + version("0.152.2", sha256="45ffd018ad8a15d91f8689e76a3b2cb8ce73e82b3a7ae2ce632212c36e77665d") + version("0.151.2", sha256="111f545201b2bedb38313e9d69501cf92f440ab60bf2e903647d3e02af9490a3") version("0.147.3", sha256="cc37a9ecec5f8065d1854916c317015fb2b6e8ecc391db5a04adfc3818599152") version("0.145.0", sha256="f6cfcfa4575ff25a08e68b638367df60b28e28a7917471c5deec6396eae26ae2") version("0.140.2", sha256="45594ddf39d62d227cfd54c19fb9a09ab851cf537caee6138de0ddd4f1f6f117") @@ -38,6 +40,10 @@ class Hugo(GoPackage): version("0.107.0", sha256="31d959a3c1633087d338147782d03bdef65323b67ff3efcec7b40241413e270a") version("0.106.0", sha256="9219434beb51466487b9f8518edcbc671027c1998e5a5820d76d517e1dfbd96a") + depends_on("c", type="build", when="+extended") + depends_on("cxx", type="build", when="+extended") + + depends_on("go@1.24:", type="build", when="@0.149:") depends_on("go@1.23:", type="build", when="@0.144:") depends_on("go@1.22.6:", type="build", when="@0.133:") depends_on("go@1.21.8:", type="build", when="@0.131:") @@ -57,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/hunspell/package.py b/repos/spack_repo/builtin/packages/hunspell/package.py index b1e2c67d76c..4ed7dd3633e 100644 --- a/repos/spack_repo/builtin/packages/hunspell/package.py +++ b/repos/spack_repo/builtin/packages/hunspell/package.py @@ -19,7 +19,8 @@ class Hunspell(AutotoolsPackage): version("1.7.0", sha256="bb27b86eb910a8285407cf3ca33b62643a02798cf2eef468c0a74f6c3ee6bc8a") version("1.6.0", sha256="512e7d2ee69dad0b35ca011076405e56e0f10963a02d4859dbcc4faf53ca68e2") - depends_on("cxx", type="build") # generated + depends_on("cxx", type="build") + depends_on("c", type="build") depends_on("autoconf", type="build") depends_on("automake", type="build") @@ -30,5 +31,5 @@ class Hunspell(AutotoolsPackage): # TODO: If https://github.com/spack/spack/pull/12344 is merged, this # method is unnecessary. def autoreconf(self, spec, prefix): - autoreconf = which("autoreconf") + autoreconf = which("autoreconf", required=True) autoreconf("-fiv") diff --git a/repos/spack_repo/builtin/packages/hwloc/package.py b/repos/spack_repo/builtin/packages/hwloc/package.py index f8b5f9b1667..8c88e5a1350 100644 --- a/repos/spack_repo/builtin/packages/hwloc/package.py +++ b/repos/spack_repo/builtin/packages/hwloc/package.py @@ -39,6 +39,8 @@ class Hwloc(AutotoolsPackage, CudaPackage, ROCmPackage): executables = ["^hwloc-bind$"] version("master", branch="master") + version("2.13.0", sha256="1514a5253f0a5c23bc006d3bdd30a6f6125c9a8dc9b5fa4984913d1fff45315d") + version("2.12.2", sha256="ff7d309fdff7ceddfe15c1e79eaff25f3126a134f29f44d4e85571f187a6bab8") version("2.11.1", sha256="9f320925cfd0daeaf3a3d724c93e127ecac63750c623654dca0298504aac4c2c") version("2.10.0", sha256="c7fd8a1404a9719c76aadc642864b9f77aed1dc1fc8882d6af861a9260ba240d") version("2.9.3", sha256="5985db3a30bbe51234c2cd26ebe4ae9b4c3352ab788b1a464c40c0483bf4de59") @@ -129,6 +131,13 @@ class Hwloc(AutotoolsPackage, CudaPackage, ROCmPackage): depends_on("ncurses ~termlib", when="@2.0:2.2") depends_on("ncurses ~termlib", when="@1.0:1.11.12") + # Removes unnecessary refresh call that fails linking with ^ncurses+termlib + patch( + "https://github.com/open-mpi/hwloc/commit/f7f1f76573ce505dae73568c912d2b2efdbf0f71.patch?full_index=1", + sha256="b4db98b39733435273e57b8229ee834ce50d2785641d1587d8039598752b1a3d", + when="@2.13.0", + ) + # When mpi=openmpi, this introduces an unresolvable dependency. # See https://github.com/spack/spack/issues/15836 for details depends_on("mpi", when="+netloc") @@ -191,11 +200,11 @@ def configure_args(self): args.append("--disable-rsmi") if self.spec.satisfies("+rocm"): - args.append(f'--with-rocm={self.spec["hip"].prefix}') - args.append(f'--with-rocm-version={self.spec["hip"].version}') + args.append(f"--with-rocm={self.spec['hip'].prefix}") + args.append(f"--with-rocm-version={self.spec['hip'].version}") if self.spec.satisfies("+cuda"): - args.append(f'--with-cuda={self.spec["cuda"].prefix}') - args.append(f'--with-cuda-version={self.spec["cuda"].version}') + args.append(f"--with-cuda={self.spec['cuda'].prefix}") + args.append(f"--with-cuda-version={self.spec['cuda'].version}") return args diff --git a/repos/spack_repo/builtin/packages/hwmalloc/package.py b/repos/spack_repo/builtin/packages/hwmalloc/package.py new file mode 100644 index 00000000000..38b9c72c8ba --- /dev/null +++ b/repos/spack_repo/builtin/packages/hwmalloc/package.py @@ -0,0 +1,68 @@ +# 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, generator + +from spack.package import * + + +class Hwmalloc(CMakePackage): + """hwmalloc provides a thread-safe heap class for allocating memory on given + numa nodes and devices (GPUs) with memory registration""" + + homepage = "https://github.com/ghex-org/hwmalloc" + url = "https://github.com/ghex-org/hwmalloc/archive/refs/tags/v0.0.0.tar.gz" + git = "https://github.com/ghex-org/hwmalloc.git" + + maintainers("boeschf", "msimberg") + + license("BSD-3-Clause", checked_by="msimberg") + + version("0.4.0", sha256="1161048e915cf196a86a6241d7354dd56b0e02782000507bab19be5628763ab3") + version("master", branch="master") + + depends_on("cxx", type="build") + + generator("ninja") + + depends_on("ninja", type="build") + + variant("cuda", default=False, description="Enable CUDA support") + variant("rocm", default=False, description="Enable ROCm support") + + depends_on("cmake@3.19:", type="build") + depends_on("numactl", type=("build", "run")) + depends_on("boost", type="build") + depends_on("cuda", when="+cuda") + depends_on("hip", when="+rocm") + + conflicts("+cuda +rocm", msg="CUDA and ROCm support are mutually exclusive") + + variant( + "numa-throws", + default=False, + description="True if numa_tools may throw during initialization", + ) + variant("numa-local", default=True, description="Use numa_tools for local node allocations") + variant("logging", default=False, description="print logging info to cerr") + + def cmake_args(self): + args = [ + self.define_from_variant("HWMALLOC_NUMA_THROWS", "numa-throws"), + self.define_from_variant("HWMALLOC_NUMA_FOR_LOCAL", "numa-local"), + self.define_from_variant("HWMALLOC_ENABLE_LOGGING", "logging"), + self.define("HWMALLOC_WITH_TESTING", self.run_tests), + ] + + if self.spec.satisfies("+cuda"): + args.append(self.define("HWMALLOC_ENABLE_DEVICE", True)) + args.append(self.define("HWMALLOC_DEVICE_RUNTIME", "cuda")) + elif self.spec.satisfies("+rocm"): + args.append(self.define("HWMALLOC_ENABLE_DEVICE", True)) + args.append(self.define("HWMALLOC_DEVICE_RUNTIME", "hip")) + else: + args.append(self.define("HWMALLOC_ENABLE_DEVICE", False)) + + return args diff --git a/repos/spack_repo/builtin/packages/hycom/package.py b/repos/spack_repo/builtin/packages/hycom/package.py new file mode 100644 index 00000000000..7de783d9d82 --- /dev/null +++ b/repos/spack_repo/builtin/packages/hycom/package.py @@ -0,0 +1,125 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.makefile import MakefilePackage + +from spack.package import * + + +class Hycom(MakefilePackage): + """HYCOM (HYbrid Coordinate Ocean Model) is a primitive equation ocean + general circulation model that evolved from the Miami Isopycnic-Coordinate + Ocean Model (MICOM). It uses a hybrid vertical coordinate system combining + isopycnal, sigma, and z-level coordinates for optimal ocean simulation. + """ + + homepage = "https://www.hycom.org" + url = "https://github.com/HYCOM/HYCOM-src/archive/refs/tags/2.3.01.tar.gz" + git = "https://github.com/HYCOM/HYCOM-src.git" + + maintainers("wjunlu") + + version("master", branch="master") + version("2.3.01", sha256="0635e5f10d983f949da105dc32432b663dd6b0d43966086e9f5510df69ad9350") + version("2.3.00", sha256="83037b093c2d613efa32471a424b447e201d25d058632a3802a3838760d1a094") + + variant("mpi", default=True, description="Enable MPI support") + variant( + "eos", default="sig2", description="Equation of state sigma type", values=("sig0", "sig2") + ) + variant( + "eos_term", + default="17t", + description="EOS number of terms", + values=("7t", "9t", "12t", "17t"), + ) + + parallel = False + + depends_on("c", type="build") + depends_on("fortran", type="build") + depends_on("mpi", when="+mpi") + depends_on("gmake", type="build") + + def _write_config(self): + spec = self.spec + if "+mpi" in spec: + fc = spec["mpi"].mpifc + build_type = "mpi" + cppflags_extra = "-DMPI" + else: + fc = spack_fc + build_type = "one" + cppflags_extra = "" + + cc = spack_cc + + if spec.satisfies("%gcc"): + fcfflags = "-fPIC -O2 -fdefault-real-8 -fdefault-double-8" + if spec.satisfies("%gcc@10:"): + fcfflags += " -fallow-argument-mismatch" + elif spec.satisfies("%intel") or spec.satisfies("%oneapi"): + fcfflags = "-O3 -fp-model precise -no-fma -r8 -warn nogeneral" + elif spec.satisfies("%nvhpc") or spec.satisfies("%pgi"): + fcfflags = "-O2 -Kieee -r8" + else: + fcfflags = "-O2" + ccflags = "-O" + + cppflags = "-DREAL8 -DENDIAN_IO -DTIMER -DRELO {0} $(CPP_EXTRAS)".format(cppflags_extra) + + arch_name = "spack" + config_content = ( + "FC = {fc}\n" + "FCFFLAGS = {fcfflags}\n" + "CC = {cc}\n" + "CCFLAGS = {ccflags}\n" + "CPP = cpp -P\n" + "CPPFLAGS = {cppflags}\n" + "LD = $(FC)\n" + "LDFLAGS = $(FCFFLAGS)\n" + "EXTRALIBS =\n" + "\n" + "SHELL = /bin/sh\n" + "RM = \\rm -f\n" + "\n" + ".c.o:\n" + "\t$(CC) $(CPPFLAGS) $(CCFLAGS) -c $*.c\n" + "\n" + ".F90.o:\n" + "\t$(FC) $(CPPFLAGS) $(FCFFLAGS) -c $*.F90\n" + ).format(fc=fc, fcfflags=fcfflags, cc=cc, ccflags=ccflags, cppflags=cppflags) + + config_path = join_path( + self.stage.source_path, "config", "{0}_{1}".format(arch_name, build_type) + ) + with open(config_path, "w") as f: + f.write(config_content) + + return arch_name, build_type + + def _cpp_extras(self): + spec = self.spec + eos_sig = "-DEOS_SIG2" if spec.variants["eos"].value == "sig2" else "-DEOS_SIG0" + eos_term_map = {"7t": "-DEOS_7T", "9t": "-DEOS_9T", "12t": "-DEOS_12T", "17t": "-DEOS_17T"} + eos_term = eos_term_map[spec.variants["eos_term"].value] + return "{0} {1} -DMASSLESS_1MM".format(eos_sig, eos_term) + + def edit(self, spec, prefix): + self._arch_name, self._build_type = self._write_config() + + @property + def build_targets(self): + return [ + "hycom", + "ARCH={0}".format(self._arch_name), + "TYPE={0}".format(self._build_type), + "CPP_EXTRAS={0}".format(self._cpp_extras()), + ] + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install("hycom", prefix.bin) + mkdirp(prefix.share) + install("dimensions.h", prefix.share) diff --git a/repos/spack_repo/builtin/packages/hyperqueue/package.py b/repos/spack_repo/builtin/packages/hyperqueue/package.py index 0dfd8ff4819..3f416987707 100644 --- a/repos/spack_repo/builtin/packages/hyperqueue/package.py +++ b/repos/spack_repo/builtin/packages/hyperqueue/package.py @@ -34,5 +34,5 @@ class Hyperqueue(Package): depends_on("rust@1.59:") def install(self, spec, prefix): - cargo = which("cargo") + cargo = which("cargo", required=True) cargo("install", "--root", prefix, "--path", "crates/hyperqueue") diff --git a/repos/spack_repo/builtin/packages/hypre/hypre30000-tpls+mixedprec.patch b/repos/spack_repo/builtin/packages/hypre/hypre30000-tpls+mixedprec.patch new file mode 100644 index 00000000000..18d32bb2d21 --- /dev/null +++ b/repos/spack_repo/builtin/packages/hypre/hypre30000-tpls+mixedprec.patch @@ -0,0 +1,603 @@ +diff --git a/src/config/cmake/HYPRE_CMakeUtilities.cmake b/src/config/cmake/HYPRE_CMakeUtilities.cmake +index 43a059d16..124607844 100644 +--- a/src/config/cmake/HYPRE_CMakeUtilities.cmake ++++ b/src/config/cmake/HYPRE_CMakeUtilities.cmake +@@ -81,17 +81,17 @@ endfunction() + + # Function to check if two options have different values + function(ensure_options_differ option1 option2) +- if(DEFINED ${option1} AND DEFINED ${option2}) +- if(${option1} AND ${${option2}}) ++ if(DEFINED HYPRE_ENABLE_${option1} AND DEFINED HYPRE_ENABLE_${option2}) ++ if(HYPRE_ENABLE_${option1} AND ${HYPRE_ENABLE_${option2}}) + # Save the value of the conflicting options +- set(saved_value1 "${${option1}}") +- set(saved_value2 "${${option2}}") ++ set(saved_value1 "${HYPRE_ENABLE_${option1}}") ++ set(saved_value2 "${HYPRE_ENABLE_${option2}}") + + # Unset conflicting options +- unset(${option1} CACHE) +- unset(${option2} CACHE) ++ unset(HYPRE_ENABLE_${option1} CACHE) ++ unset(HYPRE_ENABLE_${option2} CACHE) + +- message(FATAL_ERROR "Error: ${option1} (${saved_value1}) and ${option2} (${saved_value2}) are mutually exclusive. Only one can be set to ON. Unsetting both options.") ++ message(FATAL_ERROR "Error: HYPRE_ENABLE_${option1} (${saved_value1}) and HYPRE_ENABLE_${option2} (${saved_value2}) are mutually exclusive. Only one can be set to ON. Unsetting both options.") + endif() + endif() + endfunction() +@@ -266,6 +266,48 @@ function(setup_tpl LIBNAME) + # Note we need to check for "USING" instead of "WITH" because + # we want to allow for post-processing of build options via cmake + if(HYPRE_USING_${LIBNAME_UPPER}) ++ # If the TPL was already added as a subproject, prefer using the existing target ++ if(${LIBNAME_UPPER} STREQUAL "UMPIRE") ++ if(TARGET umpire::umpire) ++ # Link privately but propagate include directories so dependents see headers ++ target_link_libraries(${PROJECT_NAME} PRIVATE umpire::umpire) ++ get_target_property(_UMPIRE_INCLUDES umpire::umpire INTERFACE_INCLUDE_DIRECTORIES) ++ if(_UMPIRE_INCLUDES) ++ target_include_directories(${PROJECT_NAME} PUBLIC ${_UMPIRE_INCLUDES}) ++ endif() ++ # Ensure C++ standard library is linked for non-MSVC toolchains ++ if(UNIX) ++ target_link_libraries(${PROJECT_NAME} PUBLIC stdc++) ++ endif() ++ fixup_umpire_cuda_runtime() ++ message(STATUS "Found existing Umpire target: umpire::umpire") ++ set(${LIBNAME_UPPER}_FOUND TRUE PARENT_SCOPE) ++ set(HYPRE_NEEDS_CXX TRUE PARENT_SCOPE) ++ message(STATUS "Enabled support for using ${LIBNAME_UPPER}") ++ # Verify C interface headers are present ++ check_umpire_c_interface() ++ return() ++ elseif(TARGET umpire) ++ # Provide the standardized namespace alias if missing ++ add_library(umpire::umpire ALIAS umpire) ++ target_link_libraries(${PROJECT_NAME} PRIVATE umpire::umpire) ++ get_target_property(_UMPIRE_INCLUDES umpire INTERFACE_INCLUDE_DIRECTORIES) ++ if(_UMPIRE_INCLUDES) ++ target_include_directories(${PROJECT_NAME} PUBLIC ${_UMPIRE_INCLUDES}) ++ endif() ++ if(UNIX) ++ target_link_libraries(${PROJECT_NAME} PUBLIC stdc++) ++ endif() ++ fixup_umpire_cuda_runtime() ++ message(STATUS "Found existing Umpire target: umpire") ++ set(${LIBNAME_UPPER}_FOUND TRUE PARENT_SCOPE) ++ set(HYPRE_NEEDS_CXX TRUE PARENT_SCOPE) ++ message(STATUS "Enabled support for using ${LIBNAME_UPPER}") ++ # Verify C interface headers are present ++ check_umpire_c_interface() ++ return() ++ endif() ++ endif() + if(TPL_${LIBNAME_UPPER}_LIBRARIES AND TPL_${LIBNAME_UPPER}_INCLUDE_DIRS) + # Use specified TPL libraries and include dirs + foreach(dir ${TPL_${LIBNAME_UPPER}_INCLUDE_DIRS}) +@@ -274,12 +316,14 @@ function(setup_tpl LIBNAME) + endif() + endforeach() + ++ set(_tpl_libdirs) + foreach(lib ${TPL_${LIBNAME_UPPER}_LIBRARIES}) + if(EXISTS ${lib}) + message(STATUS "${LIBNAME_UPPER} library found: ${lib}") + get_filename_component(LIB_DIR "${lib}" DIRECTORY) + set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY BUILD_RPATH "${LIB_DIR}") + set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY INSTALL_RPATH "${LIB_DIR}") ++ list(APPEND _tpl_libdirs "${LIB_DIR}") + else() + message(WARNING "${LIBNAME_UPPER} library not found at specified path: ${lib}") + endif() +@@ -287,6 +331,21 @@ function(setup_tpl LIBNAME) + + target_link_libraries(${PROJECT_NAME} PUBLIC ${TPL_${LIBNAME_UPPER}_LIBRARIES}) + target_include_directories(${PROJECT_NAME} PUBLIC ${TPL_${LIBNAME_UPPER}_INCLUDE_DIRS}) ++ # Record dependency dirs for export hints (include likely under /include; libdir likely under /lib) ++ foreach(_d IN LISTS _tpl_libdirs TPL_${LIBNAME_UPPER}_INCLUDE_DIRS) ++ if(_d) ++ list(APPEND HYPRE_DEPENDENCY_DIRS "${_d}") ++ # Also add the parent directory as a candidate install prefix ++ get_filename_component(_parent "${_d}" DIRECTORY) ++ list(APPEND HYPRE_DEPENDENCY_DIRS "${_parent}") ++ endif() ++ endforeach() ++ list(REMOVE_DUPLICATES HYPRE_DEPENDENCY_DIRS) ++ set(HYPRE_DEPENDENCY_DIRS "${HYPRE_DEPENDENCY_DIRS}" CACHE INTERNAL "" FORCE) ++ if(${LIBNAME_UPPER} STREQUAL "UMPIRE") ++ fixup_umpire_cuda_runtime() ++ check_umpire_c_interface() ++ endif() + else() + # Use find_package (prefer CONFIG). Provide clearer error for libraries when missing. + find_package(${LIBNAME} CONFIG) +@@ -296,13 +355,33 @@ function(setup_tpl LIBNAME) + + if(${LIBNAME} STREQUAL "caliper") + set(HYPRE_NEEDS_CXX TRUE PARENT_SCOPE) ++ elseif(${LIBNAME} STREQUAL "umpire") ++ set(HYPRE_NEEDS_CXX TRUE PARENT_SCOPE) + endif() + + if(TARGET ${LIBNAME}::${LIBNAME}) +- target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBNAME}::${LIBNAME}) ++ if(${LIBNAME_UPPER} STREQUAL "UMPIRE") ++ target_link_libraries(${PROJECT_NAME} PRIVATE ${LIBNAME}::${LIBNAME}) ++ get_target_property(_UMPIRE_INCLUDES ${LIBNAME}::${LIBNAME} INTERFACE_INCLUDE_DIRECTORIES) ++ if(_UMPIRE_INCLUDES) ++ target_include_directories(${PROJECT_NAME} PUBLIC ${_UMPIRE_INCLUDES}) ++ endif() ++ fixup_umpire_cuda_runtime() ++ else() ++ target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBNAME}::${LIBNAME}) ++ endif() + message(STATUS "Found ${LIBNAME} target: ${LIBNAME}::${LIBNAME}") + elseif(TARGET ${LIBNAME}) +- target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBNAME}) ++ if(${LIBNAME_UPPER} STREQUAL "UMPIRE") ++ target_link_libraries(${PROJECT_NAME} PRIVATE ${LIBNAME}) ++ get_target_property(_UMPIRE_INCLUDES ${LIBNAME} INTERFACE_INCLUDE_DIRECTORIES) ++ if(_UMPIRE_INCLUDES) ++ target_include_directories(${PROJECT_NAME} PUBLIC ${_UMPIRE_INCLUDES}) ++ endif() ++ fixup_umpire_cuda_runtime() ++ else() ++ target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBNAME}) ++ endif() + message(STATUS "Found ${LIBNAME} target: ${LIBNAME}") + else() + message(FATAL_ERROR "${LIBNAME} target not found. Please check your ${LIBNAME} installation") +@@ -329,6 +408,11 @@ function(setup_tpl LIBNAME) + endif() + + set(${LIBNAME_UPPER}_FOUND TRUE PARENT_SCOPE) ++ ++ # Run C interface check when Umpire is enabled and found via any path ++ if(${LIBNAME_UPPER} STREQUAL "UMPIRE") ++ check_umpire_c_interface() ++ endif() + endif() + endfunction() + +@@ -374,6 +458,120 @@ function(setup_tpl_or_internal LIB_NAME) + endif() + endfunction() + ++# Verify that Umpire provides the C interface headers by compiling a tiny C program ++function(check_umpire_c_interface) ++ if(NOT HYPRE_ENABLE_UMPIRE) ++ return() ++ endif() ++ ++ # Gather include directories for Umpire ++ set(_umpire_includes) ++ if(TARGET umpire::umpire) ++ get_target_property(_umpire_includes umpire::umpire INTERFACE_INCLUDE_DIRECTORIES) ++ elseif(TARGET umpire) ++ get_target_property(_umpire_includes umpire INTERFACE_INCLUDE_DIRECTORIES) ++ elseif(TPL_UMPIRE_INCLUDE_DIRS) ++ set(_umpire_includes ${TPL_UMPIRE_INCLUDE_DIRS}) ++ endif() ++ ++ if(NOT _umpire_includes) ++ # Try to locate the header path as a last resort ++ find_path(_umpire_hdr_dir ++ NAMES umpire/interface/c_fortran/umpire.h ++ HINTS ${HYPRE_DEPENDENCY_DIRS} ++ ) ++ if(_umpire_hdr_dir) ++ list(APPEND _umpire_includes ${_umpire_hdr_dir}) ++ endif() ++ ++ endif() ++ ++ ++ include(CheckCSourceCompiles) ++ ++ # Preserve and set required includes for the compile test ++ set(_old_required_includes "${CMAKE_REQUIRED_INCLUDES}") ++ set(CMAKE_REQUIRED_INCLUDES ${_umpire_includes}) ++ ++ set(_code "#include \"umpire/interface/c_fortran/umpire.h\"\nint main(void) { umpire_resourcemanager rm; (void)rm; return 0; }") ++ check_c_source_compiles("${_code}" UMPIRE_HAS_C_INTERFACE) ++ ++ # Restore CMAKE_REQUIRED_INCLUDES ++ set(CMAKE_REQUIRED_INCLUDES "${_old_required_includes}") ++ ++ if(NOT UMPIRE_HAS_C_INTERFACE) ++ message(FATAL_ERROR ++ "Umpire does not appear to provide the C interface headers.\n" ++ "Failed to compile a test including 'umpire/interface/c_fortran/umpire.h'.\n" ++ "Ensure Umpire is built with its C interface enabled (e.g., -DUMPIRE_ENABLE_C=ON) and that headers are visible in the include path.\n" ++ "For manual Umpire builds, see https://hypre.readthedocs.io/en/latest/ch-misc.html#building-umpire\n") ++ else() ++ message(STATUS "Verified Umpire C interface headers are available.") ++ endif() ++endfunction() ++ ++# Fix up BLT/Umpire CUDA runtime linkage to use CUDA::cudart instead of legacy cuda_runtime ++function(fixup_umpire_cuda_runtime) ++ # Ensure BLT 'cuda_runtime' interface resolves to CUDA::cudart so shared links do not emit legacy -lcuda_runtime ++ if(HYPRE_ENABLE_CUDA) ++ find_package(CUDAToolkit REQUIRED) ++ if(TARGET cuda_runtime) ++ get_target_property(_iface cuda_runtime INTERFACE_LINK_LIBRARIES) ++ if(_iface) ++ set(_fixed_iface) ++ foreach(_lib IN LISTS _iface) ++ if(_lib STREQUAL "cuda_runtime") ++ list(APPEND _fixed_iface CUDA::cudart) ++ else() ++ list(APPEND _fixed_iface ${_lib}) ++ endif() ++ endforeach() ++ set_target_properties(cuda_runtime PROPERTIES INTERFACE_LINK_LIBRARIES "${_fixed_iface}") ++ else() ++ target_link_libraries(cuda_runtime INTERFACE CUDA::cudart) ++ endif() ++ if(NOT TARGET blt::cuda_runtime) ++ add_library(blt::cuda_runtime ALIAS cuda_runtime) ++ endif() ++ else() ++ add_library(cuda_runtime INTERFACE IMPORTED) ++ target_link_libraries(cuda_runtime INTERFACE CUDA::cudart) ++ add_library(blt::cuda_runtime ALIAS cuda_runtime) ++ endif() ++ ++ # Replace any legacy 'cuda_runtime' link items on umpire/camp targets with CUDA::cudart ++ foreach(_tgt IN ITEMS camp umpire umpire_resource umpire_strategy umpire_op umpire_event umpire_util umpire_interface) ++ if(TARGET ${_tgt}) ++ get_target_property(_ll ${_tgt} LINK_LIBRARIES) ++ if(_ll) ++ set(_new_ll) ++ foreach(_l IN LISTS _ll) ++ if(_l STREQUAL "cuda_runtime") ++ list(APPEND _new_ll CUDA::cudart) ++ else() ++ list(APPEND _new_ll ${_l}) ++ endif() ++ endforeach() ++ set_target_properties(${_tgt} PROPERTIES LINK_LIBRARIES "${_new_ll}") ++ endif() ++ ++ get_target_property(_ill ${_tgt} INTERFACE_LINK_LIBRARIES) ++ if(_ill) ++ set(_new_ill) ++ foreach(_l IN LISTS _ill) ++ if(_l STREQUAL "cuda_runtime") ++ list(APPEND _new_ill CUDA::cudart) ++ else() ++ list(APPEND _new_ill ${_l}) ++ endif() ++ endforeach() ++ set_target_properties(${_tgt} PROPERTIES INTERFACE_LINK_LIBRARIES "${_new_ill}") ++ endif() ++ endif() ++ endforeach() ++ endif() ++endfunction() ++ + # Function to setup FEI (to be phased out) + function(setup_fei) + if (HYPRE_USING_FEI) +@@ -425,7 +623,7 @@ function(add_hypre_executable SRC_FILE DEP_SRC_FILE) + if (HYPRE_USING_CUDA) + set_source_files_properties(${SRC_FILENAME} PROPERTIES LANGUAGE CUDA) + if (DEP_SRC_FILE) +- set_source_files_properties(${DEP_SRC_FILENAME} PROPERTIES LANGUAGE CUDA) ++ set_source_files_properties(${DEP_SRC_FILENAME} PROPERTIES LANGUAGE CUDA) + endif () + endif () + +@@ -513,24 +711,22 @@ function(add_hypre_executables EXE_SRCS) + endforeach() + endfunction() + +-# Function to add a tags target if etags is found ++# Function to add a tags target if Universal Ctags is found + function(add_hypre_target_tags) +- find_program(ETAGS_EXECUTABLE etags) +- if(ETAGS_EXECUTABLE) ++ find_program(CTAGS_EXECUTABLE ctags) ++ if(CTAGS_EXECUTABLE) + add_custom_target(tags +- COMMAND find ${CMAKE_CURRENT_SOURCE_DIR} +- -type f +- "(" -name "*.h" -o -name "*.c" -o -name "*.cpp" +- -o -name "*.hpp" -o -name "*.cxx" +- -o -name "*.f" -o -name "*.f90" ")" +- -not -path "*/build/*" +- -print | ${ETAGS_EXECUTABLE} +- --declarations +- --ignore-indentation +- --no-members +- - +- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +- COMMENT "Generating TAGS file with etags" ++ COMMAND ${CTAGS_EXECUTABLE} -e -R ++ --languages=C,C++,CUDA ++ --langmap=C++:+.hip ++ --c-kinds=+p ++ --c++-kinds=+p ++ --extras=+q ++ --exclude=.git ++ --exclude=build ++ -o TAGS . ++ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ++ COMMENT "Generating TAGS file with Universal Ctags" + VERBATIM + ) + endif() +@@ -704,6 +900,13 @@ macro(setup_mixed_precision_compilation module_name) + ${CMAKE_SOURCE_DIR}/matrix_matrix + ${CMAKE_SOURCE_DIR}/multivector + ) ++ # Set position independent code for shared library builds ++ # Object libraries need explicit -fPIC when used in shared libraries ++ if(BUILD_SHARED_LIBS) ++ set_target_properties(${module_name}_${precision} PROPERTIES ++ POSITION_INDEPENDENT_CODE ON ++ ) ++ endif() + # Link to MPI if it's enabled + if(HYPRE_ENABLE_MPI) + target_link_libraries(${module_name}_${precision} PRIVATE MPI::MPI_C) +diff --git a/src/parcsr_ls/CMakeLists.txt b/src/parcsr_ls/CMakeLists.txt +index eb4ac565b..19829fdd5 100644 +--- a/src/parcsr_ls/CMakeLists.txt ++++ b/src/parcsr_ls/CMakeLists.txt +@@ -23,6 +23,7 @@ endif() + set(REGULAR_SRCS + amg_hybrid.c + aux_interp.c ++ dsuperlu.c + F90_hypre_laplace.c + F90_HYPRE_parcsr_amg.c + F90_HYPRE_parcsr_bicgstab.c +diff --git a/src/utilities/_hypre_utilities.h b/src/utilities/_hypre_utilities.h +index 66cb71c19..fca531d96 100644 +--- a/src/utilities/_hypre_utilities.h ++++ b/src/utilities/_hypre_utilities.h +@@ -18,6 +18,80 @@ + extern "C" { + #endif + ++/****************************************************************************** ++ * Copyright (c) 1998 Lawrence Livermore National Security, LLC and other ++ * HYPRE Project Developers. See the top-level COPYRIGHT file for details. ++ * ++ * SPDX-License-Identifier: (Apache-2.0 OR MIT) ++ ******************************************************************************/ ++ ++#ifndef HYPRE_MAGMA_HEADER ++#define HYPRE_MAGMA_HEADER ++ ++#include "HYPRE_config.h" ++ ++#if defined(HYPRE_USING_MAGMA) ++ ++#include "error.h" ++ ++#ifdef __cplusplus ++extern "C++" ++{ ++#endif ++ ++#if !defined(MAGMA_GLOBAL) ++#if !defined(ADD_) ++#define ADD_ ++#endif ++#endif ++#include ++#include ++ ++#ifdef __cplusplus ++} ++#endif ++ ++/*-------------------------------------------------------------------------- ++ * Wrappers to MAGMA functions according to hypre's precision ++ *--------------------------------------------------------------------------*/ ++ ++#if defined(HYPRE_COMPLEX) || defined(HYPRE_LONG_DOUBLE) ++#error "MAGMA interface does not support (yet) HYPRE_COMPLEX and HYPRE_LONG_DOUBLE" ++ ++#elif defined(HYPRE_SINGLE) ++#define hypre_magma_getrf_gpu magma_sgetrf_gpu ++#define hypre_magma_getrf_nat magma_sgetrf_native ++#define hypre_magma_getrs_gpu magma_sgetrs_gpu ++#define hypre_magma_getri_gpu magma_sgetri_gpu ++#define hypre_magma_getri_nb magma_get_dgetri_nb ++#define hypre_magma_gemv magma_sgemv ++ ++#else /* Double precision */ ++#define hypre_magma_getrf_gpu magma_dgetrf_gpu ++#define hypre_magma_getrf_nat magma_dgetrf_native ++#define hypre_magma_getrs_gpu magma_dgetrs_gpu ++#define hypre_magma_getri_gpu magma_dgetri_gpu ++#define hypre_magma_getri_nb magma_get_sgetri_nb ++#define hypre_magma_gemv magma_dgemv ++ ++#endif ++ ++/*-------------------------------------------------------------------------- ++ * General wrapper call to MAGMA functions ++ *--------------------------------------------------------------------------*/ ++ ++#define HYPRE_MAGMA_CALL(call) do { \ ++ magma_int_t err = call; \ ++ if (MAGMA_SUCCESS != err) { \ ++ printf("MAGMA ERROR (code = %d) at %s:%d\n", \ ++ err, __FILE__, __LINE__); \ ++ hypre_assert(0); \ ++ } } while(0) ++ ++#define HYPRE_MAGMA_VCALL(call) call ++ ++#endif /* HYPRE_USING_MAGMA */ ++#endif /* HYPRE_MAGMA_HEADER */ + /****************************************************************************** + * Copyright (c) 1998 Lawrence Livermore National Security, LLC and other + * HYPRE Project Developers. See the top-level COPYRIGHT file for details. +@@ -429,77 +503,6 @@ typedef struct + * SPDX-License-Identifier: (Apache-2.0 OR MIT) + ******************************************************************************/ + +-#ifndef HYPRE_MAGMA_HEADER +-#define HYPRE_MAGMA_HEADER +- +-#include "HYPRE_config.h" +- +-#if defined(HYPRE_USING_MAGMA) +- +-#include "error.h" +- +-#ifdef __cplusplus +-extern "C++" +-{ +-#endif +- +-#if !defined(MAGMA_GLOBAL) +-#define ADD_ +-#endif +-#include +- +-#ifdef __cplusplus +-} +-#endif +- +-/*-------------------------------------------------------------------------- +- * Wrappers to MAGMA functions according to hypre's precision +- *--------------------------------------------------------------------------*/ +- +-#if defined(HYPRE_COMPLEX) || defined(HYPRE_LONG_DOUBLE) +-#error "MAGMA interface does not support (yet) HYPRE_COMPLEX and HYPRE_LONG_DOUBLE" +- +-#elif defined(HYPRE_SINGLE) +-#define hypre_magma_getrf_gpu magma_sgetrf_gpu +-#define hypre_magma_getrf_nat magma_sgetrf_native +-#define hypre_magma_getrs_gpu magma_sgetrs_gpu +-#define hypre_magma_getri_gpu magma_sgetri_gpu +-#define hypre_magma_getri_nb magma_get_dgetri_nb +-#define hypre_magma_gemv magma_sgemv +- +-#else /* Double precision */ +-#define hypre_magma_getrf_gpu magma_dgetrf_gpu +-#define hypre_magma_getrf_nat magma_dgetrf_native +-#define hypre_magma_getrs_gpu magma_dgetrs_gpu +-#define hypre_magma_getri_gpu magma_dgetri_gpu +-#define hypre_magma_getri_nb magma_get_sgetri_nb +-#define hypre_magma_gemv magma_dgemv +- +-#endif +- +-/*-------------------------------------------------------------------------- +- * General wrapper call to MAGMA functions +- *--------------------------------------------------------------------------*/ +- +-#define HYPRE_MAGMA_CALL(call) do { \ +- magma_int_t err = call; \ +- if (MAGMA_SUCCESS != err) { \ +- printf("MAGMA ERROR (code = %d) at %s:%d\n", \ +- err, __FILE__, __LINE__); \ +- hypre_assert(0); \ +- } } while(0) +- +-#define HYPRE_MAGMA_VCALL(call) call +- +-#endif /* HYPRE_USING_MAGMA */ +-#endif /* HYPRE_MAGMA_HEADER */ +-/****************************************************************************** +- * Copyright (c) 1998 Lawrence Livermore National Security, LLC and other +- * HYPRE Project Developers. See the top-level COPYRIGHT file for details. +- * +- * SPDX-License-Identifier: (Apache-2.0 OR MIT) +- ******************************************************************************/ +- + #ifndef hypre_MATRIX_STATS_HEADER + #define hypre_MATRIX_STATS_HEADER + +@@ -1725,11 +1728,7 @@ typedef struct + + } hypre_TimingType; + +-#ifdef HYPRE_TIMING_GLOBALS +-hypre_TimingType *hypre_global_timing = NULL; +-#else + extern hypre_TimingType *hypre_global_timing; +-#endif + + /*------------------------------------------------------- + * Accessor functions +diff --git a/src/utilities/headers b/src/utilities/headers +index 841f787ff..4a615cd5e 100755 +--- a/src/utilities/headers ++++ b/src/utilities/headers +@@ -37,11 +37,11 @@ extern "C" { + # Structures and prototypes + #=========================================================================== + ++cat magma.h >> $INTERNAL_HEADER + cat handle.h >> $INTERNAL_HEADER + cat state.h >> $INTERNAL_HEADER + cat general.h >> $INTERNAL_HEADER + cat base.h >> $INTERNAL_HEADER +-cat magma.h >> $INTERNAL_HEADER + cat matrix_stats.h >> $INTERNAL_HEADER + cat printf.h >> $INTERNAL_HEADER + cat error.h >> $INTERNAL_HEADER +diff --git a/src/utilities/magma.h b/src/utilities/magma.h +index a4e5ac9f1..1c75c6244 100644 +--- a/src/utilities/magma.h ++++ b/src/utilities/magma.h +@@ -20,8 +20,11 @@ extern "C++" + #endif + + #if !defined(MAGMA_GLOBAL) ++#if !defined(ADD_) + #define ADD_ + #endif ++#endif ++#include + #include + + #ifdef __cplusplus +diff --git a/src/utilities/timing.c b/src/utilities/timing.c +index d9cf2bff8..662fb5ca3 100644 +--- a/src/utilities/timing.c ++++ b/src/utilities/timing.c +@@ -12,10 +12,15 @@ + *****************************************************************************/ + + #define HYPRE_TIMING +-#define HYPRE_TIMING_GLOBALS + #include "_hypre_utilities.h" + #include "timing.h" + ++/* Global variable for timing */ ++/* guard definition of global variables to avoid linker errors for multiprecision build */ ++#if defined (hypre_DEFINE_GLOBAL) ++hypre_TimingType *hypre_global_timing = NULL; ++#endif ++ + /*------------------------------------------------------- + * Timing macros + *-------------------------------------------------------*/ +diff --git a/src/utilities/timing.h b/src/utilities/timing.h +index 0d3d4d6e4..6cde306ca 100644 +--- a/src/utilities/timing.h ++++ b/src/utilities/timing.h +@@ -88,11 +88,7 @@ typedef struct + + } hypre_TimingType; + +-#ifdef HYPRE_TIMING_GLOBALS +-hypre_TimingType *hypre_global_timing = NULL; +-#else + extern hypre_TimingType *hypre_global_timing; +-#endif + + /*------------------------------------------------------- + * Accessor functions diff --git a/repos/spack_repo/builtin/packages/hypre/package.py b/repos/spack_repo/builtin/packages/hypre/package.py index 8517f7411d8..e6172d9d1df 100644 --- a/repos/spack_repo/builtin/packages/hypre/package.py +++ b/repos/spack_repo/builtin/packages/hypre/package.py @@ -3,15 +3,17 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os +from itertools import product -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.build_systems.autotools import AutotoolsBuilder, AutotoolsPackage +from spack_repo.builtin.build_systems.cmake import CMakeBuilder, CMakePackage from spack_repo.builtin.build_systems.cuda import CudaPackage from spack_repo.builtin.build_systems.rocm import ROCmPackage from spack.package import * -class Hypre(AutotoolsPackage, CudaPackage, ROCmPackage): +class Hypre(CMakePackage, AutotoolsPackage, CudaPackage, ROCmPackage): """Hypre is a library of high performance preconditioners that features parallel multigrid methods for both structured and unstructured grid problems.""" @@ -21,13 +23,20 @@ class Hypre(AutotoolsPackage, CudaPackage, ROCmPackage): git = "https://github.com/hypre-space/hypre.git" tags = ["e4s", "radiuss"] - maintainers("ulrikeyang", "osborn9", "victorapm", "balay") + maintainers("victorapm", "rfalgout", "oseikuffuor1", "liruipeng", "waynemitchell", "balay") test_requires_compiler = True - license("MIT") + # License + license("Apache-2.0 OR MIT") + # Support both CMake and Autotools. CMake is available and default only for v3+. + build_system(conditional("cmake", when="@3:"), "autotools", default="cmake") + + # Package versions version("develop", branch="master") + version("3.1.0", sha256="a6879ae9375d95c26afd97141d61e7a8092807333bf40cd180b385aed7351b2d") + version("3.0.0", sha256="d9dbfa34ebd07af1641f04b06338c7808b1f378e2d7d5d547514db9f11dffc26") version("2.33.0", sha256="0f9103c34bce7a5dcbdb79a502720fc8aab4db9fd0146e0791cde7ec878f27da") version("2.32.0", sha256="2277b6f01de4a7d0b01cfe12615255d9640eaa02268565a7ce1a769beab25fa1") version("2.31.0", sha256="9a7916e2ac6615399de5010eb39c604417bb3ea3109ac90e199c5c63b0cb4334") @@ -60,35 +69,82 @@ class Hypre(AutotoolsPackage, CudaPackage, ROCmPackage): version("2.10.0b", sha256="b55dbdc692afe5a00490d1ea1c38dd908dae244f7bdd7faaf711680059824c11") variant("shared", default=True, description="Build shared library (disables static library)") + variant( + "pic", default=False, when="@2.21: ~shared", description="Build position independent code" + ) # Use internal SuperLU routines for FEI - version 2.12.1 and below - variant("internal-superlu", default=False, description="Use internal SuperLU routines") variant( - "superlu-dist", default=False, description="Activates support for SuperLU_Dist library" + "internal-superlu", + default=False, + when="@:2.12.1", + description="Use internal SuperLU routines", + ) + variant( + "superlu-dist", + default=False, + when="@2.13:", + description="Activates support for SuperLU_Dist library", ) variant("lapack", default=True, description="Use external blas/lapack") variant("int64", default=False, description="Use 64bit integers") - variant("mixedint", default=False, description="Use 64bit integers while reducing memory use") + variant( + "mixedint", + default=False, + when="@2.16:", + description="Use 64bit integers while reducing memory use", + ) variant("complex", default=False, description="Use complex values") - variant("gpu-aware-mpi", default=False, description="Enable GPU-aware MPI support") - variant("gpu-profiling", default=False, description="Enable GPU profiling markers support") + variant( + "gpu-aware-mpi", default=False, when="@2.18:", description="Enable GPU-aware MPI support" + ) + variant( + "gpu-profiling", + default=False, + when="@2.21:", + description="Enable GPU profiling markers support", + ) variant("mpi", default=True, description="Enable MPI support") variant("openmp", default=False, description="Enable OpenMP support") variant("debug", default=False, description="Build debug instead of optimized version") variant("unified-memory", default=False, description="Use unified memory") - variant("fortran", default=True, description="Enables fortran bindings") + variant("fortran", default=False, description="Enables fortran bindings") variant("gptune", default=False, description="Add the GPTune hookup code") - variant("umpire", default=False, description="Enable Umpire support") - variant("sycl", default=False, description="Enable SYCL support") - variant("magma", default=False, description="Enable MAGMA interface") + variant("umpire", default=False, when="@2.21:", description="Enable Umpire support") + variant("sycl", default=False, when="@2.24:", description="Enable SYCL support") + variant("magma", default=False, when="@2.29:", description="Enable MAGMA interface") variant("caliper", default=False, description="Enable Caliper support") variant( "precision", default="double", - values=("single", "double", "longdouble"), + values=("single", "double", "longdouble", conditional("mixed", when="@3:")), multi=False, - description="Floating point precision", when="@2.12.1:", + description="Floating point precision", ) + variant( + "cxxstd", + default="17", + values=("11", "14", "17", "20", "23"), + multi=False, + description="C++ language standard (for GPU builds)", + ) + + # Patch to fix GPU+TPLs and freebsd build issues + patch( + "https://github.com/hypre-space/hypre/pull/1463.patch?full_index=1", + sha256="cd0b67e0c03f9392a305c2263099929898ea7f49bd5006ad69209508e947903b", + when="@3.1.0", + ) + + # Patch to fix hip build (+rocm) via CMake for hypre v3.0.0 + patch( + "https://github.com/hypre-space/hypre/pull/1394.patch?full_index=1", + sha256="c9a98fb6aa6469c830fa7c12548c3be532d54bee5b7841e1550370ef497c5490", + when="@3.0.0 +rocm", + ) + + # Patch to fix build with TPLs and mixed precision + patch("hypre30000-tpls+mixedprec.patch", when="@3.0.0") # Patch to add gptune hookup codes patch("ij_gptune.patch", when="+gptune@2.19.0") @@ -113,99 +169,253 @@ class Hypre(AutotoolsPackage, CudaPackage, ROCmPackage): def patch(self): # fix sequential compilation in 'src/seq_mv' filter_file("\tmake", "\t$(MAKE)", "src/seq_mv/Makefile") + # Compiler dependencies depends_on("c", type="build") - depends_on("cxx", type="build", when="+cuda") - depends_on("cxx", type="build", when="+rocm") - depends_on("cxx", type="build", when="+sycl") + for dep in ("cuda", "rocm", "sycl", "caliper"): + depends_on("cxx", type="build", when=f"+{dep}") depends_on("fortran", type="build", when="+fortran") + # If using CMake, we require at least the following version + with when("build_system=cmake"): + depends_on("cmake@3.21:", type="build") + + # General dependencies and conflicts depends_on("mpi", when="+mpi") depends_on("blas", when="+lapack") depends_on("lapack", when="+lapack") depends_on("magma", when="+magma") depends_on("superlu-dist", when="+superlu-dist+mpi") - depends_on("rocsparse", when="+rocm") - depends_on("rocthrust", when="+rocm") - depends_on("rocrand", when="+rocm") - depends_on("rocprim", when="+rocm") - depends_on("rocsolver", when="@2.29.0: +rocm") - depends_on("rocblas", when="@2.29.0: +rocm") - depends_on("hipblas", when="+rocm +superlu-dist") - depends_on("umpire", when="+umpire") - depends_on("umpire+rocm", when="+umpire+rocm") - depends_on("umpire+cuda", when="+umpire+cuda") depends_on("caliper", when="+caliper") - - gpu_pkgs = ["magma", "umpire"] - for sm_ in CudaPackage.cuda_arch_values: - for pkg in gpu_pkgs: - depends_on(f"{pkg}+cuda cuda_arch={sm_}", when=f"+{pkg}+cuda cuda_arch={sm_}") - - for gfx in ROCmPackage.amdgpu_targets: - for pkg in gpu_pkgs: - depends_on(f"{pkg}+rocm amdgpu_target={gfx}", when=f"+{pkg}+rocm amdgpu_target={gfx}") - - # hypre@:2.28.0 uses deprecated cuSPARSE functions/types (e.g. csrsv2Info_t). - depends_on("cuda@:11", when="@:2.28.0+cuda") - - # Conflicts - conflicts("+cuda", when="+int64") - conflicts("+rocm", when="+int64") - conflicts("+rocm", when="@:2.20") - conflicts("+unified-memory", when="~cuda~rocm") conflicts("+gptune", when="~mpi") - # Umpire device allocator exports device code, which requires static libs - conflicts("+umpire", when="+shared+cuda") + conflicts( + "+lapack", when="+int64", msg="64-bit integers + external lapack work only with +mixedint" + ) # Patch to build shared libraries on Darwin does not apply to # versions before 2.13.0 conflicts("+shared@:2.12 platform=darwin") - # Version conflicts - # Option added in v2.13.0 - conflicts("+superlu-dist", when="@:2.12") + # GPU-related dependencies and conflicts + gpu_pkgs = ["magma", "umpire", "superlu-dist"] + conflicts("+unified-memory", when="~cuda~rocm~sycl") + conflicts("+gpu-profiling", when="~cuda~rocm~sycl") + conflicts("+gpu-aware-mpi", when="~cuda~rocm~sycl") + with when("+cuda"): + depends_on("umpire+c+cuda", when="@3:") + requires("+umpire", when="@3:") + + conflicts("@:2.18") + conflicts("cuda_arch=none") + conflicts("precision=longdouble") + conflicts("precision=mixed") + conflicts("+shared +umpire", when="@:2") + conflicts("+int64", msg="Use +mixedint for 64-bit integer support for GPUs!") + conflicts("+rocm", msg="CUDA and ROCm are mutually exclusive") + conflicts("+sycl", msg="CUDA and SYCL are mutually exclusive") + conflicts("cxxstd=11", when="^cuda@13:") + 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_}") + + with when("+rocm"): + depends_on("umpire+c+rocm", when="@3:") + requires("+umpire", when="@3:") + + depends_on("rocsparse") + depends_on("rocthrust") + depends_on("rocrand") + depends_on("rocprim") + depends_on("rocsolver", when="@2.29.0:") + depends_on("rocblas", when="@2.29.0:") + depends_on("hipblas", when="+superlu-dist") + depends_on("hip@:6", when="@:3.0.0") + + conflicts("@:2.20") + conflicts("amdgpu_target=none") + conflicts("precision=longdouble") + conflicts("precision=mixed") + conflicts("+int64", msg="Use +mixedint for 64-bit integer support for GPUs!") + conflicts("+sycl", msg="ROCm and SYCL are mutually exclusive") + conflicts("cxxstd=11", when="^hip@7:") + conflicts("cxxstd=14", when="^hip@7:") + for pkg, gfx in product(gpu_pkgs, ROCmPackage.amdgpu_targets): + requires(f"^{pkg} amdgpu_target={gfx}", when=f"+{pkg} amdgpu_target={gfx}") + + with when("+sycl"): + requires("%c,cxx=oneapi", msg="SYCL backend must be compiled with oneapi compilers") + + depends_on("intel-oneapi-compilers") + depends_on("intel-oneapi-mkl") + depends_on("intel-oneapi-dpl") + + conflicts("precision=longdouble") + conflicts("precision=mixed") + conflicts("+int64", msg="Use +mixedint for 64-bit integer support for GPUs!") + conflicts("+gpu-profiling", msg="GPU profiling not available for SYCL!") - # Internal SuperLU Option removed in v2.13.0 - conflicts("+internal-superlu", when="@2.13.0:") + def url_for_version(self, version): + if version >= Version("2.12.0"): + url = f"https://github.com/hypre-space/hypre/archive/v{version}.tar.gz" + else: + url = ( + f"http://computing.llnl.gov/project/linear_solvers/download/hypre-{version}.tar.gz" + ) - # Option added in v2.16.0 - conflicts("+mixedint", when="@:2.15") + return url - # Options added in v2.18.0 - conflicts("+gpu-aware-mpi", when="@:2.17") - conflicts("+gpu-profiling+cuda", when="@:2.17") + # build/install phases are implemented in the AutotoolsBuilder + extra_install_tests = join_path("src", "examples") - # Options added in v2.21.0 - conflicts("+umpire", when="@:2.20") - conflicts("+gpu-profiling+rocm", when="@:2.20") + @run_after("install") + def cache_test_sources(self): + cache_extra_test_sources(self, self.extra_install_tests) - # Option added in v2.24.0 - conflicts("+sycl", when="@:2.23") + # Customize the makefile to use the installed package + makefile = join_path(install_test_root(self), self.extra_install_tests, "Makefile") + filter_file(r"^HYPRE_DIR\s* =.*", f"HYPRE_DIR = {self.prefix}", makefile) + filter_file(r"^CC\s*=.*", f"CC = {os.environ['CC']}", makefile) + if "cxx" in self.spec: + filter_file(r"^CXX\s*=.*", f"CXX = {os.environ['CXX']}", makefile) + if self.spec.satisfies("+fortran"): + filter_file(r"^F77\s*=.*", f"F77 = {os.environ['F77']}", makefile) - # Option added in v2.29.0 - conflicts("+magma", when="@:2.28") + @property + def _cached_tests_work_dir(self): + """The working directory for cached test sources.""" + return join_path(self.test_suite.current_test_cache_dir, self.extra_install_tests) - # GPU checks - conflicts("+cuda", when="+rocm", msg="CUDA and ROCm are mutually exclusive") - conflicts("+cuda", when="+sycl", msg="CUDA and SYCL are mutually exclusive") - conflicts("+rocm", when="+sycl", msg="ROCm and SYCL are mutually exclusive") - conflicts("+gpu-profiling", when="~cuda~rocm", msg="GPU profiling requires CUDA or ROCm") + def test_bigint(self): + """build and run bigint tests""" + if self.spec.satisfies("~mpi"): + raise SkipTest("Package must be installed with +mpi") - configure_directory = "src" + # build and run cached examples + with working_dir(self._cached_tests_work_dir): + make = which("make", required=True) + make("bigint") - def url_for_version(self, version): - if version >= Version("2.12.0"): - url = f"https://github.com/hypre-space/hypre/archive/v{version}.tar.gz" - else: - url = ( - f"http://computing.llnl.gov/project/linear_solvers/download/hypre-{version}.tar.gz" + for name in ["ex5big", "ex15big"]: + with test_part(self, f"test_bigint_{name}", f"ensure {name} runs"): + exe = which(name) + if exe is None: + raise SkipTest(f"{name} does not exist in version {self.version}") + exe() + + @property + def headers(self): + """Export the main hypre header, HYPRE.h; all other headers can be found + in the same directory. + Sample usage: spec['hypre'].headers.cpp_flags + """ + hdrs = find_headers("HYPRE", self.prefix.include, recursive=False) + return hdrs or None + + @property + def libs(self): + """Export the hypre library. + Sample usage: spec['hypre'].libs.ld_flags + """ + is_shared = self.spec.satisfies("+shared") + libs = find_libraries("libHYPRE", root=self.prefix, shared=is_shared, recursive=True) + return libs or None + + +# Builder implementations +class CMakeBuilder(CMakeBuilder): + root_cmakelists_dir = "src" + + def cmake_args(self): + pkg = self.pkg + spec = pkg.spec + args = [] + + # Library toggles + args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared")) + args.append(self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd")) + args.append(self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic")) + if spec.satisfies("+complex %gcc@14:"): + args.append(self.define("CMAKE_C_FLAGS", "-Wno-error=incompatible-pointer-types")) + + # Core toggles + args.append(self.define_from_variant("HYPRE_ENABLE_MPI", "mpi")) + args.append(self.define_from_variant("HYPRE_ENABLE_OPENMP", "openmp")) + args.append(self.define_from_variant("HYPRE_ENABLE_FORTRAN", "fortran")) + args.append(self.define_from_variant("HYPRE_ENABLE_COMPLEX", "complex")) + args.append(self.define_from_variant("HYPRE_ENABLE_BIGINT", "int64")) + args.append(self.define_from_variant("HYPRE_ENABLE_MIXEDINT", "mixedint")) + + # Floating point precision + args.append(self.define("HYPRE_ENABLE_SINGLE", spec.satisfies("precision=single"))) + args.append( + self.define("HYPRE_ENABLE_LONG_DOUBLE", spec.satisfies("precision=longdouble")) + ) + args.append(self.define("HYPRE_ENABLE_MIXED_PRECISION", spec.satisfies("precision=mixed"))) + + # External BLAS/LAPACK when +lapack: disable internal BLAS/LAPACK and + # pass external library paths. HYPRE_ENABLE_HYPRE_BLAS=ON means "use + # internal BLAS" + args.append(self.define("HYPRE_ENABLE_HYPRE_BLAS", spec.satisfies("~lapack"))) + args.append(self.define("HYPRE_ENABLE_HYPRE_LAPACK", spec.satisfies("~lapack"))) + if spec.satisfies("+lapack"): + args.append(self.define("TPL_BLAS_LIBRARIES", spec["blas"].libs.joined(";"))) + args.append(self.define("TPL_LAPACK_LIBRARIES", spec["lapack"].libs.joined(";"))) + + # GPU backends + args.append(self.define_from_variant("HYPRE_ENABLE_CUDA", "cuda")) + args.append(self.define_from_variant("HYPRE_ENABLE_HIP", "rocm")) + args.append(self.define_from_variant("HYPRE_ENABLE_SYCL", "sycl")) + if spec.satisfies("+cuda"): + args.append(self.define("CUDAToolkit_ROOT", self.spec["cuda"].prefix)) + if spec.satisfies("+rocm"): + args.append( + self.define("CMAKE_HIP_COMPILER", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang++") ) - return url + # GPU auxiliary options + args.append(self.define_from_variant("HYPRE_ENABLE_GPU_AWARE_MPI", "gpu-aware-mpi")) + args.append(self.define_from_variant("HYPRE_ENABLE_GPU_PROFILING", "gpu-profiling")) + args.append(self.define_from_variant("HYPRE_ENABLE_UNIFIED_MEMORY", "unified-memory")) + + # TPLs + args.append(self.define_from_variant("HYPRE_ENABLE_UMPIRE", "umpire")) + args.append(self.define_from_variant("HYPRE_ENABLE_CALIPER", "caliper")) + args.append(self.define_from_variant("HYPRE_ENABLE_DSUPERLU", "superlu-dist")) + args.append(self.define_from_variant("HYPRE_ENABLE_MAGMA", "magma")) + if spec.satisfies("+superlu-dist"): + inc_list = [self.spec["superlu-dist"].prefix.include] + if spec.satisfies("+rocm"): + inc_list.append(self.spec["hipblas"].prefix.include) + args.append(self.define("TPL_DSUPERLU_INCLUDE_DIRS", ";".join(inc_list))) + args.append(self.define("TPL_DSUPERLU_LIBRARIES", self.spec["superlu-dist"].libs)) + if spec.satisfies("+magma"): + args.append(self.define("TPL_MAGMA_INCLUDE_DIRS", self.spec["magma"].prefix.include)) + args.append(self.define("TPL_MAGMA_LIBRARIES", self.spec["magma"].libs)) + + # GPU architectures + cuda_arch_vals = spec.variants.get("cuda_arch", None) + if cuda_arch_vals and cuda_arch_vals.value: + arch_list = sorted(list(cuda_arch_vals.value)) + args.append(self.define("CMAKE_CUDA_ARCHITECTURES", ";".join(arch_list))) + + amdgpu_vals = spec.variants.get("amdgpu_target", None) + if amdgpu_vals and amdgpu_vals.value: + gfx_list = sorted(list(amdgpu_vals.value)) + args.append(self.define("CMAKE_HIP_ARCHITECTURES", ";".join(gfx_list))) + + return args + + +class AutotoolsBuilder(AutotoolsBuilder): + configure_directory = "src" def configure_args(self): - spec = self.spec - configure_args = [f"--prefix={prefix}"] + pkg = self.pkg + spec = pkg.spec + configure_args = [f"--prefix={pkg.prefix}"] # Note: --with-(lapack|blas)_libs= needs space separated list of names if spec.satisfies("+lapack"): @@ -232,31 +442,45 @@ def configure_args(self): else: configure_args.append("--without-MPI") - configure_args.extend(self.with_or_without("openmp")) + configure_args.extend(pkg.with_or_without("openmp")) if spec.satisfies("+int64"): configure_args.append("--enable-bigint") else: configure_args.append("--disable-bigint") - configure_args.extend(self.enable_or_disable("mixedint")) - - configure_args.extend(self.enable_or_disable("complex")) + configure_args.extend(pkg.enable_or_disable("debug")) + configure_args.extend(pkg.enable_or_disable("mixedint")) + configure_args.extend(pkg.enable_or_disable("complex")) + configure_args.extend(pkg.enable_or_disable("shared")) + configure_args.extend(pkg.enable_or_disable("unified-memory")) + configure_args.extend(pkg.enable_or_disable("gpu-aware-mpi")) + configure_args.extend(pkg.enable_or_disable("gpu-profiling")) + configure_args.extend(pkg.enable_or_disable("fortran")) + if spec.satisfies("+pic"): + configure_args.append("--with-extra-CFLAGS=-fPIC") + + if spec.satisfies("+complex %gcc@14:"): + configure_args.append("--with-extra-CFLAGS=-Wno-error=incompatible-pointer-types") + + if spec.satisfies("+cuda") or spec.satisfies("+rocm") or spec.satisfies("+sycl"): + configure_args.append(f"--with-cxxstandard={self.spec.variants['cxxstd'].value}") + if spec.satisfies("+pic"): + configure_args.append("--with-extra-CXXFLAGS=-fPIC") if spec.satisfies("precision=single"): configure_args.append("--enable-single") elif spec.satisfies("precision=longdouble"): configure_args.append("--enable-longdouble") - - if spec.satisfies("+shared"): - configure_args.append("--enable-shared") + elif spec.satisfies("precision=mixed"): + configure_args.append("--enable-mixed-precision") if spec.satisfies("~internal-superlu"): configure_args.append("--without-superlu") # MLI and FEI do not build without superlu on Linux configure_args.append("--without-mli") # FEI option was removed in hypre 2.17 - if self.version < Version("2.17.0"): + if pkg.version < Version("2.17.0"): configure_args.append("--without-fei") if spec.satisfies("+superlu-dist"): @@ -268,19 +492,20 @@ def configure_args(self): if spec.satisfies("+umpire"): configure_args.append("--with-umpire-include=%s" % spec["umpire"].prefix.include) - configure_args.append("--with-umpire-lib=%s" % spec["umpire"].libs) + configure_args.append("--with-umpire-lib-dirs=%s" % spec["umpire"].prefix.lib) + configure_args.append("--with-umpire-libs=umpire camp") if spec.satisfies("~cuda~rocm"): configure_args.append("--with-umpire-host") else: configure_args.append("--with-umpire") + else: + configure_args.append("--without-umpire") if spec.satisfies("+caliper"): configure_args.append("--with-caliper") configure_args.append("--with-caliper-include=%s" % spec["caliper"].prefix.include) configure_args.append("--with-caliper-lib=%s" % spec["caliper"].libs) - configure_args.extend(self.enable_or_disable("debug")) - if spec.satisfies("+cuda"): configure_args.append(f"--with-cuda-home={spec['cuda'].prefix}") configure_args.extend(["--with-cuda", "--enable-curand", "--enable-cusparse"]) @@ -311,7 +536,7 @@ def configure_args(self): if spec.satisfies("@2.29.0:"): rocm_pkgs.extend(["rocblas", "rocsolver"]) configure_args.extend(["--enable-rocblas", "--enable-rocsolver"]) - rocm_inc = " ".join(set(spec[pkg].headers.include_flags for pkg in rocm_pkgs)) + rocm_inc = " ".join(set(spec[pkg_].headers.include_flags for pkg_ in rocm_pkgs)) configure_args.extend( ["--enable-rocrand", "--enable-rocsparse", f"--with-extra-CUFLAGS={rocm_inc}"] ) @@ -327,122 +552,51 @@ def configure_args(self): if spec.satisfies("+sycl"): configure_args.append("--with-sycl") - sycl_compatible_compilers = ["icpx"] - if os.path.basename(self.compiler.cxx) not in sycl_compatible_compilers: - raise InstallError( - "Hypre's SYCL GPU Backend requires the oneAPI CXX (icpx) compiler." - ) - - if spec.satisfies("+unified-memory"): - configure_args.append("--enable-unified-memory") if spec.satisfies("+magma"): configure_args.append("--with-magma-include=%s" % spec["magma"].prefix.include) configure_args.append("--with-magma-lib=%s" % spec["magma"].libs) configure_args.append("--with-magma") - if spec.satisfies("+gpu-aware-mpi"): - configure_args.append("--enable-gpu-aware-mpi") - - if spec.satisfies("+gpu-profiling"): - configure_args.append("--enable-gpu-profiling") + return configure_args - configure_args.extend(self.enable_or_disable("fortran")) + def build(self, pkg, spec, prefix): + with working_dir("src"): + make() - return configure_args + def install(self, pkg, spec, prefix): + # Hypre's sources are staged under ./src so we'll have to manually cd into it + with working_dir("src"): + if pkg.run_tests: + make("check") + make("test") + Executable(join_path("test", "ij"))() + sstruct = Executable(join_path("test", "struct")) + sstruct() + sstruct("-in", "test/sstruct.in.default", "-solver", "40", "-rhsone") + make("install") + if spec.satisfies("+gptune"): + make("test") + mkdirp(pkg.prefix.bin) + install(join_path("test", "ij"), pkg.prefix.bin) def setup_build_environment(self, env: EnvironmentModifications) -> None: spec = self.spec - if spec.satisfies("+mpi"): + # Limit toolchain wrapper and flags to Autotools builds + if spec.satisfies("build_system=autotools +mpi"): env.set("CC", spec["mpi"].mpicc) env.set("CXX", spec["mpi"].mpicxx) if spec.satisfies("+fortran"): env.set("F77", spec["mpi"].mpif77) - if spec.satisfies("+cuda"): + if spec.satisfies("build_system=autotools +cuda"): env.set("CUDA_HOME", spec["cuda"].prefix) env.set("CUDA_PATH", spec["cuda"].prefix) # In CUDA builds hypre currently doesn't handle flags correctly env.append_flags("CXXFLAGS", "-O2" if spec.satisfies("~debug") else "-g") - if spec.satisfies("+rocm"): + if spec.satisfies("build_system=autotools +rocm"): # As of 2022/04/05, the following are set by 'llvm-amdgpu' and # override hypre's default flags, so we unset them. env.unset("CFLAGS") env.unset("CXXFLAGS") - - def build(self, spec, prefix): - with working_dir("src"): - make() - - def install(self, spec, prefix): - # Hypre's source is staged under ./src so we'll have to manually - # cd into it. - with working_dir("src"): - if self.run_tests: - make("check") - make("test") - Executable(join_path("test", "ij"))() - sstruct = Executable(join_path("test", "struct")) - sstruct() - sstruct("-in", "test/sstruct.in.default", "-solver", "40", "-rhsone") - make("install") - if spec.satisfies("+gptune"): - make("test") - mkdirp(self.prefix.bin) - install(join_path("test", "ij"), self.prefix.bin) - - extra_install_tests = join_path("src", "examples") - - @run_after("install") - def cache_test_sources(self): - cache_extra_test_sources(self, self.extra_install_tests) - - # Customize the makefile to use the installed package - makefile = join_path(install_test_root(self), self.extra_install_tests, "Makefile") - filter_file(r"^HYPRE_DIR\s* =.*", f"HYPRE_DIR = {self.prefix}", makefile) - filter_file(r"^CC\s*=.*", f"CC = {os.environ['CC']}", makefile) - if "cxx" in self.spec: - filter_file(r"^CXX\s*=.*", f"CXX = {os.environ['CXX']}", makefile) - if self.spec.satisfies("+fortran"): - filter_file(r"^F77\s*=.*", f"F77 = {os.environ['F77']}", makefile) - - @property - def _cached_tests_work_dir(self): - """The working directory for cached test sources.""" - return join_path(self.test_suite.current_test_cache_dir, self.extra_install_tests) - - def test_bigint(self): - """build and run bigint tests""" - if self.spec.satisfies("~mpi"): - raise SkipTest("Package must be installed with +mpi") - - # build and run cached examples - with working_dir(self._cached_tests_work_dir): - make = which("make") - make("bigint") - - for name in ["ex5big", "ex15big"]: - with test_part(self, f"test_bigint_{name}", f"ensure {name} runs"): - exe = which(name) - if exe is None: - raise SkipTest(f"{name} does not exist in version {self.version}") - exe() - - @property - def headers(self): - """Export the main hypre header, HYPRE.h; all other headers can be found - in the same directory. - Sample usage: spec['hypre'].headers.cpp_flags - """ - hdrs = find_headers("HYPRE", self.prefix.include, recursive=False) - return hdrs or None - - @property - def libs(self): - """Export the hypre library. - Sample usage: spec['hypre'].libs.ld_flags - """ - is_shared = self.spec.satisfies("+shared") - libs = find_libraries("libHYPRE", root=self.prefix, shared=is_shared, recursive=True) - return libs or None diff --git a/repos/spack_repo/builtin/packages/hypre_cmake/package.py b/repos/spack_repo/builtin/packages/hypre_cmake/package.py index 7c753358916..ee408e4c1aa 100644 --- a/repos/spack_repo/builtin/packages/hypre_cmake/package.py +++ b/repos/spack_repo/builtin/packages/hypre_cmake/package.py @@ -128,13 +128,12 @@ def test_bigint(self): # Build and run cached examples with working_dir(self._cached_tests_work_dir): - make = which("make") + make = which("make", required=True) make("bigint") for exe_name in ["ex5big", "ex15big"]: with test_part(self, f"test_bigint_{exe_name}", purpose=f"Ensure {exe_name} runs"): - - program = which(exe_name) + program = which(exe_name, required=True) if program is None: raise SkipTest(f"{exe_name} does not exist in version {self.version}") diff --git a/repos/spack_repo/builtin/packages/hypredrive/package.py b/repos/spack_repo/builtin/packages/hypredrive/package.py new file mode 100644 index 00000000000..1f2bf81d31c --- /dev/null +++ b/repos/spack_repo/builtin/packages/hypredrive/package.py @@ -0,0 +1,118 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import os + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class Hypredrive(CMakePackage): + """Hypredrive is a flexible engine for solving linear systems with hypre. + It provides a command-line driver (hypredrive-cli) and a C API library + (libHYPREDRV) accepting YAML input.""" + + homepage = "https://hypredrive.readthedocs.io" + url = "https://github.com/hypre-space/hypredrive/archive/v0.2.0.tar.gz" + git = "https://github.com/hypre-space/hypredrive.git" + + maintainers("victorapm") + + license("MIT", checked_by="victorapm") + + version("master", branch="master") + version("0.2.0", sha256="2fe6c5b2779de41fbd294cb4647c7bbd210ec95934639117e56a790e56c32e41") + version("0.1.0", sha256="39db73b75e37457035c64b4c8831abe716bf2f596c4ca79a32293d9bd51ca8d6") + + variant("shared", default=False, description="Build shared libraries") + variant("pic", default=False, description="Build position independent code") + variant("examples", default=False, description="Build and install example programs") + variant("hwloc", default=False, description="Enable hwloc support for system topology") + variant("caliper", default=False, description="Enable Caliper performance profiling") + variant("compression", default=False, description="Enable lossless compression backends") + + depends_on("c", type="build") + depends_on("cxx", type="build", when="+caliper") + + depends_on("cmake@3.23:", type="build") + depends_on("mpi") + depends_on("hypre@2.20.0: +mpi") + depends_on("hwloc", when="+hwloc") + depends_on("caliper", when="+caliper") + depends_on("zlib-api", when="+compression") + depends_on("zstd", when="+compression") + depends_on("lz4", when="+compression") + + conflicts("+shared ~pic") + + def cmake_args(self): + spec = self.spec + from_variant = self.define_from_variant + + args = [ + from_variant("BUILD_SHARED_LIBS", "shared"), + from_variant("HYPREDRV_ENABLE_EXAMPLES", "examples"), + from_variant("HYPREDRV_ENABLE_HWLOC", "hwloc"), + from_variant("HYPREDRV_ENABLE_CALIPER", "caliper"), + from_variant("HYPREDRV_ENABLE_COMPRESSION", "compression"), + from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), + self.define("HYPRE_ROOT", spec["hypre"].prefix), + self.define("HYPREDRV_ENABLE_TESTING", self.run_tests), + self.define("HYPREDRV_ENABLE_COVERAGE", False), + self.define("HYPREDRV_ENABLE_ANALYSIS", False), + self.define("HYPREDRV_ENABLE_DOCS", False), + ] + + return args + + @property + def headers(self): + """Export the main HYPREDRV header. + Sample usage: spec['hypredrive'].headers.cpp_flags + """ + hdrs = find_headers("HYPREDRV", self.prefix.include, recursive=False) + return hdrs or None + + @property + def libs(self): + """Export the HYPREDRV library. + Sample usage: spec['hypredrive'].libs.ld_flags + """ + is_shared = self.spec.satisfies("+shared") + libs = find_libraries("libHYPREDRV", root=self.prefix, shared=is_shared, recursive=True) + return libs or None + + @property + def sanity_check_is_file(self): + sanity_files = [join_path("bin", "hypredrive-cli")] + + if self.spec.satisfies("+shared"): + if self.spec.satisfies("platform=darwin"): + lib_name = "libHYPREDRV.dylib" + else: + lib_name = "libHYPREDRV.so" + else: + lib_name = "libHYPREDRV.a" + + for lib_dir, rel_name in ((self.prefix.lib64, "lib64"), (self.prefix.lib, "lib")): + if os.path.isfile(join_path(lib_dir, lib_name)): + sanity_files.append(join_path(rel_name, lib_name)) + break + else: + expected_lib_dir = "lib64" if os.path.isdir(self.prefix.lib64) else "lib" + sanity_files.append(join_path(expected_lib_dir, lib_name)) + + return sanity_files + + @when("+examples") + def test_laplacian_example(self): + """run the laplacian example (requires +examples)""" + + laplacian = which(self.prefix.bin.laplacian) + if laplacian is None: + raise SkipTest("laplacian example binary not found") + + mpirun = which("mpirun", "mpiexec", required=True) + mpirun("-np", "1", laplacian, "-n", "6", "6", "6", "-s", "7", "-ns", "1", "-v", "1") diff --git a/repos/spack_repo/builtin/packages/icarus/package.py b/repos/spack_repo/builtin/packages/icarus/package.py index 6db00262968..246848a8dd7 100644 --- a/repos/spack_repo/builtin/packages/icarus/package.py +++ b/repos/spack_repo/builtin/packages/icarus/package.py @@ -19,6 +19,7 @@ class Icarus(AutotoolsPackage): license("GPL-2.0-only") version("master", branch="master") + version("13_0", sha256="c897bbfa9848688982c6d5c30529fc29d68df0b9ff22ffa73bad89db73a7ce49") version("12_0", sha256="a68cb1ef7c017ef090ebedb2bc3e39ef90ecc70a3400afb4aa94303bc3beaa7d") version("11_0", sha256="6327fb900e66b46803d928b7ca439409a0dc32731d82143b20387be0833f1c95") version("10_3", commit="453c5465895eaca4a792d18b75e9ec14db6ea50e") @@ -36,7 +37,7 @@ class Icarus(AutotoolsPackage): patch("fix-gcc-10.patch", when="@v10_3") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autoconf.sh") @run_before("install") diff --git a/repos/spack_repo/builtin/packages/icedtea/package.py b/repos/spack_repo/builtin/packages/icedtea/package.py index cc8bb1d1c5f..bbf38e240fa 100644 --- a/repos/spack_repo/builtin/packages/icedtea/package.py +++ b/repos/spack_repo/builtin/packages/icedtea/package.py @@ -183,7 +183,8 @@ def configure_args(self): "--with-openjdk-checksum=no", "--with-nashorn-src-zip=" + self.stage[8].archive_file, "--with-nashorn-checksum=no", - "--disable-maintainer-mode" "--disable-downloading", + "--disable-maintainer-mode", + "--disable-downloading", "--disable-system-pcsc", "--disable-system-sctp", "--disable-system-kerberos", diff --git a/repos/spack_repo/builtin/packages/icey/package.py b/repos/spack_repo/builtin/packages/icey/package.py new file mode 100644 index 00000000000..592dc59b356 --- /dev/null +++ b/repos/spack_repo/builtin/packages/icey/package.py @@ -0,0 +1,53 @@ +# 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 Icey(CMakePackage): + """C++20 media stack and libwebrtc alternative for real-time video, + signalling, TURN, and media servers.""" + + homepage = "https://0state.com/icey/" + url = "https://github.com/nilstate/icey/archive/refs/tags/2.4.2.tar.gz" + git = "https://github.com/nilstate/icey.git" + + license("LGPL-2.1-or-later") + + version("2.4.2", sha256="306a9ca401c0f0ce0a33d4482b6ca95fa3036821d5347ca2c12ac17b0ada63bf") + + variant("ffmpeg", default=True, description="Enable icey::av with FFmpeg") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cmake@3.21:", type="build") + depends_on("pkgconfig", type="build") + depends_on("openssl@3:") + depends_on("libuv") + depends_on("llhttp") + depends_on("minizip") + depends_on("zlib-api") + depends_on("ffmpeg@5:", when="+ffmpeg") + + def cmake_args(self): + return [ + self.define("BUILD_SHARED_LIBS", True), + self.define("USE_SYSTEM_DEPS", True), + self.define("BUILD_TESTS", False), + self.define("BUILD_SAMPLES", False), + self.define("BUILD_APPLICATIONS", False), + self.define("BUILD_FUZZERS", False), + self.define("BUILD_BENCHMARKS", False), + self.define("BUILD_PERF", False), + self.define("BUILD_ALPHA", False), + self.define("CMAKE_DISABLE_FIND_PACKAGE_Doxygen", True), + self.define("ENABLE_NATIVE_ARCH", False), + self.define_from_variant("WITH_FFMPEG", "ffmpeg"), + self.define("WITH_LIBDATACHANNEL", False), + self.define("BUILD_MODULE_webrtc", False), + self.define("WITH_OPENCV", False), + ] diff --git a/repos/spack_repo/builtin/packages/icon/package.py b/repos/spack_repo/builtin/packages/icon/package.py index 611f8627fbe..42f6354f6f4 100644 --- a/repos/spack_repo/builtin/packages/icon/package.py +++ b/repos/spack_repo/builtin/packages/icon/package.py @@ -24,6 +24,9 @@ class Icon(AutotoolsPackage): license("BSD-3-Clause", checked_by="skosukhin") + version( + "2025.10-2", tag="icon-2025.10-2-public", commit="69ef5cda9b81f5947e30d1016f41e7b37012f5de" + ) version( "2025.04", tag="icon-2025.04-public", commit="1be2ca66ea0de149971d2e77e88a9f11c764bd22" ) @@ -103,6 +106,22 @@ class Icon(AutotoolsPackage): # Optimization Features: variant("mixed-precision", default=False, description="Enable mixed-precision dynamical core") + variant("single-precision", default=False, description="Enable single-precision") + conflicts( + "+single-precision", + when="@:2025.03", + msg="+single-precision requires icon version 2025.04 or newer", + ) + + variant( + "single-precision-ecrad", default=False, description="Enable single-precision for ecRad" + ) + conflicts( + "+single-precision-ecrad", + when="@:2025.09", + msg="+single-precision-ecrad requires icon version 2025.10 or newer", + ) + depends_on("c", type="build") depends_on("cxx", type="build") depends_on("fortran", type="build") @@ -149,6 +168,8 @@ def configure_args(self): "cdi-pio", "yaxt", "mixed-precision", + "single-precision", + "single-precision-ecrad", "comin", ]: args += self.enable_or_disable(x) @@ -216,7 +237,7 @@ def configure_args(self): else: args.append("--disable-gpu") - if gpu in self.nvidia_targets or "+comin" in self.spec: + if gpu in self.nvidia_targets or self.spec.satisfies("+comin"): flags["ICON_LDFLAGS"].extend(self.compiler.stdcxx_libs) if self.compiler.name == "gcc": diff --git a/repos/spack_repo/builtin/packages/icu4c/Quote_datagen.patch b/repos/spack_repo/builtin/packages/icu4c/Quote_datagen.patch new file mode 100644 index 00000000000..4ef2e04d8b2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/icu4c/Quote_datagen.patch @@ -0,0 +1,184 @@ +diff --git a/source/data/makedata.mak b/source/data/makedata.mak +index 1fe8c88593c..36dcd4cd7b8 100644 +--- a/source/data/makedata.mak ++++ b/source/data/makedata.mak +@@ -285,7 +285,7 @@ ICU_DATA_BUILD_VERBOSE= + # Keep track of whether they are built via timestamp files. + + $(TOOLS_TS): "$(ICUTOOLS)\genrb\$(CFGTOOLS)\genrb.exe" "$(ICUTOOLS)\gencnval\$(CFGTOOLS)\gencnval.exe" "$(ICUTOOLS)\gencfu\$(CFGTOOLS)\gencfu.exe" "$(ICUTOOLS)\icupkg\$(CFGTOOLS)\icupkg.exe" "$(ICUTOOLS)\makeconv\$(CFGTOOLS)\makeconv.exe" "$(ICUPBIN)\pkgdata.exe" +- @echo "timestamp" > $(TOOLS_TS) ++ @echo "timestamp" > "$(TOOLS_TS)" + + # On Unix, Python generates at configure time a list of Makefile rules. + # On Windows, however, we run the Python data build script at build time instead. +@@ -312,7 +312,7 @@ $(COREDATA_TS): + --filter_file "$(ICU_DATA_FILTER_FILE)" \ + $(ICU_DATA_BUILD_VERBOSE) \ + $(ICU_DATA_BUILDTOOL_OPTS) +- @echo "timestamp" > $(COREDATA_TS) ++ @echo "timestamp" > "$(COREDATA_TS)" + + + # The core Unicode properties files (uprops.icu, ucase.icu, ubidi.icu) +@@ -458,7 +458,7 @@ icu4j-data-install : + -@erase "$(U_ICUDATA_NAME).dll" + copy "$(ICUTMP)\$(ICUPKG).dat" "$(ICUOUT)\$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX).dat" + -@erase "$(ICUTMP)\$(ICUPKG).dat" +- @echo "timestamp" > $(ARM_CROSSBUILD_TS) ++ @echo "timestamp" > "$(ARM_CROSSBUILD_TS)" + + # utility target to create missing directories + # Most directories are made by Python, but still create ICUTMP +diff --git a/source/python/icutools/databuilder/renderers/common_exec.py b/source/python/icutools/databuilder/renderers/common_exec.py +index 91c12fdcf62..c80979bc497 100644 +--- a/source/python/icutools/databuilder/renderers/common_exec.py ++++ b/source/python/icutools/databuilder/renderers/common_exec.py +@@ -70,7 +70,7 @@ def run_helper(request, common_vars, platform, tool_dir, verbose, tool_cfg=None, + + assert isinstance(request.tool, IcuTool) + if platform == "windows": +- cmd_template = "{TOOL_DIR}/{TOOL}/{TOOL_CFG}/{TOOL}.exe {{ARGS}}".format( ++ cmd_template = "\"{TOOL_DIR}/{TOOL}/{TOOL_CFG}/{TOOL}.exe\" {{ARGS}}".format( + TOOL_DIR = tool_dir, + TOOL_CFG = tool_cfg, + TOOL = request.tool.name, +diff --git a/source/test/testdata/BUILDRULES.py b/source/test/testdata/BUILDRULES.py +index a93a3816a1f..978f285d46b 100644 +--- a/source/test/testdata/BUILDRULES.py ++++ b/source/test/testdata/BUILDRULES.py +@@ -63,7 +63,7 @@ def generate_rb(config, io, common_vars): + input_files = [InFile("%s.txt" % bn) for bn in basenames], + output_files = [OutFile("%s.res" % bn) for bn in basenames], + tool = IcuTool("genrb"), +- args = "-q -i {LIBRARY_DATA_DIR} -s {IN_DIR} -d {OUT_DIR} {INPUT_FILE}", ++ args = "-q -i \"{LIBRARY_DATA_DIR}\" -s {IN_DIR} -d \"{OUT_DIR}\" {INPUT_FILE}", + format_with = {}, + repeat_with = {} + ), +@@ -74,7 +74,7 @@ def generate_rb(config, io, common_vars): + input_files = [InFile("encoded.utf16be")], + output_files = [OutFile("encoded.res")], + tool = IcuTool("genrb"), +- args = "-s {IN_DIR} -eUTF-16BE -d {OUT_DIR} {INPUT_FILES[0]}", ++ args = "-s {IN_DIR} -eUTF-16BE -d \"{OUT_DIR}\" {INPUT_FILES[0]}", + format_with = {} + ), + SingleExecutionRequest( +@@ -83,7 +83,7 @@ def generate_rb(config, io, common_vars): + input_files = [InFile("zoneinfo64.txt")], + output_files = [TmpFile("zoneinfo64.res")], + tool = IcuTool("genrb"), +- args = "-s {IN_DIR} -d {TMP_DIR} {INPUT_FILES[0]}", ++ args = "-s {IN_DIR} -d \"{TMP_DIR}\" {INPUT_FILES[0]}", + format_with = {} + ), + SingleExecutionRequest( +@@ -92,7 +92,7 @@ def generate_rb(config, io, common_vars): + input_files = [InFile("filtertest.txt")], + output_files = [OutFile("filtertest.res")], + tool = IcuTool("genrb"), +- args = "-s {IN_DIR} -d {OUT_DIR} -i {OUT_DIR} " ++ args = "-s {IN_DIR} -d \"{OUT_DIR}\" -i \"{OUT_DIR}\" " + "--filterDir {IN_DIR}/filters filtertest.txt", + format_with = {} + ) +@@ -107,7 +107,7 @@ def generate_sprep(config, io, common_vars): + input_files = [InFile("nfs4_cs_prep_ci.txt")], + output_files = [OutFile("nfscsi.spp")], + tool = IcuTool("gensprep"), +- args = "-s {IN_DIR} -d {OUT_DIR} -b nfscsi -u 3.2.0 {INPUT_FILES[0]}", ++ args = "-s {IN_DIR} -d \"{OUT_DIR}\" -b nfscsi -u 3.2.0 {INPUT_FILES[0]}", + format_with = {} + ), + SingleExecutionRequest( +@@ -116,7 +116,7 @@ def generate_sprep(config, io, common_vars): + input_files = [InFile("nfs4_cs_prep_cs.txt")], + output_files = [OutFile("nfscss.spp")], + tool = IcuTool("gensprep"), +- args = "-s {IN_DIR} -d {OUT_DIR} -b nfscss -u 3.2.0 {INPUT_FILES[0]}", ++ args = "-s {IN_DIR} -d \"{OUT_DIR}\" -b nfscss -u 3.2.0 {INPUT_FILES[0]}", + format_with = {} + ), + SingleExecutionRequest( +@@ -125,7 +125,7 @@ def generate_sprep(config, io, common_vars): + input_files = [InFile("nfs4_cis_prep.txt")], + output_files = [OutFile("nfscis.spp")], + tool = IcuTool("gensprep"), +- args = "-s {IN_DIR} -d {OUT_DIR} -b nfscis -u 3.2.0 -k -n {IN_DIR}/../../data/unidata {INPUT_FILES[0]}", ++ args = "-s {IN_DIR} -d \"{OUT_DIR}\" -b nfscis -u 3.2.0 -k -n {IN_DIR}/../../data/unidata {INPUT_FILES[0]}", + format_with = {} + ), + SingleExecutionRequest( +@@ -134,7 +134,7 @@ def generate_sprep(config, io, common_vars): + input_files = [InFile("nfs4_mixed_prep_s.txt")], + output_files = [OutFile("nfsmxs.spp")], + tool = IcuTool("gensprep"), +- args = "-s {IN_DIR} -d {OUT_DIR} -b nfsmxs -u 3.2.0 -k -n {IN_DIR}/../../data/unidata {INPUT_FILES[0]}", ++ args = "-s {IN_DIR} -d \"{OUT_DIR}\" -b nfsmxs -u 3.2.0 -k -n {IN_DIR}/../../data/unidata {INPUT_FILES[0]}", + format_with = {} + ), + SingleExecutionRequest( +@@ -143,7 +143,7 @@ def generate_sprep(config, io, common_vars): + input_files = [InFile("nfs4_mixed_prep_p.txt")], + output_files = [OutFile("nfsmxp.spp")], + tool = IcuTool("gensprep"), +- args = "-s {IN_DIR} -d {OUT_DIR} -b nfsmxp -u 3.2.0 -k -n {IN_DIR}/../../data/unidata {INPUT_FILES[0]}", ++ args = "-s {IN_DIR} -d \"{OUT_DIR}\" -b nfsmxp -u 3.2.0 -k -n {IN_DIR}/../../data/unidata {INPUT_FILES[0]}", + format_with = {} + ) + ] +@@ -167,7 +167,7 @@ def generate_conv(config, io, common_vars): + input_files = [InFile("%s.ucm" % bn) for bn in basenames], + output_files = [OutFile("%s.cnv" % bn) for bn in basenames], + tool = IcuTool("makeconv"), +- args = "--small -d {OUT_DIR} {IN_DIR}/{INPUT_FILE}", ++ args = "--small -d \"{OUT_DIR}\" {IN_DIR}/{INPUT_FILE}", + format_with = {}, + repeat_with = {} + ) +@@ -201,7 +201,7 @@ def generate_other(config, io, common_vars): + input_files = [InFile("testnorm.txt")], + output_files = [OutFile("testnorm.nrm")], + tool = IcuTool("gennorm2"), +- args = "-s {IN_DIR} {INPUT_FILES[0]} -o {OUT_DIR}/{OUTPUT_FILES[0]}", ++ args = "-s {IN_DIR} {INPUT_FILES[0]} -o \"{OUT_DIR}/{OUTPUT_FILES[0]}\"", + format_with = {} + ), + SingleExecutionRequest( +@@ -210,7 +210,7 @@ def generate_other(config, io, common_vars): + input_files = [], + output_files = [OutFile("test.icu")], + tool = IcuTool("gentest"), +- args = "-d {OUT_DIR}", ++ args = "-d \"{OUT_DIR}\"", + format_with = {} + ), + SingleExecutionRequest( +@@ -219,7 +219,7 @@ def generate_other(config, io, common_vars): + input_files = [], + output_files = [TmpFile("testtable32.txt")], + tool = IcuTool("gentest"), +- args = "-r -d {TMP_DIR}", ++ args = "-r -d \"{TMP_DIR}\"", + format_with = {} + ), + SingleExecutionRequest( +@@ -228,7 +228,7 @@ def generate_other(config, io, common_vars): + input_files = [TmpFile("testtable32.txt")], + output_files = [OutFile("testtable32.res")], + tool = IcuTool("genrb"), +- args = "-s {TMP_DIR} -d {OUT_DIR} {INPUT_FILES[0]}", ++ args = "-s \"{TMP_DIR}\" -d \"{OUT_DIR}\" {INPUT_FILES[0]}", + format_with = {} + ) + ] +diff --git a/source/test/testdata/testdata.mak b/source/test/testdata/testdata.mak +index 2809efd0ca3..73637676af6 100644 +--- a/source/test/testdata/testdata.mak ++++ b/source/test/testdata/testdata.mak +@@ -42,4 +42,4 @@ CREATE_DIRS : + --src_dir "$(TESTDATA)" \ + --tmp_dir "$(TESTDATATMP)" \ + --out_dir "$(TESTDATABLD)" +- "$(ICUPBIN)\pkgdata" -f -v -m common -c -p"$(TESTPKG)" -d "$(TESTDATAOUT)" -T "$(TESTDATABLD)" -s "$(TESTDATABLD)" $(TESTDATATMP)\testdata.lst ++ "$(ICUPBIN)\pkgdata" -f -v -m common -c -p"$(TESTPKG)" -d "$(TESTDATAOUT)" -T "$(TESTDATABLD)" -s "$(TESTDATABLD)" "$(TESTDATATMP)\testdata.lst" diff --git a/repos/spack_repo/builtin/packages/icu4c/package.py b/repos/spack_repo/builtin/packages/icu4c/package.py index 576d910b666..1c324ebda20 100644 --- a/repos/spack_repo/builtin/packages/icu4c/package.py +++ b/repos/spack_repo/builtin/packages/icu4c/package.py @@ -40,7 +40,7 @@ class Icu4c(AutotoolsPackage, MSBuildPackage): with when(f"platform={plat}"): variant( "cxxstd", - default="11", + default="17", values=(conditional("11", "14", when="@:74"), "17"), multi=False, description="Use the specified C++ standard when building", @@ -55,8 +55,9 @@ class Icu4c(AutotoolsPackage, MSBuildPackage): depends_on("automake", type="build") depends_on("libtool", type="build") - with when("build_system=msbuild"): + with when("build_system=msbuild platform=windows"): patch("ICU4C_NMAKE_NO_DOUBLE_QUOTE_VARS.patch", when="@64.1:") + patch("Quote_datagen.patch", when="@64.1:") conflicts( "%intel@:16", @@ -89,7 +90,6 @@ def libs(self): class AutotoolsBuilder(autotools.AutotoolsBuilder): - configure_directory = "source" # Need to make sure that locale is UTF-8 in order to process source files in UTF-8. diff --git a/repos/spack_repo/builtin/packages/iegenlib/package.py b/repos/spack_repo/builtin/packages/iegenlib/package.py index 82341feb186..de6a0cefbb1 100644 --- a/repos/spack_repo/builtin/packages/iegenlib/package.py +++ b/repos/spack_repo/builtin/packages/iegenlib/package.py @@ -37,7 +37,7 @@ class Iegenlib(CMakePackage): @run_before("cmake") def make_dirs(self): - autoreconf = which("autoreconf") + autoreconf = which("autoreconf", required=True) with working_dir("lib/isl"): autoreconf("-i") mkdirp("spack-build/bin") 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/igv/package.py b/repos/spack_repo/builtin/packages/igv/package.py index 8b865ff4d25..5aae01d449d 100644 --- a/repos/spack_repo/builtin/packages/igv/package.py +++ b/repos/spack_repo/builtin/packages/igv/package.py @@ -18,11 +18,16 @@ class Igv(Package): maintainers("snehring") + version("2.19.7", sha256="692ae6c3037a6633c33afdbbe960a715f537173f26a16f56a58cb9ccbe163e9f") + version("2.18.4", sha256="d60870e27db0ba22278df3bcfb6113c1adc86b940f02d754983c91688d3a0fae") + version("2.17.4", sha256="6a36ae64fa3b74182db654a93f6254256305a8afa6b878f381b5d04fc1e8eaa5") version("2.16.2", sha256="489d34ed4e807a3d32a3720f11248d2ddf1e21d264b06bea44fbe1ccb74b3aa2") version("2.12.3", sha256="c87a109deb35994e1b28dee80b5acfd623ec3257f031fcd9cfce008cd32a4cf2") version("2.8.0", sha256="33f3ac57017907b931f90c35b63b2de2e4f8d2452f0fbb5be39d30288fc9b2c6") - depends_on("java@11:", type="run") + depends_on("java@21:", when="@2.19:", type="run") + depends_on("java@17:", when="@2.17:2.18", type="run") + depends_on("java@11:", when="@:2.16", type="run") variant("igvtools", default=False, description="Include igvtools") diff --git a/repos/spack_repo/builtin/packages/imagemagick/package.py b/repos/spack_repo/builtin/packages/imagemagick/package.py index 5784e30d09e..052138b42e9 100644 --- a/repos/spack_repo/builtin/packages/imagemagick/package.py +++ b/repos/spack_repo/builtin/packages/imagemagick/package.py @@ -19,43 +19,15 @@ class Imagemagick(AutotoolsPackage): version("7.1.1-39", sha256="b2eb652d9221bdeb65772503891d8bfcfc36b3b1a2c9bb35b9d247a08965fd5d") version("7.1.1-29", sha256="27bd25f945efdd7e38f6f9845a7c0a391fdb732f652dda140b743769c5f106e8") version("7.1.1-11", sha256="98bb2783da7d5b06e7543529bd07b50d034fba611ff15e8817a0f4f73957d934") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2023-34153 - version( - "7.1.0-62", sha256="d282117bc6d0e91ad1ad685d096623b96ed8e229f911c891d83277b350ef884a" - ) - version( - "7.1.0-60", sha256="94424cc13c5ba18e0e5d5badb834ce74eab11207b00ea32c1f533a5e34c85887" - ) - version( - "7.0.11-14", sha256="dfa5aa3f7f289f12c2f9ee6c7c19b02ae857b4eec02f40298f60f5c11048a016" - ) - version( - "7.0.10-62", sha256="84442158aea070095efa832cfe868fd99d6befdf609444f0c9e9f1b4f25480cd" - ) - version( - "7.0.9-27", sha256="aeea7768bf330d87efa80fa89f03c5acc2382eae32d1d871acb813e5b116395a" - ) - version( - "7.0.8-7", sha256="fadb36b59f310e9eee5249ecb2326b323a64da6cc716dd6d08ece8ea2c780b81" - ) - version( - "7.0.5-9", sha256="b85b269e0ed1628e88e840053823f8a33c314b2271f04762f43d33e9d0b4d264" - ) - version( - "7.0.2-7", sha256="f2f18a97f861c1668befdaff0cc3aaafb2111847aab028a88b4c2cb017acfbaa" - ) - version( - "7.0.2-6", sha256="7d49ca8030f895c683cae69c52d8edfc4876de651f5b8bfdbea907e222480bd3" - ) variant("ghostscript", default=False, description="Compile with Ghostscript support") variant("rsvg", default=False, description="Enable RSVG support") + variant("zlib", default=False, description="Enable zlib support") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("pkgconfig@0.20:", type="build") + depends_on("pkgconfig", type="build") depends_on("fontconfig@2.1:") depends_on("freetype@2.8:") @@ -66,8 +38,7 @@ class Imagemagick(AutotoolsPackage): depends_on("libtiff@4:") depends_on("ghostscript", when="+ghostscript") depends_on("ghostscript-fonts", when="+ghostscript") - - depends_on("libsm", when="@:7.1.0-60 platform=linux") + depends_on("zlib-api", when="+zlib") def configure_args(self): args = [] @@ -79,6 +50,7 @@ def configure_args(self): else: args.append("--without-gslib") args.extend(self.with_or_without("rsvg")) + args.extend(self.with_or_without("zlib")) return args @property diff --git a/repos/spack_repo/builtin/packages/imod/package.py b/repos/spack_repo/builtin/packages/imod/package.py new file mode 100644 index 00000000000..1f2543486b2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/imod/package.py @@ -0,0 +1,65 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.makefile import MakefilePackage + +from spack.package import * + + +class Imod(MakefilePackage, CudaPackage): + """IMOD is a set of image processing, modeling and display programs used + for tomographic reconstruction and for 3D reconstruction of EM serial + sections and optical sections. The package contains tools for assembling + and aligning data within multiple types and sizes of image stacks, viewing + 3-D data from any orientation, and modeling and display of the image files. + """ + + homepage = "https://bio3d.colorado.edu/imod/" + hg = "http://bio3d.colorado.edu/imod/nightlyBuilds/IMOD" + + maintainers("Markus92") + + license("GPL-2", checked_by="Markus292") + + version("5.2.3", revision="b520a584fca2") + + variant("fftw", default=False, description="Use external FFTW?") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("java@17:") + + depends_on("qt@5.12:") # Can do with 4.6:, but they themselves recommend 5.12+ + depends_on("cuda", when="+cuda") + depends_on("libtiff@4:") + depends_on("fftw@3:", when="+fftw") + depends_on("hdf5") + depends_on("jpeg") + depends_on("glu") + depends_on("tcsh", type=("build", "run")) + depends_on("python", type=("run")) + + def edit(self, spec, prefix): + configure = Executable("./setup") + configure_args = ["-inst", prefix] # Set up prefix + configure(*configure_args) + + if self.spec.satisfies("+cuda"): + cuda_flags = " ".join(self.cuda_flags(self.spec.variants["cuda_arch"].value)) + filter_file(r"-arch sm_\d{2}", cuda_flags, "configure") + + def flag_handler(self, name: str, flags: List[str]): + if name == "fflags": + flags.append("-fallow-argument-mismatch") + return (flags, None, None) + + def setup_build_environment(self, env: EnvironmentModifications) -> None: + if self.spec.satisfies("+fftw"): + env.set("FFTW3_DIR", self.spec["fftw"].prefix) + if self.spec.satisfies("+cuda"): + env.set("CUDA_DIR", self.spec["cuda"].prefix) + + def setup_run_environment(self, env: EnvironmentModifications) -> None: + env.set("IMOD_DIR", self.prefix) diff --git a/repos/spack_repo/builtin/packages/improved_rdock/package.py b/repos/spack_repo/builtin/packages/improved_rdock/package.py index 585cefa9094..bb384e8d00d 100644 --- a/repos/spack_repo/builtin/packages/improved_rdock/package.py +++ b/repos/spack_repo/builtin/packages/improved_rdock/package.py @@ -70,11 +70,11 @@ def test_rdock(self): copy(join_path(self.prefix.example, "1sj0", "*"), ".") with test_part(self, "test_rdock_rbcavity", purpose="Check rbcavity"): - rbcavity = which("rbcavity") + rbcavity = which("rbcavity", required=True) rbcavity("-r", "1sj0_rdock.prm", "-was") with test_part(self, "test_rdock_rbdock", purpose="Use mpirun to run rbdock in parallel"): - mpiexe = which(str(self.spec["mpi"].prefix.bin.mpirun)) + mpiexe = which(str(self.spec["mpi"].prefix.bin.mpirun), required=True) opts = [ self.prefix.bin.rbdock, "-r", @@ -93,12 +93,12 @@ def test_rdock(self): mpiexe(*opts) with test_part(self, "test_rdock_test_sh", purpose="Sort the output"): - bash = which("bash") + bash = which("bash", required=True) opts = [join_path(self.test_suite.current_test_data_dir, "test.sh")] bash(*opts) with test_part(self, "test_rdock_sdrmsd", purpose="Check sdrmsd calculations"): - pythonexe = which(str(self.spec["python"].command.path)) + pythonexe = which(str(self.spec["python"].command.path), required=True) opts = [self.spec.prefix.bin.sdrmsd, "1sj0_ligand.sd", "1sj0_docking_out_sorted.sd"] expected = ["1\t0.55", "100\t7.91"] out = pythonexe(*opts, out=str.split, error=str.split) diff --git a/repos/spack_repo/builtin/packages/integratorxx/package.py b/repos/spack_repo/builtin/packages/integratorxx/package.py new file mode 100644 index 00000000000..b8a2ce08f51 --- /dev/null +++ b/repos/spack_repo/builtin/packages/integratorxx/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.cmake import CMakePackage, generator + +from spack.package import * + + +class Integratorxx(CMakePackage): + """Reuseable density functional theory (DFT) grid library.""" + + homepage = "https://github.com/wavefunction91/IntegratorXX" + git = "https://github.com/wavefunction91/IntegratorXX.git" + url = "https://github.com/wavefunction91/IntegratorXX/archive/refs/tags/v1.0.0.tar.gz" + + maintainers("awvwgk") + + license("BSD-3-Clause") + + version("master", branch="master") + version("1.0.0", sha256="d2826439d14b3f716ffd57a07d1d407de029a80c0e0446998b8f1339d5085b9c") + + depends_on("cxx", type="build") + depends_on("cmake@3.20:", type="build") + depends_on("ninja@1.10:", type="build") + + generator("ninja") diff --git a/repos/spack_repo/builtin/packages/intel_gtpin/package.py b/repos/spack_repo/builtin/packages/intel_gtpin/package.py index 1107c77e49c..f215735c937 100644 --- a/repos/spack_repo/builtin/packages/intel_gtpin/package.py +++ b/repos/spack_repo/builtin/packages/intel_gtpin/package.py @@ -39,6 +39,24 @@ class IntelGtpin(Package): license("MIT") + version( + "4.5.0", + sha256="fd70374819eb15876c908dd9816ee2af9c5c9301614cd8e70d45c504a2ba6e98", + url="https://downloadmirror.intel.com/856505/external-release-gtpin-4.5.0-linux.tar.xz", + ) + + version( + "4.4", + sha256="25c9ff0c621ff6d91635be9c38523d6aa9182ea2312d98bac1e549f61f3d1826", + url="https://downloadmirror.intel.com/844580/external-release-gtpin-4.4-linux.tar.xz", + ) + + version( + "4.3", + sha256="4960daaa7a100b2ff7d591a07e42923bd599f4c1eb154dfa22c5e0b570066a96", + url="https://downloadmirror.intel.com/830027/external-release-gtpin-4.3-linux.tar.xz", + ) + version( "4.0", sha256="fc12fb3aefdd4ae75b21ef9325e4058439dace52501200900895240c6ef3f0d8", @@ -109,7 +127,7 @@ def command(self): @property def headers(self): - return find_headers("gtpin", self.prefix.Include) + return find_all_headers(self.prefix.Include) @property def libs(self): diff --git a/repos/spack_repo/builtin/packages/intel_oneapi_advisor/package.py b/repos/spack_repo/builtin/packages/intel_oneapi_advisor/package.py index 3638fcb7d2f..dce3e2d6bc2 100644 --- a/repos/spack_repo/builtin/packages/intel_oneapi_advisor/package.py +++ b/repos/spack_repo/builtin/packages/intel_oneapi_advisor/package.py @@ -28,6 +28,36 @@ class IntelOneapiAdvisor(IntelOneApiLibraryPackageWithSdk): "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/advisor.html" ) + version( + "2026.0.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/68057580-a03d-4490-87e2-b2a6092b6675/intel-advisor-2026.0.0.266_offline.sh", + sha256="b3dfc02ee5a22c0ac2ba163181ebd8f185cd39e14ed767e63fa8d66f5d945bdb", + expand=False, + ) + version( + "2025.5.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/a8122a03-4318-422a-a973-51f2e68fd95e/intel-advisor-2025.5.0.81_offline.sh", + sha256="7c28e57963243f45a5b2724301b764d09756962a48277339d938011429725d2d", + expand=False, + ) + version( + "2025.4.1", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/093b261b-0f17-4568-abce-ac68c3096192/intel-advisor-2025.4.1.9_offline.sh", + sha256="bdb9d53c37f4bbb17a64ca61037ce17c9848b515c2edc926d52e887e0d4f9af9", + expand=False, + ) + version( + "2025.4.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/d24e7fc6-dd34-4065-892f-0cafc22e0df4/intel-advisor-2025.4.0.103_offline.sh", + sha256="1aa81d39a9eedfa6640df856e11e96cfd9ca9f941e89f2aafb17f6e6e3e44099", + expand=False, + ) + version( + "2025.3.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/142fde64-2178-4a36-b501-08c42c552495/intel-advisor-2025.3.0.112_offline.sh", + sha256="f683401327d96b93f0ed486d0b9487d0d15ee0ad6cf7a7072cbd3cb47db54e79", + expand=False, + ) version( "2025.2.0", url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/82563347-81fa-42b8-84df-19ccfc33bb08/intel-advisor-2025.2.0.374_offline.sh", diff --git a/repos/spack_repo/builtin/packages/intel_oneapi_ccl/package.py b/repos/spack_repo/builtin/packages/intel_oneapi_ccl/package.py index 5e7351e1e0b..1c0ed4ea4fc 100644 --- a/repos/spack_repo/builtin/packages/intel_oneapi_ccl/package.py +++ b/repos/spack_repo/builtin/packages/intel_oneapi_ccl/package.py @@ -28,6 +28,36 @@ class IntelOneapiCcl(IntelOneApiLibraryPackage): depends_on("intel-oneapi-mpi") + version( + "2022.0.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/999f135f-9aeb-4aff-be1b-3bdf5bfabab1/intel-oneccl-2022.0.0.49303_offline.sh", + sha256="d2200991d5137fe22199c8139f672c36742fff4e2ff9835d8bcc9600b74e9397", + expand=False, + ) + version( + "2021.17.2", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/c477188f-0ba1-4213-8945-22f16ebc8ecb/intel-oneccl-2021.17.2.6_offline.sh", + sha256="01d5f810634e6bfd92b0ce118d1b8dbb1844792d5ff5219df0facd9f8d67a203", + expand=False, + ) + version( + "2021.17.1", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ecc6ecf3-aed4-48c0-bd90-cb768f96168d/intel-oneccl-2021.17.1.8_offline.sh", + sha256="3185e26be9c17b5626373d56ab16c8f762d5abaf137d21c31d687a443495b5da", + expand=False, + ) + version( + "2021.17.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/70c5cff4-d82e-4e3d-9b15-e6ea899be14d/intel-oneccl-2021.17.0.272_offline.sh", + sha256="61869629a5f08726aa17ebce286dbc86f2e27359bcaff861615d0581a7608250", + expand=False, + ) + version( + "2021.16.1", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/66ce2615-4f44-42d5-9b4b-69ca25df01fc/intel-oneccl-2021.16.1.10_offline.sh", + sha256="e8a48c828d7f0d274ff8af7089a42fbe88664beef810b659be4aedc39830206e", + expand=False, + ) version( "2021.16.0", url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/37fac63f-4232-4079-9872-a7992f06bff5/intel-oneccl-2021.16.0.303_offline.sh", diff --git a/repos/spack_repo/builtin/packages/intel_oneapi_compilers/package.py b/repos/spack_repo/builtin/packages/intel_oneapi_compilers/package.py index e45fcb3d0e8..81467a4eae3 100644 --- a/repos/spack_repo/builtin/packages/intel_oneapi_compilers/package.py +++ b/repos/spack_repo/builtin/packages/intel_oneapi_compilers/package.py @@ -13,6 +13,39 @@ from spack.package import * versions = [ + { + "version": "2026.0.0", + "cpp": { + "url": "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/e2f4cda3-8891-4d0e-bf60-00d19c4e3e27/intel-dpcpp-cpp-compiler-2026.0.0.564_offline.sh", + "sha256": "4a40e1919aaf5e473290d1bdbff98a41ee0ee69baef3f5ed7040c34a94344bb8", + }, + "ftn": { + "url": "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/176ca159-bee8-44f2-9164-db26f95de382/intel-fortran-compiler-2026.0.0.573_offline.sh", + "sha256": "f98ea7e1c1b397440dfd34c347c1567924b478c56e7a3b6a3a1628c8f48ad70b", + }, + }, + { + "version": "2025.3.2", + "cpp": { + "url": "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/0d61d48a-4fe8-4cb2-bd9d-94d2c19c6227/intel-dpcpp-cpp-compiler-2025.3.2.26_offline.sh", + "sha256": "37d6c9c22f90fbb4d2072fd45d0284f2b6b1ffd030d699e1e7a669087d093396", + }, + "ftn": { + "url": "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/3e53d136-2870-4836-adb1-892b558fa34a/intel-fortran-compiler-2025.3.2.25_offline.sh", + "sha256": "c64d20d70a277b1249d2ba9221be7245a843f3988df9076b4456619fe5929278", + }, + }, + { + "version": "2025.2.1", + "cpp": { + "url": "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/04c5fd98-57e6-4a4b-be4d-e84de3aea45a/intel-dpcpp-cpp-compiler-2025.2.1.7_offline.sh", + "sha256": "028ef9e2176289bab6b9d19828199d26cb6cd91babdcfcece7a9dd00c5a50376", + }, + "ftn": { + "url": "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/466b0d65-e502-4172-9e06-24c565029b96/intel-fortran-compiler-2025.2.1.9_offline.sh", + "sha256": "75165cc737d164cda2c068e0d8ec4f269f005a50bc2e254cd3cab6fdd063e145", + }, + }, { "version": "2025.2.0", "cpp": { @@ -437,7 +470,7 @@ def _standard_flag(self, *, language, standard): resource( name="nvidia-plugin-installer", placement="nvidia-plugin-installer", - when="@{0}".format(v["version"]), + when="@{0}+nvidia".format(v["version"]), expand=False, **v["nvidia-plugin"], ) @@ -445,7 +478,7 @@ def _standard_flag(self, *, language, standard): resource( name="amd-plugin-installer", placement="amd-plugin-installer", - when="@{0}".format(v["version"]), + when="@{0}+amd".format(v["version"]), expand=False, **v["amd-plugin"], ) @@ -584,7 +617,7 @@ def inject_rpaths(self): return # 2024 fixed all but these 2 - patchelf = which("patchelf") + patchelf = which("patchelf", required=True) if self.spec.satisfies("@2024:"): patchelf.add_default_arg("--set-rpath", self.component_prefix.lib) patchelf(self.component_prefix.bin.join("sycl-post-link")) @@ -717,6 +750,18 @@ def runtime_constraints(cls, *, spec, pkg): f"@{spec.versions}", when=f"%[deptypes=build] {spec.name}@{spec.versions}" ) + # If the compiler depends on gcc@X.Y, the runtime must depend on gcc-runtime@X.Y + if spec.satisfies("%gcc"): + try: + gcc = spec["gcc"] + pkg("intel-oneapi-runtime").requires( + f"@{spec.versions} %gcc-runtime@{gcc.version}", + when=f"%[deptypes=build] {spec.name}/{spec.dag_hash()}", + ) + except (RuntimeError, KeyError): + # Externals may not have gcc as a dependency, but still satisfy %gcc + pass + # If a node used %intel-oneapi-runtime@X.Y its dependencies must use @:X.Y # (technically @:X is broader than ... <= @=X but this should work in practice) pkg("*").propagate( diff --git a/repos/spack_repo/builtin/packages/intel_oneapi_compilers_classic/package.py b/repos/spack_repo/builtin/packages/intel_oneapi_compilers_classic/package.py index 75ffb5161ad..ed228e9cbec 100644 --- a/repos/spack_repo/builtin/packages/intel_oneapi_compilers_classic/package.py +++ b/repos/spack_repo/builtin/packages/intel_oneapi_compilers_classic/package.py @@ -150,8 +150,30 @@ def install(self, spec, prefix): def install(self, spec, prefix): # We do a full copy (not symlinks) to avoid a run dependency on intel-oneapi-compilers # which would prevent mixing versions in a DAG - install_tree(self.oneapi_compiler_prefix.linux.bin.intel64, prefix.bin) + install_tree(self.oneapi_compiler_prefix.linux.bin.intel64, prefix.bin.intel64) + binaries = [ + "codecov", + "fortcom", + "fpp", + "icc", + "icpc", + "ifort", + "mcpcom", + "profdcg", + "profmerge", + "profmergesampling", + "proforder", + "tselect", + "xiar", + "xild", + ] + for binary in binaries: + os.symlink(prefix.bin.intel64.join(binary), prefix.bin.join(binary)) install_tree(self.oneapi_compiler_prefix.linux.lib, prefix.lib) + install_tree( + self.oneapi_compiler_prefix.linux.compiler.lib.intel64_lin, + prefix.linux.compiler.lib.intel64_lin, + ) install_tree(self.oneapi_compiler_prefix.linux.include, prefix.include) install_tree(self.oneapi_compiler_prefix.linux.compiler, prefix.compiler) install_tree(self.oneapi_compiler_prefix.documentation.en.man, prefix.man) diff --git a/repos/spack_repo/builtin/packages/intel_oneapi_dal/package.py b/repos/spack_repo/builtin/packages/intel_oneapi_dal/package.py index 9c1dc66c5c6..20a90335d95 100644 --- a/repos/spack_repo/builtin/packages/intel_oneapi_dal/package.py +++ b/repos/spack_repo/builtin/packages/intel_oneapi_dal/package.py @@ -27,6 +27,18 @@ class IntelOneapiDal(IntelOneApiLibraryPackage): "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onedal.html" ) + version( + "2026.0.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/30a2ddfe-5ca8-4963-8092-7b7ea815c21f/intel-onedal-2026.0.0.1013_offline.sh", + sha256="f51fcb8acdd45317b349d3296a6672f2fa6cdf9c981d79164c3c8a8fb614940f", + expand=False, + ) + version( + "2025.10.1", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/19f5fbad-fc2e-48a7-b64c-0af30799f4e9/intel-onedal-2025.10.1.22_offline.sh", + sha256="3026f70ff3adef2cd37b18c6642ad97160a25fba7ffb7a8ab7b968dedf08740e", + expand=False, + ) version( "2025.6.0", url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/c470125a-2268-496e-a54b-40e0e2961eb1/intel-onedal-2025.6.0.117_offline.sh", diff --git a/repos/spack_repo/builtin/packages/intel_oneapi_dnn/package.py b/repos/spack_repo/builtin/packages/intel_oneapi_dnn/package.py index 71c920ae719..220d444c563 100644 --- a/repos/spack_repo/builtin/packages/intel_oneapi_dnn/package.py +++ b/repos/spack_repo/builtin/packages/intel_oneapi_dnn/package.py @@ -27,6 +27,18 @@ class IntelOneapiDnn(IntelOneApiLibraryPackage): "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onednn.html" ) + version( + "2026.0.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/964163c0-9651-4e14-8ebf-3cc27e2519e4/intel-onednn-2026.0.0.689_offline.sh", + sha256="63d7c1dbe27ccc54731b4aeb166c37322d0cbf41ece8e95705902dbb6d40a014", + expand=False, + ) + version( + "2025.3.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/784671be-a9aa-4264-b1f8-3dd44d5f972d/intel-onednn-2025.3.0.410_offline.sh", + sha256="be11e38dedec960ef2b7c796cf7d89e84110b5ffccf74cd2cb3824da3db19ad1", + expand=False, + ) version( "2025.2.0", url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/6b523cc0-3241-4b80-bfba-ebe6c67599f6/intel-onednn-2025.2.0.562_offline.sh", diff --git a/repos/spack_repo/builtin/packages/intel_oneapi_dpct/package.py b/repos/spack_repo/builtin/packages/intel_oneapi_dpct/package.py index 1b803ad3848..317aeba05e2 100644 --- a/repos/spack_repo/builtin/packages/intel_oneapi_dpct/package.py +++ b/repos/spack_repo/builtin/packages/intel_oneapi_dpct/package.py @@ -20,6 +20,18 @@ class IntelOneapiDpct(IntelOneApiPackage): homepage = "https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compatibility-tool.html#gs.2p8km6" + version( + "2025.3.1", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/08285d96-0fe2-47a0-ab0b-b4675a0541d8/intel-dpcpp-ct-2025.3.1.21_offline.sh", + sha256="08d671483622a463ad7e748d88bb90c5acc54815a2d59fec70f9ff85d11e6e27", + expand=False, + ) + version( + "2025.3.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/befb8bdd-b388-4399-b2fa-25ace0665d12/intel-dpcpp-ct-2025.3.0.238_offline.sh", + sha256="57ad44f7e50346606fbfa25c256db8d318cbe1907ce082f62bf11a072b6ea188", + expand=False, + ) version( "2025.2.0", url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/f2fe12fc-0458-42f0-8fd4-7f5d53cd327f/intel-dpcpp-ct-2025.2.0.518_offline.sh", diff --git a/repos/spack_repo/builtin/packages/intel_oneapi_dpl/package.py b/repos/spack_repo/builtin/packages/intel_oneapi_dpl/package.py index 9eb7566ff7e..5fd0bf3fbe6 100644 --- a/repos/spack_repo/builtin/packages/intel_oneapi_dpl/package.py +++ b/repos/spack_repo/builtin/packages/intel_oneapi_dpl/package.py @@ -23,6 +23,18 @@ class IntelOneapiDpl(IntelOneApiLibraryPackage): homepage = "https://github.com/oneapi-src/oneDPL" + version( + "2022.12.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/1ce409e2-ae79-4eb4-807f-dbe93db6672c/intel-onedpl-2022.12.0.348_offline.sh", + sha256="6e03b5ead2d840722cdfddffba43fbfe88048d28f671fc17ba9353d3cad7cbd3", + expand=False, + ) + version( + "2022.10.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/276fa258-4958-4be2-abf3-973dbd4cf3e2/intel-onedpl-2022.10.0.276_offline.sh", + sha256="edd0473421f2ecf2dc6819bfab8ac5be804211d74160750f6d194fb2565d94c7", + expand=False, + ) version( "2022.9.0", url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/4f06fa3c-add6-4e58-9505-36942ba90315/intel-onedpl-2022.9.0.378_offline.sh", diff --git a/repos/spack_repo/builtin/packages/intel_oneapi_ipp/package.py b/repos/spack_repo/builtin/packages/intel_oneapi_ipp/package.py index a128b16262d..e1450987c4f 100644 --- a/repos/spack_repo/builtin/packages/intel_oneapi_ipp/package.py +++ b/repos/spack_repo/builtin/packages/intel_oneapi_ipp/package.py @@ -28,6 +28,24 @@ class IntelOneapiIpp(IntelOneApiLibraryPackage): "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/ipp.html" ) + version( + "2026.0.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/c72ad2c1-1c92-4e74-923f-a8ca1332c0cb/intel-ipp-2026.0.0.718_offline.sh", + sha256="3cc52d7a057e67efd5dc691055b3a0abee7a77aa760d958282b115b9148b9238", + expand=False, + ) + version( + "2022.3.1", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/f5ea6a8e-1b2d-4184-bf58-45c612fb2ee1/intel-ipp-2022.3.1.9_offline.sh", + sha256="0dacbe933d898c3a30086af90dfdca946d87a28530c2943dc98082a767e001ff", + expand=False, + ) + version( + "2022.3.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/9efbaac1-ae4e-4f55-b6ac-37093f852a04/intel-ipp-2022.3.0.394_offline.sh", + sha256="b0278af818ffa63bbefd7ac6a3e30f6e76e4e85093cb788883cb2b8609711de3", + expand=False, + ) version( "2022.2.0", url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/d9649232-67ed-489e-8cd8-2c4c54b06135/intel-ipp-2022.2.0.583_offline.sh", diff --git a/repos/spack_repo/builtin/packages/intel_oneapi_ippcp/package.py b/repos/spack_repo/builtin/packages/intel_oneapi_ippcp/package.py index c7337efc34f..d162884c7a1 100644 --- a/repos/spack_repo/builtin/packages/intel_oneapi_ippcp/package.py +++ b/repos/spack_repo/builtin/packages/intel_oneapi_ippcp/package.py @@ -29,6 +29,18 @@ class IntelOneapiIppcp(IntelOneApiLibraryPackage): "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/ipp.html" ) + version( + "2026.0.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/db3a2202-3937-4149-8845-087401bd2fba/intel-cryptography-primitives-library-2026.0.0.472_offline.sh", + sha256="79a27cea101c44ec4d5bdf66684e5dd5348aa6454c7082b226e46aa437277143", + expand=False, + ) + version( + "2025.3.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/acf9ea09-5527-42b0-951a-943fbd8ec0b0/intel-cryptography-primitives-library-2025.3.0.275_offline.sh", + sha256="fc22bf191bef451489ae41f2fe985eee9649fed19a94761068938dd17b710803", + expand=False, + ) version( "2025.2.0", url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/60f39c8f-1f9a-4d58-80d1-452381eeed1a/intel-cryptography-primitives-library-2025.2.0.448_offline.sh", diff --git a/repos/spack_repo/builtin/packages/intel_oneapi_mkl/package.py b/repos/spack_repo/builtin/packages/intel_oneapi_mkl/package.py index 2e8770625e4..0e906993862 100644 --- a/repos/spack_repo/builtin/packages/intel_oneapi_mkl/package.py +++ b/repos/spack_repo/builtin/packages/intel_oneapi_mkl/package.py @@ -21,7 +21,6 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage): applications. Core math functions include BLAS, LAPACK, ScaLAPACK, sparse solvers, fast Fourier transforms, and vector math. - """ maintainers("rscohn2") @@ -30,6 +29,25 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage): "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html" ) + version( + "2026.0.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/db60f483-f02e-4f7e-9bcd-5e01dba97444/intel-onemkl-2026.0.0.909_offline.sh", + sha256="f63fd6ce3a374993caa0482fec0a3b9f2c312beeabff82009ab51fca90c97225", + expand=False, + ) + + version( + "2025.3.1", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/6a17080f-f0de-41b9-b587-52f92512c59a/intel-onemkl-2025.3.1.11_offline.sh", + sha256="89753ce0be82d31669172c08c6b6b863f2e25558d775496349473b3299240a01", + expand=False, + ) + version( + "2025.3.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/2ad98b49-1fb2-4294-ab3d-6889b434ebd3/intel-onemkl-2025.3.0.462_offline.sh", + sha256="6d0152abbfb85c51abb47bbf8d21711cb43c409a0e673d67970dbe6cf20c1970", + expand=False, + ) version( "2025.2.0", url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/47c7d946-fca1-441a-b0df-b094e3f045ea/intel-onemkl-2025.2.0.629_offline.sh", @@ -59,7 +77,6 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage): url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/89a381f6-f85d-4dda-ae62-30d51470f53c/l_onemkl_p_2024.2.2.17_offline.sh", sha256="6b64ab95567bee53d6cf7e78f9f7b15695902fb9da0d20c29e638ad001b6b348", expand=False, - preferred=True, ) version( "2024.2.1", @@ -191,7 +208,7 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage): msg="MKL with OpenMP threading requires GCC, clang, or Intel compilers", ) - depends_on("tbb") + depends_on("tbb", when="threads=tbb") # cluster libraries need mpi depends_on("mpi", when="+cluster") @@ -206,10 +223,9 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage): requires("mpi_family=openmpi", when="^[virtuals=mpi] openmpi") requires("mpi_family=openmpi", when="^[virtuals=mpi] hpcx-mpi") - provides("fftw-api@3") provides("scalapack", when="+cluster") - provides("mkl") - provides("lapack", "blas") + provides("lapack", "blas", "mkl") + provides("fftw-api@3") @run_after("install") def fixup_installation(self): @@ -245,6 +261,12 @@ def libs(self): else: return IntelOneApiStaticLibraryList(libs, system_libs) + @property + def headers(self): + headers = find_all_headers(self.component_prefix.include) + headers.directories = [self.component_prefix.include, self.component_prefix.include.fftw] + return headers + def setup_dependent_build_environment( self, env: EnvironmentModifications, dependent_spec: Spec ) -> None: diff --git a/repos/spack_repo/builtin/packages/intel_oneapi_mpi/package.py b/repos/spack_repo/builtin/packages/intel_oneapi_mpi/package.py index d200d104571..c87c19a2254 100644 --- a/repos/spack_repo/builtin/packages/intel_oneapi_mpi/package.py +++ b/repos/spack_repo/builtin/packages/intel_oneapi_mpi/package.py @@ -3,6 +3,9 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os +import re + from spack_repo.builtin.build_systems.oneapi import IntelOneApiLibraryPackage, IntelOneApiPackage from spack.package import * @@ -22,6 +25,42 @@ class IntelOneapiMpi(IntelOneApiLibraryPackage): homepage = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/mpi-library.html" + version( + "2021.18.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/1710a04f-08b7-4b46-a0a5-bd46a4ef4436/intel-mpi-2021.18.0.748_offline.sh", + sha256="a1d9bebb9112f166c1911371971ae03fecb447f58d9f28f5c8ecdf78fb697f29", + expand=False, + ) + version( + "2021.17.2", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/86923909-82e5-4c1a-9499-b4263e800a33/intel-mpi-2021.17.2.94_offline.sh", + sha256="4861c55fdfde1f08a293a7cfb715aaab498cb8fc700d5db8f0b67660e5948350", + expand=False, + ) + version( + "2021.17.1", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/7ba1f01b-8910-4f49-ad09-27751feb8009/intel-mpi-2021.17.1.13_offline.sh", + sha256="f6ce783a693ef508045a5c2ae425350f1c28f6cb4ad829d6b4a7ca65eb104eb3", + expand=False, + ) + version( + "2021.17.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/0a3cb474-49c7-45a9-9dea-104122592a63/intel-mpi-2021.17.0.377_offline.sh", + sha256="7b6b6856f708ce3b95a303522d420e3761f290fc712b7890c7b6179de0140ff1", + expand=False, + ) + version( + "2021.16.2", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/fc0ac5a0-c09e-443f-ba97-a63b7552ca4b/intel-mpi-2021.16.2.916_offline.sh", + sha256="4c523de187394a687fd3ec43121c8c00f072df0b2af0caf8d4a237358f2d3f4a", + expand=False, + ) + version( + "2021.16.1", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/203edae7-5269-4124-a1ed-09ad924f8b47/intel-mpi-2021.16.1.804_offline.sh", + sha256="4165717608e90ae6123397ebf2a9b87a0b070842ce7d13378d1446a08966eb6e", + expand=False, + ) version( "2021.16.0", url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/f334686e-b5ec-4378-b481-57759889b275/intel-mpi-2021.16.0.443_offline.sh", @@ -170,10 +209,49 @@ class IntelOneapiMpi(IntelOneApiLibraryPackage): "external-libfabric", default=False, description="Enable external libfabric dependency" ) depends_on("libfabric", when="+external-libfabric", type=("link", "run")) + conflicts("libfabric", when="~external-libfabric") provides("mpi@:3.1") conflicts("+generic-names +classic-names") + executables = [r"^mpiicpx$"] + + @classmethod + def determine_version(cls, exe): + output = Executable(exe)("-v", output=str, error=str) + match = re.search(r"MPI Library (20\d\d(\.\d+)+)", output) + return match.group(1) if match else None + + @classmethod + def determine_variants(cls, exes, version_str): + output = Executable(exes[0])("-show", output=str, error=str) + lib_paths = re.findall(r'-L"?([^\s"]+)"?', output) + variants_set = set() + for lib_path in set(lib_paths): + mpi_root = join_path(lib_path, "..") + # Look for ilp64 + if os.path.exists(join_path(lib_path, "libmpi_ilp64.so")): + variants_set.add("+ilp64") + # Look for libfabric + libfabric_dir = join_path(mpi_root, "opt/mpi/libfabric/lib") + if os.path.exists(join_path(libfabric_dir, "libfabric.so")): + variants_set.add("~external-libfabric") + # If generic executables don't exist, disable the variant + mpicxx_path = join_path(mpi_root, "bin", "mpicxx") + if not os.path.exists(mpicxx_path): + variants_set.add("~generic-names") + # If classic executables don't exist, disable the variant + mpiicpc_path = join_path(mpi_root, "bin", "mpiicpc") + if not os.path.exists(mpiicpc_path): + variants_set.add("~classic-names") + + if "+ilp64" not in variants_set: + variants_set.add("~ilp64") + if "~external-libfabric" not in variants_set: + variants_set.add("+external-libfabric") + + return "".join(list(variants_set)) + @property def mpiexec(self): return self.component_prefix.bin.mpiexec @@ -204,7 +282,7 @@ def wrapper_names(self): def wrapper_paths(self): return [self.component_prefix.bin.join(name) for name in self.wrapper_names()] - def setup_dependent_package(self, module, dep_spec): + def setup_dependent_package(self, module, dependent_spec): wrappers = self.wrapper_paths() self.spec.mpicc = wrappers[0] self.spec.mpicxx = wrappers[1] diff --git a/repos/spack_repo/builtin/packages/intel_oneapi_runtime/package.py b/repos/spack_repo/builtin/packages/intel_oneapi_runtime/package.py index c1826febaa4..1c696cc9806 100644 --- a/repos/spack_repo/builtin/packages/intel_oneapi_runtime/package.py +++ b/repos/spack_repo/builtin/packages/intel_oneapi_runtime/package.py @@ -61,7 +61,20 @@ def install(self, spec, prefix): return for path, name in libraries: - install(path, os.path.join(prefix.lib, name)) + install(path, os.path.join(prefix.lib, os.path.basename(name))) + + if self.spec["intel-oneapi-compilers"].satisfies("+fix_rt_linkage"): + for _, name in libraries: + if name == "libimf.so": + patchelf = which("patchelf") + patchelf.add_default_arg("--add-needed") + patchelf.add_default_arg("libm.so.6") + patchelf(join_path(prefix.lib, name), fail_on_error=True) + if name in ["libirc.so", "libimf.so"]: + patchelf = which("patchelf") + patchelf.add_default_arg("--add-needed") + patchelf.add_default_arg("libc.so.6") + patchelf(join_path(prefix.lib, name), fail_on_error=True) if self.spec["intel-oneapi-compilers"].satisfies("+fix_rt_linkage"): for _, name in libraries: diff --git a/repos/spack_repo/builtin/packages/intel_oneapi_tbb/package.py b/repos/spack_repo/builtin/packages/intel_oneapi_tbb/package.py index 67c2fb6212a..07093dd7570 100644 --- a/repos/spack_repo/builtin/packages/intel_oneapi_tbb/package.py +++ b/repos/spack_repo/builtin/packages/intel_oneapi_tbb/package.py @@ -23,6 +23,24 @@ class IntelOneapiTbb(IntelOneApiLibraryPackage): "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onetbb.html" ) + version( + "2023.0.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/0abefd3d-79b7-44b6-9b64-d82dea1b9dae/intel-onetbb-2023.0.0.725_offline.sh", + sha256="86f1055eb647699e818249fbc8ff0a651b66b58d193e9c9967d454b8e4aca9e7", + expand=False, + ) + version( + "2022.3.1", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/233a8b7a-ec95-4e51-bc5f-9dcd4f0d1dc3/intel-onetbb-2022.3.1.402_offline.sh", + sha256="cbd986db85a6f8b2d924ef00bf9a8ac2f781690e64611cccdb60eb18bb658d3b", + expand=False, + ) + version( + "2022.3.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/1134c0a9-1960-465a-ac29-3b692e45f417/intel-onetbb-2022.3.0.383_offline.sh", + sha256="a65ce842b88b1bbb1bec57649932b2eaa7eb008667a6086d80b982a7b80bac50", + expand=False, + ) version( "2022.2.0", url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/7516db94-4877-4ffe-8dde-37e9a46e69a2/intel-onetbb-2022.2.0.508_offline.sh", diff --git a/repos/spack_repo/builtin/packages/intel_oneapi_vtune/package.py b/repos/spack_repo/builtin/packages/intel_oneapi_vtune/package.py index 5b75f527175..9ec008cf793 100644 --- a/repos/spack_repo/builtin/packages/intel_oneapi_vtune/package.py +++ b/repos/spack_repo/builtin/packages/intel_oneapi_vtune/package.py @@ -29,6 +29,47 @@ class IntelOneapiVtune(IntelOneApiLibraryPackageWithSdk): homepage = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/vtune-profiler.html" + version( + "2026.0.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/a00e5b88-bdcc-4dc4-aa00-142fc59aba25/intel-vtune-2026.0.0.329_offline.sh", + sha256="24357fe1f1de7fe6a45b2e0f8f05f005615d4ddf4599b6d9d6467b673f322fe6", + expand=False, + ) + version( + "2025.10.1", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/c80944e2-5eb4-42fa-9a94-3a198c0d5595/intel-vtune-2025.10.1.16_offline.sh", + sha256="8ca8e7bb4a9bb630d63a14b068226ae839522c710aee81b82943962439777294", + ) + version( + "2025.8.1", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/8ab935f9-98cd-46b2-8e3f-df29ef73af84/intel-vtune-2025.8.1.8_offline.sh", + sha256="bf47be3140f89b7e85eb09aad1314d032621e4a8c2fa4e0dab934a3c349e4a5e", + expand=False, + ) + version( + "2025.8.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/15ddff8e-7875-4973-9120-fa2e18759fba/intel-vtune-2025.8.0.9_offline.sh", + sha256="d35cd3a7220d0156b64fcee468a04649de4be50ba14a04232bc411c6226f941b", + expand=False, + ) + version( + "2025.7.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/a04c89ad-d663-4f70-bd3d-bb44f5c16d57/intel-vtune-2025.7.0.248_offline.sh", + sha256="4bc06c56eab368ee0ff57e87ea0f563663db6c60ea3f9cf9badf16928e43e321", + expand=False, + ) + version( + "2025.6.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/a62585a0-db22-4fc3-8554-a5ed74d5a4e8/intel-vtune-2025.6.0.31_offline.sh", + sha256="60830610ce9807f951285c89f585f001c339a8c6deaa4bc8db33931ba7ae6167", + expand=False, + ) + version( + "2025.5.0", + url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/2775669e-5be4-4982-96de-d0ca5444859a/intel-vtune-2025.5.0.40_offline.sh", + sha256="dc75067a48dc04a58b15b5944f1d8e951f3340ef7e2652030cab082ff53c6a87", + expand=False, + ) version( "2025.4.0", url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/4f1e7dad-5201-4f0c-b302-bc3a8825d824/intel-vtune-2025.4.0.248_offline.sh", diff --git a/repos/spack_repo/builtin/packages/intel_pin/package.py b/repos/spack_repo/builtin/packages/intel_pin/package.py index 0c80400518f..98fcc50998b 100644 --- a/repos/spack_repo/builtin/packages/intel_pin/package.py +++ b/repos/spack_repo/builtin/packages/intel_pin/package.py @@ -17,6 +17,21 @@ class IntelPin(Package): license("MIT") + version( + "4.2", + sha256="194a2cec51678203452ece0d9e8cbb1819eb6e1221f0341091c49248f384d869", + url="https://software.intel.com/sites/landingpage/pintool/downloads/pin-external-4.2-99776-g21d818fa2-gcc-linux.tar.gz", + ) + version( + "4.1", + sha256="e2c5037d23752aa5fc6ee4cfeee080f8b45ba5cbe7104b2384db32573daf7e25", + url="https://software.intel.com/sites/landingpage/pintool/downloads/pin-external-4.1-99687-gd9b8f822c-gcc-linux.tar.gz", + ) + version( + "4.0", + sha256="2d371e2b62c3e01d885fbe32dc2c28a5b01917c61e2303c1e5bd768cfa104fd8", + url="https://software.intel.com/sites/landingpage/pintool/downloads/pin-external-4.0-99633-g5ca9893f2-gcc-linux.tar.gz", + ) version( "3.31", sha256="82216144e3df768f0203b671ff48605314f13266903eb42dac01b91310eba956", @@ -133,8 +148,7 @@ class IntelPin(Package): url="https://software.intel.com/sites/landingpage/pintool/downloads/pin-2.14-71313-gcc.4.4.7-linux.tar.gz", ) - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + conflicts("gcc@15:", when="@:3", msg="Pin v3 does not work with GCC 15 or newer") def install(self, spec, prefix): install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/intel_tbb/package.py b/repos/spack_repo/builtin/packages/intel_tbb/package.py index 39065c7ede1..dc4eaa74f71 100644 --- a/repos/spack_repo/builtin/packages/intel_tbb/package.py +++ b/repos/spack_repo/builtin/packages/intel_tbb/package.py @@ -33,6 +33,10 @@ class IntelTbb(CMakePackage, MakefilePackage): license("Apache-2.0") version("master", branch="master") + version("2023.0.0", sha256="f8767b971ec6aea25dde58ae0f593e94e7aa75a739a86f67967012f69e2199b1") + version("2022.3.0", sha256="01598a46c1162c27253a0de0236f520fd8ee8166e9ebb84a4243574f88e6e50a") + version("2022.2.0", sha256="f0f78001c8c8edb4bddc3d4c5ee7428d56ae313254158ad1eec49eced57f6a5b") + version("2022.1.0", sha256="ed067603ece0dc832d2881ba5c516625ac2522c665d95f767ef6304e34f961b5") version("2022.0.0", sha256="e8e89c9c345415b17b30a2db3095ba9d47647611662073f7fbf54ad48b7f3c2a") version("2021.13.0", sha256="3ad5dd08954b39d113dc5b3f8a8dc6dc1fd5250032b7c491eb07aed5c94133e1") version("2021.12.0", sha256="c7bb7aa69c254d91b8f0041a71c5bcc3936acb64408a1719aec0b2b7639dd84f") @@ -110,7 +114,7 @@ class IntelTbb(CMakePackage, MakefilePackage): variant( "cxxstd", default="default", - values=("default", "98", "11", "14", "17"), + values=("default", "98", "11", "14", "17", "20", "23"), multi=False, description="Use the specified C++ standard when building.", ) @@ -136,7 +140,7 @@ class IntelTbb(CMakePackage, MakefilePackage): # Patch and conflicts for GCC 13 support (#1031). patch("gcc_13-2021-v2.patch", when="@2021.1:2021.9") - conflicts("%gcc@13", when="@:2021.3") + conflicts("%gcc@13:", when="@:2021.3") # Patch cmakeConfig.cmake.in to find the libraries where we install them. patch("tbb_cmakeConfig-2019.5.patch", level=0, when="@2019.5:2021.0") @@ -211,8 +215,13 @@ def cmake_args(self): self.define("TBB_STRICT", False), self.define("TBB_TEST", False), ] + + if spec.satisfies("@2021.6.0:"): + options.append(self.define_from_variant("TBB_ENABLE_IPO", "ipo")) + if spec.variants["cxxstd"].value != "default": options.append(self.define("CMAKE_CXX_STANDARD", spec.variants["cxxstd"].value)) + return options @run_after("install") diff --git a/repos/spack_repo/builtin/packages/intel_xed/2019-python3.patch b/repos/spack_repo/builtin/packages/intel_xed/2019-python3.patch deleted file mode 100644 index 50cec622321..00000000000 --- a/repos/spack_repo/builtin/packages/intel_xed/2019-python3.patch +++ /dev/null @@ -1,12 +0,0 @@ -Old revs call python instead of python3. - -diff --git a/mfile.py b/mfile.py -index b6889c6..b43b442 100755 ---- a/mfile.py -+++ b/mfile.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # -*- python -*- - #BEGIN_LEGAL - # diff --git a/repos/spack_repo/builtin/packages/intel_xed/package.py b/repos/spack_repo/builtin/packages/intel_xed/package.py index 76982f69a0a..233e61c6e76 100644 --- a/repos/spack_repo/builtin/packages/intel_xed/package.py +++ b/repos/spack_repo/builtin/packages/intel_xed/package.py @@ -24,6 +24,10 @@ class IntelXed(Package): # Current versions now have actual releases and tags. version("main", branch="main") + version("2025.06.08", tag="v2025.06.08", commit="dc6bdbe036515c7ef55d3b2d50bafc5232bfe534") + version("2025.03.02", tag="v2025.03.02", commit="1bdc793f5f64cf207f6776f4c0e442e39fa47903") + version("2024.11.04", tag="v2024.11.04", commit="d4d502003bfff51c55c2808804301a62878d7cc8") + version("2024.08.15", tag="v2024.08.15", commit="ea330dbdf42837029ddd8c690729fceb6e7f5e42") version("2024.05.20", tag="v2024.05.20", commit="7e88c3e00274a10daa6b9d053decc057f65aa0ec") version("2024.04.01", tag="v2024.04.01", commit="6d87b5481aa53b5ab1fc2b5a5622759c46746bf9") version("2024.02.22", tag="v2024.02.22", commit="d08a6f66f780a685f26322960cd3ae297dbad931") @@ -38,9 +42,6 @@ class IntelXed(Package): version("12.0.1", tag="12.0.1", commit="5976632eeaaaad7890c2109d0cfaf4012eaca3b8") version("11.2.0", tag="11.2.0", commit="40125558530137444b4ee6fd26b445bfa105b543") - # The old 2019.03.01 version (before there were tags). - version("10.2019.03", commit="b7231de4c808db821d64f4018d15412640c34113", deprecated=True) - # XED wants the mbuild directory adjacent to xed in the same directory. mdir = join_path("..", "mbuild") @@ -51,9 +52,9 @@ class IntelXed(Package): name="mbuild", placement=mdir, git=mbuild_git, - tag="v2022.07.28", - commit="75cb46e6536758f1a3cdb3d6bd83a4a9fd0338bb", - when="@2022.07:9999", + tag="v2024.11.04", + commit="7c4497f41f576b43a80bb0f8d8452bbcfd58b6e2", + when="@2022.07:", ) resource( @@ -85,10 +86,9 @@ class IntelXed(Package): depends_on("cxx", type="build") # The current mfile uses python3 by name. - depends_on("python@3.7:", type="build") + depends_on("python@3.9:", type="build") patch("1201-segv.patch", when="@12.0.1") - patch("2019-python3.patch", when="@10.2019.03") patch("libxed-ild.patch", when="@12.0:2022.12") requires("target=x86_64:,aarch64:", msg="intel-xed only builds on x86-64 or aarch64") @@ -100,7 +100,7 @@ def patch(self): # See: https://github.com/intelxed/xed/issues/300 try: lname = join_path(self.stage.source_path, "..", "xed") - os.symlink("spack-src", lname) + symlink("spack-src", lname) except OSError: pass diff --git a/repos/spack_repo/builtin/packages/interproscan/package.py b/repos/spack_repo/builtin/packages/interproscan/package.py index 6d4eb09e0f3..ec2f19fe8d2 100644 --- a/repos/spack_repo/builtin/packages/interproscan/package.py +++ b/repos/spack_repo/builtin/packages/interproscan/package.py @@ -22,6 +22,9 @@ class Interproscan(Package): license("Apache-2.0") + version( + "5.76-107.0", sha256="4ffd493776993cdebcc7e4c90d6595a53d55f83bbd961b30e9e314b190318e69" + ) version("5.63-95.0", sha256="3d7babd09e64da3d7104c58f1e5104a298d69425e3210952331bc3f1ddf89ca6") version("5.61-93.0", sha256="70aca3b14983733fe5119b6978cb707156d006d7f737aa60ce6c9addd6c288e4") version("5.56-89.0", sha256="75e6a8f86ca17356a2f77f75b07d6d8fb7b397c9575f6e9716b64983e490b230") @@ -33,6 +36,12 @@ class Interproscan(Package): url="ftp://ftp.ebi.ac.uk/pub/software/unix/iprscan/4/RELEASE/4.8/iprscan_v4.8.tar.gz", ) + resource( + when="@5.76-107.0 +databases", + name="databases", + url="https://ftp.ebi.ac.uk/pub/databases/interpro/iprscan/5/5.76-107.0/alt/interproscan-data-5.76-107.0.tar.gz", + sha256="606f7ffb1f131a52307674241501dd6104c9f96824b3817e7a5ed6304c55c729", + ) resource( when="@5.63-95.0 +databases", name="databases", @@ -100,16 +109,16 @@ class Interproscan(Package): patch("large-gid.patch", when="@5:") patch("non-interactive.patch", when="@:4.8") patch("ps_scan.patch", when="@:4.8") - patch("web-pom.patch", when="@5:") + patch("web-pom.patch", when="@5:5.63-95.0") def install(self, spec, prefix): with working_dir("core"): if self.run_tests: - which("mvn")("verify") + which("mvn", required=True)("verify") else: - which("mvn")("clean", "install", "-DskipTests") + which("mvn", required=True)("clean", "install", "-DskipTests") with working_dir("jms-implementation"): - which("mvn")("clean", "package", "-DskipTests") + which("mvn", required=True)("clean", "package", "-DskipTests") target = join_path("core", "jms-implementation", "target", "interproscan-5-dist") install_tree(target, prefix) @@ -123,7 +132,7 @@ def install(self, spec, prefix): @when("@:4.8") def install(self, spec, prefix): - perl = which("perl") + perl = which("perl", required=True) src = join_path(self.stage.source_path, "iprscan", "bin", "Linux") dst = join_path(self.stage.source_path, "bin", "binaries") diff --git a/repos/spack_repo/builtin/packages/ioapi/package.py b/repos/spack_repo/builtin/packages/ioapi/package.py index 22487aae9aa..17d79f8ec95 100644 --- a/repos/spack_repo/builtin/packages/ioapi/package.py +++ b/repos/spack_repo/builtin/packages/ioapi/package.py @@ -2,8 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import os - from spack_repo.builtin.build_systems.makefile import MakefilePackage from spack.package import * @@ -13,24 +11,70 @@ class Ioapi(MakefilePackage): """Models-3/EDSS Input/Output Applications Programming Interface.""" homepage = "https://www.cmascenter.org/ioapi/" - url = "https://www.cmascenter.org/ioapi/download/ioapi-3.2.tar.gz" + git = "https://github.com/cjcoats/ioapi-3.2.git" + maintainers("omsai") - # This checksum is somewhat meaningless because upstream updates the tarball - # without incrementing the version despite requests no to do this. - # Therefore the checksum fails everytime upstream silently updates the - # source tarball (#28247). This also means that one must test for breaking - # changes when updating the checksum and avoid #22633. - version("3.2", sha256="0a3cbf236ffbd9fb5f6509e35308c3353f1f53096efe0c51b84883d2da86924b") - - depends_on("c", type="build") # generated - depends_on("fortran", type="build") # generated - depends_on("netcdf-c@4:") - depends_on("netcdf-fortran@4:") + + license("GPL-2.0-or-later", checked_by="omsai") + + # The two -develop versions below without date suffixes are "rolling + # releases": + # https://www.cmascenter.org/ioapi/documentation/all_versions/html/AVAIL.html#build + # If you installed ioapi@3.2 previously it was a rolling release that + # caused checksums to fail (#22633, #28247). Until recently, upstream did + # not freeze tarballs and now freezes them with a date suffix. + version("4.0-develop", branch="ioapi-4.0") + version("3.2-develop", branch="master") + # Dated suffix versions are now pulled from GitHub. The dates below are + # based on the, the GitHub tag release date, because there is no other + # reliable version: + # 1. Most of upstream's tagged versions are missing a leading zero and are + # therefore not in ascending numerical order which break versioning + # relationships. + # 2. The tarball VERSION.txt is not reliably updated. + version("3.2.20200828", commit="ef5d5f4e112c249b593b19426421f25d79ae094b", preferred=True) + version("3.2.20200714", commit="6ebb47e96db3b641af63ee5f853c943b596a1268") + version("3.2.20200420", commit="4017280cc656993a5be50f0da9287a56166da22b") + + # MPI support is not yet well supported in this spack package and + # may fail to build. + variant("mpi", default=False, description="Enable MPI support") + + depends_on("c", type="build") + depends_on("fortran", type="build") depends_on("sed", type="build") + depends_on("mpi", when="+mpi") + depends_on("netcdf-c@4.4.2: ~mpi +parallel-netcdf", when="+mpi") + depends_on("netcdf-c@4.4.2: ~mpi", when="~mpi") + depends_on("netcdf-fortran@4.4.2:") + + # Supporting compilers by mapping to their Makeinclude files + # requires additional work and testing; the package naming scheme + # is inconsistent perhaps because it's meant more for human + # editing. + conflicts("^intel-oneapi-compilers", msg="Update this spack package to support oneapi") + conflicts("%nvhpc", msg="Update this spack package to support pgi") + # There is no evidence of support for LLVM even on macOS. + conflicts("%llvm", msg="IOAPI does not support LLVM") + + # Parallel build will fail with this error: + # + # Fatal Error: Cannot open module file 'm3utilio.mod' for reading at (1): + # No such file or directory + parallel = False + + def setup_build_environment(self, env): + # The BIN environmental variables needs to be set in addition + # to being written into the top-level Makefile. + BIN = "Linux2_x86_64gfort" + if self.spec.satisfies("+mpi"): + BIN += "mpi" + env.set("BIN", BIN) + def edit(self, spec, prefix): # No default Makefile bundled; edit the template. - os.symlink("Makefile.template", "Makefile") + symlink("Makefile.template", "Makefile") # The makefile uses stubborn assignments of = instead of ?= so # edit the makefile instead of using environmental variables. makefile = FileFilter("Makefile") @@ -41,6 +85,9 @@ def edit(self, spec, prefix): \\1 """.strip(), ) + BIN = "Linux2_x86_64gfort" + if self.spec.satisfies("+mpi"): + BIN += "mpi" makefile.filter( "^BASEDIR.*", ( @@ -56,16 +103,26 @@ def edit(self, spec, prefix): + """ LIBINST = """ + prefix.lib - + """ -BIN = Linux2_x86_64 + + f""" +BIN = {BIN} """ ).strip(), ) # Fix circular dependency bug for generating subdirectory Makefiles. makefile.filter("^configure:.*", "configure:") + # Fix hard-coded fortran mpi compiler. + if self.spec.satisfies("+mpi"): + makeinclude = FileFilter(f"ioapi/Makeinclude.{BIN}") + makeinclude.filter("mpicc", f"{self.spec['mpi'].mpicc}") + makeinclude.filter("mpif90", f"{self.spec['mpi'].mpifc}") # Generate the subdirectory Makefiles. make("configure") + def flag_handler(self, name: str, flags: List[str]): + if name == "fflags" and self.spec.satisfies("%fortran=gcc@10:"): + flags.append("-fallow-argument-mismatch") + return (flags, None, None) + def install(self, spec, prefix): make("install") # Install the header files. diff --git a/repos/spack_repo/builtin/packages/ior/package.py b/repos/spack_repo/builtin/packages/ior/package.py index 0cefa4fe9c2..a05c0140988 100644 --- a/repos/spack_repo/builtin/packages/ior/package.py +++ b/repos/spack_repo/builtin/packages/ior/package.py @@ -29,6 +29,7 @@ class Ior(AutotoolsPackage): variant("hdf5", default=False, description="support IO with HDF5 backend") variant("ncmpi", default=False, description="support IO with NCMPI backend") variant("lustre", default=False, description="support configurable Lustre striping values") + variant("aio", default=False, description="support AIO backend API", when="@4:") depends_on("c", type="build") # generated @@ -36,10 +37,12 @@ class Ior(AutotoolsPackage): depends_on("automake", type="build") depends_on("libtool", type="build") depends_on("m4", type="build") + depends_on("pkgconf", type="build", when="@4.0.0:") depends_on("mpi") depends_on("hdf5+mpi", when="+hdf5") depends_on("parallel-netcdf", when="+ncmpi") depends_on("lustre", when="+lustre") + depends_on("libaio", when="+aio") # The build for 3.2.0 fails if hdf5 is enabled # See https://github.com/hpc/ior/pull/124 @@ -54,7 +57,7 @@ class Ior(AutotoolsPackage): patch( "https://github.com/glennklockwood/ior/commit/e49476be64d4100c2da662ea415f327348b3d11d.patch?full_index=1", sha256="ee3527023ef70ea9aee2e6208f8be7126d5a48f26c587deed3d6238b4f848a06", - when="+lustre", + when="+lustre @:3", ) @run_before("autoreconf") @@ -83,4 +86,9 @@ def configure_args(self): else: config_args.append("--without-lustre") + if spec.satisfies("+aio"): + config_args.append("--with-aio") + else: + config_args.append("--without-aio") + return config_args diff --git a/repos/spack_repo/builtin/packages/iozone/package.py b/repos/spack_repo/builtin/packages/iozone/package.py index d1eb0949cb6..174a11ca232 100644 --- a/repos/spack_repo/builtin/packages/iozone/package.py +++ b/repos/spack_repo/builtin/packages/iozone/package.py @@ -44,3 +44,17 @@ def install(self, spec, prefix): with working_dir(self.build_directory): install_tree(".", prefix.bin) + + def flag_handler(self, name, flags): + # Suppress some standard checks to allow compiling with + # newer gcc. + if name == "cflags": + if self.spec.satisfies("%gcc@10:"): + flags.append("-fcommon") + if self.spec.satisfies("%gcc@14:"): + flags.append("-Wno-error=implicit-int") + flags.append("-Wno-error=implicit-function-declaration") + if self.spec.satisfies("%gcc@15:"): + # Work around compilation errors with the default gnu23. + flags.append("-std=gnu17") + return (flags, None, None) diff --git a/repos/spack_repo/builtin/packages/ip2/package.py b/repos/spack_repo/builtin/packages/ip2/package.py deleted file mode 100644 index d538945e40e..00000000000 --- a/repos/spack_repo/builtin/packages/ip2/package.py +++ /dev/null @@ -1,41 +0,0 @@ -# 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 Ip2(CMakePackage): - """The NCEP general interpolation library 2 (ip2lib) contains Fortran - 90 subprograms to be used for interpolating between nearly all - grids used at NCEP. This library is deprecated; all functionality - has been moved to the ip library. - - This is part of the NCEPLIBS project.""" - - homepage = "https://github.com/NOAA-EMC/NCEPLIBS-ip2" - url = "https://github.com/NOAA-EMC/NCEPLIBS-ip2/archive/refs/tags/v1.1.2.tar.gz" - - maintainers("t-brown", "AlexanderRichert-NOAA", "Hang-Lei-NOAA", "edwardhartnett") - - version( - "1.1.2", - sha256="73c6beec8fd463ec7ccba3633d8c5d53d385c43d507367efde918c2db0af42ab", - deprecated=True, - ) - - depends_on("c", type="build") - depends_on("fortran", type="build") - - depends_on("sp") - requires("^sp precision=4,8,d", when="^sp@2.4:") - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - for suffix in ("4", "8", "d"): - lib = find_libraries( - "libip2_" + suffix, root=self.prefix, shared=False, recursive=True - ) - env.set("IP2_LIB" + suffix, lib[0]) - env.set("IP2_INC" + suffix, join_path(self.prefix, "include_" + suffix)) diff --git a/repos/spack_repo/builtin/packages/iq_tree/package.py b/repos/spack_repo/builtin/packages/iq_tree/package.py index e842e898258..21027ffd102 100644 --- a/repos/spack_repo/builtin/packages/iq_tree/package.py +++ b/repos/spack_repo/builtin/packages/iq_tree/package.py @@ -17,6 +17,9 @@ class IqTree(CMakePackage): license("GPL-2.0-or-later") + version( + "2.4.0", tag="v2.4.0", commit="977cc4324234b36fbfb80b326b8e43b73952e365", submodules=True + ) version( "2.3.2", tag="v2.3.1", commit="60f1aa68646ab84cc96b55a7548707adde15f47a", submodules=True ) @@ -49,7 +52,7 @@ class IqTree(CMakePackage): # Depends on Eigen3 and zlib depends_on("boost+container+math+exception") - depends_on("eigen") + depends_on("eigen@3") depends_on("zlib-api") depends_on("mpi", when="+mpi") 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/isoquant/package.py b/repos/spack_repo/builtin/packages/isoquant/package.py index 9a7e295f22d..589048bf87a 100644 --- a/repos/spack_repo/builtin/packages/isoquant/package.py +++ b/repos/spack_repo/builtin/packages/isoquant/package.py @@ -39,7 +39,7 @@ class Isoquant(Package): depends_on("py-seaborn@0.10.0:", type="run") def install(self, spec, prefix): - chmod = which("chmod") + chmod = which("chmod", required=True) chmod("+x", "isoquant.py", "visualize.py") mkdirp(prefix.bin) install("*.py", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/ispc/ispc-1.19-regexp.patch b/repos/spack_repo/builtin/packages/ispc/ispc-1.19-regexp.patch new file mode 100644 index 00000000000..ad17ffa6dfd --- /dev/null +++ b/repos/spack_repo/builtin/packages/ispc/ispc-1.19-regexp.patch @@ -0,0 +1,13 @@ +--- a/bitcode2cpp.py 2023-02-28 08:53:24.000000000 +0100 ++++ b/bitcode2cpp.py.fixed 2025-08-26 17:37:16.373912000 +0200 +@@ -22,8 +22,8 @@ + target = re.sub(r".*builtins\\target-", "", target) + target = re.sub(".*builtins/", "", target) + target = re.sub(r".*builtins\\", "", target) +-target = re.sub("\.ll$", "", target) +-target = re.sub("\.c$", "", target) ++target = re.sub(r"\.ll$", "", target) ++target = re.sub(r"\.c$", "", target) + target = re.sub("-", "_", target) + + llvm_as="llvm-as" diff --git a/repos/spack_repo/builtin/packages/ispc/package.py b/repos/spack_repo/builtin/packages/ispc/package.py index 9f7e0dea02f..b7d6d8cad85 100644 --- a/repos/spack_repo/builtin/packages/ispc/package.py +++ b/repos/spack_repo/builtin/packages/ispc/package.py @@ -28,6 +28,7 @@ class Ispc(CMakePackage): license("BSD-3-Clause") version("main", branch="main") + version("1.30.0", sha256="2ccf9791ebe3ae14db7d60f84d860284f6ef704417910a7df3a424e2b8e34d77") version("1.24.0", sha256="fac82c8f3f7ece2bc96620cef0b34e10b29462de9349447bcd8c3ba98cfdcd72") version("1.23.0", sha256="e268eabed9a9021b4402725ed1c120b8eca776ee4aaf50ddeb0e4adaadda05f9") version("1.22.0", sha256="1f115eeed7df5028c19c9b256887949ca88c29c146f641b031d8e080297f5acd") @@ -58,6 +59,7 @@ class Ispc(CMakePackage): depends_on("llvm libcxx=none", when="platform=darwin", type="build") depends_on("llvm targets=arm,aarch64", when="target=arm:", type="build") depends_on("llvm targets=arm,aarch64", when="target=aarch64:", type="build") + depends_on("llvm@18:22", when="@1.30", type="build") depends_on("llvm@:18.1", when="@:1.24", type="build") depends_on("llvm@:17", when="@:1.23", type="build") depends_on("llvm@:15", when="@:1.20", type="build") @@ -81,6 +83,23 @@ class Ispc(CMakePackage): sha256="d3ccf547d3ba59779fd375e10417a436318f2200d160febb9f830a26f0daefdc", ) + # Turn a few regexp literals into raw strings, as otherwise some escape sequence fail + # to parse (shows warning). Patch based on ispc 1.22 version of bitcode2cpp.py + # in ispc github repo. + patch( + "ispc-1.19-regexp.patch", + when="@1.19", + sha256="dc5e5492442df91ba17877d84f062bc364140ee5620ed55b7beef87257030b74", + ) + + # Adds missing include, as otherwise uint32_t and friends aren't found + # and the build fails. Patch based on 1.19 -> 1.20 diff of ispc github repo + patch( + "stdint-fix.patch", + when="@1.19", + sha256="03303b2407718e340bfc574511f736ae0f6678e60db33f68147db29bdd806a1a", + ) + # Fix build with Apple clang 15 patch( "https://github.com/ispc/ispc/commit/a25cbdcdb86cb35ea40dcddeba03564128f83eca.patch?full_index=1", @@ -105,7 +124,12 @@ def patch(self): try: Executable(self.compiler.cc)("-m32", "-shared", "check-m32.c", error=str) except ProcessError: - filter_file("bit 32 64", "bit 64", "cmake/GenerateBuiltins.cmake") + # https://github.com/ispc/ispc/commit/3e03dffa8b58e77ea628d614f65763a8fdd90c18 + if self.spec.satisfies("@1.25:"): + cmake_target_file = "cmake/CommonStdlibBuiltins.cmake" + else: + cmake_target_file = "cmake/GenerateBuiltins.cmake" + filter_file("bit 32 64", "bit 64", cmake_target_file) def cmake_args(self): spec = self.spec diff --git a/repos/spack_repo/builtin/packages/ispc/stdint-fix.patch b/repos/spack_repo/builtin/packages/ispc/stdint-fix.patch new file mode 100644 index 00000000000..998b386aee8 --- /dev/null +++ b/repos/spack_repo/builtin/packages/ispc/stdint-fix.patch @@ -0,0 +1,10 @@ +--- a/src/target_registry.h 2023-02-28 08:53:24.000000000 +0100 ++++ b/src/target_registry.h.fixed 2025-08-26 17:43:23.338298000 +0200 +@@ -40,6 +40,7 @@ + #include "bitcode_lib.h" + + #include ++#include + #include + #include + diff --git a/repos/spack_repo/builtin/packages/itk/package.py b/repos/spack_repo/builtin/packages/itk/package.py index c6373282dca..b0358a6b93b 100644 --- a/repos/spack_repo/builtin/packages/itk/package.py +++ b/repos/spack_repo/builtin/packages/itk/package.py @@ -25,6 +25,10 @@ class Itk(CMakePackage): license("Apache-2.0") + version("5.4.4", sha256="d2092cd018a7b9d88e8c3dda04acb7f9345ab50619b79800688c7bc3afcca82a") + version("5.4.3", sha256="dd3f286716ee291221407a67539f2197c184bd80d4a8f53de1fb7d19351c7eca") + version("5.4.2", sha256="906e60577c95e0bbf51f661af894b5b16663606e39565c4854c803bc98b13e7d") + version("5.4.0", sha256="cdd6ce44f15c1246c3c7a439bbbb431dc09706d6465d79fafb6fb14a02517e3b") version("5.3.0", sha256="57a4471133dc8f76bde3d6eb45285c440bd40d113428884a1487472b7b71e383") version("5.3rc02", sha256="163aaf4a6cecd5b70ff718c1a986c746581797212fd1b629fa81f12ae4756d14") version( @@ -62,6 +66,7 @@ class Itk(CMakePackage): depends_on("perl", type="build") depends_on("eigen") + depends_on("eigen@3.3:3", when="@:5") depends_on("expat") depends_on("fftw-api") depends_on("hdf5+cxx+hl") diff --git a/repos/spack_repo/builtin/packages/iwyu/package.py b/repos/spack_repo/builtin/packages/iwyu/package.py index 0799507573c..6cb0c0ab539 100644 --- a/repos/spack_repo/builtin/packages/iwyu/package.py +++ b/repos/spack_repo/builtin/packages/iwyu/package.py @@ -25,6 +25,8 @@ class Iwyu(CMakePackage): sanity_check_is_file = ["bin/include-what-you-use"] + version("0.26", sha256="5247c0c9a59df9d14e8aa7408ffec4134c6a4aef12f590929111fbfeac930a08") + version("0.25", sha256="be81f9d5498881462465060ddc28b587c01254255c706d397d1a494d69eb5efd") version("0.24", sha256="a23421ceff601d3ea215e8fa9292bfa8ca39eb1ac2098dbbedfc6cfe65541c10") version("0.23", sha256="0004d5a9169717acf2f481248a5bfc15c7d55ddc2b9cdc7f461b06e93d49c73f") version("0.22", sha256="859074b461ea4b8325a73418c207ca33b5e6566b08e6b587eb9164416569a6dd") @@ -45,6 +47,8 @@ class Iwyu(CMakePackage): depends_on("cxx", type="build") # Required dependencies + depends_on("llvm+clang@22", when="@0.26") + depends_on("llvm+clang@21", when="@0.25") depends_on("llvm+clang@20", when="@0.24") depends_on("llvm+clang@19", when="@0.23") depends_on("llvm+clang@18", when="@0.22") @@ -60,10 +64,17 @@ class Iwyu(CMakePackage): depends_on("llvm+clang@8.0:8", when="@0.12") depends_on("llvm+clang@7.0:7", when="@0.11") - requires("llvm targets=all", "llvm targets=x86", msg="iwyu needs the X86AsmParser") + requires("^llvm targets=all", "^llvm targets=x86", msg="iwyu needs the X86AsmParser") patch("iwyu-013-cmake.patch", when="@0.13:0.14") + # Fix gcc.stl.headers.imp mapping + patch( + "https://github.com/include-what-you-use/include-what-you-use/commit/1597cf5ba11de81258bfea6e5fe3efad42e9b36f.patch?full_index=1", + sha256="ce315dd3b9a616959dbe0bf37056624d8a91776b1b4b26976e0b42adb7c06a9e", + when="@0.23", + ) + @classmethod def determine_version(cls, exe): output = Executable(exe)("--version", output=str, error=str) diff --git a/repos/spack_repo/builtin/packages/jacamar_ci/package.py b/repos/spack_repo/builtin/packages/jacamar_ci/package.py index 425e1f69f62..694addda9c7 100644 --- a/repos/spack_repo/builtin/packages/jacamar_ci/package.py +++ b/repos/spack_repo/builtin/packages/jacamar_ci/package.py @@ -21,6 +21,9 @@ class JacamarCi(GoPackage): license("Apache-2.0 OR MIT") version("develop", branch="develop") + version("0.27.4", sha256="3e9983015340c5e0572a8e64e8740f18386e3eccd7186264817b7e9db56cf6ee") + version("0.27.1", sha256="15e506eeec62de1adb4a6547135f3fef6496898d8b6773f694c53bba6269614b") + version("0.27.0", sha256="1a530931bda840a421d361e07b4e956750c3e569c55244981bafdb8436530bf9") version("0.26.2", sha256="23e1c7367eb1514ee0c7802123c5fd5559182acc2f84d76cf831b06e5ab39d7f") version("0.26.0", sha256="da63c396726af313804da5ec3704ce3754ba3eef5ca267746b594422f542dbea") version("0.25.0", sha256="20626ed931f5bf6ba1d5a2dd56af5793efa69a4f355bdac9b8bf742aaf806653") @@ -30,6 +33,8 @@ class JacamarCi(GoPackage): conflicts("platform=darwin", msg="Jacamar CI does not support MacOS") + depends_on("go@1.25:", type="build", when="@0.27.4:") + depends_on("go@1.24:", type="build", when="@0.27.0:") depends_on("go@1.23:", type="build", when="@0.26.0:") depends_on("go@1.22.7:", type="build", when="@0.23.0:") depends_on("gmake", type="build") diff --git a/repos/spack_repo/builtin/packages/jasper/fix_alpha_channel_assert_fail.patch b/repos/spack_repo/builtin/packages/jasper/fix_alpha_channel_assert_fail.patch deleted file mode 100644 index cbf79ff9719..00000000000 --- a/repos/spack_repo/builtin/packages/jasper/fix_alpha_channel_assert_fail.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/src/libjasper/jpc/jpc_dec.c b/src/libjasper/jpc/jpc_dec.c -index fa72a0e..1f4845f 100644 ---- a/src/libjasper/jpc/jpc_dec.c -+++ b/src/libjasper/jpc/jpc_dec.c -@@ -1069,12 +1069,18 @@ static int jpc_dec_tiledecode(jpc_dec_t *dec, jpc_dec_tile_t *tile) - /* Apply an inverse intercomponent transform if necessary. */ - switch (tile->cp->mctid) { - case JPC_MCT_RCT: -- assert(dec->numcomps == 3); -+ if (dec->numcomps != 3 && dec->numcomps != 4) { -+ jas_eprintf("bad number of components (%d)\n", dec->numcomps); -+ return -1; -+ } - jpc_irct(tile->tcomps[0].data, tile->tcomps[1].data, - tile->tcomps[2].data); - break; - case JPC_MCT_ICT: -- assert(dec->numcomps == 3); -+ if (dec->numcomps != 3 && dec->numcomps != 4) { -+ jas_eprintf("bad number of components (%d)\n", dec->numcomps); -+ return -1; -+ } - jpc_iict(tile->tcomps[0].data, tile->tcomps[1].data, - tile->tcomps[2].data); - break; diff --git a/repos/spack_repo/builtin/packages/jasper/package.py b/repos/spack_repo/builtin/packages/jasper/package.py index f11d5527900..44353e17dc0 100644 --- a/repos/spack_repo/builtin/packages/jasper/package.py +++ b/repos/spack_repo/builtin/packages/jasper/package.py @@ -2,19 +2,18 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems import autotools, cmake -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack_repo.builtin.build_systems.cmake import CMakePackage from spack.package import * -class Jasper(AutotoolsPackage, CMakePackage): +class Jasper(CMakePackage): """Library for manipulating JPEG-2000 images""" homepage = "https://www.ece.uvic.ca/~frodo/jasper/" url = "https://github.com/jasper-software/jasper/archive/version-2.0.32.tar.gz" + version("4.2.8", sha256="987e8c8b4afcff87553833b6f0fa255b5556a0ecc617b45ee1882e10c1b5ec14") version("4.2.4", sha256="23a3d58cdeacf3abdf9fa1d81dcefee58da6ab330940790c0f27019703bfd2cd") version("3.0.6", sha256="c79961bc00158f5b5dc5f5fcfa792fde9bebb024432689d0f9e3f95a097d0ec3") version("3.0.3", sha256="1b324f7746681f6d24d06fcf163cf3b8ae7ac320adc776c3d611b2b62c31b65f") @@ -23,15 +22,6 @@ class Jasper(AutotoolsPackage, CMakePackage): version("2.0.25", sha256="f5bc48e2884bcabd2aca1737baff4ca962ec665b6eb673966ced1f7adea07edb") version("2.0.16", sha256="f1d8b90f231184d99968f361884e2054a1714fdbbd9944ba1ae4ebdcc9bbfdb1") version("2.0.14", sha256="85266eea728f8b14365db9eaf1edc7be4c348704e562bb05095b9a077cf1a97b") - version( - "1.900.1", - sha256="c2b03f28166f9dc8ae434918839ae9aa9962b880fcfd24eebddd0a2daeb9192c", - deprecated=True, - ) - - build_system( - conditional("cmake", when="@2:"), conditional("autotools", when="@:1"), default="cmake" - ) variant("jpeg", default=True, description="Enable the use of the JPEG library") variant("opengl", default=False, description="Enable the use of the OpenGL and GLUT libraries") @@ -40,23 +30,15 @@ class Jasper(AutotoolsPackage, CMakePackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - with when("build_system=cmake"): - depends_on("cmake@2.8.11:", type="build") - depends_on("cmake@3.12:", type="build", when="@3:") + depends_on("cmake@2.8.11:", type="build") + depends_on("cmake@3.12:", type="build", when="@3:") depends_on("jpeg", when="+jpeg") depends_on("gl", when="+opengl") # invalid compilers flags - conflicts("@2.0.0:2", when="%nvhpc") - - # Fixes a bug where an assertion fails when certain JPEG-2000 - # files with an alpha channel are processed. - # See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=469786 - patch("fix_alpha_channel_assert_fail.patch", when="@1.900.1") - + conflicts("@2", when="%nvhpc") -class CMakeBuilder(cmake.CMakeBuilder): def cmake_args(self): return [ self.define("JAS_ENABLE_DOC", False), @@ -65,12 +47,3 @@ def cmake_args(self): self.define_from_variant("JAS_ENABLE_OPENGL", "opengl"), self.define_from_variant("JAS_ENABLE_SHARED", "shared"), ] - - -class AutotoolsBuilder(autotools.AutotoolsBuilder): - def configure_args(self): - args = [] - args.extend(self.enable_or_disable("jpeg")) - args.extend(self.enable_or_disable("opengl")) - args.extend(self.enable_or_disable("shared")) - return args diff --git a/repos/spack_repo/builtin/packages/javafx/package.py b/repos/spack_repo/builtin/packages/javafx/package.py index 05e0d3f48b3..ddbcfad9f73 100644 --- a/repos/spack_repo/builtin/packages/javafx/package.py +++ b/repos/spack_repo/builtin/packages/javafx/package.py @@ -9,6 +9,24 @@ from spack.package import * _versions = { + "21.0.8": { + "linux": { + "x86_64": ( + "https://download2.gluonhq.com/openjfx/21.0.8/openjfx-21.0.8_linux-x64_bin-sdk.zip", + "203530224e01b5a4b65e8c78f2569e5c491115b3523c0678b5b813b28402b562", + ) + }, + "darwin": { + "arm64": ( + "https://download2.gluonhq.com/openjfx/21.0.8/openjfx-21.0.8_osx-aarch64_bin-sdk.zip", + "261c429c6f55adccab13a937781c18e07d71b9c16355c6b420962443e5f9e85a", + ), + "x86_64": ( + "https://download2.gluonhq.com/openjfx/21.0.8/openjfx-21.0.8_osx-x64_bin-sdk.zip", + "35ae9f9a4b1a3a3d40102ca519c2f4e04e63b8368fab8d57323a8c07ba2ad0a5", + ), + }, + }, "20.0.1": { "linux": { "aarch64": ( @@ -30,7 +48,25 @@ "aa01f301bc611997f60ac86c2d9a7d7d1f652fd7092745720ae49cf7bb2935e4", ), }, - } + }, + "17.0.16": { + "linux": { + "x86_64": ( + "https://download2.gluonhq.com/openjfx/17.0.16/openjfx-17.0.16_linux-x64_bin-sdk.zip", + "0460f70d19da9791abdbfe4ae8280e540500fad95fdeb8b833de6e05cbaadcb9", + ) + }, + "darwin": { + "arm64": ( + "https://download2.gluonhq.com/openjfx/17.0.16/openjfx-17.0.16_osx-aarch64_bin-sdk.zip", + "8f1bf9d0ceacfba71232a219dba8ef6e4923c811bdf87381c2f6946e6695225f", + ), + "x86_64": ( + "https://download2.gluonhq.com/openjfx/17.0.16/openjfx-17.0.16_osx-x64_bin-sdk.zip", + "3034b2ad1e0a5f4bd29984b036a2e5111a6d1c3004317972061e9f7912e70b5c", + ), + }, + }, } @@ -54,6 +90,9 @@ class Javafx(Package): extends("openjdk") + depends_on("openjdk@17:", when="@20:21") + depends_on("openjdk@11:", when="@17") + conflicts("target=ppc64le:", msg="JavaFX is not available for ppc64le") conflicts("target=ppc64:", msg="JavaFX is not available for ppc64") conflicts("target=riscv64:", msg="JavaFX is not available for riscv64") diff --git a/repos/spack_repo/builtin/packages/jdk/package.py b/repos/spack_repo/builtin/packages/jdk/package.py index 251cfb96e55..24c796fc32d 100644 --- a/repos/spack_repo/builtin/packages/jdk/package.py +++ b/repos/spack_repo/builtin/packages/jdk/package.py @@ -19,6 +19,10 @@ class Jdk(Package): maintainers("justintoo") + license("LicenseRef-Oracle-Proprietary", checked_by="alecbcs") + + redistribute(source=False, binary=False) + version( "21.0.2", sha256="9f1f4a7f25ef6a73255657c40a6d7714f2d269cf15fb2ff1dc9c0c8b56623a6f", diff --git a/repos/spack_repo/builtin/packages/jellyfish/package.py b/repos/spack_repo/builtin/packages/jellyfish/package.py index 79e6b6991db..60022d27454 100644 --- a/repos/spack_repo/builtin/packages/jellyfish/package.py +++ b/repos/spack_repo/builtin/packages/jellyfish/package.py @@ -29,6 +29,7 @@ class Jellyfish(AutotoolsPackage): url="https://www.cbcb.umd.edu/software/jellyfish/jellyfish-1.1.11.tar.gz", ) + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("perl", when="@2.2.7:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/jonquil/package.py b/repos/spack_repo/builtin/packages/jonquil/package.py new file mode 100644 index 00000000000..ae72449d0ca --- /dev/null +++ b/repos/spack_repo/builtin/packages/jonquil/package.py @@ -0,0 +1,48 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems import cmake, meson +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.meson import MesonPackage + +from spack.package import * + + +class Jonquil(MesonPackage, CMakePackage): + """Bringing TOML blooms to JSON land""" + + homepage = "https://toml-f.readthedocs.io/en/latest/how-to/jonquil/" + url = "https://github.com/toml-f/jonquil/releases/download/v0.3.0/jonquil-0.3.0.tar.xz" + git = "https://github.com/toml-f/jonquil/" + + maintainers("mtaillefumier") + + license("Apache-2.0") + + build_system("cmake", "meson", default="meson") + + version("main", branch="main") + version("0.3.0", sha256="4bc3f0ae47ac2e009a0dc733ad9d0f16db4dfed13b50f58b9a06bb3a579eec47") + version("0.2.0", sha256="68448be7f399942e15a05ed7a149cc226a8ee81a8ce66cd68a2d01d9fc86527e") + version("0.1.0", sha256="0c8854da047306cad357143fe56f7afe3d323d89aa7383b6614b2b587f580044") + + with when("build_system=cmake"): + variant("shared", default=True, description="Build shared libraries") + + depends_on("fortran", type="build") + depends_on("meson@0.57.2:", type="build", when="build_system=meson") + + for build_system in ["cmake", "meson"]: + depends_on(f"toml-f build_system={build_system}", when=f"build_system={build_system}") + depends_on("pkgconfig", type="build") + + +class CMakeBuilder(cmake.CMakeBuilder): + def cmake_args(self): + return [self.define_from_variant("BUILD_SHARED_LIBS", "shared")] + + +class MesonBuilder(meson.MesonBuilder): + def meson_args(self): + return [] diff --git a/repos/spack_repo/builtin/packages/jq/package.py b/repos/spack_repo/builtin/packages/jq/package.py index d72b4a4dba2..0b674748dfa 100644 --- a/repos/spack_repo/builtin/packages/jq/package.py +++ b/repos/spack_repo/builtin/packages/jq/package.py @@ -20,12 +20,6 @@ class Jq(AutotoolsPackage): version("1.8.1", sha256="2be64e7129cecb11d5906290eba10af694fb9e3e7f9fc208a311dc33ca837eb0") version("1.8.0", sha256="91811577f91d9a6195ff50c2bffec9b72c8429dc05ec3ea022fd95c06d2b319c") - with default_args(deprecated=True): - # CVE-2025-48060 - version("1.7.1", sha256="478c9ca129fd2e3443fe27314b455e211e0d8c60bc8ff7df703873deeee580c2") - version("1.6", sha256="5de8c8e29aaa3fb9cc6b47bb27299f271354ebb72514e3accadc7d38b5bbaa72") - version("1.5", sha256="c4d2bfec6436341113419debf479d833692cc5cdab7eb0326b5a4d4fbe9f493c") - depends_on("c", type="build") # generated depends_on("oniguruma") @@ -39,13 +33,6 @@ def configure_args(self): else: return [] - def flag_handler(self, name, flags): - # -std=c11 required for jq@:1.7 - # https://github.com/jqlang/jq/issues/3206 - if self.spec.satisfies("jq@:1.7 %gcc@15:") and name == "cflags": - flags.append(self.compiler.c11_flag) - return (flags, None, None) - @run_after("install") @on_package_attributes(run_tests=True) def install_test(self): diff --git a/repos/spack_repo/builtin/packages/json_c/package.py b/repos/spack_repo/builtin/packages/json_c/package.py index b915add4e40..b93e6540f7e 100644 --- a/repos/spack_repo/builtin/packages/json_c/package.py +++ b/repos/spack_repo/builtin/packages/json_c/package.py @@ -2,14 +2,12 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems import cmake -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack_repo.builtin.build_systems.cmake import CMakePackage from spack.package import * -class JsonC(CMakePackage, AutotoolsPackage): +class JsonC(CMakePackage): """A JSON implementation in C.""" homepage = "https://github.com/json-c/json-c/wiki" @@ -22,33 +20,9 @@ class JsonC(CMakePackage, AutotoolsPackage): version("0.15", sha256="b8d80a1ddb718b3ba7492916237bbf86609e9709fb007e7f7d4322f02341a4c6") version("0.14", sha256="b377de08c9b23ca3b37d9a9828107dff1de5ce208ff4ebb35005a794f30c6870") - with default_args(deprecated=True): - version( - "0.13.1", sha256="b87e608d4d3f7bfdd36ef78d56d53c74e66ab278d318b71e6002a369d36f4873" - ) - version( - "0.12.1", sha256="2a136451a7932d80b7d197b10441e26e39428d67b1443ec43bbba824705e1123" - ) - version("0.12", sha256="000c01b2b3f82dcb4261751eb71f1b084404fb7d6a282f06074d3c17078b9f3f") - version("0.11", sha256="28dfc65145dc0d4df1dfe7701ac173c4e5f9347176c8983edbfac9149494448c") - depends_on("c", type="build") - build_system( - conditional("cmake", when="@0.14:"), - conditional("autotools", when="@:0.13"), - default="cmake", - ) - - depends_on("autoconf", when="build_system=autotools", type="build") - depends_on("cmake@3.9:", when="@0.17: build_system=cmake", type="build") - - @property - def parallel(self): - # autotools issue with make -j: https://github.com/json-c/json-c/issues/75 - return not self.spec.satisfies("build_system=autotools") - + depends_on("cmake@3.9:", when="@0.17:", type="build") -class CMakeBuilder(cmake.CMakeBuilder): def cmake_args(self): return [self.define("DISABLE_WERROR", True)] diff --git a/repos/spack_repo/builtin/packages/json_glib/package.py b/repos/spack_repo/builtin/packages/json_glib/package.py index 63d4d56b18e..33302ff8e8c 100644 --- a/repos/spack_repo/builtin/packages/json_glib/package.py +++ b/repos/spack_repo/builtin/packages/json_glib/package.py @@ -18,44 +18,20 @@ class JsonGlib(MesonPackage): license("LGPL-2.1-or-later") + version("1.10.8", sha256="55c5c141a564245b8f8fbe7698663c87a45a7333c2a2c56f06f811ab73b212dd") + version("1.9.2", sha256="8f9f04e0045bda82affd464ee575796600fe29014b817392a3b72ceb2d10c595") version("1.6.6", sha256="96ec98be7a91f6dde33636720e3da2ff6ecbb90e76ccaa49497f31a6855a490e") - version( - "1.5.2", - sha256="ad08438327b6106dc040c0581477bdf1cd3daaa5d285920cc768b8627f746666", - deprecated=True, - ) - version( - "1.4.4", - sha256="720c5f4379513dc11fd97dc75336eb0c0d3338c53128044d9fabec4374f4bc47", - deprecated=True, - ) - version( - "1.3.2", - sha256="f6a80f42e63a3267356f20408bf91a1696837aa66d864ac7de2564ecbd332a7c", - deprecated=True, - ) - version( - "1.2.8", - sha256="fd55a9037d39e7a10f0db64309f5f0265fa32ec962bf85066087b83a2807f40a", - deprecated=True, - ) + + depends_on("c", type="build") depends_on("glib") depends_on("gobject-introspection") depends_on("pkgconfig", type="build") depends_on("gmake", type="build") - @when("@:1.5") - def meson(self, spec, prefix): - """Run the AutotoolsPackage configure phase""" - configure("--prefix=" + prefix) - - @when("@:1.5") - def build(self, spec, prefix): - """Run the AutotoolsPackage build phase""" - make() + def url_for_version(self, version): + return f"https://download.gnome.org/sources/json-glib/{version.up_to(2)}/json-glib-{version}.tar.xz" - @when("@:1.5") - def install(self, spec, prefix): - """Run the AutotoolsPackage install phase""" - make("install") + def meson_args(self): + args = ["-Ddocumentation=disabled"] + return args diff --git a/repos/spack_repo/builtin/packages/jsoncpp/package.py b/repos/spack_repo/builtin/packages/jsoncpp/package.py index ae5540b96e3..548f3c0d415 100644 --- a/repos/spack_repo/builtin/packages/jsoncpp/package.py +++ b/repos/spack_repo/builtin/packages/jsoncpp/package.py @@ -70,7 +70,7 @@ class Jsoncpp(CMakePackage, MesonPackage): def patch(self): filter_file( "return d >= min && d <= max;", - "return d >= static_cast(min) && " "d <= static_cast(max);", + "return d >= static_cast(min) && d <= static_cast(max);", "src/lib_json/json_value.cpp", ) diff --git a/repos/spack_repo/builtin/packages/jsonnet/package.py b/repos/spack_repo/builtin/packages/jsonnet/package.py index bff933f274c..3e773bac32f 100644 --- a/repos/spack_repo/builtin/packages/jsonnet/package.py +++ b/repos/spack_repo/builtin/packages/jsonnet/package.py @@ -48,7 +48,6 @@ class Jsonnet(MakefilePackage, CMakePackage): class MakefileBuilder(makefile.MakefileBuilder): - @property def install_targets(self): return ["PREFIX={0}".format(self.prefix), "install"] @@ -60,7 +59,6 @@ def python_install(self): class CMakeBuilder(cmake.CMakeBuilder): - def cmake_args(self): return [ self.define("USE_SYSTEM_JSON", True), diff --git a/repos/spack_repo/builtin/packages/jujutsu/package.py b/repos/spack_repo/builtin/packages/jujutsu/package.py index a1c53c75a1a..89dfa0a5ee8 100644 --- a/repos/spack_repo/builtin/packages/jujutsu/package.py +++ b/repos/spack_repo/builtin/packages/jujutsu/package.py @@ -19,9 +19,13 @@ class Jujutsu(CargoPackage): license("Apache-2.0", checked_by="pranav-sivaraman") + version("0.31.0", sha256="ff40515de7a5adac267c64c0163b38990a74a71bb7612a898832c812a81070b2") version("0.25.0", sha256="3a99528539e414a3373f24eb46a0f153d4e52f7035bb06df47bd317a19912ea3") + depends_on("c", type="build") depends_on("rust@1.76:", type="build") + depends_on("rust@1.84:", type="build", when="@0.31:") + depends_on("pkgconfig", type="build") depends_on("openssl") diff --git a/repos/spack_repo/builtin/packages/julia/armgcc.patch b/repos/spack_repo/builtin/packages/julia/armgcc.patch deleted file mode 100644 index 50719face8b..00000000000 --- a/repos/spack_repo/builtin/packages/julia/armgcc.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -ru spack-src/src/ccalltest.c spack-src.new/src/ccalltest.c ---- spack-src/src/ccalltest.c 2019-08-01 14:58:12.092094781 +0900 -+++ spack-src.new/src/ccalltest.c 2019-08-01 14:57:53.242092475 +0900 -@@ -817,6 +817,7 @@ - return x; - } - -+#if defined(__GNUC__) && (__GNUC__ >= 6) - typedef struct { - __fp16 v1; - double v2; -@@ -833,6 +834,7 @@ - struct_aa64_2 x = {v4 / 2 + 1, v1 * 2 + v2 * 4 - v3}; - return x; - } -+#endif - - #include - -diff -ru spack-src/src/test/ccall.jl spack-src.new/src/test/ccall.jl ---- spack-src/test/ccall.jl 2019-05-16 13:13:14.000000000 +0900 -+++ spack-src.new/test/ccall.jl 2019-08-02 15:24:47.632241893 +0900 -@@ -1130,19 +1130,6 @@ - expected = Struct_AA64_1(v1 ÷ 2 + 1 - v3_1, v2 * 2 - 1 - v3_2) - @test res === expected - end -- for v1 in 1:4, v2 in -4:-1, v3 in 3:5, v4 in -(1:3) -- res = ccall((:test_aa64_fp16_1, libccalltest), Float16, -- (Cint, Float32, Float64, Float16), -- v1, v2, v3, v4) -- expected = Float16(v1 + v2 * 2 + v3 * 3 + v4 * 4) -- @test res === expected -- -- res = ccall((:test_aa64_fp16_2, libccalltest), Struct_AA64_2, -- (Cint, Float32, Float64, Float16), -- v1, v2, v3, v4) -- expected = Struct_AA64_2(v4 / 2 + 1, v1 * 2 + v2 * 4 - v3) -- @test res === expected -- end - for v1_1 in 1:4, v1_2 in -2:2, v2 in -4:-1, v3_1 in 3:5, v3_2 in 6:8 - res = ccall((:test_aa64_vec_1, libccalltest), - VecReg{2,Int64}, diff --git a/repos/spack_repo/builtin/packages/julia/fix-gfortran.patch b/repos/spack_repo/builtin/packages/julia/fix-gfortran.patch deleted file mode 100644 index 22749aca57e..00000000000 --- a/repos/spack_repo/builtin/packages/julia/fix-gfortran.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 23b8403586be314449c42b35b85d45be16a02373 Mon Sep 17 00:00:00 2001 -From: Harmen Stoppels -Date: Thu, 3 Feb 2022 01:56:41 +0100 -Subject: [PATCH] Fix detection of LIBGFORTRAN_VERSION - ---- - Make.inc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Make.inc b/Make.inc -index 6b9db8d9fa33..ec956d1d0c86 100644 ---- a/Make.inc -+++ b/Make.inc -@@ -1140,7 +1140,7 @@ endif - - # Auto-detect triplet once, create different versions that we use as defaults below for each BB install target - FC_VERSION := $(shell $(FC) --version 2>/dev/null | head -1) --FC_OR_CC_VERISON := $(or $(FC_VERSION),$(shell $(CC) --version 2>/dev/null | head -1)) -+FC_OR_CC_VERSION := $(or $(FC_VERSION),$(shell $(CC) --version 2>/dev/null | head -1)) - BB_TRIPLET_LIBGFORTRAN_CXXABI := $(shell $(call invoke_python,$(JULIAHOME)/contrib/normalize_triplet.py) $(or $(XC_HOST),$(XC_HOST),$(BUILD_MACHINE)) "$(FC_OR_CC_VERSION)" "$(or $(shell echo '\#include ' | $(CXX) $(CXXFLAGS) -x c++ -dM -E - | grep _GLIBCXX_USE_CXX11_ABI | awk '{ print $$3 }' ),1)") - BB_TRIPLET_LIBGFORTRAN := $(subst $(SPACE),-,$(filter-out cxx%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN_CXXABI)))) - BB_TRIPLET_CXXABI := $(subst $(SPACE),-,$(filter-out libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN_CXXABI)))) diff --git a/repos/spack_repo/builtin/packages/julia/gcc-ifdef.patch b/repos/spack_repo/builtin/packages/julia/gcc-ifdef.patch deleted file mode 100644 index 51ed450b7ff..00000000000 --- a/repos/spack_repo/builtin/packages/julia/gcc-ifdef.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 3193c8f2596711c1feb8e655ec391050e0e78ed0 Mon Sep 17 00:00:00 2001 -From: Harmen Stoppels -Date: Mon, 23 May 2022 16:58:23 +0200 -Subject: [PATCH] Guard GCC-specific macros with _COMPILER_GCC_ - ---- - src/julia_internal.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/julia_internal.h b/src/julia_internal.h -index fbded19..32d038b 100644 ---- a/src/julia_internal.h -+++ b/src/julia_internal.h -@@ -392,7 +392,7 @@ jl_svec_t *jl_perm_symsvec(size_t n, ...); - - // this sizeof(__VA_ARGS__) trick can't be computed until C11, but that only matters to Clang in some situations - #if !defined(__clang_analyzer__) && !(defined(JL_ASAN_ENABLED) || defined(JL_TSAN_ENABLED)) --#ifdef __GNUC__ -+#ifdef _COMPILER_GCC_ - #define jl_perm_symsvec(n, ...) \ - (jl_perm_symsvec)(__extension__({ \ - static_assert( \ --- -2.25.1 - diff --git a/repos/spack_repo/builtin/packages/julia/julia-1.6-system-libwhich-and-p7zip-symlink.patch b/repos/spack_repo/builtin/packages/julia/julia-1.6-system-libwhich-and-p7zip-symlink.patch deleted file mode 100644 index fa36cc48473..00000000000 --- a/repos/spack_repo/builtin/packages/julia/julia-1.6-system-libwhich-and-p7zip-symlink.patch +++ /dev/null @@ -1,74 +0,0 @@ -diff --git a/Make.inc b/Make.inc -index 4719a3d49b..b056dc6c73 100644 ---- a/Make.inc -+++ b/Make.inc -@@ -54,6 +54,7 @@ USE_SYSTEM_NGHTTP2:=0 - USE_SYSTEM_CURL:=0 - USE_SYSTEM_LIBGIT2:=0 - USE_SYSTEM_PATCHELF:=0 -+USE_SYSTEM_LIBWHICH:=0 - USE_SYSTEM_ZLIB:=0 - USE_SYSTEM_P7ZIP:=0 - -@@ -1085,6 +1086,12 @@ else - PATCHELF := $(build_depsbindir)/patchelf - endif - -+ifeq ($(USE_SYSTEM_LIBWHICH), 1) -+LIBWHICH := libwhich -+else -+LIBWHICH := $(build_depsbindir)/libwhich -+endif -+ - # On aarch64 and powerpc64le, we assume the page size is 64K. Our binutils linkers - # and such already assume this, but `patchelf` seems to be behind the times. We - # explicitly tell it to use this large page size so that when we rewrite rpaths and -diff --git a/base/Makefile b/base/Makefile -index 2bef6aab7f..9e8c1abac7 100644 ---- a/base/Makefile -+++ b/base/Makefile -@@ -170,7 +170,7 @@ endif - - define symlink_system_library - libname_$2 := $$(notdir $(call versioned_libname,$2,$3)) --libpath_$2 := $$(shell $$(call spawn,$$(build_depsbindir)/libwhich) -p $$(libname_$2) 2>/dev/null) -+libpath_$2 := $$(shell $$(call spawn,$$(LIBWHICH)) -p $$(libname_$2) 2>/dev/null) - symlink_$2: $$(build_private_libdir)/$$(libname_$2) - $$(build_private_libdir)/$$(libname_$2): - @if [ -e "$$(libpath_$2)" ]; then \ -@@ -191,6 +191,19 @@ SYMLINK_SYSTEM_LIBRARIES += symlink_$2 - endif - endef - -+# libexec executables -+symlink_p7zip: $(build_bindir)/7z$(EXE) -+ -+ifneq ($(USE_SYSTEM_P7ZIP),0) -+SYMLINK_SYSTEM_LIBRARIES += symlink_p7zip -+7Z_PATH := $(shell which 7z$(EXE)) -+endif -+ -+$(build_bindir)/7z$(EXE): -+ [ -e "$(7Z_PATH)" ] && \ -+ ([ ! -e "$@" ] || rm "$@") && \ -+ ln -svf "$(7Z_PATH)" "$@" -+ - # the following excludes: libuv.a, libutf8proc.a - - ifneq ($(USE_SYSTEM_LIBM),0) -diff --git a/deps/Makefile b/deps/Makefile -index 3d3f795131..50ca806307 100644 ---- a/deps/Makefile -+++ b/deps/Makefile -@@ -159,9 +159,11 @@ DEP_LIBS += lapack - endif - endif - -+ifeq ($(USE_SYSTEM_LIBWHICH), 0) - ifneq ($(OS), WINNT) - DEP_LIBS += libwhich - endif -+endif - - # unlist targets that have not been converted to use the staged-install - DEP_LIBS_STAGED := $(filter-out suitesparse-wrapper,$(DEP_LIBS)) diff --git a/repos/spack_repo/builtin/packages/julia/llvm-NDEBUG.patch b/repos/spack_repo/builtin/packages/julia/llvm-NDEBUG.patch deleted file mode 100644 index 1bdbd728fa1..00000000000 --- a/repos/spack_repo/builtin/packages/julia/llvm-NDEBUG.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 4ec1970178606127fd8bbffa763f135ca0f12ee3 Mon Sep 17 00:00:00 2001 -From: Harmen Stoppels -Date: Tue, 24 May 2022 14:03:48 +0200 -Subject: [PATCH] llvm: add NDEBUG when assertion mode is off - -`llvm-config --cxxflags` unfortunately does not set `-DNDEBUG`, which -Julia needs to set correctly when including LLVM header files. ---- - src/Makefile | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/Makefile b/src/Makefile -index 1a9af2fa7c..766fd2945f 100644 ---- a/src/Makefile -+++ b/src/Makefile -@@ -98,6 +98,11 @@ PUBLIC_HEADER_TARGETS := $(addprefix $(build_includedir)/julia/,$(notdir $(PUBLI - LLVM_LDFLAGS := $(shell $(LLVM_CONFIG_HOST) --ldflags) - LLVM_CXXFLAGS := $(shell $(LLVM_CONFIG_HOST) --cxxflags) - -+# llvm-config --cxxflags does not return -DNDEBUG -+ifeq ($(shell $(LLVM_CONFIG_HOST) --assertion-mode),OFF) -+LLVM_CXXFLAGS += -DNDEBUG -+endif -+ - ifeq ($(JULIACODEGEN),LLVM) - ifneq ($(USE_SYSTEM_LLVM),0) - LLVMLINK += $(LLVM_LDFLAGS) $(shell $(LLVM_CONFIG_HOST) --libs --system-libs) --- -2.25.1 - diff --git a/repos/spack_repo/builtin/packages/julia/llvm7-symver-jlprefix.patch b/repos/spack_repo/builtin/packages/julia/llvm7-symver-jlprefix.patch deleted file mode 100644 index 5c3449a45be..00000000000 --- a/repos/spack_repo/builtin/packages/julia/llvm7-symver-jlprefix.patch +++ /dev/null @@ -1,18 +0,0 @@ -From f23277bb91a4925ba8763337137a3123a7600557 Mon Sep 17 00:00:00 2001 -From: Valentin Churavy -Date: Tue, 16 Jan 2018 17:29:05 -0500 -Subject: [PATCH] add JL prefix to all LLVM version suffixes - ---- - tools/llvm-shlib/simple_version_script.map.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/llvm/tools/llvm-shlib/simple_version_script.map.in b/llvm/tools/llvm-shlib/simple_version_script.map.in -index e9515fe7862..af082581627 100644 ---- a/llvm/tools/llvm-shlib/simple_version_script.map.in -+++ b/llvm/tools/llvm-shlib/simple_version_script.map.in -@@ -1 +1 @@ --LLVM_@LLVM_VERSION_MAJOR@ { global: *; }; -+JL_LLVM_@LLVM_VERSION_MAJOR@.@LLVM_VERSION_MINOR@ { global: *; }; --- -2.15.1 diff --git a/repos/spack_repo/builtin/packages/julia/package.py b/repos/spack_repo/builtin/packages/julia/package.py index 58a3dddc790..7e26fadda4e 100644 --- a/repos/spack_repo/builtin/packages/julia/package.py +++ b/repos/spack_repo/builtin/packages/julia/package.py @@ -27,6 +27,13 @@ class Julia(MakefilePackage): maintainers("vchuravy", "haampie", "giordano") version("master", branch="master") + version("1.12.6", sha256="5440ad37977af766a075e5cc9c430b66ba958ede69a70ccf308bb7d8e1d69478") + version("1.12.5", sha256="9e0dee015ef631ce93ddcf8166a8f5f4cae39e923d8f38a54a832091d0475004") + + version("1.11.9", sha256="3c73d9612ee5bbd9d73b9eee26937c970bea37f51dc24aa23fd4b232539eb7d8") + version("1.11.8", sha256="c5b00ba80eb311dc90e8fe153348218efb5dc0632b6c47d138fe80e9c5ca037e") + version("1.11.7", sha256="5378209de1c3da1a13d13fc74beffab984a998a77ae1a6a9901f27008da93c29") + version("1.11.6", sha256="f02acdc8b9aadad568db405dfc4c82ea172f332d0c7a4a0db78ce36cd3cca9f3") version("1.11.5", sha256="bb6b42ff01bca3ff7118ddd360f96b4a6654ed7e658b82d50fb06504e7939755") version("1.11.4", sha256="28b06591df0ee40928712a88af8785eb05dc7ed08a7c9600dd7c376f90f9e53b") version("1.11.3", sha256="80f371ece1576fb7a38c8c930f7cad592fe314083b8a1fc9cd8bd8b165c9cb76") @@ -34,6 +41,7 @@ class Julia(MakefilePackage): version("1.11.1", sha256="895549f40b21dee66b6380e30811f40d2d938c2baba0750de69c9a183cccd756") version("1.11.0", sha256="a938c6b7758a83e817b56db3e542bd85e6d74db75e1381b1ba24cd6e3dc8c566") + version("1.10.11", sha256="8d6c633967452cb879a671d962f5d4d10027e1f785327764c3163c003c8a44b5") version("1.10.10", sha256="b564321e9ee71796f467b3872cdefdccdb97ca26e19ee8106df96f6d24061090") version("1.10.9", sha256="780206a73d2274c7e90b38352e27ed851c593a98f566b9bfa5f1b638336e954b") version("1.10.8", sha256="8ba5fa4722b2159c4e40d813468b5bd92d9582cba9ed036b577373e7c535cda7") @@ -56,16 +64,6 @@ class Julia(MakefilePackage): version("1.8.1", sha256="066f4ca7a2ad39b003e2af77dbecfbfb9b0a1cb1664033f657ffdbe2f374d956") version("1.8.0", sha256="0fa980286d6d912f24ed9f90a02930560d985e0ada8233a4ae5610884feb2438") - version("1.7.3", sha256="06df2a81e6a18d0333ffa58d36f6eb84934c38984898f9e0c3072c8facaa7306") - version("1.7.2", sha256="0847943dd65001f3322b00c7dc4e12f56e70e98c6b798ccbd4f02d27ce161fef") - version("1.7.1", sha256="17d298e50e4e3dd897246ccebd9f40ce5b89077fa36217860efaec4576aa718e") - version("1.7.0", sha256="8e870dbef71bc72469933317a1a18214fd1b4b12f1080784af7b2c56177efcb4") - - version("1.6.7", sha256="74af1dc7b5841757a06a899923a62cac04665c09829324e8bf53cfb66f7b3d61") - version("1.6.6", sha256="a8023708cadb2649395769810e6cec8afc8e352aa6d407189b6c88b86d7f5090") - version("1.6.5", sha256="b70ae299ff6b63a9e9cbf697147a48a31b4639476d1947cb52e4201e444f23cb") - version("1.6.4", sha256="a4aa921030250f58015201e28204bff604a007defc5a379a608723e6bb1808d4") - variant("precompile", default=True, description="Improve julia startup time") variant("openlibm", default=True, description="Use openlibm instead of libm") variant( @@ -94,14 +92,29 @@ class Julia(MakefilePackage): " targets=amdgpu,bpf,nvptx,webassembly" " version_suffix=jl +link_llvm_dylib libunwind=none" ) - depends_on("libuv", when="@:1.7") depends_on("libuv-julia@1.42.0", when="@1.8.0:1.8.1") depends_on("libuv-julia@1.44.2", when="@1.8.2:1.9") - depends_on("libuv-julia@1.44.3", when="@1.10.0:1.10") - depends_on("libuv-julia@1.48.0", when="@1.11.0:") - depends_on("suite-sparse@5.4:5.10", when="@1.6:1.9") + depends_on("libuv-julia@1.44.3", when="@1.10") + depends_on("libuv-julia@1.48.0", when="@1.11") + depends_on("libuv-julia@1.48.1rc1", when="@1.12:") - with when("@1.11.0:1.11"): + depends_on("suite-sparse@5.4:5.10", when="@:1.9") + + with when("@1.12"): + # libssh2.so.1, libpcre2-8.so.0, libsll.so.3, + # libopenlibm.so.4, libblastrampoline.so.5, libgit2.so.1.9, libnghttp2.so.14, + # libcurl.so.4 + depends_on("libblastrampoline@5.13.1:5") + depends_on("libgit2@1.9") + depends_on("libssh2@1.11:1") + depends_on("llvm@18.1.8 +lld shlib_symbol_version=JL_LLVM_18.0") + depends_on("openssl@3.5.1:3.5") + depends_on("openlibm@0.8.7:0.8", when="+openlibm") + depends_on("nghttp2@1.64") + depends_on("curl@8.11.1:") + depends_on("suite-sparse@7.8.3") + + with when("@1.11"): # libssh2.so.1, libpcre2-8.so.0, libmbedtls.so.14, libmbedcrypto.so.7, libmbedx509.so.1, # libopenlibm.so.4, libblastrampoline.so.5, libgit2.so.1.7, libnghttp2.so.14, # libcurl.so.4 @@ -111,11 +124,11 @@ class Julia(MakefilePackage): depends_on("llvm@16.0.6 +lld shlib_symbol_version=JL_LLVM_16.0") depends_on("mbedtls@2.28.2:2.28") depends_on("openlibm@0.8.1:0.8", when="+openlibm") - depends_on("nghttp2@1.59.0:1.59") + depends_on("nghttp2@1.59") depends_on("curl@8.6.0:") depends_on("suite-sparse@7.7.0") - with when("@1.10.0:1.10"): + with when("@1.10"): # libssh2.so.1, libpcre2-8.so.0, libmbedtls.so.14, libmbedcrypto.so.7, libmbedx509.so.1, # libopenlibm.so.4, libblastrampoline.so.5, libgit2.so.1.6, libnghttp2.so.14, # libcurl.so.4 @@ -125,11 +138,11 @@ class Julia(MakefilePackage): depends_on("llvm@15.0.7 +lld shlib_symbol_version=JL_LLVM_15.0") depends_on("mbedtls@2.28.2:2.28") depends_on("openlibm@0.8.1:0.8", when="+openlibm") - depends_on("nghttp2@1.52.0:1.52") + depends_on("nghttp2@1.52") depends_on("curl@8.4.0:") depends_on("suite-sparse@7.2.1") - with when("@1.9.0:1.9"): + with when("@1.9"): # libssh2.so.1, libpcre2-8.so.0, mbedtls.so.14, mbedcrypto.so.7, mbedx509.so.1 # openlibm.so.4, libblastrampoline.so.5, libgit2.so.1.5, libnghttp2.so.14, # libcurl.so.4 @@ -137,52 +150,28 @@ class Julia(MakefilePackage): depends_on("libgit2@1.5.0:1.5") depends_on("libssh2@1.10.0:1") depends_on("llvm@14.0.6 +lld shlib_symbol_version=JL_LLVM_14.0") - depends_on("mbedtls@2.28.0:2.28") + depends_on("mbedtls@2.28") depends_on("openlibm@0.8.1:0.8", when="+openlibm") - depends_on("nghttp2@1.48.0:1.48") + depends_on("nghttp2@1.48") depends_on("curl@7.84.0:") - with when("@1.8.0:1.8"): + with when("@1.8"): # libssh2.so.1, libpcre2-8.so.0, mbedtls.so.14, mbedcrypto.so.7, mbedx509.so.1 # openlibm.so.4, libblastrampoline.so.5, libgit2.so.1.3, libnghttp2.so.14, # libcurl.so.4 depends_on("libblastrampoline@5.1.0:5") - depends_on("libgit2@1.3.0:1.3") + depends_on("libgit2@1.3") depends_on("libssh2@1.10.0:1") depends_on("llvm@13.0.1 shlib_symbol_version=JL_LLVM_13.0") - depends_on("mbedtls@2.28.0:2.28") + depends_on("mbedtls@2.28") depends_on("openlibm@0.8.1:0.8", when="+openlibm") - depends_on("nghttp2@1.47.0:1.47") + depends_on("nghttp2@1.47") depends_on("curl@7.84.0:") - with when("@1.7.0:1.7"): - # libssh2.so.1, libpcre2-8.so.0, mbedtls.so.13, mbedcrypto.so.5, mbedx509.so.1 - # openlibm.so.3 - depends_on("libblastrampoline@3.0.0:3") - depends_on("libgit2@1.1.0:1.1") - depends_on("libssh2@1.9.0:1") - depends_on("libuv@1.42.0") - depends_on("llvm@12.0.1") - depends_on("mbedtls@2.24.0:2.24") - depends_on("openlibm@0.7.0:0.7", when="+openlibm") - depends_on("curl@7.73.0:") - - with when("@1.6.0:1.6"): - # libssh2.so.1, libpcre2-8.so.0, mbedtls.so.13, mbedcrypto.so.5, mbedx509.so.1 - # openlibm.so.3, (todo: complete this list for upperbounds...) - depends_on("libgit2@1.1.0:1.1") - depends_on("libssh2@1.9.0:1") - depends_on("libuv@1.39.0") - depends_on("llvm@11.0.1") - depends_on("mbedtls@2.24.0:2.24") - depends_on("openlibm@0.7.0:0.7", when="+openlibm") - depends_on("curl@7.73.0:8.9") # patch for forward compat with curl@8.10 does not apply - # Patches for llvm - depends_on("llvm", patches="llvm7-symver-jlprefix.patch", when="@:1.7") depends_on( "llvm", - when="^llvm@11.0.1", + when="%llvm@11.0.1", patches=patch( "https://raw.githubusercontent.com/spack/patches/0b543955683a903d711a3e95ff29a4ce3951ca13/julia/llvm-11.0.1-julia-1.6.patch", sha256="8866ee0595272b826b72d173301a2e625855e80680a84af837f1ed6db4657f42", @@ -190,7 +179,7 @@ class Julia(MakefilePackage): ) depends_on( "llvm", - when="^llvm@12.0.1", + when="%llvm@12.0.1", patches=patch( "https://raw.githubusercontent.com/spack/patches/24ff44c4c5439400747941473c0298a74c1fbcb1/julia/10cb42f80c2eaad3e9c87cb818b6676f1be26737bdf972c77392d71707386aa4.patch", sha256="10cb42f80c2eaad3e9c87cb818b6676f1be26737bdf972c77392d71707386aa4", @@ -198,7 +187,7 @@ class Julia(MakefilePackage): ) depends_on( "llvm", - when="^llvm@13.0.1", + when="%llvm@13.0.1", patches=patch( "https://raw.githubusercontent.com/spack/patches/24ff44c4c5439400747941473c0298a74c1fbcb1/julia/45f72c59ae5cf45461e9cd8b224ca49b739d885c79b3786026433c6c22f83b5f.patch", sha256="45f72c59ae5cf45461e9cd8b224ca49b739d885c79b3786026433c6c22f83b5f", @@ -206,7 +195,7 @@ class Julia(MakefilePackage): ) depends_on( "llvm", - when="^llvm@14.0.6", + when="%llvm@14.0.6", patches=patch( "https://raw.githubusercontent.com/spack/patches/24ff44c4c5439400747941473c0298a74c1fbcb1/julia/f3def26930832532bbcd861d41b31ae03db993bc2b3510f89ef831a30bd3e099.patch", sha256="f3def26930832532bbcd861d41b31ae03db993bc2b3510f89ef831a30bd3e099", @@ -214,7 +203,7 @@ class Julia(MakefilePackage): ) depends_on( "llvm", - when="^llvm@15.0.7", + when="%llvm@15.0.7", patches=patch( "https://raw.githubusercontent.com/spack/patches/24ff44c4c5439400747941473c0298a74c1fbcb1/julia/25cdc0271e7722d4a7cc6f72abcb17bfe205fc741bbe3716a21759c3eee7d32c.patch", sha256="25cdc0271e7722d4a7cc6f72abcb17bfe205fc741bbe3716a21759c3eee7d32c", @@ -222,17 +211,25 @@ class Julia(MakefilePackage): ) depends_on( "llvm", - when="^llvm@16.0.6", + when="%llvm@16.0.6", patches=patch( "https://raw.githubusercontent.com/spack/patches/d042ae8f41493547d4263d249a13546f2c971972/julia/4997cd3006a3171d9b33f9a72ff9fdadc84e91a7c86aa044dcf495eef3a02893.patch", sha256="4997cd3006a3171d9b33f9a72ff9fdadc84e91a7c86aa044dcf495eef3a02893", ), ) + depends_on( + "llvm", + when="%llvm@18.1.8", + patches=patch( + "https://raw.githubusercontent.com/spack/patches/4d9ce09c4793f4899a588741fdc459530e26b313/julia/900363d08b2090bb44240aa33c1ee26558a183016db4fb7e048be4c1665c436e.patch", + sha256="900363d08b2090bb44240aa33c1ee26558a183016db4fb7e048be4c1665c436e", + ), + ) # Patches for libuv depends_on( "libuv", - when="^libuv@1.39.0", + when="%libuv@1.39.0", patches=patch( "https://raw.githubusercontent.com/spack/patches/b59ca193423c4c388254f528afabb906b5373162/julia/libuv-1.39.0.patch", sha256="f7c1e7341e89dc35dfd85435ba35833beaef575b997c3f978c27d0dbf805149b", @@ -240,7 +237,7 @@ class Julia(MakefilePackage): ) depends_on( "libuv", - when="^libuv@1.42.0", + when="%libuv@1.42.0", patches=patch( "https://raw.githubusercontent.com/spack/patches/89b6d14eb1f3c3d458a06f1e06f7dda3ab67bd38/julia/libuv-1.42.0.patch", sha256="d9252fbe67ac8f15e15653f0f6b00dffa07ae1a42f013d4329d17d8b492b7cdb", @@ -251,19 +248,22 @@ class Julia(MakefilePackage): # patchelf 0.18 breaks (at least) libjulia-internal.so depends_on("patchelf@0.13:0.17", type="build") depends_on("perl", type="build") - depends_on("libwhich", type="build") + depends_on("libwhich@1.3:", type="build") depends_on("which", type="build") # for detecting 7z, lld, dsymutil depends_on("python", type="build") + depends_on("binutils", type="build") # for readelf depends_on("blas") # note: for now openblas is fixed... - depends_on("curl tls=mbedtls +nghttp2 +libssh2") + depends_on("curl tls=openssl +nghttp2 +libssh2", when="@1.12:") + depends_on("curl tls=mbedtls +nghttp2 +libssh2", when="@:1.11") depends_on("dsfmt@2.2.4:") # apparently 2.2.3->2.2.4 breaks API depends_on("gmp") depends_on("lapack") # note: for now openblas is fixed... - depends_on("libblastrampoline", when="@1.7.0:") + depends_on("libblastrampoline") depends_on("libgit2") - depends_on("libssh2 crypto=mbedtls") - depends_on("mbedtls libs=shared") + depends_on("libssh2 crypto=openssl", when="@1.12:") + depends_on("libssh2 crypto=mbedtls", when="@:1.11") + depends_on("mbedtls libs=shared", when="@:1.11") depends_on("mpfr") depends_on("nghttp2") depends_on("openblas +ilp64 symbol_suffix=64_") @@ -274,13 +274,9 @@ class Julia(MakefilePackage): depends_on("unwind") depends_on("utf8proc") depends_on("zlib-api") - depends_on("zlib +shared +pic +optimize", when="^[virtuals=zlib-api] zlib") - - # https://github.com/JuliaLang/julia/pull/45649#issuecomment-1192377430 - conflicts("%gcc@12:", when="@:1.7") + depends_on("zlib +shared +pic +optimize", when="%[virtuals=zlib-api] zlib") # Patches for julia - patch("julia-1.6-system-libwhich-and-p7zip-symlink.patch", when="@1.6.0:1.6") patch("use-add-rpath.patch", when="@:1.8.0") patch("use-add-rpath-2.patch", when="@1.8.1:1.8") @@ -304,22 +300,9 @@ class Julia(MakefilePackage): patch( "https://github.com/JuliaLang/julia/commit/5d43397ee52323f1c015513b2be3909078b646ef.patch?full_index=1", sha256="15f9f2a7b6ae21aa5de8655970c673a953e1d46018e901f7fff98aead8e4a929", - when="@1.6.4:1.9.0", + when="@:1.9.0", ) - # Fix gfortran abi detection https://github.com/JuliaLang/julia/pull/44026 - patch("fix-gfortran.patch", when="@1.7.0:1.7.2") - - # Don't make julia run patchelf --set-rpath on llvm (presumably this should've - # only applied to libllvm when it's vendored by julia). - patch("revert-fix-rpath-of-libllvm.patch", when="@1.7.0:1.7.2") - - # Allow build with clang. - patch("gcc-ifdef.patch", when="@1.7.0:1.7") - - # Make sure Julia sets -DNDEBUG when including LLVM header files. - patch("llvm-NDEBUG.patch", when="@1.7.0:1.7") - # suite-sparse@7.2.1 sometimes builds cuda stub libraries and Julia build # system deals with them, but we don't compile them, so we remove the code # which is creating symlinks to those libraries. @@ -333,7 +316,7 @@ class Julia(MakefilePackage): name="downloads-patch-1", placement="downloads-patch-1", expand=False, - when="@1.7:1.11 ^curl@8.10:", + when="@:1.11 %curl@8.10:", ) resource( @@ -342,7 +325,7 @@ class Julia(MakefilePackage): name="downloads-jl-patch-2", placement="downloads-patch-2", expand=False, - when="@1.7:1.11 ^curl@8.10:", + when="@:1.11 %curl@8.10:", ) def patch(self): @@ -354,38 +337,14 @@ def patch(self): os.utime(os.path.join("base", "Makefile"), time) def setup_build_environment(self, env: EnvironmentModifications) -> None: - # this is a bit ridiculous, but we are setting runtime linker paths to - # dependencies so that libwhich can locate them. - if self.spec.satisfies("platform=linux"): - linker_var = "LD_LIBRARY_PATH" - elif self.spec.satisfies("platform=darwin"): - linker_var = "DYLD_FALLBACK_LIBRARY_PATH" - else: - return - pkgs = [ - "curl", - "dsfmt", - "gmp", - "libgit2", - "libssh2", - "libunwind", - "mbedtls", - "mpfr", - "nghttp2", - "openblas", - "pcre2", - "suite-sparse", - "utf8proc", - ] - if "+openlibm" in self.spec: - pkgs.append("openlibm") - if self.spec.satisfies("@1.7.0:"): - pkgs.append("libblastrampoline") - for pkg in pkgs: - for dir in self.spec[pkg].libs.directories: - env.prepend_path(linker_var, dir) - for dir in self.spec["zlib-api"].libs.directories: - env.prepend_path(linker_var, dir) + # Assemble search paths for libwhich + libdirs = [] + for dep in sorted(dep.name for dep in self.spec.dependencies(deptype="link")): + try: + libdirs.extend(self.spec[dep].libs.directories) + except Exception: + continue + env.set("LIBWHICH_LIBRARY_PATH", ":".join(libdirs)) def edit(self, spec, prefix): # TODO: use a search query for blas / lapack? @@ -401,7 +360,7 @@ def edit(self, spec, prefix): if julia_cpu_target == "auto": julia_cpu_target = get_best_target(spec.target, "clang", spec["llvm"].version) - libuv = "libuv-julia" if "^libuv-julia" in spec else "libuv" + libuv = "libuv-julia" if "%libuv-julia" in spec else "libuv" options = [ "prefix:={0}".format(prefix), @@ -419,14 +378,14 @@ def edit(self, spec, prefix): "USE_SYSTEM_LIBBLASTRAMPOLINE:=1", "USE_SYSTEM_LIBGIT2:=1", "USE_SYSTEM_LIBSSH2:=1", - "USE_SYSTEM_LIBSUITESPARSE:=1", # @1.7: - "USE_SYSTEM_SUITESPARSE:=1", # @:1.6 + "USE_SYSTEM_LIBSUITESPARSE:=1", "USE_SYSTEM_LIBUNWIND:=1", "USE_SYSTEM_LIBUV:=1", "USE_SYSTEM_LIBWHICH:=1", "USE_SYSTEM_LLD:=1", # @1.9: "USE_SYSTEM_LLVM:=1", - "USE_SYSTEM_MBEDTLS:=1", + "USE_SYSTEM_MBEDTLS:=1", # @:1.11 + "USE_SYSTEM_OPENSSL:=1", # @1.12: "USE_SYSTEM_MPFR:=1", "USE_SYSTEM_P7ZIP:=1", "USE_SYSTEM_PATCHELF:=1", @@ -470,7 +429,7 @@ def edit(self, spec, prefix): with open("Make.user", "w") as f: f.write("\n".join(options) + "\n") - @run_before("build", when="@1.7:1.11 ^curl@8.10:") + @run_before("build", when="@:1.11 %curl@8.10:") def patch_downloads_stdlib(self): # stdlibs are distributed as tarballs, which we need to unpack so we can patch Downloads.jl # making it forward compatible with curl. diff --git a/repos/spack_repo/builtin/packages/julia/revert-fix-rpath-of-libllvm.patch b/repos/spack_repo/builtin/packages/julia/revert-fix-rpath-of-libllvm.patch deleted file mode 100644 index 5920bfff110..00000000000 --- a/repos/spack_repo/builtin/packages/julia/revert-fix-rpath-of-libllvm.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 34b177cef31f8e6cd9e5251f7b0a8ea07a0fa328 Mon Sep 17 00:00:00 2001 -From: Harmen Stoppels -Date: Sat, 26 Mar 2022 10:51:55 +0100 -Subject: [PATCH] Revert "Merge pull request #42788 from - JuliaLang/vc/freebsd_fix" - -This reverts commit 57f6f27e07258c8dccd06b405259ebfe448c16e7, reversing -changes made to 13310eb4f0e40b8b2e7d77749fbf262f8029cf0f. ---- - Makefile | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/Makefile b/Makefile -index ec308a74f6..7cbb77ea06 100644 ---- a/Makefile -+++ b/Makefile -@@ -369,11 +369,6 @@ ifeq ($(BUNDLE_DEBUG_LIBS),1) - endif - endif - -- # Set rpath for LLVM.so which is `$ORIGIN/../lib` moving from `../lib` to `../lib/julia`. We only need to do this for Linux/FreeBSD --ifneq (,$(findstring $(OS),Linux FreeBSD)) -- $(PATCHELF) --set-rpath '$$ORIGIN:$$ORIGIN/$(reverse_private_libdir_rel)' $(DESTDIR)$(private_libdir)/libLLVM.$(SHLIB_EXT) --endif -- - - ifneq ($(LOADER_BUILD_DEP_LIBS),$(LOADER_INSTALL_DEP_LIBS)) - # Next, overwrite relative path to libjulia-internal in our loader if $$(LOADER_BUILD_DEP_LIBS) != $$(LOADER_INSTALL_DEP_LIBS) --- -2.25.1 - diff --git a/repos/spack_repo/builtin/packages/just/package.py b/repos/spack_repo/builtin/packages/just/package.py new file mode 100644 index 00000000000..6f48fe210dd --- /dev/null +++ b/repos/spack_repo/builtin/packages/just/package.py @@ -0,0 +1,41 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cargo import CargoPackage + +from spack.package import * + + +class Just(CargoPackage): + """just is a handy way to save and run project-specific commands""" + + homepage = "https://github.com/casey/just" + url = "https://github.com/casey/just/archive/refs/tags/1.46.0.tar.gz" + git = "https://github.com/casey/just.git" + + maintainers("Dando18") + + license("CC0-1.0", checked_by="Dando18") + + version("master", branch="master") + version("1.50.0", sha256="cca015e07739a1c26c6fc459f7d46e1e36ce0f7613114eddedd8cd3af55a10b7") + version("1.49.0", sha256="442406ee14eb9a59414525cf262354fe2e752b22c224ce2a5e42b2c493226e09") + version("1.46.0", sha256="f60a578502d0b29eaa2a72c5b0d91390b2064dfd8d1a1291c3b2525d587fd395") + version("1.42.2", sha256="9929acc303b881106d2bf2d3440d44f413372c14b0e44bf47cda8ada8801553a") + version("1.42.1", sha256="6a6ec94ae02791c2101fd65201032d7c1929fc6294e4deebc92d0e846882fe15") + version("1.42.0", sha256="6fdbd6199b5469c70762a4991ae03d88fae42b99b48124ad7ad84808b67cdfb8") + version("1.41.0", sha256="4ab64ebeaf7d6cf90d2824fddb91f7a3a4cfbb5d016e99cc5039ded475c8a244") + version("1.40.0", sha256="e0d48dcc7a086c5746b7f281a40e615c290cddf9c06134198c703dff2f62c1c4") + version("1.39.0", sha256="8a900072d7f909bc91030df5896168752bb9108967dbb7149d2cfb11fdeb087a") + version("1.38.0", sha256="3d47e27755d39f40e1ca34bc0ef535fa514e7ed547b2af62311dcadd8bd6d564") + version("1.37.0", sha256="13af58413af8f5d41d72c955de0ed9863a53f286df5f848e3d68bcb070b54ef2") + version("1.36.0", sha256="bc2e2ff0268c2818659c524b21663564864b50ba102afb0a44fe73c08cf35ff0") + version("1.35.0", sha256="f1ce3fe46c57cba0096227f8c9251d3b476e54e8a620eb39707d0ab3e16b8f55") + + depends_on("c", type="build") + + depends_on("rust@1.85:", type="build", when="@1.49.0:") + depends_on("rust@1.82:", type="build", when="@1.46.0:") + depends_on("rust@1.77:", type="build", when="@1.41.0:") + depends_on("rust@1.74:", type="build", when="@1.35.0:") diff --git a/repos/spack_repo/builtin/packages/k8/package.py b/repos/spack_repo/builtin/packages/k8/package.py index 6b7c72da13f..cf50be17520 100644 --- a/repos/spack_repo/builtin/packages/k8/package.py +++ b/repos/spack_repo/builtin/packages/k8/package.py @@ -3,7 +3,6 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os -import sys from spack_repo.builtin.build_systems.generic import Package @@ -19,14 +18,26 @@ class K8(Package): version("1.0", sha256="61504dad2d63404bf523d3f8d0a8bfd72ec78aa7bd79bdf9291a4f629cfb9c02") version("0.2.4", sha256="da8a99c7f1ce7f0cb23ff07ce10510e770686b906d5431442a5439743c0b3c47") - depends_on("cxx", type="build") # generated + requires( + "platform=linux target=x86_64:", + "platform=darwin target=aarch64:", + policy="one_of", + msg="package is only available for darwin aarch64 or linux x86_64", + ) depends_on("zlib-api", type="run") def install(self, spec, prefix): - if sys.platform == "darwin": - os.rename("k8-Darwin", "k8") + if self.spec.satisfies("platform=darwin target=aarch64:"): + if self.spec.satisfies("@=0.2.4"): + os.rename("k8-Darwin", "k8") + elif self.spec.satisfies("@1.0:"): + os.rename("k8-arm64-Darwin", "k8") + + if self.spec.satisfies("platform=linux target=x86_64:"): + if self.spec.satisfies("@=0.2.4"): + os.rename("k8-Linux", "k8") + elif self.spec.satisfies("@1.0:"): + os.rename("k8-x86_64-Linux", "k8") - if sys.platform != "darwin": - os.rename("k8-Linux", "k8") install_tree(".", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/kadath/package.py b/repos/spack_repo/builtin/packages/kadath/package.py index 024e90e0b5f..c78be8e04a5 100644 --- a/repos/spack_repo/builtin/packages/kadath/package.py +++ b/repos/spack_repo/builtin/packages/kadath/package.py @@ -20,14 +20,30 @@ class Kadath(CMakePackage): mixed spin binaries. """ - homepage = "https://kadath.obspm.fr/fuka/" - git = "https://gitlab.obspm.fr/grandcle/Kadath.git" + homepage = "https://samueltootle.github.io/fuka/index.html" + git = "https://bitbucket.org/fukaws/fuka.git" maintainers("eschnett") license("GPL-3.0-or-later") version("fuka", branch="fuka") + version("2.3", tag="v2.3", commit="f8ee3c7795911e1363358bf155c70f649c100fb5") + version( + "ET_2025_05_v0", tag="ET_2025_05_v0", commit="f1259452c0a62eee3e37c2314691643659e02705" + ) + version( + "ET_2024_11_v0", tag="ET_2024_11_v0", commit="848b68cb9e7cf70b1e38b8135d4def6502db5aff" + ) + version( + "ET_2024_05_v0", tag="ET_2024_05_v0", commit="ac1b07452572a83c434a637c8171c02d0f36aafe" + ) + version( + "ET_2023_11_v0", tag="ET_2023_11_v0", commit="f6208ce5c2a0a9cdd7cd93611037ae077bed7265" + ) + version("2.2", tag="v2.2", commit="c15aa72964bcddbaae1811cbab6dc2650e59b990") + version("ET_2023_05v0", tag="ET_2023_05v0", commit="1e8e9c59dc0dc8746709b81c5c0c70dc73109309") + version("2.1", tag="v2.1", commit="1e8e9c59dc0dc8746709b81c5c0c70dc73109309") variant("mpi", default=True, description="Enable MPI support") @@ -40,6 +56,7 @@ class Kadath(CMakePackage): ) depends_on("cxx", type="build") # generated + depends_on("c", type="build") # CMakeLists.txt doesn't specify language depends_on("blas") depends_on("boost cxxstd=17") # kadath uses std=C++17 diff --git a/repos/spack_repo/builtin/packages/kafka/package.py b/repos/spack_repo/builtin/packages/kafka/package.py index e952b0c6874..d16d8949ddf 100644 --- a/repos/spack_repo/builtin/packages/kafka/package.py +++ b/repos/spack_repo/builtin/packages/kafka/package.py @@ -22,15 +22,25 @@ class Kafka(Package): license("EPL-2.0") version( - "2.13-3.8.0", sha256="e0297cc6fdb09ef9d9905751b25d2b629c17528f8629b60561eeff87ce29099c" + "2.13-4.1.0", sha256="85b4538470d1dcb98d0273286bfab8717065522e597ecfffcd4db83a3021758e" ) version( - "2.13-3.7.1", sha256="62acae4a143dd983dc7eb4804d5744ba0c50b199b508f599ef001020e2558fc9" + "2.13-4.0.1", sha256="33cc5cd38584eb0f72616c4c2f05fb48834a56fa0a9cd9fe00ac7320c34cf524" + ) + version( + "2.13-4.0.0", sha256="7b852e938bc09de10cd96eca3755258c7d25fb89dbdd76305717607e1835e2aa" + ) + version( + "2.13-3.9.1", sha256="dd4399816e678946cab76e3bd1686103555e69bc8f2ab8686cda71aa15bc31a3" ) version( - "2.13-3.7.0", - sha256="65f26e5937bbb76dfe78dfb416730dfa7e3378b27e13fd1e204f1a1099bfaf9c", - deprecated=True, + "2.13-3.9.0", sha256="abc44402ddf103e38f19b0e4b44e65da9a831ba9e58fd7725041b1aa168ee8d1" + ) + version( + "2.13-3.8.0", sha256="e0297cc6fdb09ef9d9905751b25d2b629c17528f8629b60561eeff87ce29099c" + ) + version( + "2.13-3.7.1", sha256="62acae4a143dd983dc7eb4804d5744ba0c50b199b508f599ef001020e2558fc9" ) version( "2.13-3.5.1", sha256="f7b74d544023f2c0ec52a179de59975cb64e34ea03650d829328b407b560e4da" diff --git a/repos/spack_repo/builtin/packages/kagen/package.py b/repos/spack_repo/builtin/packages/kagen/package.py new file mode 100644 index 00000000000..9b3607284af --- /dev/null +++ b/repos/spack_repo/builtin/packages/kagen/package.py @@ -0,0 +1,71 @@ +# 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 Kagen(CMakePackage): + """KaGen - Communication-free Massively Distributed Graph Generation. + + KaGen provides generators for a variety of network models commonly found + in practice, including Erdos-Renyi, random geometric, random hyperbolic, + Barabasi-Albert, random Delaunay, R-MAT, and grid graphs. By using + pseudorandomization and divide-and-conquer schemes, the generators follow + a communication-free paradigm, enabling embarrassingly parallel generation + of graphs with up to 2^43 vertices and 2^47 edges. + """ + + homepage = "https://github.com/KarlsruheGraphGeneration/KaGen" + git = "https://github.com/KarlsruheGraphGeneration/KaGen.git" + maintainers("schulzchristian") + + license("BSD-2-Clause") + + version("main", branch="main", submodules=True) + version( + "1.3.0", tag="v1.3.0", commit="4443548b96b3bea903ce66438034906814bf1622", submodules=True + ) + version( + "1.2.9", tag="v1.2.9", commit="786579bbfbf8c81b2d2ab52c431ce5c7a8d068a4", submodules=True + ) + version( + "1.2.1", tag="v1.2.1", commit="7bfcf979e746580ddd8402c07216750c640bc24e", submodules=True + ) + version( + "1.2.0", tag="v1.2.0", commit="66c6349a8f9ba700a84acc6ece4c992ab50bf8af", submodules=True + ) + version( + "1.1.0", tag="v1.1.0", commit="a8118be48efa69f86e7e2251fcc03f55eee2ca8c", submodules=True + ) + + variant("cgal", default=True, description="Enable RDG generators via CGAL") + variant( + "sparsehash", + default=False, + description="Use Google Sparsehash instead of std::unordered_map", + ) + variant("xxhash", default=True, description="Enable xxHash for path permutation") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cmake@3.16:", type="build") + depends_on("mpi") + depends_on("cgal", when="+cgal") + depends_on("sparsehash", when="+sparsehash") + depends_on("boost", when="+cgal") + + conflicts("%apple-clang") + + def cmake_args(self): + return [ + self.define_from_variant("KAGEN_USE_CGAL", "cgal"), + self.define_from_variant("KAGEN_USE_SPARSEHASH", "sparsehash"), + self.define_from_variant("KAGEN_USE_XXHASH", "xxhash"), + self.define("KAGEN_BUILD_APPS", True), + self.define("KAGEN_BUILD_TESTS", False), + self.define("KAGEN_BUILD_EXAMPLES", False), + ] diff --git a/repos/spack_repo/builtin/packages/kahip/fix-sconstruct-for-py3-v2.00.patch b/repos/spack_repo/builtin/packages/kahip/fix-sconstruct-for-py3-v2.00.patch deleted file mode 100644 index 8a75032e190..00000000000 --- a/repos/spack_repo/builtin/packages/kahip/fix-sconstruct-for-py3-v2.00.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -Naur spack-src/SConstruct spack-src.patched/SConstruct ---- spack-src/SConstruct 2017-07-25 08:41:27.000000000 -0400 -+++ spack-src.patched/SConstruct 2020-07-21 13:26:11.212509775 -0400 -@@ -55,11 +55,11 @@ - - env = Environment(options=opts, ENV=os.environ) - if not env['variant'] in ['optimized','optimized_output','debug']: -- print 'Illegal value for variant: %s' % env['variant'] -+ print('Illegal value for variant: %s' % env['variant']) - sys.exit(1) - - if not env['program'] in ['kaffpa', 'kaffpaE', 'partition_to_vertex_separator','improve_vertex_separator','library','graphchecker','label_propagation','evaluator','node_separator']: -- print 'Illegal value for program: %s' % env['program'] -+ print('Illegal value for program: %s' % env['program']) - sys.exit(1) - - # Special configuration for 64 bit machines. -@@ -104,10 +104,10 @@ - - #by D. Luxen - #if not conf.CheckLibWithHeader('argtable2', 'argtable2.h', 'CXX'): -- #print "argtable library not found. Exiting" -+ #print("argtable library not found. Exiting") - #Exit(-1) - #if not conf.CheckCXXHeader('mpi.h'): -- #print "openmpi header not found. Exiting" -+ #print("openmpi header not found. Exiting") - #Exit(-1) - # - # diff --git a/repos/spack_repo/builtin/packages/kahip/fix-sconstruct-for-py3.patch b/repos/spack_repo/builtin/packages/kahip/fix-sconstruct-for-py3.patch deleted file mode 100644 index 2cd61650afd..00000000000 --- a/repos/spack_repo/builtin/packages/kahip/fix-sconstruct-for-py3.patch +++ /dev/null @@ -1,101 +0,0 @@ -diff -Naur spack-src/interface/SConstruct spack-src.patched/interface/SConstruct ---- spack-src/interface/SConstruct 2017-07-25 08:41:27.000000000 -0400 -+++ spack-src.patched/interface/SConstruct 2020-07-21 13:25:41.586597330 -0400 -@@ -33,7 +33,7 @@ - - env = Environment(options=opts, ENV=os.environ) - if not env['variant'] in ['debug', 'optimized', 'pdebug', 'profilingoptimized']: -- print 'Illegal value for variant: %s' % env['variant'] -+ print('Illegal value for variant: %s' % env['variant']) - sys.exit(1) - - # Special configuration for 64 bit machines. -diff -Naur spack-src/misc/example_library_call/SConstruct spack-src.patched/misc/example_library_call/SConstruct ---- spack-src/misc/example_library_call/SConstruct 2017-07-25 08:41:27.000000000 -0400 -+++ spack-src.patched/misc/example_library_call/SConstruct 2020-07-21 12:06:05.543455286 -0400 -@@ -53,11 +53,11 @@ - - env = Environment(options=opts, ENV=os.environ) - if not env['variant'] in ['optimized','optimized_output','debug']: -- print 'Illegal value for variant: %s' % env['variant'] -+ print('Illegal value for variant: %s' % env['variant']) - sys.exit(1) - - if not env['program'] in ['interfacetest']: -- print 'Illegal value for program: %s' % env['program'] -+ print('Illegal value for program: %s' % env['program']) - sys.exit(1) - - # Special configuration for 64 bit machines. -diff -Naur spack-src/parallel/modified_kahip/interface/SConstruct spack-src.patched/parallel/modified_kahip/interface/SConstruct ---- spack-src/parallel/modified_kahip/interface/SConstruct 2017-07-25 08:41:27.000000000 -0400 -+++ spack-src.patched/parallel/modified_kahip/interface/SConstruct 2020-07-21 12:06:36.461407930 -0400 -@@ -33,7 +33,7 @@ - - env = Environment(options=opts, ENV=os.environ) - if not env['variant'] in ['debug', 'optimized', 'pdebug', 'profilingoptimized']: -- print 'Illegal value for variant: %s' % env['variant'] -+ print('Illegal value for variant: %s' % env['variant']) - sys.exit(1) - - # Special configuration for 64 bit machines. -diff -Naur spack-src/parallel/modified_kahip/SConstruct spack-src.patched/parallel/modified_kahip/SConstruct ---- spack-src/parallel/modified_kahip/SConstruct 2017-07-25 08:41:27.000000000 -0400 -+++ spack-src.patched/parallel/modified_kahip/SConstruct 2020-07-21 13:23:37.148764755 -0400 -@@ -55,11 +55,11 @@ - - env = Environment(options=opts, ENV=os.environ) - if not env['variant'] in ['optimized','optimized_output','debug']: -- print 'Illegal value for variant: %s' % env['variant'] -+ print('Illegal value for variant: %s' % env['variant']) - sys.exit(1) - - if not env['program'] in ['kaffpa', 'kaffpaE', 'partition_to_vertex_separator','library','graphchecker','label_propagation','interfacetest']: -- print 'Illegal value for program: %s' % env['program'] -+ print('Illegal value for program: %s' % env['program']) - sys.exit(1) - - # Special configuration for 64 bit machines. -@@ -98,10 +98,10 @@ - - #by D. Luxen - #if not conf.CheckLibWithHeader('argtable2', 'argtable2.h', 'CXX'): -- #print "argtable library not found. Exiting" -+ #print("argtable library not found. Exiting") - #Exit(-1) - #if not conf.CheckCXXHeader('mpi.h'): -- #print "openmpi header not found. Exiting" -+ #print("openmpi header not found. Exiting") - #Exit(-1) - # - # -diff -Naur spack-src/parallel/parallel_src/SConstruct spack-src.patched/parallel/parallel_src/SConstruct ---- spack-src/parallel/parallel_src/SConstruct 2017-07-25 08:41:27.000000000 -0400 -+++ spack-src.patched/parallel/parallel_src/SConstruct 2020-07-21 13:25:13.102720046 -0400 -@@ -55,11 +55,11 @@ - - env = Environment(options=opts, ENV=os.environ) - if not env['variant'] in ['optimized','optimized_nooutput','debug']: -- print 'Illegal value for variant: %s' % env['variant'] -+ print('Illegal value for variant: %s' % env['variant']) - sys.exit(1) - - if not env['program'] in ['parhip','edge_list_to_metis_graph','friendster_list_to_metis_graph','parallel_label_compress_reps','yahoo_to_metis','parmetis_driver','graph2binary','graph2binary_external','readbgf','toolbox']: -- print 'Illegal value for program: %s' % env['program'] -+ print('Illegal value for program: %s' % env['program']) - sys.exit(1) - - # Special configuration for 64 bit machines. -@@ -104,10 +104,10 @@ - - #by D. Luxen - #if not conf.CheckLibWithHeader('argtable2', 'argtable2.h', 'CXX'): -- #print "argtable library not found. Exiting" -+ #print("argtable library not found. Exiting") - #Exit(-1) - #if not conf.CheckCXXHeader('mpi.h'): -- #print "openmpi header not found. Exiting" -+ #print("openmpi header not found. Exiting") - #Exit(-1) - # - # diff --git a/repos/spack_repo/builtin/packages/kahip/package.py b/repos/spack_repo/builtin/packages/kahip/package.py index 617d458c537..09278e1ad4c 100644 --- a/repos/spack_repo/builtin/packages/kahip/package.py +++ b/repos/spack_repo/builtin/packages/kahip/package.py @@ -2,9 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import os -import re - from spack_repo.builtin.build_systems.cmake import CMakePackage from spack.package import * @@ -23,7 +20,7 @@ class Kahip(CMakePackage): geared towards efficient partitioning of social networks. """ - homepage = "http://algo2.iti.kit.edu/documents/kahip/index.html" + homepage = "https://algo2.iti.kit.edu/documents/kahip/index.html" url = "https://github.com/KaHIP/KaHIP/archive/v3.14.tar.gz" git = "https://github.com/KaHIP/KaHIP.git" maintainers("ma595") @@ -35,12 +32,6 @@ class Kahip(CMakePackage): version("3.13", sha256="fae21778a4ce8e59ccb98e5cbb6c01f0af7e594657d21f6c0eb2c6e74398deb1") version("3.12", sha256="df923b94b552772d58b4c1f359b3f2e4a05f7f26ab4ebd00a0ab7d2579f4c257") version("3.11", sha256="347575d48c306b92ab6e47c13fa570e1af1e210255f470e6aa12c2509a8c13e3") - version( - "2.00", - sha256="1cc9e5b12fea559288d377e8b8b701af1b2b707de8e550d0bda18b36be29d21d", - url="https://algo2.iti.kit.edu/schulz/software_releases/KaHIP_2.00.tar.gz", - deprecated=True, - ) variant( "deterministic", @@ -53,7 +44,6 @@ class Kahip(CMakePackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("scons", type="build", when="@2:2.10") depends_on("argtable") depends_on("mpi") # Note: upstream package only tested on openmpi depends_on("metis", when="@3.12: +metis") @@ -61,59 +51,8 @@ class Kahip(CMakePackage): conflicts("%apple-clang") conflicts("%clang") - # Fix SConstruct files to be python3 friendly (convert print from a - # statement to a function) - # Split into 2 patch files: - # *) first file patches Sconstruct files present in all versions (from - # 2.00 to 2.10) - # *) second is for files only present in 2.00 - patch("fix-sconstruct-for-py3.patch", when="@2:2.10 ^python@3:") - patch("fix-sconstruct-for-py3-v2.00.patch", when="@2.00 ^python@3:") - - patch("cstdint.patch", when="@3:") - - # 'when' decorators to override new CMake build approach (old build was SConstruct). - @when("@:2.10") - def patch(self): - """Internal compile.sh scripts hardcode number of cores to build with. - Filter these out so Spack can control it.""" - - files = [ - "compile.sh", - "parallel/modified_kahip/compile.sh", - "parallel/parallel_src/compile.sh", - ] - - for f in files: - filter_file("NCORES=.*", "NCORES={0}".format(make_jobs), f) + patch("cstdint.patch") @when("@3.13:") def cmake_args(self): return [self.define_from_variant("DETERMINISTIC_PARHIP", "deterministic")] - - @when("@:2.10") - def cmake(self, spec, prefix): - pass - - @when("@:2.10") - def build(self, spec, prefix): - """Build using the KaHIP compile.sh script. Uses scons internally.""" - builder = Executable("./compile.sh") - builder() - - @when("@:2.10") - def install(self, spec, prefix): - """Install under the prefix""" - # Ugly: all files land under 'deploy' and we need to disentangle them - mkdirp(prefix.bin) - mkdirp(prefix.include) - mkdirp(prefix.lib) - - with working_dir("deploy"): - for f in os.listdir("."): - if re.match(r".*\.(a|so|dylib)$", f): - install(f, prefix.lib) - elif re.match(r".*\.h$", f): - install(f, prefix.include) - else: - install(f, prefix.bin) diff --git a/repos/spack_repo/builtin/packages/kallisto/package.py b/repos/spack_repo/builtin/packages/kallisto/package.py index 1685987c60f..f671ea91d97 100644 --- a/repos/spack_repo/builtin/packages/kallisto/package.py +++ b/repos/spack_repo/builtin/packages/kallisto/package.py @@ -52,7 +52,7 @@ def autoreconf(self): # config.sub in the tree. if self.spec.satisfies("@0.44.0:^autoconf@2.70:"): with working_dir(join_path(self.stage.source_path, "ext", "htslib")): - autoreconf = which("autoreconf") + autoreconf = which("autoreconf", required=True) autoreconf("--install") # Including '-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON' in the cmake args diff --git a/repos/spack_repo/builtin/packages/kassiopeia/package.py b/repos/spack_repo/builtin/packages/kassiopeia/package.py index bf85a8abbb9..99f025b6d4c 100644 --- a/repos/spack_repo/builtin/packages/kassiopeia/package.py +++ b/repos/spack_repo/builtin/packages/kassiopeia/package.py @@ -19,6 +19,8 @@ class Kassiopeia(CMakePackage): maintainers("wdconinc") version("main", branch="main") + version("4.1.0", sha256="d7a138877ce273d00cf7c303409c95ac1ec6dc3eba19acca9e652681e10d19a2") + version("4.0.1", sha256="7ace5767a1db1a84cdd03c786a3d12b9e8b827b16f21d1c101d8ab6c0fa39f64") version("3.8.2", sha256="9da59697365540a8b0d66e9a63f57aff6d868f7c5b39dfec28bb11ec83f31527") version("3.8.0", sha256="ae44c2d485fadaa6f562388064a211ae51b7d06bab7add2723ab0c8b21eb7e8f") version("3.7.7", sha256="b5f62b2e796fac57698794b46b63acbc47ce02010bd1f716996918a550b22a21") diff --git a/repos/spack_repo/builtin/packages/kcov/package.py b/repos/spack_repo/builtin/packages/kcov/package.py index 6f74edf5d04..5c7f7ee3c49 100644 --- a/repos/spack_repo/builtin/packages/kcov/package.py +++ b/repos/spack_repo/builtin/packages/kcov/package.py @@ -17,21 +17,18 @@ class Kcov(CMakePackage): license("GPL-2.0-or-later") + version("43", sha256="4cbba86af11f72de0c7514e09d59c7927ed25df7cebdad087f6d3623213b95bf") version("42", sha256="2c47d75397af248bc387f60cdd79180763e1f88f3dd71c94bb52478f8e74a1f8") - version( - "38", - sha256="b37af60d81a9b1e3b140f9473bdcb7975af12040feb24cc666f9bb2bb0be68b4", - url="https://github.com/SimonKagstrom/kcov/archive/38.tar.gz", - deprecated=True, - ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("cmake@2.8.4:", type="build") - depends_on("zlib-api") - depends_on("curl") - depends_on("elfutils", when="platform=linux") + depends_on("zlib-api", type="link") + depends_on("curl", type="link") + depends_on("openssl", type="link") + depends_on("libdwarf", when="platform=darwin", type="link") + depends_on("elfutils", when="platform=linux", type="link") depends_on("binutils +libiberty", when="platform=linux", type="link") def cmake_args(self): diff --git a/repos/spack_repo/builtin/packages/keepassxc/package.py b/repos/spack_repo/builtin/packages/keepassxc/package.py index 28f305c6189..98720d1d2ab 100644 --- a/repos/spack_repo/builtin/packages/keepassxc/package.py +++ b/repos/spack_repo/builtin/packages/keepassxc/package.py @@ -19,6 +19,7 @@ class Keepassxc(CMakePackage): license("GPL-2.0-only OR GPL-3.0-only") version("master", branch="master") + version("2.7.12", sha256="be34eeb297881adea4f894c7c6e4a1835bd7927f8043ddea495040df4792a7de") version("2.7.9", sha256="3c44e45f22c00ddac63d8bc11054b4b0ada0222ffac08d3ed70f196cb9ed46fd") version("2.7.8", sha256="87d3101712b3c8656a24b908ad5b7e2529bc01717cb4156f53ba195fb81783a3") version("2.7.7", sha256="58fc45ae98e4b3ffb052103014f5b97a41fefd17102c7f56073934dd3a82ee67") @@ -31,11 +32,12 @@ class Keepassxc(CMakePackage): variant("autotype", default=False, description="enable auto-type") variant("docs", default=True, description="Build documentation") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") # https://github.com/keepassxreboot/keepassxc/wiki/Building-KeePassXC # https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Linux + depends_on("cmake@3.14.7:", type="build", when="@2.7.7:") depends_on("cmake@3.1:", type="build") # It installs the last gcc instead of using one that is >= 4.7 diff --git a/repos/spack_repo/builtin/packages/kenlm/package.py b/repos/spack_repo/builtin/packages/kenlm/package.py new file mode 100644 index 00000000000..9088f4e4131 --- /dev/null +++ b/repos/spack_repo/builtin/packages/kenlm/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.cmake import CMakePackage + +from spack.package import * + + +class Kenlm(CMakePackage): + """Faster and Smaller Language Model Queries with KenML""" + + homepage = "https://kheafield.com/code/kenlm/" + git = "https://github.com/kpu/kenlm.git" + + version("master", branch="master") + + variant("python", default=True, description="Build Python bindings") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cmake@3.10:", type="build") + depends_on("boost@1.41.0: +program_options +thread +system +test", type="build") + depends_on("eigen@3.1.0:", type="build") + + extends("python", when="+python") + # Python 3.13 breaks the build + # https://github.com/kpu/kenlm/pull/468 + # https://github.com/kpu/kenlm/pull/473 + depends_on("python@:3.12", when="+python", type=("build", "run")) + depends_on("py-cython@0.29.35:", type="build", when="+python") + + def cmake_args(self): + return [ + self.define("BUILD_SHARED_LIBS", False), + self.define("KENLM_MAX_ORDER", 6), + self.define_from_variant("ENABLE_PYTHON", "python"), + ] + + def setup_build_environment(self, env): + env.set("CXXFLAGS", "-fPIC") diff --git a/repos/spack_repo/builtin/packages/kentutils/fix-straw-cstdint.patch b/repos/spack_repo/builtin/packages/kentutils/fix-straw-cstdint.patch new file mode 100644 index 00000000000..cd5d6ced37d --- /dev/null +++ b/repos/spack_repo/builtin/packages/kentutils/fix-straw-cstdint.patch @@ -0,0 +1,10 @@ +--- a/kent/src/hg/lib/straw/straw.cpp ++++ b/kent/src/hg/lib/straw/straw.cpp +@@ -21,6 +21,7 @@ + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + */ ++#include + #include + #include + #include diff --git a/repos/spack_repo/builtin/packages/kentutils/package.py b/repos/spack_repo/builtin/packages/kentutils/package.py index d15e266236a..31fbc7861fc 100644 --- a/repos/spack_repo/builtin/packages/kentutils/package.py +++ b/repos/spack_repo/builtin/packages/kentutils/package.py @@ -27,13 +27,6 @@ class Kentutils(MakefilePackage): version("464", sha256="24e20fe68e2a2894d802c87662f69a62f71b3c15fafb2e4d6c3c425c63638bb2") version("460", sha256="b955e56ee880074521ef1ab1371491f47e66dc6fdd93b05328386dd675a635fa") version("455", sha256="e458cadad7c4a5c1b8385edafffa1b29380ac725a0c20535bf5a3bab99fe80db") - # This version isn't present in the archive any more - # Might be worth changing url to: https://github.com/ucscGenomeBrowser/kent-core/tags/... - version( - "459", - sha256="0b6e89a183e6385c713cf010a7aeead9da6626d8d2f78c363a4f1bc56ccccebb", - deprecated=True, - ) # The bundled version of kentlib has some custom changes that are used by parts of # kentlib. See https://github.com/spack/spack/pull/44501#issuecomment-2162789410 @@ -68,16 +61,18 @@ class Kentutils(MakefilePackage): conflicts("mariadb-c-client") # MySQL pointer/integer conversion issue (https://github.com/ucscGenomeBrowser/kent/pull/87) - patch("fix-mysql-options-gcc13.patch", when="%gcc@13: ^mysql") + patch("fix-mysql-options-gcc13.patch", when="%gcc@13.0:13.2 ^mysql") # MySQL build flags from `mysql_config` are not compatible with Spack's method of building # and includes zlib when it's not needed/available, leading to a linking failure. patch("mysql-zlib-workaround.patch", when="%gcc ^mysql") + # straw.cpp uses uint16_t/uint64_t without including , which GCC 13+ requires + patch("fix-straw-cstdint.patch", when="%gcc@13:") def flag_handler(self, name, flags): if name == "cflags": flags.append(self.compiler.cc_pic_flag) elif name == "ldflags": - flags.append(f'{self.spec["libiconv"].libs.ld_flags}') + flags.append(f"{self.spec['libiconv'].libs.ld_flags}") return (flags, None, None) @property @@ -128,7 +123,7 @@ def htslib_include_dir(self): # Packages that link to kentlib (and potential, htslib) often have # idiosyncratic ways of setting up their includes and linker paths. # Having these paths available will make things cleaner downstream. - def setup_dependent_package(self, module, dep_spec): + def setup_dependent_package(self, module, dependent_spec): setattr(module, "kentutils_include_dir", self.prefix.inc) setattr(module, "kentutils_lib_dir", self.lib_dir) setattr(module, "kentutils_htslib_include_dir", self.htslib_include_dir) diff --git a/repos/spack_repo/builtin/packages/kibana/package.py b/repos/spack_repo/builtin/packages/kibana/package.py index 2a87633616d..966115d1e6f 100644 --- a/repos/spack_repo/builtin/packages/kibana/package.py +++ b/repos/spack_repo/builtin/packages/kibana/package.py @@ -15,9 +15,6 @@ class Kibana(Package): url = "https://artifacts.elastic.co/downloads/kibana/kibana-6.4.0-linux-x86_64.tar.gz" version("8.15.2", sha256="b1f8082a4200867078170e92ad299e293ee514f5fdbb96b7a0d1de17a880d1eb") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2019-7609 - version("6.4.0", sha256="df2056105a08c206a1adf9caed09a152a53429a0f1efc1ba3ccd616092d78aee") depends_on("java", type="run") diff --git a/repos/spack_repo/builtin/packages/kicad/package.py b/repos/spack_repo/builtin/packages/kicad/package.py index 609a4ae5607..693f652940e 100644 --- a/repos/spack_repo/builtin/packages/kicad/package.py +++ b/repos/spack_repo/builtin/packages/kicad/package.py @@ -20,8 +20,6 @@ class Kicad(CMakePackage): license("GPL-3.0-or-later") version("7.0.2", sha256="8df56648226061c91ddd1d2ca970c66190fc70c7ace23c99cc28c209713e4dfc") - version("5.1.9", sha256="841be864b9dc5c761193c3ee9cbdbed6729952d7b38451aa8e1977bdfdb6081b") - version("5.1.8", sha256="bf24f8ef427b4a989479b8e4af0b8ae5c54766755f12748e2e88a922c5344ca4") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -39,9 +37,8 @@ class Kicad(CMakePackage): # for instance depends_on('boost +filesystem') # See https://github.com/spack/spack/pull/22303 for reference depends_on(Boost.with_default_variants) - depends_on("oce+X11", when="@5") - depends_on("opencascade", when="@7:") - depends_on("unixodbc", when="@7:") + depends_on("opencascade") + depends_on("unixodbc") depends_on("swig", type="build") depends_on("curl") depends_on("pkgconfig") @@ -55,30 +52,6 @@ class Kicad(CMakePackage): resource_list = [ # version, resource, sha256sum - ( - "5.1.8", - "footprints", - "8937b5ba0f67844ffaca40632bebe9c2f4f17fba446137434aa72363c55d7dd9", - ), - ( - "5.1.8", - "packages3D", - "81e64939e922742431284bb19d1ec274d6dc10fd238e5583ead21dc08876c221", - ), - ("5.1.8", "symbols", "98cedcca4d7ad6e3be96ec5a41f8f9b3414eae276bac1efdfd3f8871f0f8bc7e"), - ("5.1.8", "templates", "d64ca82854e9780413447a3fa82a528b264d39f57d467fddfc78f919e7ed15c5"), - ( - "5.1.9", - "footprints", - "a86fbe00fccd6da2d29687ec0c56a9c3cb6b9748ee8fd35c1625839168f28edc", - ), - ( - "5.1.9", - "packages3D", - "35a4888dabd2dedb0d49c3e84b0eebc97b306200510e818dad90d4bb1c9e3296", - ), - ("5.1.9", "symbols", "6741a7b01f14f1f5aae3155a554816516cf02ce7790074ba8462dee8091f8c2f"), - ("5.1.9", "templates", "bacf93567f8efe87314762448bb69698c8ed387058c13868c051c91740014aac"), ( "7.0.2", "footprints", diff --git a/repos/spack_repo/builtin/packages/kmergenie/package.py b/repos/spack_repo/builtin/packages/kmergenie/package.py index db5f97f09ca..d2002988725 100644 --- a/repos/spack_repo/builtin/packages/kmergenie/package.py +++ b/repos/spack_repo/builtin/packages/kmergenie/package.py @@ -18,6 +18,7 @@ class Kmergenie(MakefilePackage): version("1.7051", sha256="13148e5a2c700359cffca363b66ffa8f23c5db6af6eec03f739139ffdfee763f") version("1.7044", sha256="46f2a08a2d7b1885414143e436829dd7e61fcc31ec4e429433e516a168d2978e") + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("python", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/kmod/package.py b/repos/spack_repo/builtin/packages/kmod/package.py index ae4455cac1b..e0711cd7a02 100644 --- a/repos/spack_repo/builtin/packages/kmod/package.py +++ b/repos/spack_repo/builtin/packages/kmod/package.py @@ -32,7 +32,7 @@ class Kmod(AutotoolsPackage): depends_on("xz") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("autogen.sh") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/knem/package.py b/repos/spack_repo/builtin/packages/knem/package.py index a9ac0c33022..4d31ba70724 100644 --- a/repos/spack_repo/builtin/packages/knem/package.py +++ b/repos/spack_repo/builtin/packages/knem/package.py @@ -11,7 +11,7 @@ class Knem(AutotoolsPackage): """KNEM is a Linux kernel module enabling high-performance intra-node MPI communication for large messages.""" - homepage = "https://knem.gforge.inria.fr" + homepage = "https://knem.gitlabpages.inria.fr" url = "https://gitlab.inria.fr/knem/knem/uploads/4a43e3eb860cda2bbd5bf5c7c04a24b6/knem-1.1.4.tar.gz" list_url = "https://knem.gitlabpages.inria.fr/download" git = "https://gitlab.inria.fr/knem/knem.git" diff --git a/repos/spack_repo/builtin/packages/kokkos/hpx_profiling_fences.patch b/repos/spack_repo/builtin/packages/kokkos/hpx_profiling_fences.patch deleted file mode 100644 index 013fbd9f678..00000000000 --- a/repos/spack_repo/builtin/packages/kokkos/hpx_profiling_fences.patch +++ /dev/null @@ -1,84 +0,0 @@ -diff --git a/core/src/HPX/Kokkos_HPX_Task.hpp b/core/src/HPX/Kokkos_HPX_Task.hpp -index 7bb3ca5d0..ff50fdc5f 100644 ---- a/core/src/HPX/Kokkos_HPX_Task.hpp -+++ b/core/src/HPX/Kokkos_HPX_Task.hpp -@@ -216,7 +216,7 @@ class TaskQueueSpecializationConstrained< - task_queue.scheduler = &scheduler; - Kokkos::Impl::dispatch_execute_task(&task_queue, - Kokkos::Experimental::HPX()); -- Kokkos::Experimental::HPX().fence()"Kokkos::Impl::TaskQueueSpecializationConstrained::execute: fence after task execution"; -+ Kokkos::Experimental::HPX().fence("Kokkos::Impl::TaskQueueSpecializationConstrained::execute: fence after task execution"); - } - - // Must provide task queue execution function -diff --git a/core/src/Kokkos_HPX.hpp b/core/src/Kokkos_HPX.hpp -index 236211864..3e8522e94 100644 ---- a/core/src/Kokkos_HPX.hpp -+++ b/core/src/Kokkos_HPX.hpp -@@ -282,11 +282,11 @@ class HPX { - m_mode = other.m_mode; - m_independent_instance_data = other.m_independent_instance_data; - m_buffer = m_mode == instance_mode::independent -- ? m_independent_instance_data->m_buffer -- : m_global_instance_data.m_buffer; -- m_future = m_mode == instance_mode::independent -- ? m_independent_instance_data->m_future -- : m_global_instance_data.m_future; -+ ? m_independent_instance_data->m_buffer -+ : m_global_instance_data.m_buffer; -+ m_future = m_mode == instance_mode::independent -+ ? m_independent_instance_data->m_future -+ : m_global_instance_data.m_future; - return *this; - } - #else -@@ -322,25 +322,36 @@ class HPX { - "Fence"); - } - void impl_fence_instance(const std::string &name) const { -- Kokkos::Tools::Experimental::Impl::profile_fence_event(name, *this, [&]() { -- if (hpx::threads::get_self_ptr() == nullptr) { -- hpx::threads::run_as_hpx_thread([this]() { impl_get_future().wait(); }); -- } else { -- impl_get_future().wait(); -- } -- }); -+ Kokkos::Tools::Experimental::Impl::profile_fence_event< -+ Kokkos::Experimental::HPX>( -+ name, -+ Kokkos::Tools::Experimental::Impl::DirectFenceIDHandle{ -+ impl_instance_id()}, -+ [&]() { -+ if (hpx::threads::get_self_ptr() == nullptr) { -+ hpx::threads::run_as_hpx_thread( -+ [this]() { impl_get_future().wait(); }); -+ } else { -+ impl_get_future().wait(); -+ } -+ }); - } - - void impl_fence_all_instances() const { -- impl_fence_instance( -+ impl_fence_all_instances( - "Kokkos::Experimental::HPX::impl_fence_all_instances: Unnamed Global " - "HPX Fence"); - } -- void impl_fence_all_instances(const std::string &namename) const { -- Kokkos::Tools::Experimental::Impl::profile_fence_event(name, *this, [&]() { -- hpx::util::yield_while( -- []() { return m_active_parallel_region_count.load() != 0; }); -- }); -+ void impl_fence_all_instances(const std::string &name) const { -+ Kokkos::Tools::Experimental::Impl::profile_fence_event< -+ Kokkos::Experimental::HPX>( -+ name, -+ Kokkos::Tools::Experimental::SpecialSynchronizationCases:: -+ GlobalDeviceSynchronization, -+ [&]() { -+ hpx::util::yield_while( -+ []() { return m_active_parallel_region_count.load() != 0; }); -+ }); - } - #endif - diff --git a/repos/spack_repo/builtin/packages/kokkos/package.py b/repos/spack_repo/builtin/packages/kokkos/package.py index dd733c4d60e..7bee0b8fd1d 100644 --- a/repos/spack_repo/builtin/packages/kokkos/package.py +++ b/repos/spack_repo/builtin/packages/kokkos/package.py @@ -22,13 +22,23 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage): test_requires_compiler = True - maintainers("cedricchevalier19", "nmm0", "lucbv") + maintainers("cedricchevalier19", "nmm0", "lucbv", "tpadioleau") license("Apache-2.0 WITH LLVM-exception") - version("master", branch="master") version("develop", branch="develop") + version("5.1.1", sha256="8bdbee0f0ac383436743ad8a9e3e928705b34b31a25a92dc5179c52a3aa98519") + version("5.1.0", sha256="7bdbdfc88033ed7d940c7940ed8919e1f2b78a9656c69276beb76ad45c41ec4e") + version("5.0.2", sha256="188817bb452ca805ee8701f1c5adbbb4fb83dc8d1c50624566a18a719ba0fa5e") + version("5.0.1", sha256="cf7d8515ca993229929be9f051aecd8f93cde325adac8a4f82ed6848adace218") + version("5.0.0", sha256="c45f3e19c3eb71fc8b7210cb04cac658015fc1839e7cc0571f7406588ff9bcef") + version("4.7.04", sha256="4213b248c39e112299fa94ee08817e51126fc02996ed6e2ab56aec4cdb80ee1f") + version("4.7.03", sha256="969e7933b9426219b220f08036e489b3226e6d8cd24eecf2c5b80df8c37443c0") + version("4.7.02", sha256="a81826ac0a167933d13506bc2a986fb5517038df9abb780fe9bb2c1d4e80803b") + version("4.7.01", sha256="404cf33e76159e83b8b4ad5d86f6899d442b5da4624820ab457412116cdcd201") + version("4.7.00", sha256="126b774a24dde8c1085c4aede7564c0b7492d6a07d85380f2b387a712cea1ff5") + version("4.6.02", sha256="baf1ebbe67abe2bbb8bb6aed81b4247d53ae98ab8475e516d9c87e87fa2422ce") version("4.6.01", sha256="b9d70e4653b87a06dbb48d63291bf248058c7c7db4bd91979676ad5609bb1a3a") version("4.6.00", sha256="be72cf7fc6ef6b99c614f29b945960013a2aaa23859bfe1a560d8d9aa526ec9c") version("4.5.01", sha256="52d003ffbbe05f30c89966e4009c017efb1662b02b2b73190670d3418719564c") @@ -75,192 +85,148 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage): "3.7.02", sha256="5024979f06bc8da2fb696252a66297f3e0e67098595a0cc7345312b3b4aa0f54", url="https://github.com/kokkos/kokkos/archive/3.7.02.tar.gz", - ) - version( - "3.7.01", - sha256="0481b24893d1bcc808ec68af1d56ef09b82a1138a1226d6be27c3b3c3da65ceb", - url="https://github.com/kokkos/kokkos/archive/3.7.01.tar.gz", - deprecated=True, - ) - version( - "3.7.00", - sha256="62e3f9f51c798998f6493ed36463f66e49723966286ef70a9dcba329b8443040", - url="https://github.com/kokkos/kokkos/archive/3.7.00.tar.gz", - deprecated=True, - ) - version( - "3.6.01", - sha256="1b80a70c5d641da9fefbbb652e857d7c7a76a0ebad1f477c253853e209deb8db", - url="https://github.com/kokkos/kokkos/archive/3.6.01.tar.gz", - deprecated=True, - ) - version( - "3.6.00", - sha256="53b11fffb53c5d48da5418893ac7bc814ca2fde9c86074bdfeaa967598c918f4", - url="https://github.com/kokkos/kokkos/archive/3.6.00.tar.gz", - deprecated=True, - ) - version( - "3.5.00", - sha256="748f06aed63b1e77e3653cd2f896ef0d2c64cb2e2d896d9e5a57fec3ff0244ff", - url="https://github.com/kokkos/kokkos/archive/3.5.00.tar.gz", - deprecated=True, - ) - version( - "3.4.01", - sha256="146d5e233228e75ef59ca497e8f5872d9b272cb93e8e9cdfe05ad34a23f483d1", - url="https://github.com/kokkos/kokkos/archive/3.4.01.tar.gz", - deprecated=True, - ) - version( - "3.4.00", - sha256="2e4438f9e4767442d8a55e65d000cc9cde92277d415ab4913a96cd3ad901d317", - url="https://github.com/kokkos/kokkos/archive/3.4.00.tar.gz", - deprecated=True, - ) - version( - "3.3.01", - sha256="4919b00bb7b6eb80f6c335a32f98ebe262229d82e72d3bae6dd91aaf3d234c37", - url="https://github.com/kokkos/kokkos/archive/3.3.01.tar.gz", - deprecated=True, - ) - version( - "3.3.00", - sha256="170b9deaa1943185e928f8fcb812cd4593a07ed7d220607467e8f0419e147295", - url="https://github.com/kokkos/kokkos/archive/3.3.00.tar.gz", - deprecated=True, - ) - version( - "3.2.01", - sha256="9e27a3d8f81559845e190d60f277d84d6f558412a3df3301d9545e91373bcaf1", - url="https://github.com/kokkos/kokkos/archive/3.2.01.tar.gz", - deprecated=True, - ) - version( - "3.2.00", - sha256="05e1b4dd1ef383ca56fe577913e1ff31614764e65de6d6f2a163b2bddb60b3e9", - url="https://github.com/kokkos/kokkos/archive/3.2.00.tar.gz", - deprecated=True, - ) - version( - "3.1.01", - sha256="ff5024ebe8570887d00246e2793667e0d796b08c77a8227fe271127d36eec9dd", - url="https://github.com/kokkos/kokkos/archive/3.1.01.tar.gz", - deprecated=True, - ) - version( - "3.1.00", - sha256="b935c9b780e7330bcb80809992caa2b66fd387e3a1c261c955d622dae857d878", - url="https://github.com/kokkos/kokkos/archive/3.1.00.tar.gz", - deprecated=True, - ) - version( - "3.0.00", - sha256="c00613d0194a4fbd0726719bbed8b0404ed06275f310189b3493f5739042a92b", - url="https://github.com/kokkos/kokkos/archive/3.0.00.tar.gz", deprecated=True, ) - depends_on("c", type="build") depends_on("cxx", type="build") # Kokkos requires a C++ compiler + # TODO new major: any new major needs to update this + with when("@5:"): + conflicts("%gcc@:10.3") + conflicts("%llvm@:13") + conflicts("%llvm@:14", when="+cuda ~wrapper") + conflicts("%apple-clang@:7") + conflicts("%oneapi@:2021") + conflicts("%oneapi@:2024", when="+sycl") + depends_on("cuda@12.2:", when="+cuda") + depends_on("hip@6.2:", when="+rocm") + conflicts("%nvhpc@:22.2") + conflicts("%msvc@:19.2") + conflicts("%arm@:20") + + # TODO any new version: depending on the changes in Kokkos' build system, + # there might be special requirements on the cmake version. depends_on("cmake@3.16:", type="build") - conflicts("cmake@3.28", when="@:4.2.01 +cuda") + depends_on("cmake@3.22:", type="build", when="@5:") + depends_on("cmake@3.25.2:", type="build", when="@5: +cuda +cmake_lang") + conflicts("^cmake@3.28", when="@:4.2.01 +cuda") + conflicts("^cuda@13:", when="@:4.7.0") + # device : (default value, when clause, description) devices_variants = { - "cuda": [False, "Whether to build CUDA backend"], - "openmp": [False, "Whether to build OpenMP backend"], - "threads": [False, "Whether to build the C++ threads backend"], - "serial": [True, "Whether to build serial backend"], - "rocm": [False, "Whether to build HIP backend"], - "sycl": [False, "Whether to build the SYCL backend"], - "openmptarget": [False, "Whether to build the OpenMPTarget backend"], + "cuda": [False, None, "Whether to build CUDA backend"], + "openmp": [False, None, "Whether to build OpenMP backend"], + "threads": [False, None, "Whether to build the C++ threads backend"], + "serial": [False, None, "Whether to build serial backend"], + "rocm": [False, None, "Whether to build HIP backend"], + "sycl": [False, None, "Whether to build the SYCL backend"], + "openmptarget": [False, "@:5.0", "Whether to build the OpenMPTarget backend"], } - conflicts("+rocm", when="@:3.0") - conflicts("+sycl", when="@:3.3") - conflicts("+openmptarget", when="@:3.5") - conflicts( - "".join([f"~{d}" for d in devices_variants]), - msg="Kokkos requires at least one active backend", + requires( + "+serial", when="~hpx ~openmp ~threads", msg="Kokkos requires at least one host backend" ) - # https://github.com/spack/spack/issues/29052 - conflicts("@:3.5 +sycl", when="%oneapi@2022:") - tpls_variants = { - "hpx": [False, "Whether to enable the HPX library"], - "hwloc": [False, "Whether to enable the HWLOC library"], - "numactl": [False, "Whether to enable the LIBNUMA library"], - "memkind": [False, "Whether to enable the MEMKIND library"], + "hpx": [False, None, "Whether to enable the HPX library"], + "hwloc": [False, None, "Whether to enable the HWLOC library"], + "numactl": [False, "@:4", "Whether to enable the LIBNUMA library"], + "memkind": [False, "@:4", "Whether to enable the MEMKIND library"], } + # TODO any new version: check if all these options still exist options_variants = { "aggressive_vectorization": [False, None, "Aggressively vectorize loops"], - "compiler_warnings": [False, None, "Print all compiler warnings"], + "atomics_bypass": [ + False, + "@4.6: +serial~threads~cuda~rocm~hpx~openmp~sycl~openmptarget", + "Make atomics non-atomic for non-threaded MPI-only use cases", + ], + "compiler_warnings": [False, "@:4", "Print all compiler warnings"], "complex_align": [True, None, "Align complex numbers"], "cuda_constexpr": [False, "+cuda", "Activate experimental constexpr features"], - "cuda_lambda": [False, "+cuda", "Activate experimental lambda features"], - "cuda_ldg_intrinsic": [False, "+cuda", "Use CUDA LDG intrinsics"], + "cuda_lambda": [False, "@:4 +cuda", "Activate experimental lambda features"], + "cuda_ldg_intrinsic": [False, "@:4 +cuda", "Use CUDA LDG intrinsics"], "cuda_relocatable_device_code": [False, "+cuda", "Enable RDC for CUDA"], "hip_relocatable_device_code": [False, None, "Enable RDC for HIP"], "sycl_relocatable_device_code": [False, "@4.5: +sycl", "Enable RDC for SYCL"], - "cuda_uvm": [False, "+cuda", "Enable unified virtual memory (UVM) for CUDA"], + "cuda_uvm": [False, "@:4 +cuda", "Enable unified virtual memory (UVM) for CUDA"], "debug": [False, None, "Activate extra debug features - may increase compiletimes"], "debug_bounds_check": [False, None, "Use bounds checking - will increase runtime"], - "debug_dualview_modify_check": [False, None, "Debug check on dual views"], - "deprecated_code": [False, None, "Whether to enable deprecated code"], - "examples": [False, None, "Whether to build examples"], - "hpx_async_dispatch": [False, None, "Whether HPX supports asynchronous dispath"], + "debug_dualview_modify_check": [False, "@:4", "Debug check on dual views"], + "deprecated_code": [False, "@:4", "Whether to enable deprecated code"], + "hpx_async_dispatch": [False, "@:4", "Whether HPX supports asynchronous dispath"], "tuning": [False, None, "Create bindings for tuning tools"], "tests": [False, None, "Build for tests"], } + conflicts("~debug_dualview_modify_check", when="@4.7:") # always enable from 4.7.00 + + # archspec target : (cmake_arch_option, condition) spack_micro_arch_map = { - "thunderx2": "THUNDERX2", - "zen": "ZEN", - "zen2": "ZEN2", - "zen3": "ZEN3", - "zen4": "ZEN4", - "steamroller": "KAVERI", - "excavator": "CARIZO", - "power7": "POWER7", - "power8": "POWER8", - "power9": "POWER9", - "power8le": "POWER8", - "power9le": "POWER9", - "sandybridge": "SNB", - "haswell": "HSW", - "mic_knl": "KNL", - "cannonlake": "SKX", - "cascadelake": "SKX", - "westmere": "WSM", - "ivybridge": "SNB", - "broadwell": "BDW", - "skylake": "SKL", - "icelake": "ICL", - "skylake_avx512": "SKX", - "sapphirerapids": "SPR", + "armv8.1a": ("ARMV81", None), + "armv8.4a": ("ARMV84", "@4.7.00:"), + "neoverse_v2": ("ARMV9_GRACE", "@4.7.04:4,5.1:"), + "u74mc": ("RISCV_U74MC", "@4.7.00:"), + "a64fx": ("A64FX", None), + "thunderx2": ("ARMV8_THUNDERX2", None), + "zen": ("ZEN", None), + "zen2": ("ZEN2", None), + "zen3": ("ZEN3", None), + "zen4": ("ZEN4", "@4.6.00:"), + "zen5": ("ZEN5", "@4.7.00:"), + "power7": ("POWER7", "@:4.2.01"), + "power8": ("POWER8", None), + "power9": ("POWER9", None), + "power8le": ("POWER8", None), + "power9le": ("POWER9", None), + "sandybridge": ("SNB", None), + "haswell": ("HSW", None), + "mic_knl": ("KNL", None), + "cannonlake": ("SKX", None), # fallback + "cascadelake": ("SKX", None), # fallback + "westmere": ("WSM", "@:4.2.01"), + "ivybridge": ("SNB", None), # fallback + "broadwell": ("BDW", None), + "skylake": ("SKL", None), + "icelake": ("ICL", None), + "skylake_avx512": ("SKX", None), + "sapphirerapids": ("SPR", None), } + # unmapped Kokkos arches + # ("AMDAVX", None), # Generic AMD chip + # ("ICX", None), # Ice Lake Xeon Server (AVX512) + # ("KNC", None), # Knights Corner Xeon Phi + # ("BGQ", "@:4.2.01"), # IBM Blue Gene/Q + # ("RISCV_SG2042", "@4.3.00:"), # Sophgo SG2042 (64-core RISC-V) + # ("RISCV_RVA22V", "@4.5.00:"), # RVA22V profile (RISC-V vector extension) + # ("ARMV80", None), # ARMv8.0 Compatible CPU + # ("ARMV84_SVE", "@4.7.00:"), # ARMv8.4 with SVE (Scalable Vector Extension) + # ("ARMV8_THUNDERX", None), # Cavium ThunderX + + # cuda_arch : (cmake_arch_option, condition) spack_cuda_arch_map = { - "30": "kepler30", - "32": "kepler32", - "35": "kepler35", - "37": "kepler37", - "50": "maxwell50", - "52": "maxwell52", - "53": "maxwell53", - "60": "pascal60", - "61": "pascal61", - "70": "volta70", - "72": "volta72", - "75": "turing75", - "80": "ampere80", - "86": "ampere86", - "89": "ada89", - "90": "hopper90", - "100": "blackwell100", - "120": "blackwell120", + "30": ("kepler30", "@:4"), + "32": ("kepler32", "@:4"), + "35": ("kepler35", "@:4"), + "37": ("kepler37", "@:4"), + "50": ("maxwell50", None), + "52": ("maxwell52", None), + "53": ("maxwell53", None), + "60": ("pascal60", None), + "61": ("pascal61", None), + "70": ("volta70", None), + "72": ("volta72", None), + "75": ("turing75", None), + "80": ("ampere80", None), + "86": ("ampere86", None), + "87": ("ampere87", "@4.7.00:"), + "89": ("ada89", "@4.0.01:"), + "90": ("hopper90", None), + "100": ("blackwell100", "@4.7.00:"), + "103": ("blackwell103", "@5.1.0:"), + "120": ("blackwell120", "@4.7.00:"), + "121": ("blackwell121", "@5.1.0:"), } cuda_arches = spack_cuda_arch_map.values() conflicts("+cuda", when="cuda_arch=none") @@ -276,21 +242,38 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage): when="+cuda", ) + # Since Kokkos supports only one amdgpu_target at a time, the multi-value property is disabled. + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=("none",) + ROCmPackage.amdgpu_targets, + default="none", + multi=False, + sticky=True, + when="+rocm", + ) + + # amdgpu_target : (cmake_arch_option, condition) amdgpu_arch_map = { - "gfx900": "vega900", - "gfx906": "vega906", - "gfx908": "vega908", - "gfx90a": "vega90A", - "gfx940": "amd_gfx940", - "gfx942": "amd_gfx942", - "gfx1030": "navi1030", - "gfx1100": "navi1100", + "gfx900": ("vega900", None), + "gfx906": ("vega906", None), + "gfx908": ("vega908", None), + "gfx90a": ("vega90A", None), + "gfx940": ("amd_gfx940", "@4.3.00:"), + "gfx942": ("amd_gfx942", "@4.2.00:"), + "gfx950": ("amd_gfx950", "@5.1.0:"), + "gfx1030": ("navi1030", None), + "gfx1100": ("navi1100", "@4.1.00:"), + "gfx1103": ("amd_gfx1103", "@4.5.00:"), + "gfx1201": ("amd_gfx1201", "@5.0.0:"), } - amdgpu_apu_arch_map = {"gfx942": "amd_gfx942_apu"} + amdgpu_apu_arch_map = {"gfx942": ("amd_gfx942_apu", "@4.5.00:")} amd_support_conflict_msg = ( "{0} is not supported; " "Kokkos supports the following AMD GPU targets: " + ", ".join(amdgpu_arch_map.keys()) ) + # FIXME we should revisit this. More archs have unified memory via HMM, + # only the APU has unified physical memory amd_apu_support_conflict_msg = ( "{0} is not supported; " "Kokkos supports the following AMD GPU targets with unified memory: " @@ -308,25 +291,28 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage): msg=amd_apu_support_conflict_msg.format(arch), ) - intel_gpu_arches = ( - "intel_gen", - "intel_gen9", - "intel_gen11", - "intel_gen12lp", - "intel_dg1", - "intel_xehp", - "intel_pvc", - ) + # cmake_arch_option : condition + intel_gpu_arches = { + "intel_gen": None, + "intel_gen9": None, + "intel_gen11": None, + "intel_gen12lp": None, + "intel_dg1": None, + "intel_dg2": "@4.7.00:", + "intel_xehp": None, + "intel_pvc": None, + } variant( "intel_gpu_arch", default="none", - values=("none",) + intel_gpu_arches, + values=("none",) + tuple(intel_gpu_arches.keys()), description="Intel GPU architecture", ) + # FIXME this should move to the apu part variant("apu", default=False, description="Enable APU support", when="@4.5: +rocm") - for dev, (dflt, desc) in devices_variants.items(): - variant(dev, default=dflt, description=desc) + for dev, (dflt, when, desc) in devices_variants.items(): + variant(dev, default=dflt, description=desc, when=when) conflicts("+cuda", when="+rocm", msg="CUDA and ROCm are not compatible in Kokkos.") depends_on("intel-oneapi-dpl", when="+sycl") depends_on("rocthrust", when="@4.3: +rocm") @@ -334,29 +320,33 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage): for opt, (dflt, when, desc) in options_variants.items(): variant(opt, default=dflt, description=desc, when=when) - for tpl, (dflt, desc) in tpls_variants.items(): - variant(tpl, default=dflt, description=desc) + for tpl, (dflt, when, desc) in tpls_variants.items(): + variant(tpl, default=dflt, description=desc, when=when) depends_on(tpl, when="+%s" % tpl) + # FIXME we should reorder variants and conflicts variant("wrapper", default=False, description="Use nvcc-wrapper for CUDA build") - variant( - "cmake_lang", - default=False, - description="Use CMake language support for CUDA/HIP", - when="@3.6:", - ) + variant("cmake_lang", default=False, description="Use CMake language support for CUDA/HIP") depends_on("kokkos-nvcc-wrapper", when="+wrapper") depends_on("kokkos-nvcc-wrapper@develop", when="@develop+wrapper") - depends_on("kokkos-nvcc-wrapper@master", when="@master+wrapper") conflicts("+wrapper", when="~cuda") conflicts("+wrapper", when="+cmake_lang") - cxxstds = ["11", "14", "17", "20"] - variant("cxxstd", default="17", values=cxxstds, multi=False, description="C++ standard") - variant("pic", default=False, description="Build position independent code") + # TODO new major: update c++ std + with default_args(multi=False, description="C++ standard"): + variant("cxxstd", default="17", values=("14", "17", "20"), when="@3") + variant("cxxstd", default="17", values=("17", "20", "23"), when="@4") + variant("cxxstd", default="20", values=("20", "23"), when="@5:") + + # FIXME regroup variants and conflicts + variant( + "deprecated_code", + default=True, + when="@5:", + description="Whether to enable deprecated code", + ) - conflicts("cxxstd=11", when="@3.7:") - conflicts("cxxstd=14", when="@4.0:") + variant("pic", default=False, description="Build position independent code") conflicts("+cuda", when="cxxstd=17 ^cuda@:10") conflicts("+cuda", when="cxxstd=20 ^cuda@:11") @@ -365,27 +355,21 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage): # with some MPI such as cray-mpich variant("alloc_async", default=False, description="Use CudaMallocAsync", when="@4.2: +cuda") + # TODO deprecation of v3: this can be removed # SYCL and OpenMPTarget require C++17 or higher - for cxxstdver in cxxstds[: cxxstds.index("17")]: - conflicts( - "+sycl", when="cxxstd={0}".format(cxxstdver), msg="SYCL requires C++17 or higher" - ) - conflicts( - "+openmptarget", - when="cxxstd={0}".format(cxxstdver), - msg="OpenMPTarget requires C++17 or higher", - ) + conflicts("+sycl", when="cxxstd=14", msg="SYCL requires C++17 or higher") + conflicts("+openmptarget", when="cxxstd=14", msg="OpenMPTarget requires C++17 or higher") + # TODO new major: add new standard version here # HPX should use the same C++ standard - for cxxstd in cxxstds: - depends_on("hpx cxxstd={0}".format(cxxstd), when="+hpx cxxstd={0}".format(cxxstd)) + for cxxstd in ["14", "17", "20", "23"]: + depends_on(f"hpx cxxstd={cxxstd}", when=f"+hpx cxxstd={cxxstd}") # HPX version constraints - depends_on("hpx@:1.6", when="@:3.5 +hpx") - depends_on("hpx@1.7:", when="@3.6: +hpx") + depends_on("hpx@1.7:", when="+hpx") + # TODO deprecation of some versions in 4: remove # Patches - patch("hpx_profiling_fences.patch", when="@3.5.00 +hpx") patch("sycl_bhalft_test.patch", when="@4.2.00 +sycl") # adds amd_gfx940 support to Kokkos 4.2.00 (upstreamed in https://github.com/kokkos/kokkos/pull/6671) patch( @@ -393,6 +377,13 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage): sha256="145619e87dbf26b66ea23e76906576e2a854a3b09f2a2dd70363e61419fa6a6e", when="@4.2.00", ) + # Remove unnecessary C and C++ languages dependency in scripts/spack_test/CMakeLists.txt + # (upstreamed in https://github.com/kokkos/kokkos/pull/8357) + patch( + "https://github.com/kokkos/kokkos/commit/05d4901538251fff7ae6e58c84db670ad326b5c8.patch?full_index=1", + sha256="89eb693ad4913c4fd06b25d786d56bfa631d7d612df80c0f5331852e358e0608", + when="@:4.4", + ) variant("shared", default=True, description="Build shared libraries") for backend_name in ("cuda", "hip", "sycl"): @@ -413,7 +404,7 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage): sanity_check_is_dir = ["bin", "include"] @classmethod - def get_microarch(cls, target): + def get_microarch(cls, target, kokkos_spec=None): """Get the Kokkos microarch name for a Spack target (spec.target).""" smam = cls.spack_micro_arch_map @@ -426,7 +417,10 @@ def get_microarch(cls, target): # No known microarch optimizatinos return None - return smam[target.name] + microarch, cond = smam[target.name] + if cond and kokkos_spec and not kokkos_spec.satisfies(cond): + return None + return microarch def append_args(self, cmake_prefix, cmake_options, spack_options): variant_to_cmake_option = {"rocm": "hip"} @@ -463,38 +457,58 @@ def cmake_args(self): from_variant("Kokkos_ENABLE_COMPILE_AS_CMAKE_LANGUAGE", "cmake_lang"), ] + # TODO new major: update this + if spec.satisfies("@5:"): + if spec.version == Version("develop"): + highest = max(v for v in self.versions if not v.isdevelop()) + major_version = int(str(highest.up_to(1))) + else: + major_version = int(str(spec.version.up_to(1))) + options.append( + from_variant(f"Kokkos_ENABLE_DEPRECATED_CODE_{major_version}", "deprecated_code") + ) + spack_microarches = [] if spec.satisfies("+cuda"): - if isinstance(spec.variants["cuda_arch"].value, str): - cuda_arch = spec.variants["cuda_arch"].value - else: - if len(spec.variants["cuda_arch"].value) > 1: - msg = "Kokkos supports only one cuda_arch at a time." - raise InstallError(msg) - cuda_arch = spec.variants["cuda_arch"].value[0] + cuda_arch = spec.variants["cuda_arch"].value if cuda_arch != "none": - kokkos_arch_name = self.spack_cuda_arch_map[cuda_arch] + kokkos_arch_name, cond = self.spack_cuda_arch_map[cuda_arch] + + if cond and not self.spec.satisfies(cond): + raise SpackError(f"Unsupported CUDA arch: {cuda_arch}") + spack_microarches.append(kokkos_arch_name) - kokkos_microarch_name = self.get_microarch(spec.target) + kokkos_microarch_name = self.get_microarch(spec.target, spec) if kokkos_microarch_name: spack_microarches.append(kokkos_microarch_name) if spec.satisfies("+rocm"): - for amdgpu_target in spec.variants["amdgpu_target"].value: - if amdgpu_target != "none": - if amdgpu_target in self.amdgpu_arch_map: - if spec.satisfies("+apu") and amdgpu_target in self.amdgpu_apu_arch_map: - spack_microarches.append(self.amdgpu_apu_arch_map[amdgpu_target]) - else: - spack_microarches.append(self.amdgpu_arch_map[amdgpu_target]) + amdgpu_target = spec.variants["amdgpu_target"].value + if amdgpu_target != "none": + if amdgpu_target in self.amdgpu_arch_map: + if spec.satisfies("+apu") and amdgpu_target in self.amdgpu_apu_arch_map: + kokkos_arch_name, cond = self.amdgpu_apu_arch_map[amdgpu_target] else: - # Note that conflict declarations should prevent - # choosing an unsupported AMD GPU target - raise SpackError("Unsupported target: {0}".format(amdgpu_target)) + kokkos_arch_name, cond = self.amdgpu_arch_map[amdgpu_target] + + if cond and not self.spec.satisfies(cond): + raise SpackError(f"Unsupported AMD GPU target: {amdgpu_target}") + + spack_microarches.append(kokkos_arch_name) + else: + # Note that conflict declarations should prevent + # choosing an unsupported AMD GPU target + raise SpackError(f"Unsupported AMD GPU target: {amdgpu_target}") if self.spec.variants["intel_gpu_arch"].value != "none": - spack_microarches.append(self.spec.variants["intel_gpu_arch"].value) + intel_gpu_arch = self.spec.variants["intel_gpu_arch"].value + cond = self.intel_gpu_arches[intel_gpu_arch] + + if cond and not self.spec.satisfies(cond): + raise SpackError(f"Unsupported Intel GPU target: {intel_gpu_arch}") + + spack_microarches.append(intel_gpu_arch) for arch in spack_microarches: options.append(self.define("Kokkos_ARCH_" + arch.upper(), True)) @@ -504,28 +518,52 @@ def cmake_args(self): self.append_args("ENABLE", self.tpls_variants.keys(), options) for tpl in self.tpls_variants: - if spec.variants[tpl].value: + if spec.satisfies(f"+{tpl}"): options.append(self.define(tpl + "_DIR", spec[tpl].prefix)) if self.spec.satisfies("+wrapper"): options.append(self.define("CMAKE_CXX_COMPILER", self.kokkos_cxx)) elif "+rocm" in self.spec: if "+cmake_lang" in self.spec: + if self.spec.satisfies("%cxx=clang") or self.spec.satisfies("%cxx=rocmcc"): + options.append(self.define("CMAKE_HIP_COMPILER", self.compiler.cxx)) + else: + options.append( + self.define( + "CMAKE_HIP_COMPILER", + join_path(self.spec["llvm-amdgpu"].prefix.bin, "amdclang++"), + ) + ) + options.append(from_variant("CMAKE_HIP_STANDARD", "cxxstd")) options.append( self.define( - "CMAKE_HIP_COMPILER", - join_path(self.spec["llvm-amdgpu"].prefix.bin, "amdclang++"), + "CMAKE_HIP_ARCHITECTURES", self.spec.variants["amdgpu_target"].value ) ) - options.append(from_variant("CMAKE_HIP_STANDARD", "cxxstd")) - else: + options.append(self.define("CMAKE_HIP_EXTENSIONS", False)) + elif not (self.spec.satisfies("%cxx=clang") or self.spec.satisfies("%cxx=rocmcc")): options.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc)) options.append(self.define("Kokkos_ENABLE_ROCTHRUST", True)) + + # TODO deprecation of v4: remove partially + # Using Kokkos_ENABLE_IMPL_HIP_MALLOC_ASYNC is problematic with ROCm 7 + # Newer Kokkos versions disable this by default + if self.spec.satisfies("@4.5:5.0.0 %hip@7:"): + options.append(self.define("Kokkos_ENABLE_IMPL_HIP_MALLOC_ASYNC", False)) elif "+cuda" in self.spec and "+cmake_lang" in self.spec: + if self.spec.satisfies("%cxx=clang"): + options.append(self.define("CMAKE_CUDA_COMPILER", self.compiler.cxx)) + else: + options.append( + self.define( + "CMAKE_CUDA_COMPILER", join_path(self.spec["cuda"].prefix.bin, "nvcc") + ) + ) options.append( - self.define("CMAKE_CUDA_COMPILER", join_path(self.spec["cuda"].prefix.bin, "nvcc")) + self.define("CMAKE_CUDA_ARCHITECTURES", self.spec.variants["cuda_arch"].value) ) options.append(from_variant("CMAKE_CUDA_STANDARD", "cxxstd")) + options.append(self.define("CMAKE_CUDA_EXTENSIONS", False)) if self.spec.satisfies("%oneapi") or self.spec.satisfies("%intel"): options.append(self.define("CMAKE_CXX_FLAGS", "-fp-model=precise")) @@ -534,6 +572,10 @@ def cmake_args(self): self.define_from_variant("Kokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC", "alloc_async") ) + # TODO deprecation v4: remove + if self.version == Version("4.7.00"): + options.append(self.define("Kokkos_ENABLE_IMPL_VIEW_LEGACY", True)) + # Remove duplicate options return dedupe(options) @@ -549,31 +591,11 @@ def setup_build_tests(self): cmake_out_path = join_path(self.test_script_relative_path, "out") cmake_args = [ cmake_source_path, - "-DSPACK_PACKAGE_SOURCE_DIR:PATH={0}".format(self.stage.source_path), - "-DSPACK_PACKAGE_TEST_ROOT_DIR:PATH={0}".format( - join_path(install_test_root(self), cmake_out_path) + self.define("SPACK_PACKAGE_SOURCE_DIR", self.stage.source_path), + self.define( + "SPACK_PACKAGE_TEST_ROOT_DIR", join_path(install_test_root(self), cmake_out_path) ), - "-DSPACK_PACKAGE_INSTALL_DIR:PATH={0}".format(self.prefix), + self.define("SPACK_PACKAGE_INSTALL_DIR", self.prefix), ] 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 = ["-DEXECUTABLE_OUTPUT_PATH=" + cmake_path] - if self.spec.satisfies("+rocm"): - prefix_paths = ";".join(get_cmake_prefix_path(self)) - cmake_args.append("-DCMAKE_PREFIX_PATH={0}".format(prefix_paths)) - - cmake(cmake_path, *cmake_args) - make = which("make") - make() - make(cmake_path, "test") diff --git a/repos/spack_repo/builtin/packages/kokkos_fft/package.py b/repos/spack_repo/builtin/packages/kokkos_fft/package.py index 5bfbd2c61a8..94bc44d2569 100644 --- a/repos/spack_repo/builtin/packages/kokkos_fft/package.py +++ b/repos/spack_repo/builtin/packages/kokkos_fft/package.py @@ -8,7 +8,7 @@ class KokkosFft(CMakePackage): - """FFT interfaces for Kokkos C++ Performance Portability Programming EcoSystem""" + """Kokkos-FFT: FFT interfaces for Kokkos C++ Performance Portability Programming EcoSystem""" homepage = "https://github.com/kokkos/kokkos-fft" url = "https://github.com/kokkos/kokkos-fft/archive/refs/tags/v0.3.0.tar.gz" @@ -17,6 +17,9 @@ class KokkosFft(CMakePackage): license("Apache-2.0 WITH LLVM-exception OR MIT", checked_by="cedricchevalier19") + version("1.1.0", sha256="71a87f562ad5163a6e6da2979974b3bec1f6482d0a651a17ef882b4bca347782") + version("1.0.0", sha256="626c8eec4bd0675a13ccbbffccde0984d8b9ded18809ca8223370b51a0bbfc82") + version("0.4.0", sha256="c51d37b8c06d74bdb2af0fa4e1eae40104c23ae0dae17c795bce55dbda6ab0d6") version("0.3.0", sha256="a13c423775afec5f9f79fa9a23dd6001d3d63bae9f4786b1e0cd3ed65b3993a3") variant( @@ -36,9 +39,16 @@ class KokkosFft(CMakePackage): variant("tests", default=False, description="Enable tests") depends_on("cxx", type="build") + depends_on("cmake@3.22:3", type="build") - depends_on("kokkos@4.4:4 +complex_align") - # kokkos-fft currently only supports compilation with the Kokkos nvcc wrapper + depends_on("kokkos +complex_align") + depends_on("kokkos@4.7:", when="@1.1:") + depends_on("kokkos@4.6:", when="@1.0:") + depends_on("kokkos@4.5:", when="@0.4:") + depends_on("kokkos@4.4:") + depends_on("kokkos@:5") + depends_on("kokkos@:4", when="@:0.4") + # Kokkos-FFT currently only supports compilation with the Kokkos nvcc wrapper requires("^kokkos +serial", when="host_backend=fftw-serial") requires("^kokkos +openmp", when="host_backend=fftw-openmp") requires("^kokkos +cuda +wrapper", when="device_backend=cufft") @@ -69,8 +79,10 @@ def cmake_args(self): self.define("KokkosFFT_ENABLE_ONEMKL", self.spec.satisfies("device_backend=onemkl")), ] - if self.spec.satisfies("^kokkos+rocm"): - args.append(self.define("CMAKE_CXX_COMPILER", self["hip"].hipcc)) + if self.spec.satisfies("^kokkos+rocm") and not ( + self.spec.satisfies("^kokkos %cxx=clang") or self.spec.satisfies("^kokkos %cxx=rocmcc") + ): + args.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc)) else: args.append(self.define("CMAKE_CXX_COMPILER", self["kokkos"].kokkos_cxx)) diff --git a/repos/spack_repo/builtin/packages/kokkos_kernels/package.py b/repos/spack_repo/builtin/packages/kokkos_kernels/package.py index 41e6ebf147d..a12f4629f42 100644 --- a/repos/spack_repo/builtin/packages/kokkos_kernels/package.py +++ b/repos/spack_repo/builtin/packages/kokkos_kernels/package.py @@ -24,7 +24,18 @@ class KokkosKernels(CMakePackage, CudaPackage): license("Apache-2.0 WITH LLVM-exception") version("develop", branch="develop") - version("master", branch="master") + + version("5.1.1", sha256="4415c2a6e14e2bba9aa978917d2ffbcbe32760d3aba3a33bf7a267d50e7e20c9") + version("5.1.0", sha256="c003cd53126dee651f41a3b003e443950c3030246785ae968055ce015c89e0d5") + version("5.0.2", sha256="7c7af2c3659ecc620cc7b7016876330d9f288e8c6fd7b70b70907687df823b43") + version("5.0.1", sha256="c9d0b507ab754b347b71b530683e9dea8dbf4d2e3cdadb863dcb494b07bbf0b2") + version("5.0.0", sha256="e1d7e7040b86f141004126c3fa5711f28697803d921c3558d82192a32156b1b2") + version("4.7.04", sha256="dc357de6f57c42ad6dd45228d38da65dc835788f66309aaed6feeb65cae62210") + version("4.7.03", sha256="902701e3481b2c535925a02e0918baed6f82186a25297e45314712b0905d9780") + version("4.7.02", sha256="2d3b3e10ac112e382b88c50d66e4222ce543fca5d42be6d8376a684b82b8b238") + version("4.7.01", sha256="f3e1452db0e182c8e32c61632465e3a829159b9ae0645d9e4cd97b4fa09c36e1") + version("4.7.00", sha256="5c7c8c8f91817ab22dbc50ea72f02292bbd6c5b412d6f1588b27574600c478ef") + version("4.6.02", sha256="a953f445660ed5aaab10e18fc4a90c4c178291e9d9d97d20abd4e6027f1193ec") version("4.6.01", sha256="95b9357f37ab3b9c3913c00741acb2501831c28ea8664de67818ae79c69c5908") version("4.6.00", sha256="f2b18f3df78c3c8dd970fe8ead54e05c8c09c8ac6d1893655c2a1769d33aa364") version("4.5.01", sha256="c111a6561f23a85af9850d1df1e9015f37a586f1da0be4b6fb1e98001d75e074") @@ -71,84 +82,6 @@ class KokkosKernels(CMakePackage, CudaPackage): sha256="43b1d4f726bccd8d7d632ae8b81c8edc7d7afa347fbab0654f7ca0c664edf05c", url="https://github.com/kokkos/kokkos-kernels/archive/3.7.02.tar.gz", ) - version( - "3.7.01", - sha256="b2060f5894bdaf7f7d4793b90444fac260460cfa80595afcbcb955518864b446", - url="https://github.com/kokkos/kokkos-kernels/archive/3.7.01.tar.gz", - deprecated=True, - ) - version( - "3.7.00", - sha256="51bc6db3995392065656848e2b152cfd1c3a95a951ab18a3934278113d59f32b", - url="https://github.com/kokkos/kokkos-kernels/archive/3.7.00.tar.gz", - deprecated=True, - ) - version( - "3.6.01", - sha256="f000b156c8c0b80e85d38587907c11d9479aaf362408b812effeda5e22b24d0d", - url="https://github.com/kokkos/kokkos-kernels/archive/3.6.01.tar.gz", - deprecated=True, - ) - version( - "3.6.00", - sha256="2753643fd643b9eed9f7d370e0ff5fa957211d08a91aa75398e31cbc9e5eb0a5", - url="https://github.com/kokkos/kokkos-kernels/archive/3.6.00.tar.gz", - deprecated=True, - ) - version( - "3.5.00", - sha256="a03a41a047d95f9f07cd1e1d30692afdb75b5c705ef524e19c1d02fe60ccf8d1", - url="https://github.com/kokkos/kokkos-kernels/archive/3.5.00.tar.gz", - deprecated=True, - ) - version( - "3.4.01", - sha256="f504aa4afbffb58fa7c4430d0fdb8fd5690a268823fa15eb0b7d58dab9d351e6", - url="https://github.com/kokkos/kokkos-kernels/archive/3.4.01.tar.gz", - deprecated=True, - ) - version( - "3.4.00", - sha256="07ba11869e686cb0d47272d1ef494ccfbcdef3f93ff1c8b64ab9e136a53a227a", - url="https://github.com/kokkos/kokkos-kernels/archive/3.4.00.tar.gz", - deprecated=True, - ) - version( - "3.3.01", - sha256="0f21fe6b5a8b6ae7738290e293aa990719aefe88b32f84617436bfd6074a8f77", - url="https://github.com/kokkos/kokkos-kernels/archive/3.3.01.tar.gz", - deprecated=True, - ) - version( - "3.3.00", - sha256="8d7f78815301afb90ddba7914dce5b718cea792ac0c7350d2f8d00bd2ef1cece", - url="https://github.com/kokkos/kokkos-kernels/archive/3.3.00.tar.gz", - deprecated=True, - ) - version( - "3.2.01", - sha256="c486e5cac19e354a517498c362838619435734d64b44f44ce909b0531c21d95c", - url="https://github.com/kokkos/kokkos-kernels/archive/3.2.01.tar.gz", - deprecated=True, - ) - version( - "3.2.00", - sha256="8ac20ee28ae7813ce1bda461918800ad57fdbac2af86ef5d1ba74e83e10956de", - url="https://github.com/kokkos/kokkos-kernels/archive/3.2.00.tar.gz", - deprecated=True, - ) - version( - "3.1.00", - sha256="27fea241ae92f41bd5b070b1a590ba3a56a06aca750207a98bea2f64a4a40c89", - url="https://github.com/kokkos/kokkos-kernels/archive/3.1.00.tar.gz", - deprecated=True, - ) - version( - "3.0.00", - sha256="e4b832aed3f8e785de24298f312af71217a26067aea2de51531e8c1e597ef0e6", - url="https://github.com/kokkos/kokkos-kernels/archive/3.0.00.tar.gz", - deprecated=True, - ) variant("shared", default=True, description="Build shared libraries") variant( @@ -209,8 +142,17 @@ class KokkosKernels(CMakePackage, CudaPackage): depends_on("c", type="build", when=f"+{tpl}") depends_on("fortran", type="build", when=f"+{tpl}") depends_on("kokkos") - depends_on("kokkos@master", when="@master") depends_on("kokkos@develop", when="@develop") + depends_on("kokkos@5.1.1", when="@5.1.1") + depends_on("kokkos@5.1.0", when="@5.1.0") + depends_on("kokkos@5.0.2", when="@5.0.2") + depends_on("kokkos@5.0.1", when="@5.0.1") + depends_on("kokkos@5.0.0", when="@5.0.0") + depends_on("kokkos@4.7.03", when="@4.7.03") + depends_on("kokkos@4.7.02", when="@4.7.02") + depends_on("kokkos@4.7.01", when="@4.7.01") + depends_on("kokkos@4.7.00", when="@4.7.00") + depends_on("kokkos@4.6.02", when="@4.6.02") depends_on("kokkos@4.6.01", when="@4.6.01") depends_on("kokkos@4.6.00", when="@4.6.00") depends_on("kokkos@4.5.01", when="@4.5.01") @@ -225,19 +167,7 @@ class KokkosKernels(CMakePackage, CudaPackage): depends_on("kokkos@4.0.01", when="@4.0.01") depends_on("kokkos@4.0.00", when="@4.0.00") depends_on("kokkos@3.7.02", when="@3.7.02") - depends_on("kokkos@3.7.01", when="@3.7.01") - depends_on("kokkos@3.7.00", when="@3.7.00") - depends_on("kokkos@3.6.01", when="@3.6.01") - depends_on("kokkos@3.6.00", when="@3.6.00") - depends_on("kokkos@3.5.00", when="@3.5.00") - depends_on("kokkos@3.4.01", when="@3.4.01") - depends_on("kokkos@3.4.00", when="@3.4.00") - depends_on("kokkos@3.3.01", when="@3.3.01") - depends_on("kokkos@3.3.00", when="@3.3.00") - depends_on("kokkos@3.2.01", when="@3.2.01") - depends_on("kokkos@3.2.00", when="@3.2.00") - depends_on("kokkos@3.1.00", when="@3.1.00") - depends_on("kokkos@3.0.00", when="@3.0.00") + depends_on("kokkos+pic", when="+shared") depends_on("kokkos+cuda", when="+execspace_cuda") depends_on("kokkos+openmp", when="+execspace_openmp") depends_on("kokkos+threads", when="+execspace_threads") @@ -248,7 +178,7 @@ class KokkosKernels(CMakePackage, CudaPackage): depends_on("kokkos+cuda", when="+cuda") depends_on("kokkos+openmp", when="+openmp") depends_on("kokkos+threads", when="+threads") - depends_on("kokkos+cuda_lambda", when="@4.0.00:+cuda") + depends_on("kokkos+cuda_lambda", when="@4+cuda") depends_on("cmake@3.16:", type="build") tpls = { @@ -272,6 +202,9 @@ class KokkosKernels(CMakePackage, CudaPackage): variant(tpl, default=deflt_bool, when=f"{condition}", description=descr) depends_on(spackname, when=f"+{tpl}") + # lapack TPL depends on blas TPL + conflicts("+lapack", when="~blas") + patch("pr_2296_430.patch", when="@4.3.00:4.4.00") patch("pr_2296_400.patch", when="@4.0.00:4.2.01") @@ -295,12 +228,15 @@ def cmake_args(self): ), self.define_from_variant("BUILD_SHARED_LIBS", "shared"), ] - - if spec.satisfies("+diy"): - options.append(self.define("Spack_WORKAROUND", True)) + if spec.satisfies("^kokkos+pic"): + options.append(self.define("CMAKE_POSITION_INDEPENDENT_CODE", True)) + if spec.satisfies("^kokkos+rocm+hip_relocatable_device_code"): + options.append(self.define("HIP_RELOCATABLE_DEVICE_CODE", True)) options.append(self.define("Kokkos_ROOT", spec["kokkos"].prefix)) - if spec.satisfies("^kokkos+rocm"): + if spec.satisfies("^kokkos+rocm") and not ( + spec.satisfies("^kokkos %cxx=clang") or spec.satisfies("^kokkos %cxx=rocmcc") + ): options.append(self.define("CMAKE_CXX_COMPILER", spec["hip"].hipcc)) else: options.append(self.define("CMAKE_CXX_COMPILER", self["kokkos"].kokkos_cxx)) diff --git a/repos/spack_repo/builtin/packages/kokkos_kernels_legacy/makefile.patch b/repos/spack_repo/builtin/packages/kokkos_kernels_legacy/makefile.patch deleted file mode 100644 index 639bfd4d581..00000000000 --- a/repos/spack_repo/builtin/packages/kokkos_kernels_legacy/makefile.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- ./src/Makefile 2018-11-05 13:28:12.000000000 -0700 -+++ ./src/Makefile 2018-11-08 16:01:05.000000000 -0700 -@@ -1,37 +1,24 @@ -+include $(KOKKOS_PATH)/Makefile.kokkos - #======================================================================= - #=================== Settings ========================================== - #======================================================================= - --ifndef KOKKOSKERNELS_PATH -- MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST))) -- KOKKOSKERNELS_PATH = $(subst Makefile.minimal,,$(MAKEFILE_PATH)).. --endif -- --KOKKOS_PATH = ${KOKKOSKERNELS_PATH}/../kokkos -- -- --KOKKOS_DEVICES=OpenMP -- --KOKKOSKERNELS_SCALARS="'double,complex'" -+KOKKOSKERNELS_SCALARS="'double'" - KOKKOSKERNELS_OPTIONS=eti-only - --ifndef PREFIX -- PREFIX = ${CURDIR}/install --endif --KOKKOSKERNELS_INSTALL_PATH = ${PREFIX} - - default: build - - CXX = g++ - --CXXFLAGS = -O3 -g -+CXXFLAGS = -O3 - LINK = ${CXX} --LINKFLAGS = -+LINKFLAGS = $(KOKKOS_LINK_FLAGS) - - DEPFLAGS = -M - - OBJ = --LIB = -lpthread -+LIB = $(KOKKOS_LIBS) - - - #======================================================================= -@@ -91,5 +78,4 @@ - - build: kokkoskernels-build-lib - --install: kokkoskernels-install -- -+install: kokkoskernels-install -\ No newline at end of file diff --git a/repos/spack_repo/builtin/packages/kokkos_kernels_legacy/package.py b/repos/spack_repo/builtin/packages/kokkos_kernels_legacy/package.py deleted file mode 100644 index 4ea8c75b263..00000000000 --- a/repos/spack_repo/builtin/packages/kokkos_kernels_legacy/package.py +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.makefile import MakefilePackage - -from spack.package import * - - -class KokkosKernelsLegacy(MakefilePackage): - """Kokkos C++ Performance Portability Programming EcoSystem: Math Kernels - - Provides BLAS, Sparse BLAS and Graph Kernels.""" - - homepage = "https://github.com/kokkos/kokkos-kernels" - url = "https://github.com/kokkos/kokkos-kernels/archive/2.7.00.tar.gz" - - version( - "2.7.00", - sha256="adf4af44eadbdfbeb9ec69dd5fae4e2852bd1fbe4a69213efd199e49f4098254", - deprecated=True, - ) - version( - "2.6.00", - sha256="14ebf806f66b9ca73949a478b8d959be7fa1165a640935760a724d7cc0a66335", - deprecated=True, - ) - version( - "2.5.00", - sha256="2c2289da3a41dafd97726e90507debafbb9f5e49ca5b0f5c8d1e044a5796f000", - deprecated=True, - ) - - depends_on("cxx", type="build") # generated - - # make sure kokkos kernels version matches kokkos - depends_on("kokkos-legacy@2.5.00", when="@2.5.00") - depends_on("kokkos-legacy@2.6.00", when="@2.6.00") - depends_on("kokkos-legacy@2.7.00", when="@2.7.00") - - patch("makefile.patch") - - def edit(self, spec, prefix): - makefile = FileFilter("src/Makefile") - makefile.filter("CXX = .*", "CXX = " + env["CXX"]) - - def build(self, spec, prefix): - with working_dir("build", create=True): - makefile_path = "%s%s" % (self.stage.source_path, "/src/Makefile") - copy(makefile_path, "Makefile") - make_args = [ - "KOKKOSKERNELS_INSTALL_PATH=%s" % prefix, - "KOKKOSKERNELS_PATH=%s" % self.stage.source_path, - "KOKKOS_PATH=%s" % spec["kokkos"].prefix, - ] - - make("build", *make_args) - - def install(self, spec, prefix): - with working_dir("build", create=False): - make_args = [ - "KOKKOSKERNELS_INSTALL_PATH=%s" % prefix, - "KOKKOSKERNELS_PATH=%s" % self.stage.source_path, - "KOKKOS_PATH=%s" % spec["kokkos"].prefix, - ] - make("install", *make_args) diff --git a/repos/spack_repo/builtin/packages/kokkos_legacy/package.py b/repos/spack_repo/builtin/packages/kokkos_legacy/package.py deleted file mode 100644 index 5a2eab5d231..00000000000 --- a/repos/spack_repo/builtin/packages/kokkos_legacy/package.py +++ /dev/null @@ -1,318 +0,0 @@ -# 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 KokkosLegacy(Package): - """Kokkos implements a programming model in C++ for writing performance - portable applications targeting all major HPC platforms.""" - - homepage = "https://github.com/kokkos/kokkos" - url = "https://github.com/kokkos/kokkos/archive/2.03.00.tar.gz" - git = "https://github.com/kokkos/kokkos.git" - - # This package has been archived. All new versions of Kokkos should go into - # the kokkos package itself. - version( - "2.9.00", - sha256="e0621197791ed3a381b4f02c78fa529f3cff3abb74d52157b4add17e8aa04bc4", - deprecated=True, - ) - version( - "2.8.00", - sha256="1c72661f2d770517bff98837001b42b9c677d1df29f7493a1d7c008549aff630", - deprecated=True, - ) - version( - "2.7.24", - sha256="a308a80ea1488f4c18884b828ce7ae9f5210b9a6b2f61b208d875084d8da8cb0", - deprecated=True, - ) - version( - "2.7.00", - sha256="01595996e612ef7410aa42fa265a23101cfe1b6993fa9810ca844db5c89ad765", - deprecated=True, - ) - version( - "2.6.00", - sha256="ab3c6b49cf0cfa2173eaf0c50acd2827fdc0ce260e9b46d5cb8be35261092486", - deprecated=True, - ) - version( - "2.5.00", - sha256="ea232594bf746abb99ae2aafaeef5d07adc089968010a62a88aaa892106d9476", - deprecated=True, - ) - version( - "2.04.11", - sha256="f2680aee0169f6cbbec38410f9c80bf8a160435f6a07769c1e9112da8b9349a0", - deprecated=True, - ) - version( - "2.04.04", - sha256="5bac8ddc2fac9bc6e01dd40f92ca6cbbb346a25deca5be2fec71acf712d0d0c7", - deprecated=True, - ) - version( - "2.04.00", - sha256="b04658d368986df207662a7a37c1ad974c321447bc2c2b5b696d7e9ee4481f34", - deprecated=True, - ) - version( - "2.03.13", - sha256="002748bdd0319d5ab82606cf92dc210fc1c05d0607a2e1d5538f60512b029056", - deprecated=True, - ) - version( - "2.03.05", - sha256="b18ddaa1496130ff3f675ea9ddbc6df9cdf378d53edf96df89e70ff189e10e1d", - deprecated=True, - ) - version( - "2.03.00", - sha256="722bea558d8986efee765ac912febb3c1ce289a8e9bdfef77cd0145df0ea8a3d", - deprecated=True, - ) - version( - "2.02.15", - sha256="6b4a7f189f0341f378f950f3c798f520d2e473b13435b137ff3b666e799a076d", - deprecated=True, - ) - version( - "2.02.07", - sha256="7b4ac81021d6868f4eb8e2a1cb92ba76bad9c3f197403b8b1eac0f11c983247c", - deprecated=True, - ) - - variant("debug", default=False, description="Build debug version of Kokkos") - - variant("serial", default=True, description="enable Serial backend (default)") - variant("pthreads", default=False, description="enable Pthreads backend") - variant("qthreads", default=False, description="enable Qthreads backend") - variant("cuda", default=False, description="enable Cuda backend") - variant("openmp", default=False, description="enable OpenMP backend") - - # Compilation options - variant("pic", default=False, description="enable position independent code (-fPIC flag)") - - # Kokkos options - variant( - "aggressive_vectorization", - default=False, - description="set aggressive_vectorization Kokkos option", - ) - variant("disable_profiling", default=False, description="set disable_profiling Kokkos option") - variant( - "disable_dualview_modify_check", - default=False, - description="set disable_dualview_modify_check Kokkos option", - ) - variant( - "enable_profile_load_print", - default=False, - description="set enable_profile_load_print Kokkos option", - ) - variant("compiler_warnings", default=False, description="set compiler_warnings Kokkos option") - variant( - "disable_deprecated_code", - default=False, - description="set disable_deprecated_code Kokkos option", - ) - variant("enable_eti", default=False, description="set enable_eti Kokkos option") - - # CUDA options - variant("force_uvm", default=False, description="set force_uvm Kokkos CUDA option") - variant("use_ldg", default=False, description="set use_ldg Kokkos CUDA option") - variant("rdc", default=False, description="set rdc Kokkos CUDA option") - variant("enable_lambda", default=False, description="set enable_lambda Kokkos CUDA option") - - host_values = ( - "AMDAVX", - "ARMv80", - "ARMv81", - "ARMv8-ThunderX", - "Power7", - "Power8", - "Power9", - "WSM", - "SNB", - "HSW", - "BDW", - "SKX", - "KNC", - "KNL", - ) - - gpu_values = ( - "Kepler30", - "Kepler32", - "Kepler35", - "Kepler37", - "Maxwell50", - "Maxwell52", - "Maxwell53", - "Pascal60", - "Pascal61", - "Volta70", - "Volta72", - ) - - # C++ standard variant - cxx_stds = ("none", "c++11", "c++14", "c++17", "c++1y", "c++1z", "c++2a") - variant( - "cxxstd", - default="none", - values=cxx_stds, - multi=False, - description="set cxxstandard Kokkos option", - ) - - # Host architecture variant - variant( - "host_arch", - default="none", - values=host_values + ("none",), - description="Set the host architecture to use", - ) - - # GPU architecture variant - variant( - "gpu_arch", - default="none", - values=gpu_values + ("none",), - description="Set the GPU architecture to use", - ) - - # Checks on Kokkos version and Kokkos options - conflicts("+aggressive_vectorization", when="@:2.0") - conflicts("+disable_profiling", when="@:2.0") - conflicts("+disable_dualview_modify_check", when="@:2.03.04") - conflicts("+enable_profile_load_print", when="@:2.03.04") - conflicts("+compiler_warnings", when="@:2.03.14") - conflicts("+disable_deprecated_code", when="@:2.5") - conflicts("+enable_eti", when="@:2.6") - - # Check that we haven't specified a gpu architecture - # without specifying CUDA - for p in gpu_values: - conflicts( - f"gpu_arch={p}", - when="~cuda", - msg="Must specify CUDA backend to use a GPU architecture.", - ) - - # Check that we haven't specified a Kokkos CUDA option - # without specifying CUDA - conflicts("+force_uvm", when="~cuda", msg="Must enable CUDA to use force_uvm.") - conflicts("+use_ldg", when="~cuda", msg="Must enable CUDA to use use_ldg.") - conflicts("+rdc", when="~cuda", msg="Must enable CUDA to use rdc.") - conflicts("+enable_lambda", when="~cuda", msg="Must enable CUDA to use enable_lambda.") - - # Check that we haven't asked for a GPU architecture that - # the revision of kokkos does not support - conflicts("gpu_arch=Volta70", when="@:2.5") - conflicts("gpu_arch=Volta72", when="@:2.5") - - # conflicts on kokkos version and cuda enabled - # see kokkos issue #1296 - # https://github.com/kokkos/kokkos/issues/1296 - conflicts( - "+cuda", - when="@2.5.00:2.7.00", - msg="Kokkos build system has issue (#1296) when CUDA enabled" - " in version 2.5.00 through 2.7.00.", - ) - - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated - - # Specify that v1.x is required as v2.x has API changes - depends_on("hwloc@:1") - depends_on("qthreads", when="+qthreads") - depends_on("cuda", when="+cuda") - - # generate_makefile.bash calls cmake - depends_on("cmake@3.10:", type="build") - depends_on("gmake", type="build") - - def install(self, spec, prefix): - generate = which(join_path(self.stage.source_path, "generate_makefile.bash")) - with working_dir("build", create=True): - g_args = [f"--prefix={prefix}", f"--with-hwloc={spec['hwloc'].prefix}"] - arch_args = [] - kokkos_options_args = [] - cuda_options_args = [] - - # PIC - if spec.satisfies("+pic"): - g_args.append("--cxxflags=-fPIC") - - # C++ standard - cxxstandard = spec.variants["cxxstd"].value - if cxxstandard != "none": - g_args.append(f"--cxxstandard={cxxstandard}") - - # Build Debug - if spec.satisfies("+debug"): - g_args.append("--debug") - - # Backends - if spec.satisfies("+serial"): - g_args.append("--with-serial") - if spec.satisfies("+openmp"): - g_args.append("--with-openmp") - if spec.satisfies("+pthreads"): - g_args.append("--with-pthread") - if spec.satisfies("+qthreads"): - g_args.append(f"--with-qthreads={spec['qthreads'].prefix}") - if spec.satisfies("+cuda"): - g_args.append(f"--with-cuda={spec['cuda'].prefix}") - # Host architectures - host_arch = spec.variants["host_arch"].value - # GPU architectures - gpu_arch = spec.variants["gpu_arch"].value - if host_arch != "none": - arch_args.append(host_arch) - if gpu_arch != "none": - arch_args.append(gpu_arch) - # Combined architecture flags - if arch_args: - g_args.append(f"--arch={','.join(arch_args)}") - - # CUDA options - if spec.satisfies("+force_uvm"): - cuda_options_args.append("force_uvm") - if spec.satisfies("+use_ldg"): - cuda_options_args.append("use_ldg") - if spec.satisfies("+rdc"): - cuda_options_args.append("rdc") - if spec.satisfies("+enable_lambda"): - cuda_options_args.append("enable_lambda") - if cuda_options_args: - g_args.append(f"--with-cuda-options={','.join(cuda_options_args)}") - - # Kokkos options - if spec.satisfies("+aggressive_vectorization"): - kokkos_options_args.append("aggressive_vectorization") - if spec.satisfies("+disable_profiling"): - kokkos_options_args.append("disable_profiling") - if spec.satisfies("+disable_dualview_modify_check"): - kokkos_options_args.append("disable_dualview_modify_check") - if spec.satisfies("+enable_profile_load_print"): - kokkos_options_args.append("enable_profile_load_print") - if spec.satisfies("+compiler_warnings"): - kokkos_options_args.append("compiler_warnings") - if spec.satisfies("+disable_deprecated_code"): - kokkos_options_args.append("disable_deprecated_code") - if spec.satisfies("+enable_eti"): - kokkos_options_args.append("enable_eti") - if kokkos_options_args: - g_args.append(f"--with-options={','.join(kokkos_options_args)}") - - generate(*g_args) - make() - make("install") diff --git a/repos/spack_repo/builtin/packages/kokkos_nvcc_wrapper/package.py b/repos/spack_repo/builtin/packages/kokkos_nvcc_wrapper/package.py index ba820d059b2..91a55f0ca5e 100644 --- a/repos/spack_repo/builtin/packages/kokkos_nvcc_wrapper/package.py +++ b/repos/spack_repo/builtin/packages/kokkos_nvcc_wrapper/package.py @@ -22,9 +22,19 @@ class KokkosNvccWrapper(Package): license("BSD-3-Clause") - version("master", branch="master") version("develop", branch="develop") + version("5.1.1", sha256="8bdbee0f0ac383436743ad8a9e3e928705b34b31a25a92dc5179c52a3aa98519") + version("5.1.0", sha256="7bdbdfc88033ed7d940c7940ed8919e1f2b78a9656c69276beb76ad45c41ec4e") + version("5.0.2", sha256="188817bb452ca805ee8701f1c5adbbb4fb83dc8d1c50624566a18a719ba0fa5e") + version("5.0.1", sha256="cf7d8515ca993229929be9f051aecd8f93cde325adac8a4f82ed6848adace218") + version("5.0.0", sha256="c45f3e19c3eb71fc8b7210cb04cac658015fc1839e7cc0571f7406588ff9bcef") + version("4.7.04", sha256="4213b248c39e112299fa94ee08817e51126fc02996ed6e2ab56aec4cdb80ee1f") + version("4.7.03", sha256="969e7933b9426219b220f08036e489b3226e6d8cd24eecf2c5b80df8c37443c0") + version("4.7.02", sha256="a81826ac0a167933d13506bc2a986fb5517038df9abb780fe9bb2c1d4e80803b") + version("4.7.01", sha256="404cf33e76159e83b8b4ad5d86f6899d442b5da4624820ab457412116cdcd201") + version("4.7.00", sha256="126b774a24dde8c1085c4aede7564c0b7492d6a07d85380f2b387a712cea1ff5") + version("4.6.02", sha256="baf1ebbe67abe2bbb8bb6aed81b4247d53ae98ab8475e516d9c87e87fa2422ce") version("4.6.01", sha256="b9d70e4653b87a06dbb48d63291bf248058c7c7db4bd91979676ad5609bb1a3a") version("4.6.00", sha256="be72cf7fc6ef6b99c614f29b945960013a2aaa23859bfe1a560d8d9aa526ec9c") version("4.5.01", sha256="52d003ffbbe05f30c89966e4009c017efb1662b02b2b73190670d3418719564c") @@ -72,94 +82,8 @@ class KokkosNvccWrapper(Package): sha256="5024979f06bc8da2fb696252a66297f3e0e67098595a0cc7345312b3b4aa0f54", url="https://github.com/kokkos/kokkos/archive/3.7.02.tar.gz", ) - version( - "3.7.01", - sha256="0481b24893d1bcc808ec68af1d56ef09b82a1138a1226d6be27c3b3c3da65ceb", - url="https://github.com/kokkos/kokkos/archive/3.7.01.tar.gz", - deprecated=True, - ) - version( - "3.7.00", - sha256="62e3f9f51c798998f6493ed36463f66e49723966286ef70a9dcba329b8443040", - url="https://github.com/kokkos/kokkos/archive/3.7.00.tar.gz", - deprecated=True, - ) - version( - "3.6.01", - sha256="1b80a70c5d641da9fefbbb652e857d7c7a76a0ebad1f477c253853e209deb8db", - url="https://github.com/kokkos/kokkos/archive/3.6.01.tar.gz", - deprecated=True, - ) - version( - "3.6.00", - sha256="53b11fffb53c5d48da5418893ac7bc814ca2fde9c86074bdfeaa967598c918f4", - url="https://github.com/kokkos/kokkos/archive/3.6.00.tar.gz", - deprecated=True, - ) - version( - "3.5.00", - sha256="748f06aed63b1e77e3653cd2f896ef0d2c64cb2e2d896d9e5a57fec3ff0244ff", - url="https://github.com/kokkos/kokkos/archive/3.5.00.tar.gz", - deprecated=True, - ) - version( - "3.4.01", - sha256="146d5e233228e75ef59ca497e8f5872d9b272cb93e8e9cdfe05ad34a23f483d1", - url="https://github.com/kokkos/kokkos/archive/3.4.01.tar.gz", - deprecated=True, - ) - version( - "3.4.00", - sha256="2e4438f9e4767442d8a55e65d000cc9cde92277d415ab4913a96cd3ad901d317", - url="https://github.com/kokkos/kokkos/archive/3.4.00.tar.gz", - deprecated=True, - ) - version( - "3.3.01", - sha256="4919b00bb7b6eb80f6c335a32f98ebe262229d82e72d3bae6dd91aaf3d234c37", - url="https://github.com/kokkos/kokkos/archive/3.3.01.tar.gz", - deprecated=True, - ) - version( - "3.3.00", - sha256="170b9deaa1943185e928f8fcb812cd4593a07ed7d220607467e8f0419e147295", - url="https://github.com/kokkos/kokkos/archive/3.3.00.tar.gz", - deprecated=True, - ) - version( - "3.2.01", - sha256="9e27a3d8f81559845e190d60f277d84d6f558412a3df3301d9545e91373bcaf1", - url="https://github.com/kokkos/kokkos/archive/3.2.01.tar.gz", - deprecated=True, - ) - version( - "3.2.00", - sha256="05e1b4dd1ef383ca56fe577913e1ff31614764e65de6d6f2a163b2bddb60b3e9", - url="https://github.com/kokkos/kokkos/archive/3.2.00.tar.gz", - deprecated=True, - ) - version( - "3.1.01", - sha256="ff5024ebe8570887d00246e2793667e0d796b08c77a8227fe271127d36eec9dd", - url="https://github.com/kokkos/kokkos/archive/3.1.01.tar.gz", - deprecated=True, - ) - version( - "3.1.00", - sha256="b935c9b780e7330bcb80809992caa2b66fd387e3a1c261c955d622dae857d878", - url="https://github.com/kokkos/kokkos/archive/3.1.00.tar.gz", - deprecated=True, - ) - version( - "3.0.00", - sha256="c00613d0194a4fbd0726719bbed8b0404ed06275f310189b3493f5739042a92b", - url="https://github.com/kokkos/kokkos/archive/3.0.00.tar.gz", - deprecated=True, - ) - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("cxx", type="build") # needed for self.compiler.cxx depends_on("cuda") diff --git a/repos/spack_repo/builtin/packages/kokkos_tools/package.py b/repos/spack_repo/builtin/packages/kokkos_tools/package.py index 88ae81f8a9f..1aff76a9e6b 100644 --- a/repos/spack_repo/builtin/packages/kokkos_tools/package.py +++ b/repos/spack_repo/builtin/packages/kokkos_tools/package.py @@ -27,7 +27,17 @@ class KokkosTools(CMakePackage): depends_on("papi", when="+papi") def cmake_args(self): + # The plugins are intentionally disabled the time to properly introduce new variants + # with associated dependencies. + # Feel free to contribute. args = [ + self.define("KokkosTools_ENABLE_APEX", False), + self.define("KokkosTools_ENABLE_CALIPER", False), + self.define("KokkosTools_ENABLE_SYSTEMTAP", False), + self.define("KokkosTools_ENABLE_VARIORUM", False), + self.define("KokkosTools_ENABLE_EXAMPLES", False), + self.define("KokkosTools_ENABLE_SINGLE", False), + self.define("KokkosTools_ENABLE_TESTS", False), self.define_from_variant("KokkosTools_ENABLE_MPI", "mpi"), self.define_from_variant("KokkosTools_ENABLE_PAPI", "papi"), ] diff --git a/repos/spack_repo/builtin/packages/koliop/package.py b/repos/spack_repo/builtin/packages/koliop/package.py new file mode 100644 index 00000000000..0ee4acedfbb --- /dev/null +++ b/repos/spack_repo/builtin/packages/koliop/package.py @@ -0,0 +1,59 @@ +# 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 Koliop(CMakePackage): + """A KOkkos based colLIsion OPerator (KoLiOp) that computes the evolution of the distribution + function due to collisions.""" + + homepage = "https://gitlab.com/cines/code.gysela/libkoliop" + git = "https://gitlab.com/cines/code.gysela/libkoliop.git" + url = "https://gitlab.com/cines/code.gysela/libkoliop/-/archive/v0.1.0/libkoliop-v0.1.0.tar.gz" + + maintainers("etiennemlb", "tpadioleau") + + license("MIT", checked_by="tpadioleau") + + version("master", branch="master", no_cache=True) + version("0.2.0", sha256="142733a74ff826d9afb5959f92550989bfbe08f6eba19ba893ccc069074235df") + version("0.1.3", sha256="3c01ca0c4475bfceb2269713fc61c6bb328b1c2f7c8c262a6bdafc89d681244a") + version("0.1.2", sha256="7581e8313b7ebc09b291ac486d7f6d03b55d7e0ce2e8ebf62863177bbb080fd1") + version("0.1.1", sha256="abf5a7187067a452a6a5e45dcd6502ef077f77a591839adf8d21ed4e8b9987f7") + version("0.1.0", sha256="511df587fba11c16e728d1ccdc68c9004dcb0cc87c548e955599d69bf68e6642") + + depends_on("cxx", type="build") + depends_on("cmake@3.25:4", type="build") + + depends_on("kokkos@4.1:") + depends_on("kokkos@:5") + depends_on("kokkos@:4", when="@:0.1") + + depends_on("kokkos-kernels@4.1:") + depends_on("kokkos-kernels@:5") + depends_on("kokkos-kernels@:4", when="@:0.1") + + def cmake_args(self): + args = [ + self.define("koliop_ASSERT_ENABLED", True), + self.define("koliop_ASSUME_INPUT_BUFFERS_ARE_DEVICE_COMPATIBLE", True), + self.define("koliop_BUILD_FORTRAN_INTERFACE", False), + self.define("koliop_BUILD_TESTING", False), + self.define("koliop_CONSTANT_MEMORY_USAGE", False), + self.define("koliop_ENABLE_Kokkos", "SYSTEM"), + self.define("koliop_ENABLE_KokkosKernels", "SYSTEM"), + self.define("koliop_ENABLE_LTO", False), + self.define("koliop_FENCE_ON_OPERATOR_EXIT", False), + self.define("koliop_UTILITY_FLATTEN_EXPECT_POW2_EXTENTS", False), + ] + + if self.spec.satisfies("^kokkos+rocm"): + args.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc)) + else: + args.append(self.define("CMAKE_CXX_COMPILER", self["kokkos"].kokkos_cxx)) + + return args diff --git a/repos/spack_repo/builtin/packages/kraken2/package.py b/repos/spack_repo/builtin/packages/kraken2/package.py index 386e6f940a5..34b34506957 100644 --- a/repos/spack_repo/builtin/packages/kraken2/package.py +++ b/repos/spack_repo/builtin/packages/kraken2/package.py @@ -5,12 +5,13 @@ import glob import os +from spack_repo.builtin.build_systems.cmake import CMakeBuilder, CMakePackage from spack_repo.builtin.build_systems.generic import Package from spack.package import * -class Kraken2(Package): +class Kraken2(Package, CMakePackage): """Kraken2 is a system for assigning taxonomic labels to short DNA sequences, usually obtained through metagenomic studies.""" @@ -21,6 +22,7 @@ class Kraken2(Package): license("MIT") + version("2.17.1", sha256="4dc64ead045b5ae9180731c260046aa37b6642244be085a9ba9b15db78ab442d") version("2.1.2", sha256="e5f431e8bc3d5493a79e1d8125f4aacbad24f9ea2cc9657b66da06a32bef6ff3") version("2.1.1", sha256="8f3e928cdb32b9e8e6f55b44703d1557b2a5fc3f30f63e8d16e465e19a81dee4") version( @@ -33,8 +35,17 @@ class Kraken2(Package): "2.0.6-beta", sha256="d77db6251179c4d7e16bc9b5e5e9043d25acf81f3e32ad6eadfba829a31e1d09" ) + build_system( + conditional("cmake", when="@2.17.0:"), + conditional("generic", when="@2.0.6-beta:2.1.2"), + default="cmake", + ) + + depends_on("c", type="build") depends_on("cxx", type="build") # generated + depends_on("gmake", type="build", when="build_system=generic") + depends_on("perl", type=("build", "run")) depends_on("rsync", type=("run")) depends_on("wget", type=("run")) @@ -47,3 +58,24 @@ def install(self, spec, prefix): for file in files: if os.path.isfile(file): install(file, prefix.bin) + + +class CMakeBuilder(CMakeBuilder): + def install(self, pkg, spec, prefix): + mkdirp(prefix.bin) + mkdirp(prefix.lib) + with working_dir(join_path(self.build_directory, "src")): + files = [ + "estimate_capacity", + "build_db", + "classify", + "dump_table", + "lookup_accession_numbers", + "k2mask", + "blast_to_fasta", + ] + for file in files: + install(file, prefix.bin) + install("libtax.so", prefix.lib) + force_symlink(join_path(prefix.lib, "libtax.so"), join_path(prefix.bin, "libtax.so")) + install_tree("scripts", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/krakenuniq/package.py b/repos/spack_repo/builtin/packages/krakenuniq/package.py index f2d80d6e6d3..8dfc3f60554 100644 --- a/repos/spack_repo/builtin/packages/krakenuniq/package.py +++ b/repos/spack_repo/builtin/packages/krakenuniq/package.py @@ -35,7 +35,7 @@ class Krakenuniq(Package): depends_on("wget", when="+jellyfish") def install(self, spec, prefix): - local_script = which("./install_krakenuniq.sh") + local_script = which("./install_krakenuniq.sh", required=True) if self.spec.satisfies("+jellyfish"): local_script("-j", prefix.bin) else: diff --git a/repos/spack_repo/builtin/packages/krb5/mit-krb5-1.17-static-libs.patch b/repos/spack_repo/builtin/packages/krb5/mit-krb5-1.17-static-libs.patch deleted file mode 100644 index cdf0a097b4b..00000000000 --- a/repos/spack_repo/builtin/packages/krb5/mit-krb5-1.17-static-libs.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- src/lib/crypto/builtin/aes/Makefile.in.orig 2019-06-27 14:51:51.305688932 +0200 -+++ src/lib/crypto/builtin/aes/Makefile.in 2019-06-27 14:52:46.428203235 +0200 -@@ -34,10 +34,10 @@ - - all-unix: all-libobjs # aes-gen - --iaesx64@SHOBJEXT@: $(srcdir)/iaesx64.s -+iaesx64.$(OBJEXT) iaesx64@SHOBJEXT@: $(srcdir)/iaesx64.s - $(YASM) $(AESNI_FLAGS) -o $@ $(srcdir)/iaesx64.s - --iaesx86@SHOBJEXT@: $(srcdir)/iaesx86.s -+iaesx86.$(OBJEXT) iaesx86@SHOBJEXT@: $(srcdir)/iaesx86.s - $(YASM) $(AESNI_FLAGS) -o $@ $(srcdir)/iaesx86.s - - includes: depend diff --git a/repos/spack_repo/builtin/packages/krb5/package.py b/repos/spack_repo/builtin/packages/krb5/package.py index da0b6c104e3..5b050b45693 100644 --- a/repos/spack_repo/builtin/packages/krb5/package.py +++ b/repos/spack_repo/builtin/packages/krb5/package.py @@ -19,51 +19,14 @@ class Krb5(AutotoolsPackage): license("MIT", checked_by="wdconinc") + version("1.22.2", sha256="3243ffbc8ea4d4ac22ddc7dd2a1dc54c57874c40648b60ff97009763554eaf13") version("1.21.3", sha256="b7a4cd5ead67fb08b980b21abd150ff7217e85ea320c9ed0c6dadd304840ad35") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2024-37371 - version( - "1.21.2", sha256="9560941a9d843c0243a71b17a7ac6fe31c7cebb5bce3983db79e52ae7e850491" - ) - version( - "1.20.1", sha256="704aed49b19eb5a7178b34b2873620ec299db08752d6a8574f95d41879ab8851" - ) - version( - "1.19.4", sha256="41f5981c5a4de0a26b3937e679a116cd5b3739641fd253124aac91f7179b54eb" - ) - version( - "1.19.3", sha256="56d04863cfddc9d9eb7af17556e043e3537d41c6e545610778676cf551b9dcd0" - ) - version( - "1.19.2", sha256="10453fee4e3a8f8ce6129059e5c050b8a65dab1c257df68b99b3112eaa0cdf6a" - ) - version( - "1.18.2", sha256="c6e4c9ec1a98141c3f5d66ddf1a135549050c9fab4e9a4620ee9b22085873ae0" - ) - version( - "1.18.1", sha256="02a4e700f10936f937cd1a4c303cab8687a11abecc6107bd4b706b9329cd5400" - ) - version("1.18", sha256="73913934d711dcf9d5f5605803578edb44b9a11786df3c1b2711f4e1752f2c88") - version( - "1.17.1", sha256="3706d7ec2eaa773e0e32d3a87bf742ebaecae7d064e190443a3acddfd8afb181" - ) - version("1.17", sha256="5a6e2284a53de5702d3dc2be3b9339c963f9b5397d3fbbc53beb249380a781f5") - version( - "1.16.3", sha256="e40499df7c6dbef0cf9b11870a0e167cde827737d8b2c06a9436334f08ab9b0d" - ) - version( - "1.16.2", sha256="9f721e1fe593c219174740c71de514c7228a97d23eb7be7597b2ae14e487f027" - ) - version( - "1.16.1", sha256="214ffe394e3ad0c730564074ec44f1da119159d94281bbec541dc29168d21117" - ) - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("diffutils", type="build") depends_on("bison", type="build") - depends_on("openssl@:1", when="@:1.19") depends_on("openssl") depends_on("gettext") depends_on("libedit") @@ -74,8 +37,6 @@ class Krb5(AutotoolsPackage): variant( "shared", default=True, description="install shared libraries if True, static if false" ) - # This patch is applied in newer upstream releases - patch("mit-krb5-1.17-static-libs.patch", level=0, when="@:1.18.9") patch("freebsd-link.patch", when="platform=freebsd") configure_directory = "src" @@ -118,7 +79,7 @@ def configure_args(self): args.append("CFLAGS=-fcommon") if spec["openssl"].satisfies("~shared"): - pkgconf = which("pkg-config") + pkgconf = which("pkg-config", required=True) ssllibs = pkgconf("--static", "--libs", "openssl", output=str) args.append(f"LDFLAGS={ssllibs}") diff --git a/repos/spack_repo/builtin/packages/kubectl/package.py b/repos/spack_repo/builtin/packages/kubectl/package.py index 4bd9909134a..bcd4c880166 100644 --- a/repos/spack_repo/builtin/packages/kubectl/package.py +++ b/repos/spack_repo/builtin/packages/kubectl/package.py @@ -19,33 +19,33 @@ 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") version("1.33.2", sha256="5588bb13437c0e6881f58ede88d200301c3d28b8ce124d58d3e7ed781d1d8d40") version("1.33.1", sha256="f89203e326de4c827a23ef9aa430d8a3133f62cfa1f5a894e8c85784f01bf055") + version("1.32.13", sha256="3b48c21be36b5d7e387dcd7bd1914b223b3aeb55ae7ded4cdc5244dd943accc1") + version("1.32.8", sha256="8adb887537e654c106b5ad11d5891cba2d2458004b58167a9245d9847ed9ea4b") version("1.32.6", sha256="12a18280b2006a0e338a7ec470c2ec7f7c955bc81c7d265f955a2ed7e4bfb3f9") version("1.32.3", sha256="b1ed5abe78a626804aadc49ecb8ade6fd33b27ab8c23d43cd59dc86f6462ac09") + version("1.31.14", sha256="ddca4935c8b6a3b4b6cd896c6b24bdd1b17d7a7004d12fca8b8b01ac727ddc5a") + version("1.31.12", sha256="29a6b9cc83bd44a1b2aa26c496d45e71db065327df06751c61815c4ca3e9229f") version("1.31.10", sha256="5b35c0dde86ca2ff870f6f20fd028d98a7e83ab2816afd20016896c39347e8c5") version("1.31.7", sha256="92005ebd010a8d4fe3a532444c4645840e0af486062611a4d9c8d862414c3f56") version("1.30.14", sha256="ad003cc133346d20ae091a540a42bf9adbcf124ec2959004a636fd1e9694f534") version("1.30.11", sha256="f30e4082b6a554d4a2bfedd8b2308a5e6012287e15bec94f72987f717bab4133") - with default_args(deprecated=True): - version( - "1.32.0", sha256="3793859c53f09ebc92e013ea858b8916cc19d7fe288ec95882dada4e5a075d08" - ) - version( - "1.31.1", sha256="83094915698a9c24f93d1ffda3f17804a4024d3b65eabf681e77a62b35137208" - ) - version( - "1.31.0", sha256="6679eb90815cc4c3bef6c1b93f7a8451bf3f40d003f45ab57fdc9f8c4e8d4b4f" - ) - version( - "1.27.1", sha256="3a3f7c6b8cf1d9f03aa67ba2f04669772b1205b89826859f1636062d5f8bec3f" - ) - version( - "1.27.0", sha256="536025dba2714ee5e940bb0a6b1df9ca97c244fa5b00236e012776a69121c323" - ) - 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:") depends_on("go@1.22:", type="build", when="@1.30:") @@ -63,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 af4c91bc477..7205388605e 100644 --- a/repos/spack_repo/builtin/packages/kubernetes/package.py +++ b/repos/spack_repo/builtin/packages/kubernetes/package.py @@ -19,35 +19,35 @@ 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") version("1.33.1", sha256="f89203e326de4c827a23ef9aa430d8a3133f62cfa1f5a894e8c85784f01bf055") + version("1.32.13", sha256="3b48c21be36b5d7e387dcd7bd1914b223b3aeb55ae7ded4cdc5244dd943accc1") version("1.32.6", sha256="12a18280b2006a0e338a7ec470c2ec7f7c955bc81c7d265f955a2ed7e4bfb3f9") version("1.32.3", sha256="b1ed5abe78a626804aadc49ecb8ade6fd33b27ab8c23d43cd59dc86f6462ac09") + version("1.31.14", sha256="ddca4935c8b6a3b4b6cd896c6b24bdd1b17d7a7004d12fca8b8b01ac727ddc5a") version("1.31.10", sha256="5b35c0dde86ca2ff870f6f20fd028d98a7e83ab2816afd20016896c39347e8c5") version("1.31.7", sha256="92005ebd010a8d4fe3a532444c4645840e0af486062611a4d9c8d862414c3f56") version("1.30.14", sha256="ad003cc133346d20ae091a540a42bf9adbcf124ec2959004a636fd1e9694f534") version("1.30.11", sha256="f30e4082b6a554d4a2bfedd8b2308a5e6012287e15bec94f72987f717bab4133") - with default_args(deprecated=True): - version( - "1.32.0", sha256="3793859c53f09ebc92e013ea858b8916cc19d7fe288ec95882dada4e5a075d08" - ) - version( - "1.27.2", sha256="c6fcfddd38f877ce49c49318973496f9a16672e83a29874a921242950cd1c5d2" - ) - version( - "1.27.1", sha256="3a3f7c6b8cf1d9f03aa67ba2f04669772b1205b89826859f1636062d5f8bec3f" - ) - version( - "1.27.0", sha256="536025dba2714ee5e940bb0a6b1df9ca97c244fa5b00236e012776a69121c323" - ) - depends_on("c", type="build") with default_args(type="build"): 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:") depends_on("go@1.22:", when="@1.30:") diff --git a/repos/spack_repo/builtin/packages/kynema/package.py b/repos/spack_repo/builtin/packages/kynema/package.py new file mode 100644 index 00000000000..e30177a2aa8 --- /dev/null +++ b/repos/spack_repo/builtin/packages/kynema/package.py @@ -0,0 +1,110 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage + +from spack.package import * + + +class Kynema(CMakePackage, CudaPackage, ROCmPackage): + """An open-source performance-oriented structural dynamics simulation code.""" + + license("MIT License", checked_by="ddement") + + homepage = "https://kynema.github.io/kynema/" + url = "https://github.com/kynema/kynema.git" + git = "https://github.com/kynema/kynema.git" + + maintainers("faisal-bhuiyan", "ddement", "deslaughter") + + version("main", branch="main") + + variant("tests", default=False, description="Build Kynema Test Suite") + variant("openmp", default=False, description="Build Kynema with OpenMP support") + variant("vtk", default=False, description="Enable VTK") + variant("adi", default=False, description="Build the OpenFAST ADI external project") + variant("rosco", default=False, description="Build the ROSCO controller external project") + variant("klu", default=True, description="Build with support for the KLU sparse direct solver") + variant( + "umfpack", + default=False, + description="Build with support for the UMFPACK sparse direct solver", + ) + variant( + "superlu", + default=False, + description="Build with support for the SuperLU sparse direct solver", + ) + variant( + "superlu-mt", + default=False, + description="Build with support for the SuperLU_MT sparse direct solver", + ) + variant( + "mkl", + default=False, + description="Build with support for the MKL Pardiso sparse direct solver", + ) + variant( + "cusolversp", + default=True, + when="+cuda", + description="Build with support for the cuSolverSP sparse direct solver", + ) + variant( + "cudss", + default=False, + when="+cuda", + description="Build with support for the cuDSS sparse direct solver", + ) + + depends_on("cxx", type="build") + depends_on("c", type="build") + depends_on("netcdf-c@4.9:") + depends_on("yaml-cpp@0.6:") + depends_on("kokkos-kernels") + depends_on("lapack") + depends_on("eigen") + + depends_on("kokkos@4.6:") + depends_on("kokkos-kernels@4.6:") + + depends_on("kokkos+cuda+wrapper", when="+cuda") + depends_on("kokkos+rocm", when="+rocm") + depends_on("kokkos~cuda", when="~cuda") + depends_on("kokkos~rocm", when="~rocm") + + depends_on("kokkos-kernels+cuda+cublas+cusparse+cusolver", when="+cuda") + depends_on("kokkos-kernels+rocblas+rocsparse+rocsolver", when="+rocm") + depends_on("kokkos-kernels+openmp", when="+openmp") + depends_on("kokkos-kernels~cuda", when="~cuda") + depends_on("kokkos-kernels~openmp", when="~openmp") + + depends_on("suite-sparse@7.4:", when="+klu") + depends_on("suite-sparse@7.4:", when="+umfpack") + depends_on("superlu", when="+superlu") + depends_on("superlu-mt", when="+superlu-mt") + depends_on("mkl", when="+mkl") + depends_on("cudss", when="+cudss") + + depends_on("googletest", when="+tests") + depends_on("rosco", when="+rosco") + depends_on("openfast", when="+adi") + + def cmake_args(self): + options = [ + self.define_from_variant("KYNEMA_FMB_ENABLE_TESTS", "tests"), + self.define_from_variant("KYNEMA_FMB_ENABLE_OPENFAST_ADI", "adi"), + self.define_from_variant("KYNEMA_FMB_ENABLE_ROSCO_CONTROLLER", "rosco"), + self.define_from_variant("KYNEMA_FMB_ENABLE_KLU", "klu"), + self.define_from_variant("KYNEMA_FMB_ENABLE_UMFPACK", "umfpack"), + self.define_from_variant("KYNEMA_FMB_ENABLE_SUPERLU", "superlu"), + self.define_from_variant("KYNEMA_FMB_ENABLE_SUPERLU_MT", "superlu-mt"), + self.define_from_variant("KYNEMA_FMB_ENABLE_MKL", "mkl"), + self.define_from_variant("KYNEMA_FMB_ENABLE_CUSOLVERSP", "cusolversp"), + self.define_from_variant("KYNEMA_FMB_ENABLE_CUDSS", "cudss"), + ] + return options diff --git a/repos/spack_repo/builtin/packages/lammps/package.py b/repos/spack_repo/builtin/packages/lammps/package.py index 44ffdaf6e10..6b3031fe723 100644 --- a/repos/spack_repo/builtin/packages/lammps/package.py +++ b/repos/spack_repo/builtin/packages/lammps/package.py @@ -33,386 +33,59 @@ class Lammps(CMakePackage, CudaPackage, ROCmPackage, PythonExtension): # marked deprecated=True # * patch releases older than a stable release should be marked deprecated=True version("develop", branch="develop") - version("20250612", sha256="b3fe6dc57115edb89d022879fe676503ec88b4e12cfee3488cc2f43cb0957ba7") - version("20250402", sha256="5087ebd6b00cd44a7d73303d49685668f6effa76dc375912f7f75db558b39bca") - version("20250204", sha256="a4cb0a58451d47ac31ee3e1f148d92f445298d6e27f2d06f161b9b4168d79eb1") - version("20241119", sha256="7d1a825f13eef06d82ed8ae950f4a5ca6da9f6a5979745a85a7a58781e4c6ffa") + version("20260330", sha256="395f00e166836ac0164793d65ba0d957d79dd0848a79c36fa903855e8b49b7e0") + version("20260211", sha256="b9ba0e368ee5af93f038b913e09a02b777a365ac6aea141842ded9b98b1efa8e") + version("20251210", sha256="175afc62a7314970d56e93b54745f4e6132e8f688155fff3dd70b298ec077c0e") + version("20250910", sha256="475d5cda1b289ca3b3dcc97c1ee199f67fa6ad736951213e9b6ec08069d70f0c") version( - "20240829.3", - sha256="75a9fb55d3c10f44cbc7b30313351ce9b12ab3003c1400147fa3590b6d651c73", + "20250722.3", + sha256="07f487cc33fc8f2ec4a449b7bce570e52b5a46608075e0276d26e0e232511bef", preferred=True, ) version( - "20240829.2", - sha256="f8ca3f021a819ced8658055f7750e235c51b4937ddb621cf1bd7bee08e0b6266", + "20250722.2", + sha256="fede484269cdb22f1cb738b4cd118a9bf9cb4bd3c85667f1e6a73a9fa5c2de6b", deprecated=True, ) version( - "20240829.1", - sha256="3aea41869aa2fb8120fc4814cab645686f969e2eb7c66aa5587e500597d482dc", + "20250722.1", + sha256="4ba3648fae360ea1d3106e08bce13e21f856318196f4965f2a09fd812d572928", deprecated=True, ) version( - "20240829", - sha256="6112e0cc352c3140a4874c7f74db3c0c8e30134024164509ecf3772b305fde2e", + "20250722", + sha256="38d7ab508433f33a53e11f0502aa0253945ce45d5595baf69665961c0a76da26", deprecated=True, ) version( - "20240627", - sha256="2174a99d266279823a8c57629ee1c21ec357816aefd85f964d9f859fe9222aa5", + "20250612", + sha256="b3fe6dc57115edb89d022879fe676503ec88b4e12cfee3488cc2f43cb0957ba7", deprecated=True, ) version( - "20240417", - sha256="158b288725c251fd8b30dbcf61749e0d6a042807da92af865a7d3c413efdd8ea", + "20250402", + sha256="5087ebd6b00cd44a7d73303d49685668f6effa76dc375912f7f75db558b39bca", deprecated=True, ) version( - "20240207.1", - sha256="3ba62c2a1ed463fceedf313a1c3ea2997994aa102379a8d35b525ea424f56776", + "20250204", + sha256="a4cb0a58451d47ac31ee3e1f148d92f445298d6e27f2d06f161b9b4168d79eb1", deprecated=True, ) version( - "20240207", - sha256="d518f32de4eb2681f2543be63926411e72072dd7d67c1670c090b5baabed98ac", - deprecated=True, - ) - version( - "20231121", - sha256="704d8a990874a425bcdfe0245faf13d712231ba23f014a3ebc27bc14398856f1", - deprecated=True, + "20240829.4", sha256="e7d6d60b94ada5acc2e1e9966ae12547fd550d6967d4511b8655c77e24878728" ) version( "20230802.4", sha256="6eed007cc24cda80b5dd43372b2ad4268b3982bb612669742c8c336b79137b5b" ) - version( - "20230802.3", - sha256="6666e28cb90d3ff01cbbda6c81bdb85cf436bbb41604a87f2ab2fa559caa8510", - deprecated=True, - ) - version( - "20230802.2", - sha256="3bcecabc9cad08d0a4e4d989b52d29c58505f7ead8ebacf43c9db8d9fd3d564a", - deprecated=True, - ) - version( - "20230802.1", - sha256="0e5568485e5ee080412dba44a1b7a93f864f1b5c75121f11d528854269953ed0", - deprecated=True, - ) - version( - "20230802", - sha256="48dc8b0b0583689e80ea2052275acbc3e3fce89707ac557e120db5564257f7df", - deprecated=True, - ) - version( - "20230615", - sha256="8470ed7b26ccd3728f4b44a7f1c520f1af23a648af685fd30b42b840fdfae2ff", - deprecated=True, - ) - version( - "20230328", - sha256="14f5a5c37e4b46466e90d8b35476800e66acee74999f7358f4c12dfe662bfd99", - deprecated=True, - ) - version( - "20230208", - sha256="60221242145da4479e5b207d9a0eed90af4168d7a297b4dc8c0e7f2b3215602e", - deprecated=True, - ) - version( - "20221222", - sha256="75372ee7ef982767fc4ed4dc95e20ddca8247419adeb0c1276c40e43d1eab955", - deprecated=True, - ) - version( - "20221103", - sha256="d28517b84b157d4e46a1a64ed787b4662d8f2f5ade3f5a04bb0caed068f32f7e", - deprecated=True, - ) - version( - "20220915", - sha256="392b8d35fc7919b0efaf8b389259a9b795a817e58e75e380467c63d03a0dab75", - deprecated=True, - ) - version( - "20220803", - sha256="f37cb0b35c1682ffceae5826aadce47278aa7003099a1655fcea43acd7d37926", - deprecated=True, - ) version( "20220623.4", sha256="42541b4dbd0d339d16ddb377e76d192bc3d1d5712fdf9e2cdc838fc980d0a0cf" ) - version( - "20220623.3", - sha256="8a276a01b50d37eecfe6eb36f420f354cde51936d20aca7944dea60d3c098c89", - deprecated=True, - ) - version( - "20220623.2", - sha256="8a560213e83919623525c4a7c4b5f0eda35cdf3b0c0e6548fd891379e04ca9e6", - deprecated=True, - ) - version( - "20220623.1", - sha256="58e3b2b984f8935bb0db5631e143be2826c45ffd48844f7c394f36624a3e17a2", - deprecated=True, - ) - version( - "20220623", - sha256="d27ede095c9f00cd13a26f967a723d07cf8f4df65c700ed73573577bc173d5ce", - deprecated=True, - ) - version( - "20220602", - sha256="3e8f54453e53b3b387a68317277f832b8cf64a981e64b21e98bb37ea36ac4a60", - deprecated=True, - ) - version( - "20220504", - sha256="fe05bae8090fd0177b3c1b987cd32a9cb7cd05d790828ba954c764eb52e10b52", - deprecated=True, - ) - version( - "20220324", - sha256="d791cc93eedfc345fdf87bfa5b6f7e17e461f86ba197f9e9c3d477ce8657a7ef", - deprecated=True, - ) - version( - "20220217", - sha256="e5bd2bf325835fa98d1b95f0667c83076580916027df5b8109d5470d1b97da98", - deprecated=True, - ) - version( - "20220107", - sha256="fbf6c6814968ae0d772d7b6783079ff4f249a8faeceb39992c344969e9f1edbb", - deprecated=True, - ) - version( - "20211214", - sha256="9f7b1ee2394678c1a6baa2c158a62345680a952eee251783e3c246b3f12db4c9", - deprecated=True, - ) - version( - "20211027", - sha256="c06f682fcf9d5921ca90c857a104e90fba0fe65decaac9732745e4da49281938", - deprecated=True, - ) version( "20210929.3", sha256="e4c274f0dc5fdedc43f2b365156653d1105197a116ff2bafe893523cdb22532e" ) - version( - "20210929.2", - sha256="9318ca816cde16a9a4174bf22a1966f5f2155cb32c0ad5a6757633276411fb36", - deprecated=True, - ) - version( - "20210929.1", - sha256="5000b422c9c245b92df63507de5aa2ea4af345ea1f00180167aaa084b711c27c", - deprecated=True, - ) - version( - "20210929", - sha256="2dff656cb21fd9a6d46c818741c99d400cfb1b12102604844663b655fb2f893d", - deprecated=True, - ) - version( - "20210920", - sha256="e3eba96933c1dd3177143c7ac837cae69faceba196948fbad2970425db414d8c", - deprecated=True, - ) - version( - "20210831", - sha256="532c42576a79d72682deaf43225ca773ed9f9e35deb484a82f91905b6cba23ec", - deprecated=True, - ) - version( - "20210730", - sha256="c5e998c8282a835d2bcba4fceffe3cecdf9aed9bdf79fa9c945af573e632f6e7", - deprecated=True, - ) - version( - "20210728", - sha256="6b844d2c3f7170a59d36fbf761483aa0c63d95eda254d00fe4d10542403abe36", - deprecated=True, - ) - version( - "20210702", - sha256="4fdd8ca2dbde8809c0048716650b73ae1f840e22ebe24b25f6f7a499377fea57", - deprecated=True, - ) - version( - "20210527", - sha256="f9f29970941f406d5c250de52a4cd07e5a4e44ae3b5ffed46edd019d998b8c33", - deprecated=True, - ) - version( - "20210514", - sha256="74d9c4386f2181b15a024314c42b7a0b0aaefd3b4b947aeca00fe07e5b2f3317", - deprecated=True, - ) - version( - "20210408", - sha256="1645147b7777de4f616b8232edf0b597868084f969c777fa0a757949c3f71f56", - deprecated=True, - ) - version( - "20210310", - sha256="25708378dbeccf794bc5045aceb84380bf4a3ca03fc8e5d150a26ca88d371474", - deprecated=True, - ) - version( - "20210210", - sha256="2c5ba2c7935ad559ca94ee826e8727e65b49ef4582eb856534fffba70e44101a", - deprecated=True, - ) version("20201029", sha256="759705e16c1fedd6aa6e07d028cc0c78d73c76b76736668420946a74050c3726") - version( - "20200721", - sha256="845bfeddb7b667799a1a5dbc166b397d714c3d2720316604a979d3465b4190a9", - deprecated=True, - ) - version( - "20200630", - sha256="413cbfabcc1541a339c7a4ab5693fbeb768f46bb1250640ba94686c6e90922fc", - deprecated=True, - ) - version( - "20200505", - sha256="c49d77fd602d28ebd8cf10f7359b9fc4d14668c72039028ed7792453d416de73", - deprecated=True, - ) version("20200303", sha256="a1a2e3e763ef5baecea258732518d75775639db26e60af1634ab385ed89224d1") - version( - "20200227", - sha256="1aabcf38bc72285797c710b648e906151a912c36b634a9c88ac383aacf85516e", - deprecated=True, - ) - version( - "20200218", - sha256="73bcf146660804ced954f6a0a8dce937482677778d46018ca5a688127bf97211", - deprecated=True, - ) - version( - "20200204", - sha256="3bf3de546ede34ffcd89f1fca5fd66aa78c662e7c8a76e30ce593e44a00d23ce", - deprecated=True, - ) - version( - "20200124", - sha256="443829560d760690e1ae21ad54922f56f34f640a81e817f5cc65d2a4af3a6a5d", - deprecated=True, - ) - version( - "20200109", - sha256="f2fd24f6c10837801f490913d73f672ec7c6becda08465d7e834a2bfbe3d7cd6", - deprecated=True, - ) - version( - "20191120", - sha256="fd146bf517a6c2fb8a69ecb3749dc352eef94414739cd7855c668c690af85d27", - deprecated=True, - ) - version( - "20191030", - sha256="5279567f731386ffdb87800b448903a63de2591064e13b4d5216acae25b7e541", - deprecated=True, - ) - version( - "20190919", - sha256="0f693203afe86bc70c084c55f29330bdeea3e3ad6791f81c727f7a34a7f6caf3", - deprecated=True, - ) - version( - "20190807", - sha256="895d71914057e070fdf0ae5ccf9d6552b932355056690bdb8e86d96549218cc0", - deprecated=True, - ) - version( - "20190605", - sha256="c7b35090aef7b114d2b47a7298c1e8237dd811da87995c997bf7639cca743152", - deprecated=True, - ) - version( - "20181212", - sha256="ccc5d2c21c4b62ce4afe7b3a0fe2f37b83e5a5e43819b7c2e2e255cce2ce0f24", - deprecated=True, - ) - version( - "20181207", - sha256="d92104d008a7f1d0b6071011decc5c6dc8b936a3418b20bd34b055371302557f", - deprecated=True, - ) - version( - "20181127", - sha256="c076b633eda5506f895de4c73103df8b995d9fec01be82c67c7608efcc345179", - deprecated=True, - ) - version( - "20181115", - sha256="3bc9c166e465cac625c4a8e4060e597003f4619dadd57d3bc8d25bcd930f286e", - deprecated=True, - ) - version( - "20181109", - sha256="dd30fe492fa147fb6f39bfcc79d8c786b9689f7fbe86d56de58cace53b6198c9", - deprecated=True, - ) - version( - "20181024", - sha256="a171dff5aff7aaa2c9606ab2abc9260f2b685a5c7f6d650e7f2b59cf4aa149d6", - deprecated=True, - ) - version( - "20181010", - sha256="bda762ee2d2dcefe0b4e36fb689c6b9f7ede49324444ccde6c59cba727b4b02d", - deprecated=True, - ) - version( - "20180918", - sha256="02f143d518d8647b77137adc527faa9725c7afbc538d670253169e2a9b3fa0e6", - deprecated=True, - ) - version( - "20180905", - sha256="ee0df649e33a9bf4fe62e062452978731548a56b7487e8e1ce9403676217958d", - deprecated=True, - ) - version( - "20180831", - sha256="6c604b3ebd0cef1a5b18730d2c2eb1e659b2db65c5b1ae6240b8a0b150e4dff3", - deprecated=True, - ) - version( - "20180822", - sha256="9f8942ca3f8e81377ae88ccfd075da4e27d0dd677526085e1a807777c8324074", - deprecated=True, - ) - version( - "20180629", - sha256="1acf7d9b37b99f17563cd4c8bb00ec57bb2e29eb77c0603fd6871898de74763b", - deprecated=True, - ) - version( - "20180316", - sha256="a81f88c93e417ecb87cd5f5464c9a2570384a48ff13764051c5e846c3d1258c1", - deprecated=True, - ) - version( - "20180222", - sha256="374254d5131b7118b9ab0f0e27d20c3d13d96b03ed2b5224057f0c1065828694", - deprecated=True, - ) - version( - "20170922", - sha256="f0bf6eb530d528f4d261d0a261e5616cbb6e990156808b721e73234e463849d3", - deprecated=True, - ) - version( - "20170901", - sha256="5d88d4e92f4e0bb57c8ab30e0d20de556830af820223778b9967bec2184efd46", - deprecated=True, - ) depends_on("c", type="build") depends_on("cxx", type="build") @@ -422,24 +95,14 @@ class Lammps(CMakePackage, CudaPackage, ROCmPackage, PythonExtension): depends_on("fortran", type="build", when=f"+{fc_pkg}") stable_versions = { - "20240829.3", - "20240829.2", - "20240829.1", - "20240829", + "20250722.3", + "20250722.2", + "20250722.1", + "20250722", + "20240829.4", "20230802.4", - "20230802.3", - "20230802.2", - "20230802.1", - "20230802", "20220623.4", - "20220623.3", - "20220623.2", - "20220623.1", - "20220623", "20210929.3", - "20210929.2", - "20210929.1", - "20210929", "20201029", "20200303", } @@ -467,8 +130,8 @@ def url_for_version(self, version): "adios": {"when": "@20210702:"}, "amoeba": {"when": "@20220803:"}, "asphere": {}, - "atc": {"when": "@20210702:"}, - "awpmd": {"when": "@20210702:"}, + "atc": {"when": "@20210702:20250722"}, + "awpmd": {"when": "@20210702:20250722"}, "bocs": {"when": "@20210702:"}, "body": {}, "bpm": {"when": "@20220504:"}, @@ -503,7 +166,7 @@ def url_for_version(self, version): "intel": {"when": "@20210702:"}, "interlayer": {"when": "@20210728:"}, "kim": {}, - "kokkos": {}, + "kokkos": {"when": "@20201029:"}, "kspace": {"default": True}, "latboltz": {"when": "@20210702:"}, "latte": {"when": "@20170922:20230328"}, @@ -537,7 +200,7 @@ def url_for_version(self, version): "phonon": {"when": "@20210702:"}, "plugin": {"when": "@20210408:"}, "plumed": {"when": "@20210702:"}, - "poems": {}, + "poems": {"when": "@:20250722"}, "ptm": {"when": "@20210702:"}, "python": {}, "qeq": {}, @@ -683,6 +346,7 @@ def url_for_version(self, version): variant("tools", default=False, description="Build LAMMPS tools (msi2lmp, binary2txt, chain)") depends_on("cmake@3.16:", when="@20231121:", type="build") + depends_on("cmake@3.20:", when="@20250910:", type="build") depends_on("mpi", when="+mpi") depends_on("mpi", when="+mpiio") depends_on("fftw-api@3", when="+kspace fft=fftw3") @@ -723,7 +387,6 @@ def url_for_version(self, version): depends_on("curl", when="+curl") depends_on("libpng", when="+png") depends_on("ffmpeg", when="+ffmpeg") - depends_on("kokkos+deprecated_code+shared@3.0.00", when="@20200303+kokkos") depends_on("kokkos+shared@3.1:", when="@20200505:+kokkos") depends_on("kokkos@3.7.01:", when="@20230208: +kokkos") depends_on("kokkos@4.3.00:", when="@20240417: +kokkos") @@ -731,12 +394,15 @@ def url_for_version(self, version): depends_on("kokkos@4.4.01:", when="@20241119: +kokkos") depends_on("kokkos@4.5.01:", when="@20250204: +kokkos") depends_on("kokkos@4.6.00:", when="@20250402: +kokkos") + depends_on("kokkos@4.6.02:", when="@20250722: +kokkos") + depends_on("kokkos@4.7.01:", when="@20251210: +kokkos") + depends_on("kokkos@5.0.2:", when="@20260211: +kokkos") depends_on("adios2", when="+user-adios") depends_on("adios2", when="+adios") depends_on("plumed", when="+user-plumed") depends_on("plumed", when="+plumed") - depends_on("eigen@3:", when="+user-smd") - depends_on("eigen@3:", when="+machdyn") + depends_on("eigen@3", when="+user-smd") + depends_on("eigen@3", when="+machdyn") depends_on("pace", when="+ml-pace") depends_on("py-cython", when="+mliap+python", type="build") depends_on("py-cython", when="+ml-iap+python", type="build") @@ -756,6 +422,7 @@ def url_for_version(self, version): depends_on("vtk", when="+user-vtk") depends_on("vtk", when="+vtk") depends_on("hipcub", when="~kokkos +rocm") + depends_on("hipcub@:6", when="@:20250722 ~kokkos +rocm") depends_on("llvm-amdgpu ", when="+rocm", type="build") depends_on("rocm-openmp-extras", when="+rocm +openmp", type="build") depends_on("llvm-openmp", when="+openmp %apple-clang", type="build") @@ -792,7 +459,6 @@ def url_for_version(self, version): conflicts("+user-phonon", when="~kspace") conflicts("+phonon", when="~kspace") conflicts("%gcc@9:", when="@:20200303+openmp") - conflicts("+kokkos", when="@:20200227") conflicts("+dielectric", when="~kspace") conflicts("+dielectric", when="@:20210702~user-misc") conflicts("+dielectric", when="@20210728:~extra-pair") diff --git a/repos/spack_repo/builtin/packages/lammps_example_plugin/package.py b/repos/spack_repo/builtin/packages/lammps_example_plugin/package.py index e05278643eb..afce61b9491 100644 --- a/repos/spack_repo/builtin/packages/lammps_example_plugin/package.py +++ b/repos/spack_repo/builtin/packages/lammps_example_plugin/package.py @@ -27,21 +27,12 @@ class LammpsExamplePlugin(CMakePackage): # marked deprecated=True # * patch releases older than a stable release should be marked deprecated=True version("develop", branch="develop") - version( - "20240829", - sha256="6112e0cc352c3140a4874c7f74db3c0c8e30134024164509ecf3772b305fde2e", - preferred=True, - ) + version("20240829", sha256="6112e0cc352c3140a4874c7f74db3c0c8e30134024164509ecf3772b305fde2e") version("20240627", sha256="2174a99d266279823a8c57629ee1c21ec357816aefd85f964d9f859fe9222aa5") version("20240417", sha256="158b288725c251fd8b30dbcf61749e0d6a042807da92af865a7d3c413efdd8ea") version( "20240207.1", sha256="3ba62c2a1ed463fceedf313a1c3ea2997994aa102379a8d35b525ea424f56776" ) - version( - "20240207", - sha256="d518f32de4eb2681f2543be63926411e72072dd7d67c1670c090b5baabed98ac", - deprecated=True, - ) version("20231121", sha256="704d8a990874a425bcdfe0245faf13d712231ba23f014a3ebc27bc14398856f1") version( "20230802.4", sha256="6eed007cc24cda80b5dd43372b2ad4268b3982bb612669742c8c336b79137b5b" diff --git a/repos/spack_repo/builtin/packages/lapackpp/package.py b/repos/spack_repo/builtin/packages/lapackpp/package.py index e75e5c514b5..4e1e7491b88 100644 --- a/repos/spack_repo/builtin/packages/lapackpp/package.py +++ b/repos/spack_repo/builtin/packages/lapackpp/package.py @@ -14,6 +14,7 @@ _versions = [ # LAPACK++, BLAS++ ["master", "master"], + ["2025.05.28", "2025.05.28"], ["2024.10.26", "2024.10.26"], ["2024.05.31", "2024.05.31"], ["2023.11.05", "2023.11.05"], @@ -41,6 +42,9 @@ class Lapackpp(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") version("master", branch="master") + version( + "2025.05.28", sha256="cd436665cf6320ec3b1ef61d681a6d357e5b159db6d20171401d098c75fe9006" + ) version( "2024.10.26", sha256="67f81f585a7ac89b779c79297cab75cc23d2492cb5055c2348381ebdb751821d" ) diff --git a/repos/spack_repo/builtin/packages/latex2html/package.py b/repos/spack_repo/builtin/packages/latex2html/package.py index 7a8019db5a9..cc3069e2fd3 100644 --- a/repos/spack_repo/builtin/packages/latex2html/package.py +++ b/repos/spack_repo/builtin/packages/latex2html/package.py @@ -22,6 +22,8 @@ class Latex2html(AutotoolsPackage): license("GPL-2.0-only") version("master", branch="master") + version("2026", sha256="f91c0c9bc8dbcadbba883f912f9d1cd2382b563fd754456488a95c120f24331e") + version("2025", sha256="d6f4e9f674994c82cbdff5a39441258add4a8822087fc0d418c0a697dbf3d191") version("2024.2", sha256="d99c5963d802edf1516a6301a5275edd54014bea2ca924f8752aacab0cdd23fd") version("2024", sha256="554a51f83431683521b9e47a19edf07c90960feb040048a08ad8301bdca2c6fa") version("2023.2", sha256="2a3f50621a71c9c0c425fb6709ae69bb2cf4df4bfe72ac661c2ea302e5aba185") @@ -118,7 +120,7 @@ def configure_args(self): else: # This should be the only needed code if texlive where # to set its proper dependent_build_environment - exe = which(p) + exe = which(p, required=True) if exe: args.append("--with-{0}={1}".format(p, str(exe))) if spec.satisfies("+svg"): @@ -127,7 +129,7 @@ def configure_args(self): if os.path.exists(exe): args.append("--with-{0}={1}".format(p, exe)) else: - exe = which(p) + exe = which(p, required=True) if exe: args.append("--with-{0}={1}".format(p, str(exe))) diff --git a/repos/spack_repo/builtin/packages/launchmon/package.py b/repos/spack_repo/builtin/packages/launchmon/package.py index a7112148572..dcdf05f824c 100644 --- a/repos/spack_repo/builtin/packages/launchmon/package.py +++ b/repos/spack_repo/builtin/packages/launchmon/package.py @@ -17,6 +17,11 @@ class Launchmon(AutotoolsPackage): maintainers("lee218llnl") version("master", branch="master") + version( + "1.2.1", + sha256="dcd5744b34076c009d6e9436c7b858eb862542eab558ce47e474c18079f510d9", + url="https://github.com/LLNL/LaunchMON/releases/download/v1.2.1/launchmon-1.2.1.tar.gz", + ) version( "1.2.0", sha256="edba70b8a283337dd4fda64192ba4fa36b7ada3f150340349b8681bcddcebda4", diff --git a/repos/spack_repo/builtin/packages/laynii/limits.patch b/repos/spack_repo/builtin/packages/laynii/limits.patch new file mode 100644 index 00000000000..be9d87690fc --- /dev/null +++ b/repos/spack_repo/builtin/packages/laynii/limits.patch @@ -0,0 +1,12 @@ +diff --git a/dep/laynii_lib.h b/dep/laynii_lib.h +index 4d470af..23eb3e2 100644 +--- a/dep/laynii_lib.h ++++ b/dep/laynii_lib.h +@@ -6,6 +6,7 @@ + #include + #include + #include ++#include + #include "./nifti2_io.h" + + using namespace std; diff --git a/repos/spack_repo/builtin/packages/laynii/package.py b/repos/spack_repo/builtin/packages/laynii/package.py index b24783c12ce..b4c34514462 100644 --- a/repos/spack_repo/builtin/packages/laynii/package.py +++ b/repos/spack_repo/builtin/packages/laynii/package.py @@ -17,12 +17,17 @@ class Laynii(MakefilePackage): license("BSD-3-Clause") + version("2.10.0", sha256="9b1647fbe97816b199fb2449c19c04380f0c4a20c835eca3c6a57c0dbfe96830") + version("2.8.0", sha256="b0747dd86744ee94970a4bc64448f1216dfc98714f064d46773aa6c34b81b305") version("2.7.0", sha256="f0f45c6e80afaca1d89a4721dda70f152c175434e19358974a221ef9c713826b") depends_on("cxx", type="build") depends_on("zlib") + # Add missing limits header + patch("limits.patch", when="@2.8") + def edit(self, spec, prefix): pass diff --git a/repos/spack_repo/builtin/packages/lazygit/package.py b/repos/spack_repo/builtin/packages/lazygit/package.py index cf15f1c42a9..f034b7173dd 100644 --- a/repos/spack_repo/builtin/packages/lazygit/package.py +++ b/repos/spack_repo/builtin/packages/lazygit/package.py @@ -14,10 +14,12 @@ class Lazygit(GoPackage): homepage = "https://github.com/jesseduffield/lazygit" url = "https://github.com/jesseduffield/lazygit/archive/refs/tags/v0.40.2.tar.gz" - maintainers("twrs") + maintainers("trws", "Chrismarsh") license("MIT") + version("0.59.0", sha256="f78fca0ddbff18f7a5a8d04ba582354b98f2e42d181421090638e4ecfcdfd33c") + version("0.58.1", sha256="e4f0d4f3cebc70a802f95c52265e34ee879265103ebb70b5dd449ae791d0cbbb") version("0.52.0", sha256="2d6b045105cca36fb4a9ea9fa8834bab70f99a71dcb6f7a1aea11184ac1f66f8") version("0.44.1", sha256="02b67d38e07ae89b0ddd3b4917bd0cfcdfb5e158ed771566d3eb81f97f78cc26") version("0.41.0", sha256="f2176fa253588fe4b7118bf83f4316ae3ecb914ae1e99aad8c474e23cea49fb8") @@ -25,7 +27,15 @@ class Lazygit(GoPackage): # the go version is noted at # https://github.com/jesseduffield/lazygit/blob/master/go.mod#L3 - depends_on("go@1.20:", type="build", when="@0.40:") - depends_on("go@1.21:", type="build", when="@0.41:") - depends_on("go@1.22:", type="build", when="@0.42:") + depends_on("go@1.25:", type="build", when="@0.58.1:") depends_on("go@1.24:", type="build", when="@0.52:") + depends_on("go@1.22:", type="build", when="@0.42:") + depends_on("go@1.21:", type="build", when="@0.41:") + depends_on("go@1.20:", type="build", when="@0.40:") + + # https://github.com/jesseduffield/lazygit/blob/master/pkg/app/app.go#L143 + depends_on("git@2.32:", type="run", when="@0.58.1:") + + # https://github.com/jesseduffield/lazygit/blob/v0.52.0/pkg/app/app.go#L151 + depends_on("git@2.22:", type="run", when="@0.52.0") + depends_on("git@2.20:", type="run", when="@:0.44.1") diff --git a/repos/spack_repo/builtin/packages/lbann/package.py b/repos/spack_repo/builtin/packages/lbann/package.py index 046995b13eb..e36c2582dd1 100644 --- a/repos/spack_repo/builtin/packages/lbann/package.py +++ b/repos/spack_repo/builtin/packages/lbann/package.py @@ -43,11 +43,6 @@ class Lbann(CachedCMakePackage, CudaPackage, ROCmPackage): version("benchmarking", branch="benchmarking") version("0.104", sha256="a847c7789082ab623ed5922ab1248dd95f5f89d93eed44ac3d6a474703bbc0bf") version("0.103", sha256="9da1bf308f38323e30cb07f8ecf8efa05c7f50560e8683b9cd961102b1b3e25a") - version( - "0.102", - sha256="3734a76794991207e2dd2221f05f0e63a86ddafa777515d93d99d48629140f1a", - deprecated=True, - ) variant( "build_type", @@ -64,8 +59,7 @@ class Lbann(CachedCMakePackage, CudaPackage, ROCmPackage): "distconv", default=False, sticky=True, - description="Builds with support for spatial, filter, or channel " - "distributed convolutions", + description="Builds with support for spatial, filter, or channel distributed convolutions", ) variant( "dtype", @@ -239,7 +233,7 @@ class Lbann(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("py-setuptools", type="build", when="+pfe") depends_on("py-protobuf@3.10.0:4.21.12", type=("build", "run"), when="+pfe") - depends_on("protobuf@3.10.0:3.21.12") + depends_on("protobuf@3.10.0:21.12") depends_on("zlib-api", when="^protobuf@3.11.0:") # using cereal@1.3.1 and above requires changing the diff --git a/repos/spack_repo/builtin/packages/lbzip2/package.py b/repos/spack_repo/builtin/packages/lbzip2/package.py deleted file mode 100644 index cd87eb35d0f..00000000000 --- a/repos/spack_repo/builtin/packages/lbzip2/package.py +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage - -from spack.package import * - - -class Lbzip2(AutotoolsPackage): - """Multi-threaded compression utility with support for bzip2 - compressed file format""" - - homepage = "https://github.com/kjn/lbzip2/" - url = "https://github.com/kjn/lbzip2/archive/refs/tags/v2.5.tar.gz" - - depends_on("c", type="build") - - depends_on("autoconf", type="build") - depends_on("automake", type="build") - depends_on("libtool", type="build") - - version( - "2.5", - sha256="7be69ece83ecdc8f12b9201d838eee5cdb499f2fd68cffd2af58866076ccac43", - deprecated=True, - ) diff --git a/repos/spack_repo/builtin/packages/lcals/package.py b/repos/spack_repo/builtin/packages/lcals/package.py index 1edfd65c060..509a5740dd3 100644 --- a/repos/spack_repo/builtin/packages/lcals/package.py +++ b/repos/spack_repo/builtin/packages/lcals/package.py @@ -78,14 +78,14 @@ def build_targets(self): if arch == "MIC" or (microarch == "sse" and arch == "x86"): cxxflags += "-DLCALS_PLATFORM_X86_SSE -DLCALS_COMPILER_GNU " cxx_compile += ( - "-Ofast -msse4.1 -finline-functions" " -finline-limit=10000 -std=c++11 " + "-Ofast -msse4.1 -finline-functions -finline-limit=10000 -std=c++11 " ) elif microarch == "avx" and arch == "x86": cxxflags += "-DLCALS_PLATFORM_X86_AVX -DLCALS_COMPILER_GNU " - cxx_compile += "-Ofast -mavx -finline-functions" " -finline-limit=10000 -std=c++11" + cxx_compile += "-Ofast -mavx -finline-functions -finline-limit=10000 -std=c++11" elif arch == "aarch64": cxxflags += "-DLCALS_COMPILER_GNU " - cxx_compile += "-Ofast -finline-functions" " -finline-limit=10000 -std=c++11" + cxx_compile += "-Ofast -finline-functions -finline-limit=10000 -std=c++11" cxxflags += self.compiler.openmp_flag targets.append("LCALS_ARCH=") diff --git a/repos/spack_repo/builtin/packages/lcio/package.py b/repos/spack_repo/builtin/packages/lcio/package.py index 7f52e197e89..021654e08ff 100644 --- a/repos/spack_repo/builtin/packages/lcio/package.py +++ b/repos/spack_repo/builtin/packages/lcio/package.py @@ -22,6 +22,9 @@ class Lcio(CMakePackage): license("BSD-3-Clause") version("master", branch="master") + version("2.23.2", sha256="ab16e14df93e3f140892106626e6241cf311e78eb450aff5bff01430edbad9ae") + version("2.23.1", sha256="be418cf09ea50734f00168f94f4e7175fbb0987edf7caf4a591561903d3ebb82") + version("2.23", sha256="8e56b96e0957173acc22fd4360d2002f4ebc8b5acb704ad7359b855f6d453896") version("2.22.6", sha256="69271f021198d15390a0134110ab5c1cbeea9a183cef3f94f0d1ee91fa4748bb") version("2.22.5", sha256="a756521a2419f8d25d4a4f1bab0008e16c9947020d015f2f6ce457ab0a0429bf") version("2.22.4", sha256="5d60eeb4df8611059f4bc839ac098f5d7e3608a662591e9cbae48aed07995514") @@ -61,6 +64,7 @@ class Lcio(CMakePackage): "20", # c++17 became minimum with 2.18 conditional("17", "20", when="@2.18:"), + conditional("17,", "20", "23", when="@2.23:"), ), multi=False, description="Use the specified C++ standard when building.", diff --git a/repos/spack_repo/builtin/packages/lcov/package.py b/repos/spack_repo/builtin/packages/lcov/package.py index b36bfad0ad6..7f84f2c7627 100644 --- a/repos/spack_repo/builtin/packages/lcov/package.py +++ b/repos/spack_repo/builtin/packages/lcov/package.py @@ -22,6 +22,8 @@ class Lcov(MakefilePackage): license("GPL-2.0-or-later") version("master", branch="master") + version("2.3.2", sha256="6fed6cf48757d5083202be3356dfa6d64afa12d96d691745fad7e4c9ebe90bfa") + version("2.3.1", sha256="b3017679472d5fcca727254493d0eb44253c564c2c8384f86965ba9c90116704") version("2.0", sha256="1857bb18e27abe8bcec701a907d5c47e01db4d4c512fc098d1a6acd29267bf46") version("1.16", sha256="987031ad5528c8a746d4b52b380bc1bffe412de1f2b9c2ba5224995668e3240b") version("1.15", sha256="c1cda2fa33bec9aa2c2c73c87226cfe97de0831887176b45ee523c5e30f8053a") diff --git a/repos/spack_repo/builtin/packages/ldak/package.py b/repos/spack_repo/builtin/packages/ldak/package.py index 11b545bd37e..1f3264afc99 100644 --- a/repos/spack_repo/builtin/packages/ldak/package.py +++ b/repos/spack_repo/builtin/packages/ldak/package.py @@ -18,11 +18,6 @@ class Ldak(Package): license("GPL-3.0-only") version("5.2", sha256="ba3de4eb4f2d664b3c2a54bef2eb66d1a498ac423179e97a5795d010161b1805") - version( - "5.1", - sha256="ae3eb8c2ef31af210e138336fd6edcd0e3a26ea9bae89fd6c0c6ea33e3a1517e", - deprecated=True, - ) variant("glpk", default=False, description="Use glpk instead of vendored qsopt") diff --git a/repos/spack_repo/builtin/packages/ldc/package.py b/repos/spack_repo/builtin/packages/ldc/package.py index e846dc7e8bf..116fcb9fb2c 100644 --- a/repos/spack_repo/builtin/packages/ldc/package.py +++ b/repos/spack_repo/builtin/packages/ldc/package.py @@ -37,8 +37,6 @@ class Ldc(CMakePackage): depends_on("binutils", type=("build", "link", "run")) depends_on("ldc-bootstrap", type=("build", "link")) - provides("D@2") - def cmake_args(self): ldmd2 = self.spec["ldc-bootstrap"].prefix.bin.ldmd2 diff --git a/repos/spack_repo/builtin/packages/legion/package.py b/repos/spack_repo/builtin/packages/legion/package.py index 45e1f408b47..903f8c62409 100644 --- a/repos/spack_repo/builtin/packages/legion/package.py +++ b/repos/spack_repo/builtin/packages/legion/package.py @@ -11,7 +11,7 @@ from spack.package import * -class Legion(CMakePackage, ROCmPackage): +class Legion(CMakePackage, CudaPackage, ROCmPackage): """Legion is a data-centric parallel programming system for writing portable high performance programs targeted at distributed heterogeneous architectures. Legion presents abstractions which allow programmers to @@ -30,8 +30,12 @@ class Legion(CMakePackage, ROCmPackage): license("Apache-2.0") - maintainers("pmccormick", "streichler", "elliottslaughter") + maintainers("pmccormick", "streichler", "elliottslaughter", "rbberger") tags = ["e4s"] + version("26.03.0", tag="legion-26.03.0", commit="b95c7bfdbdf564eac57f9ace73c394acea4ac216") + version("25.12.0", tag="legion-25.12.0", commit="6f710cb46590b04ad299362819fdecb3a4e429ca") + version("25.09.0", tag="legion-25.09.0", commit="8759d840099a138b5f395e86c841848520b34b73") + version("25.06.0", tag="legion-25.06.0", commit="d8e35c48d089014b0f764181b7b90278a7558b21") version("25.03.0", tag="legion-25.03.0", commit="04716e3b3686d4af71e6a4398dfbe8cd869c057b") version("24.12.0", tag="legion-24.12.0", commit="2f087ebe433a19f9a3abd05382f951027933bad9") version("24.09.0", tag="legion-24.09.0", commit="4a03402467547b99530042cfe234ceec2cd31b2e") @@ -40,67 +44,11 @@ class Legion(CMakePackage, ROCmPackage): version("23.12.0", tag="legion-23.12.0", commit="8fea67ee694a5d9fb27232a7976af189d6c98456") version("23.09.0", tag="legion-23.09.0", commit="7304dfcf9b69005dd3e65e9ef7d5bd49122f9b49") version("23.06.0", tag="legion-23.06.0", commit="7b5ff2fb9974511c28aec8d97b942f26105b5f6d") - version( - "23.03.0", - tag="legion-23.03.0", - commit="12f6051c9d75229d00ac0b31d6be1ff2014f7e6a", - deprecated=True, - ) - version( - "22.12.0", - tag="legion-22.12.0", - commit="9ed6f4d6b579c4f17e0298462e89548a4f0ed6e5", - deprecated=True, - ) - version( - "22.09.0", - tag="legion-22.09.0", - commit="5b6e013ad74fa6b4c5a24cbb329c676b924550a9", - deprecated=True, - ) - version( - "22.06.0", - tag="legion-22.06.0", - commit="f721be968fb969339334b07a3175a0400700eced", - deprecated=True, - ) - version( - "22.03.0", - tag="legion-22.03.0", - commit="bf6ce4560c99397da4a5cf61a306b521ec7069d0", - deprecated=True, - ) - version( - "21.12.0", - tag="legion-21.12.0", - commit="e1443112edaa574804b3b9d2a24803e937b127fd", - deprecated=True, - ) - version( - "21.09.0", - tag="legion-21.09.0", - commit="5a991b714cf55c3eaa513c7a18abb436d86a0a90", - deprecated=True, - ) - version( - "21.06.0", - tag="legion-21.06.0", - commit="30e00fa6016527c4cf60025a461fb7865f8def6b", - deprecated=True, - ) - version( - "21.03.0", - tag="legion-21.03.0", - commit="0cf9ddd60c227c219c8973ed0580ddc5887c9fb2", - deprecated=True, - ) version("stable", branch="stable") version("master", branch="master") # Old control replication commits used by FleCSI releases, prior to 24.03.0 version("cr-20230307", commit="435183796d7c8b6ac1035a6f7af480ded750f67d", deprecated=True) - version("cr-20210122", commit="181e63ad4187fbd9a96761ab3a52d93e157ede20", deprecated=True) - version("cr-20191217", commit="572576b312509e666f2d72fafdbe9d968b1a6ac3", deprecated=True) depends_on("c", type="build") depends_on("cxx", type="build") @@ -108,48 +56,86 @@ class Legion(CMakePackage, ROCmPackage): depends_on("cmake@3.16:", when="@21.03.0:24.12.0", type="build") depends_on("cmake@3.22:", when="@25.03.0:", type="build") + + depends_on("realm", when="@25.09.0:") + depends_on("realm+shared", when="@25.09.0: +shared") + depends_on("realm+kokkos", when="@25.09.0: +kokkos") + depends_on("realm+hdf5", when="@25.09.0: +hdf5") + depends_on("realm+hwloc", when="@25.09.0: +hwloc") + depends_on("realm+openmp", when="@25.09.0: +openmp") + depends_on("realm+sysomp", when="@25.09.0: +sysomp") + depends_on("realm+cuda", when="@25.09.0: +cuda") + depends_on("realm+rocm", when="@25.09.0: +rocm") + depends_on("realm+cuda_unsupported_compiler", when="@25.09.0: +cuda_unsupported_compiler") + + depends_on("realm@26:", when="@26:") + depends_on("realm@25:", when="@25.09.0:") + + for d in range(1, 10): + depends_on(f"realm max_dims={d}", when=f"@25.09.0: max_dims={d}") + + # force same compiler as kokkos if static build + depends_on("kokkos %gcc", when="+kokkos~shared %gcc") + depends_on("kokkos %clang", when="+kokkos~shared %clang") + # TODO: Need to spec version of MPI v3 for use of the low-level MPI transport # layer. At present the MPI layer is still experimental and we discourge its # use for general (not legion development) use cases. - depends_on("mpi", when="network=mpi") - depends_on("mpi", when="network=gasnet") # MPI is required to build gasnet (needs mpicc). - depends_on("ucx", when="network=ucx") - depends_on("ucc", when="network=ucx @25.03.0:") - depends_on("ucc+cuda+nccl", when="network=ucx +cuda @25.03.0:") - depends_on("ucc+rocm+rccl", when="network=ucx +rocm @25.03.0:") - depends_on("ucx", when="conduit=ucx") - depends_on("mpi", when="conduit=mpi") + depends_on("mpi", when="@:25.06.0 network=mpi") + depends_on( + "mpi", when="@:25.06.0 network=gasnet" + ) # MPI is required to build gasnet (needs mpicc). + depends_on("ucx", when="@:25.06.0 network=ucx") + depends_on("ucc", when="@25.03.0:25.06.0 network=ucx") + depends_on("ucc+cuda+nccl", when="network=ucx +cuda @25.03.0:25.06.0") + depends_on("ucc+rocm+rccl", when="network=ucx +rocm @25.03.0:25.06.0") + depends_on("ucx", when="conduit=ucx @:25.06.0") + depends_on("mpi", when="conduit=mpi @:25.06.0") depends_on("cuda@10.0:11.9", when="+cuda_unsupported_compiler @21.03.0:23.03.0") depends_on("cuda@10.0:11.9", when="+cuda @21.03.0:23.03.0") - depends_on("cuda@11.7:12.8", when="+cuda_unsupported_compiler @23.06.0:") - depends_on("cuda@11.7:12.8", when="+cuda @23.06.0:") + depends_on("cuda@11.7:12.8", when="+cuda_unsupported_compiler @23.06.0:24.12.0") + depends_on("cuda@11.7:12.8", when="+cuda @23.06.0:24.12.0") depends_on("hip@5.1:5.7", when="+rocm @23.03.0:23.12.0") depends_on("hip@5.1:", when="+rocm") depends_on("hdf5", when="+hdf5") depends_on("hwloc", when="+hwloc") - depends_on("libfabric", when="network=gasnet conduit=ofi-slingshot11") + depends_on("libfabric", when="@:25.06.0 network=gasnet conduit=ofi-slingshot11") + + depends_on("gasnet", when="@25.09.0: ^realm network=gasnet") + + # Kokkos + depends_on("kokkos", when="@:25.06.0,stable +kokkos") + depends_on("kokkos", when="+kokkos~shared") + + # OpenMP backend + depends_on("kokkos+openmp", when="@:25.06.0,stable +kokkos+openmp") + depends_on("kokkos~openmp", when="@:25.06.0,stable +kokkos~openmp") # cuda-centric cuda_arch_list = CudaPackage.cuda_arch_values for arch in cuda_arch_list: - depends_on(f"ucc cuda_arch={arch}", when=f"@25.03.0: network=ucx +cuda cuda_arch={arch}") + # UCX transport dependency when using CUDA depends_on( - f"kokkos@3.3.01:+cuda+cuda_lambda+wrapper cuda_arch={arch}", - when=f"+kokkos+cuda cuda_arch={arch} %gcc", + f"ucc cuda_arch={arch}", when=f"@25.03.0:25.06.0 network=ucx +cuda cuda_arch={arch}" ) depends_on( - f"kokkos@3.3.01:+cuda+cuda_lambda~wrapper cuda_arch={arch}", - when=f"+kokkos+cuda cuda_arch={arch} %clang", + f"kokkos+cuda+cuda_lambda+wrapper cuda_arch={arch}", + when=f"@:25.06.0 +kokkos+cuda cuda_arch={arch} %gcc", ) - - depends_on("kokkos@3.3.01:~cuda", when="+kokkos~cuda") - depends_on("kokkos@3.3.01:~cuda+openmp", when="+kokkos+openmp") + depends_on( + f"kokkos+cuda+cuda_lambda~wrapper cuda_arch={arch}", + when=f"@:25.06.0 +kokkos+cuda cuda_arch={arch} %clang", + ) + depends_on(f"realm cuda_arch={arch}", when=f"@25.09.0: +cuda cuda_arch={arch}") # https://github.com/spack/spack/issues/37232#issuecomment-1553376552 patch("hip-offload-arch.patch", when="@23.03.0 +rocm") def patch(self): - if self.spec.satisfies("network=gasnet conduit=ofi-slingshot11") and ( + if self.spec.satisfies("@25.09.0:"): + # conflicts with Realm FindGASNet.cmake + force_remove("cmake/FindGASNet.cmake") + if self.spec.satisfies("@:25.06.0 network=gasnet conduit=ofi-slingshot11") and ( self.spec.satisfies("^[virtuals=mpi] cray-mpich+wrappers") or self.spec.satisfies("^[virtuals=mpi] mpich netmod=ofi ^libfabric fabrics=cxi") or self.spec.satisfies("^[virtuals=mpi] openmpi fabrics=ofi ^libfabric fabrics=cxi") @@ -179,11 +165,16 @@ def patch(self): for arch in ROCmPackage.amdgpu_targets: depends_on( - f"ucc amdgpu_target={arch}", when=f"@25.03.0: network=ucx +rocm amdgpu_target={arch}" + f"ucc amdgpu_target={arch}", + when=f"@25.03.0:25.06.0 network=ucx +rocm amdgpu_target={arch}", ) - depends_on(f"kokkos@3.3.01:+rocm amdgpu_target={arch}", when=f"+rocm amdgpu_target={arch}") + depends_on( + f"kokkos+rocm amdgpu_target={arch}", + when=f"@:25.06.0 +kokkos+rocm amdgpu_target={arch}", + ) + depends_on(f"realm amdgpu_target={arch}", when=f"@25.09.0: +rocm amdgpu_target={arch}") - depends_on("kokkos@3.3.01:+rocm", when="+kokkos+rocm") + depends_on("kokkos+rocm", when="@:25.06.0 +kokkos+rocm") # https://github.com/StanfordLegion/legion/#dependencies depends_on("python@3.8:", when="+python") @@ -192,18 +183,18 @@ def patch(self): depends_on("py-pip", when="+python", type="build") depends_on("py-setuptools", when="+python", type="build") - depends_on("papi", when="+papi") + depends_on("papi", when="@:25.06.0 +papi") depends_on("zlib-api", when="+zlib") # A C++ standard variant to work-around some odd behaviors with apple-clang # but this might be helpful for other use cases down the road. Legion's - # current development policy is C++11 or greater so we capture that aspect + # current development policy is C++17 or greater so we capture that aspect # here. cpp_stds = (conditional("11", "14", when="@:24.03.0"), "17", "20") variant("cxxstd", default="17", description="C++ standard", values=cpp_stds, multi=False) # Network transport layer: the underlying data transport API should be used for - # distributed data movement. For Legion, gasnet is the currently the most + # distributed data movement. For Legion, GASNet and UCX are the most # mature. We have many users that default to using no network layer for # day-to-day development thus we default to 'none'. MPI support is new and # should be considered as a beta release. @@ -213,6 +204,7 @@ def patch(self): values=("gasnet", "mpi", "ucx", "none"), description="The network communications/transport layer to use.", multi=False, + when="@:25.06.0", ) # Add Gasnet tarball dependency in spack managed manner @@ -222,7 +214,7 @@ def patch(self): git="https://github.com/StanfordLegion/gasnet.git", destination="stanfordgasnet", branch="master", - when="network=gasnet", + when="@:25.06.0 network=gasnet", ) # We default to automatically embedding a gasnet build. To override this @@ -240,7 +232,7 @@ def validate_gasnet_root(value): else: return True - with when("network=gasnet"): + with when("@:25.06.0 network=gasnet"): variant( "gasnet_root", default="none", @@ -291,13 +283,6 @@ def validate_gasnet_root(value): default=False, description="Hijack application calls into the CUDA runtime (+cuda).", ) - variant( - "cuda_arch", - default="70", - values=cuda_arch_list, - description="GPU/CUDA architecture to build for.", - multi=False, - ) variant( "cuda_unsupported_compiler", default=False, @@ -326,7 +311,12 @@ def validate_gasnet_root(value): variant("openmp", default=False, description="Enable support for OpenMP within Legion tasks.") - variant("papi", default=False, description="Enable PAPI performance measurements.") + variant( + "papi", + default=False, + description="Enable PAPI performance measurements.", + when="@:25.06.0", + ) variant("python", default=False, description="Enable Python support.") requires("+bindings", when="+python") @@ -374,7 +364,7 @@ def validate_gasnet_root(value): def flag_handler(self, name, flags): if name == "cxxflags": - if self.spec.satisfies("%oneapi@2025:"): + if self.spec.satisfies("%oneapi@2025:") or self.spec.satisfies("%cxx=clang@20:"): flags.append("-Wno-error=missing-template-arg-list-after-template-kw") return (flags, None, None) @@ -433,35 +423,36 @@ def cmake_args(self): if spec.satisfies("+cuda"): cuda_arch = spec.variants["cuda_arch"].value - options.append("-DLegion_USE_CUDA=ON") - options.append("-DLegion_GPU_REDUCTIONS=ON") - options.append("-DLegion_CUDA_ARCH=%s" % cuda_arch) - if spec.satisfies("+cuda_hijack"): - options.append("-DLegion_HIJACK_CUDART=ON") - else: - options.append("-DLegion_HIJACK_CUDART=OFF") + options.append(self.define("Legion_USE_CUDA", True)) + options.append(self.define("Legion_GPU_REDUCTIONS", True)) + options.append(self.define("Legion_CUDA_ARCH", cuda_arch)) + options.append(self.define("Legion_HIJACK_CUDART", spec.satisfies("+cuda_hijack"))) + options.append(from_variant("CMAKE_CUDA_STANDARD", "cxxstd")) if spec.satisfies("+cuda_unsupported_compiler"): - options.append("-DCUDA_NVCC_FLAGS:STRING=--allow-unsupported-compiler") + options.append(self.define("CMAKE_CUDA_FLAGS", "--allow-unsupported-compiler")) + options.append( + self.define("CUDA_NVCC_FLAGS", "--allow-unsupported-compiler") + ) # TODO: still needed? if spec.satisfies("+rocm"): - options.append("-DLegion_USE_HIP=ON") - options.append("-DLegion_GPU_REDUCTIONS=ON") + options.append(self.define("Legion_USE_HIP", True)) + options.append(self.define("Legion_GPU_REDUCTIONS", True)) options.append(from_variant("Legion_HIP_TARGET", "hip_target")) options.append(from_variant("Legion_HIP_ARCH", "amdgpu_target")) options.append(from_variant("Legion_HIJACK_HIP", "hip_hijack")) + options.append(from_variant("CMAKE_HIP_STANDARD", "cxxstd")) if spec.satisfies("@23.03.0:23.12.0"): options.append(self.define("HIP_PATH", f"{spec['hip'].prefix}/hip")) else: options.append(self.define("ROCM_PATH", spec["hip"].prefix)) - if spec.satisfies("+kokkos"): - os.environ["KOKKOS_CXX_COMPILER"] = self["kokkos"].kokkos_cxx - if spec.satisfies("+cuda+cuda_unsupported_compiler ^kokkos+cuda %clang"): - # Keep CMake CUDA compiler detection happy - options.append( - self.define("CMAKE_CUDA_FLAGS", "--allow-unsupported-compiler -std=c++17") - ) + # for shared libraries, realm_kokkos.so will be self contained. + # however, in the static case we need to use the same compiler/wrapper as kokkos globally. + if self.spec.satisfies("~shared+kokkos ^kokkos+wrapper"): + options.append(self.define("CMAKE_CXX_COMPILER", self["kokkos"].kokkos_cxx)) + elif self.spec.satisfies("~shared+kokkos ^kokkos~cmake_lang+rocm"): + options.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc)) maxdims = int(spec.variants["max_dims"].value) # TODO: sanity check if maxdims < 0 || > 9??? @@ -505,7 +496,7 @@ def build(self, spec, prefix): super().build(spec, prefix) if spec.satisfies("+prof"): with working_dir(join_path(self.stage.source_path, "tools", "legion_prof_rs")): - cargo = which("cargo") + cargo = which("cargo", required=True) cargo("install", "--root", "out", "--path", ".", "--all-features", "--locked") def install(self, spec, prefix): @@ -540,8 +531,8 @@ def test_run_local_function_tasks(self): cmake = self.spec["cmake"].command cmake(*cmake_args) - make = which("make") + make = which("make", required=True) make() - exe = which("local_function_tasks") + exe = which("local_function_tasks", required=True) exe() diff --git a/repos/spack_repo/builtin/packages/less/package.py b/repos/spack_repo/builtin/packages/less/package.py index beb0723cf85..b31b032a614 100644 --- a/repos/spack_repo/builtin/packages/less/package.py +++ b/repos/spack_repo/builtin/packages/less/package.py @@ -13,7 +13,7 @@ class Less(AutotoolsPackage): file aswell as forwards.""" homepage = "https://www.greenwoodsoftware.com/less/" - url = "https://www.greenwoodsoftware.com/less/less-551.zip" + url = "https://www.greenwoodsoftware.com/less/less-692.tar.gz" list_url = "https://www.greenwoodsoftware.com/less/download.html" depends_on("ncurses") @@ -22,11 +22,7 @@ class Less(AutotoolsPackage): depends_on("c", type="build") - version("668", sha256="dbc0de59ea9c50e1e8927e6b077858db3a84954e767909bc599e6e6f602c5717") - version("661", sha256="a900e3916738bf8c1a0a2a059810f1c59b8271ac8bb46898c6e921ea6aefd757") - version("643", sha256="3bb417c4b909dfcb0adafc371ab87f0b22e8b15f463ec299d156c495fc9aa196") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2022-46663 - version("590", sha256="69056021c365b16504cf5bd3864436a5e50cb2f98b76cd68b99b457064139375") - version("551", sha256="2630db16ef188e88b513b3cc24daa9a798c45643cc7da06e549c9c00cfd84244") - version("530", sha256="8c1652ba88a726314aa2616d1c896ca8fe9a30253a5a67bc21d444e79a6c6bc3") + version("692", sha256="61300f603798ecf1d7786570789f0ff3f5a1acf075a6fb9f756837d166e37d14") + version("668", sha256="2819f55564d86d542abbecafd82ff61e819a3eec967faa36cd3e68f1596a44b8") + version("661", sha256="2b5f0167216e3ef0ffcb0c31c374e287eb035e4e223d5dae315c2783b6e738ed") + version("643", sha256="2911b5432c836fa084c8a2e68f6cd6312372c026a58faaa98862731c8b6052e8") diff --git a/repos/spack_repo/builtin/packages/lfortran/package.py b/repos/spack_repo/builtin/packages/lfortran/package.py index 72d8e57cf1e..8b7d47a0b37 100644 --- a/repos/spack_repo/builtin/packages/lfortran/package.py +++ b/repos/spack_repo/builtin/packages/lfortran/package.py @@ -19,6 +19,7 @@ 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.61.0", sha256="e832c1d76c371da7a7e11ef9e7b686d9047788136dcfb20093da5dc165fcd20f") version("0.54.0", sha256="a46c44f8398ed0d14ca051a08982a3001642449c06a3be1c30944c3e027bbf51") version("0.49.0", sha256="a9225fd33d34ce786f72a964a1179579caff62dd176a6a1477d2594fecdc7cd6") version("0.30.0", sha256="aafdfbfe81d69ceb3650ae1cf9bcd8a1f1532d895bf88f3071fe9610859bcd6f") @@ -38,6 +39,7 @@ class Lfortran(CMakePackage): depends_on("python@3:", type="build", when="@main") depends_on("cmake", type="build") + depends_on("cmake@3.22:", type="build", when="+kokkos") depends_on("kokkos", type=("build", "run"), when="+kokkos") depends_on("llvm@11:15", type=("build", "run"), when="@0.19.0+llvm") depends_on("llvm@11:16", type=("build", "run"), when="@0.30.0+llvm") @@ -46,6 +48,8 @@ class Lfortran(CMakePackage): depends_on("re2c", type="build", when="@main") depends_on("bison@:3.4", type="build", when="@main") depends_on("binutils@2.38:", type="build", when="platform=linux") + depends_on("zstd") + depends_on("libunwind") def cmake_args(self): args = [ @@ -54,7 +58,8 @@ def cmake_args(self): self.define_from_variant("WITH_KOKKOS", "kokkos"), ] - if self.spec.satisfies("@0.54.0:"): + # Only call bootstrap script for git checkout + if self.spec.satisfies("@main"): args.append("-DLFORTRAN_BUILD_ALL=yes") return args diff --git a/repos/spack_repo/builtin/packages/lftp/package.py b/repos/spack_repo/builtin/packages/lftp/package.py index 3c47d2556e0..8e00d9f886f 100644 --- a/repos/spack_repo/builtin/packages/lftp/package.py +++ b/repos/spack_repo/builtin/packages/lftp/package.py @@ -16,14 +16,14 @@ class Lftp(AutotoolsPackage): license("GPL-3.0-or-later") + version("4.9.3", sha256="68116cc184ab660a78a4cef323491e89909e5643b59c7b5f0a14f7c2b20e0a29") version("4.9.2", sha256="a37589c61914073f53c5da0e68bd233b41802509d758a022000e1ae2076da733") version("4.8.1", sha256="6117866215cd889dab30ff73292cd1d35fe0e12a9af5cd76d093500d07ab65a3") version("4.7.7", sha256="7bce216050094a1146ed05bed8fe5b3518224764ffe98884a848d44dc76fff8f") version("4.6.4", sha256="791e783779d3d6b519d0c23155430b9785f2854023eb834c716f5ba78873b15a") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("expat") depends_on("gettext") depends_on("iconv") diff --git a/repos/spack_repo/builtin/packages/lhapdfsets/package.py b/repos/spack_repo/builtin/packages/lhapdfsets/package.py index 78854c48953..70ac37031e9 100644 --- a/repos/spack_repo/builtin/packages/lhapdfsets/package.py +++ b/repos/spack_repo/builtin/packages/lhapdfsets/package.py @@ -19,7 +19,7 @@ class Lhapdfsets(BundlePackage): maintainers("vvolkl", "wdconinc") - version("6.3.0") + version("6.5.5") depends_on("lhapdf", type="build") depends_on("tar", type="build") @@ -32,28 +32,30 @@ class Lhapdfsets(BundlePackage): variant( "sets", - description="Individiual lhapdf sets to install", - values=("all", "default"), + description="Individiual lhapdf sets to install (all, default, or comma-separated list)", + multi=True, default="default", ) def install(self, spec, prefix): mkdirp(self.prefix.share.lhapdfsets) - tar = which("tar") - curl = which("curl") + tar = which("tar", required=True) + curl = which("curl", required=True) sets = self.spec.variants["sets"].value - if sets == "all": - # parse set names from index file - all_sets = [ - _line.split()[1] - for _line in open( - join_path(os.path.dirname(__file__), "pdfsets.index") - ).readlines() - ] - sets = all_sets - elif sets == "default": - default_sets = ["MMHT2014lo68cl", "MMHT2014nlo68cl", "CT14lo", "CT14nlo"] - sets = default_sets + if len(sets) == 1: + if sets[0] == "all": + # parse set names from index file + all_sets = [ + _line.split()[1] + for _line in open( + join_path(os.path.dirname(__file__), "pdfsets.index") + ).readlines() + ] + sets = all_sets + elif sets[0] == "default": + default_sets = ["MMHT2014lo68cl", "MMHT2014nlo68cl", "CT14lo", "CT14nlo"] + sets = default_sets + with working_dir(self.prefix.share.lhapdfsets): for s in sets: _filename = "%s.tar.gz" % s @@ -81,4 +83,4 @@ def determine_spec_details(cls, prefix, exes_in_prefix): return None # unfortunately the sets are not versioned - # just hardcode the current version and hope it is fine - return Spec.from_detection("lhapdfsets@6.3.0", external_path=path) + return Spec.from_detection("lhapdfsets@6.5.5", external_path=path) diff --git a/repos/spack_repo/builtin/packages/lhapdfsets/pdfsets.index b/repos/spack_repo/builtin/packages/lhapdfsets/pdfsets.index index 06deb88ca6d..2108b1893b6 100644 --- a/repos/spack_repo/builtin/packages/lhapdfsets/pdfsets.index +++ b/repos/spack_repo/builtin/packages/lhapdfsets/pdfsets.index @@ -2,7 +2,12 @@ 252 GRVPI1 1 270 xFitterPI_NLO_EIG 1 280 xFitterPI_NLO_VAR 1 -10000 cteq6 -1 +1000 JAM21PionPDFnlo 1 +2000 JAM21PionPDFnlo_pT 1 +3000 JAM21PionPDFnlonll_cosine 1 +4000 JAM21PionPDFnlonll_expansion 1 +5000 JAM21PionPDFnlonll_double_Mellin 1 +6000 MAP23Pion_PRVnlo 1 10042 cteq6l1 4 10150 cteq61 1 10550 cteq66 1 @@ -130,133 +135,153 @@ 13400 CT14qed_inc_proton 1 13450 CT14qed_inc_neutron 1 14000 CT18NNLO 1 -14060 CT18NNLO_as_0110 1 -14061 CT18NNLO_as_0111 1 -14062 CT18NNLO_as_0112 1 -14063 CT18NNLO_as_0113 1 -14064 CT18NNLO_as_0114 1 -14065 CT18NNLO_as_0115 1 -14066 CT18NNLO_as_0116 1 -14067 CT18NNLO_as_0117 1 -14068 CT18NNLO_as_0118 1 -14069 CT18NNLO_as_0119 1 -14070 CT18NNLO_as_0120 1 -14071 CT18NNLO_as_0121 1 -14072 CT18NNLO_as_0122 1 -14073 CT18NNLO_as_0123 1 -14074 CT18NNLO_as_0124 1 +14060 CT18NNLO_as_0110 2 +14061 CT18NNLO_as_0111 2 +14062 CT18NNLO_as_0112 2 +14063 CT18NNLO_as_0113 2 +14064 CT18NNLO_as_0114 2 +14065 CT18NNLO_as_0115 2 +14066 CT18NNLO_as_0116 2 +14067 CT18NNLO_as_0117 2 +14068 CT18NNLO_as_0118 2 +14069 CT18NNLO_as_0119 2 +14070 CT18NNLO_as_0120 2 +14071 CT18NNLO_as_0121 2 +14072 CT18NNLO_as_0122 2 +14073 CT18NNLO_as_0123 2 +14074 CT18NNLO_as_0124 2 +14083 CT18NNLO_NF3 1 +14084 CT18NNLO_NF4 1 +14086 CT18NNLO_NF6 1 +14087 CT18FC 1 14100 CT18ZNNLO 1 -14160 CT18ZNNLO_as_0110 1 -14161 CT18ZNNLO_as_0111 1 -14162 CT18ZNNLO_as_0112 1 -14163 CT18ZNNLO_as_0113 1 -14164 CT18ZNNLO_as_0114 1 -14165 CT18ZNNLO_as_0115 1 -14166 CT18ZNNLO_as_0116 1 -14167 CT18ZNNLO_as_0117 1 -14168 CT18ZNNLO_as_0118 1 -14169 CT18ZNNLO_as_0119 1 -14170 CT18ZNNLO_as_0120 1 -14171 CT18ZNNLO_as_0121 1 -14172 CT18ZNNLO_as_0122 1 -14173 CT18ZNNLO_as_0123 1 -14174 CT18ZNNLO_as_0124 1 +14160 CT18ZNNLO_as_0110 2 +14161 CT18ZNNLO_as_0111 2 +14162 CT18ZNNLO_as_0112 2 +14163 CT18ZNNLO_as_0113 2 +14164 CT18ZNNLO_as_0114 2 +14165 CT18ZNNLO_as_0115 2 +14166 CT18ZNNLO_as_0116 2 +14167 CT18ZNNLO_as_0117 2 +14168 CT18ZNNLO_as_0118 2 +14169 CT18ZNNLO_as_0119 2 +14170 CT18ZNNLO_as_0120 2 +14171 CT18ZNNLO_as_0121 2 +14172 CT18ZNNLO_as_0122 2 +14173 CT18ZNNLO_as_0123 2 +14174 CT18ZNNLO_as_0124 2 +14183 CT18ZNNLO_NF3 1 +14184 CT18ZNNLO_NF4 1 +14186 CT18ZNNLO_NF6 1 +14190 CT18LO 1 14200 CT18ANNLO 1 -14260 CT18ANNLO_as_0110 1 -14261 CT18ANNLO_as_0111 1 -14262 CT18ANNLO_as_0112 1 -14263 CT18ANNLO_as_0113 1 -14264 CT18ANNLO_as_0114 1 -14265 CT18ANNLO_as_0115 1 -14266 CT18ANNLO_as_0116 1 -14267 CT18ANNLO_as_0117 1 -14268 CT18ANNLO_as_0118 1 -14269 CT18ANNLO_as_0119 1 -14270 CT18ANNLO_as_0120 1 -14271 CT18ANNLO_as_0121 1 -14272 CT18ANNLO_as_0122 1 -14273 CT18ANNLO_as_0123 1 -14274 CT18ANNLO_as_0124 1 +14260 CT18ANNLO_as_0110 2 +14261 CT18ANNLO_as_0111 2 +14262 CT18ANNLO_as_0112 2 +14263 CT18ANNLO_as_0113 2 +14264 CT18ANNLO_as_0114 2 +14265 CT18ANNLO_as_0115 2 +14266 CT18ANNLO_as_0116 2 +14267 CT18ANNLO_as_0117 2 +14268 CT18ANNLO_as_0118 2 +14269 CT18ANNLO_as_0119 2 +14270 CT18ANNLO_as_0120 2 +14271 CT18ANNLO_as_0121 2 +14272 CT18ANNLO_as_0122 2 +14273 CT18ANNLO_as_0123 2 +14274 CT18ANNLO_as_0124 2 14300 CT18XNNLO 1 -14360 CT18XNNLO_as_0110 1 -14361 CT18XNNLO_as_0111 1 -14362 CT18XNNLO_as_0112 1 -14363 CT18XNNLO_as_0113 1 -14364 CT18XNNLO_as_0114 1 -14365 CT18XNNLO_as_0115 1 -14366 CT18XNNLO_as_0116 1 -14367 CT18XNNLO_as_0117 1 -14368 CT18XNNLO_as_0118 1 -14369 CT18XNNLO_as_0119 1 -14370 CT18XNNLO_as_0120 1 -14371 CT18XNNLO_as_0121 1 -14372 CT18XNNLO_as_0122 1 -14373 CT18XNNLO_as_0123 1 -14374 CT18XNNLO_as_0124 1 +14360 CT18XNNLO_as_0110 2 +14361 CT18XNNLO_as_0111 2 +14362 CT18XNNLO_as_0112 2 +14363 CT18XNNLO_as_0113 2 +14364 CT18XNNLO_as_0114 2 +14365 CT18XNNLO_as_0115 2 +14366 CT18XNNLO_as_0116 2 +14367 CT18XNNLO_as_0117 2 +14368 CT18XNNLO_as_0118 2 +14369 CT18XNNLO_as_0119 2 +14370 CT18XNNLO_as_0120 2 +14371 CT18XNNLO_as_0121 2 +14372 CT18XNNLO_as_0122 2 +14373 CT18XNNLO_as_0123 2 +14374 CT18XNNLO_as_0124 2 14400 CT18NLO 1 -14460 CT18NLO_as_0110 1 -14461 CT18NLO_as_0111 1 -14462 CT18NLO_as_0112 1 -14463 CT18NLO_as_0113 1 -14464 CT18NLO_as_0114 1 -14465 CT18NLO_as_0115 1 -14466 CT18NLO_as_0116 1 -14467 CT18NLO_as_0117 1 -14468 CT18NLO_as_0118 1 -14469 CT18NLO_as_0119 1 -14470 CT18NLO_as_0120 1 -14471 CT18NLO_as_0121 1 -14472 CT18NLO_as_0122 1 -14473 CT18NLO_as_0123 1 -14474 CT18NLO_as_0124 1 +14460 CT18NLO_as_0110 2 +14461 CT18NLO_as_0111 2 +14462 CT18NLO_as_0112 2 +14463 CT18NLO_as_0113 2 +14464 CT18NLO_as_0114 2 +14465 CT18NLO_as_0115 2 +14466 CT18NLO_as_0116 2 +14467 CT18NLO_as_0117 2 +14468 CT18NLO_as_0118 2 +14469 CT18NLO_as_0119 2 +14470 CT18NLO_as_0120 2 +14471 CT18NLO_as_0121 2 +14472 CT18NLO_as_0122 2 +14473 CT18NLO_as_0123 2 +14474 CT18NLO_as_0124 2 +14483 CT18NLO_NF3 1 +14484 CT18NLO_NF4 1 +14486 CT18NLO_NF6 1 14500 CT18ZNLO 1 -14560 CT18ZNLO_as_0110 1 -14561 CT18ZNLO_as_0111 1 -14562 CT18ZNLO_as_0112 1 -14563 CT18ZNLO_as_0113 1 -14564 CT18ZNLO_as_0114 1 -14565 CT18ZNLO_as_0115 1 -14566 CT18ZNLO_as_0116 1 -14567 CT18ZNLO_as_0117 1 -14568 CT18ZNLO_as_0118 1 -14569 CT18ZNLO_as_0119 1 -14570 CT18ZNLO_as_0120 1 -14571 CT18ZNLO_as_0121 1 -14572 CT18ZNLO_as_0122 1 -14573 CT18ZNLO_as_0123 1 -14574 CT18ZNLO_as_0124 1 +14560 CT18ZNLO_as_0110 2 +14561 CT18ZNLO_as_0111 2 +14562 CT18ZNLO_as_0112 2 +14563 CT18ZNLO_as_0113 2 +14564 CT18ZNLO_as_0114 2 +14565 CT18ZNLO_as_0115 2 +14566 CT18ZNLO_as_0116 2 +14567 CT18ZNLO_as_0117 2 +14568 CT18ZNLO_as_0118 2 +14569 CT18ZNLO_as_0119 2 +14570 CT18ZNLO_as_0120 2 +14571 CT18ZNLO_as_0121 2 +14572 CT18ZNLO_as_0122 2 +14573 CT18ZNLO_as_0123 2 +14574 CT18ZNLO_as_0124 2 +14583 CT18ZNLO_NF3 1 +14584 CT18ZNLO_NF4 1 +14586 CT18ZNLO_NF6 1 14600 CT18ANLO 1 -14660 CT18ANLO_as_0110 1 -14661 CT18ANLO_as_0111 1 -14662 CT18ANLO_as_0112 1 -14663 CT18ANLO_as_0113 1 -14664 CT18ANLO_as_0114 1 -14665 CT18ANLO_as_0115 1 -14666 CT18ANLO_as_0116 1 -14667 CT18ANLO_as_0117 1 -14668 CT18ANLO_as_0118 1 -14669 CT18ANLO_as_0119 1 -14670 CT18ANLO_as_0120 1 -14671 CT18ANLO_as_0121 1 -14672 CT18ANLO_as_0122 1 -14673 CT18ANLO_as_0123 1 -14674 CT18ANLO_as_0124 1 +14660 CT18ANLO_as_0110 2 +14661 CT18ANLO_as_0111 2 +14662 CT18ANLO_as_0112 2 +14663 CT18ANLO_as_0113 2 +14664 CT18ANLO_as_0114 2 +14665 CT18ANLO_as_0115 2 +14666 CT18ANLO_as_0116 2 +14667 CT18ANLO_as_0117 2 +14668 CT18ANLO_as_0118 2 +14669 CT18ANLO_as_0119 2 +14670 CT18ANLO_as_0120 2 +14671 CT18ANLO_as_0121 2 +14672 CT18ANLO_as_0122 2 +14673 CT18ANLO_as_0123 2 +14674 CT18ANLO_as_0124 2 14700 CT18XNLO 1 -14760 CT18XNLO_as_0110 1 -14761 CT18XNLO_as_0111 1 -14762 CT18XNLO_as_0112 1 -14763 CT18XNLO_as_0113 1 -14764 CT18XNLO_as_0114 1 -14765 CT18XNLO_as_0115 1 -14766 CT18XNLO_as_0116 1 -14767 CT18XNLO_as_0117 1 -14768 CT18XNLO_as_0118 1 -14769 CT18XNLO_as_0119 1 -14770 CT18XNLO_as_0120 1 -14771 CT18XNLO_as_0121 1 -14772 CT18XNLO_as_0122 1 -14773 CT18XNLO_as_0123 1 -14774 CT18XNLO_as_0124 1 +14760 CT18XNLO_as_0110 2 +14761 CT18XNLO_as_0111 2 +14762 CT18XNLO_as_0112 2 +14763 CT18XNLO_as_0113 2 +14764 CT18XNLO_as_0114 2 +14765 CT18XNLO_as_0115 2 +14766 CT18XNLO_as_0116 2 +14767 CT18XNLO_as_0117 2 +14768 CT18XNLO_as_0118 2 +14769 CT18XNLO_as_0119 2 +14770 CT18XNLO_as_0120 2 +14771 CT18XNLO_as_0121 2 +14772 CT18XNLO_as_0122 2 +14773 CT18XNLO_as_0123 2 +14774 CT18XNLO_as_0124 2 +15000 CT18qed_proton 1 +15100 CT18qed_proton_elastic 1 +15200 CT18qed_proton_inelastic 1 +15300 CT18qed_neutron 1 +15400 CT18qed_neutron_elastic 1 +15500 CT18qed_neutron_inelastic 1 20463 MRST2004qed_proton 3 20465 MRST2004qed_neutron 3 20650 MRST2007lomod 2 @@ -363,12 +388,57 @@ 26300 MMHT2015qed_nnlo 1 26400 MMHT2015qed_nnlo_elastic 1 26500 MMHT2015qed_nnlo_inelastic 1 -27000 MSHT20lo_as130 3 +27000 MSHT20lo_as130 4 27100 MSHT20nlo_as118 3 27200 MSHT20nlo_as120 3 27300 MSHT20nlo_as_smallrange 3 -27400 MSHT20nnlo_as118 3 +27350 MSHT20nlo_as_largerange 1 +27400 MSHT20nnlo_as118 4 27500 MSHT20nnlo_as_smallrange 3 +27550 MSHT20nnlo_as_largerange 1 +27600 MSHT20nlo_nf3 1 +27700 MSHT20nlo_nf4 2 +27800 MSHT20nlo_as120_nf3 2 +27900 MSHT20nlo_as120_nf4 2 +28000 MSHT20nlo_as_smallrange_nf3 2 +28010 MSHT20nlo_as_smallrange_nf4 2 +28020 MSHT20nlo_mcrange_nf3 2 +28030 MSHT20nlo_mcrange_nf4 2 +28040 MSHT20nlo_mcrange_nf5 2 +28050 MSHT20nlo_mbrange_nf3 2 +28060 MSHT20nlo_mbrange_nf4 2 +28070 MSHT20nlo_mbrange_nf5 2 +28080 MSHT20nlo_as120_mcrange_nf3 2 +28090 MSHT20nlo_as120_mcrange_nf4 2 +28100 MSHT20nlo_as120_mcrange_nf5 2 +28110 MSHT20nlo_as120_mbrange_nf3 2 +28120 MSHT20nlo_as120_mbrange_nf4 2 +28130 MSHT20nlo_as120_mbrange_nf5 2 +28200 MSHT20nnlo_nf3 2 +28300 MSHT20nnlo_nf4 2 +28400 MSHT20nnlo_as_smallrange_nf3 2 +28405 MSHT20nnlo_as_smallrange_nf4 2 +28410 MSHT20nnlo_mcrange_nf3 2 +28420 MSHT20nnlo_mcrange_nf4 2 +28430 MSHT20nnlo_mcrange_nf5 2 +28440 MSHT20nnlo_mbrange_nf3 2 +28450 MSHT20nnlo_mbrange_nf4 2 +28460 MSHT20nnlo_mbrange_nf5 2 +28500 MSHT20qed_nnlo 2 +28600 MSHT20qed_nnlo_elastic 3 +28700 MSHT20qed_nnlo_inelastic 2 +28800 MSHT20qed_nnlo_neutron 3 +28900 MSHT20qed_nnlo_neutron_elastic 2 +29000 MSHT20qed_nnlo_neutron_inelastic 2 +29100 MSHT20an3lo_as118 2 +29250 MSHT20an3lo_as118_Kcorr 2 +29400 MSHT20an3lo_as_smallrange 1 +29500 MSHT20qed_lo 1 +29570 MSHT20qed_lo_elastic 1 +29640 MSHT20qed_lo_inelastic 1 +29710 MSHT20qed_an3lo 1 +29810 MSHT20qed_an3lo_elastic 1 +29910 MSHT20qed_an3lo_inelastic 1 33000 GKG18_DPDF_FitA_LO 1 33020 GKG18_DPDF_FitB_LO 1 33040 GKG18_DPDF_FitA_NLO 1 @@ -421,6 +491,7 @@ 43290 ABMP16free_3_nlo 1 43320 ABMP16free_4_nlo 1 43350 ABMP16free_5_nlo 1 +43400 ABMP16_5_nnlo_high_x 1 60600 HERAPDF15NNLO_EIG 1 60630 HERAPDF15NNLO_VAR 1 60650 HERAPDF15NNLO_ALPHAS 1 @@ -508,6 +579,11 @@ 65120 ATLAS-epWZ16-THEO 1 65140 ATLAS-epWZtop18-EIG 1 65180 ATLAS-epWZtop18-VAR 1 +65200 ATLASepWZVjet20-EIG 1 +65240 ATLASepWZVjet20-MOD 1 +65250 ATLASepWZVjet20-PAR 1 +65600 ATLASpdf21_T1 1 +65700 ATLASpdf21_T3 1 69000 CSKK_nnlo_EIG 1 69100 CSKK_nnlo_VAR 1 69200 CSKK_nnlo_THEO 1 @@ -542,6 +618,14 @@ 91900 PDF4LHC15_nnlo_30 2 91950 PDF4LHC15_nnlo_asvar 1 92000 PDF4LHC15_nlo_nf4_30 1 +93000 PDF4LHC21_mc 1 +93100 PDF4LHC21_40 1 +93200 PDF4LHC21_mc_pdfas 1 +93300 PDF4LHC21_40_pdfas 1 +93400 PDF4LHC21_mc_nf4 1 +93500 PDF4LHC21_40_nf4 1 +93600 PDF4LHC21_mc_pdfas_nf4 1 +93700 PDF4LHC21_40_pdfas_nf4 1 100000 nCTEQ15_1_1 1 100050 nCTEQ15_3_2 1 100100 nCTEQ15_4_2 1 @@ -634,6 +718,210 @@ 107000 nCTEQ15npFullNuc_197_98 1 107050 nCTEQ15npFullNuc_207_103 1 107100 nCTEQ15npFullNuc_208_82 1 +108000 nCTEQ15HIX_1_1 2 +108050 nCTEQ15HIX_2_1 2 +108100 nCTEQ15HIX_3_2 2 +108150 nCTEQ15HIX_4_2 2 +108200 nCTEQ15HIX_6_3 2 +108250 nCTEQ15HIX_7_3 2 +108300 nCTEQ15HIX_9_4 2 +108350 nCTEQ15HIX_12_6 2 +108400 nCTEQ15HIX_14_7 2 +108450 nCTEQ15HIX_27_13 2 +108500 nCTEQ15HIX_40_20 2 +108550 nCTEQ15HIX_56_26 2 +108600 nCTEQ15HIX_64_29 2 +108650 nCTEQ15HIX_84_36 2 +108700 nCTEQ15HIX_108_47 2 +108750 nCTEQ15HIX_119_50 2 +108800 nCTEQ15HIX_131_54 2 +108850 nCTEQ15HIX_184_74 2 +108900 nCTEQ15HIX_197_79 2 +108950 nCTEQ15HIX_208_82 2 +110000 nCTEQ15HIX_FullNuc_1_1 3 +110050 nCTEQ15HIX_FullNuc_2_1 3 +110100 nCTEQ15HIX_FullNuc_3_2 3 +110150 nCTEQ15HIX_FullNuc_4_2 3 +110200 nCTEQ15HIX_FullNuc_6_3 3 +110250 nCTEQ15HIX_FullNuc_7_3 3 +110300 nCTEQ15HIX_FullNuc_9_4 3 +110350 nCTEQ15HIX_FullNuc_12_6 3 +110400 nCTEQ15HIX_FullNuc_14_7 3 +110450 nCTEQ15HIX_FullNuc_27_13 3 +110500 nCTEQ15HIX_FullNuc_40_20 3 +110550 nCTEQ15HIX_FullNuc_56_26 3 +110600 nCTEQ15HIX_FullNuc_64_29 3 +110650 nCTEQ15HIX_FullNuc_84_36 3 +110700 nCTEQ15HIX_FullNuc_108_47 3 +110750 nCTEQ15HIX_FullNuc_119_50 3 +110800 nCTEQ15HIX_FullNuc_131_54 3 +110850 nCTEQ15HIX_FullNuc_184_74 3 +110900 nCTEQ15HIX_FullNuc_197_79 3 +110950 nCTEQ15HIX_FullNuc_208_82 3 +112000 nCTEQ15WZ_1_1 2 +112050 nCTEQ15WZ_1_0 2 +112100 nCTEQ15WZ_2_1 2 +112150 nCTEQ15WZ_3_1 2 +112200 nCTEQ15WZ_3_2 2 +112250 nCTEQ15WZ_4_2 2 +112300 nCTEQ15WZ_6_3 2 +112350 nCTEQ15WZ_7_3 2 +112400 nCTEQ15WZ_9_4 2 +112450 nCTEQ15WZ_9_4_iso 2 +112500 nCTEQ15WZ_12_6 2 +112550 nCTEQ15WZ_14_7 2 +112600 nCTEQ15WZ_16_8 2 +112650 nCTEQ15WZ_20_10 2 +112700 nCTEQ15WZ_27_13 2 +112750 nCTEQ15WZ_40_18 2 +112800 nCTEQ15WZ_40_20 2 +112850 nCTEQ15WZ_56_26 2 +112900 nCTEQ15WZ_56_28 2 +112950 nCTEQ15WZ_64_29 2 +113000 nCTEQ15WZ_64_32 2 +113050 nCTEQ15WZ_84_36 2 +113100 nCTEQ15WZ_84_42 2 +113150 nCTEQ15WZ_108_47 2 +113200 nCTEQ15WZ_108_54 2 +113250 nCTEQ15WZ_119_50 2 +113300 nCTEQ15WZ_119_59 2 +113350 nCTEQ15WZ_131_54 2 +113400 nCTEQ15WZ_184_74 2 +113450 nCTEQ15WZ_197_79 2 +113500 nCTEQ15WZ_197_98 2 +113550 nCTEQ15WZ_207_82 2 +113600 nCTEQ15WZ_207_103 2 +113650 nCTEQ15WZ_208_82 2 +114000 nCTEQ15WZ_FullNuc_1_1 3 +114050 nCTEQ15WZ_FullNuc_1_0 3 +114100 nCTEQ15WZ_FullNuc_2_1 3 +114150 nCTEQ15WZ_FullNuc_3_1 3 +114200 nCTEQ15WZ_FullNuc_3_2 3 +114250 nCTEQ15WZ_FullNuc_4_2 3 +114300 nCTEQ15WZ_FullNuc_6_3 3 +114350 nCTEQ15WZ_FullNuc_7_3 3 +114400 nCTEQ15WZ_FullNuc_9_4 3 +114450 nCTEQ15WZ_FullNuc_9_4_iso 3 +114500 nCTEQ15WZ_FullNuc_12_6 3 +114550 nCTEQ15WZ_FullNuc_14_7 3 +114600 nCTEQ15WZ_FullNuc_16_8 3 +114650 nCTEQ15WZ_FullNuc_20_10 3 +114700 nCTEQ15WZ_FullNuc_27_13 3 +114750 nCTEQ15WZ_FullNuc_40_18 3 +114800 nCTEQ15WZ_FullNuc_40_20 3 +114850 nCTEQ15WZ_FullNuc_56_26 3 +114900 nCTEQ15WZ_FullNuc_56_28 3 +114950 nCTEQ15WZ_FullNuc_64_29 3 +115000 nCTEQ15WZ_FullNuc_64_32 3 +115050 nCTEQ15WZ_FullNuc_84_36 3 +115100 nCTEQ15WZ_FullNuc_84_42 3 +115150 nCTEQ15WZ_FullNuc_108_47 3 +115200 nCTEQ15WZ_FullNuc_108_54 3 +115250 nCTEQ15WZ_FullNuc_119_50 3 +115300 nCTEQ15WZ_FullNuc_119_59 3 +115350 nCTEQ15WZ_FullNuc_131_54 3 +115400 nCTEQ15WZ_FullNuc_184_74 3 +115450 nCTEQ15WZ_FullNuc_197_79 3 +115500 nCTEQ15WZ_FullNuc_197_98 3 +115550 nCTEQ15WZ_FullNuc_207_82 3 +115600 nCTEQ15WZ_FullNuc_207_103 3 +115650 nCTEQ15WZ_FullNuc_208_82 3 +116000 nCTEQ15WZSIH_1_1 2 +116050 nCTEQ15WZSIH_2_1 2 +116100 nCTEQ15WZSIH_3_1 2 +116150 nCTEQ15WZSIH_4_2 2 +116200 nCTEQ15WZSIH_6_3 2 +116250 nCTEQ15WZSIH_7_3 2 +116300 nCTEQ15WZSIH_9_4 2 +116350 nCTEQ15WZSIH_12_6 2 +116400 nCTEQ15WZSIH_14_7 2 +116450 nCTEQ15WZSIH_16_8 2 +116500 nCTEQ15WZSIH_27_13 2 +116550 nCTEQ15WZSIH_40_20 2 +116600 nCTEQ15WZSIH_56_26 2 +116650 nCTEQ15WZSIH_56_28 2 +116700 nCTEQ15WZSIH_64_32 2 +116750 nCTEQ15WZSIH_84_42 2 +116800 nCTEQ15WZSIH_108_54 2 +116850 nCTEQ15WZSIH_119_59 2 +116900 nCTEQ15WZSIH_131_54 2 +116950 nCTEQ15WZSIH_184_74 2 +117000 nCTEQ15WZSIH_197_79 2 +117050 nCTEQ15WZSIH_197_98 2 +117100 nCTEQ15WZSIH_207_103 2 +117150 nCTEQ15WZSIH_208_82 2 +118000 nCTEQ15WZSIH_FullNuc_1_1 3 +118050 nCTEQ15WZSIH_FullNuc_2_1 3 +118100 nCTEQ15WZSIH_FullNuc_3_1 3 +118150 nCTEQ15WZSIH_FullNuc_4_2 3 +118200 nCTEQ15WZSIH_FullNuc_6_3 3 +118250 nCTEQ15WZSIH_FullNuc_7_3 3 +118300 nCTEQ15WZSIH_FullNuc_9_4 3 +118350 nCTEQ15WZSIH_FullNuc_12_6 3 +118400 nCTEQ15WZSIH_FullNuc_14_7 3 +118450 nCTEQ15WZSIH_FullNuc_16_8 3 +118500 nCTEQ15WZSIH_FullNuc_27_13 3 +118550 nCTEQ15WZSIH_FullNuc_40_20 3 +118600 nCTEQ15WZSIH_FullNuc_56_26 3 +118650 nCTEQ15WZSIH_FullNuc_56_28 3 +118700 nCTEQ15WZSIH_FullNuc_64_32 3 +118750 nCTEQ15WZSIH_FullNuc_84_42 3 +118800 nCTEQ15WZSIH_FullNuc_108_54 3 +118850 nCTEQ15WZSIH_FullNuc_119_59 3 +118900 nCTEQ15WZSIH_FullNuc_131_54 3 +118950 nCTEQ15WZSIH_FullNuc_184_74 3 +119000 nCTEQ15WZSIH_FullNuc_197_79 3 +119050 nCTEQ15WZSIH_FullNuc_197_98 3 +119100 nCTEQ15WZSIH_FullNuc_207_103 3 +119150 nCTEQ15WZSIH_FullNuc_208_82 3 +120000 nCTEQ15HQ_1_1 1 +120050 nCTEQ15HQ_2_1 1 +120100 nCTEQ15HQ_3_1 1 +120150 nCTEQ15HQ_4_2 1 +120200 nCTEQ15HQ_6_3 1 +120250 nCTEQ15HQ_7_3 1 +120300 nCTEQ15HQ_9_4 1 +120350 nCTEQ15HQ_12_6 1 +120400 nCTEQ15HQ_14_7 1 +120450 nCTEQ15HQ_16_8 1 +120500 nCTEQ15HQ_27_13 1 +120550 nCTEQ15HQ_40_20 1 +120600 nCTEQ15HQ_56_26 1 +120650 nCTEQ15HQ_56_28 1 +120700 nCTEQ15HQ_64_32 1 +120750 nCTEQ15HQ_84_42 1 +120800 nCTEQ15HQ_108_54 1 +120850 nCTEQ15HQ_119_59 1 +120900 nCTEQ15HQ_131_54 1 +120950 nCTEQ15HQ_184_74 1 +121000 nCTEQ15HQ_197_79 1 +121050 nCTEQ15HQ_197_98 1 +121100 nCTEQ15HQ_207_103 1 +121150 nCTEQ15HQ_208_82 1 +122000 nCTEQ15HQ_FullNuc_1_1 1 +122050 nCTEQ15HQ_FullNuc_2_1 1 +122100 nCTEQ15HQ_FullNuc_3_1 1 +122150 nCTEQ15HQ_FullNuc_4_2 1 +122200 nCTEQ15HQ_FullNuc_6_3 1 +122250 nCTEQ15HQ_FullNuc_7_3 1 +122300 nCTEQ15HQ_FullNuc_9_4 1 +122350 nCTEQ15HQ_FullNuc_12_6 1 +122400 nCTEQ15HQ_FullNuc_14_7 1 +122450 nCTEQ15HQ_FullNuc_16_8 1 +122500 nCTEQ15HQ_FullNuc_27_13 1 +122550 nCTEQ15HQ_FullNuc_40_20 1 +122600 nCTEQ15HQ_FullNuc_56_26 1 +122650 nCTEQ15HQ_FullNuc_56_28 1 +122700 nCTEQ15HQ_FullNuc_64_32 1 +122750 nCTEQ15HQ_FullNuc_84_42 1 +122800 nCTEQ15HQ_FullNuc_108_54 1 +122850 nCTEQ15HQ_FullNuc_119_59 1 +122900 nCTEQ15HQ_FullNuc_131_54 1 +122950 nCTEQ15HQ_FullNuc_184_74 1 +123000 nCTEQ15HQ_FullNuc_197_79 1 +123050 nCTEQ15HQ_FullNuc_197_98 1 +123100 nCTEQ15HQ_FullNuc_207_103 1 +123150 nCTEQ15HQ_FullNuc_208_82 1 200200 NNPDF21_lo_as_0119_100 5 200400 NNPDF21_lo_as_0130_100 5 200600 NNPDF21_lostar_as_0119_100 5 @@ -909,6 +1197,53 @@ 325900 NNPDF31_nnlo_as_0118_CMSW2_hessian_100 1 326100 NNPDF31_nnlo_as_0118_CMSW3_hessian_100 1 326300 NNPDF31_nnlo_as_0118_CMSW4_hessian_100 1 +330000 NNPDF40_nnlo_as_01180_1000 1 +331100 NNPDF40_nnlo_as_01180 1 +331300 NNPDF40_nnlo_pdfas 1 +331500 NNPDF40_nnlo_as_01180_hessian 1 +331600 NNPDF40_nnlo_hessian_pdfas 1 +331700 NNPDF40_nlo_as_01180 1 +331900 NNPDF40_lo_as_01180 1 +332100 NNPDF40_nnlo_pch_as_01180 1 +332300 NNPDF40_nlo_pch_as_01180 1 +332500 NNPDF40_lo_pch_as_01180 1 +332700 NNPDF40_nnlo_as_01160 1 +332900 NNPDF40_nnlo_as_01170 1 +333100 NNPDF40_nnlo_as_01175 1 +333300 NNPDF40_nnlo_as_01185 1 +333500 NNPDF40_nnlo_as_01190 1 +333700 NNPDF40_nnlo_as_01200 1 +333900 NNPDF40_nlo_as_01170 1 +334100 NNPDF40_nlo_as_01190 1 +334300 NNPDF40_nnlo_as_01180_nf_4 1 +334500 NNPDF40_nnlo_as_01180_nf_6 1 +334700 NNPDF40_nlo_as_01180_nf_4 1 +334900 NNPDF40_nlo_as_01180_nf_6 1 +335100 NNPDF40_nnlo_pch_as_01180_nf_3 1 +335300 NNPDF40_nlo_pch_as_01180_nf_3 1 +335500 NNPDF40_nnlo_nf_4_pdfas 1 +335700 NNPDF40_nlo_nf_4_pdfas 1 +335900 NNPDF40_nlo_as_01180_qed 1 +336100 NNPDF40_nnlo_as_01180_qed 1 +336300 NNPDF40_nlo_as_01180_mhou 1 +336500 NNPDF40_nnlo_as_01180_mhou 1 +336700 NNPDF40_an3lo_as_01180 1 +336900 NNPDF40_an3lo_as_01180_mhou 1 +337100 NNPDF40_an3lo_as_01180_pdfas 1 +337300 NNPDF40_an3lo_as_01180_mhou_pdfas 1 +337500 NNPDF40_an3lo_as_01180_hessian 1 +337600 NNPDF40_an3lo_as_01180_mhou_hessian 1 +337700 NNPDF40_an3lo_as_01180_pdfas_hessian 1 +337800 NNPDF40_an3lo_as_01180_mhou_pdfas_hessian 1 +337900 NNPDF40_nnlo_as_01180_qed_mhou 1 +338100 NNPDF40_an3lo_as_01180_qed_mhou 1 +338300 NNPDF40_an3lo_as_01180_qed 1 +338500 NNPDF40MC_lo_as_01180 1 +338510 NNPDF40MC_lo_as_01180_qed 1 +338520 NNPDF40MC_nlo_as_01180 1 +338530 NNPDF40MC_nlo_as_01180_qed 1 +338540 NNPDF40MC_nnlo_as_01180 1 +338550 NNPDF40MC_nnlo_as_01180_qed 1 500000 CT14MC1nlo 1 502000 CT14MC2nlo 1 504000 CT14MC1nnlo 1 @@ -927,6 +1262,23 @@ 901100 EPPS16nlo_CT14nlo_Pt195 1 901200 EPPS16nlo_CT14nlo_Au197 1 901300 EPPS16nlo_CT14nlo_Pb208 1 +902000 EPPS21nlo_CT18Anlo_He3 1 +902150 EPPS21nlo_CT18Anlo_He4 1 +902300 EPPS21nlo_CT18Anlo_Li6 1 +902450 EPPS21nlo_CT18Anlo_Be9 1 +902600 EPPS21nlo_CT18Anlo_C12 1 +902750 EPPS21nlo_CT18Anlo_O16 1 +902900 EPPS21nlo_CT18Anlo_Al27 1 +903050 EPPS21nlo_CT18Anlo_Ca40 1 +903200 EPPS21nlo_CT18Anlo_Ar40 1 +903350 EPPS21nlo_CT18Anlo_Fe56 1 +903500 EPPS21nlo_CT18Anlo_Cu64 1 +903650 EPPS21nlo_CT18Anlo_Ag108 1 +903800 EPPS21nlo_CT18Anlo_Sn119 1 +903950 EPPS21nlo_CT18Anlo_W184 1 +904100 EPPS21nlo_CT18Anlo_Pt195 1 +904250 EPPS21nlo_CT18Anlo_Au197 1 +904400 EPPS21nlo_CT18Anlo_Pb208 1 950000 JAM19PDF_proton_nlo 1 951500 JAM20-SIDIS_PDF_proton_nlo 2 2000000 NNFF10_PIm_lo 1 @@ -957,14 +1309,38 @@ 2005000 NNFF10_PRp_nnlo 1 2005200 NNFF10_PRsum_nnlo 1 2006000 NNFF11_HadronSum_nlo 1 -2020000 MAPFF10NLOPIp 1 -2020250 MAPFF10NLOPIm 1 -2020500 MAPFF10NLOPIsum 1 +2020000 MAPFF10NLOPIp 2 +2020250 MAPFF10NLOPIm 2 +2020500 MAPFF10NLOPIsum 2 +2021000 MAPFF10NNLOPIp 1 +2021250 MAPFF10NNLOPIm 1 +2021500 MAPFF10NNLOPIsum 1 +2022000 MAPFF10NLOKAp 1 +2022250 MAPFF10NLOKAm 1 +2022500 MAPFF10NLOKAsum 1 +2023000 MAPFF10NNLOKAp 1 +2023250 MAPFF10NNLOKAm 1 +2023500 MAPFF10NNLOKAsum 1 2050000 JAM19FF_pion_nlo 1 2051000 JAM19FF_kaon_nlo 1 2052000 JAM20-SIDIS_FF_pion_nlo 2 2052250 JAM20-SIDIS_FF_kaon_nlo 2 2052500 JAM20-SIDIS_FF_hadron_nlo 2 +2060000 CGMP_B-hadron_NNLO_as_0118 1 +2060100 CGMP_B-hadron_to_Jpsi_NNLO_as_0118 1 +2060200 CGMP_B-hadron_to_muon_NNLO_as_0118 1 +2070000 NPC23_PIp_nlo 1 +2070200 NPC23_KAp_nlo 1 +2070400 NPC23_PRp_nlo 1 +2070600 NPC23_PIm_nlo 1 +2070800 NPC23_KAm_nlo 1 +2071000 NPC23_PRm_nlo 1 +2071200 NPC23_PIsum_nlo 1 +2071400 NPC23_KAsum_nlo 1 +2071600 NPC23_PRsum_nlo 1 +2071800 NPC23_CHHAp_nlo 1 +2072000 NPC23_CHHAm_nlo 1 +2072200 NPC23_CHHAsum_nlo 1 3000000 nNNPDF10_nlo_as_0118_N1 1 3000300 nNNPDF10_nlo_as_0118_D2 1 3000600 nNNPDF10_nlo_as_0118_He4 1 @@ -1025,6 +1401,28 @@ 3206100 TUJU19_nnlo_197_79 1 3206200 TUJU19_nnlo_208_82 1 3206300 TUJU19_nnlo_119_50 1 +3210000 TUJU21_nlo_1_1 1 +3210100 TUJU21_nlo_2_1 1 +3210300 TUJU21_nlo_4_2 1 +3210500 TUJU21_nlo_12_6 1 +3210600 TUJU21_nlo_14_7 1 +3210700 TUJU21_nlo_16_8 1 +3210900 TUJU21_nlo_27_13 1 +3211000 TUJU21_nlo_56_26 1 +3211200 TUJU21_nlo_131_54 1 +3211400 TUJU21_nlo_197_79 1 +3211600 TUJU21_nlo_208_82 1 +3215000 TUJU21_nnlo_1_1 1 +3215100 TUJU21_nnlo_2_1 1 +3215300 TUJU21_nnlo_4_2 1 +3215500 TUJU21_nnlo_12_6 1 +3215600 TUJU21_nnlo_14_7 1 +3215700 TUJU21_nnlo_16_8 1 +3215900 TUJU21_nnlo_27_13 1 +3216000 TUJU21_nnlo_56_26 1 +3216200 TUJU21_nnlo_131_54 1 +3216400 TUJU21_nnlo_197_79 1 +3216600 TUJU21_nnlo_208_82 1 30010000 nNNPDF20_nlo_as_0118_N1 1 30010300 nNNPDF20_nlo_as_0118_D2 1 30010600 nNNPDF20_nlo_as_0118_He4 1 @@ -1041,5 +1439,110 @@ 30013900 nNNPDF20_nlo_as_0118_Xe131 1 30014200 nNNPDF20_nlo_as_0118_Au197 1 30014500 nNNPDF20_nlo_as_0118_Pb208 1 -30020000 nNNPDF20_nlo_as_0118_O16 1 -30020300 nNNPDF20_nlo_as_0118_W184 1 +30014800 nNNPDF20_nlo_as_0118_O16 1 +30015100 nNNPDF20_nlo_as_0118_W184 1 +30020000 nNNPDF30_nlo_as_0118_p 1 +30020300 nNNPDF30_nlo_as_0118_A2_Z1 1 +30020600 nNNPDF30_nlo_as_0118_A4_Z2 1 +30020900 nNNPDF30_nlo_as_0118_A6_Z3 1 +30021200 nNNPDF30_nlo_as_0118_A9_Z4 1 +30021500 nNNPDF30_nlo_as_0118_A12_Z6 1 +30021800 nNNPDF30_nlo_as_0118_A14_Z7 1 +30022100 nNNPDF30_nlo_as_0118_A16_Z8 1 +30022400 nNNPDF30_nlo_as_0118_A27_Z13 1 +30022700 nNNPDF30_nlo_as_0118_A31_Z15 1 +30023000 nNNPDF30_nlo_as_0118_A40_Z20 1 +30023300 nNNPDF30_nlo_as_0118_A56_Z26 1 +30023600 nNNPDF30_nlo_as_0118_A64_Z29 1 +30023900 nNNPDF30_nlo_as_0118_A108_Z54 1 +30024200 nNNPDF30_nlo_as_0118_A119_Z59 1 +30024500 nNNPDF30_nlo_as_0118_A131_Z54 1 +30024800 nNNPDF30_nlo_as_0118_A184_Z74 1 +30025100 nNNPDF30_nlo_as_0118_A197_Z79 1 +30025400 nNNPDF30_nlo_as_0118_A208_Z82 1 +30100000 nCTEQ15_Jpsi_c_90CL_Pb_hess 1 +30100025 nCTEQ15_Jpsi_u_90CL_Pb_hess 1 +30100050 nCTEQ15_Jpsi_d_90CL_Pb_hess 1 +30100075 nCTEQ15_Jpsi_90CL_Pb_hess 1 +30100100 nCTEQ15_D_c_90CL_Pb_hess 1 +30100125 nCTEQ15_D_u_90CL_Pb_hess 1 +30100150 nCTEQ15_D_d_90CL_Pb_hess 1 +30100175 nCTEQ15_D_90CL_Pb_hess 1 +30100200 nCTEQ15_B_c_90CL_Pb_hess 1 +30100225 nCTEQ15_B_u_90CL_Pb_hess 1 +30100250 nCTEQ15_B_d_90CL_Pb_hess 1 +30100275 nCTEQ15_B_90CL_Pb_hess 1 +30100300 nCTEQ15_Jpsi_c_90CL_Au_hess 1 +30100325 nCTEQ15_Jpsi_d_90CL_Au_hess 1 +30100350 nCTEQ15_Jpsi_u_90CL_Au_hess 1 +30100375 nCTEQ15_Jpsi_90CL_Au_hess 1 +30100400 nCTEQ15_D_c_90CL_Au_hess 1 +30100425 nCTEQ15_D_u_90CL_Au_hess 1 +30100450 nCTEQ15_D_d_90CL_Au_hess 1 +30100475 nCTEQ15_D_90CL_Au_hess 1 +30100500 nCTEQ15_B_c_90CL_Au_hess 1 +30100525 nCTEQ15_B_u_90CL_Au_hess 1 +30100550 nCTEQ15_B_d_90CL_Au_hess 1 +30100575 nCTEQ15_B_90CL_Au_hess 1 +30100600 EPPS16_Jpsi_c_90CL_Pb_hess 1 +30100625 EPPS16_Jpsi_u_90CL_Pb_hess 1 +30100650 EPPS16_Jpsi_d_90CL_Pb_hess 1 +30100675 EPPS16_Jpsi_90CL_Pb_hess 1 +30100700 EPPS16_D_c_90CL_Pb_hess 1 +30100725 EPPS16_D_u_90CL_Pb_hess 1 +30100750 EPPS16_D_d_90CL_Pb_hess 1 +30100775 EPPS16_D_90CL_Pb_hess 1 +30100800 EPPS16_B_c_90CL_Pb_hess 1 +30100825 EPPS16_B_u_90CL_Pb_hess 1 +30100850 EPPS16_B_d_90CL_Pb_hess 1 +30100875 EPPS16_B_90CL_Pb_hess 1 +30100900 EPPS16_Jpsi_c_90CL_Au_hess 1 +30100925 EPPS16_Jpsi_u_90CL_Au_hess 1 +30100950 EPPS16_Jpsi_d_90CL_Au_hess 1 +30100975 EPPS16_Jpsi_90CL_Au_hess 1 +30101000 EPPS16_D_c_90CL_Au_hess 1 +30101025 EPPS16_D_u_90CL_Au_hess 1 +30101050 EPPS16_D_d_90CL_Au_hess 1 +30101075 EPPS16_D_90CL_Au_hess 1 +30101100 EPPS16_B_c_90CL_Au_hess 1 +30101125 EPPS16_B_u_90CL_Au_hess 1 +30101150 EPPS16_B_d_90CL_Au_hess 1 +30101175 EPPS16_B_90CL_Au_hess 1 +40000000 NNSFnu_D_lowQ 1 +40000300 NNSFnu_D_highQ 1 +40000600 NNSFnu_He_lowQ 1 +40000900 NNSFnu_He_highQ 1 +40001200 NNSFnu_Li_lowQ 1 +40001500 NNSFnu_Li_highQ 1 +40001800 NNSFnu_Be_lowQ 1 +40002100 NNSFnu_Be_highQ 1 +40002400 NNSFnu_C_lowQ 1 +40002700 NNSFnu_C_highQ 1 +40003000 NNSFnu_N_lowQ 1 +40003300 NNSFnu_N_highQ 1 +40003600 NNSFnu_O_lowQ 1 +40003900 NNSFnu_O_highQ 1 +40004200 NNSFnu_Al_lowQ 1 +40004500 NNSFnu_Al_highQ 1 +40004800 NNSFnu_Ea_lowQ 1 +40005100 NNSFnu_Ea_highQ 1 +40005400 NNSFnu_Ca_lowQ 1 +40005700 NNSFnu_Ca_highQ 1 +40006000 NNSFnu_Fe_lowQ 1 +40006300 NNSFnu_Fe_highQ 1 +40006600 NNSFnu_Cu_lowQ 1 +40006900 NNSFnu_Cu_highQ 1 +40007200 NNSFnu_Ag_lowQ 1 +40007500 NNSFnu_Ag_highQ 1 +40007800 NNSFnu_Sn_lowQ 1 +40008100 NNSFnu_Sn_highQ 1 +40008400 NNSFnu_Xe_lowQ 1 +40008700 NNSFnu_Xe_highQ 1 +40009000 NNSFnu_W_lowQ 1 +40009300 NNSFnu_W_highQ 1 +40009600 NNSFnu_Au_lowQ 1 +40009900 NNSFnu_Au_highQ 1 +40010200 NNSFnu_Pb_lowQ 1 +40010500 NNSFnu_Pb_highQ 1 +40010800 NNSFnu_Ar_lowQ 1 +40011100 NNSFnu_Ar_highQ 1 diff --git a/repos/spack_repo/builtin/packages/libabigail/package.py b/repos/spack_repo/builtin/packages/libabigail/package.py index 3fcb272e84f..82203fa1b06 100644 --- a/repos/spack_repo/builtin/packages/libabigail/package.py +++ b/repos/spack_repo/builtin/packages/libabigail/package.py @@ -64,7 +64,7 @@ def configure_args(self): return config_args def autoreconf(self, spec, prefix): - autoreconf = which("autoreconf") + autoreconf = which("autoreconf", required=True) with working_dir(self.configure_directory): # We need force (f) because without it, looks for RedHat library autoreconf("-ivf") diff --git a/repos/spack_repo/builtin/packages/libaec/package.py b/repos/spack_repo/builtin/packages/libaec/package.py index 7cf67f69e3f..40ebd9294f6 100644 --- a/repos/spack_repo/builtin/packages/libaec/package.py +++ b/repos/spack_repo/builtin/packages/libaec/package.py @@ -22,6 +22,10 @@ class Libaec(CMakePackage): license("BSD-2-Clause") + version("1.1.4", sha256="95439e861968cb0638a10b0bbdb37c9a10df1b22c5ee0293902acdbc68140f53") + version("1.1.3", sha256="453de44eb6ea2500843a4cf4d2e97d1be251d2df7beae6c2ebe374edcb11e378") + version("1.1.2", sha256="dc03ddbc9dabf806af1036e2c7bde44bbb1a2a6e0b186d46a6ca06390622afb9") + version("1.1.1", sha256="7be8e9b9a508fc165896fd7d85274666ac09e5a01be4f7de9fef5317065e13d4") version("1.0.6", sha256="abab8c237d85c982bb4d6bde9b03c1f3d611dcacbd58bca55afac2496d61d4be") version("1.0.5", sha256="7bf7be828dc3caefcc968e98a59b997b6b3b06e4123137e9e0b0988dc1be3b2f") version("1.0.4", sha256="7456adff4e817f94fc57a3eca824db1c203770ffb7a9253c435093ac5e239e31") @@ -33,6 +37,15 @@ class Libaec(CMakePackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + # CMake v3 is meant to be backwards compatible. + # CMake v4 removes compatibility with versions older than v3.5. + # CMakeLists.txt: cmake_minimum_required(VERSION 3.1) + depends_on("cmake@3.1:3", type="build", when="@:1.0.3") + # CMakeLists.txt: cmake_minimum_required(VERSION 3.13...3.19) + depends_on("cmake@3.13:", type="build", when="@1.0.4:1.1.3") + # CMakeLists.txt: cmake_minimum_required(VERSION 3.26...3.31) + depends_on("cmake@3.26:", type="build", when="@1.1.4:") + variant("shared", default=True, description="Builds a shared version of the library") @property diff --git a/repos/spack_repo/builtin/packages/libarchive/package.py b/repos/spack_repo/builtin/packages/libarchive/package.py index 88376b8a177..ad0352217b3 100644 --- a/repos/spack_repo/builtin/packages/libarchive/package.py +++ b/repos/spack_repo/builtin/packages/libarchive/package.py @@ -18,6 +18,7 @@ class Libarchive(AutotoolsPackage): license("BSD-2-Clause AND BSD-3-Clause AND Public-Domain") + version("3.8.5", sha256="8a60f3a7bfd59c54ce82ae805a93dba65defd04148c3333b7eaa2102f03b7ffd") version("3.8.0", sha256="191b5b24811499d5c2e5efa3248975fa6daa5e6a227700cc7b8e54d6d7c06eef") version("3.7.9", sha256="aa90732c5a6bdda52fda2ad468ac98d75be981c15dde263d7b5cf6af66fd009f") version("3.7.8", sha256="a123d87b1bd8adb19e8c187da17ae2d957c7f9596e741b929e6b9ceefea5ad0f") @@ -25,81 +26,6 @@ class Libarchive(AutotoolsPackage): version("3.7.6", sha256="b4071807367b15b72777c2eaac80f42c8ea2d20212ab279514a19fe1f6f96ef4") version("3.7.5", sha256="37556113fe44d77a7988f1ef88bf86ab68f53d11e85066ffd3c70157cc5110f1") - # Deprecated versions - # https://nvd.nist.gov/vuln/detail/CVE-2024-48957 - version( - "3.7.4", - sha256="7875d49596286055b52439ed42f044bd8ad426aa4cc5aabd96bfe7abb971d5e8", - deprecated=True, - ) - version( - "3.7.3", - sha256="f27a97bc22ceb996e72502df47dc19f99f9a0f09181ae909f09f3c9eb17b67e2", - deprecated=True, - ) - version( - "3.7.2", - sha256="df404eb7222cf30b4f8f93828677890a2986b66ff8bf39dac32a804e96ddf104", - deprecated=True, - ) - version( - "3.7.1", - sha256="5d24e40819768f74daf846b99837fc53a3a9dcdf3ce1c2003fe0596db850f0f0", - deprecated=True, - ) - version( - "3.7.0", - sha256="d937886a14b48c4287c4d343644feb294a14b31b7926ba9a4f1777123ce7c2cc", - deprecated=True, - ) - version( - "3.6.2", - sha256="ba6d02f15ba04aba9c23fd5f236bb234eab9d5209e95d1c4df85c44d5f19b9b3", - deprecated=True, - ) - - # https://nvd.nist.gov/vuln/detail/CVE-2021-31566 - version( - "3.5.2", - sha256="5f245bd5176bc5f67428eb0aa497e09979264a153a074d35416521a5b8e86189", - deprecated=True, - ) - version( - "3.5.1", - sha256="9015d109ec00bb9ae1a384b172bf2fc1dff41e2c66e5a9eeddf933af9db37f5a", - deprecated=True, - ) - version( - "3.4.1", - sha256="fcf87f3ad8db2e4f74f32526dee62dd1fb9894782b0a503a89c9d7a70a235191", - deprecated=True, - ) - version( - "3.3.2", - sha256="ed2dbd6954792b2c054ccf8ec4b330a54b85904a80cef477a1c74643ddafa0ce", - deprecated=True, - ) - version( - "3.2.1", - sha256="72ee1a4e3fd534525f13a0ba1aa7b05b203d186e0c6072a8a4738649d0b3cfd2", - deprecated=True, - ) - version( - "3.1.2", - sha256="eb87eacd8fe49e8d90c8fdc189813023ccc319c5e752b01fb6ad0cc7b2c53d5e", - deprecated=True, - ) - version( - "3.1.1", - sha256="4968f9a3f2405ec7e07d5f6e78b36f21bceee6196df0a795165f89774bbbc6d8", - deprecated=True, - ) - version( - "3.1.0", - sha256="64b15dfa623b323da8fc9c238b5bca962ec3b38dcdfd2ed86f5f509e578a3524", - deprecated=True, - ) - variant( "libs", default="static,shared", @@ -155,10 +81,6 @@ class Libarchive(AutotoolsPackage): depends_on("iconv", when="+iconv") - conflicts( - "crypto=mbedtls", when="@:3.4.1", msg="mbed TLS is only supported from libarchive 3.4.2" - ) - # NOTE: `make check` is known to fail with the Intel compilers # The build test suite cannot be built with Intel @@ -167,7 +89,6 @@ def configure_args(self): args = ["--without-libb2"] args += self.with_or_without("compression") args += self.with_or_without("crypto") - args += self.with_or_without("xar") args += self.enable_or_disable("programs") if spec.satisfies("+iconv"): @@ -178,4 +99,14 @@ def configure_args(self): else: args.append("--without-iconv") + if spec.satisfies("xar=expat"): + args.append("--with-expat") + else: + args.append("--without-expat") + + if spec.satisfies("xar=libxml2"): + args.append("--with-xml2") + else: + args.append("--without-xml2") + return args diff --git a/repos/spack_repo/builtin/packages/libassuan/package.py b/repos/spack_repo/builtin/packages/libassuan/package.py index 8b0d3926022..a4e1ea9b542 100644 --- a/repos/spack_repo/builtin/packages/libassuan/package.py +++ b/repos/spack_repo/builtin/packages/libassuan/package.py @@ -31,7 +31,8 @@ class Libassuan(AutotoolsPackage): depends_on("libgpg-error@1.17:") - conflicts("platform=darwin", when="@3") + # error with multiple duplicate symbols in linker -- fixed in v3.0.2 + conflicts("platform=darwin", when="@3.0.0:3.0.1") def configure_args(self): return [ diff --git a/repos/spack_repo/builtin/packages/libatomic_ops/package.py b/repos/spack_repo/builtin/packages/libatomic_ops/package.py index 6154e1a59c3..908bb36afd7 100644 --- a/repos/spack_repo/builtin/packages/libatomic_ops/package.py +++ b/repos/spack_repo/builtin/packages/libatomic_ops/package.py @@ -11,17 +11,17 @@ class LibatomicOps(AutotoolsPackage): """This package provides semi-portable access to hardware-provided atomic memory update operations on a number architectures.""" - homepage = "https://www.hboehm.info/gc/" - url = "https://github.com/ivmai/libatomic_ops/releases/download/v7.8.0/libatomic_ops-7.8.0.tar.gz" + homepage = "https://github.com/bdwgc/libatomic_ops/" + url = "https://github.com/bdwgc/libatomic_ops/releases/download/v7.10.0/libatomic_ops-7.10.0.tar.gz" license("GPL-2.0-only") + version("7.10.0", sha256="0db3ebff755db170f65e74a64ec4511812e9ee3185c232eeffeacd274190dfb0") version("7.8.2", sha256="d305207fe207f2b3fb5cb4c019da12b44ce3fcbc593dfd5080d867b1a2419b51") version("7.8.0", sha256="15676e7674e11bda5a7e50a73f4d9e7d60452271b8acf6fd39a71fefdf89fa31") version("7.6.14", sha256="390f244d424714735b7050d056567615b3b8f29008a663c262fb548f1802d292") version("7.6.12", sha256="f0ab566e25fce08b560e1feab6a3db01db4a38e5bc687804334ef3920c549f3e") version("7.6.6", sha256="99feabc5f54877f314db4fadeb109f0b3e1d1a54afb6b4b3dfba1e707e38e074") - version("7.4.4", sha256="bf210a600dd1becbf7936dd2914cf5f5d3356046904848dcfd27d0c8b12b6f8f") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/libbeagle/package.py b/repos/spack_repo/builtin/packages/libbeagle/package.py index 06815ff140c..4eb0ee9f91e 100644 --- a/repos/spack_repo/builtin/packages/libbeagle/package.py +++ b/repos/spack_repo/builtin/packages/libbeagle/package.py @@ -66,7 +66,7 @@ def patch(self): ) def autoreconf(self, spec, prefix): - which("bash")("autogen.sh") + which("bash", required=True)("autogen.sh") def configure_args(self): args = [ diff --git a/repos/spack_repo/builtin/packages/libbeef/package.py b/repos/spack_repo/builtin/packages/libbeef/package.py new file mode 100644 index 00000000000..22e31219458 --- /dev/null +++ b/repos/spack_repo/builtin/packages/libbeef/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.autotools import AutotoolsPackage + +from spack.package import * + + +class Libbeef(AutotoolsPackage): + """ + Library for Bayesian error estimation functionals for use in density functional theory codes. + """ + + homepage = "https://github.com/vossjo/libbeef" + git = "https://github.com/vossjo/libbeef.git" + + maintainers("nolta") + + license("LGPL-3.0-or-later", checked_by="nolta") + + version("0.1.3", commit="535ea67327baa8368ec5c502392a212375b16187") + + depends_on("c", type="build") + + @property + def libs(self): + libraries = ["libbeef"] + return find_libraries(libraries, root=self.prefix, recursive=True, shared=False) diff --git a/repos/spack_repo/builtin/packages/libblastrampoline/package.py b/repos/spack_repo/builtin/packages/libblastrampoline/package.py index 1b2244d1e3e..38931327b94 100644 --- a/repos/spack_repo/builtin/packages/libblastrampoline/package.py +++ b/repos/spack_repo/builtin/packages/libblastrampoline/package.py @@ -18,6 +18,13 @@ class Libblastrampoline(MakefilePackage): license("MIT") + version("5.15.0", sha256="69e0be57ebf037c1997c35edf03565614cd3c6863a695d01348a21bf1f482e74") + version("5.14.0", sha256="1036d8a34d2b6cad715da9b5f84c505517c9c65c24fcf90ba0f17d4d0003811a") + version("5.13.1", sha256="6df0eddd846db56b885056641cf02304862411bd0e641d444acf8f4eb2e33327") + version("5.13.0", sha256="45a73ab0e112df142d37117cd78a53c5d9b3ffd86a5f151d3103ec2274600364") + version("5.12.0", sha256="12f9d186bc844a21dfa2a6ea1f38a039227554330c43230d72f721c330cf6018") + version("5.11.2", sha256="eeee692ca6f28977f3aa089592b8d25bac223158f5be7a9a5f241ec837d3af51") + version("5.11.1", sha256="65206141b81bf151f1dfcceabf280b7b7ced995da3da170b85ce3cbb5f514cc8") version("5.11.0", sha256="4ea6c134843bd868f78d7ee0c61bf8bdda5334f20deaa6d3cd5bc6caafc4af17") version("5.10.1", sha256="1185a2a85453827823c224727e7cd665b7af8f48af5d2cd0225bd45389112e81") version("5.9.0", sha256="fe62c48eab6000a348d6d0cc3f2ebd2c38c6cae460468b56539b8438d42dc589") @@ -29,12 +36,6 @@ class Libblastrampoline(MakefilePackage): version("5.1.0", sha256="55ac0c8f9cb91b2ed2db014be8394c9dadf3b5f26bd8af6dca9d6f20ca72b8fd") version("5.0.2", sha256="2e96fa62957719351da3e4dff8cd0949449073708f5564dae0a224a556432356") version("5.0.1", sha256="1066b4d157276e41ca66ca94f0f8c2900c221b49da2df3c410e6f8bf1ce9b488") - # v5.0.0 contains a bug, fixed in v5.0.1, which causes segmentation faults - version( - "5.0.0", - sha256="20f434add7d9ae4503bb7a61e320ad1aea8e8371f53b1e32dc691e4701080658", - deprecated=True, - ) version("4.1.0", sha256="8b1a3a55b1e1a849e907288e3afbd10d367b25364a59cb2ccaddc88604b13266") version("4.0.0", sha256="8816dfba6f0c547bca5fba9d83e63062387def3089622a9514babf79e1737310") version("3.1.0", sha256="f6136cc2b5d090ceca67cffa55b4c8af4bcee874333d49297c867abdb0749b5f") diff --git a/repos/spack_repo/builtin/packages/libbson/package.py b/repos/spack_repo/builtin/packages/libbson/package.py index c6838cd35c9..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") @@ -37,23 +38,13 @@ class Libbson(AutotoolsPackage, CMakePackage): version("1.7.0", sha256="442d89e89dfb43bba1f65080dc61fdcba01dcb23468b2842c1dbdd4acd6049d3") version("1.6.3", sha256="e9e4012a9080bdc927b5060b126a2c82ca11e71ebe7f2152d079fa2ce461a7fb") version("1.6.2", sha256="aad410123e4bd8a9804c3c3d79e03344e2df104872594dc2cf19605d492944ba") - version( - "1.6.1", - sha256="5f160d44ea42ce9352a7a3607bc10d3b4b22d3271763aa3b3a12665e73e3a02d", - deprecated=True, - ) - 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") - with when("build_system=autotools"): - depends_on("autoconf", type="build", when="@1.6.1") - depends_on("automake", type="build", when="@1.6.1") - depends_on("libtool", type="build", when="@1.6.1") - build_system( conditional("cmake", when="@1.10:"), conditional("autotools", when="@:1.9"), @@ -61,18 +52,14 @@ 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: return f"https://github.com/mongodb/libbson/releases/download/{version}/libbson-{version}.tar.gz" - @property - def force_autoreconf(self): - # 1.6.1 tarball is broken - return self.spec.satisfies("@1.6.1") - class CMakeBuilder(cmake.CMakeBuilder): def cmake_args(self): diff --git a/repos/spack_repo/builtin/packages/libcap_ng/package.py b/repos/spack_repo/builtin/packages/libcap_ng/package.py index d8fa97e5dc8..4f63d43b071 100644 --- a/repos/spack_repo/builtin/packages/libcap_ng/package.py +++ b/repos/spack_repo/builtin/packages/libcap_ng/package.py @@ -10,22 +10,19 @@ class LibcapNg(AutotoolsPackage): """Libcap-ng is a library that makes using posix capabilities easier""" - homepage = "https://github.com/stevegrubb/libcap-ng/" - url = "https://github.com/stevegrubb/libcap-ng/archive/v0.8.tar.gz" + homepage = "https://people.redhat.com/sgrubb/libcap-ng/" + url = "https://people.redhat.com/sgrubb/libcap-ng/libcap-ng-0.8.5.tar.gz" license("GPL-2.0-or-later AND LGPL-2.1-or-later") - version("0.8.3", sha256="e542e9139961f0915ab5878427890cdc7762949fbe216bd0cb4ceedb309bb854") - version("0.8", sha256="836ea8188ae7c658cdf003e62a241509dd542f3dec5bc40c603f53a5aadaa93f") - version("0.7.11", sha256="78f32ff282b49b7b91c56d317fb6669df26da332c6fc9462870cec2573352222") - version("0.7.10", sha256="c3c156a215e5be5430b2f3b8717bbd1afdabe458b6068a8d163e71cefe98fc32") + version("0.8.5", sha256="3ba5294d1cbdfa98afaacfbc00b6af9ed2b83e8a21817185dfd844cc8c7ac6ff") + version("0.8.3", sha256="bed6f6848e22bb2f83b5f764b2aef0ed393054e803a8e3a8711cb2a39e6b492d") + version("0.8", sha256="f14d23b60ae1465b032e4e8cbd4112006572c69a6017d55d5d3c6aad622a9e21") + version("0.7.11", sha256="85815c711862d01a440db471f12fba462c9949e923966f5859607e652d9c0ae9") + version("0.7.10", sha256="a84ca7b4e0444283ed269b7a29f5b6187f647c82e2b876636b49b9a744f0ffbf") - depends_on("c", type="build") # generated + depends_on("c", type="build") - depends_on("autoconf", type="build") - depends_on("automake", type="build") - depends_on("libtool", type="build") - depends_on("m4", type="build") depends_on("attr", type="build") depends_on("swig", type="build") depends_on("python@2.7:", type=("build", "link", "run"), when="+python") diff --git a/repos/spack_repo/builtin/packages/libcatalyst/package.py b/repos/spack_repo/builtin/packages/libcatalyst/package.py index 0378f9c5a05..1d847a678fe 100644 --- a/repos/spack_repo/builtin/packages/libcatalyst/package.py +++ b/repos/spack_repo/builtin/packages/libcatalyst/package.py @@ -22,34 +22,44 @@ class Libcatalyst(CMakePackage): maintainers("mathstuf", "ayenpure") version("master", branch="master") + version("2.1.0", sha256="1db07593c2f0203f53dfa39445d6f9d7a7fff78e0ce024b17af66ca7bce78abc") version("2.0.0", sha256="5842b690bd8afa635414da9b9c5e5d79fa37879b0d382428d0d8e26ba5374828") variant("mpi", default=False, description="Enable MPI support") - variant("conduit", default=False, description="Use external Conduit for Catalyst") variant("fortran", default=False, description="Enable Fortran wrapping") variant("python", default=False, description="Enable Python wrapping") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build", when="+fortran") + + depends_on("cmake@3.26:", type="build") depends_on("pkgconfig", type="build") depends_on("mpi", when="+mpi") - depends_on("conduit", when="+conduit") - depends_on("cmake@3.26:", type="build") - depends_on("python@3:", when="+python") - depends_on("py-numpy", when="+python", type=("build", "link", "run")) + depends_on("conduit") + + depends_on("conduit+fortran", when="+fortran") + + with when("+python"): + extends("python") + depends_on("py-numpy", type=("build", "link", "run")) + depends_on("conduit+python", type=("build", "link", "run")) def cmake_args(self): """Populate cmake arguments for libcatalyst.""" args = [ - "-DCATALYST_BUILD_TESTING=OFF", + self.define("CATALYST_BUILD_TESTING", False), + self.define("CATALYST_WITH_EXTERNAL_CONDUIT", True), self.define_from_variant("CATALYST_USE_MPI", "mpi"), - self.define_from_variant("CATALYST_WITH_EXTERNAL_CONDUIT", "conduit"), self.define_from_variant("CATALYST_WRAP_FORTRAN", "fortran"), self.define_from_variant("CATALYST_WRAP_PYTHON", "python"), ] + # workaround for hard-coded arch dependent install folder for python module + if self.spec.satisfies("+python"): + args.append(self.define("CMAKE_INSTALL_LIBDIR", "lib")) + return args def setup_run_environment(self, env: EnvironmentModifications) -> None: @@ -78,7 +88,7 @@ def build_test(self): # for the current package being tested, including the package # itself make_package_test_rpath(self, adapter0_test_path) - cmake = which(self.spec["cmake"].prefix.bin.cmake) + cmake = which(self.spec["cmake"].prefix.bin.cmake, required=True) with working_dir(testdir, create=True): cmake(*cmake_args) diff --git a/repos/spack_repo/builtin/packages/libceed/package.py b/repos/spack_repo/builtin/packages/libceed/package.py index 7f49bef5c96..eb8736ba8fe 100644 --- a/repos/spack_repo/builtin/packages/libceed/package.py +++ b/repos/spack_repo/builtin/packages/libceed/package.py @@ -39,6 +39,10 @@ class Libceed(MakefilePackage, CudaPackage, ROCmPackage): variant("libxsmm", default=False, description="Enable LIBXSMM backend", when="@0.3:") variant("magma", default=False, description="Enable MAGMA backend", when="@0.6:") + variant("openmp", default=False, description="Enable OpenMP support") + + variant("shared", default=True, description="Build shared libraries") + conflicts("+rocm", when="@:0.7") depends_on("c", type="build") # generated @@ -58,10 +62,12 @@ class Libceed(MakefilePackage, CudaPackage, ROCmPackage): depends_on("occa+cuda", when="+cuda") depends_on("occa~cuda", when="~cuda") - depends_on("libxsmm", when="+libxsmm") + depends_on("libxsmm~shared", when="+libxsmm~shared") + depends_on("libxsmm+shared", when="+libxsmm+shared") depends_on("blas", when="+libxsmm", type="link") - depends_on("magma", when="+magma") + depends_on("magma~shared", when="+magma~shared") + depends_on("magma+shared", when="+magma+shared") patch("libceed-v0.8-hip.patch", when="@0.8+rocm") patch("pkgconfig-version-0.4.diff", when="@0.4") @@ -83,7 +89,7 @@ def common_make_opts(self): if spec.satisfies("@:0.2"): makeopts += ["NDEBUG=%s" % ("" if spec.satisfies("+debug") else "1")] - elif spec.satisfies("@0.4:"): + elif spec.satisfies("@0.4:0.12"): # Determine options based on the compiler: if spec.satisfies("+debug"): opt = "-g" @@ -118,6 +124,7 @@ def common_make_opts(self): if spec.satisfies("@:0.7") and "avx" in self.spec.target: makeopts.append("AVX=1") + if spec.satisfies("@0.4:"): if spec.satisfies("+cuda"): makeopts += ["CUDA_DIR=%s" % spec["cuda"].prefix] makeopts += ["CUDA_ARCH=sm_%s" % spec.variants["cuda_arch"].value] @@ -146,6 +153,12 @@ def common_make_opts(self): if spec.satisfies("+magma"): makeopts += ["MAGMA_DIR=%s" % spec["magma"].prefix] + if spec.satisfies("+openmp"): + makeopts += ["OPENMP=1"] + + if spec.satisfies("~shared"): + makeopts += ["STATIC=1"] + return makeopts def edit(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/libcerf/package.py b/repos/spack_repo/builtin/packages/libcerf/package.py index 62640246a3f..bb6333c5a65 100644 --- a/repos/spack_repo/builtin/packages/libcerf/package.py +++ b/repos/spack_repo/builtin/packages/libcerf/package.py @@ -39,6 +39,8 @@ class Libcerf(AutotoolsPackage, CMakePackage): depends_on("c", type="build") depends_on("fortran", type="build") + depends_on("perl", type="build") + class CMakeBuilder(CMakeBuilder): def cmake_args(self): diff --git a/repos/spack_repo/builtin/packages/libcgroup/package.py b/repos/spack_repo/builtin/packages/libcgroup/package.py index 562fbfc0460..4001f9f4c86 100644 --- a/repos/spack_repo/builtin/packages/libcgroup/package.py +++ b/repos/spack_repo/builtin/packages/libcgroup/package.py @@ -16,11 +16,6 @@ class Libcgroup(AutotoolsPackage): license("LGPL-2.1-only") version("3.1.0", sha256="976ec4b1e03c0498308cfd28f1b256b40858f636abc8d1f9db24f0a7ea9e1258") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2018-14348 - version("0.41", sha256="e4e38bdc7ef70645ce33740ddcca051248d56b53283c0dc6d404e17706f6fb51") - version("0.37", sha256="15c8f3febb546530d3495af4e4904b3189c273277ca2d8553dec882cde1cd0f6") - version("0.36", sha256="8dcd2ae220435b3de736d3efb0023fdf1192d7a7f4032b439f3cf5342cff7b4c") depends_on("c", type="build") depends_on("cxx", type="build") @@ -32,10 +27,4 @@ class Libcgroup(AutotoolsPackage): depends_on("bison", type="build") depends_on("flex", type="build") depends_on("linux-pam") - depends_on("systemd", when="@3.1:") - - def url_for_version(self, version): - if self.spec.satisfies("@2.0.1:"): - return f"https://github.com/libcgroup/libcgroup/releases/download/v{version}/libcgroup-{version}.tar.gz" - else: - return f"https://github.com/libcgroup/libcgroup/releases/download/v{version}/libcgroup-{version}.tar.bz2" + depends_on("systemd") diff --git a/repos/spack_repo/builtin/packages/libcifpp/package.py b/repos/spack_repo/builtin/packages/libcifpp/package.py new file mode 100644 index 00000000000..1ed3a756541 --- /dev/null +++ b/repos/spack_repo/builtin/packages/libcifpp/package.py @@ -0,0 +1,54 @@ +# 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 Libcifpp(CMakePackage): + """Library containing code to manipulate mmCIF and PDB files.""" + + homepage = "https://github.com/PDB-REDO/libcifpp" + url = "https://github.com/PDB-REDO/libcifpp/archive/refs/tags/v9.0.6.tar.gz" + + license("BSD-2-Clause", checked_by="snehring") + + version("10.0.3", sha256="1f151165cdfc23a7acdc728e86db21ba6ad5470c582bc856c06226eb7884ee35") + version("9.0.6", sha256="e6263a63404762671d6875de385e0c7ad869b0fe3fae41808003e00c94e7ed8c") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("pkgconfig", type="build") + # just using headers apparently + depends_on("eigen@3", type="build") + depends_on("fmt", when="@:9.0.6") + depends_on("pcre2") + depends_on("zlib-api") + + with when("@10:"): + conflicts("%gcc@:12", msg="libcifpp requires gcc@13:") + conflicts("%clang@:13", msg="libcifpp requires clang@14:") + + def patch(self): + # include not actually available until gcc13 or clang 14 + if self.spec.satisfies("@:9.0.6 %gcc@:12"): + files = [ + join_path("include", "cif++", "format.hpp"), + join_path("include", "cif++", "point.hpp"), + join_path("src", "model.cpp"), + join_path("src", "utilities.cpp"), + ] + for f in files: + filter_file("std::format", "fmt::format", f, string=True) + # would a crazy person do this!? + for f in [files[i] for i in [1, 3]]: + filter_file("#include ", "#include ", f) + filter_file(r"(find_package\(Threads\))", "\\1\nfind_package(fmt)", "CMakeLists.txt") + filter_file(r"(PUBLIC Threads::Threads .*>)", "\\1 fmt::fmt", "CMakeLists.txt") + filter_file( + r"(find_dependency\(Threads\))", + "\\1\nfind_dependency(fmt)", + join_path("cmake", "cifpp-config.cmake.in"), + ) diff --git a/repos/spack_repo/builtin/packages/libcint/package.py b/repos/spack_repo/builtin/packages/libcint/package.py index 5b1c29d7068..64112eaaf6c 100644 --- a/repos/spack_repo/builtin/packages/libcint/package.py +++ b/repos/spack_repo/builtin/packages/libcint/package.py @@ -19,6 +19,7 @@ class Libcint(CMakePackage): # # Versions # + version("6.1.3", sha256="e4d977d4aeb4d5b87639ea57a2d2f1d5c1001f3f94e480b08c297a6cbc186f27") version("6.1.2", sha256="8287e1eaf2b8c8e19eb7a8ea92fd73898f0884023c503b84624610400adb25c4") version("5.5.0", sha256="c822a9a454587d935287de0f64a2c2cf5338323a554a3f34bcfb4a2892daf477") version("5.3.0", sha256="9d4fae074b53a8ce0335e2672d423deca2bda6df8020352e59d23c17a0c1239d") @@ -44,7 +45,7 @@ class Libcint(CMakePackage): variant( "pypzpx", default=False, - description="Enforce PYPZPX ordering of p-orbitals " "instead of PXPYPZ.", + description="Enforce PYPZPX ordering of p-orbitals instead of PXPYPZ.", ) variant("test", default=False, description="Build test programs") variant("shared", default=True, description="Build the shared library") diff --git a/repos/spack_repo/builtin/packages/libcircle/package.py b/repos/spack_repo/builtin/packages/libcircle/package.py index 946104acde2..d3cf8ab0d71 100644 --- a/repos/spack_repo/builtin/packages/libcircle/package.py +++ b/repos/spack_repo/builtin/packages/libcircle/package.py @@ -46,5 +46,5 @@ def force_autoreconf(self): def autoreconf(self, spec, prefix): with working_dir(self.configure_directory): # Bootstrap with autotools - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/libconfuse/package.py b/repos/spack_repo/builtin/packages/libconfuse/package.py index 93fbd1d16b7..3994a7940cd 100644 --- a/repos/spack_repo/builtin/packages/libconfuse/package.py +++ b/repos/spack_repo/builtin/packages/libconfuse/package.py @@ -29,5 +29,5 @@ class Libconfuse(AutotoolsPackage): depends_on("flex", type="build") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/libctl/package.py b/repos/spack_repo/builtin/packages/libctl/package.py index 836cf89253c..c273f0b06ef 100644 --- a/repos/spack_repo/builtin/packages/libctl/package.py +++ b/repos/spack_repo/builtin/packages/libctl/package.py @@ -26,7 +26,8 @@ class Libctl(AutotoolsPackage): url="http://ab-initio.mit.edu/libctl/libctl-3.2.2.tar.gz", ) - depends_on("c", type="build") # generated + depends_on("c", type="build") + depends_on("fortran", type="build") depends_on("guile") diff --git a/repos/spack_repo/builtin/packages/libcxi/package.py b/repos/spack_repo/builtin/packages/libcxi/package.py index 17b95f11eb4..4bc7f6833c6 100644 --- a/repos/spack_repo/builtin/packages/libcxi/package.py +++ b/repos/spack_repo/builtin/packages/libcxi/package.py @@ -16,8 +16,12 @@ class Libcxi(AutotoolsPackage): license("LGPL-2.1-or-later or BSD-3-Clause") - # no releases, tags: see https://github.com/HewlettPackard/shs-libcxi/issues/2 version("main", branch="main") + version("13.1.0", tag="release/shs-13.1.0") + version("13.0.0", tag="release/shs-13.0.0") + version("12.0.2", tag="release/shs-12.0.2") + version("12.0.1", tag="release/shs-12.0.1") + version("12.0.0", tag="release/shs-12.0.0") variant("level_zero", default=False, description="Enable level zero support") variant("cuda", default=False, description="Build with CUDA support") @@ -25,7 +29,7 @@ class Libcxi(AutotoolsPackage): depends_on("c", type="build") - with default_args(type="build", when="@main"): + with default_args(type="build"): depends_on("autoconf") depends_on("automake") depends_on("libtool") @@ -57,9 +61,8 @@ def patch(self): string=True, ) - @when("@main") def autoreconf(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("autogen.sh") def setup_build_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/libde265/package.py b/repos/spack_repo/builtin/packages/libde265/package.py index 7ec67953a2e..b7644e76bd6 100644 --- a/repos/spack_repo/builtin/packages/libde265/package.py +++ b/repos/spack_repo/builtin/packages/libde265/package.py @@ -20,9 +20,10 @@ class Libde265(CMakePackage): license("LGPL-3.0-or-later") + version("1.0.16", sha256="ed12c931759c1575848832f70db5071a001ac813db4e4f568ee08aef6e234d4e") version("1.0.15", sha256="d4e55706dfc5b2c5c9702940b675ce2d3e7511025c6894eaddcdbaf0b15fd3f3") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("cmake@3.13:", type="build") diff --git a/repos/spack_repo/builtin/packages/libdeflate/package.py b/repos/spack_repo/builtin/packages/libdeflate/package.py index 29411ffa4b4..3d15bbfebb8 100644 --- a/repos/spack_repo/builtin/packages/libdeflate/package.py +++ b/repos/spack_repo/builtin/packages/libdeflate/package.py @@ -19,6 +19,7 @@ class Libdeflate(MakefilePackage, CMakePackage): license("MIT") + version("1.25", sha256="d11473c1ad4c57d874695e8026865e38b47116bbcb872bfc622ec8f37a86017d") version("1.18", sha256="225d982bcaf553221c76726358d2ea139bb34913180b20823c782cede060affd") version("1.14", sha256="89e7df898c37c3427b0f39aadcf733731321a278771d20fc553f92da8d4808ac") version("1.10", sha256="5c1f75c285cd87202226f4de49985dcb75732f527eefba2b3ddd70a8865f2533") diff --git a/repos/spack_repo/builtin/packages/libdrm/package.py b/repos/spack_repo/builtin/packages/libdrm/package.py index 96392c5a729..5dcb814bd0b 100644 --- a/repos/spack_repo/builtin/packages/libdrm/package.py +++ b/repos/spack_repo/builtin/packages/libdrm/package.py @@ -22,6 +22,7 @@ class Libdrm(AutotoolsPackage, MesonPackage): license("MIT") + version("2.4.131", sha256="45ba9983b51c896406a3d654de81d313b953b76e6391e2797073d543c5f617d5") version("2.4.124", sha256="ac36293f61ca4aafaf4b16a2a7afff312aa4f5c37c9fbd797de9e3c0863ca379") version("2.4.123", sha256="a2b98567a149a74b0f50e91e825f9c0315d86e7be9b74394dae8b298caadb79e") version("2.4.122", sha256="d9f5079b777dffca9300ccc56b10a93588cdfbc9dde2fae111940dfb6292f251") @@ -87,7 +88,7 @@ class AutotoolsBuilder(autotools.AutotoolsBuilder): def configure_args(self): args = [] args.append("--enable-static") - if self.version <= Version("2.4.70"): + if self.spec.version <= Version("2.4.70"): # Needed to fix build for spack/spack#1740, but breaks newer # builds/compilers args.append("LIBS=-lrt") diff --git a/repos/spack_repo/builtin/packages/libdwarf/package.py b/repos/spack_repo/builtin/packages/libdwarf/package.py index 00ab9418b9b..ebfa3ef2355 100644 --- a/repos/spack_repo/builtin/packages/libdwarf/package.py +++ b/repos/spack_repo/builtin/packages/libdwarf/package.py @@ -25,6 +25,8 @@ class Libdwarf(CMakePackage): license("LGPL-2.1-only") + version("2.3.0", sha256="a153e8101828a478f88d18341267b59c19a3fc794bea47388347ce994ba90c17") + version("2.1.0", sha256="461bd29cbb9a41c26a25b0e527c3736c772bb7a89f6260d1edb39ab105226e06") version("2.0.0", sha256="c3d1db72a979e14ee60b93010f0698d30fc1bca4eb1341006783d4e9c9ec7e72") version("0.12.0", sha256="444dc1c5176f04d3ebc50341552a8b2ea6c334f8f1868a023a740ace0e6eae9f") version("0.11.0", sha256="846071fb220ac1952f9f15ebbac6c7831ef50d0369b772c07a8a8139a42e07d2") @@ -51,11 +53,6 @@ class Libdwarf(CMakePackage): depends_on("zlib-api") depends_on("zstd") - def url_for_version(self, version): - if version < Version("20130126"): - return super().url_for_version(version) - return f"https://www.prevanders.net/libdwarf-{version}.tar.gz" - def cmake_args(self): args = [ self.define_from_variant("BUILD_SHARED", "shared"), diff --git a/repos/spack_repo/builtin/packages/libedit/package.py b/repos/spack_repo/builtin/packages/libedit/package.py index ca1fe0a33ce..1187769dad2 100644 --- a/repos/spack_repo/builtin/packages/libedit/package.py +++ b/repos/spack_repo/builtin/packages/libedit/package.py @@ -15,6 +15,9 @@ class Libedit(AutotoolsPackage): license("BSD-3-Clause", checked_by="wdconinc") + version( + "3.1-20251016", sha256="21362b00653bbfc1c71f71a7578da66b5b5203559d43134d2dd7719e313ce041" + ) version( "3.1-20240808", sha256="5f0573349d77c4a48967191cdd6634dd7aa5f6398c6a57fe037cc02696d6099f" ) diff --git a/repos/spack_repo/builtin/packages/libemos/package.py b/repos/spack_repo/builtin/packages/libemos/package.py index 8388525ec72..9396eea2cbd 100644 --- a/repos/spack_repo/builtin/packages/libemos/package.py +++ b/repos/spack_repo/builtin/packages/libemos/package.py @@ -25,12 +25,6 @@ class Libemos(CMakePackage): version("4.4.7", sha256="669fb070c1ce655812882140a92b100233f065829868d9374bad2fcbb6b356e5") version("4.4.2", sha256="e2d20ad71e3beb398916f98a35a3c56ee0141d5bc9b3adff15095ff3b6dccea8") - variant( - "grib", - default="eccodes", - values=("eccodes", "grib-api"), - description="Specify GRIB backend", - ) variant( "build_type", default="RelWithDebInfo", @@ -38,24 +32,13 @@ class Libemos(CMakePackage): values=("Debug", "Release", "RelWithDebInfo", "Production"), ) - depends_on("eccodes", when="grib=eccodes") - depends_on("grib-api", when="grib=grib-api") + depends_on("eccodes") depends_on("fftw precision=float,double") depends_on("cmake@2.8.11:", type="build") depends_on("pkgconfig", type="build") - conflicts("grib=eccodes", when="@:4.4.1", msg="Eccodes is supported starting version 4.4.2") - def cmake_args(self): - args = [] - - if self.spec.variants["grib"].value == "eccodes": - args.append("-DENABLE_ECCODES=ON") - else: - if self.spec.satisfies("@4.4.2:"): - args.append("-DENABLE_ECCODES=OFF") - - # To support long pathnames that spack generates - args.append("-DCMAKE_Fortran_FLAGS=-ffree-line-length-none") - - return args + return [ + self.define("ENABLE_ECCODE", True), + self.define("CMAKE_Fortran_FLAGS", "-ffree-line-length-none"), + ] diff --git a/repos/spack_repo/builtin/packages/libepoxy/package.py b/repos/spack_repo/builtin/packages/libepoxy/package.py index f24785427f5..c5687e4f75d 100644 --- a/repos/spack_repo/builtin/packages/libepoxy/package.py +++ b/repos/spack_repo/builtin/packages/libepoxy/package.py @@ -44,7 +44,6 @@ def url_for_version(self, version): class MesonBuilder(meson.MesonBuilder): - def meson_args(self): # Disable egl, otherwise configure fails with: # error: Package requirements (egl) were not met @@ -63,7 +62,6 @@ def meson_args(self): class AutotoolsBuilder(autotools.AutotoolsBuilder): - def configure_args(self): # Disable egl, otherwise configure fails with: # error: Package requirements (egl) were not met diff --git a/repos/spack_repo/builtin/packages/libevent/package.py b/repos/spack_repo/builtin/packages/libevent/package.py index b31a42989bf..041e44ea9a5 100644 --- a/repos/spack_repo/builtin/packages/libevent/package.py +++ b/repos/spack_repo/builtin/packages/libevent/package.py @@ -21,6 +21,8 @@ class Libevent(AutotoolsPackage): license("BSD-3-Clause") + maintainers("CodingYayaToure") + version("2.1.12", sha256="92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb") version("2.1.11", sha256="a65bac6202ea8c5609fd5c7e480e6d25de467ea1917c08290c521752f147283d") version("2.1.10", sha256="e864af41a336bb11dab1a23f32993afe963c1f69618bd9292b89ecf6904845b0") @@ -43,10 +45,10 @@ class Libevent(AutotoolsPackage): depends_on("c", type="build") # generated - # Versions before 2.1 do not build with OpenSSL 1.1 - depends_on("openssl@:1.0", when="@:2.0+openssl") depends_on("openssl", when="+openssl") + conflicts("+openssl", when="@:2.0") + def url_for_version(self, version): if version >= Version("2.0.22"): url = "https://github.com/libevent/libevent/releases/download/release-{0}-stable/libevent-{0}-stable.tar.gz" diff --git a/repos/spack_repo/builtin/packages/libevpath/package.py b/repos/spack_repo/builtin/packages/libevpath/package.py index ac5f3fca3e6..86fc6461438 100644 --- a/repos/spack_repo/builtin/packages/libevpath/package.py +++ b/repos/spack_repo/builtin/packages/libevpath/package.py @@ -18,16 +18,23 @@ class Libevpath(CMakePackage): url = "https://github.com/GTkorvo/evpath/archive/v4.1.1.tar.gz" git = "https://github.com/GTkorvo/evpath.git" + maintainers("eisenhauer", "vicentebolea") + version("develop", branch="master") - version("4.4.0", sha256="c8d20d33c84d8d826493f453760eceb792d601734ff61238662c16fa6243dc29") - version("4.2.4", sha256="070698a068798e2e34dd73debb936cf275af23987a4cb0d06aa3e50c481042ff") - version("4.2.1", sha256="c745946f2ecff65bfc80978c2038c37c3803076064cfd29ea3023d671c950770") - version("4.1.2", sha256="2c0d5acc0e1c5aadd32d7147d2f0ce26220e3870e21c7d5429372d8f881e519e") - version("4.1.1", sha256="cfc9587f98c1f057eb25712855d14311fd91d6284151eee7bd8936c4ff7ee001") + version("5.0.0", sha256="e55a3f888352b5deeb1a56e3e1b524cf5dc1226c3172163e418626d75a0ee297") + + with default_args(deprecated=True): + version("4.4.0", sha256="c8d20d33c84d8d826493f453760eceb792d601734ff61238662c16fa6243dc29") + version("4.2.4", sha256="070698a068798e2e34dd73debb936cf275af23987a4cb0d06aa3e50c481042ff") + version("4.2.1", sha256="c745946f2ecff65bfc80978c2038c37c3803076064cfd29ea3023d671c950770") + version("4.1.2", sha256="2c0d5acc0e1c5aadd32d7147d2f0ce26220e3870e21c7d5429372d8f881e519e") + version("4.1.1", sha256="cfc9587f98c1f057eb25712855d14311fd91d6284151eee7bd8936c4ff7ee001") variant("enet_transport", default=False, description="Build an ENET transport for EVpath") + variant("shared", default=True, when="@5:", description="Build shared libraries") depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated depends_on("gtkorvo-enet", when="@4.4.0: +enet_transport") depends_on("gtkorvo-enet@1.3.13", when="@:4.2.4 +enet_transport") @@ -35,14 +42,18 @@ class Libevpath(CMakePackage): def cmake_args(self): args = ["-DTARGET_CNL=1"] - if self.spec.satisfies("@4.4.0:"): + if self.spec.satisfies("@5:"): + args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared")) + elif self.spec.satisfies("@4.4.0"): args.append("-DBUILD_SHARED_LIBS=OFF") else: args.append("-DENABLE_BUILD_STATIC=STATIC") - if self.run_tests: - args.append("-DENABLE_TESTING=1") + if self.spec.satisfies("@5.0.0:"): + args.append(self.define("BUILD_TESTING", self.run_tests)) else: - args.append("-DENABLE_TESTING=0") + args.append(self.define("ENABLE_TESTING", self.run_tests)) + + args.append("-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE") return args diff --git a/repos/spack_repo/builtin/packages/libfabric/package.py b/repos/spack_repo/builtin/packages/libfabric/package.py index f03500bf89b..1d00aba903e 100644 --- a/repos/spack_repo/builtin/packages/libfabric/package.py +++ b/repos/spack_repo/builtin/packages/libfabric/package.py @@ -7,24 +7,30 @@ from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage from spack.package import * -class Libfabric(AutotoolsPackage, CudaPackage): +class Libfabric(AutotoolsPackage, CudaPackage, ROCmPackage): """The Open Fabrics Interfaces (OFI) is a framework focused on exporting fabric communication services to applications.""" homepage = "https://libfabric.org/" url = "https://github.com/ofiwg/libfabric/releases/download/v1.8.0/libfabric-1.8.0.tar.bz2" git = "https://github.com/ofiwg/libfabric.git" - maintainers("rajachan") + maintainers("rajachan", "msimberg", "darrylabbate") executables = ["^fi_info$"] - license("GPL-2.0-or-later") + license("BSD-2-Clause OR GPL-2.0-only") version("main", branch="main") + version("2.5.1", sha256="ac34788a52b3e4a3a1ef712ec29bc4261c63dfbd9e5e4d6e202a0c3687be368d") + version("2.5.0", sha256="276019edca708dc0569cf3064a412e395ba7b1883299781caed120594f850995") + version("2.4.0", sha256="13f508e1d770c44f872c4117d9bcbfc102dc9d7532d3292455e0e0e5ef7b3bba") + version("2.3.1", sha256="2e939f17ce4d30a999d0445f741d3055b19dfd894eff70450e23470fe774f35a") + version("2.3.0", sha256="1d18fce868f8fef68b42fccd1f5df2555369739e8cb7c148532a0529a308eb09") version("2.2.0", sha256="ff6d05240b4a9753bb3d1eaf962f5a06205038df5142374a6ef40f931bb55ecc") version("2.1.0", sha256="97df312779e2d937246d2f46385b700e0958ed796d6fed7aae77e2d18923e19f") version("2.0.0", sha256="1a8e40f1f331d6ee2e9ace518c0088a78c8a838968f8601c2b77fd012a7bf0f5") @@ -101,14 +107,43 @@ class Libfabric(AutotoolsPackage, CudaPackage): multi=True, ) - # NOTE: the 'kdreg' variant enables use of the special /dev/kdreg file to + # NOTE: the 'kdreg' variant enables use of the special /dev/kdreg2 file to # assist in memory registration caching in the GNI provider. This # device file can only be opened once per process, however, and thus it # frequently conflicts with MPI. - variant("kdreg", default=False, description="Enable kdreg on supported Cray platforms") + variant("kdreg", default=False, description="Enable kdreg2 on supported Cray platforms") variant("debug", default=False, description="Enable debugging") variant("uring", default=False, when="@1.17.0:", description="Enable uring support") variant("level_zero", default=False, description="Enable Level Zero support") + variant("gdrcopy", default=False, when="@1.12: +cuda", description="Enable gdrcopy support") + variant( + "cuda_dlopen", default=False, when="+cuda", description="Enable dlopen of CUDA libraries" + ) + variant( + "gdrcopy_dlopen", + default=False, + when="+gdrcopy", + description="Enable dlopen of gdr libraries", + ) + + variant("asan", default=False, when="@1.12:", description="Enable AddressSanitizer (ASan)") + variant("lsan", default=False, when="@1.20:", description="Enable LeakSanitizer (LSan)") + variant("tsan", default=False, when="@1.20:", description="Enable ThreadSanitizer (TSan)") + variant( + "ubsan", + default=False, + when="@1.20:", + description="Enable UndefinedBehaviorSanitizer (UBSan)", + ) + + # Backporting from main for versions 2.3.x + # The CXI provider hardcodes CXIP_FI_VERSION to FI_VERSION(2, 2). + # Make it match the libfabric we're building + patch( + "https://github.com/ofiwg/libfabric/commit/f565852cedc7b6fd3848ed2f11b1dd90ed37be05.patch?full_index=1", + sha256="da2514252074c350fb5cbdb04f267cf227d0a575902fe6cad355afe1dc7c0102", + when="@2.3 fabrics=cxi", + ) # For version 1.9.0: # headers: fix forward-declaration of enum fi_collective_op with C++ @@ -135,7 +170,12 @@ class Libfabric(AutotoolsPackage, CudaPackage): depends_on("liburing@2.1:", when="+uring") depends_on("oneapi-level-zero", when="+level_zero") depends_on("libcxi", when="fabrics=cxi") + # https://github.com/ofiwg/libfabric/issues/12036 + depends_on("libcxi@14:", when="@2.5.0 fabrics=cxi") + depends_on("cassini-headers", when="fabrics=cxi") + depends_on("cxi-driver", when="fabrics=cxi") depends_on("xpmem", when="fabrics=xpmem") + depends_on("gdrcopy", when="+gdrcopy") depends_on("m4", when="@main", type="build") depends_on("autoconf", when="@main", type="build") @@ -154,6 +194,8 @@ class Libfabric(AutotoolsPackage, CudaPackage): "set by OPX, resulting in undefined behavior.", ) + conflicts("+asan +tsan") + flag_handler = build_system_flags @classmethod @@ -197,34 +239,49 @@ def setup_dependent_run_environment( @when("@main") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") def configure_args(self): args = [ *self.enable_or_disable("debug"), - *self.with_or_without("kdreg"), + *self.enable_or_disable("cuda_dlopen"), + *self.enable_or_disable("gdrcopy_dlopen"), + *self.enable_or_disable("asan"), + *self.enable_or_disable("lsan"), + *self.enable_or_disable("tsan"), + *self.enable_or_disable("ubsan"), *self.with_or_without("uring"), *self.with_or_without("cuda", activation_value="prefix"), *self.with_or_without("ze", variant="level_zero"), + *self.with_or_without("gdrcopy", activation_value="prefix"), + *self.with_or_without( + "rocr", variant="rocm", activation_value=lambda _: self.spec["hip"].prefix + ), ] + if self.spec.satisfies("+kdreg"): + args.append("--with-kdreg2") + for fabric in [f if isinstance(f, str) else f[0].value for f in self.fabrics]: if f"fabrics={fabric}" in self.spec: - args.append(f"--enable-{fabric}") + if fabric == "xpmem": + args.append(f"--enable-xpmem={self.spec['xpmem'].prefix}") + elif fabric == "cxi": + args.append(f"--with-json-c={self.spec['json-c'].prefix}") + args.append(f"--with-curl={self.spec['curl'].prefix}") + args.append( + f"--with-cassini-headers={self.spec['cassini-headers'].prefix.include}" + ) + args.append( + f"--with-cxi-uapi-headers={self.spec['cxi-driver'].prefix.include}" + ) + args.append(f"--enable-cxi={self.spec['libcxi'].prefix}") + else: + args.append(f"--enable-{fabric}") else: args.append(f"--disable-{fabric}") - if self.spec.satisfies("fabrics=cxi"): - args.append(f"--with-json-c={self.spec['json-c'].prefix}") - args.append(f"--with-curl={self.spec['curl'].prefix}") - args.append(f"--with-cassini-headers={self.spec['cassini-headers'].prefix.include}") - args.append(f"--with-cxi-uapi-headers={self.spec['cxi-driver'].prefix.include}") - args.append(f"--enable-cxi={self.spec['libcxi'].prefix}") - - if self.spec.satisfies("fabrics=xpmem"): - args.append(f"--enable-xpmem={self.spec['xpmem'].prefix}") - return args def installcheck(self): diff --git a/repos/spack_repo/builtin/packages/libfastcommon/package.py b/repos/spack_repo/builtin/packages/libfastcommon/package.py index dd805cf83fd..d16e10d9c59 100644 --- a/repos/spack_repo/builtin/packages/libfastcommon/package.py +++ b/repos/spack_repo/builtin/packages/libfastcommon/package.py @@ -28,7 +28,7 @@ class Libfastcommon(Package): depends_on("c", type="build") # generated def install(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("make.sh") sh("make.sh", "install") install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/libffi/package.py b/repos/spack_repo/builtin/packages/libffi/package.py index 01a53894b6c..5852a5e8715 100644 --- a/repos/spack_repo/builtin/packages/libffi/package.py +++ b/repos/spack_repo/builtin/packages/libffi/package.py @@ -18,6 +18,7 @@ class Libffi(AutotoolsPackage): license("MIT") + version("3.5.2", sha256="f3a3082a23b37c293a4fcd1053147b371f2ff91fa7ea1b2a52e335676bac82dc") version("3.4.8", sha256="bc9842a18898bfacb0ed1252c4febcc7e78fa139fd27fdc7a3e30d9d9356119b") version("3.4.7", sha256="138607dee268bdecf374adf9144c00e839e38541f75f24a1fcf18b78fda48b2d") version("3.4.6", sha256="b0dea9df23c863a7a50e825440f3ebffabd65df1497108e5d437747843895a4e") diff --git a/repos/spack_repo/builtin/packages/libffs/package.py b/repos/spack_repo/builtin/packages/libffs/package.py index a6eca25257a..809ebe28d47 100644 --- a/repos/spack_repo/builtin/packages/libffs/package.py +++ b/repos/spack_repo/builtin/packages/libffs/package.py @@ -19,12 +19,21 @@ class Libffs(CMakePackage): url = "https://github.com/GTkorvo/ffs/archive/v1.1.tar.gz" git = "https://github.com/GTkorvo/ffs.git" + maintainers("eisenhauer", "vicentebolea") + version("develop", branch="master") - version("1.5", sha256="e1f3df42eb36fa35c5445887d679e26b7e3c9be697a07cd38e4ae824dbcd8ef8") - version("1.1.1", sha256="9c3a82b3357e6ac255b65d4f45003dd270dea3ec0cd7a2aa40b59b3eab4bdb83") - version("1.1", sha256="008fd87c5a6cb216cd757b4dc04057fc987b39b7a367623eb4cf0fd32a9fd81e") + version("3.2.0", sha256="885578babae52394c3cabb4479b7a87053443d61b1c0975f777a22c3fd104d8c") + + with default_args(deprecated=True): + version("1.6.0", sha256="2e5f547d9e4994d4f52fc4615cbf2e51e4aa82480c3624faade88a0e709a9172") + version("1.5", sha256="e1f3df42eb36fa35c5445887d679e26b7e3c9be697a07cd38e4ae824dbcd8ef8") + version("1.1.1", sha256="9c3a82b3357e6ac255b65d4f45003dd270dea3ec0cd7a2aa40b59b3eab4bdb83") + version("1.1", sha256="008fd87c5a6cb216cd757b4dc04057fc987b39b7a367623eb4cf0fd32a9fd81e") + + variant("shared", default=True, when="@3.2:", description="Build shared libraries") depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated depends_on("flex", type="build", when="@:1.4") depends_on("bison", type="build", when="@:1.4") @@ -34,14 +43,15 @@ class Libffs(CMakePackage): def cmake_args(self): args = ["-DTARGET_CNL=1"] - if self.spec.satisfies("@1.5:"): + if self.spec.satisfies("@3.2:"): + args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared")) + + elif self.spec.satisfies("@1.5:"): args.append("-DBUILD_SHARED_LIBS=OFF") else: args.append("-DENABLE_BUILD_STATIC=STATIC") - if self.run_tests: - args.append("-DENABLE_TESTING=0") - else: - args.append("-DENABLE_TESTING=0") + args.append(self.define("ENABLE_TESTING", self.run_tests)) + args.append("-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE") return args diff --git a/repos/spack_repo/builtin/packages/libftdi/package.py b/repos/spack_repo/builtin/packages/libftdi/package.py new file mode 100644 index 00000000000..442bd98f9b1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/libftdi/package.py @@ -0,0 +1,30 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class Libftdi(CMakePackage): + """libftdi - A library (using libusb) to talk to FTDI's UART/FIFO chips + including the popular bitbang mode""" + + license("GPL-2.0-or-later") + + homepage = "https://www.intra2net.com/en/developer/libftdi/index.php" + git = "git://developer.intra2net.com/libftdi" + + maintainers("davekeeshan") + + version("master", branch="master") + version("1.5", commit="5c2c58e03ea999534e8cb64906c8ae8b15536c30") + version("1.4", commit="d5c1622a2ff0c722c0dc59533748489b45774e55") + version("1.3", commit="96d337a16b723d792f6ab5f40b7aa43120ac4782") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("libusb") + depends_on("libconfuse") diff --git a/repos/spack_repo/builtin/packages/libfuse/package.py b/repos/spack_repo/builtin/packages/libfuse/package.py index c6f3743350c..cc54482463c 100644 --- a/repos/spack_repo/builtin/packages/libfuse/package.py +++ b/repos/spack_repo/builtin/packages/libfuse/package.py @@ -2,15 +2,14 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import os import re -from spack_repo.builtin.build_systems.meson import MesonPackage +from spack_repo.builtin.build_systems import autotools, meson from spack.package import * -class Libfuse(MesonPackage): +class Libfuse(autotools.AutotoolsPackage, meson.MesonPackage): """The reference implementation of the Linux FUSE (Filesystem in Userspace) interface""" @@ -19,6 +18,7 @@ class Libfuse(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") @@ -59,14 +59,19 @@ def url_for_version(self, version): ) variant("utils", default=True, description="Build and install helper and example programs.") + build_system( + conditional("meson", when="@3:"), conditional("autotools", when="@:2"), default="meson" + ) + depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("autoconf", type="build", when="@:2") - depends_on("automake", type="build", when="@:2") - depends_on("libtool", type="build", when="@:2") - depends_on("gettext", type="build", when="@:2") - depends_on("gmake", type="build") + with when("build_system=autotools"): + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + depends_on("gettext", type="build") + depends_on("gmake", type="build") provides("fuse") conflicts("+useroot", when="~system_install", msg="useroot requires system_install") @@ -112,6 +117,8 @@ def determine_version(cls, exe): match = re.search(r"^fusermount.*version: (\S+)", output) return match.group(1) if match else None + +class MesonBuilder(meson.MesonBuilder): def meson_args(self): args = [] @@ -139,39 +146,16 @@ def meson_args(self): return args - # Before libfuse 3.x this was an autotools package - @when("@:2") - def meson(self, spec, prefix): - ar_args = ["-ivf"] - for dep in self.spec.dependencies(deptype="build"): - if os.path.exists(dep.prefix.share.aclocal): - ar_args.extend(["-I", dep.prefix.share.aclocal]) - autoreconf(*ar_args) +class AutotoolsBuilder(autotools.AutotoolsBuilder): + # patches that change configure.ac require this + force_autoreconf = True + + def configure_args(self): args = [ - "--prefix={0}".format(prefix), "MOUNT_FUSE_PATH={0}".format(self.prefix.sbin), "UDEV_RULES_PATH={0}".format(self.prefix.etc), "INIT_D_PATH={0}".format(self.prefix.etc), ] - args.append( - "--enable-static" - if self.spec.satisfies("default_library=static") - else "--disable-static" - ) - args.append( - "--enable-shared" - if self.spec.satisfies("default_library=shared") - else "--disable-shared" - ) - - configure(*args) - - @when("@:2") - def build(self, spec, prefix): - make() - - @when("@:2") - def install(self, spec, prefix): - make("install") + return args diff --git a/repos/spack_repo/builtin/packages/libgcrypt/conditional_avx512.patch b/repos/spack_repo/builtin/packages/libgcrypt/conditional_avx512.patch deleted file mode 100644 index 9bd196ff607..00000000000 --- a/repos/spack_repo/builtin/packages/libgcrypt/conditional_avx512.patch +++ /dev/null @@ -1,33 +0,0 @@ -From b42116d6067a5233f72e5598032d4b396bb8eaac Mon Sep 17 00:00:00 2001 -From: NIIBE Yutaka -Date: Thu, 4 Jul 2024 11:17:03 +0900 -Subject: [PATCH] cipher:blake2: Fix for use_avx512. - -* cipher/blake2.c (blake2s_init_ctx): Conditional with USE_AVX512. - --- - -GnuPG-bug-id: 7184 -Reported-by: Aaron Howland -Fixing-commit: 909daa700e4b45d75469df298ee564b8fc2f4b72 -Signed-off-by: NIIBE Yutaka ---- - cipher/blake2.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cipher/blake2.c b/cipher/blake2.c -index 451e71f6..1a04fbd8 100644 ---- a/cipher/blake2.c -+++ b/cipher/blake2.c -@@ -830,7 +830,7 @@ static gcry_err_code_t blake2s_init_ctx(void *ctx, unsigned int flags, - #ifdef USE_AVX - c->use_avx = !!(features & HWF_INTEL_AVX); - #endif --#ifdef USE_AVX -+#ifdef USE_AVX512 - c->use_avx512 = !!(features & HWF_INTEL_AVX512); - #endif - --- -2.30.2 - diff --git a/repos/spack_repo/builtin/packages/libgcrypt/package.py b/repos/spack_repo/builtin/packages/libgcrypt/package.py index 6d6c38ec3bb..9bd6e0c41f0 100644 --- a/repos/spack_repo/builtin/packages/libgcrypt/package.py +++ b/repos/spack_repo/builtin/packages/libgcrypt/package.py @@ -17,38 +17,17 @@ 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") version("1.10.3", sha256="8b0870897ac5ac67ded568dcfadf45969cfa8a6beb0fd60af2a9eadc2a3272aa") - with default_args(deprecated=True): - version( - "1.11.0", sha256="09120c9867ce7f2081d6aaa1775386b98c2f2f246135761aae47d81f58685b9c" - ) - version( - "1.10.2", sha256="3b9c02a004b68c256add99701de00b383accccf37177e0d6c58289664cce0c03" - ) - version( - "1.10.1", sha256="ef14ae546b0084cd84259f61a55e07a38c3b53afc0f546bffcef2f01baffe9de" - ) - version( - "1.10.0", sha256="6a00f5c05caa4c4acc120c46b63857da0d4ff61dc4b4b03933fa8d46013fae81" - ) - # End of life: 2024-12-31 (LTS) - version("1.8.9", sha256="2bda4790aa5f0895d3407cf7bf6bd7727fd992f25a45a63d92fef10767fa3769") - version("1.8.7", sha256="03b70f028299561b7034b8966d7dd77ef16ed139c43440925fe8782561974748") - version("1.8.6", sha256="0cba2700617b99fc33864a0c16b1fa7fdf9781d9ed3509f5d767178e5fd7b975") - version("1.8.5", sha256="3b4a2a94cb637eff5bdebbcaf46f4d95c4f25206f459809339cdada0eb577ac3") - version("1.8.4", sha256="f638143a0672628fde0cad745e9b14deb85dffb175709cacc1f4fe24b93f2227") - version("1.8.1", sha256="7a2875f8b1ae0301732e878c0cca2c9664ff09ef71408f085c50e332656a78b3") - depends_on("c", type="build") - depends_on("libgpg-error@1.25:") - depends_on("libgpg-error@1.27:", when="@1.9:") + depends_on("libgpg-error@1.27:") depends_on("libgpg-error@1.49:", when="@1.11:") - - # See https://dev.gnupg.org/T7170 - conflicts("platform=darwin", when="@1.11.0") + depends_on("libgpg-error@1.56:", when="@1.12:") def flag_handler(self, name, flags): # https://dev.gnupg.org/T7634 @@ -60,13 +39,6 @@ def flag_handler(self, name, flags): # flags, and the build system ensures that return (None, flags, None) - # 1.10.2 fails on macOS when trying to use the Linux getrandom() call - # https://dev.gnupg.org/T6442 - patch("rndgetentropy_no_getrandom.patch", when="@=1.10.2 platform=darwin") - - # https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commit;h=b42116d6067a5233f72e5598032d4b396bb8eaac - patch("conditional_avx512.patch", when="@1.11.0") - patch("o_flag_munging-1.10.patch", when="@1.10") def check(self): diff --git a/repos/spack_repo/builtin/packages/libgcrypt/rndgetentropy_no_getrandom.patch b/repos/spack_repo/builtin/packages/libgcrypt/rndgetentropy_no_getrandom.patch deleted file mode 100644 index acb5b115a39..00000000000 --- a/repos/spack_repo/builtin/packages/libgcrypt/rndgetentropy_no_getrandom.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/random/rndgetentropy.c b/random/rndgetentropy.c -index 513da0b..d8eedce 100644 ---- a/random/rndgetentropy.c -+++ b/random/rndgetentropy.c -@@ -81,27 +81,8 @@ _gcry_rndgetentropy_gather_random (void (*add)(const void*, size_t, - do - { - _gcry_pre_syscall (); -- if (fips_mode ()) -- { -- /* DRBG chaining defined in SP 800-90A (rev 1) specify -- * the upstream (kernel) DRBG needs to be reseeded for -- * initialization of downstream (libgcrypt) DRBG. For this -- * in RHEL, we repurposed the GRND_RANDOM flag of getrandom API. -- * The libgcrypt DRBG is initialized with 48B of entropy, but -- * the kernel can provide only 32B at a time after reseeding -- * so we need to limit our requests to 32B here. -- * This is clarified in IG 7.19 / IG D.K. for FIPS 140-2 / 3 -- * and might not be applicable on other FIPS modules not running -- * RHEL kernel. -- */ -- nbytes = length < 32 ? length : 32; -- ret = getrandom (buffer, nbytes, GRND_RANDOM); -- } -- else -- { -- nbytes = length < sizeof (buffer) ? length : sizeof (buffer); -- ret = getentropy (buffer, nbytes); -- } -+ nbytes = length < sizeof (buffer) ? length : sizeof (buffer); -+ ret = getentropy (buffer, nbytes); - _gcry_post_syscall (); - } - while (ret == -1 && errno == EINTR); diff --git a/repos/spack_repo/builtin/packages/libgdsii/package.py b/repos/spack_repo/builtin/packages/libgdsii/package.py index f4441da4c77..ab72b219a97 100644 --- a/repos/spack_repo/builtin/packages/libgdsii/package.py +++ b/repos/spack_repo/builtin/packages/libgdsii/package.py @@ -20,7 +20,8 @@ class Libgdsii(AutotoolsPackage): version("0.21", sha256="1adc571c6b53df4c08d108f9ac4f4a7fd6fbefd4bc56f74e0b7b2801353671b8") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("autoconf", type="build") depends_on("automake", type="build") diff --git a/repos/spack_repo/builtin/packages/libgee/package.py b/repos/spack_repo/builtin/packages/libgee/package.py new file mode 100644 index 00000000000..5747f45293f --- /dev/null +++ b/repos/spack_repo/builtin/packages/libgee/package.py @@ -0,0 +1,38 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Libgee(AutotoolsPackage): + """Libgee is a collection library providing GObject-based interfaces and classes for commonly + used data structures.""" + + homepage = "https://gitlab.gnome.org/GNOME/libgee" + url = "https://download.gnome.org/sources/libgee/0.20/libgee-0.20.8.tar.xz" + git = "https://gitlab.gnome.org/GNOME/libgree.git" + + maintainers("KineticTheory") + + license("GNU LGPL-2.1") + + version("0.20.8", sha256="189815ac143d89867193b0c52b7dc31f3aa108a15f04d6b5dca2b6adfad0b0ee") + + depends_on("c", type="build") + + depends_on("autoconf", type="build") + depends_on("m4", type="build") + depends_on("glib@2.54:", type="build") + depends_on("vala", type="build") + + def configure_args(self): + extra_args = ["--enable-vala"] + return extra_args + + def url_for_version(self, version): + return ( + f"https://download.gnome.org/sources/libgee/{version.up_to(2)}/libgee-{version}.tar.xz" + ) diff --git a/repos/spack_repo/builtin/packages/libgeopm/package.py b/repos/spack_repo/builtin/packages/libgeopm/package.py new file mode 100644 index 00000000000..ff4f9ab5ed7 --- /dev/null +++ b/repos/spack_repo/builtin/packages/libgeopm/package.py @@ -0,0 +1,134 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import os + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Libgeopm(AutotoolsPackage): + """The Global Extensible Open Power Manager (GEOPM) Runtime is designed to + enhance energy efficiency of applications through active hardware + configuration.""" + + homepage = "https://geopm.github.io" + git = "https://github.com/geopm/geopm.git" + url = "https://github.com/geopm/geopm/tarball/v3.2.2" + + maintainers("bgeltz", "cmcantalupo") + license("BSD-3-Clause") + tags = ["e4s"] + + version("develop", branch="dev", get_full_repo=True) + version("3.2.2", sha256="715383060187a84b0d4022a823805b158709ec9225d2f35dba94af63cd260afe") + version( + "3.2.1", + sha256="9177da3af335256592c4ea8ae0dd4f8f9c8fb4caf65965af6216e7975d094b99", + deprecated=True, + ) + version( + "3.2.0", + sha256="b708233e1bfda66408c500f2ac0cbaf042140870bffdced12dd7cabbd18e0025", + deprecated=True, + ) + version( + "3.1.0", + sha256="2d890cad906fd2008dc57f4e06537695d4a027e1dc1ed92feed4d81bb1a1449e", + deprecated=True, + ) + + variant("debug", default=False, description="Enable debug") + variant("overhead", default=False, description="Track time spent in GEOPM API calls") + variant("beta", default=False, description="Enable beta features") + variant("mpi", default=True, description="Enable MPI dependent components") + variant("fortran", default=True, description="Build fortran interface") + variant("openmp", default=True, description="Build with OpenMP") + variant("ompt", default=True, description="Use OpenMP Tools Interface") + variant("gnu-ld", default=False, description="Assume C compiler uses gnu-ld") + variant("intel-mkl", default=True, description="Build with Intel MKL support") + variant( + "checkprogs", + default=False, + description='Build tests (use with "devbuild" or "install --keep-stage")', + ) + + conflicts("%gcc@:7.2", msg="Requires C++17 support") + conflicts("%clang@:4", msg="Requires C++17 support") + conflicts("%gcc", when="+ompt") + + conflicts("platform=darwin", msg="Darwin is not supported") + conflicts("platform=windows", msg="Windows is not supported") + + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("fortran", type="build") # generated + + # Autotools dependencies + depends_on("automake", type="build") + depends_on("autoconf", type="build") + depends_on("libtool", type="build") + depends_on("file") + + # Other dependencies + for ver in ["3.1.0", "3.2.0", "3.2.1", "3.2.2", "develop"]: + depends_on(f"libgeopmd@{ver}", type=("build", "run"), when=f"@{ver}") + + depends_on("py-setuptools-scm@6.4.2:", when="@develop", type="build") # Used in autogen.sh + depends_on("bash-completion") + depends_on("unzip") + depends_on("mpi@2.2:", when="+mpi") + depends_on("libelf") + + # Intel dependencies + depends_on("intel-oneapi-mkl%oneapi", when="+intel-mkl") + + configure_directory = "libgeopm" + + @property + def install_targets(self): + target = ["install"] + if self.spec.satisfies("+checkprogs"): + target += ["checkprogs"] + return target + + def autoreconf(self, spec, prefix): + bash = which("bash", required=True) + with working_dir(self.configure_directory): + if not spec.version.isdevelop(): + version_file = "VERSION" + # Required to workaround missing VERSION files + # from GitHub generated source tarballs + with open(version_file, "w") as fd: + fd.write(f"{spec.version}") + bash("./autogen.sh") + + def configure_args(self): + args = ["--disable-geopmd-local", f"--with-geopmd={self.spec['libgeopmd'].prefix}"] + + args += self.enable_or_disable("debug") + args += self.enable_or_disable("overhead") + args += self.enable_or_disable("beta") + args += self.enable_or_disable("mpi") + args += self.enable_or_disable("fortran") + args += self.enable_or_disable("openmp") + args += self.enable_or_disable("ompt") + args += self.with_or_without("gnu-ld") + + return args + + def setup_run_environment(self, env: EnvironmentModifications) -> None: + # Required to ensure libgeopm.so + # can be used with LD_PRELOAD + if os.path.isdir(self.prefix.lib64): + lib_dir = self.prefix.lib64 + else: + lib_dir = self.prefix.lib + env.prepend_path("LD_LIBRARY_PATH", lib_dir) + + if self.spec.satisfies("+checkprogs"): + env.set("GEOPM_SOURCE", self.stage.source_path) + env.prepend_path("PYTHONPATH", self.stage.source_path) + env.set("GEOPM_INSTALL", self.prefix) diff --git a/repos/spack_repo/builtin/packages/libgeopmd/libtool.patch b/repos/spack_repo/builtin/packages/libgeopmd/libtool.patch new file mode 100644 index 00000000000..136ebb50e3e --- /dev/null +++ b/repos/spack_repo/builtin/packages/libgeopmd/libtool.patch @@ -0,0 +1,23 @@ +From 63b206ad37da12871a49aa1391b8b9d657a1bd41 Mon Sep 17 00:00:00 2001 +From: Brad Geltz +Date: Thu, 17 Jul 2025 16:11:59 -0700 +Subject: [PATCH] Preserve ACLOCAL_PATH if it was already set + +Signed-off-by: Brad Geltz +--- + libgeopmd/autogen.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libgeopmd/autogen.sh b/libgeopmd/autogen.sh +index f56a3e730..a7df602bd 100755 +--- a/libgeopmd/autogen.sh ++++ b/libgeopmd/autogen.sh +@@ -14,4 +14,4 @@ if [ ! -e VERSION ]; then + set -x + fi + fi +-ACLOCAL_PATH=/usr/share/aclocal autoreconf -i -f ++ACLOCAL_PATH=${ACLOCAL_PATH:-/usr/share/aclocal} autoreconf -i -f +-- +2.43.0 + diff --git a/repos/spack_repo/builtin/packages/libgeopmd/nvml-v3.1+.patch b/repos/spack_repo/builtin/packages/libgeopmd/nvml-v3.1+.patch new file mode 100644 index 00000000000..20c35872f9f --- /dev/null +++ b/repos/spack_repo/builtin/packages/libgeopmd/nvml-v3.1+.patch @@ -0,0 +1,28 @@ +From dd7aeed3a135610890626dc2c3d723406b264a04 Mon Sep 17 00:00:00 2001 +From: Brad Geltz +Date: Thu, 15 May 2025 16:46:00 -0700 +Subject: [PATCH] Support NVML via CUDA installation + +Signed-off-by: Brad Geltz +--- + libgeopmd/configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libgeopmd/configure.ac b/libgeopmd/configure.ac +index 80e4d8abf..13cf54eef 100644 +--- a/libgeopmd/configure.ac ++++ b/libgeopmd/configure.ac +@@ -272,8 +272,8 @@ AC_ARG_WITH([nvml], [AS_HELP_STRING([--with-nvml=PATH], + [specify directory for installed nvml package.])]) + if test "x$with_nvml" != x; then + AM_CPPFLAGS="$AM_CPPFLAGS -I$with_nvml/include" +- LD_LIBRARY_PATH="$with_nvml/lib64:$with_nvml/lib:$LD_LIBRARY_PATH" +- AM_LDFLAGS="$AM_LDFLAGS -L$with_nvml/lib -L$with_nvml/lib64" ++ LD_LIBRARY_PATH="$with_nvml/lib64:$with_nvml/lib:$with_nvml/lib/stubs:$LD_LIBRARY_PATH" ++ AM_LDFLAGS="$AM_LDFLAGS -L$with_nvml/lib -L$with_nvml/lib64 -L$with_nvml/lib/stubs" + fi + + AC_ARG_WITH([dcgm], [AS_HELP_STRING([--with-dcgm=PATH], +-- +2.26.2 + diff --git a/repos/spack_repo/builtin/packages/libgeopmd/package.py b/repos/spack_repo/builtin/packages/libgeopmd/package.py new file mode 100644 index 00000000000..9ba283375e4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/libgeopmd/package.py @@ -0,0 +1,147 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import os + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Libgeopmd(AutotoolsPackage): + """The Global Extensible Open Power Manager (GEOPM) Service provides a + user interface for accessing hardware telemetry and settings securely. + + Note: GEOPM interfaces with hardware using Model Specific Registers (MSRs). + For proper usage make sure MSRs are made available via the msr or + msr-safe kernel modules by your administrator.""" + + homepage = "https://geopm.github.io" + git = "https://github.com/geopm/geopm.git" + url = "https://github.com/geopm/geopm/tarball/v3.2.2" + + maintainers("bgeltz", "cmcantalupo") + license("BSD-3-Clause") + tags = ["e4s"] + + version("develop", branch="dev", get_full_repo=True) + version("3.2.2", sha256="715383060187a84b0d4022a823805b158709ec9225d2f35dba94af63cd260afe") + version( + "3.2.1", + sha256="9177da3af335256592c4ea8ae0dd4f8f9c8fb4caf65965af6216e7975d094b99", + deprecated=True, + ) + version( + "3.2.0", + sha256="b708233e1bfda66408c500f2ac0cbaf042140870bffdced12dd7cabbd18e0025", + deprecated=True, + ) + version( + "3.1.0", + sha256="2d890cad906fd2008dc57f4e06537695d4a027e1dc1ed92feed4d81bb1a1449e", + deprecated=True, + ) + + variant("debug", default=False, description="Enable debug") + variant("systemd", default=True, description="Enable use of systemd/DBus") + variant("grpc", default=False, when="@3.2:", description="Enable gRPC support") + variant("liburing", default=True, description="Enables the use of liburing for batch I/O") + variant( + "libcap", default=True, description="Enables the use of libcap to do capabilities checks" + ) + variant("gnu-ld", default=False, description="Assume C compiler uses gnu-ld") + + variant("level_zero", default=False, description="Enables the use of oneAPI Level Zero loader") + variant("nvml", default=False, description="Enable NVML support") + + variant( + "rawmsr", + default=True, + description="Enable direct use of standard msr device driver", + when="@3.2:", + ) + + conflicts( + "+nvml", when="@3.1.0+level_zero", msg="LevelZero and NVML support are mutually exclusive" + ) + + conflicts("%gcc@:7.2", msg="Requires C++17 support") + conflicts("%clang@:4", msg="Requires C++17 support") + + conflicts("platform=darwin", msg="Darwin is not supported") + conflicts("platform=windows", msg="Windows is not supported") + + patch("nvml-v3.1+.patch", when="@3.1: +nvml") + patch("libtool.patch", when="@3.2.0") + + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("fortran", type="build") # generated + + # Autotools dependencies + depends_on("automake", type="build") + depends_on("autoconf", type="build") + depends_on("libtool", type="build") + depends_on("file") + + # Other dependencies + depends_on("py-setuptools-scm@6.4.2:", when="@develop", type="build") # Used in autogen.sh + depends_on("bash-completion") + depends_on("unzip") + depends_on("systemd", when="+systemd") + depends_on("libcap", when="+libcap") + depends_on("liburing", when="+liburing") + depends_on("oneapi-level-zero", when="+level_zero") + depends_on("cuda", when="+nvml") + depends_on("grpc+shared", when="+grpc") + depends_on("protobuf", when="+grpc") + depends_on("pkgconfig", when="+grpc") + + configure_directory = "libgeopmd" + + def autoreconf(self, spec, prefix): + bash = which("bash", required=True) + with working_dir(self.configure_directory): + if not spec.version.isdevelop(): + version_file = "VERSION" + # Required to workaround missing VERSION files + # from GitHub generated source tarballs + with open(version_file, "w") as fd: + fd.write(f"{spec.version}") + bash("./autogen.sh") + + def configure_args(self): + args = [ + *self.enable_or_disable("debug"), + *self.enable_or_disable("systemd"), + *self.enable_or_disable("io-uring", variant="liburing"), + *self.with_or_without("liburing", activation_value="prefix"), + *self.enable_or_disable("libcap"), + *self.with_or_without("gnu-ld"), + *self.enable_or_disable("levelzero", variant="level_zero"), + *self.enable_or_disable("nvml"), + *self.enable_or_disable("rawmsr"), + *self.enable_or_disable("grpc"), + ] + + if self.spec.satisfies("+nvml"): + args += [ + "--with-nvml=" + + join_path( + self.spec["cuda"].prefix, "targets", f"{self.spec.target.family}-linux" + ) + ] + + if self.spec.satisfies("@develop") and self.spec.target.family != "x86_64": + args.append("--disable-cpuid") + return args + + def setup_run_environment(self, env: EnvironmentModifications) -> None: + # Required to ensure geopmdpy can load + # libgeopmd.so.2 via CFFI + if os.path.isdir(self.prefix.lib64): + lib_dir = self.prefix.lib64 + else: + lib_dir = self.prefix.lib + env.prepend_path("LD_LIBRARY_PATH", lib_dir) diff --git a/repos/spack_repo/builtin/packages/libgeotiff/package.py b/repos/spack_repo/builtin/packages/libgeotiff/package.py index c503de90c03..b9faf5a700d 100644 --- a/repos/spack_repo/builtin/packages/libgeotiff/package.py +++ b/repos/spack_repo/builtin/packages/libgeotiff/package.py @@ -20,6 +20,7 @@ class Libgeotiff(AutotoolsPackage): license("Public-Domain") + version("1.7.4", sha256="c598d04fdf2ba25c4352844dafa81dde3f7fd968daa7ad131228cd91e9d3dc47") version("1.7.1", sha256="05ab1347aaa471fc97347d8d4269ff0c00f30fa666d956baba37948ec87e55d6") version("1.7.0", sha256="fc304d8839ca5947cfbeb63adb9d1aa47acef38fc6d6689e622926e672a99a7e") version("1.6.0", sha256="9311017e5284cffb86f2c7b7a9df1fb5ebcdc61c30468fb2e6bca36e4272ebca") diff --git a/repos/spack_repo/builtin/packages/libgit2/package.py b/repos/spack_repo/builtin/packages/libgit2/package.py index 74fa52183cf..35872f8ae4d 100644 --- a/repos/spack_repo/builtin/packages/libgit2/package.py +++ b/repos/spack_repo/builtin/packages/libgit2/package.py @@ -17,6 +17,8 @@ class Libgit2(CMakePackage): homepage = "https://libgit2.github.com/" url = "https://github.com/libgit2/libgit2/archive/v0.26.0.tar.gz" + version("1.9.1", sha256="14cab3014b2b7ad75970ff4548e83615f74d719afe00aa479b4a889c1e13fc00") + version("1.9.0", sha256="75b27d4d6df44bd34e2f70663cfd998f5ec41e680e1e593238bbe517a84c7ed2") version("1.8.0", sha256="9e1d6a880d59026b675456fbb1593c724c68d73c34c0d214d6eb848e9bbd8ae4") version("1.7.2", sha256="de384e29d7efc9330c6cdb126ebf88342b5025d920dcb7c645defad85195ea7f") version("1.7.0", sha256="d9d0f84a86bf98b73e68997f5c1543cc5067d0ca9c7a5acaba3e8d117ecefef3") diff --git a/repos/spack_repo/builtin/packages/libgit2_glib/package.py b/repos/spack_repo/builtin/packages/libgit2_glib/package.py new file mode 100644 index 00000000000..dc8b9386ff2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/libgit2_glib/package.py @@ -0,0 +1,53 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems import meson +from spack_repo.builtin.build_systems.meson import MesonPackage + +from spack.package import * + + +class Libgit2Glib(MesonPackage): + """libgit2-glib is a glib wrapper library around the libgit2 git access library. + libgit2 only implements the core plumbing functions, not really the higher + level porcelain stuff.""" + + homepage = "https://gitlab.gnome.org/GNOME/libgit2-glib" + url = "https://download.gnome.org/sources/libgit2-glib/1.2/libgit2-glib-1.2.1.tar.xz" + + maintainers("KineticTheory") + + license("LGPL-2.1-or-later") + + version("1.2.1", sha256="97423a779002b3be8751c75f9d79049dfccca3616a26159fc162486772ba785f") + + variant("python", default=True, description="Build with python support") + variant("vapi", default=True, description="Build Vala bindings") + + depends_on("c", type="build") + + depends_on("cairo", type="build") + depends_on("glib@2.44:", type="build") + depends_on("gobject-introspection", type=("build", "link")) + depends_on("gtkplus", type="build") + depends_on("harfbuzz", type="build") + depends_on("libgit2", type=("build", "link")) + depends_on("pcre2", type="build") + depends_on("py-pygobject", when="+python", type="build") + depends_on("vala", when="+vapi", type="build") + + def url_for_version(self, version): + return f"https://download.gnome.org/sources/libgit2-glib/{version.up_to(2)}/libgit2-glib-{version}.tar.xz" + + +class MesonBuilder(meson.MesonBuilder): + def meson_args(self): + args = [] + if not self.spec.satisfies("^libgit2+ssh"): + args.append("-Dssh=false") + if self.spec.satisfies("~vapi"): + args.append("-Dvapi=false") + if self.spec.satisfies("~python"): + args.append("-Dpython=false") + return args diff --git a/repos/spack_repo/builtin/packages/libgpg_error/package.py b/repos/spack_repo/builtin/packages/libgpg_error/package.py index f0d87303fda..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,8 @@ 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") version("1.50", sha256="69405349e0a633e444a28c5b35ce8f14484684518a508dc48a089992fe93e20a") @@ -36,7 +38,7 @@ class LibgpgError(AutotoolsPackage): version("1.21", sha256="b7dbdb3cad63a740e9f0c632a1da32d4afdb694ec86c8625c98ea0691713b84d") version("1.18", sha256="9ff1d6e61d4cef7c1d0607ceef6d40dc33f3da7a3094170c3718c00153d80810") - depends_on("c", type="build") # generated + depends_on("c", type="build") depends_on("awk", type="build") # Patch for using gawk@5, c.f. https://dev.gnupg.org/T4459 diff --git a/repos/spack_repo/builtin/packages/libgpiod/package.py b/repos/spack_repo/builtin/packages/libgpiod/package.py index f8b481355d0..58ae8bc1374 100644 --- a/repos/spack_repo/builtin/packages/libgpiod/package.py +++ b/repos/spack_repo/builtin/packages/libgpiod/package.py @@ -20,6 +20,9 @@ class Libgpiod(AutotoolsPackage): license("LGPL-2.1-or-later") version("master", branch="master") + version("2.2.3", sha256="70de4639856620571f99d851cf1acd48f6462b62ccba929f1a0235ec76b4e4dc") + version("2.2.2", sha256="02794831a65adab942620dd3e8f038ff881c3c127d7d26841d94caa8caea793f") + version("2.2.1", sha256="c6054a64a12681beeb0ce5200867754843bb68465b06c543f132ad984aee3f83") version("2.2.0", sha256="ae35329db7027c740e90c883baf27c26311f0614e6a7b115771b28188b992aec") version("2.1.3", sha256="8d80ea022ae78122aa525308e7423b83064bff278fcd9cd045b94b4f81f8057d") version("2.1.2", sha256="b1bdf1e3f75238695f93e442062bafc069170f2bf4f0cd4b8e049ca67131a1f0") @@ -45,8 +48,7 @@ def autoreconf(self, spec, prefix): Executable("./autogen.sh")() def url_for_version(self, version): - url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-{0}.tar.gz" if version[2] == 0: - return url.format(version.up_to(1)) + return f"https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-v{version.up_to(1)}.tar.gz" else: - return url.format(version) + return f"https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-v{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/libgridxc/package.py b/repos/spack_repo/builtin/packages/libgridxc/package.py index 4dd6a3e64c9..a540876e74f 100644 --- a/repos/spack_repo/builtin/packages/libgridxc/package.py +++ b/repos/spack_repo/builtin/packages/libgridxc/package.py @@ -40,7 +40,7 @@ class Libgridxc(MakefilePackage): parallel = False def edit(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) with working_dir("build", create=True): sh("../src/config.sh") copy("../extra/fortran.mk", "fortran.mk") diff --git a/repos/spack_repo/builtin/packages/libhandy/package.py b/repos/spack_repo/builtin/packages/libhandy/package.py new file mode 100644 index 00000000000..c40f97885d8 --- /dev/null +++ b/repos/spack_repo/builtin/packages/libhandy/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.meson import MesonPackage + +from spack.package import * + + +class Libhandy(MesonPackage): + """The libhandy package provides additional GTK UI widgets for use in developing user + interfaces.""" + + homepage = "https://github.com/gnome/libhandy" + url = "https://download.gnome.org/sources/libhandy/1.8/libhandy-1.8.3.tar.xz" + + maintainers("KineticTheory") + + license("GNU LGPL-2.1") + + version("1.8.3", sha256="05b497229073ff557f10b326e074c5066f8743a302d4820ab97bcb5cd2dab087") + + depends_on("c", type="build") + + depends_on("cairo", type=("build", "link")) + depends_on("dbus", type="build") + depends_on("glib@2.54:", type=("build", "link")) + depends_on("gtkplus", type=("build", "link")) + depends_on("harfbuzz", type="build") + depends_on("mesa", type="build") + depends_on("vala", type=("build", "link")) + + def url_for_version(self, version): + return f"https://download.gnome.org/sources/libhandy/{version.up_to(2)}/libhandy-{version}.tar.xz" diff --git a/repos/spack_repo/builtin/packages/libharu/package.py b/repos/spack_repo/builtin/packages/libharu/package.py index 665046fbd64..4fb2bf449eb 100644 --- a/repos/spack_repo/builtin/packages/libharu/package.py +++ b/repos/spack_repo/builtin/packages/libharu/package.py @@ -4,40 +4,64 @@ import os -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.build_systems import autotools, cmake from spack.package import * -class Libharu(AutotoolsPackage): +class Libharu(autotools.AutotoolsPackage, cmake.CMakePackage): """libharu - free PDF library. Haru is a free, cross platform, open-sourced software library for generating PDF.""" homepage = "http://libharu.org" - url = "https://github.com/libharu/libharu/archive/RELEASE_2_3_0.tar.gz" git = "https://github.com/libharu/libharu.git" license("custom") version("master", branch="master") + version("2.4.5", sha256="0ed3eacf3ceee18e40b6adffbc433f1afbe3c93500291cd95f1477bffe6f24fc") + version("2.4.4", sha256="227ab0ae62979ad65c27a9bc36d85aa77794db3375a0a30af18acdf4d871aee6") + version("2.4.3", sha256="a2c3ae4261504a0fda25b09e7babe5df02b21803dd1308fdf105588f7589d255") + version("2.4.2", sha256="226de46ffb035714f6f3c9ab52f22ca83d95c7af8480f7fd133537f072cda6cc") + version("2.4.1", sha256="1af88a3b53af0b322c5af207935aefaf5b18847da4b70826725f18465fd43ec9") + version("2.4.0", sha256="d1c38c0492257c61fb60c85238d500c05184fd8e9e68fecba9cf304ff2d8726d") version("2.3.0", sha256="8f9e68cc5d5f7d53d1bc61a1ed876add1faf4f91070dbc360d8b259f46d9a4d2") version("2.2.0", sha256="5e63246d2da0272a9dbe5963fd827c7efa6e29d97a2d047c0d4c5f0b780f10b5") + build_system( + conditional("cmake", when="@2.4:"), conditional("autotools", when="@:2.3"), default="cmake" + ) + depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("libtool", type=("build")) - depends_on("autoconf", type=("build")) - depends_on("automake", type=("build")) + with when("build_system=cmake"): + depends_on("cmake@3.10:", type="build") + + with when("build_system=autotools"): + depends_on("libtool", type="build") + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libpng") depends_on("zlib-api") - def autoreconf(self, spec, prefix): + def url_for_version(self, version): + if version >= Version("2.4"): + url = "https://github.com/libharu/libharu/archive/refs/tags/v{0}.tar.gz" + return url.format(version) + else: + url = "https://github.com/libharu/libharu/archive/RELEASE_{0}.tar.gz" + return url.format(version.underscored) + + +class AutotoolsBuilder(autotools.AutotoolsBuilder): + def autoreconf(self, pkg, spec, prefix): """execute their autotools wrapper script""" if os.path.exists("./buildconf.sh"): - bash = which("bash") + bash = which("bash", required=True) bash("./buildconf.sh", "--force") def configure_args(self): @@ -49,7 +73,3 @@ def configure_args(self): args.append(f"--with-png={spec['libpng'].prefix}") return args - - def url_for_version(self, version): - url = "https://github.com/libharu/libharu/archive/RELEASE_{0}.tar.gz" - return url.format(version.underscored) diff --git a/repos/spack_repo/builtin/packages/libiberty/package.py b/repos/spack_repo/builtin/packages/libiberty/package.py index 05b8c64c509..5c4518c6f05 100644 --- a/repos/spack_repo/builtin/packages/libiberty/package.py +++ b/repos/spack_repo/builtin/packages/libiberty/package.py @@ -23,6 +23,7 @@ class Libiberty(AutotoolsPackage, GNUMirrorPackage): license("LGPL-2.0-or-later") + version("2.46.0", sha256="d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2") version("2.41", sha256="ae9a5789e23459e59606e6714723f2d3ffc31c03174191ef0d015bdf06007450") version("2.40", sha256="0f8a4c272d7f17f369ded10a4aca28b8e304828e95526da482b0ccc4dfc9d8e1") version("2.37", sha256="820d9724f020a3e69cb337893a0b63c2db161dadcb0e06fc11dc29eb1e84a32c") diff --git a/repos/spack_repo/builtin/packages/libidn/package.py b/repos/spack_repo/builtin/packages/libidn/package.py index 7a6af280b07..206e2615e55 100644 --- a/repos/spack_repo/builtin/packages/libidn/package.py +++ b/repos/spack_repo/builtin/packages/libidn/package.py @@ -20,6 +20,7 @@ class Libidn(AutotoolsPackage, GNUMirrorPackage): license("LGPL-2.1-or-later", checked_by="snehring") + version("1.43", sha256="bdc662c12d041b2539d0e638f3a6e741130cdb33a644ef3496963a443482d164") version("1.42", sha256="d6c199dcd806e4fe279360cb4b08349a0d39560ed548ffd1ccadda8cdecb4723") version("1.38", sha256="de00b840f757cd3bb14dd9a20d5936473235ddcba06d4bc2da804654b8bbf0f6") version("1.34", sha256="3719e2975f2fb28605df3479c380af2cf4ab4e919e1506527e4c7670afff6e3c") diff --git a/repos/spack_repo/builtin/packages/libidn2/package.py b/repos/spack_repo/builtin/packages/libidn2/package.py index cfe3860368d..85f4a596b09 100644 --- a/repos/spack_repo/builtin/packages/libidn2/package.py +++ b/repos/spack_repo/builtin/packages/libidn2/package.py @@ -19,6 +19,7 @@ class Libidn2(AutotoolsPackage, GNUMirrorPackage): license("GPL-2.0-or-later OR LGPL-3.0-or-later") + version("2.3.8", sha256="f557911bf6171621e1f72ff35f5b1825bb35b52ed45325dcdee931e5d3c0787a") version("2.3.7", sha256="4c21a791b610b9519b9d0e12b8097bf2f359b12f8dd92647611a929e6bfd7d64") version("2.3.4", sha256="93caba72b4e051d1f8d4f5a076ab63c99b77faee019b72b9783b267986dbb45f") version("2.3.3", sha256="f3ac987522c00d33d44b323cae424e2cffcb4c63c6aa6cd1376edacbf1c36eb0") diff --git a/repos/spack_repo/builtin/packages/libint/package.py b/repos/spack_repo/builtin/packages/libint/package.py index fc2415f6f96..0f5b20cd336 100644 --- a/repos/spack_repo/builtin/packages/libint/package.py +++ b/repos/spack_repo/builtin/packages/libint/package.py @@ -5,21 +5,12 @@ import os from spack_repo.builtin.build_systems.autotools import AutotoolsPackage -from spack_repo.builtin.packages.boost.package import Boost from spack.package import * -TUNE_VARIANTS = ( - "none", - "cp2k-lmax-4", - "cp2k-lmax-5", - "cp2k-lmax-6", - "cp2k-lmax-7", - "molgw-lmax-4", - "molgw-lmax-5", - "molgw-lmax-6", - "molgw-lmax-7", -) +TUNE_VARIANTS_CP2K = ("cp2k-lmax-4", "cp2k-lmax-5", "cp2k-lmax-6", "cp2k-lmax-7") +TUNE_VARIANTS_MOLGW = ("molgw-lmax-4", "molgw-lmax-5", "molgw-lmax-6", "molgw-lmax-7") +TUNE_VARIANTS = tuple(["none"]) + TUNE_VARIANTS_CP2K + TUNE_VARIANTS_MOLGW class Libint(AutotoolsPackage): @@ -28,12 +19,14 @@ class Libint(AutotoolsPackage): """ homepage = "https://github.com/evaleev/libint" - url = "https://github.com/evaleev/libint/archive/v2.1.0.tar.gz" + url = "https://github.com/evaleev/libint/archive/v2.11.1.tar.gz" - maintainers("dev-zero") + maintainers("dev-zero", "hfp") license("LGPL-3.0-only") + version("2.11.2", sha256="f2fba90579d95f535a93decdae98028ef3a982e6570e1547a0916186f51e86f2") + version("2.11.1", sha256="58ab0f893d94cbed3ab35a6c26ec5e4d8541c59889407a6d30c50b8ea415bdf3") version("2.9.0", sha256="4929b2f2d3e53479270be052e366e8c70fa154a7f309e5c2c23b7d394159687d") version("2.6.0", sha256="4ae47e8f0b5632c3d2a956469a7920896708e9f0e396ec10071b8181e4c8d9fa") version("2.4.2", sha256="86dff38065e69a3a51d15cfdc638f766044cb87e5c6682d960c14f9847e2eac3") @@ -44,8 +37,9 @@ class Libint(AutotoolsPackage): version("1.1.6", sha256="f201b0c621df678cfe8bdf3990796b8976ff194aba357ae398f2f29b0e2985a6") version("1.1.5", sha256="ec8cd4a4ba1e1a98230165210c293632372f0e573acd878ed62e5ec6f8b6174b") - variant("debug", default=False, description="Enable building with debug symbols") - variant("fortran", default=False, description="Build & install Fortran bindings") + variant("generic", default=False, description="Avoid specialization and larger code size") + variant("shared", default=True, description="Build shared library") + variant("debug", default=False, description="Enable debug symbols") variant( "tune", default="none", @@ -53,18 +47,18 @@ class Libint(AutotoolsPackage): values=TUNE_VARIANTS, description="Tune libint for use with the given package", ) - variant( - "fma", - default=False, - description=( - "Generate code utilizing FMA" " (requires capable CPU and recent enough compiler)" - ), - ) + variant("fma", default=True, description="Generate code utilizing FMA") + variant("cxx", default=False, description="Build and install the C++ API") + + description_fortran = "Build and install Fortran bindings" + variant("fortran", default=False, description=description_fortran) + for tune in TUNE_VARIANTS_CP2K: + variant("fortran", default=True, description=description_fortran, when=f"tune={tune}") # Build dependencies - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("fortran", type="build", when="+fortran") + depends_on("cxx", type="build") + depends_on("c", type="build") depends_on("autoconf@2.52:", type="build") depends_on("automake", type="build") @@ -72,18 +66,21 @@ class Libint(AutotoolsPackage): depends_on("python", type="build") depends_on("cmake@3.19:", when="@2.6.0:", type="build") - # Libint 2 dependencies - # Fixme: Can maintainers please confirm that this is a required dependency - depends_on(Boost.with_default_variants, when="@2:") + # Libint2 dependencies + # Boost is only needed if the Fortran interface is built + # A header-only installation (with no specific libraries) + # is sufficient (Boost.with_default_variants not needed) + depends_on("boost", when="@2: +fortran") + # Eigen is optional and not strictly necessary + depends_on("eigen", when="@2.7.0: +cxx") depends_on("gmp+cxx", when="@2:") - depends_on("eigen", when="@2.7.0:") # unicode variable names in @2.9.0: # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67224 conflicts("%gcc@:9", when="@2.9.0:", msg="libint@2.9.0: requires at least gcc 10") for tvariant in TUNE_VARIANTS[1:]: conflicts( - "tune={0}".format(tvariant), + f"tune={tvariant}", when="@:2.5", msg=( "for versions prior to 2.6, tuning for specific" @@ -94,15 +91,15 @@ class Libint(AutotoolsPackage): def url_for_version(self, version): base_url = "https://github.com/evaleev/libint/archive" if version == Version("1.0.0"): - return "{0}/LIBINT_1_00.tar.gz".format(base_url) + return f"{base_url}/LIBINT_1_00.tar.gz" elif version < Version("2.1.0"): - return "{0}/release-{1}.tar.gz".format(base_url, version.dashed) + return f"{base_url}/release-{version.dashed}.tar.gz" else: - return "{0}/v{1}.tar.gz".format(base_url, version) + return f"{base_url}/v{version}.tar.gz" def autoreconf(self, spec, prefix): if self.spec.satisfies("@2:"): - which("bash")("autogen.sh") + which("bash", required=True)("autogen.sh") else: # Fall back since autogen is not available libtoolize() @@ -124,46 +121,58 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("CFLAGS", self.optflags) env.set("CXXFLAGS", self.optflags) - if self.spec.satisfies("%fj"): + spec = self.spec + if spec.satisfies("%fj +fortran"): env.set("LDFLAGS", "--linkfortran") - # Change AR to xiar if we compile with Intel and we - # find the executable - if self.spec.satisfies("%intel") and which("xiar"): + # Change AR to xiar if compiling with Intel and if xiar is found + intel = spec.satisfies("%intel") or spec.satisfies("%intel-oneapi-compilers") + if intel and which("xiar"): env.set("AR", "xiar") def configure_args(self): - config_args = ["--enable-shared"] + config_args = [] - if self.spec.satisfies("@2:"): + if self.spec.satisfies("+shared"): + config_args += ["--enable-shared"] + + if self.spec.satisfies("@2: ^boost"): # --with-boost option available only from version 2 and above - config_args.extend(["--with-boost={0}".format(self.spec["boost"].prefix)]) + config_args += [f"--with-boost={self.spec['boost'].prefix}"] - # Optimization flag names have changed in libint 2 + # Optimization flag names have changed in libint2 if self.version < Version("2.0.0"): - config_args.extend( - [ - "--with-cc-optflags={0}".format(self.optflags), - "--with-cxx-optflags={0}".format(self.optflags), - ] - ) + config_args += [ + f"--with-cc-optflags={self.optflags}", + f"--with-cxx-optflags={self.optflags}", + ] else: - config_args.extend( - [ - "--with-cxx-optflags={0}".format(self.optflags), - "--with-cxxgen-optflags={0}".format(self.optflags), - ] - ) + config_args += [ + f"--with-cxx-optflags={self.optflags}", + f"--with-cxxgen-optflags={self.optflags}", + ] - # Options required by CP2K, removed in libint 2 + # Options required by CP2K, removed in libint2 if self.version < Version("2.0.0"): - config_args.extend(["--with-libint-max-am=5", "--with-libderiv-max-am1=4"]) + config_args += ["--with-libint-max-am=5", "--with-libderiv-max-am1=4"] if self.spec.satisfies("@2.6.0:"): + # Two phases: (1) (generateprint specialized code, (2) actual build config_args += ["--with-libint-exportdir=generated"] config_args += self.enable_or_disable("debug", activation_value=lambda x: "opt") config_args += self.enable_or_disable("fma") + if self.spec.satisfies("+fma") and "avx2" in self.spec.target: + config_args += ["--with-real-type=libint2::simd::VectorAVXDouble"] + + # Keep code-size at an acceptable limit (independent of "+generic"), + # cf. https://github.com/evaleev/libint/wiki#program-specific-notes + config_args += ["--disable-unrolling"] + + # Not providing this option is ~40% code size increase (on x86-64) + if self.spec.satisfies("+generic"): + config_args += ["--enable-generic-code"] + tune_value = self.spec.variants["tune"].value if tune_value.startswith("cp2k"): lmax = int(tune_value.split("-lmax-")[1]) @@ -171,15 +180,11 @@ def configure_args(self): "--enable-eri=1", "--enable-eri2=1", "--enable-eri3=1", - "--with-max-am={0}".format(lmax), - "--with-eri-max-am={0},{1}".format(lmax, lmax - 1), - "--with-eri2-max-am={0},{1}".format(lmax + 2, lmax + 1), - "--with-eri3-max-am={0},{1}".format(lmax + 2, lmax + 1), + f"--with-max-am={lmax}", + f"--with-eri-max-am={lmax},{lmax - 1}", + f"--with-eri2-max-am={lmax + 2},{lmax + 1}", + f"--with-eri3-max-am={lmax + 2},{lmax + 1}", "--with-opt-am=3", - # keep code-size at an acceptable limit, - # cf. https://github.com/evaleev/libint/wiki#program-specific-notes: - "--enable-generic-code", - "--disable-unrolling", ] if tune_value.startswith("molgw"): lmax = int(tune_value.split("-lmax-")[1]) @@ -189,16 +194,12 @@ def configure_args(self): "--enable-eri2=0", "--enable-eri3=0", "--with-multipole-max-order=0", - "--with-max-am={0}".format(lmax), - "--with-eri-max-am={0}".format(lmax), - "--with-eri2-max-am={0}".format(lmax), - "--with-eri3-max-am={0}".format(lmax), + f"--with-max-am={lmax}", + f"--with-eri-max-am={lmax}", + f"--with-eri2-max-am={lmax}", + f"--with-eri3-max-am={lmax}", "--with-opt-am=2", "--enable-contracted-ints", - # keep code-size at an acceptable limit, - # cf. https://github.com/evaleev/libint/wiki#program-specific-notes: - "--enable-generic-code", - "--disable-unrolling", ] return config_args @@ -247,6 +248,8 @@ def build(self, spec, prefix): ] if spec.satisfies("+fortran"): cmake_args.append("-DENABLE_FORTRAN=ON") + if not spec.satisfies("+cxx"): + cmake_args.append("-DREQUIRE_CXX_API=OFF") if spec.satisfies("+debug"): cmake_args.append("CMAKE_BUILD_TYPE=Debug") cmake = Executable("cmake") diff --git a/repos/spack_repo/builtin/packages/libjpeg/package.py b/repos/spack_repo/builtin/packages/libjpeg/package.py index f4fa986dc2f..2946c33f66a 100644 --- a/repos/spack_repo/builtin/packages/libjpeg/package.py +++ b/repos/spack_repo/builtin/packages/libjpeg/package.py @@ -13,10 +13,11 @@ class Libjpeg(AutotoolsPackage): alongside various utilities for handling JPEG data.""" homepage = "http://www.ijg.org" - url = "https://www.ijg.org/files/jpegsrc.v9d.tar.gz" + url = "https://www.ijg.org/files/jpegsrc.v10.tar.gz" license("BitTorrent-1.0") + version("10", sha256="8b9eaa13242690ebd03e1728ab1edf97a81a78ed6e83624d493655f31ac95ab5") version("9f", sha256="04705c110cb2469caa79fb71fba3d7bf834914706e9641a4589485c1f832565b") version("9e", sha256="4077d6a6a75aeb01884f708919d25934c93305e49f7e3f36db9129320e6f4f3d") version("9d", sha256="6c434a3be59f8f62425b2e3c077e785c9ce30ee5874ea1c270e843f273ba71ee") diff --git a/repos/spack_repo/builtin/packages/libjpeg_turbo/package.py b/repos/spack_repo/builtin/packages/libjpeg_turbo/package.py index 4a7a86df987..c64f0c2d925 100644 --- a/repos/spack_repo/builtin/packages/libjpeg_turbo/package.py +++ b/repos/spack_repo/builtin/packages/libjpeg_turbo/package.py @@ -4,14 +4,12 @@ import sys -from spack_repo.builtin.build_systems import cmake -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack_repo.builtin.build_systems.cmake import CMakePackage from spack.package import * -class LibjpegTurbo(CMakePackage, AutotoolsPackage): +class LibjpegTurbo(CMakePackage): """libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to accelerate baseline JPEG compression and decompression. @@ -23,10 +21,11 @@ class LibjpegTurbo(CMakePackage, AutotoolsPackage): # https://github.com/libjpeg-turbo/libjpeg-turbo/blob/master/BUILDING.md homepage = "https://libjpeg-turbo.org/" - url = "https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.3.tar.gz" + url = "https://github.com/libjpeg-turbo/libjpeg-turbo/archive/3.1.3.tar.gz" license("BSD-3-Clause AND IJG AND Zlib") + version("3.1.3", sha256="3a13a5ba767dc8264bc40b185e41368a80d5d5f945944d1dbaa4b2fb0099f4e5") version("3.0.4", sha256="0270f9496ad6d69e743f1e7b9e3e9398f5b4d606b6a47744df4b73df50f62e38") version("3.0.3", sha256="a649205a90e39a548863a3614a9576a3fb4465f8e8e66d54999f127957c25b21") version("3.0.2", sha256="29f2197345aafe1dcaadc8b055e4cbec9f35aad2a318d61ea081f835af2eebe9") @@ -45,30 +44,9 @@ class LibjpegTurbo(CMakePackage, AutotoolsPackage): version("2.0.3", sha256="a69598bf079463b34d45ca7268462a18b6507fdaa62bb1dfd212f02041499b5d") version("2.0.2", sha256="b45255bd476c19c7c6b198c07c0487e8b8536373b82f2b38346b32b4fa7bb942") version("1.5.90", sha256="cb948ade92561d8626fd7866a4a7ba3b952f9759ea3dd642927bc687470f60b7") - version( - "1.5.3", - sha256="1a17020f859cb12711175a67eab5c71fc1904e04b587046218e36106e07eabde", - deprecated=True, - ) - version( - "1.5.0", - sha256="232280e1c9c3e6a1de95fe99be2f7f9c0362ee08f3e3e48d50ee83b9a2ed955b", - deprecated=True, - ) - version( - "1.3.1", - sha256="5008aeeac303ea9159a0ec3ccff295434f4e63b05aed4a684c9964d497304524", - deprecated=True, - ) provides("jpeg") - build_system( - conditional("autotools", when="@:1.5.3"), - conditional("cmake", when="@1.5.90:"), - default="cmake", - ) - variant( "libs", default="shared,static", @@ -107,34 +85,16 @@ class LibjpegTurbo(CMakePackage, AutotoolsPackage): # depends_on('yasm', type='build') depends_on("nasm", type="build") - with when("build_system=autotools"): - depends_on("autoconf", type="build") - depends_on("automake", type="build") - depends_on("libtool", type="build") - - with when("build_system=cmake"): - depends_on("cmake", type="build", when="@1.5.90:") - @property def libs(self): shared = self.spec.satisfies("libs=shared") name = "jpeg" if sys.platform == "win32" else "libjpeg*" return find_libraries(name, root=self.prefix, shared=shared, recursive=True, runtime=False) - -class CMakeBuilder(cmake.CMakeBuilder): def cmake_args(self): - args = [ + return [ self.define("ENABLE_SHARED", self.spec.satisfies("libs=shared")), self.define("ENABLE_STATIC", self.spec.satisfies("libs=static")), self.define_from_variant("WITH_JPEG8", "jpeg8"), self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), ] - - return args - - @run_after("install") - def darwin_fix(self): - # The shared library is not installed correctly on Darwin; fix this - if self.spec.satisfies("platform=darwin") and self.spec.satisfies("+shared"): - fix_darwin_install_name(self.prefix.lib) 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/libmbim/package.py b/repos/spack_repo/builtin/packages/libmbim/package.py index 08f6119b3a3..d2a2faa20f7 100644 --- a/repos/spack_repo/builtin/packages/libmbim/package.py +++ b/repos/spack_repo/builtin/packages/libmbim/package.py @@ -33,5 +33,5 @@ class Libmbim(AutotoolsPackage): depends_on("glib@:2.62.0") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/libmcfp/package.py b/repos/spack_repo/builtin/packages/libmcfp/package.py new file mode 100644 index 00000000000..38bfab6e1fb --- /dev/null +++ b/repos/spack_repo/builtin/packages/libmcfp/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class Libmcfp(CMakePackage): + """A library for parsing command line arguments and configuration files and making them + available throughout a program. + """ + + homepage = "https://github.com/mhekkel/libmcfp" + url = "https://github.com/mhekkel/libmcfp/archive/refs/tags/v1.4.2.tar.gz" + + license("BSD-2-Clause", checked_by="snehring") + + version("1.4.2", sha256="dcdf3e81601081b2a9e2f2e1bb1ee2a8545190358d5d9bec9158ad70f5ca355e") + + depends_on("cxx", type="build") diff --git a/repos/spack_repo/builtin/packages/libmesh/package.py b/repos/spack_repo/builtin/packages/libmesh/package.py index c6670fa8e75..9c001ce5d7c 100644 --- a/repos/spack_repo/builtin/packages/libmesh/package.py +++ b/repos/spack_repo/builtin/packages/libmesh/package.py @@ -21,11 +21,13 @@ class Libmesh(AutotoolsPackage): version("master", branch="master", submodules=True) + version("1.8.4", sha256="2f904d27b763670df74e410de8e7d3e73fb17d52d06e57b32f42e44fd61cd1e6") version("1.7.6", sha256="65093cc97227193241f78647ec2f04a1852437f40d3d1c49285c6ff712cd0bc8") version("1.7.5", sha256="03a50cb471e7724a46623f0892cf77152f969d9ba89f8fcebd20bdc0845aab83") version("1.7.4", sha256="0d603aacd2761292dff61ff7ce59d9fddd8691133f0219f7d1576bd4626b77b2") version("1.7.3", sha256="fe0bec45a083ddd9e87dc51ab7e68039f3859e7ef0c4a87e76e562b172b6f739") version("1.7.1", sha256="0387d62773cf92356eb128ba92f767e56c298d78f4b97446e68bf288da1eb6b4") + version("1.5.3", sha256="836d5e1de00436a02d8986f2e73b16171167569f062c706080a902c565e9d514") version("1.4.1", sha256="67eb7d5a9c954d891ca1386b70f138333a87a141d9c44213449ca6be69a66414") version("1.4.0", sha256="62d7fce89096c950d1b38908484856ea63df57754b64cde6582e7ac407c8c81d") version("1.3.1", sha256="638cf30d05c249315760f16cbae4804964db8857a04d5e640f37617bef17ab0f") @@ -43,7 +45,9 @@ class Libmesh(AutotoolsPackage): variant( "exodusii", default=False, description="Compile with the bundled ExodusII output library" ) - variant("vtk", default=False, description="Compile with VTK input/output library") + variant( + "vtk", default=False, when="+mpi", description="Compile with VTK input/output library" + ) variant( "fparser", default=False, @@ -126,6 +130,7 @@ class Libmesh(AutotoolsPackage): multi=False, ) variant("shared", default=True, description="Enables the build of shared libraries") + variant("poly2tri", default=False, description="Enable poly2tri library support") conflicts( "+metaphysicl", @@ -137,6 +142,8 @@ class Libmesh(AutotoolsPackage): depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("m4", type="build") depends_on("boost", when="+boost") @@ -155,7 +162,7 @@ class Libmesh(AutotoolsPackage): depends_on("slepc", when="+slepc") depends_on("petsc", when="+petsc") depends_on("tbb", when="threads=tbb") - depends_on("vtk", when="+vtk") + depends_on("vtk+mpi", when="+vtk") def configure_args(self): options = [] @@ -223,8 +230,8 @@ def configure_args(self): options.append("--enable-netcdf=no") if self.spec.satisfies("+vtk"): - options.append("--enable-vtk") - options.append("--with-vtk=%s" % self.spec["vtk"].prefix) + options.append("--enable-vtk-required") + options.append(f"VTK_DIR={self.spec['vtk'].prefix}") else: options.append("--disable-vtk") @@ -273,7 +280,7 @@ def configure_args(self): options.append("--disable-metis") if self.spec.satisfies("+petsc") or self.spec.satisfies("+slepc"): - options.append("--enable-petsc=yes") + options.append("--enable-petsc-required") options.append("PETSC_DIR=%s" % self.spec["petsc"].prefix) else: options.append("--enable-petsc=no") @@ -324,6 +331,8 @@ def configure_args(self): else: options.append("--enable-tbb=no") + options += self.enable_or_disable("poly2tri") + return options def setup_dependent_build_environment( diff --git a/repos/spack_repo/builtin/packages/libmetatensor/package.py b/repos/spack_repo/builtin/packages/libmetatensor/package.py new file mode 100644 index 00000000000..fe690dfa3d9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/libmetatensor/package.py @@ -0,0 +1,38 @@ +# 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, generator + +from spack.package import * + + +class Libmetatensor(CMakePackage): + """Self-describing sparse tensor data format for atomistic machine learning and beyond.""" + + homepage = "https://docs.metatensor.org" + url = "https://github.com/metatensor/metatensor/releases/download/metatensor-core-v0.0.0/metatensor-core-cxx-0.0.0.tar.gz" + git = "https://github.com/metatensor/metatensor.git" + + maintainers("HaoZeke", "Luthaf", "RMeli") + license("BSD-3-Clause", checked_by="HaoZeke") + + version("0.1.19", sha256="2d319186057cf6da8fe39cc4f961baccce59c4486223113ce554632ae7765e26") + version("0.1.17", sha256="42119e11908239915ccc187d7ca65449b461f1d4b5af4d6df1fb613d687da76a") + + variant("shared", default=True, description="Build shared library version") + + generator("ninja") + + depends_on("cmake@3.16:", type="build") + depends_on("cmake@3.22:", type="build", when="@0.1.18:") + depends_on("rust@1.74.0:", type="build") + depends_on("c", type="build") + depends_on("cxx", type="build") + + def cmake_args(self): + args = [ + self.define("METATENSOR_INSTALL_BOTH_STATIC_SHARED", "OFF"), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + ] + return args diff --git a/repos/spack_repo/builtin/packages/libmetatensor_torch/package.py b/repos/spack_repo/builtin/packages/libmetatensor_torch/package.py new file mode 100644 index 00000000000..d244d5cfa41 --- /dev/null +++ b/repos/spack_repo/builtin/packages/libmetatensor_torch/package.py @@ -0,0 +1,36 @@ +# 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 LibmetatensorTorch(CMakePackage): + """TorchScript/C++ bindings to metatensor""" + + homepage = "https://docs.metatensor.org" + url = "https://github.com/metatensor/metatensor/releases/download/metatensor-torch-v0.0.0/metatensor-torch-cxx-0.0.0.tar.gz" + git = "https://github.com/metatensor/metatensor.git" + + maintainers("HaoZeke", "Luthaf", "RMeli") + license("BSD-3-Clause", checked_by="HaoZeke") + + version("0.8.4", sha256="7d6d7610008840bee8ccfdca23579bcfb3050ef00b32b59451d7f4765c854f2f") + version("0.8.3", sha256="aead508d5300779a99ba4f624a13e84881686c9a4a74df4263388005d5d265c1") + version("0.8.2", sha256="0be618d0cdcfca86cd0c25f47d360b6a2410ebb09ece8d21f153e933ce64bb55") + version("0.8.0", sha256="61d383ce958deafe0e3916088185527680c9118588722b17ec5c39cfbaa6da55") + version("0.8.1", sha256="9da124e8e09dc1859700723a76ff29aef7a216b84a19d38746cc45bf45bc599b") + version("0.7.6", sha256="8dcc07c86094034facba09ebcc6b52f41847c2413737c8f9c88ae0a2990f8d41") + + with default_args(type="build"): + depends_on("cmake@3.16:") + depends_on("cmake@3.22:", when="@0.8.2:") + depends_on("cxx") + depends_on("c") + + depends_on("libmetatensor@0.1.14:0.1") + depends_on("libmetatensor@0.1.15:0.1", when="@0.8.0:") + depends_on("libmetatensor@0.1.18:0.1", when="@0.8.3:") + depends_on("py-torch@2.1.0:") diff --git a/repos/spack_repo/builtin/packages/libmetatomic_torch/package.py b/repos/spack_repo/builtin/packages/libmetatomic_torch/package.py new file mode 100644 index 00000000000..bb4f7732f2a --- /dev/null +++ b/repos/spack_repo/builtin/packages/libmetatomic_torch/package.py @@ -0,0 +1,38 @@ +# 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 LibmetatomicTorch(CMakePackage): + """TorchScript/C++ bindings to metatomic""" + + homepage = "https://docs.metatensor.org/metatomic" + url = "https://github.com/metatensor/metatomic/releases/download/metatomic-torch-v0.0.0/metatomic-torch-cxx-0.0.0.tar.gz" + git = "https://github.com/metatensor/metatomic.git" + + maintainers("HaoZeke", "Luthaf", "RMeli") + license("BSD-3-Clause", checked_by="HaoZeke") + + version("0.1.11", sha256="cd500ab1371fb1d284b9ae514e7feaa205eca231437dd2d527fbf3852e673eef") + version("0.1.10", sha256="c75b1a58fcc37ccef942d2457bfaa98d32a6b985202dec3d90e2b86d5bf66ecf") + # 0.1.9 is skipped because it is partially broken + version("0.1.8", sha256="358e426e762a45b3def076183bf6e1ecadbbd9089a9d6ddc5576907dbf5594fd") + version("0.1.7", sha256="726f5711b70c4b8cc80d9bc6c3ce6f3449f31d20acc644ab68dab083aa4ea572") + version("0.1.6", sha256="4cb9b7bb530a98119186167c31fb00ea7ef3bcc45d593e449e7670e9313e5327") + version("0.1.5", sha256="8ecd1587797fe1cf6b2162ddc10cc84c558fdfd55ab225bc5de4fe15ace8fc3d") + version("0.1.4", sha256="385ec8b8515d674b6a9f093f724792b2469e7ea2365ca596f574b64e38494f94") + version("0.1.3", sha256="01a49e64e6c23d269fe935a557a60ae40092f4aad145fb6201caef26a9e0898b") + + # metatomic-torch/CMakeLists.txt + depends_on("cmake@3.22:", when="@0.1.5:", type="build") + depends_on("cmake@3.16:", type="build") + depends_on("cxx", type="build") + depends_on("c", type="build") + depends_on("libmetatensor-torch@0.8.0:0.8", when="@0.1.4:") + depends_on("libmetatensor-torch@0.7.6:0.7", when="@0.1.3") + depends_on("py-torch@2.3.0:", when="@0.1.9:") + depends_on("py-torch@2.1.0:") diff --git a/repos/spack_repo/builtin/packages/libmicrohttpd/package.py b/repos/spack_repo/builtin/packages/libmicrohttpd/package.py index 8186cc7e7bd..b03c031d6ef 100644 --- a/repos/spack_repo/builtin/packages/libmicrohttpd/package.py +++ b/repos/spack_repo/builtin/packages/libmicrohttpd/package.py @@ -20,6 +20,7 @@ class Libmicrohttpd(AutotoolsPackage, GNUMirrorPackage): license("LGPL-2.1-or-later") + version("1.0.2", sha256="df324fcd0834175dab07483133902d9774a605bfa298025f69883288fd20a8c7") version("1.0.1", sha256="a89e09fc9b4de34dde19f4fcb4faaa1ce10299b9908db1132bbfa1de47882b94") version("0.9.77", sha256="9e7023a151120060d2806a6ea4c13ca9933ece4eacfc5c9464d20edddb76b0a0") version("0.9.76", sha256="f0b1547b5a42a6c0f724e8e1c1cb5ce9c4c35fb495e7d780b9930d35011ceb4c") diff --git a/repos/spack_repo/builtin/packages/libmnl/package.py b/repos/spack_repo/builtin/packages/libmnl/package.py index c1ae3e7a4d0..a6ebc8cd9d3 100644 --- a/repos/spack_repo/builtin/packages/libmnl/package.py +++ b/repos/spack_repo/builtin/packages/libmnl/package.py @@ -21,24 +21,6 @@ class Libmnl(AutotoolsPackage): version("1.0.5", sha256="274b9b919ef3152bfb3da3a13c950dd60d6e2bcd54230ffeca298d03b40d0525") - # Versions that were initially sourced at a third party are now deprecated - with default_args(deprecated=True): - version( - "1.0.3", - sha256="14405da1bb3a679c24e0fe1f2845d47359ed2de8055e588df4b6b19cab68e901", - url="https://github.com/threatstack/libmnl/archive/libmnl-1.0.3.tar.gz", - ) - version( - "1.0.2", - sha256="2caec4716aceb245130f4e42f8c118b92618e37db8bb94e2799aff42b95c269f", - url="https://github.com/threatstack/libmnl/archive/libmnl-1.0.2.tar.gz", - ) - version( - "1.0.1", - sha256="60fe2a6ce59f6118b75b598dc11fc89b97e20ff8633fbea26fc568c45bbb672b", - url="https://github.com/threatstack/libmnl/archive/libmnl-1.0.1.tar.gz", - ) - depends_on("autoconf", type="build") depends_on("automake", type="build") depends_on("libtool", type="build") diff --git a/repos/spack_repo/builtin/packages/libmodbus/package.py b/repos/spack_repo/builtin/packages/libmodbus/package.py index 1fb3d5389f8..0258a531008 100644 --- a/repos/spack_repo/builtin/packages/libmodbus/package.py +++ b/repos/spack_repo/builtin/packages/libmodbus/package.py @@ -18,17 +18,5 @@ class Libmodbus(AutotoolsPackage): license("LGPL-2.1-or-later") version("3.1.10", sha256="899be4e25ab7fe5799d43f9567510d6f063d2e8f56136dd726b6fd976f9b2253") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2022-0367 - version("3.1.6", sha256="d7d9fa94a16edb094e5fdf5d87ae17a0dc3f3e3d687fead81835d9572cf87c16") - version("3.1.5", sha256="f7a9538f23a8786b1ee62a4b75879b5c0e194e728350de1b741ce7d595970f06") - version("3.1.4", sha256="c8c862b0e9a7ba699a49bc98f62bdffdfafd53a5716c0e162696b4bf108d3637") - version("3.1.3", sha256="9e02d79d715522e03b61c313c7278fcf80860816718587819318b8ad9c3fd0ce") - version("3.1.2", sha256="661e14f9dc904f3f1b034464ddaa5fd4b8472f8f5d1ea10a1148af85591b7ee9") - version("3.1.1", sha256="76d93aff749d6029f81dcf1fb3fd6abe10c9b48d376f3a03a4f41c5197c95c99") - version("3.0.8", sha256="022f0691d920b8aee3ee49d7af0f69b7ef80fc3c849a8e0281d5bc27db7a24ea") - version("3.0.7", sha256="6c26850cd5dedcf5dad40977ac7f2ee990a3667f6959a1e05e22959bdf537961") - version("3.0.6", sha256="046d63f10f755e2160dc56ef681e5f5ad3862a57c1955fd82e0ce036b69471b6") - version("3.0.5", sha256="19aad5d55fa315602d6e836a858a3802f1608f9d824afba05fa12a58a1b1e656") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/libnetfilter_conntrack/package.py b/repos/spack_repo/builtin/packages/libnetfilter_conntrack/package.py index d789a61d814..3aff34967a6 100644 --- a/repos/spack_repo/builtin/packages/libnetfilter_conntrack/package.py +++ b/repos/spack_repo/builtin/packages/libnetfilter_conntrack/package.py @@ -22,24 +22,6 @@ class LibnetfilterConntrack(AutotoolsPackage): version("1.0.6", sha256="efcc08021284e75f4d96d3581c5155a11f08fd63316b1938cbcb269c87f37feb") version("1.0.5", sha256="fc9d7daf43605a73045de203bbfc0bca3e07f72d4ac61bcf656868f48692d73a") - # Versions that were initially sourced at a third party are now deprecated - with default_args(deprecated=True): - version( - "1.0.4", - sha256="68168697b9d6430b7797ddd579e13a2cef06ea15c154dfd14e18be64e035ea6e", - url="https://github.com/Distrotech/libnetfilter_conntrack/archive/libnetfilter_conntrack-1.0.4.tar.gz", - ) - version( - "1.0.3", - sha256="e2129d7c0346c7140355d643da8e3409cbd755689ea889bc0d6dbd557f1b5671", - url="https://github.com/Distrotech/libnetfilter_conntrack/archive/libnetfilter_conntrack-1.0.3.tar.gz", - ) - version( - "1.0.2", - sha256="97f641a2e47053bd87bc817292519d6661e8f84a22d3314724b83b9f5eaddbff", - url="https://github.com/Distrotech/libnetfilter_conntrack/archive/libnetfilter_conntrack-1.0.2.tar.gz", - ) - depends_on("c", type="build") # generated depends_on("autoconf", type="build") diff --git a/repos/spack_repo/builtin/packages/libnetfilter_cthelper/package.py b/repos/spack_repo/builtin/packages/libnetfilter_cthelper/package.py index fed8bbc90e4..540ef8be878 100644 --- a/repos/spack_repo/builtin/packages/libnetfilter_cthelper/package.py +++ b/repos/spack_repo/builtin/packages/libnetfilter_cthelper/package.py @@ -17,15 +17,6 @@ class LibnetfilterCthelper(AutotoolsPackage): version("1.0.1", sha256="14073d5487233897355d3ff04ddc1c8d03cc5ba8d2356236aa88161a9f2dc912") - # Versions that were initially sourced at a third party are now deprecated - with default_args(deprecated=True): - # This appears to be version 1.0.0 - version( - "1.2-2019Q4", - sha256="15a7b13999d1428d75e720c8116318cd51bec1d365852ae1778d3c85b93a9777", - url="https://github.com/vyos/libnetfilter-cthelper/archive/VyOS_1.2-2019Q4.tar.gz", - ) - depends_on("c", type="build") # generated depends_on("autoconf", type="build") diff --git a/repos/spack_repo/builtin/packages/libnetfilter_cttimeout/package.py b/repos/spack_repo/builtin/packages/libnetfilter_cttimeout/package.py index e181803a2d4..46bf4f5386a 100644 --- a/repos/spack_repo/builtin/packages/libnetfilter_cttimeout/package.py +++ b/repos/spack_repo/builtin/packages/libnetfilter_cttimeout/package.py @@ -17,15 +17,6 @@ class LibnetfilterCttimeout(AutotoolsPackage): version("1.0.1", sha256="0b59da2f3204e1c80cb85d1f6d72285fc07b01a2f5678abf5dccfbbefd650325") - # Versions that were initially sourced at a third party are now deprecated - with default_args(deprecated=True): - # This appears to be version 1.0.0 - version( - "1.2-2019Q4", - sha256="71cebdf07a578901b160a54199062a4b4cd445e14742e2c7badc0900d8ae56b6", - url="https://github.com/vyos/libnetfilter-cttimeout/archive/VyOS_1.2-2019Q4.tar.gz", - ) - depends_on("c", type="build") # generated depends_on("autoconf", type="build") diff --git a/repos/spack_repo/builtin/packages/libnetfilter_queue/package.py b/repos/spack_repo/builtin/packages/libnetfilter_queue/package.py index 064b6ee6dcc..b58bf7cc96a 100644 --- a/repos/spack_repo/builtin/packages/libnetfilter_queue/package.py +++ b/repos/spack_repo/builtin/packages/libnetfilter_queue/package.py @@ -17,15 +17,6 @@ class LibnetfilterQueue(AutotoolsPackage): version("1.0.5", sha256="f9ff3c11305d6e03d81405957bdc11aea18e0d315c3e3f48da53a24ba251b9f5") - # Versions that were initially sourced at a third party are now deprecated - with default_args(deprecated=True): - # This appears to be version 1.0.2 - version( - "1.2-2019Q4", - sha256="73b87e600b492cf9e3aa8fb6e9855e1ccc523a7bc466c1fd1a0e6ffa424d746e", - url="https://github.com/vyos/libnetfilter-queue/archive/VyOS_1.2-2019Q4.tar.gz", - ) - depends_on("c", type="build") # generated depends_on("autoconf", type="build") diff --git a/repos/spack_repo/builtin/packages/libnfnetlink/package.py b/repos/spack_repo/builtin/packages/libnfnetlink/package.py index afcacaf1035..33a73ebb545 100644 --- a/repos/spack_repo/builtin/packages/libnfnetlink/package.py +++ b/repos/spack_repo/builtin/packages/libnfnetlink/package.py @@ -20,24 +20,6 @@ class Libnfnetlink(AutotoolsPackage): version("1.0.2", sha256="b064c7c3d426efb4786e60a8e6859b82ee2f2c5e49ffeea640cfe4fe33cbc376") - # Versions that were initially sourced at a third party are now deprecated - with default_args(deprecated=True): - version( - "1.0.1", - sha256="11dd8a1045b03d47c878535eeb6b9eb34db295d21903a4dfd2c2cc63f45e675b", - url="https://github.com/Distrotech/libnfnetlink/archive/libnfnetlink-1.0.1.tar.gz", - ) - version( - "1.0.0", - sha256="1d43456e51d5ff2e8bc84b68d8acad3bb15603cfaa806ba9693eea4f2aa1abeb", - url="https://github.com/Distrotech/libnfnetlink/archive/libnfnetlink-1.0.0.tar.gz", - ) - version( - "0.0.41", - sha256="84381ad3aec4fc4884c020c7774a241160d92ed50c9f93a2660db94e212cbb72", - url="https://github.com/Distrotech/libnfnetlink/archive/libnfnetlink-0.0.41.tar.gz", - ) - depends_on("c", type="build") # generated depends_on("autoconf", type="build") diff --git a/repos/spack_repo/builtin/packages/libnfsidmap/package.py b/repos/spack_repo/builtin/packages/libnfsidmap/package.py index 5c931beba26..24f5d01449d 100644 --- a/repos/spack_repo/builtin/packages/libnfsidmap/package.py +++ b/repos/spack_repo/builtin/packages/libnfsidmap/package.py @@ -24,5 +24,5 @@ class Libnfsidmap(AutotoolsPackage): depends_on("m4", type="build") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/libnsl/package.py b/repos/spack_repo/builtin/packages/libnsl/package.py index 1bc37dd5bb8..fa077c67010 100644 --- a/repos/spack_repo/builtin/packages/libnsl/package.py +++ b/repos/spack_repo/builtin/packages/libnsl/package.py @@ -32,11 +32,11 @@ class Libnsl(AutotoolsPackage): depends_on("automake", type="build") depends_on("libtool", type="build") depends_on("m4", type="build") - depends_on("pkgconfig@0.9.0:", type="build") + depends_on("pkgconfig", type="build") depends_on("gettext") depends_on("rpcsvc-proto") depends_on("libtirpc") def autoreconf(self, spec, prefix): - autoreconf = which("autoreconf") + autoreconf = which("autoreconf", required=True) autoreconf("-fi") diff --git a/repos/spack_repo/builtin/packages/libogg/package.py b/repos/spack_repo/builtin/packages/libogg/package.py index b6a76d507ac..737e554d5d4 100644 --- a/repos/spack_repo/builtin/packages/libogg/package.py +++ b/repos/spack_repo/builtin/packages/libogg/package.py @@ -72,21 +72,19 @@ class GenericBuilder(generic.GenericBuilder): def is_64bit(self): return "64" in str(self.pkg.spec.target.family) - def build(self, spec, prefix): + def build(self, pkg, spec, prefix): if spec.satisfies("%msvc"): - plat_tools = self.pkg.compiler.msvc_version + plat_tools = pkg.compiler.msvc_version else: raise RuntimeError("Package does not support non MSVC compilers on Windows") ms_build_args = ["libogg_static.vcxproj", "/p:PlatformToolset=v%s" % plat_tools] msbuild(*ms_build_args) - def install(self, spec, prefix): + def install(self, pkg, spec, prefix): mkdirp(prefix.include.ogg) mkdirp(prefix.lib) mkdirp(prefix.share) - install( - os.path.join(self.pkg.stage.source_path, "include", "ogg", "*.h"), prefix.include.ogg - ) + install(os.path.join(pkg.stage.source_path, "include", "ogg", "*.h"), prefix.include.ogg) plat_prefix = "x64" if self.is_64bit() else "x86" install(os.path.join(plat_prefix, "Debug", "*.lib"), prefix.lib) install_tree(os.path.join(self.pkg.stage.source_path, "doc"), prefix.share) diff --git a/repos/spack_repo/builtin/packages/libp11/package.py b/repos/spack_repo/builtin/packages/libp11/package.py index 787f22c6f74..29605e31875 100644 --- a/repos/spack_repo/builtin/packages/libp11/package.py +++ b/repos/spack_repo/builtin/packages/libp11/package.py @@ -37,5 +37,5 @@ class Libp11(AutotoolsPackage): depends_on("openssl") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./bootstrap") diff --git a/repos/spack_repo/builtin/packages/libpam/package.py b/repos/spack_repo/builtin/packages/libpam/package.py index f31b4e223df..4f99d8d7c09 100644 --- a/repos/spack_repo/builtin/packages/libpam/package.py +++ b/repos/spack_repo/builtin/packages/libpam/package.py @@ -29,5 +29,5 @@ class Libpam(AutotoolsPackage): depends_on("linux-pam") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./bootstrap.sh") diff --git a/repos/spack_repo/builtin/packages/libpfm4/package.py b/repos/spack_repo/builtin/packages/libpfm4/package.py index 5d6ec7a303f..11e65c85f7b 100644 --- a/repos/spack_repo/builtin/packages/libpfm4/package.py +++ b/repos/spack_repo/builtin/packages/libpfm4/package.py @@ -30,6 +30,9 @@ class Libpfm4(MakefilePackage): # Fails to build libpfm4 with intel compiler version 16 and 17 conflicts("%intel@16:17") + # Only works on linux, by construction + requires("platform=linux") + # Set default optimization level (-O2) if not specified. def flag_handler(self, name, flags): if name == "cflags": diff --git a/repos/spack_repo/builtin/packages/libpostal/package.py b/repos/spack_repo/builtin/packages/libpostal/package.py index ee03497517f..06acd64a1d4 100644 --- a/repos/spack_repo/builtin/packages/libpostal/package.py +++ b/repos/spack_repo/builtin/packages/libpostal/package.py @@ -36,7 +36,7 @@ class Libpostal(AutotoolsPackage): depends_on("pkgconfig", type="build") def autoreconf(self, spec, prefix): - which("sh")("bootstrap.sh") + which("sh", required=True)("bootstrap.sh") def configure_args(self): args = ["--datadir={0}".format(self.prefix.share)] diff --git a/repos/spack_repo/builtin/packages/libpressio/package.py b/repos/spack_repo/builtin/packages/libpressio/package.py index ad905ef5306..246eaf32efd 100644 --- a/repos/spack_repo/builtin/packages/libpressio/package.py +++ b/repos/spack_repo/builtin/packages/libpressio/package.py @@ -13,7 +13,7 @@ class Libpressio(CMakePackage, CudaPackage): # codarcode gets "stable" releases ~1/yr; robertu94 contains development versions homepage = "https://github.com/codarcode/libpressio" - url = "https://github.com/robertu94/libpressio/archive/0.31.1.tar.gz" + url = "https://github.com/robertu94/libpressio/archive/0.99.4.tar.gz" git = "https://github.com/robertu94/libpressio" tags = ["e4s"] @@ -247,6 +247,7 @@ class Libpressio(CMakePackage, CudaPackage): depends_on("libstdcompat", when="@0.52.0:") depends_on("c-blosc", when="+blosc") + depends_on("c-blosc2", when="+blosc2") depends_on("fpzip", when="+fpzip") depends_on("hdf5", when="+hdf5") # this might seem excessive, but if HDF5 is external and parallel @@ -258,6 +259,9 @@ class Libpressio(CMakePackage, CudaPackage): depends_on("python@3:", when="+python", type=("build", "link", "run")) depends_on("py-numpy", when="+python", type=("build", "link", "run")) depends_on("swig@3.12:", when="+python", type="build") + # swig >= 4.3.0 changed SWIG_Python_AppendOutput to a 3-arg function; + # libpressio's bundled numpy.i still calls the old 2-arg form (unfixed upstream) + depends_on("swig@:4.2", when="+python", type="build") depends_on("sz@2.1.8.1:", when="@0.55.2:+sz") depends_on("sz@2.1.11.1:", when="@0.55.3:+sz") depends_on("sz@2.1.12:", when="@0.69.0:+sz") @@ -437,7 +441,7 @@ def test_smoke(self): cmake(*args) cmake("--build", ".") - exe = which("pressio_smoke_tests") + exe = which("pressio_smoke_tests", required=True) out = exe(output=str.split, error=str.split) expected = "all passed" diff --git a/repos/spack_repo/builtin/packages/libproxy/package.py b/repos/spack_repo/builtin/packages/libproxy/package.py index b65114d10ad..5354f5b4784 100644 --- a/repos/spack_repo/builtin/packages/libproxy/package.py +++ b/repos/spack_repo/builtin/packages/libproxy/package.py @@ -2,12 +2,14 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems import cmake, meson from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.meson import MesonPackage from spack.package import * -class Libproxy(CMakePackage): +class Libproxy(CMakePackage, MesonPackage): """libproxy is a library that provides automatic proxy configuration management.""" @@ -16,6 +18,21 @@ class Libproxy(CMakePackage): license("LGPL-2.0-or-later") + build_system( + conditional("meson", when="@0.5:"), conditional("cmake", when="@:0.4"), default="meson" + ) + + version("0.5.11", sha256="b364f4dbbffc5bdf196330cb76b48abcb489f38b1543e67595ca6cb7ec45d265") + version("0.5.10", sha256="84734a0b89c95f4834fd55c26b362be2fb846445383e37f5209691694ad2b5de") + version("0.5.9", sha256="a1976c3ac4affedc17e6d40cf78c9d8eca6751520ea3cbbec1a8850f7ded1565") + version("0.5.8", sha256="64e363855012175bf796b37cacddf7bc7e08af0bf406eea94b549ce207987d3e") + version("0.5.7", sha256="ca64b28a014cffde43f4052ec78b25a8a0f1aa4d78da721c605d64b1591e78dd") + version("0.5.6", sha256="68cb4548143e843826a35e024dba8ced92117c0982c2cc9a4c8247e32d259603") + version("0.5.5", sha256="11a2eace773755e79b8d37833985ce475aed4ca4d3e6656defd5eef67b5a00f1") + version("0.5.4", sha256="a6e2220349b2025de9b6d9d7f8bb347bf0c728f02a921761ad5f9f66c7436de9") + version("0.5.3", sha256="0d8d8e4dd96239ba173c2b18905c0bb6e161fd5000e1e0aeace16f754e9a9108") + version("0.5.2", sha256="7d75a2cf1c977056eb86f460daab0247d30e6a34e26ec755aab4de40cfd0a06d") + version("0.4.18", sha256="0b4a9218d88f6cf9fa25996a3f38329a11f688a9d026141d9d0e966d8fa63837") version("0.4.17", sha256="88c624711412665515e2800a7e564aabb5b3ee781b9820eca9168035b0de60a9") version("0.4.16", sha256="9e7959d6ae1d6c817f0ac1e253105ce8d99f55d7821c1b6eaef32bf6879c6f0a") version("0.4.15", sha256="18f58b0a0043b6881774187427ead158d310127fc46a1c668ad6d207fb28b4e0") @@ -23,16 +40,29 @@ class Libproxy(CMakePackage): version("0.4.13", sha256="d610bc0ef81a18ba418d759c5f4f87bf7102229a9153fb397d7d490987330ffd") variant("perl", default=False, description="Enable Perl bindings") - variant("python", default=False, description="Enable Python bindings", when="@0.4.16:") + variant("python", default=False, description="Enable Python bindings", when="@0.4.14:0.4") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("zlib-api") depends_on("perl", type=("build", "run"), when="+perl") + depends_on("glib@2.71.3:", when="@0.5:") + depends_on("curl", when="@0.5:") + depends_on("gsettings-desktop-schemas", when="@0.5:") + depends_on("gobject-introspection", when="@0.5:") + depends_on("vala", when="@0.5:") + + extends("python", when="+python") + + @property + def libs(self): + return find_libraries( + ["libproxy", "libproxy/*"], root=self.prefix, shared=True, recursive=True + ) - extends("python@:3.8", when="+python") +class CMakeBuilder(cmake.CMakeBuilder): def cmake_args(self): args = [ self.define_from_variant("WITH_PERL", "perl"), @@ -45,10 +75,7 @@ def cmake_args(self): args.append(self.define("PYTHON3_SITEPKG_DIR", python_platlib)) return args - def setup_run_environment(self, env: EnvironmentModifications) -> None: - if self.spec.satisfies("+python"): - libs = self.spec["libproxy"].libs.directories[0] - if self.spec.satisfies("platform=darwin"): - env.prepend_path("DYLD_FALLBACK_LIBRARY_PATH", libs) - else: - env.prepend_path("LD_LIBRARY_PATH", libs) + +class MesonBuilder(meson.MesonBuilder): + def meson_args(self): + return ["-Dpacrunner-duktape=False", "-Ddocs=False"] diff --git a/repos/spack_repo/builtin/packages/libquo/package.py b/repos/spack_repo/builtin/packages/libquo/package.py index 29022398831..c1899010f4e 100644 --- a/repos/spack_repo/builtin/packages/libquo/package.py +++ b/repos/spack_repo/builtin/packages/libquo/package.py @@ -40,7 +40,7 @@ class Libquo(AutotoolsPackage): @when("@develop") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/librdkafka/package.py b/repos/spack_repo/builtin/packages/librdkafka/package.py index b793853ea5e..e5a856607ec 100644 --- a/repos/spack_repo/builtin/packages/librdkafka/package.py +++ b/repos/spack_repo/builtin/packages/librdkafka/package.py @@ -16,6 +16,11 @@ class Librdkafka(AutotoolsPackage): license("BSD-2-Clause") + version("2.13.2", sha256="14972092e4115f6e99f798a7cb420cbf6daa0c73502b3c52ae42fb5b418eea8f") + version("2.13.0", sha256="3bd351601d8ebcbc99b9a1316cae1b83b00edbcf9411c34287edf1791c507600") + version("2.12.1", sha256="ec103fa05cb0f251e375f6ea0b6112cfc9d0acd977dc5b69fdc54242ba38a16f") + version("2.12.0", sha256="1355d81091d13643aed140ba0fe62437c02d9434b44e90975aaefab84c2bf237") + version("2.11.1", sha256="a2c87186b081e2705bb7d5338d5a01bc88d43273619b372ccb7bb0d264d0ca9f") version("2.8.0", sha256="5bd1c46f63265f31c6bfcedcde78703f77d28238eadf23821c2b43fc30be3e25") version("2.6.1", sha256="0ddf205ad8d36af0bc72a2fec20639ea02e1d583e353163bf7f4683d949e901b") version("2.6.0", sha256="abe0212ecd3e7ed3c4818a4f2baf7bf916e845e902bb15ae48834ca2d36ac745") @@ -29,11 +34,15 @@ class Librdkafka(AutotoolsPackage): version("1.4.4", sha256="0984ffbe17b9e04599fb9eceb16cfa189f525a042bef02474cd1bbfe1ea68416") version("1.4.2", sha256="3b99a36c082a67ef6295eabd4fb3e32ab0bff7c6b0d397d6352697335f4e57eb") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + variant("sasl", default=True, description="Enable SASL") + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("pkgconfig", type="build") depends_on("zstd") depends_on("lz4") depends_on("curl") depends_on("openssl") depends_on("zlib") + depends_on("cyrus-sasl", when="+sasl") diff --git a/repos/spack_repo/builtin/packages/libreproc/package.py b/repos/spack_repo/builtin/packages/libreproc/package.py index 575d2c44910..8b4ca57d0c4 100644 --- a/repos/spack_repo/builtin/packages/libreproc/package.py +++ b/repos/spack_repo/builtin/packages/libreproc/package.py @@ -17,6 +17,7 @@ class Libreproc(CMakePackage): license("MIT") + version("14.2.5", sha256="69467be0cfc80734b821c54ada263c8f1439f964314063f76b7cf256c3dc7ee8") version("14.2.4", sha256="55c780f7faa5c8cabd83ebbb84b68e5e0e09732de70a129f6b3c801e905415dd") variant("cxx", default=False, description="Build reproc C++ bindings") diff --git a/repos/spack_repo/builtin/packages/librsvg/gdk-pixbuf-query-loaders-install.patch b/repos/spack_repo/builtin/packages/librsvg/gdk-pixbuf-query-loaders-install.patch new file mode 100644 index 00000000000..836aa457f5a --- /dev/null +++ b/repos/spack_repo/builtin/packages/librsvg/gdk-pixbuf-query-loaders-install.patch @@ -0,0 +1,22 @@ +diff --git a/gdk-pixbuf-loader/meson.build b/gdk-pixbuf-loader/meson.build +index 6fa10a68b..ff0ef46b4 100644 +--- a/gdk-pixbuf-loader/meson.build ++++ b/gdk-pixbuf-loader/meson.build +@@ -36,13 +36,11 @@ pixbuf_thumbnailer = configure_file( + install_dir: get_option('datadir') / 'thumbnailers' + ) + +-if meson.can_run_host_binaries() +- gdk_pixbuf_query_loaders = find_program(pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_query_loaders', default_value: 'gdk-pixbuf-query-loaders')) +-endif ++gdk_pixbuf_query_loaders = find_program(pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_query_loaders', default_value: 'gdk-pixbuf-query-loaders')) + + pixbufloader_svg_install_args = [ + '--gdk-pixbuf-moduledir', + pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_moduledir', pkgconfig_define: ['prefix', prefix]), +- pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_query_loaders', pkgconfig_define: ['prefix', prefix]), ++ gdk_pixbuf_query_loaders.path(), + pixbuf_dep.get_variable(pkgconfig: 'gdk_pixbuf_cache_file', pkgconfig_define: ['prefix', prefix]) + ] + + \ No newline at end of file diff --git a/repos/spack_repo/builtin/packages/librsvg/package.py b/repos/spack_repo/builtin/packages/librsvg/package.py index 46a2e4bfad7..0b43a188716 100644 --- a/repos/spack_repo/builtin/packages/librsvg/package.py +++ b/repos/spack_repo/builtin/packages/librsvg/package.py @@ -2,12 +2,14 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems import autotools, meson from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.build_systems.meson import MesonPackage from spack.package import * -class Librsvg(AutotoolsPackage): +class Librsvg(AutotoolsPackage, MesonPackage): """Library to render SVG files using Cairo""" homepage = "https://wiki.gnome.org/Projects/LibRsvg" @@ -17,6 +19,15 @@ class Librsvg(AutotoolsPackage): license("LGPL-2.1-or-later", checked_by="wdconinc") + build_system( + conditional("autotools", when="@:2.58"), + conditional("meson", when="@2.59:"), + default="meson", + ) + + version("2.61.0", sha256="dbd0db40a1179a382fbb8cc930837671b973d722ba106a3dee2aad0fd858e2c4") + version("2.60.0", sha256="0b6ffccdf6e70afc9876882f5d2ce9ffcf2c713cbaaf1ad90170daa752e1eec3") + version("2.59.2", sha256="ecd293fb0cc338c170171bbc7bcfbea6725d041c95f31385dc935409933e4597") version("2.58.2", sha256="18e9d70c08cf25f50d610d6d5af571561d67cf4179f962e04266475df6e2e224") version("2.57.3", sha256="1b2267082c0b77ef93b15747a5c754584eb5886baf2d5a08011cde0659c2c479") version("2.56.4", sha256="ea87fdcf5159348fcb08b14c43e91a9d3d9e45dc2006a875d1711bb65b6740f5") @@ -32,24 +43,33 @@ class Librsvg(AutotoolsPackage): depends_on("c", type="build") # generated + with when("build_system=meson"): + depends_on("meson@1.3:", when="@2.61:", type="build") + depends_on("meson@1.2:", type="build") + depends_on("gobject-introspection", type="build") depends_on("pkgconfig", type="build") - # rust minimal version also in `configure` file + # minimum supported rust version (MSRV) from `meson.build` or `configure` file + depends_on("rust@1.85.1:", when="@2.61:", type="build") + depends_on("rust@1.77.2:", when="@2.59:", type="build") depends_on("rust@1.70:", when="@2.57:", type="build") - # rust minimal version from NEWS file depends_on("rust@1.65:", when="@2.56.1:", type="build") + depends_on("rust@1.64:", when="@2.56:", type="build") + depends_on("rust@1.52:", when="@2.52:", type="build") + depends_on("rust@1.51:", when="@2.51.2:", type="build") # upper bound because "Unaligned references to packed fields are a hard # error" starting from 1.69 depends_on("rust@1.40:1.68", when="@2.50:2.51", type="build") depends_on("rust", when="@2.41:", type="build") depends_on("gtk-doc", type="build", when="+doc") - # requirements according to `configure` file + # requirements according to `meson.build` or `configure` file + depends_on("cargo-c@0.9.19:", when="@2.59:", type="build") + depends_on("cairo@1.18:", when="@2.59:") depends_on("cairo@1.17:", when="@2.57:") depends_on("cairo@1.16:", when="@2.50:") depends_on("cairo@1.15.12:", when="@2.44.14:") depends_on("cairo@1.2.0:+gobject+png") - depends_on("libcroco@0.6.1:", when="@:2.44.14") depends_on("gdk-pixbuf@2.20:") depends_on("glib@2.50:", when="@2.50:") depends_on("glib@2.48:", when="@2.44.14:") @@ -64,17 +84,27 @@ class Librsvg(AutotoolsPackage): depends_on("shared-mime-info") depends_on("py-docutils", type="build") + # Historical dependencies + depends_on("libcroco@0.6.1:", when="@:2.44.14") + + patch("gdk-pixbuf-query-loaders-install.patch", when="@2.59:") + def url_for_version(self, version): url = "https://download.gnome.org/sources/librsvg/" url += "{0}/librsvg-{1}.tar.xz" return url.format(version.up_to(2), version) - def setup_dependent_build_environment( + def setup_dependent_run_environment( self, env: EnvironmentModifications, dependent_spec: Spec ) -> None: env.prepend_path("XDG_DATA_DIRS", self.prefix.share) - def setup_dependent_run_environment( + def setup_run_environment(self, env: EnvironmentModifications) -> None: + env.prepend_path("XDG_DATA_DIRS", self.prefix.share) + + +class BuildEnvironment: + def setup_dependent_build_environment( self, env: EnvironmentModifications, dependent_spec: Spec ) -> None: env.prepend_path("XDG_DATA_DIRS", self.prefix.share) @@ -84,9 +114,18 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: # librsvg uses pthread_atfork() but does not use -pthread on Ubuntu 18.04 %gcc@8 env.append_flags("LDFLAGS", "-pthread") - def setup_run_environment(self, env: EnvironmentModifications) -> None: - env.prepend_path("XDG_DATA_DIRS", self.prefix.share) +class MesonBuilder(meson.MesonBuilder, BuildEnvironment): + def meson_args(self): + args = [] + if self.spec.satisfies("+doc"): + args.append("-Ddocs=enabled") + else: + args.append("-Ddocs=disabled") + return args + + +class AutotoolsBuilder(autotools.AutotoolsBuilder, BuildEnvironment): def configure_args(self): args = [] if self.spec.satisfies("+doc"): diff --git a/repos/spack_repo/builtin/packages/librttopo/package.py b/repos/spack_repo/builtin/packages/librttopo/package.py index 9e44f402648..8ebfcf008b4 100644 --- a/repos/spack_repo/builtin/packages/librttopo/package.py +++ b/repos/spack_repo/builtin/packages/librttopo/package.py @@ -31,5 +31,5 @@ class Librttopo(AutotoolsPackage): depends_on("m4", type="build") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/libseccomp/fix-pyx-copy.patch b/repos/spack_repo/builtin/packages/libseccomp/fix-pyx-copy.patch new file mode 100644 index 00000000000..287e5a58b20 --- /dev/null +++ b/repos/spack_repo/builtin/packages/libseccomp/fix-pyx-copy.patch @@ -0,0 +1,11 @@ +--- a/src/python/Makefile.in 2026-02-19 ++++ b/src/python/Makefile.in 2026-02-19 +@@ -36,7 +36,7 @@ + all-local: build + + build: ../libseccomp.la libseccomp.pxd seccomp.pyx setup.py +- [ ${srcdir} = ${builddir} ] || cp ${srcdir}/seccomp.pyx ${builddir} ++ test -f ${builddir}/seccomp.pyx || cp ${srcdir}/seccomp.pyx ${builddir} + ${PY_BUILD} && touch build + + install-exec-local: build diff --git a/repos/spack_repo/builtin/packages/libseccomp/package.py b/repos/spack_repo/builtin/packages/libseccomp/package.py index 736b4689ba4..25e7d5295ac 100644 --- a/repos/spack_repo/builtin/packages/libseccomp/package.py +++ b/repos/spack_repo/builtin/packages/libseccomp/package.py @@ -35,6 +35,8 @@ class Libseccomp(AutotoolsPackage, PythonExtension): # https://github.com/seccomp/libseccomp/commit/afbde6ddaec7c58c3b281d43b0b287269ffca9bd depends_on("python@:3.11", type=("run", "link", "build"), when="@:2.5") depends_on("py-setuptools", type="build", when="@2.6:") + # upstream PR: https://github.com/seccomp/libseccomp/pull/482 + patch("fix-pyx-copy.patch", when="@2.6") def configure_args(self): return self.enable_or_disable("python", variant="python") diff --git a/repos/spack_repo/builtin/packages/libsegfault/package.py b/repos/spack_repo/builtin/packages/libsegfault/package.py new file mode 100644 index 00000000000..8214a93acc8 --- /dev/null +++ b/repos/spack_repo/builtin/packages/libsegfault/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Libsegfault(AutotoolsPackage): + """This projects contains tools and library provided by glibc that either + have been deprecated of moved out from the project. currently, in contains: + LibSegFault.""" + + homepage = "https://github.com/zatrazz/glibc-tools" + git = "https://github.com/zatrazz/glibc-tools.git" + + maintainers("etiennemlb") + + license("GPL-2.0") + + version("2023-07-25", commit="ff16adff4a6af738eb4deabfb0eb107f6fa6e048") + + depends_on("c", type="build") + + flag_handler = build_system_flags diff --git a/repos/spack_repo/builtin/packages/libsharp/package.py b/repos/spack_repo/builtin/packages/libsharp/package.py index 7d349002239..9680a1135ba 100644 --- a/repos/spack_repo/builtin/packages/libsharp/package.py +++ b/repos/spack_repo/builtin/packages/libsharp/package.py @@ -35,7 +35,7 @@ class Libsharp(AutotoolsPackage): def autoreconf(self, spec, prefix): """Generate autotools configuration""" - bash = which("bash") + bash = which("bash", required=True) bash("autoconf") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/libsigsegv/package.py b/repos/spack_repo/builtin/packages/libsigsegv/package.py index d1f2efba690..5b5d392e31e 100644 --- a/repos/spack_repo/builtin/packages/libsigsegv/package.py +++ b/repos/spack_repo/builtin/packages/libsigsegv/package.py @@ -19,6 +19,7 @@ class Libsigsegv(AutotoolsPackage, GNUMirrorPackage): license("GPL-2.0-or-later") + version("2.15", sha256="036855660225cb3817a190fc00e6764ce7836051bacb48d35e26444b8c1729d9") version("2.14", sha256="cdac3941803364cf81a908499beb79c200ead60b6b5b40cad124fd1e06caa295") version("2.13", sha256="be78ee4176b05f7c75ff03298d84874db90f4b6c9d5503f0da1226b3a3c48119") version("2.12", sha256="3ae1af359eebaa4ffc5896a1aee3568c052c99879316a1ab57f8fe1789c390b6") @@ -56,10 +57,10 @@ def test_smoke_test(self): "{0}{1}".format(self.compiler.cc_rpath_arg, self.prefix.lib), ] - cc = which(os.environ["CC"]) + cc = which(os.environ["CC"], required=True) cc(*options) - exe = which(prog) + exe = which(prog, required=True) out = exe(output=str.split, error=str.split) expected = get_escaped_text_output(data_dir.join("smoke_test.out")) check_outputs(expected, out) diff --git a/repos/spack_repo/builtin/packages/libsndfile/package.py b/repos/spack_repo/builtin/packages/libsndfile/package.py index 0debe89381a..2f7bcab985a 100644 --- a/repos/spack_repo/builtin/packages/libsndfile/package.py +++ b/repos/spack_repo/builtin/packages/libsndfile/package.py @@ -21,12 +21,6 @@ class Libsndfile(AutotoolsPackage): license("LGPL-2.1-or-later") version("1.2.2", sha256="3799ca9924d3125038880367bf1468e53a1b7e3686a934f098b7e1d286cdb80e") - # https://nvd.nist.gov/vuln/detail/CVE-2022-33064 - version( - "1.0.28", - sha256="1ff33929f042fa333aed1e8923aa628c3ee9e1eb85512686c55092d1e5a9dfa9", - deprecated=True, - ) variant("alsa", default=False, description="Use alsa in example programs") variant( @@ -40,19 +34,10 @@ class Libsndfile(AutotoolsPackage): depends_on("pkgconfig", type="build") depends_on("alsa-lib", when="+alsa") depends_on("flac@1.3.1:", when="+external-libs") - depends_on("libogg@1.1.3:", when="+external-libs") - depends_on("libogg@1.3.0:", when="@1.0.31: +external-libs") + depends_on("libogg@1.3.0:", when="+external-libs") depends_on("libvorbis@1.2.3:", when="+external-libs") depends_on("sqlite@3.2:", when="+sqlite") - def url_for_version(self, version): - if self.spec.satisfies("@1.1:"): - return f"https://github.com/libsndfile/libsndfile/releases/download/{version}/libsndfile-{version}.tar.xz" - elif self.spec.satisfies("@1.0.29:"): - return f"https://github.com/libsndfile/libsndfile/releases/download/v{version}/libsndfile-{version}.tar.bz2" - else: - return f"http://www.mega-nerd.com/libsndfile/files/libsndfile-{version}.tar.gz" - def configure_args(self): args = [] diff --git a/repos/spack_repo/builtin/packages/libsodium/package.py b/repos/spack_repo/builtin/packages/libsodium/package.py index 62edac486c8..f8c18babd4e 100644 --- a/repos/spack_repo/builtin/packages/libsodium/package.py +++ b/repos/spack_repo/builtin/packages/libsodium/package.py @@ -21,7 +21,6 @@ class Libsodium(AutotoolsPackage): version("master", branch="master") version("stable", branch="stable") - version("next", branch="next", deprecated=True) version("1.0.20", sha256="ebb65ef6ca439333c2bb41a0c1990587288da07f6c7fd07cb3a18cc18d30ce19") version("1.0.19", sha256="018d79fe0a045cca07331d37bd0cb57b2e838c51bc48fd837a1472e50068bbea") diff --git a/repos/spack_repo/builtin/packages/libsolv/package.py b/repos/spack_repo/builtin/packages/libsolv/package.py index ba92cbe0b12..80a54816b38 100644 --- a/repos/spack_repo/builtin/packages/libsolv/package.py +++ b/repos/spack_repo/builtin/packages/libsolv/package.py @@ -11,12 +11,14 @@ class Libsolv(CMakePackage): """Library for solving packages and reading repositories.""" homepage = "https://en.opensuse.org/OpenSUSE:Libzypp_satsolver" - url = "https://github.com/opensuse/libsolv/archive/0.7.22.tar.gz" + url = "https://github.com/openSUSE/libsolv/archive/refs/tags/0.7.34.tar.gz" maintainers("charmoniumQ") license("BSD-3-Clause") + version("0.7.34", sha256="fd9c8a75d3ca09d9ff7b0d160902fac789b3ce6f9fb5b46a7647895f9d3eaf05") + version("0.7.24", sha256="62743265222a729c7fe94c40f7b90ccc1ac5568f5ee6df46884e7ce3c16c78c7") version("0.7.22", sha256="968aef452b5493751fa0168cd58745a77c755e202a43fe8d549d791eb16034d5") variant("shared", default=True, description="Build shared libraries") diff --git a/repos/spack_repo/builtin/packages/libspatialite/package.py b/repos/spack_repo/builtin/packages/libspatialite/package.py index b2fa7b05486..1d210dd5826 100644 --- a/repos/spack_repo/builtin/packages/libspatialite/package.py +++ b/repos/spack_repo/builtin/packages/libspatialite/package.py @@ -18,22 +18,7 @@ class Libspatialite(AutotoolsPackage): version("5.1.0", sha256="43be2dd349daffe016dd1400c5d11285828c22fea35ca5109f21f3ed50605080") version("5.0.1", sha256="eecbc94311c78012d059ebc0fae86ea5ef6eecb13303e6e82b3753c1b3409e98") - version( - "5.0.0-beta0", - sha256="caacf5378a5cfab9b8e98bb361e2b592e714e21f5c152b795df80d0ab1da1c42", - deprecated=True, - ) version("5.0.0", sha256="7b7fd70243f5a0b175696d87c46dde0ace030eacc27f39241c24bac5dfac6dac") - version( - "4.3.0a", - sha256="88900030a4762904a7880273f292e5e8ca6b15b7c6c3fb88ffa9e67ee8a5a499", - deprecated=True, - ) - version( - "3.0.1", - sha256="4983d6584069fd5ff0cfcccccee1015088dab2db177c0dc7050ce8306b68f8e6", - deprecated=True, - ) depends_on("c", type="build") # generated @@ -44,8 +29,12 @@ class Libspatialite(AutotoolsPackage): depends_on("geos@:3.9", when="@:5.0.0") depends_on("iconv") depends_on("librttopo", when="@5.0.1:") - depends_on("libxml2+http") - depends_on("minizip", when="@5.0.0:") + + # in libxml2 2.15+ http support is completely removed, so this will need + # to be refined when libspatiallite is updated + # https://www.gaia-gis.it/fossil/libspatialite/tktview?name=e8f33aa9d8 + # https://www.gaia-gis.it/fossil/libspatialite/tktview?name=ac85f0fca3 + depends_on("libxml2 +http") + depends_on("minizip") depends_on("proj") - depends_on("proj@:5", when="@:4") depends_on("sqlite+rtree") diff --git a/repos/spack_repo/builtin/packages/libssh/package.py b/repos/spack_repo/builtin/packages/libssh/package.py index 11ea000a1ad..869264da58c 100644 --- a/repos/spack_repo/builtin/packages/libssh/package.py +++ b/repos/spack_repo/builtin/packages/libssh/package.py @@ -11,39 +11,26 @@ class Libssh(CMakePackage): """libssh: the SSH library""" homepage = "https://www.libssh.org" - url = "https://www.libssh.org/files/0.11/libssh-0.11.2.tar.xz" + url = "https://www.libssh.org/files/0.12/libssh-0.12.0.tar.xz" list_url = "https://www.libssh.org/files" list_depth = 1 - version("0.11.2", sha256="69529fc18f5b601f0baf0e5a4501a2bc26df5e2f116f5f8f07f19fafaa6d04e7") - - with default_args(deprecated=True): - # Due to various CVEs - # https://www.libssh.org/2025/06/24/libssh-0-11-2-security-and-bugfix-release/ - version( - "0.11.0", sha256="860e814579e7606f3fc3db98c5807bef2ab60f793ec871d81bcd23acdcdd3e91" - ) - version( - "0.10.6", sha256="1861d498f5b6f1741b6abc73e608478491edcf9c9d4b6630eef6e74596de9dc1" - ) - version("0.9.8", sha256="9f834b732341d428d67bbe835b7d10ae97ccf25d6f5bd0288fa51ae683f2e7cd") - # https://nvd.nist.gov/vuln/detail/CVE-2023-48795 - # https://nvd.nist.gov/vuln/detail/CVE-2023-6918 - # https://nvd.nist.gov/vuln/detail/CVE-2023-6004 - version("0.8.9", sha256="8559e19da0c40b6f93482b6160219ad77a4d9f1dc190bf174757455c6ae26825") - version("0.8.5", sha256="07d2c431240fc88f6b06bcb36ae267f9afeedce2e32f6c42f8844b205ab5a335") - version("0.7.5", sha256="54e86dd5dc20e5367e58f3caab337ce37675f863f80df85b6b1614966a337095") + version("0.12.0", sha256="1a6af424d8327e5eedef4e5fe7f5b924226dd617ac9f3de80f217d82a36a7121") + version("0.11.4", sha256="002ac320e3d66c9e100ec6576e3e84aa0c48949efde3bf5b40a2802992297701") + # Previous versions deprecated because of CVEs + version( + "0.11.3", + sha256="7d8a1361bb094ec3f511964e78a5a4dba689b5986e112afabe4f4d0d6c6125c3", + deprecated=True, + ) + # Previous versions removed because of CVEs variant("gssapi", default=True, description="Build with gssapi support") depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("cmake@3.12:", type="build", when="@0.11:") - depends_on("cmake@3.3:", type="build", when="@0.8:0.10") - depends_on("cmake@2.8.5:", type="build", when="@0.7") - depends_on("openssl@1.1.1:", when="@0.11:") - depends_on("openssl@:1.0", when="@:0.7") - depends_on("openssl") + depends_on("cmake@3.12:", type="build") + depends_on("openssl@1.1.1:") depends_on("zlib-api") depends_on("krb5", when="+gssapi") diff --git a/repos/spack_repo/builtin/packages/libssh2/package.py b/repos/spack_repo/builtin/packages/libssh2/package.py index d960f3293a5..98c35b95aed 100644 --- a/repos/spack_repo/builtin/packages/libssh2/package.py +++ b/repos/spack_repo/builtin/packages/libssh2/package.py @@ -18,14 +18,6 @@ class Libssh2(AutotoolsPackage, CMakePackage): license("BSD-3-Clause") version("1.11.1", sha256="d9ec76cbe34db98eec3539fe2c899d26b0c837cb3eb466a56b0f109cabf658f7") - version("1.11.0", sha256="3736161e41e2693324deb38c26cfdc3efe6209d634ba4258db1cecff6a5ad461") - version("1.10.0", sha256="2d64e90f3ded394b91d3a2e774ca203a4179f69aebee03003e5a6fa621e41d51") - version("1.9.0", sha256="d5fb8bd563305fd1074dda90bd053fb2d29fc4bce048d182f96eaa466dfadafd") - version("1.8.0", sha256="39f34e2f6835f4b992cafe8625073a88e5a28ba78f83e8099610a7b3af4676d4") - version("1.7.0", sha256="e4561fd43a50539a8c2ceb37841691baf03ecb7daf043766da1b112e4280d584") - version( - "1.4.3", sha256="eac6f85f9df9db2e6386906a6227eb2cd7b3245739561cad7d6dc1d5d021b96d" - ) # CentOS7 build_system("autotools", "cmake", default="autotools") @@ -33,7 +25,7 @@ class Libssh2(AutotoolsPackage, CMakePackage): "crypto", default="openssl", description="The backend to use for cryptography", - values=("openssl", conditional("mbedtls", when="@1.8:")), + values=("openssl", "mbedtls"), ) variant("shared", default=True, description="Build shared libraries") @@ -46,18 +38,11 @@ class Libssh2(AutotoolsPackage, CMakePackage): with when("crypto=openssl"): depends_on("openssl") - depends_on("openssl@:1", when="@:1.9") depends_on("mbedtls@:2 +pic", when="crypto=mbedtls") depends_on("zlib-api") depends_on("xz") - # libssh2 adds its own deps in the pc file even when doing shared linking, - # and fails to prepend the -L flags, which is causing issues in libgit2, as - # it tries to locate e.g. libssl in the dirs of the pc file's -L flags, and - # cannot find the lib. - patch("pr-1114.patch", when="@1.7:1.11.0") - class CMakeBuilder(cmake.CMakeBuilder): def cmake_args(self): @@ -80,27 +65,13 @@ def cmake_args(self): class AutotoolsBuilder(autotools.AutotoolsBuilder): def configure_args(self): - args = [ + crypto = self.spec.variants["crypto"].value + return [ "--disable-tests", "--disable-docker-tests", "--disable-examples-build", "--without-libgcrypt", "--without-wincng", *self.enable_or_disable("shared"), + f"--with-crypto={crypto}", ] - - crypto = self.spec.variants["crypto"].value - - if self.spec.satisfies("@1.9:"): - # single flag for all crypto backends - args.append(f"--with-crypto={crypto}") - else: - # one flag per crypto backend - if crypto == "openssl": - args.append(f"--with-libssl-prefix={self.spec['openssl'].prefix}") - args.append("--without-mbedtls") - elif crypto == "mbedtls": - args.append(f"--with-libmbedcrypto-prefix={self.spec['mbedtls'].prefix}") - args.append("--without-openssl") - - return args diff --git a/repos/spack_repo/builtin/packages/libssh2/pr-1114.patch b/repos/spack_repo/builtin/packages/libssh2/pr-1114.patch deleted file mode 100644 index 160c52c06e3..00000000000 --- a/repos/spack_repo/builtin/packages/libssh2/pr-1114.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 052b624e113912bb97bad877b81ddba22d37ba96 Mon Sep 17 00:00:00 2001 -From: Harmen Stoppels -Date: Sun, 9 Jul 2023 21:36:07 +0200 -Subject: [PATCH] Don't put `@LIBS@` in pc file - ---- - libssh2.pc.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libssh2.pc.in b/libssh2.pc.in -index 4fdfaa924..9cbebb7f0 100644 ---- a/libssh2.pc.in -+++ b/libssh2.pc.in -@@ -15,6 +15,6 @@ URL: https://www.libssh2.org/ - Description: Library for SSH-based communication - Version: @LIBSSH2VER@ - Requires.private: @LIBSREQUIRED@ --Libs: -L${libdir} -lssh2 @LIBS@ -+Libs: -L${libdir} -lssh2 - Libs.private: @LIBS@ - Cflags: -I${includedir} diff --git a/repos/spack_repo/builtin/packages/libsvm/package.py b/repos/spack_repo/builtin/packages/libsvm/package.py index 29c3f1f5270..9cd7a1ea527 100644 --- a/repos/spack_repo/builtin/packages/libsvm/package.py +++ b/repos/spack_repo/builtin/packages/libsvm/package.py @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from glob import glob + from spack_repo.builtin.build_systems.makefile import MakefilePackage from spack.package import * @@ -16,16 +18,63 @@ class Libsvm(MakefilePackage): license("BSD-3-Clause") - version("323", sha256="7a466f90f327a98f8ed1cb217570547bcb00077933d1619f3cb9e73518f38196") - version("322", sha256="a3469436f795bb3f8b1e65ea761e14e5599ec7ee941c001d771c07b7da318ac6") + version("3.23", sha256="7a466f90f327a98f8ed1cb217570547bcb00077933d1619f3cb9e73518f38196") + version("3.22", sha256="a3469436f795bb3f8b1e65ea761e14e5599ec7ee941c001d771c07b7da318ac6") + + version( + "323", + sha256="7a466f90f327a98f8ed1cb217570547bcb00077933d1619f3cb9e73518f38196", + deprecated=True, + ) + version( + "322", + sha256="a3469436f795bb3f8b1e65ea761e14e5599ec7ee941c001d771c07b7da318ac6", + deprecated=True, + ) + + def url_for_version(self, version): + return f"https://github.com/cjlin1/libsvm/archive/v{str(version).replace('.', '')}.tar.gz" - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + + def build(self, spec, prefix): + make() + make("lib") def install(self, spec, prefix): mkdirp(prefix.bin) mkdirp(prefix.lib) + mkdirp(prefix.include) + mkdirp(prefix.lib.pkgconfig) + install("svm-predict", prefix.bin) install("svm-scale", prefix.bin) install("svm-train", prefix.bin) install("svm.o", prefix.lib) + install("svm.h", prefix.include) + + for libfile in glob("libsvm.so.*"): + install(libfile, prefix.lib) + + ar = which("ar") + ar("rcs", "libsvm.a", "svm.o") + install("libsvm.a", prefix.lib) + + pc = join_path(prefix.lib.pkgconfig, "libsvm.pc") + + with open(pc, "w") as f: + f.write( + f"""\ + prefix={prefix} + exec_prefix=${{prefix}} + libdir=${{prefix}}/lib + includedir=${{prefix}}/include + + Name: libsvm + Description: LibSVM Support Vector Machines Library + Version: {self.version} + Libs: -L${{libdir}} -lsvm + Cflags: -I${{includedir}} + """ + ) diff --git a/repos/spack_repo/builtin/packages/libtasn1/package.py b/repos/spack_repo/builtin/packages/libtasn1/package.py index 2e26078d599..71ef80e130f 100644 --- a/repos/spack_repo/builtin/packages/libtasn1/package.py +++ b/repos/spack_repo/builtin/packages/libtasn1/package.py @@ -16,6 +16,7 @@ class Libtasn1(Package, GNUMirrorPackage): license("LGPL-2.1-or-later") + version("4.21.0", sha256="1d8a444a223cc5464240777346e125de51d8e6abf0b8bac742ac84609167dc87") version("4.19.0", sha256="1613f0ac1cf484d6ec0ce3b8c06d56263cc7242f1c23b30d82d23de345a63f7a") version("4.13", sha256="7e528e8c317ddd156230c4e31d082cd13e7ddeb7a54824be82632209550c8cca") version("4.12", sha256="6753da2e621257f33f5b051cc114d417e5206a0818fe0b1ecfd6153f70934753") diff --git a/repos/spack_repo/builtin/packages/libtiff/package.py b/repos/spack_repo/builtin/packages/libtiff/package.py index 60a93f5d3e1..830ce82f0c7 100644 --- a/repos/spack_repo/builtin/packages/libtiff/package.py +++ b/repos/spack_repo/builtin/packages/libtiff/package.py @@ -40,34 +40,20 @@ class Libtiff(CMakePackage, AutotoolsPackage): license("libtiff") - version("4.7.0", sha256="67160e3457365ab96c5b3286a0903aa6e78bdc44c4bc737d2e486bcecb6ba976") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2024-7006 - version("4.6.0", sha256="88b3979e6d5c7e32b50d7ec72fb15af724f6ab2cbf7e10880c360a77e4b5d99a") - version("4.5.1", sha256="d7f38b6788e4a8f5da7940c5ac9424f494d8a79eba53d555f4a507167dca5e2b") - version("4.5.0", sha256="c7a1d9296649233979fa3eacffef3fa024d73d05d589cb622727b5b08c423464") - version("4.4.0", sha256="917223b37538959aca3b790d2d73aa6e626b688e02dcda272aec24c2f498abed") - version("4.3.0", sha256="0e46e5acb087ce7d1ac53cf4f56a09b221537fc86dfc5daaad1c2e89e1b37ac8") - version("4.2.0", sha256="eb0484e568ead8fa23b513e9b0041df7e327f4ee2d22db5a533929dfc19633cb") - version("4.1.0", sha256="5d29f32517dadb6dbcd1255ea5bbc93a2b54b94fbf83653b4d65c7d6775b8634") - version( - "4.0.10", sha256="2c52d11ccaf767457db0c46795d9c7d1a8d8f76f68b0b800a3dfe45786b996e4" - ) - version("4.0.9", sha256="6e7bdeec2c310734e734d19aae3a71ebe37a4d842e0e23dbb1b8921c0026cfcd") - version("4.0.8", sha256="59d7a5a8ccd92059913f246877db95a2918e6c04fb9d43fd74e5c3390dac2910") - version("4.0.7", sha256="9f43a2cfb9589e5cecaa66e16bf87f814c945f22df7ba600d63aac4632c4f019") - version("4.0.6", sha256="4d57a50907b510e3049a4bba0d7888930fdfc16ce49f1bf693e5b6247370d68c") - version("4.0.5", sha256="e25eaa83ed7fab43ddd278b9b14d91a406a4b674cedc776adb95535f897f309c") - version("4.0.4", sha256="8cb1d90c96f61cdfc0bcf036acc251c9dbe6320334da941c7a83cfe1576ef890") - version("3.9.7", sha256="f5d64dd4ce61c55f5e9f6dc3920fbe5a41e02c2e607da7117a35eb5c320cef6a") + version("4.7.1", sha256="f698d94f3103da8ca7438d84e0344e453fe0ba3b7486e04c5bf7a9a3fabe9b69") + # https://www.cvedetails.com/cve/CVE-2025-61145/ + # https://www.cvedetails.com/cve/CVE-2025-61144/ + # https://www.cvedetails.com/cve/CVE-2025-61143/ + # https://www.cvedetails.com/cve/CVE-2025-9165/ + # https://www.cvedetails.com/cve/CVE-2025-8961/ + version( + "4.7.0", + sha256="67160e3457365ab96c5b3286a0903aa6e78bdc44c4bc737d2e486bcecb6ba976", + deprecated=True, + ) # GUI - variant( - "opengl", - default=False, - description="use OpenGL (required for tiffgt viewer)", - when="@4.5,4.7:", - ) + variant("opengl", default=False, description="use OpenGL (required for tiffgt viewer)") # Internal codecs variant("ccitt", default=True, description="support for CCITT Group 3 & 4 algorithms") @@ -79,18 +65,18 @@ class Libtiff(CMakePackage, AutotoolsPackage): # External codecs variant("zlib", default=True, description="use zlib") - variant("libdeflate", default=False, description="use libdeflate", when="@4.2:") + variant("libdeflate", default=False, description="use libdeflate") variant("pixarlog", default=False, description="support for Pixar log-format algorithm") variant("jpeg", default=True, description="use libjpeg") variant("old-jpeg", default=False, description="support for Old JPEG compression") - variant("jpeg12", default=False, description="enable libjpeg 8/12-bit dual mode", when="@4:") + variant("jpeg12", default=False, description="enable libjpeg 8/12-bit dual mode") variant("jbig", default=False, description="use ISO JBIG compression") - variant("lerc", default=False, description="use libLerc", when="@4.3:") - variant("lzma", default=False, description="use liblzma", when="@4:") - variant("zstd", default=False, description="use libzstd", when="@4.0.10:") - variant("webp", default=False, description="use libwebp", when="@4.0.10:") + variant("lerc", default=False, description="use libLerc") + variant("lzma", default=False, description="use liblzma") + variant("zstd", default=False, description="use libzstd") + variant("webp", default=False, description="use libwebp") - build_system(conditional("cmake", when="@4.0.5:"), "autotools", default="cmake") + build_system("cmake", "autotools", default="cmake") variant("shared", default=True, description="Build shared") variant("pic", default=False, description="Enable position-independent code (PIC)") @@ -99,10 +85,7 @@ class Libtiff(CMakePackage, AutotoolsPackage): depends_on("cxx", type="build") # generated with when("build_system=cmake"): - depends_on("cmake@3.9:", when="@4.3:", type="build") - depends_on("cmake@2.8.11:", when="@4.0.10:4.2", type="build") - depends_on("cmake@2.8.9:", when="@4.0.6:4.0.9", type="build") - depends_on("cmake@3:", when="@4.0.5", type="build") + depends_on("cmake@3.9:", type="build") depends_on("zlib-api", when="+zlib") depends_on("zlib-api", when="+pixarlog") @@ -117,12 +100,6 @@ class Libtiff(CMakePackage, AutotoolsPackage): conflicts("+jpeg12", when="~jpeg") conflicts("+lerc", when="~zlib") - # 4.3.0 contains a bug that breaks the build on case-sensitive filesystems when - # using a C++20-capable compiler (commonly the case on macOS). Not an easy way to - # check for this, so add a conflict for macOS overall. For more details, see: - # https://gitlab.com/libtiff/libtiff/-/merge_requests/243 - conflicts("platform=darwin", when="@4.3.0") - def patch(self): # Remove flags not recognized by the NVIDIA compiler if self.spec.satisfies("%nvhpc@:20.11"): diff --git a/repos/spack_repo/builtin/packages/libtirpc/libtirpc-fix-ipv6-gss-macos-1.3.7.patch b/repos/spack_repo/builtin/packages/libtirpc/libtirpc-fix-ipv6-gss-macos-1.3.7.patch new file mode 100644 index 00000000000..ae6092f25a4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/libtirpc/libtirpc-fix-ipv6-gss-macos-1.3.7.patch @@ -0,0 +1,49 @@ +diff --git a/configure.ac b/configure.ac +index 18cae3a..da20fe6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -54,9 +54,15 @@ if test "x$enable_gssapi" = xyes; then + + gssapi_save_CPPFLAGS="$CPPFLAGS" + gssapi_save_LIBS="$LIBS" +- CPPFLAGS="$GSSAPI_CPPFLAGS $CPPFLAGS" ++ CPPFLAGS="$GSSAPI_CFLAGS $CPPFLAGS" + LIBS="$GSSAPI_LIBS $LIBS" +- AC_CHECK_FUNCS([gss_pname_to_uid]) ++ AC_CHECK_DECL([gss_pname_to_uid], ++ [AC_DEFINE([HAVE_GSS_PNAME_TO_UID], [1], [Define to 1 if you have the gss_pname_to_uid function.])], ++ [], ++ [[#include ++ #ifdef HAVE_GSSAPI_GSSAPI_EXT_H ++ #include ++ #endif]]) + CPPFLAGS="$gssapi_save_CPPFLAGS" + LIBS="$gssapi_save_LIBS" + fi +diff --git a/src/Makefile.am b/src/Makefile.am +index cfda770..8d6db6b 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -17,6 +17,8 @@ lib_LTLIBRARIES = libtirpc.la + + libtirpc_la_LDFLAGS = @LDFLAG_NOUNDEFINED@ -no-undefined @PTHREAD_LIBS@ + libtirpc_la_LDFLAGS += -version-info @LT_VERSION_INFO@ ++# macOS: Opt out of dyld shared cache to allow linking with spack libraries ++libtirpc_la_LDFLAGS += -Wl,-not_for_dyld_shared_cache + + # Generate version script from template + libtirpc.map: $(srcdir)/libtirpc.map.in +diff --git a/src/svc_dg.c b/src/svc_dg.c +index 3d42b6a..4bfa1a0 100644 +--- a/src/svc_dg.c ++++ b/src/svc_dg.c +@@ -37,6 +37,9 @@ + * + * Does some caching in the hopes of achieving execute-at-most-once semantics. + */ ++ ++#define __APPLE_USE_RFC_3542 ++ + #ifdef HAVE_CONFIG_H + #include "config.h" + #endif diff --git a/repos/spack_repo/builtin/packages/libtirpc/package.py b/repos/spack_repo/builtin/packages/libtirpc/package.py index 10fef10639d..ec51b66a883 100644 --- a/repos/spack_repo/builtin/packages/libtirpc/package.py +++ b/repos/spack_repo/builtin/packages/libtirpc/package.py @@ -15,6 +15,7 @@ class Libtirpc(AutotoolsPackage): license("BSD-3-Clause") + version("1.3.7", sha256="b47d3ac19d3549e54a05d0019a6c400674da716123858cfdb6d3bdd70a66c702") version("1.3.3", sha256="6474e98851d9f6f33871957ddee9714fdcd9d8a5ee9abb5a98d63ea2e60e12f3") version("1.2.6", sha256="4278e9a5181d5af9cd7885322fdecebc444f9a3da87c526e7d47f7a12a37d1cc") version("1.1.4", sha256="2ca529f02292e10c158562295a1ffd95d2ce8af97820e3534fe1b0e3aec7561d") @@ -27,6 +28,20 @@ class Libtirpc(AutotoolsPackage): provides("rpc") + # Allow build on macOS: + # - Adds a preprocessor define to make IPV6 defined available under expected names + # - Fixes configure template to correctly detect absence of `gss_pname_to_uid` + # - Avoids linking with shared cache + with when("@1.3.7 platform=darwin"): + patch("libtirpc-fix-ipv6-gss-macos-1.3.7.patch") + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + + @property + def force_autoreconf(self): + return self.spec.satisfies("@1.3.7 platform=darwin") + # Remove -pipe flag to compiler in Makefiles when using nvhpc patch("libtirpc-remove-pipe-flag-for-nvhpc.patch", when="%nvhpc") # Allow to build on macOS diff --git a/repos/spack_repo/builtin/packages/libtool/package.py b/repos/spack_repo/builtin/packages/libtool/package.py index 46dfe9ae7b6..80ab69643cc 100644 --- a/repos/spack_repo/builtin/packages/libtool/package.py +++ b/repos/spack_repo/builtin/packages/libtool/package.py @@ -25,14 +25,9 @@ class Libtool(AutotoolsPackage, GNUMirrorPackage): submodules=True, ) + version("2.5.4", sha256="da8ebb2ce4dcf46b90098daf962cffa68f4b4f62ea60f798d0ef12929ede6adf") version("2.4.7", sha256="04e96c2404ea70c590c546eba4202a4e12722c640016c12b9b2f1ce3d481e9a8") version("2.4.6", sha256="e3bd4d5d3d025a36c21dd6af7ea818a2afcd4dfc1ea5a17b39d7854bcd0c06e3") - # Version released in 2011 - version( - "2.4.2", - sha256="b38de44862a987293cd3d8dfae1c409d514b6c4e794ebc93648febf9afc38918", - deprecated=True, - ) depends_on("c", type="build") # generated @@ -41,13 +36,8 @@ class Libtool(AutotoolsPackage, GNUMirrorPackage): # the following are places in which libtool depends on findutils # https://github.com/autotools-mirror/libtool/blob/v2.4.7/build-aux/ltmain.in#L3296 # https://github.com/autotools-mirror/libtool/blob/v2.4.6/build-aux/ltmain.in#L3278 - # https://github.com/autotools-mirror/libtool/blob/v2.4.2/libltdl/config/ltmain.m4sh#L3028 - depends_on("findutils", type="run") - - with when("@2.4.2"): - depends_on("autoconf", type="build") - depends_on("automake", type="build") - depends_on("help2man", type="build") + depends_on("findutils", type=("build", "run")) + depends_on("file", type=("build", "run")) with when("@2.4.6"): depends_on("autoconf@2.62:", type="test") @@ -75,7 +65,7 @@ def determine_version(cls, exe): match = re.search(r"\(GNU libtool\)\s+(\S+)", output) return match.group(1) if match else None - @when("@2.4.2,develop") + @when("@develop") def autoreconf(self, spec, prefix): Executable("./bootstrap")() diff --git a/repos/spack_repo/builtin/packages/libtorrent/package.py b/repos/spack_repo/builtin/packages/libtorrent/package.py index 7ebf90c2f31..42c0d9e8e45 100644 --- a/repos/spack_repo/builtin/packages/libtorrent/package.py +++ b/repos/spack_repo/builtin/packages/libtorrent/package.py @@ -21,5 +21,5 @@ class Libtorrent(AutotoolsPackage): depends_on("cxx", type="build") # generated def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/libtree/package.py b/repos/spack_repo/builtin/packages/libtree/package.py index eae683cb3c7..6fc82c4b91e 100644 --- a/repos/spack_repo/builtin/packages/libtree/package.py +++ b/repos/spack_repo/builtin/packages/libtree/package.py @@ -53,7 +53,8 @@ def url_for_version(self, version): return "https://github.com/haampie/libtree/archive/refs/tags/v{0}.tar.gz".format(version) - depends_on("c", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build", when="@:2") # Version 2.x and earlier (CMake) with when("build_system=cmake"): diff --git a/repos/spack_repo/builtin/packages/libunistring/package.py b/repos/spack_repo/builtin/packages/libunistring/package.py index cdf20f5670c..a0cb910420c 100644 --- a/repos/spack_repo/builtin/packages/libunistring/package.py +++ b/repos/spack_repo/builtin/packages/libunistring/package.py @@ -20,6 +20,8 @@ class Libunistring(AutotoolsPackage, GNUMirrorPackage): license("GPL-2.0-or-later OR LGPL-3.0-or-later") version("master", branch="master") + version("1.4.2", sha256="5b46e74377ed7409c5b75e7a96f95377b095623b689d8522620927964a41499c") + version("1.4.1", sha256="67d88430892527861903788868c77802a217b0959990f7449f2976126a307763") version("1.2", sha256="632bd65ed74a881ca8a0309a1001c428bd1cbd5cd7ddbf8cedcd2e65f4dcdc44") version("1.1", sha256="827c1eb9cb6e7c738b171745dac0888aa58c5924df2e59239318383de0729b98") version("1.0", sha256="5bab55b49f75d77ed26b257997e919b693f29fd4a1bc22e0e6e024c246c72741") @@ -29,7 +31,7 @@ class Libunistring(AutotoolsPackage, GNUMirrorPackage): version("0.9.7", sha256="2e3764512aaf2ce598af5a38818c0ea23dedf1ff5460070d1b6cee5c3336e797") version("0.9.6", sha256="2df42eae46743e3f91201bf5c100041540a7704e8b9abfd57c972b2d544de41b") - depends_on("c", type="build") # generated + depends_on("c", type="build") depends_on("iconv") with when("@master"): @@ -55,5 +57,5 @@ def flag_handler(self, name, flags): @when("@master") def autoreconf(self, spec, prefix): - which("./gitsub.sh")("pull") - which("./autogen.sh")() + which("./gitsub.sh", required=True)("pull") + which("./autogen.sh", required=True)() diff --git a/repos/spack_repo/builtin/packages/libunwind/package.py b/repos/spack_repo/builtin/packages/libunwind/package.py index 1699df9f133..47335ef9670 100644 --- a/repos/spack_repo/builtin/packages/libunwind/package.py +++ b/repos/spack_repo/builtin/packages/libunwind/package.py @@ -12,8 +12,9 @@ class Libunwind(AutotoolsPackage): the call-chain of a program.""" homepage = "https://www.nongnu.org/libunwind/" - url = "https://github.com/libunwind/libunwind/releases/download/v0.0.0/libunwind-0.0.0.tar.gz" + url = "https://github.com/libunwind/libunwind/releases/download/v1.8.2/libunwind-1.8.2.tar.gz" git = "https://github.com/libunwind/libunwind" + maintainers("mwkrentel") tags = ["e4s"] @@ -22,6 +23,8 @@ class Libunwind(AutotoolsPackage): version("master", branch="master") version("1.8-stable", branch="v1.8-stable") + version("1.8.3", sha256="be30d910e67f58d82e753231f1357f326a1a088acf126b21ff77e60aab19b90b") + version("1.8.2", sha256="7f262f1a1224f437ede0f96a6932b582c8f5421ff207c04e3d9504dfa04c8b82") version("1.8.1", sha256="ddf0e32dd5fafe5283198d37e4bf9decf7ba1770b6e7e006c33e6df79e6a6157") version("1.7-stable", branch="v1.7-stable") version("1.7.2", sha256="a18a6a24307443a8ace7a8acc2ce79fbbe6826cd0edf98d6326d0225d6a5d6e6") @@ -74,20 +77,19 @@ class Libunwind(AutotoolsPackage): variant("xz", default=False, description="Support xz (lzma) compressed symbol tables.") variant( - "zlib", - default=False, - description="Support zlib compressed symbol tables " "(1.5 and later).", + "zlib", default=False, description="Support zlib compressed symbol tables (1.5 and later)." ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + depends_on("libtool", type="build") + # The libunwind releases contain the autotools generated files, # but the git repo snapshots do not. reconf_versions = "@master,1.6-stable,1.7-stable,1.8-stable" depends_on("autoconf", type="build", when=reconf_versions) depends_on("automake", type="build", when=reconf_versions) - depends_on("libtool", type="build", when=reconf_versions) depends_on("m4", type="build", when=reconf_versions) depends_on("xz", type="link", when="+xz") @@ -102,8 +104,18 @@ class Libunwind(AutotoolsPackage): conflicts("target=aarch64:", when="@1.8:") + # https://github.com/libunwind/libunwind/issues/672 + conflicts("%gcc@14:", when="@1.7.2") + provides("unwind") + # Fix bad prototype for malloc() in test + patch( + "https://src.fedoraproject.org/rpms/libunwind/raw/49b1c9d51f8194546ba559f3f20e10889c8a073a/f/457612f470f8c0e718cdf7f14ef1ecb583f3b3a6.patch", + sha256="4562c231f1051bd327cf27b6940445e5c0d83e5d8427a6ca36c9f0853b3e4a6d", + when="@1.8", + ) + def url_for_version(self, version): if version == Version("1.5.0"): return f"https://github.com/libunwind/libunwind/releases/download/v{version.up_to(2)}/libunwind-{version}.tar.gz" @@ -127,6 +139,11 @@ def flag_handler(self, name, flags): return (wrapper_flags, None, flags) + # The master/stable branches don't have an m4 directory. + @run_before("autoreconf") + def make_m4_dir(self): + mkdirp("m4") + def configure_args(self): spec = self.spec args = [] diff --git a/repos/spack_repo/builtin/packages/liburing/package.py b/repos/spack_repo/builtin/packages/liburing/package.py index 325007976df..406d80d9ab5 100644 --- a/repos/spack_repo/builtin/packages/liburing/package.py +++ b/repos/spack_repo/builtin/packages/liburing/package.py @@ -29,6 +29,7 @@ class Liburing(AutotoolsPackage): sanity_check_is_dir = ["include", "lib"] version("master", branch="master") + version("2.12", sha256="f1d10cb058c97c953b4c0c446b11e9177e8c8b32a5a88b309f23fdd389e26370") version("2.9", sha256="897b1153b55543e8b92a5a3eb9b906537a5fedcf8afaf241f8b8787940c79f8d") version("2.4", sha256="2398ec82d967a6f903f3ae1fd4541c754472d3a85a584dc78c5da2fabc90706b") version("2.3", sha256="60b367dbdc6f2b0418a6e0cd203ee0049d9d629a36706fcf91dfb9428bae23c8") diff --git a/repos/spack_repo/builtin/packages/libuuid/package.py b/repos/spack_repo/builtin/packages/libuuid/package.py deleted file mode 100644 index 53cbf5dd428..00000000000 --- a/repos/spack_repo/builtin/packages/libuuid/package.py +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import sys - -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage -from spack_repo.builtin.build_systems.sourceforge import SourceforgePackage - -from spack.package import * - - -class Libuuid(AutotoolsPackage, SourceforgePackage): - """Portable uuid C library""" - - homepage = "https://sourceforge.net/projects/libuuid/" - sourceforge_mirror_path = "libuuid/libuuid-1.0.3.tar.gz" - - version( - "1.0.3", - sha256="46af3275291091009ad7f1b899de3d0cea0252737550e7919d17237997db5644", - deprecated=True, - ) - - depends_on("c", type="build") # generated - - if sys.platform not in ["darwin", "win32"]: - provides("uuid") - - conflicts("%gcc@14:") diff --git a/repos/spack_repo/builtin/packages/libuv/package.py b/repos/spack_repo/builtin/packages/libuv/package.py index 63e0f17aa50..68e57db8979 100644 --- a/repos/spack_repo/builtin/packages/libuv/package.py +++ b/repos/spack_repo/builtin/packages/libuv/package.py @@ -101,7 +101,7 @@ def url_for_version(self, version): with when("build_system=cmake"): # explicitly require ownlibs to indicate we're short # circuiting the cmake<->libuv cyclic dependency here - depends_on("cmake+ownlibs") + depends_on("cmake+ownlibs", type="build") conflicts( "%gcc@:4.8", diff --git a/repos/spack_repo/builtin/packages/libuv_julia/package.py b/repos/spack_repo/builtin/packages/libuv_julia/package.py index d29293cb411..c8e1144bd92 100644 --- a/repos/spack_repo/builtin/packages/libuv_julia/package.py +++ b/repos/spack_repo/builtin/packages/libuv_julia/package.py @@ -19,7 +19,8 @@ class LibuvJulia(AutotoolsPackage): license("CC-BY-4.0") # julia's libuv fork doesn't tag (all?) releases, so we fix commits. - version("1.48.0", commit="ca3a5a431a1c37859b6508e6b2a288092337029a") + version("1.48.1rc1", commit="af4172ec713ee986ba1a989b9e33993a07c60c9e") # used by Julia 1.12 + version("1.48.0", commit="ca3a5a431a1c37859b6508e6b2a288092337029a") # used by Julia 1.11 version("1.44.3", commit="2723e256e952be0b015b3c0086f717c3d365d97e") version("1.44.2", commit="e6f0e4900e195c8352f821abe2b3cffc3089547b") version("1.44.1", commit="1b2d16477fe1142adea952168d828a066e03ee4c") diff --git a/repos/spack_repo/builtin/packages/libvdwxc/0001-fix-mpi-detection-in-configure.patch b/repos/spack_repo/builtin/packages/libvdwxc/0001-fix-mpi-detection-in-configure.patch new file mode 100644 index 00000000000..58fff996bc7 --- /dev/null +++ b/repos/spack_repo/builtin/packages/libvdwxc/0001-fix-mpi-detection-in-configure.patch @@ -0,0 +1,25 @@ +From 8b46c6b74753fbe8596e65bf29d24b15e561ca70 Mon Sep 17 00:00:00 2001 +From: Simon Pintarelli +Date: Thu, 8 Jan 2026 17:24:09 +0100 +Subject: [PATCH] fix mpi detection in configure + +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure b/configure +index 7305e6d..4b1b697 100755 +--- a/configure ++++ b/configure +@@ -21917,7 +21917,7 @@ main (void) + + int *argc; + char **argv; +- MPI_Init(argc, argv); ++ MPI_Init(argc, &argv); + + ; + return 0; +-- +2.52.0 + diff --git a/repos/spack_repo/builtin/packages/libvdwxc/package.py b/repos/spack_repo/builtin/packages/libvdwxc/package.py index 30760d54555..4777ab16519 100644 --- a/repos/spack_repo/builtin/packages/libvdwxc/package.py +++ b/repos/spack_repo/builtin/packages/libvdwxc/package.py @@ -13,10 +13,14 @@ class Libvdwxc(AutotoolsPackage): interactions for density functional theory""" homepage = "https://libvdwxc.gitlab.io/libvdwxc/" - url = "https://launchpad.net/libvdwxc/stable/0.4.0/+download/libvdwxc-0.4.0.tar.gz" + url = "https://launchpad.net/libvdwxc/stable/0.5.0/+download/libvdwxc-0.5.0.tar.gz" + git = "https://gitlab.com/libvdwxc/libvdwxc" license("GPL-3.0-or-later") + maintainers("mtaillefumier") + version("master", branch="master", submodules=False) + version("0.5.0", sha256="29fb70efd58aff51524d2172a87e8f88e760b696b0ddb9aa5878432bdffa3c2f") version("0.4.0", sha256="3524feb5bb2be86b4688f71653502146b181e66f3f75b8bdaf23dd1ae4a56b33") variant("mpi", default=True, description="Enable MPI support") @@ -29,6 +33,10 @@ class Libvdwxc(AutotoolsPackage): depends_on("mpi@2:", when="+mpi") depends_on("pfft", when="+pfft") + depends_on("autoconf", type="build", when="@master") + depends_on("automake", type="build", when="@master") + depends_on("libtool", type="build", when="@master") + # pfft needs MPI conflicts("~mpi", "+pfft") conflicts("^fftw~mpi", "+mpi") @@ -37,6 +45,9 @@ def configure_args(self): spec = self.spec args = [ + "--with-fftw3={0}".format( + self["fftw-api"].prefix + ), # make sure that fftw path is given "--{0}-pfft".format("with" if self.spec.satisfies("+pfft") else "without"), "MPICC=", # make sure both variables are always unset "MPIFC=", # otherwise the configure scripts complains @@ -62,3 +73,10 @@ def configure_args(self): # The relevant upstream fix for the m4 would be: # https://gitlab.com/libvdwxc/libvdwxc/-/commit/9340f857515c4a2e56d2aa7cf3a21c41ba8559c3.diff patch("fftw-detection.patch", when="@:0.4.0") + + # fix a mpi detection error + patch( + "0001-fix-mpi-detection-in-configure.patch", + sha256="b1818ef7f984e398ab07f2a693ac7b2488955356645910d74a627159df97b932", + when="@0.5.0", + ) diff --git a/repos/spack_repo/builtin/packages/libvips/package.py b/repos/spack_repo/builtin/packages/libvips/package.py index e737b8b2f0e..5f50fc85a85 100644 --- a/repos/spack_repo/builtin/packages/libvips/package.py +++ b/repos/spack_repo/builtin/packages/libvips/package.py @@ -3,11 +3,12 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.build_systems.meson import MesonPackage from spack.package import * -class Libvips(AutotoolsPackage): +class Libvips(MesonPackage, AutotoolsPackage): """libvips is a demand-driven, horizontally threaded image processing library. Compared to similar libraries, libvips runs quickly and uses little memory.""" @@ -18,6 +19,7 @@ class Libvips(AutotoolsPackage): license("LGPL-2.1-or-later", checked_by="wdconinc") + version("8.18.0", sha256="b85ab92280c30d22f5c8fe2f68b809cddb7eaac437d8c33474475dac84ddc574") version("8.15.3", sha256="3e27d9f536eafad64013958fe9e8a1964c90b564c731d49db7c1a1c11b1052a0") version("8.13.3", sha256="4eff5cdc8dbe1a05a926290a99014e20ba386f5dcca38d9774bef61413435d4c") version("8.10.5", sha256="a4eef2f5334ab6dbf133cd3c6d6394d5bdb3e76d5ea4d578b02e1bc3d9e1cfd8") @@ -42,10 +44,19 @@ class Libvips(AutotoolsPackage): # TODO: Add more variants! - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("pkgconfig", type="build") + + with when("build_system=meson"): + depends_on("meson", type="build") + depends_on("ninja", type="build") + + with when("build_system=autotools"): + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + depends_on("glib") depends_on("expat") diff --git a/repos/spack_repo/builtin/packages/libvpx/package.py b/repos/spack_repo/builtin/packages/libvpx/package.py index fccd2ecebf2..69f5dd9ddb1 100644 --- a/repos/spack_repo/builtin/packages/libvpx/package.py +++ b/repos/spack_repo/builtin/packages/libvpx/package.py @@ -22,14 +22,6 @@ class Libvpx(AutotoolsPackage): version("1.14.1", sha256="901747254d80a7937c933d03bd7c5d41e8e6c883e0665fadcb172542167c7977") - # Deprecated versions - # https://nvd.nist.gov/vuln/detail/CVE-2023-44488 - version( - "1.10.0", - sha256="85803ccbdbdd7a3b03d930187cb055f1353596969c1f92ebec2db839fa4f834a", - deprecated=True, - ) - variant("pic", default=True, description="Produce position-independent code (for shared libs)") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/libwhich/package.py b/repos/spack_repo/builtin/packages/libwhich/package.py index b017f3b699f..2461793c35a 100644 --- a/repos/spack_repo/builtin/packages/libwhich/package.py +++ b/repos/spack_repo/builtin/packages/libwhich/package.py @@ -2,12 +2,12 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.generic import Package +from spack_repo.builtin.build_systems.makefile import MakefilePackage from spack.package import * -class Libwhich(Package): +class Libwhich(MakefilePackage): """ Libwhich: the functionality of which for libraries. """ @@ -21,13 +21,18 @@ class Libwhich(Package): license("MIT") version("master", branch="master") - version("1.1.0", sha256="f1c30bf7396859ad437a5db74e9e328fb4b4e1379457121e28a3524b1e3a0b3f") - version("1.0.0", sha256="61d5d643d4cbd4b340b9b48922e1b4fd2a35729b7cfdcc7283aab82a6f742a6c") + version("1.3.0", sha256="853e843824ee8b20b0192d45bf9837c860ef41cce4a10bd14c59860753e5fa0b") - depends_on("c", type="build") # generated - depends_on("gmake", type="build") + with default_args(deprecated=True): + version("1.2.0", sha256="aa13017310f3f9b008267283c155992bb7e0f6002dafaf82e6f0dbd270c18b0a") + version("1.1.0", sha256="f1c30bf7396859ad437a5db74e9e328fb4b4e1379457121e28a3524b1e3a0b3f") + version("1.0.0", sha256="61d5d643d4cbd4b340b9b48922e1b4fd2a35729b7cfdcc7283aab82a6f742a6c") + + depends_on("c", type="build") def install(self, spec, prefix): - make() - mkdir(prefix.bin) - install("libwhich", prefix.bin) + if spec.satisfies("@1.2:"): + make("install", f"prefix={prefix}") + else: + mkdir(prefix.bin) + install("libwhich", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/libwnck/package.py b/repos/spack_repo/builtin/packages/libwnck/package.py index 553b10f4d50..b7a725c8247 100644 --- a/repos/spack_repo/builtin/packages/libwnck/package.py +++ b/repos/spack_repo/builtin/packages/libwnck/package.py @@ -48,7 +48,7 @@ def url_for_version(self, version): ) with default_args(type="build"): - depends_on("pkgconfig@0.9.0:") + depends_on("pkgconfig") depends_on("gettext", when="@3.31:") depends_on("intltool@0.40.6:", when="@:3.24") depends_on("cmake", when="build_system=meson") diff --git a/repos/spack_repo/builtin/packages/libx11/package.py b/repos/spack_repo/builtin/packages/libx11/package.py index 14b346113c0..fe1da4db1bd 100644 --- a/repos/spack_repo/builtin/packages/libx11/package.py +++ b/repos/spack_repo/builtin/packages/libx11/package.py @@ -19,6 +19,8 @@ class Libx11(AutotoolsPackage, XorgPackage): maintainers("wdconinc") + version("1.8.13", sha256="acf0e7cd7541110e6330ecb539441a2d53061f386ec7be6906dfde0de2598470") + version("1.8.12", sha256="220fbcf54b6e4d8dc40076ff4ab87954358019982490b33c7802190b62d89ce1") version("1.8.11", sha256="17a37d1597354a1d8040196f1cdac54240c78c0bd1a1a95e97cc23215cf0b734") version("1.8.10", sha256="b7a1a90d881bb7b94df5cf31509e6b03f15c0972d3ac25ab0441f5fbc789650f") version("1.8.9", sha256="57ca5f07d263788ad661a86f4139412e8b699662e6b60c20f1f028c25a935e48") diff --git a/repos/spack_repo/builtin/packages/libxc/package.py b/repos/spack_repo/builtin/packages/libxc/package.py index 7f58ad4cf49..fca69075eef 100644 --- a/repos/spack_repo/builtin/packages/libxc/package.py +++ b/repos/spack_repo/builtin/packages/libxc/package.py @@ -46,6 +46,7 @@ class Libxc(AutotoolsPackage, CudaPackage, CMakePackage): variant("shared", default=True, description="Build shared libraries") variant("kxc", default=False, when="@5:", description="Build with third derivatives") variant("lxc", default=False, when="@5:", description="Build with fourth derivatives") + variant("fhc", default=True, when="@5.2:", description="Enforce Fermi hole curvature") variant( "fortran", default=True, @@ -107,7 +108,6 @@ def libs(self): class AutotoolsBuilder(autotools.AutotoolsBuilder): - def setup_build_environment(self, env: EnvironmentModifications) -> None: # microarchitecture-specific optimization flags should be controlled # by Spack, otherwise we may end up with contradictory or invalid flags @@ -137,6 +137,7 @@ def configure_args(self): args = [] args += self.enable_or_disable("shared") args += self.enable_or_disable("cuda") + args += self.enable_or_disable("fhc") if self.spec.satisfies("+kxc"): args.append("--enable-kxc") if self.spec.satisfies("+lxc"): @@ -161,13 +162,13 @@ def check(self): class CMakeBuilder(cmake.CMakeBuilder): - def cmake_args(self): spec = self.spec args = [ self.define_from_variant("BUILD_SHARED_LIBS", "shared"), self.define_from_variant("ENABLE_FORTRAN", "fortran"), self.define_from_variant("ENABLE_CUDA", "cuda"), + self.define("DISABLE_FHC", spec.satisfies("~fhc")), self.define("DISABLE_KXC", spec.satisfies("~kxc")), self.define("DISABLE_LXC", spec.satisfies("~lxc")), self.define("BUILD_TESTING", self.pkg.run_tests), diff --git a/repos/spack_repo/builtin/packages/libxcb/package.py b/repos/spack_repo/builtin/packages/libxcb/package.py index 4ed41e21461..2d761ea9c52 100644 --- a/repos/spack_repo/builtin/packages/libxcb/package.py +++ b/repos/spack_repo/builtin/packages/libxcb/package.py @@ -28,12 +28,6 @@ class Libxcb(AutotoolsPackage, XorgPackage): version("1.16", sha256="4348566aa0fbf196db5e0a576321c65966189210cb51328ea2bb2be39c711d71") version("1.15", sha256="cc38744f817cf6814c847e2df37fcb8997357d72fa4bcbc228ae0fe47219a059") version("1.14", sha256="a55ed6db98d43469801262d81dc2572ed124edc3db31059d4e9916eb9f844c34") - version( - "1.13", - sha256="0bb3cfd46dbd90066bf4d7de3cad73ec1024c7325a4a0cbf5f4a0d4fa91155fb", - url="https://xcb.freedesktop.org/dist/libxcb-1.13.tar.gz", - deprecated=True, - ) depends_on("c", type="build") # generated @@ -47,7 +41,6 @@ class Libxcb(AutotoolsPackage, XorgPackage): depends_on("xcb-proto@1.16:", when="@1.16", type="build") depends_on("xcb-proto@1.15:", when="@1.15", type="build") depends_on("xcb-proto@1.14:", when="@1.14", type="build") - depends_on("xcb-proto@1.13:", when="@1.13", type="build") depends_on("python", type="build") depends_on("pkgconfig", type="build") diff --git a/repos/spack_repo/builtin/packages/libxcrypt/package.py b/repos/spack_repo/builtin/packages/libxcrypt/package.py index 74c3c2b655c..a89be701199 100644 --- a/repos/spack_repo/builtin/packages/libxcrypt/package.py +++ b/repos/spack_repo/builtin/packages/libxcrypt/package.py @@ -12,54 +12,27 @@ class Libxcrypt(AutotoolsPackage): homepage = "https://github.com/besser82/libxcrypt" url = "https://github.com/besser82/libxcrypt/releases/download/v4.4.30/libxcrypt-4.4.30.tar.xz" + tags = ["build-tools"] - maintainers("haampie") - def url_for_version(self, version): - if version <= Version("4.4.17"): - return "https://github.com/besser82/libxcrypt/archive/v{}.tar.gz".format(version) - return "https://github.com/besser82/libxcrypt/releases/download/v{}/libxcrypt-{}.tar.xz".format( - version, version - ) + maintainers("haampie") license("LGPL-2.1-or-later") + version("4.5.2", sha256="71513a31c01a428bccd5367a32fd95f115d6dac50fb5b60c779d5c7942aec071") version("4.4.38", sha256="80304b9c306ea799327f01d9a7549bdb28317789182631f1b54f4511b4206dd6") # 4.4.37 requires pkg-config and is not included here version("4.4.36", sha256="e5e1f4caee0a01de2aee26e3138807d6d3ca2b8e67287966d1fefd65e1fd8943") version("4.4.35", sha256="a8c935505b55f1df0d17f8bfd59468c7c6709a1d31831b0f8e3e045ab8fd455d") - version("4.4.34", sha256="bb3f467af21c48046ce662186eb2ddf078ca775c441fdf1c3628448a3833a230") - version("4.4.33", sha256="e87acf9c652c573a4713d5582159f98f305d56ed5f754ce64f57d4194d6b3a6f") - version("4.4.32", sha256="0613f9bd51d713f8bb79fa10705b68d2ab705c3be4c4fc119f0a96bdc72256c4") - version("4.4.31", sha256="c0181b6a8eea83850cfe7783119bf71fddbde69adddda1d15747ba433d5c57ba") - version("4.4.30", sha256="b3667f0ba85daad6af246ba4090fbe53163ad93c8b6a2a1257d22a78bb7ceeba") - version("4.4.17", sha256="7665168d0409574a03f7b484682e68334764c29c21ca5df438955a381384ca07") - version("4.4.16", sha256="a98f65b8baffa2b5ba68ee53c10c0a328166ef4116bce3baece190c8ce01f375") - version("4.4.15", sha256="8bcdef03bc65f9dbda742e56820435b6f13eea59fb903765141c6467f4655e5a") - variant( - "obsolete_api", - default=False, - description="Enable all compatibility interfaces", - when="@4.4.30:", - ) + variant("obsolete_api", default=False, description="Enable all compatibility interfaces") patch("truncating-conversion.patch", when="@4.4.30") - depends_on("c", type="build") # generated - - with when("@:4.4.17"): - depends_on("autoconf", type="build") - depends_on("automake@1.14:", type="build") - depends_on("libtool", type="build") - depends_on("m4", type="build") - + depends_on("c", type="build") # Some distros have incomplete perl installs, +open catches that. - depends_on("perl@5.14.0: +open", type="build", when="@4.4.18:") + depends_on("perl@5.14:+open", type="build") - # Support Perl 5.38. todo: remove patch and update depends_on - # range once the commit ends up in a tagged release - depends_on("perl@:5.36", type="build", when="@:4.4.34") patch("commit-95d56e0.patch", when="@4.4.35") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/libxext/package.py b/repos/spack_repo/builtin/packages/libxext/package.py index 5866542fab4..4bcb9a50b18 100644 --- a/repos/spack_repo/builtin/packages/libxext/package.py +++ b/repos/spack_repo/builtin/packages/libxext/package.py @@ -13,11 +13,13 @@ class Libxext(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/lib/libXext" xorg_mirror_path = "lib/libXext-1.3.3.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/lib/libXext.git" license("MIT") maintainers("wdconinc") + version("1.3.7", sha256="6564608dc3b816b0cfddf0c7ddc62bc579055dd70b2f28113a618df2acb64189") version("1.3.6", sha256="1a0ac5cd792a55d5d465ced8dbf403ed016c8e6d14380c0ea3646c4415496e3d") version("1.3.5", sha256="1a3dcda154f803be0285b46c9338515804b874b5ccc7a2b769ab7fd76f1035bd") version("1.3.4", sha256="8ef0789f282826661ff40a8eef22430378516ac580167da35cc948be9041aac1") diff --git a/repos/spack_repo/builtin/packages/libxfce4util/package.py b/repos/spack_repo/builtin/packages/libxfce4util/package.py index 3379a635f7b..3f87ef25e70 100644 --- a/repos/spack_repo/builtin/packages/libxfce4util/package.py +++ b/repos/spack_repo/builtin/packages/libxfce4util/package.py @@ -31,7 +31,7 @@ class Libxfce4util(AutotoolsPackage): depends_on("gettext", when="@4.18:") with default_args(type=("run", "link", "build")): - depends_on("pkgconfig@0.9.0:") + depends_on("pkgconfig") depends_on("glib@2") depends_on("gobject-introspection", when="+introspection") depends_on("vala", when="+vala") diff --git a/repos/spack_repo/builtin/packages/libxfixes/package.py b/repos/spack_repo/builtin/packages/libxfixes/package.py index ed2ee3c064d..89a157bb134 100644 --- a/repos/spack_repo/builtin/packages/libxfixes/package.py +++ b/repos/spack_repo/builtin/packages/libxfixes/package.py @@ -14,12 +14,14 @@ class Libxfixes(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/lib/libXfixes" xorg_mirror_path = "lib/libXfixes-5.0.2.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/lib/libXfixes.git" license("MIT") maintainers("wdconinc") # Newer versions are blocked by https://github.com/spack/spack/issues/41688 + # version("6.0.2", sha256="041331b8e6e36038b3bf836785b6b175ec8515f964c9e4e3316b3bfed0f53ac7") # version("6.0.1", sha256="e69eaa321173c748ba6e2f15c7cf8da87f911d3ea1b6af4b547974aef6366bec") # version("6.0.0", sha256="82045da5625350838390c9440598b90d69c882c324ca92f73af9f0e992cb57c7") version("5.0.3", sha256="9ab6c13590658501ce4bd965a8a5d32ba4d8b3bb39a5a5bc9901edffc5666570") diff --git a/repos/spack_repo/builtin/packages/libxft/package.py b/repos/spack_repo/builtin/packages/libxft/package.py index 4f95b0c74da..4d315dc5142 100644 --- a/repos/spack_repo/builtin/packages/libxft/package.py +++ b/repos/spack_repo/builtin/packages/libxft/package.py @@ -17,11 +17,13 @@ class Libxft(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/lib/libXft" xorg_mirror_path = "lib/libXft-2.3.2.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/lib/libXft.git" license("MIT") maintainers("wdconinc") + version("2.3.9", sha256="47c157fb4d0308f8b9604b74c29bb902b019eb97031f8fbf5ab62aa9f147a104") version("2.3.8", sha256="32e48fe2d844422e64809e4e99b9d8aed26c1b541a5acf837c5037b8d9f278a8") version("2.3.7", sha256="75b4378644f5df3a15f684f8f0b5ff1324d37aacd5a381f3b830a2fbe985f660") version("2.3.6", sha256="b7e59f69e0bbabe9438088775f7e5a7c16a572e58b11f9722519385d38192df5") @@ -36,6 +38,7 @@ class Libxft(AutotoolsPackage, XorgPackage): depends_on("fontconfig@2.5.92:") depends_on("libx11") depends_on("libxrender@0.8.2:") + depends_on("xproto@7.0.22:", type="build", when="@2.3.9:") depends_on("pkgconfig", type="build") depends_on("util-macros", type="build") diff --git a/repos/spack_repo/builtin/packages/libxi/package.py b/repos/spack_repo/builtin/packages/libxi/package.py index af8f7fb3053..bebe03e7079 100644 --- a/repos/spack_repo/builtin/packages/libxi/package.py +++ b/repos/spack_repo/builtin/packages/libxi/package.py @@ -13,12 +13,14 @@ class Libxi(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/lib/libXi" xorg_mirror_path = "lib/libXi-1.7.6.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/lib/libXi.git" license("MIT AND X11") maintainers("wdconinc") # Newer versions are blocked by https://github.com/spack/spack/issues/41688 + # version("1.8.2", sha256="5542daec66febfeb6f51d57abfa915826efe2e3af57534f4105b82240ea3188d") # version("1.8.1", sha256="3b5f47c223e4b63d7f7fe758886b8bf665b20a7edb6962c423892fd150e326ea") # version("1.8", sha256="c80fd200a1190e4406bb4cc6958839d9651638cb47fa546a595d4bebcd3b9e2d") version("1.7.10", sha256="b51e106c445a49409f3da877aa2f9129839001b24697d75a54e5c60507e9a5e3") diff --git a/repos/spack_repo/builtin/packages/libxinerama/package.py b/repos/spack_repo/builtin/packages/libxinerama/package.py index 73054e6e239..9434be6c690 100644 --- a/repos/spack_repo/builtin/packages/libxinerama/package.py +++ b/repos/spack_repo/builtin/packages/libxinerama/package.py @@ -13,11 +13,13 @@ class Libxinerama(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/lib/libXinerama" xorg_mirror_path = "lib/libXinerama-1.1.3.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/lib/libXinerama.git" license("MIT") maintainers("wdconinc") + version("1.1.6", sha256="c74ee3d05e473671bf86285e2dece345485200bb042bea1540b1e30ff3f74bae") version("1.1.5", sha256="2efa855cb42dc620eff3b77700d8655695e09aaa318f791f201fa60afa72b95c") version("1.1.4", sha256="64de45e18cc76b8e703cb09b3c9d28bd16e3d05d5cd99f2d630de2d62c3acc18") version("1.1.3", sha256="0ba243222ae5aba4c6a3d7a394c32c8b69220a6872dbb00b7abae8753aca9a44") diff --git a/repos/spack_repo/builtin/packages/libxkbcommon/package.py b/repos/spack_repo/builtin/packages/libxkbcommon/package.py index 094799d1859..4dfc0ad8120 100644 --- a/repos/spack_repo/builtin/packages/libxkbcommon/package.py +++ b/repos/spack_repo/builtin/packages/libxkbcommon/package.py @@ -28,31 +28,15 @@ class Libxkbcommon(MesonPackage, AutotoolsPackage): version("1.5.0", sha256="560f11c4bbbca10f495f3ef7d3a6aa4ca62b4f8fb0b52e7d459d18a26e46e017") version("1.4.1", sha256="943c07a1e2198026d8102b17270a1f406e4d3d6bbc4ae105b9e1b82d7d136b39") version("1.4.0", sha256="106cec5263f9100a7e79b5f7220f889bc78e7d7ffc55d2b6fdb1efefb8024031") - version( - "0.8.2", - sha256="7ab8c4b3403d89d01898066b72cb6069bddeb5af94905a65368f671a026ed58c", - deprecated=True, - ) - version( - "0.8.0", - sha256="e829265db04e0aebfb0591b6dc3377b64599558167846c3f5ee5c5e53641fe6d", - deprecated=True, - ) - version( - "0.7.1", - sha256="ba59305d2e19e47c27ea065c2e0df96ebac6a3c6e97e28ae5620073b6084e68b", - deprecated=True, - ) variant("wayland", default=False, description="Enable Wayland support") depends_on("c", type="build") # generated - depends_on("meson@0.41:", type="build", when="@0.9:") depends_on("meson@0.49:", type="build", when="@1.0:") depends_on("meson@0.51:", type="build", when="@1.5:") depends_on("meson@0.52:", type="build", when="@1.6:") - depends_on("pkgconfig@0.9.0:", type="build") + depends_on("pkgconfig", type="build") depends_on("bison", type="build") depends_on("util-macros") depends_on("xkbdata-api") diff --git a/repos/spack_repo/builtin/packages/libxml2/nvhpc-elfgcchack.patch b/repos/spack_repo/builtin/packages/libxml2/nvhpc-elfgcchack.patch deleted file mode 100644 index 8780611094c..00000000000 --- a/repos/spack_repo/builtin/packages/libxml2/nvhpc-elfgcchack.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/elfgcchack.h 2020-08-19 07:55:24.340192000 -0700 -+++ b/elfgcchack.h 2020-08-19 07:55:39.952437000 -0700 -@@ -9,7 +9,7 @@ - */ - - #ifdef IN_LIBXML --#ifdef __GNUC__ -+#if defined __GNUC__ && !defined __NVCOMPILER - #ifdef PIC - #ifdef __linux__ - #if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3) diff --git a/repos/spack_repo/builtin/packages/libxml2/package.py b/repos/spack_repo/builtin/packages/libxml2/package.py index 1c4ac46d241..b804686a511 100644 --- a/repos/spack_repo/builtin/packages/libxml2/package.py +++ b/repos/spack_repo/builtin/packages/libxml2/package.py @@ -22,6 +22,8 @@ class Libxml2(AutotoolsPackage, CMakePackage, NMakePackage): maintainers("AlexanderRichert-NOAA") + executables = ["xml2-config"] + def url_for_version(self, version): if version >= Version("2.9.13"): url = "https://download.gnome.org/sources/libxml2/{0}/libxml2-{1}.tar.xz" @@ -30,52 +32,29 @@ def url_for_version(self, version): license("MIT") + version("2.15.3", sha256="78262a6e7ac170d6528ebfe2efccdf220191a5af6a6cd61ea4a9a9a5042c7a07") + version("2.15.1", sha256="c008bac08fd5c7b4a87f7b8a71f283fa581d80d80ff8d2efd3b26224c39bc54c") + version("2.13.9", sha256="a2c9ae7b770da34860050c309f903221c67830c86e4a7e760692b803df95143a") version("2.13.5", sha256="74fc163217a3964257d3be39af943e08861263c4231f9ef5b496b6f6d4c7b2b6") version("2.13.4", sha256="65d042e1c8010243e617efb02afda20b85c2160acdbfbcb5b26b80cec6515650") version("2.12.9", sha256="59912db536ab56a3996489ea0299768c7bcffe57169f0235e7f962a91f483590") version("2.11.9", sha256="780157a1efdb57188ec474dca87acaee67a3a839c2525b2214d318228451809f") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2024-25062 - version( - "2.10.3", sha256="5d2cc3d78bec3dbe212a9d7fa629ada25a7da928af432c93060ff5c17ee28a9c" - ) - version( - "2.10.2", sha256="d240abe6da9c65cb1900dd9bf3a3501ccf88b3c2a1cb98317d03f272dda5b265" - ) - version( - "2.10.1", sha256="21a9e13cc7c4717a6c36268d0924f92c3f67a1ece6b7ff9d588958a6db9fb9d8" - ) - version( - "2.9.14", sha256="60d74a257d1ccec0475e749cba2f21559e48139efba6ff28224357c7c798dfee" - ) - version( - "2.9.13", sha256="276130602d12fe484ecc03447ee5e759d0465558fbc9d6bd144e3745306ebf0e" - ) - version( - "2.9.12", sha256="c8d6681e38c56f172892c85ddc0852e1fd4b53b4209e7f4ebf17f7e2eae71d92" - ) - version( - "2.9.11", sha256="886f696d5d5b45d780b2880645edf9e0c62a4fd6841b853e824ada4e02b4d331" - ) - version( - "2.9.10", sha256="aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f" - ) - version("2.9.9", sha256="94fb70890143e3c6549f265cee93ec064c80a84c42ad0f23e85ee1fd6540a871") - version("2.9.8", sha256="0b74e51595654f958148759cfef0993114ddccccbb6f31aee018f3558e8e2732") - version("2.9.4", sha256="ffb911191e509b966deb55de705387f14156e1a56b21824357cdf0053233633c") - version("2.9.2", sha256="5178c30b151d044aefb1b08bf54c3003a0ac55c59c866763997529d60770d5bc") - version("2.7.8", sha256="cda23bc9ebd26474ca8f3d67e7d1c4a1f1e7106364b690d822e009fdc3c417ec") - - variant("http", default=False, description="Enable HTTP support") + + # http support was deprecated in 2.13 and removed in 2.15 + # https://github.com/GNOME/libxml2/commit/b85d77d156476bcb910b2a25b21a091957d10de6 + variant("http", default=False, description="Enable HTTP support", when="@:2.14") variant("python", default=False, description="Enable Python support") variant("shared", default=True, description="Build shared library") variant("pic", default=True, description="Enable position-independent code (PIC)") conflicts("~pic+shared") + # Build system changed in 2.14, and isn't yet implemented in Spack. + conflicts("@2.14: platform=windows") + depends_on("c", type="build") - depends_on("pkgconfig@0.9.0:", type="build", when="build_system=autotools") + depends_on("pkgconfig", type="build", when="build_system=autotools") # conditional on non Windows, but rather than specify for each platform # specify for non Windows builder, which has equivalent effect depends_on("iconv", when="build_system=autotools") @@ -86,10 +65,6 @@ def url_for_version(self, version): with when("+python"): extends("python") depends_on("python+shared~libxml2") - # A note about python versions: libxml 2.10.1 (and presumably earlier) has - # a bug in its configure script that fails to properly parse python - # version strings with more than one character for the minor version. - depends_on("python@:3.9", when="@:2.10.1") # XML Conformance Test Suites # See https://www.w3.org/XML/Test/ for information @@ -99,22 +74,16 @@ def url_for_version(self, version): sha256="96151685cec997e1f9f3387e3626d61e6284d4d6e66e0e440c209286c03e9cc7", ) - patch("nvhpc-elfgcchack.patch", when="@:2.9 %nvhpc") - - # Use NAN/INFINITY if available to avoid SIGFPE - # See https://gitlab.gnome.org/GNOME/libxml2/-/merge_requests/186 - patch( - "https://gitlab.gnome.org/GNOME/libxml2/-/commit/c9925454fd384a17c8c03d358c6778a552e9287b.diff", - sha256="5dc43fed02b443d2563a502a52caafe39477c06fc30b70f786d5ed3eb5aea88d", - when="@2.9.11:2.9.14", - ) build_system( - conditional("nmake", when="platform=windows"), - conditional("cmake", when="@2.11:"), - "autotools", - default="autotools", + conditional("nmake", when="platform=windows"), "cmake", "autotools", default="autotools" ) + @classmethod + def determine_version(cls, exe): + # Output from --version is just the version, nothing else + output = Executable(exe)("--version", output=str) + return output.strip() + def flag_handler(self, name, flags): if name == "cflags" and self.spec.satisfies("+pic"): flags.append(self["c"].pic_flag) @@ -182,7 +151,7 @@ def test_xmlcatalog(self): if not os.path.exists(path): raise SkipTest("xmlcatalog is not installed") - xmlcatalog = which(path) + xmlcatalog = which(path, required=True) out = xmlcatalog("--create", output=str.split, error=str.split) expected = [r"'] @@ -194,7 +163,7 @@ def test_xml2_config(self): if not os.path.exists(path): raise SkipTest("xml2-config is not installed") - xml2_config = which(path) + xml2_config = which(path, required=True) out = xml2_config("--version", output=str.split, error=str.split) assert str(self.spec.version) in out @@ -205,7 +174,7 @@ def test_xmllint(self): raise SkipTest("xmllint is not installed") test_filename = "test.xml" - xmllint = which(path) + xmllint = which(path, required=True) with test_part(self, "test_xmllint_auto", purpose="generate {0}".format(test_filename)): xmllint("--auto", "-o", test_filename) @@ -297,6 +266,7 @@ def cmake_args(self): args = [ self.define_from_variant("BUILD_SHARED_LIBS", "shared"), self.define_from_variant("LIBXML2_WITH_PYTHON", "python"), + self.define_from_variant("LIBXML2_WITH_HTTP", "http"), self.define("LIBXML2_WITH_LZMA", True), self.define("LIBXML2_WITH_ZLIB", True), self.define("LIBXML2_WITH_TESTS", True), diff --git a/repos/spack_repo/builtin/packages/libxmu/package.py b/repos/spack_repo/builtin/packages/libxmu/package.py index bbea56dd523..a122f2d2438 100644 --- a/repos/spack_repo/builtin/packages/libxmu/package.py +++ b/repos/spack_repo/builtin/packages/libxmu/package.py @@ -16,11 +16,13 @@ class Libxmu(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/lib/libXmu" xorg_mirror_path = "lib/libXmu-1.1.2.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/lib/libXmu.git" license("MIT") maintainers("wdconinc") + version("1.3.1", sha256="5c8f44e26ccc9b14188599524e67ce788a205b38e297834babdeb12090be835b") version("1.2.1", sha256="bf0902583dd1123856c11e0a5085bd3c6e9886fbbd44954464975fd7d52eb599") version("1.2.0", sha256="b4686c4b4570044bcfc35bfaa3edbe68185ddf8e3250387f74a140c8e45afb2f") version("1.1.4", sha256="3091d711cdc1d8ea0f545a13b90d1464c3c3ab64778fd121f0d789b277a80289") diff --git a/repos/spack_repo/builtin/packages/libxpm/package.py b/repos/spack_repo/builtin/packages/libxpm/package.py index 536f680a07f..92b3188f107 100644 --- a/repos/spack_repo/builtin/packages/libxpm/package.py +++ b/repos/spack_repo/builtin/packages/libxpm/package.py @@ -13,11 +13,13 @@ class Libxpm(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/lib/libXpm" xorg_mirror_path = "lib/libXpm-3.5.12.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/lib/libXpm.git" license("X11") maintainers("wdconinc") + version("3.5.18", sha256="74eb57253ed3085686371a331737daf072223b77f76bba13ed65a4b3aa6cb403") version("3.5.17", sha256="959466c7dfcfcaa8a65055bfc311f74d4c43d9257900f85ab042604d286df0c6") version("3.5.16", sha256="43a70e6f9b67215fb223ca270d83bdcb868c513948441d5b781ea0765df6bfb4") version("3.5.15", sha256="2a9bd419e31270593e59e744136ee2375ae817322447928d2abb6225560776f9") diff --git a/repos/spack_repo/builtin/packages/libxpresent/package.py b/repos/spack_repo/builtin/packages/libxpresent/package.py index a14eaa9b25c..4a2eb00efed 100644 --- a/repos/spack_repo/builtin/packages/libxpresent/package.py +++ b/repos/spack_repo/builtin/packages/libxpresent/package.py @@ -14,11 +14,13 @@ class Libxpresent(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/lib/libXpresent/" xorg_mirror_path = "lib/libXpresent-1.0.0.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/lib/libXpresent.git" license("MIT") maintainers("wdconinc") + version("1.0.2", sha256="e98a211e51d8b9381d16b24a57cecb926a23e743b9e0b1ffc3e870206b7dee1a") version("1.0.1", sha256="8ebf8567a8f6afe5a64275a2ecfd4c84e957970c27299d964350f60be9f3541d") version("1.0.0", sha256="92f1bdfb67ae2ffcdb25ad72c02cac5e4912dc9bc792858240df1d7f105946fa") diff --git a/repos/spack_repo/builtin/packages/libxrandr/package.py b/repos/spack_repo/builtin/packages/libxrandr/package.py index e7c4d760a6c..2b7395b1382 100644 --- a/repos/spack_repo/builtin/packages/libxrandr/package.py +++ b/repos/spack_repo/builtin/packages/libxrandr/package.py @@ -13,11 +13,13 @@ class Libxrandr(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/lib/libXrandr" xorg_mirror_path = "lib/libXrandr-1.5.0.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/lib/libXrandr.git" license("MIT") maintainers("wdconinc") + version("1.5.5", sha256="23faedab4675890ba579b8103399132a139527306b18b500c6fe28e090e2a056") version("1.5.4", sha256="c72c94dc3373512ceb67f578952c5d10915b38cc9ebb0fd176a49857b8048e22") version("1.5.3", sha256="3ad316c1781fe2fe22574b819e81f0eff087a8560377f521ba932238b41b251f") version("1.5.0", sha256="1b594a149e6b124aab7149446f2fd886461e2935eca8dca43fe83a70cf8ec451") diff --git a/repos/spack_repo/builtin/packages/libxres/package.py b/repos/spack_repo/builtin/packages/libxres/package.py index 7d8b1bcc013..dc99e73e59f 100644 --- a/repos/spack_repo/builtin/packages/libxres/package.py +++ b/repos/spack_repo/builtin/packages/libxres/package.py @@ -13,11 +13,13 @@ class Libxres(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/lib/libXRes" xorg_mirror_path = "lib/libXres-1.0.7.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/lib/libXRes.git" license("custom") maintainers("wdconinc") + version("1.2.3", sha256="e1ee4845aa6a59e6ba7145422279ffc7da521b4d3dd302c0b1febdf45d06d093") version("1.2.2", sha256="8abce597ced4a7ab89032aee91f6f784d9960adc772b2b59f17e515cd4127950") version("1.2.1", sha256="918fb33c3897b389a1fbb51571c5c04c6b297058df286d8b48faa5af85e88bcc") version("1.2.0", sha256="5b62feee09f276d74054787df030fceb41034de84174abec6d81c591145e043a") @@ -28,6 +30,7 @@ class Libxres(AutotoolsPackage, XorgPackage): depends_on("libx11") depends_on("libxext") + depends_on("xproto", type="build", when="@1.2.3:") depends_on("xextproto", type="build") depends_on("resourceproto@1.0:", type="build", when="@1.0") depends_on("resourceproto@1.2:", type="build", when="@1.2") diff --git a/repos/spack_repo/builtin/packages/libxscrnsaver/package.py b/repos/spack_repo/builtin/packages/libxscrnsaver/package.py index 7fa00e44908..a29b3d7d456 100644 --- a/repos/spack_repo/builtin/packages/libxscrnsaver/package.py +++ b/repos/spack_repo/builtin/packages/libxscrnsaver/package.py @@ -13,11 +13,13 @@ class Libxscrnsaver(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/lib/libXScrnSaver" xorg_mirror_path = "lib/libXScrnSaver-1.2.2.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/lib/libXScrnSaver.git" license("MIT") maintainers("wdconinc") + version("1.2.5", sha256="356f45ae365403b5500702b6b7c6e708d02a5b0ada0e5a6c859db677e41fdb00") version("1.2.4", sha256="0656b2630475104d6df75d91ebb8e0153e61d14e9871ef1f403bcda4a62a838a") version("1.2.3", sha256="4f74e7e412144591d8e0616db27f433cfc9f45aae6669c6c4bb03e6bf9be809a") version("1.2.2", sha256="e12ba814d44f7b58534c0d8521e2d4574f7bf2787da405de4341c3b9f4cc8d96") diff --git a/repos/spack_repo/builtin/packages/libxslt/package.py b/repos/spack_repo/builtin/packages/libxslt/package.py index 2d5826b0678..c0922e46f84 100644 --- a/repos/spack_repo/builtin/packages/libxslt/package.py +++ b/repos/spack_repo/builtin/packages/libxslt/package.py @@ -2,12 +2,13 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.build_systems.autotools import AutotoolsBuilder, AutotoolsPackage +from spack_repo.builtin.build_systems.cmake import CMakeBuilder, CMakePackage from spack.package import * -class Libxslt(AutotoolsPackage): +class Libxslt(CMakePackage, AutotoolsPackage): """Libxslt is the XSLT C library developed for the GNOME project. XSLT itself is a an XML language to define transformation for XML. Libxslt is based on libxml2 the XML C library developed for the GNOME project. It also @@ -22,6 +23,9 @@ class Libxslt(AutotoolsPackage): license("X11", checked_by="wdconinc") + build_system(conditional("cmake", when="@1.1.35:"), "autotools", default="cmake") + + version("1.1.45", sha256="9acfe68419c4d06a45c550321b3212762d92f41465062ca4ea19e632ee5d216e") version("1.1.42", sha256="85ca62cac0d41fc77d3f6033da9df6fd73d20ea2fc18b0a3609ffb4110e1baeb") version("1.1.41", sha256="3ad392af91115b7740f7b50d228cc1c5fc13afc1da7f16cb0213917a37f71bda") version("1.1.40", sha256="194715db023035f65fb566402f2ad2b5eab4c29d541f511305c40b29b1f48d13") @@ -41,24 +45,41 @@ class Libxslt(AutotoolsPackage): variant("python", default=False, description="Build Python bindings") depends_on("c", type="build") + depends_on("cmake@3.18:", when="@1.1.38:", type="build") - depends_on("pkgconfig@0.9.0:", type="build") + depends_on("pkgconfig", type="build") depends_on("iconv") depends_on("libxml2") depends_on("libxml2+python", when="+python") depends_on("xz") depends_on("zlib-api") + depends_on("libgcrypt", when="+crypto") + conflicts("+crypto", when="platform=windows") depends_on("python+shared", when="+python") extends("python", when="+python") - def url_for_version(self, v): - if v > Version("1.1.34"): - return f"https://download.gnome.org/sources/libxslt/{v.up_to(2)}/libxslt-{v}.tar.xz" + def url_for_version(self, version): + if version > Version("1.1.34"): + return f"https://download.gnome.org/sources/libxslt/{version.up_to(2)}/libxslt-{version}.tar.xz" else: - return f"http://xmlsoft.org/sources/libxslt-{v}.tar.gz" + return f"http://xmlsoft.org/sources/libxslt-{version}.tar.gz" + + @run_after("install") + @on_package_attributes(run_tests=True) + def import_module_test(self): + if self.spec.satisfies("+python"): + with working_dir("spack-test", create=True): + python("-c", "import libxslt") + def patch(self): + # Remove flags not recognized by the NVIDIA compiler + if self.spec.satisfies("build_system=autotools %nvhpc"): + filter_file("-Wmissing-format-attribute", "", "configure") + + +class AutotoolsBuilder(AutotoolsBuilder): def configure_args(self): args = [] @@ -74,14 +95,12 @@ def configure_args(self): return args - @run_after("install") - @on_package_attributes(run_tests=True) - def import_module_test(self): - if self.spec.satisfies("+python"): - with working_dir("spack-test", create=True): - python("-c", "import libxslt") - def patch(self): - # Remove flags not recognized by the NVIDIA compiler - if self.spec.satisfies("%nvhpc"): - filter_file("-Wmissing-format-attribute", "", "configure") +class CMakeBuilder(CMakeBuilder): + def cmake_args(self): + return [ + self.define_from_variant("LIBXSLT_WITH_PYTHON", "python"), + self.define_from_variant("LIBXSLT_WITH_CRYPTO", "crypto"), + self.define("LIBXSLT_WITH_MODULES", False), + self.define("LIBXSLT_WITH_TESTS", False), + ] diff --git a/repos/spack_repo/builtin/packages/libxvmc/package.py b/repos/spack_repo/builtin/packages/libxvmc/package.py index 1f1a79a21da..19356b79273 100644 --- a/repos/spack_repo/builtin/packages/libxvmc/package.py +++ b/repos/spack_repo/builtin/packages/libxvmc/package.py @@ -13,11 +13,13 @@ class Libxvmc(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/lib/libXvMC" xorg_mirror_path = "lib/libXvMC-1.0.9.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/lib/libXvMC.git" license("MIT") maintainers("wdconinc") + version("1.0.15", sha256="c48f6051b1df9bd190d2763cd0312d715e4509575926247110d8f840463bdc94") version("1.0.14", sha256="3ad5d2b991219e2bf9b2f85d40b12c16f1afec038715e462f6058af73a9b5ef8") version("1.0.13", sha256="e630b4373af8c67a7c8f07ebe626a1269a613d262d1f737b57231a06f7c34b4e") version("1.0.12", sha256="024c9ec4f001f037eeca501ee724c7e51cf287eb69ced8c6126e16e7fa9864b5") diff --git a/repos/spack_repo/builtin/packages/libxxf86dga/package.py b/repos/spack_repo/builtin/packages/libxxf86dga/package.py index 43723b3b878..ef528caf58b 100644 --- a/repos/spack_repo/builtin/packages/libxxf86dga/package.py +++ b/repos/spack_repo/builtin/packages/libxxf86dga/package.py @@ -13,11 +13,13 @@ class Libxxf86dga(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/lib/libXxf86dga" xorg_mirror_path = "lib/libXxf86dga-1.1.4.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/lib/libXxf86dga.git" license("MIT") maintainers("wdconinc") + version("1.1.7", sha256="fd76cc930b85394fc12e52a01b3fb33b626731ac0084b3576b1e0095156683f7") version("1.1.6", sha256="87c7482b1e29b4eeb415815641c4f69c00545a8138e1b73ff1f361f7d9c22ac4") version("1.1.5", sha256="715e2bf5caf6276f0858eb4b11a1aef1a26beeb40dce2942387339da395bef69") version("1.1.4", sha256="e6361620a15ceba666901ca8423e8be0c6ed0271a7088742009160349173766b") diff --git a/repos/spack_repo/builtin/packages/libxxf86vm/package.py b/repos/spack_repo/builtin/packages/libxxf86vm/package.py index 47c5e65b3ed..1d91ed31e36 100644 --- a/repos/spack_repo/builtin/packages/libxxf86vm/package.py +++ b/repos/spack_repo/builtin/packages/libxxf86vm/package.py @@ -13,11 +13,13 @@ class Libxxf86vm(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/lib/libXxf86vm" xorg_mirror_path = "lib/libXxf86vm-1.1.4.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/lib/libXxf86vm.git" license("MIT") maintainers("wdconinc") + version("1.1.7", sha256="9a983e3cbb7a57905262291a17da962293c0645f99efd475e3c85264bfddc337") version("1.1.6", sha256="d2b4b1ec4eb833efca9981f19ed1078a8a73eed0bb3ca5563b64527ae8021e52") version("1.1.5", sha256="f3f1c29fef8accb0adbd854900c03c6c42f1804f2bc1e4f3ad7b2e1f3b878128") version("1.1.4", sha256="5108553c378a25688dcb57dca383664c36e293d60b1505815f67980ba9318a99") diff --git a/repos/spack_repo/builtin/packages/libzmq/package.py b/repos/spack_repo/builtin/packages/libzmq/package.py index bc4306eeaab..991f1dfd39b 100644 --- a/repos/spack_repo/builtin/packages/libzmq/package.py +++ b/repos/spack_repo/builtin/packages/libzmq/package.py @@ -105,7 +105,7 @@ def url_for_version(self, version): @when("@master") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/liggghts/package.py b/repos/spack_repo/builtin/packages/liggghts/package.py index fc2296f5689..f0297fbcf52 100644 --- a/repos/spack_repo/builtin/packages/liggghts/package.py +++ b/repos/spack_repo/builtin/packages/liggghts/package.py @@ -52,7 +52,7 @@ def edit(self, spec, prefix): # Makefile.user_default. makefile_default = os.path.join("src", "MAKE", "Makefile.user_default") makefile_user = os.path.join("src", "MAKE", "Makefile.user") - os.symlink(os.path.basename(makefile_default), makefile_user) + symlink(os.path.basename(makefile_default), makefile_user) makefile = FileFilter(makefile_user) makefile_auto = FileFilter(os.path.join("src", "MAKE", "Makefile.auto")) diff --git a/repos/spack_repo/builtin/packages/likwid/package.py b/repos/spack_repo/builtin/packages/likwid/package.py index 24fe355e8a2..766eeb29568 100644 --- a/repos/spack_repo/builtin/packages/likwid/package.py +++ b/repos/spack_repo/builtin/packages/likwid/package.py @@ -26,6 +26,8 @@ class Likwid(Package): license("GPL-3.0-only") + version("5.5.1", sha256="25c7830e63b20396fcfc3b16ae79c39b4220a86d376ceb7cd6949b5ff991db78") + version("5.5.0", sha256="688924fe01340707c2c318b7f867ee60fb751b95f4954bc82d3a1f76a3a15056") version("5.4.1", sha256="5773851455dbba489e2e3735931e51547377cd1796c982a5ac88d0f2299c0811") version("5.4.0", sha256="0f2b671c69caa993fedb48187b3bdcc94c22400ec84c926fd0898dbff68aa03e") version("5.3.0", sha256="c290e554c4253124ac2ab8b056e14ee4d23966b8c9fbfa10ba81f75ae543ce4e") diff --git a/repos/spack_repo/builtin/packages/linaro_forge/package.py b/repos/spack_repo/builtin/packages/linaro_forge/package.py index a9821d21961..53d966a7598 100644 --- a/repos/spack_repo/builtin/packages/linaro_forge/package.py +++ b/repos/spack_repo/builtin/packages/linaro_forge/package.py @@ -24,6 +24,25 @@ class LinaroForge(Package): maintainers("kenche-linaro") if platform.machine() == "aarch64": + version( + "25.1.3", sha256="befc2d9689d9eead6b3e6f383d417ca5873c71055013735e8ac3a79545d4cbb7" + ) + version( + "25.1.2", sha256="4bd7928dae0d9e3f01c6cecc671ad31b957731a1f137c81993b7b20373c5623d" + ) + version( + "25.1.1", sha256="41595c4e4e0f560d59cd1c70517471d6fe64ee2c1224d1a531cc2d2a2867ad27" + ) + version("25.1", sha256="62d215e4ffd20e69863b1ffb7f043968aa7a3bf21280f5dcf2e64a2db7deb675") + version( + "25.0.4", sha256="6d9a7ffcc18c6b89175167e100d80c46e2206b7a3655d6449dc63881f834b031" + ) + version( + "25.0.3", sha256="0cb6cc547bf53f63bb196da13b32f33ae5b9551d53535ed4e96b3606ade8a5f8" + ) + version( + "25.0.2", sha256="5cbce0612e76eafd47931154ad0b3183683112cfb5f2a38ae14769c56041f447" + ) version( "25.0.1", sha256="da16574f34c97142712cd4a56f1c99914abb069936a29b682a4d08cc39dc2e8d" ) @@ -65,21 +84,28 @@ class LinaroForge(Package): ) version("23.1", sha256="c9889b95729f97bcffaf0f15b930efbd27081b7cf2ebc958eede3a186cc4d93a") version( - "23.0.4", sha256="a19e6b247badaa52f78815761f71fb95a565024b7f79bdfb2f602f18b47a881c" + "23.0.4", + sha256="a19e6b247badaa52f78815761f71fb95a565024b7f79bdfb2f602f18b47a881c", + deprecated=True, ) version( - "23.0.3", sha256="a7e23ef2a187f8e2d6a6692cafb931c9bb614abf58e45ea9c2287191c4c44f02" + "23.0.3", + sha256="a7e23ef2a187f8e2d6a6692cafb931c9bb614abf58e45ea9c2287191c4c44f02", + deprecated=True, ) version( - "23.0.2", sha256="698fda8f7cc05a06909e5dcc50b9956f94135d7b12e84ffb21999a5b45c70c74" + "23.0.2", + sha256="698fda8f7cc05a06909e5dcc50b9956f94135d7b12e84ffb21999a5b45c70c74", + deprecated=True, ) version( - "23.0.1", sha256="552e4a3f408ed4eb5f1bfbb83c94530ee8733579c56c3e98050c0ad2d43eb433" + "23.0.1", + sha256="552e4a3f408ed4eb5f1bfbb83c94530ee8733579c56c3e98050c0ad2d43eb433", + deprecated=True, ) - version("23.0", sha256="7ae20bb27d539751d1776d1e09a65dcce821fc6a75f924675439f791261783fb") version( - "22.1.4", - sha256="4e2af481a37b4c99dba0de6fac75ac945316955fc4170d06e321530adea7ac9f", + "23.0", + sha256="7ae20bb27d539751d1776d1e09a65dcce821fc6a75f924675439f791261783fb", deprecated=True, ) elif platform.machine() == "ppc64le": @@ -104,17 +130,26 @@ class LinaroForge(Package): "23.0.1", sha256="08cffef2195ea96872d56e827f320eed40aaa82fd3b62d4c661a598fb2fb3a47" ) version("23.0", sha256="0962c7e0da0f450cf6daffe1156e1f59e02c9f643df458ec8458527afcde5b4d") + elif platform.machine() == "x86_64": version( - "22.1.3", - sha256="6479c3a4ae6ce6648c37594eb0266161f06d9f89010fca9299855848661dda49", - deprecated=True, + "25.1.3", sha256="eb23bbe09450ea2d7e5c4054f2e9d07567bf5e5af4a2dfce47f21d329a986b80" ) version( - "22.0.4", - sha256="f4cb5bcbaa67f9209299fe4653186a2829760b8b16a2883913aa43766375b04c", - deprecated=True, + "25.1.2", sha256="277f810b6cb52428a10c3317d07d0887140b8dbe5269485ba6715e23be3b55bb" + ) + version( + "25.1.1", sha256="a256fdbf57450511969d1c8121c1c45ec55b1212e2608fae2779b15a103819a1" + ) + version("25.1", sha256="153b0264939762431cb5242cd67774832c9ac9c2a2658a6918110064c322eaa1") + version( + "25.0.4", sha256="ee93a414f6183165cd8addf926a4a586668ce29930f34edd43d33c750646f0be" + ) + version( + "25.0.3", sha256="4d6abe4f46356339e0df789229f19b92c1ba13b794ce426a2e73e5aed319a6f6" + ) + version( + "25.0.2", sha256="9be88c3b2471af7f408f129f6941f11dc7838661d8f3cd172f82405b67e8f8c4" ) - elif platform.machine() == "x86_64": version( "25.0.1", sha256="88313be739e64615bc8de68eea784de79adf4ff5821c6808ab47bd03e3df1143" ) @@ -156,26 +191,28 @@ class LinaroForge(Package): ) version("23.1", sha256="31185d5f9855fd03701089907cdf7b38eb72c484ee730f8341decbbd8f9b5930") version( - "23.0.4", sha256="41a81840a273ea9a232efb4f031149867c5eff7a6381d787e18195f1171caac4" - ) - version( - "23.0.3", sha256="f2a010b94838f174f057cd89d12d03a89ca946163536eab178dd1ec877cdc27f" + "23.0.4", + sha256="41a81840a273ea9a232efb4f031149867c5eff7a6381d787e18195f1171caac4", + deprecated=True, ) version( - "23.0.2", sha256="565f0c073c6c8cbb06c062ca414e3f6ff8c6ca6797b03d247b030a9fbc55a5b1" + "23.0.3", + sha256="f2a010b94838f174f057cd89d12d03a89ca946163536eab178dd1ec877cdc27f", + deprecated=True, ) version( - "23.0.1", sha256="1d681891c0c725363f0f45584c9b79e669d5c9782158453b7d24b4b865d72755" + "23.0.2", + sha256="565f0c073c6c8cbb06c062ca414e3f6ff8c6ca6797b03d247b030a9fbc55a5b1", + deprecated=True, ) - version("23.0", sha256="f4ab12289c992dd07cb1a15dd985ef4713d1f9c0cf362ec5e9c995cca9b1cf81") version( - "22.1.3", - sha256="4f8a8b1df6ad712e89c82eedf4bd85b93b57b3c8d5b37d13480ff058fa8f4467", + "23.0.1", + sha256="1d681891c0c725363f0f45584c9b79e669d5c9782158453b7d24b4b865d72755", deprecated=True, ) version( - "22.0.4", - sha256="a2c8c1da38b9684d7c4656a98b3fc42777b03fd474cd0bf969324804f47587e5", + "23.0", + sha256="f4ab12289c992dd07cb1a15dd985ef4713d1f9c0cf362ec5e9c995cca9b1cf81", deprecated=True, ) @@ -203,8 +240,7 @@ class LinaroForge(Package): license_url = "https://docs.linaroforge.com/latest/html/licenceserver/index.html" def url_for_version(self, version): - pre = "arm" if version < Version("23.0") else "linaro" - return f"https://downloads.linaroforge.com/{version}/{pre}-forge-{version}-linux-{platform.machine()}.tar" + return f"https://downloads.linaroforge.com/{version}/linaro-forge-{version}-linux-{platform.machine()}.tar" @run_before("install") def abort_without_eula_acceptance(self): diff --git a/repos/spack_repo/builtin/packages/linux_perf/package.py b/repos/spack_repo/builtin/packages/linux_perf/package.py index 2158c07481f..751c6e29584 100644 --- a/repos/spack_repo/builtin/packages/linux_perf/package.py +++ b/repos/spack_repo/builtin/packages/linux_perf/package.py @@ -151,12 +151,15 @@ def install(self, spec, prefix): if spec.satisfies("+python"): checks.add("libpython") - args.extend( - [ - "PYTHON={}".format(spec["python"].command), - "PYTHON_CONFIG={}".format(spec["python"].prefix.bin.join("python-config")), - ] - ) + args.append("PYTHON={}".format(spec["python"].command)) + if which(spec["python"].prefix.bin.join("python-config")): + args.append( + "PYTHON_CONFIG={}".format(spec["python"].prefix.bin.join("python-config")) + ) + elif which(spec["python"].prefix.bin.join("python3-config")): + args.append( + "PYTHON_CONFIG={}".format(spec["python"].prefix.bin.join("python3-config")) + ) else: args.append("NO_LIBPYTHON=1") diff --git a/repos/spack_repo/builtin/packages/llama_cpp/package.py b/repos/spack_repo/builtin/packages/llama_cpp/package.py new file mode 100644 index 00000000000..f0dbbf2bbfd --- /dev/null +++ b/repos/spack_repo/builtin/packages/llama_cpp/package.py @@ -0,0 +1,59 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import os + +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage +from spack_repo.builtin.packages.ggml.package import GGMLPackageBase + +from spack.package import * + + +class LlamaCpp(GGMLPackageBase): + """LLM inference in C/C++""" + + homepage = "https://github.com/ggml-org/llama.cpp" + git = "https://github.com/ggml-org/llama.cpp.git" + + maintainers("rbberger") + + license("MIT") + + version("master", branch="master") + version("7158", tag="b7158", commit="b3b03a7baf387cfeaf56641bd14c06dbd3d2fcf0") + version("7086", tag="b7086", commit="7aaeedc098a77e9323044187101db4f6b69988da") + + variant("curl", default=True, description="use curl for model download") + variant("system_ggml", default=False, description="use external GGML library") + + depends_on("curl", when="+curl") + depends_on("ggml", when="+system_ggml") + + for v in ("cpu", "blas", "openmp", "cuda", "rocm", "metal", "rpc"): + depends_on(f"ggml+{v}", when=f"+system_ggml +{v}") + depends_on(f"ggml~{v}", when=f"+system_ggml ~{v}") + + for _flag in list(CudaPackage.cuda_arch_values): + depends_on(f"ggml cuda_arch={_flag}", when=f"+cuda+system_ggml cuda_arch={_flag}") + + for _flag in ROCmPackage.amdgpu_targets: + depends_on(f"ggml amdgpu_target={_flag}", when=f"+rocm+system_ggml amdgpu_target={_flag}") + + def cmake_args(self): + args = [ + self.define_from_variant("LLAMA_USE_SYSTEM_GGML", "system_ggml"), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define_from_variant("LLAMA_USE_CURL", "curl"), + ] + + if self.spec.satisfies("~system_ggml"): + args.extend(super().cmake_args()) + return args + + def setup_run_environment(self, env: EnvironmentModifications) -> None: + if os.path.exists(self.prefix.lib64): + env.set("LLAMA_CPP_LIB_PATH", self.prefix.lib64) + else: + env.set("LLAMA_CPP_LIB_PATH", self.prefix.lib) diff --git a/repos/spack_repo/builtin/packages/llhttp/package.py b/repos/spack_repo/builtin/packages/llhttp/package.py new file mode 100644 index 00000000000..5ddff57e2a5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/llhttp/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 Llhttp(CMakePackage): + """Fast HTTP message parser based on llparse.""" + + homepage = "https://llhttp.org/" + url = "https://github.com/nodejs/llhttp/archive/refs/tags/release/v9.3.1.tar.gz" + git = "https://github.com/nodejs/llhttp.git" + + license("MIT") + + version("9.3.1", sha256="c14a93f287d3dbd6580d08af968294f8bcc61e1e1e3c34301549d00f3cf09365") + + variant("shared", default=True, description="Build shared library") + variant("static", default=True, description="Build static library") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("cmake@3.25:", type="build") + + conflicts("~shared~static", msg="llhttp requires at least one library variant") + + def cmake_args(self): + return [ + self.define_from_variant("LLHTTP_BUILD_SHARED_LIBS", "shared"), + self.define_from_variant("LLHTTP_BUILD_STATIC_LIBS", "static"), + ] diff --git a/repos/spack_repo/builtin/packages/llvm/detection_test.yaml b/repos/spack_repo/builtin/packages/llvm/detection_test.yaml index b8df8412f94..4cdf30a83e6 100644 --- a/repos/spack_repo/builtin/packages/llvm/detection_test.yaml +++ b/repos/spack_repo/builtin/packages/llvm/detection_test.yaml @@ -182,3 +182,16 @@ paths: echo "InstalledDir: /Library/Developer/CommandLineTools/usr/bin" platforms: ["darwin"] results: [] + +# ATfL should not be detected as upstream LLVM +- layout: + - executables: + - "bin/clang" + - "bin/clang++" + script: | + echo "Arm Toolchain for Linux 20.1 clang version 20.1.0" + echo "Target: aarch64--linux-gnu" + echo "Thread model: posix" + echo "InstalledDir: /opt/arm/arm-toolchain-for-linux-20.1/bin" + platforms: ["linux"] + results: [] diff --git a/repos/spack_repo/builtin/packages/llvm/package.py b/repos/spack_repo/builtin/packages/llvm/package.py index 84533ed231f..c46e0fb4684 100644 --- a/repos/spack_repo/builtin/packages/llvm/package.py +++ b/repos/spack_repo/builtin/packages/llvm/package.py @@ -3,7 +3,6 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os import re -import sys from spack_repo.builtin.build_systems.cmake import CMakePackage, generator from spack_repo.builtin.build_systems.compiler import CompilerPackage @@ -53,7 +52,29 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage): version("main", branch="main") + # Note: remember to update `provides("libllvm")` according to major versions listed + # Latest stable + version("22.1.5", sha256="263e99bd0b590664a886b0332037ff060e108f4e7b0310b7c8277208858f867d") + version("22.1.4", sha256="e813bf8da34ec2b7c108c4067937380fa7d5a04a13f4fe13555dbe388482d69f") + version("22.1.3", sha256="7e144bd6da8177757434cc0dfd1476122f143413df379c6d6cf03843512b5a9e") + version("22.1.2", sha256="a252efd7a4a268d2cc5145b17adcaa82757fdee1d06d748b4c24137807710ecb") + version("22.1.1", sha256="c48878550911a8a8993a749e6118446082656768e62b26456ac7d39c4422b409") + version("22.1.0", sha256="933765a1c2cd518d95a9033a92d88d7109a79aefa4609247c31f28b8bc8dd96e") + + # Previous stable series releases + version("21.1.8", sha256="7ba3f2a8d8fda88be18a31d011e8195d3b7f87f9fa92b20c94cba2d7f65b0e3f") + version("21.1.7", sha256="9ee167cdf8f6b5221d6b02dbe9a664cf8c6fee70fab071aaa4a3889c7c265258") + version("21.1.6", sha256="2380973eb435b48bd70881939da3629069009a851c81676dfb211a1b068d72a6") + version("21.1.5", sha256="297b35033b84da7c1214b05f901e154c1d7febe8fe51ecdbf27b0d0f9531902f") + version("21.1.4", sha256="3a0921d78be74302cb054da1dad59e706814d8fed3a6ac9b532e935825a0715c") + version("21.1.3", sha256="5bc91fe86bafebc64189465faca1ff35626dcb1b8539a14ae2ec07834c3e8e95") + version("21.1.2", sha256="eced3dd78186621f4df8a1accbcd1ecf2ee399571e62d052c21e9bf363af2166") + version("21.1.1", sha256="5f048351ee63050d7fa45b6a1160768fb222a8d306a89e1344515ef7a4bcd278") + version("21.1.0", sha256="fba0618cf8de48ec05880c446edd756a2669157eab9d29949e971c77da10275f") + + version("20.1.8", sha256="a6cbad9b2243b17e87795817cfff2107d113543a12486586f8a055a2bb044963") + version("20.1.7", sha256="91865189d0ca30ca81b7f7af637aca745b6eeeba97c5dfb0ab7d79a1d9659289") version("20.1.6", sha256="afa487c401613f5e4a35935b2abfb5d07e6ebfa20df32787e34a5c7e97c6ea4b") version("20.1.5", sha256="205c436f93a7e185cf9d63ae57e645f23561a4d1bf854f2c5bd78995a43a5c05") version("20.1.4", sha256="65e3a582c4c684fa707a56ff643427bce3633eceaceae3295d81c0e830f44b89") @@ -62,17 +83,8 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage): version("20.1.1", sha256="edde69aa3e48a3892a8f01332ff79cfb6179151b42503c4ba77d2cd408b013bf") version("20.1.0", sha256="08bc382733777dda3c96259e3732ff96c1df98d0470c4f85b163274eae687f4f") - # Previous stable series releases - version("19.1.7", sha256="59abea1c22e64933fad4de1671a61cdb934098793c7a31b333ff58dc41bff36c") - version("19.1.6", sha256="f07fdcbb27b2b67aa95e5ddadf45406b33228481c250e65175066d36536a1ee2") - version("19.1.5", sha256="e2204b9903cd9d7ee833a2f56a18bef40a33df4793e31cc090906b32cbd8a1f5") - version("19.1.4", sha256="010e1fd3cabee8799bd2f8a6fbc68f28207494f315cf9da7057a2820f79fd531") - version("19.1.3", sha256="e5106e2bef341b3f5e41340e4b6c6a58259f4021ad801acf14e88f1a84567b05") - version("19.1.2", sha256="622cb6c5e95a3bb7e9876c4696a65671f235bd836cfd0c096b272f6c2ada41e7") - version("19.1.1", sha256="115dfd98a353d05bffdab3f80db22f159da48aca0124e8c416f437adcd54b77f") - version("19.1.0", sha256="0a08341036ca99a106786f50f9c5cb3fbe458b3b74cab6089fd368d0edb2edfe") - # Final releases of previous versions + version("19.1.7", sha256="59abea1c22e64933fad4de1671a61cdb934098793c7a31b333ff58dc41bff36c") version("18.1.8", sha256="09c08693a9afd6236f27a2ebae62cda656eba19021ef3f94d59e931d662d4856") version("17.0.6", sha256="81494d32e6f12ea6f73d6d25424dbd2364646011bb8f7e345ca870750aa27de1") version("16.0.6", sha256="56b2f75fdaa95ad5e477a246d3f0d164964ab066b4619a01836ef08e475ec9d5") @@ -88,136 +100,12 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage): version("6.0.1", sha256="aefadceb231f4c195fe6d6cd3b1a010b269c8a22410f339b5a089c2e902aa177") version("5.0.2", sha256="fe87aa11558c08856739bfd9bd971263a28657663cb0c3a0af01b94f03b0b795") - # Deprecated older non-final releases - with default_args(deprecated=True): - version( - "18.1.7", sha256="b60df7cbe02cef2523f7357120fb0d46cbb443791cde3a5fb36b82c335c0afc9" - ) - version( - "18.1.6", sha256="01390edfae5b809e982b530ff9088e674c62b13aa92cb9dc1e067fa2cf501083" - ) - version( - "18.1.5", sha256="d543309f55ae3f9b422108302b45c40f5696c96862f4bda8f5526955daa54284" - ) - version( - "18.1.4", sha256="deca5a29e8b1d103ecc4badb3c304aca50d5cac6453364d88ee415dc55699dfb" - ) - version( - "18.1.3", sha256="fc5a2fd176d73ceb17f4e522f8fe96d8dde23300b8c233476d3609f55d995a7a" - ) - version( - "18.1.2", sha256="8d686d5ece6f12b09985cb382a3a530dc06bb6e7eb907f57c7f8bf2d868ebb0b" - ) - version( - "18.1.1", sha256="62439f733311869dbbaf704ce2e02141d2a07092d952fc87ef52d1d636a9b1e4" - ) - version( - "18.1.0", sha256="eb18f65a68981e94ea1a5aae4f02321b17da9e99f76bfdb983b953f4ba2d3550" - ) - version( - "17.0.5", sha256="432c1eda3d1c9379cd52a9bee8e0ea6f7b204bff5075895f963fd8e575aa4fb8" - ) - version( - "17.0.4", sha256="46200b79f52a02fe26d0a43fd856ab6ceff49ab2a0b7c240ac4b700a6ada700c" - ) - version( - "17.0.3", sha256="1e3d9d04fb5fbd8d0080042ad72c7e2a5c68788b014b186647a604dbbdd625d2" - ) - version( - "17.0.2", sha256="dcba3eb486973dce45b6edfe618f3f29b703ae7e6ef9df65182fb50fb6fe4235" - ) - version( - "17.0.1", sha256="d51b10be66c10a6a81f4c594b554ffbf1063ffbadcb810af37d1f88d6e0b49dd" - ) - version( - "16.0.5", sha256="e0fbca476693fcafa125bc71c8535587b6d9950293122b66b262bb4333a03942" - ) - version( - "16.0.4", sha256="10c3fe1757d2e4f1cd7745dc548ecf687680a71824ec81701c38524c2a0753e2" - ) - version( - "16.0.3", sha256="0bd71bc687a4e5a250c40afb0decefc50c85178fcce726137b682039de63919b" - ) - version( - "16.0.2", sha256="97c3c6aafb53c4bb0ed2781a18d6f05e75445e24bb1dc57a32b74f8d710ac19f" - ) - version( - "16.0.1", sha256="b5a9ff1793b1e2d388a3819bf35797002b1d2e40bb35a10c65605e0ea1435271" - ) - version( - "16.0.0", sha256="cba969a0782a3a398658d439f047b5e548ea04724f4fbfdbe17cfc946f4cd3ed" - ) - version( - "15.0.6", sha256="4d857d7a180918bdacd09a5910bf9743c9861a1e49cb065a85f7a990f812161d" - ) - version( - "15.0.5", sha256="c47640269e0251e009ae18a25162df4e20e175885286e21d28c054b084b991a4" - ) - version( - "15.0.4", sha256="e24b4d3bf7821dcb1c901d1e09096c1f88fb00095c5a6ef893baab4836975e52" - ) - version( - "15.0.3", sha256="8ac8e4c0982bf236526d737d385db5e1e66543ab217a9355d54159659eae3774" - ) - version( - "15.0.2", sha256="dc11d35e60ab61792baa607dff080c993b39de23fb93b3d3369ba15b0601c307" - ) - version( - "15.0.1", sha256="20bccb964e39f604fdc16d1258f94d2053fbdcdab2b2f6d5e20e6095ec403c00" - ) - version( - "15.0.0", sha256="36d83cd84e1caf2bcfda1669c029e2b949adb9860cff01e7d3246ac2348b11ae" - ) - version( - "14.0.5", sha256="a4a57f029cb81f04618e05853f05fc2d21b64353c760977d8e7799bf7218a23a" - ) - version( - "14.0.4", sha256="1333236f9bee38658762076be4236cb5ebf15ae9b7f2bfce6946b96ae962dc73" - ) - version( - "14.0.3", sha256="0e1d049b050127ecf6286107e9a4400b0550f841d5d2288b9d31fd32ed0683d5" - ) - version( - "14.0.2", sha256="ca52232b3451c8e017f00eb882277707c13e30fac1271ec97015f6d0eeb383d1" - ) - version( - "14.0.1", sha256="c8be00406e872c8a24f8571cf6f5517b73ae707104724b1fd1db2f0af9544019" - ) - version( - "14.0.0", sha256="87b1a068b370df5b79a892fdb2935922a8efb1fddec4cc506e30fe57b6a1d9c4" - ) - version( - "13.0.0", sha256="a1131358f1f9f819df73fa6bff505f2c49d176e9eef0a3aedd1fdbce3b4630e8" - ) - version( - "12.0.0", sha256="8e6c99e482bb16a450165176c2d881804976a2d770e0445af4375e78a1fbf19c" - ) - version( - "11.0.1", sha256="9c7ad8e8ec77c5bde8eb4afa105a318fd1ded7dff3747d14f012758719d7171b" - ) - version( - "11.0.0", sha256="8ad4ddbafac4f2c8f2ea523c2c4196f940e8e16f9e635210537582a48622a5d5" - ) - version( - "10.0.0", sha256="b81c96d2f8f40dc61b14a167513d87c0d813aae0251e06e11ae8a4384ca15451" - ) - version("9.0.0", sha256="7807fac25330e24e9955ca46cd855dd34bbc9cc4fdba8322366206654d1036f2") - version("8.0.0", sha256="d81238b4a69e93e29f74ce56f8107cbfcf0c7d7b40510b7879e98cc031e25167") - version("7.0.1", sha256="f17a6cd401e8fd8f811fbfbb36dcb4f455f898c9d03af4044807ad005df9f3c0") - version("6.0.0", sha256="1946ec629c88d30122afa072d3c6a89cc5d5e4e2bb28dc63b2f9ebcc7917ee64") - version("5.0.1", sha256="84ca454abf262579814a2a2b846569f6e0cb3e16dc33ca3642b4f1dff6fbafd3") - version("5.0.0", sha256="1f1843315657a4371d8ca37f01265fa9aae17dbcf46d2d0a95c1fdb3c6a4bab6") - variant( "clang", default=True, description="Build the LLVM C/C++/Objective-C compiler frontend" ) - variant( - "flang", - default=False, - description="Build the LLVM Fortran compiler frontend " - "(experimental - parser only, needs GCC)", - ) + variant("flang", default=False, description="Build the LLVM Fortran compiler frontend ") + conflicts("+flang", when="@:10") conflicts("+flang", when="~clang") @@ -259,6 +147,10 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage): variant("offload", default=True, when="@19:", description="Build the Offload subproject") conflicts("+offload", when="~clang") + # The offload subproject requires lld: + # https://github.com/llvm/llvm-project/commit/346792aafb483a53fb5e3274298d85bc2dde4a35 + conflicts("~lld", when="+offload") + variant("libomptarget", default=True, description="Build the OpenMP offloading library") conflicts("+libomptarget", when="~clang") conflicts("+libomptarget", when="~offload @19:") @@ -287,8 +179,8 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage): ) variant( "gold", - default=(sys.platform != "darwin"), - description="Add support for LTO with the gold linker plugin", + default=False, + description="Add support for LTO with the gold linker plugin (deprecated)", ) variant("split_dwarf", default=False, description="Build with split dwarf information") variant( @@ -304,7 +196,7 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage): ) variant( "targets", - default="all", + default="aarch64,amdgpu,nvptx,x86", description=( "What targets to build. Spack's target family is always added " "(e.g. X86 is automatically enabled when targeting znver2)." @@ -378,23 +270,28 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage): description="Enable zstd support for static analyzer / lld", ) - provides("libllvm@19", when="@19.0.0:19") - provides("libllvm@18", when="@18.0.0:18") - provides("libllvm@17", when="@17.0.0:17") - provides("libllvm@16", when="@16.0.0:16") - provides("libllvm@15", when="@15.0.0:15") - provides("libllvm@14", when="@14.0.0:14") - provides("libllvm@13", when="@13.0.0:13") - provides("libllvm@12", when="@12.0.0:12") - provides("libllvm@11", when="@11.0.0:11") - provides("libllvm@10", when="@10.0.0:10") - provides("libllvm@9", when="@9.0.0:9") - provides("libllvm@8", when="@8.0.0:8") - provides("libllvm@7", when="@7.0.0:7") - provides("libllvm@6", when="@6.0.0:6") - provides("libllvm@5", when="@5.0.0:5") - provides("libllvm@4", when="@4.0.0:4") - provides("libllvm@3", when="@3.0.0:3") + variant("utils", default=False, description="Install utility binaries (FileCheck, etc.)") + + provides("libllvm@22", when="@22") + provides("libllvm@21", when="@21") + provides("libllvm@20", when="@20") + provides("libllvm@19", when="@19") + provides("libllvm@18", when="@18") + provides("libllvm@17", when="@17") + provides("libllvm@16", when="@16") + provides("libllvm@15", when="@15") + provides("libllvm@14", when="@14") + provides("libllvm@13", when="@13") + provides("libllvm@12", when="@12") + provides("libllvm@11", when="@11") + provides("libllvm@10", when="@10") + provides("libllvm@9", when="@9") + provides("libllvm@8", when="@8") + provides("libllvm@7", when="@7") + provides("libllvm@6", when="@6") + provides("libllvm@5", when="@5") + provides("libllvm@4", when="@4") + provides("libllvm@3", when="@3") provides("c", "cxx", when="+clang") provides("fortran", when="+flang") @@ -472,6 +369,8 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage): conflicts("%gcc@:5.0", when="@8:") # Internal compiler error on gcc 8.4 on aarch64 https://bugzilla.redhat.com/show_bug.cgi?id=1958295 conflicts("%gcc@8.4:8.4.9", when="@12: target=aarch64:") + # Compiler will throw errors like e.g. "no type named 'iterator'" or "class has no member" + conflicts("%gcc@15:", when="@:18") # libcxx=project imposes compiler conflicts # see https://libcxx.llvm.org/#platform-and-compiler-support for the latest release @@ -746,6 +645,20 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage): when="@15:16", ) + # https://github.com/llvm/llvm-project/issues/156679 + patch( + "https://github.com/llvm/llvm-project/commit/cd24d108a2c19c23c4ac80b501fa7361963cca3d.patch?full_index=1", + sha256="0dc6e0bf66edf260b56c088dfbf37abb8417e210f256abe4ee11c395a2665ed8", + when="@21.1.0:21.1.4", + ) + + # https://github.com/llvm/llvm-project/issues/183884 + patch( + "https://github.com/llvm/llvm-project/commit/1e5cc368ba48f984fc5c85e8e421b19fc8cc33a1.patch?full_index=1", + sha256="293519af96c3e65947e3738eddf8d6e9b9dac6ff867fb6024e80fefd5c7ad56b", + when="@22.1.0", + ) + @when("@14:17") def patch(self): # https://github.com/llvm/llvm-project/pull/69458 @@ -794,6 +707,8 @@ def determine_version(cls, exe): return None if "AMD" in output: return None + if "Arm Toolchain for Linux" in output: + return None match = re.search(cls.compiler_version_regex, output) if match: return match.group(match.lastindex) @@ -853,7 +768,7 @@ def determine_variants(cls, exes, version_str): @classmethod def validate_detected_spec(cls, spec, extra_attributes): # For LLVM 'compilers' is a mandatory attribute - msg = 'the extra attribute "compilers" must be set for ' 'the detected spec "{0}"'.format( + msg = 'the extra attribute "compilers" must be set for the detected spec "{0}"'.format( spec ) assert "compilers" in extra_attributes, msg @@ -933,7 +848,7 @@ def libs(self): @run_before("cmake") def codesign_check(self): if self.spec.satisfies("+code_signing"): - codesign = which("codesign") + codesign = which("codesign", required=True) mkdir("tmp") llvm_check_file = join_path("tmp", "llvm_check") copy("/usr/bin/false", llvm_check_file) @@ -969,7 +884,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: sym = os.path.join(self.stage.path, "ld.lld") if os.path.exists(bin) and not os.path.exists(sym): mkdirp(self.stage.path) - os.symlink(bin, sym) + symlink(bin, sym) env.prepend_path("PATH", self.stage.path) if self.spec.satisfies("platform=darwin"): @@ -1137,6 +1052,10 @@ def cmake_args(self): if spec.satisfies("+polly"): projects.append("polly") cmake_args.append(define("LINK_POLLY_INTO_TOOLS", True)) + if spec.satisfies("+utils"): + cmake_args.extend( + [define("LLVM_BUILD_UTILS", True), define("LLVM_INSTALL_UTILS", True)] + ) cmake_args.extend( [ diff --git a/repos/spack_repo/builtin/packages/llvm_amdgpu/001-Add-i1-mul-patterns.patch b/repos/spack_repo/builtin/packages/llvm_amdgpu/001-Add-i1-mul-patterns.patch deleted file mode 100644 index f93fcb99dbf..00000000000 --- a/repos/spack_repo/builtin/packages/llvm_amdgpu/001-Add-i1-mul-patterns.patch +++ /dev/null @@ -1,2842 +0,0 @@ -From a0f3d7f45075a3e9545c0c9fa25a9f8fc840cdd7 Mon Sep 17 00:00:00 2001 -From: Renjith Ravindran -Date: Mon, 25 Sep 2023 18:38:17 +0000 -Subject: [PATCH] i1 muls can sometimes happen after SCEV. They resulted in - ISel failures because we were missing the patterns for them. - ---- - llvm/lib/Target/AMDGPU/SIInstructions.td | 10 + - llvm/test/CodeGen/AMDGPU/mul.ll | 2676 ++++++++++++++++++++-- - 2 files changed, 2544 insertions(+), 142 deletions(-) - -diff --git a/llvm/lib/Target/AMDGPU/SIInstructions.td b/llvm/lib/Target/AMDGPU/SIInstructions.td -index 03b2160a1..3bf4e42de 100644 ---- a/llvm/lib/Target/AMDGPU/SIInstructions.td -+++ b/llvm/lib/Target/AMDGPU/SIInstructions.td -@@ -2372,6 +2372,11 @@ def : GCNPat < - (S_AND_B64 $src0, $src1) - >; - -+def : GCNPat < -+ (i1 (mul i1:$src0, i1:$src1)), -+ (S_AND_B64 $src0, $src1) -+>; -+ - def : GCNPat < - (i1 (or i1:$src0, i1:$src1)), - (S_OR_B64 $src0, $src1) -@@ -2411,6 +2416,11 @@ def : GCNPat < - (S_AND_B32 $src0, $src1) - >; - -+def : GCNPat < -+ (i1 (mul i1:$src0, i1:$src1)), -+ (S_AND_B32 $src0, $src1) -+>; -+ - def : GCNPat < - (i1 (or i1:$src0, i1:$src1)), - (S_OR_B32 $src0, $src1) -diff --git a/llvm/test/CodeGen/AMDGPU/mul.ll b/llvm/test/CodeGen/AMDGPU/mul.ll -index 85dd59a0c..a8973d845 100644 ---- a/llvm/test/CodeGen/AMDGPU/mul.ll -+++ b/llvm/test/CodeGen/AMDGPU/mul.ll -@@ -1,20 +1,129 @@ --; RUN: llc -amdgpu-scalarize-global-loads=false -march=amdgcn -mcpu=verde -verify-machineinstrs < %s | FileCheck -allow-deprecated-dag-overlap -check-prefixes=GCN,SI,FUNC %s --; RUN: llc -amdgpu-scalarize-global-loads=false -march=amdgcn -mcpu=tonga -mattr=-flat-for-global -verify-machineinstrs < %s | FileCheck -allow-deprecated-dag-overlap -check-prefixes=GCN,VI,FUNC %s --; RUN: llc -amdgpu-scalarize-global-loads=false -march=amdgcn -mcpu=gfx900 -mattr=-flat-for-global -verify-machineinstrs < %s | FileCheck -allow-deprecated-dag-overlap -check-prefixes=FUNC,GFX9PLUS %s --; RUN: llc -amdgpu-scalarize-global-loads=false -march=amdgcn -mcpu=gfx1010 -mattr=-flat-for-global -verify-machineinstrs < %s | FileCheck -allow-deprecated-dag-overlap -check-prefixes=FUNC,GFX9PLUS %s --; RUN: llc -amdgpu-scalarize-global-loads=false -march=amdgcn -mcpu=gfx1100 -mattr=-flat-for-global -verify-machineinstrs < %s | FileCheck -allow-deprecated-dag-overlap -check-prefixes=FUNC,GFX9PLUS %s --; RUN: llc -amdgpu-scalarize-global-loads=false -march=r600 -mcpu=redwood < %s | FileCheck -allow-deprecated-dag-overlap -check-prefixes=EG,FUNC %s -+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -+; RUN: llc -amdgpu-scalarize-global-loads=false -march=amdgcn -mcpu=verde -verify-machineinstrs < %s | FileCheck -check-prefixes=SI %s -+; RUN: llc -amdgpu-scalarize-global-loads=false -march=amdgcn -mcpu=tonga -mattr=-flat-for-global -verify-machineinstrs < %s | FileCheck -check-prefixes=VI %s -+; RUN: llc -amdgpu-scalarize-global-loads=false -march=amdgcn -mcpu=gfx900 -mattr=-flat-for-global -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX9 %s -+; RUN: llc -amdgpu-scalarize-global-loads=false -march=amdgcn -mcpu=gfx1010 -mattr=-flat-for-global -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX10 %s -+; RUN: llc -amdgpu-scalarize-global-loads=false -march=amdgcn -mcpu=gfx1100 -mattr=-flat-for-global -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX11 %s -+; RUN: llc -amdgpu-scalarize-global-loads=false -march=r600 -mcpu=redwood < %s | FileCheck -check-prefixes=EG %s - - ; mul24 and mad24 are affected - --; FUNC-LABEL: {{^}}test_mul_v2i32: --; EG: MULLO_INT {{\*? *}}T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}} --; EG: MULLO_INT {{\*? *}}T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}} -- --; GCN: v_mul_lo_u32 v{{[0-9]+, v[0-9]+, v[0-9]+}} --; GCN: v_mul_lo_u32 v{{[0-9]+, v[0-9]+, v[0-9]+}} -- - define amdgpu_kernel void @test_mul_v2i32(ptr addrspace(1) %out, ptr addrspace(1) %in) { -+; SI-LABEL: test_mul_v2i32: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x9 -+; SI-NEXT: s_mov_b32 s7, 0xf000 -+; SI-NEXT: s_mov_b32 s6, -1 -+; SI-NEXT: s_mov_b32 s10, s6 -+; SI-NEXT: s_mov_b32 s11, s7 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_mov_b32 s8, s2 -+; SI-NEXT: s_mov_b32 s9, s3 -+; SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 -+; SI-NEXT: s_mov_b32 s4, s0 -+; SI-NEXT: s_mov_b32 s5, s1 -+; SI-NEXT: s_waitcnt vmcnt(0) -+; SI-NEXT: v_mul_lo_u32 v1, v1, v3 -+; SI-NEXT: v_mul_lo_u32 v0, v0, v2 -+; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: test_mul_v2i32: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; VI-NEXT: s_mov_b32 s7, 0xf000 -+; VI-NEXT: s_mov_b32 s6, -1 -+; VI-NEXT: s_mov_b32 s10, s6 -+; VI-NEXT: s_mov_b32 s11, s7 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_mov_b32 s8, s2 -+; VI-NEXT: s_mov_b32 s9, s3 -+; VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 -+; VI-NEXT: s_mov_b32 s4, s0 -+; VI-NEXT: s_mov_b32 s5, s1 -+; VI-NEXT: s_waitcnt vmcnt(0) -+; VI-NEXT: v_mul_lo_u32 v1, v1, v3 -+; VI-NEXT: v_mul_lo_u32 v0, v0, v2 -+; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0 -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: test_mul_v2i32: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; GFX9-NEXT: s_mov_b32 s7, 0xf000 -+; GFX9-NEXT: s_mov_b32 s6, -1 -+; GFX9-NEXT: s_mov_b32 s10, s6 -+; GFX9-NEXT: s_mov_b32 s11, s7 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_mov_b32 s8, s2 -+; GFX9-NEXT: s_mov_b32 s9, s3 -+; GFX9-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 -+; GFX9-NEXT: s_mov_b32 s4, s0 -+; GFX9-NEXT: s_mov_b32 s5, s1 -+; GFX9-NEXT: s_waitcnt vmcnt(0) -+; GFX9-NEXT: v_mul_lo_u32 v1, v1, v3 -+; GFX9-NEXT: v_mul_lo_u32 v0, v0, v2 -+; GFX9-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: test_mul_v2i32: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; GFX10-NEXT: s_mov_b32 s6, -1 -+; GFX10-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s10, s6 -+; GFX10-NEXT: s_mov_b32 s11, s7 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_mov_b32 s8, s2 -+; GFX10-NEXT: s_mov_b32 s9, s3 -+; GFX10-NEXT: s_mov_b32 s4, s0 -+; GFX10-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 -+; GFX10-NEXT: s_mov_b32 s5, s1 -+; GFX10-NEXT: s_waitcnt vmcnt(0) -+; GFX10-NEXT: v_mul_lo_u32 v1, v1, v3 -+; GFX10-NEXT: v_mul_lo_u32 v0, v0, v2 -+; GFX10-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: test_mul_v2i32: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_load_b128 s[0:3], s[0:1], 0x24 -+; GFX11-NEXT: s_mov_b32 s6, -1 -+; GFX11-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX11-NEXT: s_mov_b32 s10, s6 -+; GFX11-NEXT: s_mov_b32 s11, s7 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_mov_b32 s8, s2 -+; GFX11-NEXT: s_mov_b32 s9, s3 -+; GFX11-NEXT: s_mov_b32 s4, s0 -+; GFX11-NEXT: buffer_load_b128 v[0:3], off, s[8:11], 0 -+; GFX11-NEXT: s_mov_b32 s5, s1 -+; GFX11-NEXT: s_waitcnt vmcnt(0) -+; GFX11-NEXT: v_mul_lo_u32 v1, v1, v3 -+; GFX11-NEXT: v_mul_lo_u32 v0, v0, v2 -+; GFX11-NEXT: buffer_store_b64 v[0:1], off, s[4:7], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: test_mul_v2i32: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[] -+; EG-NEXT: TEX 0 @6 -+; EG-NEXT: ALU 3, @9, KC0[CB0:0-32], KC1[] -+; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 1 -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: Fetch clause starting at 6: -+; EG-NEXT: VTX_READ_128 T0.XYZW, T0.X, 0, #1 -+; EG-NEXT: ALU clause starting at 8: -+; EG-NEXT: MOV * T0.X, KC0[2].Z, -+; EG-NEXT: ALU clause starting at 9: -+; EG-NEXT: MULLO_INT * T0.Y, T0.Y, T0.W, -+; EG-NEXT: LSHR T1.X, KC0[2].Y, literal.x, -+; EG-NEXT: MULLO_INT * T0.X, T0.X, T0.Z, -+; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00) -+entry: - %b_ptr = getelementptr <2 x i32>, ptr addrspace(1) %in, i32 1 - %a = load <2 x i32>, ptr addrspace(1) %in - %b = load <2 x i32>, ptr addrspace(1) %b_ptr -@@ -23,18 +132,142 @@ define amdgpu_kernel void @test_mul_v2i32(ptr addrspace(1) %out, ptr addrspace(1 - ret void - } - --; FUNC-LABEL: {{^}}v_mul_v4i32: --; EG: MULLO_INT {{\*? *}}T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}} --; EG: MULLO_INT {{\*? *}}T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}} --; EG: MULLO_INT {{\*? *}}T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}} --; EG: MULLO_INT {{\*? *}}T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}} -- --; GCN: v_mul_lo_u32 v{{[0-9]+, v[0-9]+, v[0-9]+}} --; GCN: v_mul_lo_u32 v{{[0-9]+, v[0-9]+, v[0-9]+}} --; GCN: v_mul_lo_u32 v{{[0-9]+, v[0-9]+, v[0-9]+}} --; GCN: v_mul_lo_u32 v{{[0-9]+, v[0-9]+, v[0-9]+}} -- - define amdgpu_kernel void @v_mul_v4i32(ptr addrspace(1) %out, ptr addrspace(1) %in) { -+; SI-LABEL: v_mul_v4i32: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x9 -+; SI-NEXT: s_mov_b32 s7, 0xf000 -+; SI-NEXT: s_mov_b32 s6, -1 -+; SI-NEXT: s_mov_b32 s10, s6 -+; SI-NEXT: s_mov_b32 s11, s7 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_mov_b32 s8, s2 -+; SI-NEXT: s_mov_b32 s9, s3 -+; SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 -+; SI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16 -+; SI-NEXT: s_mov_b32 s4, s0 -+; SI-NEXT: s_mov_b32 s5, s1 -+; SI-NEXT: s_waitcnt vmcnt(0) -+; SI-NEXT: v_mul_lo_u32 v3, v3, v7 -+; SI-NEXT: v_mul_lo_u32 v2, v2, v6 -+; SI-NEXT: v_mul_lo_u32 v1, v1, v5 -+; SI-NEXT: v_mul_lo_u32 v0, v0, v4 -+; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: v_mul_v4i32: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; VI-NEXT: s_mov_b32 s7, 0xf000 -+; VI-NEXT: s_mov_b32 s6, -1 -+; VI-NEXT: s_mov_b32 s10, s6 -+; VI-NEXT: s_mov_b32 s11, s7 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_mov_b32 s8, s2 -+; VI-NEXT: s_mov_b32 s9, s3 -+; VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 -+; VI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16 -+; VI-NEXT: s_mov_b32 s4, s0 -+; VI-NEXT: s_mov_b32 s5, s1 -+; VI-NEXT: s_waitcnt vmcnt(0) -+; VI-NEXT: v_mul_lo_u32 v3, v3, v7 -+; VI-NEXT: v_mul_lo_u32 v2, v2, v6 -+; VI-NEXT: v_mul_lo_u32 v1, v1, v5 -+; VI-NEXT: v_mul_lo_u32 v0, v0, v4 -+; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0 -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: v_mul_v4i32: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; GFX9-NEXT: s_mov_b32 s7, 0xf000 -+; GFX9-NEXT: s_mov_b32 s6, -1 -+; GFX9-NEXT: s_mov_b32 s10, s6 -+; GFX9-NEXT: s_mov_b32 s11, s7 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_mov_b32 s8, s2 -+; GFX9-NEXT: s_mov_b32 s9, s3 -+; GFX9-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 -+; GFX9-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16 -+; GFX9-NEXT: s_mov_b32 s4, s0 -+; GFX9-NEXT: s_mov_b32 s5, s1 -+; GFX9-NEXT: s_waitcnt vmcnt(0) -+; GFX9-NEXT: v_mul_lo_u32 v3, v3, v7 -+; GFX9-NEXT: v_mul_lo_u32 v2, v2, v6 -+; GFX9-NEXT: v_mul_lo_u32 v1, v1, v5 -+; GFX9-NEXT: v_mul_lo_u32 v0, v0, v4 -+; GFX9-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: v_mul_v4i32: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; GFX10-NEXT: s_mov_b32 s6, -1 -+; GFX10-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s10, s6 -+; GFX10-NEXT: s_mov_b32 s11, s7 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_mov_b32 s8, s2 -+; GFX10-NEXT: s_mov_b32 s9, s3 -+; GFX10-NEXT: s_clause 0x1 -+; GFX10-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 -+; GFX10-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16 -+; GFX10-NEXT: s_mov_b32 s4, s0 -+; GFX10-NEXT: s_mov_b32 s5, s1 -+; GFX10-NEXT: s_waitcnt vmcnt(0) -+; GFX10-NEXT: v_mul_lo_u32 v3, v3, v7 -+; GFX10-NEXT: v_mul_lo_u32 v2, v2, v6 -+; GFX10-NEXT: v_mul_lo_u32 v1, v1, v5 -+; GFX10-NEXT: v_mul_lo_u32 v0, v0, v4 -+; GFX10-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: v_mul_v4i32: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_load_b128 s[0:3], s[0:1], 0x24 -+; GFX11-NEXT: s_mov_b32 s6, -1 -+; GFX11-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX11-NEXT: s_mov_b32 s10, s6 -+; GFX11-NEXT: s_mov_b32 s11, s7 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_mov_b32 s8, s2 -+; GFX11-NEXT: s_mov_b32 s9, s3 -+; GFX11-NEXT: s_clause 0x1 -+; GFX11-NEXT: buffer_load_b128 v[0:3], off, s[8:11], 0 -+; GFX11-NEXT: buffer_load_b128 v[4:7], off, s[8:11], 0 offset:16 -+; GFX11-NEXT: s_mov_b32 s4, s0 -+; GFX11-NEXT: s_mov_b32 s5, s1 -+; GFX11-NEXT: s_waitcnt vmcnt(0) -+; GFX11-NEXT: v_mul_lo_u32 v3, v3, v7 -+; GFX11-NEXT: v_mul_lo_u32 v2, v2, v6 -+; GFX11-NEXT: v_mul_lo_u32 v1, v1, v5 -+; GFX11-NEXT: v_mul_lo_u32 v0, v0, v4 -+; GFX11-NEXT: buffer_store_b128 v[0:3], off, s[4:7], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: v_mul_v4i32: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[] -+; EG-NEXT: TEX 1 @6 -+; EG-NEXT: ALU 5, @11, KC0[CB0:0-32], KC1[] -+; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XYZW, T2.X, 1 -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: Fetch clause starting at 6: -+; EG-NEXT: VTX_READ_128 T1.XYZW, T0.X, 16, #1 -+; EG-NEXT: VTX_READ_128 T0.XYZW, T0.X, 0, #1 -+; EG-NEXT: ALU clause starting at 10: -+; EG-NEXT: MOV * T0.X, KC0[2].Z, -+; EG-NEXT: ALU clause starting at 11: -+; EG-NEXT: MULLO_INT * T0.W, T0.W, T1.W, -+; EG-NEXT: MULLO_INT * T0.Z, T0.Z, T1.Z, -+; EG-NEXT: MULLO_INT * T0.Y, T0.Y, T1.Y, -+; EG-NEXT: LSHR T2.X, KC0[2].Y, literal.x, -+; EG-NEXT: MULLO_INT * T0.X, T0.X, T1.X, -+; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00) -+entry: - %b_ptr = getelementptr <4 x i32>, ptr addrspace(1) %in, i32 1 - %a = load <4 x i32>, ptr addrspace(1) %in - %b = load <4 x i32>, ptr addrspace(1) %b_ptr -@@ -43,24 +276,232 @@ define amdgpu_kernel void @v_mul_v4i32(ptr addrspace(1) %out, ptr addrspace(1) % - ret void - } - --; FUNC-LABEL: {{^}}s_trunc_i64_mul_to_i32: --; GCN: s_load_dword --; GCN: s_load_dword --; GCN: s_mul_i32 --; GCN: buffer_store_dword - define amdgpu_kernel void @s_trunc_i64_mul_to_i32(ptr addrspace(1) %out, i64 %a, i64 %b) { -+; SI-LABEL: s_trunc_i64_mul_to_i32: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_load_dword s7, s[0:1], 0xd -+; SI-NEXT: s_mov_b32 s3, 0xf000 -+; SI-NEXT: s_mov_b32 s2, -1 -+; SI-NEXT: s_mov_b32 s0, s4 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_mul_i32 s4, s7, s6 -+; SI-NEXT: s_mov_b32 s1, s5 -+; SI-NEXT: v_mov_b32_e32 v0, s4 -+; SI-NEXT: buffer_store_dword v0, off, s[0:3], 0 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: s_trunc_i64_mul_to_i32: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_load_dword s7, s[0:1], 0x34 -+; VI-NEXT: s_mov_b32 s3, 0xf000 -+; VI-NEXT: s_mov_b32 s2, -1 -+; VI-NEXT: s_mov_b32 s0, s4 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_mul_i32 s4, s7, s6 -+; VI-NEXT: s_mov_b32 s1, s5 -+; VI-NEXT: v_mov_b32_e32 v0, s4 -+; VI-NEXT: buffer_store_dword v0, off, s[0:3], 0 -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: s_trunc_i64_mul_to_i32: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_load_dword s7, s[0:1], 0x34 -+; GFX9-NEXT: ; kill: killed $sgpr0_sgpr1 -+; GFX9-NEXT: s_mov_b32 s3, 0xf000 -+; GFX9-NEXT: s_mov_b32 s2, -1 -+; GFX9-NEXT: s_mov_b32 s0, s4 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_mul_i32 s4, s7, s6 -+; GFX9-NEXT: s_mov_b32 s1, s5 -+; GFX9-NEXT: v_mov_b32_e32 v0, s4 -+; GFX9-NEXT: buffer_store_dword v0, off, s[0:3], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: s_trunc_i64_mul_to_i32: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_clause 0x1 -+; GFX10-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24 -+; GFX10-NEXT: s_load_dword s2, s[0:1], 0x34 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX10-NEXT: s_mul_i32 s0, s2, s6 -+; GFX10-NEXT: s_mov_b32 s6, -1 -+; GFX10-NEXT: v_mov_b32_e32 v0, s0 -+; GFX10-NEXT: buffer_store_dword v0, off, s[4:7], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: s_trunc_i64_mul_to_i32: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_clause 0x1 -+; GFX11-NEXT: s_load_b128 s[4:7], s[0:1], 0x24 -+; GFX11-NEXT: s_load_b32 s0, s[0:1], 0x34 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX11-NEXT: s_mul_i32 s0, s0, s6 -+; GFX11-NEXT: s_mov_b32 s6, -1 -+; GFX11-NEXT: v_mov_b32_e32 v0, s0 -+; GFX11-NEXT: buffer_store_b32 v0, off, s[4:7], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: s_trunc_i64_mul_to_i32: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU 2, @4, KC0[CB0:0-32], KC1[] -+; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T1.X, T0.X, 1 -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: ALU clause starting at 4: -+; EG-NEXT: LSHR * T0.X, KC0[2].Y, literal.x, -+; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00) -+; EG-NEXT: MULLO_INT * T1.X, KC0[3].Y, KC0[2].W, -+entry: - %mul = mul i64 %b, %a - %trunc = trunc i64 %mul to i32 - store i32 %trunc, ptr addrspace(1) %out, align 8 - ret void - } - --; FUNC-LABEL: {{^}}v_trunc_i64_mul_to_i32: --; GCN: s_load_dword --; GCN: s_load_dword --; GCN: v_mul_lo_u32 --; GCN: buffer_store_dword - define amdgpu_kernel void @v_trunc_i64_mul_to_i32(ptr addrspace(1) %out, ptr addrspace(1) %aptr, ptr addrspace(1) %bptr) nounwind { -+; SI-LABEL: v_trunc_i64_mul_to_i32: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9 -+; SI-NEXT: s_load_dwordx2 s[8:9], s[0:1], 0xd -+; SI-NEXT: s_mov_b32 s3, 0xf000 -+; SI-NEXT: s_mov_b32 s2, -1 -+; SI-NEXT: s_mov_b32 s14, s2 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_mov_b32 s12, s6 -+; SI-NEXT: s_mov_b32 s13, s7 -+; SI-NEXT: s_mov_b32 s15, s3 -+; SI-NEXT: s_mov_b32 s10, s2 -+; SI-NEXT: s_mov_b32 s11, s3 -+; SI-NEXT: buffer_load_dword v0, off, s[12:15], 0 -+; SI-NEXT: buffer_load_dword v1, off, s[8:11], 0 -+; SI-NEXT: s_mov_b32 s0, s4 -+; SI-NEXT: s_mov_b32 s1, s5 -+; SI-NEXT: s_waitcnt vmcnt(0) -+; SI-NEXT: v_mul_lo_u32 v0, v1, v0 -+; SI-NEXT: buffer_store_dword v0, off, s[0:3], 0 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: v_trunc_i64_mul_to_i32: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24 -+; VI-NEXT: s_load_dwordx2 s[8:9], s[0:1], 0x34 -+; VI-NEXT: s_mov_b32 s3, 0xf000 -+; VI-NEXT: s_mov_b32 s2, -1 -+; VI-NEXT: s_mov_b32 s14, s2 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_mov_b32 s12, s6 -+; VI-NEXT: s_mov_b32 s13, s7 -+; VI-NEXT: s_mov_b32 s15, s3 -+; VI-NEXT: s_mov_b32 s10, s2 -+; VI-NEXT: s_mov_b32 s11, s3 -+; VI-NEXT: buffer_load_dword v0, off, s[12:15], 0 -+; VI-NEXT: buffer_load_dword v1, off, s[8:11], 0 -+; VI-NEXT: s_mov_b32 s0, s4 -+; VI-NEXT: s_mov_b32 s1, s5 -+; VI-NEXT: s_waitcnt vmcnt(0) -+; VI-NEXT: v_mul_lo_u32 v0, v1, v0 -+; VI-NEXT: buffer_store_dword v0, off, s[0:3], 0 -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: v_trunc_i64_mul_to_i32: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24 -+; GFX9-NEXT: s_load_dwordx2 s[8:9], s[0:1], 0x34 -+; GFX9-NEXT: s_mov_b32 s3, 0xf000 -+; GFX9-NEXT: s_mov_b32 s2, -1 -+; GFX9-NEXT: s_mov_b32 s14, s2 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_mov_b32 s12, s6 -+; GFX9-NEXT: s_mov_b32 s13, s7 -+; GFX9-NEXT: s_mov_b32 s15, s3 -+; GFX9-NEXT: s_mov_b32 s10, s2 -+; GFX9-NEXT: s_mov_b32 s11, s3 -+; GFX9-NEXT: buffer_load_dword v0, off, s[12:15], 0 -+; GFX9-NEXT: buffer_load_dword v1, off, s[8:11], 0 -+; GFX9-NEXT: s_mov_b32 s0, s4 -+; GFX9-NEXT: s_mov_b32 s1, s5 -+; GFX9-NEXT: s_waitcnt vmcnt(0) -+; GFX9-NEXT: v_mul_lo_u32 v0, v1, v0 -+; GFX9-NEXT: buffer_store_dword v0, off, s[0:3], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: v_trunc_i64_mul_to_i32: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_clause 0x1 -+; GFX10-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24 -+; GFX10-NEXT: s_load_dwordx2 s[8:9], s[0:1], 0x34 -+; GFX10-NEXT: s_mov_b32 s2, -1 -+; GFX10-NEXT: s_mov_b32 s3, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s14, s2 -+; GFX10-NEXT: s_mov_b32 s15, s3 -+; GFX10-NEXT: s_mov_b32 s10, s2 -+; GFX10-NEXT: s_mov_b32 s11, s3 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_mov_b32 s12, s6 -+; GFX10-NEXT: s_mov_b32 s13, s7 -+; GFX10-NEXT: buffer_load_dword v0, off, s[12:15], 0 -+; GFX10-NEXT: buffer_load_dword v1, off, s[8:11], 0 -+; GFX10-NEXT: s_mov_b32 s0, s4 -+; GFX10-NEXT: s_mov_b32 s1, s5 -+; GFX10-NEXT: s_waitcnt vmcnt(0) -+; GFX10-NEXT: v_mul_lo_u32 v0, v1, v0 -+; GFX10-NEXT: buffer_store_dword v0, off, s[0:3], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: v_trunc_i64_mul_to_i32: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_clause 0x1 -+; GFX11-NEXT: s_load_b128 s[4:7], s[0:1], 0x24 -+; GFX11-NEXT: s_load_b64 s[0:1], s[0:1], 0x34 -+; GFX11-NEXT: s_mov_b32 s10, -1 -+; GFX11-NEXT: s_mov_b32 s11, 0x31016000 -+; GFX11-NEXT: s_mov_b32 s14, s10 -+; GFX11-NEXT: s_mov_b32 s15, s11 -+; GFX11-NEXT: s_mov_b32 s2, s10 -+; GFX11-NEXT: s_mov_b32 s3, s11 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_mov_b32 s12, s6 -+; GFX11-NEXT: s_mov_b32 s13, s7 -+; GFX11-NEXT: buffer_load_b32 v0, off, s[12:15], 0 -+; GFX11-NEXT: buffer_load_b32 v1, off, s[0:3], 0 -+; GFX11-NEXT: s_mov_b32 s8, s4 -+; GFX11-NEXT: s_mov_b32 s9, s5 -+; GFX11-NEXT: s_waitcnt vmcnt(0) -+; GFX11-NEXT: v_mul_lo_u32 v0, v1, v0 -+; GFX11-NEXT: buffer_store_b32 v0, off, s[8:11], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: v_trunc_i64_mul_to_i32: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU 1, @10, KC0[CB0:0-32], KC1[] -+; EG-NEXT: TEX 1 @6 -+; EG-NEXT: ALU 2, @12, KC0[CB0:0-32], KC1[] -+; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T2.X, 1 -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: Fetch clause starting at 6: -+; EG-NEXT: VTX_READ_32 T1.X, T1.X, 0, #1 -+; EG-NEXT: VTX_READ_32 T0.X, T0.X, 0, #1 -+; EG-NEXT: ALU clause starting at 10: -+; EG-NEXT: MOV T0.X, KC0[2].Z, -+; EG-NEXT: MOV * T1.X, KC0[2].W, -+; EG-NEXT: ALU clause starting at 12: -+; EG-NEXT: LSHR T2.X, KC0[2].Y, literal.x, -+; EG-NEXT: MULLO_INT * T0.X, T1.X, T0.X, -+; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00) -+entry: - %a = load i64, ptr addrspace(1) %aptr, align 8 - %b = load i64, ptr addrspace(1) %bptr, align 8 - %mul = mul i64 %b, %a -@@ -71,13 +512,93 @@ define amdgpu_kernel void @v_trunc_i64_mul_to_i32(ptr addrspace(1) %out, ptr add - - ; This 64-bit multiply should just use MUL_HI and MUL_LO, since the top - ; 32-bits of both arguments are sign bits. --; FUNC-LABEL: {{^}}mul64_sext_c: --; EG-DAG: MULLO_INT --; EG-DAG: MULHI_INT --; SI-DAG: s_mulk_i32 --; SI-DAG: v_mul_hi_i32 --; VI: v_mad_i64_i32 -+ - define amdgpu_kernel void @mul64_sext_c(ptr addrspace(1) %out, i32 %in) { -+; SI-LABEL: mul64_sext_c: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dword s4, s[0:1], 0xb -+; SI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x9 -+; SI-NEXT: v_mov_b32_e32 v0, 0x50 -+; SI-NEXT: s_mov_b32 s3, 0xf000 -+; SI-NEXT: s_mov_b32 s2, -1 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: v_mul_hi_i32 v1, s4, v0 -+; SI-NEXT: s_mulk_i32 s4, 0x50 -+; SI-NEXT: v_mov_b32_e32 v0, s4 -+; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: mul64_sext_c: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dword s2, s[0:1], 0x2c -+; VI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x24 -+; VI-NEXT: v_mov_b32_e32 v0, 0x50 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: v_mad_i64_i32 v[0:1], s[2:3], s2, v0, 0 -+; VI-NEXT: s_mov_b32 s3, 0xf000 -+; VI-NEXT: s_mov_b32 s2, -1 -+; VI-NEXT: s_nop 2 -+; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0 -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: mul64_sext_c: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dword s2, s[0:1], 0x2c -+; GFX9-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x24 -+; GFX9-NEXT: s_mov_b32 s7, 0xf000 -+; GFX9-NEXT: s_mov_b32 s6, -1 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_mul_hi_i32 s0, s2, 0x50 -+; GFX9-NEXT: s_mulk_i32 s2, 0x50 -+; GFX9-NEXT: v_mov_b32_e32 v0, s2 -+; GFX9-NEXT: v_mov_b32_e32 v1, s0 -+; GFX9-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: mul64_sext_c: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_clause 0x1 -+; GFX10-NEXT: s_load_dword s2, s[0:1], 0x2c -+; GFX10-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x24 -+; GFX10-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s6, -1 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_mul_i32 s0, s2, 0x50 -+; GFX10-NEXT: s_mul_hi_i32 s1, s2, 0x50 -+; GFX10-NEXT: v_mov_b32_e32 v0, s0 -+; GFX10-NEXT: v_mov_b32_e32 v1, s1 -+; GFX10-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: mul64_sext_c: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_clause 0x1 -+; GFX11-NEXT: s_load_b32 s2, s[0:1], 0x2c -+; GFX11-NEXT: s_load_b64 s[0:1], s[0:1], 0x24 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_mul_i32 s3, s2, 0x50 -+; GFX11-NEXT: s_mul_hi_i32 s2, s2, 0x50 -+; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1) -+; GFX11-NEXT: v_dual_mov_b32 v0, s3 :: v_dual_mov_b32 v1, s2 -+; GFX11-NEXT: s_mov_b32 s3, 0x31016000 -+; GFX11-NEXT: s_mov_b32 s2, -1 -+; GFX11-NEXT: buffer_store_b64 v[0:1], off, s[0:3], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: mul64_sext_c: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU 4, @4, KC0[CB0:0-32], KC1[] -+; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 1 -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: ALU clause starting at 4: -+; EG-NEXT: MULHI_INT * T0.Y, KC0[2].Z, literal.x, -+; EG-NEXT: 80(1.121039e-43), 0(0.000000e+00) -+; EG-NEXT: LSHR T1.X, KC0[2].Y, literal.x, -+; EG-NEXT: MULLO_INT * T0.X, KC0[2].Z, literal.y, -+; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43) - entry: - %0 = sext i32 %in to i64 - %1 = mul i64 %0, 80 -@@ -85,14 +606,125 @@ entry: - ret void - } - --; FUNC-LABEL: {{^}}v_mul64_sext_c: --; EG-DAG: MULLO_INT --; EG-DAG: MULHI_INT --; SI-DAG: v_mul_lo_u32 --; SI-DAG: v_mul_hi_i32 --; VI: v_mad_i64_i32 --; GCN: s_endpgm - define amdgpu_kernel void @v_mul64_sext_c(ptr addrspace(1) %out, ptr addrspace(1) %in) { -+; SI-LABEL: v_mul64_sext_c: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x9 -+; SI-NEXT: s_mov_b32 s7, 0xf000 -+; SI-NEXT: s_mov_b32 s6, -1 -+; SI-NEXT: s_mov_b32 s10, s6 -+; SI-NEXT: s_mov_b32 s11, s7 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_mov_b32 s8, s2 -+; SI-NEXT: s_mov_b32 s9, s3 -+; SI-NEXT: buffer_load_dword v0, off, s[8:11], 0 -+; SI-NEXT: s_movk_i32 s2, 0x50 -+; SI-NEXT: s_mov_b32 s4, s0 -+; SI-NEXT: s_mov_b32 s5, s1 -+; SI-NEXT: s_waitcnt vmcnt(0) -+; SI-NEXT: v_mul_hi_i32 v1, v0, s2 -+; SI-NEXT: v_mul_lo_u32 v0, v0, s2 -+; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: v_mul64_sext_c: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; VI-NEXT: s_mov_b32 s7, 0xf000 -+; VI-NEXT: s_mov_b32 s6, -1 -+; VI-NEXT: s_mov_b32 s10, s6 -+; VI-NEXT: s_mov_b32 s11, s7 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_mov_b32 s8, s2 -+; VI-NEXT: s_mov_b32 s9, s3 -+; VI-NEXT: buffer_load_dword v0, off, s[8:11], 0 -+; VI-NEXT: s_movk_i32 s2, 0x50 -+; VI-NEXT: s_mov_b32 s4, s0 -+; VI-NEXT: s_mov_b32 s5, s1 -+; VI-NEXT: s_waitcnt vmcnt(0) -+; VI-NEXT: v_mad_i64_i32 v[0:1], s[2:3], v0, s2, 0 -+; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0 -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: v_mul64_sext_c: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; GFX9-NEXT: s_mov_b32 s7, 0xf000 -+; GFX9-NEXT: s_mov_b32 s6, -1 -+; GFX9-NEXT: s_mov_b32 s10, s6 -+; GFX9-NEXT: s_mov_b32 s11, s7 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_mov_b32 s8, s2 -+; GFX9-NEXT: s_mov_b32 s9, s3 -+; GFX9-NEXT: buffer_load_dword v0, off, s[8:11], 0 -+; GFX9-NEXT: s_movk_i32 s2, 0x50 -+; GFX9-NEXT: s_mov_b32 s4, s0 -+; GFX9-NEXT: s_mov_b32 s5, s1 -+; GFX9-NEXT: s_waitcnt vmcnt(0) -+; GFX9-NEXT: v_mul_hi_i32 v1, v0, s2 -+; GFX9-NEXT: v_mul_lo_u32 v0, v0, s2 -+; GFX9-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: v_mul64_sext_c: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; GFX10-NEXT: s_mov_b32 s6, -1 -+; GFX10-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s10, s6 -+; GFX10-NEXT: s_mov_b32 s11, s7 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_mov_b32 s8, s2 -+; GFX10-NEXT: s_mov_b32 s9, s3 -+; GFX10-NEXT: s_mov_b32 s4, s0 -+; GFX10-NEXT: buffer_load_dword v0, off, s[8:11], 0 -+; GFX10-NEXT: s_mov_b32 s5, s1 -+; GFX10-NEXT: s_waitcnt vmcnt(0) -+; GFX10-NEXT: v_mul_hi_i32 v1, 0x50, v0 -+; GFX10-NEXT: v_mul_lo_u32 v0, 0x50, v0 -+; GFX10-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: v_mul64_sext_c: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_load_b128 s[0:3], s[0:1], 0x24 -+; GFX11-NEXT: s_mov_b32 s6, -1 -+; GFX11-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX11-NEXT: s_mov_b32 s10, s6 -+; GFX11-NEXT: s_mov_b32 s11, s7 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_mov_b32 s8, s2 -+; GFX11-NEXT: s_mov_b32 s9, s3 -+; GFX11-NEXT: s_mov_b32 s4, s0 -+; GFX11-NEXT: buffer_load_b32 v0, off, s[8:11], 0 -+; GFX11-NEXT: s_mov_b32 s5, s1 -+; GFX11-NEXT: s_waitcnt vmcnt(0) -+; GFX11-NEXT: v_mul_hi_i32 v1, 0x50, v0 -+; GFX11-NEXT: v_mul_lo_u32 v0, 0x50, v0 -+; GFX11-NEXT: buffer_store_b64 v[0:1], off, s[4:7], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: v_mul64_sext_c: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[] -+; EG-NEXT: TEX 0 @6 -+; EG-NEXT: ALU 4, @9, KC0[CB0:0-32], KC1[] -+; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 1 -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: Fetch clause starting at 6: -+; EG-NEXT: VTX_READ_32 T0.X, T0.X, 0, #1 -+; EG-NEXT: ALU clause starting at 8: -+; EG-NEXT: MOV * T0.X, KC0[2].Z, -+; EG-NEXT: ALU clause starting at 9: -+; EG-NEXT: MULHI_INT * T0.Y, T0.X, literal.x, -+; EG-NEXT: 80(1.121039e-43), 0(0.000000e+00) -+; EG-NEXT: LSHR T1.X, KC0[2].Y, literal.x, -+; EG-NEXT: MULLO_INT * T0.X, T0.X, literal.y, -+; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43) -+entry: - %val = load i32, ptr addrspace(1) %in, align 4 - %ext = sext i32 %val to i64 - %mul = mul i64 %ext, 80 -@@ -100,12 +732,122 @@ define amdgpu_kernel void @v_mul64_sext_c(ptr addrspace(1) %out, ptr addrspace(1 - ret void - } - --; FUNC-LABEL: {{^}}v_mul64_sext_inline_imm: --; SI-DAG: v_mul_lo_u32 v{{[0-9]+}}, v{{[0-9]+}}, 9 --; SI-DAG: v_mul_hi_i32 v{{[0-9]+}}, v{{[0-9]+}}, 9 --; VI: v_mad_i64_i32 v[{{[0-9]+}}:{{[0-9]+}}], s[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]+}}, 9, 0 --; GCN: s_endpgm - define amdgpu_kernel void @v_mul64_sext_inline_imm(ptr addrspace(1) %out, ptr addrspace(1) %in) { -+; SI-LABEL: v_mul64_sext_inline_imm: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x9 -+; SI-NEXT: s_mov_b32 s7, 0xf000 -+; SI-NEXT: s_mov_b32 s6, -1 -+; SI-NEXT: s_mov_b32 s10, s6 -+; SI-NEXT: s_mov_b32 s11, s7 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_mov_b32 s8, s2 -+; SI-NEXT: s_mov_b32 s9, s3 -+; SI-NEXT: buffer_load_dword v0, off, s[8:11], 0 -+; SI-NEXT: s_mov_b32 s4, s0 -+; SI-NEXT: s_mov_b32 s5, s1 -+; SI-NEXT: s_waitcnt vmcnt(0) -+; SI-NEXT: v_mul_hi_i32 v1, v0, 9 -+; SI-NEXT: v_mul_lo_u32 v0, v0, 9 -+; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: v_mul64_sext_inline_imm: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; VI-NEXT: s_mov_b32 s7, 0xf000 -+; VI-NEXT: s_mov_b32 s6, -1 -+; VI-NEXT: s_mov_b32 s10, s6 -+; VI-NEXT: s_mov_b32 s11, s7 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_mov_b32 s8, s2 -+; VI-NEXT: s_mov_b32 s9, s3 -+; VI-NEXT: buffer_load_dword v0, off, s[8:11], 0 -+; VI-NEXT: s_mov_b32 s4, s0 -+; VI-NEXT: s_mov_b32 s5, s1 -+; VI-NEXT: s_waitcnt vmcnt(0) -+; VI-NEXT: v_mad_i64_i32 v[0:1], s[2:3], v0, 9, 0 -+; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0 -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: v_mul64_sext_inline_imm: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; GFX9-NEXT: s_mov_b32 s7, 0xf000 -+; GFX9-NEXT: s_mov_b32 s6, -1 -+; GFX9-NEXT: s_mov_b32 s10, s6 -+; GFX9-NEXT: s_mov_b32 s11, s7 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_mov_b32 s8, s2 -+; GFX9-NEXT: s_mov_b32 s9, s3 -+; GFX9-NEXT: buffer_load_dword v0, off, s[8:11], 0 -+; GFX9-NEXT: s_mov_b32 s4, s0 -+; GFX9-NEXT: s_mov_b32 s5, s1 -+; GFX9-NEXT: s_waitcnt vmcnt(0) -+; GFX9-NEXT: v_mul_hi_i32 v1, v0, 9 -+; GFX9-NEXT: v_mul_lo_u32 v0, v0, 9 -+; GFX9-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: v_mul64_sext_inline_imm: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; GFX10-NEXT: s_mov_b32 s6, -1 -+; GFX10-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s10, s6 -+; GFX10-NEXT: s_mov_b32 s11, s7 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_mov_b32 s8, s2 -+; GFX10-NEXT: s_mov_b32 s9, s3 -+; GFX10-NEXT: s_mov_b32 s4, s0 -+; GFX10-NEXT: buffer_load_dword v0, off, s[8:11], 0 -+; GFX10-NEXT: s_mov_b32 s5, s1 -+; GFX10-NEXT: s_waitcnt vmcnt(0) -+; GFX10-NEXT: v_mul_hi_i32 v1, v0, 9 -+; GFX10-NEXT: v_mul_lo_u32 v0, v0, 9 -+; GFX10-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: v_mul64_sext_inline_imm: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_load_b128 s[0:3], s[0:1], 0x24 -+; GFX11-NEXT: s_mov_b32 s6, -1 -+; GFX11-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX11-NEXT: s_mov_b32 s10, s6 -+; GFX11-NEXT: s_mov_b32 s11, s7 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_mov_b32 s8, s2 -+; GFX11-NEXT: s_mov_b32 s9, s3 -+; GFX11-NEXT: s_mov_b32 s4, s0 -+; GFX11-NEXT: buffer_load_b32 v0, off, s[8:11], 0 -+; GFX11-NEXT: s_mov_b32 s5, s1 -+; GFX11-NEXT: s_waitcnt vmcnt(0) -+; GFX11-NEXT: v_mul_hi_i32 v1, v0, 9 -+; GFX11-NEXT: v_mul_lo_u32 v0, v0, 9 -+; GFX11-NEXT: buffer_store_b64 v[0:1], off, s[4:7], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: v_mul64_sext_inline_imm: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[] -+; EG-NEXT: TEX 0 @6 -+; EG-NEXT: ALU 4, @9, KC0[CB0:0-32], KC1[] -+; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 1 -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: Fetch clause starting at 6: -+; EG-NEXT: VTX_READ_32 T0.X, T0.X, 0, #1 -+; EG-NEXT: ALU clause starting at 8: -+; EG-NEXT: MOV * T0.X, KC0[2].Z, -+; EG-NEXT: ALU clause starting at 9: -+; EG-NEXT: MULHI_INT * T0.Y, T0.X, literal.x, -+; EG-NEXT: 9(1.261169e-44), 0(0.000000e+00) -+; EG-NEXT: LSHR T1.X, KC0[2].Y, literal.x, -+; EG-NEXT: MULLO_INT * T0.X, T0.X, literal.y, -+; EG-NEXT: 2(2.802597e-45), 9(1.261169e-44) -+entry: - %val = load i32, ptr addrspace(1) %in, align 4 - %ext = sext i32 %val to i64 - %mul = mul i64 %ext, 9 -@@ -113,22 +855,202 @@ define amdgpu_kernel void @v_mul64_sext_inline_imm(ptr addrspace(1) %out, ptr ad - ret void - } - --; FUNC-LABEL: {{^}}s_mul_i32: --; GCN: s_load_dword [[SRC0:s[0-9]+]], --; GCN: s_load_dword [[SRC1:s[0-9]+]], --; GCN: s_mul_i32 [[SRESULT:s[0-9]+]], [[SRC0]], [[SRC1]] --; GCN: v_mov_b32_e32 [[VRESULT:v[0-9]+]], [[SRESULT]] --; GCN: buffer_store_dword [[VRESULT]], --; GCN: s_endpgm - define amdgpu_kernel void @s_mul_i32(ptr addrspace(1) %out, [8 x i32], i32 %a, [8 x i32], i32 %b) nounwind { -+; SI-LABEL: s_mul_i32: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dword s4, s[0:1], 0x13 -+; SI-NEXT: s_load_dword s5, s[0:1], 0x1c -+; SI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x9 -+; SI-NEXT: s_mov_b32 s3, 0xf000 -+; SI-NEXT: s_mov_b32 s2, -1 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_mul_i32 s4, s4, s5 -+; SI-NEXT: v_mov_b32_e32 v0, s4 -+; SI-NEXT: buffer_store_dword v0, off, s[0:3], 0 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: s_mul_i32: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dword s4, s[0:1], 0x4c -+; VI-NEXT: s_load_dword s5, s[0:1], 0x70 -+; VI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x24 -+; VI-NEXT: s_mov_b32 s3, 0xf000 -+; VI-NEXT: s_mov_b32 s2, -1 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_mul_i32 s4, s4, s5 -+; VI-NEXT: v_mov_b32_e32 v0, s4 -+; VI-NEXT: buffer_store_dword v0, off, s[0:3], 0 -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: s_mul_i32: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dword s2, s[0:1], 0x4c -+; GFX9-NEXT: s_load_dword s3, s[0:1], 0x70 -+; GFX9-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x24 -+; GFX9-NEXT: s_mov_b32 s7, 0xf000 -+; GFX9-NEXT: s_mov_b32 s6, -1 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_mul_i32 s0, s2, s3 -+; GFX9-NEXT: v_mov_b32_e32 v0, s0 -+; GFX9-NEXT: buffer_store_dword v0, off, s[4:7], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: s_mul_i32: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_clause 0x2 -+; GFX10-NEXT: s_load_dword s2, s[0:1], 0x4c -+; GFX10-NEXT: s_load_dword s3, s[0:1], 0x70 -+; GFX10-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x24 -+; GFX10-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s6, -1 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_mul_i32 s0, s2, s3 -+; GFX10-NEXT: v_mov_b32_e32 v0, s0 -+; GFX10-NEXT: buffer_store_dword v0, off, s[4:7], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: s_mul_i32: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_clause 0x2 -+; GFX11-NEXT: s_load_b32 s2, s[0:1], 0x4c -+; GFX11-NEXT: s_load_b32 s3, s[0:1], 0x70 -+; GFX11-NEXT: s_load_b64 s[0:1], s[0:1], 0x24 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_mul_i32 s2, s2, s3 -+; GFX11-NEXT: s_mov_b32 s3, 0x31016000 -+; GFX11-NEXT: v_mov_b32_e32 v0, s2 -+; GFX11-NEXT: s_mov_b32 s2, -1 -+; GFX11-NEXT: buffer_store_b32 v0, off, s[0:3], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: s_mul_i32: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU 2, @4, KC0[CB0:0-32], KC1[] -+; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T1.X, T0.X, 1 -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: ALU clause starting at 4: -+; EG-NEXT: LSHR * T0.X, KC0[2].Y, literal.x, -+; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00) -+; EG-NEXT: MULLO_INT * T1.X, KC0[4].Z, KC0[6].W, -+entry: - %mul = mul i32 %a, %b - store i32 %mul, ptr addrspace(1) %out, align 4 - ret void - } - --; FUNC-LABEL: {{^}}v_mul_i32: --; GCN: v_mul_lo_u32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}} - define amdgpu_kernel void @v_mul_i32(ptr addrspace(1) %out, ptr addrspace(1) %in) { -+; SI-LABEL: v_mul_i32: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x9 -+; SI-NEXT: s_mov_b32 s7, 0xf000 -+; SI-NEXT: s_mov_b32 s6, -1 -+; SI-NEXT: s_mov_b32 s10, s6 -+; SI-NEXT: s_mov_b32 s11, s7 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_mov_b32 s8, s2 -+; SI-NEXT: s_mov_b32 s9, s3 -+; SI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 0 -+; SI-NEXT: s_mov_b32 s4, s0 -+; SI-NEXT: s_mov_b32 s5, s1 -+; SI-NEXT: s_waitcnt vmcnt(0) -+; SI-NEXT: v_mul_lo_u32 v0, v0, v1 -+; SI-NEXT: buffer_store_dword v0, off, s[4:7], 0 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: v_mul_i32: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; VI-NEXT: s_mov_b32 s7, 0xf000 -+; VI-NEXT: s_mov_b32 s6, -1 -+; VI-NEXT: s_mov_b32 s10, s6 -+; VI-NEXT: s_mov_b32 s11, s7 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_mov_b32 s8, s2 -+; VI-NEXT: s_mov_b32 s9, s3 -+; VI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 0 -+; VI-NEXT: s_mov_b32 s4, s0 -+; VI-NEXT: s_mov_b32 s5, s1 -+; VI-NEXT: s_waitcnt vmcnt(0) -+; VI-NEXT: v_mul_lo_u32 v0, v0, v1 -+; VI-NEXT: buffer_store_dword v0, off, s[4:7], 0 -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: v_mul_i32: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; GFX9-NEXT: s_mov_b32 s7, 0xf000 -+; GFX9-NEXT: s_mov_b32 s6, -1 -+; GFX9-NEXT: s_mov_b32 s10, s6 -+; GFX9-NEXT: s_mov_b32 s11, s7 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_mov_b32 s8, s2 -+; GFX9-NEXT: s_mov_b32 s9, s3 -+; GFX9-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 0 -+; GFX9-NEXT: s_mov_b32 s4, s0 -+; GFX9-NEXT: s_mov_b32 s5, s1 -+; GFX9-NEXT: s_waitcnt vmcnt(0) -+; GFX9-NEXT: v_mul_lo_u32 v0, v0, v1 -+; GFX9-NEXT: buffer_store_dword v0, off, s[4:7], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: v_mul_i32: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; GFX10-NEXT: s_mov_b32 s6, -1 -+; GFX10-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s10, s6 -+; GFX10-NEXT: s_mov_b32 s11, s7 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_mov_b32 s8, s2 -+; GFX10-NEXT: s_mov_b32 s9, s3 -+; GFX10-NEXT: s_mov_b32 s4, s0 -+; GFX10-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 0 -+; GFX10-NEXT: s_mov_b32 s5, s1 -+; GFX10-NEXT: s_waitcnt vmcnt(0) -+; GFX10-NEXT: v_mul_lo_u32 v0, v0, v1 -+; GFX10-NEXT: buffer_store_dword v0, off, s[4:7], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: v_mul_i32: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_load_b128 s[0:3], s[0:1], 0x24 -+; GFX11-NEXT: s_mov_b32 s6, -1 -+; GFX11-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX11-NEXT: s_mov_b32 s10, s6 -+; GFX11-NEXT: s_mov_b32 s11, s7 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_mov_b32 s8, s2 -+; GFX11-NEXT: s_mov_b32 s9, s3 -+; GFX11-NEXT: s_mov_b32 s4, s0 -+; GFX11-NEXT: buffer_load_b64 v[0:1], off, s[8:11], 0 -+; GFX11-NEXT: s_mov_b32 s5, s1 -+; GFX11-NEXT: s_waitcnt vmcnt(0) -+; GFX11-NEXT: v_mul_lo_u32 v0, v0, v1 -+; GFX11-NEXT: buffer_store_b32 v0, off, s[4:7], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: v_mul_i32: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[] -+; EG-NEXT: TEX 0 @6 -+; EG-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[] -+; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 1 -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: Fetch clause starting at 6: -+; EG-NEXT: VTX_READ_64 T0.XY, T0.X, 0, #1 -+; EG-NEXT: ALU clause starting at 8: -+; EG-NEXT: MOV * T0.X, KC0[2].Z, -+; EG-NEXT: ALU clause starting at 9: -+; EG-NEXT: LSHR T1.X, KC0[2].Y, literal.x, -+; EG-NEXT: MULLO_INT * T0.X, T0.X, T0.Y, -+; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00) -+entry: - %b_ptr = getelementptr i32, ptr addrspace(1) %in, i32 1 - %a = load i32, ptr addrspace(1) %in - %b = load i32, ptr addrspace(1) %b_ptr -@@ -137,6 +1059,298 @@ define amdgpu_kernel void @v_mul_i32(ptr addrspace(1) %out, ptr addrspace(1) %in - ret void - } - -+define amdgpu_kernel void @s_mul_i1(ptr addrspace(1) %out, [8 x i32], i1 %a, [8 x i32], i1 %b) nounwind { -+; SI-LABEL: s_mul_i1: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dword s2, s[0:1], 0x13 -+; SI-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x9 -+; SI-NEXT: s_load_dword s3, s[0:1], 0x1c -+; SI-NEXT: s_mov_b32 s7, 0xf000 -+; SI-NEXT: s_mov_b32 s6, -1 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_bitcmp1_b32 s2, 0 -+; SI-NEXT: s_cselect_b64 s[0:1], -1, 0 -+; SI-NEXT: s_bitcmp1_b32 s3, 0 -+; SI-NEXT: s_cselect_b64 s[2:3], -1, 0 -+; SI-NEXT: s_and_b64 s[0:1], s[0:1], s[2:3] -+; SI-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1] -+; SI-NEXT: buffer_store_byte v0, off, s[4:7], 0 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: s_mul_i1: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dword s2, s[0:1], 0x4c -+; VI-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x24 -+; VI-NEXT: s_load_dword s3, s[0:1], 0x70 -+; VI-NEXT: s_mov_b32 s7, 0xf000 -+; VI-NEXT: s_mov_b32 s6, -1 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_bitcmp1_b32 s2, 0 -+; VI-NEXT: s_cselect_b64 s[0:1], -1, 0 -+; VI-NEXT: s_bitcmp1_b32 s3, 0 -+; VI-NEXT: s_cselect_b64 s[2:3], -1, 0 -+; VI-NEXT: s_and_b64 s[0:1], s[0:1], s[2:3] -+; VI-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1] -+; VI-NEXT: buffer_store_byte v0, off, s[4:7], 0 -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: s_mul_i1: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dword s2, s[0:1], 0x4c -+; GFX9-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x24 -+; GFX9-NEXT: s_load_dword s3, s[0:1], 0x70 -+; GFX9-NEXT: s_mov_b32 s7, 0xf000 -+; GFX9-NEXT: s_mov_b32 s6, -1 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_bitcmp1_b32 s2, 0 -+; GFX9-NEXT: s_cselect_b64 s[0:1], -1, 0 -+; GFX9-NEXT: s_bitcmp1_b32 s3, 0 -+; GFX9-NEXT: s_cselect_b64 s[2:3], -1, 0 -+; GFX9-NEXT: s_and_b64 s[0:1], s[0:1], s[2:3] -+; GFX9-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1] -+; GFX9-NEXT: buffer_store_byte v0, off, s[4:7], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: s_mul_i1: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_clause 0x2 -+; GFX10-NEXT: s_load_dword s2, s[0:1], 0x4c -+; GFX10-NEXT: s_load_dword s3, s[0:1], 0x70 -+; GFX10-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x24 -+; GFX10-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s6, -1 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_bitcmp1_b32 s2, 0 -+; GFX10-NEXT: s_cselect_b32 s0, -1, 0 -+; GFX10-NEXT: s_bitcmp1_b32 s3, 0 -+; GFX10-NEXT: s_cselect_b32 s1, -1, 0 -+; GFX10-NEXT: s_and_b32 s0, s0, s1 -+; GFX10-NEXT: v_cndmask_b32_e64 v0, 0, 1, s0 -+; GFX10-NEXT: buffer_store_byte v0, off, s[4:7], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: s_mul_i1: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_clause 0x2 -+; GFX11-NEXT: s_load_b32 s2, s[0:1], 0x4c -+; GFX11-NEXT: s_load_b32 s3, s[0:1], 0x70 -+; GFX11-NEXT: s_load_b64 s[0:1], s[0:1], 0x24 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_bitcmp1_b32 s2, 0 -+; GFX11-NEXT: s_cselect_b32 s2, -1, 0 -+; GFX11-NEXT: s_bitcmp1_b32 s3, 0 -+; GFX11-NEXT: s_cselect_b32 s3, -1, 0 -+; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1) -+; GFX11-NEXT: s_and_b32 s2, s2, s3 -+; GFX11-NEXT: s_mov_b32 s3, 0x31016000 -+; GFX11-NEXT: v_cndmask_b32_e64 v0, 0, 1, s2 -+; GFX11-NEXT: s_mov_b32 s2, -1 -+; GFX11-NEXT: buffer_store_b8 v0, off, s[0:3], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: s_mul_i1: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU 0, @10, KC0[], KC1[] -+; EG-NEXT: TEX 1 @6 -+; EG-NEXT: ALU 12, @11, KC0[CB0:0-32], KC1[] -+; EG-NEXT: MEM_RAT MSKOR T0.XW, T1.X -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: Fetch clause starting at 6: -+; EG-NEXT: VTX_READ_8 T1.X, T0.X, 72, #3 -+; EG-NEXT: VTX_READ_8 T0.X, T0.X, 108, #3 -+; EG-NEXT: ALU clause starting at 10: -+; EG-NEXT: MOV * T0.X, 0.0, -+; EG-NEXT: ALU clause starting at 11: -+; EG-NEXT: AND_INT T0.W, KC0[2].Y, literal.x, -+; EG-NEXT: MULLO_INT * T0.X, T1.X, T0.X, -+; EG-NEXT: 3(4.203895e-45), 0(0.000000e+00) -+; EG-NEXT: AND_INT T1.W, PS, 1, -+; EG-NEXT: LSHL * T0.W, PV.W, literal.x, -+; EG-NEXT: 3(4.203895e-45), 0(0.000000e+00) -+; EG-NEXT: LSHL T0.X, PV.W, PS, -+; EG-NEXT: LSHL * T0.W, literal.x, PS, -+; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00) -+; EG-NEXT: MOV T0.Y, 0.0, -+; EG-NEXT: MOV * T0.Z, 0.0, -+; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x, -+; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00) -+entry: -+ %mul = mul i1 %a, %b -+ store i1 %mul, ptr addrspace(1) %out, align 4 -+ ret void -+} -+ -+define amdgpu_kernel void @v_mul_i1(ptr addrspace(1) %out, ptr addrspace(1) %in) { -+; SI-LABEL: v_mul_i1: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x9 -+; SI-NEXT: s_mov_b32 s7, 0xf000 -+; SI-NEXT: s_mov_b32 s6, -1 -+; SI-NEXT: s_mov_b32 s10, s6 -+; SI-NEXT: s_mov_b32 s11, s7 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_mov_b32 s8, s2 -+; SI-NEXT: s_mov_b32 s9, s3 -+; SI-NEXT: buffer_load_ubyte v0, off, s[8:11], 0 -+; SI-NEXT: buffer_load_ubyte v1, off, s[8:11], 0 offset:4 -+; SI-NEXT: s_mov_b32 s4, s0 -+; SI-NEXT: s_mov_b32 s5, s1 -+; SI-NEXT: s_waitcnt vmcnt(1) -+; SI-NEXT: v_and_b32_e32 v0, 1, v0 -+; SI-NEXT: s_waitcnt vmcnt(0) -+; SI-NEXT: v_and_b32_e32 v1, 1, v1 -+; SI-NEXT: v_cmp_eq_u32_e32 vcc, 1, v0 -+; SI-NEXT: v_cmp_eq_u32_e64 s[0:1], 1, v1 -+; SI-NEXT: s_and_b64 s[0:1], vcc, s[0:1] -+; SI-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1] -+; SI-NEXT: buffer_store_byte v0, off, s[4:7], 0 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: v_mul_i1: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; VI-NEXT: s_mov_b32 s7, 0xf000 -+; VI-NEXT: s_mov_b32 s6, -1 -+; VI-NEXT: s_mov_b32 s10, s6 -+; VI-NEXT: s_mov_b32 s11, s7 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_mov_b32 s8, s2 -+; VI-NEXT: s_mov_b32 s9, s3 -+; VI-NEXT: buffer_load_ubyte v0, off, s[8:11], 0 -+; VI-NEXT: buffer_load_ubyte v1, off, s[8:11], 0 offset:4 -+; VI-NEXT: s_mov_b32 s4, s0 -+; VI-NEXT: s_mov_b32 s5, s1 -+; VI-NEXT: s_waitcnt vmcnt(1) -+; VI-NEXT: v_and_b32_e32 v0, 1, v0 -+; VI-NEXT: s_waitcnt vmcnt(0) -+; VI-NEXT: v_and_b32_e32 v1, 1, v1 -+; VI-NEXT: v_cmp_eq_u32_e32 vcc, 1, v0 -+; VI-NEXT: v_cmp_eq_u32_e64 s[0:1], 1, v1 -+; VI-NEXT: s_and_b64 s[0:1], vcc, s[0:1] -+; VI-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1] -+; VI-NEXT: buffer_store_byte v0, off, s[4:7], 0 -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: v_mul_i1: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; GFX9-NEXT: s_mov_b32 s7, 0xf000 -+; GFX9-NEXT: s_mov_b32 s6, -1 -+; GFX9-NEXT: s_mov_b32 s10, s6 -+; GFX9-NEXT: s_mov_b32 s11, s7 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_mov_b32 s8, s2 -+; GFX9-NEXT: s_mov_b32 s9, s3 -+; GFX9-NEXT: buffer_load_ubyte v0, off, s[8:11], 0 -+; GFX9-NEXT: buffer_load_ubyte v1, off, s[8:11], 0 offset:4 -+; GFX9-NEXT: s_mov_b32 s4, s0 -+; GFX9-NEXT: s_mov_b32 s5, s1 -+; GFX9-NEXT: s_waitcnt vmcnt(1) -+; GFX9-NEXT: v_and_b32_e32 v0, 1, v0 -+; GFX9-NEXT: s_waitcnt vmcnt(0) -+; GFX9-NEXT: v_and_b32_e32 v1, 1, v1 -+; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, 1, v0 -+; GFX9-NEXT: v_cmp_eq_u32_e64 s[0:1], 1, v1 -+; GFX9-NEXT: s_and_b64 s[0:1], vcc, s[0:1] -+; GFX9-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[0:1] -+; GFX9-NEXT: buffer_store_byte v0, off, s[4:7], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: v_mul_i1: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24 -+; GFX10-NEXT: s_mov_b32 s2, -1 -+; GFX10-NEXT: s_mov_b32 s3, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s10, s2 -+; GFX10-NEXT: s_mov_b32 s11, s3 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_mov_b32 s8, s6 -+; GFX10-NEXT: s_mov_b32 s9, s7 -+; GFX10-NEXT: s_clause 0x1 -+; GFX10-NEXT: buffer_load_ubyte v0, off, s[8:11], 0 -+; GFX10-NEXT: buffer_load_ubyte v1, off, s[8:11], 0 offset:4 -+; GFX10-NEXT: s_mov_b32 s1, s5 -+; GFX10-NEXT: s_waitcnt vmcnt(1) -+; GFX10-NEXT: v_and_b32_e32 v0, 1, v0 -+; GFX10-NEXT: s_waitcnt vmcnt(0) -+; GFX10-NEXT: v_and_b32_e32 v1, 1, v1 -+; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 1, v0 -+; GFX10-NEXT: v_cmp_eq_u32_e64 s0, 1, v1 -+; GFX10-NEXT: s_and_b32 s0, vcc_lo, s0 -+; GFX10-NEXT: v_cndmask_b32_e64 v0, 0, 1, s0 -+; GFX10-NEXT: s_mov_b32 s0, s4 -+; GFX10-NEXT: buffer_store_byte v0, off, s[0:3], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: v_mul_i1: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_load_b128 s[4:7], s[0:1], 0x24 -+; GFX11-NEXT: s_mov_b32 s2, -1 -+; GFX11-NEXT: s_mov_b32 s3, 0x31016000 -+; GFX11-NEXT: s_mov_b32 s10, s2 -+; GFX11-NEXT: s_mov_b32 s11, s3 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_mov_b32 s8, s6 -+; GFX11-NEXT: s_mov_b32 s9, s7 -+; GFX11-NEXT: s_clause 0x1 -+; GFX11-NEXT: buffer_load_u8 v0, off, s[8:11], 0 -+; GFX11-NEXT: buffer_load_u8 v1, off, s[8:11], 0 offset:4 -+; GFX11-NEXT: s_mov_b32 s1, s5 -+; GFX11-NEXT: s_waitcnt vmcnt(1) -+; GFX11-NEXT: v_and_b32_e32 v0, 1, v0 -+; GFX11-NEXT: s_waitcnt vmcnt(0) -+; GFX11-NEXT: v_and_b32_e32 v1, 1, v1 -+; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) -+; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 1, v0 -+; GFX11-NEXT: v_cmp_eq_u32_e64 s0, 1, v1 -+; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(SALU_CYCLE_1) -+; GFX11-NEXT: s_and_b32 s0, vcc_lo, s0 -+; GFX11-NEXT: v_cndmask_b32_e64 v0, 0, 1, s0 -+; GFX11-NEXT: s_mov_b32 s0, s4 -+; GFX11-NEXT: buffer_store_b8 v0, off, s[0:3], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: v_mul_i1: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[] -+; EG-NEXT: TEX 1 @6 -+; EG-NEXT: ALU 12, @11, KC0[CB0:0-32], KC1[] -+; EG-NEXT: MEM_RAT MSKOR T0.XW, T1.X -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: Fetch clause starting at 6: -+; EG-NEXT: VTX_READ_8 T1.X, T0.X, 4, #1 -+; EG-NEXT: VTX_READ_8 T0.X, T0.X, 0, #1 -+; EG-NEXT: ALU clause starting at 10: -+; EG-NEXT: MOV * T0.X, KC0[2].Z, -+; EG-NEXT: ALU clause starting at 11: -+; EG-NEXT: AND_INT T0.W, KC0[2].Y, literal.x, -+; EG-NEXT: MULLO_INT * T0.X, T0.X, T1.X, -+; EG-NEXT: 3(4.203895e-45), 0(0.000000e+00) -+; EG-NEXT: AND_INT T1.W, PS, 1, -+; EG-NEXT: LSHL * T0.W, PV.W, literal.x, -+; EG-NEXT: 3(4.203895e-45), 0(0.000000e+00) -+; EG-NEXT: LSHL T0.X, PV.W, PS, -+; EG-NEXT: LSHL * T0.W, literal.x, PS, -+; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00) -+; EG-NEXT: MOV T0.Y, 0.0, -+; EG-NEXT: MOV * T0.Z, 0.0, -+; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x, -+; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00) -+entry: -+ %b_ptr = getelementptr i32, ptr addrspace(1) %in, i32 1 -+ %a = load i1, ptr addrspace(1) %in -+ %b = load i1, ptr addrspace(1) %b_ptr -+ %result = mul i1 %a, %b -+ store i1 %result, ptr addrspace(1) %out -+ ret void -+} -+ - ; A standard 64-bit multiply. The expansion should be around 6 instructions. - ; It would be difficult to match the expansion correctly without writing - ; a really complicated list of FileCheck expressions. I don't want -@@ -144,21 +1358,294 @@ define amdgpu_kernel void @v_mul_i32(ptr addrspace(1) %out, ptr addrspace(1) %in - ; so this test just uses FUNC-LABEL to make sure the compiler does not - ; crash with a 'failed to select' error. - --; FUNC-LABEL: {{^}}s_mul_i64: --; GFX9PLUS-DAG: s_mul_i32 --; GFX9PLUS-DAG: s_mul_hi_u32 --; GFX9PLUS-DAG: s_mul_i32 --; GFX9PLUS-DAG: s_mul_i32 --; GFX9PLUS: s_endpgm - define amdgpu_kernel void @s_mul_i64(ptr addrspace(1) %out, i64 %a, i64 %b) nounwind { -+; SI-LABEL: s_mul_i64: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9 -+; SI-NEXT: s_load_dwordx2 s[8:9], s[0:1], 0xd -+; SI-NEXT: s_mov_b32 s3, 0xf000 -+; SI-NEXT: s_mov_b32 s2, -1 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_mov_b32 s0, s4 -+; SI-NEXT: v_mov_b32_e32 v0, s8 -+; SI-NEXT: v_mul_hi_u32 v0, s6, v0 -+; SI-NEXT: s_mul_i32 s4, s6, s9 -+; SI-NEXT: s_mov_b32 s1, s5 -+; SI-NEXT: v_add_i32_e32 v0, vcc, s4, v0 -+; SI-NEXT: s_mul_i32 s4, s7, s8 -+; SI-NEXT: v_add_i32_e32 v1, vcc, s4, v0 -+; SI-NEXT: s_mul_i32 s4, s6, s8 -+; SI-NEXT: v_mov_b32_e32 v0, s4 -+; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: s_mul_i64: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24 -+; VI-NEXT: s_load_dwordx2 s[8:9], s[0:1], 0x34 -+; VI-NEXT: s_mov_b32 s3, 0xf000 -+; VI-NEXT: s_mov_b32 s2, -1 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_mov_b32 s0, s4 -+; VI-NEXT: v_mov_b32_e32 v0, s8 -+; VI-NEXT: v_mad_u64_u32 v[0:1], s[10:11], s6, v0, 0 -+; VI-NEXT: s_mul_i32 s4, s6, s9 -+; VI-NEXT: s_mov_b32 s1, s5 -+; VI-NEXT: v_add_u32_e32 v1, vcc, s4, v1 -+; VI-NEXT: s_mul_i32 s4, s7, s8 -+; VI-NEXT: v_add_u32_e32 v1, vcc, s4, v1 -+; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0 -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: s_mul_i64: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24 -+; GFX9-NEXT: s_load_dwordx2 s[8:9], s[0:1], 0x34 -+; GFX9-NEXT: s_mov_b32 s3, 0xf000 -+; GFX9-NEXT: s_mov_b32 s2, -1 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_mov_b32 s0, s4 -+; GFX9-NEXT: s_mov_b32 s1, s5 -+; GFX9-NEXT: s_mul_i32 s4, s6, s9 -+; GFX9-NEXT: s_mul_hi_u32 s5, s6, s8 -+; GFX9-NEXT: s_add_i32 s4, s5, s4 -+; GFX9-NEXT: s_mul_i32 s5, s7, s8 -+; GFX9-NEXT: s_add_i32 s4, s4, s5 -+; GFX9-NEXT: s_mul_i32 s5, s6, s8 -+; GFX9-NEXT: v_mov_b32_e32 v0, s5 -+; GFX9-NEXT: v_mov_b32_e32 v1, s4 -+; GFX9-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: s_mul_i64: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_clause 0x1 -+; GFX10-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24 -+; GFX10-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_mul_i32 s0, s6, s3 -+; GFX10-NEXT: s_mul_hi_u32 s1, s6, s2 -+; GFX10-NEXT: s_mov_b32 s3, 0x31016000 -+; GFX10-NEXT: s_add_i32 s0, s1, s0 -+; GFX10-NEXT: s_mul_i32 s1, s7, s2 -+; GFX10-NEXT: s_mul_i32 s2, s6, s2 -+; GFX10-NEXT: s_add_i32 s0, s0, s1 -+; GFX10-NEXT: v_mov_b32_e32 v0, s2 -+; GFX10-NEXT: v_mov_b32_e32 v1, s0 -+; GFX10-NEXT: s_mov_b32 s2, -1 -+; GFX10-NEXT: s_mov_b32 s0, s4 -+; GFX10-NEXT: s_mov_b32 s1, s5 -+; GFX10-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: s_mul_i64: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_clause 0x1 -+; GFX11-NEXT: s_load_b128 s[4:7], s[0:1], 0x24 -+; GFX11-NEXT: s_load_b64 s[0:1], s[0:1], 0x34 -+; GFX11-NEXT: s_mov_b32 s3, 0x31016000 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_mul_i32 s1, s6, s1 -+; GFX11-NEXT: s_mul_hi_u32 s2, s6, s0 -+; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_3) | instid1(SALU_CYCLE_1) -+; GFX11-NEXT: s_add_i32 s1, s2, s1 -+; GFX11-NEXT: s_mul_i32 s2, s7, s0 -+; GFX11-NEXT: s_mul_i32 s0, s6, s0 -+; GFX11-NEXT: s_add_i32 s1, s1, s2 -+; GFX11-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1 -+; GFX11-NEXT: s_mov_b32 s2, -1 -+; GFX11-NEXT: s_mov_b32 s0, s4 -+; GFX11-NEXT: s_mov_b32 s1, s5 -+; GFX11-NEXT: buffer_store_b64 v[0:1], off, s[0:3], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: s_mul_i64: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU 7, @4, KC0[CB0:0-32], KC1[] -+; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 1 -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: ALU clause starting at 4: -+; EG-NEXT: MULHI * T0.X, KC0[2].W, KC0[3].Y, -+; EG-NEXT: MULLO_INT * T0.Y, KC0[2].W, KC0[3].Z, -+; EG-NEXT: ADD_INT T0.W, T0.X, PS, -+; EG-NEXT: MULLO_INT * T0.X, KC0[3].X, KC0[3].Y, -+; EG-NEXT: ADD_INT * T0.Y, PV.W, PS, -+; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x, -+; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00) -+; EG-NEXT: MULLO_INT * T0.X, KC0[2].W, KC0[3].Y, -+entry: - %mul = mul i64 %a, %b - store i64 %mul, ptr addrspace(1) %out, align 8 - ret void - } - --; FUNC-LABEL: {{^}}v_mul_i64: --; GCN: v_mul_lo_u32 - define amdgpu_kernel void @v_mul_i64(ptr addrspace(1) %out, ptr addrspace(1) %aptr, ptr addrspace(1) %bptr) { -+; SI-LABEL: v_mul_i64: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x9 -+; SI-NEXT: s_load_dwordx2 s[8:9], s[0:1], 0xd -+; SI-NEXT: s_mov_b32 s3, 0xf000 -+; SI-NEXT: s_mov_b32 s2, -1 -+; SI-NEXT: s_mov_b32 s10, s2 -+; SI-NEXT: s_mov_b32 s11, s3 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_mov_b32 s12, s6 -+; SI-NEXT: s_mov_b32 s13, s7 -+; SI-NEXT: s_mov_b32 s14, s2 -+; SI-NEXT: s_mov_b32 s15, s3 -+; SI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 0 -+; SI-NEXT: buffer_load_dwordx2 v[2:3], off, s[12:15], 0 -+; SI-NEXT: s_mov_b32 s0, s4 -+; SI-NEXT: s_mov_b32 s1, s5 -+; SI-NEXT: s_waitcnt vmcnt(0) -+; SI-NEXT: v_mul_lo_u32 v1, v2, v1 -+; SI-NEXT: v_mul_hi_u32 v4, v2, v0 -+; SI-NEXT: v_mul_lo_u32 v3, v3, v0 -+; SI-NEXT: v_mul_lo_u32 v0, v2, v0 -+; SI-NEXT: v_add_i32_e32 v1, vcc, v1, v4 -+; SI-NEXT: v_add_i32_e32 v1, vcc, v1, v3 -+; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: v_mul_i64: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24 -+; VI-NEXT: s_load_dwordx2 s[8:9], s[0:1], 0x34 -+; VI-NEXT: s_mov_b32 s3, 0xf000 -+; VI-NEXT: s_mov_b32 s2, -1 -+; VI-NEXT: s_mov_b32 s10, s2 -+; VI-NEXT: s_mov_b32 s11, s3 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_mov_b32 s12, s6 -+; VI-NEXT: s_mov_b32 s13, s7 -+; VI-NEXT: s_mov_b32 s14, s2 -+; VI-NEXT: s_mov_b32 s15, s3 -+; VI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 0 -+; VI-NEXT: buffer_load_dwordx2 v[2:3], off, s[12:15], 0 -+; VI-NEXT: s_mov_b32 s0, s4 -+; VI-NEXT: s_mov_b32 s1, s5 -+; VI-NEXT: s_waitcnt vmcnt(0) -+; VI-NEXT: v_mul_lo_u32 v4, v2, v1 -+; VI-NEXT: v_mad_u64_u32 v[1:2], s[6:7], v2, v0, 0 -+; VI-NEXT: v_mul_lo_u32 v0, v3, v0 -+; VI-NEXT: v_add_u32_e32 v2, vcc, v4, v2 -+; VI-NEXT: v_add_u32_e32 v2, vcc, v2, v0 -+; VI-NEXT: buffer_store_dwordx2 v[1:2], off, s[0:3], 0 -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: v_mul_i64: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24 -+; GFX9-NEXT: s_load_dwordx2 s[8:9], s[0:1], 0x34 -+; GFX9-NEXT: s_mov_b32 s3, 0xf000 -+; GFX9-NEXT: s_mov_b32 s2, -1 -+; GFX9-NEXT: s_mov_b32 s10, s2 -+; GFX9-NEXT: s_mov_b32 s11, s3 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_mov_b32 s12, s6 -+; GFX9-NEXT: s_mov_b32 s13, s7 -+; GFX9-NEXT: s_mov_b32 s14, s2 -+; GFX9-NEXT: s_mov_b32 s15, s3 -+; GFX9-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 0 -+; GFX9-NEXT: buffer_load_dwordx2 v[2:3], off, s[12:15], 0 -+; GFX9-NEXT: s_mov_b32 s0, s4 -+; GFX9-NEXT: s_mov_b32 s1, s5 -+; GFX9-NEXT: s_waitcnt vmcnt(0) -+; GFX9-NEXT: v_mul_lo_u32 v1, v2, v1 -+; GFX9-NEXT: v_mul_hi_u32 v4, v2, v0 -+; GFX9-NEXT: v_mul_lo_u32 v3, v3, v0 -+; GFX9-NEXT: v_mul_lo_u32 v0, v2, v0 -+; GFX9-NEXT: v_add_u32_e32 v1, v4, v1 -+; GFX9-NEXT: v_add_u32_e32 v1, v1, v3 -+; GFX9-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: v_mul_i64: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_clause 0x1 -+; GFX10-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24 -+; GFX10-NEXT: s_load_dwordx2 s[8:9], s[0:1], 0x34 -+; GFX10-NEXT: s_mov_b32 s2, -1 -+; GFX10-NEXT: s_mov_b32 s3, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s10, s2 -+; GFX10-NEXT: s_mov_b32 s11, s3 -+; GFX10-NEXT: s_mov_b32 s14, s2 -+; GFX10-NEXT: s_mov_b32 s15, s3 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_mov_b32 s12, s6 -+; GFX10-NEXT: s_mov_b32 s13, s7 -+; GFX10-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 0 -+; GFX10-NEXT: buffer_load_dwordx2 v[2:3], off, s[12:15], 0 -+; GFX10-NEXT: s_mov_b32 s0, s4 -+; GFX10-NEXT: s_mov_b32 s1, s5 -+; GFX10-NEXT: s_waitcnt vmcnt(0) -+; GFX10-NEXT: v_mul_lo_u32 v1, v2, v1 -+; GFX10-NEXT: v_mul_hi_u32 v4, v2, v0 -+; GFX10-NEXT: v_mul_lo_u32 v3, v3, v0 -+; GFX10-NEXT: v_mul_lo_u32 v0, v2, v0 -+; GFX10-NEXT: v_add_nc_u32_e32 v1, v4, v1 -+; GFX10-NEXT: v_add_nc_u32_e32 v1, v1, v3 -+; GFX10-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: v_mul_i64: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_clause 0x1 -+; GFX11-NEXT: s_load_b128 s[4:7], s[0:1], 0x24 -+; GFX11-NEXT: s_load_b64 s[0:1], s[0:1], 0x34 -+; GFX11-NEXT: s_mov_b32 s10, -1 -+; GFX11-NEXT: s_mov_b32 s11, 0x31016000 -+; GFX11-NEXT: s_mov_b32 s2, s10 -+; GFX11-NEXT: s_mov_b32 s3, s11 -+; GFX11-NEXT: s_mov_b32 s14, s10 -+; GFX11-NEXT: s_mov_b32 s15, s11 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_mov_b32 s12, s6 -+; GFX11-NEXT: s_mov_b32 s13, s7 -+; GFX11-NEXT: buffer_load_b64 v[0:1], off, s[0:3], 0 -+; GFX11-NEXT: buffer_load_b64 v[2:3], off, s[12:15], 0 -+; GFX11-NEXT: s_mov_b32 s8, s4 -+; GFX11-NEXT: s_mov_b32 s9, s5 -+; GFX11-NEXT: s_waitcnt vmcnt(0) -+; GFX11-NEXT: v_mul_lo_u32 v1, v2, v1 -+; GFX11-NEXT: v_mul_hi_u32 v4, v2, v0 -+; GFX11-NEXT: v_mul_lo_u32 v3, v3, v0 -+; GFX11-NEXT: v_mul_lo_u32 v0, v2, v0 -+; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1) -+; GFX11-NEXT: v_add_nc_u32_e32 v1, v4, v1 -+; GFX11-NEXT: v_add_nc_u32_e32 v1, v1, v3 -+; GFX11-NEXT: buffer_store_b64 v[0:1], off, s[8:11], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: v_mul_i64: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU 1, @10, KC0[CB0:0-32], KC1[] -+; EG-NEXT: TEX 1 @6 -+; EG-NEXT: ALU 7, @12, KC0[CB0:0-32], KC1[] -+; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T2.X, 1 -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: Fetch clause starting at 6: -+; EG-NEXT: VTX_READ_64 T1.XY, T1.X, 0, #1 -+; EG-NEXT: VTX_READ_64 T0.XY, T0.X, 0, #1 -+; EG-NEXT: ALU clause starting at 10: -+; EG-NEXT: MOV T0.X, KC0[2].Z, -+; EG-NEXT: MOV * T1.X, KC0[2].W, -+; EG-NEXT: ALU clause starting at 12: -+; EG-NEXT: MULHI * T0.Z, T0.X, T1.X, -+; EG-NEXT: MULLO_INT * T0.W, T0.X, T1.Y, -+; EG-NEXT: ADD_INT T0.W, T0.Z, PS, -+; EG-NEXT: MULLO_INT * T0.Y, T0.Y, T1.X, -+; EG-NEXT: ADD_INT * T0.Y, PV.W, PS, -+; EG-NEXT: LSHR T2.X, KC0[2].Y, literal.x, -+; EG-NEXT: MULLO_INT * T0.X, T0.X, T1.X, -+; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00) -+entry: - %a = load i64, ptr addrspace(1) %aptr, align 8 - %b = load i64, ptr addrspace(1) %bptr, align 8 - %mul = mul i64 %a, %b -@@ -166,9 +1653,220 @@ define amdgpu_kernel void @v_mul_i64(ptr addrspace(1) %out, ptr addrspace(1) %ap - ret void - } - --; FUNC-LABEL: {{^}}mul32_in_branch: --; GCN: s_mul_i32 - define amdgpu_kernel void @mul32_in_branch(ptr addrspace(1) %out, ptr addrspace(1) %in, i32 %a, i32 %b, i32 %c) { -+; SI-LABEL: mul32_in_branch: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0xd -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_cmp_lg_u32 s2, 0 -+; SI-NEXT: s_cbranch_scc0 .LBB13_2 -+; SI-NEXT: ; %bb.1: ; %else -+; SI-NEXT: s_mul_i32 s6, s2, s3 -+; SI-NEXT: s_mov_b64 s[4:5], 0 -+; SI-NEXT: s_branch .LBB13_3 -+; SI-NEXT: .LBB13_2: -+; SI-NEXT: s_mov_b64 s[4:5], -1 -+; SI-NEXT: ; implicit-def: $sgpr6 -+; SI-NEXT: .LBB13_3: ; %Flow -+; SI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x9 -+; SI-NEXT: s_andn2_b64 vcc, exec, s[4:5] -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_mov_b64 vcc, vcc -+; SI-NEXT: s_cbranch_vccnz .LBB13_5 -+; SI-NEXT: ; %bb.4: ; %if -+; SI-NEXT: s_mov_b32 s7, 0xf000 -+; SI-NEXT: s_mov_b32 s6, -1 -+; SI-NEXT: s_mov_b32 s4, s2 -+; SI-NEXT: s_mov_b32 s5, s3 -+; SI-NEXT: buffer_load_dword v0, off, s[4:7], 0 -+; SI-NEXT: s_branch .LBB13_6 -+; SI-NEXT: .LBB13_5: -+; SI-NEXT: v_mov_b32_e32 v0, s6 -+; SI-NEXT: .LBB13_6: ; %endif -+; SI-NEXT: s_mov_b32 s3, 0xf000 -+; SI-NEXT: s_mov_b32 s2, -1 -+; SI-NEXT: s_waitcnt vmcnt(0) -+; SI-NEXT: buffer_store_dword v0, off, s[0:3], 0 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: mul32_in_branch: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_cmp_lg_u32 s2, 0 -+; VI-NEXT: s_cbranch_scc0 .LBB13_2 -+; VI-NEXT: ; %bb.1: ; %else -+; VI-NEXT: s_mul_i32 s6, s2, s3 -+; VI-NEXT: s_mov_b64 s[4:5], 0 -+; VI-NEXT: s_branch .LBB13_3 -+; VI-NEXT: .LBB13_2: -+; VI-NEXT: s_mov_b64 s[4:5], -1 -+; VI-NEXT: ; implicit-def: $sgpr6 -+; VI-NEXT: .LBB13_3: ; %Flow -+; VI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; VI-NEXT: s_andn2_b64 vcc, exec, s[4:5] -+; VI-NEXT: s_cbranch_vccnz .LBB13_5 -+; VI-NEXT: ; %bb.4: ; %if -+; VI-NEXT: s_mov_b32 s7, 0xf000 -+; VI-NEXT: s_mov_b32 s6, -1 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_mov_b32 s4, s2 -+; VI-NEXT: s_mov_b32 s5, s3 -+; VI-NEXT: buffer_load_dword v0, off, s[4:7], 0 -+; VI-NEXT: s_branch .LBB13_6 -+; VI-NEXT: .LBB13_5: -+; VI-NEXT: v_mov_b32_e32 v0, s6 -+; VI-NEXT: .LBB13_6: ; %endif -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_mov_b32 s3, 0xf000 -+; VI-NEXT: s_mov_b32 s2, -1 -+; VI-NEXT: s_waitcnt vmcnt(0) -+; VI-NEXT: buffer_store_dword v0, off, s[0:3], 0 -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: mul32_in_branch: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_cmp_lg_u32 s2, 0 -+; GFX9-NEXT: s_cbranch_scc0 .LBB13_2 -+; GFX9-NEXT: ; %bb.1: ; %else -+; GFX9-NEXT: s_mul_i32 s6, s2, s3 -+; GFX9-NEXT: s_mov_b64 s[4:5], 0 -+; GFX9-NEXT: s_branch .LBB13_3 -+; GFX9-NEXT: .LBB13_2: -+; GFX9-NEXT: s_mov_b64 s[4:5], -1 -+; GFX9-NEXT: ; implicit-def: $sgpr6 -+; GFX9-NEXT: .LBB13_3: ; %Flow -+; GFX9-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; GFX9-NEXT: s_andn2_b64 vcc, exec, s[4:5] -+; GFX9-NEXT: s_cbranch_vccnz .LBB13_5 -+; GFX9-NEXT: ; %bb.4: ; %if -+; GFX9-NEXT: s_mov_b32 s7, 0xf000 -+; GFX9-NEXT: s_mov_b32 s6, -1 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_mov_b32 s4, s2 -+; GFX9-NEXT: s_mov_b32 s5, s3 -+; GFX9-NEXT: buffer_load_dword v0, off, s[4:7], 0 -+; GFX9-NEXT: s_branch .LBB13_6 -+; GFX9-NEXT: .LBB13_5: -+; GFX9-NEXT: v_mov_b32_e32 v0, s6 -+; GFX9-NEXT: .LBB13_6: ; %endif -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_mov_b32 s3, 0xf000 -+; GFX9-NEXT: s_mov_b32 s2, -1 -+; GFX9-NEXT: s_waitcnt vmcnt(0) -+; GFX9-NEXT: buffer_store_dword v0, off, s[0:3], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: mul32_in_branch: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x34 -+; GFX10-NEXT: s_mov_b32 s4, 0 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_cmp_lg_u32 s2, 0 -+; GFX10-NEXT: s_cbranch_scc0 .LBB13_2 -+; GFX10-NEXT: ; %bb.1: ; %else -+; GFX10-NEXT: s_mul_i32 s5, s2, s3 -+; GFX10-NEXT: s_branch .LBB13_3 -+; GFX10-NEXT: .LBB13_2: -+; GFX10-NEXT: s_mov_b32 s4, -1 -+; GFX10-NEXT: ; implicit-def: $sgpr5 -+; GFX10-NEXT: .LBB13_3: ; %Flow -+; GFX10-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x24 -+; GFX10-NEXT: s_andn2_b32 vcc_lo, exec_lo, s4 -+; GFX10-NEXT: s_cbranch_vccnz .LBB13_5 -+; GFX10-NEXT: ; %bb.4: ; %if -+; GFX10-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s6, -1 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_mov_b32 s4, s2 -+; GFX10-NEXT: s_mov_b32 s5, s3 -+; GFX10-NEXT: buffer_load_dword v0, off, s[4:7], 0 -+; GFX10-NEXT: s_branch .LBB13_6 -+; GFX10-NEXT: .LBB13_5: -+; GFX10-NEXT: v_mov_b32_e32 v0, s5 -+; GFX10-NEXT: .LBB13_6: ; %endif -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_mov_b32 s3, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s2, -1 -+; GFX10-NEXT: s_waitcnt vmcnt(0) -+; GFX10-NEXT: buffer_store_dword v0, off, s[0:3], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: mul32_in_branch: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_load_b64 s[2:3], s[0:1], 0x34 -+; GFX11-NEXT: s_mov_b32 s4, 0 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_cmp_lg_u32 s2, 0 -+; GFX11-NEXT: s_cbranch_scc0 .LBB13_2 -+; GFX11-NEXT: ; %bb.1: ; %else -+; GFX11-NEXT: s_mul_i32 s5, s2, s3 -+; GFX11-NEXT: s_branch .LBB13_3 -+; GFX11-NEXT: .LBB13_2: -+; GFX11-NEXT: s_mov_b32 s4, -1 -+; GFX11-NEXT: ; implicit-def: $sgpr5 -+; GFX11-NEXT: .LBB13_3: ; %Flow -+; GFX11-NEXT: s_load_b128 s[0:3], s[0:1], 0x24 -+; GFX11-NEXT: s_and_not1_b32 vcc_lo, exec_lo, s4 -+; GFX11-NEXT: s_cbranch_vccnz .LBB13_5 -+; GFX11-NEXT: ; %bb.4: ; %if -+; GFX11-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX11-NEXT: s_mov_b32 s6, -1 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_mov_b32 s4, s2 -+; GFX11-NEXT: s_mov_b32 s5, s3 -+; GFX11-NEXT: buffer_load_b32 v0, off, s[4:7], 0 -+; GFX11-NEXT: s_branch .LBB13_6 -+; GFX11-NEXT: .LBB13_5: -+; GFX11-NEXT: v_mov_b32_e32 v0, s5 -+; GFX11-NEXT: .LBB13_6: ; %endif -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_mov_b32 s3, 0x31016000 -+; GFX11-NEXT: s_mov_b32 s2, -1 -+; GFX11-NEXT: s_waitcnt vmcnt(0) -+; GFX11-NEXT: buffer_store_b32 v0, off, s[0:3], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: mul32_in_branch: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU_PUSH_BEFORE 3, @14, KC0[CB0:0-32], KC1[] -+; EG-NEXT: JUMP @3 POP:1 -+; EG-NEXT: ALU_POP_AFTER 4, @18, KC0[CB0:0-32], KC1[] -+; EG-NEXT: ALU_PUSH_BEFORE 2, @23, KC0[CB0:0-32], KC1[] -+; EG-NEXT: JUMP @8 POP:1 -+; EG-NEXT: ALU 0, @26, KC0[CB0:0-32], KC1[] -+; EG-NEXT: TEX 0 @12 -+; EG-NEXT: POP @8 POP:1 -+; EG-NEXT: ALU 1, @27, KC0[], KC1[] -+; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 1 -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: Fetch clause starting at 12: -+; EG-NEXT: VTX_READ_32 T0.X, T0.X, 0, #1 -+; EG-NEXT: ALU clause starting at 14: -+; EG-NEXT: MOV T0.W, literal.x, -+; EG-NEXT: SETNE_INT * T1.W, KC0[2].W, 0.0, -+; EG-NEXT: 1(1.401298e-45), 0(0.000000e+00) -+; EG-NEXT: PRED_SETNE_INT * ExecMask,PredicateBit (MASKED), PS, 0.0, -+; EG-NEXT: ALU clause starting at 18: -+; EG-NEXT: MOV T1.W, KC0[2].W, -+; EG-NEXT: MOV * T2.W, KC0[3].X, -+; EG-NEXT: MOV T0.W, literal.x, -+; EG-NEXT: MULLO_INT * T0.X, PV.W, PS, -+; EG-NEXT: 0(0.000000e+00), 0(0.000000e+00) -+; EG-NEXT: ALU clause starting at 23: -+; EG-NEXT: MOV T1.W, KC0[2].Y, -+; EG-NEXT: SETE_INT * T0.W, T0.W, 0.0, -+; EG-NEXT: PRED_SETE_INT * ExecMask,PredicateBit (MASKED), PS, 0.0, -+; EG-NEXT: ALU clause starting at 26: -+; EG-NEXT: MOV * T0.X, KC0[2].Z, -+; EG-NEXT: ALU clause starting at 27: -+; EG-NEXT: LSHR * T1.X, T1.W, literal.x, -+; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00) - entry: - %0 = icmp eq i32 %a, 0 - br i1 %0, label %if, label %else -@@ -187,12 +1885,227 @@ endif: - ret void - } - --; FUNC-LABEL: {{^}}mul64_in_branch: --; SI-DAG: s_mul_i32 --; SI-DAG: v_mul_hi_u32 --; VI: v_mad_u64_u32 --; GCN: s_endpgm - define amdgpu_kernel void @mul64_in_branch(ptr addrspace(1) %out, ptr addrspace(1) %in, i64 %a, i64 %b, i64 %c) { -+; SI-LABEL: mul64_in_branch: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dwordx8 s[0:7], s[0:1], 0x9 -+; SI-NEXT: s_mov_b64 s[8:9], 0 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: v_cmp_ne_u64_e64 s[10:11], s[4:5], 0 -+; SI-NEXT: s_and_b64 vcc, exec, s[10:11] -+; SI-NEXT: s_cbranch_vccz .LBB14_4 -+; SI-NEXT: ; %bb.1: ; %else -+; SI-NEXT: v_mov_b32_e32 v0, s6 -+; SI-NEXT: v_mul_hi_u32 v0, s4, v0 -+; SI-NEXT: s_mul_i32 s7, s4, s7 -+; SI-NEXT: s_mul_i32 s5, s5, s6 -+; SI-NEXT: s_mul_i32 s4, s4, s6 -+; SI-NEXT: v_add_i32_e32 v0, vcc, s7, v0 -+; SI-NEXT: v_add_i32_e32 v1, vcc, s5, v0 -+; SI-NEXT: v_mov_b32_e32 v0, s4 -+; SI-NEXT: s_andn2_b64 vcc, exec, s[8:9] -+; SI-NEXT: s_cbranch_vccnz .LBB14_3 -+; SI-NEXT: .LBB14_2: ; %if -+; SI-NEXT: s_mov_b32 s7, 0xf000 -+; SI-NEXT: s_mov_b32 s6, -1 -+; SI-NEXT: s_mov_b32 s4, s2 -+; SI-NEXT: s_mov_b32 s5, s3 -+; SI-NEXT: buffer_load_dwordx2 v[0:1], off, s[4:7], 0 -+; SI-NEXT: .LBB14_3: ; %endif -+; SI-NEXT: s_mov_b32 s3, 0xf000 -+; SI-NEXT: s_mov_b32 s2, -1 -+; SI-NEXT: s_waitcnt vmcnt(0) -+; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0 -+; SI-NEXT: s_endpgm -+; SI-NEXT: .LBB14_4: -+; SI-NEXT: ; implicit-def: $vgpr0_vgpr1 -+; SI-NEXT: s_branch .LBB14_2 -+; -+; VI-LABEL: mul64_in_branch: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dwordx8 s[0:7], s[0:1], 0x24 -+; VI-NEXT: s_mov_b64 s[8:9], 0 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: s_cmp_lg_u64 s[4:5], 0 -+; VI-NEXT: s_cbranch_scc0 .LBB14_4 -+; VI-NEXT: ; %bb.1: ; %else -+; VI-NEXT: v_mov_b32_e32 v0, s6 -+; VI-NEXT: v_mad_u64_u32 v[0:1], s[10:11], s4, v0, 0 -+; VI-NEXT: s_mul_i32 s4, s4, s7 -+; VI-NEXT: v_add_u32_e32 v1, vcc, s4, v1 -+; VI-NEXT: s_mul_i32 s4, s5, s6 -+; VI-NEXT: v_add_u32_e32 v1, vcc, s4, v1 -+; VI-NEXT: s_andn2_b64 vcc, exec, s[8:9] -+; VI-NEXT: s_cbranch_vccnz .LBB14_3 -+; VI-NEXT: .LBB14_2: ; %if -+; VI-NEXT: s_mov_b32 s7, 0xf000 -+; VI-NEXT: s_mov_b32 s6, -1 -+; VI-NEXT: s_mov_b32 s4, s2 -+; VI-NEXT: s_mov_b32 s5, s3 -+; VI-NEXT: buffer_load_dwordx2 v[0:1], off, s[4:7], 0 -+; VI-NEXT: .LBB14_3: ; %endif -+; VI-NEXT: s_mov_b32 s3, 0xf000 -+; VI-NEXT: s_mov_b32 s2, -1 -+; VI-NEXT: s_waitcnt vmcnt(0) -+; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0 -+; VI-NEXT: s_endpgm -+; VI-NEXT: .LBB14_4: -+; VI-NEXT: ; implicit-def: $vgpr0_vgpr1 -+; VI-NEXT: s_branch .LBB14_2 -+; -+; GFX9-LABEL: mul64_in_branch: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dwordx8 s[0:7], s[0:1], 0x24 -+; GFX9-NEXT: s_mov_b64 s[8:9], 0 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_cmp_lg_u64 s[4:5], 0 -+; GFX9-NEXT: s_cbranch_scc0 .LBB14_3 -+; GFX9-NEXT: ; %bb.1: ; %else -+; GFX9-NEXT: s_mul_i32 s7, s4, s7 -+; GFX9-NEXT: s_mul_hi_u32 s10, s4, s6 -+; GFX9-NEXT: s_add_i32 s7, s10, s7 -+; GFX9-NEXT: s_mul_i32 s5, s5, s6 -+; GFX9-NEXT: s_add_i32 s5, s7, s5 -+; GFX9-NEXT: s_mul_i32 s4, s4, s6 -+; GFX9-NEXT: s_andn2_b64 vcc, exec, s[8:9] -+; GFX9-NEXT: s_cbranch_vccnz .LBB14_4 -+; GFX9-NEXT: .LBB14_2: ; %if -+; GFX9-NEXT: s_mov_b32 s7, 0xf000 -+; GFX9-NEXT: s_mov_b32 s6, -1 -+; GFX9-NEXT: s_mov_b32 s4, s2 -+; GFX9-NEXT: s_mov_b32 s5, s3 -+; GFX9-NEXT: buffer_load_dwordx2 v[0:1], off, s[4:7], 0 -+; GFX9-NEXT: s_branch .LBB14_5 -+; GFX9-NEXT: .LBB14_3: -+; GFX9-NEXT: ; implicit-def: $sgpr4_sgpr5 -+; GFX9-NEXT: s_branch .LBB14_2 -+; GFX9-NEXT: .LBB14_4: -+; GFX9-NEXT: v_mov_b32_e32 v0, s4 -+; GFX9-NEXT: v_mov_b32_e32 v1, s5 -+; GFX9-NEXT: .LBB14_5: ; %endif -+; GFX9-NEXT: s_mov_b32 s3, 0xf000 -+; GFX9-NEXT: s_mov_b32 s2, -1 -+; GFX9-NEXT: s_waitcnt vmcnt(0) -+; GFX9-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: mul64_in_branch: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_load_dwordx8 s[0:7], s[0:1], 0x24 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_cmp_lg_u64 s[4:5], 0 -+; GFX10-NEXT: s_cbranch_scc0 .LBB14_3 -+; GFX10-NEXT: ; %bb.1: ; %else -+; GFX10-NEXT: s_mul_i32 s7, s4, s7 -+; GFX10-NEXT: s_mul_hi_u32 s8, s4, s6 -+; GFX10-NEXT: s_mul_i32 s5, s5, s6 -+; GFX10-NEXT: s_add_i32 s7, s8, s7 -+; GFX10-NEXT: s_mul_i32 s4, s4, s6 -+; GFX10-NEXT: s_add_i32 s5, s7, s5 -+; GFX10-NEXT: s_mov_b32 s6, 0 -+; GFX10-NEXT: s_cbranch_execnz .LBB14_4 -+; GFX10-NEXT: .LBB14_2: ; %if -+; GFX10-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s6, -1 -+; GFX10-NEXT: s_mov_b32 s4, s2 -+; GFX10-NEXT: s_mov_b32 s5, s3 -+; GFX10-NEXT: buffer_load_dwordx2 v[0:1], off, s[4:7], 0 -+; GFX10-NEXT: s_branch .LBB14_5 -+; GFX10-NEXT: .LBB14_3: -+; GFX10-NEXT: s_mov_b32 s6, -1 -+; GFX10-NEXT: ; implicit-def: $sgpr4_sgpr5 -+; GFX10-NEXT: s_branch .LBB14_2 -+; GFX10-NEXT: .LBB14_4: -+; GFX10-NEXT: v_mov_b32_e32 v0, s4 -+; GFX10-NEXT: v_mov_b32_e32 v1, s5 -+; GFX10-NEXT: .LBB14_5: ; %endif -+; GFX10-NEXT: s_mov_b32 s3, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s2, -1 -+; GFX10-NEXT: s_waitcnt vmcnt(0) -+; GFX10-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: mul64_in_branch: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_load_b256 s[0:7], s[0:1], 0x24 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_cmp_lg_u64 s[4:5], 0 -+; GFX11-NEXT: s_cbranch_scc0 .LBB14_3 -+; GFX11-NEXT: ; %bb.1: ; %else -+; GFX11-NEXT: s_mul_i32 s7, s4, s7 -+; GFX11-NEXT: s_mul_hi_u32 s8, s4, s6 -+; GFX11-NEXT: s_mul_i32 s5, s5, s6 -+; GFX11-NEXT: s_add_i32 s7, s8, s7 -+; GFX11-NEXT: s_mul_i32 s4, s4, s6 -+; GFX11-NEXT: s_add_i32 s5, s7, s5 -+; GFX11-NEXT: s_mov_b32 s6, 0 -+; GFX11-NEXT: s_cbranch_execnz .LBB14_4 -+; GFX11-NEXT: .LBB14_2: ; %if -+; GFX11-NEXT: s_mov_b32 s7, 0x31016000 -+; GFX11-NEXT: s_mov_b32 s6, -1 -+; GFX11-NEXT: s_mov_b32 s4, s2 -+; GFX11-NEXT: s_mov_b32 s5, s3 -+; GFX11-NEXT: buffer_load_b64 v[0:1], off, s[4:7], 0 -+; GFX11-NEXT: s_branch .LBB14_5 -+; GFX11-NEXT: .LBB14_3: -+; GFX11-NEXT: s_mov_b32 s6, -1 -+; GFX11-NEXT: ; implicit-def: $sgpr4_sgpr5 -+; GFX11-NEXT: s_branch .LBB14_2 -+; GFX11-NEXT: .LBB14_4: -+; GFX11-NEXT: v_dual_mov_b32 v0, s4 :: v_dual_mov_b32 v1, s5 -+; GFX11-NEXT: .LBB14_5: ; %endif -+; GFX11-NEXT: s_mov_b32 s3, 0x31016000 -+; GFX11-NEXT: s_mov_b32 s2, -1 -+; GFX11-NEXT: s_waitcnt vmcnt(0) -+; GFX11-NEXT: buffer_store_b64 v[0:1], off, s[0:3], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: mul64_in_branch: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU_PUSH_BEFORE 4, @14, KC0[CB0:0-32], KC1[] -+; EG-NEXT: JUMP @3 POP:1 -+; EG-NEXT: ALU_POP_AFTER 11, @19, KC0[CB0:0-32], KC1[] -+; EG-NEXT: ALU_PUSH_BEFORE 2, @31, KC0[CB0:0-32], KC1[] -+; EG-NEXT: JUMP @8 POP:1 -+; EG-NEXT: ALU 0, @34, KC0[CB0:0-32], KC1[] -+; EG-NEXT: TEX 0 @12 -+; EG-NEXT: POP @8 POP:1 -+; EG-NEXT: ALU 1, @35, KC0[], KC1[] -+; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 1 -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: Fetch clause starting at 12: -+; EG-NEXT: VTX_READ_64 T0.XY, T0.X, 0, #1 -+; EG-NEXT: ALU clause starting at 14: -+; EG-NEXT: OR_INT T0.W, KC0[2].W, KC0[3].X, -+; EG-NEXT: MOV * T1.W, literal.x, -+; EG-NEXT: 1(1.401298e-45), 0(0.000000e+00) -+; EG-NEXT: SETNE_INT * T0.W, PV.W, 0.0, -+; EG-NEXT: PRED_SETNE_INT * ExecMask,PredicateBit (MASKED), PV.W, 0.0, -+; EG-NEXT: ALU clause starting at 19: -+; EG-NEXT: MOV T0.W, KC0[2].W, -+; EG-NEXT: MOV * T1.W, KC0[3].Z, -+; EG-NEXT: MOV T2.W, KC0[3].Y, -+; EG-NEXT: MULLO_INT * T0.X, PV.W, PS, -+; EG-NEXT: MOV T1.W, KC0[3].X, -+; EG-NEXT: MULHI * T0.Y, T0.W, PV.W, -+; EG-NEXT: ADD_INT T3.W, PS, T0.X, -+; EG-NEXT: MULLO_INT * T0.X, PV.W, T2.W, -+; EG-NEXT: ADD_INT T0.Y, PV.W, PS, -+; EG-NEXT: MOV T1.W, literal.x, -+; EG-NEXT: MULLO_INT * T0.X, T0.W, T2.W, -+; EG-NEXT: 0(0.000000e+00), 0(0.000000e+00) -+; EG-NEXT: ALU clause starting at 31: -+; EG-NEXT: MOV T0.W, KC0[2].Y, -+; EG-NEXT: SETE_INT * T1.W, T1.W, 0.0, -+; EG-NEXT: PRED_SETE_INT * ExecMask,PredicateBit (MASKED), PS, 0.0, -+; EG-NEXT: ALU clause starting at 34: -+; EG-NEXT: MOV * T0.X, KC0[2].Z, -+; EG-NEXT: ALU clause starting at 35: -+; EG-NEXT: LSHR * T1.X, T0.W, literal.x, -+; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00) - entry: - %0 = icmp eq i64 %a, 0 - br i1 %0, label %if, label %else -@@ -211,79 +2124,558 @@ endif: - ret void - } - --; FIXME: Load dwordx4 --; FUNC-LABEL: {{^}}s_mul_i128: --; GCN: s_load_dwordx4 --; GCN: s_load_dwordx4 -- --; SI: v_mul_hi_u32 --; SI: v_mul_hi_u32 --; SI: s_mul_i32 --; SI: v_mul_hi_u32 --; SI: s_mul_i32 --; SI: s_mul_i32 -- --; SI-DAG: s_mul_i32 --; SI-DAG: v_mul_hi_u32 --; SI-DAG: v_mul_hi_u32 --; SI-DAG: s_mul_i32 --; SI-DAG: s_mul_i32 --; SI-DAG: v_mul_hi_u32 -- --; VI-DAG: v_mad_u64_u32 --; VI-DAG: v_mad_u64_u32 --; VI-DAG: v_mad_u64_u32 --; VI-DAG: v_mad_u64_u32 --; VI-DAG: v_mad_u64_u32 --; VI-DAG: v_mad_u64_u32 --; VI-DAG: s_mul_i32 --; VI-DAG: s_mul_i32 --; VI-DAG: s_mul_i32 --; VI-DAG: s_mul_i32 -- -- --; GCN: buffer_store_dwordx4 - define amdgpu_kernel void @s_mul_i128(ptr addrspace(1) %out, [8 x i32], i128 %a, [8 x i32], i128 %b) nounwind #0 { -+; SI-LABEL: s_mul_i128: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x13 -+; SI-NEXT: s_load_dwordx4 s[8:11], s[0:1], 0x1f -+; SI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x9 -+; SI-NEXT: s_mov_b32 s3, 0xf000 -+; SI-NEXT: s_mov_b32 s2, -1 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: v_mov_b32_e32 v0, s6 -+; SI-NEXT: v_mul_hi_u32 v0, s8, v0 -+; SI-NEXT: v_mov_b32_e32 v1, s4 -+; SI-NEXT: v_mul_hi_u32 v1, s10, v1 -+; SI-NEXT: s_mul_i32 s7, s8, s7 -+; SI-NEXT: v_add_i32_e32 v0, vcc, s7, v0 -+; SI-NEXT: s_mul_i32 s7, s10, s5 -+; SI-NEXT: s_mul_i32 s12, s9, s6 -+; SI-NEXT: s_mul_i32 s6, s8, s6 -+; SI-NEXT: v_add_i32_e32 v1, vcc, s7, v1 -+; SI-NEXT: s_mul_i32 s7, s11, s4 -+; SI-NEXT: v_add_i32_e32 v0, vcc, s12, v0 -+; SI-NEXT: v_add_i32_e32 v1, vcc, s7, v1 -+; SI-NEXT: s_mul_i32 s7, s10, s4 -+; SI-NEXT: v_mov_b32_e32 v2, s6 -+; SI-NEXT: v_add_i32_e32 v2, vcc, s7, v2 -+; SI-NEXT: v_addc_u32_e32 v0, vcc, v1, v0, vcc -+; SI-NEXT: v_mov_b32_e32 v1, s8 -+; SI-NEXT: v_mul_hi_u32 v5, s4, v1 -+; SI-NEXT: v_mul_hi_u32 v1, s5, v1 -+; SI-NEXT: v_mov_b32_e32 v3, s9 -+; SI-NEXT: v_mul_hi_u32 v4, s4, v3 -+; SI-NEXT: s_mul_i32 s7, s5, s8 -+; SI-NEXT: v_add_i32_e32 v5, vcc, s7, v5 -+; SI-NEXT: s_mul_i32 s6, s4, s9 -+; SI-NEXT: v_addc_u32_e32 v6, vcc, 0, v1, vcc -+; SI-NEXT: v_add_i32_e32 v1, vcc, s6, v5 -+; SI-NEXT: v_mul_hi_u32 v3, s5, v3 -+; SI-NEXT: v_addc_u32_e32 v4, vcc, 0, v4, vcc -+; SI-NEXT: v_add_i32_e32 v4, vcc, v6, v4 -+; SI-NEXT: s_mul_i32 s5, s5, s9 -+; SI-NEXT: v_addc_u32_e64 v5, s[6:7], 0, 0, vcc -+; SI-NEXT: v_add_i32_e32 v4, vcc, s5, v4 -+; SI-NEXT: v_addc_u32_e32 v3, vcc, v3, v5, vcc -+; SI-NEXT: v_add_i32_e32 v2, vcc, v4, v2 -+; SI-NEXT: s_mul_i32 s4, s4, s8 -+; SI-NEXT: v_addc_u32_e32 v3, vcc, v3, v0, vcc -+; SI-NEXT: v_mov_b32_e32 v0, s4 -+; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: s_mul_i128: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x4c -+; VI-NEXT: s_load_dwordx4 s[8:11], s[0:1], 0x7c -+; VI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x24 -+; VI-NEXT: v_mov_b32_e32 v5, 0 -+; VI-NEXT: s_mov_b32 s3, 0xf000 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: v_mov_b32_e32 v0, s6 -+; VI-NEXT: v_mad_u64_u32 v[2:3], s[12:13], s8, v0, 0 -+; VI-NEXT: s_mul_i32 s7, s8, s7 -+; VI-NEXT: v_mov_b32_e32 v6, s8 -+; VI-NEXT: v_add_u32_e32 v3, vcc, s7, v3 -+; VI-NEXT: s_mul_i32 s12, s9, s6 -+; VI-NEXT: v_mad_u64_u32 v[0:1], s[6:7], s4, v6, 0 -+; VI-NEXT: v_add_u32_e32 v3, vcc, s12, v3 -+; VI-NEXT: v_mov_b32_e32 v4, v1 -+; VI-NEXT: v_mad_u64_u32 v[6:7], s[6:7], s5, v6, v[4:5] -+; VI-NEXT: v_mov_b32_e32 v8, s4 -+; VI-NEXT: v_mad_u64_u32 v[1:2], s[6:7], s10, v8, v[2:3] -+; VI-NEXT: v_mov_b32_e32 v3, v7 -+; VI-NEXT: v_mov_b32_e32 v7, v5 -+; VI-NEXT: v_mov_b32_e32 v8, s9 -+; VI-NEXT: v_mad_u64_u32 v[4:5], s[6:7], s4, v8, v[6:7] -+; VI-NEXT: s_mul_i32 s8, s11, s4 -+; VI-NEXT: v_add_u32_e32 v6, vcc, s8, v2 -+; VI-NEXT: v_mov_b32_e32 v2, v5 -+; VI-NEXT: v_add_u32_e32 v2, vcc, v3, v2 -+; VI-NEXT: v_addc_u32_e64 v3, s[6:7], 0, 0, vcc -+; VI-NEXT: s_mul_i32 s8, s10, s5 -+; VI-NEXT: v_mad_u64_u32 v[2:3], s[4:5], s5, v8, v[2:3] -+; VI-NEXT: v_add_u32_e32 v5, vcc, s8, v6 -+; VI-NEXT: v_add_u32_e32 v2, vcc, v2, v1 -+; VI-NEXT: s_mov_b32 s2, -1 -+; VI-NEXT: v_addc_u32_e32 v3, vcc, v3, v5, vcc -+; VI-NEXT: v_mov_b32_e32 v1, v4 -+; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: s_mul_i128: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dwordx4 s[8:11], s[0:1], 0x4c -+; GFX9-NEXT: s_load_dwordx4 s[12:15], s[0:1], 0x7c -+; GFX9-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x24 -+; GFX9-NEXT: s_mov_b32 s7, 0xf000 -+; GFX9-NEXT: s_mov_b32 s6, -1 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: s_mul_i32 s0, s12, s11 -+; GFX9-NEXT: s_mul_hi_u32 s1, s12, s10 -+; GFX9-NEXT: s_mul_i32 s2, s14, s9 -+; GFX9-NEXT: s_mul_hi_u32 s3, s14, s8 -+; GFX9-NEXT: s_add_i32 s0, s1, s0 -+; GFX9-NEXT: s_mul_i32 s1, s13, s10 -+; GFX9-NEXT: s_add_i32 s2, s3, s2 -+; GFX9-NEXT: s_mul_i32 s3, s15, s8 -+; GFX9-NEXT: s_add_i32 s0, s0, s1 -+; GFX9-NEXT: s_mul_i32 s1, s12, s10 -+; GFX9-NEXT: s_add_i32 s2, s2, s3 -+; GFX9-NEXT: s_mul_i32 s3, s14, s8 -+; GFX9-NEXT: s_add_u32 s3, s3, s1 -+; GFX9-NEXT: s_addc_u32 s2, s2, s0 -+; GFX9-NEXT: s_mul_i32 s14, s9, s12 -+; GFX9-NEXT: s_mul_hi_u32 s15, s8, s12 -+; GFX9-NEXT: s_mul_hi_u32 s11, s9, s12 -+; GFX9-NEXT: s_add_u32 s14, s14, s15 -+; GFX9-NEXT: s_mul_i32 s1, s8, s13 -+; GFX9-NEXT: s_addc_u32 s11, s11, 0 -+; GFX9-NEXT: s_mul_hi_u32 s10, s8, s13 -+; GFX9-NEXT: s_add_u32 s1, s1, s14 -+; GFX9-NEXT: s_addc_u32 s10, s10, 0 -+; GFX9-NEXT: s_add_u32 s10, s11, s10 -+; GFX9-NEXT: s_addc_u32 s11, 0, 0 -+; GFX9-NEXT: s_mul_hi_u32 s14, s9, s13 -+; GFX9-NEXT: s_mul_i32 s9, s9, s13 -+; GFX9-NEXT: s_add_u32 s9, s9, s10 -+; GFX9-NEXT: s_addc_u32 s10, s14, s11 -+; GFX9-NEXT: s_mov_b32 s0, 0 -+; GFX9-NEXT: s_add_u32 s9, s9, s3 -+; GFX9-NEXT: s_addc_u32 s10, s10, s2 -+; GFX9-NEXT: s_mul_i32 s2, s8, s12 -+; GFX9-NEXT: s_mov_b32 s3, s0 -+; GFX9-NEXT: s_or_b64 s[0:1], s[2:3], s[0:1] -+; GFX9-NEXT: v_mov_b32_e32 v0, s0 -+; GFX9-NEXT: v_mov_b32_e32 v1, s1 -+; GFX9-NEXT: v_mov_b32_e32 v2, s9 -+; GFX9-NEXT: v_mov_b32_e32 v3, s10 -+; GFX9-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0 -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: s_mul_i128: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_clause 0x1 -+; GFX10-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x4c -+; GFX10-NEXT: s_load_dwordx4 s[8:11], s[0:1], 0x7c -+; GFX10-NEXT: s_mov_b32 s2, 0 -+; GFX10-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x24 -+; GFX10-NEXT: s_mov_b32 s13, s2 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_mul_i32 s3, s8, s7 -+; GFX10-NEXT: s_mul_hi_u32 s7, s8, s6 -+; GFX10-NEXT: s_mul_i32 s14, s10, s5 -+; GFX10-NEXT: s_mul_hi_u32 s15, s10, s4 -+; GFX10-NEXT: s_mul_i32 s12, s9, s6 -+; GFX10-NEXT: s_mul_i32 s11, s11, s4 -+; GFX10-NEXT: s_add_i32 s3, s7, s3 -+; GFX10-NEXT: s_add_i32 s7, s15, s14 -+; GFX10-NEXT: s_mul_i32 s6, s8, s6 -+; GFX10-NEXT: s_mul_i32 s10, s10, s4 -+; GFX10-NEXT: s_add_i32 s3, s3, s12 -+; GFX10-NEXT: s_add_i32 s7, s7, s11 -+; GFX10-NEXT: s_mul_i32 s19, s5, s8 -+; GFX10-NEXT: s_mul_hi_u32 s20, s4, s8 -+; GFX10-NEXT: s_add_u32 s6, s10, s6 -+; GFX10-NEXT: s_mul_hi_u32 s18, s5, s8 -+; GFX10-NEXT: s_addc_u32 s7, s7, s3 -+; GFX10-NEXT: s_mul_i32 s17, s4, s9 -+; GFX10-NEXT: s_add_u32 s3, s19, s20 -+; GFX10-NEXT: s_mul_hi_u32 s16, s4, s9 -+; GFX10-NEXT: s_mul_hi_u32 s21, s5, s9 -+; GFX10-NEXT: s_mul_i32 s5, s5, s9 -+; GFX10-NEXT: s_addc_u32 s9, s18, 0 -+; GFX10-NEXT: s_add_u32 s3, s17, s3 -+; GFX10-NEXT: s_addc_u32 s10, s16, 0 -+; GFX10-NEXT: s_mul_i32 s12, s4, s8 -+; GFX10-NEXT: s_add_u32 s4, s9, s10 -+; GFX10-NEXT: s_addc_u32 s8, 0, 0 -+; GFX10-NEXT: s_add_u32 s4, s5, s4 -+; GFX10-NEXT: s_addc_u32 s5, s21, s8 -+; GFX10-NEXT: s_add_u32 s4, s4, s6 -+; GFX10-NEXT: s_addc_u32 s5, s5, s7 -+; GFX10-NEXT: s_or_b64 s[2:3], s[12:13], s[2:3] -+; GFX10-NEXT: v_mov_b32_e32 v2, s4 -+; GFX10-NEXT: v_mov_b32_e32 v0, s2 -+; GFX10-NEXT: v_mov_b32_e32 v1, s3 -+; GFX10-NEXT: v_mov_b32_e32 v3, s5 -+; GFX10-NEXT: s_mov_b32 s3, 0x31016000 -+; GFX10-NEXT: s_mov_b32 s2, -1 -+; GFX10-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: s_mul_i128: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_clause 0x2 -+; GFX11-NEXT: s_load_b128 s[4:7], s[0:1], 0x4c -+; GFX11-NEXT: s_load_b128 s[8:11], s[0:1], 0x7c -+; GFX11-NEXT: s_load_b64 s[0:1], s[0:1], 0x24 -+; GFX11-NEXT: s_mov_b32 s2, 0 -+; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1) -+; GFX11-NEXT: s_mov_b32 s13, s2 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_mul_i32 s3, s8, s7 -+; GFX11-NEXT: s_mul_hi_u32 s7, s8, s6 -+; GFX11-NEXT: s_mul_i32 s14, s10, s5 -+; GFX11-NEXT: s_mul_hi_u32 s15, s10, s4 -+; GFX11-NEXT: s_mul_i32 s12, s9, s6 -+; GFX11-NEXT: s_mul_i32 s11, s11, s4 -+; GFX11-NEXT: s_add_i32 s3, s7, s3 -+; GFX11-NEXT: s_add_i32 s7, s15, s14 -+; GFX11-NEXT: s_mul_i32 s6, s8, s6 -+; GFX11-NEXT: s_mul_i32 s10, s10, s4 -+; GFX11-NEXT: s_add_i32 s3, s3, s12 -+; GFX11-NEXT: s_add_i32 s7, s7, s11 -+; GFX11-NEXT: s_mul_i32 s19, s5, s8 -+; GFX11-NEXT: s_mul_hi_u32 s20, s4, s8 -+; GFX11-NEXT: s_add_u32 s6, s10, s6 -+; GFX11-NEXT: s_mul_hi_u32 s18, s5, s8 -+; GFX11-NEXT: s_addc_u32 s7, s7, s3 -+; GFX11-NEXT: s_mul_i32 s17, s4, s9 -+; GFX11-NEXT: s_add_u32 s3, s19, s20 -+; GFX11-NEXT: s_mul_hi_u32 s16, s4, s9 -+; GFX11-NEXT: s_mul_hi_u32 s21, s5, s9 -+; GFX11-NEXT: s_mul_i32 s5, s5, s9 -+; GFX11-NEXT: s_addc_u32 s9, s18, 0 -+; GFX11-NEXT: s_add_u32 s3, s17, s3 -+; GFX11-NEXT: s_addc_u32 s10, s16, 0 -+; GFX11-NEXT: s_mul_i32 s12, s4, s8 -+; GFX11-NEXT: s_add_u32 s4, s9, s10 -+; GFX11-NEXT: s_addc_u32 s8, 0, 0 -+; GFX11-NEXT: s_add_u32 s4, s5, s4 -+; GFX11-NEXT: s_addc_u32 s5, s21, s8 -+; GFX11-NEXT: s_add_u32 s4, s4, s6 -+; GFX11-NEXT: s_addc_u32 s5, s5, s7 -+; GFX11-NEXT: s_or_b64 s[2:3], s[12:13], s[2:3] -+; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1) -+; GFX11-NEXT: v_dual_mov_b32 v2, s4 :: v_dual_mov_b32 v1, s3 -+; GFX11-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v3, s5 -+; GFX11-NEXT: s_mov_b32 s3, 0x31016000 -+; GFX11-NEXT: s_mov_b32 s2, -1 -+; GFX11-NEXT: buffer_store_b128 v[0:3], off, s[0:3], 0 -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: s_mul_i128: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU 41, @4, KC0[CB0:0-32], KC1[] -+; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XYZW, T1.X, 1 -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: ALU clause starting at 4: -+; EG-NEXT: MULLO_INT * T0.X, KC0[5].X, KC0[8].X, -+; EG-NEXT: MULHI * T0.Y, KC0[5].X, KC0[8].X, -+; EG-NEXT: MULLO_INT * T0.Z, KC0[8].Y, KC0[4].W, -+; EG-NEXT: MULLO_INT * T0.W, KC0[8].X, KC0[5].Y, -+; EG-NEXT: MULHI * T1.X, KC0[5].X, KC0[7].W, -+; EG-NEXT: MULHI * T1.Y, KC0[4].W, KC0[8].X, -+; EG-NEXT: MULHI * T1.Z, KC0[8].Y, KC0[4].W, -+; EG-NEXT: MULLO_INT * T1.W, KC0[8].Y, KC0[5].X, -+; EG-NEXT: MULHI * T2.X, KC0[7].W, KC0[5].Y, -+; EG-NEXT: MULLO_INT * T2.Y, KC0[5].X, KC0[7].W, -+; EG-NEXT: MULHI * T2.Z, KC0[4].W, KC0[7].W, -+; EG-NEXT: ADD_INT T2.W, T2.Y, PS, -+; EG-NEXT: MULLO_INT * T3.X, KC0[4].W, KC0[8].X, -+; EG-NEXT: ADDC_UINT T2.Z, T2.Y, T2.Z, -+; EG-NEXT: ADDC_UINT T3.W, PS, PV.W, -+; EG-NEXT: MULLO_INT * T2.Y, KC0[7].W, KC0[5].Z, -+; EG-NEXT: ADD_INT T2.X, T2.X, PS, -+; EG-NEXT: ADD_INT T2.Y, T1.Z, T1.W, -+; EG-NEXT: ADD_INT T1.Z, T1.Y, PV.W, -+; EG-NEXT: ADD_INT T1.W, T1.X, PV.Z, BS:VEC_120/SCL_212 -+; EG-NEXT: MULLO_INT * T1.X, KC0[8].Z, KC0[4].W, -+; EG-NEXT: ADD_INT T4.X, PV.W, PV.Z, -+; EG-NEXT: ADDC_UINT T1.Y, PV.W, PV.Z, -+; EG-NEXT: ADD_INT T1.Z, PV.Y, PS, -+; EG-NEXT: ADD_INT T0.W, PV.X, T0.W, -+; EG-NEXT: MULLO_INT * T1.X, KC0[7].W, KC0[5].Y, -+; EG-NEXT: ADD_INT T2.Y, PV.Z, PV.W, -+; EG-NEXT: ADDC_UINT T1.Z, T0.Z, PS, -+; EG-NEXT: ADD_INT T0.W, T0.Y, PV.Y, -+; EG-NEXT: ADDC_UINT * T1.W, T0.X, PV.X, -+; EG-NEXT: ADD_INT T0.Y, T0.X, T4.X, -+; EG-NEXT: ADD_INT T0.Z, T0.Z, T1.X, BS:VEC_021/SCL_122 -+; EG-NEXT: ADD_INT T0.W, PV.W, PS, -+; EG-NEXT: ADD_INT * T1.W, PV.Y, PV.Z, -+; EG-NEXT: ADD_INT T0.W, PV.W, PS, -+; EG-NEXT: ADDC_UINT * T1.W, PV.Y, PV.Z, -+; EG-NEXT: ADD_INT * T0.W, PV.W, PS, -+; EG-NEXT: ADD_INT * T0.Z, T0.Y, T0.Z, -+; EG-NEXT: ADD_INT * T0.Y, T3.X, T2.W, -+; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x, -+; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00) -+; EG-NEXT: MULLO_INT * T0.X, KC0[4].W, KC0[7].W, -+entry: - %mul = mul i128 %a, %b - store i128 %mul, ptr addrspace(1) %out - ret void - } - --; FUNC-LABEL: {{^}}v_mul_i128: --; GCN: {{buffer|flat}}_load_dwordx4 --; GCN: {{buffer|flat}}_load_dwordx4 -- --; SI-DAG: v_mul_lo_u32 --; SI-DAG: v_mul_hi_u32 --; SI-DAG: v_mul_hi_u32 --; SI-DAG: v_mul_lo_u32 --; SI-DAG: v_mul_hi_u32 --; SI-DAG: v_mul_hi_u32 --; SI-DAG: v_mul_lo_u32 --; SI-DAG: v_mul_lo_u32 --; SI-DAG: v_add_i32_e32 -- --; SI-DAG: v_mul_hi_u32 --; SI-DAG: v_mul_lo_u32 --; SI-DAG: v_mul_hi_u32 --; SI-DAG: v_mul_lo_u32 --; SI-DAG: v_mul_lo_u32 --; SI-DAG: v_mul_lo_u32 --; SI-DAG: v_mul_lo_u32 --; SI-DAG: v_mul_lo_u32 -- --; VI-DAG: v_mad_u64_u32 --; VI-DAG: v_mad_u64_u32 --; VI-DAG: v_mad_u64_u32 --; VI-DAG: v_mad_u64_u32 --; VI-DAG: v_mad_u64_u32 --; VI-DAG: v_mad_u64_u32 --; VI-DAG: v_mul_lo_u32 --; VI-DAG: v_mul_lo_u32 --; VI-DAG: v_mul_lo_u32 -- --; GCN: {{buffer|flat}}_store_dwordx4 - define amdgpu_kernel void @v_mul_i128(ptr addrspace(1) %out, ptr addrspace(1) %aptr, ptr addrspace(1) %bptr) #0 { -+; SI-LABEL: v_mul_i128: -+; SI: ; %bb.0: ; %entry -+; SI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0xb -+; SI-NEXT: s_mov_b32 s7, 0xf000 -+; SI-NEXT: s_mov_b32 s6, 0 -+; SI-NEXT: v_lshlrev_b32_e32 v8, 4, v0 -+; SI-NEXT: v_mov_b32_e32 v9, 0 -+; SI-NEXT: s_waitcnt lgkmcnt(0) -+; SI-NEXT: s_mov_b64 s[4:5], s[0:1] -+; SI-NEXT: s_mov_b64 s[0:1], s[2:3] -+; SI-NEXT: s_mov_b64 s[2:3], s[6:7] -+; SI-NEXT: buffer_load_dwordx4 v[0:3], v[8:9], s[4:7], 0 addr64 -+; SI-NEXT: buffer_load_dwordx4 v[4:7], v[8:9], s[0:3], 0 addr64 -+; SI-NEXT: s_waitcnt vmcnt(0) -+; SI-NEXT: v_mul_lo_u32 v3, v4, v3 -+; SI-NEXT: v_mul_hi_u32 v10, v4, v2 -+; SI-NEXT: v_mul_lo_u32 v12, v6, v1 -+; SI-NEXT: v_mul_hi_u32 v13, v6, v0 -+; SI-NEXT: v_mul_lo_u32 v17, v1, v4 -+; SI-NEXT: v_mul_hi_u32 v18, v0, v4 -+; SI-NEXT: v_mul_lo_u32 v11, v5, v2 -+; SI-NEXT: v_mul_lo_u32 v7, v7, v0 -+; SI-NEXT: v_mul_hi_u32 v16, v1, v4 -+; SI-NEXT: v_mul_lo_u32 v15, v0, v5 -+; SI-NEXT: v_mul_hi_u32 v14, v0, v5 -+; SI-NEXT: v_mul_hi_u32 v19, v1, v5 -+; SI-NEXT: v_mul_lo_u32 v5, v1, v5 -+; SI-NEXT: v_add_i32_e32 v1, vcc, v10, v3 -+; SI-NEXT: v_add_i32_e32 v3, vcc, v13, v12 -+; SI-NEXT: v_mul_lo_u32 v2, v4, v2 -+; SI-NEXT: v_mul_lo_u32 v6, v6, v0 -+; SI-NEXT: v_mul_lo_u32 v0, v0, v4 -+; SI-NEXT: v_add_i32_e32 v4, vcc, v17, v18 -+; SI-NEXT: v_addc_u32_e32 v10, vcc, 0, v16, vcc -+; SI-NEXT: v_add_i32_e32 v11, vcc, v1, v11 -+; SI-NEXT: v_add_i32_e32 v3, vcc, v3, v7 -+; SI-NEXT: v_add_i32_e32 v1, vcc, v15, v4 -+; SI-NEXT: v_addc_u32_e32 v4, vcc, 0, v14, vcc -+; SI-NEXT: v_add_i32_e32 v2, vcc, v6, v2 -+; SI-NEXT: v_addc_u32_e32 v3, vcc, v3, v11, vcc -+; SI-NEXT: v_add_i32_e32 v4, vcc, v10, v4 -+; SI-NEXT: v_addc_u32_e64 v6, s[4:5], 0, 0, vcc -+; SI-NEXT: v_add_i32_e32 v4, vcc, v5, v4 -+; SI-NEXT: v_addc_u32_e32 v5, vcc, v19, v6, vcc -+; SI-NEXT: v_add_i32_e32 v2, vcc, v4, v2 -+; SI-NEXT: v_addc_u32_e32 v3, vcc, v5, v3, vcc -+; SI-NEXT: buffer_store_dwordx4 v[0:3], v[8:9], s[0:3], 0 addr64 -+; SI-NEXT: s_endpgm -+; -+; VI-LABEL: v_mul_i128: -+; VI: ; %bb.0: ; %entry -+; VI-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x2c -+; VI-NEXT: v_lshlrev_b32_e32 v2, 4, v0 -+; VI-NEXT: v_mov_b32_e32 v11, 0 -+; VI-NEXT: s_waitcnt lgkmcnt(0) -+; VI-NEXT: v_mov_b32_e32 v1, s1 -+; VI-NEXT: v_add_u32_e32 v0, vcc, s0, v2 -+; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v1, vcc -+; VI-NEXT: v_mov_b32_e32 v3, s3 -+; VI-NEXT: v_add_u32_e32 v8, vcc, s2, v2 -+; VI-NEXT: v_addc_u32_e32 v9, vcc, 0, v3, vcc -+; VI-NEXT: flat_load_dwordx4 v[0:3], v[0:1] -+; VI-NEXT: flat_load_dwordx4 v[4:7], v[8:9] -+; VI-NEXT: s_waitcnt vmcnt(0) -+; VI-NEXT: v_mul_lo_u32 v10, v4, v3 -+; VI-NEXT: v_mad_u64_u32 v[12:13], s[0:1], v4, v2, 0 -+; VI-NEXT: v_mul_lo_u32 v14, v5, v2 -+; VI-NEXT: v_mad_u64_u32 v[2:3], s[0:1], v0, v4, 0 -+; VI-NEXT: v_mul_lo_u32 v15, v7, v0 -+; VI-NEXT: v_add_u32_e32 v7, vcc, v13, v10 -+; VI-NEXT: v_mov_b32_e32 v10, v3 -+; VI-NEXT: v_mad_u64_u32 v[3:4], s[0:1], v1, v4, v[10:11] -+; VI-NEXT: v_add_u32_e32 v13, vcc, v7, v14 -+; VI-NEXT: v_mov_b32_e32 v7, v4 -+; VI-NEXT: v_mov_b32_e32 v4, v11 -+; VI-NEXT: v_mad_u64_u32 v[12:13], s[0:1], v6, v0, v[12:13] -+; VI-NEXT: v_mad_u64_u32 v[3:4], s[0:1], v0, v5, v[3:4] -+; VI-NEXT: v_add_u32_e32 v11, vcc, v15, v13 -+; VI-NEXT: v_mov_b32_e32 v0, v4 -+; VI-NEXT: v_mul_lo_u32 v10, v6, v1 -+; VI-NEXT: v_add_u32_e32 v6, vcc, v7, v0 -+; VI-NEXT: v_addc_u32_e64 v7, s[0:1], 0, 0, vcc -+; VI-NEXT: v_mad_u64_u32 v[0:1], s[0:1], v1, v5, v[6:7] -+; VI-NEXT: v_add_u32_e32 v5, vcc, v10, v11 -+; VI-NEXT: v_add_u32_e32 v4, vcc, v0, v12 -+; VI-NEXT: v_addc_u32_e32 v5, vcc, v1, v5, vcc -+; VI-NEXT: flat_store_dwordx4 v[8:9], v[2:5] -+; VI-NEXT: s_endpgm -+; -+; GFX9-LABEL: v_mul_i128: -+; GFX9: ; %bb.0: ; %entry -+; GFX9-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x2c -+; GFX9-NEXT: v_lshlrev_b32_e32 v13, 4, v0 -+; GFX9-NEXT: v_mov_b32_e32 v10, 0 -+; GFX9-NEXT: s_waitcnt lgkmcnt(0) -+; GFX9-NEXT: global_load_dwordx4 v[0:3], v13, s[0:1] -+; GFX9-NEXT: global_load_dwordx4 v[4:7], v13, s[2:3] -+; GFX9-NEXT: s_waitcnt vmcnt(0) -+; GFX9-NEXT: v_mad_u64_u32 v[8:9], s[0:1], v0, v4, 0 -+; GFX9-NEXT: v_mul_lo_u32 v14, v5, v2 -+; GFX9-NEXT: v_mul_lo_u32 v15, v4, v3 -+; GFX9-NEXT: v_mad_u64_u32 v[11:12], s[0:1], v1, v4, v[9:10] -+; GFX9-NEXT: v_mad_u64_u32 v[2:3], s[0:1], v4, v2, 0 -+; GFX9-NEXT: v_mov_b32_e32 v4, v12 -+; GFX9-NEXT: v_mov_b32_e32 v12, v10 -+; GFX9-NEXT: v_mad_u64_u32 v[9:10], s[0:1], v0, v5, v[11:12] -+; GFX9-NEXT: v_add3_u32 v3, v3, v15, v14 -+; GFX9-NEXT: v_mul_lo_u32 v17, v7, v0 -+; GFX9-NEXT: v_mad_u64_u32 v[2:3], s[0:1], v6, v0, v[2:3] -+; GFX9-NEXT: v_mov_b32_e32 v0, v10 -+; GFX9-NEXT: v_mul_lo_u32 v16, v6, v1 -+; GFX9-NEXT: v_add_co_u32_e32 v6, vcc, v4, v0 -+; GFX9-NEXT: v_addc_co_u32_e64 v7, s[0:1], 0, 0, vcc -+; GFX9-NEXT: v_mad_u64_u32 v[0:1], s[0:1], v1, v5, v[6:7] -+; GFX9-NEXT: v_add3_u32 v3, v17, v3, v16 -+; GFX9-NEXT: v_add_co_u32_e32 v10, vcc, v0, v2 -+; GFX9-NEXT: v_addc_co_u32_e32 v11, vcc, v1, v3, vcc -+; GFX9-NEXT: global_store_dwordx4 v13, v[8:11], s[2:3] -+; GFX9-NEXT: s_endpgm -+; -+; GFX10-LABEL: v_mul_i128: -+; GFX10: ; %bb.0: ; %entry -+; GFX10-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x2c -+; GFX10-NEXT: v_lshlrev_b32_e32 v14, 4, v0 -+; GFX10-NEXT: v_mov_b32_e32 v10, 0 -+; GFX10-NEXT: s_waitcnt lgkmcnt(0) -+; GFX10-NEXT: s_clause 0x1 -+; GFX10-NEXT: global_load_dwordx4 v[0:3], v14, s[0:1] -+; GFX10-NEXT: global_load_dwordx4 v[4:7], v14, s[2:3] -+; GFX10-NEXT: s_waitcnt vmcnt(0) -+; GFX10-NEXT: v_mad_u64_u32 v[8:9], s0, v0, v4, 0 -+; GFX10-NEXT: v_mul_lo_u32 v7, v7, v0 -+; GFX10-NEXT: v_mad_u64_u32 v[11:12], s0, v1, v4, v[9:10] -+; GFX10-NEXT: v_mov_b32_e32 v9, v12 -+; GFX10-NEXT: v_mov_b32_e32 v12, v10 -+; GFX10-NEXT: v_mul_lo_u32 v10, v5, v2 -+; GFX10-NEXT: v_mad_u64_u32 v[12:13], s0, v0, v5, v[11:12] -+; GFX10-NEXT: v_mul_lo_u32 v11, v4, v3 -+; GFX10-NEXT: v_mad_u64_u32 v[2:3], s0, v4, v2, 0 -+; GFX10-NEXT: v_mov_b32_e32 v4, v13 -+; GFX10-NEXT: v_mul_lo_u32 v13, v6, v1 -+; GFX10-NEXT: v_add3_u32 v3, v3, v11, v10 -+; GFX10-NEXT: v_add_co_u32 v9, s0, v9, v4 -+; GFX10-NEXT: v_add_co_ci_u32_e64 v10, s0, 0, 0, s0 -+; GFX10-NEXT: v_mad_u64_u32 v[2:3], s0, v6, v0, v[2:3] -+; GFX10-NEXT: v_mad_u64_u32 v[0:1], s0, v1, v5, v[9:10] -+; GFX10-NEXT: v_mov_b32_e32 v9, v12 -+; GFX10-NEXT: v_add3_u32 v3, v7, v3, v13 -+; GFX10-NEXT: v_add_co_u32 v10, vcc_lo, v0, v2 -+; GFX10-NEXT: v_add_co_ci_u32_e32 v11, vcc_lo, v1, v3, vcc_lo -+; GFX10-NEXT: global_store_dwordx4 v14, v[8:11], s[2:3] -+; GFX10-NEXT: s_endpgm -+; -+; GFX11-LABEL: v_mul_i128: -+; GFX11: ; %bb.0: ; %entry -+; GFX11-NEXT: s_load_b128 s[0:3], s[0:1], 0x2c -+; GFX11-NEXT: v_lshlrev_b32_e32 v16, 4, v0 -+; GFX11-NEXT: v_mov_b32_e32 v10, 0 -+; GFX11-NEXT: s_waitcnt lgkmcnt(0) -+; GFX11-NEXT: s_clause 0x1 -+; GFX11-NEXT: global_load_b128 v[0:3], v16, s[0:1] -+; GFX11-NEXT: global_load_b128 v[4:7], v16, s[2:3] -+; GFX11-NEXT: s_waitcnt vmcnt(0) -+; GFX11-NEXT: v_mad_u64_u32 v[8:9], null, v0, v4, 0 -+; GFX11-NEXT: v_mul_lo_u32 v15, v5, v2 -+; GFX11-NEXT: v_mul_lo_u32 v3, v4, v3 -+; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1) -+; GFX11-NEXT: v_mad_u64_u32 v[11:12], null, v1, v4, v[9:10] -+; GFX11-NEXT: v_dual_mov_b32 v9, v12 :: v_dual_mov_b32 v12, v10 -+; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_3) | instid1(VALU_DEP_4) -+; GFX11-NEXT: v_mad_u64_u32 v[13:14], null, v0, v5, v[11:12] -+; GFX11-NEXT: v_mad_u64_u32 v[10:11], null, v4, v2, 0 -+; GFX11-NEXT: v_mul_lo_u32 v4, v6, v1 -+; GFX11-NEXT: v_mul_lo_u32 v12, v7, v0 -+; GFX11-NEXT: v_mov_b32_e32 v2, v14 -+; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_2) -+; GFX11-NEXT: v_add3_u32 v11, v11, v3, v15 -+; GFX11-NEXT: v_add_co_u32 v2, s0, v9, v2 -+; GFX11-NEXT: v_mov_b32_e32 v9, v13 -+; GFX11-NEXT: v_add_co_ci_u32_e64 v3, null, 0, 0, s0 -+; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_2) -+; GFX11-NEXT: v_mad_u64_u32 v[14:15], null, v6, v0, v[10:11] -+; GFX11-NEXT: v_mad_u64_u32 v[6:7], null, v1, v5, v[2:3] -+; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2) -+; GFX11-NEXT: v_add3_u32 v0, v12, v15, v4 -+; GFX11-NEXT: v_add_co_u32 v10, vcc_lo, v6, v14 -+; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) -+; GFX11-NEXT: v_add_co_ci_u32_e32 v11, vcc_lo, v7, v0, vcc_lo -+; GFX11-NEXT: global_store_b128 v16, v[8:11], s[2:3] -+; GFX11-NEXT: s_nop 0 -+; GFX11-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS) -+; GFX11-NEXT: s_endpgm -+; -+; EG-LABEL: v_mul_i128: -+; EG: ; %bb.0: ; %entry -+; EG-NEXT: ALU 3, @10, KC0[CB0:0-32], KC1[] -+; EG-NEXT: TEX 1 @6 -+; EG-NEXT: ALU 41, @14, KC0[], KC1[] -+; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XYZW, T1.X, 1 -+; EG-NEXT: CF_END -+; EG-NEXT: PAD -+; EG-NEXT: Fetch clause starting at 6: -+; EG-NEXT: VTX_READ_128 T2.XYZW, T1.X, 0, #1 -+; EG-NEXT: VTX_READ_128 T0.XYZW, T0.X, 0, #1 -+; EG-NEXT: ALU clause starting at 10: -+; EG-NEXT: LSHL * T0.W, T0.X, literal.x, -+; EG-NEXT: 4(5.605194e-45), 0(0.000000e+00) -+; EG-NEXT: ADD_INT T0.X, KC0[2].Z, PV.W, -+; EG-NEXT: ADD_INT * T1.X, KC0[2].W, PV.W, -+; EG-NEXT: ALU clause starting at 14: -+; EG-NEXT: MULLO_INT * T1.Y, T0.Y, T2.Y, -+; EG-NEXT: MULHI * T1.Z, T0.Y, T2.Y, -+; EG-NEXT: MULLO_INT * T1.W, T2.Z, T0.X, -+; EG-NEXT: MULLO_INT * T3.X, T2.Y, T0.Z, -+; EG-NEXT: MULHI * T3.Y, T0.Y, T2.X, -+; EG-NEXT: MULHI * T3.Z, T0.X, T2.Y, -+; EG-NEXT: MULHI * T3.W, T2.Z, T0.X, -+; EG-NEXT: MULLO_INT * T2.Z, T2.Z, T0.Y, -+; EG-NEXT: MULHI * T4.X, T2.X, T0.Z, -+; EG-NEXT: MULLO_INT * T0.Y, T0.Y, T2.X, -+; EG-NEXT: MULHI * T4.Y, T0.X, T2.X, -+; EG-NEXT: ADD_INT T4.W, T0.Y, PS, -+; EG-NEXT: MULLO_INT * T2.Y, T0.X, T2.Y, -+; EG-NEXT: ADDC_UINT T4.Z, T0.Y, T4.Y, -+; EG-NEXT: ADDC_UINT T5.W, PS, PV.W, -+; EG-NEXT: MULLO_INT * T0.Y, T2.X, T0.W, -+; EG-NEXT: ADD_INT T4.X, T4.X, PS, -+; EG-NEXT: ADD_INT T0.Y, T3.W, T2.Z, -+; EG-NEXT: ADD_INT T2.Z, T3.Z, PV.W, -+; EG-NEXT: ADD_INT T0.W, T3.Y, PV.Z, -+; EG-NEXT: MULLO_INT * T2.W, T2.W, T0.X, -+; EG-NEXT: ADD_INT T5.X, PV.W, PV.Z, -+; EG-NEXT: ADDC_UINT T3.Y, PV.W, PV.Z, -+; EG-NEXT: ADD_INT T2.Z, PV.Y, PS, -+; EG-NEXT: ADD_INT T0.W, PV.X, T3.X, -+; EG-NEXT: MULLO_INT * T0.Y, T2.X, T0.Z, -+; EG-NEXT: ADD_INT T4.Y, PV.Z, PV.W, -+; EG-NEXT: ADDC_UINT T0.Z, T1.W, PS, -+; EG-NEXT: ADD_INT T0.W, T1.Z, PV.Y, -+; EG-NEXT: ADDC_UINT * T2.W, T1.Y, PV.X, -+; EG-NEXT: ADD_INT T1.Y, T1.Y, T5.X, -+; EG-NEXT: ADD_INT T1.Z, T1.W, T0.Y, -+; EG-NEXT: ADD_INT T0.W, PV.W, PS, -+; EG-NEXT: ADD_INT * T1.W, PV.Y, PV.Z, -+; EG-NEXT: ADD_INT T0.W, PV.W, PS, -+; EG-NEXT: ADDC_UINT * T1.W, PV.Y, PV.Z, -+; EG-NEXT: ADD_INT * T0.W, PV.W, PS, -+; EG-NEXT: ADD_INT * T0.Z, T1.Y, T1.Z, -+; EG-NEXT: ADD_INT * T0.Y, T2.Y, T4.W, -+; EG-NEXT: LSHR T1.X, T1.X, literal.x, -+; EG-NEXT: MULLO_INT * T0.X, T0.X, T2.X, -+; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00) -+entry: - %tid = call i32 @llvm.amdgcn.workitem.id.x() - %gep.a = getelementptr inbounds i128, ptr addrspace(1) %aptr, i32 %tid - %gep.b = getelementptr inbounds i128, ptr addrspace(1) %bptr, i32 %tid --- -2.31.1 - 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 new file mode 100644 index 00000000000..0107a2b1755 --- /dev/null +++ b/repos/spack_repo/builtin/packages/llvm_amdgpu/002-Add-rpath-to-hiprt.patch @@ -0,0 +1,13 @@ +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/adjust-openmp-bitcode-directory-for-llvm-link.patch b/repos/spack_repo/builtin/packages/llvm_amdgpu/adjust-openmp-bitcode-directory-for-llvm-link.patch deleted file mode 100644 index ca5e29457ee..00000000000 --- a/repos/spack_repo/builtin/packages/llvm_amdgpu/adjust-openmp-bitcode-directory-for-llvm-link.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 0aecf225347bea7153b848261da51b2b97cc86b6 Mon Sep 17 00:00:00 2001 -From: Renjith Ravindran -Date: Mon, 8 Aug 2022 21:44:11 +0000 -Subject: [PATCH] Adjust openmp bitcode directory for llvm link as llvm 5.2 - have a change where the OpenMP clang toolchain looks for bitcode files in - llvm/bin/../lib instead of llvm/bin/../libdevice - ---- - clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp -index 9115fcf61..ce044712d 100644 ---- a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp -+++ b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp -@@ -179,7 +179,7 @@ const char *AMDGCN::OpenMPLinker::constructLLVMLinkCommand( - getProcessorFromTargetID(getToolChain().getTriple(), TargetID); - - // If device debugging turned on, add specially built bc files -- StringRef libpath = Args.MakeArgString(C.getDriver().Dir + "/../lib"); -+ StringRef libpath = Args.MakeArgString(C.getDriver().Dir + "/../lib/libdevice"); - std::string lib_debug_path = FindDebugInLibraryPath(); - if (!lib_debug_path.empty()) - libpath = lib_debug_path; --- -2.25.1 - diff --git a/repos/spack_repo/builtin/packages/llvm_amdgpu/package.py b/repos/spack_repo/builtin/packages/llvm_amdgpu/package.py index c7a5b2c0158..83733c85fbd 100644 --- a/repos/spack_repo/builtin/packages/llvm_amdgpu/package.py +++ b/repos/spack_repo/builtin/packages/llvm_amdgpu/package.py @@ -18,11 +18,23 @@ class LlvmAmdgpu(CMakePackage, LlvmDetection, CompilerPackage): homepage = "https://github.com/ROCm/llvm-project" git = "https://github.com/ROCm/llvm-project.git" - url = "https://github.com/ROCm/llvm-project/archive/rocm-6.4.1.tar.gz" + url = "https://github.com/ROCm/llvm-project/archive/rocm-6.4.3.tar.gz" tags = ["rocm", "compiler"] - executables = [r"amdclang", r"amdclang\+\+", r"clang.*", "llvm-.*"] - - compiler_wrapper_link_paths = {"c": "rocmcc/amdclang", "cxx": "rocmcc/amdclang++"} + executables = [ + r"amdclang", + r"amdclang\+\+", + r"amdflang", + r"clang.*", + r"flang.*", + "llvm-.*", + "amdldd", + ] + + compiler_wrapper_link_paths = { + "c": "rocmcc/amdclang", + "cxx": "rocmcc/amdclang++", + "fortran": "rocmcc/amdflang", + } stdcxx_libs = ("-lstdc++",) @@ -32,6 +44,15 @@ class LlvmAmdgpu(CMakePackage, LlvmDetection, CompilerPackage): license("Apache-2.0") + version("7.2.3", sha256="6239fa0c72b150cf0a325676264d3030a67389dec4fca7103f563a70c2b70114") + version("7.2.1", sha256="4d3449d758e3f79b336248b0207a394eda04ba5cdd48a4088e135ddf769127fa") + version("7.2.0", sha256="e86138d2a63fbcbdf64668d55573b26ae944d0f0ae5a3f5bb59bf7bdb3124d3f") + version("7.1.1", sha256="d76a16db4a56914383029e241823f7bc2a3d645f2967dd22230f11c11cfe189e") + version("7.1.0", sha256="87f5532b8b653bd18541cdf6e59923cbd340b300d8ec5046d3e4288d9e5195c0") + version("7.0.2", sha256="fd612fa750bebd0c3be0ea642b2cae8ff5c7e00a2280b22b9ea16ee86a11d763") + version("7.0.0", sha256="3d479a2aa615b6bb35cd3521122fbff34188dc0cc52d8b0acda59f9f55198211") + version("6.4.3", sha256="7a484b621d568eef000ee8c4d2d46d589e5682b950f1f410ce7215031f1f3ad7") + version("6.4.2", sha256="9f42cb73d90bd4561686c0366f60f6e58cfd32ff24b094c69e8259fb5d177457") version("6.4.1", sha256="460ad28677092b9eb86ffdc49bcb4d01035e32b4f05161d85f90c9fa80239f50") version("6.4.0", sha256="dca1c145a23f05229d5d646241f9d1d3c5dbf1d745b338ae020eabe33beb965c") version("6.3.3", sha256="4df9aba24e574edf23844c0d2d9dda112811db5c2b08c9428604a21b819eb23d") @@ -48,11 +69,9 @@ class LlvmAmdgpu(CMakePackage, LlvmDetection, CompilerPackage): version("6.0.0", sha256="c673708d413d60ca8606ee75c77e9871b6953c59029c987b92f2f6e85f683626") version("5.7.1", sha256="6b54c422e45ad19c9bf5ab090ec21753e7f7d854ca78132c30eb146657b168eb") version("5.7.0", sha256="4abdf00b297a77c5886cedb37e63acda2ba11cb9f4c0a64e133b05800aadfcf0") - with default_args(deprecated=True): - version("5.6.1", sha256="045e43c0c4a3f4f2f1db9fb603a4f1ea3d56e128147e19ba17909eb57d7f08e5") - version("5.6.0", sha256="e922bd492b54d99e56ed88c81e2009ed6472059a180b10cc56ce1f9bd2d7b6ed") provides("c", "cxx") + provides("fortran", when="@7.0:") variant( "rocm-device-libs", @@ -74,14 +93,14 @@ class LlvmAmdgpu(CMakePackage, LlvmDetection, CompilerPackage): description="Link LLVM tools against the LLVM shared library", ) - provides("libllvm@16", when="@5.6") provides("libllvm@17", when="@5.7:6.1") provides("libllvm@18", when="@6.2:6.3") - provides("libllvm@19", when="@6.4:") + provides("libllvm@19", when="@6.4") + provides("libllvm@20", when="@7.0:7.1") + provides("libllvm@22", when="@7.2") - 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("cmake@3.13.4:", type="build") depends_on("python", type="build") @@ -91,35 +110,36 @@ class LlvmAmdgpu(CMakePackage, LlvmDetection, CompilerPackage): depends_on("libxml2", type="link") depends_on("pkgconfig", type="build") + depends_on("numactl", when="@7.1:") + depends_on("libdrm", when="@7.1:") + depends_on("libelf", when="@7.1:") + depends_on("xxd", when="@7.1:") + # This flavour of LLVM doesn't work on MacOS, so we should ensure that it # isn't used to satisfy any of the libllvm dependencies on the Darwin # platform. conflicts("platform=darwin") - # OpenMP clang toolchain looks for bitcode files in llvm/bin/../lib - # as per 5.2.0 llvm code. It used to be llvm/bin/../lib/libdevice. - # Below patch is to look in the old path. - patch("adjust-openmp-bitcode-directory-for-llvm-link.patch", when="@:5.6") - patch("0001-update-HIP_PATH-deduction-for-5.7.0.patch", when="@5.7.0:6.0") + patch("0001-update-HIP_PATH-deduction-for-5.7.0.patch", when="@:6.0") # Below patch is to set the flag -mcode-object-version=none until # the below fix is available in device-libs release code. # https://github.com/ROCm/ROCm-Device-Libs/commit/f0356159dbdc93ea9e545f9b61a7842f9c881fdf - patch("patch-llvm-5.5.0.patch", when="@5.6:5.7 +rocm-device-libs") + patch("patch-llvm-5.5.0.patch", when="@5.7 +rocm-device-libs") # i1 muls can sometimes happen after SCEV. # They resulted in ISel failures because we were missing the patterns for them. # This fix is targeting 6.1 rocm release. # Need patch until https://github.com/llvm/llvm-project/pull/67291 is merged. - patch("001-Add-i1-mul-patterns.patch", when="@5.6") patch("001-Add-i1-mul-patterns-5.7.patch", when="@5.7") # fixes the libamdhip64.so not found in some ROCm math lib tests patch( "https://github.com/ROCm/llvm-project/commit/444d1d12bbc0269fed5451fb1a9110a049679ca5.patch?full_index=1", sha256="b4774ca19b030890d7b276d12c446400ccf8bc3aa724c7f2e9a73531a7400d69", - when="@6.0:", + 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 @@ -129,6 +149,12 @@ class LlvmAmdgpu(CMakePackage, LlvmDetection, CompilerPackage): when="@:6.2", ) + patch( + "https://github.com/ROCm/llvm-project/commit/97301a5390f841241e5ed88e26c218882e018cc4.patch?full_index=1", + sha256="74471ee320c4d839a433c04b9d35db868f2a13c08183297d1a09ec580ca1d7e9", + when="@7.2", + ) + conflicts("^cmake@3.19.0") # https://github.com/spack/spack/issues/45746 @@ -143,8 +169,6 @@ class LlvmAmdgpu(CMakePackage, LlvmDetection, CompilerPackage): ("6.0.0", "198df4550d4560537ba60ac7af9bde31d59779c8ec5d6309627f77a43ab6ef6f"), ("5.7.1", "703de8403c0bd0d80f37c970a698f10f148daf144d34f982e4484d04f7c7bbef"), ("5.7.0", "0f8780b9098573f1c456bdc84358de924dcf00604330770a383983e1775bf61e"), - ("5.6.1", "f0dfab272ff936225bfa1e9dabeb3c5d12ce08b812bf53ffbddd2ddfac49761c"), - ("5.6.0", "efb5dcdca9b3a9fbe408d494fb4a23e0b78417eb5fa8eebd4a5d226088f28921"), ]: resource( name="rocm-device-libs", @@ -155,6 +179,12 @@ class LlvmAmdgpu(CMakePackage, LlvmDetection, CompilerPackage): ) for d_version, d_shasum in [ + ("7.1.1", "4c5b58afa1e11461954bd005a10ebf29941c120f1d6a7863954597f5eacfc605"), + ("7.1.0", "383fa8e1776c3ee527cdddc9f9ac6f7134c3fcd8758eae9be8bd3a8b7fdca9b1"), + ("7.0.2", "9c2020f7a42d60fe9775865ab58464078007926a3b01f1ca8128557c89e7a566"), + ("7.0.0", "9ea2cbcf343f643ede6e16d82fbd0303771e1978759b2e546d0efc0df3263e4c"), + ("6.4.3", "3b23bed04cbed72304d31d69901eb76afa2099c7ac37f055348dfcda2d25e41a"), + ("6.4.2", "8ad5dbf7cb0f728b8e515f46a41db24ed3b99ca894ccdd9f4d9bac969e9e35bb"), ("6.4.1", "f72d100a46a2dd9f4c870cef156604777f1bdb1841df039d14bf37b19814b9da"), ("6.4.0", "ff740e8c8f2229c6dc47577363f707b1a44ea4254f8ad74f8f0a669998829535"), ("6.3.3", "aa2e30d3d68707d6df4840e954bb08cc13cd312cec1a98a64d97adbe07262f50"), @@ -171,8 +201,6 @@ class LlvmAmdgpu(CMakePackage, LlvmDetection, CompilerPackage): ("6.0.0", "99e8fa1af52d0bf382f28468e1a345af1ff3452c35914a6a7b5eeaf69fc568db"), ("5.7.1", "655e9bfef4b0b6ad3f9b89c934dc0a8377273bb0bccbda6c399ac5d5d2c1c04c"), ("5.7.0", "2c56ec5c78a36f2b847afd4632cb25dbf6ecc58661eb2ae038c2552342e6ce23"), - ("5.6.1", "4de9a57c2092edf9398d671c8a2c60626eb7daf358caf710da70d9c105490221"), - ("5.6.0", "30875d440df9d8481ffb24d87755eae20a0efc1114849a72619ea954f1e9206c"), ]: resource( name="hsa-runtime", @@ -182,13 +210,41 @@ class LlvmAmdgpu(CMakePackage, LlvmDetection, CompilerPackage): when=f"@{d_version}", ) + for d_version, d_shasum in [ + ("7.2.0", "728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638"), + ("7.2.1", "201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f"), + ("7.2.3", "e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b"), + ]: + resource( + name="rocm-systems", + placement="rocm-systems", + url=f"https://github.com/ROCm/rocm-systems/archive/rocm-{d_version}.tar.gz", + sha256=d_shasum, + when=f"@{d_version}", + ) + + for d_version, d_shasum in [ + ("7.1.0", "e6ef3e62eb0626765c55084c9de5fd19f9b216b11577e71ef36046c0081f1102"), + ("7.1.1", "b02e7a2b38c408067f3713ff47fe620059a8fe5f47110ab343116448625b7448"), + ("7.2.0", "b003b608df470d88ad0a636581e134b05b8aee586b0332c545280e6c6366d121"), + ("7.2.1", "eb243267e341581a340c0fd3d9cd8439fa27205e8c5be4ae9452636d222cc928"), + ("7.2.3", "37390b3123249b84192e1db51688b0e9d7b2b893e73a0dae721fc5f6d16e9a29"), + ]: + resource( + name="spirv-llvm-translator", + url=f"https://github.com/ROCm/SPIRV-LLVM-Translator/archive/refs/tags/rocm-{d_version}.tar.gz", + sha256=d_shasum, + expand=True, + destination="llvm/projects", + placement="spirv-llvm-translator", + when=f"@{d_version}", + ) + for d_version, d_shasum in [ ("6.0.2", "737b110d9402509db200ee413fb139a78369cf517453395b96bda52d0aa362b9"), ("6.0.0", "04353d27a512642a5e5339532a39d0aabe44e0964985de37b150a2550385800a"), ("5.7.1", "3b9433b4a0527167c3e9dfc37a3c54e0550744b8d4a8e1be298c8d4bcedfee7c"), ("5.7.0", "e234bcb93d602377cfaaacb59aeac5796edcd842a618162867b7e670c3a2c42c"), - ("5.6.1", "0a85d84619f98be26ca7a32c71f94ed3c4e9866133789eabb451be64ce739300"), - ("5.6.0", "9396a7238b547ee68146c669b10b9d5de8f1d76527c649133c75d8076a185a72"), ]: resource( name="comgr", @@ -200,7 +256,12 @@ class LlvmAmdgpu(CMakePackage, LlvmDetection, CompilerPackage): def _standard_flag(self, *, language, standard): flags = { - "cxx": {"11": "-std=c++11", "14": "-std=c++14", "17": "-std=c++17"}, + "cxx": { + "11": "-std=c++11", + "14": "-std=c++14", + "17": "-std=c++17", + "20": "-std=c++20", + }, "c": {"99": "-std=c99", "11": "-std=c1x"}, } return flags[language][standard] @@ -210,14 +271,8 @@ def cmake_args(self): llvm_runtimes = ["libcxx", "libcxxabi"] args = [ self.define("LLVM_ENABLE_Z3_SOLVER", "OFF"), - self.define("LLLVM_ENABLE_ZLIB", "ON"), + self.define("LLVM_ENABLE_ZLIB", "ON"), self.define("CLANG_DEFAULT_LINKER", "lld"), - self.define("LIBCXX_ENABLE_SHARED", "OFF"), - self.define("LIBCXX_ENABLE_STATIC", "ON"), - self.define("LIBCXX_INSTALL_LIBRARY", "OFF"), - self.define("LIBCXX_INSTALL_HEADERS", "OFF"), - self.define("LIBCXXABI_ENABLE_SHARED", "OFF"), - self.define("LIBCXXABI_ENABLE_STATIC", "ON"), self.define("LIBCXXABI_INSTALL_STATIC_LIBRARY", "OFF"), self.define("LLVM_ENABLE_RTTI", "ON"), self.define("LLVM_AMDGPU_ALLOW_NPI_TARGETS", "ON"), @@ -240,12 +295,18 @@ def cmake_args(self): elif self.spec.satisfies("@6.1:"): dir = os.path.join(self.stage.source_path, "amd/device-libs") - args.extend( - [ - self.define("LLVM_EXTERNAL_PROJECTS", "device-libs"), - self.define("LLVM_EXTERNAL_DEVICE_LIBS_SOURCE_DIR", dir), - ] - ) + if self.spec.satisfies("@:7.0"): + args.extend( + [ + self.define("LLVM_EXTERNAL_PROJECTS", "device-libs"), + self.define("LLVM_EXTERNAL_DEVICE_LIBS_SOURCE_DIR", dir), + ] + ) + else: + args.append(self.define("ROCM_DEVICE_LIBS_INSTALL_PREFIX_PATH", self.prefix)) + args.append( + self.define("ROCM_DEVICE_LIBS_BITCODE_INSTALL_LOC", "lib/clang/20/lib/amdgcn") + ) if self.spec.satisfies("+llvm_dylib"): args.append(self.define("LLVM_BUILD_LLVM_DYLIB", True)) @@ -257,34 +318,87 @@ def cmake_args(self): # Get the GCC prefix for LLVM. if self.compiler.name == "gcc" and self.spec.satisfies("@:6.3"): args.append(self.define("GCC_INSTALL_PREFIX", self.compiler.prefix)) - if self.spec.satisfies("@5.6.0:6.0"): + if self.spec.satisfies("@:6.0"): comgrinc_path = os.path.join(self.stage.source_path, "comgr/lib/comgr/include") elif self.spec.satisfies("@6.1:"): comgrinc_path = os.path.join(self.stage.source_path, "amd/comgr/include") - if self.spec.satisfies("@5.6.0:6.2"): - hsainc_path = os.path.join(self.stage.source_path, "hsa-runtime/src/inc") + + if self.spec.satisfies("@7.2:"): + hsa_path = os.path.join(self.stage.source_path, "rocm-systems/projects/rocr-runtime") + else: + hsa_path = os.path.join(self.stage.source_path, "hsa-runtime") + + if self.spec.satisfies("@:6.2"): + hsainc_path = os.path.join(hsa_path, "src/inc") if self.spec.satisfies("@6.3:"): - hsainc_path = os.path.join( - self.stage.source_path, "hsa-runtime/runtime/hsa-runtime/inc" - ) - if self.spec.satisfies("@5.6.0:"): - args.append("-DSANITIZER_HSA_INCLUDE_PATH={0}".format(hsainc_path)) - args.append("-DSANITIZER_COMGR_INCLUDE_PATH={0}".format(comgrinc_path)) - args.append("-DSANITIZER_AMDGPU:Bool=ON") - if self.spec.satisfies("@:6.0"): - args.append(self.define("LLVM_ENABLE_PROJECTS", llvm_projects)) - args.append(self.define("LLVM_ENABLE_RUNTIMES", llvm_runtimes)) - elif self.spec.satisfies("@6.1:"): + hsainc_path = os.path.join(hsa_path, "runtime/hsa-runtime/inc") + args.append("-DSANITIZER_HSA_INCLUDE_PATH={0}".format(hsainc_path)) + args.append("-DSANITIZER_COMGR_INCLUDE_PATH={0}".format(comgrinc_path)) + args.append("-DSANITIZER_AMDGPU:Bool=ON") + if self.spec.satisfies("@6.1:7.0"): + args.append(self.define("LLVM_ENABLE_LIBCXX", "OFF")) + if self.spec.satisfies("@6.1:"): llvm_projects.remove("compiler-rt") llvm_runtimes.extend(["compiler-rt", "libunwind"]) - args.append(self.define("LLVM_ENABLE_PROJECTS", llvm_projects)) - args.append(self.define("LLVM_ENABLE_RUNTIMES", llvm_runtimes)) - args.append(self.define("LLVM_ENABLE_LIBCXX", "OFF")) args.append(self.define("CLANG_LINK_FLANG_LEGACY", True)) args.append(self.define("CMAKE_CXX_STANDARD", 17)) args.append(self.define("FLANG_INCLUDE_DOCS", False)) args.append(self.define("LLVM_BUILD_DOCS", "ON")) args.append(self.define("CLANG_DEFAULT_PIE_ON_LINUX", "OFF")) + if self.spec.satisfies("@7.0:"): + llvm_projects.extend(["mlir", "flang"]) + args.append(self.define("LIBOMPTARGET_BUILD_DEVICE_FORTRT", "ON")) + args.append(self.define("FLANG_RUNTIME_F128_MATH_LIB", "libquadmath")) + if self.spec.satisfies("@:7.0"): + args.append(self.define("LIBCXX_ENABLE_SHARED", "OFF")) + args.append(self.define("LIBCXX_ENABLE_STATIC", "ON")) + args.append(self.define("LIBCXX_INSTALL_LIBRARY", "OFF")) + args.append(self.define("LIBCXX_INSTALL_HEADERS", "OFF")) + args.append(self.define("LIBCXXABI_ENABLE_SHARED", "OFF")) + args.append(self.define("LIBCXXABI_ENABLE_STATIC", "ON")) + else: + args.append(self.define("LIBCXX_ENABLE_SHARED", "ON")) + args.append(self.define("LIBCXX_ENABLE_STATIC", "OFF")) + args.append(self.define("LIBCXX_INSTALL_LIBRARY", "ON")) + args.append(self.define("LIBCXX_INSTALL_HEADERS", "ON")) + args.append(self.define("LIBCXXABI_ENABLE_SHARED", "ON")) + args.append(self.define("LIBCXXABI_ENABLE_STATIC", "OFF")) + if self.spec.satisfies("@7.1:"): + llvm_runtimes.extend(["offload", "openmp"]) + args.append(self.define("LLVM_INSTALL_UTILS", "ON")) + args.append(self.define("OPENMP_ENABLE_LIBOMPTARGET", "ON")) + args.append(self.define("LLVM_ENABLE_LIBCXX", "ON")) + args.append(self.define("LIBOMPTARGET_ENABLE_DEBUG", "ON")) + args.append(self.define("LIBOMPTARGET_NO_SANITIZER_AMDGPU", "ON")) + args.append(self.define("LIBOMPTARGET_EXTERNAL_PROJECT_HSA_PATH", hsa_path)) + args.append(self.define("OFFLOAD_EXTERNAL_PROJECT_UNIFIED_ROCR", "ON")) + devlibs_dir = os.path.join(self.stage.source_path, "amd/device-libs") + args.append( + self.define("LIBOMPTARGET_EXTERNAL_PROJECT_ROCM_DEVICE_LIBS_PATH", devlibs_dir) + ) + if self.spec.satisfies("@7.2:"): + args.append(self.define("LLVM_RUNTIME_TARGETS", "default;amdgcn-amd-amdhsa")) + args.append("-DRUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_RUNTIMES=openmp") + args.append("-DRUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON") + spirv_dir = os.path.join(self.stage.source_path, "llvm/projects/spirv-llvm-translator") + args.append(self.define("LLVM_EXTERNAL_SPIRV_LLVM_TRANSLATOR_SOURCE_DIR", spirv_dir)) + args.append(self.define("LLVM_ENABLE_PROJECTS", llvm_projects)) + args.append(self.define("LLVM_ENABLE_RUNTIMES", llvm_runtimes)) + + # CMake args passed just to runtimes + runtime_cmake_args = [self.define("CMAKE_INSTALL_RPATH_USE_LINK_PATH", True)] + + # When building runtimes, just-built clang has to know where GCC is. + gcc_install_dir_flag = get_gcc_install_dir_flag(self.spec, self.compiler) + if gcc_install_dir_flag: + runtime_cmake_args.extend( + [ + self.define("CMAKE_C_FLAGS", gcc_install_dir_flag), + self.define("CMAKE_CXX_FLAGS", gcc_install_dir_flag), + ] + ) + + args.append(self.define("RUNTIMES_CMAKE_ARGS", runtime_cmake_args)) return args compiler_languages = ["c", "cxx", "fortran"] @@ -293,6 +407,32 @@ def cmake_args(self): fortran_names = ["amdflang"] compiler_version_argument = "--version" compiler_version_regex = r"roc-(\d+[._]\d+[._]\d+)" + installed_dir_regex = r"InstalledDir:\s*(.+)" + + @classmethod + def determine_version(cls, exe): + try: + compiler = Executable(exe) + output = compiler(cls.compiler_version_argument, output=str, error=str) + # Reject if the compiler is not under the InstalledDir + # reported by --version (e.g. /usr/bin is not valid). + installed_dir_match = re.search(cls.installed_dir_regex, output) + if installed_dir_match: + installed_dir = os.path.normpath(installed_dir_match.group(1).strip()) + exe_dir = os.path.normpath(os.path.dirname(os.path.abspath(str(exe)))) + if exe_dir != installed_dir: + return None + else: + return None + match = re.search(cls.compiler_version_regex, output) + if match: + version_str = match.group(1) + return version_str + except ProcessError: + pass + except Exception as e: + tty.debug(e) + return None # Make sure that the compiler paths are in the LD_LIBRARY_PATH def setup_run_environment(self, env: EnvironmentModifications) -> None: @@ -311,7 +451,7 @@ def setup_dependent_run_environment( @run_after("install") def post_install(self): - if self.spec.satisfies("@6.1: +rocm-device-libs"): + if self.spec.satisfies("@6.1:7.0 +rocm-device-libs"): exe = self.prefix.bin.join("llvm-config") output = Executable(exe)("--version", output=str, error=str) version = re.split("[.]", output)[0] @@ -320,11 +460,20 @@ def post_install(self): self.prefix.amdgcn, join_path(self.prefix.lib.clang, version, "lib", "amdgcn") ) shutil.rmtree(self.prefix.amdgcn) - os.symlink( + symlink( join_path(self.prefix.lib.clang, version, "lib", "amdgcn"), os.path.join(self.prefix, "amdgcn"), ) + cfg_files = ["clang.cfg", "clang++.cfg"] + if self.spec.satisfies("@7:"): + cfg_files.append("flang.cfg") + gcc_install_dir_flag = get_gcc_install_dir_flag(self.spec, self.compiler) + if gcc_install_dir_flag: + for cfg in cfg_files: + with open(os.path.join(self.prefix.bin, cfg), "w") as f: + print(gcc_install_dir_flag, file=f) + # Required for enabling asan on dependent packages def setup_dependent_build_environment( self, env: EnvironmentModifications, dependent_spec: Spec @@ -339,3 +488,18 @@ def _cc_path(self): def _cxx_path(self): return os.path.join(self.spec.prefix.bin, "amdclang++") + + def _fortran_path(self): + return os.path.join(self.spec.prefix.bin, "amdflang") + + +def get_gcc_install_dir_flag(spec: Spec, compiler) -> Optional[str]: + """Get the --gcc-install-dir=... flag, so that clang does not do a system scan for GCC.""" + if not spec.satisfies("%gcc"): + return None + gcc = Executable(compiler.cc) + libgcc_path = gcc("-print-file-name=libgcc.a", output=str, fail_on_error=False).strip() + if not os.path.isabs(libgcc_path): + return None + libgcc_dir = os.path.dirname(libgcc_path) + return f"--gcc-install-dir={libgcc_dir}" if os.path.exists(libgcc_dir) else None diff --git a/repos/spack_repo/builtin/packages/llvm_doe/package.py b/repos/spack_repo/builtin/packages/llvm_doe/package.py index ac1f737145a..b7d22dc0252 100644 --- a/repos/spack_repo/builtin/packages/llvm_doe/package.py +++ b/repos/spack_repo/builtin/packages/llvm_doe/package.py @@ -53,7 +53,7 @@ class LlvmDoe(CMakePackage, CudaPackage): variant( "polly", default=True, - description="Build the LLVM polyhedral optimization plugin, " "only builds for 3.7.0+", + description="Build the LLVM polyhedral optimization plugin, only builds for 3.7.0+", ) variant("libcxx", default=True, description="Build the LLVM C++ standard library") variant( @@ -290,7 +290,7 @@ def determine_variants(cls, exes, version_str): @classmethod def validate_detected_spec(cls, spec, extra_attributes): # For LLVM 'compilers' is a mandatory attribute - msg = 'the extra attribute "compilers" must be set for ' 'the detected spec "{0}"'.format( + msg = 'the extra attribute "compilers" must be set for the detected spec "{0}"'.format( spec ) assert "compilers" in extra_attributes, msg @@ -346,7 +346,7 @@ def f77(self): @run_before("cmake") def codesign_check(self): if self.spec.satisfies("+code_signing"): - codesign = which("codesign") + codesign = which("codesign", required=True) mkdir("tmp") llvm_check_file = join_path("tmp", "llvm_check") copy("/usr/bin/false", llvm_check_file) @@ -385,7 +385,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: sym = os.path.join(self.stage.path, "ld.lld") if os.path.exists(bin) and not os.path.exists(sym): mkdirp(self.stage.path) - os.symlink(bin, sym) + symlink(bin, sym) env.prepend_path("PATH", self.stage.path) def setup_run_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/llvm_openmp/package.py b/repos/spack_repo/builtin/packages/llvm_openmp/package.py index a244122a507..2e72c71770e 100644 --- a/repos/spack_repo/builtin/packages/llvm_openmp/package.py +++ b/repos/spack_repo/builtin/packages/llvm_openmp/package.py @@ -52,11 +52,12 @@ class LlvmOpenmp(CMakePackage): version("9.0.0", sha256="9979eb1133066376cc0be29d1682bc0b0e7fb541075b391061679111ae4d3b5b") version("8.0.0", sha256="f7b1705d2f16c4fc23d6531f67d2dd6fb78a077dd346b02fed64f4b8df65c9d5") + variant("fortran", default=False, description="Build Fortran modules") variant("multicompat", default=True, description="Support the GNU OpenMP runtime interface.") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build", when="+fortran") depends_on("cmake@3.13.4:", when="@12:", type="build") depends_on("cmake@2.8:", type="build") @@ -85,7 +86,8 @@ def patch(self): os.rename(cmake_mod_dir, os.path.join(self.stage.path, "cmake")) def cmake_args(self): - cmake_args = [] + cmake_args = [self.define_from_variant("LIBOMP_FORTRAN_MODULES", "fortran")] + # Add optional support for both Intel and gcc compilers if self.spec.satisfies("+multicompat"): cmake_args.append("-DKMP_GOMP_COMPAT=1") diff --git a/repos/spack_repo/builtin/packages/lm_sensors/package.py b/repos/spack_repo/builtin/packages/lm_sensors/package.py index e65547832de..8f6bbbb5893 100644 --- a/repos/spack_repo/builtin/packages/lm_sensors/package.py +++ b/repos/spack_repo/builtin/packages/lm_sensors/package.py @@ -34,6 +34,8 @@ class LmSensors(MakefilePackage): depends_on("bison", type="build") depends_on("flex", type="build") + depends_on("which", type="build") + depends_on("sed", type="build") depends_on("perl", type="run") @property diff --git a/repos/spack_repo/builtin/packages/lmdb/package.py b/repos/spack_repo/builtin/packages/lmdb/package.py index 1b37f0d3991..e5f20c3174a 100644 --- a/repos/spack_repo/builtin/packages/lmdb/package.py +++ b/repos/spack_repo/builtin/packages/lmdb/package.py @@ -18,6 +18,7 @@ class Lmdb(MakefilePackage): license("OLDAP-2.8") + version("0.9.35", sha256="18b021fd589d30cc08860a9550a30ae51637117451385e9581616da751326632") version("0.9.31", sha256="dd70a8c67807b3b8532b3e987b0a4e998962ecc28643e1af5ec77696b081c9b0") version("0.9.29", sha256="22054926b426c66d8f2bc22071365df6e35f3aacf19ad943bc6167d4cae3bebb") version("0.9.24", sha256="44602436c52c29d4f301f55f6fd8115f945469b868348e3cddaf91ab2473ea26") @@ -49,8 +50,7 @@ def install_pkgconfig(self): f.write("\n") f.write("Name: LMDB\n") f.write( - "Description: Symas LMDB is an extraordinarily fast, " - "memory-efficient database.\n" + "Description: Symas LMDB is an extraordinarily fast, memory-efficient database.\n" ) f.write("Version: {0}\n".format(self.spec.version)) f.write("Cflags: -I${includedir}\n") diff --git a/repos/spack_repo/builtin/packages/lmod/package.py b/repos/spack_repo/builtin/packages/lmod/package.py index af34bfeb14d..bf2480f6b00 100644 --- a/repos/spack_repo/builtin/packages/lmod/package.py +++ b/repos/spack_repo/builtin/packages/lmod/package.py @@ -1,6 +1,7 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) + from glob import glob from spack_repo.builtin.build_systems.autotools import AutotoolsPackage @@ -19,11 +20,15 @@ class Lmod(AutotoolsPackage): library and header files can be found. """ - homepage = "https://www.tacc.utexas.edu/research-development/tacc-projects/lmod" - url = "https://github.com/TACC/Lmod/archive/8.5.6.tar.gz" + homepage = "https://tacc.utexas.edu/research/tacc-research/lmod" + url = "https://github.com/TACC/Lmod/archive/9.0.5.tar.gz" license("MIT") + version("9.1.2", sha256="b7277482677a22c3396b88a1290406ca20bb2564c59632403ca98373f132e65a") + version("9.0.8", sha256="4b3fad3addc799f643f8c7fb56af892757b77594cd24bd9e405b645cdae4dca0") + version("9.0.5", sha256="7d5b5db9f252dff7469d3a5369b7b58dbbfd4b3a879a97ee21954f26e04b13e3") + version("8.7.67", sha256="50c8d265e47eb6661ebe3af13df819b35db84cda3474ea0a7427c33b5767aaab") version("8.7.55", sha256="f85ed9b55c23afb563fa99c7201037628be016e8d88a1aa8dba4632c0ab450bd") version("8.7.37", sha256="171529152fedfbb3c45d27937b0eaa1ee62b5e5cdac3086f44a6d56e5d1d7da4") version("8.7.24", sha256="8451267652059b6507b652e1b563929ecf9b689ffb20830642085eb6a55bd539") @@ -57,23 +62,21 @@ class Lmod(AutotoolsPackage): version("6.4.1", sha256="a260b4e42269a80b517c066ba8484658362ea095e80767a2376bbe33d9b070a5") version("6.3.7", sha256="55ddb52cbdc0e2e389b3405229336df9aabfa582c874f5df2559ea264e2ee4ae") - depends_on("c", type="build") # generated - - depends_on("lua+shared@5.1:") - depends_on("lua-luaposix", type=("build", "run")) - depends_on("lua-luafilesystem", type=("build", "run")) - depends_on("tcl", type=("build", "link", "run")) - - depends_on("bc", type="build", when="@8.7.10:") - - # GNU sed is required instead of bsd sed on macOS - depends_on("sed", type="build", when="platform=darwin") - variant("auto_swap", default=True, description="Auto swapping of compilers, etc.") variant( "redirect", default=False, description="Redirect messages to stdout (instead of stderr)" ) + depends_on("c", type="build") + depends_on("pkgconfig", type="build") + depends_on("procps", type="build", when="platform=linux") + depends_on("sed", type="build") + depends_on("bc", type="build", when="@8.7.10:") + depends_on("tcl", type=("build", "link", "run")) + depends_on("lua+shared@5.1:") + depends_on("lua-luaposix", type=("build", "run")) + depends_on("lua-luafilesystem", type=("build", "run")) + patch("fix_tclsh_paths.patch", when="@:6.4.3") patch("0001-fix-problem-with-MODULESHOME-and-issue-271.patch", when="@7.3.28:7.4.10") diff --git a/repos/spack_repo/builtin/packages/log4cplus/package.py b/repos/spack_repo/builtin/packages/log4cplus/package.py index f4b5750b488..3f7e0373d89 100644 --- a/repos/spack_repo/builtin/packages/log4cplus/package.py +++ b/repos/spack_repo/builtin/packages/log4cplus/package.py @@ -12,13 +12,19 @@ class Log4cplus(CMakePackage): providing thread-safe, flexible, and arbitrarily granular control over log management and configuration.""" - homepage = "https://sourceforge.net/projects/log4cplus/" - url = "https://download.sourceforge.net/project/log4cplus/log4cplus-stable/2.0.1/log4cplus-2.0.1.tar.bz2" + homepage = "https://github.com/log4cplus/log4cplus" + url = "https://github.com/log4cplus/log4cplus/releases/download/REL_2_1_2/log4cplus-2.1.2.tar.bz2" license("Apache-2.0 AND BSD-2-Clause") - version("2.0.7", sha256="8fadbafee2ba4e558a0f78842613c9fb239c775d83f23340d091084c0e1b12ab") - version("2.0.1", sha256="43baa7dec3db1ecc97dd9ecf3b50220439d2c7041d15860c36aa1d48dcf480b5") - version("1.2.1", sha256="ada80be050033d7636beb894eb54de5575ceca95a5572e9437b0fc4ed7d877c4") + version("2.1.2", sha256="2450dfbb4ab35dd2c9e64d8c750c514bf7293b81d8f32af7ab124417f70adfad") + version("2.0.8", sha256="ca36aa366036d1c61fc0366a9ffbcf32bad55d74878b2c36a9c34dcc00b8a0ca") + version("1.2.2", sha256="853efd919f9ca76c518c0944e6b0ced1174523a86b6db046ed4f23fe695167bd") + depends_on("c", type="build") depends_on("cxx", type="build") # generated + + def url_for_version(self, version): + # log4cplus tags use REL_X_Y_Z + rel = "REL_{0}".format(str(version).replace(".", "_")) + return f"https://github.com/log4cplus/log4cplus/releases/download/{rel}/log4cplus-{version}.tar.bz2" diff --git a/repos/spack_repo/builtin/packages/log4cxx/log4cxx-0.10.0-missing_includes.patch b/repos/spack_repo/builtin/packages/log4cxx/log4cxx-0.10.0-missing_includes.patch deleted file mode 100644 index 6834648d09a..00000000000 --- a/repos/spack_repo/builtin/packages/log4cxx/log4cxx-0.10.0-missing_includes.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff -Naur apache-log4cxx-0.10.0.orig/src/examples/cpp/console.cpp apache-log4cxx-0.10.0/src/examples/cpp/console.cpp ---- apache-log4cxx-0.10.0.orig/src/examples/cpp/console.cpp 2008-04-01 00:34:52.000000000 +0200 -+++ apache-log4cxx-0.10.0/src/examples/cpp/console.cpp 2008-05-06 05:40:52.000000000 +0200 -@@ -15,7 +15,10 @@ - * limitations under the License. - */ - --#include -+#include -+#include -+#include -+#include - #include - #include - #include -diff -Naur apache-log4cxx-0.10.0.orig/src/main/cpp/inputstreamreader.cpp apache-log4cxx-0.10.0/src/main/cpp/inputstreamreader.cpp ---- apache-log4cxx-0.10.0.orig/src/main/cpp/inputstreamreader.cpp 2008-04-01 00:34:09.000000000 +0200 -+++ apache-log4cxx-0.10.0/src/main/cpp/inputstreamreader.cpp 2008-05-06 05:32:31.000000000 +0200 -@@ -21,6 +21,8 @@ - #include - #include - -+#include -+ - using namespace log4cxx; - using namespace log4cxx::helpers; - -diff -Naur apache-log4cxx-0.10.0.orig/src/main/cpp/socketoutputstream.cpp apache-log4cxx-0.10.0/src/main/cpp/socketoutputstream.cpp ---- apache-log4cxx-0.10.0.orig/src/main/cpp/socketoutputstream.cpp 2008-04-01 00:34:09.000000000 +0200 -+++ apache-log4cxx-0.10.0/src/main/cpp/socketoutputstream.cpp 2008-05-06 05:35:55.000000000 +0200 -@@ -20,6 +20,8 @@ - #include - #include - -+#include -+ - using namespace log4cxx; - using namespace log4cxx::helpers; \ No newline at end of file diff --git a/repos/spack_repo/builtin/packages/log4cxx/log4cxx-0.10.0-narrowing-fixes-from-upstream.patch b/repos/spack_repo/builtin/packages/log4cxx/log4cxx-0.10.0-narrowing-fixes-from-upstream.patch deleted file mode 100644 index e583e7661d1..00000000000 --- a/repos/spack_repo/builtin/packages/log4cxx/log4cxx-0.10.0-narrowing-fixes-from-upstream.patch +++ /dev/null @@ -1,117 +0,0 @@ -diff --git a/src/main/cpp/locationinfo.cpp b/src/main/cpp/locationinfo.cpp -index e76ea29..bd22a1d 100644 ---- a/src/main/cpp/locationinfo.cpp -+++ b/src/main/cpp/locationinfo.cpp -@@ -149,18 +149,21 @@ void LocationInfo::write(ObjectOutputStream& os, Pool& p) const { - os.writeNull(p); - } else { - char prolog[] = { -- 0x72, 0x00, 0x21, 0x6F, 0x72, 0x67, 0x2E, -- 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2E, 0x6C, -- 0x6F, 0x67, 0x34, 0x6A, 0x2E, 0x73, 0x70, 0x69, -- 0x2E, 0x4C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F, -- 0x6E, 0x49, 0x6E, 0x66, 0x6F, 0xED, 0x99, 0xBB, -- 0xE1, 0x4A, 0x91, 0xA5, 0x7C, 0x02, 0x00, 0x01, -- 0x4C, 0x00, 0x08, 0x66, 0x75, 0x6C, 0x6C, 0x49, -- 0x6E, 0x66, 0x6F, -- 0x74, 0x00, 0x12, 0x4C, 0x6A, -- 0x61, 0x76, 0x61, 0x2F, 0x6C, 0x61, 0x6E, 0x67, -- 0x2F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3B, -- 0x78, 0x70 }; -+ 0x72, -+ 0x00, -+ 0x21, 0x6F, 0x72, 0x67, 0x2E, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2E, -+ 0x6C, 0x6F, 0x67, 0x34, 0x6A, 0x2E, 0x73, 0x70, 0x69, 0x2E, 0x4C, 0x6F, -+ 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x49, 0x6E, 0x66, 0x6F, static_cast(0xED), -+ static_cast(0x99), static_cast(0xBB), static_cast(0xE1), -+ 0x4A, static_cast(0x91), static_cast(0xA5), 0x7C, 0x02, -+ 0x00, -+ 0x01, 0x4C, -+ 0x00, -+ 0x08, 0x66, 0x75, 0x6C, 0x6C, 0x49, 0x6E, 0x66, 0x6F, 0x74, -+ 0x00, -+ 0x12, 0x4C, 0x6A, 0x61, 0x76, 0x61, 0x2F, 0x6C, 0x61, 0x6E, 0x67, 0x2F, -+ 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3B, 0x78, 0x70 -+ }; - os.writeProlog("org.apache.log4j.spi.LocationInfo", 2, prolog, sizeof(prolog), p); - char* line = p.itoa(lineNumber); - // -diff --git a/src/main/cpp/loggingevent.cpp b/src/main/cpp/loggingevent.cpp -index 1c0d4be..edbf40b 100644 ---- a/src/main/cpp/loggingevent.cpp -+++ b/src/main/cpp/loggingevent.cpp -@@ -242,7 +242,7 @@ void LoggingEvent::writeProlog(ObjectOutputStream& os, Pool& p) { - 0x68, 0x65, 0x2E, 0x6C, 0x6F, 0x67, 0x34, 0x6A, - 0x2E, 0x73, 0x70, 0x69, 0x2E, 0x4C, 0x6F, 0x67, - 0x67, 0x69, 0x6E, 0x67, 0x45, 0x76, 0x65, 0x6E, -- 0x74, 0xF3, 0xF2, 0xB9, 0x23, 0x74, 0x0B, 0xB5, -+ 0x74, static_cast(0xF3), static_cast(0xF2), static_cast(0xB9), 0x23, 0x74, 0x0B, static_cast(0xB5), - 0x3F, 0x03, 0x00, 0x0A, 0x5A, 0x00, 0x15, 0x6D, - 0x64, 0x63, 0x43, 0x6F, 0x70, 0x79, 0x4C, 0x6F, - 0x6F, 0x6B, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, -diff --git a/src/main/cpp/objectoutputstream.cpp b/src/main/cpp/objectoutputstream.cpp -index 7cd696b..5442420 100644 ---- a/src/main/cpp/objectoutputstream.cpp -+++ b/src/main/cpp/objectoutputstream.cpp -@@ -36,7 +36,7 @@ ObjectOutputStream::ObjectOutputStream(OutputStreamPtr outputStream, Pool& p) - objectHandle(0x7E0000), - classDescriptions(new ClassDescriptionMap()) - { -- char start[] = { 0xAC, 0xED, 0x00, 0x05 }; -+ char start[] = { static_cast(0xAC), static_cast(0xED), 0x00, 0x05 }; - ByteBuffer buf(start, sizeof(start)); - os->write(buf, p); - } -@@ -81,15 +81,15 @@ void ObjectOutputStream::writeObject(const MDC::Map& val, Pool& p) { - // - // TC_OBJECT and the classDesc for java.util.Hashtable - // -- char prolog[] = { -- 0x72, 0x00, 0x13, 0x6A, 0x61, 0x76, 0x61, -- 0x2E, 0x75, 0x74, 0x69, 0x6C, 0x2E, 0x48, 0x61, -- 0x73, 0x68, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x13, -- 0xBB, 0x0F, 0x25, 0x21, 0x4A, 0xE4, 0xB8, 0x03, -- 0x00, 0x02, 0x46, 0x00, 0x0A, 0x6C, 0x6F, 0x61, -- 0x64, 0x46, 0x61, 0x63, 0x74, 0x6F, 0x72, 0x49, -- 0x00, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, -- 0x6F, 0x6C, 0x64, 0x78, 0x70 }; -+ char prolog[] = { -+ 0x72, 0x00, 0x13, 0x6A, 0x61, 0x76, 0x61, -+ 0x2E, 0x75, 0x74, 0x69, 0x6C, 0x2E, 0x48, 0x61, -+ 0x73, 0x68, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x13, -+ static_cast(0xBB), 0x0F, 0x25, 0x21, 0x4A, static_cast(0xE4), static_cast(0xB8), 0x03, -+ 0x00, 0x02, 0x46, 0x00, 0x0A, 0x6C, 0x6F, 0x61, -+ 0x64, 0x46, 0x61, 0x63, 0x74, 0x6F, 0x72, 0x49, -+ 0x00, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, -+ 0x6F, 0x6C, 0x64, 0x78, 0x70 }; - writeProlog("java.util.Hashtable", 1, prolog, sizeof(prolog), p); - // - // loadFactor = 0.75, threshold = 5, blockdata start, buckets.size = 7 -diff --git a/src/test/cpp/xml/domtestcase.cpp b/src/test/cpp/xml/domtestcase.cpp -index a500628..29d67dd 100644 ---- a/src/test/cpp/xml/domtestcase.cpp -+++ b/src/test/cpp/xml/domtestcase.cpp -@@ -190,9 +190,9 @@ public: - DOMConfigurator::configure(LOG4CXX_TEST_STR("input/xml/DOMTestCase3.xml")); - LOG4CXX_INFO(logger, "File name is expected to end with a superscript 3"); - #if LOG4CXX_LOGCHAR_IS_UTF8 -- const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, 0xC2, 0xB3, 0 }; -+ const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, static_cast(0xC2), static_cast(0xB3), 0 }; - #else -- const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, 0xB3, 0 }; -+ const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, static_cast(0xB3), 0 }; - #endif - File file; - file.setPath(fname); -@@ -209,9 +209,9 @@ public: - DOMConfigurator::configure(LOG4CXX_TEST_STR("input/xml/DOMTestCase4.xml")); - LOG4CXX_INFO(logger, "File name is expected to end with an ideographic 4"); - #if LOG4CXX_LOGCHAR_IS_UTF8 -- const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, 0xE3, 0x86, 0x95, 0 }; -+ const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, static_cast(0xE3), static_cast(0x86), static_cast(0x95), 0 }; - #else -- const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, 0x3195, 0 }; -+ const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, static_cast(0x3195), 0 }; - #endif - File file; - file.setPath(fname); \ No newline at end of file diff --git a/repos/spack_repo/builtin/packages/log4cxx/package.py b/repos/spack_repo/builtin/packages/log4cxx/package.py index 3d323fca28c..a3e4b715eeb 100644 --- a/repos/spack_repo/builtin/packages/log4cxx/package.py +++ b/repos/spack_repo/builtin/packages/log4cxx/package.py @@ -18,30 +18,9 @@ class Log4cxx(CMakePackage): license("Apache-2.0", checked_by="wdconinc") version("1.2.0", sha256="09f4748aa5675ef5c0770bedbf5e00488668933c5a935a43ac5b85be2436c48a") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2023-31038 - version( - "0.12.1", sha256="7bea5cb477f0e31c838f0e1f4f498cc3b30c2eae74703ddda923e7e8c2268d22" - ) - version( - "0.12.0", sha256="bd5b5009ca914c8fa7944b92ea6b4ca6fb7d146f65d526f21bf8b3c6a0520e44" - ) variant( - "cxxstd", - default="17", - description="C++ standard", - values=("11", "17"), - multi=False, - when="@:1.1", - ) - variant( - "cxxstd", - default="20", - description="C++ standard", - values=("11", "17", "20"), - multi=False, - when="@1.2:", + "cxxstd", default="20", description="C++ standard", values=("11", "17", "20"), multi=False ) depends_on("cmake@3.13:", type="build") diff --git a/repos/spack_repo/builtin/packages/logstash/package.py b/repos/spack_repo/builtin/packages/logstash/package.py index 0234e65bce6..09ad2a5df7c 100644 --- a/repos/spack_repo/builtin/packages/logstash/package.py +++ b/repos/spack_repo/builtin/packages/logstash/package.py @@ -19,18 +19,9 @@ class Logstash(Package): url = "https://artifacts.elastic.co/downloads/logstash/logstash-8.15.2-linux-x86_64.tar.gz" version("8.15.2", sha256="fc75c8cad1016b07f7aeeeeb7ea23f4195ab1beee2ced282f11ff6d0e84f7e51") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2019-7612 - version("6.6.0", sha256="5a9a8b9942631e9d4c3dfb8d47075276e8c2cff343841145550cc0c1cfe7bba7") depends_on("java@11:") - def url_for_version(self, version): - if self.spec.satisfies("@:6"): - return f"https://artifacts.elastic.co/downloads/logstash/logstash-{version}.tar.gz" - else: - return f"https://artifacts.elastic.co/downloads/logstash/logstash-{version}-linux-x86_64.tar.gz" - def install(self, spec, prefix): install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/lordec/package.py b/repos/spack_repo/builtin/packages/lordec/package.py index 59f0821b899..126f2db5438 100644 --- a/repos/spack_repo/builtin/packages/lordec/package.py +++ b/repos/spack_repo/builtin/packages/lordec/package.py @@ -29,13 +29,13 @@ def url_for_version(self, version): if version == Version("0.9"): return "https://gite.lirmm.fr/lordec/lordec-releases/uploads/800a96d81b3348e368a0ff3a260a88e1/lordec-src_0.9.tar.bz2" - depends_on("boost@1.48.0:1.64.0", type=["build", "link"]) + depends_on("boost@1.48.0:1.64.0", type=("build", "link")) # 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) - depends_on("gatb-core@1.4.1:", type=["build", "link", "run"]) - depends_on("zlib-api", type=["build", "link"]) + depends_on("gatb-core@1.4.1:", type=("build", "link", "run")) + depends_on("zlib-api", type=("build", "link")) build_targets = ["clean", "all"] diff --git a/repos/spack_repo/builtin/packages/lp_solve/package.py b/repos/spack_repo/builtin/packages/lp_solve/package.py index fb6d2cb780b..13102e768cd 100644 --- a/repos/spack_repo/builtin/packages/lp_solve/package.py +++ b/repos/spack_repo/builtin/packages/lp_solve/package.py @@ -20,12 +20,12 @@ class LpSolve(Package): def install(self, spec, prefix): with working_dir("lpsolve55"): mkdir(prefix.lib) - sh = which("sh") + sh = which("sh", required=True) sh("-x", "ccc") install_tree("bin/ux64", prefix.lib) with working_dir("lp_solve"): mkdir(prefix.bin) - sh = which("sh") + sh = which("sh", required=True) sh("-x", "ccc") install_tree("bin/ux64", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/lrose_core/package.py b/repos/spack_repo/builtin/packages/lrose_core/package.py new file mode 100644 index 00000000000..5df7c8a55ba --- /dev/null +++ b/repos/spack_repo/builtin/packages/lrose_core/package.py @@ -0,0 +1,79 @@ +# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class LroseCore(CMakePackage): + """The overall goal of the project is to provide high-quality, open source + software to the community of scientists, researchers, educators, and + operational organizations using atmospheric lidars, radars, and + profilers.""" + + homepage = "https://www.eol.ucar.edu/content/lidar-radar-open-software-environment" + url = "https://github.com/NCAR/lrose-core/archive/lrose-core-20250105.tar.gz" + git = "https://github.com/NCAR/lrose-core.git" + + maintainers("vanderwb") + + license("Apache-2.0") + + version("20250811", sha256="e53995e4291c536d7d310d4c84793e414c732428c1b177c841ea6813e36bd9ba") + version("20250105", sha256="c91938a1fa022359d2cd3c447a1ea777c70d456344967db768b3b0d2a08bd53b") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + variant("fractl", default=True, description="Install fractl applications") + variant("samurai", default=True, description="Install samurai applications") + variant("vortrac", default=False, description="Install vortrac applications") + + depends_on("cmake@3.7:", type="build") + depends_on("libx11") + depends_on("netcdf-c") + depends_on("qt@5:") + depends_on("fftw@3:") + + depends_on("armadillo", when="+vortrac") + + root_cmakelists_dir = "codebase" + + resource(name="lrose-displays", git="https://github.com/NCAR/lrose-displays", branch="master") + + resource( + name="fractl", git="https://github.com/mmbell/fractl", branch="master", when="+fractl" + ) + + resource( + name="samurai", git="https://github.com/mmbell/samurai", branch="master", when="+samurai" + ) + + resource( + name="vortrac", git="https://github.com/mmbell/vortrac", branch="master", when="+vortrac" + ) + + def build_and_install_extra_utility(self, component): + with working_dir(f"spack-build-{component}", create=True): + cmake_args = [f"../{component}"] + self.std_cmake_args + cmake_args.append("-DLROSE_PREFIX=" + self.spec.prefix) + cmake(*cmake_args) + make() + make("install") + + @run_after("install") + def add_extra_components(self): + # These components are optional add-ons but are included by default in RPM releases + for component in ("fractl", "samurai", "vortrac"): + if self.spec.satisfies(f"+{component}"): + self.build_and_install_extra_utility(component) + + # The CMake install does not install these components, and the color_scales needed by + # HawkEye do not come with the source code at all! + prefix = self.prefix + install_tree("docs", "{}/docs".format(prefix)) + install_tree("release_notes", "{}/release_notes".format(prefix)) + install_tree("lrose-displays/color_scales", "{}/share/color_scales".format(prefix)) diff --git a/repos/spack_repo/builtin/packages/lrslib/multiple-definitions.patch b/repos/spack_repo/builtin/packages/lrslib/multiple-definitions.patch new file mode 100644 index 00000000000..048a6a9fbef --- /dev/null +++ b/repos/spack_repo/builtin/packages/lrslib/multiple-definitions.patch @@ -0,0 +1,23 @@ +diff -Naur spack-src.old/lrsnashlib.c spack-src/lrsnashlib.c +--- a/lrsnashlib.c 2024-07-29 09:36:20.927068643 +0200 ++++ b/lrsnashlib.c 2024-07-29 09:38:53.617172534 +0200 +@@ -19,6 +19,7 @@ + #include "lrslib.h" + #include "lrsnashlib.h" + ++long FirstTime; + + //======================================================================== + // Standard solver. Modified version of main() from lrsNash +diff -Naur spack-src.old/lrsnashlib.h spack-src/lrsnashlib.h +--- a/lrsnashlib.h 2024-07-29 09:36:20.927068643 +0200 ++++ b/lrsnashlib.h 2024-07-29 09:36:45.758760323 +0200 +@@ -65,7 +65,7 @@ + void updateFwidth(game *g, int col, int pos, char *str); + + +-long FirstTime; /* set this to true for every new game to be solved */ ++extern long FirstTime; /* set this to true for every new game to be solved */ + static long Debug_flag; + static long Verbose_flag; + diff --git a/repos/spack_repo/builtin/packages/lrslib/package.py b/repos/spack_repo/builtin/packages/lrslib/package.py index 469259793f4..8c5880ae3e8 100644 --- a/repos/spack_repo/builtin/packages/lrslib/package.py +++ b/repos/spack_repo/builtin/packages/lrslib/package.py @@ -3,13 +3,13 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.generic import Package +from spack_repo.builtin.build_systems.makefile import MakefilePackage from spack.package import * -class Lrslib(Package): - """lrslib Ver 6.2 is a self-contained ANSI C implementation of the +class Lrslib(MakefilePackage): + """lrslib is a self-contained ANSI C implementation of the reverse search algorithm for vertex enumeration/convex hull problems and comes with a choice of three arithmetic packages""" @@ -18,14 +18,14 @@ class Lrslib(Package): license("GPL-2.0-only") + version("7.3", sha256="c49a4ebd856183473d1d5a62785fcdfe1057d5d671d4b96f3a1250eb1afe4e83") version("6.2", sha256="adf92f9c7e70c001340b9c28f414208d49c581df46b550f56ab9a360348e4f09") version("6.1", sha256="6d5b30ee67e1fdcd6bf03e14717616f18912d59b3707f6d53f9c594c1674ec45") version("6.0", sha256="1a569786ecd89ef4f2ddee5ebc32e321f0339505be40f4ffbd2daa95fed1c505") version("5.1", sha256="500893df61631944bac14a76c6e13fc08e6e729727443fa5480b2510de0db635") version("4.3", sha256="04fc1916ea122b3f2446968d2739717aa2c6c94b21fba1f2c627fd17fcf7a963") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") # Note: lrslib can also be built with Boost, and probably without gmp @@ -34,22 +34,27 @@ class Lrslib(Package): depends_on("libtool", type="build") depends_on("gmake", type="build") - patch("Makefile.spack.patch") + # The Makefile isn't portable; use our own instead + patch("Makefile.spack.patch", when="@:6.2") # Ref: https://github.com/mkoeppe/lrslib/commit/2e8c5bd6c06430151faea5910f44aa032c4178a9 - patch("fix-return-value.patch") + patch("fix-return-value.patch", when="@:6.2") + # Ref: https://gitlab.epfl.ch/SCITAS/software-stack/scitas-spack-packages/-/commit/ffdeb9d + patch("multiple-definitions.patch", when="@:6.2") def url_for_version(self, version): url = "http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/lrslib-0{0}.tar.gz" return url.format(version.joined) - def install(self, spec, prefix): - # The Makefile isn't portable; use our own instead - makeargs = [ - "-f", - "Makefile.spack", - "PREFIX=%s" % prefix, - # "BOOST_PREFIX=%s" % spec["boost"].prefix, - "GMP_PREFIX=%s" % spec["gmp"].prefix, - ] - make(*makeargs) - make("install", *makeargs) + @property + def build_targets(self): + if self.spec.satisfies("@:6.2"): + return ["-f", "Makefile.spack", f"GMP_PREFIX={self.spec['gmp'].prefix}"] + else: + return [] + + @property + def install_targets(self): + if self.spec.satisfies("@:6.2"): + return ["install", "-f", "Makefile.spack", f"PREFIX={self.prefix}"] + else: + return ["install", f"prefix={self.prefix}"] diff --git a/repos/spack_repo/builtin/packages/lsof/package.py b/repos/spack_repo/builtin/packages/lsof/package.py index 7f834475939..e531cd6d189 100644 --- a/repos/spack_repo/builtin/packages/lsof/package.py +++ b/repos/spack_repo/builtin/packages/lsof/package.py @@ -23,7 +23,7 @@ class Lsof(Package): depends_on("gmake", type="build") def install(self, spec, prefix): - tar = which("tar") + tar = which("tar", required=True) tar("xf", "lsof_{0}_src.tar".format(self.version)) with working_dir("lsof_{0}_src".format(self.version)): diff --git a/repos/spack_repo/builtin/packages/ltr_retriever/package.py b/repos/spack_repo/builtin/packages/ltr_retriever/package.py index 694f75ffbc8..26204aba25b 100644 --- a/repos/spack_repo/builtin/packages/ltr_retriever/package.py +++ b/repos/spack_repo/builtin/packages/ltr_retriever/package.py @@ -19,6 +19,7 @@ class LtrRetriever(Package): license("GPL-3.0-only") version("2.9.4", sha256="a9f4668113d2d75ab97cd85b456f11b00afd4876848a8ef099622ec0d9e505e7") + version("2.9.0", sha256="e2d94f6179c33990a77fa9fdcefb842c8481b4c30833c9c12cbbe54cb3fdda73") version("2.8.7", sha256="29ca6f699c57b5e964aa0ee6c7d3e1e4cd5362dadd789e5f0e8c82fe0bb29369") depends_on("perl", type="run") diff --git a/repos/spack_repo/builtin/packages/lua/package.py b/repos/spack_repo/builtin/packages/lua/package.py index 0ab96e28698..4729f5c9b62 100644 --- a/repos/spack_repo/builtin/packages/lua/package.py +++ b/repos/spack_repo/builtin/packages/lua/package.py @@ -218,8 +218,11 @@ class Lua(LuaImplPackage): """The Lua programming language interpreter and library.""" homepage = "https://www.lua.org" - url = "https://www.lua.org/ftp/lua-5.3.4.tar.gz" + url = "https://www.lua.org/ftp/lua-5.4.8.tar.gz" + license("MIT") + + version("5.4.8", sha256="4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae") version("5.4.6", sha256="7d5ea1b9cb6aa0b59ca3dde1c6adcb57ef83a1ba8e5432c0ecd06bf439b3ad88") version("5.4.4", sha256="164c7849653b80ae67bec4b7473b884bf5cc8d2dca05653475ec2ed27b9ebf61") version("5.4.3", sha256="f8612276169e3bfcbcfb8f226195bfc6e466fe13042f1076cbde92b7ec96bbfb") @@ -241,9 +244,6 @@ class Lua(LuaImplPackage): version("5.1.4", sha256="b038e225eaf2a5b57c9bcc35cd13aa8c6c8288ef493d52970c9545074098af3a") version("5.1.3", sha256="6b5df2edaa5e02bf1a2d85e1442b2e329493b30b0c0780f77199d24f087d296d") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - variant("shared", default=True, description="Builds a shared version of the library") provides("lua-lang@5.1", when="@5.1:5.1.99") @@ -251,6 +251,7 @@ class Lua(LuaImplPackage): provides("lua-lang@5.3", when="@5.3:5.3.99") provides("lua-lang@5.4", when="@5.4:5.4.99") + depends_on("c", type="build") depends_on("ncurses+termlib") depends_on("readline") @@ -297,7 +298,7 @@ def install(self, spec, prefix): for version_str in version_formats: for joiner in ["", "-"]: dest_path = "liblua{0}{1}.{2}".format(joiner, version_str, dso_suffix) - os.symlink(src_path, dest_path) + symlink(src_path, dest_path) @run_after("install") def generate_pkg_config(self): diff --git a/repos/spack_repo/builtin/packages/lua_lpeg/package.py b/repos/spack_repo/builtin/packages/lua_lpeg/package.py index ed066f51b99..738c0ffd6ab 100644 --- a/repos/spack_repo/builtin/packages/lua_lpeg/package.py +++ b/repos/spack_repo/builtin/packages/lua_lpeg/package.py @@ -35,6 +35,8 @@ class LuaLpeg(LuaPackage): expand=False, ) + depends_on("c", type="build") + depends_on("lua-lang@:5.1.9", when="@:0.12.1 ^[virtuals=lua-lang] lua") @property diff --git a/repos/spack_repo/builtin/packages/lua_luafilesystem/package.py b/repos/spack_repo/builtin/packages/lua_luafilesystem/package.py index b80507dd29e..6b77896e4af 100644 --- a/repos/spack_repo/builtin/packages/lua_luafilesystem/package.py +++ b/repos/spack_repo/builtin/packages/lua_luafilesystem/package.py @@ -28,13 +28,16 @@ def url_for_version(self, version): license("MIT") + version("1.9.0", sha256="1142c1876e999b3e28d1c236bf21ffd9b023018e336ac25120fb5373aade1450") version("1.8.0", sha256="16d17c788b8093f2047325343f5e9b74cccb1ea96001e45914a58bbae8932495") version("1.7.0-2", sha256="23b4883aeb4fb90b2d0f338659f33a631f9df7a7e67c54115775a77d4ac3cc59") version("1.6.3", sha256="11c7b1fc2e560c0a521246b84e6257138d97dddde5a19e405714dbabcb9436ca") - depends_on("c", type="build") # generated - - depends_on("lua-lang@:5.3", when="@:1.7") + depends_on("c", type="build") + depends_on("lua-lang@:5.5", when="@1.9:") + depends_on("lua-lang@:5.4", when="@1.8") + depends_on("lua-lang@:5.3", when="@1.6.3:1.7") + depends_on("lua-lang@5.1:") class LuaBuilder(lua.LuaBuilder): diff --git a/repos/spack_repo/builtin/packages/lua_luaposix/package.py b/repos/spack_repo/builtin/packages/lua_luaposix/package.py index f44ce25458f..dff1889fb16 100644 --- a/repos/spack_repo/builtin/packages/lua_luaposix/package.py +++ b/repos/spack_repo/builtin/packages/lua_luaposix/package.py @@ -8,23 +8,28 @@ class LuaLuaposix(LuaPackage): - """Lua posix bindings, including ncurses""" + """Lua POSIX bindings, including ncurses""" - homepage = "https://github.com/luaposix/luaposix/" - url = "https://github.com/luaposix/luaposix/archive/release-v33.4.0.tar.gz" + homepage = "https://github.com/luaposix/luaposix" + url = "https://github.com/luaposix/luaposix/archive/refs/tags/v36.3.tar.gz" license("MIT") - version( - "35.0", - sha256="a4edf2f715feff65acb009e8d1689e57ec665eb79bc36a6649fae55eafd56809", - url="https://github.com/luaposix/luaposix/archive/refs/tags/v35.0.tar.gz", - ) + version("36.3", sha256="82cd9a96c41a4a3205c050206f0564ff4456f773a8f9ffc9235ff8f1907ca5e6") version("36.1", sha256="5e48e8ea5adfd8958bcdbaba132f5766473afedecc5c14ae3593464a5463a616") + version("35.0", sha256="a4edf2f715feff65acb009e8d1689e57ec665eb79bc36a6649fae55eafd56809") version("33.4.0", sha256="e66262f5b7fe1c32c65f17a5ef5ffb31c4d1877019b4870a5d373e2ab6526a21") version("33.2.1", sha256="4fb34dfea67f4cf3194cdecc6614c9aea67edc3c4093d34137669ea869c358e1") - depends_on("c", type="build") + def url_for_version(self, version): + if version >= Version("35.0"): + return f"https://github.com/luaposix/luaposix/archive/refs/tags/v{version}.tar.gz" + return f"https://github.com/luaposix/luaposix/archive/release-v{version}.tar.gz" - depends_on("libxcrypt", when="platform=linux") + depends_on("c", type="build") + depends_on("lua-lang@:5.4", when="@35.0:") + depends_on("lua-lang@:5.3", when="@33.2:34") + depends_on("lua-lang@:5.2", when="@:33.1") + depends_on("lua-lang@5.1:") depends_on("lua-bit32", when="^lua-lang@5.1") + depends_on("libxcrypt", when="platform=linux") diff --git a/repos/spack_repo/builtin/packages/lucene/package.py b/repos/spack_repo/builtin/packages/lucene/package.py index 5b69593f818..748bc08fb97 100644 --- a/repos/spack_repo/builtin/packages/lucene/package.py +++ b/repos/spack_repo/builtin/packages/lucene/package.py @@ -26,19 +26,8 @@ class Lucene(Package): sha256="8d7c698e7bdee7580950c4323f091b996afb1b14c91d6d6e4e150ccff883c6c5", preferred=True, ) - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2024-45772 - version( - "9.10.0", sha256="c57b75ee0ea12b54337967b7854ebd12af3d7bad27245c1dc12a167ce2b1f8a7" - ) - version("9.5.0", sha256="547277a2b6ce283422eccd14e9ee7ffb28b1af3975936959716c9b4d85843555") - version("8.3.1", sha256="acd61ad458d16f3c98b9dd4653c6a34dd666a965842e461f7cdf8947fa041e1a") - version("8.3.0", sha256="67c4f8081f24ff9f4eb4f2b999ac19f7a639b416e5b6f1c1c74e0524a481fc7e") - version("8.2.0", sha256="505cad34698b217fd6ceee581a8215223a47df5af820c94ca70a6bdbba9d5d7c") - version("8.1.1", sha256="d62b0acdf2b1ed7a25ccdb593ad8584caeaa20cc9870e22790d3ec7fa6240a8c") # build.gradle minJavaVersion or versions.toml minJava - depends_on("java@8:", type="run") depends_on("java@11:", type="run", when="@9:") depends_on("java@21:", type="run", when="@10:") diff --git a/repos/spack_repo/builtin/packages/lzo/package.py b/repos/spack_repo/builtin/packages/lzo/package.py index 0a0ee8c23a8..ff775b85e9e 100644 --- a/repos/spack_repo/builtin/packages/lzo/package.py +++ b/repos/spack_repo/builtin/packages/lzo/package.py @@ -36,10 +36,3 @@ def configure_args(self): args = ["--disable-dependency-tracking"] args += self.enable_or_disable("libs") return args - - @run_after("install") - def postinstall(self): - # ensure e.g. #include works with Cflags: -I${includedir}/lzo in pkgconf - # by creating symlink ${includedir}/lzo/lzo -> ${includedir}/lzo - with working_dir(self.prefix.include.lzo): - symlink(".", "lzo") diff --git a/repos/spack_repo/builtin/packages/m4/nodiscard.patch b/repos/spack_repo/builtin/packages/m4/nodiscard.patch new file mode 100644 index 00000000000..0ac24574495 --- /dev/null +++ b/repos/spack_repo/builtin/packages/m4/nodiscard.patch @@ -0,0 +1,100 @@ +diff --git a/lib/gl_list.h b/lib/gl_list.h +index 7fc22bb..3bc68b8 100644 +--- a/lib/gl_list.h ++++ b/lib/gl_list.h +@@ -630,7 +630,7 @@ gl_list_node_value (gl_list_t list, gl_list_node_t node) + ->node_value (list, node); + } + +-GL_LIST_INLINE _GL_ATTRIBUTE_NODISCARD int ++_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE int + gl_list_node_nx_set_value (gl_list_t list, gl_list_node_t node, + const void *elt) + { +@@ -685,20 +685,20 @@ gl_list_get_last (gl_list_t list) + return gl_list_get_at (list, gl_list_size (list) - 1); + } + +-GL_LIST_INLINE _GL_ATTRIBUTE_NODISCARD gl_list_node_t ++_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t + gl_list_nx_set_at (gl_list_t list, size_t position, const void *elt) + { + return ((const struct gl_list_impl_base *) list)->vtable + ->nx_set_at (list, position, elt); + } + +-GL_LIST_INLINE _GL_ATTRIBUTE_NODISCARD gl_list_node_t ++_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t + gl_list_nx_set_first (gl_list_t list, const void *elt) + { + return gl_list_nx_set_at (list, 0, elt); + } + +-GL_LIST_INLINE _GL_ATTRIBUTE_NODISCARD gl_list_node_t ++_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t + gl_list_nx_set_last (gl_list_t list, const void *elt) + { + return gl_list_nx_set_at (list, gl_list_size (list) - 1, elt); +@@ -752,35 +752,35 @@ gl_list_indexof_from_to (gl_list_t list, size_t start_index, size_t end_index, + ->indexof_from_to (list, start_index, end_index, elt); + } + +-GL_LIST_INLINE _GL_ATTRIBUTE_NODISCARD gl_list_node_t ++_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t + gl_list_nx_add_first (gl_list_t list, const void *elt) + { + return ((const struct gl_list_impl_base *) list)->vtable + ->nx_add_first (list, elt); + } + +-GL_LIST_INLINE _GL_ATTRIBUTE_NODISCARD gl_list_node_t ++_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t + gl_list_nx_add_last (gl_list_t list, const void *elt) + { + return ((const struct gl_list_impl_base *) list)->vtable + ->nx_add_last (list, elt); + } + +-GL_LIST_INLINE _GL_ATTRIBUTE_NODISCARD gl_list_node_t ++_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t + gl_list_nx_add_before (gl_list_t list, gl_list_node_t node, const void *elt) + { + return ((const struct gl_list_impl_base *) list)->vtable + ->nx_add_before (list, node, elt); + } + +-GL_LIST_INLINE _GL_ATTRIBUTE_NODISCARD gl_list_node_t ++_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t + gl_list_nx_add_after (gl_list_t list, gl_list_node_t node, const void *elt) + { + return ((const struct gl_list_impl_base *) list)->vtable + ->nx_add_after (list, node, elt); + } + +-GL_LIST_INLINE _GL_ATTRIBUTE_NODISCARD gl_list_node_t ++_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t + gl_list_nx_add_at (gl_list_t list, size_t position, const void *elt) + { + return ((const struct gl_list_impl_base *) list)->vtable +@@ -891,7 +891,7 @@ gl_sortedlist_indexof_from_to (gl_list_t list, gl_listelement_compar_fn compar, + elt); + } + +-GL_LIST_INLINE _GL_ATTRIBUTE_NODISCARD gl_list_node_t ++_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t + gl_sortedlist_nx_add (gl_list_t list, gl_listelement_compar_fn compar, const void *elt) + { + return ((const struct gl_list_impl_base *) list)->vtable +diff --git a/lib/gl_oset.h b/lib/gl_oset.h +index 5e15919..740a1b4 100644 +--- a/lib/gl_oset.h ++++ b/lib/gl_oset.h +@@ -272,7 +272,7 @@ gl_oset_search_atleast (gl_oset_t set, + ->search_atleast (set, threshold_fn, threshold, eltp); + } + +-GL_OSET_INLINE _GL_ATTRIBUTE_NODISCARD int ++_GL_ATTRIBUTE_NODISCARD GL_OSET_INLINE int + gl_oset_nx_add (gl_oset_t set, const void *elt) + { + return ((const struct gl_oset_impl_base *) set)->vtable->nx_add (set, elt); diff --git a/repos/spack_repo/builtin/packages/m4/package.py b/repos/spack_repo/builtin/packages/m4/package.py index 154576b3338..217c1e6cd00 100644 --- a/repos/spack_repo/builtin/packages/m4/package.py +++ b/repos/spack_repo/builtin/packages/m4/package.py @@ -19,6 +19,9 @@ class M4(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") + maintainers("CodingYayaToure") + + version("1.4.21", sha256="38ae59f7a30bf9c108193cc5c25fbb06014f21e230c7ede2eff614f7b7c37ed8") version("1.4.20", sha256="6ac4fc31ce440debe63987c2ebbf9d7b6634e67a7c3279257dc7361de8bdb3ef") version("1.4.19", sha256="3be4a26d825ffdfda52a56fc43246456989a3630093cced3fbddf4771ee58a70") version("1.4.18", sha256="ab2633921a5cd38e48797bf5521ad259bdc4b979078034a3b790d7fec5493fab") @@ -58,6 +61,18 @@ class M4(AutotoolsPackage, GNUMirrorPackage): depends_on("diffutils", type="build") depends_on("libsigsegv", when="+sigsegv") + # Older versions require too many patches for newer compilers + with when("@:1.4.18"): + conflicts("%gcc@14:", msg="This version is incompatible with gcc@14:") + conflicts("%clang@16:", msg="This version is incompatible with clang@16") + + # Fix c++17 '[[nodiscard]]' attribute ordering (fixed in 1.4.20) + patch( + "nodiscard.patch", + when="@1.4.19", + sha256="5c4071ae35e6ecf7f683ad714558a0030f21cc2b0673dde2ca6ca753cd0dbb2e", + ) + build_directory = "spack-build" tags = ["build-tools"] @@ -116,6 +131,10 @@ def configure_args(self): if spec.satisfies("%intel@:18"): args.append("CFLAGS=-no-gcc") + # Use C11 std to ensure two-arg static_assert (no C23 for Intel Classic) + if spec.satisfies("@1.4.10: %intel"): + args.append("CFLAGS=-std=c11") + if "+sigsegv" in spec: args.append("--with-libsigsegv-prefix={0}".format(spec["libsigsegv"].prefix)) else: @@ -130,7 +149,7 @@ def configure_args(self): def test_version(self): """ensure m4 version matches installed spec""" - m4 = which(self.prefix.bin.m4) + m4 = which(self.prefix.bin.m4, required=True) out = m4("--version", output=str.split, error=str.split) assert str(self.spec.version) in out @@ -138,7 +157,7 @@ def test_hello(self): """ensure m4 hello example runs""" test_data_dir = self.test_suite.current_test_data_dir hello_file = test_data_dir.join("hello.m4") - m4 = which(self.prefix.bin.m4) + m4 = which(self.prefix.bin.m4, required=True) out = m4(hello_file, output=str.split, error=str.split) expected = get_escaped_text_output(test_data_dir.join("hello.out")) diff --git a/repos/spack_repo/builtin/packages/macsio/package.py b/repos/spack_repo/builtin/packages/macsio/package.py index 426e46ff2be..7eafaffd9c1 100644 --- a/repos/spack_repo/builtin/packages/macsio/package.py +++ b/repos/spack_repo/builtin/packages/macsio/package.py @@ -42,12 +42,12 @@ class Macsio(CMakePackage): depends_on("hdf5+hl", when="+hdf5") # depends_on('hdf5+szip', when="+szip") depends_on("exodusii", when="+exodus") - # pdb is packaged with silo - depends_on("silo", when="+pdb") depends_on("typhonio", when="+typhonio") depends_on("scr", when="+scr") # macsio@1.1 has bug with ~mpi configuration conflicts("~mpi", when="@1.1") + # pdb is packaged with silo + conflicts("~silo +pdb") # Ref: https://github.com/LLNL/MACSio/commit/51b8c40cd9813adec5dd4dd6cee948bb9ddb7ee1 patch("cast.patch", when="@1.1") @@ -66,9 +66,7 @@ def cmake_args(self): cmake_args.append("-DWITH_SILO_PREFIX={0}".format(spec["silo"].prefix)) if "+pdb" in spec: - # pdb is a part of silo cmake_args.append("-DENABLE_PDB_PLUGIN=ON") - cmake_args.append("-DWITH_SILO_PREFIX={0}".format(spec["silo"].prefix)) if "+hdf5" in spec: cmake_args.append("-DENABLE_HDF5_PLUGIN=ON") cmake_args.append("-DWITH_HDF5_PREFIX={0}".format(spec["hdf5"].prefix)) diff --git a/repos/spack_repo/builtin/packages/madgraph5amc/array-bounds.patch b/repos/spack_repo/builtin/packages/madgraph5amc/array-bounds.patch deleted file mode 100644 index 279e359580d..00000000000 --- a/repos/spack_repo/builtin/packages/madgraph5amc/array-bounds.patch +++ /dev/null @@ -1,124 +0,0 @@ -diff --git a/vendor/CutTools/src/qcdloop/aaxex.f b/vendor/CutTools/src/qcdloop/aaxex.f -index 3b1a723..279771c 100644 ---- a/vendor/CutTools/src/qcdloop/aaxex.f -+++ b/vendor/CutTools/src/qcdloop/aaxex.f -@@ -239,7 +239,7 @@ - * - * local variables - * -- integer i,j,ier0,ier1,ij2k(4,4),m2ijk(3,20) -+ integer i,j,ier0,ier1,ij2k(4,4),m2ijk(3,35) - DOUBLE PRECISION xi5(10),f1,f2,f3,f4,absc - DOUBLE COMPLEX R(70),cd0i(5),cd1ij(3,5),ce2ij(4,4),ce3ijk(4,4,4) - + ,cd2ijk(3,3,5),cd2i(5),cxy(70),cc,rg(4),cexj(39) -@@ -271,7 +271,15 @@ - + 3,3,4, 4,4,1, - + 4,4,2, 4,4,3, - + 1,2,3, 1,2,4, -- + 1,3,4, 2,3,4/ -+ + 1,3,4, 2,3,4, -+ + 0,0,0, 0,0,0, -+ + 0,0,0, 0,0,0, -+ + 0,0,0, 0,0,0, -+ + 0,0,0, 0,0,0, -+ + 0,0,0, 0,0,0, -+ + 0,0,0, 0,0,0, -+ + 0,0,0, 0,0,0, -+ + 0,0,0/ - * - * #] declarations: - * #[ kinematical quatities for 5pv-red: -diff --git a/vendor/IREGI/src/qcdloop/ff/aaxex.f b/vendor/IREGI/src/qcdloop/ff/aaxex.f -index 3b1a723..279771c 100644 ---- a/vendor/IREGI/src/qcdloop/ff/aaxex.f -+++ b/vendor/IREGI/src/qcdloop/ff/aaxex.f -@@ -239,7 +239,7 @@ - * - * local variables - * -- integer i,j,ier0,ier1,ij2k(4,4),m2ijk(3,20) -+ integer i,j,ier0,ier1,ij2k(4,4),m2ijk(3,35) - DOUBLE PRECISION xi5(10),f1,f2,f3,f4,absc - DOUBLE COMPLEX R(70),cd0i(5),cd1ij(3,5),ce2ij(4,4),ce3ijk(4,4,4) - + ,cd2ijk(3,3,5),cd2i(5),cxy(70),cc,rg(4),cexj(39) -@@ -271,7 +271,15 @@ - + 3,3,4, 4,4,1, - + 4,4,2, 4,4,3, - + 1,2,3, 1,2,4, -- + 1,3,4, 2,3,4/ -+ + 1,3,4, 2,3,4, -+ + 0,0,0, 0,0,0, -+ + 0,0,0, 0,0,0, -+ + 0,0,0, 0,0,0, -+ + 0,0,0, 0,0,0, -+ + 0,0,0, 0,0,0, -+ + 0,0,0, 0,0,0, -+ + 0,0,0, 0,0,0, -+ + 0,0,0/ - * - * #] declarations: - * #[ kinematical quatities for 5pv-red: -diff --git a/vendor/CutTools/src/qcdloop/ffxd0p.f b/vendor/CutTools/src/qcdloop/ffxd0p.f -index 4805434..38ee638 100644 ---- a/vendor/CutTools/src/qcdloop/ffxd0p.f -+++ b/vendor/CutTools/src/qcdloop/ffxd0p.f -@@ -33,7 +33,7 @@ - * arguments - * - DOUBLE COMPLEX cs4(175),cfac -- integer ipi12(26),isoort(16),ier -+ integer ipi12(27),isoort(16),ier - logical ldel2s - DOUBLE PRECISION xpi(10),dpipj(10,10),piDpj(10,10), - + xqi(10),dqiqj(10,10),qiDqj(10,10),ai(4),daiaj(4,4) -diff --git a/vendor/IREGI/src/qcdloop/ff/ffxd0p.f b/vendor/IREGI/src/qcdloop/ff/ffxd0p.f -index 4805434..38ee638 100644 ---- a/vendor/IREGI/src/qcdloop/ff/ffxd0p.f -+++ b/vendor/IREGI/src/qcdloop/ff/ffxd0p.f -@@ -33,7 +33,7 @@ - * arguments - * - DOUBLE COMPLEX cs4(175),cfac -- integer ipi12(26),isoort(16),ier -+ integer ipi12(27),isoort(16),ier - logical ldel2s - DOUBLE PRECISION xpi(10),dpipj(10,10),piDpj(10,10), - + xqi(10),dqiqj(10,10),qiDqj(10,10),ai(4),daiaj(4,4) -diff --git a/vendor/StdHEP/src/stdhep/GNUmakefile b/vendor/StdHEP/src/stdhep/GNUmakefile -index 4abfa76..a29fdfb 100644 ---- a/vendor/StdHEP/src/stdhep/GNUmakefile -+++ b/vendor/StdHEP/src/stdhep/GNUmakefile -@@ -6,7 +6,7 @@ include ../stdhep_arch - STDHEP_DIR = ../.. - - #this has been added by MZ --FFLAGS+= -fd-lines-as-code -+FFLAGS+= -fd-lines-as-code -std=legacy -fcommon - - SLIB = $(STDHEP_DIR)/lib - SBIN = $(STDHEP_DIR)/bin -diff --git a/vendor/StdHEP/mcfio/src/GNUmakefile b/vendor/StdHEP/mcfio/src/GNUmakefile -index a818e5e..472baa3 100644 ---- a/vendor/StdHEP/mcfio/src/GNUmakefile -+++ b/vendor/StdHEP/mcfio/src/GNUmakefile -@@ -20,6 +20,7 @@ ifdef HISTO_DIR - CINC += -I$(HISTO_DIR)/include - HLIB += $(HISTO_DIR)/lib/libCHisto.a - endif -+CFLAGS += -fcommon - - CL_F_SRC = mcfio_FPrintDictionary \ - mcf_evt_xdr mcfio_FBinding mcfio_Util1 \ -diff --git a/vendor/StdHEP/src/stdhep/GNUmakefile b/vendor/StdHEP/src/stdhep/GNUmakefile -index 737b941..6d2660b 100644 ---- a/vendor/StdHEP/src/stdhep/GNUmakefile -+++ b/vendor/StdHEP/src/stdhep/GNUmakefile -@@ -15,7 +15,7 @@ SINC = $(STDHEP_DIR)/src/inc - INCS = -I$(SINC) -I$(STDHEP_DIR)/mcfio/src \ - -I$(SINC)/isajet -I$(SINC)/pythia -I$(SINC)/herwig \ - -I$(SINC)/qq -I$(SINC)/dpm --CFLAGS += -I$(SINC) -I$(STDHEP_DIR)/mcfio/src -+CFLAGS += -I$(SINC) -I$(STDHEP_DIR)/mcfio/src -fcommon - CPPFLGS = $(KPPFLAGS) $(INCS) - - FOBJS = $(patsubst %.F,%$(SFX).o,$(wildcard *.F)) diff --git a/repos/spack_repo/builtin/packages/madgraph5amc/madgraph5amc-2.7.3.atlas.patch b/repos/spack_repo/builtin/packages/madgraph5amc/madgraph5amc-2.7.3.atlas.patch deleted file mode 100644 index 6ad5bf8d945..00000000000 --- a/repos/spack_repo/builtin/packages/madgraph5amc/madgraph5amc-2.7.3.atlas.patch +++ /dev/null @@ -1,1004 +0,0 @@ ---- models/sm/restrict_ckm.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_ckm.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,30 +16,30 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### - ## INFORMATION FOR WOLFENSTEIN - ################################### - Block Wolfenstein -- 1 2.253000e-01 # lamWS -- 2 8.080000e-01 # AWS -- 3 1.320000e-01 # rhoWS -- 4 3.410000e-01 # etaWS -+ 1 2.257000e-01 # lamWS -+ 2 8.140000e-01 # AWS -+ 3 1.350000e-01 # rhoWS -+ 4 3.490000e-01 # etaWS - - ################################### - ## INFORMATION FOR YUKAWA -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/sm/restrict_c_mass.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_c_mass.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,20 +16,20 @@ - Block MASS - 4 1.550000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 1.550000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/sm/restrict_default.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_default.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,20 +16,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/sm/restrict_lepton_masses.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_lepton_masses.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,20 +16,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 5.110000e-04 # Me - 13 1.056600e-01 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 2.270000e-12 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 5.110000e-04 # yme - 13 1.056600e-01 # ymm - 15 1.777000e+00 # ymtau ---- models/sm/restrict_no_b_mass.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_no_b_mass.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,20 +16,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 0.000000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 0.000000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/sm/restrict_no_masses.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_no_masses.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,20 +16,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 0.000000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 0.000000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.320000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 0.000000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 0.000000e+00 # ymtau ---- models/sm/restrict_no_tau_mass.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_no_tau_mass.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,20 +16,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 0.000000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 0.000000e+00 # ymtau ---- models/sm/restrict_no_widths.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_no_widths.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -16,7 +16,7 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 1.777000e+00 # MTA ---- models/sm/restrict_zeromass_ckm.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_zeromass_ckm.dat 2016-05-03 22:54:20.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,30 +16,30 @@ - Block MASS - 4 0.000000e+00 # MC - 5 0.000000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 0.000000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### - ## INFORMATION FOR WOLFENSTEIN - ################################### - Block Wolfenstein -- 1 2.253000e-01 # lamWS -- 2 8.080000e-01 # AWS -- 3 1.320000e-01 # rhoWS -- 4 3.410000e-01 # etaWS -+ 1 2.257000e-01 # lamWS -+ 2 8.140000e-01 # AWS -+ 3 1.350000e-01 # rhoWS -+ 4 3.490000e-01 # etaWS - - ################################### - ## INFORMATION FOR YUKAWA -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 0.000000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 0.000000e+00 # ymtau ---- models/loop_sm/restrict_ckm.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_ckm.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,30 +22,30 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### - ## INFORMATION FOR WOLFENSTEIN - ################################### - Block Wolfenstein -- 1 2.253000e-01 # lamWS -- 2 8.080000e-01 # AWS -- 3 1.320000e-01 # rhoWS -- 4 3.410000e-01 # etaWS -+ 1 2.257000e-01 # lamWS -+ 2 8.140000e-01 # AWS -+ 3 1.350000e-01 # rhoWS -+ 4 3.490000e-01 # etaWS - - ################################### - ## INFORMATION FOR YUKAWA -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/loop_sm/restrict_c_mass.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_c_mass.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,20 +22,20 @@ - Block MASS - 4 1.550000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 1.550000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/loop_sm/restrict_default.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_default.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,20 +22,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/loop_sm/restrict_lepton_masses.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_lepton_masses.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,20 +22,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 5.110000e-04 # Me - 13 1.056600e-01 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 2.270000e-12 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 5.110000e-04 # yme - 13 1.056600e-01 # ymm - 15 1.777000e+00 # ymtau ---- models/loop_sm/restrict_no_b_mass.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_no_b_mass.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,20 +22,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 0.000000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 0.000000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/loop_sm/restrict_no_masses.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_no_masses.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,20 +22,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 0.000000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 0.000000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 0.000000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 0.000000e+00 # ymtau ---- models/loop_sm/restrict_no_tau_mass.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_no_tau_mass.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,20 +22,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 0.000000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 0.000000e+00 # ymtau ---- models/loop_sm/restrict_no_widths.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_no_widths.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -22,7 +22,7 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 1.777000e+00 # MTA -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/loop_sm/restrict_parallel_test.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_parallel_test.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -22,7 +22,7 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.620000e+00 # MB -- 6 1.743000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 1.777000e+00 # MTA -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.6200000e+00 # ymb -- 6 1.743000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/loop_sm/restrict_test.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_test.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -22,7 +22,7 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 1.777000e+00 # MTA ---- models/loop_sm/restrict_zeromass_ckm.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_zeromass_ckm.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,30 +22,30 @@ - Block MASS - 4 0.000000e+00 # MC - 5 0.000000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 0.000000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### - ## INFORMATION FOR WOLFENSTEIN - ################################### - Block Wolfenstein -- 1 2.253000e-01 # lamWS -- 2 8.080000e-01 # AWS -- 3 1.320000e-01 # rhoWS -- 4 3.410000e-01 # etaWS -+ 1 2.257000e-01 # lamWS -+ 2 8.140000e-01 # AWS -+ 3 1.350000e-01 # rhoWS -+ 4 3.490000e-01 # etaWS - - ################################### - ## INFORMATION FOR YUKAWA -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 0.000000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 0.000000e+00 # ymtau ---- bin/.compile.py.orig 2017-02-23 09:30:11.498513439 +0100 -+++ bin/.compile.py 2017-02-23 09:30:45.660867637 +0100 -@@ -59,7 +59,8 @@ - self.make_stdHep() - self.make_CutTools() - self.make_IREGI() -- self.install_package(ext_programs) -+ if ext_programs: -+ self.install_package(ext_programs) - self.test_output_LO() - self.test_output_NLO() - self.precompilation(debug=True) ---- madgraph/interface/loop_interface.py.orig 2018-05-01 10:19:36.391921213 +0300 -+++ madgraph/interface/loop_interface.py 2018-05-01 10:20:08.019974345 +0300 -@@ -23,7 +23,7 @@ - import re - - import madgraph --from madgraph import MG4DIR, MG5DIR, MadGraph5Error -+from madgraph import MG4DIR, MG5DIR, MadGraph5Error, ReadWrite - import madgraph.interface.madgraph_interface as mg_interface - import madgraph.interface.extended_cmd as cmd - import madgraph.interface.launch_ext_program as launch_ext -@@ -503,6 +503,9 @@ - if (opt['ninja'] is None) or (os.path.isfile(pjoin(MG5DIR, opt['ninja'],'libninja.a'))): - return - -+ if not ReadWrite: -+ return -+ - logger.info("First output using loop matrix-elements has been detected. Now asking for loop reduction:", '$MG:BOLD') - to_install = self.ask('install', '0', ask_class=AskLoopInstaller, timeout=300, - path_msg=' ') - - ---- madgraph/various/misc.py.orig 2018-04-29 15:59:44.000000000 +0200 -+++ madgraph/various/misc.py 2018-07-18 10:11:06.000000000 +0200 -@@ -469,6 +469,8 @@ - try: - if nb_core > 1: - cmd.append('-j%s' % nb_core) -+ if nb_core < 0: -+ cmd.append('-j1') - cmd += arg - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, cwd=cwd, **opt) - ---- bin/.compile.py.orig 2018-07-18 10:56:33.000000000 +0200 -+++ bin/.compile.py 2018-07-18 10:42:56.000000000 +0200 -@@ -168,7 +168,7 @@ - text = text.replace(base,compiler) - open(path, 'w').writelines(text) - -- misc.compile(cwd = os.path.join(MG5DIR, 'vendor', 'StdHEP')) -+ misc.compile(cwd = os.path.join(MG5DIR, 'vendor', 'StdHEP'), nb_core=-1) - - @staticmethod - def make_CutTools(): -@@ -190,7 +190,7 @@ - text = text.replace(base,compiler) - open(path, 'w').writelines(text) - -- misc.compile(cwd = os.path.join(MG5DIR, 'vendor', 'CutTools')) -+ misc.compile(cwd = os.path.join(MG5DIR, 'vendor', 'CutTools'), nb_core=-1) - - @staticmethod - def make_IREGI(): -@@ -274,7 +274,7 @@ - open(name,'w').write('\n'.join(lines)) - mod = False - -- misc.compile(cwd = os.path.join(iregi_path,'src')) -+ misc.compile(cwd = os.path.join(iregi_path,'src'), nb_core=-1) - - def install_package(self, programs=[]): - print "installing external package" diff --git a/repos/spack_repo/builtin/packages/madgraph5amc/madgraph5amc-2.8.0.atlas.patch b/repos/spack_repo/builtin/packages/madgraph5amc/madgraph5amc-2.8.0.atlas.patch deleted file mode 100644 index 706ace34620..00000000000 --- a/repos/spack_repo/builtin/packages/madgraph5amc/madgraph5amc-2.8.0.atlas.patch +++ /dev/null @@ -1,1086 +0,0 @@ ---- models/sm/restrict_ckm.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_ckm.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,30 +16,30 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### - ## INFORMATION FOR WOLFENSTEIN - ################################### - Block Wolfenstein -- 1 2.253000e-01 # lamWS -- 2 8.080000e-01 # AWS -- 3 1.320000e-01 # rhoWS -- 4 3.410000e-01 # etaWS -+ 1 2.257000e-01 # lamWS -+ 2 8.140000e-01 # AWS -+ 3 1.350000e-01 # rhoWS -+ 4 3.490000e-01 # etaWS - - ################################### - ## INFORMATION FOR YUKAWA -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/sm/restrict_c_mass.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_c_mass.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,20 +16,20 @@ - Block MASS - 4 1.550000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 1.550000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/sm/restrict_default.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_default.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,20 +16,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/sm/restrict_lepton_masses.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_lepton_masses.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,20 +16,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 5.110000e-04 # Me - 13 1.056600e-01 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 2.270000e-12 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 5.110000e-04 # yme - 13 1.056600e-01 # ymm - 15 1.777000e+00 # ymtau ---- models/sm/restrict_no_b_mass.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_no_b_mass.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,20 +16,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 0.000000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 0.000000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/sm/restrict_no_masses.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_no_masses.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,20 +16,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 0.000000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 0.000000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.320000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 0.000000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 0.000000e+00 # ymtau ---- models/sm/restrict_no_tau_mass.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_no_tau_mass.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,20 +16,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 0.000000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 0.000000e+00 # ymtau ---- models/sm/restrict_no_widths.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_no_widths.dat 2016-05-03 22:54:19.000000001 +0200 -@@ -16,7 +16,7 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 1.777000e+00 # MTA ---- models/sm/restrict_zeromass_ckm.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/sm/restrict_zeromass_ckm.dat 2016-05-03 22:54:20.000000001 +0200 -@@ -6,9 +6,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -16,30 +16,30 @@ - Block MASS - 4 0.000000e+00 # MC - 5 0.000000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 0.000000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### - ## INFORMATION FOR WOLFENSTEIN - ################################### - Block Wolfenstein -- 1 2.253000e-01 # lamWS -- 2 8.080000e-01 # AWS -- 3 1.320000e-01 # rhoWS -- 4 3.410000e-01 # etaWS -+ 1 2.257000e-01 # lamWS -+ 2 8.140000e-01 # AWS -+ 3 1.350000e-01 # rhoWS -+ 4 3.490000e-01 # etaWS - - ################################### - ## INFORMATION FOR YUKAWA -@@ -47,7 +47,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 0.000000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 0.000000e+00 # ymtau ---- models/loop_sm/restrict_ckm.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_ckm.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,30 +22,30 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### - ## INFORMATION FOR WOLFENSTEIN - ################################### - Block Wolfenstein -- 1 2.253000e-01 # lamWS -- 2 8.080000e-01 # AWS -- 3 1.320000e-01 # rhoWS -- 4 3.410000e-01 # etaWS -+ 1 2.257000e-01 # lamWS -+ 2 8.140000e-01 # AWS -+ 3 1.350000e-01 # rhoWS -+ 4 3.490000e-01 # etaWS - - ################################### - ## INFORMATION FOR YUKAWA -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/loop_sm/restrict_c_mass.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_c_mass.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,20 +22,20 @@ - Block MASS - 4 1.550000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 1.550000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/loop_sm/restrict_default.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_default.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,20 +22,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/loop_sm/restrict_lepton_masses.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_lepton_masses.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,20 +22,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 5.110000e-04 # Me - 13 1.056600e-01 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 2.270000e-12 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 5.110000e-04 # yme - 13 1.056600e-01 # ymm - 15 1.777000e+00 # ymtau ---- models/loop_sm/restrict_no_b_mass.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_no_b_mass.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,20 +22,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 0.000000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM -- 15 1.777000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 0.000000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/loop_sm/restrict_no_masses.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_no_masses.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,20 +22,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 0.000000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 0.000000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 0.000000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 0.000000e+00 # ymtau ---- models/loop_sm/restrict_no_tau_mass.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_no_tau_mass.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,20 +22,20 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 0.000000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 0.000000e+00 # ymtau ---- models/loop_sm/restrict_no_widths.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_no_widths.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -22,7 +22,7 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 1.777000e+00 # MTA -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.700000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/loop_sm/restrict_parallel_test.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_parallel_test.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -22,7 +22,7 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.620000e+00 # MB -- 6 1.743000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 1.777000e+00 # MTA -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 4.6200000e+00 # ymb -- 6 1.743000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 1.777000e+00 # ymtau ---- models/loop_sm/restrict_test.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_test.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -22,7 +22,7 @@ - Block MASS - 4 0.000000e+00 # MC - 5 4.700000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 1.777000e+00 # MTA ---- models/loop_sm/restrict_zeromass_ckm.dat 2015-10-26 02:18:52.000000001 +0100 -+++ models/loop_sm/restrict_zeromass_ckm.dat 2016-05-03 22:54:29.000000001 +0200 -@@ -12,9 +12,9 @@ - ## INFORMATION FOR SMINPUTS - ################################### - Block SMINPUTS -- 1 1.325070e+02 # aEWM1 -- 2 1.166390e-05 # Gf -- 3 1.180000e-01 # aS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS - - ################################### - ## INFORMATION FOR MASS -@@ -22,30 +22,30 @@ - Block MASS - 4 0.000000e+00 # MC - 5 0.000000e+00 # MB -- 6 1.730000e+02 # MT -+ 6 1.725000e+02 # MT - 11 0.000000e+00 # Me - 13 0.000000e+00 # MM - 15 0.000000e+00 # MTA -- 23 9.118800e+01 # MZ -+ 23 9.118760e+01 # MZ - 25 1.250000e+02 # MH - - ################################### - ## INFORMATION FOR DECAY - ################################### --DECAY 6 1.491500E+00 -+DECAY 6 1.32000000E+00 - DECAY 15 0.000000e+00 --DECAY 23 2.441404e+00 --DECAY 24 2.047600e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 - DECAY 25 6.38233934e-03 - - ################################### - ## INFORMATION FOR WOLFENSTEIN - ################################### - Block Wolfenstein -- 1 2.253000e-01 # lamWS -- 2 8.080000e-01 # AWS -- 3 1.320000e-01 # rhoWS -- 4 3.410000e-01 # etaWS -+ 1 2.257000e-01 # lamWS -+ 2 8.140000e-01 # AWS -+ 3 1.350000e-01 # rhoWS -+ 4 3.490000e-01 # etaWS - - ################################### - ## INFORMATION FOR YUKAWA -@@ -53,7 +53,7 @@ - Block YUKAWA - 4 0.000000e+00 # ymc - 5 0.000000e+00 # ymb -- 6 1.730000e+02 # ymt -+ 6 1.725000e+02 # ymt - 11 0.000000e+00 # yme - 13 0.000000e+00 # ymm - 15 0.000000e+00 # ymtau ---- bin/.compile.py.orig 2017-02-23 09:30:11.498513439 +0100 -+++ bin/.compile.py 2017-02-23 09:30:45.660867637 +0100 -@@ -59,7 +59,8 @@ - self.make_stdHep() - self.make_CutTools() - self.make_IREGI() -- self.install_package(ext_programs) -+ if ext_programs: -+ self.install_package(ext_programs) - self.test_output_LO() - self.test_output_NLO() - self.precompilation(debug=True) ---- madgraph/interface/loop_interface.py.orig 2018-05-01 10:19:36.391921213 +0300 -+++ madgraph/interface/loop_interface.py 2018-05-01 10:20:08.019974345 +0300 -@@ -23,7 +23,7 @@ - import re - - import madgraph --from madgraph import MG4DIR, MG5DIR, MadGraph5Error -+from madgraph import MG4DIR, MG5DIR, MadGraph5Error, ReadWrite - import madgraph.interface.madgraph_interface as mg_interface - import madgraph.interface.extended_cmd as cmd - import madgraph.interface.launch_ext_program as launch_ext -@@ -503,6 +503,9 @@ - if (opt['ninja'] is None) or (os.path.isfile(pjoin(MG5DIR, opt['ninja'],'libninja.a'))): - return - -+ if not ReadWrite: -+ return -+ - logger.info("First output using loop matrix-elements has been detected. Now asking for loop reduction:", '$MG:BOLD') - to_install = self.ask('install', '0', ask_class=AskLoopInstaller, timeout=300, - path_msg=' ') - ---- madgraph/various/misc.py.orig 2018-04-29 15:59:44.000000000 +0200 -+++ madgraph/various/misc.py 2018-07-18 10:11:06.000000000 +0200 -@@ -469,6 +469,8 @@ - try: - if nb_core > 1: - cmd.append('-j%s' % nb_core) -+ if nb_core < 0: -+ cmd.append('-j1') - cmd += arg - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, cwd=cwd, **opt) - ---- bin/.compile.py.orig 2018-07-18 10:56:33.000000000 +0200 -+++ bin/.compile.py 2018-07-18 10:42:56.000000000 +0200 -@@ -168,7 +168,7 @@ - text = text.replace(base,compiler) - open(path, 'w').writelines(text) - -- misc.compile(cwd = os.path.join(MG5DIR, 'vendor', 'StdHEP')) -+ misc.compile(cwd = os.path.join(MG5DIR, 'vendor', 'StdHEP'), nb_core=-1) - - @staticmethod - def make_CutTools(): -@@ -190,7 +190,7 @@ - text = text.replace(base,compiler) - open(path, 'w').writelines(text) - -- misc.compile(cwd = os.path.join(MG5DIR, 'vendor', 'CutTools')) -+ misc.compile(cwd = os.path.join(MG5DIR, 'vendor', 'CutTools'), nb_core=-1) - - @staticmethod - def make_IREGI(): -@@ -274,7 +274,7 @@ - open(name,'w').write('\n'.join(lines)) - mod = False - -- misc.compile(cwd = os.path.join(iregi_path,'src')) -+ misc.compile(cwd = os.path.join(iregi_path,'src'), nb_core=-1) - - def install_package(self, programs=[]): - print "installing external package" ---- madgraph/various/cluster.py.orig 2020-02-03 16:49:15.391981789 +0100 -+++ madgraph/various/cluster.py 2020-02-03 16:50:03.040159965 +0100 -@@ -875,7 +875,7 @@ - """ - - if self.cluster_queue not in ['None', None]: -- requirement = 'Requirements = %s=?=True' % self.cluster_queue -+ requirement = '+JobFlavour = "%s"' % self.cluster_queue - else: - requirement = '' - -@@ -951,7 +951,7 @@ - """ - - if self.cluster_queue not in ['None', None]: -- requirement = 'Requirements = %s=?=True' % self.cluster_queue -+ requirement = '+JobFlavour = "%s"' % self.cluster_queue - else: - requirement = '' - ---- /dev/null 2020-09-02 07:36:17.604620197 +0200 -+++ models/loop_sm/restrict_ckm_c_mass.dat 2020-09-02 13:18:03.083179993 +0200 -@@ -0,0 +1,59 @@ -+###################################################################### -+## PARAM_CARD AUTOMATICALY GENERATED BY THE UFO ##################### -+###################################################################### -+ -+################################### -+### INFORMATION FOR LOOP -+#################################### -+Block loop -+ 1 9.118800e+01 # MU_R -+ -+################################### -+## INFORMATION FOR SMINPUTS -+################################### -+Block SMINPUTS -+ 1 1.32348905e+02 # aEWM1 -+ 2 1.16637000e-05 # Gf -+ 3 1.18400000e-01 # aS -+ -+################################### -+## INFORMATION FOR MASS -+################################### -+Block MASS -+ 4 1.550000e+00 # MC -+ 5 4.700000e+00 # MB -+ 6 1.725000e+02 # MT -+ 11 0.000000e+00 # Me -+ 13 0.000000e+00 # MM -+ 15 1.776820e+00 # MTA -+ 23 9.118760e+01 # MZ -+ 25 1.250000e+02 # MH -+ -+################################### -+## INFORMATION FOR DECAY -+################################### -+DECAY 6 1.32000000E+00 -+DECAY 15 0.000000e+00 -+DECAY 23 2.49520000e+00 -+DECAY 24 2.085000e+00 -+DECAY 25 6.38233934e-03 -+ -+################################### -+## INFORMATION FOR WOLFENSTEIN -+################################### -+Block Wolfenstein -+ 1 2.257000e-01 # lamWS -+ 2 8.140000e-01 # AWS -+ 3 1.350000e-01 # rhoWS -+ 4 3.490000e-01 # etaWS -+ -+################################### -+## INFORMATION FOR YUKAWA -+################################### -+Block YUKAWA -+ 4 1.550000e+00 # ymc -+ 5 4.700000e+00 # ymb -+ 6 1.725000e+02 # ymt -+ 11 0.000000e+00 # yme -+ 13 0.000000e+00 # ymm -+ 15 1.777000e+00 # ymtau - diff --git a/repos/spack_repo/builtin/packages/madgraph5amc/package.py b/repos/spack_repo/builtin/packages/madgraph5amc/package.py index fad83608995..fdbfd771bd1 100644 --- a/repos/spack_repo/builtin/packages/madgraph5amc/package.py +++ b/repos/spack_repo/builtin/packages/madgraph5amc/package.py @@ -26,30 +26,13 @@ class Madgraph5amc(MakefilePackage): timeout = {"timeout": 60} with default_args(fetch_options=timeout): + version("3.5.9", sha256="1e707fcd18f5b967c3f6220b3e5538622c93472376cae6666c56d0f2c2dd4b92") version("3.5.6", sha256="d4f336196303df748074ac92f251db8e6592fca37b3059c2e0f2a764c7e50975") version( "2.9.20", sha256="09a70e2e8b52e504bcaaa6527d3cec9641b043f5f853f2d11fa3c9970b7efae9", preferred=True, ) - with default_args(deprecated=True): - version( - "2.9.19", sha256="ec95d40ec8845e57682400ef24a3b769a4d0542e3a849b7c5e10105d0a0f8e61" - ) - version( - "2.9.17", sha256="6781c515ccc2005a953c35dcf9238632b761a937f1832bdfaa5514510b8c5a17" - ) - # Older versions have been removed, only the latest LTS versions are available: - version( - "2.8.3.2", - sha256="4077eee75f9255fe627755fe0ac5da5d72f5d5c4f70b6e06e4e564e9c512b215", - url="https://launchpad.net/mg5amcnlo/lts/2.8.x/+download/MG5_aMC_v2.8.3.2.tar.gz", - ) - version( - "2.7.3.py3", - sha256="400c26f9b15b07baaad9bd62091ceea785c2d3a59618fdc27cad213816bc7225", - url="https://launchpad.net/mg5amcnlo/lts/2.7.x/+download/MG5_aMC_v2.7.3.py3.tar.gz", - ) variant( "atlas", @@ -60,25 +43,20 @@ class Madgraph5amc(MakefilePackage): variant("collier", default=False, description="Use external installation" + " of Collier") variant("pythia8", default=False, description="Use external installation of Pythia8") - conflicts("%gcc@10:", when="@2.7.3") + depends_on("fortran", type="build") + depends_on("cxx", type="build") - depends_on("syscalc") depends_on("gosam-contrib", when="+ninja") depends_on("collier", when="+collier") depends_on("lhapdf") depends_on("fastjet") - depends_on("py-six", when="@2.7.3.py3,2.8.0:", type=("build", "run")) + depends_on("py-six", type=("build", "run")) - depends_on("python@3.7:", when="@2.7.3.py3", type=("build", "run")) depends_on("libtirpc") depends_on("pythia8", when="+pythia8") patch("gcc14.patch", when="@:3.5.5%gcc@14:") - patch("array-bounds.patch", when="@:2.8.1") patch("madgraph5amc.patch", level=0, when="@:2.9") - patch("madgraph5amc-2.7.3.atlas.patch", level=0, when="@2.7.3.py3+atlas") - patch("madgraph5amc-2.8.0.atlas.patch", level=0, when="@2.8.0+atlas") - patch("madgraph5amc-2.8.0.atlas.patch", level=0, when="@2.8.1+atlas") # Fix running from CVMFS on AFS, for example on lxplus at CERN patch( "https://patch-diff.githubusercontent.com/raw/mg5amcnlo/mg5amcnlo/pull/96.diff?full_index=1", @@ -97,10 +75,8 @@ def set_parameter(name, value): join_path("input", "mg5_configuration.txt"), ) - set_parameter("syscalc_path", spec["syscalc"].prefix.bin) - if "+ninja" in spec: - set_parameter("ninja", spec["gosam-contrib"].prefix) + set_parameter("ninja", spec["gosam-contrib"].prefix.lib) if "+collier" in spec: set_parameter("collier", spec["collier"].prefix.lib) @@ -111,6 +87,9 @@ def set_parameter(name, value): set_parameter("automatic_html_opening", "False") + set_parameter("cpp_compiler", self.compiler.cxx) + set_parameter("fortran_compiler", self.compiler.fc) + def build(self, spec, prefix): with working_dir(join_path("vendor", "CutTools")): make(parallel=False) @@ -149,7 +128,7 @@ def installfile(filename): if "+pythia8" in spec: with open("install-pythia8-interface", "w") as f: f.write( - f"""set pythia8_path {spec['pythia8'].prefix} + f"""set pythia8_path {spec["pythia8"].prefix} install mg5amc_py8_interface """ ) diff --git a/repos/spack_repo/builtin/packages/magic_enum/package.py b/repos/spack_repo/builtin/packages/magic_enum/package.py index 91d921581ed..8d9007e9ee7 100644 --- a/repos/spack_repo/builtin/packages/magic_enum/package.py +++ b/repos/spack_repo/builtin/packages/magic_enum/package.py @@ -19,6 +19,7 @@ class MagicEnum(CMakePackage): license("MIT", checked_by="pranav-sivaraman") + version("0.9.7", sha256="b403d3dad4ef542fdc3024fa37d3a6cedb4ad33c72e31b6d9bab89dcaf69edf7") version("0.9.6", sha256="814791ff32218dc869845af7eb89f898ebbcfa18e8d81aa4d682d18961e13731") variant("examples", default=False, description="Enable examples") diff --git a/repos/spack_repo/builtin/packages/magics/package.py b/repos/spack_repo/builtin/packages/magics/package.py index 8db78eb6342..f9845622ff9 100644 --- a/repos/spack_repo/builtin/packages/magics/package.py +++ b/repos/spack_repo/builtin/packages/magics/package.py @@ -35,12 +35,6 @@ class Magics(CMakePackage): conflicts("%gcc@11:", when="@:4.4", msg="missing #include ") - variant( - "grib", - default="eccodes", - values=("eccodes", "grib-api"), - description="Specify GRIB backend", - ) variant("netcdf", default=False, description="Enable NetCDF support") variant("cairo", default=False, description="Enable cairo support[png/jpeg]") variant("fortran", default=False, description="Enable Fortran interface") @@ -87,8 +81,7 @@ class Magics(CMakePackage): depends_on("libpng") # GRIB support is non-optional, regardless of what the instruction says. - depends_on("eccodes", when="grib=eccodes") - depends_on("grib-api", when="grib=grib-api") + depends_on("eccodes") # Even if netcdf is disabled and -DENABLE_NETCDF=OFF is set, building # magics still requires legacy netcdf-cxx @@ -97,8 +90,7 @@ class Magics(CMakePackage): # Optional dependencies depends_on("netcdf-cxx", when="+netcdf") depends_on("pango", when="+cairo") - depends_on("libemos grib=eccodes", when="+bufr grib=eccodes") - depends_on("libemos grib=grib-api", when="+bufr grib=grib-api") + depends_on("libemos", when="+bufr") depends_on("qt", when="+metview+qt") depends_on("python", type=("build")) @@ -117,13 +109,7 @@ def patch(self): filter_file("HAVE_GRIB", "SKIP_REQUIRED_FILE_WASREMOVED", "test/CMakeLists.txt") def cmake_args(self): - args = ["-DENABLE_ODB=OFF", "-DENABLE_SPOT=OFF"] - - if self.spec.variants["grib"].value == "eccodes": - args.append("-DENABLE_ECCODES=ON") - else: - if self.spec.satisfies("@2.29.1:"): - args.append("-DENABLE_ECCODES=OFF") + args = ["-DENABLE_ODB=OFF", "-DENABLE_SPOT=OFF", "-DENABLE_ECCODES=ON"] # magics@4.2.4:4.3.1 cannot be built without netcdf if "+netcdf" in self.spec or self.spec.satisfies("@4.1.0:4.3.1"): diff --git a/repos/spack_repo/builtin/packages/magma/package.py b/repos/spack_repo/builtin/packages/magma/package.py index a0659ef3183..96342b656c1 100644 --- a/repos/spack_repo/builtin/packages/magma/package.py +++ b/repos/spack_repo/builtin/packages/magma/package.py @@ -24,6 +24,7 @@ class Magma(CMakePackage, CudaPackage, ROCmPackage): test_requires_compiler = True version("master", branch="master") + version("2.10.0", sha256="ea0c57fcb64ac2fd7ffe8f02d8fe18f07055c5b7fba0164f565d1e3a85148fb5") version("2.9.0", sha256="ff77fd3726b3dfec3bfb55790b06480aa5cc384396c2db35c56fdae4a82c641c") version("2.8.0", sha256="f4e5e75350743fe57f49b615247da2cc875e5193cc90c11b43554a7c82cc4348") version("2.7.2", sha256="729bc1a70e518a7422fe7a3a54537a4741035a77be3349f66eac5c362576d560") @@ -53,6 +54,7 @@ class Magma(CMakePackage, CudaPackage, ROCmPackage): depends_on("lapack") depends_on("cuda@8:", when="@2.5.1: +cuda") # See PR #14471 depends_on("hipblas", when="+rocm") + depends_on("hipblas@:6", when="@:2.9.0 +rocm") depends_on("hipsparse", when="+rocm") depends_on("rocm-core", when="@2.8.0: +rocm") depends_on("python", when="@master", type="build") @@ -73,6 +75,10 @@ class Magma(CMakePackage, CudaPackage, ROCmPackage): # https://github.com/icl-utk-edu/magma/issues/7 conflicts("^cuda@12.6:", when="@:2.8.0") + # 2.9.0 release not compatible with CUDA-13.0 + # https://github.com/icl-utk-edu/magma/issues/61 + conflicts("^cuda@13:", when="@:2.9.0") + # Many cuda_arch values were not recognized by MAGMA's CMakeLists.txt with when("@:2.8"): # All cuda_arch values are supported in 2.9.0 release @@ -88,6 +94,9 @@ class Magma(CMakePackage, CudaPackage, ROCmPackage): conflicts("cuda_arch=75", when="@:2.5.0", msg="magma: cuda_arch=75 needs a version > 2.5.0") conflicts("cuda_arch=80", when="@:2.5.3", msg="magma: cuda_arch=80 needs a version > 2.5.3") + # MAGMA uses mkl_zcsrmv, which is not available in MKL 2026.0+ + conflicts("^intel-oneapi-mkl@2026.0:", msg="magma: MKL 2026.0+ is not supported") + patch("ibm-xl.patch", when="@2.2:2.5.0%xl") patch("ibm-xl.patch", when="@2.2:2.5.0%xl_r") patch("magma-2.3.0-gcc-4.8.patch", when="@2.3.0%gcc@:4.8") @@ -154,6 +163,7 @@ def cmake_args(self): options.append(define("GPU_TARGET", capabilities)) archs = ";".join("%s" % i for i in cuda_arch) options.append(define("CMAKE_CUDA_ARCHITECTURES", archs)) + options.append(define("CMAKE_CUDA_FLAGS", " -Xfatbin -compress-all")) if "@2.5.0" in spec: options.append(define("MAGMA_SPARSE", False)) @@ -206,7 +216,7 @@ def test_c(self): for test, desc in tests: with test_part(self, f"test_c_{test}", purpose=f"Run {desc} example"): - exe = which(test) + exe = which(test, required=True) exe() make("clean") @@ -222,6 +232,6 @@ def test_fortran(self): with set_env(PKG_CONFIG_PATH=pkg_config_path): make = self.spec["gmake"].command make("fortran") - example_f = which("example_f") + example_f = which("example_f", required=True) example_f() make("clean") diff --git a/repos/spack_repo/builtin/packages/maker/package.py b/repos/spack_repo/builtin/packages/maker/package.py index faf857d39d1..001adb7dc58 100644 --- a/repos/spack_repo/builtin/packages/maker/package.py +++ b/repos/spack_repo/builtin/packages/maker/package.py @@ -77,8 +77,8 @@ def install(self, spec, prefix): repl = "my $go = 1;" filter_file(pattern, repl, "Build.PL", backup=False) - perl = which("perl") - rm = which("rm") + perl = which("perl", required=True) + rm = which("rm", required=True) with working_dir("src"): perl("Build.PL", "--install_base", prefix) perl("Build", "install") diff --git a/repos/spack_repo/builtin/packages/malt/package.py b/repos/spack_repo/builtin/packages/malt/package.py index fe112e7abdd..815c083bff5 100644 --- a/repos/spack_repo/builtin/packages/malt/package.py +++ b/repos/spack_repo/builtin/packages/malt/package.py @@ -16,40 +16,109 @@ class Malt(CMakePackage): # Project infos homepage = "https://memtt.github.io/malt" - url = "https://github.com/memtt/malt/releases/download/v1.2.4/malt-1.2.4.tar.bz2" + url = "https://github.com/memtt/malt/releases/download/v1.5.0/malt-1.5.0.tar.xz" maintainers("svalat") license("CECILL-C") - # Versions - version("1.2.5", sha256="9660e42f92230e6acf5c19df5195f59a4c2d7d919eeab4410fe943507eee2c67") - version("1.2.4", sha256="47068fe981b4cbbfe30eeff37767d9057992f8515106d7809ce090d3390a712f") - version("1.2.3", sha256="edba5d9e6a11308f82b9c8b61871e47a8ae18493bf8bff7b6ff4f4a4369428de") - version("1.2.2", sha256="543cace664203fd9eb6b7d4945c573a3e507a43da105b5dc7ac03c78e9bb1a10") + # Versions XZ + version("1.6.1", sha256="28082fd5d393d4e5bec1da1661d346f8c231eeda33a0f8d47bbe2dc5761c8b39") + version("1.6.0", sha256="61a4a9f0c61057eb91ef4bca9f461469c2a8a57010c2e5011b321fcc8632fc73") + version("1.5.0", sha256="da41f80855578d219079b8f0a7b333085706129e8310d8ad3f9c5b5721839bbc") + + # Version BZ2 + version( + "1.4.1", + sha256="9bd25c8a9f4d7004c32ff20cba6909e7b246c1f6c29307ef357809f4b4955d82", + url="https://github.com/memtt/malt/releases/download/v1.4.1/malt-1.4.1.tar.bz2", + ) version( - "1.2.1", - sha256="0e4c0743561f9fcc04dc83457386167a9851fc9289765f8b4f9390384ae3618a", - url="https://github.com/memtt/malt/archive/v1.2.1.tar.gz", + "1.3.1", + sha256="9f3b22ace13e0a3bc773fed4044a5c19439aeb9111077582704382b3d1675194", + url="https://github.com/memtt/malt/releases/download/v1.3.1/malt-1.3.1.tar.bz2", ) + version( + "1.2.5", + sha256="9660e42f92230e6acf5c19df5195f59a4c2d7d919eeab4410fe943507eee2c67", + url="https://github.com/memtt/malt/releases/download/v1.2.5/malt-1.2.5.tar.bz2", + ) + + # Versions now deprecated + with default_args(deprecated=True): + version( + "1.4.0", + sha256="fb64e99eec9b9d3cb46b5f9cbd1e47b31354356ebc0502c27af101dfcff68b9f", + url="https://github.com/memtt/malt/releases/download/v1.4.0/malt-1.4.0.tar.bz2", + ) + version( + "1.2.4", + sha256="47068fe981b4cbbfe30eeff37767d9057992f8515106d7809ce090d3390a712f", + url="https://github.com/memtt/malt/releases/download/v1.2.4/malt-1.2.4.tar.bz2", + ) + version( + "1.2.3", + sha256="edba5d9e6a11308f82b9c8b61871e47a8ae18493bf8bff7b6ff4f4a4369428de", + url="https://github.com/memtt/malt/releases/download/v1.2.3/malt-1.2.3.tar.bz2", + ) + version( + "1.2.2", + sha256="543cace664203fd9eb6b7d4945c573a3e507a43da105b5dc7ac03c78e9bb1a10", + url="https://github.com/memtt/malt/releases/download/v1.2.2/malt-1.2.2.tar.bz2", + ) + version( + "1.2.1", + sha256="0e4c0743561f9fcc04dc83457386167a9851fc9289765f8b4f9390384ae3618a", + url="https://github.com/memtt/malt/archive/v1.2.1.tar.gz", + ) - # Variants + # Variants up to 1.3.1 variant( "nodejs", default=True, description="Enable the installation of the Web GUI based on NodeJS", + when="@:1.3.1", ) + + # Variants up to 1.2.5 variant( "qt", default=False, - when="+nodejs", + when="+nodejs@:1.2.5", description="Build the viewer based on NodeJS + QT web toolkit (requires NodeJS too)", ) # Dependencies depends_on("cxx", type="build") + depends_on("c", type="build") + + # Old deps up to 1.3.1 + depends_on("node-js@18:", type=("build", "run"), when="+nodejs@:1.3.1") + depends_on("qt", when="+qt@:1.3.1") - depends_on("node-js@18:", type=("build", "run"), when="+nodejs") + # common deps depends_on("libelf") depends_on("libunwind") depends_on("binutils", type="run") - depends_on("qt", when="+qt") + + # from 1.4.0 - 1.4.1 + depends_on("openssl", when="@1.4.0:1.4.1") + + # since 1.4.0 + depends_on("python@3:", when="@1.4.0:") + + # since 1.5.0 + depends_on("nlohmann-json", when="@1.5.0:") + + # configure options + def cmake_args(self): + if self.spec.satisfies("@1.5.0:"): + return [f"-DPYTHON_PREFIX={self.spec['python'].prefix}", "-DLIBDIR=lib64"] + elif self.spec.satisfies("@1.4.0:"): + return [ + f"-DCRYPTO_PREFIX={self.spec['openssl'].prefix}", + f"-DPYTHON_PREFIX={self.spec['python'].prefix}", + "-DLIBDIR=lib64", + ] + else: + return [] + return [] diff --git a/repos/spack_repo/builtin/packages/micromamba/fix-threads.patch b/repos/spack_repo/builtin/packages/mamba/fix-threads.patch similarity index 100% rename from repos/spack_repo/builtin/packages/micromamba/fix-threads.patch rename to repos/spack_repo/builtin/packages/mamba/fix-threads.patch diff --git a/repos/spack_repo/builtin/packages/mamba/package.py b/repos/spack_repo/builtin/packages/mamba/package.py new file mode 100644 index 00000000000..0363c7f3193 --- /dev/null +++ b/repos/spack_repo/builtin/packages/mamba/package.py @@ -0,0 +1,115 @@ +# 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 Mamba(CMakePackage): + """Mamba is a fast, robust, and cross-platform package manager (Miniconda alternative). + Micromamba is an (almost) statically linked version of mamba. + """ + + homepage = "https://mamba.readthedocs.io/" + url = "https://github.com/mamba-org/mamba/archive/refs/tags/2.3.0.tar.gz" + + maintainers("charmoniumQ", "Chrismarsh") + + license("BSD-3-Clause") + + version("2.3.0", sha256="671432a2b64719baba54c9efda3662d321a1cc9ff3eba49047b83ffda9acf661") + + # micromamba is mamba but statically linked + # however there is some nuance in that statement + # https://github.com/mamba-org/mamba/issues/3295 + # and it needs work in this package + # variant("micromamba", + # default="False", + # description="A statically linked version of mamba") + + patch("fix-threads.patch") + + # missing header + # https://github.com/mamba-org/mamba/pull/4021 + patch( + "https://github.com/mamba-org/mamba/commit/efeac7bac7aae3e3256ea60c6dea07e3a0101344.patch?full_index=1", + sha256="530a04ca8b476db5670c7aef6295684feeda4e031c6e100181179e29f3f7b921", + when="@2.3.0", + ) + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cmake@3.16:", type="build") + + depends_on("pkgconfig", type="build") + + # deps taken from + # https://github.com/mamba-org/mamba/blob/main/libmamba/CMakeLists.txt#L423 + + depends_on("libsolv@0.7.34:+conda") + + depends_on("curl@7.66.0: libs=shared") + depends_on("libarchive crypto=mbedtls xar=libxml2") + depends_on("openssl") + depends_on("yaml-cpp") + depends_on("libreproc +cxx +shared") + depends_on("tl-expected") + + # spdlog will determine the exact version of fmt used, + depends_on("spdlog") + depends_on("fmt@11:") + + depends_on("nlohmann-json") + depends_on("cpp-termcolor") + depends_on("cli11@2.2:") + + depends_on("zstd build_system=cmake") + depends_on("simdjson +shared") + + # 1.4.2 made the static build the old "full_static" build and it needs some work. + # Only shared or full static exist now https://github.com/mamba-org/mamba/pull/2342 + # this is all broken, keep to work on as needed + + # with when("+micromamba"): + # # When linkage is static, BUILD_STATIC=ON + # # and then + # # https://github.com/mamba-org/mamba/blob/micromamba-1.0.0/libmamba/CMakeLists.txt#L523 + # # calls libmamba_create_target(libmamba-static STATIC SHARED libmamba) + # # where the third argument, SHARED, is the deps_linkage + # # as defined here, + # # https://github.com/mamba-org/mamba/blob/micromamba-1.0.0/libmamba/CMakeLists.txt#L256 + # # which would use dynamic linkage here, + # # https://github.com/mamba-org/mamba/blob/micromamba-1.0.0/libmamba/CMakeLists.txt#L420 + # # See linkage=dynamic for what that entails. + # depends_on("libsolv+conda", type="link") + # depends_on("curl libs=shared", type="link") + # depends_on("libarchive crypto=mbedtls xar=libxml2", type="link") + # depends_on("openssl", type="link") + # depends_on("yaml-cpp", type="link") + # depends_on("libreproc+cxx", type="link") + # depends_on("tl-expected", type="link") + # depends_on("fmt@9.1.0", type="link") + # depends_on("spdlog@1.11.0", type="link") + # depends_on("nlohmann-json", type="link") + # depends_on("cpp-termcolor", type="link") + # depends_on("cli11@2.2:", type="link") + + def cmake_args(self): + args = [ + self.define("BUILD_LIBMAMBA", True), + self.define("BUILD_MAMBA", True), + self.define("BUILD_SHARED", True), + # self.define("BUILD_MICROMAMBA", True), #implies BUILD_STATIC + # self.define("BUILD_STATIC", True ) + # self.define("MICROMAMBA_LINKAGE", "STATIC"), + ] + + return args + + @run_after("install") + @on_package_attributes(run_tests=True) + def check_install(self): + Executable("mamba")("--version") diff --git a/repos/spack_repo/builtin/packages/mapl/esma_cmake_apple_m1_rosetta.patch b/repos/spack_repo/builtin/packages/mapl/esma_cmake_apple_m1_rosetta.patch deleted file mode 100644 index d9f0f1b8c54..00000000000 --- a/repos/spack_repo/builtin/packages/mapl/esma_cmake_apple_m1_rosetta.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/compiler/flags/GNU_Fortran.cmake b/compiler/flags/GNU_Fortran.cmake -index 6329d3c..1014b9c 100644 ---- a/ESMA_cmake/compiler/flags/GNU_Fortran.cmake -+++ b/ESMA_cmake/compiler/flags/GNU_Fortran.cmake -@@ -131,6 +131,12 @@ elseif (${proc_decription} MATCHES "Intel") - set (GNU_NATIVE_ARCH "native") - set (PREFER_AVX128 "-mprefer-avx128") - set (NO_FMA "-mno-fma") -+elseif (${proc_decription} MATCHES "Apple M1" AND ${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "x86_64") -+ # Rosetta 2 emulator of x86_64 architecture on Apple Silicon -+ set (GNU_TARGET_ARCH "westmere") -+ set (GNU_NATIVE_ARCH "native") -+ set (PREFER_AVX128 "-mprefer-avx128") -+ set (NO_FMA "-mno-fma") - else () - message(FATAL_ERROR "Unknown processor. Please file an issue at https://github.com/GEOS-ESM/ESMA_cmake") - endif () diff --git a/repos/spack_repo/builtin/packages/mapl/mapl-2.12.3-mpi-fortran.patch b/repos/spack_repo/builtin/packages/mapl/mapl-2.12.3-mpi-fortran.patch deleted file mode 100644 index 4e06689d918..00000000000 --- a/repos/spack_repo/builtin/packages/mapl/mapl-2.12.3-mpi-fortran.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/CMakeLists.txt 2022-07-21 15:26:27.000000000 -0400 -+++ b/CMakeLists.txt 2022-07-21 15:26:18.000000000 -0400 -@@ -102,6 +102,8 @@ - - ecbuild_declare_project() - -+find_package(MPI REQUIRED C Fortran) -+ - if (NOT Baselibs_FOUND) - find_package(NetCDF REQUIRED C Fortran) - add_definitions(-DHAS_NETCDF4) diff --git a/repos/spack_repo/builtin/packages/mapl/mapl-2.12.3-netcdf-c.patch b/repos/spack_repo/builtin/packages/mapl/mapl-2.12.3-netcdf-c.patch deleted file mode 100644 index c498766a85d..00000000000 --- a/repos/spack_repo/builtin/packages/mapl/mapl-2.12.3-netcdf-c.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- a/CMakeLists.txt 2022-06-23 10:37:36.000000000 -0600 -+++ b/CMakeLists.txt 2022-06-23 10:38:44.000000000 -0600 -@@ -103,7 +103,7 @@ - ecbuild_declare_project() - - if (NOT Baselibs_FOUND) -- find_package(NetCDF REQUIRED Fortran) -+ find_package(NetCDF REQUIRED C Fortran) - add_definitions(-DHAS_NETCDF4) - add_definitions(-DHAS_NETCDF3) - add_definitions(-DNETCDF_NEED_NF_MPIIO) ---- a/pfio/CMakeLists.txt 2022-06-23 10:37:41.000000000 -0600 -+++ b/pfio/CMakeLists.txt 2022-06-23 10:38:13.000000000 -0600 -@@ -91,7 +91,7 @@ - StringVectorUtil.F90 - ) - --esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.profiler NetCDF::NetCDF_Fortran TYPE ${MAPL_LIBRARY_TYPE}) -+esma_add_library (${this} SRCS ${srcs} DEPENDENCIES MAPL.shared MAPL.profiler NetCDF::NetCDF_Fortran NetCDF::NetCDF_C TYPE ${MAPL_LIBRARY_TYPE}) - target_link_libraries (${this} PUBLIC GFTL_SHARED::gftl-shared PRIVATE MPI::MPI_Fortran) - # CMake has an OpenMP issue with NAG Fortran: https://gitlab.kitware.com/cmake/cmake/-/issues/21280 - if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "NAG") -@@ -129,7 +129,7 @@ - ecbuild_add_executable ( - TARGET pfio_writer.x - SOURCES pfio_writer.F90 -- LIBS ${this} NetCDF::NetCDF_Fortran MPI::MPI_Fortran) -+ LIBS ${this} NetCDF::NetCDF_Fortran NetCDF::NetCDF_C MPI::MPI_Fortran) - set_target_properties (pfio_writer.x PROPERTIES Fortran_MODULE_DIRECTORY ${include_${this}}) - - #-------------------- diff --git a/repos/spack_repo/builtin/packages/mapl/package.py b/repos/spack_repo/builtin/packages/mapl/package.py index fccba1d50d9..6fc01220938 100644 --- a/repos/spack_repo/builtin/packages/mapl/package.py +++ b/repos/spack_repo/builtin/packages/mapl/package.py @@ -39,11 +39,32 @@ class Mapl(CMakePackage): version("develop", branch="develop") version("main", branch="main") + # Remember if there is a new ESMA_cmake, to update the resources too + version( + "3.0.0-alpha.0", sha256="85e991c29638ec2930e5b9186315f16da85504d00d5e0a2dd7e2631c38d0de89" + ) + version( + "2.69.1", + sha256="d34ba656c06a1ab0f306e22a8615a694f87c24626fc4cc8da3fe6f19fcbf3a4d", + preferred=True, + ) + version("2.69.0", sha256="ba5d08dbcfd6765955b19d944748d93506df649c59781e7307c14ca2ef613d92") + version("2.68.0", sha256="ccba8339569d4a8f64fd2435bcde1b09a41c6a54aae798eb8d4cc44a30e2a495") + version("2.67.0", sha256="fb8899c13fdf5145f16745a8ca6f88807c7a39423e17f745663d719348fc05e5") + version("2.66.0", sha256="2b64472177119bcf91e3f39ebc3f253b3de54ea10b687e58d3fb0f9b2db1ed86") + version("2.65.0", sha256="94cb2fd2432aea4e6a7231a02efd89f85928c52e3fd17ce7db4a359952899935") + version("2.64.2", sha256="8e6ab418d5ab468ab3751dc277351a42ee87f6e0eee3ef13fef29062cd773c2d") + version("2.64.1", sha256="205eac5600c223aa59e359f5b75a462a03302d58e7294f98fb87f29d544ef5a8") + version("2.64.0", sha256="dab66884ca459c56b8bc2199fe334fd5ada131c4f66f48b2ee44965d3dbf90f3") + version("2.63.1", sha256="c91cf72bc4bf48a52f12a2356ace0ba59463cbe36060ecacbac9193d99233306") + version("2.63.0", sha256="5a170980e114d94cc1249d328b166e2048bfc1081a52323d81e2294fb2f08742") + version("2.62.1", sha256="6fa0d5eb3d9ea620ca6ed8ad6561b0ea445517c69ad21451137d0bb65c7dbede") version("2.62.0", sha256="5973a8cac75c55fcc0f4c5256f7d485ab99d2a52ff42d4359ce8d0f3f94d9133") version("2.61.0", sha256="bb768fd60214d5b6fe6120e08a5ebd869f576392a3252a4715fd7c32d0dea97a") version("2.60.0", sha256="470f4da9cc516fdf8206dbc84ab13f53792f3af5e54cd5315ff70d44e5700788") version("2.59.0", sha256="a1137bf62e885256d295c66929cd77658a559f88dbed4f433544f432c5c7a059") version("2.58.1", sha256="176c7baccd0182e353184808b1048baa6100d8700ca532e0d02bea6ae5771aba") + version("2.57.1", sha256="ba5c2f3e5c084144665bdb883c89a067fe9554a94a5a9918532ce49bc43b008c") version("2.57.0", sha256="6991e6b7521842c9c94b549dd0fed778e8b6dad1201708aad3193c274597e36a") version("2.56.1", sha256="f2c1f5d9c088fee029fa8358a382544288f3081e922e164feb19e671d106eefd") version("2.56.0", sha256="9efdbfb87b7ca8d31f4be241a9db260612310e01930681565bfdaf869090a7e8") @@ -141,12 +162,44 @@ class Mapl(CMakePackage): # Versions later than 3.14 remove FindESMF.cmake # from ESMA_CMake. + resource( + name="esma_cmake", + git="https://github.com/GEOS-ESM/ESMA_cmake.git", + tag="v4.37.0", + commit="267dc7326176c27d90cb40a6dab0419655a385ad", + when="@2.69:", + placement="ESMA_cmake", + ) + resource( + name="esma_cmake", + git="https://github.com/GEOS-ESM/ESMA_cmake.git", + tag="v4.36.0", + commit="55e58a5319e00ca30fc4f18a91757227e0389e6b", + when="@2.68", + placement="ESMA_cmake", + ) + resource( + name="esma_cmake", + git="https://github.com/GEOS-ESM/ESMA_cmake.git", + tag="v3.72.0", + commit="e01a441a7528f70584bb0f4ab6df35bee75d9c74", + when="@2.66:2.67", + placement="ESMA_cmake", + ) + resource( + name="esma_cmake", + git="https://github.com/GEOS-ESM/ESMA_cmake.git", + tag="v3.68.0", + commit="ac3533a11ea5a75afdbaf8b2bb2f69e51bd99edc", + when="@2.63:2.65", + placement="ESMA_cmake", + ) resource( name="esma_cmake", git="https://github.com/GEOS-ESM/ESMA_cmake.git", tag="v3.65.0", commit="a1e28e6ec25bbbc7397549be73e19fd32cdc2323", - when="@2.62:", + when="@2.62", placement="ESMA_cmake", ) resource( @@ -267,6 +320,11 @@ class Mapl(CMakePackage): # ifx 2025.0 and newer due to bugs in ifx. conflicts("^[virtuals=fortran] intel-oneapi-compilers@2025:", when="@:2.50") + # Flang is only supported from MAPL 2.67 onwards, + # and only flang 22.1.0 and newer due to bugs in flang. + conflicts("^[virtuals=fortran] llvm@22.1.0:", when="@:2.66") + conflicts("^[virtuals=fortran] llvm@:21") + variant("flap", default=False, description="Build with FLAP support", when="@:2.39") variant("pflogger", default=True, description="Build with pFlogger support") variant("fargparse", default=True, description="Build with fArgParse support") @@ -318,7 +376,9 @@ class Mapl(CMakePackage): depends_on("udunits", when="@2.48:") # gFTL dependency - depends_on("gftl@1.15.2:", when="@2.55:") + depends_on("gftl@1.17.0:", when="@2.68:") + depends_on("gftl@1.16.0:", when="@2.63:2.67") + depends_on("gftl@1.15.2:", when="@2.55:2.62") depends_on("gftl@1.14.0:", when="@2.48:2.54") depends_on("gftl@1.13.0:", when="@2.45:2.47") depends_on("gftl@1.11.0:", when="@2.44") @@ -326,7 +386,9 @@ class Mapl(CMakePackage): depends_on("gftl@1.5.5:1.9", when="@:2.39") # gFTL-Shared dependency - depends_on("gftl-shared@1.10.0:", when="@2.55:") + depends_on("gftl-shared@1.12.0:", when="@2.68:") + depends_on("gftl-shared@1.11.0:", when="@2.63:2.67") + depends_on("gftl-shared@1.10.0:", when="@2.55:2.62") depends_on("gftl-shared@1.9.0:", when="@2.48:2.54") depends_on("gftl-shared@1.8.0:", when="@2.45:2.47") depends_on("gftl-shared@1.7.0:", when="@2.44") @@ -341,7 +403,9 @@ class Mapl(CMakePackage): depends_on("yafyaml@1.0-beta5", when="@:2.22+extdata2g") # pflogger dependency - depends_on("pflogger@1.16.1: +mpi", when="@2.55:+pflogger") + depends_on("pflogger@1.18.0: +mpi", when="@2.68:+pflogger") + depends_on("pflogger@1.17.0: +mpi", when="@2.63:2.67+pflogger") + depends_on("pflogger@1.16.1: +mpi", when="@2.55:2.62+pflogger") depends_on("pflogger@1.15.0: +mpi", when="@2.48:2.54+pflogger") depends_on("pflogger@1.14.0: +mpi", when="@2.45:2.47+pflogger") depends_on("pflogger@1.11.0: +mpi", when="@2.44+pflogger") @@ -350,7 +414,8 @@ class Mapl(CMakePackage): depends_on("pflogger@:1.6 +mpi", when="@:2.22+pflogger") # fargparse dependency - depends_on("fargparse@1.9.0:", when="@2.55:+fargparse") + depends_on("fargparse@1.10.0:", when="@2.63:+fargparse") + depends_on("fargparse@1.9.0:", when="@2.55:2.62+fargparse") depends_on("fargparse@1.8.0:", when="@2.48:2.54+fargparse") depends_on("fargparse@1.7.0:", when="@2.45:2.47+fargparse") depends_on("fargparse@1.6.0:", when="@2.44+fargparse") @@ -358,7 +423,9 @@ class Mapl(CMakePackage): depends_on("fargparse@1.4.1:1.4", when="@:2.39+fargparse") # pfunit dependency - depends_on("pfunit@4.11.1: +mpi +fhamcrest", when="@2.55:+pfunit") + depends_on("pfunit@4.16.0: +mpi +fhamcrest", when="@2.68:+pfunit") + depends_on("pfunit@4.13.0: +mpi +fhamcrest", when="@2.63:2.67+pfunit") + depends_on("pfunit@4.11.1: +mpi +fhamcrest", when="@2.55:2.62+pfunit") depends_on("pfunit@4.10: +mpi +fhamcrest", when="@2.48:2.54+pfunit") depends_on("pfunit@4.9: +mpi +fhamcrest", when="@2.45:2.47+pfunit") depends_on("pfunit@4.8: +mpi +fhamcrest", when="@2.44+pfunit") @@ -379,7 +446,7 @@ class Mapl(CMakePackage): depends_on("llvm-openmp", when="%apple-clang@15:", type=("build", "run")) # https://community.intel.com/t5/Intel-Fortran-Compiler/Regression-with-fpp-2025-2-0/td-p/1703735 - depends_on("gcc", when="@:2.61 ^intel-oneapi-compilers@2025.2", type="build") + depends_on("gcc", when="^intel-oneapi-compilers@2025.2", type="build") def cmake_args(self): args = [ @@ -408,6 +475,7 @@ def cmake_args(self): fflags.append("-fallow-argument-mismatch") # https://community.intel.com/t5/Intel-Fortran-Compiler/Regression-with-fpp-2025-2-0/td-p/1703735 + # this is taken care of inside of ESMA_cmake for MAPL 2.62+ if self.spec.satisfies("@:2.61 ^intel-oneapi-compilers@2025.2"): fflags.append(f"-fpp-name={join_path(self.stage.source_path, 'cpp_wrapper.sh')}") diff --git a/repos/spack_repo/builtin/packages/maqao/package.py b/repos/spack_repo/builtin/packages/maqao/package.py new file mode 100644 index 00000000000..c2d08db0867 --- /dev/null +++ b/repos/spack_repo/builtin/packages/maqao/package.py @@ -0,0 +1,58 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import platform + +from spack_repo.builtin.build_systems.generic import Package + +from spack.package import * + +# Declaring versions depending on architecture +_versions = { + "2025.1.0": { + "x86_64": ( + "e28f4c3ad8f15aaf455b46d6c46f6451fa8aef51ffee134bb766f98570941c8c", + "https://www.maqao.org/maqao_archive/maqao.x86_64.2025.1.0.tar.xz", + ), + "aarch64": ( + "993d610a3625c7ff605233a388981d87a2f42741a900c29e5de1e47ae69e5b67", + "https://www.maqao.org/maqao_archive/maqao.aarch64.2025.1.0.tar.xz", + ), + } +} + + +class Maqao(Package): + """MAQAO performance analysis framework""" + + homepage = "https://www.maqao.org" + + maintainers("cvalensi") + + license("LGPL-2.1-or-later", checked_by="cvalensi") + + # Loading version corresponding to the architecture + for ver, package in _versions.items(): + archpack = package.get(f"{platform.machine()}") + if archpack: + version(ver, sha256=archpack[0], url=archpack[1], extension="tar.xz") + + def install(self, spec, prefix): + # Checking platform is Linux + if spec.platform != "linux": + raise InstallError( + "Unsupported platform: {0}. Supported platforms: linux".format(spec.platform) + ) + # Checking architecture is either x86_64 or aarch64 + arch = spec.target.family + if arch not in ["x86_64", "aarch64"]: + raise InstallError( + "Unsupported architecture: {0}. Supported architectures: x86_64, aarch64".format( + arch + ) + ) + # Installing from archive + tar = which("tar", required=True) + tar("xJf", self.stage.archive_file) + install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/mariadb/package.py b/repos/spack_repo/builtin/packages/mariadb/package.py index 6d1837a1118..3ef0e00fa0e 100644 --- a/repos/spack_repo/builtin/packages/mariadb/package.py +++ b/repos/spack_repo/builtin/packages/mariadb/package.py @@ -20,10 +20,12 @@ class Mariadb(CMakePackage): """ homepage = "https://mariadb.org/about/" - url = "http://ftp.hosteurope.de/mirror/archive.mariadb.org/mariadb-10.2.8/source/mariadb-10.2.8.tar.gz" + url = "https://archive.mariadb.org/mariadb-12.1.1/source/mariadb-12.1.1.tar.gz" license("GPL-2.0-or-later") + version("12.1.1", sha256="ac5359c7361a5fffd9a6df769a694d3c832dacf94003debc2926fff77db12248") + version("11.8.3", sha256="1014a85c768de8f9e9c6d4bf0b42617f3b1588be1ad371f71674ea32b87119c0") version("11.3.2", sha256="5570778f0a2c27af726c751cda1a943f3f8de96d11d107791be5b44a0ce3fb5c") version("10.9.6", sha256="fe6f5287fccc6a65b8bbccae09e841e05dc076fcc13017078854ca387eab8ae9") version("10.8.8", sha256="8de1a151842976a492d6331b543d0ed87259febbbc03b9ebce07c80d754d6361") @@ -32,15 +34,11 @@ class Mariadb(CMakePackage): version("10.4.8", sha256="10cc2c3bdb76733c9c6fd1e3c6c860d8b4282c85926da7d472d2a0e00fffca9b") version("10.4.7", sha256="c8e6a6d0bb4f22c416ed675d24682a3ecfa383c5283efee70c8edf131374d817") version("10.2.8", sha256="8dd250fe79f085e26f52ac448fbdb7af2a161f735fae3aed210680b9f2492393") - version("10.1.23", sha256="54d8114e24bfa5e3ebdc7d69e071ad1471912847ea481b227d204f9d644300bf") - version("5.5.56", sha256="950c3422cb262b16ce133caadbc342219f50f9b45dcc71b8db78fc376a971726") - version("10.1.14", sha256="18e71974a059a268a3f28281599607344d548714ade823d575576121f76ada13") - version("5.5.49", sha256="2c82f2af71b88a7940d5ff647498ed78922c92e88004942caa213131e20f4706") variant( "nonblocking", default=True, - description="Allow non blocking " "operations in the mariadb client library.", + description="Allow non blocking operations in the mariadb client library.", ) provides("mariadb-client") @@ -69,10 +67,12 @@ class Mariadb(CMakePackage): depends_on("libzmq") depends_on("msgpack-c") depends_on("openssl") - depends_on("openssl@:1.0", when="@:10.1") depends_on("krb5") + depends_on("snappy+shared", when="@11.8.3:") + depends_on("pcre2", when="@11.8.3:") + depends_on("fmt@11:", when="@11:") + depends_on("fmt@:8", when="@:10") - conflicts("%gcc@9.1.0:", when="@:5.5") conflicts("%gcc@13:", when="@:10.8.7") # https://github.com/spack/spack/issues/41377 # patch needed for cmake-3.20 @@ -86,6 +86,7 @@ class Mariadb(CMakePackage): def cmake_args(self): args = [] - args.append("-DENABLE_DTRACE:BOOL=OFF") + args.append(self.define("ENABLE_DTRACE", "OFF")) + args.append(self.define("WITH_LIBFMT", "system")) return args diff --git a/repos/spack_repo/builtin/packages/mariadb_c_client/package.py b/repos/spack_repo/builtin/packages/mariadb_c_client/package.py index 7e25b75cac5..876224db453 100644 --- a/repos/spack_repo/builtin/packages/mariadb_c_client/package.py +++ b/repos/spack_repo/builtin/packages/mariadb_c_client/package.py @@ -25,6 +25,7 @@ class MariadbCClient(CMakePackage): license("LGPL-2.1-or-later") + version("3.4.5", sha256="b17e193816cb25c3364c2cc92a0ad3f1d0ad9f0f484dc76b8e7bdb5b50eac1a3") version("3.3.8", sha256="f9f076b4aa9fb22cc94b24f82c80f9ef063805ecd6533a2eb5d5060cf93833e8") version("3.3.7", sha256="975a9a862fed80f84e0206373f7ef05537aada5b65d99b71b36ab892b44240bf") version("3.3.5", sha256="ca72eb26f6db2befa77e48ff966f71bcd3cb44b33bd8bbb810b65e6d011c1e5c") @@ -81,6 +82,12 @@ class MariadbCClient(CMakePackage): when="@:3.1.12", ) + patch( + "https://github.com/mariadb-corporation/mariadb-connector-c/commit/b10b76e5a2b983d86bd487873608abce8e0d507b.patch?full_index=1", + sha256="968a84fd5e33e426b4224bf828ec0f354fce90339dc9e2e27ff2c261e2ad5c00", + when="@3: %gcc@15:", + ) + def url_for_version(self, version): url = "https://downloads.mariadb.com/Connectors/c/connector-c-{0}/mariadb-connector-c-{1}-src.tar.gz" return url.format(version.up_to(3), version) diff --git a/repos/spack_repo/builtin/packages/mark/package.py b/repos/spack_repo/builtin/packages/mark/package.py index 4b6483b81c5..f306932f578 100644 --- a/repos/spack_repo/builtin/packages/mark/package.py +++ b/repos/spack_repo/builtin/packages/mark/package.py @@ -37,5 +37,5 @@ def install(self, spec, prefix): mkdir(prefix.bin) install("mark", prefix.bin) - chmod = which("chmod") + chmod = which("chmod", required=True) chmod("+x", prefix.bin.mark) diff --git a/repos/spack_repo/builtin/packages/masurca/package.py b/repos/spack_repo/builtin/packages/masurca/package.py index e7abdf11734..e4a5d2fa5e7 100644 --- a/repos/spack_repo/builtin/packages/masurca/package.py +++ b/repos/spack_repo/builtin/packages/masurca/package.py @@ -18,6 +18,7 @@ class Masurca(Package): license("GPL-3.0-only") + version("4.1.4", sha256="6112d742bac326917a57d02f71494e5de4c6a67c6bbef8de54f842b9d5873d7d") version("4.1.1", sha256="8758f6196bf7f57e24e08bda84abddfff08feb4cea204c0eb5e1cb9fe8198573") version("4.1.0", sha256="15078e24c79fe5aabe42748d64f95d15f3fbd7708e84d88fc07c4b7f2e4b0902") version("4.0.9", sha256="a31c2f786452f207c0b0b20e646b6c85b7357dcfd522b697c1009d902d3ed4cf") @@ -29,6 +30,8 @@ class Masurca(Package): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + depends_on("gmake", type="build") + depends_on("perl", type=("build", "run")) depends_on(Boost.with_default_variants) depends_on("zlib-api") diff --git a/repos/spack_repo/builtin/packages/mathematica/package.py b/repos/spack_repo/builtin/packages/mathematica/package.py index 6f14584cc25..471cf8f964b 100644 --- a/repos/spack_repo/builtin/packages/mathematica/package.py +++ b/repos/spack_repo/builtin/packages/mathematica/package.py @@ -23,6 +23,10 @@ class Mathematica(Package): url = "file://{0}/Mathematica_12.0.0_LINUX.sh".format(os.getcwd()) manual_download = True + license("LicenseRef-Wolfram-Proprietary", checked_by="alecbcs") + + redistribute(source=False, binary=False) + version( "13.0.1", sha256="3672a920c1b4af1afd480733f6d67665baf8258757dfe59a6ed6d7440cf26dba", @@ -56,7 +60,7 @@ def install(self, spec, prefix): # Backup .spack because Mathematica moves it but never restores it copy_tree(join_path(prefix, ".spack"), join_path(self.stage.path, ".spack")) - sh = which("sh") + sh = which("sh", required=True) sh( self.stage.archive_file, "--", @@ -70,7 +74,7 @@ def install(self, spec, prefix): # does not symlink it ws_link_path = os.path.join(prefix.bin, "wolframscript") if not os.path.exists(ws_link_path): - ln = which("ln") + ln = which("ln", required=True) ws_path = os.path.join(prefix, "Executables", "wolframscript") ln("-s", ws_path, ws_link_path) diff --git a/repos/spack_repo/builtin/packages/mathic/package.py b/repos/spack_repo/builtin/packages/mathic/package.py new file mode 100644 index 00000000000..21c4a3749c0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/mathic/package.py @@ -0,0 +1,40 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Mathic(AutotoolsPackage): + """Mathic is a C++ library providing optimized data structures for + Gröbner basis computation. It includes support for ordering + S-pairs, divisor queries, and polynomial term ordering during + reduction. The library is template-based and can be used with + arbitrary monomial and coefficient representations, though it + currently works best with dense term representations.""" + + homepage = "https://github.com/Macaulay2/mathic" + url = "https://github.com/Macaulay2/mathic/releases/download/v1.1/mathic-1.1.tar.gz" + git = "https://github.com/Macaulay2/mathic" + + maintainers("d-torrance") + + license("LGPL-2.0-or-later", checked_by="d-torrance") + + version("1.3", sha256="cb0503e2ade2090bd04cc247d11f127c51703082cba0b6e14116faf2c93e4050") + version("1.2", sha256="1a7d459290e9183e0934a6dd2278db372b831b37fdb4a6f1db7e02e0f380fe1a") + version("1.1", sha256="2499fb3df3c2f8a201ae5627cad95538aaabee0eee235002b8737bdb842b694a") + version("1.0.2025.05.13", commit="7abf77e4ce493b3830c7f8cc09722bbd6c03818e") + + depends_on("cxx", type="build") + + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + + depends_on("memtailor") + + def configure_args(self): + return ["--enable-shared"] diff --git a/repos/spack_repo/builtin/packages/mathicgb/package.py b/repos/spack_repo/builtin/packages/mathicgb/package.py new file mode 100644 index 00000000000..e2ffda453db --- /dev/null +++ b/repos/spack_repo/builtin/packages/mathicgb/package.py @@ -0,0 +1,41 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Mathicgb(AutotoolsPackage): + """Mathicgb is a program and library for computing Gröbner bases + and signature Gröbner bases. It builds on the efficient data + structures provided by Mathic to achieve high performance in + computational algebra tasks.""" + + homepage = "https://github.com/Macaulay2/mathicgb" + url = "https://github.com/Macaulay2/mathicgb/releases/download/v1.1/mathicgb-1.1.tar.gz" + git = "https://github.com/Macaulay2/mathicgb" + + maintainers("d-torrance") + + license("GPL-2.0-or-later", checked_by="d-torrance") + + version("1.3", sha256="d700c6d6d65f6d8c5c40d79e1012f1e60e6e2114100ce73a719be93770bd23d9") + version("1.2", sha256="5052ea8b175658a018d51cecef6c8d31f103ca3a7254b3690b4dbf80cbf0322e") + version("1.1", sha256="c756c2265df23fb7417f073cf09d63f05e093eb8136bf33904cec04eac24d5b3") + version("1.0.2025.05.13", commit="de139564927563afef383174fd3cf8c93ee18ab3") + + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + depends_on("pkgconfig", type="build") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("mathic") + depends_on("memtailor") + + def configure_args(self): + return ["--enable-shared"] diff --git a/repos/spack_repo/builtin/packages/matio/package.py b/repos/spack_repo/builtin/packages/matio/package.py index f5d69255911..31ba6669b8e 100644 --- a/repos/spack_repo/builtin/packages/matio/package.py +++ b/repos/spack_repo/builtin/packages/matio/package.py @@ -58,7 +58,7 @@ def patch(self): # workaround anonymous version tag linker error for the NVIDIA # compilers filter_file( - "${wl}-version-script " "${wl}$output_objdir/$libname.ver", + "${wl}-version-script ${wl}$output_objdir/$libname.ver", "", "configure", string=True, diff --git a/repos/spack_repo/builtin/packages/matlab/package.py b/repos/spack_repo/builtin/packages/matlab/package.py index 544013770eb..f8d2ffff7e6 100644 --- a/repos/spack_repo/builtin/packages/matlab/package.py +++ b/repos/spack_repo/builtin/packages/matlab/package.py @@ -27,6 +27,10 @@ class Matlab(Package): homepage = "https://www.mathworks.com/products/matlab.html" manual_download = True + license("LicenseRef-MathWorks-Proprietary", checked_by="alecbcs") + + redistribute(source=False, binary=False) + version("R2019b", sha256="d60787263afb810283b7820c4c8d9cb1f854c7cb80f47e136643fd95bf5fbd59") version("R2018b", sha256="8cfcddd3878d3a69371c4e838773bcabf12aaf0362cc2e1ae7e8820845635cac") version("R2016b", sha256="a3121057b1905b132e5741de9f7f8350378592d84c5525faf3ec571620a336f2") @@ -79,7 +83,7 @@ def post_install(self): # Fix broken link with working_dir(self.spec.prefix.bin.glnxa64): os.unlink("libSDL2.so") - os.symlink("libSDL2-2.0.so.0.2.1", "libSDL2.so") + symlink("libSDL2-2.0.so.0.2.1", "libSDL2.so") # Fix to random exceptions when changing display settings # https://www.mathworks.com/matlabcentral/answers/373897-external-monitor-throws-java-exception diff --git a/repos/spack_repo/builtin/packages/mbedtls/package.py b/repos/spack_repo/builtin/packages/mbedtls/package.py index 326f5c822aa..fc904519c1b 100644 --- a/repos/spack_repo/builtin/packages/mbedtls/package.py +++ b/repos/spack_repo/builtin/packages/mbedtls/package.py @@ -2,12 +2,14 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems import cmake, makefile +from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.makefile import MakefilePackage from spack.package import * -class Mbedtls(MakefilePackage): +class Mbedtls(CMakePackage, MakefilePackage): """mbed TLS (formerly known as PolarSSL) makes it trivially easy for developers to include cryptographic and SSL/TLS capabilities in their (embedded) products, facilitating this functionality with a @@ -21,26 +23,15 @@ class Mbedtls(MakefilePackage): license("Apache-2.0 OR GPL-2.0-or-later", checked_by="wdconinc") - # version 3.x + version("4.0.0", sha256="2f3a47f7b3a541ddef450e4867eeecb7ce2ef7776093f3a11d6d43ead6bf2827") version("3.6.2", sha256="8b54fb9bcf4d5a7078028e0520acddefb7900b3e66fec7f7175bb5b7d85ccdca") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2024-45159 - version("3.6.1", sha256="fc8bef0991b43629b7e5319de6f34f13359011105e08e3e16eed3a9fe6ffd3a3") - version("3.6.0", sha256="3ecf94fcfdaacafb757786a01b7538a61750ebd85c4b024f56ff8ba1490fcd38") - version("3.3.0", sha256="a22ff38512697b9cd8472faa2ea2d35e320657f6d268def3a64765548b81c3ec") - - # version 2.x version("2.28.9", sha256="e85ea97aaf78dd6c0a5ba2e54dd5932ffa15f39abfc189c26beef7684630c02b") version("2.28.8", sha256="241c68402cef653e586be3ce28d57da24598eb0df13fcdea9d99bfce58717132") version("2.28.2", sha256="1db6d4196178fa9f8264bef5940611cd9febcd5d54ec05f52f1e8400f792b5a4") version("2.7.19", sha256="3da12b1cebe1a25da8365d5349f67db514aefcaa75e26082d7cb2fa3ce9608aa") - # deprecated versions - # required by julia@1.6:1.7 - version( - "2.24.0", - sha256="b5a779b5f36d5fc4cba55faa410685f89128702423ad07b36c5665441a06a5f3", - deprecated=True, + build_system( + conditional("cmake", when="@4:"), conditional("makefile", when="@:3"), default="cmake" ) variant("pic", default=False, description="Compile with position independent code.") @@ -49,6 +40,7 @@ class Mbedtls(MakefilePackage): default="Release", description="Build type", values=("Debug", "Release", "RelWithDebInfo", "MinSizeRel"), + when="build_system=makefile", # CMake has this builtin ) variant( "libs", @@ -58,10 +50,7 @@ class Mbedtls(MakefilePackage): description="What libraries to build", ) - depends_on("c", type="build") # generated - - depends_on("perl", type="test") - depends_on("python@3:", type="test", when="@3:") + depends_on("c", type="build") # See https://github.com/Mbed-TLS/mbedtls/issues/4917 # Only 2.16.12, 2.28.0 and 3.1.0 support clang 12. @@ -71,17 +60,6 @@ class Mbedtls(MakefilePackage): # and the 2.x backport: https://github.com/ARMmbed/mbedtls/pull/5133 patch("fix-dt-needed-shared-libs.patch", when="@2.7:2.27,3.0.0") - build_type_to_flags = { - "Debug": "-O0 -g", - "Release": "-O3", - "RelWithDebInfo": "-O2 -g", - "MinSizeRel": "-Os", - } - - # TODO: Can't express this in spack right now; but we can live with - # libs=shared building both shared and static libs. - # conflicts('libs=shared', msg='Makefile build cannot build shared libs only now') - def url_for_version(self, version): if self.spec.satisfies("@:2.28.7,3:3.5"): return f"https://github.com/Mbed-TLS/mbedtls/archive/refs/tags/v{version}.tar.gz" @@ -91,27 +69,49 @@ def url_for_version(self, version): return f"https://github.com/Mbed-TLS/mbedtls/releases/download/mbedtls-{version}/mbedtls-{version}.tar.bz2" def flag_handler(self, name, flags): + # CMake builds have proper build types and handle PIC automatically + if self.spec.satisfies("build_system=cmake"): + return (flags, None, None) + # Compile with PIC, if requested. + build_type_to_flags = { + "Debug": "-O0 -g", + "Release": "-O3", + "RelWithDebInfo": "-O2 -g", + "MinSizeRel": "-Os", + } if name == "cflags": build_type = self.spec.variants["build_type"].value - flags.append(self.build_type_to_flags[build_type]) + flags.append(build_type_to_flags[build_type]) if self.spec.variants["pic"].value: flags.append(self.compiler.cc_pic_flag) return (None, flags, None) - def setup_build_environment(self, env: EnvironmentModifications) -> None: - if "shared" in self.spec.variants["libs"].value: + +class CMakeBuilder(cmake.CMakeBuilder): + def cmake_args(self): + return [ + self.define("USE_STATIC_MBEDTLS_LIBRARY", self.spec.satisfies("libs=static")), + self.define("USE_SHARED_MBEDTLS_LIBRARY", self.spec.satisfies("libs=shared")), + self.define("ENABLE_PROGRAMS", False), + self.define("ENABLE_TESTING", False), + ] + + +class MakefileBuilder(makefile.MakefileBuilder): + def setup_build_environment(self, env): + if self.spec.satisfies("libs=shared"): env.set("SHARED", "yes") - if "%nvhpc" in self.spec: + if self.spec.satisfies("%nvhpc"): # -Wno-format-nonliteral is not supported. env.set("WARNING_CFLAGS", "-Wall -Wextra -Wformat=2") - def build(self, spec, prefix): + def build(self, pkg, spec, prefix): make("no_test") - def install(self, spec, prefix): + def install(self, pkg, spec, prefix): make("install", "DESTDIR={0}".format(prefix)) @run_after("install") diff --git a/repos/spack_repo/builtin/packages/mcl/package.py b/repos/spack_repo/builtin/packages/mcl/package.py index bb3647264d4..6d54345f0e2 100644 --- a/repos/spack_repo/builtin/packages/mcl/package.py +++ b/repos/spack_repo/builtin/packages/mcl/package.py @@ -17,6 +17,7 @@ class Mcl(AutotoolsPackage): license("GPL-3.0-or-later") + version("22-282", sha256="291f35837b6e852743bd87e499c5a46936125dcdf334f7747af92e88ac902183") version("14-137", sha256="b5786897a8a8ca119eb355a5630806a4da72ea84243dba85b19a86f14757b497") @when("%gcc@10:") @@ -28,6 +29,9 @@ def patch(self): depends_on("perl", type="run") + # 22-282 and later depend on cimfomfa + depends_on("cimfomfa", when="@22-282:") + variant("blast", default=False, description="Build bio-informatics tools.") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/mctc_lib/package.py b/repos/spack_repo/builtin/packages/mctc_lib/package.py index a5264d0e02f..6fd808c45be 100644 --- a/repos/spack_repo/builtin/packages/mctc_lib/package.py +++ b/repos/spack_repo/builtin/packages/mctc_lib/package.py @@ -23,24 +23,46 @@ class MctcLib(MesonPackage, CMakePackage): build_system("cmake", "meson", default="meson") version("main", branch="main") + + version("0.5.1", sha256="a93ea3e50a1950745df01601bfd672d485f0367660f7076dbe73e422e7d4e2ac") + version("0.5.0", sha256="afd0dd4e40c3441432f077e14112962273ccc25abb00db05d7559fec3b0f1505") + version("0.4.2", sha256="ce1e962c79d871d3705be590aef44f07ca296843b85e164307290f8324769406") + version("0.4.1", sha256="57fe4610c4fa21d0b797f88b68481c7be1e7d291daa12063caed51bee779b88a") + version("0.4.0", sha256="43f6988fc5a2c8d2d8397c6ef8d55f745c9869dd94a7dc9c099a0e1b7f423e40") + version("0.3.2", sha256="8c4ebdf9d81272f0dfa0bfa6c7fecd51f1f3d83d3629c719298d9f349de6ee0b") version("0.3.1", sha256="a5032a0bbbbacc952037c5215b71aa6b438767a84bafb60fda25ba43c8835513") version("0.3.0", sha256="81f3edbf322e6e28e621730a796278498b84af0f221f785c537a315312059bf0") variant("json", default=False, description="Enable support for JSON") + variant("openmp", default=False, description="Enable OpenMP support") + with when("build_system=cmake"): + variant("shared", default=True, description="Build shared libraries") depends_on("fortran", type="build") # generated depends_on("meson@0.57.2:", type="build", when="build_system=meson") - - depends_on("json-fortran@8:", when="+json") + depends_on("json-fortran@8:", when="@:0.4.2+json") depends_on("pkgconfig", type="build") + for build_system in ["cmake", "meson"]: + depends_on(f"jonquil build_system={build_system}", when=f"build_system={build_system}") + depends_on( + f"toml-f build_system={build_system}", when=f"@0.4.2:+json build_system={build_system}" + ) + class CMakeBuilder(cmake.CMakeBuilder): def cmake_args(self): - return [self.define_from_variant("WITH_JSON", "json")] + return [ + self.define_from_variant("WITH_JSON", "json"), + self.define_from_variant("WITH_OpenMP", "openmp"), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + ] class MesonBuilder(meson.MesonBuilder): def meson_args(self): - return ["-Djson={0}".format("enabled" if "+json" in self.spec else "disabled")] + return [ + "-Djson={0}".format("enabled" if "+json" in self.spec else "disabled"), + "-Dopenmp={0}".format("true" if "+openmp" in self.spec else "false"), + ] diff --git a/repos/spack_repo/builtin/packages/mdsplus/package.py b/repos/spack_repo/builtin/packages/mdsplus/package.py index 77defa6475f..9f115b59d74 100644 --- a/repos/spack_repo/builtin/packages/mdsplus/package.py +++ b/repos/spack_repo/builtin/packages/mdsplus/package.py @@ -56,7 +56,7 @@ def configure_args(self): return self.enable_or_disable("java") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./bootstrap") def setup_run_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/med/add_space.patch b/repos/spack_repo/builtin/packages/med/add_space.patch deleted file mode 100644 index e7577425296..00000000000 --- a/repos/spack_repo/builtin/packages/med/add_space.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- spack-src/tools/medimport/2.3.1/MED231champRefInfoEtRenMaabuilt.cxx.org 2020-01-28 16:02:49.656440054 +0900 -+++ spack-src/tools/medimport/2.3.1/MED231champRefInfoEtRenMaabuilt.cxx 2020-01-28 16:03:45.222261190 +0900 -@@ -95,7 +95,7 @@ - SSCRUTE(maai); goto ERROR; - } - if ( MAJ_231_232_chaine(maai,maaf) ) { -- fprintf(stdout," >>> Normalisation du nom de maillage par défaut [%s] associé au champ [%s] pour (n°dt,n°it) ("IFORMAT","IFORMAT")\n",maai,champ,numdt,numo); -+ fprintf(stdout," >>> Normalisation du nom de maillage par défaut [%s] associé au champ [%s] pour (n°dt,n°it) (" IFORMAT "," IFORMAT ")\n",maai,champ,numdt,numo); - ret = _MEDattrStringEcrire(datagroup2,MED_NOM_MAI,MED_TAILLE_NOM,maaf); - EXIT_IF(ret < 0,"Renommage du maillage en",maaf); - fprintf(stdout," >>> Normalisation du nom du maillage par défaut [%s] ... OK ... \n",maaf); -@@ -120,7 +120,7 @@ - - if ( MAJ_231_232_chaine(maa,maaf) ) { - -- fprintf(stdout," >>> Normalisation du nom de maillage [%s] associé au champ [%s] pour (n°dt,n°it) ("IFORMAT","IFORMAT")\n",maa,champ,numdt,numo); -+ fprintf(stdout," >>> Normalisation du nom de maillage [%s] associé au champ [%s] pour (n°dt,n°it) (" IFORMAT "," IFORMAT ")\n",maa,champ,numdt,numo); - /* on accede au maillage */ - strcpy(chemini,chemin); - strcat(chemini,maa); diff --git a/repos/spack_repo/builtin/packages/med/med-4.1.0-hdf5-target.patch b/repos/spack_repo/builtin/packages/med/med-4.1.0-hdf5-target.patch deleted file mode 100644 index 18427d54d6d..00000000000 --- a/repos/spack_repo/builtin/packages/med/med-4.1.0-hdf5-target.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/config/cmake_files/FindMedfileHDF5.cmake b/config/cmake_files/FindMedfileHDF5.cmake -index fbadbf4..5ed78f5 100644 ---- a/config/cmake_files/FindMedfileHDF5.cmake -+++ b/config/cmake_files/FindMedfileHDF5.cmake -@@ -115,7 +115,7 @@ IF (HDF5_FOUND) - # HDF5 was compiled with MPI support - # Unfortunately HDF5 doesn't expose its MPI configuration easily ... - # We sniff the properties of the HDF5 target which should also be there: -- GET_PROPERTY(_lib_lst TARGET hdf5 PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES_NOCONFIG) -+ GET_PROPERTY(_lib_lst TARGET hdf5-shared PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES_NOCONFIG) - FOREACH(s ${_lib_lst}) - STRING(FIND "${s}" "mpi." _res) # should cover WIN(?) and LINUX - IF(_res GREATER -1) diff --git a/repos/spack_repo/builtin/packages/med/package.py b/repos/spack_repo/builtin/packages/med/package.py index 79ce143cba7..1c45408614d 100644 --- a/repos/spack_repo/builtin/packages/med/package.py +++ b/repos/spack_repo/builtin/packages/med/package.py @@ -11,43 +11,26 @@ class Med(CMakePackage): """The MED file format is a specialization of the HDF5 standard.""" homepage = "https://docs.salome-platform.org/latest/dev/MEDCoupling/med-file.html" - url = "https://files.salome-platform.org/Salome/other/med-3.2.0.tar.gz" + url = "https://files.salome-platform.org/Salome/medfile/med-4.1.1.tar.gz" maintainers("likask") license("LGPL-3.0-only") + version("6.0.1", sha256="f8f1edc6874bc48d8f3e4e8be1cf7379ed318726d8abc6804e85e821555b1fa8") version( "5.0.0", sha256="267e76d0c67ec51c10e3199484ec1508baa8d5ed845c628adf660529dce7a3d4", url="https://files.salome-platform.org/Salome/medfile/med-5.0.0.tar.bz2", ) - version( - "4.1.1", - sha256="a082b705d1aafe95d3a231d12c57f0b71df554c253e190acca8d26fc775fb1e6", - url="https://files.salome-platform.org/Salome/medfile/med-4.1.1.tar.gz", - ) - # Older versions are no more available from the official provider - version( - "4.1.0", - sha256="847db5d6fbc9ce6924cb4aea86362812c9a5ef6b9684377e4dd6879627651fce", - deprecated=True, - ) - version( - "4.0.0", - sha256="a474e90b5882ce69c5e9f66f6359c53b8b73eb448c5f631fa96e8cd2c14df004", - deprecated=True, - ) - version( - "3.2.0", - sha256="d52e9a1bdd10f31aa154c34a5799b48d4266dc6b4a5ee05a9ceda525f2c6c138", - deprecated=True, - ) + version("4.2.0", sha256="87c840638f439626b7b3054f655b93a3b9cc8de2177389b09193b646c3095a65") + version("4.1.1", sha256="a082b705d1aafe95d3a231d12c57f0b71df554c253e190acca8d26fc775fb1e6") variant("api23", default=True, description="Enable API2.3") variant("mpi", default=True, description="Enable MPI") variant("shared", default=False, description="Builds a shared version of the library") variant("fortran", default=False, description="Enable Fortran support") + variant("int64", default=False, description="Use 64-bit integers as indices.") variant("doc", default=False, description="Install documentation") variant("python", default=False, description="Build Python bindings") @@ -55,9 +38,9 @@ class Med(CMakePackage): depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated - depends_on("hdf5@:1.8.22", when="@3.2.0") depends_on("hdf5@1.10.2:1.10.7", when="@4") - depends_on("hdf5@1.12.1:1.12", when="@5:") + depends_on("hdf5@1.12.1:1.12", when="@5") + depends_on("hdf5@1.14", when="@6") depends_on("hdf5~mpi", when="~mpi") depends_on("hdf5+mpi", when="+mpi") @@ -69,16 +52,6 @@ class Med(CMakePackage): depends_on("python", when="+python") conflicts("~shared", when="+python", msg="Python bindings require shared libraries") - conflicts("@4.1.0", when="~shared", msg="Link error when static") - - # C++11 requires a space between literal and identifier - patch("add_space.patch", when="@3.2.0") - - # Fix problem where CMake "could not find TARGET hdf5" - # The patch only works with HDF5 shared library builds - patch("med-4.1.0-hdf5-target.patch", when="@4.0.0:4.1.0") - depends_on("hdf5+shared", when="@4.0.0:4.1.0") - def patch(self): # resembles FindSalomeHDF5.patch as in salome-configuration # see https://cmake.org/cmake/help/latest/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.html @@ -101,6 +74,9 @@ def cmake_args(self): if "~fortran" in spec: options.append("-DCMAKE_Fortran_COMPILER=") + if "+int64" in spec: + options.append("-DMED_MEDINT_TYPE=long") + if "+api23" in spec: options.extend( [ @@ -118,4 +94,7 @@ def cmake_args(self): if "+mpi" in spec: options.extend(["-DMEDFILE_USE_MPI=YES", "-DMPI_ROOT_DIR=%s" % spec["mpi"].prefix]) + if "+python" in spec and spec["python"].version >= Version("3.9"): + options.extend(["-DCMAKE_CXX_FLAGS=-DPyEval_CallObject=PyObject_CallObject"]) + return options diff --git a/repos/spack_repo/builtin/packages/medipack/package.py b/repos/spack_repo/builtin/packages/medipack/package.py index d442cb2a044..58fa56efe93 100644 --- a/repos/spack_repo/builtin/packages/medipack/package.py +++ b/repos/spack_repo/builtin/packages/medipack/package.py @@ -20,7 +20,8 @@ class Medipack(CMakePackage): version("1.2.2", sha256="8937fa1025c6fb12f516cacf38a7f776221e7e818b30f17ce334c63f78513aa7") version("1.2.1", sha256="c746196b98cfe24a212584cdb88bd12ebb14f4a54728070d605e0c6d0e75db8a") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") # needed until CMakeLists.txt is fixed + depends_on("cxx", type="build") depends_on("cmake@3.12:", type="build", when="@1.2.2:") depends_on("mpi", type=("build", "link", "run")) @@ -32,7 +33,6 @@ class Medipack(CMakePackage): ) def install(self, spec, prefix): - mkdirp(self.prefix.include) - install_tree(join_path(self.stage.source_path, "include"), self.prefix.include) + super().install(spec, prefix) mkdirp(self.prefix.src) install_tree(join_path(self.stage.source_path, "src"), self.prefix.src) diff --git a/repos/spack_repo/builtin/packages/meep/package.py b/repos/spack_repo/builtin/packages/meep/package.py index 5d02308dcf1..4a5711df1e5 100644 --- a/repos/spack_repo/builtin/packages/meep/package.py +++ b/repos/spack_repo/builtin/packages/meep/package.py @@ -61,6 +61,7 @@ class Meep(AutotoolsPackage): depends_on("automake", type="build", when="@1.21.0:") depends_on("libtool", type="build", when="@1.21.0:") + depends_on("fftw-api") depends_on("blas", when="+blas") depends_on("lapack", when="+lapack") depends_on("harminv", when="+harminv") @@ -73,7 +74,7 @@ class Meep(AutotoolsPackage): depends_on("hdf5+mpi", when="+hdf5+mpi") depends_on("gsl", when="+gsl") with when("+python"): - depends_on("python") + depends_on("python@:3.11") depends_on("py-numpy") depends_on("swig") depends_on("py-mpi4py", when="+mpi") @@ -83,7 +84,9 @@ class Meep(AutotoolsPackage): def configure_args(self): spec = self.spec - config_args = ["--enable-shared"] + config_args = ["LDFLAGS={0}".format(spec["fftw-api"].libs.ld_flags)] + + config_args.append("--enable-shared") if "+blas" in spec: config_args.append("--with-blas={0}".format(spec["blas"].prefix.lib)) 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/melissa/package.py b/repos/spack_repo/builtin/packages/melissa/package.py index 11e2a4d912b..0631fe1938f 100644 --- a/repos/spack_repo/builtin/packages/melissa/package.py +++ b/repos/spack_repo/builtin/packages/melissa/package.py @@ -16,48 +16,48 @@ class Melissa(CMakePackage): git = "https://gitlab.inria.fr/melissa/melissa.git" url = "https://gitlab.inria.fr/melissa/melissa/-/archive/v2.0.0/melissa-v2.0.0.tar.gz" # attention: Git**Hub**.com accounts - maintainers("abhishek1297", "viperML", "raffino") + maintainers("abhishek1297", "raffino") version( - "2.0.0", - sha256="75957d1933cd9c228a6e8643bc855587162c31f3b0ca94c3f5e0e380d01775dd", + "2.4.1", + sha256="92a8c7f823ef79c8a5eb05b67120e130c9b03bf7fecd635b4ae9501eb32b2fd7", preferred=True, ) - version("develop", branch="develop") - - # DEPRECATED VERSIONS - version( - "0.7.1", - sha256="c30584f15fecf6297712a88e4d28851bfd992f31209fd7bb8af2feebe73d539d", - deprecated=True, - ) - version( - "0.7.0", - sha256="a801d0b512e31a0750f98cfca80f8338985e06abf9b26e96f7645a022864e41c", - deprecated=True, - ) - # ================================================================================================ + with default_args(deprecated=True): + version("2.3.0", sha256="f356e05082e4bb26a210cd11ccfa78a783ebe07be2bd75d5e51ed10da3b58997") + version("2.2.0", sha256="e805c9ac08de5aa666768d5d92bfc680f064bd9108415a911dfd08ad7b0a3cf3") + version("2.1.1", sha256="6b92852429f13b144860edc37c7914723addabb0ec0bd108929ff567334d3f71") + version("2.1.0", sha256="cf0f105ed5b1da260cc7476aec23df084470b50a61df997c0e457c38948bed93") + version("2.0.1", sha256="a7ff4df75ea09af435b0c28c3fa3cab9335c1c76e1c48757facce36786b4962c") + version("2.0.0", sha256="75957d1933cd9c228a6e8643bc855587162c31f3b0ca94c3f5e0e380d01775dd") depends_on("c", type="build") # generated + depends_on("cxx", type="build") depends_on("fortran", type="build") # generated - - depends_on("cmake@3.15:", type="build") depends_on("pkgconfig", type="build") - depends_on("libzmq@4.2:4", type=("build", "run")) - depends_on("python@3.9:3.12", type=("build", "run")) - depends_on("mpi", type=("build", "run")) + with when("@:2.1.0"): + depends_on("cmake@3.15:", type="build") + depends_on("python@3.9:3.12", type=("build", "run")) + + with when("@2.1.1:"): + depends_on("cmake@3.22:", type="build") + depends_on("python@3.11:3.12", type=("build", "run")) + + with default_args(type=("build", "run")): + depends_on("libzmq@4.2:4") + depends_on("mpi") def cmake_args(self): args = [] - # embed runtime library search paths - rpaths = [self.spec["libzmq"].prefix.lib, self.spec["mpi"].prefix.lib] - joined_rpaths = ";".join(rpaths) - - args.append(f"-DCMAKE_INSTALL_RPATH={joined_rpaths}") - args.append("-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON") + if self.spec.satisfies("@:2.0.0"): + # embed runtime library search paths + rpaths = [self.spec["libzmq"].prefix.lib, self.spec["mpi"].prefix.lib] + joined_rpaths = ";".join(rpaths) + args.append(f"-DCMAKE_INSTALL_RPATH={joined_rpaths}") + args.append("-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON") return args def setup_run_environment(self, env): diff --git a/repos/spack_repo/builtin/packages/melissa_api/package.py b/repos/spack_repo/builtin/packages/melissa_api/package.py deleted file mode 100644 index b30a5708fec..00000000000 --- a/repos/spack_repo/builtin/packages/melissa_api/package.py +++ /dev/null @@ -1,33 +0,0 @@ -# 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 MelissaApi(CMakePackage): - """Melissa is a file-avoiding, adaptive, fault-tolerant and elastic - framework, to run large-scale sensitivity analysis or deep-surrogate - training on supercomputers. - This package builds the API used when instrumenting the clients. - """ - - homepage = "https://gitlab.inria.fr/melissa/melissa" - git = "https://gitlab.inria.fr/melissa/melissa.git" - maintainers("robcaulk", "mschouler", "raffino") - - license("BSD-3-Clause") - - version("develop", branch="develop", deprecated=True) - - depends_on("c", type="build") # generated - depends_on("fortran", type="build") # generated - - depends_on("cmake@3.7.2:", type="build") - depends_on("libzmq@4.1.5:") - depends_on("mpi") - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - env.prepend_path("PYTHONPATH", self.prefix.lib) diff --git a/repos/spack_repo/builtin/packages/memcached/package.py b/repos/spack_repo/builtin/packages/memcached/package.py index dcfad9751b1..fde150777dc 100644 --- a/repos/spack_repo/builtin/packages/memcached/package.py +++ b/repos/spack_repo/builtin/packages/memcached/package.py @@ -14,29 +14,59 @@ class Memcached(AutotoolsPackage): """ homepage = "https://github.com/memcached/memcached" - url = "https://github.com/memcached/memcached/archive/1.5.20.tar.gz" + url = "https://www.memcached.org/files/memcached-1.6.41.tar.gz" + git = "https://github.com/memcached/memcached.git" license("BSD-3-Clause") - version("1.5.20", sha256="ee93aff47123e0b464e9f007b651b14c89c19e0c20352d8d1c399febbb038cb6") - version("1.5.19", sha256="7af7a2e9b1f468d7f6056f23ce21c04936ce6891f8cb8cd54e133f489a8226e8") - version("1.5.18", sha256="0bf8154f53d2781164421acd195a1665ac2f77316263c3526206c38e402c4b0d") - version("1.5.17", sha256="cb30ad851e95c0190e6b7e59695f1ed2e51d65a9e6c82c893e043dc066053377") - version("1.5.16", sha256="a0c1a7e72186722d7c0e9d5527a63beb339b933d768687f183e163adf935c662") - version("1.5.15", sha256="4ef8627308e99bdd4200ef4f260fbcdd65a4ba634bd593ca02dbbfd71222e9f7") - version("1.5.14", sha256="ae8ed2ed853b840a8430d8575d4e91b87c550b111874b416c551001403ac6a74") - version("1.5.13", sha256="ae59a8b49be17afb344e57c8a8d64f9ae38b6efbc3f9115a422dbcb2b23795fc") - - depends_on("c", type="build") # generated - - depends_on("autoconf", type="build") - depends_on("automake", type="build") - depends_on("libtool", type="build") - depends_on("m4", type="build") + version("1.6.41", sha256="e097073c156eeff9e12655b054f446d57374cfba5c132dcdbe7fac64e728286a") + + # CVE-2023-46853 + with default_args(deprecated=True): + version( + "1.5.20", sha256="ee93aff47123e0b464e9f007b651b14c89c19e0c20352d8d1c399febbb038cb6" + ) + version( + "1.5.19", sha256="7af7a2e9b1f468d7f6056f23ce21c04936ce6891f8cb8cd54e133f489a8226e8" + ) + version( + "1.5.18", sha256="0bf8154f53d2781164421acd195a1665ac2f77316263c3526206c38e402c4b0d" + ) + version( + "1.5.17", sha256="cb30ad851e95c0190e6b7e59695f1ed2e51d65a9e6c82c893e043dc066053377" + ) + version( + "1.5.16", sha256="a0c1a7e72186722d7c0e9d5527a63beb339b933d768687f183e163adf935c662" + ) + version( + "1.5.15", sha256="4ef8627308e99bdd4200ef4f260fbcdd65a4ba634bd593ca02dbbfd71222e9f7" + ) + version( + "1.5.14", sha256="ae8ed2ed853b840a8430d8575d4e91b87c550b111874b416c551001403ac6a74" + ) + version( + "1.5.13", sha256="ae59a8b49be17afb344e57c8a8d64f9ae38b6efbc3f9115a422dbcb2b23795fc" + ) + + depends_on("c", type="build") + + with when("@:1.5"): + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + depends_on("m4", type="build") + depends_on("libevent", type="build") + def url_for_version(self, version): + if version < Version("1.6"): + return f"https://github.com/memcached/memcached/archive/{version}.tar.gz" + else: + return f"https://www.memcached.org/files/memcached-{version}.tar.gz" + + @when("@:1.5") def autoreconf(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("./autogen.sh") autoreconf("--install", "--verbose", "--force") diff --git a/repos/spack_repo/builtin/packages/memkind/package.py b/repos/spack_repo/builtin/packages/memkind/package.py index d62427e7933..905bcd68236 100644 --- a/repos/spack_repo/builtin/packages/memkind/package.py +++ b/repos/spack_repo/builtin/packages/memkind/package.py @@ -61,10 +61,10 @@ def patch(self): @run_before("autoreconf") def build_jemalloc(self): if os.path.exists("build_jemalloc.sh"): - bash = which("bash") + bash = which("bash", required=True) bash("./build_jemalloc.sh") def autoreconf(self, spec, prefix): if os.path.exists("autogen.sh"): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/memsurfer/package.py b/repos/spack_repo/builtin/packages/memsurfer/package.py deleted file mode 100644 index 2e48620aed7..00000000000 --- a/repos/spack_repo/builtin/packages/memsurfer/package.py +++ /dev/null @@ -1,46 +0,0 @@ -# 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 Memsurfer(PythonPackage): - """MemSurfer is a tool to compute and analyze membrane surfaces found in a - wide variety of large-scale molecular simulations.""" - - homepage = "https://github.com/LLNL/MemSurfer" - git = "https://github.com/LLNL/MemSurfer.git" - maintainers("bhatiaharsh") - - version("1.0", tag="v1.0", commit="93d114016cd3ef48950bc53cca0a6e9f70589361", submodules=True) - version("master", branch="master", submodules=True) - version("develop", branch="develop", submodules=True) - - depends_on("cxx", type="build") # generated - - extends("python") - depends_on("python@3.7:", type=("build", "run")) - depends_on("py-setuptools", type="build") - - depends_on("cmake@3.14:", type="build") - depends_on("swig@3.0.12", type="build") - - depends_on("py-cython", type="build") - depends_on("py-numpy", type=("build", "run")) - - depends_on("eigen@3.3.7") - depends_on("cgal@4.13 +shared~core~demos~imageio") - - # vtk needs to know whether to build with mesa or opengl - depends_on("vtk@8.1.2 ~ffmpeg~mpi+opengl2~qt~xdmf+python") - - # memsurfer's setup needs path to these deps to build extension modules - def setup_build_environment(self, env: EnvironmentModifications) -> None: - env.set("VTK_ROOT", self.spec["vtk"].prefix) - env.set("CGAL_ROOT", self.spec["cgal"].prefix) - env.set("BOOST_ROOT", self.spec["boost"].prefix) - env.set("EIGEN_ROOT", self.spec["eigen"].prefix) diff --git a/repos/spack_repo/builtin/packages/memtailor/package.py b/repos/spack_repo/builtin/packages/memtailor/package.py new file mode 100644 index 00000000000..fea64946626 --- /dev/null +++ b/repos/spack_repo/builtin/packages/memtailor/package.py @@ -0,0 +1,44 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Memtailor(AutotoolsPackage): + """Memtailor is a C++ library of special-purpose memory + allocators, including an arena allocator and a memory pool, + designed for better and more predictable performance than + new/delete. The memory pool is useful for many fixed-size + allocations, such as linked list nodes, while the arena allocator + is fast, works like stack allocation, stays within the C++ + standard, and allows multiple independent arenas.""" + + homepage = "https://github.com/Macaulay2/memtailor" + url = "https://github.com/Macaulay2/memtailor/releases/download/v1.1/memtailor-1.1.tar.gz" + git = "https://github.com/Macaulay2/memtailor" + + maintainers("d-torrance") + + license("BSD-3-Clause", checked_by="d-torrance") + + version("1.3", sha256="10f0c016e67912be1711a54b18c54d7024c8bfcaf0f279e11187402994150a20") + version("1.2", sha256="86cd8f888d23f53256937b47cebe8430daeb8146ca9816c4d3aef0fc5ebc702b") + version("1.1", sha256="ce0dc2e5befd1e1f65c99510bc68ddc5b60f13066eac12ec5ce4e1da822e44eb") + version("1.0.2025.05.13", commit="07c84a6852212495182ec32c3bdb589579e342b5") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + + # googletest 1.17.0 requires C++17 support, which wasn't added until 1.2 + depends_on("googletest@:1.16.0", when="@:1.1") + depends_on("googletest", when="@1.2:") + + def configure_args(self): + return ["--enable-shared"] diff --git a/repos/spack_repo/builtin/packages/mercurial/package.py b/repos/spack_repo/builtin/packages/mercurial/package.py index dbef3e65546..c805f795dbe 100644 --- a/repos/spack_repo/builtin/packages/mercurial/package.py +++ b/repos/spack_repo/builtin/packages/mercurial/package.py @@ -16,31 +16,45 @@ class Mercurial(PythonPackage): license("GPL-2.0-or-later") - version("6.7.3", sha256="00196944ea92738809317dc7a8ed7cb21287ca0a00a85246e66170955dcd9031") + version("7.1.2", sha256="ce27b9a4767cf2ea496b51468bae512fa6a6eaf0891e49f8961dc694b4dc81ca") + version("7.0.3", sha256="59fc84640524da6f1938ea7e4eb0cd579fc7fedaaf563a916cb4f9dac0eacf6c") + version("6.9.5", sha256="d3f22aeef9e9dcd6e562132950226c2c955d35271bd00a01481efca2b1cc65fd") + version("6.8.2", sha256="aac618106768ad1ed976c3fe7c8659fec99e6f0b5337ea6ea554fae8490c4f4e") + version("6.7.4", sha256="74708f873405c12272fec116c6dd52862e8ed11c10011c7e575f5ea81263ea5e") version("6.6.3", sha256="f75d6a4a75823a1b7d713a4967eca2f596f466e58fc6bc06d72642932fd7e307") - version("6.4.5", sha256="b0b4b00b8b2639c8be387394796f0425beb339314df7e72937f8ddd2a41b1b8a") - version("6.3.3", sha256="13c97ff589c7605e80a488f336852ce1d538c5d4143cfb33be69bdaddd9157bd") - version("6.2.3", sha256="98d1ae002f68adf53d65c5947fe8b7a379f98cf05d9b8ea1f4077d2ca5dce9db") - version("6.1.4", sha256="f361f9802b36e357ac019ceb712ca11de8332b07deadeed8dfa904f05bf7ca78") - version("6.0.3", sha256="67f13647a46517a2b567cdcb73c98721d75d36a0432debb15022b77f9c138333") - version("5.8", sha256="fc5d6a8f6478d88ef83cdd0ab6d86ad68ee722bbdf4964e6a0b47c3c6ba5309f") - version("5.7.1", sha256="cb5139144ccb2ef648f36963c8606d47dea1cb0e22aa2c055d6f860ce3fde7b0") - version("5.7", sha256="609c3e7c9276dd75b03b713eccc10f5e0553001f35ae21600bcea1509699c601") - version("5.6.1", sha256="e55c254f4904c45226a106780e57f4279aee03368f6ff6a981d5d2a38243ffad") - version("5.3", sha256="e57ff61d6b67695149dd451922b40aa455ab02e01711806a131a1e95c544f9b9") - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + + with default_args(deprecated=True): + version("6.7.3", sha256="00196944ea92738809317dc7a8ed7cb21287ca0a00a85246e66170955dcd9031") + version("6.4.5", sha256="b0b4b00b8b2639c8be387394796f0425beb339314df7e72937f8ddd2a41b1b8a") + version("6.3.3", sha256="13c97ff589c7605e80a488f336852ce1d538c5d4143cfb33be69bdaddd9157bd") + version("6.2.3", sha256="98d1ae002f68adf53d65c5947fe8b7a379f98cf05d9b8ea1f4077d2ca5dce9db") + version("6.1.4", sha256="f361f9802b36e357ac019ceb712ca11de8332b07deadeed8dfa904f05bf7ca78") + version("6.0.3", sha256="67f13647a46517a2b567cdcb73c98721d75d36a0432debb15022b77f9c138333") + version("5.8", sha256="fc5d6a8f6478d88ef83cdd0ab6d86ad68ee722bbdf4964e6a0b47c3c6ba5309f") + version("5.7.1", sha256="cb5139144ccb2ef648f36963c8606d47dea1cb0e22aa2c055d6f860ce3fde7b0") + version("5.7", sha256="609c3e7c9276dd75b03b713eccc10f5e0553001f35ae21600bcea1509699c601") + version("5.6.1", sha256="e55c254f4904c45226a106780e57f4279aee03368f6ff6a981d5d2a38243ffad") + version("5.3", sha256="e57ff61d6b67695149dd451922b40aa455ab02e01711806a131a1e95c544f9b9") + + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("python+bz2+ssl+zlib", type=("build", "run")) depends_on("python@3.5:", when="@5.2:", type=("build", "run")) depends_on("python@3.6:", when="@6.2:", type=("build", "run")) + depends_on("python@3.8:", when="@6.9:", type=("build", "run")) + depends_on("python@3.9:", when="@7.1:", type=("build", "run")) # Upperbounds because of forward compat issues. depends_on("python@:3.9", when="@:6.0.0", type=("build", "run")) depends_on("python@:3.10", when="@:6.3.0", type=("build", "run")) + depends_on("python@:3.11", when="@:6.7", type=("build", "run")) + depends_on("python@:3.13", when="@:7.1", type=("build", "run")) depends_on("py-setuptools", type="build") + depends_on("py-setuptools@64:", type="build", when="@7.0:") + depends_on("py-setuptools-scm@8.1.0:", type="build", when="@7.0:") depends_on("py-docutils", type="build") + depends_on("py-docutils@:0.21", type="build", when="@:7.1.1") depends_on("py-pygments", type=("build", "run")) depends_on("py-certifi", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/mercury/package.py b/repos/spack_repo/builtin/packages/mercury/package.py index fe0e2aad47a..49d85f06c65 100644 --- a/repos/spack_repo/builtin/packages/mercury/package.py +++ b/repos/spack_repo/builtin/packages/mercury/package.py @@ -20,6 +20,7 @@ class Mercury(CMakePackage): license("GPL-2.0-only") version("master", branch="master", submodules=True) + version("2.4.1", sha256="8a372416f3fca28d402ac7f7b73f0a7dd5d4b88785281ad9e6076e105e4840b9") version("2.4.0", sha256="8926cd177f6e3c04e8ae1683d42f7c8b27163a93d4d99a305fe497fa8ca86e79") version("2.3.1", sha256="36182d49f2db7e2b075240cab4aaa1d4ec87a7756450c87643ededd1e6f16104") version("2.3.0", sha256="e9e62ce1bb2fd482f0e85ad75fa255d9750c6fed50ba441a03de93b3b8eae742") @@ -57,6 +58,7 @@ class Mercury(CMakePackage): variant( "hwloc", default=False, when="@2.2.0:", description="Use hwloc to retrieve NIC information" ) + variant("perf", default=True, when="@2.3.0:", description="Build performance tests") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -90,10 +92,12 @@ def cmake_args(self): spec = self.spec define = self.define define_from_variant = self.define_from_variant + build_tests = self.run_tests or self.spec.satisfies("@2.3.0:+perf") parallel_tests = "+mpi" in spec and self.run_tests cmake_args = [ define_from_variant("BUILD_SHARED_LIBS", "shared"), + define("BUILD_TESTING", build_tests), define("MERCURY_USE_BOOST_PP", True), define_from_variant("MERCURY_USE_CHECKSUMS", "checksum"), define("MERCURY_USE_SYSTEM_MCHECKSUM", False), @@ -105,6 +109,7 @@ def cmake_args(self): if "@2.3.0:" in spec: cmake_args.append(define("BUILD_TESTING_UNIT", self.run_tests)) + cmake_args.append(define_from_variant("BUILD_TESTING_PERF", "perf")) if "@2.2.0:" in spec: cmake_args.extend( diff --git a/repos/spack_repo/builtin/packages/mergiraf/package.py b/repos/spack_repo/builtin/packages/mergiraf/package.py index 933bdcbf736..74c1bd87a4d 100644 --- a/repos/spack_repo/builtin/packages/mergiraf/package.py +++ b/repos/spack_repo/builtin/packages/mergiraf/package.py @@ -14,9 +14,18 @@ class Mergiraf(CargoPackage): homepage = "https://mergiraf.org/" url = "https://codeberg.org/mergiraf/mergiraf/archive/v0.6.0.tar.gz" + list_url = "https://codeberg.org/mergiraf/mergiraf/releases" maintainers("alecbcs") license("GPL-3.0-only") + version("0.16.3", sha256="c2f3f6b50496cbadb7d9caeb6cfc4e0dab8f99aaed5d9a560b30208cb68108f0") + version("0.15.0", sha256="75f553935df38dd84679727fe3b3232d54ed4a9fe6ca214e3fd54ac714d0fae3") + version("0.14.0", sha256="61738fea60d15ffb223d4af2e52fd02b0abddbbd0d9f58f7a33acd49fe4d4f9b") + version("0.13.0", sha256="8b3851bac8ebac3c973c0f82fcaf1e4cc7a68d4effe3a4d727963b3824972909") + version("0.12.1", sha256="5006c72d446e2b634e41d6d760661773ad449fed93154a8c8d461ad91461f997") + version("0.8.1", sha256="b9f76cd133dbd60382a00705e4bed67727b94082f6c6a72d43fd6b7593a18595") version("0.6.0", sha256="548b0ae3d811d6410beae9e7294867c7e6d791cf9f68ddda5c24e287f7978030") + + depends_on("rust@1.89:", type="build", when="@0.12:") diff --git a/repos/spack_repo/builtin/packages/mesa/package.py b/repos/spack_repo/builtin/packages/mesa/package.py index 569ea60e982..ef517834cbc 100644 --- a/repos/spack_repo/builtin/packages/mesa/package.py +++ b/repos/spack_repo/builtin/packages/mesa/package.py @@ -74,6 +74,7 @@ class Mesa(MesonPackage): depends_on("expat") depends_on("zlib-api") depends_on("libxml2") + depends_on("dri2proto") # Internal options variant("llvm", default=True, description="Enable LLVM.") @@ -100,7 +101,7 @@ class Mesa(MesonPackage): # TODO: effectively deal with EGL. The implications of this have not been # worked through yet - # variant('egl', default=False, description="Enable the EGL frontend.") + variant("egl", default=False, description="Enable the EGL frontend.") # TODO: Effectively deal with hardware drivers # The implication of this is enabling DRI, among other things, and @@ -115,6 +116,11 @@ class Mesa(MesonPackage): # provides('egl@1.5', when='+egl') # Variant dependencies + with when("+egl"): + depends_on("libdrm") + depends_on("libxfixes") + depends_on("libxxf86vm") + with when("+llvm"): depends_on("libllvm@6:") depends_on("libllvm@:11", when="@:20") @@ -166,6 +172,13 @@ class Mesa(MesonPackage): patch("0001-disable-gallivm-coroutine-for-libllvm15.patch", when="@22.1.2:22.3 ^libllvm@15") + def url_for_version(self, version): + if version < Version("23"): + url = "https://archive.mesa3d.org/older-versions/{0}.x/mesa-{1}.tar.xz" + return url.format(version.up_to(1), version.dotted) + + return super(Mesa, self).url_for_version(version) + # Explicitly use the llvm-config tool def patch(self): filter_file(r"_llvm_method = 'auto'", "_llvm_method = 'config-tool'", "meson.build") @@ -176,6 +189,9 @@ def flag_handler(self, name, flags): flags.append("-std=c99") return super().flag_handler(name, flags) + def dependent_cmake_args(self, dependent_spec: Spec) -> List[str]: + return ["-DOpenGL_GL_PREFERENCE:STRING=LEGACY"] + @property def libglx_headers(self): return find_headers("GL/glx", root=self.spec.prefix.include, recursive=False) @@ -218,9 +234,14 @@ def meson_args(self): args.append("-Dgallium-omx=disabled") args_platforms = [] - args_gallium_drivers = ["swrast"] args_dri_drivers = [] + # swrast includes softpipe and llvmpipe + if spec.satisfies("+llvm"): + args_gallium_drivers = ["swrast"] + else: + args_gallium_drivers = ["softpipe"] + opt_enable = lambda c, o: "-D%s=%sabled" % (o, "en" if c else "dis") opt_bool = lambda c, o: "-D%s=%s" % (o, str(c).lower()) if spec.target.family == "arm" or spec.target.family == "aarch64": @@ -257,7 +278,6 @@ def meson_args(self): args.extend(["-Degl=enabled", "-Dgbm=enabled"]) if spec.satisfies("@:24.2.4"): args.extend(["-Ddri3=enabled"]) - args_platforms.append("surfaceless") else: args.extend(["-Degl=disabled", "-Dgbm=disabled"]) if spec.satisfies("@:24.2.4"): diff --git a/repos/spack_repo/builtin/packages/mesa_glu/package.py b/repos/spack_repo/builtin/packages/mesa_glu/package.py index b41dbb2945e..5ed30d1da90 100644 --- a/repos/spack_repo/builtin/packages/mesa_glu/package.py +++ b/repos/spack_repo/builtin/packages/mesa_glu/package.py @@ -10,7 +10,7 @@ class MesaGlu(AutotoolsPackage): """This package provides the Mesa OpenGL Utility library.""" homepage = "https://www.mesa3d.org" - url = "https://www.mesa3d.org/archive/glu/glu-9.0.0.tar.gz" + url = "https://archive.mesa3d.org/glu/glu-9.0.0.tar.gz" version("9.0.2", sha256="24effdfb952453cc00e275e1c82ca9787506aba0282145fff054498e60e19a65") version("9.0.1", sha256="f6f484cfcd51e489afe88031afdea1e173aa652697e4c19ddbcb8260579a10f7") @@ -26,6 +26,11 @@ class MesaGlu(AutotoolsPackage): # patch switches all instances of register long to long to fix this. patch("register-long.patch") + def setup_dependent_build_environment( + self, env: EnvironmentModifications, dependent_spec: Spec + ): + env.prepend_path("OpenGL_ROOT", self.prefix) + def configure_args(self): args = ["--disable-libglvnd"] diff --git a/repos/spack_repo/builtin/packages/meshlab/package.py b/repos/spack_repo/builtin/packages/meshlab/package.py index 5f65cc9a9c2..cf9217f40a2 100644 --- a/repos/spack_repo/builtin/packages/meshlab/package.py +++ b/repos/spack_repo/builtin/packages/meshlab/package.py @@ -19,6 +19,7 @@ class Meshlab(CMakePackage): license("GPL-3.0", checked_by="wdconinc") version("main", branch="main", submodules=True) + version("2025.07", commit="dc48b91ae562756a6988048c5d5c7f1d2b687256", submodules=True) version("2023.12", commit="2dbd2f4b12df3b47d8777b2b4a43cabd9e425735", submodules=True) variant("double_scalar", default=False, description="Type to use for scalars") @@ -26,7 +27,7 @@ class Meshlab(CMakePackage): depends_on("eigen") depends_on("glew") depends_on("mpfr") - depends_on("qt@5.15: +opengl") + depends_on("qt@5.15: +opengl +ssl") def cmake_args(self): args = [ @@ -43,6 +44,7 @@ def cmake_args(self): "LIBIGL", "LEVMAR", "LIB3DS", + "LIB3MF", "EMBREE", "NEXUS", "QHULL", diff --git a/repos/spack_repo/builtin/packages/meshoptimizer/package.py b/repos/spack_repo/builtin/packages/meshoptimizer/package.py new file mode 100644 index 00000000000..20e35a61406 --- /dev/null +++ b/repos/spack_repo/builtin/packages/meshoptimizer/package.py @@ -0,0 +1,33 @@ +# 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 Meshoptimizer(CMakePackage): + """A mesh optimization library that makes meshes smaller and faster to render.""" + + homepage = "https://meshoptimizer.org" + url = "https://github.com/zeux/meshoptimizer/archive/refs/tags/v1.0.tar.gz" + + license("MIT", checked_by="cmelone") + + version("1.0", sha256="30d1c3651986b2074e847b17223a7269c9612ab7f148b944250f81214fed4993") + + variant("shared", default=False, description="Build shared libraries") + variant("gltfpack", default=False, description="Build gltfpack") + variant( + "stable_exports", default=False, description="Only export stable APIs from shared library" + ) + + depends_on("cmake@3.5:", type="build") + + def cmake_args(self): + return [ + self.define_from_variant("MESHOPT_BUILD_SHARED_LIBS", "shared"), + self.define_from_variant("MESHOPT_BUILD_GLTFPACK", "gltfpack"), + self.define_from_variant("MESHOPT_STABLE_EXPORTS", "stable_exports"), + ] diff --git a/repos/spack_repo/builtin/packages/meshtool/package.py b/repos/spack_repo/builtin/packages/meshtool/package.py index da511675228..38d2beaa594 100644 --- a/repos/spack_repo/builtin/packages/meshtool/package.py +++ b/repos/spack_repo/builtin/packages/meshtool/package.py @@ -19,6 +19,10 @@ class Meshtool(MakefilePackage): # Version to use with openCARP releases # It is possible that different openCARP releases rely on the same # meshtool version + version("oc19.0", commit="d6ab63fa6915995b203f4f6b278ed0c853ad15fa") + version("oc18.1", commit="d6ab63fa6915995b203f4f6b278ed0c853ad15fa") + version("oc18.0", commit="d6ab63fa6915995b203f4f6b278ed0c853ad15fa") + version("oc17.0", commit="d6ab63fa6915995b203f4f6b278ed0c853ad15fa") version("oc16.0", commit="867431d6bde35ad41104f611aa57130ef58cfb79") version("oc15.0", commit="867431d6bde35ad41104f611aa57130ef58cfb79") version("oc13.0", commit="867431d6bde35ad41104f611aa57130ef58cfb79") diff --git a/repos/spack_repo/builtin/packages/meson/oneapi.patch b/repos/spack_repo/builtin/packages/meson/oneapi.patch deleted file mode 100644 index e5996261db7..00000000000 --- a/repos/spack_repo/builtin/packages/meson/oneapi.patch +++ /dev/null @@ -1,158 +0,0 @@ -diff --git a/docs/markdown/Reference-tables.md b/docs/markdown/Reference-tables.md -index 60303dad6..421b33c07 100644 ---- a/docs/markdown/Reference-tables.md -+++ b/docs/markdown/Reference-tables.md -@@ -20,6 +20,7 @@ These are return values of the `get_id` (Compiler family) and - | gcc | The GNU Compiler Collection | gcc | - | intel | Intel compiler (Linux and Mac) | gcc | - | intel-cl | Intel compiler (Windows) | msvc | -+| intel-llvm| Intel oneAPI LLVM-based compiler | | - | lcc | Elbrus C/C++/Fortran Compiler | | - | llvm | LLVM-based compiler (Swift, D) | | - | mono | Xamarin C# compiler | | -diff --git a/docs/markdown/snippets/oneapi_compilers.md b/docs/markdown/snippets/oneapi_compilers.md -new file mode 100644 -index 000000000..a982da22a ---- /dev/null -+++ b/docs/markdown/snippets/oneapi_compilers.md -@@ -0,0 +1,8 @@ -+## Basic support for oneAPI compilers on Linux -+ -+To use: -+ -+``` -+source /opt/intel/oneapi/setvars.sh -+CC=icx CXX=icpx FC=ifx meson setup builddir -+``` -diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py -index b1b4a7c92..9490ee688 100644 ---- a/mesonbuild/compilers/c.py -+++ b/mesonbuild/compilers/c.py -@@ -406,6 +406,13 @@ class IntelCCompiler(IntelGnuLikeCompiler, CCompiler): - return args - - -+class IntelLLVMCCompiler(ClangCCompiler): -+ -+ -+ id = 'intel-llvm' -+ -+ -+ - class VisualStudioLikeCCompilerMixin(CompilerMixinBase): - - """Shared methods that apply to MSVC-like C compilers.""" -diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py -index ac65df9a1..3d728f169 100644 ---- a/mesonbuild/compilers/cpp.py -+++ b/mesonbuild/compilers/cpp.py -@@ -153,7 +153,7 @@ class CPPCompiler(CLikeCompiler, Compiler): - } - - # Currently, remapping is only supported for Clang, Elbrus and GCC -- assert self.id in frozenset(['clang', 'lcc', 'gcc', 'emscripten', 'armltdclang']) -+ assert self.id in frozenset(['clang', 'lcc', 'gcc', 'emscripten', 'armltdclang', 'intel-llvm']) - - if cpp_std not in CPP_FALLBACKS: - # 'c++03' and 'c++98' don't have fallback types -@@ -593,6 +593,13 @@ class IntelCPPCompiler(IntelGnuLikeCompiler, CPPCompiler): - return [] - - -+class IntelLLVMCPPCompiler(ClangCPPCompiler): -+ -+ -+ id = 'intel-llvm' -+ -+ -+ - class VisualStudioLikeCPPCompilerMixin(CompilerMixinBase): - - """Mixin for C++ specific method overrides in MSVC-like compilers.""" -diff --git a/mesonbuild/compilers/detect.py b/mesonbuild/compilers/detect.py -index f4afa777d..42a4b18a5 100644 ---- a/mesonbuild/compilers/detect.py -+++ b/mesonbuild/compilers/detect.py -@@ -62,6 +62,7 @@ from .c import ( - EmscriptenCCompiler, - IntelCCompiler, - IntelClCCompiler, -+ IntelLLVMCCompiler, - NvidiaHPC_CCompiler, - PGICCompiler, - CcrxCCompiler, -@@ -83,6 +84,7 @@ from .cpp import ( - EmscriptenCPPCompiler, - IntelCPPCompiler, - IntelClCPPCompiler, -+ IntelLLVMCPPCompiler, - NvidiaHPC_CPPCompiler, - PGICPPCompiler, - CcrxCPPCompiler, -@@ -106,6 +108,7 @@ from .fortran import ( - FlangFortranCompiler, - IntelFortranCompiler, - IntelClFortranCompiler, -+ IntelLLVMFortranCompiler, - NAGFortranCompiler, - Open64FortranCompiler, - PathScaleFortranCompiler, -@@ -180,11 +183,11 @@ else: - defaults['objc'] = ['clang'] - defaults['objcpp'] = ['clang++'] - else: -- defaults['c'] = ['cc', 'gcc', 'clang', 'nvc', 'pgcc', 'icc'] -- defaults['cpp'] = ['c++', 'g++', 'clang++', 'nvc++', 'pgc++', 'icpc'] -+ defaults['c'] = ['cc', 'gcc', 'clang', 'nvc', 'pgcc', 'icc', 'icx'] -+ defaults['cpp'] = ['c++', 'g++', 'clang++', 'nvc++', 'pgc++', 'icpc', 'icpx'] - defaults['objc'] = ['cc', 'gcc', 'clang'] - defaults['objcpp'] = ['c++', 'g++', 'clang++'] -- defaults['fortran'] = ['gfortran', 'flang', 'nvfortran', 'pgfortran', 'ifort', 'g95'] -+ defaults['fortran'] = ['gfortran', 'flang', 'nvfortran', 'pgfortran', 'ifort', 'ifx', 'g95'] - defaults['cs'] = ['mcs', 'csc'] - defaults['d'] = ['ldc2', 'ldc', 'gdc', 'dmd'] - defaults['java'] = ['javac'] -@@ -617,6 +620,12 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin - return cls( - ccache + compiler, version, for_machine, is_cross, info, - exe_wrap, full_version=full_version, linker=l) -+ if 'Intel(R) oneAPI' in out: -+ cls = IntelLLVMCCompiler if lang == 'c' else IntelLLVMCPPCompiler -+ l = guess_nix_linker(env, compiler, cls, version, for_machine) -+ return cls( -+ ccache + compiler, version, for_machine, is_cross, info, -+ exe_wrap, full_version=full_version, linker=l) - if 'TMS320C2000 C/C++' in out or 'MSP430 C/C++' in out or 'TI ARM C/C++ Compiler' in out: - lnk: T.Union[T.Type[C2000DynamicLinker], T.Type[TIDynamicLinker]] - if 'TMS320C2000 C/C++' in out: -@@ -789,6 +798,13 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C - compiler, version, for_machine, is_cross, info, - exe_wrap, full_version=full_version, linker=linker) - -+ if 'ifx (IFORT)' in out: -+ cls = IntelLLVMFortranCompiler -+ linker = guess_nix_linker(env, compiler, cls, version, for_machine) -+ return cls( -+ compiler, version, for_machine, is_cross, info, -+ exe_wrap, full_version=full_version, linker=linker) -+ - if 'PathScale EKOPath(tm)' in err: - return PathScaleFortranCompiler( - compiler, version, for_machine, is_cross, info, -diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py -index 0a0c3ec86..e7154fe87 100644 ---- a/mesonbuild/compilers/fortran.py -+++ b/mesonbuild/compilers/fortran.py -@@ -352,6 +352,12 @@ class IntelFortranCompiler(IntelGnuLikeCompiler, FortranCompiler): - return ['-gen-dep=' + outtarget, '-gen-depformat=make'] - - -+class IntelLLVMFortranCompiler(IntelFortranCompiler): -+ -+ -+ id = 'intel-llvm' -+ -+ - class IntelClFortranCompiler(IntelVisualStudioLikeCompiler, FortranCompiler): - - file_suffixes = ('f90', 'f', 'for', 'ftn', 'fpp', ) diff --git a/repos/spack_repo/builtin/packages/meson/package.py b/repos/spack_repo/builtin/packages/meson/package.py index a8249e3b3e9..d6b284c071b 100644 --- a/repos/spack_repo/builtin/packages/meson/package.py +++ b/repos/spack_repo/builtin/packages/meson/package.py @@ -21,7 +21,11 @@ class Meson(PythonPackage): license("Apache-2.0") - version("1.7.0", sha256="a6ca46e2a11a0278bb6492ecd4e0520ff441b164ebfdef1e012b11beb848d26e") + version("1.11.1", sha256="1a2219422be4a66ad0e8daed125c2a3d5c963458e289203eae22edf3224f5d3e") + version("1.10.2", sha256="4f3c6fe1d163fb6d5b52094035fc29d14cf4a254c3ac29544ba0a3d5a739c7ba") + version("1.10.1", sha256="3d4768a76fc63dc4c562edc7892de17b54dfaa7309d148e805b0d763bc085e00") + version("1.8.5", sha256="1cd0b5b013b4208ab450f5aca93b592b707f3fb2afe96b101dc710e6e5a8245c") + version("1.7.2", sha256="3640ef596523393100df31ba790bc5fe732215e9711a66b673a21c4eb39bc8f1") version("1.6.1", sha256="4889795777b536ea1a351982f3ef7c7b06a786ccb47036daba63cc5757c59edb") version("1.5.2", sha256="fb41882bef26ffc02647d9978cba502a4accdf2e94c0a6dc9cc498dd7463381e") version("1.4.2", sha256="11d1336fe35e1ade57510a846a31d7dc2e3b6ac1e2491c2831bce5a2a192ba0d") @@ -31,145 +35,17 @@ class Meson(PythonPackage): version("1.0.2", sha256="1f1239c3091668643f7d2086663d6afd8cc87fbab84fe7462bc18b9ba6d65de8") with default_args(deprecated=True): - version("1.5.1", sha256="55f6acd5bf72c14d4aa5a781993633f84a1d117bdf2c2057735902ced9b81390") - version("1.2.1", sha256="e1f3b32b636cc86496261bd89e63f00f206754697c7069788b62beed5e042713") - version("1.2.0", sha256="603489f0aaa6305f806c6cc4a4455a965f22290fc74f65871f589b002110c790") - version("1.1.0", sha256="f29a3e14062043d75e82d16f1e41856e6b1ed7a7c016e10c7b13afa7ee6364cc") - version("1.0.1", sha256="4ab3a5c0060dc22bdefb04507efc6c38acb910e91bcd467a38e1fa211e5a6cfe") - version("1.0.0", sha256="a2ada84d43c7e57400daee80a880a1f5003d062b2cb6c9be1747b0db38f2eb8d") - version( - "0.64.1", sha256="1d12a4bc1cf3ab18946d12cf0b6452e5254ada1ad50aacc97f87e2cccd7da315" - ) - version( - "0.64.0", sha256="6477993d781b6efea93091616a6d6a0766c0e026076dbeb11249bf1c9b49a347" - ) - version( - "0.63.3", sha256="7c516c2099b762203e8a0a22412aa465b7396e6f9b1ab728bad6e6db44dc2659" - ) - version( - "0.63.2", sha256="023a3f7c74e68991154c3205a6975705861eedbf8130e013d15faa1df1af216e" - ) - version( - "0.63.1", sha256="f355829f0e8c714423f03a06604c04c216d4cbe3586f3154cb2181076b19207a" - ) - version( - "0.62.2", sha256="97108f4d9bb16bc758c44749bd25ec7d42c6a762961efbed8b7589a2a3551ea6" - ) - version( - "0.62.1", sha256="9fb52e66dbc613479a5f70e46cc2e8faf5aa65e09313f2c71fa63b8afd018107" - ) - version( - "0.62.0", sha256="72ac3bab701dfd597604de29cc74baaa1cc0ad8ca26ae23d5288de26abfe1c80" - ) - version( - "0.61.4", sha256="c9cc34bcb15c19cfd5ee0d7b07111152701f602db2b59ef6b63d3628e0bbe719" - ) - version( - "0.61.2", sha256="33cd555314a94d52acfbb3f6f44d4e61c4ad0bfec7acf4301be7e40bb969b3a8" - ) - version( - "0.60.3", sha256="6c191a9b4049e0c9a2a7d1275ab635b91f6ffec1912d75df4c5ec6acf35f74fe" - ) - version( - "0.60.0", sha256="5672a560fc4094c88ca5b8be0487e099fe84357e5045f5aecf1113084800e6fd" - ) - version( - "0.59.2", sha256="e6d5ccd503d41f938f6cfc4dc9e7326ffe28acabe091b1ff0c6535bdf09732dd" - ) - version( - "0.59.1", sha256="f256eb15329a6064f8cc1f23b29de1fa8d21e324f939041e1a4efe77cf1362ef" - ) - version( - "0.59.0", sha256="fdbbe8ea8a47f9e21cf4f578f85be8ec3d9c030df3d8cb17df1ae59d8683813a" - ) - version( - "0.58.2", sha256="58115604dea9c1f70811578df3c210f4d67cf795d21a4418f6e9bb35406953f5" - ) - version( - "0.58.1", sha256="78e0f553dd3bc632d5f96ab943b1bbccb599c2c84ff27c5fb7f7fff9c8a3f6b4" - ) - version( - "0.58.0", sha256="991b882bfe4d37acc23c064a29ca209458764a580d52f044f3d50055a132bed4" - ) - version( - "0.57.2", sha256="cd3773625253df4fd1c380faf03ffae3d02198d6301e7c8bc7bba6c66af66096" - ) - version( - "0.57.1", sha256="0c043c9b5350e9087cd4f6becf6c0d10b1d618ca3f919e0dcca2cdf342360d5d" - ) - version( - "0.57.0", sha256="fd26a27c1a509240c668ebd29d280649d9239cf8684ead51d5cb499d1e1188bd" - ) - version( - "0.56.2", sha256="aaae961c3413033789248ffe6762589e80b6cf487c334d0b808e31a32c48f35f" - ) - version( - "0.56.0", sha256="a9ca7adf66dc69fbb7e583f7c7aef16b9fe56ec2874a3d58747e69a3affdf300" - ) - version( - "0.55.3", sha256="2b276df50c5b13ccdbfb14d3333141e9e7985aca31b60400b3f3e0be2ee6897e" - ) - version( - "0.55.2", sha256="56244896e56c2b619f819d047b6de412ecc5250975ee8717f1e329113d178e06" - ) - version( - "0.55.1", sha256="c7ebf2fff5934a974c7edd1aebb5fc9c3e1da5ae3184a29581fde917638eea39" - ) - version( - "0.55.0", sha256="9034c943c8cf4d734c0e18e5ba038dd762fcdcc614c45b41703305da8382e90c" - ) - version( - "0.54.3", sha256="c25caff342b5368bfe33fab6108f454fcf12e2f2cef70817205872ddef669e8b" - ) - version( - "0.54.2", sha256="85cafdc70ae7d1d9d506e7356b917c649c4df2077bd6a0382db37648aa4ecbdb" - ) - version( - "0.54.1", sha256="854e8b94ab36e5aece813d2b2aee8a639bd52201dfea50890722ac9128e2f59e" - ) - version( - "0.54.0", sha256="95efdbaa7cb3e915ab9a7b26b1412475398fdc3e834842a780f1646c7764f2d9" - ) - version( - "0.53.2", sha256="eab4f5d5dde12d002b7ddd958a9a0658589b63622b6cea2715e0235b95917888" - ) - version( - "0.49.1", sha256="a944e7f25a2bc8e4ba3502ab5835d8a8b8f2530415c9d6fcffb53e0abaea2ced" - ) - version( - "0.49.0", sha256="11bc959e7173e714e4a4e85dd2bd9d0149b0a51c8ba82d5f44cc63735f603c74" - ) - version( - "0.42.0", sha256="6c318a2da3859326a37f8a380e3c50e97aaabff6990067218dffffea674ed76f" - ) - version( - "0.41.2", sha256="2daf448d3f2479d60e30617451f09bf02d26304dd1bd12ee1de936a53e42c7a4" - ) - version( - "0.41.1", sha256="a48901f02ffeb9ff5cf5361d71b1fca202f9cd72998043ad011fc5de0294cf8b" - ) - - depends_on("python@3.7:", when="@0.62.0:", type=("build", "run")) - depends_on("python@3.6:", when="@0.57.0:", type=("build", "run")) - depends_on("python@3.5:", type=("build", "run")) - depends_on("py-setuptools@42:", when="@0.62.0:", type=("build", "run")) - depends_on("py-setuptools", type=("build", "run")) - depends_on("ninja@1.8.2:", when="@0.62.0:", type="run") - depends_on("ninja", type="run") + version("1.8.4", sha256="57dfa56ead471eec31d624d76c819e743a4dd0f6e8b4cd503e63d97604d11c2c") + version("1.8.2", sha256="6b878fb0f6f0318cbd54e13539f89a1a8305791668e8e93ffd59d82722888dac") + version("1.7.0", sha256="a6ca46e2a11a0278bb6492ecd4e0520ff441b164ebfdef1e012b11beb848d26e") + + depends_on("py-setuptools@42:", type=("build", "run")) + depends_on("ninja@1.8.2:", type="run") # By default, Meson strips the rpath on installation. This patch disables # rpath modification completely to make sure that Spack's rpath changes # are not reverted. - patch("rpath-0.49.patch", when="@0.49:0.53") - patch("rpath-0.54.patch", when="@0.54:0.55") - patch("rpath-0.56.patch", when="@0.56:0.57") - patch("rpath-0.58.patch", when="@0.58:0.63") - patch("rpath-0.64.patch", when="@0.64:") - - # Intel OneAPI compiler support - # https://github.com/mesonbuild/meson/pull/10909 - # https://github.com/mesonbuild/meson/pull/9850 - patch("oneapi.patch", when="@0.62:0.63 %oneapi") + patch("rpath-0.64.patch") # Python 3.12 detection support patch("python-3.12-support.patch", when="@1.1:1.2.2") @@ -193,5 +69,5 @@ def _meson_bin_dir(self): bin_dir = self.spec.prefix.scripts return bin_dir - def setup_dependent_package(self, module, dspec): + def setup_dependent_package(self, module, dependent_spec): module.meson = Executable(self._meson_bin_dir().meson) diff --git a/repos/spack_repo/builtin/packages/meson/rpath-0.49.patch b/repos/spack_repo/builtin/packages/meson/rpath-0.49.patch deleted file mode 100644 index 05b4d142f5e..00000000000 --- a/repos/spack_repo/builtin/packages/meson/rpath-0.49.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/mesonbuild/scripts/depfixer.py -+++ b/mesonbuild/scripts/depfixer.py -@@ -15,6 +15,7 @@ - - import sys, struct - import shutil, subprocess -+import os - - from ..mesonlib import OrderedSet - -@@ -429,6 +430,9 @@ def fix_jar(fname): - subprocess.check_call(['jar', 'ufm', fname, 'META-INF/MANIFEST.MF']) - - def fix_rpath(fname, new_rpath, final_path, install_name_mappings, verbose=True): -+ # Do not strip rpath when run from within Spack -+ if 'SPACK_RPATH_DIRS' in os.environ: -+ return - # Static libraries never have rpaths - if fname.endswith('.a'): - return diff --git a/repos/spack_repo/builtin/packages/meson/rpath-0.54.patch b/repos/spack_repo/builtin/packages/meson/rpath-0.54.patch deleted file mode 100644 index 110e9106dda..00000000000 --- a/repos/spack_repo/builtin/packages/meson/rpath-0.54.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/mesonbuild/scripts/depfixer.py -+++ b/mesonbuild/scripts/depfixer.py -@@ -15,6 +15,7 @@ - - import sys, struct - import shutil, subprocess -+import os - - from ..mesonlib import OrderedSet - -@@ -432,6 +433,9 @@ def fix_jar(fname): - - def fix_rpath(fname, new_rpath, final_path, install_name_mappings, verbose=True): - global INSTALL_NAME_TOOL -+ # Do not strip rpath when run from within Spack -+ if 'SPACK_RPATH_DIRS' in os.environ: -+ return - # Static libraries, import libraries, debug information, headers, etc - # never have rpaths - # DLLs and EXE currently do not need runtime path fixing diff --git a/repos/spack_repo/builtin/packages/meson/rpath-0.56.patch b/repos/spack_repo/builtin/packages/meson/rpath-0.56.patch deleted file mode 100644 index c18865552f6..00000000000 --- a/repos/spack_repo/builtin/packages/meson/rpath-0.56.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/mesonbuild/scripts/depfixer.py 2020-10-30 03:25:24.000000000 -0500 -+++ b/mesonbuild/scripts/depfixer.py 2020-11-01 14:24:44.000000000 -0600 -@@ -13,6 +13,7 @@ - # limitations under the License. - - -+import os - import sys, struct - import shutil, subprocess - import typing as T -@@ -454,6 +455,9 @@ - - def fix_rpath(fname: str, rpath_dirs_to_remove: T.List[bytes], new_rpath: T.Union[str, bytes], final_path: str, install_name_mappings: T.Dict[str, str], verbose: bool = True) -> None: - global INSTALL_NAME_TOOL -+ # Do not strip rpath when run from within Spack -+ if 'SPACK_RPATH_DIRS' in os.environ: -+ return - # Static libraries, import libraries, debug information, headers, etc - # never have rpaths - # DLLs and EXE currently do not need runtime path fixing diff --git a/repos/spack_repo/builtin/packages/meson/rpath-0.58.patch b/repos/spack_repo/builtin/packages/meson/rpath-0.58.patch deleted file mode 100644 index 9e35933ed96..00000000000 --- a/repos/spack_repo/builtin/packages/meson/rpath-0.58.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/mesonbuild/scripts/depfixer.py 2021-05-11 21:50:38.800645669 +0200 -+++ b/mesonbuild/scripts/depfixer.py 2021-05-11 21:51:44.503883473 +0200 -@@ -479,6 +479,9 @@ - - def fix_rpath(fname: str, rpath_dirs_to_remove: T.Set[bytes], new_rpath: T.Union[str, bytes], final_path: str, install_name_mappings: T.Dict[str, str], verbose: bool = True) -> None: - global INSTALL_NAME_TOOL -+ # Do not strip rpath when run from within Spack -+ if 'SPACK_RPATH_DIRS' in os.environ: -+ return - # Static libraries, import libraries, debug information, headers, etc - # never have rpaths - # DLLs and EXE currently do not need runtime path fixing diff --git a/repos/spack_repo/builtin/packages/met/package.py b/repos/spack_repo/builtin/packages/met/package.py index a1edb397bc8..65244405ffd 100644 --- a/repos/spack_repo/builtin/packages/met/package.py +++ b/repos/spack_repo/builtin/packages/met/package.py @@ -42,7 +42,6 @@ class Met(AutotoolsPackage): variant("modis", default=False, description="Enable compilation of modis") variant("graphics", default=False, description="Enable compilation of mode_graphics") - # JCSDA fork only variant( "shared-intel", default=False, @@ -216,8 +215,8 @@ def configure_args(self): # segmentation faults for different versions of MET and for # different compilers - set LD_LIBRARY_PATH instead below # (https://github.com/JCSDA/spack-stack/issues/1839) - #@run_after("install", when="+python platform=linux") - #def fixup_rpaths(self): + # @run_after("install", when="+python platform=linux") + # def fixup_rpaths(self): # # set rpaths of binaries Python's lib directory # rpaths = self.spec["python"].libs.directories # @@ -226,7 +225,6 @@ def configure_args(self): # patchelf("--add-rpath", ":".join(rpaths), binary) def setup_run_environment(self, env: EnvironmentModifications) -> None: - if self.spec.satisfies("+python"): + if self.spec.satisfies("+python"): for libpath in self.spec["python"].libs.directories: env.append_path("LD_LIBRARY_PATH", libpath) - diff --git a/repos/spack_repo/builtin/packages/metabat/package.py b/repos/spack_repo/builtin/packages/metabat/package.py index 4cc979e7c4d..6a6ae21021b 100644 --- a/repos/spack_repo/builtin/packages/metabat/package.py +++ b/repos/spack_repo/builtin/packages/metabat/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 * @@ -20,31 +19,33 @@ class Metabat(CMakePackage): version("2.15", sha256="550487b66ec9b3bc53edf513d00c9deda594a584f53802165f037bde29b4d34e") version("2.14", sha256="d43d5e91afa8f2d211a913739127884669516bfbed870760597fcee2b513abe2") version("2.13", sha256="aa75a2b62ec9588add4c288993821bab5312a83b1259ff0d508c215133492d74") - version( - "2.12.1", - sha256="e3aca0656f56f815135521360dc56667ec26af25143c3a31d645fef1a96abbc2", - deprecated=True, - ) - version( - "2.11.2", - sha256="9baf81b385e503e71792706237c308a21ff9177a3211c79057dcecf8434e9a67", - deprecated=True, - ) + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("autoconf", type="build") - depends_on("cmake", type="build", when="@2.13:") - depends_on("boost@1.55.0:", type=("build", "run")) + depends_on("cmake", type="build") - # 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, type=("build", "run")) + depends_on( + "boost@1.55:1.82+program_options+filesystem+system+graph+serialization+iostreams\ + cxxstd=11", + type=("build", "run"), + ) depends_on("perl", type="run") depends_on("zlib-api", type="link") depends_on("ncurses", type="link") + def patch(self): + filter_file(r"(autoconf)", r"autoreconf -i && \1", join_path("cmake", "htslib.cmake")) + filter_file( + "./configure", + ( + f"./configure --host={self.spec.build_spec.target.family.name}-linux-gnu" + f" --without-libdeflate " + ), + join_path("cmake", "htslib.cmake"), + ) + def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("BOOST_ROOT", self.spec["boost"].prefix) diff --git a/repos/spack_repo/builtin/packages/metis/package.py b/repos/spack_repo/builtin/packages/metis/package.py index f189618bedc..70263a2e9d4 100644 --- a/repos/spack_repo/builtin/packages/metis/package.py +++ b/repos/spack_repo/builtin/packages/metis/package.py @@ -250,7 +250,7 @@ def install_headers(self): def check(self): # On some systems, the installed binaries for METIS cannot # be executed without first being read. - ls = which("ls") + ls = which("ls", required=True) ls("-a", "-l", self.prefix.bin) graphchk = Executable(join_path(self.prefix.bin, "graphchk")) diff --git a/repos/spack_repo/builtin/packages/metkit/package.py b/repos/spack_repo/builtin/packages/metkit/package.py index 7cd1570a232..cb8857ea883 100644 --- a/repos/spack_repo/builtin/packages/metkit/package.py +++ b/repos/spack_repo/builtin/packages/metkit/package.py @@ -14,11 +14,28 @@ class Metkit(CMakePackage): homepage = "https://github.com/ecmwf/metkit" git = "https://github.com/ecmwf/metkit.git" url = "https://github.com/ecmwf/metkit/archive/refs/tags/1.7.0.tar.gz" + list_url = "https://github.com/ecmwf/metkit/tags" - maintainers("skosukhin", "victoria-cherkas") + maintainers("victoria-cherkas") license("Apache-2.0") + version("1.17.0", sha256="0fb4cae8cf440f6589b426cbddf8fd37434bc59e178b34df6b7633bfdbb47de3") + version( + "1.16.3-levelist", + sha256="90bd8ca8be1c954f8d6af44b5a416c7357a37bcc9247fa3cdec8ec5cb7c411d0", + ) + version("1.16.3", sha256="b2da2ce50aac68365506c7fb8661889df61a01e53ca7e8f699fe9d3015d44974") + version("1.16.2", sha256="30a65a2cc14942e7ce64ea5539a1b6b85ecce336811014aba70e1f4f9e651f68") + version("1.16.1", sha256="0520cba65afeaede6553c8b62941e67c0f88123602e19d0898538a52e2b0f522") + version("1.16.0", sha256="7b93e4fc1608c1ac205fbf3e094d50ba8a88e7223b65eab7a12362f55550c8e1") + version("1.15.9", sha256="19e656fdafd52375d076303f710bfb71d24298866960e479082d7cb8c730efee") + version( + "1.15.2-levelist", + sha256="25cebe7610949848671131ee3681e3e7e01d376e7b74e1a269872b9fba15ab54", + ) + version("1.14.1", sha256="996cc1d4b569c73b20490bfccbd8ee09d78a94dd9c15e643528d7d9a360f3d2e") + version("1.11.22", sha256="e2a2ea1532f9e187e37b807dbf35cd09325b2aef29bd5117203d57ba2e65a0d6") version("1.11.5", sha256="717e0d92499d7a1b49338c3762d829aa83c75f8095dc9e7cdc7f49c209bb847b") version("1.10.17", sha256="1c525891d77ed28cd4c87b065ba4d1aea24d0905452c18d885ccbd567bbfc9b1") version("1.10.2", sha256="a038050962aecffda27b755c40b0a6ed0db04a2c22cad3d8c93e6109c8ab4b34") @@ -30,6 +47,7 @@ class Metkit(CMakePackage): variant("odb", default=False, description="Enable support for ODB data") depends_on("cxx", type="build") # generated + depends_on("c", type="build") depends_on("cmake@3.12:", type="build") depends_on("ecbuild@3.4:", type="build") diff --git a/repos/spack_repo/builtin/packages/mfem/mfem-4.8-nvcc-c++17.patch b/repos/spack_repo/builtin/packages/mfem/mfem-4.8-nvcc-c++17.patch new file mode 100644 index 00000000000..db6e104aa54 --- /dev/null +++ b/repos/spack_repo/builtin/packages/mfem/mfem-4.8-nvcc-c++17.patch @@ -0,0 +1,129 @@ +diff --git a/miniapps/dpg/convection-diffusion.cpp b/miniapps/dpg/convection-diffusion.cpp +index 7659e52745..170f8f1c5e 100644 +--- a/miniapps/dpg/convection-diffusion.cpp ++++ b/miniapps/dpg/convection-diffusion.cpp +@@ -79,7 +79,7 @@ enum prob_type + }; + + prob_type prob; +-Vector beta; ++Vector beta_glob; + real_t epsilon; + + real_t exact_u(const Vector & X); +@@ -120,7 +120,7 @@ int main(int argc, char *argv[]) + "Theta parameter for AMR"); + args.AddOption(&iprob, "-prob", "--problem", "Problem case" + " 0: manufactured, 1: Erickson-Johnson "); +- args.AddOption(&beta, "-beta", "--beta", ++ args.AddOption(&beta_glob, "-beta", "--beta", + "Vector Coefficient beta"); + args.AddOption(&static_cond, "-sc", "--static-condensation", "-no-sc", + "--no-static-condensation", "Enable static condensation."); +@@ -147,11 +147,11 @@ int main(int argc, char *argv[]) + int dim = mesh.Dimension(); + MFEM_VERIFY(dim > 1, "Dimension = 1 is not supported in this example"); + +- if (beta.Size() == 0) ++ if (beta_glob.Size() == 0) + { +- beta.SetSize(dim); +- beta = 0.0; +- beta[0] = 1.; ++ beta_glob.SetSize(dim); ++ beta_glob = 0.0; ++ beta_glob[0] = 1.; + } + + args.PrintOptions(std::cout); +@@ -199,10 +199,10 @@ int main(int argc, char *argv[]) + ConstantCoefficient eps2(1/(epsilon*epsilon)); + + ConstantCoefficient negeps(-epsilon); +- VectorConstantCoefficient betacoeff(beta); +- Vector negbeta = beta; negbeta.Neg(); +- DenseMatrix bbt(beta.Size()); +- MultVVt(beta, bbt); ++ VectorConstantCoefficient betacoeff(beta_glob); ++ Vector negbeta = beta_glob; negbeta.Neg(); ++ DenseMatrix bbt(beta_glob.Size()); ++ MultVVt(beta_glob, bbt); + MatrixConstantCoefficient bbtcoeff(bbt); + VectorConstantCoefficient negbetacoeff(negbeta); + +@@ -598,7 +598,7 @@ void exact_hatf(const Vector & X, Vector & hatf) + hatf.SetSize(X.Size()); + for (int i = 0; iIntRule != &ir || d2q->mode != mode) { d2q = nullptr; } +- } ++ d2q = DofToQuad::SearchArray(dof2quad_array, ir, mode); + if (!d2q) + { + #ifdef MFEM_THREAD_SAFE +@@ -661,58 +657,66 @@ void ScalarFiniteElement::ScalarLocalL2Restriction( + void NodalFiniteElement::CreateLexicographicFullMap(const IntegrationRule &ir) + const + { ++ // Get the FULL version of the map. This call contains omp critical region, ++ // so it is done before the critical region below. ++ auto &d2q = GetDofToQuad(ir, DofToQuad::FULL); + + #if defined(MFEM_THREAD_SAFE) && defined(MFEM_USE_OPENMP) + #pragma omp critical (DofToQuad) + #endif + { +- // Get the FULL version of the map. +- auto &d2q = GetDofToQuad(ir, DofToQuad::FULL); +- //Undo the native ordering which is what FiniteElement::GetDofToQuad returns. +- auto *d2q_new = new DofToQuad(d2q); +- d2q_new->mode = DofToQuad::LEXICOGRAPHIC_FULL; +- const int nqpt = ir.GetNPoints(); ++ // Do work only if the new Dof2Quad is not already present, e.g. added in a ++ // previous call or added by another omp thread. ++ if (!DofToQuad::SearchArray(dof2quad_array, ir, ++ DofToQuad::LEXICOGRAPHIC_FULL)) ++ { ++ // Undo the native ordering which is what FiniteElement::GetDofToQuad ++ // returns. ++ auto *d2q_new = new DofToQuad(d2q); ++ d2q_new->mode = DofToQuad::LEXICOGRAPHIC_FULL; ++ const int nqpt = ir.GetNPoints(); + +- const int b_dim = (range_type == VECTOR) ? dim : 1; ++ const int b_dim = (range_type == VECTOR) ? dim : 1; + +- for (int i = 0; i < nqpt; i++) +- { +- for (int d = 0; d < b_dim; d++) ++ for (int i = 0; i < nqpt; i++) + { +- for (int j = 0; j < dof; j++) ++ for (int d = 0; d < b_dim; d++) + { +- const double val = d2q.B[i + nqpt*(d+b_dim*lex_ordering[j])]; +- d2q_new->B[i+nqpt*(d+b_dim*j)] = val; +- d2q_new->Bt[j+dof*(i+nqpt*d)] = val; ++ for (int j = 0; j < dof; j++) ++ { ++ const double val = d2q.B[i + nqpt*(d+b_dim*lex_ordering[j])]; ++ d2q_new->B[i+nqpt*(d+b_dim*j)] = val; ++ d2q_new->Bt[j+dof*(i+nqpt*d)] = val; ++ } + } + } +- } + +- const int g_dim = [this]() +- { +- switch (deriv_type) ++ const int g_dim = [this]() + { +- case GRAD: return dim; +- case DIV: return 1; +- case CURL: return cdim; +- default: return 0; +- } +- }(); ++ switch (deriv_type) ++ { ++ case GRAD: return dim; ++ case DIV: return 1; ++ case CURL: return cdim; ++ default: return 0; ++ } ++ }(); + +- for (int i = 0; i < nqpt; i++) +- { +- for (int d = 0; d < g_dim; d++) ++ for (int i = 0; i < nqpt; i++) + { +- for (int j = 0; j < dof; j++) ++ for (int d = 0; d < g_dim; d++) + { +- const double val = d2q.G[i + nqpt*(d+g_dim*lex_ordering[j])]; +- d2q_new->G[i+nqpt*(d+g_dim*j)] = val; +- d2q_new->Gt[j+dof*(i+nqpt*d)] = val; ++ for (int j = 0; j < dof; j++) ++ { ++ const double val = d2q.G[i + nqpt*(d+g_dim*lex_ordering[j])]; ++ d2q_new->G[i+nqpt*(d+g_dim*j)] = val; ++ d2q_new->Gt[j+dof*(i+nqpt*d)] = val; ++ } + } + } +- } + +- dof2quad_array.Append(d2q_new); ++ dof2quad_array.Append(d2q_new); ++ } + } + } + +@@ -724,13 +728,7 @@ const DofToQuad &NodalFiniteElement::GetDofToQuad(const IntegrationRule &ir, + #pragma omp critical (DofToQuad) + #endif + { +- //Should make this loop a function of FiniteElement +- for (int i = 0; i < dof2quad_array.Size(); i++) +- { +- d2q = dof2quad_array[i]; +- if (d2q->IntRule == &ir && d2q->mode == mode) { break; } +- d2q = nullptr; +- } ++ d2q = DofToQuad::SearchArray(dof2quad_array, ir, mode); + } + if (d2q) { return *d2q; } + if (mode != DofToQuad::LEXICOGRAPHIC_FULL) +@@ -2631,15 +2629,7 @@ const DofToQuad &TensorBasisElement::GetTensorDofToQuad( + #pragma omp critical (DofToQuad) + #endif + { +- for (int i = 0; i < dof2quad_array.Size(); i++) +- { +- auto* d2q_ = dof2quad_array[i]; +- if (d2q_->IntRule == &ir && d2q_->mode == mode) +- { +- d2q = d2q_; +- break; +- } +- } ++ d2q = DofToQuad::SearchArray(dof2quad_array, ir, mode); + if (!d2q) + { + d2q = new DofToQuad; +diff --git a/fem/fe/fe_base.hpp b/fem/fe/fe_base.hpp +index a579faf835..ad356bcd2d 100644 +--- a/fem/fe/fe_base.hpp ++++ b/fem/fe/fe_base.hpp +@@ -222,6 +222,12 @@ public: + + /// Returns absolute value of the maps + DofToQuad Abs() const; ++ ++ /// Auxiliary function for searching DofToQuad arrays. ++ static inline DofToQuad *SearchArray( ++ const Array &dof2quad_array, ++ const IntegrationRule &ir, ++ DofToQuad::Mode mode); + }; + + /// Describes the function space on each element +@@ -1376,6 +1382,21 @@ public: + void InvertLinearTrans(ElementTransformation &trans, + const IntegrationPoint &pt, Vector &x); + ++ ++// static inline method ++inline DofToQuad *DofToQuad::SearchArray( ++ const Array &dof2quad_array, ++ const IntegrationRule &ir, ++ DofToQuad::Mode mode) ++{ ++ for (int i = 0; i < dof2quad_array.Size(); i++) ++ { ++ DofToQuad *d2q = dof2quad_array[i]; ++ if (d2q->IntRule == &ir && d2q->mode == mode) { return d2q; } ++ } ++ return nullptr; ++} ++ + } // namespace mfem + + #endif diff --git a/repos/spack_repo/builtin/packages/mfem/package.py b/repos/spack_repo/builtin/packages/mfem/package.py index 0f95d0aa455..e0e7d762753 100644 --- a/repos/spack_repo/builtin/packages/mfem/package.py +++ b/repos/spack_repo/builtin/packages/mfem/package.py @@ -53,6 +53,20 @@ class Mfem(Package, CudaPackage, ROCmPackage): # other version. version("develop", branch="master") + version( + "4.9.0", + sha256="6904974c8d5a6bcd127419c7b7adff873170d397ed2f0bccdf438e940e713af2", + url="https://bit.ly/mfem-4-9", + extension="tar.gz", + ) + + version( + "4.8.0", + sha256="49bd2a076b0d87863092cb55f8524b5292d9afb2e48c19f80222ada367819016", + url="https://bit.ly/mfem-4-8", + extension="tar.gz", + ) + version( "4.7.0", sha256="5e889493f5f79848f7b2d16afaae307c59880ac2a7ff2315551c60ca54717751", @@ -179,9 +193,7 @@ class Mfem(Package, CudaPackage, ROCmPackage): "threadsafe", default=False, description=( - "Enable thread safe features." - " Required for OpenMP." - " May cause minor performance issues." + "Enable thread safe features. Required for OpenMP. May cause minor performance issues." ), ) variant( @@ -208,6 +220,7 @@ class Mfem(Package, CudaPackage, ROCmPackage): variant("fms", default=False, when="@4.3.0:", description="Enable FMS I/O support") variant("ginkgo", default=False, when="@4.3.0:", description="Enable Ginkgo support") variant("hiop", default=False, when="@4.4.0:", description="Enable HiOp support") + variant("enzyme", default=False, when="@4.9.0:", description="Enable Enzyme support") # TODO: SIMD, ADIOS2, MKL CPardiso, Axom/Sidre variant( "timer", @@ -229,46 +242,75 @@ class Mfem(Package, CudaPackage, ROCmPackage): variant( "cxxstd", default="auto", - values=("auto", conditional("98", when="@:3"), "11", "14", "17"), + values=( + "auto", + conditional("98", when="@:3"), + conditional("11", when="@:4.8"), + conditional("14", when="@:4.8"), + "17", + "20", + "23", + ), multi=False, description="C++ language standard", ) - conflicts("+shared", when="@:3.3.2") conflicts("~static~shared") conflicts("~threadsafe", when="@:3+openmp") + requires("+threadsafe", when="+openmp") - conflicts("+cuda", when="@:3") - conflicts("+rocm", when="@:4.1") conflicts("+cuda+rocm") - conflicts("+netcdf", when="@:3.1") - conflicts("+superlu-dist", when="@:3.1") - # STRUMPACK support was added in mfem v3.3.2, however, here we allow only - # strumpack v3+ support for which is available starting with mfem v4.0: - conflicts("+strumpack", when="@:3") - conflicts("+gnutls", when="@:3.1") - conflicts("+zlib", when="@:3.2") - conflicts("+mpfr", when="@:3.2") - conflicts("+petsc", when="@:3.2") - conflicts("+slepc", when="@:4.1") - conflicts("+sundials", when="@:3.2") - conflicts("+pumi", when="@:3.3.2") - conflicts("+gslib", when="@:4.0") - conflicts("timer=mac", when="@:3.3.0") - conflicts("timer=mpi", when="@:3.3.0") - conflicts("~metis+mpi", when="@:3.3.0") - conflicts("+metis~mpi", when="@:3.3.0") - conflicts("+conduit", when="@:3.3.2") - conflicts("+occa", when="mfem@:3") - conflicts("+raja", when="mfem@:3") - conflicts("+libceed", when="mfem@:4.0") - conflicts("+umpire", when="mfem@:4.0") - conflicts("+amgx", when="mfem@:4.1") conflicts("+amgx", when="~cuda") conflicts("+mpi~cuda ^hypre+cuda") - conflicts("+mpi ^hypre+cuda", when="@:4.2") conflicts("+mpi~rocm ^hypre+rocm") - conflicts("+mpi ^hypre+rocm", when="@:4.3") + + with when("@:3"): + conflicts("+cuda") + # STRUMPACK support was added in mfem v3.3.2, however, here we allow only + # strumpack v3+ support for which is available starting with mfem v4.0: + conflicts("+strumpack") + conflicts("+occa") + conflicts("+raja") + + with when("@:3.1"): + conflicts("+netcdf") + conflicts("+superlu-dist") + conflicts("+gnutls") + + with when("@:3.2"): + conflicts("+zlib") + conflicts("+mpfr") + conflicts("+petsc") + conflicts("+sundials") + + with when("@:3.3.0"): + conflicts("timer=mac") + conflicts("timer=mpi") + conflicts("~metis+mpi") + conflicts("+metis~mpi") + + with when("@:3.3.2"): + conflicts("+shared") + conflicts("+pumi") + conflicts("+conduit") + + with when("@:4.0"): + conflicts("+gslib") + conflicts("+libceed") + conflicts("+umpire") + + with when("@:4.1"): + conflicts("+rocm") + conflicts("+amgx") + conflicts("+slepc") + + with when("@:4.2"): + conflicts("+mpi ^hypre+cuda") + + with when("@:4.3"): + conflicts("+mpi ^hypre+rocm") + # See https://github.com/mfem/mfem/issues/2957 + conflicts("^mpich@4:", when="+mpi") conflicts("+superlu-dist", when="~mpi") conflicts("+strumpack", when="~mpi") @@ -278,21 +320,21 @@ class Mfem(Package, CudaPackage, ROCmPackage): conflicts("timer=mpi", when="~mpi") conflicts("+mumps", when="~mpi") - # See https://github.com/mfem/mfem/issues/2957 - conflicts("^mpich@4:", when="@:4.3+mpi") - - depends_on("cxx", type="build") # generated + depends_on("cxx", type="build") + depends_on("fortran", type="build", when="+strumpack") depends_on("gmake", type="build") depends_on("mpi", when="+mpi") depends_on("hipsparse", when="@4.4.0:+rocm") - depends_on("hipblas", when="@4.4.0:+rocm") + depends_on("hipblas", when="@4.8.0:+rocm") + depends_on("hipcub", when="@4.9.0:+rocm") with when("+mpi"): depends_on("hypre") depends_on("hypre@2.10.0:2.13", when="@:3.3") depends_on("hypre@:2.20.0", when="@3.4:4.2") depends_on("hypre@:2.23.0", when="@4.3.0") + depends_on("hypre@:2", when="@:4.8.0") # If hypre is built with +cuda, propagate cuda_arch requires("^hypre@2.22.1:", when="+mpi+cuda ^hypre+cuda") @@ -307,16 +349,14 @@ class Mfem(Package, CudaPackage, ROCmPackage): depends_on("blas", when="+lapack") depends_on("lapack@3.0:", when="+lapack") - depends_on("sundials@2.7.0", when="@:3.3.0+sundials~mpi") - depends_on("sundials@2.7.0+mpi+hypre", when="@:3.3.0+sundials+mpi") - depends_on("sundials@2.7.0:", when="@3.3.2:+sundials~mpi") - depends_on("sundials@2.7.0:+mpi+hypre", when="@3.3.2:+sundials+mpi") + depends_on("sundials@2.7.0:", when="@3.3.2:4.0+sundials~mpi") + depends_on("sundials@2.7.0:+mpi+hypre", when="@3.3.2:4.0+sundials+mpi") depends_on("sundials@5.0.0:5", when="@4.1.0:4.4+sundials~mpi") depends_on("sundials@5.0.0:5+mpi+hypre", when="@4.1.0:4.4+sundials+mpi") depends_on("sundials@5.0.0:6.7.0", when="@4.5.0:4.6+sundials~mpi") depends_on("sundials@5.0.0:6.7.0+mpi+hypre", when="@4.5.0:4.6+sundials+mpi") depends_on("sundials@5.0.0:", when="@4.7.0:+sundials~mpi") - depends_on("sundials@5.0.0:+mpi+hypre", when="@4.7.0:+sundials+mpi") + depends_on("sundials@5.0.0:+mpi", when="@4.7.0:+sundials+mpi") conflicts("cxxstd=11", when="^sundials@6.4.0:") for sm_ in CudaPackage.cuda_arch_values: depends_on( @@ -336,6 +376,7 @@ class Mfem(Package, CudaPackage, ROCmPackage): depends_on("gslib~mpi~mpiio", when="+gslib~mpi") depends_on("gslib@1.0.5:1.0.6", when="@:4.2+gslib") depends_on("gslib@1.0.7:", when="@4.3.0:+gslib") + depends_on("gslib@1.0.9:", when="@4.8.0:+gslib") depends_on("suite-sparse", when="+suite-sparse") depends_on("superlu-dist", when="+superlu-dist") # If superlu-dist is built with +cuda, propagate cuda_arch @@ -390,8 +431,10 @@ class Mfem(Package, CudaPackage, ROCmPackage): depends_on("conduit@0.3.1:,master:", when="+conduit") depends_on("conduit+mpi", when="+conduit+mpi") depends_on("libfms@0.2.0:", when="+fms") - depends_on("ginkgo@1.4.0:", when="+ginkgo") + depends_on("ginkgo@1.4.0:1.8", when="@:4.7+ginkgo") + depends_on("ginkgo@1.9.0:", when="@4.8:+ginkgo") conflicts("cxxstd=11", when="^ginkgo") + conflicts("cxxstd=14", when="^ginkgo@1.9:") for sm_ in CudaPackage.cuda_arch_values: depends_on( "ginkgo+cuda cuda_arch={0}".format(sm_), when="+ginkgo+cuda cuda_arch={0}".format(sm_) @@ -416,11 +459,11 @@ class Mfem(Package, CudaPackage, ROCmPackage): # The MFEM 4.0.0 SuperLU interface fails when using hypre@2.16.0 and # superlu-dist@6.1.1. See https://github.com/mfem/mfem/issues/983. # This issue was resolved in v4.1. - conflicts("+superlu-dist", when="mfem@:4.0 ^hypre@2.16.0: ^superlu-dist@6:") + conflicts("+superlu-dist", when="@:4.0 ^hypre@2.16.0: ^superlu-dist@6:") # The STRUMPACK v3 interface in MFEM seems to be broken as of MFEM v4.1 # when using hypre version >= 2.16.0. # This issue is resolved in v4.2. - conflicts("+strumpack", when="mfem@4.0.0:4.1 ^hypre@2.16.0:") + conflicts("+strumpack", when="@4.0.0:4.1 ^hypre@2.16.0:") conflicts("+strumpack ^strumpack+cuda", when="~cuda") depends_on("occa@1.0.8:", when="@:4.1+occa") @@ -448,6 +491,10 @@ class Mfem(Package, CudaPackage, ROCmPackage): depends_on("libceed@0.7:0.8", when="@4.2.0+libceed") depends_on("libceed@0.8:0.9", when="@4.3.0+libceed") depends_on("libceed@0.10.1:", when="@4.4.0:+libceed") + + depends_on("libceed+openmp", when="+libceed+openmp") + depends_on("libceed~openmp", when="+libceed~openmp") + for sm_ in CudaPackage.cuda_arch_values: depends_on( "libceed+cuda cuda_arch={0}".format(sm_), @@ -480,6 +527,11 @@ class Mfem(Package, CudaPackage, ROCmPackage): depends_on( "amgx~mpi cuda_arch={0}".format(sm_), when="+amgx~mpi cuda_arch={0}".format(sm_) ) + depends_on("enzyme@0.0.176:", when="+enzyme") + requires("%cxx=llvm", when="+enzyme~rocm") + depends_on("cuda+allow-unsupported-compilers", when="+enzyme+cuda") + depends_on("enzyme %libllvm=llvm-amdgpu", when="+enzyme+rocm") + requires("%cxx=llvm-amdgpu", when="+enzyme+rocm") for using_double_cond in ["@:4.6", "precision=double"]: with when(using_double_cond): @@ -517,6 +569,19 @@ class Mfem(Package, CudaPackage, ROCmPackage): ) patch("mfem-4.7.patch", when="@4.7.0") patch("mfem-4.7-sundials-7.patch", when="@4.7.0+sundials ^sundials@7:") + patch("mfem-4.8-nvcc-c++17.patch", when="@4.8.0+cuda") + patch( + "https://patch-diff.githubusercontent.com/raw/mfem/mfem/pull/5215.diff?full_index=1", + when="@4.8.0:4.9.0 +petsc ^petsc@3.25.0:", + sha256="51221b44f83c36042b0b126569591f29a706aae139f0f0d14035c357411f25ae", + ) + + # Backport fix for potential leak (redundant allocation) in + # FiniteElement::GetDofToQuad. PR: https://github.com/mfem/mfem/pull/5155 + # The PR introduces compilation errors for GCC with OpenMP, so a second + # patch is applied on top of it to fix that. + # PR: https://github.com/mfem/mfem/pull/5224 + patch("mfem-4.9.patch", when="@4.9.0") phases = ["configure", "build", "install"] @@ -541,7 +606,8 @@ def get_make_config_options(self, spec, prefix): def yes_no(varstr): return "YES" if varstr in self.spec else "NO" - xcompiler = "" if "~cuda" in spec else "-Xcompiler=" + using_nvcc = "+cuda" in spec and "+enzyme" not in spec + xcompiler = "" if not using_nvcc else "-Xcompiler=" # We need to add rpaths explicitly to allow proper export of link flags # from within MFEM. We use the following two functions to do that. @@ -573,7 +639,7 @@ def find_optional_library(name, prefix): mfem_mpiexec = "jsrun" mfem_mpiexec_np = "-p" elif "FLUX_EXEC_PATH" in os.environ: - mfem_mpiexec = "flux run" + mfem_mpiexec = "flux run -x -N 1" mfem_mpiexec_np = "-n" elif "PBS_JOBID" in os.environ: mfem_mpiexec = "mpiexec" @@ -622,6 +688,7 @@ def find_optional_library(name, prefix): "MFEM_USE_FMS=%s" % yes_no("+fms"), "MFEM_USE_GINKGO=%s" % yes_no("+ginkgo"), "MFEM_USE_HIOP=%s" % yes_no("+hiop"), + "MFEM_USE_ENZYME=%s" % yes_no("+enzyme"), "MFEM_MPIEXEC=%s" % mfem_mpiexec, "MFEM_MPIEXEC_NP=%s" % mfem_mpiexec_np, "MFEM_USE_EXCEPTIONS=%s" % yes_no("+exceptions"), @@ -640,11 +707,15 @@ def find_optional_library(name, prefix): cxxstd = "14" if self.spec.satisfies("^sundials@6.4.0:"): cxxstd = "14" - if self.spec.satisfies("^ginkgo"): - cxxstd = "14" # When rocPRIM is used (e.g. by PETSc + ROCm) we need C++14: if self.spec.satisfies("^rocprim@5.5.0:"): cxxstd = "14" + if self.spec.satisfies("^ginkgo@1.4.0:1.8"): + cxxstd = "14" + if self.spec.satisfies("^ginkgo@1.9.0:"): + cxxstd = "17" + if self.spec.satisfies("@4.9.0:"): + cxxstd = "17" cxxstd_req = spec.variants["cxxstd"].value if cxxstd_req != "auto": # Constraints for valid standard level should be imposed during @@ -652,10 +723,10 @@ def find_optional_library(name, prefix): cxxstd = cxxstd_req cxxstd_flag = None if cxxstd: - if "+cuda" in spec: + if using_nvcc: cxxstd_flag = "-std=c++" + cxxstd else: - cxxstd_flag = getattr(self.compiler, "cxx" + cxxstd + "_flag") + cxxstd_flag = self["cxx"].standard_flag(language="cxx", standard=cxxstd) cuda_arch = None if "~cuda" in spec else spec.variants["cuda_arch"].value @@ -677,10 +748,23 @@ def find_optional_library(name, prefix): cxxflags = [(xcompiler + flag) for flag in cxxflags] if "+cuda" in spec: - cxxflags += [ - "-x=cu --expt-extended-lambda -arch=sm_%s" % cuda_arch, - "-ccbin %s" % (spec["mpi"].mpicxx if "+mpi" in spec else env["CXX"]), - ] + if using_nvcc: + nvcc_base_flags = "-x=cu --expt-extended-lambda" + if spec.satisfies("@4.9.0:"): + nvcc_base_flags += " --expt-relaxed-constexpr" + cxxflags += [ + nvcc_base_flags, + "-arch=sm_%s" % cuda_arch, + "-ccbin %s" % (spec["mpi"].mpicxx if "+mpi" in spec else env["CXX"]), + ] + else: + # using clang cuda + cxxflags += [ + "-xcuda", + f"--cuda-path={spec['cuda'].prefix}", + "--cuda-gpu-arch=sm_%s" % cuda_arch, + ] + if cxxstd_flag: cxxflags.append(cxxstd_flag) # The cxxflags are set by the spack c++ compiler wrapper. We also @@ -702,27 +786,35 @@ def find_optional_library(name, prefix): if "~static" in spec: options += ["STATIC=NO"] if "+shared" in spec: - options += ["SHARED=YES", "PICFLAG=%s" % (xcompiler + self.compiler.cxx_pic_flag)] + options += ["SHARED=YES", f"PICFLAG={xcompiler + self['cxx'].pic_flag}"] if "+mpi" in spec: options += ["MPICXX=%s" % spec["mpi"].mpicxx] hypre = spec["hypre"] + all_hypre_headers = hypre.headers all_hypre_libs = hypre.libs if "+lapack" in hypre: all_hypre_libs += hypre["lapack"].libs + hypre["blas"].libs + if "+umpire" in hypre: + all_hypre_headers += hypre["umpire"].headers hypre_gpu_libs = "" if "+cuda" in hypre: - hypre_gpu_libs = " -lcusparse -lcurand -lcublas" + hypre_gpu_libs = " -lcusolver -lcusparse -lcurand -lcublas" elif "+rocm" in hypre: hypre_rocm_libs = LibraryList([]) if "^rocsparse" in hypre: hypre_rocm_libs += hypre["rocsparse"].libs if "^rocrand" in hypre: hypre_rocm_libs += hypre["rocrand"].libs + if hypre.satisfies("@2.29.0:"): + if "^rocsolver" in hypre: + hypre_rocm_libs += hypre["rocsolver"].libs + if "^rocblas" in hypre: + hypre_rocm_libs += hypre["rocblas"].libs hypre_gpu_libs = " " + ld_flags_from_library_list(hypre_rocm_libs) options += [ - "HYPRE_OPT=-I%s" % hypre.prefix.include, + "HYPRE_OPT=%s" % all_hypre_headers.cpp_flags, "HYPRE_LIB=%s%s" % (ld_flags_from_library_list(all_hypre_libs), hypre_gpu_libs), ] @@ -736,8 +828,7 @@ def find_optional_library(name, prefix): lapack_blas = spec["lapack"].libs + spec["blas"].libs options += [ # LAPACK_OPT is not used - "LAPACK_LIB=%s" - % ld_flags_from_library_list(lapack_blas) + "LAPACK_LIB=%s" % ld_flags_from_library_list(lapack_blas) ] if "+superlu-dist" in spec: @@ -783,7 +874,7 @@ def find_optional_library(name, prefix): # OpenMP; if not found, we should not add any flags -- how do # we figure out if strumpack found OpenMP? if not self.spec.satisfies("%apple-clang"): - sp_opt += [xcompiler + self.compiler.openmp_flag] + sp_opt += [xcompiler + self["cxx"].openmp_flag] if "^parmetis" in strumpack: parmetis = strumpack["parmetis"] sp_opt += [parmetis.headers.cpp_flags] @@ -853,7 +944,7 @@ def find_optional_library(name, prefix): ] if "+pumi" in spec: - pumi_libs = [ + pumi_libs_names = [ "pumi", "crv", "ma", @@ -867,6 +958,11 @@ def find_optional_library(name, prefix): "apf_zoltan", "spr", ] + pumi_libs_names = ["lib" + name for name in pumi_libs_names] + pumi = spec["pumi"] + pumi_libs = find_libraries( + pumi_libs_names, pumi.prefix, shared=("+shared" in pumi), recursive=True + ) pumi_dep_zoltan = "" pumi_dep_parmetis = "" if "+zoltan" in spec["pumi"]: @@ -878,11 +974,7 @@ def find_optional_library(name, prefix): options += [ "PUMI_OPT=-I%s" % spec["pumi"].prefix.include, "PUMI_LIB=%s %s %s" - % ( - ld_flags_from_dirs([spec["pumi"].prefix.lib], pumi_libs), - pumi_dep_zoltan, - pumi_dep_parmetis, - ), + % (ld_flags_from_library_list(pumi_libs), pumi_dep_zoltan, pumi_dep_parmetis), ] if "+gslib" in spec: @@ -904,7 +996,7 @@ def find_optional_library(name, prefix): ] if "+zlib" in spec: - if "@:3.3.2" in spec: + if spec.satisfies("@:3.3.2"): options += ["ZLIB_DIR=%s" % spec["zlib-api"].prefix] else: options += [ @@ -937,13 +1029,14 @@ def find_optional_library(name, prefix): ] if "+openmp" in spec: - options += ["OPENMP_OPT=%s" % (xcompiler + self.compiler.openmp_flag)] + options += ["OPENMP_OPT=%s" % (xcompiler + self["cxx"].openmp_flag)] if "+cuda" in spec: - options += [ - "CUDA_CXX=%s" % join_path(spec["cuda"].prefix, "bin", "nvcc"), - "CUDA_ARCH=sm_%s" % cuda_arch, - ] + if using_nvcc: + cuda_cxx = join_path(spec["cuda"].prefix, "bin", "nvcc") + else: + cuda_cxx = spec["mpi"].mpicxx if "+mpi" in spec else env["CXX"] + options += [f"CUDA_CXX={cuda_cxx}", "CUDA_ARCH=sm_%s" % cuda_arch] # Check if we are using a CUDA installation where the math libs are # in a separate directory: culibs = ["libcusparse"] @@ -991,10 +1084,14 @@ def find_optional_library(name, prefix): if "^rocprim" in spec and not spec["hip"].external: # rocthrust [via petsc+rocm] has a dependency on rocprim hip_headers += spec["rocprim"].headers - if "^hipblas" in spec: + if "^hipblas" in spec: # hipblas is needed @4.8.0:+rocm + # note: superlu-dist+rocm needs the hipblas header path too hipblas = spec["hipblas"] - hip_headers += hipblas.headers + hip_headers += self.all_headers(hipblas) hip_libs += hipblas.libs + if "^hipcub" in spec: # hipcub is needed @4.9.0:+rocm + hipcub = spec["hipcub"] + hip_headers += self.all_headers(hipcub) if "%cce" in spec: # We assume the proper Cray CCE module (cce) is loaded: proc = str(spec.target.family) @@ -1017,6 +1114,22 @@ def find_optional_library(name, prefix): hip_libs += find_libraries(craylibs, craylibs_path) craylibs_path2 = join_path(craylibs_path, "../../../cce-clang", proc, "lib") hip_libs += find_libraries("libunwind", craylibs_path2) + elif spec.satisfies("%rocmcc ^cray-mpich"): + # The AMD version of cray-mpich, libmpi_amd.so, needs the rpath + # to libflang.so (also needed for libpgmath.so and others). + rocmcc_bin_dir = os.path.dirname(env["SPACK_CXX"]) + rocmcc_prefix = os.path.dirname(rocmcc_bin_dir) + rocmcc_libflang = find_libraries( + "libflang", join_path(rocmcc_prefix, "lib/llvm/lib"), recursive=False + ) + hip_libs += rocmcc_libflang + if spec.satisfies("^cray-mpich"): + # The cray-mpich library, libmpi_*.so, needs the rpath to + # libpmi.so.0 and libpmi2.so.0 if that path is not configured + # properly on system level. + libpmi_lib = find_libraries("libpmi", "/opt/cray/pe/lib64") + if libpmi_lib: + hip_libs += libpmi_lib if hip_headers: options += ["HIP_OPT=%s" % hip_headers.cpp_flags] @@ -1066,6 +1179,7 @@ def find_optional_library(name, prefix): umpire_libs = umpire.libs if "^camp" in umpire: umpire_opts += umpire["camp"].headers + umpire_libs += umpire["camp"].libs if "^fmt" in umpire: umpire_opts += umpire["fmt"].headers umpire_libs += umpire["fmt"].libs @@ -1168,12 +1282,15 @@ def find_optional_library(name, prefix): mumps_opt = ["-I%s" % mumps.prefix.include] if "+openmp" in mumps: if not self.spec.satisfies("%apple-clang"): - mumps_opt += [xcompiler + self.compiler.openmp_flag] + mumps_opt += [xcompiler + self["cxx"].openmp_flag] options += [ "MUMPS_OPT=%s" % " ".join(mumps_opt), "MUMPS_LIB=%s" % ld_flags_from_library_list(mumps.libs), ] + if "+enzyme" in spec: + options += ["ENZYME_DIR=%s" % spec["enzyme"].prefix] + return options def configure(self, spec, prefix): @@ -1210,9 +1327,11 @@ def install(self, spec, prefix): with working_dir("config"): os.rename("config.mk", "config.mk.orig") copy(str(self.config_mk), "config.mk") - # Add '/mfem' to MFEM_INC_DIR for miniapps that include directly - # headers like "general/forall.hpp": - filter_file("(MFEM_INC_DIR.*)$", "\\1/mfem", "config.mk") + # Replace the definition of MFEM_INC_DIR with '$(MFEM_DIR)' for + # miniapps that include directly headers like + # "general/forall.hpp" and to avoid mixing source-tree and + # install-tree headers that use '#pragma once'. + filter_file("(MFEM_INC_DIR.*)=.*$", "\\1= $(MFEM_DIR)", "config.mk") shutil.copystat("config.mk.orig", "config.mk") # TODO: miniapps linking to libmfem-common.* will not work. @@ -1252,10 +1371,10 @@ def test_ex10(self): test_exe = "ex10p" if ("+mpi" in self.spec) else "ex10" with working_dir(test_dir): - make = which("make") - make(f"CONFIG_MK={self.config_mk}", test_exe, "parallel=False") + make = which("make", required=True) + make(f"CONFIG_MK={self.config_mk}", test_exe, parallel=False) - ex10 = which(test_exe) + ex10 = which(test_exe, required=True) ex10("--mesh", mesh) # this patch is only needed for mfem 4.1, where a few @@ -1271,7 +1390,7 @@ def patch(self): "miniapps/gslib/findpts.cpp", "miniapps/gslib/pfindpts.cpp", ] - bom = "\xef\xbb\xbf" if sys.version_info < (3,) else "\ufeff" + bom = "\ufeff" for f in files_with_bom: filter_file(bom, "", f) @@ -1356,7 +1475,8 @@ def is_sys_lib_path(self, dir): @property def xlinker(self): - return "-Wl," if "~cuda" in self.spec else "-Xlinker=" + using_nvcc = "+cuda" in self.spec and "+enzyme" not in self.spec + return "-Wl," if not using_nvcc else "-Xlinker=" # Similar to spec[pkg].libs.ld_flags but prepends rpath flags too. # Also does not add system library paths as defined by 'sys_lib_paths' @@ -1381,3 +1501,12 @@ def ld_flags_from_dirs(self, pkg_dirs_list, pkg_libs_list): flags += ["-L%s" % dir for dir in pkg_dirs_list if not self.is_sys_lib_path(dir)] flags += ["-l%s" % lib for lib in pkg_libs_list] return " ".join(flags) + + def all_headers(self, root_spec): + all_hdrs = HeaderList([]) + for dep in root_spec.traverse(deptype="link"): + try: + all_hdrs += root_spec[dep.name].headers + except NoHeadersError: + pass + return all_hdrs diff --git a/repos/spack_repo/builtin/packages/mfem/test_builds.sh b/repos/spack_repo/builtin/packages/mfem/test_builds.sh index be0d27bc0f9..0a5e691d6ea 100755 --- a/repos/spack_repo/builtin/packages/mfem/test_builds.sh +++ b/repos/spack_repo/builtin/packages/mfem/test_builds.sh @@ -14,9 +14,9 @@ rocm_arch="gfx908" spack_jobs='' # spack_jobs='-j 128' -mfem='mfem@4.7.0'${compiler} +mfem='mfem@4.9.0'${compiler} # mfem_dev='mfem@develop'${compiler} -mfem_dev='mfem@4.7.0'${compiler} +mfem_dev='mfem@4.9.0'${compiler} backends='+occa+raja+libceed' backends_specs='^occa~cuda ^raja~openmp' diff --git a/repos/spack_repo/builtin/packages/mgard/package.py b/repos/spack_repo/builtin/packages/mgard/package.py index 37ae18415e5..6272bce631e 100644 --- a/repos/spack_repo/builtin/packages/mgard/package.py +++ b/repos/spack_repo/builtin/packages/mgard/package.py @@ -30,6 +30,11 @@ class Mgard(CMakePackage, CudaPackage, ROCmPackage): license("Apache-2.0") # In spack numbers take precedence over alphabetic chars when sorting versions. + version( + "1.6.0", + sha256="06b1b2839a1794ec006db8f86683189bdd974e0404167ff3fc3705f0af02de4e", + preferred=True, + ) version("1.5.2", sha256="d78ff8735e9fc6f86abc4830563799a3dd3c9abf33d13d82ed42dbc28d48685d") # Historical versions using fork (with patches for Spack compatibility) @@ -37,7 +42,6 @@ class Mgard(CMakePackage, CudaPackage, ROCmPackage): "compat-2023-12-09", commit="d61d8c06c49a72b2e582cc02de88b7b27e1275d2", git="https://github.com/robertu94/MGARD.git", - preferred=True, ) version( "compat-2023-03-31", @@ -95,7 +99,7 @@ class Mgard(CMakePackage, CudaPackage, ROCmPackage): depends_on("zstd") depends_on("protobuf@3.4:", when="@compat-2022-11-18:") # See https://github.com/CODARcode/MGARD/issues/240 - depends_on("protobuf@:3.28", when="@:1.5.2") + depends_on("protobuf@:28", when="@:1.5.2") depends_on("libarchive", when="@compat-2021-11-12:") depends_on("tclap", when="@compat-2021-11-12") depends_on("yaml-cpp", when="@compat-2021-11-12:") @@ -116,14 +120,21 @@ class Mgard(CMakePackage, CudaPackage, ROCmPackage): conflicts( "%gcc@:7", when="@compat-2022-11-18:", msg="requires std::optional and other c++17 things" ) - conflicts("protobuf@3.22:", when="target=ppc64le", msg="GCC 9.4 segfault in CI") - conflicts("protobuf@3.22:", when="+cuda target=aarch64:", msg="nvcc fails on ARM SIMD headers") + conflicts("protobuf@22:", when="target=ppc64le", msg="GCC 9.4 segfault in CI") + conflicts("protobuf@22:", when="+cuda target=aarch64:", msg="nvcc fails on ARM SIMD headers") # https://github.com/abseil/abseil-cpp/issues/1629 conflicts("abseil-cpp@20240116.1", when="+cuda", msg="triggers nvcc parser bug") - patch("hip-pointer-attribute-struct-fix.patch", when="@:2023-12-09") - patch("hip-cub-configure.patch", when="@:2023-12-09") - patch("hip-abs-reduce-type.patch", when="@:2023-12-09") + patch("hip-pointer-attribute-struct-fix.patch", when="@=1.5.2") + patch("hip-cub-configure.patch", when="@=1.5.2") + patch("hip-abs-reduce-type.patch", when="@=1.5.2") + + # https://github.com/CODARcode/MGARD/issues/252 + patch( + "https://github.com/CODARcode/MGARD/commit/8d13307586cc0e87b2d1164bd0b4dd2cc18f9dc2.patch?full_index=1", + sha256="1c64ad285f616d87d13ae4faa1ef57adeb6a3f20013f78b3e36d2beae479b4db", + when="@1.6", + ) def flag_handler(self, name, flags): if name == "cxxflags": @@ -143,24 +154,28 @@ def cmake_args(self): args = ["-DBUILD_TESTING=OFF"] args.append(self.define_from_variant("MGARD_ENABLE_CUDA", "cuda")) args.append(self.define_from_variant("MGARD_ENABLE_HIP", "rocm")) + if "+cuda" in spec: cuda_arch_list = spec.variants["cuda_arch"].value arch_str = ";".join(cuda_arch_list) if cuda_arch_list[0] != "none": args.append(self.define("CMAKE_CUDA_ARCHITECTURES", arch_str)) - if "+rocm" in spec: - args.append(CMakeBuilder.define_hip_architectures(self)) - if self.spec.satisfies("@:compat-2021-11-12"): - if "+cuda" in self.spec: - if "75" in cuda_arch: + + if self.spec.satisfies("@:compat-2021-11-12"): + if "75" in cuda_arch_list: args.append("-DMGARD_ENABLE_CUDA_OPTIMIZE_TURING=ON") - if "70" in cuda_arch: + if "70" in cuda_arch_list: args.append("-DMGARD_ENABLE_CUDA_OPTIMIZE_VOLTA=ON") - elif self.spec.satisfies("@compat-2022-11-18:"): + + if "+rocm" in spec: + args.append(CMakeBuilder.define_hip_architectures(self)) + + if self.spec.satisfies("@compat-2022-11-18:"): args.append("-DMAXIMUM_DIMENSION=4") # how do we do variants with arbitrary values args.append("-DMGARD_ENABLE_CLI=OFF") # the CLI is busted args.append(self.define_from_variant("MGARD_ENABLE_OPENMP", "openmp")) args.append(self.define_from_variant("MGARD_ENABLE_TIMING", "timing")) args.append(self.define_from_variant("MGARD_ENABLE_SERIAL", "serial")) args.append(self.define_from_variant("MGARD_ENABLE_UNSTRUCTURED", "unstructured")) + return args diff --git a/repos/spack_repo/builtin/packages/mgcfd_op2/package.py b/repos/spack_repo/builtin/packages/mgcfd_op2/package.py index d36ec247bdf..bf7f876e141 100644 --- a/repos/spack_repo/builtin/packages/mgcfd_op2/package.py +++ b/repos/spack_repo/builtin/packages/mgcfd_op2/package.py @@ -63,13 +63,14 @@ def edit(self, spec, prefix): @property def build_targets(self): - if "+mpi" in self.spec: + spec = self.spec + if "+mpi" in spec: builds = ["mpi", "mpi_vec", "mpi_openmp"] - if "+cuda" in self.spec and spec.variants["cuda_arch"].value[0] != "none": + if "+cuda" in spec and spec.variants["cuda_arch"].value[0] != "none": builds.append("mpi_cuda") else: builds = ["seq", "openmp"] - if "+cuda" in self.spec and spec.variants["cuda_arch"].value[0] != "none": + if "+cuda" in spec and spec.variants["cuda_arch"].value[0] != "none": builds.append("cuda") return builds diff --git a/repos/spack_repo/builtin/packages/mgis/package.py b/repos/spack_repo/builtin/packages/mgis/package.py index 0ee9184de2e..bbb42fdf5d9 100644 --- a/repos/spack_repo/builtin/packages/mgis/package.py +++ b/repos/spack_repo/builtin/packages/mgis/package.py @@ -27,6 +27,7 @@ class Mgis(CMakePackage): # development branches version("master", branch="master") + version("rliv-3.1", branch="rliv-3.1") version("rliv-3.0", branch="rliv-3.0") version("rliv-2.2", branch="rliv-2.2") version("rliv-2.1", branch="rliv-2.1") @@ -37,21 +38,42 @@ class Mgis(CMakePackage): # released version version( - "3.0.1", - sha256="fb9a7f5008a43c70bdb1c4b80f32f7fd3e4274c912b93c36af7011d3c4f93039", - preferred=True, + "3.1.0", + sha256="61afae1a367dbb150b24ca85f042efb15a77184a54a746f11c08d9b7cb9e94f3", + url="https://github.com/thelfer/MFrontGenericInterfaceSupport/archive/MFrontGenericInterfaceSupport-3.1.tar.gz", ) - version("3.0", sha256="dae915201fd20848b69745dabda1a334eb242d823af600825b8b010ddc597640") - version("2.2.1", sha256="a0e6af65f5fd2237f39306354ef786eadb0c6bc6868c23e2681e04a83e629ad2") - version("2.2", sha256="b3776d7b3a534ca626525a42b97665f7660ae2b28ea57b3f53fd7e8538da1ceb") - version("2.1", sha256="f5b556aab130da0c423f395fe4c35d6bf509dd8fc958242f2e37ea788464aea9") - version("2.0", sha256="cb427d77f2c79423e969815b948a8b44da33a4370d1760e8c1e22a569f3585e2") - version("1.2.2", sha256="dc24e85cc90ec656ed707eef3d511317ad800915014d9e4e9cf8818b406586d5") - version("1.2.1", sha256="a2d7cae3a24546adcf1d1bf7f13f012170d359370f5b6b2c1730b19eb507601d") - version("1.2", sha256="ed82ab91cbe17c00ef36578dbfcb4d1817d4c956619b7cccbea3e3f1a3b31940") - version("1.1", sha256="06593d7a052678deaee87ef60b2213db7545c5be9823f261d3388b3978a0b7a5") + version("3.0.2", sha256="189b53789d4e2af3a69970880f5b1e90ff596ad3a71109ace69b2026333a8641") + version("2.2.2", sha256="cd31a51939c5e15c880563ec738cf6801aa9142d5d2783607eb1400e992ef504") + version("2.1.1", sha256="3fb5500cdb855543403028e28b6418913b3067ab2509d254022a234ea59ed4a8") + version("2.0.1", sha256="9850aa177d4a6e43faa1434968d2daad65aab2a9b7d64fa4eea51bd25c3d2c5c") + version("1.2.3", sha256="250bca538ad0806f0d3d3a0ee7410344de2c92f8d038a49f486acb69fa81362d") + version("1.1.2", sha256="49b6a115f6ca758c1b29aa49e7f9940c36102edc2478c338de5f9fa6a13c0e95") version("1.0.1", sha256="6102621455bc5d9b1591cd33e93b2e15a9572d2ce59ca6dfa30ba57ae1265c08") - version("1.0", sha256="279c98da00fa6855edf29c2b8f8bad6e7732298dc62ef67d028d6bbeaac043b3") + + with default_args(deprecated=True): + version("3.0.1", sha256="fb9a7f5008a43c70bdb1c4b80f32f7fd3e4274c912b93c36af7011d3c4f93039") + version( + "3.0.0", + sha256="dae915201fd20848b69745dabda1a334eb242d823af600825b8b010ddc597640", + url="https://github.com/thelfer/MFrontGenericInterfaceSupport/archive/MFrontGenericInterfaceSupport-3.0.tar.gz", + ) + version("2.2.1", sha256="a0e6af65f5fd2237f39306354ef786eadb0c6bc6868c23e2681e04a83e629ad2") + version("2.2.0", sha256="b3776d7b3a534ca626525a42b97665f7660ae2b28ea57b3f53fd7e8538da1ceb") + version("2.1.0", sha256="f5b556aab130da0c423f395fe4c35d6bf509dd8fc958242f2e37ea788464aea9") + version( + "2.0.0", + sha256="cb427d77f2c79423e969815b948a8b44da33a4370d1760e8c1e22a569f3585e2", + url="https://github.com/thelfer/MFrontGenericInterfaceSupport/archive/MFrontGenericInterfaceSupport-2.0.tar.gz", + ) + version("1.2.2", sha256="dc24e85cc90ec656ed707eef3d511317ad800915014d9e4e9cf8818b406586d5") + version("1.2.1", sha256="a2d7cae3a24546adcf1d1bf7f13f012170d359370f5b6b2c1730b19eb507601d") + version("1.2.0", sha256="ed82ab91cbe17c00ef36578dbfcb4d1817d4c956619b7cccbea3e3f1a3b31940") + version("1.1.0", sha256="06593d7a052678deaee87ef60b2213db7545c5be9823f261d3388b3978a0b7a5") + version( + "1.0.0", + sha256="279c98da00fa6855edf29c2b8f8bad6e7732298dc62ef67d028d6bbeaac043b3", + url="https://github.com/thelfer/MFrontGenericInterfaceSupport/archive/MFrontGenericInterfaceSupport-1.0.tar.gz", + ) # variants variant("c", default=True, description="Enables c bindings") @@ -59,23 +81,43 @@ class Mgis(CMakePackage): variant("python", default=True, description="Enables python bindings") variant("static", default=False, description="Enables static libraries") + with when("@3.1:,rliv-3.1"): + variant("openmp", default=False, description="Enables openmp support") + variant("mgis-function", default=True, description="Enables MGIS/Function") + variant( + "exception", + default=False, + description="use exceptions to report contract violation and error reporting", + ) + + with when("@3.1:"): + depends_on("py-pybind11", when="+python", type=("build", "link", "run")) + # dependencies depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated + depends_on("tfel@5.1.0", when="@3.1.0") + depends_on("tfel@5.0.2", when="@3.0.2") depends_on("tfel@5.0.1", when="@3.0.1") - depends_on("tfel@5.0.0", when="@3.0") + depends_on("tfel@5.0.0", when="@3.0.0") + depends_on("tfel@4.2.4", when="@2.2.2") depends_on("tfel@4.2.3", when="@2.2.1") depends_on("tfel@4.2.0", when="@2.2.0") - depends_on("tfel@4.1.0", when="@2.1") - depends_on("tfel@4.0.0", when="@2.0") + depends_on("tfel@4.1.5", when="@2.1.1") + depends_on("tfel@4.1.0", when="@2.1.0") + depends_on("tfel@4.0.5", when="@2.0.1") + depends_on("tfel@4.0.0", when="@2.0.0") + depends_on("tfel@3.4.9", when="@1.2.3") depends_on("tfel@3.4.3", when="@1.2.2") depends_on("tfel@3.4.1", when="@1.2.1") - depends_on("tfel@3.4.0", when="@1.2") - depends_on("tfel@3.3.0", when="@1.1") + depends_on("tfel@3.4.0", when="@1.2.0") + depends_on("tfel@3.3.8", when="@1.1.2") + depends_on("tfel@3.3.0", when="@1.1.0") depends_on("tfel@3.2.1", when="@1.0.1") - depends_on("tfel@3.2.0", when="@1.0") + depends_on("tfel@3.2.0", when="@1.0.0") + depends_on("tfel@rliv-5.1", when="@rliv-3.1") depends_on("tfel@rliv-5.0", when="@rliv-3.0") depends_on("tfel@rliv-4.2", when="@rliv-2.2") depends_on("tfel@rliv-4.1", when="@rliv-2.1") @@ -102,46 +144,50 @@ class Mgis(CMakePackage): extends("python", when="+python") - def patch(self): - """Fix the test suite to use the PYTHONPATH provided by the spack buildenv""" - filter_file("tests/;", "tests:", "bindings/python/tests/CMakeLists.txt") - - def check(self): - """skip target 'test' which doesn't build the test programs used by tests""" - with working_dir(self.build_directory): - if self.generator == "Unix Makefiles": - self._if_make_target_execute("check") - elif self.generator == "Ninja": - self._if_ninja_target_execute("check") - def cmake_args(self): args = [] args.append("-DUSE_EXTERNAL_COMPILER_FLAGS=ON") args.append("-Denable-website=OFF") args.append("-Denable-doxygen-doc=OFF") + args.append("-DTFEL_DIR={0}/share/tfel/cmake".format(self.spec["tfel"].prefix)) + args.append("-Denable-parallel-stl-algorithms=OFF") + args.append(self.define_from_variant("enable-openmp", "openmp")) + args.append(self.define_from_variant("enable-exception", "exception")) + args.append(self.define_from_variant("enable-mgis-function", "mgis-function")) for i in ["c", "fortran", "python"]: - if "+" + i in self.spec: - args.append("-Denable-{0}-bindings=ON".format(i)) - else: - args.append("-Denable-{0}-bindings=OFF".format(i)) + args.append(self.define_from_variant(f"enable-{i}-bindings", f"{i}")) + + if "+static" in self.spec: + args.append("-Denable-static=ON") - if "+python" in self.spec: - # adding path to python - python = self.spec["python"] - args.append("-DPYTHON_LIBRARY={0}".format(python.libs[0])) - args.append("-DPYTHON_INCLUDE_DIR={0}".format(python.headers.directories[0])) - args.append("-DPython_ADDITIONAL_VERSIONS={0}".format(python.version.up_to(2))) + if not self.spec.satisfies("+python"): + return args - if "py-pybind11" in self.spec: - args.append("-Dpybind11_DIR={0}".format(self.spec["py-pybind11"].prefix)) + # adding path to python + python = self.spec["python"] + args.append("-DPYTHON_LIBRARY={0}".format(python.libs[0])) + args.append("-DPYTHON_INCLUDE_DIR={0}".format(python.headers.directories[0])) + args.append("-DPython_ADDITIONAL_VERSIONS={0}".format(python.version.up_to(2))) - if "boost" in self.spec: - # adding path to boost - args.append("-DBOOST_ROOT={0}".format(self.spec["boost"].prefix)) + if "py-pybind11" in self.spec: + args.append("-Dpybind11_DIR={0}".format(self.spec["py-pybind11"].prefix)) - if "+static" in self.spec: - args.append("-Denable-static=ON") + if "boost" in self.spec: + # adding path to boost + args.append("-DBOOST_ROOT={0}".format(self.spec["boost"].prefix)) return args + + def check(self): + """skip target 'test' which doesn't build the test programs used by tests""" + with working_dir(self.build_directory): + if self.generator == "Unix Makefiles": + self._if_make_target_execute("check") + elif self.generator == "Ninja": + self._if_ninja_target_execute("check") + + def setup_run_environment(self, env: EnvironmentModifications) -> None: + # Requested by some users whose build system do not rely on RPATH + env.append_path("LD_LIBRARY_PATH", self.prefix.lib) diff --git a/repos/spack_repo/builtin/packages/micromamba/package.py b/repos/spack_repo/builtin/packages/micromamba/package.py deleted file mode 100644 index f48d63726f5..00000000000 --- a/repos/spack_repo/builtin/packages/micromamba/package.py +++ /dev/null @@ -1,160 +0,0 @@ -# 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 * - -linkage_url = ( - "https://mamba.readthedocs.io/en/latest/developer_zone/build_locally.html#build-micromamba" -) - - -class Micromamba(CMakePackage): - """Mamba is a fast, robust, and cross-platform package manager (Miniconda alternative). - - Micromamba is faster than Miniconda, and it is a standalone - executable, whereas Miniconda pulls in its own Python environment. - - """ - - homepage = "https://mamba.readthedocs.io/" - url = "https://github.com/mamba-org/mamba/archive/micromamba-1.1.0.tar.gz" - - maintainers("charmoniumQ") - - license("BSD-3-Clause") - - version("1.4.2", sha256="dce034908d02d991c5e9aadeb9d01f139d027ba199aaeb1d47d543e3f24895d1") - version("1.1.0", sha256="e2392cd90221234ae8ea92b37f40829fbe36d80278056269aa1994a5efe7f530") - - variant( - "linkage", - default="dynamic", - description=f"See MICROMAMBA_LINKAGE in {linkage_url}.", - values=("dynamic", conditional("static", when="@1.1.0")), - multi=False, - ) - - patch("fix-threads.patch") - - depends_on("cxx", type="build") # generated - - with when("linkage=dynamic"): - # See https://github.com/mamba-org/mamba/blob/micromamba-1.0.0/libmamba/CMakeLists.txt#L423 - depends_on("libsolv+conda", type="link") - depends_on("curl libs=shared", type="link") - depends_on("libarchive crypto=mbedtls xar=libxml2", type="link") - depends_on("openssl", type="link") - depends_on("yaml-cpp", type="link") - depends_on("libreproc+cxx+shared", type="link") - depends_on("tl-expected@2022-11-24", type="link") - depends_on("fmt@9.1.0", type="link") - depends_on("spdlog@1.11.0", type="link") - - # https://github.com/mamba-org/mamba/blob/micromamba-1.0.0/libmamba/include/mamba/core/validate.hpp#L13 - depends_on("nlohmann-json", type="link") - - # https://github.com/mamba-org/mamba/blob/micromamba-1.0.0/libmamba/src/core/context.cpp#L7 - depends_on("cpp-termcolor", type="link") - - # https://github.com/mamba-org/mamba/blob/micromamba-1.0.0/micromamba/src/common_options.hpp#L12 - depends_on("cli11@2.2:", type="link") - - depends_on("zstd build_system=cmake", type="link", when="@1.4.0:") - - # 1.4.2 made the static build the old "full_static" build and it needs some work. - with when("linkage=static"): - # When linkage is static, BUILD_STATIC=ON - # and then - # https://github.com/mamba-org/mamba/blob/micromamba-1.0.0/libmamba/CMakeLists.txt#L523 - # calls libmamba_create_target(libmamba-static STATIC SHARED libmamba) - # where the third argument, SHARED, is the deps_linkage - # as defined here, - # https://github.com/mamba-org/mamba/blob/micromamba-1.0.0/libmamba/CMakeLists.txt#L256 - # which would use dynamic linkage here, - # https://github.com/mamba-org/mamba/blob/micromamba-1.0.0/libmamba/CMakeLists.txt#L420 - # See linkage=dynamic for what that entails. - depends_on("libsolv+conda", type="link") - depends_on("curl libs=shared", type="link") - depends_on("libarchive crypto=mbedtls xar=libxml2", type="link") - depends_on("openssl", type="link") - depends_on("yaml-cpp", type="link") - depends_on("libreproc+cxx", type="link") - depends_on("tl-expected@2022-11-24", type="link") - depends_on("fmt@9.1.0", type="link") - depends_on("spdlog@1.11.0", type="link") - depends_on("nlohmann-json", type="link") - depends_on("cpp-termcolor", type="link") - depends_on("cli11@2.2:", type="link") - - if False: - # This variant currently fails with: - # - # libarchive/archive_digest.c:191: undefined reference to `mbedtls_sha512_free' - # - # These shouldn't be necessary, - # since they are already in 'libarchive crypto=mbedtls xar=libxml2' - # but even adding them doesn't fix it. - # - # depends_on("libxml2", type="link") - # depends_on("mbedtls", type="link") - # - # However, I wanted to live this variant in the code, - # so it serves as a starting point. - - with when("linkage=full_static"): - # https://github.com/mamba-org/mamba/blob/micromamba-1.0.0/libmamba/CMakeLists.txt#L276 - depends_on("curl libs=static", type="link") - depends_on("libssh2~shared", type="link") - depends_on("krb5~shared", type="link") - depends_on("openssl~shared", type="link") - depends_on("libarchive crypto=mbedtls xar=libxml2", type="link") - depends_on("iconv", type="link") - depends_on("bzip2", type="link") - depends_on("lz4", type="link") - depends_on("zstd", type="link") - depends_on("zlib-api", type="link") - depends_on("xz libs=static", type="link") - depends_on("lzo", type="link") - depends_on("libsolv+conda~shared", type="link") - depends_on("nghttp2", type="link") - depends_on("yaml-cpp~shared", type="link") - depends_on("libreproc+cxx~shared", type="link") - - # https://github.com/mamba-org/mamba/blob/micromamba-1.0.0/libmamba/CMakeLists.txt#L342 - depends_on("fmt", type="link") - depends_on("spdlog~shared", type="link") - - # https://github.com/mamba-org/mamba/blob/micromamba-1.0.0/libmamba/include/mamba/core/error_handling.hpp#L9 - depends_on("tl-expected@2022-11-24", type="link") - - # See linkage=dynamic for usage location - depends_on("nlohmann-json", type="link") - depends_on("cpp-termcolor", type="link") - depends_on("cli11@2.2:", type="link") - - def cmake_args(self): - # See https://mamba.readthedocs.io/en/latest/developer_zone/build_locally.html#build-micromamba - if "linkage=dynamic" in self.spec: - linkage = "dynamic" - elif "linkage=static" in self.spec: - linkage = "static" - elif "linkage=full_static" in self.spec: - linkage = "full_static" - else: - raise ValueError(f"Unknown linkage type {self.spec}") - return [ - self.define("BUILD_LIBMAMBA", True), - self.define("BUILD_MICROMAMBA", True), - self.define("BUILD_STATIC", linkage == "static"), - self.define("BUILD_STATIC_DEPS", linkage == "full_static"), - self.define("BUILD_SHARED", linkage == "dynamic"), - self.define("MICROMAMBA_LINKAGE", linkage.upper()), - ] - - @run_after("install") - @on_package_attributes(run_tests=True) - def check_install(self): - Executable("micromamba")("--version") diff --git a/repos/spack_repo/builtin/packages/migraphx/0006-add-option-to-turn-off-ck.patch b/repos/spack_repo/builtin/packages/migraphx/0006-add-option-to-turn-off-ck.patch index b4082565afb..5bcddc1af3b 100644 --- a/repos/spack_repo/builtin/packages/migraphx/0006-add-option-to-turn-off-ck.patch +++ b/repos/spack_repo/builtin/packages/migraphx/0006-add-option-to-turn-off-ck.patch @@ -1,68 +1,68 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index c0a83ca..00c5dd0 100755 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -90,6 +90,13 @@ set(MIGRAPHX_ENABLE_CPU Off CACHE BOOL "") - # Disable fpga backend by default - set(MIGRAPHX_ENABLE_FPGA Off CACHE BOOL "") - -+if(WIN32) # CK is not yet ported to Windows -+option(MIGRAPHX_USE_COMPOSABLEKERNEL "Enable MIGraphX to use composable kernel JIT library" OFF) -+else() -+option(MIGRAPHX_USE_COMPOSABLEKERNEL "Enable MIGraphX to use composable kernel JIT library" ON) -+endif() -+ -+ - set(CMAKE_CXX_STANDARD_DEFAULT "") - add_compile_options($<$:-std=c++17>) - -diff --git a/src/targets/gpu/CMakeLists.txt b/src/targets/gpu/CMakeLists.txt -index ddb3c1b..e36117a 100644 ---- a/src/targets/gpu/CMakeLists.txt -+++ b/src/targets/gpu/CMakeLists.txt -@@ -42,8 +42,7 @@ if(NOT TARGET MIOpen) - message(SEND_ERROR "Cant find miopen") - endif() - --if(NOT WIN32) -- # TODO: re-enable when CK is ported to Windows -+if(MIGRAPHX_USE_COMPOSABLEKERNEL) - find_package(composable_kernel 1.0.0 REQUIRED COMPONENTS jit_library) - endif() - -@@ -98,8 +97,7 @@ rocm_clang_tidy_check(kernel_file_check) - - file(GLOB JIT_GPU_SRCS CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/jit/*.cpp) - --if(WIN32) -- # TODO: re-enable when CK is ported to Windows -+if(NOT MIGRAPHX_USE_COMPOSABLEKERNEL) - list(REMOVE_ITEM JIT_GPU_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/jit/ck_gemm.cpp) - endif() - -@@ -275,8 +273,7 @@ endif() - - target_link_libraries(migraphx_gpu PUBLIC migraphx MIOpen roc::rocblas) - target_link_libraries(migraphx_gpu PRIVATE migraphx_device migraphx_kernels) --if(NOT WIN32) -- # TODO: re-enable when CK is ported to Windows -+if(MIGRAPHX_USE_COMPOSABLEKERNEL) - target_link_libraries(migraphx_gpu PRIVATE composable_kernel::jit_library) - endif() - -diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt -index 71fe513..441d3bf 100644 ---- a/test/CMakeLists.txt -+++ b/test/CMakeLists.txt -@@ -222,7 +222,10 @@ endfunction() - - function(test_headers PREFIX) - file(GLOB HEADERS CONFIGURE_DEPENDS ${ARGN}) -- -+ if(NOT MIGRAPHX_USE_COMPOSABLEKERNEL) -+ list(REMOVE_ITEM HEADERS -+ ${CMAKE_SOURCE_DIR}/src/targets/gpu/include/migraphx/gpu/ck.hpp) -+ endif() - foreach(HEADER ${HEADERS}) - file(RELATIVE_PATH HEADER_REL ${CMAKE_SOURCE_DIR} ${HEADER}) +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c0a83ca..00c5dd0 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -90,6 +90,13 @@ set(MIGRAPHX_ENABLE_CPU Off CACHE BOOL "") + # Disable fpga backend by default + set(MIGRAPHX_ENABLE_FPGA Off CACHE BOOL "") + ++if(WIN32) # CK is not yet ported to Windows ++option(MIGRAPHX_USE_COMPOSABLEKERNEL "Enable MIGraphX to use composable kernel JIT library" OFF) ++else() ++option(MIGRAPHX_USE_COMPOSABLEKERNEL "Enable MIGraphX to use composable kernel JIT library" ON) ++endif() ++ ++ + set(CMAKE_CXX_STANDARD_DEFAULT "") + add_compile_options($<$:-std=c++17>) + +diff --git a/src/targets/gpu/CMakeLists.txt b/src/targets/gpu/CMakeLists.txt +index ddb3c1b..e36117a 100644 +--- a/src/targets/gpu/CMakeLists.txt ++++ b/src/targets/gpu/CMakeLists.txt +@@ -42,8 +42,7 @@ if(NOT TARGET MIOpen) + message(SEND_ERROR "Cant find miopen") + endif() + +-if(NOT WIN32) +- # TODO: re-enable when CK is ported to Windows ++if(MIGRAPHX_USE_COMPOSABLEKERNEL) + find_package(composable_kernel 1.0.0 REQUIRED COMPONENTS jit_library) + endif() + +@@ -98,8 +97,7 @@ rocm_clang_tidy_check(kernel_file_check) + + file(GLOB JIT_GPU_SRCS CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/jit/*.cpp) + +-if(WIN32) +- # TODO: re-enable when CK is ported to Windows ++if(NOT MIGRAPHX_USE_COMPOSABLEKERNEL) + list(REMOVE_ITEM JIT_GPU_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/jit/ck_gemm.cpp) + endif() + +@@ -275,8 +273,7 @@ endif() + + target_link_libraries(migraphx_gpu PUBLIC migraphx MIOpen roc::rocblas) + target_link_libraries(migraphx_gpu PRIVATE migraphx_device migraphx_kernels) +-if(NOT WIN32) +- # TODO: re-enable when CK is ported to Windows ++if(MIGRAPHX_USE_COMPOSABLEKERNEL) + target_link_libraries(migraphx_gpu PRIVATE composable_kernel::jit_library) + endif() + +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 71fe513..441d3bf 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -222,7 +222,10 @@ endfunction() + + function(test_headers PREFIX) + file(GLOB HEADERS CONFIGURE_DEPENDS ${ARGN}) +- ++ if(NOT MIGRAPHX_USE_COMPOSABLEKERNEL) ++ list(REMOVE_ITEM HEADERS ++ ${CMAKE_SOURCE_DIR}/src/targets/gpu/include/migraphx/gpu/ck.hpp) ++ endif() + foreach(HEADER ${HEADERS}) + file(RELATIVE_PATH HEADER_REL ${CMAKE_SOURCE_DIR} ${HEADER}) string(MAKE_C_IDENTIFIER ${HEADER_REL} TEST_NAME) \ No newline at end of file diff --git a/repos/spack_repo/builtin/packages/migraphx/package.py b/repos/spack_repo/builtin/packages/migraphx/package.py index 13ea136831b..5b832592ffa 100644 --- a/repos/spack_repo/builtin/packages/migraphx/package.py +++ b/repos/spack_repo/builtin/packages/migraphx/package.py @@ -2,25 +2,33 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import re - from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary, ROCmPackage from spack.package import * -class Migraphx(CMakePackage): +class Migraphx(ROCmLibrary, CMakePackage): """AMD's graph optimization engine.""" homepage = "https://github.com/ROCm/AMDMIGraphX" git = "https://github.com/ROCm/AMDMIGraphX.git" - url = "https://github.com/ROCm/AMDMIGraphX/archive/rocm-6.4.1.tar.gz" + url = "https://github.com/ROCm/AMDMIGraphX/archive/rocm-6.4.3.tar.gz" tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") libraries = ["libmigraphx"] license("MIT") + version("7.2.3", sha256="25d491d83fe84c6c071305a71100f77b393b35ae5c9eeec277c68986378f6abc") + version("7.2.1", sha256="611e4646f11fe559946275a6c79f1aaabe0a5c7cb95a42b28e724ba29f4c753a") + version("7.2.0", sha256="085ea6fcf6197b20fed60917194ca622e5d2c1705237fe063563f988494a8b3d") + version("7.1.1", sha256="beb9cbf4475d979e8431a983ee0ae8a9f5b75bb24699b7b8dfa2753db9822c4d") + version("7.1.0", sha256="ffb6e510420e277e30fc1a58635d568197ab2046784ea0c4740aa79ffb17cb70") + version("7.0.2", sha256="33979c1d8f514d65f823f28b2cd2eb11338477403f295e6367244a3abb0abadd") + version("7.0.0", sha256="b63634546781af8550395ebc6356e9a3e91a992d82ccb228ea60c719727f5247") + version("6.4.3", sha256="d3839034d3cbd7762818002e87da730f3c3172cdefca1aab58ade8d2a9889651") + version("6.4.2", sha256="2c008ce2af0900ce7802ec078c2e69f59d8af980ce5161bee625111aec7d941b") version("6.4.1", sha256="25716eb8a7f73cba722cc60ba6a71fbf6459f5491a350c285cf1ec904c339095") version("6.4.0", sha256="9041ea3c0ea0a22884e049f2a12559b6221eac897d31b3ebe0cf3e7a5b7d0268") version("6.3.3", sha256="a268baa99b145a32fe282e407cf923b1c1022f2ddab36d7178537b860fdfcf8d") @@ -37,9 +45,15 @@ class Migraphx(CMakePackage): version("6.0.0", sha256="7bb3f5011da9b1f3b79707b06118c523c1259215f650c2ffa5622a7e1d88868f") version("5.7.1", sha256="3e58c043a5a7d1357ee05725fd6cd41e190b070f1ba57f61300128429902089c") version("5.7.0", sha256="14f13554367d2d6490d66f8b5b739203225e7acce25085559e7c4acf29e2a4d5") - with default_args(deprecated=True): - version("5.6.1", sha256="b108c33f07572ffd880b20f6de06f1934ab2a1b41ae69095612322ac412fa91c") - version("5.6.0", sha256="eaec90535d62002fd5bb264677ad4a7e30c55f18d2a287680d0495c7e60432b2") + + amdgpu_targets = ROCmPackage.amdgpu_targets + + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") @@ -50,7 +64,7 @@ class Migraphx(CMakePackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - patch("0005-Adding-half-include-directory-path-migraphx.patch", when="@5.6.0:5.7") + patch("0005-Adding-half-include-directory-path-migraphx.patch", when="@5.7") patch("0006-add-option-to-turn-off-ck.patch", when="@5.7") patch( "https://github.com/ROCm/AMDMIGraphX/commit/728bea3489c97c9e1ddda0a0ae527ffd2d70cb97.patch?full_index=1", @@ -67,10 +81,11 @@ class Migraphx(CMakePackage): depends_on("cmake@3.5:", type="build") depends_on("protobuf", type="link") + depends_on("protobuf", type=("build", "link"), when="@7.1:") depends_on("blaze", type="build") depends_on("nlohmann-json", type="link") depends_on("msgpack-c", type="link") - depends_on("half@2:", when="@5.6:6.2") + depends_on("half@2:", when="@:6.2") depends_on("half") depends_on("python@3.5:", type="build") depends_on("py-pybind11@2.6:", type="build") @@ -78,8 +93,6 @@ class Migraphx(CMakePackage): depends_on("abseil-cpp") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -96,29 +109,47 @@ class Migraphx(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") - depends_on(f"rocblas@{ver}", when=f"@{ver}") - depends_on(f"miopen-hip@{ver}", when=f"@{ver}") + for tgt in ROCmPackage.amdgpu_targets: + depends_on(f"rocblas@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + depends_on(f"miopen-hip@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + + for ver in ["6.0.0", "6.0.2", "6.1.0", "6.1.1", "6.1.2", "6.2.0", "6.2.1", "6.2.4"]: + depends_on(f"rocmlir@{ver}", when=f"@{ver}") + for ver in [ - "6.0.0", - "6.0.2", - "6.1.0", - "6.1.1", - "6.1.2", - "6.2.0", - "6.2.1", - "6.2.4", "6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocmlir@{ver}", when=f"@{ver}") + for tgt in ROCmPackage.amdgpu_targets: + depends_on(f"hipblas@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + depends_on(f"hipblaslt@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") @property def cmake_python_hints(self): @@ -127,17 +158,6 @@ def cmake_python_hints(self): """ return [self.define("Python_INCLUDE_DIR", self["python"].config_vars["include"])] - @classmethod - def determine_version(cls, lib): - match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib) - if match: - ver = "{0}.{1}.{2}".format( - int(match.group(1)), int(match.group(2)), int(match.group(3)) - ) - else: - ver = None - return ver - def setup_build_environment(self, env: EnvironmentModifications) -> None: if self.spec.satisfies("+asan"): env.set("CC", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang") @@ -170,10 +190,13 @@ def cmake_args(self): "CMAKE_CXX_FLAGS", "-fsanitize=address -shared-libasan -I{0}".format(abspath) ) ) + if self.spec.satisfies("@7.1:"): + args.append(self.define("PROTOBUF_INCLUDE_DIR", self.spec["protobuf"].prefix.include)) + if "auto" not in self.spec.variants["amdgpu_target"]: + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) return args def test_unit_tests(self): """Run installed UnitTests""" - unit_tests = which(self.prefix.bin.UnitTests) - assert unit_tests is not None, "UnitTests is not installed!" + unit_tests = which(self.prefix.bin.UnitTests, required=True) unit_tests() diff --git a/repos/spack_repo/builtin/packages/mille/package.py b/repos/spack_repo/builtin/packages/mille/package.py new file mode 100644 index 00000000000..87021d1a3e0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/mille/package.py @@ -0,0 +1,53 @@ +# 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 Mille(CMakePackage): + """Mille is the I/O component used by the Millepede-II package + and supported by the GeneralBrokenLines track fitter.""" + + homepage = "https://gitlab.desy.de/millepede/mille" + url = "https://gitlab.desy.de/millepede/mille/-/archive/V01-00-00/mille-V01-00-00.tar.gz" + git = "https://gitlab.desy.de/millepede/mille.git" + + license("LGPL-2.0-only", checked_by="paulgessinger") + + version("main", branch="main") + version("01-00-03", sha256="1953e2a341fed3a1c431c954d6e8f1c823926bc2886bdc209d859d2cb9dac6d8") + version("01-00-02", sha256="bb232672003a8f13f848635e49a261acb79de26634e4ba76347358f209b5de05") + version("01-00-00", sha256="ae4bf37de8d835aa8adc2960bb795a2080233a4c8af3d4b55adf395e20df0f3e") + + variant("zlib", default=True, description="Enable zlib support") + variant("root", default=False, description="Enable ROOT support") + + _cxxstd_values = ["17", "20", "23"] + variant( + "cxxstd", + default="20", + values=_cxxstd_values, + multi=False, + description="Use the specified C++ standard when building.", + ) + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + + depends_on("zlib-api", when="+zlib") + + for cxxstd in _cxxstd_values: + depends_on(f"root cxxstd={cxxstd}", when=f"+root cxxstd={cxxstd}") + + def cmake_args(self): + args = [ + self.define_from_variant("SUPPORT_ZLIB", "zlib"), + self.define_from_variant("SUPPORT_ROOT", "root"), + self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"), + "-DBUILD_TESTS=OFF", + ] + return args diff --git a/repos/spack_repo/builtin/packages/millepede/package.py b/repos/spack_repo/builtin/packages/millepede/package.py index 4e91290eb61..bf332d3fba8 100644 --- a/repos/spack_repo/builtin/packages/millepede/package.py +++ b/repos/spack_repo/builtin/packages/millepede/package.py @@ -2,31 +2,105 @@ # # 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 CMakeBuilder, CMakePackage +from spack_repo.builtin.build_systems.makefile import MakefileBuilder, MakefilePackage from spack.package import * -class Millepede(MakefilePackage): +class Millepede(MakefilePackage, CMakePackage): """Millepede II is a package for linear least squares fits with a large number of parameters. Developed for the alignment and calibration of tracking detectors.""" - homepage = "https://gitlab.desy.de/claus.kleinwort/millepede-ii" - url = "https://gitlab.desy.de/claus.kleinwort/millepede-ii/-/archive/V04-11-01/millepede-ii-V04-11-01.tar.gz" + build_system( + conditional("cmake", when="@5:"), conditional("makefile", when="@:4"), default="cmake" + ) - parallel = False + homepage = "https://gitlab.desy.de/millepede/millepede-ii" + url = "https://gitlab.desy.de/millepede/millepede-ii/-/archive/V05-00-00/millepede-ii-V05-00-00.tar.gz" + git = "https://gitlab.desy.de/millepede/millepede-ii.git" license("LGPL-2.0-only") - version("04-13-03", sha256="669a6e46a6f02ba3c78b2760e2ffb2c90d25b582ccd1a5c0770eef81c7bcbbe9") - version("04-11-01", sha256="9869eb84d8d07cecfab15c396f3faa36aef10906e39f8641c48b58e0325b3205") + version("main", branch="main") + version("05-01-03", sha256="18f707a1b372f07420e26969f503518b6dd067642f5eab45f05728aa7ff742ec") + version("05-01-02", sha256="fd7991487682e8b28cac6a036b905fedc19ec0ac9e26fd85e2514b22a75e3343") + version("05-01-01", sha256="b6a316e4b1ebf93cbf72ddd57a157e09f4446e4677352ef288748731ac2c0297") + version("05-01-00", sha256="fec88805d33004f9ca03733dc14f7b30f888cd3a48e3cdf4333d74b42242d3d3") + version("05-00-00", sha256="df8ffb2ffae3c4f32177824026f79ed3b824536f5ef581643aaae09da308aca6") + version( + "04-13-03", + sha256="669a6e46a6f02ba3c78b2760e2ffb2c90d25b582ccd1a5c0770eef81c7bcbbe9", + deprecated=True, + ) + version( + "04-11-01", + sha256="9869eb84d8d07cecfab15c396f3faa36aef10906e39f8641c48b58e0325b3205", + deprecated=True, + ) - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + # Fix LAPACK handling + patch( + "https://gitlab.desy.de/millepede/millepede-ii/-/merge_requests/48.diff", + sha256="4b151e220012b53bf3ae2c82cd5f736df870b2332e7cfdec60ce13e6788af86a", + when="@5.0.0", + ) - depends_on("zlib-api") + variant("zlib", default=True, description="Enable zlib support") + variant("root", default=False, description="Enable ROOT support") + variant("openmp", default=True, description="Enable OpenMP support") + variant("mkl", default=False, description="Use MKL as LAPACK backend instead of OpenBLAS") + variant("pardiso", default=False, description="Enable Intel oneMKL PARDISO sparse solver") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + requires("%gcc", msg="Millepede hardcodes gcc/g++/gfortran") + + depends_on("zlib-api", when="+zlib") + + depends_on("mille") + depends_on("mille +root", when="+root") + depends_on("mille +zlib", when="+zlib") + + depends_on("openblas +ilp64", when="~mkl") + depends_on("intel-oneapi-mkl", when="+mkl") + + conflicts("+pardiso ~mkl", msg="PARDISO requires the MKL backend (+mkl)") + + _cxxstd_values = ["17", "20", "23"] + variant( + "cxxstd", + default="20", + values=_cxxstd_values, + multi=False, + description="Use the specified C++ standard when building.", + ) + + for cxxstd in _cxxstd_values: + depends_on(f"root cxxstd={cxxstd}", when=f"+root cxxstd={cxxstd}") + + +class MakefileBuilder(MakefileBuilder): def install(self, spec, prefix): make("install", "PREFIX=" + prefix) + + +class CMakeBuilder(CMakeBuilder): + def cmake_args(self): + args = [ + self.define("LAPACK_OPENBLAS", self.spec.satisfies("~mkl")), + self.define("LAPACK_MKL", self.spec.satisfies("+mkl")), + self.define_from_variant("SUPPORT_ZLIB", "zlib"), + self.define_from_variant("SUPPORT_ROOT", "root"), + self.define_from_variant("SUPPORT_OPENMP", "openmp"), + self.define_from_variant("PARDISO", "pardiso"), + self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"), + ] + + if "~mkl" in self.spec: # ← only for OpenBLAS + libs = self.spec["openblas"].libs.joined() + args += [self.define("BLAS_LIBRARIES", libs), self.define("LAPACK_LIBRARIES", libs)] + + return args diff --git a/repos/spack_repo/builtin/packages/mimalloc/package.py b/repos/spack_repo/builtin/packages/mimalloc/package.py index 69a10a0ec01..0f676189200 100644 --- a/repos/spack_repo/builtin/packages/mimalloc/package.py +++ b/repos/spack_repo/builtin/packages/mimalloc/package.py @@ -20,9 +20,17 @@ class Mimalloc(CMakePackage): version("dev-slice", branch="dev-slice") version("dev", branch="dev") version("master", branch="master") + version("3.3.2", sha256="ca02384e007f46950598500dfaebde5ff9948c1d231f5a81b058799afa64bbbb") + version("3.3.1", sha256="42c16914168ac6741eeb407e83b93a12b2b7ee25a7e14e6b4807fab8b577a540") + version("3.3.0", sha256="cf227295c307efc6f16e90c485595f9bb91c5a5532a3000f81f08907f8fc56a2") + version("3.2.8", sha256="68163666575518c213a6593850099adce3863b340ca2751103dbd1f253664e05") + version("3.2.7", sha256="33621bea902711639b8f83128e64685ffc8224a65443625530747603a2d8726d") + version("3.2.6", sha256="bd5756fb2e9f5c275b37ce1d530ac1c98baca0bad6818dcda5c83d6139108a97") + version("3.1.5", sha256="1c6949032069d5ebea438ec5cedd602d06f40a92ddf0f0d9dcff0993e5f6635c") version("3.1.4", sha256="84992bca18d6f74829b884c369de2707085b8248aaf3a1368e21f3993020171f") version("3.0.3", sha256="baf343041420e2924e1760bbbc0c111101c44e1cecb998e7951f646a957ee05f") version("3.0.1", sha256="6a514ae31254b43e06e2a89fe1cbc9c447fdbf26edc6f794f3eb722f36e28261") + version("2.2.4", sha256="754a98de5e2912fddbeaf24830f982b4540992f1bab4a0a8796ee118e0752bda") version("2.1.9", sha256="dd8ff701691f19bf4e225d42ef0d3d5e6ca0e03498ee4f044a0402e4697e4a20") version("2.1.7", sha256="0eed39319f139afde8515010ff59baf24de9e47ea316a315398e8027d198202d") version("2.1.2", sha256="2b1bff6f717f9725c70bf8d79e4786da13de8a270059e4ba0bdd262ae7be46eb") @@ -31,6 +39,7 @@ class Mimalloc(CMakePackage): version("2.0.9", sha256="4a29edae32a914a706715e2ac8e7e4109e25353212edeed0888f4e3e15db5850") version("2.0.7", sha256="f23aac6c73594e417af50cb38f1efed88ef1dc14a490f0eff07c7f7b079810a4") version("2.0.6", sha256="9f05c94cc2b017ed13698834ac2a3567b6339a8bde27640df5a1581d49d05ce5") + version("1.9.4", sha256="2fc9795fc2a6b85a1c25b2a4a4e4a42109c8433a262362ac1e60521f55cbf381") version("1.8.9", sha256="3aabe30485c4e908c1bf04136d5b95c08c6e73fa6fe6e1ec68b4851d3c60ee47") version("1.8.2", sha256="4058d53d6ceb75862f32c30a6ee686c3cbb5e965b2c324b828ca454f7fe064f9") version("1.8.1", sha256="7aaa54c3ed1feac90b6187eb93108e808660c6e103b0fa6a7e2fabb58c3147d5") @@ -74,15 +83,13 @@ class Mimalloc(CMakePackage): ), "override": ( True, - "Override the standard malloc interface (e.g. define entry points " - "for malloc() etc)", + "Override the standard malloc interface (e.g. define entry points for malloc() etc)", None, ), "xmalloc": (False, "Enable abort() call on memory allocation failure by default", None), "show_errors": ( False, - "Show error and warning messages by default (only enabled by default " - "in DEBUG mode)", + "Show error and warning messages by default (only enabled by default in DEBUG mode)", None, ), "use_cxx": ( @@ -131,6 +138,6 @@ def cmake_args(self): # Use LTO also for non-Intel compilers please. This can be removed when they # bump cmake_minimum_required to VERSION 3.9. - if "+ipo" in self.spec: + if "+ipo" in self.spec and self.spec.satisfies("@:2.0.7"): args.append("-DCMAKE_POLICY_DEFAULT_CMP0069=NEW") return args diff --git a/repos/spack_repo/builtin/packages/mimic_mcl/package.py b/repos/spack_repo/builtin/packages/mimic_mcl/package.py new file mode 100644 index 00000000000..18e4723cfef --- /dev/null +++ b/repos/spack_repo/builtin/packages/mimic_mcl/package.py @@ -0,0 +1,57 @@ +# 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 MimicMcl(CMakePackage): + """MiMiC is a high-performance framework for multiscale molecular dynamics simulations. + MCL, or MiMiC Communication Library, enables communication between external programs + coupled through the MiMiC framework. See https://mimic-project.org/ for further information. + """ + + homepage = "https://gitlab.com/mimic-project/mcl" + url = "https://gitlab.com/mimic-project/mcl/-/archive/3.0.0/mcl-3.0.0.tar.gz" + git = "https://gitlab.com/mimic-project/mcl.git" + + license("GPL-3.0", checked_by="mkrack") + + maintainers("mkrack") + + version("3.0.0", sha256="3e740582836fe90e04a693cfc5a219826bcac03217f70ea5570bad6aeafda685") + + variant("coverage", default=False, description="Enable code coverage report") + variant("fortran", default=True, description="Build Fortran API module") + variant("mpi_f08", default=True, description="Enable MPI F08 Fortran module") + variant("shared", default=True, description="Build using shared libraries") + variant("tests", default=False, description="Build tests") + variant( + "build_type", + default="Release", + description="CMake build type", + values=("Debug", "Release"), + ) + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("fortran", when="+fortran", type="build") + + depends_on("cmake@3.12:", type="build") + depends_on("mpi@2.1:", type="build") + depends_on("python@3.6:", type="build") + + build_targets = ["mcl"] + + def cmake_args(self): + args = [ + self.define_from_variant("ENABLE_COVERAGE", "coverage"), + self.define_from_variant("BUILD_FORTRAN_API", "fortran"), + self.define("DISABLE_MPI_F08", self.spec.satisfies("~mpi_f08")), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define_from_variant("BUILD_TESTS", "tests"), + ] + return args diff --git a/repos/spack_repo/builtin/packages/miniaero/package.py b/repos/spack_repo/builtin/packages/miniaero/package.py deleted file mode 100644 index c3767cfb9a4..00000000000 --- a/repos/spack_repo/builtin/packages/miniaero/package.py +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - - -from spack_repo.builtin.build_systems.makefile import MakefilePackage - -from spack.package import * - - -class Miniaero(MakefilePackage): - """Proxy Application. MiniAero is a mini-application for the evaulation - of programming models and hardware for next generation platforms. - """ - - homepage = "https://mantevo.org" - git = "https://github.com/Mantevo/miniAero.git" - - tags = ["proxy-app"] - - version("2016-11-11", commit="f46d135479a5be19ec5d146ccaf0e581aeff4596") - - depends_on("cxx", type="build") # generated - - depends_on("kokkos-legacy") - - @property - def build_targets(self): - targets = [ - "--directory=kokkos", - "CXX=c++", - "KOKKOS_PATH={0}".format(self.spec["kokkos-legacy"].prefix), - ] - - return targets - - def install(self, spec, prefix): - # Manual Installation - mkdirp(prefix.bin) - mkdirp(prefix.doc) - - install("kokkos/miniAero.host", prefix.bin) - install("kokkos/README", prefix.doc) - install("kokkos/tests/3D_Sod_Serial/miniaero.inp", prefix.bin) - install_tree("kokkos/tests", prefix.doc.tests) diff --git a/repos/spack_repo/builtin/packages/miniconda2/package.py b/repos/spack_repo/builtin/packages/miniconda2/package.py deleted file mode 100644 index 0bc6ad9e4e9..00000000000 --- a/repos/spack_repo/builtin/packages/miniconda2/package.py +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from os.path import split - -from spack_repo.builtin.build_systems.generic import Package - -from spack.package import * - - -class Miniconda2(Package): - """The minimalist bootstrap toolset for conda and Python2.""" - - homepage = "https://conda.io/miniconda.html" - url = "https://repo.continuum.io/miniconda/Miniconda2-4.6.14-Linux-x86_64.sh" - - version( - "4.7.12.1", - sha256="383fe7b6c2574e425eee3c65533a5101e68a2d525e66356844a80aa02a556695", - expand=False, - deprecated=True, - ) - version( - "4.6.14", - sha256="3e20425afa1a2a4c45ee30bd168b90ca30a3fdf8598b61cb68432886aadc6f4d", - expand=False, - deprecated=True, - ) - version( - "4.5.11", - sha256="0e23e8d0a1a14445f78960a66b363b464b889ee3b0e3f275b7ffb836df1cb0c6", - expand=False, - deprecated=True, - ) - version( - "4.5.4", - sha256="77d95c99996495b9e44db3c3b7d7981143d32d5e9a58709c51d35bf695fda67d", - expand=False, - deprecated=True, - ) - version( - "4.3.30", - sha256="0891000ca28359e63aa77e613c01f7a88855dedfc0ddc8be31829f3139318cf3", - expand=False, - deprecated=True, - ) - version( - "4.3.14", - sha256="2dc629843be954fc747f08ffbcb973b5473f6818464b82a00260c38f687e02f1", - expand=False, - deprecated=True, - ) - version( - "4.3.11", - sha256="fbc77646cc62e39f4aa5dd1dda1c94cc4e0bc3be580b10aa2ca2ae0013456a87", - expand=False, - deprecated=True, - ) - - def install(self, spec, prefix): - # peel the name of the script out of the pathname of the - # downloaded file - dir, script = split(self.stage.archive_file) - bash = which("bash") - bash(script, "-b", "-f", "-p", self.prefix) - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - filename = self.prefix.etc.join("profile.d").join("conda.sh") - env.extend(EnvironmentModifications.from_sourcing_file(filename)) diff --git a/repos/spack_repo/builtin/packages/miniconda3/package.py b/repos/spack_repo/builtin/packages/miniconda3/package.py index 1a40111c210..270ae5352b3 100644 --- a/repos/spack_repo/builtin/packages/miniconda3/package.py +++ b/repos/spack_repo/builtin/packages/miniconda3/package.py @@ -10,6 +10,36 @@ from spack.package import * _versions = { + "25.5.1": { + "Linux-x86_64": ( + "612af113b49db0368e2be41ac4d51b7088eebd5f31daeeb89f23fff8f920db58", + "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.5.1-1-Linux-x86_64.sh", + ) + }, + "25.3.1": { + "Linux-x86_64": ( + "53a86109463cfd70ba7acab396d416e623012914eee004729e1ecd6fe94e8c69", + "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.3.1-1-Linux-x86_64.sh", + ) + }, + "25.1.1": { + "Linux-x86_64": ( + "4766d85b5f7d235ce250e998ebb5a8a8210cbd4f2b0fea4d2177b3ed9ea87884", + "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-Linux-x86_64.sh", + ) + }, + "24.11.1": { + "Linux-x86_64": ( + "636b209b00b6673471f846581829d4b96b9c3378679925a59a584257c3fef5a3", + "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.11.1-0-Linux-x86_64.sh", + ) + }, + "24.9.2": { + "Linux-x86_64": ( + "8d936ba600300e08eca3d874dee88c61c6f39303597b2b66baee54af4f7b4122", + "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.9.2-0-Linux-x86_64.sh", + ) + }, "24.7.1": { "Linux-x86_64": ( "33442cd3813df33dcbb4a932b938ee95398be98344dff4c30f7e757cd2110e4f", @@ -170,7 +200,7 @@ def install(self, spec, prefix): # peel the name of the script out of the pathname of the # downloaded file dir, script = split(self.stage.archive_file) - bash = which("bash") + bash = which("bash", required=True) bash(script, "-b", "-f", "-p", self.prefix) def setup_run_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/miniforge3/package.py b/repos/spack_repo/builtin/packages/miniforge3/package.py index de76ab833d1..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.") @@ -57,7 +67,7 @@ def url_for_version(self, version): def install(self, spec, prefix): dir, script = split(self.stage.archive_file) - bash = which("bash") + bash = which("bash", required=True) bash(script, "-b", "-f", "-p", self.prefix) @run_after("install") @@ -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/minimap2/package.py b/repos/spack_repo/builtin/packages/minimap2/package.py index 24577347834..3ac8304a7f2 100644 --- a/repos/spack_repo/builtin/packages/minimap2/package.py +++ b/repos/spack_repo/builtin/packages/minimap2/package.py @@ -22,6 +22,8 @@ class Minimap2(PythonPackage): license("MIT") + version("2.30", sha256="f21b5fc2f8fcd02b88bf0ab9a76ad968d59dc67ac384af31ab074393d9e2c1f0") + version("2.29", sha256="8a231af5766b62cb9e24720290a730809633a6ea4cb7fe49ce39884438eceddb") version("2.28", sha256="ffa5712735d229119f8c05722a0638ae0cc15aeb8938e29a3e52d5da5c92a0b4") version("2.26", sha256="6a588efbd273bff4f4808d5190957c50272833d2daeb4407ccf4c1b78143624c") version("2.24", sha256="9dd4c31ff082182948944bcdad6d328f64f09295d10547d72eba24189880a615") diff --git a/repos/spack_repo/builtin/packages/minio/package.py b/repos/spack_repo/builtin/packages/minio/package.py index d7e4c5d68c5..2ccbf1103df 100644 --- a/repos/spack_repo/builtin/packages/minio/package.py +++ b/repos/spack_repo/builtin/packages/minio/package.py @@ -22,20 +22,6 @@ class Minio(MakefilePackage): "2024-10-13T13-34-11Z", sha256="53301a6822f8466da88e3b24252d2551c37e7f96e9d37a36121d0616a69af1dd", ) - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2024-24747 - version( - "2020-07-13T18-09-56Z", - sha256="147fca3930389162cc7306a0fa5cf478ee2deba4b31a9317f3d35e82aa58d41e", - ) - version( - "2020-07-12T19-14-17Z", - sha256="bb8ba5d93215ab37788171d8b9ce68e78d64e7b7c74aea508c15958158d85b03", - ) - version( - "2020-07-02T00-15-09Z", - sha256="4255c4d95a3e010f16a3f1e974768dc68509075403a97a9b9882f7d9e89fedc5", - ) depends_on("go", type="build") diff --git a/repos/spack_repo/builtin/packages/miniocli/package.py b/repos/spack_repo/builtin/packages/miniocli/package.py index b183c800b41..34a3d62fdac 100644 --- a/repos/spack_repo/builtin/packages/miniocli/package.py +++ b/repos/spack_repo/builtin/packages/miniocli/package.py @@ -16,6 +16,11 @@ class Miniocli(MakefilePackage): license("AGPL-3.0-only") + version( + "2025-08-13", + sha256="29db22500374169a43951c7cef09daf19e7291ea5ba00ac10f321371b0a35b32", + url="https://github.com/minio/mc/archive/refs/tags/RELEASE.2025-08-13T08-35-41Z.tar.gz", + ) version( "2023-06-28", sha256="033a80439474595665bdbc3ec72b059dc9e69e99db85fe6820877ad8973a080b", @@ -44,6 +49,7 @@ class Miniocli(MakefilePackage): url="https://github.com/minio/mc/archive/RELEASE.2022-01-05T23-52-51Z.tar.gz", ) + depends_on("go@1.23:", type="build") depends_on("go", type="build") def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/minizip/implicit.patch b/repos/spack_repo/builtin/packages/minizip/implicit.patch deleted file mode 100644 index 86df7d46f05..00000000000 --- a/repos/spack_repo/builtin/packages/minizip/implicit.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/contrib/minizip/miniunz.c 2010-07-18 11:04:24.000000000 -0500 -+++ b/contrib/minizip/miniunz.c 2020-12-25 21:39:19.000000000 -0600 -@@ -45,6 +45,7 @@ - #include - #include - #include -+#include - - #ifdef _WIN32 - # include diff --git a/repos/spack_repo/builtin/packages/minizip/package.py b/repos/spack_repo/builtin/packages/minizip/package.py index 8c9e8871ca3..f87a6340a8f 100644 --- a/repos/spack_repo/builtin/packages/minizip/package.py +++ b/repos/spack_repo/builtin/packages/minizip/package.py @@ -16,11 +16,6 @@ class Minizip(AutotoolsPackage): license("Zlib") version("1.3.1", sha256="9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2022-37434 - version( - "1.2.11", sha256="c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1" - ) depends_on("c", type="build") @@ -32,11 +27,6 @@ class Minizip(AutotoolsPackage): depends_on("m4", type="build") depends_on("zlib-api") - # error: implicit declaration of function 'mkdir' is invalid in C99 - with when("@:1.2.11"): - patch("implicit.patch", when="%apple-clang@12:") - patch("implicit.patch", when="%gcc@7.3.0:") - # statically link to libz.a # https://github.com/Homebrew/homebrew-core/blob/master/Formula/minizip.rb patch("static.patch", when="%apple-clang@12:") diff --git a/repos/spack_repo/builtin/packages/miopen_hip/package.py b/repos/spack_repo/builtin/packages/miopen_hip/package.py index a6b04191bb0..9483c79a87a 100644 --- a/repos/spack_repo/builtin/packages/miopen_hip/package.py +++ b/repos/spack_repo/builtin/packages/miopen_hip/package.py @@ -2,9 +2,11 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import itertools import re from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage from spack_repo.builtin.packages.boost.package import Boost from spack.package import * @@ -14,14 +16,29 @@ class MiopenHip(CMakePackage): """AMD's library for high performance machine learning primitives.""" homepage = "https://github.com/ROCm/MIOpen" - git = "https://github.com/ROCm/MIOpen.git" - url = "https://github.com/ROCm/MIOpen/archive/rocm-6.4.1.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") libraries = ["libMIOpen"] - license("MIT") + + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/MIOpen/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="98c72a2b5ca541d6c172facdf0f15729207ab52ca9af36c00e2480c5b27c5b99") + version("7.1.0", sha256="3fa0a7c8ef959ad889aac0109e6bf74de2a54f7e3ab057f98e2dc4fb65eb1599") + version("7.0.2", sha256="f8e0fbc7e007d8b37b47a9369a9f849ab708d4fd8681a70c4f545d7ed1aa3ba0") + version("7.0.0", sha256="f835c204deaf299ee9525b9a77be329d6f4f0cdf808a1c39bb3c461b12ff1b53") + version("6.4.3", sha256="d78eacc4314da049cc3d39877ee5b6b64b463f900be4a84c0b0b6d7a6f56148d") + version("6.4.2", sha256="30c475a07af5b955e40b4b5dca705d2ea5c2e51112d1b24c0216046f22f45bc1") version("6.4.1", sha256="3e9e8bc8d9dfb31b27e955ead3430825e88b7f1501d289ba023d34208916c724") version("6.4.0", sha256="5b101f9177d49654968a3f3c01c9eede561a8fe5178f2ae4d8e5acb16b0b17e6") version("6.3.3", sha256="755beaec2e97aa4fafcdb07e4becbcddcb0c3cef6af256a04716d46e90c2f520") @@ -38,16 +55,22 @@ class MiopenHip(CMakePackage): version("6.0.0", sha256="a0718a48353be30ff98118ade511f0c1b454e394d8f934aefe7dd6946562b2e9") version("5.7.1", sha256="912a658fe21ce6f1982b0f2ff251c3f7bb618f2e7e9876d983bcb54e3cd7129e") version("5.7.0", sha256="5cd0b62254469e1c246d5890d2b78f8aedcf42cf8a327eabc1a391b83bcd14e1") - with default_args(deprecated=True): - version("5.6.1", sha256="ff627d68ed9e52433a3c808b5d3ff179a398b77ce81b00cfea7b2c4da5162c6c") - version("5.6.0", sha256="d620ddab5b488bdf81242654fefa337c6b71dc410c2ff26d30a4ee86a8d22d11") + + amdgpu_targets = ROCmPackage.amdgpu_targets + variant( + "amdgpu_target", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + description="AMD GPU targets for composable-kernel when +ck", + ) variant( "ck", default=True, description="Enable MIOpen to use composable kernels for various operation", ) variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") + variant("hipblaslt", default=True, when="@6.3:", description="Build with hipblaslt") conflicts("+asan", when="os=rhel9") conflicts("+asan", when="os=centos7") @@ -68,9 +91,17 @@ class MiopenHip(CMakePackage): depends_on("sqlite") depends_on("half@1") depends_on("zlib-api") - depends_on("frugally-deep", when="@6.3:") + # Inside requirements.txt of the miopen repository, frugally-deep is + # is using ROCm/frugally-deep@9683d557eb672ee2304f80f6682c51242d748a50 + # this is specfically mapped to frugally-deep@0.15.x using later 0.16 + # versions or above is causing an issue, + # https://github.com/ROCm/MIOpen/issues/3588 and requires updates to + # src/kernels/gfx9[08|0a|42].tn.model to support this + # new format to support frugally-deep 0.16.0 or later + + depends_on("frugally-deep@0.15.31", when="@6.3:") - patch("miopen-hip-include-nlohmann-include-directory.patch", when="@5.6.0:5.7") + patch("miopen-hip-include-nlohmann-include-directory.patch", when="@5.7") patch("0002-add-include-dir-miopen-hip-6.0.0.patch", when="@6.0") patch("0001-link-with-roctracer-when-building-miopendriver-6.1.0.patch", when="@6.1") patch("0001-link-with-roctracer-when-building-miopendriver-6.2.0.patch", when="@6.2") @@ -82,35 +113,90 @@ class MiopenHip(CMakePackage): patch( "https://github.com/ROCm/MIOpen/commit/d1a25ad0f4fc90dffea7a5dbb9cc7a9983a004c2.patch?full_index=1", sha256="3001a90202b572a5cd86a51905064903bcee74d8fa0d9649ee9732274c207801", - when="@6.3:", + when="@6.3:6.4", ) - for ver in ["5.6.0", "5.6.1", "5.7.0", "5.7.1", "6.0.0", "6.0.2", "6.1.0", "6.1.1", "6.1.2"]: + for ver in ["5.7.0", "5.7.1", "6.0.0", "6.0.2", "6.1.0", "6.1.1", "6.1.2"]: depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"rocm-clang-ocl@{ver}", when=f"@{ver}") - depends_on(f"rocblas@{ver}", when=f"@{ver}") - depends_on(f"composable-kernel@{ver}", when=f"@{ver} +ck") + for tgt in itertools.chain(["auto"], amdgpu_targets): + depends_on( + f"composable-kernel@{ver} amdgpu_target={tgt}", + when=f"@{ver} +ck amdgpu_target={tgt}", + ) + depends_on(f"rocblas@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") for ver in ["6.0.0", "6.0.2", "6.1.0", "6.1.1", "6.1.2"]: depends_on(f"roctracer-dev@{ver}", when=f"@{ver}") - for ver in ["6.2.0", "6.2.1", "6.2.4", "6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: + for ver in [ + "6.2.0", + "6.2.1", + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") depends_on(f"roctracer-dev@{ver}", when=f"@{ver}") depends_on(f"hip@{ver}", when=f"@{ver}") - depends_on(f"rocblas@{ver}", when=f"@{ver}") - depends_on(f"rocrand@{ver}", when=f"@{ver}") - depends_on(f"composable-kernel@{ver}", when=f"@{ver} +ck") + for tgt in itertools.chain(["auto"], amdgpu_targets): + depends_on(f"rocblas@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + depends_on(f"rocrand@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + depends_on( + f"composable-kernel@{ver} amdgpu_target={tgt}", + when=f"@{ver} +ck amdgpu_target={tgt}", + ) + depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") - for ver in ["6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: + for ver in [ + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: + for tgt in itertools.chain(["auto"], amdgpu_targets): + depends_on(f"hipblas@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + depends_on( + f"hipblaslt@{ver} amdgpu_target={tgt}", + when=f"@{ver} +hipblaslt amdgpu_target={tgt}", + ) depends_on(f"rocmlir@{ver}", when=f"@{ver}") - depends_on(f"hipblas@{ver}", when=f"@{ver}") - depends_on(f"hipblaslt@{ver}", when=f"@{ver}") depends_on("nlohmann-json", type="link") depends_on("googletest", when="@6.1:") + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/miopen" + else: + return "." + def setup_build_environment(self, env: EnvironmentModifications) -> None: lib_dir = self.spec["zlib-api"].libs.directories[0] env.prepend_path("LIBRARY_PATH", lib_dir) @@ -154,14 +240,13 @@ def cmake_args(self): self.define("DEVICELIBS_PREFIX_PATH", self.get_bitcode_dir()), self.define_from_variant("MIOPEN_USE_COMPOSABLEKERNEL", "ck"), ] - if self.spec.satisfies("@5.6.0:6.1"): + if self.spec.satisfies("@:6.1"): args.append( "-DNLOHMANN_JSON_INCLUDE={0}".format(self.spec["nlohmann-json"].prefix.include) ) - if self.spec.satisfies("@5.6.0:6.2"): + if self.spec.satisfies("@:6.2"): args.append(self.define("MIOPEN_ENABLE_AI_KERNEL_TUNING", "OFF")) args.append(self.define("MIOPEN_USE_MLIR", "OFF")) - if self.spec.satisfies("@5.7.0:6.2"): args.append(self.define("MIOPEN_ENABLE_AI_IMMED_MODE_FALLBACK", "OFF")) if self.spec.satisfies("@6.0:6.2"): args.append( @@ -178,4 +263,13 @@ def cmake_args(self): f"-I{self.spec['sqlite'].prefix.include} ", ) ) + if self.spec.satisfies("@6.3:"): + args.append(self.define_from_variant("MIOPEN_USE_HIPBLASLT", "hipblaslt")) + if self.spec.satisfies("@7:"): + args.append( + self.define( + "MIOPEN_OFFLOADBUNDLER_BIN", + f"{self.spec['llvm-amdgpu'].prefix.bin}/clang-offload-bundler", + ) + ) return args diff --git a/repos/spack_repo/builtin/packages/mitofates/package.py b/repos/spack_repo/builtin/packages/mitofates/package.py index dee61aa953d..990967606fd 100644 --- a/repos/spack_repo/builtin/packages/mitofates/package.py +++ b/repos/spack_repo/builtin/packages/mitofates/package.py @@ -43,7 +43,7 @@ def patch(self): def install(self, spec, prefix): install_tree("bin", prefix.bin) install("MitoFates.pl", prefix) - chmod = which("chmod") + chmod = which("chmod", required=True) chmod("+x", join_path(prefix, "MitoFates.pl")) def setup_run_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/mivisionx/package.py b/repos/spack_repo/builtin/packages/mivisionx/package.py index 45eb07cf6f7..de2582212c2 100644 --- a/repos/spack_repo/builtin/packages/mivisionx/package.py +++ b/repos/spack_repo/builtin/packages/mivisionx/package.py @@ -3,31 +3,35 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary, ROCmPackage from spack.package import * -class Mivisionx(CMakePackage): +class Mivisionx(ROCmLibrary, CMakePackage): """MIVisionX toolkit is a set of comprehensive computer vision and machine intelligence libraries, utilities, and applications bundled into a single toolkit.""" homepage = "https://github.com/ROCm/MIVisionX" git = "https://github.com/ROCm/MIVisionX.git" - url = "https://github.com/ROCm/MIVisionX/archive/rocm-6.4.1.tar.gz" + url = "https://github.com/ROCm/MIVisionX/archive/rocm-6.4.3.tar.gz" maintainers("srekolam", "renjithravindrankannath", "afzpatel") - tags = ["rocm"] - - def url_for_version(self, version): - if version == Version("1.7"): - return "https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/1.7.tar.gz" + libraries = ["libopenvx", "libvxu"] - url = "https://github.com/ROCm/MIVisionX/archive/rocm-{0}.tar.gz" - return url.format(version) + tags = ["rocm"] license("MIT") - + version("7.2.3", sha256="91d0cccdd5d9590dabfdfd60e4e5704359594c392d7bc6bcfb2ff2a7321269cf") + version("7.2.1", sha256="cedcb0bcbbe6b8636a36cac0ec3bf9e80da9e24653a8602b6e4f4f3d4d3caff2") + version("7.2.0", sha256="188dc225d0813f172521e5a2129af5d917ab9e6616488520c0ef27468cc6d89b") + version("7.1.1", sha256="7a7bd6ccb67e2b858526667decea938cc80c72d6279e7f6d9f3c0bb89ef823d7") + version("7.1.0", sha256="2fba3aeb970df06f95d465cc2dd5ba5096ec47966e26f2a4544a719e78d43e37") + version("7.0.2", sha256="ae4f230890f0ddaf0be5ea9a891843312e44c86bd8697c7e663cea142722c4de") + version("7.0.0", sha256="31a963625e6ab6a85c371c189f265f304d7c75c573189d09882e5b2e7ca131ec") + version("6.4.3", sha256="a489623d757d8e9825eb7eef7d799f33c84810ba053ee99106bad5f97058ab15") + version("6.4.2", sha256="efdde57dc1c48936f371c3c548f36040bfce74d835cf1f9816076dfa601ce29e") version("6.4.1", sha256="9f1a1a33dc2770ac014e5ea019ebde6cadcca017840753b9cb8cf1598d2d83c8") version("6.4.0", sha256="de3902ad2402bf29e4f53617ec10d34188b0c67547fc290390ff0c8ac4ad505a") version("6.3.3", sha256="6ab255305b786c6152ffe12211f329d2bc56823bb2192a945b9aa5efe6731b82") @@ -44,9 +48,15 @@ def url_for_version(self, version): version("6.0.0", sha256="01324a12f21ea0e29a4d7d7c60498ba9231723569fedcdd90f28ddffb5e0570e") version("5.7.1", sha256="bfc074bc32ebe84c72149ee6abb30b5b6499023d5b98269232de82e35d0505a8") version("5.7.0", sha256="07e4ec8a8c06a9a8bb6394a043c9c3e7176acd3b462a16de91ef9518a64df9ba") - with default_args(deprecated=True): - version("5.6.1", sha256="b2ff95c1488e244f379482631dae4f9ab92d94a513d180e03607aa1e184b5b0a") - version("5.6.0", sha256="34c184e202b1a6da2398b66e33c384d5bafd8f8291089c18539715c5cb73eb1f") + + amdgpu_targets = ROCmPackage.amdgpu_targets + + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) # Adding variant HIP which HIP as default. @@ -63,12 +73,6 @@ def url_for_version(self, version): patch("0002-add-half-include-path-for-tests-6.1.0.patch", when="@6.1 +add_tests") patch("0002-add-half-include-path-for-tests-6.2.0.patch", when="@6.2.0: +add_tests") - patch( - "https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/commit/da24882438b91a0ae1feee23206b75c1a1256887.patch?full_index=1", - sha256="41caff199224f904ef5dc2cd9c5602d6cfa41eba6af0fcc782942a09dd202ab4", - when="@5.6", - ) - def patch(self): filter_file( r"${ROCM_PATH}/include/miopen/config.h", @@ -166,8 +170,8 @@ def patch(self): depends_on("cxx", type="build") # generated depends_on("cmake@3.5:", type="build") - depends_on("ffmpeg@4.4", type="build") - depends_on("protobuf@:3", type="build") + depends_on("ffmpeg@4.4:", type="build") + depends_on("protobuf@3.12.4:", type="build") depends_on( "opencv@4.5:" "+calib3d+features2d+highgui+imgcodecs+imgproc" @@ -176,7 +180,6 @@ def patch(self): ) depends_on("openssl") depends_on("libjpeg-turbo@2.0.6+partial_decoder", type="build", when="@:6.2.0") - depends_on("rpp@1.2.0", when="@:5.6") depends_on("lmdb") depends_on("py-setuptools") depends_on("py-wheel") @@ -189,12 +192,6 @@ def patch(self): depends_on("rapidjson", when="@5.7:") with when("+hip"): - for ver in ["5.6.0", "5.6.1"]: - depends_on(f"migraphx@{ver}", when=f"@{ver}") - depends_on(f"hip@{ver}", when=f"@{ver}") - depends_on(f"miopen-hip@{ver}", when=f"@{ver}") - depends_on(f"rocm-core@{ver}", when=f"@{ver}") - depends_on("python@3.5:", type="build") for ver in [ "5.7.0", "5.7.1", @@ -212,17 +209,33 @@ def patch(self): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocm-core@{ver}", when=f"@{ver}") depends_on(f"hip@{ver}", when=f"@{ver}") - depends_on(f"migraphx@{ver}", when=f"@{ver}") - depends_on(f"miopen-hip@{ver}", when=f"@{ver}") - depends_on("python@3.5:", type="build") + for tgt in ROCmPackage.amdgpu_targets: + depends_on( + f"migraphx@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}" + ) + depends_on( + f"miopen-hip@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}" + ) depends_on(f"rpp@{ver}", when=f"@{ver}") + depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") + depends_on(f"hsa-rocr-dev@{ver}", when=f"@{ver}") + depends_on("python@3.5:", type="build") def setup_run_environment(self, env: EnvironmentModifications) -> None: env.set("MIVISIONX_MODEL_COMPILER_PATH", self.spec.prefix.libexec.mivisionx.model_compiler) - if self.spec.satisfies("@6.1:"): + if self.spec.satisfies("@6.1:") and not self.spec.external: env.prepend_path("LD_LIBRARY_PATH", self.spec["hsa-rocr-dev"].prefix.lib) def setup_build_environment(self, env: EnvironmentModifications) -> None: @@ -265,6 +278,8 @@ def cmake_args(self): "TurboJpeg_LIBRARIES_DIRS", "{0}/lib64".format(spec["libjpeg-turbo"].prefix) ) ) + if "auto" not in self.spec.variants["amdgpu_target"]: + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) return args @run_after("install") diff --git a/repos/spack_repo/builtin/packages/mkfontdir/package.py b/repos/spack_repo/builtin/packages/mkfontdir/package.py index d1e96cac61c..fd813ad4bf9 100644 --- a/repos/spack_repo/builtin/packages/mkfontdir/package.py +++ b/repos/spack_repo/builtin/packages/mkfontdir/package.py @@ -18,7 +18,9 @@ class Mkfontdir(AutotoolsPackage, XorgPackage): version("1.0.7", sha256="bccc5fb7af1b614eabe4a22766758c87bfc36d66191d08c19d2fa97674b7b5b7") - depends_on("mkfontscale", type="run") + depends_on("c", type="build") depends_on("pkgconfig", type="build") depends_on("util-macros", type="build") + + depends_on("mkfontscale", type="run") diff --git a/repos/spack_repo/builtin/packages/mlhka/package.py b/repos/spack_repo/builtin/packages/mlhka/package.py index 4418524c20c..213416ae83f 100644 --- a/repos/spack_repo/builtin/packages/mlhka/package.py +++ b/repos/spack_repo/builtin/packages/mlhka/package.py @@ -21,7 +21,7 @@ class Mlhka(Package): depends_on("cxx", type="build") # generated def install(self, spec, prefix): - cxx = which("c++") + cxx = which("c++", required=True) cxx("MLHKA_version{0}.cpp".format(self.version), "-o", "MLHKA") mkdirp(prefix.bin) install("MLHKA", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/mlpack/package.py b/repos/spack_repo/builtin/packages/mlpack/package.py index 21e08353b11..cdd1aff367e 100644 --- a/repos/spack_repo/builtin/packages/mlpack/package.py +++ b/repos/spack_repo/builtin/packages/mlpack/package.py @@ -21,6 +21,7 @@ class Mlpack(CMakePackage): license("BSD-3-Clause", checked_by="wdconinc") + version("4.6.2", sha256="2fe772da383a935645ced07a07b51942ca178d38129df3bf685890bc3c1752cf") version("4.5.1", sha256="58059b911a78b8bda91eef4cfc6278383b24e71865263c2e0569cf5faa59dda3") version("4.5.0", sha256="aab70aee10c134ef3fe568843fe4b3bb5e8901af30ea666f57462ad950682317") version("4.4.0", sha256="61c604026d05af26c244b0e47024698bbf150dfcc9d77b64057941d7d64d6cf6") diff --git a/repos/spack_repo/builtin/packages/mmg/package.py b/repos/spack_repo/builtin/packages/mmg/package.py index 1eab4312f6c..8e5015c94b4 100644 --- a/repos/spack_repo/builtin/packages/mmg/package.py +++ b/repos/spack_repo/builtin/packages/mmg/package.py @@ -84,6 +84,6 @@ def cmake_args(self): @run_after("install") def install_source(self): prefix = self.spec.prefix - cp = which("cp") + cp = which("cp", required=True) cp("-r", os.path.join(self.stage.source_path, "src"), prefix) cp("-r", os.path.join(self.build_directory, "src"), prefix) diff --git a/repos/spack_repo/builtin/packages/mmseqs2/package.py b/repos/spack_repo/builtin/packages/mmseqs2/package.py index 9de1aa6f8ea..8d16e92c055 100644 --- a/repos/spack_repo/builtin/packages/mmseqs2/package.py +++ b/repos/spack_repo/builtin/packages/mmseqs2/package.py @@ -4,11 +4,12 @@ from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage from spack.package import * -class Mmseqs2(CMakePackage): +class Mmseqs2(CMakePackage, CudaPackage): """MMseqs2 (Many-against-Many sequence searching) is a software suite to search and cluster huge protein and nucleotide sequence sets""" @@ -17,6 +18,9 @@ class Mmseqs2(CMakePackage): license("GPL-3.0-only") + version("18-8cc5c", sha256="3541b67322aee357fd9ca529750d36cb1426aa9bcd1efb2dc916e35219e1a41c") + version("17-b804f", sha256="300ebd14bf4e007b339037e5f73d8ff9c4e34f8495204c4a8c59c7672b689db2") + version("16-747c6", sha256="faeb6841feb8e028651c2391de1346c55c2091a96520b625525d27b99d07ef1d") version("15-6f452", sha256="7115ac5a7e2a49229466806aaa760d00204bb08c870e3c231b00e525c77531dc") version("14-7e284", sha256="a15fd59b121073fdcc8b259fc703e5ce4c671d2c56eb5c027749f4bd4c28dfe1") version("13-45111", sha256="6444bb682ebf5ced54b2eda7a301fa3e933c2a28b7661f96ef5bdab1d53695a2") @@ -29,6 +33,15 @@ class Mmseqs2(CMakePackage): depends_on("zstd") depends_on("mpi", when="+mpi") + depends_on("cuda", when="@16: +cuda") + + conflicts("@:15 +cuda") + conflicts("cuda_arch=none", when="+cuda", msg="CUDA architecture is required") + conflicts( + "cmake@3.14:,:4", + when="@18-8cc5c", + msg="CMake >=3.15 and <4 is required to compile MMseqs2", + ) # patch to support building with gcc@13: patch( @@ -51,4 +64,9 @@ def cmake_args(self): args.append("-DREQUIRE_OPENMP=0") if "~mpi" in spec: args.append("-DHAVE_MPI=0") + if spec.satisfies("+cuda"): + cuda_arch = spec.variants["cuda_arch"].value + args.append("-DENABLE_CUDA=1") + args.append("-DCMAKE_CUDA_ARCHITECTURES={0}".format(";".join(cuda_arch))) + return args diff --git a/repos/spack_repo/builtin/packages/mmv/package.py b/repos/spack_repo/builtin/packages/mmv/package.py index f610a714371..0889f83d623 100644 --- a/repos/spack_repo/builtin/packages/mmv/package.py +++ b/repos/spack_repo/builtin/packages/mmv/package.py @@ -2,8 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import os - from spack_repo.builtin.build_systems.makefile import MakefilePackage from spack.package import * @@ -38,11 +36,11 @@ def build(self, spec, prefix): def install(self, spec, prefix): mkdirp(prefix.bin) install("mmv", prefix.bin) - os.symlink(join_path(prefix.bin, "mmv"), "mad") - os.symlink(join_path(prefix.bin, "mmv"), "mcp") - os.symlink(join_path(prefix.bin, "mmv"), "mln") + symlink(join_path(prefix.bin, "mmv"), "mad") + symlink(join_path(prefix.bin, "mmv"), "mcp") + symlink(join_path(prefix.bin, "mmv"), "mln") mkdirp(prefix.man1) install("mmv.1", prefix.man1) - os.symlink(join_path(prefix.man1, "mmv.1"), "mad.1") - os.symlink(join_path(prefix.man1, "mmv.1"), "mcp.1") - os.symlink(join_path(prefix.man1, "mmv.1"), "mln.1") + symlink(join_path(prefix.man1, "mmv.1"), "mad.1") + symlink(join_path(prefix.man1, "mmv.1"), "mcp.1") + symlink(join_path(prefix.man1, "mmv.1"), "mln.1") diff --git a/repos/spack_repo/builtin/packages/moab/package.py b/repos/spack_repo/builtin/packages/moab/package.py index e62bc3c8c4c..156d738ce51 100644 --- a/repos/spack_repo/builtin/packages/moab/package.py +++ b/repos/spack_repo/builtin/packages/moab/package.py @@ -19,14 +19,15 @@ class Moab(AutotoolsPackage): homepage = "https://sigma.mcs.anl.gov/moab-library" git = "https://bitbucket.org/fathomteam/moab.git" - url = "https://web.cels.anl.gov/projects/sigma/downloads/moab/moab-5.5.1.tar.gz" + url = "https://web.cels.anl.gov/projects/sigma/downloads/moab/moab-5.6.0.tar.gz" - maintainers("vijaysm", "iulian787") + maintainers("vijaysm", "iulian787", "xylar", "andrewdnolan") license("LGPL-3.0-only") version("develop", branch="develop") version("master", branch="master") + version("5.6.0", sha256="8d24a38619eb9fd326c7bdf9fdb01466149a0ab7dc3ef1caffda728858bf5a85") version("5.5.1", sha256="67b6ed3a13c235cec16f60f8f46f9bf0371fd321cf36dea113d0e09f09d0d438") version("5.5.0", sha256="58969f8a1b209ec9036c08c53a6b7078b368eb3bf99d0368a4de5a2f2a8db678") version("5.4.1", sha256="3625e25321bf37f88d98438f5d56c280b2774172602d8b6eb6c34eedf37686fc") @@ -55,6 +56,9 @@ class Moab(AutotoolsPackage): variant("fbigeom", default=False, description="Enable FBiGeom interface") variant("coupler", default=False, description="Enable mbcoupler tool") variant("dagmc", default=False, description="Enable DagMC tool") + variant( + "tempest", default=False, when="@5.1: +hdf5 +netcdf", description="Enable mbtempest tool" + ) variant("debug", default=False, description="Enable debug symbols in libraries") variant("shared", default=False, description="Enables the build of shared libraries") @@ -94,6 +98,15 @@ class Moab(AutotoolsPackage): depends_on("eigen", when="+eigen") # FIXME it seems that zoltan needs to be built without fortran depends_on("zoltan~fortran", when="+zoltan") + with when("+tempest"): + depends_on("tempestremap@2.2", when="@5.5:") + depends_on("tempestremap@2.1.6", when="@5.4") + depends_on("tempestremap@2.1.1", when="@5.3.1") + depends_on("tempestremap@2.1.0", when="@5.3.0") + depends_on("tempestremap@2.0.5", when="@5.2.1") + depends_on("tempestremap@2.0.3", when="@5.2.0") + depends_on("tempestremap@2.0.2", when="@5.1.0") + depends_on("eigen") patch("tools-492.patch", when="@4.9.2") @@ -208,6 +221,13 @@ def configure_args(self): else: options.append("--enable-fortran") + if spec.satisfies("+tempest"): + options.append("--with-tempestremap={}".format(spec["tempestremap"].prefix)) + options.append("--with-eigen3={}/include/eigen3".format(spec["eigen"].prefix)) + else: + options.append("--without-tempestremap") + options.append("--without-eigen3") + return options # Run the install phase in parallel diff --git a/repos/spack_repo/builtin/packages/mochi_margo/package.py b/repos/spack_repo/builtin/packages/mochi_margo/package.py index 6637f203398..8aaa6166a52 100644 --- a/repos/spack_repo/builtin/packages/mochi_margo/package.py +++ b/repos/spack_repo/builtin/packages/mochi_margo/package.py @@ -2,12 +2,13 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.build_systems import autotools, cmake +from spack import * from spack.package import * -class MochiMargo(AutotoolsPackage): +class MochiMargo(cmake.CMakePackage, autotools.AutotoolsPackage): """A library that provides Argobots bindings to the Mercury RPC implementation.""" @@ -17,7 +18,21 @@ class MochiMargo(AutotoolsPackage): maintainers("carns", "mdorier", "fbudin69500") + build_system( + conditional("cmake", when="@0.22.0:"), + conditional("autotools", when="@:0.21.0"), + default="cmake", + ) + version("main", branch="main") + version("0.23.1", sha256="6db0b11094836e4107e44ed23c94c4c9b4ede21d4d35e425a3d7e40e59437293") + version("0.23.0", sha256="7c39df5e09da67745ad4df8de81c30c1d9562d8a5ce7f35278bc9c38f2e7dc03") + version("0.22.1", sha256="4f619e48ec64e5250c45e79095e2687cd5d04008731b0fb3d90264b892bfd017") + version("0.22.0", sha256="65d9170e517779beea7ce6f251271602bbee98cc434312336d0dcc8496ffed58") + version("0.21.0", sha256="d0a527cd0dcbeb9a8f04d090140cdedb66d9a90c6794a046d48d6bc2d11fc278") + version("0.20.0", sha256="ed19f65c3c0dda42b285904f64508d1997f4b0fcef81cddb011aa9c42381eb2a") + version("0.19.2", sha256="cfd20117744631779f0e99a0bc0668a1ca4d6d3c89fce5e9926961f830491689") + version("0.19.1", sha256="77422156be5d1e24b16f6d65109ada29a2276c9d6fdd9a5392c23f1fbe370b98") version("0.19.0", sha256="269e3b52228fb59a8ab502b8fac4761fc15440817455bb006f311093bd4c02f3") version("0.18.3", sha256="4871af11d3cadc81e6f08a2112782c61324d9cdabc9e9b61c595c95da6d75127") version("0.18.2", sha256="a3a9fde826954be06b9123887533f91e6725faf6f6c682c080b97c2172a22057") @@ -67,24 +82,44 @@ class MochiMargo(AutotoolsPackage): version("0.4.3", sha256="61a634d6983bee2ffa06e1e2da4c541cb8f56ddd9dd9f8e04e8044fb38657475") version("0.4.2", sha256="91085e28f50e373b9616e1ae5c3c8d40a19a7d3776259592d8f361766890bcaa") - depends_on("c", type="build") # generated + variant( + "hwloc", + default=True, + when="@0.21:", + description="Use hwloc to help select network cards when possible", + ) + + depends_on("c", type="build") + depends_on("cxx", type="build") + + with when("build_system=autotools"): + depends_on("autoconf@2.65:", type=("build")) + depends_on("m4", type=("build")) + depends_on("automake", type=("build")) + depends_on("libtool", type=("build")) + + with when("build_system=cmake"): + depends_on("cmake@3.12:", type=("build")) depends_on("json-c", when="@0.9:") - depends_on("autoconf@2.65:", type=("build")) - depends_on("m4", type=("build")) - depends_on("automake", type=("build")) - depends_on("libtool", type=("build")) depends_on("pkgconfig", type=("build")) depends_on("argobots@1.0:") depends_on("argobots@1.1:", when="@0.11:") + depends_on("argobots@1.2:", when="@0.21.0:") # "breadcrumb" support not available in mercury-1.0 depends_on("mercury@1.0.0:", type=("build", "link", "run"), when="@:0.5.1") depends_on("mercury@2.0.0:", type=("build", "link", "run"), when="@0.5.2:") + depends_on("hwloc", when="+hwloc") + depends_on("libfabric", when="+hwloc") # Fix pthread detection # https://github.com/mochi-hpc/mochi-margo/pull/177 patch("mochi-margo-pthreads.patch", when="@0.9:0.9.7") + def cmake_args(self): + args = [self.define_from_variant("ENABLE_PLUMBER", "hwloc")] + return args + def autoreconf(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("./prepare.sh") diff --git a/repos/spack_repo/builtin/packages/mochi_thallium/package.py b/repos/spack_repo/builtin/packages/mochi_thallium/package.py index 454648cc4f3..5f2ab50e262 100644 --- a/repos/spack_repo/builtin/packages/mochi_thallium/package.py +++ b/repos/spack_repo/builtin/packages/mochi_thallium/package.py @@ -17,6 +17,11 @@ class MochiThallium(CMakePackage): maintainers("mdorier") version("main", branch="main") + version("0.17.0", sha256="ed65ef967e9e6c2ac58852e6d59a7339b9b8d25bbb32b4e775cd84ddea466564") + version("0.16.1", sha256="c7753e14f6de19d6fc35abc507d39f4a4f885d76326e5c368a48a13bab452cb8") + version("0.16.0", sha256="9c519a082a980a69d4cc37a930dcfffa01613aceec157646c81b98a77da84689") + version("0.15.2", sha256="15b8e1619ab66b55e4a1e16d126e37e3103b62580244b370edcad66992ffd14c") + version("0.15.1", sha256="aca135efd5f870d7f1ba34a869239f9256efaa776b4706a45d2c28ca9ca27951") version("0.15.0", sha256="a7872e926e97fdf80a67c8e44f1217a959c689763dbcf9712abd913d1ef23bdf") version("0.14.6", sha256="dfdd39fc840a82a69c1698e764239e8aa0a5573f677a52fb2bdd6bffd529a232") version("0.14.5", sha256="8a13f1adb6a549053f56b46235ea81ed9c047cd702b8980035fc81be3ea942e3") @@ -67,7 +72,8 @@ class MochiThallium(CMakePackage): ) conflicts("~cereal", when="@0.14.0:", msg="Thallium 0.14.0 and above requires Cereal") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("pkgconfig", type=("build")) depends_on("mochi-margo@0.18.0:", when="@0.14.0:") diff --git a/repos/spack_repo/builtin/packages/model_angelo/package.py b/repos/spack_repo/builtin/packages/model_angelo/package.py new file mode 100644 index 00000000000..3b0f92710b1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/model_angelo/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 ModelAngelo(PythonPackage): + """ModelAngelo is an automatic atomic model building program for cryo-EM maps.""" + + homepage = "https://github.com/3dem/model-angelo" + + url = "https://github.com/3dem/model-angelo" + git = "https://github.com/3dem/model-angelo.git" + + license("MIT", checked_by="snehring") + + version("20250218", commit="ddd969038045c28c5f281353dd62e98afb57859c") + + depends_on("py-setuptools", type="build") + + depends_on("py-tqdm", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + depends_on("py-biopython@1.81:", type=("build", "run")) + depends_on("py-einops", type=("build", "run")) + depends_on("py-matplotlib", type=("build", "run")) + depends_on("py-mrcfile", type=("build", "run")) + depends_on("py-pandas", type=("build", "run")) + depends_on("py-fair-esm@1.0.3", type=("build", "run")) + depends_on("py-pyhmmer@0.7.1", type=("build", "run")) + depends_on("py-loguru", type=("build", "run")) + depends_on("py-numpy@1.24.4:1", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/mojitos/package.py b/repos/spack_repo/builtin/packages/mojitos/package.py new file mode 100644 index 00000000000..806ecfb0e3a --- /dev/null +++ b/repos/spack_repo/builtin/packages/mojitos/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.generic import Package + +from spack.package import * + + +class Mojitos(Package): + """MojitO/S is an Open Source System, Energy and + Network Monitoring Tools at the O/S level. + MojitO/S runs on GNU/Linux""" + + homepage = "https://gitlab.irit.fr/sepia-pub/mojitos" + git = "https://gitlab.irit.fr/sepia-pub/mojitos.git" + url = "https://gitlab.irit.fr/sepia-pub/mojitos/-/archive/v2.0.2/mojitos-v2.0.2.tar.gz?ref_type=tags" + maintainers("georges-da-costa") + license("GPL-3.0-or-later", checked_by="georges-da-costa") + + version("2.0.2", sha256="3213353199a7d42f0e75a5c2d8680782f6e646147d10d0c7a10f700707b87d82") + + depends_on("c", type="build") + depends_on("gmake", type="build") + depends_on("libmicrohttpd") + + def install(self, spec, prefix): + configure = Executable("./configure") + configure(f"--prefix={prefix}") + + make() + + make("install") diff --git a/repos/spack_repo/builtin/packages/mold/package.py b/repos/spack_repo/builtin/packages/mold/package.py index d597533d6ba..5896d6d6559 100644 --- a/repos/spack_repo/builtin/packages/mold/package.py +++ b/repos/spack_repo/builtin/packages/mold/package.py @@ -17,6 +17,10 @@ class Mold(CMakePackage): license("MIT") + version("2.41.0", sha256="0a61abac85d818437b425df856822e9d6e9982baeae5a93bcb02fe6c0060c61a") + version("2.40.4", sha256="69414c702ec1084e1fa8ca16da24f167f549e5e11e9ecd5d70a8dcda6f08c249") + version("2.40.3", sha256="308c10f480d355b9f9ef8bb414dfb5f4842bee87eb96b6a7666942f4036a0223") + version("2.40.2", sha256="28c7976c39e53ee440217b6b9f036a8cf13e3b2f93e8da83e19c66f4fc9a774c") version("2.40.1", sha256="d1ce09a69941f8158604c3edcc96c7178231e7dba2da66b20f5ef6e112c443b7") version("2.40.0", sha256="ee93ef0868cd54d1f30dfba1070dbacf04c1a35428bbea307a4b9242a883ad20") version("2.39.1", sha256="231ea3643a14fe5b88478c97b68b31f7c975b57b247a81356ffd889d015b5cc1") 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 9f7db54be46..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") @@ -36,11 +37,6 @@ class MongoCDriver(AutotoolsPackage, CMakePackage): version("1.7.0", sha256="48a0dbd44fef2124b51cf501f06be269b1a39452303b880b37473a6030c6e023") version("1.6.3", sha256="82df03de117a3ccf563b9eccfd2e5365df8f215a36dea7446d439969033ced7b") version("1.6.2", sha256="7ec27e9be4da2bf9e4b316374f8c29f816f0a0f019b984411777e9681e17f70e") - version( - "1.6.1", - sha256="1bdfb27944c6da8e56da209a5d56efac70df1f8c4ca4498b46f75bf3f9360898", - deprecated=True, - ) variant("ssl", default=True, description="Enable SSL support.") variant("snappy", default=True, description="Enable Snappy support.") @@ -53,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") @@ -71,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/mongodb/package.py b/repos/spack_repo/builtin/packages/mongodb/package.py deleted file mode 100644 index 962036a72dd..00000000000 --- a/repos/spack_repo/builtin/packages/mongodb/package.py +++ /dev/null @@ -1,124 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) -# ---------------------------------------------------------------------------- -import os - -from spack_repo.builtin.build_systems.scons import SConsPackage - -from spack.package import * - - -class Mongodb(SConsPackage): - """MongoDB is a source-available cross-platform document-oriented database - program. Classified as a NoSQL database program, MongoDB uses JSON-like - documents with optional schemas.""" - - homepage = "https://www.mongodb.com/" - - maintainers("DaxLynch") - - license("SSPL-1.0") - - version("6.2", git="https://github.com/mongodb/mongo.git", branch="v6.2") - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - requires( - "%gcc", "%clang", policy="one_of", msg=" builds only with GCC or Clang" - ) - depends_on("xz") - depends_on("curl") - depends_on("py-cryptography@36.0.1") - depends_on("py-requirements-parser") - depends_on("py-psutil@:5.8") - depends_on("py-pymongo@3.9:4.0") - depends_on("py-pyyaml@3:6") - depends_on("py-requests@2.0.0:2.26.0") - depends_on("py-typing-extensions@3.7.4:") - - depends_on("py-cheetah3@:3.2.6") - depends_on("py-packaging@:21.3") - depends_on("py-regex@:2021.11.10") - depends_on("py-setuptools") - depends_on("ninja@1.10.0") - - depends_on("py-distro@1.5.0") - depends_on("py-gitpython@3.1.7") - depends_on("py-pydantic@1.8.2") - depends_on("py-dnspython") - - def build(self, spec, prefix): - pass # This specific scons only uses the install phase - - def install(self, spec, prefix): - library_dirs = [] - include_dirs = [] - # Sometimes scons does not detect curl or ninja, so these arrays - # get the include and lib directories and then are explicitly - # passed it to scons - - # Scons fails to find the the python packages, even when linking - # with them with -I package-prefix/lib/python3.10/site_packages/ - # (this is one of the options for scons). To work around this, I - # symlink package-prefix/lib/python3.X/site_packages/package/ to - # python-prefix/lib/python3.X/site_package/package/ I then - # remove these after the install. - python_prefix_lib = self.spec["python"].prefix.lib # python-prefix/lib - lib_contents = os.scandir(python_prefix_lib) - python_version = "" - python_site_packages = "" - for entry in lib_contents: - if entry.is_dir() and entry.name.startswith("python3"): - # this gets the path python-prefix/lib/python3.X - python_version = entry.name - # sets the version as python3.X - python_site_packages = os.path.join(entry.path, "site-packages") - # python-prefix/lib/python3.X/site-packages - - for dep in spec.dependencies(deptype="link"): # iterate through the dependencies - query = self.spec[dep.name] - lib = query.prefix.lib - if dep.name in ["curl", "ninja", "xz"]: - # For the non python packages, we just extract the - # package-prefix/lib and package-prefix/include - try: - library_dirs.extend(query.libs.directories) - include_dirs.extend(query.headers.directories) - except Exception: - pass - else: - dependency_site_packages = os.path.join(lib, python_version, "site-packages") - # package-prefix/lib/python3.X/site-packages - for entry in os.scandir(dependency_site_packages): - # iterates through files in site-packages - try: - os.symlink(entry.path, os.path.join(python_site_packages, entry.name)) - except Exception: - pass - - # PYTHONDIRS="-I" + " -I".join(os.environ["PYTHONPATH"].split(":")) - # ^This is an attempt to pass the python directories directly to scons. - # Just add PYTHONDIRS as an argument to scons. It sadly does not work :( - # but feel free to try it.To get more information on the options for scons, - # do spack load scons, and then scons --help in the mongodb repo - LINKFLAGS = "-L" + " -L".join(library_dirs) - CXXFLAGS = "-I" + " -I".join(include_dirs) - scons( - "DESTDIR=%s" % prefix, - "install-mongod", - "--disable-warnings-as-errors", - "MONGO_VERSION=6.2.0", - "CC=%s" % self.compiler.cc, - "CXX=%s" % self.compiler.cxx, - "CCFLAGS=%s" % CXXFLAGS + " " + LINKFLAGS, - "LINKFLAGS=%s" % LINKFLAGS, - ) - - prefix_lib_python_site_package = os.scandir( - os.path.join(python_prefix_lib, python_version, "site-packages") - ) # python-prefix/lib/python3.X/site-packages - for entry in prefix_lib_python_site_package: # remove symlinks after install - if entry.is_symlink(): - os.unlink(entry.path) diff --git a/repos/spack_repo/builtin/packages/motif/package.py b/repos/spack_repo/builtin/packages/motif/package.py index 63bf38b3f97..c614ff4fde6 100644 --- a/repos/spack_repo/builtin/packages/motif/package.py +++ b/repos/spack_repo/builtin/packages/motif/package.py @@ -56,6 +56,6 @@ def patch(self): ) def autoreconf(self, spec, prefix): - autoreconf = which("autoreconf") + autoreconf = which("autoreconf", required=True) with working_dir(self.configure_directory): autoreconf("-ivf") diff --git a/repos/spack_repo/builtin/packages/motioncor2/package.py b/repos/spack_repo/builtin/packages/motioncor2/package.py index cbda985225f..a2a65bee7f8 100644 --- a/repos/spack_repo/builtin/packages/motioncor2/package.py +++ b/repos/spack_repo/builtin/packages/motioncor2/package.py @@ -24,25 +24,6 @@ class Motioncor2(Package): version("1.6.4", sha256="28bb3e6477abf34fe41a78bcb9da9d77d08e2e89ecd41240fab085a308e6c498") version("1.4.7", sha256="8c33969b10916835b55f14f3c370f67ebe5c4b2a9df9ec487c5251710f038e6b") - # None of the below are available for download - version( - "1.1.0", - sha256="6e37e7ed63a9f0aab5d794b2604d5ba79333960bb9440a1a218630b03dbeaeac", - deprecated=True, - ) - version( - "1.0.5", - sha256="4efa55af25644bcff1ca7882419267b8c094c9cc6155b37d2c204b154c56f5a8", - url="http://msg.ucsf.edu/MotionCor2/MotionCor2-1.0.5.tar.gz", - deprecated=True, - ) - version( - "1.0.4", - sha256="c75738160ac18d3f27c33677e78e63313d8ec2b023b5a46173428c3fa0451a94", - url="http://msg.ucsf.edu/MotionCor2/MotionCor2-1.0.4.tar.gz", - deprecated=True, - ) - depends_on("patchelf", type="build") depends_on("cuda@10.2,11.1:11.8,12.1", type="run") @@ -62,7 +43,7 @@ def install(self, spec, prefix): @run_after("install") def ensure_rpaths(self): - patchelf = which("patchelf") + patchelf = which("patchelf", required=True) patchelf( "--set-rpath", self.spec["cuda"].prefix.lib64, join_path(self.prefix.bin, "MotionCor2") ) diff --git a/repos/spack_repo/builtin/packages/mount_point_attributes/package.py b/repos/spack_repo/builtin/packages/mount_point_attributes/package.py index 25cd5c44c82..1300bf0fe49 100644 --- a/repos/spack_repo/builtin/packages/mount_point_attributes/package.py +++ b/repos/spack_repo/builtin/packages/mount_point_attributes/package.py @@ -24,6 +24,7 @@ class MountPointAttributes(AutotoolsPackage): ) version("1.1", sha256="bff84c75c47b74ea09b6cff949dd699b185ddba0463cb1ff39ab138003c96e02") + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("autoconf", type="build", when="@master") diff --git a/repos/spack_repo/builtin/packages/mozjpeg/package.py b/repos/spack_repo/builtin/packages/mozjpeg/package.py index 615f972377a..455bff13662 100644 --- a/repos/spack_repo/builtin/packages/mozjpeg/package.py +++ b/repos/spack_repo/builtin/packages/mozjpeg/package.py @@ -13,12 +13,13 @@ class Mozjpeg(CMakePackage): smaller file sizes at the same time""" homepage = "https://github.com/mozilla/mozjpeg" - url = "https://github.com/mozilla/mozjpeg/archive/refs/tags/v4.1.1.tar.gz" + url = "https://github.com/mozilla/mozjpeg/archive/refs/tags/v4.1.5.tar.gz" maintainers("RemiLacroix-IDRIS") license("Zlib") + version("4.1.5", sha256="9fcbb7171f6ac383f5b391175d6fb3acde5e64c4c4727274eade84ed0998fcc1") version("4.1.1", sha256="66b1b8d6b55d263f35f27f55acaaa3234df2a401232de99b6d099e2bb0a9d196") provides("jpeg") diff --git a/repos/spack_repo/builtin/packages/mozjs/package.py b/repos/spack_repo/builtin/packages/mozjs/package.py new file mode 100644 index 00000000000..b2955209d45 --- /dev/null +++ b/repos/spack_repo/builtin/packages/mozjs/package.py @@ -0,0 +1,49 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Mozjs(AutotoolsPackage): + """SpiderMonkey is Mozilla’s JavaScript and WebAssembly Engine, used in Firefox, Servo and + various other projects. It is written in C++, Rust and JavaScript. You can embed it into C++ + and Rust projects, and it can be run as a stand-alone shell.""" + + homepage = "https://spidermonkey.dev/" + url = "https://ftp.mozilla.org/pub/firefox/releases/128.1.0esr/source/firefox-128.1.0esr.source.tar.xz" + + maintainers("KineticTheory") + + license("MPL-2.0") + + version("140.7.0", sha256="608a739071726f30236f7100ec5e30e1b8ec342d4e91e715948c287909cb1529") + version("140.3.1", sha256="0b43b3a1c4f40765d96eb2094d38838f5d01b7280ad8b9b0a17612bed9c36735") + version("128.1.0", sha256="ccdab622a395622abc6d80040a11715ad81a614f601db6672c05b98ac91fd9b5") + version("115.28.0", sha256="91b52505f91ec8bc1ba93afc50c59a845a5f6a57fac4967df04d54906a14181a") + + conflicts("platform=darwin", msg="Darwin is not currently supported.") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("curl", type="build") + depends_on("llvm", type="build") + depends_on("python@:3.13", type="build") + depends_on("py-pip", type="build") + depends_on("rust", type="build") + depends_on("cbindgen@0.27:", type="build", when="@140:") + depends_on("cbindgen", type="build") + depends_on("zlib-api") + + configure_directory = "js/src" + build_directory = "spack-build" + + def configure_args(self): + args = ["--disable-jemalloc", "--with-intl-api", "--enable-optimize"] + return args + + def url_for_version(self, version): + return f"https://ftp.mozilla.org/pub/firefox/releases/{version}esr/source/firefox-{version}esr.source.tar.xz" diff --git a/repos/spack_repo/builtin/packages/mpas_model/package.py b/repos/spack_repo/builtin/packages/mpas_model/package.py index 8e46c4bcdfd..d6272eaf0a8 100644 --- a/repos/spack_repo/builtin/packages/mpas_model/package.py +++ b/repos/spack_repo/builtin/packages/mpas_model/package.py @@ -64,6 +64,7 @@ class MpasModel(MakefilePackage): depends_on("fortran", type="build") # generated depends_on("mpi") + depends_on("metis", type="run") depends_on("parallelio") conflicts( diff --git a/repos/spack_repo/builtin/packages/mpb/package.py b/repos/spack_repo/builtin/packages/mpb/package.py index 3f0a01b8b7b..c81d905dff9 100644 --- a/repos/spack_repo/builtin/packages/mpb/package.py +++ b/repos/spack_repo/builtin/packages/mpb/package.py @@ -18,7 +18,8 @@ class Mpb(AutotoolsPackage): version("1.11.1", sha256="7311fc525214c1184cad3e0626b8540c0b53b3c31c28e61ce6ec2860088eca46") - depends_on("c", type="build") # generated + depends_on("c", type="build") + depends_on("fortran", type="build") depends_on("autoconf", type="build") depends_on("automake", type="build") @@ -30,6 +31,11 @@ class Mpb(AutotoolsPackage): depends_on("hdf5") depends_on("libctl") + def flag_handler(self, name, flags): + if name == "cflags" and self.spec.satisfies("%c=gcc@14:"): + flags.append("-Wno-int-conversion") + return inject_flags(name, flags) + def configure_args(self): spec = self.spec config_args = ["--enable-shared", "--enable-maintainer-mode"] 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 acb99e02b7f..0fc18ea9002 100644 --- a/repos/spack_repo/builtin/packages/mpfr/package.py +++ b/repos/spack_repo/builtin/packages/mpfr/package.py @@ -15,10 +15,11 @@ 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") + version("4.2.2", sha256="9ad62c7dc910303cd384ff8f1f4767a655124980bb6d8650fe62c815a231bb7b") version("4.2.1", sha256="b9df93635b20e4089c29623b19420c4ac848a1b29df1cfd59f26cab0d2666aa0") version("4.2.0", sha256="691db39178e36fc460c046591e4b0f2a52c8f2b3ee6d750cc2eab25f1eaa999d") version("4.1.1", sha256="85fdf11614cc08e3545386d6b9c8c9035e3db1e506211a45f4e108117fe3c951") @@ -32,19 +33,6 @@ class Mpfr(AutotoolsPackage, GNUMirrorPackage): version("3.1.3", sha256="f63bb459157cacd223caac545cb816bcdb5a0de28b809e7748b82e9eb89b0afd") version("3.1.2", sha256="79c73f60af010a30a5c27a955a1d2d01ba095b72537dab0ecaad57f5a7bb1b6b") - depends_on("c", type="build") # generated - - # mpir is a drop-in replacement for gmp - depends_on("gmp@4.1:") # 4.2.3 or higher is recommended - depends_on("gmp@5.0:", when="@4.0.0:") # https://www.mpfr.org/mpfr-4.0.0/ - - depends_on("autoconf", type="build") - depends_on("automake", type="build") - depends_on("libtool", type="build") - depends_on("m4", type="build") - depends_on("autoconf-archive", when="@4.0.0:", type="build") - depends_on("texinfo", when="@4.1.0:", type="build") - variant( "libs", default="shared,static", @@ -53,6 +41,17 @@ class Mpfr(AutotoolsPackage, GNUMirrorPackage): description="Build shared libs, static libs or both", ) + depends_on("c", type="build") + depends_on("autoconf", type="build") + depends_on("autoconf-archive", when="@4.0.0:", type="build") + depends_on("automake@1.13:", when="@4.0.0:", type="build") + depends_on("automake@1.11:", type="build") + depends_on("libtool", type="build") + depends_on("m4", type="build") + depends_on("texinfo", when="@4.1.0:", type="build") + depends_on("gmp@5.0:", when="@4.0.0:") + depends_on("gmp@4.1:") # 4.2.3 or higher is recommended + force_autoreconf = True # Check the Bugs section of old release pages for patches. diff --git a/repos/spack_repo/builtin/packages/mpi/package.py b/repos/spack_repo/builtin/packages/mpi/package.py index 7dfcd57ddff..b6d2794e862 100644 --- a/repos/spack_repo/builtin/packages/mpi/package.py +++ b/repos/spack_repo/builtin/packages/mpi/package.py @@ -21,8 +21,8 @@ def test_mpi_hello(self): filename = self.test_suite.current_test_data_dir.join("mpi_hello." + lang) compiler_var = "MPICC" if lang == "c" else "MPIF90" - compiler = which(os.environ[compiler_var]) - mpirun = which(self.prefix.bin.mpirun) + compiler = which(os.environ[compiler_var], required=True) + mpirun = which(self.prefix.bin.mpirun, required=True) exe_name = "mpi_hello_%s" % lang diff --git a/repos/spack_repo/builtin/packages/mpi_bash/mpibash-4.3.patch b/repos/spack_repo/builtin/packages/mpi_bash/mpibash-4.3.patch deleted file mode 100644 index 17e285b0bf0..00000000000 --- a/repos/spack_repo/builtin/packages/mpi_bash/mpibash-4.3.patch +++ /dev/null @@ -1,1565 +0,0 @@ -diff -Naur bash-4.3/builtins/circle.def mpibash-4.3/builtins/circle.def ---- bash-4.3/builtins/circle.def 1969-12-31 17:00:00.000000000 -0700 -+++ mpibash-4.3/builtins/circle.def 2014-05-13 11:27:37.314100671 -0600 -@@ -0,0 +1,620 @@ -+This file is circle.def, from which is created circle.c. -+It implements all of the "circle_*" builtins in Bash. -+ -+$PRODUCES circle.c -+ -+#include -+ -+#include -+#if defined (HAVE_UNISTD_H) -+# ifdef _MINIX -+# include -+# endif -+# include -+#endif -+ -+#include "../bashintl.h" -+#include "../shell.h" -+#include "common.h" -+#include "bashgetopt.h" -+#include -+ -+extern int running_trap, trap_saved_exit_value; -+ -+static int circle_rank; /* Rank in the Libcircle job */ -+static SHELL_VAR *create_func = NULL; /* User-defined callback function for CIRCLE_cb_create. */ -+static SHELL_VAR *process_func = NULL; /* User-defined callback function for CIRCLE_cb_process. */ -+static SHELL_VAR *reduce_init_func = NULL; /* User-defined callback function for CIRCLE_cb_reduce_init. */ -+static SHELL_VAR *reduce_fini_func = NULL; /* User-defined callback function for CIRCLE_cb_reduce_fini. */ -+static SHELL_VAR *reduce_op_func = NULL; /* User-defined callback function for CIRCLE_cb_reduce_op. */ -+static CIRCLE_handle *current_handle = NULL; /* Active handle within a callback or NULL if not within a callback */ -+static int within_reduction = 0; /* 1=within a reduction callback; 0=not */ -+ -+/* Return with a usage message if no arguments remain. */ -+#define YES_ARGS(LIST) \ -+ if ((LIST) == 0) \ -+ { \ -+ builtin_usage (); \ -+ return (EX_USAGE); \ -+ } -+ -+/* Perform the same operation as bind_variable, but with VALUE being a -+ * number, not a string. */ -+static SHELL_VAR * -+bind_variable_number (name, value, flags) -+ const char *name; -+ long value; -+ int flags; -+{ -+ char numstr[25]; /* String version of VALUE */ -+ -+ sprintf (numstr, "%ld", value); -+ return bind_variable (name, numstr, flags); -+} -+ -+/* Invoke the user-defined creation-callback function (create_func). */ -+static void -+internal_create_func (handle) -+ CIRCLE_handle *handle; -+{ -+ WORD_LIST *funcargs; -+ -+ if (create_func == NULL) -+ return; -+ current_handle = handle; -+ funcargs = make_word_list (make_word ("cb_create"), NULL); -+ execute_shell_function (create_func, funcargs); -+ dispose_words (funcargs); -+ current_handle = NULL; -+} -+ -+/* Invoke the user-defined process-callback function (process_func). */ -+static void -+internal_process_func (handle) -+ CIRCLE_handle *handle; -+{ -+ WORD_LIST *funcargs; -+ -+ if (process_func == NULL) -+ return; -+ current_handle = handle; -+ funcargs = make_word_list (make_word ("cb_process"), NULL); -+ execute_shell_function (process_func, funcargs); -+ dispose_words (funcargs); -+ current_handle = NULL; -+} -+ -+/* Invoke the user-defined reduction-initiation callback function -+ * (reduce_init_func). */ -+static void -+internal_reduce_init_func (void) -+{ -+ WORD_LIST *funcargs; -+ -+ if (reduce_init_func == NULL) -+ return; -+ within_reduction = 1; -+ funcargs = make_word_list (make_word ("cb_reduce_init"), NULL); -+ execute_shell_function (reduce_init_func, funcargs); -+ dispose_words (funcargs); -+ within_reduction = 0; -+} -+ -+/* Invoke the user-defined reduction callback function -+ * (reduce_op_func). */ -+static void -+internal_reduce_op_func (buf1, size1, buf2, size2) -+ const void* buf1; -+ size_t size1; -+ const void* buf2; -+ size_t size2; -+{ -+ WORD_LIST *funcargs; -+ -+ if (reduce_op_func == NULL) -+ return; -+ within_reduction = 1; -+ funcargs = make_word_list (make_word (buf2), NULL); -+ funcargs = make_word_list (make_word (buf1), funcargs); -+ funcargs = make_word_list (make_word ("cb_reduce_op"), funcargs); -+ execute_shell_function (reduce_op_func, funcargs); -+ dispose_words (funcargs); -+ within_reduction = 0; -+} -+ -+/* Invoke the user-defined reduction-finalization callback function -+ * (reduce_fini_func). */ -+static void -+internal_reduce_fini_func (buf, size) -+ const void* buf; -+ size_t size; -+{ -+ WORD_LIST *funcargs; -+ -+ if (reduce_fini_func == NULL) -+ return; -+ funcargs = make_word_list (make_word (buf), NULL); -+ funcargs = make_word_list (make_word ("cb_reduce_fini"), funcargs); -+ execute_shell_function (reduce_fini_func, funcargs); -+ dispose_words (funcargs); -+} -+ -+/* Look up a user-provided callback function. */ -+static int -+find_callback_function (list, user_func) -+ WORD_LIST *list; -+ SHELL_VAR **user_func; -+{ -+ char *funcname; /* Name of the user-defined function. */ -+ -+ /* If no argument was provided, nullify the callback function. */ -+ if (list == NULL) -+ { -+ *user_func = NULL; -+ return EXECUTION_SUCCESS; -+ } -+ -+ /* Get the callback function. */ -+ funcname = list->word->word; -+ list = list->next; -+ no_args (list); -+ *user_func = find_function (funcname); -+ if (*user_func == NULL) -+ { -+ builtin_error (_("function %s not found"), funcname); -+ return EXECUTION_FAILURE; -+ } -+ return EXECUTION_SUCCESS; -+} -+ -+/* Initialize Libcircle. */ -+void -+initialize_libcircle (argc, argv) -+ int argc; -+ char **argv; -+{ -+ circle_rank = CIRCLE_init (argc, argv, CIRCLE_DEFAULT_FLAGS); -+ bind_variable_number ("circle_rank", circle_rank, 0); -+ CIRCLE_enable_logging (CIRCLE_LOG_WARN); -+ CIRCLE_cb_create (internal_create_func); -+ CIRCLE_cb_process (internal_process_func); -+ CIRCLE_cb_reduce_init (internal_reduce_init_func); -+ CIRCLE_cb_reduce_op (internal_reduce_op_func); -+ CIRCLE_cb_reduce_fini (internal_reduce_fini_func); -+} -+ -+/* Finalize Libcircle. */ -+void -+finalize_libcircle (void) -+{ -+ CIRCLE_finalize (); -+} -+ -+/* ---------------------------------------------------------------------- */ -+ -+$BUILTIN circle_set_options -+$FUNCTION circle_set_options_builtin -+$SHORT_DOC circle_set_options [flag]... -+Change Libcircle's run-time behavior. -+ -+Arguments: -+ FLAG "split_random", "split_equal", or "create_global" -+ -+Multiple flags can be provided. If no flags are provided, Libcircle -+reverts to its default options. -+ -+Exit Status: -+Returns 0 unless an invalid option is given. -+$END -+/*'*/ -+ -+/* Here is the circle_set_options builtin. */ -+int -+circle_set_options_builtin (list) -+ WORD_LIST *list; -+{ -+ char *word; /* One argument */ -+ int flags = 0; /* Flags to pass to CIRCLE_set_options */ -+ -+ if (list == NULL) -+ flags = CIRCLE_DEFAULT_FLAGS; -+ else -+ while (list != NULL) -+ { -+ word = list->word->word; -+ if (!strcmp (word, "split_random")) -+ flags |= CIRCLE_SPLIT_RANDOM; -+ else if (!strcmp (word, "split_equal")) -+ flags |= CIRCLE_SPLIT_EQUAL; -+ else if (!strcmp (word, "create_global")) -+ flags |= CIRCLE_CREATE_GLOBAL; -+ else -+ { -+ builtin_error (_("invalid flag \"%s\""), word); -+ return (EXECUTION_FAILURE); -+ } -+ list = list->next; -+ } -+ CIRCLE_set_options (flags); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_cb_create -+$FUNCTION circle_cb_create_builtin -+$SHORT_DOC circle_cb_create [func] -+Register a function that will create work when asked. -+ -+Arguments: -+ FUNC User-defined callback function that will invoke -+ circle_enqueue when called -+ -+If FUNC is omitted, no function will be associated with work creation. -+This can be used to nullify a previous circle_cb_create invocation. -+ -+Exit Status: -+Returns 0 unless an invalid function is given or an error occurs. -+$END -+ -+/* Here is the circle_cb_create builtin. */ -+int -+circle_cb_create_builtin (list) -+ WORD_LIST *list; -+{ -+ return find_callback_function (list, &create_func); -+} -+ -+$BUILTIN circle_cb_process -+$FUNCTION circle_cb_process_builtin -+$SHORT_DOC circle_cb_process [func] -+Register a function that will process work when asked. -+ -+Arguments: -+ FUNC User-defined callback function that will invoke -+ circle_enqueue when called -+ -+If FUNC is omitted, no function will be associated with work processing. -+This can be used to nullify a previous circle_cb_process invocation. -+ -+Exit Status: -+Returns 0 unless an invalid function is given or an error occurs. -+$END -+ -+/* Here is the circle_cb_process builtin. */ -+int -+circle_cb_process_builtin (list) -+ WORD_LIST *list; -+{ -+ return find_callback_function (list, &process_func); -+} -+ -+$BUILTIN circle_begin -+$FUNCTION circle_begin_builtin -+$SHORT_DOC circle_begin -+Begin creation and processing of the distributed work queue. -+ -+Exit Status: -+Returns 0 unless an error occurs. -+$END -+ -+/* Here is the circle_begin builtin. */ -+int -+circle_begin_builtin (list) -+ WORD_LIST *list; -+{ -+ no_args (list); -+ CIRCLE_begin (); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_enqueue -+$FUNCTION circle_enqueue_builtin -+$SHORT_DOC circle_enqueue work -+Enqueue work onto the distributed queue. -+ -+Arguments: -+ WORK "Work" as represented by an arbitrary string of limited -+ size (generally around 4KB) -+ -+Exit Status: -+Returns 0 unless an error occurs. -+$END -+ -+/* Here is the circle_enqueue builtin. */ -+int -+circle_enqueue_builtin (list) -+ WORD_LIST *list; -+{ -+ char *work; /* Work to perform */ -+ -+ /* Extract the work argument. */ -+ YES_ARGS (list); -+ work = list->word->word; -+ list = list->next; -+ no_args (list); -+ -+ /* Complain if we're not within a proper callback function. */ -+ if (current_handle == NULL) -+ { -+ builtin_error (_("not within a Libcircle \"create\" or \"process\" callback function")); -+ return EXECUTION_FAILURE; -+ } -+ -+ /* Enqueue the work. */ -+ if (current_handle->enqueue (work) == -1) -+ return EXECUTION_FAILURE; -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_dequeue -+$FUNCTION circle_dequeue_builtin -+$SHORT_DOC circle_dequeue var -+Dequeue work from the distributed queue into a variable. -+ -+Arguments: -+ VAR Variable in which to receive previously enqueued "work" -+ -+Exit Status: -+Returns 0 unless an error occurs. -+$END -+ -+/* Here is the circle_dequeue builtin. */ -+int -+circle_dequeue_builtin (list) -+ WORD_LIST *list; -+{ -+ char *varname; /* Variable in which to store the work string */ -+ char work[CIRCLE_MAX_STRING_LEN+1]; /* Work to perform */ -+ -+ /* Extract the variable-name argument. */ -+ YES_ARGS (list); -+ varname = list->word->word; -+ list = list->next; -+ no_args (list); -+ -+ /* Complain if we're not within a callback function. */ -+ if (current_handle == NULL) -+ { -+ builtin_error (_("not within a Libcircle callback function")); -+ return EXECUTION_FAILURE; -+ } -+ -+ /* Dequeue the work and bind it to the given variable. */ -+ if (current_handle->dequeue (work) == -1) -+ return EXECUTION_FAILURE; -+ bind_variable (varname, work, 0); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_enable_logging -+$FUNCTION circle_enable_logging_builtin -+$SHORT_DOC circle_enable_logging log_level -+Change Libcircle's logging verbosity -+ -+Arguments: -+ LOG_LEVEL "fatal", "error", "warning", "info", or "debug" -+ -+Exit Status: -+Returns 0 unless an invalid option is given. -+$END -+/*'*/ -+ -+/* Here is the circle_enable_logging builtin. */ -+int -+circle_enable_logging_builtin (list) -+ WORD_LIST *list; -+{ -+ char *word; /* One argument */ -+ CIRCLE_loglevel loglevel; /* Level to set */ -+ -+ /* Parse the log level. */ -+ YES_ARGS (list); -+ word = list->word->word; -+ if (!strcmp (word, "fatal")) -+ loglevel = CIRCLE_LOG_FATAL; -+ else if (!strcmp (word, "error")) -+ loglevel = CIRCLE_LOG_ERR; -+ else if (!strcmp (word, "warning")) -+ loglevel = CIRCLE_LOG_WARN; -+ else if (!strcmp (word, "info")) -+ loglevel = CIRCLE_LOG_INFO; -+ else if (!strcmp (word, "debug")) -+ loglevel = CIRCLE_LOG_DBG; -+ else -+ { -+ builtin_error (_("invalid log level \"%s\""), word); -+ return (EXECUTION_FAILURE); -+ } -+ -+ /* Set the log level. */ -+ CIRCLE_enable_logging (loglevel); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_abort -+$FUNCTION circle_abort_builtin -+$SHORT_DOC circle_abort -+Terminate queue processing. -+ -+Exit Status: -+Returns 0 unless an error occurs. -+$END -+ -+/* Here is the circle_abort builtin. */ -+int -+circle_abort_builtin (list) -+ WORD_LIST *list; -+{ -+ no_args (list); -+ CIRCLE_abort (); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_checkpoint -+$FUNCTION circle_checkpoint_builtin -+$SHORT_DOC circle_checkpoint -+Checkpoint a work queue to disk. -+ -+Write a file called circle${circle_rank}.txt containing the current -+queue state of rank ${circle_rank}. On a later run, a worker can -+invoke circle_read_restarts to repopulate its queue from such a -+checkpoint file. -+ -+Exit Status: -+Returns 0 unless an error occurs. -+$END -+/*'*/ -+ -+/* Here is the circle_checkpoint builtin. */ -+int -+circle_checkpoint_builtin (list) -+ WORD_LIST *list; -+{ -+ no_args (list); -+ CIRCLE_checkpoint (); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_read_restarts -+$FUNCTION circle_read_restarts_builtin -+$SHORT_DOC circle_read_restarts -+Repopulate a work queue from a disk checkpoint. -+ -+Read queue contents from a file called circle${circle_rank}.txt, which -+was previously produced by circle_checkpoint. -+ -+Exit Status: -+Returns 0 unless an error occurs. -+$END -+/*'*/ -+ -+/* Here is the circle_read_restarts builtin. */ -+int -+circle_read_restarts_builtin (list) -+ WORD_LIST *list; -+{ -+ no_args (list); -+ CIRCLE_read_restarts (); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN circle_cb_reduce_init -+$FUNCTION circle_cb_reduce_init_builtin -+$SHORT_DOC circle_cb_reduce_init [func] -+Register a function that will initiate a reduction operation. -+ -+Arguments: -+ FUNC User-defined callback function that will invoke -+ circle_reduce when called -+ -+FUNC will be invoked on all ranks. -+ -+If FUNC is omitted, no function will be associated with reduction -+initialization. This can be used to nullify a previous -+circle_cb_reduce_init invocation. -+ -+Exit Status: -+Returns 0 unless an invalid function is given or an error occurs. -+$END -+ -+/* Here is the circle_cb_reduce_init builtin. */ -+int -+circle_cb_reduce_init_builtin (list) -+ WORD_LIST *list; -+{ -+ return find_callback_function (list, &reduce_init_func); -+} -+ -+$BUILTIN circle_cb_reduce_op -+$FUNCTION circle_cb_reduce_op_builtin -+$SHORT_DOC circle_cb_reduce_op [func] -+Register a function that will complete a reduction operation. -+ -+Arguments: -+ FUNC User-defined callback function that will receive -+ two items to reduce and invoke circle_reduce on -+ the reduced value -+ -+If FUNC is omitted, no function will be associated with reduction -+execution. This can be used to nullify a previous circle_cb_reduce_op -+invocation. -+ -+Exit Status: -+Returns 0 unless an invalid function is given or an error occurs. -+$END -+ -+/* Here is the circle_cb_reduce_op builtin. */ -+int -+circle_cb_reduce_op_builtin (list) -+ WORD_LIST *list; -+{ -+ return find_callback_function (list, &reduce_op_func); -+} -+ -+$BUILTIN circle_cb_reduce_fini -+$FUNCTION circle_cb_reduce_fini_builtin -+$SHORT_DOC circle_cb_reduce_fini [func] -+Register a function that will complete a reduction operation. -+ -+Arguments: -+ FUNC User-defined callback function that will receive -+ the final reduced data -+ -+If FUNC is omitted, no function will be associated with reduction -+completion. This can be used to nullify a previous -+circle_cb_reduce_fini invocation. -+ -+Libcircle guarantees that FUNC will be invoked only on rank 0. -+ -+Exit Status: -+Returns 0 unless an invalid function is given or an error occurs. -+$END -+ -+/* Here is the circle_cb_reduce_fini builtin. */ -+int -+circle_cb_reduce_fini_builtin (list) -+ WORD_LIST *list; -+{ -+ return find_callback_function (list, &reduce_fini_func); -+} -+ -+$BUILTIN circle_reduce -+$FUNCTION circle_reduce_builtin -+$SHORT_DOC circle_reduce work -+Seed the next phase of a reduction operation -+ -+Arguments: -+ WORK "Work" as represented by an arbitrary string of limited -+ size (generally around 4KB) -+ -+This function should be called both by the callback function -+registered with circle_reduce_init and the callback function -+registered with circle_reduce_op. -+ -+Exit Status: -+Returns 0 unless an error occurs. -+$END -+ -+/* Here is the circle_reduce builtin. */ -+int -+circle_reduce_builtin (list) -+ WORD_LIST *list; -+{ -+ char *work; /* Work to perform */ -+ -+ /* Extract the work argument. */ -+ YES_ARGS (list); -+ work = list->word->word; -+ list = list->next; -+ no_args (list); -+ -+ /* Complain if we're not within a proper callback function. */ -+ if (!within_reduction) -+ { -+ builtin_error (_("not within a Libcircle \"reduce_init\" or \"reduce_op\" callback function")); -+ return EXECUTION_FAILURE; -+ } -+ -+ /* Reduce the work. */ -+ CIRCLE_reduce (work, strlen (work)); -+ return EXECUTION_SUCCESS; -+} -diff -Naur bash-4.3/builtins/Makefile.in mpibash-4.3/builtins/Makefile.in ---- bash-4.3/builtins/Makefile.in 2012-05-25 07:29:19.000000000 -0600 -+++ mpibash-4.3/builtins/Makefile.in 2014-05-13 11:27:37.314100671 -0600 -@@ -141,7 +141,9 @@ - $(srcdir)/times.def $(srcdir)/trap.def $(srcdir)/type.def \ - $(srcdir)/ulimit.def $(srcdir)/umask.def $(srcdir)/wait.def \ - $(srcdir)/reserved.def $(srcdir)/pushd.def $(srcdir)/shopt.def \ -- $(srcdir)/printf.def $(srcdir)/complete.def $(srcdir)/mapfile.def -+ $(srcdir)/printf.def $(srcdir)/complete.def $(srcdir)/mapfile.def \ -+ $(srcdir)/mpi.def \ -+@CIRCLE@ $(srcdir)/circle.def - - STATIC_SOURCE = common.c evalstring.c evalfile.c getopt.c bashgetopt.c \ - getopt.h -@@ -153,7 +155,9 @@ - jobs.o kill.o let.o mapfile.o \ - pushd.o read.o return.o set.o setattr.o shift.o source.o \ - suspend.o test.o times.o trap.o type.o ulimit.o umask.o \ -- wait.o getopts.o shopt.o printf.o getopt.o bashgetopt.o complete.o -+ wait.o getopts.o shopt.o printf.o getopt.o bashgetopt.o complete.o \ -+ mpi.o \ -+@CIRCLE@ circle.o - - CREATED_FILES = builtext.h builtins.c psize.aux pipesize.h tmpbuiltins.c \ - tmpbuiltins.h -@@ -317,6 +321,8 @@ - getopts.o: getopts.def - reserved.o: reserved.def - complete.o: complete.def -+@CIRCLE@ circle.o: circle.def -+mpi.o: mpi.def - - # C files - bashgetopt.o: ../config.h $(topdir)/bashansi.h $(BASHINCDIR)/ansi_stdlib.h -@@ -644,6 +650,19 @@ - mapfile.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h - mapfile.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/variables.h $(topdir)/conftypes.h - mapfile.o: $(topdir)/arrayfunc.h ../pathnames.h -+@CIRCLE@ circle.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h $(topdir)/error.h -+@CIRCLE@ circle.o: $(topdir)/general.h $(topdir)/xmalloc.h $(topdir)/subst.h $(topdir)/externs.h -+@CIRCLE@ circle.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h -+@CIRCLE@ circle.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -+@CIRCLE@ circle.o: $(BASHINCDIR)/maxpath.h ../pathnames.h -+mpi.o: ../config.h ../config-top.h ../config-bot.h ../bashintl.h -+mpi.o: ../include/gettext.h ../shell.h ../config.h ../bashjmp.h -+mpi.o: ../include/posixjmp.h ../command.h ../syntax.h ../general.h -+mpi.o: ../bashtypes.h ../include/chartypes.h ../xmalloc.h ../bashansi.h -+mpi.o: ../error.h ../variables.h ../array.h ../assoc.h ../hashlib.h -+mpi.o: ../conftypes.h ../arrayfunc.h ../quit.h ../sig.h ../include/maxpath.h -+mpi.o: ../unwind_prot.h ../dispose_cmd.h ../make_cmd.h ../include/ocache.h -+mpi.o: ../subst.h ../pathnames.h ../externs.h common.h bashgetopt.h - - #bind.o: $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)readline.h $(RL_LIBSRC)keymaps.h - -diff -Naur bash-4.3/builtins/mpi.def mpibash-4.3/builtins/mpi.def ---- bash-4.3/builtins/mpi.def 1969-12-31 17:00:00.000000000 -0700 -+++ mpibash-4.3/builtins/mpi.def 2014-05-13 11:27:37.314100671 -0600 -@@ -0,0 +1,744 @@ -+This file is mpi.def, from which is created mpi.c. -+It implements all of the "mpi_*" builtins in Bash. -+ -+$PRODUCES mpi.c -+ -+#include -+ -+#include -+#if defined (HAVE_UNISTD_H) -+# ifdef _MINIX -+# include -+# endif -+# include -+#endif -+ -+#include "../bashintl.h" -+#include "../shell.h" -+#include "common.h" -+#include "bashgetopt.h" -+#include -+ -+extern int running_trap, trap_saved_exit_value; -+ -+/* Keep track of who we are within MPI_COMM_WORLD. */ -+static int mpi_rank; -+static int mpi_num_ranks; -+ -+/* Try an MPI operation. Return with an error message on failure. */ -+#define MPI_TRY(STMT) \ -+ do \ -+ { \ -+ int mpierr; \ -+ mpierr = STMT; \ -+ if (mpierr != MPI_SUCCESS) \ -+ return report_mpi_error (mpierr); \ -+ } \ -+ while (0) -+ -+/* Return with a usage message if no arguments remain. */ -+#define YES_ARGS(LIST) \ -+ if ((LIST) == 0) \ -+ { \ -+ builtin_usage (); \ -+ return (EX_USAGE); \ -+ } -+ -+/* Return with an error message if a given variable is read-only or if -+ * we can't write to it for any other reason (e.g., it's defined as a -+ * function). */ -+#define REQUIRE_WRITABLE(NAME) \ -+ do \ -+ { \ -+ SHELL_VAR *bindvar = find_shell_variable (NAME); \ -+ if (bindvar) \ -+ { \ -+ if (readonly_p (bindvar)) \ -+ { \ -+ err_readonly (NAME); \ -+ return (EXECUTION_FAILURE); \ -+ } \ -+ if (unbind_variable (NAME) == -1) \ -+ { \ -+ builtin_error ("Failed to write to variable %s", NAME); \ -+ return (EXECUTION_FAILURE); \ -+ } \ -+ } \ -+ } \ -+ while (0) -+ -+/* Initialize MPI. */ -+void -+initialize_mpi (argc, argv) -+ int argc; -+ char **argv; -+{ -+ int init_done; -+ -+ MPI_Initialized (&init_done); -+ if (!init_done) -+ MPI_Init (&argc, &argv); -+ MPI_Errhandler_set (MPI_COMM_WORLD, MPI_ERRORS_RETURN); -+ MPI_Comm_rank (MPI_COMM_WORLD, &mpi_rank); -+ MPI_Comm_size (MPI_COMM_WORLD, &mpi_num_ranks); -+} -+ -+/* Finalize MPI. */ -+void -+finalize_mpi () -+{ -+ MPI_Finalize (); -+} -+ -+/* Parse an operation name into an MPI_Op. Return 1 on success, 0 on -+ * failure. */ -+static int -+parse_operation (char *name, MPI_Op *op) -+{ -+ /* Define a mapping from operator names to MPI_Op values. */ -+ typedef struct { -+ char *name; /* Operation name (e.g., "sum") */ -+ MPI_Op value; /* Operation value (e.g., MPI_SUM) */ -+ } opname2value_t; -+ static opname2value_t oplist[] = { -+ {"max", MPI_MAX}, -+ {"min", MPI_MIN}, -+ {"sum", MPI_SUM}, -+ {"prod", MPI_PROD}, -+ {"land", MPI_LAND}, -+ {"band", MPI_BAND}, -+ {"lor", MPI_LOR}, -+ {"bor", MPI_BOR}, -+ {"lxor", MPI_LXOR}, -+ {"bxor", MPI_BXOR}, -+ {"maxloc", MPI_MAXLOC}, -+ {"minloc", MPI_MINLOC} -+ }; -+ size_t i; -+ -+ for (i = 0; i < sizeof(oplist)/sizeof(opname2value_t); i++) -+ if (!strcmp(name, oplist[i].name)) -+ { -+ *op = oplist[i].value; -+ if (i > 0) -+ { -+ /* As a performance optimization, bubble up the value we -+ * just found. */ -+ opname2value_t prev = oplist[i - 1]; -+ oplist[i - 1] = oplist[i]; -+ oplist[i] = prev; -+ } -+ return 1; -+ } -+ return 0; -+} -+ -+/* Report an error to the user and return EXECUTION_FAILURE. */ -+static int -+report_mpi_error (mpierr) -+ int mpierr; -+{ -+ char errstr[MPI_MAX_ERROR_STRING]; -+ int errstrlen; -+ -+ MPI_Error_string (mpierr, errstr, &errstrlen); -+ builtin_error ("%s", errstr); -+ return EXECUTION_FAILURE; -+} -+ -+/* Perform the same operation as bind_variable, but with VALUE being a -+ * number, not a string. */ -+static SHELL_VAR * -+bind_variable_number (name, value, flags) -+ const char *name; -+ long value; -+ int flags; -+{ -+ char numstr[25]; /* String version of VALUE */ -+ -+ sprintf (numstr, "%ld", value); -+ return bind_variable (name, numstr, flags); -+} -+ -+/* Perform the same operation as bind_array_variable, but with VALUE -+ * being a number, not a string. */ -+static SHELL_VAR * -+bind_array_variable_number (name, ind, value, flags) -+ char *name; -+ arrayind_t ind; -+ long value; -+ int flags; -+{ -+ char numstr[25]; /* String version of VALUE */ -+ -+ sprintf (numstr, "%ld", value); -+ return bind_array_variable (name, ind, numstr, flags); -+} -+ -+/* Define a reduction-type function (allreduce, scan, exscan, etc.). */ -+typedef int (*reduction_func_t)(void *, void *, int, MPI_Datatype, MPI_Op, MPI_Comm); -+ -+/* Perform any reduction-type operation (allreduce, scan, exscan, etc.). */ -+static int -+reduction_like (list, funcname, func) -+ WORD_LIST *list; -+ char *funcname; -+ reduction_func_t func; -+{ -+ char *word; /* One argument */ -+ struct { -+ long int value; /* Reduced value */ -+ int rank; /* Rank associated with the above */ -+ } number, result; -+ MPI_Op operation = MPI_SUM; /* Operation to perform */ -+ char *varname; /* Name of the variable to bind the results to */ -+ intmax_t n; -+ int i; -+ -+ /* Parse "-O OPERATION" (optional), where OPERATION is a reduction -+ * operation. */ -+ YES_ARGS (list); -+ word = list->word->word; -+ if (ISOPTION (word, 'O')) -+ { -+ list = list->next; -+ if (list == 0) -+ { -+ sh_needarg (funcname); -+ return (EX_USAGE); -+ } -+ word = list->word->word; -+ if (!parse_operation (word, &operation)) -+ { -+ sh_invalidopt ("-O"); -+ return (EX_USAGE); -+ } -+ list = list->next; -+ } -+ -+ /* Parse the argument, which must be a number. */ -+ YES_ARGS (list); -+ word = list->word->word; -+ if (!legal_number (word, &n)) -+ { -+ sh_neednumarg (funcname); -+ return (EX_USAGE); -+ } -+ number.value = (long int) n; -+ number.rank = mpi_rank; -+ list = list->next; -+ -+ /* Parse the target variable, which must not be read-only. */ -+ YES_ARGS (list); -+ varname = list->word->word; -+ if (mpi_rank != 0 || func != MPI_Exscan) -+ REQUIRE_WRITABLE (varname); -+ list = list->next; -+ no_args (list); -+ -+ /* Perform the reduction operation. Bind the given array variable -+ * to the result and, for minloc/maxloc, the associated rank. */ -+ if (mpi_rank != 0 || func != MPI_Exscan) { -+ bind_array_variable (varname, 0, "", 0); -+ bind_array_variable (varname, 1, "", 0); -+ } -+ if (operation == MPI_MINLOC || operation == MPI_MAXLOC) -+ { -+ MPI_TRY (func (&number, &result, 1, MPI_LONG_INT, operation, MPI_COMM_WORLD)); -+ if (mpi_rank != 0 || func != MPI_Exscan) -+ bind_array_variable_number (varname, 1, result.rank, 0); -+ } -+ else -+ MPI_TRY (func (&number.value, &result.value, 1, MPI_LONG, operation, MPI_COMM_WORLD)); -+ if (mpi_rank != 0 || func != MPI_Exscan) -+ bind_array_variable_number (varname, 0, result.value, 0); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN mpi_comm_rank -+$FUNCTION mpi_comm_rank_builtin -+$SHORT_DOC mpi_comm_rank name -+Return the process's rank in the MPI job. -+ -+Arguments: -+ NAME Scalar variable in which to receive the rank -+ -+Exit Status: -+Returns 0 unless an invalid option is given. -+$END -+/*'*/ -+ -+/* Here is the mpi_comm_rank builtin. */ -+int -+mpi_comm_rank_builtin (list) -+ WORD_LIST *list; -+{ -+ char *varname; /* Name of the variable to bind the results to */ -+ -+ YES_ARGS (list); -+ varname = list->word->word; -+ REQUIRE_WRITABLE (varname); -+ list = list->next; -+ no_args (list); -+ bind_variable_number (varname, mpi_rank, 0); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN mpi_comm_size -+$FUNCTION mpi_comm_size_builtin -+$SHORT_DOC mpi_comm_size name -+Return the total number of ranks in the MPI job. -+ -+Arguments: -+ NAME Scalar variable in which to receive the number of ranks -+ -+Exit Status: -+Returns 0 unless an invalid option is given. -+$END -+ -+/* Here is the mpi_comm_size builtin. */ -+int -+mpi_comm_size_builtin (list) -+ WORD_LIST *list; -+{ -+ char *varname; /* Name of the variable to bind the results to */ -+ -+ YES_ARGS (list); -+ varname = list->word->word; -+ REQUIRE_WRITABLE (varname); -+ list = list->next; -+ no_args (list); -+ bind_variable_number (varname, mpi_num_ranks, 0); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN mpi_abort -+$FUNCTION mpi_abort_builtin -+$SHORT_DOC mpi_abort [n] -+Abort all processes in the MPI job and exit the shell. -+ -+Exits not only the caller's shell (with a status of N) but also all -+remote shells that are part of the same MPI job. If N is omitted, the -+exit status is that of the last command executed. -+ -+This command should be used only in extreme circumstances. It is -+better for each process to exit normally on its own. -+$END -+/*'*/ -+ -+/* Here is the mpi_abort builtin. */ -+int -+mpi_abort_builtin (list) -+ WORD_LIST *list; -+{ -+ int exit_value; -+ -+ exit_value = (running_trap == 1 && list == 0) ? trap_saved_exit_value : get_exitstat (list); /* Copied from exit.def */ -+ MPI_TRY (MPI_Abort (MPI_COMM_WORLD, exit_value)); -+ return EXECUTION_FAILURE; -+} -+ -+$BUILTIN mpi_send -+$FUNCTION mpi_send_builtin -+$SHORT_DOC mpi_send [-t tag] rank message -+Send a message to a remote process in the same MPI job. -+ -+Options: -+ -t TAG Send the message using tag TAG (default: 0). TAG must -+ be a nonnegative integer. -+ -+Arguments: -+ RANK Whom to send the message to. RANK must be an integer in -+ the range [0, $(mpi_comm_size)-1]. -+ -+ MESSAGE String to send to rank RANK. -+ -+Exit Status: -+Returns 0 unless an invalid option is given or an error occurs. -+$END -+ -+/* Here is the mpi_send builtin. */ -+int -+mpi_send_builtin (list) -+ WORD_LIST *list; -+{ -+ char *word; /* One argument */ -+ intmax_t target_rank; /* MPI target rank */ -+ char *message; /* Message to send to rank target_rank */ -+ intmax_t tag = 0; /* Message tag to use */ -+ -+ /* Parse "-t TAG" (optional), where TAG is a number or "any". */ -+ YES_ARGS (list); -+ word = list->word->word; -+ if (ISOPTION (word, 't')) -+ { -+ list = list->next; -+ if (list == 0) -+ { -+ sh_needarg ("mpi_recv"); -+ return (EX_USAGE); -+ } -+ word = list->word->word; -+ if (!legal_number (word, &tag)) -+ { -+ sh_neednumarg ("-t"); -+ return (EX_USAGE); -+ } -+ list = list->next; -+ } -+ else if (*word == '-') -+ { -+ sh_invalidopt (word); -+ builtin_usage (); -+ return (EX_USAGE); -+ } -+ -+ /* Parse the target rank, which must be a number. */ -+ YES_ARGS (list); -+ word = list->word->word; -+ if (!legal_number (word, &target_rank)) -+ { -+ builtin_error (_("mpi_send: numeric rank required")); -+ return (EX_USAGE); -+ } -+ list = list->next; -+ -+ /* Parse the message to send. */ -+ YES_ARGS (list); -+ message = list->word->word; -+ list = list->next; -+ no_args (list); -+ -+ /* Send the message. */ -+ MPI_TRY (MPI_Send (message, strlen(message)+1, MPI_BYTE, (int)target_rank, (int)tag, MPI_COMM_WORLD)); -+ return EXECUTION_SUCCESS; -+} -+ -+ -+$BUILTIN mpi_recv -+$FUNCTION mpi_recv_builtin -+$SHORT_DOC mpi_recv [-t tag] rank name -+Receive a message from a remote process in the same MPI job. -+ -+Options: -+ -t TAG Receive only messages sent using tag TAG (default: 0). -+ TAG must be either a nonnegative integer or the string -+ "any" to receive messages sent using any tag. -+ -+Arguments: -+ RANK Receive only messages sent from sender RANK. RANK -+ must either be in the range [0, $(mpi_comm_size)-1] or -+ be the string "any" to receive messages from any sender. -+ -+ NAME Array variable in which to receive the message, sender -+ rank, and tag. -+ -+Exit Status: -+Returns 0 unless an invalid option is given or an error occurs. -+$END -+ -+/* Here is the mpi_recv builtin. */ -+int -+mpi_recv_builtin (list) -+ WORD_LIST *list; -+{ -+ char *word; /* One argument */ -+ intmax_t source_rank; /* MPI source rank */ -+ char *endptr; /* Used for parsing strings into numbers */ -+ MPI_Status status; /* Status of an MPI operation */ -+ int count; /* Message length in bytes */ -+ intmax_t tag = 0; /* Message tag to use */ -+ char *varname; /* Name of the variable to bind the results to */ -+ static char *message = NULL; /* Message received from MPI */ -+ static size_t alloced = 0; /* Number of bytes allocated for the above */ -+ int opt; /* Parsed option */ -+ -+ /* Parse any options provided. */ -+ reset_internal_getopt (); -+ while ((opt = internal_getopt (list, "t:")) != -1) -+ { -+ switch (opt) -+ { -+ case 't': -+ if (!strcmp (list_optarg, "any")) -+ tag = MPI_ANY_TAG; -+ else if (!legal_number (list_optarg, &tag)) -+ { -+ builtin_error (_("-t: numeric argument or \"any\" required")); -+ return (EX_USAGE); -+ } -+ break; -+ -+ default: -+ sh_invalidopt (word); -+ builtin_usage (); -+ return (EX_USAGE); -+ } -+ } -+ list = loptend; -+ -+ /* Parse the source rank, which must be a number or "any". */ -+ YES_ARGS (list); -+ word = list->word->word; -+ if (!legal_number (word, &source_rank)) -+ { -+ if (!strcmp (word, "any")) -+ source_rank = MPI_ANY_SOURCE; -+ else -+ { -+ builtin_error (_("mpi_recv: numeric rank or \"any\" required")); -+ return (EX_USAGE); -+ } -+ } -+ list = list->next; -+ -+ /* Parse the target variable, which must not be read-only. */ -+ YES_ARGS (list); -+ varname = list->word->word; -+ REQUIRE_WRITABLE (varname); -+ list = list->next; -+ no_args (list); -+ -+ /* Receive a message. Because we don't know long the message will -+ * be, we first probe to get the length. */ -+ MPI_TRY (MPI_Probe ((int)source_rank, (int)tag, MPI_COMM_WORLD, &status)); -+ MPI_TRY (MPI_Get_count (&status, MPI_BYTE, &count)); -+ if (alloced < count) -+ { -+ message = xrealloc (message, count); -+ alloced = count; -+ } -+ MPI_TRY (MPI_Recv (message, count, MPI_BYTE, status.MPI_SOURCE, status.MPI_TAG, MPI_COMM_WORLD, &status)); -+ bind_array_variable (varname, 0, message, 0); -+ bind_array_variable_number (varname, 1, status.MPI_SOURCE, 0); -+ bind_array_variable_number (varname, 2, status.MPI_TAG, 0); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN mpi_barrier -+$FUNCTION mpi_barrier_builtin -+$SHORT_DOC mpi_barrier -+Synchronizes all of the processes in the MPI job. -+ -+No process will return from mpi_barrier until all processes have -+called mpi_barrier. -+ -+Exit Status: -+Returns 0 unless an invalid option is given or an error occurs. -+$END -+ -+/* Here is the mpi_barrier builtin. */ -+int -+mpi_barrier_builtin (list) -+ WORD_LIST *list; -+{ -+ no_args (list); -+ MPI_TRY (MPI_Barrier (MPI_COMM_WORLD)); -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN mpi_bcast -+$FUNCTION mpi_bcast_builtin -+$SHORT_DOC mpi_bcast [message] name -+Broadcast a message to all processes in the same MPI job. -+ -+Arguments: -+ MESSAGE String to broadcast from one process to all the others. -+ -+ NAME Scalar variable in which to receive the broadcast message. -+ -+Exactly one process in the MPI job must specify a message to -+broadcast. No process will return from mpi_bcast until all processes -+have called mpi_bcast. -+ -+Exit Status: -+Returns 0 unless an invalid option is given or an error occurs. -+$END -+ -+/* Here is the mpi_bcast builtin. */ -+int -+mpi_bcast_builtin (list) -+ WORD_LIST *list; -+{ -+ char *word; /* One argument */ -+ int root; /* MPI root rank */ -+ char *root_message; /* Message to broadcast */ -+ int msglen; /* Length in bytes of the above (including the NULL byte) */ -+ char *varname; /* Name of the variable to bind the results to */ -+ static int *all_lengths = NULL; /* List of every rank's msglen */ -+ static char *message = NULL; /* Message received from the root */ -+ static int alloced = 0; /* Bytes allocated for the above */ -+ int i; -+ -+ /* Parse the optional message and target variable, which must not be -+ * read-only. */ -+ YES_ARGS (list); -+ if (list->next == NULL) -+ { -+ /* Non-root */ -+ root_message = NULL; -+ msglen = -1; -+ } -+ else -+ { -+ /* Root */ -+ root_message = list->word->word; -+ msglen = (int) strlen(root_message) + 1; -+ list = list->next; -+ } -+ varname = list->word->word; -+ REQUIRE_WRITABLE (varname); -+ list = list->next; -+ no_args (list); -+ -+ /* Acquire global agreement on the root and the message size. */ -+ if (all_lengths == NULL) -+ all_lengths = xmalloc (mpi_num_ranks*sizeof(int)); -+ MPI_TRY (MPI_Allgather (&msglen, 1, MPI_INT, all_lengths, 1, MPI_INT, MPI_COMM_WORLD)); -+ root = -1; -+ for (i = 0; i < mpi_num_ranks; i++) -+ { -+ if (all_lengths[i] == -1) -+ continue; -+ if (root != -1) -+ { -+ builtin_error (_("mpi_bcast: more than one process specified a message")); -+ return (EXECUTION_FAILURE); -+ } -+ root = i; -+ msglen = all_lengths[i]; -+ } -+ if (root == -1) -+ { -+ builtin_error (_("mpi_bcast: no process specified a message")); -+ return (EXECUTION_FAILURE); -+ } -+ -+ /* Broadcast the message. */ -+ if (mpi_rank == root) -+ { -+ MPI_TRY (MPI_Bcast (root_message, msglen, MPI_BYTE, root, MPI_COMM_WORLD)); -+ bind_variable (varname, root_message, 0); -+ } -+ else -+ { -+ if (alloced < msglen) -+ { -+ message = xrealloc (message, msglen); -+ alloced = msglen; -+ } -+ MPI_TRY (MPI_Bcast (message, msglen, MPI_BYTE, root, MPI_COMM_WORLD)); -+ bind_variable (varname, message, 0); -+ } -+ return EXECUTION_SUCCESS; -+} -+ -+$BUILTIN mpi_scan -+$FUNCTION mpi_scan_builtin -+$SHORT_DOC mpi_scan number name -+Perform an inclusive scan across all processes in the same MPI job. -+ -+ -O OPERATION Operation to perform. Must be one of "max", "min", -+ "sum", "prod", "land", "band", "lor", "bor", "lxor", -+ "bxor", "maxloc", or "minloc" (default: "sum"). -+ -+Arguments: -+ NUMBER Integer to use in the scan operation. -+ -+ NAME Array variable in which to receive the result and, in -+ the case of maxloc and minloc, the associated rank. -+ -+In an inclusive-scan operation, each process i presents a number, -+a[i]. Once all processes in the MPI job have presented their number, -+the command returns a[0] to rank 0, a[0]+a[1] to rank 1, -+a[0]+a[1]+a[2] to rank 2, and so forth. The -O option enables "+" to -+be replaced with other operations. -+ -+Inclusive scans can be useful for assigning a unique index to each -+process in the MPI job. -+ -+Exit Status: -+Returns 0 unless an invalid option is given or an error occurs. -+$END -+ -+/* Here is the mpi_scan builtin. */ -+int -+mpi_scan_builtin (list) -+ WORD_LIST *list; -+{ -+ return reduction_like (list, "mpi_scan", MPI_Scan); -+} -+ -+$BUILTIN mpi_exscan -+$FUNCTION mpi_exscan_builtin -+$SHORT_DOC mpi_exscan number name -+Perform an exclusive scan across all processes in the same MPI job. -+ -+ -O OPERATION Operation to perform. Must be one of "max", "min", -+ "sum", "prod", "land", "band", "lor", "bor", "lxor", -+ "bxor", "maxloc", or "minloc" (default: "sum"). -+ -+Arguments: -+ NUMBER Integer to use in the scan operation. -+ -+ NAME Array variable in which to receive the result and, in -+ the case of maxloc and minloc, the associated rank. -+ -+In a exclusive-scan operation, each process i presents a number, a[i]. -+Once all processes in the MPI job have presented their number, the -+command assigns a[0] to NAME on rank 1, a[0]+a[1] to NAME on rank 2, -+a[0]+a[1]+a[2] to NAME on rank 3, and so forth. No assignment is -+performed on rank 0. The -O option enables "+" to be replaced with -+other operations. -+ -+Exclusive scans can be useful for assigning a unique index to each -+process in the MPI job. -+ -+Exit Status: -+Returns 0 unless an invalid option is given or an error occurs. -+$END -+ -+/* Here is the mpi_exscan builtin. */ -+int -+mpi_exscan_builtin (list) -+ WORD_LIST *list; -+{ -+ return reduction_like (list, "mpi_exscan", MPI_Exscan); -+} -+ -+$BUILTIN mpi_allreduce -+$FUNCTION mpi_allreduce_builtin -+$SHORT_DOC mpi_allreduce number name -+Reduce numbers from all processes in an MPI job to a single number. -+ -+Options: -+ -+ -O OPERATION Operation to perform. Must be one of "max", "min", -+ "sum", "prod", "land", "band", "lor", "bor", "lxor", -+ "bxor", "maxloc", or "minloc" (default: "sum"). -+ -+Arguments: -+ NUMBER Integer to use in the allreduce operation. -+ -+ NAME Array variable in which to receive the result and, in -+ the case of maxloc and minloc, the associated rank. -+ -+In an all-reduce operation, each process i presents a number, a[i]. -+Once all processes in the MPI job have presented their number, the -+command returns a[0]+a[1]+...+a[n-1] to all ranks. The -O option -+enables "+" to be replaced with other operations. -+ -+All-reduces can be useful for reaching global agreement (e.g., of a -+termination condition). -+ -+Exit Status: -+Returns 0 unless an invalid option is given or an error occurs. -+$END -+ -+/* Here is the mpi_allreduce builtin. */ -+int -+mpi_allreduce_builtin (list) -+ WORD_LIST *list; -+{ -+ return reduction_like (list, "mpi_allreduce", MPI_Allreduce); -+} -diff -Naur bash-4.3/config.h.in mpibash-4.3/config.h.in ---- bash-4.3/config.h.in 2013-06-29 15:35:33.000000000 -0600 -+++ mpibash-4.3/config.h.in 2014-05-13 11:27:37.314100671 -0600 -@@ -1147,6 +1147,12 @@ - /* Define if you have the `__argz_stringify' function. */ - #undef HAVE___ARGZ_STRINGIFY - -+/* Define if you have both the header file and the libcircle library. */ -+#undef HAVE_LIBCIRCLE -+ -+/* Define if you have the `CIRCLE_cb_reduce_op' function. */ -+#undef HAVE_CIRCLE_CB_REDUCE_OP -+ - /* End additions for lib/intl */ - - #include "config-bot.h" -diff -Naur bash-4.3/configure.ac mpibash-4.3/configure.ac ---- bash-4.3/configure.ac 2014-02-11 08:37:53.000000000 -0700 -+++ mpibash-4.3/configure.ac 2014-05-13 11:27:37.302100179 -0600 -@@ -24,7 +24,7 @@ - AC_REVISION([for Bash 4.3, version 4.063])dnl - - define(bashvers, 4.3) --define(relstatus, release) -+define(relstatus, MPI) - - AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org]) - -@@ -813,6 +813,21 @@ - fi - ]) - -+dnl Ensure that we can find an MPI library. -+AC_CHECK_FUNCS([MPI_Init], [], [ -+ AC_MSG_ERROR([Cannot continue without MPI. Consider specifying CC=mpicc.])]) -+ -+dnl If we have Libcircle, use it, too. -+AC_SEARCH_LIBS([CIRCLE_cb_create], [circle], [AC_CHECK_HEADERS([libcircle.h])]) -+if test "x$ac_cv_header_libcircle_h" = xyes; then -+ libcircle_make_prefix="" -+ AC_DEFINE([HAVE_LIBCIRCLE], [1], [Define if you have the Libcircle header and library.]) -+ AC_CHECK_FUNCS([CIRCLE_cb_reduce_op]) -+else -+ libcircle_make_prefix="#" -+fi -+AC_SUBST([CIRCLE], [$libcircle_make_prefix]) -+ - BASH_CHECK_DECL(strtoimax) - BASH_CHECK_DECL(strtol) - BASH_CHECK_DECL(strtoll) -diff -Naur bash-4.3/Makefile.in mpibash-4.3/Makefile.in ---- bash-4.3/Makefile.in 2014-01-25 14:27:30.000000000 -0700 -+++ mpibash-4.3/Makefile.in 2014-05-13 11:27:37.314100671 -0600 -@@ -104,7 +104,7 @@ - VERSPROG = bashversion$(EXEEXT) - VERSOBJ = bashversion.$(OBJEXT) - --Program = bash$(EXEEXT) -+Program = mpibash$(EXEEXT) - Version = @BASHVERS@ - PatchLevel = `$(BUILD_DIR)/$(VERSPROG) -p` - RELSTATUS = @RELSTATUS@ -diff -Naur bash-4.3/shell.c mpibash-4.3/shell.c ---- bash-4.3/shell.c 2014-01-14 06:04:32.000000000 -0700 -+++ mpibash-4.3/shell.c 2014-05-13 11:27:37.314100671 -0600 -@@ -107,6 +107,13 @@ - extern char *primary_prompt, *secondary_prompt; - extern char *this_command_name; - -+extern void initialize_mpi __P((int, char **)); -+extern void finalize_mpi __P((void)); -+#ifdef HAVE_LIBCIRCLE -+extern void initialize_libcircle __P((int, char **)); -+extern void finalize_libcircle __P((void)); -+#endif -+ - /* Non-zero means that this shell has already been run; i.e. you should - call shell_reinitialize () if you need to start afresh. */ - int shell_initialized = 0; -@@ -324,7 +331,7 @@ - static void init_interactive_script __P((void)); - - static void set_shell_name __P((char *)); --static void shell_initialize __P((void)); -+static void shell_initialize __P((int, char **)); - static void shell_reinitialize __P((void)); - - static void show_shell_usage __P((FILE *, int)); -@@ -561,7 +568,7 @@ - - /* From here on in, the shell must be a normal functioning shell. - Variables from the environment are expected to be set, etc. */ -- shell_initialize (); -+ shell_initialize (argc, argv); - - set_default_lang (); - set_default_locale_vars (); -@@ -941,6 +948,12 @@ - end_job_control (); - #endif /* JOB_CONTROL */ - -+#ifdef HAVE_LIBCIRCLE -+ finalize_libcircle (); -+#else -+ finalize_mpi (); -+#endif -+ - /* Always return the exit status of the last command to our parent. */ - sh_exit (s); - } -@@ -1691,7 +1704,9 @@ - /* Do whatever is necessary to initialize the shell. - Put new initializations in here. */ - static void --shell_initialize () -+shell_initialize (argc, argv) -+ int argc; -+ char **argv; - { - char hostname[256]; - -@@ -1760,6 +1775,17 @@ - initialize_shell_options (privileged_mode||running_setuid); - initialize_bashopts (privileged_mode||running_setuid); - #endif -+ -+ /* Initialize Libcircle and MPI. */ -+#ifdef HAVE_LIBCIRCLE -+ initialize_libcircle (argc, argv); -+ initialize_mpi (argc, argv); -+ bind_variable ("libcircle", "yes", 0); -+#else -+ initialize_mpi (argc, argv); -+ bind_variable ("libcircle", "no", 0); -+#endif -+ bind_variable ("mpibash", "yes", 0); - } - - /* Function called by main () when it appears that the shell has already diff --git a/repos/spack_repo/builtin/packages/mpibind/package.py b/repos/spack_repo/builtin/packages/mpibind/package.py index 6e01d1b0def..b23ffa68405 100644 --- a/repos/spack_repo/builtin/packages/mpibind/package.py +++ b/repos/spack_repo/builtin/packages/mpibind/package.py @@ -10,10 +10,11 @@ class Mpibind(AutotoolsPackage): - """A memory-driven algorithm to map parallel codes - to heterogeneous architectures""" + """A portable runtime library that automatically maps + parallel applications to heterogeneous hardware architectures, + optimizing resource affinity for CPUs, GPUs, and memory""" - homepage = "https://github.com/LLNL/mpibind" + homepage = "https://mpibind.llnl.gov" git = "https://github.com/LLNL/mpibind.git" maintainers("eleon") @@ -27,14 +28,22 @@ class Mpibind(AutotoolsPackage): # AC_INIT would be missing the version argument, # which is derived with git. version("master", branch="master", get_full_repo=True) - version("0.8.0", commit="ff38b9dcd150ca1e8a8796835d8e1e1847b3ba68", no_cache=True) - version("0.7.0", commit="3c437a97cd841b9c13abfbe1062a0285e1a29d3e", no_cache=True) - version("0.5.0", commit="8698f07412232e4dd4de4802b508374dc0de48c9", no_cache=True) + version("0.23.0", commit="7d23407726004c7092a20ebdf6e9661f020b4ae7", no_cache=True) + version("0.22.0", commit="7181024843b110074ad87009a7a671bb666f90a4", no_cache=True) + version("0.21.0", commit="e8dca93adff52d464bffe7281f7ac0c3a63be4c0", no_cache=True) + version("0.20.0", commit="8cd20ed9353a69336415193da90d86de789b1e3c", no_cache=True) - variant("cuda", default=False, description="Build w/support for NVIDIA GPUs.") - variant("rocm", default=False, description="Build w/support for AMD GPUs.") - variant("flux", default=False, description="Build the Flux plugin.") - variant("python", default=False, description="Build the Python bindings.") + # mpibind does not depend on CUDA or ROCm, but uses + # these variants to configure hwloc accordingly + variant("cuda", default=False, description="Build with support for NVIDIA GPUs") + variant("rocm", default=False, description="Build with support for AMD GPUs") + + variant("flux", default=False, description="Build the Flux plugin") + variant("python", default=False, description="Build the Python bindings") + + # See slurm dependency below + # variant("slurm", default=False, + # description="Build the Slurm plugin") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -46,16 +55,34 @@ class Mpibind(AutotoolsPackage): depends_on("pkgconfig", type="build") depends_on("hwloc@2:+libxml2", type="link") - depends_on("hwloc@2:+cuda+nvml", type="link", when="+cuda") - depends_on("hwloc@2.4:+rocm+opencl", type="link", when="+rocm") depends_on("hwloc@2:+pci", type="link", when=(sys.platform != "darwin")) + depends_on("hwloc@2: +cuda +nvml", type="link", when="+cuda") + depends_on("hwloc@2.4: +rocm +opencl", type="link", when="@:0.19 +rocm") + depends_on("hwloc@2.4: +rocm", type="link", when="@0.20: +rocm") + + # Need mpibind v0.23+ and hwloc v2.12+ for NV Grace Hopper + depends_on("hwloc@2.12: +cuda +nvml", type="link", when="@0.23: +cuda target=neoverse_v2:") + conflicts( + "@:0.22 +cuda target=neoverse_v2:", msg="version 0.23+ is needed for NVIDIA Grace Hopper" + ) + # flux-core >= 0.30.0 supports FLUX_SHELL_RC_PATH, # which is needed to load the plugin into Flux - depends_on("flux-core@0.30:", when="+flux", type="link") - - depends_on("python@3:", when="+python", type=("build", "run")) - depends_on("py-cffi", when="+python", type=("build", "run")) + depends_on("flux-core@0.30:", type="link", when="+flux") + + # The slurm spack package does not provide + # slurm.pc (pkgconf). If mpibind can't find + # slurm's includedir, the plugin won't be built. + # If slurm.pc is provided by slurm at some point, + # uncomment the dependency below, otherwise, + # make sure this works: + # pkg-config --variable=includedir slurm + # depends_on("slurm", type="link", + # when="+slurm") + + depends_on("python@3:", type=("build", "run"), when="+python") + depends_on("py-cffi", type=("build", "run"), when="+python") def autoreconf(self, spec, prefix): autoreconf("--install", "--verbose", "--force") diff --git a/repos/spack_repo/builtin/packages/mpich/package.py b/repos/spack_repo/builtin/packages/mpich/package.py index 04dad1758dd..b99d8addfdd 100644 --- a/repos/spack_repo/builtin/packages/mpich/package.py +++ b/repos/spack_repo/builtin/packages/mpich/package.py @@ -79,6 +79,10 @@ class Mpich(MpichEnvironmentModifications, AutotoolsPackage, CudaPackage, ROCmPa license("mpich2") version("develop", submodules=True) + version("5.0.1", sha256="8c1832a13ddacf071685069f5fadfd1f2877a29e1a628652892c65211b1f3327") + version("5.0.0", sha256="e9350e32224283e95311f22134f36c98e3cd1c665d17fae20a6cc92ed3cffe11") + version("4.3.2", sha256="47d774587a7156a53752218c811c852e70ac44db9c502dc3f399b4cb817e3818") + version("4.3.1", sha256="acc11cb2bdc69678dc8bba747c24a28233c58596f81f03785bf2b7bb7a0ef7dc") version("4.3.0", sha256="5e04132984ad83cab9cc53f76072d2b5ef5a6d24b0a9ff9047a8ff96121bcc63") version("4.2.3", sha256="7a019180c51d1738ad9c5d8d452314de65e828ee240bcb2d1f80de9a65be88a8") version("4.2.2", sha256="883f5bb3aeabf627cb8492ca02a03b191d09836bbe0f599d8508351179781d41") @@ -171,8 +175,8 @@ class Mpich(MpichEnvironmentModifications, AutotoolsPackage, CudaPackage, ROCmPa multi=False, ) for _yaksa_cond in ( - "@4.0: device=ch4 datatype-engine=auto", - "@4.0: device=ch4 datatype-engine=yaksa", + "@4.0:4.3 device=ch4 datatype-engine=auto", + "@4.0:4.3 device=ch4 datatype-engine=yaksa", ): with when(_yaksa_cond): depends_on("yaksa") @@ -182,8 +186,7 @@ class Mpich(MpichEnvironmentModifications, AutotoolsPackage, CudaPackage, ROCmPa variant( "hcoll", default=False, - description="Enable support for Mellanox HCOLL accelerated " - "collective operations library", + description="Enable support for Mellanox HCOLL accelerated collective operations library", when="@3.3: device=ch4 netmod=ucx", ) @@ -212,7 +215,8 @@ class Mpich(MpichEnvironmentModifications, AutotoolsPackage, CudaPackage, ROCmPa conflicts("+rocm", when="device=ch3:sock") conflicts("+cuda", when="+rocm", msg="CUDA must be disabled to support ROCm") - provides("mpi@:4.0") + provides("mpi@:5.0", when="@5:") + provides("mpi@:4.0", when="@:4.3") provides("mpi@:3.1", when="@:3.2") provides("mpi@:3.0", when="@:3.1") provides("mpi@:2.2", when="@:1.2") @@ -311,14 +315,17 @@ class Mpich(MpichEnvironmentModifications, AutotoolsPackage, CudaPackage, ROCmPa depends_on("pkgconfig", type="build") depends_on("hwloc@2.0.0:", when="@3.3: +hwloc") + depends_on("hwloc@2.0.0: +cuda", when="@3.3: +cuda+hwloc") depends_on("libfabric", when="netmod=ofi") + depends_on("libfabric+cuda", when="+cuda netmod=ofi") # The ch3 ofi netmod results in crashes with libfabric 1.7 # See https://github.com/pmodels/mpich/issues/3665 depends_on("libfabric@:1.6", when="device=ch3 netmod=ofi") depends_on("libfabric@1.5:", when="@3.4: device=ch4 netmod=ofi") depends_on("ucx", when="netmod=ucx") + depends_on("ucx+cuda", when="+cuda netmod=ucx") depends_on("mxm", when="netmod=mxm") # The dependencies on libpciaccess and libxml2 come from the embedded @@ -351,7 +358,7 @@ class Mpich(MpichEnvironmentModifications, AutotoolsPackage, CudaPackage, ROCmPa depends_on("autoconf@2.67:", when="@3.3 +hwloc", type="build") # MPICH's Yaksa submodule requires python to configure - depends_on("python@3.0:", when="@develop", type="build") + depends_on("python@3.0:", when="@5:", type="build") depends_on("cray-pmi", when="pmi=cray") depends_on("oneapi-level-zero", when="+level_zero") @@ -509,7 +516,7 @@ def autoreconf(self, spec, prefix): if os.path.exists(self.configure_abs_path) and not spec.satisfies("@3.3 +hwloc"): return # Else bootstrap with autotools - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") def configure_args(self): @@ -666,7 +673,7 @@ def mpi_launcher(self): ] if "+slurm" in self.spec: commands.insert(0, join_path(self.spec["slurm"].prefix.bin)) - return which(*commands) + return which(*commands, required=True) def run_mpich_test(self, subdir, exe, num_procs=1): """Compile and run the test program.""" @@ -676,7 +683,7 @@ def run_mpich_test(self, subdir, exe, num_procs=1): if not os.path.isfile(src): raise SkipTest(f"{src} is missing") - mpicc = which(os.environ["MPICC"]) + mpicc = which(os.environ["MPICC"], required=True) mpicc("-Wall", "-g", "-o", exe, src) if num_procs > 1: launcher = self.mpi_launcher() @@ -684,7 +691,7 @@ def run_mpich_test(self, subdir, exe, num_procs=1): launcher("-n", str(num_procs), exe) return - test_exe = which(exe) + test_exe = which(exe, required=True) test_exe() def test_cpi(self): diff --git a/repos/spack_repo/builtin/packages/mpitrampoline/package.py b/repos/spack_repo/builtin/packages/mpitrampoline/package.py index a7704b6aa0f..de5e0f25b15 100644 --- a/repos/spack_repo/builtin/packages/mpitrampoline/package.py +++ b/repos/spack_repo/builtin/packages/mpitrampoline/package.py @@ -8,8 +8,7 @@ class Mpitrampoline(CMakePackage): - """MPItrampoline: A forwarding MPI implementation that can use any other - MPI implementation via an MPI ABI.""" + """A forwarding MPI implementation that can use any other MPI implementation via an MPI ABI""" homepage = "https://github.com/eschnett/MPItrampoline" url = "https://github.com/eschnett/MPItrampoline/archive/v1.0.1.tar.gz" @@ -20,49 +19,56 @@ class Mpitrampoline(CMakePackage): license("MIT") version("develop", branch="main") + version("5.5.0", sha256="bdfb145b754cf13d38485808f79a5638d954dbe181e7bb53a1950c71deed6989") + version("5.4.1", sha256="b8b19e2724799db850795202d88a4f10be5ec966eb761abeeeb902e67895f9a9") version("5.3.1", sha256="8671370750587f212f059138abc6dcaa5a1079d3dbd9189dc21bf353611159eb") - version("5.3.0", sha256="c20a04fe72965d46f747d5e2c4e7854cfe0cc1b2db47c2484b06a7f24f86728f") version("5.2.3", sha256="41ef0f5bc8bbf3497c4595e845cb15573dde1c9395a031b63a3f7e09673c8ce8") - version("5.2.0", sha256="5f89c61f7b93d8f249ffc8de1abad7acab34c5f980e5d74915e4e041c461aeb4") version("5.1.0", sha256="b06de30ad9c6fb50b78326378c5d70885d247cc30226d26d2a42f137a3580f99") version("5.0.2", sha256="14e457f05d8dfbc330c9590220687d277dec154e6cb9e35859bad1d7d9993356") - version("5.0.1", sha256="84c275600010339eb8561aa7c27c20cefc8db78779dfb4572397bb0ffe87e75e") - version("5.0.0", sha256="3dad6350efc9adb0c53181f2593b03cc94a00dab32f9efc44366e30c50c27e93") version("4.2.0", sha256="92eaa864fb364752a89752d6962f2d20e248bdf69e433d76417a25cac9b8244b") - version("4.1.2", sha256="b3095c813276eb16c11a869d9ff628c5803cc580649b43260a1c7c239e4fd36d") - version("4.1.1", sha256="64e90e4a6b83269ff82787f7aeffe87a5c50702366cee8c48d222b475cd6864b") - version("4.1.0", sha256="9aba72eceb0a0fd6f7617b5fa86fe35c813a131aec9732304925893f419ea902") - version("4.0.2", sha256="89abda0526dba9e52a3b6334d1ac86709c12567ff114acd610471e66c6190b89") - version("4.0.1", sha256="b1622b408c76bd6ac7ccd30b66066d8b08dd0a67596988b215ee9870ba0a9811") - version("4.0.0", sha256="6fcd9683059da79e530bedf61ec27ce98567b6b39575272fd2fa637fe3df3edd") - version("3.8.0", sha256="493e9a383012a43d77d142775c332928aa3302a1f591ee06b88d5f9145281e00") - version("3.7.0", sha256="f2d018dd7bbed4ed177b49fcbfef9cabdd5f2c614257ce4c599ab7214130b097") - version("3.6.0", sha256="cc2c0630243aae43e6502ebe52f1cfe7fecbcf2930e9fe0f69b77c0bbb3f08ff") - version("3.5.1", sha256="5e6439b2cceb69c53f2fee8bec1b913c527166a03207e8739dab7d6b41d47747") - version("3.5.0", sha256="e7497bfa5902cd62fdd40aff1de654c782218cf07f776ba2a8b78815044d2df3") - version("3.4.1", sha256="03728045f1d19b2ed3eeb10e9c86b2db8891d3eedd5db7ce81a647c88b2cd98f") - version("3.4.0", sha256="9dd4d7434a2df4ac3807d07ffe46f00316a6f7f8e6393213b900d4ceb24403bb") - version("3.3.1", sha256="53ce6db1f6197330883243543401d85ebab25d204687ea699f4767f6bd9890aa") - version("3.3.0", sha256="0a4b465fdf0a7329bf998c1adb47dfaed0b1a85d41ff305fa3205f2d2a6f39ba") - version("3.2.0", sha256="88efa3b9b116c89db0c819306caef85b2a97dd4596531856187d6bf59eb4a8b1") - version("3.1.0", sha256="588adba1c84b2a828b054be5e12a4acac820744ab18762c830e9c606f36b50c3") - version("3.0.0", sha256="4a2a1f1d5108e27e4d7f2b46a1dce3c9211f65ac67d0a3281812beade45901d8") - version("2.8.1", sha256="97a1f0c4e06d3b5a92034ebdb334e711b2859e4648a7f728b98abd8e8c96edd7") - version("2.8.0", sha256="bc2a075ced19e5f7ea547060e284887bdbb0761d34d1adb6f16d2e9e096a7d38") - version("2.7.0", sha256="b188657e41b240bba663ce5b3d7b73377a27a64edcc1e0aaa7c924cf00e30b42") - version("2.6.0", sha256="5425085f4b8772990b28a643b7dfc7ac37a399ee35ffa3d6113a06e5b508dfac") - version("2.5.0", sha256="26423749a6a45324062cbe82eb6934236b0c8ea17f9d5b594ed0c15ea8d0dbad") - version("2.4.0", sha256="e08785cf5b43c9913d890be44f6e7a551a83f34f389f6db9136db2379697fadd") - version("2.3.0", sha256="4559acb13d34b9a052752a9e0f928d31da54bfa7b05f31585bf6a66fadaceca4") - version("2.2.0", sha256="fa213a7ac03b4c54d5c9281192fb604747d4b5be4ce9b54b4c740f3da7a6aaea") - version("2.1.0", sha256="8794c07772ecc6d979ecf475653ae571a593d01ef2df51ccbc63c9f9d9c67856") - version("2.0.0", sha256="50d4483f73ea4a79a9b6d025d3abba42f76809cba3165367f4810fb8798264b6") - version("1.1.0", sha256="67fdb710d1ca49487593a9c023e94aa8ff0bec56de6005d1a437fca40833def9") - version("1.0.1", sha256="4ce91b99fb6d2dab481b5e477b6b6a0709add48cf0f287afbbb440fdf3232500") - - depends_on("c", type="build") # generated + + with default_args(deprecated=True): + # Keep latest minor for the current major version + version("5.3.0", sha256="c20a04fe72965d46f747d5e2c4e7854cfe0cc1b2db47c2484b06a7f24f86728f") + version("5.2.0", sha256="5f89c61f7b93d8f249ffc8de1abad7acab34c5f980e5d74915e4e041c461aeb4") + version("5.0.1", sha256="84c275600010339eb8561aa7c27c20cefc8db78779dfb4572397bb0ffe87e75e") + version("5.0.0", sha256="3dad6350efc9adb0c53181f2593b03cc94a00dab32f9efc44366e30c50c27e93") + # Deprecate everything but latest release of the previous major version + version("4.1.2", sha256="b3095c813276eb16c11a869d9ff628c5803cc580649b43260a1c7c239e4fd36d") + version("4.1.1", sha256="64e90e4a6b83269ff82787f7aeffe87a5c50702366cee8c48d222b475cd6864b") + version("4.1.0", sha256="9aba72eceb0a0fd6f7617b5fa86fe35c813a131aec9732304925893f419ea902") + version("4.0.2", sha256="89abda0526dba9e52a3b6334d1ac86709c12567ff114acd610471e66c6190b89") + version("4.0.1", sha256="b1622b408c76bd6ac7ccd30b66066d8b08dd0a67596988b215ee9870ba0a9811") + version("4.0.0", sha256="6fcd9683059da79e530bedf61ec27ce98567b6b39575272fd2fa637fe3df3edd") + # Deprecate earlier major versions + version("3.8.0", sha256="493e9a383012a43d77d142775c332928aa3302a1f591ee06b88d5f9145281e00") + version("3.7.0", sha256="f2d018dd7bbed4ed177b49fcbfef9cabdd5f2c614257ce4c599ab7214130b097") + version("3.6.0", sha256="cc2c0630243aae43e6502ebe52f1cfe7fecbcf2930e9fe0f69b77c0bbb3f08ff") + version("3.5.1", sha256="5e6439b2cceb69c53f2fee8bec1b913c527166a03207e8739dab7d6b41d47747") + version("3.5.0", sha256="e7497bfa5902cd62fdd40aff1de654c782218cf07f776ba2a8b78815044d2df3") + version("3.4.1", sha256="03728045f1d19b2ed3eeb10e9c86b2db8891d3eedd5db7ce81a647c88b2cd98f") + version("3.4.0", sha256="9dd4d7434a2df4ac3807d07ffe46f00316a6f7f8e6393213b900d4ceb24403bb") + version("3.3.1", sha256="53ce6db1f6197330883243543401d85ebab25d204687ea699f4767f6bd9890aa") + version("3.3.0", sha256="0a4b465fdf0a7329bf998c1adb47dfaed0b1a85d41ff305fa3205f2d2a6f39ba") + version("3.2.0", sha256="88efa3b9b116c89db0c819306caef85b2a97dd4596531856187d6bf59eb4a8b1") + version("3.1.0", sha256="588adba1c84b2a828b054be5e12a4acac820744ab18762c830e9c606f36b50c3") + version("3.0.0", sha256="4a2a1f1d5108e27e4d7f2b46a1dce3c9211f65ac67d0a3281812beade45901d8") + version("2.8.1", sha256="97a1f0c4e06d3b5a92034ebdb334e711b2859e4648a7f728b98abd8e8c96edd7") + version("2.8.0", sha256="bc2a075ced19e5f7ea547060e284887bdbb0761d34d1adb6f16d2e9e096a7d38") + version("2.7.0", sha256="b188657e41b240bba663ce5b3d7b73377a27a64edcc1e0aaa7c924cf00e30b42") + version("2.6.0", sha256="5425085f4b8772990b28a643b7dfc7ac37a399ee35ffa3d6113a06e5b508dfac") + version("2.5.0", sha256="26423749a6a45324062cbe82eb6934236b0c8ea17f9d5b594ed0c15ea8d0dbad") + version("2.4.0", sha256="e08785cf5b43c9913d890be44f6e7a551a83f34f389f6db9136db2379697fadd") + version("2.3.0", sha256="4559acb13d34b9a052752a9e0f928d31da54bfa7b05f31585bf6a66fadaceca4") + version("2.2.0", sha256="fa213a7ac03b4c54d5c9281192fb604747d4b5be4ce9b54b4c740f3da7a6aaea") + version("2.1.0", sha256="8794c07772ecc6d979ecf475653ae571a593d01ef2df51ccbc63c9f9d9c67856") + version("2.0.0", sha256="50d4483f73ea4a79a9b6d025d3abba42f76809cba3165367f4810fb8798264b6") + version("1.1.0", sha256="67fdb710d1ca49487593a9c023e94aa8ff0bec56de6005d1a437fca40833def9") + version("1.0.1", sha256="4ce91b99fb6d2dab481b5e477b6b6a0709add48cf0f287afbbb440fdf3232500") + + depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("fortran", type="build") # generated + depends_on("fortran", type="build") variant("shared", default=True, description="Build a shared version of the library") @@ -99,9 +105,13 @@ def setup_dependent_build_environment( ) -> None: dependent_module = dependent_spec.package.module # Use the Spack compiler wrappers under MPI - env.set("MPITRAMPOLINE_CC", dependent_module.spack_cc) - env.set("MPITRAMPOLINE_CXX", dependent_module.spack_cxx) - env.set("MPITRAMPOLINE_FC", dependent_module.spack_fc) + for var_name, attr_name in ( + ("MPITRAMPOLINE_CC", "spack_cc"), + ("MPITRAMPOLINE_CXX", "spack_cxx"), + ("MPITRAMPOLINE_FC", "spack_fc"), + ): + if hasattr(dependent_module, attr_name): + env.set(var_name, getattr(dependent_module, attr_name)) fflags = [] if ( self.spec.satisfies("%apple-clang") diff --git a/repos/spack_repo/builtin/packages/mpsolve/package.py b/repos/spack_repo/builtin/packages/mpsolve/package.py new file mode 100644 index 00000000000..cea8c242f40 --- /dev/null +++ b/repos/spack_repo/builtin/packages/mpsolve/package.py @@ -0,0 +1,36 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Mpsolve(AutotoolsPackage): + """MPSolve is a multiprecision polynomial solver designed as a + universal blackbox for solving polynomials and secular + equations. It supports arbitrary precision approximation, provides + guaranteed inclusion radii for computed roots, and exploits + polynomial structure such as sparsity and special coefficient + domains. MPSolve can also be specialized for particular classes of + polynomials, enabling large-scale computations like the roots of + the Mandelbrot polynomial of degree over two million.""" + + homepage = "https://numpi.dm.unipi.it/scientific-computing-libraries/mpsolve/" + + maintainers("d-torrance") + + license("GPL-3.0-or-later", checked_by="d-torrance") + + version( + "3.2.3", + sha256="1f2e239c698c783b63a5e6903e76316c0335a01d71c466a8551e8a3f790b3971", + url="https://numpi.dm.unipi.it/wp-content/uploads/2025/08/mpsolve-3.2.3.tar.bz2", + ) + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + + depends_on("gmp") diff --git a/repos/spack_repo/builtin/packages/mptensor/package.py b/repos/spack_repo/builtin/packages/mptensor/package.py index bdc178df58d..7e90a7b41be 100644 --- a/repos/spack_repo/builtin/packages/mptensor/package.py +++ b/repos/spack_repo/builtin/packages/mptensor/package.py @@ -102,10 +102,10 @@ def test_tensor_test(self): math_libs = self.spec["scalapack"].libs + self.spec["lapack"].libs + self.spec["blas"].libs with working_dir(self.test_suite.current_test_cache_dir.tests): - make = which("make") + make = which("make", required=True) make(f"LDFLAGS={math_libs.ld_flags}") - mpirun = which(self.spec["mpi"].prefix.bin.mpirun) + mpirun = which(self.spec["mpi"].prefix.bin.mpirun, required=True) mpirun("-n", "1", "tensor_test.out") # Test of mptensor has checker diff --git a/repos/spack_repo/builtin/packages/mrnet/krell-5.0.1.patch b/repos/spack_repo/builtin/packages/mrnet/krell-5.0.1.patch deleted file mode 100644 index 53294fbbc63..00000000000 --- a/repos/spack_repo/builtin/packages/mrnet/krell-5.0.1.patch +++ /dev/null @@ -1,154 +0,0 @@ ---- mrnet-3093918/include/mrnet/Types.h 2015-12-10 09:32:24.000000000 -0800 -+++ mrnet_top_of_tree/include/mrnet/Types.h 2016-03-16 12:29:33.986132302 -0700 -@@ -23,7 +23,7 @@ - #ifndef MRNET_VERSION_MAJOR - # define MRNET_VERSION_MAJOR 5 - # define MRNET_VERSION_MINOR 0 --# define MRNET_VERSION_REV 0 -+# define MRNET_VERSION_REV 1 - #endif - - namespace MRN ---- mrnet-3093918/include/mrnet_lightweight/Types.h 2015-12-10 09:32:24.000000000 -0800 -+++ mrnet_top_of_tree/include/mrnet_lightweight/Types.h 2016-03-16 12:29:33.987132302 -0700 -@@ -30,7 +30,7 @@ - #ifndef MRNET_VERSION_MAJOR - #define MRNET_VERSION_MAJOR 5 - #define MRNET_VERSION_MINOR 0 --#define MRNET_VERSION_REV 0 -+#define MRNET_VERSION_REV 1 - #endif - void get_Version(int* major, - int* minor, ---- mrnet-3093918/src/lightweight/SerialGraph.c 2015-12-10 09:32:24.000000000 -0800 -+++ mrnet_top_of_tree/src/lightweight/SerialGraph.c 2016-03-16 12:29:33.995132302 -0700 -@@ -59,7 +59,7 @@ - - mrn_dbg_func_begin(); - -- sprintf(hoststr, "[%s:%hu:%u:", ihostname, iport, irank); -+ sprintf(hoststr, "[%s:%05hu:%u:", ihostname, iport, irank); - mrn_dbg(5, mrn_printf(FLF, stderr, "looking for SubTreeRoot: '%s'\n", hoststr)); - - byte_array = sg->byte_array; -@@ -110,7 +110,7 @@ - - mrn_dbg_func_begin(); - -- len = (size_t) sprintf(hoststr, "[%s:%hu:%u:0]", ihostname, iport, irank); -+ len = (size_t) sprintf(hoststr, "[%s:%05hu:%u:0]", ihostname, iport, irank); - mrn_dbg(5, mrn_printf(FLF, stderr, "adding sub tree leaf: %s\n", hoststr)); - - len += strlen(sg->byte_array) + 1; -@@ -139,7 +139,7 @@ - - mrn_dbg_func_begin(); - -- len = (size_t) sprintf(hoststr, "[%s:%hu:%u:1", ihostname, iport, irank); -+ len = (size_t) sprintf(hoststr, "[%s:%05hu:%u:1", ihostname, iport, irank); - mrn_dbg(5, mrn_printf(FLF, stderr, "adding sub tree root: %s\n", hoststr)); - - len += strlen(sg->byte_array) + 1; -@@ -360,8 +360,8 @@ - char old_hoststr[256]; - char new_hoststr[256]; - -- sprintf(old_hoststr, "[%s:%hu:%u:", hostname, UnknownPort, irank); -- sprintf(new_hoststr, "[%s:%hu:%u:", hostname, port, irank); -+ sprintf(old_hoststr, "[%s:%05hu:%u:", hostname, UnknownPort, irank); -+ sprintf(new_hoststr, "[%s:%05hu:%u:", hostname, port, irank); - - old_byte_array = sg->byte_array; - new_byte_array = (char*) malloc( strlen(old_byte_array) + 10 ); ---- mrnet-3093918/xplat/src/lightweight/SocketUtils.c 2015-12-10 09:32:24.000000000 -0800 -+++ mrnet_top_of_tree/xplat/src/lightweight/SocketUtils.c 2016-03-16 12:29:34.006132303 -0700 -@@ -15,7 +15,7 @@ - #else - const XPlat_Socket InvalidSocket = INVALID_SOCKET; - #endif --const XPlat_Port InvalidPort = (XPlat_Port)-1; -+const XPlat_Port InvalidPort = (XPlat_Port)0; - - static bool_t SetTcpNoDelay( XPlat_Socket sock ) - { ---- mrnet-3093918/conf/configure.in 2015-12-10 09:32:24.000000000 -0800 -+++ mrnet_top_of_tree/conf/configure.in 2016-03-16 12:45:54.573196781 -0700 -@@ -107,6 +107,18 @@ - AC_SUBST(PURIFY) - - -+AC_ARG_WITH(expat, -+ [AS_HELP_STRING([--with-expat=PATH], -+ [Absolute path to installation of EXPAT libraries (note: specify the path to the directory containing "include" and "lib" sub-directories)])], -+ [EXPAT_DIR="${withval}"], -+ [EXPAT_DIR=""]) -+ -+if test "x$EXPAT_DIR" = "x" ; then -+ EXPAT_LIB="" -+else -+ EXPAT_LIB="-L$EXPAT_DIR/lib" -+fi -+ - dnl === Checks for header files. - AC_CHECK_HEADERS([assert.h errno.h fcntl.h limits.h netdb.h signal.h stddef.h stdlib.h stdio.h string.h unistd.h arpa/inet.h netinet/in.h sys/ioctl.h sys/socket.h sys/sockio.h sys/time.h]) - AC_HEADER_STDBOOL -@@ -432,7 +444,7 @@ - CRAYXT_ATH_LIBS_SO="$CRAYXT_ATH_LIBS -lalps" - CRAYXT_ATH_LIBS="$CRAYXT_ATH_LIBS -Wl,-Bstatic -lalps -lxmlrpc -Wl,-Bdynamic" - CRAYXE_ATH_LIBS_SO="$CRAYXE_ATH_LIBS -lalps" -- CRAYXE_ATH_LIBS="$CRAYXE_ATH_LIBS -Wl,-Bstatic -lalps -lxmlrpc-epi -lexpat -Wl,-Bdynamic" -+ CRAYXE_ATH_LIBS="$CRAYXE_ATH_LIBS -Wl,-Bstatic -lalps -lxmlrpc-epi $EXPAT_LIB -lexpat -Wl,-Bdynamic" - - AC_CHECK_LIB( [alps], [alps_launch_tool_helper], - [HAVE_ATH_LIBS="yes"; EXTRA_LIBS="$CRAYXT_ATH_LIBS $EXTRA_LIBS"; EXTRA_LIBS_SO="$CRAYXT_ATH_LIBS_SO $EXTRA_LIBS_SO"], ---- mrnet-3093918/configure 2015-12-10 09:32:24.000000000 -0800 -+++ mrnet_top_of_tree/configure 2016-03-16 13:47:20.386439143 -0700 -@@ -742,6 +742,7 @@ - enable_debug - enable_ltwt_threadsafe - with_purify -+with_expat - ' - ac_precious_vars='build_alias - host_alias -@@ -1399,6 +1400,9 @@ - containing "include" and "lib" sub-directories) - --with-launchmon=PATH Absolute path to installation of LaunchMON - --with-purify Use purify for memory debugging -+ --with-expat=PATH Absolute path to installation of EXPAT libraries -+ (note: specify the path to the directory containing -+ "include" and "lib" sub-directories) - - Some influential environment variables: - CC C compiler command -@@ -3541,6 +3545,21 @@ - - - -+# Check whether --with-expat was given. -+if test "${with_expat+set}" = set; then : -+ withval=$with_expat; EXPAT_DIR="${withval}" -+else -+ EXPAT_DIR="" -+fi -+ -+ -+if test "x$EXPAT_DIR" = "x" ; then -+ EXPAT_LIB="" -+else -+ EXPAT_LIB="-L$EXPAT_DIR/lib" -+fi -+ -+ - ac_ext=cpp - ac_cpp='$CXXCPP $CPPFLAGS' - ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -@@ -5473,7 +5492,7 @@ - CRAYXT_ATH_LIBS_SO="$CRAYXT_ATH_LIBS -lalps" - CRAYXT_ATH_LIBS="$CRAYXT_ATH_LIBS -Wl,-Bstatic -lalps -lxmlrpc -Wl,-Bdynamic" - CRAYXE_ATH_LIBS_SO="$CRAYXE_ATH_LIBS -lalps" -- CRAYXE_ATH_LIBS="$CRAYXE_ATH_LIBS -Wl,-Bstatic -lalps -lxmlrpc-epi -lexpat -Wl,-Bdynamic" -+ CRAYXE_ATH_LIBS="$CRAYXE_ATH_LIBS -Wl,-Bstatic -lalps -lxmlrpc-epi $EXPAT_LIB -lexpat -Wl,-Bdynamic" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alps_launch_tool_helper in -lalps" >&5 - $as_echo_n "checking for alps_launch_tool_helper in -lalps... " >&6; } diff --git a/repos/spack_repo/builtin/packages/mscclpp/mscclpp-numa-include-dir-001.patch b/repos/spack_repo/builtin/packages/mscclpp/mscclpp-numa-include-dir-001.patch new file mode 100644 index 00000000000..46fac421b38 --- /dev/null +++ b/repos/spack_repo/builtin/packages/mscclpp/mscclpp-numa-include-dir-001.patch @@ -0,0 +1,23 @@ +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 21b0c57..428b39d 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -3,12 +3,15 @@ + + find_package(MPI) + +-set(TEST_LIBS_COMMON mscclpp ${GPU_LIBRARIES} ${NUMA_LIBRARIES} Threads::Threads) ++find_library(NUMA numa) ++find_path(NUMA_INCLUDE_DIR numa.h) ++ ++set(TEST_LIBS_COMMON mscclpp ${GPU_LIBRARIES} ${NUMA} ${NUMA_LIBRARIES} Threads::Threads) + if(IBVERBS_FOUND) + list(APPEND TEST_LIBS_COMMON ${IBVERBS_LIBRARIES}) + endif() + set(TEST_LIBS_GTEST GTest::gtest_main GTest::gmock_main) +-set(TEST_INC_COMMON PRIVATE ${PROJECT_SOURCE_DIR}/include SYSTEM PRIVATE ${GPU_INCLUDE_DIRS}) ++set(TEST_INC_COMMON PRIVATE ${PROJECT_SOURCE_DIR}/include ${NUMA_INCLUDE_DIR} SYSTEM PRIVATE ${GPU_INCLUDE_DIRS}) + set(TEST_INC_INTERNAL PRIVATE ${PROJECT_SOURCE_DIR}/src/include) + + if(MSCCLPP_USE_ROCM) + diff --git a/repos/spack_repo/builtin/packages/mscclpp/package.py b/repos/spack_repo/builtin/packages/mscclpp/package.py new file mode 100644 index 00000000000..3eaae716009 --- /dev/null +++ b/repos/spack_repo/builtin/packages/mscclpp/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.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage + +from spack.package import * + + +class Mscclpp(CMakePackage, ROCmPackage, CudaPackage): + """MSCCL++: A GPU-driven communication stack for scalable AI applications""" + + homepage = "https://microsoft.github.io/mscclpp/index.html" + url = "https://github.com/microsoft/mscclpp/archive/refs/tags/v0.7.0.tar.gz" + + license("MIT") + + version("0.7.0", sha256="d9d5166dc300b63a2c70d4a25b7c72e811661360abb8195d08a62b38fed06840") + version("0.6.0", sha256="d88578261ece5a0aebd4e42cee2b0711d72c3e20287c3fafccda6ccb3f4fbfc3") + + variant("rocm", default=True, description="Enable ROCm support") + variant("cuda", default=False, description="Enable CUDA support") + + conflicts("+cuda +rocm", msg="CUDA and ROCm support are mutually exclusive") + conflicts("~cuda ~rocm", msg="CUDA or ROCm support is required") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cmake@3.20:", type="build") + depends_on("python@3:", type=("build", "run")) + depends_on("hip@6.2.0:", when="+rocm") + depends_on("nlohmann-json", type="link") + depends_on("numactl@2:") + depends_on("mpi") + + patch("mscclpp-numa-include-dir-001.patch") + + def cmake_args(self): + args = [ + self.define("PYTHON_BIN_PATH", python.path), + self.define_from_variant("MSCCLPP_USE_CUDA", "cuda"), + self.define_from_variant("MSCCLPP_USE_ROCM", "rocm"), + ] + if self.spec.satisfies("+rocm"): + args.append(f"-DCMAKE_CXX_COMPILER={self.spec['hip'].prefix.bin.hipcc}") + rocm_arch = self.spec.variants["amdgpu_target"].value + if "none" not in rocm_arch: + args.append(f"-DCMAKE_CXX_FLAGS={self.hip_flags(rocm_arch)}") + return args diff --git a/repos/spack_repo/builtin/packages/msgpack_c/package.py b/repos/spack_repo/builtin/packages/msgpack_c/package.py index 378998af137..d0857955aa3 100644 --- a/repos/spack_repo/builtin/packages/msgpack_c/package.py +++ b/repos/spack_repo/builtin/packages/msgpack_c/package.py @@ -17,11 +17,6 @@ class MsgpackC(CMakePackage): version("3.1.1", sha256="bda49f996a73d2c6080ff0523e7b535917cd28c8a79c3a5da54fc29332d61d1e") version("3.0.1", sha256="1b834ab0b5b41da1dbfb96dd4a673f6de7e79dbd7f212f45a553ff9cc54abf3b") - version( - "1.4.1", - sha256="74324d696f9abb75d8a7cd5e77add5062592b7eac386c8102de78a6cc5309886", - deprecated=True, - ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/msmpi/package.py b/repos/spack_repo/builtin/packages/msmpi/package.py index 08a27e3c5d2..d3aec6dcc50 100644 --- a/repos/spack_repo/builtin/packages/msmpi/package.py +++ b/repos/spack_repo/builtin/packages/msmpi/package.py @@ -51,6 +51,15 @@ class Msmpi(msbuild.MSBuildPackage): # We know its present because we have a WDK # patches the build system to just directly call the MC patch("no_mc.patch") + # MSBuild does not handle paths with spaces well + # nor does MSMPIs msbuild system introduce the proper + # quoting required to use paths with spaces + # this patch adds the required quoting to handle + # stages and install prefixes with spaces + # this patch must be the last patch applied + # and should be updated if other patches + # add lines that require quoting + patch("quote_source_tree_refs.patch") requires("platform=windows") requires("%msvc") @@ -72,8 +81,8 @@ def setup_dependent_package(self, module, dependent_spec): self.spec.mpicc = dependent_spec["c"].package.cc self.spec.mpicxx = dependent_spec["cxx"].package.cxx if "fortran" in dependent_spec: - self.spec.mpifc = dependent_spec["fortran"].package.fc - self.spec.mpif77 = dependent_spec["fortran"].package.f77 + self.spec.mpifc = dependent_spec["fortran"].package.fortran + self.spec.mpif77 = dependent_spec["fortran"].package.fortran class MSBuildBuilder(msbuild.MSBuildBuilder): @@ -114,5 +123,21 @@ def install(self, pkg, spec, prefix): install_path = x.replace(build_configuration, prefix) mkdirp(os.path.dirname(install_path)) install(x, install_path) + + # construct more traditional install layout + # grab all .lib .exp and .pdb files from their components specific layouts + # glob statement matches any of the above. + # symlink all linking related components (libs, .exp, etc) + # to lib + def link_to_lib(file_type): + for x in glob.glob(os.path.join(prefix, "**", f"*.{file_type}")): + install_path = os.path.join(prefix.lib, os.path.basename(x)) + symlink(x, install_path) + + mkdirp(prefix.lib) + link_to_lib("lib") + link_to_lib("pdb") + link_to_lib("exp") + include_dir = os.path.join(os.path.join(base_build, "src"), "include") install_tree(include_dir, prefix.include) diff --git a/repos/spack_repo/builtin/packages/msmpi/quote_source_tree_refs.patch b/repos/spack_repo/builtin/packages/msmpi/quote_source_tree_refs.patch new file mode 100644 index 00000000000..cd1a7d026f9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/msmpi/quote_source_tree_refs.patch @@ -0,0 +1,193 @@ +diff --git a/src/launchSvc/msmpiLaunchSvcMc.vcxproj b/src/launchSvc/msmpiLaunchSvcMc.vcxproj +index b9a9eba..e299044 100644 +--- a/src/launchSvc/msmpiLaunchSvcMc.vcxproj ++++ b/src/launchSvc/msmpiLaunchSvcMc.vcxproj +@@ -16,7 +16,7 @@ + + + +- mc.exe -um -h $(SrcRoot)\launchSvc\$(O) -r $(SrcRoot)\launchSvc\$(O) $(SrcRoot)\launchSvc\launchSvcMsg.mc ++ mc.exe -um -h "$(SrcRoot)\launchSvc\$(O)" -r "$(SrcRoot)\launchSvc\$(O)" "$(SrcRoot)\launchSvc\launchSvcMsg.mc" + $(SrcRoot)\launchSvc\$(O)\launchSvcMsg.h;$(SrcRoot)\launchSvc\$(O)\launchSvcMsg.rc + + +diff --git a/src/mpi/common/mpicommon.vcxproj b/src/mpi/common/mpicommon.vcxproj +index a3f7e70..f06f77d 100644 +--- a/src/mpi/common/mpicommon.vcxproj ++++ b/src/mpi/common/mpicommon.vcxproj +@@ -23,7 +23,7 @@ + $(IntDir)\pch_hdr.src + + %(AdditionalIncludeDirectories); +- $(MPI_SRC_ROOT)\common\$(O); ++ "$(MPI_SRC_ROOT)\common\$(O)"; + + + +@@ -59,7 +59,7 @@ + + + +- robocopy .\ $(BinariesBuildTypeArchDirectory)\$(MPI_BIN_DESTINATION) mpitrace.man ++ robocopy .\ "$(BinariesBuildTypeArchDirectory)\$(MPI_BIN_DESTINATION)" mpitrace.man + set rc=%errorlevel% + if not %rc%==1 exit %rce% else exit 0 + +@@ -78,20 +78,20 @@ if not %rc%==1 exit %rce% else exit 0 + Inputs="$(MPI_SRC_ROOT)\common\extracterrmsgs;$(MPI_SRC_ROOT)\common\errnames.txt" + Outputs="$(O)\defmsg.h"> + +- $(BaseIntermediateOutputPath)i386\errtest.c +- $(BaseIntermediateOutputPath)amd64\errtest.c ++ "$(BaseIntermediateOutputPath)i386\errtest.c" ++ "$(BaseIntermediateOutputPath)amd64\errtest.c" + + +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ + + ++ Command="perl "$(MPI_SRC_ROOT)\common\extracterrmsgs" -skip=$(FileToSkip) -outpath=$(O) -outfile=defmsg.h -testfile=errtest.c @(DirectoriesToParse,' ')"/> + + + +diff --git a/src/mpi/common/traceManifest.vcxproj b/src/mpi/common/traceManifest.vcxproj +index eb9281d..c4f6e57 100644 +--- a/src/mpi/common/traceManifest.vcxproj ++++ b/src/mpi/common/traceManifest.vcxproj +@@ -16,7 +16,7 @@ + + + +- mc.exe -um -p Trace -P EVENT_ -h $(MPI_SRC_ROOT)\common\$(O) -r $(MPI_SRC_ROOT)\common\$(O) -z MpiTraceEvents $(MPI_SRC_ROOT)\common\mpitrace.man ++ mc.exe -um -p Trace -P EVENT_ -h "$(MPI_SRC_ROOT)\common\$(O)" -r "$(MPI_SRC_ROOT)\common\$(O)" -z MpiTraceEvents "$(MPI_SRC_ROOT)\common\mpitrace.man" + $(MPI_SRC_ROOT)\common\$(O)\MpiTraceEvents.h;$(MPI_SRC_ROOT)\common\$(O)\MpiTraceEvents.rc + + +diff --git a/src/mpi/msmpi/dll/msmpi.vcxproj b/src/mpi/msmpi/dll/msmpi.vcxproj +index 9eb7dff..884fd63 100644 +--- a/src/mpi/msmpi/dll/msmpi.vcxproj ++++ b/src/mpi/msmpi/dll/msmpi.vcxproj +@@ -20,8 +20,8 @@ + ProgramDatabase + + %(AdditionalIncludeDirectories); +- $(MPI_SRC_ROOT)\msmpi\channels; +- $(MPI_SRC_ROOT)\msmpi\mpid; ++ "$(MPI_SRC_ROOT)\msmpi\channels"; ++ "$(MPI_SRC_ROOT)\msmpi\mpid"; + .\$(O) + + +@@ -45,22 +45,22 @@ + $(PUBLIC_SDK_LIB)\Iphlpapi.lib; + $(PUBLIC_SDK_LIB)\authz.lib; + $(PUBLIC_SDK_LIB)\ntdsapi.lib; +- $(ND_DIR)\ndutil.lib; +- $(OutDir)\..\mpichannels\mpichannels.lib; +- $(OutDir)\..\mpiio\mpiio.lib; +- $(OutDir)\..\mpicommon\mpicommon.lib; +- $(OutDir)\..\mpiutil\mpiutil.lib; +- $(OutDir)\..\pmicli\pmicli.lib; +- $(OutDir)\..\mpiapi\mpiapi.lib; +- $(OutDir)\..\mpid\mpid.lib; +- $(OutDir)\..\mpifort\mpifort.lib; +- $(OutDir)\..\pmilib\pmilib.lib; +- $(OutDir)\..\mpi_debugger\mpi_debugger.lib; ++ "$(ND_DIR)\ndutil.lib"; ++ "$(OutDir)\..\mpichannels\mpichannels.lib"; ++ "$(OutDir)\..\mpiio\mpiio.lib"; ++ "$(OutDir)\..\mpicommon\mpicommon.lib"; ++ "$(OutDir)\..\mpiutil\mpiutil.lib"; ++ "$(OutDir)\..\pmicli\pmicli.lib"; ++ "$(OutDir)\..\mpiapi\mpiapi.lib"; ++ "$(OutDir)\..\mpid\mpid.lib"; ++ "$(OutDir)\..\mpifort\mpifort.lib"; ++ "$(OutDir)\..\pmilib\pmilib.lib"; ++ "$(OutDir)\..\mpi_debugger\mpi_debugger.lib"; + $(CRT_Libs); + + +- $(SPACK_IFORT)\lib; +- $(ND_DIR); ++ "$(SPACK_IFORT)\lib"; ++ "$(ND_DIR)"; + + .\msmpi.def + +@@ -114,7 +114,7 @@ + + + +- robocopy $(OutDir) $(BinariesBuildTypeArchDirectory)\$(MPI_SDK_DESTINATION)\lib msmpi.lib ++ robocopy "$(OutDir)" "$(BinariesBuildTypeArchDirectory)\$(MPI_SDK_DESTINATION)\lib" msmpi.lib + set rc=%errorlevel% + if not %rc%==1 exit %rce% else exit 0 + +diff --git a/src/mpi/msmpi/mpid/mpid.vcxproj b/src/mpi/msmpi/mpid/mpid.vcxproj +index de9cebf..79000ba 100644 +--- a/src/mpi/msmpi/mpid/mpid.vcxproj ++++ b/src/mpi/msmpi/mpid/mpid.vcxproj +@@ -23,17 +23,17 @@ + $(IntDir)\pch_hdr.src + + %(AdditionalIncludeDirectories); +- $(MPI_SRC_ROOT)\msmpi\channels; +- $(MPI_SRC_ROOT)\msmpi\io; +- $(MPI_SRC_ROOT)\msmpi\mpid; +- $(O); ++ "$(MPI_SRC_ROOT)\msmpi\channels"; ++ "$(MPI_SRC_ROOT)\msmpi\io"; ++ "$(MPI_SRC_ROOT)\msmpi\mpid"; ++ "$(O)"; + + + + 8 + MIDL_PASS + unsigned +- /ms_ext /c_ext /sstub $(MPI_SRC_ROOT)\msmpi\mpid\$(O)\dynproc_s.c /prefix all RpcCli /prefix server RpcSrv /no_stamp /no_settings_comment /lcid 1033 -sal -target NT60 ++ /ms_ext /c_ext /sstub "$(MPI_SRC_ROOT)\msmpi\mpid\$(O)\dynproc_s.c" /prefix all RpcCli /prefix server RpcSrv /no_stamp /no_settings_comment /lcid 1033 -sal -target NT60 + true + + +diff --git a/src/mpi/pmilib/cli/pmicli.vcxproj b/src/mpi/pmilib/cli/pmicli.vcxproj +index f2b5d64..58fb74b 100644 +--- a/src/mpi/pmilib/cli/pmicli.vcxproj ++++ b/src/mpi/pmilib/cli/pmicli.vcxproj +@@ -26,8 +26,8 @@ + $(IntDir)\pch_hdr.src + + %(AdditionalIncludeDirectories); +- $(MPI_SRC_ROOT)\msmpi\include; +- $(MPI_SRC_ROOT)\pmilib\lib\$(O); ++ "$(MPI_SRC_ROOT)\msmpi\include"; ++ "$(MPI_SRC_ROOT)\pmilib\lib\$(O)"; + .\$(O) + + +diff --git a/src/mpi/pmilib/lib/pmilib.vcxproj b/src/mpi/pmilib/lib/pmilib.vcxproj +index eff6765..b76c612 100644 +--- a/src/mpi/pmilib/lib/pmilib.vcxproj ++++ b/src/mpi/pmilib/lib/pmilib.vcxproj +@@ -36,7 +36,7 @@ + $(MPI_SRC_ROOT)\common; + + unsigned +- /prefix all RpcCli /prefix server RpcSrv /ms_ext /c_ext /no_stamp /no_settings_comment /lcid 1033 -sal -target NT60 /acf $(MPI_SRC_ROOT)\pmilib\SmpdRpc.acf /sstub $(MPI_SRC_ROOT)\pmilib\lib\$(O)\smpdrpc_s.c ++ /prefix all RpcCli /prefix server RpcSrv /ms_ext /c_ext /no_stamp /no_settings_comment /lcid 1033 -sal -target NT60 /acf "$(MPI_SRC_ROOT)\pmilib\SmpdRpc.acf" /sstub "$(MPI_SRC_ROOT)\pmilib\lib\$(O)\smpdrpc_s.c" + true + + diff --git a/repos/spack_repo/builtin/packages/msolve/package.py b/repos/spack_repo/builtin/packages/msolve/package.py new file mode 100644 index 00000000000..fcb0dc7cb1c --- /dev/null +++ b/repos/spack_repo/builtin/packages/msolve/package.py @@ -0,0 +1,37 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# + +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Msolve(AutotoolsPackage): + """msolve is an open-source C library for solving multivariate polynomial + systems with rational or finite field coefficients. It provides algorithms + for computing Gröbner bases, isolating real roots, and determining + invariants such as the dimension and degree of the solution set, along with + related tools for polynomial system solving.""" + + homepage = "https://msolve.lip6.fr/" + url = "https://github.com/algebraic-solving/msolve/archive/refs/tags/v0.9.3.tar.gz" + + maintainers("d-torrance") + + license("GPL-2.0-or-later", checked_by="d-torrance") + + version("0.9.5", sha256="92b94775cd5a046de307e2ad0fc576d2631e43fbd0eb7749517a033d7e77ddf4") + version("0.9.4", sha256="02572df81596ff1d06b5d841e3fa7652f7d7976ef021c80728bcf0b08824e30c") + version("0.9.3", sha256="2e46b88b38abbe4e4937ef5fc4a90a006d1ff933ffa7563287b5d756de3bcf6e") + + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + + depends_on("c", type="build") + + depends_on("flint") + depends_on("gmp") + depends_on("mpfr") diff --git a/repos/spack_repo/builtin/packages/mstore/package.py b/repos/spack_repo/builtin/packages/mstore/package.py new file mode 100644 index 00000000000..14a691b1df4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/mstore/package.py @@ -0,0 +1,49 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems import cmake, meson +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.meson import MesonPackage + +from spack.package import * + + +class Mstore(MesonPackage, CMakePackage): + """ + Molecular structure store for testing + """ + + homepage = "https://github.com/grimme-lab/mstore" + url = "https://github.com/grimme-lab/mstore/releases/download/v0.3.0/mstore-0.3.0.tar.xz" + git = "https://github.com/grimme-lab/mstore.git" + + maintainers("awvwgk") + + license("LGPL-3.0-or-later") + + build_system("cmake", "meson", default="meson") + + version("main", branch="main") + version("0.3.0", sha256="8cbae54a47339de0f47457d7d0931fb5ac23a6cfc8b54872b925528cf5138523") + version("0.2.0", sha256="932ec27cb327f7bfcdc316ae7d39a13cff03b95946bda79b52fd2fa43c4fd4d4") + + variant("openmp", default=True, description="Use OpenMP parallelisation") + + depends_on("c", type="build") + depends_on("fortran", type="build") + + depends_on("meson@0.57.1:", type="build", when="build_system=meson") # mesonbuild/meson#8377 + depends_on("pkgconfig", type="build") + + for build_system in ["cmake", "meson"]: + depends_on(f"mctc-lib build_system={build_system}", when=f"build_system={build_system}") + + +class MesonBuilder(meson.MesonBuilder): + def meson_args(self): + return ["-Dopenmp={0}".format(str("+openmp" in self.spec).lower())] + + +class CMakeBuilder(cmake.CMakeBuilder): + def cmake_args(self): + return [self.define_from_variant("WITH_OpenMP", "openmp")] diff --git a/repos/spack_repo/builtin/packages/mui/package.py b/repos/spack_repo/builtin/packages/mui/package.py new file mode 100644 index 00000000000..d1ac5275dab --- /dev/null +++ b/repos/spack_repo/builtin/packages/mui/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.cmake import CMakePackage + +from spack.package import * + + +class Mui(CMakePackage): + """Multiscale Universal Interface: A Concurrent Framework for Coupling Heterogeneous Solvers""" + + homepage = "https://mxui.github.io/" + git = "https://github.com/MxUI/MUI.git" + url = "https://github.com/MxUI/MUI/archive/refs/tags/2.0.tar.gz" + + maintainers("blairSmcc03") + + license("GPL-3.0 OR Apache-2.0", checked_by="blairSmcc03") + + version("2.0", sha256="fdddd4ffe72c22356eb53707567622a9bfb8d17836a9677a980f035e87e1b295") + version("master", branch="master") + + depends_on("cmake@3.18:") + depends_on("mpi") + depends_on("cxx", type="build") + + def cmake_args(self): + return [] diff --git a/repos/spack_repo/builtin/packages/multicharge/package.py b/repos/spack_repo/builtin/packages/multicharge/package.py index c88bc6121a6..0ef92ae1415 100644 --- a/repos/spack_repo/builtin/packages/multicharge/package.py +++ b/repos/spack_repo/builtin/packages/multicharge/package.py @@ -23,15 +23,23 @@ class Multicharge(CMakePackage, MesonPackage): build_system("cmake", "meson", default="meson") version("main", branch="main") + version("0.5.0", sha256="fc6dee93fd6957a516137205f5a6754b218904bc38bf60f5a509f2a1b14735be") + version("0.4.0", sha256="16aea6d8ba2f81ced3de1153cb3d73083aa7ca43c3b2b6ee9799127bab5d60d1") version("0.3.1", sha256="180541714c26804a2d66edd892c8cd4cb40a21acbaf7edb24aaf04d580368b97") version("0.3.0", sha256="e8f6615d445264798b12d2854e25c93938373dc149bb79e6eddd23fc4309749d") variant("openmp", default=True, description="Enable OpenMP support") + with when("build_system=cmake"): + variant("shared", default=True, description="Build shared libraries") + + depends_on("c", type="build") depends_on("fortran", type="build") depends_on("lapack") depends_on("mctc-lib build_system=cmake", when="build_system=cmake") depends_on("mctc-lib build_system=meson", when="build_system=meson") + depends_on("mctc-lib@0.4.0:", when="@0.4.0:") + depends_on("mctc-lib@0.3:0.4", when="@0.3:") def url_for_version(self, version): if self.spec.satisfies("@:0.3.0"): @@ -42,7 +50,10 @@ def url_for_version(self, version): class CMakeBuilder(cmake.CMakeBuilder): def cmake_args(self): - args = [self.define_from_variant("WITH_OpenMP", "openmp")] + args = [ + self.define_from_variant("WITH_OpenMP", "openmp"), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + ] return args diff --git a/repos/spack_repo/builtin/packages/mummer4/package.py b/repos/spack_repo/builtin/packages/mummer4/package.py index d51bf10a331..02031b46794 100644 --- a/repos/spack_repo/builtin/packages/mummer4/package.py +++ b/repos/spack_repo/builtin/packages/mummer4/package.py @@ -15,11 +15,13 @@ class Mummer4(AutotoolsPackage): "https://github.com/mummer4/mummer/releases/download/v4.0.0beta2/mummer-4.0.0beta2.tar.gz" ) + version("4.0.1", sha256="bc20ae2701a0b2e323e4e515b7cfa18a0f0cb34a4ff5844b289b2de0154e3d3e") version("4.0.0rc1", sha256="85006adb2d6539c2f738c3e3bb14b58bb6f62cd6c6ca5ede884a87ae76e07d1d") version( "4.0.0beta2", sha256="cece76e418bf9c294f348972e5b23a0230beeba7fd7d042d5584ce075ccd1b93" ) + depends_on("c", type="build") depends_on("cxx", type="build") # generated conflicts("%gcc@:4.7") diff --git a/repos/spack_repo/builtin/packages/mumps/package.py b/repos/spack_repo/builtin/packages/mumps/package.py index b2236858cbc..c0997a1ea14 100644 --- a/repos/spack_repo/builtin/packages/mumps/package.py +++ b/repos/spack_repo/builtin/packages/mumps/package.py @@ -15,30 +15,32 @@ class Mumps(Package): """MUMPS: a MUltifrontal Massively Parallel sparse direct Solver""" homepage = "https://mumps-solver.org/index.php" - url = "https://mumps-solver.org/MUMPS_5.5.1.tar.gz" + url = "https://mumps-solver.org/MUMPS_5.8.2.tar.gz" maintainers("jcortial-safran") + version("5.9.0", sha256="02c6efdb91749ec0f82351d40f3f860547272a1eb1d899126a4265b4d6bcc4ca") + version("5.8.2", sha256="eb515aa688e6dbab414bb6e889ff4c8b23f1691a843c68da5230a33ac4db7039") + version("5.8.1", sha256="e91b6dcd93597a34c0d433b862cf303835e1ea05f12af073b06c32f652f3edd8") version("5.8.0", sha256="d762eb8b1d9843a0993b8cfc137d043d04c7c51877ad37c94560433a474340a0") version("5.7.3", sha256="84a47f7c4231b9efdf4d4f631a2cae2bdd9adeaabc088261d15af040143ed112") version("5.7.2", sha256="1362d377ce7422fc886c55212b4a4d2c381918b5ca4478f682a22d0627a8fbf8") version("5.6.2", sha256="13a2c1aff2bd1aa92fe84b7b35d88f43434019963ca09ef7e8c90821a8f1d59a") - version("5.6.1", sha256="1920426d543e34d377604070fde93b8d102aa38ebdf53300cbce9e15f92e2896") - version("5.6.0", sha256="3e08c1bdea7aaaba303d3cf03059f3b4336fa49bef93f4260f478f067f518289") version("5.5.1", sha256="1abff294fa47ee4cfd50dfd5c595942b72ebfcedce08142a75a99ab35014fa15") - version("5.5.0", sha256="e54d17c5e42a36c40607a03279e0704d239d71d38503aab68ef3bfe0a9a79c13") version("5.4.1", sha256="93034a1a9fe0876307136dcde7e98e9086e199de76f1c47da822e7d4de987fa8") - version("5.4.0", sha256="c613414683e462da7c152c131cebf34f937e79b30571424060dd673368bbf627") version("5.3.5", sha256="e5d665fdb7043043f0799ae3dbe3b37e5b200d1ab7a6f7b2a4e463fd89507fa4") - version("5.3.3", sha256="27e7749ac05006bf8e81a457c865402bb72a42bf3bc673da49de1020f0f32011") version("5.2.0", sha256="41f2c7cb20d69599fb47e2ad6f628f3798c429f49e72e757e70722680f70853f") version("5.1.2", sha256="eb345cda145da9aea01b851d17e54e7eef08e16bfa148100ac1f7f046cd42ae9") - version("5.1.1", sha256="a2a1f89c470f2b66e9982953cbd047d429a002fab9975400cef7190d01084a06") version("5.0.2", sha256="77292b204942640256097a3da482c2abcd1e0d5a74ecd1d4bab0f5ef6e60fe45") - # Alternate location if main server is down. - # version('5.0.1', sha256='50355b2e67873e2239b4998a46f2bbf83f70cdad6517730ab287ae3aae9340a0', - # url='http://pkgs.fedoraproject.org/repo/pkgs/MUMPS/MUMPS_5.0.1.tar.gz/md5/b477573fdcc87babe861f62316833db0/MUMPS_5.0.1.tar.gz') - version("5.0.1", sha256="50355b2e67873e2239b4998a46f2bbf83f70cdad6517730ab287ae3aae9340a0") + + with default_args(deprecated=True): + version("5.6.1", sha256="1920426d543e34d377604070fde93b8d102aa38ebdf53300cbce9e15f92e2896") + version("5.6.0", sha256="3e08c1bdea7aaaba303d3cf03059f3b4336fa49bef93f4260f478f067f518289") + version("5.5.0", sha256="e54d17c5e42a36c40607a03279e0704d239d71d38503aab68ef3bfe0a9a79c13") + version("5.4.0", sha256="c613414683e462da7c152c131cebf34f937e79b30571424060dd673368bbf627") + version("5.3.3", sha256="27e7749ac05006bf8e81a457c865402bb72a42bf3bc673da49de1020f0f32011") + version("5.1.1", sha256="a2a1f89c470f2b66e9982953cbd047d429a002fab9975400cef7190d01084a06") + version("5.0.1", sha256="50355b2e67873e2239b4998a46f2bbf83f70cdad6517730ab287ae3aae9340a0") variant("mpi", default=True, description="Compile MUMPS with MPI support") variant("scotch", default=False, description="Activate Scotch as a possible ordering library") @@ -64,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 @@ -173,15 +176,17 @@ 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 using_gcc = self.compiler.name == "gcc" using_nvhpc = self.compiler.name == "nvhpc" - using_intel = self.compiler.name == "intel" - using_oneapi = self.compiler.name == "oneapi" - using_xl = self.compiler.name in ["xl", "xl_r"] + using_intel = self.compiler.name in ("intel", "intel-oneapi-compilers-classic") + using_oneapi = self.compiler.name in ("oneapi", "intel-oneapi-compilers") + using_xl = self.compiler.name in ("xl", "xl_r") using_fj = self.compiler.name == "fj" # The llvm compiler suite does not contain a Fortran compiler by @@ -259,6 +264,13 @@ def write_makefile_inc(self): if "+blr_mt" in self.spec: optf.append("-DBLR_MT") + # Intel and oneAPI Fortran compilers link for_main.o which provides + # its own main(). This conflicts with the C examples' main(), causing + # "multiple definition of `main'" errors. The -nofor-main flag + # prevents this. + if using_intel or using_oneapi: + optl.append("-nofor-main") + makefile_conf.extend( [ "OPTC = {0}".format(" ".join(optc)), @@ -432,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/munge/package.py b/repos/spack_repo/builtin/packages/munge/package.py index be65c7f73e8..66e91737eb6 100644 --- a/repos/spack_repo/builtin/packages/munge/package.py +++ b/repos/spack_repo/builtin/packages/munge/package.py @@ -18,6 +18,7 @@ class Munge(AutotoolsPackage): license("LGPL-3.0-only") + version("0.5.18", sha256="39c3ec6ef5604bfa206e8aa10fc05d5119040f6de4a554bc0fb98ca1aed838dc") version("0.5.15", sha256="3f979df117a34c74db8fe2835521044bdeb08e3b7d0f168ca97c3547f51da9ba") version("0.5.14", sha256="6606a218f18090fa1f702e3f6fb608073eb6aafed534cf7dd81b67b2e0d30640") version("0.5.13", sha256="99753dfd06a4f063c36f3fb0eb1964f394feb649937d94c4734d85b7964144da") @@ -35,12 +36,26 @@ class Munge(AutotoolsPackage): description="Set local state path (possibly to /var)", ) - depends_on("c", type="build") # generated + depends_on("c", type="build") depends_on("openssl") depends_on("libgcrypt") depends_on("bzip2") + # Below two patches fix CVE-2026-25506 in older versions of Munge + # Fix out-of-bounds read in credential decoding + patch( + "https://github.com/dun/munge/commit/5bd6d4db92dabdbed3aaf01ebd5f0d98944326bb.patch?full_index=1", + sha256="3145b60b1bf94fcca9b361d59140ea12b1a8b3e09d88181d7d73335580ca7a6f", + when="@:0.5.17", + ) + # Fix buffer overflow allowing key leakage and credential forgery + patch( + "https://github.com/dun/munge/commit/bf40cc27c4ce8451d4b062c9de0b67ec40894812.patch?full_index=1", + sha256="05b4d63ea71d27db27eb7201fb907abf50dd2384b729be0f0a78c381ac4f6ccc", + when="@:0.5.17", + ) + def configure_args(self): args = [] localstatedir = self.spec.variants["localstatedir"].value diff --git a/repos/spack_repo/builtin/packages/musica/package.py b/repos/spack_repo/builtin/packages/musica/package.py index 0eb155bf57e..107a0719dbf 100644 --- a/repos/spack_repo/builtin/packages/musica/package.py +++ b/repos/spack_repo/builtin/packages/musica/package.py @@ -19,14 +19,21 @@ class Musica(CMakePackage): """ homepage = "https://github.com/NCAR/musica" - url = "https://github.com/NCAR/musica/archive/refs/tags/v0.12.0.tar.gz" + url = "https://github.com/NCAR/musica/archive/refs/tags/v0.15.0.tar.gz" git = "https://github.com/NCAR/musica.git" - maintainers("kshores", "mattldawson", "boulderdaze") + maintainers("kshores", "boulderdaze") license("Apache-2.0", checked_by="kshores") # Versions + version("0.15.0", sha256="48a01c082d8db8731add80c691c7794e7069927fa17ec21e093ad1774b8cd30b") + version("0.14.5", sha256="31d9c75e8a4852f8f053f43a44313f3b392911056b72f63209eb2f091c7e486a") + version("0.14.4", sha256="8de573c1cf9100087efa6ae4871f0d0bd8b41e75a67e43b62761410e5740d0d6") + version("0.14.2", sha256="78cdab4e355535e1201bb8a4c997187bb59014984b956525dd8ed04c22669953") + version("0.14.1", sha256="c776fc224b4d40cbc0371726240fd7f02b142c969ce1418627f63e0e4ec81829") + version("0.14.0", sha256="f6841780747c522bfa4a27da0ec694373e08aa2488a748cd3dea81be5472db0c") + version("0.13.0", sha256="fec033c39d48081185fcbbab96effe0a8c0994b91d8660f9b91d12ebad3b29d4") version("0.12.0", sha256="e81279fbdd42af8bf6540f18e72857ed34e081421a90333c77f9952a3069363b") version("0.10.1", sha256="edefab03a676a449761997734e6c5b654b2c4f92ce8f1cc66ef63b8ae8ccccf1") @@ -40,6 +47,7 @@ class Musica(CMakePackage): # Dependencies depends_on("cmake@3.21:", type="build") + depends_on("c", type="build") depends_on("cxx", type="build") depends_on("fortran", type="build") depends_on("mpi", when="+mpi") diff --git a/repos/spack_repo/builtin/packages/mvapich/package.py b/repos/spack_repo/builtin/packages/mvapich/package.py index f6699806a2a..743e0daf47a 100644 --- a/repos/spack_repo/builtin/packages/mvapich/package.py +++ b/repos/spack_repo/builtin/packages/mvapich/package.py @@ -28,16 +28,18 @@ class Mvapich(MpichEnvironmentModifications, AutotoolsPackage): license("Unlicense") # Prefer the latest stable release + version("4.1", sha256="25a53d3725b669e2c648158fb7c9fc5b1388953f3a2f949748586c447d0e43ee") version("4.0", sha256="c532f7bdd5cca71f78c12e0885c492f6e276e283711806c84d0b0f80bb3e3b74") - version("3.0", sha256="ee076c4e672d18d6bf8dd2250e4a91fa96aac1db2c788e4572b5513d86936efb") + with default_args(deprecated=True): + version("3.0", sha256="ee076c4e672d18d6bf8dd2250e4a91fa96aac1db2c788e4572b5513d86936efb") provides("mpi") - provides("mpi@:3.1") + provides("mpi@:4.1") variant("wrapperrpath", default=True, description="Enable wrapper rpath") - variant("debug", default=False, description="Enable debug info and error messages at run-time") - - variant("cuda", default=False, description="Enable CUDA extension") + variant("debug", default=False, description="Enable debug info at run-time") + variant("errs", default=False, description="Enable error messages at run-time") + variant("fast", default=True, description="Enable compiler optimizations") variant("regcache", default=True, description="Enable memory registration cache") @@ -55,27 +57,11 @@ class Mvapich(MpichEnvironmentModifications, AutotoolsPackage): description="Control the level of thread support", ) - # 32 is needed when job size exceeds 32768 cores - variant( - "ch3_rank_bits", - default="32", - values=("16", "32"), - multi=False, - description="Number of bits allocated to the rank field (16 or 32)", - ) - variant( - "pmi_version", - description="Which pmi version to be used. If using pmi2 add it to your CFLAGS", - default="none", - values=("none", "pmi1", "pmi2", "pmix"), - multi=False, - ) - variant( "process_managers", description="List of the process managers to activate", values=disjoint_sets(("auto",), ("slurm",), ("hydra", "gforker", "remshell")) - .with_error("'slurm' or 'auto' cannot be activated along with " "other process managers") + .with_error("'slurm' or 'auto' cannot be activated along with other process managers") .with_default("auto") .with_non_feature_values("auto"), ) @@ -111,21 +97,9 @@ class Mvapich(MpichEnvironmentModifications, AutotoolsPackage): depends_on("zlib-api") depends_on("libpciaccess", when=(sys.platform != "darwin")) depends_on("libxml2") - depends_on("cuda", when="+cuda") depends_on("libfabric", when="netmod=ofi") depends_on("slurm", when="process_managers=slurm") depends_on("ucx", when="netmod=ucx") - depends_on("pmix", when="pmi_version=pmix") - - with when("process_managers=slurm"): - conflicts("pmi_version=pmi2") - - with when("process_managers=auto"): - conflicts("pmi_version=pmi2") - - with when("process_managers=hydra"): - conflicts("pmi_version=pmi2") - conflicts("pmi_version=pmix") filter_compiler_wrappers("mpicc", "mpicxx", "mpif77", "mpif90", "mpifort", relative_root="bin") @@ -133,10 +107,10 @@ class Mvapich(MpichEnvironmentModifications, AutotoolsPackage): def determine_version(cls, exe): if exe.endswith("mpichversion"): output = Executable(exe)(output=str, error=str) - match = re.search(r"^MVAPICH2 Version:\s*(\S+)", output) + match = re.search(r"^MVAPICH Version:\s*(\S+)", output) elif exe.endswith("mpiname"): output = Executable(exe)("-a", output=str, error=str) - match = re.search(r"^MVAPICH2 (\S+)", output) + match = re.search(r"^MVAPICH (\S+)", output) return match.group(1) if match else None @property @@ -155,20 +129,16 @@ def process_manager_options(self): other_pms = [] for x in ("hydra", "gforker", "remshell"): - if "process_managers={0}".format(x) in spec: + if spec.satisfies(f"process_managers={x}"): other_pms.append(x) opts = [] if len(other_pms) > 0: opts = ["--with-pm=%s" % ":".join(other_pms)] - - # See: http://slurm.schedmd.com/mpi_guide.html#mvapich2 - if "process_managers=slurm" in spec: - opts = [ - "--with-pm=slurm", - "--with-slurm={0}".format(spec["slurm"].prefix), - "CFLAGS=-I{0}/include/slurm".format(spec["slurm"].prefix), - ] + if spec.satisfies("process_managers=slurm"): + opts = ["--with-pm=none", "--with-pmi=slurm"] + if spec.satisfies("process_managers=cray"): + opts = ["--with-pm=none", "--with-pmi=pmi2", "--with-pmi2=/opt/cray/pe/pmi/default"] if "none" in spec.variants["process_managers"].value: opts = ["--with-pm=none"] @@ -229,21 +199,16 @@ def configure_args(self): "--disable-silent-rules", "--disable-new-dtags", "--enable-fortran=all", + "--disable-cuda", + "--disable-hip", "--enable-threads={0}".format(spec.variants["threads"].value), - "--with-ch3-rank-bits={0}".format(spec.variants["ch3_rank_bits"].value), "--enable-wrapper-rpath={0}".format("no" if "~wrapperrpath" in spec else "yes"), ] args.extend(self.enable_or_disable("alloca")) - if not spec.satisfies("pmi_version=none"): - args.append("--with-pmi=" + spec.variants["pmi_version"].value) - if "pmi_version=pmix" in spec: - args.append("--with-pmix={0}".format(spec["pmix"].prefix)) - if "+debug" in self.spec: args.extend( [ - "--disable-fast", "--enable-error-checking=runtime", "--enable-error-messages=all", # Permits debugging with TotalView @@ -251,14 +216,12 @@ def configure_args(self): "--enable-debuginfo", ] ) + if "+errs" in self.spec: + args.extend(["--enable-error-checking=runtime", "--enable-error-messages=all"]) + if "+fast" in self.spec: + args.append("--enable-fast=opt") else: - args.append("--enable-fast=all") - - if "+cuda" in self.spec: - args.extend(["--enable-cuda", "--with-cuda={0}".format(spec["cuda"].prefix)]) - else: - args.append("--disable-cuda") - + args.append("--enable-fast=none") if "+regcache" in self.spec: args.append("--enable-registration-cache") else: diff --git a/repos/spack_repo/builtin/packages/mvapich2/package.py b/repos/spack_repo/builtin/packages/mvapich2/package.py index 73198c7de17..b0570f9c7c8 100644 --- a/repos/spack_repo/builtin/packages/mvapich2/package.py +++ b/repos/spack_repo/builtin/packages/mvapich2/package.py @@ -25,21 +25,27 @@ class Mvapich2(MpichEnvironmentModifications, AutotoolsPackage): executables = ["^mpiname$", "^mpichversion$"] - # Prefer the latest stable release - version("2.3.7-1", sha256="fdd971cf36d6476d007b5d63d19414546ca8a2937b66886f24a1d9ca154634e4") - version("2.3.7", sha256="c39a4492f4be50df6100785748ba2894e23ce450a94128181d516da5757751ae") - version("2.3.6", sha256="b3a62f2a05407191b856485f99da05f5e769d6381cd63e2fcb83ee98fc46a249") - version("2.3.5", sha256="f9f467fec5fc981a89a7beee0374347b10c683023c76880f92a1a0ad4b961a8c") - version("2.3.4", sha256="7226a45c7c98333c8e5d2888119cce186199b430c13b7b1dca1769909e68ea7a") - version("2.3.3", sha256="41d3261be57e5bc8aabf4e32981543c015c5443ff032a26f18205985e18c2b73") - version("2.3.2", sha256="30cc0d7bcaa075d204692f76bca4d65a539e0f661c7460ffa9f835d6249e1ebf") - version("2.3.1", sha256="314e12829f75f3ed83cd4779a972572d1787aac6543a3d024ea7c6080e0ee3bf") - version("2.3", sha256="01d5fb592454ddd9ecc17e91c8983b6aea0e7559aa38f410b111c8ef385b50dd") - version("2.3rc2", sha256="dc3801f879a54358d17002a56afd45186e2e83edc5b8367b5c317e282eb6d6bf") - version("2.3rc1", sha256="607d309c864a6d57f5fa78fe6dd02368919736b8be0f4ddb938aba303ef9c45c") - version("2.3a", sha256="7f0bc94265de9f66af567a263b1be6ef01755f7f6aedd25303d640cc4d8b1cff") - version("2.2", sha256="791a6fc2b23de63b430b3e598bf05b1b25b82ba8bf7e0622fc81ba593b3bb131") - version("2.1", sha256="49f3225ad17d2f3b6b127236a0abdc979ca8a3efb8d47ab4b6cd4f5252d05d29") + with default_args(deprecated=True): + version( + "2.3.7-1", sha256="fdd971cf36d6476d007b5d63d19414546ca8a2937b66886f24a1d9ca154634e4" + ) + version("2.3.7", sha256="c39a4492f4be50df6100785748ba2894e23ce450a94128181d516da5757751ae") + version("2.3.6", sha256="b3a62f2a05407191b856485f99da05f5e769d6381cd63e2fcb83ee98fc46a249") + version("2.3.5", sha256="f9f467fec5fc981a89a7beee0374347b10c683023c76880f92a1a0ad4b961a8c") + version("2.3.4", sha256="7226a45c7c98333c8e5d2888119cce186199b430c13b7b1dca1769909e68ea7a") + version("2.3.3", sha256="41d3261be57e5bc8aabf4e32981543c015c5443ff032a26f18205985e18c2b73") + version("2.3.2", sha256="30cc0d7bcaa075d204692f76bca4d65a539e0f661c7460ffa9f835d6249e1ebf") + version("2.3.1", sha256="314e12829f75f3ed83cd4779a972572d1787aac6543a3d024ea7c6080e0ee3bf") + version("2.3", sha256="01d5fb592454ddd9ecc17e91c8983b6aea0e7559aa38f410b111c8ef385b50dd") + version( + "2.3rc2", sha256="dc3801f879a54358d17002a56afd45186e2e83edc5b8367b5c317e282eb6d6bf" + ) + version( + "2.3rc1", sha256="607d309c864a6d57f5fa78fe6dd02368919736b8be0f4ddb938aba303ef9c45c" + ) + version("2.3a", sha256="7f0bc94265de9f66af567a263b1be6ef01755f7f6aedd25303d640cc4d8b1cff") + version("2.2", sha256="791a6fc2b23de63b430b3e598bf05b1b25b82ba8bf7e0622fc81ba593b3bb131") + version("2.1", sha256="49f3225ad17d2f3b6b127236a0abdc979ca8a3efb8d47ab4b6cd4f5252d05d29") provides("mpi") provides("mpi@:3.1", when="@2.3:") @@ -48,8 +54,6 @@ class Mvapich2(MpichEnvironmentModifications, AutotoolsPackage): variant("wrapperrpath", default=True, description="Enable wrapper rpath") variant("debug", default=False, description="Enable debug info and error messages at run-time") - variant("cuda", default=False, description="Enable CUDA extension") - variant("regcache", default=True, description="Enable memory registration cache") # Accepted values are: @@ -80,7 +84,7 @@ class Mvapich2(MpichEnvironmentModifications, AutotoolsPackage): description="List of the process managers to activate", values=disjoint_sets(("auto",), ("slurm",), ("hydra", "gforker", "remshell")) .prohibit_empty_set() - .with_error("'slurm' or 'auto' cannot be activated along with " "other process managers") + .with_error("'slurm' or 'auto' cannot be activated along with other process managers") .with_default("auto") .with_non_feature_values("auto"), ) @@ -133,13 +137,13 @@ class Mvapich2(MpichEnvironmentModifications, AutotoolsPackage): depends_on("fortran", type="build") depends_on("automake@1.15", type="build") # needed for torque patch + depends_on("autoconf", type="build") depends_on("findutils", type="build") depends_on("bison", type="build") depends_on("pkgconfig", type="build") depends_on("zlib-api") depends_on("libpciaccess", when=(sys.platform != "darwin")) depends_on("libxml2") - depends_on("cuda", when="+cuda") depends_on("psm", when="fabrics=psm") depends_on("opa-psm2", when="fabrics=psm2") depends_on("rdma-core", when="fabrics=mrail") @@ -203,11 +207,6 @@ def get_spack_compiler_spec(path): else: variants += "~debug" - if re.search("--enable-cuda", output): - variants += "+cuda" - else: - variants += "~cuda" - if re.search("--enable-registration-cache", output): variants += "+regcache" else: @@ -387,6 +386,7 @@ def configure_args(self): "--disable-silent-rules", "--disable-new-dtags", "--enable-fortran=all", + "--disable-cuda", "--enable-threads={0}".format(spec.variants["threads"].value), "--with-ch3-rank-bits={0}".format(spec.variants["ch3_rank_bits"].value), "--enable-wrapper-rpath={0}".format("no" if "~wrapperrpath" in spec else "yes"), @@ -407,11 +407,6 @@ def configure_args(self): ) else: args.append("--enable-fast=all") - - if "+cuda" in self.spec: - args.extend(["--enable-cuda", "--with-cuda={0}".format(spec["cuda"].prefix)]) - else: - args.append("--disable-cuda") if "~hwloc_graphics" in self.spec: args.append("--disable-opencl") args.append("--disable-gl") diff --git a/repos/spack_repo/builtin/packages/mvapich2_gdr/package.py b/repos/spack_repo/builtin/packages/mvapich2_gdr/package.py deleted file mode 100644 index 9dc7130dc9f..00000000000 --- a/repos/spack_repo/builtin/packages/mvapich2_gdr/package.py +++ /dev/null @@ -1,185 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import sys - -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage -from spack_repo.builtin.packages.mpich.package import MpichEnvironmentModifications - -from spack.package import * - - -class Mvapich2Gdr(MpichEnvironmentModifications, AutotoolsPackage): - """MVAPICH2-GDR is an optimized version of the MVAPICH2 MPI library for - GPU-enabled HPC and Deep Learning Applications. MVAPICH2-GDR is not - installable from source and is only available through a binary mirror. - If you do not find the binary you're looking for, send us an email at - mvapich@cse.ohio-state.edu. The binary mirror url is: - http://mvapich.cse.ohio-state.edu/download/mvapich/spack-mirror/mvapich2-gdr/ - """ - - homepage = "http://mvapich.cse.ohio-state.edu" - url = "http://mvapich.cse.ohio-state.edu/download/mvapich/spack-mirror/mvapich2-gdr/mvapich2-gdr-2.3.6.tar.gz" - - maintainers("ndcontini", "natshineman", "harisubramoni") - - version("2.3.7", sha256="7bf748ed3750aa607382fc96229e256d888824aed758ce364b1ed9429da4779e") - version("2.3.6", sha256="618408431348164c0824f3a72dc406763f169f7f5400f3cc15dfebf8d7166005") - version("2.3.5", sha256="bcfe8197875405af0ddbf6462e585efc21668108bec9b481fe53616ad36a98b4") - version("2.3.4", sha256="ed78101e6bb807e979213006ee5f20ff466369b01f96b6d1cf0c471baf7e35aa") - version("2.3.3", sha256="9b7b5dd235dbf85099fba3b6f1ccb49bb755923efed66ddc335921f44cb1b8a8") - - provides("mpi") - provides("mpi@:3.1") - - variant( - "process_managers", - description="The process manager to activate.", - default="mpirun", - values=("none", "slurm", "mpiexec", "mpirun", "pbs", "jsrun"), - multi=False, - ) - - variant( - "distribution", - description="The type of fabric distribution.", - default="stock-ofed", - values=("stock-ofed", "mofed4.5", "mofed4.6", "mofed4.7", "mofed5.0"), - multi=False, - ) - - variant( - "pmi_version", - description="The pmi version to be used with slurm. " - "Is ignored if set for mpirun or jsrun. " - "jsrun uses pmix regardless of chosen option.", - default="pmi1", - values=("simple", "pmi1", "pmi2", "pmix"), - multi=False, - ) - - variant("mcast", description="Enable/Disable support for mcast", default=True) - - variant("openacc", description="Enable/Disable support for openacc", default=False) - - variant("core_direct", description="Enable/Disable support for core_direct", default=False) - - variant("cuda", description="Enable/Disable support for cuda", default=True) - - variant("rocm", description="Enable/Disable support for ROCM", default=False) - conflicts("+rocm", when="@:2.3.4", msg="MVAPICH2-GDR only supports ROCm in version >= 2.3.5") - conflicts("+cuda +rocm", msg="MVAPICH2-GDR can only be built with either CUDA or ROCm") - conflicts("~cuda ~rocm", msg="MVAPICH2-GDR must be built with either CUDA or ROCm") - conflicts( - "process_managers=slurm pmi_version=simple", - msg="MVAPICH2-GDR can not be built with slurm and simple pmi", - ) - - depends_on("bison@3.4.2", type="build") - depends_on("libpciaccess@0.13.5", when=(sys.platform != "darwin")) - depends_on("libxml2@2.9.10") - depends_on("cuda@9.2.88:", when="+cuda") - depends_on("pmix@3.1.3", when="pmi_version=pmix") - depends_on("hip@3.9.0:", when="+rocm") - - filter_compiler_wrappers("mpicc", "mpicxx", "mpif77", "mpif90", "mpifort", relative_root="bin") - - @property - def libs(self): - query_parameters = self.spec.last_query.extra_parameters - libraries = ["libmpi"] - - if "cxx" in query_parameters: - libraries = ["libmpicxx"] + libraries - - return find_libraries(libraries, root=self.prefix, shared=True, recursive=True) - - @property - def process_manager_options(self): - spec = self.spec - - opts = [] - - if "~mcast" in spec: - opts.append("--disable-mcast") - - if "+core_direct" in spec: - opts.append("--with-core-direct") - - if "+openacc" in spec: - opts.append("--enable-openacc") - - if "+cuda" in spec: - opts.append("--enable-cuda") - opts.append("--disable-gl") - opts.append("--disable-cl") - # opts.append("--disable-nvml") - opts.append("--disable-opencl") - opts.append("--with-cuda=" + spec["cuda"].prefix) - - if "+rocm" in spec: - opts.append("--enable-hip=basic") - opts.append("--enable-rocm") - opts.append("--with-rocm=" + spec["hip"].prefix) - opts.append("--disable-gl") - - if "process_managers=mpiexec" in spec: - opts.append("--with-pm=mpiexec") - opts.append("--with-pmi=" + spec.variants["pmi_version"].value) - if "pmi_version=pmix" in spec: - opts.append("--with-pmix={0}".format(spec["pmix"].prefix)) - # See: http://slurm.schedmd.com/mpi_guide.html#mvapich2 - elif "process_managers=slurm" in spec: - opts.append("--with-pm=slurm") - opts.append("--with-pmi=" + spec.variants["pmi_version"].value) - if "pmi_version=pmix" in spec: - opts.append("--with-pmix={0}".format(spec["pmix"].prefix)) - elif "process_managers=none" in spec: - opts.append("--with-pm=none") - opts.append("--with-pmi=" + spec.variants["pmi_version"].value) - if "pmi_version=pmix" in spec: - opts.append("--with-pmix={0}".format(spec["pmix"].prefix)) - elif "process_managers=pbs" in spec: - opts.append(["--with-pm=hydra", "--with-pbs=/opt/pbs"]) - elif "process_managers=jsrun" in spec: - opts.append( - ["--with-pmi=pmix", "--with-pmix={0}".format(spec["pmix"].prefix), "--with-pm=jsm"] - ) - return opts - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - if "pmi_version=pmi1" in self.spec: - env.set("SLURM_MPI_TYPE", "pmi1") - if "pmi_version=pmi2" in self.spec: - env.set("SLURM_MPI_TYPE", "pmi2") - if "pmi_version=pmix" in self.spec: - env.set("SLURM_MPI_TYPE", "pmix") - - # Because MPI functions as a compiler, we need to treat it as one and - # add its compiler paths to the run environment. - self.setup_mpi_wrapper_variables(env) - - def setup_dependent_build_environment( - self, env: EnvironmentModifications, dependent_spec: Spec - ) -> None: - self.setup_mpi_wrapper_variables(env) - MpichEnvironmentModifications.setup_dependent_build_environment(self, env, dependent_spec) - - def configure_args(self): - spec = self.spec - - args = [ - "--with-ch3-rank-bits=32", - "--without-hydra-ckpointlib", - "--disable-static", - "--enable-shared", - "--disable-rdma-cm", - ] - - # prevents build error regarding gfortran not allowing mismatched arguments - if spec.satisfies("%gcc@10.0.0:"): - args.extend(["FFLAGS=-fallow-argument-mismatch", "FCFLAGS=-fallow-argument-mismatch"]) - - args.extend(self.process_manager_options) - return args diff --git a/repos/spack_repo/builtin/packages/mvapich2x/package.py b/repos/spack_repo/builtin/packages/mvapich2x/package.py deleted file mode 100644 index 1f6fbf02004..00000000000 --- a/repos/spack_repo/builtin/packages/mvapich2x/package.py +++ /dev/null @@ -1,239 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import sys - -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage -from spack_repo.builtin.packages.mpich.package import MpichEnvironmentModifications - -from spack.package import * - - -class Mvapich2x(MpichEnvironmentModifications, AutotoolsPackage): - """MVAPICH2-X is the advanced version of the MVAPICH2 MPI library with - enhanced features (UMR, ODP, DC, Core-Direct, SHARP, XPMEM), OSU INAM - (InifniBand Network Monitoring and Analysis),PGAS (OpenSHMEM, UPC, UPC++, - and CAF), and MPI+PGAS programming models with unified communication - runtime. MVAPICH2-X is not installable from source and is only available - through a binary mirror. If you do not find the binary you're looking for, - send us an email at mvapich@cse.ohio-state.edu. The binary mirror url is: - http://mvapich.cse.ohio-state.edu/download/mvapich/spack-mirror/mvapich2x/ - """ - - homepage = "https://mvapich.cse.ohio-state.edu" - url = "http://mvapich.cse.ohio-state.edu/download/mvapich/spack-mirror/mvapich2x/mvapich2x-2.3.tar.gz" - - maintainers("natshineman", "harisubramoni", "ndcontini") - - version( - "2.3", - sha256="fc47070e2e9fac09b97022be2320200d732a0a4a820a2b51532b88f8ded14536", - preferred=True, - ) - version("2.3rc3", sha256="85a9f1ea1a837d487e356f021ef6f3a4661ad270a0c5f54777b362ee4d45166f") - - provides("mpi") - provides("mpi@:3.1") - - variant( - "feature", - description=( - "Feature descriptions are specified at: " - "https://mvapich.cse.ohio-state.edu/downloads/" - ), - default="basic", - values=("basic", "basic-xpmem", "advanced", "advanced-xpmem"), - multi=False, - ) - - variant( - "process_managers", - description="List of the process managers to activate", - default="mpirun", - values=("slurm", "mpirun", "pbs", "jsrun"), - multi=False, - ) - - variant( - "distribution", - description="The type of distribution of the fabric.", - default="stock-ofed", - values=( - "stock-ofed", - "mofed4.5", - "mofed4.6", - "mofed4.7", - "mofed5.0", - "ifs10.6", - "ifs10.9", - ), - multi=False, - ) - - variant( - "pmi_version", - description=( - "The pmi version to be used with slurm. This variant is " - "IGNORED if set for mpirun or jsrun. jsrun uses pmix " - "regardless of chosen option." - ), - default="pmi1", - values=("pmi1", "pmi2", "pmix"), - multi=False, - ) - - depends_on("bison@3.4.2", type="build") - depends_on("libpciaccess@0.13.5", when=(sys.platform != "darwin")) - depends_on("libxml2@2.9.10") - depends_on("pmix@3.1.3", when="pmi_version=pmix") - - filter_compiler_wrappers("mpicc", "mpicxx", "mpif77", "mpif90", "mpifort", relative_root="bin") - - @property - def libs(self): - query_parameters = self.spec.last_query.extra_parameters - libraries = ["libmpi"] - - if "cxx" in query_parameters: - libraries = ["libmpicxx"] + libraries - - return find_libraries(libraries, root=self.prefix, shared=True, recursive=True) - - @property - def process_feature_options(self): - spec = self.spec - opts = [] - - if "feature=basic" in spec: - opts = [ - "--enable-mcast", - "--enable-hybrid", - "--enable-mpit-tool", - "--enable-mpit-pvars=mv2", - ] - elif "feature=basic-xpmem" in spec: - opts = [ - "--enable-mcast", - "--enable-hybrid", - "--enable-mpit-tool", - "--enable-mpit-pvars=mv2", - "--with-xpmem=/opt/xpmem/", - ] - elif "feature=advanced" in spec: - opts = [ - "--enable-mcast", - "--enable-hybrid", - "--enable-mpit-tool", - "--enable-mpit-pvars=mv2", - "--with-core-direct", - "--enable-dc", - "--enable-umr", - ] - elif "feature=advanced-xpmem" in spec: - opts = [ - "--enable-mcast", - "--enable-hybrid", - "--enable-mpit-tool", - "--enable-mpit-pvars=mv2", - "--with-core-direct", - "--enable-dc", - "--enable-umr", - "--with-xpmem=/opt/xpmem/", - ] - return opts - - @property - def distribution_options(self): - opts = [] - if "distribution=ifs10.6" in self.spec or "distribution=ifs10.9" in self.spec: - opts = ["--with-device=ch3:psm"] - else: - opts = ["--with-device=ch3:mrail", "--with-rdma=gen2"] - return opts - - @property - def process_manager_options(self): - spec = self.spec - opts = [] - # See: http://slurm.schedmd.com/mpi_guide.html#mvapich2 - if "process_managers=slurm" in spec: - opts = ["--with-ch3-rank-bits=32", "--with-pm=slurm"] - if "pmi_version=pmi1" in spec: - opts.append("--with-pmi=pmi1") - if "pmi_version=pmi2" in spec: - opts.append("--with-pmi=pmi2") - if "pmi_version=pmix" in spec: - opts.append("--with-pmi=pmix") - opts.append("--with-pmix={0}".format(spec["pmix"].prefix)) - elif "process_managers=pbs" in spec: - opts = ["--with-ch3-rank-bits=32", "--with-pbs=/opt/pbs", "--with-pm=hydra"] - elif "process_managers=jsrun" in spec: - opts = [ - "--with-ch3-rank-bits=32", - "--with-pmi=pmix", - "--with-pmix={0}".format(["pmix"].prefix), - "--with-pm=jsm", - ] - opts.append("--disable-gl") - return opts - - @property - def construct_ldflags(self): - # LDFLAGS contributed by the process manager - spec = self.spec - xpmem_ldflags = "" - if "feature=basic-xpmem" in spec or "feature=advanced-xpmem" in spec: - xpmem_ldflags = " -Wl,-rpath,/opt/xpmem/lib " "-L/opt/xpmem/lib -lxpmem" - - # Add default LDFLAGS and combine together - LDFLAGS = "LDFLAGS=-Wl,-rpath,XORIGIN/placeholder" - LDFLAGS = LDFLAGS + xpmem_ldflags - return LDFLAGS - - @property - def construct_cflags(self): - # CFLAGS contributed by the feature - spec = self.spec - cflags = "CFLAGS=" - if "feature=basic-xpmem" in spec or "feature=advanced-xpmem" in spec: - cflags = cflags + "-I/opt/xpmem/include" - return cflags - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - if "pmi_version=pmi1" in self.spec: - env.set("SLURM_MPI_TYPE", "pmi1") - if "pmi_version=pmi2" in self.spec: - env.set("SLURM_MPI_TYPE", "pmi2") - if "pmi_version=pmix" in self.spec: - env.set("SLURM_MPI_TYPE", "pmix") - - # Because MPI functions as a compiler, we need to treat it as one and - # add its compiler paths to the run environment. - self.setup_mpi_wrapper_variables(env) - - def setup_dependent_build_environment( - self, env: EnvironmentModifications, dependent_spec: Spec - ) -> None: - self.setup_mpi_wrapper_variables(env) - MpichEnvironmentModifications.setup_dependent_build_environment(self, env, dependent_spec) - - def configure_args(self): - spec = self.spec - - args = [ - "--enable-ucr", - "--disable-static", - "--enable-shared", - "--disable-rdma-cm", - "--without-hydra-ckpointlib", - ] - args.extend(self.process_manager_options) - args.extend(self.distribution_options) - args.append(self.construct_cflags) - args.append(self.construct_ldflags) - - # prevents build error regarding gfortran not allowing mismatched arguments - if spec.satisfies("%gcc@10.0.0:"): - args.extend(["FFLAGS=-fallow-argument-mismatch", "FCFLAGS=-fallow-argument-mismatch"]) - return args diff --git a/repos/spack_repo/builtin/packages/mvapich_plus/package.py b/repos/spack_repo/builtin/packages/mvapich_plus/package.py index d35c1f3a5d2..72afc11bc29 100644 --- a/repos/spack_repo/builtin/packages/mvapich_plus/package.py +++ b/repos/spack_repo/builtin/packages/mvapich_plus/package.py @@ -2,19 +2,18 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import itertools import os.path import re import sys +from glob import glob -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack_repo.builtin.build_systems.cuda import CudaPackage from spack_repo.builtin.build_systems.rocm import ROCmPackage from spack.package import * -class MvapichPlus(AutotoolsPackage, CudaPackage, ROCmPackage): +class MvapichPlus(Package, CudaPackage, ROCmPackage): """Mvapich is a High-Performance MPI Library for clusters with diverse networks (InfiniBand, Omni-Path, Ethernet/iWARP, and RoCE) and computing platforms (x86 (Intel and AMD), ARM and OpenPOWER)""" @@ -23,19 +22,33 @@ class MvapichPlus(AutotoolsPackage, CudaPackage, ROCmPackage): url = "https://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich-3.0.tar.gz" list_url = "https://mvapich.cse.ohio-state.edu/downloads/" executables = ["^mpiname$", "^mpichversion$"] + manual_download = True maintainers("natshineman", "harisubramoni", "MatthewLieber") license("Unlicense") # Prefer the latest stable release - version("4.0", sha256="942156804425752ab8b7884a6995581d7d9e93f58025ca71b58e6412eb766eae") + + 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", + url="https://mvapich.cse.ohio-state.edu/download/mvapich/plus/4.1/mvapich-plus-installer.sh", + expand=False, + ) provides("mpi") - provides("mpi@:3.1") + provides("mpi@:4.1") variant("wrapperrpath", default=True, description="Enable wrapper rpath") variant("debug", default=False, description="Enable debug info and error messages at run-time") + variant("apu", default=False, description="Enable APU enhancements") variant("regcache", default=True, description="Enable memory registration cache") @@ -52,27 +65,12 @@ class MvapichPlus(AutotoolsPackage, CudaPackage, ROCmPackage): multi=False, description="Control the level of thread support", ) - # 32 is needed when job size exceeds 32768 cores - variant( - "ch3_rank_bits", - default="32", - values=("16", "32"), - multi=False, - description="Number of bits allocated to the rank field (16 or 32)", - ) - variant( - "pmi_version", - description="Which pmi version to be used. If using pmi2 add it to your CFLAGS", - default="simple", - values=("simple", "pmi2"), - multi=False, - ) variant( "process_managers", description="List of the process managers to activate", values=disjoint_sets(("auto",), ("slurm",), ("hydra", "gforker", "remshell")) - .with_error("'slurm' or 'auto' cannot be activated along with " "other process managers") + .with_error("'slurm' or 'auto' cannot be activated along with other process managers") .with_default("auto") .with_non_feature_values("auto"), ) @@ -98,29 +96,20 @@ class MvapichPlus(AutotoolsPackage, CudaPackage, ROCmPackage): values=auto_or_any_combination_of("lustre", "gpfs", "nfs", "ufs"), ) - depends_on("findutils", type="build") - depends_on("bison", type="build") - depends_on("pkgconfig", type="build") depends_on("zlib-api") + depends_on("rpm") depends_on("libpciaccess", when=(sys.platform != "darwin")) depends_on("libxml2") - depends_on("rccl", when="^hip") depends_on("libfabric", when="netmod=ofi") depends_on("slurm", when="process_managers=slurm") depends_on("ucx", when="netmod=ucx") depends_on("c", type="build") depends_on("cxx", type="build") depends_on("fortran", type="build") - conflicts( - "process_managers=slurm pmi_version=simple", - msg="MVAPICH-Plus can not be built with slurm and simple pmi", - ) - - with when("process_managers=slurm"): - conflicts("pmi_version=pmi2") - - with when("process_managers=auto"): - conflicts("pmi_version=pmi2") + requires("%fortran=gcc", when="%c=gcc") + requires("%fortran=clang", when="%c=clang") + requires("%fortran=intel-oneapi-compilers", when="%c=intel-oneapi-compilers") + requires("%fortran=nvhpc", when="%c=nvhpc") filter_compiler_wrappers("mpicc", "mpicxx", "mpif77", "mpif90", "mpifort", relative_root="bin") @@ -128,10 +117,10 @@ class MvapichPlus(AutotoolsPackage, CudaPackage, ROCmPackage): def determine_version(cls, exe): if exe.endswith("mpichversion"): output = Executable(exe)(output=str, error=str) - match = re.search(r"^MVAPICH2 Version:\s*(\S+)", output) + match = re.search(r"^MVAPICH Version:\s*(\S+)", output) elif exe.endswith("mpiname"): output = Executable(exe)("-a", output=str, error=str) - match = re.search(r"^MVAPICH2 (\S+)", output) + match = re.search(r"^MVAPICH (\S+)", output) return match.group(1) if match else None @property @@ -144,91 +133,42 @@ def libs(self): return find_libraries(libraries, root=self.prefix, shared=True, recursive=True) - @property - def process_manager_options(self): - spec = self.spec - - other_pms = [] - for x in ("hydra", "gforker", "remshell"): - if spec.satisfies(f"process_managers={x}"): - other_pms.append(x) - - opts = [] - if len(other_pms) > 0: - opts = ["--with-pm=%s" % ":".join(other_pms)] - - # See: http://slurm.schedmd.com/mpi_guide.html#mvapich2 + def install(self, spec, prefix): + runfile = glob(join_path(self.stage.source_path, "mvapich-plus-installer.sh"))[0] + mvp_ver = str(spec.version) + gpu = "nogpu" + gpu_ver = "" + apu = "" + if spec.satisfies("^cuda"): + gpu = "cuda" + gpu_ver = str(spec["cuda"].version)[:4] + elif spec.satisfies("+rocm") or spec.satisfies("^hip"): + gpu = "rocm" + gpu_ver = spec["hip"].version + if spec.satisfies("+apu"): + apu = ".mi300a" + + netmod = "ucx" if spec.satisfies("netmod=ucx") else "ofi" + comp = spec["c"].format("{name}{version}") + el = "el9" if spec["glibc"].satisfies("@2.34:") else "el8" + rhel = "rh" + el + ofed = "24.10" + slurm = "" if spec.satisfies("process_managers=slurm"): - opts = [ - "--with-pm=slurm", - f"--with-slurm={spec['slurm'].prefix}", - f"CFLAGS=-I{spec['slurm'].prefix}/include/slurm", - ] - if "none" in spec.variants["process_managers"].value: - opts = ["--with-pm=none"] - - return opts + slurm = ".slurm" + rpm = f"mvapich-plus-{mvp_ver}-{gpu}{gpu_ver}.{rhel}.ofed{ofed}.{netmod}.{comp}\ +{slurm}{apu}-{mvp_ver}-1.{el}.x86_64.rpm" + + install_shell = which("bash", required=True) + io = which("rpm2cpio", required=True).path + arguments = [ + runfile, # the install script + "--prefix=%s" % prefix, # Where to install + "--io=%s" % io, # rpm2cpio + "--rpm=%s" % rpm, # rpm name + ] - @property - def network_options(self): - opts = [] - # From here on I can suppose that only one variant has been selected - if self.spec.satisfies("netmod=ofi"): - opts = ["--with-device=ch4:ofi"] - elif self.spec.satisfies("netmod=ucx"): - opts = ["--with-device=ch4:ucx"] - return opts - - @property - def file_system_options(self): - spec = self.spec - - fs = [] - for x in ("lustre", "gpfs", "nfs", "ufs"): - if spec.satisfies(f"file_systems={x}"): - fs.append(x) - - opts = [] - if len(fs) > 0: - opts.append("--with-file-system=%s" % "+".join(fs)) - - return opts - - def flag_handler(self, name, flags): - if name == "fflags": - # https://bugzilla.redhat.com/show_bug.cgi?id=1795817 - if self.spec.satisfies("%gcc@10:"): - if flags is None: - flags = [] - flags.append("-fallow-argument-mismatch") - return (None, flags, None) - - def setup_build_environment(self, env: EnvironmentModifications) -> None: - # mvapich2 configure fails when F90 and F90FLAGS are set - env.unset("F90") - env.unset("F90FLAGS") - if self.spec.satisfies("^cuda"): - env.prepend_path("PATH", self.spec["cuda"].prefix + "/bin") - env.prepend_path("LIBRARY_PATH", self.spec["cuda"].prefix + "/lib") - env.prepend_path("LD_LIBRARY_PATH", self.spec["cuda"].prefix + "/lib") - env.prepend_path("LIBRARY_PATH", self.spec["cuda"].prefix + "/lib64") - env.prepend_path("LD_LIBRARY_PATH", self.spec["cuda"].prefix + "/lib64") - env.prepend_path("C_INCLUDE_PATH", self.spec["cuda"].prefix + "/include") - env.append_path("CPATH", self.spec["cuda"].prefix + "/include") - env.prepend_path("CPLUS_INCLUDE_PATH", self.spec["cuda"].prefix + "/include") - env.set("CUDA_HOME", self.spec["cuda"].prefix) - env.set("CUDA_ROOT", self.spec["cuda"].prefix) - if self.spec.satisfies("^hip"): - env.prepend_path("PATH", self.spec["hip"].prefix + "/bin") - env.prepend_path("LIBRARY_PATH", self.spec["hip"].prefix + "/lib") - env.prepend_path("LD_LIBRARY_PATH", self.spec["hip"].prefix + "/lib") - env.prepend_path("LIBRARY_PATH", self.spec["hip"].prefix + "/lib64") - env.prepend_path("LD_LIBRARY_PATH", self.spec["hip"].prefix + "/lib64") - env.prepend_path("C_INCLUDE_PATH", self.spec["hip"].prefix + "/include") - env.append_path("CPATH", self.spec["hip"].prefix + "/include") - env.prepend_path("CPLUS_INCLUDE_PATH", self.spec["hip"].prefix + "/include") - env.set("CUDA_HOME", self.spec["hip"].prefix) - env.set("CUDA_ROOT", self.spec["hip"].prefix) + install_shell(*arguments) def setup_run_environment(self, env: EnvironmentModifications) -> None: env.set("MPI_ROOT", self.prefix) @@ -281,54 +221,3 @@ def setup_dependent_package(self, module, dependent_spec): os.path.join(self.prefix.lib, f"libmpicxx.{dso_suffix}"), os.path.join(self.prefix.lib, f"libmpi.{dso_suffix}"), ] - - def configure_args(self): - spec = self.spec - args = [ - "--disable-silent-rules", - "--disable-new-dtags", - "--disable-cl", - "--disable-opencl", - "--disable-gl", - "--enable-fortran=all", - "-disable-omb", - f"--enable-wrapper-rpath={'no' if spec.satisfies('~wrapperrpath') else 'yes'}", - ] - - args.extend(self.enable_or_disable("alloca")) - # args.append("--with-pmi=" + spec.variants["pmi_version"].value) - - if self.spec.satisfies("+debug"): - args.extend( - [ - "--disable-fast", - "--enable-error-checking=runtime", - "--enable-error-messages=all", - # Permits debugging with TotalView - "--enable-g=all", - "--enable-debuginfo", - ] - ) - else: - args.append("--enable-fast=all") - if self.spec.satisfies("+cuda"): - args.extend(["--enable-cuda", f"--with-cuda={(spec['cuda'].prefix)}"]) - if self.spec.satisfies("+rocm"): - args.extend( - ["--enable-rocm", f"--with-rocm={spec['hip'].prefix}", "--enable-hip=basic"] - ) - - if self.spec.satisfies("+regcache"): - args.append("--enable-registration-cache") - else: - args.append("--disable-registration-cache") - - ld = "" - for path in itertools.chain(self.compiler.extra_rpaths, self.compiler.implicit_rpaths()): - ld += "-Wl,-rpath," + path + " " - if ld != "": - args.append("LDFLAGS=" + ld) - args.extend(self.process_manager_options) - args.extend(self.network_options) - args.extend(self.file_system_options) - return args diff --git a/repos/spack_repo/builtin/packages/mysql/fix-no-server-5.5.patch b/repos/spack_repo/builtin/packages/mysql/fix-no-server-5.5.patch deleted file mode 100644 index fa29318e6b1..00000000000 --- a/repos/spack_repo/builtin/packages/mysql/fix-no-server-5.5.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -Naur mysql-5.5.62/CMakeLists.txt mysql-5.5.62-new/CMakeLists.txt ---- mysql-5.5.62/CMakeLists.txt 2017-06-05 01:38:02.000000000 -0500 -+++ mysql-5.5.62-new/CMakeLists.txt 2017-09-22 09:17:29.000000000 -0500 -@@ -450,6 +450,13 @@ - ADD_SUBDIRECTORY(packaging/rpm-oel) - ADD_SUBDIRECTORY(packaging/rpm-sles) - ADD_SUBDIRECTORY(packaging/rpm-docker) -+ELSE() -+ ADD_SUBDIRECTORY(client) -+ ADD_SUBDIRECTORY(sql/share) -+ ADD_SUBDIRECTORY(scripts) -+ IF(UNIX) -+ ADD_SUBDIRECTORY(man) -+ ENDIF() - ENDIF() - - INCLUDE(cmake/abi_check.cmake) -diff -Naur mysql-5.5.62/client/mysql.cc mysql-5.5.62-new/client/mysql.cc ---- mysql-5.5.62/unittest/mysys/CMakeLists.txt 2017-06-05 01:38:02.000000000 -0500 -+++ mysql-5.5.62-new/unittest/mysys/CMakeLists.txt 2017-09-22 09:17:29.000000000 -0500 -@@ -31,6 +31,7 @@ - MY_ADD_TEST(${testname}) - ENDFOREACH() - -+IF(NOT WITHOUT_SERVER) - IF(WIN32) - ADD_EXECUTABLE(explain_filename-t explain_filename-t.cc - ../../sql/nt_servc.cc) -@@ -39,3 +40,4 @@ - ENDIF() - TARGET_LINK_LIBRARIES(explain_filename-t sql mytap) - ADD_TEST(explain_filename explain_filename-t) -+ENDIF(NOT WITHOUT_SERVER) diff --git a/repos/spack_repo/builtin/packages/mysql/package.py b/repos/spack_repo/builtin/packages/mysql/package.py index ac3b75893ec..bc20cd18a32 100644 --- a/repos/spack_repo/builtin/packages/mysql/package.py +++ b/repos/spack_repo/builtin/packages/mysql/package.py @@ -3,7 +3,6 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os -import tempfile from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.packages.boost.package import Boost @@ -18,53 +17,19 @@ class Mysql(CMakePackage): url = "https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.15.tar.gz" version("8.0.35", sha256="917c5ed38704e99211185ce4be24e33a8c19c91241ed73af4181a6f38d1574c2") - version("8.0.29", sha256="512170fa6f78a694d6f18d197e999d2716ee68dc541d7644dd922a3663407266") - version("8.0.19", sha256="a62786d67b5e267eef928003967b4ccfe362d604b80f4523578e0688f5b9f834") - version("8.0.18", sha256="4cb39a315298eb243c25c53c184b3682b49c2a907a1d8432ba0620534806ade8") - version("8.0.17", sha256="c6e3f38199a77bfd8a4925ca00b252d3b6159b90e4980c7232f1c58d6ca759d6") - version("8.0.16", sha256="8d9fe89920dc8bbbde2857b7b877ad2fa5ec2f231c68e941d484f3b72735eaea") - version("8.0.15", sha256="bb1bca2dc2f23ee9dd395cc4db93b64561d4ac20b53be5d1dae563f7be64825e") - version("8.0.14", sha256="bc53f4c914fb39650289700d144529121d71f38399d2d24a0f5c76e5a8abd204") - version("8.0.13", sha256="d85eb7f98b6aa3e2c6fe38263bf40b22acb444a4ce1f4668473e9e59fb98d62e") - version("8.0.12", sha256="69f16e20834dbc60cb28d6df7351deda323330b9de685d22415f135bcedd1b20") - version("8.0.11", sha256="3bde3e30d5d4afcedfc6db9eed5c984237ac7db9480a9cc3bddc026d50700bf9") - version("5.7.27", sha256="f8b65872a358d6f5957de86715c0a3ef733b60451dad8d64a8fd1a92bf091bba") - version("5.7.26", sha256="5f01d579a20199e06fcbc28f0801c3cb545a54a2863ed8634f17fe526480b9f1") - version("5.7.25", sha256="53751c6243806103114567c1a8b6a3ec27f23c0e132f377a13ce1eb56c63723f") - version("5.7.24", sha256="05bf0c92c6a97cf85b67fff1ac83ca7b3467aea2bf306374d727fa4f18431f87") - version("5.7.23", sha256="0730f2d5520bfac359e9272da6c989d0006682eacfdc086a139886c0741f6c65") - version("5.7.22", sha256="4eb8405b0a9acb0381eae94c1741b2850dfc6467742b24b676e62b566409cff2") - version("5.7.21", sha256="fa205079c27a39c24f3485e7498dd0906a6e0b379b4f99ebc0ec38a9ec5b09b7") - version("5.7.20", sha256="5397549bb7c238f396c123db2df4cad2191b11adf8986de7fe63bff8e2786487") - version("5.7.19", sha256="3e51e76f93179ca7b165a7008a6cc14d56195b3aef35d26d3ac194333d291eb1") - version("5.7.18", sha256="0b5d71ed608656cd8181d3bb0434d3e36bac192899038dbdddf5a7594aaea1a2") - version("5.7.17", sha256="cebf23e858aee11e354c57d30de7a079754bdc2ef85eb684782458332a4b9651") - version("5.7.16", sha256="4935b59974edb275629f6724a0fcf72265a5845faf1e30eeb50ed4b6528318a5") - version("5.7.15", sha256="9085353143bfda59c90aa959e79a35622a22aa592e710993416e193b37eb9956") - version("5.7.14", sha256="f7415bdac2ca8bbccd77d4f22d8a0bdd7280b065bd646a71a506b77c7a8bd169") - version("5.7.13", sha256="50bf1a1635a61235fc43fd4876df2f77163de109372679e29c1ff8dbc38a0b87") - version("5.7.12", sha256="32843cb6d22ab22cd2340262b53c0d6009b5bd41b1fa4102beda19635a5c1c87") - version("5.7.11", sha256="54f8c7af87d3d8084419bde2b9f0d8970b3dada0757b015981b02f35a3681f0e") - version("5.7.10", sha256="1ea1644884d086a23eafd8ccb04d517fbd43da3a6a06036f23c5c3a111e25c74") - version("5.7.9", sha256="315342f5bee1179548cecad2d776cd7758092fd2854024e60a3a5007feba34e0") - version("5.6.44", sha256="c031c92c3f226856b09bf929d8a26b0cd8600036cb9db4e0fdf6b6f032ced336") - version("5.6.43", sha256="1c95800bf0e1b7a19a37d37fbc5023af85c6bc0b41532433b3a886263a1673ef") - version("5.5.62", sha256="b1e7853bc1f04aabf6771e0ad947f35ac8d237f4b35d0706d1095c9526ff99d7") variant("client_only", default=False, description="Build and install client only.") variant( "cxxstd", default="17", - values=("98", "11", "14", "17"), + values=("17",), multi=False, description="Use the specified C++ standard when building.", ) - # 5.7.X cannot be compiled client-only. - conflicts("+client_only", when="@5.7.0:5.7") # Server code has a macro 'byte', which conflicts with C++17's # std::byte. - conflicts("cxxstd=17", when="@8.0.0:~client_only") + conflicts("cxxstd=17", when="~client_only") provides("mysql-client") @@ -75,68 +40,29 @@ class Mysql(CMakePackage): # https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html # See CMAKE_MINIMUM_REQUIRED in CMakeLists.txt - depends_on("cmake@3.1.0:", type="build", when="@5.7.0:5.7 platform=win32") - depends_on("cmake@3.8.0:", type="build", when="@8.0.0: platform=win32") - depends_on("cmake@3.9.2:", type="build", when="@8.0.0: platform=darwin") - depends_on("cmake@3.4.0:", type="build", when="@8.0.0: platform=solaris") - depends_on("cmake@2.6:", type="build", when="@:5.6") - depends_on("cmake@2.8.9:", type="build", when="@5.7.0:5.7") - depends_on("cmake@2.8.12:", type="build", when="@8.0.0:") + depends_on("cmake@3.8.0:", type="build", when="platform=win32") + depends_on("cmake@3.9.2:", type="build", when="platform=darwin") + depends_on("cmake@3.4.0:", type="build", when="platform=solaris") + depends_on("cmake@2.8.12:", type="build") depends_on("gmake@3.75:", type="build") - depends_on("pkgconfig", type="build", when="@5.7.0:") - depends_on("doxygen", type="build", when="@8.0.0:") + depends_on("pkgconfig", type="build") + depends_on("doxygen", type="build") # Each version of MySQL requires a specific version of boost # See BOOST_PACKAGE_NAME in cmake/boost.cmake # 8.0.35 depends_on("boost@1.77.0 cxxstd=17", type="build", when="@8.0.35 cxxstd=17") - # 8.0.29 - depends_on("boost@1.77.0 cxxstd=98", type="build", when="@8.0.29 cxxstd=98") - depends_on("boost@1.77.0 cxxstd=11", type="build", when="@8.0.29 cxxstd=11") - depends_on("boost@1.77.0 cxxstd=14", type="build", when="@8.0.29 cxxstd=14") - depends_on("boost@1.77.0 cxxstd=17", type="build", when="@8.0.29 cxxstd=17") - # 8.0.19 - depends_on("boost@1.70.0 cxxstd=98", type="build", when="@8.0.19 cxxstd=98") - depends_on("boost@1.70.0 cxxstd=11", type="build", when="@8.0.19 cxxstd=11") - depends_on("boost@1.70.0 cxxstd=14", type="build", when="@8.0.19 cxxstd=14") - depends_on("boost@1.70.0 cxxstd=17", type="build", when="@8.0.19 cxxstd=17") - # 8.0.16--8.0.18 - depends_on("boost@1.69.0 cxxstd=98", type="build", when="@8.0.16:8.0.18 cxxstd=98") - depends_on("boost@1.69.0 cxxstd=11", type="build", when="@8.0.16:8.0.18 cxxstd=11") - depends_on("boost@1.69.0 cxxstd=14", type="build", when="@8.0.16:8.0.18 cxxstd=14") - depends_on("boost@1.69.0 cxxstd=17", type="build", when="@8.0.16:8.0.18 cxxstd=17") - # 8.0.14--8.0.15 - depends_on("boost@1.68.0 cxxstd=98", type="build", when="@8.0.14:8.0.15 cxxstd=98") - depends_on("boost@1.68.0 cxxstd=11", type="build", when="@8.0.14:8.0.15 cxxstd=11") - depends_on("boost@1.68.0 cxxstd=14", type="build", when="@8.0.14:8.0.15 cxxstd=14") - depends_on("boost@1.68.0 cxxstd=17", type="build", when="@8.0.14:8.0.15 cxxstd=17") - # 8.0.12--8.0.13 - depends_on("boost@1.67.0 cxxstd=98", type="build", when="@8.0.12:8.0.13 cxxstd=98") - depends_on("boost@1.67.0 cxxstd=11", type="build", when="@8.0.12:8.0.13 cxxstd=11") - depends_on("boost@1.67.0 cxxstd=14", type="build", when="@8.0.12:8.0.13 cxxstd=14") - depends_on("boost@1.67.0 cxxstd=17", type="build", when="@8.0.12:8.0.13 cxxstd=17") - # 8.0.11 - depends_on("boost@1.66.0 cxxstd=98", type="build", when="@8.0.11 cxxstd=98") - depends_on("boost@1.66.0 cxxstd=11", type="build", when="@8.0.11 cxxstd=11") - depends_on("boost@1.66.0 cxxstd=14", type="build", when="@8.0.11 cxxstd=14") - depends_on("boost@1.66.0 cxxstd=17", type="build", when="@8.0.11 cxxstd=17") - # 5.7.X - depends_on("boost@1.59.0 cxxstd=98", when="@5.7.0:5.7 cxxstd=98") - depends_on("boost@1.59.0 cxxstd=11", when="@5.7.0:5.7 cxxstd=11") - depends_on("boost@1.59.0 cxxstd=14", when="@5.7.0:5.7 cxxstd=14") - depends_on("boost@1.59.0 cxxstd=17", when="@5.7.0:5.7 cxxstd=17") # 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="@5.7:") + depends_on(Boost.with_default_variants) - with when("@8.0.35:"): - depends_on("openssl@3:") - requires("cxxstd=17") + depends_on("openssl@3:") + requires("cxxstd=17") - depends_on("zstd", when="@8.0.18:") + depends_on("zstd") depends_on("patchelf", type="build") depends_on("curl") @@ -146,15 +72,10 @@ class Mysql(CMakePackage): depends_on("rpcsvc-proto") depends_on("ncurses") - depends_on("openssl@:2", when="@:8.0.29") - depends_on("libtirpc", when="@5.7.0: platform=linux") - depends_on("libedit", type=["build", "run"]) - depends_on("perl", type=["build", "test"], when="@:7") + depends_on("libtirpc", when="platform=linux") + depends_on("libedit", type=("build", "run")) depends_on("bison@2.1:", type="build") depends_on("m4", type="build", when="@develop platform=solaris") - depends_on("cyrus-sasl", when="@:5.7") - - patch("fix-no-server-5.5.patch", level=1, when="@5.5.0:5.5") # For spack external find executables = ["^mysql_config$"] @@ -177,7 +98,7 @@ def url_for_version(self, version): def cmake_args(self): spec = self.spec - options = [ + return [ self.define("REPRODUCIBLE_BUILD", True), self.define("WITH_CURL", spec["curl"].prefix), self.define("WITH_EDITLINE", "system"), @@ -186,41 +107,11 @@ def cmake_args(self): self.define("WITH_SSL", spec["openssl"].prefix), self.define("WITH_ZLIB", "system"), self.define_from_variant("WITHOUT_SERVER", "client_only"), + self.define("WITH_BOOST", spec["boost"].prefix), + self.define("LOCAL_BOOST_DIR", spec["boost"].prefix), + self.define("WITH_ZSTD", "system"), ] - if spec.satisfies("@5.7:"): - options.extend( - [ - self.define("WITH_BOOST", spec["boost"].prefix), - self.define("LOCAL_BOOST_DIR", spec["boost"].prefix), - ] - ) - - if spec.satisfies("@8.0.18:"): - options.extend([self.define("WITH_ZSTD", "system")]) - - return options - - def _fix_dtrace_shebang(self, env): - # dtrace may cause build to fail because it uses - # '/usr/bin/python' in the shebang. To work around that we copy - # the original script into a temporary folder, and change the - # shebang to '/usr/bin/env python'. Treatment adapted from that - # used in glib recipe per M. Culpo @b2822b258. - dtrace = which("dtrace").path - dtrace_copy_path = os.path.join(tempfile.mkdtemp(), "dtrace-copy") - dtrace_copy = os.path.join(dtrace_copy_path, "dtrace") - mkdirp(dtrace_copy_path) - copy(dtrace, dtrace_copy) - filter_file( - "^#!/usr/bin/python", - "#!/usr/bin/env {0}".format(os.path.basename(str(self.spec["python"].command))), - dtrace_copy, - ) - # To have our own copy of dtrace in PATH, we need to - # prepend to PATH the temporary folder where it resides. - env.prepend_path("PATH", dtrace_copy_path) - def setup_build_environment(self, env: EnvironmentModifications) -> None: cxxstd = self.spec.variants["cxxstd"].value flag = getattr(self.compiler, "cxx{0}_flag".format(cxxstd)) @@ -232,9 +123,6 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: if int(cxxstd) > 14: env.append_flags("CXXFLAGS", "-Wno-error=register") - if "python" in self.spec and self.spec.satisfies("@:7"): - self._fix_dtrace_shebang(env) - @run_before("install") def fixup_mysqlconfig(self): if not self.spec.satisfies("platform=windows"): diff --git a/repos/spack_repo/builtin/packages/mysqlpp/package.py b/repos/spack_repo/builtin/packages/mysqlpp/package.py index e155672374e..a9874ede247 100644 --- a/repos/spack_repo/builtin/packages/mysqlpp/package.py +++ b/repos/spack_repo/builtin/packages/mysqlpp/package.py @@ -20,6 +20,7 @@ class Mysqlpp(AutotoolsPackage): version("3.3.0", sha256="449cbc46556cc2cc9f9d6736904169a8df6415f6960528ee658998f96ca0e7cf") version("3.2.5", sha256="839cfbf71d50a04057970b8c31f4609901f5d3936eaa86dab3ede4905c4db7a8") + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("mysql-client") diff --git a/repos/spack_repo/builtin/packages/n2p2/package.py b/repos/spack_repo/builtin/packages/n2p2/package.py index 3b6790a12bb..7a23c7534c3 100644 --- a/repos/spack_repo/builtin/packages/n2p2/package.py +++ b/repos/spack_repo/builtin/packages/n2p2/package.py @@ -42,6 +42,7 @@ class N2p2(MakefilePackage): depends_on("doxygen", type="build", when="+doc") depends_on("texlive", type="build", when="+doc") depends_on("py-cython", type=("build", "run")) + depends_on("py-setuptools", type="build") depends_on("py-breathe", type="build", when="+doc") depends_on("py-sphinx", type="build", when="+doc") depends_on("py-sphinx-rtd-theme", type="build", when="+doc") @@ -67,7 +68,7 @@ def edit(self, spec, prefix): blas_libs = self.spec["blas"].libs makefile.filter("PROJECT_CC=.*", f"PROJECT_CC={spack_cxx}") makefile.filter("PROJECT_MPICC=.*", f"PROJECT_MPICC={self.spec['mpi'].mpicxx}") - makefile.filter("PROJECT_CFLAGS=.*", f"PROJECT_CFLAGS={self.compiler.cxx11_flag}") + makefile.filter("PROJECT_CFLAGS=.*", f"PROJECT_CFLAGS={self.compiler.cxx14_flag}") makefile.filter( "PROJECT_LDFLAGS_BLAS.*", f"PROJECT_LDFLAGS_BLAS={blas_libs.ld_flags} -lgsl -lgslcblas" ) @@ -113,7 +114,7 @@ def test_result_check(self): if not os.path.exists(result_check_script): raise SkipTest("Required result-check.sh is missing from the repository directory") - make = which("make") + make = which("make", required=True) with working_dir(self.test_suite.current_test_cache_dir.test): make("clean") @@ -152,5 +153,5 @@ def test_result_check(self): make("python", parallel=False) assert os.path.isfile(python_output), f"{python_output} was not produced" - result_check = which(result_check_script) + result_check = which(result_check_script, required=True) result_check(cpp_output, python_output, expected_file) diff --git a/repos/spack_repo/builtin/packages/nag/package.py b/repos/spack_repo/builtin/packages/nag/package.py index cee7943805b..730943c4b8e 100644 --- a/repos/spack_repo/builtin/packages/nag/package.py +++ b/repos/spack_repo/builtin/packages/nag/package.py @@ -16,28 +16,16 @@ class Nag(Package, CompilerPackage): homepage = "https://www.nag.com/nagware/np.asp" maintainers("skosukhin") - version("7.2.7203", sha256="775e2a10329bcf1c0ba35adb73d49db11b76698ede1f4ae070177216c9ee6e1e") + version("7.2.7231", sha256="b905748e568682b8d2217e4c8be1d251105b680af927e2f4bf4d462b183eb7f2") version( - "7.2.7200", - sha256="3c2179e073d6cf2aadaeaf9a6a5f3b7f1fdcfb85b99c6fb593445b28ddd44880", - url="file://{0}/npl6a72na_amd64.tgz".format(os.getcwd()), + "7.2.7203", + sha256="775e2a10329bcf1c0ba35adb73d49db11b76698ede1f4ae070177216c9ee6e1e", + url="file://${0}/npl6a72na_amd64.tgz".format(os.getcwd()), deprecated=True, ) version("7.1.7125", sha256="738ed9ed943ebeb05d337cfdc603b9c88b8642b3d0cafea8d2872f36201adb37") - version( - "7.1.7101", - sha256="18640737b232cebeb532ba36187675cdaf36d5b1fc235a780fc9e588c19a3ed2", - url="file://{0}/npl6a71na_amd64.tgz".format(os.getcwd()), - deprecated=True, - ) version("7.0.7048", sha256="6d509208533d79139e5a9f879b7b93e7b58372b78d404d51f35e491ecbaa54c7") version("6.2.6252", sha256="9b60f6ffa4f4be631079676963e74eea25e8824512e5c864eb06758b2a3cdd2d") - version( - "6.1.6136", - sha256="32580e0004e6798abf1fa52f0070281b28abeb0da2387530a4cc41218e813c7c", - url="file://{0}/npl6a61na_amd64.tgz".format(os.getcwd()), - deprecated=True, - ) depends_on("gcc languages=c", type="run", when="platform=linux") provides("fortran") diff --git a/repos/spack_repo/builtin/packages/nalu/package.py b/repos/spack_repo/builtin/packages/nalu/package.py index 73e56de48bc..a6a9bb47254 100644 --- a/repos/spack_repo/builtin/packages/nalu/package.py +++ b/repos/spack_repo/builtin/packages/nalu/package.py @@ -49,7 +49,7 @@ class Nalu(CMakePackage): "trilinos" "+mpi+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost+gtest" "~epetra~ml" - "~superlu-dist+superlu+hdf5+shards~hypre gotype=long" + "~superlu-dist+hdf5+shards~hypre gotype=long" ) depends_on("trilinos~shared", when="~shared") # Optional dependencies diff --git a/repos/spack_repo/builtin/packages/nalu_wind/package.py b/repos/spack_repo/builtin/packages/nalu_wind/package.py index be917ca68e1..6d58cfdd126 100644 --- a/repos/spack_repo/builtin/packages/nalu_wind/package.py +++ b/repos/spack_repo/builtin/packages/nalu_wind/package.py @@ -23,29 +23,20 @@ class NaluWind(CMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/exawind/nalu-wind.git" url = "https://github.com/Exawind/nalu-wind/archive/refs/tags/v2.0.0.tar.gz" - maintainers("jrood-nrel", "psakievich") + maintainers("jrood-nrel") tags = ["ecp", "ecp-apps"] - - version("master", branch="master", submodules=True) - version( - "2.3.0", tag="v2.3.0", commit="94cea346455f6841c8ce28d54c6d894bbf5e9a0a", submodules=True - ) - version( - "2.2.2", tag="v2.2.2", commit="6e98cb004e5cc2dcb60d09b155182a7095007c8e", submodules=True - ) - version( - "2.2.1", tag="v2.2.1", commit="ffa9de729df2a11b5241fdeb7628e7fab9f48f9b", submodules=True - ) - version( - "2.2.0", tag="v2.2.0", commit="a530903dd9fd67df2528e990ca496f64d45e5e20", submodules=True - ) - version( - "2.1.0", tag="v2.1.0", commit="9242f8b766379465ee325a9cbcdcd7f2398d4eef", submodules=True - ) - version( - "2.0.0", tag="v2.0.0", commit="dd115634489a736f48593f10be7ac2c992b16088", submodules=True - ) + submodules = True + + version("master", branch="master") + version("2.5.0", tag="v2.5.0", commit="2382077a7112a1aeb90f850994eb92d76abe0434") + version("2.4.0", tag="v2.4.0", commit="85c06c5264fd8689002dc0ea32cbb74b2bff1668") + version("2.3.0", tag="v2.3.0", commit="94cea346455f6841c8ce28d54c6d894bbf5e9a0a") + version("2.2.2", tag="v2.2.2", commit="6e98cb004e5cc2dcb60d09b155182a7095007c8e") + version("2.2.1", tag="v2.2.1", commit="ffa9de729df2a11b5241fdeb7628e7fab9f48f9b") + version("2.2.0", tag="v2.2.0", commit="a530903dd9fd67df2528e990ca496f64d45e5e20") + version("2.1.0", tag="v2.1.0", commit="9242f8b766379465ee325a9cbcdcd7f2398d4eef") + version("2.0.0", tag="v2.0.0", commit="dd115634489a736f48593f10be7ac2c992b16088") variant("pic", default=True, description="Position independent code") variant( @@ -60,6 +51,7 @@ class NaluWind(CMakePackage, CudaPackage, ROCmPackage): values=_parse_float, description="Relative tolerance for regression tests", ) + variant("kynema", default=False, description="Compile with Kynema structural solver") variant("openfast", default=False, description="Compile with OpenFAST support") variant("tioga", default=False, description="Compile with Tioga support") variant("hypre", default=True, description="Compile with Hypre support") @@ -81,12 +73,14 @@ class NaluWind(CMakePackage, CudaPackage, ROCmPackage): depends_on("mpi") depends_on("yaml-cpp@0.6.0:0.7.0") + depends_on("kynema", when="+kynema") depends_on("openfast@4.0.2:+cxx+netcdf", when="+openfast") + depends_on("openfast@4.1.1:", when="@2.4.0:+openfast") depends_on("trilinos@15.1.1", when="@=2.1.0") depends_on("trilinos@13.4.1", when="@=2.0.0") depends_on("hypre@2.29.0:", when="@2.0.0:+hypre") depends_on( - "trilinos@13:+exodus+tpetra+zoltan+stk~superlu-dist~superlu+hdf5+shards~hypre+gtest " + "trilinos@13:+exodus+tpetra+zoltan+stk~superlu-dist+hdf5+shards~hypre+gtest " "gotype=long cxxstd=17" ) depends_on("trilinos~cuda~wrapper", when="~cuda") @@ -238,5 +232,5 @@ def cmake_args(self): @run_before("cmake") def add_submodules(self): if self.run_tests or self.spec.satisfies("+wind-utils"): - git = which("git") + git = which("git", required=True) git("submodule", "update", "--init", "--recursive") diff --git a/repos/spack_repo/builtin/packages/namd/namd-cudalocalrecord-link-fix.patch b/repos/spack_repo/builtin/packages/namd/namd-cudalocalrecord-link-fix.patch new file mode 100644 index 00000000000..36390d78ef8 --- /dev/null +++ b/repos/spack_repo/builtin/packages/namd/namd-cudalocalrecord-link-fix.patch @@ -0,0 +1,14 @@ +--- a/src/Sequencer.C ++++ b/src/Sequencer.C +@@ -76,10 +76,8 @@ + #define __thread __declspec(thread) + #endif + extern __thread DeviceCUDA *deviceCUDA; +-#ifdef __IBMCPP__ +-// IBM compiler requires separate definition for static members ++// Required for C++11 toolchains when odr-used. + constexpr int CudaLocalRecord::num_inline_peer; +-#endif + #endif + + #define SPECIAL_PATCH_ID 91 diff --git a/repos/spack_repo/builtin/packages/namd/namd-hiparch-override.patch b/repos/spack_repo/builtin/packages/namd/namd-hiparch-override.patch new file mode 100644 index 00000000000..655a8ab8817 --- /dev/null +++ b/repos/spack_repo/builtin/packages/namd/namd-hiparch-override.patch @@ -0,0 +1,24 @@ +--- a/arch/Linux-x86_64.hip ++++ b/arch/Linux-x86_64.hip +@@ -15,12 +15,15 @@ endif + ROCMV = $(shell export HIP_PLATFORM=$(PLATFORM); $(HIPDIR)/bin/hipconfig -v | cut -d "." -f 1,2 ) + + ifeq ($(PLATFORM),amd) +- # set HIPARCH targets based on ROCMV +- ifeq (1,$(shell echo "$(ROCMV) >= 7.1" | bc)) +- # We're dropping gfx1030 to avoid a rocPRIM issue for now +- HIPARCH = "gfx906,gfx908,gfx90a,gfx942,gfx950" +- else +- HIPARCH = "gfx906,gfx908,gfx90a,gfx1030" ++ # Allow callers (e.g. package managers) to override HIPARCH. ++ # When not provided, keep the original ROCm-version-based defaults. ++ ifeq ($(HIPARCH),) ++ ifeq (1,$(shell echo "$(ROCMV) >= 7.1" | bc)) ++ # We're dropping gfx1030 to avoid a rocPRIM issue for now ++ HIPARCH = "gfx906,gfx908,gfx90a,gfx942,gfx950" ++ else ++ HIPARCH = "gfx906,gfx908,gfx90a,gfx1030" ++ endif + endif + endif + diff --git a/repos/spack_repo/builtin/packages/namd/package.py b/repos/spack_repo/builtin/packages/namd/package.py index f1740f13464..dd7b810727f 100644 --- a/repos/spack_repo/builtin/packages/namd/package.py +++ b/repos/spack_repo/builtin/packages/namd/package.py @@ -26,39 +26,8 @@ class Namd(MakefilePackage, CudaPackage, ROCmPackage): maintainers("jcphill") version("master", branch="master") + version("3.0.2", sha256="0916700dec3342165b7ba2c3b5f99dcff767879d2a4931b5028dba47acd68bd5") version("3.0.1", sha256="3be0854545c45e58afb439a96708e127aef435d30113cc89adbab8f4b6888733") - version( - "3.0", - sha256="301c64f0f1db860f7336efdb26223ccf66b5ab42bfc9141df8d81ec1e20bf472", - deprecated=True, - ) - version( - "3.0b7", - sha256="b18ff43b0f55ec59e137c62eba1812589dd88b2122c3a05ea652781667f438b4", - deprecated=True, - ) - version( - "3.0b6", - sha256="8b5fb1dc8d5b5666c6a45d20ee7e8c9d1f5c186578e2cf148b68ba421d43b850", - deprecated=True, - ) - version( - "3.0b3", - sha256="20c32b6161f9c376536e3cb97c3bfe5367e1baaaace3c716ff79831fc2eb8199", - deprecated=True, - ) - version( - "2.15a2", - sha256="8748cbaa93fc480f92fc263d9323e55bce6623fc693dbfd4a40f59b92669713e", - deprecated=True, - ) - version("2.15a1", branch="master", tag="release-2-15-alpha-1", deprecated=True) - # Same as above, but lets you use a local file instead of git - version( - "2.15a1.manual", - sha256="474006e98e32dddae59616b3b75f13a2bb149deaf7a0d617ce7fb9fd5a56a33a", - deprecated=True, - ) version( "2.14", sha256="34044d85d9b4ae61650ccdba5cda4794088c3a9075932392dd0752ef8c049235", @@ -106,6 +75,10 @@ class Namd(MakefilePackage, CudaPackage, ROCmPackage): patch("inherited-member-2.14.patch", when="@2.14") # Handle change in python-config for python@3.8: patch("namd-python38.patch", when="interface=python ^python@3.8:") + # Allow Spack to drive HIP offload targets via HIPARCH. + patch("namd-hiparch-override.patch", when="@3.0.2: +rocm") + # Fix missing CudaLocalRecord::num_inline_peer symbol with C++11 HIP builds. + patch("namd-cudalocalrecord-link-fix.patch", when="@3.0.2: +rocm") depends_on("c", type="build") depends_on("cxx", type="build") @@ -189,7 +162,7 @@ def _edit_arch_generic(self, spec, prefix): "gcc": m64 + "-O3 -fexpensive-optimizations -ffast-math -lpthread " + archopt, - "intel": "-O2 -ip -qopenmp-simd" + archopt, + "intel": "-O2 -ip -qopenmp-simd " + archopt, "clang": m64 + "-O3 -ffast-math -fopenmp " + archopt, "aocc": m64 + "-O3 -ffp-contract=fast -ffast-math -fopenmp " + archopt, } @@ -202,7 +175,7 @@ def _edit_arch_generic(self, spec, prefix): "clang": m64 + "-O3 -ffast-math -fopenmp " + archopt, "aocc": m64 + "-O3 -ffp-contract=fast -ffast-math " + archopt, "intel-oneapi-compilers": m64 - + "-O3 -ffp-contract=fast -ffast-math" + + "-O3 -ffp-contract=fast -ffast-math " + archopt, } @@ -267,7 +240,7 @@ def _edit_arch_target_based(self, spec, prefix): tty.info("Building binaries with AVX512-tile optimization") copy("Linux-AVX512-icc.arch", arch_filename) elif spec.version >= Version("2.14") and os.path.exists("Linux-SKX-icc.arch"): - tty.info("Building binaries with Skylake-X" "AVX512 optimization") + tty.info("Building binaries with Skylake-X AVX512 optimization") copy("Linux-SKX-icc.arch", arch_filename) else: return False @@ -287,6 +260,16 @@ def _edit_arch(self, spec, prefix): if not self._edit_arch_target_based(spec, prefix): self._edit_arch_generic(spec, prefix) + def setup_build_environment(self, env): + if self.spec.satisfies("@3.0.2: +rocm"): + # Avoid leaking external PLATFORM into NAMD's HIP make logic. + # A leaked PLATFORM (e.g. linux) can bypass AMD autodetection and + # incorrectly inject CUDA defines/headers in ROCm-only builds. + env.unset("PLATFORM") + rocm_archs = self.spec.variants["amdgpu_target"].value + if "none" not in rocm_archs: + env.set("HIPARCH", ",".join(rocm_archs)) + def edit(self, spec, prefix): self._edit_arch(spec, prefix) @@ -356,13 +339,6 @@ def edit(self, spec, prefix): join_path(self.build_directory, "Make.config"), ) - @when("@3.0b3") - def build(self, spec, prefix): - # Disable parallel build - # https://github.com/spack/spack/pull/43215 - with working_dir(self.build_directory): - make(parallel=False) - def install(self, spec, prefix): with working_dir(self.build_directory): mkdirp(prefix.bin) diff --git a/repos/spack_repo/builtin/packages/nano/package.py b/repos/spack_repo/builtin/packages/nano/package.py index 83fc0e3f564..1c3f2d8daf0 100644 --- a/repos/spack_repo/builtin/packages/nano/package.py +++ b/repos/spack_repo/builtin/packages/nano/package.py @@ -18,6 +18,11 @@ class Nano(AutotoolsPackage): license("GPL-3.0-or-later", checked_by="wdconinc") # 8.x + version("8.7", sha256="afd287aa672c48b8e1a93fdb6c6588453d527510d966822b687f2835f0d986e9") + version("8.6", sha256="f7abfbf0eed5f573ab51bd77a458f32d82f9859c55e9689f819d96fe1437a619") + version("8.5", sha256="000b011d339c141af9646d43288f54325ff5c6e8d39d6e482b787bbc6654c26a") + version("8.4", sha256="5ad29222bbd55624d87ea677928b3106a743114d6c6f9b41f36c97be2a8e628d") + version("8.3", sha256="551b717b2e28f7e90f749323686a1b5bbbd84cfa1390604d854a3ca3778f111e") version("8.2", sha256="d5ad07dd862facae03051c54c6535e54c7ed7407318783fcad1ad2d7076fffeb") version("8.1", sha256="93b3e3e9155ae389fe9ccf9cb7ab380eac29602835ba3077b22f64d0f0cbe8cb") version("8.0", sha256="c17f43fc0e37336b33ee50a209c701d5beb808adc2d9f089ca831b40539c9ac4") @@ -87,7 +92,6 @@ class Nano(AutotoolsPackage): version("2.6.1", sha256="45721fa6d6128068895ad71a6967ff7398d11b064b3f888e5073c97a2b6e9a81") depends_on("c", type="build") - depends_on("pkgconfig", type="build") depends_on("gettext@0.18.3:") depends_on("gettext@0.20:", when="@8.1:") 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/navi/package.py b/repos/spack_repo/builtin/packages/navi/package.py index 5d807d049aa..23c365f7cc5 100644 --- a/repos/spack_repo/builtin/packages/navi/package.py +++ b/repos/spack_repo/builtin/packages/navi/package.py @@ -21,5 +21,5 @@ class Navi(Package): depends_on("rust") def install(self, spec, prefix): - cargo = which("cargo") + cargo = which("cargo", required=True) cargo("install", "--root", prefix, "--path", ".") diff --git a/repos/spack_repo/builtin/packages/ncbi_toolkit/package.py b/repos/spack_repo/builtin/packages/ncbi_toolkit/package.py index ab45a1e8273..7379dade46e 100644 --- a/repos/spack_repo/builtin/packages/ncbi_toolkit/package.py +++ b/repos/spack_repo/builtin/packages/ncbi_toolkit/package.py @@ -17,6 +17,16 @@ class NcbiToolkit(AutotoolsPackage): # Per https://ncbi.github.io/cxx-toolkit/pages/ch_getcode_svn#ch_getcode_svn.external # New versions are released on github + version( + "28_0_12", + sha256="db8a21ca242480badce126a6cad6ed5a2a8bcf40427fe6ea0dfd1ce6e8755a33", + url="https://github.com/ncbi/ncbi-cxx-toolkit-public/archive/refs/tags/release-28.0.12.tar.gz", + ) + version( + "27_0_0", + sha256="c8fb3f99c6fce4f170b381f3a7789c76a2ff1c23c094c9852e2e3de1fdc57277", + url="https://github.com/ncbi/ncbi-cxx-toolkit-public/archive/refs/tags/release-27.0.0.tar.gz", + ) version( "26_0_1", sha256="aba79da5c8d0407ffc92b7831f4f8f8a8096a15e47a016ada81b6568f9d280cc", @@ -61,6 +71,13 @@ class NcbiToolkit(AutotoolsPackage): depends_on("bamtools") depends_on("berkeley-db") + # boost 1.87 removes dummy_cond(). ncbi-toolset 29.5.0 fixes this. + conflicts("boost@1.87:", when="@:29_4") + + # libxml2's xmlGetLastError starts returning const in libxml2@2.12: + # ncbi-toolkit fixes this in :29 + conflicts("libxml2@2.12:", when="@:28") + def configure_args(self): args = ["--without-sybase", "--without-fastcgi"] if "+debug" not in self.spec: @@ -83,7 +100,7 @@ def patch(self): if self.spec.satisfies("@:22_0_0 ^boost@1.70:"): with working_dir(join_path("include", "corelib")): filter_file( - ("unit_test::ut_detail::" "ignore_unused_variable_warning"), + ("unit_test::ut_detail::ignore_unused_variable_warning"), "ignore_unused", "test_boost.hpp", string=True, diff --git a/repos/spack_repo/builtin/packages/ncbi_vdb/package.py b/repos/spack_repo/builtin/packages/ncbi_vdb/package.py index 845cefbd279..1542f63e0c5 100644 --- a/repos/spack_repo/builtin/packages/ncbi_vdb/package.py +++ b/repos/spack_repo/builtin/packages/ncbi_vdb/package.py @@ -15,6 +15,7 @@ class NcbiVdb(CMakePackage): homepage = "https://github.com/ncbi/ncbi-vdb" git = "https://github.com/ncbi/ncbi-vdb.git" + version("3.3.0", tag="3.3.0", commit="41a6b24fa8128253912fc1f0b44f06a314a59f9c") version("3.0.2", tag="3.0.2", commit="c4aa19632714c2f04af07505721fb16c71bba3d5") version("3.0.0", tag="3.0.0", commit="2222d7727122d0cbad93344dd6a9044abff34280") diff --git a/repos/spack_repo/builtin/packages/nccl/package.py b/repos/spack_repo/builtin/packages/nccl/package.py index 10a94a6941b..8afc1aa43c1 100644 --- a/repos/spack_repo/builtin/packages/nccl/package.py +++ b/repos/spack_repo/builtin/packages/nccl/package.py @@ -15,10 +15,20 @@ class Nccl(MakefilePackage, CudaPackage): homepage = "https://github.com/NVIDIA/nccl" url = "https://github.com/NVIDIA/nccl/archive/v2.7.3-1.tar.gz" + git = "https://github.com/NVIDIA/nccl.git" - maintainers("adamjstewart") + maintainers("msimberg") libraries = ["libnccl.so"] + version("2.29.7-1", sha256="e67239212c395bfdb398a7519491840d06fdf6b599c299f97c7ed0109777bba1") + version("2.29.3-1", sha256="d1dffc5e9dd059985704f98ff3d8b7e6cf62d20c10a181d427a4e3233f8148f1") + version("2.29.2-1", sha256="063e20649c4cfa01e789b4dc73514dbb5d73f9518e426823dab53316415e071b") + version("2.28.9-1", sha256="f349860336c6b7fb97b22bed9c729142f3531a0e82826c1204d01e44af8b9cb9") + version("2.28.7-1", sha256="1d2d1dd53e6c6bb42c200d9b934fa31fd528cbf3c6443581519aa628fcbd618a") + version("2.28.3-1", sha256="888b305a79954b67022cfdd91aec515e88c9fed7ddbd2fb96af4ee3295853bb0") + version("2.28.1-1", sha256="4945974609e04ab870a1264acdcc01cef08e6217fd42fd1b13d9b247181473d8") + version("2.27.7-1", sha256="98e6262bd55932c51e7c8ffc50cc764f019e4b94a8fd6694d839ae828ec8d128") + version("2.27.6-1", sha256="be322d358891c48acf34ac23655e7ebdce27bcfa83d67d09483c335d3b5021cc") version("2.27.5-1", sha256="e8a8972fc7f7517703510ef23608d41f6484db5331fca37827b4af3f66995344") version("2.27.3-1", sha256="97cde99265d0b76004b96e258deea6365df18ff9a292b8588f648e59c3ce1f2e") version("2.26.6-1", sha256="2a4f86198510e1f0764c116b33ff70e082240f87d158b2017d7f34c7c3768ac6") @@ -67,7 +77,17 @@ class Nccl(MakefilePackage, CudaPackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("rdma-core") + # Make verbs default but packages like aws-ofi-nccl can be used instead which loads + # another library to use instead at runtime. + variant( + "fabrics", + values=disjoint_sets(("auto",), ("verbs",)) # supported transports + .with_default("verbs") + .with_non_feature_values("auto"), + description="List of fabrics that are enabled; 'auto' lets nccl determine at runtime", + ) + + depends_on("rdma-core", when="fabrics=verbs", type="run") # https://github.com/NVIDIA/nccl/issues/244 patch("so_reuseport.patch", when="@2.3.7-1:2.4.8-1") @@ -78,6 +98,14 @@ class Nccl(MakefilePackage, CudaPackage): msg="Must specify CUDA compute capabilities of your GPU, see " "https://developer.nvidia.com/cuda-gpus", ) + # https://github.com/NVIDIA/nccl/issues/1743 + conflicts("%gcc@14:", msg="Compilation issue with gcc 14", when="@:2.27.5-1") + + depends_on("cuda@12:13", when="@2.27:") + depends_on("cuda@12", when="@2.22:2.26") + depends_on("cuda@11:12", when="@2.16:2.21") + depends_on("cuda@10:11", when="@2.7:2.15") + depends_on("cuda@9:11", when="@:2.6") @classmethod def determine_version(cls, lib): diff --git a/repos/spack_repo/builtin/packages/nccl_fastsocket/package.py b/repos/spack_repo/builtin/packages/nccl_fastsocket/package.py index 626d450d896..8f637c410d6 100644 --- a/repos/spack_repo/builtin/packages/nccl_fastsocket/package.py +++ b/repos/spack_repo/builtin/packages/nccl_fastsocket/package.py @@ -20,7 +20,7 @@ class NcclFastsocket(Package): depends_on("cxx", type="build") # generated depends_on("bazel", type="build") - depends_on("nccl", type=["build", "run"]) + depends_on("nccl", type=("build", "run")) maintainers("danielahlin") diff --git a/repos/spack_repo/builtin/packages/nccl_tests/package.py b/repos/spack_repo/builtin/packages/nccl_tests/package.py index e120e0d5fb5..b143884879d 100644 --- a/repos/spack_repo/builtin/packages/nccl_tests/package.py +++ b/repos/spack_repo/builtin/packages/nccl_tests/package.py @@ -16,6 +16,7 @@ class NcclTests(MakefilePackage, CudaPackage): homepage = "https://github.com/NVIDIA/nccl-tests" url = "https://github.com/NVIDIA/nccl-tests/archive/v2.0.0.tar.gz" + version("2.17.6", sha256="38974e70342150ede0e3fb8fd24bfe60ccbde90fa20241716ba8bb338e6b61a0") version("2.16.3", sha256="ec373552e216c0df03414718bd588585a1719971b20a5939a2f9488c8ce767eb") version("2.13.6", sha256="52b472a58a4918d3221a9b8c4bd9335382643d7e241983918b64692d685cc3d1") version("2.0.0", sha256="731fc3b7c37de59cfe880bf198349ac185639ef23570749ea6aef334c850c49c") diff --git a/repos/spack_repo/builtin/packages/ncdu/package.py b/repos/spack_repo/builtin/packages/ncdu/package.py index 2efcc40542b..dcb911ab520 100644 --- a/repos/spack_repo/builtin/packages/ncdu/package.py +++ b/repos/spack_repo/builtin/packages/ncdu/package.py @@ -20,6 +20,7 @@ class Ncdu(Package): license("MIT") + version("1.22", sha256="0ad6c096dc04d5120581104760c01b8f4e97d4191d6c9ef79654fa3c691a176b") version("1.19", sha256="30363019180cde0752c7fb006c12e154920412f4e1b5dc3090654698496bb17d") version("1.18.1", sha256="7c0fa1eb29d85aaed4ba174164bdbb8f011b5c390d017c57d668fc7231332405") version("1.17", sha256="810745a8ed1ab3788c87d3aea4cc1a14edf6ee226f764bcc383e024ba56adbf1") diff --git a/repos/spack_repo/builtin/packages/ncl/package.py b/repos/spack_repo/builtin/packages/ncl/package.py index 507fd782ccc..96ee14ed4bb 100644 --- a/repos/spack_repo/builtin/packages/ncl/package.py +++ b/repos/spack_repo/builtin/packages/ncl/package.py @@ -61,7 +61,6 @@ class Ncl(Package): variant("hdf4", default=False, description="Enable HDF4 support.") variant("hdf-eos2", default=False, when="+hdf4", description="Enable HDF-EOS2 support.") variant("hdf-eos5", default=False, description="Enable HDF-EOS5 support.") - variant("gdal", default=False, description="Enable GDAL support.") variant("triangle", default=True, description="Enable Triangle support.") variant("udunits2", default=True, description="Enable UDUNITS-2 support.") variant("openmp", default=True, description="Enable OpenMP support.") @@ -119,7 +118,6 @@ class Ncl(Package): depends_on("hdf", when="+hdf4") depends_on("hdf-eos2", when="+hdf-eos2") depends_on("hdf-eos5", when="+hdf-eos5") - depends_on("gdal@:2.4", when="+gdal") depends_on("udunits", when="+udunits2") depends_on("jasper@:2", when="+grib") depends_on("gsl", when="+eemd") @@ -333,7 +331,7 @@ def prepare_install_config(self): # Did you build NetCDF with OPeNDAP support? "y\n" if self.spec.satisfies("^netcdf-c+dap") else "n\n", # Build GDAL support (optional) into NCL? - "y\n" if "+gdal" in self.spec else "n\n", + "n\n", # Build EEMD support (optional) into NCL? "y\n" if "+eemd" in self.spec else "n\n", # Build Udunits-2 support (optional) into NCL? diff --git a/repos/spack_repo/builtin/packages/nco/package.py b/repos/spack_repo/builtin/packages/nco/package.py index 7d413be10dc..d9f2f231876 100644 --- a/repos/spack_repo/builtin/packages/nco/package.py +++ b/repos/spack_repo/builtin/packages/nco/package.py @@ -14,7 +14,7 @@ class Nco(AutotoolsPackage): homepage = "https://nco.sourceforge.net/" url = "https://github.com/nco/nco/archive/5.0.1.tar.gz" - maintainers("altheaden", "xylar") + maintainers("altheaden", "andrewdnolan", "xylar") tags = ["e4s"] diff --git a/repos/spack_repo/builtin/packages/ncurses/patch_gcc_5.txt b/repos/spack_repo/builtin/packages/ncurses/patch_gcc_5.txt deleted file mode 100644 index f85e07cb8d1..00000000000 --- a/repos/spack_repo/builtin/packages/ncurses/patch_gcc_5.txt +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur ncurses-6.0/ncurses/Makefile.in ncurses-6.0-patched/ncurses/Makefile.in ---- ncurses-6.0/ncurses/Makefile.in 2015-08-06 01:15:41.000000000 +0200 -+++ ncurses-6.0-patched/ncurses/Makefile.in 2015-12-15 14:58:52.710199407 +0100 -@@ -219,7 +219,7 @@ - $(SHELL) -e $(tinfo)/MKfallback.sh $(TERMINFO) $(TERMINFO_SRC) $(TIC_PATH) $(FALLBACK_LIST) >$@ - - ./lib_gen.c : $(base)/MKlib_gen.sh ../include/curses.h -- $(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@ -+ $(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS) -P" "$(AWK)" generated <../include/curses.h >$@ - - init_keytry.h: make_keys$(BUILD_EXEEXT) keys.list - ./make_keys$(BUILD_EXEEXT) keys.list > $@ diff --git a/repos/spack_repo/builtin/packages/ncvis/package.py b/repos/spack_repo/builtin/packages/ncvis/package.py index 00fd1becc68..4b54d99eb21 100644 --- a/repos/spack_repo/builtin/packages/ncvis/package.py +++ b/repos/spack_repo/builtin/packages/ncvis/package.py @@ -25,7 +25,7 @@ class Ncvis(CMakePackage): depends_on("cmake", type="build") depends_on("netcdf-c", type="link") - depends_on("wxwidgets+opengl", type="link") + depends_on("wxwidgets+opengl+gui", type="link") @run_after("install") def install_resources(self): diff --git a/repos/spack_repo/builtin/packages/nek5000/package.py b/repos/spack_repo/builtin/packages/nek5000/package.py index 6975347f963..faa846fc713 100644 --- a/repos/spack_repo/builtin/packages/nek5000/package.py +++ b/repos/spack_repo/builtin/packages/nek5000/package.py @@ -49,6 +49,8 @@ class Nek5000(Package): depends_on("mpi", when="+mpi") + depends_on("visit", when="+visit") + patch("add_fjfortran.patch", when="%fj") @run_after("install") diff --git a/repos/spack_repo/builtin/packages/nekcem/package.py b/repos/spack_repo/builtin/packages/nekcem/package.py index 0991e80be42..29d22771599 100644 --- a/repos/spack_repo/builtin/packages/nekcem/package.py +++ b/repos/spack_repo/builtin/packages/nekcem/package.py @@ -113,6 +113,6 @@ def install(self, spec, prefix): install_tree(self.stage.source_path, prefix.bin.NekCEM) # Create symlinks to makenek, nek and configurenek scripts with working_dir(prefix.bin): - os.symlink(os.path.join("NekCEM", bin_dir, makenek), makenek) - os.symlink(os.path.join("NekCEM", bin_dir, configurenek), configurenek) - os.symlink(os.path.join("NekCEM", bin_dir, nek), nek) + symlink(os.path.join("NekCEM", bin_dir, makenek), makenek) + symlink(os.path.join("NekCEM", bin_dir, configurenek), configurenek) + symlink(os.path.join("NekCEM", bin_dir, nek), nek) diff --git a/repos/spack_repo/builtin/packages/neko/package.py b/repos/spack_repo/builtin/packages/neko/package.py index 61f1a82e236..9d2f090c3e0 100644 --- a/repos/spack_repo/builtin/packages/neko/package.py +++ b/repos/spack_repo/builtin/packages/neko/package.py @@ -18,8 +18,11 @@ class Neko(AutotoolsPackage, CudaPackage, ROCmPackage): git = "https://github.com/ExtremeFLOW/neko.git" url = "https://github.com/ExtremeFLOW/neko/releases/download/v0.3.2/neko-0.3.2.tar.gz" maintainers("njansson") + license("BSD-3-Clause", checked_by="njansson") version("develop", branch="develop") + version("1.0.1", sha256="d5ca4fba615c2f48a667f8e15b0d0acef725f741d8293b617d451200a07e88a8") + version("1.0.0", sha256="2a62c5fb961155c1aa185a6d605af8cd3bba9f922f3ff32e855d3e6cc91d9eac") version("0.9.1", sha256="098bee5cb807d10cdf2fb56111ba8cbc592882a87e4dae18caf9dbda894611ef") version("0.9.0", sha256="3cffe629ada1631d8774fa51d8bb14b95dc0cea21578c0e07e70deb611a5091a") version("0.8.1", sha256="ac8162bc18e7112fd21b49c5a9c36f45c7b84896e90738be36a182990798baec") @@ -28,28 +31,13 @@ class Neko(AutotoolsPackage, CudaPackage, ROCmPackage): version("0.7.1", sha256="c935c3d93b0975db46448045f97aced6ac2cab31a2b8803047f8086f98dcb981") version("0.7.0", sha256="fe871e0a79f388073e0b3dc191d1c0d5da3a53883f5b1951d88b9423fc79a53c") - with default_args(deprecated=True): - version("0.6.1", sha256="6282baaf9c8a201669e274cba23c37922f7ad701ba20ef086442e48f00dabf29") - version("0.6.0", sha256="ce37c7cea1a7bf1bf554c5717aa7fed35bbd079ff68c2fc9d3529facc717e31a") - version("0.5.2", sha256="8873f5ada106f92f21c9bb13ea8164550bccde9301589b9e7f1c1a82a2efe2b8") - version("0.5.1", sha256="8b176bcc9f2d4a6804b68dd93a2f5e02e2dfa986d5c88063bbc72d39e9659cc4") - version("0.5.0", sha256="01a745f2e19dd278330889a0dd6c5ab8af49da99c888d95c10adb5accc1cbfc4") - version("0.4.3", sha256="ba8fde09cbc052bb4791a03f69c880705615b572982cd3177ee31e4e14931da2") - version("0.4.2", sha256="927f926bdbf027c30e8e383e1790e84b60f5a9ed61e48a413092aac2ab24abcc") - version("0.3.2", sha256="0628910aa9838a414f2f27d09ea9474d1b3d7dcb5a7715556049a2fdf81a71ae") - version("0.3.0", sha256="e46bef72f694e59945514ab8b1ad7d74f87ec9dca2ba2b230e2148662baefdc8") - variant("parmetis", default=False, description="Build with support for parmetis") variant("xsmm", default=False, description="Build with support for libxsmm") - variant("gslib", default=False, when="@0.7.0:", description="Build with support for gslib") - variant("hdf5", default=False, when="@develop", description="Build with support for HDF5") + variant("gslib", default=False, when="@:0.9.1", description="Build with support for gslib") variant("hdf5", default=False, when="@0.9.0:", description="Build with support for HDF5") - variant( - "shared", - default=False, - when="@develop", - description="Builds a shared version of the library", - ) + + # Requires cuda or rocm enabled MPI + variant("device-mpi", default=False, description="Build with support for device-aware MPI") variant( "shared", default=False, @@ -57,16 +45,8 @@ class Neko(AutotoolsPackage, CudaPackage, ROCmPackage): description="Builds a shared version of the library", ) - # Requires cuda or rocm enabled MPI - variant( - "device-mpi", - default=False, - when="@0.4.0:", - description="Build with support for device-aware MPI", - ) - - depends_on("c", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type="build") + depends_on("fortran", type="build") depends_on("autoconf", type="build") depends_on("automake", type="build") depends_on("libtool", type="build") @@ -77,17 +57,15 @@ class Neko(AutotoolsPackage, CudaPackage, ROCmPackage): depends_on("mpi") depends_on("blas") depends_on("lapack") - depends_on("json-fortran", when="@develop") - depends_on("json-fortran", when="@0.7.0:") + depends_on("json-fortran") depends_on("gslib", when="+gslib") depends_on("hdf5+fortran+mpi", when="+hdf5") - depends_on("libtool", type="build", when="@develop") depends_on("libtool", type="build", when="@0.9.0:") def configure_args(self): args = [] - args.append("--with-blas={0}".format(self.spec["blas"].libs.joined(";"))) - args.append("--with-lapack={0}".format(self.spec["lapack"].libs.joined(";"))) + args.append("--with-blas={0}".format(self.spec["blas"].libs.ld_flags)) + args.append("--with-lapack={0}".format(self.spec["lapack"].libs.ld_flags)) args += self.with_or_without("parmetis", variant="parmetis", activation_value="prefix") args += self.with_or_without("metis", variant="parmetis", activation_value="prefix") args += self.with_or_without("libxsmm", variant="xsmm") diff --git a/repos/spack_repo/builtin/packages/nektar/package.py b/repos/spack_repo/builtin/packages/nektar/package.py index c3c118fbafb..f6480c17fe2 100644 --- a/repos/spack_repo/builtin/packages/nektar/package.py +++ b/repos/spack_repo/builtin/packages/nektar/package.py @@ -166,7 +166,7 @@ def hasfeature(feature): def install(self, spec, prefix): super(Nektar, self).install(spec, prefix) if "+python" in spec: - python = which("python") + python = which("python", required=True) with working_dir(self.build_directory): python("setup.py", "install", "--prefix", prefix) diff --git a/repos/spack_repo/builtin/packages/nektools/package.py b/repos/spack_repo/builtin/packages/nektools/package.py index c182a932cf2..4300d4f9265 100644 --- a/repos/spack_repo/builtin/packages/nektools/package.py +++ b/repos/spack_repo/builtin/packages/nektools/package.py @@ -147,9 +147,7 @@ def install(self, spec, prefix): filter_file(r"\$\(OLAGS\)", "-qextname $(OLAGS)", join_path("postnek", "makefile")) # Define 'rename_' function that calls 'rename' with open(join_path("postnek", "xdriver.c"), "a") as xdriver: - xdriver.write( - "\nvoid rename_(char *from, char *to)\n{\n" " rename(from, to);\n}\n" - ) + xdriver.write("\nvoid rename_(char *from, char *to)\n{\n rename(from, to);\n}\n") maxnel = self.spec.variants["MAXNEL"].value filter_file(r"^#MAXNEL\s*=.*", "MAXNEL=" + maxnel, "maketools") diff --git a/repos/spack_repo/builtin/packages/neovim/package.py b/repos/spack_repo/builtin/packages/neovim/package.py index 0f50c3382e2..57e62a71df9 100644 --- a/repos/spack_repo/builtin/packages/neovim/package.py +++ b/repos/spack_repo/builtin/packages/neovim/package.py @@ -20,6 +20,12 @@ class Neovim(CMakePackage): version("master", branch="master") version("stable", tag="stable") + version("0.11.6", sha256="d1c8e3f484ed1e231fd5f48f53b7345b628e52263d5eef489bb8b73ca8d90fca") + version("0.11.5", sha256="c63450dfb42bb0115cd5e959f81c77989e1c8fd020d5e3f1e6d897154ce8b771") + version("0.11.4", sha256="83cf9543bedab8bec8c11cd50ccd9a4bf1570420a914b9a28f83ad100ca6d524") + version("0.11.3", sha256="7f1ce3cc9fe6c93337e22a4bc16bee71e041218cc9177078bd288c4a435dbef0") + version("0.11.2", sha256="324759a1bcd1a80b32a7eae1516ee761ec3e566d08284a24c4c7ca59079aabfa") + version("0.10.1", sha256="edce96e79903adfcb3c41e9a8238511946325ea9568fde177a70a614501af689") version("0.11.1", sha256="ffe7f9a7633ed895ff6adb1039af7516cd6453715c8889ad844b6fa39c3df443") version("0.11.0", sha256="6826c4812e96995d29a98586d44fbee7c9b2045485d50d174becd6d5242b3319") version("0.10.4", sha256="10413265a915133f8a853dc757571334ada6e4f0aa15f4c4cc8cc48341186ca2") @@ -39,51 +45,6 @@ class Neovim(CMakePackage): version("0.6.1", sha256="dd882c21a52e5999f656cae3f336b5fc702d52addd4d9b5cd3dc39cfff35e864") version("0.6.0", sha256="2cfd600cfa5bb57564cc22ffbbbcb2c91531053fc3de992df33656614384fa4c") version("0.5.1", sha256="aa449795e5cc69bdd2eeed7095f20b9c086c6ecfcde0ab62ab97a9d04243ec84") - version( - "0.5.0", - sha256="6bcfa5192c9460c946e853dbd1a0baf659df5de184436144147711d1bceedeee", - deprecated=True, - ) - version( - "0.4.4", - sha256="2f76aac59363677f37592e853ab2c06151cca8830d4b3fe4675b4a52d41fc42c", - deprecated=True, - ) - version( - "0.4.3", - sha256="91a0b5d32204a821bf414690e6b48cf69224d1961d37158c2b383f6a6cf854d2", - deprecated=True, - ) - version( - "0.3.4", - sha256="a641108bdebfaf319844ed46b1bf35d6f7c30ef5aeadeb29ba06e19c3274bc0e", - deprecated=True, - ) - version( - "0.3.1", - sha256="bc5e392d4c076407906ccecbc283e1a44b7832c2f486cad81aa04cc29973ad22", - deprecated=True, - ) - version( - "0.3.0", - sha256="f7acb61b16d3f521907d99c486b7a9f1e505e8b2a18c9ef69a6d7f18f29f74b8", - deprecated=True, - ) - version( - "0.2.2", - sha256="a838ee07cc9a2ef8ade1b31a2a4f2d5e9339e244ade68e64556c1f4b40ccc5ed", - deprecated=True, - ) - version( - "0.2.1", - sha256="9e2c068a8994c9023a5f84cde9eb7188d3c85996a7e42e611e3cd0996e345dd3", - deprecated=True, - ) - version( - "0.2.0", - sha256="72e263f9d23fe60403d53a52d4c95026b0be428c1b9c02b80ab55166ea3f62b5", - deprecated=True, - ) variant( "no_luajit", @@ -109,59 +70,51 @@ class Neovim(CMakePackage): depends_on("gperf", type="link") depends_on("jemalloc", type="link", when="platform=linux") depends_on("lua-lpeg") - depends_on("lua-mpack") + depends_on("lua-mpack", when="@:0.10") depends_on("iconv", type="link") - depends_on("libtermkey", type="link", when="@:0.9") - depends_on("libuv", type="link") - depends_on("libluv", type="link", when="@:0.9") - depends_on("libvterm", type="link", when="@:0.10") - depends_on("msgpack-c", type="link", when="@:0.10") - depends_on("unibilium", type="link") - depends_on("unibilium@:1.2.0", type="link", when="@0.2.0") + depends_on("libuv@1.42:", type="link") + depends_on("libluv@1.30.0:", type="link") + depends_on("libtermkey@0.18:", type="link", when="@:0.9") + depends_on("libvterm@0.1:", type="link", when="@:0.10") + depends_on("unibilium@2.0:", type="link") + depends_on("msgpack-c@1.0.0:", type="link", when="@:0.10") + depends_on("tree-sitter") # versions - with when("@0.4:"): - depends_on("libuv@1.28:", type="link") - depends_on("libluv@1.30.0:", type="link") - depends_on("libtermkey@0.18:", type="link") - depends_on("libvterm@0.1:", type="link") - depends_on("unibilium@2.0:", type="link") - depends_on("msgpack-c@1.0.0:", type="link") - with when("@0.5:"): - depends_on("libuv@1.42:", type="link") - depends_on("tree-sitter") with when("@0.6:"): depends_on("cmake@3.10:", type="build") depends_on("gperf@3.1:", type="link") conflicts("^libiconv@:1.14") - depends_on("libtermkey@0.22:", type="link") - depends_on("libvterm@0.1.4:", type="link") - depends_on("msgpack-c@3.0.0:", type="link") + depends_on("libtermkey@0.22:", type="link", when="@:0.9") + depends_on("libvterm@0.1.4:", type="link", when="@:0.10") + depends_on("msgpack-c@3.0.0:", type="link", when="@:0.10") with when("@0.7:"): depends_on("gettext@0.20.1:") depends_on("libluv@1.43.0:", type="link") depends_on("libuv@1.44.1:", type="link") depends_on("tree-sitter@0.20.6:") with when("@0.8:"): - depends_on("libvterm@0.3:", type="link") + depends_on("libvterm@0.3:", type="link", when="@:0.10") with when("@0.9:"): - depends_on("tree-sitter@0.20.8:") + depends_on("tree-sitter@0.20.8", when="@0.9") with when("@0.10:"): depends_on("cmake@3.13:", type="build") - depends_on("libvterm@0.3.3:") - depends_on("tree-sitter@0.20.9:") + depends_on("libvterm@0.3.3:", type="link", when="@:0.10") + depends_on("tree-sitter@0.20.9", when="@0.10") with when("@0.11:"): depends_on("cmake@3.16:", type="build") - depends_on("utf8proc", type="link") - depends_on("tree-sitter@0.25:", type="link") - with when("@master"): - pass + depends_on("utf8proc@2.10.0", 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) # https://github.com/neovim/neovim/issues/16217#issuecomment-958590493 conflicts("libvterm@0.2:", when="@:0.7") + # 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") + @when("^lua") def cmake_args(self): return [ diff --git a/repos/spack_repo/builtin/packages/nep/package.py b/repos/spack_repo/builtin/packages/nep/package.py new file mode 100644 index 00000000000..0207abdf399 --- /dev/null +++ b/repos/spack_repo/builtin/packages/nep/package.py @@ -0,0 +1,62 @@ +# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import os + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class Nep(CMakePackage): + """NEP (NetCDF Expansion Pack) provides high-performance compression for + HDF5/NetCDF-4 files with LZ4 and BZIP2 compression algorithms.""" + + homepage = "https://github.com/Intelligent-Data-Design-Inc/NEP" + url = "https://github.com/Intelligent-Data-Design-Inc/NEP/archive/v1.0.0.tar.gz" + git = "https://github.com/Intelligent-Data-Design-Inc/NEP.git" + + maintainers("edhartnett") + + license("Apache-2.0") + + version("develop", branch="main") + version("1.3.0", sha256="acf8f8a1360b521cef3f6f57fdeced64d2d78e765e8fd644ce435487fe74a003") + + variant("docs", default=True, description="Build documentation with Doxygen") + variant("lz4", default=True, description="Enable LZ4 compression support") + variant("bzip2", default=True, description="Enable BZIP2 compression support") + variant("fortran", default=True, description="Build Fortran wrappers") + + depends_on("c", type="build") + depends_on("fortran", when="+fortran", type="build") + + depends_on("netcdf-c@4.9:", type=("build", "link")) + depends_on("hdf5@1.12:+hl~mpi", type=("build", "link")) + depends_on("lz4", when="+lz4", type=("build", "link")) + depends_on("bzip2", when="+bzip2", type=("build", "link")) + depends_on("netcdf-fortran", when="+fortran", type=("build", "link")) + depends_on("doxygen", when="+docs", type="build") + + def cmake_args(self): + args = [ + self.define_from_variant("BUILD_DOCUMENTATION", "docs"), + self.define_from_variant("ENABLE_FORTRAN", "fortran"), + ] + return args + + def check(self): + """Run tests to verify build.""" + with working_dir(self.build_directory): + make("test") + + @run_after("install") + def check_install(self): + """Verify that plugin libraries are installed.""" + plugin_dir = join_path(self.prefix.lib, "plugin") + if "+lz4" in self.spec: + assert os.path.exists(join_path(plugin_dir, "libh5lz4.so")) + if "+bzip2" in self.spec: + assert os.path.exists(join_path(plugin_dir, "libh5bzip2.so")) diff --git a/repos/spack_repo/builtin/packages/netcdf_c/netcdf-4.9.3-deflate-include-zlib.patch b/repos/spack_repo/builtin/packages/netcdf_c/netcdf-4.9.3-deflate-include-zlib.patch new file mode 100644 index 00000000000..9f1df552434 --- /dev/null +++ b/repos/spack_repo/builtin/packages/netcdf_c/netcdf-4.9.3-deflate-include-zlib.patch @@ -0,0 +1,19 @@ +diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt +index 872788c31..54683b611 100644 +--- a/plugins/CMakeLists.txt ++++ b/plugins/CMakeLists.txt +@@ -87,7 +87,13 @@ buildplugin(h5unknown "h5unknown") + + buildplugin(h5shuffle "h5shuffle") + buildplugin(h5fletcher32 "h5fletcher32") +-buildplugin(h5deflate "h5deflate") ++IF(ENABLE_ZLIB) ++ buildplugin(h5deflate "h5deflate") ++ target_include_directories(h5deflate ++ PRIVATE ++ ${ZLIB_INCLUDE_DIRS} ++ ) ++ENDIF(ENABLE_ZLIB) + + buildplugin(nczmisc "zmisc") + buildplugin(nczhdf5filters "zhdf5filters" netcdf) diff --git a/repos/spack_repo/builtin/packages/netcdf_c/netcdf-c-4.7-9.2_no_glob_deps.patch b/repos/spack_repo/builtin/packages/netcdf_c/netcdf-c-4.7-9.2_no_glob_deps.patch new file mode 100644 index 00000000000..cabdc4ffb50 --- /dev/null +++ b/repos/spack_repo/builtin/packages/netcdf_c/netcdf-c-4.7-9.2_no_glob_deps.patch @@ -0,0 +1,30 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index de95010c6..04e9077ae 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -2398,25 +2398,6 @@ ENDIF() + ##### + ADD_SUBDIRECTORY(docs) + +-## +-# Brute force, grab all of the dlls from the dependency directory, +-# install them in the binary dir. Grab all of the .libs, put them +-# in the libdir. +-## +-IF(MSVC) +- FILE(GLOB COPY_FILES ${CMAKE_PREFIX_PATH}/lib/*.lib) +- INSTALL(FILES ${COPY_FILES} +- DESTINATION ${CMAKE_INSTALL_LIBDIR} +- COMPONENT dependencies) +- +- FILE(GLOB COPY_FILES ${CMAKE_PREFIX_PATH}/bin/*.dll) +- STRING(REGEX REPLACE "msv[.*].dll" "" COPY_FILES "${COPY_FILES}") +- INSTALL(FILES ${COPY_FILES} +- DESTINATION ${CMAKE_INSTALL_BINDIR} +- COMPONENT dependencies) +- +-ENDIF() +- + # Subdirectory CMakeLists.txt files should specify their own + # 'install' files. + # Including 'CPack' kicks everything off. diff --git a/repos/spack_repo/builtin/packages/netcdf_c/netcdf-c-4.9.3_no_glob_deps.patch b/repos/spack_repo/builtin/packages/netcdf_c/netcdf-c-4.9.3_no_glob_deps.patch new file mode 100644 index 00000000000..a749a973937 --- /dev/null +++ b/repos/spack_repo/builtin/packages/netcdf_c/netcdf-c-4.9.3_no_glob_deps.patch @@ -0,0 +1,29 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 588a2ce4a..e3772a05a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1555,24 +1555,6 @@ endif() + # Brute force, grab all of the dlls from the dependency directory, + # install them in the binary dir. Grab all of the .libs, put them + # in the libdir. +-## +-if(MSVC) +- foreach(CPP ${CMAKE_PREFIX_PATH}) +- file(GLOB COPY_FILES ${CPP}/lib/*.lib) +- endforeach() +- install(FILES ${COPY_FILES} +- DESTINATION ${CMAKE_INSTALL_LIBDIR} +- COMPONENT dependencies) +- +- foreach(CPP ${CMAKE_PREFIX_PATH}) +- file(GLOB COPY_FILES ${CPP}/bin/*.dll) +- endforeach() +- string(REGEX REPLACE "msv[.*].dll" "" COPY_FILES "${COPY_FILES}") +- install(FILES ${COPY_FILES} +- DESTINATION ${CMAKE_INSTALL_BINDIR} +- COMPONENT dependencies) +- +-endif() + + # Subdirectory CMakeLists.txt files should specify their own + # 'install' files. diff --git a/repos/spack_repo/builtin/packages/netcdf_c/netcdfc_4.9_correct_and_export_link_interface.patch b/repos/spack_repo/builtin/packages/netcdf_c/netcdfc_4.9_correct_and_export_link_interface.patch new file mode 100644 index 00000000000..82be282a81a --- /dev/null +++ b/repos/spack_repo/builtin/packages/netcdf_c/netcdfc_4.9_correct_and_export_link_interface.patch @@ -0,0 +1,105 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index de95010c6..782a3f59e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -664,6 +664,7 @@ ENDIF(ENABLE_STRICT_NULL_BYTE_HEADER_PADDING) + # * + ## + SET(USE_HDF5 ${ENABLE_HDF5}) ++SET(IMPORT_HDF5 "") + IF(USE_HDF5) + + ## +@@ -671,7 +672,6 @@ IF(USE_HDF5) + ## + SET(HDF5_VERSION_REQUIRED 1.8.10) + +- + ## + # Accommodate developers who have hdf5 libraries and + # headers on their system, but do not have a the hdf +@@ -744,6 +744,9 @@ IF(USE_HDF5) + ELSE(MSVC) + FIND_PACKAGE(HDF5 COMPONENTS C HL REQUIRED) + ENDIF(MSVC) ++ # Export HDF5 Dependency so consumers can properly use ++ # exported link interface ++ set(IMPORT_HDF5 "find_dependency(HDF5 COMPONENTS C HL)") + + ## + # Next, check the HDF5 version. This will inform which +@@ -991,6 +994,7 @@ INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS}) + # Define a test flag for have curl library + IF(CURL_LIBRARIES OR CURL_LIBRARY) + SET(FOUND_CURL TRUE) ++ SET(IMPORT_CURL "find_dependency(CURL)") + ELSE() + SET(FOUND_CURL FALSE) + ENDIF() +@@ -1481,6 +1485,7 @@ ENDIF() + + # Enable Parallel IO with netCDF-4/HDF5 files using HDF5 parallel I/O. + SET(STATUS_PARALLEL "OFF") ++set(IMPORT_MPI "") + OPTION(ENABLE_PARALLEL4 "Build netCDF-4 with parallel IO" "${HDF5_PARALLEL}") + IF(ENABLE_PARALLEL4 AND ENABLE_HDF5) + IF(NOT HDF5_PARALLEL) +@@ -1502,6 +1507,7 @@ IF(ENABLE_PARALLEL4 AND ENABLE_HDF5) + FILE(COPY "${netCDF_BINARY_DIR}/tmp/run_par_tests.sh" + DESTINATION ${netCDF_BINARY_DIR}/h5_test + FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) ++ set(IMPORT_MPI "find_dependency(MPI COMPONENTS C)") + ENDIF() + ENDIF() + +@@ -2652,6 +2658,8 @@ endif(DEFINED ENV{LIB_FUZZING_ENGINE}) + # cmake should be able to find netcdf using find_package and find_library. + # The EXPORT call is paired with one in liblib. + set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/netCDF) ++set(IMPORT_FIND_DEP "include(CMakeFindDependencyMacro)") ++ + + install(EXPORT netCDFTargets + DESTINATION ${ConfigPackageLocation} +diff --git a/liblib/CMakeLists.txt b/liblib/CMakeLists.txt +index e3eddc0fb..7cbec4a26 100644 +--- a/liblib/CMakeLists.txt ++++ b/liblib/CMakeLists.txt +@@ -50,6 +50,7 @@ ADD_LIBRARY(netcdf nc_initialize.c ${LARGS} ) + + IF(MPI_C_INCLUDE_PATH) + target_include_directories(netcdf PUBLIC ${MPI_C_INCLUDE_PATH}) ++ target_link_libraries(netcdf MPI::MPI_C) + ENDIF(MPI_C_INCLUDE_PATH) + + IF(MOD_NETCDF_NAME) +diff --git a/netCDFConfig.cmake.in b/netCDFConfig.cmake.in +index 9d68eec5a..0d3aa9f4e 100644 +--- a/netCDFConfig.cmake.in ++++ b/netCDFConfig.cmake.in +@@ -14,6 +14,11 @@ set(netCDF_LIBRARIES netCDF::netcdf) + # include target information + include("${CMAKE_CURRENT_LIST_DIR}/netCDFTargets.cmake") + ++@IMPORT_FIND_DEP@ ++@IMPORT_MPI@ ++@IMPORT_HDF5@ ++@IMPORT_CURL@ ++ + # Compiling Options + # + set(netCDF_C_COMPILER "@CC_VERSION@") +diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt +index 65891d82e..15567c8f6 100644 +--- a/plugins/CMakeLists.txt ++++ b/plugins/CMakeLists.txt +@@ -62,6 +62,9 @@ MACRO(buildplugin TARGET TARGETLIB) + set_target_properties(${TARGET} PROPERTIES LINK_FLAGS "/INCREMENTAL:NO /DEBUG /OPT:REF /OPT:ICF") + # Set file name & location + set_target_properties(${TARGET} PROPERTIES COMPILE_PDB_NAME ${TARGET} COMPILE_PDB_OUTPUT_DIR ${CMAKE_BINARY_DIR}) ++ IF(MPI_C_INCLUDE_PATH) ++ target_include_directories(${TARGET} PRIVATE ${MPI_C_INCLUDE_PATH}) ++ ENDIF(MPI_C_INCLUDE_PATH) + ENDIF() + ENDMACRO() + diff --git a/repos/spack_repo/builtin/packages/netcdf_c/package.py b/repos/spack_repo/builtin/packages/netcdf_c/package.py index 1849d3a2609..d7796631ab3 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,8 @@ 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") version("4.8.1", sha256="bc018cc30d5da402622bf76462480664c6668b55eb16ba205a0dfb8647161dd0") @@ -36,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") # For module hierarchy (JCSDA repo only): provides("netcdf_c_virtual") @@ -57,14 +66,35 @@ class NetcdfC(CMakePackage, AutotoolsPackage): with when("build_system=cmake"): # TODO: document why we need to revert https://github.com/Unidata/netcdf-c/pull/1731 # with the following patch: - patch("4.8.1-win-hdf5-with-zlib.patch", when="@4.8.1: platform=windows") + patch("4.8.1-win-hdf5-with-zlib.patch", when="@4.8.1:4.9.2 platform=windows") # TODO: https://github.com/Unidata/netcdf-c/pull/2595 contains some of the changes # made in this patch but is not sufficent to replace the patch. There is currently # no upstream PR (or set of PRs) covering all changes in this path. # When #2595 lands, this patch should be updated to include only # the changes not incorporated into that PR - patch("netcdfc_correct_and_export_link_interface.patch") + patch("netcdfc_correct_and_export_link_interface.patch", when="@:4.8") + patch("netcdfc_4.9_correct_and_export_link_interface.patch", when="@4.9:4.9.2") + + # Building netcdf-c w/ hdf5+mpi causes CMake's FindMPI to inject a path to the current + # netcdf-c source directory into its targets interface properties causing CMake configure + # failures. This patch strips the source dir from the MPI include interface + patch("strip_csd_from_mpi_inc.patch", when="@4.7.1:4.9.2 platform=windows") + + # Netcdf's source for the h5deflate target contains includes for zlib headers + # but fails to include that header in the include interface in the relevant + # CMake target, this patch adds that. + # Similar to https://github.com/Unidata/netcdf-c/pull/3132 + patch("netcdf-4.9.3-deflate-include-zlib.patch", when="@4.9.3") + + # Netcdf-c, on Windows, attempts to glob from the CMake prefix path + # which is wrong for a multidue of development and CMake practices reasons + # is error prone because it uses Windows paths (and prevents installation) + # and has no relation to actual runtime requirements for netcdf-c + # Additionally, Spack on Windows already does this for every package + # so remove this behavior from netcdf-c + patch("netcdf-c-4.9.3_no_glob_deps.patch", when="@4.9.3 platform=windows") + patch("netcdf-c-4.7-9.2_no_glob_deps.patch", when="@4.7:4.9.2 platform=windows") # Some of the patches touch configure.ac and, therefore, require forcing the autoreconf stage: _force_autoreconf_when = [] @@ -127,6 +157,14 @@ class NetcdfC(CMakePackage, AutotoolsPackage): # https://github.com/Unidata/netcdf-c/issues/3199 patch("cmakelists_mpi_symbols.patch", when="build_system=cmake") + # 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", + ) + def patch(self): """Fix bad code in ncgen/CMakeLists.txt that removes the rpath for dependencies like hdf5.""" @@ -203,6 +241,11 @@ def patch(self): depends_on("curl@7.18.0:", when="+dap") depends_on("curl@7.18.0:", when="+byterange") + # curl is supposed to only be needed when +dap or +byterange, but the check is missing + # this is fixed in 4.9.3. Spack autotools already protects against this + # https://github.com/Unidata/netcdf-c/issues/3016 + depends_on("curl@7.18.0:", when="@:4.9.2 build_system=cmake") + # Need to include libxml2 when using DAP in 4.9.0 and newer to build # https://github.com/Unidata/netcdf-c/commit/53464e89635a43b812b5fec5f7abb6ff34b9be63 depends_on("libxml2", when="@4.9.0:+dap") @@ -282,6 +325,12 @@ def patch(self): # Byte-range I/O was added in version 4.7.0: conflicts("+byterange", when="@:4.6") + # Byte-range requires DAP starting version 4.9.3: + requires("+dap", when="@4.9.3:+byterange") + + # JNA was added in 4.3.2 and removed in 4.9.3: + conflicts("+jna", when="@:4.3.1,4.9.3:") + # NCZarr was added in version 4.8.0 as an experimental feature and became a supported one in # version 4.8.1: conflicts("+nczarr_zip", when="@:4.8.0") @@ -350,31 +399,54 @@ def backup_nc_config(self): class CMakeBuilder(AnyBuilder, cmake.CMakeBuilder): def cmake_args(self): + # In 4.9.3, all CMake options were prefixed. + # Ref. https://github.com/Unidata/netcdf-c/pull/2895 + nc = "NETCDF_" if self.spec.satisfies("@4.9.3:") else "" base_cmake_args = [ self.define_from_variant("BUILD_SHARED_LIBS", "shared"), - self.define_from_variant("ENABLE_BYTERANGE", "byterange"), - self.define("BUILD_UTILITIES", True), - self.define("ENABLE_NETCDF_4", True), - self.define_from_variant("ENABLE_DAP", "dap"), - self.define_from_variant("ENABLE_HDF4", "hdf4"), - self.define("ENABLE_PARALLEL_TESTS", False), - self.define_from_variant("ENABLE_FSYNC", "fsync"), - self.define("ENABLE_LARGE_FILE_SUPPORT", True), + self.define_from_variant(nc + "ENABLE_BYTERANGE", "byterange"), + self.define(nc + "BUILD_UTILITIES", True), + self.define(nc + "ENABLE_NETCDF_4", True), + self.define_from_variant(nc + "ENABLE_DAP", "dap"), + self.define_from_variant(nc + "ENABLE_HDF4", "hdf4"), + self.define(nc + "ENABLE_PARALLEL_TESTS", False), + self.define_from_variant(nc + "ENABLE_FSYNC", "fsync"), + self.define(nc + "ENABLE_LARGE_FILE_SUPPORT", True), self.define_from_variant("NETCDF_ENABLE_LOGGING", "logging"), ] if any(self.spec.satisfies(s) for s in ["+mpi", "+parallel-netcdf", "^hdf5+mpi~shared"]): base_cmake_args.append(self.define("CMAKE_C_COMPILER", self.spec["mpi"].mpicc)) if "+parallel-netcdf" in self.pkg.spec: - base_cmake_args.append(self.define("ENABLE_PNETCDF", True)) + base_cmake_args.append(self.define(nc + "ENABLE_PNETCDF", True)) if self.pkg.spec.satisfies("@4.3.1:"): - base_cmake_args.append(self.define("ENABLE_DYNAMIC_LOADING", True)) + base_cmake_args.append(self.define(nc + "ENABLE_DYNAMIC_LOADING", True)) if "platform=windows" in self.pkg.spec: # Enforce the usage of the vendored version of bzip2 on Windows: base_cmake_args.append(self.define("Bz2_INCLUDE_DIRS", "")) + + # FIND_SHARED_LIBS has different prefix + nc = "NETCDF_" if self.spec.satisfies("@4.9.3:") else "NC_" if "+shared" in self.pkg.spec["hdf5"]: - base_cmake_args.append(self.define("NC_FIND_SHARED_LIBS", True)) + base_cmake_args.append(self.define(nc + "FIND_SHARED_LIBS", True)) else: - base_cmake_args.append(self.define("NC_FIND_SHARED_LIBS", False)) + base_cmake_args.append(self.define(nc + "FIND_SHARED_LIBS", False)) + + # The plugins are not built when the shared libraries are disabled: + if self.spec.satisfies("@4.9.3:+shared"): + # This toggle is not defined in the top-level CMake parameters but is still + # used by the plugin config; so we work around this bug for now + base_cmake_args.extend( + [ + self.define("ENABLE_PLUGIN_INSTALL", True), + 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", pathlib.Path(self.prefix.plugins).as_posix()) + ) return base_cmake_args @run_after("install") @@ -407,19 +479,39 @@ 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", "--enable-utilities", "--enable-static", "--enable-largefile", - "--enable-netcdf-4", ] # JCSDA fork only: if self.spec.satisfies("+parallel_tests") and self.pkg.run_tests: config_args.append("--enable-parallel-tests") + if self.spec.satisfies("@4.8.0:"): + config_args.append("--enable-hdf5") + else: + config_args.append("--enable-netcdf-4") + # NCZarr was added in version 4.8.0 as an experimental feature and became a supported one # in version 4.8.1: if self.spec.satisfies("@4.8.1:"): @@ -456,7 +548,7 @@ def configure_args(self): elif self.spec.satisfies("@4.7.0:"): config_args.append("--disable-byterange") - if self.spec.satisfies("@4.3.2:"): + if self.spec.satisfies("@4.3.2:4.9.2"): config_args += self.enable_or_disable("jna") config_args += self.enable_or_disable("fsync") @@ -523,6 +615,13 @@ def configure_args(self): # Prevent linking to szip to disable the plugin: config_args.append("ac_cv_lib_sz_SZ_BufftoBuffCompress=no") + if self.spec.satisfies("@4.9.3:"): + # If the plugin is built (i.e. when +shared), we want to ensure that the configure + # scripts checks for -lbz2 delivered by the bzip2 package. If the plugin is not built, + # we ensure that the configure script does not pick up system bzip2 (see below), but we + # also want to skip the checks for -lbzip2. Therefore, we pass the following option in + # both cases: + config_args.append("--enable-filter-bz2") if self.spec.satisfies("@4.9.0:"): if "+shared" in self.spec: lib_search_dirs.extend(self.spec["bzip2"].libs.directories) @@ -532,13 +631,21 @@ def configure_args(self): config_args.append("ac_cv_lib_bz2_BZ2_bzCompress=no") if "+zstd" in self.spec: + if self.spec.satisfies("@4.9.3:"): + config_args.append("--enable-filter-zstd") lib_search_dirs.extend(self.spec["zstd"].libs.directories) + elif self.spec.satisfies("@4.9.3:"): + config_args.append("--disable-filter-zstd") elif self.spec.satisfies("@4.9.0:"): # Prevent linking to system zstd: config_args.append("ac_cv_lib_zstd_ZSTD_compress=no") if "+blosc" in self.spec: + if self.spec.satisfies("@4.9.3:"): + config_args.append("--enable-filter-blosc") lib_search_dirs.extend(self.spec["c-blosc"].libs.directories) + elif self.spec.satisfies("@4.9.3:"): + config_args.append("--disable-filter-blosc") elif self.spec.satisfies("@4.9.0:"): # Prevent linking to system c-blosc: config_args.append("ac_cv_lib_blosc_blosc_init=no") @@ -575,13 +682,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): - @run_after("install") - def run_checks(self): - # h5_test fails when run in parallel - if self.pkg.run_tests: - make("check", parallel=self.spec.satisfies("@4.6:")) - def check(self): - pass + # 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/netcdf_c/strip_csd_from_mpi_inc.patch b/repos/spack_repo/builtin/packages/netcdf_c/strip_csd_from_mpi_inc.patch new file mode 100644 index 00000000000..a5d90dfbbb8 --- /dev/null +++ b/repos/spack_repo/builtin/packages/netcdf_c/strip_csd_from_mpi_inc.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index de95010c6..3edd8a520 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1492,6 +1492,9 @@ IF(ENABLE_PARALLEL4 AND ENABLE_HDF5) + SET(USE_PARALLEL ON CACHE BOOL "") + SET(USE_PARALLEL4 ON CACHE BOOL "") + SET(STATUS_PARALLEL "ON") ++ if(MPI_C_INCLUDE_PATH) ++ list(REMOVE_ITEM MPI_C_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR}) ++ endif() + configure_file("${netCDF_SOURCE_DIR}/nc_test4/run_par_test.sh.in" + "${netCDF_BINARY_DIR}/tmp/run_par_test.sh" @ONLY NEWLINE_STYLE LF) + FILE(COPY "${netCDF_BINARY_DIR}/tmp/run_par_test.sh" diff --git a/repos/spack_repo/builtin/packages/netcdf_cxx4/package.py b/repos/spack_repo/builtin/packages/netcdf_cxx4/package.py index c7c29fbb40a..7b6231edd85 100644 --- a/repos/spack_repo/builtin/packages/netcdf_cxx4/package.py +++ b/repos/spack_repo/builtin/packages/netcdf_cxx4/package.py @@ -22,12 +22,6 @@ class NetcdfCxx4(CMakePackage): license("Apache-2.0") version("4.3.1", sha256="6a1189a181eed043b5859e15d5c080c30d0e107406fbb212c8fb9814e90f3445") - version( - "4.3.0", - sha256="25da1c97d7a01bc4cee34121c32909872edd38404589c0427fefa1301743f18f", - url="https://github.com/Unidata/netcdf-cxx4/archive/refs/tags/v4.3.0.tar.gz", - deprecated=True, - ) variant("shared", default=True, description="Enable shared library") variant("pic", default=True, description="Produce position-independent code (for shared libs)") diff --git a/repos/spack_repo/builtin/packages/netcdf_fortran/package.py b/repos/spack_repo/builtin/packages/netcdf_fortran/package.py index c5537a82d31..b2ec698cb32 100644 --- a/repos/spack_repo/builtin/packages/netcdf_fortran/package.py +++ b/repos/spack_repo/builtin/packages/netcdf_fortran/package.py @@ -26,6 +26,7 @@ class NetcdfFortran(AutotoolsPackage): license("Apache-2.0") + version("4.6.2", sha256="df26b99d9003c93a8bc287b58172bf1c279676f8c10d6dd0daf8bc7204877096") version("4.6.1", sha256="b50b0c72b8b16b140201a020936aa8aeda5c79cf265c55160986cd637807a37a") version("4.6.0", sha256="198bff6534cc85a121adc9e12f1c4bc53406c403bda331775a1291509e7b2f23") version("4.5.4", sha256="0a19b26a2b6e29fab5d29d7d7e08c24e87712d09a5cafeea90e16e0a2ab86b81") @@ -82,7 +83,7 @@ def flag_handler(self, name, flags): elif name == "fflags": if "+pic" in self.spec: flags.append(self.compiler.f77_pic_flag) - if self.spec.satisfies("%gcc@10:"): + if self.spec.satisfies("%fortran=gcc@10:"): # https://github.com/Unidata/netcdf-fortran/issues/212 flags.append("-fallow-argument-mismatch") elif self.compiler.name == "cce": @@ -168,7 +169,7 @@ def configure_args(self): config_args.append("ac_cv_func_MPI_File_open=yes") if "~shared" in netcdf_c_spec: - nc_config = which("nc-config") + nc_config = which("nc-config", required=True) config_args.append("LIBS={0}".format(nc_config("--libs", output=str).strip())) if any(s in netcdf_c_spec for s in ["+mpi", "+parallel-netcdf", "^hdf5+mpi~shared"]): config_args.append("CC=%s" % self.spec["mpi"].mpicc) diff --git a/repos/spack_repo/builtin/packages/netgen/package.py b/repos/spack_repo/builtin/packages/netgen/package.py index 8adce6e910b..39505bca9d9 100644 --- a/repos/spack_repo/builtin/packages/netgen/package.py +++ b/repos/spack_repo/builtin/packages/netgen/package.py @@ -21,7 +21,6 @@ class Netgen(AutotoolsPackage): version("5.3.1", sha256="cb97f79d8f4d55c00506ab334867285cde10873c8a8dc783522b47d2bc128bf9") variant("mpi", default=True, description="enable mpi support") - variant("oce", default=False, description="enable oce geometry kernel") variant("gui", default=False, description="enable gui") variant("metis", default=False, description="use metis for partitioning") @@ -29,7 +28,6 @@ class Netgen(AutotoolsPackage): depends_on("zlib-api") depends_on("mpi", when="+mpi") - depends_on("oce+X11", when="+oce") depends_on("metis", when="+metis") def url_for_version(self, version): @@ -43,16 +41,6 @@ def configure_args(self): args.extend(["CC={0}".format(spec["mpi"].mpicc), "CXX={0}".format(spec["mpi"].mpicxx)]) else: args.append("--without-mpi") - - if "+oce" in spec: - args.append("--with-occ={0}".format(spec["oce"].prefix)) - # FIXME - # due to a bug in netgen config, when --without-occ is specified - # or --with-occ=no, OCC flags is turned true, and build fails - # later; so do not specify anything like that - # else: - # args.append("--without-occ") - if "~gui" in spec: args.append("--disable-gui") else: diff --git a/repos/spack_repo/builtin/packages/netlib_lapack/lapack_complex_custom.patch b/repos/spack_repo/builtin/packages/netlib_lapack/lapack_complex_custom.patch new file mode 100644 index 00000000000..9f2242cf4b7 --- /dev/null +++ b/repos/spack_repo/builtin/packages/netlib_lapack/lapack_complex_custom.patch @@ -0,0 +1,18 @@ +diff --git a/LAPACKE/include/lapack.h b/LAPACKE/include/lapack.h +index f9a254512..f5f50f552 100644 +--- a/LAPACKE/include/lapack.h ++++ b/LAPACKE/include/lapack.h +@@ -8,6 +8,13 @@ + #include "lapacke_config.h" + #endif + ++#if defined(_MSC_VER) ++#include ++#define LAPACK_COMPLEX_CUSTOM ++#define lapack_complex_float _Fcomplex ++#define lapack_complex_double _Dcomplex ++#endif ++ + #include "lapacke_mangling.h" + + #include diff --git a/repos/spack_repo/builtin/packages/netlib_lapack/package.py b/repos/spack_repo/builtin/packages/netlib_lapack/package.py index d3afe7b9335..2f8d1fe1f7b 100644 --- a/repos/spack_repo/builtin/packages/netlib_lapack/package.py +++ b/repos/spack_repo/builtin/packages/netlib_lapack/package.py @@ -96,7 +96,12 @@ class NetlibLapack(CMakePackage): variant("shared", default=True, description="Build shared library version") variant("pic", default=True, description="Produce position-independent code") - variant("external-blas", default=False, description="Build lapack with an external blas") + variant( + "external-blas", + default=False, + sticky=True, + description="Build lapack with an external blas", + ) variant("lapacke", default=True, description="Activates the build of the LAPACKE C interface") variant("xblas", default=False, description="Builds extended precision routines using XBLAS") @@ -139,6 +144,10 @@ class NetlibLapack(CMakePackage): when="@3.12:3.12.1", ) + # Ensures appropriate alias'ing of lapack custom complex types with MSVC + # e.g. MSVC float complex becomes _FComplex + patch("lapack_complex_custom.patch", when="@3.12: %msvc") + # liblapack links to libblas, so if this package is used as a lapack # provider, it must also provide blas. provides("lapack", "blas", when="~external-blas") @@ -175,7 +184,7 @@ def patch(self): # Remove duplicate header file that gets generated during CMake shared # builds: https://github.com/Reference-LAPACK/lapack/issues/583 - if self.spec.satisfies("platform=windows @0:3.9.1"): + if self.spec.satisfies("platform=windows @:3.9.1"): force_remove("LAPACKE/include/lapacke_mangling.h") def xplatform_lib_name(self, lib): @@ -197,7 +206,10 @@ def blas_libs(self): } key = tuple(sorted(query_parameters)) libraries = query2libraries[key] - return find_libraries(libraries, root=self.prefix, shared=shared, recursive=True) + + return find_libraries( + libraries, root=self.prefix, shared=shared, runtime=False, recursive=True + ) @property def lapack_libs(self): @@ -214,7 +226,10 @@ def lapack_libs(self): } key = tuple(sorted(query_parameters)) libraries = query2libraries[key] - return find_libraries(libraries, root=self.prefix, shared=shared, recursive=True) + + return find_libraries( + libraries, root=self.prefix, shared=shared, runtime=False, recursive=True + ) @property def headers(self): diff --git a/repos/spack_repo/builtin/packages/netlib_scalapack/package.py b/repos/spack_repo/builtin/packages/netlib_scalapack/package.py index 1e0d8c76c2d..0a55f6f762e 100644 --- a/repos/spack_repo/builtin/packages/netlib_scalapack/package.py +++ b/repos/spack_repo/builtin/packages/netlib_scalapack/package.py @@ -123,6 +123,7 @@ class NetlibScalapack(ScalapackBase): license("BSD-3-Clause-Open-MPI") + version("2.2.3", sha256="5d93701eca663925e98010dd8d0f45fd79b2191d74e5afa5711d587370a8b9dd") version("2.2.2", sha256="a2f0c9180a210bf7ffe126c9cb81099cf337da1a7120ddb4cbe4894eb7b7d022") version("2.2.0", sha256="8862fc9673acf5f87a474aaa71cd74ae27e9bbeee475dbd7292cec5b8bcbdcf3") version("2.1.0", sha256="f03fda720a152030b582a237f8387014da878b84cbd43c568390e9f05d24617f") diff --git a/repos/spack_repo/builtin/packages/netlib_xblas/package.py b/repos/spack_repo/builtin/packages/netlib_xblas/package.py index f2a238c5da6..67efe26ffc8 100644 --- a/repos/spack_repo/builtin/packages/netlib_xblas/package.py +++ b/repos/spack_repo/builtin/packages/netlib_xblas/package.py @@ -34,6 +34,7 @@ class NetlibXblas(AutotoolsPackage): provides("blas", when="+plain_blas") depends_on("c", type="build") + depends_on("fortran", type="build", when="+fortran") depends_on("m4", type="build") @property diff --git a/repos/spack_repo/builtin/packages/netpbm/package.py b/repos/spack_repo/builtin/packages/netpbm/package.py index d4ebd9fbb15..f25888802e2 100644 --- a/repos/spack_repo/builtin/packages/netpbm/package.py +++ b/repos/spack_repo/builtin/packages/netpbm/package.py @@ -27,6 +27,7 @@ class Netpbm(MakefilePackage): license("IJG AND BSD-3-Clause AND GPL-2.0-only") + version("10.86.48", sha256="709a98e871aeae892437274d68833c804dd41a4b8daf8fd978cac2782da4148a") version("10.73.43", sha256="f9fd9a7f932258224d1925bfce61396a15e0fad93e3853d6324ac308d1adebf8") version("10.73.40", sha256="8542ae62aa744dfd52c8e425208f895f082955a0629ac1749f80278d6afc0344") version("10.73.35", sha256="628dbe8490bc43557813d1fedb2720dfdca0b80dd3f2364cb2a45c6ff04b0f18") @@ -148,7 +149,7 @@ def edit(self, spec, prefix): config.append("JBIGLIB={0}".format(spec["jbigkit"].libs.ld_flags)) config.append("JBIGHDR_DIR={0}".format(spec["jbigkit"].headers.directories[0])) if "+X" in spec: - pkg_config = which("pkg-config") + pkg_config = which("pkg-config", required=True) if not pkg_config("x11", "--exists"): config.append("X11LIB={0}".format(spec["libx11"].libs.ld_flags)) config.append("X11HDR_DIR={0}".format(spec["libx11"].headers.directories[0])) diff --git a/repos/spack_repo/builtin/packages/nettle/package.py b/repos/spack_repo/builtin/packages/nettle/package.py index fabd251b836..b945c804334 100644 --- a/repos/spack_repo/builtin/packages/nettle/package.py +++ b/repos/spack_repo/builtin/packages/nettle/package.py @@ -17,6 +17,7 @@ class Nettle(AutotoolsPackage, GNUMirrorPackage): license("GPL-2.0-or-later OR LGPL-3.0-or-later") + version("4.0", sha256="3addbc00da01846b232fb3bc453538ea5468da43033f21bb345cb1e9073f5094") version("3.9.1", sha256="ccfeff981b0ca71bbd6fbcb054f407c60ffb644389a5be80d6716d5b550c6ce3") version("3.8.1", sha256="364f3e2b77cd7dcde83fd7c45219c834e54b0c75e428b6f894a23d12dd41cbfe") version("3.4.1", sha256="f941cf1535cd5d1819be5ccae5babef01f6db611f9b5a777bae9c7604b8a92ad") diff --git a/repos/spack_repo/builtin/packages/networkdirect/no_mc.patch b/repos/spack_repo/builtin/packages/networkdirect/no_mc.patch new file mode 100644 index 00000000000..15734dad082 --- /dev/null +++ b/repos/spack_repo/builtin/packages/networkdirect/no_mc.patch @@ -0,0 +1,21 @@ +diff --git a/src/ndutil/ndutil.vcxproj b/src/ndutil/ndutil.vcxproj +index 0b5df8c..c915725 100644 +--- a/src/ndutil/ndutil.vcxproj ++++ b/src/ndutil/ndutil.vcxproj +@@ -68,12 +68,10 @@ if not %rc%==1 exit %rce% else exit 0 + + + +- +- true +- $(OutIncludePath) +- true +- . +- ++ ++ mc.exe -um -h "$(OutIncludePath)" -r . "$(EnlistmentRoot)\src\ndutil\ndstatus.mc" ++ $(OutIncludePath)\src\ndstatus.h;$(EnlistmentRoot)\src\ndutil\ndstatus.mc ++ + + + diff --git a/repos/spack_repo/builtin/packages/networkdirect/package.py b/repos/spack_repo/builtin/packages/networkdirect/package.py index 744696e5537..d252d864c25 100644 --- a/repos/spack_repo/builtin/packages/networkdirect/package.py +++ b/repos/spack_repo/builtin/packages/networkdirect/package.py @@ -11,7 +11,7 @@ class Networkdirect(msbuild.MSBuildPackage): - """NetworkDirect is a user-mode programming interface specification + """NetworkDirect is a Windows user-mode programming interface specification for Remote Direct Memory Access (RDMA)""" homepage = "https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh997033(v=ws.11)" @@ -35,10 +35,17 @@ class Networkdirect(msbuild.MSBuildPackage): # CBT is entirely deprecated, and fully incompatible with modern dotnet versions # so we disable the CBT system and drive the underlying MSBuild system directly patch("no_cbt.patch") + # MSBuild's native handling of OutputPath does not handle spaces in paths well + # add quoting to work around this + patch("quote_ndutil_includes.patch") + # For whatever reason, specifying the platform toolset + # prevents message compiler (mc) detection + # We know its present because we have a WDK + # patches the build system to just directly call the MC + patch("no_mc.patch") class MSBuildBuilder(msbuild.MSBuildBuilder): - build_targets = ["ndutil"] # Networkdirect is a unique package where providing @@ -53,6 +60,7 @@ def msbuild_args(self): args.append( self.define("WindowsTargetPlatformVersion", str(self.pkg["win-sdk"].version) + ".0") ) + args.append(self.define("PlatformToolset", "v" + self.pkg["msvc"].platform_toolset_ver)) # one of the headers we need isn't generated during release builds args.append(self.define("Configuration", "Debug")) args.append("src\\netdirect.sln") diff --git a/repos/spack_repo/builtin/packages/networkdirect/quote_ndutil_includes.patch b/repos/spack_repo/builtin/packages/networkdirect/quote_ndutil_includes.patch new file mode 100644 index 00000000000..2ad62439b89 --- /dev/null +++ b/repos/spack_repo/builtin/packages/networkdirect/quote_ndutil_includes.patch @@ -0,0 +1,25 @@ +diff --git a/src/ndutil/ndutil.vcxproj b/src/ndutil/ndutil.vcxproj +index 0b5df8c..95b23f4 100644 +--- a/src/ndutil/ndutil.vcxproj ++++ b/src/ndutil/ndutil.vcxproj +@@ -30,17 +30,17 @@ + Use + _LIB;%(PreprocessorDefinitions) + precomp.h +- .;$(OutIncludePath);%(AdditionalIncludeDirectories) ++ .;"$(OutIncludePath)";%(AdditionalIncludeDirectories) + $(IntDir)$(TargetName).pch + + + + +- if not exist $(OutIncludePath) mkdir $(OutIncludePath) ++ if not exist "$(OutIncludePath)" mkdir "$(OutIncludePath)" + Create Include folder + + +- robocopy .\ $(OutIncludePath)\ nddef.h ndioctl.h ndspi.h ++ robocopy .\ "$(OutIncludePath)" nddef.h ndioctl.h ndspi.h + set rc=%errorlevel% + if not %rc%==1 exit %rce% else exit 0 + diff --git a/repos/spack_repo/builtin/packages/neuron/package.py b/repos/spack_repo/builtin/packages/neuron/package.py index 80ffdb5cc0b..e925224d10b 100644 --- a/repos/spack_repo/builtin/packages/neuron/package.py +++ b/repos/spack_repo/builtin/packages/neuron/package.py @@ -23,19 +23,19 @@ class Neuron(CMakePackage): license("BSD-3-Clause") - version("develop", branch="master", submodules="True") + version("develop", branch="master", submodules=True) version( - "8.2.3", tag="8.2.3", commit="f0ed3701059aa53ce93387f3d73d13c45de6d87f", submodules="True" + "8.2.3", tag="8.2.3", commit="f0ed3701059aa53ce93387f3d73d13c45de6d87f", submodules=True ) version( - "8.1.0", tag="8.1.0", commit="047dd8240c2badadf5ea154b563b29369db1303f", submodules="True" + "8.1.0", tag="8.1.0", commit="047dd8240c2badadf5ea154b563b29369db1303f", submodules=True ) version( - "8.0.0", tag="8.0.0", commit="429d11ef34b1d860b3ddbfffc9f7960acb399b0c", submodules="True" + "8.0.0", tag="8.0.0", commit="429d11ef34b1d860b3ddbfffc9f7960acb399b0c", submodules=True ) version( - "7.8.2", tag="7.8.2", commit="09b151ecb2b3984335c265932dc6ba3e4fcb318e", submodules="True" + "7.8.2", tag="7.8.2", commit="09b151ecb2b3984335c265932dc6ba3e4fcb318e", submodules=True ) variant("backtrace", default=False, description="Enable printing backtraces on failure") diff --git a/repos/spack_repo/builtin/packages/newt/0001-adjust-snack-installation.patch b/repos/spack_repo/builtin/packages/newt/0001-adjust-snack-installation.patch new file mode 100644 index 00000000000..5a3c8685580 --- /dev/null +++ b/repos/spack_repo/builtin/packages/newt/0001-adjust-snack-installation.patch @@ -0,0 +1,22 @@ +diff --git a/Makefile.in b/Makefile.in +index f8fe290..12150a7 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -162,12 +162,11 @@ endif + install-py: _snack.$(SOEXT) + ifneq ($(PYTHONVERS),) + @for ver in $(PYTHONVERS); do \ +- PLATLIB=`$$ver -c "import sysconfig; print(sysconfig.get_path('platlib'))"`; \ +- [ -d $(instroot)/$$PLATLIB ] || install -m 755 -d $(instroot)/$$PLATLIB ;\ +- echo install -m 755 $$ver/_snack.$(SOEXT) $(instroot)/$$PLATLIB;\ +- install -m 755 $$ver/_snack.$(SOEXT) $(instroot)/$$PLATLIB;\ +- echo install -m 644 snack.py $(instroot)/$$PLATLIB;\ +- install -m 644 snack.py $(instroot)/$$PLATLIB;\ ++ [ -d $(instroot)/$(libdir)/$$ver/site-packages ] || install -m 755 -d $(instroot)/$(libdir)/$$ver/site-packages;\ ++ echo install -m 755 $$ver/_snack.$(SOEXT) $(instroot)/$(libdir)/$$ver/site-packages;\ ++ install -m 755 $$ver/_snack.$(SOEXT) $(instroot)/$(libdir)/$$ver/site-packages;\ ++ echo install -m 644 snack.py $(instroot)/$(libdir)/$$ver/site-packages;\ ++ install -m 644 snack.py $(instroot)/$(libdir)/$$ver/site-packages;\ + done + endif + diff --git a/repos/spack_repo/builtin/packages/newt/package.py b/repos/spack_repo/builtin/packages/newt/package.py index af41f23a524..3a0280f2020 100644 --- a/repos/spack_repo/builtin/packages/newt/package.py +++ b/repos/spack_repo/builtin/packages/newt/package.py @@ -15,11 +15,53 @@ class Newt(AutotoolsPackage): license("LGPL-2.0-only") + version("0.52.25", sha256="ef0ca9ee27850d1a5c863bb7ff9aa08096c9ed312ece9087b30f3a426828de82") version("0.52.21", sha256="265eb46b55d7eaeb887fca7a1d51fe115658882dfe148164b6c49fccac5abb31") version("0.52.20", sha256="8d66ba6beffc3f786d4ccfee9d2b43d93484680ef8db9397a4fb70b5adbb6dbc") version("0.52.19", sha256="08c0db56c21996af6a7cbab99491b774c6c09cef91cd9b03903c84634bff2e80") + # newt prior to 0.51.21 did not allow one to specify where to find Python and would + # only look in /usr. Avoid using Python with earlier versions. + variant("python", when="@0.52.21:", default=False, description="Build the snack python module") + depends_on("c", type="build") # generated - depends_on("slang") + depends_on("gettext") depends_on("popt") + depends_on("slang") + + depends_on("python", when="@0.52.21: +python") + + # Beginning with newt 0.52.25, snack is installed into Python's site-packages, but + # we prefer the module to stay within newt's prefix + patch("0001-adjust-snack-installation.patch", when="@0.51.25: +python") + + def configure_args(self): + args = [] + + # If --without-python is not specified, configure will try to find Python on + # PATH. + if self.spec.satisfies("~python") or self.version < Version("0.52.21"): + args.append("--without-python") + + if self.spec.satisfies("+python"): + args.append(f"--with-python=python{self.spec['python'].version.up_to(2)}") + + return args + + def setup_build_environment(self, env: EnvironmentModifications) -> None: + super().setup_build_environment(env) + # Without these flags, newt does not link properly against libintl from + # spack-provided gettext + env.set("CPPFLAGS", f"-I{self.spec['gettext'].prefix.include}") + env.set("LDFLAGS", f"-L{self.spec['gettext'].prefix.lib}") + env.set("LIBS", "-lintl") + + @when("+python") + def setup_dependent_run_environment( + self, env: EnvironmentModifications, dependent_spec: Spec + ) -> None: + env.prepend_path( + "PYTHONPATH", + f"{self.spec.prefix.lib}/python{self.spec['python'].version.up_to(2)}/site-packages", + ) diff --git a/repos/spack_repo/builtin/packages/nextflow/package.py b/repos/spack_repo/builtin/packages/nextflow/package.py index 082c4a1c34a..3f958d80e14 100644 --- a/repos/spack_repo/builtin/packages/nextflow/package.py +++ b/repos/spack_repo/builtin/packages/nextflow/package.py @@ -11,229 +11,320 @@ class Nextflow(Package): """Data-driven computational pipelines.""" homepage = "https://www.nextflow.io" - url = "https://github.com/nextflow-io/nextflow/releases/download/v21.04.3/nextflow" + url = "https://github.com/nextflow-io/nextflow/releases/download/v25.10.2/nextflow" maintainers("dialvarezs", "marcodelapierre") - version( - "25.04.6", - sha256="a94f8bd1db9c0271ad58ec40b9c71f812d081a66f782396928b9b1f740f0be5f", - expand=False, - ) - version( - "25.04.3", - sha256="f33571f9298e930993aa4afcde84bc0d0815a59ee7168d8a153093ad08e9b263", - expand=False, - ) - version( - "25.04.0", - sha256="33d888b1e0127566950719316bac735975e15800018768cceb7d3d77ad0719eb", - expand=False, - ) - version( - "24.10.9", - sha256="9080820f9c36a08d166d509a6c6df15a1de2e3e04b969aaeef148ef2d87e3025", - expand=False, - ) - version( - "24.10.5", - sha256="a9733a736cfecdd70e504b942e823da7005f9afc288902e67afe86b43dc9bcdb", - expand=False, - ) - version( - "24.10.3", - sha256="01110949bb3256bf6cbf1d4b3ea17369491b3f693b6d86a0c9ab8171b1619ba0", - expand=False, - ) - version( - "24.10.2", - sha256="e12bf1fc1e11629f2aef22a9a6ddecc31522bcd5988d1c48d263de699b4e5289", - expand=False, - ) - version( - "24.10.0", - sha256="e848918fb9b85762822c078435d9ff71979a88cccff81ce5babd75d5eee52fe6", - expand=False, - ) - version( - "24.04.6", - sha256="77f43bc1c3d1749a68f294ae07e5cc0ffadde92f57106ea9711c4bafd68a6c64", - expand=False, - ) - version( - "24.04.3", - sha256="e258f6395a38f044eb734cba6790af98b561aa521f63e2701fe95c050986e11c", - expand=False, - ) - version( - "24.04.1", - sha256="d1199179e31d0701d86e6c38afa9ccade93f62d545e800824be7767a130510ba", - expand=False, - ) - version( - "23.10.1", - sha256="9abc54f1ffb2b834a8135d44300404552d1e27719659cbb635199898677b660a", - expand=False, - ) - version( - "23.10.0", - sha256="4b7fba61ecc6d53a6850390bb435455a54ae4d0c3108199f88b16b49e555afdd", - expand=False, - ) - version( - "23.04.3", - sha256="258714c0772db3cab567267e8441c5b72102381f6bd58fc6957c2972235be7e0", - expand=False, - ) - version( - "23.04.1", - sha256="5de3e09117ca648b2b50778d3209feb249b35de0f97cdbcf52c7d92c7a96415c", - expand=False, - ) - version( - "22.10.4", - sha256="612a085e183546688e0733ebf342fb73865f560ad1315d999354048fbca5954d", - expand=False, - ) - version( - "22.10.3", - sha256="8d67046ca3b645fab2642d90848550a425c9905fd7dfc2b4753b8bcaccaa70dd", - expand=False, - ) - version( - "22.10.1", - sha256="fa6b6faa8b213860212da413e77141a56a5e128662d21ea6603aeb9717817c4c", - expand=False, - ) - version( - "22.10.0", - sha256="6acea8bd21f7f66b1363eef900cd696d9523d2b9edb53327940f093189c1535e", - expand=False, - ) - version( - "22.04.4", - sha256="e5ebf9942af4569db9199e8528016d9a52f73010ed476049774a76b201cd4b10", - expand=False, - ) - version( - "22.04.3", - sha256="a1a79c619200b9f2719e8467cd5b8fbcb427f43adf945233ba9e03cd2f2d814e", - expand=False, - ) - version( - "22.04.1", - sha256="89ef482a53d2866a3cee84b3576053278b53507bde62db4ad05b1fcd63a9368a", - expand=False, - ) - version( - "22.04.0", - sha256="8eba475aa395438ed222ff14df8fbe93928c14ffc68727a15b8308178edf9056", - expand=False, - ) - version( - "21.10.6", - sha256="104c0352c592924233ea7897cbfb2ece41795be348f97d6dfbc8d66e6271e4ad", - expand=False, - deprecated=True, - ) - version( - "21.10.1", - sha256="05c8b9f3d2f5eded737fdd0a13b84e3bc442cc6355ba95e21118cb624f8176da", - expand=False, - deprecated=True, - ) - version( - "21.10.0", - sha256="e938e53f43f0f00c8d5adf2dc104c4ce0c6d834aa84a4a3918ac8bec6eee6b9c", - expand=False, - deprecated=True, - ) - version( - "21.04.3", - sha256="80c7ecd94b55da8eb0e17040dbd0c43ee80e252cd999374e16c00d54d3d3abf3", - expand=False, - deprecated=True, - ) - version( - "20.10.0", - sha256="54f76c83cbabe8ec68d6a878dcf921e647284499f4ae917356e594d873cb78dd", - expand=False, - deprecated=True, - ) - version( - "20.07.1", - sha256="de4db5747a801af645d9b021c7b36f4a25c3ce1a8fda7705a5f37e8f9357443a", - expand=False, - deprecated=True, - ) - version( - "20.04.1", - sha256="b46833ad75b9b7db72668235b53d5c295a9ab02b50d36506bbbe53f383239bde", - expand=False, - deprecated=True, - ) - version( - "20.01.0", - sha256="fe1900284fd658c0781e6d8048839541afe5818d0b53f6ee8ae81f59d47ad662", - expand=False, - deprecated=True, - ) - version( - "19.10.0", - sha256="45497eb4bea62dd5477ebe75a6dabfd6905554c46321ca40aec6edfec61c59f4", - expand=False, - deprecated=True, - ) - version( - "19.07.0", - sha256="e6e7ba4770cd6230bd5410a6fd8c071d6c6dde7a7765880ecabc820b84d38fe5", - expand=False, - deprecated=True, - ) - version( - "19.04.1", - sha256="21318d8b64095a548f6baf0ef2811f33452e4f9f8a502a46a0aab7815ee34c69", - expand=False, - deprecated=True, - ) - version( - "0.25.6", - sha256="9498806596c96ba87396194fa6f1d7d1cdb739990f83e7e89d1d055366c5a943", - expand=False, - deprecated=True, - ) - version( - "0.24.1", - sha256="0bfde5335b385e3cff99bf4aab619e583de5dc0849767240f675037a2e7c1d83", - expand=False, - deprecated=True, - ) - version( - "0.23.3", - sha256="ffe1c314962ff97ebf47b0567883e152522acfbf6fd5800200b1a7a0ca2896d2", - expand=False, - deprecated=True, - ) - version( - "0.21.0", - sha256="076089079479da0d91fe1ad7aad06816164ecbcf17f73c55e795b1db8462b28d", - expand=False, - deprecated=True, - ) - version( - "0.20.1", - sha256="02635f3371f76a10e12f7366508c90bacf532ab7c23ae03c895317a150a39bd4", - expand=False, - deprecated=True, - ) - version( - "0.17.3", - sha256="05563ee1474fbef22f65fa3080792dcb08d218dd1b1561c517ebff4346559dbe", - expand=False, - deprecated=True, - ) + # The "release" distribution of the nextflow binary contains no bundled plugins and + # is 'nextflow' in the project's release assets. The "standalone" distribution + # bundles all first-party plugins and is 'nextflow--dist' in the project's + # release assets. Only one or the other will be installed, as dictated by the + # version string specified by the user. 'edge' releases are also supported. For each + # version, boolean "deprecated" can be defined to deprecated all distributions of + # that version. E.g. + # "25.12.0-edge": { + # "release": { + # ... + # }, + # "standalone": { + # ... + # }, + # }, + # "25.10.2": { + # "release": { + # ... + # }, + # "standalone": { + # ... + # }, + # }, + # "21.04.3": { + # "deprecated": True, + # "release": { + # ... + # }, + # "standalone": { + # ... + # }, + # }, + nf_versions = { + "26.04.0": { + "release": { + "sha256": "2f0e68fa22df782bbebad4a964138756f2cf19a5544c07af2913a5f730646e44" + }, + "standalone": { + "sha256": "5e2b4a354b4d7634d7211b71417d61606878fb49e9b224b50ded6e2c69114870" + }, + }, + "25.10.5": { + "release": { + "sha256": "a414e4581f90d1990408edc9f3192726b4c80d23a798503fd280310aa54e027a" + }, + "standalone": { + "sha256": "a6ff4fcd610ce00affb236587bc4bff6481733b27044730450ef753a239c2a9b" + }, + }, + "25.10.2": { + "release": { + "sha256": "60aff30ad532030657296ca1fa72e37befda236bfd4fc7358a3cabf5e7589dd7" + }, + "standalone": { + "sha256": "59c6f48fce6139157b2e8a28fdca8166bc502a22d9ef1a0a70065ecc9c3ae4a3" + }, + }, + "25.10.0": { + "release": { + "sha256": "2a398d1dbf3a7258218ae8991429369ac4fdd86cb99b8c6c8f6c922202d9d524" + }, + "standalone": { + "sha256": "294376ec555695ee0b92e21477600f97c113f2d1ed3fb1f480daf2ee439c4626" + }, + }, + "25.04.8": { + "release": { + "sha256": "e115fbc1b2a95eee93aaa6666fccc82c0abc4760706c97d2ce971711d5dcc96b" + }, + "standalone": { + "sha256": "df18b2c5d89b47f471c71379a8f830a79973c1ba6ff56a55289483764d5e02ac" + }, + }, + "25.04.6": { + "release": { + "sha256": "a94f8bd1db9c0271ad58ec40b9c71f812d081a66f782396928b9b1f740f0be5f" + }, + "standalone": { + "sha256": "c2424e11bdd5746cf5b522d5e013c66a96905c1bc69b23654aa38924e94e6cec" + }, + }, + "25.04.3": { + "release": { + "sha256": "f33571f9298e930993aa4afcde84bc0d0815a59ee7168d8a153093ad08e9b263" + }, + "standalone": { + "sha256": "53c232cdd8a9419d2c205dc7c6c4dd2646182c997300e6439a453099e28aa21a" + }, + }, + "25.04.0": { + "release": { + "sha256": "33d888b1e0127566950719316bac735975e15800018768cceb7d3d77ad0719eb" + }, + "standalone": { + "sha256": "9108049698bf1d8a13d8d33d920502b82d85c04780f70fcffa0ba33ab8247480" + }, + }, + "24.10.9": { + "release": { + "sha256": "9080820f9c36a08d166d509a6c6df15a1de2e3e04b969aaeef148ef2d87e3025" + }, + "standalone": { + "sha256": "627d5eaf1ecea49caa88cc71e21d5a9548d9b12c1fedbacbb74f76fa202db35e" + }, + }, + "24.10.5": { + "release": { + "sha256": "a9733a736cfecdd70e504b942e823da7005f9afc288902e67afe86b43dc9bcdb" + }, + "standalone": { + "sha256": "79c7601a7d8d6f77dd9393377da453cd1ab59e821fa41324badcdd5dfc54855b" + }, + }, + "24.10.3": { + "release": { + "sha256": "01110949bb3256bf6cbf1d4b3ea17369491b3f693b6d86a0c9ab8171b1619ba0" + }, + "standalone": { + "sha256": "c1a0f9a59406bc5d0c56734a5cc35294c9d0e600c08d0685b4072659cf69b8f2" + }, + }, + "24.10.2": { + "release": { + "sha256": "e12bf1fc1e11629f2aef22a9a6ddecc31522bcd5988d1c48d263de699b4e5289" + }, + "standalone": { + "sha256": "972bb4f4bcd30bb474c29c247ccf79289bbcd444f799f0307f61123e6b0f7475" + }, + }, + "24.10.0": { + "release": { + "sha256": "e848918fb9b85762822c078435d9ff71979a88cccff81ce5babd75d5eee52fe6" + }, + "standalone": { + "sha256": "336019d1b526923b70b4f0cd1f80a9e37285826bb081032effa329ff177208cb" + }, + }, + "24.04.6": { + "release": { + "sha256": "77f43bc1c3d1749a68f294ae07e5cc0ffadde92f57106ea9711c4bafd68a6c64" + }, + "standalone": { + "sha256": "024542ca21b00e44a1516265ae0b81396e22c468d4a11527a7dfe5e9de16ef76" + }, + }, + "24.04.3": { + "release": { + "sha256": "e258f6395a38f044eb734cba6790af98b561aa521f63e2701fe95c050986e11c" + }, + "standalone": { + "sha256": "7e6dce2df4565fcd1fb9bfea3f68087e51cb5b7aa3010eec20116917bea3a07b" + }, + }, + "24.04.1": { + "release": { + "sha256": "d1199179e31d0701d86e6c38afa9ccade93f62d545e800824be7767a130510ba" + }, + "standalone": { + "sha256": "bf98f93c90318fd06109855986caba06086b197256ce2068509372bed2b517a6" + }, + }, + "23.10.1": { + "release": { + "sha256": "9abc54f1ffb2b834a8135d44300404552d1e27719659cbb635199898677b660a" + }, + "standalone": { + "sha256": "5d8eb1b849108e058dbbcc0dbc737731215a85a4535321936c365e8c06c7409e" + }, + }, + "23.10.0": { + "release": { + "sha256": "4b7fba61ecc6d53a6850390bb435455a54ae4d0c3108199f88b16b49e555afdd" + }, + "standalone": { + "sha256": "c69f6055c97741b828b6ee67de38125a42f1774f1621afd34c0eb72ffea171a6" + }, + }, + "23.04.3": { + "release": { + "sha256": "258714c0772db3cab567267e8441c5b72102381f6bd58fc6957c2972235be7e0" + }, + "standalone": { + "sha256": "731b3fa6acf52440c05c9e8d9422edce24eb2cae3acc1603e8be55ca10ca6ac4" + }, + }, + "23.04.1": { + "release": { + "sha256": "5de3e09117ca648b2b50778d3209feb249b35de0f97cdbcf52c7d92c7a96415c" + }, + "standalone": { + "sha256": "1c6591adaedaa05aadd9f4c2cb4fe22d61c8d2a7ddcc99474125e9e94865d6a4" + }, + }, + "22.10.4": { + "release": { + "sha256": "612a085e183546688e0733ebf342fb73865f560ad1315d999354048fbca5954d" + }, + "standalone": { + "sha256": "feec0b078a1053512f2c21cdfc92f624f92062c49a3c14a201e6b7458ae5ac71" + }, + }, + "22.10.3": { + "release": { + "sha256": "8d67046ca3b645fab2642d90848550a425c9905fd7dfc2b4753b8bcaccaa70dd" + }, + "standalone": { + "sha256": "640b72aaf691db1b11f43306f6557df06518408eca01c2fa7429cbe37264db8b" + }, + }, + "22.10.1": { + "release": { + "sha256": "fa6b6faa8b213860212da413e77141a56a5e128662d21ea6603aeb9717817c4c" + }, + "standalone": { + "sha256": "c5edc9fc81d9c6eb4f628505f14f8bb4fe044d4fc7d9ef60654ba0d73abf5a80" + }, + }, + "22.10.0": { + "release": { + "sha256": "6acea8bd21f7f66b1363eef900cd696d9523d2b9edb53327940f093189c1535e" + }, + "standalone": { + "sha256": "a714beebcb544d6c140286219340a9440d412d2ad57a691de0f0610684204e83" + }, + }, + "22.04.4": { + "release": { + "sha256": "e5ebf9942af4569db9199e8528016d9a52f73010ed476049774a76b201cd4b10" + }, + "standalone": { + "sha256": "8d341a11d3efa95e8dbdcb26909942dcd6ce09c659f5372021b205403521d9bd" + }, + }, + "22.04.3": { + "release": { + "sha256": "a1a79c619200b9f2719e8467cd5b8fbcb427f43adf945233ba9e03cd2f2d814e" + }, + "standalone": { + "sha256": "5a16941b80361e3a5add8a169f636862c886df777c10b10d360be14df7268d5b" + }, + }, + "22.04.1": { + "release": { + "sha256": "89ef482a53d2866a3cee84b3576053278b53507bde62db4ad05b1fcd63a9368a" + }, + "standalone": { + "sha256": "56cca853251771e81e50e8db213582ad4714c59484016e8c48d25001b7178df9" + }, + }, + "22.04.0": { + "release": { + "sha256": "8eba475aa395438ed222ff14df8fbe93928c14ffc68727a15b8308178edf9056" + }, + "standalone": { + "sha256": "f366f14df881fb26dc2f815d34e91180eef6e2ba51d289b9776f71b905a36750" + }, + }, + } - depends_on("java", type="run") + for ver, attrs in nf_versions.items(): + is_deprecated = False + + if "deprecated" in attrs: + is_deprecated = attrs["deprecated"] + + # Edge release. Not preferred. + if "edge" in ver: + version( + ver, + sha256=attrs["release"]["sha256"], + expand=False, + preferred=False, + deprecated=is_deprecated, + ) + + else: + # Release dist for stable version. Preferred. + version( + ver, + sha256=attrs["release"]["sha256"], + expand=False, + preferred=True, + deprecated=is_deprecated, + ) + + # Standalone dist for version. + version( + f"{ver}-standalone", + sha256=attrs["standalone"]["sha256"], + expand=False, + preferred=False, + deprecated=is_deprecated, + ) + + depends_on("java@17:", type="run", when="@25:") + depends_on("java@11:", type="run", when="@23:") + depends_on("java@11:", type="run", when="platform=darwin") + depends_on("java@8:", type="run") + + def url_for_version(self, version): + ver = str(version).replace("-standalone", "") + uri = f"https://github.com/nextflow-io/nextflow/releases/download/v{ver}" + if "standalone" in str(version): + # standalone binary name changed with 24.07.0-edge + if version < Version("24.07.0"): + return f"{uri}/nextflow-{ver}-all" + else: + return f"{uri}/nextflow-{ver}-dist" + else: + return f"{uri}/nextflow" def install(self, spec, prefix): mkdirp(prefix.bin) diff --git a/repos/spack_repo/builtin/packages/nghttp2/package.py b/repos/spack_repo/builtin/packages/nghttp2/package.py index a6cb98b965d..c3a6afa23fb 100644 --- a/repos/spack_repo/builtin/packages/nghttp2/package.py +++ b/repos/spack_repo/builtin/packages/nghttp2/package.py @@ -16,6 +16,9 @@ class Nghttp2(AutotoolsPackage): license("MIT") + version("1.67.1", sha256="da8d640f55036b1f5c9cd950083248ec956256959dc74584e12c43550d6ec0ef") + version("1.67.0", sha256="f61f8b38c0582466da9daa1adcba608e1529e483de6b5b2fbe8a5001d41db80c") + version("1.66.0", sha256="e178687730c207f3a659730096df192b52d3752786c068b8e5ee7aeb8edae05a") version("1.65.0", sha256="8ca4f2a77ba7aac20aca3e3517a2c96cfcf7c6b064ab7d4a0809e7e4e9eb9914") version("1.64.0", sha256="20e73f3cf9db3f05988996ac8b3a99ed529f4565ca91a49eb0550498e10621e8") version("1.63.0", sha256="9318a2cc00238f5dd6546212109fb833f977661321a2087f03034e25444d3dbb") diff --git a/repos/spack_repo/builtin/packages/nginx/package.py b/repos/spack_repo/builtin/packages/nginx/package.py index 1f57db48566..2c0a1f70fed 100644 --- a/repos/spack_repo/builtin/packages/nginx/package.py +++ b/repos/spack_repo/builtin/packages/nginx/package.py @@ -22,20 +22,14 @@ class Nginx(AutotoolsPackage): version("1.23.4", sha256="d43300e36bb249a7e6edc60bca1b0fc372a0bafce2f346d76acfb677a8790fc0") version("1.23.3", sha256="75cb5787dbb9fae18b14810f91cc4343f64ce4c24e27302136fb52498042ba54") version("1.21.3", sha256="14774aae0d151da350417efc4afda5cce5035056e71894836797e1f6e2d1175a") - version("1.15.6", sha256="a3d8c67c2035808c7c0d475fffe263db8c353b11521aa7ade468b780ed826cc6") - version("1.13.8", sha256="8410b6c31ff59a763abf7e5a5316e7629f5a5033c95a3a0ebde727f9ec8464c5") - version("1.12.0", sha256="b4222e26fdb620a8d3c3a3a8b955e08b713672e1bc5198d1e4f462308a795b30") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("openssl") - depends_on("openssl@:1", when="@:1.21.2") depends_on("pcre") depends_on("zlib-api") - conflicts("%gcc@8:", when="@:1.14") - def configure_args(self): args = ["--with-http_ssl_module"] return args diff --git a/repos/spack_repo/builtin/packages/ngspice/package.py b/repos/spack_repo/builtin/packages/ngspice/package.py index 03a3b33346c..8dc693fd106 100644 --- a/repos/spack_repo/builtin/packages/ngspice/package.py +++ b/repos/spack_repo/builtin/packages/ngspice/package.py @@ -23,6 +23,7 @@ class Ngspice(AutotoolsPackage): # Master version by default adds the experimental adms feature version("master", branch="master") + version("45.2", sha256="ba8345f4c3774714c10f33d7da850d361cec7d14b3a295d0dc9fd96f7423812d") version("44", sha256="3865d13ab44f1f01f68c7ac0e0716984e45dce5a86d126603c26d8df30161e9b") version("43", sha256="14dd6a6f08531f2051c13ae63790a45708bd43f3e77886a6a84898c297b13699") version("42", sha256="737fe3846ab2333a250dfadf1ed6ebe1860af1d8a5ff5e7803c772cc4256e50a") @@ -52,7 +53,7 @@ class Ngspice(AutotoolsPackage): variant( "debug", default="auto", - description="Enable debugging features: " "auto is yes for build=lib, no for build=bin", + description="Enable debugging features: auto is yes for build=lib, no for build=bin", values=("auto", "yes", "no"), multi=False, ) @@ -63,8 +64,8 @@ class Ngspice(AutotoolsPackage): variant("fft", default=True, description="Use external fftw lib") variant("osdi", default=False, description="Use osdi/OpenVAF") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("fftw-api@3", when="+fft") with when("+fft+openmp"): diff --git a/repos/spack_repo/builtin/packages/nim/package.py b/repos/spack_repo/builtin/packages/nim/package.py index b9e8354c7d3..0d139a99402 100644 --- a/repos/spack_repo/builtin/packages/nim/package.py +++ b/repos/spack_repo/builtin/packages/nim/package.py @@ -16,7 +16,7 @@ class Nim(Package): """ homepage = "https://nim-lang.org/" - url = "https://nim-lang.org/download/nim-2.2.2.tar.xz" + url = "https://nim-lang.org/download/nim-2.2.10.tar.xz" git = "https://github.com/nim-lang/Nim.git" license("MIT", checked_by="Buldram") @@ -24,6 +24,9 @@ class Nim(Package): maintainers("Buldram") version("develop", branch="devel") + version("2.2.10", sha256="7957b7ed004206bcf10bcc4f3b4744153878e62f2431552a9a8e9d3f40e8d5d5") + version("2.2.8", sha256="114191afa083c5059dcbe5ce88dbe4f42542cff04e2c3017668ee438bc0b8cfc") + version("2.2.6", sha256="657b0e3d5def788148d2a87fa6123fa755b2d92cad31ef60fd261e451785528b") version("2.2.4", sha256="f82b419750fcce561f3f897a0486b180186845d76fb5d99f248ce166108189c7") version("2.2.2", sha256="7fcc9b87ac9c0ba5a489fdc26e2d8480ce96a3ca622100d6267ef92135fd8a1f") version("2.2.0", sha256="ce9842849c9760e487ecdd1cdadf7c0f2844cafae605401c7c72ae257644893c") @@ -32,70 +35,17 @@ class Nim(Package): version("2.0.12", sha256="c4887949c5eb8d7f9a9f56f0aeb2bf2140fabf0aee0f0580a319e2a09815733a") version("2.0.4", sha256="71526bd07439dc8e378fa1a6eb407eda1298f1f3d4df4476dca0e3ca3cbe3f09") version("1.6.20", sha256="ffed047504d1fcaf610f0dd7cf3e027be91a292b0c9c51161504c2f3b984ffb9") - version("1.4.8", sha256="b798c577411d7d95b8631261dbb3676e9d1afd9e36740d044966a0555b41441a") - version("1.4.4", sha256="6d73729def143f72fc2491ca937a9cab86d2a8243bd845a5d1403169ad20660e") - version("1.4.2", sha256="03a47583777dd81380a3407aa6a788c9aa8a67df4821025770c9ac4186291161") - version("1.2.18", sha256="a1739185508876f6e21a13f590a20e219ce3eec1b0583ea745e9058c37ad833e") - with default_args(deprecated=True): - # Past development (odd-numbered) versions - version("1.9.3", sha256="d8de7515db767f853d9b44730f88ee113bfe9c38dcccd5afabc773e2e13bf87c") - - # CVE-2021-46872, CVE-2021-29495, CVE-2021-21374, CVE-2021-21373, CVE-2021-21372 - version( - "1.0.10", sha256="28045fb6dcd86bd79748ead7874482d665ca25edca68f63d6cebc925b1428da5" - ) - - # CVE-2020-15694, CVE-2020-15693, CVE-2020-15692, CVE-2020-15690 - version( - "0.20.0", sha256="51f479b831e87b9539f7264082bb6a64641802b54d2691b3c6e68ac7e2699a90" - ) - version( - "0.19.9", - sha256="154c440cb8f27da20b3d6b1a8cc03f63305073fb995bbf26ec9bc6ad891ce276", - url="https://github.com/nim-lang/nightlies/releases/download/2019-06-02-devel-1255b3c/nim-0.19.9-linux_x64.tar.xz", - ) - version( - "0.19.6", sha256="a09f0c58d29392434d4fd6d15d4059cf7e013ae948413cb9233b8233d67e3a29" - ) variant( "sqlite", default=False, when="@:1.7.3", description="Install SQLite for std/db_sqlite" ) depends_on("c", type="build") - depends_on("gmake", type="build", when="@0.20:") + depends_on("gmake", type="build") depends_on("pcre", type="link") depends_on("openssl", type="link") - depends_on("openssl@1", type="link", when="@:1.6.9") depends_on("sqlite@3:", type="link", when="+sqlite") - # CVE-2021-46872 - patch( - "https://github.com/nim-lang/Nim/commit/17522d6ae1444614be78b1002005513105f2893f.patch?full_index=1", - sha256="fee426d5f027a8676d94309932812c5d70e1bc089f4d030326a413cacba78330", - when="@1.4.0:1.4.9", - ) - # CVE-2021-21374, CVE-2021-29495 - patch( - "https://github.com/nim-lang/Nim/commit/c7d090c418f7847bdfa1fd3bfed831470665c3e9.patch?full_index=1", - sha256="88fd2a137a2170a4df41b9f5419a47aff78b0dbf421405e22a6d6a066e3e0431", - when="@1.4.0:1.4.3", - ) - # CVE-2021-21373 - patch( - "https://github.com/nim-lang/nimble/commit/aec0ae5c23d2e2a2ec28e97dcb9dd6cb1e68b134.patch?full_index=1", - sha256="4fe4f8b760e7a516fcd51d6ce02562432f1d34623751f52556d4e6c1823e705a", - when="@1:1.2.9,1.4.0:1.4.3", - working_dir="dist/nimble", - ) - # CVE-2021-21372 - patch( - "https://github.com/nim-lang/nimble/commit/89954f8b03b05970aea78c8fe1241138f5bbeae8.patch?full_index=1", - sha256="5e6f7e2d2dac5d2ed70b5047418d9b43e156de35737f9fad0052ae30dd539b03", - when="@:1.2.9,1.4.0:1.4.3", - working_dir="dist/nimble", - ) - resource( name="csources_v2", git="https://github.com/nim-lang/csources_v2.git", @@ -133,8 +83,6 @@ def append_rpath(path, libdirs): if self.spec.satisfies("^[virtuals=libc] musl"): if self.spec.satisfies("@1.9.3:"): pthreadModule = "lib/std/private/threadtypes.nim" - elif self.spec.satisfies("@:0.19.6"): - pthreadModule = "lib/system/threads.nim" else: pthreadModule = "lib/system/threadlocalstorage.nim" @@ -149,12 +97,8 @@ def build(self, spec, prefix): if spec.satisfies("@develop"): with working_dir("csources_v2"): make() - - elif spec.satisfies("@0.20:"): - make() - else: - Executable("./build.sh")() + make() nim = Executable(join_path("bin", "nim")) # Separate nimcache allows parallel compilation of different versions of the Nim compiler diff --git a/repos/spack_repo/builtin/packages/ninja/package.py b/repos/spack_repo/builtin/packages/ninja/package.py index b80ff52e03c..1cb0bb2112f 100644 --- a/repos/spack_repo/builtin/packages/ninja/package.py +++ b/repos/spack_repo/builtin/packages/ninja/package.py @@ -24,8 +24,9 @@ class Ninja(Package): license("Apache-2.0") - version("kitware", branch="features-for-fortran", git="https://github.com/Kitware/ninja.git") version("master", branch="master") + version("1.13.2", sha256="974d6b2f4eeefa25625d34da3cb36bdcebe7fbce40f4c16ac0835fd1c0cbae17") + version("1.13.0", sha256="f08641d00099a9e40d44ec0146f841c472ae58b7e6dd517bee3945cfd923cedf") version("1.12.1", sha256="821bdff48a3f683bc4bb3b6f0b5fe7b2d647cf65d52aeb63328c91a6c6df285a") version("1.12.0", sha256="8b2c86cd483dc7fcb7975c5ec7329135d210099a89bc7db0590a07b0bbfe49a5") version("1.11.1", sha256="31747ae633213f1eda3842686f83c2aa1412e0f5691d1c14dbbcc67fe7400cea") @@ -37,6 +38,12 @@ class Ninja(Package): version("1.8.2", sha256="86b8700c3d0880c2b44c2ff67ce42774aaf8c28cbf57725cb881569288c1c6f4") version("1.7.2", sha256="2edda0a5421ace3cf428309211270772dd35a91af60c96f93f90df6bc41b16d9") version("1.6.0", sha256="b43e88fb068fe4d92a3dfd9eb4d19755dae5c33415db2e9b7b61b4659009cde7") + version( + "kitware", + branch="kitware-staged-features", + git="https://github.com/Kitware/ninja.git", + deprecated=True, + ) # ninja@1.12: needs googletest source, but 1.12 itself needs a patch to use it resource( @@ -60,6 +67,8 @@ class Ninja(Package): depends_on("cxx", type="build") # generated depends_on("python", type="build") + # Python 3.13 added in https://github.com/ninja-build/ninja/pull/2340 + depends_on("python@:3.12", type="build", when="@:1.11") depends_on("re2c@0.11.3:", type="build", when="+re2c") phases = ["configure", "install"] @@ -101,11 +110,11 @@ def install(self, spec, prefix): with working_dir(prefix.bin): symlink("ninja", "ninja-build") - def setup_dependent_package(self, module, dspec): + def setup_dependent_package(self, module, dependent_spec): name = "ninja" module.ninja = MakeExecutable( which_string(name, path=[self.spec.prefix.bin], required=True), - jobs=determine_number_of_jobs(parallel=dspec.package.parallel), - supports_jobserver=self.spec.version == ver("kitware"), + jobs=determine_number_of_jobs(parallel=dependent_spec.package.parallel), + supports_jobserver=self.spec.satisfies("@kitware,1.13:"), ) diff --git a/repos/spack_repo/builtin/packages/ninja_fortran/package.py b/repos/spack_repo/builtin/packages/ninja_fortran/package.py index 44c2d5f4782..24167d832da 100644 --- a/repos/spack_repo/builtin/packages/ninja_fortran/package.py +++ b/repos/spack_repo/builtin/packages/ninja_fortran/package.py @@ -93,11 +93,11 @@ def install(self, spec, prefix): with working_dir(prefix.bin): symlink("ninja", "ninja-build") - def setup_dependent_package(self, module, dspec): + def setup_dependent_package(self, module, dependent_spec): name = "ninja" module.ninja = MakeExecutable( which_string(name, path=[self.spec.prefix.bin], required=True), - jobs=determine_number_of_jobs(parallel=dspec.package.parallel), + jobs=determine_number_of_jobs(parallel=dependent_spec.package.parallel), supports_jobserver=True, # This fork supports jobserver ) diff --git a/repos/spack_repo/builtin/packages/nlcglib/package.py b/repos/spack_repo/builtin/packages/nlcglib/package.py index d0ad349e07c..30803003465 100644 --- a/repos/spack_repo/builtin/packages/nlcglib/package.py +++ b/repos/spack_repo/builtin/packages/nlcglib/package.py @@ -48,6 +48,7 @@ class Nlcglib(CMakePackage, CudaPackage, ROCmPackage): depends_on("cmake@3.23:", type="build") depends_on("mpi") depends_on("lapack") + depends_on("fmt", when="@1.3:") requires( "^[virtuals=lapack] openblas", diff --git a/repos/spack_repo/builtin/packages/nlohmann_json/package.py b/repos/spack_repo/builtin/packages/nlohmann_json/package.py index 0bad6de91db..3766a1b5151 100644 --- a/repos/spack_repo/builtin/packages/nlohmann_json/package.py +++ b/repos/spack_repo/builtin/packages/nlohmann_json/package.py @@ -12,10 +12,11 @@ class NlohmannJson(CMakePackage): homepage = "https://nlohmann.github.io/json/" url = "https://github.com/nlohmann/json/archive/v3.1.2.tar.gz" - maintainers("ax3l") + maintainers("ax3l", "pearzt") license("MIT") + version("3.12.0", sha256="4b92eb0c06d10683f7447ce9406cb97cd4b453be18d7279320f7b2f025c10187") version("3.11.3", sha256="0d8ef5af7f9794e3263480193c491549b2ba6cc74bb018906202ada498a79406") version("3.11.2", sha256="d69f9deb6a75e2580465c6c4c5111b89c4dc2fa94e3a85fcd2ffcd9a143d9273") # v3.11.0 & v3.11.1 omitted; released with significant regressions @@ -54,6 +55,26 @@ class NlohmannJson(CMakePackage): conflicts("%gcc@:4.8", when="@:3.2.9") conflicts("%intel@:16") + def patch(self): + if self.spec.satisfies("@3.11.0:3.12.0"): + # Ensure no TU-local entities for C++20 modules + # (https://github.com/nlohmann/json/pull/4764) + for f in [ + "include/nlohmann/detail/input/binary_reader.hpp", + "single_include/nlohmann/json.hpp", + ]: + filter_file( + "static inline bool little_endianness", + "inline bool little_endianness", + f, + string=True, + ) + for f in [ + "include/nlohmann/detail/string_escape.hpp", + "single_include/nlohmann/json.hpp", + ]: + filter_file("static void unescape", "inline void unescape", f, string=True) + def cmake_args(self): return [ self.define_from_variant("JSON_MultipleHeaders", "multiple_headers"), diff --git a/repos/spack_repo/builtin/packages/nlopt/package.py b/repos/spack_repo/builtin/packages/nlopt/package.py index 1e6ad166a8b..845bb4f2fe6 100644 --- a/repos/spack_repo/builtin/packages/nlopt/package.py +++ b/repos/spack_repo/builtin/packages/nlopt/package.py @@ -60,6 +60,8 @@ def cmake_args(self): self.define_from_variant("BUILD_SHARED_LIBS", "shared"), self.define_from_variant("NLOPT_OCTAVE", "octave"), self.define_from_variant("NLOPT_CXX", "cxx"), + self.define_from_variant("NLOPT_PYTHON", "python"), + self.define_from_variant("NLOPT_GUILE", "guile"), ] if spec.satisfies("+matlab"): diff --git a/repos/spack_repo/builtin/packages/nmad/package.py b/repos/spack_repo/builtin/packages/nmad/package.py new file mode 100644 index 00000000000..96e7de5b37e --- /dev/null +++ b/repos/spack_repo/builtin/packages/nmad/package.py @@ -0,0 +1,158 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.packages.puk.package import Puk + +from spack.package import * + + +class Nmad(AutotoolsPackage): + """NewMadeleine communication library. + + NewMadeleine is a communication library for high-performance + networks, with its native interface as well as an MPI + interface. It comes with an optimizing scheduler that applies + optimization strategies on the flow of packets. It is fully + multi-threaded and very scalable. Its MPI implementation MadMPI + fully supports the MPI_THREAD_MULTIPLE multi-threading level. + """ + + homepage = "https://pm2.gitlabpages.inria.fr/newmadeleine/" + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-2025-03-18.tar.gz" + list_url = "https://pm2.gitlabpages.inria.fr/releases/" + git = "git@gitlab.inria.fr:pm2/pm2.git" + + maintainers("a-denis") + license("GPL-2.0-or-later", checked_by="a-denis") + + def url_for_version(self, version): + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-{0}.tar.gz" + return url.format(version) + + version("master", branch="master") + version( + "2026-01-21", sha256="2cd40d7712d78c6c43c510c3ae2bdbc3d539800f6d3926730bddde396e953847" + ) + version( + "2025-03-18", sha256="2d0208809dd17bac4fd7e7f97b22e2240b925d8828b9ab5dc5f435e58ff97010" + ) + version( + "2024-11-21", sha256="76da169bbb9720a13be1f750480e1a7d6510830163878852876932639879d632" + ) + version( + "2024-07-12", sha256="ea9bb91b213950a52eb99d787110905d45ed02954ea9133596d690db5be0c31b" + ) + version( + "2022-05-31", sha256="afd19809a5a520a477ab596f951bbde3209868ab16febbc246592e8aed20c3ca" + ) + version( + "2021-05-21", sha256="6a207b032e623b8be0196a42dcaf4311bfe45ede2e044bd47611b6610c04c61e" + ) + + variant("optimize", default=True, description="Build in optimized mode") + variant("debug", default=False, description="Build in debug mode") + variant("asan", default=False, description="Build with Address Sanitizer (ASAN)") + variant("mpi", default=True, description="Enable builtin MPI implementation MadMPI") + variant("pukabi", default=False, description="Build with PukABI") + variant("pioman", default=True, description="Build with pioman") + variant("fortran", default=True, description="Enable FORTRAN support in MadMPI") + variant("profile", default=False, description="Enable nmad stats & profiling") + variant("ibverbs", default=True, description="use InfiniBand ibverbs") + variant("psm", default=False, description="use Intel Performance Scaled Messaging (PSM)") + variant("psm2", default=False, description="use Intel Performance Scaled Messaging 2 (PSM2)") + variant("ofi", default=True, description="use OpenFabric Interface (libfabric)") + variant("ucx", default=True, description="use Unified Communication X Library (ucx)") + variant("craypmi", default=False, description="use Cray PMI support") + variant("pmix", default=True, description="use slurm PMIx support") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build", when="+fortran") + depends_on("pkgconfig", type="build") + depends_on("autoconf@2.69:", type="build") + depends_on("gmake", type="build") + + depends_on("hwloc") + depends_on("psm", when="+psm") + depends_on("opa-psm2", when="+psm2") + depends_on("libfabric", when="+ofi") + depends_on("cray-pmi", when="+craypmi") + depends_on("pmix", when="+pmix") + depends_on("ucx", when="+ucx") + requires("+pukabi", when="+ibverbs", msg="ibverbs rcache requires pukabi") + + for v in Puk.versions: + depends_on(f"puk@{v}", when=f"@{v}") + depends_on(f"pukabi@{v}", when=f"@{v} +pukabi") + depends_on(f"pioman@{v}", when=f"@{v} +pioman") + depends_on(f"padicotm@{v}", when=f"@{v}") + + depends_on("puk") + depends_on("puk+asan", when="+asan") + depends_on("pukabi+mem", when="+pukabi") + depends_on("pioman", when="+pioman") + depends_on("padicotm~pioman", when="~pioman", type=("build", "link", "run")) + depends_on("padicotm+pioman", when="+pioman", type=("build", "link", "run")) + depends_on("padicotm+ibverbs", when="+ibverbs") + depends_on("padicotm+psm", when="+psm") + depends_on("padicotm+psm2", when="+psm2") + depends_on("padicotm+ofi", when="+ofi") + depends_on("padicotm+craypmi", when="+craypmi") + depends_on("padicotm+pmix", when="+pmix") + depends_on("padicotm+pukabi", when="+pukabi") + depends_on("padicotm~pukabi", when="~pukabi") + + conflicts("platform=darwin", msg="Darwin is not supported.") + conflicts("platform=windows", msg="Windows is not supported.") + conflicts("%gcc@:5", msg="Requires at least gcc 6.") + conflicts("%gcc@14:", when="@:2024-07-12", msg="Older release do not support gcc >= 14") + conflicts("%clang", when="+fortran", msg="No FORTRAN support with clang.") + + provides("mpi", when="+mpi") + + configure_directory = "nmad" + build_directory = "build" + + def autoreconf(self, spec, prefix): + with working_dir(self.configure_directory): + Executable("./autogen.sh")() + + def configure_args(self): + config_args = [ + "--without-pukabi", # no pukabi for now in spack + "--disable-sampling", # sampling currently broken; don"t attempt to use it + "--with-padicotm", # always use PadicoTM + ] + config_args += self.enable_or_disable("optimize") + config_args += self.enable_or_disable("debug") + config_args += self.enable_or_disable("asan") + config_args += self.enable_or_disable("mpi") + config_args += self.enable_or_disable("fortran") + config_args += self.enable_or_disable("profile") + config_args += self.with_or_without("pukabi") + config_args += self.with_or_without("pioman") + config_args += self.with_or_without("ibverbs") + config_args += self.with_or_without("psm") + config_args += self.with_or_without("psm2") + config_args += self.with_or_without("ofi") + config_args += self.with_or_without("ucx") + config_args += self.with_or_without("ibverbs") + config_args += self.with_or_without("pmix") + config_args += self.with_or_without("pmi2", variant="craypmi") + return config_args + + def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + if "+mpi" in self.spec: + spack_env.set("MPICC", join_path(self.prefix.bin, "mpicc.madmpi")) + spack_env.set("MPICXX", join_path(self.prefix.bin, "mpicxx.madmpi")) + spack_env.set("MPIF77", join_path(self.prefix.bin, "mpif77.madmpi")) + spack_env.set("MPIF90", join_path(self.prefix.bin, "mpif90.madmpi")) + + def setup_dependent_package(self, module, dependent_spec): + if "+mpi" in self.spec: + self.spec.mpicc = join_path(self.prefix.bin, "mpicc.madmpi") + self.spec.mpicxx = join_path(self.prefix.bin, "mpicxx.madmpi") + self.spec.mpifc = join_path(self.prefix.bin, "mpif90.madmpi") + self.spec.mpif77 = join_path(self.prefix.bin, "mpif77.madmpi") diff --git a/repos/spack_repo/builtin/packages/nmap/package.py b/repos/spack_repo/builtin/packages/nmap/package.py deleted file mode 100644 index 365b557e7af..00000000000 --- a/repos/spack_repo/builtin/packages/nmap/package.py +++ /dev/null @@ -1,90 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage - -from spack.package import * - - -class Nmap(AutotoolsPackage): - """Nmap ("Network Mapper") is a free and open source (license) - utility for network discovery and security auditing. - It also provides ncat an updated nc""" - - homepage = "https://nmap.org" - url = "https://nmap.org/dist/nmap-7.70.tar.bz2" - list_url = "https://nmap.org/dist-old/" - - license("custom") - - version("7.93", sha256="55bcfe4793e25acc96ba4274d8c4228db550b8e8efd72004b38ec55a2dd16651") - version("7.92", sha256="a5479f2f8a6b0b2516767d2f7189c386c1dc858d997167d7ec5cfc798c7571a1") - version("7.91", sha256="18cc4b5070511c51eb243cdd2b0b30ff9b2c4dc4544c6312f75ce3a67a593300") - version("7.90", sha256="5557c3458275e8c43e1d0cfa5dad4e71dd39e091e2029a293891ad54098a40e8") - version("7.80", sha256="fcfa5a0e42099e12e4bf7a68ebe6fde05553383a682e816a7ec9256ab4773faa") - version("7.70", sha256="847b068955f792f4cc247593aca6dc3dc4aae12976169873247488de147a6e18") - version("7.60", sha256="a8796ecc4fa6c38aad6139d9515dc8113023a82e9d787e5a5fb5fa1b05516f21") - version("7.50", sha256="e9a96a8e02bfc9e80c617932acc61112c23089521ee7d6b1502ecf8e3b1674b2") - version("7.40", sha256="9e14665fffd054554d129d62c13ad95a7b5c7a046daa2290501909e65f4d3188") - version("7.31", sha256="cb9f4e03c0771c709cd47dc8fc6ac3421eadbdd313f0aae52276829290583842") - version("7.30", sha256="ba38a042ec67e315d903d28a4976b74999da94c646667c0c63f31e587d6d8d0f") - version("7.12", sha256="63df082a87c95a189865d37304357405160fc6333addcf5b84204c95e0539b04") - version("7.01", sha256="cf1fcd2643ba2ef52f47acb3c18e52fa12a4ae4b722804da0e54560704627705") - version("6.40", sha256="491f77d8b3fb3bb38ba4e3850011fe6fb43bbe197f9382b88cb59fa4e8f7a401") - version("6.01", sha256="77f6635b677d28b546cbef97e4ead6c2d4a5aebcaa108fe3a3c135db6448617a") - - variant("liblua", default=True, description="Enable lua (required by all of NSE)") - variant("ncat", default=True, description="Enable ncat") - variant("nping", default=True, description="Enable nping") - variant("nmap-update", default=False, description="Enable nmap-update") - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - # Release notes for 7.3: "Ensure Nmap builds with OpenSSL 3.0 using no - # deprecated API functions." - depends_on("openssl@3.0.7:", when="@7.93:") - - # previous verisons use a few deprecated openssl apis - depends_on("openssl@1.1:", when="@7.50:7.92") - depends_on("openssl@:1.0.9", when="@:7.49") - - # nmap vendors a few libraries, but we should build against spack's - # versions where appropriate. See their build guide at - # https://nmap.org/book/inst-source.html#inst-configure. Also see: - # https://github.com/nmap/nmap/issues/1602 - # - # Any that are included "for convenience" we should provide. - # - # The recursive builds for vendored dependencies is also broken on - # darwin (something races); using our own deps works around that issue. - # - # Specifically, something is touching libpcre/configure during the build, - # which causes the recursive `make`'s configure.status --recheck pass to - # attempt to rerun configure. Rerunning configure fails and asks you to run - # `make distclean`. - - depends_on("libssh2@1.10") - depends_on("pcre@8") - depends_on("zlib-api") - - def configure_args(self): - args = [] - - # https://github.com/nmap/nmap/issues/2144 - args.append("--disable-rdma") - - # ndiff and zenmap both require python2, which is deprecated in spack. - # The next nmap release will fix this, so, disable these features - # completely for now. We will add flags for these features again - # when they can be supported without a dependency on python2 - args.append("--disable-ndiff") - args.append("--disable-zenmap") - - args += self.with_or_without("liblua") - args += self.with_or_without("ncat") - args += self.with_or_without("nping") - args += self.with_or_without("nmap-update") - - return args diff --git a/repos/spack_repo/builtin/packages/node_js/package.py b/repos/spack_repo/builtin/packages/node_js/package.py index 55e42941c12..8e51a2d0b23 100644 --- a/repos/spack_repo/builtin/packages/node_js/package.py +++ b/repos/spack_repo/builtin/packages/node_js/package.py @@ -24,25 +24,45 @@ class NodeJs(Package): license("Unicode-TOU") # Current (latest features) - odd major number - version("21.7.3", sha256="ce1f61347671ef219d9c2925313d629d3fef98fc8d7f5ef38dd4656f7d0f58e7") - version("19.2.0", sha256="aac9d1a366fb57d68f4639f9204d1de5d6387656959a97ed929a5ba9e62c033a") - version("17.9.1", sha256="1102f5e0aafaab8014d19c6c57142caf2ba3ef69d88d7a7f0f82798051796027") - version("15.3.0", sha256="cadfa384a5f14591b84ce07a1afe529f28deb0d43366fb0ae4e78afba96bfaf2") - with default_args(deprecated=True): - # requires deprecated python versions - version( - "13.8.0", sha256="815b5e1b18114f35da89e4d98febeaba97555d51ef593bd5175db2b05f2e8be6" - ) - version( - "13.5.0", sha256="4b8078d896a7550d7ed399c1b4ac9043e9f883be404d9b337185c8d8479f2db8" - ) + version("25.9.0", sha256="d55d77187039d4cd85c732f76838f44e3be552054473459dfa9cc0eb611ea664") + version("25.2.1", sha256="1cbbdb66f99e0c41937eb8763c57e622eab43006742dc4d0856270b17215e376") + version( + "23.11.1", + sha256="75509306732090bfa99b004d097909315f7789badb4a495e82b5f17b6329247a", + deprecated=True, + ) + version( + "21.7.3", + sha256="ce1f61347671ef219d9c2925313d629d3fef98fc8d7f5ef38dd4656f7d0f58e7", + deprecated=True, + ) + version( + "19.2.0", + sha256="aac9d1a366fb57d68f4639f9204d1de5d6387656959a97ed929a5ba9e62c033a", + deprecated=True, + ) + version( + "17.9.1", + sha256="1102f5e0aafaab8014d19c6c57142caf2ba3ef69d88d7a7f0f82798051796027", + deprecated=True, + ) + version( + "15.3.0", + sha256="cadfa384a5f14591b84ce07a1afe529f28deb0d43366fb0ae4e78afba96bfaf2", + deprecated=True, + ) # LTS (recommended for most users) - even major number version( - "22.16.0", - sha256="108f250ff79cc103b464b3ef41fa60f4866e4e6c962117171adaac7325ebdab2", + "24.14.1", + sha256="8298cf1f5774093ca819f41b8dd392fd2cff058688b4d5c8805026352e2d31b3", preferred=True, ) + version("24.13.0", sha256="54cb58921b4ce2831c6690ee823a3d39cfbf2b75f4e556c4c2bde90f3d8fd1ca") + version("24.2.0", sha256="da739aedc45729436587cda9f063b28c1d881a32ba149b0a2f4e8aff55a18929") + version("22.22.2", sha256="f4b9606f33aef725a77b6292460102b48b80902571a8bb94cd769837ee0577df") + version("22.16.0", sha256="108f250ff79cc103b464b3ef41fa60f4866e4e6c962117171adaac7325ebdab2") + version("20.20.2", sha256="8cb85a81f75169eb811f7b2512cf17a646826430debbe016a7461f31e286fdef") version("20.18.3", sha256="eba088fa562735140b283c7bb33f53e026ccd5febe68c52c5737ef6e577ec874") version("20.18.2", sha256="cf3ef49fafbfee3cdcd936a0d6031341b73bfa6b26a484ea0a4936c26d24b829") version("20.18.1", sha256="5bad8ced873eef3b32e7daee703156bce9224920ac6044f4232f5393df0628b8") @@ -51,42 +71,31 @@ class NodeJs(Package): version("20.16.0", sha256="8f24bf9abe455a09ab30f9ae8edda1e945ed678a4b1c3b07ee0f901fdc0ff4fd") version("20.15.1", sha256="da228a0c27922f02001d9a781793696432096ab2da658eb77d7fc21693f4c5cb") version("20.15.0", sha256="01e2c034467a324a33e778c81f2808dff13d289eaa9307d3e9b06c171e4d932d") - version("18.12.1", sha256="ba8174dda00d5b90943f37c6a180a1d37c861d91e04a4cb38dc1c0c74981c186") - version("16.18.1", sha256="3d24c9c3a953afee43edc44569045eda56cd45cd58b0539922d17da62736189c") - version("14.21.1", sha256="76ba961536dc11e4dfd9b198c61ff3399e655eca959ae4b66d926f29bfcce9d3") - version("14.16.1", sha256="5f5080427abddde7f22fd2ba77cd2b8a1f86253277a1eec54bc98a202728ce80") - version("14.15.1", sha256="a1120472bf55aea745287693a6651e16973e1008c9d6107df350126adf9716fe") - with default_args(deprecated=True): - # https://github.com/nodejs/node/releases/tag/v22.15.1 - # https://github.com/advisories/GHSA-rrjv-57mm-j6cm - version( - "22.14.0", sha256="6c4e31ed5702dc45cfd8c435af56a36a474427e1bd7afe74c346136060beba8a" - ) - version( - "22.13.1", sha256="e7d5b1e84e7f3c3cebda81e2b138469eef41ba4ecf16a87fd15fc3f7afa3f701" - ) - version( - "22.13.0", sha256="38e15a1d0dd0e95c237bc4651d7c9930a78d3fe7954a7ee7693b403f2d879e46" - ) - version( - "22.12.0", sha256="3157e7c002b6e964bdbefb331ec38db1e2dceb064ab11c038275155461b22ce3" - ) - version( - "22.11.0", sha256="24e5130fa7bc1eaab218a0c9cb05e03168fa381bb9e3babddc6a11f655799222" - ) - version( - "22.4.0", sha256="b62cd83c9a57a11349883f89b1727a16e66c02eb6255a4bf32714ff5d93165f5" - ) - version( - "22.3.0", sha256="6326484853093ab6b8f361a267445f4a5bff469042cda11a3585497b13136b55" - ) - # requires deprecated python versions - version( - "14.13.0", sha256="8538b2e76aa06ee0e6eb1c118426c3c5ca53b2e49d66591738eacf76e89edd61" - ) - version( - "14.10.0", sha256="7e0d7a1aa23697415e3588a1ca4f1c47496e6c88b9cf37c66be90353d3e4ac3e" - ) + version( + "18.12.1", + sha256="ba8174dda00d5b90943f37c6a180a1d37c861d91e04a4cb38dc1c0c74981c186", + deprecated=True, + ) + version( + "16.18.1", + sha256="3d24c9c3a953afee43edc44569045eda56cd45cd58b0539922d17da62736189c", + deprecated=True, + ) + version( + "14.21.1", + sha256="76ba961536dc11e4dfd9b198c61ff3399e655eca959ae4b66d926f29bfcce9d3", + deprecated=True, + ) + version( + "14.16.1", + sha256="5f5080427abddde7f22fd2ba77cd2b8a1f86253277a1eec54bc98a202728ce80", + deprecated=True, + ) + version( + "14.15.1", + sha256="a1120472bf55aea745287693a6651e16973e1008c9d6107df350126adf9716fe", + deprecated=True, + ) variant("debug", default=False, description="Include debugger support") variant("doc", default=False, description="Compile with documentation") @@ -112,9 +121,8 @@ class NodeJs(Package): # python requirements are based according to # https://github.com/spack/spack/pull/47942#discussion_r1875624177 + # https://github.com/nodejs/node/blob/vX.Y.Z/configure depends_on("python", type="build") - depends_on("python@:3.7", when="@13.0.0:13.0.1", type="build") - depends_on("python@:3.8", when="@13.1.0:14.13.1", type="build") depends_on("python@:3.9", when="@14.14.0:14.18.1", type="build") depends_on("python@:3.10", when="@14.18.2:14.21.3", type="build") depends_on("python@:3.9", when="@15.0.0:15.14.0", type="build") @@ -127,10 +135,16 @@ class NodeJs(Package): depends_on("python@:3.10", when="@19.0.0:19.0.1", type="build") depends_on("python@:3.11", when="@19.1.0:20.10.0", type="build") depends_on("python@:3.12", when="@20.11.0:20.15.1", type="build") - depends_on("python@:3.13", when="@20.16.0:20.18.3", type="build") + depends_on("python@:3.13", when="@20.16.0:20.20.0", type="build") + depends_on("python@:3.14", when="@20.20.1:20.20.2", type="build") depends_on("python@:3.11", when="@21.0.0:21.1.0", type="build") depends_on("python@:3.12", when="@21.2.0:22.2.0", type="build") - depends_on("python@:3.13", when="@22.3.0:22.16.0", type="build") + depends_on("python@:3.13", when="@22.3.0:22.22.0", type="build") + depends_on("python@:3.14", when="@22.22.1:22.22.2", type="build") + depends_on("python@3.8:3.13", when="@23", type="build") + depends_on("python@3.9:3.13", when="@24.0.0:24.13.0", type="build") + depends_on("python@3.9:3.14", when="@24.13.1:24.15.0", type="build") + depends_on("python@3.9:3.14", when="@25", type="build") depends_on("libtool", type="build", when=sys.platform != "darwin") depends_on("pkgconfig", type="build") @@ -144,10 +158,15 @@ class NodeJs(Package): conflicts("%gcc@:10.0", when="@20:") conflicts("%gcc@:8.2", when="@16:") conflicts("%gcc@:6.2", when="@12:") + conflicts("%clang@:19.0", when="@25:") + conflicts("%apple-clang@:16", when="@24:") conflicts("%apple-clang@:11", when="@21:") conflicts("%apple-clang@:10", when="@16:") conflicts("%apple-clang@:9", when="@13:") + # https://github.com/nodejs/node/pull/56740 + conflicts("%gcc@15:", when="@20:20.18,22:22.13") + phases = ["configure", "build", "install"] # https://github.com/spack/spack/issues/19310 diff --git a/repos/spack_repo/builtin/packages/normaliz/package.py b/repos/spack_repo/builtin/packages/normaliz/package.py new file mode 100644 index 00000000000..82c7d5a2bdb --- /dev/null +++ b/repos/spack_repo/builtin/packages/normaliz/package.py @@ -0,0 +1,46 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Normaliz(AutotoolsPackage): + """Normaliz is an open-source tool for computations in discrete convex + geometry, including affine monoids, rational and algebraic cones, and + polyhedra. It supports tasks such as convex hulls, lattice point + enumeration, Hilbert bases, Ehrhart series, and Gröbner bases of lattice + and toric ideals. Normaliz provides both a command-line interface and a C++ + library (libnormaliz) for integrating its algorithms into other + software.""" + + homepage = "https://www.normaliz.uni-osnabrueck.de/" + url = "https://github.com/Normaliz/Normaliz/releases/download/v3.10.5/normaliz-3.10.5.tar.gz" + + maintainers("d-torrance") + + license("GPL-3.0-or-later", checked_by="d-torrance") + + version("3.11.1", sha256="9a00d590f0fdcad847e2189696d2842d97ed896ed36c22421874a364047f76e8") + version("3.11.0", sha256="14441981afce3546c1c0f12b490714da3564af7a60d12ac0a494f9d2382d1a01") + version("3.10.5", sha256="58492cfbfebb2ee5702969a03c3c73a2cebcbca2262823416ca36e7b77356a44") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("diffutils", type="build") + + depends_on("gmp") + + variant( + "nauty", + default=False, + description="Enable nauty support for computing automorphism groups", + ) + depends_on("nauty", when="+nauty") + + variant("flint", default=False, description="Enable flint support for algebraic polyhedra") + depends_on("flint", when="+flint") + + # TODO: cocoalib & e-antic variants diff --git a/repos/spack_repo/builtin/packages/npb/package.py b/repos/spack_repo/builtin/packages/npb/package.py index 29e0fad7de9..cdb731b5e19 100644 --- a/repos/spack_repo/builtin/packages/npb/package.py +++ b/repos/spack_repo/builtin/packages/npb/package.py @@ -35,6 +35,7 @@ class Npb(MakefilePackage): version("3.3.1", sha256="4a8ea679b1df69f583c544c47198b3c26a50ec2bb6f8f69aef66c04c9a747d2d") version("3.4.1", sha256="f3a43467da6e84a829ea869156d3ea86c17932136bb413a4b6dab23018a28881") + version("3.4.3", sha256="a97c03d7e87ab826fba79c754415a13632c5273877abad270c85201db0f86aeb") # Valid Benchmark Names valid_names = ( @@ -104,6 +105,13 @@ class Npb(MakefilePackage): # Cannot be built in parallel parallel = False + conflicts( + "implementation=serial", + when="@3.4:", + msg="The serial version of NPB is not supported from version 3.4." + "Use implementation=openmp or use a prior version.", + ) + @property def build_directory(self): if "implementation=mpi" in self.spec: diff --git a/repos/spack_repo/builtin/packages/npm/package.py b/repos/spack_repo/builtin/packages/npm/package.py index 445c5c4ad9d..c11211261fd 100644 --- a/repos/spack_repo/builtin/packages/npm/package.py +++ b/repos/spack_repo/builtin/packages/npm/package.py @@ -22,8 +22,10 @@ class Npm(Package): license("Artistic-2.0") + version("11.12.1", sha256="e679850e663b16f5f146ee425d0eb0e3442c1d2bda3d513bbfd7c81f5ee5db38") version("11.2.0", sha256="1a947c2f9f3bc8c227dd3d30c39338214598dd7da6b4771b7c735c56401d5fb8") version("11.1.0", sha256="0f144846f78cc0eb230b0e228f736d5c06362e4ea867c72f059790568454abb7") + version("10.9.8", sha256="3e68f9b5fcaf1a94ba0e37e6a565c920b2be6bd98998c50970385d6a692af780") version("10.9.2", sha256="5cd1e5ab971ea6333f910bc2d50700167c5ef4e66da279b2a3efc874c6b116e4") version("9.9.4", sha256="640bdd76a0b9d92e9da6e391abae75fd2f168478e416847f3acdb8373737e0ee") version("9.3.1", sha256="41caa26a340b0562bc5429d28792049c980fe3e872b42b82cad94e8f70e37f40") diff --git a/repos/spack_repo/builtin/packages/nq/package.py b/repos/spack_repo/builtin/packages/nq/package.py new file mode 100644 index 00000000000..44e44a35b34 --- /dev/null +++ b/repos/spack_repo/builtin/packages/nq/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.makefile import MakefilePackage + +from spack.package import * + + +class Nq(MakefilePackage): + """ + Small utilities allowing the creation of very lightweight job queue systems which + require no setup, maintenance, supervision, or any long-running processes. + """ + + homepage = "https://github.com/leahneukirchen/nq" + url = "https://github.com/leahneukirchen/nq/archive/v1.0.tar.gz" + + maintainers("ebagrenrut") + + license("CC0-1.0") + + version("1.0", sha256="d5b79a488a88f4e4d04184efa0bc116929baf9b34617af70d8debfb37f7431f4") + + depends_on("c", type="build") + + @property + def build_targets(self): + targets = [f"PREFIX={self.prefix}", "all"] + return targets + + @property + def install_targets(self): + targets = [f"PREFIX={self.prefix}", "install"] + return targets diff --git a/repos/spack_repo/builtin/packages/nseg/package.py b/repos/spack_repo/builtin/packages/nseg/package.py index 1d281032630..fdf2d5a5d44 100644 --- a/repos/spack_repo/builtin/packages/nseg/package.py +++ b/repos/spack_repo/builtin/packages/nseg/package.py @@ -19,47 +19,23 @@ class Nseg(MakefilePackage): expand=False, ) - resource( - name="makefile", - url="ftp://ftp.ncbi.nih.gov/pub/seg/nseg/makefile", - sha256="32937aef6969550ca3c762b5dd61b1520635cc46e773e35e56c5718f75838cee", - expand=False, - ) - - resource( - name="genwin.c", - url="ftp://ftp.ncbi.nih.gov/pub/seg/nseg/genwin.c", - sha256="d392d2db625dc8c90b00f2a86028a3a45d121e15eb403b51c2f9b01692ab10d9", - expand=False, - ) - - resource( - name="genwin.h", - url="ftp://ftp.ncbi.nih.gov/pub/seg/nseg/genwin.h", - sha256="1c701d87bf6200bfa40faa16fe665828a010727ef1aa0e8a1e5823605165fb86", - expand=False, - ) - - resource( - name="lnfac.h", - url="ftp://ftp.ncbi.nih.gov/pub/seg/nseg/lnfac.h", - sha256="5048e4f3dc3a7ea420d4eb4912a661f285634fbb205411b647b1f00c3fe3a0d2", - expand=False, - ) - - resource( - name="nmerge.c", - url="ftp://ftp.ncbi.nih.gov/pub/seg/nseg/nmerge.c", - sha256="c8a4bb4c960acf7fcd7509b635766b618efdab9f09aec36443040759eca3bce3", - expand=False, - ) - - resource( - name="runnseg", - url="ftp://ftp.ncbi.nih.gov/pub/seg/nseg/runnseg", - sha256="2830a5a1c5ea1a879cf3a415dfbb23db7a81e84d41698ddf765f2e1ef42e7c78", - expand=False, - ) + source_files = [ + ("makefile", "32937aef6969550ca3c762b5dd61b1520635cc46e773e35e56c5718f75838cee"), + ("genwin.c", "d392d2db625dc8c90b00f2a86028a3a45d121e15eb403b51c2f9b01692ab10d9"), + ("genwin.h", "1c701d87bf6200bfa40faa16fe665828a010727ef1aa0e8a1e5823605165fb86"), + ("lnfac.h", "5048e4f3dc3a7ea420d4eb4912a661f285634fbb205411b647b1f00c3fe3a0d2"), + ("nmerge.c", "c8a4bb4c960acf7fcd7509b635766b618efdab9f09aec36443040759eca3bce3"), + ("runnseg", "2830a5a1c5ea1a879cf3a415dfbb23db7a81e84d41698ddf765f2e1ef42e7c78"), + ] + + for source, sha256 in source_files: + resource( + name=source, + url=f"ftp://ftp.ncbi.nih.gov/pub/seg/nseg/{source}", + sha256=sha256, + expand=False, + placement=source, + ) build_directory = "nseg" @@ -72,11 +48,10 @@ def prepare_source(self): copy("nseg.c", join_path(self.build_directory, "nseg.c")) # move all of the single-file resources into the build dir - for key in self.resources: - for res in self.resources[key]: - res_name = res.name - res_path = join_path(res.fetcher.stage.source_path, res.name) - copy(res_path, join_path(self.build_directory, res_name)) + for source, _ in self.source_files: + src = "{0}/{1}/{2}".format(self.stage.source_path, source, source) + dest = "{0}/{1}".format(self.build_directory, source) + copy(src, dest) if self.spec.satisfies("%fj"): sfiles = ["genwin.c", "nseg.c"] diff --git a/repos/spack_repo/builtin/packages/nsjail/package.py b/repos/spack_repo/builtin/packages/nsjail/package.py new file mode 100644 index 00000000000..ffa88b03b1b --- /dev/null +++ b/repos/spack_repo/builtin/packages/nsjail/package.py @@ -0,0 +1,51 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.makefile import MakefilePackage + +from spack.package import * + + +class Nsjail(MakefilePackage): + """Process isolation tool for Linux using namespaces, resource limits, + and seccomp-bpf syscall filters. Provides sandboxing with cgroup + management, seccomp filtering via Kafel, and declarative protobuf + configuration.""" + + homepage = "https://nsjail.dev" + git = "https://github.com/google/nsjail.git" + + license("Apache-2.0") + + version("3.6", tag="3.6", commit="f78475530b46d0186111a9096b30725f816b55fe", submodules=True) + version("3.5", tag="3.5", commit="402e2b4c13c79731c632c2add4c3884dd1afc25f", submodules=True) + version("3.4", tag="3.4", commit="079d70dda4aa1edd9512cfd25ff1e47e316dc355", submodules=True) + version("3.3", tag="3.3", commit="c7c0adfffe79ebebfacca003f3cd8e27ef909185", submodules=True) + version("3.2", tag="3.2", commit="2e62649b4c98ff5de8f181b3d92fc241518c7435", submodules=True) + version("3.1", tag="3.1", commit="6483728e2490c1fc497a81bba5682515eb489cf8", submodules=True) + version("3.0", tag="3.0", commit="7de87aeb7d2f06c0e35efb60d2af58ae0bea7d4d", submodules=True) + + depends_on("c", type="build") + depends_on("cxx", type="build") + + # Build tools + depends_on("pkgconfig", type="build") + depends_on("bison", type="build") + depends_on("flex", type="build") + depends_on("autoconf", type="build") # needed by Kafel's build + depends_on("libtool", type="build") # needed by Kafel's build + + # Libraries + depends_on("protobuf") + depends_on("libnl") + + # Linux only — nsjail requires kernel namespace support + conflicts("platform=darwin", msg="nsjail requires Linux namespaces") + conflicts("platform=windows", msg="nsjail requires Linux namespaces") + + # nsjail 3.x requires C++20 + conflicts("%gcc@:9", msg="nsjail requires C++20 support") + + def install(self, spec, prefix): + make(f"PREFIX={prefix}", "install") diff --git a/repos/spack_repo/builtin/packages/nss/package.py b/repos/spack_repo/builtin/packages/nss/package.py index 38667b9bb4b..f244d1d155c 100644 --- a/repos/spack_repo/builtin/packages/nss/package.py +++ b/repos/spack_repo/builtin/packages/nss/package.py @@ -22,12 +22,6 @@ class Nss(MakefilePackage): version("3.87", sha256="68a1894496d3d158babc75f8a5dda3f55b7c1560573936e3b101a10fa4ac152d") version("3.75", sha256="fd571507827284644f4dd522a032acda2286835f6683ed22a1c2d3878cc58582") version("3.73", sha256="566d3a68da9b10d7da9ef84eb4fe182f8f04e20d85c55d1bf360bb2c0096d8e5") - # Everything before 3.73 is vulnerable (CVE-2021-43527) - version( - "3.67", - sha256="f6549a9148cd27b394b40c77fa73111d5ea23cdb51d796665de1b7458f88ce7f", - deprecated=True, - ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/ntl/package.py b/repos/spack_repo/builtin/packages/ntl/package.py index 11d86c4b38f..c55068c4a44 100644 --- a/repos/spack_repo/builtin/packages/ntl/package.py +++ b/repos/spack_repo/builtin/packages/ntl/package.py @@ -29,7 +29,10 @@ class Ntl(MakefilePackage): variant("shared", default=False, description="Build shared library.") - depends_on("cxx", type="build") # generated + depends_on("cxx", type="build") + + # need C compiler for compiling libtool when building shared library + depends_on("c", type="build", when="+shared") depends_on("gmp") diff --git a/repos/spack_repo/builtin/packages/ntpoly/package.py b/repos/spack_repo/builtin/packages/ntpoly/package.py index eabbc6b1baa..018a287981e 100644 --- a/repos/spack_repo/builtin/packages/ntpoly/package.py +++ b/repos/spack_repo/builtin/packages/ntpoly/package.py @@ -27,6 +27,7 @@ class Ntpoly(CMakePackage): variant("shared", default=True, description="Build shared libraries.") + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/numactl/package.py b/repos/spack_repo/builtin/packages/numactl/package.py index 5e457bbe56c..7847ebeaa0a 100644 --- a/repos/spack_repo/builtin/packages/numactl/package.py +++ b/repos/spack_repo/builtin/packages/numactl/package.py @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re + from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack.package import * @@ -13,10 +15,15 @@ class Numactl(AutotoolsPackage): homepage = "https://github.com/numactl/numactl" url = "https://github.com/numactl/numactl/archive/v2.0.11.tar.gz" + executables = [r"^numactl$"] + force_autoreconf = True license("LGPL-2.1-only") + maintainers("CodingYayaToure") + + version("2.0.19", sha256="8b84ffdebfa0d730fb2fc71bb7ec96bb2d38bf76fb67246fde416a68e04125e4") version("2.0.18", sha256="8cd6c13f3096e9c2293c1d732f56e2aa37a7ada1a98deed3fac7bd6da1aaaaf6") version("2.0.17", sha256="af22829cda8b5bdee3d280e61291697bbd3f9bd372afdf119c9348b88369d40b") version("2.0.16", sha256="a35c3bdb3efab5c65927e0de5703227760b1101f5e27ab741d8f32b3d5f0a44c") @@ -46,6 +53,12 @@ class Numactl(AutotoolsPackage): # Numerous errors when trying to build on darwin conflicts("platform=darwin") + @classmethod + def determine_version(cls, exe): + output = Executable(exe)("--version", output=str, error=str) + match = re.match(r"(\S+)", output) + return match.group(1) if match else None + def autoreconf(self, spec, prefix): Executable("./autogen.sh")() diff --git a/repos/spack_repo/builtin/packages/nvbandwidth/package.py b/repos/spack_repo/builtin/packages/nvbandwidth/package.py index d6a18f3d31b..adc230bdede 100644 --- a/repos/spack_repo/builtin/packages/nvbandwidth/package.py +++ b/repos/spack_repo/builtin/packages/nvbandwidth/package.py @@ -19,11 +19,23 @@ class Nvbandwidth(CMakePackage, CudaPackage): version("main", branch="main") + version( + "v0.9", + url="https://github.com/NVIDIA/nvbandwidth/archive/refs/tags/v0.9.tar.gz", + sha256="552e7b2595c4b95ab1da86ba002f239185d247b2fb9929ed3cb9dc7f57bcd67c", + preferred=True, + ) + + version( + "v0.8", + url="https://github.com/NVIDIA/nvbandwidth/archive/refs/tags/v0.8.tar.gz", + sha256="b3622945eb7fce2b4e1aea7d13de04f415f4d998db602893201a904320cf2d39", + ) + version( "v0.4", url="https://github.com/NVIDIA/nvbandwidth/archive/refs/tags/v0.4.tar.gz", sha256="c87eda04d5909d26c0d8756dd1a66ab048cf015dbb0d2719971dee182aa69212", - preferred=True, ) version( @@ -46,7 +58,9 @@ class Nvbandwidth(CMakePackage, CudaPackage): depends_on("cxx", type="build") # generated - depends_on("boost@1.66.0 +program_options") + depends_on("boost@1.66.0:+program_options") + + requires("+cuda") def install(self, spec, prefix): # We have no `make install` target, so move the files over explicitly diff --git a/repos/spack_repo/builtin/packages/nvcomp/package.py b/repos/spack_repo/builtin/packages/nvcomp/package.py index bdf8ce55242..37a8126bc1d 100644 --- a/repos/spack_repo/builtin/packages/nvcomp/package.py +++ b/repos/spack_repo/builtin/packages/nvcomp/package.py @@ -31,7 +31,8 @@ class Nvcomp(CMakePackage, CudaPackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("cuda") + # See https://github.com/spack/spack-packages/pull/2059#issuecomment-3443184517 for CUDA 13 + depends_on("cuda@:12.9") conflicts("~cuda") def cmake_args(self): diff --git a/repos/spack_repo/builtin/packages/nvhpc/package.py b/repos/spack_repo/builtin/packages/nvhpc/package.py index 4a4d7983768..4b647f1d667 100644 --- a/repos/spack_repo/builtin/packages/nvhpc/package.py +++ b/repos/spack_repo/builtin/packages/nvhpc/package.py @@ -23,6 +23,56 @@ # - package key must be in the form '{os}-{arch}' where 'os' is in the # format returned by platform.system() and 'arch' by platform.machine() _versions = { + "26.3": { + "Linux-aarch64": ( + "7f3ee2661609e2f3156d8d722e170ab30bc4e1d10b8123056ef4c69193313867", + "https://developer.download.nvidia.com/hpc-sdk/26.3/nvhpc_2026_263_Linux_aarch64_cuda_multi.tar.gz", + ), + "Linux-x86_64": ( + "05e2204d1100be25b7a24e6c0956d3d64b25e0813f315d1780b716b41e2cd005", + "https://developer.download.nvidia.com/hpc-sdk/26.3/nvhpc_2026_263_Linux_x86_64_cuda_multi.tar.gz", + ), + }, + "26.1": { + "Linux-aarch64": ( + "31e96aa7746e2a03b08e43bdc8b388c30955dd8bcbc756594b3f9955cbc3419e", + "https://developer.download.nvidia.com/hpc-sdk/26.1/nvhpc_2026_261_Linux_aarch64_cuda_multi.tar.gz", + ), + "Linux-x86_64": ( + "16400a28e21402dddf0b1699aa17df53f1017f738355d5fa0c273a35d9f0df06", + "https://developer.download.nvidia.com/hpc-sdk/26.1/nvhpc_2026_261_Linux_x86_64_cuda_multi.tar.gz", + ), + }, + "25.11": { + "Linux-aarch64": ( + "53f056b521d13fcb378a2ed366af2921c1dc7bb03dd8c2d90789e1f296e93765", + "https://developer.download.nvidia.com/hpc-sdk/25.11/nvhpc_2025_2511_Linux_aarch64_cuda_multi.tar.gz", + ), + "Linux-x86_64": ( + "9970c6e443e7a4a442601e6f1685feb4a8271bc2e84769c225e9a76f4e7133e7", + "https://developer.download.nvidia.com/hpc-sdk/25.11/nvhpc_2025_2511_Linux_x86_64_cuda_multi.tar.gz", + ), + }, + "25.9": { + "Linux-aarch64": ( + "c50f5cef29a3d535605409effab26c45bb36ba237968565856f733d7b733b514", + "https://developer.download.nvidia.com/hpc-sdk/25.9/nvhpc_2025_259_Linux_aarch64_cuda_multi.tar.gz", + ), + "Linux-x86_64": ( + "382e50122119a7aff4cfb3e3180342d02e09a9e47beaaac66441ff843f89077d", + "https://developer.download.nvidia.com/hpc-sdk/25.9/nvhpc_2025_259_Linux_x86_64_cuda_multi.tar.gz", + ), + }, + "25.7": { + "Linux-aarch64": ( + "fe8c8f24592e6ccf716bb402b3924bf88238e2b3b6752dd7555afcb7d5a5df72", + "https://developer.download.nvidia.com/hpc-sdk/25.7/nvhpc_2025_257_Linux_aarch64_cuda_multi.tar.gz", + ), + "Linux-x86_64": ( + "793521410a1937ecd2e031c3e10842dffc001fdac6658806348c3caf51f8a9f2", + "https://developer.download.nvidia.com/hpc-sdk/25.7/nvhpc_2025_257_Linux_x86_64_cuda_multi.tar.gz", + ), + }, "25.5": { "Linux-aarch64": ( "a1aa824bfdfe0c3541b233fc520757824bbcddbbb3fdf2524fdd15f2feb28347", @@ -478,8 +528,7 @@ class Nvhpc(Package, CompilerPackage): default="single", values=("single", "network"), multi=False, - description="Network installs are for installations shared " - "by different operating systems", + description="Network installs are for installations shared by different operating systems", ) variant("lapack", default=True, description="Enable LAPACK") variant("mpi", default=False, description="Enable MPI") @@ -623,10 +672,15 @@ def setup_dependent_build_environment( env.prepend_path("LD_LIBRARY_PATH", mpi_prefix.lib) - env.set("OMPI_CC", spack_cc) - env.set("OMPI_CXX", spack_cxx) - env.set("OMPI_FC", spack_fc) - env.set("OMPI_F77", spack_f77) + dependent_module = dependent_spec.package.module + for var_name, attr_name in ( + ("OMPI_CC", "spack_cc"), + ("OMPI_CXX", "spack_cxx"), + ("OMPI_FC", "spack_fc"), + ("OMPI_F77", "spack_f77"), + ): + if hasattr(dependent_module, attr_name): + env.set(var_name, getattr(dependent_module, attr_name)) def setup_dependent_package(self, module, dependent_spec): if "+mpi" in self.spec or self.provides("mpi"): diff --git a/repos/spack_repo/builtin/packages/nvidia_container_toolkit/package.py b/repos/spack_repo/builtin/packages/nvidia_container_toolkit/package.py new file mode 100644 index 00000000000..fc6a7584b1a --- /dev/null +++ b/repos/spack_repo/builtin/packages/nvidia_container_toolkit/package.py @@ -0,0 +1,53 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import platform +import shutil +from glob import glob + +from spack_repo.builtin.build_systems.generic import Package + +from spack.package import * + +_versions = { + "1.17.6": { + "Linux-aarch64": ( + "b43c34d357a6cf73b01178c627c551d2b1952fd2a7fb506f81286914f49f1a03", + "https://github.com/NVIDIA/nvidia-container-toolkit/releases/download/v1.17.6/nvidia-container-toolkit_1.17.6_rpm_aarch64.tar.gz", + ), + "Linux-x86_64": ( + "e4b40e52035b56eb6aa5916006d4ade798be8cbdaec94ea83ae38cb010348eaf", + "https://github.com/NVIDIA/nvidia-container-toolkit/releases/download/v1.17.6/nvidia-container-toolkit_1.17.6_rpm_x86_64.tar.gz", + ), + } +} + + +class NvidiaContainerToolkit(Package): + """NVIDIA Container Toolkit is a package for enabling GPU access within containers""" + + maintainers("scothalverson") + license("NVIDIA Software License Agreement") + + # Used to unpack the source RPM archives. + depends_on("libarchive programs='bsdtar'", type="build") + + for ver, packages in _versions.items(): + key = "{0}-{1}".format(platform.system(), platform.machine()) + pkg = packages.get(key) + if pkg: + version(ver, sha256=pkg[0], url=pkg[1], expand=False) + + def install(self, spec, prefix): + bsdtar = which("bsdtar", required=True) + tar_file = glob(join_path(self.stage.source_path, "nvidia-container-toolkit*.tar.gz"))[0] + tar_params = ["-x", "-f", tar_file] + bsdtar(*tar_params) + rpm_files = glob(join_path(self.stage.source_path, "release-*/packages/centos7/*/*.rpm")) + for rpm_file in rpm_files: + rpm_params = ["-x", "-f", rpm_file] + bsdtar(*rpm_params) + + for directory in ["bin", "include", "lib", "lib64", "share"]: + shutil.copytree(self.stage.source_path + "/usr/" + directory, prefix + "/" + directory) diff --git a/repos/spack_repo/builtin/packages/nvidia_nsight_systems/package.py b/repos/spack_repo/builtin/packages/nvidia_nsight_systems/package.py index d21723af858..4b86c4c9fbe 100644 --- a/repos/spack_repo/builtin/packages/nvidia_nsight_systems/package.py +++ b/repos/spack_repo/builtin/packages/nvidia_nsight_systems/package.py @@ -58,11 +58,15 @@ class NvidiaNsightSystems(Package): homepage = "https://developer.nvidia.com/nsight-systems" url = "https://developer.download.nvidia.com/devtools/repos/" - maintainers("scothalverson") - license("NVIDIA Software License Agreement") executables = ["^nsys$"] + maintainers("scothalverson") + + license("NVIDIA Software License Agreement", checked_by="alecbcs") + + redistribute(source=False, binary=False) + # Used to unpack the source RPM archives. depends_on("libarchive programs='bsdtar'", type="build") @@ -82,7 +86,7 @@ def determine_version(cls, exe): return match.group(1) if match else None def install(self, spec, prefix): - bsdtar = which("bsdtar") + bsdtar = which("bsdtar", required=True) rpm_file = glob(join_path(self.stage.source_path, "nsight-systems*.rpm"))[0] params = ["-x", "-f", rpm_file] ver = prefix.split("/")[-1].split("-")[-2] @@ -106,23 +110,23 @@ def install(self, spec, prefix): shutil.copytree(join_path(base_path, ver, sd), join_path(prefix, sd)) os.mkdir(join_path(prefix, "bin")) if arch == "aarch64": - os.symlink( + symlink( join_path(prefix, "host-linux-armv8", "nsys-ui"), join_path(prefix, "bin", "nsys-ui"), ) - os.symlink( + symlink( join_path(prefix, "target-linux-sbsa-armv8", "nsys"), join_path(prefix, "bin", "nsys"), ) elif arch == "ppc64le": # `nsys-ui` is missing in the PowerPC version of the package. - os.symlink( + symlink( join_path(prefix, "target-linux-ppc64le", "nsys"), join_path(prefix, "bin", "nsys") ) elif arch == "x86_64": - os.symlink( + symlink( join_path(prefix, "host-linux-x64", "nsys-ui"), join_path(prefix, "bin", "nsys-ui") ) - os.symlink( + symlink( join_path(prefix, "target-linux-x64", "nsys"), join_path(prefix, "bin", "nsys") ) diff --git a/repos/spack_repo/builtin/packages/nvpl_blas/package.py b/repos/spack_repo/builtin/packages/nvpl_blas/package.py index 40a5a90e169..f16ea292f41 100644 --- a/repos/spack_repo/builtin/packages/nvpl_blas/package.py +++ b/repos/spack_repo/builtin/packages/nvpl_blas/package.py @@ -40,12 +40,11 @@ class NvplBlas(Package): ) requires("target=armv8.2a:", msg="Any CPU with Arm-v8.2a+ microarch") + requires("platform=linux", msg="Precompiled binary requires Linux") conflicts("%gcc@:7") conflicts("%clang@:13") - conflicts("threads=openmp", when="%clang") - def url_for_version(self, version): url = "https://developer.download.nvidia.com/compute/nvpl/redist/nvpl_blas/linux-sbsa/nvpl_blas-linux-sbsa-{0}-archive.tar.xz" return url.format(version) 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_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/nvshmem/package.py b/repos/spack_repo/builtin/packages/nvshmem/package.py index bb7d6c3ce15..64956f43734 100644 --- a/repos/spack_repo/builtin/packages/nvshmem/package.py +++ b/repos/spack_repo/builtin/packages/nvshmem/package.py @@ -2,13 +2,15 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems import cmake, makefile +from spack_repo.builtin.build_systems.cmake import CMakePackage, generator +from spack_repo.builtin.build_systems.cuda import CudaPackage, conflicts from spack_repo.builtin.build_systems.makefile import MakefilePackage from spack.package import * -class Nvshmem(MakefilePackage, CudaPackage): +class Nvshmem(MakefilePackage, CMakePackage, CudaPackage): """NVSHMEM is a parallel programming interface based on OpenSHMEM that provides efficient and scalable communication for NVIDIA GPU clusters. NVSHMEM creates a global address space for data that spans @@ -22,6 +24,11 @@ class Nvshmem(MakefilePackage, CudaPackage): license("BSD-3-Clause-Open-MPI") + version("3.4.5", sha256="40c1d4c255dd7395e04df41b181c4afdf2e0724c06b6fabde58bf2f8f532b0e5") + version("3.3.24", sha256="3210e6ed0f010991af3c9f31266b4149a15bc1d560f98951c234f25e2076507e") + version("3.3.20", sha256="96ec9620e82ec90de92c7d61a7ba03c0eba05075bf10e1fc4a066d45e7f7d21f") + version("3.3.9", sha256="ba41e9ad6650cf99c1a60a3e47c19d1d97d814add7d35ea72337520ae13eeb59") + version("3.2.5-1", sha256="eb2c8fb3b7084c2db86bd9fd905387909f1dfd483e7b45f7b3c3d5fcf5374b5a") version("2.7.0-6", sha256="23ed9b0187104dc87d5d2bc1394b6f5ff29e8c19138dc019d940b109ede699df") version("2.6.0-1", sha256="fc0e8de61b034f3a079dc231b1d0955e665a9f57b5013ee98b6743647bd60417") version("2.5.0-19", sha256="dd800b40f1d296e1d3ed2a9885adcfe745c3e57582bc809860e87bd32abcdc60") @@ -30,6 +37,12 @@ class Nvshmem(MakefilePackage, CudaPackage): version("2.1.2-0", sha256="367211808df99b4575fb901977d9f4347065c61a26642d65887f24d60342a4ec") version("2.0.3-0", sha256="20da93e8508511e21aaab1863cb4c372a3bec02307b932144a7d757ea5a1bad2") + build_system( + conditional("cmake", when="@2.9.0:"), + conditional("makefile", when="@:2.11"), + default="cmake", + ) + variant("cuda", default=True, description="Build with CUDA") variant("ucx", default=True, description="Build with UCX support") variant("nccl", default=True, description="Build with NCCL support") @@ -42,22 +55,86 @@ class Nvshmem(MakefilePackage, CudaPackage): when="@2.6:", description="Build with support for GPU initiated communication", ) - conflicts("~cuda") + variant("libfabric", default=False, description="Build with Libfabric support") + + generator("ninja") + + conflicts("~cuda", msg="NVSHMEM requires CUDA") def url_for_version(self, version): ver_str = "{0}".format(version) directory = ver_str.split("-")[0] - url_fmt = "https://developer.download.nvidia.com/compute/redist/nvshmem/{0}/source/nvshmem_src_{1}.txz" + if version < Version("3.3.9"): + url_fmt = "https://developer.download.nvidia.com/compute/redist/nvshmem/{0}/source/nvshmem_src_{1}.txz" + else: + url_fmt = "https://developer.download.nvidia.com/compute/redist/nvshmem/{0}/source/nvshmem_src_cuda12-all-all-{0}.tar.gz" return url_fmt.format(directory, version) - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cuda@11:", when="@3.2.5:") + + with default_args(when="build_system=cmake", type="build"): + depends_on("cmake@3.19:") + depends_on("ninja") depends_on("mpi", when="+mpi") + depends_on("ucx", when="+ucx") + depends_on("ucx@1.10:", when="@3: +ucx") + depends_on("gdrcopy", when="+gdrcopy") + conflicts("~gdrcopy", when="~ucx") + depends_on("gdrcopy@2:", when="@3: +gdrcopy") + depends_on("nccl", when="+nccl") + depends_on("nccl@2:", when="@3: +nccl") + + depends_on("libfabric", when="+libfabric") + depends_on("libfabric@1.15:", when="@3: +libfabric") + + +class CMakeBuilder(cmake.CMakeBuilder): + def cmake_args(self): + config = [ + self.define("CMAKE_CUDA_ARCHITECTURES", self.spec.variants["cuda_arch"].values), + self.define_from_variant("NVSHMEM_MPI_SUPPORT", "mpi"), + self.define_from_variant("NVSHMEM_LIBFABRIC_SUPPORT", "libfabric"), + self.define_from_variant("NVSHMEM_UCX_SUPPORT", "ucx"), + self.define_from_variant("NVSHMEM_USE_NCCL", "nccl"), + self.define_from_variant("NVSHMEM_USE_GDRCOPY", "gdrcopy"), + self.define_from_variant("NVSHMEM_SHMEM_SUPPORT", "shmem"), + self.define("NVSHMEM_IBRC_SUPPORT", False), + self.define("NVSHMEM_BUILD_PYTHON_LIB", False), + self.define("NVSHMEM_BUILD_EXAMPLES", False), + self.define("NVSHMEM_BUILD_HYDRA_LAUNCHER", False), + self.define("NVSHMEM_BUILD_TESTS", False), + self.define("NVSHMEM_BUILD_TXZ_PACKAGE", False), + ] + + if "+mpi" in self.spec: + config.append(self.define("MPI_HOME", self.spec["mpi"].prefix)) + + if "+libfabric" in self.spec: + config.append(self.define("LIBFABRIC_HOME", self.spec["libfabric"].prefix)) + + if "+ucx" in self.spec: + config.append(self.define("UCX_HOME", self.spec["ucx"].prefix)) + + if "+nccl" in self.spec: + config.append(self.define("NCCL_HOME", self.spec["nccl"].prefix)) + + if "+gdrcopy" in self.spec: + config.append(self.define("GDRCOPY_HOME", self.spec["gdrcopy"].prefix)) + + if "+shmem" in self.spec: + config.append(self.define("SHMEM_HOME", self.spec["shmem"].prefix)) + + return config + +class MakeBuilder(makefile.MakefileBuilder): def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("CUDA_HOME", self.spec["cuda"].prefix) env.set("NVSHMEM_PREFIX", self.prefix) diff --git a/repos/spack_repo/builtin/packages/nvtx/package.py b/repos/spack_repo/builtin/packages/nvtx/package.py index c6ec6df3b59..eeb83536a4f 100644 --- a/repos/spack_repo/builtin/packages/nvtx/package.py +++ b/repos/spack_repo/builtin/packages/nvtx/package.py @@ -19,10 +19,13 @@ class Nvtx(Package, PythonExtension): license("Apache-2.0") version("develop", branch="dev") + version("3.4.0", sha256="99a3e97d7fe90d5195e87256492bf9cd42476d72cbc79ba477011a2384b88f92") + version("3.3.0", sha256="67d0cda2f9d19a89684592dab40c0bf2c2b13d5d588e51392076c0890a64b6c0") + version("3.2.1", sha256="737c3035f0e43a2252e7cd94c3f26e11e169f624236efe31794f044ce44a70af") version("3.1.0", sha256="dc4e4a227d04d3da46ad920dfee5f7599ac8d6b2ee1809c9067110fb1cc71ced") depends_on("c", type="build") - depends_on("cxx", type="build") # generated + depends_on("cxx", type="build") variant("python", default=True, description="Install Python bindings.") extends("python", when="+python") diff --git a/repos/spack_repo/builtin/packages/nwchem/package.py b/repos/spack_repo/builtin/packages/nwchem/package.py index ba346ad9ab6..bdbeea799b7 100644 --- a/repos/spack_repo/builtin/packages/nwchem/package.py +++ b/repos/spack_repo/builtin/packages/nwchem/package.py @@ -23,12 +23,22 @@ class Nwchem(Package): version("master", branch="master") + version( + "7.3.1", + sha256="d5d6055eadada2288aa35d32bb42b43ff45d60cfab96cb96ce576553d584a4e8", + url="https://github.com/nwchemgit/nwchem/releases/download/v7.3.1-release/nwchem-7.3.1-release.revision-23c3b41b-srconly.2025-11-06.tar.bz2", + ) + + version( + "7.3.0", + sha256="5498aad0d6cee5b94335a6f31f05313c2d45325060cb8f38edd38c4496df50e8", + url="https://github.com/nwchemgit/nwchem/releases/download/v7.3.0-release/nwchem-7.3.0-release.revision-e60d3d90-srconly.2025-10-24.tar.bz2", + ) version( "7.2.3", sha256="8cb4ec065215bc0316d8e01f67f1674a572f7d0f565c52e4a327975c04ddb6eb", url="https://github.com/nwchemgit/nwchem/releases/download/v7.2.3-release/nwchem-7.2.3-release.revision-d690e065-srconly.2024-08-27.tar.bz2", ) - version( "7.2.2", sha256="6b68e9c12eec38c09d92472bdd1ff130b93c1b5e1f65e4702aa7ee36c80e4af7", @@ -240,7 +250,7 @@ def install(self, spec, prefix): install_tree(join_path("nwpw", "libraryps"), join_path(share_path, "libraryps")) b_path = join_path(self.stage.source_path, "bin", target, "nwchem") - chmod = which("chmod") + chmod = which("chmod", required=True) chmod("+x", b_path) install(b_path, prefix.bin) @@ -257,9 +267,7 @@ def install(self, spec, prefix): spce {data}/solvents/spce.rst charmm_s {data}/charmm_s/ charmm_x {data}/charmm_x/ -""".format( - data=share_path - ) +""".format(data=share_path) with open(".nwchemrc", "w") as f: f.write(nwchemrc) install(".nwchemrc", share_path) diff --git a/repos/spack_repo/builtin/packages/oc/package.py b/repos/spack_repo/builtin/packages/oc/package.py new file mode 100644 index 00000000000..b0c29f079ad --- /dev/null +++ b/repos/spack_repo/builtin/packages/oc/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.go import GoPackage + +from spack.package import * + + +class Oc(GoPackage): + """The OpenShift Command Line, part of OKD.""" + + homepage = "https://okd.io" + git = "https://github.com/openshift/oc.git" + + maintainers("alecbcs") + + license("Apache-2.0") + + version("main", branch="main") + version("4.21.0-202601121715", commit="345800dc3c4164fbca313c1cbfb383f262547903") + + variant("gssapi", default=False, description="Enable GSSAPI authentication support") + + depends_on("c", type="build") + depends_on("go@1.22.5:", type="build", when="@4.20:") + + depends_on("gnupg") + depends_on("libassuan") + + depends_on("krb5", when="+gssapi") + + build_directory = "cmd/oc" + cgo_enabled = True + + @property + def build_args(self): + tags = ["include_gcs", "include_oss", "containers_image_openpgp"] + + if self.spec.satisfies("+gssapi"): + tags.append("gssapi") + + return ["-tags", " ".join(tags)] diff --git a/repos/spack_repo/builtin/packages/ocaml/package.py b/repos/spack_repo/builtin/packages/ocaml/package.py index bad0f3ab98c..1026037d42a 100644 --- a/repos/spack_repo/builtin/packages/ocaml/package.py +++ b/repos/spack_repo/builtin/packages/ocaml/package.py @@ -15,11 +15,13 @@ class Ocaml(Package): url = "https://caml.inria.fr/pub/distrib/ocaml-4.06/ocaml-4.06.0.tar.gz" maintainers("scemama") + version("5.4.0", sha256="6fcf1b192e389e54c4f5cb51306ab2baee2a54a25b1770366de5a8b42695996e") version("5.2.1", sha256="2d0f8090951a97a2c0e5b8a11e90096c0e1791d2e471e4a67f87e3b974044cd0") version("5.2.0", sha256="3a7b5fb6d81bb42bbda84aadf5d84ff8bcbb149988087e7863bf5c2f4b27b187") version("5.1.1", sha256="33b8c1df88700ba1f5123aa4bdbc7a125482feafc77e5081ef1725fddf290be1") version("5.1.0", sha256="5e91492d87b193728a0729122b679039c73e75820dcf2724a31b262390d210c2") version("5.0.0", sha256="969e1f7939736d39f2af533cd12cc64b05f060dbed087d7b760ee2503bfe56de") + version("4.14.3", sha256="b9b5b3bef697cfd35c7ea3f3563c4cf6755531f922fef7ba112a1525cd32781b") version("4.14.2", sha256="93b4f3ba39d559a963fc10744563b4c6e92e9ffb540ce89e5c5ebf76086b99f3") version("4.13.1", sha256="66a5353c5e7b33a8981446e857657aad45a3b82080ea5c67d4baa434eacfcf5f") version("4.12.0", sha256="9825e5903b852a7a5edb71a1ed68f5d5d55d6417e2dda514dda602bc6efeed7b") diff --git a/repos/spack_repo/builtin/packages/ocamlbuild/package.py b/repos/spack_repo/builtin/packages/ocamlbuild/package.py index 821846069a3..1dff0188f09 100644 --- a/repos/spack_repo/builtin/packages/ocamlbuild/package.py +++ b/repos/spack_repo/builtin/packages/ocamlbuild/package.py @@ -22,6 +22,7 @@ class Ocamlbuild(MakefilePackage): # Add proper versions here. version("master", branch="master") + version("0.16.1", sha256="2ba6857f2991b7f69368e8db818b163d31cf5a367f15f5953bf8f01a77b3d4fc") version("0.15.0", sha256="d3f6ee73100b575d4810247d10ed8f53fccef4e90daf0e4a4c5f3e6a3030a9c9") version("0.14.3", sha256="ce151bfd2141abc6ee0b3f25ba609e989ff564a48bf795d6fa7138a4db0fc2e1") version("0.14.2", sha256="62d2dab6037794c702a83ac584a7066d018cf1645370d1f3d5764c2b458791b1") diff --git a/repos/spack_repo/builtin/packages/occa/package.py b/repos/spack_repo/builtin/packages/occa/package.py index 785f0b6dbe0..2f4aafcfccd 100644 --- a/repos/spack_repo/builtin/packages/occa/package.py +++ b/repos/spack_repo/builtin/packages/occa/package.py @@ -18,6 +18,7 @@ class Occa(Package): """ homepage = "https://libocca.org" + url = "https://github.com/libocca/occa/archive/refs/tags/v1.3.0.tar.gz" git = "https://github.com/libocca/occa.git" maintainers("v-dobrev", "dmed256") @@ -25,6 +26,11 @@ class Occa(Package): license("MIT") version("develop") + version("2.0.0", sha256="f2521901fed5d199193d54c7db4186479a974bdae92ac97779c47fa2bb68badd") + version("1.6.0", sha256="b863a24171000097121aff5c43dadf22416c143824598a51c653689fd917794f") + version("1.5.0", sha256="b939f826f3e970b45aa77089568995399355fcdad3bc787b60cf73eb4962b0b7") + version("1.4.0", sha256="5995288615f45dd2cf2f3e13b9e04c3b89edde1e014d36c6da014c11b9adb4a7") + version("1.3.0", sha256="1a1214f268969fcb36555c2e3d6ff348a7d2776c4061d4e1a4b01e56f654327f") version("1.2.0", tag="v1.2.0", commit="18379073b6497f677a20bfeced95b511f82c3355") version("1.1.0", tag="v1.1.0", commit="c8a587666a23e045f25dc871c3257364a5f6a7d5") version("1.0.9", tag="v1.0.9", commit="ebdb659c804f91f1e0f32fd700f9fe229458033c") @@ -49,6 +55,14 @@ class Occa(Package): conflicts("%gcc@6:", when="^cuda@:8") conflicts("%gcc@7:", when="^cuda@:9") + # add missing header + # https://github.com/libocca/occa/pull/684 + patch( + "https://patch-diff.githubusercontent.com/raw/libocca/occa/pull/684.diff?full_index=1", + sha256="0acd861f5e3791cbc223efa3004077aef9fc9ae4c39541212b5451fb954fbcb9", + when="@1.2.0:1.5.0", + ) + def install(self, spec, prefix): # The build environment is set by the 'setup_build_environment' method. # Copy the source to the installation directory and build OCCA there. diff --git a/repos/spack_repo/builtin/packages/oce/null.patch b/repos/spack_repo/builtin/packages/oce/null.patch deleted file mode 100644 index 42a3f0e44f3..00000000000 --- a/repos/spack_repo/builtin/packages/oce/null.patch +++ /dev/null @@ -1,482 +0,0 @@ -From 61cb965b9ffeca419005bc15e635e67589c421dd Mon Sep 17 00:00:00 2001 -From: Martin Siggel -Date: Thu, 28 Jan 2016 19:05:00 +0100 -Subject: [PATCH] Workaround clang optimizations for null references - -OCCT/OCE includes some evil code that uses NULL references, -which are normally not possible. Clang removes code in -branches like if(&myNullRef==NULL) as it assumes this can -never be true. This fix was inspired from the mantis issue -http://tracker.dev.opencascade.org/view.php?id=26042. This -code will be fixed in OCCT 7, but we might require the fix -for earlier releases as well. - -Fixes issue #576 ---- - inc/PLib.hxx | 2 +- - src/BSplCLib/BSplCLib.cxx | 16 ++++++------- - src/BSplCLib/BSplCLib_2.cxx | 6 ++--- - src/BSplCLib/BSplCLib_CurveComputation.gxx | 26 ++++++++++----------- - src/BSplSLib/BSplSLib.cxx | 36 +++++++++++++++--------------- - src/BSplSLib/BSplSLib_BzSyntaxes.cxx | 2 +- - src/PLib/PLib.cxx | 10 ++++----- - 7 files changed, 49 insertions(+), 49 deletions(-) - -diff --git a/inc/PLib.hxx b/inc/PLib.hxx -index 7513234..52b1f84 100644 ---- a/inc/PLib.hxx -+++ b/inc/PLib.hxx -@@ -343,6 +343,6 @@ friend class PLib_DoubleJacobiPolynomial; - - - -- -+#define IS_NULL_REF(ref) ((reinterpret_cast(&ref) & 0xFFFFFF) == 0) - - #endif // _PLib_HeaderFile -diff --git a/src/BSplCLib/BSplCLib.cxx b/src/BSplCLib/BSplCLib.cxx -index 683e4ab..2a2d9ea 100644 ---- a/src/BSplCLib/BSplCLib.cxx -+++ b/src/BSplCLib/BSplCLib.cxx -@@ -298,7 +298,7 @@ void BSplCLib::LocateParameter - Standard_Real& NewU) - { - Standard_Integer first,last; -- if (&Mults) { -+ if (!IS_NULL_REF(Mults)) { - if (Periodic) { - first = Knots.Lower(); - last = Knots.Upper(); -@@ -1434,7 +1434,7 @@ void BSplCLib::BuildKnots(const Standard_Integer Degree, - const Standard_Real * pkn = &Knots(KLower); - pkn -= KLower; - Standard_Real *knot = &LK; -- if (&Mults == NULL) { -+ if (IS_NULL_REF(Mults)) { - switch (Degree) { - case 1 : { - Standard_Integer j = Index ; -@@ -1672,7 +1672,7 @@ Standard_Boolean BSplCLib::PrepareInsertKnots - const Standard_Real Tolerance, - const Standard_Boolean Add) - { -- Standard_Boolean addflat = &AddMults == NULL; -+ Standard_Boolean addflat = IS_NULL_REF(AddMults); - - Standard_Integer first,last; - if (Periodic) { -@@ -1856,7 +1856,7 @@ void BSplCLib::InsertKnots - const Standard_Real Tolerance, - const Standard_Boolean Add) - { -- Standard_Boolean addflat = &AddMults == NULL; -+ Standard_Boolean addflat = IS_NULL_REF(AddMults); - - Standard_Integer i,k,mult,firstmult; - Standard_Integer index,kn,curnk,curk; -@@ -3902,7 +3902,7 @@ void BSplCLib::Resolution( Standard_Real& Poles, - num_poles = FlatKnots.Length() - Deg1; - switch (ArrayDimension) { - case 2 : { -- if (&Weights != NULL) { -+ if (!IS_NULL_REF(Weights)) { - const Standard_Real * WG = &Weights(Weights.Lower()); - min_weights = WG[0]; - -@@ -3970,7 +3970,7 @@ void BSplCLib::Resolution( Standard_Real& Poles, - break; - } - case 3 : { -- if (&Weights != NULL) { -+ if (!IS_NULL_REF(Weights)) { - const Standard_Real * WG = &Weights(Weights.Lower()); - min_weights = WG[0]; - -@@ -4047,7 +4047,7 @@ void BSplCLib::Resolution( Standard_Real& Poles, - break; - } - case 4 : { -- if (&Weights != NULL) { -+ if (!IS_NULL_REF(Weights)) { - const Standard_Real * WG = &Weights(Weights.Lower()); - min_weights = WG[0]; - -@@ -4134,7 +4134,7 @@ void BSplCLib::Resolution( Standard_Real& Poles, - } - default : { - Standard_Integer kk; -- if (&Weights != NULL) { -+ if (!IS_NULL_REF(Weights)) { - const Standard_Real * WG = &Weights(Weights.Lower()); - min_weights = WG[0]; - -diff --git a/src/BSplCLib/BSplCLib_2.cxx b/src/BSplCLib/BSplCLib_2.cxx -index 35c4639..653b7cd 100644 ---- a/src/BSplCLib/BSplCLib_2.cxx -+++ b/src/BSplCLib/BSplCLib_2.cxx -@@ -70,7 +70,7 @@ void BSplCLib::BuildEval(const Standard_Integer Degree, - Standard_Integer i; - Standard_Integer ip = PLower + Index - 1; - Standard_Real w, *pole = &LP; -- if (&Weights == NULL) { -+ if (IS_NULL_REF(Weights)) { - - for (i = 0; i <= Degree; i++) { - ip++; -@@ -115,13 +115,13 @@ static void PrepareEval - - // make the knots - BSplCLib::BuildKnots(Degree,index,Periodic,Knots,Mults,*dc.knots); -- if (&Mults == NULL) -+ if (IS_NULL_REF(Mults)) - index -= Knots.Lower() + Degree; - else - index = BSplCLib::PoleIndex(Degree,index,Periodic,Mults); - - // check truly rational -- rational = (&Weights != NULL); -+ rational = (!IS_NULL_REF(Weights)); - if (rational) { - Standard_Integer WLower = Weights.Lower() + index; - rational = BSplCLib::IsRational(Weights, WLower, WLower + Degree); -diff --git a/src/BSplCLib/BSplCLib_CurveComputation.gxx b/src/BSplCLib/BSplCLib_CurveComputation.gxx -index e71b4e0..9d42643 100644 ---- a/src/BSplCLib/BSplCLib_CurveComputation.gxx -+++ b/src/BSplCLib/BSplCLib_CurveComputation.gxx -@@ -92,7 +92,7 @@ Standard_Boolean BSplCLib::RemoveKnot - TColStd_Array1OfInteger& NewMults, - const Standard_Real Tolerance) - { -- Standard_Boolean rational = &Weights != NULL; -+ Standard_Boolean rational = !IS_NULL_REF(Weights); - Standard_Integer dim; - dim = Dimension_gen; - if (rational) dim++; -@@ -133,7 +133,7 @@ void BSplCLib::InsertKnots - const Standard_Real Epsilon, - const Standard_Boolean Add) - { -- Standard_Boolean rational = &Weights != NULL; -+ Standard_Boolean rational = !IS_NULL_REF(Weights); - Standard_Integer dim; - dim = Dimension_gen; - if (rational) dim++; -@@ -222,7 +222,7 @@ void BSplCLib::IncreaseDegree - TColStd_Array1OfReal& NewKnots, - TColStd_Array1OfInteger& NewMults) - { -- Standard_Boolean rational = &Weights != NULL; -+ Standard_Boolean rational = !IS_NULL_REF(Weights); - Standard_Integer dim; - dim = Dimension_gen; - if (rational) dim++; -@@ -256,7 +256,7 @@ void BSplCLib::Unperiodize - Array1OfPoints& NewPoles, - TColStd_Array1OfReal& NewWeights) - { -- Standard_Boolean rational = &Weights != NULL; -+ Standard_Boolean rational = !IS_NULL_REF(Weights); - Standard_Integer dim; - dim = Dimension_gen; - if (rational) dim++; -@@ -292,7 +292,7 @@ void BSplCLib::Trimming(const Standard_Integer Degree, - Array1OfPoints& NewPoles, - TColStd_Array1OfReal& NewWeights) - { -- Standard_Boolean rational = &Weights != NULL; -+ Standard_Boolean rational = !IS_NULL_REF(Weights); - Standard_Integer dim; - dim = Dimension_gen; - if (rational) dim++; -@@ -339,7 +339,7 @@ void BSplCLib::BuildEval(const Standard_Integer Degree, - Standard_Integer PUpper = Poles.Upper(); - Standard_Integer i; - Standard_Integer ip = PLower + Index - 1; -- if (&Weights == NULL) { -+ if (IS_NULL_REF(Weights)) { - for (i = 0; i <= Degree; i++) { - ip++; - if (ip > PUpper) ip = PLower; -@@ -384,13 +384,13 @@ static void PrepareEval - - // make the knots - BSplCLib::BuildKnots(Degree,index,Periodic,Knots,Mults,*dc.knots); -- if (&Mults == NULL) -+ if (IS_NULL_REF(Mults)) - index -= Knots.Lower() + Degree; - else - index = BSplCLib::PoleIndex(Degree,index,Periodic,Mults); - - // check truly rational -- rational = (&Weights != NULL); -+ rational = (!IS_NULL_REF(Weights)); - if (rational) { - Standard_Integer WLower = Weights.Lower() + index; - rational = BSplCLib::IsRational(Weights, WLower, WLower + Degree); -@@ -741,7 +741,7 @@ void BSplCLib::CacheD0(const Standard_Real Parameter, - Degree * Dimension_gen, - PArray[0], - myPoint[0]) ; -- if (&WeightsArray != NULL) { -+ if (!IS_NULL_REF(WeightsArray)) { - Standard_Real * - WArray = (Standard_Real *) &WeightsArray(WeightsArray.Lower()) ; - PLib::NoDerivativeEvalPolynomial(NewParameter, -@@ -798,7 +798,7 @@ void BSplCLib::CacheD1(const Standard_Real Parameter, - - ModifyCoords (LocalPDerivatives + Dimension_gen, /= SpanLenght); - -- if (&WeightsArray != NULL) { -+ if (!IS_NULL_REF(WeightsArray)) { - Standard_Real * - WArray = (Standard_Real *) &WeightsArray(WeightsArray.Lower()) ; - PLib::EvalPolynomial(NewParameter, -@@ -878,7 +878,7 @@ void BSplCLib::CacheD2(const Standard_Real Parameter, - Index += Dimension_gen; - } - -- if (&WeightsArray != NULL) { -+ if (!IS_NULL_REF(WeightsArray)) { - Standard_Real * - WArray = (Standard_Real *) &WeightsArray(WeightsArray.Lower()) ; - -@@ -971,7 +971,7 @@ void BSplCLib::CacheD3(const Standard_Real Parameter, - Index += Dimension_gen; - } - -- if (&WeightsArray != NULL) { -+ if (!IS_NULL_REF(WeightsArray)) { - Standard_Real * - WArray = (Standard_Real *) &WeightsArray(WeightsArray.Lower()) ; - -@@ -1081,7 +1081,7 @@ void BSplCLib::BuildCache - LocalValue *= SpanDomain / (Standard_Real) ii ; - } - -- if (&Weights != NULL) { -+ if (!IS_NULL_REF(Weights)) { - for (ii = 1 ; ii <= Degree + 1 ; ii++) - CacheWeights(ii) = 0.0e0 ; - CacheWeights(1) = 1.0e0 ; -diff --git a/src/BSplSLib/BSplSLib.cxx b/src/BSplSLib/BSplSLib.cxx -index 5ad633c..07040d5 100644 ---- a/src/BSplSLib/BSplSLib.cxx -+++ b/src/BSplSLib/BSplSLib.cxx -@@ -309,12 +309,12 @@ static Standard_Boolean PrepareEval (const Standard_Real U, - BSplCLib::BuildKnots(UDegree,uindex,UPer,UKnots,UMults,*dc.knots1); - BSplCLib::BuildKnots(VDegree,vindex,VPer,VKnots,VMults,*dc.knots2); - -- if (&UMults == NULL) -+ if (IS_NULL_REF(UMults)) - uindex -= UKLower + UDegree; - else - uindex = BSplCLib::PoleIndex(UDegree,uindex,UPer,UMults); - -- if (&VMults == NULL) -+ if (IS_NULL_REF(VMults)) - vindex -= VKLower + VDegree; - else - vindex = BSplCLib::PoleIndex(VDegree,vindex,VPer,VMults); -@@ -460,12 +460,12 @@ static Standard_Boolean PrepareEval (const Standard_Real U, - BSplCLib::BuildKnots(UDegree,uindex,UPer,UKnots,UMults,*dc.knots2); - BSplCLib::BuildKnots(VDegree,vindex,VPer,VKnots,VMults,*dc.knots1); - -- if (&UMults == NULL) -+ if (IS_NULL_REF(UMults)) - uindex -= UKLower + UDegree; - else - uindex = BSplCLib::PoleIndex(UDegree,uindex,UPer,UMults); - -- if (&VMults == NULL) -+ if (IS_NULL_REF(VMults)) - vindex -= VKLower + VDegree; - else - vindex = BSplCLib::PoleIndex(VDegree,vindex,VPer,VMults); -@@ -1299,7 +1299,7 @@ void BSplSLib::Iso(const Standard_Real Param, - { - Standard_Integer index = 0; - Standard_Real u = Param; -- Standard_Boolean rational = &Weights != NULL; -+ Standard_Boolean rational = !IS_NULL_REF(Weights); - Standard_Integer dim = rational ? 4 : 3; - - // compute local knots -@@ -1307,7 +1307,7 @@ void BSplSLib::Iso(const Standard_Real Param, - NCollection_LocalArray locknots1 (2*Degree); - BSplCLib::LocateParameter(Degree,Knots,Mults,u,Periodic,index,u); - BSplCLib::BuildKnots(Degree,index,Periodic,Knots,Mults,*locknots1); -- if (&Mults == NULL) -+ if (IS_NULL_REF(Mults)) - index -= Knots.Lower() + Degree; - else - index = BSplCLib::PoleIndex(Degree,index,Periodic,Mults); -@@ -1381,7 +1381,7 @@ void BSplSLib::Iso(const Standard_Real Param, - } - - // if the input is not rational but weights are wanted -- if (!rational && (&CWeights != NULL)) { -+ if (!rational && (!IS_NULL_REF(CWeights))) { - - for (i = CWeights.Lower(); i <= CWeights.Upper(); i++) - CWeights(i) = 1.; -@@ -1741,7 +1741,7 @@ void BSplSLib::InsertKnots(const Standard_Boolean UDirection, - const Standard_Real Epsilon, - const Standard_Boolean Add ) - { -- Standard_Boolean rational = &Weights != NULL; -+ Standard_Boolean rational = !IS_NULL_REF(Weights); - Standard_Integer dim = 3; - if (rational) dim++; - -@@ -1787,7 +1787,7 @@ Standard_Boolean BSplSLib::RemoveKnot - TColStd_Array1OfInteger& NewMults, - const Standard_Real Tolerance) - { -- Standard_Boolean rational = &Weights != NULL; -+ Standard_Boolean rational = !IS_NULL_REF(Weights); - Standard_Integer dim = 3; - if (rational) dim++; - -@@ -1834,7 +1834,7 @@ void BSplSLib::IncreaseDegree - TColStd_Array1OfReal& NewKnots, - TColStd_Array1OfInteger& NewMults) - { -- Standard_Boolean rational = &Weights != NULL; -+ Standard_Boolean rational = !IS_NULL_REF(Weights); - Standard_Integer dim = 3; - if (rational) dim++; - -@@ -1876,7 +1876,7 @@ void BSplSLib::Unperiodize - TColgp_Array2OfPnt& NewPoles, - TColStd_Array2OfReal& NewWeights) - { -- Standard_Boolean rational = &Weights != NULL; -+ Standard_Boolean rational = !IS_NULL_REF(Weights); - Standard_Integer dim = 3; - if (rational) dim++; - -@@ -1929,7 +1929,7 @@ void BSplSLib::BuildCache - Standard_Boolean rational,rational_u,rational_v,flag_u_or_v; - Standard_Integer kk,d1,d1p1,d2,d2p1,ii,jj,iii,jjj,Index; - Standard_Real u1,min_degree_domain,max_degree_domain,f,factor[2],u2; -- if (&Weights != NULL) -+ if (!IS_NULL_REF(Weights)) - rational_u = rational_v = Standard_True; - else - rational_u = rational_v = Standard_False; -@@ -2025,7 +2025,7 @@ void BSplSLib::BuildCache - } - factor[0] *= max_degree_domain / (Standard_Real) (iii) ; - } -- if (&Weights != NULL) { -+ if (!IS_NULL_REF(Weights)) { - // - // means that PrepareEval did found out that the surface was - // locally polynomial but since the surface is constructed -@@ -2110,7 +2110,7 @@ void BSplSLib::CacheD0(const Standard_Real UParameter, - (min_degree << 1) + min_degree, - locpoles[0], - myPoint[0]) ; -- if (&WeightsArray != NULL) { -+ if (!IS_NULL_REF(WeightsArray)) { - dimension = min_degree + 1 ; - Standard_Real * - WArray = (Standard_Real *) -@@ -2190,7 +2190,7 @@ void BSplSLib::CacheD1(const Standard_Real UParameter, - // the coefficients - // - // -- if (&WeightsArray != NULL) { -+ if (!IS_NULL_REF(WeightsArray)) { - - local_poles_array [0][0][0] = 0.0e0 ; - local_poles_array [0][0][1] = 0.0e0 ; -@@ -2275,7 +2275,7 @@ void BSplSLib::CacheD1(const Standard_Real UParameter, - locpoles[dimension], - local_poles_array[1][0][0]) ; - -- if (&WeightsArray != NULL) { -+ if (!IS_NULL_REF(WeightsArray)) { - dimension = min_degree + 1 ; - Standard_Real * - WArray = (Standard_Real *) -@@ -2435,7 +2435,7 @@ void BSplSLib::CacheD2(const Standard_Real UParameter, - // the coefficients - // - // -- if (&WeightsArray != NULL) { -+ if (!IS_NULL_REF(WeightsArray)) { - - local_poles_and_weights_array[0][0][0] = 0.0e0 ; - local_poles_and_weights_array[0][0][1] = 0.0e0 ; -@@ -2564,7 +2564,7 @@ void BSplSLib::CacheD2(const Standard_Real UParameter, - locpoles[dimension + dimension], - local_poles_array[2][0][0]) ; - -- if (&WeightsArray != NULL) { -+ if (!IS_NULL_REF(WeightsArray)) { - dimension = min_degree + 1 ; - Standard_Real * - WArray = (Standard_Real *) -diff --git a/src/BSplSLib/BSplSLib_BzSyntaxes.cxx b/src/BSplSLib/BSplSLib_BzSyntaxes.cxx -index 0faf6b6..f2c0f74 100644 ---- a/src/BSplSLib/BSplSLib_BzSyntaxes.cxx -+++ b/src/BSplSLib/BSplSLib_BzSyntaxes.cxx -@@ -68,7 +68,7 @@ void BSplSLib::PolesCoefficients (const TColgp_Array2OfPnt& Poles, - biduflatknots,bidvflatknots, - Poles,Weights, - CPoles,CWeights); -- if (&Weights == NULL) { -+ if (IS_NULL_REF(Weights)) { - - for (ii = 1; ii <= uclas; ii++) { - -diff --git a/src/PLib/PLib.cxx b/src/PLib/PLib.cxx -index 23fa302..7ee231f 100644 ---- a/src/PLib/PLib.cxx -+++ b/src/PLib/PLib.cxx -@@ -2427,7 +2427,7 @@ void PLib::CoefficientsPoles (const Standard_Integer dim, - TColStd_Array1OfReal& Poles, - TColStd_Array1OfReal& Weights) - { -- Standard_Boolean rat = &WCoefs != NULL; -+ Standard_Boolean rat = !IS_NULL_REF(WCoefs); - Standard_Integer loc = Coefs.Lower(); - Standard_Integer lop = Poles.Lower(); - Standard_Integer lowc=0; -@@ -2550,7 +2550,7 @@ void PLib::Trimming(const Standard_Real U1, - Standard_Integer indc, indw=0; - Standard_Integer upc = Coefs.Upper() - dim + 1, upw=0; - Standard_Integer len = Coefs.Length()/dim; -- Standard_Boolean rat = &WCoefs != NULL; -+ Standard_Boolean rat = !IS_NULL_REF(WCoefs); - - if (rat) { - if(len != WCoefs.Length()) -@@ -2607,7 +2607,7 @@ void PLib::CoefficientsPoles (const TColgp_Array2OfPnt& Coefs, - TColgp_Array2OfPnt& Poles, - TColStd_Array2OfReal& Weights) - { -- Standard_Boolean rat = (&WCoefs != NULL); -+ Standard_Boolean rat = (!IS_NULL_REF(WCoefs)); - Standard_Integer LowerRow = Poles.LowerRow(); - Standard_Integer UpperRow = Poles.UpperRow(); - Standard_Integer LowerCol = Poles.LowerCol(); -@@ -2701,7 +2701,7 @@ void PLib::UTrimming(const Standard_Real U1, - TColgp_Array2OfPnt& Coeffs, - TColStd_Array2OfReal& WCoeffs) - { -- Standard_Boolean rat = &WCoeffs != NULL; -+ Standard_Boolean rat = !IS_NULL_REF(WCoeffs); - Standard_Integer lr = Coeffs.LowerRow(); - Standard_Integer ur = Coeffs.UpperRow(); - Standard_Integer lc = Coeffs.LowerCol(); -@@ -2735,7 +2735,7 @@ void PLib::VTrimming(const Standard_Real V1, - TColgp_Array2OfPnt& Coeffs, - TColStd_Array2OfReal& WCoeffs) - { -- Standard_Boolean rat = &WCoeffs != NULL; -+ Standard_Boolean rat = !IS_NULL_REF(WCoeffs); - Standard_Integer lr = Coeffs.LowerRow(); - Standard_Integer ur = Coeffs.UpperRow(); - Standard_Integer lc = Coeffs.LowerCol(); \ No newline at end of file diff --git a/repos/spack_repo/builtin/packages/oce/package.py b/repos/spack_repo/builtin/packages/oce/package.py deleted file mode 100644 index a44edee6adb..00000000000 --- a/repos/spack_repo/builtin/packages/oce/package.py +++ /dev/null @@ -1,88 +0,0 @@ -# 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 Oce(CMakePackage): - """Open CASCADE Community Edition - - UNMAINTAINED: see https://github.com/tpaviot/oce/issues/745#issuecomment-992285943 - """ - - homepage = "https://github.com/tpaviot/oce" - url = "https://github.com/tpaviot/oce/archive/OCE-0.18.tar.gz" - - with default_args(deprecated=True): - version( - "0.18.3", sha256="c553d6a7bf52f790abc3b6bb7a1e91a65947e92a426bb1a88a11960c31f0966c" - ) - version( - "0.18.2", sha256="dc21ddea678a500ad87c773e9a502ed7a71768cf83d9af0bd4c43294186a7fef" - ) - version( - "0.18.1", sha256="1acf5da4bffa3592ca9f3535af9b927b79fcfeadcb81e9963e89aec192929a6c" - ) - version("0.18", sha256="226e45e77c16a4a6e127c71fefcd171410703960ae75c7ecc7eb68895446a993") - version( - "0.17.2", sha256="8d9995360cd531cbd4a7aa4ca5ed969f08ec7c7a37755e2f3d4ef832c1b2f56e" - ) - version( - "0.17.1", sha256="b1ff0cb8cf31339bbb30ac7ed2415d376b9b75810279d2f497e115f08c090928" - ) - version("0.17", sha256="9ab0dc2a2d125b46cef458b56c6d171dfe2218d825860d616c5ab17994b8f74d") - version( - "0.16.1", sha256="d31030c8da4a1b33f767d0d59895a995c8eabc8fc65cbe0558734f6021ea2f57" - ) - version("0.16", sha256="841fe4337a5a4e733e36a2efc4fe60a4e6e8974917028df05d47a02f59787515") - - variant("tbb", default=True, description="Build with Intel Threading Building Blocks") - variant("X11", default=False, description="Build with X11 enabled") - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - depends_on("cmake@3:", type="build") - - with when("+tbb"): - depends_on("tbb") - depends_on("intel-tbb@:2020 build_system=makefile", when="^[virtuals=tbb] intel-tbb") - conflicts("^intel-oneapi-tbb@2021.1:") - - # There is a bug in OCE which appears with Clang (version?) or GCC 6.0 - # and has to do with compiler optimization, see - # https://github.com/tpaviot/oce/issues/576 - # https://tracker.dev.opencascade.org/view.php?id=26042 - # https://github.com/tpaviot/oce/issues/605 - # https://github.com/tpaviot/oce/commit/61cb965b9ffeca419005bc15e635e67589c421dd.patch - patch("null.patch", when="@0.16:0.17.1") - - # OCE depends on xlocale.h from glibc-headers but it was removed in 2.26, - # see https://github.com/tpaviot/oce/issues/675 - patch("xlocale.patch", level=0, when="@0.18.1:0.18.2") - - def cmake_args(self): - args = [ - self.define("OCE_INSTALL_PREFIX", self.prefix), - self.define("OCE_BUILD_SHARED_LIB", True), - self.define("OCE_DATAEXCHANGE", True), - self.define("OCE_DISABLE_X11", self.spec.satisfies("~X11")), - self.define("OCE_DRAW", False), - self.define("OCE_MODEL", True), - self.define( - "OCE_MULTITHREAD_LIBRARY", ("TBB" if self.spec.satisfies("+tbb") else "NONE") - ), - self.define("OCE_OCAF", True), - self.define("OCE_USE_TCL_TEST_FRAMEWORK", False), - self.define("OCE_VISUALISATION", False), - self.define("OCE_WITH_FREEIMAGE", False), - self.define("OCE_WITH_GL2PS", False), - self.define("OCE_WITH_OPENCL", False), - ] - - if self.spec.satisfies("platform=darwin"): - args.append(self.define("OCE_OSX_USE_COCOA", True)) - return args diff --git a/repos/spack_repo/builtin/packages/oce/xlocale.patch b/repos/spack_repo/builtin/packages/oce/xlocale.patch deleted file mode 100644 index 2c4ba599583..00000000000 --- a/repos/spack_repo/builtin/packages/oce/xlocale.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- src/Standard/Standard_CLocaleSentry.hxx.ORIG 2017-08-11 07:51:11.000000000 +0200 -+++ src/Standard/Standard_CLocaleSentry.hxx 2017-08-18 01:07:11.639206272 +0200 -@@ -30,7 +30,9 @@ - #endif - - //! We check _GNU_SOURCE for glibc extensions here and it is always defined by g++ compiler. -- #if defined(_GNU_SOURCE) && !defined(__ANDROID__) -+ //! Musl libc does not provide xlocale.h -+ //! glibc 2.26+ does not provide xlocale.h (anymore) -+ #if defined(_GNU_SOURCE) && defined(__GLIBC__) && __GLIBC__ <= 2 && __GLIBC_MINOR__ < 26 && !defined(__ANDROID__) - #define HAVE_XLOCALE_H - #endif - #endif // ifndef HAVE_LOCALE_H diff --git a/repos/spack_repo/builtin/packages/octave/package.py b/repos/spack_repo/builtin/packages/octave/package.py index 2442f7f2d05..eeccb754b84 100644 --- a/repos/spack_repo/builtin/packages/octave/package.py +++ b/repos/spack_repo/builtin/packages/octave/package.py @@ -25,12 +25,16 @@ class Octave(AutotoolsPackage, GNUMirrorPackage): homepage = "https://www.gnu.org/software/octave/" gnu_mirror_path = "octave/octave-4.0.0.tar.gz" - maintainers("mtmiller") + maintainers("cessenat") extendable = True license("GPL-3.0-or-later") + version("11.1.0", sha256="c0e7e2c91bc573256431b2cc989290b9bd13851dbadd59d0ac74714f1334b0e6") + version("10.3.0", sha256="2fcb38dc062e440f1e06c069bbca840ed46dcc8f983e473e1558fcc38384ee6b") + version("10.2.0", sha256="07fb6d9339d2f350735c91671be8e874d160018cc6b688f9efd9d558d237f69f") + version("10.1.0", sha256="aed449cba379fc1e1186ec3fc3c96e0860789278fbc823ae2cebe60344344b78") version("9.4.0", sha256="da9481205bfa717660b7d4a16732d8b2d58aadceab4993d41242a8e2848ea6c1") version("9.3.0", sha256="809fa39a7acc84815bf4dc4d2d7e6b228ce75a07f3b2413f3313aa8e0aaa3287") version("9.1.0", sha256="3f8c6c6ecfa249a47c97e18e651be4db8499be2f5de1a095a3eea53efc01d6a1") diff --git a/repos/spack_repo/builtin/packages/octave_arduino/package.py b/repos/spack_repo/builtin/packages/octave_arduino/package.py index 64ceb16ba91..1d274c66554 100644 --- a/repos/spack_repo/builtin/packages/octave_arduino/package.py +++ b/repos/spack_repo/builtin/packages/octave_arduino/package.py @@ -1,25 +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.octave import OctavePackage -from spack_repo.builtin.build_systems.sourceforge import SourceforgePackage from spack.package import * -class OctaveArduino(OctavePackage, SourceforgePackage): +class OctaveArduino(OctavePackage): """Provides an Octave look-alike implementation of the Arduino extension for Matlab.""" homepage = "https://octave.sourceforge.io/arduino/" - sourceforge_mirror_path = "octave/arduino-0.2.0.tar.gz" + git = "https://github.com/gnu-octave/octave-arduino/" + url = "https://github.com/gnu-octave/octave-arduino/releases/download/release-0.12.2/arduino-0.12.2.tar.gz" license("GPL-3.0-or-later") - version("0.2.0", sha256="0562ff48ea4b2cef28e2e03ccc4678dafa16f91d1580245bb7f9f488c4f56238") + version("0.12.2", sha256="37c00bbc9a2615852afbc01250f865b1125f5c5532d88e772313d293feab52b8") + version( + "0.2.0", + sha256="0562ff48ea4b2cef28e2e03ccc4678dafa16f91d1580245bb7f9f488c4f56238", + url="https://sourceforge.net/projects/octave/files/Octave%20Forge%20Packages/Individual%20Package%20Releases/arduino--0.2.0.tar.gz", + ) - depends_on("cxx", type="build") # generated + depends_on("cxx", type="build") + depends_on("octave-instrctl@0.5.0:", when="@0.12.2:") depends_on("octave-instrctl") extends("octave@3.6.0:") diff --git a/repos/spack_repo/builtin/packages/octave_control/package.py b/repos/spack_repo/builtin/packages/octave_control/package.py index bc718b8d20d..5d48fe7784b 100644 --- a/repos/spack_repo/builtin/packages/octave_control/package.py +++ b/repos/spack_repo/builtin/packages/octave_control/package.py @@ -1,24 +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.octave import OctavePackage -from spack_repo.builtin.build_systems.sourceforge import SourceforgePackage from spack.package import * -class OctaveControl(OctavePackage, SourceforgePackage): +class OctaveControl(OctavePackage): """Computer-Aided Control System Design (CACSD) Tools for GNU Octave, based on the proven SLICOT Library""" homepage = "https://octave.sourceforge.io/control/" - sourceforge_mirror_path = "octave/control-3.2.0.tar.gz" + git = "https://github.com/gnu-octave/pkg-control/" + url = "https://github.com/gnu-octave/pkg-control/releases/download/control-4.1.3/control-4.1.3.tar.gz" license("GPL-3.0-or-later") - version("3.2.0", sha256="faf1d510d16ab46e4fa91a1288f4a7839ee05469c33e4698b7a007a0bb965e3e") + version("4.1.3", sha256="07ce19c121778333e409b4fd67d8946ff6fa9d0eb93b00312b331b86ea6954b4") + version( + "3.2.0", + sha256="faf1d510d16ab46e4fa91a1288f4a7839ee05469c33e4698b7a007a0bb965e3e", + url="https://sourceforge.net/projects/octave/files/Octave%20Forge%20Packages/Individual%20Package%20Releases/control--3.2.0.tar.gz", + ) - depends_on("cxx", type="build") # generated + depends_on("cxx", type="build") extends("octave@4.0.0:") diff --git a/repos/spack_repo/builtin/packages/octave_instrctl/package.py b/repos/spack_repo/builtin/packages/octave_instrctl/package.py index bfd7c32aac4..6e7a2fa64e2 100644 --- a/repos/spack_repo/builtin/packages/octave_instrctl/package.py +++ b/repos/spack_repo/builtin/packages/octave_instrctl/package.py @@ -15,6 +15,7 @@ class OctaveInstrctl(OctavePackage, SourceforgePackage): homepage = "https://octave.sourceforge.io/instrument-control/" sourceforge_mirror_path = "octave/instrument-control-0.3.1.tar.gz" + version("0.9.5", sha256="426d5a17e75b870ac351287c56224709921cd03899d63235d7b4e74a49eacd7d") version("0.3.1", sha256="d9c3b2e258cc8245ebfdd282e6314af12987daf453f4356555f56ca5ec55873c") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/octave_io/package.py b/repos/spack_repo/builtin/packages/octave_io/package.py index 19ce3322f1c..60f8a987e64 100644 --- a/repos/spack_repo/builtin/packages/octave_io/package.py +++ b/repos/spack_repo/builtin/packages/octave_io/package.py @@ -17,10 +17,14 @@ class OctaveIo(OctavePackage, SourceforgePackage): license("GPL-3.0-only") + version("2.7.1", sha256="1b8f60019fe5ce2af56301003e3046463349dd533123e8979ec4b4c9ebfc7f6b") + version("2.7.0", sha256="4aa48468b3697934bf8c854e27dbab8827605e9dd4fe37e56834265e6130ba6f") version("2.6.3", sha256="6bc63c6498d79cada01a6c4446f793536e0bb416ddec2a5201dd8d741d459e10") version("2.6.2", sha256="01dbf8885a8011e76c919e271727c1d44f625bf6b217948b79438039ba368ceb") version("2.6.1", sha256="83253561f883c96ca3021a771223d23795122dc4cb800766e9cb893c6f8262dd") version("2.6.0", sha256="27f26273ced0b42c098e900136bb0ab2e542baf98d02bc0176cf47edbd0e6d7f") version("2.2.7", sha256="4eed2ee4c89b49ab160546c77ed66a384598f3bbb1c6e3833529c2c55aa479b6") + depends_on("cxx", type="build") + extends("octave@4.2.0:") diff --git a/repos/spack_repo/builtin/packages/octave_optim/package.py b/repos/spack_repo/builtin/packages/octave_optim/package.py index d32f6b46199..ff3db7cd58a 100644 --- a/repos/spack_repo/builtin/packages/octave_optim/package.py +++ b/repos/spack_repo/builtin/packages/octave_optim/package.py @@ -14,10 +14,13 @@ class OctaveOptim(OctavePackage, SourceforgePackage): homepage = "https://octave.sourceforge.io/optim/" sourceforge_mirror_path = "octave/optim-1.5.2.tar.gz" + version("1.6.3", sha256="59fb3771a2d2a2313447532c59a2e000a6a7bb7a677f3ef8183fbaaab5493a14") + version("1.6.2", sha256="554a8e18bb7195ae861f5059c14f1a557844265c1addb5bfbf3ab9885524787e") version("1.6.1", sha256="7150cdfac7e9da31ec7ac1cfe8619d9c0e9c8b3f787f54bf89e0fb1c275be584") version("1.5.2", sha256="7b36033c5581559dc3e7616f97d402bc44dde0dfd74c0e3afdf47d452a76dddf") depends_on("octave-struct@1.0.12:") depends_on("octave-statistics@1.4.0:") + depends_on("cxx", type="build") extends("octave@3.6.0:", when="@:1.5.2") extends("octave@4.0.0:", when="@1.6.1:") diff --git a/repos/spack_repo/builtin/packages/octave_signal/package.py b/repos/spack_repo/builtin/packages/octave_signal/package.py index d05cb55927f..b59c1aa9806 100644 --- a/repos/spack_repo/builtin/packages/octave_signal/package.py +++ b/repos/spack_repo/builtin/packages/octave_signal/package.py @@ -11,12 +11,15 @@ class OctaveSignal(OctavePackage, SourceforgePackage): """Signal processing tools, including filtering, windowing and display functions.""" - homepage = "https://octave.sourceforge.io/optim/" + homepage = "https://octave.sourceforge.io/signal/" sourceforge_mirror_path = "octave/signal-1.4.1.tar.gz" license("GPL-3.0-only") + version("1.4.6", sha256="94eef8fea78c89609f8ddf6d5ff8bfc2e0dab932b43f86ce911474a58b5c71ee") version("1.4.1", sha256="d978600f8b8f61339b986136c9862cad3e8f7015f84132f214bf63e9e281aeaa") + depends_on("cxx", type="build") # generated + depends_on("octave-control@2.4:") extends("octave@3.8.0:") diff --git a/repos/spack_repo/builtin/packages/octave_splines/package.py b/repos/spack_repo/builtin/packages/octave_splines/package.py index 15c250a821c..ee05a8e2ba2 100644 --- a/repos/spack_repo/builtin/packages/octave_splines/package.py +++ b/repos/spack_repo/builtin/packages/octave_splines/package.py @@ -16,6 +16,9 @@ class OctaveSplines(OctavePackage, SourceforgePackage): license("GPL-3.0-or-later") + version("1.3.5", sha256="af886877797c3a9c8a36ce7d94613c1059f79fab4883429e7b32a3b01e03d7a6") version("1.3.3", sha256="0a4bf9544b1fedb4aed4222eff1333928b0e3c903f140822eb857585e0d5919b") version("1.3.1", sha256="f9665d780c37aa6a6e17d1f424c49bdeedb89d1192319a4e39c08784122d18f9") + + depends_on("cxx", type="build") # generated extends("octave@3.6.0:") diff --git a/repos/spack_repo/builtin/packages/octave_statistics/package.py b/repos/spack_repo/builtin/packages/octave_statistics/package.py index 0d1f058480d..a9bbe32cd95 100644 --- a/repos/spack_repo/builtin/packages/octave_statistics/package.py +++ b/repos/spack_repo/builtin/packages/octave_statistics/package.py @@ -1,20 +1,26 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack_repo.builtin.build_systems.octave import OctavePackage -from spack_repo.builtin.build_systems.sourceforge import SourceforgePackage from spack.package import * -class OctaveStatistics(OctavePackage, SourceforgePackage): +class OctaveStatistics(OctavePackage): """Additional statistics functions for Octave.""" homepage = "https://octave.sourceforge.io/statistics/" - sourceforge_mirror_path = "octave/statistics-1.4.2.tar.gz" + git = "https://github.com/gnu-octave/statistics/" + url = "https://github.com/gnu-octave/statistics/releases/download/release-1.7.6/statistics-1.7.6.tar.gz" - version("1.4.2", sha256="7976814f837508e70367548bfb0a6d30aa9e447d4e3a66914d069efb07876247") + version("1.7.6", sha256="a518c50209e25e59742414c73955060f83c39c07b2d9a20b2fc8d13bd3106af3") + version( + "1.4.2", + sha256="7976814f837508e70367548bfb0a6d30aa9e447d4e3a66914d069efb07876247", + url="https://sourceforge.net/projects/octave/files/Octave%20Forge%20Packages/Individual%20Package%20Releases/statistics--1.4.2.tar.gz", + ) depends_on("octave-io") + depends_on("cxx", type="build") + extends("octave@4.0.0:") diff --git a/repos/spack_repo/builtin/packages/octave_struct/package.py b/repos/spack_repo/builtin/packages/octave_struct/package.py index 7d51035f1e4..e947ee48889 100644 --- a/repos/spack_repo/builtin/packages/octave_struct/package.py +++ b/repos/spack_repo/builtin/packages/octave_struct/package.py @@ -16,6 +16,8 @@ class OctaveStruct(OctavePackage, SourceforgePackage): license("GPL-3.0-only") + version("1.0.18", sha256="fccea7dd84c1104ed3babb47a28f05e0012a89c284f39ab094090450915294ce") version("1.0.17", sha256="0137bbb5df650f29104f6243502f3a2302aaaa5e42ea9f02d8a3943aaf668433") version("1.0.14", sha256="ad4e17687bc24650f032757271b20b70fe32c35513d4dd9ab1e549919df36b47") + depends_on("cxx", type="build") extends("octave@2.9.7:") diff --git a/repos/spack_repo/builtin/packages/octave_symbolic/package.py b/repos/spack_repo/builtin/packages/octave_symbolic/package.py index 99787bff2d9..1aa38427228 100644 --- a/repos/spack_repo/builtin/packages/octave_symbolic/package.py +++ b/repos/spack_repo/builtin/packages/octave_symbolic/package.py @@ -20,6 +20,8 @@ class OctaveSymbolic(OctavePackage, SourceforgePackage): license("GPL-3.0-only") + version("3.2.2", sha256="8eb492408ec5aafe4e196ec5bdbd2298e0ac068d2b754948f34b9082b9126b37") version("2.9.0", sha256="089ec44a0a49417a8b78797e87f338da6a6e227509f3080724996483d39b23cb") + depends_on("cxx", type="build") extends("octave@4.2.0:") diff --git a/repos/spack_repo/builtin/packages/octopus/package.py b/repos/spack_repo/builtin/packages/octopus/package.py index 7bad8179c38..d6672443e4a 100644 --- a/repos/spack_repo/builtin/packages/octopus/package.py +++ b/repos/spack_repo/builtin/packages/octopus/package.py @@ -22,6 +22,16 @@ class Octopus(cmake.CMakePackage, autotools.AutotoolsPackage, CudaPackage): license("GPL-3.0-or-later") + version( + "16.2", + sha256="be3a361736b8367c24aaf80fa1b31066a3f3eddd7afef3fb6d84145c0413ee0c", + url="https://gitlab.com/octopus-code/octopus/-/archive/16.2/octopus-16.2.tar.gz", + ) + version( + "16.1", + sha256="b4fb625e271ecfa279ffde641c29b9fd21ef0e593219f6340a44b6ab03c90dd4", + url="https://gitlab.com/octopus-code/octopus/-/archive/16.1/octopus-16.1.tar.gz", + ) version( "16.0", sha256="b44067fc96d27891aab331df36ceebde8f7b628b1dca8a967ce9aec5e0543917", @@ -107,7 +117,7 @@ class Octopus(cmake.CMakePackage, autotools.AutotoolsPackage, CudaPackage): with when("build_system=cmake"): depends_on("cmake@3.25:", type="build", when="@17:") depends_on("cmake@3.20:", type="build", when="@:16") - depends_on("pkgconf", type="build") + depends_on("pkgconfig", type="build") cmake.generator("ninja") depends_on("perl", type="build") @@ -150,10 +160,10 @@ class Octopus(cmake.CMakePackage, autotools.AutotoolsPackage, CudaPackage): depends_on("libvdwxc~mpi", when="+libvdwxc") depends_on("arpack-ng~mpi", when="+arpack") depends_on("elpa~mpi", when="+elpa") - depends_on("netcdf-c~~mpi", when="+netcdf") # Link dependency of NetCDF fortran lib + depends_on("netcdf-c ~mpi", when="+netcdf") # Link dependency of NetCDF fortran lib with when("+berkeleygw"): - depends_on("berkeleygw@3:~~mpi", when="@14:") - depends_on("berkeleygw@2.1~~mpi", when="@:13") + depends_on("berkeleygw@3: ~mpi", when="@14:") + depends_on("berkeleygw@2.1 ~mpi", when="@:13") depends_on("etsf-io", when="+etsf-io") depends_on("py-numpy", when="+python") @@ -191,7 +201,7 @@ def test_version(self): # spack-v0.17.2$ octopus --version # octopus 11.3 (git commit ) - exe = which(self.spec.prefix.bin.octopus) + exe = which(self.spec.prefix.bin.octopus, required=True) out = exe("--version", output=str.split, error=str.split) assert "octopus " in out @@ -211,15 +221,15 @@ def test_recipe(self): expected = [ "Running octopus", "CalculationMode = recipe", - "DISCLAIMER: The authors do not " "guarantee that the implementation", - "recipe leads to an edible dish, " 'for it is clearly "system-dependent".', + "DISCLAIMER: The authors do not guarantee that the implementation", + 'recipe leads to an edible dish, for it is clearly "system-dependent".', "Calculation ended on", ] with working_dir("example-recipe", create=True): print("Current working directory (in example-recipe)") copy(join_path(os.path.dirname(__file__), "test", "recipe.inp"), "inp") - exe = which(self.spec.prefix.bin.octopus) + exe = which(self.spec.prefix.bin.octopus, required=True) out = exe(output=str.split, error=str.split) check_outputs(expected, out) @@ -248,7 +258,7 @@ def test_he(self): with working_dir("example-he", create=True): print("Current working directory (in example-he)") copy(join_path(os.path.dirname(__file__), "test", "he.inp"), "inp") - exe = which(self.spec.prefix.bin.octopus) + exe = which(self.spec.prefix.bin.octopus, required=True) out = exe(output=str.split, error=str.split) check_outputs(expected, out) diff --git a/repos/spack_repo/builtin/packages/of_precice/package.py b/repos/spack_repo/builtin/packages/of_precice/package.py index ec116b4f743..998d232978e 100644 --- a/repos/spack_repo/builtin/packages/of_precice/package.py +++ b/repos/spack_repo/builtin/packages/of_precice/package.py @@ -22,6 +22,7 @@ class OfPrecice(Package): version("develop", branch="develop") version("master", branch="master") + version("1.3.1", sha256="b5af9f9ea92c20141b93bb54d99ef1386a7caced5289f0fb0144955267e2a000") version("1.2.3", sha256="e5fbbc633a573cd1a952a98f7f05078a384078a8ea9cd166825148538a23683e") version("1.2.2", sha256="9d2d8d372b39c4e672e6311e92545d335c52c8eb3cefea34a794572523583aa5") version("1.2.1", sha256="12772ddea1eb0155ebf6d0a2ea4cd9700dbe63a0df016771b39591ae12efad11") @@ -29,6 +30,7 @@ class OfPrecice(Package): version("1.1.0", sha256="c35340b50d1b01978635130da94a876e1fa846c80b62e45204aa727db2ef4983") version("1.0.0", sha256="b70e5bdce47328f789f76dc6187604f8568b4a996158b5a6f6c11f111ff10308") + depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("openfoam+source") @@ -36,6 +38,9 @@ class OfPrecice(Package): depends_on("yaml-cpp") depends_on("pkgconfig", type="build") + depends_on("precice@:2", when="@:1.2.3") + depends_on("precice@3:", when="@1.3.0:") + # General patches common = ["change-userdir.sh", "spack-derived-Allwmake"] assets = [] # type: List[str] @@ -73,9 +78,7 @@ def configure(self, spec, prefix): # Local build (for user appbin, libbin) . ./change-userdir.sh $PWD/{user_dir} # -""".format( - precice_dir=spec["precice"].prefix, user_dir=self.build_userdir - ) +""".format(precice_dir=spec["precice"].prefix, user_dir=self.build_userdir) ) def build(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/ollama/package.py b/repos/spack_repo/builtin/packages/ollama/package.py index b8b90eda91b..b32caf51fed 100644 --- a/repos/spack_repo/builtin/packages/ollama/package.py +++ b/repos/spack_repo/builtin/packages/ollama/package.py @@ -19,20 +19,39 @@ class Ollama(GoPackage, CudaPackage): # A shell script is run by `go generate` which assumes source is in a git # repo. So we must use git VCS and not tarballs and defeat source caching. - with default_args(submodules=True, no_cache=True): + with default_args(no_cache=True): + version("0.20.7", commit="8d0dcf4b6daf8d7833c8b55108e5b45063795e57") + version("0.13.1", commit="5317202c38437867bc6c9ed21ffc5c949ab6794c") + version("0.12.11", commit="c1149875234a51aa1e5e60b74f3807f5982c60fa") + version("0.11.11", commit="92b96d54efd6b49322b7cf046f9a0dc16b00cd0a") + version("0.10.1", commit="ff89ba90bc97e9f58b8378a664b904bbc94e6f26") + version("0.9.6", commit="43107b15b9bcff51ef1c5391c273fd1a747f6d0a") + version("0.8.0", commit="aa25aff10d1ccc6dd4e85952678d63946bdf89dc") + version("0.7.1", commit="884d26093c80491a3fe07f606fc04851dc317199") + version("0.6.8", commit="6a74bba7e7e19bf5f5aeacb039a1537afa3522a5") + version("0.5.13", commit="7a01ad76143973199bd6965c13476d2d04f10f75") + version("0.4.7", commit="5f8051180e3b9aeafc153f6b5056e7358a939c88") version("0.4.2", commit="d875e99e4639dc07af90b2e3ea0d175e2e692efb") + # Submodule llm/llama.cpp + with default_args(submodules=True, no_cache=True): version("0.3.9", commit="a1cef4d0a5f31280ea82b350605775931a6163cb") version("0.1.31", commit="dc011d16b9ff160c0be3829fc39a43054f0315d0") # This is the last verified non-preview version as of 20240413 version("0.1.30", commit="756c2575535641f1b96d94b4214941b90f4c30c7") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") license("MIT", checked_by="teaguesterling") depends_on("cmake@3.24:", type="build") - depends_on("go@1.4.0:", type="build") + depends_on("go", type="build") + depends_on("go@1.22.0:", type="build", when="@0.1.29:") + depends_on("go@1.22.5:", type="build", when="@0.3.6:") + depends_on("go@1.22.8:", type="build", when="@0.4.0:") + depends_on("go@1.23.4:", type="build", when="@0.5.2:") + depends_on("go@1.24.0:", type="build", when="@0.5.13:") + depends_on("go@1.24.1:", type="build", when="@0.12.10:") depends_on("git", type="build") diff --git a/repos/spack_repo/builtin/packages/omega_h/package.py b/repos/spack_repo/builtin/packages/omega_h/package.py index 46695d1de78..c1b822e7206 100644 --- a/repos/spack_repo/builtin/packages/omega_h/package.py +++ b/repos/spack_repo/builtin/packages/omega_h/package.py @@ -21,6 +21,11 @@ class OmegaH(CMakePackage, CudaPackage): maintainers("cwsmith") tags = ["e4s"] version("main", branch="main") + version( + "11.0.0-scorec", + commit="fbe1cc131fb1b5ac840129ecd8bd7b42ab244000", + git="https://github.com/SCOREC/omega_h.git", + ) version( "10.8.6-scorec", commit="a730c78e516d7f6cca4f8b4e4e0a5eb8020f9ad9", @@ -63,6 +68,12 @@ class OmegaH(CMakePackage, CudaPackage): variant("mpi", default=True, description="Activates MPI support") variant("zlib", default=True, description="Activates ZLib support") variant("trilinos", default=True, description="Use Teuchos and Kokkos") + variant( + "exodus", + default=False, + description="Enable use of ExodusII meshes", + when="@10.8.6-scorec:", + ) variant("throw", default=False, description="Errors throw exceptions instead of abort") variant("examples", default=False, description="Compile examples") variant("optimize", default=True, description="Compile C++ with optimization") @@ -70,6 +81,7 @@ class OmegaH(CMakePackage, CudaPackage): variant("warnings", default=False, description="Compile C++ with warnings") variant("gmsh", default=False, description="Use Gmsh C++ API") variant("kokkos", default=False, description="Use Kokkos") + variant("cuda", default=False, description="Enable CUDA backend", when="@:10.10.0") depends_on("cxx", type="build") depends_on("c", type="build", when="+mpi") @@ -78,6 +90,7 @@ class OmegaH(CMakePackage, CudaPackage): depends_on("gmsh@4.4.1:", when="+gmsh") depends_on("mpi", when="+mpi") depends_on("trilinos +kokkos", when="+trilinos") + depends_on("trilinos +exodus", when="+exodus") depends_on("kokkos", when="+kokkos") depends_on("zlib-api", when="+zlib") @@ -91,12 +104,17 @@ class OmegaH(CMakePackage, CudaPackage): # Single, broken CUDA version. conflicts("^cuda@11.2", msg="See https://github.com/sandialabs/omega_h/issues/366") + # https://github.com/spack/spack-packages/pull/2059#issuecomment-3443184517 + conflicts("^cuda@13:") + # https://github.com/SCOREC/omega_h/pull/118 conflicts("@10.5:10.8.5 +cuda~kokkos") # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86610 conflicts("%gcc@8:8.2", when="@:9.22.1") + conflicts("+exodus", when="~trilinos", msg="exodus requires trilinos to be enabled") + def patch(self): if "@:9.34.8" in self.spec: filter_file( @@ -125,19 +143,22 @@ def cmake_args(self): args.append("-DCMAKE_CXX_COMPILER:FILEPATH={0}".format(self.spec["mpi"].mpicxx)) else: args.append("-DOmega_h_USE_MPI:BOOL=OFF") - if "+cuda" in self.spec: - args.append("-DOmega_h_USE_CUDA:BOOL=ON") - cuda_arch_list = self.spec.variants["cuda_arch"].value - cuda_arch = cuda_arch_list[0] - if cuda_arch != "none": - if self.spec.satisfies("@10:"): - args.append("-DOmega_h_CUDA_ARCH={0}".format(cuda_arch)) - else: - args.append("-DCMAKE_CUDA_FLAGS=-arch=sm_{0}".format(cuda_arch)) - else: - args.append("-DOmega_h_USE_CUDA:BOOL=OFF") + if self.spec.satisfies("@:10.10.0"): + if "+cuda" in self.spec: + args.append("-DOmega_h_USE_CUDA:BOOL=ON") + cuda_arch_list = self.spec.variants["cuda_arch"].value + cuda_arch = cuda_arch_list[0] + if cuda_arch != "none": + if self.spec.satisfies("@10:"): + args.append("-DOmega_h_CUDA_ARCH={0}".format(cuda_arch)) + else: + args.append("-DCMAKE_CUDA_FLAGS=-arch=sm_{0}".format(cuda_arch)) + else: + args.append("-DOmega_h_USE_CUDA:BOOL=OFF") if "+trilinos" in self.spec: args.append("-DOmega_h_USE_Trilinos:BOOL=ON") + if "+exodus" in self.spec: + args.append("-DOmega_h_USE_SEACASExodus:BOOL=ON") if "+gmsh" in self.spec: args.append("-DOmega_h_USE_Gmsh:BOOL=ON") if "+kokkos" in self.spec: @@ -177,14 +198,14 @@ def test_mesh(self): raise SkipTest("Package must be installed as version 9.34.1 or later") with test_part(self, "test_mesh_create", purpose="mesh construction"): - exe = which(self.prefix.bin.osh_box) + exe = which(self.prefix.bin.osh_box, required=True) exe("1", "1", "1", "2", "2", "2", "box.osh") with test_part(self, "test_mesh_adapt", purpose="mesh adaptation"): - exe = which(self.prefix.bin.osh_scale) + exe = which(self.prefix.bin.osh_scale, required=True) actual = exe("box.osh", "100", "box_100.osh", output=str.split, error=str.split) assert "adapting took" in actual with test_part(self, "test_mesh_convert", purpose="mesh to vtu conversion"): - exe = which(self.prefix.bin.osh2vtk) + exe = which(self.prefix.bin.osh2vtk, required=True) exe("box_100.osh", "box_100_vtk") diff --git a/repos/spack_repo/builtin/packages/omnictl/package.py b/repos/spack_repo/builtin/packages/omnictl/package.py new file mode 100644 index 00000000000..3ceb5ca652f --- /dev/null +++ b/repos/spack_repo/builtin/packages/omnictl/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.go import GoPackage + +from spack.package import * + + +class Omnictl(GoPackage): + """ + A CLI for accessing Omni API. + """ + + homepage = "https://github.com/siderolabs/omni" + url = "https://github.com/siderolabs/omni/archive/refs/tags/v1.7.0.tar.gz" + + maintainers("RobertMaaskant") + + license("BUSL-1.1", checked_by="RobertMaaskant") + + version("1.7.0", sha256="07dd01d8d724f59697e2754027dcbd12ee6e5bf2da1348e5b32d844e7eef4288") + + depends_on("go@1.26.2:", type="build", when="@1.7.0:") + + build_directory = "cmd/omnictl" diff --git a/repos/spack_repo/builtin/packages/omniperf/0001-remove-VERSION.sha-install.patch b/repos/spack_repo/builtin/packages/omniperf/0001-remove-VERSION.sha-install.patch deleted file mode 100644 index 779dfa67638..00000000000 --- a/repos/spack_repo/builtin/packages/omniperf/0001-remove-VERSION.sha-install.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 0672d33d7c449fe75b0be5d476d1151b26e39b99 Mon Sep 17 00:00:00 2001 -From: Afzal Patel -Date: Thu, 5 Sep 2024 14:29:36 +0000 -Subject: [PATCH] Remove install for VERSION.sha - ---- - CMakeLists.txt | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 05aac32..9cf588a 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -278,7 +278,6 @@ install( - # support files and version info - install( - FILES src/argparser.py src/config.py src/omniperf_base.py src/roofline.py VERSION -- VERSION.sha - DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${PROJECT_NAME} - COMPONENT main) - # src/omniperf_analyze --- -2.43.5 - diff --git a/repos/spack_repo/builtin/packages/omnitrace/package.py b/repos/spack_repo/builtin/packages/omnitrace/package.py index 17001b60460..1ee6e9b1075 100644 --- a/repos/spack_repo/builtin/packages/omnitrace/package.py +++ b/repos/spack_repo/builtin/packages/omnitrace/package.py @@ -20,8 +20,6 @@ class Omnitrace(CMakePackage): license("MIT") - version("amd-mainline", branch="amd-mainline", submodules=True, deprecated=True) - version("amd-staging", branch="amd-staging", submodules=True, deprecated=True) version( "rocm-6.3.0", git="https://github.com/ROCm/rocprofiler-systems", @@ -70,13 +68,6 @@ class Omnitrace(CMakePackage): version("1.7.2", commit="a41a5c155e0d3780de4c83a76f28d7c8ffa6414f", submodules=True) version("1.7.1", commit="67f7471253b8e031e476d80d2bc00e569285c1bf", submodules=True) version("1.7.0", commit="2a387f909935d06c6a4874a5b11f38fb8521800e", submodules=True) - with default_args(deprecated=True): - version("1.6.0", commit="15e6e6d979fcd5f549d952862400f292ec735b8c", submodules=True) - version("1.5.0", commit="2718596e5a6808a9278c3f6c8fddfaf977d3bcb6", submodules=True) - version("1.4.0", commit="23fb3946c7f4c0702b1b168e1d78b8b62597e3f1", submodules=True) - version("1.3.1", commit="641225f88304909fd2ca5407aec062d0fdf0ed8b", submodules=True) - version("1.3.0", commit="4dd144a32c8b83c44e132ef53f2b44fe4b4d5569", submodules=True) - version("1.2.0", commit="f82845388aab108ed1d1fc404f433a0def391bb3", submodules=True) variant( "rocm", diff --git a/repos/spack_repo/builtin/packages/ompss_2/package.py b/repos/spack_repo/builtin/packages/ompss_2/package.py index 4c736d89101..15b2371f55c 100644 --- a/repos/spack_repo/builtin/packages/ompss_2/package.py +++ b/repos/spack_repo/builtin/packages/ompss_2/package.py @@ -75,7 +75,7 @@ def install_jemalloc(self, spec, prefix): def install_mcxx(self, spec, prefix): os.chdir(glob.glob("./mcxx-*").pop()) - reconf = which("autoreconf") + reconf = which("autoreconf", required=True) reconf("-fiv") configure("--prefix=%s" % prefix, "--with-nanos6=%s" % prefix, "--enable-ompss-2") @@ -88,7 +88,7 @@ def install_llvm(self, spec, prefix): mkdirp("./build") os.chdir("./build") - cmake = which("cmake") + cmake = which("cmake", required=True) cmake( "../llvm", "-G Unix Makefiles", diff --git a/repos/spack_repo/builtin/packages/oneapi_level_zero/package.py b/repos/spack_repo/builtin/packages/oneapi_level_zero/package.py index 99581b893bb..843fc368cf6 100644 --- a/repos/spack_repo/builtin/packages/oneapi_level_zero/package.py +++ b/repos/spack_repo/builtin/packages/oneapi_level_zero/package.py @@ -24,6 +24,16 @@ class OneapiLevelZero(CMakePackage): license("MIT") + version("1.26.0", sha256="252dc01ffd2134ba25563d3851b755ff81cbda5982410296d09f3f54c118c16f") + version("1.25.2", sha256="c8f788e330e120e951bdcd7246d075244a6ea7aadd60510ecd414636d52ffb29") + version("1.24.3", sha256="c7c53f62bd91fb845c04cdbd05ed435550d37b6a8a068ef3319747df79c380c3") + version("1.23.2", sha256="dd2d8150d074aa07c2ebac152490e3e997ff5e890cbf1d72a1e7d1de0c030a8c") + version("1.22.5", sha256="fefa6be2635e0d8617f196e9e9108552ecd62bde5bbdf5099bfaabccf459f170") + version("1.21.10", sha256="e0ff1c6cb9b551019579a2dd35c3a611240c1b60918c75345faf9514142b9c34") + version("1.20.6", sha256="3fac6c9efcb013e81c751159e8312302371658ed149e3a1a1a7a80cceea48ce9") + version("1.19.2", sha256="b0bea0a09d1a68f68ecf8694e58a60e199fa5785f91c2fd59f026133bc1c4f28") + version("1.18.5", sha256="315cac7adc1216b79bfca9239358de54ab1791a12a6d5ad3bcd3b6d5aa95937b") + version("1.17.45", sha256="c7e4d3e98ee71ba4992f5891191fa792e0affe6da2bbb93a537b192eb0d24f57") version("1.17.2", sha256="f1b7414f468779a6c422d38bd06b2e5a59d861c9b1af826472724078b49b2277") version("1.17.0", sha256="edf820eab84a5f746fee730604f0381c8811f7942302c0835226715e5ae93a25") version("1.16.15", sha256="dba50f512c7da81c8d2c487f04c0fcf0ffff79a41f88a90658c96680e7c97be6") diff --git a/repos/spack_repo/builtin/packages/onnx/OpSchemaRegisterOnce.patch b/repos/spack_repo/builtin/packages/onnx/OpSchemaRegisterOnce.patch new file mode 100644 index 00000000000..87ac7795c72 --- /dev/null +++ b/repos/spack_repo/builtin/packages/onnx/OpSchemaRegisterOnce.patch @@ -0,0 +1,30 @@ +diff --git a/onnx/defs/schema.h b/onnx/defs/schema.h +index 6a870de4c7cd4d6a144d4e6fea9c7f937c7292cf..a4ceac17692d109c0cacaece93b7ca0e9d25bbec 100644 +--- a/onnx/defs/schema.h ++++ b/onnx/defs/schema.h +@@ -994,8 +994,10 @@ class OpSchemaRegistry final : public ISchemaRegistry { + + class OpSchemaRegisterOnce final { + public: +- // Export to cpp custom register macro +- explicit OpSchemaRegisterOnce( ++ // Export to cpp custom register macro. ++ // DO NOT decorate the constructor as "explicit" because that breaks the macro ONNX_OPERATOR_SCHEMA_UNIQ. ++ // NOLINTNEXTLINE(google-explicit-constructor) ++ OpSchemaRegisterOnce( // NOSONAR + OpSchema op_schema, + int opset_version_to_load = 0, + bool fail_duplicate_schema = true) { +@@ -1341,9 +1343,9 @@ size_t ReplaceAll(std::string& s, const char* from, const char* to); + // Legacy macros to register schema at static initialization + #define ONNX_OPERATOR_SCHEMA(name) ONNX_OPERATOR_SCHEMA_UNIQ_HELPER(__COUNTER__, name) + #define ONNX_OPERATOR_SCHEMA_UNIQ_HELPER(Counter, name) ONNX_OPERATOR_SCHEMA_UNIQ(Counter, name) +-#define ONNX_OPERATOR_SCHEMA_UNIQ(Counter, name) \ +- static ONNX_NAMESPACE::OpSchemaRegistry::OpSchemaRegisterOnce(op_schema_register_once##name##Counter) ONNX_UNUSED = \ +- OpSchema(#name, __FILE__, __LINE__) ++#define ONNX_OPERATOR_SCHEMA_UNIQ(Counter, name) \ ++ static ONNX_NAMESPACE::OpSchemaRegistry::OpSchemaRegisterOnce op_schema_register_once##name##Counter ONNX_UNUSED = \ ++ ONNX_NAMESPACE::OpSchema(#name, __FILE__, __LINE__) + + ONNX_API inline std::string GenerateOptionalArgumentsDoc() { + return "This operator has **optional** inputs/outputs. " diff --git a/repos/spack_repo/builtin/packages/onnx/package.py b/repos/spack_repo/builtin/packages/onnx/package.py index a3e4dc4a768..679a35a0ac7 100644 --- a/repos/spack_repo/builtin/packages/onnx/package.py +++ b/repos/spack_repo/builtin/packages/onnx/package.py @@ -20,7 +20,14 @@ class Onnx(CMakePackage): license("Apache-2.0", checked_by="wdconinc") - version("master", branch="master") + maintainers("wdconinc") + + version("main", branch="main") + version("master", branch="master", deprecated=True) + version("1.20.0", sha256="e9e9273cd39d460348aa3e2eb370a444b510e138c5f45dfa86ce50461901257b") + version("1.19.1", sha256="ce9d2569a61d64e8a3d05b92194f60ffb7c868dbb754a71f5b4d992273a9413d") + version("1.19.0", sha256="2c2ac5a078b0350a0723fac606be8cd9e9e8cbd4c99bab1bffe2623b188fd236") + version("1.18.0", sha256="b466af96fd8d9f485d1bb14f9bbdd2dfb8421bc5544583f014088fb941a1d21e") version("1.17.0", sha256="8d5e983c36037003615e5a02d36b18fc286541bf52de1a78f6cf9f32005a820e") version("1.16.2", sha256="84fc1c3d6133417f8a13af6643ed50983c91dacde5ffba16cc8bb39b22c2acbb") version("1.16.1", sha256="0e6aa2c0a59bb2d90858ad0040ea1807117cc2f05b97702170f18e6cd6b66fb3") @@ -53,36 +60,33 @@ class Onnx(CMakePackage): ) # py-torch@1.6:1.7 version("1.6.0_2020-02-16", commit="9fdae4c68960a2d44cd1cc871c74a6a9d469fa1f") # py-torch@1.5 version("1.6.0_2019-11-06", commit="fea8568cac61a482ed208748fdc0e1a8e47f62f5") # py-torch@1.4 - version( - "1.6.0_2019-09-26", commit="034921bd574cc84906b7996c07873454b7dd4135", deprecated=True - ) # py-torch@1.3 - version( - "1.5.0_2019-07-25", commit="28ca699b69b5a31892619defca2391044a9a6052", deprecated=True - ) # py-torch@1.2 - version( - "1.5.0_2019-04-25", commit="22662bfd4dcc6baebf29e3b823a051676f991001", deprecated=True - ) # py-torch@1.1 - version( - "1.3.0_2018-12-04", commit="42804705bdbf179d1a98394008417e1392013547", deprecated=True - ) # py-torch@1.0 - version( - "1.2.2_2018-07-16", commit="b2817a682f25f960586f06caa539bbbd7a96b859", deprecated=True - ) # py-torch@0.4.1 - version( - "1.1.0_2018-04-19", commit="7e1bed51cc508a25b22130de459830b5d5063c41", deprecated=True - ) # py-torch@0.4.0 - depends_on("c", type="build") # FIXME: note https://github.com/onnx/onnx/pull/6826 + depends_on("c", type="build", when="@:1.18") depends_on("cxx", type="build") generator("ninja") + + # CMakeLists.txt depends_on("cmake@3.1:", type="build") depends_on("cmake@3.14:", type="build", when="@1.17:") + depends_on("cmake@3.18:", type="build", when="@1.18:") + depends_on("cmake@3.24:", type="build", when="@1.19:") + depends_on("cmake@3.26:", type="build", when="@1.20:") + + # pyproject.toml assumed to apply to CMake build as well depends_on("python", type="build") + depends_on("python@3.8:", when="@1.15:", type=("build", "run")) + depends_on("python@3.9:", when="@1.18:", type=("build", "run")) + depends_on("python@3.10:", when="@1.20:", type=("build", "run")) + depends_on("protobuf") + # Allow conversion from OpSchema to OpSchemaRegisterOnce (needed for onnxruntime) + # Ref: https://github.com/onnx/onnx/pull/7390 + patch("OpSchemaRegisterOnce.patch", when="@1.18.0:1.19") + def patch(self): - if self.spec.satisfies("@1.13:1.14 ^protobuf@3.22:"): + if self.spec.satisfies("@1.13:1.14 ^protobuf@22:"): # CMAKE_CXX_STANDARD is overridden in CMakeLists.txt until 1.14 cxxstd = self.spec["abseil-cpp"].variants["cxxstd"].value filter_file("CMAKE_CXX_STANDARD 11", f"CMAKE_CXX_STANDARD {cxxstd}", "CMakeLists.txt") @@ -95,8 +99,11 @@ def cmake_args(self): # Try to get ONNX to use the same version of python as the spec is using self.define("PY_VERSION", self.spec["python"].version.up_to(2)), self.define("ONNX_BUILD_TESTS", self.run_tests), + self.define( + "ONNX_USE_PROTOBUF_SHARED_LIBS", self.spec["protobuf"].variants["shared"].value + ), ] - if self.spec.satisfies("@1.15: ^protobuf@3.22:"): + if self.spec.satisfies("@1.15: ^protobuf@22:"): # CMAKE_CXX_STANDARD can be set on command line as of 1.15 cxxstd = self.spec["abseil-cpp"].variants["cxxstd"].value args.append(self.define("CMAKE_CXX_STANDARD", cxxstd)) diff --git a/repos/spack_repo/builtin/packages/oommf/package.py b/repos/spack_repo/builtin/packages/oommf/package.py index 29caa66aa55..e7dc3cb0d5e 100644 --- a/repos/spack_repo/builtin/packages/oommf/package.py +++ b/repos/spack_repo/builtin/packages/oommf/package.py @@ -81,34 +81,6 @@ class Oommf(Package): url="https://math.nist.gov/oommf/dist/oommf20a2_20200608-hotfix.tar.gz", ) - # Deprecated versions have never been tested with spack - version( - "20a2_20190930-vanilla", - sha256="53b41ef30f76766239a1071d13081d8d7604a2ea59187ca4abef356ad1be4986", - url="https://math.nist.gov/oommf/dist/oommf20a2_20190930.tar.gz", - deprecated=True, - ) - - version( - "20a1_20180930", - deprecated=True, - sha256="c871e0dbb1522c3c1314af6c084b90cdbe69fd869b55ac94443851b74f818ed2", - ) - - version( - "20a0_20170929a0", - deprecated=True, - sha256="3439d1c9e95cc7395bc2e2330bba8cf198585d1b350251ea8561c1554ff8c7fd", - url="https://github.com/fangohr/oommf/archive/refs/tags/2.0a0_20170929a0.tar.gz", - ) - - version( - "12b0_20160930", - deprecated=True, - sha256="363006f549bb63a39564fafc18b52342a14c1c3769c214467a39f72a0c0be36b", - url="https://github.com/fangohr/oommf/archive/refs/tags/1.2b0_20160930b1.tar.gz", - ) - depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/oomph/package.py b/repos/spack_repo/builtin/packages/oomph/package.py new file mode 100644 index 00000000000..b5136e61541 --- /dev/null +++ b/repos/spack_repo/builtin/packages/oomph/package.py @@ -0,0 +1,125 @@ +# 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, generator + +from spack.package import * + + +class Oomph(CMakePackage): + """Oomph is a library for enabling high performance point-to-point, + asynchronous communication over different fabrics""" + + homepage = "https://github.com/ghex-org/oomph" + url = "https://github.com/ghex-org/oomph/archive/refs/tags/v0.0.0.tar.gz" + git = "https://github.com/ghex-org/oomph.git" + + maintainers("boeschf", "msimberg") + + license("BSD-3-Clause", checked_by="msimberg") + + version("main", branch="main") + version("0.5.0", sha256="4c79ff50d14efcde7ce4d14122714efb16443ccff437ab60973cf1db1032fc3d") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build", when="+fortran-bindings") + + generator("ninja") + + depends_on("ninja", type="build") + + variant("cuda", default=False, description="Enable CUDA support") + variant("rocm", default=False, description="Enable ROCm support") + + backends = ("mpi", "ucx", "libfabric") + variant( + "backend", default="mpi", description="Transport backend", values=backends, multi=False + ) + + variant("fortran-bindings", default=False, description="Build Fortran bindings") + with when("+fortran-bindings"): + variant( + "fortran-fp", + default="float", + description="Floating point type", + values=("float", "double"), + multi=False, + ) + variant("fortran-openmp", default=True, description="Compile with OpenMP") + + variant( + "enable-barrier", + default=True, + description="Enable thread barrier (disable for task based runtime)", + ) + + depends_on("cmake@3.17:", type="build") + depends_on("googletest", type="test") + depends_on("hwmalloc") + depends_on("hwmalloc+cuda", when="+cuda") + depends_on("hwmalloc+rocm", when="+rocm") + depends_on("hwmalloc~rocm~cuda", when="~rocm~cuda") + depends_on("cuda", when="+cuda") + depends_on("hip", when="+rocm") + + conflicts("+cuda +rocm", msg="CUDA and ROCm support are mutually exclusive") + + with when("backend=ucx"): + depends_on("ucx+thread_multiple") + depends_on("ucx+cuda", when="+cuda") + depends_on("ucx+rocm", when="+rocm") + variant("use-pmix", default="False", description="Use PMIx to establish out-of-band setup") + variant("use-spin-lock", default="False", description="Use pthread spin locks") + depends_on("pmix", when="+use-pmix") + + libfabric_providers = ("cxi", "efa", "gni", "psm2", "tcp", "verbs") + with when("backend=libfabric"): + variant( + "libfabric-provider", + default="tcp", + description="fabric", + values=libfabric_providers, + multi=False, + ) + for provider in libfabric_providers: + depends_on(f"libfabric fabrics={provider}", when=f"libfabric-provider={provider}") + + depends_on("mpi") + depends_on("boost+thread") + + def cmake_args(self): + args = [ + self.define_from_variant("OOMPH_BUILD_FORTRAN", "fortran-bindings"), + self.define_from_variant("OOMPH_FORTRAN_OPENMP", "fortran-openmp"), + self.define_from_variant("OOMPH_UCX_USE_PMI", "use-pmix"), + self.define_from_variant("OOMPH_UCX_USE_SPIN_LOCK", "use-spin-lock"), + self.define_from_variant("OOMPH_ENABLE_BARRIER", "enable-barrier"), + self.define("OOMPH_WITH_TESTING", self.run_tests), + self.define("OOMPH_GIT_SUBMODULE", False), + self.define("OOMPH_USE_BUNDLED_LIBS", False), + ] + + if self.run_tests and self.spec.satisfies("^mpi=openmpi"): + args.append(self.define("MPIEXEC_PREFLAGS", "--oversubscribe")) + + if self.spec.satisfies("+fortran-bindings"): + args.append(self.define("OOMPH_FORTRAN_FP", self.spec.variants["fortran-fp"].value)) + + for backend in self.backends: + args.append( + self.define( + f"OOMPH_WITH_{backend.upper()}", self.spec.variants["backend"].value == backend + ) + ) + + if self.spec.satisfies("backend=libfabric"): + args.append( + self.define( + "OOMPH_LIBFABRIC_PROVIDER", self.spec.variants["libfabric-provider"].value + ) + ) + + return args diff --git a/repos/spack_repo/builtin/packages/opam/package.py b/repos/spack_repo/builtin/packages/opam/package.py index 850cd6bda54..05be9b238df 100644 --- a/repos/spack_repo/builtin/packages/opam/package.py +++ b/repos/spack_repo/builtin/packages/opam/package.py @@ -19,6 +19,7 @@ class Opam(AutotoolsPackage): maintainers("scemama") + version("2.5.0", sha256="25fb98f962c4227c1261e142afc68a416778e6e819600bd5ee3ec4a18ae1e238") version("2.2.1", sha256="07ad3887f61e0bc61a0923faae16fcc141285ece5b248a9e2cd4f902523cc121") version("2.2.0", sha256="39334f36adbe280683487cf204b7b0642080fc5965747f7d6f7cc7b83cd7a192") version("2.1.6", sha256="d2af5edc85f552e0cf5ec0ddcc949d94f2dc550dc5df595174a06a4eaf8af628") @@ -35,7 +36,8 @@ class Opam(AutotoolsPackage): version("1.2.2", sha256="15e617179251041f4bf3910257bbb8398db987d863dd3cfc288bdd958de58f00") version("1.2.1", sha256="f210ece7a2def34b486c9ccfb75de8febd64487b2ea4a14a7fa0358f37eacc3b") - depends_on("c", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build", when="@2.2.0:") # OCaml 4.10.0 has removed the -safe-string flag, which is necessary # for OPAM 1i (see docstring of setup_build_environment). diff --git a/repos/spack_repo/builtin/packages/open3d/package.py b/repos/spack_repo/builtin/packages/open3d/package.py index afd31c072bd..acad63fed3d 100644 --- a/repos/spack_repo/builtin/packages/open3d/package.py +++ b/repos/spack_repo/builtin/packages/open3d/package.py @@ -128,5 +128,4 @@ def test_open3d_import(self): return with working_dir("spack-test"): - python = which(python.path) python("-c", "import open3d") diff --git a/repos/spack_repo/builtin/packages/openbabel/package.py b/repos/spack_repo/builtin/packages/openbabel/package.py index 898b1915ba7..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,20 +39,24 @@ class Openbabel(CMakePackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("python", 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") - depends_on("boost +filesystem +iostreams +test") + depends_on("boost +program_options +filesystem +iostreams +system +test") depends_on("cairo", when="+cairo") # required to support PNG depiction depends_on("pango", when="+cairo") # custom cairo requires custom pango - depends_on("eigen@3.0:") # required if using the language bindings + depends_on("eigen@3") # required if using the language bindings depends_on("libxml2") # required to read/write CML files, XML formats depends_on("zlib-api") # required to support reading gzipped files 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") @@ -65,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/opencarp/package.py b/repos/spack_repo/builtin/packages/opencarp/package.py index ea10a226cfd..e4d00f5fc72 100644 --- a/repos/spack_repo/builtin/packages/opencarp/package.py +++ b/repos/spack_repo/builtin/packages/opencarp/package.py @@ -20,12 +20,24 @@ class Opencarp(CMakePackage): maintainers("MarieHouillon") version( - "16.0", - commit="295055b6a3859709730f62fc8d4fe0e87c4e20b9", + "19.0", + commit="9accae0522f4108774ed8eb1df90b8ef0afd4c8e", submodules=False, no_cache=True, preferred=True, ) + version( + "18.1", commit="6eaa147d18b69a6037d05a90b841e23301048a59", submodules=False, no_cache=True + ) + version( + "18.0", commit="ac4e96792db082958fa9a830341f6e0642cc6bb8", submodules=False, no_cache=True + ) + version( + "17.0", commit="537a359d49e976cc9f97042189fb9d3ba4e686c4", submodules=False, no_cache=True + ) + version( + "16.0", commit="295055b6a3859709730f62fc8d4fe0e87c4e20b9", submodules=False, no_cache=True + ) version( "15.0", commit="2271a3cccd7137f1e28c043c10adbd80480f1462", submodules=False, no_cache=True ) @@ -66,6 +78,8 @@ class Opencarp(CMakePackage): depends_on("git", type=("build", "run")) depends_on("petsc") + depends_on("petsc@:3.22.5", when="@:17.0") + depends_on("petsc@:3.24.6", when="@:18.1") depends_on("binutils") depends_on("gengetopt") depends_on("pkgconfig") @@ -76,7 +90,22 @@ class Opencarp(CMakePackage): depends_on("py-carputils", when="+carputils", type=("build", "run")) depends_on("meshtool", when="+meshtool", type=("build", "run")) # Use specific versions of carputils and meshtool for releases - for ver in ["16.0", "15.0", "13.0", "12.0", "11.0", "10.0", "9.0", "8.2", "8.1", "7.0"]: + for ver in [ + "19.0", + "18.1", + "18.0", + "17.0", + "16.0", + "15.0", + "13.0", + "12.0", + "11.0", + "10.0", + "9.0", + "8.2", + "8.1", + "7.0", + ]: depends_on("py-carputils@oc" + ver, when="@" + ver + " +carputils") depends_on("meshtool@oc" + ver, when="@" + ver + " +meshtool") diff --git a/repos/spack_repo/builtin/packages/opencascade/package.py b/repos/spack_repo/builtin/packages/opencascade/package.py index ef57ad23f99..54f3e453430 100644 --- a/repos/spack_repo/builtin/packages/opencascade/package.py +++ b/repos/spack_repo/builtin/packages/opencascade/package.py @@ -17,13 +17,15 @@ class Opencascade(CMakePackage): visualization, data exchange and rapid application development.""" homepage = "https://www.opencascade.com" - url = "https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V7_4_0;sf=tgz" - git = "https://git.dev.opencascade.org/repos/occt.git" + url = "https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V7_4_0.tar.gz" + git = "https://github.com/Open-Cascade-SAS/OCCT.git" maintainers("wdconinc") license("LGPL-2.1-only") + version("7.9.1", sha256="de442298cd8860f5580b01007f67f0ecd0b8900cfa4da467fa3c823c2d1a45df") + version("7.9.0", sha256="151b7a522ba8220aed3009e440246abbaf2ffec42672c37e9390096f7f2c098d") with default_args(extension="tar.gz"): version("7.8.1", sha256="33f2bdb67e3f6ae469f3fa816cfba34529a23a9cb736bf98a32b203d8531c523") version("7.8.0", sha256="b9c8f0a9d523ac1a606697f95fc39d8acf1140d3728561b8010a604431b4e9cf") @@ -118,9 +120,10 @@ class Opencascade(CMakePackage): conflicts("^vtk@9.2", when="@:7.7.0 +vtk") def url_for_version(self, version): - url = ( - "https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V{0};sf=tgz" - ) + if version > Version("7.8.1"): + url = "https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V{0}.tar.gz" + else: + url = "https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V{0};sf=tgz" return url.format(version.underscored) def cmake_args(self): diff --git a/repos/spack_repo/builtin/packages/opencl_c_headers/package.py b/repos/spack_repo/builtin/packages/opencl_c_headers/package.py index cffa8f67efc..9fc504ae02a 100644 --- a/repos/spack_repo/builtin/packages/opencl_c_headers/package.py +++ b/repos/spack_repo/builtin/packages/opencl_c_headers/package.py @@ -12,11 +12,14 @@ class OpenclCHeaders(CMakePackage): """OpenCL (Open Computing Language) C header files""" homepage = "https://www.khronos.org/registry/OpenCL/" - url = "https://github.com/KhronosGroup/OpenCL-Headers/archive/v2020.06.16.tar.gz" + url = "https://github.com/KhronosGroup/OpenCL-Headers/archive/v2024.10.24.tar.gz" maintainers("lorddavidiii") license("Apache-2.0") + version( + "2024.10.24", sha256="159f2a550592bae49859fee83d372acd152328fdf95c0dcd8b9409f8fad5db93" + ) version( "2024.05.08", sha256="3c3dd236d35f4960028f4f58ce8d963fb63f3d50251d1e9854b76f1caab9a309" ) diff --git a/repos/spack_repo/builtin/packages/opencl_clhpp/package.py b/repos/spack_repo/builtin/packages/opencl_clhpp/package.py index 2120a51bfda..049d8cbfaf1 100644 --- a/repos/spack_repo/builtin/packages/opencl_clhpp/package.py +++ b/repos/spack_repo/builtin/packages/opencl_clhpp/package.py @@ -36,5 +36,5 @@ class OpenclClhpp(CMakePackage): @run_after("install") def post_install(self): if sys.platform == "darwin": - ln = which("ln") + ln = which("ln", required=True) ln("-s", prefix.include.CL, prefix.include.OpenCL) diff --git a/repos/spack_repo/builtin/packages/opencl_icd_loader/package.py b/repos/spack_repo/builtin/packages/opencl_icd_loader/package.py index 1077afbf9a4..5de8248d5c4 100644 --- a/repos/spack_repo/builtin/packages/opencl_icd_loader/package.py +++ b/repos/spack_repo/builtin/packages/opencl_icd_loader/package.py @@ -11,12 +11,15 @@ class OpenclIcdLoader(CMakePackage): """Khronos official OpenCL ICD Loader""" homepage = "https://github.com/KhronosGroup/OpenCL-ICD-Loader" - url = "https://github.com/KhronosGroup/OpenCL-ICD-Loader/archive/refs/tags/v2024.05.08.tar.gz" + url = "https://github.com/KhronosGroup/OpenCL-ICD-Loader/archive/refs/tags/v2024.10.24.tar.gz" maintainers("uphoffc") license("Apache-2.0", checked_by="uphoffc") + version( + "2024.10.24", sha256="95f2f0cda375b13d2760290df044ebea9c6ff954a7d7faa0867422442c9174dc" + ) version( "2024.05.08", sha256="eb2c9fde125ffc58f418d62ad83131ba686cccedcb390cc7e6bb81cc5ef2bd4f" ) @@ -50,6 +53,7 @@ class OpenclIcdLoader(CMakePackage): depends_on("c", type="build") # generated + depends_on("opencl-c-headers@2024.10.24", when="@2024.10.24") depends_on("opencl-c-headers@2024.05.08", when="@2024.05.08") depends_on("opencl-c-headers@2023.12.14", when="@2023.12.14") depends_on("opencl-c-headers@2023.04.17", when="@2023.04.17") diff --git a/repos/spack_repo/builtin/packages/opencv/package.py b/repos/spack_repo/builtin/packages/opencv/package.py index ded7baeab0f..e8f2720e013 100644 --- a/repos/spack_repo/builtin/packages/opencv/package.py +++ b/repos/spack_repo/builtin/packages/opencv/package.py @@ -17,7 +17,7 @@ class Opencv(CMakePackage, CudaPackage): homepage = "https://opencv.org/" url = "https://github.com/opencv/opencv/archive/4.5.0.tar.gz" git = "https://github.com/opencv/opencv.git" - find_python_hints = False # opencv uses custom OpenCVDetectPython.cmake + disable_cmake_hints_from = ["python"] # opencv uses custom OpenCVDetectPython.cmake maintainers("bvanessen", "adamjstewart") @@ -26,32 +26,49 @@ class Opencv(CMakePackage, CudaPackage): license("BSD-3-Clause") version("master", branch="master") - version("4.10.0", sha256="b2171af5be6b26f7a06b1229948bbb2bdaa74fcf5cd097e0af6378fce50a6eb9") + version("4.13.0", sha256="1d40ca017ea51c533cf9fd5cbde5b5fe7ae248291ddf2af99d4c17cf8e13017d") + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2025-53644/ + version( + "4.10.0", sha256="b2171af5be6b26f7a06b1229948bbb2bdaa74fcf5cd097e0af6378fce50a6eb9" + ) version("4.9.0", sha256="ddf76f9dffd322c7c3cb1f721d0887f62d747b82059342213138dc190f28bc6c") version("4.8.1", sha256="62f650467a60a38794d681ae7e66e3e8cfba38f445e0bf87867e2f2cdc8be9d5") version("4.8.0", sha256="cbf47ecc336d2bff36b0dcd7d6c179a9bb59e805136af6b9670ca944aef889bd") - version("4.7.0", sha256="8df0079cdbe179748a18d44731af62a245a45ebf5085223dc03133954c662973") - version("4.6.0", sha256="1ec1cba65f9f20fe5a41fda1586e01c70ea0c9a6d7b67c9e13edf0cfe2239277") - version("4.5.5", sha256="a1cfdcf6619387ca9e232687504da996aaa9f7b5689986b8331ec02cb61d28ad") - version("4.5.4", sha256="c20bb83dd790fc69df9f105477e24267706715a9d3c705ca1e7f613c7b3bad3d") - version("4.5.2", sha256="ae258ed50aa039279c3d36afdea5c6ecf762515836b27871a8957c610d0424f8") + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2023-2618/ + # https://www.cvedetails.com/cve/CVE-2023-2617/ + version("4.7.0", sha256="8df0079cdbe179748a18d44731af62a245a45ebf5085223dc03133954c662973") + version("4.6.0", sha256="1ec1cba65f9f20fe5a41fda1586e01c70ea0c9a6d7b67c9e13edf0cfe2239277") + version("4.5.5", sha256="a1cfdcf6619387ca9e232687504da996aaa9f7b5689986b8331ec02cb61d28ad") + version("4.5.4", sha256="c20bb83dd790fc69df9f105477e24267706715a9d3c705ca1e7f613c7b3bad3d") + version("4.5.2", sha256="ae258ed50aa039279c3d36afdea5c6ecf762515836b27871a8957c610d0424f8") version("4.5.1", sha256="e27fe5b168918ab60d58d7ace2bd82dd14a4d0bd1d3ae182952c2113f5637513") version("4.5.0", sha256="dde4bf8d6639a5d3fe34d5515eab4a15669ded609a1d622350c7ff20dace1907") version("4.2.0", sha256="9ccb2192d7e8c03c58fee07051364d94ed7599363f3b0dce1c5e6cc11c1bb0ec") - version("4.1.2", sha256="385dd0a9c25e67ef0dd60e022d2a2d7b17e2f36819cf3cb46aa8cdff5c5282c9") - version("4.1.1", sha256="5de5d96bdfb9dad6e6061d70f47a0a91cee96bb35afb9afb9ecb3d43e243d217") - version("4.1.0", sha256="8f6e4ab393d81d72caae6e78bd0fd6956117ec9f006fba55fcdb88caf62989b7") - version("4.0.1", sha256="7b86a0ee804244e0c407321f895b15e4a7162e9c5c0d2efc85f1cadec4011af4") - version("4.0.0", sha256="3787b3cc7b21bba1441819cb00c636911a846c0392ddf6211d398040a1e4886c") - version("3.4.12", sha256="c8919dfb5ead6be67534bf794cb0925534311f1cd5c6680f8164ad1813c88d13") - version("3.4.6", sha256="e7d311ff97f376b8ee85112e2b536dbf4bdf1233673500175ed7cf21a0089f6d") - version("3.4.5", sha256="0c57d9dd6d30cbffe68a09b03f4bebe773ee44dc8ff5cd6eaeb7f4d5ef3b428e") - version("3.4.4", sha256="a35b00a71d77b484f73ec485c65fe56c7a6fa48acd5ce55c197aef2e13c78746") - version("3.4.3", sha256="4eef85759d5450b183459ff216b4c0fa43e87a4f6aa92c8af649f89336f002ec") - version("3.4.1", sha256="f1b87684d75496a1054405ae3ee0b6573acaf3dad39eaf4f1d66fdd7e03dc852") - version("3.4.0", sha256="678cc3d2d1b3464b512b084a8cca1fad7de207c7abdf2caa1fed636c13e916da") - version("3.3.1", sha256="5dca3bb0d661af311e25a72b04a7e4c22c47c1aa86eb73e70063cd378a2aa6ee") - version("3.3.0", sha256="8bb312b9d9fd17336dc1f8b3ac82f021ca50e2034afc866098866176d985adc6") + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2019-5064/ + # https://www.cvedetails.com/cve/CVE-2019-5063/ + version("4.1.2", sha256="385dd0a9c25e67ef0dd60e022d2a2d7b17e2f36819cf3cb46aa8cdff5c5282c9") + # https://www.cvedetails.com/cve/CVE-2019-16249/ + version("4.1.1", sha256="5de5d96bdfb9dad6e6061d70f47a0a91cee96bb35afb9afb9ecb3d43e243d217") + # https://www.cvedetails.com/cve/CVE-2019-19624/ + # https://www.cvedetails.com/cve/CVE-2019-15939/ + # https://www.cvedetails.com/cve/CVE-2019-14493/ + version("4.1.0", sha256="8f6e4ab393d81d72caae6e78bd0fd6956117ec9f006fba55fcdb88caf62989b7") + version("4.0.1", sha256="7b86a0ee804244e0c407321f895b15e4a7162e9c5c0d2efc85f1cadec4011af4") + version("4.0.0", sha256="3787b3cc7b21bba1441819cb00c636911a846c0392ddf6211d398040a1e4886c") + version( + "3.4.12", sha256="c8919dfb5ead6be67534bf794cb0925534311f1cd5c6680f8164ad1813c88d13" + ) + version("3.4.6", sha256="e7d311ff97f376b8ee85112e2b536dbf4bdf1233673500175ed7cf21a0089f6d") + version("3.4.5", sha256="0c57d9dd6d30cbffe68a09b03f4bebe773ee44dc8ff5cd6eaeb7f4d5ef3b428e") + version("3.4.4", sha256="a35b00a71d77b484f73ec485c65fe56c7a6fa48acd5ce55c197aef2e13c78746") + version("3.4.3", sha256="4eef85759d5450b183459ff216b4c0fa43e87a4f6aa92c8af649f89336f002ec") + version("3.4.1", sha256="f1b87684d75496a1054405ae3ee0b6573acaf3dad39eaf4f1d66fdd7e03dc852") + version("3.4.0", sha256="678cc3d2d1b3464b512b084a8cca1fad7de207c7abdf2caa1fed636c13e916da") + version("3.3.1", sha256="5dca3bb0d661af311e25a72b04a7e4c22c47c1aa86eb73e70063cd378a2aa6ee") + version("3.3.0", sha256="8bb312b9d9fd17336dc1f8b3ac82f021ca50e2034afc866098866176d985adc6") contrib_vers = [ "3.3.0", @@ -80,6 +97,7 @@ class Opencv(CMakePackage, CudaPackage): "4.8.1", "4.9.0", "4.10.0", + "4.13.0", ] for cv in contrib_vers: resource( @@ -97,7 +115,7 @@ class Opencv(CMakePackage, CudaPackage): patch("opencv3.2_cmake.patch", when="@3.2:3.4.1") # do not prepend system paths - patch("cmake_no-system-paths.patch") + patch("cmake_no-system-paths.patch", when="@:4.10") patch("opencv4.1.1_clp_cmake.patch", when="@4.1.1:") patch("opencv4.0.0_clp_cmake.patch", when="@4.0.0:4.1.0") @@ -651,6 +669,7 @@ class Opencv(CMakePackage, CudaPackage): "android_mediandk", "android_native_camera", "avfoundation", + "avif", "cap_ios", "carotene", "clp", @@ -777,6 +796,7 @@ class Opencv(CMakePackage, CudaPackage): depends_on("jasper", when="+jasper") depends_on("jpeg", when="+jpeg") depends_on("lapack", when="+lapack") + depends_on("libavif", when="+avif") depends_on("onnx", when="+onnx") depends_on("opencl", when="+opencl") depends_on("openexr", when="+openexr") diff --git a/repos/spack_repo/builtin/packages/opendatadetector/package.py b/repos/spack_repo/builtin/packages/opendatadetector/package.py index 6315e541e1d..c653a6fb858 100644 --- a/repos/spack_repo/builtin/packages/opendatadetector/package.py +++ b/repos/spack_repo/builtin/packages/opendatadetector/package.py @@ -11,8 +11,8 @@ class Opendatadetector(CMakePackage): """Open Data Detector for High Energy Physics.""" - homepage = "https://gitlab.cern.ch/acts/OpenDataDetector.git" - git = "https://gitlab.cern.ch/acts/OpenDataDetector.git" + homepage = "https://github.com/OpenDataDetector/OpenDataDetector.git" + git = "https://github.com/OpenDataDetector/OpenDataDetector.git" maintainers("vvolkl") @@ -21,6 +21,8 @@ class Opendatadetector(CMakePackage): license("MPL-2.0-no-copyleft-exception") version("main", branch="main") + version("v6.0.2", tag="v6.0.2", commit="d70556f33b1c36abdf101a07ad8cf57eb56fbdf1") + version("v4.0.4", tag="v4.0.4", commit="b0992c148305224899a16d21fcd56406408bd393") version("v3.0.0", tag="v3.0.0", commit="e3b1eceae96fd5dddf10223753964c570ee868c9") version("v2", tag="v2", commit="7041ae086dff4ee4a8d5b65f5d9559acc6dbec47") version("v1", tag="v1", commit="81c43c6511723c13c15327479082d3dcfa1947c7") @@ -36,7 +38,12 @@ def cmake_args(self): args = [self.define("CMAKE_CXX_STANDARD", self.spec["root"].variants["cxxstd"].value)] return args + @property + def libs(self): + return find_libraries( + "libOpenDataDetector*", root=self.prefix, shared=True, recursive=True + ) + def setup_run_environment(self, env: EnvironmentModifications) -> None: env.set("OPENDATADETECTOR_DATA", join_path(self.prefix.share, "OpenDataDetector")) - for lib_path in [self.prefix.lib, self.prefix.lib64]: - env.prepend_path("LD_LIBRARY_PATH", lib_path) + env.prepend_path("LD_LIBRARY_PATH", self.spec["opendatadetector"].libs.directories[0]) diff --git a/repos/spack_repo/builtin/packages/openfast/package.py b/repos/spack_repo/builtin/packages/openfast/package.py index d60a7302d6e..cc2d9aa5cd9 100644 --- a/repos/spack_repo/builtin/packages/openfast/package.py +++ b/repos/spack_repo/builtin/packages/openfast/package.py @@ -19,6 +19,10 @@ class Openfast(CMakePackage): version("develop", branch="dev") version("master", branch="main") + version("5.0.0", tag="v5.0.0", commit="2895884d2be01862173c88d70f86b358d2f1a50a") + version("4.2.1", tag="v4.2.1", commit="2daa99a0f9f573642816d6f52c07a2e3b77a85f1") + version("4.2.0", tag="v4.2.0", commit="3a9d3f29f03b52b536d391fbd360683f847be712") + version("4.1.2", tag="v4.1.2", commit="02847314dfdc4069d70b8b493e37b12b810a11e2") version("4.1.1", tag="v4.1.1", commit="4350a49a6292144c6d8433671e4a9ea33b46c214") version("4.0.5", tag="v4.0.5", commit="f4c0b48139479fcfdca10b4dfed6ef86fa1e0d7d") version("4.0.4", tag="v4.0.4", commit="d28a823169e75029d73362b07a2942d0a454f03b") @@ -41,13 +45,6 @@ class Openfast(CMakePackage): version("2.0.0", tag="v2.0.0", commit="0769598a17e19b3ccd00a85cde389995f55024a8") version("1.0.0", tag="v1.0.0", commit="e788b9b18bd5ed96ea59d4bc0812d461bc430cfe") - with default_args(deprecated=True): - version("4.1.0", tag="v4.1.0", commit="8d2470b876a5229f9e4adf0391bda32096ed43b2") - version("4.0.3", tag="v4.0.3", commit="20632d7728da024478956b545876eb24a48dadbe") - version("4.0.2", tag="v4.0.2", commit="fc1110183bcc87b16d93129edabdce6d30e3a497") - version("4.0.1", tag="v4.0.1", commit="89358f1843b62071ee1a8ca943c1b5277bcbd45a") - version("4.0.0", tag="v4.0.0", commit="da685d4997fd17ea845812c785325efa72edcf47") - patch("hub_seg_fault.patch", when="@2.7:3.2") patch("openmp.patch", when="@3.5.3:3.5.4") diff --git a/repos/spack_repo/builtin/packages/openfoam/common/spack-Allwmake b/repos/spack_repo/builtin/packages/openfoam/common/spack-Allwmake index 2b4d8f84123..1c942b91fd9 100755 --- a/repos/spack_repo/builtin/packages/openfoam/common/spack-Allwmake +++ b/repos/spack_repo/builtin/packages/openfoam/common/spack-Allwmake @@ -19,6 +19,13 @@ then ./Allwmake-spack $@ # Pass arguments else ./Allwmake $@ # Pass arguments + + # Build any additional plugins (if the sources exist) + if [ -x ./Allwmake-plugins ] + then + ./Allwmake-plugins -k $@ # Pass arguments + fi + ##echo "Disabled build of openfoam" # When testing environment only # Generate manpages diff --git a/repos/spack_repo/builtin/packages/openfoam/package.py b/repos/spack_repo/builtin/packages/openfoam/package.py index 5451f4d19f7..9d63f69bc2a 100644 --- a/repos/spack_repo/builtin/packages/openfoam/package.py +++ b/repos/spack_repo/builtin/packages/openfoam/package.py @@ -244,6 +244,15 @@ def mplib_content(spec, pre=None): return info +def submodules(package): + submodules = [] + if package is not None and package.spec.satisfies("plugins=avalanche"): + submodules.append("plugins/avalanche") + if package is not None and package.spec.satisfies("plugins=cfmesh"): + submodules.append("plugins/cfmesh") + return submodules + + # ----------------------------------------------------------------------------- @@ -259,14 +268,21 @@ class Openfoam(Package): maintainers("olesenm") homepage = "https://www.openfoam.com/" url = "https://sourceforge.net/projects/openfoam/files/v1906/OpenFOAM-v1906.tgz" - git = "https://develop.openfoam.com/Development/openfoam.git" + git = "https://gitlab.com/openfoam/core/openfoam.git" list_url = "https://sourceforge.net/projects/openfoam/files/" list_depth = 2 license("GPL-3.0-or-later") - version("develop", branch="develop", submodules="True") - version("master", branch="master", submodules="True") + version("develop", branch="develop", submodules=True) + version("master", branch="master", submodules=True) + version( + "2512", + tag="OpenFOAM-v2512", + commit="87ed40d256d22ea38fcc648dfc82a22162427b18", + submodules=submodules, + ) + version("2506", sha256="63d26f48ae7ee9a7806a0ceb339ef8a0ba485a4714d54fbfb31e78e1a4849965") version("2412", sha256="c353930105c39b75dac7fa7cfbfc346390caa633a868130fd8c9816ef5f732cd") version("2406", sha256="8d1450fb89eec1e7cecc55c3bb7bc486ccbf63d069379d1d5d7518fa16a4686a") version("2312", sha256="f113183a4d027c93939212af8967053c5f8fe76fb62e5848cb11bbcf8e829552") @@ -355,6 +371,14 @@ class Openfoam(Package): multi=False, ) + variant( + "plugins", + default="none", + description="With optional plugins", + values=("none", conditional("avalanche", "cfmesh", when="@2512:")), + multi=True, + ) + depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -422,13 +446,13 @@ class Openfoam(Package): patch("1612-spack-patches.patch", when="@1612") # kahip patch (wmake) patch( - "https://develop.openfoam.com/Development/openfoam/commit/8831dfc58b0295d0d301a78341dd6f4599073d45.patch", + "https://gitlab.com/openfoam/core/openfoam/commit/8831dfc58b0295d0d301a78341dd6f4599073d45.patch", when="@1806", sha256="531146be868dd0cda70c1cf12a22110a38a30fd93b5ada6234be3d6c9256c6cf", ) # Fix: missing std::array include (searchable sphere) patch( - "https://develop.openfoam.com/Development/openfoam/commit/b4324b1297761545d5b10f50b60ab29e71c172aa.patch", + "https://gitlab.com/openfoam/core/openfoam/commit/b4324b1297761545d5b10f50b60ab29e71c172aa.patch", when="@2012_220610", sha256="bad4b0e80fd26ea702bce9ccfb925edbbaa3308f70392fe6da2c7671b1d39bea", ) @@ -590,7 +614,7 @@ def patch(self): projdir = "OpenFOAM-v{0}".format(self.version) if not os.path.exists(join_path(self.stage.path, projdir)): tty.info("Added directory link {0}".format(projdir)) - os.symlink( + symlink( os.path.relpath(self.stage.source_path, self.stage.path), join_path(self.stage.path, projdir), ) @@ -883,7 +907,7 @@ def install_links(self): """Add symlinks into bin/, lib/ (eg, for other applications)""" # Make build log visible - it contains OpenFOAM-specific information with working_dir(self.projectdir): - os.symlink( + symlink( join_path(os.path.relpath(self.install_log_path)), join_path("log." + str(self.foam_arch)), ) @@ -894,18 +918,18 @@ def install_links(self): # ln -s platforms/linux64GccXXX/lib lib with working_dir(self.projectdir): if os.path.isdir(self.archlib): - os.symlink(self.archlib, "lib") + symlink(self.archlib, "lib") # (cd bin && ln -s ../platforms/linux64GccXXX/bin/* .) with working_dir(join_path(self.projectdir, "bin")): for f in [ f for f in glob.glob(join_path("..", self.archbin, "*")) if os.path.isfile(f) ]: - os.symlink(f, os.path.basename(f)) + symlink(f, os.path.basename(f)) # Executables like decomposePar require interface libraries for optional dependencies, but if # the dependency is missing, an dummy library is used and put in lib/dummy. Allow this until - # the https://develop.openfoam.com/Development/openfoam/-/issues/3283 is resolved. + # the https://gitlab.com/openfoam/core/openfoam/-/issues/3283 is resolved. unresolved_libraries = [ "libkahipDecomp.so", "libmetisDecomp.so", @@ -1144,9 +1168,7 @@ def create_rules(self, projdir, foam_pkg): PINC = {PINC} PLIBS = {PLIBS} #------- -""".format( - **user_mpi - ) +""".format(**user_mpi) ) diff --git a/repos/spack_repo/builtin/packages/openfoam_org/package.py b/repos/spack_repo/builtin/packages/openfoam_org/package.py index 4dc99379e2f..8225455d067 100644 --- a/repos/spack_repo/builtin/packages/openfoam_org/package.py +++ b/repos/spack_repo/builtin/packages/openfoam_org/package.py @@ -272,7 +272,7 @@ def rename_source(self): with working_dir(parent): if original != target and not os.path.lexists(target): os.rename(original, target) - os.symlink(target, original) + symlink(target, original) tty.info("renamed {0} -> {1}".format(original, target)) def patch(self): @@ -452,7 +452,7 @@ def install_links(self): """Add symlinks into bin/, lib/ (eg, for other applications)""" # Make build log visible - it contains OpenFOAM-specific information with working_dir(self.projectdir): - os.symlink( + symlink( join_path(os.path.relpath(self.install_log_path)), join_path("log." + str(self.foam_arch)), ) @@ -463,14 +463,14 @@ def install_links(self): # ln -s platforms/linux64GccXXX/lib lib with working_dir(self.projectdir): if os.path.isdir(self.archlib): - os.symlink(self.archlib, "lib") + symlink(self.archlib, "lib") # (cd bin && ln -s ../platforms/linux64GccXXX/bin/* .) with working_dir(join_path(self.projectdir, "bin")): for f in [ f for f in glob.glob(join_path("..", self.archbin, "*")) if os.path.isfile(f) ]: - os.symlink(f, os.path.basename(f)) + symlink(f, os.path.basename(f)) # ----------------------------------------------------------------------------- diff --git a/repos/spack_repo/builtin/packages/openfpgaloader/package.py b/repos/spack_repo/builtin/packages/openfpgaloader/package.py new file mode 100644 index 00000000000..ef8de69cd11 --- /dev/null +++ b/repos/spack_repo/builtin/packages/openfpgaloader/package.py @@ -0,0 +1,39 @@ +# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class Openfpgaloader(CMakePackage): + """openFPGALoader is a universal utility for programming FPGAs. Compatible + with many boards, cables and FPGA from major manufacturers (Xilinx, + Altera/Intel, Lattice, Gowin, Efinix, Anlogic, Cologne Chip). + openFPGALoader works on Linux, Windows and macOS.""" + + homepage = "https://trabucayre.github.io/openFPGALoader/" + url = "https://github.com/trabucayre/openFPGALoader/archive/refs/tags/v0.12.1.tar.gz" + git = "https://github.com/trabucayre/openFPGALoader.git" + + maintainers("davekeeshan") + + license("Apache-2.0 OR MIT") + + version("master", branch="master") + version("1.1.1", sha256="ca965f933c52a2a9dbb318df4d4de70fac5f095a8e64523f81036ab467a4b567") + version("1.1.0", sha256="d2d3da194e3e578ce81f1156f85c128eb6021b73b0c67bbeec9cd5d8bea35fda") + version("1.0.0", sha256="cf19b596e5dea21891b1be3cb9a04be7a1501926ee0919dcc5c9f1b6d3bd0a96") + version("0.13.1", sha256="372f1942dec8a088bc7475f94ccf5a86264cb74e9154d8a162b8d4d26d3971e3") + version("0.12.1", sha256="8fb2d1aa3a0de50222f6286c47220a5bc7b73708b60fb7d58f764deebd43d82d") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("libusb") + depends_on("libftdi") + + def setup_run_environment(self, env): + env.prepend_path("OPENFPGALOADER_SOJ_DIR", f"{self.prefix}/share/openFPGALoader") diff --git a/repos/spack_repo/builtin/packages/openglu/package.py b/repos/spack_repo/builtin/packages/openglu/package.py index 4d227be3abf..f7d7561bd3d 100644 --- a/repos/spack_repo/builtin/packages/openglu/package.py +++ b/repos/spack_repo/builtin/packages/openglu/package.py @@ -64,6 +64,11 @@ def fetcher(self): def fetcher(self): _ = self.fetcher + def setup_dependent_build_environment( + self, env: EnvironmentModifications, dependent_spec: Spec + ): + env.prepend_path("OpenGL_ROOT", self.prefix) + @property def libs(self): return find_libraries("libGLU", self.prefix, shared=True, recursive=True) diff --git a/repos/spack_repo/builtin/packages/openjdk/package.py b/repos/spack_repo/builtin/packages/openjdk/package.py index 43a460a7aa2..7e5048a9054 100644 --- a/repos/spack_repo/builtin/packages/openjdk/package.py +++ b/repos/spack_repo/builtin/packages/openjdk/package.py @@ -18,6 +18,48 @@ # format returned by platform.system() and 'arch' by platform.machine() _versions = { + "25.0.2_10": { + "Linux-x86_64": ( + "987387933b64b9833846dee373b640440d3e1fd48a04804ec01a6dbf718e8ab8", + "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.2%2B10/OpenJDK25U-jdk_x64_linux_hotspot_25.0.2_10.tar.gz", + ), + "Linux-aarch64": ( + "a9d73e711d967dc44896d4f430f73a68fd33590dabc29a7f2fb9f593425b854c", + "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.2%2B10/OpenJDK25U-jdk_aarch64_linux_hotspot_25.0.2_10.tar.gz", + ), + "Darwin-arm64": ( + "74ff6e892924a49767c35eb61251b1969c03213819d51065d9b8f9e0238c4f97", + "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.2%2B10/OpenJDK25U-jdk_aarch64_mac_hotspot_25.0.2_10.tar.gz", + ), + }, + "25.0.1_8": { + "Linux-x86_64": ( + "8daf77d1aacffe38c9889689bc224a13557de77559d9a5bb91991e6a298baa0d", + "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.1%2B8/OpenJDK25U-jdk_x64_linux_hotspot_25.0.1_8.tar.gz", + ), + "Linux-aarch64": ( + "5c83b7d2121ed482fd06831a1eba1633dbab818aba6addddf48e075b97e6e9b8", + "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.1%2B8/OpenJDK25U-jdk_aarch64_linux_hotspot_25.0.1_8.tar.gz", + ), + "Darwin-arm64": ( + "964ffce1ff9f24e8d29df4e4201b5b96499026dc8387cf35bb39fe969ffea2bb", + "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.1%2B8/OpenJDK25U-jdk_aarch64_mac_hotspot_25.0.1_8.tar.gz", + ), + }, + "21.0.10_7": { + "Linux-x86_64": ( + "ea3b9bd464d6dd253e9a7accf59f7ccd2a36e4aa69640b7251e3370caef896a4", + "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.10%2B7/OpenJDK21U-jdk_x64_linux_hotspot_21.0.10_7.tar.gz", + ), + "Linux-aarch64": ( + "357fee29fb0d5c079f6730db98b28942df13a6eed426f6c61cd4ad703ab27b9a", + "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.10%2B7/OpenJDK21U-jdk_aarch64_linux_hotspot_21.0.10_7.tar.gz", + ), + "Darwin-arm64": ( + "01ca390455216ca27bdddf8cfad51aaedb4f90e1e23aad9bfd9e90caaa2c5f1b", + "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.10%2B7/OpenJDK21U-jdk_aarch64_mac_hotspot_21.0.10_7.tar.gz", + ), + }, "21.0.3_9": { "Linux-x86_64": ( "fffa52c22d797b715a962e6c8d11ec7d79b90dd819b5bc51d62137ea4b22a340", @@ -38,6 +80,20 @@ "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21%2B35/OpenJDK21U-jdk_x64_linux_hotspot_21_35.tar.gz", ) }, + "17.0.18_8": { + "Linux-x86_64": ( + "0c94cbb54325c40dcf026143eb621562017db5525727f2d9131a11250f72c450", + "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.18%2B8/OpenJDK17U-jdk_x64_linux_hotspot_17.0.18_8.tar.gz", + ), + "Linux-aarch64": ( + "592a6702b3a07a0e0b82cb38aaab149bfce1b0c24d6b57ddb410bd9009333095", + "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.18%2B8/OpenJDK17U-jdk_aarch64_linux_hotspot_17.0.18_8.tar.gz", + ), + "Darwin-arm64": ( + "d81de06d938384fe76c4aa3c13395933aa11e2d19b0428743f810db06b05e312", + "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.18%2B8/OpenJDK17U-jdk_aarch64_mac_hotspot_17.0.18_8.tar.gz", + ), + }, "17.0.11_9": { "Linux-x86_64": ( "aa7fb6bb342319d227a838af5c363bfa1b4a670c209372f9e6585bd79da6220c", @@ -188,6 +244,20 @@ "https://download.java.net/java/GA/jdk15.0.2/0d1cfde4252546c6931946de8db48ee2/7/GPL/openjdk-15.0.2_linux-aarch64_bin.tar.gz", ), }, + "11.0.31_11": { + "Linux-x86_64": ( + "1e9de64586b519c0a981319489257cabedd9457599f3823424a87c3158fbe939", + "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.31%2B11/OpenJDK11U-jdk_x64_linux_hotspot_11.0.31_11.tar.gz", + ), + "Linux-aarch64": ( + "257f4d39e060658fc2eb89a803ca43b3f337e64e253f2d94ebae1d85c9ef5f69", + "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.31%2B11/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.31_11.tar.gz", + ), + "Darwin-arm64": ( + "e3377bbe07f4396ba03adcfc5f3d71d151d6a7b858abdf1d0dd20ac4d8d709b0", + "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.31%2B11/OpenJDK11U-jdk_aarch64_mac_hotspot_11.0.31_11.tar.gz", + ), + }, "11.0.23_9": { "Linux-x86_64": ( "23e47ea7a3015be3240f21185fd902adebdcf76530757c9b482c7eb5bd3417c2", @@ -393,7 +463,7 @@ class Openjdk(Package): """The free and opensource java implementation""" homepage = "https://openjdk.org/" - preferred_prefix = "17." + preferred_prefix = "25." preferred_defined = False for ver, packages in _versions.items(): @@ -414,6 +484,7 @@ class Openjdk(Package): description=("symlink system certs if requested, otherwise use default package version"), ) + provides("java@25", when="@25.0:25") provides("java@21", when="@21.0:21") provides("java@17", when="@17.0:17") provides("java@16", when="@16.0:16") @@ -516,7 +587,7 @@ def link_system_certs(self): if os.path.exists(sys_certs): if os.path.exists(pkg_conf): os.remove(pkg_conf) - os.symlink(sys_certs, pkg_conf) + symlink(sys_certs, pkg_conf) def setup_run_environment(self, env: EnvironmentModifications) -> None: """Set JAVA_HOME.""" diff --git a/repos/spack_repo/builtin/packages/openjpeg/package.py b/repos/spack_repo/builtin/packages/openjpeg/package.py index 16949c142c3..1008abdc119 100644 --- a/repos/spack_repo/builtin/packages/openjpeg/package.py +++ b/repos/spack_repo/builtin/packages/openjpeg/package.py @@ -22,6 +22,7 @@ class Openjpeg(CMakePackage): license("BSD-2-Clause-NetBSD") + version("2.5.4", sha256="a695fbe19c0165f295a8531b1e4e855cd94d0875d2f88ec4b61080677e27188a") version("2.5.2", sha256="90e3896fed910c376aaf79cdd98bdfdaf98c6472efd8e1debf0a854938cbda6a") version("2.5.1", sha256="c0b92dadd65e33b1cf94f39dd9157d5469846744c2e0afb8ca10961f51f61da6") version("2.5.0", sha256="0333806d6adecc6f7a91243b2b839ff4d2053823634d4f6ed7a59bc87409122a") diff --git a/repos/spack_repo/builtin/packages/openlibm/package.py b/repos/spack_repo/builtin/packages/openlibm/package.py index 53de4133617..72861ae5de2 100644 --- a/repos/spack_repo/builtin/packages/openlibm/package.py +++ b/repos/spack_repo/builtin/packages/openlibm/package.py @@ -18,6 +18,7 @@ class Openlibm(MakefilePackage): license("MIT AND BSD-2-Clause AND ISC AND LGPL-2.1-or-later") + version("0.8.7", sha256="e328a1d59b94748b111e022bca6a9d2fc0481fb57d23c87d90f394b559d4f062") version("0.8.6", sha256="347998968cfeb2f9b91de6a8e85d2ba92dec0915d53500a4bc483e056f85b94c") version("0.8.5", sha256="d380c2d871f6dc16e22893569d57bda9121742cc8f6534510526e5278867c6cf") version("0.8.4", sha256="c0bac12a6596f2315341790a7f386f9162a5b1f98db9ec40d883fce64e231942") diff --git a/repos/spack_repo/builtin/packages/openloops/package.py b/repos/spack_repo/builtin/packages/openloops/package.py index 08bfffbc3c3..bdfc6f2095f 100644 --- a/repos/spack_repo/builtin/packages/openloops/package.py +++ b/repos/spack_repo/builtin/packages/openloops/package.py @@ -22,6 +22,7 @@ class Openloops(Package): tags = ["hep"] license("GPL-3.0-only") + version("2.1.5", sha256="dbb2bdf160725dca4e80d85403ce6d1f55a15754ba863fcc62febc42efc34bc2") version("2.1.4", sha256="3423688d016ffcda3b738de89418338e95249276ac634e77f356a20deb57daaa") version("2.1.3", sha256="b26ee805d63b781244a5bab4db09f4a7a5a5c9ed371ead0d5260f00a0a94b233") version("2.1.2", sha256="f52575cae3d70b6b51a5d423e9cd0e076ed5961afcc015eec00987e64529a6ae") @@ -34,7 +35,7 @@ class Openloops(Package): # conflicts because there is a scons 3.0.5 in 2.1.2 conflicts("^python@3.12:", when="@:2.1.2") - all_processes = [ + all_processes = ( "tbln", "tbln_ew", "tbqq", @@ -231,7 +232,7 @@ class Openloops(Package): "heftppllj", "heftpplljj", "heftpplljjj", - ] + ) variant("compile_extra", default=False, description="Compile real radiation tree amplitudes") variant( @@ -255,10 +256,10 @@ class Openloops(Package): phases = ["configure", "build", "build_processes", "install"] - def url_for_version(self, v): + def url_for_version(self, version): if self.spec.satisfies("@:2.1.2"): - return f"https://openloops.hepforge.org/downloads?f=OpenLoops-{v}.tar.gz" - return f"https://gitlab.com/openloops/OpenLoops/-/archive/OpenLoops-{v}/OpenLoops-OpenLoops-{v}.tar.gz" + return f"https://openloops.hepforge.org/downloads?f=OpenLoops-{version}.tar.gz" + return f"https://gitlab.com/openloops/OpenLoops/-/archive/OpenLoops-{version}/OpenLoops-OpenLoops-{version}.tar.gz" def configure(self, spec, prefix): spack_env = ( diff --git a/repos/spack_repo/builtin/packages/openmc/package.py b/repos/spack_repo/builtin/packages/openmc/package.py index 4560f1179cd..5da99c0174b 100644 --- a/repos/spack_repo/builtin/packages/openmc/package.py +++ b/repos/spack_repo/builtin/packages/openmc/package.py @@ -19,12 +19,14 @@ class Openmc(CMakePackage): programming model.""" homepage = "https://docs.openmc.org/" - url = "https://github.com/openmc-dev/openmc/tarball/v0.15.0" + url = "https://github.com/openmc-dev/openmc/tarball/v0.15.2" git = "https://github.com/openmc-dev/openmc.git" maintainers("paulromano") version("develop", branch="develop", submodules=True) version("master", branch="master", submodules=True) + version("0.15.2", commit="e23760b0264c66fb7bb373aa0596801e5209d920", submodules=True) + version("0.15.1", commit="906548db20d4ce3c322e7317992c73b51daeb11d", submodules=True) version("0.15.0", commit="55b52b7ef3c9415ce045712132bf31c2a013d8c8", submodules=True) version("0.14.0", commit="fa2330103de61a864c958d1a7250f11e5dd91468", submodules=True) version("0.13.3", commit="27cb0dc97960fe6d750eb5a93584a9a0ca532ac8", submodules=True) diff --git a/repos/spack_repo/builtin/packages/openmolcas/package.py b/repos/spack_repo/builtin/packages/openmolcas/package.py index 7b8df0a633c..affa729ced7 100644 --- a/repos/spack_repo/builtin/packages/openmolcas/package.py +++ b/repos/spack_repo/builtin/packages/openmolcas/package.py @@ -19,6 +19,7 @@ class Openmolcas(CMakePackage): license("LGPL-2.1-or-later") + version("26.02", sha256="3d19b8cdfc031bb86c2c958f1b30077301b20a73723a0910a2f67bb7ce5d5fea") version("23.06", sha256="31727161c15ea588217c6511a3007792c74c35391849fa0296c2288d836cf951") version("21.02", sha256="d0b9731a011562ff4740c0e67e48d9af74bf2a266601a38b37640f72190519ca") version("19.11", sha256="8ebd1dcce98fc3f554f96e54e34f1e8ad566c601196ee68153763b6c0a04c7b9") @@ -30,12 +31,13 @@ class Openmolcas(CMakePackage): depends_on("hdf5") depends_on("lapack") - depends_on("openblas+ilp64") + depends_on("openblas+ilp64 symbol_suffix=none") depends_on("python@3.7:", type=("build", "run")) depends_on("py-pyparsing", type=("build", "run")) depends_on("py-six", type=("build", "run")) depends_on("mpi", when="+mpi") depends_on("globalarrays", when="+mpi") + depends_on("openmpi@4", when="@:23.06+mpi %mpi=openmpi") patch("CMakeLists.txt.patch", when="target=aarch64:") diff --git a/repos/spack_repo/builtin/packages/openmpi/package.py b/repos/spack_repo/builtin/packages/openmpi/package.py index ae084d5d571..aee2c389337 100644 --- a/repos/spack_repo/builtin/packages/openmpi/package.py +++ b/repos/spack_repo/builtin/packages/openmpi/package.py @@ -746,7 +746,6 @@ def patch(self): # @:4 does not depend on prrte and used orte with when("@5"): - # When an external PMIx is used, also an external PRRTE should be used # https://github.com/open-mpi/ompi/issues/13275#issuecomment-2907903468 depends_on("prrte") @@ -1354,7 +1353,7 @@ def configure_args(self): # if spec.satisfies("@5.0.0:") and spec.satisfies("%oneapi"): # config_args.append("--disable-io-romio") - # https://www.intel.com/content/www/us/en/developer/articles/release-notes/oneapi-c-compiler-release-notes.html : + # https://www.intel.com/content/www/us/en/developer/articles/release-notes/oneapi-c-compiler-release-notes.html: # Key Features in Intel C++ Compiler Classic 2021.7 # # The Intel C++ Classic Compiler is deprecated and an additional diff --git a/repos/spack_repo/builtin/packages/openmx/package.py b/repos/spack_repo/builtin/packages/openmx/package.py index c4d6f83af2a..709d98161ec 100644 --- a/repos/spack_repo/builtin/packages/openmx/package.py +++ b/repos/spack_repo/builtin/packages/openmx/package.py @@ -40,11 +40,29 @@ class Openmx(MakefilePackage): when="@3.9", ) + # Custom patch for clang: override Set_ProExpn_VNA.c + # See https://www.openmx-square.org/forum/patio.cgi?mode=view&no=2955 + resource( + name="set_proexpn_patch", + url="https://gist.githubusercontent.com/Ncmexp2717/aaffd91eb1bc15e1909b057cc2e83c1f/raw/4e7dfd4a9346b82de69ce9b1d270042bebcd1610/Set_ProExpn_VNA.c", + sha256="d33de4cbae9af19f39bdf880d33a487cb8fb65beb9fbaa40f4202315dc6ec87b", + placement="set_proexpn_patch", + when="@3.9", + expand=False, + ) + depends_on("mpi") depends_on("fftw-api@3") + depends_on("blas") + depends_on("lapack") depends_on("scalapack") depends_on("sse2neon", when="target=aarch64:") + # Need OpenMP threaded BLAS libraries + requires("^openblas threads=openmp", when="^[virtuals=blas] openblas") + requires("^amdblis threads=openmp", when="^[virtuals=blas] amdblis") + requires("^intel-oneapi-mkl threads=openmp", when="^[virtuals=blas] intel-oneapi-mkl") + patch("for_aarch64.patch", when="@3.8 target=aarch64:") parallel = False @@ -59,6 +77,9 @@ def edit(self, spec, prefix): # http://www.openmx-square.org/bugfixed/21Oct17/README.txt if spec.satisfies("@3.9"): copy(join_path("source", "kpoint.in"), "work") + if "%aocc" in spec or "%llvm" in spec: + copy("set_proexpn_patch/Set_ProExpn_VNA.c", "source/Set_ProExpn_VNA.c") + filter_file(r"\bgcc\b", "$(CC)", "source/makefile") makefile = FileFilter("./source/makefile") makefile.filter("^DESTDIR.*$", "DESTDIR = {0}/bin".format(prefix)) mkdirp(prefix.bin) @@ -72,8 +93,13 @@ def common_arguments(self): self.compiler.openmp_flag, spec["fftw-api"].headers.include_flags, ] - fc_option = [spec["mpi"].mpifc] - lib_option = [spec["fftw-api"].libs.ld_flags, lapack_blas_libs.ld_flags, "-lmpi_mpifh"] + fc_option = [spec["mpi"].mpifc, self.compiler.openmp_flag] + lib_option = [ + spec["fftw-api"].libs.ld_flags, + lapack_blas_libs.ld_flags, + "-lmpi_mpifh", + self.compiler.openmp_flag, + ] if spec.satisfies("@3.8"): cc_option.append("-I$(LIBERIDIR)") if spec.satisfies("@3.9"): @@ -86,11 +112,17 @@ def common_arguments(self): fc_option.extend([self.compiler.openmp_flag, "-Ccpp"]) else: common_option.append("-O3") + cc_option.extend( + ["-Wno-error=implicit-function-declaration", "-Wno-error=implicit-int", "-fcommon"] + ) if "%gcc" in spec: lib_option.append("-lgfortran") if spec.satisfies("%gcc@10:"): fc_option.append("-fallow-argument-mismatch") - cc_option.append("-fcommon") + if "%llvm" in spec or "%aocc" in spec: + lib_option.extend(["-lflang", "-lpgmath", "-lflangrti"]) + if "%oneapi" in spec: + lib_option.extend(["-lifcore"]) return [ "CC={0} -Dscalapack {1} ".format(" ".join(cc_option), " ".join(common_option)), diff --git a/repos/spack_repo/builtin/packages/opennurbs/package.py b/repos/spack_repo/builtin/packages/opennurbs/package.py index 0b9a15b1663..16cfb00536e 100644 --- a/repos/spack_repo/builtin/packages/opennurbs/package.py +++ b/repos/spack_repo/builtin/packages/opennurbs/package.py @@ -45,7 +45,6 @@ def cmake_args(self): class MakefileBuilder(makefile.MakefileBuilder): - def build(self, pkg, spec, prefix): make("RM=rm -f", "AR=ar cr", f"CC={spack_cc}", f"CCC={spack_cxx}", parallel=False) diff --git a/repos/spack_repo/builtin/packages/openpmd_api/package.py b/repos/spack_repo/builtin/packages/openpmd_api/package.py index 05dc6bc0d1d..4e852b6ad53 100644 --- a/repos/spack_repo/builtin/packages/openpmd_api/package.py +++ b/repos/spack_repo/builtin/packages/openpmd_api/package.py @@ -11,7 +11,7 @@ class OpenpmdApi(CMakePackage): """C++ & Python API for Scientific I/O""" homepage = "https://www.openPMD.org" - url = "https://github.com/openPMD/openPMD-api/archive/0.16.1.tar.gz" + url = "https://github.com/openPMD/openPMD-api/archive/0.17.0.tar.gz" git = "https://github.com/openPMD/openPMD-api.git" maintainers("ax3l", "franzpoeschel") @@ -22,6 +22,7 @@ class OpenpmdApi(CMakePackage): # C++17 up until here version("develop", branch="dev") + version("0.17.0", sha256="97ff76111f77b06177caa48fa1b5e757967a60a66665f0c13384828d3ae1aa92") version("0.16.1", sha256="a029a1779351949f41c1f36d0e75c698e59c5d284f080d5e4c2b8650779d2d58") version("0.16.0", sha256="b52222a4ab2511f9e3f6e21af222f57ab4fb6228623024fc5d982066333e104f") version("0.15.2", sha256="fbe3b356fe6f4589c659027c8056844692c62382e3ec53b953bed1c87e58ba13") @@ -76,15 +77,19 @@ class OpenpmdApi(CMakePackage): depends_on("adios2@2.5.0:") depends_on("adios2@2.6.0:", when="@0.12.0:") depends_on("adios2@2.7.0:", when="@0.14.0:") + depends_on("adios2@2.9.0:", when="@0.17.0:") depends_on("adios2@2.5.0: ~mpi", when="~mpi") depends_on("adios2@2.5.0: +mpi", when="+mpi") with when("+python"): depends_on("py-pybind11@2.6.2:", type="link") depends_on("py-pybind11@2.13.0:", type="link", when="@0.16.0:") - depends_on("py-numpy@1.15.1:", type=["test", "run"]) - depends_on("py-mpi4py@2.1.0:", when="+mpi", type=["test", "run"]) - depends_on("python@3.7:", type=["link", "test", "run"]) - depends_on("python@3.8:", when="@0.15.2:", type=["link", "test", "run"]) + depends_on("py-pybind11@:3.0.1", type="link", when="@:0.17.0") + depends_on("py-numpy@1.15.1:", type=("test", "run")) + depends_on("py-mpi4py@2.1.0:", when="+mpi", type=("test", "run")) + with default_args(type=("link", "test", "run")): + depends_on("python@3.7:") + depends_on("python@3.8:", when="@0.15.2:") + depends_on("python@3.10:", when="@0.17.0:") conflicts("^hdf5 api=v16", msg="openPMD-api requires HDF5 APIs for 1.8+") @@ -195,6 +200,6 @@ def test_run_openpmd_ls(self): """Test if openpmd-ls runs correctly""" if self.spec.satisfies("@:0.11.0"): raise SkipTest("Package must be installed as version 0.11.1 or later") - exe = which(join_path(self.prefix.bin, "openpmd-ls")) + exe = which(join_path(self.prefix.bin, "openpmd-ls"), required=True) out = exe(output=str.split, error=str.split) assert str(self.spec.version) in out diff --git a/repos/spack_repo/builtin/packages/openrasmol/package.py b/repos/spack_repo/builtin/packages/openrasmol/package.py index cf28ab37a2c..d5dee5de387 100644 --- a/repos/spack_repo/builtin/packages/openrasmol/package.py +++ b/repos/spack_repo/builtin/packages/openrasmol/package.py @@ -36,7 +36,7 @@ class Openrasmol(MakefilePackage): def edit(self, spec, prefix): with working_dir("src"): # Imakefile - bash = which("bash") + bash = which("bash", required=True) bash("./rasmol_build_options.sh") # host.def with open("host.def", "w") as f: @@ -53,14 +53,14 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: def build(self, spec, prefix): with working_dir("src"): - bash = which("bash") + bash = which("bash", required=True) bash("./build_all.sh") def install(self, spec, prefix): install_tree("./data", prefix.sample) install_tree("./doc", prefix.doc) with working_dir("src"): - bash = which("bash") + bash = which("bash", required=True) bash("./rasmol_install.sh", "--prefix={0}".format(prefix)) def test_rasmol(self): @@ -71,5 +71,5 @@ def test_rasmol(self): join_path(self.test_suite.current_test_data_dir, "test.rsc"), join_path(self.prefix.sample, "1crn.pdb"), ] - rasmol = which(self.prefix.bin.rasmol) + rasmol = which(self.prefix.bin.rasmol, required=True) rasmol(*opts) diff --git a/repos/spack_repo/builtin/packages/openssh/package.py b/repos/spack_repo/builtin/packages/openssh/package.py index 209696b068e..3ee5ddd0b58 100644 --- a/repos/spack_repo/builtin/packages/openssh/package.py +++ b/repos/spack_repo/builtin/packages/openssh/package.py @@ -26,51 +26,40 @@ class Openssh(AutotoolsPackage): license("SSH-OpenSSH") - version("9.9p1", sha256="b343fbcdbff87f15b1986e6e15d6d4fc9a7d36066be6b7fb507087ba8f966c02") - version("9.8p1", sha256="dd8bd002a379b5d499dfb050dd1fa9af8029e80461f4bb6c523c49973f5a39f3") - version("9.7p1", sha256="490426f766d82a2763fcacd8d83ea3d70798750c7bd2aff2e57dc5660f773ffd") - version("9.6p1", sha256="910211c07255a8c5ad654391b40ee59800710dd8119dd5362de09385aa7a777c") - version("9.5p1", sha256="f026e7b79ba7fb540f75182af96dc8a8f1db395f922bbc9f6ca603672686086b") - version("9.4p1", sha256="3608fd9088db2163ceb3e600c85ab79d0de3d221e59192ea1923e23263866a85") - version("9.3p1", sha256="e9baba7701a76a51f3d85a62c383a3c9dcd97fa900b859bc7db114c1868af8a8") + version("10.3p1", sha256="56682a36bb92dcf4b4f016fd8ec8e74059b79a8de25c15d670d731e7d18e45f4") with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2023-38408 - version("9.2p1", sha256="3f66dbf1655fb45f50e1c56da62ab01218c228807b21338d634ebcdf9d71cf46") - version("9.1p1", sha256="19f85009c7e3e23787f0236fbb1578392ab4d4bf9f8ec5fe6bc1cd7e8bfdd288") - version("9.0p1", sha256="03974302161e9ecce32153cfa10012f1e65c8f3750f573a73ab1befd5972a28a") - version("8.9p1", sha256="fd497654b7ab1686dac672fb83dfb4ba4096e8b5ffcdaccd262380ae58bec5e7") - version("8.8p1", sha256="4590890ea9bb9ace4f71ae331785a3a5823232435161960ed5fc86588f331fe9") - version("8.7p1", sha256="7ca34b8bb24ae9e50f33792b7091b3841d7e1b440ff57bc9fabddf01e2ed1e24") - version("8.6p1", sha256="c3e6e4da1621762c850d03b47eed1e48dff4cc9608ddeb547202a234df8ed7ae") - version("8.5p1", sha256="f52f3f41d429aa9918e38cf200af225ccdd8e66f052da572870c89737646ec25") - version("8.4p1", sha256="5a01d22e407eb1c05ba8a8f7c654d388a13e9f226e4ed33bd38748dafa1d2b24") - version("8.3p1", sha256="f2befbe0472fe7eb75d23340eb17531cb6b3aac24075e2066b41f814e12387b2") - version("8.1p1", sha256="02f5dbef3835d0753556f973cd57b4c19b6b1f6cd24c03445e23ac77ca1b93ff") - version("7.9p1", sha256="6b4b3ba2253d84ed3771c8050728d597c91cfce898713beb7b64a305b6f11aad") - version("7.6p1", sha256="a323caeeddfe145baaa0db16e98d784b1fbc7dd436a6bf1f479dfd5cd1d21723") - version("7.5p1", sha256="9846e3c5fab9f0547400b4d2c017992f914222b3fd1f8eee6c7dc6bc5e59f9f0") - version("7.4p1", sha256="1b1fc4a14e2024293181924ed24872e6f2e06293f3e8926a376b8aec481f19d1") - version("7.3p1", sha256="3ffb989a6dcaa69594c3b550d4855a5a2e1718ccdde7f5e36387b424220fbecc") - version("7.2p2", sha256="a72781d1a043876a224ff1b0032daa4094d87565a68528759c1c2cab5482548c") - version("7.1p2", sha256="dd75f024dcf21e06a0d6421d582690bf987a1f6323e32ad6619392f3bfde6bbd") - version("7.0p1", sha256="fd5932493a19f4c81153d812ee4e042b49bbd3b759ab3d9344abecc2bc1485e5") - version("6.9p1", sha256="6e074df538f357d440be6cf93dc581a21f22d39e236f217fcd8eacbb6c896cfe") - version("6.8p1", sha256="3ff64ce73ee124480b5bf767b9830d7d3c03bbcb6abe716b78f0192c37ce160e") - version("6.7p1", sha256="b2f8394eae858dabbdef7dac10b99aec00c95462753e80342e530bbb6f725507") - version("6.6p1", sha256="48c1f0664b4534875038004cc4f3555b8329c2a81c1df48db5c517800de203bb") + # https://www.cvedetails.com/cve/CVE-2026-35414/ + # https://www.cvedetails.com/cve/CVE-2026-35387/ + # https://www.cvedetails.com/cve/CVE-2026-35386/ + # https://www.cvedetails.com/cve/CVE-2026-35385/ + version( + "10.2p1", sha256="ccc42c0419937959263fa1dbd16dafc18c56b984c03562d2937ce56a60f798b2" + ) + # https://www.cvedetails.com/cve/CVE-2025-32728/ + # https://www.cvedetails.com/cve/CVE-2025-26466/ + # https://www.cvedetails.com/cve/CVE-2025-26465/ + version("9.9p1", sha256="b343fbcdbff87f15b1986e6e15d6d4fc9a7d36066be6b7fb507087ba8f966c02") + # https://www.cvedetails.com/cve/CVE-2024-6387/ + version("9.8p1", sha256="dd8bd002a379b5d499dfb050dd1fa9af8029e80461f4bb6c523c49973f5a39f3") + # https://www.cvedetails.com/cve/CVE-2024-39894/ + version("9.7p1", sha256="490426f766d82a2763fcacd8d83ea3d70798750c7bd2aff2e57dc5660f773ffd") + version("9.6p1", sha256="910211c07255a8c5ad654391b40ee59800710dd8119dd5362de09385aa7a777c") + # https://www.cvedetails.com/cve/CVE-2023-51385/ + # https://www.cvedetails.com/cve/CVE-2023-51384/ + # https://www.cvedetails.com/cve/CVE-2023-48795/ + version("9.5p1", sha256="f026e7b79ba7fb540f75182af96dc8a8f1db395f922bbc9f6ca603672686086b") + version("9.4p1", sha256="3608fd9088db2163ceb3e600c85ab79d0de3d221e59192ea1923e23263866a85") + # https://www.cvedetails.com/cve/CVE-2023-38408/ + version("9.3p1", sha256="e9baba7701a76a51f3d85a62c383a3c9dcd97fa900b859bc7db114c1868af8a8") variant( "gssapi", default=True, description="Enable authentication via Kerberos through GSSAPI" ) - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("krb5+shared", when="+gssapi") - depends_on("openssl@:1.0", when="@:7.7p1") - depends_on("openssl@:1.1", when="@:7.9p1") - # 8.7 and earlier don't support openssl@3.1: - depends_on("openssl@:3.0", when="@:8.7p1") depends_on("openssl") depends_on("libedit") depends_on("ncurses") @@ -94,7 +83,7 @@ class Openssh(AutotoolsPackage): patch( "https://raw.githubusercontent.com/Homebrew/patches/1860b0a745f1fe726900974845d1b0dd3c3398d6/openssh/patch-sandbox-darwin.c-apple-sandbox-named-external.diff", sha256="d886b98f99fd27e3157b02b5b57f3fb49f43fd33806195970d4567f12be66e71", - when="platform=darwin", + when="@:9 platform=darwin", ) # https://github.com/Homebrew/homebrew-core/blob/7aabdeb30506be9b01708793ae553502c115dfc8/Formula/o/openssh.rb#L48-L52C6 @@ -107,7 +96,7 @@ class Openssh(AutotoolsPackage): patch( "https://raw.githubusercontent.com/Homebrew/patches/aa6c71920318f97370d74f2303d6aea387fb68e4/openssh/patch-sshd.c-apple-sandbox-named-external.diff", sha256="3f06fc03bcbbf3e6ba6360ef93edd2301f73efcd8069e516245aea7c4fb21279", - when="@9.8p1: platform=darwin", + when="@9.8p1:9 platform=darwin", ) @classmethod @@ -161,9 +150,6 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: # to use the MacOS patches if self.spec.platform == "darwin": env.append_flags("CPPFLAGS", "-D__APPLE_SANDBOX_NAMED_EXTERNAL__") - # For "@:7": Newer compilers use -fno-common by default and fail on tun_fwd_ifnames: - if self.spec.satisfies("@:7 %gcc@10:") or self.spec.satisfies("@:7 %clang@11:"): - env.append_flags("CFLAGS", "-fcommon") def setup_test_environment(self, env: EnvironmentModifications): """Configure the regression test suite like Debian's openssh-tests package""" diff --git a/repos/spack_repo/builtin/packages/openssl/package.py b/repos/spack_repo/builtin/packages/openssl/package.py index f98894159ae..5c2f40e8ea7 100644 --- a/repos/spack_repo/builtin/packages/openssl/package.py +++ b/repos/spack_repo/builtin/packages/openssl/package.py @@ -29,38 +29,27 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package license("Apache-2.0") - version("3.4.1", sha256="002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3") - version("3.3.3", sha256="712590fd20aaa60ec75d778fe5b810d6b829ca7fb1e530577917a131f9105539") - version("3.2.4", sha256="b23ad7fd9f73e43ad1767e636040e88ba7c9e5775bfa5618436a0dd2c17c3716") - version("3.1.8", sha256="d319da6aecde3aa6f426b44bbf997406d95275c5c59ab6f6ef53caaa079f456f") - version("3.0.16", sha256="57e03c50feab5d31b152af2b764f10379aecd8ee92f16c985983ce4a99f7ef86") + version("3.6.1", sha256="b1bfedcd5b289ff22aee87c9d600f515767ebf45f77168cb6d64f231f518a82e") + version("3.5.5", sha256="b28c91532a8b65a1f983b4c28b7488174e4a01008e29ce8e69bd789f28bc2a89") + version("3.4.4", sha256="7bdf55ac20f2779e99e5eca306f824fad2b37dee5a06cc35ed5a8b85a6060010") + version("3.3.6", sha256="22db04f3c8f9a808c9795dcf7d2713ff40c12c410ea2d1f6435c6c9c8558958b") + version("3.2.6", sha256="89681a9ddaa9ed7cf25ea8ef61338db805200bae47d00510490623547380c148") + version("3.0.19", sha256="fa5a4143b8aae18be53ef2f3caf29a2e0747430b8bc74d32d88335b94ab63072") with default_args(deprecated=True): - version("3.4.0", sha256="e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf") - version("3.3.1", sha256="777cd596284c883375a2a7a11bf5d2786fc5413255efab20c50d6ffe6d020b7e") - version("3.3.2", sha256="2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281") - version("3.3.0", sha256="53e66b043322a606abf0087e7699a0e033a37fa13feb9742df35c3a33b18fb02") - version("3.2.3", sha256="52b5f1c6b8022bc5868c308c54fb77705e702d6c6f4594f99a0df216acf46239") - version("3.2.2", sha256="197149c18d9e9f292c43f0400acaba12e5f52cacfe050f3d199277ea738ec2e7") - version("3.2.1", sha256="83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39") - version("3.1.7", sha256="053a31fa80cf4aebe1068c987d2ef1e44ce418881427c4464751ae800c31d06c") - version("3.1.6", sha256="5d2be4036b478ef3cb0a854ca9b353072c3a0e26d8a56f8f0ab9fb6ed32d38d7") - version("3.1.5", sha256="6ae015467dabf0469b139ada93319327be24b98251ffaeceda0221848dc09262") + version("3.6.0", sha256="b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9") + version("3.5.4", sha256="967311f84955316969bdb1d8d4b983718ef42338639c621ec4c34fddef355e99") + version("3.4.3", sha256="fa727ed1399a64e754030a033435003991aee36bda9a5b080995cb2ac5cf7f37") + version("3.4.1", sha256="002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3") + version("3.3.5", sha256="9d62c00a5a6903740c8703f0e006257f429d565d3b91ac1a9bd4a4c700002e01") + version("3.3.3", sha256="712590fd20aaa60ec75d778fe5b810d6b829ca7fb1e530577917a131f9105539") + version("3.2.4", sha256="b23ad7fd9f73e43ad1767e636040e88ba7c9e5775bfa5618436a0dd2c17c3716") + version("3.1.8", sha256="d319da6aecde3aa6f426b44bbf997406d95275c5c59ab6f6ef53caaa079f456f") version( - "3.0.15", sha256="23c666d0edf20f14249b3d8f0368acaee9ab585b09e1de82107c66e1f3ec9533" + "3.0.18", sha256="d80c34f5cf902dccf1f1b5df5ebb86d0392e37049e5d73df1b3abae72e4ffe8b" ) version( - "3.0.14", sha256="eeca035d4dd4e84fc25846d952da6297484afa0650a6f84c682e39df3a4123ca" - ) - version( - "3.0.13", sha256="88525753f79d3bec27d2fa7c66aa0b92b3aa9498dafd93d7cfa4b3780cdae313" - ) - - version( - "1.1.1w", sha256="cf3098950cb4d853ad95c0841f1f9c6d3dc102dccfcacd521d93925208b76ac8" - ) - version( - "1.0.2u", sha256="ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16" + "3.0.16", sha256="57e03c50feab5d31b152af2b764f10379aecd8ee92f16c985983ce4a99f7ef86" ) # On Cray DVS mounts, we can't make symlinks to /etc/ssl/openssl.cnf, @@ -130,8 +119,6 @@ def install(self, spec, prefix): env["KERNEL_BITS"] = "64" options = ["zlib"] - if spec.satisfies("@1.0"): - options.append("no-krb5") # clang does not support the .arch directive in assembly files. if "clang" in self["c"].cc and spec.target.family == "aarch64": options.append("no-asm") @@ -140,7 +127,7 @@ def install(self, spec, prefix): # nvhpc segfaults NVC++-F-0000-Internal compiler error. # gen_llvm_expr(): unknown opcode 0 (crypto/rsa/rsa_oaep.c: 248) options.append("no-asm") - elif spec.satisfies("@3: %oneapi"): + elif spec.satisfies("%oneapi"): # Last tested on oneapi@2023.1.0 for x86_64: # crypto/md5/md5-x86_64.s:684:31: error: expected string options.append("no-asm") @@ -156,11 +143,7 @@ def install(self, spec, prefix): "--openssldir=%s" % join_path(prefix, "etc", "openssl"), ] if spec.satisfies("platform=windows"): - if spec.satisfies("@:1"): - base_args.extend([f'CC="{self.compiler.cc}"', f'CXX="{self.compiler.cxx}"']) - else: - base_args.extend([f"CC={self.compiler.cc}", f"CXX={self.compiler.cxx}"]) - base_args.append("VC-WIN64A") + base_args.extend([f"CC={self.compiler.cc}", f"CXX={self.compiler.cxx}", "VC-WIN64A"]) else: base_args.extend( [ @@ -229,14 +212,14 @@ def link_system_certs(self): sys_conf = join_path(directory, "openssl.cnf") pkg_conf = join_path(pkg_dir, "openssl.cnf") if os.path.exists(sys_conf) and not os.path.exists(pkg_conf): - os.symlink(sys_conf, pkg_conf) + symlink(sys_conf, pkg_conf) sys_cert = join_path(directory, "cert.pem") pkg_cert = join_path(pkg_dir, "cert.pem") # If a bundle exists, use it. This is the preferred way on Fedora, # where the certs directory does not work. if os.path.exists(sys_cert) and not os.path.exists(pkg_cert): - os.symlink(sys_cert, pkg_cert) + symlink(sys_cert, pkg_cert) sys_certs = join_path(directory, "certs") pkg_certs = join_path(pkg_dir, "certs") @@ -246,7 +229,7 @@ def link_system_certs(self): if os.path.isdir(sys_certs) and not os.path.islink(pkg_certs): if os.path.isdir(pkg_certs): os.rmdir(pkg_certs) - os.symlink(sys_certs, pkg_certs) + symlink(sys_certs, pkg_certs) @run_after("install") def copy_mozilla_certs(self): diff --git a/repos/spack_repo/builtin/packages/openturbine/package.py b/repos/spack_repo/builtin/packages/openturbine/package.py deleted file mode 100644 index bb961f0fa65..00000000000 --- a/repos/spack_repo/builtin/packages/openturbine/package.py +++ /dev/null @@ -1,102 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.cmake import CMakePackage -from spack_repo.builtin.build_systems.cuda import CudaPackage -from spack_repo.builtin.build_systems.rocm import ROCmPackage - -from spack.package import * - - -class Openturbine(CMakePackage, CudaPackage, ROCmPackage): - """An open-source wind turbine structural dynamics simulation code.""" - - license("MIT License", checked_by="ddement") - - homepage = "https://www.exascaleproject.org/research-project/exawind/" - url = "https://github.com/Exawind/openturbine.git" - git = "https://github.com/Exawind/openturbine.git" - - maintainers("faisal-bhuiyan", "ddement", "deslaughter") - - version("main", branch="main") - - variant("tests", default=False, description="Build OpenTurbine Test Suite") - variant("openmp", default=False, description="Build OpenTurbine with OpenMP support") - variant("vtk", default=False, description="Enable VTK") - variant("adi", default=False, description="Build the OpenFAST ADI external project") - variant("rosco", default=False, description="Build the ROSCO controller external project") - variant("klu", default=True, description="Build with support for the KLU sparse direct solver") - variant( - "umfpack", - default=False, - description="Build with support for the UMFPACK sparse direct solver", - ) - variant( - "superlu", - default=False, - description="Build with support for the SuperLU sparse direct solver", - ) - variant( - "superlu-mt", - default=False, - description="Build with support for the SuperLU_MT sparse direct solver", - ) - variant( - "mkl", - default=False, - description="Build with support for the MKL Pardiso sparse direct solver", - ) - variant( - "cusolversp", - default=True, - when="+cuda", - description="Build with support for the cuSolverSP sparse direct solver", - ) - - depends_on("cxx", type="build") - depends_on("netcdf-c") - depends_on("yaml-cpp") - depends_on("kokkos-kernels") - depends_on("lapack") - - depends_on("kokkos@4.6:") - depends_on("kokkos-kernels@4.6:") - - depends_on("kokkos+cuda+wrapper", when="+cuda") - depends_on("kokkos+rocm", when="+rocm") - depends_on("kokkos~cuda", when="~cuda") - depends_on("kokkos~rocm", when="~rocm") - - depends_on("kokkos-kernels+cuda+cublas+cusparse+cusolver", when="+cuda") - depends_on("kokkos-kernels+rocblas+rocsparse+rocsolver", when="+rocm") - depends_on("kokkos-kernels+openmp", when="+openmp") - depends_on("kokkos-kernels~cuda", when="~cuda") - depends_on("kokkos-kernels~openmp", when="~openmp") - - depends_on("suite-sparse", when="+klu") - depends_on("suite-sparse", when="+umfpack") - depends_on("superlu", when="+superlu") - depends_on("superlu-mt", when="+superlu-mt") - depends_on("mkl", when="+mkl") - - depends_on("googletest", when="+tests") - - depends_on("fortran", type="build", when="+adi") - - depends_on("fortran", type="build", when="+rosco") - - def cmake_args(self): - options = [ - self.define_from_variant("OpenTurbine_ENABLE_TESTS", "tests"), - self.define_from_variant("OpenTurbine_BUILD_OPENFAST_ADI", "adi"), - self.define_from_variant("OpenTurbine_BUILD_ROSCO_CONTROLLER", "rosco"), - self.define_from_variant("OpenTurbine_ENABLE_KLU", "klu"), - self.define_from_variant("OpenTurbine_ENABLE_UMFPACK", "umfpack"), - self.define_from_variant("OpenTurbine_ENABLE_SUPERLU", "superlu"), - self.define_from_variant("OpenTurbine_ENABLE_SUPERLU_MT", "superlu-mt"), - self.define_from_variant("OpenTurbine_ENABLE_MKL", "mkl"), - self.define_from_variant("OpenTurbine_ENABLE_CUSOLVERSP", "cusolversp"), - ] - return options diff --git a/repos/spack_repo/builtin/packages/openturns/package.py b/repos/spack_repo/builtin/packages/openturns/package.py index 07a7fe28c8b..21e3c2c89f8 100644 --- a/repos/spack_repo/builtin/packages/openturns/package.py +++ b/repos/spack_repo/builtin/packages/openturns/package.py @@ -24,6 +24,8 @@ class Openturns(CMakePackage): license("LGPL-3.0-or-later") version("master", branch="master") + version("1.26", sha256="624bd45f89ab3afe1931cb07f8c5398e6983faa40a1d92a81b04006f45b66147") + version("1.25", sha256="d9606f25824a84233b2ccf07e0d03716e387453a4be26fdd031bd0d47458d045") version("1.24", sha256="6c5232b4daf0b93fbc49dee45299ade2c2c16d44476700e7689af6b50c999f57") version("1.23", sha256="4c7cfe5d2310933e3a2e91f7db9531d80e32157143157df80f6e93267c29f414") version("1.22", sha256="487f7fc00f02eb91d264c8c9d78c2abba505ac6aaa5bc0328c04dddbe6d58741") @@ -38,7 +40,8 @@ class Openturns(CMakePackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("cmake@2.8:", type="build") + depends_on("cmake@2.8:", type="build", when="@:1.24") + depends_on("cmake@3.18:", type="build", when="@1.25:") depends_on("bison", type="build") depends_on("flex", type="build") diff --git a/repos/spack_repo/builtin/packages/openvdb/package.py b/repos/spack_repo/builtin/packages/openvdb/package.py index d80c173179b..221b91900cc 100644 --- a/repos/spack_repo/builtin/packages/openvdb/package.py +++ b/repos/spack_repo/builtin/packages/openvdb/package.py @@ -3,7 +3,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os -import sys +import shutil from spack_repo.builtin.build_systems.cmake import CMakePackage @@ -14,15 +14,15 @@ class Openvdb(CMakePackage): """OpenVDB - a sparse volume data format.""" homepage = "https://github.com/AcademySoftwareFoundation/openvdb" - url = "https://github.com/AcademySoftwareFoundation/openvdb/archive/v10.0.0.tar.gz" + url = "https://github.com/AcademySoftwareFoundation/openvdb/archive/refs/tags/v13.0.0.tar.gz" git = "https://github.com/AcademySoftwareFoundation/openvdb.git" + license("MPL-2.0") # Github account name for drew@lagrangian.xyz maintainers("eloop") - license("MPL-2.0") - - version("develop", branch="develop") + version("master", branch="master") + version("13.0.0", sha256="4d6a91df5f347017496fe8d22c3dbb7c4b5d7289499d4eb4d53dd2c75bb454e1") version("10.0.0", sha256="6d4f6b5ccd0f9d35a4886d9a51a98c97fa314f75bf9737c5121e91b706e2db70") version("9.1.0", sha256="914ee417b4607c75c95b53bc73a0599de4157c7d6a32e849e80f24e40fb64181") version("8.2.0", sha256="d2e77a0720db79e9c44830423bdb013c24a1cf50994dd61d570b6e0c3e0be699") @@ -35,61 +35,128 @@ class Openvdb(CMakePackage): variant("vdb_print", default=False, description="Build the vdb_print tool.") variant("vdb_lod", default=False, description="Build the vdb_lod tool.") variant("vdb_render", default=False, description="Build the vdb_render tool.") - variant("ax", default=False, description="Build the AX extension (untested).") + # variant("ax", default=False, description="Build the AX extension.") + + depends_on("cxx", type="build") + depends_on("cmake@3.18:", type="build") # VDB 10+ needed newer cmake. + depends_on("cmake@3.24:", type="build", when="@13:") + depends_on("git", type="build", when="@develop") - depends_on("cxx", type="build") # generated + depends_on("ilmbase", when="@8:9") # note: ilmbase has been rolled into OpenEXR 3 + depends_on("imath@3.1:", when="@13:") - depends_on("ilmbase", when="@8:9") - depends_on("ilmbase@2.3:3.1", when="@10:") - depends_on("openexr", when="@8:9") - depends_on("openexr@2.3:3.1", when="@10:") + depends_on("openexr") + depends_on("openexr@2.3", when="@8:9") + depends_on("openexr@2.3:", when="@10") + depends_on("openexr@3.2:", when="@13:") + + depends_on("intel-tbb") depends_on("intel-tbb@:2020.1", when="@:8.1") - depends_on("intel-tbb@2021", when="@8.2:") + depends_on("intel-tbb@2021", when="@8.2:10") + depends_on("intel-tbb@2021:", when="@13:") + + depends_on("jemalloc") depends_on("zlib-api") - depends_on("c-blosc@1.17.0") # depends_on('c-blosc@1.5:') - depends_on("py-numpy", when="+python") - depends_on("boost+iostreams+system+python+numpy", when="+python") - depends_on("boost+iostreams+system", when="~python") - extends("python", when="+python") - - # AX requires quite a few things, and hasn't been properly released - # yet. I've only managed to build llvm@8.0.1 under centos8. It - # looks like the next version of OpenVDB will support llvm@12.0.0. - depends_on("llvm@8.0.1", when="+ax") - depends_on("bison", when="+ax") - depends_on("flex", when="+ax") - depends_on("git", type="build", when="@develop") + depends_on("c-blosc@1.17:") + + depends_on("boost+iostreams+system@1.82:", type=("build", "link"), when="@:10") + depends_on("boost+iostreams@1.82:", type=("build", "link"), when="@13:") + + with when("+python"): + extends("python") + depends_on("py-numpy", type=("build", "link")) + with when("@13:"): + depends_on("python@3.11", type=("build", "link")) + depends_on("py-nanobind", type=("build")) + with when("@:10"): + depends_on("python@3.10", type=("build", "link")) + # pre py-nanobind they used boost python + depends_on("boost+python+numpy") + + # This section still not ready for prime time. Seems to be very + # picky on particular versions of llmv.. AX requires quite a few + # things, and hasn't been properly released + # depends_on("llvm@18.1.8", when="+ax") + # depends_on("bison@3.7.0:", when="+ax") + # depends_on("flex@2.6.4:", when="+ax") def cmake_args(self): args = [ self.define("OPENVDB_BUILD_CORE", True), + # Force the specific Spack-built Boost prefix + self.define("Boost_ROOT", self.spec["boost"].prefix), + self.define("Boost_NO_BOOST_CMAKE", True), + self.define("Boost_NO_SYSTEM_PATHS", True), self.define_from_variant("BUILD_SHARED_LIBS", "shared"), self.define_from_variant("OPENVDB_BUILD_VDB_PRINT", "vdb_print"), self.define_from_variant("OPENVDB_BUILD_VDB_LOD", "vdb_lod"), self.define_from_variant("OPENVDB_BUILD_VDB_RENDER", "vdb_render"), - self.define_from_variant("OPENVDB_BUILD_AX", "ax"), - self.define_from_variant("OPENVDB_BUILD_AX_BINARIES", "ax"), self.define_from_variant("OPENVDB_BUILD_PYTHON_MODULE", "python"), - self.define_from_variant("USE_NUMPY", "python"), + # AX removed for the time being + # self.define_from_variant("OPENVDB_BUILD_AX", "ax"), + # self.define_from_variant("OPENVDB_BUILD_AX_BINARIES", "ax"), ] + + if self.spec.satisfies("+python"): + args.append(self.define("Python3_EXECUTABLE", self.spec["python"].command.path)) + return args - # Before v8.2.0 the python extension is being installed in the - # wrong directory by OpenVDB's cmake, instead it needs to be in - # python_platlib. And for RHEL systems we find the dso in - # lib64/ instead of lib/. @run_after("install") - def post_install(self): + def fix_python_layout(self): + """Fixes the lib64 vs lib issue for RHEL/Rocky etc""" spec = self.spec - if "+python" in spec and spec.satisfies("@:8.0.1"): - if sys.platform == "darwin": - pyso = "pyopenvdb.dylib" - else: - pyso = "pyopenvdb.so" - pyver = f"python{self['python'].version.up_to(2)}" - - src = self.prefix.lib.join(pyver).join(pyso) - if not os.path.isfile(src): - src = self.prefix.lib64.join(pyver).join(pyso) - assert os.path.isfile(src) - os.rename(src, os.path.join(python_platlib, pyso)) + if "+python" not in spec: + return + + # Explicitly use string paths for os.path operations + prefix_str = str(self.prefix) + py_ver = spec["python"].version.up_to(2) + target_dir = os.path.join(prefix_str, "lib", f"python{py_ver}", "site-packages") + + # pattern is globally available in Spack DSL + pattern = f"openvdb*.{dso_suffix}" + matches = find(prefix_str, pattern, recursive=True) + + if not matches: + if find(target_dir, pattern, recursive=True): + return + raise InstallError(f"Python extension 'openvdb' not found in {self.prefix}") + + mkdirp(target_dir) + + for src in matches: + # Avoid moving if it's already in the right place + if os.path.normpath(os.path.dirname(src)) == os.path.normpath(target_dir): + continue + + install(src, target_dir) + os.remove(src) + + # Cleanup lib64 remnants + old_path = os.path.join(prefix_str, "lib64", f"python{py_ver}") + if os.path.isdir(old_path): + shutil.rmtree(old_path, ignore_errors=True) + + def test_python_import(self): + """Verify that OpenVDB can create and manipulate a grid.""" + + if "+python" not in self.spec: + return + + python_exe = self.spec["python"].command.path + py = Executable(python_exe) + + # This script creates a FloatGrid, sets a value, and checks it. + # It tests: 1. Import, 2. C++ Binding, 3. Memory Allocation + test_script = ( + "import openvdb as vdb; " + "grid = vdb.FloatGrid(); " + "grid.name = 'test_grid'; " + "accessor = grid.getAccessor(); " + "accessor.setValueOn((0, 0, 0), 1.0); " + "assert grid.activeVoxelCount() == 1; " + "print('OpenVDB Functional Test: PASSED')" + ) + + py("-c", test_script) diff --git a/repos/spack_repo/builtin/packages/ophidia_analytics_framework/package.py b/repos/spack_repo/builtin/packages/ophidia_analytics_framework/package.py index c2d9e272214..53eda2f4495 100644 --- a/repos/spack_repo/builtin/packages/ophidia_analytics_framework/package.py +++ b/repos/spack_repo/builtin/packages/ophidia_analytics_framework/package.py @@ -14,11 +14,6 @@ class OphidiaAnalyticsFramework(AutotoolsPackage): url = "https://github.com/OphidiaBigData/ophidia-analytics-framework/archive/refs/tags/v1.7.3.tar.gz" maintainers("eldoo", "SoniaScard") version("1.7.3", sha256="f8fc6374613efd10d9878e216b40494fd38622389c52005e3b85dd9956fa7cd5") - version( - "1.7.1", - sha256="565050b90ce1cefc59136c835a335ca7981fec792df7a1ee9309b24c05b275d6", - deprecated=True, - ) depends_on("c", type="build") # generated depends_on("autoconf", type="build") diff --git a/repos/spack_repo/builtin/packages/ophidia_io_server/package.py b/repos/spack_repo/builtin/packages/ophidia_io_server/package.py index d2d72839dd5..4c72a19d08b 100644 --- a/repos/spack_repo/builtin/packages/ophidia_io_server/package.py +++ b/repos/spack_repo/builtin/packages/ophidia_io_server/package.py @@ -14,11 +14,6 @@ class OphidiaIoServer(AutotoolsPackage): url = "https://github.com/OphidiaBigData/ophidia-io-server/archive/refs/tags/v1.7.3.tar.gz" maintainers("eldoo", "SoniaScard") version("1.7.3", sha256="a33f1010f72f163f103593d14e7b4480258e4c8f0094c792d2a19bcb88ef323f") - version( - "1.7.2", - sha256="8b203c44e0e5497c00f1fdb2322f0b0a41f36900b62a33d95a4570ae1ccc2971", - deprecated=True, - ) depends_on("c", type="build") # generated depends_on("autoconf", type="build") diff --git a/repos/spack_repo/builtin/packages/optipng/for_aarch64_0.7.7.patch b/repos/spack_repo/builtin/packages/optipng/for_aarch64_0.7.7.patch deleted file mode 100644 index b58cd4f1850..00000000000 --- a/repos/spack_repo/builtin/packages/optipng/for_aarch64_0.7.7.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- spack-src/configure.bak 2017-12-27 20:57:00.000000000 +0900 -+++ spack-src/configure 2020-09-28 17:04:51.030223443 +0900 -@@ -193,7 +193,7 @@ - if test "$gccish" -ne 0 - then - CC="${CC-$cc}" -- CFLAGS="${CFLAGS--O2 -Wall -Wextra}" -+ CFLAGS="${CFLAGS--O2 -Wall -Wextra -DPNG_ARM_NEON_OPT=0}" - else - CC="${CC-cc}" - CFLAGS="${CFLAGS--O}" diff --git a/repos/spack_repo/builtin/packages/optipng/package.py b/repos/spack_repo/builtin/packages/optipng/package.py index d03fe8e4615..7cfb64b02ad 100644 --- a/repos/spack_repo/builtin/packages/optipng/package.py +++ b/repos/spack_repo/builtin/packages/optipng/package.py @@ -22,13 +22,9 @@ class Optipng(AutotoolsPackage, SourceforgePackage): license("Zlib") version("0.7.8", sha256="25a3bd68481f21502ccaa0f4c13f84dcf6b20338e4c4e8c51f2cefbd8513398c") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2023-43907 - version("0.7.7", sha256="4f32f233cef870b3f95d3ad6428bfe4224ef34908f1b42b0badf858216654452") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated # See https://github.com/imagemin/optipng-bin/issues/97 - patch("for_aarch64_0.7.7.patch", when="@0.7.7") patch("for_aarch64_0.7.8.patch", when="@0.7.8:") diff --git a/repos/spack_repo/builtin/packages/optix_dev/package.py b/repos/spack_repo/builtin/packages/optix_dev/package.py index fc5d243dd76..3b2883569d5 100644 --- a/repos/spack_repo/builtin/packages/optix_dev/package.py +++ b/repos/spack_repo/builtin/packages/optix_dev/package.py @@ -24,6 +24,7 @@ class OptixDev(Package): maintainers("plexoos") build_system("generic") + version("9.1.0", sha256="3a29b2254107fdfbb5e6bbad3ec154dd682149121f61e9c406607ac7b52a6ba6") version("9.0.0", sha256="069a5860040ea611e7eb6317f8e3bb0f0d54a5acac744568f7290d7cb8711c05") version("8.1.0", sha256="aa32dfb55f37ff92964a5545b056094d86635441b3513e1d45a9410404b6d7c2") version("8.0.0", sha256="b32e74c9f5c13549ff3a9760076271b5b6ec28f93fe6a8dd0bde74d7e5c58e05") diff --git a/repos/spack_repo/builtin/packages/opus/package.py b/repos/spack_repo/builtin/packages/opus/package.py index b9c4b94f153..41b0270ab5e 100644 --- a/repos/spack_repo/builtin/packages/opus/package.py +++ b/repos/spack_repo/builtin/packages/opus/package.py @@ -15,6 +15,7 @@ class Opus(AutotoolsPackage): license("BSD-3-Clause") + version("1.6.1", sha256="6ffcb593207be92584df15b32466ed64bbec99109f007c82205f0194572411a1") version("1.5.2", sha256="65c1d2f78b9f2fb20082c38cbe47c951ad5839345876e46941612ee87f9a7ce1") version("1.5.1", sha256="b84610959b8d417b611aa12a22565e0a3732097c6389d19098d844543e340f85") version("1.5", sha256="d8230bbeb99e6d558645aaad25d79de8f4f28fdcc55f8af230050586d62c4f2c") @@ -45,4 +46,4 @@ class Opus(AutotoolsPackage): version("0.9.1", sha256="206221afc47b87496588013bd4523e1e9f556336c0813f4372773fc536dd4293") version("0.9.0", sha256="b2f75c4ac5ab837845eb028413fae2a28754bfb0a6d76416e2af1441ef447649") - depends_on("c", type="build") # generated + depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/oracle_instant_client/package.py b/repos/spack_repo/builtin/packages/oracle_instant_client/package.py index 3c39db1d0bd..a9f993536b4 100644 --- a/repos/spack_repo/builtin/packages/oracle_instant_client/package.py +++ b/repos/spack_repo/builtin/packages/oracle_instant_client/package.py @@ -80,6 +80,10 @@ class OracleInstantClient(Package): homepage = "https://www.oracle.com/database/technologies/instant-client.html" url = "https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-basic-linux.x64-21.1.0.0.0.zip" + license("LicenseRef-Oracle-Proprietary", checked_by="alecbcs") + + redistribute(source=False, binary=False) + releases = oracleclient_releases() for release in releases: oracle_version = release["version"] diff --git a/repos/spack_repo/builtin/packages/orca/package.py b/repos/spack_repo/builtin/packages/orca/package.py index 8b1e2e4dde5..9eec1a4adba 100644 --- a/repos/spack_repo/builtin/packages/orca/package.py +++ b/repos/spack_repo/builtin/packages/orca/package.py @@ -3,11 +3,37 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os +import platform from spack_repo.builtin.build_systems.generic import Package from spack.package import * +_versions = { + "avx2-6.1.1": { + "Linux-x86_64": "5eaf676f9711a38835d609264321a30266b487b65477547802dedee982bc82d5" + }, + "6.1.1": { + "Linux-aarch64": "927c9f165ac6ec7547d543215a5d02c662c691c1659ba5bcd3d687817e8a6757", + "Linux-x86_64": "a0bc1d6d2c3c00620367bbc5dbf2b3a7018abc92d1ff65f06cec46f75350b9be", + }, + "avx2-6.0.1": { + "Linux-x86_64": "f31f98256a0c6727b6ddfe50aa3ac64c45549981138d670a57e90114b4b9c9d2" + }, + "6.0.1": { + "Linux-aarch64": "0699cbccb6dbee66e14e69c4bb1300b35820b4222afdd7371e50aa23fe28be48", + "Linux-x86_64": "5e9b49588375e0ce5bc32767127cc725f5425917804042cdecdfd5c6b965ef61", + }, + "avx2-6.0.0": { + "Linux-x86_64": "02c21294efe7b1b721e26cb90f98ee15ad682d02807201b7d217dfe67905a2fd" + }, + "6.0.0": {"Linux-x86_64": "219bd1deb6d64a63cb72471926cb81665cbbcdec19f9c9549761be67d49a29c6"}, + "5.0.4": {"Linux-x86_64": "c4ea5aea60da7bcb18a6b7042609206fbeb2a765c6fa958c5689d450b588b036"}, + "5.0.3": {"Linux-x86_64": "b8b9076d1711150a6d6cb3eb30b18e2782fa847c5a86d8404b9339faef105043"}, + "4.2.1": {"Linux-x86_64": "a84b6d2706f0ddb2f3750951864502a5c49d081836b00164448b1d81c577f51a"}, + "4.2.0": {"Linux-x86_64": "01096466e41a5232e5a18af7400e48c02a6e489f0d5d668a90cdd2746e8e22e2"}, +} + class Orca(Package): """An ab initio, DFT and semiempirical SCF-MO package @@ -24,18 +50,11 @@ class Orca(Package): license("LGPL-2.1-or-later") - version( - "avx2-6.0.1", sha256="f31f98256a0c6727b6ddfe50aa3ac64c45549981138d670a57e90114b4b9c9d2" - ) - version("6.0.1", sha256="5e9b49588375e0ce5bc32767127cc725f5425917804042cdecdfd5c6b965ef61") - version( - "avx2-6.0.0", sha256="02c21294efe7b1b721e26cb90f98ee15ad682d02807201b7d217dfe67905a2fd" - ) - version("6.0.0", sha256="219bd1deb6d64a63cb72471926cb81665cbbcdec19f9c9549761be67d49a29c6") - version("5.0.4", sha256="c4ea5aea60da7bcb18a6b7042609206fbeb2a765c6fa958c5689d450b588b036") - version("5.0.3", sha256="b8b9076d1711150a6d6cb3eb30b18e2782fa847c5a86d8404b9339faef105043") - version("4.2.1", sha256="a84b6d2706f0ddb2f3750951864502a5c49d081836b00164448b1d81c577f51a") - version("4.2.0", sha256="01096466e41a5232e5a18af7400e48c02a6e489f0d5d668a90cdd2746e8e22e2") + for ver, packages in _versions.items(): + key = "{0}-{1}".format(platform.system(), platform.machine()) + sha_val = packages.get(key) + if sha_val: + version(ver, sha256=sha_val, deprecated=packages.get("deprecated", False)) depends_on("libevent", type="run") depends_on("libpciaccess", type="run") @@ -49,8 +68,10 @@ class Orca(Package): "5.0.4": "4.1.2", "6.0.0": "4.1.6", "6.0.1": "4.1.6", + "6.1.1": "4.1.8", "avx2-6.0.0": "4.1.6", "avx2-6.0.1": "4.1.6", + "avx2-6.1.1": "4.1.8", } for orca_version, openmpi_version in openmpi_versions.items(): depends_on( @@ -64,12 +85,15 @@ def url_for_version(self, version): ver_parts = version.string.split("-") ver_underscored = ver_parts[-1].replace(".", "_") - features = ver_parts[:-1] + ["shared"] - feature_text = "_".join(features) - - url = f"file://{os.getcwd()}/orca_{ver_underscored}_linux_x86-64_{feature_text}_openmpi{openmpi_version}.tar.xz" - if self.spec.satisfies("@=avx2-6.0.1"): - url = f"file://{os.getcwd()}/orca_{ver_underscored}_linux_x86-64_shared_openmpi{openmpi_version}_avx2.tar.xz" + features = ver_parts[:-1] + orca_arch = "linux_x86-64" + if platform.system() == "Linux" and platform.machine() == "aarch64": + orca_arch = "linux_arm64" + feat = "_avx2" if "avx2" in features else "" + url = f"file://{os.getcwd()}/orca_{ver_underscored}_{orca_arch}_shared_openmpi{openmpi_version}{feat}.tar.xz" + + if self.spec.satisfies("@=avx2-6.0.0"): + url = f"file://{os.getcwd()}/orca_{ver_underscored}_{orca_arch}_avx2_shared_openmpi{openmpi_version}.tar.xz" return url diff --git a/repos/spack_repo/builtin/packages/osi/package.py b/repos/spack_repo/builtin/packages/osi/package.py index c1bf7d5a173..358a161b100 100644 --- a/repos/spack_repo/builtin/packages/osi/package.py +++ b/repos/spack_repo/builtin/packages/osi/package.py @@ -23,14 +23,18 @@ class Osi(AutotoolsPackage): depends_on("pkgconfig", type="build") depends_on("coinutils") - depends_on("pkgconfig", type="build") license("EPL-2.0") + version("0.108.12", sha256="1d80d0b4275f2e1ceefc6dda66b8616e3a8c8b07a926ef4456db4a0d55249333") version("0.108.8", sha256="8b01a49190cb260d4ce95aa7e3948a56c0917b106f138ec0a8544fadca71cf6a") version("0.108.7", sha256="f1bc53a498585f508d3f8d74792440a30a83c8bc934d0c8ecf8cd8bc0e486228") version("0.108.6", sha256="984a5886825e2da9bf44d8a665f4b92812f0700e451c12baf9883eaa2315fad5") + version("0.107.10", sha256="f7f09612be8c863ec6a61f4b9c645537cf71b7c3118b9220d1e83444f3733628") + version("0.107.6", sha256="2320dd7016f00fb18be9036285ed7422d263e4bc88dbdde2830a2fbf003fbf82") + version("0.106.10", sha256="16ae796a7d650f45f9d8555574cc5c6dd2131342d504345d689a6a2adda80855") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") build_directory = "spack-build" diff --git a/repos/spack_repo/builtin/packages/osmosis/package.py b/repos/spack_repo/builtin/packages/osmosis/package.py new file mode 100644 index 00000000000..cbcf920d879 --- /dev/null +++ b/repos/spack_repo/builtin/packages/osmosis/package.py @@ -0,0 +1,31 @@ +# 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 Osmosis(Package): + """Osmosis is a Java application and library for processing OSM data.""" + + homepage = "https://wiki.openstreetmap.org/wiki/Osmosis" + url = "https://github.com/openstreetmap/osmosis/archive/refs/tags/0.49.2.tar.gz" + + license("Unlicense", checked_by="mtpham99") # "Public Domain" specified in "build.gradle" + + version("0.49.2", sha256="b355771c35f326ee45431916c2ebe3f81a09ba571c03c3302f5268103f7b7e3c") + + depends_on("java@17", type=("build", "run"), when="@0.49:") + depends_on("tar", type="build") + + def install(self, spec, prefix): + tar = which("tar", required=True) + gradlew = Executable("./gradlew") + + gradlew("--info", "--debug", "clean", "assemble") + + with working_dir("osmosis/build/distributions"): + tar("xvf", "osmosis--SNAPSHOT.tar", "--strip-components", "1", "--directory", prefix) diff --git a/repos/spack_repo/builtin/packages/osqp/package.py b/repos/spack_repo/builtin/packages/osqp/package.py index a8a81a161c3..7fba771539b 100644 --- a/repos/spack_repo/builtin/packages/osqp/package.py +++ b/repos/spack_repo/builtin/packages/osqp/package.py @@ -24,4 +24,5 @@ class Osqp(CMakePackage): version("0.6.0", commit="0baddd36bd57ec1cace0a52c6dd9663e8f16df0a", submodules=True) version("0.5.0", commit="97050184aa2cbebe446ae02d1f8b811243e180d6", submodules=True) - depends_on("c", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") diff --git a/repos/spack_repo/builtin/packages/osu_micro_benchmarks/package.py b/repos/spack_repo/builtin/packages/osu_micro_benchmarks/package.py index a9ae6fb139f..16b5715312f 100644 --- a/repos/spack_repo/builtin/packages/osu_micro_benchmarks/package.py +++ b/repos/spack_repo/builtin/packages/osu_micro_benchmarks/package.py @@ -23,6 +23,8 @@ class OsuMicroBenchmarks(AutotoolsPackage, CudaPackage, ROCmPackage): maintainers("natshineman", "harisubramoni", "MatthewLieber") + version("7.5.2", sha256="618de3d0b1122f73a9229177d2da1e5cd62e431190580cb915f2605849cbbbdc") + version("7.5.1", sha256="160d0d5e3c3cb022520ecb247e9875bb0973b1d3cadccd6c17624f8407c52e22") version("7.5", sha256="1cf84ac5419456202757a757c5f9a4f5c6ecd05c65783c7976421cfd6020b3b3") version("7.4", sha256="1edd0c2efa61999409bfb28740a7f39689a5b42b1a1b4c66d1656e5637f7cefc") version("7.3", sha256="8fa25b8aaa34e4b07ab3a4f30b7690ab46b038b08d204a853a9b6aa7bdb02f2f") @@ -54,9 +56,13 @@ class OsuMicroBenchmarks(AutotoolsPackage, CudaPackage, ROCmPackage): depends_on("mpi") variant("papi", description="Enable/Disable support for papi", default=False) variant("graphing", description="Enable/Disable support for graphing", default=False) + variant("xccl", when="+cuda", description="Enable/Disable XCCL benchmarks", default=True) + variant("xccl", when="+rocm", description="Enable/Disable XCCL benchmarks", default=True) depends_on("papi", when="+papi") depends_on("gnuplot", when="+graphing") depends_on("imagemagick", when="+graphing") + depends_on("nccl", when="+cuda+xccl") + depends_on("rccl", when="+rocm+xccl") def configure_args(self): spec = self.spec @@ -64,12 +70,16 @@ def configure_args(self): if "+cuda" in spec: config_args.extend(["--enable-cuda", "--with-cuda=%s" % spec["cuda"].prefix]) + if spec.satisfies("+xccl"): + config_args.extend(["--enable-ncclomb", "--with-nccl=%s" % spec["nccl"].prefix]) cuda_arch = spec.variants["cuda_arch"].value if "none" not in cuda_arch: config_args.append("NVCCFLAGS=" + " ".join(self.cuda_flags(cuda_arch))) if "+rocm" in spec: - config_args.extend(["--enable-rocm", "--with-rocm=%s" % spec["hip"].prefix]) + config_args.extend(["--with-rocm=%s" % spec["hip"].prefix]) + if spec.satisfies("+xccl"): + config_args.extend(["--enable-rcclomb", "--with-rccl=%s" % spec["rccl"].prefix]) rocm_arch = spec.variants["amdgpu_target"].value if "none" not in rocm_arch: config_args.append("HCC_AMDGPU_TARGET=" + self.hip_flags(rocm_arch)) @@ -89,9 +99,17 @@ def configure_args(self): config_args.append("LDFLAGS=-lrt") return config_args + def setup_build_environment(self, env: EnvironmentModifications) -> None: + if "+cuda" in self.spec: + env.prepend_path("LIBRARY_PATH", self.spec["cuda"].prefix.lib64.stubs) + def setup_run_environment(self, env: EnvironmentModifications) -> None: mpidir = join_path(self.prefix.libexec, "osu-micro-benchmarks", "mpi") env.prepend_path("PATH", join_path(mpidir, "startup")) env.prepend_path("PATH", join_path(mpidir, "pt2pt")) env.prepend_path("PATH", join_path(mpidir, "one-sided")) env.prepend_path("PATH", join_path(mpidir, "collective")) + if self.spec.satisfies("+cuda") or self.spec.satisfies("+rocm"): + xccldir = join_path(self.prefix.libexec, "osu-micro-benchmarks", "xccl") + env.prepend_path("PATH", join_path(xccldir, "pt2pt")) + env.prepend_path("PATH", join_path(xccldir, "collective")) diff --git a/repos/spack_repo/builtin/packages/otf2/cray_ac_scorep_sys_detection-m4.patch b/repos/spack_repo/builtin/packages/otf2/cray_ac_scorep_sys_detection-m4.patch deleted file mode 100644 index 52ea2428ec4..00000000000 --- a/repos/spack_repo/builtin/packages/otf2/cray_ac_scorep_sys_detection-m4.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/vendor/common/build-config/m4/ac_scorep_sys_detection.m4 2019-07-19 01:31:13.409311556 -0500 -+++ b/vendor/common/build-config/m4/ac_scorep_sys_detection.m4 2021-03-04 22:11:30.278313559 -0600 -@@ -100,6 +100,8 @@ - [test "x${build_cpu}" = "xpowerpc64" && test -d /bgsys], - [ac_scorep_platform="bgp"], - [(test "x${build_cpu}" = "xx86_64" || test "x${build_cpu}" = "xaarch64") && test -d /opt/cray], -+ [AS_IF([test -d /opt/cray/cs-prgenv], -+ [ac_scorep_platform="crayxc"])] - [AS_IF([test -L /opt/cray/pmi/default], - [AS_IF([test "x`readlink -f /opt/cray/pmi/default | grep -o --regexp=[[a-z]]*$ | grep -q ss && echo TRUE`" = "xTRUE"], - [ac_scorep_platform="crayxt"], diff --git a/repos/spack_repo/builtin/packages/otf2/package.py b/repos/spack_repo/builtin/packages/otf2/package.py index f46c05ad4a9..bfdc5059e9f 100644 --- a/repos/spack_repo/builtin/packages/otf2/package.py +++ b/repos/spack_repo/builtin/packages/otf2/package.py @@ -20,77 +20,22 @@ class Otf2(AutotoolsPackage): version("3.0.3", sha256="18a3905f7917340387e3edc8e5766f31ab1af41f4ecc5665da6c769ca21c4ee8") version("3.0", sha256="6fff0728761556e805b140fd464402ced394a3c622ededdb618025e6cdaa6d8c") version("2.3", sha256="36957428d37c40d35b6b45208f050fb5cfe23c54e874189778a24b0e9219c7e3") - version( - "2.2", - sha256="d0519af93839dc778eddca2ce1447b1ee23002c41e60beac41ea7fe43117172d", - deprecated=True, - ) - version( - "2.1.1", - sha256="01591b42e76f396869ffc84672f4eaa90ee8ec2a8939755d9c0b5b8ecdcf47d3", - deprecated=True, - ) - version( - "2.1", - sha256="8ad38ea0461099e34f00f2947af4409ce9b9c379e14c3f449ba162e51ac4cad3", - deprecated=True, - ) - version( - "2.0", - sha256="bafe0ac08e0a13e71568e5774dc83bd305d907159b4ceeb53d2e9f6e29462754", - deprecated=True, - ) - version( - "1.5.1", - sha256="a4dc9f6c99376030b43a4c7b1ee77cfb530b03928ea688c6d1a380b3f4e8e488", - deprecated=True, - ) - version( - "1.4", - sha256="fb5fe169003c01e40848e224f09c440014e9872e84d2ca02ce7fffdd3f879a2f", - deprecated=True, - ) - version( - "1.3.1", - sha256="c4605ace845d89fb1a19223137b92cc503b01e3db5eda8c9e0715d0cfcf2e4b9", - deprecated=True, - ) - version( - "1.2.1", - sha256="1db9fb0789de4a9c3c96042495e4212a22cb581f734a1593813adaf84f2288e4", - deprecated=True, - ) depends_on("c", type="build") depends_on("cxx", type="build") depends_on("fortran", type="build") - def url_for_version(self, version): - if version < Version("2.3"): - return f"https://www.vi-hps.org/cms/upload/packages/otf2/otf2-{version}.tar.gz" - - return f"https://perftools.pages.jsc.fz-juelich.de/cicd/otf2/tags/otf2-{version}/otf2-{version}.tar.gz" + depends_on("findutils", type="build") extends("python") # `imp` module required - depends_on("python@:3.11", type=("build", "run")) - - with when("@2.2 %cce"): - depends_on("autoconf", type="build") - depends_on("automake", type="build") - depends_on("libtool", type="build") + depends_on("python@3", type=("build", "run"), when="@3.1:") + depends_on("python@:3.11", type=("build", "run"), when="@:3.0") # Fix missing initialization of variable resulting in issues when used by # APEX/HPX: https://github.com/STEllAR-GROUP/hpx/issues/5239 - patch("collective_callbacks.patch", when="@2.1:") - - # when using Cray's cs-prgenv, allow the build system to detect the systems as an XC - patch("cray_ac_scorep_sys_detection-m4.patch", when="@2.2 %cce") - - @property - def force_autoreconf(self): - return self.spec.satisfies("@2.2 %cce") + patch("collective_callbacks.patch") def flag_handler(self, name, flags): if name == "cflags": diff --git a/repos/spack_repo/builtin/packages/p3dfft3/package.py b/repos/spack_repo/builtin/packages/p3dfft3/package.py index 429623a625c..6a697547944 100644 --- a/repos/spack_repo/builtin/packages/p3dfft3/package.py +++ b/repos/spack_repo/builtin/packages/p3dfft3/package.py @@ -27,17 +27,17 @@ class P3dfft3(AutotoolsPackage): variant( "measure", default=False, - description="Define if you want to use" "the measure fftw planner flag", + description="Define if you want to use the measure fftw planner flag", ) variant( "estimate", default=False, - description="Define if you want to" "use the estimate fftw planner flag", + description="Define if you want to use the estimate fftw planner flag", ) variant( "patient", default=False, - description="Define if you want to" "use the patient fftw planner flag", + description="Define if you want to use the patient fftw planner flag", ) # TODO: Add more configure options! @@ -55,6 +55,8 @@ def configure_args(self): if "%gcc" in self.spec: args.append("--enable-gnu") + args.append("CFLAGS=-Wno-error=implicit-int") + args.append("FCFLAGS=-fallow-argument-mismatch") if "%intel" in self.spec: args.append("--enable-intel") diff --git a/repos/spack_repo/builtin/packages/p7zip/package.py b/repos/spack_repo/builtin/packages/p7zip/package.py index e5ded1cf68b..eb8eb1d6065 100644 --- a/repos/spack_repo/builtin/packages/p7zip/package.py +++ b/repos/spack_repo/builtin/packages/p7zip/package.py @@ -16,12 +16,13 @@ class P7zip(MakefilePackage): license("DOC") + version("17.06", sha256="c35640020e8f044b425d9c18e1808ff9206dc7caf77c9720f57eb0849d714cd1") version("17.05", sha256="d2788f892571058c08d27095c22154579dfefb807ebe357d145ab2ddddefb1a6") version("17.04", sha256="ea029a2e21d2d6ad0a156f6679bd66836204aa78148a4c5e498fe682e77127ef") version("16.02", sha256="5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6e2341f") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") patch( "gcc10.patch", diff --git a/repos/spack_repo/builtin/packages/padicotm/package.py b/repos/spack_repo/builtin/packages/padicotm/package.py new file mode 100644 index 00000000000..4fb60fd4ae1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/padicotm/package.py @@ -0,0 +1,120 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.packages.puk.package import Puk + +from spack.package import * + + +class Padicotm(AutotoolsPackage): + """PadicoTM communication framework and launcher. + + PadicoTM is the runtime infrastructure for the Padico software + environment for computational grids. It is composed of a core + which provides a high-performance framework for networking and + multi-threading, on top of which the abstraction layer is built + with freely and dynamically assembled components. Various + communications methods are embedded in components that the user + may assemble to get the needed communication stack. + """ + + homepage = "https://pm2.gitlabpages.inria.fr/PadicoTM/" + url = "https://pm2.gitlabpages.inria.fr/releases/" + list_url = "https://pm2.gitlabpages.inria.fr/releases/" + git = "https://gitlab.inria.fr/pm2/pm2.git" + + maintainers("a-denis") + license("GPL-2.0-or-later", checked_by="a-denis") + + def url_for_version(self, version): + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-{0}.tar.gz" + return url.format(version) + + version("master", branch="master") + version( + "2026-01-21", sha256="2cd40d7712d78c6c43c510c3ae2bdbc3d539800f6d3926730bddde396e953847" + ) + version( + "2025-03-18", sha256="2d0208809dd17bac4fd7e7f97b22e2240b925d8828b9ab5dc5f435e58ff97010" + ) + version( + "2024-11-21", sha256="76da169bbb9720a13be1f750480e1a7d6510830163878852876932639879d632" + ) + version( + "2024-07-12", sha256="ea9bb91b213950a52eb99d787110905d45ed02954ea9133596d690db5be0c31b" + ) + version( + "2022-05-31", sha256="afd19809a5a520a477ab596f951bbde3209868ab16febbc246592e8aed20c3ca" + ) + version( + "2021-05-21", sha256="6a207b032e623b8be0196a42dcaf4311bfe45ede2e044bd47611b6610c04c61e" + ) + + variant("optimize", default=True, description="Build in optimized mode") + variant("debug", default=False, description="Build in debug mode") + variant("asan", default=False, description="Build with Address Sanitizer (ASAN)") + variant("pukabi", default=False, description="Build with PukABI") + variant("pioman", default=True, description="use pioman I/O manager") + variant("ibverbs", default=True, description="use InfiniBand ibverbs") + variant("psm", default=False, description="use Intel Performance Scaled Messaging (PSM)") + variant("psm2", default=False, description="use Intel Performance Scaled Messaging 2 (PSM2)") + variant("ofi", default=True, description="use OpenFabric Interface (libfabric)") + variant("craypmi", default=False, description="use Cray PMI support") + variant("pmix", default=True, description="use slurm PMIx support") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("pkgconfig", type="build") + depends_on("autoconf@2.69:", type="build") + depends_on("gmake", type="build") + + depends_on("hwloc@2.0.0:", type=("build", "link", "run")) + depends_on("zlib") + depends_on("lz4") + depends_on("rdma-core", when="+ibverbs") + depends_on("psm", when="+psm") + depends_on("opa-psm2", when="+psm2") + depends_on("libfabric", when="+ofi") + depends_on("cray-pmi", when="+craypmi") + depends_on("pmix", when="+pmix") + requires("+pukabi", when="+ibverbs", msg="ibverbs rcache requires pukabi") + + for v in Puk.versions: + depends_on(f"puk@{v}", when=f"@{v}") + depends_on(f"pukabi@{v}", when=f"@{v} +pukabi") + depends_on(f"pioman@{v}", when=f"@{v} +pioman") + + depends_on("puk") + depends_on("pukabi", when="+pukabi") + depends_on("pioman", when="+pioman") + depends_on("puk+asan", when="+asan") + + conflicts("+pukabi", when="+asan", msg="PukABI and ASAN conflicts for LD_PRELOAD") + conflicts("platform=darwin", msg="Darwin is not supported.") + conflicts("platform=windows", msg="Windows is not supported.") + conflicts("%gcc@:5", msg="Requires at least gcc 6.") + conflicts("%gcc@14:", when="@:2024-07-12", msg="Older release do not support gcc >= 14") + + configure_directory = "PadicoTM" + build_directory = "build" + + def autoreconf(self, spec, prefix): + with working_dir(self.configure_directory): + Executable("./autogen.sh")() + + def configure_args(self): + config_args = ["--without-portals4"] # portals4 not packaged in spack + config_args += self.enable_or_disable("optimize") + config_args += self.enable_or_disable("debug") + config_args += self.enable_or_disable("asan") + config_args += self.with_or_without("pukabi") + config_args += self.with_or_without("pioman") + config_args += self.with_or_without("psm") + config_args += self.with_or_without("psm2") + config_args += self.with_or_without("ofi") + config_args += self.with_or_without("ibverbs") + config_args += self.with_or_without("pmix") + config_args += self.with_or_without("pmi2", variant="craypmi") + return config_args diff --git a/repos/spack_repo/builtin/packages/palace/package.py b/repos/spack_repo/builtin/packages/palace/package.py index e73da179d57..779477333eb 100644 --- a/repos/spack_repo/builtin/packages/palace/package.py +++ b/repos/spack_repo/builtin/packages/palace/package.py @@ -3,24 +3,34 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage from spack.package import * -class Palace(CMakePackage): +class Palace(CMakePackage, CudaPackage, ROCmPackage): """3D finite element solver for computational electromagnetics""" tags = ["cem", "fem", "finite-elements", "hpc", "solver"] homepage = "https://github.com/awslabs/palace" git = "https://github.com/awslabs/palace.git" + license("Apache-2.0") - maintainers("sebastiangrimberg") + maintainers("hughcars", "simlap", "cameronrutherford", "sbozzolo", "phdum") version("develop", branch="main") + version("0.16.0", tag="v0.16.0", commit="869ee5ced4850384410a7aeebc7c25f4c01be161") + version("0.15.0", tag="v0.15.0", commit="b6762777d85a06072fdf4cc96e8a365da73df170") + version("0.14.0", tag="v0.14.0", commit="a428a3a32dbbd6a2a6013b3b577016c3e9425abc") + version("0.13.0", tag="v0.13.0", commit="a61c8cbe0cacf496cde3c62e93085fae0d6299ac") version("0.12.0", tag="v0.12.0", commit="8c192071206466638d5818048ee712e1fada386f") version("0.11.2", tag="v0.11.2", commit="6c3aa5f84a934a6ddd58022b2945a1bdb5fa329d") + # Note: 'cuda' and 'cuda_arch' variants are added by the CudaPackage + # Note: 'rocm' and 'amdgpu_target' variants are added by the ROCmPackage + variant("cxxstd", default="17", values=("17", "20"), description="C++ standard", when="@0.16:") variant("shared", default=True, description="Build shared libraries") variant("int64", default=False, description="Use 64 bit integers") variant("openmp", default=False, description="Use OpenMP for shared-memory parallelism") @@ -28,44 +38,73 @@ class Palace(CMakePackage): "superlu-dist", default=True, description="Build with SuperLU_DIST sparse direct solver" ) variant("strumpack", default=False, description="Build with STRUMPACK sparse direct solver") + variant( + "sundials", + default=True, + description="Build with SUNDIALS differential/algebraic equations solver", + when="@0.14:", + ) variant("mumps", default=False, description="Build with MUMPS sparse direct solver") variant("slepc", default=True, description="Build with SLEPc eigenvalue solver") variant("arpack", default=False, description="Build with ARPACK eigenvalue solver") - variant("libxsmm", default=True, description="Build with LIBXSMM backend for libCEED") - variant("magma", default=True, description="Build with MAGMA backend for libCEED") + variant("libxsmm", default=True, description="Build with libxsmm backend for libCEED") variant( "gslib", default=True, description="Build with GSLIB library for high-order field interpolation", ) + variant( + "asan", + default=False, + description="Build with address-sanitizer enabled (leads to severe loss of performance)", + when="@0.16:", + ) + variant( + "coverage", + default=False, + description="Measure code coverage when running (leads to severe loss of performance)", + when="@0.16:", + ) + + # Fix API mismatch between libxsmm@main and internal libceed build + patch("palace-0.12.0.patch", when="@0.12") - # Dependencies depends_on("c", type="build") depends_on("cxx", type="build") - - depends_on("cmake@3.21:", type="build") + depends_on("cmake@3.21:", type="build", when="@0.14:0.15") + depends_on("cmake@3.24:", type="build", when="@0.16:") depends_on("pkgconfig", type="build") depends_on("mpi") + depends_on("blas") + depends_on("lapack") depends_on("zlib-api") depends_on("nlohmann-json") - depends_on("fmt") - depends_on("eigen") + depends_on("nlohmann-json-schema-validator@2.4.0:", when="@0.16:") + depends_on("fmt+shared", when="+shared") + depends_on("fmt~shared", when="~shared") + depends_on("scnlib+shared", when="+shared@0.14:") + depends_on("scnlib~shared", when="~shared@0.14:") + depends_on("eigen", type="build") + depends_on("lcov@1.15:", when="+coverage@0.16:", type="run") - depends_on("metis@5:") - depends_on("metis+shared", when="+shared") - depends_on("metis~shared", when="~shared") - depends_on("metis+int64", when="+int64") - depends_on("metis~int64", when="~int64") + conflicts("~superlu-dist~strumpack~mumps", msg="Need at least one sparse direct solver") + conflicts( + "+asan", + when="platform=darwin %gcc", + msg="GCC does not support AddressSanitizer on macOS (Apple Silicon). Use Clang instead.", + ) - depends_on("hypre~complex") - depends_on("hypre+shared", when="+shared") - depends_on("hypre~shared", when="~shared") - depends_on("hypre+mixedint", when="+int64") - depends_on("hypre~mixedint", when="~int64") - depends_on("hypre+openmp", when="+openmp") - depends_on("hypre~openmp", when="~openmp") + conflicts("^mumps+int64", msg="Palace requires MUMPS without 64 bit integers") + with when("+mumps"): + depends_on("fortran", type="build") + depends_on("mumps+metis+parmetis") + depends_on("mumps+shared", when="+shared") + depends_on("mumps~shared", when="~shared") + depends_on("mumps+openmp", when="+openmp") + depends_on("mumps~openmp", when="~openmp") with when("+superlu-dist"): + depends_on("superlu-dist+parmetis") depends_on("superlu-dist+shared", when="+shared") depends_on("superlu-dist~shared", when="~shared") depends_on("superlu-dist+int64", when="+int64") @@ -74,21 +113,17 @@ class Palace(CMakePackage): depends_on("superlu-dist~openmp", when="~openmp") with when("+strumpack"): + depends_on("fortran", type="build") depends_on("strumpack+butterflypack+zfp+parmetis") depends_on("strumpack+shared", when="+shared") depends_on("strumpack~shared", when="~shared") depends_on("strumpack+openmp", when="+openmp") depends_on("strumpack~openmp", when="~openmp") - with when("+mumps"): - depends_on("mumps+metis+parmetis") - depends_on("mumps+shared", when="+shared") - depends_on("mumps~shared", when="~shared") - depends_on("mumps+openmp", when="+openmp") - depends_on("mumps~openmp", when="~openmp") + conflicts("~arpack~slepc", msg="At least one eigenvalue solver is required") with when("+slepc"): - depends_on("slepc") + depends_on("slepc~arpack") depends_on("petsc+mpi+double+complex") depends_on("petsc+shared", when="+shared") depends_on("petsc~shared", when="~shared") @@ -98,70 +133,379 @@ class Palace(CMakePackage): depends_on("petsc~openmp", when="~openmp") with when("+arpack"): - depends_on("arpack-ng+mpi+icb@develop") + depends_on("fortran", type="build") + depends_on("arpack-ng+mpi+icb") depends_on("arpack-ng+shared", when="+shared") depends_on("arpack-ng~shared", when="~shared") + with when("+gslib @0.14:"): + depends_on("gslib+mpi") + depends_on("gslib+shared", when="+shared") + depends_on("gslib~shared", when="~shared") + + depends_on("metis@5:") + depends_on("metis+shared", when="+shared") + depends_on("metis~shared", when="~shared") + depends_on("metis+int64", when="+int64") + depends_on("metis~int64", when="~int64") + + conflicts("^hypre+int64", msg="Palace uses HYPRE's mixedint option for 64 bit integers") + depends_on("hypre@:2", when="@:0.15.0") + depends_on("hypre@3:", when="@0.16.0:") + depends_on("hypre~complex") + depends_on("hypre~unified-memory") + depends_on("hypre+shared", when="+shared") + depends_on("hypre~shared", when="~shared") + depends_on("hypre+mixedint", when="+int64") + depends_on("hypre~mixedint", when="~int64") + depends_on("hypre+openmp", when="+openmp") + depends_on("hypre~openmp", when="~openmp") + # Use external blas/lapack with hypre + depends_on("hypre+lapack") + + # NOTE: hypre+gpu-profiling is also useful: it adds NVTX annotations, which + # are great for GPU profiling with Nsight. + + with when("@0.16:"): + # +lapack means: use external lapack + depends_on( + "mfem+mpi+metis+lapack@4.9:", + patches=["patch_par_tet_mesh_fix_dev.diff", "patch_gmsh_parser_performance.diff"], + ) + depends_on("mfem+shared", when="+shared") + depends_on("mfem~shared", when="~shared") + depends_on("mfem+openmp", when="+openmp") + depends_on("mfem+threadsafe", when="+openmp") + depends_on("mfem~openmp", when="~openmp") + depends_on("mfem+superlu-dist", when="+superlu-dist") + depends_on("mfem~superlu-dist", when="~superlu-dist") + depends_on("mfem+strumpack", when="+strumpack") + depends_on("mfem~strumpack", when="~strumpack") + depends_on("mfem+mumps", when="+mumps") + depends_on("mfem~mumps", when="~mumps") + depends_on("mfem+sundials", when="+sundials") + depends_on("mfem~sundials", when="~sundials") + depends_on("mfem+gslib", when="+gslib") + depends_on("mfem~gslib", when="~gslib") + depends_on("mfem+exceptions", type="test") + + depends_on("mfem+libunwind", when="build_type=Debug") + depends_on("eigen@3.5:", type="build") + with when("+libxsmm"): - depends_on("libxsmm@main") - depends_on("libxsmm+shared", when="+shared") - depends_on("libxsmm~shared", when="~shared") + # NOTE: @=main != @main since libxsmm has a version main-2023-22 + depends_on("libxsmm@=main blas=0") + depends_on("libxsmm+debug", when="build_type=Debug") + depends_on("libceed+libxsmm", when="@0.14:") + # NOTE: libxsmm builds on MacOS have linker issues + # https://github.com/libxsmm/libxsmm/issues/883 + depends_on("libxsmm+shared") + + with when("@0.14:"): + depends_on("libceed@0.13:") + depends_on("libceed+openmp", when="+openmp") + depends_on("libceed~openmp", when="~openmp") + depends_on("libceed+shared", when="+shared") + depends_on("libceed~shared", when="~shared") - with when("+magma"): - depends_on("magma") + with when("+sundials @0.14:"): + depends_on("sundials+mpi+lapack~examples~examples-install") + depends_on("sundials+shared", when="+shared") + depends_on("sundials~shared", when="~shared") + depends_on("sundials+openmp", when="+openmp") + depends_on("sundials~openmp", when="~openmp") + + conflicts("+cuda", when="@:0.13", msg="CUDA is only supported for Palace versions after 0.13") + conflicts("+rocm", when="@:0.13", msg="ROCm is only supported for Palace versions after 0.13") + conflicts("+cuda+rocm", msg="PALACE_WITH_CUDA is not compatible with PALACE_WITH_HIP") + conflicts( + "cuda_arch=none", when="+cuda", msg="palace: Please specify a CUDA arch value / values" + ) + conflicts( + "amdgpu_target=none", + when="+rocm", + msg="palace: Please specify an AMD GPU target / targets", + ) + + with when("+cuda"): + depends_on("magma+shared", when="+shared") + depends_on("magma~shared", when="~shared") + depends_on("libceed+magma", when="@0.14:") + + with when("+rocm"): depends_on("magma+shared", when="+shared") depends_on("magma~shared", when="~shared") + depends_on("libceed+magma", when="@0.14:") - # Palace always builds its own internal MFEM, libCEED, and GSLIB - conflicts("mfem") - conflicts("libceed") - conflicts("gslib") + with when("+cuda"): + # GPU-aware MPI + for var in ["openmpi", "mpich", "mvapich-plus"]: + depends_on("hypre+gpu-aware-mpi", when=f"^[virtuals=mpi] {var}+cuda") - # More dependency variant conflicts - conflicts("^hypre+int64", msg="Palace uses HYPRE's mixedint option for 64 bit integers") - conflicts("^mumps+int64", msg="Palace requires MUMPS without 64 bit integers") - conflicts("^slepc+arpack", msg="Palace requires SLEPc without ARPACK") + # We need https://github.com/llnl/blt/pull/735, which is not available + # in blt <= 0.7.1 + depends_on("umpire %blt@0.7.2:", when="@0.16:") + + for arch in CudaPackage.cuda_arch_values: + cuda_variant = f"+cuda cuda_arch={arch}" + + depends_on(f"umpire{cuda_variant}", when=f"{cuda_variant} @0.16:") + depends_on(f"hypre+umpire{cuda_variant}", when=f"{cuda_variant} @0.16:") + depends_on(f"hypre{cuda_variant}", when=f"{cuda_variant} @:0.15") + depends_on(f"mfem+umpire{cuda_variant}", when=f"{cuda_variant} @0.16:") + depends_on(f"magma{cuda_variant}", when=f"{cuda_variant}") + depends_on(f"libceed{cuda_variant}", when=f"{cuda_variant} @0.14:") + depends_on(f"sundials{cuda_variant}", when=f"+sundials{cuda_variant} @0.14:") + depends_on(f"slepc{cuda_variant}", when=f"+slepc{cuda_variant}") + depends_on(f"petsc{cuda_variant}", when=f"+slepc{cuda_variant}") + depends_on(f"superlu-dist{cuda_variant}", when=f"+superlu-dist{cuda_variant}") + depends_on(f"strumpack{cuda_variant}", when=f"+strumpack{cuda_variant}") + + with when("+rocm"): + for var in ["openmpi@5:", "mpich", "mvapich-plus"]: + # GPU-aware MPI + depends_on("hypre+gpu-aware-mpi", when=f"^[virtuals=mpi] {var}+rocm") + + for arch in ROCmPackage.amdgpu_targets: + rocm_variant = f"+rocm amdgpu_target={arch}" + depends_on(f"umpire{rocm_variant}", when=f"{rocm_variant} @0.16:") + depends_on(f"hypre+umpire{rocm_variant}", when=f"{rocm_variant} @0.16:") + depends_on(f"hypre{rocm_variant}", when=f"{rocm_variant} @:0.15") + depends_on(f"mfem+umpire{rocm_variant}", when=f"{rocm_variant} @0.16:") + depends_on(f"magma{rocm_variant}", when=f"{rocm_variant}") + depends_on(f"libceed{rocm_variant}", when=f"{rocm_variant} @0.14:") + depends_on(f"sundials{rocm_variant}", when=f"+sundials{rocm_variant} @0.14:") + depends_on(f"slepc{rocm_variant}", when=f"+slepc{rocm_variant}") + depends_on(f"petsc{rocm_variant}", when=f"+slepc{rocm_variant}") + depends_on(f"superlu-dist{rocm_variant}", when=f"+superlu-dist{rocm_variant}") + depends_on(f"strumpack{rocm_variant}", when=f"+strumpack{rocm_variant}") + + depends_on("catch2@3:", type="test") def cmake_args(self): args = [ + self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"), self.define_from_variant("BUILD_SHARED_LIBS", "shared"), self.define_from_variant("PALACE_WITH_64BIT_INT", "int64"), - self.define_from_variant("PALACE_WITH_OPENMP", "openmp"), - self.define_from_variant("PALACE_WITH_SUPERLU", "superlu-dist"), - self.define_from_variant("PALACE_WITH_STRUMPACK", "strumpack"), - self.define_from_variant("PALACE_WITH_MUMPS", "mumps"), - self.define_from_variant("PALACE_WITH_SLEPC", "slepc"), self.define_from_variant("PALACE_WITH_ARPACK", "arpack"), - self.define_from_variant("PALACE_WITH_LIBXSMM", "libxsmm"), - self.define_from_variant("PALACE_WITH_MAGMA", "magma"), + self.define_from_variant("PALACE_WITH_CUDA", "cuda"), self.define_from_variant("PALACE_WITH_GSLIB", "gslib"), + self.define_from_variant("PALACE_WITH_HIP", "rocm"), + self.define_from_variant("PALACE_WITH_LIBXSMM", "libxsmm"), + self.define_from_variant("PALACE_WITH_MUMPS", "mumps"), + self.define_from_variant("PALACE_WITH_OPENMP", "openmp"), + self.define_from_variant("PALACE_WITH_SLEPC", "slepc"), + self.define_from_variant("PALACE_WITH_STRUMPACK", "strumpack"), + self.define_from_variant("PALACE_WITH_SUNDIALS", "sundials"), + self.define_from_variant("PALACE_WITH_SUPERLU", "superlu-dist"), + self.define_from_variant("PALACE_BUILD_WITH_COVERAGE", "coverage"), + self.define_from_variant("PALACE_BUILD_WITH_SANITIZERS", "asan"), self.define("PALACE_BUILD_EXTERNAL_DEPS", False), + self.define("PALACE_MFEM_USE_EXCEPTIONS", self.run_tests), ] - # HYPRE is always built with external BLAS/LAPACK - args += [ - self.define("HYPRE_REQUIRED_PACKAGES", "LAPACK;BLAS"), - self.define("BLAS_LIBRARIES", "{0}".format(self.spec["blas"].libs.joined(";"))), - self.define("LAPACK_LIBRARIES", "{0}".format(self.spec["lapack"].libs.joined(";"))), - ] + if self.spec.satisfies("@0.16:"): + args.append(self.define("MFEM_DIR", self.spec["mfem"].prefix)) + if self.spec.satisfies("+mumps"): + args.append(self.define("MUMPS_DIR", self.spec["mumps"].prefix)) + if self.spec.satisfies("+strumpack"): + args.append(self.define("STRUMPACK_DIR", self.spec["strumpack"].prefix)) + if self.spec.satisfies("+mumps") or self.spec.satisfies("+strumpack"): + args.append(self.define("SCALAPACK_ROOT", self.spec["scalapack"].prefix)) + if self.spec.satisfies("+superlu-dist"): + args.append(self.define("SUPERLU_DIST_DIR", self.spec["superlu-dist"].prefix)) + args.append(self.define("METIS_DIR", self.spec["metis"].prefix)) + args.append(self.define("PARMETIS_DIR", self.spec["parmetis"].prefix)) + args.append(self.define("HYPRE_DIR", self.spec["hypre"].prefix)) + else: + # Pass libraries down to the ExternalMFEM cmake file. Needed only + # before 0.16 because we compile MFEM with Spack afterwards. + hypre_packages = ["LAPACK", "BLAS"] + if self.spec.satisfies("^hypre+umpire"): + hypre_packages.append("Umpire") + if self.spec.satisfies("+cuda"): + hypre_packages.append("CUDAToolkit") + + args.append(self.define("HYPRE_REQUIRED_PACKAGES", ";".join(hypre_packages))) + + # MPI compiler wrappers are not required, but MFEM test builds need to know to link + # against MPI libraries. + if self.spec.satisfies("+superlu-dist"): + superlu_packages = ["ParMETIS", "METIS", "LAPACK", "BLAS", "MPI"] + if self.spec.satisfies("+openmp"): + superlu_packages.append("OpenMP") + args.append( + self.define("SuperLUDist_REQUIRED_PACKAGES", ";".join(superlu_packages)) + ) + if self.spec.satisfies("+sundials"): + sundials_packages = ["LAPACK", "BLAS", "MPI"] + if self.spec.satisfies("+openmp"): + sundials_packages.append("OpenMP") + args.append(self.define("SUNDIALS_REQUIRED_PACKAGES", ";".join(sundials_packages))) + if self.spec.satisfies("+strumpack"): + strumpack_packages = ["ParMETIS", "METIS", "LAPACK", "BLAS", "MPI", "MPI_Fortran"] + if self.spec.satisfies("+openmp"): + strumpack_packages.append("OpenMP") + if self.spec.satisfies("+cuda"): + strumpack_packages.append("CUDAToolkit") + args.append( + self.define("STRUMPACK_REQUIRED_PACKAGES", ";".join(strumpack_packages)) + ) + + strumpack_libs = str(self.spec["scalapack"].libs).replace(" ", ";") + + # Add OpenMP libraries - use compiler's OpenMP library + if self.spec.satisfies("+openmp"): + # Get OpenMP library from compiler + omp_lib = self.compiler.openmp_flag + if omp_lib: + strumpack_libs += ";" + omp_lib + + # Add ButterflyPACK, ZFP, CUDA libraries... + if self.spec.satisfies("^strumpack+butterflypack"): + butterflypack_libs = find_libraries( + "*butterflypack*", + self.spec["butterflypack"].prefix, + shared=True, + recursive=True, + ) + if not butterflypack_libs: + butterflypack_libs = find_libraries( + "*butterflypack*", + self.spec["butterflypack"].prefix, + shared=False, + recursive=True, + ) + if butterflypack_libs: + strumpack_libs += ";" + str(butterflypack_libs).replace(" ", ";") + + if self.spec.satisfies("^strumpack+zfp"): + zfp_libs = str(self.spec["zfp"].libs).replace(" ", ";") + strumpack_libs += ";" + zfp_libs + + # Add SLATE, BLASPP, LAPACKPP libraries + for lib_name in ["slate", "lapackpp", "blaspp"]: + try: + lib = str(self.spec[lib_name].libs).replace(" ", ";") + strumpack_libs += ";" + lib + except (AttributeError, KeyError): + pass - # MPI compiler wrappers are not required, but MFEM test builds need to know to link - # against MPI libraries - if "+superlu-dist" in self.spec: - args += [self.define("SuperLUDist_REQUIRED_PACKAGES", "LAPACK;BLAS;MPI")] - if "+strumpack" in self.spec: - args += [self.define("STRUMPACK_REQUIRED_PACKAGES", "LAPACK;BLAS;MPI;MPI_Fortran")] - if "+mumps" in self.spec: - args += [self.define("MUMPS_REQUIRED_PACKAGES", "LAPACK;BLAS;MPI;MPI_Fortran")] - - # Allow internal libCEED build to find LIBXSMM, MAGMA - if "+libxsmm" in self.spec: - args += [self.define("LIBXSMM_DIR", self.spec["libxsmm"].prefix)] - if "+magma" in self.spec: - args += [self.define("MAGMA_DIR", self.spec["magma"].prefix)] + if self.spec.satisfies("+cuda"): + # Add specific CUDA math libraries that STRUMPACK needs + cuda_spec = self.spec["cuda"] + cuda_libs = [] + # Add the libraries that ExternalMFEM.cmake includes + for lib_name in ["cublas", "cublaslt", "cusolver", "cudart"]: + try: + lib = find_libraries( + f"lib{lib_name}", cuda_spec.prefix, shared=True, recursive=True + ) + if lib: + cuda_libs.extend(lib) + except (OSError, AttributeError): + pass + if cuda_libs: + strumpack_libs += ";" + ";".join(str(lib) for lib in cuda_libs) + + # Add Fortran libraries + if "gfortran" in self.compiler.fc: + strumpack_libs += ";gfortran" + elif "ifx" in self.compiler.fc: + strumpack_libs += ";ifport;ifcore" + + args.append(self.define("STRUMPACK_REQUIRED_LIBRARIES", strumpack_libs)) + if self.spec.satisfies("+superlu-dist"): + superlu_packages = ["ParMETIS", "METIS", "LAPACK", "BLAS", "MPI"] + if self.spec.satisfies("+openmp"): + superlu_packages.append("OpenMP") + if self.spec.satisfies("+cuda"): + superlu_packages.append("CUDAToolkit") + args.append( + self.define("SuperLUDist_REQUIRED_PACKAGES", ";".join(superlu_packages)) + ) + + superlu_libs = "" + if self.spec.satisfies("+cuda"): + cuda_libs = str(self.spec["cuda"].libs).replace(" ", ";") + superlu_libs = cuda_libs + if superlu_libs: + args.append(self.define("SuperLUDist_REQUIRED_LIBRARIES", superlu_libs)) + + if self.spec.satisfies("+mumps"): + mumps_packages = [ + "ParMETIS", + "METIS", + "LAPACK", + "BLAS", + "MPI", + "MPI_Fortran", + "Threads", + ] + if self.spec.satisfies("+openmp"): + mumps_packages.append("OpenMP") + args.append(self.define("MUMPS_REQUIRED_PACKAGES", ";".join(mumps_packages))) + + mumps_libs = str(self.spec["scalapack"].libs).replace(" ", ";") + if "gfortran" in self.compiler.fc: + mumps_libs += ";gfortran" + elif "ifort" in self.compiler.fc or "ifx" in self.compiler.fc: + mumps_libs += ";ifport;ifcore" + args.append(self.define("MUMPS_REQUIRED_LIBRARIES", mumps_libs)) + + # We guarantee that there are arch specs with conflicts above + if self.spec.satisfies("+cuda"): + args.append( + self.define( + "CMAKE_CUDA_ARCHITECTURES", ";".join(self.spec.variants["cuda_arch"].value) + ) + ) + + if self.spec.satisfies("+rocm"): + args.append( + self.define( + "CMAKE_HIP_ARCHITECTURES", ";".join(self.spec.variants["amdgpu_target"].value) + ) + ) + + palace_with_gpu_aware_mpi = any( + self.spec.satisfies(f"{var}+cuda") or self.spec.satisfies(f"{var}+rocm") + for var in ["openmpi", "mpich", "mvapich-plus"] + ) + + args.append(self.define("PALACE_WITH_GPU_AWARE_MPI", palace_with_gpu_aware_mpi)) + + # Pass down external BLAS/LAPACK + args.extend( + [ + self.define("BLAS_LIBRARIES", self.spec["blas"].libs.joined(";")), + self.define("LAPACK_LIBRARIES", self.spec["lapack"].libs.joined(";")), + ] + ) + + if self.spec.satisfies("@:0.13"): + # In v0.13 and prior libCEED and gslib were internally built and required the libxsmm + # and magma build information be passed in. + if self.spec.satisfies("+libxsmm"): + args.append(self.define("LIBXSMM_DIR", self.spec["libxsmm"].prefix)) + if self.spec.satisfies("+cuda") or self.spec.satisfies("+rocm"): + args.append(self.define("MAGMA_DIR", self.spec["magma"].prefix)) + else: + # After v 0.13 gslib and libceed are built externally and + # so the directories for these are passed explicitly. + args.append(self.define("LIBCEED_DIR", self.spec["libceed"].prefix)) + if self.spec.satisfies("+gslib"): + args.append(self.define("GSLIB_DIR", self.spec["gslib"].prefix)) return args + def build(self, spec, prefix): + with working_dir(self.build_directory): + if self.run_tests: + make("palace-tests") + else: + make() + def install(self, spec, prefix): # No install phase for Palace (always performed during build) pass diff --git a/repos/spack_repo/builtin/packages/palace/palace-0.12.0.patch b/repos/spack_repo/builtin/packages/palace/palace-0.12.0.patch new file mode 100644 index 00000000000..35ac31271e0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/palace/palace-0.12.0.patch @@ -0,0 +1,37 @@ +diff --git a/cmake/ExternalGitTags.cmake b/cmake/ExternalGitTags.cmake +index e29c492f..1a211b7a 100644 +--- a/cmake/ExternalGitTags.cmake ++++ b/cmake/ExternalGitTags.cmake +@@ -90,7 +90,7 @@ set(EXTERN_LIBCEED_GIT_BRANCH + "Git branch for external libCEED build" + ) + set(EXTERN_LIBCEED_GIT_TAG +- "8c7774c6037866e54e1598be234a00f10d984861" CACHE STRING # main @ 12/18/2023 ++ "f7488153ba60dd9aeacf17f1494bdb6a59881ae6" CACHE STRING # main after https://github.com/CEED/libCEED/pull/1464 + "Git tag for external libCEED build" + ) + +diff --git a/cmake/ExternalLibCEED.cmake b/cmake/ExternalLibCEED.cmake +index fdffcd9e..14e468ad 100644 +--- a/cmake/ExternalLibCEED.cmake ++++ b/cmake/ExternalLibCEED.cmake +@@ -119,11 +119,6 @@ endif() + string(REPLACE ";" "; " LIBCEED_OPTIONS_PRINT "${LIBCEED_OPTIONS}") + message(STATUS "LIBCEED_OPTIONS: ${LIBCEED_OPTIONS_PRINT}") + +-# Add OpenMP support to libCEED +-set(LIBCEED_PATCH_FILES +- "${CMAKE_SOURCE_DIR}/extern/patch/libCEED/patch_gpu_restriction_dev.diff" +-) +- + include(ExternalProject) + ExternalProject_Add(libCEED + DEPENDS ${LIBCEED_DEPENDENCIES} +@@ -134,7 +129,6 @@ ExternalProject_Add(libCEED + PREFIX ${CMAKE_BINARY_DIR}/extern/libCEED-cmake + BUILD_IN_SOURCE TRUE + UPDATE_COMMAND "" +- PATCH_COMMAND git apply "${LIBCEED_PATCH_FILES}" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} ${LIBCEED_OPTIONS} install diff --git a/repos/spack_repo/builtin/packages/palace/patch_gmsh_parser_performance.diff b/repos/spack_repo/builtin/packages/palace/patch_gmsh_parser_performance.diff new file mode 100644 index 00000000000..e6b6fa5c94d --- /dev/null +++ b/repos/spack_repo/builtin/packages/palace/patch_gmsh_parser_performance.diff @@ -0,0 +1,1132 @@ +diff --git a/mesh/mesh_readers.cpp b/mesh/mesh_readers.cpp +index 14cb7d3838..093f548c8b 100644 +--- a/mesh/mesh_readers.cpp ++++ b/mesh/mesh_readers.cpp +@@ -1539,7 +1539,7 @@ void Mesh::ReadGmshMesh(std::istream &input, int &curved, int &read_gf) + // A map between a serial number of the vertex and its number in the file + // (there may be gaps in the numbering, and also Gmsh enumerates vertices + // starting from 1, not 0) +- map vertices_map; ++ unordered_map vertices_map; + + // A map containing names of physical curves, surfaces, and volumes. + // The first index is the dimension of the physical manifold, the second +@@ -1557,9 +1557,10 @@ void Mesh::ReadGmshMesh(std::istream &input, int &curved, int &read_gf) + // is non-trivial. Note that with these assumptions a 2D mesh parallel to the + // yz plane will be considered a surface mesh embedded in 3D whereas the same + // 2D mesh parallel to the xy plane will be considered a 2D mesh. +- real_t bb_tol = 1e-14; +- real_t bb_min[3]; +- real_t bb_max[3]; ++ constexpr int gmsh_dim = 3; // Gmsh always outputs 3 coordinates ++ constexpr real_t bb_tol = 1e-14; ++ real_t bb_min[gmsh_dim]; ++ real_t bb_max[gmsh_dim]; + + // Mesh order + int mesh_order = 1; +@@ -1580,7 +1581,6 @@ void Mesh::ReadGmshMesh(std::istream &input, int &curved, int &read_gf) + getline(input, buff); + vertices.SetSize(NumOfVertices); + int serial_number; +- const int gmsh_dim = 3; // Gmsh always outputs 3 coordinates + real_t coord[gmsh_dim]; + for (int ver = 0; ver < NumOfVertices; ++ver) + { +@@ -1642,7 +1642,7 @@ void Mesh::ReadGmshMesh(std::istream &input, int &curved, int &read_gf) + + // number of nodes for each type of Gmsh elements, type is the index of + // the array + 1 +- int nodes_of_gmsh_element[] = ++ constexpr int nodes_of_gmsh_element[] = + { + 2, // 2-node line. + 3, // 3-node triangle. +@@ -1852,97 +1852,324 @@ void Mesh::ReadGmshMesh(std::istream &input, int &curved, int &read_gf) + + This corresponds to the quad9 mapping below. + */ +- int lin3[] = {0,2,1}; // 2nd order segment +- int lin4[] = {0,2,3,1}; // 3rd order segment +- int tri6[] = {0,3,1,5,4,2}; // 2nd order triangle +- int tri10[] = {0,3,4,1,8,9,5,7,6,2}; // 3rd order triangle +- int quad9[] = {0,4,1,7,8,5,3,6,2}; // 2nd order quadrilateral +- int quad16[] = {0,4,5,1,11,12,13,6, // 3rd order quadrilateral +- 10,15,14,7,3,9,8,2 +- }; +- int tet10[] {0,4,1,6,5,2,7,9,8,3}; // 2nd order tetrahedron +- int tet20[] = {0,4,5,1,9,16,6,8,7,2, // 3rd order tetrahedron +- 11,17,15,18,19,13,10,14,12,3 +- }; +- int hex27[] {0,8,1,9,20,11,3,13,2, // 2nd order hexahedron +- 10,21,12,22,26,23,15,24,14, +- 4,16,5,17,25,18,7,19,6 +- }; +- int hex64[] {0,8,9,1,10,32,35,14, // 3rd order hexahedron +- 11,33,34,15,3,19,18,2, +- 12,36,37,16,40,56,57,44, +- 43,59,58,45,22,49,48,20, +- 13,39,38,17,41,60,61,47, +- 42,63,62,46,23,50,51,21, +- 4,24,25,5,26,52,53,28, +- 27,55,54,29,7,31,30,6 +- }; +- +- int wdg18[] = {0,6,1,7,9,2,8,15,10, // 2nd order wedge/prism +- 16,17,11,3,12,4,13,14,5 +- }; +- int wdg40[] = {0,6,7,1,8,24,12,9,13,2, // 3rd order wedge/prism +- 10,26,27,14,30,38,34,33,35,16, +- 11,29,28,15,31,39,37,32,36,17, +- 3,18,19,4,20,25,22,21,23,5 +- }; +- +- int pyr14[] = {0,5,1,6,13,8,3, // 2nd order pyramid +- 10,2,7,9,12,11,4 +- }; +- int pyr30[] = {0,5,6,1,7,25,28,11,8,26, // 3rd order pyramid +- 27,12,3,16,15,2,9,21,13,22, +- 29,23,19,24,17,10,14,20,18,4 +- }; +- ++ constexpr int lin3[] = {0,2,1}; // 2nd order segment ++ constexpr int lin4[] = {0,2,3,1}; // 3rd order segment ++ constexpr int tri6[] = {0,3,1,5,4,2}; // 2nd order triangle ++ constexpr int tri10[] = {0,3,4,1,8,9,5,7,6,2}; // 3rd order triangle ++ constexpr int quad9[] = {0,4,1,7,8,5,3,6,2}; // 2nd order quadrilateral ++ constexpr int quad16[] = {0,4,5,1,11,12,13,6, // 3rd order quadrilateral ++ 10,15,14,7,3,9,8,2 ++ }; ++ ++ constexpr int tet10[] {0,4,1,6,5,2,7,9,8,3}; // 2nd order tetrahedron ++ constexpr int tet20[] = {0,4,5,1,9,16,6,8,7,2, // 3rd order tetrahedron ++ 11,17,15,18,19,13,10,14,12,3 ++ }; ++ ++ constexpr int hex27[] {0,8,1,9,20,11,3,13,2, // 2nd order hexahedron ++ 10,21,12,22,26,23,15,24,14, ++ 4,16,5,17,25,18,7,19,6 ++ }; ++ constexpr int hex64[] {0,8,9,1,10,32,35,14, // 3rd order hexahedron ++ 11,33,34,15,3,19,18,2, ++ 12,36,37,16,40,56,57,44, ++ 43,59,58,45,22,49,48,20, ++ 13,39,38,17,41,60,61,47, ++ 42,63,62,46,23,50,51,21, ++ 4,24,25,5,26,52,53,28, ++ 27,55,54,29,7,31,30,6 ++ }; ++ ++ constexpr int wdg18[] = {0,6,1,7,9,2,8,15,10, // 2nd order wedge/prism ++ 16,17,11,3,12,4,13,14,5 ++ }; ++ constexpr int wdg40[] = {0,6,7,1,8,24,12,9,13,2, // 3rd order wedge/prism ++ 10,26,27,14,30,38,34,33,35,16, ++ 11,29,28,15,31,39,37,32,36,17, ++ 3,18,19,4,20,25,22,21,23,5 ++ }; ++ ++ constexpr int pyr14[] = {0,5,1,6,13,8,3, // 2nd order pyramid ++ 10,2,7,9,12,11,4 ++ }; ++ constexpr int pyr30[] = {0,5,6,1,7,25,28,11,8,26, // 3rd order pyramid ++ 27,12,3,16,15,2,9,21,13,22, ++ 29,23,19,24,17,10,14,20,18,4 ++ }; ++ ++ // Temporary storage for elements + vector elements_0D, elements_1D, elements_2D, elements_3D; +- elements_0D.reserve(num_of_all_elements); +- elements_1D.reserve(num_of_all_elements); +- elements_2D.reserve(num_of_all_elements); +- elements_3D.reserve(num_of_all_elements); + + // Temporary storage for high order vertices, if present +- vector*> ho_verts_1D, ho_verts_2D, ho_verts_3D; +- ho_verts_1D.reserve(num_of_all_elements); +- ho_verts_2D.reserve(num_of_all_elements); +- ho_verts_3D.reserve(num_of_all_elements); ++ vector> ho_verts_1D, ho_verts_2D, ho_verts_3D; + +- // Temporary storage for order of elements ++ // Temporary storage for high order element orders, if present + vector ho_el_order_1D, ho_el_order_2D, ho_el_order_3D; +- ho_el_order_1D.reserve(num_of_all_elements); +- ho_el_order_2D.reserve(num_of_all_elements); +- ho_el_order_3D.reserve(num_of_all_elements); +- +- // Vertex order mappings +- Array ho_lin(11); ho_lin = NULL; +- Array ho_tri(11); ho_tri = NULL; +- Array ho_sqr(11); ho_sqr = NULL; +- Array ho_tet(11); ho_tet = NULL; +- Array ho_hex(10); ho_hex = NULL; +- Array ho_wdg(10); ho_wdg = NULL; +- Array ho_pyr(10); ho_pyr = NULL; +- +- // Use predefined arrays at lowest orders (for efficiency) +- ho_lin[2] = lin3; ho_lin[3] = lin4; +- ho_tri[2] = tri6; ho_tri[3] = tri10; +- ho_sqr[2] = quad9; ho_sqr[3] = quad16; +- ho_tet[2] = tet10; ho_tet[3] = tet20; +- ho_hex[2] = hex27; ho_hex[3] = hex64; +- ho_wdg[2] = wdg18; ho_wdg[3] = wdg40; +- ho_pyr[2] = pyr14; ho_pyr[3] = pyr30; + + bool has_nonpositive_phys_domain = false; + bool has_positive_phys_domain = false; + ++ auto AddElement = [&](int type_of_element, ++ std::vector &vert_indices, ++ int phys_domain) ++ { ++ // Non-positive attributes are not allowed in MFEM. However, ++ // by default, Gmsh sets the physical domain of all elements ++ // to zero. In the case that all elements have physical domain ++ // zero, we will given them attribute 1. If only some elements ++ // have physical domain zero, we will throw an error. ++ if (phys_domain <= 0) ++ { ++ has_nonpositive_phys_domain = true; ++ phys_domain = 1; ++ } ++ else ++ { ++ has_positive_phys_domain = true; ++ } ++ ++ // Initialize the mesh element ++ int el_order = 11; ++ switch (type_of_element) ++ { ++ case 1: // 2-node line ++ case 8: // 3-node line (2nd order) ++ case 26: // 4-node line (3rd order) ++ case 27: // 5-node line (4th order) ++ case 28: // 6-node line (5th order) ++ case 62: // 7-node line (6th order) ++ case 63: // 8-node line (7th order) ++ case 64: // 9-node line (8th order) ++ case 65: // 10-node line (9th order) ++ case 66: // 11-node line (10th order) ++ { ++ if (elements_1D.capacity() == 0) ++ { ++ elements_1D.reserve(num_of_all_elements); ++ } ++ elements_1D.push_back( ++ new Segment(vert_indices.data(), phys_domain)); ++ if (type_of_element != 1) ++ { ++ if (ho_verts_1D.capacity() == 0) ++ { ++ ho_verts_1D.reserve(num_of_all_elements); ++ ho_el_order_1D.reserve(num_of_all_elements); ++ } ++ el_order = vert_indices.size() - 1; ++ ho_verts_1D.push_back(vert_indices); ++ ho_el_order_1D.push_back(el_order); ++ } ++ break; ++ } ++ case 2: el_order--; // 3-node triangle ++ case 9: el_order--; // 6-node triangle (2nd order) ++ case 21: el_order--; // 10-node triangle (3rd order) ++ case 23: el_order--; // 15-node triangle (4th order) ++ case 25: el_order--; // 21-node triangle (5th order) ++ case 42: el_order--; // 28-node triangle (6th order) ++ case 43: el_order--; // 36-node triangle (7th order) ++ case 44: el_order--; // 45-node triangle (8th order) ++ case 45: el_order--; // 55-node triangle (9th order) ++ case 46: ++ { ++ el_order--; // 66-node triangle (10th order) ++ if (elements_2D.capacity() == 0) ++ { ++ elements_2D.reserve(num_of_all_elements); ++ } ++ elements_2D.push_back( ++ new Triangle(vert_indices.data(), phys_domain)); ++ if (el_order > 1) ++ { ++ if (ho_verts_2D.capacity() == 0) ++ { ++ ho_verts_2D.reserve(num_of_all_elements); ++ ho_el_order_2D.reserve(num_of_all_elements); ++ } ++ ho_verts_2D.push_back(vert_indices); ++ ho_el_order_2D.push_back(el_order); ++ } ++ break; ++ } ++ case 3: el_order--; // 4-node quadrangle ++ case 10: el_order--; // 9-node quadrangle (2nd order) ++ case 36: el_order--; // 16-node quadrangle (3rd order) ++ case 37: el_order--; // 25-node quadrangle (4th order) ++ case 38: el_order--; // 36-node quadrangle (5th order) ++ case 47: el_order--; // 49-node quadrangle (6th order) ++ case 48: el_order--; // 64-node quadrangle (7th order) ++ case 49: el_order--; // 81-node quadrangle (8th order) ++ case 50: el_order--; // 100-node quadrangle (9th order) ++ case 51: ++ { ++ el_order--; // 121-node quadrangle (10th order) ++ if (elements_2D.capacity() == 0) ++ { ++ elements_2D.reserve(num_of_all_elements); ++ } ++ elements_2D.push_back( ++ new Quadrilateral(vert_indices.data(), phys_domain)); ++ if (el_order > 1) ++ { ++ if (ho_verts_2D.capacity() == 0) ++ { ++ ho_verts_2D.reserve(num_of_all_elements); ++ ho_el_order_2D.reserve(num_of_all_elements); ++ } ++ ho_verts_2D.push_back(vert_indices); ++ ho_el_order_2D.push_back(el_order); ++ } ++ break; ++ } ++ case 4: el_order--; // 4-node tetrahedron ++ case 11: el_order--; // 10-node tetrahedron (2nd order) ++ case 29: el_order--; // 20-node tetrahedron (3rd order) ++ case 30: el_order--; // 35-node tetrahedron (4th order) ++ case 31: el_order--; // 56-node tetrahedron (5th order) ++ case 71: el_order--; // 84-node tetrahedron (6th order) ++ case 72: el_order--; // 120-node tetrahedron (7th order) ++ case 73: el_order--; // 165-node tetrahedron (8th order) ++ case 74: el_order--; // 220-node tetrahedron (9th order) ++ case 75: ++ { ++ el_order--; // 286-node tetrahedron (10th order) ++ if (elements_3D.capacity() == 0) ++ { ++ elements_3D.reserve(num_of_all_elements); ++ } ++#ifdef MFEM_USE_MEMALLOC ++ elements_3D.push_back(TetMemory.Alloc()); ++ elements_3D.back()->SetVertices(vert_indices.data()); ++ elements_3D.back()->SetAttribute(phys_domain); ++#else ++ elements_3D.push_back( ++ new Tetrahedron(vert_indices.data(), phys_domain)); ++#endif ++ if (el_order > 1) ++ { ++ if (ho_verts_3D.capacity() == 0) ++ { ++ ho_verts_3D.reserve(num_of_all_elements); ++ ho_el_order_3D.reserve(num_of_all_elements); ++ } ++ ho_verts_3D.push_back(vert_indices); ++ ho_el_order_3D.push_back(el_order); ++ } ++ break; ++ } ++ case 5: el_order--; // 8-node hexahedron ++ case 12: el_order--; // 27-node hexahedron (2nd order) ++ case 92: el_order--; // 64-node hexahedron (3rd order) ++ case 93: el_order--; // 125-node hexahedron (4th order) ++ case 94: el_order--; // 216-node hexahedron (5th order) ++ case 95: el_order--; // 343-node hexahedron (6th order) ++ case 96: el_order--; // 512-node hexahedron (7th order) ++ case 97: el_order--; // 729-node hexahedron (8th order) ++ case 98: ++ { ++ el_order--; // 1000-node hexahedron (9th order) ++ el_order--; // Gmsh does not define an order 10 hex ++ if (elements_3D.capacity() == 0) ++ { ++ elements_3D.reserve(num_of_all_elements); ++ } ++ elements_3D.push_back( ++ new Hexahedron(vert_indices.data(), phys_domain)); ++ if (el_order > 1) ++ { ++ if (ho_verts_3D.capacity() == 0) ++ { ++ ho_verts_3D.reserve(num_of_all_elements); ++ ho_el_order_3D.reserve(num_of_all_elements); ++ } ++ ho_verts_3D.push_back(vert_indices); ++ ho_el_order_3D.push_back(el_order); ++ } ++ break; ++ } ++ case 6: el_order--; // 6-node wedge ++ case 13: el_order--; // 18-node wedge (2nd order) ++ case 90: el_order--; // 40-node wedge (3rd order) ++ case 91: el_order--; // 75-node wedge (4th order) ++ case 106: el_order--; // 126-node wedge (5th order) ++ case 107: el_order--; // 196-node wedge (6th order) ++ case 108: el_order--; // 288-node wedge (7th order) ++ case 109: el_order--; // 405-node wedge (8th order) ++ case 110: ++ { ++ el_order--; // 550-node wedge (9th order) ++ el_order--; // Gmsh does not define an order 10 wedge ++ if (elements_3D.capacity() == 0) ++ { ++ elements_3D.reserve(num_of_all_elements); ++ } ++ elements_3D.push_back( ++ new Wedge(vert_indices.data(), phys_domain)); ++ if (el_order > 1) ++ { ++ if (ho_verts_3D.capacity() == 0) ++ { ++ ho_verts_3D.reserve(num_of_all_elements); ++ ho_el_order_3D.reserve(num_of_all_elements); ++ } ++ ho_verts_3D.push_back(vert_indices); ++ ho_el_order_3D.push_back(el_order); ++ } ++ break; ++ } ++ case 7: el_order--; // 5-node pyramid ++ case 14: el_order--; // 14-node pyramid (2nd order) ++ case 118: el_order--; // 30-node pyramid (3rd order) ++ case 119: el_order--; // 55-node pyramid (4th order) ++ case 120: el_order--; // 91-node pyramid (5th order) ++ case 121: el_order--; // 140-node pyramid (6th order) ++ case 122: el_order--; // 204-node pyramid (7th order) ++ case 123: el_order--; // 285-node pyramid (8th order) ++ case 124: ++ { ++ el_order--; // 385-node pyramid (9th order) ++ el_order--; // Gmsh does not define an order 10 pyr ++ if (elements_3D.capacity() == 0) ++ { ++ elements_3D.reserve(num_of_all_elements); ++ } ++ elements_3D.push_back( ++ new Pyramid(vert_indices.data(), phys_domain)); ++ if (el_order > 1) ++ { ++ if (ho_verts_3D.capacity() == 0) ++ { ++ ho_verts_3D.reserve(num_of_all_elements); ++ ho_el_order_3D.reserve(num_of_all_elements); ++ } ++ ho_verts_3D.push_back(vert_indices); ++ ho_el_order_3D.push_back(el_order); ++ } ++ break; ++ } ++ case 15: // 1-node point ++ { ++ elements_0D.push_back( ++ new Point(vert_indices.data(), phys_domain)); ++ break; ++ } ++ default: // any other element ++ { ++ MFEM_WARNING("Unsupported Gmsh element type."); ++ break; ++ } ++ } // switch (type_of_element) ++ }; ++ + if (binary) + { +- int n_elem_part = 0; // partial sum of elements that are read +- const int header_size = 3; + // header consists of 3 numbers: type of the element, number of + // elements of this type, and number of tags ++ constexpr int header_size = 3; + int header[header_size]; ++ int n_elem_part = 0; // partial sum of elements that are read + int n_elem_one_type; // number of elements of a specific type +- + while (n_elem_part < num_of_all_elements) + { + input.read(reinterpret_cast(header), +@@ -1950,11 +2177,10 @@ void Mesh::ReadGmshMesh(std::istream &input, int &curved, int &read_gf) + type_of_element = header[0]; + n_elem_one_type = header[1]; + n_tags = header[2]; +- + n_elem_part += n_elem_one_type; +- + const int n_elem_nodes = nodes_of_gmsh_element[type_of_element-1]; + vector data(1+n_tags+n_elem_nodes); ++ vector vert_indices(n_elem_nodes); + for (int el = 0; el < n_elem_one_type; ++el) + { + input.read(reinterpret_cast(&data[0]), +@@ -1972,218 +2198,26 @@ void Mesh::ReadGmshMesh(std::istream &input, int &curved, int &read_gf) + n_partitions = (n_tags > 2) ? data[dd++] : 0; + // we currently just skip the partitions if they exist, and go + // directly to vertices describing the mesh element +- vector vert_indices(n_elem_nodes); + for (int vi = 0; vi < n_elem_nodes; ++vi) + { +- map::const_iterator it = +- vertices_map.find(data[1+n_tags+vi]); ++ const auto it = vertices_map.find(data[1+n_tags+vi]); + if (it == vertices_map.end()) + { +- MFEM_ABORT("Gmsh file : vertex index doesn't exist"); ++ MFEM_ABORT("Gmsh file: vertex index doesn't exist"); + } + vert_indices[vi] = it->second; + } +- +- // Non-positive attributes are not allowed in MFEM. However, +- // by default, Gmsh sets the physical domain of all elements +- // to zero. In the case that all elements have physical domain +- // zero, we will given them attribute 1. If only some elements +- // have physical domain zero, we will throw an error. +- if (phys_domain <= 0) +- { +- has_nonpositive_phys_domain = true; +- phys_domain = 1; +- } +- else +- { +- has_positive_phys_domain = true; +- } +- +- // initialize the mesh element +- int el_order = 11; +- switch (type_of_element) +- { +- case 1: // 2-node line +- case 8: // 3-node line (2nd order) +- case 26: // 4-node line (3rd order) +- case 27: // 5-node line (4th order) +- case 28: // 6-node line (5th order) +- case 62: // 7-node line (6th order) +- case 63: // 8-node line (7th order) +- case 64: // 9-node line (8th order) +- case 65: // 10-node line (9th order) +- case 66: // 11-node line (10th order) +- { +- elements_1D.push_back( +- new Segment(&vert_indices[0], phys_domain)); +- if (type_of_element != 1) +- { +- el_order = n_elem_nodes - 1; +- Array * hov = new Array; +- hov->Append(&vert_indices[0], n_elem_nodes); +- ho_verts_1D.push_back(hov); +- ho_el_order_1D.push_back(el_order); +- } +- break; +- } +- case 2: el_order--; // 3-node triangle +- case 9: el_order--; // 6-node triangle (2nd order) +- case 21: el_order--; // 10-node triangle (3rd order) +- case 23: el_order--; // 15-node triangle (4th order) +- case 25: el_order--; // 21-node triangle (5th order) +- case 42: el_order--; // 28-node triangle (6th order) +- case 43: el_order--; // 36-node triangle (7th order) +- case 44: el_order--; // 45-node triangle (8th order) +- case 45: el_order--; // 55-node triangle (9th order) +- case 46: el_order--; // 66-node triangle (10th order) +- { +- elements_2D.push_back( +- new Triangle(&vert_indices[0], phys_domain)); +- if (el_order > 1) +- { +- Array * hov = new Array; +- hov->Append(&vert_indices[0], n_elem_nodes); +- ho_verts_2D.push_back(hov); +- ho_el_order_2D.push_back(el_order); +- } +- break; +- } +- case 3: el_order--; // 4-node quadrangle +- case 10: el_order--; // 9-node quadrangle (2nd order) +- case 36: el_order--; // 16-node quadrangle (3rd order) +- case 37: el_order--; // 25-node quadrangle (4th order) +- case 38: el_order--; // 36-node quadrangle (5th order) +- case 47: el_order--; // 49-node quadrangle (6th order) +- case 48: el_order--; // 64-node quadrangle (7th order) +- case 49: el_order--; // 81-node quadrangle (8th order) +- case 50: el_order--; // 100-node quadrangle (9th order) +- case 51: el_order--; // 121-node quadrangle (10th order) +- { +- elements_2D.push_back( +- new Quadrilateral(&vert_indices[0], phys_domain)); +- if (el_order > 1) +- { +- Array * hov = new Array; +- hov->Append(&vert_indices[0], n_elem_nodes); +- ho_verts_2D.push_back(hov); +- ho_el_order_2D.push_back(el_order); +- } +- break; +- } +- case 4: el_order--; // 4-node tetrahedron +- case 11: el_order--; // 10-node tetrahedron (2nd order) +- case 29: el_order--; // 20-node tetrahedron (3rd order) +- case 30: el_order--; // 35-node tetrahedron (4th order) +- case 31: el_order--; // 56-node tetrahedron (5th order) +- case 71: el_order--; // 84-node tetrahedron (6th order) +- case 72: el_order--; // 120-node tetrahedron (7th order) +- case 73: el_order--; // 165-node tetrahedron (8th order) +- case 74: el_order--; // 220-node tetrahedron (9th order) +- case 75: el_order--; // 286-node tetrahedron (10th order) +- { +-#ifdef MFEM_USE_MEMALLOC +- elements_3D.push_back(TetMemory.Alloc()); +- elements_3D.back()->SetVertices(&vert_indices[0]); +- elements_3D.back()->SetAttribute(phys_domain); +-#else +- elements_3D.push_back( +- new Tetrahedron(&vert_indices[0], phys_domain)); +-#endif +- if (el_order > 1) +- { +- Array * hov = new Array; +- hov->Append(&vert_indices[0], n_elem_nodes); +- ho_verts_3D.push_back(hov); +- ho_el_order_3D.push_back(el_order); +- } +- break; +- } +- case 5: el_order--; // 8-node hexahedron +- case 12: el_order--; // 27-node hexahedron (2nd order) +- case 92: el_order--; // 64-node hexahedron (3rd order) +- case 93: el_order--; // 125-node hexahedron (4th order) +- case 94: el_order--; // 216-node hexahedron (5th order) +- case 95: el_order--; // 343-node hexahedron (6th order) +- case 96: el_order--; // 512-node hexahedron (7th order) +- case 97: el_order--; // 729-node hexahedron (8th order) +- case 98: el_order--; // 1000-node hexahedron (9th order) +- { +- el_order--; // Gmsh does not define an order 10 hex +- elements_3D.push_back( +- new Hexahedron(&vert_indices[0], phys_domain)); +- if (el_order > 1) +- { +- Array * hov = new Array; +- hov->Append(&vert_indices[0], n_elem_nodes); +- ho_verts_3D.push_back(hov); +- ho_el_order_3D.push_back(el_order); +- } +- break; +- } +- case 6: el_order--; // 6-node wedge +- case 13: el_order--; // 18-node wedge (2nd order) +- case 90: el_order--; // 40-node wedge (3rd order) +- case 91: el_order--; // 75-node wedge (4th order) +- case 106: el_order--; // 126-node wedge (5th order) +- case 107: el_order--; // 196-node wedge (6th order) +- case 108: el_order--; // 288-node wedge (7th order) +- case 109: el_order--; // 405-node wedge (8th order) +- case 110: el_order--; // 550-node wedge (9th order) +- { +- el_order--; // Gmsh does not define an order 10 wedge +- elements_3D.push_back( +- new Wedge(&vert_indices[0], phys_domain)); +- if (el_order > 1) +- { +- Array * hov = new Array; +- hov->Append(&vert_indices[0], n_elem_nodes); +- ho_verts_3D.push_back(hov); +- ho_el_order_3D.push_back(el_order); +- } +- break; +- } +- case 7: el_order--; // 5-node pyramid +- case 14: el_order--; // 14-node pyramid (2nd order) +- case 118: el_order--; // 30-node pyramid (3rd order) +- case 119: el_order--; // 55-node pyramid (4th order) +- case 120: el_order--; // 91-node pyramid (5th order) +- case 121: el_order--; // 140-node pyramid (6th order) +- case 122: el_order--; // 204-node pyramid (7th order) +- case 123: el_order--; // 285-node pyramid (8th order) +- case 124: el_order--; // 385-node pyramid (9th order) +- { +- el_order--; // Gmsh does not define an order 10 pyr +- elements_3D.push_back( +- new Pyramid(&vert_indices[0], phys_domain)); +- if (el_order > 1) +- { +- Array * hov = new Array; +- hov->Append(&vert_indices[0], n_elem_nodes); +- ho_verts_3D.push_back(hov); +- ho_el_order_3D.push_back(el_order); +- } +- break; +- } +- case 15: // 1-node point +- { +- elements_0D.push_back( +- new Point(&vert_indices[0], phys_domain)); +- break; +- } +- default: // any other element +- MFEM_WARNING("Unsupported Gmsh element type."); +- break; +- +- } // switch (type_of_element) ++ AddElement(type_of_element, vert_indices, phys_domain); + } // el (elements of one type) + } // all elements + } // if binary + else // ASCII + { ++ vector data, vert_indices; + for (int el = 0; el < num_of_all_elements; ++el) + { + input >> serial_number >> type_of_element >> n_tags; +- vector data(n_tags); ++ data.resize(n_tags); + for (int i = 0; i < n_tags; ++i) { input >> data[i]; } + // physical domain - the most important value (to distinguish + // materials with different properties) +@@ -2197,210 +2231,19 @@ void Mesh::ReadGmshMesh(std::istream &input, int &curved, int &read_gf) + // we currently just skip the partitions if they exist, and go + // directly to vertices describing the mesh element + const int n_elem_nodes = nodes_of_gmsh_element[type_of_element-1]; +- vector vert_indices(n_elem_nodes); +- int index; ++ vert_indices.resize(n_elem_nodes); + for (int vi = 0; vi < n_elem_nodes; ++vi) + { ++ int index; + input >> index; +- map::const_iterator it = vertices_map.find(index); ++ const auto it = vertices_map.find(index); + if (it == vertices_map.end()) + { +- MFEM_ABORT("Gmsh file : vertex index doesn't exist"); ++ MFEM_ABORT("Gmsh file: vertex index doesn't exist"); + } + vert_indices[vi] = it->second; + } +- +- // Non-positive attributes are not allowed in MFEM. However, +- // by default, Gmsh sets the physical domain of all elements +- // to zero. In the case that all elements have physical domain +- // zero, we will given them attribute 1. If only some elements +- // have physical domain zero, we will throw an error. +- if (phys_domain <= 0) +- { +- has_nonpositive_phys_domain = true; +- phys_domain = 1; +- } +- else +- { +- has_positive_phys_domain = true; +- } +- +- // initialize the mesh element +- int el_order = 11; +- switch (type_of_element) +- { +- case 1: // 2-node line +- case 8: // 3-node line (2nd order) +- case 26: // 4-node line (3rd order) +- case 27: // 5-node line (4th order) +- case 28: // 6-node line (5th order) +- case 62: // 7-node line (6th order) +- case 63: // 8-node line (7th order) +- case 64: // 9-node line (8th order) +- case 65: // 10-node line (9th order) +- case 66: // 11-node line (10th order) +- { +- elements_1D.push_back( +- new Segment(&vert_indices[0], phys_domain)); +- if (type_of_element != 1) +- { +- Array * hov = new Array; +- hov->Append(&vert_indices[0], n_elem_nodes); +- ho_verts_1D.push_back(hov); +- el_order = n_elem_nodes - 1; +- ho_el_order_1D.push_back(el_order); +- } +- break; +- } +- case 2: el_order--; // 3-node triangle +- case 9: el_order--; // 6-node triangle (2nd order) +- case 21: el_order--; // 10-node triangle (3rd order) +- case 23: el_order--; // 15-node triangle (4th order) +- case 25: el_order--; // 21-node triangle (5th order) +- case 42: el_order--; // 28-node triangle (6th order) +- case 43: el_order--; // 36-node triangle (7th order) +- case 44: el_order--; // 45-node triangle (8th order) +- case 45: el_order--; // 55-node triangle (9th order) +- case 46: el_order--; // 66-node triangle (10th order) +- { +- elements_2D.push_back( +- new Triangle(&vert_indices[0], phys_domain)); +- if (el_order > 1) +- { +- Array * hov = new Array; +- hov->Append(&vert_indices[0], n_elem_nodes); +- ho_verts_2D.push_back(hov); +- ho_el_order_2D.push_back(el_order); +- } +- break; +- } +- case 3: el_order--; // 4-node quadrangle +- case 10: el_order--; // 9-node quadrangle (2nd order) +- case 36: el_order--; // 16-node quadrangle (3rd order) +- case 37: el_order--; // 25-node quadrangle (4th order) +- case 38: el_order--; // 36-node quadrangle (5th order) +- case 47: el_order--; // 49-node quadrangle (6th order) +- case 48: el_order--; // 64-node quadrangle (7th order) +- case 49: el_order--; // 81-node quadrangle (8th order) +- case 50: el_order--; // 100-node quadrangle (9th order) +- case 51: el_order--; // 121-node quadrangle (10th order) +- { +- elements_2D.push_back( +- new Quadrilateral(&vert_indices[0], phys_domain)); +- if (el_order > 1) +- { +- Array * hov = new Array; +- hov->Append(&vert_indices[0], n_elem_nodes); +- ho_verts_2D.push_back(hov); +- ho_el_order_2D.push_back(el_order); +- } +- break; +- } +- case 4: el_order--; // 4-node tetrahedron +- case 11: el_order--; // 10-node tetrahedron (2nd order) +- case 29: el_order--; // 20-node tetrahedron (3rd order) +- case 30: el_order--; // 35-node tetrahedron (4th order) +- case 31: el_order--; // 56-node tetrahedron (5th order) +- case 71: el_order--; // 84-node tetrahedron (6th order) +- case 72: el_order--; // 120-node tetrahedron (7th order) +- case 73: el_order--; // 165-node tetrahedron (8th order) +- case 74: el_order--; // 220-node tetrahedron (9th order) +- case 75: el_order--; // 286-node tetrahedron (10th order) +- { +-#ifdef MFEM_USE_MEMALLOC +- elements_3D.push_back(TetMemory.Alloc()); +- elements_3D.back()->SetVertices(&vert_indices[0]); +- elements_3D.back()->SetAttribute(phys_domain); +-#else +- elements_3D.push_back( +- new Tetrahedron(&vert_indices[0], phys_domain)); +-#endif +- if (el_order > 1) +- { +- Array * hov = new Array; +- hov->Append(&vert_indices[0], n_elem_nodes); +- ho_verts_3D.push_back(hov); +- ho_el_order_3D.push_back(el_order); +- } +- break; +- } +- case 5: el_order--; // 8-node hexahedron +- case 12: el_order--; // 27-node hexahedron (2nd order) +- case 92: el_order--; // 64-node hexahedron (3rd order) +- case 93: el_order--; // 125-node hexahedron (4th order) +- case 94: el_order--; // 216-node hexahedron (5th order) +- case 95: el_order--; // 343-node hexahedron (6th order) +- case 96: el_order--; // 512-node hexahedron (7th order) +- case 97: el_order--; // 729-node hexahedron (8th order) +- case 98: el_order--; // 1000-node hexahedron (9th order) +- { +- el_order--; +- elements_3D.push_back( +- new Hexahedron(&vert_indices[0], phys_domain)); +- if (el_order > 1) +- { +- Array * hov = new Array; +- hov->Append(&vert_indices[0], n_elem_nodes); +- ho_verts_3D.push_back(hov); +- ho_el_order_3D.push_back(el_order); +- } +- break; +- } +- case 6: el_order--; // 6-node wedge +- case 13: el_order--; // 18-node wedge (2nd order) +- case 90: el_order--; // 40-node wedge (3rd order) +- case 91: el_order--; // 75-node wedge (4th order) +- case 106: el_order--; // 126-node wedge (5th order) +- case 107: el_order--; // 196-node wedge (6th order) +- case 108: el_order--; // 288-node wedge (7th order) +- case 109: el_order--; // 405-node wedge (8th order) +- case 110: el_order--; // 550-node wedge (9th order) +- { +- el_order--; +- elements_3D.push_back( +- new Wedge(&vert_indices[0], phys_domain)); +- if (el_order > 1) +- { +- Array * hov = new Array; +- hov->Append(&vert_indices[0], n_elem_nodes); +- ho_verts_3D.push_back(hov); +- ho_el_order_3D.push_back(el_order); +- } +- break; +- } +- case 7: el_order--; // 5-node pyramid +- case 14: el_order--; // 14-node pyramid (2nd order) +- case 118: el_order--; // 30-node pyramid (3rd order) +- case 119: el_order--; // 55-node pyramid (4th order) +- case 120: el_order--; // 91-node pyramid (5th order) +- case 121: el_order--; // 140-node pyramid (6th order) +- case 122: el_order--; // 204-node pyramid (7th order) +- case 123: el_order--; // 285-node pyramid (8th order) +- case 124: el_order--; // 385-node pyramid (9th order) +- { +- el_order--; +- elements_3D.push_back( +- new Pyramid(&vert_indices[0], phys_domain)); +- if (el_order > 1) +- { +- Array * hov = new Array; +- hov->Append(&vert_indices[0], n_elem_nodes); +- ho_verts_3D.push_back(hov); +- ho_el_order_3D.push_back(el_order); +- } +- break; +- } +- case 15: // 1-node point +- { +- elements_0D.push_back( +- new Point(&vert_indices[0], phys_domain)); +- break; +- } +- default: // any other element +- MFEM_WARNING("Unsupported Gmsh element type."); +- break; +- +- } // switch (type_of_element) ++ AddElement(type_of_element, vert_indices, phys_domain); + } // el (all elements) + } // if ASCII + +@@ -2524,81 +2367,106 @@ void Mesh::ReadGmshMesh(std::istream &input, int &curved, int &read_gf) + Nodes_gf.SetSpace(nfes); + Nodes_gf.MakeOwner(nfec); + ++ // Vertex order mappings ++ Array ho_lin(11); ho_lin = NULL; ++ Array ho_tri(11); ho_tri = NULL; ++ Array ho_sqr(11); ho_sqr = NULL; ++ Array ho_tet(11); ho_tet = NULL; ++ Array ho_hex(10); ho_hex = NULL; ++ Array ho_wdg(10); ho_wdg = NULL; ++ Array ho_pyr(10); ho_pyr = NULL; ++ ++ // Use predefined arrays at lowest orders (for efficiency) ++ ho_lin[2] = lin3; ho_lin[3] = lin4; ++ ho_tri[2] = tri6; ho_tri[3] = tri10; ++ ho_sqr[2] = quad9; ho_sqr[3] = quad16; ++ ho_tet[2] = tet10; ho_tet[3] = tet20; ++ ho_hex[2] = hex27; ho_hex[3] = hex64; ++ ho_wdg[2] = wdg18; ho_wdg[3] = wdg40; ++ ho_pyr[2] = pyr14; ho_pyr[3] = pyr30; ++ + int o = 0; +- int el_order = 1; + for (int el = 0; el < NumOfElements; el++) + { ++ vector * ho_verts = NULL; ++ int el_order = 1; + const int * vm = NULL; +- Array * ho_verts = NULL; + switch (GetElementType(el)) + { + case Element::SEGMENT: +- ho_verts = ho_verts_1D[el]; ++ ho_verts = &ho_verts_1D[el]; + el_order = ho_el_order_1D[el]; + if (!ho_lin[el_order]) + { +- ho_lin[el_order] = new int[ho_verts->Size()]; +- GmshHOSegmentMapping(el_order, ho_lin[el_order]); ++ int * ho_map = new int[ho_verts->size()]; ++ GmshHOSegmentMapping(el_order, ho_map); ++ ho_lin[el_order] = ho_map; + } + vm = ho_lin[el_order]; + break; + case Element::TRIANGLE: +- ho_verts = ho_verts_2D[el]; ++ ho_verts = &ho_verts_2D[el]; + el_order = ho_el_order_2D[el]; + if (!ho_tri[el_order]) + { +- ho_tri[el_order] = new int[ho_verts->Size()]; +- GmshHOTriangleMapping(el_order, ho_tri[el_order]); ++ int * ho_map = new int[ho_verts->size()]; ++ GmshHOTriangleMapping(el_order, ho_map); ++ ho_tri[el_order] = ho_map; + } + vm = ho_tri[el_order]; + break; + case Element::QUADRILATERAL: +- ho_verts = ho_verts_2D[el]; ++ ho_verts = &ho_verts_2D[el]; + el_order = ho_el_order_2D[el]; + if (!ho_sqr[el_order]) + { +- ho_sqr[el_order] = new int[ho_verts->Size()]; +- GmshHOQuadrilateralMapping(el_order, ho_sqr[el_order]); ++ int * ho_map = new int[ho_verts->size()]; ++ GmshHOQuadrilateralMapping(el_order, ho_map); ++ ho_sqr[el_order] = ho_map; + } + vm = ho_sqr[el_order]; + break; + case Element::TETRAHEDRON: +- ho_verts = ho_verts_3D[el]; ++ ho_verts = &ho_verts_3D[el]; + el_order = ho_el_order_3D[el]; + if (!ho_tet[el_order]) + { +- ho_tet[el_order] = new int[ho_verts->Size()]; +- GmshHOTetrahedronMapping(el_order, ho_tet[el_order]); ++ int * ho_map = new int[ho_verts->size()]; ++ GmshHOTetrahedronMapping(el_order, ho_map); ++ ho_tet[el_order] = ho_map; + } + vm = ho_tet[el_order]; + break; + case Element::HEXAHEDRON: +- ho_verts = ho_verts_3D[el]; ++ ho_verts = &ho_verts_3D[el]; + el_order = ho_el_order_3D[el]; + if (!ho_hex[el_order]) + { +- ho_hex[el_order] = new int[ho_verts->Size()]; +- GmshHOHexahedronMapping(el_order, ho_hex[el_order]); ++ int * ho_map = new int[ho_verts->size()]; ++ GmshHOHexahedronMapping(el_order, ho_map); ++ ho_hex[el_order] = ho_map; + } + vm = ho_hex[el_order]; + break; + case Element::WEDGE: +- ho_verts = ho_verts_3D[el]; ++ ho_verts = &ho_verts_3D[el]; + el_order = ho_el_order_3D[el]; + if (!ho_wdg[el_order]) + { +- ho_wdg[el_order] = new int[ho_verts->Size()]; +- GmshHOWedgeMapping(el_order, ho_wdg[el_order]); ++ int * ho_map = new int[ho_verts->size()]; ++ GmshHOWedgeMapping(el_order, ho_map); ++ ho_wdg[el_order] = ho_map; + } + vm = ho_wdg[el_order]; + break; + case Element::PYRAMID: +- ho_verts = ho_verts_3D[el]; ++ ho_verts = &ho_verts_3D[el]; + el_order = ho_el_order_3D[el]; + if (!ho_pyr[el_order]) + { +- ho_pyr[el_order] = new int[ho_verts->Size()]; +- GmshHOPyramidMapping(el_order, ho_pyr[el_order]); ++ int * ho_map = new int[ho_verts->size()]; ++ GmshHOPyramidMapping(el_order, ho_map); ++ ho_pyr[el_order] = ho_map; + } + vm = ho_pyr[el_order]; + break; +@@ -2606,62 +2474,47 @@ void Mesh::ReadGmshMesh(std::istream &input, int &curved, int &read_gf) + MFEM_WARNING("Unsupported Gmsh element type."); + break; + } +- int nv = (ho_verts) ? ho_verts->Size() : 0; +- +- for (int v = 0; vsize() : 0; ++ for (int v = 0; v < nv; v++) + { + real_t * c = GetVertex((*ho_verts)[vm[v]]); +- for (int d=0; d &v_to_v) const { return 0; } + +diff --git a/mesh/mesh.cpp b/mesh/mesh.cpp +index 4470765f9c..10e2dfe3a0 100644 +--- a/mesh/mesh.cpp ++++ b/mesh/mesh.cpp +@@ -2454,7 +2454,7 @@ void Mesh::FinalizeTriMesh(int generate_edges, int refine, bool fix_orientation) + + if (refine) + { +- MarkTriMeshForRefinement(); ++ MarkForRefinement(); + } + + if (generate_edges) +@@ -2909,82 +2909,117 @@ void Mesh::ReorderElements(const Array &ordering, bool reorder_vertices) + } + + ++void Mesh::GetEdgeLengths2(const DSTable &v_to_v, Array &lengths) const ++{ ++ if (Nodes) ++ { ++ Nodes->HostRead(); ++ } ++ auto GetLength2 = [this](int i, int j) ++ { ++ real_t l = 0.; ++ if (Nodes == NULL) ++ { ++ const real_t *vi = vertices[i](); ++ const real_t *vj = vertices[j](); ++ for (int k = 0; k < spaceDim; k++) ++ { ++ l += (vi[k]-vj[k])*(vi[k]-vj[k]); ++ } ++ } ++ else ++ { ++ Array ivdofs, jvdofs; ++ Nodes->FESpace()->GetVertexVDofs(i, ivdofs); ++ Nodes->FESpace()->GetVertexVDofs(j, jvdofs); ++ for (int k = 0; k < ivdofs.Size(); k++) ++ { ++ l += (AsConst(*Nodes)(ivdofs[k])-AsConst(*Nodes)(jvdofs[k]))* ++ (AsConst(*Nodes)(ivdofs[k])-AsConst(*Nodes)(jvdofs[k])); ++ } ++ } ++ return l; ++ }; ++ lengths.SetSize(NumOfEdges); ++ for (int i = 0; i < NumOfVertices; i++) ++ { ++ for (DSTable::RowIterator it(v_to_v, i); !it; ++it) ++ { ++ int j = it.Index(); ++ lengths[j] = GetLength2(i, it.Column()); ++ } ++ } ++}; ++ + void Mesh::MarkForRefinement() + { + if (meshgen & 1) + { ++ DSTable v_to_v(NumOfVertices); ++ GetVertexToVertexTable(v_to_v); ++ NumOfEdges = v_to_v.NumberOfEntries(); + if (Dim == 2) + { +- MarkTriMeshForRefinement(); ++ MarkTriMeshForRefinement(v_to_v); + } + else if (Dim == 3) + { +- DSTable v_to_v(NumOfVertices); +- GetVertexToVertexTable(v_to_v); + MarkTetMeshForRefinement(v_to_v); + } + } + } + +-void Mesh::MarkTriMeshForRefinement() ++void Mesh::MarkTriMeshForRefinement(const DSTable &v_to_v) + { + // Mark the longest triangle edge by rotating the indices so that +- // vertex 0 - vertex 1 is the longest edge in the triangle. +- DenseMatrix pmat; +- for (int i = 0; i < NumOfElements; i++) +- { +- if (elements[i]->GetType() == Element::TRIANGLE) +- { +- GetPointMatrix(i, pmat); +- static_cast(elements[i])->MarkEdge(pmat); +- } +- } +-} ++ // vertex 0 - vertex 1 is the longest edge in the triangle. In the case of ++ // ties in the edge length, the edge index is used for a consistent ordering ++ // between elements. ++ Array lengths; ++ GetEdgeLengths2(v_to_v, lengths); + +-void Mesh::GetEdgeOrdering(const DSTable &v_to_v, Array &order) +-{ +- NumOfEdges = v_to_v.NumberOfEntries(); +- order.SetSize(NumOfEdges); +- Array > length_idx(NumOfEdges); ++ Array idx(NumOfEdges); ++ for (int i = 0; i < NumOfEdges; i++) { idx[i] = i; } + +- for (int i = 0; i < NumOfVertices; i++) ++ for (int i = 0; i < NumOfElements; i++) + { +- for (DSTable::RowIterator it(v_to_v, i); !it; ++it) ++ if (elements[i]->GetType() == Element::TRIANGLE) + { +- int j = it.Index(); +- length_idx[j].one = GetLength(i, it.Column()); +- length_idx[j].two = j; ++ MFEM_ASSERT(dynamic_cast(elements[i]), ++ "Unexpected non-Triangle element type"); ++ static_cast(elements[i])->MarkEdge(v_to_v, lengths, idx); + } + } +- +- // Sort by increasing edge-length. +- length_idx.Sort(); +- +- for (int i = 0; i < NumOfEdges; i++) +- { +- order[length_idx[i].two] = i; +- } + } + + void Mesh::MarkTetMeshForRefinement(const DSTable &v_to_v) + { + // Mark the longest tetrahedral edge by rotating the indices so that +- // vertex 0 - vertex 1 is the longest edge in the element. +- Array order; +- GetEdgeOrdering(v_to_v, order); ++ // vertex 0 - vertex 1 is the longest edge in the element. In the case of ++ // ties in the edge length, the edge index is used for a consistent ordering ++ // between elements. ++ Array lengths; ++ GetEdgeLengths2(v_to_v, lengths); ++ ++ Array idx(NumOfEdges); ++ for (int i = 0; i < NumOfEdges; i++) { idx[i] = i; } + + for (int i = 0; i < NumOfElements; i++) + { + if (elements[i]->GetType() == Element::TETRAHEDRON) + { +- elements[i]->MarkEdge(v_to_v, order); ++ MFEM_ASSERT(dynamic_cast(elements[i]), ++ "Unexpected non-Tetrahedron element type"); ++ static_cast(elements[i])->MarkEdge(v_to_v, lengths, idx); + } + } + for (int i = 0; i < NumOfBdrElements; i++) + { + if (boundary[i]->GetType() == Element::TRIANGLE) + { +- boundary[i]->MarkEdge(v_to_v, order); ++ MFEM_ASSERT(dynamic_cast(boundary[i]), ++ "Unexpected non-Triangle element type"); ++ static_cast(boundary[i])->MarkEdge(v_to_v, lengths, idx); + } + } + } +@@ -3349,9 +3384,7 @@ void Mesh::FinalizeTetMesh(int generate_edges, int refine, bool fix_orientation) + + if (refine) + { +- DSTable v_to_v(NumOfVertices); +- GetVertexToVertexTable(v_to_v); +- MarkTetMeshForRefinement(v_to_v); ++ MarkForRefinement(); + } + + GetElementToFaceTable(); +@@ -3618,8 +3651,7 @@ void Mesh::Finalize(bool refine, bool fix_orientation) + // only perform it when Dim == spaceDim. + if (Dim >= 2 && Dim == spaceDim) + { +- const int num_faces = GetNumFaces(); +- for (int i = 0; i < num_faces; i++) ++ for (int i = 0; i < GetNumFaces(); i++) + { + MFEM_VERIFY(faces_info[i].Elem2No < 0 || + faces_info[i].Elem2Inf%2 != 0, "Invalid mesh topology." +@@ -4320,8 +4352,6 @@ void Mesh::Make2D(int nx, int ny, Element::Type type, + boundary[2*nx+j] = new Segment((j+1)*m, j*m, 4); + boundary[2*nx+ny+j] = new Segment(j*m+nx, (j+1)*m+nx, 2); + } +- +- // MarkTriMeshForRefinement(); // done in Finalize(...) + } + else + { +@@ -6742,37 +6772,21 @@ static const char *fixed_or_not[] = { "fixed", "NOT FIXED" }; + + int Mesh::CheckElementOrientation(bool fix_it) + { +- int i, j, k, wo = 0, fo = 0; +- real_t *v[4]; ++ int wo = 0, fo = 0; + + if (Dim == 2 && spaceDim == 2) + { + DenseMatrix J(2, 2); + +- for (i = 0; i < NumOfElements; i++) ++ for (int i = 0; i < NumOfElements; i++) + { +- int *vi = elements[i]->GetVertices(); +- if (Nodes == NULL) +- { +- for (j = 0; j < 3; j++) +- { +- v[j] = vertices[vi[j]](); +- } +- for (j = 0; j < 2; j++) +- for (k = 0; k < 2; k++) +- { +- J(j, k) = v[j+1][k] - v[0][k]; +- } +- } +- else +- { +- // only check the Jacobian at the center of the element +- GetElementJacobian(i, J); +- } ++ // only check the Jacobian at the center of the element ++ GetElementJacobian(i, J); + if (J.Det() < 0.0) + { + if (fix_it) + { ++ int *vi = elements[i]->GetVertices(); + switch (GetElementType(i)) + { + case Element::TRIANGLE: +@@ -6792,89 +6806,42 @@ int Mesh::CheckElementOrientation(bool fix_it) + } + } + } +- +- if (Dim == 3) ++ else if (Dim == 3) + { + DenseMatrix J(3, 3); + +- for (i = 0; i < NumOfElements; i++) ++ for (int i = 0; i < NumOfElements; i++) + { +- int *vi = elements[i]->GetVertices(); +- switch (GetElementType(i)) ++ // only check the Jacobian at the center of the element ++ GetElementJacobian(i, J); ++ if (J.Det() < 0.0) + { +- case Element::TETRAHEDRON: +- if (Nodes == NULL) +- { +- for (j = 0; j < 4; j++) +- { +- v[j] = vertices[vi[j]](); +- } +- for (j = 0; j < 3; j++) +- for (k = 0; k < 3; k++) +- { +- J(j, k) = v[j+1][k] - v[0][k]; +- } +- } +- else +- { +- // only check the Jacobian at the center of the element +- GetElementJacobian(i, J); +- } +- if (J.Det() < 0.0) ++ if (fix_it) ++ { ++ int *vi = elements[i]->GetVertices(); ++ switch (GetElementType(i)) + { +- wo++; +- if (fix_it) +- { ++ case Element::TETRAHEDRON: + mfem::Swap(vi[0], vi[1]); + fo++; +- } +- } +- break; +- +- case Element::WEDGE: +- // only check the Jacobian at the center of the element +- GetElementJacobian(i, J); +- if (J.Det() < 0.0) +- { +- wo++; +- if (fix_it) +- { ++ break; ++ case Element::WEDGE: + // how? +- } +- } +- break; +- +- case Element::PYRAMID: +- // only check the Jacobian at the center of the element +- GetElementJacobian(i, J); +- if (J.Det() < 0.0) +- { +- wo++; +- if (fix_it) +- { ++ break; ++ case Element::PYRAMID: + mfem::Swap(vi[1], vi[3]); + fo++; +- } +- } +- break; +- +- case Element::HEXAHEDRON: +- // only check the Jacobian at the center of the element +- GetElementJacobian(i, J); +- if (J.Det() < 0.0) +- { +- wo++; +- if (fix_it) +- { ++ break; ++ case Element::HEXAHEDRON: + // how? +- } ++ break; ++ default: ++ MFEM_ABORT("Invalid 3D element type \"" ++ << GetElementType(i) << "\""); ++ break; + } +- break; +- +- default: +- MFEM_ABORT("Invalid 3D element type \"" +- << GetElementType(i) << "\""); +- break; ++ } ++ wo++; + } + } + } +@@ -7844,24 +7811,12 @@ void Mesh::GetBdrPointMatrix(int i,DenseMatrix &pointmat) const + + pointmat.SetSize(spaceDim, nv); + for (k = 0; k < spaceDim; k++) ++ { + for (j = 0; j < nv; j++) + { + pointmat(k, j) = vertices[v[j]](k); + } +-} +- +-real_t Mesh::GetLength(int i, int j) const +-{ +- const real_t *vi = vertices[i](); +- const real_t *vj = vertices[j](); +- real_t length = 0.; +- +- for (int k = 0; k < spaceDim; k++) +- { +- length += (vi[k]-vj[k])*(vi[k]-vj[k]); + } +- +- return sqrt(length); + } + + // static method +diff --git a/mesh/mesh.hpp b/mesh/mesh.hpp +index edc6ab14d3..353fbb4508 100644 +--- a/mesh/mesh.hpp ++++ b/mesh/mesh.hpp +@@ -384,12 +384,12 @@ protected: + /** Also, initializes #mesh_geoms. */ + void SetMeshGen(); + +- /// Return the length of the segment from node i to node j. +- real_t GetLength(int i, int j) const; ++ /** Computes the squared edge lengths for all edges in the mesh. @a v_to_v ++ is the vertex connectivity constructed by GetVertexToVertexTable(). */ ++ void GetEdgeLengths2(const DSTable &v_to_v, Array &lengths) const; + + void MarkForRefinement(); +- void MarkTriMeshForRefinement(); +- void GetEdgeOrdering(const DSTable &v_to_v, Array &order); ++ void MarkTriMeshForRefinement(const DSTable &v_to_v); + virtual void MarkTetMeshForRefinement(const DSTable &v_to_v); + + // Methods used to prepare and apply permutation of the mesh nodes assuming +diff --git a/mesh/pmesh.cpp b/mesh/pmesh.cpp +index c080aa9942..008aa925c9 100644 +--- a/mesh/pmesh.cpp ++++ b/mesh/pmesh.cpp +@@ -20,6 +20,7 @@ + #include "../general/text.hpp" + #include "../general/globals.hpp" + ++#include + #include + #include + +@@ -762,8 +763,10 @@ void ParMesh::BuildSharedFaceElems(int ntri_faces, int nquad_faces, + sface_lface[stria_counter] = lface; + if (meshgen == 1) // Tet-only mesh + { +- Tetrahedron *tet = dynamic_cast +- (elements[faces_info[lface].Elem1No]); ++ Element *elem = elements[faces_info[lface].Elem1No]; ++ MFEM_ASSERT(dynamic_cast(elem), ++ "Unexpected non-Tetrahedron element") ++ auto *tet = static_cast(elem); + // mark the shared face for refinement by reorienting + // it according to the refinement flag in the tetrahedron + // to which this shared face belongs to. +@@ -1751,98 +1754,63 @@ void ParMesh::GetSharedTriCommunicator(int ordering, + + void ParMesh::MarkTetMeshForRefinement(const DSTable &v_to_v) + { +- Array order; +- GetEdgeOrdering(v_to_v, order); // local edge ordering +- +- // create a GroupCommunicator on the shared edges ++ // Mark the longest tetrahedral edge by rotating the indices so that ++ // vertex 0 - vertex 1 is the longest edge in the element. In the case of ++ // ties in the edge length, the global edge index is used for a consistent ++ // ordering between elements. ++ Array lengths; ++ GetEdgeLengths2(v_to_v, lengths); ++ ++ // Create a GroupCommunicator over shared edges + GroupCommunicator sedge_comm(gtopo); + GetSharedEdgeCommunicator(0, sedge_comm); + +- Array sedge_ord(shared_edges.Size()); +- Array > sedge_ord_map(shared_edges.Size()); +- for (int k = 0; k < shared_edges.Size(); k++) ++ // Communicate the local index of each shared edge from the group master to ++ // other ranks in the group ++ Array sedge_master_rank(shared_edges.Size()); ++ Array sedge_master_index(shared_edges.Size()); ++ for (int i = 0; i < group_sedge.Size(); i++) ++ { ++ const int rank = gtopo.GetGroupMasterRank(i+1); ++ for (int j = 0; j < group_sedge.RowSize(i); j++) ++ { ++ sedge_master_rank[group_sedge.GetRow(i)[j]] = rank; ++ } ++ } ++ for (int i = 0; i < shared_edges.Size(); i++) + { +- // sedge_ledge may be undefined -- use shared_edges and v_to_v instead +- const int sedge = group_sedge.GetJ()[k]; ++ // sedge_ledge may be undefined so use shared_edges and v_to_v instead ++ const int sedge = group_sedge.GetJ()[i]; + const int *v = shared_edges[sedge]->GetVertices(); +- sedge_ord[k] = order[v_to_v(v[0], v[1])]; ++ sedge_master_index[i] = v_to_v(v[0], v[1]); + } ++ sedge_comm.Bcast(sedge_master_index); + +- sedge_comm.Bcast(sedge_ord, 1); +- +- for (int k = 0, gr = 1; gr < GetNGroups(); gr++) ++ // The pairs (master rank, master local index) define a globally consistent ++ // edge ordering ++ Array glob_edge_order(NumOfEdges); ++ for (int i = 0; i < NumOfEdges; i++) + { +- const int n = group_sedge.RowSize(gr-1); +- if (n == 0) { continue; } +- sedge_ord_map.SetSize(n); +- for (int j = 0; j < n; j++) +- { +- sedge_ord_map[j].one = sedge_ord[k+j]; +- sedge_ord_map[j].two = j; +- } +- SortPairs(sedge_ord_map, n); +- for (int j = 0; j < n; j++) +- { +- const int sedge_from = group_sedge.GetJ()[k+j]; +- const int *v = shared_edges[sedge_from]->GetVertices(); +- sedge_ord[k+j] = order[v_to_v(v[0], v[1])]; +- } +- std::sort(&sedge_ord[k], &sedge_ord[k] + n); +- for (int j = 0; j < n; j++) +- { +- const int sedge_to = group_sedge.GetJ()[k+sedge_ord_map[j].two]; +- const int *v = shared_edges[sedge_to]->GetVertices(); +- order[v_to_v(v[0], v[1])] = sedge_ord[k+j]; +- } +- k += n; ++ glob_edge_order[i] = (std::int64_t(MyRank) << 32) + i; + } +- +-#ifdef MFEM_DEBUG ++ for (int i = 0; i < shared_edges.Size(); i++) + { +- Array > ilen_len(order.Size()); +- +- for (int i = 0; i < NumOfVertices; i++) +- { +- for (DSTable::RowIterator it(v_to_v, i); !it; ++it) +- { +- int j = it.Index(); +- ilen_len[j].one = order[j]; +- ilen_len[j].two = GetLength(i, it.Column()); +- } +- } +- +- SortPairs(ilen_len, order.Size()); +- +- real_t d_max = 0.; +- for (int i = 1; i < order.Size(); i++) +- { +- d_max = std::max(d_max, ilen_len[i-1].two-ilen_len[i].two); +- } +- +-#if 0 +- // Debug message from every MPI rank. +- mfem::out << "proc. " << MyRank << '/' << NRanks << ": d_max = " << d_max +- << endl; +-#else +- // Debug message just from rank 0. +- real_t glob_d_max; +- MPI_Reduce(&d_max, &glob_d_max, 1, MPITypeMap::mpi_type, MPI_MAX, 0, +- MyComm); +- if (MyRank == 0) +- { +- mfem::out << "glob_d_max = " << glob_d_max << endl; +- } +-#endif ++ const int sedge = group_sedge.GetJ()[i]; ++ const int *v = shared_edges[sedge]->GetVertices(); ++ glob_edge_order[v_to_v(v[0], v[1])] = ++ (std::int64_t(sedge_master_rank[i]) << 32) + sedge_master_index[i]; + } +-#endif + +- // use 'order' to mark the tets, the boundary triangles, and the shared ++ // Use the lengths to mark the tets, the boundary triangles, and the shared + // triangle faces + for (int i = 0; i < NumOfElements; i++) + { + if (elements[i]->GetType() == Element::TETRAHEDRON) + { +- elements[i]->MarkEdge(v_to_v, order); ++ MFEM_ASSERT(dynamic_cast(elements[i]), ++ "Unexpected non-Tetrahedron element type"); ++ static_cast(elements[i])->MarkEdge(v_to_v, lengths, ++ glob_edge_order); + } + } + +@@ -1850,13 +1818,16 @@ void ParMesh::MarkTetMeshForRefinement(const DSTable &v_to_v) + { + if (boundary[i]->GetType() == Element::TRIANGLE) + { +- boundary[i]->MarkEdge(v_to_v, order); ++ MFEM_ASSERT(dynamic_cast(boundary[i]), ++ "Unexpected non-Triangle element type"); ++ static_cast(boundary[i])->MarkEdge(v_to_v, lengths, ++ glob_edge_order); + } + } + + for (int i = 0; i < shared_trias.Size(); i++) + { +- Triangle::MarkEdge(shared_trias[i].v, v_to_v, order); ++ Triangle::MarkEdge(shared_trias[i].v, v_to_v, lengths, glob_edge_order); + } + } + +@@ -3261,7 +3232,7 @@ void ParMesh::ReorientTetMesh() + Array svert_master_index(svert_lvert); + for (int i = 0; i < group_svert.Size(); i++) + { +- int rank = gtopo.GetGroupMasterRank(i+1); ++ const int rank = gtopo.GetGroupMasterRank(i+1); + for (int j = 0; j < group_svert.RowSize(i); j++) + { + svert_master_rank[group_svert.GetRow(i)[j]] = rank; +diff --git a/mesh/tetrahedron.cpp b/mesh/tetrahedron.cpp +index e5cc675cf7..aa880d92f2 100644 +--- a/mesh/tetrahedron.cpp ++++ b/mesh/tetrahedron.cpp +@@ -13,6 +13,8 @@ + + #include "mesh_headers.hpp" + ++#include ++ + namespace mfem + { + +@@ -185,19 +187,33 @@ void Tetrahedron::SetVertices(const int *ind) + } + } + +-void Tetrahedron::MarkEdge(const DSTable &v_to_v, const int *length) ++template ++void Tetrahedron::MarkEdge(const DSTable &v_to_v, const Array &length, ++ const Array &length2) + { +- int ind[4], i, j, l, L, type; +- +- // determine the longest edge +- L = length[v_to_v(indices[0], indices[1])]; j = 0; +- if ((l = length[v_to_v(indices[1], indices[2])]) > L) { L = l; j = 1; } +- if ((l = length[v_to_v(indices[2], indices[0])]) > L) { L = l; j = 2; } +- if ((l = length[v_to_v(indices[0], indices[3])]) > L) { L = l; j = 3; } +- if ((l = length[v_to_v(indices[1], indices[3])]) > L) { L = l; j = 4; } +- if ((l = length[v_to_v(indices[2], indices[3])]) > L) { j = 5; } ++ int e, j, ind[4], type; ++ T1 l, L; ++ T2 l2, L2; ++ auto Compare = [&length, &length2, &l, &l2, &L, &L2](int e) ++ { ++ constexpr T1 rtol = 1.0e-6; ++ l = length[e]; ++ l2 = length2[e]; ++ MFEM_ASSERT(l2 != L2, "Tie-breaking lengths should be unique for MarkEdge"); ++ return (l > L * (1.0 + rtol) || (l > L * (1.0 - rtol) && l2 > L2)); ++ }; ++ ++ // Find j as the index of the longest edge, using the pair of metrics ++ e = v_to_v(indices[0], indices[1]); ++ L = length[e]; L2 = length2[e]; ++ j = 0; ++ if (Compare(v_to_v(indices[1], indices[2]))) { L = l; L2 = l2; j = 1; } ++ if (Compare(v_to_v(indices[2], indices[0]))) { L = l; L2 = l2; j = 2; } ++ if (Compare(v_to_v(indices[0], indices[3]))) { L = l; L2 = l2; j = 3; } ++ if (Compare(v_to_v(indices[1], indices[3]))) { L = l; L2 = l2; j = 4; } ++ if (Compare(v_to_v(indices[2], indices[3]))) { j = 5; } + +- for (i = 0; i < 4; i++) ++ for (int i = 0; i < 4; i++) + { + ind[i] = indices[i]; + } +@@ -226,16 +242,17 @@ void Tetrahedron::MarkEdge(const DSTable &v_to_v, const int *length) + break; + } + +- // Determine the two longest edges for the other two faces and +- // store them in ind[0] and ind[1] ++ // Determine the two longest edges for the other two faces and store them in ++ // ind[0] and ind[1] + ind[0] = 2; ind[1] = 1; +- L = length[v_to_v(indices[0], indices[2])]; +- if ((l = length[v_to_v(indices[0], indices[3])]) > L) { L = l; ind[0] = 3; } +- if ((l = length[v_to_v(indices[2], indices[3])]) > L) { ind[0] = 5; } + +- L = length[v_to_v(indices[1], indices[2])]; +- if ((l = length[v_to_v(indices[1], indices[3])]) > L) { L = l; ind[1] = 4; } +- if ((l = length[v_to_v(indices[2], indices[3])]) > L) { ind[1] = 5; } ++ e = v_to_v(indices[0], indices[2]); L = length[e]; L2 = length2[e]; ++ if (Compare(v_to_v(indices[0], indices[3]))) { L = l; L2 = l2; ind[0] = 3; } ++ if (Compare(v_to_v(indices[2], indices[3]))) { L = l; L2 = l2; ind[0] = 5; } ++ ++ e = v_to_v(indices[1], indices[2]); L = length[e]; L2 = length2[e]; ++ if (Compare(v_to_v(indices[1], indices[3]))) { L = l; L2 = l2; ind[1] = 4; } ++ if (Compare(v_to_v(indices[2], indices[3]))) { L = l; L2 = l2; ind[1] = 5; } + + j = 0; + switch (ind[0]) +@@ -349,4 +366,13 @@ Element *Tetrahedron::Duplicate(Mesh *m) const + return tet; + } + ++// @cond DOXYGEN_SKIP ++ ++template void Tetrahedron::MarkEdge(const DSTable &, const Array &, ++ const Array &); ++template void Tetrahedron::MarkEdge(const DSTable &, const Array &, ++ const Array &); ++ ++// @endcond ++ + } +diff --git a/mesh/tetrahedron.hpp b/mesh/tetrahedron.hpp +index a05a7f3f9f..bcb04859f4 100644 +--- a/mesh/tetrahedron.hpp ++++ b/mesh/tetrahedron.hpp +@@ -73,8 +73,12 @@ public: + + /** Reorder the vertices so that the longest edge is from vertex 0 + to vertex 1. If called it should be once from the mesh constructor, +- because the order may be used later for setting the edges. **/ +- void MarkEdge(const DSTable &v_to_v, const int *length) override; ++ because the order may be used later for setting the edges. In the case ++ where multiple edges have the same @a length, the @a length2 metric is ++ used to break ties. **/ ++ template ++ void MarkEdge(const DSTable &v_to_v, const Array &length, ++ const Array &length2); + + void ResetTransform(int tr) override { transform = tr; } + unsigned GetTransform() const override { return transform; } +diff --git a/mesh/triangle.cpp b/mesh/triangle.cpp +index 5b870a072c..6b3b8b1910 100644 +--- a/mesh/triangle.cpp ++++ b/mesh/triangle.cpp +@@ -11,6 +11,8 @@ + + #include "mesh_headers.hpp" + ++#include ++ + namespace mfem + { + +@@ -50,63 +52,31 @@ void Triangle::SetVertices(const int *ind) + } + } + +-void Triangle::MarkEdge(DenseMatrix &pmat) ++// static method ++template ++void Triangle::MarkEdge(int indices[3], const DSTable &v_to_v, ++ const Array &length, const Array &length2) + { +- real_t d[3]; +- int shift, v; +- +- d[0] = ( (pmat(0,1)-pmat(0,0))*(pmat(0,1)-pmat(0,0)) + +- (pmat(1,1)-pmat(1,0))*(pmat(1,1)-pmat(1,0)) ); +- d[1] = ( (pmat(0,2)-pmat(0,1))*(pmat(0,2)-pmat(0,1)) + +- (pmat(1,2)-pmat(1,1))*(pmat(1,2)-pmat(1,1)) ); +- d[2] = ( (pmat(0,2)-pmat(0,0))*(pmat(0,2)-pmat(0,0)) + +- (pmat(1,2)-pmat(1,0))*(pmat(1,2)-pmat(1,0)) ); +- +- // if pmat has 3 rows, then use extra term in each sum +- if (pmat.Height()==3) +- { +- d[0] += (pmat(2,1)-pmat(2,0))*(pmat(2,1)-pmat(2,0)); +- d[1] += (pmat(2,2)-pmat(2,1))*(pmat(2,2)-pmat(2,1)); +- d[2] += (pmat(2,2)-pmat(2,0))*(pmat(2,2)-pmat(2,0)); +- } +- +- if (d[0] >= d[1]) ++ int e, j, ind[3]; ++ T1 l, L; ++ T2 l2, L2; ++ auto Compare = [&length, &length2, &l, &l2, &L, &L2](int e) + { +- if (d[0] >= d[2]) { shift = 0; } +- else { shift = 2; } +- } +- else if (d[1] >= d[2]) { shift = 1; } +- else { shift = 2; } +- +- switch (shift) +- { +- case 0: +- break; +- case 1: +- v = indices[0]; +- indices[0] = indices[1]; +- indices[1] = indices[2]; +- indices[2] = v; +- break; +- case 2: +- v = indices[0]; +- indices[0] = indices[2]; +- indices[2] = indices[1]; +- indices[1] = v; +- break; +- } +-} +- +-// Static method +-void Triangle::MarkEdge(int *indices, const DSTable &v_to_v, const int *length) +-{ +- int l, L, j, ind[3], i; ++ constexpr T1 rtol = 1.0e-6; ++ l = length[e]; ++ l2 = length2[e]; ++ MFEM_ASSERT(l2 != L2, "Tie-breaking lengths should be unique for MarkEdge"); ++ return (l > L * (1.0 + rtol) || (l > L * (1.0 - rtol) && l2 > L2)); ++ }; ++ ++ // Find j as the index of the longest edge, using the pair of metrics ++ e = v_to_v(indices[0], indices[1]); ++ L = length[e]; L2 = length2[e]; ++ j = 0; ++ if (Compare(v_to_v(indices[1], indices[2]))) { L = l; L2 = l2; j = 1; } ++ if (Compare(v_to_v(indices[2], indices[0]))) { j = 2; } + +- L = length[ v_to_v(indices[0], indices[1]) ]; j = 0; +- if ( (l = length[ v_to_v(indices[1], indices[2]) ]) > L ) { L = l; j = 1; } +- if ( (l = length[ v_to_v(indices[2], indices[0]) ]) > L ) { j = 2; } +- +- for (i = 0; i < 3; i++) ++ for (int i = 0; i < 3; i++) + { + ind[i] = indices[i]; + } +@@ -197,4 +167,13 @@ void Triangle::SetVertices(const Array &v) + std::copy(v.begin(), v.end(), indices); + } + ++// @cond DOXYGEN_SKIP ++ ++template void Triangle::MarkEdge(int *, const DSTable &, const Array &, ++ const Array &); ++template void Triangle::MarkEdge(int *, const DSTable &, const Array &, ++ const Array &); ++ ++// @endcond ++ + } // namespace mfem +diff --git a/mesh/triangle.hpp b/mesh/triangle.hpp +index ec19f74065..0204272a59 100644 +--- a/mesh/triangle.hpp ++++ b/mesh/triangle.hpp +@@ -46,14 +46,17 @@ public: + + /** Reorder the vertices so that the longest edge is from vertex 0 + to vertex 1. If called it should be once from the mesh constructor, +- because the order may be used later for setting the edges. **/ +- void MarkEdge(DenseMatrix & pmat); +- +- static void MarkEdge(int *indices, const DSTable &v_to_v, const int *length); +- +- /// Mark the longest edge by assuming/changing the order of the vertices. +- void MarkEdge(const DSTable &v_to_v, const int *length) override +- { MarkEdge(indices, v_to_v, length); } ++ because the order may be used later for setting the edges. In the case ++ where multiple edges have the same @a length, the @a length2 metric is ++ used to break ties. **/ ++ template ++ void MarkEdge(const DSTable &v_to_v, const Array &length, ++ const Array &length2) ++ { MarkEdge(indices, v_to_v, length, length2); } ++ ++ template ++ static void MarkEdge(int *indices, const DSTable &v_to_v, ++ const Array &length, const Array &length2); + + void ResetTransform(int tr) override { transform = tr; } + unsigned GetTransform() const override { return transform; } diff --git a/repos/spack_repo/builtin/packages/panda/package.py b/repos/spack_repo/builtin/packages/panda/package.py index 4e1e9326c36..21ca968d014 100644 --- a/repos/spack_repo/builtin/packages/panda/package.py +++ b/repos/spack_repo/builtin/packages/panda/package.py @@ -20,6 +20,7 @@ class Panda(CMakePackage): "2016-03-07", sha256="9fae1544626db417ade7318d26bc43c8af04151b9f7679b6d742dba598762037" ) + depends_on("c", type="build") depends_on("cxx", type="build") # generated # Note: Panda can also be built without MPI support diff --git a/repos/spack_repo/builtin/packages/pandaseq/package.py b/repos/spack_repo/builtin/packages/pandaseq/package.py index 837d7a5c2ea..440f02fa51b 100644 --- a/repos/spack_repo/builtin/packages/pandaseq/package.py +++ b/repos/spack_repo/builtin/packages/pandaseq/package.py @@ -31,5 +31,5 @@ class Pandaseq(AutotoolsPackage): depends_on("bzip2", type="link") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/pandoc/package.py b/repos/spack_repo/builtin/packages/pandoc/package.py index 0feb113e950..f0d8fbac08b 100644 --- a/repos/spack_repo/builtin/packages/pandoc/package.py +++ b/repos/spack_repo/builtin/packages/pandoc/package.py @@ -15,6 +15,8 @@ class Pandoc(Package): homepage = "https://pandoc.org" + license("GPL-2.0") + # The following installs the binaries for pandoc and pandoc-citeproc. The # reason for installing binaries is that pandoc is a Haskell package and # the Haskell framework is not yet in Spack. See #1408 for a discussion of @@ -23,8 +25,17 @@ class Pandoc(Package): skip_version_audit = ["platform=windows"] - if platform.system() == "Linux" and platform.machine() == "aarch64": + system = platform.system().lower() + machine = platform.machine().lower() + if machine == "arm64": + machine = "aarch64" + + if system == "linux" and machine == "aarch64": url = "https://github.com/jgm/pandoc/releases/download/2.14.0.3/pandoc-2.14.0.3-linux-arm64.tar.gz" + + version( + "3.7.0.2", sha256="4ef2997ff0fa7f86ada5a217722f4f732293e38518b4442ececce16628bd0e44" + ) version( "2.19.2", sha256="43f364915b9da64905fc3f6009f5542f224e54fb24f71043ef5154540f1a3983" ) @@ -32,9 +43,12 @@ class Pandoc(Package): "2.14.0.3", sha256="1212e528fb717e0ffa6662d4930640abdbe0c36d14d283560a9688c8403bf34c" ) - elif platform.system() == "Linux": + elif system == "linux": url = "https://github.com/jgm/pandoc/releases/download/2.14.0.3/pandoc-2.14.0.3-linux-amd64.tar.gz" + version( + "3.7.0.2", sha256="8f8f67fdd540b6519326b0ac49d5c55c5d5d15e43920e80a086e02c8aff83268" + ) version( "2.19.2", sha256="9d55c7afb6a244e8a615451ed9cb02e6a6f187ad4d169c6d5a123fa74adb4830" ) @@ -50,22 +64,45 @@ class Pandoc(Package): url="https://github.com/jgm/pandoc/releases/download/2.7.3/pandoc-2.7.3-linux.tar.gz", ) - elif platform.system() == "Darwin": - url = "https://github.com/jgm/pandoc/releases/download/2.14.0.3/pandoc-2.14.0.3-macOS.zip" + elif system == "darwin" and machine == "aarch64": + url = "https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-arm64-macOS.zip" version( - "2.19.2", sha256="af0cda69e31e42f01ba6adc0aa779d3e5853e6c092beeb420a4fc22712d2110b" + "3.7.0.2", sha256="66a579bd8aae83de0bbeba43900953b075a6a3caaa7d1bfc19173e8f95d2ea17" ) + + elif system == "darwin": + url = "https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-x86_64-macOS.zip" + version( - "2.14.0.3", sha256="c6c1addd968699733c7d597cf269cc66d692371995703c32e5262f84a125c27b" + "3.7.0.2", sha256="5495af2c548bd49fe00c28a7f6dadaa1348e6338b92368d3d6e29fd3e16061d1" + ) + + if system == "darwin": + version( + "2.19.2", + sha256="af0cda69e31e42f01ba6adc0aa779d3e5853e6c092beeb420a4fc22712d2110b", + url="https://github.com/jgm/pandoc/releases/download/2.19.2/pandoc-2.19.2-macOS.zip", + ) + version( + "2.14.0.3", + sha256="c6c1addd968699733c7d597cf269cc66d692371995703c32e5262f84a125c27b", + url="https://github.com/jgm/pandoc/releases/download/2.14.0.3/pandoc-2.14.0.3-macOS.zip", + ) + version( + "2.11.4", + sha256="13b8597860afa6ab802993a684b340be3f31f4d2a06c50b6601f9e726cf76f71", + url="https://github.com/jgm/pandoc/releases/download/2.11.4/pandoc-2.11.4-macOS.zip", ) version( - "2.11.4", sha256="13b8597860afa6ab802993a684b340be3f31f4d2a06c50b6601f9e726cf76f71" + "2.7.3", + sha256="fb93800c90f3fab05dbd418ee6180d086b619c9179b822ddfecb608874554ff0", + url="https://github.com/jgm/pandoc/releases/download/2.7.3/pandoc-2.7.3-macOS.zip", ) - version("2.7.3", sha256="fb93800c90f3fab05dbd418ee6180d086b619c9179b822ddfecb608874554ff0") variant("texlive", default=False, description="Use TeX Live to enable PDF output") + conflicts("target=aarch64: platform=darwin", msg="aarch64 is not supported.", when="@:3.1") conflicts("target=aarch64:", msg="aarch64 is not supported.", when="@:2.11") depends_on("texlive", when="+texlive") diff --git a/repos/spack_repo/builtin/packages/pandoramonitoring/package.py b/repos/spack_repo/builtin/packages/pandoramonitoring/package.py index 516e9ce283f..8e3affc3551 100644 --- a/repos/spack_repo/builtin/packages/pandoramonitoring/package.py +++ b/repos/spack_repo/builtin/packages/pandoramonitoring/package.py @@ -21,6 +21,9 @@ class Pandoramonitoring(CMakePackage): maintainers("jmcarcell", "wdconinc") version("master", branch="master") + version("4.0.3", sha256="00830b83b99e6da9e9f70b4bfeaebca2a1af6a10fb6dbf8324bc6e9d6f1224e2") + version("3.7.0", sha256="3d0ba671bdf9ed408ac410c054e67ad93d46cd8690113f1fd34ab133a1658467") + version("3.6.3", sha256="c6859c60b75bf467dcee983085a2613921872aabf914769d4701a0d2ee68bf97") version("3.6.0", sha256="5fc9574faa3e90d96e5d2a27dea46b55f844499cf21e39060acb1e4c080dec77") version("3.5.0", sha256="274562abb7c797194634d5460a56227444a1de07a240c88ae35ca806abcbaf60") @@ -29,6 +32,7 @@ class Pandoramonitoring(CMakePackage): depends_on("root@6.18.04: +geom +opengl +x") depends_on("pandorasdk") + depends_on("pandorasdk@4:", when="@4:") # https://github.com/PandoraPFA/PandoraMonitoring/pull/13 @when("@:3.6.0") diff --git a/repos/spack_repo/builtin/packages/pandorapfa/package.py b/repos/spack_repo/builtin/packages/pandorapfa/package.py index 885df10474a..47ee1da5ad1 100644 --- a/repos/spack_repo/builtin/packages/pandorapfa/package.py +++ b/repos/spack_repo/builtin/packages/pandorapfa/package.py @@ -22,6 +22,12 @@ class Pandorapfa(Package): maintainers("jmcarcell", "wdconinc") version("master", branch="master") + version("4.17.4", sha256="c8c35258cb447372ddb17b8647b4a7ce912e74ee9b0cbad470daadf669888393") + version("4.16.3", sha256="68b149449fcc5b1c21567092cdebc723c2c150cd2d73689453a081fb05619f36") + version("4.15.2", sha256="ed52c05e70452548ca97015ea255437698c9b97637c2da6a7d452bc2d16b980b") + version("4.14.1", sha256="db43a2232435de4f4990f69ed2b263b741693942d8b18542d9d4a1f61ca41e02") + version("4.13.1", sha256="6075f6d9f988be37b301e4f5dbae78e23f6e0b97cda7da42608bb81f6d6b3d73") + version("4.12.0", sha256="bdfdfd40a9bf5a63a9ad3383ccbba4f676119166a9eb3d021a7c40752b1a6036") version("4.11.2", sha256="02b0e8c1844ec515055cb85f9d14d9d13eda28607c634611a59d767eb08a8b34") version("4.3.1", sha256="2f4757a6ed2e10d3effc300b330f67ba13c499dbf21ba720b29b50527332fcdb") version("4.3.0", sha256="a794022c33b3a5afc1272740ac385e0c4ab96a112733012e7dfcbe80b5a3b445") diff --git a/repos/spack_repo/builtin/packages/pandorasdk/package.py b/repos/spack_repo/builtin/packages/pandorasdk/package.py index bd10dba5e1a..9b432e1c3a4 100644 --- a/repos/spack_repo/builtin/packages/pandorasdk/package.py +++ b/repos/spack_repo/builtin/packages/pandorasdk/package.py @@ -20,6 +20,8 @@ class Pandorasdk(CMakePackage): maintainers("jmcarcell", "wdconinc") version("master", branch="master") + version("4.0.2", sha256="9c8e051dbfd3be711dc7940658b78558277e2ec1c6305c0f7c7bb271abd3e4a8") + version("3.4.3", sha256="7590cfa27df47dce99c6fecf4a178f1bb1fa025aaf7d7da9c6176787f66a04be") version("3.4.2", sha256="e076adb2e3d28d3ac5dcc06bcc6e96815d23ef7782e1a87842b1e3e96e194994") version("3.4.1", sha256="9607bf52a9d79d88d28c45d4f3336e066338b36ab81b4d2d125226f4ad3a7aaf") version("3.4.0", sha256="1e30db056d4a43f8659fccdda00270af14593425d933f91e91d5c97f1e124c6b") diff --git a/repos/spack_repo/builtin/packages/pango/package.py b/repos/spack_repo/builtin/packages/pango/package.py index 3d16c5eda41..24684a4c5e3 100644 --- a/repos/spack_repo/builtin/packages/pango/package.py +++ b/repos/spack_repo/builtin/packages/pango/package.py @@ -32,27 +32,18 @@ class Pango(MesonPackage): version("1.47.0", sha256="730db8652fc43188e03218c3374db9d152351f51fc7011b9acae6d0a6c92c367") version("1.46.2", sha256="d89fab5f26767261b493279b65cfb9eb0955cd44c07c5628d36094609fc51841") version("1.45.5", sha256="f61dd911de2d3318b43bbc56bd271637a46f9118a1ee4378928c06df8a1c1705") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2019-1010238 - version( - "1.44.6", sha256="3e1e41ba838737e200611ff001e3b304c2ca4cdbba63d200a20db0b0ddc0f86c" - ) - version( - "1.42.4", sha256="1d2b74cd63e8bd41961f2f8d952355aa0f9be6002b52c8aa7699d9f5da597c9d" - ) variant("X", default=False, description="Enable an X toolkit") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("meson@0.48:", type="build", when="@1.43:") depends_on("meson@0.50:", type="build", when="@1.44.4:") depends_on("meson@0.54:", type="build", when="@1.48.0:") depends_on("meson@0.55.3:", type="build", when="@1.48.1:") depends_on("meson@0.60:", type="build", when="@1.50.13:") depends_on("meson@0.63:", type="build", when="@1.54:") - depends_on("pkgconfig@0.9.0:", type="build") + depends_on("pkgconfig", type="build") depends_on("harfbuzz") for plat in ["linux", "darwin", "freebsd"]: depends_on("harfbuzz +gobject", when=f"platform={plat}") @@ -69,24 +60,13 @@ class Pango(MesonPackage): depends_on("freetype@2:") depends_on("libffi") - depends_on("cairo@1.12.10:", when="@1.41:") - depends_on("fontconfig@2.11.91:", when="@1.41:") - depends_on("glib@2.33.12:", when="@1.41:") - depends_on("harfbuzz@1.2.3:", when="@1.41:") - depends_on("libxft@2.0.0:", when="@1.41: +X") - - depends_on("fribidi@0.19.7:", when="@1.42:") - depends_on("harfbuzz@1.2.3:", when="@1.42:") - - depends_on("glib@2.38.0:", when="@1.43:") - depends_on("harfbuzz@1.4.2:", when="@1.43:") - - depends_on("glib@2.59.2:", when="@1.44:") - depends_on("harfbuzz@2.0.0:", when="@1.44:") - - depends_on("glib@2.62:", when="@1.45:") + depends_on("cairo@1.12.10:") + depends_on("fontconfig@2.11.91:") + depends_on("libxft@2.0.0:", when="+X") + depends_on("fribidi@0.19.7:") + depends_on("harfbuzz@2.0.0:") + depends_on("glib@2.62:") depends_on("harfbuzz@2.2.0:", when="@1.48") - depends_on("fontconfig@2.13.0:", when="@1.49:") depends_on("fribidi@1.0.6:", when="@1.49:") depends_on("harfbuzz@2.6.0:", when="@1.49:") @@ -110,28 +90,8 @@ def meson_args(self): # disable building of gtk-doc files following #9885 and #9771 if spec.satisfies("@1.54:"): args.append("-Ddocumentation=false") - elif spec.satisfies("@1.44:"): - args.append("-Dgtk_doc=false") else: - args.append("-Denable_docs=false") - - return args - - @when("@:1.42") - def configure_args(self): - args = [] - if self.spec.satisfies("+X"): - args.append("--with-xft") - else: - args.append("--without-xft") - - # disable building of gtk-doc files following #9885 and #9771 - args.append("--disable-gtk-doc-html") - true = which("true") - args.append(f"GTKDOC_CHECK={true}") - args.append(f"GTKDOC_CHECK_PATH={true}") - args.append(f"GTKDOC_MKPDF={true}") - args.append(f"GTKDOC_REBASE={true}") + args.append("-Dgtk_doc=false") if self.spec.satisfies("^cairo ~shared"): pkgconfig = which("pkg-config") @@ -154,18 +114,3 @@ def setup_dependent_run_environment( ) -> None: env.prepend_path("XDG_DATA_DIRS", self.prefix.share) env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0")) - - @when("@:1.42") - def meson(self, spec, prefix): - """Run the AutotoolsPackage configure phase""" - configure("--prefix=" + prefix, *self.configure_args()) - - @when("@:1.42") - def build(self, spec, prefix): - """Run the AutotoolsPackage build phase""" - make() - - @when("@:1.42") - def install(self, spec, prefix): - """Run the AutotoolsPackage install phase""" - make("install", parallel=False) diff --git a/repos/spack_repo/builtin/packages/papi/package.py b/repos/spack_repo/builtin/packages/papi/package.py index a98de3b819b..7b038ce93bd 100644 --- a/repos/spack_repo/builtin/packages/papi/package.py +++ b/repos/spack_repo/builtin/packages/papi/package.py @@ -32,6 +32,7 @@ class Papi(AutotoolsPackage, ROCmPackage): license("BSD-3-Clause") version("master", branch="master") + version("7.2.0", sha256="a9bff89ccf39915d729e08ae0a0c6a71ce0ebbe98411e9a2eb3c83c8db0af39c") version("7.1.0", sha256="5818afb6dba3ece57f51e65897db5062f8e3464e6ed294b654ebf34c3991bc4f") version("7.0.1", sha256="c105da5d8fea7b113b0741a943d467a06c98db959ce71bdd9a50b9f03eecc43e") # Note: version 7.0.0 is omitted due to build issues, see PR 33940 for more information @@ -54,12 +55,14 @@ class Papi(AutotoolsPackage, ROCmPackage): variant("cuda", default=False, description="Enable CUDA support") variant("nvml", default=False, description="Enable NVML support") variant("rocm_smi", default=False, description="Enable ROCm SMI support") + variant("rocp_sdk", default=False, when="@7.2:", description="Enable ROCp support") variant( "rdpmc", default=True, when="@6.0.0:", description="Enable use of rdpmc for reading counters, when possible", ) + variant("topdown", default=False, when="@7.2:", description="Enable topdown support") variant("shared", default=True, description="Build shared libraries") # PAPI requires building static libraries, so there is no "static" variant @@ -68,16 +71,18 @@ class Papi(AutotoolsPackage, ROCmPackage): # The PAPI configure option "--with-shlib-tools" is deprecated # and therefore not implemented here - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("perl", when="@7.1.0:", type="build") depends_on("lm-sensors", when="+lmsensors") depends_on("cuda", when="+cuda") depends_on("cuda", when="+nvml") depends_on("bc", when="+cuda", type="build") depends_on("hsa-rocr-dev", when="+rocm") depends_on("rocprofiler-dev", when="+rocm") + depends_on("rocprofiler-sdk", when="+rocp_sdk") depends_on("llvm-amdgpu", when="+rocm") depends_on("rocm-openmp-extras", when="+rocm") depends_on("rocm-smi-lib", when="+rocm_smi") @@ -87,6 +92,8 @@ class Papi(AutotoolsPackage, ROCmPackage): conflicts("^cuda", when="@:5", msg="CUDA support for versions < 6.0.0 not implemented") # https://github.com/icl-utk-edu/papi/pull/205 conflicts("^cuda@12.4:", when="@:7.1") + # https://github.com/spack/spack-packages/pull/3028#issuecomment-3749940489 + conflicts("^cuda@13.1:") conflicts("%cce", when="@7.1:", msg="-ffree-form flag not recognized") conflicts("@=6.0.0", when="+static_tools", msg="Static tools cannot build on version 6.0.0") @@ -98,6 +105,7 @@ class Papi(AutotoolsPackage, ROCmPackage): sha256="64c57b3ad4026255238cc495df6abfacc41de391a0af497c27d0ac819444a1f8", when="@5.4.0:5.6%gcc@8:", ) + patch("perl-in-env.patch", when="@7.1.0:") # 7.1.0 erroneously adds -ffree-form for all fortran compilers patch("sysdetect-free-form-fix.patch", when="@7.1.0") patch("crayftn-fixes.patch", when="@6.0.0:%cce@9:") @@ -126,6 +134,8 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("AQLPROFILE_READ_API", "1") if "+rocm_smi" in spec: env.append_flags("CFLAGS", "-I%s/rocm_smi" % spec["rocm-smi-lib"].prefix.include) + if "+rocp_sdk" in spec: + env.set("PAPI_ROCP_SDK_ROOT", spec["rocprofiler-sdk"].prefix) # # Intel OneAPI LLVM cannot compile papi unless the DBG enviroment variable is cleared # @@ -136,7 +146,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: @when("@6.0.0:%oneapi") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("-c", "cd src && autoreconf -ivf") def configure_args(self): @@ -159,6 +169,8 @@ def configure_args(self): "nvml", "rocm", "rocm_smi", + "rocp_sdk", + "topdown", ], ) if components: @@ -176,6 +188,11 @@ def configure_args(self): if "+debug" in spec: options.append("--with-debug=yes") + if self.run_tests: + options.append("--with-tests=ctests") + else: + options.append("--with-tests=no") + return options @run_before("configure") @@ -225,7 +242,7 @@ def test_smoke(self): with set_env(PAPIROOT=self.prefix): make = self.spec["gmake"].command make() - exe_simple = which("simple") + exe_simple = which("simple", required=True) exe_simple() - exe_threads = which("threads") + exe_threads = which("threads", required=True) exe_threads() diff --git a/repos/spack_repo/builtin/packages/papi/perl-in-env.patch b/repos/spack_repo/builtin/packages/papi/perl-in-env.patch new file mode 100644 index 00000000000..628db9f4848 --- /dev/null +++ b/repos/spack_repo/builtin/packages/papi/perl-in-env.patch @@ -0,0 +1,10 @@ +diff --git a/src/maint/genpapifdef.pl b/src/maint/genpapifdef.pl +index 2b54ba7dc..5acfde0ff 100755 +--- a/src/maint/genpapifdef.pl ++++ b/src/maint/genpapifdef.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + + ## + ## Copyright (C) by Innovative Computing Laboratory diff --git a/repos/spack_repo/builtin/packages/papyrus/package.py b/repos/spack_repo/builtin/packages/papyrus/package.py index a22d9ff2a8a..bd7569e36db 100644 --- a/repos/spack_repo/builtin/packages/papyrus/package.py +++ b/repos/spack_repo/builtin/packages/papyrus/package.py @@ -73,10 +73,10 @@ def _build_and_run_kv_test(self, test): "-lm", ] - mpicxx = which(self.spec["mpi"].mpicxx) + mpicxx = which(self.spec["mpi"].mpicxx, required=True) mpicxx(*options) - mpirun = which(self.spec["mpi"].prefix.bin.mpirun) + mpirun = which(self.spec["mpi"].prefix.bin.mpirun, required=True) mpirun("-np", "4", test) def test_01_open_close(self): diff --git a/repos/spack_repo/builtin/packages/paraconf/package.py b/repos/spack_repo/builtin/packages/paraconf/package.py index f34b2a41c82..169c6ba9e00 100644 --- a/repos/spack_repo/builtin/packages/paraconf/package.py +++ b/repos/spack_repo/builtin/packages/paraconf/package.py @@ -12,40 +12,96 @@ class Paraconf(CMakePackage): Yaml tree on top of libyaml.""" homepage = "https://github.com/pdidev/paraconf" - url = "https://github.com/pdidev/paraconf/archive/1.0.0.tar.gz" + git = "https://github.com/pdidev/paraconf.git" + url = "https://github.com/pdidev/paraconf/archive/1.0.3.tar.gz" - license("BSD-3-Clause") + license("MIT", when="@1.0.2:") + license("BSD-3-Clause", when="@:1.0.1") maintainers("jbigot") - version("1.0.0", sha256="9336492c292088a7d97192f2b1fa306e11f6f32373ac75f29b9af7eecd5c0c11") - version("0.4.16", sha256="d896cb5bbf1c6b311f6bed44263548c799265e1f22d50475aecbddc80b0db982") - version("0.4.15", sha256="914befa7a8d6fbf2de3466e434a9ea20363900af5519859663a24c7a51bd26a6") - version("0.4.14", sha256="8a07bdf972ce137932b0d5e08036cf90db23b69f7eaabf52eb7d495d1da01d99") - version("0.4.13", sha256="28da96ba45bcb826a387488f283baa0c88bc0b00fa74f4c110d444c0b9a8030c") - version("0.4.12", sha256="bbbaf462ed23e9a64a4d521ee469ab723fcd86a6dda9a9d9b4dddfd1a58eef93") - version("0.4.11", sha256="35f4ba41eaf675ff16ad4f0722a9e2050ee63b073c7e3e67eb74439978599499") - version("0.4.10", sha256="0a0028354b131436e70af06c9e029f738ed771088e53633b2b5d1c8ee1276e83") - version("0.4.9", sha256="e99a01584e07e4d09b026fcd9a39500fbdbc3074a2598a4bc89f400825094c5a") + version("develop", branch="main", no_cache=True) + version("1.0.4", sha256="aa27493f7a256fe13a72d0ce85a2e6118a34dba67d96c0c74bd4fe68a82bdfba") + version("1.0.3", sha256="462c487b1c9681ad0fd04cde611a9b9d969c3ab2504e2573c5ca88d1b7afa203") + version("1.0.2", sha256="063c7e180c91f06543c4e05de39380882c05d1bd64881177b3b11ee831018a6f") + version( + "1.0.1", + sha256="93884d40c1b195ad71c64f4b5301040b8b6ea4a0cae8b21e89232290d781b1eb", + deprecated=True, + ) + version( + "1.0.0", + sha256="9336492c292088a7d97192f2b1fa306e11f6f32373ac75f29b9af7eecd5c0c11", + deprecated=True, + ) + version( + "0.4.16", + sha256="d896cb5bbf1c6b311f6bed44263548c799265e1f22d50475aecbddc80b0db982", + deprecated=True, + ) + version( + "0.4.15", + sha256="914befa7a8d6fbf2de3466e434a9ea20363900af5519859663a24c7a51bd26a6", + deprecated=True, + ) + version( + "0.4.14", + sha256="8a07bdf972ce137932b0d5e08036cf90db23b69f7eaabf52eb7d495d1da01d99", + deprecated=True, + ) + version( + "0.4.13", + sha256="28da96ba45bcb826a387488f283baa0c88bc0b00fa74f4c110d444c0b9a8030c", + deprecated=True, + ) + version( + "0.4.12", + sha256="bbbaf462ed23e9a64a4d521ee469ab723fcd86a6dda9a9d9b4dddfd1a58eef93", + deprecated=True, + ) + version( + "0.4.11", + sha256="35f4ba41eaf675ff16ad4f0722a9e2050ee63b073c7e3e67eb74439978599499", + deprecated=True, + ) + version( + "0.4.10", + sha256="0a0028354b131436e70af06c9e029f738ed771088e53633b2b5d1c8ee1276e83", + deprecated=True, + ) + version( + "0.4.9", + sha256="e99a01584e07e4d09b026fcd9a39500fbdbc3074a2598a4bc89f400825094c5a", + deprecated=True, + ) - variant("shared", default=True, description="Build shared libraries rather than static ones") + variant("example", default=False, description="Build example") variant("fortran", default=True, description="Enable Fortran support") variant("tests", default=False, description="Build tests") + variant("shared", default=True, description="Build shared libraries rather than static ones") depends_on("c", type="build") - depends_on("cxx", type="build") + depends_on("cxx", type="build", when="@1.0.3 +example") depends_on("fortran", type="build", when="+fortran") depends_on("cmake@3.5:", type=("build")) - depends_on("pkgconfig", type=("build")) + depends_on("cmake@3.10:", type=("build"), when="@1.0.1:") + depends_on("cmake@3.22:", type=("build"), when="@1.0.2:") + depends_on("pkgconfig", type=("build", "link")) depends_on("libyaml@0.1.7:", type=("link", "run")) + depends_on("libyaml@0.2.2:", type=("link", "run"), when="@1.0.2:") - root_cmakelists_dir = "paraconf" + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@:1.0.2"): + return "paraconf" + else: + return "" def cmake_args(self): - args = [ + return [ self.define_from_variant("BUILD_SHARED_LIBS", "shared"), - self.define_from_variant("BUILD_TESTING", "tests"), - self.define_from_variant("BUILD_FORTRAN", "fortran"), + self.define_from_variant("PARACONF_BUILD_EXAMPLE", "example"), + self.define_from_variant("PARACONF_BUILD_FORTRAN", "fortran"), + self.define_from_variant("PARACONF_BUILD_TESTING", "tests"), ] - return args diff --git a/repos/spack_repo/builtin/packages/paradiseo/package.py b/repos/spack_repo/builtin/packages/paradiseo/package.py index 37296b7ffe3..88293a6f437 100644 --- a/repos/spack_repo/builtin/packages/paradiseo/package.py +++ b/repos/spack_repo/builtin/packages/paradiseo/package.py @@ -28,7 +28,7 @@ class Paradiseo(CMakePackage): variant( "mpi", default=True, - description="Compile with parallel and distributed " "metaheuristics module", + description="Compile with parallel and distributed metaheuristics module", ) variant("smp", default=True, description="Compile with symmetric multi-processing module ") variant("edo", default=True, description="Compile with (Experimental) EDO module") diff --git a/repos/spack_repo/builtin/packages/parallel_netcdf/package.py b/repos/spack_repo/builtin/packages/parallel_netcdf/package.py index ece640728b4..944c64037a6 100644 --- a/repos/spack_repo/builtin/packages/parallel_netcdf/package.py +++ b/repos/spack_repo/builtin/packages/parallel_netcdf/package.py @@ -35,6 +35,7 @@ def url_for_version(self, version): return url version("master", branch="master") + version("1.14.1", sha256="6f0f7221006c211fce9ddd2c008796b8c69dd717b2ad1be0b4027fc328fd3220") version("1.14.0", sha256="575f189fb01c53f93b3d6ae0e506f46e19694807c81af0b9548e947995acf704") version("1.13.0", sha256="aba0f1c77a51990ba359d0f6388569ff77e530ee574e40592a1e206ed9b2c491") version("1.12.3", sha256="439e359d09bb93d0e58a6e3f928f39c2eae965b6c97f64e67cd42220d6034f77") @@ -213,7 +214,7 @@ def test_column_wise(self): ] with working_dir(test_dir): - mpicxx = which(self.spec["mpi"].prefix.bin.mpicxx) + mpicxx = which(self.spec["mpi"].prefix.bin.mpicxx, required=True) mpicxx(*options) mpiexe_list = [ @@ -227,9 +228,9 @@ def test_column_wise(self): try: args = ["--immediate=30"] if mpiexe == "srun" else [] args += ["-n", "1", test_exe] - exe = which(mpiexe) + exe = which(mpiexe, required=True) exe(*args) - rm = which("rm") + rm = which("rm", required=True) rm("-f", "column_wise") return diff --git a/repos/spack_repo/builtin/packages/parallelio/package.py b/repos/spack_repo/builtin/packages/parallelio/package.py index fba247b9738..21824c1c935 100644 --- a/repos/spack_repo/builtin/packages/parallelio/package.py +++ b/repos/spack_repo/builtin/packages/parallelio/package.py @@ -20,6 +20,8 @@ class Parallelio(CMakePackage): license("Apache-2.0") + version("2.6.8", sha256="ed6c92129b8a5e2d77587fd9656abc0aa7cf82a26a5ad21f8c6a9a79afa2c301") + version("2.6.6", sha256="e32e018a521d38c9424940c7cfa7e9b1931b605f3511ee7ab3a718b69faeeb04") version("2.6.5", sha256="6ae51aa3f76e597a3a840a292ae14eca21359b1a4ea75e476a93aa2088c0677a") version("2.6.4", sha256="cba53e4ca62ff76195b6f76374fbd1530fba18649c975ae2628ddec7fe55fb31") version("2.6.3", sha256="a483eb1cfa88ace8c6266e02741771c984e846dd732e86c72c3fdeae942b4299") @@ -63,6 +65,7 @@ class Parallelio(CMakePackage): depends_on("netcdf-c ~mpi", type="link", when="~mpi") depends_on("netcdf-fortran", type="link", when="+fortran") depends_on("parallel-netcdf", type="link", when="+pnetcdf") + depends_on("netcdf-c ~parallel-netcdf", type="link", when="~pnetcdf") resource( name="genf90", diff --git a/repos/spack_repo/builtin/packages/paraver/package.py b/repos/spack_repo/builtin/packages/paraver/package.py deleted file mode 100644 index 3a33aeae91b..00000000000 --- a/repos/spack_repo/builtin/packages/paraver/package.py +++ /dev/null @@ -1,78 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os - -from spack_repo.builtin.build_systems.generic import Package - -from spack.package import * - - -class Paraver(Package): - """ "A very powerful performance visualization and analysis tool - based on traces that can be used to analyse any information that - is expressed on its input trace format. Traces for parallel MPI, - OpenMP and other programs can be genereated with Extrae. - - Note: This package is deprecated in favor of wxparaver""" - - homepage = "https://tools.bsc.es/paraver" - url = "https://ftp.tools.bsc.es/wxparaver/wxparaver-4.6.3-src.tar.bz2" - - # NOTE: Paraver provides only latest version for download. - # Don't keep/add older versions. - version( - "4.6.3", - sha256="ac6025eec5419e1060967eab71dfd123e585be5b5f3ac3241085895dbeca255a", - deprecated=True, - ) - version( - "4.6.2", - sha256="74b85bf9e6570001d372b376b58643526e349b1d2f1e7633ca38bb0800ecf929", - deprecated=True, - ) - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - depends_on("boost@1.36: +serialization") - depends_on("wxwidgets@2.8:") # NOTE: using external for this one is usually simpler - depends_on("wxpropgrid@1.4:") - depends_on("libxml2") - depends_on("zlib-api") - depends_on("gmake", type="build") - - def install(self, spec, prefix): - os.chdir("ptools_common_files") - configure("--prefix=%s" % prefix) - make() - make("install") - - os.chdir("../paraver-kernel") - # "--with-extrae=%s" % spec['extrae'].prefix, - configure( - "--prefix=%s" % prefix, - "--with-ptools-common-files=%s" % prefix, - "--with-boost=%s" % spec["boost"].prefix, - "--with-boost-serialization=boost_serialization", - ) - make() - make("install") - - os.chdir("../paraver-toolset") - configure("--prefix=%s" % prefix) - make() - make("install") - - os.chdir("../wxparaver") - # "--with-extrae=%s" % spec['extrae'].prefix, - configure( - "--prefix=%s" % prefix, - "--with-paraver=%s" % prefix, - "--with-boost=%s" % spec["boost"].prefix, - "--with-boost-serialization=boost_serialization", - "--with-wxdir=%s" % spec["wxwidgets"].prefix.bin, - ) - make() - make("install") diff --git a/repos/spack_repo/builtin/packages/paraview/package.py b/repos/spack_repo/builtin/packages/paraview/package.py index 7ce6800c5d4..3a6bd884a08 100644 --- a/repos/spack_repo/builtin/packages/paraview/package.py +++ b/repos/spack_repo/builtin/packages/paraview/package.py @@ -17,6 +17,33 @@ IS_WINDOWS = sys.platform == "win32" +# This is (more or less) the mapping hard-coded in VTK-m logic +# see https://gitlab.kitware.com/vtk/vtk-m/-/blob/v2.1.0/CMake/VTKmDeviceAdapters.cmake?ref_type=tags#L221-247 +supported_cuda_archs = { + "20": "fermi", + "21": "fermi", + "30": "kepler", + "32": "kepler", + "35": "kepler", + "37": "kepler", + "50": "maxwel", + "52": "maxwel", + "53": "maxwel", + "60": "pascal", + "61": "pascal", + "62": "pascal", + "70": "volta", + "72": "volta", + "75": "turing", + "80": "ampere", + "86": "ampere", +} + + +# This is a list of paraview variants that require the viskores library. +viskores_dependency_variants = ["+cuda", "+fides", "+rocm"] + + class Paraview(CMakePackage, CudaPackage, ROCmPackage): """ParaView is an open-source, multi-platform data analysis and visualization application. This package includes the Catalyst @@ -37,49 +64,68 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): license("Apache-2.0") version("master", branch="master", submodules=True) - version( - "5.13.3", - sha256="3bd31bb56e07aa2af2a379895745bbc430c565518a363d935f2efc35b076df09", - preferred=True, - ) - version("5.13.2", sha256="4e116250f8e1a9c480f97c5696c9cd72b4d4998b039ca46da8b224f27445f13e") - version("5.13.1", sha256="a16503ce37b999c2967d84234596e7bf67ac98221851a288bb1399c7e1dc2004") - version("5.13.0", sha256="886f530bebd6b24c6a7f8a5f4b1afa72c53d4737ccaa4b5fd5946b4e5a758c91") + 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.12.0", sha256="d289afe7b48533e2ca4a39a3b48d3874bfe67cf7f37fdd2131271c57e64de20d") version("5.11.2", sha256="5c5d2f922f30d91feefc43b4a729015dbb1459f54c938896c123d2ac289c7a1e") - version("5.11.1", sha256="5cc2209f7fa37cd3155d199ff6c3590620c12ca4da732ef7698dec37fa8dbb34") - 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") + + with default_args(deprecated=True): + version( + "5.13.2", sha256="4e116250f8e1a9c480f97c5696c9cd72b4d4998b039ca46da8b224f27445f13e" + ) + version( + "5.13.1", sha256="a16503ce37b999c2967d84234596e7bf67ac98221851a288bb1399c7e1dc2004" + ) + version( + "5.13.0", sha256="886f530bebd6b24c6a7f8a5f4b1afa72c53d4737ccaa4b5fd5946b4e5a758c91" + ) + version( + "5.12.0", sha256="d289afe7b48533e2ca4a39a3b48d3874bfe67cf7f37fdd2131271c57e64de20d" + ) + version( + "5.11.1", sha256="5cc2209f7fa37cd3155d199ff6c3590620c12ca4da732ef7698dec37fa8dbb34" + ) + 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.6:") + variant("python", default=False, description="Enable Python support", when="@5.8:") 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") + variant("opengl2", default=True, description="Enable OpenGL2 backend", when="@5: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") variant("hdf5", default=False, description="Use external HDF5") variant("shared", default=True, description="Builds a shared version of the library") @@ -123,9 +169,10 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): variant( "use_vtkm", default="default", + when="@5.3.0:5.13", multi=False, values=("default", "on", "off"), - description="Build VTK-m with ParaView by setting PARAVIEW_USE_VTKM=ON,OFF." + description="Build VTK-m with ParaView." ' "default" lets the build_edition make the decision.' ' "on" or "off" will always override the build_edition.', ) @@ -133,8 +180,8 @@ 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="use_vtkm=off", msg="Fides needs VTK-m") - conflicts("+fides", when="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") @@ -144,14 +191,15 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): 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:") + 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 - conflicts("use_vtkm=on", when="@:5.3") + # 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( @@ -160,51 +208,6 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): msg="Use paraview@5.9.0 with %xl_r. Earlier versions are not able to build with xl.", ) - # CUDA ARCH - - # This is (more or less) the mapping hard-coded in VTK-m logic - # see https://gitlab.kitware.com/vtk/vtk-m/-/blob/v2.1.0/CMake/VTKmDeviceAdapters.cmake?ref_type=tags#L221-247 - supported_cuda_archs = { - "20": "fermi", - "21": "fermi", - "30": "kepler", - "32": "kepler", - "35": "kepler", - "37": "kepler", - "50": "maxwel", - "52": "maxwel", - "53": "maxwel", - "60": "pascal", - "61": "pascal", - "62": "pascal", - "70": "volta", - "72": "volta", - "75": "turing", - "80": "ampere", - "86": "ampere", - } - - # VTK-m and transitively ParaView does not support Tesla Arch - for _arch in ("10", "11", "12", "13"): - conflicts(f"cuda_arch={_arch}", when="+cuda", msg="ParaView requires cuda_arch >= 20") - - # Starting from cmake@3.18, CUDA architecture managament can be delegated to CMake. - # Hence, it is possible to rely on it instead of relying on custom logic updates from VTK-m for - # newer architectures (wrt mapping). - pattern = re.compile(r"\d+") - for _arch in CudaPackage.cuda_arch_values: - _number = re.match(pattern, _arch).group() - if int(_number) > 86: - conflicts("cmake@:3.17", when=f"cuda_arch={_arch}") - - # We only support one single Architecture - for _arch, _other_arch in itertools.permutations(CudaPackage.cuda_arch_values, 2): - conflicts( - "cuda_arch={0}".format(_arch), - when="cuda_arch={0}".format(_other_arch), - msg="Paraview only accepts one architecture value", - ) - depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated @@ -217,7 +220,6 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): # 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:3.7", when="@:5.7 +python", type=("build", "run")) depends_on("python@3:", when="@5.8:+python", type=("build", "run")) depends_on("py-numpy", when="+python", type=("build", "run")) @@ -236,27 +238,112 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): depends_on("mpi", when="+mpi") conflicts("mpi", when="~mpi") - depends_on("qt@:4", when="@:5.2.0 +qt") - depends_on("qt+sql", when="+qt") - - # https://discourse.paraview.org/t/paraview-5-9-and-minimum-recommended-qt-version/5333 - depends_on("qt@5.12:5 +sql", when="@5.9:5.13 +qt") - - with when("+qt"): - depends_on("qt+opengl", when="@5.3.0: +opengl2") - depends_on("qt~opengl", when="@5.3.0: ~opengl2") - - depends_on("gl@3.2:", when="+opengl2") - depends_on("gl@1.2:", when="~opengl2") - depends_on("glew") - depends_on("libxt", when="platform=linux ^[virtuals=gl] glx") - - for plat in ["linux", "darwin", "freebsd"]: + # Handle X11 dependencies + # X is only used on Unix like platforms + conflicts("glx", when="~x") + # When on linux, X is required for Qt + for plat in ["linux", "freebsd"]: with when(f"platform={plat}"): - requires( - "^[virtuals=gl] glx", when="+qt", msg="Qt support requires GLX on non Windows" + requires("+x", when="+qt", msg="Qt support requires GLX on Linux/FreeBSD") + + with when("+x"): + depends_on("libxt", when="@:5.12") + depends_on("libx11") + depends_on("libxcursor") + # When Qt and X are enabled, GLX is required in the runtime + 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 + # build/link time. + 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+sql") + depends_on("qt+opengl", when="@5.3.0:5 +opengl2") + depends_on("qt~opengl", when="@5.3.0:5 ~opengl2") + # Headless rendering not supported with Qt + conflicts("osmesa") + conflicts("egl") + + depends_on("gl@3.2:", when="+opengl2") + depends_on("gl@1.2:", when="~opengl2") + depends_on("glew") + + # CUDA ARCH + + # VTK-m and transitively ParaView does not support Tesla Arch + for _arch in ("10", "11", "12", "13"): + conflicts(f"cuda_arch={_arch}", when="+cuda", msg="ParaView requires cuda_arch >= 20") + + # Starting from cmake@3.18, CUDA architecture managament can be delegated to CMake. + # Hence, it is possible to rely on it instead of relying on custom logic updates from + # VTK-m for newer architectures (wrt mapping). + pattern = re.compile(r"\d+") + for _arch in CudaPackage.cuda_arch_values: + _number = re.match(pattern, _arch).group() + if int(_number) > 86: + conflicts("cmake@:3.17", when=f"cuda_arch={_arch}") + + # We only support one single Architecture + for _arch, _other_arch in itertools.permutations(CudaPackage.cuda_arch_values, 2): + conflicts( + "cuda_arch={0}".format(_arch), + when="cuda_arch={0}".format(_other_arch), + msg="Paraview only accepts one architecture value", + ) + + # Dependencies for vendored VTK-m + depends_on("hip@5.2:", when="+rocm") + # CUDA thrust is already include in the CUDA pkg + depends_on("rocthrust", when="@5.13: +rocm ^cmake@3.24:") + for target in ROCmPackage.amdgpu_targets: + depends_on( + "kokkos@:3.7 +rocm amdgpu_target={0}".format(target), + when="+rocm amdgpu_target={0}".format(target), ) + with when("@6:"): + # ParaView 6 and later will not support Spack builds with Qt5. + with when("+qt"): + depends_on("qt-base@6.9.0 +accessibility+gui+opengl+sql+network") + depends_on("qt-tools+assistant") + depends_on("qt-5compat") + depends_on("qt-svg") + depends_on("libxslt") + + depends_on("scnlib") + + # ParaView@6: and later will depend on OSMesa as a fallback for + # OpenGL. + # The search order for GL is: + # * the system rendering default (WGL/AGL/GLX) + # * EGL + # * OSMesa (guarenteed to exist and work on all systems) + depends_on("osmesa", type=("link", "run"), when="+osmesa_fallback") + + # Depend on Viskores when it is needed + for vk_variant in viskores_dependency_variants: + depends_on("viskores +vtktypes +64bitids +doubleprecision", when=f"{vk_variant}") + depends_on("viskores +fpic", when=f"+shared {vk_variant}") + + with when("+fides"): + depends_on("fides@1.3:") + depends_on("fides +mpi", when="+mpi") + + with when("+cuda"): + # Kokkos vs Viskores Native CUDA is intentionally left configurable + depends_on("viskores +cuda") + for _arch in CudaPackage.cuda_arch_values: + depends_on(f"viskores cuda_arch={_arch}", when=f"cuda_arch={_arch}") + + with when("+rocm"): + depends_on("viskores +rocm") + for target in ROCmPackage.amdgpu_targets: + depends_on(f"viskores amdgpu_target={target}", when=f"amdgpu_target={target}") + depends_on("ospray@2.1:2", when="+raytracing") depends_on("openimagedenoise", when="+raytracing") depends_on("ospray +mpi", when="+raytracing +mpi") @@ -266,7 +353,7 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): depends_on("bzip2") depends_on("double-conversion") depends_on("expat") - depends_on("eigen@3:") + depends_on("eigen@3") depends_on("freetype") depends_on("freetype@:2.10.2", when="@:5.8") # depends_on('hdf5+mpi', when='+mpi') @@ -287,6 +374,10 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): depends_on("libtheora") depends_on("libtiff") depends_on("netcdf-c") + 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("pegtl@2.8.3") depends_on("protobuf@3.4:") # Paraview 5.10 can't build with protobuf > 3.18 @@ -298,23 +389,15 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): # 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 # its C++ standard level. - depends_on("protobuf@3.4:3.21", when="@5.8:%gcc") - depends_on("protobuf@3.4:3.21", when="@5.8:%clang") - depends_on("protobuf@3.4:3.21", when="@5.11:") - depends_on("protobuf@3.4:3.21", when="@master") + 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="@5.11:") + depends_on("protobuf@3.4:21", when="@master") depends_on("libxml2") depends_on("lz4") depends_on("xz") depends_on("zlib-api") depends_on("libcatalyst@2:", when="+libcatalyst") - depends_on("hip@5.2:", when="+rocm") - # CUDA thrust is already include in the CUDA pkg - depends_on("rocthrust", when="@5.13: +rocm ^cmake@3.24:") - for target in ROCmPackage.amdgpu_targets: - depends_on( - "kokkos@:3.7 +rocm amdgpu_target={0}".format(target), - when="+rocm amdgpu_target={0}".format(target), - ) # Older builds of pugi export their symbols differently, # and pre-5.9 is unable to handle that. @@ -337,7 +420,7 @@ 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="+cuda") + depends_on("cuda@:11", when="@5.3:5.12 +cuda") patch("stl-reader-pv440.patch", when="@4.4.0") @@ -396,6 +479,23 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): # https://github.com/Kitware/VTK-m/commit/48e385af319543800398656645327243a29babfb patch("vtkm-fix-problems-in-class-member-names.patch", when="@5.13.2 %oneapi@2025:") + # Vtk's findpegtl's include search is wrong: https://gitlab.kitware.com/vtk/vtk/-/issues/17876 + patch("pegtl_tao_find.patch", when="platform=windows") + + # https://gitlab.kitware.com/paraview/paraview/-/merge_requests/7593 + patch("paraview-cdireader-lazy.patch", when="@:6.0 +cdi") + + # Fix for linking external Fides library + # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/13130 + patch("vtk-external-fides-pv61.patch", working_dir="VTK", when="@6.0:6.1") + + # Fixes for linking external Viskores library + # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/13094 + # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/13127 + patch("vtk-fine-grained-viskores-targets-pv61.patch", working_dir="VTK", when="@6.0:6.1") + patch("vtk-consolidate-viskores-wrapping-pv60.patch", working_dir="VTK", when="@6.0") + patch("vtk-consolidate-viskores-wrapping-pv61.patch", working_dir="VTK", when="@6.1") + generator("ninja", "make", default="ninja") # https://gitlab.kitware.com/paraview/paraview/-/issues/21223 conflicts("generator=ninja", when="%xl") @@ -511,29 +611,24 @@ def variant_bool(feature, on="ON", off="OFF"): return on return off - def use_x11(): - """Return false if osmesa or egl are requested""" - if ( - spec.satisfies("^[virtuals=gl] osmesa") - or spec.satisfies("^[virtuals=gl] egl") - or spec.satisfies("platform=windows") - ): - return "OFF" - return "ON" - - rendering = variant_bool("+opengl2", "OpenGL2", "OpenGL") includes = variant_bool("+development_files") cmake_args = [ - "-DVTK_OPENGL_HAS_OSMESA:BOOL=%s" % variant_bool("^[virtuals=gl] osmesa"), - "-DVTK_USE_X:BOOL=%s" % use_x11(), "-DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=%s" % includes, "-DBUILD_TESTING:BOOL=OFF", "-DOpenGL_GL_PREFERENCE:STRING=LEGACY", + 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"), ] + if spec.satisfies("@:5"): + cmake_args.append( + "-DVTK_OPENGL_HAS_OSMESA:BOOL=%s" % variant_bool("^[virtuals=gl] osmesa") + ) + else: + cmake_args.append(self.define_from_variant("VTK_OPENGL_HAS_OSMESA", "osmesa_fallback")) + if spec.satisfies("^[virtuals=gl] egl"): cmake_args.append("-DVTK_OPENGL_HAS_EGL:BOOL=ON") @@ -567,8 +662,6 @@ def use_x11(): "-DPARAVIEW_BUILD_WITH_EXTERNAL=ON", ] ) - if spec.satisfies("%cce"): - cmake_args.append("-DVTK_PYTHON_OPTIONAL_LINK:BOOL=OFF") else: # @5.7: cmake_args.extend( [ @@ -588,6 +681,7 @@ def use_x11(): ] ) else: + rendering = variant_bool("+opengl2", "OpenGL2", "OpenGL") cmake_args.extend( [ "-DPARAVIEW_BUILD_EXAMPLES:BOOL=%s" % variant_bool("+examples"), @@ -615,7 +709,12 @@ def use_x11(): # The assumed qt version changed to QT5 (as of paraview 5.2.1), # so explicitly specify which QT major version is actually being used if spec.satisfies("+qt"): - cmake_args.extend(["-DPARAVIEW_QT_VERSION=%s" % spec["qt"].version[0]]) + if spec.satisfies("^qt"): + cmake_args.extend(["-DPARAVIEW_QT_VERSION=%s" % spec["qt"].version[0]]) + else: + cmake_args.extend(["-DPARAVIEW_QT_VERSION=%s" % spec["qt-base"].version[0]]) + cmake_args.extend(["-DVTK_QT_VERSION=%s" % spec["qt-base"].version[0]]) + if IS_WINDOWS: # Windows does not currently support Qt Quick cmake_args.append("-DVTK_MODULE_ENABLE_VTK_GUISupportQtQuick:STRING=NO") @@ -633,6 +732,7 @@ def use_x11(): [ "-DPARAVIEW_%s_PYTHON:BOOL=ON" % py_use_opt, "-D%s_PYTHON_VERSION:STRING=%d" % (py_ver_opt, py_ver_val), + "-DVTK_PYTHON_OPTIONAL_LINK:BOOL=OFF", ] ) if spec.satisfies("@:5.6"): @@ -657,11 +757,22 @@ def use_x11(): 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:") and spec.variants["use_vtkm"].value != "default": + if spec.satisfies("@5.3.0:5") and spec.variants["use_vtkm"].value != "default": cmake_args.append( "-DPARAVIEW_USE_VTKM:BOOL=%s" % spec.variants["use_vtkm"].value.upper() ) + # Viskores added to ParaView in 6.0.0 and up + if spec.satisfies("@6:"): + use_viskores = False + for variant in viskores_dependency_variants: + use_viskores |= spec.satisfies(variant) + if use_viskores: + cmake_args.append("-DPARAVIEW_USE_VISKORES:BOOL=ON") + cmake_args.append("-DVTK_MODULE_USE_EXTERNAL_VTK_vtkviskores:BOOL=ON") + 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:"): @@ -670,7 +781,7 @@ def use_x11(): 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("+cuda"): + if spec.satisfies("@:5 +cuda"): if spec["cmake"].satisfies("@3.18:"): cmake_args.append( self.define( @@ -738,14 +849,22 @@ def use_x11(): if "+advanced_debug" in spec: cmake_args.append("-DVTK_DEBUG_LEAKS:BOOL=ON") - if spec.satisfies("@5.11:"): + # Configure ROCM/Kokkos + if spec.satisfies("@5.11:5"): cmake_args.append("-DPARAVIEW_USE_HIP:BOOL=%s" % variant_bool("+rocm")) - if "+rocm" in spec: - archs = spec.variants["amdgpu_target"].value - if archs != "none": - arch_str = ",".join(archs) - cmake_args.append("-DCMAKE_HIP_ARCHITECTURES=%s" % arch_str) - cmake_args.append("-DKokkos_CXX_COMPILER=%s" % spec["hip"].hipcc) + elif spec.satisfies("@6:"): + cmake_args.append("-DPARAVIEW_USE_KOKKOS:BOOL=%s" % variant_bool("+rocm")) + + if "+rocm" in spec: + if spec.satisfies("@6:"): + cmake_args.append("-DPARAVIEW_KOKKOS_BACKEND:STRING=HIP") + + archs = spec.variants["amdgpu_target"].value + + if archs != "none": + arch_str = ",".join(archs) + cmake_args.append("-DCMAKE_HIP_ARCHITECTURES=%s" % arch_str) + cmake_args.append("-DKokkos_CXX_COMPILER=%s" % spec["hip"].hipcc) if "+catalyst" in spec: cmake_args.append("-DVTK_MODULE_ENABLE_ParaView_Catalyst=YES") diff --git a/repos/spack_repo/builtin/packages/paraview/paraview-cdireader-lazy.patch b/repos/spack_repo/builtin/packages/paraview/paraview-cdireader-lazy.patch new file mode 100644 index 00000000000..2e3132eb8d1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/paraview/paraview-cdireader-lazy.patch @@ -0,0 +1,13 @@ +diff --git a/Plugins/CDIReader/Reader/vtkCDIReader.cxx b/Plugins/CDIReader/Reader/vtkCDIReader.cxx +index 1561f047240ee9efc7dcf7688bf32b2ad43c22e5..89e869b68bc623e81d4315d6aefcf088c5789884 100644 +--- a/Plugins/CDIReader/Reader/vtkCDIReader.cxx ++++ b/Plugins/CDIReader/Reader/vtkCDIReader.cxx +@@ -252,6 +252,8 @@ vtkCDIReader::vtkCDIReader() + + vtkDebugMacro("MAX_VARS:" << MAX_VARS); + vtkDebugMacro("Created vtkCDIReader"); ++ ++ cdiDefGlobal("NETCDF_LAZY_GRID_LOAD", true); + } + + //---------------------------------------------------------------------------- diff --git a/repos/spack_repo/builtin/packages/paraview/pegtl_tao_find.patch b/repos/spack_repo/builtin/packages/paraview/pegtl_tao_find.patch new file mode 100644 index 00000000000..0382e6f850b --- /dev/null +++ b/repos/spack_repo/builtin/packages/paraview/pegtl_tao_find.patch @@ -0,0 +1,20 @@ +diff --git a/VTK/CMake/FindPEGTL.cmake b/VTK/CMake/FindPEGTL.cmake +index fbc3e15a..88d995b9 100644 +--- a/VTK/CMake/FindPEGTL.cmake ++++ b/VTK/CMake/FindPEGTL.cmake +@@ -21,13 +21,12 @@ + # PEGTL::PEGTL + + find_path(PEGTL_INCLUDE_DIR +- NAMES pegtl/version.hpp +- PATH_SUFFIXES tao ++ NAMES tao/pegtl/version.hpp + DOC "Path to PEGTL headers") + mark_as_advanced(PEGTL_INCLUDE_DIR) + + if (PEGTL_INCLUDE_DIR) +- file(STRINGS "${PEGTL_INCLUDE_DIR}/pegtl/version.hpp" _pegtl_version_header ++ file(STRINGS "${PEGTL_INCLUDE_DIR}/tao/pegtl/version.hpp" _pegtl_version_header + REGEX "TAO_PEGTL_VERSION") + string(REGEX MATCH "define[ \t]+TAO_PEGTL_VERSION[ \t]+\"([0-9.]+)\"" _pegtl_version_match "${_pegtl_version_header}") + set(PEGTL_VERSION "${CMAKE_MATCH_1}") diff --git a/repos/spack_repo/builtin/packages/paraview/vtk-consolidate-viskores-wrapping-pv60.patch b/repos/spack_repo/builtin/packages/paraview/vtk-consolidate-viskores-wrapping-pv60.patch new file mode 100644 index 00000000000..07c48fab282 --- /dev/null +++ b/repos/spack_repo/builtin/packages/paraview/vtk-consolidate-viskores-wrapping-pv60.patch @@ -0,0 +1,317 @@ +diff --git a/Accelerators/Vtkm/Core/CMakeLists.txt b/Accelerators/Vtkm/Core/CMakeLists.txt +index 26de392719..386beb8ca1 100644 +--- a/Accelerators/Vtkm/Core/CMakeLists.txt ++++ b/Accelerators/Vtkm/Core/CMakeLists.txt +@@ -36,34 +36,7 @@ vtk_module_set_property(VTK::AcceleratorsVTKmCore + VALUE viskores_pool) + + _vtk_module_real_target(vtkm_accel_target VTK::AcceleratorsVTKmCore) +-viskores_add_target_information(${vtkm_accel_target} +- DROP_UNUSED_SYMBOLS +- EXTENDS_VISKORES +- MODIFY_CUDA_FLAGS +- DEVICE_SOURCES ${sources}) +- +-list(TRANSFORM nowrap_classes APPEND ".cxx" OUTPUT_VARIABLE device_sources) +-if(VTK_USE_KOKKOS) +- add_compile_definitions(VTK_USE_KOKKOS) +-endif() +-if (TARGET VTK::vtkviskores_cuda) +- # 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") +- set_source_files_properties(${device_sources} PROPERTIES LANGUAGE CUDA) +- vtk_module_set_properties(VTK::AcceleratorsVTKmCore CUDA_SEPARABLE_COMPILATION ON) +- +-elseif (TARGET VTK::vtkviskores_kokkos_cuda) +- set_source_files_properties(${device_sources} PROPERTIES LANGUAGE CUDA) +- kokkos_compilation(SOURCE ${device_sources}) +- +-elseif (TARGET VTK::vtkviskores_kokkos_hip) +- set_source_files_properties(${device_sources} PROPERTIES LANGUAGE HIP) +- kokkos_compilation(SOURCE ${device_sources}) +- +-endif () ++vtk_add_viskores_device_target_information(${vtkm_accel_target}) + + if (MSVC) + set(msvc_warning_flags +diff --git a/Accelerators/Vtkm/Core/Testing/Cxx/CMakeLists.txt b/Accelerators/Vtkm/Core/Testing/Cxx/CMakeLists.txt +index 1a32f156a7..c0c04adee7 100644 +--- a/Accelerators/Vtkm/Core/Testing/Cxx/CMakeLists.txt ++++ b/Accelerators/Vtkm/Core/Testing/Cxx/CMakeLists.txt +@@ -6,32 +6,4 @@ vtk_add_test_cxx(vtkAcceleratorsVTKmCoreCxxTests tests + TestVTKMImplicitDataArray.cxx,NO_VALID + ) + +-if (TARGET VTK::vtkviskores_cuda OR TARGET VTK::vtkviskores_kokkos_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 vtkAcceleratorsVTKmCore +- #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(vtkAcceleratorsVTKmCoreCxxTests tests) +- +-if (TARGET VTK::vtkviskores_cuda) +- # When cuda is enabled VTK::AcceleratorsVTKmCore is built statically but with fpic +- # enabled so the tests are also built with fpic enabled +- set_target_properties(vtkAcceleratorsVTKmCoreCxxTests PROPERTIES +- CUDA_ARCHITECTURES OFF +- POSITION_INDEPENDENT_CODE ON +- ) +-endif() +diff --git a/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.cxx b/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.cxx +index 6cecef3bb9..33d787e38b 100644 +--- a/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.cxx ++++ b/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.cxx +@@ -9,8 +9,6 @@ + VTK_ABI_NAMESPACE_BEGIN + void InitializeVTKm() + { +-// Kokkos enabled devices needs to be initialized +-#ifdef VTK_USE_KOKKOS + static bool isInitialized{ false }; + if (!isInitialized) + { +@@ -19,7 +17,6 @@ void InitializeVTKm() + viskores::cont::Initialize(argc, const_cast(argv)); + isInitialized = true; + } +-#endif + } + + vtkmInitializer::vtkmInitializer() +diff --git a/Accelerators/Vtkm/DataModel/CMakeLists.txt b/Accelerators/Vtkm/DataModel/CMakeLists.txt +index b653c23013..6a71610f4d 100644 +--- a/Accelerators/Vtkm/DataModel/CMakeLists.txt ++++ b/Accelerators/Vtkm/DataModel/CMakeLists.txt +@@ -43,34 +43,7 @@ vtk_module_set_property(VTK::AcceleratorsVTKmDataModel + PROPERTY JOB_POOL_COMPILE + VALUE viskores_pool) + _vtk_module_real_target(vtkm_accel_target VTK::AcceleratorsVTKmDataModel) +-viskores_add_target_information(${vtkm_accel_target} +- EXTENDS_VISKORES +- MODIFY_CUDA_FLAGS +- DEVICE_SOURCES ${sources}) +- +-if (TARGET VTK::vtkviskores_cuda) +- # 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") +- +- list(TRANSFORM nowrap_classes APPEND ".cxx" OUTPUT_VARIABLE nowrap_sources) +- set(cuda_impl ${nowrap_sources} vtkmDataSet.cxx) +- set_source_files_properties(${cuda_impl} PROPERTIES LANGUAGE CUDA) +- +- vtk_module_set_properties(VTK::AcceleratorsVTKmDataModel CUDA_SEPARABLE_COMPILATION ON) +- +- vtk_module_compile_options(VTK::AcceleratorsVTKmDataModel +- PUBLIC $<$:-Xcudafe --diag_suppress=extra_semicolon>) +- +-elseif (TARGET VTK::vtkviskores_kokkos_cuda) +- list(TRANSFORM nowrap_classes APPEND ".cxx" OUTPUT_VARIABLE nowrap_sources) +- set(cuda_impl ${nowrap_sources} vtkmDataSet.cxx) +- set_source_files_properties(${cuda_impl} PROPERTIES LANGUAGE CUDA) +- kokkos_compilation(SOURCE ${cuda_impl}) +- +-endif() ++vtk_add_viskores_device_target_information(${vtkm_accel_target}) + + if (MSVC) + set(msvc_warning_flags +diff --git a/Accelerators/Vtkm/DataModel/Testing/Cxx/CMakeLists.txt b/Accelerators/Vtkm/DataModel/Testing/Cxx/CMakeLists.txt +index a105aaa49e..fdf8bc4580 100644 +--- a/Accelerators/Vtkm/DataModel/Testing/Cxx/CMakeLists.txt ++++ b/Accelerators/Vtkm/DataModel/Testing/Cxx/CMakeLists.txt +@@ -15,34 +15,6 @@ vtk_add_test_cxx(vtkAcceleratorsVTKmDataModelCxxTests tests + TestVTKMDataSet.cxx,NO_VALID + ) + +-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 vtkAcceleratorsVTKmDataModel +- #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(vtkAcceleratorsVTKmDataModelCxxTests tests + RENDERING_FACTORY + ) +- +-if (TARGET VTK::vtkviskores_cuda) +- # When cuda is enabled VTK::AcceleratorsVTKmDataModel is built statically but with fpic +- # enabled so the tests are also built with fpic enabled +- set_target_properties(vtkAcceleratorsVTKmDataModelCxxTests PROPERTIES +- CUDA_ARCHITECTURES OFF +- POSITION_INDEPENDENT_CODE ON +- ) +-endif() +diff --git a/Accelerators/Vtkm/Filters/CMakeLists.txt b/Accelerators/Vtkm/Filters/CMakeLists.txt +index cd16f6d946..19b41df693 100644 +--- a/Accelerators/Vtkm/Filters/CMakeLists.txt ++++ b/Accelerators/Vtkm/Filters/CMakeLists.txt +@@ -104,31 +104,7 @@ vtk_module_definitions(VTK::AcceleratorsVTKmFilters + PUBLIC "VTK_ENABLE_VISKORES_OVERRIDES=$") + + _vtk_module_real_target(vtkm_accel_target VTK::AcceleratorsVTKmFilters) +-viskores_add_target_information(${vtkm_accel_target} +- EXTENDS_VISKORES +- MODIFY_CUDA_FLAGS +- DEVICE_SOURCES ${sources}) +- +-if (TARGET VTK::vtkviskores_cuda) +- # 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") +- +- list(TRANSFORM classes APPEND ".cxx" OUTPUT_VARIABLE cuda_impl) +- set_source_files_properties(${cuda_impl} PROPERTIES LANGUAGE CUDA) +- vtk_module_set_properties(VTK::AcceleratorsVTKmFilters CUDA_SEPARABLE_COMPILATION ON) +- +- vtk_module_compile_options(VTK::AcceleratorsVTKmFilters +- PUBLIC $<$:-Xcudafe --diag_suppress=extra_semicolon>) +-elseif (TARGET VTK::vtkviskores_kokkos_cuda) +- +- list(TRANSFORM classes APPEND ".cxx" OUTPUT_VARIABLE cuda_impl) +- set_source_files_properties(${cuda_impl} PROPERTIES LANGUAGE CUDA) +- kokkos_compilation(SOURCE ${cuda_impl}) +- +-endif() ++vtk_add_viskores_device_target_information(${vtkm_accel_target}) + + 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 955747836f..8b8085026a 100644 +--- a/Accelerators/Vtkm/Filters/Testing/Cxx/CMakeLists.txt ++++ b/Accelerators/Vtkm/Filters/Testing/Cxx/CMakeLists.txt +@@ -27,32 +27,6 @@ vtk_add_test_cxx(vtkAcceleratorsVTKmFiltersCxxTests tests + TestVTKMWarpVector.cxx + ) + +-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 f54368c4af..be201a912f 100644 +--- a/IO/CatalystConduit/CMakeLists.txt ++++ b/IO/CatalystConduit/CMakeLists.txt +@@ -36,26 +36,8 @@ configure_file( + "${CMAKE_CURRENT_BINARY_DIR}/vtkDeviceMemoryType.h" + @ONLY) + +- +-if (TARGET VTK::vtkviskores_cuda) +- # 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") +- +- set_source_files_properties(${classes_cuda} PROPERTIES LANGUAGE CUDA) +- +- vtk_module_set_properties(VTK::IOCatalystConduit +- CUDA_SEPARABLE_COMPILATION ON) +- +- vtk_module_compile_options(VTK::IOCatalystConduit +- PUBLIC $<$:-Xcudafe --diag_suppress=extra_semicolon>) +- +- find_package(CUDAToolkit REQUIRED) +- vtk_module_link(VTK::IOCatalystConduit PRIVATE CUDA::cudart) +-endif () +- ++_vtk_module_real_target(vtkm_accel_target VTK::IOCatalystConduit) ++vtk_add_viskores_device_target_information(${vtkm_accel_target}) + + vtk_add_test_mangling(VTK::IOCatalystConduit) + add_subdirectory(Catalyst) +diff --git a/ThirdParty/viskores/CMakeLists.txt b/ThirdParty/viskores/CMakeLists.txt +index dd57459345..d85153c679 100644 +--- a/ThirdParty/viskores/CMakeLists.txt ++++ b/ThirdParty/viskores/CMakeLists.txt +@@ -16,7 +16,7 @@ vtk_module_third_party( + STANDARD_INCLUDE_DIRS + EXTERNAL + PACKAGE Viskores +- TARGETS viskores::cont viskores::cont_testing viskores::filter viskores::worklet ++ TARGETS viskores::cont viskores::cont_testing viskores::filter + VERSION "1.0.0" + STANDARD_INCLUDE_DIRS) + +@@ -47,3 +47,19 @@ foreach (viskores_target IN LISTS viskores_specific_targets) + _vtk_module_install("vtkviskores_${viskores_target}") + add_library("VTK::vtkviskores_${viskores_target}" ALIAS "vtkviskores_${viskores_target}") + endforeach () ++ ++# If a VTK library contains Viskores worklets or other Viskores device code, the files must be ++# declared as the proper language and the library must link to VTK::vtkviskores_worklet. This ++# function sets this up. Use this function by giving it the name of a target. ++function(vtk_add_viskores_device_target_information target) ++ target_link_libraries(${target} PRIVATE VTK::vtkviskores_worklet) ++ get_target_property(sources ${target} SOURCES) ++ list(FILTER sources INCLUDE REGEX "\\.(cpp|cxx|cc|C)$") ++ if(TARGET VTK::vtkviskores_cuda OR TARGET VTK::vtkviskores_kokkos_cuda) ++ set_source_files_properties(${sources} PROPERTIES LANGUAGE CUDA) ++ endif() ++ if(TARGET VTK::vtkviskores_kokkos_hip) ++ set_source_files_properties(${sources} PROPERTIES LANGUAGE HIP) ++ kokkos_compilation(SOURCE ${sources}) ++ endif() ++endfunction() 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 new file mode 100644 index 00000000000..5c6c5281ab6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/paraview/vtk-consolidate-viskores-wrapping-pv61.patch @@ -0,0 +1,345 @@ +From 9f09ea924e0f69fdbf4b504c99c4283a7daf3252 Mon Sep 17 00:00:00 2001 +From: Kenneth Moreland +Date: Mon, 13 Apr 2026 11:35:34 -0400 +Subject: [PATCH] Consolidate configuration of Viskores device code + +When compiling Viskores device code, extra CMake configuration must +be done to set the appropriate language and linking options. The +previous setup was repeated several times through the code and contained +lots of obsolete configuration. This change consolidates and cleans up +the configuration. + +This also fixes an issue where flags for the device compiler could be +given to the standard C++ compiler, which might not support the same +flags. +--- + Accelerators/Vtkm/Core/CMakeLists.txt | 32 +------------------ + .../Vtkm/Core/Testing/Cxx/CMakeLists.txt | 28 ---------------- + .../Vtkm/Core/vtkmlib/vtkmInitializer.cxx | 3 -- + 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(-) + +diff --git a/Accelerators/Vtkm/Core/CMakeLists.txt b/Accelerators/Vtkm/Core/CMakeLists.txt +index 0501715be03..3e863bc7b4c 100644 +--- a/Accelerators/Vtkm/Core/CMakeLists.txt ++++ b/Accelerators/Vtkm/Core/CMakeLists.txt +@@ -37,37 +37,7 @@ vtk_module_set_property(VTK::AcceleratorsVTKmCore + VALUE viskores_pool) + + _vtk_module_real_target(vtkm_accel_target VTK::AcceleratorsVTKmCore) +-viskores_add_target_information(${vtkm_accel_target} +- DROP_UNUSED_SYMBOLS +- EXTENDS_VISKORES +- MODIFY_CUDA_FLAGS +- DEVICE_SOURCES ${sources}) +- +-list(TRANSFORM nowrap_classes APPEND ".cxx" OUTPUT_VARIABLE device_sources) +-if(VTK_USE_KOKKOS) +- add_compile_definitions(VTK_USE_KOKKOS) +-endif() +-if (TARGET VTK::vtkviskores_cuda) +- # 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") +- set_source_files_properties(${device_sources} PROPERTIES LANGUAGE CUDA) +- vtk_module_set_properties(VTK::AcceleratorsVTKmCore CUDA_SEPARABLE_COMPILATION ON) +- +- find_package(CUDAToolkit REQUIRED) +- vtk_module_link(VTK::AcceleratorsVTKmCore PRIVATE CUDA::cudart) +- +-elseif (TARGET VTK::vtkviskores_kokkos_cuda) +- set_source_files_properties(${device_sources} PROPERTIES LANGUAGE CUDA) +- kokkos_compilation(SOURCE ${device_sources}) +- +-elseif (TARGET VTK::vtkviskores_kokkos_hip) +- set_source_files_properties(${device_sources} PROPERTIES LANGUAGE HIP) +- kokkos_compilation(SOURCE ${device_sources}) +- +-endif () ++vtk_add_viskores_device_target_information(${vtkm_accel_target}) + + if (MSVC) + set(msvc_warning_flags +diff --git a/Accelerators/Vtkm/Core/Testing/Cxx/CMakeLists.txt b/Accelerators/Vtkm/Core/Testing/Cxx/CMakeLists.txt +index 1a32f156a73..c0c04adee7e 100644 +--- a/Accelerators/Vtkm/Core/Testing/Cxx/CMakeLists.txt ++++ b/Accelerators/Vtkm/Core/Testing/Cxx/CMakeLists.txt +@@ -6,32 +6,4 @@ vtk_add_test_cxx(vtkAcceleratorsVTKmCoreCxxTests tests + TestVTKMImplicitDataArray.cxx,NO_VALID + ) + +-if (TARGET VTK::vtkviskores_cuda OR TARGET VTK::vtkviskores_kokkos_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 vtkAcceleratorsVTKmCore +- #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(vtkAcceleratorsVTKmCoreCxxTests tests) +- +-if (TARGET VTK::vtkviskores_cuda) +- # When cuda is enabled VTK::AcceleratorsVTKmCore is built statically but with fpic +- # enabled so the tests are also built with fpic enabled +- set_target_properties(vtkAcceleratorsVTKmCoreCxxTests PROPERTIES +- CUDA_ARCHITECTURES OFF +- POSITION_INDEPENDENT_CODE ON +- ) +-endif() +diff --git a/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.cxx b/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.cxx +index 6cecef3bb9f..33d787e38b2 100644 +--- a/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.cxx ++++ b/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.cxx +@@ -9,8 +9,6 @@ + VTK_ABI_NAMESPACE_BEGIN + void InitializeVTKm() + { +-// Kokkos enabled devices needs to be initialized +-#ifdef VTK_USE_KOKKOS + static bool isInitialized{ false }; + if (!isInitialized) + { +@@ -19,7 +17,6 @@ void InitializeVTKm() + viskores::cont::Initialize(argc, const_cast(argv)); + isInitialized = true; + } +-#endif + } + + vtkmInitializer::vtkmInitializer() +diff --git a/Accelerators/Vtkm/DataModel/CMakeLists.txt b/Accelerators/Vtkm/DataModel/CMakeLists.txt +index b653c230133..6a71610f4d5 100644 +--- a/Accelerators/Vtkm/DataModel/CMakeLists.txt ++++ b/Accelerators/Vtkm/DataModel/CMakeLists.txt +@@ -43,34 +43,7 @@ vtk_module_set_property(VTK::AcceleratorsVTKmDataModel + PROPERTY JOB_POOL_COMPILE + VALUE viskores_pool) + _vtk_module_real_target(vtkm_accel_target VTK::AcceleratorsVTKmDataModel) +-viskores_add_target_information(${vtkm_accel_target} +- EXTENDS_VISKORES +- MODIFY_CUDA_FLAGS +- DEVICE_SOURCES ${sources}) +- +-if (TARGET VTK::vtkviskores_cuda) +- # 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") +- +- list(TRANSFORM nowrap_classes APPEND ".cxx" OUTPUT_VARIABLE nowrap_sources) +- set(cuda_impl ${nowrap_sources} vtkmDataSet.cxx) +- set_source_files_properties(${cuda_impl} PROPERTIES LANGUAGE CUDA) +- +- vtk_module_set_properties(VTK::AcceleratorsVTKmDataModel CUDA_SEPARABLE_COMPILATION ON) +- +- vtk_module_compile_options(VTK::AcceleratorsVTKmDataModel +- PUBLIC $<$:-Xcudafe --diag_suppress=extra_semicolon>) +- +-elseif (TARGET VTK::vtkviskores_kokkos_cuda) +- list(TRANSFORM nowrap_classes APPEND ".cxx" OUTPUT_VARIABLE nowrap_sources) +- set(cuda_impl ${nowrap_sources} vtkmDataSet.cxx) +- set_source_files_properties(${cuda_impl} PROPERTIES LANGUAGE CUDA) +- kokkos_compilation(SOURCE ${cuda_impl}) +- +-endif() ++vtk_add_viskores_device_target_information(${vtkm_accel_target}) + + if (MSVC) + set(msvc_warning_flags +diff --git a/Accelerators/Vtkm/DataModel/Testing/Cxx/CMakeLists.txt b/Accelerators/Vtkm/DataModel/Testing/Cxx/CMakeLists.txt +index a105aaa49ea..fdf8bc45806 100644 +--- a/Accelerators/Vtkm/DataModel/Testing/Cxx/CMakeLists.txt ++++ b/Accelerators/Vtkm/DataModel/Testing/Cxx/CMakeLists.txt +@@ -15,34 +15,6 @@ vtk_add_test_cxx(vtkAcceleratorsVTKmDataModelCxxTests tests + TestVTKMDataSet.cxx,NO_VALID + ) + +-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 vtkAcceleratorsVTKmDataModel +- #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(vtkAcceleratorsVTKmDataModelCxxTests tests + RENDERING_FACTORY + ) +- +-if (TARGET VTK::vtkviskores_cuda) +- # When cuda is enabled VTK::AcceleratorsVTKmDataModel is built statically but with fpic +- # enabled so the tests are also built with fpic enabled +- set_target_properties(vtkAcceleratorsVTKmDataModelCxxTests PROPERTIES +- CUDA_ARCHITECTURES OFF +- POSITION_INDEPENDENT_CODE ON +- ) +-endif() +diff --git a/Accelerators/Vtkm/Filters/CMakeLists.txt b/Accelerators/Vtkm/Filters/CMakeLists.txt +index 4eb9989da51..c24edd94be7 100644 +--- a/Accelerators/Vtkm/Filters/CMakeLists.txt ++++ b/Accelerators/Vtkm/Filters/CMakeLists.txt +@@ -109,31 +109,7 @@ vtk_module_definitions(VTK::AcceleratorsVTKmFilters + PUBLIC "VTK_ENABLE_VISKORES_OVERRIDES=$") + + _vtk_module_real_target(vtkm_accel_target VTK::AcceleratorsVTKmFilters) +-viskores_add_target_information(${vtkm_accel_target} +- EXTENDS_VISKORES +- MODIFY_CUDA_FLAGS +- DEVICE_SOURCES ${sources}) +- +-if (TARGET VTK::vtkviskores_cuda) +- # 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") +- +- list(TRANSFORM classes APPEND ".cxx" OUTPUT_VARIABLE cuda_impl) +- set_source_files_properties(${cuda_impl} PROPERTIES LANGUAGE CUDA) +- vtk_module_set_properties(VTK::AcceleratorsVTKmFilters CUDA_SEPARABLE_COMPILATION ON) +- +- vtk_module_compile_options(VTK::AcceleratorsVTKmFilters +- PUBLIC $<$:-Xcudafe --diag_suppress=extra_semicolon>) +-elseif (TARGET VTK::vtkviskores_kokkos_cuda) +- +- list(TRANSFORM classes APPEND ".cxx" OUTPUT_VARIABLE cuda_impl) +- set_source_files_properties(${cuda_impl} PROPERTIES LANGUAGE CUDA) +- kokkos_compilation(SOURCE ${cuda_impl}) +- +-endif() ++vtk_add_viskores_device_target_information(${vtkm_accel_target}) + + 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 + CLASSES ${classes} + PRIVATE_CLASSES ${private_classes}) + +- +-if (TARGET VTK::vtkviskores_cuda) +- # 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") +- +- set_source_files_properties(${classes_cuda} PROPERTIES LANGUAGE CUDA) +- +- vtk_module_set_properties(VTK::IOCatalystConduit +- CUDA_SEPARABLE_COMPILATION ON) +- +- vtk_module_compile_options(VTK::IOCatalystConduit +- PUBLIC $<$:-Xcudafe --diag_suppress=extra_semicolon>) +-endif () +- ++_vtk_module_real_target(vtkm_accel_target VTK::IOCatalystConduit) ++vtk_add_viskores_device_target_information(${vtkm_accel_target}) + + vtk_add_test_mangling(VTK::IOCatalystConduit) + add_subdirectory(Catalyst) +diff --git a/ThirdParty/viskores/CMakeLists.txt b/ThirdParty/viskores/CMakeLists.txt +index bbe1b38bce0..6ddb9104b3b 100644 +--- a/ThirdParty/viskores/CMakeLists.txt ++++ b/ThirdParty/viskores/CMakeLists.txt +@@ -24,7 +24,7 @@ vtk_module_third_party( + STANDARD_INCLUDE_DIRS + EXTERNAL + PACKAGE Viskores +- TARGETS viskores::cont viskores::cont_testing viskores::filter viskores::worklet ++ TARGETS viskores::cont viskores::cont_testing viskores::filter + VERSION "1.1.0" + STANDARD_INCLUDE_DIRS) + +@@ -55,3 +55,19 @@ foreach (viskores_target IN LISTS viskores_specific_targets) + _vtk_module_install("vtkviskores_${viskores_target}") + add_library("VTK::vtkviskores_${viskores_target}" ALIAS "vtkviskores_${viskores_target}") + endforeach () ++ ++# If a VTK library contains Viskores worklets or other Viskores device code, the files must be ++# declared as the proper language and the library must link to VTK::vtkviskores_worklet. This ++# function sets this up. Use this function by giving it the name of a target. ++function(vtk_add_viskores_device_target_information target) ++ target_link_libraries(${target} PRIVATE VTK::vtkviskores_worklet) ++ get_target_property(sources ${target} SOURCES) ++ list(FILTER sources INCLUDE REGEX "\\.(cpp|cxx|cc|C)$") ++ if(TARGET VTK::vtkviskores_cuda OR TARGET VTK::vtkviskores_kokkos_cuda) ++ set_source_files_properties(${sources} PROPERTIES LANGUAGE CUDA) ++ endif() ++ if(TARGET VTK::vtkviskores_kokkos_hip) ++ set_source_files_properties(${sources} PROPERTIES LANGUAGE HIP) ++ kokkos_compilation(SOURCE ${sources}) ++ endif() ++endfunction() +-- +GitLab diff --git a/repos/spack_repo/builtin/packages/paraview/vtk-external-fides-pv61.patch b/repos/spack_repo/builtin/packages/paraview/vtk-external-fides-pv61.patch new file mode 100644 index 00000000000..774e92dd73e --- /dev/null +++ b/repos/spack_repo/builtin/packages/paraview/vtk-external-fides-pv61.patch @@ -0,0 +1,202 @@ +From 97799df970c090a5f18c6c60f7478036d54f0c43 Mon Sep 17 00:00:00 2001 +From: Fides Upstream +Date: Mon, 20 Apr 2026 12:22:58 -0400 +Subject: [PATCH 1/3] fides 2026-04-20 (ceedfb2f) + +Code extracted from: + + https://gitlab.kitware.com/third-party/fides.git + +at commit ceedfb2f766eeb82742474bc7346647413577b36 (for/vtk-20260420-master-1e7e886). +--- + ThirdParty/fides/vtkfides/fides/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ThirdParty/fides/vtkfides/fides/CMakeLists.txt b/ThirdParty/fides/vtkfides/fides/CMakeLists.txt +index d21e907420..deb18e37b8 100644 +--- a/ThirdParty/fides/vtkfides/fides/CMakeLists.txt ++++ b/ThirdParty/fides/vtkfides/fides/CMakeLists.txt +@@ -87,7 +87,7 @@ vtk_module_include(VTK::fides + PUBLIC + $ + $ +- $ ++ $ + ) + + include(GenerateExportHeader) +-- +2.50.1 (Apple Git-155) + +From ff6b10bf7130479e0c0d316a77fd1ecfc8328a14 Mon Sep 17 00:00:00 2001 +From: Kenneth Moreland +Date: Tue, 14 Apr 2026 13:24:02 -0400 +Subject: [PATCH 2/3] Enable linking to an externally built Fides + +--- + IO/Fides/vtkFidesReader.cxx | 6 +++++- + IO/Fides/vtkFidesWriter.cxx | 6 +++++- + ThirdParty/fides/CMakeLists.txt | 31 ++++++++++++++++++++++--------- + ThirdParty/fides/vtk_fides.h.in | 15 +++++++++++++++ + 4 files changed, 47 insertions(+), 11 deletions(-) + create mode 100644 ThirdParty/fides/vtk_fides.h.in + +diff --git a/IO/Fides/vtkFidesReader.cxx b/IO/Fides/vtkFidesReader.cxx +index 246e1c3ded..6450edebed 100644 +--- a/IO/Fides/vtkFidesReader.cxx ++++ b/IO/Fides/vtkFidesReader.cxx +@@ -20,7 +20,11 @@ + #include "vtkmlib/UnstructuredGridConverter.h" + #include "vtksys/SystemTools.hxx" + +-#include ++// Fides includes ++#include ++// clang-format off ++#include VTK_FIDES(fides/DataSetReader.h) ++// clang-format on + + #include + +diff --git a/IO/Fides/vtkFidesWriter.cxx b/IO/Fides/vtkFidesWriter.cxx +index 1eaf338f98..55259a9eb4 100644 +--- a/IO/Fides/vtkFidesWriter.cxx ++++ b/IO/Fides/vtkFidesWriter.cxx +@@ -26,7 +26,11 @@ + #include "vtkMPIController.h" + #endif + +-#include ++// Fides includes ++#include ++// clang-format off ++#include VTK_FIDES(fides/DataSetWriter.h) ++// clang-format on + + #include + #include +diff --git a/ThirdParty/fides/CMakeLists.txt b/ThirdParty/fides/CMakeLists.txt +index 2da2afa02b..a50b8eebcf 100644 +--- a/ThirdParty/fides/CMakeLists.txt ++++ b/ThirdParty/fides/CMakeLists.txt +@@ -1,9 +1,22 @@ +-vtk_module_third_party_internal( +- LICENSE_FILES "vtkfides/LICENSE.txt" +- SPDX_LICENSE_IDENTIFIER "BSD-3-Clause" +- SPDX_COPYRIGHT_TEXT "Copyright (c) 2019 Kitware Inc." +- SPDX_DOWNLOAD_LOCATION "git+https://gitlab.kitware.com/third-party/fides.git@for/vtk-20230505-master-6922a48e" +- VERSION "master" +- SUBDIRECTORY vtkfides +- STANDARD_INCLUDE_DIRS +- INTERFACE) ++vtk_module_third_party( ++ INTERNAL ++ LICENSE_FILES "vtkfides/LICENSE.txt" ++ SPDX_LICENSE_IDENTIFIER "BSD-3-Clause" ++ SPDX_COPYRIGHT_TEXT "Copyright (c) 2019 Kitware Inc." ++ SPDX_DOWNLOAD_LOCATION "git+https://gitlab.kitware.com/third-party/fides.git@for/vtk-20260420-master-1e7e886" ++ VERSION "master" ++ SUBDIRECTORY vtkfides ++ STANDARD_INCLUDE_DIRS ++ INTERFACE ++ EXTERNAL ++ PACKAGE Fides ++ TARGETS fides ++ STANDARD_INCLUDE_DIRS ++ ) ++ ++configure_file( ++ "${CMAKE_CURRENT_SOURCE_DIR}/vtk_fides.h.in" ++ "${CMAKE_CURRENT_BINARY_DIR}/vtk_fides.h") ++ ++vtk_module_install_headers( ++ FILES "${CMAKE_CURRENT_BINARY_DIR}/vtk_fides.h") +diff --git a/ThirdParty/fides/vtk_fides.h.in b/ThirdParty/fides/vtk_fides.h.in +new file mode 100644 +index 0000000000..5383f71c87 +--- /dev/null ++++ b/ThirdParty/fides/vtk_fides.h.in +@@ -0,0 +1,15 @@ ++// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen ++// SPDX-License-Identifier: BSD-3-Clause ++#ifndef vtk_fides_h ++#define vtk_fides_h ++ ++/* Use the fides library configured for VTK. */ ++#cmakedefine01 VTK_MODULE_USE_EXTERNAL_VTK_fides ++ ++#if VTK_MODULE_USE_EXTERNAL_VTK_fides ++# define VTK_FIDES(x) ++#else ++# define VTK_FIDES(x) ++#endif ++ ++#endif +-- +2.50.1 (Apple Git-155) + +From 86e8ce32b719aa9381268f547ff4e57b7a5e1e52 Mon Sep 17 00:00:00 2001 +From: Kenneth Moreland +Date: Thu, 16 Apr 2026 07:50:44 -0400 +Subject: [PATCH 3/3] Add test for Fides third-party module include file + +--- + ThirdParty/fides/Testing/CMakeLists.txt | 1 + + ThirdParty/fides/Testing/Cxx/CMakeLists.txt | 4 ++++ + ThirdParty/fides/Testing/Cxx/TestIncludeFides.cxx | 11 +++++++++++ + ThirdParty/fides/vtk.module | 4 ++++ + 4 files changed, 20 insertions(+) + create mode 100644 ThirdParty/fides/Testing/CMakeLists.txt + create mode 100644 ThirdParty/fides/Testing/Cxx/CMakeLists.txt + create mode 100644 ThirdParty/fides/Testing/Cxx/TestIncludeFides.cxx + +diff --git a/ThirdParty/fides/Testing/CMakeLists.txt b/ThirdParty/fides/Testing/CMakeLists.txt +new file mode 100644 +index 0000000000..35f9732a93 +--- /dev/null ++++ b/ThirdParty/fides/Testing/CMakeLists.txt +@@ -0,0 +1 @@ ++add_subdirectory(Cxx) +diff --git a/ThirdParty/fides/Testing/Cxx/CMakeLists.txt b/ThirdParty/fides/Testing/Cxx/CMakeLists.txt +new file mode 100644 +index 0000000000..d0f115663e +--- /dev/null ++++ b/ThirdParty/fides/Testing/Cxx/CMakeLists.txt +@@ -0,0 +1,4 @@ ++vtk_add_test_cxx(vtkfidesCxxTests tests ++ NO_DATA NO_VALID NO_OUTPUT ++ TestIncludeFides.cxx) ++vtk_test_cxx_executable(vtkfidesCxxTests tests) +diff --git a/ThirdParty/fides/Testing/Cxx/TestIncludeFides.cxx b/ThirdParty/fides/Testing/Cxx/TestIncludeFides.cxx +new file mode 100644 +index 0000000000..b6b81a4948 +--- /dev/null ++++ b/ThirdParty/fides/Testing/Cxx/TestIncludeFides.cxx +@@ -0,0 +1,11 @@ ++#include "vtk_fides.h" ++// clang-format off ++#include VTK_FIDES(fides/DataSetReader.h) ++// clang-format on ++ ++#include ++ ++int TestIncludeFides(int /*argc*/, char* /*argv*/[]) ++{ ++ return EXIT_SUCCESS; ++} +diff --git a/ThirdParty/fides/vtk.module b/ThirdParty/fides/vtk.module +index 07a6e0f2f9..197ff8ab03 100644 +--- a/ThirdParty/fides/vtk.module ++++ b/ThirdParty/fides/vtk.module +@@ -10,4 +10,8 @@ DEPENDS + VTK::vtkviskores + OPTIONAL_DEPENDS + VTK::mpi ++TEST_DEPENDS ++ VTK::TestingCore ++TEST_OPTIONAL_DEPENDS ++ VTK::mpi + THIRD_PARTY +-- +2.50.1 (Apple Git-155) + diff --git a/repos/spack_repo/builtin/packages/paraview/vtk-fine-grained-viskores-targets-pv61.patch b/repos/spack_repo/builtin/packages/paraview/vtk-fine-grained-viskores-targets-pv61.patch new file mode 100644 index 00000000000..3e7f8cd304d --- /dev/null +++ b/repos/spack_repo/builtin/packages/paraview/vtk-fine-grained-viskores-targets-pv61.patch @@ -0,0 +1,313 @@ +From c3514adb8fac48a0937de784d561c2f07c6f5945 Mon Sep 17 00:00:00 2001 +From: Ben Boeckel +Date: Tue, 31 Mar 2026 23:21:28 -0400 +Subject: [PATCH 1/4] vtkm: link to the proper viskores target + +--- + ThirdParty/vtkm/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ThirdParty/vtkm/CMakeLists.txt b/ThirdParty/vtkm/CMakeLists.txt +index 272306bdec..577e10cfe8 100644 +--- a/ThirdParty/vtkm/CMakeLists.txt ++++ b/ThirdParty/vtkm/CMakeLists.txt +@@ -1,5 +1,5 @@ + vtk_module_add_module(VTK::vtkvtkm HEADER_ONLY) +-vtk_module_link(VTK::vtkvtkm INTERFACE VTK::viskores) ++vtk_module_link(VTK::vtkvtkm INTERFACE VTK::vtkviskores) + + set(deprecation_warning "Target VTK::vtkvtkm deprecated, VTK::vtkviskores enabled.") + message(DEPRECATION "${deprecation_warning}") +-- +2.50.1 (Apple Git-155) + +From 8ac32d9610f21206ca812ab8abc28c5e41a88214 Mon Sep 17 00:00:00 2001 +From: Ben Boeckel +Date: Tue, 31 Mar 2026 23:21:43 -0400 +Subject: [PATCH 2/4] viskores: create fine-grained targets for components + +This gives a consistent interface for Viskores targets no matter how +Viskores is provided: vendored or externally. For external usage, the +`find_package` makes the imported targets scoped so that they are not +visible elsewhere in the tree. +--- + ThirdParty/viskores/CMakeLists.txt | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git a/ThirdParty/viskores/CMakeLists.txt b/ThirdParty/viskores/CMakeLists.txt +index 54031beeca..d23fdd5cb4 100644 +--- a/ThirdParty/viskores/CMakeLists.txt ++++ b/ThirdParty/viskores/CMakeLists.txt +@@ -23,3 +23,27 @@ vtk_module_third_party( + if(VTK_MODULE_USE_EXTERNAL_vtkviskores) + viskores_setup_job_pool() + endif() ++ ++set(viskores_specific_targets ++ cont ++ cont_testing ++ cuda ++ filter ++ kokkos_cuda ++ kokkos_hip ++ worklet) ++foreach (viskores_target IN LISTS viskores_specific_targets) ++ if (VTK_MODULE_USE_EXTERNAL_vtkviskores) ++ set(target "viskores::${viskores_target}") ++ else () ++ set(target "viskores_${viskores_target}") ++ endif () ++ if (NOT TARGET "${target}") ++ continue () ++ endif() ++ ++ add_library("vtkviskores_${viskores_target}" INTERFACE) ++ target_link_libraries("vtkviskores_${viskores_target}" INTERFACE "${target}") ++ _vtk_module_install("vtkviskores_${viskores_target}") ++ add_library("VTK::vtkviskores_${viskores_target}" ALIAS "vtkviskores_${viskores_target}") ++endforeach () +-- +2.50.1 (Apple Git-155) + +From 96c963f0817019c86f25851f4d550ecd312c9822 Mon Sep 17 00:00:00 2001 +From: Fides Upstream +Date: Wed, 22 Apr 2026 14:42:24 -0400 +Subject: [PATCH 3/4] fides 2026-04-22 (5330f6f2) + +Code extracted from: + + https://gitlab.kitware.com/third-party/fides.git + +at commit 5330f6f2bf47cab1434bbaa71a20a20f3051a03f (for/vtk-20260422-master-1e7e886). +--- + ThirdParty/fides/vtkfides/fides/CMakeLists.txt | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/ThirdParty/fides/vtkfides/fides/CMakeLists.txt b/ThirdParty/fides/vtkfides/fides/CMakeLists.txt +index deb18e37b8..72f0a9fbd8 100644 +--- a/ThirdParty/fides/vtkfides/fides/CMakeLists.txt ++++ b/ThirdParty/fides/vtkfides/fides/CMakeLists.txt +@@ -82,7 +82,9 @@ endif() + vtk_module_link(VTK::fides + PRIVATE + adios2::adios2 +- fides_rapidjson) ++ fides_rapidjson ++ VTK::vtkviskores_worklet ++ ) + vtk_module_include(VTK::fides + PUBLIC + $ +-- +2.50.1 (Apple Git-155) + +From 33d22c1f141c963c8f5a2cbabcbab9428f5b04a8 Mon Sep 17 00:00:00 2001 +From: Ben Boeckel +Date: Tue, 31 Mar 2026 23:23:33 -0400 +Subject: [PATCH 4/4] viskores: use third party "bridge" targets + +These work regardless of internal versus external Viskores. +--- + Accelerators/Vtkm/Core/CMakeLists.txt | 8 ++++---- + Accelerators/Vtkm/Core/Testing/Cxx/CMakeLists.txt | 4 ++-- + Accelerators/Vtkm/DataModel/CMakeLists.txt | 6 +++--- + Accelerators/Vtkm/DataModel/Testing/Cxx/CMakeLists.txt | 4 ++-- + Accelerators/Vtkm/Filters/CMakeLists.txt | 6 +++--- + Accelerators/Vtkm/Filters/Testing/Cxx/CMakeLists.txt | 4 ++-- + IO/CatalystConduit/CMakeLists.txt | 2 +- + IO/CatalystConduit/Testing/Cxx/CMakeLists.txt | 2 +- + 8 files changed, 18 insertions(+), 18 deletions(-) + +diff --git a/Accelerators/Vtkm/Core/CMakeLists.txt b/Accelerators/Vtkm/Core/CMakeLists.txt +index 062661eccf..0501715be0 100644 +--- a/Accelerators/Vtkm/Core/CMakeLists.txt ++++ b/Accelerators/Vtkm/Core/CMakeLists.txt +@@ -47,7 +47,7 @@ list(TRANSFORM nowrap_classes APPEND ".cxx" OUTPUT_VARIABLE device_sources) + if(VTK_USE_KOKKOS) + add_compile_definitions(VTK_USE_KOKKOS) + endif() +-if (TARGET viskores::cuda) ++if (TARGET VTK::vtkviskores_cuda) + # 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 +@@ -59,11 +59,11 @@ if (TARGET viskores::cuda) + find_package(CUDAToolkit REQUIRED) + vtk_module_link(VTK::AcceleratorsVTKmCore PRIVATE CUDA::cudart) + +-elseif (TARGET viskores::kokkos_cuda) ++elseif (TARGET VTK::vtkviskores_kokkos_cuda) + set_source_files_properties(${device_sources} PROPERTIES LANGUAGE CUDA) + kokkos_compilation(SOURCE ${device_sources}) + +-elseif (TARGET viskores::kokkos_hip) ++elseif (TARGET VTK::vtkviskores_kokkos_hip) + set_source_files_properties(${device_sources} PROPERTIES LANGUAGE HIP) + kokkos_compilation(SOURCE ${device_sources}) + +@@ -87,7 +87,7 @@ if (MSVC) + ) + set(viskores_msvc_flags) + foreach (msvc_warning_flag IN LISTS msvc_warning_flags) +- if (TARGET viskores::cuda) ++ if (TARGET VTK::vtkviskores_cuda) + list(APPEND viskores_msvc_flags + $<$:-Xcompiler=${msvc_warning_flag},${msvc_warning_flag}>) + else () +diff --git a/Accelerators/Vtkm/Core/Testing/Cxx/CMakeLists.txt b/Accelerators/Vtkm/Core/Testing/Cxx/CMakeLists.txt +index a3b1851215..1a32f156a7 100644 +--- a/Accelerators/Vtkm/Core/Testing/Cxx/CMakeLists.txt ++++ b/Accelerators/Vtkm/Core/Testing/Cxx/CMakeLists.txt +@@ -6,7 +6,7 @@ vtk_add_test_cxx(vtkAcceleratorsVTKmCoreCxxTests tests + TestVTKMImplicitDataArray.cxx,NO_VALID + ) + +-if (TARGET viskores::cuda OR TARGET viskores::kokkos_cuda) ++if (TARGET VTK::vtkviskores_cuda OR TARGET VTK::vtkviskores_kokkos_cuda) + foreach(src IN LISTS tests) + string(REPLACE "," ";" src ${src}) + list(GET src 0 src) +@@ -27,7 +27,7 @@ endif() + + vtk_test_cxx_executable(vtkAcceleratorsVTKmCoreCxxTests tests) + +-if (TARGET viskores::cuda) ++if (TARGET VTK::vtkviskores_cuda) + # When cuda is enabled VTK::AcceleratorsVTKmCore is built statically but with fpic + # enabled so the tests are also built with fpic enabled + set_target_properties(vtkAcceleratorsVTKmCoreCxxTests PROPERTIES +diff --git a/Accelerators/Vtkm/DataModel/CMakeLists.txt b/Accelerators/Vtkm/DataModel/CMakeLists.txt +index 1754ebe182..b653c23013 100644 +--- a/Accelerators/Vtkm/DataModel/CMakeLists.txt ++++ b/Accelerators/Vtkm/DataModel/CMakeLists.txt +@@ -48,7 +48,7 @@ viskores_add_target_information(${vtkm_accel_target} + MODIFY_CUDA_FLAGS + DEVICE_SOURCES ${sources}) + +-if (TARGET viskores::cuda) ++if (TARGET VTK::vtkviskores_cuda) + # 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 +@@ -64,7 +64,7 @@ if (TARGET viskores::cuda) + vtk_module_compile_options(VTK::AcceleratorsVTKmDataModel + PUBLIC $<$:-Xcudafe --diag_suppress=extra_semicolon>) + +-elseif (TARGET viskores::kokkos_cuda) ++elseif (TARGET VTK::vtkviskores_kokkos_cuda) + list(TRANSFORM nowrap_classes APPEND ".cxx" OUTPUT_VARIABLE nowrap_sources) + set(cuda_impl ${nowrap_sources} vtkmDataSet.cxx) + set_source_files_properties(${cuda_impl} PROPERTIES LANGUAGE CUDA) +@@ -90,7 +90,7 @@ if (MSVC) + ) + set(viskores_msvc_flags) + foreach (msvc_warning_flag IN LISTS msvc_warning_flags) +- if (TARGET viskores::cuda) ++ if (TARGET VTK::vtkviskores_cuda) + list(APPEND viskores_msvc_flags + $<$:-Xcompiler=${msvc_warning_flag},${msvc_warning_flag}>) + else () +diff --git a/Accelerators/Vtkm/DataModel/Testing/Cxx/CMakeLists.txt b/Accelerators/Vtkm/DataModel/Testing/Cxx/CMakeLists.txt +index 627a3f5341..a105aaa49e 100644 +--- a/Accelerators/Vtkm/DataModel/Testing/Cxx/CMakeLists.txt ++++ b/Accelerators/Vtkm/DataModel/Testing/Cxx/CMakeLists.txt +@@ -15,7 +15,7 @@ vtk_add_test_cxx(vtkAcceleratorsVTKmDataModelCxxTests tests + TestVTKMDataSet.cxx,NO_VALID + ) + +-if (TARGET viskores::cuda) ++if (TARGET VTK::vtkviskores_cuda) + foreach(src IN LISTS tests) + string(REPLACE "," ";" src ${src}) + list(GET src 0 src) +@@ -38,7 +38,7 @@ vtk_test_cxx_executable(vtkAcceleratorsVTKmDataModelCxxTests tests + RENDERING_FACTORY + ) + +-if (TARGET viskores::cuda) ++if (TARGET VTK::vtkviskores_cuda) + # When cuda is enabled VTK::AcceleratorsVTKmDataModel is built statically but with fpic + # enabled so the tests are also built with fpic enabled + set_target_properties(vtkAcceleratorsVTKmDataModelCxxTests PROPERTIES +diff --git a/Accelerators/Vtkm/Filters/CMakeLists.txt b/Accelerators/Vtkm/Filters/CMakeLists.txt +index 1b249d5f2d..4eb9989da5 100644 +--- a/Accelerators/Vtkm/Filters/CMakeLists.txt ++++ b/Accelerators/Vtkm/Filters/CMakeLists.txt +@@ -114,7 +114,7 @@ viskores_add_target_information(${vtkm_accel_target} + MODIFY_CUDA_FLAGS + DEVICE_SOURCES ${sources}) + +-if (TARGET viskores::cuda) ++if (TARGET VTK::vtkviskores_cuda) + # 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 +@@ -127,7 +127,7 @@ if (TARGET viskores::cuda) + + vtk_module_compile_options(VTK::AcceleratorsVTKmFilters + PUBLIC $<$:-Xcudafe --diag_suppress=extra_semicolon>) +-elseif (TARGET viskores::kokkos_cuda) ++elseif (TARGET VTK::vtkviskores_kokkos_cuda) + + list(TRANSFORM classes APPEND ".cxx" OUTPUT_VARIABLE cuda_impl) + set_source_files_properties(${cuda_impl} PROPERTIES LANGUAGE CUDA) +@@ -153,7 +153,7 @@ if (MSVC) + ) + set(viskores_msvc_flags) + foreach (msvc_warning_flag IN LISTS msvc_warning_flags) +- if (TARGET viskores::cuda OR TARGET viskores::kokkos_cuda) ++ if (TARGET VTK::vtkviskores_cuda OR TARGET VTK::vtkviskores_kokkos_cuda) + list(APPEND viskores_msvc_flags + $<$:-Xcompiler=${msvc_warning_flag},${msvc_warning_flag}>) + else () +diff --git a/Accelerators/Vtkm/Filters/Testing/Cxx/CMakeLists.txt b/Accelerators/Vtkm/Filters/Testing/Cxx/CMakeLists.txt +index 8506bc29fd..6e831b2f87 100644 +--- a/Accelerators/Vtkm/Filters/Testing/Cxx/CMakeLists.txt ++++ b/Accelerators/Vtkm/Filters/Testing/Cxx/CMakeLists.txt +@@ -28,7 +28,7 @@ vtk_add_test_cxx(vtkAcceleratorsVTKmFiltersCxxTests tests + TestVTKMWarpVector.cxx + ) + +-if (TARGET viskores::cuda) ++if (TARGET VTK::vtkviskores_cuda) + foreach(src IN LISTS tests) + string(REPLACE "," ";" src ${src}) + list(GET src 0 src) +@@ -53,7 +53,7 @@ vtk_test_cxx_executable(vtkAcceleratorsVTKmFiltersCxxTests tests + RENDERING_FACTORY + ) + +-if (TARGET viskores::cuda) ++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 d9f78669d5..91d60f1638 100644 +--- a/IO/CatalystConduit/CMakeLists.txt ++++ b/IO/CatalystConduit/CMakeLists.txt +@@ -17,7 +17,7 @@ vtk_module_add_module(VTK::IOCatalystConduit + PRIVATE_CLASSES ${private_classes}) + + +-if (TARGET viskores::cuda) ++if (TARGET VTK::vtkviskores_cuda) + # 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 +diff --git a/IO/CatalystConduit/Testing/Cxx/CMakeLists.txt b/IO/CatalystConduit/Testing/Cxx/CMakeLists.txt +index a8e42b6ff1..9a956fc3d8 100644 +--- a/IO/CatalystConduit/Testing/Cxx/CMakeLists.txt ++++ b/IO/CatalystConduit/Testing/Cxx/CMakeLists.txt +@@ -31,7 +31,7 @@ if (TARGET VTK::ParallelMPI) + vtk_test_cxx_executable(vtkConduitCxxTests-MPI mpitests) + endif() + +-if (TARGET viskores::cuda) ++if (TARGET VTK::vtkviskores_cuda) + set_source_files_properties(TestConduitSourceDeviceMemory.cxx PROPERTIES LANGUAGE CUDA) + + +-- +2.50.1 (Apple Git-155) + diff --git a/repos/spack_repo/builtin/packages/parflow/package.py b/repos/spack_repo/builtin/packages/parflow/package.py index 8bcb308c4bd..d4ece42d5c1 100644 --- a/repos/spack_repo/builtin/packages/parflow/package.py +++ b/repos/spack_repo/builtin/packages/parflow/package.py @@ -71,13 +71,13 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: def test_single_phase_flow(self): """Run the single phase flow test""" run_path = join_path(self.spec.prefix, self.examples_dir) - options = ["default_single.tcl", "1", "1" "1"] + options = ["default_single.tcl", "1", "1", "1"] with working_dir(run_path): - exe = which(f"{self.spec['tcl'].prefix.bin}/tclsh") + exe = which(f"{self.spec['tcl'].prefix.bin}/tclsh", required=True) exe(*options) def test_check_version(self): """Test if exe executes""" - exe = which(join_path(self.prefix.bin, "parflow")) + exe = which(join_path(self.prefix.bin, "parflow"), required=True) out = exe("-v", output=str.split, error=str.split) assert str(self.spec.version) in out diff --git a/repos/spack_repo/builtin/packages/parmgridgen/package.py b/repos/spack_repo/builtin/packages/parmgridgen/package.py index 41924751d29..9c4e3c43084 100644 --- a/repos/spack_repo/builtin/packages/parmgridgen/package.py +++ b/repos/spack_repo/builtin/packages/parmgridgen/package.py @@ -28,16 +28,16 @@ class Parmgridgen(Package): depends_on("mpi", when="+mpi") depends_on("gmake", type="build") + def flag_handler(self, name, flags): + if name == "cflags": + if self.spec.satisfies("%gcc@14:"): + flags.extend( + ["-Wno-implicit-function-declaration", "-Wno-incompatible-pointer-types"] + ) + return (flags, [], []) + def install(self, spec, prefix): - make_opts = [ - "make=make", - "COPTIONS={0}".format(self.compiler.cc_pic_flag), - "LDOPTIONS={0}".format(self.compiler.cc_pic_flag), - "CC={0}".format(self.compiler.cc), - "LD={0}".format(self.compiler.cc), - "LIBDIR=-L../..", - "LIBS=-L../.. -lmgrid -lm", - ] + make_opts = ["make=make", "LIBDIR=-L../..", "LIBS=-L../.. -lmgrid -lm"] if "+mpi" in spec: make_opts.extend( diff --git a/repos/spack_repo/builtin/packages/parquet_cpp/package.py b/repos/spack_repo/builtin/packages/parquet_cpp/package.py deleted file mode 100644 index 16d82a40a94..00000000000 --- a/repos/spack_repo/builtin/packages/parquet_cpp/package.py +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.cmake import CMakePackage -from spack_repo.builtin.packages.boost.package import Boost - -from spack.package import * - - -class ParquetCpp(CMakePackage): - """C++ bindings for the Apache Parquet columnar data format.""" - - homepage = "https://github.com/apache/parquet-cpp" - url = "https://github.com/apache/parquet-cpp/archive/apache-parquet-cpp-1.4.0.tar.gz" - - license("Apache-2.0") - - version( - "1.4.0", - sha256="52899be6c9dc49a14976d4ad84597243696c3fa2882e5c802b56e912bfbcc7ce", - deprecated=True, - ) - - depends_on("arrow") - - depends_on("c", type="build") - depends_on("cxx", type="build") # generated - - # 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) - depends_on("cmake@3.2.0:", type="build") - depends_on("pkgconfig", type="build") - depends_on("thrift") - - variant("pic", default=True, description="Build position independent code") - variant( - "build_type", - default="Release", - description="CMake build type", - values=("Debug", "FastDebug", "Release"), - ) - - def cmake_args(self): - args = ["-DPARQUET_USE_SSE=OFF", "-DPARQUET_BUILD_TESTS=OFF"] - for dep in ("arrow", "thrift"): - args.append("-D{0}_HOME={1}".format(dep.upper(), self.spec[dep].prefix)) - return args - - def flag_handler(self, name, flags): - flags = list(flags) - if "+pic" in self.spec: - if name == "cflags": - flags.append(self.compiler.cc_pic_flag) - elif name == "cxxflags": - flags.append(self.compiler.cxx_pic_flag) - return (None, None, flags) diff --git a/repos/spack_repo/builtin/packages/parsec/apply-header.patch b/repos/spack_repo/builtin/packages/parsec/apply-header.patch new file mode 100644 index 00000000000..993edd43f0c --- /dev/null +++ b/repos/spack_repo/builtin/packages/parsec/apply-header.patch @@ -0,0 +1,14 @@ +diff --git a/parsec/data_dist/matrix/CMakeLists.txt b/parsec/data_dist/matrix/CMakeLists.txt +index 51beffec2..597557c08 100644 +--- a/parsec/data_dist/matrix/CMakeLists.txt ++++ b/parsec/data_dist/matrix/CMakeLists.txt +@@ -32,7 +32,7 @@ if( TARGET parsec-ptgpp ) + target_ptg_sources(parsec PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/reduce_col.jdf;${CMAKE_CURRENT_SOURCE_DIR}/reduce_row.jdf;${CMAKE_CURRENT_SOURCE_DIR}/reduce.jdf;${CMAKE_CURRENT_SOURCE_DIR}/diag_band_to_rect.jdf;${CMAKE_CURRENT_SOURCE_DIR}/apply.jdf") + set_property(TARGET parsec + APPEND PROPERTY +- PRIVATE_HEADER_H data_dist/matrix/diag_band_to_rect.h) ++ PRIVATE_HEADER_H data_dist/matrix/diag_band_to_rect.h data_dist/matrix/apply.h) + endif( TARGET parsec-ptgpp ) + + target_sources(parsec PRIVATE ${sources}) + diff --git a/repos/spack_repo/builtin/packages/parsec/package.py b/repos/spack_repo/builtin/packages/parsec/package.py index 10fc41bb2a3..e2cb723057b 100644 --- a/repos/spack_repo/builtin/packages/parsec/package.py +++ b/repos/spack_repo/builtin/packages/parsec/package.py @@ -3,7 +3,6 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) # - from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.cuda import CudaPackage @@ -38,6 +37,10 @@ class Parsec(CMakePackage, CudaPackage): url="https://github.com/ICLDisco/parsec/archive/refs/tags/v1.1.0.tar.gz", ) + # Add data_dist/matrix/apply.h to the list of header files to install. + # This is required for building against this parsec installation. + patch("apply-header.patch", when="@4.0.2411") + variant( "build_type", default="RelWithDebInfo", @@ -60,6 +63,9 @@ class Parsec(CMakePackage, CudaPackage): "+debug_verbose build_type=RelWithDebInfo", msg="You need to set build_type=Debug for +debug_verbose", ) + + # https://github.com/spack/spack-packages/pull/2059#issuecomment-3443184517 + conflicts("^cuda@13:", when="+cuda") # TODO: Spack does not handle cross-compilation atm # variant('xcompile', default=False, description='Cross compile') @@ -85,6 +91,7 @@ def cmake_args(self): self.define_from_variant("PARSEC_PROF_TRACE", "profile"), self.define_from_variant("PARSEC_DEBUG_HISTORY", "debug_verbose"), self.define_from_variant("PARSEC_DEBUG_PARANOID", "debug_verbose"), + self.define("PARSEC_GPU_WITH_HIP", "Off"), ] return args @@ -121,7 +128,7 @@ def test_contrib(self): for name in ["dtd_test_allreduce", "write_check"]: with test_part(self, f"test_contrib_{name}", f"run {name}"): - exe = which(name) + exe = which(name, required=True) exe() @run_after("install") diff --git a/repos/spack_repo/builtin/packages/parthenon/package.py b/repos/spack_repo/builtin/packages/parthenon/package.py index e0e34ce0f37..326e0ff52bc 100644 --- a/repos/spack_repo/builtin/packages/parthenon/package.py +++ b/repos/spack_repo/builtin/packages/parthenon/package.py @@ -48,7 +48,8 @@ class Parthenon(CMakePackage): # Dependencies # ------------------------------------------------------------# - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("cmake@3.16:", type="build") diff --git a/repos/spack_repo/builtin/packages/partons/package.py b/repos/spack_repo/builtin/packages/partons/package.py new file mode 100644 index 00000000000..344f36b245f --- /dev/null +++ b/repos/spack_repo/builtin/packages/partons/package.py @@ -0,0 +1,38 @@ +# 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 Partons(CMakePackage): + """PARTONS is a software framework dedicated to the phenomenology + of 3D hadron structure, in particular Generalized Parton Distributions + (GPDs) and Transverse Momentum Dependent (TMDs) parton distribution + functions.""" + + homepage = "https://3d-partons.github.io/partons/" + url = "https://github.com/3d-partons/partons/archive/refs/tags/v5.0.0.tar.gz" + git = "https://github.com/3d-partons/partons.git" + + tags = ["hep"] + + maintainers("wdconinc") + + license("GPL-3.0", checked_by="wdconinc") + + version("5.0.0", sha256="6ac7b68890ce19a8dfd2515264201d7424d2aa809e4b8c2e714528a1f6234865") + + depends_on("cxx", type="build") + depends_on("cmake@3.5:", type="build") + + depends_on("partons-elementary-utils") + depends_on("partons-numa") + depends_on("sfml@:2") + depends_on("cln") + depends_on("gsl") + depends_on("apfelxx") + depends_on("lhapdf") + depends_on("libxml2") diff --git a/repos/spack_repo/builtin/packages/partons_elementary_utils/package.py b/repos/spack_repo/builtin/packages/partons_elementary_utils/package.py new file mode 100644 index 00000000000..0f42f63dc0c --- /dev/null +++ b/repos/spack_repo/builtin/packages/partons_elementary_utils/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.cmake import CMakePackage + +from spack.package import * + + +class PartonsElementaryUtils(CMakePackage): + """Utility methods for the PARTONS project.""" + + homepage = "https://3d-partons.github.io/partons" + url = "https://github.com/3d-partons/elementary-utils/archive/refs/tags/v5.0.0.tar.gz" + git = "https://github.com/3d-partons/elementary-utils.git" + + tags = ["hep"] + + maintainers("wdconinc") + + license("GPL-3.0", checked_by="wdconinc") + + version("5.0.0", sha256="0611b0614e3efdc60893080e0f35de408fef08671076d8f42ffdeda4ab4a366f") + + depends_on("cxx", type="build") + depends_on("cmake@3.5:", type="build") + + depends_on("sfml@:2") diff --git a/repos/spack_repo/builtin/packages/partons_numa/package.py b/repos/spack_repo/builtin/packages/partons_numa/package.py new file mode 100644 index 00000000000..62d25c8a953 --- /dev/null +++ b/repos/spack_repo/builtin/packages/partons_numa/package.py @@ -0,0 +1,30 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage + +from spack.package import * + + +class PartonsNuma(CMakePackage): + """Numerical analysis routines for the PARTONS project.""" + + homepage = "https://3d-partons.github.io/partons" + url = "https://github.com/3d-partons/numa/archive/refs/tags/v5.0.0.tar.gz" + git = "https://github.com/3d-partons/numa.git" + + tags = ["hep"] + + maintainers("wdconinc") + + license("GPL-3.0", checked_by="wdconinc") + + version("5.0.0", sha256="1ba38b59cf0b8b32ff418f52a63601c65817503b1bf7823860dc6d09782066b0") + + depends_on("cxx", type="build") + depends_on("cmake@3.5:", type="build") + + depends_on("sfml@:2") + depends_on("partons-elementary-utils") + depends_on("eigen@3") diff --git a/repos/spack_repo/builtin/packages/patch/package.py b/repos/spack_repo/builtin/packages/patch/package.py index a839cc992f1..f0dab194486 100644 --- a/repos/spack_repo/builtin/packages/patch/package.py +++ b/repos/spack_repo/builtin/packages/patch/package.py @@ -21,9 +21,10 @@ class Patch(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") + version("2.8", sha256="f87cee69eec2b4fcbf60a396b030ad6aa3415f192aa5f7ee84cad5e11f7f5ae3") version("2.7.6", sha256="ac610bda97abe0d9f6b7c963255a11dcb196c25e337c61f94e4778d632f1d8fd") version("2.7.5", sha256="fd95153655d6b95567e623843a0e77b81612d502ecf78a489a4aed7867caa299") - depends_on("c", type="build") # generated + depends_on("c", type="build") build_directory = "spack-build" diff --git a/repos/spack_repo/builtin/packages/patchelf/package.py b/repos/spack_repo/builtin/packages/patchelf/package.py index b17709e5757..1463b6cd864 100644 --- a/repos/spack_repo/builtin/packages/patchelf/package.py +++ b/repos/spack_repo/builtin/packages/patchelf/package.py @@ -76,7 +76,7 @@ def url_for_version(self, version): def test_version(self): """ensure patchelf version match""" # Check patchelf in prefix and reports the correct version - patchelf = which(self.prefix.bin.patchelf) + patchelf = which(self.prefix.bin.patchelf, required=True) out = patchelf("--version", output=str.split, error=str.split) expected = f"patchelf {self.spec.version}" assert expected in out, f"Expected '{expected}' in output" @@ -86,7 +86,7 @@ def test_rpath_change(self): currdir = os.getcwd() hello_file = self.test_suite.current_test_data_dir.join("hello") - patchelf = which(self.prefix.bin.patchelf) + patchelf = which(self.prefix.bin.patchelf, required=True) patchelf("--set-rpath", currdir, hello_file) out = patchelf("--print-rpath", hello_file, output=str.split, error=str.split) assert currdir in out, f"Expected '{currdir}' in output" diff --git a/repos/spack_repo/builtin/packages/pbzip2/package.py b/repos/spack_repo/builtin/packages/pbzip2/package.py new file mode 100644 index 00000000000..cbf2a3a3369 --- /dev/null +++ b/repos/spack_repo/builtin/packages/pbzip2/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.makefile import MakefilePackage + +from spack.package import * + + +class Pbzip2(MakefilePackage): + """PBZIP2 is a parallel implementation of the bzip2 block-sorting file + compressor that uses pthreads and achieves near-linear speedup on SMP + machines. The output of this version is fully compatible with bzip2 v1.0.2 + or newer (ie: anything compressed with pbzip2 can be decompressed with + bzip2). PBZIP2 should work on any system that has a pthreads compatible C++ + compiler (such as gcc).""" + + homepage = "http://compression.great-site.net/pbzip2/" + url = "https://launchpad.net/pbzip2/1.1/1.1.13/+download/pbzip2-1.1.13.tar.gz" + + maintainers("Markus92") + + license("bzip2-1.0.6", checked_by="Markus92") + + version("1.1.13", sha256="8fd13eaaa266f7ee91f85c1ea97c86d9c9cc985969db9059cdebcb1e1b7bdbe6") + + depends_on("cxx", type="build") + depends_on("bzip2 +shared", type=("build", "run")) + + def edit(self, spec, prefix): + makefile = FileFilter("Makefile") + makefile.filter("PREFIX = .*", f"PREFIX = {prefix}") + + def flag_handler(self, name: str, flags: List[str]): + if name == "cxxflags": + # pbzip2 uses C99 PRIuMAX macros without the C++11-required space + # between the string literal and the macro (e.g., "%"PRIuMAX). + # Clang-based compilers (including Intel oneAPI icpx) treat this + # as an error. Suppress it since the code is functionally correct. + if ( + self.spec.satisfies("%cxx=clang") + or self.spec.satisfies("%cxx=apple-clang") + or self.spec.satisfies("%cxx=oneapi") + ): + flags.append("-Wno-reserved-user-defined-literal") + return (flags, None, None) diff --git a/repos/spack_repo/builtin/packages/pciutils/package.py b/repos/spack_repo/builtin/packages/pciutils/package.py index bacbe7faf77..4ca899a37b7 100644 --- a/repos/spack_repo/builtin/packages/pciutils/package.py +++ b/repos/spack_repo/builtin/packages/pciutils/package.py @@ -2,6 +2,9 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import glob +import os + from spack_repo.builtin.build_systems.makefile import MakefilePackage from spack.package import * @@ -19,16 +22,34 @@ class Pciutils(MakefilePackage): version("3.6.4", sha256="551d0ac33f030868b7e95c29e58dc2b1882455dbc9c15c15adf7086e664131f1") version("3.6.3", sha256="7ab0fbb35cffa326eb852539260562bac14f3d27cda8c70bc2cf3211ed97c014") - variant("lib", default=False, description="Install libraries with headers") + variant("shared", default=False, description="Build shared libraries instead of static ones") depends_on("c", type="build") # generated def build(self, spec, prefix): - make("PREFIX={0}".format(prefix)) + args = ["PREFIX={0}".format(prefix)] + if "+shared" in spec: + args.append("SHARED=yes") + make(*args) def install(self, spec, prefix): - if "+lib" in spec: + if "+shared" in spec: make("install-lib", "install", "PREFIX={0}".format(prefix)) + # Find the actual shared library file (libpci.so.*) and create the symlink + lib_dir = self.prefix.lib + so_candidates = sorted(glob.glob(os.path.join(lib_dir, "libpci.so.*")), reverse=True) + # Exclude the symlink itself if it exists + so_candidates = [f for f in so_candidates if os.path.basename(f) != "libpci.so"] + if so_candidates: + symlink_path = os.path.join(lib_dir, "libpci.so") + # Remove existing symlink or file if present + if os.path.islink(symlink_path) or os.path.exists(symlink_path): + os.remove(symlink_path) + os.symlink(os.path.basename(so_candidates[0]), symlink_path) + major_version = str(self.version).split(".")[0] + libname = f"libpci.so.{major_version}" + symlink_path = os.path.join(lib_dir, libname) + os.symlink(os.path.basename(so_candidates[0]), symlink_path) else: make("install", "PREFIX={0}".format(prefix)) diff --git a/repos/spack_repo/builtin/packages/pcl/files/boost187-asio.patch b/repos/spack_repo/builtin/packages/pcl/files/boost187-asio.patch new file mode 100644 index 00000000000..2f21ea18f53 --- /dev/null +++ b/repos/spack_repo/builtin/packages/pcl/files/boost187-asio.patch @@ -0,0 +1,110 @@ +From 4fc309ed9c98274a66f548c4e8d93c9f4dfcda11 Mon Sep 17 00:00:00 2001 +From: opaL1022 +Date: Sat, 13 Sep 2025 07:40:57 +0800 +Subject: [PATCH] Boost 1.87 Asio: io_context, make_address, resolver and + io_context::restart() + +--- + io/include/pcl/io/hdl_grabber.h | 2 +- + io/include/pcl/io/robot_eye_grabber.h | 2 +- + io/include/pcl/io/tim_grabber.h | 2 +- + io/src/hdl_grabber.cpp | 2 +- + io/src/robot_eye_grabber.cpp | 2 +- + io/src/tim_grabber.cpp | 2 +- + io/src/vlp_grabber.cpp | 2 +- + 7 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/io/include/pcl/io/hdl_grabber.h b/io/include/pcl/io/hdl_grabber.h +index f149346..233ff26 100644 +--- a/io/include/pcl/io/hdl_grabber.h ++++ b/io/include/pcl/io/hdl_grabber.h +@@ -274,7 +274,7 @@ namespace pcl + boost::asio::ip::udp::endpoint udp_listener_endpoint_; + boost::asio::ip::address source_address_filter_; + std::uint16_t source_port_filter_; +- boost::asio::io_service hdl_read_socket_service_; ++ boost::asio::io_context hdl_read_socket_service_; + boost::asio::ip::udp::socket *hdl_read_socket_; + std::string pcap_file_name_; + std::thread *queue_consumer_thread_; +diff --git a/io/include/pcl/io/robot_eye_grabber.h b/io/include/pcl/io/robot_eye_grabber.h +index 5248504..4ed975d 100644 +--- a/io/include/pcl/io/robot_eye_grabber.h ++++ b/io/include/pcl/io/robot_eye_grabber.h +@@ -131,7 +131,7 @@ namespace pcl + + boost::asio::ip::address sensor_address_; + boost::asio::ip::udp::endpoint sender_endpoint_; +- boost::asio::io_service io_service_; ++ boost::asio::io_context io_service_; + std::shared_ptr socket_; + std::shared_ptr socket_thread_; + std::shared_ptr consumer_thread_; +diff --git a/io/include/pcl/io/tim_grabber.h b/io/include/pcl/io/tim_grabber.h +index 786e501..91d8148 100644 +--- a/io/include/pcl/io/tim_grabber.h ++++ b/io/include/pcl/io/tim_grabber.h +@@ -128,7 +128,7 @@ class PCL_EXPORTS TimGrabber : public Grabber + std::vector distances_; + + boost::asio::ip::tcp::endpoint tcp_endpoint_; +- boost::asio::io_service tim_io_service_; ++ boost::asio::io_context tim_io_service_; + boost::asio::ip::tcp::socket tim_socket_; + //// wait time for receiving data (on the order of milliseconds) + unsigned int wait_time_milliseconds_ = 0; +diff --git a/io/src/hdl_grabber.cpp b/io/src/hdl_grabber.cpp +index c54f68e..adce104 100644 +--- a/io/src/hdl_grabber.cpp ++++ b/io/src/hdl_grabber.cpp +@@ -287,7 +287,7 @@ pcl::HDLGrabber::loadHDL32Corrections () + boost::asio::ip::address + pcl::HDLGrabber::getDefaultNetworkAddress () + { +- return (boost::asio::ip::address::from_string ("192.168.3.255")); ++ return (boost::asio::ip::make_address ("192.168.3.255")); + } + + ///////////////////////////////////////////////////////////////////////////// +diff --git a/io/src/robot_eye_grabber.cpp b/io/src/robot_eye_grabber.cpp +index 2db6da1..22574a2 100644 +--- a/io/src/robot_eye_grabber.cpp ++++ b/io/src/robot_eye_grabber.cpp +@@ -269,7 +269,7 @@ void + pcl::RobotEyeGrabber::socketThreadLoop () + { + asyncSocketReceive(); +- io_service_.reset(); ++ io_service_.restart(); + io_service_.run(); + } + +diff --git a/io/src/tim_grabber.cpp b/io/src/tim_grabber.cpp +index a97b9e3..5bfedcc 100644 +--- a/io/src/tim_grabber.cpp ++++ b/io/src/tim_grabber.cpp +@@ -184,7 +184,7 @@ pcl::TimGrabber::start () + + try { + boost::asio::ip::tcp::resolver resolver (tim_io_service_); +- tcp_endpoint_ = *resolver.resolve (tcp_endpoint_); ++ tcp_endpoint_ = ((*resolver.resolve(tcp_endpoint_).begin())).endpoint(); + tim_socket_.connect (tcp_endpoint_); + } + catch (std::exception& e) +diff --git a/io/src/vlp_grabber.cpp b/io/src/vlp_grabber.cpp +index b35087b..8e95b98 100644 +--- a/io/src/vlp_grabber.cpp ++++ b/io/src/vlp_grabber.cpp +@@ -92,7 +92,7 @@ pcl::VLPGrabber::loadVLP16Corrections () + boost::asio::ip::address + pcl::VLPGrabber::getDefaultNetworkAddress () + { +- return (boost::asio::ip::address::from_string ("255.255.255.255")); ++ return (boost::asio::ip::make_address ("255.255.255.255")); + } + + ///////////////////////////////////////////////////////////////////////////// +-- +2.27.0 + diff --git a/repos/spack_repo/builtin/packages/pcl/package.py b/repos/spack_repo/builtin/packages/pcl/package.py index fcd2753b034..db377ca6f85 100644 --- a/repos/spack_repo/builtin/packages/pcl/package.py +++ b/repos/spack_repo/builtin/packages/pcl/package.py @@ -17,6 +17,7 @@ class Pcl(CMakePackage): license("BSD-3-Clause") + version("1.15.1", sha256="f187b2646422ae6fb6daf7eec2d62c538ae7fe626397ed649c0e9b5a5b862b5a") version("1.14.1", sha256="cc3dc26a9ea176cb588fb1f182324399dbaf11e5ba1bea95c7d39005b7a5d352") version("1.13.1", sha256="be4d499c066203a3c296e2f7e823d6209be5983415f2279310ed1c9abb361d30") version("1.13.0", sha256="bd110789f6a7416ed1c58da302afbdb80f8d297a9e23cc02fd78ab78b4762698") @@ -24,13 +25,14 @@ class Pcl(CMakePackage): version("1.12.0", sha256="606a2d5c7af304791731d6b8ea79365bc8f2cd75908006484d71ecee01d9b51c") version("1.11.1", sha256="19d1a0bee2bc153de47c05da54fc6feb23393f306ab2dea2e25419654000336e") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("cmake@3.5:", type="build") depends_on("cmake@3.10:", when="@1.12.1:", type="build") - depends_on("eigen@3.1:") - depends_on("eigen@3.3:", when="@1.13:") + depends_on("eigen@3.1:3") + # support for eigen5 not yet in tagged release + depends_on("eigen@3.3:3", when="@1.13:") depends_on("flann@1.7:") depends_on("flann@1.9.1:", when="@1.12:") depends_on("boost@1.55:") @@ -44,6 +46,9 @@ class Pcl(CMakePackage): "https://github.com/PointCloudLibrary/pcl/commit/dff16af269fbd2c15772d53064882b2bf8c2ffe9.patch?full_index=1", sha256="17a7a7aec8e63701294612cbb25d46ac1ce58f643dbc68e1517329ae0b68956d", ) + # Fix build with Boost 1.87: #49090 + with when("@1.14.1 ^boost@1.87:"): + patch("files/boost187-asio.patch") # TODO: replace this with an explicit list of components of Boost, # for instance depends_on('boost +filesystem') diff --git a/repos/spack_repo/builtin/packages/pcre/package.py b/repos/spack_repo/builtin/packages/pcre/package.py index 73556103c23..7f7bdca8b9a 100644 --- a/repos/spack_repo/builtin/packages/pcre/package.py +++ b/repos/spack_repo/builtin/packages/pcre/package.py @@ -40,7 +40,7 @@ class Pcre(AutotoolsPackage, CMakePackage): variant( "utf", default=True, - description="Enable support for UTF-8/16/32, " "incompatible with EBCDIC.", + description="Enable support for UTF-8/16/32, incompatible with EBCDIC.", ) variant("shared", default=True, description="Build shared libraries") diff --git a/repos/spack_repo/builtin/packages/pcre2/package.py b/repos/spack_repo/builtin/packages/pcre2/package.py index a781ee7b1e1..fb2284180a4 100644 --- a/repos/spack_repo/builtin/packages/pcre2/package.py +++ b/repos/spack_repo/builtin/packages/pcre2/package.py @@ -92,8 +92,9 @@ def cmake_args(self): args.append(self.define_from_variant("PCRE2_SUPPORT_JIT", "jit")) args.append(self.define_from_variant("PCRE2_STATIC_PIC", "pic")) # Don't need to check for on or off, just if the variant is available - # If not specified, the build system will build both static and shared - # by default, this is in parity with the autotools build, so on + # If not specified, the build system will build only static + # by default, so we enable shared libs when not on Windows + # to be in parity with the autotools build, so on # linux and MacOS, the produced binaries are identical, Windows is the # only outlier if self.spec.satisfies("platform=windows"): @@ -102,5 +103,7 @@ def cmake_args(self): # this is bad practice and a problem on some platforms # Enforce mutual exclusivity here args.append(self.define("BUILD_STATIC_LIBS", not self.spec.satisfies("+shared"))) + else: + args.append(self.define("BUILD_SHARED_LIBS", True)) return args diff --git a/repos/spack_repo/builtin/packages/pdal/package.py b/repos/spack_repo/builtin/packages/pdal/package.py index b8a38fa2150..e3991dde422 100644 --- a/repos/spack_repo/builtin/packages/pdal/package.py +++ b/repos/spack_repo/builtin/packages/pdal/package.py @@ -19,6 +19,7 @@ class Pdal(CMakePackage): license("BSD") + version("2.9.2", sha256="a93f9e5d56814fd9c46a0f48de6c0f65b00ce09984c9f3293774a9c78e094266") version("2.6.2", sha256="ec4175cfe19dc6b70a0434850f837317f7202f84b63cd8dcc65ca83e04678f57") version("2.6.1", sha256="da6e615f01b6110414ef3e2250f112e49df129091abc91ba6866bb01dc68454e") version("2.6.0", sha256="12eedeac16ec3aaef42f06078f03f657701c25781207a8e09a3547519228780e") @@ -27,7 +28,8 @@ class Pdal(CMakePackage): version("2.4.3", sha256="e1a910d593311e68b51f32d1f4f8fe4327b97ae7a8de209147b6111091b6f75b") version("2.3.0", sha256="8ae848e9b3fe5149a9277fe60e10b9858edb9a3cf1a40728f11712498e5da13a") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("cmake@3.13:", type="build") depends_on("gdal@3:") diff --git a/repos/spack_repo/builtin/packages/pdc/package.py b/repos/spack_repo/builtin/packages/pdc/package.py index 1b2249701fb..d823024c981 100644 --- a/repos/spack_repo/builtin/packages/pdc/package.py +++ b/repos/spack_repo/builtin/packages/pdc/package.py @@ -25,16 +25,6 @@ class Pdc(CMakePackage): version("0.5", sha256="d8ee6ad31670882dec8a9a131cd491a7134953acf3d18abf288605f3cc517636") version("0.4", sha256="eb2c2b69e5cdbca3210b8d72a646c16a2aa004ca08792f28cc6290a9a3ad6c8a") version("0.3", sha256="14a3abd5e1e604f9527105709fca545bcdebe51abd2b89884db74d48a38b5443") - version( - "0.2", - sha256="2829e74da227913a1a8e3e4f64e8f422ab9c0a049f8d73ff7b6ca12463959f8b", - deprecated=True, - ) - version( - "0.1", - sha256="01b4207ecf71594a7f339c315f2869b3fa8fbd34b085963dc4c1bdc5b66bb93e", - deprecated=True, - ) version("stable", branch="stable") version("develop", branch="develop") @@ -45,7 +35,7 @@ class Pdc(CMakePackage): conflicts("%clang") depends_on("libfabric") - depends_on("mercury@2.0.0", when="@0.1:0.3") + depends_on("mercury@2.0.0", when="@:0.3") depends_on("mercury@2.2.0", when="@0.4:") depends_on("mpi") diff --git a/repos/spack_repo/builtin/packages/pdf2svg/package.py b/repos/spack_repo/builtin/packages/pdf2svg/package.py index 01311639bab..32f04e01d24 100644 --- a/repos/spack_repo/builtin/packages/pdf2svg/package.py +++ b/repos/spack_repo/builtin/packages/pdf2svg/package.py @@ -15,15 +15,23 @@ class Pdf2svg(AutotoolsPackage): license("GPL-2.0-only") + version("0.2.4", sha256="fd765256f18b5890639e93cabdf631b640966ed1ea9ebd561aede9d3be2155e4") version("0.2.3", sha256="4fb186070b3e7d33a51821e3307dce57300a062570d028feccd4e628d50dea8a") version("0.2.2", sha256="e5f1d9b78821e44cd85379fb07f38a42f00bb2bde3743b95301ff8c0a5ae229a") depends_on("c", type="build") # generated - depends_on("pkgconfig@0.9.0:", type="build") + depends_on("pkgconfig", type="build") depends_on("cairo@1.2.6:") + depends_on("cairo@1.16:", when="@0.2.4:") depends_on("poppler@0.5.4:+glib") + conflicts( + "^cairo@1.17.6:", + when="@:0.2.3", + msg="earlier versions produce wrong output with newer cairo versions", + ) + # Note: the latest version of poppler requires glib 2.41+, # but pdf2svg uses g_type_init, which is deprecated in glib 2.36+. # At some point, we will need to force pdf2svg to use older diff --git a/repos/spack_repo/builtin/packages/pdi/package.py b/repos/spack_repo/builtin/packages/pdi/package.py index 34ce98f2d64..408fc60d520 100644 --- a/repos/spack_repo/builtin/packages/pdi/package.py +++ b/repos/spack_repo/builtin/packages/pdi/package.py @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from glob import glob + from spack_repo.builtin.build_systems.cmake import CMakePackage from spack.package import * @@ -28,13 +30,22 @@ class Pdi(CMakePackage): # and the last patch version of the previous 2 minors # all the rest is marked as deprecated version("develop", branch="main", no_cache=True) - version("1.9.2", sha256="0430d5898980435e5602b67188264621a27f71969ff886efaa2e6d43a45caac4") + version("1.11.0", sha256="a3e5ed6f890a8599d67e1666a14a6c5b1084a0cbb8a748bf40fc53df47d39410") + version("1.10.1", sha256="f2409611310255360867e3c74d44e055f45c87071ef8881665ff30a7940e1449") + version( + "1.10.0", + sha256="8bda1ed83bdb152a047a45a48f896466e7ebf5163030405c15dbfa4e2e788143", + deprecated=True, + ) + version("1.9.3", sha256="ab390e51e3b7298d6b09484a443dc267651aed5978c711f8804848b19ab1527e") version( - "1.9.1-fixed", sha256="13d052a7d5d53271638382f06e9da0d58b01ed9cfdf9c4fa1e82367b9e1732e1" + "1.9.2", + sha256="0430d5898980435e5602b67188264621a27f71969ff886efaa2e6d43a45caac4", + deprecated=True, ) version( - "1.9.1", - sha256="5bb6257efb32674db69e2d89a8947015a2f1e284dbe8dcfdc601f6412640b551", + "1.9.1-fixed", + sha256="13d052a7d5d53271638382f06e9da0d58b01ed9cfdf9c4fa1e82367b9e1732e1", deprecated=True, ) version( @@ -42,7 +53,11 @@ class Pdi(CMakePackage): sha256="04fee7851c4f2a156daddf7eb2c3c3b0132d80d3f0e448cdeebda0b7c4595639", deprecated=True, ) - version("1.8.3", sha256="df7200289a2a368ec874140039b417abdfe681b57fb1b9f4c52f924952226020") + version( + "1.8.3", + sha256="df7200289a2a368ec874140039b417abdfe681b57fb1b9f4c52f924952226020", + deprecated=True, + ) version( "1.8.2", sha256="bb4d1654c97f7ff379067adbff339f8b4117c0cf9432f41f1a5cb20a747cac1a", @@ -69,34 +84,42 @@ class Pdi(CMakePackage): depends_on("cxx", type="build") depends_on("fortran", type="build", when="+fortran") + depends_on("cmake@3.22.1:", type=("build"), when="@1.10.0:") depends_on("cmake@3.16.3:", type=("build")) + depends_on("doxygen@1.9.1:", type=("build"), when="@1.10.0: +docs") depends_on("doxygen@1.8.17:", type=("build"), when="+docs") depends_on("paraconf@1: +shared", type=("link", "run")) depends_on("paraconf +fortran", type=("link", "run"), when="+fortran") depends_on("pkgconfig", type=("build")) + depends_on("python@3.10.6:3", type=("build", "link", "run"), when="@1.10.0: +python") depends_on("python@3.8.2:3", type=("build", "link", "run"), when="+python") depends_on( "python@3:3.11.9", type=("build", "link", "run"), when="@:1.8.2 +python" ) # Needs distutils. + extends("python", when="+python") + depends_on("py-pybind11@2.9.1:2", type=("link"), when="@1.10.0: +python") depends_on("py-pybind11@2.4.3:2", type=("link"), when="+python") + depends_on("py-numpy@1.21.5:2", type=("run"), when="@1.10.0: +python") + depends_on("py-numpy@1.17.4:2", type=("run"), when="+python") depends_on( "py-setuptools", type=("build", "link"), when="@1.8.3: +python^python@3.12:" ) # Needs distutils. - depends_on("spdlog@1.5:", type=("link"), when="@1.5:") + depends_on("spdlog@1.9.2:1", type=("link"), when="@1.10.0:") + depends_on("spdlog@1.5:1", type=("link")) root_cmakelists_dir = "pdi" def patch(self): # Run before build so that the standard Spack sbang install hook can fix # up the path to the python binary the zpp scripts requires. We dont use - # filter_shebang("vendor/zpp-1.0.16/bin/zpp.in") because the template is + # filter_shebang("vendor/zpp-*/bin/zpp.in") because the template is # not yet instantiated and PYTHON_EXECUTABLE is not yet large enough to # trigger the replacement via filter_shebang. - filter_file( - r"#!@PYTHON_EXECUTABLE@ -B", - sbang_shebang_line() + "\n#!@PYTHON_EXECUTABLE@ -B", - "vendor/zpp-1.0.16/bin/zpp.in", - ) + zpp_in = glob("vendor/zpp-*/bin/zpp.in")[0] + with open(zpp_in, "r+", encoding="utf-8") as f: + content = f.read() + f.seek(0) + f.write(f"{sbang_shebang_line()}\n{content}") @staticmethod def version_url(version): diff --git a/repos/spack_repo/builtin/packages/pdiplugin_decl_hdf5/package.py b/repos/spack_repo/builtin/packages/pdiplugin_decl_hdf5/package.py index 2b494be6a19..1c6864298bf 100644 --- a/repos/spack_repo/builtin/packages/pdiplugin_decl_hdf5/package.py +++ b/repos/spack_repo/builtin/packages/pdiplugin_decl_hdf5/package.py @@ -35,9 +35,12 @@ class PdipluginDeclHdf5(CMakePackage): depends_on("cxx", type="build") depends_on("fortran", type="build", when="+fortran") + depends_on("cmake@3.22.1:", type=("build"), when="@1.10.0:") depends_on("cmake@3.16.3:", type=("build")) + depends_on("hdf5@1.10.7:1 +shared", type=("build", "link", "run"), when="@1.10.0:") depends_on("hdf5@1.10.4:1 +shared", type=("build", "link", "run")) depends_on("hdf5 +mpi", type=("build", "link", "run"), when="+mpi") + depends_on("mpi", when="+mpi") for v in Pdi.versions: depends_on("pdi@" + str(v), type=("link", "run"), when="@" + str(v)) depends_on("pkgconfig", type=("build")) diff --git a/repos/spack_repo/builtin/packages/pdiplugin_decl_netcdf/package.py b/repos/spack_repo/builtin/packages/pdiplugin_decl_netcdf/package.py index 2fd5343ec24..9823a5d538b 100644 --- a/repos/spack_repo/builtin/packages/pdiplugin_decl_netcdf/package.py +++ b/repos/spack_repo/builtin/packages/pdiplugin_decl_netcdf/package.py @@ -30,7 +30,10 @@ class PdipluginDeclNetcdf(CMakePackage): depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("cmake@3.22.1:", type=("build"), when="@1.10.0:") depends_on("cmake@3.16.3:", type=("build")) + depends_on("mpi", when="+mpi") + depends_on("netcdf-c@4.8.1:4", type=("link"), when="@1.10.0:") depends_on("netcdf-c@4.7.3:4", type=("link")) depends_on("netcdf-c+mpi", type=("link"), when="+mpi") for v in Pdi.versions: diff --git a/repos/spack_repo/builtin/packages/pdiplugin_mpi/package.py b/repos/spack_repo/builtin/packages/pdiplugin_mpi/package.py index 94ffd0e7599..cd69b378b0f 100644 --- a/repos/spack_repo/builtin/packages/pdiplugin_mpi/package.py +++ b/repos/spack_repo/builtin/packages/pdiplugin_mpi/package.py @@ -28,6 +28,7 @@ class PdipluginMpi(CMakePackage): depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("cmake@3.22.1:", type=("build"), when="@1.10.0:") depends_on("cmake@3.16.3:", type=("build")) depends_on("mpi", type=("build", "link", "run")) for v in Pdi.versions: diff --git a/repos/spack_repo/builtin/packages/pdiplugin_pycall/package.py b/repos/spack_repo/builtin/packages/pdiplugin_pycall/package.py index 7efd92bb343..15945e0e456 100644 --- a/repos/spack_repo/builtin/packages/pdiplugin_pycall/package.py +++ b/repos/spack_repo/builtin/packages/pdiplugin_pycall/package.py @@ -28,6 +28,7 @@ class PdipluginPycall(CMakePackage): depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("cmake@3.22.1:", type=("build"), when="@1.10.0:") depends_on("cmake@3.16.3:", type=("build")) for v in Pdi.versions: depends_on("pdi+python@" + str(v), type=("link", "run"), when="@" + str(v)) diff --git a/repos/spack_repo/builtin/packages/pdiplugin_serialize/package.py b/repos/spack_repo/builtin/packages/pdiplugin_serialize/package.py index d1efc8a2b0a..e9e8daf5126 100644 --- a/repos/spack_repo/builtin/packages/pdiplugin_serialize/package.py +++ b/repos/spack_repo/builtin/packages/pdiplugin_serialize/package.py @@ -29,6 +29,7 @@ class PdipluginSerialize(CMakePackage): depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("cmake@3.22.1:", type=("build"), when="@1.10.0:") depends_on("cmake@3.16.3:", type=("build")) for v in Pdi.versions: depends_on("pdi@" + str(v), type=("link", "run"), when="@" + str(v)) diff --git a/repos/spack_repo/builtin/packages/pdiplugin_set_value/package.py b/repos/spack_repo/builtin/packages/pdiplugin_set_value/package.py index 1209bd1a74f..8ebca9ad279 100644 --- a/repos/spack_repo/builtin/packages/pdiplugin_set_value/package.py +++ b/repos/spack_repo/builtin/packages/pdiplugin_set_value/package.py @@ -29,11 +29,13 @@ class PdipluginSetValue(CMakePackage): depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("cmake@3.22.1:", type=("build"), when="@1.10.0:") depends_on("cmake@3.16.3:", type=("build")) for v in Pdi.versions: depends_on("pdi@" + str(v), type=("link", "run"), when="@" + str(v)) depends_on("pkgconfig", type=("build")) - depends_on("spdlog@1.5:", type=("link")) + depends_on("spdlog@1.9.2:1", type=("link"), when="@1.10.0:") + depends_on("spdlog@1.5:1", type=("link")) root_cmakelists_dir = "plugins/set_value" diff --git a/repos/spack_repo/builtin/packages/pdiplugin_trace/package.py b/repos/spack_repo/builtin/packages/pdiplugin_trace/package.py index a591788f181..960955e8830 100644 --- a/repos/spack_repo/builtin/packages/pdiplugin_trace/package.py +++ b/repos/spack_repo/builtin/packages/pdiplugin_trace/package.py @@ -29,6 +29,7 @@ class PdipluginTrace(CMakePackage): depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("cmake@3.22.1:", type=("build"), when="@1.10.0:") depends_on("cmake@3.16.3:", type=("build")) for v in Pdi.versions: depends_on("pdi@" + str(v), type=("link", "run"), when="@" + str(v)) diff --git a/repos/spack_repo/builtin/packages/pdiplugin_user_code/package.py b/repos/spack_repo/builtin/packages/pdiplugin_user_code/package.py index 25384507ed6..7efcffadcbd 100644 --- a/repos/spack_repo/builtin/packages/pdiplugin_user_code/package.py +++ b/repos/spack_repo/builtin/packages/pdiplugin_user_code/package.py @@ -30,6 +30,7 @@ class PdipluginUserCode(CMakePackage): depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("cmake@3.22.1:", type=("build"), when="@1.10.0:") depends_on("cmake@3.16.3:", type=("build")) for v in Pdi.versions: depends_on("pdi@" + str(v), type=("link", "run"), when="@" + str(v)) diff --git a/repos/spack_repo/builtin/packages/pdsh/package.py b/repos/spack_repo/builtin/packages/pdsh/package.py index da23854fffe..706c09ac0bf 100644 --- a/repos/spack_repo/builtin/packages/pdsh/package.py +++ b/repos/spack_repo/builtin/packages/pdsh/package.py @@ -12,18 +12,42 @@ class Pdsh(AutotoolsPackage): PDSH: a high performance, parallel remote shell utility """ - homepage = "https://github.com/grondo/pdsh" - url = "https://github.com/grondo/pdsh/archive/pdsh-2.31.tar.gz" + homepage = "https://github.com/chaos/pdsh" + url = "https://github.com/chaos/pdsh/archive/refs/tags/pdsh-2.31.tar.gz" + git = "https://github.com/chaos/pdsh.git" license("GPL-2.0") + version("2.35", tag="pdsh-2.35", commit="64a7d3771e0298bbfa1edc25364700a680c183cd") + version("2.34", tag="pdsh-2.34", commit="3f7e40f5d287cff388031388071c87b52d3ebe44") + version("2.33", tag="pdsh-2.33", commit="79aa5a45475abce5ec88d7566b39a4a2d87d2f64") + version("2.32", tag="pdsh-2.32", commit="84472b845c9c3bbdb2421d98dda22978ed424ff8") + # get commit has of tag via 'git rev-list -n 1 tags/$TAG' in chaos/pdsh repo + # configure.ac update in source repo: now uses 'git describe --always' to get the version version("2.31", sha256="0ee066ce395703285cf4f6cf00b54b7097d12457a4b1c146bc6f33d8ba73caa7") - variant("ssh", default=True, description="Build with ssh module") + patch( + "https://github.com/chaos/pdsh/commit/01b1a2150e5d2c1a065aeb05a504f1f92b2cc147.patch?full_index=1", + sha256="3effcc73c7b5efbe73d12579eb09982c160a116edf86f0bdb315daeebce0802e", + when="@2.33:", + # when="@8c173e645dfc5cb6619c4d0647f3fe495ad4ce7f:", + ) # first commit after 2924dd8ff07b31a81c4a81254ae1e1f81b39595e (shortly after pdsh-2.32) + + # ## conflict when patch cannot be applied before and at + # ## commit 2924dd8ff07b31a81c4a81254ae1e1f81b39595e + conflicts("%gcc@15:", when="@:2.32") + variant("ssh", default=True, description="Build with ssh module") variant("static_modules", default=True, description="Build with static modules") - depends_on("c", type="build") # generated + depends_on("c", type="build") + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + depends_on("m4", type="build") + + def autoreconf(self, spec, prefix): + autoreconf("--install", "--verbose", "--force") def configure_args(self): args = [] diff --git a/repos/spack_repo/builtin/packages/pdt/package.py b/repos/spack_repo/builtin/packages/pdt/package.py index cae1db7c85e..5fac5a26cbd 100644 --- a/repos/spack_repo/builtin/packages/pdt/package.py +++ b/repos/spack_repo/builtin/packages/pdt/package.py @@ -87,4 +87,4 @@ def link_arch_dirs(self): src = join_path(path, d) dst = join_path(self.prefix, d) if os.path.isdir(src) and not os.path.exists(dst): - os.symlink(join_path(dir, d), dst) + symlink(join_path(dir, d), dst) diff --git a/repos/spack_repo/builtin/packages/pelican/package.py b/repos/spack_repo/builtin/packages/pelican/package.py new file mode 100644 index 00000000000..de8f67a87d3 --- /dev/null +++ b/repos/spack_repo/builtin/packages/pelican/package.py @@ -0,0 +1,65 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.go import GoPackage + +from spack.package import * + + +class Pelican(GoPackage): + """The Pelican command line tool allows one to use a Pelican + federation as a client and serve datasets through running a + Pelican origin service.""" + + homepage = "https://pelicanplatform.org/" + url = "https://github.com/PelicanPlatform/pelican/archive/refs/tags/v7.24.3.tar.gz" + git = "https://github.com/PelicanPlatform/pelican.git" + + maintainers("wdconinc") + + license("Apache-2.0", checked_by="wdconinc") + + version("7.24.3", sha256="fd73d4c9193f3a25d82c696e7269d10f84f4941786e957c8dffa1562d4b605a0") + + variant("server", default=False, description="Also build the pelican-server binary") + + depends_on("go@1.25:", type="build") + + @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 + # file to exist. Releases prior to v7.25 did not commit this placeholder, + # so we create it here to satisfy the embed directive without a full frontend + # build. + out_dir = join_path(self.stage.source_path, "web_ui", "frontend", "out") + mkdirp(out_dir) + touch(join_path(out_dir, "placeholder")) + + build_directory = "cmd" + + @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 + + @run_after("build", when="+server") + def build_server(self): + args = list(self.build_args) + args[args.index("-tags") + 1] = "forceposix,server" + args[args.index("-o") + 1] = "pelican-server" + with working_dir(self.build_directory): + go("build", *args) + + @run_after("install", when="+server") + def install_server(self): + install(join_path(self.build_directory, "pelican-server"), self.prefix.bin) diff --git a/repos/spack_repo/builtin/packages/percept/package.py b/repos/spack_repo/builtin/packages/percept/package.py index 60c0b323aa7..dfa0b6977fc 100644 --- a/repos/spack_repo/builtin/packages/percept/package.py +++ b/repos/spack_repo/builtin/packages/percept/package.py @@ -37,7 +37,7 @@ class Percept(CMakePackage): depends_on( "trilinos" "~shared+exodus+mpi+tpetra+epetra+epetraext+muelu+belos+ifpack2+amesos2" - "+zoltan+stk+boost~superlu-dist+superlu+hdf5+aztec+sacado" + "+zoltan+stk+boost~superlu-dist+hdf5+aztec+sacado" "~openmp+shards+intrepid" "@master,12.14.1:" ) diff --git a/repos/spack_repo/builtin/packages/percolator/package.py b/repos/spack_repo/builtin/packages/percolator/package.py new file mode 100644 index 00000000000..42e8c7e42fb --- /dev/null +++ b/repos/spack_repo/builtin/packages/percolator/package.py @@ -0,0 +1,61 @@ +# 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 Percolator(CMakePackage): + """Semi-supervised learning for peptide identification from shotgun proteomics datasets""" + + homepage = "http://percolator.ms/" + url = "https://github.com/percolator/percolator/archive/refs/tags/rel-3-08.tar.gz" + + license("Apache-2.0") + + version("3.8", sha256="24b67632f11b74104c153715e123906ed71dc62178c2f8df71de82f2240bf6c0") + version("3.7.1", sha256="f1c9833063cb4e99c51a632efc3f80c6b8f48a43fd440ea3eb0968af5c84b97a") + version("3.6.5", sha256="e386998046f59c34be01b1b0347709751d92f3a98e9a0079f8e7c5af5e2dcc8f") + + def url_for_version(self, version): + chunks = str(version).split(".") + + if len(chunks) == 3: + major, minor, patch = chunks + tag = f"rel-{major}-{int(minor):02}-{int(patch):02}" + elif len(chunks) == 2: + major, minor = chunks + tag = f"rel-{major}-{int(minor):02}" + else: + tag = f"rel-{version}" + + return f"https://github.com/percolator/percolator/archive/refs/tags/{tag}.tar.gz" + + variant("xml", default=True, description="Enables XML parsing (pepXML support)") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cmake@3.5:", type="build", when="@3.8:") + depends_on("cmake@2.8.11:", type="build", when="@3.6:3.7") + depends_on("boost@1.70:+filesystem+thread", type="build", when="@3.8:") + depends_on("boost@1.46:1.86+filesystem", type="build", when="@3.6:3.7") + + depends_on("xerces-c transcoder=none netaccessor=none", when="+xml") + depends_on("xsd", when="+xml") + depends_on("libtirpc@1.2:", when="+xml") + + depends_on("zlib") + depends_on("sqlite") + + def cmake_args(self): + return [self.define_from_variant("XML_SUPPORT", "xml")] + + def patch(self): + # The Boost::system target was removed in 1.88 + filter_file(r"(COMPONENTS filesystem) system", r"\1 ", "src/CMakeLists.txt") + + if self.spec.satisfies("@3.8.1:"): + filter_file("Boost::system", "", "src/CMakeLists.txt") diff --git a/repos/spack_repo/builtin/packages/perl/nvhpc-5.30.patch b/repos/spack_repo/builtin/packages/perl/nvhpc-5.30.patch deleted file mode 100644 index 5f3373bd1b5..00000000000 --- a/repos/spack_repo/builtin/packages/perl/nvhpc-5.30.patch +++ /dev/null @@ -1,88 +0,0 @@ ---- a/Configure 2020-10-08 12:20:33.969182412 -0700 -+++ b/Configure 2020-10-08 12:20:47.835314546 -0700 -@@ -4971,7 +4971,7 @@ - # and usrinc directly from the compiler. - # Note that ccname for clang is also gcc. - case "$ccname" in -- gcc) -+ XXX) - $echo 'extern int foo;' > try.c - set X `$cppstdin -v try.c 2>&1 | $awk '/^#include '$(BASEEXT)$(OBJ_EXT) XSUB-undef-XS_VERSION$(OBJ_EXT) XSUB-redefined-macros$(OBJ_EXT) $(O_FILES)'. $dtrace_o, - realclean => {FILES => 'const-c.inc const-xs.inc'}, - ($Config{gccversion} && $Config{d_attribute_deprecated} ? -- (CCFLAGS => $Config{ccflags} . ' -Wno-deprecated-declarations') : ()), -+ (CCFLAGS => $Config{ccflags}) : ()), - depend => { 'core.o' => 'core_or_not.inc', - 'notcore.o' => 'core_or_not.inc' }, - ); ---- a/Makefile.SH 2020-10-08 15:24:40.457848934 -0700 -+++ b/Makefile.SH 2020-10-08 15:25:21.289415093 -0700 -@@ -1140,8 +1140,8 @@ - # $(PERL_EXE) and ext because pod_lib.pl needs Digest::MD5 - # But also this ensures that all extensions are built before we try to scan - # them, which picks up Devel::PPPort's documentation. --pod/perltoc.pod: $(perltoc_pod_prereqs) $(PERL_EXE) $(ext) pod/buildtoc -- $(RUN_PERL) -f pod/buildtoc -q -+pod/perltoc.pod: $(perltoc_pod_prereqs) $(PERL_EXE) $(ext) $(MINIPERL_EXE) pod/buildtoc -+ $(MINIPERL) -f pod/buildtoc -q - - pod/perlapi.pod: pod/perlintern.pod - -@@ -1198,8 +1198,8 @@ - $spitshell >>$Makefile <>$Makefile <<'!NO!SUBS!' - install.perl: $(INSTALL_DEPENDENCE) installperl -- $(RUN_PERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) -+ $(MINIPERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) - -@test ! -s extras.lst || PATH="`pwd`:\${PATH}" PERL5LIB="`pwd`/lib" \$(RUN_PERL) -Ilib -MCPAN -e '@ARGV&&install(@ARGV)' `cat extras.lst` - - !NO!SUBS! diff --git a/repos/spack_repo/builtin/packages/perl/nvhpc-5.32.patch b/repos/spack_repo/builtin/packages/perl/nvhpc-5.32.patch deleted file mode 100644 index 655e560412f..00000000000 --- a/repos/spack_repo/builtin/packages/perl/nvhpc-5.32.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- a/Configure 2021-01-19 09:35:25.337234880 -0800 -+++ b/Configure 2021-01-19 09:36:43.001275967 -0800 -@@ -4979,7 +4979,7 @@ - # and usrinc directly from the compiler. - # Note that ccname for clang is also gcc. - case "$ccname" in -- gcc) -+ XXX) - $echo 'extern int foo;' > try.c - set X `$cppstdin -v try.c 2>&1 | $awk '/^#include >$Makefile <>$Makefile <<'!NO!SUBS!' - install.perl: $(INSTALL_DEPENDENCE) installperl -- $(RUN_PERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) -+ $(MINIPERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) - -@test ! -s extras.lst || PATH="`pwd`:\${PATH}" PERL5LIB="`pwd`/lib" \$(RUN_PERL) -Ilib -MCPAN -e '@ARGV&&install(@ARGV)' `cat extras.lst` - - !NO!SUBS! diff --git a/repos/spack_repo/builtin/packages/perl/nvhpc-5.34.patch b/repos/spack_repo/builtin/packages/perl/nvhpc-5.34.patch deleted file mode 100644 index 18b18b2e64b..00000000000 --- a/repos/spack_repo/builtin/packages/perl/nvhpc-5.34.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- a/Configure -+++ b/Configure -@@ -4862,7 +4862,7 @@ - # and usrinc directly from the compiler. - # Note that ccname for clang is also gcc. - case "$ccname" in -- gcc) -+ XXX) - realpath=`which realpath 2>/dev/null | sed 's/no realpath in.*//'` - $echo 'extern int foo;' > try.c - set X `$cppstdin -v try.c 2>&1 | $awk '/^#include >$Makefile <>$Makefile <<'!NO!SUBS!' - install.perl: $(INSTALL_DEPENDENCE) installperl -- $(RUN_PERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) -+ $(MINIPERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) - -@test ! -s extras.lst || PATH="`pwd`:\${PATH}" PERL5LIB="`pwd`/lib" \$(RUN_PERL) -Ilib -MCPAN -e '@ARGV&&install(@ARGV)' `cat extras.lst` - - !NO!SUBS! diff --git a/repos/spack_repo/builtin/packages/perl/package.py b/repos/spack_repo/builtin/packages/perl/package.py index 02b26ff0167..b221fb6e9da 100644 --- a/repos/spack_repo/builtin/packages/perl/package.py +++ b/repos/spack_repo/builtin/packages/perl/package.py @@ -34,137 +34,12 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package # explanation of version numbering scheme # Maintenance releases (even numbers) + version("5.42.0", sha256="e093ef184d7f9a1b9797e2465296f55510adb6dab8842b0c3ed53329663096dc") + version("5.40.2", sha256="10d4647cfbb543a7f9ae3e5f6851ec49305232ea7621aed24c7cfbb0bef4b70d") version("5.40.0", sha256="c740348f357396327a9795d3e8323bafd0fe8a5c7835fc1cbaba0cc8dfe7161f") - version("5.38.2", sha256="a0a31534451eb7b83c7d6594a497543a54d488bc90ca00f5e34762577f40655e") - version("5.38.0", sha256="213ef58089d2f2c972ea353517dc60ec3656f050dcc027666e118b508423e517") - version("5.36.3", sha256="f2a1ad88116391a176262dd42dfc52ef22afb40f4c0e9810f15d561e6f1c726a") - version("5.36.1", sha256="68203665d8ece02988fc77dc92fccbb297a83a4bb4b8d07558442f978da54cc1") - version("5.36.0", sha256="e26085af8ac396f62add8a533c3a0ea8c8497d836f0689347ac5abd7b7a4e00a") - - # End of life releases (deprecated) - version( - "5.34.1", - sha256="357951a491b0ba1ce3611263922feec78ccd581dddc24a446b033e25acf242a1", - deprecated=True, - ) - version( - "5.34.0", - sha256="551efc818b968b05216024fb0b727ef2ad4c100f8cb6b43fab615fa78ae5be9a", - deprecated=True, - ) - version( - "5.32.1", - sha256="03b693901cd8ae807231b1787798cf1f2e0b8a56218d07b7da44f784a7caeb2c", - deprecated=True, - ) - version( - "5.32.0", - sha256="efeb1ce1f10824190ad1cadbcccf6fdb8a5d37007d0100d2d9ae5f2b5900c0b4", - deprecated=True, - ) - version( - "5.30.3", - sha256="32e04c8bb7b1aecb2742a7f7ac0eabac100f38247352a73ad7fa104e39e7406f", - deprecated=True, - ) - version( - "5.30.2", - sha256="66db7df8a91979eb576fac91743644da878244cf8ee152f02cd6f5cd7a731689", - deprecated=True, - ) - version( - "5.30.1", - sha256="bf3d25571ff1ee94186177c2cdef87867fd6a14aa5a84f0b1fb7bf798f42f964", - deprecated=True, - ) - version( - "5.30.0", - sha256="851213c754d98ccff042caa40ba7a796b2cee88c5325f121be5cbb61bbf975f2", - deprecated=True, - ) - version( - "5.28.0", - sha256="7e929f64d4cb0e9d1159d4a59fc89394e27fa1f7004d0836ca0d514685406ea8", - deprecated=True, - ) - version( - "5.26.2", - sha256="572f9cea625d6062f8a63b5cee9d3ee840800a001d2bb201a41b9a177ab7f70d", - deprecated=True, - ) - version( - "5.24.1", - sha256="e6c185c9b09bdb3f1b13f678999050c639859a7ef39c8cad418448075f5918af", - deprecated=True, - ) - version( - "5.22.4", - sha256="ba9ef57c2b709f2dad9c5f6acf3111d9dfac309c484801e0152edbca89ed61fa", - deprecated=True, - ) - version( - "5.22.3", - sha256="1b351fb4df7e62ec3c8b2a9f516103595b2601291f659fef1bbe3917e8410083", - deprecated=True, - ) - version( - "5.22.2", - sha256="81ad196385aa168cb8bd785031850e808c583ed18a7901d33e02d4f70ada83c2", - deprecated=True, - ) - version( - "5.22.1", - sha256="2b475d0849d54c4250e9cba4241b7b7291cffb45dfd083b677ca7b5d38118f27", - deprecated=True, - ) - version( - "5.22.0", - sha256="0c690807f5426bbd1db038e833a917ff00b988bf03cbf2447fa9ffdb34a2ab3c", - deprecated=True, - ) - version( - "5.20.3", - sha256="3524e3a76b71650ab2f794fd68e45c366ec375786d2ad2dca767da424bbb9b4a", - deprecated=True, - ) - version( - "5.18.4", - sha256="01a4e11a9a34616396c4a77b3cef51f76a297e1a2c2c490ae6138bf0351eb29f", - deprecated=True, - ) - version( - "5.16.3", - sha256="69cf08dca0565cec2c5c6c2f24b87f986220462556376275e5431cc2204dedb6", - deprecated=True, - ) # Development releases (odd numbers) version("5.39.10", sha256="4b7ffb3e068583fa5c8413390c998b2c15214f205ce737acc485b40932b9f419") - version( - "5.37.9", - sha256="9884fa8a4958bf9434b50f01cbfd187f9e2738f38fe1ae37f844e9950c5117c1", - deprecated=True, - ) - version( - "5.35.0", - sha256="d6c0eb4763d1c73c1d18730664d43fcaf6100c31573c3b81e1504ec8f5b22708", - deprecated=True, - ) - version( - "5.33.3", - sha256="4f4ba0aceb932e6cf7c05674d05e51ef759d1c97f0685dee65a8f3d190f737cd", - deprecated=True, - ) - version( - "5.31.7", - sha256="d05c4e72128f95ef6ffad42728ecbbd0d9437290bf0f88268b51af011f26b57d", - deprecated=True, - ) - version( - "5.31.4", - sha256="418a7e6fe6485cc713a86d1227ef112f0bb3f80322e3b715ffe42851d97804a5", - deprecated=True, - ) extendable = True @@ -172,61 +47,14 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package if sys.platform != "win32": depends_on("gmake", type="build") - depends_on("gdbm@:1.23") - # Bind us below gdbm-1.20 due to API change: https://github.com/Perl/perl5/issues/18915 - depends_on("gdbm@:1.19", when="@:5.35") - # :5.28 needs gdbm@:1:14.1: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133295 - depends_on("gdbm@:1.14.1", when="@:5.28.0") + depends_on("gdbm") depends_on("berkeley-db") depends_on("bzip2") depends_on("zlib-api") - # :5.24.1 needs zlib@:1.2.8: https://rt.cpan.org/Public/Bug/Display.html?id=120134 - conflicts("^zlib@1.2.9:", when="@5.20.3:5.24.1") - - conflicts("@5.34.1:", when="%msvc@:19.29.30136") - # there has been a long fixed issue with 5.22.0 with regard to the ccflags - # definition. It is well documented here: - # https://rt.perl.org/Public/Bug/Display.html?id=126468 - patch("protect-quotes-in-ccflags.patch", when="@5.22.0") - - # Support zlib-ng 2.1.2 and above for recent Perl - # Restrict zlib-ng to older versions for older Perl - # See https://github.com/pmqs/Compress-Raw-Zlib/issues/24 - patch("zlib-ng.patch", when="@5.38 ^zlib-ng@2.1.2:") - conflicts("^zlib-ng@2.1.2:", when="@:5.37") - - # Fix the Time-Local testase http://blogs.perl.org/users/tom_wyant/2020/01/my-y2020-bug.html - patch( - "https://rt.cpan.org/Public/Ticket/Attachment/1776857/956088/0001-Fix-Time-Local-tests.patch", - when="@5.26.0:5.28.9", - sha256="8cf4302ca8b480c60ccdcaa29ec53d9d50a71d4baf469ac8c6fca00ca31e58a2", - ) - patch( - "https://raw.githubusercontent.com/costabel/fink-distributions/master/10.9-libcxx/stable/main/finkinfo/languages/perl5162-timelocal-y2020.patch", - when="@:5.24.1", - sha256="3bbd7d6f9933d80b9571533867b444c6f8f5a1ba0575bfba1fba4db9d885a71a", - ) + depends_on("less", type="run") - # Fix build on Fedora 28 - # https://bugzilla.redhat.com/show_bug.cgi?id=1536752 - patch( - "https://src.fedoraproject.org/rpms/perl/raw/004cea3a67df42e92ffdf4e9ac36d47a3c6a05a4/f/perl-5.26.1-guard_old_libcrypt_fix.patch", - level=1, - sha256="0eac10ed90aeb0459ad8851f88081d439a4e41978e586ec743069e8b059370ac", - when="@:5.26.2", - ) - - # Enable builds with the NVIDIA compiler - # The Configure script assumes some gcc specific behavior, and use - # the mini Perl environment to bootstrap installation. - patch("nvhpc-5.30.patch", when="@5.30.0:5.30 %nvhpc") - patch("nvhpc-5.32.patch", when="@5.32.0:5.32 %nvhpc") - patch("nvhpc-5.34.patch", when="@5.34.0:5.34 %nvhpc") - conflicts( - "@5.32.0:", - when="%nvhpc@:20.11", - msg="The NVIDIA compilers are incompatible with version 5.32 and later", - ) + conflicts("%msvc@:19.29.30136") + conflicts("%nvhpc@:20.11") # Make sure we don't get "recompile with -fPIC" linker errors when using static libs conflicts("^zlib~shared~pic", msg="Needs position independent code when using static zlib") @@ -513,12 +341,6 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: spec = self.spec - if spec.satisfies("@:5.34 platform=darwin") and macos_version() >= Version("10.16"): - # Older perl versions reject MACOSX_DEPLOYMENT_TARGET=11 or higher - # as "unexpected"; override the environment variable set by spack's - # platforms.darwin . - env.set("MACOSX_DEPLOYMENT_TARGET", "10.16") - # This is how we tell perl the locations of bzip and zlib. env.set("BUILD_BZIP2", "0") env.set("BZIP2_INCLUDE", spec["bzip2"].prefix.include) @@ -527,6 +349,11 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("ZLIB_INCLUDE", spec["zlib-api"].prefix.include) env.set("ZLIB_LIB", spec["zlib-api"].libs.directories[0]) + # Setting TZ=UTC is a critical step for reproducibility, since it forces the environment + # into a consistent, offset-free timezone before the configuration tests begin + # See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=791362 + env.set("TZ", "UTC") + @run_after("install") def filter_config_dot_pm(self): """Run after install so that Config.pm records the compiler that Spack diff --git a/repos/spack_repo/builtin/packages/perl/protect-quotes-in-ccflags.patch b/repos/spack_repo/builtin/packages/perl/protect-quotes-in-ccflags.patch deleted file mode 100644 index f3500d52f74..00000000000 --- a/repos/spack_repo/builtin/packages/perl/protect-quotes-in-ccflags.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 111bd177427ec912ef9d64a6d055ca5e9abc359d Mon Sep 17 00:00:00 2001 -From: Jarkko Hietaniemi -Date: Wed, 28 Oct 2015 07:56:23 -0400 -Subject: [PATCH] For perl #126468: protect quotes in ccflags. - ---- - cflags.SH | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/cflags.SH b/cflags.SH -index f3e44ad..33c6c93 100755 ---- a/cflags.SH -+++ b/cflags.SH -@@ -387,6 +387,9 @@ echo "cflags.SH: warn = $warn" - # Code to set any extra flags here. - extra='' - -+# Protect double or single quotes. -+myccflags=`echo $ccflags | sed -e 's/"/\\\"/g' -e "s/'/\\\'/g"` -+ - echo "Extracting cflags (with variable substitutions)" - # This section of the file will have variable substitutions done on it. - # Move anything that needs config subs from !NO!SUBS! section to !GROK!THIS!. -@@ -401,7 +404,8 @@ $startsh - # This file is generated by cflags.SH - - # Used to restore possible edits by cflags.SH. --myccflags="$ccflags" -+myccflags="$myccflags" -+ - # Extra warnings, used e.g. for gcc. - warn="$warn" - # Extra standardness. --- -2.6.0 - diff --git a/repos/spack_repo/builtin/packages/perl/zlib-ng.patch b/repos/spack_repo/builtin/packages/perl/zlib-ng.patch deleted file mode 100644 index 55f55bc59c2..00000000000 --- a/repos/spack_repo/builtin/packages/perl/zlib-ng.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0a8fb7141a43b8e49609fb06f05fad5150a97c2a Mon Sep 17 00:00:00 2001 -From: pmqs -Date: Fri, 9 Jun 2023 14:30:36 +0100 -Subject: [PATCH] Change storage of ZLIBNG_VER_STATUS from IV to PV - https://github.com/pmqs/Compress-Raw-Zlib/issues/24 - ---- - Makefile.PL | 1 - - Zlib.xs | 11 +++++++++++ - 2 files changed, 11 insertions(+), 1 deletion(-) - -diff --git a/Makefile.PL b/Makefile.PL -index 299093b..5944918 100644 ---- a/cpan/Compress-Raw-Zlib/Makefile.PL -+++ b/cpan/Compress-Raw-Zlib/Makefile.PL -@@ -201,7 +201,6 @@ my @names = qw( - ZLIBNG_VER_MAJOR - ZLIBNG_VER_MINOR - ZLIBNG_VER_REVISION -- ZLIBNG_VER_STATUS - ZLIBNG_VER_MODIFIED - ); - -diff --git a/Zlib.xs b/Zlib.xs -index c47c66d..2d4fc58 100644 ---- a/cpan/Compress-Raw-Zlib/Zlib.xs -+++ b/cpan/Compress-Raw-Zlib/Zlib.xs -@@ -951,6 +951,17 @@ ZLIB_VERNUM() - uLong - Zip_zlibCompileFlags() - -+const char* -+ZLIBNG_VER_STATUS() -+ CODE: -+#ifdef ZLIBNG_VER_STATUS -+ RETVAL = STRINGIFY(ZLIBNG_VER_STATUS); -+#else -+ RETVAL = "0"; -+#endif -+ OUTPUT: -+ RETVAL -+ - MODULE = Compress::Raw::Zlib PACKAGE = Compress::Raw::Zlib PREFIX = Zip_ - - #define Zip_adler32(buf, adler) CRZ_adler32(adler, buf, (uInt)len) diff --git a/repos/spack_repo/builtin/packages/perl_alien_svn/package.py b/repos/spack_repo/builtin/packages/perl_alien_svn/package.py deleted file mode 100644 index 978f348a0f9..00000000000 --- a/repos/spack_repo/builtin/packages/perl_alien_svn/package.py +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import sys - -from spack_repo.builtin.build_systems.perl import PerlPackage - -from spack.package import * - - -class PerlAlienSvn(PerlPackage): - """Perl SVN extension.""" - - homepage = "https://metacpan.org/source/MSCHWERN/Alien-SVN-v1.8.11.0" - url = "https://cpan.metacpan.org/authors/id/M/MS/MSCHWERN/Alien-SVN-v1.8.11.0.tar.gz" - - version("1.8.11.0", sha256="acf8ebce1cb6958ef24611a453abee32b8e4dfe767563834362891ef3f30fc68") - version("1.7.19.0", sha256="80df1eef9ffb7b0fb0c45285eec05d15bcb45c349c441f97131c64b8697dceb0") - version("1.7.17.1", sha256="35ae83fda2ef9a5b48012ac8317ec063058d1e9fc5f2719fa141eecedf6baef8") - version("1.7.17.0", sha256="f3e11ac89453e91f9c298c43958f8115bbb49cb67bb22a0e92690a8e8447c3d0") - version("1.7.3.1", sha256="e85efca8f9519b2cef81f39e026d227c077c9531c41f44995b31550c3af02366") - version("1.7.3.0", sha256="02abbe17ad7db912001e6f1c5018cec08c3840e0c32700363a79274e144e74e5") - version("1.6.12.1", sha256="a89d8eeff61e34aa7b3d35dee3e6752b12dfa5f0f04bf69d796846cf0391f53d") - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - depends_on("perl-module-build", type="build") - depends_on("apr@1.6.2", type="build") - depends_on("apr-util", type=("build", "link")) - depends_on("sqlite", type="build") - depends_on("zlib-api") - depends_on("libbsd") - - def setup_build_environment(self, env: EnvironmentModifications) -> None: - # non-interactive build, use defaults - env.set("PERL_MM_USE_DEFAULT", "1") - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - # SVN libs are not RPATHed correctly... - # TODO: extend to other plaforms - if sys.platform.startswith("linux"): - env.prepend_path( - "LD_LIBRARY_PATH", - join_path( - self.prefix, "lib", "perl4", "x86_64-linux-thread-multi", "Alien", "SVN" - ), - ) diff --git a/repos/spack_repo/builtin/packages/perl_bio_bigfile/package.py b/repos/spack_repo/builtin/packages/perl_bio_bigfile/package.py index d1e2245b2b2..93844b9aa59 100644 --- a/repos/spack_repo/builtin/packages/perl_bio_bigfile/package.py +++ b/repos/spack_repo/builtin/packages/perl_bio_bigfile/package.py @@ -51,14 +51,21 @@ def build_pl_args(self): # so we need to give it some special help for HTSLIB f"-I{kentutils_htslib_include_dir.htslib}", ] + kent = self.spec["kentutils"] + if kent.satisfies("~builtin_htslib"): + htslib_flags = self.spec["htslib"].libs.ld_flags + else: + htslib_flags = join_path(kent.prefix, "htslib", "libhts.a") + libs = [ # This is usually set by Build.PL from KENT_SRC join_path(kentutils_lib_dir, "jkweb.a"), # These are being set in Build.PL so we need to reset here "-lz", "-lssl", - # This is an undocumented dependency from kentutils - "-lhts", + # htslib is needed by kentutils but Perl's build system + # bypasses spack's compiler wrapper, so we need explicit paths + htslib_flags, ] return [ diff --git a/repos/spack_repo/builtin/packages/perl_bio_ensembl/package.py b/repos/spack_repo/builtin/packages/perl_bio_ensembl/package.py index 5e8c7ac03cd..88d086131eb 100644 --- a/repos/spack_repo/builtin/packages/perl_bio_ensembl/package.py +++ b/repos/spack_repo/builtin/packages/perl_bio_ensembl/package.py @@ -19,6 +19,7 @@ def url_for_version(self, version): license("APACHE-2.0", checked_by="teaguesterling") + version("113", sha256="9afb88ac23b188104da881efe9b4dbf2f71129484167014b880de77e9bb74f3a") version("112", sha256="7c2c5265abe74b462cd4f8b26f140a4c4945cd0e2971f40711afbb4b38db5997") version("111", sha256="346c47c75a6fa8dcfd9f9d22e9f1e0ccc35b2fb99f75980a0c74d892e4ab2b6d") version("110", sha256="fdf725cad1a980ddf900f1af1a72bf1de355f15e408664930ed84aeccfefad15") diff --git a/repos/spack_repo/builtin/packages/perl_bio_ensembl_funcgen/package.py b/repos/spack_repo/builtin/packages/perl_bio_ensembl_funcgen/package.py index ad462db2a4d..5daad124f56 100644 --- a/repos/spack_repo/builtin/packages/perl_bio_ensembl_funcgen/package.py +++ b/repos/spack_repo/builtin/packages/perl_bio_ensembl_funcgen/package.py @@ -16,6 +16,7 @@ class PerlBioEnsemblFuncgen(Package): license("APACHE-2.0", checked_by="teaguesterling") + version("113", sha256="1dcb973d54058a89de950fb1d8aa2dea3ed44ed686258744642e0bb812b39b46") version("112", sha256="d7398921779a6865b5e2f0269d51d268f9b8cd96e4ca3577c88e6f34593e683d") version("111", sha256="67b1b7d6efde9e8be7b4ef73c54c0b5e7e3eadcd590a94bc980984514ef746d0") version("110", sha256="c9e85a423a8c8653741aed799aea9762fa1dfb301f50dc11d291925e81d7aeee") diff --git a/repos/spack_repo/builtin/packages/perl_bio_ensembl_io/package.py b/repos/spack_repo/builtin/packages/perl_bio_ensembl_io/package.py index a7bf7b66db2..2106955fded 100644 --- a/repos/spack_repo/builtin/packages/perl_bio_ensembl_io/package.py +++ b/repos/spack_repo/builtin/packages/perl_bio_ensembl_io/package.py @@ -17,6 +17,7 @@ class PerlBioEnsemblIo(Package): license("APACHE-2.0", checked_by="teaguesterling") for vers, sha in [ + ("113", "2e914af0096af98e5a99986600adeba4e07d5775e708df2fcd033034f2e13272"), ("112", "ccbffe7c15318075463db46be348655a5914762e05ff47da2d72a4c99414d39a"), ("111", "f81d4c1aea88aac7105aaa3fec548e39b79f129c7abc08b55be7d0345aa5482c"), ("110", "83cf00ecdb6184be480fc3cbf0ffc322d3e9411e14602396fda8d153345d6c2e"), diff --git a/repos/spack_repo/builtin/packages/perl_bio_ensembl_variation/package.py b/repos/spack_repo/builtin/packages/perl_bio_ensembl_variation/package.py index e23ae2bcddc..103b4e36db0 100644 --- a/repos/spack_repo/builtin/packages/perl_bio_ensembl_variation/package.py +++ b/repos/spack_repo/builtin/packages/perl_bio_ensembl_variation/package.py @@ -17,6 +17,7 @@ class PerlBioEnsemblVariation(Package): license("APACHE-2.0", checked_by="teaguesterling") for vers, sha in [ + ("113", "6e930e34ecf524a635c848636e1b479eba9102b3a386f49597640571c25e9e94"), ("112", "ad75ff0a9efbf2d5c10ab5087d414bac685819664d01fbe4a9765393bd742a7c"), ("111", "b2171b3f5f82a2b7e849c0ec8dc254f4bace4b3faba1b3ab75c5eea596e33bef"), ("110", "210d627dcb867d9fda3a0d94428da256f394c32e34df5171b9b9e604507e1f05"), @@ -58,12 +59,12 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: def build(self, spec, prefix): if spec.satisfies("+ld"): - make = which("make") + make = which("make", required=True) with working_dir("C_code"): make() if spec.satisfies("+tools"): # Fix the fact that phenotype_annotation isn't executable - chmod = which("chmod") + chmod = which("chmod", required=True) chmod("+x", "tools/phenotype_annotation/phenotype_annotation") def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/perl_bioperl/package.py b/repos/spack_repo/builtin/packages/perl_bioperl/package.py index cde0cb707ad..23d0878d6c7 100644 --- a/repos/spack_repo/builtin/packages/perl_bioperl/package.py +++ b/repos/spack_repo/builtin/packages/perl_bioperl/package.py @@ -45,14 +45,6 @@ class PerlBioperl(PerlPackage): ) version("1.6.924", sha256="616a7546bb3c58504de27304a0f6cb904e18b6bbcdb6a4ec8454f2bd37bb76d0") - # This is technically the same as 1.7.2, but with a more conventional version number. - version( - "1.007002", - sha256="17aa3aaab2f381bbcaffdc370002eaf28f2c341b538068d6586b2276a76464a1", - url="https://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS/BioPerl-1.007002.tar.gz", - deprecated=True, - ) - with default_args(type=("build", "run")): depends_on("perl-data-stag") depends_on("perl-error") diff --git a/repos/spack_repo/builtin/packages/perl_datetime/package.py b/repos/spack_repo/builtin/packages/perl_datetime/package.py index e295b37c455..8f658beb1be 100644 --- a/repos/spack_repo/builtin/packages/perl_datetime/package.py +++ b/repos/spack_repo/builtin/packages/perl_datetime/package.py @@ -18,11 +18,6 @@ class PerlDatetime(PerlPackage): license("Artistic-2.0") version("1.65", sha256="0bfda7ff0253fb3d88cf4bdb5a14afb8cea24d147975d5bdf3c88b40e7ab140e") - version( - "1.63", - sha256="1b11e49ec6e184ae2a10eccd05eda9534f32458fc644c12ab710c29a3a816f6f", - deprecated=True, - ) depends_on("perl@5.8.4:", type=("build", "link", "run", "test")) depends_on("perl-cpan-meta-check@0.011:", type=("build", "test")) diff --git a/repos/spack_repo/builtin/packages/perl_dbd_mysql/package.py b/repos/spack_repo/builtin/packages/perl_dbd_mysql/package.py index ef715da1312..84e6b352081 100644 --- a/repos/spack_repo/builtin/packages/perl_dbd_mysql/package.py +++ b/repos/spack_repo/builtin/packages/perl_dbd_mysql/package.py @@ -34,7 +34,7 @@ class PerlDbdMysql(PerlPackage): version("4.043", sha256="629f865e8317f52602b2f2efd2b688002903d2e4bbcba5427cb6188b043d6f99") depends_on("c", type="build") # generated - + depends_on("mysql-client") depends_on("perl-devel-checklib", type="build", when="@4.050:") with default_args(type=("build", "link", "run")): diff --git a/repos/spack_repo/builtin/packages/perl_fth/package.py b/repos/spack_repo/builtin/packages/perl_fth/package.py index c945989e4ac..4456a2b156e 100644 --- a/repos/spack_repo/builtin/packages/perl_fth/package.py +++ b/repos/spack_repo/builtin/packages/perl_fth/package.py @@ -28,6 +28,7 @@ class PerlFth(Package): maintainers("cessenat") + version("0.531", sha256="cb144d63b62459950f171ee80b33ce1e2a0ca52d6393ea8efc868240b916fe14") version("0.529", sha256="3cc2030372cf88dad257bd0cfbe662873a454d55035c54a76090e0da860074c4") version("0.527", sha256="df98e9e2f4dbef863b09a22ed92681dff028a6f345ba530bc3afd8221efe633c") version("0.526", sha256="ada1c7306111d59d64572fe8a9b038026fd0daebaff630924997ef2dc22d87a8") @@ -113,7 +114,7 @@ def install(self, spec, prefix): for exe in checks: fic = exe + ".pl" if os.path.exists(fic): - dos2unix = which("dos2unix") + dos2unix = which("dos2unix", required=True) dos2unix(fic) fthfile = FileFilter(fic) fthfile.filter("#!/usr/bin/perl", mstr, backup=False) diff --git a/repos/spack_repo/builtin/packages/perl_test_warn/package.py b/repos/spack_repo/builtin/packages/perl_test_warn/package.py index 6a2189ff2ec..f0402e8de4f 100644 --- a/repos/spack_repo/builtin/packages/perl_test_warn/package.py +++ b/repos/spack_repo/builtin/packages/perl_test_warn/package.py @@ -18,12 +18,6 @@ class PerlTestWarn(PerlPackage): license("Artistic-1.0-Perl OR GPL-1.0-or-later") version("0.37", sha256="98ca32e7f2f5ea89b8bfb9a0609977f3d153e242e2e51705126cb954f1a06b57") - version( - "0.30", - sha256="8197555b94189d919349a03f7058f83861f145af9bee59f505bfe47562144e41", - url="https://cpan.metacpan.org/authors/id/C/CH/CHORNY/Test-Warn-0.30.tar.gz", - deprecated=True, - ) depends_on("perl@5.6.0:", type=("build", "link", "run", "test")) depends_on("perl-sub-uplevel@0.12:", type=("build", "run", "test")) diff --git a/repos/spack_repo/builtin/packages/petaca/package.py b/repos/spack_repo/builtin/packages/petaca/package.py index 0e1b3d70db2..1a1f1ab15a6 100644 --- a/repos/spack_repo/builtin/packages/petaca/package.py +++ b/repos/spack_repo/builtin/packages/petaca/package.py @@ -29,6 +29,8 @@ class Petaca(CMakePackage): license("MIT") version("develop", branch="master") + version("25.06", sha256="10b427619f4e829f52baec9ffc214ccbd7f240b6d1ae3986bdc5217e823c42a7") + version("25.05", sha256="ec6b74777945f994b34536fea077153b7c01ecbd6f59bf502bd84d61a64fa7b6") version("24.12", sha256="d54d3dcc36d65b145f609549d7874b9198397ff0fdd271c1f63b90b98794fb29") version("24.04", sha256="951a0ba3380502fa09009af8613471256bbcb4edc14fe810f7e3afe7adc21b7e") version("23.12", sha256="8d7f1c7170500db52a624c891fb1563b8cfc322d138d935a5b4c6f12d9bdbd23") diff --git a/repos/spack_repo/builtin/packages/petsc/macos-clang-8.1.0.diff b/repos/spack_repo/builtin/packages/petsc/macos-clang-8.1.0.diff deleted file mode 100644 index b4384d3ac38..00000000000 --- a/repos/spack_repo/builtin/packages/petsc/macos-clang-8.1.0.diff +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/config/BuildSystem/config/libraries.py b/config/BuildSystem/config/libraries.py -index 0af92f0..8644b55 100644 ---- a/config/BuildSystem/config/libraries.py -+++ b/config/BuildSystem/config/libraries.py -@@ -50,12 +50,7 @@ class Configure(config.base.Configure): - flagName = self.language[-1]+'SharedLinkerFlag' - flagSubst = self.language[-1].upper()+'_LINKER_SLFLAG' - dirname = os.path.dirname(library).replace('\\ ',' ').replace(' ', '\\ ').replace('\\(','(').replace('(', '\\(').replace('\\)',')').replace(')', '\\)') -- if hasattr(self.setCompilers, flagName) and not getattr(self.setCompilers, flagName) is None: -- return [getattr(self.setCompilers, flagName)+dirname,'-L'+dirname,'-l'+name] -- if flagSubst in self.argDB: -- return [self.argDB[flagSubst]+dirname,'-L'+dirname,'-l'+name] -- else: -- return ['-L'+dirname,' -l'+name] -+ return ['-L'+dirname,' -l'+name] - else: - return ['-l'+name] - if os.path.splitext(library)[1] == '.so': diff --git a/repos/spack_repo/builtin/packages/petsc/package.py b/repos/spack_repo/builtin/packages/petsc/package.py index dd9bf0b1ad8..5786a522d92 100644 --- a/repos/spack_repo/builtin/packages/petsc/package.py +++ b/repos/spack_repo/builtin/packages/petsc/package.py @@ -24,6 +24,18 @@ class Petsc(Package, CudaPackage, ROCmPackage): tags = ["e4s"] version("main", branch="main") + version("3.25.1", sha256="d9d9518110aea1f8f5444985cc1a95273ab140cdbcd2c2038c6309a3b611abb4") + version("3.25.0", sha256="dc1c018c16bd9dcf40596959875725edb4ba8b854a0b67bbce62a0d4be1bd3be") + version("3.24.6", sha256="d6ad14652996b0e0d3da51068eec902118057f275de867e8cf258ffd64d90a7d") + version("3.24.5", sha256="b538efa53ebfa5c7a1c3ac9783a57852a74ce4fb436f0ee4802564503c67269f") + version("3.24.4", sha256="772bb47638f8335e4a5982c48947af250e58061100a817c9e1e2fdc50de2ce95") + version("3.24.3", sha256="dde6f6ef2c5ef8c473a831d56a2e3192b5304c50c4cc5ded7f296ef6d86aaf13") + version("3.24.2", sha256="105c77cbc7361c078e013448bcad2c57ce8081377e5a8e49b3cc213f1a0a4a63") + version("3.24.1", sha256="d77f3fd5187a72ce5b68a056aa8fcccd37b6dc7a388991d1d8fa0bde32b0abc8") + version("3.24.0", sha256="cc9063d80cae3ca87dd34586a92bac49613818a0689d9eac1bd91a799c5d0983") + version("3.23.7", sha256="f4fb2bad8c80319e723987868e87d8384f2ae2162e07917d4c41d6e467b1d254") + version("3.23.6", sha256="07e0492c5c38d2fc5aa6dd981c450086f3b88f8834df11247a87d4becfb85c72") + version("3.23.5", sha256="b0bb614dfbf36c286c8cad30912fe77359dccbf6b65a5edd1dde82af293f21fc") version("3.23.4", sha256="711b2ad46b14f12fe74fcbc7f9b514444646f1e7b20ed57dc7482d34dfc4ca77") version("3.23.3", sha256="bb51e8cbaa3782afce38c6f0bdd64d20ed090695992b7d49817518aa7e909139") version("3.23.2", sha256="030ec6c4e9ed885457a6155f20b6f914593a1cd960b28706521a19a9cdadd5e2") @@ -89,96 +101,6 @@ class Petsc(Package, CudaPackage, ROCmPackage): version("3.14.2", sha256="87a04fd05cac20a2ec47094b7d18b96e0651257d8c768ced2ef7db270ecfb9cb") version("3.14.1", sha256="0b4681165a9af96594c794b97ac6993452ec902726679f6b50bb450f89d230ed") version("3.14.0", sha256="a8f9caba03e0d57d8452c08505cf96be5f6949adaa266e819382162c03ddb9c5") - version( - "3.13.6", - sha256="67ca2cf3040d08fdc51d27f660ea3157732b24c2f47aae1b19d63f62a39842c2", - deprecated=True, - ) - version( - "3.13.5", - sha256="10fc542dab961c8b17db35ad3a208cb184c237fc84e183817e38e6c7ab4b8732", - deprecated=True, - ) - version( - "3.13.4", - sha256="8d470cba1ceb9638694550134a2f23aac85ed7249cb74992581210597d978b94", - deprecated=True, - ) - version( - "3.13.3", - sha256="dc744895ee6b9c4491ff817bef0d3abd680c5e3c25e601be44240ce65ab4f337", - deprecated=True, - ) - version( - "3.13.2", - sha256="6083422a7c5b8e89e5e4ccf64acade9bf8ab70245e25bca3a3da03caf74602f1", - deprecated=True, - ) - version( - "3.13.1", - sha256="74a895e44e2ff1146838aaccb7613e7626d99e0eed64ca032c87c72d084efac3", - deprecated=True, - ) - version( - "3.13.0", - sha256="f0ea543a54145c5d1387e25b121c3fd1b1ca834032c5a33f6f1d929e95bdf0e5", - deprecated=True, - ) - version( - "3.12.5", - sha256="d676eb67e79314d6cca6422d7c477d2b192c830b89d5edc6b46934f7453bcfc0", - deprecated=True, - ) - version( - "3.12.4", - sha256="56a941130da93bbacb3cfa74dcacea1e3cd8e36a0341f9ced09977b1457084c3", - deprecated=True, - ) - version( - "3.12.3", - sha256="91f77d7b0f54056f085b9e27938922db3d9bb1734a2e2a6d26f43d3e6c0cf631", - deprecated=True, - ) - version( - "3.12.2", - sha256="d874b2e198c4cb73551c2eca1d2c5d27da710be4d00517adb8f9eb3d6d0375e8", - deprecated=True, - ) - version( - "3.12.1", - sha256="b72d895d0f4a79acb13ebc782b47b26d10d4e5706d399f533afcd5b3dba13737", - deprecated=True, - ) - version( - "3.12.0", - sha256="ba9ecf69783c7ebf05bd1c91dd1d4b38bf09b7a2d5f9a774aa6bb46deff7cb14", - deprecated=True, - ) - version( - "3.11.4", - sha256="319cb5a875a692a67fe5b1b90009ba8f182e21921ae645d38106544aff20c3c1", - deprecated=True, - ) - version( - "3.11.3", - sha256="199ad9650a9f58603b49e7fff7cd003ceb03aa231e5d37d0bf0496c6348eca81", - deprecated=True, - ) - version( - "3.11.2", - sha256="4d244dd7d1565d6534e776445fcf6977a6ee2a8bb2be4a36ac1e0fc1f9ad9cfa", - deprecated=True, - ) - version( - "3.11.1", - sha256="cb627f99f7ce1540ebbbf338189f89a5f1ecf3ab3b5b0e357f9e46c209f1fb23", - deprecated=True, - ) - version( - "3.11.0", - sha256="b3bed2a9263193c84138052a1b92d47299c3490dd24d1d0bf79fb884e71e678a", - deprecated=True, - ) variant("shared", default=True, description="Enables the build of shared libraries") variant("mpi", default=True, description="Activates MPI support") @@ -187,23 +109,27 @@ class Petsc(Package, CudaPackage, ROCmPackage): variant("debug", default=False, description="Compile in debug mode") variant("sycl", default=False, description="Enable sycl build") - variant("metis", default=True, description="Activates support for metis and parmetis") + variant("metis", default=False, description="Activates support for metis and parmetis") variant( "ptscotch", default=False, description="Activates support for PTScotch (only parallel)" ) - variant("hdf5", default=True, description="Activates support for HDF5 (only parallel)") - variant("hypre", default=True, description="Activates support for Hypre (only parallel)") + variant("hdf5", default=False, description="Activates support for HDF5 (only parallel)") + variant("hypre", default=False, description="Activates support for Hypre (only parallel)") variant("hpddm", default=False, description="Activates support for HPDDM (only parallel)") variant("mmg", default=False, description="Activates support for MMG") variant("parmmg", default=False, description="Activates support for ParMMG (only parallel)") variant("tetgen", default=False, description="Activates support for Tetgen") + variant("ml", default=False, description="Activates support for ML") variant("zoltan", default=False, description="Activates support for Zoltan") + variant( + "exodusii", default=False, description="Activates support for ExodusII (only parallel)" + ) # Mumps is disabled by default, because it depends on Scalapack # which is not portable to all HPC systems variant("mumps", default=False, description="Activates support for MUMPS (only parallel)") variant( "superlu-dist", - default=True, + default=False, when="+fortran", description="Activates support for superlu-dist (only parallel)", ) @@ -211,9 +137,6 @@ class Petsc(Package, CudaPackage, ROCmPackage): variant( "scalapack", default=False, when="+fortran", description="Activates support for Scalapack" ) - variant( - "trilinos", default=False, description="Activates support for Trilinos (only parallel)" - ) variant("mkl-pardiso", default=False, description="Activates support for MKL Pardiso") variant("int64", default=False, description="Compile with 64bit indices") variant( @@ -237,9 +160,6 @@ class Petsc(Package, CudaPackage, ROCmPackage): variant("mpfr", default=False, description="Activates support for MPFR") variant("moab", default=False, description="Acivates support for MOAB (only parallel)") variant("random123", default=False, description="Activates support for Random123") - variant( - "exodusii", default=False, description="Activates support for ExodusII (only parallel)" - ) variant("cgns", default=False, description="Activates support for CGNS (only parallel)") variant("memkind", default=False, description="Activates support for Memkind") variant( @@ -275,6 +195,9 @@ class Petsc(Package, CudaPackage, ROCmPackage): # Give packagers a switch to trim them away (‘spack install petsc ~examples’) # while preserving current behaviour by default. variant("examples", default=True, description="Install test and tutorial example sources") + variant( + "fortran-bindings", default=True, when="+fortran", description="Activates fortran bindings" + ) with when("+rocm"): # hipsparse@5.6.0 broke hipsparseSpSV_solve() API, reverted in 5.6.1. @@ -300,9 +223,16 @@ class Petsc(Package, CudaPackage, ROCmPackage): when="@3.20.2:3.20.4 ^hipsparse@6.0", ) + # segmentedmempool.hpp(178): error: expression must be a modifiable lvalue + # https://gitlab.com/petsc/petsc/-/merge_requests/8152 + patch("petsc_modifiable_lvalue.patch", when="@3.21.6:3.22.4+rocm") + patch("petsc_modifiable_lvalue.patch", when="@3.21.6:3.22.4+cuda") + # These require +mpi mpi_msg = "Requires +mpi" conflicts("+cgns", when="~mpi", msg=mpi_msg) + conflicts("+ml", when="~mpi", msg=mpi_msg) + conflicts("+zoltan", when="~mpi", msg=mpi_msg) conflicts("+exodusii", when="~mpi", msg=mpi_msg) conflicts("+fftw", when="~mpi", msg=mpi_msg) conflicts("+hdf5", when="~mpi", msg=mpi_msg) @@ -314,25 +244,22 @@ class Petsc(Package, CudaPackage, ROCmPackage): conflicts("+p4est", when="~mpi", msg=mpi_msg) conflicts("+ptscotch", when="~mpi", msg=mpi_msg) conflicts("+superlu-dist", when="~mpi", msg=mpi_msg) - conflicts("+trilinos", when="~mpi", msg=mpi_msg) conflicts("+kokkos", when="~mpi", msg=mpi_msg) conflicts("^openmpi~cuda", when="+cuda") # +cuda requires CUDA enabled OpenMPI - # older versions of petsc did not support mumps when +int64 - conflicts("+mumps", when="@:3.12+int64") - filter_compiler_wrappers("petscvariables", "reconfigure*.py", relative_root="lib/petsc/conf") filter_compiler_wrappers("petsc.pc", "PETSc.pc", relative_root="lib/pkgconfig") # temporary workaround Clang 8.1.0 with XCode 8.3 on macOS, see # https://bitbucket.org/petsc/petsc/commits/4f290403fdd060d09d5cb07345cbfd52670e3cbc # the patch is an adaptation of the original commit to 3.7.5 - patch("macos-clang-8.1.0.diff", when="@3.7.5%apple-clang@8.1.0:") - patch("pkg-config-3.7.6-3.8.4.diff", when="@3.7.6:3.8.4") - patch("xcode_stub_out_of_sync.patch", when="@:3.10.4") - patch("xlf_fix-dup-petscfecreate.patch", when="@3.11.0") patch("disable-DEPRECATED_ENUM.diff", when="@3.14.1 +cuda") patch("revert-3.18.0-ver-format-for-dealii.patch", when="@3.18.0") + patch( + "https://gitlab.com/petsc/petsc/-/commit/8ecb7dbc89a1f2ff56020c12a12db63d6a1842dc.diff", + when="@3.24.1", + sha256="fa5ef56e4d26b5a29e3545b3f07cfa12c767f31ce513b03aa75fa65d931d81ab", + ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -368,14 +295,9 @@ class Petsc(Package, CudaPackage, ROCmPackage): with default_args(type="build"): depends_on("python@2.6:2.8,3.4:") depends_on("python@3.4:", when="@3.18:") - depends_on("python@:3.8", when="@:3.13") depends_on("python@:3.12", when="@:3.21") # import xdrlib # Other dependencies - depends_on("metis@5:~int64+real64", when="@:3.7+metis~int64+double") - depends_on("metis@5:~int64", when="@:3.7+metis~int64~double") - depends_on("metis@5:+int64+real64", when="@:3.7+metis+int64+double") - depends_on("metis@5:+int64", when="@:3.7+metis+int64~double") # petsc-3.8+ uses default (float) metis with any (petsc) precision depends_on("metis@5:~int64", when="@3.8:+metis~int64") depends_on("metis@5:+int64", when="@3.8:+metis+int64") @@ -385,13 +307,13 @@ class Petsc(Package, CudaPackage, ROCmPackage): depends_on("scotch+esmumps~metis+mpi", when="+ptscotch") depends_on("scotch+int64", when="+ptscotch+int64") - depends_on("hdf5@:1.10+mpi", when="@:3.12+hdf5+mpi") - depends_on("hdf5+mpi", when="@3.13:+hdf5+mpi") + depends_on("hdf5+mpi", when="+hdf5+mpi") depends_on("hdf5+mpi", when="+exodusii+mpi") depends_on("hdf5+mpi", when="+cgns+mpi") depends_on("zlib-api", when="+hdf5") depends_on("zlib-api", when="+libpng") depends_on("zlib-api", when="+p4est") + depends_on("zlib-api", when="+exodusii") depends_on("parmetis+int64", when="+metis+mpi+int64") depends_on("parmetis~int64", when="+metis+mpi~int64") depends_on("valgrind", when="+valgrind") @@ -399,32 +321,25 @@ class Petsc(Package, CudaPackage, ROCmPackage): depends_on("mmg", when="+parmmg") depends_on("parmmg", when="+parmmg") depends_on("tetgen+pic", when="+tetgen") - depends_on("zoltan", when="+zoltan") + depends_on("trilinos+mpi+ml", when="+ml+mpi") + depends_on("trilinos+mpi+zoltan", when="+zoltan+mpi") + depends_on("trilinos+mpi+exodus", when="+exodusii+mpi") depends_on("hypre+fortran", when="+hypre+fortran") depends_on("hypre~fortran", when="+hypre~fortran") depends_on("hypre+complex", when="+hypre+complex") depends_on("hypre~complex", when="+hypre~complex") - depends_on("hypre+int64", when="+hypre+int64") + depends_on("hypre+mixedint+cuda", when="+hypre+int64+cuda") + depends_on("hypre+mixedint+rocm", when="+hypre+int64+rocm") + depends_on("hypre+mixedint", when="+hypre+int64") depends_on("hypre~int64", when="+hypre~int64") - depends_on("hypre+mpi~internal-superlu", when="+hypre") - depends_on("hypre@2.14:2.18.2", when="@3.11:3.13+hypre") + depends_on("hypre+mpi", when="+hypre") depends_on("hypre@2.14:2.22.0", when="@3.14:3.15+hypre") depends_on("hypre@2.14:2.28.0", when="@3.16:3.19+hypre") - depends_on("hypre@2.14:", when="@3.20+hypre") - depends_on("hypre@2.32:", when="@3.22:+hypre") + depends_on("hypre@2.21:", when="@3.20:3.21+hypre") + depends_on("hypre@2.31:", when="@3.22:+hypre") depends_on("hypre@develop", when="@main+hypre") - depends_on("superlu-dist@:4.3~int64", when="@3.4.4:3.6.4+superlu-dist+mpi~int64") - depends_on("superlu-dist@:4.3+int64", when="@3.4.4:3.6.4+superlu-dist+mpi+int64") - depends_on("superlu-dist@5.0.0:5.1.3~int64", when="@3.7.0:3.7+superlu-dist+mpi~int64") - depends_on("superlu-dist@5.0.0:5.1.3+int64", when="@3.7.0:3.7+superlu-dist+mpi+int64") - depends_on("superlu-dist@5.2.0:5.2~int64", when="@3.8:3.9+superlu-dist+mpi~int64") - depends_on("superlu-dist@5.2.0:5.2+int64", when="@3.8:3.9+superlu-dist+mpi+int64") - depends_on("superlu-dist@5.4.0:5.4~int64", when="@3.10:3.10.2+superlu-dist+mpi~int64") - depends_on("superlu-dist@5.4.0:5.4+int64", when="@3.10:3.10.2+superlu-dist+mpi+int64") - depends_on("superlu-dist@6.1.0:6.1~int64", when="@3.10.3:3.12+superlu-dist+mpi~int64") - depends_on("superlu-dist@6.1.0:6.1+int64", when="@3.10.3:3.12+superlu-dist+mpi+int64") depends_on("superlu-dist@6.1:~int64", when="@3.13.0:+superlu-dist+mpi~int64") depends_on("superlu-dist@6.1:+int64", when="@3.13.0:+superlu-dist+mpi+int64") depends_on("superlu-dist@develop~int64", when="@main+superlu-dist+mpi~int64") @@ -438,8 +353,6 @@ class Petsc(Package, CudaPackage, ROCmPackage): depends_on("mumps+mpi~int64~metis~parmetis+openmp", when="+mumps~metis+openmp") depends_on("mumps+mpi~int64+metis+parmetis+openmp", when="+mumps+metis+openmp") depends_on("scalapack", when="+mumps") - depends_on("trilinos@12.6.2:+mpi", when="@3.7.0:+trilinos+mpi") - depends_on("trilinos@develop+mpi", when="@main+trilinos+mpi") depends_on("mkl", when="+mkl-pardiso") depends_on("fftw+mpi", when="+fftw+mpi") depends_on("suite-sparse", when="+suite-sparse") @@ -449,7 +362,6 @@ class Petsc(Package, CudaPackage, ROCmPackage): depends_on("jpeg", when="+jpeg") depends_on("libpng", when="+libpng") depends_on("giflib", when="+giflib") - depends_on("exodusii+mpi", when="+exodusii+mpi") depends_on("netcdf-c+mpi", when="+exodusii+mpi") depends_on("parallel-netcdf", when="+exodusii+mpi") depends_on("random123", when="+random123") @@ -508,6 +420,8 @@ def mpi_dependent_options(self): ] if "+fortran" in self.spec: compiler_opts.append("--with-fc=%s" % os.environ["FC"]) + fb = "1" if self.spec.satisfies("+fortran-bindings") else "0" + compiler_opts.append(f"--with-fortran-bindings={fb}") else: compiler_opts.append("--with-fc=0") else: @@ -517,6 +431,8 @@ def mpi_dependent_options(self): ] if "+fortran" in self.spec: compiler_opts.append("--with-fc=%s" % self.spec["mpi"].mpifc) + fb = "1" if self.spec.satisfies("+fortran-bindings") else "0" + compiler_opts.append(f"--with-fortran-bindings={fb}") else: compiler_opts.append("--with-fc=0") if self.spec.satisfies("%intel"): @@ -592,10 +508,6 @@ def configure_options(self): if spec.satisfies("@:3.22 ^cuda@12.8:"): options.append("CUDAPPFLAGS=-Wno-deprecated-gpu-targets") - if "trilinos" in spec: - if spec.satisfies("^trilinos+boost"): - options.append("--with-boost=1") - if spec.satisfies("clanguage=C++"): options.append("--with-clanguage=C++") else: @@ -638,7 +550,6 @@ def configure_options(self): ("hdf5" + hdf5libs, "hdf5", True, True), ("zlib-api", "zlib", True, True), "mumps", - ("trilinos", "trilinos", False, False), ("fftw:mpi", "fftw", True, True), ("valgrind", "valgrind", False, False), "gmp", @@ -649,7 +560,6 @@ def configure_options(self): ("parallel-netcdf", "pnetcdf", True, True), ("moab", "moab", False, False), ("random123", "random123", False, False), - ("exodusii", "exodusii", False, False), "cgns", "memkind", "p4est", @@ -662,7 +572,9 @@ def configure_options(self): "mmg", "parmmg", ("tetgen", "tetgen", False, False), - "zoltan", + ("ml", "trilinos", False, False), + ("zoltan", "trilinos", False, False), + ("exodusii", "trilinos", False, False), ): # Cannot check `library in spec` because of transitive deps # Cannot check variants because parmetis keys on +metis @@ -704,23 +616,18 @@ def configure_options(self): if "+cuda" in spec: if not spec.satisfies("cuda_arch=none"): cuda_arch = spec.variants["cuda_arch"].value - if spec.satisfies("@3.14:"): - options.append("--with-cuda-gencodearch={0}".format(cuda_arch[0])) - else: - options.append( - "CUDAFLAGS=-gencode arch=compute_{0},code=sm_{0}".format(cuda_arch[0]) - ) + options.append("--with-cuda-gencodearch={0}".format(cuda_arch[0])) + else: + options.append("--with-cudac=0") if "+rocm" in spec: if not spec.satisfies("amdgpu_target=none"): hip_arch = spec.variants["amdgpu_target"].value options.append("--with-hip-arch={0}".format(hip_arch[0])) hip_pkgs = ["hipsparse", "hipblas", "hipsolver", "rocsparse", "rocsolver", "rocblas"] hip_ipkgs = hip_pkgs + ["rocthrust", "rocprim", "rocm-core"] - hip_lpkgs = hip_pkgs + hip_lpkgs = hip_pkgs + ["rocrand"] if spec.satisfies("^rocrand@5.1:"): hip_ipkgs.extend(["rocrand"]) - else: - hip_lpkgs.extend(["rocrand"]) if spec.satisfies("^hipblas-common"): hip_ipkgs.extend(["hipblas-common"]) hip_inc = "" @@ -731,6 +638,8 @@ def configure_options(self): hip_lib += spec[pkg].libs.joined() + " " options.append("HIPPPFLAGS=%s" % hip_inc) options.append("--with-hip-lib=%s -L%s -lamdhip64" % (hip_lib, spec["hip"].prefix.lib)) + else: + options.append("--with-hipc=0") if "superlu-dist" in spec: if spec.satisfies("@3.10.3:3.15"): @@ -743,6 +652,11 @@ def configure_options(self): if "+mkl-pardiso" in spec: options.append("--with-mkl_pardiso-dir=%s" % spec["mkl"].prefix) + # See https://github.com/spack/spack-packages/pull/4651 + if spec.satisfies("^intel-oneapi-mkl@2026.0:"): + options.append("--with-mkl_sparse=0") + options.append("--with-mkl_sparse_optimize=0") + # For the moment, HPDDM does not work as a dependency # using download instead if "+hpddm" in spec: @@ -820,10 +734,6 @@ def headers(self): def setup_build_tests(self): """Copy the build test files after the package is installed to an install test subdirectory for use during `spack test run`.""" - if not self.spec.satisfies("@3.13:"): - tty.warn("Stand-alone tests only available for v3.13:") - return - cache_extra_test_sources( self, [join_path("src", "ksp", "ksp", "tutorials"), join_path("src", "snes", "tutorials")], @@ -835,17 +745,19 @@ def get_runner(self): env["PETSC_DIR"] = self.prefix env["PETSC_ARCH"] = "" if "+mpi" in spec: - runexe = which(spec["mpi"].prefix.bin.mpiexec) + runexe = which(spec["mpi"].prefix.bin.mpiexec, required=True) runopt = ["-n", "4"] else: - runexe = which(join_path(self.prefix.lib.petsc.bin, "petsc-mpiexec.uni")) + runexe = which( + join_path(self.prefix.lib.petsc.bin, "petsc-mpiexec.uni"), required=True + ) runopt = ["-n", "1"] return runexe, runopt def test_ex50(self): """build and run ex50 to solve Poisson equation in 2D""" # solve Poisson equation in 2D to make sure nothing is broken: - make = which("make") + make = which("make", required=True) runexe, runopts = self.get_runner() w_dir = self.test_suite.current_test_cache_dir.src.ksp.ksp.tutorials @@ -871,7 +783,7 @@ def test_ex7(self): if "+cuda" not in self.spec: raise SkipTest("Package must be built with +cuda") - make = which("make") + make = which("make", required=True) runexe, runopts = self.get_runner() w_dir = self.test_suite.current_test_cache_dir.src.ksp.ksp.tutorials @@ -898,7 +810,7 @@ def test_ex3k(self): if "+kokkos" not in self.spec: raise SkipTest("Package must be built with +kokkos") - make = which("make") + make = which("make", required=True) runexe, runopts = self.get_runner() w_dir = self.test_suite.current_test_cache_dir.src.snes.tutorials diff --git a/repos/spack_repo/builtin/packages/petsc/petsc_modifiable_lvalue.patch b/repos/spack_repo/builtin/packages/petsc/petsc_modifiable_lvalue.patch new file mode 100644 index 00000000000..2069911420b --- /dev/null +++ b/repos/spack_repo/builtin/packages/petsc/petsc_modifiable_lvalue.patch @@ -0,0 +1,13 @@ +diff --git a/src/sys/objects/device/impls/segmentedmempool.hpp b/src/sys/objects/device/impls/segmentedmempool.hpp +index df7cfc48914..624fe22c39b 100644 +--- a/src/sys/objects/device/impls/segmentedmempool.hpp ++++ b/src/sys/objects/device/impls/segmentedmempool.hpp +@@ -128,7 +128,7 @@ private: + bool open_ = true; // is this chunk open? + int stream_id_ = device::DefaultStream::INVALID_ID; // id of the last stream to use the chunk, populated on release + size_type size_ = 0; // size of the chunk +- const size_type start_ = 0; // offset from the start of the owning block ++ size_type start_ = 0; // offset from the start of the owning block + + template + PETSC_NODISCARD bool stream_compat_(const device::StreamBase *) const noexcept; diff --git a/repos/spack_repo/builtin/packages/petsc/pkg-config-3.7.6-3.8.4.diff b/repos/spack_repo/builtin/packages/petsc/pkg-config-3.7.6-3.8.4.diff deleted file mode 100644 index a0c960dcaea..00000000000 --- a/repos/spack_repo/builtin/packages/petsc/pkg-config-3.7.6-3.8.4.diff +++ /dev/null @@ -1,29 +0,0 @@ -diff --git c/config/PETSc/Configure.py w/config/PETSc/Configure.py -index ca65368e54..995afd0799 100644 ---- c/config/PETSc/Configure.py -+++ w/config/PETSc/Configure.py -@@ -174,19 +174,19 @@ class Configure(config.base.Configure): - - self.setCompilers.pushLanguage('C') - fd.write('ccompiler='+self.setCompilers.getCompiler()+'\n') -- fd.write('cflags_extra="'+self.setCompilers.getCompilerFlags().strip()+'"\n') -- fd.write('cflags_dep="'+self.compilers.dependenciesGenerationFlag.get('C','')+'"\n') -- fd.write('ldflag_rpath="'+self.setCompilers.CSharedLinkerFlag+'"\n') -+ fd.write('cflags_extra='+self.setCompilers.getCompilerFlags().strip()+'\n') -+ fd.write('cflags_dep='+self.compilers.dependenciesGenerationFlag.get('C','')+'\n') -+ fd.write('ldflag_rpath='+self.setCompilers.CSharedLinkerFlag+'\n') - self.setCompilers.popLanguage() - if hasattr(self.compilers, 'C++'): - self.setCompilers.pushLanguage('C++') - fd.write('cxxcompiler='+self.setCompilers.getCompiler()+'\n') -- fd.write('cxxflags_extra="'+self.setCompilers.getCompilerFlags().strip()+'"\n') -+ fd.write('cxxflags_extra='+self.setCompilers.getCompilerFlags().strip()+'\n') - self.setCompilers.popLanguage() - if hasattr(self.compilers, 'FC'): - self.setCompilers.pushLanguage('FC') - fd.write('fcompiler='+self.setCompilers.getCompiler()+'\n') -- fd.write('fflags_extra="'+self.setCompilers.getCompilerFlags().strip()+'"\n') -+ fd.write('fflags_extra='+self.setCompilers.getCompilerFlags().strip()+'\n') - self.setCompilers.popLanguage() - - fd.write('\n') diff --git a/repos/spack_repo/builtin/packages/petsc/xcode_stub_out_of_sync.patch b/repos/spack_repo/builtin/packages/petsc/xcode_stub_out_of_sync.patch deleted file mode 100644 index edd6a5b56a3..00000000000 --- a/repos/spack_repo/builtin/packages/petsc/xcode_stub_out_of_sync.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 6982d0159d8c95d8c403e81563a610a34c8cd8ec Mon Sep 17 00:00:00 2001 -From: Satish Balay -Date: Fri, 22 Mar 2019 13:51:07 -0500 -Subject: [PATCH] configure: work-around xcode warnings of type: - -ld: warning: text-based stub file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.tbd and library file -/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib are out of sync. Falling back to library file for linking. -ld: warning: text-based stub file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.tbd and library file -/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib are out of sync. Falling back to library file for linking. - -Reported-by: Denis Davydov -Reported-by: Amneet Pal Bhalla -Reported-by: DAFNAKIS PANAGIOTIS ---- - config/BuildSystem/config/compilers.py | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/config/BuildSystem/config/compilers.py b/config/BuildSystem/config/compilers.py -index 7bd8093..eedf456 100644 ---- a/config/BuildSystem/config/compilers.py -+++ b/config/BuildSystem/config/compilers.py -@@ -4,6 +4,12 @@ import re - import os - import shutil - -+def remove_xcode_verbose(buf): -+ retbuf =[] -+ for line in buf.splitlines(): -+ if not line.startswith('ld: warning: text-based stub file'): retbuf.append(line) -+ return ('\n').join(retbuf) -+ - class MissingProcessor(RuntimeError): - pass - -@@ -242,6 +248,7 @@ class Configure(config.base.Configure): - self.setCompilers.LDFLAGS = oldFlags - self.popLanguage() - -+ output = remove_xcode_verbose(output) - # PGI: kill anything enclosed in single quotes - if output.find('\'') >= 0: - # Cray has crazy non-matching single quotes so skip the removal -@@ -552,6 +559,7 @@ class Configure(config.base.Configure): - self.setCompilers.LDFLAGS = oldFlags - self.popLanguage() - -+ output = remove_xcode_verbose(output) - # PGI: kill anything enclosed in single quotes - if output.find('\'') >= 0: - if output.count('\'')%2: raise RuntimeError('Mismatched single quotes in C library string') -@@ -939,6 +947,7 @@ class Configure(config.base.Configure): - self.setCompilers.LDFLAGS = oldFlags - self.popLanguage() - -+ output = remove_xcode_verbose(output) - # replace \CR that ifc puts in each line of output - output = output.replace('\\\n', '') - --- -2.10.5 - diff --git a/repos/spack_repo/builtin/packages/petsc/xlc-test-3.10.1.diff b/repos/spack_repo/builtin/packages/petsc/xlc-test-3.10.1.diff deleted file mode 100644 index 7009ea450d3..00000000000 --- a/repos/spack_repo/builtin/packages/petsc/xlc-test-3.10.1.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- a/gmakefile.test -+++ b/gmakefile.test -@@ -127,11 +127,14 @@ - endif - -@$(GFORTRAN_DEP_CLEANUP) - -+#add xlf2003 flags -+XLF2003FLAGS = "-qxlf2003=polymorphic:bozlitargs:stopexcept:volatile:autorealloc" -+ - $(TESTDIR)/%.o : $(EXAMPLESDIR)/%.F90 | $$(@D)/.DIR - ifeq ($(FC_MODULE_OUTPUT_FLAG),) - $(call quiet,FCMOD) $(MODDIR) && $(FC) -c $(FC_FLAGS) $(FFLAGS) $(FCPPFLAGS) $(FC_DEPFLAGS) -I$(dir $<) $(abspath $<) -o $(abspath $@) - else -- $(PETSC_COMPILE.F) -I$(dir $<) $(abspath $<) -o $@ $(FC_MODULE_OUTPUT_FLAG)$(MODDIR) $(FC_MODULE_FLAG)$(MODDIR) -+ $(PETSC_COMPILE.F) ${XLF2003FLAGS} -I$(dir $<) $(abspath $<) -o $@ $(FC_MODULE_OUTPUT_FLAG)$(MODDIR) $(FC_MODULE_FLAG)$(MODDIR) - endif - -@$(GFORTRAN_DEP_CLEANUP) - - diff --git a/repos/spack_repo/builtin/packages/petsc/xlf_fix-dup-petscfecreate.patch b/repos/spack_repo/builtin/packages/petsc/xlf_fix-dup-petscfecreate.patch deleted file mode 100644 index cce573c97ea..00000000000 --- a/repos/spack_repo/builtin/packages/petsc/xlf_fix-dup-petscfecreate.patch +++ /dev/null @@ -1,31 +0,0 @@ -commit 5849cfbb8c629127894f722457da7b2cbb7f6a0b -Author: Satish Balay -Date: Sun Mar 31 21:43:12 2019 -0500 - - dm: remove duplicate PetscFECreate() definition from f90 modules. This fixes IBM xlf build. - - "/tmp/dobrev1/spack-stage/spack-stage-Vp2QRG/petsc-3.11.0/src/tao/f90-mod/petsctaomod.F", line 38.13: 1514-264 (S) Procedure petscfecreate has more than one interface accessible by use association. The interfaces are assumed to be the same. - 1501-511 Compilation failed for file petsctaomod.F. - - Reported-by: "Dobrev, Veselin A." - -diff --git a/src/dm/f90-mod/petscdt.h90 b/src/dm/f90-mod/petscdt.h90 -index 339f7fd41e..766f0e37dc 100644 ---- a/src/dm/f90-mod/petscdt.h90 -+++ b/src/dm/f90-mod/petscdt.h90 -@@ -49,15 +49,6 @@ - End Subroutine - End Interface - -- Interface -- Subroutine PetscFECreate(c,f,ierr) -- use petscdmdef -- MPI_Comm, intent(in) :: c -- PetscFE, intent(out) :: f -- PetscErrorCode, intent(out) :: ierr -- End Subroutine -- End Interface -- - Interface - Subroutine PetscFECreateDefault(c,d,n,i,str,o,f,ierr) - use petscdmdef diff --git a/repos/spack_repo/builtin/packages/pexsi/package.py b/repos/spack_repo/builtin/packages/pexsi/package.py index 3e8c6e1952c..b47d72d4395 100644 --- a/repos/spack_repo/builtin/packages/pexsi/package.py +++ b/repos/spack_repo/builtin/packages/pexsi/package.py @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os + from spack_repo.builtin.build_systems import cmake, makefile from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.makefile import MakefilePackage @@ -53,6 +55,7 @@ class Pexsi(MakefilePackage, CMakePackage): variant("openmp", default=False, description="Build with OpenMP support", when="@1.2") variant("fortran", default=False, description="Builds the Fortran interface") + variant("pic", default=True, description="Compile position independent code (PIC)") def url_for_version(self, version): if version == Version("0"): @@ -126,6 +129,7 @@ def cmake_args(self): args = [ self.define_from_variant("PEXSI_ENABLE_FORTRAN", "fortran"), self.define_from_variant("PEXSI_ENABLE_OPENMP ", "openmp"), + self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), ] if self.spec.satisfies("%fj"): diff --git a/repos/spack_repo/builtin/packages/pfind/package.py b/repos/spack_repo/builtin/packages/pfind/package.py index 6986fef480b..8ba549a623e 100644 --- a/repos/spack_repo/builtin/packages/pfind/package.py +++ b/repos/spack_repo/builtin/packages/pfind/package.py @@ -26,7 +26,6 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("CXX", self.spec["mpi"].mpicxx, force=True) def install(self, spec, prefix): - for installer_path in ["./prepare.sh", "./compile.sh"]: set_executable(installer_path) installer = Executable(installer_path) diff --git a/repos/spack_repo/builtin/packages/pflare/package.py b/repos/spack_repo/builtin/packages/pflare/package.py new file mode 100644 index 00000000000..5973ec7677a --- /dev/null +++ b/repos/spack_repo/builtin/packages/pflare/package.py @@ -0,0 +1,204 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import os + +from spack_repo.builtin.build_systems.makefile import MakefilePackage + +from spack.package import * +from spack.util.environment import EnvironmentModifications + + +class Pflare(MakefilePackage): + """Library with parallel iterative methods for asymmetric linear systems built on PETSc.""" + + homepage = "https://github.com/PFLAREProject/PFLARE" + url = "https://github.com/PFLAREProject/PFLARE/archive/refs/tags/v1.26.0.tar.gz" + git = "https://github.com/PFLAREProject/PFLARE.git" + + # Add a list of GitHub accounts to + # notify when the package is updated. + maintainers("stevendargaville") + license("MIT", checked_by="stevendargaville") + + version("main", branch="main") + version( + "1.26.0", + sha256="442cecd0414932bcefe9af72d90baf80997fb1673f1926bad5cbf1cbcf2eec65", + preferred=True, + ) + version("1.25.1", sha256="54f26bd604679b9b9010d157c1e32aad05d1a3610632d75c742419e659001903") + version("1.25.0", sha256="befb361b39c7601a8ca6f148369313f5755b238d5f6a4cbf91b19b23c93e8952") + version("1.24.11", sha256="8bcbee9e58ac3b2627dfbe78ebfac375192fb97d87337b40962d2730935ea1ce") + version("1.24.10", sha256="1d51ea420413d9959ea1a8a9499a663487672f08107838eaa6be11eab1e6fc2a") + + # Optionally build the python bindings + variant("python", default=False, description="Enable PFLARE Python bindings via petsc4py") + + # --- Dependencies --- + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + + depends_on("mpi") + depends_on("blas") + depends_on("lapack") + depends_on("metis") + depends_on("parmetis") + + # PETSc version dependencies + depends_on("petsc@main", when="@main") + depends_on("petsc@3.25.0:", when="@1.26.0:") + depends_on("petsc@3.24.1:3.24.6", when="@1.25.0:1.25.1") + depends_on("petsc@3.23.1:3.23.7", when="@:1.24.11") + # Bugs in 3.24.0 fixed in: + # https://gitlab.com/petsc/petsc/-/merge_requests/8768 + # https://gitlab.com/petsc/petsc/-/merge_requests/8713 + conflicts("^petsc@3.24.0", msg="PETSc 3.24.0 has known bugs in routines used by PFLARE") + + # Optional Python dependencies (needed at build/run time by python/setup.py) + depends_on("python", when="+python", type=("build", "run")) + depends_on("py-setuptools", when="+python", type="build") + depends_on("py-cython", when="+python", type="build") + depends_on("py-numpy", when="+python", type=("build", "run")) + depends_on("py-petsc4py", when="+python", type=("build", "run")) + + # ~~~~~~~~~~~~~~~ + # The build itself needs private PETSc headers that aren't included in the petsc install + # So we tell spack to restage petsc during our build and then we set petsc_src_dir + # ~~~~~~~~~~~~~~~ + def edit(self, spec, prefix): + # Stage the PETSc source that matches the concretized dependency + dep_pkg = self.spec["petsc"].package + dep_pkg.do_stage() # fetch+expand PETSc sources into its own stage + + petsc_src_dir = dep_pkg.stage.source_path # e.g., .../petsc-3.23.6 + link = join_path(self.stage.source_path, "petsc_src_dir") + + # Point our tree at the staged PETSc source + if os.path.islink(link) or os.path.exists(link): + try: + os.unlink(link) + except OSError: + pass + os.symlink(petsc_src_dir, link) + + # No need to override PYTHON/PYTHONPATH here; use Spack’s python wrapper via PATH + def setup_build_environment(self, env): + if self.spec.satisfies("+python"): + # Keep user site-packages out of the build + env.set("PYTHONNOUSERSITE", "1") + + # ~~~~~~~~~~~~~~~ + # The build appends the petsc source files into our include flags + # ~~~~~~~~~~~~~~~ + def build(self, spec, prefix): + from spack.util.environment import set_env + from spack.util.executable import which + + # Use the symlink created in edit() + petsc_inc_src = join_path(self.stage.source_path, "petsc_src_dir", "include") + if not os.path.isdir(petsc_inc_src): + raise InstallError(f"PETSc include directory not found at {petsc_inc_src}") + + extra_inc = f"-I{petsc_inc_src}" + with set_env( + CFLAGS=(f"{os.environ.get('CFLAGS', '')} {extra_inc}").strip(), + CXXFLAGS=(f"{os.environ.get('CXXFLAGS', '')} {extra_inc}").strip(), + CPPFLAGS=(f"{os.environ.get('CPPFLAGS', '')} {extra_inc}").strip(), + ): + # The Makefile has a `build_tests_check` target that builds the library and tests + make("build_tests_check", parallel=True) + if spec.satisfies("+python"): + # Use the python wrapper provided by Spack’s build env + py = which("python") # resolves to .../python-venv-*/bin/python + make("python", f"PYTHON={py.path}", parallel=True) + + # ~~~~~~~~~~~~~~~ + # ~~~~~~~~~~~~~~~ + def install(self, spec, prefix): + args = [f"PREFIX={prefix}"] + if spec.satisfies("+python"): + pyver = spec["python"].version.up_to(2) + args.append(f"PYVER={pyver}") + make("install", *args) + + # ~~~~~~~~~~~~~~~ + # Let dependents query include and link flags + # ~~~~~~~~~~~~~~~ + @property + def headers(self): + # Expose the whole include tree (Fortran .mod and C headers) + hdrs = find_headers("*", self.prefix.include, recursive=True) + return hdrs + + @property + def libs(self): + libs = find_libraries("libpflare", self.prefix.lib, shared=True, recursive=False) + if not libs: + libs = find_libraries("libpflare", self.prefix.lib, shared=False, recursive=False) + return libs + + # ~~~~~~~~~~~~~~~ + # Provide environment variables when spack load pflare is called + # to make it easy for people to build against PFLARE + # ~~~~~~~~~~~~~~~ + def setup_run_environment(self, env): + import os + + # Runtime and build path-like vars + env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib) + env.prepend_path("LIBRARY_PATH", self.prefix.lib) + env.prepend_path("CPATH", self.prefix.include) + env.prepend_path("CMAKE_PREFIX_PATH", self.prefix) + env.prepend_path("PKG_CONFIG_PATH", join_path(self.prefix.lib, "pkgconfig")) + if os.path.isdir(self.prefix.bin): + env.prepend_path("PATH", self.prefix.bin) + + # Optional: provide ready-to-use flags for simple Makefiles + env.append_flags("CPPFLAGS", f"-I{self.prefix.include}") + env.append_flags("CFLAGS", f"-I{self.prefix.include}") + env.append_flags("CXXFLAGS", f"-I{self.prefix.include}") + env.append_flags("FFLAGS", f"-I{self.prefix.include}") # Fortran .mod includes + env.append_flags("LDFLAGS", f"-L{self.prefix.lib} -Wl,-rpath,{self.prefix.lib}") + + if self.spec.satisfies("+python"): + pyver = self.spec["python"].version.up_to(2) + pydir = join_path(self.prefix.lib, f"python{pyver}", "site-packages") + env.prepend_path("PYTHONPATH", pydir) + + # ~~~~~~~~~~~~~~~ + # Cleanup PETSc stage directory after install + # ~~~~~~~~~~~~~~~ + @run_after("install") + def cleanup_petsc_stage(self): + # Avoid leaking a staged PETSc tree on disk + try: + self.spec["petsc"].package.stage.destroy() + except Exception: + pass + + # ~~~~~~~~~~~~~~~ + # Check setup_run_environment and the python import works after the install + # ~~~~~~~~~~~~~~~ + @run_after("install") + def smoke_test_with_run_env(self): + # Only when +python and tests requested + if not self.spec.satisfies("+python") or not self.run_tests: + return + + run_env = EnvironmentModifications() + # Populate what `spack load` would set + self.setup_run_environment(run_env) + run_env.set("PYTHONNOUSERSITE", "1") # keep user site-packages out + + py = self.spec["python"].command + # Apply (non-context) and restore afterwards + orig_env = os.environ.copy() + try: + run_env.apply_modifications() + py("-c", "import pflare; print('PFLARE Python import OK')") + finally: + os.environ.clear() + os.environ.update(orig_env) diff --git a/repos/spack_repo/builtin/packages/pflogger/package.py b/repos/spack_repo/builtin/packages/pflogger/package.py index 35174840444..c0d3b950f20 100644 --- a/repos/spack_repo/builtin/packages/pflogger/package.py +++ b/repos/spack_repo/builtin/packages/pflogger/package.py @@ -23,6 +23,7 @@ class Pflogger(CMakePackage): version("develop", branch="develop") version("main", branch="main") + version("1.18.1", sha256="e88bb22bc1212bdbfade87bc16ec3ba8306540ef66cd99f201633f86043c3f89") version("1.18.0", sha256="e4ccd77b4fbe49396f0659c2f3a82622ed7a3ad3d89574fda6783fc8cf6d6b3e") version("1.17.0", sha256="44dd57fd63a9036dc3ca0dee6847042468e5f39f776188a1d140847005e4f828") version("1.16.1", sha256="82ae8d008dda3984e12df3e92a61486a8f5c0b87182d54087f1d004ecc141fff") diff --git a/repos/spack_repo/builtin/packages/pfunit/package.py b/repos/spack_repo/builtin/packages/pfunit/package.py index 4f3e41939a7..aab7ef38fbd 100644 --- a/repos/spack_repo/builtin/packages/pfunit/package.py +++ b/repos/spack_repo/builtin/packages/pfunit/package.py @@ -20,6 +20,20 @@ class Pfunit(CMakePackage): maintainers("mathomp4", "tclune") + 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") + # There was a mistake in the 4.16.0 release. Mark as deprecated. + version( + "4.16.0", + sha256="314381ff08dc99e87a4da5862501053d112babaf73244b1c04b77065d3fd3091", + deprecated=True, + ) version("4.15.0", sha256="8c9cb7f7275802c5169b16dd511209b15ccde3a0e2fb3ed9007a0ab9acf4abb1") version("4.14.0", sha256="3f5fcc79cf5f12ed08eb8e49aff23e0826243b14d4b2b2efee91ce823ac1749d") version("4.13.0", sha256="f4f894faea5cc591f05e071a2bb16ddf613c3c22f88a6dc3b8149f5c4f159548") diff --git a/repos/spack_repo/builtin/packages/pgplot/package.py b/repos/spack_repo/builtin/packages/pgplot/package.py index f7ed73192eb..0694576de27 100644 --- a/repos/spack_repo/builtin/packages/pgplot/package.py +++ b/repos/spack_repo/builtin/packages/pgplot/package.py @@ -128,7 +128,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.append_flags("LIBS", self.spec["libpng"].libs.ld_flags) def build(self, spec, prefix): - makemake = which("./makemake") + makemake = which("./makemake", required=True) makemake(self.build_directory, "linux", "g77_gcc") make() make("clean") diff --git a/repos/spack_repo/builtin/packages/phast/package.py b/repos/spack_repo/builtin/packages/phast/package.py index 61c8ab825d2..df1e74384f9 100644 --- a/repos/spack_repo/builtin/packages/phast/package.py +++ b/repos/spack_repo/builtin/packages/phast/package.py @@ -22,7 +22,7 @@ class Phast(MakefilePackage): depends_on("c", type="build") # generated # phast cannot build with clapack using external blas - depends_on("clapack~external-blas") + depends_on("clapack") build_directory = "src" diff --git a/repos/spack_repo/builtin/packages/phist/package.py b/repos/spack_repo/builtin/packages/phist/package.py index 680c4930997..00e4b214335 100644 --- a/repos/spack_repo/builtin/packages/phist/package.py +++ b/repos/spack_repo/builtin/packages/phist/package.py @@ -86,8 +86,7 @@ class Phist(CMakePackage): name="outlev", default="2", values=["0", "1", "2", "3", "4", "5"], - description="verbosity. 0: errors 1: +warnings 2: +info " - "3: +verbose 4: +extreme 5: +debug", + description="verbosity. 0: errors 1: +warnings 2: +info 3: +verbose 4: +extreme 5: +debug", ) variant( @@ -118,8 +117,7 @@ class Phist(CMakePackage): variant( "scamac", default=True, - description='enable/disable building the "SCAlable MAtrix ' - 'Collection" matrix generators.', + description='enable/disable building the "SCAlable MAtrix Collection" matrix generators.', ) variant( @@ -135,7 +133,7 @@ class Phist(CMakePackage): variant( "fortran", default=True, - description="generate Fortran 2003 bindings (requires Python3 and " "a Fortran compiler)", + description="generate Fortran 2003 bindings (requires Python3 and a Fortran compiler)", ) # Build error with LLVM and recent Trilinos, fixed in phist-1.12.1 diff --git a/repos/spack_repo/builtin/packages/php/package.py b/repos/spack_repo/builtin/packages/php/package.py index 80228787a18..87c30206d49 100644 --- a/repos/spack_repo/builtin/packages/php/package.py +++ b/repos/spack_repo/builtin/packages/php/package.py @@ -21,30 +21,6 @@ class Php(AutotoolsPackage): version("8.3.12", sha256="d5d4e6ffc6d6b2f02a87c45741623e08045ec6509ade44a1033e0f8bbb374119") version("7.4.33", sha256="dfbb2111160589054768a37086bda650a0041c89878449d078684d70d6a0e411") - with default_args(deprecated=True): - version("7.4.1", sha256="4d9d7c5681bec3af38a935d033657dce09a9913498f8022d7ca163a7f2f493a7") - version("7.4.0", sha256="91d34b48025ab9789216df89e247b6904912eeeaeff38c300ef314bdda8920b0") - version( - "7.3.13", sha256="e68b8d9e659f2993eee912f05860e546fdc18e459f31cd2771f404df21285f0b" - ) - version( - "7.3.12", sha256="d0672ea84c0ab184f636acff3230d376d89a2067d59a87a2f1842361ee1f97d6" - ) - version( - "7.3.11", sha256="4d861b2f3bc640ded8b591ce87250161392a6244a3c84042da0c06fd8c500eb2" - ) - version( - "7.2.26", sha256="da132a836cec8021c00f22952e6044d91628ee3d2ef92a95d65cf91bad810600" - ) - version( - "7.2.25", sha256="049b2d291c45cb889d15fcd2bac6da7d15ca5d535d272d2f8879fb834bbf276e" - ) - version( - "7.2.24", sha256="334c9915733f6a29e1462f64038b1b4b1b21cb18f4f5f980add86792b5550ab3" - ) - version( - "7.1.33", sha256="f80a795a09328a9441bae4a8a60fa0d6d43ec5adc98f5aa5f51d06f4522c07fe" - ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -86,7 +62,7 @@ def patch(self): ) def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./buildconf", "--force") @when("@8:") diff --git a/repos/spack_repo/builtin/packages/phylip/package.py b/repos/spack_repo/builtin/packages/phylip/package.py index 9267f1835dd..04ff76cf242 100644 --- a/repos/spack_repo/builtin/packages/phylip/package.py +++ b/repos/spack_repo/builtin/packages/phylip/package.py @@ -11,12 +11,13 @@ class Phylip(Package): """PHYLIP (the PHYLogeny Inference Package) is a package of programs for inferring phylogenies (evolutionary trees).""" - homepage = "https://evolution.genetics.washington.edu/phylip/" - url = "https://evolution.gs.washington.edu/phylip/download/phylip-3.697.tar.gz" + homepage = "https://phylipweb.github.io/phylip/" + url = "https://phylipweb.github.io/phylip/download/phylip-3.697.tar.gz" maintainers("snehring") version("3.697", sha256="9a26d8b08b8afea7f708509ef41df484003101eaf4beceb5cf7851eb940510c1") + depends_on("c", type="build") depends_on("gmake", type="build") def patch(self): diff --git a/repos/spack_repo/builtin/packages/picsar/package.py b/repos/spack_repo/builtin/packages/picsar/package.py index 2849194e5a1..884ac37e6de 100644 --- a/repos/spack_repo/builtin/packages/picsar/package.py +++ b/repos/spack_repo/builtin/packages/picsar/package.py @@ -77,7 +77,7 @@ def build_targets(self): if "%gcc" in self.spec: targets.append( - "FARGS=-g -fbounds-check -O3 -fopenmp " "-JModules -fallow-argument-mismatch" + "FARGS=-g -fbounds-check -O3 -fopenmp -JModules -fallow-argument-mismatch" ) return targets diff --git a/repos/spack_repo/builtin/packages/pika/package.py b/repos/spack_repo/builtin/packages/pika/package.py index 572742f8064..48e8523da8c 100644 --- a/repos/spack_repo/builtin/packages/pika/package.py +++ b/repos/spack_repo/builtin/packages/pika/package.py @@ -22,47 +22,108 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage): license("BSL-1.0") - version("0.34.0", sha256="82f0f4a4aa1da691d02fbf05882e1a2c8c3dcf113309a5a4264122c44d02ac20") - version("0.33.0", sha256="08db88294e6eaccb80f1c4012e7ba0e197b6354b6fbc3bfdb7734cb9dce6fe08") - version("0.32.0", sha256="19217e3eecff30a7038f5712b6e161db09f12d7077550e8f66add74b3e524d29") - version("0.31.0", sha256="bdbd8e36afb367cc2c7172e5a819c756e4ee20e74dfdec4905f2e84bf097eb7c") - version("0.30.1", sha256="b0f3689a3edd30f8d674e19b5134fc5013813f843c45797c1015163e51989ac0") - version("0.30.0", sha256="1798bf7de2505bc707bf95716fda8de5630b2e2ae54a6c4ef59f9931394d31cc") - version("0.29.0", sha256="2c61079f52f3e135a8d0845a993e6e4fb64031fbee9b5cef0ead57efb6175e3c") - version("0.28.0", sha256="a64ebac04135c0c8d392ddcd8d683fe02e2c0782abfe130754244d58f27ae6cf") - version("0.27.0", sha256="4a58dc4014edc2074399e4a6ecfa244537c89ce1319b3e14ff3dfe617fb9f9e8") - version("0.26.1", sha256="d7cc842238754019abdb536e22325e9a57186cd2ac8cc9c7140a5385f9d730f6") - version("0.26.0", sha256="bbec5472c71006c1f55e7946c8dc517dae76c41cacb36fa98195312c74a1bb9a") - version("0.25.0", sha256="6646e12f88049116d84ce0caeedaa039a13caaa0431964caea4660b739767b2e") - version("0.24.0", sha256="3b97c684107f892a633f598d94bcbd1e238d940e88e1c336f205e81b99326cc3") - version("0.23.0", sha256="d1981e198ac4f8443770cebbeff7a132b8f6c1a42e32b0b06fea02cc9df99595") - version("0.22.2", sha256="eeffa8584336b239aca167f0056e815b1b6d911e46cbb3cd6b8b811d101c1052") - version("0.22.1", sha256="b0de0649bee336847622f97b59b34a80cb3cfd9a931bbdb38299bc4904f19b92") - version("0.22.0", sha256="75f8932f3a233958c69802b483335eeeb39032ea66f12442f6f77048e259bdea") - version("0.21.0", sha256="0ab24966e6ae026b355147f02354af4bd2117c342915fe844addf8e493735a33") - version("0.20.0", sha256="f338cceea66a0e3954806b2aca08f6560bba524ecea222f04bc18b483851c877") - version("0.19.1", sha256="674675abf0dd4c6f5a0b2fa3db944b277ed65c62f654029d938a8cab608a9c1d") - version("0.19.0", sha256="f45cc16e4e50cbb183ed743bdc8b775d49776ee33c13ea39a650f4230a5744cb") - version("0.18.0", sha256="f34890e0594eeca6ac57f2b988d0807b502782817e53a7f7043c3f921b08c99f") - version("0.17.0", sha256="717429fc1bc986d62cbec190a69939e91608122d09d54bda1b028871c9ca9ad4") - version("0.16.0", sha256="59f2baec91cc9bf71ca96d21d0da1ec0092bf59da106efa51789089e0d7adcbb") - version("0.15.1", sha256="b68b87cf956ad1448f5c2327a72ba4d9fb339ecabeabb0a87b8ea819457e293b") - version("0.15.0", sha256="4ecd5b64bd8067283a161e1aeacfbab7658d89fe1504b788fd3236298fe66b00") - version("0.14.0", sha256="c0fc10a3c2c24bccbdc292c22a3373a2ad579583ee9d8bd31aaf1755e49958a4") - version("0.13.0", sha256="67e0843141fb711787e71171a7a669c9cdb9587e4afd851ee2b0339a62b9a254") - version("0.12.0", sha256="daa1422eb73d6a897ce7b8ff8022e09e7b0fec83d92728ed941a92e57dec5da3") - version("0.11.0", sha256="3c3d94ca1a3960884bad7272bb9434d61723f4047ebdb097fcf522c6301c3fda") - version("0.10.0", sha256="3b443b8f0f75b9a558accbaef0334a113a71b0205770e6c7ff02ea2d7c6aca5b") - version("0.9.0", sha256="c349b2a96476d6974d2421288ca4d2e14ef9e5897d44cd7d5343165faa2d1299") - version("0.8.0", sha256="058e82d7c8f95badabe52bbb4682d55aadf340d67ced1226c0673b4529adc182") - version("0.7.0", sha256="e1bf978c88515f7af28ee47f98b795ffee521c15b39877ea4cfb405f31d507ed") - version("0.6.0", sha256="cb4ebd7b92da39ec4df7b0d05923b94299d6ee2f2f49752923ffa2266ca76568") - version("0.5.0", sha256="c43de7e92d04bea0ce59716756ef5f3a5a54f9e4affed872c1468632ad855f7c") - version("0.4.0", sha256="31084a0a61103ee9574aaa427f879682e3e37cb11e8d147f2649949bee324591") - version("0.3.0", sha256="bbb89f9824c58154ed59e2e14276c0ad132fd7b90b2be64ddd0e284f3b57cc0f") - version("0.2.0", sha256="712bb519f22bdc9d5ee4ac374d251a54a0af4c9e4e7f62760b8ab9a177613d12") - version("0.1.0", sha256="aa0ae2396cd264d821a73c4c7ecb118729bb3de042920c9248909d33755e7327") version("main", branch="main") + version("0.34.0", sha256="82f0f4a4aa1da691d02fbf05882e1a2c8c3dcf113309a5a4264122c44d02ac20") + with default_args(deprecated=True): + version( + "0.33.0", sha256="08db88294e6eaccb80f1c4012e7ba0e197b6354b6fbc3bfdb7734cb9dce6fe08" + ) + version( + "0.32.0", sha256="19217e3eecff30a7038f5712b6e161db09f12d7077550e8f66add74b3e524d29" + ) + version( + "0.31.0", sha256="bdbd8e36afb367cc2c7172e5a819c756e4ee20e74dfdec4905f2e84bf097eb7c" + ) + version( + "0.30.1", sha256="b0f3689a3edd30f8d674e19b5134fc5013813f843c45797c1015163e51989ac0" + ) + version( + "0.30.0", sha256="1798bf7de2505bc707bf95716fda8de5630b2e2ae54a6c4ef59f9931394d31cc" + ) + version( + "0.29.0", sha256="2c61079f52f3e135a8d0845a993e6e4fb64031fbee9b5cef0ead57efb6175e3c" + ) + version( + "0.28.0", sha256="a64ebac04135c0c8d392ddcd8d683fe02e2c0782abfe130754244d58f27ae6cf" + ) + version( + "0.27.0", sha256="4a58dc4014edc2074399e4a6ecfa244537c89ce1319b3e14ff3dfe617fb9f9e8" + ) + version( + "0.26.1", sha256="d7cc842238754019abdb536e22325e9a57186cd2ac8cc9c7140a5385f9d730f6" + ) + version( + "0.26.0", sha256="bbec5472c71006c1f55e7946c8dc517dae76c41cacb36fa98195312c74a1bb9a" + ) + version( + "0.25.0", sha256="6646e12f88049116d84ce0caeedaa039a13caaa0431964caea4660b739767b2e" + ) + version( + "0.24.0", sha256="3b97c684107f892a633f598d94bcbd1e238d940e88e1c336f205e81b99326cc3" + ) + version( + "0.23.0", sha256="d1981e198ac4f8443770cebbeff7a132b8f6c1a42e32b0b06fea02cc9df99595" + ) + version( + "0.22.2", sha256="eeffa8584336b239aca167f0056e815b1b6d911e46cbb3cd6b8b811d101c1052" + ) + version( + "0.22.1", sha256="b0de0649bee336847622f97b59b34a80cb3cfd9a931bbdb38299bc4904f19b92" + ) + version( + "0.22.0", sha256="75f8932f3a233958c69802b483335eeeb39032ea66f12442f6f77048e259bdea" + ) + version( + "0.21.0", sha256="0ab24966e6ae026b355147f02354af4bd2117c342915fe844addf8e493735a33" + ) + version( + "0.20.0", sha256="f338cceea66a0e3954806b2aca08f6560bba524ecea222f04bc18b483851c877" + ) + version( + "0.19.1", sha256="674675abf0dd4c6f5a0b2fa3db944b277ed65c62f654029d938a8cab608a9c1d" + ) + version( + "0.19.0", sha256="f45cc16e4e50cbb183ed743bdc8b775d49776ee33c13ea39a650f4230a5744cb" + ) + version( + "0.18.0", sha256="f34890e0594eeca6ac57f2b988d0807b502782817e53a7f7043c3f921b08c99f" + ) + version( + "0.17.0", sha256="717429fc1bc986d62cbec190a69939e91608122d09d54bda1b028871c9ca9ad4" + ) + version( + "0.16.0", sha256="59f2baec91cc9bf71ca96d21d0da1ec0092bf59da106efa51789089e0d7adcbb" + ) + version( + "0.15.1", sha256="b68b87cf956ad1448f5c2327a72ba4d9fb339ecabeabb0a87b8ea819457e293b" + ) + version( + "0.15.0", sha256="4ecd5b64bd8067283a161e1aeacfbab7658d89fe1504b788fd3236298fe66b00" + ) + version( + "0.14.0", sha256="c0fc10a3c2c24bccbdc292c22a3373a2ad579583ee9d8bd31aaf1755e49958a4" + ) + version( + "0.13.0", sha256="67e0843141fb711787e71171a7a669c9cdb9587e4afd851ee2b0339a62b9a254" + ) + version( + "0.12.0", sha256="daa1422eb73d6a897ce7b8ff8022e09e7b0fec83d92728ed941a92e57dec5da3" + ) + version( + "0.11.0", sha256="3c3d94ca1a3960884bad7272bb9434d61723f4047ebdb097fcf522c6301c3fda" + ) + version( + "0.10.0", sha256="3b443b8f0f75b9a558accbaef0334a113a71b0205770e6c7ff02ea2d7c6aca5b" + ) + version("0.9.0", sha256="c349b2a96476d6974d2421288ca4d2e14ef9e5897d44cd7d5343165faa2d1299") + version("0.8.0", sha256="058e82d7c8f95badabe52bbb4682d55aadf340d67ced1226c0673b4529adc182") + version("0.7.0", sha256="e1bf978c88515f7af28ee47f98b795ffee521c15b39877ea4cfb405f31d507ed") + version("0.6.0", sha256="cb4ebd7b92da39ec4df7b0d05923b94299d6ee2f2f49752923ffa2266ca76568") + version("0.5.0", sha256="c43de7e92d04bea0ce59716756ef5f3a5a54f9e4affed872c1468632ad855f7c") + version("0.4.0", sha256="31084a0a61103ee9574aaa427f879682e3e37cb11e8d147f2649949bee324591") + version("0.3.0", sha256="bbb89f9824c58154ed59e2e14276c0ad132fd7b90b2be64ddd0e284f3b57cc0f") + version("0.2.0", sha256="712bb519f22bdc9d5ee4ac374d251a54a0af4c9e4e7f62760b8ab9a177613d12") + version("0.1.0", sha256="aa0ae2396cd264d821a73c4c7ecb118729bb3de042920c9248909d33755e7327") generator("ninja") @@ -91,8 +152,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage): variant( "generic_coroutines", default=default_generic_coroutines, - description="Use Boost.Context as the underlying coroutines" - " context switch implementation", + description="Use Boost.Context as the underlying coroutines context switch implementation", ) variant("examples", default=False, description="Build and install examples") @@ -167,6 +227,14 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage): with when("+stdexec"): depends_on("stdexec") depends_on("stdexec@24.09:", when="@0.29:") + # https://github.com/pika-org/pika/issues/1448 + conflicts( + "stdexec@25.09:", + msg="stdexec 25.09 changes the bulk customization mechanisms in a way that pika's " + "customizations no longer apply which leads to single-threaded execution where " + "parallel execution is expected; see https://github.com/pika-org/pika/issues/1448 " + "for more details", + ) depends_on("rocblas", when="+rocm") depends_on("rocsolver", when="@0.5: +rocm") depends_on("tracy-client", when="+tracy") diff --git a/repos/spack_repo/builtin/packages/pinentry/package.py b/repos/spack_repo/builtin/packages/pinentry/package.py index 11d02b8a1f3..0dd6e915709 100644 --- a/repos/spack_repo/builtin/packages/pinentry/package.py +++ b/repos/spack_repo/builtin/packages/pinentry/package.py @@ -22,6 +22,7 @@ class Pinentry(AutotoolsPackage): license("GPL-2.0-or-later") + version("1.3.2", sha256="8e986ed88561b4da6e9efe0c54fa4ca8923035c99264df0b0464497c5fb94e9e") version("1.3.1", sha256="bc72ee27c7239007ab1896c3c2fae53b076e2c9bd2483dc2769a16902bce8c04") version("1.3.0", sha256="9b3cd5226e7597f2fded399a3bc659923351536559e9db0826981bca316494de") version("1.2.1", sha256="457a185e5a85238fb945a955dc6352ab962dc8b48720b62fc9fa48c7540a4067") @@ -99,7 +100,7 @@ def configure_args(self): def check_version(self, exe_name): """Version check""" - exe = which(join_path(self.prefix.bin, exe_name)) + exe = which(join_path(self.prefix.bin, exe_name), required=True) out = exe("--version", output=str.split, error=str.split) assert str(self.version) in out diff --git a/repos/spack_repo/builtin/packages/pioman/package.py b/repos/spack_repo/builtin/packages/pioman/package.py new file mode 100644 index 00000000000..7d5fbfc4c5b --- /dev/null +++ b/repos/spack_repo/builtin/packages/pioman/package.py @@ -0,0 +1,94 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.packages.puk.package import Puk + +from spack.package import * + + +class Pioman(AutotoolsPackage): + """PIOMan I/O manager. + + PIOMan is a generic I/O manager, designed to deal with + interactions between communication and multi-threading. It + guarantees a good level of reactivity, is able to automatically + choose between active polling and blocking calls depending on the + context, and may offload I/O requests to idle cores when availble + to handle multiple requests in parallel and overlap communication + and computation. + """ + + homepage = "https://pm2.gitlabpages.inria.fr/pioman/" + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-2025-03-18.tar.gz" + list_url = "https://pm2.gitlabpages.inria.fr/releases/" + git = "https://gitlab.inria.fr/pm2/pm2.git" + + maintainers("a-denis") + license("GPL-2.0-or-later", checked_by="a-denis") + + def url_for_version(self, version): + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-{0}.tar.gz" + return url.format(version) + + version("master", branch="master") + version( + "2026-01-21", sha256="2cd40d7712d78c6c43c510c3ae2bdbc3d539800f6d3926730bddde396e953847" + ) + version( + "2025-03-18", sha256="2d0208809dd17bac4fd7e7f97b22e2240b925d8828b9ab5dc5f435e58ff97010" + ) + version( + "2024-11-21", sha256="76da169bbb9720a13be1f750480e1a7d6510830163878852876932639879d632" + ) + version( + "2024-07-12", sha256="ea9bb91b213950a52eb99d787110905d45ed02954ea9133596d690db5be0c31b" + ) + version( + "2022-05-31", sha256="afd19809a5a520a477ab596f951bbde3209868ab16febbc246592e8aed20c3ca" + ) + version( + "2021-05-21", sha256="6a207b032e623b8be0196a42dcaf4311bfe45ede2e044bd47611b6610c04c61e" + ) + + variant("optimize", default=True, description="Build in optimized mode") + variant("debug", default=False, description="Build in debug mode") + variant("asan", default=False, description="Build with Address Sanitizer (ASAN)") + variant("pthread", default=True, description="use pthreads") + + depends_on("c", type="build") + depends_on("pkgconfig", type="build") + depends_on("autoconf@2.69:", type="build") + depends_on("gmake", type="build") + + depends_on("hwloc", type=("build", "link", "run")) + + for v in Puk.versions: + depends_on(f"puk@{v}", when=f"@{v}") + + depends_on("puk") + depends_on("puk+asan", when="+asan") + + conflicts("platform=darwin", msg="Darwin is not supported.") + conflicts("platform=windows", msg="Windows is not supported.") + conflicts("%gcc@:5", msg="Requires at least gcc 6.") + + configure_directory = "pioman" + build_directory = "build" + + def autoreconf(self, spec, prefix): + with working_dir(self.configure_directory): + Executable("./autogen.sh")() + + def configure_args(self): + config_args = [ + "--with-hwloc", # always use hwloc + "--without-gtg", # no gtg package in spack + "--without-simgrid", # no simgrid support in spack for now + ] + config_args += self.enable_or_disable("optimize") + config_args += self.enable_or_disable("debug") + config_args += self.enable_or_disable("asan") + config_args += self.with_or_without("pthread") + return config_args diff --git a/repos/spack_repo/builtin/packages/pism/package.py b/repos/spack_repo/builtin/packages/pism/package.py index 3582e23f7f6..a88e7778aeb 100644 --- a/repos/spack_repo/builtin/packages/pism/package.py +++ b/repos/spack_repo/builtin/packages/pism/package.py @@ -32,7 +32,7 @@ class Pism(CMakePackage): variant( "proj", default=True, - description="Use Proj to compute cell areas, " "longitudes, and latitudes.", + description="Use Proj to compute cell areas, longitudes, and latitudes.", ) variant("parallel-netcdf4", default=False, description="Enables parallel NetCDF-4 I/O.") variant( diff --git a/repos/spack_repo/builtin/packages/pixman/package.py b/repos/spack_repo/builtin/packages/pixman/package.py index de4f4a1b2cc..057c246f419 100644 --- a/repos/spack_repo/builtin/packages/pixman/package.py +++ b/repos/spack_repo/builtin/packages/pixman/package.py @@ -21,6 +21,8 @@ class Pixman(AutotoolsPackage, MesonPackage): license("MIT") + version("0.46.4", sha256="d09c44ebc3bd5bee7021c79f922fe8fb2fb57f7320f55e97ff9914d2346a591c") + version("0.44.2", sha256="6349061ce1a338ab6952b92194d1b0377472244208d47ff25bef86fc71973466") version("0.44.0", sha256="89a4c1e1e45e0b23dffe708202cb2eaffde0fe3727d7692b2e1739fec78a7dac") version("0.42.2", sha256="ea1480efada2fd948bc75366f7c349e1c96d3297d09a3fe62626e38e234a625e") version("0.42.0", sha256="07f74c8d95e4a43eb2b08578b37f40b7937e6c5b48597b3a0bb2c13a53f46c13") @@ -42,6 +44,7 @@ class Pixman(AutotoolsPackage, MesonPackage): depends_on("c", type="build") with when("build_system=meson"): depends_on("meson@0.52:", type="build") + depends_on("meson@1.3:", type="build", when="@0.44.2:") depends_on("pkgconfig", type="build") depends_on("flex", type="build") depends_on("bison@3:", type="build") @@ -130,7 +133,10 @@ def configure_args(self): png = self.spec["libpng"] if not png.satisfies("libs=shared"): args.append( - "LIBS=%s" % which("libpng-config")("--static", "--ldflags", output=str).strip() + "LIBS=%s" + % which("libpng-config", required=True)( + "--static", "--ldflags", output=str + ).strip() ) # The Fujitsu compiler does not support assembler macros. diff --git a/repos/spack_repo/builtin/packages/pkg_config/package.py b/repos/spack_repo/builtin/packages/pkg_config/package.py index be5cbf17f70..a9d94883c17 100644 --- a/repos/spack_repo/builtin/packages/pkg_config/package.py +++ b/repos/spack_repo/builtin/packages/pkg_config/package.py @@ -64,9 +64,18 @@ def configure_args(self): # the cycle by using the internal glib. config_args.append("--with-internal-glib") - for strict_compiler in ("%oneapi", "%cce", "%apple-clang@15:", "%clang@15:"): + for strict_compiler in ( + "%oneapi", + "%cce", + "%apple-clang@15:", + "%clang@15:", + "%llvm-amdgpu", + ): if spec.satisfies(strict_compiler): config_args.append("CFLAGS=-Wno-error=int-conversion") break + if spec.satisfies("%gcc@14:"): + config_args.append("CFLAGS=-std=gnu17") + return config_args diff --git a/repos/spack_repo/builtin/packages/pkgconf/package.py b/repos/spack_repo/builtin/packages/pkgconf/package.py index 1a48e3a5876..cd3c7e9e7b7 100644 --- a/repos/spack_repo/builtin/packages/pkgconf/package.py +++ b/repos/spack_repo/builtin/packages/pkgconf/package.py @@ -20,6 +20,9 @@ class Pkgconf(AutotoolsPackage): license("ISC") + maintainers("CodingYayaToure") + + version("2.5.1", sha256="cd05c9589b9f86ecf044c10a2269822bc9eb001eced2582cfffd658b0a50c243") version("2.3.0", sha256="3a9080ac51d03615e7c1910a0a2a8df08424892b5f13b0628a204d3fcce0ea8b") version("2.2.0", sha256="b06ff63a83536aa8c2f6422fa80ad45e4833f590266feb14eaddfe1d4c853c69") version("1.9.5", sha256="1ac1656debb27497563036f7bffc281490f83f9b8457c0d60bcfb638fb6b6171") diff --git a/repos/spack_repo/builtin/packages/plink/package.py b/repos/spack_repo/builtin/packages/plink/package.py index bced3c8e414..1595e55e16d 100644 --- a/repos/spack_repo/builtin/packages/plink/package.py +++ b/repos/spack_repo/builtin/packages/plink/package.py @@ -17,16 +17,6 @@ class Plink(Package): version("1.9-beta7.7", commit="8bf44299e6eed58f3ebd27f7e28cead11b814785") version("1.9-beta6.27", commit="a2ea957c893fbb0558358edef27f3ecbf3d360f8") - version( - "1.9-beta6.10", - sha256="f8438656996c55a5edd95c223cce96277de6efaab1b9b1d457bfee0c272058d8", - url="https://s3.amazonaws.com/plink1-assets/plink_linux_x86_64_20190617.zip", - ) - version( - "1.9-beta5", - sha256="e00ef16ac5abeb6b4c4d77846bd655fafc62669fbebf8cd2e941f07b3111907e", - url="https://github.com/chrchang/plink-ng/archive/b15c19f.tar.gz", - ) version( "1.07", sha256="70c52ee47eed854293832639dbabb41c7c036db3a4881c136e6a71ecff4ac7f4", @@ -34,9 +24,6 @@ class Plink(Package): preferred=True, ) - depends_on("atlas", when="@1.9-beta5:1.9-beta6.10") - depends_on("netlib-lapack", when="@1.9-beta5:1.9-beta6.10") - with when("@1.9-beta-6.27:"): depends_on("zlib-api", when="@1.9-beta6.27:") depends_on("blas", when="@1.9-beta6.27:") @@ -51,11 +38,6 @@ def install(self, spec, prefix): if spec.version == Version("1.07"): install("plink", prefix.bin) install("gPLINK.jar", prefix.bin) - if spec.version == Version("1.9-beta5"): - with working_dir("1.9"): - first_compile = Executable("./plink_first_compile") - first_compile() - install("plink", prefix.bin) if spec.version == Version("1.9-beta6.10"): install("plink", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/plink_ng/package.py b/repos/spack_repo/builtin/packages/plink_ng/package.py index 5da11e0b949..026b1284015 100644 --- a/repos/spack_repo/builtin/packages/plink_ng/package.py +++ b/repos/spack_repo/builtin/packages/plink_ng/package.py @@ -23,9 +23,8 @@ class PlinkNg(Package): conflicts("%gcc@:4") - def url_for_version(self, ver): - template = "https://www.cog-genomics.org/static/bin/plink2_src_{0}.zip" - return template.format(ver) + def url_for_version(self, version): + return f"https://www.cog-genomics.org/static/bin/plink2_src_{version}.zip" def setup_build_environment(self, env: EnvironmentModifications) -> None: zlib = join_path(self.spec["zlib-api"].prefix.lib, "libz.a") @@ -34,5 +33,5 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: def install(self, spec, prefix): ld_flags = [spec["lapack"].libs.ld_flags, spec["blas"].libs.ld_flags] filter_file("-llapack -lcblas -lblas", " ".join(ld_flags), "build.sh", string=True) - which("sh")("build.sh") + which("sh", required=True)("build.sh") install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/plog/package.py b/repos/spack_repo/builtin/packages/plog/package.py index f487ba025f2..d2f7a34b81e 100644 --- a/repos/spack_repo/builtin/packages/plog/package.py +++ b/repos/spack_repo/builtin/packages/plog/package.py @@ -21,3 +21,4 @@ class Plog(CMakePackage): version("1.1.9", sha256="058315b9ec9611b659337d4333519ab4783fad3f2f23b1cc7bb84d977ea38055") depends_on("cxx", type="build") + depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/plumed/package.py b/repos/spack_repo/builtin/packages/plumed/package.py index ff7d878ea76..2a270649236 100644 --- a/repos/spack_repo/builtin/packages/plumed/package.py +++ b/repos/spack_repo/builtin/packages/plumed/package.py @@ -4,6 +4,7 @@ import collections import os +from pathlib import Path from spack_repo.builtin.build_systems.autotools import AutotoolsPackage @@ -35,6 +36,7 @@ class Plumed(AutotoolsPackage): version("master", branch="master") + version("2.10.0", sha256="ca6410d47e91b4e0f953e1a8933f15b05c4681167611ab3b096ab121155f6879") version("2.9.2", sha256="301fbc958374f81d9b8c7a1eac73095f6dded52cce73ce33d64bdbebf51ac63d") version("2.9.1", sha256="e24563ad1eb657611918e0c978d9c5212340f128b4f1aa5efbd439a0b2e91b58") version("2.9.0", sha256="612d2387416b5f82dd8545709921440370e144fd46cef633654cf0ee43bac5f8") @@ -69,55 +71,6 @@ class Plumed(AutotoolsPackage): version("2.5.1", sha256="de309980dcfd6f6e0e70e138856f4bd9eb4d8a513906a5e6389f18a5af7f2eba") version("2.5.0", sha256="53e08187ec9f8af2326fa84407e34644a7c51d2af93034309fb70675eee5e4f7") - # These versions don't build in CI. - version( - "2.4.6", - sha256="c22ad19f5cd36ce9fe4ba0b53158fc2a3d985c48fc04606e3f3b3e835b994cb3", - deprecated=True, - ) - version( - "2.4.4", - sha256="1e5c24109314481fad404da97d61c7339b219e27e120c9c80bacc79c9f6a51a8", - deprecated=True, - ) - version( - "2.4.2", - sha256="528ce57f1f5330480bcd403140166a4580efd2acaea39c85dfeca5e2cd649321", - deprecated=True, - ) - version( - "2.4.1", - sha256="f00410ebdd739c2ddf55fcd714ff4bd88a1029e02d2fc9cea0b5fca34e0fc4eb", - deprecated=True, - ) - - version( - "2.3.5", - sha256="a6a66ca4582c1aecc6138c96be015e13cd06a718e8446b2f13e610fe34602e4f", - deprecated=True, - ) - version( - "2.3.3", - sha256="ac058ff529f207d5b4169fb5a87bdb3c77307dfef1ac543ad8b6c74c5de7fc91", - deprecated=True, - ) - version( - "2.3.0", - sha256="b1c8a54a313a0569e27e36420770074f35406453f73de70e55c424652abeddf1", - deprecated=True, - ) - - version( - "2.2.4", - sha256="d7a1dba34a7fe03f23e8d39ab6e15b230c4851373fdceb3602e2de26ea53ce37", - deprecated=True, - ) - version( - "2.2.3", - sha256="2db19c5f6a2918833941d0bf47b5431d0865529d786df797ccc966d763ed7b0c", - deprecated=True, - ) - # Variants. PLUMED by default builds a number of optional modules. # The ones listed here are not built by default for various reasons, # such as stability, lack of testing, or lack of demand. @@ -137,39 +90,36 @@ class Plumed(AutotoolsPackage): # These are implemented using multi-valued variants (`disjoint_sets`), # and the `conditional` option to handle version conflicts. single_optional_modules = ( - conditional("adjmat", when="@2.3:"), + "adjmat", "analysis", conditional("annfunc", when="@2.6:"), "bias", "cltools", "colvar", "crystallization", - conditional("dimred", when="@2.5:"), - conditional("drr", when="@2.4:"), - conditional("eds", when="@2.4:"), + "dimred", + "drr", + "eds", conditional("fisst", when="@2.7:"), "function", conditional("funnel", when="@2.7:"), "generic", - conditional("imd", when="@:2.2.99"), - conditional("isdb", when="@2.4:"), - conditional("logmfd", when="@2.5:"), + "isdb", + "logmfd", "manyrestraints", "mapping", conditional("maze", when="@2.6:"), "molfile", "multicolvar", conditional("opes", when="@2.7:"), - conditional("pamm", when="@2.5: optional_modules=adjmat"), - conditional("piv", when="@2.5:"), - conditional("reference", when="@:2.2.99"), + conditional("pamm", when="optional_modules=adjmat"), + "piv", conditional("s2cm", when="@2.8:"), conditional("sasa", when="@2.8:"), "secondarystructure", "setup", "vatom", - conditional("ves", when="@2.4:"), - conditional("vesselbase", when="@:2.2.99"), + "ves", conditional("xdrfile", when="@2.8:"), ) @@ -190,6 +140,8 @@ class Plumed(AutotoolsPackage): values=("none", "cpu", "cuda", "opencl"), description="Activates FireArray support", ) + variant("pytorch", default=False, description="Activates PyTorch support", when="@2.9:") + variant("metatomic", default=False, description="Activates metatomic support", when="@2.10:") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -199,9 +151,6 @@ class Plumed(AutotoolsPackage): depends_on("zlib-api") depends_on("blas") depends_on("lapack") - # For libmatheval support through the 'function' module - # which is enabled by default (or when optional_modules=all) - depends_on("libmatheval", when="@:2.4") depends_on("arrayfire", when="arrayfire=cpu") depends_on("arrayfire+cuda", when="arrayfire=cuda") depends_on("arrayfire+opencl", when="arrayfire=opencl") @@ -213,11 +162,32 @@ class Plumed(AutotoolsPackage): depends_on("automake", type="build") depends_on("libtool", type="build") depends_on("m4", type="build") - depends_on("py-cython", type="build", when="@2.5:") + depends_on("py-cython", type="build") + + depends_on("py-torch", when="+pytorch") + conflicts("+metatomic ~pytorch", msg="metatomic support requires PyTorch") + depends_on("libmetatomic-torch", when="+metatomic") + + # https://github.com/plumed/plumed2/issues/1256 + conflicts("^py-cython@3.1:", when="@:2.9.3") + + patch( + "https://patch-diff.githubusercontent.com/raw/plumed/plumed2/pull/1313.patch?full_index=1", + sha256="d4d2b6a178e4b38863f2acc9450ae27b4652368c369e96dd093bbdffaf811105", + when="@2.10.0", + ) force_autoreconf = True - parallel = False + parallel = True + + # Filter Spack's compiler wrapper + # so that "plumed mklib" works correctly + filter_compiler_wrappers( + "config.txt", + "compile_options.sh", + relative_root=join_path("lib", "plumed", "src", "config"), + ) def apply_patch(self, other): # The name of MD engines differ slightly from the ones used in Spack @@ -261,7 +231,6 @@ def filter_gslcblas(self): # provided by optimized libraries due to linking order filter_file("-lgslcblas", "", "configure.ac") - @when("@2.5:") def patch(self): # Ensure Spack's wrappers are used to compile the Python interface env = ( @@ -292,6 +261,8 @@ def configure_args(self): # the issue saying we have no LD_RO executable. configure_opts = ["--disable-ld-r"] + configure_opts.append("--disable-doc") + # If using MPI then ensure the correct compiler wrapper is used. if "+mpi" in spec: configure_opts.extend(["--enable-mpi", "CXX={0}".format(spec["mpi"].mpicxx)]) @@ -301,19 +272,57 @@ def configure_args(self): if spec.satisfies("^[virtuals=mpi] intel-oneapi-mpi"): configure_opts.extend(["STATIC_LIBS=-mt_mpi"]) + enable_libmetatomic = self.spec.satisfies("+metatomic") + enable_libtorch = self.spec.satisfies("+pytorch") + + extra_ldflags = [] extra_libs = [] + extra_cppflags = [] # Set flags to help find gsl if "+gsl" in spec: gsl_libs = spec["gsl"].libs blas_libs = spec["blas"].libs - extra_libs.append((gsl_libs + blas_libs).ld_flags) + extra_ldflags.append((gsl_libs + blas_libs).search_flags) + extra_libs.append((gsl_libs + blas_libs).link_flags) + extra_cppflags.extend( + [spec["gsl"].headers.include_flags, spec["blas"].headers.include_flags] + ) # Set flags to help with ArrayFire if "arrayfire=none" not in spec: libaf = "arrayfire:{0}".format(spec.variants["arrayfire"].value) - extra_libs.append(spec[libaf].libs.search_flags) + extra_ldflags.append(spec[libaf].libs.search_flags) + extra_libs.append(spec[libaf].libs.link_flags) + extra_cppflags.append(spec[libaf].headers.include_flags) + # Set flags to help with PyTorch + if enable_libtorch: + pytorch_path = Path(spec["py-torch"].package.cmake_prefix_paths[0]).parent.parent + extra_ldflags.append(spec["py-torch"].libs.search_flags) + extra_libs.append(spec["py-torch"].libs.link_flags) + extra_ldflags.append(spec["python"].libs.search_flags) + extra_libs.append(spec["python"].libs.link_flags) + # Add include paths manually + # Spack HeaderList.cpp_flags does not support include paths within include paths + extra_cppflags.extend( + [ + f"-I{pytorch_path / 'include'}", + f"-I{pytorch_path / 'include' / 'torch' / 'csrc' / 'api' / 'include'}", + spec["python"].headers.include_flags, + ] + ) + if enable_libmetatomic: + for libname in ["libmetatensor", "libmetatensor-torch", "libmetatomic-torch"]: + extra_ldflags.append(spec[libname].libs.search_flags) + extra_libs.append(spec[libname].libs.link_flags) + extra_cppflags.append(spec[libname].headers.include_flags) + + if extra_ldflags: + configure_opts.append("LDFLAGS={0}".format(" ".join(extra_ldflags))) if extra_libs: - configure_opts.append("LDFLAGS={0}".format(" ".join(extra_libs))) + configure_opts.append("LIBS={0}".format(" ".join(extra_libs))) + + if extra_cppflags: + configure_opts.append("CPPFLAGS={0}".format(" ".join(extra_cppflags))) # Additional arguments configure_opts.extend( @@ -323,11 +332,14 @@ def configure_args(self): "--enable-af_cpu={0}".format("yes" if "arrayfire=cpu" in spec else "no"), "--enable-af_cuda={0}".format("yes" if "arrayfire=cuda" in spec else "no"), "--enable-af_ocl={0}".format("yes" if "arrayfire=ocl" in spec else "no"), + "--enable-libtorch={0}".format("yes" if enable_libtorch else "no"), + "--enable-libmetatomic={0}".format("yes" if enable_libmetatomic else "no"), ] ) # Construct list of optional modules - optional_modules = self.spec.variants["optional_modules"].value + optional_modules = spec.variants["optional_modules"].value + # Predefined set of modules if "all" in optional_modules: selected_modules = "all" @@ -335,9 +347,16 @@ def configure_args(self): selected_modules = "reset" # Custom set of modules else: + # Ensure modules from variants + if spec.satisfies("+pytorch") or spec.satisfies("+metatomic"): + optional_modules += ("pytorch",) + if spec.satisfies("+libmetatomic"): + optional_modules += ("metatomic",) + selected_modules = "none" for mod in optional_modules: selected_modules += ":+{0}".format(mod) + configure_opts.append("--enable-modules={0}".format(selected_modules)) return configure_opts diff --git a/repos/spack_repo/builtin/packages/ply/package.py b/repos/spack_repo/builtin/packages/ply/package.py index 0fd47acbcda..8c19abebcf9 100644 --- a/repos/spack_repo/builtin/packages/ply/package.py +++ b/repos/spack_repo/builtin/packages/ply/package.py @@ -27,5 +27,5 @@ class Ply(AutotoolsPackage): depends_on("m4", type="build") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/pmix/package.py b/repos/spack_repo/builtin/packages/pmix/package.py index aa10b0885c3..97ecc0a4384 100644 --- a/repos/spack_repo/builtin/packages/pmix/package.py +++ b/repos/spack_repo/builtin/packages/pmix/package.py @@ -39,9 +39,16 @@ class Pmix(AutotoolsPackage): license("BSD-3-Clause-Open-MPI") version("master", branch="master", submodules=True) + version("6.1.0", sha256="bb9021c8e100a376f5070ecca727f83a29b5f652dfe381793b88daa79a3b98a2") + version("6.0.0", sha256="bfe969966d0ce82e032739cac286239bd5ad74a831d7adae013284919f125318") + version("5.0.10", sha256="78663f6b932589d68e24feaf7f8a948d60be68d91965f3effbacb4cd88cf9a95") + version("5.0.9", sha256="38d0667636e35a092e61f97be2dd84481f4cf566bfca11bb73c6b3d5da993b7a") + version("5.0.8", sha256="bf5f0a341d0ec7f465627a7570f4dcda3b931bc859256428a35f6c72f13462d0") + version("5.0.7", sha256="b9e6ad482fcdcb58c9b9553ae56956b6d7df875d5605b6ecb96adaff16b2b07a") + version("5.0.6", sha256="ea51baa0fdee688d54bc9f2c11937671381f00de966233eec6fd88807fb46f83") version("5.0.5", sha256="a12e148c8ec4b032593a2c465a762e93c43ad715f3ceb9fbc038525613b0c70d") version("5.0.4", sha256="f72d50a5ae9315751684ade8a8e9ac141ae5dd64a8652d594b9bee3531a91376") - version("5.0.3", sha256="3f779434ed59fc3d63e4f77f170605ac3a80cd40b1f324112214b0efbdc34f13") + version("5.0.3", sha256="474ebf5bbc420de442ab93f1b61542190ac3d39ca3b0528a19f586cf3f1cbd94") version("5.0.2", sha256="28227ff2ba925da2c3fece44502f23a91446017de0f5a58f5cea9370c514b83c") version("5.0.1", sha256="d4371792d4ba4c791e1010100b4bf9a65500ababaf5ff25d681f938527a67d4a") version("5.0.0", sha256="92a85c4946346816c297ac244fbaf4f723bba87fb7e4424a057c2dabd569928d") @@ -54,122 +61,16 @@ class Pmix(AutotoolsPackage): version("4.2.3", sha256="c3d9d6885ae39c15627a86dc4718e050baf604acda71b8b9e2ee3b12ad5c2d2a") version("4.2.2", sha256="935b2f492e4bc409017f1425a83366aa72a7039605ea187c9fac7bb1371cd73c") version("4.2.1", sha256="3c992fa0d653b56e0e409bbaec9de8fc1b82c948364dbb28545442315ed2a179") - version( - "4.1.2", - sha256="670d3a02b39fb2126fe8084174cf03c484e027b5921b5c98a851108134e2597a", - deprecated=True, - ) - version( - "4.1.1", - sha256="0527a15d616637b95975d238bbc100b244894518fbba822cd8f46589ca61ccec", - deprecated=True, - ) - version( - "4.1.0", - sha256="145f05a6c621bfb3fc434776b615d7e6d53260cc9ba340a01f55b383e07c842e", - deprecated=True, - ) - version( - "3.2.3", - sha256="9b835f23c2f94a193c14012ee68b3657a61c568598cdd1212a3716b32d41a135", - deprecated=True, - ) - version( - "3.2.2", - sha256="7e7fafe2b338dab42a94002d99330a5bb0ebbdd06381ec65953a87c94db3dd23", - deprecated=True, - ) - version( - "3.2.1", - sha256="7e5db8ada5828cf85c12f70db6bfcf777d13e5c4c73b2206bb5e394d47066a2b", - deprecated=True, - ) - version( - "3.1.6", - sha256="3df0e0cb0cae67b59edba1d90f55d73467be8404874fe89056690739e039a840", - deprecated=True, - ) - version( - "3.1.5", - sha256="88934195174455df478b996313095df25b51d0caf5a5cce01b22f0ccdc6c5cf7", - deprecated=True, - ) - version( - "3.1.3", - sha256="118acb9c4e10c4e481406dcffdfa762f314af50db75336bf8460e53b56dc439d", - deprecated=True, - ) - version( - "3.1.2", - sha256="28aed0392d4ca2cdfbdd721e6210c94dadc9830677fea37a0abe9d592c00f9c3", - deprecated=True, - ) - version( - "3.0.2", - sha256="df68f35a3ed9517eeade80b13855cebad8fde2772b36a3f6be87559b6d430670", - deprecated=True, - ) - version( - "3.0.1", - sha256="b81055d2c0d61ef5a451b63debc39c820bcd530490e2e4dcb4cdbacb618c157c", - deprecated=True, - ) - version( - "3.0.0", - sha256="ee8f68107c24b706237a53333d832445315ae37de6773c5413d7fda415a6e2ee", - deprecated=True, - ) - version( - "2.2.3", - sha256="6fa5d45eb089e29101190c645e986342a24a03a4ea3a936db0b120aafa45b1f0", - deprecated=True, - ) - version( - "2.2.2", - sha256="cd951dbda623fadc5b32ae149d8cc41f9462eac4d718d089340911b1a7c20714", - deprecated=True, - ) - version( - "2.1.4", - sha256="eb72d292e76e200f02cf162a477eecea2559ef3ac2edf50ee95b3fe3983d033e", - deprecated=True, - ) - version( - "2.1.3", - sha256="281283133498e7e5999ed5c6557542c22408bc9eb51ecbcf7696160616782a41", - deprecated=True, - ) - version( - "2.1.2", - sha256="94bb9c801c51a6caa1b8cef2b85ecf67703a5dfa4d79262e6668c37c744bb643", - deprecated=True, - ) - version( - "2.0.1", - sha256="ba6e0f32936b1859741adb221e18b2c1ee7dc53a6b374b9f7831adf1692b15fd", - deprecated=True, - ) - version( - "1.2.5", - sha256="a2b02d489ee730c06ee40e7f9ffcebb6c35bcb4f95153fab7c4276a3add6ae31", - deprecated=True, - ) variant("docs", default=False, when="@master", description="Build documentation") variant("munge", default=False, description="Enable MUNGE support") - variant("python", default=False, when="@4.1.2:", description="Enable Python bindings") + variant("python", default=False, description="Enable Python bindings") variant( "restful", default=False, when="@4:5.0.4", description="Allow a PMIx server to request services from a system-level REST server", ) - variant( - "pmi_backwards_compatibility", - default=True, - when="@1.2.5:3", - description="Enable PMI backwards compatibility", - ) depends_on("c", type="build") depends_on("pkgconfig", type="build") @@ -185,10 +86,11 @@ class Pmix(AutotoolsPackage): depends_on("py-docutils", type="build", when="+docs") depends_on("py-sphinx-rtd-theme", type="build", when="+docs") + depends_on("libtool@2.4.2:", type="build") + depends_on("libevent@2.0.20:") - depends_on("hwloc@1.11:", when="@3:") - depends_on("hwloc@1", when="@:2") - depends_on("zlib-api", when="@2:") + depends_on("hwloc@1.11:") + depends_on("zlib-api") depends_on("curl", when="+restful") depends_on("jansson@2.11:", when="+restful") depends_on("python", when="+python") @@ -202,7 +104,7 @@ def autoreconf(self, spec, prefix): if os.path.exists(self.configure_abs_path): return # Else bootstrap with autotools - perl = which("perl") + perl = which("perl", required=True) perl("./autogen.pl") def find_external_lib_path(self, pkg_name, path_match_str=""): @@ -225,8 +127,7 @@ def configure_args(self): if spec.satisfies("~docs") or spec.satisfies("@4.2.3:5"): config_args.append("--disable-sphinx") - if spec.satisfies("@2:"): - config_args.append("--with-zlib=" + spec["zlib-api"].prefix) + config_args.append("--with-zlib=" + spec["zlib-api"].prefix) config_args.append("--with-libevent=" + spec["libevent"].prefix) config_args.append("--with-hwloc=" + spec["hwloc"].prefix) @@ -255,16 +156,4 @@ def configure_args(self): config_args.append("--with-curl=" + spec["curl"].prefix) config_args.append("--with-jansson=" + spec["jansson"].prefix) - config_args.extend( - self.enable_or_disable( - "pmi-backward-compatibility", variant="pmi_backwards_compatibility" - ) - ) - - # Versions < 2.1.1 have a bug in the test code that *sometimes* - # causes problems on strict alignment architectures such as - # aarch64. Work-around is to just not build the test code. - if spec.satisfies("@:2.1.0 target=aarch64:"): - config_args.append("--without-tests-examples") - return config_args diff --git a/repos/spack_repo/builtin/packages/pocl/package.py b/repos/spack_repo/builtin/packages/pocl/package.py index d71645aee75..d0b5f3926f4 100644 --- a/repos/spack_repo/builtin/packages/pocl/package.py +++ b/repos/spack_repo/builtin/packages/pocl/package.py @@ -110,7 +110,7 @@ def cmake_args(self): @run_after("install") def symlink_opencl(self): - os.symlink("CL", self.prefix.include.OpenCL) + symlink("CL", self.prefix.include.OpenCL) @run_after("install") @on_package_attributes(run_tests=True) diff --git a/repos/spack_repo/builtin/packages/pocl/uint.patch b/repos/spack_repo/builtin/packages/pocl/uint.patch deleted file mode 100644 index 1a620cd9010..00000000000 --- a/repos/spack_repo/builtin/packages/pocl/uint.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/lib/CL/clCreateSubDevices.c -+++ b/lib/CL/clCreateSubDevices.c -@@ -46,7 +46,7 @@ - cl_device_id *new_devs = NULL; - // number of elements in (copies of) properties, including terminating null - cl_uint num_props = 0; -- uint i; -+ cl_uint i; - - POCL_GOTO_ERROR_COND((in_device == NULL), CL_INVALID_DEVICE); - POCL_GOTO_ERROR_COND((properties == NULL), CL_INVALID_VALUE); diff --git a/repos/spack_repo/builtin/packages/pocl/vecmathlib.patch b/repos/spack_repo/builtin/packages/pocl/vecmathlib.patch deleted file mode 100644 index 73d2742e435..00000000000 --- a/repos/spack_repo/builtin/packages/pocl/vecmathlib.patch +++ /dev/null @@ -1,75 +0,0 @@ -diff --git a/lib/kernel/vecmathlib/vec_sse_double1.h b/lib/kernel/vecmathlib/vec_sse_double1.h -index d727de8..dc582b3 100644 ---- a/lib/kernel/vecmathlib/vec_sse_double1.h -+++ b/lib/kernel/vecmathlib/vec_sse_double1.h -@@ -397,8 +397,8 @@ public: - } - return r; - } -- boolvec_t isfinite() const { return vml_std::isfinite(v); } -- boolvec_t isinf() const { return vml_std::isinf(v); } -+ boolvec_t isfinite() const { return bool(vml_std::isfinite(v)); } -+ boolvec_t isinf() const { return bool(vml_std::isinf(v)); } - boolvec_t isnan() const { - // This is wrong: - // return _mm_ucomineq_sd(from_double(v), from_double(v)); -@@ -407,9 +407,9 @@ public: - // __asm__("ucomisd %[v],%[v]; setp %[r]": [r]"=q"(r): [v]"x"(v)); - // return boolvec_t::scalar_t(r); - // This works as well: -- return vml_std::isnan(v); -+ return bool(vml_std::isnan(v)); - } -- boolvec_t isnormal() const { return vml_std::isnormal(v); } -+ boolvec_t isnormal() const { return bool(vml_std::isnormal(v)); } - realvec_t ldexp(int_t n) const { return vml_std::ldexp(v, n); } - realvec_t ldexp(intvec_t n) const { return vml_std::ldexp(v, n); } - realvec_t log() const { return MF::vml_log(*this); } -@@ -433,7 +433,7 @@ public: - } - realvec_t round() const { return MF::vml_round(*this); } - realvec_t rsqrt() const { return MF::vml_rsqrt(*this); } -- boolvec_t signbit() const { return vml_std::signbit(v); } -+ boolvec_t signbit() const { return bool(vml_std::signbit(v)); } - realvec_t sin() const { return MF::vml_sin(*this); } - realvec_t sinh() const { return MF::vml_sinh(*this); } - realvec_t sqrt() const { -diff --git a/lib/kernel/vecmathlib/vec_sse_float1.h b/lib/kernel/vecmathlib/vec_sse_float1.h -index a84a046..4868b2c 100644 ---- a/lib/kernel/vecmathlib/vec_sse_float1.h -+++ b/lib/kernel/vecmathlib/vec_sse_float1.h -@@ -394,8 +394,8 @@ public: - } - return r; - } -- boolvec_t isfinite() const { return vml_std::isfinite(v); } -- boolvec_t isinf() const { return vml_std::isinf(v); } -+ boolvec_t isfinite() const { return bool(vml_std::isfinite(v)); } -+ boolvec_t isinf() const { return bool(vml_std::isinf(v)); } - boolvec_t isnan() const { - #if defined VML_HAVE_NAN - // This is wrong: -@@ -405,12 +405,12 @@ public: - // __asm__("ucomiss %[v],%[v]; setp %[r]": [r]"=q"(r): [v]"x"(v)); - // return boolvec_t::scalar_t(r); - // This works as well: -- return vml_std::isnan(v); -+ return bool(vml_std::isnan(v)); - #else - return BV(false); - #endif - } -- boolvec_t isnormal() const { return vml_std::isnormal(v); } -+ boolvec_t isnormal() const { return bool(vml_std::isnormal(v)); } - realvec_t ldexp(int_t n) const { return vml_std::ldexp(v, n); } - realvec_t ldexp(intvec_t n) const { return vml_std::ldexp(v, n); } - realvec_t log() const { return MF::vml_log(*this); } -@@ -434,7 +434,7 @@ public: - } - realvec_t round() const { return MF::vml_round(*this); } - realvec_t rsqrt() const { return MF::vml_rsqrt(*this); } -- boolvec_t signbit() const { return vml_std::signbit(v); } -+ boolvec_t signbit() const { return bool(vml_std::signbit(v)); } - realvec_t sin() const { return MF::vml_sin(*this); } - realvec_t sinh() const { return MF::vml_sinh(*this); } - realvec_t sqrt() const { return to_float(_mm_sqrt_ss(from_float(v))); } diff --git a/repos/spack_repo/builtin/packages/podio/package.py b/repos/spack_repo/builtin/packages/podio/package.py index a1bc6422c31..74283cab62d 100644 --- a/repos/spack_repo/builtin/packages/podio/package.py +++ b/repos/spack_repo/builtin/packages/podio/package.py @@ -21,59 +21,23 @@ class Podio(CMakePackage): tags = ["hep", "key4hep"] version("master", branch="master") + version("1.7", sha256="4a62ed2fdd9cebb5fc1799ea17237979b2d435797f1201fa8031fd99e9e47c15") + version("1.6", sha256="4a625419bcf9d10b33b9fcf6cacbbebfd24c62e88a9980c5735b011d671397fe") + version("1.5", sha256="3d316a86420a1e79088488f229bb8d1259244cf17752c40f817abeec2cec89a5") + version("1.4.1", sha256="d70dad214ac683e76c6e1093804c0f1ec4e7133a704173e2f1777a1279eb1535") + version("1.4", sha256="f8b7f5ba965ff58270d617f50f168a4683a98fbcd643b66f1852bec960e02bbd") version("1.3", sha256="7efdf049822f171f4da5e83a7101096c066679904e59e741f3c2833ccda5e363") version("1.2", sha256="bc97ba09ce908e55d4c5faa78d9739dde7daefd9337ae98351813b13708d0685") version("1.1", sha256="2cb5040761f3da4383e1f126da25d68e99ecd8398e0ff12e7475a3745a7030a6") version("1.0.1", sha256="915531a2bcf638011bb6cc19715bbc46d846ec8b985555a1afdcd6abc017e21b") version("1.0", sha256="491f335e148708e387e90e955a6150e1fc2e01bf6b4980b65e257ab0619559a9") version("0.99", sha256="c823918a6ec1365d316e0a753feb9d492e28903141dd124a1be06efac7c1877a") - version( - "0.17.4", - sha256="3ca86323c86e05e901f596a98fe84aeb2476ceed8c0b0e0b37049c23b903a9ad", - deprecated=True, - ) - version( - "0.17.3", - sha256="079517eba9c43d01255ef8acd88468c3ead7bb9d8fed11792e121bb481d54dee", - deprecated=True, - ) - version( - "0.17.2", - sha256="5b519335c4e1708f71ed85b3cac8ca81e544cc4572a5c37019ce9fc414c5e74d", - deprecated=True, - ) - version( - "0.17.1", - sha256="97d6c5f81d50ee42bf7c01f041af2fd333c806f1bbf0a4828ca961a24cea6bb2", - deprecated=True, - ) - version( - "0.17", - sha256="0c19f69970a891459cab227ab009514f1c1ce102b70e8c4b7d204eb6a0c643c1", - deprecated=True, - ) - version( - "0.16.7", - sha256="8af7c947e2637f508b7af053412bacd9218d41a455d69addd7492f05b7a4338d", - deprecated=True, - ) - version( - "0.16.6", - sha256="859f7cd16bd2b833bee9c1f33eb4cdbc2a0c2b1a48a853f67c30e8a0301d16df", - deprecated=True, - ) - version( - "0.16.5", - sha256="42135e4d0e11be6f0d88748799fa2ec985514d4b4c979a10a56a00a378f65ee0", - deprecated=True, - ) - version( - "0.16.3", - sha256="d8208f98496af68ca8d02d302f428aab510e50d07575b90c3477fff7e499335b", - deprecated=True, - ) - _cxxstd_values = (conditional("17", when="@:1.2"), conditional("20", when="@0.14.1:")) + _cxxstd_values = ( + conditional("17", when="@:1.2"), + conditional("20", when="@0.14.1:"), + conditional("23", when="@1.3:"), + ) variant( "cxxstd", default="17", @@ -105,27 +69,33 @@ class Podio(CMakePackage): depends_on("root@6.08.06: cxxstd=17", when="cxxstd=17") depends_on("root@6.14:", when="+datasource") depends_on("root@6.28.04: +root7", when="+rntuple") - depends_on("root@6.28:", when="@0.17:") + depends_on("root@6.28:") depends_on("root@6.32: +root7", when="@1.3: +rntuple") - for cxxstd in ("17", "20"): - depends_on("root cxxstd={}".format(cxxstd), when="cxxstd={}".format(cxxstd)) + for cxxstd in _cxxstd_values: + depends_on( + "root cxxstd={}".format(cxxstd[0].value), when="cxxstd={}".format(cxxstd[0].value) + ) depends_on("cmake@3.12:", type="build") - depends_on("python", type=("build", "run")) + depends_on("python", type=("build", "run"), when="@:1.6") + depends_on("python", type=("build", "link", "run"), when="@1.7:") depends_on("py-pyyaml", type=("build", "run")) depends_on("py-jinja2@2.10.1:", type=("build", "run")) depends_on("sio", type=("build", "link"), when="+sio") depends_on("fmt@9:", type=("build", "link"), when="@1.3:") - depends_on("catch2@3.0.1:", type=("test"), when="@:0.16.5") - depends_on("catch2@3.1:", type=("test"), when="@0.16.6:") - depends_on("catch2@3.4:", type=("test"), when="@0.17.1: cxxstd=20") + depends_on("catch2@3.1:", type=("test")) + depends_on("catch2@3.4:", type=("test"), when="cxxstd=20") depends_on("catch2@3.3:", type=("test"), when="@1.2: cxxstd=17") + depends_on("catch2@3.5:", type=("test"), when="@1.5:") + depends_on("catch2@3.5:", type=("test"), when="@1.3: cxxstd=23") depends_on("py-graphviz", type=("run")) - depends_on("py-tabulate", type=("run", "test"), when="@0.16.6:") + depends_on("py-tabulate", type=("run", "test")) - conflicts("+rntuple", when="@:0.16", msg="rntuple support requires at least podio@0.17") conflicts("+rntuple ^root@6.32:", when="@:0.99", msg="rntuple API change requires podio@1:") conflicts("+rntuple ^root@6.34:", when="@:1.1", msg="rntuple API change requires podio@1.2:") + conflicts( + "^python +freethreading", when="@:1.6", msg="python free-threading requires podio@1.7:" + ) # See https://github.com/AIDASoft/podio/pull/600 patch( @@ -162,6 +132,10 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: # Frame header needs to be available for python bindings env.prepend_path("ROOT_INCLUDE_PATH", self.prefix.include) + # Pythonizations require Python.h accessible for ACLiC + if self.spec.satisfies("@1.5:"): + env.prepend_path("ROOT_INCLUDE_PATH", self.spec["python"].headers.directories[0]) + def setup_dependent_build_environment( self, env: EnvironmentModifications, dependent_spec: Spec ) -> None: @@ -170,7 +144,7 @@ def setup_dependent_build_environment( env.prepend_path("LD_LIBRARY_PATH", self.spec["podio"].libs.directories[0]) env.prepend_path("ROOT_INCLUDE_PATH", self.prefix.include) - if self.spec.satisfies("+sio @0.17:"): + if self.spec.satisfies("+sio"): # sio needs to be on LD_LIBRARY_PATH for ROOT to be able to # dynamicaly load the python libraries also in dependent build # environments since the import structure has changed with diff --git a/repos/spack_repo/builtin/packages/podman/package.py b/repos/spack_repo/builtin/packages/podman/package.py index 89767cb3add..a8774d49ce0 100644 --- a/repos/spack_repo/builtin/packages/podman/package.py +++ b/repos/spack_repo/builtin/packages/podman/package.py @@ -63,7 +63,7 @@ class Podman(Package): # see https://github.com/containers/podman/issues/22121 if _is_macos and macos_version() < Version("13"): - raise InstallError("podman for macOS requires Ventura or later") + conflicts("platform=darwin", msg="podman for macOS requires Ventura or later") # See for the # respective issue and the suggested patch diff --git a/repos/spack_repo/builtin/packages/podman_compose/package.py b/repos/spack_repo/builtin/packages/podman_compose/package.py new file mode 100644 index 00000000000..be86e7ce0d2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/podman_compose/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 PodmanCompose(PythonPackage): + """A container composition tool for Podman""" + + homepage = "https://podman.io" + url = "https://github.com/containers/podman-compose/archive/refs/tags/v1.4.0.tar.gz" + maintainers("scothalverson") + license("Apache-2.0") + version("1.4.0", sha256="167860361357f32e09660342756442ac6f9adf182f00ade1309b550de48ed494") + depends_on("podman", type="run") + depends_on("py-setuptools", type="build") + depends_on("py-pyyaml") + depends_on("py-python-dotenv") diff --git a/repos/spack_repo/builtin/packages/polypolish/package.py b/repos/spack_repo/builtin/packages/polypolish/package.py index d953db33427..bd9837f5911 100644 --- a/repos/spack_repo/builtin/packages/polypolish/package.py +++ b/repos/spack_repo/builtin/packages/polypolish/package.py @@ -27,6 +27,6 @@ class Polypolish(Package): depends_on("bwa", type="run") def install(self, spec, prefix): - cargo = which("cargo") + cargo = which("cargo", required=True) cargo("install", "--root", prefix, "--path", ".") install("scripts/polypolish_insert_filter.py", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/poppler/package.py b/repos/spack_repo/builtin/packages/poppler/package.py index 8f91bdb293d..4cedb79c97f 100644 --- a/repos/spack_repo/builtin/packages/poppler/package.py +++ b/repos/spack_repo/builtin/packages/poppler/package.py @@ -20,6 +20,8 @@ class Poppler(CMakePackage): license("GPL-2.0-or-later") version("master", branch="master") + version("26.03.0", sha256="8b3c5e2a9f2ab4c3ec5029f28af1b433c6b71f0d1e7b3997aa561cf1c0ca4ebe") + version("25.08.0", sha256="425ed4d4515a093bdcdbbaac6876f20617451edc710df6a4fd6c45dd67eb418d") version("23.04.0", sha256="b6d893dc7dcd4138b9e9df59a13c59695e50e80dc5c2cacee0674670693951a1") version("21.09.0", sha256="5a47fef738c2b99471f9b459a8bf8b40aefb7eed92caa4861c3798b2e126d05b") version("21.07.0", sha256="e26ab29f68065de4d6562f0a3e2b5435a83ca92be573b99a1c81998fa286a4d4") @@ -54,26 +56,38 @@ class Poppler(CMakePackage): depends_on("pkgconfig", type="build") depends_on("poppler-data", type=("build", "run")) depends_on("fontconfig") + depends_on("fontconfig@2.13:", when="@25.08.0:") depends_on("freetype") + depends_on("freetype@2.11:", when="@25.08.0:") depends_on("boost@1.58.0:", when="+boost") + depends_on("boost@1.74.0:", when="@25.0.8.0: +boost") depends_on("lcms", when="+cms") + depends_on("lcms@2.12:", when="@25.08.0: +cms") depends_on("glib@2.41:", when="+glib") + depends_on("glib@2.72:", when="@25.08.0: +glib") depends_on("gobject-introspection", when="+gobject") depends_on("curl", when="+libcurl") + depends_on("curl@7.81:", when="@25.0.8.0: +libcurl") depends_on("openjpeg", when="+openjpeg") depends_on("qt@4.0:", when="+qt") depends_on("zlib-api", when="+zlib") depends_on("cairo+ft@1.10.0:", when="+glib") + depends_on("cairo@1.16.0:", when="@25.08.0: +glib") depends_on("iconv", when="+cpp") depends_on("jpeg", when="+jpeg") depends_on("libpng", when="+png") depends_on("libtiff", when="+tiff") + depends_on("libtiff@4.3:", when="@25.08.0: +tiff") depends_on("nss@3.73:", when="+nss") depends_on("gpgme", when="+gpgme") + depends_on("gpgme@1.19:", when="@25.08.0: +gpgme") depends_on("qt@5.0:", when="@0.62.0:+qt") depends_on("qt@4.0:4.8.6", when="@:0.61+qt") + depends_on("qt@5.15:", when="@25.08.0:+qt") + + conflicts("%gcc@:9", when="@25.08.0:", msg="poppler@25.08.0: requires at least gcc 10") # Splash is unconditionally disabled. Unfortunately there's # a small section of code in the QT5 wrappers that expects it @@ -83,7 +97,7 @@ class Poppler(CMakePackage): # Only needed to run `make test` resource( - name="test", git="git://git.freedesktop.org/git/poppler/test.git", placement="testdata" + name="test", git="https://gitlab.freedesktop.org/poppler/test.git", placement="testdata" ) def cmake_args(self): @@ -99,10 +113,13 @@ def cmake_args(self): args.append("-DENABLE_UNSTABLE_API_ABI_HEADERS=ON") args.append(self.define_from_variant("ENABLE_BOOST", "boost")) - if spec.satisfies("+cms"): - args.append("-DENABLE_CMS=lcms2") + if spec.satisfies("@23.10.0:"): + args.append(self.define_from_variant("ENABLE_LCMS", "cms")) else: - args.append("-DENABLE_CMS=none") + if spec.satisfies("+cms"): + args.append("-DENABLE_CMS=lcms2") + else: + args.append("-DENABLE_CMS=none") args.append(self.define_from_variant("ENABLE_CPP", "cpp")) if spec.satisfies("+cpp"): diff --git a/repos/spack_repo/builtin/packages/portage/gcc-7.patch b/repos/spack_repo/builtin/packages/portage/gcc-7.patch deleted file mode 100644 index fccac1e4c1d..00000000000 --- a/repos/spack_repo/builtin/packages/portage/gcc-7.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- portage/portage/interpolate/interpolate_1st_order.h.orig 2019-06-19 13:52:51.930855056 -0600 -+++ portage/portage/interpolate/interpolate_1st_order.h 2019-06-19 13:53:05.087946460 -0600 -@@ -13,6 +13,7 @@ - #include - #include - #include -+#include - - #include "portage/support/portage.h" - diff --git a/repos/spack_repo/builtin/packages/portage/p_intel_ice.patch b/repos/spack_repo/builtin/packages/portage/p_intel_ice.patch deleted file mode 100644 index 98832ea8b77..00000000000 --- a/repos/spack_repo/builtin/packages/portage/p_intel_ice.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- portage.orig/portage/search/pairs.cc 2018-07-16 13:42:12.000000000 -0600 -+++ portage/portage/search/pairs.cc 2020-01-09 15:32:43.289085000 -0700 -@@ -323,8 +323,8 @@ - // check for completely outside source boxes - bool outside = false; - for (size_t m=0;m=cminmax[1][m]) outside=true; -+ if (y[m][j]<=cminmax[0][m]) { outside=true; break; } -+ if (y[m][j]>=cminmax[1][m]) { outside=true; break; } - } - if (outside) return pairlist; - -@@ -347,8 +347,8 @@ - // check that y is contained - bool inside = true; - for(size_t m=0; m= xur[m]) inside = false; -+ if (y[m][j] <= xll[m]) { inside = false; break; } -+ if (y[m][j] >= xur[m]) { inside = false; break; } - } - - // add pair: put x's in this y-cell onto neighbor list, if inside diff --git a/repos/spack_repo/builtin/packages/portage/p_lapacke_config.patch b/repos/spack_repo/builtin/packages/portage/p_lapacke_config.patch deleted file mode 100644 index aaf7d3a83b1..00000000000 --- a/repos/spack_repo/builtin/packages/portage/p_lapacke_config.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -Naur portage.orig/cinch/cmake/FindLAPACKE.cmake portage/cinch/cmake/FindLAPACKE.cmake ---- portage.orig/cinch/cmake/FindLAPACKE.cmake 2018-07-27 14:38:17.894800000 -0600 -+++ portage/cinch/cmake/FindLAPACKE.cmake 2018-08-01 10:14:59.880569000 -0600 -@@ -13,11 +13,12 @@ - - find_package(PkgConfig) - -+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON) - pkg_check_modules(PC_LAPACKE lapacke) - - find_path(LAPACKE_INCLUDE_DIR lapacke.h HINTS ${PC_LAPACKE_NCLUDE_DIRS} PATH_SUFFIXES lapacke) - --find_library(LAPACKE_LIBRARY NAMES lapacke ${PC_LAPACKE_LIBRARIES} HINTS ${PC_LAPACKE_LIBRARY_DIRS} ) -+find_library(LAPACKE_LIBRARY NAMES lapacke openblas ${PC_LAPACKE_LIBRARIES} HINTS ${PC_LAPACKE_LIBRARY_DIRS} ) - - find_package(LAPACK) - diff --git a/repos/spack_repo/builtin/packages/portage/rel-with-deb-info.patch b/repos/spack_repo/builtin/packages/portage/rel-with-deb-info.patch deleted file mode 100644 index ca040cee3b9..00000000000 --- a/repos/spack_repo/builtin/packages/portage/rel-with-deb-info.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- portage/cinch/cmake/globals.cmake.orig 2018-07-16 13:42:23.000000000 -0600 -+++ portage/cinch/cmake/globals.cmake 2019-07-09 16:27:56.021566000 -0600 -@@ -22,11 +22,9 @@ - "CMake build type " FORCE) - endif(NOT CMAKE_BUILD_TYPE) - --if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug" OR -- "${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo") -+if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") - add_definitions(-DDEBUG) --endif("${CMAKE_BUILD_TYPE}" STREQUAL "Debug" OR -- "${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo") -+endif("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") - - #------------------------------------------------------------------------------# - # Print useful information diff --git a/repos/spack_repo/builtin/packages/ports_of_call/package.py b/repos/spack_repo/builtin/packages/ports_of_call/package.py index 31d8f33e969..218056c17be 100644 --- a/repos/spack_repo/builtin/packages/ports_of_call/package.py +++ b/repos/spack_repo/builtin/packages/ports_of_call/package.py @@ -19,6 +19,8 @@ class PortsOfCall(CMakePackage): license("BSD-3-Clause") version("main", branch="main") + version("2.0.1", sha256="da4ebfb071903bab17f9bc62f5cfda980d3776db754a09e173b8be5be0f44b57") + version("2.0.0", sha256="2118b5bf4471da33df9b13b8645c6709e5c2d24087f77d09390d8de862d43047") version("1.7.1", sha256="18b0b99370ef2adf3374248f653461606f826fe4076d0f19ac8c72d46035fdf5") version("1.7.0", sha256="99045a7c4e3fbc73f01e930ce870cdc573a39910a28d85c54d65d2135f764bfc") version("1.6.0", sha256="290da149d4ad79c15787956559aeeefa0a06403be2f08cd324562ef013306797") @@ -27,25 +29,7 @@ class PortsOfCall(CMakePackage): version("1.4.1", sha256="82d2c75fcca8bd613273fd4126749df68ccc22fbe4134ba673b4275f9972b78d") version("1.4.0", sha256="e08ae556b7c30d14d77147d248d118cf5343a2e8c0847943385c602394bda0fa") version("1.3.0", sha256="54b4a62539c23b1a345dd87c1eac65f4f69db4e50336cd81a15a627ce80ce7d9") - version( - "1.2.0", - sha256="b802ffa07c5f34ea9839f23841082133d8af191efe5a526cb7e53ec338ac146b", - deprecated=True, - ) - version( - "1.1.0", - sha256="c47f7e24c82176b69229a2bcb23a6adcf274dc90ec77a452a36ccae0b12e6e39", - deprecated=True, - ) - variant( - "portability_strategy", - description="Portability strategy backend", - values=("Kokkos", "Cuda", "None"), - multi=False, - default="None", - when="@:1.2.0", - ) variant("test", default=False, description="Build tests") variant( "test_portability_strategy", @@ -56,7 +40,7 @@ class PortsOfCall(CMakePackage): when="@1.7.0: +test", ) - depends_on("c", type="build") # todo: disable cmake default? + depends_on("c", type="build", when="@:1.7.1") depends_on("cxx", type="build") depends_on("cmake@3.12:", type="build") @@ -70,11 +54,9 @@ def cmake_args(self): "PORTS_OF_CALL_TEST_PORTABILITY_STRATEGY", "test_portability_strategy" ), ] - if self.spec.satisfies("@:1.2.0"): - args.append(self.define_from_variant("PORTABILITY_STRATEGY", "portability_strategy")) if self.spec.satisfies("test_portability_strategy=Kokkos ^kokkos+rocm"): args.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc)) args.append(self.define("CMAKE_C_COMPILER", self.spec["hip"].hipcc)) if self.spec.satisfies("test_portability_strategy=Kokkos ^kokkos+cuda"): - args.append(self.define("CMAKE_CXX_COMPILER", self.spec["kokkos"].kokkos_cxx)) + args.append(self.define("CMAKE_CXX_COMPILER", self["kokkos"].kokkos_cxx)) return args diff --git a/repos/spack_repo/builtin/packages/possvm/package.py b/repos/spack_repo/builtin/packages/possvm/package.py index 0ac2c78702a..225f939c3ba 100644 --- a/repos/spack_repo/builtin/packages/possvm/package.py +++ b/repos/spack_repo/builtin/packages/possvm/package.py @@ -43,6 +43,6 @@ def install(self, spec, prefix): sed = Executable("sed") targets = ("possvm.py", join_path("scripts", "possvm_reconstruction.py")) for script in targets: - sed("-i", rf'1 i\#! {self.spec["python"].command.path}\n', script) + sed("-i", rf"1 i\#! {self.spec['python'].command.path}\n", script) os.chmod(script, 0o755) install(script, prefix.bin) diff --git a/repos/spack_repo/builtin/packages/postgis/package.py b/repos/spack_repo/builtin/packages/postgis/package.py index befb2cb4fb0..4994c9023fe 100644 --- a/repos/spack_repo/builtin/packages/postgis/package.py +++ b/repos/spack_repo/builtin/packages/postgis/package.py @@ -24,14 +24,6 @@ class Postgis(AutotoolsPackage): version("3.0.0", sha256="c06fd2cd5cea0119106ffe17a7235d893c2bbe6f4b63c8617c767630973ba594") version("2.5.3", sha256="72e8269d40f981e22fb2b78d3ff292338e69a4f5166e481a77b015e1d34e559a") - variant( - "gui", - default=False, - description=( - "Build with GUI support, creating shp2pgsql-gui graphical interface " "to shp2pgsql" - ), - ) - # Refs: # https://postgis.net/docs/postgis_installation.html # https://postgis.net/source/ @@ -51,8 +43,6 @@ class Postgis(AutotoolsPackage): depends_on("perl", type=("build", "run")) depends_on("protobuf-c") - depends_on("gtkplus@:2.24.32", when="+gui") - def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("POSTGIS_GDAL_ENABLED_DRIVERS", "ENABLE_ALL") @@ -62,8 +52,6 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: def configure_args(self): args = [] args.append("--with-sfcgal=" + str(self.spec["sfcgal"].prefix.bin) + "/sfcgal-config") - if "+gui" in self.spec: - args.append("--with-gui") return args # By default package installs under postgresql prefix. diff --git a/repos/spack_repo/builtin/packages/postgresql/package.py b/repos/spack_repo/builtin/packages/postgresql/package.py index 0370a5abcde..d5d2b6fcab0 100644 --- a/repos/spack_repo/builtin/packages/postgresql/package.py +++ b/repos/spack_repo/builtin/packages/postgresql/package.py @@ -22,6 +22,8 @@ class Postgresql(AutotoolsPackage): license("PostgreSQL") + version("18.0", sha256="0d5b903b1e5fe361bca7aa9507519933773eb34266b1357c4e7780fdee6d6078") + version("17.6", sha256="e0630a3600aea27511715563259ec2111cd5f4353a4b040e0be827f94cd7a8b0") version("17.2", sha256="82ef27c0af3751695d7f64e2d963583005fbb6a0c3df63d0e4b42211d7021164") version("16.4", sha256="971766d645aa73e93b9ef4e3be44201b4f45b5477095b049125403f9f3386d6f") version("16.3", sha256="331963d5d3dc4caf4216a049fa40b66d6bcb8c730615859411b9518764e60585") diff --git a/repos/spack_repo/builtin/packages/povray/package.py b/repos/spack_repo/builtin/packages/povray/package.py index cfe4d86b547..f24ded37158 100644 --- a/repos/spack_repo/builtin/packages/povray/package.py +++ b/repos/spack_repo/builtin/packages/povray/package.py @@ -31,19 +31,13 @@ class Povray(AutotoolsPackage): license("AGPL-3.0-or-later") version("3.7.0.10", sha256="7bee83d9296b98b7956eb94210cf30aa5c1bbeada8ef6b93bb52228bbc83abff") - # The following version no longer builds - version( - "3.7.0.8", - sha256="53d11ebd2972fc452af168a00eb83aefb61387662c10784e81b63e44aa575de4", - deprecated=True, - ) variant("boost", default=True, description="Build with boost support") variant("debug", default=False, description="Enable compiler debugging mode") variant( "io-restrictions", default=True, - description="Enable POV-Rays mechanism for control of I/O " "operations", + description="Enable POV-Rays mechanism for control of I/O operations", ) variant("jpeg", default=True, description="Build with jpeg support") variant("libpng", default=True, description="Build with libpng support") @@ -99,7 +93,7 @@ def run_prebuild_script(self): # and it must be run from within the directory containing it unix_dir = join_path(self.build_directory, "unix") prebuild_path = join_path(unix_dir, "prebuild.sh") - prebuild_script = which(prebuild_path) + prebuild_script = which(prebuild_path, required=True) prebuild_script() def configure_args(self): @@ -159,7 +153,7 @@ def test_render_sample(self): """Render sample file""" povs = find(self.prefix.share, "biscuit.pov")[0] copy(povs, ".") - exe = which("povray") + exe = which("povray", required=True) out = exe("biscuit.pov", output=str.split, error=str.split) expected = "POV-Ray finished" assert expected in out diff --git a/repos/spack_repo/builtin/packages/powerapi/package.py b/repos/spack_repo/builtin/packages/powerapi/package.py index ed43bce6f5e..886ce345ee1 100644 --- a/repos/spack_repo/builtin/packages/powerapi/package.py +++ b/repos/spack_repo/builtin/packages/powerapi/package.py @@ -37,7 +37,7 @@ class Powerapi(AutotoolsPackage): patch("add_space.patch") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/pplacer/package.py b/repos/spack_repo/builtin/packages/pplacer/package.py index d84510d43ea..5303402ea2a 100644 --- a/repos/spack_repo/builtin/packages/pplacer/package.py +++ b/repos/spack_repo/builtin/packages/pplacer/package.py @@ -16,12 +16,98 @@ class Pplacer(Package): """ homepage = "https://matsen.fhcrc.org/pplacer/" - url = "https://github.com/matsen/pplacer/releases/download/v1.1.alpha19/pplacer-linux-v1.1.alpha19.zip" + url = "https://github.com/matsen/pplacer/archive/refs/tags/v1.1.alpha22.tar.gz" + git = "https://github.com/matsen/pplacer.git" version( - "1.1.alpha19", sha256="9131b45c35ddb927f866385f149cf64af5dffe724234cd4548c22303a992347d" + "1.1.alpha22", sha256="b1eeb4fd5f4b946f176e4ed8540a035d8a0645c05b4201477ea67d35ebe6b5a1" ) + version( + "1.1.alpha19", + sha256="9131b45c35ddb927f866385f149cf64af5dffe724234cd4548c22303a992347d", + url="https://github.com/matsen/pplacer/releases/download/v1.1.alpha19/pplacer-linux-v1.1.alpha19.zip", + ) + + with when("@1.1.alpha22:"): + with default_args(type="build"): + depends_on("c") + + depends_on("awk") + depends_on("gmake") + depends_on("m4") + depends_on("opam") + depends_on("patch") + depends_on("pkgconf") + depends_on("gsl") + depends_on("sqlite@3") + depends_on("zlib-api") + with default_args(type="run"): + depends_on("python@3") + depends_on("py-biopython") + + resource( + name="mcl-temp", + placement="mcl-temp", + git="https://github.com/fhcrc/mcl.git", + commit="1f1932b64619e9bd9ecbcb421cb1e3f1eb535e80", + when="@1.1.alpha22", + ) + + @when("@1.1.alpha22:") + def setup_build_environment(self, env): + env.append_path("PATH", join_path(self.stage.source_path, ".opam", "5.2.1", "bin")) + + @when("@1.1.alpha22:") + def install(self, spec, prefix): + # resource staging + copy_tree("mcl-temp", "mcl") + remove_directory_contents("mcl-temp") + + opam = Executable(self.spec["opam"].prefix.bin.opam) + opam_root = join_path(self.stage.source_path, ".opam") + opam("init", "--disable-sandboxing", f"--root={opam_root}", "--compiler=5.2.1") + opam( + "repo", + "add", + "pplacer-deps", + "http://matsen.github.io/pplacer-opam-repository", + f"--root={opam_root}", + ) + opam("update", "pplacer-deps", f"--root={opam_root}") + deps = [ + "dune", + "csv", + "ounit2", + "xmlm", + "batteries", + "gsl", + "sqlite3", + "camlzip", + "ocamlfind", + ] + opam("install", f"--root={opam_root}", "-y", "--assume-depexts", *deps) + with working_dir("mcl"): + Executable("./configure")() + make() + dune = Executable(join_path(opam_root, "5.2.1", "bin", "dune")) + dune("build") + mkdirp(prefix.bin) + install_tree("scripts", prefix.bin) + to_remove = [ + "build-common.sh", + "build-docker.sh", + "build-linux.sh", + "build-macos.sh", + "setup.py", + ] + for i in to_remove: + force_remove(join_path(prefix.bin, i)) + with working_dir(join_path("_build", "default")): + install("guppy.exe", join_path(prefix.bin, "guppy")) + install("pplacer.exe", join_path(prefix.bin, "pplacer")) + install("rppr.exe", join_path(prefix.bin, "rppr")) + @when("1.1.alpha19") def install(self, spec, prefix): install_tree("scripts", prefix.bin) force_remove(join_path(prefix.bin, "setup.py")) diff --git a/repos/spack_repo/builtin/packages/pprof/package.py b/repos/spack_repo/builtin/packages/pprof/package.py new file mode 100644 index 00000000000..bd057f5d193 --- /dev/null +++ b/repos/spack_repo/builtin/packages/pprof/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.go import GoPackage + +from spack.package import * + + +class Pprof(GoPackage): + """pprof is a tool for visualization and analysis of profiling data.""" + + homepage = "https://github.com/google/pprof" + 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) + + variant( + "graphviz", + default=True, + description="Enable graphic visualization of profiles (SVG, PDF, etc.)", + ) + + # 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") + + depends_on("graphviz", type="run", when="+graphviz") diff --git a/repos/spack_repo/builtin/packages/precice/boost-system-header-only.patch b/repos/spack_repo/builtin/packages/precice/boost-system-header-only.patch new file mode 100644 index 00000000000..70d95ad9d4c --- /dev/null +++ b/repos/spack_repo/builtin/packages/precice/boost-system-header-only.patch @@ -0,0 +1,6 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -270 +270 @@ set_target_properties(precice PROPERTIES +-target_compile_definitions(precice PRIVATE BOOST_ALL_DYN_LINK BOOST_ASIO_ENABLE_OLD_SERVICES BOOST_GEOMETRY_DISABLE_DEPRECATED_03_WARNING) ++target_compile_definitions(precice PRIVATE BOOST_ALL_DYN_LINK BOOST_ASIO_ENABLE_OLD_SERVICES BOOST_GEOMETRY_DISABLE_DEPRECATED_03_WARNING BOOST_ERROR_CODE_HEADER_ONLY) + diff --git a/repos/spack_repo/builtin/packages/precice/edge-incomplete-type.patch b/repos/spack_repo/builtin/packages/precice/edge-incomplete-type.patch new file mode 100644 index 00000000000..b2fd8bda42e --- /dev/null +++ b/repos/spack_repo/builtin/packages/precice/edge-incomplete-type.patch @@ -0,0 +1,4 @@ +--- a/src/mesh/Edge.hpp ++++ b/src/mesh/Edge.hpp +@@ -4,0 +5 @@ ++#include diff --git a/repos/spack_repo/builtin/packages/precice/package.py b/repos/spack_repo/builtin/packages/precice/package.py index 93c8d499698..e35aa14c0eb 100644 --- a/repos/spack_repo/builtin/packages/precice/package.py +++ b/repos/spack_repo/builtin/packages/precice/package.py @@ -24,6 +24,9 @@ class Precice(CMakePackage): license("LGPL-3.0-or-later") version("develop", branch="develop") + version("3.4.0", sha256="1155178da7271c404947d1ff64b6e5028a82575fd532baa26bd6418de5ef2623") + version("3.3.1", sha256="c52b22bd7669baec3ff903eba9bf102154629634652125a60b109a5b7e803ab5") + version("3.3.0", sha256="300df9dbaec066c1d0f93f2dbf055705110d297bca23fc0f20a99847a55a24f4") version("3.2.0", sha256="93523f1a56e0cfd338d8e190baa06129ee811acdb1c697468a3c85c516d63464") version("3.1.2", sha256="e06d5e183f584c51812dcddf958210d1195bea38fa2df13be72303dcb06c869b") version("3.1.1", sha256="fe759293942ebc9cb2e6127f356a8c795ab7383c1b074595994ebc92466e478d") @@ -97,10 +100,12 @@ class Precice(CMakePackage): depends_on("boost@:1.74", when="@:2.1.1") depends_on("boost@:1.78", when="@:2.3.0") depends_on("boost@:1.86", when="@:3.1.2") + depends_on("boost@:1.89", when="@:3.2.0") depends_on("eigen@3.2:") depends_on("eigen@3.4:", when="@3.2:") depends_on("eigen@:3.3.7", type="build", when="@:1.5") # bug in prettyprint + depends_on("eigen@:3.4.99", when="@:3.3") depends_on("libxml2") depends_on("libxml2@:2.11.99", type="build", when="@:2.5.0") @@ -121,6 +126,20 @@ class Precice(CMakePackage): conflicts("%apple-clang@:5") conflicts("%clang@:3.7") conflicts("%intel@:16") + conflicts("%gcc@:9.2", when="@3.0.0:") + + # Fixes missing #include in src/mesh/Edge.hpp + patch( + "edge-incomplete-type.patch", + when="@2.0", + sha256="4017a89e4f77f623807a6cd057d9a095788879310f1bddd98837920d252b1ac7", + ) + # Fixes linking to boost system by using BOOST_ERROR_CODE_HEADER_ONLY + patch( + "boost-system-header-only.patch", + when="@2.3.0", + sha256="6a38783eec984a59991f0895d411212e0ba1ebd2ec2c8f53f962df8facbc0344", + ) def xsdk_tpl_args(self): return [ @@ -152,9 +171,14 @@ def cmake_args(self): self.define_from_variant("BUILD_SHARED_LIBS", "shared"), self.define_from_variant(mpi_option, "mpi"), self.define_from_variant(petsc_option, "petsc"), - self.define_from_variant(python_option, "python"), ] + # Python 3 is only supported after version 2 + if spec.satisfies("@2:"): + cmake_args.append(self.define_from_variant(python_option, "python")) + else: + cmake_args.append("-DPYTHON=OFF") + # The xSDK installation policies were implemented after 1.5.2. # The TPL arguments were removed in 3.0.0. if spec.satisfies("@1.6:3"): diff --git a/repos/spack_repo/builtin/packages/preseq/package.py b/repos/spack_repo/builtin/packages/preseq/package.py index 08e6b2cbde4..46df49e442d 100644 --- a/repos/spack_repo/builtin/packages/preseq/package.py +++ b/repos/spack_repo/builtin/packages/preseq/package.py @@ -2,12 +2,13 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack_repo.builtin.build_systems.makefile import MakefilePackage from spack.package import * -class Preseq(MakefilePackage): +class Preseq(MakefilePackage, AutotoolsPackage): """The preseq package is aimed at predicting and estimating the complexity of a genomic sequencing library, equivalent to predicting and estimating the number of redundant reads from a given sequencing depth @@ -15,18 +16,63 @@ class Preseq(MakefilePackage): initial sequencing experiment.""" homepage = "https://github.com/smithlabcode/preseq" - url = "https://github.com/smithlabcode/preseq/releases/download/v2.0.2/preseq_v2.0.2.tar.bz2" license("GPL-3.0-only") + version("3.2.0", sha256="95b81c9054e0d651de398585c7e96b807ad98f0bdc541b3e46665febbe2134d9") version("2.0.3", sha256="747ddd4227515a96a45fcff0709f26130386bff3458c829c7bc1f3306b4f3d91") version("2.0.2", sha256="1d7ea249bf4e5826e09697256643e6a2473bc302cd455f31d4eb34c23c10b97c") + build_system( + conditional("makefile", when="@:2"), + conditional("autotools", when="@3:"), + default="autotools", + ) + + variant( + "hts", + default=False, + description="Use HTSlib to support BAM to mapped read conversions", + when="@3:", + ) + depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("samtools") - depends_on("gsl") + # As of 3.0, preseq does not link libefence + depends_on("libefence", when="@:2") + + # As of 3.0.2, preseq does not use gsl + depends_on("gsl", when="@:3.0.1") + + depends_on("htslib", when="+hts") + + conflicts("gcc@13:", when="+hts") + def url_for_version(self, version): + """ + preseq 2 tarball has an _ and is bzipped while preseq 3 tarball has a - and is + gzipped + """ + uri = f"https://github.com/smithlabcode/preseq/releases/download/v{version}" + if version < Version("3.0"): + return f"{uri}/preseq_v{version}.tar.bz2" + else: + return f"{uri}/preseq-{version}.tar.gz" + + @when("@:2") def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("PREFIX", self.prefix) + + @when("+hts") + def setup_build_environment(self, env: EnvironmentModifications) -> None: + env.set("CPPFLAGS", f"-I{self.spec['htslib'].prefix.include}") + env.set("LDFLAGS", f"-L{self.spec['htslib'].prefix.lib}") + + @when("@:2") + def configure(self, spec, prefix): + return + + @when("+hts") + def configure_args(self): + return ["--enable-hts"] diff --git a/repos/spack_repo/builtin/packages/pressio_log/package.py b/repos/spack_repo/builtin/packages/pressio_log/package.py index 79c483cb79b..58322a07d4e 100644 --- a/repos/spack_repo/builtin/packages/pressio_log/package.py +++ b/repos/spack_repo/builtin/packages/pressio_log/package.py @@ -22,6 +22,8 @@ class PressioLog(Package): version("main", branch="main") version("0.15.0", branch="0.15.0") + version("0.16.0", branch="0.16.0") + version("0.17.0", branch="0.17.0") def install(self, spec, prefix): install_tree("include", prefix.include) diff --git a/repos/spack_repo/builtin/packages/pressio_ops/package.py b/repos/spack_repo/builtin/packages/pressio_ops/package.py index 6ba3cd0bb69..38fcd91e34f 100644 --- a/repos/spack_repo/builtin/packages/pressio_ops/package.py +++ b/repos/spack_repo/builtin/packages/pressio_ops/package.py @@ -22,6 +22,8 @@ class PressioOps(Package): version("main", branch="main") version("0.15.0", branch="0.15.0") + version("0.16.0", branch="0.16.0") + version("0.17.0", branch="0.17.0") def install(self, spec, prefix): install_tree("include", prefix.include) diff --git a/repos/spack_repo/builtin/packages/pressio_rom/package.py b/repos/spack_repo/builtin/packages/pressio_rom/package.py index b051361afcf..194098ef466 100644 --- a/repos/spack_repo/builtin/packages/pressio_rom/package.py +++ b/repos/spack_repo/builtin/packages/pressio_rom/package.py @@ -26,7 +26,7 @@ class PressioRom(Package): license("BSD-3-Clause") maintainers("fnrizzi", "cwschilly") - supported_versions = ["main", "0.15.0"] + supported_versions = ["main", "0.15.0", "0.16.0", "0.17.0"] # For now, assume each repo is compatible only with the same version of the other repos for supported_version in supported_versions: diff --git a/repos/spack_repo/builtin/packages/prinseq_lite/package.py b/repos/spack_repo/builtin/packages/prinseq_lite/package.py index b8e78a80941..e8f4eeb2291 100644 --- a/repos/spack_repo/builtin/packages/prinseq_lite/package.py +++ b/repos/spack_repo/builtin/packages/prinseq_lite/package.py @@ -35,6 +35,6 @@ def install(self, spec, prefix): install("prinseq-graphs-noPCA.pl", prefix.bin) install("prinseq-lite.pl", prefix.bin) - chmod = which("chmod") + chmod = which("chmod", required=True) chmod("+x", join_path(self.prefix.bin, "prinseq-graphs-noPCA.pl")) chmod("+x", join_path(self.prefix.bin, "prinseq-lite.pl")) diff --git a/repos/spack_repo/builtin/packages/prmon/package.py b/repos/spack_repo/builtin/packages/prmon/package.py index c1ccf911471..b6508a3c23d 100644 --- a/repos/spack_repo/builtin/packages/prmon/package.py +++ b/repos/spack_repo/builtin/packages/prmon/package.py @@ -20,6 +20,7 @@ class Prmon(CMakePackage): license("Apache-2.0") version("main", branch="main") + version("3.2.0", sha256="737b2103b41926ffccb6de607aa763751df0e57cb241204a3f07677e041de0ba") version("3.1.1", sha256="30ce420f807e637002fbfb92f54b3a74f645dc95b81a75995196e787a7b952ba") version("3.1.0", sha256="02f25f1ea82300c93e5af14137e366b31c8d615283768d5f3f98616a0d6e507c") version("3.0.2", sha256="ea9ff521689fecb8c395e35e9540be18c7ab37812354c4a5c0ba505e2ab467c1") @@ -31,8 +32,12 @@ class Prmon(CMakePackage): variant("plot", default=False, description="Make use of plotting scripts") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("nlohmann-json") depends_on("cmake@3.3:", type="build") + depends_on("cmake@3.10:", type="build", when="@3.2:") depends_on("spdlog", when="@3.0.0:") depends_on("py-matplotlib", type="run", when="+plot") depends_on("py-matplotlib@:3.5", type="run", when="@:3.1.0 +plot") diff --git a/repos/spack_repo/builtin/packages/process_in_process/package.py b/repos/spack_repo/builtin/packages/process_in_process/package.py index 3732e6e037e..5cb0abb9551 100644 --- a/repos/spack_repo/builtin/packages/process_in_process/package.py +++ b/repos/spack_repo/builtin/packages/process_in_process/package.py @@ -25,12 +25,8 @@ class ProcessInProcess(Package): license("BSD-2-Clause-FreeBSD") - # PiP version 1 is obsolete - version("1", branch="pip-1", deprecated=True) # PiP version 2 is stable one - version("2", branch="pip-2", preferred=True) - # PiP version 3 is experimental and unstable yet - version("3", branch="pip-3", deprecated=True) + version("2", branch="pip-2") depends_on("c", type="build") # generated @@ -118,72 +114,6 @@ class ProcessInProcess(Package): when="@2 os=rhel8", ) - # resources for PiP version 3 - # PiP-glibc resource - # for rhel/centos 7 - resource( - name="PiP-glibc", - git="https://github.com/procinproc/PiP-glibc.git", - branch="centos/glibc-2.17-260.el7.pip.branch", - destination="PiP-glibc", - when="@3 os=centos7", - ) - resource( - name="PiP-glibc", - git="https://github.com/procinproc/PiP-glibc.git", - branch="centos/glibc-2.17-260.el7.pip.branch", - destination="PiP-glibc", - when="@3 os=rhel7", - ) - # for rhel/centos 8 - resource( - name="PiP-glibc", - git="https://github.com/procinproc/PiP-glibc.git", - branch="centos/glibc-2.28-72.el8_1.1.pip.branch", - destination="PiP-glibc", - when="@3 os=centos8", - ) - resource( - name="PiP-glibc", - git="https://github.com/procinproc/PiP-glibc.git", - branch="centos/glibc-2.28-72.el8_1.1.pip.branch", - destination="PiP-glibc", - when="@3 os=rhel8", - ) - - with when("+pipgdb"): - # PiP-gdb resource - # for rhel/centos 7 - resource( - name="PiP-gdb", - git="https://github.com/procinproc/PiP-gdb.git", - branch="centos/gdb-7.6.1-94.el7.pip.branch", - destination="PiP-gdb", - when="@3 os=centos7", - ) - resource( - name="PiP-gdb", - git="https://github.com/procinproc/PiP-gdb.git", - branch="centos/gdb-7.6.1-94.el7.pip.branch", - destination="PiP-gdb", - when="@3 os=rhel7", - ) - # for rhel/centos 8 - resource( - name="PiP-gdb", - git="https://github.com/procinproc/PiP-gdb.git", - branch="centos/gdb-8.2-12.el8.pip.branch", - destination="PiP-gdb", - when="@3 os=centos8", - ) - resource( - name="PiP-gdb", - git="https://github.com/procinproc/PiP-gdb.git", - branch="centos/gdb-8.2-12.el8.pip.branch", - destination="PiP-gdb", - when="@3 os=rhel8", - ) - # PiP testsuite (agnostic with PiP and OS versions) resource( name="PiP-Testsuite", @@ -202,7 +132,7 @@ def install(self, spec, prefix): if target.family not in ["x86_64", "aarch64"]: raise InstallError("PiP only supports x86_64 and aarch64") - bash = which("bash") + bash = which("bash", required=True) # installing PiP-glibc glibc_builddir = join_path("PiP-glibc", "PiP-glibc.build") diff --git a/repos/spack_repo/builtin/packages/procps/package.py b/repos/spack_repo/builtin/packages/procps/package.py index ba93519f13c..2dfa618f569 100644 --- a/repos/spack_repo/builtin/packages/procps/package.py +++ b/repos/spack_repo/builtin/packages/procps/package.py @@ -19,6 +19,7 @@ class Procps(AutotoolsPackage): license("GPL-2.0-or-later") version("master", branch="master") + version("4.0.6", sha256="1bbe8ff21dcd05a6adcda99a67d2e99cbd515c9e3a78fd3cc915b12aeb330d40") version("4.0.4", sha256="3214fab0f817d169f2c117842ba635bafb1cd6090273e311a8b5c6fc393ddb9d") version("4.0.3", sha256="14cc21219c45d196772274ea3f194f6d668b6cc667fbde9ee6d8039121b73fa6") version("4.0.2", sha256="b03e4b55eaa5661e726acb714e689356d80bc056b09965c2284d039ba8dc21e8") @@ -31,16 +32,15 @@ class Procps(AutotoolsPackage): variant("nls", default=True, description="Enable Native Language Support.") - depends_on("c", type="build") # generated - + depends_on("c", type="build") depends_on("autoconf", type="build") depends_on("automake", type="build") depends_on("libtool", type="build") depends_on("m4", type="build") - depends_on("pkgconfig@0.9.0:", type="build") + depends_on("pkgconfig", type="build") + depends_on("gettext", type="build") # required by autogen.sh depends_on("dejagnu", type="test") depends_on("iconv") - depends_on("gettext", type="build") # required by autogen.sh with when("+nls"): depends_on("gettext") # msgfmt 0.22 gives parsing errors @@ -56,7 +56,7 @@ class Procps(AutotoolsPackage): patch("libintl-4.0.1.patch", when="@4.0.1:4.0.3") def autoreconf(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("autogen.sh") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/prod_util/package.py b/repos/spack_repo/builtin/packages/prod_util/package.py index ddd22d3d9f1..340ceaa356e 100644 --- a/repos/spack_repo/builtin/packages/prod_util/package.py +++ b/repos/spack_repo/builtin/packages/prod_util/package.py @@ -23,17 +23,11 @@ class ProdUtil(CMakePackage): version("2.1.2", sha256="af2e0163152b3afbc5a51ce5260265c3fb38e195900f4f90bff52cecb2bbf773") version("2.1.1", sha256="2f7507fa378a44f42b971f60de8152387c311bfa9c5c05a274c87b43a143aacd") version("2.1.0", sha256="fa7df4a82dae269ffb347b9007376fb0d9979c17c4974814ea82204b12d70ea5") - version( - "1.2.2", - sha256="c51b903ea5a046cb9b545b5c04fd28647c58b4ab6182e61710f0287846350ef8", - deprecated=True, - ) depends_on("c", type="build") depends_on("fortran", type="build") - depends_on("w3nco", when="@1") - depends_on("w3emc", when="@2:") + depends_on("w3emc") def check(self): with working_dir(self.build_directory): diff --git a/repos/spack_repo/builtin/packages/profugusmc/package.py b/repos/spack_repo/builtin/packages/profugusmc/package.py index 6af66d3145c..9216ee71115 100644 --- a/repos/spack_repo/builtin/packages/profugusmc/package.py +++ b/repos/spack_repo/builtin/packages/profugusmc/package.py @@ -23,8 +23,7 @@ class Profugusmc(CMakePackage, CudaPackage): variant("cuda", default=False, description="Enable CUDA") depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("cxx", type="build") depends_on("blas") depends_on("lapack") diff --git a/repos/spack_repo/builtin/packages/proj/package.py b/repos/spack_repo/builtin/packages/proj/package.py index e6d099e9f1c..acf1518c072 100644 --- a/repos/spack_repo/builtin/packages/proj/package.py +++ b/repos/spack_repo/builtin/packages/proj/package.py @@ -26,6 +26,7 @@ class Proj(CMakePackage, AutotoolsPackage): license("MIT") + version("9.7.0", sha256="65705ecd987b50bf63e15820ce6bd17c042feaabda981249831bd230f6689709") version("9.4.1", sha256="ffe20170ee2b952207adf8a195e2141eab12cda181e49fdeb54425d98c7171d7") version("9.4.0", sha256="3643b19b1622fe6b2e3113bdb623969f5117984b39f173b4e3fb19a8833bd216") version("9.3.1", sha256="b0f919cb9e1f42f803a3e616c2b63a78e4d81ecfaed80978d570d3a5e29d10bc") @@ -46,11 +47,6 @@ class Proj(CMakePackage, AutotoolsPackage): version("7.2.0", sha256="2957798e5fe295ff96a2af1889d0428e486363d210889422f76dd744f7885763") version("7.1.0", sha256="876151e2279346f6bdbc63bd59790b48733496a957bccd5e51b640fdd26eaa8d") version("7.0.1", sha256="a7026d39c9c80d51565cfc4b33d22631c11e491004e19020b3ff5a0791e1779f") - version( - "7.0.0", - sha256="ee0e14c1bd2f9429b1a28999240304c0342ed739ebaea3d4ff44c585b1097be8", - deprecated=True, - ) version("6.3.2", sha256="cb776a70f40c35579ae4ba04fb4a388c1d1ce025a1df6171350dc19f25b80311") version("6.3.1", sha256="6de0112778438dcae30fcc6942dee472ce31399b9e5a2b67e8642529868c86f8") version("6.2.0", sha256="b300c0f872f632ad7f8eb60725edbf14f0f8f52db740a3ab23e7b94f1cd22a50") @@ -61,21 +57,6 @@ class Proj(CMakePackage, AutotoolsPackage): version("5.0.1", sha256="a792f78897482ed2c4e2af4e8a1a02e294c64e32b591a635c5294cb9d49fdc8c") version("4.9.2", sha256="60bf9ad1ed1c18158e652dfff97865ba6fb2b67f1511bc8dceae4b3c7e657796") version("4.9.1", sha256="fca0388f3f8bc5a1a803d2f6ff30017532367992b30cf144f2d39be88f36c319") - version( - "4.8.0", - sha256="2db2dbf0fece8d9880679154e0d6d1ce7c694dd8e08b4d091028093d87a9d1b5", - deprecated=True, - ) - version( - "4.7.0", - sha256="fc5440002a496532bfaf423c28bdfaf9e26cc96c84ccefcdefde911efbd98986", - deprecated=True, - ) - version( - "4.6.1", - sha256="76d174edd4fdb4c49c1c0ed8308a469216c01e7177a4510b1b303ef3c5f97b47", - deprecated=True, - ) variant("tiff", default=True, when="@7:", description="Enable TIFF support") variant("curl", default=True, when="@7:", description="Enable curl support") @@ -116,17 +97,37 @@ class Proj(CMakePackage, AutotoolsPackage): # https://github.com/OSGeo/PROJ/pull/3374 patch("proj-8-tiff.patch", when="@8:9.1") patch("proj-7-tiff.patch", when="@7") + # The two patches above add linkage to the TIFF::TIFF + # CMake target, but fail to add a find_dependency + # in the exported CMake config + # add that. + # Upstream in proj as of 9.2 + patch("proj_config_find_tiff_dep.patch", when="@7:9.1") # https://github.com/spack/spack/pull/41065 patch("proj.cmakelists.5.0.patch", when="@5.0") patch("proj.cmakelists.5.1.patch", when="@5.1:5.2") + # proj 8-9.1 relies on an undocumented side effect of CMake's + # FindCurl module, patch it to use the interface supported by + # both curl's cmake module and CMake's find curl module + # This is fixed in proj upstream as of 9.2 + # there is a slight difference in requirements for 8 vs 9:9.1 + # hence two patches + patch("proj_8_include_curl_dirs.patch", when="@8") + patch("proj_9_include_curl_dirs.patch", when="@9:9.1") + + # proj 8 uses CURL_LIBRARY instead of the correct + # CURL_LIBRARIES, patch to correct that useage + # fixed in upstream proj as of 9 + patch("proj_8_curl_libraries.patch", when="@8") + depends_on("cmake@3.16:", when="@9.4:", type="build") depends_on("cmake@3.9:", when="@6:", type="build") depends_on("cmake@3.5:", when="@5", type="build") depends_on("cmake@2.6:", when="@:4", type="build") with when("build_system=autotools"): - depends_on("pkgconfig@0.9:", when="@6:", type="build") + depends_on("pkgconfig", when="@6:", type="build") depends_on("sqlite@3.11:", when="@6:") depends_on("libtiff@4:", when="@7:+tiff") @@ -175,6 +176,8 @@ def cmake_args(self): else: test_flag = "PROJ4_TESTS" args.append(self.define(test_flag, self.pkg.run_tests)) + if self.spec.satisfies("%curl build_system=cmake"): + args.append(self.define("CMAKE_CXX_FLAGS", "-DCURL_STATICLIB")) return args diff --git a/repos/spack_repo/builtin/packages/proj/proj_8_curl_libraries.patch b/repos/spack_repo/builtin/packages/proj/proj_8_curl_libraries.patch new file mode 100644 index 00000000000..59e0bce201b --- /dev/null +++ b/repos/spack_repo/builtin/packages/proj/proj_8_curl_libraries.patch @@ -0,0 +1,13 @@ +diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake +index f2de1c10..034b601d 100644 +--- a/src/lib_proj.cmake ++++ b/src/lib_proj.cmake +@@ -413,7 +413,7 @@ if(CURL_ENABLED) + target_include_directories(proj PRIVATE ${CURL_INCLUDE_DIR}) + target_link_libraries(proj + PRIVATE +- ${CURL_LIBRARY} ++ ${CURL_LIBRARIES} + $<$:ws2_32> + $<$:wldap32> + $<$:advapi32> diff --git a/repos/spack_repo/builtin/packages/proj/proj_8_include_curl_dirs.patch b/repos/spack_repo/builtin/packages/proj/proj_8_include_curl_dirs.patch new file mode 100644 index 00000000000..060da797f3f --- /dev/null +++ b/repos/spack_repo/builtin/packages/proj/proj_8_include_curl_dirs.patch @@ -0,0 +1,26 @@ +diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake +index a35eeb8c..b98a435d 100644 +--- a/src/lib_proj.cmake ++++ b/src/lib_proj.cmake +@@ -470,7 +470,7 @@ endif() + + if(CURL_ENABLED) + target_compile_definitions(proj PRIVATE -DCURL_ENABLED) +- target_include_directories(proj PRIVATE ${CURL_INCLUDE_DIR}) ++ target_include_directories(proj PRIVATE ${CURL_INCLUDE_DIRS}) + target_link_libraries(proj + PRIVATE + ${CURL_LIBRARY} +diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt +index eb41a6c8..a09bed62 100644 +--- a/test/unit/CMakeLists.txt ++++ b/test/unit/CMakeLists.txt +@@ -144,7 +144,7 @@ add_executable(test_network + main.cpp + test_network.cpp) + if(CURL_ENABLED) +- include_directories(${CURL_INCLUDE_DIR}) ++ include_directories(${CURL_INCLUDE_DIRS}) + target_compile_definitions(test_network PRIVATE -DCURL_ENABLED) + target_link_libraries(test_network PRIVATE ${CURL_LIBRARY}) + endif() diff --git a/repos/spack_repo/builtin/packages/proj/proj_9_include_curl_dirs.patch b/repos/spack_repo/builtin/packages/proj/proj_9_include_curl_dirs.patch new file mode 100644 index 00000000000..c954452b544 --- /dev/null +++ b/repos/spack_repo/builtin/packages/proj/proj_9_include_curl_dirs.patch @@ -0,0 +1,13 @@ +diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt +index 43eeca98..e0084f3c 100644 +--- a/test/unit/CMakeLists.txt ++++ b/test/unit/CMakeLists.txt +@@ -160,7 +160,7 @@ add_executable(test_network + main.cpp + test_network.cpp) + if(CURL_ENABLED) +- include_directories(${CURL_INCLUDE_DIR}) ++ include_directories(${CURL_INCLUDE_DIRS}) + target_compile_definitions(test_network PRIVATE -DCURL_ENABLED) + target_link_libraries(test_network PRIVATE ${CURL_LIBRARY}) + endif() diff --git a/repos/spack_repo/builtin/packages/proj/proj_config_find_tiff_dep.patch b/repos/spack_repo/builtin/packages/proj/proj_config_find_tiff_dep.patch new file mode 100644 index 00000000000..b865062846e --- /dev/null +++ b/repos/spack_repo/builtin/packages/proj/proj_config_find_tiff_dep.patch @@ -0,0 +1,17 @@ +diff --git a/cmake/project-config.cmake.in b/cmake/project-config.cmake.in +index 23f997ab..f813c27a 100644 +--- a/cmake/project-config.cmake.in ++++ b/cmake/project-config.cmake.in +@@ -8,6 +8,12 @@ + # @PROJECT_VARIANT_NAME@_BINARY_DIRS = /usr/local/bin + # @PROJECT_VARIANT_NAME@_VERSION = 4.9.1 (for example) + ++# Establish dependencies ++if (@ENABLE_TIFF@) #ENABLE_TIFF ++ include(CMakeFindDependencyMacro) ++ find_dependency(TIFF) ++endif() ++ + # Tell the user project where to find our headers and libraries + get_filename_component (_DIR ${CMAKE_CURRENT_LIST_FILE} PATH) + get_filename_component (_ROOT "${_DIR}/@PROJECT_ROOT_DIR@" ABSOLUTE) diff --git a/repos/spack_repo/builtin/packages/prometheus_cpp/package.py b/repos/spack_repo/builtin/packages/prometheus_cpp/package.py index 3f1d2fe6fac..4c900eda437 100644 --- a/repos/spack_repo/builtin/packages/prometheus_cpp/package.py +++ b/repos/spack_repo/builtin/packages/prometheus_cpp/package.py @@ -18,6 +18,7 @@ class PrometheusCpp(CMakePackage): license("MIT", checked_by="mdorier") version("master", branch="master", submodules=True) + version("1.3.0", sha256="62bc2cc9772db2314dbaae506ae2a75c8ee897dab053d8729e86a637b018fdb6") version("1.2.4", sha256="0d6852291063c35853e88805c73b52f73c0c08b78c1e7bc4d588fcf72a7172eb") depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/proteowizard/package.py b/repos/spack_repo/builtin/packages/proteowizard/package.py new file mode 100644 index 00000000000..d7f4a7bd0e7 --- /dev/null +++ b/repos/spack_repo/builtin/packages/proteowizard/package.py @@ -0,0 +1,71 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import glob + +from spack_repo.builtin.build_systems.generic import Package + +from spack.package import * + + +class Proteowizard(Package): + """ProteoWizard: A set of software libraries and tools for rapid development of mass + spectrometry and proteomic data analysis software.""" + + homepage = "https://proteowizard.sourceforge.io" + git = "https://github.com/ProteoWizard/pwiz.git" + + # 17.05.2026 + version( + "3.0.26136-56ef25d", + url="http://github.com/ProteoWizard/pwiz/tarball/56ef25de24d72f23a3b247ce53abacb25f2f0886", + sha256="5141427765444a934130e4e63c2f02cd17235b1676da829e96ef75bab4107710", + ) + + # 13.04.2026 + version( + "3.0.26102-0783ec5", + url="http://github.com/ProteoWizard/pwiz/tarball/0783ec56810626af7888a80d7b32fb3e47d02d52", + sha256="8ed54d324d1d30db074046cfa017dd94ed40437007f51bd1b06d715042bf8f5c", + ) + + license("Apache-2.0") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + def determine_toolset(self, spec): + toolsets = {"%gcc": "gcc", "%oneapi": "intel", "%clang": "clang", "%nvhpc": "pgi"} + + for cc, toolset in toolsets.items(): + if spec.satisfies(cc): + return toolset + + raise InstallError("Unable to match compiler with b2 configuration file") + + def install(self, spec, prefix): + with working_dir("libraries/boost-build/src/engine"): + bootstrap_b2 = Executable("./build.sh") + bootstrap_b2() + + b2_path = join_path(self.stage.source_path, "libraries/boost-build/src/engine", "b2") + b2 = Executable(b2_path) + + b2_toolset = self.determine_toolset(spec) + + args = [f"-j{make_jobs}", f"toolset={b2_toolset}", "address-model=64", "executables"] + env["BOOST_BUILD_PATH"] = join_path(self.stage.source_path, "libraries/boost-build") + b2(*args, env=env) + + build_path = join_path(self.stage.source_path, "build-linux-x86_64") + dist_path = join_path(build_path, f"{b2_toolset}-release-x86_64") + + mkdirp(prefix.bin) + + with working_dir(dist_path): + for file in glob.glob("*"): + if file == "readme.txt": + continue + + install(file, prefix.bin) diff --git a/repos/spack_repo/builtin/packages/protobuf/package.py b/repos/spack_repo/builtin/packages/protobuf/package.py index 6fb3c4a913b..adb18d42008 100644 --- a/repos/spack_repo/builtin/packages/protobuf/package.py +++ b/repos/spack_repo/builtin/packages/protobuf/package.py @@ -11,27 +11,49 @@ class Protobuf(CMakePackage): """Google's data interchange format.""" homepage = "https://developers.google.com/protocol-buffers" - url = "https://github.com/protocolbuffers/protobuf/archive/v3.18.0.tar.gz" + url = "https://github.com/protocolbuffers/protobuf/archive/v34.0.tar.gz" maintainers("hyoklee") license("BSD-3-Clause") - version("3.29.3", sha256="c8d0ed0085f559444f70311791cf7aef414246b9942441443963184b534dbf9e") - version("3.28.2", sha256="1b6b6a7a7894f509f099c4469b5d4df525c2f3c9e4009e5b2db5b0f66cb8ee0e") - version("3.27.5", sha256="a4aa92d0a207298149bf553d9a3192f3562eb91740086f50fa52331e60fa480c") - version("3.26.1", sha256="f3c0830339eaa5036eba8ff8ce7fca5aa3088f7d616f7c3713d946f611ae92bf") - version("3.25.3", sha256="da82be8acc5347c7918ef806ebbb621b24988f7e1a19b32cd7fc73bc29b59186") - version("3.24.3", sha256="2c23dee0bdbc36bd43ee457083f8f5560265d0815cc1c56033de3932843262fe") - version("3.23.3", sha256="5e4b555f72a7e3f143a7aff7262292500bb02c49b174351684bb70fc7f2a6d33") - version("3.22.2", sha256="2118051b4fb3814d59d258533a4e35452934b1ddb41230261c9543384cbb4dfc") - version("3.21.12", sha256="930c2c3b5ecc6c9c12615cf5ad93f1cd6e12d0aba862b572e076259970ac3a53") - version("3.21.9", sha256="1add10f9bd92775b91f326da259f243881e904dd509367d5031d4c782ba82810") - version("3.21.7", sha256="ce2fbea3c78147a41b2a922485d283137845303e5e1b6cbd7ece94b96ade7031") - version("3.21.5", sha256="d7d204a59fd0d2d2387bd362c2155289d5060f32122c4d1d922041b61191d522") - version("3.21.4", sha256="85d42d4485f36f8cec3e475a3b9e841d7d78523cd775de3a86dba77081f4ca25") - version("3.21.3", sha256="c29d8b4b79389463c546f98b15aa4391d4ed7ec459340c47bffe15db63eb9126") - version("3.21.2", sha256="66e1156ac78290db81335c79d1fc5a54123ebb62a43eb2e5b42a44ca23087517") - version("3.21.1", sha256="a295dd3b9551d3e2749a9969583dea110c6cdcc39d02088f7c7bb1100077e081") + # note: + # https://protobuf.dev/support/version-support/ + # + # protobuf versioning scheme changed: after 3.20 there is 21.0. + # + # Prior to this change, all languages had major version "3" and 3 components. Now, protobuf + # versions follow the protoc versioning, with 2 components. + # + # What about language versions? language runtimes still have a version which is composed as + # + # .. + # + # Hence language runtime version has explicted also the protobuf version it is compatible with. + + version("34.1", sha256="a83103b7ed3afaeedee9a212c8f65825444f58144f5e075b73c83f2b4ff27b62") + version("34.0", sha256="61c47fabb1190e0acb2d47e67f31baac05d9b4ce69d7d1b43f6c83744f83898e") + version("33.1", sha256="0c98bb704ceb4e68c92f93907951ca3c36130bc73f87264e8c0771a80362ac97") + version("33.0", sha256="b6b03fbaa3a90f3d4f2a3fa4ecc41d7cd0326f92fcc920a7843f12206c8d52cd") + version("32.1", sha256="d2081ab9528292f7980ef2d88d2be472453eea4222141046ad4f660874d5f24e") + version("31.1", sha256="c3a0a9ece8932e31c3b736e2db18b1c42e7070cd9b881388b26d01aa71e24ca2") + version("30.2", sha256="07a43d88fe5a38e434c7f94129cad56a4c43a51f99336074d0799c2f7d4e44c5") + version("29.3", sha256="c8d0ed0085f559444f70311791cf7aef414246b9942441443963184b534dbf9e") + version("28.3", sha256="7c3ebd7aaedd86fa5dc479a0fda803f602caaf78d8aff7ce83b89e1b8ae7442a") + version("28.2", sha256="1b6b6a7a7894f509f099c4469b5d4df525c2f3c9e4009e5b2db5b0f66cb8ee0e") + version("27.5", sha256="a4aa92d0a207298149bf553d9a3192f3562eb91740086f50fa52331e60fa480c") + version("26.1", sha256="f3c0830339eaa5036eba8ff8ce7fca5aa3088f7d616f7c3713d946f611ae92bf") + version("25.3", sha256="da82be8acc5347c7918ef806ebbb621b24988f7e1a19b32cd7fc73bc29b59186") + version("24.3", sha256="2c23dee0bdbc36bd43ee457083f8f5560265d0815cc1c56033de3932843262fe") + version("23.3", sha256="5e4b555f72a7e3f143a7aff7262292500bb02c49b174351684bb70fc7f2a6d33") + version("22.2", sha256="2118051b4fb3814d59d258533a4e35452934b1ddb41230261c9543384cbb4dfc") + version("21.12", sha256="930c2c3b5ecc6c9c12615cf5ad93f1cd6e12d0aba862b572e076259970ac3a53") + version("21.9", sha256="1add10f9bd92775b91f326da259f243881e904dd509367d5031d4c782ba82810") + version("21.7", sha256="ce2fbea3c78147a41b2a922485d283137845303e5e1b6cbd7ece94b96ade7031") + version("21.5", sha256="d7d204a59fd0d2d2387bd362c2155289d5060f32122c4d1d922041b61191d522") + version("21.4", sha256="85d42d4485f36f8cec3e475a3b9e841d7d78523cd775de3a86dba77081f4ca25") + version("21.3", sha256="c29d8b4b79389463c546f98b15aa4391d4ed7ec459340c47bffe15db63eb9126") + version("21.2", sha256="66e1156ac78290db81335c79d1fc5a54123ebb62a43eb2e5b42a44ca23087517") + version("21.1", sha256="a295dd3b9551d3e2749a9969583dea110c6cdcc39d02088f7c7bb1100077e081") version("3.20.3", sha256="9c0fd39c7a08dff543c643f0f4baf081988129a411b977a07c46221793605638") version("3.20.2", sha256="88231778cffebf93bc905e76ea757fae0f2ef497cc00f64973e41f1acd4fc781") version("3.20.1", sha256="8b28fdd45bab62d15db232ec404248901842e5340299a57765e48abe8a80d930") @@ -92,11 +114,15 @@ class Protobuf(CMakePackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("abseil-cpp@20230125.3:", when="@3.22.5:") + depends_on("abseil-cpp cxxstd=17", when="@32.1:") + depends_on("abseil-cpp@20230125.3:", when="@22.5:") # https://github.com/protocolbuffers/protobuf/issues/11828#issuecomment-1433557509 - depends_on("abseil-cpp@20230125:", when="@3.22:") + depends_on("abseil-cpp@20230125:", when="@22:") depends_on("zlib-api") + # See https://github.com/protocolbuffers/protobuf/issues/26383 + conflicts("%gcc@:12", when="@34: +shared") + conflicts("%gcc@:4.6", when="@3.6.0:") # Requires c++11 conflicts("%gcc@:4.6", when="@3.2.0:3.3.0") # Breaks @@ -118,17 +144,22 @@ class Protobuf(CMakePackage): # fix build on Centos 8, see also https://github.com/protocolbuffers/protobuf/issues/5144 patch( "https://github.com/protocolbuffers/protobuf/commit/462964ed322503af52638d54c00a0a67d7133349.patch?full_index=1", - when="@3.4:3.21", + when="@3.4:21", sha256="9b6dcfa30dd3ae0abb66ab0f252a4fc1e1cc82a9820d2bdb72da35c4f80c3603", ) - patch("msvc-abseil-target-namespace.patch", when="@3.22 %msvc") + patch("msvc-abseil-target-namespace.patch", when="@22 %msvc") + + # Missing #include in third_party/utf8_range/utf8_validity.cc; memcpy was + # previously available transitively via absl/strings/string_view.h, which was removed + # in abseil-cpp@20260107.1. Fixed upstream by deleting the file in v26+. + patch("utf8-range-missing-cstring.patch", when="@22:25 ^abseil-cpp@20260107:") # Misisng #include "absl/container/internal/layout.h" # See https://github.com/protocolbuffers/protobuf/pull/14042 patch( "https://github.com/protocolbuffers/protobuf/commit/e052928c94f5a9a6a6cbdb82e09ab4ee92b7815f.patch?full_index=1", - when="@3.22:3.24.3 ^abseil-cpp@20240116:", + when="@22:24.3 ^abseil-cpp@20240116:", sha256="20e3cc99a9513b256e219653abe1bfc7d6b6a5413e269676e3d442830f99a1af", ) @@ -136,10 +167,18 @@ class Protobuf(CMakePackage): # See https://github.com/protocolbuffers/protobuf/pull/14054 patch( "https://github.com/protocolbuffers/protobuf/commit/38a24729ec94e6576a1425951c898ad0b91ad2d2.patch?full_index=1", - when="@3.22:3.24.3 ^abseil-cpp@20240116:", + when="@22:24.3 ^abseil-cpp@20240116:", sha256="c061356db31cdce29c8cdd98a3a8219ef048ebc2318d0dec26c1f2c5e5dae29b", ) + # Broken build on aarch64 due to __builtin_arm_crc32cd + # See https://github.com/protocolbuffers/protobuf/pull/23164 + patch( + "https://github.com/protocolbuffers/protobuf/commit/cbe193ab7ef6f8979cc33a876073217b364f4118.patch?full_index=1", + when="@32 target=aarch64:", + sha256="7727723e904dd74f35122da87837b60fd53e0642f302d53f96b9dbc6f9ac6d05", + ) + def cmake_args(self): args = [ self.define_from_variant("BUILD_SHARED_LIBS", "shared"), @@ -147,7 +186,7 @@ def cmake_args(self): self.define("CMAKE_POSITION_INDEPENDENT_CODE", True), ] - if self.spec.satisfies("@3.22:"): + if self.spec.satisfies("@22:"): cxxstd = self.spec["abseil-cpp"].variants["cxxstd"].value args.extend( [ diff --git a/repos/spack_repo/builtin/packages/protobuf/utf8-range-missing-cstring.patch b/repos/spack_repo/builtin/packages/protobuf/utf8-range-missing-cstring.patch new file mode 100644 index 00000000000..40596076142 --- /dev/null +++ b/repos/spack_repo/builtin/packages/protobuf/utf8-range-missing-cstring.patch @@ -0,0 +1,12 @@ +diff --git a/third_party/utf8_range/utf8_validity.cc b/third_party/utf8_range/utf8_validity.cc +index 9e94576..b1cdc66 100644 +--- a/third_party/utf8_range/utf8_validity.cc ++++ b/third_party/utf8_range/utf8_validity.cc +@@ -19,6 +19,7 @@ + + #include + #include ++#include + + #include "absl/strings/ascii.h" + #include "absl/strings/string_view.h" diff --git a/repos/spack_repo/builtin/packages/protobuf_c/package.py b/repos/spack_repo/builtin/packages/protobuf_c/package.py index 683de89e789..e3d9aabaf98 100644 --- a/repos/spack_repo/builtin/packages/protobuf_c/package.py +++ b/repos/spack_repo/builtin/packages/protobuf_c/package.py @@ -26,5 +26,5 @@ class ProtobufC(AutotoolsPackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("protobuf@:3.21.12") + depends_on("protobuf@:21.12") depends_on("pkgconfig", type="build") diff --git a/repos/spack_repo/builtin/packages/prrte/package.py b/repos/spack_repo/builtin/packages/prrte/package.py index 006d1a73772..42722af23d0 100644 --- a/repos/spack_repo/builtin/packages/prrte/package.py +++ b/repos/spack_repo/builtin/packages/prrte/package.py @@ -2,9 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os - from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack.package import * @@ -23,7 +20,7 @@ class Prrte(AutotoolsPackage): license("BSD-3-Clause-Open-MPI") - version("develop", branch="master") + version("develop", branch="master", no_cache=True, submodules=True) version("4.1.0", sha256="285ad62b670075708b9fcfe14c54baa599733bc274d10502a82e8eebba0b7c70") version("4.0.0", sha256="3c2ec961e0ba0c99128c7bf3545f4789d55a85a70ce958e868ae5e3db6ed4de4") version("3.0.13", sha256="635a546b3d3cfa587f4122bfaa0038df07b56381ffd649e57b089893712fa231") @@ -45,7 +42,12 @@ class Prrte(AutotoolsPackage): version("2.0.0", sha256="9f4abc0b1410e0fa74ed7b00cfea496aa06172e12433c6f2864d11b534becc25") version("1.0.0", sha256="a9b3715e059c10ed091bd6e3a0d8896f7752e43ee731abcc95fb962e67132a2d") - depends_on("c", type="build") # generated + depends_on("c", type="build") + + # Python is used to generate the docs and the show-help array, + # both of which are included pre-built in tarballs. + # https://github.com/openpmix/prrte/issues/2438 + depends_on("python@3.7:", type="build", when="@develop") depends_on("pmix") depends_on("pmix@6.1:", when="@4.1:") @@ -88,6 +90,45 @@ class Prrte(AutotoolsPackage): when="@4.1.0", ) + def url_for_version(self, version): + if version <= Version("3"): + # tarballs have a single 'r' + return f"https://github.com/pmix/prrte/releases/download/v{version}/prte-{version}.tar.bz2" + else: + return super().url_for_version(version) + + # The shipped configured has an expectation on automake version leading to either + # system automake use or configure failure + force_autoreconf = True + + # https://github.com/openpmix/openpmix/blob/master/docs/installing-pmix/configure-cli-options/runtime.rst + SCHEDULERS = ("alps", "lsf", "tm", "slurm", "sge") + + variant( + "schedulers", + values=disjoint_sets(("none",), SCHEDULERS).with_non_feature_values("none"), + description="List of schedulers for which support is enabled", + ) + depends_on("lsf", when="schedulers=lsf") + depends_on("pbs", when="schedulers=tm") + depends_on("slurm", when="schedulers=slurm") + + # fixes a segfault in v4.1.0 for some Apple ARM architectures + # https://github.com/openpmix/prrte/pull/2417 + patch( + "https://github.com/openpmix/prrte/commit/378c61c1d8eff9858a7774c869fbd332c48711a8.patch?full_index=1", + sha256="64faa1acb89eddea096307a2658b11ccdaf85dc8c870fed4b3f8670329706a4f", + when="@4.1.0", + ) + + # Improve hetero node handling + # https://github.com/openpmix/prrte/pull/2430 + patch( + "https://github.com/openpmix/prrte/commit/a6b09c9c3fb84838b056c31e802b5f79ac4e8d6b.patch?full_index=1", + sha256="91b28f5c701c8543b4807a29e9b5154b9d7e62f5d3a1e3036dadf1a9b5b0ca65", + when="@4.1.0", + ) + def url_for_version(self, version): if version <= Version("3"): # tarballs have a single 'r' @@ -96,9 +137,6 @@ def url_for_version(self, version): return super().url_for_version(version) def autoreconf(self, spec, prefix): - # If configure exists nothing needs to be done - if os.path.exists(self.configure_abs_path): - return with working_dir(self.configure_directory): perl = spec["perl"].command perl("autogen.pl") @@ -128,9 +166,18 @@ def configure_args(self): config_args.append("--with-sge") if spec.satisfies("schedulers=tm"): - config_args.append(f"--with-tm={self.spec['pbs'].prefix}") + if spec.satisfies("@develop"): + # https://github.com/openpmix/prrte/pull/2434 + config_args.append(f"--with-pbs={self.spec['pbs'].prefix}") + else: + config_args.append(f"--with-tm={self.spec['pbs'].prefix}") if spec.satisfies("schedulers=slurm"): config_args.append("--with-slurm") return config_args + + # ensure prrte prefix is set so that the FQP of mpirun is not required + # ref: https://github.com/openpmix/prrte/issues/2426#issuecomment-4261910023 + def setup_run_environment(self, env: EnvironmentModifications) -> None: + env.set("PRTE_PREFIX", self.spec.prefix) diff --git a/repos/spack_repo/builtin/packages/pruners_ninja/package.py b/repos/spack_repo/builtin/packages/pruners_ninja/package.py index 3802e1cd04a..9eec6ac0c1d 100644 --- a/repos/spack_repo/builtin/packages/pruners_ninja/package.py +++ b/repos/spack_repo/builtin/packages/pruners_ninja/package.py @@ -20,6 +20,7 @@ class PrunersNinja(AutotoolsPackage): license("GPL-3.0-or-later") version("master", branch="master") + version("1.0.2", sha256="7fea8832f08411d6922d459ad8008602b2b7d32d394dd4814c9365fcb31400e1") version("1.0.1", sha256="53df5c019054b60c68e63d3e249127f1d5f267a70539c8809fb42a8ddbfcb29b") version("1.0.0", sha256="f25c189783b57801f298dfff8770f42733a43f926668aceff4abd287b6e3a4d1") @@ -31,7 +32,7 @@ class PrunersNinja(AutotoolsPackage): depends_on("automake", type="build") depends_on("libtool", type="build") - patch("pruners-mutli-def-a-pr3-fix.patch") + patch("pruners-mutli-def-a-pr3-fix.patch", when="@:1.0.1") def flag_handler(self, name, flags): if name == "cflags": diff --git a/repos/spack_repo/builtin/packages/psblas/package.py b/repos/spack_repo/builtin/packages/psblas/package.py index 4b0cd8d9eea..7d5062acac5 100644 --- a/repos/spack_repo/builtin/packages/psblas/package.py +++ b/repos/spack_repo/builtin/packages/psblas/package.py @@ -15,7 +15,7 @@ class Psblas(AutotoolsPackage): # Url for your package's homepage here. homepage = "https://psctoolkit.github.io/" git = "https://github.com/sfilippone/psblas3.git" - url = "https://github.com/sfilippone/psblas3/archive/refs/tags/v3.9.0-rc1.tar.gz" + url = "https://github.com/sfilippone/psblas3/archive/refs/tags/v3.9.0.tar.gz" # List of GitHub accounts to notify when the package is updated. maintainers("cirdans-home", "sfilippone") @@ -23,12 +23,14 @@ class Psblas(AutotoolsPackage): # SPDX identifier of the project's license below. license("BSD-3-Clause", checked_by="cirdans-home") - version("development", branch="development") + version("develop", branch="development") version( - "3.9.0-rc1", - sha256="7a7091ce52582b6fc442e8793e36461be36c0947272ea803ad72736ec2d56da8", + "3.9.0", + sha256="ce523ed2d266fb6dc8723c45a2bcbf40a1c67b7ca61cd9408032a73af7cf8605", preferred=True, ) + version("3.9.0-rc3", sha256="7744b3a2cb5d2d3b90e740d905590ee9b8d69c02148dce10ee1b8dc7667e53b1") + version("3.9.0-rc1", sha256="7a7091ce52582b6fc442e8793e36461be36c0947272ea803ad72736ec2d56da8") version("3.8.1-2", sha256="285ddb7c9a793ea7ecb428d68cf23f4cc04f1c567631aa84bc2bedb65a3d1b0c") version("3.8.1", sha256="02e1f00e644426eb15eb08c735cf9c8ae692392f35c2cfe4f7474e1ab91575dc") version("3.8.0-2", sha256="86a76bb0987edddd4c10c810d7f18e13742aadc66ac14ad3679669809c1184fa") @@ -48,9 +50,7 @@ class Psblas(AutotoolsPackage): # MPI variant("mpi", default=True, description="Activates MPI support") # CUDA - variant( - "cuda", default=False, description="Activate CUDA support", when="@development,3.9.0-rc1" - ) + variant("cuda", default=False, description="Activate CUDA support", when="@3.9.0-rc1:") variant( "cudacc", default="70,75,80,86,89,90", @@ -63,19 +63,9 @@ class Psblas(AutotoolsPackage): # SuiteSparse: Enable AMD library support via SuiteSparse variant("amd", default=False, description="Activate AMD support via SuiteSparse") # OpenMP - variant( - "openmp", - default=False, - description="Activates OpenMP support", - when="@development,3.9.0-rc1", - ) + variant("openmp", default=False, description="Activates OpenMP support", when="@3.9.0-rc1:") # OpenACC support (requires GCC >= 14.2.0) - variant( - "openacc", - default=False, - description="Activate OpenACC support", - when="@development,3.9.0-rc1", - ) + variant("openacc", default=False, description="Activate OpenACC support", when="@3.9.0-rc1:") # Additional configure options variant("ccopt", default="none", description="Additional CCOPT flags") variant("cxxopt", default="none", description="Additional CXXOPT flags") @@ -173,7 +163,15 @@ def install(self, spec, prefix): make("install") def samples(self, spec, prefix): - with working_dir(prefix.samples.fileread): + fileread = prefix.samples.fileread + if spec.satisfies("@3.8.0-2:3.9.0-rc1"): + pargen = prefix.samples.pargen + elif spec.satisfies("@3.9.0-rc3:"): + pargen = prefix.samples.pdegen + else: + raise InstallError("Unsupported version layout") + + with working_dir(fileread): make() - with working_dir(prefix.samples.pargen): + with working_dir(pargen): make() diff --git a/repos/spack_repo/builtin/packages/pscmc/package.py b/repos/spack_repo/builtin/packages/pscmc/package.py index a301800d1be..c3e48816ae7 100644 --- a/repos/spack_repo/builtin/packages/pscmc/package.py +++ b/repos/spack_repo/builtin/packages/pscmc/package.py @@ -42,6 +42,6 @@ def build(self, spec, prefix): def install(self, spec, prefix): mkdir(prefix.source) - ln = which("ln") + ln = which("ln", required=True) ln("-s", prefix.source, prefix.bin) install_tree("./", prefix) diff --git a/repos/spack_repo/builtin/packages/psimd/package.py b/repos/spack_repo/builtin/packages/psimd/package.py index 9ffc5f99bf2..588b61cb041 100644 --- a/repos/spack_repo/builtin/packages/psimd/package.py +++ b/repos/spack_repo/builtin/packages/psimd/package.py @@ -21,5 +21,10 @@ class Psimd(CMakePackage): version("2018-09-06", commit="90a938f30ba414ada2f4b00674ee9631d7d85e19") # py-torch@1.0:1.4 version("2017-10-26", commit="4ac61b112252778b174575931c641bef661ab3cd") # py-torch@0.4 + depends_on("c", type="build") + depends_on("cxx", type="build") + generator("ninja") + + depends_on("c", type="build") depends_on("cmake@2.8.12:", type="build") diff --git a/repos/spack_repo/builtin/packages/psipred/package.py b/repos/spack_repo/builtin/packages/psipred/package.py index f56e282786c..3eff11614dd 100644 --- a/repos/spack_repo/builtin/packages/psipred/package.py +++ b/repos/spack_repo/builtin/packages/psipred/package.py @@ -20,12 +20,9 @@ class Psipred(MakefilePackage): version("4.02", sha256="b4009b6a5f8b76c6d60ac91c4a743512d844864cf015c492fb6d1dc0d092c467") - variant("blast-plus", default=False, description="Use blast-plus in place of blast-legacy") - depends_on("c", type="build") # generated - depends_on("blast-legacy", type="run", when="~blast-plus") - depends_on("blast-plus", type="run", when="+blast-plus") + depends_on("blast-plus", type="run") build_directory = "src" @@ -58,17 +55,10 @@ def configure(self): install_tree("data", prefix.data) # modify and install the relevant helper script examples mkdir(self.prefix.scripts) - if self.spec.satisfies("~blast-plus"): - script = FileFilter("runpsipred") - blast_location = self.spec["blast-legacy"].prefix.bin - else: # +blast-plus - script = FileFilter(join_path("BLAST+", "runpsipredplus")) - blast_location = self.spec["blast-plus"].prefix.bin + script = FileFilter(join_path("BLAST+", "runpsipredplus")) + blast_location = self.spec["blast-plus"].prefix.bin script.filter("set dbname .*", "set dbname = ") script.filter("set ncbidir .*", f"set ncbidir = {blast_location}") script.filter("set execdir .*", f"set execdir = {self.prefix.bin}") script.filter("set datadir .*", f"set datadir = {self.prefix.data}") - if self.spec.satisfies("~blast-plus"): - install("runpsipred", self.prefix.scripts) - else: # +blast-plus - install(join_path("BLAST+", "runpsipredplus"), self.prefix.scripts) + install(join_path("BLAST+", "runpsipredplus"), self.prefix.scripts) diff --git a/repos/spack_repo/builtin/packages/psrcat/package.py b/repos/spack_repo/builtin/packages/psrcat/package.py index 2a03406f43c..4ad70f062a1 100644 --- a/repos/spack_repo/builtin/packages/psrcat/package.py +++ b/repos/spack_repo/builtin/packages/psrcat/package.py @@ -20,7 +20,7 @@ class Psrcat(MakefilePackage): depends_on("c", type="build") # generated def build(self, spec, prefix): - makeit = which("./makeit") + makeit = which("./makeit", required=True) makeit() def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/pueue/package.py b/repos/spack_repo/builtin/packages/pueue/package.py new file mode 100644 index 00000000000..f1790c50449 --- /dev/null +++ b/repos/spack_repo/builtin/packages/pueue/package.py @@ -0,0 +1,44 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.cargo import CargoPackage + +from spack.package import * + + +class Pueue(CargoPackage): + """Pueue is a command-line task management tool for sequential and parallel execution of + long-running tasks.""" + + homepage = "https://github.com/Nukesor/pueue" + url = "https://github.com/Nukesor/pueue/archive/refs/tags/v4.0.1.tar.gz" + + maintainers("ebagrenrut") + + license("Apache-2.0 AND MIT") + + version("4.0.2", sha256="059ee9688cb8b1ce46284f5ad58de21911b6af50098d29598085d2b9dbd432ab") + version("4.0.1", sha256="7bbe552700041b2e9cd360b69c328d6932ad57d0e0a480a8992fab3a2737cdf8") + + depends_on("c", type="build") + depends_on("rust@1.85:", type="build") + + @property + def build_directory(self): + return f"{join_path(super().build_directory, self.name)}" + + @run_after("install") + def install_completions(self): + pueue = Executable(self.prefix.bin.pueue) + + bash_comp_path = bash_completion_path(self.prefix) + mkdirp(bash_comp_path) + pueue("completions", "bash", f"{bash_comp_path}") + + fish_comp_path = fish_completion_path(self.prefix) + mkdirp(fish_comp_path) + pueue("completions", "fish", f"{fish_comp_path}") + + zsh_comp_path = zsh_completion_path(self.prefix) + mkdirp(zsh_comp_path) + pueue("completions", "zsh", f"{zsh_comp_path}") diff --git a/repos/spack_repo/builtin/packages/pugixml/package.py b/repos/spack_repo/builtin/packages/pugixml/package.py index 5cae0847163..9e98ae7258f 100644 --- a/repos/spack_repo/builtin/packages/pugixml/package.py +++ b/repos/spack_repo/builtin/packages/pugixml/package.py @@ -16,6 +16,7 @@ class Pugixml(CMakePackage): license("MIT") + version("1.15", sha256="655ade57fa703fb421c2eb9a0113b5064bddb145d415dd1f88c79353d90d511a") version("1.14", sha256="2f10e276870c64b1db6809050a75e11a897a8d7456c4be5c6b2e35a11168a015") version("1.13", sha256="40c0b3914ec131485640fa57e55bf1136446026b41db91c1bef678186a12abbe") version("1.11.4", sha256="8ddf57b65fb860416979a3f0640c2ad45ddddbbafa82508ef0a0af3ce7061716") @@ -23,7 +24,8 @@ class Pugixml(CMakePackage): version("1.10", sha256="55f399fbb470942410d348584dc953bcaec926415d3462f471ef350f29b5870a") version("1.8.1", sha256="929c4657c207260f8cc28e5b788b7499dffdba60d83d59f55ea33d873d729cd4") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") variant("pic", default=True, description="Build position-independent code") variant("shared", default=True, description="Build shared libraries") diff --git a/repos/spack_repo/builtin/packages/puk/package.py b/repos/spack_repo/builtin/packages/puk/package.py new file mode 100644 index 00000000000..dc127296e0a --- /dev/null +++ b/repos/spack_repo/builtin/packages/puk/package.py @@ -0,0 +1,91 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Puk(AutotoolsPackage): + """Puk: Padico micro-kernel. + + Puk is the foundation module of PadicoTM. Its task is to manage + modules (loading, running and unloading). It comes with a powerful + component model used to assemble a communication stack. + """ + + homepage = "https://pm2.gitlabpages.inria.fr/" + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-2025-03-18.tar.gz" + list_url = "https://pm2.gitlabpages.inria.fr/releases/" + git = "https://gitlab.inria.fr/pm2/pm2.git" + + maintainers("a-denis") + license("GPL-2.0-or-later", checked_by="a-denis") + + def url_for_version(self, version): + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-{0}.tar.gz" + return url.format(version) + + version("master", branch="master") + version( + "2026-01-21", sha256="2cd40d7712d78c6c43c510c3ae2bdbc3d539800f6d3926730bddde396e953847" + ) + version( + "2025-03-18", sha256="2d0208809dd17bac4fd7e7f97b22e2240b925d8828b9ab5dc5f435e58ff97010" + ) + version( + "2024-11-21", sha256="76da169bbb9720a13be1f750480e1a7d6510830163878852876932639879d632" + ) + version( + "2024-07-12", sha256="ea9bb91b213950a52eb99d787110905d45ed02954ea9133596d690db5be0c31b" + ) + version( + "2022-05-31", sha256="afd19809a5a520a477ab596f951bbde3209868ab16febbc246592e8aed20c3ca" + ) + version( + "2021-05-21", sha256="6a207b032e623b8be0196a42dcaf4311bfe45ede2e044bd47611b6610c04c61e" + ) + + variant("optimize", default=True, description="Build in optimized mode") + variant("debug", default=False, description="Build in debug mode") + variant("trace", default=False, description="enable Puk traces") + variant("profile", default=False, description="enable Puk memory profiling") + variant("asan", default=False, description="Build with Address Sanitizer (ASAN)") + variant("builtin", default=False, description="Build all modules as builtin") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("autoconf@2.69:", type="build") + depends_on("pkgconfig", type="build") + depends_on("gmake", type="build") + + depends_on("bash") + depends_on("expat@2.1.0:") + depends_on("gdb", when="+debug", type=("build", "run")) + depends_on("valgrind", when="+debug", type=("build", "run")) + + conflicts("platform=darwin", msg="Darwin is not supported.") + conflicts("platform=windows", msg="Windows is not supported.") + conflicts("%gcc@:5", msg="Requires at least gcc 6.") + conflicts("%gcc@14:", when="@:2024-07-12", msg="Older release do not support gcc >= 14") + + configure_directory = "Puk" + build_directory = "build" + + def autoreconf(self, spec, prefix): + with working_dir(self.configure_directory): + Executable("./autogen.sh")() + + def configure_args(self): + config_args = [ + "--enable-lfqueue=nblfq", # use nblfq by default for production + "--without-simgrid", # no simgrid support with spack for now + ] + config_args += self.enable_or_disable("optimize") + config_args += self.enable_or_disable("debug") + config_args += self.enable_or_disable("asan") + config_args += self.enable_or_disable("trace") + config_args += self.enable_or_disable("profile") + config_args += self.enable_or_disable("builtin") + return config_args diff --git a/repos/spack_repo/builtin/packages/pukabi/package.py b/repos/spack_repo/builtin/packages/pukabi/package.py new file mode 100644 index 00000000000..e5697923bcf --- /dev/null +++ b/repos/spack_repo/builtin/packages/pukabi/package.py @@ -0,0 +1,93 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.packages.puk.package import Puk + +from spack.package import * + + +class Pukabi(AutotoolsPackage): + """PukABI: ABI manager for PadicoTM. + + PukABI is an ABI manager used by PadicoTM and NewMadeleine. It is + able to intercept symbols of the libc, so as to install a virtual + version or to add hooks. + """ + + homepage = "https://pm2.gitlabpages.inria.fr/" + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-2025-03-18.tar.gz" + list_url = "https://pm2.gitlabpages.inria.fr/releases/" + git = "https://gitlab.inria.fr/pm2/pm2.git" + + maintainers("a-denis") + license("GPL-2.0-or-later", checked_by="a-denis") + + def url_for_version(self, version): + url = "https://pm2.gitlabpages.inria.fr/releases/pm2-{0}.tar.gz" + return url.format(version) + + version("master", branch="master") + version( + "2026-01-21", sha256="2cd40d7712d78c6c43c510c3ae2bdbc3d539800f6d3926730bddde396e953847" + ) + version( + "2025-03-18", sha256="2d0208809dd17bac4fd7e7f97b22e2240b925d8828b9ab5dc5f435e58ff97010" + ) + version( + "2024-11-21", sha256="76da169bbb9720a13be1f750480e1a7d6510830163878852876932639879d632" + ) + version( + "2024-07-12", sha256="ea9bb91b213950a52eb99d787110905d45ed02954ea9133596d690db5be0c31b" + ) + version( + "2022-05-31", sha256="afd19809a5a520a477ab596f951bbde3209868ab16febbc246592e8aed20c3ca" + ) + version( + "2021-05-21", sha256="6a207b032e623b8be0196a42dcaf4311bfe45ede2e044bd47611b6610c04c61e" + ) + + variant("optimize", default=True, description="Build in optimized mode") + variant("debug", default=False, description="Build in debug mode") + variant("mem", default=True, description="intercept memory-related symbols") + variant("fsys", default=False, description="intercept filesystem-related symbols") + variant("proc", default=False, description="intercept process-related symbols") + variant("errno", default=False, description="intercept errno symbols") + variant("sleep", default=False, description="intercept sleep symbols") + variant("file", default=False, description="intercept FILE*-related symbols") + variant("resolv", default=False, description="intercept DNS resolver-related symbols") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("autoconf@2.69:", type="build") + depends_on("pkgconfig", type="build") + depends_on("gmake", type="build") + + for v in Puk.versions: + depends_on(f"puk@{v}", when=f"@{v}") + + conflicts("platform=darwin", msg="Darwin is not supported.") + conflicts("platform=windows", msg="Windows is not supported.") + conflicts("%gcc@:5", msg="Requires at least gcc 6.") + conflicts("%gcc@14:", when="@:2024-07-12", msg="Older release do not support gcc >= 14") + + configure_directory = "PukABI" + build_directory = "build" + + def autoreconf(self, spec, prefix): + with working_dir(self.configure_directory): + Executable("./autogen.sh")() + + def configure_args(self): + config_args = [] + config_args += self.enable_or_disable("optimize") + config_args += self.enable_or_disable("debug") + config_args += self.enable_or_disable("fsys") + config_args += self.enable_or_disable("proc") + config_args += self.enable_or_disable("mem") + config_args += self.enable_or_disable("errno") + config_args += self.enable_or_disable("sleep") + config_args += self.enable_or_disable("file") + config_args += self.enable_or_disable("resolv") + return config_args diff --git a/repos/spack_repo/builtin/packages/pulseaudio/atomic.patch b/repos/spack_repo/builtin/packages/pulseaudio/atomic.patch new file mode 100644 index 00000000000..39ca2fe86ef --- /dev/null +++ b/repos/spack_repo/builtin/packages/pulseaudio/atomic.patch @@ -0,0 +1,13 @@ +diff --git a/src/pulsecore/atomic.h b/src/pulsecore/atomic.h +index a82ca83c5cee..6d52858dc194 100644 +--- a/src/pulsecore/atomic.h ++++ b/src/pulsecore/atomic.h +@@ -117,7 +117,7 @@ static inline void* pa_atomic_ptr_load(const pa_atomic_ptr_t *a) { + } + + static inline void pa_atomic_ptr_store(pa_atomic_ptr_t *a, void* p) { +- __atomic_store_n(&a->value, p, __ATOMIC_SEQ_CST); ++ __atomic_store_n(&a->value, (unsigned long)(p), __ATOMIC_SEQ_CST); + } + + #else diff --git a/repos/spack_repo/builtin/packages/pulseaudio/package.py b/repos/spack_repo/builtin/packages/pulseaudio/package.py index 157904a4cbe..435d80e8b4d 100644 --- a/repos/spack_repo/builtin/packages/pulseaudio/package.py +++ b/repos/spack_repo/builtin/packages/pulseaudio/package.py @@ -2,12 +2,14 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems import autotools, meson from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.build_systems.meson import MesonPackage from spack.package import * -class Pulseaudio(AutotoolsPackage): +class Pulseaudio(AutotoolsPackage, MesonPackage): """PulseAudio is a sound system for POSIX OSes, meaning that it is a proxy for your sound applications. @@ -19,20 +21,31 @@ class Pulseaudio(AutotoolsPackage): achieved using a sound server.""" homepage = "https://www.freedesktop.org/wiki/Software/PulseAudio/" - url = "https://freedesktop.org/software/pulseaudio/releases/pulseaudio-13.0.tar.xz" + url = "https://freedesktop.org/software/pulseaudio/releases/pulseaudio-17.0.tar.xz" license("LGPL-2.1-or-later") + build_system( + conditional("autotools", when="@:16"), conditional("meson", when="@17:"), default="meson" + ) + + version("17.0", sha256="053794d6671a3e397d849e478a80b82a63cb9d8ca296bd35b73317bb5ceb87b5") version("13.0", sha256="961b23ca1acfd28f2bc87414c27bb40e12436efcf2158d29721b1e89f3f28057") variant("alsa", default=False, description="alsa support") variant("fftw", default=False, description="FFTW support") - variant("gconf", default=False, description="Gconf support") variant("openssl", default=False, description="openSSL support (used for Airtunes/RAOP)") variant("x11", default=False, description="x11 support") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + with when("build_system=autotools"): + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + with when("build_system=meson"): + depends_on("meson", type="build") + depends_on("gettext", type="build") depends_on("alsa-lib@1.0.19:", when="+alsa") depends_on("dbus@1.4.12:") @@ -40,7 +53,6 @@ class Pulseaudio(AutotoolsPackage): depends_on("gdbm") depends_on("gettext@0.18.1:") depends_on("glib") - depends_on("gconf", when="+gconf") depends_on("json-c@0.11:") depends_on("libcap") depends_on("iconv") @@ -60,6 +72,18 @@ class Pulseaudio(AutotoolsPackage): depends_on("speexdsp@1.2:") depends_on("m4", type="build") + patch("atomic.patch", when="@13") + + +class SetupEnvironment: + def setup_build_environment(self, env: EnvironmentModifications) -> None: + env.append_flags("LDFLAGS", "-Wl,--copy-dt-needed-entries") + if self.spec.satisfies("build_system=meson"): + env.append_flags("CPPFLAGS", "-I{0}".format(self.spec["libiconv"].prefix.include)) + env.append_flags("LDFLAGS", "-L{0} -liconv".format(self.spec["libiconv"].prefix.lib)) + + +class AutotoolsBuilder(autotools.AutotoolsBuilder, SetupEnvironment): def configure_args(self): args = [ "--disable-systemd-daemon", @@ -71,13 +95,12 @@ def configure_args(self): "--enable-glib2", "--with-database=gdbm", "--with-systemduserunitdir=no", - "CPPFLAGS={0}".format(self.spec["libtool"].headers.cpp_flags), + "CXXFLAGS={0}".format(self.spec["libtool"].headers.cpp_flags), "LDFLAGS={0}".format(self.spec["libtool"].libs.search_flags), + "--libdir={0}".format(self.prefix.lib), ] - # toggle based on variants args += self.enable_or_disable("alsa") - args += self.enable_or_disable("gconf") args += self.enable_or_disable("openssl") args += self.enable_or_disable("x11") args += self.with_or_without("fftw") @@ -100,3 +123,20 @@ def configure_args(self): ) return args + + +class MesonBuilder(meson.MesonBuilder, SetupEnvironment): + def meson_args(self): + return [ + "-Ddatabase=gdbm", + "-Ddoxygen=false", + "-Dbluez5=disabled", + "-Dx11=disabled", + "-Dtests=false", + "-Ddefault_library=shared", + "-Dprefix={0}".format(self.prefix), + "-Dlibdir={0}".format(self.prefix.lib), + "-Dbashcompletiondir={0}/share/bash-completion/completions".format(self.prefix), + "-Dsystemduserunitdir={0}systemd/user".format(self.prefix.lib), + "-Dudevrulesdir={0}udev/rules.d".format(self.prefix.lib), + ] diff --git a/repos/spack_repo/builtin/packages/pumgen/package.py b/repos/spack_repo/builtin/packages/pumgen/package.py index 83247b884e2..ee84a9d50e1 100644 --- a/repos/spack_repo/builtin/packages/pumgen/package.py +++ b/repos/spack_repo/builtin/packages/pumgen/package.py @@ -15,6 +15,9 @@ class Pumgen(CMakePackage): git = "https://github.com/SeisSol/PUMGen.git" version("master", branch="master", submodules=True) + version( + "1.1.3", tag="v1.1.3", commit="6518bc6269a847b1d947f095eb04ec73af43ede0", submodules=True + ) version( "1.1.1", tag="v1.1.1", commit="ad3d0f22edfdb72713ef7bb42a41251fa7275bd8", submodules=True ) diff --git a/repos/spack_repo/builtin/packages/pumi/package.py b/repos/spack_repo/builtin/packages/pumi/package.py index 7ebd29ab2dc..aa630a18aeb 100644 --- a/repos/spack_repo/builtin/packages/pumi/package.py +++ b/repos/spack_repo/builtin/packages/pumi/package.py @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os + from spack_repo.builtin.build_systems.cmake import CMakePackage from spack.package import * @@ -129,9 +131,18 @@ def test_partition(self): "pipe_2_.smb", "2", ] - exe = which(self.spec["mpi"].prefix.bin.mpiexec) - out = exe(*options, output=str.split, error=str.split) - assert "mesh pipe_2_.smb written" in out + mpiexe_list = ["mpirun", "mpiexec", "srun"] + for mpiexe in mpiexe_list: + tty.info(f"Attempting to build and launch with {os.path.basename(mpiexe)}") + try: + options = ["--immediate=30"] + options if mpiexe == "srun" else options + exe = which(mpiexe, required=True) + out = exe(*options, output=str.split, error=str.split) + assert "mesh pipe_2_.smb written" in out + return + except (Exception, ProcessError) as err: + tty.info(f"Skipping {mpiexe}: {str(err)}") + assert False, "No MPI executable was found" def test_refine(self): """Testing pumi uniform mesh refinement""" @@ -143,6 +154,6 @@ def test_refine(self): join_path(self.prefix.share.testdata, "pipe.smb"), "pipe_unif.smb", ] - exe = which(self.prefix.bin.uniform) + exe = which(self.prefix.bin.uniform, required=True) out = exe(*options, output=str.split, error=str.split) assert "mesh pipe_unif.smb written" in out diff --git a/repos/spack_repo/builtin/packages/py_accelerate/package.py b/repos/spack_repo/builtin/packages/py_accelerate/package.py index 46e0df67d65..ffcce35a022 100644 --- a/repos/spack_repo/builtin/packages/py_accelerate/package.py +++ b/repos/spack_repo/builtin/packages/py_accelerate/package.py @@ -17,14 +17,27 @@ class PyAccelerate(PythonPackage): license("Apache-2.0") + version("1.12.0", sha256="70988c352feb481887077d2ab845125024b2a137a5090d6d7a32b57d03a45df6") + version("1.10.1", sha256="3dea89e433420e4bfac0369cae7e36dcd6a56adfcfd38cdda145c6225eab5df8") version("0.21.0", sha256="e2959a0bf74d97c0b3c0e036ed96065142a060242281d27970d4c4e34f11ca59") version("0.16.0", sha256="d13e30f3e6debfb46cada7b931af85560619b6a6a839d0cafeeab6ed7c6a498d") - depends_on("python@3.8.0:", when="@0.21.0:", type=("build", "run")) + depends_on("python@3.8:", when="@0.21:", type=("build", "run")) + depends_on("python@3.9:", when="@1.10.1:", type=("build", "run")) + depends_on("python@3.10:", when="@1.12:", type=("build", "run")) + depends_on("py-setuptools", type="build") - depends_on("py-numpy@1.17:", type=("build", "run")) + + depends_on("py-numpy@1.17:2", when="@:1.10.1", type=("build", "run")) + depends_on("py-numpy@1.17:", when="@1.12:", type=("build", "run")) + depends_on("py-packaging@20:", type=("build", "run")) depends_on("py-psutil", type=("build", "run")) depends_on("py-pyyaml", type=("build", "run")) - depends_on("py-torch@1.10.0:", when="@0.21.0:", type=("build", "run")) + depends_on("py-torch@1.4:", type=("build", "run")) + depends_on("py-torch@1.10:", when="@0.21:", type=("build", "run")) + depends_on("py-torch@2:", when="@1.10.1:", type=("build", "run")) + + depends_on("py-huggingface-hub@0.21:", when="@1.10.1:", type=("build", "run")) + depends_on("py-safetensors@0.4.3:", when="@1.10.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_accessible_pygments/package.py b/repos/spack_repo/builtin/packages/py_accessible_pygments/package.py index a921930432b..d6eff566caf 100644 --- a/repos/spack_repo/builtin/packages/py_accessible_pygments/package.py +++ b/repos/spack_repo/builtin/packages/py_accessible_pygments/package.py @@ -16,7 +16,22 @@ class PyAccessiblePygments(PythonPackage): license("BSD-3-Clause") + version("0.0.5", sha256="40918d3e6a2b619ad424cb91e556bd3bd8865443d9f22f1dcdf79e33c8046872") version("0.0.4", sha256="e7b57a9b15958e9601c7e9eb07a440c813283545a20973f2574a5f453d0e953e") + depends_on("python@3.9:", type=("build", "run"), when="@0.0.5:") depends_on("py-pygments@1.5:", type=("build", "run")) - depends_on("py-setuptools", type=("build")) + depends_on("py-setuptools", type="build", when="@:0.0.4") + depends_on("py-hatchling", type="build", when="@0.0.5:") + depends_on("py-hatch-fancy-pypi-readme", type="build", when="@0.0.5:") + depends_on("py-hatch-vcs", type="build", when="@0.0.5:") + + def url_for_version(self, version): + url = ( + "https://pypi.org/packages/source/a/accessible-pygments/accessible{}pygments-{}.tar.gz" + ) + if version < Version("0.0.5"): + separator = "-" + else: + separator = "_" + return url.format(separator, version) diff --git a/repos/spack_repo/builtin/packages/py_accimage/package.py b/repos/spack_repo/builtin/packages/py_accimage/package.py index 4146d77178c..b3fa1f4c47d 100644 --- a/repos/spack_repo/builtin/packages/py_accimage/package.py +++ b/repos/spack_repo/builtin/packages/py_accimage/package.py @@ -35,5 +35,5 @@ class PyAccimage(PythonPackage): @run_after("install") @on_package_attributes(run_tests=True) def build_test(self): - pytest = which("pytest") + pytest = which("pytest", required=True) pytest("test.py") diff --git a/repos/spack_repo/builtin/packages/py_acres/package.py b/repos/spack_repo/builtin/packages/py_acres/package.py new file mode 100644 index 00000000000..253f2487501 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_acres/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 PyAcres(PythonPackage): + """Access resources on your terms.""" + + homepage = "https://github.com/nipreps/acres" + pypi = "acres/acres-0.5.0.tar.gz" + + license("Apache-2.0") + + version("0.5.0", sha256="128b6447bf5df3b6210264feccbfa018b4ac5bd337358319aec6563f99db8f3a") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-pdm-backend", type="build") + + depends_on("py-importlib-resources@5.7:", when="^python@:3.9", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_addict/package.py b/repos/spack_repo/builtin/packages/py_addict/package.py index a08c382e912..868b5a03bc6 100644 --- a/repos/spack_repo/builtin/packages/py_addict/package.py +++ b/repos/spack_repo/builtin/packages/py_addict/package.py @@ -17,6 +17,7 @@ class PyAddict(PythonPackage): license("MIT") + version("2.4.0", sha256="8eb5674667e39549e7e5534b98d7c942ec4a4195b76bdb748739eac5d3861bc1") version("2.2.1", sha256="398bba9e7fa25e2ce144c5c4b8ec6208e89b9445869403dfa88ab66ec110fa12") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_adios/package.py b/repos/spack_repo/builtin/packages/py_adios/package.py index 84018a4ce25..1d607c6803c 100644 --- a/repos/spack_repo/builtin/packages/py_adios/package.py +++ b/repos/spack_repo/builtin/packages/py_adios/package.py @@ -29,18 +29,18 @@ class PyAdios(PythonPackage): for v in ["1.13.1", "develop"]: depends_on( - "adios@{0} ~mpi".format(v), when="@{0} ~mpi".format(v), type=["build", "link", "run"] + "adios@{0} ~mpi".format(v), when="@{0} ~mpi".format(v), type=("build", "link", "run") ) depends_on( - "adios@{0} +mpi".format(v), when="@{0} +mpi".format(v), type=["build", "link", "run"] + "adios@{0} +mpi".format(v), when="@{0} +mpi".format(v), type=("build", "link", "run") ) # pip silently replaces distutils with setuptools depends_on("py-setuptools", type="build") - depends_on("py-numpy", type=["build", "run"]) + depends_on("py-numpy", type=("build", "run")) depends_on("mpi", when="+mpi") - depends_on("py-mpi4py", type=["run"], when="+mpi") - depends_on("py-cython", type=["build"]) + depends_on("py-mpi4py", type="run", when="+mpi") + depends_on("py-cython", type="build") depends_on("gmake", type="build") build_directory = "wrappers/numpy" diff --git a/repos/spack_repo/builtin/packages/py_adios4dolfinx/package.py b/repos/spack_repo/builtin/packages/py_adios4dolfinx/package.py new file mode 100644 index 00000000000..bc797118268 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_adios4dolfinx/package.py @@ -0,0 +1,41 @@ +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyAdios4dolfinx(PythonPackage): + """Python interface for IO for py-fenics-dolfinx using adios2""" + + homepage = "https://www.jsdokken.com/adios4dolfinx" + + url = "https://github.com/jorgensd/adios4dolfinx/archive/v0.9.4.tar.gz" + git = "https://github.com/jorgensd/adios4dolfinx.git" + + maintainers("jorgensd") + + license("MIT", checked_by="jorgensd") + + version("main", branch="main") + version("0.9.4", sha256="1d75d4f45f28c64821ad023df3273d933f1d4752c0e53b62f41030dca06bd627") + version("0.9.3", sha256="0928f48dcc2ffaf5c97d3b2fedde6c4d79b2cbc5a3e2dbe0a0d50572c02590f5") + version("0.9.2", sha256="a1b111a586ba8af6776e05d001850fdfc196cbc173eb501c8c1659ade993f49c") + version( + "0.9.1.post0", sha256="91a957bc967c1a3b0a454a5b8658600c38a38535c90b0c8b31bc0f52841c07fd" + ) + version("0.9.1", sha256="4dfd8ea3d8d21566adc40a3615830e5613d215e774e7f30de6d8c88b2078b549") + version("0.9.0", sha256="5a72a8bc111d848b56d6eb776d7ca5963fe41e4126a3d875304224f80f15b8f6") + + depends_on("py-packaging", type="run") + + depends_on("python@3.9:", type=("build", "run")) + + depends_on("py-scikit-build-core+pyproject@0.10:", type="build") + depends_on("py-setuptools@42:", type="build") + + depends_on("py-fenics-dolfinx@main", when="@main") + depends_on("py-fenics-dolfinx@0.9.0", when="@0.9") + + depends_on("adios2+python+hdf5+mpi", type="run") + + depends_on("py-pytest", type="test") + depends_on("py-ipyparallel", type="test") diff --git a/repos/spack_repo/builtin/packages/py_advancedhtmlparser/package.py b/repos/spack_repo/builtin/packages/py_advancedhtmlparser/package.py index 5620d951efd..5f1f55c206a 100644 --- a/repos/spack_repo/builtin/packages/py_advancedhtmlparser/package.py +++ b/repos/spack_repo/builtin/packages/py_advancedhtmlparser/package.py @@ -17,6 +17,7 @@ class PyAdvancedhtmlparser(PythonPackage): license("LGPL-3.0-or-later") + version("9.0.2", sha256="837d17dadaa8eef87bf5773f05b5ddaceb76183b3dc13671e5550adf177f5465") version("9.0.1", sha256="1b7f632ca4c61fca50ee896c84112b97915c07d5b25b9527aefe7cbad8458837") version("8.1.4", sha256="21a73137026c8ec3248c654a24cc40064196029256cdf71681149f6835e9ed39") diff --git a/repos/spack_repo/builtin/packages/py_aenum/package.py b/repos/spack_repo/builtin/packages/py_aenum/package.py index 2cac82b138b..cd375c9aefd 100644 --- a/repos/spack_repo/builtin/packages/py_aenum/package.py +++ b/repos/spack_repo/builtin/packages/py_aenum/package.py @@ -14,6 +14,7 @@ class PyAenum(PythonPackage): homepage = "https://github.com/ethanfurman/aenum" pypi = "aenum/aenum-2.1.2.tar.gz" + version("3.1.16", sha256="bfaf9589bdb418ee3a986d85750c7318d9d2839c1b1a1d6fe8fc53ec201cf140") version("3.1.12", sha256="3e531c91860a81f885f7e6e97d219ae9772cb899580084788935dad7d9742ef0") version("2.1.2", sha256="a3208e4b28db3a7b232ff69b934aef2ea1bf27286d9978e1e597d46f490e4687") diff --git a/repos/spack_repo/builtin/packages/py_affine/package.py b/repos/spack_repo/builtin/packages/py_affine/package.py index 37d509d2e28..49c7c420084 100644 --- a/repos/spack_repo/builtin/packages/py_affine/package.py +++ b/repos/spack_repo/builtin/packages/py_affine/package.py @@ -17,4 +17,6 @@ class PyAffine(PythonPackage): license("BSD-3-Clause") + version("2.3.1", sha256="78384c197c6d87d79eb94bf07c64e38491e53bc2ba54f9973b6469d0e574ea92") + version("2.2.2", sha256="b6560b93f2f613c9d4730ac120b25b942cc577fb7c074efe32090f40f72ce645") version("2.1.0", sha256="b67b7dee9a9865185a931758a3e347ad8583d0ac985895b90985a477ccfa4745") diff --git a/repos/spack_repo/builtin/packages/py_aiohttp/package.py b/repos/spack_repo/builtin/packages/py_aiohttp/package.py index 1e9c856c652..0670f75ceec 100644 --- a/repos/spack_repo/builtin/packages/py_aiohttp/package.py +++ b/repos/spack_repo/builtin/packages/py_aiohttp/package.py @@ -17,42 +17,67 @@ class PyAiohttp(PythonPackage): homepage = "https://github.com/aio-libs/aiohttp" pypi = "aiohttp/aiohttp-3.8.1.tar.gz" - license("Apache-2.0") + license("Apache-2.0 AND MIT", when="@3.13:") + license("Apache-2.0", when="@:3.12") - version("3.11.16", sha256="16f8a2c9538c14a557b4d309ed4d0a7c60f0253e8ed7b6c9a2859a7582f8b1b8") - version("3.9.5", sha256="edea7d15772ceeb29db4aff55e482d4bcfb6ae160ce144f2682de02f6d693551") - version("3.9.4", sha256="6ff71ede6d9a5a58cfb7b6fffc83ab5d4a63138276c771ac91ceaaddf5459644") - version("3.9.0", sha256="09f23292d29135025e19e8ff4f0a68df078fe4ee013bca0105b2e803989de92d") - version("3.8.4", sha256="bf2e1a9162c1e441bf805a1fd166e249d574ca04e03b34f97e2928769e91ab5c") - version("3.8.1", sha256="fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578") - version("3.8.0", sha256="d3b19d8d183bcfd68b25beebab8dc3308282fe2ca3d6ea3cb4cd101b3c279f8d") - version("3.7.4", sha256="5d84ecc73141d0a0d61ece0742bb7ff5751b0657dab8405f899d3ceb104cc7de") - version("3.6.2", sha256="259ab809ff0727d0e834ac5e8a283dc5e3e0ecc30c4d80b3cd17a4139ce1f326") + version("3.13.5", sha256="9d98cc980ecc96be6eb4c1994ce35d28d8b1f5e5208a23b421187d1209dbb7d1") + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2025-69230/ + # https://www.cvedetails.com/cve/CVE-2025-69229/ + # https://www.cvedetails.com/cve/CVE-2025-69228/ + # https://www.cvedetails.com/cve/CVE-2025-69227/ + # https://www.cvedetails.com/cve/CVE-2025-69226/ + # https://www.cvedetails.com/cve/CVE-2025-69225/ + # https://www.cvedetails.com/cve/CVE-2025-69224/ + # https://www.cvedetails.com/cve/CVE-2025-69223/ + version( + "3.12.15", sha256="4fc61385e9c98d72fcdf47e6dd81833f47b2f77c114c29cd64a361be57a763a2" + ) + # https://www.cvedetails.com/cve/CVE-2025-53643/ + version( + "3.11.16", sha256="16f8a2c9538c14a557b4d309ed4d0a7c60f0253e8ed7b6c9a2859a7582f8b1b8" + ) + # https://www.cvedetails.com/cve/CVE-2024-52304/ + # https://www.cvedetails.com/cve/CVE-2024-52303/ + # https://www.cvedetails.com/cve/CVE-2024-42367/ + version("3.9.5", sha256="edea7d15772ceeb29db4aff55e482d4bcfb6ae160ce144f2682de02f6d693551") + version("3.9.4", sha256="6ff71ede6d9a5a58cfb7b6fffc83ab5d4a63138276c771ac91ceaaddf5459644") + # https://www.cvedetails.com/cve/CVE-2024-30251/ + # https://www.cvedetails.com/cve/CVE-2024-27306/ + # https://www.cvedetails.com/cve/CVE-2024-23829/ + # https://www.cvedetails.com/cve/CVE-2024-23334/ + version("3.9.0", sha256="09f23292d29135025e19e8ff4f0a68df078fe4ee013bca0105b2e803989de92d") + # https://www.cvedetails.com/cve/CVE-2023-49081/ + # https://www.cvedetails.com/cve/CVE-2023-47627/ + # https://www.cvedetails.com/cve/CVE-2023-37276/ + version("3.8.4", sha256="bf2e1a9162c1e441bf805a1fd166e249d574ca04e03b34f97e2928769e91ab5c") + version("3.8.1", sha256="fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578") + version("3.8.0", sha256="d3b19d8d183bcfd68b25beebab8dc3308282fe2ca3d6ea3cb4cd101b3c279f8d") + # https://www.cvedetails.com/cve/CVE-2023-37276/ + version("3.7.4", sha256="5d84ecc73141d0a0d61ece0742bb7ff5751b0657dab8405f899d3ceb104cc7de") - depends_on("c", type="build") # generated - - depends_on("python@3.9:", when="@3.11:") - depends_on("python@3.8:", when="@3.9:") - depends_on("py-setuptools@46.4:", type="build") + with default_args(type="build"): + depends_on("c") + depends_on("pkgconfig", when="@3.12:") + depends_on("py-setuptools@67:", when="@3.13.1:") + depends_on("py-setuptools@46.4:") with default_args(type=("build", "run")): + depends_on("py-aiohappyeyeballs@2.5:", when="@3.12:") depends_on("py-aiohappyeyeballs@2.3:", when="@3.10:") - depends_on("py-propcache@0.2.0:", when="@3.11:") - depends_on("py-attrs@17.3.0:") - depends_on("py-charset-normalizer@2:3", when="@3.8.4:") - depends_on("py-charset-normalizer@2", when="@3.8.0:3.8.3") - depends_on("py-multidict@4.5:6", when="@3.6.3:") - depends_on("py-multidict@4.5:4", when="@:3.6.2") - depends_on("py-async-timeout@4:", when="@3.8.0 ^python@:3.10") + depends_on("py-aiosignal@1.4.0:", when="@3.12:") + depends_on("py-aiosignal@1.1.2:", when="@3.8.1:") + depends_on("py-async-timeout@4:5", when="@3.8: ^python@:3.10") depends_on("py-async-timeout@3", when="@:3.7.4 ^python@:3.10") - depends_on("py-asynctest@0.13.0", when="@3.8.0: ^python@:3.7") - depends_on("py-yarl@1.17:", when="@3.11:") - depends_on("py-yarl@1") - depends_on("py-typing-extensions@3.7.4:", when="@3.8: ^python@:3.7") - depends_on("py-typing-extensions@3.6.5:", when="@3.7") - depends_on("py-typing-extensions@3.6.5:", when="@:3.6 ^python@:3.7") + depends_on("py-attrs@17.3:") depends_on("py-frozenlist@1.1.1:", when="@3.8.1:") - depends_on("py-aiosignal@1.1.2:", when="@3.8.1:") + depends_on("py-multidict@4.5:6", when="@3.6.3:") + depends_on("py-propcache@0.2:", when="@3.11:") + depends_on("py-yarl@1.17:1", when="@3.11:") + depends_on("py-yarl@1") - # Historical dependencies - depends_on("py-chardet@2.0:3", when="@:3.7", type=("build", "run")) + # Historical dependencies + depends_on("py-chardet@2.0:3", when="@:3.7") + depends_on("py-charset-normalizer@2:3", when="@3.8.4:3.12") + depends_on("py-charset-normalizer@2", when="@3.8.0:3.8.3") + depends_on("py-typing-extensions@3.6.5:", when="@3.7") diff --git a/repos/spack_repo/builtin/packages/py_aiosignal/package.py b/repos/spack_repo/builtin/packages/py_aiosignal/package.py index 1b817a0d9c0..d7a9387377d 100644 --- a/repos/spack_repo/builtin/packages/py_aiosignal/package.py +++ b/repos/spack_repo/builtin/packages/py_aiosignal/package.py @@ -16,8 +16,10 @@ class PyAiosignal(PythonPackage): license("Apache-2.0") + version("1.4.0", sha256="f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7") version("1.2.0", sha256="78ed67db6c7b7ced4f98e495e572106d5c432a93e1ddd1bf475e1dc05f5b7df2") + depends_on("python@3.9:", type=("build", "run"), when="@1.4:") depends_on("python@3.6:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-frozenlist@1.1.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_aiowebdav2/package.py b/repos/spack_repo/builtin/packages/py_aiowebdav2/package.py new file mode 100644 index 00000000000..71981ec18db --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_aiowebdav2/package.py @@ -0,0 +1,33 @@ +# 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 PyAiowebdav2(PythonPackage): + """Async Python 3 client for WebDAV.""" + + homepage = "https://github.com/jpbede/aiowebdav2" + pypi = "aiowebdav2/aiowebdav2-0.6.2.tar.gz" + git = "https://github.com/jpbede/aiowebdav2.git" + + maintainers("wdconinc") + + license("MIT", checked_by="wdconinc") + + version("0.6.2", sha256="4ac816ec82d2b5ca012e188e066f8d430be663593e908743e1290a4b41964d93") + + depends_on("python@3.11:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-hatchling") + + with default_args(type=("build", "run")): + depends_on("py-aiohttp@3.8:") + depends_on("py-aiofiles@0.7:") + depends_on("py-lxml@5.3:") + depends_on("py-python-dateutil@2.9.0.post0:") + depends_on("py-yarl@1.18.3:") diff --git a/repos/spack_repo/builtin/packages/py_alabaster/package.py b/repos/spack_repo/builtin/packages/py_alabaster/package.py index 922c4d8b989..8219de0ed43 100644 --- a/repos/spack_repo/builtin/packages/py_alabaster/package.py +++ b/repos/spack_repo/builtin/packages/py_alabaster/package.py @@ -15,12 +15,16 @@ class PyAlabaster(PythonPackage): pypi = "alabaster/alabaster-0.7.10.tar.gz" git = "https://github.com/sphinx-doc/alabaster.git" + license("BSD-3-Clause") + + version("1.0.0", sha256="c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e") version("0.7.16", sha256="75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65") version("0.7.13", sha256="a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2") version("0.7.12", sha256="a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02") version("0.7.10", sha256="37cdcb9e9954ed60912ebc1ca12a9d12178c26637abdf124e3cde2341c257fe0") version("0.7.9", sha256="47afd43b08a4ecaa45e3496e139a193ce364571e7e10c6a87ca1a4c57eb7ea08") + depends_on("python@3.10:", when="@1:", type=("build", "run")) depends_on("python@3.9:", when="@0.7.16:", type=("build", "run")) depends_on("py-flit-core@3.7:", when="@0.7.16:", type="build") depends_on("py-setuptools", when="@:0.7.13", type="build") diff --git a/repos/spack_repo/builtin/packages/py_albucore/package.py b/repos/spack_repo/builtin/packages/py_albucore/package.py new file mode 100644 index 00000000000..f3ecd001517 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_albucore/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyAlbucore(PythonPackage): + """High-performance image processing functions for deep learning and computer vision.""" + + homepage = "https://github.com/albumentations-team/albucore" + pypi = "albucore/albucore-0.0.24.tar.gz" + + license("MIT") + + version("0.0.24", sha256="f2cab5431fadf94abf87fd0c89d9f59046e49fe5de34afea8f89bc8390253746") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-setuptools@45:", type="build") + depends_on("py-numpy@1.24.4:", type=("build", "run")) + depends_on("py-typing-extensions@4.9:", type=("build", "run"), when="^python@:3.9") + depends_on("py-stringzilla@3.10.4:", type=("build", "run")) + depends_on("py-simsimd@5.9.2:", type=("build", "run")) + depends_on("opencv@4.9.0.80:+python3+contrib", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_alembic/package.py b/repos/spack_repo/builtin/packages/py_alembic/package.py index 92b8c30ebba..98a4bc48db2 100644 --- a/repos/spack_repo/builtin/packages/py_alembic/package.py +++ b/repos/spack_repo/builtin/packages/py_alembic/package.py @@ -14,13 +14,22 @@ class PyAlembic(PythonPackage): license("MIT") + version("1.16.5", sha256="a88bb7f6e513bd4301ecf4c7f2206fe93f9913f9b48dac3b78babde2d6fe765e") version("1.5.5", sha256="df0028c19275a2cff137e39617a39cdcdbd1173733b87b6bfa257b7c0860213b") version("1.0.7", sha256="16505782b229007ae905ef9e0ae6e880fddafa406f086ac7d442c1aaf712f8c2") depends_on("python@2.7:2.8,3.6:", type=("build", "run")) + depends_on("python@3.9:", type=("build", "run"), when="@1.15:") + depends_on("py-setuptools", type="build") + depends_on("py-setuptools@77.0.3:", type="build", when="@1.16:") + + depends_on("py-sqlalchemy@1.4.0:", type=("build", "run"), when="@1.16:") depends_on("py-sqlalchemy@1.3.0:", type=("build", "run"), when="@1.5:") depends_on("py-sqlalchemy@1.1.0:", type=("build", "run"), when="@:1.4") depends_on("py-mako", type=("build", "run")) - depends_on("py-python-dateutil", type=("build", "run")) - depends_on("py-python-editor@0.3:", type=("build", "run")) + depends_on("py-typing-extensions@4.12:", type=("build", "run"), when="@1.16:") + depends_on("py-tomli", type=("build", "run"), when="@1.16: ^python@:3.10") + + depends_on("py-python-dateutil", type=("build", "run"), when="@:1.5") + depends_on("py-python-editor@0.3:", type=("build", "run"), when="@:1.5") diff --git a/repos/spack_repo/builtin/packages/py_altair/package.py b/repos/spack_repo/builtin/packages/py_altair/package.py index 7f565ff533d..a1894813912 100644 --- a/repos/spack_repo/builtin/packages/py_altair/package.py +++ b/repos/spack_repo/builtin/packages/py_altair/package.py @@ -14,6 +14,7 @@ class PyAltair(PythonPackage): license("BSD-3-Clause") + version("5.5.0", sha256="d960ebe6178c56de3855a68c47b516be38640b73fb3b5111c2a9ca90546dd73d") version("5.4.1", sha256="0ce8c2e66546cb327e5f2d7572ec0e7c6feece816203215613962f0ec1d76a82") version("5.2.0", sha256="2ad7f0c8010ebbc46319cc30febfb8e59ccf84969a201541c207bc3a4fa6cf81") version("5.1.2", sha256="e5f52a71853a607c61ce93ad4a414b3d486cd0d46ac597a24ae8bd1ac99dd460") @@ -30,6 +31,8 @@ class PyAltair(PythonPackage): conflicts("~pandas", when="@:5.3.0") depends_on("python@3.7:", type=("build", "run")) + depends_on("python@:3.12", type=("build", "run"), when="@:5.4.1") + depends_on("py-setuptools@40.6:", type="build", when="@:4") depends_on("py-entrypoints", type=("build", "run"), when="@2.0.0:4") diff --git a/repos/spack_repo/builtin/packages/py_altgraph/package.py b/repos/spack_repo/builtin/packages/py_altgraph/package.py index 381d6dd458e..1e13d98402b 100644 --- a/repos/spack_repo/builtin/packages/py_altgraph/package.py +++ b/repos/spack_repo/builtin/packages/py_altgraph/package.py @@ -18,6 +18,7 @@ class PyAltgraph(PythonPackage): license("MIT") + version("0.17.5", sha256="c87b395dd12fabde9c99573a9749d67da8d29ef9de0125c7f536699b4a9bc9e7") version("0.16.1", sha256="ddf5320017147ba7b810198e0b6619bd7b5563aa034da388cea8546b877f9b0c") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_ampltools/package.py b/repos/spack_repo/builtin/packages/py_ampltools/package.py index 6681d4c5a8d..53ffe837587 100644 --- a/repos/spack_repo/builtin/packages/py_ampltools/package.py +++ b/repos/spack_repo/builtin/packages/py_ampltools/package.py @@ -16,6 +16,7 @@ class PyAmpltools(PythonPackage): license("BSD-3-Clause") + version("0.7.5", sha256="df43fffd2d263a24fc95297bc56a62a6ab18248f86496b46eba2998fd1431af3") version("0.4.6", sha256="d54b399c1d78d02e3f4023aa2335b57832deb7d31cdefe4e219e4f2a2bb19a83") depends_on("py-requests", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_amrex/package.py b/repos/spack_repo/builtin/packages/py_amrex/package.py index 1a5ebb2951e..83d95faa4e2 100644 --- a/repos/spack_repo/builtin/packages/py_amrex/package.py +++ b/repos/spack_repo/builtin/packages/py_amrex/package.py @@ -14,7 +14,7 @@ class PyAmrex(CMakePackage, PythonExtension, CudaPackage, ROCmPackage): """AMReX Python Bindings with pybind11""" homepage = "https://amrex-codes.github.io/amrex/" - url = "https://github.com/AMReX-Codes/pyamrex/archive/refs/tags/25.04.tar.gz" + url = "https://github.com/AMReX-Codes/pyamrex/archive/refs/tags/26.04.tar.gz" git = "https://github.com/AMReX-Codes/pyamrex.git" maintainers("ax3l", "EZoni", "atmyers", "sayerhs", "WeiqunZhang") @@ -24,13 +24,16 @@ class PyAmrex(CMakePackage, PythonExtension, CudaPackage, ROCmPackage): license("BSD-3-Clause-LBNL") version("develop", branch="development") + version("26.04", sha256="0d17f27ca7463b9983a987629ea2c18e06a8e4d98b2b8c6affb7aacfe340690d") + version("26.03", sha256="d6490ba75d3b9c71bbb73a15417d3238a0c0408e8ce63e3987c08ca85402c44b") + version("26.02", sha256="a31cfe3fcd1ab4d80e7997fd888fb290c571050d22281eaa9b349c2ed74ec7bb") + version("26.01", sha256="6df3717456d08b9af8537bea55f3a05b71667a42b4944ef9f8e9e56273559f4b") + version("25.12", sha256="f47271d2b559650a8af02564f889e6b5792536fedf374fb54fb1d1edfa4052eb") + version("25.11", sha256="87de39f435ba6d03bc69adb9cbcc7679da65ef0e4d6dcd60ab654a68220cbc1f") version("25.04", sha256="2c765d581f21170ea26a5eb50bdd2c9151d2dbed9f1002dc25e62f38ed6220c0") - with default_args(deprecated=True): - version("25.03", sha256="5a65545d46b49dd3f2bca2647a174c3ee0384e49791dc3e335a3a39d9a045350") - version("25.02", sha256="c743086b317f9fa90639d825db32a92376cde8dc5e1eab47a4c6a82af36d5b5c") - for v in ["25.04", "25.03", "25.02", "develop"]: - depends_on("amrex@{0}".format(v), when="@{0}".format(v), type=("build", "link")) + for v in ["25.04", "25.11", "25.12", "26.01", "26.02", "26.03", "26.04", "develop"]: + depends_on(f"amrex@{v}", when=f"@{v}", type=("build", "link")) variant( "dimensions", @@ -50,24 +53,29 @@ class PyAmrex(CMakePackage, PythonExtension, CudaPackage, ROCmPackage): description="Real precision (double/single)", values=("single", "double"), ) - variant("tiny_profile", default=False, description="Enable tiny profiling") + variant("simd", default=False, description="Enable SIMD support", when="@25.09:") variant("sycl", default=False, description="Enable SYCL backend") + variant("tiny_profile", default=False, description="Enable tiny profiling") extends("python") depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("cmake@3.24:3", type="build") + depends_on("cmake@3.24:", type="build") depends_on("pkgconfig", type="build") # amrex +fft - depends_on("python@3.8:", type=("build", "run")) + depends_on("python@3.9:", type=("build", "run")) + depends_on("python@3.11:", type=("build", "run"), when="@26.03:") depends_on("py-mpi4py@2.1.0:", type=("build", "run"), when="+mpi") depends_on("py-numpy@1.15:", type=("build", "run")) depends_on("py-packaging@23:", type="build") depends_on("py-pip@23:", type="build") depends_on("py-setuptools@42:", type="build") depends_on("py-pybind11@2.12.0:", type=("build", "link")) + depends_on("py-pybind11@3.0.1:", type=("build", "link"), when="@25.08:") + depends_on("py-pybind11@3.0.2:", type=("build", "link"), when="@26.03:") depends_on("py-wheel@0.40:", type="build") + depends_on("vir-simd", type="build", when="+simd") # AMReX options # required variants @@ -99,6 +107,10 @@ class PyAmrex(CMakePackage, PythonExtension, CudaPackage, ROCmPackage): # todo: how to forward amdgpu_target? with when("~rocm"): depends_on("amrex ~rocm") + with when("+simd"): + depends_on("amrex +simd") + with when("~simd"): + depends_on("amrex ~simd") with when("+sycl"): depends_on("amrex +sycl") with when("~sycl"): @@ -127,7 +139,7 @@ def cmake_args(self): def check(self): """Checks after the build phase""" - pytest = which("pytest") + pytest = which("pytest", required=True) pytest(join_path(self.stage.source_path, self.tests_src_dir)) @run_after("install") @@ -140,7 +152,5 @@ def test_pytest(self): """Perform smoke tests on the installed package.""" test_dir = join_path(self.test_suite.current_test_cache_dir, self.tests_src_dir) with working_dir(test_dir): - pytest = which("pytest") - # TODO: Remove once test dependencies made available - assert pytest is not None, "Make sure a suitable 'pytest' is in your path" + pytest = which("pytest", required=True) pytest() diff --git a/repos/spack_repo/builtin/packages/py_aniso8601/package.py b/repos/spack_repo/builtin/packages/py_aniso8601/package.py index 10a7bb3c027..16444440cdd 100644 --- a/repos/spack_repo/builtin/packages/py_aniso8601/package.py +++ b/repos/spack_repo/builtin/packages/py_aniso8601/package.py @@ -15,6 +15,7 @@ class PyAniso8601(PythonPackage): license("BSD-3-Clause") + version("10.0.1", sha256="25488f8663dd1528ae1f54f94ac1ea51ae25b4d531539b8bc707fed184d16845") version("9.0.1", sha256="72e3117667eedf66951bb2d93f4296a56b94b078a8a95905a052611fb3f1b973") version("7.0.0", sha256="513d2b6637b7853806ae79ffaca6f3e8754bdd547048f5ccc1420aec4b714f1e") diff --git a/repos/spack_repo/builtin/packages/py_annexremote/package.py b/repos/spack_repo/builtin/packages/py_annexremote/package.py index 463951de52e..2102daca7cc 100644 --- a/repos/spack_repo/builtin/packages/py_annexremote/package.py +++ b/repos/spack_repo/builtin/packages/py_annexremote/package.py @@ -15,9 +15,13 @@ class PyAnnexremote(PythonPackage): license("GPL-3.0-only") + version("1.6.6", sha256="5f78d0753c0763d95fc4c52050bd6212bb32457d32f6575dc66a83178e0283a7") version("1.6.0", sha256="779a43e5b1b4afd294761c6587dee8ac68f453a5a8cc40f419e9ca777573ae84") version("1.5.0", sha256="92f32b6f5461cbaeefe0c60b32f9c1e0c1dbe4e57b8ee425affb56f4060f64ef") depends_on("python@3:", when="@1.6:", type="build") + depends_on("py-setuptools@41:", when="@1.6.1:", type="build") depends_on("py-setuptools", type="build") + depends_on("py-setuptools-scm+toml@6.2:", when="@1.6.1:", type="build") + depends_on("py-future", when="@:1.5", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_antimeridian/package.py b/repos/spack_repo/builtin/packages/py_antimeridian/package.py index 29a137fe5be..bde9969d2ee 100644 --- a/repos/spack_repo/builtin/packages/py_antimeridian/package.py +++ b/repos/spack_repo/builtin/packages/py_antimeridian/package.py @@ -16,6 +16,7 @@ class PyAntimeridian(PythonPackage): license("Apache-2.0") + version("0.4.5", sha256="088f8daec4109ce5d85d52e9b4382bffcbd1a5b47c78644898f9c6d8562d1207") version("0.3.11", sha256="fde0134e6799676ec68765d3e588f5f32cabd4041b1f969b923758d0a6cd0c7f") depends_on("python@3.10:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_antipickle/package.py b/repos/spack_repo/builtin/packages/py_antipickle/package.py new file mode 100644 index 00000000000..7749a3121a1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_antipickle/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 PyAntipickle(PythonPackage): + """Like pickle. But different.""" + + homepage = "https://pypi.org/project/antipickle" + pypi = "antipickle/antipickle-0.2.0.tar.gz" + + maintainers("LydDeb") + + license("MIT", checked_by="LydDeb") + + version("0.2.0", sha256="361f37beacfa54081b20af54afaeb0420c7b12a3b3e4c932e083b07f9d3e7143") + + depends_on("python@3.7:", type=("build", "run")) + depends_on("py-hatchling", type="build") + depends_on("py-msgpack@1.0.4:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_anybadge/package.py b/repos/spack_repo/builtin/packages/py_anybadge/package.py index a5dd992f01d..d05beaec77d 100644 --- a/repos/spack_repo/builtin/packages/py_anybadge/package.py +++ b/repos/spack_repo/builtin/packages/py_anybadge/package.py @@ -14,6 +14,7 @@ class PyAnybadge(PythonPackage): homepage = "https://github.com/jongracecox/anybadge" pypi = "anybadge/anybadge-1.14.0.tar.gz" + version("1.16.0", sha256="f4e95eca834482f9932f9020ac2fe04a5ca863728b446324a8d35b1e67faab71") version("1.14.0", sha256="47f06e0a6320d3e5eac55c712dc0bab71b9ed85353c591d448653c5a0740783f") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_anyio/package.py b/repos/spack_repo/builtin/packages/py_anyio/package.py index 75b276cc61c..52521ce659c 100644 --- a/repos/spack_repo/builtin/packages/py_anyio/package.py +++ b/repos/spack_repo/builtin/packages/py_anyio/package.py @@ -16,6 +16,8 @@ class PyAnyio(PythonPackage): license("MIT") + version("4.12.1", sha256="41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703") + version("4.9.0", sha256="673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028") version("4.0.0", sha256="f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a") version("3.6.2", sha256="25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421") version("3.6.1", sha256="413adf95f93886e442aea925f3ee43baa5a765a64a0f52c6081894f9992fdd0b") @@ -23,17 +25,20 @@ class PyAnyio(PythonPackage): version("3.3.4", sha256="67da67b5b21f96b9d3d65daa6ea99f5d5282cb09f50eb4456f8fb51dffefc3ff") version("3.2.1", sha256="07968db9fa7c1ca5435a133dc62f988d84ef78e1d9b22814a59d1c62618afbc5") - depends_on("python@3.8:", when="@4:", type=("build", "run")) - depends_on("python@3.6.2:", type=("build", "run")) - depends_on("py-setuptools@64:", when="@3.7:", type="build") - depends_on("py-setuptools@42:", type="build") - depends_on("py-setuptools-scm@6.4:", when="@3.7:", type="build") - depends_on("py-setuptools-scm+toml@3.4:", when="@:3.6", type="build") + with default_args(type="build"): + depends_on("py-setuptools@77:", when="@4.12:") + depends_on("py-setuptools@64:", when="@3.7:") + depends_on("py-setuptools@42:") + depends_on("py-setuptools-scm@6.4:", when="@3.7:") + depends_on("py-setuptools-scm+toml@3.4:", when="@:3.6") - depends_on("py-exceptiongroup@1.0.2:", when="@4: ^python@:3.10", type=("build", "run")) - depends_on("py-idna@2.8:", type=("build", "run")) - depends_on("py-sniffio@1.1:", type=("build", "run")) + # Historical dependencies + depends_on("py-wheel@0.29:", when="@:3.6") - # Historical dependencies - depends_on("py-wheel@0.29:", when="@:3.6", type="build") - depends_on("py-typing-extensions", when="^python@:3.7", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("py-exceptiongroup@1.0.2:", when="@4: ^python@:3.10") + depends_on("py-idna@2.8:") + depends_on("py-typing-extensions@4.5:", when="@4.7: ^python@:3.12") + + # Historical dependencies + depends_on("py-sniffio@1.1:", when="@:4.9") diff --git a/repos/spack_repo/builtin/packages/py_anywidget/package.py b/repos/spack_repo/builtin/packages/py_anywidget/package.py new file mode 100644 index 00000000000..a2740608077 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_anywidget/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 PyAnywidget(PythonPackage): + """custom jupyter widgets made easy.""" + + homepage = "https://github.com/manzt/anywidget" + pypi = "anywidget/anywidget-0.9.18.tar.gz" + + license("MIT") + + version("0.9.21", sha256="b8d0172029ac426573053c416c6a587838661612208bb390fa0607862e594b27") + version("0.9.18", sha256="262cf459b517a7d044d6fbc84b953e9c83f026790b2dd3ce90f21a7f8eded00f") + + depends_on("py-hatchling", type="build") + # from [tool.hatch.build.hooks.jupyter-builder] + depends_on("py-hatch-jupyter-builder@0.5:", type="build") + + with default_args(type=("build", "run")): + depends_on("py-ipywidgets@7.6:") + depends_on("py-typing-extensions@4.2:") + depends_on("py-psygnal@0.8.1:") diff --git a/repos/spack_repo/builtin/packages/py_apache_beam/package.py b/repos/spack_repo/builtin/packages/py_apache_beam/package.py deleted file mode 100644 index bbbae1311b7..00000000000 --- a/repos/spack_repo/builtin/packages/py_apache_beam/package.py +++ /dev/null @@ -1,40 +0,0 @@ -# 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 PyApacheBeam(PythonPackage): - """Apache Beam is a unified programming model for Batch and Streaming.""" - - homepage = "https://github.com/apache/beam" - pypi = "apache-beam/apache-beam-2.24.0.zip" - - version("2.24.0", sha256="55c50b1a964bacc840a5e4cc3b4a42c4ef09d12192d215ba3cad65d4d22e09dd") - - depends_on("python@2.7,3.5:", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-pip@7.0.0:", type="build") - depends_on("py-cython@0.28.1:", type="build") - depends_on("py-avro-python3@1.8.1:1.9.1,1.9.3:1.9", type=("build", "run")) - depends_on("py-crcmod@1.7:1", type=("build", "run")) - depends_on("py-dill@0.3.1:0.3.1", type=("build", "run")) - depends_on("py-fastavro@0.21.4:0.23", type=("build", "run")) - depends_on("py-future@0.18.2:0", type=("build", "run")) - depends_on("py-grpcio@1.29:1", type=("build", "run")) - depends_on("py-hdfs@2.1:2", type=("build", "run")) - depends_on("py-httplib2@0.8:0.17", type=("build", "run")) - depends_on("py-mock@1.0.1:2", type=("build", "run")) - depends_on("py-numpy@1.14.3:1", type=("build", "run")) - depends_on("py-pymongo@3.8:3", type=("build", "run")) - depends_on("py-oauth2client@2.0.1:3", type=("build", "run")) - depends_on("py-protobuf@3.12.2:3", type=("build", "run")) - depends_on("py-pyarrow@0.15.1:0.17", type=("build", "run")) - depends_on("py-pydot@1.2.0:1", type=("build", "run")) - depends_on("py-python-dateutil@2.8:2", type=("build", "run")) - depends_on("py-pytz@2018.3:", type=("build", "run")) - depends_on("py-requests@2.24:2", type=("build", "run")) - depends_on("py-typing-extensions@3.7.0:3.7", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_apache_tvm_ffi/package.py b/repos/spack_repo/builtin/packages/py_apache_tvm_ffi/package.py new file mode 100644 index 00000000000..5fbeed22e48 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_apache_tvm_ffi/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 PyApacheTvmFfi(PythonPackage): + """Open ABI and FFI for Machine Learning Systems""" + + homepage = "https://github.com/apache/tvm-ffi" + pypi = "apache-tvm-ffi/apache_tvm_ffi-0.1.3.tar.gz" + git = homepage + ".git" + + license("Apache-2.0") + + version("main", branch="main") + version("0.1.6", sha256="53088126f7fce11823ddf0fb101e968a90298d79fd68829c0a981f25467a574c") + version("0.1.5", sha256="21bc35cb9d9fdec54061b802a2b432fd1155d2733da94df8678ff21bab1d9a2f") + version("0.1.4", sha256="1a6e635b671e962bbc3bf1bc97bfd82e4c0f1bedf27c8d183bb282664974d0d3") + version("0.1.3", sha256="d33f0bc0d028cddf321d69724c916504272a7f03dfc1d8e507d9d0f88b6f7cbf") + version("0.1.2", sha256="91f6e4e38572f7ce78c6df810cc16bdd1283fd925010b0e503697934d58bb7e7") + version("0.1.1", sha256="728ce3f4ae02b89a7147b718f7f670afac3c6d1f96df38d488757274643709fc") + version("0.1.0", sha256="ba45ebf98bab436442f3ee34c8b9c69e00797ae3529ea3df37a56aa7aa479cf2") + + depends_on("py-typing-extensions@4.5:") + + with default_args(type="build"): + depends_on("c") + depends_on("cxx") + # https://github.com/apache/tvm-ffi/blob/v0.1.3/pyproject.toml + depends_on("py-scikit-build-core@0.10.0:") + depends_on("py-cython@3.0:") + depends_on("py-setuptools-scm") + # https://github.com/apache/tvm-ffi/blob/v0.1.0/CMakeLists.txt#L18 + depends_on("cmake@3.18:") + depends_on("ninja@1.11:") + + with default_args(type="run"): + depends_on("ninja", when="@:0.1.3") + depends_on("ninja", when="platform=windows") diff --git a/repos/spack_repo/builtin/packages/py_apebench/package.py b/repos/spack_repo/builtin/packages/py_apebench/package.py new file mode 100644 index 00000000000..8961f67ccbd --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_apebench/package.py @@ -0,0 +1,63 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyApebench(PythonPackage, CudaPackage): + """APEBench is a JAX-based tool to evaluate autoregressive neural emulators for PDEs + on periodic domains in 1d, 2d, and 3d. It comes with an efficient reference simulator + based on spectral methods that is used for procedural data generation (no need to download + large datasets with APEBench). Since this simulator can also be embedded into emulator training + (e.g., for a "solver-in-the-loop" correction setting), this is the first benchmark suite to + support differentiable physics.""" + + homepage = "https://tum-pbs.github.io/apebench-paper/" + pypi = "apebench/apebench-0.1.1.tar.gz" + + maintainers("abhishek1297") + license("MIT", checked_by="abhishek1297") + + version("0.1.1", sha256="c5ddd47799f0799b2c2e72c27d3d81993f6fa218a04b1df93d4c1850e4893bf9") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("py-setuptools", type="build") + depends_on("python@3.10:3.12", type=("build", "run")) + + with default_args(type="run"): + for arch in CudaPackage.cuda_arch_values: + cuda_specs = f"+cuda cuda_arch={arch}" + with when(cuda_specs): + depends_on(f"py-jaxlib {cuda_specs}") + depends_on(f"py-equinox@0.11.3: {cuda_specs}") + depends_on(f"py-exponax@0.1.0 {cuda_specs}") + depends_on(f"py-pdequinox@0.1.2 {cuda_specs}") + depends_on(f"py-trainax@0.0.2 {cuda_specs}") + + depends_on("py-jax@0.4.13:") + depends_on("py-jaxtyping@0.2.20:") + depends_on("py-typing-extensions@4.5.0:") + depends_on("py-tqdm@4.63.2:") + depends_on("py-matplotlib@3.8.1:") + depends_on("py-pandas@2.2.0:") + depends_on("py-seaborn@0.13.0:") + depends_on("py-optax@0.2.0:") + + with when("~cuda"): + depends_on("py-equinox@0.11.3:") + depends_on("py-exponax@0.1.0") + depends_on("py-pdequinox@0.1.2") + depends_on("py-trainax@0.0.2") + + def setup_run_environment(self, env): + if "+cuda" in self.spec: + cuda_home = self.spec["cuda"].prefix + # This is an irrelevant lib path and it is purely used by NVIDIA profilers. + # But, since JAX throws RuntimeError on it, we set this path. + env.prepend_path("LD_LIBRARY_PATH", f"{cuda_home}/extras/CUPTI/lib64") diff --git a/repos/spack_repo/builtin/packages/py_apeye_core/package.py b/repos/spack_repo/builtin/packages/py_apeye_core/package.py index 0ad4d322018..22a7ecb213f 100644 --- a/repos/spack_repo/builtin/packages/py_apeye_core/package.py +++ b/repos/spack_repo/builtin/packages/py_apeye_core/package.py @@ -16,6 +16,7 @@ class PyApeyeCore(PythonPackage): license("BSD-3-Clause") + version("1.1.5", sha256="5de72ed3d00cc9b20fea55e54b7ab8f5ef8500eb33a5368bc162a5585e238a55") version("1.1.4", sha256="72bb89fed3baa647cb81aa28e1d851787edcbf9573853b5d2b5f87c02f50eaf5") depends_on("py-hatch-requirements-txt", type="build") diff --git a/repos/spack_repo/builtin/packages/py_app_model/package.py b/repos/spack_repo/builtin/packages/py_app_model/package.py new file mode 100644 index 00000000000..a8307ebb472 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_app_model/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 PyAppModel(PythonPackage): + """app-model is a generic application schema implemented in python, for + declarative organization of application data, such as menus, keybindings, + actions/commands, etc...""" + + homepage = "https://github.com/pyapp-kit/app-model" + pypi = "app_model/app_model-0.5.0.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("0.4.0", sha256="ccf667999f6c659e921ca3490b6da176971e67cf2f41abc34e33caa8cfa18573") + version("0.1.4", sha256="67f5cdf16f79e22844f2bdb91fd90e81d05077c5882bc3536f9d74b515a5b1d4") + + variant("qt", default=False, description="Install QT libraries") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-hatchling", type="build") + depends_on("py-hatch-vcs", type="build") + + with default_args(type=("build", "run")): + depends_on("py-psygnal@0.10:", when="@0.4:") + depends_on("py-psygnal@0.3.4:") + depends_on("py-pydantic@2.8:", when="@0.5:") + depends_on("py-pydantic@1.10.18:", when="@0.4") + depends_on("py-pydantic@1.8.2:1", when="@0.1.4:0.1") + depends_on("py-pydantic-compat@0.1.1:", when="@0.4") + depends_on("py-in-n-out@0.1.5:") + depends_on("py-typing-extensions@4.12:") + + with when("+qt"): + depends_on("py-qtpy@2.4.0:") + depends_on("py-superqt@0.7.2: +iconify") diff --git a/repos/spack_repo/builtin/packages/py_applicationinsights/package.py b/repos/spack_repo/builtin/packages/py_applicationinsights/package.py index 0af6b471296..fcf6ed58fb9 100644 --- a/repos/spack_repo/builtin/packages/py_applicationinsights/package.py +++ b/repos/spack_repo/builtin/packages/py_applicationinsights/package.py @@ -29,6 +29,7 @@ class PyApplicationinsights(PythonPackage): license("MIT") + version("0.11.10", sha256="0b761f3ef0680acf4731906dfc1807faa6f2a57168ae74592db0084a6099f7b3") version("0.11.9", sha256="30a11aafacea34f8b160fbdc35254c9029c7e325267874e3c68f6bdbcd6ed2c3") depends_on("py-setuptools", type="build") 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_arcgis/package.py b/repos/spack_repo/builtin/packages/py_arcgis/package.py index 81368734cb7..9d2a015b438 100644 --- a/repos/spack_repo/builtin/packages/py_arcgis/package.py +++ b/repos/spack_repo/builtin/packages/py_arcgis/package.py @@ -33,5 +33,10 @@ class PyArcgis(PythonPackage): depends_on("py-requests-toolbelt", type=("build", "run")) depends_on("py-requests-ntlm", type=("build", "run")) + @when("^py-pip@23.1:") + def config_settings(self, spec, prefix): + return {"--global-option": "--conda-install-mode"} + + @when("^py-pip@:23.0") def global_options(self, spec, prefix): return ["--conda-install-mode"] diff --git a/repos/spack_repo/builtin/packages/py_argcomplete/package.py b/repos/spack_repo/builtin/packages/py_argcomplete/package.py index 21e62d863ca..fb780d5d6e5 100644 --- a/repos/spack_repo/builtin/packages/py_argcomplete/package.py +++ b/repos/spack_repo/builtin/packages/py_argcomplete/package.py @@ -13,6 +13,10 @@ class PyArgcomplete(PythonPackage): homepage = "https://github.com/kislyuk/argcomplete" pypi = "argcomplete/argcomplete-1.12.0.tar.gz" + license("Apache-2.0") + + version("3.6.3", sha256="62e8ed4fd6a45864acc8235409461b72c9a28ee785a2011cc5eb78318786c89c") + version("3.6.2", sha256="d0519b1bc867f5f4f4713c41ad0aba73a4a5f007449716b16f385f2166dc6adf") version("3.5.0", sha256="4349400469dccfb7950bb60334a680c58d88699bff6159df61251878dc6bf74b") version("3.1.6", sha256="3b1f07d133332547a53c79437527c00be48cca3807b1d4ca5cab1b26313386a6") version("3.1.2", sha256="d5d1e5efd41435260b8f85673b74ea2e883affcbec9f4230c582689e8e78251b") @@ -22,9 +26,13 @@ class PyArgcomplete(PythonPackage): version("1.12.0", sha256="2fbe5ed09fd2c1d727d4199feca96569a5b50d44c71b16da9c742201f7cc295c") version("1.1.1", sha256="cca45b5fe07000994f4f06a0b95bd71f7b51b04f81c3be0b4ea7b666e4f1f084") - depends_on("py-setuptools@67.7.2:", when="@3.1:", type="build") - depends_on("py-setuptools", type="build") - depends_on("py-setuptools-scm+toml@6.2:", when="@3.1:", type="build") + depends_on("py-hatchling", when="@3.5.3:", type="build") + depends_on("py-hatch-vcs", when="@3.5.3:", type="build") + + # Historical dependencies + depends_on("py-setuptools@67.7.2:", when="@3.1:3.5.2", type="build") + depends_on("py-setuptools", when="@:3.5.2", type="build") + depends_on("py-setuptools-scm+toml@6.2:", when="@3.1:3.5.2", type="build") depends_on("py-importlib-metadata@0.23:6", when="@3.0.6: ^python@:3.7", type=("build", "run")) depends_on( diff --git a/repos/spack_repo/builtin/packages/py_argparse_manpage/package.py b/repos/spack_repo/builtin/packages/py_argparse_manpage/package.py index 8aed8255c2a..90d8d78a8ac 100644 --- a/repos/spack_repo/builtin/packages/py_argparse_manpage/package.py +++ b/repos/spack_repo/builtin/packages/py_argparse_manpage/package.py @@ -15,6 +15,7 @@ class PyArgparseManpage(PythonPackage): license("Apache-2.0") + version("4.6", sha256="0b659d70fd142876da41c2918bd6de4d027875720b0e4672d6443b51198dbb62") version("4.5", sha256="213c061878a10bf0e40f6a293382f6e82409e5110d0683b16ebf87f903d604db") variant("setuptools", default=False, description="Enable the setuptools.builds_meta backend") diff --git a/repos/spack_repo/builtin/packages/py_arkouda/package.py b/repos/spack_repo/builtin/packages/py_arkouda/package.py index ad9f5e492cf..41bd4dfbcb1 100644 --- a/repos/spack_repo/builtin/packages/py_arkouda/package.py +++ b/repos/spack_repo/builtin/packages/py_arkouda/package.py @@ -13,7 +13,8 @@ class PyArkouda(PythonPackage): homepage = "https://github.com/Bears-R-Us/arkouda" # Updating the arkouda PyPI package is future work - url = "https://github.com/Bears-R-Us/arkouda/archive/refs/tags/v2024.10.02.tar.gz" + list_url = "https://github.com/Bears-R-Us/arkouda/tags" + url = "https://github.com/Bears-R-Us/arkouda/archive/refs/tags/v2025.08.20.tar.gz" git = "https://github.com/Bears-R-Us/arkouda.git" # See https://spdx.org/licenses/ for a list. @@ -22,36 +23,58 @@ class PyArkouda(PythonPackage): test_requires_compiler = True # A list of GitHub accounts to notify when the package is updated. - # TODO: add arkouda devs github account - maintainers("arezaii") + maintainers("1RyanK", "ajpotts", "arezaii", "drculhane", "jaketrookman") - version("master", branch="master") + version("main", branch="main") version( - "2024.10.02", sha256="00671a89a08be57ff90a94052f69bfc6fe793f7b50cf9195dd7ee794d6d13f23" + "2026.02.27", sha256="10ac344937ba7c8bfa4c3a23a2fadc4d0c3a3e2051acd0c2c3db7a6d453a660b" ) version( - "2024.06.21", sha256="ab7f753befb3a0b8e27a3d28f3c83332d2c6ae49678877a7456f0fcfe42df51c" + "2026.02.02.1", sha256="750b84c4e0f86688bef8f7a84eb56bb87063ad8805440768017e51813cded2e7" + ) + version( + "2026.02.02", sha256="050941496646160472b1e656cf9935bc552d47fa075abb8f67a3d90ddd346196" + ) + version( + "2025.12.16", sha256="72638e9d8aa1889b6bafa76c6e8060e0c8aab0871be2693f8fb10f57cd4acbfa" + ) + version( + "2025.09.30", sha256="10f488a3ff3482b66f1b1e8a4235d72e91ad07acb932eca85d1e695f0f6155a2" + ) + version( + "2025.08.20", + sha256="3e305930905397ff3a7a28a5d8cc2c9adca4194ca7f6ee51f749f427a2dea92c", + deprecated=True, + ) + version( + "2025.07.03", + sha256="eb888fac7b0eec6b4f3bfa0bfe14e5c8f15b449286e84c45ba95c44d8cd3917a", + deprecated=True, ) variant("dev", default=False, description="Include arkouda developer extras") - depends_on("python@3.8:", type=("build", "run"), when="@:2024.06.21") - depends_on("python@3.9:3.12.3", type=("build", "run"), when="@2024.10.02:") + depends_on("python@3.9:3.13", type=("build", "run"), when="@2025.07.03:2025.08.20") + depends_on("python@3.10:3.13", type=("build", "run"), when="@2025.09.30:") depends_on("py-setuptools", type="build") - depends_on("py-numpy@1.24.1:1.99", type=("build", "run")) + depends_on("py-numpy@2", when="@2025.07.03:", type=("build", "run")) + depends_on("py-pandas@2.2.3:", when="@2025.07.03:") depends_on("py-pandas@1.4.0:", type=("build", "run")) conflicts("^py-pandas@2.2.0", msg="arkouda client not compatible with pandas 2.2.0") - - depends_on("py-pyarrow", type=("build", "run")) + depends_on("py-pyarrow", type=("build", "run"), when="@2025.12.16:") + depends_on("py-pyarrow@15:19", type=("build", "run"), when="@2025.07.03:") depends_on("py-pyzmq@20:", type=("build", "run")) - depends_on("py-scipy@:1.13.1", type=("build", "run"), when="@2024.06.21:") - depends_on("py-tables@3.7.0: +lzo +bzip2", type=("build", "run"), when="@:2024.06.21") - depends_on("py-tables@3.8.0: +lzo +bzip2", type=("build", "run"), when="@2024.10.02:") + depends_on("py-scipy@1.14:", when="@2025.07.03:") + depends_on("py-tables@3.8: +lzo +bzip2", type=("build", "run")) + depends_on("py-tables@3.10: +lzo +bzip2", when="@2025.07.03:") + depends_on("py-cloudpickle@2:", when="@2025.07.03:", type=("build", "run")) depends_on("py-h5py@3.7.0:", type=("build", "run")) + depends_on("py-h5py@3.11:", when="@2025.07.03:") + depends_on("py-matplotlib@3.9:", when="@2025.07.03:") depends_on("py-matplotlib@3.3.2:", type=("build", "run")) + depends_on("py-contourpy@1.3:", when="@2025.07.03:") depends_on("py-versioneer", type=("build")) depends_on("py-pyfiglet", type=("build", "run")) depends_on("py-typeguard@2.10:2.12", type=("build", "run")) depends_on("py-tabulate", type=("build", "run")) - depends_on("py-pytest@6.0:", type=("build", "run"), when="@2024.10.02") diff --git a/repos/spack_repo/builtin/packages/py_arrow/package.py b/repos/spack_repo/builtin/packages/py_arrow/package.py index 5b424a73d4f..b2036385cb4 100644 --- a/repos/spack_repo/builtin/packages/py_arrow/package.py +++ b/repos/spack_repo/builtin/packages/py_arrow/package.py @@ -17,11 +17,13 @@ class PyArrow(PythonPackage): homepage = "https://arrow.readthedocs.io/en/latest/" pypi = "arrow/arrow-0.16.0.tar.gz" + git = "https://github.com/arrow-py/arrow.git" maintainers("climbfuji") license("Apache-2.0") + version("1.4.0", sha256="ed0cc050e98001b8779e84d461b0098c4ac597e88704a655582b21d116e526d7") # https://github.com/spack/spack/issues/48477 # version("1.3.0", sha256="d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85") version("1.2.3", sha256="3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1") @@ -31,15 +33,23 @@ class PyArrow(PythonPackage): version("0.14.7", sha256="67f8be7c0cf420424bc62d8d7dc40b44e4bb2f7b515f9cc2954fb36e35797656") version("0.14.1", sha256="2d30837085011ef0b90ff75aa0a28f5c7d063e96b7e76b6cbc7e690310256685") - # https://github.com/spack/spack/issues/48477 - # depends_on("python@3.8:", type=("build", "run"), when="@1.3:") - depends_on("python@3.6:", type=("build", "run"), when="@1.2.1:") - depends_on("python@2.7:2.8,3.5:", type=("build", "run"), when="@:0.16.0") - depends_on("py-setuptools", type="build", when="@:1.2") - # https://github.com/spack/spack/issues/48477 - # depends_on("py-flit-core@3.2:3", type="build", when="@1.3:") - depends_on("py-python-dateutil", type=("build", "run")) - depends_on("py-typing-extensions", type=("build", "run"), when="@1.2.1:1.2 ^python@:3.7") - depends_on("py-python-dateutil@2.7.0:", type=("build", "run"), when="@1.2.1:") - # https://github.com/spack/spack/issues/48477 - # depends_on("py-types-python-dateutil@2.8.10:", type=("build", "run"), when="@1.3:") + with default_args(type="build"): + depends_on("py-flit-core@3.2:3", when="@1.3:") + + # Historical dependencies + depends_on("py-setuptools", when="@:1.2") + + with default_args(type=("build", "run")): + depends_on("python@3.8:", when="@1.3:") + depends_on("python@3.6:", when="@1.2.1:") + depends_on("python@2.7:2.8,3.5:", when="@:0.16.0") + + depends_on("py-python-dateutil@2.7:", when="@1.2.1:") + depends_on("py-python-dateutil") + # https://github.com/spack/spack/issues/48477 + # depends_on("py-types-python-dateutil@2.8.10:", when="@1.3") + depends_on("py-backports-zoneinfo@0.2.1", when="@1.4: ^python@:3.8") + depends_on("py-tzdata", when="@1.4: ^python@3.9:") + + # Historical dependencies + depends_on("py-typing-extensions", when="@1.2.1:1.2 ^python@:3.7") diff --git a/repos/spack_repo/builtin/packages/py_ase/package.py b/repos/spack_repo/builtin/packages/py_ase/package.py index 914085ff237..1092b97428a 100644 --- a/repos/spack_repo/builtin/packages/py_ase/package.py +++ b/repos/spack_repo/builtin/packages/py_ase/package.py @@ -12,11 +12,18 @@ class PyAse(PythonPackage): and Python modules for setting up, manipulating, running, visualizing and analyzing atomistic simulations.""" - homepage = "https://wiki.fysik.dtu.dk/ase/" - pypi = "ase/ase-3.13.0.tar.gz" + homepage = "https://ase-lib.org/" + pypi = "ase/ase-3.25.0.tar.gz" license("LGPL-2.1-or-later") + maintainers("alikhamze") + + version("3.28.0", sha256="74fe77ca38bf78070e24cd283f5d25be129bad6503fd26619008548518144732") + version("3.27.0", sha256="92ada752d6866a61d2d27e0e6a4fd5b8cd86f59ca79a58f1d2fe29d7099153dc") + version("3.26.0", sha256="a071a355775b0a8062d23e9266e9d811b19d9f6d9ec5215e8032f7d93dc65075") + version("3.25.0", sha256="374cf8ca9fe588f05d6e856da3c9c17ef262dc968027b231d449334140c962c2") + version("3.24.0", sha256="9acc93d6daaf48cd27b844c56f8bf49428b9db0542faa3cc30d9d5b8e1842195") version("3.23.0", sha256="91a2aa31d89bd90b0efdfe4a7e84264f32828b2abfc9f38e65e041ad76fec8ae") version("3.21.1", sha256="78b01d88529d5f604e76bc64be102d48f058ca50faad72ac740d717545711c7b") version("3.21.0", sha256="2c561e9b767cf16fc8ce198ea9326d77c6b67d33a85f44b68455e23466a64608") @@ -31,15 +38,53 @@ class PyAse(PythonPackage): version("3.15.0", sha256="5e22d961b1311ef4ba2d83527f7cc7448abac8cf9bddd1593bee548459263fe8") version("3.13.0", sha256="c4046c50debac28415b36616d79aa28e68ae2cd03c013c2aed6a1e3d465c0ee1") - depends_on("python@2.6:", type=("build", "run"), when="@:3.15.0") - depends_on("python@3.5:", type=("build", "run"), when="@3.18.0:") - depends_on("python@3.6:", type=("build", "run"), when="@3.20.0:") - depends_on("python@3.8:", type=("build", "run"), when="@3.23.0:") - depends_on("py-numpy@1.11.3:", type=("build", "run")) - depends_on("py-numpy@1.18.5:", type=("build", "run"), when="@3.23.0:") - depends_on("py-matplotlib@2.0.0:", type=("build", "run")) - depends_on("py-matplotlib@3.3.4:", type=("build", "run"), when="@3.23.0:") - depends_on("py-scipy@0.18.1:", type=("build", "run")) - depends_on("py-scipy@1.6.0:", type=("build", "run"), when="@3.23.0:") - depends_on("py-flask", type=("build", "run"), when="@:3.18.0") - depends_on("py-setuptools", type="build") + with when("@3.27.0:"): + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-numpy@1.21.6:", type=("build", "run")) + depends_on("py-scipy@1.8.1:", type=("build", "run")) + depends_on("py-matplotlib@3.5.2:", type=("build", "run")) + depends_on("py-setuptools@77.0.3:", type="build") + + with when("@3.24.0:3.26.0"): + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-numpy@1.19.5:", type=("build", "run")) + depends_on("py-scipy@1.6:", type=("build", "run")) + depends_on("py-matplotlib@3.3.4:", type=("build", "run")) + depends_on("py-setuptools@61:", type="build") + + with when("@3.23.0"): + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-numpy@1.18.5:", type=("build", "run")) + depends_on("py-scipy@1.6:", type=("build", "run")) + depends_on("py-matplotlib@3.3.4:", type=("build", "run")) + depends_on("py-setuptools@61:", type="build") + + with when("@3.21"): + depends_on("python@3.6:", type=("build", "run")) + depends_on("py-numpy@1.18.5:", type=("build", "run")) + depends_on("py-scipy@1.6:", type=("build", "run")) + depends_on("py-matplotlib@3.3.4:", type=("build", "run")) + depends_on("py-setuptools", type="build") + + with when("@3.20.0"): + depends_on("python@3.6:", type=("build", "run")) + depends_on("py-numpy@1.11.3:", type=("build", "run")) + depends_on("py-scipy@0.18.1:", type=("build", "run")) + depends_on("py-matplotlib@2:", type=("build", "run")) + depends_on("py-setuptools", type="build") + + with when("@3.18:3.19.3"): + depends_on("python@3.5:", type=("build", "run")) + depends_on("py-numpy@1.11.3:", type=("build", "run")) + depends_on("py-scipy@0.18.1:", type=("build", "run")) + depends_on("py-matplotlib@2:", type=("build", "run")) + depends_on("py-flask", type=("build", "run"), when="@:3.18.0") + depends_on("py-setuptools", type="build") + + with when("@3.13:3.15"): + depends_on("python@3.4:", type=("build", "run")) + depends_on("py-numpy@1.11.3:", type=("build", "run")) + depends_on("py-scipy@0.18.1:", type=("build", "run")) + depends_on("py-matplotlib@2:", type=("build", "run")) + depends_on("py-flask", type=("build", "run")) + depends_on("py-setuptools", type="build") 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_astropy/package.py b/repos/spack_repo/builtin/packages/py_astropy/package.py index 9857941cf71..81a89ead234 100644 --- a/repos/spack_repo/builtin/packages/py_astropy/package.py +++ b/repos/spack_repo/builtin/packages/py_astropy/package.py @@ -20,6 +20,9 @@ class PyAstropy(PythonPackage): license("BSD-3-Clause", checked_by="lgarrison") + version("7.2.0", sha256="ae48bc26b1feaeb603cd94bd1fa1aa39137a115fe931b7f13787ab420e8c3070") + version("7.1.1", sha256="6d128f0005e2c34f70113484468bf9d0e4ca1ee15a279cfd08bdd979d38db0f8") + version("7.1.0", sha256="c8f254322295b1b8cf24303d6f155bf7efdb6c1282882b966ce3040eff8c53c5") version("7.0.1", sha256="392feeb443b2437cd4c2e0641a65e0f15ba791e148e9b1e5ed7de7dfcb38e460") version("6.1.0", sha256="6c3b915f10b1576190730ddce45f6245f9927dda3de6e3f692db45779708950f") version("5.1", sha256="1db1b2c7eddfc773ca66fa33bd07b25d5b9c3b5eee2b934e0ca277fa5b1b7b7e") @@ -40,22 +43,28 @@ class PyAstropy(PythonPackage): depends_on("python@3.10:", when="@6.1.0:", type=("build", "run")) depends_on("python@3.8:", when="@5.1:", type=("build", "run")) depends_on("py-setuptools", type="build") + depends_on("py-setuptools@77.0.0:", when="@7.1.0:", type="build") + depends_on("py-setuptools-scm@8:", when="@7.1.0:", type="build") depends_on("py-cython@0.29.13:", type="build") depends_on("py-cython@0.29.30", when="@5.1:6.0", type="build") depends_on("py-cython@3.0", when="@6.1.0:6", type="build") depends_on("py-cython@3", when="@7.0.1:", type="build") - depends_on("py-numpy@2", when="@7.0.1:", type="build") depends_on("py-setuptools-scm@6.2:", when="@5.1:", type="build") depends_on("py-extension-helpers", when="@5.1:", type="build") depends_on("py-extension-helpers@1", when="@7.0.1:", type="build") + depends_on("py-extension-helpers@1.4:1", when="@7.2.0:", type="build") depends_on("pkgconfig", type="build") # in newer pip versions --install-option does not exist depends_on("py-pip@:23.0", when="@:4.0", type="build") + depends_on("py-astropy-iers-data@0.2025.10.27.0.39.10:", when="@7.2.0:", type=("build", "run")) + depends_on("py-astropy-iers-data@0.2025.9.29.0.35.48:", when="@7.1.1:", type=("build", "run")) depends_on("py-astropy-iers-data@0.2025.1.31.12.41.4:", when="@7.0.1:", type=("build", "run")) + depends_on("py-astropy-iers-data@0.2025.4.28.0.37.27:", when="@7.1.0:", type=("build", "run")) depends_on("py-astropy-iers-data", when="@6:", type=("build", "run")) - depends_on("py-numpy@1.23.2:", when="@7.0.1:", type="run") + depends_on("py-numpy@1.24:", when="@7.2.0:", type=("build", "run")) + depends_on("py-numpy@1.23.2:", when="@7.0.1:", type=("build", "run")) depends_on("py-numpy@1.23:", when="@6.1:", type=("build", "run")) depends_on("py-numpy@1.18:", when="@5.1:", type=("build", "run")) depends_on("py-numpy@1.16:", when="@4.0:", type=("build", "run")) @@ -74,8 +83,10 @@ class PyAstropy(PythonPackage): depends_on("py-pyerfa@2.0.1.1:", when="@6.1.0:", type=("build", "run")) depends_on("py-coverage@6.4.4:", when="@7.0.1:", type="test") + depends_on("py-pytest@8:", when="@7.1.0:", type="test") depends_on("py-pytest@7.3:", when="@7.0.1:", type="test") depends_on("py-pytest@7:", type="test") + depends_on("py-pytest-doctestplus@1.4.0:", when="@7.1.0:", type="test") depends_on("py-pytest-doctestplus@0.12:", type="test") depends_on("py-pytest-astropy-header@0.2.1:", type="test") depends_on("py-pytest-astropy@0.10:", type="test") @@ -89,17 +100,22 @@ class PyAstropy(PythonPackage): depends_on("py-scipy@1.8:", when="@6:", type=("build", "run")) depends_on("py-scipy@1.3:", when="@5:", type=("build", "run")) depends_on("py-scipy@0.18:", type=("build", "run")) + depends_on("py-matplotlib@3.8:", when="@7.2.0:", type=("build", "run")) depends_on("py-matplotlib@3.6:", when="@7.0.1:", type=("build", "run")) depends_on("py-matplotlib@3.3:", when="@6:", type=("build", "run")) depends_on("py-matplotlib@3.1:", when="@5:", type=("build", "run")) depends_on("py-matplotlib@2.1:", when="@4:", type=("build", "run")) depends_on("py-matplotlib@2.0:", type=("build", "run")) + depends_on("py-narwhals@1.42.0:", type=("build", "run"), when="@7.2.0:") depends_on("py-certifi@2022.6.15.1:", when="@7.0.1:", type=("build", "run")) depends_on("py-certifi", when="@4.3:", type=("build", "run")) - depends_on("py-dask+array@2022.5.1:", when="@7.0.1:", type=("build", "run")) + depends_on("py-dask+array+dataframe@2024.8.0:", when="@7.2.0:", type=("build", "run")) + depends_on("py-dask+array@2022.5.1:", when="@7.0.1:7.1.1", type=("build", "run")) depends_on("py-dask+array", when="@4.1:", type=("build", "run")) + depends_on("py-h5py@3.9.0:", when="@7.2.0:", type=("build", "run")) depends_on("py-h5py@3.8.0:", when="@7.0.1:", type=("build", "run")) depends_on("py-h5py", type=("build", "run")) + depends_on("py-pyarrow@14.0.2:", when="@7.2.0:", type=("build", "run")) depends_on("py-pyarrow@10.0.1:", when="@7.0.1:", type=("build", "run")) depends_on("py-pyarrow@5:", when="@5:", type=("build", "run")) depends_on("py-beautifulsoup4@4.9.3:", when="@7.0.1:", type=("build", "run")) @@ -111,19 +127,28 @@ class PyAstropy(PythonPackage): depends_on("py-pandas-stubs@2.0:", when="@7.0.1:", type=("build", "run")) depends_on("py-pandas@2:", when="@7.0.1:", type=("build", "run")) depends_on("py-pandas", type=("build", "run")) + depends_on("py-sortedcontainers@2.1.0:", when="@7.2.0:", type=("build", "run")) + depends_on("py-sortedcontainers@1.5.7:", when="@7.1.0:", type=("build", "run")) depends_on("py-sortedcontainers", type=("build", "run")) + depends_on("py-pytz@2016.10:", when="@7.1.0:", type=("build", "run")) depends_on("py-pytz", type=("build", "run")) + depends_on("py-jplephem@2.17.0:", when="@7.2.0:", type=("build", "run")) + depends_on("py-jplephem@2.6:", when="@7.1.0:", type=("build", "run")) depends_on("py-jplephem", type=("build", "run")) depends_on("py-mpmath@1.2.1:", when="@7.0.1:", type=("build", "run")) depends_on("py-mpmath", type=("build", "run")) + depends_on("py-asdf@2.12.0:", when="@7.2.0:", type=("build", "run")) depends_on("py-asdf@2.8.3:", when="@7.0.1:", type=("build", "run")) - depends_on("py-asdf-astropy@0.3:", when="@7.0.1:", type=("build", "run")) depends_on("py-asdf@2.10:", when="@5.1:6", type=("build", "run")) depends_on("py-asdf@2.5:", when="@4.0.1post1:", type=("build", "run")) depends_on("py-asdf@2.3:", type=("build", "run")) + depends_on("py-asdf-astropy@0.3:", when="@7.0.1:", type=("build", "run")) + depends_on("py-asdf-coordinates-schemas@0.2.0:", type=("build", "run"), when="@7.2.0:") depends_on("py-bottleneck@1.3.3:", when="@7.0.1:", type=("build", "run")) depends_on("py-bottleneck", type=("build", "run")) + depends_on("py-ipywidgets@7.7.3:", when="@7.1.0:", type=("build", "run")) depends_on("py-ipywidgets", when="@7.0.1:", type=("build", "run")) + depends_on("py-ipykernel@6.16.0:", when="@7.1.0:", type=("build", "run")) depends_on("py-ipykernel", when="@7.0.1:", type=("build", "run")) # depends_on("py-ipydatagrid", when="@7.0.1:", type=("build", "run")) depends_on("py-ipython@8:", when="@7.0.1:", type=("build", "run")) @@ -133,6 +158,7 @@ class PyAstropy(PythonPackage): depends_on("py-pytest", when="@:6", type=("build", "run")) depends_on("py-fsspec+http@2023.4:", when="@6.1:", type=("build", "run")) depends_on("py-s3fs@2023.4:", when="@6.1:", type=("build", "run")) + # depends_on("py-uncompresspy@0.4:", type=("build", "run")) depends_on("py-typing-extensions@3.10.0.1:", when="@5.0.2:6", type=("build", "run")) # Historical optional dependencies @@ -141,6 +167,8 @@ class PyAstropy(PythonPackage): depends_on("py-bintrees", when="@:3.2.1", type=("build", "run")) conflicts("^py-matplotlib@3.4.0,3.5.2") + # https://github.com/astropy/astropy/issues/19273 + conflicts("^py-numpy@2.4:", when="@:7.1.1") # System dependencies depends_on("erfa", when="@:6") @@ -187,3 +215,10 @@ def skip_modules(self): modules.append("astropy.visualization.wcsaxes") return modules + + def flag_handler(self, name, flags): + (flags, _, _) = super().flag_handler(name, flags) + if name == "cflags": + if self.spec.satisfies("@:6.1.0") and self.spec.satisfies("%gcc@14:"): + flags.append("-Wno-incompatible-pointer-types") + return (flags, None, None) diff --git a/repos/spack_repo/builtin/packages/py_astropy_iers_data/package.py b/repos/spack_repo/builtin/packages/py_astropy_iers_data/package.py index f962a26af3e..1e4ff0192f0 100644 --- a/repos/spack_repo/builtin/packages/py_astropy_iers_data/package.py +++ b/repos/spack_repo/builtin/packages/py_astropy_iers_data/package.py @@ -16,6 +16,18 @@ class PyAstropyIersData(PythonPackage): homepage = "https://github.com/astropy/astropy-iers-data" pypi = "astropy-iers-data/astropy_iers_data-0.2024.4.29.0.28.48.tar.gz" + version( + "0.2025.10.27.0.39.10", + sha256="2a0630f810bcba7978cc5f3f92a45910b5ea95d885302b1879b0132e920302ed", + ) + version( + "0.2025.9.29.0.35.48", + sha256="0a7841c9a0ff41e2abafcde984cb6b271cdfd9cb5b13e01d5ddd0ed2e8fc4065", + ) + version( + "0.2025.4.28.0.37.27", + sha256="840efbe7085a20ab1fe3a93bf5eeba28fcb4a0fc4196cbcc1b06d51a182accb0", + ) version( "0.2025.3.10.0.29.26", sha256="dd4865861f00dec8a442ef8135f034675a7b05f17846562e2ea71678f5dbaa97", @@ -30,6 +42,8 @@ class PyAstropyIersData(PythonPackage): ) depends_on("python@3.8:") - depends_on("py-setuptools", type="build") - depends_on("py-setuptools-scm", type="build") - depends_on("py-wheel", type="build") + depends_on("py-hatchling", when="@0.2025.6.9.14.9.37:", type="build") + depends_on("py-hatch-vcs", when="@0.2025.6.9.14.9.37:", type="build") + depends_on("py-setuptools", when="@:0.2025.6.0.39.3", type="build") + depends_on("py-setuptools-scm", when="@:0.2025.6.0.39.3", type="build") + depends_on("py-wheel", when="@:0.2025.6.0.39.3", type="build") diff --git a/repos/spack_repo/builtin/packages/py_asttokens/package.py b/repos/spack_repo/builtin/packages/py_asttokens/package.py index 8f8fe952ef2..9815b55554a 100644 --- a/repos/spack_repo/builtin/packages/py_asttokens/package.py +++ b/repos/spack_repo/builtin/packages/py_asttokens/package.py @@ -15,6 +15,7 @@ class PyAsttokens(PythonPackage): license("Apache-2.0") + version("3.0.0", sha256="0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7") version("2.4.0", sha256="2e0171b991b2c959acc6c49318049236844a5da1d65ba2672c4880c1c894834e") version("2.2.1", sha256="4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3") version("2.0.8", sha256="c61e16246ecfb2cde2958406b4c8ebc043c9e6d73aaa83c941673b35e5d3a76b") @@ -23,5 +24,6 @@ class PyAsttokens(PythonPackage): depends_on("py-setuptools@44:", type="build") depends_on("py-setuptools-scm+toml@3.4.3:", type="build") - depends_on("py-six@1.12:", when="@2.3:", type=("build", "run")) - depends_on("py-six", type=("build", "run")) + with when("@:2"): + depends_on("py-six@1.12:", when="@2.3:", type=("build", "run")) + depends_on("py-six", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_async_lru/package.py b/repos/spack_repo/builtin/packages/py_async_lru/package.py index 115b6a1d6f6..1362b2055f7 100644 --- a/repos/spack_repo/builtin/packages/py_async_lru/package.py +++ b/repos/spack_repo/builtin/packages/py_async_lru/package.py @@ -15,10 +15,12 @@ class PyAsyncLru(PythonPackage): license("MIT") + version("2.3.0", sha256="89bdb258a0140d7313cf8f4031d816a042202faa61d0ab310a0a538baa1c24b6") version("2.0.5", sha256="481d52ccdd27275f42c43a928b4a50c3bfb2d67af4e78b170e3e0bb39c66e5bb") version("1.0.3", sha256="c2cb9b2915eb14e6cf3e717154b40f715bf90e596d73623677affd0d1fbcd32a") version("1.0.2", sha256="baa898027619f5cc31b7966f96f00e4fc0df43ba206a8940a5d1af5336a477cb") + depends_on("python@3.10:", when="@2.0.5:", type=("build", "run")) depends_on("python@3.9:", when="@2.0.5:", type=("build", "run")) depends_on("python@3.6:", type=("build", "run")) depends_on("py-setuptools", 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_attrs/package.py b/repos/spack_repo/builtin/packages/py_attrs/package.py index 454a2c07239..dd755324fd6 100644 --- a/repos/spack_repo/builtin/packages/py_attrs/package.py +++ b/repos/spack_repo/builtin/packages/py_attrs/package.py @@ -16,6 +16,8 @@ class PyAttrs(PythonPackage): license("MIT") + version("26.1.0", sha256="d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32") + version("25.3.0", sha256="75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b") version("23.1.0", sha256="6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015") version("22.2.0", sha256="c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99") version("22.1.0", sha256="29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6") @@ -31,10 +33,14 @@ class PyAttrs(PythonPackage): version("17.4.0", sha256="1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9") version("16.3.0", sha256="80203177723e36f3bbe15aa8553da6e80d47bfe53647220ccaa9ad7a5e473ccc") + depends_on("python@3.9:", when="@25.4:", type=("build", "run")) + depends_on("py-hatchling", when="@23.1:", type="build") depends_on("py-hatch-vcs", when="@23.1:", type="build") + depends_on("py-hatch-fancy-pypi-readme@23.2:", when="@23.2:", type="build") depends_on("py-hatch-fancy-pypi-readme", when="@23.1:", type="build") + # Historical dependencies with when("@:22.2.0"): depends_on("py-setuptools@40.6.0:", when="@19.1", type="build") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_authlib/package.py b/repos/spack_repo/builtin/packages/py_authlib/package.py new file mode 100644 index 00000000000..509122be103 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_authlib/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 PyAuthlib(PythonPackage): + """The ultimate Python library in building OAuth and OpenID Connect servers. + JWS, JWK, JWA, JWT are included.""" + + homepage = "https://github.com/authlib/authlib" + pypi = "authlib/authlib-1.6.5.tar.gz" + + license("BSD-3-Clause") + version("1.6.7", sha256="dbf10100011d1e1b34048c9d120e83f13b35d69a826ae762b93d2fb5aafc337b") + version("1.6.5", sha256="6aaf9c79b7cc96c900f0b284061691c5d4e61221640a948fe690b556a6d6d10b") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-setuptools", type="build") + + # in setup.py + depends_on("py-cryptography@3.2:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_autograd/package.py b/repos/spack_repo/builtin/packages/py_autograd/package.py index 5be438ff3ff..a38f8ff41f7 100644 --- a/repos/spack_repo/builtin/packages/py_autograd/package.py +++ b/repos/spack_repo/builtin/packages/py_autograd/package.py @@ -22,20 +22,30 @@ class PyAutograd(PythonPackage): examples directory.""" homepage = "https://github.com/HIPS/autograd" - pypi = "autograd/autograd-1.6.2.tar.gz" + pypi = "autograd/autograd-1.8.0.tar.gz" license("MIT") + version("1.8.0", sha256="107374ded5b09fc8643ac925348c0369e7b0e73bbed9565ffd61b8fd04425683") version("1.6.2", sha256="8731e08a0c4e389d8695a40072ada4512641c113b6cace8f4cfbe8eb7e9aedeb") version("1.6.1", sha256="dd0068f3f78fd76cf28cee94358737c3b5e8a1d2acac0b850e14d14e1bca84ac") version("1.6", sha256="b10ad7598bab69251a496210370f7802a21da0ae6a7710197eaae99c3a59b30a") - version("1.5", sha256="d80bd225154d1db13cb4eaccf7a18c358be72092641b68717f96fcf1d16acd0b") - version("1.4", sha256="383de0f537ef2e38b85ff9692593b0cfae8958c9b3bd451b52c255fd9171ffce") - version("1.3", sha256="a15d147577e10de037de3740ca93bfa3b5a7cdfbc34cfb9105429c3580a33ec4") - version("1.2", sha256="a08bfa6d539b7a56e7c9f4d0881044afbef5e75f324a394c2494de963ea4a47d") - - depends_on("py-setuptools", type="build") - depends_on("py-future@0.15.2:", type=("build", "run")) - depends_on("py-numpy@1.12:", type=("build", "run")) - # https://github.com/HIPS/autograd/releases/tag/v1.7.0 - depends_on("py-numpy@:1", when="@:1.6", type=("build", "run")) + + with default_args(deprecated=True): + version("1.5", sha256="d80bd225154d1db13cb4eaccf7a18c358be72092641b68717f96fcf1d16acd0b") + version("1.4", sha256="383de0f537ef2e38b85ff9692593b0cfae8958c9b3bd451b52c255fd9171ffce") + version("1.3", sha256="a15d147577e10de037de3740ca93bfa3b5a7cdfbc34cfb9105429c3580a33ec4") + version("1.2", sha256="a08bfa6d539b7a56e7c9f4d0881044afbef5e75f324a394c2494de963ea4a47d") + + with when("@1.8:"): + with default_args(type=("build", "run")): + depends_on("python@3.9:") + depends_on("py-numpy@2") + depends_on("py-hatchling", type="build") + + with when("@:1.6"): + with default_args(type=("build", "run")): + # https://github.com/HIPS/autograd/releases/tag/v1.7.0 + depends_on("py-future@0.15.2:") + depends_on("py-numpy@1.12:1") + depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_autograd_gamma/package.py b/repos/spack_repo/builtin/packages/py_autograd_gamma/package.py index 85f6fcc51b9..e58a39b8571 100644 --- a/repos/spack_repo/builtin/packages/py_autograd_gamma/package.py +++ b/repos/spack_repo/builtin/packages/py_autograd_gamma/package.py @@ -17,6 +17,7 @@ class PyAutogradGamma(PythonPackage): license("MIT") + version("0.5.0", sha256="f27abb7b8bb9cffc8badcbf59f3fe44a9db39e124ecacf1992b6d952934ac9c4") version("0.4.3", sha256="2cb570cbb8da61ede937ccc004d87d3924108f754b351a86cdd2ad31ace6cdf6") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_autopep8/package.py b/repos/spack_repo/builtin/packages/py_autopep8/package.py index f02da852dbe..392db1074b4 100644 --- a/repos/spack_repo/builtin/packages/py_autopep8/package.py +++ b/repos/spack_repo/builtin/packages/py_autopep8/package.py @@ -16,17 +16,24 @@ class PyAutopep8(PythonPackage): license("MIT") + version("2.3.2", sha256="89440a4f969197b69a995e4ce0661b031f455a9f776d2c5ba3dbd83466931758") + version("2.1.2", sha256="77b07146bf127aa88de78efc270d395a54ebb8284fdbe6542c4aeb8d969f4d9a") version("1.7.0", sha256="ca9b1a83e53a7fad65d731dc7a2a2d50aa48f43850407c59f6a1a306c4201142") version("1.6.0", sha256="44f0932855039d2c15c4510d6df665e4730f2b8582704fa48f9c55bd3e17d979") version("1.5.7", sha256="276ced7e9e3cb22e5d7c14748384a5cf5d9002257c0ed50c0e075b68011bb6d0") version("1.4.4", sha256="4d8eec30cc81bc5617dbf1218201d770dc35629363547f17577c61683ccfb3ee") version("1.3.3", sha256="ff787bffb812818c3071784b5ce9a35f8c481a0de7ea0ce4f8b68b8788a12f30") + depends_on("python@3.8.0:", when="@2.1.0:", type=("build", "run")) + depends_on("python@3.9.0:", when="@2.3.2:", type=("build", "run")) + depends_on("py-pycodestyle@2.3.0:", when="@1.3:", type=("build", "run")) depends_on("py-pycodestyle@2.4.0:", when="@1.4:", type=("build", "run")) depends_on("py-pycodestyle@2.7.0:", when="@1.5.6:", type=("build", "run")) depends_on("py-pycodestyle@2.8.0:", when="@1.6.0:", type=("build", "run")) depends_on("py-pycodestyle@2.9.1:", when="@1.7.0:", type=("build", "run")) + depends_on("py-pycodestyle@2.11:", when="@2.1.0:", type=("build", "run")) + depends_on("py-pycodestyle@2.12:", when="@2.3.0:", type=("build", "run")) depends_on("py-toml", when="@1.5.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_autoreject/package.py b/repos/spack_repo/builtin/packages/py_autoreject/package.py new file mode 100644 index 00000000000..fc58244096a --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_autoreject/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 PyAutoreject(PythonPackage): + """Automated rejection and repair of epochs in M/EEG.""" + + homepage = "http://autoreject.github.io" + pypi = "autoreject/autoreject-0.4.3.tar.gz" + git = "https://github.com/autoreject/autoreject.git" + + license("BSD-3-Clause") + + version("0.4.3", sha256="bd977ea3c88dc68550fbd5dbb98515b3b811907ba78afe8e412632edde6c8fc5") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools", type="build") + + depends_on("py-numpy@1.20.2:", type=("build", "run")) + depends_on("py-scipy@1.6.3:", type=("build", "run")) + depends_on("py-mne+hdf5@1:", type=("build", "run")) + depends_on("py-scikit-learn@0.24.2:", type=("build", "run")) + depends_on("py-joblib", type=("build", "run")) + depends_on("py-matplotlib@3.4:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_avro_json_serializer/package.py b/repos/spack_repo/builtin/packages/py_avro_json_serializer/package.py index e6588c3bc5c..5a3aa62c1f9 100644 --- a/repos/spack_repo/builtin/packages/py_avro_json_serializer/package.py +++ b/repos/spack_repo/builtin/packages/py_avro_json_serializer/package.py @@ -15,6 +15,7 @@ class PyAvroJsonSerializer(PythonPackage): license("Apache-2.0") + version("1.0.4", sha256="7453a3239b9aa8277321c668b27e49895b4c532a6c2f7b2884e10cdda7b9d381") version("0.4", sha256="f9dac2dac92036c5dd5aba8c716545fc0a0630cc365a51ab15bc2ac47eac28f1") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_avro_python3/package.py b/repos/spack_repo/builtin/packages/py_avro_python3/package.py index aabd66f570b..4eae7ca66d7 100644 --- a/repos/spack_repo/builtin/packages/py_avro_python3/package.py +++ b/repos/spack_repo/builtin/packages/py_avro_python3/package.py @@ -17,6 +17,7 @@ class PyAvroPython3(PythonPackage): license("Apache-2.0") + version("1.10.2", sha256="3b63f24e6b04368c3e4a6f923f484be0230d821aad65ac36108edbff29e9aaab") version("1.10.0", sha256="a455c215540b1fceb1823e2a918e94959b54cb363307c97869aa46b5b55bde05") version("1.9.1", sha256="daab2cea71b942a1eb57d700d4a729e9d6cd93284d4dd4d65a378b9f958aa0d2") diff --git a/repos/spack_repo/builtin/packages/py_awkward/package.py b/repos/spack_repo/builtin/packages/py_awkward/package.py index e46acb566fd..24d1134f07a 100644 --- a/repos/spack_repo/builtin/packages/py_awkward/package.py +++ b/repos/spack_repo/builtin/packages/py_awkward/package.py @@ -10,7 +10,7 @@ class PyAwkward(PythonPackage): """Manipulate JSON-like data with NumPy-like idioms.""" - git = "https://github.com/scikit-hep/awkward-1.0.git" + git = "https://github.com/scikit-hep/awkward.git" pypi = "awkward/awkward-1.1.2.tar.gz" homepage = "https://awkward-array.org" @@ -19,6 +19,11 @@ class PyAwkward(PythonPackage): license("BSD-3-Clause") version("main", branch="main") + version("2.9.0", sha256="0ebe50ca872a8790d4148c0f6f0844fb0c345a6ff3840c1611065ef27e8b6e1b") + version("2.8.12", sha256="90ffe41d081b10ab24337c76537aa9a25920e6653d1ae562b1537dc1934223f4") + version("2.8.5", sha256="4b9049440bb98214e05908098afd0d4f66af0b1b23c158159f9774db27447c89") + version("2.7.4", sha256="e79b4bfd68b2030123b4bb67d5179f92c7e9bede1dadc5a1416fce0acb6cc975") + version("2.6.10", sha256="3e8397e9bc4902c02d521d19552a6afb2bd94406c767bc85894bdb4ab3e9c4dc") version("2.6.6", sha256="6eeb426ca41b51fe3c36fbe767b90259979b08c14e3562497a71195a447c8b3c") version("2.1.1", sha256="fda8e1634161b8b46b151c074ff0fc631fc0feaec2ec277c4b40a2095110b0dd") version("2.1.0", sha256="73f7a76a1fb43e2557befee54b1381f3e6d90636983cdc54da1c2bcb9ad4c1a8") @@ -69,19 +74,31 @@ class PyAwkward(PythonPackage): ("@2.0.9", "@10"), ("@2.0.10", "@11"), ("@2.1.0:2.1.1", "@12"), - ("@2.6.6:", "@35"), + ("@2.6.6", "@35"), + ("@2.6.10", "@40"), + ("@2.7.4", "@44"), + ("@2.8.5", "@47"), + ("@2.8.6:2.8.7", "@48"), + ("@2.8.8", "@49"), + ("@2.8.9:2.8.10", "@50"), + ("@2.8.11:2.8.12", "@51"), + ("@2.9.0", "@52"), ] + depends_on("py-awkward-cpp", type=("build", "run")) for _awkward, _awkward_cpp in _awkward_to_awkward_cpp_map: - depends_on("py-awkward-cpp{}".format(_awkward_cpp), when=_awkward, type=("build", "run")) + depends_on(f"py-awkward-cpp{_awkward_cpp}", when=_awkward, type=("build", "run")) depends_on("python@2.7:2.8,3.5:", type=("build", "run")) depends_on("python@3.6:", when="@1.9:", type=("build", "run")) depends_on("python@3.7:", when="@1.10:", type=("build", "run")) depends_on("python@3.8:", when="@2.3:", type=("build", "run")) + depends_on("python@3.9:", when="@2.7:", type=("build", "run")) + depends_on("python@3.10:", when="@2.9:", type=("build", "run")) depends_on("py-numpy@1.13.1:", when="@:1", type=("build", "run")) depends_on("py-numpy@1.14.5:", when="@2.0", type=("build", "run")) depends_on("py-numpy@1.17.0:", when="@2.1:", type=("build", "run")) depends_on("py-numpy@1.18.0:", when="@2.3:", type=("build", "run")) + depends_on("py-numpy@1.21.3:", when="@2.9:", type=("build", "run")) depends_on("py-pybind11", type=("build", "link")) depends_on("py-importlib-resources", when="@2:2.3 ^python@:3.8", type=("build", "run")) depends_on("py-typing-extensions@4.1:", when="@2: ^python@:3.10", type=("build", "run")) @@ -93,6 +110,9 @@ class PyAwkward(PythonPackage): depends_on("py-importlib-metadata@4.13.0:", when="@2.4.0:", type=("build", "run")) depends_on("py-fsspec@2022.11.0:", when="@2.6.0:", type=("build", "run")) + depends_on("cxx", type="build") + depends_on("c", type="build") + @when("@1.9.0:") def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("CMAKE_ARGS", "-DAWKWARD_EXTERNAL_PYBIND11=TRUE") diff --git a/repos/spack_repo/builtin/packages/py_awkward_cpp/package.py b/repos/spack_repo/builtin/packages/py_awkward_cpp/package.py index 852e19a92c1..dcc9a58499f 100644 --- a/repos/spack_repo/builtin/packages/py_awkward_cpp/package.py +++ b/repos/spack_repo/builtin/packages/py_awkward_cpp/package.py @@ -12,13 +12,21 @@ class PyAwkwardCpp(PythonPackage): It is not useful on its own, only as a dependency for py-awkward.""" git = "https://github.com/scikit-hep/awkward.git" - pypi = "awkward-cpp/awkward-cpp-9.tar.gz" + pypi = "awkward-cpp/awkward_cpp-36.tar.gz" homepage = "https://awkward-array.org" maintainers("vvolkl", "wdconinc") license("BSD-3-Clause") + version("52", sha256="ef141eb20544df261b973c986cfae57be329022061be86817506add676597275") + version("51", sha256="8c74e8f9fb2501766d1b0f9f2eb8777e384411d33534a8fa667d56599223a04b") + version("50", sha256="264b6fb4e82acc1057b5b2ff0d33fabc361032528e233815cd2224c6dbc96d8e") + version("49", sha256="cb84e0f484453a580682731ae3058e6f3aac066558ddf015e67fd9515717e1de") + version("48", sha256="368a9f7d317e7da42d291f51b814e9580825db7d3eb7026b0d47427bfad23e2f") + version("47", sha256="676cf4976810edab32187edf5a8a716af95047b9038c96d27d3be44f1331950f") + version("44", sha256="8dc499288d6d16b2ea20b51a27d5047e51a247b6aacfcbcb3b302cad6d3c87d8") + version("40", sha256="ca5658a3db04cc80e9c5d0eb9f7db41290d882c123a068bef724a879c9084367") version("35", sha256="1f8b112a597bd2438794e1a721a63aa61869fa9598a17ac6bd811ad6f6400d06") version("12", sha256="429f7fcc37a671afa67fe9680f2edc3a123d1c74d399e5889c654f9529f9f8f2") version("11", sha256="02d719a4da7487564b29b8e8b78925a32ac818b6f5572c2f55912b4e0e59c7a4") @@ -36,7 +44,8 @@ class PyAwkwardCpp(PythonPackage): depends_on("python@3.7:", type=("build", "run")) depends_on("python@3.8:", type=("build", "run"), when="@19:") - depends_on("py-scikit-build-core@0.2.0:+pyproject", when="@10:", type="build") + depends_on("py-scikit-build-core@0.9:", when="@36:", type="build") + depends_on("py-scikit-build-core@0.10:", when="@38:", type="build") depends_on("py-pybind11", type=("build", "link")) depends_on("py-numpy@1.17.0:", when="@12:", type=("build", "run")) depends_on("py-numpy@1.18.0:", when="@19:", type=("build", "run")) @@ -44,6 +53,13 @@ class PyAwkwardCpp(PythonPackage): # older versions depends_on("py-numpy@1.14.5:", when="@:11", type=("build", "run")) depends_on("py-scikit-build-core@0.1.3:+pyproject", when="@:9", type="build") + depends_on("py-scikit-build-core@0.2.0:+pyproject", when="@10:35", type="build") # https://github.com/scikit-hep/awkward/issues/3132#issuecomment-2136042870 conflicts("%gcc@14:", when="@:33") + + def url_for_version(self, version): + if version <= Version("35"): + return super().url_for_version(version).replace("_", "-") + else: + return super().url_for_version(version) diff --git a/repos/spack_repo/builtin/packages/py_awscrt/package.py b/repos/spack_repo/builtin/packages/py_awscrt/package.py index a7b95842a06..f0436c52c65 100644 --- a/repos/spack_repo/builtin/packages/py_awscrt/package.py +++ b/repos/spack_repo/builtin/packages/py_awscrt/package.py @@ -17,6 +17,8 @@ class PyAwscrt(PythonPackage): license("Apache-2.0") + version("0.31.2", sha256="552555de1beff02d72a1f6d384cd49c5a7c283418310eae29d21bcb749c65792") + version("0.29.2", sha256="c78d81b1308d42fda1eb21d27fcf26579137b821043e528550f2cfc6c09ab9ff") version("0.20.9", sha256="243785ac9ee64945e0479c2384325545f29597575743ce84c371556d1014e63e") version("0.19.19", sha256="1c1511535dee146a6c26a382ed3ead56259a105b3b7d7d823553ae567d038dfe") version("0.19.18", sha256="350b6efd8ebee082ea3f3e52c59a3c3ec594cdaf01db8b4853dceb9fec90c89d") @@ -28,6 +30,8 @@ class PyAwscrt(PythonPackage): depends_on("cmake@3.1:", type=("build")) depends_on("openssl", type=("build"), when="platform=linux") depends_on("py-setuptools", type=("build")) + # awscrt>=0.29 requires setuptools.command.bdist_wheel introduced in v71. + depends_on("py-setuptools@75.3.1:", when="@0.29:", type=("build")) # On Linux, tell aws-crt-python to use libcrypto from spack (openssl) def setup_build_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/py_azure_cli/package.py b/repos/spack_repo/builtin/packages/py_azure_cli/package.py deleted file mode 100644 index 945c151c7d9..00000000000 --- a/repos/spack_repo/builtin/packages/py_azure_cli/package.py +++ /dev/null @@ -1,107 +0,0 @@ -# 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 PyAzureCli(PythonPackage): - """Microsoft Azure Command-Line Tools.""" - - homepage = "https://github.com/Azure/azure-cli" - pypi = "azure-cli/azure-cli-2.9.1.tar.gz" - - license("MIT") - - version("2.9.1", sha256="749d850f73ea8956ab510288c1061dd7066180a8583081a6d560fdc7ac8314d6") - - depends_on("py-setuptools", type="build") - depends_on("py-antlr4-python3-runtime@4.7.2:4.7", type=("build", "run")) - depends_on("py-azure-batch@9.0:9", type=("build", "run")) - depends_on("py-azure-cli-command-modules-nspkg@2.0:2", type=("build", "run")) - depends_on("py-azure-cli-core@2.9.1", type=("build", "run")) - depends_on("py-azure-cli-nspkg@3.0.3:3", type=("build", "run")) - depends_on("py-azure-cosmos@3.0.2:3", type=("build", "run")) - depends_on("py-azure-datalake-store@0.0.48:0.0", type=("build", "run")) - depends_on("py-azure-functions-devops-build@0.0.22:0.0", type=("build", "run")) - depends_on("py-azure-graphrbac@0.60.0:0.60", type=("build", "run")) - depends_on("py-azure-keyvault@1.1:1", type=("build", "run")) - depends_on("py-azure-mgmt-advisor@2.0.1:2", type=("build", "run")) - depends_on("py-azure-mgmt-apimanagement@0.1.0:0.1", type=("build", "run")) - depends_on("py-azure-mgmt-applicationinsights@0.1.1:0.1", type=("build", "run")) - depends_on("py-azure-mgmt-appconfiguration@0.4.0:0.4", type=("build", "run")) - depends_on("py-azure-mgmt-authorization@0.52.0:0.52", type=("build", "run")) - depends_on("py-azure-mgmt-batch@9.0.0:9.0", type=("build", "run")) - depends_on("py-azure-mgmt-batchai@2.0:2", type=("build", "run")) - depends_on("py-azure-mgmt-billing@0.2:0", type=("build", "run")) - depends_on("py-azure-mgmt-botservice@0.2.0:0.2", type=("build", "run")) - depends_on("py-azure-mgmt-cdn@4.1.0rc1", type=("build", "run")) - depends_on("py-azure-mgmt-cognitiveservices@6.2.0:6.2", type=("build", "run")) - depends_on("py-azure-mgmt-compute@13.0:13", type=("build", "run")) - depends_on("py-azure-mgmt-consumption@2.0:2", type=("build", "run")) - depends_on("py-azure-mgmt-containerinstance@1.4:1", type=("build", "run")) - depends_on("py-azure-mgmt-containerregistry@3.0.0rc14", type=("build", "run")) - depends_on("py-azure-mgmt-containerservice@9.0.1:9.0", type=("build", "run")) - depends_on("py-azure-mgmt-cosmosdb@0.15.0:0.15", type=("build", "run")) - depends_on("py-azure-mgmt-datalake-analytics@0.2.1:0.2", type=("build", "run")) - depends_on("py-azure-mgmt-datalake-store@0.5.0:0.5", type=("build", "run")) - depends_on("py-azure-mgmt-datamigration@0.1.0:0.1", type=("build", "run")) - depends_on("py-azure-mgmt-deploymentmanager@0.2.0:0.2", type=("build", "run")) - depends_on("py-azure-mgmt-devtestlabs@4.0:4", type=("build", "run")) - depends_on("py-azure-mgmt-dns@2.1:2", type=("build", "run")) - depends_on("py-azure-mgmt-eventgrid@3.0.0rc7", type=("build", "run")) - depends_on("py-azure-mgmt-eventhub@4.0.0:4", type=("build", "run")) - depends_on("py-azure-mgmt-hdinsight@1.5.1:1.5", type=("build", "run")) - depends_on("py-azure-mgmt-imagebuilder@0.4.0:0.4", type=("build", "run")) - depends_on("py-azure-mgmt-iotcentral@3.0.0:3.0", type=("build", "run")) - depends_on("py-azure-mgmt-iothub@0.12.0:0.12", type=("build", "run")) - depends_on("py-azure-mgmt-iothubprovisioningservices@0.2.0:0.2", type=("build", "run")) - depends_on("py-azure-mgmt-keyvault@2.2.0:2.2", type=("build", "run")) - depends_on("py-azure-mgmt-kusto@0.3.0:0.3", type=("build", "run")) - depends_on("py-azure-mgmt-loganalytics@0.7.0:0.7", type=("build", "run")) - depends_on("py-azure-mgmt-managedservices@1.0:1", type=("build", "run")) - depends_on("py-azure-mgmt-managementgroups@0.1:0", type=("build", "run")) - depends_on("py-azure-mgmt-maps@0.1.0:0.1", type=("build", "run")) - depends_on("py-azure-mgmt-marketplaceordering@0.1:0", type=("build", "run")) - depends_on("py-azure-mgmt-media@2.1:2", type=("build", "run")) - depends_on("py-azure-mgmt-monitor@0.10.0:0.10", type=("build", "run")) - depends_on("py-azure-mgmt-msi@0.2:0", type=("build", "run")) - depends_on("py-azure-mgmt-netapp@0.8.0:0.8", type=("build", "run")) - depends_on("py-azure-mgmt-network@11.0.0:11.0", type=("build", "run")) - depends_on("py-azure-mgmt-policyinsights@0.5.0:0.5", type=("build", "run")) - depends_on("py-azure-mgmt-privatedns@0.1.0:0.1", type=("build", "run")) - depends_on("py-azure-mgmt-rdbms@2.2.0:2.2", type=("build", "run")) - depends_on("py-azure-mgmt-recoveryservices@0.4.0:0.4", type=("build", "run")) - depends_on("py-azure-mgmt-recoveryservicesbackup@0.6.0:0.6", type=("build", "run")) - depends_on("py-azure-mgmt-redhatopenshift@0.1.0", type=("build", "run")) - depends_on("py-azure-mgmt-redis@7.0", type=("build", "run")) - depends_on("py-azure-mgmt-relay@0.1.0:0.1", type=("build", "run")) - depends_on("py-azure-mgmt-reservations@0.6.0", type=("build", "run")) - depends_on("py-azure-mgmt-search@2.0:2", type=("build", "run")) - depends_on("py-azure-mgmt-security@0.4.1:0.4", type=("build", "run")) - depends_on("py-azure-mgmt-servicebus@0.6.0:0.6", type=("build", "run")) - depends_on("py-azure-mgmt-servicefabric@0.4.0:0.4", type=("build", "run")) - depends_on("py-azure-mgmt-signalr@0.4.0:0.4", type=("build", "run")) - depends_on("py-azure-mgmt-sql@0.19.0:0.19", type=("build", "run")) - depends_on("py-azure-mgmt-sqlvirtualmachine@0.5.0:0.5", type=("build", "run")) - depends_on("py-azure-mgmt-storage@11.1.0:11.1", type=("build", "run")) - depends_on("py-azure-mgmt-trafficmanager@0.51.0:0.51", type=("build", "run")) - depends_on("py-azure-mgmt-web@0.47.0:0.47", type=("build", "run")) - depends_on("py-azure-multiapi-storage@0.3.2:0.3", type=("build", "run")) - depends_on("py-azure-loganalytics@0.1.0:0.1", type=("build", "run")) - depends_on("py-azure-storage-common@1.4:1", type=("build", "run")) - depends_on("py-cryptography@2.3.1:2", type=("build", "run")) - depends_on("py-fabric@2.4:2", type=("build", "run")) - depends_on("py-jsmin@2.2.2:2.2", type=("build", "run")) - depends_on("py-pytz@2019.1", type=("build", "run")) - depends_on("py-scp@0.13.2:0.13", type=("build", "run")) - depends_on("py-sshtunnel@0.1.4:0.1", type=("build", "run")) - depends_on("py-urllib3@1.18:1+secure", type=("build", "run")) - depends_on("py-vsts-cd-manager@1.0.2:1.0", type=("build", "run")) - depends_on("py-websocket-client@0.56.0:0.56", type=("build", "run")) - depends_on("py-xmltodict@0.12:0", type=("build", "run")) - depends_on("py-javaproperties@0.5.1", type=("build", "run")) - depends_on("py-jsondiff@1.2.0", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_azure_common/package.py b/repos/spack_repo/builtin/packages/py_azure_common/package.py index 2fe5560116e..bc7dc08bbeb 100644 --- a/repos/spack_repo/builtin/packages/py_azure_common/package.py +++ b/repos/spack_repo/builtin/packages/py_azure_common/package.py @@ -14,6 +14,7 @@ class PyAzureCommon(PythonPackage): homepage = "https://github.com/Azure/azure-sdk-for-python" pypi = "azure-common/azure-common-1.1.25.zip" + version("1.1.28", sha256="4ac0cd3214e36b6a1b6a442686722a5d8cc449603aa833f3f0f40bda836704a3") version("1.1.25", sha256="ce0f1013e6d0e9faebaf3188cc069f4892fc60a6ec552e3f817c1a2f92835054") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_azureml_automl_core/package.py b/repos/spack_repo/builtin/packages/py_azureml_automl_core/package.py deleted file mode 100644 index 4168bcbb743..00000000000 --- a/repos/spack_repo/builtin/packages/py_azureml_automl_core/package.py +++ /dev/null @@ -1,23 +0,0 @@ -# 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 PyAzuremlAutomlCore(PythonPackage): - """The azureml-automl-core package is a package containing functionality - used by the azureml-train-automl package.""" - - homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_automl_core/azureml_automl_core-1.11.0-py3-none-any.whl" - - version("1.23.0", sha256="1fa4a900856b15e1ec9a6bb949946ed0c873a5a54da3db592f03dbb46a117ceb") - - depends_on("python@3.5:3", type=("build", "run")) - - depends_on("py-azureml-dataset-runtime@1.23.0:1.23", when="@1.23.0", type=("build", "run")) - depends_on("py-azureml-telemetry@1.23.0:1.23", when="@1.23.0", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_azureml_core/package.py b/repos/spack_repo/builtin/packages/py_azureml_core/package.py deleted file mode 100644 index 0d408e23c9b..00000000000 --- a/repos/spack_repo/builtin/packages/py_azureml_core/package.py +++ /dev/null @@ -1,64 +0,0 @@ -# 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 PyAzuremlCore(PythonPackage): - """The azureml-core contains functionality for creating and managing: - * Azure Machine Learning workspaces, experiments and runs; - * Machine learning compute respources; - * Models, images and web services. - """ - - homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_core/azureml_core-1.11.0-py3-none-any.whl" - - version( - "1.23.0", - sha256="0965d0741e39cdb95cff5880dbf1a55fdd87cd9fc316884f965668e6cc36e628", - deprecated=True, - ) - version( - "1.11.0", - sha256="df8a01b04bb156852480de0bdd78434ed84f386e1891752bdf887faeaa2ca417", - deprecated=True, - ) - version( - "1.8.0", - sha256="a0f2b0977f18fb7dcb88c314594a4a85c636a36be3d582be1cae25655fea6105", - deprecated=True, - ) - - depends_on("python@3.5:3.8", type=("build", "run")) - depends_on("py-pytz", type=("build", "run")) - depends_on("py-backports-tempfile", type=("build", "run")) - depends_on("py-pathspec", type=("build", "run")) - depends_on("py-requests@2.19.1:2", type=("build", "run")) - depends_on("py-azure-mgmt-resource@1.2.1:14", type=("build", "run")) - depends_on("py-azure-mgmt-containerregistry@2.0.0:", type=("build", "run")) - depends_on("py-azure-mgmt-storage@1.5.0:15", type=("build", "run")) - depends_on("py-azure-mgmt-keyvault@0.40.0:6", type=("build", "run")) - depends_on("py-azure-mgmt-authorization@0.40.0:0", type=("build", "run")) - depends_on("py-azure-mgmt-network@10.0:10", when="@1.8.0", type=("build", "run")) - depends_on("py-azure-graphrbac@0.40.0:0", type=("build", "run")) - depends_on("py-azure-common@1.1.12:", type=("build", "run")) - depends_on("py-msrest@0.5.1:", type=("build", "run")) - depends_on("py-msrestazure@0.4.33:", type=("build", "run")) - depends_on("py-urllib3@1.23:", type=("build", "run")) - depends_on("py-cryptography@:1.8,2.3:3.2", type=("build", "run")) - depends_on("py-python-dateutil@2.7.3:", type=("build", "run")) - depends_on("py-ndg-httpsclient", type=("build", "run")) - depends_on("py-secretstorage", type=("build", "run")) - depends_on("py-ruamel-yaml@0.15.35:", type=("build", "run")) - depends_on("py-jsonpickle", type=("build", "run")) - depends_on("py-contextlib2", type=("build", "run")) - depends_on("py-docker", type=("build", "run")) - depends_on("py-pyjwt@:2", type=("build", "run")) - depends_on("py-adal@1.2.0:", type=("build", "run")) - depends_on("py-pyopenssl@:20", type=("build", "run")) - depends_on("py-jmespath", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_azureml_dataprep/package.py b/repos/spack_repo/builtin/packages/py_azureml_dataprep/package.py deleted file mode 100644 index a9e4406ae7e..00000000000 --- a/repos/spack_repo/builtin/packages/py_azureml_dataprep/package.py +++ /dev/null @@ -1,29 +0,0 @@ -# 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 PyAzuremlDataprep(PythonPackage): - """Azure ML Data Preparation SDK.""" - - homepage = "https://docs.microsoft.com/en-us/python/api/overview/azure/ml/?view=azure-ml-py" - url = "https://pypi.io/packages/py3/a/azureml_dataprep/azureml_dataprep-2.0.2-py3-none-any.whl" - - version("2.11.0", sha256="755c0d7cfe228705aee7adc97813fb6d7d6ecb048b66f47c1fd5897f2709c3a2") - version("2.10.1", sha256="a36f807112ff1e64d21265b8e7f40154c93e3bead539e2a74c9d74200fd77c86") - - variant("fuse", default=False, description="Build with FUSE support") - - depends_on("python@3:", type=("build", "run")) - depends_on("py-dotnetcore2@2.1.14:2", type=("build", "run")) - depends_on("py-azureml-dataprep-native@30.0.0:30", when="@2.10.0:", type=("build", "run")) - depends_on("py-azureml-dataprep-rslex@1.9.0:1.9", when="@2.11.0:", type=("build", "run")) - depends_on("py-azureml-dataprep-rslex@1.8.0:1.8", when="@2.10.1", type=("build", "run")) - depends_on("py-cloudpickle@1.1.0:1", type=("build", "run")) - depends_on("py-azure-identity@1.2.0:1.4", when="@2.10.0:", type=("build", "run")) - depends_on("py-fusepy@3.0.1:3", when="+fuse", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_azureml_dataprep_native/package.py b/repos/spack_repo/builtin/packages/py_azureml_dataprep_native/package.py deleted file mode 100644 index c3a42a88ea3..00000000000 --- a/repos/spack_repo/builtin/packages/py_azureml_dataprep_native/package.py +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import sys - -from spack_repo.builtin.build_systems.python import PythonPackage - -from spack.package import * - - -class PyAzuremlDataprepNative(PythonPackage): - """Python Package for AzureML DataPrep specific native extensions.""" - - homepage = "https://docs.microsoft.com/en-us/python/api/overview/azure/ml/?view=azure-ml-py" - - skip_version_audit = ["platform=windows"] - - if sys.platform == "darwin": - version( - "30.0.0-py3.9", - sha256="eaf3fcd9f965e87b03fe89d7c6fe6abce53483a79afc963e4981061f4c250e85", - url="https://pypi.io/packages/cp39/a/azureml_dataprep_native/azureml_dataprep_native-30.0.0-cp39-cp39-macosx_10_9_x86_64.whl", - ) - version( - "30.0.0-py3.8", - sha256="6772b638f9d03a041b17ce4343061f5d543019200904b9d361b2b2629c3595a7", - url="https://pypi.io/packages/cp38/a/azureml_dataprep_native/azureml_dataprep_native-30.0.0-cp38-cp38-macosx_10_9_x86_64.whl", - deprecated=True, - ) - elif sys.platform.startswith("linux"): - version( - "30.0.0-py3.9", - sha256="b8673136948f682c84d047feacbfee436df053cba4f386f31c4c3a245a4e3646", - url="https://pypi.io/packages/cp39/a/azureml_dataprep_native/azureml_dataprep_native-30.0.0-cp39-cp39-manylinux1_x86_64.whl", - ) - version( - "30.0.0-py3.8", - sha256="d07cf20f22b14c98576e135bbad9bb8aaa3108941d2beaadf050b4238bc93a18", - url="https://pypi.io/packages/cp38/a/azureml_dataprep_native/azureml_dataprep_native-30.0.0-cp38-cp38-manylinux1_x86_64.whl", - deprecated=True, - ) - - depends_on("python@3.9.0:3.9", when="@30.0.0-py3.9", type=("build", "run")) - depends_on("python@3.8.0:3.8", when="@30.0.0-py3.8", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_azureml_dataprep_rslex/package.py b/repos/spack_repo/builtin/packages/py_azureml_dataprep_rslex/package.py deleted file mode 100644 index 3956439e00a..00000000000 --- a/repos/spack_repo/builtin/packages/py_azureml_dataprep_rslex/package.py +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import sys - -from spack_repo.builtin.build_systems.python import PythonPackage - -from spack.package import * - - -class PyAzuremlDataprepRslex(PythonPackage): - """Azure Machine Learning Data Prep RsLex is a Rust implementation of Data Prep's - capabilities to load, transform, and write data for machine learning workflows.""" - - homepage = "https://docs.microsoft.com/en-us/python/api/overview/azure/ml/?view=azure-ml-py" - - skip_version_audit = ["platform=windows"] - - if sys.platform == "darwin": - version( - "1.9.0-py3.9", - sha256="9bdaa31d129dac19ee20d5a3aad1726397e90d8d741b4f6de4554040800fefe8", - url="https://pypi.io/packages/cp39/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", - ) - version( - "1.9.0-py3.8", - sha256="9b2e741ac1c53d3f7e6061d264feccf157d97e404c772933a176e6021014484e", - url="https://pypi.io/packages/cp38/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", - deprecated=True, - ) - - version( - "1.8.0-py3.9", - sha256="677c25a7e23ec7f91d25aa596f382f7f3b6d60fbc3258bead2b2a6aa42f3a16d", - url="https://pypi.io/packages/cp39/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.8.0-cp39-cp39-macosx_10_9_x86_64.whl", - ) - version( - "1.8.0-py3.8", - sha256="d7f2dec06296544b1707f5b01c6a4eaad744b4abfe9e8e89830b561c84d95a7a", - url="https://pypi.io/packages/cp38/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.8.0-cp38-cp38-macosx_10_9_x86_64.whl", - deprecated=True, - ) - elif sys.platform.startswith("linux"): - version( - "1.9.0-py3.9", - sha256="79d52bb427e3ca781a645c4f11f7a8e5e2c8f61e61bfc162b4062d8e47bcf3d6", - url="https://pypi.io/packages/cp39/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.9.0-cp39-cp39-manylinux1_x86_64.whl", - ) - version( - "1.9.0-py3.8", - sha256="a52461103b45867dd919bab593bb6f2426c9b5f5a435081e82a3c57c54c3add6", - url="https://pypi.io/packages/cp38/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.9.0-cp38-cp38-manylinux1_x86_64.whl", - deprecated=True, - ) - - version( - "1.8.0-py3.9", - sha256="e251a077669703ca117b157b225fbc20832169f913476cf79c01a5c6f8ff7a50", - url="https://pypi.io/packages/cp39/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.8.0-cp39-cp39-manylinux1_x86_64.whl", - ) - version( - "1.8.0-py3.8", - sha256="2ebfa164f0933a5cec383cd27ba10d33861a73237ef481ada5a9a822bb55514a", - url="https://pypi.io/packages/cp38/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.8.0-cp38-cp38-manylinux1_x86_64.whl", - deprecated=True, - ) - - depends_on("python@3.9.0:3.9", when="@1.9.0-py3.9,1.8.0-py3.9", type=("build", "run")) - depends_on("python@3.8.0:3.8", when="@1.9.0-py3.8,1.8.0-py3.8", type=("build", "run")) - - requires("target=x86_64:", msg="py-azureml-dataprep-rslex is available x86_64 only") diff --git a/repos/spack_repo/builtin/packages/py_azureml_dataset_runtime/package.py b/repos/spack_repo/builtin/packages/py_azureml_dataset_runtime/package.py deleted file mode 100644 index e53d2f93a06..00000000000 --- a/repos/spack_repo/builtin/packages/py_azureml_dataset_runtime/package.py +++ /dev/null @@ -1,26 +0,0 @@ -# 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 PyAzuremlDatasetRuntime(PythonPackage): - """The purpose of this package is to coordinate dependencies within - AzureML packages. It is not intended for public use.""" - - homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml-dataset-runtime/azureml_dataset_runtime-1.11.0.post1-py3-none-any.whl" - - version("1.23.0", sha256="96ca73d03ffedc0dd336d9383d2e17cf74548a89fc7ca4c201c599817c97bbc6") - - variant("fuse", default=False, description="Build with FUSE support") - - depends_on("python@3.0:3", type=("build", "run")) - depends_on("py-azureml-dataprep@2.10.0:2.10", when="@1.23.0", type=("build", "run")) - depends_on("py-pyarrow@0.17.0:1", when="@1.23.0", type=("build", "run")) - depends_on("py-numpy@:1.19.2,1.19.4:", when="@1.23.0:", type=("build", "run")) - depends_on("py-fusepy@3.0.1:3", when="+fuse", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_azureml_pipeline/package.py b/repos/spack_repo/builtin/packages/py_azureml_pipeline/package.py deleted file mode 100644 index 3f3f1d9a7a6..00000000000 --- a/repos/spack_repo/builtin/packages/py_azureml_pipeline/package.py +++ /dev/null @@ -1,25 +0,0 @@ -# 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 PyAzuremlPipeline(PythonPackage): - """The Azure Machine Learning SDK for Python can be used to create ML - pipelines as well as to submit and track individual pipeline runs.""" - - homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = ( - "https://pypi.io/packages/py3/a/azureml_pipeline/azureml_pipeline-1.11.0-py3-none-any.whl" - ) - - version("1.23.0", sha256="ed0fae96771840d3ffd63d63df1b1eed2f50c3b8dbe7b672a4f1ba6e66d0a392") - - depends_on("python@3:", type=("build", "run")) - - depends_on("py-azureml-pipeline-core@1.23.0:1.23", when="@1.23.0", type=("build", "run")) - depends_on("py-azureml-pipeline-steps@1.23.0:1.23", when="@1.23.0", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_azureml_pipeline_core/package.py b/repos/spack_repo/builtin/packages/py_azureml_pipeline_core/package.py deleted file mode 100644 index ef06f4b92c1..00000000000 --- a/repos/spack_repo/builtin/packages/py_azureml_pipeline_core/package.py +++ /dev/null @@ -1,24 +0,0 @@ -# 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 PyAzuremlPipelineCore(PythonPackage): - """Core functionality to enable azureml-pipeline feature.""" - - homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_pipeline_core/azureml_pipeline_core-1.11.0-py3-none-any.whl" - - version("1.23.0", sha256="347e3e41559879611d53eeff5c05dd133db6fa537edcf2b9f70d91aad461df02") - version("1.11.0", sha256="98012195e3bba12bf42ac69179549038b3563b39e3dadab4f1d06407a00ad8b3") - version("1.8.0", sha256="24e1c57a57e75f9d74ea6f45fa4e93c1ee3114c8ed9029d538f9cc8e4f8945b2") - - depends_on("python@3.5:3", type=("build", "run")) - depends_on("py-azureml-core@1.23.0:1.23", when="@1.23.0", type=("build", "run")) - depends_on("py-azureml-core@1.11.0:1.11", when="@1.11.0", type=("build", "run")) - depends_on("py-azureml-core@1.8.0:1.8", when="@1.8.0", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_azureml_pipeline_steps/package.py b/repos/spack_repo/builtin/packages/py_azureml_pipeline_steps/package.py deleted file mode 100644 index 30034fc3353..00000000000 --- a/repos/spack_repo/builtin/packages/py_azureml_pipeline_steps/package.py +++ /dev/null @@ -1,23 +0,0 @@ -# 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 PyAzuremlPipelineSteps(PythonPackage): - """Represents a unit of computation in azureml-pipeline.""" - - homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_pipeline_steps/azureml_pipeline_steps-1.11.0-py3-none-any.whl" - - version("1.23.0", sha256="72154c2f75624a1e7500b8e2239ae1354eeedf66d2cabb11e213b7eb80aedddb") - - depends_on("python@3:", type=("build", "run")) - - depends_on("py-azureml-train-core@1.23.0:1.23", when="@1.23.0", type=("build", "run")) - depends_on("py-azureml-train-automl-client@1.23.0:1.23", when="@1.23.0", type=("build", "run")) - depends_on("py-azureml-pipeline-core@1.23.0:1.23", when="@1.23.0", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_azureml_sdk/package.py b/repos/spack_repo/builtin/packages/py_azureml_sdk/package.py deleted file mode 100644 index c338590d8cc..00000000000 --- a/repos/spack_repo/builtin/packages/py_azureml_sdk/package.py +++ /dev/null @@ -1,34 +0,0 @@ -# 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 PyAzuremlSdk(PythonPackage): - """Microsoft Azure Machine Learning Python SDK.""" - - homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_sdk/azureml_sdk-1.11.0-py3-none-any.whl" - - maintainers("adamjstewart") - - version( - "1.23.0", - sha256="b9520f426831acb99fafa1ecd154b6bfd4f73fbf71e918d819f9db4a75438ab9", - deprecated=True, - ) - - # https://github.com/Azure/MachineLearningNotebooks/issues/1285 - depends_on("python@3.5:3.8", type=("build", "run")) - - depends_on("py-azureml-core@1.23.0:1.23", when="@1.23.0", type=("build", "run")) - depends_on( - "py-azureml-dataset-runtime@1.23.0:1.23 +fuse", when="@1.23.0", type=("build", "run") - ) - depends_on("py-azureml-train@1.23.0:1.23", when="@1.23.0", type=("build", "run")) - depends_on("py-azureml-train-automl-client@1.23.0:1.23", when="@1.23.0", type=("build", "run")) - depends_on("py-azureml-pipeline@1.23.0:1.23", when="@1.23.0", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_azureml_telemetry/package.py b/repos/spack_repo/builtin/packages/py_azureml_telemetry/package.py deleted file mode 100644 index a845f153609..00000000000 --- a/repos/spack_repo/builtin/packages/py_azureml_telemetry/package.py +++ /dev/null @@ -1,26 +0,0 @@ -# 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 PyAzuremlTelemetry(PythonPackage): - """Machine learning (ML) telemetry package is used to collect telemetry - data.""" - - homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_telemetry/azureml_telemetry-1.11.0-py3-none-any.whl" - - version("1.23.0", sha256="68f9aac77e468db80e60f75d0843536082e2884ab251b6d3054dd623bd9c9e0d") - version("1.11.0", sha256="0d46c4a7bb8c0b188f1503504a6029384bc2237d82a131e7d1e9e89c3491b1fc") - version("1.8.0", sha256="de657efe9773bea0de76c432cbab34501ac28606fe1b380d6883562ebda3d804") - - depends_on("python@3.5:3", type=("build", "run")) - depends_on("py-applicationinsights", type=("build", "run")) - depends_on("py-azureml-core@1.23.0:1.23", when="@1.23.0", type=("build", "run")) - depends_on("py-azureml-core@1.11.0:1.11", when="@1.11.0", type=("build", "run")) - depends_on("py-azureml-core@1.8.0:1.8", when="@1.8.0", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_azureml_train/package.py b/repos/spack_repo/builtin/packages/py_azureml_train/package.py deleted file mode 100644 index d4d8e7ff0d0..00000000000 --- a/repos/spack_repo/builtin/packages/py_azureml_train/package.py +++ /dev/null @@ -1,26 +0,0 @@ -# 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 PyAzuremlTrain(PythonPackage): - """The azureml-train package provides estimators for training models using - different deep learning frameworks and functionality for hyperparameter - tuning using Azure cloud.""" - - homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_train/azureml_train-1.11.0-py3-none-any.whl" - - version("1.23.0", sha256="e16cb8673d9c9c70966c37c7362ceed3514e9797b0816c0aa449730da3b9c857") - version("1.11.0", sha256="7800a3067979972b976c81082dc509e23c04405129cc1fdef0f9cd7895bcafc7") - version("1.8.0", sha256="124e5b7d8d64bac61db022f305bd31c25e57fdcb4be93eefd4244a04a13deab3") - - depends_on("python@3.5:3", type=("build", "run")) - depends_on("py-azureml-train-core@1.23.0:1.23", when="@1.23.0", type=("build", "run")) - depends_on("py-azureml-train-core@1.11.0:1.11", when="@1.11.0", type=("build", "run")) - depends_on("py-azureml-train-core@1.8.0:1.8", when="@1.8.0", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_azureml_train_automl_client/package.py b/repos/spack_repo/builtin/packages/py_azureml_train_automl_client/package.py deleted file mode 100644 index c7fe9c1a466..00000000000 --- a/repos/spack_repo/builtin/packages/py_azureml_train_automl_client/package.py +++ /dev/null @@ -1,26 +0,0 @@ -# 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 PyAzuremlTrainAutomlClient(PythonPackage): - """The azureml-train-automl-client package contains functionality for - automatically finding the best machine learning model and its parameters, - given training and test data.""" - - homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_train_automl_client/azureml_train_automl_client-1.11.0-py3-none-any.whl" - - version("1.23.0", sha256="ac5f1ce9b04b4e61e2e28e0fa8d2d8e47937a546f624d1cd3aa6bc4f9110ecbe") - - depends_on("python@3.5:3", type=("build", "run")) - - depends_on("py-azureml-automl-core@1.23.0:1.23", when="@1.23.0", type=("build", "run")) - depends_on("py-azureml-core@1.23.0:1.23", when="@1.23.0", type=("build", "run")) - depends_on("py-azureml-dataset-runtime@1.23.0:1.23", when="@1.23.0", type=("build", "run")) - depends_on("py-azureml-telemetry@1.23.0:1.23", when="@1.23.0", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_azureml_train_core/package.py b/repos/spack_repo/builtin/packages/py_azureml_train_core/package.py deleted file mode 100644 index db2a6982523..00000000000 --- a/repos/spack_repo/builtin/packages/py_azureml_train_core/package.py +++ /dev/null @@ -1,45 +0,0 @@ -# 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 PyAzuremlTrainCore(PythonPackage): - """The azureml-train-core contains functionality used by azureml-train - metapackage.""" - - homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_train_core/azureml_train_core-1.11.0-py3-none-any.whl" - - version("1.23.0", sha256="5c384ea0bea3ecd8bf2a1832dda906fd183cf2a03ad3372cb824ce8fa417979e") - version("1.11.0", sha256="1b5fd813d21e75cd522d3a078eba779333980a309bcff6fc72b74ddc8e7a26f1") - version("1.8.0", sha256="5a8d90a08d4477527049d793feb40d07dc32fafc0e4e57b4f0729d3c50b408a2") - - depends_on("python@3.5:3", type=("build", "run")) - - depends_on( - "py-azureml-train-restclients-hyperdrive@1.23.0:1.23", - when="@1.23.0", - type=("build", "run"), - ) - depends_on("py-azureml-core@1.23.0:1.23", when="@1.23.0", type=("build", "run")) - depends_on("py-azureml-telemetry@1.23.0:1.23", when="@1.23.0", type=("build", "run")) - - depends_on( - "py-azureml-train-restclients-hyperdrive@1.11.0:1.11", - when="@1.11.0", - type=("build", "run"), - ) - depends_on("py-azureml-core@1.11.0:1.11", when="@1.11.0", type=("build", "run")) - depends_on("py-azureml-telemetry@1.11.0:1.11", when="@1.11.0", type=("build", "run")) - - depends_on( - "py-azureml-train-restclients-hyperdrive@1.8.0:1.8", when="@1.8.0", type=("build", "run") - ) - depends_on("py-azureml-core@1.8.0:1.8", when="@1.8.0", type=("build", "run")) - depends_on("py-azureml-telemetry@1.8.0:1.8", when="@1.8.0", type=("build", "run")) - depends_on("py-flake8@3.1.0:3.7.9", when="@1.8.0 ^python@3.6:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_azureml_train_restclients_hyperdrive/package.py b/repos/spack_repo/builtin/packages/py_azureml_train_restclients_hyperdrive/package.py deleted file mode 100644 index 1fcb05175a5..00000000000 --- a/repos/spack_repo/builtin/packages/py_azureml_train_restclients_hyperdrive/package.py +++ /dev/null @@ -1,25 +0,0 @@ -# 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 PyAzuremlTrainRestclientsHyperdrive(PythonPackage): - """The azureml-train-restclients-hyperdrive contains functionality for - azureml-train metapackage.""" - - homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_train_restclients_hyperdrive/azureml_train_restclients_hyperdrive-1.11.0-py3-none-any.whl" - - version("1.23.0", sha256="8ecee0cdb92a4a431b778ebcc7f9fe7c5bf63ea4cae9caa687980bc34ae3a42c") - version("1.11.0", sha256="8bc6f9676a9f75e6ee06d201c418ea904c24e854f26cf799b08c259c3ac92d13") - version("1.8.0", sha256="1633c7eb0fd96714f54f72072ccf1c5ee1ef0a8ba52680793f20d27e0fd43c87") - - depends_on("python@3.5:3", type=("build", "run")) - depends_on("py-requests@2.19.1:", type=("build", "run")) - depends_on("py-msrest@0.5.1:", type=("build", "run")) - depends_on("py-msrestazure@0.4.33:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_b2luigi/package.py b/repos/spack_repo/builtin/packages/py_b2luigi/package.py new file mode 100644 index 00000000000..27c7f0665ca --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_b2luigi/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 PyB2luigi(PythonPackage): + """b2luigi is a helper package constructed around luigi that helps you schedule working + packages (so-called tasks) locally or on a batch system. Apart from the very + powerful dependency management system by luigi, b2luigi extends the user interface + and has a built-in support for the queue systems, e.g. LSF and HTCondor.""" + + homepage = "https://github.com/belle2/b2luigi" + pypi = "b2luigi/b2luigi-1.2.6.tar.gz" + git = "https://github.com/belle2/b2luigi.git" + + license("GPL-3.0", checked_by="wdconinc") + + tags = ["hep"] + + # To be decided + # maintainers("github_user1", "github_user2") + + version("1.2.8", sha256="a87a77ac84adfa1dd2e003756ae310a89ba00843e6074db9c2dc50cdac1d7c74") + version("1.2.7", sha256="9f2622bb5f8f8645a0ef2546c3125164e3d5ab167c1e2519b1593e930733df40") + version("1.2.6", sha256="9f3be756f0961ca2241d36d9a9174ea5a23ebd7787cbfa78632047aae25f1202") + # We start at 1.2.6 as this was the change from retry2->tenacity dependency + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-flit", type="build") + with default_args(type=("build", "run")): + depends_on("py-luigi@3.0.2:") + depends_on("py-parse@1.8:") + depends_on("py-gitpython@2.1.11:") + depends_on("py-colorama@0.3.9:") + depends_on("py-cachetools@2.1.1:") + depends_on("py-jinja2") + depends_on("py-tenacity@8") + depends_on("py-webdavclient3@3.14.7:", when="@1.2.8:") diff --git a/repos/spack_repo/builtin/packages/py_babel/package.py b/repos/spack_repo/builtin/packages/py_babel/package.py index f8d12deb17e..86ddf21c1f3 100644 --- a/repos/spack_repo/builtin/packages/py_babel/package.py +++ b/repos/spack_repo/builtin/packages/py_babel/package.py @@ -18,6 +18,8 @@ class PyBabel(PythonPackage): license("BSD-3-Clause") + version("2.18.0", sha256="b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d") + version("2.17.0", sha256="0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d") version("2.15.0", sha256="8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413") version("2.12.1", sha256="cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455") version("2.10.3", sha256="7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51") diff --git a/repos/spack_repo/builtin/packages/py_backports_ssl_match_hostname/package.py b/repos/spack_repo/builtin/packages/py_backports_ssl_match_hostname/package.py index 72536b88d7e..0bc8c89aec5 100644 --- a/repos/spack_repo/builtin/packages/py_backports_ssl_match_hostname/package.py +++ b/repos/spack_repo/builtin/packages/py_backports_ssl_match_hostname/package.py @@ -12,6 +12,7 @@ class PyBackportsSslMatchHostname(PythonPackage): pypi = "backports.ssl_match_hostname/backports.ssl_match_hostname-3.5.0.1.tar.gz" + version("3.7.0.1", sha256="bb82e60f9fbf4c080eabd957c39f0641f0fc247d9a16e31e26d594d8f42b9fd2") version("3.5.0.1", sha256="502ad98707319f4a51fa2ca1c677bd659008d27ded9f6380c79e8932e38dcdf2") # pip silently replaces distutils with setuptools diff --git a/repos/spack_repo/builtin/packages/py_backports_tarfile/package.py b/repos/spack_repo/builtin/packages/py_backports_tarfile/package.py new file mode 100644 index 00000000000..1350387ad62 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_backports_tarfile/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyBackportsTarfile(PythonPackage): + """Backport of CPython tarfile module.""" + + homepage = "https://github.com/jaraco/backports.tarfile" + pypi = "backports_tarfile/backports_tarfile-1.2.0.tar.gz" + + license("MIT") + + version("1.2.0", sha256="d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@61.2:", type="build") + depends_on("py-setuptools-scm+toml@3.4.1:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_bagit/package.py b/repos/spack_repo/builtin/packages/py_bagit/package.py index b0db66badbc..8207c3d7bcd 100644 --- a/repos/spack_repo/builtin/packages/py_bagit/package.py +++ b/repos/spack_repo/builtin/packages/py_bagit/package.py @@ -18,6 +18,7 @@ class PyBagit(PythonPackage): license("CC0-1.0") + version("1.9.0", sha256="9455006c2d1df88be95ec1fccabc5ea623389589ea4c85b3d85bd256f29d7656") version("1.8.1", sha256="37df1330d2e8640c8dee8ab6d0073ac701f0614d25f5252f9e05263409cee60c") depends_on("python@2.7:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_bcbio_gff/package.py b/repos/spack_repo/builtin/packages/py_bcbio_gff/package.py index 66d0c2063b0..173d879a0ce 100644 --- a/repos/spack_repo/builtin/packages/py_bcbio_gff/package.py +++ b/repos/spack_repo/builtin/packages/py_bcbio_gff/package.py @@ -13,9 +13,10 @@ class PyBcbioGff(PythonPackage): pypi = "bcbio-gff/bcbio-gff-0.6.2.tar.gz" + version("0.7.1", sha256="d1dc3294147b95baced6033f6386a0fed45c43767ef02d1223df5ef497e9cca6") version("0.7.0", sha256="f7b3922ee274106f8716703f41f05a1795aa9d73e903f4e481995ed8f5f65d2d") version("0.6.2", sha256="c682dc46a90e9fdb124ab5723797a5f71b2e3534542ceff9f6572b64b9814e68") - depends_on("py-setuptools", type="build") + depends_on("py-setuptools@:81", type="build") depends_on("py-six", type=("build", "run")) depends_on("py-biopython", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_beaker/package.py b/repos/spack_repo/builtin/packages/py_beaker/package.py index 9ae0b2f25d8..cb82da991d3 100644 --- a/repos/spack_repo/builtin/packages/py_beaker/package.py +++ b/repos/spack_repo/builtin/packages/py_beaker/package.py @@ -18,6 +18,7 @@ class PyBeaker(PythonPackage): license("BSD-3-Clause") + version("1.13.0", sha256="e956cd8a35ad5de1b5212c7bff8fc01e2b3d34ab92466d24684c666abb8c9c30") version("1.12.0", sha256="2d5f427e3b13259c98c934cab0e428fc1c18a4c4b94acbdae930df7e7f51d1ec") version("1.11.0", sha256="ad5d1c05027ee3be3a482ea39f8cb70339b41e5d6ace0cb861382754076d187e") diff --git a/repos/spack_repo/builtin/packages/py_beartype/package.py b/repos/spack_repo/builtin/packages/py_beartype/package.py index 564415a304c..3bd51d5b773 100644 --- a/repos/spack_repo/builtin/packages/py_beartype/package.py +++ b/repos/spack_repo/builtin/packages/py_beartype/package.py @@ -15,9 +15,14 @@ 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-setuptools@:49,50.1:", type="build") + depends_on("py-hatchling@1.14:", type="build", when="@0.19:") + depends_on("py-setuptools@:49,50.1:", type="build", when="@:0.18") diff --git a/repos/spack_repo/builtin/packages/py_beautifulsoup4/package.py b/repos/spack_repo/builtin/packages/py_beautifulsoup4/package.py index 1e7192ca923..624cee74d90 100644 --- a/repos/spack_repo/builtin/packages/py_beautifulsoup4/package.py +++ b/repos/spack_repo/builtin/packages/py_beautifulsoup4/package.py @@ -15,9 +15,13 @@ class PyBeautifulsoup4(PythonPackage): homepage = "https://www.crummy.com/software/BeautifulSoup" pypi = "beautifulsoup4/beautifulsoup4-4.8.0.tar.gz" + license("MIT") + # Requires pytest skip_modules = ["bs4.tests"] + version("4.14.3", sha256="6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86") + version("4.13.4", sha256="dbb3c4e1ceae6aefebdaf2423247260cd062430a410e38c66f2baa50a8437195") version("4.12.3", sha256="74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051") version("4.12.2", sha256="492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da") version("4.11.1", sha256="ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693") @@ -34,11 +38,14 @@ class PyBeautifulsoup4(PythonPackage): depends_on("py-hatchling", when="@4.12.1:", type="build") depends_on("py-setuptools", when="@:4.12.0", type="build") - depends_on("py-soupsieve@1.3:", when="@4.9.0:", type=("build", "run")) - depends_on("py-soupsieve@1.2:", when="@4.7.0:", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("py-typing-extensions@4:", when="@4.13:") + depends_on("py-soupsieve@1.6.1:", when="@4.14.3:") + depends_on("py-soupsieve@1.3:", when="@4.9.0:") + depends_on("py-soupsieve@1.2:", when="@4.7.0:") - depends_on("py-lxml", when="+lxml", type=("build", "run")) - depends_on("py-html5lib", when="+html5lib", type=("build", "run")) + depends_on("py-lxml", when="+lxml") + depends_on("py-html5lib", when="+html5lib") depends_on("py-pytest", type="test") diff --git a/repos/spack_repo/builtin/packages/py_beniget/package.py b/repos/spack_repo/builtin/packages/py_beniget/package.py index 134d657b1b9..1287f4219e0 100644 --- a/repos/spack_repo/builtin/packages/py_beniget/package.py +++ b/repos/spack_repo/builtin/packages/py_beniget/package.py @@ -15,13 +15,21 @@ class PyBeniget(PythonPackage): license("BSD-3-Clause") + version("0.5.0", sha256="e7af11fa8ec7de3d3eb3d98b1e722d15d44017d8b35d8aa11d54f6719b312f22") + version( + "0.4.2.post1", sha256="a0258537e65e7e14ec33a86802f865a667f949bb6c73646d55e42f7c45a052ae" + ) version("0.4.1", sha256="75554b3b8ad0553ce2f607627dad3d95c60c441189875b98e097528f8e23ac0c") version("0.4.0", sha256="72bbd47b1ae93690f5fb2ad3902ce1ae61dcd868ce6cfbf33e9bad71f9ed8749") version("0.3.0", sha256="062c893be9cdf87c3144fb15041cce4d81c67107c1591952cd45fdce789a0ff1") version("0.2.3", sha256="350422b0598c92fcc5f8bcaf77f2a62f6744fb8f2fb495b10a50176c1283639f") - depends_on("python@2.7:2.8,3.4:", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-gast@0.5.0:0.5", when="@0.4.0:", type=("build", "run")) - depends_on("py-gast@0.4.0:0.4", when="@0.3.0:0.3", type=("build", "run")) - depends_on("py-gast@0.3.3:0.3", when="@:0.2", type=("build", "run")) + + with default_args(type=("build", "run")): + depends_on("py-gast@0.7:", when="@0.5:") + # https://github.com/serge-sans-paille/beniget/issues/108 + depends_on("py-gast@0.5.4:", when="@0.4.2:") + depends_on("py-gast@0.5", when="@0.4.0:0.4.1") + depends_on("py-gast@0.4", when="@0.3") + depends_on("py-gast@0.3.3:0.3", when="@:0.2") diff --git a/repos/spack_repo/builtin/packages/py_bibtexparser/package.py b/repos/spack_repo/builtin/packages/py_bibtexparser/package.py new file mode 100644 index 00000000000..9d97754ae4a --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_bibtexparser/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 PyBibtexparser(PythonPackage): + """Python 3 library to parse bibtex files.""" + + homepage = "https://github.com/sciunto-org/python-bibtexparser" + pypi = "bibtexparser/bibtexparser-1.4.1.tar.gz" + + version("1.4.4", sha256="093b6c824f7a71d3a748867c4057b71f77c55b8dbc07efc993b781771520d8fb") + version("1.4.1", sha256="e00e29e24676c4808e0b4333b37bb55cca9cbb7871a56f63058509281588d789") + + depends_on("py-setuptools", type="build") + depends_on("py-pyparsing@2.0.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_bidict/package.py b/repos/spack_repo/builtin/packages/py_bidict/package.py new file mode 100644 index 00000000000..463ec2da9b7 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_bidict/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 PyBidict(PythonPackage): + """The bidirectional mapping library for Python.""" + + homepage = "https://github.com/jab/bidict" + pypi = "bidict/bidict-0.23.1.tar.gz" + + license("MPL-2.0") + + version("0.23.1", sha256="03069d763bc387bbd20e7d49914e75fc4132a41937fa3405417e1a5a2d006d71") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@40.9:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_bids_validator/package.py b/repos/spack_repo/builtin/packages/py_bids_validator/package.py index c1ec6a74bd8..b2ac431fa17 100644 --- a/repos/spack_repo/builtin/packages/py_bids_validator/package.py +++ b/repos/spack_repo/builtin/packages/py_bids_validator/package.py @@ -11,8 +11,13 @@ class PyBidsValidator(PythonPackage): """Validator for the Brain Imaging Data Structure""" homepage = "https://github.com/bids-standard/bids-validator" - pypi = "bids-validator/bids-validator-1.7.2.tar.gz" + pypi = "bids-validator/bids_validator-1.14.7.post0.tar.gz" + license("MIT") + + version( + "1.14.7.post0", sha256="e6005a500b75f8a961593fb67d46085107dadb116f59a5c3b524aa0697945b66" + ) version("1.13.1", sha256="7205ce4e68fba172215332c786f1ac1665025b702b6dff2b1e158f00a2df9890") version("1.11.0", sha256="408c56748b7cf98cf7c31822f33a8d89c5e6e7db5254c345107e8d527576ff53") version("1.9.8", sha256="ff39799bb205f92d6f2c322f0b8eff0d1c0288f4291a0b18fce61afa4dfd7f3e") @@ -23,3 +28,14 @@ class PyBidsValidator(PythonPackage): depends_on("python@3.8:", when="@1.12:", type=("build", "run")) depends_on("py-setuptools", type="build") + depends_on("py-versioneer+toml", when="@1.14:", type="build") + + depends_on("py-bidsschematools@0.10:", when="@1.14.7:", type=("build", "run")) + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/b/bids-validator/{}-{}.tar.gz" + if version >= Version("1.14.6"): + name = "bids_validator" + else: + name = "bids-validator" + return url.format(name, version) 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 new file mode 100644 index 00000000000..6e99787c9eb --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_bids_validator_deno/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 PyBidsValidatorDeno(PythonPackage): + """Typescript implementation of the BIDS validator.""" + + homepage = "https://github.com/bids-standard/bids-validator" + pypi = "bids_validator_deno/bids_validator_deno-2.0.7.tar.gz" + + license("MIT") + + version("2.4.1", sha256="a79b4af2818a200ff5a597715a3c1050ae93be7cb523bcfef54b93af057d8466") + version("2.4.0", sha256="78cd6bc4d43aa6b17555185181c74b22e2ccaea8c3494175b6524807b467aa94") + version("2.0.7", sha256="55a46dc9e134c2996ecb077896aad65e5320f3c864b41c47e108011f8fd1e2d1") + + depends_on("py-pdm-backend", type="build") + depends_on("deno", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_bidscoin/package.py b/repos/spack_repo/builtin/packages/py_bidscoin/package.py index e44d1ce949f..4155742d524 100644 --- a/repos/spack_repo/builtin/packages/py_bidscoin/package.py +++ b/repos/spack_repo/builtin/packages/py_bidscoin/package.py @@ -16,10 +16,12 @@ class PyBidscoin(PythonPackage): license("GPL-3.0-or-later") + version("4.6.2", sha256="91c1a48af0ab91953adfc248fc08165925b261d337a96ef4f8fbbeb0b00bdebe") version("4.1.1", sha256="28730e9202d3c44d77c0bbdea9565e00adfdd23e85a6f3f121c1bfce1a7b462b") version("4.0.0", sha256="3b0c26f2e250e06b6f526cdbee09517e1f339da8035c0a316609b4463d75824d") version("3.7.4", sha256="efa32238fb7b75e533e7f5cc318ad5a703716d291985435d43f1de4f18402517") + depends_on("python@3.9:", when="@4.5:", type=("build", "run")) depends_on("python@3.8:", type=("build", "run")) depends_on("py-setuptools@62.2:", when="@4.1:", type="build") depends_on("py-setuptools@61:", when="@4:", type="build") @@ -31,18 +33,25 @@ class PyBidscoin(PythonPackage): depends_on("py-numpy", type=("build", "run")) depends_on("py-pydicom@2:", type=("build", "run")) depends_on("py-pyqt6", when="@4.1:", type=("build", "run")) - depends_on("py-ruamel-yaml@0.15.35:", type=("build", "run")) + depends_on("py-pyyaml", when="@4.5:", type=("build", "run")) depends_on("py-tomli@1.1:", when="@4.1: ^python@:3.10", type=("build", "run")) - depends_on("py-coloredlogs", type=("build", "run")) - depends_on("py-tqdm@4.60:", when="@4:", type=("build", "run")) - depends_on("py-tqdm", type=("build", "run")) + depends_on("py-rich", when="@4.6.2:", type=("build", "run")) depends_on("py-multiecho@0.25:", type=("build", "run")) depends_on("py-python-dateutil", type=("build", "run")) depends_on("py-nibabel", type=("build", "run")) depends_on("py-bids-validator", when="@4:", type=("build", "run")) + depends_on("py-jsonschema", when="@4.3:", type=("build", "run")) + depends_on("py-bidsschematools", when="@4.4:", type=("build", "run")) + depends_on("py-drmaa", when="@4.3:", type=("build", "run")) + depends_on("py-duecredit", when="@4.3:", type=("build", "run")) + depends_on("dcm2niix", type=("build", "run")) # Historical dependencies + depends_on("py-coloredlogs", when="@:4.6.1", type=("build", "run")) + depends_on("py-tqdm@4.60:", when="@4:4.6.1", type=("build", "run")) + depends_on("py-tqdm", when="@:4.6.1", type=("build", "run")) + depends_on("py-ruamel-yaml@0.15.35:", when="@:4.4", type=("build", "run")) depends_on("py-pytest-runner", when="@:3", type="build") depends_on("py-pyqt5@5.12.1:", when="@:4.0", type=("build", "run")) depends_on("py-pydeface", when="@4.0", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_bidskit/package.py b/repos/spack_repo/builtin/packages/py_bidskit/package.py index a289aa1c18f..79d2d04dd61 100644 --- a/repos/spack_repo/builtin/packages/py_bidskit/package.py +++ b/repos/spack_repo/builtin/packages/py_bidskit/package.py @@ -15,18 +15,34 @@ class PyBidskit(PythonPackage): license("MIT") + version("2025.11.7", sha256="fc478bc5eb5b4808aa4ff2df2d5def54dbf8411313e16a2a2f639adbf0965a56") + version("2025.1.30", sha256="91daa1041b07b029da2e720b91270be9ab39c42ccbb6e8d8bb302441ea1a1bf5") version("2023.9.7", sha256="029d9aecbbcb2df733858ceb3e6d5dd5013c36e431e40fb522a580adc7b667a5") version("2023.2.16", sha256="b2e4e3246d43a6f00af6c0391ec8fecc59405241de1ea9ca68eb4d8128d62c7b") version( "2022.10.13", sha256="576b92cef187032c73f64e2e6a5b0be0c06771442048a33c55e224b3df0aae3a" ) + depends_on("python@3.10:3", type=("build", "run"), when="@2024.11.7:") depends_on("python@3.7:3", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-pydicom@2.2:", type=("build", "run")) + with default_args(type="build"): + depends_on("py-poetry-core@2", when="@2025.11.7:") + + with default_args(type=("build", "run")): + # ignore upper version limits, because it works with newer versions as well + depends_on("py-pydicom@2.3.1:", when="@2025.1.30:") + depends_on("py-pydicom@2.2:") + depends_on("py-numpy@2.2.4:", when="@2025.11.7:") + depends_on("py-numpy@1.26.3:", when="@2025.1.30:") + depends_on("py-numpy@1.21:") + + # still a dependency in newer versions, otherwise bidskit will throw an error message depends_on("py-pybids@0.15:", type=("build", "run")) - depends_on("py-numpy@1.21:", type=("build", "run")) # version requirement comes from error message when using bidskit depends_on("dcm2niix@1.0.20220720:", type=("build", "run")) + + # Historical dependencies + depends_on("py-setuptools@72.1:", type=("build", "run"), when="@2025.1.30") + depends_on("py-setuptools", type="build", when="@:2025.1.30") diff --git a/repos/spack_repo/builtin/packages/py_bidsschematools/package.py b/repos/spack_repo/builtin/packages/py_bidsschematools/package.py new file mode 100644 index 00000000000..e918e9cc3b0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_bidsschematools/package.py @@ -0,0 +1,31 @@ +# 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 PyBidsschematools(PythonPackage): + """Python tools for working with the BIDS schema.""" + + homepage = "https://github.com/bids-standard/bids-specification" + pypi = "bidsschematools/bidsschematools-1.0.10.tar.gz" + + license("MIT") + + version("1.2.2", sha256="4401991b68acca8e8b24c28ba096796c3794260d722b1aad31229ffce941391b") + version("1.0.10", sha256="e241dd798cc8686d4ab8b625e4d84ef3093d472a158cccd88a850496e4a4a8b9") + + depends_on("python@3.10:", type=("build", "run"), when="@1.2.2:") + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-pdm-backend", type="build") + + with default_args(type=("build", "run")): + depends_on("py-acres@0.5:", when="@1.2.2:") + depends_on("py-acres") + depends_on("py-click@8.1:", when="@1.2.2:") + depends_on("py-click") + depends_on("py-pyyaml@6:", when="@1.2.2:") + depends_on("py-pyyaml") diff --git a/repos/spack_repo/builtin/packages/py_binary/package.py b/repos/spack_repo/builtin/packages/py_binary/package.py new file mode 100644 index 00000000000..bde26f01d2d --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_binary/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 PyBinary(PythonPackage): + """binary provides a bug-free and easy way to convert between and within binary (IEC) and + decimal (SI) units. + """ + + homepage = "https://github.com/ofek/binary" + pypi = "binary/binary-1.0.2.tar.gz" + + license("MIT OR Apache-2.0") + + version("1.0.2", sha256="a6ba0af9579098b18dd2ec0b08bd409d8a5c4e5e5a301104b053ad40137264a8") + + with default_args(type="build"): + depends_on("py-hatchling") + depends_on("py-hatch-vcs") diff --git a/repos/spack_repo/builtin/packages/py_biopython/package.py b/repos/spack_repo/builtin/packages/py_biopython/package.py index 40c097bc772..d67b44e87f8 100644 --- a/repos/spack_repo/builtin/packages/py_biopython/package.py +++ b/repos/spack_repo/builtin/packages/py_biopython/package.py @@ -20,6 +20,10 @@ class PyBiopython(PythonPackage): license("BSD-3-Clause") + version("1.86", sha256="93a50b586a4d2cec68ab2f99d03ef583c5761d8fba5535cb8e81da781d0d92ff") + version("1.85", sha256="5dafab74059de4e78f49f6b5684eddae6e7ce46f09cfa059c1d1339e8b1ea0a6") + version("1.84", sha256="60fbe6f996e8a6866a42698c17e552127d99a9aab3259d6249fbaabd0e0cc7b4") + version("1.83", sha256="78e6bfb78de63034037afd35fe77cb6e0a9e5b62706becf78a7d922b16ed83f7") version("1.81", sha256="2cf38112b6d8415ad39d6a611988cd11fb5f33eb09346666a87263beba9614e0") version("1.80", sha256="52805e9af88767e450e2df8113b5bc59e964e2e8a7bb803a83570bdbb51c0e43") version("1.79", sha256="edb07eac99d3b8abd7ba56ff4bedec9263f76dfc3c3f450e7d2e2bcdecf8559b") @@ -30,11 +34,14 @@ class PyBiopython(PythonPackage): depends_on("c", type="build") # generated - depends_on("python@2.6:2.7,3.3:3.9", type=("build", "run"), when="@1.63:1.68") - depends_on("python@2.7,3.3:3.9", type=("build", "run"), when="@1.69") - depends_on("python@2.7,3.4:3.9", type=("build", "run"), when="@1.70:1.74") - depends_on("python@2.7,3.5:3.9", type=("build", "run"), when="@1.75:1.76") + depends_on("python@3.10", type=("build", "run"), when="@1.86:") + depends_on("python@3.9:", type=("build", "run"), when="@1.84:") + depends_on("python@3.8:", type=("build", "run"), when="@1.83:") depends_on("python@3.6:", type=("build", "run"), when="@1.77:") + depends_on("python@2.7,3.5:3.9", type=("build", "run"), when="@1.75:1.76") + depends_on("python@2.7,3.4:3.9", type=("build", "run"), when="@1.70:1.74") + depends_on("python@2.7,3.3:3.9", type=("build", "run"), when="@1.69") + depends_on("python@2.6:2.7,3.3:3.9", type=("build", "run"), when="@1.63:1.68") depends_on("py-numpy", type=("build", "run")) # https://github.com/biopython/biopython/issues/4676 depends_on("py-numpy@:1", when="@:1.83", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_biosppy/package.py b/repos/spack_repo/builtin/packages/py_biosppy/package.py new file mode 100644 index 00000000000..1f53abcabf6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_biosppy/package.py @@ -0,0 +1,38 @@ +# 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 PyBiosppy(PythonPackage): + """A toolbox for biosignal processing written in Python.""" + + homepage = "https://github.com/scientisst/BioSPPy" + pypi = "biosppy/biosppy-2.2.3.tar.gz" + + license("BSD-3-Clause") + + version("2.2.4", sha256="0b52eb27a410fe24c01bd15dd4a85149d20ac0026f73e03b9c61bf99577dcca5") + version("2.2.3", sha256="2c4b84c98c71e3e84b43bf09a855414c31f534a8aed84e59fb05bbc3c36d9aa9") + + depends_on("py-setuptools", type="build") + + # version contraint from requirement.txt + depends_on("py-bidict@0.13.1:", type=("build", "run")) + depends_on("py-h5py@2.7.1:", type=("build", "run")) + depends_on("py-matplotlib@2.1.2:", type=("build", "run")) + depends_on("py-numpy@1.22:", type=("build", "run")) + depends_on("py-scikit-learn@0.19.1:", type=("build", "run")) + depends_on("py-scipy@1.2:", type=("build", "run")) + depends_on("py-shortuuid@0.5:", type=("build", "run")) + depends_on("py-six@1.11:", type=("build", "run")) + depends_on("py-joblib@0.11:", type=("build", "run")) + depends_on("py-opencv-python", type=("build", "run")) + depends_on("py-pywavelets@1.4.1:", type=("build", "run")) + depends_on("py-mock", type=("build", "run")) + + # from errors when importing + depends_on("py-peakutils", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_biotraj/package.py b/repos/spack_repo/builtin/packages/py_biotraj/package.py index 81c7f0bfcd4..46c6b8e93d9 100644 --- a/repos/spack_repo/builtin/packages/py_biotraj/package.py +++ b/repos/spack_repo/builtin/packages/py_biotraj/package.py @@ -15,6 +15,7 @@ class PyBiotraj(PythonPackage): license("LGPL-2.1") + version("1.2.2", sha256="4bcba92101ed50f369cc1487fb5dfcfe1d8402ad47adaa9232b080553271663a") version("1.2.1", sha256="4d7ad33ad940dbcfb3c2bd228a18f33f88e04657786a9562173b58dc2dd05349") depends_on("python@3.10:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_black/package.py b/repos/spack_repo/builtin/packages/py_black/package.py index dcdd526bd2a..ec4102d1528 100644 --- a/repos/spack_repo/builtin/packages/py_black/package.py +++ b/repos/spack_repo/builtin/packages/py_black/package.py @@ -19,51 +19,113 @@ class PyBlack(PythonPackage): license("MIT", checked_by="tgamblin") maintainers("spack/spack-releasers") - version("25.1.0", sha256="33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666") - version("24.10.0", sha256="846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875") - version("24.8.0", sha256="2500945420b6784c38b9ee885af039f5e7471ef284ab03fa35ecdde4688cd83f") - version("24.4.2", sha256="c872b53057f000085da66a19c55d68f6f8ddcac2642392ad3a355878406fbd4d") - version("24.4.1", sha256="5241612dc8cad5b6fd47432b8bd04db80e07cfbc53bb69e9ae18985063bcb8dd") - version("24.4.0", sha256="f07b69fda20578367eaebbd670ff8fc653ab181e1ff95d84497f9fa20e7d0641") - version("24.3.0", sha256="a0c9c4a0771afc6919578cec71ce82a3e31e054904e7197deacbc9382671c41f") - version("24.2.0", sha256="bce4f25c27c3435e4dace4815bcb2008b87e167e3bf4ee47ccdc5ce906eb4894") - version("24.1.1", sha256="48b5760dcbfe5cf97fd4fba23946681f3a81514c6ab8a45b50da67ac8fbc6c7b") - version("24.1.0", sha256="30fbf768cd4f4576598b1db0202413fafea9a227ef808d1a12230c643cefe9fc") - version("23.12.1", sha256="4ce3ef14ebe8d9509188014d96af1c456a910d5b5cbf434a09fef7e024b3d0d5") - version("23.12.0", sha256="330a327b422aca0634ecd115985c1c7fd7bdb5b5a2ef8aa9888a82e2ebe9437a") - version("23.11.0", sha256="4c68855825ff432d197229846f971bc4d6666ce90492e5b02013bcaca4d9ab05") - version("23.10.1", sha256="1f8ce316753428ff68749c65a5f7844631aa18c8679dfd3ca9dc1a289979c258") - version("23.10.0", sha256="31b9f87b277a68d0e99d2905edae08807c007973eaa609da5f0c62def6b7c0bd") - version("23.9.1", sha256="24b6b3ff5c6d9ea08a8888f6977eae858e1f340d7260cf56d70a49823236b62d") - version("23.9.0", sha256="3511c8a7e22ce653f89ae90dfddaf94f3bb7e2587a245246572d3b9c92adf066") - version("23.7.0", sha256="022a582720b0d9480ed82576c920a8c1dde97cc38ff11d8d8859b3bd6ca9eedb") - version("23.3.0", sha256="1c7b8d606e728a41ea1ccbd7264677e494e87cf630e399262ced92d4a8dac940") - version("23.1.0", sha256="b0bd97bea8903f5a2ba7219257a44e3f1f9d00073d6cc1add68f0beec69692ac") - version("22.12.0", sha256="229351e5a18ca30f447bf724d007f890f97e13af070bb6ad4c0a441cd7596a2f") - version("22.10.0", sha256="f513588da599943e0cde4e32cc9879e825d58720d6557062d1098c5ad80080e1") - version("22.8.0", sha256="792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e") - version("22.6.0", sha256="6c6d39e28aed379aec40da1c65434c77d75e65bb59a1e1c283de545fb4e7c6c9") - version("22.3.0", sha256="35020b8886c022ced9282b51b5a875b6d1ab0c387b31a065b84db7c33085ca79") - version("22.1.0", sha256="a7c0192d35635f6fc1174be575cb7915e92e5dd629ee79fdaf0dcfa41a80afb5") + version("26.3.1", sha256="2c50f5063a9641c7eed7795014ba37b0f5fa227f3d408b968936e24bc0566b07") + with default_args(deprecated=True): + # https://nvd.nist.gov/vuln/detail/CVE-2026-31900 + # https://nvd.nist.gov/vuln/detail/CVE-2026-32274 + version( + "25.1.0", sha256="33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666" + ) + version( + "24.10.0", sha256="846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875" + ) + version( + "24.8.0", sha256="2500945420b6784c38b9ee885af039f5e7471ef284ab03fa35ecdde4688cd83f" + ) + version( + "24.4.2", sha256="c872b53057f000085da66a19c55d68f6f8ddcac2642392ad3a355878406fbd4d" + ) + version( + "24.4.1", sha256="5241612dc8cad5b6fd47432b8bd04db80e07cfbc53bb69e9ae18985063bcb8dd" + ) + version( + "24.4.0", sha256="f07b69fda20578367eaebbd670ff8fc653ab181e1ff95d84497f9fa20e7d0641" + ) + version( + "24.3.0", sha256="a0c9c4a0771afc6919578cec71ce82a3e31e054904e7197deacbc9382671c41f" + ) + version( + "24.2.0", sha256="bce4f25c27c3435e4dace4815bcb2008b87e167e3bf4ee47ccdc5ce906eb4894" + ) + version( + "24.1.1", sha256="48b5760dcbfe5cf97fd4fba23946681f3a81514c6ab8a45b50da67ac8fbc6c7b" + ) + version( + "24.1.0", sha256="30fbf768cd4f4576598b1db0202413fafea9a227ef808d1a12230c643cefe9fc" + ) + version( + "23.12.1", sha256="4ce3ef14ebe8d9509188014d96af1c456a910d5b5cbf434a09fef7e024b3d0d5" + ) + version( + "23.12.0", sha256="330a327b422aca0634ecd115985c1c7fd7bdb5b5a2ef8aa9888a82e2ebe9437a" + ) + version( + "23.11.0", sha256="4c68855825ff432d197229846f971bc4d6666ce90492e5b02013bcaca4d9ab05" + ) + version( + "23.10.1", sha256="1f8ce316753428ff68749c65a5f7844631aa18c8679dfd3ca9dc1a289979c258" + ) + version( + "23.10.0", sha256="31b9f87b277a68d0e99d2905edae08807c007973eaa609da5f0c62def6b7c0bd" + ) + version( + "23.9.1", sha256="24b6b3ff5c6d9ea08a8888f6977eae858e1f340d7260cf56d70a49823236b62d" + ) + version( + "23.9.0", sha256="3511c8a7e22ce653f89ae90dfddaf94f3bb7e2587a245246572d3b9c92adf066" + ) + version( + "23.7.0", sha256="022a582720b0d9480ed82576c920a8c1dde97cc38ff11d8d8859b3bd6ca9eedb" + ) + version( + "23.3.0", sha256="1c7b8d606e728a41ea1ccbd7264677e494e87cf630e399262ced92d4a8dac940" + ) + version( + "23.1.0", sha256="b0bd97bea8903f5a2ba7219257a44e3f1f9d00073d6cc1add68f0beec69692ac" + ) + version( + "22.12.0", sha256="229351e5a18ca30f447bf724d007f890f97e13af070bb6ad4c0a441cd7596a2f" + ) + version( + "22.10.0", sha256="f513588da599943e0cde4e32cc9879e825d58720d6557062d1098c5ad80080e1" + ) + version( + "22.8.0", sha256="792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e" + ) + version( + "22.6.0", sha256="6c6d39e28aed379aec40da1c65434c77d75e65bb59a1e1c283de545fb4e7c6c9" + ) + version( + "22.3.0", sha256="35020b8886c022ced9282b51b5a875b6d1ab0c387b31a065b84db7c33085ca79" + ) + version( + "22.1.0", sha256="a7c0192d35635f6fc1174be575cb7915e92e5dd629ee79fdaf0dcfa41a80afb5" + ) variant("colorama", default=False, description="enable colorama support") variant("uvloop", default=False, description="enable uvloop support") variant("d", default=False, description="enable blackd HTTP server") variant("jupyter", default=False, description="enable Jupyter support") - depends_on("py-hatchling@1.20:", when="@23.12.1:", type="build") - depends_on("py-hatchling@1.8:", when="@22.10:", type="build") - depends_on("py-hatch-vcs", when="@22.10:", type="build") - depends_on("py-hatch-fancy-pypi-readme", when="@22.10:", type="build") + with default_args(type="build"): + depends_on("py-hatch-fancy-pypi-readme", when="@22.10:") + depends_on("py-hatch-vcs@0.3:", when="@26.3:") + depends_on("py-hatch-vcs", when="@22.10:") + depends_on("py-hatchling@1.27:", when="@25.11:") + depends_on("py-hatchling@1.20:", when="@23.12.1:") + depends_on("py-hatchling@1.8:", when="@22.10:") with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@25.12:") depends_on("python@3.8:", when="@23.7:") depends_on("python@3.7:", when="@22.10:") depends_on("py-click@8:") depends_on("py-mypy-extensions@0.4.3:") depends_on("py-packaging@22:", when="@23.1:") + depends_on("py-pathspec@1.0:", when="@26.1:") depends_on("py-pathspec@0.9:") depends_on("py-platformdirs@2:") + depends_on("py-pytokens@0.4", when="@26:") depends_on("py-tomli@1.1:", when="@22.8: ^python@:3.10") depends_on("py-tomli@1.1:", when="@21.7:22.6") depends_on("py-typing-extensions@4.0.1:", when="@23.9: ^python@:3.10") diff --git a/repos/spack_repo/builtin/packages/py_blake3/package.py b/repos/spack_repo/builtin/packages/py_blake3/package.py new file mode 100644 index 00000000000..6305de39070 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_blake3/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyBlake3(PythonPackage): + """Python bindings for the BLAKE3 cryptographic hash function""" + + pypi = "blake3/blake3-1.0.5.tar.gz" + + license("BSD-3-Clause") + + version("1.0.8", sha256="513cc7f0f5a7c035812604c2c852a0c1468311345573de647e310aca4ab165ba") + version("1.0.5", sha256="7bac73f393a67ea6d5ac32e4a45d39c184487c89c712ab3ed839c1a51ed82259") + + # https://github.com/oconnor663/blake3-py/blob/1.0.5/pyproject.toml + depends_on("py-maturin@1.0:1", type="build") + depends_on("rust", type="build") diff --git a/repos/spack_repo/builtin/packages/py_bleach/package.py b/repos/spack_repo/builtin/packages/py_bleach/package.py index 0d8808319b5..002b17a3eb1 100644 --- a/repos/spack_repo/builtin/packages/py_bleach/package.py +++ b/repos/spack_repo/builtin/packages/py_bleach/package.py @@ -15,6 +15,8 @@ class PyBleach(PythonPackage): license("Apache-2.0") + version("6.3.0", sha256="6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22") + version("6.2.0", sha256="123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f") version("6.0.0", sha256="1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414") version("5.0.1", sha256="0d03255c47eb9bd2f26aa9bb7f2107732e7e8fe195ca2f64709fcf3b0a4a085c") version("4.1.0", sha256="0900d8b37eba61a802ee40ac0061f8c2b5dee29c1927dd1d233e075ebf5a71da") @@ -23,7 +25,21 @@ class PyBleach(PythonPackage): version("3.1.0", sha256="3fdf7f77adcf649c9911387df51254b813185e32b2c6619f690b593a617e19fa") version("1.5.0", sha256="978e758599b54cd3caa2e160d74102879b230ea8dc93871d0783721eef58bc65") - depends_on("py-setuptools", type=("build", "run")) - depends_on("py-six@1.9.0:", type=("build", "run")) - depends_on("py-webencodings", type=("build", "run")) - depends_on("py-packaging", when="@3.1.5:4", type=("build", "run")) + variant("css", default=False, when="@5:", description="Add css support") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@6.3:") + depends_on("python@3.9:", when="@6.2:") + depends_on("python@3.8:", when="@6.1:") + depends_on("python@3.7:", when="@5:") + depends_on("py-setuptools") + depends_on("py-webencodings") + + with when("+css"): + depends_on("py-tinycss2@1.1:1.4", when="@6.2:") + depends_on("py-tinycss2@1.1:1.2", when="@6.1") + depends_on("py-tinycss2@1.1", when="@:6.0") + + # Historical dependencies + depends_on("py-six@1.9.0:", when="@:6.1") + depends_on("py-packaging", when="@3.1.5:4") diff --git a/repos/spack_repo/builtin/packages/py_blinker/package.py b/repos/spack_repo/builtin/packages/py_blinker/package.py index ce26b518309..0d854e864f3 100644 --- a/repos/spack_repo/builtin/packages/py_blinker/package.py +++ b/repos/spack_repo/builtin/packages/py_blinker/package.py @@ -16,8 +16,13 @@ class PyBlinker(PythonPackage): license("MIT") + version("1.9.0", sha256="b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf") version("1.6.2", sha256="4afd3de66ef3a9f8067559fb7a1cbe555c17dcbe15971b05d1b625c3e7abe213") version("1.4", sha256="471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6") - depends_on("py-setuptools@61.2:", when="@1.6:", type="build") - depends_on("py-setuptools", type="build") + depends_on("python@3.9:", type=("build", "run"), when="@1.9:") + depends_on("py-flit-core@:4", type="build", when="@1.6.3:") + + with when("@:1.6.2"): + depends_on("py-setuptools@61.2:", type="build", when="@1.6:") + depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_blis/package.py b/repos/spack_repo/builtin/packages/py_blis/package.py index 8730aa47434..a6b798b5986 100644 --- a/repos/spack_repo/builtin/packages/py_blis/package.py +++ b/repos/spack_repo/builtin/packages/py_blis/package.py @@ -17,15 +17,20 @@ class PyBlis(PythonPackage): license("BSD-3-Clause") + version("1.3.3", sha256="034d4560ff3cc43e8aa37e188451b0440e3261d989bb8a42ceee865607715ecd") version("0.9.1", sha256="7ceac466801f9d97ecb34e10dded8c24cf5e0927ea7e834da1cc9d2ed3fc366f") version("0.7.9", sha256="29ef4c25007785a90ffc2f0ab3d3bd3b75cd2d7856a9a482b7d0dac8d511a09d") version("0.4.1", sha256="d69257d317e86f34a7f230a2fd1f021fd2a1b944137f40d8cdbb23bd334cd0c4") depends_on("c", type="build") # generated + depends_on("python@:3.14", when="@:0.9.1", type=("build", "run")) + depends_on("python@3.9:3.14", when="@1.3.3:", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-cython@0.25:", when="@0.7.9:", type="build") - depends_on("py-numpy@1.15:", type=("build", "run")) + depends_on("py-cython@0.25:", when="@0.7.9:0.9.1", type="build") + depends_on("py-cython@3", when="@1.3.3:", type="build") + depends_on("py-numpy@1.15:", when="@:0.9.1", type=("build", "run")) + depends_on("py-numpy@2:", when="@1.3.3:", type=("build", "run")) def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("BLIS_COMPILER", spack_cc) diff --git a/repos/spack_repo/builtin/packages/py_bokeh/package.py b/repos/spack_repo/builtin/packages/py_bokeh/package.py index beeb111fb9c..18c32014733 100644 --- a/repos/spack_repo/builtin/packages/py_bokeh/package.py +++ b/repos/spack_repo/builtin/packages/py_bokeh/package.py @@ -15,6 +15,7 @@ class PyBokeh(PythonPackage): license("BSD-3-Clause") + version("3.8.2", sha256="8e7dcacc21d53905581b54328ad2705954f72f2997f99fc332c1de8da53aa3cc") version("3.7.2", sha256="80c21885cec276431acd4db92f831c71eb999ea995470ce777e0c577b0cfc1d8") version("3.5.2", sha256="03a54a67db677b8881834271c620a781b383ae593af5c3ea2149164754440d07") version("3.3.1", sha256="2a7b3702d7e9f03ef4cd801b02b7380196c70cff2773859bcb84fa565218955c") diff --git a/repos/spack_repo/builtin/packages/py_boost_histogram/package.py b/repos/spack_repo/builtin/packages/py_boost_histogram/package.py index efd9a5c6b15..20fc6ce04f2 100644 --- a/repos/spack_repo/builtin/packages/py_boost_histogram/package.py +++ b/repos/spack_repo/builtin/packages/py_boost_histogram/package.py @@ -15,6 +15,10 @@ class PyBoostHistogram(PythonPackage): license("BSD-3-Clause") + version("1.7.1", sha256="6ed3d7d2688fa32889dd441a7ef4920d60d696137d2abc3ab14eb9bd3b455b19") + version("1.6.1", sha256="cbe67507f62063590395cc9fe177bf979f26a53c0574365f8241b883b9a6f756") + version("1.5.2", sha256="51e42e830b848f08ad4d28de2ade18ded6e9a2fa4e6038becc9c72592e484e5c") + version("1.4.1", sha256="97146f735f467d506976a047f3f237ce59840a952fd231f5f431f897fb006cdd") version("1.3.2", sha256="e175efbc1054a27bc53fbbe95472cac9ea93999c91d0611840d776b99588d51a") version("1.3.1", sha256="31cd396656f3a37834e07d304cdb84d9906bc2172626a3d92fe577d08bcf410f") version("1.2.1", sha256="a27842b2f1cfecc509382da2b25b03056354696482b38ec3c0220af0fc9b7579") @@ -22,9 +26,25 @@ class PyBoostHistogram(PythonPackage): depends_on("cxx", type="build") # generated depends_on("python@3.6:", type=("build", "run")) - depends_on("py-setuptools@45:", type="build") - depends_on("py-setuptools-scm@4.1.2:+toml", type="build") + depends_on("python@3.7:", type=("build", "run"), when="@1.4") + depends_on("python@3.8:", type=("build", "run"), when="@1.5") + depends_on("python@3.9:", type=("build", "run"), when="@1.6") + depends_on("python@3.10:", type=("build", "run"), when="@1.7:") + + with when("@1.5:"): + depends_on("py-scikit-build-core@0.11:", type="build") + depends_on("py-pybind11@2.13.3:", type="build") + depends_on("py-pybind11@3:", type="build", when="@1.6:") + # pyproject.toml: + # [tool.scikit-build] + # metadata.version.provider = "scikit_build_core.metadata.setuptools_scm" + depends_on("py-setuptools-scm", type="build") + with when("@:1.4"): + depends_on("py-setuptools@45:", type="build") + depends_on("py-setuptools-scm@4.1.2:+toml", type="build") + depends_on("py-numpy@1.13.3:", type=("build", "run")) + depends_on("py-numpy@1.21.3:", type=("build", "run"), when="@1.7:") # https://github.com/numpy/numpy/issues/26191#issuecomment-2179127999 depends_on("py-numpy@:1", when="@:1.4.0", type=("build", "run")) depends_on("py-typing-extensions", when="^python@:3.7", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_boto3/package.py b/repos/spack_repo/builtin/packages/py_boto3/package.py index 5e9dfaeb8a0..f863be580c1 100644 --- a/repos/spack_repo/builtin/packages/py_boto3/package.py +++ b/repos/spack_repo/builtin/packages/py_boto3/package.py @@ -13,6 +13,11 @@ class PyBoto3(PythonPackage): homepage = "https://github.com/boto/boto3" pypi = "boto3/boto3-1.10.44.tar.gz" + 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") version("1.34.44", sha256="86bcf79a56631609a9f8023fe8f53e2869702bdd4c9047c6d9f091eb39c9b0fa") version("1.26.26", sha256="a2349d436db6f6aa1e0def5501e4884572eb6f008f35063a359a6fa8ba3539b7") @@ -33,36 +38,45 @@ class PyBoto3(PythonPackage): version("1.9.253", sha256="d93f1774c4bc66e02acdda2067291acb9e228a035435753cb75f83ad2904cbe3") version("1.9.169", sha256="9d8bd0ca309b01265793b7e8d7b88c1df439737d77c8725988f0277bbf58d169") + 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")) depends_on("python@2.6:", when="@1.9:", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-botocore@1.34.162:1.34", when="@1.34.162", type=("build", "run")) - depends_on("py-botocore@1.34.44:1.34", when="@1.34.44", type=("build", "run")) - depends_on("py-botocore@1.29.26:1.29", when="@1.26", type=("build", "run")) - depends_on("py-botocore@1.28.5:1.28", when="@1.25", type=("build", "run")) - depends_on("py-botocore@1.27.96:1.27", when="@1.24", type=("build", "run")) - depends_on("py-botocore@1.26.10:1.26", when="@1.23", type=("build", "run")) - depends_on("py-botocore@1.25.13:1.25", when="@1.22", type=("build", "run")) - depends_on("py-botocore@1.24.46:1.24", when="@1.21", type=("build", "run")) - depends_on("py-botocore@1.23.54:1.23", when="@1.20", type=("build", "run")) - depends_on("py-botocore@1.22.12:1.22", when="@1.19", type=("build", "run")) - depends_on("py-botocore@1.21.65:1.21", when="@1.18", type=("build", "run")) - depends_on("py-botocore@1.20.27:1.20", when="@1.17", type=("build", "run")) - depends_on("py-botocore@1.13.50:1.13", when="@1.10", type=("build", "run")) - depends_on("py-botocore@1.12.253:1.12", when="@1.9", type=("build", "run")) + 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") + depends_on("py-botocore@1.34.44:1.34", when="@1.34.44") + depends_on("py-botocore@1.29.26:1.29", when="@1.26") + depends_on("py-botocore@1.28.5:1.28", when="@1.25") + depends_on("py-botocore@1.27.96:1.27", when="@1.24") + depends_on("py-botocore@1.26.10:1.26", when="@1.23") + depends_on("py-botocore@1.25.13:1.25", when="@1.22") + depends_on("py-botocore@1.24.46:1.24", when="@1.21") + depends_on("py-botocore@1.23.54:1.23", when="@1.20") + depends_on("py-botocore@1.22.12:1.22", when="@1.19") + depends_on("py-botocore@1.21.65:1.21", when="@1.18") + depends_on("py-botocore@1.20.27:1.20", when="@1.17") + depends_on("py-botocore@1.13.50:1.13", when="@1.10") + depends_on("py-botocore@1.12.253:1.12", when="@1.9") - depends_on("py-jmespath@0.7.1:0", when="@:1.20", type=("build", "run")) - depends_on("py-jmespath@0.7.1:1", type=("build", "run")) + depends_on("py-jmespath@0.7.1:1") + depends_on("py-jmespath@0.7.1:0", when="@:1.20") - depends_on("py-s3transfer@0.10", when="@1.34.6:", type=("build", "run")) - depends_on("py-s3transfer@0.9", when="@1.34:1.34.5", type=("build", "run")) - depends_on("py-s3transfer@0.8.2:0.8", when="@1.33.4:1.33", type=("build", "run")) - depends_on("py-s3transfer@0.8", when="@1.29.7:1.33.3", type=("build", "run")) - depends_on("py-s3transfer@0.7", when="@1.28.55:1.29.6", type=("build", "run")) - depends_on("py-s3transfer@0.6", when="@1.24:1.28.54", type=("build", "run")) - depends_on("py-s3transfer@0.5", when="@1.18:1.23", type=("build", "run")) - depends_on("py-s3transfer@0.3", when="@1.17", type=("build", "run")) - depends_on("py-s3transfer@0.2", when="@:1.10", type=("build", "run")) + 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") + depends_on("py-s3transfer@0.8.2:0.8", when="@1.33.4:1.33") + depends_on("py-s3transfer@0.8", when="@1.29.7:1.33.3") + depends_on("py-s3transfer@0.7", when="@1.28.55:1.29.6") + depends_on("py-s3transfer@0.6", when="@1.24:1.28.54") + depends_on("py-s3transfer@0.5", when="@1.18:1.23") + depends_on("py-s3transfer@0.3", when="@1.17") + depends_on("py-s3transfer@0.2", when="@:1.10") diff --git a/repos/spack_repo/builtin/packages/py_botocore/package.py b/repos/spack_repo/builtin/packages/py_botocore/package.py index e8c46807d29..50868ec47a4 100644 --- a/repos/spack_repo/builtin/packages/py_botocore/package.py +++ b/repos/spack_repo/builtin/packages/py_botocore/package.py @@ -13,6 +13,11 @@ class PyBotocore(PythonPackage): homepage = "https://github.com/boto/botocore" pypi = "botocore/botocore-1.13.44.tar.gz" + 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") version("1.34.44", sha256="b0f40c54477e8e0a5c43377a927b8959a86bb8824aaef2d28db7c9c367cdefaa") version("1.31.41", sha256="4dad7c5a5e70940de54ebf8de3955450c1f092f43cacff8103819d1e7d5374fa") @@ -40,19 +45,22 @@ class PyBotocore(PythonPackage): version("1.12.253", sha256="3baf129118575602ada9926f5166d82d02273c250d0feb313fc270944b27c48b") version("1.12.169", sha256="25b44c3253b5ed1c9093efb57ffca440c5099a2d62fa793e8b6c52e72f54b01e") + 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") - depends_on("py-jmespath@0.7.1:0", type=("build", "run"), when="@:1.23") - depends_on("py-jmespath@0.7.1:1", type=("build", "run")) - depends_on("py-docutils@0.10:0.15", type=("build", "run"), when="@:1.17") - depends_on("py-python-dateutil@2.1:2", type=("build", "run")) - depends_on("py-urllib3@1.20:1.25", type=("build", "run"), when="@:1.14.11") - depends_on("py-urllib3@1.20:1.25", type=("build", "run"), when="@1.14.12:1.18") - depends_on("py-urllib3@1.25.4:1.25", type=("build", "run"), when="@1.19.0:1.19.15") - depends_on("py-urllib3@1.25.4:1.26", type=("build", "run"), when="@1.19.16:1.31.61") - depends_on("py-urllib3@1.25.4:1.26", type=("build", "run"), when="@1.31.62: ^python@:3.9") - depends_on( - "py-urllib3@1.25.4:2.0", type=("build", "run"), when="@1.31.62:1.34.62 ^python@3.10:" - ) - depends_on( - "py-urllib3@1.25.4:2.1,2.2.1:2", type=("build", "run"), when="@1.34.63: ^python@3.10:" - ) + + with default_args(type=("build", "run")): + depends_on("py-jmespath@0.7.1:1", when="@1.24:") + depends_on("py-jmespath@0.7.1:0", when="@:1.23") + depends_on("py-python-dateutil@2.1:2") + depends_on("py-urllib3@1.25.4:2", when="@1.34.63: ^python@3.10:") + depends_on("py-urllib3@1.25.4:1.26", when="@1.34.63: ^python@:3.9") + depends_on("py-urllib3@1.25.4:2.0", when="@1.31.62:1.34.62") + depends_on("py-urllib3@1.25.4:1.26", when="@1.19:1.31.61") + depends_on("py-urllib3@1.20:1.25", when="@1.14.12:1.18") + depends_on("py-urllib3@1.20:1.25", when="@:1.14.11") + + # Historical dependencies + depends_on("py-docutils@0.10:0.15", when="@:1.17") + + conflicts("py-urllib3@2.2.0") diff --git a/repos/spack_repo/builtin/packages/py_botorch/package.py b/repos/spack_repo/builtin/packages/py_botorch/package.py index 80f7a7cef23..7134e9936d7 100644 --- a/repos/spack_repo/builtin/packages/py_botorch/package.py +++ b/repos/spack_repo/builtin/packages/py_botorch/package.py @@ -20,37 +20,19 @@ class PyBotorch(PythonPackage): version("0.8.4", sha256="e2c17efa8fcda3c9353bbd14ba283ddf237d66151097c0af483bbaaaac61288b") version("0.8.3", sha256="e529f7adbb2b54f46125ae904682fc0f0d02ab8bdb9067ede521c379b355bf73") - with default_args(deprecated=True): - version("0.6.4", sha256="3fd28417f55749501a45378f72cd5ca7614e2e05b7b65c6b4eb9b72378bc665a") - with default_args(type="build"): depends_on("py-setuptools") - depends_on("py-setuptools@:47", when="@:0.6.4") - - depends_on("py-setuptools-scm") depends_on("py-setuptools-scm+toml", when="@0.8.3:") with default_args(type=("build", "run")): - depends_on("python@3.8:", when="@0.8.3:") - depends_on("python@3.7:") - depends_on("py-torch@1.12:", when="@0.8.3:") - depends_on("py-torch@1.9:") - depends_on("py-gpytorch@1.10:", when="@0.8.4:") depends_on("py-gpytorch@1.9.1:", when="@0.8.3:") - depends_on("py-gpytorch@1.6:") - depends_on("py-scipy") - depends_on("py-multipledispatch") - depends_on("py-pyro-ppl@1.8.4:", when="@0.8.3:") - depends_on("py-pyro-ppl@1.8.0", when="@:0.6.4") - depends_on("py-linear-operator@0.4.0:", when="@0.8.4:") depends_on("py-linear-operator@0.3.0:", when="@0.8.3:") def setup_build_environment(self, env: EnvironmentModifications) -> None: - if self.spec.satisfies("@0.8.3:"): - env.set("ALLOW_LATEST_GPYTORCH_LINOP", "True") + env.set("ALLOW_LATEST_GPYTORCH_LINOP", "True") diff --git a/repos/spack_repo/builtin/packages/py_bottle/package.py b/repos/spack_repo/builtin/packages/py_bottle/package.py index 30b7d408676..238cdb7c4e8 100644 --- a/repos/spack_repo/builtin/packages/py_bottle/package.py +++ b/repos/spack_repo/builtin/packages/py_bottle/package.py @@ -16,6 +16,7 @@ class PyBottle(PythonPackage): license("MIT") + version("0.13.4", sha256="807c789c3184d7070010dbdf1339ee46ff9fb9b6694d7caa3047f975f8a7df60") version("0.12.23", sha256="f38c26395736ae4653cbeb94087d3bd1d2e1ad0c29b1d3e5384f5db20b63bc98") version("0.12.19", sha256="b97277f8e87d452a0aa5fbcd16cd604a189e2cc17fdb2d4eaf6baa732f8d111b") version("0.12.18", sha256="176721f1e26082c66fd4df76f31800933e4bb36de6814b0fda3851cb409a95e6") diff --git a/repos/spack_repo/builtin/packages/py_bottleneck/package.py b/repos/spack_repo/builtin/packages/py_bottleneck/package.py index d686866b714..50e304b41c5 100644 --- a/repos/spack_repo/builtin/packages/py_bottleneck/package.py +++ b/repos/spack_repo/builtin/packages/py_bottleneck/package.py @@ -11,10 +11,13 @@ class PyBottleneck(PythonPackage): """A collection of fast NumPy array functions written in Cython.""" homepage = "https://github.com/pydata/bottleneck" - pypi = "Bottleneck/Bottleneck-1.0.0.tar.gz" + pypi = "Bottleneck/bottleneck-1.0.0.tar.gz" license("BSD-2-Clause") + version("1.6.0", sha256="028d46ee4b025ad9ab4d79924113816f825f62b17b87c9e1d0d8ce144a4a0e31") + version("1.5.0", sha256="c860242cf20e69d5aab2ec3c5d6c8c2a15f19e4b25b28b8fca2c2a12cefae9d8") + version("1.3.8", sha256="6780d896969ba7f53c8995ba90c87c548beb3db435dc90c60b9a10ed1ab4d868") version("1.3.7", sha256="e1467e373ad469da340ed0ff283214d6531cc08bfdca2083361a3aa6470681f8") version("1.3.5", sha256="2c0d27afe45351f6f421893362621804fa7dea14fe29a78eaa52d4323f646de7") version("1.3.2", sha256="20179f0b66359792ea283b69aa16366419132f3b6cf3adadc0c48e2e8118e573") @@ -25,8 +28,17 @@ class PyBottleneck(PythonPackage): depends_on("c", type="build") # generated + depends_on("python@3.10:", type=("build", "run"), when="@1.6:") + depends_on("python@3.9:", type=("build", "run"), when="@1.4.2:") + depends_on("py-setuptools", type="build") depends_on("py-versioneer", when="@1.3.3:", type="build") depends_on("py-numpy", type=("build", "run")) - # https://github.com/pydata/bottleneck/issues/453 - depends_on("py-numpy@:1", when="@:1.3", type=("build", "run")) + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/b/Bottleneck/{0}-{1}.tar.gz" + if version > Version("1.3.8"): + name = "bottleneck" + else: + name = "Bottleneck" + return url.format(name, version) diff --git a/repos/spack_repo/builtin/packages/py_bqplot/package.py b/repos/spack_repo/builtin/packages/py_bqplot/package.py index 149b229f74d..d196ace836a 100644 --- a/repos/spack_repo/builtin/packages/py_bqplot/package.py +++ b/repos/spack_repo/builtin/packages/py_bqplot/package.py @@ -16,6 +16,7 @@ class PyBqplot(PythonPackage): license("Apache-2.0") + version("0.12.45", sha256="cf2e046adb401670902ab53a18d9f63540091279bc45c4ef281bfdadf6e7e92c") version("0.12.44", sha256="cad65bf5c4ce7ea7b03e1c674340f9274c0975941e63057831b29f7c2c37f144") with default_args(type=("build", "run")): diff --git a/repos/spack_repo/builtin/packages/py_brain_indexer/package.py b/repos/spack_repo/builtin/packages/py_brain_indexer/package.py index e1d7eb03fd6..29697214c8b 100644 --- a/repos/spack_repo/builtin/packages/py_brain_indexer/package.py +++ b/repos/spack_repo/builtin/packages/py_brain_indexer/package.py @@ -16,6 +16,7 @@ class PyBrainIndexer(PythonPackage): maintainers("matz-e") + version("3.1.1", sha256="114d7ce2d916051a495dd36e81221ee950d0f0cfa4381024a047c69eba43e364") version("3.0.0", sha256="23947519df5f87c65781d1776f02e8e17798c40c617399b02e6ecae8e09a0a72") variant("mpi", default=True, description="Enable MPI parallelism") diff --git a/repos/spack_repo/builtin/packages/py_breathe/package.py b/repos/spack_repo/builtin/packages/py_breathe/package.py index 81b8b4061f0..000d43ddb42 100644 --- a/repos/spack_repo/builtin/packages/py_breathe/package.py +++ b/repos/spack_repo/builtin/packages/py_breathe/package.py @@ -9,13 +9,16 @@ class PyBreathe(PythonPackage): """This is an extension to reStructuredText and Sphinx to be able to read - and render the Doxygen xml output.""" + and render Doxygen XML output.""" - homepage = "https://github.com/michaeljones/breathe" - url = "https://github.com/michaeljones/breathe/archive/v4.11.1.tar.gz" + homepage = "https://github.com/breathe-doc/breathe" + url = "https://github.com/breathe-doc/breathe/archive/refs/tags/v4.36.0.tar.gz" + + maintainers("sethrj") license("BSD-3-Clause") + version("4.36.0", sha256="94fc2277e639929e898cb95559d9d2c51cf764b787eaf6fa04f848a6550c2ff5") version("4.35.0", sha256="55b54723752fc04b892a0f868782b1df65e69db6ca94fb32cf04be495bfd7841") version("4.34.0", sha256="b22e70eb4000492508d687d71f258c8f9678398e277bcee0daf34cd438a46e25") version("4.33.1", sha256="acda75b216b227ec09ffd74378a6c7ed8f023df4539693c6e20574d1df52e75b") @@ -31,25 +34,25 @@ class PyBreathe(PythonPackage): version("4.7.1", sha256="afb1ab0084b25d3670fa8f5cf2eeaee6fe61bfc77876e3816b140eacd4949875") version("4.7.0", sha256="5629c67f5adb41f39375d36c5f0d60d34b1230be268125e535205d77f69211e4") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - depends_on("py-setuptools", type="build") - - depends_on("python@3.5:", type=("build", "run"), when="@4.21:4.32") - depends_on("python@3.6:", type=("build", "run"), when="@4.33:") - depends_on("py-docutils@0.5:", type=("build", "run"), when="@:4.20") - depends_on("py-docutils@0.12:", type=("build", "run"), when="@4.21:") - # Note: Pygments is missing from the setup.py in 4.34.0 but is listed in - # the requirements file and used by breathe.filetypes. - depends_on("py-pygments@1.6:", type=("build", "run"), when="@4.21:") - depends_on("py-six@1.4:", type=("build", "run"), when="@:4.20") - depends_on("py-six@1.9:", type=("build", "run"), when="@4.21:4.32") - depends_on("py-sphinx", type=("build", "run")) - depends_on("py-sphinx@:3", type=("build", "run"), when="@:4.20") - depends_on("py-sphinx@3:3.2", type=("build", "run"), when="@4.21:4.32") - depends_on("py-sphinx@3:4", type=("build", "run"), when="@4.33") - depends_on("py-sphinx@4,5.0.1:5", type=("build", "run"), when="@4.34") - depends_on("py-sphinx@4,5.0.1:", type=("build", "run"), when="@4.35:") + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@4.36:") + depends_on("python@3.6:", when="@4.33:4.35") + depends_on("python@3.5:", when="@4.21:4.32") + + depends_on("py-sphinx@7.2:", when="@4.35:") + depends_on("py-sphinx@4,5.0.1:5", when="@4.34") + depends_on("py-sphinx@3:4", when="@4.33") + depends_on("py-sphinx@3:3.2", when="@4.21:4.32") + depends_on("py-sphinx@:3", when="@:4.20") + + depends_on("py-six@1.9:", when="@4.21:4.32") + depends_on("py-six@1.4:", when="@:4.20") + + with default_args(type="build"): + depends_on("py-flit-core@3.7:", when="@4.36:") + depends_on("py-setuptools", type="build", when="@:4.35") + # Doxygen is *implicitly* required to build the XML files used by breathe, + # but it is not called directly. It is used directly by the examples, which + # are not hooked up to this spack recipe. depends_on("doxygen@1.8.4:", type="run") diff --git a/repos/spack_repo/builtin/packages/py_brotli/package.py b/repos/spack_repo/builtin/packages/py_brotli/package.py index f874cada971..b7e8528ba5d 100644 --- a/repos/spack_repo/builtin/packages/py_brotli/package.py +++ b/repos/spack_repo/builtin/packages/py_brotli/package.py @@ -11,12 +11,25 @@ class PyBrotli(PythonPackage): """Python bindings for the Brotli compression library.""" homepage = "https://github.com/google/brotli" - pypi = "Brotli/Brotli-1.1.0.tar.gz" + pypi = "brotli/brotli-1.2.0.tar.gz" license("MIT") - version("1.1.0", sha256="81de08ac11bcb85841e440c13611c00b67d3bf82698314928d0b676362546724") + version("1.2.0", sha256="e310f77e41941c13340a95976fe66a8a95b01e783d430eeaf7a2f87e0a57dd0a") + version( + "1.1.0", + sha256="81de08ac11bcb85841e440c13611c00b67d3bf82698314928d0b676362546724", + url="https://files.pythonhosted.org/packages/source/b/Brotli/Brotli-1.1.0.tar.gz", + deprecated=True, + ) - depends_on("c", type="build") # generated + def setup_build_environment(self, env): + env.set("USE_SYSTEM_BROTLI", "1") + with when("@1.2:"): + depends_on("brotli@1.2:", type="link") + depends_on("py-pkgconfig", type="build") + + depends_on("python", type=("build", "link", "run")) + depends_on("c", type="build") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_build/package.py b/repos/spack_repo/builtin/packages/py_build/package.py index 08571efbd1b..f036d0c930b 100644 --- a/repos/spack_repo/builtin/packages/py_build/package.py +++ b/repos/spack_repo/builtin/packages/py_build/package.py @@ -15,6 +15,7 @@ class PyBuild(PythonPackage): license("MIT") + version("1.4.3", sha256="5aa4231ae0e807efdf1fd0623e07366eca2ab215921345a2e38acdd5d0fa0a74") version("1.2.2", sha256="119b2fb462adef986483438377a13b2f42064a2a3a4161f24a0cca698a07ac8c") version("1.2.1", sha256="526263f4870c26f26c433545579475377b2b7588b6f1eac76a001e873ae3e19d") version("1.1.1", sha256="8eea65bb45b1aac2e734ba2cc8dad3a6d97d97901a395bd0ed3e7b46953d2a31") @@ -29,6 +30,7 @@ class PyBuild(PythonPackage): variant("virtualenv", default=False, description="Install optional virtualenv dependency") with default_args(type="build"): + depends_on("py-flit-core@3.11:", when="@1.4.3:") depends_on("py-flit-core@3.8:", when="@1:") depends_on("py-flit-core@3.4:", when="@0.10:") @@ -36,10 +38,12 @@ class PyBuild(PythonPackage): depends_on("py-setuptools", when="@:0.9") with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@1.4.3:") depends_on("python@3.8:", when="@1.2:") depends_on("python@3.7:", when="@0.10:") depends_on("python@3.6:", when="@0.6:") + depends_on("py-packaging@24.0:", when="@1.4.3:") depends_on("py-packaging@19.1:", when="@1.2:") depends_on("py-packaging@19:") diff --git a/repos/spack_repo/builtin/packages/py_bx_python/package.py b/repos/spack_repo/builtin/packages/py_bx_python/package.py index abb5f1de922..c32676ae20c 100644 --- a/repos/spack_repo/builtin/packages/py_bx_python/package.py +++ b/repos/spack_repo/builtin/packages/py_bx_python/package.py @@ -17,22 +17,15 @@ class PyBxPython(PythonPackage): license("MIT") version("0.9.0", sha256="fe545c44d2ea74b239d41e9090618aaf6a859d1a1f64b4a21b133cb602dfdb49") - version( - "0.8.8", - sha256="ad0808ab19c007e8beebadc31827e0d7560ac0e935f1100fb8cc93607400bb47", - deprecated=True, - ) depends_on("c", type="build") # generated # See https://pypi.org/project/bx-python/(version)/#files for which Python versions # work with which releases. depends_on("python@3.7:3.11", when="@=0.9.0", type=("build", "run")) - depends_on("python@3.5:3.8", when="@=0.8.8", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-cython", type="build") depends_on("py-numpy", type=("build", "run")) - depends_on("py-six", when="@:0.8.9", type=("build", "run")) # py-python-lzo is listed as a dependency in `tox.ini` rather than in `setup.cfg` depends_on("py-python-lzo@1.14:", type=("build", "run")) depends_on("zlib", type="link") diff --git a/repos/spack_repo/builtin/packages/py_cachetools/package.py b/repos/spack_repo/builtin/packages/py_cachetools/package.py index f196538ad2a..23a13ed2030 100644 --- a/repos/spack_repo/builtin/packages/py_cachetools/package.py +++ b/repos/spack_repo/builtin/packages/py_cachetools/package.py @@ -17,12 +17,21 @@ class PyCachetools(PythonPackage): license("MIT") + 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") version("4.2.2", sha256="61b5ed1e22a0924aed1d23b478f37e8d52549ff8a961de2909c69bf950020cff") version("3.1.1", sha256="8ea2d3ce97850f31e4a08b0e2b5e6c34997d7216a9d2c98e0f3978630d4da69a") - depends_on("py-setuptools", type="build") - depends_on("py-setuptools@46.4.0:", when="@4.2.2:", type="build") - depends_on("python@3.5:3", when="@4.2.2", type=("build", "run")) - depends_on("python@3.7:3", when="@5.2.0", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("python@3.5:3", when="@4.2.2:") + depends_on("python@3.7:3", when="@5.2.0:") + depends_on("python@3.9:3", when="@6:") + + with default_args(type="build"): + depends_on("py-setuptools") + depends_on("py-setuptools@46.4.0:", when="@4.2.2:") + depends_on("py-setuptools@61.0.0:", when="@6.2.3:") diff --git a/repos/spack_repo/builtin/packages/py_cachey/package.py b/repos/spack_repo/builtin/packages/py_cachey/package.py new file mode 100644 index 00000000000..1e64baf5bb5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_cachey/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 PyCachey(PythonPackage): + """Cachey is a package for caching of analytic computations.""" + + homepage = "http://github.com/dask/cachey/" + pypi = "cachey/cachey-0.2.1.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("0.2.1", sha256="0310ba8afe52729fa7626325c8d8356a8421c434bf887ac851e58dcf7cf056a6") + + depends_on("python@3.6:", type=("build", "run")) + + depends_on("py-setuptools", type="build") + + depends_on("py-heapdict", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_calver/package.py b/repos/spack_repo/builtin/packages/py_calver/package.py index b0683c72946..b80092b3542 100644 --- a/repos/spack_repo/builtin/packages/py_calver/package.py +++ b/repos/spack_repo/builtin/packages/py_calver/package.py @@ -16,6 +16,13 @@ class PyCalver(PythonPackage): license("Apache-2.0") + version( + "2025.10.20", sha256="c98b376c2424642224d456b2f70c51402343e008c63d204634665e1a2a2835f5" + ) + version("2025.4.17", sha256="460702737d620f5c3d4175450485180a1b7f7a422c5db0e6af3e655c7395ec7e") version("2022.6.26", sha256="e05493a3b17517ef1748fbe610da11f10485faa7c416b9d33fd4a52d74894f8b") + depends_on("python@3.9:", type=("build", "run"), when="@2025.4.1:") + + depends_on("py-setuptools@77.0.1:", type="build", when="@2025.4.2:") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_carputils/package.py b/repos/spack_repo/builtin/packages/py_carputils/package.py index 0236873eb88..ad82c7ba5f3 100644 --- a/repos/spack_repo/builtin/packages/py_carputils/package.py +++ b/repos/spack_repo/builtin/packages/py_carputils/package.py @@ -2,7 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack_repo.builtin.build_systems.python import PythonPackage from spack.package import * @@ -20,6 +19,10 @@ class PyCarputils(PythonPackage): version("master", branch="master") # Version to use with openCARP releases + version("oc19.0", commit="8d7a402760192493447cd35893abd147fee1e35a") + version("oc18.1", commit="0b56f65dd32649bfd8033c5407273aa8ff006608") + version("oc18.0", commit="e66c3ca6c5016d12b651a4e58a54430af3b91a44") + version("oc17.0", commit="0e837d925d3c75cee5d11d900fa65b79b1b25ba5") version("oc16.0", commit="c40783d884de5ad8ae1b5102b68013b28e14cbe4") version("oc15.0", commit="50e2580b3f75711388eb55982a9b43871c3201f3") version("oc13.0", commit="216c3802c2ac2d14c739164dcd57f2e59aa2ede3") @@ -35,14 +38,48 @@ class PyCarputils(PythonPackage): depends_on("git", type=("build", "run")) - depends_on("py-numpy@1.14.5:", type=("build", "run")) - depends_on("py-setuptools@41.6.0:", type=("build", "run")) - depends_on("py-python-dateutil@2.8.1:", type=("build", "run")) - depends_on("py-scipy@1.5.0:", type=("build", "run")) - depends_on("py-matplotlib@3.0.0:", type=("build", "run")) - depends_on("py-pandas", type=("build", "run")) - depends_on("py-tables@3.8.0:", type=("build", "run")) - depends_on("py-six@1.12.0:", type=("build", "run")) - depends_on("py-pydoe@0.3.8", type=("build", "run")) - depends_on("py-ruamel-yaml@0.17.4:", type=("build", "run")) - depends_on("py-common", type=("build", "run")) + with when("@oc16.0:"): + depends_on("py-common@0.1.2", type=("build", "run")) + depends_on("py-ruamel-yaml@0.17.4:", when="@oc16.0:oc18", type=("build", "run")) + depends_on("py-pyyaml", when="@oc19.0:", type=("build", "run")) + depends_on("py-pydoe@0.3.8", type=("build", "run")) + depends_on("py-setuptools@41.6.0:", type=("build", "run")) + + depends_on("py-scipy@1.11:", type=("build", "run")) + depends_on("py-scipy@1.11", when="^python@3.9:3.11", type=("build", "run")) + depends_on("py-scipy@1.9.2", when="^python@3.8", type=("build", "run")) + depends_on("py-scipy@1.7.3", when="^python@3.7", type=("build", "run")) + + depends_on("py-numpy@1.26:", type=("build", "run")) + depends_on("py-numpy@1.21.6:1.26", when="^python@3.9:3.11", type=("build", "run")) + depends_on("py-numpy@1.18.5:1.25", when="^python@3.8", type=("build", "run")) + depends_on("py-numpy@1.16.5:1.22", when="^python@3.7", type=("build", "run")) + + depends_on("py-tables@3.9:", type=("build", "run")) + depends_on("py-tables@3.6.1", when="^python@:3.8", type=("build", "run")) + + depends_on("py-pandas", type=("build", "run")) + depends_on("py-pandas@:1.1.4", when="^python@:3.9", type=("build", "run")) + + depends_on("py-python-dateutil", type=("build", "run")) + depends_on("py-python-dateutil@2.8.1", when="^python@:3.9", type=("build", "run")) + + depends_on("py-six@1.16", when="^python@3.12:", type=("build", "run")) + depends_on("py-six@1.14.0", when="^python@:3.11", type=("build", "run")) + + depends_on("py-matplotlib", type=("build", "run")) + depends_on("py-matplotlib@:3.7", when="^python@:3.11", type=("build", "run")) + + with when("@:oc15.0"): + # Historical dependencies + depends_on("py-numpy@1.14.5:", type=("build", "run")) + depends_on("py-setuptools@41.6.0:", type=("build", "run")) + depends_on("py-python-dateutil@2.8.1:", type=("build", "run")) + depends_on("py-scipy@1.5.0:", type=("build", "run")) + depends_on("py-matplotlib@3.0.0:", type=("build", "run")) + depends_on("py-pandas", type=("build", "run")) + depends_on("py-tables@3.8.0:", type=("build", "run")) + depends_on("py-six@1.12.0:", type=("build", "run")) + depends_on("py-pydoe@0.3.8", type=("build", "run")) + depends_on("py-ruamel-yaml@0.17.4:", type=("build", "run")) + depends_on("py-common", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_cartopy/package.py b/repos/spack_repo/builtin/packages/py_cartopy/package.py index 32e64805d21..3de01ac5773 100644 --- a/repos/spack_repo/builtin/packages/py_cartopy/package.py +++ b/repos/spack_repo/builtin/packages/py_cartopy/package.py @@ -12,11 +12,14 @@ class PyCartopy(PythonPackage): homepage = "https://scitools.org.uk/cartopy/docs/latest/" pypi = "Cartopy/cartopy-0.20.2.tar.gz" + git = "https://github.com/SciTools/cartopy.git" skip_modules = ["cartopy.tests"] license("LGPL-3.0-or-later") maintainers("adamjstewart") + version("main", branch="main") + version("0.25.0", sha256="55f1a390e5f3f075b221c7d91fb10258ad978db786c7930eba06eb45d28753fe") version("0.24.1", sha256="01c910d5634c69a7efdec46e0a17d473d2328767f001d4dc0b5c4b48e585c8bd") version("0.24.0", sha256="e044e0e0fa76bb7afde937bec541743dcbf6b6f23b933a21ebddcd20cfffb755") version("0.23.0", sha256="231f37b35701f2ba31d94959cca75e6da04c2eea3a7f14ce1c75ee3b0eae7676") @@ -47,7 +50,7 @@ class PyCartopy(PythonPackage): # Based on wheel availability on PyPI with default_args(type=("build", "link", "run")): - depends_on("python@3.10:3.13", when="@0.24.1:") + depends_on("python@3.10:3.14", when="@0.24.1:0.25.0") depends_on("python@3.10:3.12", when="@0.24.0") depends_on("python@3.9:3.12", when="@0.23") depends_on("python@3.9:3.11", when="@0.22") @@ -57,6 +60,7 @@ class PyCartopy(PythonPackage): depends_on("python@:3.9", when="@:0.18") with default_args(type="build"): + depends_on("py-setuptools@77.0.3:", when="@0.25:") depends_on("py-setuptools@40.6:", when="@0.19:") depends_on("py-setuptools@0.7.2:") depends_on("py-cython@0.29.24:", when="@0.22:") @@ -65,6 +69,7 @@ class PyCartopy(PythonPackage): depends_on("py-cython@0.28:", when="@0.18:") depends_on("py-cython@0.15.1:", when="@0.17:") depends_on("py-cython") + depends_on("py-setuptools-scm@8:", when="@0.25:") depends_on("py-setuptools-scm@7:", when="@0.20.3:") depends_on("py-setuptools-scm", when="@0.19:") @@ -85,6 +90,7 @@ class PyCartopy(PythonPackage): depends_on("py-matplotlib@3.1:", when="@0.21") # https://github.com/SciTools/cartopy/issues/2086 depends_on("py-matplotlib@3.1:3.5", when="@0.20") + depends_on("py-shapely@2.0:", when="@0.25:") depends_on("py-shapely@1.8:", when="@0.24:") depends_on("py-shapely@1.7:", when="@0.22:") depends_on("py-shapely@1.6.4:", when="@0.21.1:0.21") diff --git a/repos/spack_repo/builtin/packages/py_catalogue/package.py b/repos/spack_repo/builtin/packages/py_catalogue/package.py index 13a5946e49c..c6cc15000e7 100644 --- a/repos/spack_repo/builtin/packages/py_catalogue/package.py +++ b/repos/spack_repo/builtin/packages/py_catalogue/package.py @@ -16,6 +16,7 @@ class PyCatalogue(PythonPackage): license("MIT") + version("2.0.10", sha256="4f56daa940913d3f09d589c191c74e5a6d51762b3a9e37dd53b7437afd6cda15") version("2.0.8", sha256="b325c77659208bfb6af1b0d93b1a1aa4112e1bb29a4c5ced816758a722f0e388") version("2.0.0", sha256="34f8416ec5e7ed08e55c10414416e67c3f4d66edf83bc67320c3290775293816") version("1.0.0", sha256="d74d1d856c6b36a37bf14aa6dbbc27d0582667b7ab979a6108e61a575e8723f5") @@ -26,3 +27,6 @@ class PyCatalogue(PythonPackage): depends_on("py-importlib-metadata@0.20:", when="@:2.0.0^python@:3.7", type=("build", "run")) depends_on("py-zipp@0.5:", when="@2.0.8:^python@:3.7", type=("build", "run")) depends_on("py-typing-extensions@3.6.4:", when="@2.0.8:^python@3.7", type=("build", "run")) + + # AttributeError: 'EntryPoints' object has no attribute 'get' + conflicts("python@3.12:", when="@:2.0.8") diff --git a/repos/spack_repo/builtin/packages/py_cbor2/package.py b/repos/spack_repo/builtin/packages/py_cbor2/package.py new file mode 100644 index 00000000000..b1c37dedc3a --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_cbor2/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 PyCbor2(PythonPackage): + """CBOR (de)serializer with extensive tag support""" + + pypi = "cbor2/cbor2-5.6.5.tar.gz" + + license("MIT") + + version("5.6.5", sha256="b682820677ee1dbba45f7da11898d2720f92e06be36acec290867d5ebf3d7e09") + + # https://github.com/agronholm/cbor2/blob/5.6.5/pyproject.toml + depends_on("py-setuptools@61:", type="build") + depends_on("py-setuptools-scm@6.4:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_cellprofiler/package.py b/repos/spack_repo/builtin/packages/py_cellprofiler/package.py index 446dc125a8a..24a5afd9c4c 100644 --- a/repos/spack_repo/builtin/packages/py_cellprofiler/package.py +++ b/repos/spack_repo/builtin/packages/py_cellprofiler/package.py @@ -143,7 +143,7 @@ def patch(self): # 1412 passed, 16 skipped, 75 deselected def test_cellprofiler_no_gui(self): """Test installed package.""" - pytest = which("pytest") + pytest = which("pytest", required=True) prefix = join_path(python_purelib, self.dir_tests) pytest( "-v", diff --git a/repos/spack_repo/builtin/packages/py_certifi/package.py b/repos/spack_repo/builtin/packages/py_certifi/package.py index 07514af7e7e..636bea59581 100644 --- a/repos/spack_repo/builtin/packages/py_certifi/package.py +++ b/repos/spack_repo/builtin/packages/py_certifi/package.py @@ -17,49 +17,10 @@ class PyCertifi(PythonPackage): license("MPL-2.0") + version("2026.2.25", sha256="e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7") + version("2026.1.4", sha256="ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120") + version("2025.7.14", sha256="8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995") version("2025.4.26", sha256="0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6") - with default_args(deprecated=True): - version( - "2023.7.22", sha256="539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082" - ) - version( - "2023.5.7", sha256="0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7" - ) - version( - "2022.12.7", sha256="35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3" - ) - version( - "2022.9.14", sha256="36973885b9542e6bd01dea287b2b4b3b21236307c56324fcc3f1160f2d655ed5" - ) - version( - "2021.10.8", sha256="78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872" - ) - version( - "2020.6.20", sha256="5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3" - ) - version( - "2020.4.5.1", sha256="51fcb31174be6e6664c5f69e3e1691a2d72a1a12e90f872cbdb1567eb47b6519" - ) - version( - "2019.9.11", sha256="e4f3620cfea4f83eedc95b24abd9cd56f3c4b146dd0177e83a21b4eb49e21e50" - ) - version( - "2019.6.16", sha256="945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695" - ) - version( - "2019.3.9", sha256="b26104d6835d1f5e49452a26eb2ff87fe7090b89dfcaee5ea2212697e1e1d7ae" - ) - version( - "2017.4.17", sha256="f7527ebf7461582ce95f7a9e03dd141ce810d40590834f4ec20cddd54234c10a" - ) - version( - "2017.1.23", sha256="81877fb7ac126e9215dfb15bfef7115fdc30e798e0013065158eed0707fd99ce" - ) - with default_args(type="build"): - depends_on("py-setuptools@42:", when="@2025.4.26:") - depends_on("py-setuptools") - - with default_args(type=("build", "run")): - depends_on("python@3.6:", when="@2022.05.18.1:") + depends_on("py-setuptools@42:") diff --git a/repos/spack_repo/builtin/packages/py_cf_xarray/package.py b/repos/spack_repo/builtin/packages/py_cf_xarray/package.py index 5f7029e7d9b..2842ff54f2b 100644 --- a/repos/spack_repo/builtin/packages/py_cf_xarray/package.py +++ b/repos/spack_repo/builtin/packages/py_cf_xarray/package.py @@ -15,6 +15,12 @@ class PyCfXarray(PythonPackage): license("Apache-2.0") + version("0.10.6", sha256="159236eca465453784ee7efa2a430d5e2092978db8a5d4d8b591f61d0639cb89") + version("0.10.5", sha256="4aa629cd9e8c3e53253270e48a6080e62065b78c4e597f01c80b5f5b372d2331") + version("0.10.4", sha256="047dd732cc7f154c7aa9d5c00b77c64e2c538258f0b6e7565a4b2c7715ee8aba") + version("0.10.3", sha256="009143716ae1f49dc5d37624d7b6e1b0ec424b0a892a84f8f0a85e0970dc3453") + version("0.10.2", sha256="9d2391cb3f4a2572fa42a3ab3cfdb6e6949ac0cd12b9652d607c1054d68a4412") + version("0.10.1", sha256="dd0fc3091feef78f319cea32ec3b78ea5468a7e80e4b96243de8eda24f8b727c") version("0.10.0", sha256="7b45319fc315175854c9e701a84ebb795eb4b2764a2d05bd2d9d3ea87d004d18") version("0.9.0", sha256="01213bdc5ed4d41eeb5da179d99076f49a905b1995daef2a0c7ec402b148675c") @@ -22,4 +28,5 @@ class PyCfXarray(PythonPackage): depends_on("python@3.10:", type=("build", "run"), when="@0.9.5:") depends_on("py-setuptools@45:", type="build") depends_on("py-setuptools-scm@6.2:+toml", type="build") - depends_on("py-xarray@2022.03:", type=("build", "run")) + depends_on("py-xarray@2023.09.0:", type=("build", "run"), when="@0.10.2:") + depends_on("py-xarray@2022.03.0:", type=("build", "run"), when="@0.9:0.10.1") diff --git a/repos/spack_repo/builtin/packages/py_cffi/package.py b/repos/spack_repo/builtin/packages/py_cffi/package.py index 1fdad816bb2..bc6750e456a 100644 --- a/repos/spack_repo/builtin/packages/py_cffi/package.py +++ b/repos/spack_repo/builtin/packages/py_cffi/package.py @@ -15,47 +15,38 @@ class PyCffi(PythonPackage): homepage = "https://cffi.readthedocs.io/en/latest/" pypi = "cffi/cffi-1.13.0.tar.gz" - license("MIT") + license("MIT-0 AND MIT", when="@2:") + license("MIT", when="@:1") + version("2.0.0", sha256="44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529") version("1.17.1", sha256="1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824") version("1.16.0", sha256="bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0") version("1.15.1", sha256="d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9") version("1.15.0", sha256="920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954") version("1.14.6", sha256="c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd") version("1.14.3", sha256="f92f789e4f9241cd262ad7a555ca2c648a98178a953af117ef7fad46aa1d5591") - with default_args(deprecated=True): - version( - "1.13.0", sha256="8fe230f612c18af1df6f348d02d682fe2c28ca0a6c3856c99599cdacae7cf226" - ) - version( - "1.12.2", sha256="e113878a446c6228669144ae8a56e268c91b7f1fafae927adc4879d9849e0ea7" - ) - version( - "1.11.5", sha256="e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4" - ) - version( - "1.10.0", sha256="b3b02911eb1f6ada203b0763ba924234629b51586f72a21faacc638269f4ced5" - ) - version("1.1.2", sha256="390970b602708c91ddc73953bb6929e56291c18a4d80f360afa00fad8b6f3339") depends_on("c", type="build") # Based on PyPI wheel availability with default_args(type=("build", "link", "run")): + depends_on("python@3.9:", when="@2:") depends_on("python@3.8:", when="@1.16:") - depends_on("python@:3.13") + depends_on("python@:3.14") + depends_on("python@:3.13", when="@:1") depends_on("python@:3.12", when="@:1.16") depends_on("python@:3.11", when="@:1.15") depends_on("python@:3.10", when="@:1.15.0") depends_on("python@:3.9", when="@:1.14") - depends_on("python@:3.8", when="@:1.14.2") - depends_on("python@:3.7", when="@:1.12") depends_on("pkgconfig", type="build") + # Not yet documented, but required for PEP 639 support + # https://github.com/python-cffi/cffi/issues/200 + depends_on("py-setuptools@77:", type="build", when="@2:") + depends_on("py-setuptools@66.1:", type="build", when="@1.16:") depends_on("py-setuptools", type="build") depends_on("py-setuptools", type="run", when="^python@3.12:") - depends_on("py-setuptools@66.1:", type="build", when="@1.16:") depends_on("py-pycparser", type=("build", "run")) depends_on("libffi") diff --git a/repos/spack_repo/builtin/packages/py_cfgv/package.py b/repos/spack_repo/builtin/packages/py_cfgv/package.py index e95c598b4f7..5cd43c5a3d5 100644 --- a/repos/spack_repo/builtin/packages/py_cfgv/package.py +++ b/repos/spack_repo/builtin/packages/py_cfgv/package.py @@ -15,10 +15,12 @@ class PyCfgv(PythonPackage): license("MIT") + version("3.5.0", sha256="d5b1034354820651caa73ede66a6294d6e95c1b00acc5e9b098e917404669132") version("3.4.0", sha256="e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560") version("3.3.1", sha256="f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736") version("2.0.1", sha256="edb387943b665bf9c434f717bf630fa78aecd53d5900d2e05da6ad6048553144") + depends_on("python@3.10:", when="@3.5:", type=("build", "run")) depends_on("python@3.8:", when="@3.4:", type=("build", "run")) depends_on("python@3.6.1:", when="@3.1:", type=("build", "run")) depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_chai_lab/package.py b/repos/spack_repo/builtin/packages/py_chai_lab/package.py new file mode 100644 index 00000000000..cca39935fc2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_chai_lab/package.py @@ -0,0 +1,48 @@ +# 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 PyChaiLab(PythonPackage): + """Chai Discovery tools for AI + protein research.""" + + homepage = "https://www.chaidiscovery.com/" + git = "https://github.com/chaidiscovery/chai-lab.git" + pypi = "chai_lab/chai_lab-0.6.1.tar.gz" + + maintainers("LydDeb") + + license("Apache-2.0", checked_by="LydDeb") + + version("0.6.1", sha256="a4ef9737bbb9abfa1dbbd5e059b899fb3b48d6b916f4bf104f5325e1f224e238") + + # pyproject.toml + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-hatchling@1.20:", type="build") + depends_on("py-hatch-requirements-txt", type="build") + # requirements.in + # The dependence named "typer-slime" appears in the requirement.in file, but the PyPI page + # for this package specifies not to install it. + # Indeed, it does nothing more than depend on "typer". + depends_on("py-typer@0.12", type=("build", "run")) + depends_on("py-matplotlib", type=("build", "run")) + depends_on("py-tqdm@4.66:4", type=("build", "run")) + depends_on("py-typing-extensions", type=("build", "run")) + depends_on("py-gemmi@0.6.3:0.6", type=("build", "run")) + depends_on("rdkit@2024_9_5:2024_9+python", type=("build", "run")) + depends_on("py-biopython@1.83:", type=("build", "run")) + depends_on("py-antipickle@0.2.0", type=("build", "run")) + depends_on("py-tmtools@0.0.3:", type=("build", "run")) + depends_on("py-modelcif@1.0:", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-pandas+parquet", type=("build", "run")) + depends_on("py-pandera", type=("build", "run")) + depends_on("py-numba@0.59:", type=("build", "run")) + depends_on("py-einops@0.8", type=("build", "run")) + depends_on("py-jaxtyping@0.2.25:", type=("build", "run")) + depends_on("py-beartype@0.18:", type=("build", "run")) + depends_on("py-torch@:2.6,2.3.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_chainer/package.py b/repos/spack_repo/builtin/packages/py_chainer/package.py index 51517be7b09..b8f426383ab 100644 --- a/repos/spack_repo/builtin/packages/py_chainer/package.py +++ b/repos/spack_repo/builtin/packages/py_chainer/package.py @@ -61,7 +61,7 @@ def test_chainermn(self): raise SkipTest("Test only supported when built with +mn") mnist_file = join_path(install_test_root(self).examples.chainermn.mnist, "train_mnist.py") - mpirun = which(self.spec["mpi"].prefix.bin.mpirun) + mpirun = which(self.spec["mpi"].prefix.bin.mpirun, required=True) opts = ["-n", "4", python.path, mnist_file, "-o", "."] env["OMP_NUM_THREADS"] = "4" diff --git a/repos/spack_repo/builtin/packages/py_chardet/package.py b/repos/spack_repo/builtin/packages/py_chardet/package.py index a991e2cc415..650c52369ee 100644 --- a/repos/spack_repo/builtin/packages/py_chardet/package.py +++ b/repos/spack_repo/builtin/packages/py_chardet/package.py @@ -13,8 +13,15 @@ class PyChardet(PythonPackage): homepage = "https://github.com/chardet/chardet" pypi = "chardet/chardet-3.0.4.tar.gz" - license("LGPL-2.1-or-later") - + license("0BSD", when="@7.3:") + license("MIT", when="@7.0:7.2") + license("LGPL-2.1-or-later", when="@:6") + + version("7.4.1", sha256="cda41132a45dfbf6984dade1f531a4098c813caf266c66cc446d90bb9369cabd") + version("7.3.0", sha256="e6bf602bb8a070524a19bac1cff2a10d62c71b09606f066251282870fa1466e5") + version("7.0.1", sha256="6fce895c12c5495bb598e59ae3cd89306969b4464ec7b6dd609b9c86e3397fe3") + version("7.0.0", sha256="5272ea14c48cb5f38e87e698c641a7ea2a8b1db6c42ea729527fbe8bd621f39c") + version("6.0.0", sha256="aaa00ede13dd39a582de2b1254221a1f3e1c77e7738036431b6cb7e6a05b4f19") version("5.2.0", sha256="1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7") version("5.1.0", sha256="0d62712b956bc154f85fb0a266e2a3c5913c2967e00348701b32411d6def31e5") version("5.0.0", sha256="0368df2bfd78b5fc20572bb4e9bb7fb53e2c094f60ae9993339e8671d0afb8aa") @@ -23,7 +30,12 @@ class PyChardet(PythonPackage): version("3.0.2", sha256="4f7832e7c583348a9eddd927ee8514b3bf717c061f57b21dbe7697211454d9bb") version("2.3.0", sha256="e53e38b3a4afe6d1132de62b7400a4ac363452dc5dfcf8d88e8e0cce663c68aa") - depends_on("py-setuptools", type="build") + depends_on("python@3.10:", type=("build", "run"), when="@6:") + + with default_args(type="build"): + depends_on("py-hatch-vcs", when="@6:") + depends_on("py-hatchling", when="@6:") - # Historical dependencies - depends_on("py-pytest-runner", when="@3", type="build") + # Historical dependencies + depends_on("py-pytest-runner", when="@3") + depends_on("py-setuptools", when="@:5") diff --git a/repos/spack_repo/builtin/packages/py_charm4py/package.py b/repos/spack_repo/builtin/packages/py_charm4py/package.py index 2ea3207e730..a849b99e5d2 100644 --- a/repos/spack_repo/builtin/packages/py_charm4py/package.py +++ b/repos/spack_repo/builtin/packages/py_charm4py/package.py @@ -29,7 +29,7 @@ class PyCharm4py(PythonPackage): variant( "mpi", default=True, - description="build Charm++ library with the MPI instead of TCP" " communication layer", + description="build Charm++ library with the MPI instead of TCP communication layer", ) # Builds its own charm++, so no charmpp dependency diff --git a/repos/spack_repo/builtin/packages/py_charset_normalizer/package.py b/repos/spack_repo/builtin/packages/py_charset_normalizer/package.py index b36d147888a..13457156200 100644 --- a/repos/spack_repo/builtin/packages/py_charset_normalizer/package.py +++ b/repos/spack_repo/builtin/packages/py_charset_normalizer/package.py @@ -16,6 +16,7 @@ class PyCharsetNormalizer(PythonPackage): license("MIT") + version("3.4.4", sha256="94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a") version("3.4.2", sha256="5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63") version("3.3.0", sha256="63563193aec44bce707e0c5ca64ff69fa72ed7cf34ce6e11d5127555756fd2f6") version("3.1.0", sha256="34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5") @@ -24,12 +25,18 @@ class PyCharsetNormalizer(PythonPackage): version("2.0.7", sha256="e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0") with default_args(type="build"): + depends_on("py-setuptools@68:81", when="@3.4.4:") depends_on("py-setuptools") - depends_on("py-setuptools-scm", when="@3.4.2:") - depends_on("py-mypy@1.4.1:1.15.0", when="@3.4.2:") + # Historical dependencies + depends_on("py-setuptools-scm", when="@3.4.1:3.4.3") + depends_on("py-mypy@1.4.1:1.15.0", when="@3.4.2") + depends_on("py-mypy@1.4.1:1.14.0", when="@3.4.1") + + # Based on PyPI wheel availability with default_args(type=("build", "run")): - depends_on("python@3.7:3.13", when="@3.4:") + depends_on("python@3.8:3.14", when="@3.4.3:") + depends_on("python@3.7:3.13", when="@3.4.0:3.4.2") depends_on("python@3.7:3.12", when="@3.2:3.3") depends_on("python@3.7:3.11", when="@3.1") depends_on("python@3.6:3.11", when="@2.1:3.0") diff --git a/repos/spack_repo/builtin/packages/py_chemiscope/package.py b/repos/spack_repo/builtin/packages/py_chemiscope/package.py new file mode 100644 index 00000000000..28b067cd4fc --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_chemiscope/package.py @@ -0,0 +1,31 @@ +# 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 PyChemiscope(PythonPackage): + """An interactive structure/property explorer for materials and molecules""" + + homepage = "https://chemiscope.org" + pypi = "chemiscope/chemiscope-0.8.6.tar.gz" + + maintainers("Luthaf", "RMeli") + + license("BSD-3-Clause", checked_by="RMeli") + + version("0.8.6", sha256="d5e9a95f3b6106a281c0c7bfad837aac504052b841b36dee690187cd3545140d") + + # pyproject.toml requires-python + depends_on("python@3.10:", type=("build", "run")) + + # pyproject.toml [build-system] + depends_on("py-setuptools", type="build") + depends_on("py-jupyterlab@4:", type="build") + + # pyproject.toml dependencies + depends_on("py-numpy", type=("build", "run")) + depends_on("py-ipywidgets@7:8", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_choreographer/package.py b/repos/spack_repo/builtin/packages/py_choreographer/package.py new file mode 100644 index 00000000000..dbcfb8b9331 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_choreographer/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 PyChoreographer(PythonPackage): + """Devtools Protocol implementation for chrome.""" + + homepage = "https://github.com/plotly/choreographer" + pypi = "choreographer/choreographer-1.0.10.tar.gz" + + license("MIT") + + version("1.0.10", sha256="7adf84a0d6a6054386d5cce013fdcadb2426479e49c9b0cb06af7d3712ed263c") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@65:", type="build") + depends_on("py-setuptools-git-versioning", type="build") + + depends_on("py-logistro@1.0.11:", type=("build", "run")) + depends_on("py-simplejson@3.19.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_ci_sdr/package.py b/repos/spack_repo/builtin/packages/py_ci_sdr/package.py index 7da89d25f40..2ca859d47dc 100644 --- a/repos/spack_repo/builtin/packages/py_ci_sdr/package.py +++ b/repos/spack_repo/builtin/packages/py_ci_sdr/package.py @@ -18,6 +18,7 @@ class PyCiSdr(PythonPackage): license("MIT") + version("0.0.2", sha256="3f9d4c205b9b7c5c3239a90400b81f1f26ecb38484a46150d2677ff646a13465") version("0.0.0", sha256="a1387f39ccd55cce034e2c01000a0a337b3729d8a5010b42c5381d8c820fa4bb") depends_on("python@3.6:3", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_cinemasci/package.py b/repos/spack_repo/builtin/packages/py_cinemasci/package.py index 9b637d61dd1..983c57e1c0c 100644 --- a/repos/spack_repo/builtin/packages/py_cinemasci/package.py +++ b/repos/spack_repo/builtin/packages/py_cinemasci/package.py @@ -18,6 +18,7 @@ class PyCinemasci(PythonPackage): maintainers("EthanS94") + version("1.7.9", sha256="ceab37e9d9f5c9b9bd94c12200ae05fb5a866c6f6a4ecae51db1858971998bfb") version("1.7.0", sha256="70e1fa494bcbefdbd9e8859cdf1b01163a94ecffcdfa3da1011e4ef2fcee6169") version("1.3", sha256="c024ca9791de9d78e5dad3fd11e8f87d8bc1afa5830f2697d7ec4116a5d23c20") diff --git a/repos/spack_repo/builtin/packages/py_clarabel/package.py b/repos/spack_repo/builtin/packages/py_clarabel/package.py new file mode 100644 index 00000000000..f3e1b474489 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_clarabel/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyClarabel(PythonPackage): + """Clarabel Conic Interior Point Solver for Rust / Python""" + + homepage = "https://clarabel.org" + pypi = "clarabel/clarabel-0.11.1.tar.gz" + + maintainers("LydDeb") + + license("Apache-2.0", checked_by="LydDeb") + + version("0.11.1", sha256="e7c41c47f0e59aeab99aefff9e58af4a8753ee5269bbeecbd5526fc6f41b9598") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-maturin@1", type="build") + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + depends_on("py-cffi", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_cleo/package.py b/repos/spack_repo/builtin/packages/py_cleo/package.py index 1dfc68e16d6..e7f97eb9d99 100644 --- a/repos/spack_repo/builtin/packages/py_cleo/package.py +++ b/repos/spack_repo/builtin/packages/py_cleo/package.py @@ -17,15 +17,16 @@ class PyCleo(PythonPackage): license("MIT") + # 2.2, 2.2.1 yanked on PyPi for unintentional API breakage + version( + "2.2.1", + sha256="d9db0fa3a194efb9caadfe1e718bf48cc48f08b7b1ee8381526ecc67c58856c4", + deprecated=True, + ) version("2.1.0", sha256="0b2c880b5d13660a7ea651001fb4acb527696c01f15c9ee650f377aa543fd523") version("2.0.1", sha256="eb4b2e1f3063c11085cebe489a6e9124163c226575a3c3be69b2e51af4a15ec5") version("2.0.0", sha256="fbc5cb141cbc31ea8ffd3d5cd67d3b183fa38aa5098fd37e39e9a953a232fda9") version("1.0.0", sha256="bb5e4f70db83a597575ec86a1ed8fc56bd80934cfea3db97a23ea50c03b78382") - version( - "1.0.0a5", - sha256="097c9d0e0332fd53cc89fc11eb0a6ba0309e6a3933c08f7b38558555486925d3", - deprecated=True, - ) version("0.8.1", sha256="3d0e22d30117851b45970b6c14aca4ab0b18b1b53c8af57bed13208147e4069f") depends_on("python@2.7,3.4:3", type=("build", "run")) @@ -33,8 +34,9 @@ class PyCleo(PythonPackage): depends_on("py-poetry-core@1:", type="build") depends_on("py-poetry-core@1.1:1", when="@1:2.0.0", type="build") depends_on("py-poetry-core@1.1.0:", when="@2.0.1:", type="build") + depends_on("py-clikit@0.6", when="@0.8.1", type=("build", "run")) depends_on("py-pylev@1.3:1", when="@1.0.0a5", type=("build", "run")) - depends_on("py-crashtest@0.4.1:0.4", when="@1:", type=("build", "run")) + depends_on("py-crashtest@0.4.1:0.4", when="@1:2.1", type=("build", "run")) depends_on("py-rapidfuzz@2.2:2", when="@1:2.0", type=("build", "run")) - depends_on("py-rapidfuzz@3", when="@2.1:", type=("build", "run")) + depends_on("py-rapidfuzz@3", when="@2.1", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_click/package.py b/repos/spack_repo/builtin/packages/py_click/package.py index 1ba85747ce2..0bef31d2751 100644 --- a/repos/spack_repo/builtin/packages/py_click/package.py +++ b/repos/spack_repo/builtin/packages/py_click/package.py @@ -16,6 +16,8 @@ class PyClick(PythonPackage): license("BSD-3-Clause") + version("8.3.1", sha256="12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a") + version("8.2.1", sha256="27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202") version("8.1.8", sha256="ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a") version("8.1.7", sha256="ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de") version("8.1.3", sha256="7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e") @@ -29,6 +31,7 @@ class PyClick(PythonPackage): ) version("6.6", sha256="cc6a19da8ebff6e7074f731447ef7e112bd23adf3de5c597cf9989f2fd8defe9") + depends_on("python@3.10:", when="@8.2:", type=("build", "run")) # Needed to ensure that Spack can bootstrap black with Python 3.6 depends_on("python@3.7:", when="@8.1:", type=("build", "run")) with when("@8.1.8:"): diff --git a/repos/spack_repo/builtin/packages/py_cloudpathlib/package.py b/repos/spack_repo/builtin/packages/py_cloudpathlib/package.py new file mode 100644 index 00000000000..e82a63c0b21 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_cloudpathlib/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyCloudpathlib(PythonPackage): + """pathlib-style classes for cloud storage services.""" + + homepage = "https://github.com/drivendataorg/cloudpathlib" + pypi = "cloudpathlib/cloudpathlib-0.23.0.tar.gz" + + license("MIT") + + version("0.23.0", sha256="eb38a34c6b8a048ecfd2b2f60917f7cbad4a105b7c979196450c2f541f4d6b4b") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-flit-core@3.2:3", type="build") + depends_on("py-typing-extensions@4:", type=("build", "run"), when="^python@:3.10") diff --git a/repos/spack_repo/builtin/packages/py_cloudpickle/package.py b/repos/spack_repo/builtin/packages/py_cloudpickle/package.py index ed130ab6cae..b29c7e92d54 100644 --- a/repos/spack_repo/builtin/packages/py_cloudpickle/package.py +++ b/repos/spack_repo/builtin/packages/py_cloudpickle/package.py @@ -15,6 +15,7 @@ class PyCloudpickle(PythonPackage): license("BSD-3-Clause") + version("3.1.2", sha256="7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414") version("3.0.0", sha256="996d9a482c6fb4f33c1a35335cf8afd065d2a56e973270364840712d9131a882") version("2.2.1", sha256="d89684b8de9e34a2a43b3460fbca07d09d6e25ce858df4d5a44240403b6178f5") version("2.2.0", sha256="3f4219469c55453cfe4737e564b67c2a149109dabf7f242478948b895f61106f") @@ -26,5 +27,6 @@ class PyCloudpickle(PythonPackage): depends_on("python@3.5:", type=("build", "run"), when="@1.6.0:") depends_on("python@3.6:", type=("build", "run"), when="@2.2.0:") depends_on("python@3.8:", type=("build", "run"), when="@3:") + depends_on("python@:3.13", type=("build", "run"), when="@:3.0") depends_on("py-setuptools", type="build", when="@:2") depends_on("py-flit-core", type="build", when="@3:") diff --git a/repos/spack_repo/builtin/packages/py_clustershell/package.py b/repos/spack_repo/builtin/packages/py_clustershell/package.py index fc92d305bb8..fefe938d31e 100644 --- a/repos/spack_repo/builtin/packages/py_clustershell/package.py +++ b/repos/spack_repo/builtin/packages/py_clustershell/package.py @@ -17,6 +17,7 @@ class PyClustershell(PythonPackage): license("LGPL-2.1-or-later") + version("1.9.3", sha256="94c97e8de4d701ceb953772a4cfd88b60323dd5b50bfd9ad765e92fe543303f3") version("1.8.4", sha256="763793f729bd1c275361717c540e01ad5fe536119eca92f14077c0995739b9d7") version("1.8.3", sha256="86b0d524e5e50c0a15faec01d8642f0ff12ba78d50b7e7b660261be5d53fed9c") version("1.8.2", sha256="abf5ed23b6adfc802ee65aa0208c697f617e5fb8fd0d8cb0100ee337e2721796") diff --git a/repos/spack_repo/builtin/packages/py_coapthon3/package.py b/repos/spack_repo/builtin/packages/py_coapthon3/package.py index 7546468c600..4ff518a5c57 100644 --- a/repos/spack_repo/builtin/packages/py_coapthon3/package.py +++ b/repos/spack_repo/builtin/packages/py_coapthon3/package.py @@ -17,6 +17,7 @@ class PyCoapthon3(PythonPackage): license("MIT") + version("1.0.2", sha256="07a2c8699eeda2fa819cde30b40a408e7ee6e803f7746bb8702bf52143fb3481") version("1.0.1", sha256="331150a581708d47b208cee3b067ced80a00f0cc1278e913ec546e6c6b28bffd") version("1.0", sha256="63eb083269c2a286aedd206d3df17ab67fa978dc43caf34eaab9498da15c497a") diff --git a/repos/spack_repo/builtin/packages/py_codecarbon/package.py b/repos/spack_repo/builtin/packages/py_codecarbon/package.py new file mode 100644 index 00000000000..56c039201c9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_codecarbon/package.py @@ -0,0 +1,38 @@ +# 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 PyCodecarbon(PythonPackage): + """Track emissions from Compute and recommend ways to reduce their + impact on the environment.""" + + homepage = "https://mlco2.github.io/codecarbon/" + pypi = "codecarbon/codecarbon-3.2.1.tar.gz" + + version("3.2.2", sha256="a848c3960d48312fb527c9565c7dc6264035dc104eb40007564ef0ed4479bb22") + version("3.2.1", sha256="04571e4d4758936587b7145de557f4aa0f53c83c771318f9a12d67ff039fc95c") + + depends_on("python@3.7:", type=("build", "run")) + # PEP639 requires setuptools>77, to be upstreamed in codecarbon + depends_on("py-setuptools@77:", type="build") + + depends_on("py-pyarrow", type=("build", "run")) + depends_on("py-click", type=("build", "run")) + depends_on("py-fief-client +cli", type=("build", "run")) + depends_on("py-pandas", type=("build", "run")) + depends_on("py-pandas@2.3.3:", when="^python@3.14:", type=("build", "run")) + depends_on("py-prometheus-client", type=("build", "run")) + depends_on("py-psutil@6:", type=("build", "run")) + depends_on("py-py-cpuinfo", type=("build", "run")) + depends_on("py-pydantic", type=("build", "run")) + depends_on("py-nvidia-ml-py", type=("build", "run")) + depends_on("py-rapidfuzz", type=("build", "run")) + depends_on("py-requests", type=("build", "run")) + depends_on("py-questionary", type=("build", "run")) + depends_on("py-rich", type=("build", "run")) + depends_on("py-typer", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_codechecker/package.py b/repos/spack_repo/builtin/packages/py_codechecker/package.py new file mode 100644 index 00000000000..2fbdd1f1f33 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_codechecker/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 PyCodechecker(PythonPackage): + """CodeChecker is a static analysis infrastructure built on the LLVM/Clang + Static Analyzer toolchain, replacing scan-build in a Linux or macOS (OS X) + development environment.""" + + homepage = "https://github.com/Ericsson/codechecker" + pypi = "codechecker/codechecker-6.26.2.tar.gz" + + license("Apache-2.0") + + version("6.26.2", sha256="6e73eb32e7c61dd1a13ec566b80dec8a7625e211fdd419f1b652da6aaa290249") + + depends_on("cxx") + depends_on("c") + depends_on("python@3.9:", type=("build", "run")) + + depends_on("py-setuptools@70.2.0:", type="build") + + depends_on("llvm +clang", type=("build", "run")) + depends_on("gcc@13:", type=("build", "run")) + depends_on("cppcheck@1.80:", type=("build", "run")) + + # https://github.com/Ericsson/codechecker/blob/v6.26.2/analyzer/requirements.txt + depends_on("py-lxml@5.3.0:", type=("build", "run")) + depends_on("py-portalocker@3.1.1:", type=("build", "run")) + depends_on("py-psutil@5.9.8:", type=("build", "run")) + depends_on("py-pyyaml@6.0.1:", type=("build", "run")) + depends_on("py-sarif-tools@3.0.4:", type=("build", "run")) + depends_on("py-multiprocess@0.70.15:", type=("build", "run")) + depends_on("py-types-pyyaml@6.0.12.12:", type=("build", "run")) + + # https://github.com/Ericsson/codechecker/blob/v6.26.2/web/requirements.txt + # some are duplicates of those above + depends_on("py-authlib@1.3.1:", type=("build", "run")) + depends_on("py-requests@2.32.4:", type=("build", "run")) + depends_on("py-sqlalchemy@1.4.54:1", type=("build", "run")) + depends_on("py-alembic@1.5.5:", type=("build", "run")) + depends_on("thrift +python", type=("build", "run")) + # https://github.com/Ericsson/codechecker/issues/4437 + depends_on("thrift@0.22: +python", type=("build", "run"), when="^python@3.12:") + depends_on("py-gitpython@3.1.41:", type=("build", "run")) + + depends_on("node-js@16:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_codespell/package.py b/repos/spack_repo/builtin/packages/py_codespell/package.py index c3999711713..8ccb99546bc 100644 --- a/repos/spack_repo/builtin/packages/py_codespell/package.py +++ b/repos/spack_repo/builtin/packages/py_codespell/package.py @@ -16,6 +16,7 @@ class PyCodespell(PythonPackage): license("GPL-2.0", checked_by="cmelone") + version("2.4.1", sha256="299fcdcb09d23e81e35a671bbe746d5ad7e8385972e65dbb833a2eaac33c01e5") version("2.3.0", sha256="360c7d10f75e65f67bad720af7007e1060a5d395670ec11a7ed1fed9dd17471f") version("2.2.6", sha256="a8c65d8eb3faa03deabab6b3bbe798bea72e1799c7e9e955d57eca4096abcff9") diff --git a/repos/spack_repo/builtin/packages/py_coherent_licensed/package.py b/repos/spack_repo/builtin/packages/py_coherent_licensed/package.py new file mode 100644 index 00000000000..543307216cb --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_coherent_licensed/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 PyCoherentLicensed(PythonPackage): + """License management tooling for Coherent System and skeleton projects.""" + + homepage = "https://github.com/coherent-oss/coherent.licensed" + pypi = "coherent_licensed/coherent_licensed-0.5.2.tar.gz" + + license("MIT") + + version("0.5.2", sha256="d8071403ce742d3ac3592ddc4fb7057a46caffb415b928b4d52802e5f208416d") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-flit-core@3.11:3", type="build") diff --git a/repos/spack_repo/builtin/packages/py_colorcet/package.py b/repos/spack_repo/builtin/packages/py_colorcet/package.py index cb61cc65ae5..50a71c828c8 100644 --- a/repos/spack_repo/builtin/packages/py_colorcet/package.py +++ b/repos/spack_repo/builtin/packages/py_colorcet/package.py @@ -17,9 +17,12 @@ class PyColorcet(PythonPackage): maintainers("vvolkl") + version("3.1.0", sha256="2921b3cd81a2288aaf2d63dbc0ce3c26dcd882e8c389cc505d6886bf7aa9a4eb") version("3.0.0", sha256="21c522346a7aa81a603729f2996c22ac3f7822f4c8c303c59761e27d2dfcf3db") depends_on("python@2.7:", type=("build", "run")) depends_on("py-setuptools@30.3.0:", type="build") - depends_on("py-param@1.7.0:", type=("build", "run")) - depends_on("py-pyct@0.4.4:", type=("build", "run")) + depends_on("py-setuptools-scm@6:", type="build", when="@3.1:") + + depends_on("py-param@1.7.0:", type=("build", "run"), when="@3.0.0") + depends_on("py-pyct@0.4.4:", type=("build", "run"), when="@3.0.0") diff --git a/repos/spack_repo/builtin/packages/py_colored/package.py b/repos/spack_repo/builtin/packages/py_colored/package.py index cac4d240cbd..6198f3426d7 100644 --- a/repos/spack_repo/builtin/packages/py_colored/package.py +++ b/repos/spack_repo/builtin/packages/py_colored/package.py @@ -18,6 +18,7 @@ class PyColored(PythonPackage): homepage = "https://gitlab.com/dslackw/colored" pypi = "colored/colored-1.4.2.tar.gz" + version("2.3.1", sha256="fe6e888e12dc16643daa0b108f785df6d0b48420084b5d0a567de27bb09a14d8") version("2.2.4", sha256="595e1dd7f3b472ea5f12af21d2fec8a2ea2cf8f9d93e67180197330b26df9b61") version("1.4.2", sha256="056fac09d9e39b34296e7618897ed1b8c274f98423770c2980d829fd670955ed") diff --git a/repos/spack_repo/builtin/packages/py_comm/package.py b/repos/spack_repo/builtin/packages/py_comm/package.py index c14cd75cb0c..b525ad68376 100644 --- a/repos/spack_repo/builtin/packages/py_comm/package.py +++ b/repos/spack_repo/builtin/packages/py_comm/package.py @@ -15,6 +15,7 @@ class PyComm(PythonPackage): license("BSD-3-Clause") + version("0.2.2", sha256="3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e") version("0.1.4", sha256="354e40a59c9dd6db50c5cc6b4acc887d82e9603787f83b68c01a80a923984d15") version("0.1.3", sha256="a61efa9daffcfbe66fd643ba966f846a624e4e6d6767eda9cf6e993aadaab93e") diff --git a/repos/spack_repo/builtin/packages/py_confection/package.py b/repos/spack_repo/builtin/packages/py_confection/package.py index c2332074720..26375ea0671 100644 --- a/repos/spack_repo/builtin/packages/py_confection/package.py +++ b/repos/spack_repo/builtin/packages/py_confection/package.py @@ -15,10 +15,13 @@ class PyConfection(PythonPackage): license("MIT") + version("0.1.5", sha256="8e72dd3ca6bd4f48913cd220f10b8275978e740411654b6e8ca6d7008c590f0e") version("0.0.4", sha256="b1ddf5885da635f0e260a40b339730806dfb1bd17d30e08764f35af841b04ecf") depends_on("python@3.6:", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-pydantic@1.7.4:1.7,1.9:1.10", type=("build", "run")) - depends_on("py-typing-extensions@3.7.4.1:4.4", type=("build", "run"), when="^python@3.7") + depends_on("py-pydantic@1.7.4:1.7,1.9:1.10", type=("build", "run"), when="@0.0.4") + depends_on("py-pydantic@1.7.4:1.7,1.9:2", type=("build", "run"), when="@0.1.5:") + depends_on("py-typing-extensions@3.7.4.1:4.4", type=("build", "run"), when="@0.0.4^python@3.7") + depends_on("py-typing-extensions@3.7.4.1:4", type=("build", "run"), when="@0.1.5:^python@3.7") depends_on("py-srsly@2.4:2", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_configargparse/package.py b/repos/spack_repo/builtin/packages/py_configargparse/package.py index 1d5b94665f0..40526f2b533 100644 --- a/repos/spack_repo/builtin/packages/py_configargparse/package.py +++ b/repos/spack_repo/builtin/packages/py_configargparse/package.py @@ -19,11 +19,11 @@ class PyConfigargparse(PythonPackage): features.""" homepage = "https://github.com/bw2/ConfigArgParse" - url = "https://github.com/bw2/ConfigArgParse/archive/1.7.tar.gz" + url = "https://github.com/bw2/ConfigArgParse/archive/1.7.1.tar.gz" license("MIT") - version("1.7", sha256="4549d105790386d01f71beebc3aa457d4177315680b75415f05bc22e1e28183a") + version("1.7.1", sha256="b31bfcce183ef7226f00cd07a37cfd69fe654229fe462f9a1de6091f396fc0f9") version("1.5.7", sha256="2156f15ef4ccce4377427046789ce93e0b09ac425c7297f1c9572655bf11bdfe") version("1.5.5", sha256="5b8316f11985aa169e51126086d3d6d24d7ba976585266311491015ddffbd717") version("1.2.3", sha256="0f1144a204e3b896d6ac900e151c1d13bde3103d6b7d541e3bb57514a94083bf") diff --git a/repos/spack_repo/builtin/packages/py_contourpy/package.py b/repos/spack_repo/builtin/packages/py_contourpy/package.py index 0c3b2097eab..9fba63e6c86 100644 --- a/repos/spack_repo/builtin/packages/py_contourpy/package.py +++ b/repos/spack_repo/builtin/packages/py_contourpy/package.py @@ -15,6 +15,7 @@ class PyContourpy(PythonPackage): license("BSD-3-Clause") + version("1.3.3", sha256="083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880") version("1.3.0", sha256="7ffa0db17717a8ffb127efd0c95a4362d996b892c2904db72428d5b52e1938a4") version("1.0.7", sha256="d8165a088d31798b59e91117d1f5fc3df8168d8b48c4acc10fc0df0d0bdbcc5e") version("1.0.5", sha256="896631cd40222aef3697e4e51177d14c3709fda49d30983269d584f034acc8a4") @@ -23,22 +24,27 @@ class PyContourpy(PythonPackage): depends_on("cxx", type="build") with default_args(type="build"): - depends_on("meson@1.2:") - depends_on("py-meson-python@0.13.1:") + depends_on("meson@1.2:", when="@1.1.1:") + depends_on("py-meson-python@0.13.1:", when="@1.1:") with default_args(type=("build", "link")): + depends_on("py-pybind11@2.13.2:", when="@1.3.1:") depends_on("py-pybind11@2.13.1:", when="@1.3:") depends_on("py-pybind11@2.6:") # Historical dependencies depends_on("py-setuptools@42:", when="@:1.0") + # not in original requirements, but pyproject.toml [project] requires py-setuptools@61: + depends_on("py-setuptools@61:", when="@1.0.7:1.0") depends_on("py-build", when="@:1.0.5") with default_args(type=("build", "link", "run")): + depends_on("python@3.11:", when="@1.3.3:") depends_on("python@3.9:", when="@1.3:") depends_on("python@3.8:", when="@1.0.7:") depends_on("python@3.7:") with default_args(type=("build", "run")): + depends_on("py-numpy@1.25:", when="@1.3.3:") depends_on("py-numpy@1.23:", when="@1.3:") depends_on("py-numpy@1.16:") diff --git a/repos/spack_repo/builtin/packages/py_cookiecutter/package.py b/repos/spack_repo/builtin/packages/py_cookiecutter/package.py index 5a170e5405b..d8e86fc70f9 100644 --- a/repos/spack_repo/builtin/packages/py_cookiecutter/package.py +++ b/repos/spack_repo/builtin/packages/py_cookiecutter/package.py @@ -18,31 +18,14 @@ class PyCookiecutter(PythonPackage): license("BSD-3-Clause") version("2.6.0", sha256="da014a94d85c1b1be14be214662982c8c90d860834cbf9ddb2391a37ad7d08be") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2022-24065 - version("1.7.3", sha256="5c16f9e33875f49bb091ef836b71ced63372aadc49799d78315db1d91d17d76d") - version("1.6.0", sha256="0c9018699b556b83d7c37b27fe0cc17485b90b6e1f47365b3cdddf77f6ca9d36") depends_on("py-setuptools", type="build") - depends_on("py-binaryornot@0.2.0:", type=("build", "run")) depends_on("py-binaryornot@0.4.4:", type=("build", "run"), when="@1.7.1:") depends_on("py-jinja2@2.7:3", type=("build", "run")) - depends_on("py-click@5.0:", type=("build", "run")) depends_on("py-click@7.0:", type=("build", "run"), when="@1.7:") - depends_on("py-click@:7", type=("build", "run"), when="@:2.0") depends_on("py-click@:8", type=("build", "run"), when="@2.1:") depends_on("py-pyyaml@5.3.1:", type=("build", "run"), when="@2:") depends_on("py-python-slugify@4:", type=("build", "run"), when="@1.7.1:") - depends_on("py-requests@2.18.0:", type=("build", "run")) depends_on("py-requests@2.23.0:", type=("build", "run"), when="@1.7.1:") depends_on("py-arrow", type=("build", "run"), when="@2.2:") depends_on("py-rich", type=("build", "run"), when="@2.3:") - - # Historical dependencies - depends_on("py-future@0.15.2:", type=("build", "run"), when="@:1.7.0") - depends_on("py-whichcraft@0.4.0:", type=("build", "run"), when="@:1") - depends_on("py-poyo@0.1.0:", type=("build", "run"), when="@:1") - depends_on("py-poyo@0.5.0:", type=("build", "run"), when="@1.7.1:1") - depends_on("py-jinja2-time@0.1.0:", type=("build", "run"), when="@:2.1") - depends_on("py-jinja2-time@0.2.0:", type=("build", "run"), when="@1.7.1:2.1") - depends_on("py-six@1.10:", type=("build", "run"), when="@1.7.2:1") 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_courlan/package.py b/repos/spack_repo/builtin/packages/py_courlan/package.py new file mode 100644 index 00000000000..dc40efb3d6f --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_courlan/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 PyCourlan(PythonPackage): + """Clean, filter and sample URLs to optimize data collection: + deduplication, spam, content and language filters.""" + + homepage = "https://github.com/adbar/courlan" + pypi = "courlan/courlan-1.3.2.tar.gz" + + version("1.3.2", sha256="0b66f4db3a9c39a6e22dd247c72cfaa57d68ea660e94bb2c84ec7db8712af190") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@61:", type="build") + depends_on("py-babel@2.16:", type=("build", "run")) + depends_on("py-tld@0.13:", type=("build", "run")) + depends_on("py-urllib3@1.26:2", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_coverage/package.py b/repos/spack_repo/builtin/packages/py_coverage/package.py index 31a0830287b..2438e269dba 100644 --- a/repos/spack_repo/builtin/packages/py_coverage/package.py +++ b/repos/spack_repo/builtin/packages/py_coverage/package.py @@ -14,7 +14,11 @@ class PyCoverage(PythonPackage): pypi = "coverage/coverage-4.5.4.tar.gz" license("Apache-2.0") + maintainers("adamjstewart") + version("7.12.0", sha256="fc11e0a4e372cb5f282f16ef90d4a585034050ccda536451901abfb19a57f40c") + version("7.10.7", sha256="f4ab143ab113be368a3e9b795f9cd7906c5ef407d6173fe9675a902e1fffc239") + version("7.10.0", sha256="2768885aef484b5dcde56262cbdfba559b770bfc46994fe9485dc3614c7a5867") version("7.2.6", sha256="2025f913f2edb0272ef15d00b1f335ff8908c921c8eb2013536fcaf61f5a683d") version("6.4.4", sha256="e16c45b726acb780e1e6f88b286d3c10b3914ab03438f32117c4aa52d7f30d58") version("6.3.1", sha256="6c3f6158b02ac403868eea390930ae64e9a9a2a5bbfafefbb920d29258d9f2f8") @@ -25,12 +29,25 @@ class PyCoverage(PythonPackage): version("4.5.4", sha256="e07d9f1a23e9e93ab5c62902833bf3e4b1f65502927379148b6622686223125c") version("4.5.3", sha256="9de60893fb447d1e797f6bf08fdf0dbcda0c1e34c1b06c92bd3a363c0ea8c609") version("4.3.4", sha256="eaaefe0f6aa33de5a65f48dd0040d7fe08cac9ac6c35a56d0a7db109c3e733df") - version("4.0a6", sha256="85c7f3efceb3724ab066a3fcccc05b9b89afcaefa5b669a7e2222d31eac4728d") + version( + "4.0a6", + sha256="85c7f3efceb3724ab066a3fcccc05b9b89afcaefa5b669a7e2222d31eac4728d", + deprecated=True, + ) variant("toml", default=False, description="Enable pyproject.toml support") - depends_on("c", type="build") # generated + depends_on("c", type="build") + + with default_args(type=("build", "link", "run")): + depends_on("python@3.10:", when="@7.11:") + depends_on("python@3.9:", when="@7.6.2:") + depends_on("python@3.8:", when="@7.3:") + depends_on("python@3.7:", when="@6.3:") + depends_on("python") depends_on("py-setuptools", type="build") - depends_on("py-tomli", when="@6: +toml ^python@:3.10", type=("build", "run")) - depends_on("py-toml", when="@:5 +toml", type=("build", "run")) + + with default_args(type=("build", "run")): + depends_on("py-tomli", when="@6: +toml ^python@:3.10") + depends_on("py-toml", when="@:5 +toml") diff --git a/repos/spack_repo/builtin/packages/py_cramjam/package.py b/repos/spack_repo/builtin/packages/py_cramjam/package.py new file mode 100644 index 00000000000..3783a7f430f --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_cramjam/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyCramjam(PythonPackage): + """Thin Python bindings to de/compression algorithms in Rust.""" + + homepage = "https://github.com/milesgranger/cramjam" + pypi = "cramjam/cramjam-2.11.0.tar.gz" + + license("MIT", checked_by="wdconinc") + + version("2.11.0", sha256="5c82500ed91605c2d9781380b378397012e25127e89d64f460fea6aeac4389b4") + + depends_on("c", type="build") + depends_on("rust", type="build") + depends_on("py-maturin@0.14:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_crc32c/package.py b/repos/spack_repo/builtin/packages/py_crc32c/package.py new file mode 100644 index 00000000000..450c1a1b9b2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_crc32c/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 PyCrc32c(PythonPackage): + """A python package implementing the crc32c algorithm in hardware and software.""" + + homepage = "https://github.com/ICRAR/crc32c" + pypi = "crc32c/crc32c-2.7.1.tar.gz" + + license("LGPL-2.1-or-later") + + version("2.7.1", sha256="f91b144a21eef834d64178e01982bb9179c354b3e9e5f4c803b0e5096384968c") + + depends_on("python@3.7:", type=("build", "link", "run")) + + with default_args(type="build"): + depends_on("c") + depends_on("py-setuptools") diff --git a/repos/spack_repo/builtin/packages/py_cryolobm/package.py b/repos/spack_repo/builtin/packages/py_cryolobm/package.py index 5ff6387fc81..c8b628df61b 100644 --- a/repos/spack_repo/builtin/packages/py_cryolobm/package.py +++ b/repos/spack_repo/builtin/packages/py_cryolobm/package.py @@ -16,6 +16,7 @@ class PyCryolobm(PythonPackage): license("MIT") + version("1.6.1", sha256="6beb622861d9cc4eb841758993944242e73e46c6cb22851404a7a7c144352913") version("1.3.7", sha256="e3505c95cddac3a344d1c6eddf1a9ff576a1384f9194b580287c76367912bedc") depends_on("python@3.4.0:") diff --git a/repos/spack_repo/builtin/packages/py_cryptography/package.py b/repos/spack_repo/builtin/packages/py_cryptography/package.py index 7f577722637..11f2e7cd095 100644 --- a/repos/spack_repo/builtin/packages/py_cryptography/package.py +++ b/repos/spack_repo/builtin/packages/py_cryptography/package.py @@ -16,73 +16,95 @@ class PyCryptography(PythonPackage): license("Apache-2.0") - version("43.0.3", sha256="315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805") - version("43.0.1", sha256="203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d") - version("42.0.8", sha256="8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2") - version("41.0.7", sha256="13f93ce9bea8016c253b34afc6bd6a75993e5c40672ed5405a9c832f0d4a00bc") - version("41.0.3", sha256="6d192741113ef5e30d89dcb5b956ef4e1578f304708701b8b73d38e3e1461f34") - version("40.0.2", sha256="c33c0d32b8594fa647d2e01dbccc303478e16fdd7cf98652d5b3ed11aa5e5c99") - version("38.0.1", sha256="1db3d807a14931fa317f96435695d9ec386be7b84b618cc61cfa5d08b0ae33d7") - version("37.0.4", sha256="63f9c17c0e2474ccbebc9302ce2f07b55b3b3fcb211ded18a42d5764f5c10a82") - version("36.0.1", sha256="53e5c1dc3d7a953de055d77bef2ff607ceef7a2aac0353b5d630ab67f7423638") - version("35.0.0", sha256="9933f28f70d0517686bd7de36166dda42094eac49415459d9bdf5e7df3e0086d") - version("3.4.8", sha256="94cc5ed4ceaefcbe5bf38c8fba6a21fc1d365bb8fb826ea1688e3370b2e24a1c") - version("3.4.7", sha256="3d10de8116d25649631977cb37da6cbdd2d6fa0e0281d014a5b7d337255ca713") - version("3.3.2", sha256="5a60d3780149e13b7a6ff7ad6526b38846354d11a15e21068e57073e29e19bed") - version("3.2.1", sha256="d3d5e10be0cf2a12214ddee45c6bd203dab435e3d83b4560c03066eda600bfe3") - version("2.8", sha256="3cda1f0ed8747339bbdf71b9f38ca74c7b592f24f65cdb3ab3765e4b02871651") - version("2.7", sha256="e6347742ac8f35ded4a46ff835c60e68c22a536a8ae5c4422966d06946b6d4c6") - version("2.3.1", sha256="8d10113ca826a4c29d5b85b2c4e045ffa8bad74fb525ee0eceb1d38d4c70dfd6") - version("1.8.1", sha256="323524312bb467565ebca7e50c8ae5e9674e544951d28a2904a50012a8828190") - - variant("idna", default=False, when="@2.5:3.0", description="Deprecated U-label support") + version("46.0.7", sha256="e4cfd68c5f3e0bfdad0d38e023239b96a2fe84146481852dffbcca442c245aa5") + with default_args(deprecated=True): + # CVE-2026-39892 + version( + "46.0.3", sha256="a8b17438104fed022ce745b362294d9ce35b4c2e45c1d958ad4a4b019285f4a1" + ) + # CVE-2026-26007 + version( + "45.0.5", sha256="72e76caa004ab63accdf26023fccd1d087f6d90ec6048ff33ad0445abf7f605a" + ) + version( + "43.0.3", sha256="315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805" + ) + version( + "43.0.1", sha256="203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d" + ) + version( + "42.0.8", sha256="8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2" + ) + # CVE-2024-26130 + version( + "41.0.7", sha256="13f93ce9bea8016c253b34afc6bd6a75993e5c40672ed5405a9c832f0d4a00bc" + ) + # CVE-2023-49083 + version( + "41.0.3", sha256="6d192741113ef5e30d89dcb5b956ef4e1578f304708701b8b73d38e3e1461f34" + ) + version( + "40.0.2", sha256="c33c0d32b8594fa647d2e01dbccc303478e16fdd7cf98652d5b3ed11aa5e5c99" + ) + version( + "38.0.1", sha256="1db3d807a14931fa317f96435695d9ec386be7b84b618cc61cfa5d08b0ae33d7" + ) + version( + "37.0.4", sha256="63f9c17c0e2474ccbebc9302ce2f07b55b3b3fcb211ded18a42d5764f5c10a82" + ) + version( + "36.0.1", sha256="53e5c1dc3d7a953de055d77bef2ff607ceef7a2aac0353b5d630ab67f7423638" + ) + version( + "35.0.0", sha256="9933f28f70d0517686bd7de36166dda42094eac49415459d9bdf5e7df3e0086d" + ) # pyo3 <= 0.22 required in version <= 42 depends_on("python@:3.12", when="@:42", type=("build", "run")) # distutils required in version <= 40 depends_on("python@:3.11", when="@:40", type=("build", "run")) + + depends_on("py-maturin@1.9.4:1", when="@46:", type="build") + depends_on("py-maturin@1.8.6:1", when="@45", type="build") + depends_on("py-maturin@1", when="@43:44", type="build") depends_on("py-setuptools@61.0:", when="@41:", type="build") depends_on("py-setuptools@40.6:60.8,60.9.1:", when="@37:", type="build") - depends_on("py-setuptools@40.6:", when="@2.7:36", type="build") - depends_on("py-setuptools@18.5:", when="@2.2:2.6", type="build") - depends_on("py-setuptools@11.3:", when="@:2.1", type="build") - with when("@43:"): - depends_on("py-maturin@1", type="build") - conflicts( - "^py-setuptools@74.0.0,74.1.0,74.1.1,74.1.2,74.1.3,75.0.0,75.1.0,75.2.0", - msg="some setuptools version are incompatible", - ) + depends_on("py-setuptools@40.6:", when="@:36", type="build") with when("@:42"): depends_on("py-setuptools-rust@1.7.0:", when="@42", type=("build", "run")) - depends_on("py-setuptools-rust@0.11.4:", when="@3.4.2:", type="build") - depends_on("py-setuptools-rust@0.11.4:", when="@3.4:3.4.1", type=("build", "run")) + depends_on("py-setuptools-rust@0.11.4:", type="build") + + # from https://cryptography.io/en/latest/installation/#rust + depends_on("rust@1.74:", when="@45:", type="build") + depends_on("rust@1.65:", when="@43:", type="build") + depends_on("rust@1.63:", when="@42:", type="build") depends_on("rust@1.56:", when="@41:", type="build") depends_on("rust@1.48:", when="@38:", type="build") - depends_on("rust@1.41:", when="@3.4.5:", type="build") - depends_on("rust@1.45:", when="@3.4.3:3.4.4", type="build") + depends_on("rust@1.41:", type="build") depends_on("pkgconfig", when="@40:", type="build") - depends_on("py-cffi@1.12:", when="@3.3:", type=("build", "run")) - depends_on("py-cffi@1.8:1.11.2,1.11.4:", when="@2.5:3.2", type=("build", "run")) - depends_on("py-cffi@1.7:1.11.2,1.11.4:", when="@1.9:2.4.2", type=("build", "run")) - depends_on("py-cffi@1.4.1:", type=("build", "run")) - - depends_on("py-asn1crypto@0.21.0:", type=("build", "run"), when="@:2.7") - depends_on("py-six@1.4.1:", type=("build", "run"), when="@:3.3") - depends_on("py-idna@2.1:", type=("build", "run"), when="@:2.4") # deprecated - depends_on("py-idna@2.1:", type=("build", "run"), when="@2.5: +idna") # deprecated + depends_on("py-cffi@1.14:", when="@45:", type=("build", "run")) + depends_on("py-cffi@1.12:", type=("build", "run")) + depends_on("py-typing-extensions@4.13.2:", when="@46: ^python@:3.10", type=("build", "run")) - depends_on("openssl") - depends_on("openssl@:1.0", when="@:1.8.1") - depends_on("openssl@:1.1", when="@:3.4") + # from https://cryptography.io/en/latest/installation/ + depends_on("openssl@3:", when="@42:") depends_on("openssl@1.1.1:", when="@39:") + depends_on("openssl") + + conflicts("^python@3.9.0,3.9.1", when="@45:") + conflicts("^py-setuptools@74.0.0,74.1.0,74.1.1,74.1.2", when="@44:") + conflicts( + "^py-setuptools@74.0.0,74.1.0,74.1.1,74.1.2,74.1.3,75.0.0,75.1.0,75.2.0", + msg="some setuptools version are incompatible", + when="@43", + ) # To fix https://github.com/spack/spack/issues/29669 # https://community.home-assistant.io/t/error-failed-building-wheel-for-cryptography/352020/14 # We use CLI git instead of Cargo's internal git library # See reference: https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli - depends_on("git", type="build", when="@35:") + depends_on("git", type="build") def setup_build_environment(self, env: EnvironmentModifications) -> None: - if self.spec.satisfies("@35:"): - env.set("CARGO_NET_GIT_FETCH_WITH_CLI", "true") + env.set("CARGO_NET_GIT_FETCH_WITH_CLI", "true") diff --git a/repos/spack_repo/builtin/packages/py_css_parser/package.py b/repos/spack_repo/builtin/packages/py_css_parser/package.py index 64dee381a58..4f43c7928f4 100644 --- a/repos/spack_repo/builtin/packages/py_css_parser/package.py +++ b/repos/spack_repo/builtin/packages/py_css_parser/package.py @@ -17,6 +17,7 @@ class PyCssParser(PythonPackage): license("LGPL-3.0-or-later") + version("1.0.10", sha256="bf1e972ad33344e93206964fb4cd908d9ddef9fcd0c01fa93e0d734675394363") version("1.0.9", sha256="196db822cef22745af6a58d180cf8206949ced58b48f5f3ee98f1de1627495bb") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_cuda_bindings/package.py b/repos/spack_repo/builtin/packages/py_cuda_bindings/package.py new file mode 100644 index 00000000000..b0f6a6aff88 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_cuda_bindings/package.py @@ -0,0 +1,38 @@ +# 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 PyCudaBindings(PythonPackage): + """NVIDIA’s CUDA Python provides Cython bindings and Python wrappers for the + driver and runtime API for existing toolkits and libraries to simplify + GPU-based accelerated processing.""" + + homepage = "https://github.com/NVIDIA/cuda-python" + git = "https://github.com/NVIDIA/cuda-python" + url = "https://github.com/NVIDIA/cuda-python/releases/download/v12.9.0/cuda-python-v12.9.0.tar.gz" + + version("12.9.0", sha256="1fa57a9fad278256cbb3b6cf347d2b258a7f83bba2759257e54c9fabd0b07ce1") + version("12.8.0", sha256="6cc8db1e65a1f995e289b64f9b9bff4362321d36ecf9b54eb192d0781475fbca") + version("11.8.7", sha256="613ec6d0cde3db4d48074010ed6015ff60462f14c5fa7d8fe82fe7a7ecd5d1ac") + + depends_on("cuda@12.9", when="@12.9.0") + depends_on("cuda@12.8", when="@12.8.0") + depends_on("cuda@11.8", when="@11.8.7") + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-cython", type="build") + depends_on("py-pyclibrary", type=("build", "run")) + depends_on("py-pywin32", when="platform=windows", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-setuptools@77.0.0:", when="@12.9.0", type="build") + + build_directory = "cuda_bindings" + + def setup_build_environment(self, env): + cuda_version = self.spec["cuda"].version + if cuda_version >= Version("12.9"): + env.append_path("LIBRARY_PATH", self.spec["cuda"].prefix.lib64) diff --git a/repos/spack_repo/builtin/packages/py_cuda_core/package.py b/repos/spack_repo/builtin/packages/py_cuda_core/package.py new file mode 100644 index 00000000000..e69a24198b3 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_cuda_core/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 PyCudaCore(PythonPackage): + """Pythonic access to NVIDIA's CUDA Runtime and other core functionalities""" + + homepage = "https://github.com/NVIDIA/cuda-python" + git = "https://github.com/NVIDIA/cuda-python" + url = "https://github.com/NVIDIA/cuda-python/releases/download/v12.9.0/cuda-python-v12.9.0.tar.gz" + + version("12.9.0", sha256="1fa57a9fad278256cbb3b6cf347d2b258a7f83bba2759257e54c9fabd0b07ce1") + version("12.8.0", sha256="6cc8db1e65a1f995e289b64f9b9bff4362321d36ecf9b54eb192d0781475fbca") + version("11.8.7", sha256="613ec6d0cde3db4d48074010ed6015ff60462f14c5fa7d8fe82fe7a7ecd5d1ac") + + depends_on("cuda@12.9", when="@12.9.0") + depends_on("cuda@12.8", when="@12.8.0") + depends_on("cuda@11.8", when="@11.8.7") + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-cython", type="build") + depends_on("py-pyclibrary", type=("build", "run")) + depends_on("py-pywin32", when="platform=windows", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-setuptools@77.0.0:", when="@12.9.0", type="build") + + build_directory = "cuda_core" + + def setup_build_environment(self, env): + env.append_path("LIBRARY_PATH", self.spec["cuda"].prefix.lib64) 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_cudf/package.py b/repos/spack_repo/builtin/packages/py_cudf/package.py index f58de4710d2..1a3f42cd522 100644 --- a/repos/spack_repo/builtin/packages/py_cudf/package.py +++ b/repos/spack_repo/builtin/packages/py_cudf/package.py @@ -44,7 +44,7 @@ class PyCudf(PythonPackage): @run_before("install") def cmake(self): - cmake = which("cmake") + cmake = which("cmake", required=True) build_dir = os.path.join(self.stage.source_path, "cpp", "build") diff --git a/repos/spack_repo/builtin/packages/py_cupy/package.py b/repos/spack_repo/builtin/packages/py_cupy/package.py index 40ecf7ff89d..fb4011e1428 100644 --- a/repos/spack_repo/builtin/packages/py_cupy/package.py +++ b/repos/spack_repo/builtin/packages/py_cupy/package.py @@ -18,13 +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.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") @@ -39,21 +54,29 @@ class PyCupy(PythonPackage, CudaPackage, ROCmPackage): depends_on("cxx", type="build") depends_on("python@3.7:", when="@:11", type=("build", "run")) - depends_on("python@3.8:", when="@12:", type=("build", "run")) + depends_on("python@3.8:3.11", when="@12", type=("build", "run")) + depends_on("python@3.9:3.13", when="@13", type=("build", "run")) + depends_on("python@3.10:", when="@14", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-cython@0.29.22:2", type="build", when="@:13.3") + depends_on("py-setuptools@:73", when="@:13.3", type="build") + depends_on("py-cython@0.29.22:0.29", type="build", when="@:13.3") depends_on( - "py-cython@3:3.0.10,3.0.12:", type="build", when="@13.4:" + "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@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")) - depends_on("py-numpy@1.22:1.28", when="@13:", type=("build", "run")) - - depends_on("py-scipy@1.6:1.12", when="@:12+all", type=("build", "run")) - depends_on("py-scipy@1.7:1.13", when="@13:+all", type=("build", "run")) - depends_on("py-cython@0.29.22:2", when="+all", type=("build", "run")) + depends_on("py-numpy@1.20:1.26", when="@12", type=("build", "run")) + depends_on("py-numpy@1.22:1", when="@13.1", type=("build", "run")) + depends_on("py-numpy@1.22:2.0", when="@13.2", type=("build", "run")) + depends_on("py-numpy@1.22:2.2", when="@13.4", type=("build", "run")) + depends_on("py-numpy@1.22:2.3", when="@13.5", type=("build", "run")) + depends_on("py-numpy@2:", when="@14", type=("build", "run")) + depends_on("py-scipy@1.6:1.11", when="@:12+all", type=("build", "run")) + depends_on("py-scipy@1.7:1.16", when="@13+all", type=("build", "run")) + depends_on("py-scipy@1.10:1.16", when="@14+all", type=("build", "run")) depends_on("py-optuna@2:", when="+all", type=("build", "run")) + depends_on("py-optuna@3:", when="@12:+all", type=("build", "run")) # Based on https://github.com/cupy/cupy/releases depends_on("cuda@:11.9", when="@:11 +cuda") @@ -61,16 +84,23 @@ class PyCupy(PythonPackage, CudaPackage, ROCmPackage): depends_on("cuda@:12.1", when="@13.0 +cuda") depends_on("cuda@:12.4", when="@13.1:13.2 +cuda") depends_on("cuda@:12.6", when="@13.3 +cuda") - depends_on("cuda@:12.8", when="@13.4: +cuda") + depends_on("cuda@:12.8", when="@13.4 +cuda") + depends_on("cuda@:12.9", when="@13.5 +cuda") + 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)) + depends_on( + "nccl@2.16:2.26 +cuda cuda_arch={0}".format(a), when="@13+cuda cuda_arch={0}".format(a) + ) - depends_on("cudnn@8.8", when="@12.0.0: +cuda") + depends_on("cudnn@8.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.1.2", when="@13.1: +cuda") + depends_on("cutensor@2.0", when="@13.1: +cuda") + depends_on("hip@4:5", when="@:13.3 +rocm") + depends_on("hip@4:6", when="@13.4:13 +rocm") for _arch in ROCmPackage.amdgpu_targets: arch_str = "amdgpu_target={0}".format(_arch) rocm_str = "+rocm {0}".format(arch_str) @@ -92,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"): @@ -102,8 +138,13 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: spec = self.spec incs = { + "hipblas": ["include", "include/hipblas"], + "hipsparse": ["include", "include/hipsparse"], + "hipfft": ["include", "include/hipfft"], + "rocsolver": ["include", "include/rocsolver"], + "rccl": ["include", "include/rccl"], "roctracer-dev": ["include/roctracer"], - "hiprand": ["include"], + "hiprand": ["include", "include/hiprand"], "rocrand": ["include"], "rocthrust": ["include"], "rocprim": ["include"], diff --git a/repos/spack_repo/builtin/packages/py_curryreader/package.py b/repos/spack_repo/builtin/packages/py_curryreader/package.py new file mode 100644 index 00000000000..83df852a456 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_curryreader/package.py @@ -0,0 +1,37 @@ +# 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 PyCurryreader(PythonPackage): + """File reader for Compumedics Neuroscan data formats (.cdt, .dat).""" + + homepage = "https://github.com/mne-tools/curry-python-reader" + pypi = "curryreader/curryreader-0.1.2.tar.gz" + + license("BSD-3-Clause") + + version("0.1.2", sha256="3f1f821e0e386ca7ad2a2422dcb699e3180daa153cc91d74796ccc9f1f83bf41") + + depends_on("python@3.7:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-hatch-vcs") + depends_on("py-hatchling") + + with default_args(type=("build", "run")): + depends_on("py-certifi@2020.6.20:") + depends_on("py-cycler@0.10:") + depends_on("py-kiwisolver@1.2:") + depends_on("py-matplotlib@3.3.2:") + depends_on("py-numpy@1.19.2:") + depends_on("pil@8.0.1:") + depends_on("py-pip@21.0.1:") + depends_on("py-pyparsing@2.4.7:") + depends_on("py-python-dateutil@2.8.1:") + depends_on("py-setuptools@50.3.2:") + depends_on("py-six@1.15:") diff --git a/repos/spack_repo/builtin/packages/py_cvxpy/package.py b/repos/spack_repo/builtin/packages/py_cvxpy/package.py index 88abe5fc8c7..3f3bda84dca 100644 --- a/repos/spack_repo/builtin/packages/py_cvxpy/package.py +++ b/repos/spack_repo/builtin/packages/py_cvxpy/package.py @@ -14,22 +14,35 @@ class PyCvxpy(PythonPackage): homepage = "https://www.cvxpy.org/index.html" pypi = "cvxpy/cvxpy-1.0.25.tar.gz" + maintainers("LydDeb") + license("Apache-2.0") + version("1.8.1", sha256="3fbdb1f81be7237c58742b1618bb9f809eeacf6c131705e2540b87ecef9cf402") version("1.1.13", sha256="a9c781e74ad76097b47b86456cb3a943898f7ec9ac8f47bcefc922051cdc4a04") version("1.0.25", sha256="8535529ddb807067b0d59661dce1d9a6ddb2a218398a38ea7772328ad8a6ea13") depends_on("cxx", type="build") # generated # Dependency versions based on README.md in python packages - depends_on("python@3.4:", type=("build", "run"), when="@1.1:") + depends_on("python@3.11:", type=("build", "run"), when="@1.8:") depends_on("python@3.6:", type=("build", "run"), when="@1.1.13:") + depends_on("python@3.4:", type=("build", "run"), when="@1.1:") + depends_on("py-setuptools@68.1:", type="build", when="@1.8:") depends_on("py-setuptools", type="build") + depends_on("py-numpy@2:", type=("build", "run"), when="@1.8:") depends_on("py-numpy@1.15:", type=("build", "run")) + depends_on("py-scipy@1.13:", type=("build", "run"), when="@1.8:") depends_on("py-scipy@1.1.0:", type=("build", "run")) depends_on("py-ecos@2:", type=("build", "run")) - depends_on("py-scs@1.1.3:", type=("build", "run")) + depends_on("py-scs@3.2.4.post1:", type=("build", "run"), when="@1.8:") depends_on("py-scs@1.1.6:", type=("build", "run"), when="@1.1.13:") + depends_on("py-scs@1.1.3:", type=("build", "run")) + depends_on("py-osqp@1:", type=("build", "run"), when="@1.8:") depends_on("py-osqp@0.4.1:", type=("build", "run")) depends_on("py-multiprocess", type=("build", "run")) depends_on("py-six", type=("build", "run"), when="@:1.0") + depends_on("py-wheel", type="build", when="@1.8:") + depends_on("py-pybind11", type="build", when="@1.8:") + depends_on("py-clarabel@0.5:", type=("build", "run"), when="@1.8:") + depends_on("py-highspy@1.11:", type=("build", "run"), when="@1.8:") diff --git a/repos/spack_repo/builtin/packages/py_cycler/package.py b/repos/spack_repo/builtin/packages/py_cycler/package.py index 6a13b7c4e65..dc12d88023d 100644 --- a/repos/spack_repo/builtin/packages/py_cycler/package.py +++ b/repos/spack_repo/builtin/packages/py_cycler/package.py @@ -15,9 +15,15 @@ class PyCycler(PythonPackage): license("BSD-3-Clause") + version("0.12.1", sha256="88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c") version("0.11.0", sha256="9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f") version("0.10.0", sha256="cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8") + depends_on("python@3.8:", when="@0.12:", type=("build", "run")) depends_on("python@3.6:", when="@0.11:", type=("build", "run")) + # used pyproject.toml only + depends_on("py-setuptools@61:", type="build", when="@0.12:") depends_on("py-setuptools", type="build") + + # Historical dependencies depends_on("py-six", when="@:0.10", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_cylc_flow/package.py b/repos/spack_repo/builtin/packages/py_cylc_flow/package.py index 3550c2aca9c..36abb310ae0 100644 --- a/repos/spack_repo/builtin/packages/py_cylc_flow/package.py +++ b/repos/spack_repo/builtin/packages/py_cylc_flow/package.py @@ -11,41 +11,57 @@ class PyCylcFlow(PythonPackage): """A workflow engine for cycling systems.""" homepage = "https://cylc.org" - pypi = "cylc-flow/cylc-flow-8.1.4.tar.gz" + pypi = "cylc-flow/cylc_flow-8.6.4.tar.gz" git = "https://github.com/cylc/cylc-flow.git" maintainers("LydDeb", "climbfuji") license("GPL-3.0-only") - # Versions 8.3.6 and 8.4.2 are available at PyPI, but not at the URL that is considered - # canonical by Spack - https://github.com/spack/spack/issues/48479 - version("8.4.2", commit="5625b0fa594b5a422b37b0a3b85dc12e40fceb05") - version("8.3.6", commit="7f63b43164638e27636b992b14b3fa088b692b94") - version("8.2.3", sha256="dd5bea9e4b8dad00edd9c3459a38fb778e5a073da58ad2725bc9b84ad718e073") - version("8.2.0", sha256="cbe35e0d72d1ca36f28a4cebe9b9040a3445a74253bc94051a3c906cf179ded0") - version("8.1.4", sha256="d1835ac18f6f24f3115c56b2bc821185484e834a86b12fd0033ff7e4dc3c1f63") + version("8.6.4", sha256="ba65eee781b26986030ab2ab6bd44bed5c77f4164ae02f5b093b3e452cab35a7") + version("8.5.4", sha256="3997e51bb31905027d96374e29d0e61eb84bd7dd816cd6c426eae3467a984bb2") + version("8.4.2", sha256="6d0b3129c9779db764fc6e4b4c397a5b117accdf4e9089cd5edcd5023618aa17") + with default_args(deprecated=True): + version("8.3.6", sha256="43ddda5fa047a6cd19bd1eea6e7ece028f9d535eecce004203a46c7c135d2d8c") + version("8.2.3", sha256="dd5bea9e4b8dad00edd9c3459a38fb778e5a073da58ad2725bc9b84ad718e073") + version("8.2.0", sha256="cbe35e0d72d1ca36f28a4cebe9b9040a3445a74253bc94051a3c906cf179ded0") + version("8.1.4", sha256="d1835ac18f6f24f3115c56b2bc821185484e834a86b12fd0033ff7e4dc3c1f63") + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/c/cylc-flow/{0}-{1}.tar.gz" + if version >= Version("8.3"): + prefix = "cylc_flow" + else: + prefix = "cylc-flow" + return url.format(prefix, version) + + depends_on("python@3.12:", type=("build", "run"), when="@8.6:") depends_on("py-setuptools@49:66,68:", type=("build", "run"), when="@:8.2") + depends_on("py-aiofiles@0.7", type=("build", "run"), when="@:8.1") depends_on("py-ansimarkup@1.0.0:", type=("build", "run")) - depends_on("py-async-timeout@3.0.0:", type=("build", "run")) + depends_on("py-async-timeout@3.0.0:", type=("build", "run"), when="@:8.5 ^python@:3.10") depends_on("py-colorama@0.4:1", type=("build", "run")) - depends_on("py-graphene@2.1:2", type=("build", "run")) + depends_on("py-graphql-core@3.2", type=("build", "run"), when="@8.5:") + depends_on("py-graphene@2.1:2", type=("build", "run"), when="@:8.4") + depends_on("py-graphene@3.4", type=("build", "run"), when="@8.5:") + depends_on("py-jinja2@3.0", type=("build", "run")) depends_on("py-metomi-isodatetime@3.0", type=("build", "run"), when="@:8.2.0") depends_on("py-metomi-isodatetime@3:3.1", type=("build", "run"), when="@8.2.3:") depends_on("py-packaging", type=("build", "run"), when="@8.3:") depends_on("py-protobuf@4.21.2:4.21", type=("build", "run"), when="@:8.2") - depends_on("py-protobuf@4.24.4:4.24", type=("build", "run"), when="@8.3:") + depends_on("py-protobuf@4.24.4:4.24", type=("build", "run"), when="@8.3:8.5") + depends_on("py-protobuf@5:7", type=("build", "run"), when="@8.6:") depends_on("py-psutil@5.6.0:", type=("build", "run")) depends_on("py-pyzmq@22:", type=("build", "run"), when="@8.2:") depends_on("py-pyzmq@22", type=("build", "run"), when="@:8.1") + depends_on("py-importlib-metadata", type=("build", "run"), when="@:8.2 ^python@:3.7") - depends_on("py-importlib-metadata@5:", type=("build", "run"), when="@8.3: ^python@:3.11") + depends_on("py-importlib-metadata@5:", type=("build", "run"), when="@8.3:8.5 ^python@:3.11") depends_on("py-urwid@2:2.6.1,2.6.4:2", type=("build", "run")) - depends_on("py-rx", type=("build", "run")) - depends_on("py-promise", type=("build", "run")) + depends_on("py-rx", type=("build", "run"), when="@:8.4") + depends_on("py-promise", type=("build", "run"), when="@:8.4") depends_on("py-tomli@2:", type=("build", "run"), when="^python@:3.10") # Non-Python dependencies for creating graphs. diff --git a/repos/spack_repo/builtin/packages/py_cylc_rose/package.py b/repos/spack_repo/builtin/packages/py_cylc_rose/package.py index 711380ebea6..bb5ceeeb563 100644 --- a/repos/spack_repo/builtin/packages/py_cylc_rose/package.py +++ b/repos/spack_repo/builtin/packages/py_cylc_rose/package.py @@ -11,18 +11,25 @@ class PyCylcRose(PythonPackage): """A Cylc plugin providing support for the Rose rose-suite.conf file.""" homepage = "https://cylc.github.io/cylc-doc/latest/html/plugins/cylc-rose.html" - pypi = "cylc-rose/cylc-rose-1.3.0.tar.gz" + pypi = "cylc-rose/cylc_rose-1.5.1.tar.gz" git = "https://github.com/cylc/cylc-rose.git" maintainers("LydDeb", "climbfuji") license("GPL-3.0-only") - # Versions 1.4.2 and 1.5.1 are available at PyPI, but not at the URL that is considered - # canonical by Spack - https://github.com/spack/spack/issues/48479 - version("1.5.1", commit="8232e48ff3a80bf04d7a0738e85a049ef4201a28") - version("1.4.2", commit="8deda0480afed8cf92cfdf7938fc78d0aaf0c0e4") - version("1.3.0", sha256="017072b69d7a50fa6d309a911d2428743b07c095f308529b36b1b787ebe7ab88") + version("1.5.1", sha256="280449bc8d2bc0426468b13c0f0602e8ca231c690ece5444af5bd55f6be60284") + with default_args(deprecated=True): + version("1.4.2", sha256="d215e2b58fabde66a82f131088b8a3e5add7fab82b226a0b7aa3cc2079ff62e9") + version("1.3.0", sha256="017072b69d7a50fa6d309a911d2428743b07c095f308529b36b1b787ebe7ab88") + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/c/cylc-rose/{0}-{1}.tar.gz" + if version >= Version("1.4"): + prefix = "cylc_rose" + else: + prefix = "cylc-rose" + return url.format(prefix, version) depends_on("py-setuptools", type="build") depends_on("py-metomi-isodatetime", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_cylc_uiserver/package.py b/repos/spack_repo/builtin/packages/py_cylc_uiserver/package.py index 6bd050ec601..20daac6043b 100644 --- a/repos/spack_repo/builtin/packages/py_cylc_uiserver/package.py +++ b/repos/spack_repo/builtin/packages/py_cylc_uiserver/package.py @@ -11,36 +11,31 @@ class PyCylcUiserver(PythonPackage): """Cylc UI Server.""" homepage = "https://github.com/cylc/cylc-uiserver/" - pypi = "cylc-uiserver/cylc-uiserver-1.3.0.tar.gz" + pypi = "cylc-uiserver/cylc_uiserver-1.9.1.tar.gz" git = "https://github.com/cylc/cylc-uiserver.git" - maintainers("LydDeb", "climbfuji") + maintainers("climbfuji") license("GPL-3.0-or-later") - # Versions 1.5.1 and 1.6.1 are available at PyPI, but not at the URL that is considered - # canonical by Spack - https://github.com/spack/spack/issues/48479 - version("1.6.1", commit="81782affa28ef7a7f8b4c2fe58c82800dc5cb542") - version("1.5.1", commit="3a41c6fbefbcea33c41410f3698de8b62c9871b8") - version("1.3.0", sha256="f3526e470c7ac2b61bf69e9b8d17fc7a513392219d28baed9b1166dcc7033d7a") + version("1.9.1", sha256="106551a19cbd5de85e8a59a549e1846598ee37e22171bd127a1676dccacc2792") + version("1.7.1", sha256="a841437b43873e198ffad0a496ee95efb14a6fd8eadb0b9182827ebac24dfdc7") - depends_on("python@3.8:", when="@1.5.1", type=("build", "run")) + depends_on("python@3.9:", type=("build", "run")) + depends_on("python@3.12:", when="@1.8:", type=("build", "run")) depends_on("py-wheel", type="build") depends_on("py-setuptools@40.9.0:", type="build") - depends_on("py-cylc-flow@8.2", when="@1.3.0", type=("build", "run")) - depends_on("py-cylc-flow@8.3", when="@1.5.1", type=("build", "run")) - depends_on("py-cylc-flow@8.4", when="@1.6.1", type=("build", "run")) + depends_on("py-cylc-flow@8.6.4:8.6", when="@1.9.1", type=("build", "run")) + depends_on("py-cylc-flow@8.5", when="@1.7.1", type=("build", "run")) + depends_on("py-ansimarkup@1.0.0:", type=("build", "run")) + depends_on("py-cherrypy", when="@1.9.1", type=("build", "run")) depends_on("py-graphene", type=("build", "run")) - depends_on("py-graphene-tornado@2.6", type=("build", "run")) - depends_on("py-graphql-ws@0.4.4", type=("build", "run")) - depends_on("py-jupyter-server@1.10.2:1", when="@1.3.0", type=("build", "run")) - depends_on("py-jupyter-server@2.7:", when="@1.5.1:", type=("build", "run")) + depends_on("py-jupyter-server@2.13:", type=("build", "run")) + depends_on("py-packaging", type=("build", "run")) depends_on("py-requests", type=("build", "run")) - depends_on("py-psutil", when="@1.5.1:", type=("build", "run")) - depends_on("py-tornado@6.1.0:", type=("build", "run")) + depends_on("py-psutil", type=("build", "run")) + depends_on("py-tornado@6.5.0:", type=("build", "run")) depends_on("py-traitlets@5.2.1:", type=("build", "run")) depends_on("py-pyzmq", type=("build", "run")) - depends_on("py-graphql-core", type=("build", "run")) - depends_on("py-rx@:1", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_cython/package.py b/repos/spack_repo/builtin/packages/py_cython/package.py index 5b9d66fbb6b..9f0d88f05f0 100644 --- a/repos/spack_repo/builtin/packages/py_cython/package.py +++ b/repos/spack_repo/builtin/packages/py_cython/package.py @@ -16,6 +16,19 @@ class PyCython(PythonPackage): license("Apache-2.0") + version("3.2.4", sha256="84226ecd313b233da27dc2eb3601b4f222b8209c3a7216d8733b031da1dc64e6") + version("3.2.3", sha256="f13832412d633376ffc08d751cc18ed0d7d00a398a4065e2871db505258748a6") + version("3.2.2", sha256="c3add3d483acc73129a61d105389344d792c17e7c1cee24863f16416bd071634") + version("3.2.1", sha256="2be1e4d0cbdf7f4cd4d9b8284a034e1989b59fd060f6bd4d24bf3729394d2ed8") + version("3.2.0", sha256="41fdce8237baee2d961c292ed0386903dfe126f131e450a62de0fd7a5280d4b2") + version("3.1.7", sha256="6f78b9053861325a44468fa4b48f11950635cd6d4715e8cd2633c73dd6a75a3d") + version("3.1.6", sha256="ff4ccffcf98f30ab5723fc45a39c0548a3f6ab14f01d73930c5bfaea455ff01c") + version("3.1.5", sha256="7e73c7e6da755a8dffb9e0e5c4398e364e37671778624188444f1ff0d9458112") + version("3.1.4", sha256="9aefefe831331e2d66ab31799814eae4d0f8a2d246cbaaaa14d1be29ef777683") + version("3.1.3", sha256="10ee785e42328924b78f75a74f66a813cb956b4a9bc91c44816d089d5934c089") + version("3.1.2", sha256="6bbf7a953fa6762dfecdec015e3b054ba51c0121a45ad851fa130f63f5331381") + version("3.1.1", sha256="505ccd413669d5132a53834d792c707974248088c4f60c497deb1b416e366397") + version("3.1.0", sha256="1097dd60d43ad0fff614a57524bfd531b35c13a907d13bee2cc2ec152e6bf4a1") version("3.0.12", sha256="b988bb297ce76c671e28c97d017b95411010f7c77fa6623dd0bb47eed1aee1bc") version("3.0.11", sha256="7146dd2af8682b4ca61331851e6aebce9fe5158e75300343f80c07ca80b1faff") version("3.0.10", sha256="dcc96739331fb854dcf503f94607576cfe8488066c61ca50dfd55836f132de99") @@ -35,63 +48,18 @@ class PyCython(PythonPackage): version("0.29.23", sha256="6a0d31452f0245daacb14c979c77e093eb1a546c760816b5eed0047686baad8e") version("0.29.22", sha256="df6b83c7a6d1d967ea89a2903e4a931377634a297459652e4551734c48195406") version("0.29.21", sha256="e57acb89bd55943c8d8bf813763d20b9099cc7165c0f16b707631a7654be9cad") - with default_args(deprecated=True): - version( - "0.29.20", sha256="22d91af5fc2253f717a1b80b8bb45acb655f643611983fd6f782b9423f8171c7" - ) - version( - "0.29.16", sha256="232755284f942cbb3b43a06cd85974ef3c970a021aef19b5243c03ee2b08fa05" - ) - version( - "0.29.15", sha256="60d859e1efa5cc80436d58aecd3718ff2e74b987db0518376046adedba97ac30" - ) - version( - "0.29.14", sha256="e4d6bb8703d0319eb04b7319b12ea41580df44fd84d83ccda13ea463c6801414" - ) - version( - "0.29.13", sha256="c29d069a4a30f472482343c866f7486731ad638ef9af92bfe5fca9c7323d638e" - ) - version( - "0.29.10", sha256="26229570d6787ff3caa932fe9d802960f51a89239b990d275ae845405ce43857" - ) - version( - "0.29.7", sha256="55d081162191b7c11c7bfcb7c68e913827dfd5de6ecdbab1b99dab190586c1e8" - ) - version( - "0.29.5", sha256="9d5290d749099a8e446422adfb0aa2142c711284800fb1eb70f595101e32cbf1" - ) - version("0.29", sha256="94916d1ede67682638d3cc0feb10648ff14dc51fb7a7f147f4fedce78eaaea97") - version( - "0.28.6", sha256="68aa3c00ef1deccf4dd50f0201d47c268462978c12c42943bc33dc9dc816ac1b" - ) - version( - "0.28.3", sha256="1aae6d6e9858888144cea147eb5e677830f45faaff3d305d77378c3cba55f526" - ) - version( - "0.28.1", sha256="152ee5f345012ca3bb7cc71da2d3736ee20f52cd8476e4d49e5e25c5a4102b12" - ) - version( - "0.25.2", sha256="f141d1f9c27a07b5a93f7dc5339472067e2d7140d1c5a9e20112a5665ca60306" - ) - version( - "0.23.5", sha256="0ae5a5451a190e03ee36922c4189ca2c88d1df40a89b4f224bc842d388a0d1b6" - ) - version( - "0.23.4", sha256="fec42fecee35d6cc02887f1eef4e4952c97402ed2800bfe41bbd9ed1a0730d8e" - ) depends_on("c", type="build") depends_on("cxx", type="build") # Based on PyPI wheel availability with default_args(type=("build", "link", "run")): - depends_on("python@:3.13") + depends_on("python@:3.14") + depends_on("python@:3.13", when="@:3.1.2") depends_on("python@:3.12", when="@:3.0.10") depends_on("python@:3.11", when="@:3.0.3") # Cythonize still used distutils depends_on("python@:3.10", when="@:0.29.28") depends_on("python@:3.9", when="@:0.29.24") - depends_on("python@:3.8", when="@:0.29.20") - depends_on("python@:3.7", when="@:0.29.13") # https://github.com/cython/cython/issues/5751 # https://github.com/cython/cython/commit/0000fb4c319ef8f7e8eabcc99677f99a8c503cc3 diff --git a/repos/spack_repo/builtin/packages/py_darshan/package.py b/repos/spack_repo/builtin/packages/py_darshan/package.py index ce6882ec8e5..723bff81539 100644 --- a/repos/spack_repo/builtin/packages/py_darshan/package.py +++ b/repos/spack_repo/builtin/packages/py_darshan/package.py @@ -11,14 +11,15 @@ class PyDarshan(PythonPackage): """Python utilities to interact with Darshan log records of HPC applications.""" homepage = "https://www.mcs.anl.gov/research/projects/darshan" - pypi = "darshan/darshan-3.4.0.1.tar.gz" + pypi = "darshan/darshan-3.5.0.tar.gz" - maintainers("jeanbez", "carns") + maintainers("jeanbez", "carns", "wkliao") tags = ["e4s"] # NOTE: don't forget to update the version array further down that sets the appropriate # darshan-util dependency + version("3.5.0", sha256="4b2214bd715d261a7d37e54a5aedd6b38b9990aaee61bb55d741cb795b728020") version("3.4.7.0", sha256="e4e37c2707c5526a865bf4813b248ae4c327664538772e95c946f3b0079dc347") version("3.4.6.0", sha256="a105ec5c9bcd4a20469470ca51db8016336ede34a1c33f4488d1ba263a73c378") version("3.4.5.0", sha256="1419e246b2383d3e71da14942d6579a86fb298bf6dbbc3f507accefa614c6e50") @@ -53,12 +54,12 @@ class PyDarshan(PythonPackage): # py-darshan depends on specific darshan-util versions corresponding # to the first 3 parts of the py-darshan version string # (i.e., py-darshan@3.4.3.0 requires darshan-util@3.4.3, etc.) - for v in ["3.4.0", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7"]: + for v in ["3.4.0", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.5.0"]: depends_on(f"darshan-util@{v}", when=f"@{v}", type=("build", "run")) @run_after("install") @on_package_attributes(run_tests=True) def install_test(self): with working_dir("./darshan/tests"): - pytest = which("pytest") + pytest = which("pytest", required=True) pytest() diff --git a/repos/spack_repo/builtin/packages/py_dash/package.py b/repos/spack_repo/builtin/packages/py_dash/package.py index 548b8aea1b0..63894fdb0f7 100644 --- a/repos/spack_repo/builtin/packages/py_dash/package.py +++ b/repos/spack_repo/builtin/packages/py_dash/package.py @@ -17,11 +17,17 @@ class PyDash(PythonPackage): license("MIT") + version("3.4.0", sha256="3944beb32000ee8b22cd7fbb33545a0a43e25916c63aa41ba59ee5611997815e") version("2.17.1", sha256="ee2d9c319de5dcc1314085710b72cd5fa63ff994d913bf72979b7130daeea28e") depends_on("python@3.8:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-typing-extensions") + depends_on("py-typing-extensions@4.1.1:", when="@3:") depends_on("py-flask") - depends_on("py-plotly@5") + depends_on("py-plotly@5", when="@:2") + depends_on("py-plotly@5:", when="@3:") + depends_on("py-werkzeug@:3.1") + depends_on("py-requests") + depends_on("py-retrying") depends_on("py-importlib-metadata") diff --git a/repos/spack_repo/builtin/packages/py_dask/dask_dataframe_accessor.patch b/repos/spack_repo/builtin/packages/py_dask/dask_dataframe_accessor.patch new file mode 100644 index 00000000000..9bf9b328cb6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_dask/dask_dataframe_accessor.patch @@ -0,0 +1,28 @@ +diff --git a/dask/dataframe/accessor.py b/dask/dataframe/accessor.py +index 9a73eb6cef47852c422ed7ec0e58c3442dabdf7b..0bb10e98151f36136679c2ad111a86da5e309773 100644 +--- a/dask/dataframe/accessor.py ++++ b/dask/dataframe/accessor.py +@@ -1,5 +1,6 @@ + from __future__ import annotations + ++import functools + import warnings + + import numpy as np +@@ -28,8 +29,15 @@ def func(self): + + func.__name__ = attr + func.__qualname__ = f"{cls.__name__}.{attr}" ++ original_prop = getattr(pd_cls, attr) ++ if isinstance(original_prop, property): ++ method = original_prop.fget ++ elif isinstance(original_prop, functools.cached_property): ++ method = original_prop.func ++ else: ++ raise TypeError("bind_property expects original class to provide a property") + try: +- func.__wrapped__ = getattr(pd_cls, attr) ++ func.__wrapped__ = method + except Exception: + pass + setattr(cls, attr, property(derived_from(pd_cls, version=min_version)(func))) diff --git a/repos/spack_repo/builtin/packages/py_dask/package.py b/repos/spack_repo/builtin/packages/py_dask/package.py index bc4e3e2d296..8b6ce0599e0 100644 --- a/repos/spack_repo/builtin/packages/py_dask/package.py +++ b/repos/spack_repo/builtin/packages/py_dask/package.py @@ -13,10 +13,14 @@ class PyDask(PythonPackage): homepage = "https://github.com/dask/dask/" pypi = "dask/dask-1.1.0.tar.gz" - maintainers("skosukhin") + maintainers("Chrismarsh") license("BSD-3-Clause") + version("2026.3.0", sha256="f7d96c8274e8a900d217c1ff6ea8d1bbf0b4c2c21e74a409644498d925eb8f85") + version("2025.7.0", sha256="c3a0d4e78882e85ea81dbc71e6459713e45676e2d17e776c2f3f19848039e4cf") + version("2025.3.0", sha256="322834f44ebc24abeb564c56ccb817c97d6e7af6be71ad0ad96b78b51f2e0e85") + version("2024.12.1", sha256="bac809af21c2dd7eb06827bccbfc612504f3ee6435580e548af912828f823195") version("2024.7.1", sha256="dbaef2d50efee841a9d981a218cfeb50392fc9a95e0403b6d680450e4f50d531") version("2023.4.1", sha256="9dc72ebb509f58f3fe518c12dd5a488c67123fdd66ccb0b968b34fd11e512153") version("2022.10.2", sha256="42cb43f601709575fa46ce09e74bea83fdd464187024f56954e09d9b428ceaab") @@ -44,95 +48,143 @@ class PyDask(PythonPackage): conflicts("~array", when="@2023.8: +dataframe", msg="From 2023.8, +dataframe requires +array") - depends_on("python@3.8:", type=("build", "run"), when="@2022.10.2:") - - depends_on("py-setuptools", type="build") - depends_on("py-setuptools@62.6:", type="build", when="@2023.4.1:") - depends_on("py-versioneer@0.28+toml", type="build", when="@2023.4.1:2023.10.0") - depends_on("py-versioneer@0.29+toml", type="build", when="@2023.10.1:") - - # Common requirements - depends_on("py-packaging@20:", type="build", when="@2022.10.2:") - depends_on("py-pyyaml", type=("build", "run")) - depends_on("py-pyyaml@5.3.1:", type=("build", "run"), when="@2022.10.2:") - depends_on("py-cloudpickle@1.1.1:", type=("build", "run"), when="@2021.3.1:") - depends_on("py-cloudpickle@1.5.0:", type=("build", "run"), when="@2023.4.1:") - depends_on("py-fsspec@0.6.0:", type=("build", "run"), when="@2021.3.1:") - depends_on("py-fsspec@2021.09.0:", type=("build", "run"), when="@2023.4.1:") - depends_on("py-toolz@0.8.2:", type=("build", "run"), when="@2021.3.1:") - depends_on("py-toolz@0.10.0:", type=("build", "run"), when="@2023.4.1:") - depends_on("py-partd@0.3.10:", type=("build", "run"), when="@2021.3.1:") - depends_on("py-partd@1.2.0:", type=("build", "run"), when="@2023.4.0:") - depends_on("py-partd@1.4.0:", type=("build", "run"), when="@2024.7.1:") - depends_on("py-click@7.0:", type=("build", "run"), when="@2022.10.2:") - depends_on("py-click@8.0:", type=("build", "run"), when="@2023.4.1:") - depends_on("py-click@8.1:", type=("build", "run"), when="@2023.11.0:") - depends_on("py-importlib-metadata@4.13.0:", type=("build", "run"), when="@2023.4.0:") - - # Requirements for dask.array - depends_on("py-numpy@1.15.1:", type=("build", "run"), when="@2020.12.0: +array") - depends_on("py-numpy@1.16.0:", type=("build", "run"), when="@2021.3.1: +array") - depends_on("py-numpy@1.18.0:", type=("build", "run"), when="@2022.10.2: +array") - depends_on("py-numpy@1.21.0:", type=("build", "run"), when="@2023.4.0: +array") - # https://github.com/dask/dask/issues/11066 - depends_on("py-numpy@:1", when="@:2024.5.0+array", type=("build", "run")) - # The dependency on py-toolz is non-optional starting version 2021.3.1 - depends_on("py-toolz@0.8.2:", type=("build", "run"), when="@:2021.3.0 +array") - - # Requirements for dask.bag - depends_on("py-cloudpickle@0.2.1:", type=("build", "run"), when="@0.8.2: +bag") - # The dependency on py-cloudpickle is non-optional starting version 2021.3.1 - depends_on("py-cloudpickle@0.2.2:", type=("build", "run"), when="@2.13.0:2021.3.0 +bag") - # The dependency on py-fsspec is non-optional starting version 2021.3.1 - depends_on("py-fsspec@0.6.0:", type=("build", "run"), when="@:2021.3.0 +bag") - # The dependency on py-toolz is non-optional starting version 2021.3.1 - depends_on("py-toolz@0.8.2:", type=("build", "run"), when="@:2021.3.0 +bag") - # The dependency on py-partd is non-optional starting version 2021.3.1 - depends_on("py-partd@0.3.10:", type=("build", "run"), when="@:2021.3.0 +bag") - - # Requirements for dask.dataframe - depends_on("py-numpy@1.15.1:", type=("build", "run"), when="@2020.12.0: +dataframe") - depends_on("py-numpy@1.16.0:", type=("build", "run"), when="@2021.3.1: +dataframe") - depends_on("py-numpy@1.18.0:", type=("build", "run"), when="@2022.10.2: +dataframe") - depends_on("py-numpy@1.21.0:", type=("build", "run"), when="@2023.4.0: +dataframe") - # https://github.com/dask/dask/issues/11066 - depends_on("py-numpy@:1", when="@:2024.5.0+dataframe", type=("build", "run")) - - depends_on("py-pandas@0.25.0:", type=("build", "run"), when="@2020.12.0: +dataframe") - depends_on("py-pandas@1.0:", type=("build", "run"), when="@2022.10.2: +dataframe") - depends_on("py-pandas@1.3:", type=("build", "run"), when="@2023.4.0: +dataframe") - depends_on("py-pandas@2.0:", type=("build", "run"), when="@2024.7.1: +dataframe") - # The dependency on py-toolz is non-optional starting version 2021.3.1 - depends_on("py-toolz@0.8.2:", type=("build", "run"), when="@:2021.3.0 +dataframe") - # The dependency on py-partd is non-optional starting version 2021.3.1 - depends_on("py-partd@0.3.10:", type=("build", "run"), when="@:2021.3.0 +dataframe") - # The dependency on py-fsspec is non-optional starting version 2021.3.1 - depends_on("py-fsspec@0.6.0:", type=("build", "run"), when="@:2021.3.0 +dataframe") - # Starting with version 2024.3.0, dataframe requires a separate package py-dask-expr - depends_on("py-dask-expr", type=("build", "run"), when="@2024.3: +dataframe") - depends_on("py-dask-expr@1.1.9", type=("build", "run"), when="@2024.7.1 +dataframe") - - # Requirements for dask.distributed - depends_on( - "py-distributed@2020.12.0:2021.8.0", type=("build", "run"), when="@:2021.6.1 +distributed" - ) - depends_on("py-distributed@2021.6.2", type=("build", "run"), when="@2021.6.2 +distributed") - depends_on("py-distributed@2022.10.2", type=("build", "run"), when="@2022.10.2 +distributed") - depends_on("py-distributed@2023.4.1", type=("build", "run"), when="@2023.4.1 +distributed") - depends_on("py-distributed@2024.7.1", type=("build", "run"), when="@2024.7.1 +distributed") - - # Requirements for dask.diagnostics - depends_on("py-bokeh@1.0.0:1,2.0.1:", type=("build", "run"), when="+diagnostics") - depends_on("py-bokeh@2.4.2:2", type=("build", "run"), when="@2022.10.2:2023.3 +diagnostics") - depends_on("py-bokeh@2.4.2:", type=("build", "run"), when="@2023.4.0: +diagnostics") - depends_on("py-jinja2", type=("build", "run"), when="@2022.10.2: +diagnostics") - depends_on("py-jinja2@2.10.3:", type=("build", "run"), when="@2023.4.0: +diagnostics") - - # Requirements for dask.delayed - # The dependency on py-cloudpickle is non-optional starting version 2021.3.1 - depends_on("py-cloudpickle@0.2.2:", type=("build", "run"), when="@:2021.3.0 +delayed") - # The dependency on py-toolz is non-optional starting version 2021.3.1 - depends_on("py-toolz@0.8.2:", type=("build", "run"), when="@:2021.3.0 +delayed") + with default_args(type="build"): + depends_on("py-setuptools") + depends_on("py-setuptools@80:", when="@2026.3.0:") + depends_on("py-setuptools@62.6:", when="@2023.4.1:") + + depends_on("py-setuptools-scm@9:", when="@2026.3.0:") + + depends_on("py-versioneer@0.29+toml", when="@2023.10.1:2025.11.0") + depends_on("py-versioneer@0.28+toml", when="@2023.4.1:2023.10.0") + + depends_on("py-packaging@20:", when="@2022.10.2:") + + with default_args(type=("build", "run")): + # python@3.14 breaks py-dask@:2025.7.0 + depends_on("python@:3.13", when="@:2025.12") + depends_on("python@3.10:", when="@2024.8.1:") + depends_on("python@3.9:", when="@2024.7.1") + depends_on("python@3.8:", when="@:2023.4.1") + + # Common requirements + depends_on("py-click@8.1:", when="@2023.11.0:") + depends_on("py-click@8.0:", when="@2023.4.1:") + depends_on("py-click@7.0:", when="@2022.10.2:") + + depends_on("py-cloudpickle@3.0.0:", when="@2024.8.1:") + depends_on("py-cloudpickle@1.5.0:", when="@2023.4.1:") + depends_on("py-cloudpickle@1.1.1:", when="@2021.3.1:") + + depends_on("py-fsspec@2021.09.0:", when="@2023.4.1:") + depends_on("py-fsspec@0.6.0:", when="@2021.3.1:") + + depends_on("py-packaging@20:", when="@2022.10.2:") + + depends_on("py-partd@1.4.0:", when="@2024.7.1:") + depends_on("py-partd@1.2.0:", when="@2023.4.0:") + depends_on("py-partd@0.3.10:", when="@2021.3.1:") + + depends_on("py-pyyaml") + depends_on("py-pyyaml@5.3.1:", when="@2022.10.2:") + + depends_on("py-toolz@0.12.0:", when="@2026.3.0:") + depends_on("py-toolz@0.10.0:", when="@2023.4.1:") + depends_on("py-toolz@0.8.2:", when="@2021.3.1:") + + depends_on("py-importlib-metadata@4.13.0:", when="@2023.4.0:2024.2") + depends_on("py-importlib-metadata@4.13.0:", when="@2024.3.0: ^python@:3.11") + + # Requirements for dask.array + with when("+array"): + depends_on("py-numpy@1.24.0:", when="@2024.8.2:") + depends_on("py-numpy@1.21.0:", when="@2023.4.0:") + depends_on("py-numpy@1.18.0:", when="@2022.10.2:") + depends_on("py-numpy@1.16.0:", when="@2021.3.1:") + depends_on("py-numpy@1.15.1:", when="@2020.12.0:") + # https://github.com/dask/dask/issues/11066 + depends_on("py-numpy@:1", when="@:2024.5.0") + # The dependency on py-toolz is non-optional starting version 2021.3.1 + depends_on("py-toolz@0.8.2:", when="@:2021.3.0") + + # Requirements for dask.bag + with when("+bag"): + # The dependency on py-cloudpickle is non-optional starting version 2021.3.1 + depends_on("py-cloudpickle@0.2.2:", when="@2.13.0:2021.3.0") + depends_on("py-cloudpickle@0.2.1:", when="@0.8.2:") + + # The dependency on py-fsspec is non-optional starting version 2021.3.1 + depends_on("py-fsspec@0.6.0:", when="@:2021.3.0") + # The dependency on py-toolz is non-optional starting version 2021.3.1 + depends_on("py-toolz@0.8.2:", when="@:2021.3.0") + # The dependency on py-partd is non-optional starting version 2021.3.1 + depends_on("py-partd@0.3.10:", when="@:2021.3.0") + + # Requirements for dask.dataframe + with when("+dataframe"): + # +dataframe stopped requiring numpy from 2023.8.0:, but now requires dask[array] + # see the conflict() at the top of package that ensures +dataframe +array + depends_on("py-numpy@1.21.0:", when="@2023.4.0:2023.7.0") + depends_on("py-numpy@1.18.0:", when="@2022.10.2:") + depends_on("py-numpy@1.16.0:", when="@2021.3.1:") + depends_on("py-numpy@1.15.1:", when="@2020.12.0:") + # https://github.com/dask/dask/issues/11066 + depends_on("py-numpy@:1", when="@:2023.4.0") + + depends_on("py-pandas@2.0:", when="@2024.7.1:") + depends_on("py-pandas@1.3:", when="@2023.4.0:") + depends_on("py-pandas@1.0:", when="@2022.10.2:") + depends_on("py-pandas@0.25.0:", when="@2020.12.0:") + + # https://github.com/dask/dask/issues/10164 + depends_on("py-pandas@:1", when="@:2023.1") + + # starting with 2025.7 needs py-arrow + depends_on("py-pyarrow@16.0:", when="@2026.1.0:") + depends_on("py-pyarrow@14.0.1:", when="@2025.1.0:2025") + with when("@2025.1.0:"): + depends_on("arrow+parquet") + + # The dependency on py-toolz is non-optional starting version 2021.3.1 + depends_on("py-toolz@0.8.2:", when="@:2021.3.0") + # The dependency on py-partd is non-optional starting version 2021.3.1 + depends_on("py-partd@0.3.10:", when="@:2021.3.0") + # The dependency on py-fsspec is non-optional starting version 2021.3.1 + depends_on("py-fsspec@0.6.0:", when="@:2021.3.0") + # Starting with version 2024.3.0, dataframe requires a separate package py-dask-expr + depends_on("py-dask-expr@1.1", when="@2024.7.1") + + # Requirements for dask.distributed + with when("+distributed"): + depends_on("py-distributed@2026.3.0:", when="@2026.3.0") + depends_on("py-distributed@2025.7.0", when="@2025.7.0") + depends_on("py-distributed@2025.3.0", when="@2025.3.0") + depends_on("py-distributed@2024.7.1", when="@2024.7.1") + depends_on("py-distributed@2024.12.1", when="@2024.12.1") + depends_on("py-distributed@2023.4.1", when="@2023.4.1") + depends_on("py-distributed@2022.10.2", when="@2022.10.2") + depends_on("py-distributed@2021.6.2", when="@2021.6.2") + depends_on("py-distributed@2020.12.0:2021.8.0", when="@:2021.6.1") + + # Requirements for dask.diagnostics + with when("+diagnostics"): + depends_on("py-bokeh@3.1.0:", when="@2024.9.0:") + depends_on("py-bokeh@2.4.2:2", when="@2022.10.2:2023.3") + depends_on("py-bokeh@2.4.2:", when="@2023.4.0:") + depends_on("py-bokeh@1.0.0:1,2.0.1:") + + depends_on("py-jinja2@2.10.3:", when="@2023.4.0:") + depends_on("py-jinja2", when="@2022.10.2:") + + with when("+delayed"): + # Requirements for dask.delayed + # The dependency on py-cloudpickle is non-optional starting version 2021.3.1 + depends_on("py-cloudpickle@0.2.2:", when="@:2021.3.0") + # The dependency on py-toolz is non-optional starting version 2021.3.1 + depends_on("py-toolz@0.8.2:", when="@:2021.3.0") + + # https://github.com/dask/dask/pull/11035 + patch("dask_dataframe_accessor.patch", when="@:2024.1.0 ^python@3.11.9:3.11") @property def import_modules(self): diff --git a/repos/spack_repo/builtin/packages/py_dask_awkward/package.py b/repos/spack_repo/builtin/packages/py_dask_awkward/package.py new file mode 100644 index 00000000000..8615f3d22c9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_dask_awkward/package.py @@ -0,0 +1,37 @@ +# 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 PyDaskAwkward(PythonPackage): + """Connecting awkward-array and Dask.""" + + homepage = "https://github.com/dask-contrib/dask-awkward" + pypi = "dask_awkward/dask_awkward-2025.5.0.tar.gz" + + maintainers("wdconinc") + + license("BSD-3-Clause", checked_by="wdconinc") + + version("2025.9.0", sha256="46712213abc0546bfd1941c4137ded185ade669a96ec6d0b6a2061219e802269") + version("2025.5.0", sha256="2e6e71562055b9b7eadaab5e66b23a78d23274487ebf38669bfd82e7346f3659") + version("2024.12.2", sha256="13c5ef32c5489e9e32e9f9163eb13e045f722ed6ed0f17ce1e07f892fc77a547") + + variant("io", default=False, description="Add support for IO") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("python@3.9:", type=("build", "run"), when="@2025.3.0:") + + depends_on("py-hatchling@1.8.0:", type="build") + depends_on("py-hatch-vcs", type="build") + + depends_on("py-awkward@2.5.1:", type=("build", "run")) + depends_on("py-dask@2023.04:2025.3", type=("build", "run")) + depends_on("py-cachetools", type=("build", "run")) + depends_on("py-typing-extensions@4.8.0:", type=("build", "run")) + + depends_on("py-pyarrow", type=("build", "run"), when="+io") diff --git a/repos/spack_repo/builtin/packages/py_dask_expr/package.py b/repos/spack_repo/builtin/packages/py_dask_expr/package.py index b13be9ef6c1..72b91adea25 100644 --- a/repos/spack_repo/builtin/packages/py_dask_expr/package.py +++ b/repos/spack_repo/builtin/packages/py_dask_expr/package.py @@ -19,12 +19,7 @@ class PyDaskExpr(PythonPackage): depends_on("python@3.10:", type=("build", "run")) depends_on("py-setuptools@62.6:", type="build") - - # Strictly, this should be 0.28. However others in the dask ecosystem - # require 0.29, which makes it fail to concretize. Since Versioneer 0.29 doesn't - # break anything with 0.28, it should be safe to keep this aligned - # https://github.com/python-versioneer/python-versioneer/releases/tag/0.29 - depends_on("py-versioneer@0.28: +toml", type="build") + depends_on("py-versioneer@0.28 +toml", type="build") # Can't do circular run-time dependencies yet? # depends_on("py-dask@2024.7.1", type="run") diff --git a/repos/spack_repo/builtin/packages/py_dask_histogram/package.py b/repos/spack_repo/builtin/packages/py_dask_histogram/package.py new file mode 100644 index 00000000000..9ed11be02e5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_dask_histogram/package.py @@ -0,0 +1,33 @@ +# 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 PyDaskHistogram(PythonPackage): + """Histograms with task scheduling.""" + + homepage = "https://github.com/dask-contrib/dask-histogram" + pypi = "dask_histogram/dask_histogram-2024.3.0.tar.gz" + + maintainers("wdconinc") + + license("BSD-3-Clause", checked_by="wdconinc") + + version("2025.2.0", sha256="ad59f787add2e280ccff409f36b8495d0a782689e6c9797b1d19fd95e3fde067") + version("2024.12.1", sha256="cbb8c660c64eaed5c92d1987e9bad5287487548315befb00140caf90201b1641") + version("2024.9.1", sha256="a3e778b606db4affcc4fc8b6d34f5d99e165ea1691da57f40659032cd79f03e8") + version("2024.3.0", sha256="834d4d25f5e2c417f5e792fafaa55484c20c9f3812d175125de7ac34f994ef7b") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("python@3.9:", type=("build", "run"), when="@2025.2.0:") + + depends_on("py-hatchling@1.8:", type="build") + depends_on("py-hatch-vcs", type="build") + + depends_on("py-boost-histogram@1.3.2:", type=("build", "run")) + depends_on("py-dask@2021.03.0:", type=("build", "run")) + depends_on("py-dask-awkward@2025:", type=("build", "run"), when="@2025.2.0:") diff --git a/repos/spack_repo/builtin/packages/py_dask_jobqueue/package.py b/repos/spack_repo/builtin/packages/py_dask_jobqueue/package.py new file mode 100644 index 00000000000..145f36decbb --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_dask_jobqueue/package.py @@ -0,0 +1,29 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyDaskJobqueue(PythonPackage): + """Dask is a flexible parallel computing library for analytics.""" + + homepage = "https://github.com/dask/dask-jobqueue" + pypi = "dask_jobqueue/dask_jobqueue-0.9.0.tar.gz" + + maintainers("chrismarsh") + + license("BSD-3-Clause") + + version("0.9.0", sha256="494ef64b7bb3848c7d72ed334c288030caca6a09dca54cfaa3f395f4ba7f5c47") + + depends_on("py-setuptools", type="build") + depends_on("py-versioneer", type="build") + + depends_on("python@3.10:", type=("build", "run")) + + # requirements.txt + depends_on("py-dask@2022.2.0:", type=("build", "run")) + depends_on("py-distributed@2022.2.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_dask_ml/package.py b/repos/spack_repo/builtin/packages/py_dask_ml/package.py index 34010564784..3324e0a71dd 100644 --- a/repos/spack_repo/builtin/packages/py_dask_ml/package.py +++ b/repos/spack_repo/builtin/packages/py_dask_ml/package.py @@ -15,52 +15,75 @@ class PyDaskMl(PythonPackage): license("BSD-3-Clause") + version("2025.1.0", sha256="b31caeb5f603f9537ffa34bd247e0e1fcefda7c007631260f8abdee49f89b1e1") version("1.8.0", sha256="8fc4ac3ec1915e382fb8cae9ff1ec9b5ac1bee0b6f4c6975d6e6cb7191a4a815") - variant("docs", default=False, description="Build HTML documentation") + variant("docs", default=False, description="Build HTML documentation", when="@:2024.3.20") variant("xgboost", default=False, description="Deploys XGBoost alongside Dask") + depends_on("python@3.10:", when="@2025.1.0:", type=("build", "run")) depends_on("python@3.6:", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-setuptools-scm", type="build") + depends_on("py-hatchling", when="@2024.4.1:", type="build") + depends_on("py-hatch-vcs", when="@2024.4.1:", type="build") + depends_on("py-setuptools", when="@:2024.3.20", type="build") + depends_on("py-setuptools-scm", when="@:2024.3.20", type="build") + depends_on("gmake", type="build") + depends_on("py-dask+array+dataframe@2025.1.0:", when="@2025.1.0:", type=("build", "run")) depends_on("py-dask+array+dataframe@2.4.0:", type=("build", "run")) + depends_on("py-distributed@2025.1.0:", when="@2025.1.0:", type=("build", "run")) depends_on("py-distributed@2.4.0:", type=("build", "run")) + depends_on("py-numba@0.51:", when="@1.9:", type=("build", "run")) depends_on("py-numba", type=("build", "run")) - depends_on("py-numpy@1.17.3:", type=("build", "run")) + depends_on("py-numpy@1.24:", when="@2025.1.0:", type=("build", "run")) + # np.float removed in numpy@1.24 + depends_on("py-numpy@1.17.3:1.23", when="@1.8.0", type=("build", "run")) + depends_on("py-pandas@2:", when="@2025.1.0:", type=("build", "run")) depends_on("py-pandas@0.24.2:", type=("build", "run")) - depends_on("py-scikit-learn@0.23:", type=("build", "run")) + depends_on("py-scikit-learn@1.6.1:", when="@2025.1.0:", type=("build", "run")) + # if_delegate_has_method() method used in dask-ml@1.8.0 has been removed in scikit-learn@1.3 + # _check_param_grid() method used in dask-ml@1.8.0 has been removed in scikit-lean@1.1 + depends_on("py-scikit-learn@0.23:1.0", when="@1.8.0", type=("build", "run")) depends_on("py-scipy", type=("build", "run")) depends_on("py-dask-glm@0.2.0:", type=("build", "run")) depends_on("py-multipledispatch@0.4.9:", type=("build", "run")) depends_on("py-packaging", type=("build", "run")) - depends_on("py-graphviz", type=("build", "run"), when="+docs") - depends_on("py-heapdict", type=("build", "run"), when="+docs") - depends_on("py-ipykernel", type=("build", "run"), when="+docs") - depends_on("py-ipython", type=("build", "run"), when="+docs") - depends_on("py-nbsphinx", type=("build", "run"), when="+docs") - depends_on("py-nose", type=("build", "run"), when="+docs") - depends_on("py-numpydoc", type=("build", "run"), when="+docs") - depends_on("py-sortedcontainers", type=("build", "run"), when="+docs") - depends_on("py-sphinx", type=("build", "run"), when="+docs") - depends_on("py-sphinx-rtd-theme", type=("build", "run"), when="+docs") - depends_on("py-sphinx-gallery", type=("build", "run"), when="+docs") - depends_on("py-testpath", type=("build", "run"), when="+docs") - depends_on("py-tornado", type=("build", "run"), when="+docs") - depends_on("py-zict", type=("build", "run"), when="+docs") - depends_on("py-dask-sphinx-theme@1.1.0:", type=("build", "run"), when="+docs") - depends_on("py-nbsphinx", type=("build", "run"), when="+docs") + with when("+docs"): + depends_on("py-nbsphinx", type=("build", "run")) + depends_on("py-numpydoc", type=("build", "run")) + depends_on("py-sphinx", type=("build", "run")) + depends_on("py-sphinx-rtd-theme", type=("build", "run")) + depends_on("py-sphinx-gallery", type=("build", "run")) + # Some more dependencies in ci/environment-docs.yaml + depends_on("py-graphviz", type=("build", "run")) + depends_on("py-heapdict", type=("build", "run")) + depends_on("py-ipykernel", type=("build", "run")) + depends_on("py-ipython", type=("build", "run")) + depends_on("py-nose", type=("build", "run")) + depends_on("py-sortedcontainers", type=("build", "run")) + depends_on("py-testpath", type=("build", "run")) + depends_on("py-tornado", type=("build", "run")) + depends_on("py-zict", type=("build", "run")) + depends_on("py-dask-sphinx-theme@1.1.0:", type=("build", "run")) depends_on("py-xgboost+dask", type=("build", "run"), when="+docs") depends_on("py-xgboost+dask", type=("build", "run"), when="+xgboost") - depends_on("gmake", type="build") - patch("xgboost_dependency.patch") + patch("xgboost_dependency_v2024.3.20.patch", when="@2024.3.20:") + patch("xgboost_dependency.patch", when="@:2023.3.24") conflicts("+docs", when="target=aarch64: %gcc") + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/d/dask-ml/dask{0}ml-{1}.tar.gz" + if version > Version("2024.4.3"): + sep = "_" + else: + sep = "-" + return url.format(sep, version) + @run_after("install") def install_docs(self): if "+docs" in self.spec: diff --git a/repos/spack_repo/builtin/packages/py_dask_ml/xgboost_dependency_v2024.3.20.patch b/repos/spack_repo/builtin/packages/py_dask_ml/xgboost_dependency_v2024.3.20.patch new file mode 100644 index 00000000000..9a4a8d1159f --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_dask_ml/xgboost_dependency_v2024.3.20.patch @@ -0,0 +1,10 @@ +diff --git a/dask_ml/xgboost.py b/dask_ml/xgboost.py +index d24009a..0c1f911 100644 +--- a/dask_ml/xgboost.py ++++ b/dask_ml/xgboost.py +@@ -5,4 +5,4 @@ will be setup in distributed mode alongside your existing + ``dask.distributed`` cluster. + """ + +-from dask_xgboost import * # noqa ++from xgboost import * # noqa diff --git a/repos/spack_repo/builtin/packages/py_dask_mpi/package.py b/repos/spack_repo/builtin/packages/py_dask_mpi/package.py index 97bdea341c0..b10404cc4eb 100644 --- a/repos/spack_repo/builtin/packages/py_dask_mpi/package.py +++ b/repos/spack_repo/builtin/packages/py_dask_mpi/package.py @@ -12,11 +12,18 @@ class PyDaskMpi(PythonPackage): homepage = "https://github.com/dask/dask-mpi" pypi = "dask-mpi/dask-mpi-2.21.0.tar.gz" + git = "https://github.com/dask/dask-mpi.git" skip_modules = ["dask_mpi.tests"] license("BSD-3-Clause") + # This is not an official release + # There have been no releases post-2022, c.f., + # https://github.com/dask/dask-mpi/issues/136 + # but various fixes have been implimented so this is + # the most recent main commit as of 2025-09-26 + version("2025.4.0", commit="3d4742e7fca906e265234fb48360990eafe51950") version("2022.4.0", sha256="0a04f1d7d35a06cdff506593330d4414ea242c9172498ce191f5742eac499e17") version("2.21.0", sha256="76e153fc8c58047d898970b33ede0ab1990bd4e69cc130c6627a96f11b12a1a7") version("2.0.0", sha256="774cd2d69e5f7154e1fa133c22498062edd31507ffa2ea19f4ab4d8975c27bc3") @@ -32,3 +39,14 @@ class PyDaskMpi(PythonPackage): # jupyter-server-proxy is not a needed dependency; https://github.com/dask/dask-mpi/pull/102 # this significantly reduces the dependency tree of py-dask-mpi patch("remove-dependency-jupyter-proxy.patch", when="@:2022.4.0") + + # fix for python 3.12+, merged into mainline + # https://github.com/dask/dask-mpi/pull/123 + depends_on("python@:3.11", when="@:2022") + + # https://github.com/dask/dask-mpi/issues/137 + @when("@2025") + def patch(self): + filter_file( + ' python_requires=">=3.6,<3.12",', ' python_requires=">=3.6",', "setup.py" + ) diff --git a/repos/spack_repo/builtin/packages/py_datalad/package.py b/repos/spack_repo/builtin/packages/py_datalad/package.py index 983816e129b..563e324552e 100644 --- a/repos/spack_repo/builtin/packages/py_datalad/package.py +++ b/repos/spack_repo/builtin/packages/py_datalad/package.py @@ -22,6 +22,9 @@ class PyDatalad(PythonPackage): pypi = "datalad/datalad-0.14.6.tar.gz" git = "https://github.com/datalad/datalad.git" + version("1.4.0", sha256="4f663b76eb5ffc560d747c9c4bcfe23e59afc62a0029557dac4f53ceec638833") + version("1.2.3", sha256="48f19d3e4fc7b2725240e6c47d6710f3bc46ad6b42455ff76dd3f6e34226f39f") + version("1.2.1", sha256="4d9f7ffe7a8a7b7eced97ba3d2d2257d527d4218c73ddf7e74eb343cf970d925") version("0.18.4", sha256="d832f3d70b79b7b66519ca30315791a6a265bdf8a86ddac5846489b75385cb09") version("0.18.3", sha256="2da57df609f62a52a6652ade802e8ce0f229d498a5b93b15df2b8c69f8875b6e") version("0.17.5", sha256="a221312c58b0b9b57605cc1a2288838f24932491b2e50475dd7a940151cafccd") @@ -41,88 +44,100 @@ class PyDatalad(PythonPackage): "metadata-extra", when="@:0.17", default=False, description="Enable extra metadata support" ) - depends_on("py-setuptools@40.8.0:", type="build") - # upper bound needed because otherwise the following error occurs: - # 'extras_require' must be a dictionary whose values are strings or lists - # of strings containing valid project/version requirement specifiers. - depends_on("py-setuptools@40.8.0:66", when="@:17", type="build") - - depends_on("git", type=("build", "run")) - depends_on("git-annex", type=("build", "run")) - - # core - depends_on("py-platformdirs", when="@0.16:", type=("build", "run")) - depends_on("py-chardet@3.0.4:", when="@0.18.2:", type=("build", "run")) - depends_on("py-chardet@3.0.4:4", when="@:0.18.1", type=("build", "run")) - depends_on("py-colorama", when="platform=windows", type=("build", "run")) - depends_on("py-distro", when="^python@3.8:", type=("build", "run")) - depends_on("py-importlib-metadata@3.6:", when="@0.16: ^python@:3.9", type=("build", "run")) - depends_on("py-importlib-metadata", when="@:0.15 ^python@:3.7", type=("build", "run")) - depends_on("py-iso8601", type=("build", "run")) - depends_on("py-humanize", type=("build", "run")) - depends_on("py-fasteners@0.14:", type=("build", "run")) - depends_on("py-packaging", when="@0.15.4:", type=("build", "run")) - depends_on("py-patool@1.7:", type=("build", "run")) - depends_on("py-tqdm", type=("build", "run")) - depends_on("py-typing-extensions@4:", when="@0.18.4: ^python@:3.10", type=("build", "run")) - depends_on("py-typing-extensions", when="@0.18.3: ^python@:3.9", type=("build", "run")) - depends_on("py-annexremote", type=("build", "run")) - depends_on("py-looseversion", when="@0.18:", type=("build", "run")) - depends_on("py-appdirs", when="@:0.15", type=("build", "run")) - depends_on("py-wrapt", when="@:0.15", type=("build", "run")) - - # downloaders - depends_on("py-boto", type=("build", "run")) - depends_on("py-keyring@20.0:23.8,23.9.1:", when="@0.16:", type=("build", "run")) - depends_on("py-keyring@8.0:", type=("build", "run")) - depends_on("py-keyrings-alt", type=("build", "run")) - depends_on("py-msgpack", type=("build", "run")) - depends_on("py-requests@1.2:", type=("build", "run")) - - # publish - depends_on("py-python-gitlab", when="@0.14.7:", type=("build", "run")) - depends_on("py-pygithub", when="@:0.16", type=("build", "run")) - depends_on("py-jsmin", when="@:0.14", type=("build", "run")) - - # metadata - with when("@:0.17"): - depends_on("py-simplejson", type=("build", "run")) - depends_on("py-whoosh", type=("build", "run")) - - with when("+downloaders-extra"): - depends_on("py-requests-ftp", type=("build", "run")) - - with when("+misc"): - depends_on("py-argcomplete@1.12.3:", when="@0.16.5:", type=("build", "run")) - depends_on("py-argcomplete", when="@0.14.7:", type=("build", "run")) - depends_on("py-pyperclip", type=("build", "run")) - depends_on("py-python-dateutil", type=("build", "run")) - - with when("+tests"): - depends_on("py-beautifulsoup4", type=("build", "run")) - depends_on("py-httpretty@0.9.4:", type=("build", "run")) - depends_on("py-mypy", when="@0.18.3:", type=("build", "run")) - depends_on("py-mypy@0.900:0", when="@0.17.4:0.18.2", type=("build", "run")) - depends_on("py-pytest", when="@0.17.9:", type=("build", "run")) - depends_on("py-pytest@7", when="@0.17.0:0.17.8", type=("build", "run")) - depends_on("py-pytest-cov", when="@0.17.9:", type=("build", "run")) - depends_on("py-pytest-cov@3", when="@0.17.0:0.17.8", type=("build", "run")) - depends_on("py-pytest-fail-slow@0.2:0", when="@0.17:", type=("build", "run")) - depends_on("py-types-python-dateutil", when="@0.17.4:", type=("build", "run")) - depends_on("py-types-requests", when="@0.17.4:", type=("build", "run")) - depends_on("py-vcrpy", type=("build", "run")) - depends_on("py-nose@1.3.4:", when="@:0.16", type=("build", "run")) - - with when("+duecredit"): - depends_on("py-duecredit", type=("build", "run")) - - # for version @:0.17 - with when("+metadata-extra"): - depends_on("py-pyyaml", type=("build", "run")) - depends_on("py-mutagen@1.36:", type=("build", "run")) - depends_on("py-exifread", type=("build", "run")) - depends_on("py-python-xmp-toolkit", type=("build", "run")) - depends_on("pil", type=("build", "run")) + depends_on("python@3.10:", type=("build", "run"), when="@1.3:") + depends_on("python@3.9:", type=("build", "run"), when="@1.1.4:") + + with default_args(type="build"): + depends_on("py-setuptools@59:", when="@1.1.6:") + depends_on("py-setuptools@40.8.0:") + # upper bound needed because otherwise the following error occurs: + # 'extras_require' must be a dictionary whose values are strings or lists + # of strings containing valid project/version requirement specifiers. + depends_on("py-setuptools@40.8.0:66", when="@:0.17") + + with default_args(type=("build", "run")): + depends_on("git") + depends_on("git-annex") + + # core + depends_on("py-platformdirs", when="@0.16:") + depends_on("py-chardet@3.0.4:", when="@0.18.2:") + depends_on("py-chardet@3.0.4:4", when="@:0.18.1") + depends_on("py-colorama", when="platform=windows") + depends_on("py-distro", when="^python@3.8:") + depends_on("py-iso8601") + depends_on("py-humanize") + depends_on("py-fasteners@0.14:") + depends_on("py-packaging", when="@0.15.4:") + depends_on("py-patool@1.7:") + depends_on("py-tqdm@4.32:", when="@0.19:") + depends_on("py-tqdm") + depends_on("py-typing-extensions@4:", when="@0.18.4: ^python@:3.10") + depends_on("py-typing-extensions", when="@0.18.3: ^python@:3.9") + depends_on("py-annexremote") + depends_on("py-looseversion", when="@0.18:") + + # downloaders + depends_on("py-boto3", when="@1.1:") + depends_on("py-keyring@20.0:23.8,23.9.1:", when="@0.16:") + depends_on("py-keyring@8.0:", when="@:0.15") + depends_on("py-keyrings-alt") + depends_on("py-msgpack") + depends_on("py-requests@1.2:") + + # publish + depends_on("py-python-gitlab", when="@0.14.7:") + + with when("+downloaders-extra"): + depends_on("py-requests-ftp") + + with when("+misc"): + depends_on("py-argcomplete@1.12.3:", when="@0.16.5:") + depends_on("py-argcomplete", when="@0.14.7:") + depends_on("py-psutil", when="@1.4:") + depends_on("py-pyperclip") + depends_on("py-python-dateutil") + + with when("+tests"): + depends_on("py-beautifulsoup4") + depends_on("py-httpretty@0.9.4:") + depends_on("py-mypy", when="@0.18.3:") + depends_on("py-mypy@0.900:0", when="@0.17.4:0.18.2") + depends_on("py-pytest@7:", when="@0.17.9:") + 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-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:") + depends_on("py-types-requests", when="@0.17.4:") + depends_on("py-vcrpy") + depends_on("py-nose@1.3.4:", when="@:0.16") + + with when("+duecredit"): + depends_on("py-duecredit") + + # Historical dependencies + depends_on("py-importlib-metadata@3.6:", when="@0.16:1.2 ^python@:3.9") + depends_on("py-importlib-metadata", when="@:0.15 ^python@:3.7") + depends_on("py-boto", when="@:1.0") + depends_on("py-pygithub", when="@:0.16") + depends_on("py-appdirs", when="@:0.15") + depends_on("py-wrapt", when="@:0.15") + depends_on("py-jsmin", when="@:0.14") + + # metadata + with when("@:0.17"): + depends_on("py-simplejson") + depends_on("py-whoosh") + + # for version @:0.17 + with when("+metadata-extra"): + depends_on("py-pyyaml") + depends_on("py-mutagen@1.36:") + depends_on("py-exifread") + depends_on("py-python-xmp-toolkit") + depends_on("pil") # full # use conflict to avoid to have to maintain the dependencies twice diff --git a/repos/spack_repo/builtin/packages/py_datalad_container/package.py b/repos/spack_repo/builtin/packages/py_datalad_container/package.py index 3b3018f8a81..ecd5e465d4f 100644 --- a/repos/spack_repo/builtin/packages/py_datalad_container/package.py +++ b/repos/spack_repo/builtin/packages/py_datalad_container/package.py @@ -15,12 +15,15 @@ class PyDataladContainer(PythonPackage): license("MIT") + version("1.2.6", sha256="64ec4a92d1d6ef2889d0f1045c44e1441d887e61a49aa79b01e05d82e733a85f") version("1.2.0", sha256="35239a7a00a7fec98828ef78f929d16047349ef0e921c8be9cf933ff845aece6") version("1.1.7", sha256="02574c1d3d1e83c8ef3ab75b6a3523ce5acc870b0b79af12ae433ac140c5cb16") version("1.1.5", sha256="f6099a0124ddb2f021531d5020a583eca3cd9243e4e609b0f58e3f72e779b601") + depends_on("py-setuptools@59:", when="@1.2.6:", type="build") depends_on("py-setuptools@43:", when="@1.1.6:", type="build") depends_on("py-setuptools", type="build") + depends_on("py-tomli", when="@1.2.4:", type="build") depends_on("py-datalad@0.18:", when="@1.1.9:", type=("build", "run")) depends_on("py-datalad@0.13:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_datalad_metadata_model/package.py b/repos/spack_repo/builtin/packages/py_datalad_metadata_model/package.py index 74e6244cb5c..7054ffe6d97 100644 --- a/repos/spack_repo/builtin/packages/py_datalad_metadata_model/package.py +++ b/repos/spack_repo/builtin/packages/py_datalad_metadata_model/package.py @@ -17,6 +17,7 @@ class PyDataladMetadataModel(PythonPackage): license("MIT") + version("0.3.11", sha256="95a113bb0eb5a27bf61b4a0ea6111f7cb01d707c0eba98359d9b8b87fcb078b4") version("0.3.10", sha256="2d113d43fe5c611633e8e2c354e9ddc1224f4f8d7305b2e1fa20cdd7f5deedc4") version("0.3.5", sha256="992241adef6d36ad7f9a83d8c7762d887fbec7111e06a2bd12fd8816e6ee739a") diff --git a/repos/spack_repo/builtin/packages/py_datalad_metalad/package.py b/repos/spack_repo/builtin/packages/py_datalad_metalad/package.py index affd3a86d9d..057179c7bb7 100644 --- a/repos/spack_repo/builtin/packages/py_datalad_metalad/package.py +++ b/repos/spack_repo/builtin/packages/py_datalad_metalad/package.py @@ -15,6 +15,7 @@ class PyDataladMetalad(PythonPackage): license("MIT") + version("0.4.22", sha256="14c48598de4fd23298ac0b326f8d9d1b215fef756d67dd4d173108cedbad1756") version("0.4.17", sha256="8854d5b8bc8387eff27639510f10c3cffe9cd76be018512a5d451be9708242b9") version("0.4.5", sha256="db1a0675e3c67fe2d9093e7098b142534f49588dea5ee048ee962422a9927fbf") version("0.2.1", sha256="70fe423136a168f7630b3e0ff1951e776d61e7d5f36670bddf24299ac0870285") @@ -22,7 +23,6 @@ class PyDataladMetalad(PythonPackage): depends_on("py-setuptools@30.3:", type=("build")) depends_on("py-setuptools", type=("build")) - depends_on("py-six", when="@0.3.1:", type=("build", "run")) depends_on("py-datalad@0.18:", when="@0.4.11:", type=("build", "run")) depends_on("py-datalad@0.15.6:", when="@0.3:", type=("build", "run")) depends_on("py-datalad@0.12.3:", type=("build", "run")) @@ -32,3 +32,6 @@ class PyDataladMetalad(PythonPackage): depends_on("py-pytest", when="@0.4.11:", type=("build", "run")) depends_on("py-pyyaml", when="@0.3.1:", type=("build", "run")) depends_on("git-annex", type=("run")) + + # Historical dependencies + depends_on("py-six", when="@0.3.1:0.4.17", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_datalad_neuroimaging/package.py b/repos/spack_repo/builtin/packages/py_datalad_neuroimaging/package.py index c951f1126f1..7a22c73c90a 100644 --- a/repos/spack_repo/builtin/packages/py_datalad_neuroimaging/package.py +++ b/repos/spack_repo/builtin/packages/py_datalad_neuroimaging/package.py @@ -15,15 +15,20 @@ class PyDataladNeuroimaging(PythonPackage): license("MIT") + version("0.3.7", sha256="a13bfb10c60701d6551dec974e4460828f5c2167cd11c00c216136dc09341383") version("0.3.3", sha256="49a6852e68892e6cd13f245bca2d400abded5ea4fd2a69c9be41c710d0c49bb1") version("0.3.1", sha256="aaf7a3d10e8e7df1d8dee09e485bbe26787f496fb2302ed7ddea55a470a0f96e") + depends_on("python@3.9:", when="@0.3.6:", type=("build", "run")) + + depends_on("py-setuptools@59:", when="@0.3.7:", type="build") depends_on("py-setuptools@43:", when="@0.3.2:", type="build") depends_on("py-setuptools", type="build") depends_on("py-datalad@0.16.7:", when="@0.3.2:", type=("build", "run")) depends_on("py-datalad@0.12:", type=("build", "run")) depends_on("py-datalad-deprecated@0.2.7:", when="@0.3.3:", type=("build", "run")) + depends_on("py-pydicom@2:", when="@0.3.6:", type=("build", "run")) depends_on("py-pydicom", type=("build", "run")) depends_on("py-pybids@0.15.1:", when="@0.3.2:", type=("build", "run")) depends_on("py-pybids@0.9.2:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_dataproperty/package.py b/repos/spack_repo/builtin/packages/py_dataproperty/package.py new file mode 100644 index 00000000000..4c39e192358 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_dataproperty/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyDataproperty(PythonPackage): + """Python library for extract property from data.""" + + homepage = "https://github.com/thombashi/DataProperty" + pypi = "dataproperty/dataproperty-1.1.0.tar.gz" + + license("MIT") + + version("1.1.0", sha256="b038437a4097d1a1c497695c3586ea34bea67fdd35372b9a50f30bf044d77d04") + + with default_args(type="build"): + depends_on("py-setuptools@64:") + depends_on("py-setuptools-scm@8:") + + with default_args(type=("build", "run")): + depends_on("py-mbstrdecoder@1") + depends_on("py-typepy@1.3.2:1+datetime") diff --git a/repos/spack_repo/builtin/packages/py_datasets/package.py b/repos/spack_repo/builtin/packages/py_datasets/package.py index 7b9d4e90ecb..5744d0557cd 100644 --- a/repos/spack_repo/builtin/packages/py_datasets/package.py +++ b/repos/spack_repo/builtin/packages/py_datasets/package.py @@ -28,45 +28,34 @@ class PyDatasets(PythonPackage): depends_on("py-setuptools") with default_args(type=("build", "run")): - depends_on("python@3.6:") + depends_on("py-filelock", when="@2.20:") depends_on("py-numpy@1.17:") + depends_on("py-pyarrow@15:", when="@2.20:") + depends_on("py-pyarrow@6:", when="@2.8") + depends_on("py-pyarrow@1:3", when="@1.8") + depends_on("py-dill@0.3.0:0.3.8", when="@2.20:") + depends_on("py-dill@:0.3.6", when="@:2.8") depends_on("py-pandas") + depends_on("py-requests@2.32.2:", when="@2.20:") depends_on("py-requests@2.19:") + depends_on("py-tqdm@4.66.3:", when="@2.20:") + depends_on("py-tqdm@4.62.1:", when="@2.8") + depends_on("py-tqdm@4.27:4.49", when="@1.8") depends_on("py-xxhash") - depends_on("py-multiprocess@:0.70.16") + depends_on("py-multiprocess@:0.70.16", when="@3.2:") + depends_on("py-multiprocess") + depends_on("py-fsspec@2023.1:2024.9.0+http", when="@3.2:") + depends_on("py-fsspec@2023.1:2024.5.0+http", when="@2.20") + depends_on("py-fsspec@2021.11.1:+http", when="@2.8") + depends_on("py-fsspec", when="@1.8") + depends_on("py-aiohttp", when="@2.8:") + depends_on("py-huggingface-hub@0.23:", when="@3.2:") + depends_on("py-huggingface-hub@0.21.2:", when="@2.20") + depends_on("py-huggingface-hub@0.2:0", when="@2.8") + depends_on("py-huggingface-hub@0.0", when="@1.8") depends_on("py-packaging") - with when("@:1.8.0"): - depends_on("py-dill@:0.3.6") - depends_on("py-fsspec", when="^python@3.8:") - depends_on("py-fsspec@:0.8.0", when="^python@:3.7") - depends_on("py-huggingface-hub@:0.0") - depends_on("py-importlib-metadata", when="^python@:3.7") - depends_on("py-pyarrow@1:3") - depends_on("arrow+parquet") - depends_on("py-tqdm@4.27:4.49") - with when("@2.8.0"): - depends_on("py-responses@:0.18") - with when("@2.8.0:"): - depends_on("py-aiohttp") - depends_on("py-pyyaml@5.1:") - depends_on("py-dill@:0.3.6") - depends_on("py-fsspec@2021.11.1:+http") - depends_on("py-huggingface-hub@0.2:0") - depends_on("py-pyarrow@6:") - depends_on("arrow+parquet") - depends_on("py-tqdm@4.62.1:") - depends_on("python@3.7:") - with when("@2.20.0:"): - depends_on("py-filelock") - depends_on("py-dill@0.3.0:0.3.8") # temporary upper bound - depends_on("py-fsspec@2023.1.0:2024.5.0+http") - depends_on("py-huggingface-hub@0.21.2:") - depends_on("py-pyarrow@15:") - depends_on("arrow+parquet+dataset") - depends_on("py-requests@2.32.2:") - depends_on("py-tqdm@4.66.3:") - depends_on("python@3.8:") - with when("@3.2.0:"): - depends_on("py-huggingface-hub@0.23.0:") - depends_on("py-fsspec@2023.1.0:2024.9.0+http") - depends_on("python@3.9:") + depends_on("py-pyyaml@5.1:", when="@2.8:") + + # Historical dependencies + # depends_on("py-pyarrow-hotfix", when="@2.20") # only for pyarrow < 14.0.1 + depends_on("py-responses@:0.18", when="@2.8") diff --git a/repos/spack_repo/builtin/packages/py_datashader/package.py b/repos/spack_repo/builtin/packages/py_datashader/package.py index 7312227128c..c1e23e1d2fb 100644 --- a/repos/spack_repo/builtin/packages/py_datashader/package.py +++ b/repos/spack_repo/builtin/packages/py_datashader/package.py @@ -17,24 +17,32 @@ class PyDatashader(PythonPackage): license("BSD-3-Clause", checked_by="climbfuji") + version("0.18.2", sha256="53ef0bc35b9ba1034bdf290a2e28babf0fa2b075a3e5a822c79dcde12183d1ff") + version("0.18.1", sha256="ad9390a9178eb03493fb67649f6570d59ccb371cf663533e0672a1826bb436b0") version("0.16.3", sha256="9d0040c7887f7a5a5edd374c297402fd208a62bf6845e87631b54f03b9ae479d") # pyproject.toml depends_on("python@3.9:", type=("build", "run")) - depends_on("py-pyct", type=("build", "run")) + depends_on("python@3.10:", type=("build", "run"), when="@0.18.1:") + depends_on("py-hatchling", type="build") depends_on("py-hatch-vcs", type="build") + depends_on("py-param", type=("build", "run")) + depends_on("py-pyct", type=("build", "run")) depends_on("py-colorcet", type="run") - depends_on("py-dask", type="run") depends_on("py-multipledispatch", type="run") depends_on("py-numba", type="run") depends_on("py-numpy", type="run") - depends_on("py-packaging", type="run") depends_on("py-pandas", type="run") depends_on("py-pillow", type="run") depends_on("py-requests", type="run") depends_on("py-scipy", type="run") depends_on("py-toolz", type="run") + depends_on("py-packaging", type="run") depends_on("py-xarray", type="run") + depends_on("py-dask", type="run") + + # https://github.com/holoviz/hvplot/issues/1471 + depends_on("py-dask@2025.1:", type="run", when="@0.17:") diff --git a/repos/spack_repo/builtin/packages/py_datatrove/package.py b/repos/spack_repo/builtin/packages/py_datatrove/package.py new file mode 100644 index 00000000000..b9c1a46705c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_datatrove/package.py @@ -0,0 +1,61 @@ +# 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 PyDatatrove(PythonPackage): + """Data processing and machine learning toolkit from Hugging Face.""" + + homepage = "https://github.com/huggingface/datatrove" + pypi = "datatrove/datatrove-0.4.0.tar.gz" + + maintainers("thomas-bouvier") + + license("Apache-2.0") + + version("0.5.0", sha256="b1fb13324e86126dace2de2dcaa7aeab53facfc1628f5f6e0ecf5789c78649ad") + version("0.4.0", sha256="c29a873a12ed8d3b089d9adbc80078db3ec45de94ca9e9bf851e0a5c5ce474c3") + + variant("io", default=True, description="Enable IO features") + variant("processing", default=True, description="Enable advanced processing features") + + # Python version requirement + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-setuptools", type="build") + + depends_on("py-dill@0.3.0:", type=("build", "run")) + depends_on("py-fsspec@2023.12.2:", type=("build", "run")) + depends_on("py-huggingface-hub@0.17.0:", type=("build", "run")) + depends_on("py-humanize", type=("build", "run")) + depends_on("py-loguru@0.7.0:", type=("build", "run")) + depends_on("py-multiprocess", type=("build", "run")) + depends_on("py-numpy@2:", type=("build", "run")) + depends_on("py-tqdm", type=("build", "run")) + depends_on("py-rich", type=("build", "run")) + + with when("+io"): + depends_on("py-faust-cchardet", type=("build", "run")) + depends_on("py-pyarrow", type=("build", "run")) + depends_on("py-python-magic", type=("build", "run")) + depends_on("py-warcio", type=("build", "run")) + depends_on("py-datasets@3.1.0:", type=("build", "run")) + depends_on("py-orjson", type=("build", "run")) + depends_on("py-zstandard", type=("build", "run")) + + with when("+processing"): + depends_on("py-fasttext-numpy2-wheel", type=("build", "run")) + depends_on("py-nltk", type=("build", "run")) + depends_on("py-inscriptis", type=("build", "run")) + depends_on("py-tldextract", type=("build", "run")) + depends_on("py-trafilatura@1.8.0:1.11", type=("build", "run")) + depends_on("py-tokenizers", type=("build", "run")) + depends_on("py-ftfy", type=("build", "run")) + depends_on("py-fasteners", type=("build", "run")) + depends_on("py-regex", type=("build", "run")) + depends_on("py-xxhash", type=("build", "run")) + depends_on("kenlm +python", type=("build", "run")) + depends_on("py-pyahocorasick", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_dateparser/package.py b/repos/spack_repo/builtin/packages/py_dateparser/package.py index 7dc54404a9d..916eb071914 100644 --- a/repos/spack_repo/builtin/packages/py_dateparser/package.py +++ b/repos/spack_repo/builtin/packages/py_dateparser/package.py @@ -15,15 +15,22 @@ class PyDateparser(PythonPackage): license("BSD-3-Clause") + version("1.2.1", sha256="7e4919aeb48481dbfc01ac9683c8e20bfe95bb715a38c1e9f6af889f4f30ccc3") version("0.7.2", sha256="e1eac8ef28de69a554d5fcdb60b172d526d61924b1a40afbbb08df459a36006b") variant("calendars", default=True, description="Add calendar libraries") - depends_on("python@2.7:2.8,3.5:", type=("build", "run")) + depends_on("python@3.8:", when="@1.2.1:", type=("build", "run")) + depends_on("python@2.7:2.8,3.5:", when="@0.7.2", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-python-dateutil@2.7.5:", type=("build", "run")) + depends_on("py-python-dateutil@2.7:", when="@1.2.1:", type=("build", "run")) + depends_on("py-python-dateutil", type=("build", "run")) + depends_on("py-pytz@2024.2:", when="@1.2.1:", type=("build", "run")) depends_on("py-pytz", type=("build", "run")) + depends_on("py-regex@2015.06.24:", when="@1.2.1:", type=("build", "run")) + conflicts("^py-regex@2019.02.19,2021.8.27") depends_on("py-regex", type=("build", "run")) + depends_on("py-tzlocal@0.2:", when="@1.2.1:", type=("build", "run")) depends_on("py-tzlocal", type=("build", "run")) depends_on("py-umalqurra", type=("build", "run"), when="+calendars") depends_on("py-ruamel-yaml", type=("build", "run"), when="+calendars") diff --git a/repos/spack_repo/builtin/packages/py_dbf/package.py b/repos/spack_repo/builtin/packages/py_dbf/package.py index 7c373872018..5b0d7c1bfe5 100644 --- a/repos/spack_repo/builtin/packages/py_dbf/package.py +++ b/repos/spack_repo/builtin/packages/py_dbf/package.py @@ -13,6 +13,7 @@ class PyDbf(PythonPackage): pypi = "dbf/dbf-0.96.005.tar.gz" + version("0.99.11", sha256="2169c05252c0efbe897f346f0683326ec25854beab1d0c6430df6e903a57b315") version("0.99.3", sha256="940272a72ac27d16a1db69aafef820684012cc3553ffe9875d5cd2e3a9cb69dc") version("0.97.11", sha256="8aa5a73d8b140aa3c511a3b5b204a67d391962e90c66b380dd048fcae6ddbb68") version("0.96.005", sha256="d6e03f1dca40488c37cf38be9cb28b694c46cec747a064dcb0591987de58ed02") diff --git a/repos/spack_repo/builtin/packages/py_dcm2bids/package.py b/repos/spack_repo/builtin/packages/py_dcm2bids/package.py index 849a894f56c..a8931628774 100644 --- a/repos/spack_repo/builtin/packages/py_dcm2bids/package.py +++ b/repos/spack_repo/builtin/packages/py_dcm2bids/package.py @@ -16,10 +16,11 @@ class PyDcm2bids(PythonPackage): license("GPL-3.0-only") + version("3.2.0", sha256="f04a6d0fea604901fc71495a91bf78f4acd9cf5d4d9af1d3b51ba47616c02407") version("3.1.0", sha256="53a8a177d556df897e19d72bd517fdae0245927a8938bb9fbbd51f9f33f54f84") version("2.1.9", sha256="d962bd0a7f1ed200ecb699e8ddb29ff58f09ab2f850a7f37511b79c62189f715") - depends_on("python@3.8:", when="@3:", type=("build", "run")) + depends_on("python@3.7:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-packaging@23.1:", when="@3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_dcmstack/package.py b/repos/spack_repo/builtin/packages/py_dcmstack/package.py new file mode 100644 index 00000000000..5f556b36811 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_dcmstack/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 PyDcmstack(PythonPackage): + """Stack DICOM images into volumes and convert to Nifti.""" + + homepage = "https://github.com/moloney/dcmstack" + pypi = "dcmstack/dcmstack-0.9.0.tar.gz" + + license("MIT") + + version("0.9.0", sha256="9e131226fb00cdc72f5c2ad61f82b37020d3f97f272d1becb880168bd4504860") + + depends_on("python@3.8:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-setuptools") + + # from src/dcmstack/info.py + with default_args(type=("build", "run")): + depends_on("py-pydicom@0.9.7:") + depends_on("py-nibabel@2.5.1:") + depends_on("py-pylibjpeg-libjpeg", when="^python@3.7:") diff --git a/repos/spack_repo/builtin/packages/py_debugpy/package.py b/repos/spack_repo/builtin/packages/py_debugpy/package.py index a27a7d80ce9..18df85c6670 100644 --- a/repos/spack_repo/builtin/packages/py_debugpy/package.py +++ b/repos/spack_repo/builtin/packages/py_debugpy/package.py @@ -11,13 +11,15 @@ class PyDebugpy(PythonPackage): """An implementation of the Debug Adapter Protocol for Python.""" homepage = "https://github.com/microsoft/debugpy/" - pypi = "debugpy/debugpy-1.4.1.zip" + pypi = "debugpy/debugpy-1.8.15.tar.gz" # 'debugpy._vendored' requires additional dependencies, Windows-specific skip_modules = ["debugpy._vendored"] license("MIT") + version("1.8.20", sha256="55bc8701714969f1ab89a6d5f2f3d40c36f91b2cbe2f65d98bf8196f6a6a2c33") + version("1.8.15", sha256="58d7a20b7773ab5ee6bdfb2e6cf622fdf1e40c9d5aef2857d85391526719ac00") version("1.6.7", sha256="c4c2f0810fa25323abfdfa36cbbbb24e5c3b1a42cb762782de64439c575d67f2") version("1.6.6", sha256="b9c2130e1c632540fbf9c2c88341493797ddf58016e7cba02e311de9b0a96b67") version("1.6.3", sha256="e8922090514a890eec99cfb991bab872dd2e353ebb793164d5f01c362b9a40bf") @@ -25,3 +27,10 @@ class PyDebugpy(PythonPackage): version("1.4.1", sha256="889316de0b8ff3732927cb058cfbd3371e4cd0002ecc170d34c755ad289c867c") depends_on("py-setuptools", type="build") + + def url_for_version(self, version): + if version >= Version("1.8.10"): + extention = "tar.gz" + else: + extention = "zip" + return f"https://files.pythonhosted.org/packages/source/t/types-setuptools/debugpy-{version}.{extention}" diff --git a/repos/spack_repo/builtin/packages/py_decorator/package.py b/repos/spack_repo/builtin/packages/py_decorator/package.py index 0a39d928821..d5fc95b04a3 100644 --- a/repos/spack_repo/builtin/packages/py_decorator/package.py +++ b/repos/spack_repo/builtin/packages/py_decorator/package.py @@ -17,6 +17,7 @@ class PyDecorator(PythonPackage): license("BSD-2-Clause") + version("5.2.1", sha256="65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360") version("5.1.1", sha256="637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330") version("5.1.0", sha256="e59913af105b9860aa2c8d3272d9de5a56a4e608db9a2f167a8480b323d529a7") version("5.0.9", sha256="72ecfba4320a893c53f9706bebb2d55c270c1e51a28789361aa93e4a21319ed5") @@ -26,6 +27,10 @@ class PyDecorator(PythonPackage): version("4.3.0", sha256="c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c") version("4.0.9", sha256="90022e83316363788a55352fe39cfbed357aa3a71d90e5f2803a35471de4bba8") + depends_on("python@3.8:", when="@5.2:", type=("build", "run")) depends_on("python@3.5:", when="@5.0.1:", type=("build", "run")) depends_on("python@2.6:2.8,3.2:", type=("build", "run")) + + # uses pyproject.toml only + depends_on("py-setuptools@61:", when="@5.2.1:", type="build") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_deephyper/package.py b/repos/spack_repo/builtin/packages/py_deephyper/package.py index eec44020ba7..17573bb4bbb 100644 --- a/repos/spack_repo/builtin/packages/py_deephyper/package.py +++ b/repos/spack_repo/builtin/packages/py_deephyper/package.py @@ -2,7 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack_repo.builtin.build_systems.python import PythonPackage from spack.package import * @@ -25,87 +24,59 @@ class PyDeephyper(PythonPackage): # Versions version("master", branch="master") version("develop", branch="develop") + version("0.13.2", sha256="4adef43881de0aa3df8427793cad6714ecc7bf0fde0f5a572a376f3dc793ff3d") version("0.9.3", sha256="e28f9f6ca596edee7fa73f7377ca17ddab99ac4b3c7f15db27cb6e786f770f23") version("0.8.1", sha256="ac27edd62ff81fcfb9b0b49f44963dadd8338be687f8f616d4cbdd6f5c68e511") # Variants for machine learning features - # exists upstream, disabled in Spack due to missing dependencies, contributions welcome # variant("jax-cpu", default=False, description="Build with JAX dependencies") variant("torch", default=False, description="Build with PyTorch dependencies") # Variants for storage/parallel backends variant("mpi", default=False, description="Build with MPI dependencies") variant("ray", default=False, description="Build with Ray dependencies") - # exists upstream, disabled in Spack due to missing dependencies, contributions welcome - # variant("redis", default=False, description="Build with Redis dependencies") + variant("redis", default=False, description="Build with Redis dependencies") # Variants for developers variant("dev", default=False, description="Build with dev dependencies") - with default_args(deprecated=True): - version("0.6.0", sha256="cda2dd7c74bdca4203d9cd637c4f441595f77bae6d77ef8e4a056b005357de34") - version("0.4.2", sha256="ee1811a22b08eff3c9098f63fbbb37f7c8703e2f878f2bdf2ec35a978512867f") - # Build backend with default_args(type="build"): - depends_on("py-hatchling@1.25:", when="@master") - depends_on("py-hatchling@1.25:", when="@develop") depends_on("py-hatchling@1.25:", when="@0.9:") - - depends_on("py-setuptools@42:", when="@0.8:") - depends_on("py-setuptools@42:", when="@0.6.0") - depends_on("py-setuptools@40:49.1", when="@:0.6") - - depends_on("py-cython@0.29.24:", when="@0.8:") - depends_on("py-cython@0.29.24:", when="@0.6.0") - depends_on("py-cython@0.29.24:2", when="@0.4.2") - - depends_on("py-wheel@0.36.2", when="@:0.6") + depends_on("py-setuptools@42:", when="@0.8.1") + depends_on("py-cython@0.29.24:", when="@0.8.1") # Python versions with default_args(type=("build", "run")): depends_on("python@3.10:", when="@0.9:") depends_on("python@3.9:", when="@0.8:") - depends_on("python@3.7:3.11", when="@0.6.0") - depends_on("python@3.7:3.9", when="@0.4.2") # Dependencies from setup/toml files with default_args(type=("build", "run")): - depends_on("py-alive-progress@3.2.0:", when="@0.8:") + depends_on("py-alive-progress@3.2.0:", when="@0.8:0.9") depends_on("py-configspace@1.1.1:", when="@0.8:") depends_on("py-configspace@0.4.20:") depends_on("py-cloudpickle", when="@0.9.3:") - depends_on("py-dm-tree") + depends_on("py-dm-tree", when="@0.8:0.9.3") depends_on("py-jinja2@3.1.4:", when="@0.8:") - depends_on("py-jinja2@:3.1", when="@0.6.0") - depends_on("py-jinja2@:3.0", when="@0.4.2") depends_on("py-loky@3.4:", when="@0.9.3:") - depends_on("py-matplotlib") + depends_on("py-matplotlib", when="@0.8:") depends_on("py-numpy@1.26.0:", when="@0.8:") - depends_on("py-numpy@1.20:", when="@0.6.0") - depends_on("py-numpy") - depends_on("openssl@3.4.0:", when="@0.8:") - depends_on("py-pandas@0.24.2:") - depends_on("py-packaging@20.5:", when="@0.6.0 target=aarch64: platform=darwin") - depends_on("py-packaging") + depends_on("openssl@3.4.0:", when="@0.8:0.9") + depends_on("py-pandas@0.24.2:", when="@0.8:") + depends_on("py-packaging", when="@0.8:") depends_on("py-parse", when="@0.8:") depends_on("py-psutil", when="@0.8:") depends_on("py-pymoo@0.6:", when="@0.8:") depends_on("py-pyyaml", when="@0.8:") - depends_on("py-scikit-learn@0.23.1:") + depends_on("py-scikit-learn@0.23.1:", when="@0.8:") depends_on("py-scipy@1.10:", when="@0.8:") - depends_on("py-scipy@1.7:", when="@0.6.0") - depends_on("py-scipy@0.19.1:") - depends_on("py-tqdm@4.64.0:") - depends_on("py-psutil", when="@0.8:") - depends_on("py-pymoo@0.6:", when="@0.8:") - depends_on("py-pyyaml") - depends_on("py-tinydb", when="@0.4.2") + depends_on("py-tqdm@4.64.0:", when="@0.8:") with when("+dev"), default_args(type=("build", "run")): depends_on("py-pytest") - # # Jax for GPU is not currently available on Spack + # Jax for GPU is not currently available on Spack # with when("+jax-cpu"), default_args(type=("build", "run")): # depends_on("py-jax@0.4.3:", when="@0.8:") # depends_on("py-numpyro@0.15.3:", when="@0.8:") @@ -115,10 +86,11 @@ class PyDeephyper(PythonPackage): with when("+mpi"), default_args(type=("build", "run")): depends_on("py-mpi4py@3:", when="@0.8:") + depends_on("py-mpi4py@3.1.3:", when="@0.13.2:") with when("+ray"), default_args(type=("build", "run")): depends_on("py-ray", when="@0.8:") + depends_on("py-ray@1.3.0:", when="@0.13.2:") - # with when("+redis"), default_args(type=("build", "run")): - # depends_on("py-redis") - # depends_on("redisjson") + with when("+redis"), default_args(type=("build", "run")): + depends_on("py-redis") diff --git a/repos/spack_repo/builtin/packages/py_deepmerge/package.py b/repos/spack_repo/builtin/packages/py_deepmerge/package.py new file mode 100644 index 00000000000..02666abbc48 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_deepmerge/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 PyDeepmerge(PythonPackage): + """A tool to handle merging of nested data structures in Python.""" + + homepage = "https://deepmerge.readthedocs.io/en/latest/" + pypi = "deepmerge/deepmerge-2.0.tar.gz" + + license("MIT", checked_by="abhishek1297") + + version("2.0", sha256="5c3d86081fbebd04dd5de03626a0607b809a98fb6ccba5770b62466fe940ff20") + + depends_on("py-setuptools@69:", type="build") + depends_on("py-setuptools-scm@8:", type="build") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-typing-extensions", when="^python@:3.9", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_deepsig/package.py b/repos/spack_repo/builtin/packages/py_deepsig/package.py deleted file mode 100644 index 3efe3d858bd..00000000000 --- a/repos/spack_repo/builtin/packages/py_deepsig/package.py +++ /dev/null @@ -1,33 +0,0 @@ -# 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 PyDeepsig(PythonPackage): - """deep-significance: Easy and Better Significance Testing for Deep Neural - Networks""" - - homepage = "https://github.com/Kaleidophon/deep-significance" - pypi = "deepsig/deepsig-1.2.1.tar.gz" - - with default_args(deprecated=True): - version("1.2.1", sha256="8543630c00264898116a065f6461c131d026ef75d8703bc631a4fd2bafb31f89") - - with default_args(type="build"): - depends_on("py-setuptools", type="build") - - with default_args(type=("build", "run")): - depends_on("python@3.5.3:") - depends_on("py-numpy@1.19.5") - depends_on("py-scipy@1.6.0") - depends_on("py-tqdm@4.59.0") - depends_on("py-joblib@1.0.1") - depends_on("py-pandas@1.3.3") - depends_on("py-dill@0.3.4") - - def patch(self): - filter_file("README_RAW.md", "README.md", "setup.py", string=True) diff --git a/repos/spack_repo/builtin/packages/py_deepsig_biocomp/package.py b/repos/spack_repo/builtin/packages/py_deepsig_biocomp/package.py index 435c40c0d48..3eeffbdf34c 100644 --- a/repos/spack_repo/builtin/packages/py_deepsig_biocomp/package.py +++ b/repos/spack_repo/builtin/packages/py_deepsig_biocomp/package.py @@ -31,7 +31,7 @@ class PyDeepsigBiocomp(PythonPackage): def create_share_folder(self): share_dir = join_path(self.prefix, "share", "deepsig") mkdirp(share_dir) - mv = which("mv") + mv = which("mv", required=True) for d in ("models", "tools"): mv(d, share_dir) diff --git a/repos/spack_repo/builtin/packages/py_deepspeed/package.py b/repos/spack_repo/builtin/packages/py_deepspeed/package.py index fca22f707f5..be8bf12607b 100644 --- a/repos/spack_repo/builtin/packages/py_deepspeed/package.py +++ b/repos/spack_repo/builtin/packages/py_deepspeed/package.py @@ -20,6 +20,10 @@ class PyDeepspeed(PythonPackage): license("Apache-2.0") + version("0.16.4", sha256="495febfb6dd20423f44b1c4a1bb6da2cadbcaf9b07962e17f87d52edfeec9bba") + version("0.15.4", sha256="60e7c044b7fc386cdad1206212d22b6963ea551f656ed51f7cb34b299459bf2c") + version("0.13.5", sha256="05404e083b5df36dcfe36884565dcb1d9fd1165e443a82c1c09370293943f6d1") + version("0.13.0", sha256="e890adca061af36c775b40252306191c3029f0b8bd33cceefa9fa7ecbf350a05") version("0.10.0", sha256="afb06a97fde2a33d0cbd60a8357a70087c037b9f647ca48377728330c35eff3e") depends_on("cxx", type="build") # generated @@ -31,7 +35,8 @@ class PyDeepspeed(PythonPackage): depends_on("py-packaging@20:", type=("build", "run")) depends_on("py-psutil", type=("build", "run")) depends_on("py-py-cpuinfo", type=("build", "run")) - depends_on("py-pydantic@:1", type=("build", "run")) + depends_on("py-pydantic@2:", type=("build", "run"), when="@0.15.4:") + depends_on("py-pydantic@:1", type=("build", "run"), when="@:0.13") # https://github.com/microsoft/DeepSpeed/issues/2830 depends_on("py-torch+distributed", type=("build", "run")) depends_on("py-tqdm", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_deisa/package.py b/repos/spack_repo/builtin/packages/py_deisa/package.py new file mode 100644 index 00000000000..c525a8e3779 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_deisa/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 PyDeisa(PythonPackage): + """Deisa common library. Contains the definition of a common interface that may be + used with Dask and Ray.""" + + 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", 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 new file mode 100644 index 00000000000..0d38a7aac34 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_deisa_core/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 PyDeisaCore(PythonPackage): + """Core Deisa tools and utilities.""" + + 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 new file mode 100644 index 00000000000..17e2fc8e38c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_deisa_dask/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 PyDeisaDask(PythonPackage): + """Deisa: Dask-Enabled In Situ Analytics.""" + + 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", "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_derivative/package.py b/repos/spack_repo/builtin/packages/py_derivative/package.py new file mode 100644 index 00000000000..cc44d645054 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_derivative/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 PyDerivative(PythonPackage): + """Numerical differentiation in python.""" + + homepage = "https://github.com/andgoldschmidt/derivative" + pypi = "derivative/derivative-0.6.3.tar.gz" + + maintainers("LydDeb") + + license("MIT", checked_by="LydDeb") + + version("0.6.3", sha256="72e7fd56e92665f939b5449c4b9ceea88fdf02eda7378cf0a3e961ab0df58181") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-poetry-core@1.1.0:", type="build") + depends_on("py-numpy@1.18.3:", type=("build", "run")) + depends_on("py-scipy@1.4.1:", type=("build", "run")) + depends_on("py-scikit-learn@1", type=("build", "run")) + depends_on("py-importlib-metadata@7.1.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_dh_scikit_optimize/package.py b/repos/spack_repo/builtin/packages/py_dh_scikit_optimize/package.py index bfbec1e572b..08f06b19fb5 100644 --- a/repos/spack_repo/builtin/packages/py_dh_scikit_optimize/package.py +++ b/repos/spack_repo/builtin/packages/py_dh_scikit_optimize/package.py @@ -24,6 +24,7 @@ class PyDhScikitOptimize(PythonPackage): license("BSD-3-Clause") + version("0.9.6", sha256="53c2985ff1684e367fd4c14e199125cb34cbc0675f69769fc767ee22e4dceaf1") version("0.9.5", sha256="c2777839a536215ab40fc5db2242809ccffd5e5b23718e23d58ea76ff35a7543") version("0.9.4", sha256="9acfba4077fe45f3854a4af255763a3e8a396c05bd2a7c761a969171366b3840") version("0.9.3", sha256="0c922c61dc1f010c7bbd2f0930c766e8ae040c35b129e4de6d51b611fd72b7c9") diff --git a/repos/spack_repo/builtin/packages/py_diagnostic/package.py b/repos/spack_repo/builtin/packages/py_diagnostic/package.py new file mode 100644 index 00000000000..9c262bf9f61 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_diagnostic/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 PyDiagnostic(PythonPackage): + """Present errors that contain causes better understand what happened.""" + + homepage = "https://github.com/pradyunsg/diagnostic" + pypi = "diagnostic/diagnostic-3.0.0.tar.gz" + + license("MIT") + + version("3.0.0", sha256="5c80d7f77706dca775cc85d7b0492e4e96385dade2103052cf06cf6ab105b855") + + depends_on("py-flit-core@3.2:3", type="build") + + with default_args(type=("build", "run")): + depends_on("py-rich") + depends_on("py-markdown-it-py") + depends_on("py-docutils") diff --git a/repos/spack_repo/builtin/packages/py_dill/package.py b/repos/spack_repo/builtin/packages/py_dill/package.py index 1d5f6eecc79..980ec7ef4ab 100644 --- a/repos/spack_repo/builtin/packages/py_dill/package.py +++ b/repos/spack_repo/builtin/packages/py_dill/package.py @@ -15,6 +15,7 @@ class PyDill(PythonPackage): license("BSD-3-Clause") + version("0.4.1", sha256="423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa") version("0.3.9", sha256="81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c") version("0.3.8", sha256="3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca") version("0.3.7", sha256="cc1c8b182eb3013e24bd475ff2e9295af86c1a38eb1aff128dac8962a9ce3c03") @@ -35,6 +36,7 @@ class PyDill(PythonPackage): depends_on("python@3.7:", when="@0.3.6:", type=("build", "run")) depends_on("python@3.8:", when="@0.3.8:", type=("build", "run")) + depends_on("python@3.9:", when="@0.4.1:", type=("build", "run")) depends_on("py-setuptools@42:", when="@0.3.5.1:", type="build") depends_on("py-setuptools@0.6:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_diskcache/package.py b/repos/spack_repo/builtin/packages/py_diskcache/package.py index 31c5cba1f47..ee7b3fa045b 100644 --- a/repos/spack_repo/builtin/packages/py_diskcache/package.py +++ b/repos/spack_repo/builtin/packages/py_diskcache/package.py @@ -16,6 +16,7 @@ class PyDiskcache(PythonPackage): license("Apache-2.0") + version("5.6.3", sha256="2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc") version("5.2.1", sha256="1805acd5868ac10ad547208951a1190a0ab7bbff4e70f9a07cde4dbdfaa69f64") version("4.1.0", sha256="bcee5a59f9c264e2809e58d01be6569a3bbb1e36a1e0fb83f7ef9b2075f95ce0") diff --git a/repos/spack_repo/builtin/packages/py_distlib/package.py b/repos/spack_repo/builtin/packages/py_distlib/package.py index aa382a9308c..8240a18b855 100644 --- a/repos/spack_repo/builtin/packages/py_distlib/package.py +++ b/repos/spack_repo/builtin/packages/py_distlib/package.py @@ -15,6 +15,7 @@ class PyDistlib(PythonPackage): license("PSF-2.0") + version("0.4.0", sha256="feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d") version("0.3.9", sha256="a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403") version("0.3.8", sha256="1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64") version("0.3.7", sha256="9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8") diff --git a/repos/spack_repo/builtin/packages/py_distributed/package.py b/repos/spack_repo/builtin/packages/py_distributed/package.py index b12f027754e..8432032eb45 100644 --- a/repos/spack_repo/builtin/packages/py_distributed/package.py +++ b/repos/spack_repo/builtin/packages/py_distributed/package.py @@ -33,6 +33,10 @@ class PyDistributed(PythonPackage): license("BSD-3-Clause") + version("2026.3.0", sha256="4a8fc6102fededfbaae45288501276da2297a054d74eb6589f01b087c7f95c26") + version("2025.7.0", sha256="5f8ec20d3cdfb286452831c6f9ebee84527e9323256c20dd2938d9c6e62c5c18") + version("2025.3.0", sha256="84a68c91db2a106c752ca7845fba8cd92ad4f3545c0fb2d9b6dec0f44b225539") + version("2024.12.1", sha256="438aa3ae48bfac9c2bb2ad03f9d47899286f9cb3db8a627b3b8c0de9e26f53dd") version("2024.7.1", sha256="7bce7fa745163b55bdd67fd632b3edf57b31827640390b92d0ee3f73436429d3") version("2023.4.1", sha256="0140376338efdcf8db1d03f7c1fdbb5eab2a337b03e955d927c116824ee94ac5") version("2022.10.2", sha256="53f0a5bf6efab9a5ab3345cd913f6d3f3d4ea444ee2edbea331c7fef96fd67d0") @@ -41,54 +45,76 @@ class PyDistributed(PythonPackage): version("2021.4.1", sha256="4c1b189ec5aeaf770c473f730f4a3660dc655601abd22899e8a0662303662168") version("2020.12.0", sha256="2a0b6acc921cd4e0143a7c4383cdcbed7defbc4bd9dc3aab0c7f1c45f14f80e1") - depends_on("python@3.8:", when="@2022.2.1:", type=("build", "run")) - # https://github.com/dask/distributed/pull/6605 - depends_on("python@:3.11", when="@:2022.6.0", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-setuptools@62.6:", type="build", when="@2023.4.1:") - - # Strictly, this should be 0.28. However others in the dask ecosystem - # require 0.29, which makes it fail to concretize. Since Versioneer 0.29 doesn't - # break anything with 0.28, it should be safe to keep this aligned - # https://github.com/python-versioneer/python-versioneer/releases/tag/0.29 - depends_on("py-versioneer@0.28: +toml", type="build", when="@2023.4.1:") - - # In Spack py-dask+distributed depends on py-distributed, not the other way around. - # Hence, no need for depends_on("py-dask", ...) - depends_on("py-click@6.6:", type=("build", "run")) - depends_on("py-click@8.0:", type=("build", "run"), when="@2023.4.1:") - depends_on("py-cloudpickle@1.5.0:", type=("build", "run")) - depends_on("py-jinja2", type=("build", "run"), when="@2022.2.1:") - depends_on("py-jinja2@2.10.3:", type=("build", "run"), when="@2023.4.1:") - depends_on("py-locket@1:", type=("build", "run"), when="@2022.2.1:") - depends_on("py-msgpack@0.6.0:", type=("build", "run")) - depends_on("py-msgpack@1.0.0:", type=("build", "run"), when="@2023.4.1:") - depends_on("py-packaging@20.0:", type=("build", "run"), when="@2022.2.1:") - depends_on("py-psutil@5.0:", type=("build", "run")) - depends_on("py-psutil@5.7.0:", type=("build", "run"), when="@2023.4.1:") - depends_on("py-psutil@5.7.2:", type=("build", "run"), when="@2024.7.1:") - depends_on("py-sortedcontainers@:1,2.0.2:", type=("build", "run")) - depends_on("py-sortedcontainers@2.0.5:", type=("build", "run"), when="@2023.4.1:") - depends_on("py-tblib@1.6:", type=("build", "run")) - depends_on("py-toolz@0.8.2:", type=("build", "run")) - # Note that the setup.py is wrong for py-toolz, when="@2022.10.2". - # See https://github.com/dask/distributed/pull/7309 - depends_on("py-toolz@0.10.0:", type=("build", "run"), when="@2022.10.2:") - - depends_on("py-tornado@6.0.4:", type=("build", "run"), when="@2024.7.1:") - depends_on("py-tornado@6.0.3:6.1", type=("build", "run"), when="@2022.10.2") - depends_on("py-tornado@6.0.3:", type=("build", "run"), when="^python@3.8:") - depends_on("py-tornado@5:", type=("build", "run"), when="^python@:3.7") - - depends_on("py-zict@3.0.0:", type=("build", "run"), when="@2024.7.1:") - depends_on("py-zict@2.2.0:", type=("build", "run"), when="@2023.4.1:") - depends_on("py-zict@0.1.3:", type=("build", "run")) - - depends_on("py-pyyaml@5.3.1:", type=("build", "run"), when="@2023.4.1:") - depends_on("py-pyyaml", type=("build", "run")) - - depends_on("py-urllib3@1.24.3:", type=("build", "run"), when="@2023.4.1:") - depends_on("py-urllib3", type=("build", "run"), when="@2022.10.2:") + with default_args(type="build"): + depends_on("py-setuptools") + depends_on("py-setuptools@80:", when="@2026.3.0:") + depends_on("py-setuptools@62.6:", when="@2023.4.1:") + + depends_on("py-setuptools-scm@9:", when="@2026.3.0:") + + depends_on("py-versioneer@0.29: +toml", when="@2023.10.1:2026.3.0") + depends_on("py-versioneer@0.28: +toml", when="@2023.4.1:2023.10.0") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@2024.8.1:") + # https://github.com/dask/distributed/pull/6605 + depends_on("python@:3.11", when="@:2022.6.0") + depends_on("python@3.8:", when="@2022.2.1:") + + # In Spack py-dask+distributed depends on py-distributed, not the other way around. + # Hence, no need for depends_on("py-dask", ...) + depends_on("py-click@8.0:", when="@2023.4.1:") + depends_on("py-click@6.6:") + + depends_on("py-cloudpickle@3.0.0:", when="@2024.8.2:") + depends_on("py-cloudpickle@1.5.0:") + + depends_on("py-jinja2", when="@2022.2.1:") + depends_on("py-jinja2@2.10.3:", when="@2023.4.1:") + + depends_on("py-locket@1:", when="@2022.2.1:") + + depends_on("py-msgpack@1.0.2:", when="@2024.8.1:") + depends_on("py-msgpack@1.0.0:", when="@2023.4.1:") + depends_on("py-msgpack@0.6.0:") + + depends_on("py-packaging@20.0:", when="@2022.2.1:") + + depends_on("py-psutil@5.8.0:", when="@2024.8.1:") + depends_on("py-psutil@5.7.2:", when="@2024.7.1:") + depends_on("py-psutil@5.7.0:", when="@2023.4.1:") + depends_on("py-psutil@5.0:") + + depends_on("py-pyyaml") + depends_on("py-pyyaml@5.4.1:", when="@2024.8.1:") + depends_on("py-pyyaml@5.3.1:", when="@2023.4.1:") + + depends_on("py-sortedcontainers@2.0.5:", when="@2023.4.1:") + depends_on("py-sortedcontainers@:1,2.0.2:") + + depends_on("py-tblib@1.6:") + depends_on("py-tblib@1.6:3.1,3.2.2:", when="@2026.3.0") + + depends_on("py-toolz@0.12.0:", when="@2026.3.0") + depends_on("py-toolz@0.11.2:", when="@2024.8.1:") + # Note that the setup.py is wrong for py-toolz, when="@2022.10.2". + # See https://github.com/dask/distributed/pull/7309 + depends_on("py-toolz@0.10.0:", when="@2022.10.2:") + depends_on("py-toolz@0.8.2:") + + depends_on("py-tornado@6.2.0:", when="@2024.8.1:") + depends_on("py-tornado@6.0.4:", when="@2024.7.1:") + depends_on("py-tornado@6.0.3:6.1", when="@2022.10.2") + depends_on("py-tornado@6.0.3:", when="^python@3.8:") + depends_on("py-tornado@5:", when="^python@:3.7") + + depends_on("py-urllib3@1.26.5:", when="@2025.7.0:") + depends_on("py-urllib3@1.24.3:", when="@2023.4.1:") + depends_on("py-urllib3", when="@2022.10.2:") + + depends_on("py-zict@3.0.0:", when="@2024.7.1:") + depends_on("py-zict@2.2.0:", when="@2023.4.1:") + depends_on("py-zict@0.1.3:") def patch(self): if self.spec.satisfies("@:2023.3"): diff --git a/repos/spack_repo/builtin/packages/py_distro/package.py b/repos/spack_repo/builtin/packages/py_distro/package.py index 7dee6fc4056..e29dd65225c 100644 --- a/repos/spack_repo/builtin/packages/py_distro/package.py +++ b/repos/spack_repo/builtin/packages/py_distro/package.py @@ -16,6 +16,7 @@ class PyDistro(PythonPackage): license("Apache-2.0") + version("1.9.0", sha256="2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed") version("1.8.0", sha256="02e111d1dc6a50abb8eed6bf31c3e48ed8b0830d1ea2a1b78c61765c2513fdd8") version("1.7.0", sha256="151aeccf60c216402932b52e40ee477a939f8d58898927378a02abbe852c1c39") version("1.6.0", sha256="83f5e5a09f9c5f68f60173de572930effbcc0287bb84fdc4426cb4168c088424") diff --git a/repos/spack_repo/builtin/packages/py_dlio_profiler_py/package.py b/repos/spack_repo/builtin/packages/py_dlio_profiler_py/package.py deleted file mode 100644 index 8e3d9416dbf..00000000000 --- a/repos/spack_repo/builtin/packages/py_dlio_profiler_py/package.py +++ /dev/null @@ -1,65 +0,0 @@ -# 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 PyDlioProfilerPy(PythonPackage): - """A low-level profiler for capture I/O calls from deep learning applications.""" - - homepage = "https://github.com/hariharan-devarajan/dlio-profiler.git" - git = "https://github.com/hariharan-devarajan/dlio-profiler.git" - maintainers("hariharan-devarajan") - - license("MIT") - - version( - "0.0.7", tag="v0.0.7", commit="e47ec476b58e14157b807cbadb4187bd4fe811d9", deprecated=True - ) - version( - "0.0.6", tag="v0.0.6", commit="3be111c973883387418ad96f63a18de63555c540", deprecated=True - ) - version( - "0.0.5", tag="v0.0.5", commit="08f1a43c67c8dbb458d547020674c86118c9742e", deprecated=True - ) - version( - "0.0.4", tag="v0.0.4", commit="f9ba207f4c3e3789eb7759653a94013e6b76c91c", deprecated=True - ) - version( - "0.0.3", tag="v0.0.3", commit="531f4475cf03312e121c78bf644445882b51ad57", deprecated=True - ) - version( - "0.0.2", tag="v0.0.2", commit="b72144abf1499e03d1db87ef51e780633e9e9533", deprecated=True - ) - version( - "0.0.1", tag="v0.0.1", commit="28affe716211315dd6936ddc8e25ce6c43cdf491", deprecated=True - ) - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - depends_on("cpp-logger@0.0.1", when="@:0.0.1") - depends_on("cpp-logger@0.0.2", when="@0.0.2") - depends_on("cpp-logger@0.0.3", when="@0.0.3:0.0.5") - depends_on("cpp-logger@0.0.4", when="@0.0.6:") - depends_on("brahma@0.0.1", when="@:0.0.1") - depends_on("brahma@0.0.2", when="@0.0.2") - depends_on("brahma@0.0.3", when="@0.0.3:0.0.5") - depends_on("brahma@0.0.5", when="@0.0.6:") - depends_on("yaml-cpp@0.6.3", when="@0.0.2:") - depends_on("py-setuptools@42:", type="build") - depends_on("py-pybind11", type=("build", "run")) - depends_on("ninja", type="build") - depends_on("cmake@3.12:", type="build") - - def setup_build_environment(self, env: EnvironmentModifications) -> None: - if self.spec.satisfies("@0.0.6:"): - env.set("DLIO_PROFILER_INSTALL_DIR", self.prefix) - env.set("DLIO_PROFILER_PYTHON_SITE", python_purelib) - else: - env.set("DLIO_PROFILER_DIR", self.prefix) - env.set("DLIO_PYTHON_SITE", python_purelib) - env.set("DLIO_BUILD_DEPENDENCIES", "0") diff --git a/repos/spack_repo/builtin/packages/py_dm_tree/package.py b/repos/spack_repo/builtin/packages/py_dm_tree/package.py index 9cda94ef0af..5213819ae1c 100644 --- a/repos/spack_repo/builtin/packages/py_dm_tree/package.py +++ b/repos/spack_repo/builtin/packages/py_dm_tree/package.py @@ -16,36 +16,38 @@ class PyDmTree(PythonPackage): leaf preserving the overall structure.""" homepage = "https://github.com/deepmind/tree" - pypi = "dm-tree/dm-tree-0.1.5.tar.gz" + pypi = "dm-tree/dm_tree-0.1.5.tar.gz" maintainers("aweits") license("Apache-2.0") + version("0.1.9", sha256="a4c7db3d3935a5a2d5e4b383fc26c6b0cd6f78c6d4605d3e7b518800ecd5342b") version("0.1.8", sha256="0fcaabbb14e7980377439e7140bd05552739ca5e515ecb3119f234acee4b9430") version("0.1.7", sha256="30fec8aca5b92823c0e796a2f33b875b4dccd470b57e91e6c542405c5f77fd2a") - version( - "0.1.6", - sha256="6776404b23b4522c01012ffb314632aba092c9541577004ab153321e87da439a", - deprecated=True, - ) - version( - "0.1.5", - sha256="a951d2239111dfcc468071bc8ff792c7b1e3192cab5a3c94d33a8b2bda3127fa", - deprecated=True, - ) depends_on("cxx", type="build") # Based on PyPI wheel availability - depends_on("python@:3.12", when="@0.1.8:", type=("build", "run")) + depends_on("python@3.10:3.13", when="@0.1.9:", type=("build", "run")) + depends_on("python@:3.11", when="@0.1.8", type=("build", "run")) depends_on("python@:3.10", when="@0.1.6:0.1.7", type=("build", "run")) - depends_on("python@:3.8", when="@0.1.5", type=("build", "run")) + depends_on("python@3.10:", type=("build", "run"), when="@0.1.9:") depends_on("py-setuptools", type="build") + depends_on("cmake@3.24:", when="@0.1.9:", type="build") depends_on("cmake@3.12:", when="@0.1.7:", type="build") depends_on("py-pybind11@2.10.1:", when="@0.1.8:") - depends_on("abseil-cpp", when="@0.1.8:") + depends_on("abseil-cpp cxxstd=14", when="@0.1.8:") + depends_on("py-absl-py@0.6.1:", type=("build", "run"), when="@0.1.9:") + depends_on("py-attrs@18.2.0:", type=("build", "run"), when="@0.1.9:") + with default_args(type=("build", "run"), when="@0.1.9:"): + depends_on("py-numpy@1.21:") + depends_on("py-numpy@1.21.2:", when="^python@3.10:") + depends_on("py-numpy@1.23.3:", when="^python@3.11:") + depends_on("py-numpy@1.26.0:", when="^python@3.12:") + depends_on("py-numpy@2.1.0:", when="^python@3.13:") + depends_on("py-wrapt@1.11.2:", type=("build", "run"), when="@0.1.9:") patch( "https://github.com/google-deepmind/tree/commit/63f25d4e05440ccbd4ba662be5f3f6eb460d29d8.patch?full_index=1", @@ -54,10 +56,6 @@ class PyDmTree(PythonPackage): ) conflicts("%gcc@13:", when="@:0.1.7") - # Historical dependencies - depends_on("bazel@:5", when="@:0.1.6", type="build") - depends_on("py-six@1.12.0:", when="@:0.1.6", type=("build", "run")) - # This is set later tmp_path = None @@ -65,6 +63,12 @@ class PyDmTree(PythonPackage): def clean(self): remove_linked_tree(PyDmTree.tmp_path) + def url_for_version(self, version): + if version <= Version("0.1.8"): + return super().url_for_version(version).replace("_", "-") + else: + return super().url_for_version(version) + def patch(self): PyDmTree.tmp_path = tempfile.mkdtemp(prefix="spack") env["TEST_TMPDIR"] = PyDmTree.tmp_path diff --git a/repos/spack_repo/builtin/packages/py_docstring_parser/package.py b/repos/spack_repo/builtin/packages/py_docstring_parser/package.py index 24b768394c0..8880a36718a 100644 --- a/repos/spack_repo/builtin/packages/py_docstring_parser/package.py +++ b/repos/spack_repo/builtin/packages/py_docstring_parser/package.py @@ -15,7 +15,12 @@ class PyDocstringParser(PythonPackage): license("MIT") + version("0.17.0", sha256="583de4a309722b3315439bb31d64ba3eebada841f2e2cee23b99df001434c912") version("0.15", sha256="48ddc093e8b1865899956fcc03b03e66bb7240c310fac5af81814580c55bf682") - depends_on("python@3.6:3", type=("build", "run")) - depends_on("py-poetry-core@1:", type="build") + depends_on("py-hatchling", when="@0.17:", type="build") + + # Historical dependencies + # https://github.com/rr-/docstring_parser/pull/91 + depends_on("python@:3.13", when="@:0.16", type=("build", "run")) + depends_on("py-poetry-core@1:", when="@:0.16", type="build") diff --git a/repos/spack_repo/builtin/packages/py_docutils/package.py b/repos/spack_repo/builtin/packages/py_docutils/package.py index 035321bd5ec..8cda8134fdb 100644 --- a/repos/spack_repo/builtin/packages/py_docutils/package.py +++ b/repos/spack_repo/builtin/packages/py_docutils/package.py @@ -21,6 +21,8 @@ class PyDocutils(PythonPackage): license("BSD-3-Clause") + version("0.22.4", sha256="4db53b1fde9abecbb74d91230d32ab626d94f6badfc575d6db9194a49df29968") + version("0.21.2", sha256="3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f") version("0.20.1", sha256="f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b") version("0.19", sha256="33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6") version("0.18.1", sha256="679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06") @@ -34,10 +36,14 @@ class PyDocutils(PythonPackage): version("0.12", sha256="c7db717810ab6965f66c8cf0398a98c9d8df982da39b4cd7f162911eb89596fa") depends_on("python@3.7:", when="@0.19:", type=("build", "run")) - depends_on("py-setuptools", type="build") + depends_on("python@3.9:", when="@0.21:", type=("build", "run")) - # Uses 2to3 - depends_on("py-setuptools@:57", when="@:0.15", type="build") + with when("@0.21:"): + depends_on("py-flit-core@3.4:3", type="build") + with when("@:0.20"): + depends_on("py-setuptools", type="build") + # Uses 2to3 + depends_on("py-setuptools@:57", when="@:0.15", type="build") # Includes "longintrepr.h" instead of Python.h conflicts("^python@3.11:", when="@:0.15") @@ -50,4 +56,4 @@ def post_install(self): bin_path = self.prefix.bin for file in os.listdir(bin_path): if file.endswith(".py"): - os.symlink(os.path.join(bin_path, file), os.path.join(bin_path, file[:-3])) + symlink(os.path.join(bin_path, file), os.path.join(bin_path, file[:-3])) diff --git a/repos/spack_repo/builtin/packages/py_dolfinx_mpc/package.py b/repos/spack_repo/builtin/packages/py_dolfinx_mpc/package.py new file mode 100644 index 00000000000..ef287637ee5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_dolfinx_mpc/package.py @@ -0,0 +1,57 @@ +# 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 PyDolfinxMpc(PythonPackage): + """Python interface of DOLFINx-MPC, an extension of DOLFINx for multipoint constraints.""" + + homepage = "https://www.jsdokken.com/dolfinx_mpc" + url = "https://github.com/jorgensd/dolfinx_mpc/archive/v0.9.3.tar.gz" + git = "https://github.com/jorgensd/dolfinx_mpc.git" + + maintainers("jorgensd") + + license("MIT", checked_by="jorgensd") + + version("main", branch="main") + version("0.9.3", sha256="efa312cc498e428aab44acccc9bb0c74c200eda005742de7778c8e68fa84e8df") + version("0.8.1", sha256="e0254b4a1c9c1456583c1415821946b11b0b2e48dbfee6558da2bbedfe78b461") + + variant("numba", default=False, description="numba support") + + depends_on("cxx", type="build") + + depends_on("cmake@3.21:", when="@0.9:", type="build") + depends_on("cmake@3.19:", when="@:0.8", type="build") + depends_on("py-packaging") + + depends_on("python@3.10:", when="@main:", type=("build", "run")) + depends_on("python@3.8:", when="@0.8:", type=("build", "run")) + + depends_on("py-cffi@:1.16", type=("build", "run")) + depends_on("py-numpy@1.21:", type=("build", "run")) + depends_on("py-mpi4py", type=("build", "run")) + + depends_on("dolfinx-mpc@main", when="@main", type=("build")) + depends_on("dolfinx-mpc@0.9.3", when="@0.9.3", type=("build")) + depends_on("dolfinx-mpc@0.8.1", when="@0.8.1", type=("build")) + + depends_on("py-fenics-dolfinx@main+petsc4py", when="@main") + depends_on("py-fenics-dolfinx@0.9:+petsc4py", when="@0.9") + depends_on("py-fenics-dolfinx@0.8+petsc4py", when="@0.8") + + depends_on("py-nanobind@2:", when="@0.9:", type="build") + depends_on("py-nanobind@1.8:1.9", when="@0.8", type="build") + depends_on("py-scikit-build-core@0.10: +pyproject", when="@0.10:", type="build") + depends_on("py-scikit-build-core@0.5: +pyproject", when="@0.8:0.9", type="build") + + depends_on("py-petsc4py", type=("build", "run")) + depends_on("py-numba", when="+numba", type="run") + + build_directory = "python" diff --git a/repos/spack_repo/builtin/packages/py_dominate/package.py b/repos/spack_repo/builtin/packages/py_dominate/package.py index dc5b34b93b8..339ceed728e 100644 --- a/repos/spack_repo/builtin/packages/py_dominate/package.py +++ b/repos/spack_repo/builtin/packages/py_dominate/package.py @@ -17,11 +17,13 @@ class PyDominate(PythonPackage): homepage = "https://github.com/Knio/dominate" pypi = "dominate/dominate-2.6.0.tar.gz" - # license = "LGPL-3.0" license("LGPL-3.0-or-later") + version("2.9.1", sha256="558284687d9b8aae1904e3d6051ad132dd4a8c0cf551b37ea4e7e42a31d19dc4") version("2.6.0", sha256="76ec2cde23700a6fc4fee098168b9dee43b99c2f1dd0ca6a711f683e8eb7e1e4") - depends_on("python@2.7:2,3.4:", type=("build", "run")) + # https://github.com/Knio/dominate/issues/172 + depends_on("python@:3.11", when="@:2.8", type=("build", "run")) + depends_on("py-setuptools@64:", when="@2.9:", type="build") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_donfig/package.py b/repos/spack_repo/builtin/packages/py_donfig/package.py index 79185cd05da..d397e25d1e5 100644 --- a/repos/spack_repo/builtin/packages/py_donfig/package.py +++ b/repos/spack_repo/builtin/packages/py_donfig/package.py @@ -22,5 +22,6 @@ class PyDonfig(PythonPackage): ) depends_on("py-setuptools@62.6:", type="build") - depends_on("py-versioneer@0.28: +toml") + + depends_on("py-versioneer@0.28: +toml", type="build") depends_on("py-pyyaml", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_dpath/package.py b/repos/spack_repo/builtin/packages/py_dpath/package.py index 211b1793e8a..2c6b299a23c 100644 --- a/repos/spack_repo/builtin/packages/py_dpath/package.py +++ b/repos/spack_repo/builtin/packages/py_dpath/package.py @@ -16,6 +16,7 @@ class PyDpath(PythonPackage): license("MIT") + version("2.2.0", sha256="34f7e630dc55ea3f219e555726f5da4b4b25f2200319c8e6902c394258dd6a3e") version("2.1.6", sha256="f1e07c72e8605c6a9e80b64bc8f42714de08a789c7de417e49c3f87a19692e47") version("2.0.1", sha256="bea06b5f4ff620a28dfc9848cf4d6b2bfeed34238edeb8ebe815c433b54eb1fa") diff --git a/repos/spack_repo/builtin/packages/py_duecredit/package.py b/repos/spack_repo/builtin/packages/py_duecredit/package.py index 22ec361f050..1d8a79c4d3f 100644 --- a/repos/spack_repo/builtin/packages/py_duecredit/package.py +++ b/repos/spack_repo/builtin/packages/py_duecredit/package.py @@ -15,13 +15,27 @@ class PyDuecredit(PythonPackage): license("BSD-2-Clause-FreeBSD") + version("0.11.2", sha256="7b5c1ae10927f9e02cf4d54e2c74a8aa00cd29c38d637defe3c948d3d8e9f33a") + version("0.10.2", sha256="fe73a20e4fbb2d972ba01edf37dec1b0ba1e646efe5ef4ccaf0c6724ca287d42") version("0.9.2", sha256="0e0fd87e9e46ce6c94308e9f780c203fe836d89628404f8bf5af96a7457bed1c") version("0.9.1", sha256="f6192ce9315b35f6a67174761291e61d0831e496e8ff4acbc061731e7604faf8") version("0.6.5", sha256="da3746c24f048e1b2e9bd15c001f0f453a29780ebb9d26367f478a63d15dee9b") - depends_on("py-setuptools", type="build") + with default_args(type="build"): + depends_on("py-setuptools@77.0.3:", when="@0.11:") + depends_on("py-setuptools") + depends_on("py-setuptools-scm", when="@0.11:") - depends_on("py-requests", type=("build", "run")) - depends_on("py-citeproc-py@0.4:", type=("build", "run")) - depends_on("py-six", type=("build", "run")) - depends_on("py-importlib-metadata", when="@0.9: ^python@:3.7", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@0.11:") + depends_on("python@3.8:", when="@0.10:") + + depends_on("py-citeproc-py@0.5:", when="@11:") + depends_on("py-citeproc-py@0.4:") + depends_on("py-looseversion", when="@0.10:") + depends_on("py-packaging", when="@0.10:") + depends_on("py-requests") + + # Historical dependencies + depends_on("py-six", when="@:0.92") + depends_on("py-importlib-metadata", when="@0.9 ^python@:3.7") diff --git a/repos/spack_repo/builtin/packages/py_dunamai/package.py b/repos/spack_repo/builtin/packages/py_dunamai/package.py index 6f1238a383d..963c6a04035 100644 --- a/repos/spack_repo/builtin/packages/py_dunamai/package.py +++ b/repos/spack_repo/builtin/packages/py_dunamai/package.py @@ -15,9 +15,13 @@ class PyDunamai(PythonPackage): license("MIT") + version("1.26.1", sha256="3b46007bd65b00b4824ead0a1aee365fd22d0ec2b9c219497d4fd48f52860c8b") + version("1.25.0", sha256="a7f8360ea286d3dbaf0b6a1473f9253280ac93d619836ad4514facb70c0719d1") + version("1.21.2", sha256="05827fb5f032f5596bfc944b23f613c147e676de118681f3bb1559533d8a65c4") version("1.18.0", sha256="5200598561ea5ba956a6174c36e402e92206c6a6aa4a93a6c5cb8003ee1e0997") version("1.17.0", sha256="459381b585a1e78e4070f0d38a6afb4d67de2ee95064bf6b0438ec620dde0820") version("1.13.1", sha256="49597bdf653bdacdeb51ec6e0f1d4d2327309376fc83e6f1d42af6e29600515f") + version("1.12.0", sha256="fac4f09e2b8a105bd01f8c50450fea5aa489a6c439c949950a65f0dd388b0d20") depends_on("python@3.5:3", type=("build", "run")) depends_on("py-poetry-core@1:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_earthengine_api/package.py b/repos/spack_repo/builtin/packages/py_earthengine_api/package.py index 01eaa3e60ea..b5b028e733b 100644 --- a/repos/spack_repo/builtin/packages/py_earthengine_api/package.py +++ b/repos/spack_repo/builtin/packages/py_earthengine_api/package.py @@ -17,6 +17,7 @@ class PyEarthengineApi(PythonPackage): license("Apache-2.0") maintainers("adamjstewart") + version("1.6.2", sha256="12fdb65594c80cc0947ca88423026f89b05b047657521cec0a5822570f384840") version("1.4.3", sha256="052b65d4dfc6cc474d70fb78946cd981aee4c52e6df6dfbbe17a9ac5124214d0") version("0.1.344", sha256="bc5a270b8296aaae8574e68dfd93fe878bc5fbe77d1c41f90bcb5e5b830ca5c8") diff --git a/repos/spack_repo/builtin/packages/py_edfio/package.py b/repos/spack_repo/builtin/packages/py_edfio/package.py index 831283f6adb..0bf2b0aa9db 100644 --- a/repos/spack_repo/builtin/packages/py_edfio/package.py +++ b/repos/spack_repo/builtin/packages/py_edfio/package.py @@ -16,10 +16,19 @@ class PyEdfio(PythonPackage): license("Apache-2.0") + version("0.4.13", sha256="1744a7e7fc354d4e39082edcd4cac72ec1fa13414ca8a07c630d35f78da6c4dd") version("0.4.3", sha256="9250e67af190379bb3432356b23c441a99682e97159ea58d4507b0827175b487") - depends_on("python@3.9:3", type=("build", "run")) - depends_on("py-poetry-core@1:", type="build") - depends_on("py-poetry-dynamic-versioning@1", type="build") + depends_on("python@3.9:", type=("build", "run")) - depends_on("py-numpy@1.22.0:", type=("build", "run")) + with default_args(type="build"): + depends_on("py-hatchling", when="@0.4.6:") + depends_on("py-hatch-vcs", when="@0.4.6:") + + # Historical dependencies + depends_on("py-poetry-core@1:", when="@:0.4.5") + depends_on("py-poetry-dynamic-versioning@1", when="@:0.4.5") + + with default_args(type=("build", "run")): + depends_on("py-numpy@1.22.0:") + depends_on("py-typing-extensions@4:", when="^python@:3.10") diff --git a/repos/spack_repo/builtin/packages/py_eeglabio/package.py b/repos/spack_repo/builtin/packages/py_eeglabio/package.py index e631718b09c..06d8af291bb 100644 --- a/repos/spack_repo/builtin/packages/py_eeglabio/package.py +++ b/repos/spack_repo/builtin/packages/py_eeglabio/package.py @@ -15,6 +15,7 @@ class PyEeglabio(PythonPackage): license("BSD-3-Clause") + version("0.1.3", sha256="0dbb48ba5a5bc1ebe156acf1b1cc793575928f9a6f73457a05eef567967f9bf3") version( "0.0.2.post4", sha256="64ccaca0ec1b0aa78ca6569ed3581ea601dec51ae6a3b2971e9dc82f54d95f39" ) diff --git a/repos/spack_repo/builtin/packages/py_eerepr/package.py b/repos/spack_repo/builtin/packages/py_eerepr/package.py index e3f7e0660f0..a46f1cc7009 100644 --- a/repos/spack_repo/builtin/packages/py_eerepr/package.py +++ b/repos/spack_repo/builtin/packages/py_eerepr/package.py @@ -15,6 +15,7 @@ class PyEerepr(PythonPackage): license("MIT") + version("0.1.2", sha256="304dc23c365d6fa7cc3b07bc09cf77b565c19af86733e5deed804fdce16fb51f") version("0.1.0", sha256="a3c6f4d94ee19374aea2ff7ae9f2471f06649be5e18f9cb1cced8a00c2c20857") depends_on("py-hatchling", type="build") diff --git a/repos/spack_repo/builtin/packages/py_eg/package.py b/repos/spack_repo/builtin/packages/py_eg/package.py index 6e0fc19471d..e15d9fb6ebf 100644 --- a/repos/spack_repo/builtin/packages/py_eg/package.py +++ b/repos/spack_repo/builtin/packages/py_eg/package.py @@ -15,6 +15,7 @@ class PyEg(PythonPackage): license("MIT") + version("1.2.3", sha256="936d9ef89f62053df7f9a0b97cc13577bf5ae876b02c6c1dd499873a926d9504") version("1.2.0", sha256="dfeff9f8c16afec1b621c9484c8cdb670dbc69ab40590d16a9becb740ea289f3") version("1.1.1", sha256="99020af6ff24742b3eb93a15a289f36156fdb93abdbec50b614b982b1ba9c399") version("1.1.0", sha256="41316c79e8f7a999e82057ac54c6d57c58a50cd37dc91e172b634998f61b1b86") diff --git a/repos/spack_repo/builtin/packages/py_eigenpy/package.py b/repos/spack_repo/builtin/packages/py_eigenpy/package.py new file mode 100644 index 00000000000..e639778eb3a --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_eigenpy/package.py @@ -0,0 +1,53 @@ +# 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 PyEigenpy(CMakePackage): + """Efficient bindings between Numpy and Eigen using Boost.Python""" + + homepage = "https://github.com/stack-of-tasks/eigenpy" + git = "https://github.com/stack-of-tasks/eigenpy.git" + + maintainers("nim65s") + + license("BSD-2-Clause", checked_by="nim65s") + + version("develop", branch="devel") + version("3.12.0", "8564b96c1f7d5a53d4330b0e9ecbf9e0815319bbe43cdf9e9488a4e9b9aa7ce6") + + depends_on("cxx", type="build") + depends_on("eigen") + depends_on("boost+python") + depends_on("py-numpy") + extends("python") + + # fixes for Eigen 5. Merged upstream. + patch( + "https://github.com/stack-of-tasks/eigenpy/commit/0bb71c7da9c297a334f2de419df13ba2c7a67312.patch?full_index=1", + sha256="812274fc7fa68e3af3ede5324590aa2e7ae06f264ac1927989dfe6e324374791", + when="@:3.12.0 ^eigen@5:", + ) + patch( + "https://github.com/stack-of-tasks/eigenpy/commit/a64334c3ddbdd9ffd9f3b65a0b9c1e0d1d2b8c96.patch?full_index=1", + sha256="2110114b6467e5e2889ea55b9e3b2ef5f8cc965a914bfd62d2335e526551d421", + when="@:3.12.0 ^eigen@5:", + ) + patch( + "https://github.com/stack-of-tasks/eigenpy/commit/2a4adb8af92eebd1dac321010db040797100b91d.patch?full_index=1", + sha256="ef47a99123a391c6d3a7be683d5667b3d2f94562d1b4a6c8284c8acc1928b4c2", + when="@:3.12.0 ^eigen@5:", + ) + + def url_for_version(self, version): + return f"https://github.com/stack-of-tasks/eigenpy/archive/refs/tags/v{version}.tar.gz" + + def cmake_args(self): + return [ + self.define("BUILD_TESTING", self.run_tests), + self.define("BUILD_TESTING_SCIPY", False), + ] diff --git a/repos/spack_repo/builtin/packages/py_einops/package.py b/repos/spack_repo/builtin/packages/py_einops/package.py index e44af407794..7adfa6c2c4d 100644 --- a/repos/spack_repo/builtin/packages/py_einops/package.py +++ b/repos/spack_repo/builtin/packages/py_einops/package.py @@ -18,6 +18,7 @@ class PyEinops(PythonPackage): license("MIT") maintainers("adamjstewart") + version("0.8.2", sha256="609da665570e5e265e27283aab09e7f279ade90c4f01bcfca111f3d3e13f2827") version("0.8.1", sha256="de5d960a7a761225532e0f1959e5315ebeafc0cd43394732f103ca44b9837e84") version("0.8.0", sha256="63486517fed345712a8385c100cb279108d9d47e6ae59099b07657e983deae85") version("0.7.0", sha256="b2b04ad6081a3b227080c9bf5e3ace7160357ff03043cd66cc5b2319eb7031d1") @@ -26,6 +27,5 @@ class PyEinops(PythonPackage): version("0.5.0", sha256="8b7a83cffc1ea88e306df099b7cbb9c3ba5003bd84d05ae44be5655864abb8d3") version("0.3.2", sha256="5200e413539f0377f4177ef00dc019968f4177c49b1db3e836c7883df2a5fe2e") - depends_on("python@3.8:", when="@0.7:", type=("build", "run")) depends_on("py-hatchling@1.10:", when="@0.5:", type="build") depends_on("py-setuptools", when="@:0.4", type="build") diff --git a/repos/spack_repo/builtin/packages/py_ema_pytorch/package.py b/repos/spack_repo/builtin/packages/py_ema_pytorch/package.py index d218ae0ab81..c4ed43655f6 100644 --- a/repos/spack_repo/builtin/packages/py_ema_pytorch/package.py +++ b/repos/spack_repo/builtin/packages/py_ema_pytorch/package.py @@ -17,6 +17,7 @@ class PyEmaPytorch(PythonPackage): license("MIT", checked_by="alex391") + version("0.7.9", sha256="a8ccdf2eeecce5489de02fc7c9776ef55400220afff92b8223f7516cb570b594") version("0.7.3", sha256="de640f1d1a054c79607aebfcfd4b8dfff1fba1110bf0c8f7d37517637450938a") version("0.5.1", sha256="e825212a44e8faae5d2cf2a1349961c4416cba0496ffa64d37718d8b06f206b2") diff --git a/repos/spack_repo/builtin/packages/py_email_validator/package.py b/repos/spack_repo/builtin/packages/py_email_validator/package.py index cb47b44fa88..f9010e108d3 100644 --- a/repos/spack_repo/builtin/packages/py_email_validator/package.py +++ b/repos/spack_repo/builtin/packages/py_email_validator/package.py @@ -16,6 +16,7 @@ class PyEmailValidator(PythonPackage): license("Unlicense", when="@2.1.1:", checked_by="wdconinc") license("CC0-1.0", when="@:2.1.0", checked_by="wdconinc") + version("2.3.0", sha256="9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426") version("2.2.0", sha256="cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7") version("1.3.1", sha256="d178c5c6fa6c6824e9b04f199cf23e79ac15756786573c190d2ad13089411ad2") diff --git a/repos/spack_repo/builtin/packages/py_equinox/package.py b/repos/spack_repo/builtin/packages/py_equinox/package.py index 8d24442dbca..9ce65f4407d 100644 --- a/repos/spack_repo/builtin/packages/py_equinox/package.py +++ b/repos/spack_repo/builtin/packages/py_equinox/package.py @@ -2,34 +2,65 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.cuda import CudaPackage from spack_repo.builtin.build_systems.python import PythonPackage from spack.package import * -class PyEquinox(PythonPackage): - """Equinox is a comprehensive JAX library that provides a wide - range of tools and features not found in core JAX, including neural networks - with PyTorch-like syntax, filtered APIs for transformations, PyTree manipulation - routines, and advanced features like runtime errors.""" +class PyEquinox(PythonPackage, CudaPackage): + """Equinox is your one-stop [JAX](https://github.com/google/jax) library, + for everything you need that isn't already in core JAX: + - neural networks (or more generally any model), with easy-to-use PyTorch-like syntax; + - filtered APIs for transformations; + - useful PyTree manipulation routines; + - advanced features like runtime errors; - homepage = "https://docs.kidger.site/equinox/" - - pypi = "equinox/equinox-0.11.10.tar.gz" + and best of all, Equinox isn't a framework: everything you write in Equinox is compatible + with anything else in JAX or the ecosystem.""" - maintainers("viperMl") + homepage = "https://docs.kidger.site/equinox/" + pypi = "equinox/equinox-0.13.1.tar.gz" - license("Apache-2.0", checked_by="viperML") + maintainers("abhishek1297") + license("Apache-2.0", checked_by="abhishek1297") + version("0.13.4", sha256="d4eed5d7f981a5ddcb7bc70e601707769fb4da20f777703cc6e01a6248af9758") + version("0.13.2", sha256="509ad744ff99b7c684d45230d6890f9e78eac1a556d7a06db1eff664a3cac74f") + version("0.13.1", sha256="e90f11cfe66b2f73f5c172260a17c48851794a0f243dd2cbe4ea70f4c90cbd07") + version("0.13.0", sha256="d59615be722373e9d66e0ba78462964e6357fb76a8b1b98c2c6027961b778a69") + version("0.12.2", sha256="648e4206bbc53b228922e8f18cd3cffe543ddda1172c0002f8954e484bab0023") + version("0.12.1", sha256="7ed4b84553cb59d4930185f87ac2c1121aab2b38999be9499c021e7583a7ed0d") + version("0.12.0", sha256="6a99877376cfc168cfe44220a734740926bf23eb9c0cd0d7fdc49adfec4d78ca") version("0.11.12", sha256="bee22aabaf7ee0cde6f2ae58cf3b981dea73d47e297361a0203e299208ef1739") + version("0.11.11", sha256="648072c1384adc3528930a3bf089246fd77aa873310a19f1f21c08e7681f95a7") version("0.11.10", sha256="f3e7d5545b71e427859a28050526d09adb6b20285c47476a606328a0b96c9509") + version("0.11.9", sha256="e0f0fa5ea597949492d201ab4d08b05c2d5b4020c65a1778aedf6ad76c2c4fe7") + version("0.11.8", sha256="d1e91a05e41bb9538db72a8e15d26daf958348c26714533434c88c5ec0c0b0ef") + version("0.11.7", sha256="96e0216a9d822ec4b1465b0cbfbab14a36fb7e7d62c55f521287db3aaaa251be") + version("0.11.6", sha256="e237c25e446960ed479f086df240d4dd779bb0917bafc76811d341ccac76b712") + version("0.11.5", sha256="5e0ca252eeb20cc5eece225d3d35137c7e57f998a1c6422a1972db9e5c68b7f6") + version("0.11.4", sha256="0033d9731083f402a855b12a0777a80aa8507651f7aa86d9f0f9503bcddfd320") + version("0.11.3", sha256="a1273cc28c60d3131ac596f8a0f5c7dd384729e6cddae86e7be05f026880e8e0") depends_on("py-hatchling", type="build") + depends_on("python@3.10:3.12", type=("build", "run")) + + with default_args(type="run"): + for arch in CudaPackage.cuda_arch_values: + cuda_specs = f"+cuda cuda_arch={arch}" + with when(cuda_specs): + depends_on(f"py-jaxlib@0.4.13:0.4.26 {cuda_specs}", when="@:0.11.10") + depends_on(f"py-jaxlib@0.4.38:0.5 {cuda_specs}", when="@0.11.11:0.11.12") + depends_on(f"py-jaxlib@0.4.38: {cuda_specs}", when="@0.12:") - with default_args(type=("build", "run")): - depends_on("python@3.10:") depends_on("py-jax@0.4.13:0.4.26", when="@:0.11.10") - depends_on("py-jax@0.4.28:", when="@0.11.11:") + depends_on("py-jax@0.4.38:0.5", when="@0.11.11:0.11.12") + depends_on("py-jax@0.4.38:", when="@0.12:") + depends_on("py-jaxtyping@0.2.20:") depends_on("py-typing-extensions@4.5.0:") depends_on("py-wadler-lindig@0.1.0:") + + conflicts("^py-jaxlib@0.7.0:0.7.1", when="@0.12:") + conflicts("^py-jax@0.7.0:0.7.1", when="@0.12:") diff --git a/repos/spack_repo/builtin/packages/py_etelemetry/package.py b/repos/spack_repo/builtin/packages/py_etelemetry/package.py index 16a8c6fe76b..482494d3eb6 100644 --- a/repos/spack_repo/builtin/packages/py_etelemetry/package.py +++ b/repos/spack_repo/builtin/packages/py_etelemetry/package.py @@ -15,6 +15,7 @@ class PyEtelemetry(PythonPackage): license("Apache-2.0") + version("0.3.1", sha256="91861fc0e9593e583ad12610a99859d88a45216f59e803c96cfa8b7334f6171f") version("0.3.0", sha256="5f710fdb17ec02f93be29d234b33c1c62ad641320d1b4047e61044679018de03") version("0.2.2", sha256="bfec416552d248ad0f50b90ba5ff015e825ad70e4a87f7a06cc7da6d19152897") @@ -22,5 +23,6 @@ class PyEtelemetry(PythonPackage): depends_on("python@3.6:", type=("build", "run")) depends_on("py-setuptools", type="build") + depends_on("py-packaging", when="@0.3.1:", type=("build", "run")) depends_on("py-requests", type=("build", "run")) depends_on("py-ci-info@0.2.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_eval_type_backport/package.py b/repos/spack_repo/builtin/packages/py_eval_type_backport/package.py new file mode 100644 index 00000000000..70206e63d44 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_eval_type_backport/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 PyEvalTypeBackport(PythonPackage): + """Like `typing._eval_type`, but lets older Python versions use + newer typing features.""" + + homepage = "https://github.com/alexmojaki/eval_type_backport" + pypi = "eval_type_backport/eval_type_backport-0.2.2.tar.gz" + + license("MIT") + + version("0.2.2", sha256="f0576b4cf01ebb5bd358d02314d31846af5e07678387486e2c798af0e7d849c1") + + depends_on("py-setuptools", type=("build", "run")) + depends_on("py-setuptools-scm +toml", type="build") + depends_on("python@3.8:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_evaluate/package.py b/repos/spack_repo/builtin/packages/py_evaluate/package.py new file mode 100644 index 00000000000..c03f7267538 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_evaluate/package.py @@ -0,0 +1,38 @@ +# 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 PyEvaluate(PythonPackage): + """Evaluate is a library that makes evaluating and comparing models and + reporting their performance easier and more standardized.""" + + homepage = "https://github.com/huggingface/evaluate" + pypi = "evaluate/evaluate-0.4.0.tar.gz" + + license("apache-2.0") + + version("0.4.6", sha256="e07036ca12b3c24331f83ab787f21cc2dbf3631813a1631e63e40897c69a3f21") + version("0.4.0", sha256="bd6a59879be9ae13b681684e56ae3e6ea657073c4413b30335e9efa9856e4f44") + + depends_on("py-setuptools", type="build") + depends_on("python@3.7:", type=("build", "run")) + depends_on("python@3.8:", type=("build", "run"), when="@0.4.6:") + depends_on("py-datasets@2.0.0:", type=("build", "run")) + depends_on("py-numpy@1.17:", type=("build", "run")) + depends_on("py-dill", type=("build", "run")) + depends_on("py-pandas", type=("build", "run")) + depends_on("py-requests@2.19.0:", type=("build", "run")) + depends_on("py-tqdm@4.62.1:", type=("build", "run")) + depends_on("py-xxhash", type=("build", "run")) + depends_on("py-multiprocess", type=("build", "run")) + depends_on("py-importlib-metadata", when="^python@:3.7", type=("build", "run")) + depends_on("py-fsspec@2021.05.0:+http", type=("build", "run")) + depends_on("py-huggingface-hub@0.7.0:", type=("build", "run")) + depends_on("py-packaging", type=("build", "run")) + depends_on("py-responses@:0.18", type=("build", "run"), when="@0.4.0") 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_executing/package.py b/repos/spack_repo/builtin/packages/py_executing/package.py index 55fb04b9269..e59d824059e 100644 --- a/repos/spack_repo/builtin/packages/py_executing/package.py +++ b/repos/spack_repo/builtin/packages/py_executing/package.py @@ -15,12 +15,14 @@ class PyExecuting(PythonPackage): license("MIT") + version("2.2.1", sha256="3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4") version("2.1.0", sha256="8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab") version("1.2.0", sha256="19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107") version("1.1.0", sha256="2c2c07d1ec4b2d8f9676b25170f1d8445c0ee2eb78901afb075a4b8d83608c6a") version("1.0.0", sha256="98daefa9d1916a4f0d944880d5aeaf079e05585689bebd9ff9b32e31dd5e1017") version("0.8.2", sha256="c23bf42e9a7b9b212f185b1b2c3c91feb895963378887bb10e64a2e612ec0023") + depends_on("python@3.8:", type=("build", "run"), when="@2.1:") depends_on("python@:3.12", type=("build", "run"), when="@:2.0") depends_on("py-setuptools", type="build") depends_on("py-setuptools-scm+toml", type="build") diff --git a/repos/spack_repo/builtin/packages/py_exhale/package.py b/repos/spack_repo/builtin/packages/py_exhale/package.py index 81f22e35f3c..cd62a387bbc 100644 --- a/repos/spack_repo/builtin/packages/py_exhale/package.py +++ b/repos/spack_repo/builtin/packages/py_exhale/package.py @@ -18,13 +18,17 @@ class PyExhale(PythonPackage): license("BSD-3-Clause") + version("0.3.7", sha256="752a96d0a59456511d933311d4a81f642cd668296eacd2561905727d5ed6b0d8") version("0.3.6", sha256="ab41be313e1236bd4386e4696fb35f37ce8103c2059cf8d1f083da5411bb74d7") - depends_on("python@3.7:", type=("build", "run")) + depends_on("python@3.8:", when="@0.3.7:", type=("build", "run")) + depends_on("python@3.7:", when="@:0.3.6", type=("build", "run")) depends_on("py-setuptools@42:", type="build") - depends_on("py-breathe@4.32.0:", type="build") - depends_on("py-docutils@0.12:", type="build") - depends_on("py-sphinx@3:4", type="build") + depends_on("py-breathe@4.33.1:", when="@0.3.7:", type="build") + depends_on("py-breathe@4.32.0:", when="@:0.3.6", type="build") + depends_on("py-docutils@0.12:", when="@:0.3.6", type="build") + depends_on("py-sphinx@4.3.2:", when="@0.3.7:", type="build") + depends_on("py-sphinx@3:4", when="@:0.3.6", type="build") depends_on("py-beautifulsoup4", type=("build", "run")) depends_on("py-lxml", type=("build", "run")) depends_on("py-six", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_expandvars/package.py b/repos/spack_repo/builtin/packages/py_expandvars/package.py index bbf5cce0cbf..87ea86ec86c 100644 --- a/repos/spack_repo/builtin/packages/py_expandvars/package.py +++ b/repos/spack_repo/builtin/packages/py_expandvars/package.py @@ -15,6 +15,10 @@ class PyExpandvars(PythonPackage): license("MIT") + version("1.1.2", sha256="6c5822b7b756a99a356b915dd1267f52ab8a4efaa135963bd7f4bd5d368f71d7") + version("1.1.1", sha256="98add8268b760dfee457bde1c17bf745795fdebc22b7ddab75fd3278653f1e05") version("0.12.0", sha256="7d1adfa55728cf4b5d812ece3d087703faea953e0c0a1a78415de9df5024d844") + depends_on("python@3.6.2:", type=("build", "run"), when="@1.1.1:") + depends_on("python@3:", type=("build", "run")) depends_on("py-hatchling", type="build") diff --git a/repos/spack_repo/builtin/packages/py_exponax/package.py b/repos/spack_repo/builtin/packages/py_exponax/package.py new file mode 100644 index 00000000000..4da37649ffe --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_exponax/package.py @@ -0,0 +1,37 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyExponax(PythonPackage, CudaPackage): + """Efficient Differentiable n-d PDE solvers built on top of JAX & Equinox.""" + + homepage = "https://fkoehler.site/exponax/" + pypi = "exponax/exponax-0.1.0.tar.gz" + + maintainers("abhishek1297") + license("MIT", checked_by="abhishek1297") + + version("0.2.0", sha256="4d4d88cd0313def80040a370b67299851edab2411890c01305c6eb167a5b93f1") + version("0.1.0", sha256="25acdb5c1b76f5706316750a3133f427f0faec441a1ffe3b90697d5f32abb5e7") + version("0.0.1", sha256="e2a201752d38dbfd233d52c2f59ed0dc344ccbb3e796b26c2713c6a2357d7366") + + depends_on("py-setuptools", type="build") + depends_on("python@3.10:3.12", type=("build", "run")) + + with default_args(type="run"): + for arch in CudaPackage.cuda_arch_values: + cuda_specs = f"+cuda cuda_arch={arch}" + depends_on(f"py-jaxlib@0.4.13: {cuda_specs}", when=f"{cuda_specs}") + + depends_on("py-jax@0.4.13:") + depends_on("py-jaxtyping@0.2.20:") + depends_on("py-typing-extensions@4.5.0:") + depends_on("py-matplotlib@3.8.1:") + depends_on("py-equinox@0.11.3:") diff --git a/repos/spack_repo/builtin/packages/py_extension_helpers/package.py b/repos/spack_repo/builtin/packages/py_extension_helpers/package.py index c305cea2abe..67032d89b9c 100644 --- a/repos/spack_repo/builtin/packages/py_extension_helpers/package.py +++ b/repos/spack_repo/builtin/packages/py_extension_helpers/package.py @@ -19,6 +19,8 @@ class PyExtensionHelpers(PythonPackage): license("BSD-3-Clause") + version("1.4.0", sha256="78d04185f196e3e0bc5fd8418ce298b014c46f7ac609f6a8c10bf70e8c978324") + version("1.3.0", sha256="37701c2055bbdb5b5d157541239980300694e59c95e8caf9a6533b26378d1024") version("1.2.0", sha256="e7d9c8f71804edd7ecd05b5d59a5b504f6e24867970abfc12771242eed76ebcc") version( "0.1", @@ -31,10 +33,14 @@ class PyExtensionHelpers(PythonPackage): depends_on("python@3.6:", type=("build", "run")) depends_on("python@3.8:", type=("build", "run"), when="@1.2.0:") + depends_on("python@3.10:", type=("build", "run"), when="@1.3.0:") + # see build-system section of pyproject.toml depends_on("py-setuptools@30.3:", type="build") depends_on("py-setuptools@43.0.0:", type="build", when="@1.2.0:") depends_on("py-setuptools-scm@6.2:", type="build", when="@1.2.0:") + # see dependencies section of pyproject.toml depends_on("py-setuptools@40.2:", type=("build", "run"), when="@1.2.0:") + depends_on("py-setuptools@64:", type=("build", "run"), when="@1.3.0:") depends_on("py-tomli@1.0.0:", type=("build", "run"), when="@1.2.0: ^python@:3.10") diff --git a/repos/spack_repo/builtin/packages/py_fair_esm/package.py b/repos/spack_repo/builtin/packages/py_fair_esm/package.py index e9aff306950..ad4883d8d3e 100644 --- a/repos/spack_repo/builtin/packages/py_fair_esm/package.py +++ b/repos/spack_repo/builtin/packages/py_fair_esm/package.py @@ -16,6 +16,7 @@ class PyFairEsm(PythonPackage): license("MIT") version("2.0.0", sha256="4ed34d4598ec75ed6550a4e581d023bf8d4a8375317ecba6269bb68135f80c85") + version("1.0.3", sha256="a37b5d86ffd5b0668ac594f2aa9665056fde782694eb1534d40f2b3e0b0d68a1") depends_on("py-setuptools@59.5.0:", type=("build")) diff --git a/repos/spack_repo/builtin/packages/py_fastapi/package.py b/repos/spack_repo/builtin/packages/py_fastapi/package.py index 9bfb1d8ade0..10f86f89cf5 100644 --- a/repos/spack_repo/builtin/packages/py_fastapi/package.py +++ b/repos/spack_repo/builtin/packages/py_fastapi/package.py @@ -16,17 +16,10 @@ class PyFastapi(PythonPackage): license("MIT") + version("0.115.12", sha256="1e2c2a2646905f9e83d32f04a3f86aff4a286669c6c950ca95b5fd68c2602681") version("0.115.4", sha256="db653475586b091cb8b2fec2ac54a680ac6a158e07406e1abae31679e8826349") version("0.110.2", sha256="b53d673652da3b65e8cd787ad214ec0fe303cad00d2b529b86ce7db13f17518d") version("0.109.2", sha256="f3817eac96fe4f65a2ebb4baa000f394e55f5fccdaf7f75250804bc58f354f73") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2024-24762 - version( - "0.98.0", sha256="0d3c18886f652038262b5898fec6b09f4ca92ee23e9d9b1d1d24e429f84bf27b" - ) - version( - "0.88.0", sha256="915bf304180a0e7c5605ec81097b7d4cd8826ff87a02bb198e336fb9f3b5ff02" - ) variant("all", default=False, description="Build all optional dependencies") @@ -36,34 +29,28 @@ class PyFastapi(PythonPackage): depends_on("py-hatchling@1.13:", when="@0.98:0.110.2", type="build") depends_on("py-hatchling", when="@:0.110.2", type="build") - depends_on("py-starlette@0.40:0.41", when="@0.115.3:", type=("build", "run")) + depends_on("py-starlette@0.40.0:0.46", when="@0.115.12:", type=("build", "run")) + depends_on("py-starlette@0.40:0.41", when="@0.115.3:0.115.6", type=("build", "run")) depends_on("py-starlette@0.37.2:0.40", when="@0.115.2", type=("build", "run")) depends_on("py-starlette@0.37.2:0.38", when="@0.112.1:0.115.1", type=("build", "run")) depends_on("py-starlette@0.37.2:0.37", when="@0.110.1:0.112.0", type=("build", "run")) depends_on("py-starlette@0.36.3:0.36", when="@0.109.2:0.110.0", type=("build", "run")) - depends_on("py-starlette@0.35:0.35", when="@0.109.0:0.109.1", type=("build", "run")) - depends_on("py-starlette@0.29:0.32", when="@0.108.0:0.108", type=("build", "run")) - depends_on("py-starlette@0.28", when="@0.107.0:0.107", type=("build", "run")) - depends_on("py-starlette@0.27", when="@0.95.2:0.106", type=("build", "run")) - depends_on("py-starlette@0.22.0", when="@:0.89.1", type=("build", "run")) depends_on("py-pydantic@1.7.4:1,2.1.1:2", when="@0.101:", type=("build", "run")) - depends_on("py-pydantic@1.7.4:1", when="@0.96.1:", type=("build", "run")) - depends_on("py-pydantic@1.6.2:1", when="@:0.96.0", type=("build", "run")) depends_on("py-typing-extensions@4.8.0:", when="@0.104:", type=("build", "run")) conflicts("^py-pydantic@1.7.0:1.7.3,1.8.0:1.8.1,2.0,2.1.0") with when("+all"): depends_on("py-httpx@0.23:", type=("build", "run")) + depends_on("py-jinja2@3.1.5:", when="@0.115.12:", type=("build", "run")) depends_on("py-jinja2@2.11.2:", type=("build", "run")) + depends_on("py-python-multipart@0.0.18:", when="@0.115.12:", type=("build", "run")) depends_on("py-python-multipart@0.0.7:", when="@0.109.1:", type=("build", "run")) - depends_on("py-python-multipart@0.0.5:", type=("build", "run")) depends_on("py-itsdangerous@1.1:", type=("build", "run")) depends_on("py-pyyaml@5.3.1:", type=("build", "run")) depends_on("py-ujson@4.0.1:", type=("build", "run")) depends_on("py-orjson@3.2.1:", type=("build", "run")) depends_on("py-email-validator@2.0.0:", when="@0.100:", type=("build", "run")) - depends_on("py-email-validator@1.1.1:", type=("build", "run")) depends_on("py-uvicorn@0.12:+standard", type=("build", "run")) depends_on("py-pydantic-settings@2.0.0:", when="@0.100:", type=("build", "run")) depends_on("py-pydantic-extra-types@2.0.0:", when="@0.100:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_fastcluster/package.py b/repos/spack_repo/builtin/packages/py_fastcluster/package.py index 87b2ba622f1..20847346d79 100644 --- a/repos/spack_repo/builtin/packages/py_fastcluster/package.py +++ b/repos/spack_repo/builtin/packages/py_fastcluster/package.py @@ -15,6 +15,7 @@ class PyFastcluster(PythonPackage): license("BSD-2-Clause") + version("1.2.6", sha256="aab886efa7b6bba7ac124f4498153d053e5a08b822d2254926b7206cdf5a8aa6") version("1.1.26", sha256="a202f44a3b06f5cf9cdba3c67d6c523288922d6e6a1cdf737292f93759aa82f7") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/py_fastcov/package.py b/repos/spack_repo/builtin/packages/py_fastcov/package.py index 8d431e2b66c..c32f54c5193 100644 --- a/repos/spack_repo/builtin/packages/py_fastcov/package.py +++ b/repos/spack_repo/builtin/packages/py_fastcov/package.py @@ -20,6 +20,7 @@ class PyFastcov(PythonPackage): license("MIT") + version("1.16", sha256="a54bd43b5c86f00a5df369e45b1821292cea17ef85054b78bd829d0f1180f669") version("1.13", sha256="ec8a5271f90a2f8b894cb999e262c33e225ed6072d9a6ca38f636f88cc0543e8") # Depends on gcov too, but that's installed with the compiler diff --git a/repos/spack_repo/builtin/packages/py_fastdownload/package.py b/repos/spack_repo/builtin/packages/py_fastdownload/package.py index a3f6f4f47d6..ead907b8bb9 100644 --- a/repos/spack_repo/builtin/packages/py_fastdownload/package.py +++ b/repos/spack_repo/builtin/packages/py_fastdownload/package.py @@ -18,6 +18,7 @@ class PyFastdownload(PythonPackage): license("Apache-2.0") + version("0.0.7", sha256="20507edb8e89406a1fbd7775e6e2a3d81a4dd633dd506b0e9cf0e1613e831d6a") version("0.0.5", sha256="64e67af30690fa98ae1c8a1b52495769842f723565239a5430208ad05585af18") depends_on("python@3.6:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_fasteners/package.py b/repos/spack_repo/builtin/packages/py_fasteners/package.py index 74fe915c02e..c2cad3f8cf6 100644 --- a/repos/spack_repo/builtin/packages/py_fasteners/package.py +++ b/repos/spack_repo/builtin/packages/py_fasteners/package.py @@ -15,6 +15,7 @@ class PyFasteners(PythonPackage): license("Apache-2.0") + version("0.20", sha256="55dce8792a41b56f727ba6e123fcaee77fd87e638a6863cec00007bfea84c8d8") version("0.18", sha256="cb7c13ef91e0c7e4fe4af38ecaf6b904ec3f5ce0dda06d34924b6b74b869d953") version("0.17.3", sha256="a9a42a208573d4074c77d041447336cf4e3c1389a256fd3e113ef59cf29b7980") version("0.16.3", sha256="b1ab4e5adfbc28681ce44b3024421c4f567e705cc3963c732bf1cba3348307de") @@ -24,5 +25,6 @@ class PyFasteners(PythonPackage): depends_on("python@3.6:", when="@0.17:", type=("build", "run")) depends_on("py-setuptools", type="build") + # Historical dependencies depends_on("py-monotonic@0.1:", when="@:0.15", type=("build", "run")) depends_on("py-six", when="@:0.16", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_fastjsonschema/package.py b/repos/spack_repo/builtin/packages/py_fastjsonschema/package.py index 1dfc649eeb6..927f2fb4995 100644 --- a/repos/spack_repo/builtin/packages/py_fastjsonschema/package.py +++ b/repos/spack_repo/builtin/packages/py_fastjsonschema/package.py @@ -16,6 +16,7 @@ class PyFastjsonschema(PythonPackage): license("BSD-3-Clause") + version("2.21.2", sha256="b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de") version("2.21.1", sha256="794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4") version("2.21.0", sha256="a02026bbbedc83729da3bfff215564b71902757f33f60089f1abae193daa4771") version("2.20.0", sha256="3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23") @@ -29,9 +30,4 @@ class PyFastjsonschema(PythonPackage): version("2.16.2", sha256="01e366f25d9047816fe3d288cbfc3e10541daf0af2044763f3d0ade42476da18") version("2.15.1", sha256="671f36d225b3493629b5e789428660109528f373cf4b8a22bac6fa2f8191c2d2") - depends_on("python@3.3:3.13", when="@2.21:", type=("build", "run")) - depends_on("python@3.3:3.12", when="@2.20:", type=("build", "run")) - depends_on("python@3.3:3.11", when="@2.16.3:", type=("build", "run")) - depends_on("python@3.3:", when="@2.15:", type=("build", "run")) - depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_fastrlock/package.py b/repos/spack_repo/builtin/packages/py_fastrlock/package.py index 5496b5b03de..1c9fbc6c284 100644 --- a/repos/spack_repo/builtin/packages/py_fastrlock/package.py +++ b/repos/spack_repo/builtin/packages/py_fastrlock/package.py @@ -16,15 +16,29 @@ class PyFastrlock(PythonPackage): license("MIT") + version("0.8.3", sha256="4af6734d92eaa3ab4373e6c9a1dd0d5ad1304e172b1521733c6c3b3d73c8fa5d") version("0.8.1", sha256="8a5f2f00021c4ac72e4dab910dc1863c0e008a2e7fb5c843933ae9bcfc3d0802") - version("0.5", sha256="9ae1a31f6e069b5f0f28ba63c594d0c952065de0a375f7b491d21ebaccc5166f") depends_on("c", type="build") # generated depends_on("py-setuptools", type="build") depends_on("py-cython", type="build") + depends_on("py-cython@3.0.11:3.0", when="@0.8.3", type="build") + depends_on("py-cython@3.0.0:3.0", when="@0.8.1", type="build") # in newer pip versions --install-option does not exist - depends_on("py-pip@:23.0", type="build") + depends_on("py-pip", type="build") + depends_on("py-pip@:23.0", when="@:0.8.1", type="build") def install_options(self, spec, prefix): - return ["--with-cython"] + if self.spec.satisfies("^py-pip@:23.0"): + return ["--with-cython"] + else: + return [] + + def config_settings(self, spec, prefix): + # pip deprecated --install-option, suggests using --global-option instead + # in https://github.com/pypa/pip/issues/11859#issuecomment-1741867145 + if self.spec.satisfies("^py-pip@23.1:"): + return {"--global-option": "--with-cython"} + else: + return {} diff --git a/repos/spack_repo/builtin/packages/py_faststructure/package.py b/repos/spack_repo/builtin/packages/py_faststructure/package.py deleted file mode 100644 index e33db48a010..00000000000 --- a/repos/spack_repo/builtin/packages/py_faststructure/package.py +++ /dev/null @@ -1,27 +0,0 @@ -# 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 PyFaststructure(PythonPackage): - """FastStructure is a fast algorithm for inferring population structure - from large SNP genotype data.""" - - homepage = "https://github.com/rajanil/fastStructure" - url = "https://github.com/rajanil/fastStructure/archive/v1.0.tar.gz" - - license("MIT") - - version("1.0", sha256="f1bfb24bb5ecd108bc3a90145fad232012165c1e60608003f1c87d200f867b81") - - depends_on("c", type="build") # generated - - # pip silently replaces distutils with setuptools - depends_on("py-setuptools", type="build") - depends_on("py-cython", type="build") - depends_on("py-numpy", type=("build", "run")) - depends_on("gsl") diff --git a/repos/spack_repo/builtin/packages/py_fasttext_numpy2/package.py b/repos/spack_repo/builtin/packages/py_fasttext_numpy2/package.py new file mode 100644 index 00000000000..ccf39c1e85c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_fasttext_numpy2/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyFasttextNumpy2(PythonPackage): + """Library for efficient text classification and representation + learning, fixed for numpy 2 compatibility.""" + + homepage = "https://github.com/simon-ging/fasttext-numpy2" + pypi = "fasttext-numpy2/fasttext-numpy2-0.10.4.tar.gz" + + maintainers("thomas-bouvier") + + version("0.10.4", sha256="156e84cf2c7db95b24897884284be52c1038fe2b1d0bd9f21bcaf363d2542825") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@0.7:", type="build") + depends_on("py-numpy", type=("build", "run")) + depends_on("py-pybind11@2.2:", type=("build", "run")) + + depends_on("cxx", type="build") diff --git a/repos/spack_repo/builtin/packages/py_fasttext_numpy2_wheel/package.py b/repos/spack_repo/builtin/packages/py_fasttext_numpy2_wheel/package.py new file mode 100644 index 00000000000..11fef6e45dd --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_fasttext_numpy2_wheel/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyFasttextNumpy2Wheel(PythonPackage): + """Library for efficient text classification and representation + learning, fixed for numpy 2 compatibility.""" + + homepage = "https://github.com/hynky1999/Fasttext-np-2.0.0" + pypi = "fasttext_numpy2_wheel/fasttext_numpy2_wheel-0.9.2.tar.gz" + + maintainers("thomas-bouvier") + + version("0.9.2", sha256="484bb7efb0d07c5b6235c8ab44d5e7ddcde5727a25dbc04d18175f777c1e799c") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@0.7:", type="build") + depends_on("py-numpy@2:", type=("build", "run")) + depends_on("py-pybind11@2.2:", type=("build", "run")) + + depends_on("cxx", type="build") diff --git a/repos/spack_repo/builtin/packages/py_faust_cchardet/package.py b/repos/spack_repo/builtin/packages/py_faust_cchardet/package.py new file mode 100644 index 00000000000..244846d1f2f --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_faust_cchardet/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 PyFaustCchardet(PythonPackage): + """C-based character encoding detector.""" + + homepage = "https://github.com/faust-streaming/cChardet" + pypi = "faust-cchardet/faust-cchardet-2.1.19.tar.gz" + + maintainers("thomas-bouvier") + + version("2.1.19", sha256="f89386297cde0c8e0f5e21464bc2d6d0e4a4fc1b1d77cdb238ca24d740d872e0") + + depends_on("py-setuptools", type="build") + depends_on("py-cython", type="build") + depends_on("pkgconfig", type="build") + depends_on("python@3.6:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_fenics_basix/package.py b/repos/spack_repo/builtin/packages/py_fenics_basix/package.py index 9828185c425..d7141f9cec7 100644 --- a/repos/spack_repo/builtin/packages/py_fenics_basix/package.py +++ b/repos/spack_repo/builtin/packages/py_fenics_basix/package.py @@ -17,19 +17,20 @@ class PyFenicsBasix(PythonPackage): license("MIT") - version("main", branch="main") + version("main", branch="main", no_cache=True) + version( + "0.10.0.post0", sha256="11a6482fb8d7204fbd77aaf457a9ae3e75db1707b3e30ea2c938eccfee925ea4" + ) + version("0.10.0", sha256="b93221dac7d3fea8c10e77617f6201036de35d0c5437440b718de69a28c3773f") version("0.9.0", sha256="60e96b2393084729b261cb10370f0e44d12735ab3dbd1f15890dec23b9e85329") version("0.8.0", sha256="b299af82daf8fa3e4845e17f202491fe71b313bf6ab64c767a5287190b3dd7fe") - version("0.7.0", sha256="9bee81b396ee452eec8d9735f278cb44cb6994c6bc30aec8ed9bb4b12d83fa7f") - version("0.6.0", sha256="687ae53153c98facac4080dcdc7081701db1dcea8c5e7ae3feb72aec17f83304") - depends_on("cxx", type="build") # generated + variant("ufl", default=False, description="UFL support") - depends_on("fenics-basix@main", type=("build", "run"), when="@main") - depends_on("fenics-basix@0.9.0", type=("build", "run"), when="@0.9.0") - depends_on("fenics-basix@0.8.0", type=("build", "run"), when="@0.8.0") - depends_on("fenics-basix@0.7.0", type=("build", "run"), when="@0.7.0") - depends_on("fenics-basix@0.6.0", type=("build", "run"), when="@0.6.0") + depends_on("cxx", type="build") + + for ver in ("main", "0.10.0.post0", "0.10.0", "0.9.0", "0.8.0"): + depends_on(f"fenics-basix@{ver}", type=("build", "run"), when=f"@{ver}") # See python/CMakeLists.txt depends_on("cmake@3.21:", when="@0.9:", type="build") @@ -37,14 +38,28 @@ class PyFenicsBasix(PythonPackage): depends_on("cmake@3.16:", when="@:0.7", type="build") # See python/pyproject.toml + depends_on("python@3.10:", when="@0.10:", type=("build", "run")) depends_on("python@3.9:", when="@0.8:", type=("build", "run")) depends_on("python@3.8:", when="@:0.7", type=("build", "run")) depends_on("py-numpy@1.21:", type=("build", "run")) depends_on("py-pybind11@2.9.1:", when="@:0.7", type="build") depends_on("py-setuptools@42:", when="@:0.7", type="build") - depends_on("py-nanobind@2:", when="@0.10:", type="build") + depends_on("py-nanobind@2.5:", when="@0.10:", type="build") + depends_on("py-nanobind@2:", when="@0.9:", type="build") depends_on("py-nanobind@1.6.0:", when="@0.8:0.9", type="build") depends_on("py-scikit-build-core+pyproject@0.10:", when="@0.10:", type="build") depends_on("py-scikit-build-core+pyproject@0.5.0:", when="@0.8:0.9", type="build") + with when("+ufl"): + for ufl_ver, ver in [ + ("main", "main"), + ("2025.2", "0.10"), + ("2024.2", "0.9"), + ("2024.1", "0.8"), + ]: + depends_on(f"py-fenics-ufl@{ufl_ver}", type="run", when=f"@{ver}") + + def config_settings(self, spec, prefix): + return {"build.tool-args": f"-j{make_jobs}", "build.verbose": "true"} + build_directory = "python" diff --git a/repos/spack_repo/builtin/packages/py_fenics_dolfinx/package.py b/repos/spack_repo/builtin/packages/py_fenics_dolfinx/package.py index e797a674097..7454abbf755 100644 --- a/repos/spack_repo/builtin/packages/py_fenics_dolfinx/package.py +++ b/repos/spack_repo/builtin/packages/py_fenics_dolfinx/package.py @@ -9,71 +9,94 @@ class PyFenicsDolfinx(PythonPackage): """Python interface to the next generation FEniCS problem solving - environment""" + environment.""" homepage = "https://github.com/FEniCS/dolfinx" url = "https://github.com/FEniCS/dolfinx/archive/v0.1.0.tar.gz" git = "https://github.com/FEniCS/dolfinx.git" maintainers("chrisrichardson", "garth-wells", "nate-sime", "jhale") - license("LGPL-3.0-only") + license("LGPL-3.0-or-later") - version("main", branch="main") + version("main", branch="main", no_cache=True) + version( + "0.10.0.post4", sha256="3f827a88ab52843fbd7a5cc7814ecba165bdec65fd10df05eb031c286e8cd605" + ) version("0.9.0", sha256="b266c74360c2590c5745d74768c04568c965b44739becca4cd6b5aa58cdbbbd1") version("0.8.0", sha256="acf3104d9ecc0380677a6faf69eabfafc58d0cce43f7777e1307b95701c7cad9") - version("0.7.2", sha256="7d9ce1338ce66580593b376327f23ac464a4ce89ef63c105efc1a38e5eae5c0b") - version("0.6.0", sha256="eb8ac2bb2f032b0d393977993e1ab6b4101a84d54023a67206e3eac1a8d79b80") - depends_on("cxx", type="build") # generated + # CMake build type + variant( + "build_type", + default="RelWithDebInfo", + description="CMake build type", + values=("Debug", "Release", "RelWithDebInfo", "MinSizeRel", "Developer"), + ) + + variant("petsc4py", default=False, description="petsc4py support") + variant("slepc4py", default=False, description="slepc4py support") + + # py-fenics-dolfinx does not require a C compiler, but does depend + # on DOLFINXConfig.cmake which in turn includes hdf5-config.cmake. + # When HDF5 has MPI support, hdf5-config.cmake calls + # enable_language(c). + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("cmake@3.21:", when="@0.9:", type="build") depends_on("cmake@3.19:", when="@:0.8", type="build") depends_on("hdf5", type="build") depends_on("pkgconfig", type="build") + depends_on("python@3.10:", when="@0.10:", type=("build", "run")) depends_on("python@3.9:", when="@0.8:", type=("build", "run")) - depends_on("python@3.8:", when="@0.7", type=("build", "run")) - depends_on("python@3.8:3.10", when="@0.6.0", type=("build", "run")) - - depends_on("fenics-dolfinx@main", when="@main") - depends_on("fenics-dolfinx@0.9.0", when="@0.9.0") - depends_on("fenics-dolfinx@0.8.0", when="@0.8.0") - depends_on("fenics-dolfinx@0.7.2", when="@0.7.2") - depends_on("fenics-dolfinx@0.6.0", when="@0.6.0") - - depends_on("py-fenics-basix@main", type=("build", "run"), when="@main") - depends_on("py-fenics-basix@0.9", type=("build", "link"), when="@0.9") - depends_on("py-fenics-basix@0.8", type=("build", "link"), when="@0.8") - - depends_on("fenics-basix@main", type=("build", "link"), when="@main") - depends_on("fenics-basix@0.9", type=("build", "link"), when="@0.9") - depends_on("fenics-basix@0.8", type=("build", "link"), when="@0.8") - depends_on("fenics-basix@0.7", type=("build", "link"), when="@0.7") - depends_on("fenics-basix@0.6", type=("build", "link"), when="@0.6") - - depends_on("py-fenics-ffcx@main", type=("build", "run"), when="@main") - depends_on("py-fenics-ffcx@0.9", type=("build", "run"), when="@0.9") - depends_on("py-fenics-ffcx@0.8", type=("build", "run"), when="@0.8") - depends_on("py-fenics-ffcx@0.7", type=("build", "run"), when="@0.7") - depends_on("py-fenics-ffcx@0.6", type=("build", "run"), when="@0.6") - - depends_on("py-fenics-ufl@main", type=("build", "run"), when="@main") - depends_on("py-fenics-ufl@2024.2", type=("build", "run"), when="@0.9") - depends_on("py-fenics-ufl@2024.1", type=("build", "run"), when="@0.8") - depends_on("py-fenics-ufl@2023.2", type=("build", "run"), when="@0.7") - depends_on("py-fenics-ufl@2023.1", type=("build", "run"), when="@0.6") + depends_on("python@3.8:3.10", when="@0.6", type=("build", "run")) + + for ver in ["main", "0.10.0.post4", "0.9.0", "0.8.0"]: + depends_on(f"fenics-dolfinx@{ver}", when=f"@{ver}") + + for ver in ["main", "0.10", "0.9", "0.8"]: + depends_on(f"fenics-basix@{ver}", type=("build", "link"), when=f"@{ver}") + depends_on(f"py-fenics-basix@{ver} +ufl", type=("build", "run"), when=f"@{ver}") + depends_on(f"py-fenics-ffcx@{ver}", type=("build", "run"), when=f"@{ver}") + + for ufl_ver, ver in [ + ("main", "main"), + ("2025.2", "0.10"), + ("2024.2", "0.9"), + ("2024.1", "0.8"), + ]: + depends_on(f"py-fenics-ufl@{ufl_ver}", type=("build", "run"), when=f"@{ver}") depends_on("py-numpy@1.21:", type=("build", "run")) depends_on("py-mpi4py", type=("build", "run")) - depends_on("py-petsc4py", type=("build", "run")) - depends_on("py-cffi@:1.16", type=("build", "run")) + conflicts("~petsc4py", when="+slepc4py", msg="+slepc4py requires +petsc4py") + # petsc4py only an optional dependency 0.9 and later. + with when("@:0.8"): + depends_on("fenics-dolfinx +petsc") + depends_on("py-petsc4py", type=("build", "run")) + with when("+petsc4py"): + depends_on("fenics-dolfinx +petsc") + depends_on("py-petsc4py", type=("build", "run")) + with when("+slepc4py"): + depends_on("fenics-dolfinx +petsc +slepc") + depends_on("py-petsc4py", type=("build", "run")) + depends_on("py-slepc4py", type=("build", "run")) + + depends_on("py-cffi", type=("build", "run")) + + depends_on("py-nanobind@2.5:", when="@0.10:", type="build") depends_on("py-nanobind@2:", when="@0.9:", type="build") depends_on("py-nanobind@1.8:1.9", when="@0.8", type="build") - depends_on("py-scikit-build-core+pyproject@0.10:", when="@0.10:", type="build") - depends_on("py-scikit-build-core+pyproject@0.5:", when="@0.8:0.9", type="build") - - depends_on("py-pybind11@2.7.0:", when="@:0.7", type=("build", "run")) - depends_on("py-setuptools@42:", when="@:0.7", type="build") + depends_on("py-scikit-build-core@0.10: +pyproject", when="@0.9:", type="build") + depends_on("py-scikit-build-core@0.5: +pyproject", when="@0.8:0.9", type="build") + + def config_settings(self, spec, prefix): + return { + "build.tool-args": f"-j{make_jobs}", + "build.verbose": "true", + "cmake.build-type": spec.variants["build_type"].value, + } build_directory = "python" diff --git a/repos/spack_repo/builtin/packages/py_fenics_ffcx/package.py b/repos/spack_repo/builtin/packages/py_fenics_ffcx/package.py index 5df581b6f36..763ebca6f74 100644 --- a/repos/spack_repo/builtin/packages/py_fenics_ffcx/package.py +++ b/repos/spack_repo/builtin/packages/py_fenics_ffcx/package.py @@ -17,12 +17,14 @@ class PyFenicsFfcx(PythonPackage): license("LGPL-3.0-or-later") - version("main", branch="main") + version("main", branch="main", no_cache=True) + version( + "0.10.1.post0", sha256="91e15e2586390d0a0b0e9993d63b47b7ae9657e5141fc30271291ea1a2d55d5e" + ) version("0.9.0", sha256="afa517272a3d2249f513cb711c50b77cf8368dd0b8f5ea4b759142229204a448") version("0.8.0", sha256="8a854782dbd119ec1c23c4522a2134d5281e7f1bd2f37d64489f75da055282e3") - version("0.7.0", sha256="7f3c3ca91d63ce7831d37799cc19d0551bdcd275bdfa4c099711679533dd1c71") - version("0.6.0", sha256="076fad61d406afffd41019ae1abf6da3f76406c035c772abad2156127667980e") + depends_on("python@3.10:", when="@0.10:", type=("build", "run")) depends_on("python@3.9:", when="@0.8:", type=("build", "run")) depends_on("python@3.8:", when="@:0.7", type=("build", "run")) depends_on("py-setuptools@62:", when="@0.7:", type="build") @@ -34,16 +36,14 @@ class PyFenicsFfcx(PythonPackage): depends_on("py-numpy@1.21:", type=("build", "run")) depends_on("py-fenics-ufl@main", type=("build", "run"), when="@main") - depends_on("py-fenics-ufl@2024.2.0:", type=("build", "run"), when="@0.9") - depends_on("py-fenics-ufl@2024.1.0:", type=("build", "run"), when="@0.8") - depends_on("py-fenics-ufl@2023.2.0", type=("build", "run"), when="@0.7") - depends_on("py-fenics-ufl@2023.1", type=("build", "run"), when="@0.6") + depends_on("py-fenics-ufl@2025.2", type=("build", "run"), when="@0.10") + depends_on("py-fenics-ufl@2024.2", type=("build", "run"), when="@0.9") + depends_on("py-fenics-ufl@2024.1", type=("build", "run"), when="@0.8") depends_on("py-fenics-basix@main", type=("build", "run"), when="@main") + depends_on("py-fenics-basix@0.10", type=("build", "run"), when="@0.10") depends_on("py-fenics-basix@0.9", type=("build", "run"), when="@0.9") depends_on("py-fenics-basix@0.8", type=("build", "run"), when="@0.8") - depends_on("py-fenics-basix@0.7", type=("build", "run"), when="@0.7") - depends_on("py-fenics-basix@0.6", type=("build", "run"), when="@0.6") depends_on("py-pytest@6:", type="test") depends_on("py-sympy", type="test") @@ -52,5 +52,5 @@ class PyFenicsFfcx(PythonPackage): @on_package_attributes(run_tests=True) def check_build(self): with working_dir("test"): - pytest = which("pytest") + pytest = which("pytest", required=True) pytest("--ignore=test_cmdline.py") 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 e004925d5bb..3c12ca0ec48 100644 --- a/repos/spack_repo/builtin/packages/py_fenics_ufl/package.py +++ b/repos/spack_repo/builtin/packages/py_fenics_ufl/package.py @@ -21,31 +21,56 @@ class PyFenicsUfl(PythonPackage): license("LGPL-3.0-or-later") - version("main", branch="main") - version("2024.2.0", sha256="d9353d23ccbdd9887f8d6edab74c04fe06d818da972072081dbf0c25bc86f5a7") - version( - "2024.1.0.post1", sha256="6e38e93a2c8417271c9fb316e0d0ea5fe1101c6a37b2496fff8290e7ea7ead74" - ) - version("2023.2.0", sha256="d1d3209e8ebd4bd70513c26890f51823bac90edc956233c47bd8e686e064436e") + version("main", branch="main", no_cache=True) version( - "2023.1.1.post0", sha256="9e6e87f1447635029cec42604f62a76bba84899beb4b8822af10389d1f93a9b6" + "2025.2.0.post0", sha256="2182fed6d0fc41fd97244d73fe6aa95e50725e5ba8fe1b3b0f3f4d0215b45534" ) - version("2022.2.0", sha256="d6e18e06df5d7a626c3138d49a543914d68186afb6159c4d1a7cd72b2a199b02") - version("2022.1.0", sha256="48359903d47fb397900d105fe4a60b459c50bbf9d9da78beb9accb54e4e4acaf") - version("2021.1.0", sha256="130fdc09bb7fcd39dcd2618426912b8a25a03431d94575711068b38c666b4337") - version("2019.1.0", sha256="46ac0df4e96327be10b9576d2b8fa8b2c4ca62d3c681d407f5718b162d3ca22d") - version("2018.1.0", sha256="b0d4c2f43f396fd5609317b70d55b53b89c649962fc8a593f4e0e21607da211d") - version( - "2017.2.0.post0", sha256="111e77707cd6731584b1041f405c2fd3f1752a86c51fd9c430524bd396f293b0" - ) - version("2017.2.0", sha256="0adff7a511185b20c38ddaccdeed6c1b2ecafe4b163c688bfd1316d5c3b1c00d") + version("2025.1.0", sha256="a3aedb6fd06bb43e954c96e7cccc190a29dc9a00287f95bc365dbfc81b43a5f9") + version("2024.2.0", sha256="d9353d23ccbdd9887f8d6edab74c04fe06d818da972072081dbf0c25bc86f5a7") version( - "2017.1.0.post1", sha256="82c8170f44c2392c7e60aa86495df22cc209af50735af8115dc35aeda4b0ca96" + "2024.1.0.post1", sha256="6e38e93a2c8417271c9fb316e0d0ea5fe1101c6a37b2496fff8290e7ea7ead74" ) - version("2016.2.0", tag="ufl-2016.2.0", commit="962d56f65821fb9c50ca4a5a858882c472243431") + with default_args(deprecated=True): + version( + "2023.2.0", sha256="d1d3209e8ebd4bd70513c26890f51823bac90edc956233c47bd8e686e064436e" + ) + version( + "2023.1.1.post0", + sha256="9e6e87f1447635029cec42604f62a76bba84899beb4b8822af10389d1f93a9b6", + ) + version( + "2022.2.0", sha256="d6e18e06df5d7a626c3138d49a543914d68186afb6159c4d1a7cd72b2a199b02" + ) + version( + "2022.1.0", sha256="48359903d47fb397900d105fe4a60b459c50bbf9d9da78beb9accb54e4e4acaf" + ) + version( + "2021.1.0", sha256="130fdc09bb7fcd39dcd2618426912b8a25a03431d94575711068b38c666b4337" + ) + version( + "2019.1.0", sha256="46ac0df4e96327be10b9576d2b8fa8b2c4ca62d3c681d407f5718b162d3ca22d" + ) + version( + "2018.1.0", sha256="b0d4c2f43f396fd5609317b70d55b53b89c649962fc8a593f4e0e21607da211d" + ) + version( + "2017.2.0.post0", + sha256="111e77707cd6731584b1041f405c2fd3f1752a86c51fd9c430524bd396f293b0", + ) + version( + "2017.2.0", sha256="0adff7a511185b20c38ddaccdeed6c1b2ecafe4b163c688bfd1316d5c3b1c00d" + ) + version( + "2017.1.0.post1", + sha256="82c8170f44c2392c7e60aa86495df22cc209af50735af8115dc35aeda4b0ca96", + ) + version("2016.2.0", tag="ufl-2016.2.0", commit="962d56f65821fb9c50ca4a5a858882c472243431") + 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")) + depends_on("py-setuptools@77:", when="@2025.1.0:", type="build") depends_on("py-setuptools@62:", when="@2023.2.0:", type="build") depends_on("py-setuptools@58:", when="@2022.1.0:2023.1.1.post0", type="build") depends_on("py-setuptools@40:", when="@2016.2.0:2021.1.0", type="build") @@ -56,5 +81,5 @@ class PyFenicsUfl(PythonPackage): @run_after("install") @on_package_attributes(run_tests=True) def check_build(self): - with working_dir("test"): - Executable("py.test")() + with working_dir(self.stage.source_path): + python("-m", "pytest") diff --git a/repos/spack_repo/builtin/packages/py_fief_client/package.py b/repos/spack_repo/builtin/packages/py_fief_client/package.py new file mode 100644 index 00000000000..736a151e8ff --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_fief_client/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 PyFiefClient(PythonPackage): + """Fief Client for Python.""" + + homepage = "https://github.com/fief-dev/fief-python" + pypi = "fief_client/fief_client-0.20.0.tar.gz" + + version("0.20.0", sha256="dbfb906d03c4a5402ceac5c843aa4708535fb6f5d5c1c4e263ec06fbbbc434d7") + + variant("cli", default=False, description="Install the CLI") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-hatchling", type="build") + + depends_on("py-httpx@0.21.3:0.27", type=("build", "run")) + depends_on("py-jwcrypto@1.4:1", type=("build", "run")) + + with when("+cli"): + depends_on("py-yaspin", 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 fa20d8451d6..90c7764ec92 100644 --- a/repos/spack_repo/builtin/packages/py_filelock/package.py +++ b/repos/spack_repo/builtin/packages/py_filelock/package.py @@ -17,8 +17,12 @@ class PyFilelock(PythonPackage): homepage = "https://github.com/tox-dev/py-filelock" pypi = "filelock/filelock-3.0.4.tar.gz" - license("Unlicense") + license("Unlicense", when="@:3.22") + license("MIT", when="@3.23:") + version("3.29.0", sha256="69974355e960702e789734cb4871f884ea6fe50bd8404051a3530bc07809cf90") + version("3.25.2", sha256="b64ece2b38f4ca29dd3e810287aa8c48182bbecd1ae6e9ae126c9b35f1382694") + version("3.19.1", sha256="66eda1888b0171c998b35be2bcc0f6d75c388a7ce20c3f3f37aa8e96c2dddf58") version("3.12.4", sha256="2e6f249f1f3654291606e046b09f1fd5eac39b360664c27f5aad072012f8bcbd") version("3.12.0", sha256="fc03ae43288c013d2ea83c8597001b1129db351aad9c57fe2409327916b8e718") version("3.8.0", sha256="55447caa666f2198c5b6b13a26d2084d26fa5b115c00d065664b2124680c4edc") @@ -35,9 +39,14 @@ class PyFilelock(PythonPackage): version("2.0.9", sha256="0f91dce339c9f25d6f2e0733a17e4f9a47b139dffda52619a0e61e013e5c6782") version("2.0.8", sha256="7e48e4906de3c9a5d64d8f235eb3ae1050dfefa63fd65eaf318cc915c935212b") + depends_on("python@3.10:", when="@3.20:", type=("build", "run")) + depends_on("python@3.9:", when="@3.17:", type=("build", "run")) depends_on("python@3.8:", when="@3.12.3:", type=("build", "run")) + depends_on("py-hatch-vcs@0.5:", when="@3.19:", type="build") depends_on("py-hatch-vcs@0.3:", when="@3.8:", type="build") + depends_on("py-hatchling@1.29:", when="@3.25.1:", type="build") + depends_on("py-hatchling@1.27:", when="@3.17:", type="build") depends_on("py-hatchling@1.18:", when="@3.12.3:", type="build") depends_on("py-hatchling@1.14:", when="@3.8:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_fisher/package.py b/repos/spack_repo/builtin/packages/py_fisher/package.py index d1b971da05b..53596608647 100644 --- a/repos/spack_repo/builtin/packages/py_fisher/package.py +++ b/repos/spack_repo/builtin/packages/py_fisher/package.py @@ -17,6 +17,7 @@ class PyFisher(PythonPackage): license("BSD-3-Clause") + version("0.1.14", sha256="3594e247f28be0e7716e7ff7e420583ddb2eab9e5732dc86514b1ff78c3000b9") version("0.1.10", sha256="0ec89019e814cf102f33be5674a6205af433711ecb742a7ed5b48896af243523") version("0.1.9", sha256="d378b3f7e488e2a679c6d0e5ea1bce17bc931c2bfe8ec8424ee47a74f251968d") diff --git a/repos/spack_repo/builtin/packages/py_flake8/package.py b/repos/spack_repo/builtin/packages/py_flake8/package.py index 256e5dc923a..22e6bce50ab 100644 --- a/repos/spack_repo/builtin/packages/py_flake8/package.py +++ b/repos/spack_repo/builtin/packages/py_flake8/package.py @@ -16,6 +16,8 @@ class PyFlake8(PythonPackage): license("MIT") + version("7.3.0", sha256="fe044858146b9fc69b551a4b490d69cf960fcb78ad1edcb84e7fbb1b4a8e3872") + version("7.1.2", sha256="c586ffd0b41540951ae41af572e6790dbd49fc12b3aa2541685d253d9bd504bd") version("6.1.0", sha256="d5b3857f07c030bdb5bf41c7f53799571d75c4491748a3adcd47de929e34cd23") version("6.0.0", sha256="c61007e76655af75e6785a931f452915b371dc48f56efd765247c8fe68f2b181") version("5.0.4", sha256="6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db") @@ -32,6 +34,7 @@ class PyFlake8(PythonPackage): version("3.0.4", sha256="b4c210c998f07d6ff24325dd91fbc011f2c37bcd6bf576b188de01d8656e970d") version("2.5.4", sha256="cc1e58179f6cf10524c7bfdd378f5536d0a61497688517791639a5ecc867492f") + depends_on("python@3.9.0:", when="@7:", type=("build", "run")) depends_on("python@3.8.1:", when="@6:", type=("build", "run")) depends_on("python@3.6.1:", when="@5:", type=("build", "run")) depends_on("python@3.6:", when="@4:", type=("build", "run")) @@ -47,6 +50,16 @@ class PyFlake8(PythonPackage): # http://flake8.pycqa.org/en/latest/faq.html#why-does-flake8-use-ranges-for-its-dependencies # http://flake8.pycqa.org/en/latest/internal/releases.html#releasing-flake8 + # Flak8 7.3.X + depends_on("py-mccabe@0.7", when="@7.3.0", type=("build", "run")) + depends_on("py-pycodestyle@2.14", when="@7.3.0", type=("build", "run")) + depends_on("py-pyflakes@3.4", when="@7.3.0", type=("build", "run")) + + # Flak8 7.1.X + depends_on("py-mccabe@0.7", when="@7.1.2", type=("build", "run")) + depends_on("py-pycodestyle@2.14", when="@7.1.2", type=("build", "run")) + depends_on("py-pyflakes@3.4", when="@7.1.2", type=("build", "run")) + # Flake8 6.1.X depends_on("py-mccabe@0.7", when="@6.1", type=("build", "run")) depends_on("py-pycodestyle@2.11", when="@6.1", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_flash_attn/package.py b/repos/spack_repo/builtin/packages/py_flash_attn/package.py index 2ebed816e85..7f8b76d07aa 100644 --- a/repos/spack_repo/builtin/packages/py_flash_attn/package.py +++ b/repos/spack_repo/builtin/packages/py_flash_attn/package.py @@ -21,6 +21,7 @@ class PyFlashAttn(PythonPackage): license("BSD") version("main", branch="main") + version("2.8.1", sha256="0ff003899fcb244f357905b04f622d5c9736887126dd6675f8f4bc52954e3923") version("2.6.3", sha256="5bfae9500ad8e7d2937ebccb4906f3bc464d1bf66eedd0e4adabd520811c7b52") version( "2.5.9.post1", sha256="a92db1683a5b141a0f4371d251ae9f73e9aef629b3a58a50d0ef430266c68782" @@ -48,8 +49,9 @@ class PyFlashAttn(PythonPackage): with default_args(type=("build", "link", "run")): depends_on("py-pybind11") - depends_on("python@3.7:", type=("build", "run"), when="@:2.5") + depends_on("python@3.9:", type=("build", "run"), when="@2.8:") depends_on("python@3.8:", type=("build", "run"), when="@2.6:") + depends_on("python@3.7:", type=("build", "run"), when="@:2.5") def setup_build_environment(self, env: EnvironmentModifications) -> None: # If oom error, try lowering the number of jobs with `spack install -j` diff --git a/repos/spack_repo/builtin/packages/py_flask/package.py b/repos/spack_repo/builtin/packages/py_flask/package.py index 08781ec774d..48652efb055 100644 --- a/repos/spack_repo/builtin/packages/py_flask/package.py +++ b/repos/spack_repo/builtin/packages/py_flask/package.py @@ -16,53 +16,27 @@ class PyFlask(PythonPackage): license("BSD-3-Clause") + version("3.1.2", sha256="bf656c15c80190ed628ad08cdfd3aaa35beb087855e2f494910aa3774cc4fd87") version("3.0.3", sha256="ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842") version("2.3.2", sha256="8c2f9abd47a9e8df7f0c3f091ce9497d011dc3b31effcf4c85a6e2b50f4114ef") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2023-30861 - version("2.2.2", sha256="642c450d19c4ad482f96729bd2a8f6d32554aa1e231f4f6b4e7e5264b16cca2b") - version("2.0.2", sha256="7b2fb8e934ddd50731893bdcdb00fc8c0315916f9fcd50d22c7cc1a95ab634e2") - version("1.1.2", sha256="4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060") - version("1.1.1", sha256="13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52") - version( - "0.12.4", sha256="2ea22336f6d388b4b242bc3abf8a01244a8aa3e236e7407469ef78c16ba355dd" - ) - version( - "0.12.2", sha256="49f44461237b69ecd901cc7ce66feea0319b9158743dd27a2899962ab214dac1" - ) - version( - "0.12.1", sha256="9dce4b6bfbb5b062181d3f7da8f727ff70c1156cbb4024351eafd426deb5fb88" - ) - version( - "0.11.1", sha256="b4713f2bfb9ebc2966b8a49903ae0d3984781d5c878591cf2f7b484d28756b0e" - ) - depends_on("python@3.8:", when="@2.3:", type=("build", "run")) - depends_on("py-setuptools", type=("build", "run"), when="@:2") + depends_on("python@3.9:", type=("build", "run"), when="@3.1:") depends_on("py-flit-core@:3", type=("build", "run"), when="@3:") - depends_on("py-werkzeug@3:", when="@3:", type=("build", "run")) - depends_on("py-werkzeug@2.3.3:", when="@2.3.2:", type=("build", "run")) - depends_on("py-werkzeug@2.2.2:", when="@2.2.2:", type=("build", "run")) - depends_on("py-werkzeug@2:", when="@2:", type=("build", "run")) - depends_on("py-werkzeug@0.15:", type=("build", "run")) - depends_on("py-jinja2@3.1.2:", when="@3:", type=("build", "run")) - depends_on("py-jinja2@3:", when="@2:", type=("build", "run")) - depends_on("py-jinja2@2.10.1:", type=("build", "run")) - depends_on("py-itsdangerous@2.1.2:", when="@3:", type=("build", "run")) - depends_on("py-itsdangerous@2:", when="@2:", type=("build", "run")) - depends_on("py-itsdangerous@0.24:", type=("build", "run")) + depends_on("py-blinker@1.9:", when="@3.1:", type=("build", "run")) + depends_on("py-blinker@1.6.2:", when="@2.3:", type=("build", "run")) depends_on("py-click@8.1.3:", when="@3:", type=("build", "run")) depends_on("py-click@8:", when="@2.1:", type=("build", "run")) - depends_on("py-click@7.1.2:", when="@2:", type=("build", "run")) - depends_on("py-click@5.1:", type=("build", "run")) - depends_on("py-blinker@1.6.2:", when="@2.3:", type=("build", "run")) depends_on("py-importlib-metadata@3.6:", when="@2.1: ^python@:3.9", type=("build", "run")) + depends_on("py-itsdangerous@2.2:", when="@3.1:", type=("build", "run")) + depends_on("py-itsdangerous@2.1.2:", when="@3:", type=("build", "run")) + depends_on("py-itsdangerous@2:", when="@2:", type=("build", "run")) + depends_on("py-jinja2@3.1.2:", when="@3:", type=("build", "run")) + depends_on("py-jinja2@3:", when="@2:", type=("build", "run")) + depends_on("py-markupsafe@2.1.1:", when="@3.1.1:", type=("build", "run")) + depends_on("py-werkzeug@3.1:", when="@3.1:", type=("build", "run")) + depends_on("py-werkzeug@3:", when="@3:", type=("build", "run")) + depends_on("py-werkzeug@2.3.3:", when="@2.3.2:", type=("build", "run")) - def url_for_version(self, version): - url = "https://files.pythonhosted.org/packages/source/f/flask/{}-{}.tar.gz" - if self.spec.satisfies("@:0.18.3"): - name = "Flask" - else: - name = "flask" - return url.format(name, version) + # Historical dependencies + depends_on("py-setuptools", type=("build", "run"), when="@:2") diff --git a/repos/spack_repo/builtin/packages/py_flask_paginate/package.py b/repos/spack_repo/builtin/packages/py_flask_paginate/package.py index 1dd6d8331ee..64d00a71c31 100644 --- a/repos/spack_repo/builtin/packages/py_flask_paginate/package.py +++ b/repos/spack_repo/builtin/packages/py_flask_paginate/package.py @@ -18,6 +18,7 @@ class PyFlaskPaginate(PythonPackage): license("BSD-3-Clause") + version("2024.4.12", sha256="2de04606b061736f0fc8fbe73d9d4d6fc03664638eca70a57728b03b3e2c9577") version("2022.1.8", sha256="a32996ec07ca004c45b768b0d50829728ab8f3986c0650ef538e42852c7aeba2") # From setup.py: diff --git a/repos/spack_repo/builtin/packages/py_flask_restful/package.py b/repos/spack_repo/builtin/packages/py_flask_restful/package.py index 6b3f04b731a..ed939d75437 100644 --- a/repos/spack_repo/builtin/packages/py_flask_restful/package.py +++ b/repos/spack_repo/builtin/packages/py_flask_restful/package.py @@ -15,6 +15,7 @@ class PyFlaskRestful(PythonPackage): license("BSD-3-Clause") + version("0.3.10", sha256="fe4af2ef0027df8f9b4f797aba20c5566801b6ade995ac63b588abf1a59cec37") version("0.3.9", sha256="ccec650b835d48192138c85329ae03735e6ced58e9b2d9c2146d6c84c06fa53e") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_flatbuffers/package.py b/repos/spack_repo/builtin/packages/py_flatbuffers/package.py index 9f6828afc86..3122ba8fd24 100644 --- a/repos/spack_repo/builtin/packages/py_flatbuffers/package.py +++ b/repos/spack_repo/builtin/packages/py_flatbuffers/package.py @@ -21,6 +21,7 @@ class PyFlatbuffers(PythonPackage): license("Apache-2.0") + version("25.9.23", sha256="676f9fa62750bb50cf531b42a0a2a118ad8f7f797a511eda12881c016f093b12") version("24.3.25", sha256="de2ec5b203f21441716617f38443e0a8ebf3d25bf0d9c0bb0ce68fa00ad546a4") version("23.5.26", sha256="9ea1144cac05ce5d86e2859f431c6cd5e66cd9c78c558317c7955fb8d4c78d89") version("2.0.7", sha256="0ae7d69c5b82bf41962ca5fde9cc43033bc9501311d975fd5a25e8a7d29c1245") diff --git a/repos/spack_repo/builtin/packages/py_flexcache/package.py b/repos/spack_repo/builtin/packages/py_flexcache/package.py new file mode 100644 index 00000000000..3031269677d --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_flexcache/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 PyFlexcache(PythonPackage): + """Flexcache is a flexible caching library for Python, + providing convenient and efficient caching mechanisms.""" + + homepage = "https://github.com/hgrecco/flexcache" + pypi = "flexcache/flexcache-0.3.tar.gz" + + license("BSD-3-Clause") + + version("0.3", sha256="18743bd5a0621bfe2cf8d519e4c3bfdf57a269c15d1ced3fb4b64e0ff4600656") + + depends_on("py-hatchling", type="build") + depends_on("py-hatch-vcs", type="build") + + depends_on("py-typing-extensions", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_flexparser/package.py b/repos/spack_repo/builtin/packages/py_flexparser/package.py new file mode 100644 index 00000000000..76546ab2595 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_flexparser/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 PyFlexparser(PythonPackage): + """A flexible and extensible text parsing library for Python.""" + + homepage = "https://github.com/hgrecco/flexparser" + pypi = "flexparser/flexparser-0.4.tar.gz" + + license("BSD-3-Clause") + + version("0.4", sha256="266d98905595be2ccc5da964fe0a2c3526fbbffdc45b65b3146d75db992ef6b2") + + depends_on("py-hatchling", type="build") + depends_on("py-hatch-vcs", type="build") + + depends_on("py-typing-extensions", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_flit_core/package.py b/repos/spack_repo/builtin/packages/py_flit_core/package.py index 9f3f6c82d1f..2a9a03f9644 100644 --- a/repos/spack_repo/builtin/packages/py_flit_core/package.py +++ b/repos/spack_repo/builtin/packages/py_flit_core/package.py @@ -41,6 +41,8 @@ class PyFlitCore(PythonPackage): depends_on("python@3.6:", when="@3.4:") depends_on("python@3.4:", when="@3.0:") depends_on("python@2.7,3.4:", when="@2.3:") + # https://github.com/pypa/flit/pull/684 + depends_on("python@:3.13", when="@:3.9") # flit_core/build_thyself.py depends_on("py-tomli", when="@3.4:3.5", type="run") diff --git a/repos/spack_repo/builtin/packages/py_flufl_lock/package.py b/repos/spack_repo/builtin/packages/py_flufl_lock/package.py index ecb20ac9a8f..77a1bb2e7e5 100644 --- a/repos/spack_repo/builtin/packages/py_flufl_lock/package.py +++ b/repos/spack_repo/builtin/packages/py_flufl_lock/package.py @@ -11,17 +11,28 @@ class PyFluflLock(PythonPackage): """NFS-safe file locking with timeouts for POSIX and Windows""" - homepage = "https://fluflock.readthedocs.io" - pypi = "flufl.lock/flufl.lock-5.0.4.tar.gz" + homepage = "https://flufllock.readthedocs.io" + pypi = "flufl.lock/flufl_lock-9.0.0.tar.gz" license("Apache-2.0") + version("9.0.0", sha256="270a46e754af3937735cdd4f8a8f43a2dc4e5c40a24fdf972f5dc6db0862e8bb") version("5.0.4", sha256="09ffef831d57c4d182e398e97bb74ad8c8ffbd1710175a5a0b0f057095db12f1") version("5.0.3", sha256="94df161caa489d74afc26df8c0b640770923ecc0c6c5d331fbeabe7b91d306cb") version("3.2", sha256="a8d66accc9ab41f09961cd8f8db39f9c28e97e2769659a3567c63930a869ff5b") depends_on("python@3.6:", type=("build", "run")) - depends_on("py-setuptools", type="build") + depends_on("python@3.10:", when="@9:", type=("build", "run")) + depends_on("py-setuptools", when="@:5.0.4", type="build") + depends_on("py-hatchling", when="@9:", type="build") depends_on("py-atpublic", type=("build", "run")) depends_on("py-psutil", type=("build", "run")) - depends_on("py-typing-extensions", when="^python@:3.7", type=("build", "run")) + depends_on("py-typing-extensions", when="@:5.0.4^python@:3.7", type=("build", "run")) + + def url_for_version(self, version): + url = "https://pypi.io/packages/source/f/flufl.lock/{0}-{1}.tar.gz" + if version >= Version("8"): + filename = "flufl_lock" + else: + filename = "flufl.lock" + return url.format(filename, version) diff --git a/repos/spack_repo/builtin/packages/py_fluidfft_builder/package.py b/repos/spack_repo/builtin/packages/py_fluidfft_builder/package.py index 6cf615f21a8..937a1e757a1 100644 --- a/repos/spack_repo/builtin/packages/py_fluidfft_builder/package.py +++ b/repos/spack_repo/builtin/packages/py_fluidfft_builder/package.py @@ -15,6 +15,7 @@ class PyFluidfftBuilder(PythonPackage): maintainers("paugier") license("MIT", checked_by="paugier") + version("0.0.3", sha256="7cd4bb179a17e9f636aabcdc36429a75a16d2122eb507df8c4873aa7a15e71a5") version("0.0.2", sha256="c0af9ceca27ae3a00ccf2f160703be9e394d8b886b8a02653b6c0a12a4f54a90") depends_on("python@3.9:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_flye/dir_fix.patch b/repos/spack_repo/builtin/packages/py_flye/dir_fix.patch new file mode 100644 index 00000000000..9bf27180565 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_flye/dir_fix.patch @@ -0,0 +1,14 @@ +diff --git a/setup.py b/setup.py +index addf90fd1..ac2175745 100644 +--- a/setup.py ++++ b/setup.py +@@ -53,6 +53,9 @@ def run(self): + sys.exit('Error: no write permission for ' + self.install_scripts + ' ' + + 'Perhaps you need to use sudo?') + ++ if not os.path.exists(self.install_scripts): ++ os.makedirs(self.install_scripts) ++ + build_dir = os.path.join(script_dir, "bin") + install_dir = self.install_scripts + bin_files = ['flye-modules', 'flye-minimap2', 'flye-samtools'] diff --git a/repos/spack_repo/builtin/packages/py_flye/package.py b/repos/spack_repo/builtin/packages/py_flye/package.py index b927658ac8f..5a9dea6f4ba 100644 --- a/repos/spack_repo/builtin/packages/py_flye/package.py +++ b/repos/spack_repo/builtin/packages/py_flye/package.py @@ -16,6 +16,12 @@ class PyFlye(PythonPackage): license("BSD-3-Clause") + version("2.9.6", sha256="f05a3889b1c7aafed4cc0ed1adc1f19c22618c1c7b97ab5f80d388c8192bd32a") + version("2.9.5", sha256="7b384266d83b1e66bcaf82d49d35ac6c587bad9146e8f3b752a220291f6b1a6f") + version("2.9.4", sha256="197a2dfe39fc324a39d8e1901af4f539609159c4a64a578ec8e60f73f5ea4696") + version("2.9.3", sha256="09580390ed0558c131ca0b836a2374d3cc7993cba2a6500024c2ee1d96666edc") + version("2.9.2", sha256="4b9534b912c805d44b83d497b40102bed807678b82be62667129bf1641676402") + version("2.9.1", sha256="25a2375cd9ba6b2285f930951ad0fde81628baa97d8709172aa59e931a96678e") version("2.9", sha256="158ea620d4aa92a53dae1832b09fd605e17552e45b83eecbf28e41a4516a6957") version("2.8.3", sha256="070f9fbee28eef8e8f87aaecc048053f50a8102a3715e71b16c9c46819a4e07c") version("2.8.2", sha256="f1284bd2a777356fbf808d89052bc0f9bf5602560dde7cf722d7974d9a94d03b") @@ -38,6 +44,8 @@ class PyFlye(PythonPackage): conflicts("%clang@:3.2", msg=msg) conflicts("%apple-clang@:4.9", msg=msg) + patch("dir_fix.patch", when="@:2.8,=2.9") + def setup_build_environment(self, env: EnvironmentModifications) -> None: if self.spec.target.family == "aarch64": env.set("arm_neon", "1") diff --git a/repos/spack_repo/builtin/packages/py_folium/package.py b/repos/spack_repo/builtin/packages/py_folium/package.py index aa3d0a2138a..0a9e56c123e 100644 --- a/repos/spack_repo/builtin/packages/py_folium/package.py +++ b/repos/spack_repo/builtin/packages/py_folium/package.py @@ -15,6 +15,7 @@ class PyFolium(PythonPackage): license("MIT") + version("0.20.0", sha256="a0d78b9d5a36ba7589ca9aedbd433e84e9fcab79cd6ac213adbcff922e454cb9") version("0.19.4", sha256="431a655b52a9bf3efda336f2be022103f0106504a0599e7c349efbfd30bafda6") version("0.16.0", sha256="2585ee9253dc758d3a365534caa6fb5fa0c244646db4dc5819afc67bbd4daabb") diff --git a/repos/spack_repo/builtin/packages/py_formulaic/package.py b/repos/spack_repo/builtin/packages/py_formulaic/package.py index 0b0089da763..bca740fdad3 100644 --- a/repos/spack_repo/builtin/packages/py_formulaic/package.py +++ b/repos/spack_repo/builtin/packages/py_formulaic/package.py @@ -14,27 +14,36 @@ class PyFormulaic(PythonPackage): homepage = "https://github.com/matthewwardrop/formulaic" pypi = "formulaic/formulaic-0.2.4.tar.gz" + version("1.2.1", sha256="dc79476baa2d811b35798893eb2f2c1e51edee8d7a9c1429b400e56f4e0beccc") + version("1.2.0", sha256="ab5c43a5b107d1b1e87f55cf0a01245531cce793d3dcab433dae12053c3cb2d6") version("0.6.1", sha256="5b20b2130436dc8bf5ea604e69d88d44b3be4d8ea20bfea96d982fa1f6bb762b") version("0.5.2", sha256="25b1e1c8dff73f0b11c0028a6ab350222de6bbc47b316ccb770cec16189cef53") version("0.2.4", sha256="15b71ea8972fb451f80684203cddd49620fc9ed5c2e35f31e0874e9c41910d1a") - depends_on("python@3.7.2:", when="@5:", type=("build", "run")) + depends_on("python@3.9:", when="@1.2:", type=("build", "run")) + depends_on("python@3.7.2:", when="@0.5:", type=("build", "run")) depends_on("py-hatchling", when="@0.5:", type="build") depends_on("py-hatch-vcs", when="@0.5:", type="build") - depends_on("py-setuptools", when="@:0.3.2", type="build") - depends_on("py-setupmeta", when="@:0.3.2", type="build") - depends_on("py-astor@0.8:", when="@0.3.4:", type=("build", "run")) - depends_on("py-astor", type=("build", "run")) - depends_on("py-cached-property@1.3:", when="@0.4: ^python@:3.7", type=("build", "run")) - depends_on("py-graphlib-backport@1:", when="@0.5: ^python@:3.8", type=("build", "run")) depends_on("py-interface-meta@1.2:", type=("build", "run")) + depends_on("py-narwhals@1.17:", when="@1.2:", type=("build", "run")) + depends_on("py-numpy@1.20:", when="@1.2:", type=("build", "run")) depends_on("py-numpy@1.16.5:", when="@0.5:", type=("build", "run")) depends_on("py-numpy", type=("build", "run")) + depends_on("py-pandas@1.3:", when="@1.2:", type=("build", "run")) depends_on("py-pandas@1:", when="@0.4:", type=("build", "run")) depends_on("py-pandas", type=("build", "run")) depends_on("py-scipy@1.6:", when="@0.3:", type=("build", "run")) depends_on("py-scipy", type=("build", "run")) - depends_on("py-wrapt@1:", when="@0.3:", type=("build", "run")) + depends_on("py-wrapt@1.17:", when="@1.1: ^python@3.13:", type=("build", "run")) + depends_on("py-wrapt@1:", when="@0.3: ^python@:3.12", type=("build", "run")) depends_on("py-wrapt", type=("build", "run")) depends_on("py-typing-extensions@4.2:", when="@0.5:", type=("build", "run")) + + # Historical dependencies + depends_on("py-setuptools", when="@:0.3.2", type="build") + depends_on("py-setupmeta", when="@:0.3.2", type="build") + depends_on("py-astor@0.8:", when="@0.3.4:1.1", type=("build", "run")) + depends_on("py-astor", when="@:1.1", type=("build", "run")) + depends_on("py-cached-property@1.3:", when="@0.4:1.1 ^python@:3.7", type=("build", "run")) + depends_on("py-graphlib-backport@1:", when="@0.5:1.1 ^python@:3.8", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_fparser/package.py b/repos/spack_repo/builtin/packages/py_fparser/package.py index 97d3973695c..f7254731608 100644 --- a/repos/spack_repo/builtin/packages/py_fparser/package.py +++ b/repos/spack_repo/builtin/packages/py_fparser/package.py @@ -20,7 +20,7 @@ class PyFparser(PythonPackage): # Links homepage = "https://github.com/stfc/fparser" git = "https://github.com/stfc/fparser.git" - pypi = "fparser/fparser-0.2.0.tar.gz" + pypi = "fparser/fparser-0.2.2.tar.gz" maintainers("arporter") @@ -29,6 +29,8 @@ class PyFparser(PythonPackage): # Releases version("develop", branch="master") + version("0.2.2", sha256="81fee12416cde2dc57782542e4e271a1155e6f7a16eab099c030d54ff1b56b8c") + version("0.2.1", sha256="1ca89a760ef23747fc54c53918c03d9165026736d9f0ea6347885bd79fe4be85") version("0.2.0", sha256="3901d31c104062c4e532248286929e7405e43b79a6a85815146a176673e69c82") version("0.1.4", sha256="00d4f7e9bbd8a9024c3c2f308dd3be9b0eeff3cb852772c9f3cf0c4909dbafd4") version("0.1.3", sha256="10ba8b2803632846f6f011278e3810188a078d89afcb4a38bed0cbf10f775736") @@ -61,7 +63,7 @@ class PyFparser(PythonPackage): @run_after("install") @on_package_attributes(run_tests=True) def check_build(self): - pytest = which("pytest") + pytest = which("pytest", required=True) # Limit pystest to search inside the build tree with working_dir("src"): pytest() diff --git a/repos/spack_repo/builtin/packages/py_fracridge/package.py b/repos/spack_repo/builtin/packages/py_fracridge/package.py index 232fc0843a9..b8fe898cb04 100644 --- a/repos/spack_repo/builtin/packages/py_fracridge/package.py +++ b/repos/spack_repo/builtin/packages/py_fracridge/package.py @@ -16,15 +16,20 @@ class PyFracridge(PythonPackage): license("BSD-2-Clause") + version("3.0", sha256="b9df5c433381bd6e80d7bb5bc384865e03b5b9f6c20e6b252c5e095b2e73fe21") version("2.0", sha256="d49fbffbd58e85da38f572e6ca2ef7563b1a6c8c4e1ab779e2dd207ac944db90") - version("1.4.3", sha256="0446d486f00fea02110567fd9df14b8b2a7b155dc72700af9201873ea11c27cc") - depends_on("python@3.7:", when="@2:", type=("build", "run")) - depends_on("python@3.6:", type=("build", "run")) + with default_args(type="build"): + depends_on("py-setuptools@64:", when="@3:") + depends_on("py-setuptools@42:") - depends_on("py-setuptools@42:", type="build") - depends_on("py-setuptools-scm+toml@3.4:", type=("build", "run")) - depends_on("py-scikit-learn", when="@2:", type=("build", "run")) - depends_on("py-scikit-learn@0.23.2", when="@1.4", type=("build", "run")) - depends_on("py-numba", type=("build", "run")) - depends_on("pil", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("python@3.12:", when="@3:") + + depends_on("py-scikit-learn@1.8:", when="@3:") + depends_on("py-scikit-learn") + depends_on("py-numba") + # version restriction for py-setuptools-scm from pyproject.toml + depends_on("py-setuptools-scm@8:", when="@3:") + depends_on("py-setuptools-scm+toml@3.4:", when="@2") + depends_on("pil") diff --git a/repos/spack_repo/builtin/packages/py_freetype_py/package.py b/repos/spack_repo/builtin/packages/py_freetype_py/package.py new file mode 100644 index 00000000000..fc61db7b766 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_freetype_py/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 PyFreetypePy(PythonPackage): + """Freetype Python provides bindings for the FreeType library. Only the + high-level API is bound.""" + + homepage = "https://https://freetype-py.readthedocs.io/en/latest/" + pypi = "freetype-py/freetype-py-2.5.1.zip" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("2.5.1", sha256="cfe2686a174d0dd3d71a9d8ee9bf6a2c23f5872385cf8ce9f24af83d076e2fbd") + + depends_on("py-setuptools@42:", type="build") + depends_on("py-setuptools-scm@3.4: +toml", type="build") + + depends_on("freetype", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_frozendict/package.py b/repos/spack_repo/builtin/packages/py_frozendict/package.py index a2c77ebd550..bd76b4f0d19 100644 --- a/repos/spack_repo/builtin/packages/py_frozendict/package.py +++ b/repos/spack_repo/builtin/packages/py_frozendict/package.py @@ -15,6 +15,7 @@ class PyFrozendict(PythonPackage): license("LGPL-3.0-only") + version("2.4.6", sha256="df7cd16470fbd26fc4969a208efadc46319334eb97def1ddf48919b351192b8e") version("2.3.10", sha256="aadc83510ce82751a0bb3575231f778bc37cbb373f5f05a52b888e26cbb92f79") version("2.3.4", sha256="15b4b18346259392b0d27598f240e9390fafbff882137a9c48a1e0104fb17f78") version("1.2", sha256="774179f22db2ef8a106e9c38d4d1f8503864603db08de2e33be5b778230f6e45") diff --git a/repos/spack_repo/builtin/packages/py_frozenlist/package.py b/repos/spack_repo/builtin/packages/py_frozenlist/package.py index 33aed13ea1c..f6e3e524ae6 100644 --- a/repos/spack_repo/builtin/packages/py_frozenlist/package.py +++ b/repos/spack_repo/builtin/packages/py_frozenlist/package.py @@ -16,16 +16,19 @@ class PyFrozenlist(PythonPackage): license("Apache-2.0") + version("1.8.0", sha256="3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad") version("1.5.0", sha256="81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817") version("1.3.1", sha256="3a735e4211a04ccfa3f4833547acdf5d2f863bfeb01cfd3edaffbc251f15cec8") version("1.3.0", sha256="ce6f2ba0edb7b0c1d8976565298ad2deba6f8064d2bebb6ffce2ca896eb35b0b") version("1.2.0", sha256="68201be60ac56aff972dc18085800b6ee07973c49103a8aba669dee3d71079de") depends_on("c", type="build") + depends_on("cxx", type="build", when="@1.6.0:") # Based on PyPI wheel availability with default_args(type=("build", "run")): - depends_on("python@:3.13") + depends_on("python@:3.14") + depends_on("python@:3.13", when="@:1.7") depends_on("python@:3.12", when="@:1.4.1") depends_on("python@:3.11", when="@:1.4.0") depends_on("python@:3.10", when="@:1.3.1") diff --git a/repos/spack_repo/builtin/packages/py_fsspec/package.py b/repos/spack_repo/builtin/packages/py_fsspec/package.py index 84b6c9c4cd5..f8c95109f2b 100644 --- a/repos/spack_repo/builtin/packages/py_fsspec/package.py +++ b/repos/spack_repo/builtin/packages/py_fsspec/package.py @@ -18,6 +18,8 @@ class PyFsspec(PythonPackage): # Requires pytest skip_modules = ["fsspec.tests"] + version("2026.3.0", sha256="1ee6a0e28677557f8c2f994e3eea77db6392b4de9cd1f5d7a9e87a0ae9d01b41") + version("2025.9.0", sha256="19fd429483d25d28b65ec68f9f4adc16c17ea2c7c7bf54ec61360d478fb19c19") version("2024.10.0", sha256="eda2d8a4116d4f2429db8550f2457da57279247dd930bb12f821b58391359493") version("2024.5.0", sha256="1d021b0b0f933e3b3029ed808eb400c08ba101ca2de4b3483fbc9ca23fcee94a") version("2024.3.1", sha256="f39780e282d7d117ffb42bb96992f8a90795e4d0fb0f661a70ca39fe9c43ded9") @@ -34,8 +36,19 @@ class PyFsspec(PythonPackage): variant("http", default=False, description="HTTPFileSystem support", when="@0.8.1:") - depends_on("py-setuptools", type="build", when="@:2024.4") - depends_on("py-hatchling", type="build", when="@2024.5:") - depends_on("py-hatch-vcs", type="build", when="@2024.5:") - depends_on("py-requests", type=("build", "run"), when="@:2023+http") - depends_on("py-aiohttp", type=("build", "run"), when="+http") + with default_args(type="build"): + depends_on("python@3.10:", when="@2025.12:") + depends_on("python@3.9:", when="@2025.3.2:") + + depends_on("py-hatchling@1.27:", when="@2025.9:") + depends_on("py-hatchling", when="@2024.5:") + depends_on("py-hatch-vcs", when="@2024.5:") + + # Historical dependencies + depends_on("py-setuptools", when="@:2024.4") + + with default_args(type=("build", "run")): + depends_on("py-aiohttp", when="+http") + + # Historical dependencies + depends_on("py-requests", when="@:2023+http") diff --git a/repos/spack_repo/builtin/packages/py_funcy/package.py b/repos/spack_repo/builtin/packages/py_funcy/package.py index 4a444f9189b..fc6900ea67a 100644 --- a/repos/spack_repo/builtin/packages/py_funcy/package.py +++ b/repos/spack_repo/builtin/packages/py_funcy/package.py @@ -15,6 +15,7 @@ class PyFuncy(PythonPackage): license("BSD-3-Clause") + version("2.0", sha256="3963315d59d41c6f30c04bc910e10ab50a3ac4a225868bfa96feed133df075cb") version("1.15", sha256="65b746fed572b392d886810a98d56939c6e0d545abb750527a717c21ced21008") version("1.14", sha256="75ee84c3b446f92e68a857c2267b15a1b49c631c9d5a87a5f063cd2d6761a5c4") diff --git a/repos/spack_repo/builtin/packages/py_furo/package.py b/repos/spack_repo/builtin/packages/py_furo/package.py index 58f200f1520..432115d5d82 100644 --- a/repos/spack_repo/builtin/packages/py_furo/package.py +++ b/repos/spack_repo/builtin/packages/py_furo/package.py @@ -15,6 +15,9 @@ class PyFuro(PythonPackage): license("MIT") + version( + "2025.12.19", sha256="188d1f942037d8b37cd3985b955839fea62baa1730087dc29d157677c857e2a7" + ) version("2024.7.18", sha256="37b08c5fccc95d46d8712c8be97acd46043963895edde05b0f4f135d58325c83") version("2024.5.6", sha256="81f205a6605ebccbb883350432b4831c0196dd3d1bc92f61e1f459045b3d2b0b") version("2024.4.27", sha256="15a9b65269038def2cefafb86c71c6616e3969b8f07ba231f588c10c4aee6d88") @@ -26,5 +29,7 @@ class PyFuro(PythonPackage): depends_on("py-beautifulsoup4", type=("build", "run")) depends_on("py-sphinx@6:7", type=("build", "run")) + depends_on("py-sphinx@7:10", type=("build", "run"), when="@2025.12.19:") depends_on("py-sphinx-basic-ng@1.0.0b2:", type=("build", "run")) depends_on("py-pygments@2.7:", type=("build", "run")) + depends_on("py-accessible-pygments@0.0.5:", type=("build", "run"), when="@2025.07.19:") diff --git a/repos/spack_repo/builtin/packages/py_fury/package.py b/repos/spack_repo/builtin/packages/py_fury/package.py index ad76b799dc8..824e0a85824 100644 --- a/repos/spack_repo/builtin/packages/py_fury/package.py +++ b/repos/spack_repo/builtin/packages/py_fury/package.py @@ -32,7 +32,7 @@ class PyFury(PythonPackage): @on_package_attributes(run_tests=True) def install_test(self): with working_dir("spack-test", create=True): - pytest = which("pytest") + pytest = which("pytest", required=True) pytest( join_path(python_purelib, "fury"), # 'Some warning' is not propagated to __warningregistry__ so diff --git a/repos/spack_repo/builtin/packages/py_fypp/package.py b/repos/spack_repo/builtin/packages/py_fypp/package.py index c0db9198ac9..06cbfac2be0 100644 --- a/repos/spack_repo/builtin/packages/py_fypp/package.py +++ b/repos/spack_repo/builtin/packages/py_fypp/package.py @@ -15,6 +15,7 @@ class PyFypp(PythonPackage): license("BSD-2-Clause") + version("3.2", sha256="42a551fa82df5ea752f0c0dd5c008d5f544e1aa90c1abd054b0afd8170878dba") version("3.1", sha256="bac9d02be308b6bff7fd17da835f01fb9ce9b2dddaaad1ccd22ac7628b2dc53c") version("2.1.1", sha256="3744ad17045e91466bbb75a33ce0cab0f65bc2c377127067a932cdf15655e049") diff --git a/repos/spack_repo/builtin/packages/py_gast/package.py b/repos/spack_repo/builtin/packages/py_gast/package.py index 30a98f69390..d71a2d40754 100644 --- a/repos/spack_repo/builtin/packages/py_gast/package.py +++ b/repos/spack_repo/builtin/packages/py_gast/package.py @@ -15,6 +15,8 @@ class PyGast(PythonPackage): license("BSD-3-Clause") + version("0.7.0", sha256="0bb14cd1b806722e91ddbab6fb86bba148c22b40e7ff11e248974e04c8adfdae") + version("0.6.0", sha256="88fc5300d32c7ac6ca7b515310862f71e6fdf2c029bbec7c66c0f5dd47b6b1fb") version("0.5.4", sha256="9c270fe5f4b130969b54174de7db4e764b09b4f7f67ccfc32480e29f78348d97") version("0.5.3", sha256="cfbea25820e653af9c7d1807f659ce0a0a9c64f2439421a7bba4f0983f532dea") version("0.5.2", sha256="f81fcefa8b982624a31c9e4ec7761325a88a0eba60d36d1da90e47f8fe3c67f7") diff --git a/repos/spack_repo/builtin/packages/py_gcovr/package.py b/repos/spack_repo/builtin/packages/py_gcovr/package.py index fb05a7f2e11..86bcc8df280 100644 --- a/repos/spack_repo/builtin/packages/py_gcovr/package.py +++ b/repos/spack_repo/builtin/packages/py_gcovr/package.py @@ -16,15 +16,25 @@ class PyGcovr(PythonPackage): homepage = "https://gcovr.com/" pypi = "gcovr/gcovr-4.2.tar.gz" + version("8.6", sha256="b2e7042abca9321cadbab8a06eb34d19f801b831557b28cdc30a029313de8b9e") + version("8.5", sha256="9f0e21aab72b70fc26a4a0b6e35f25b97eefb5ce6e9c57388bf4a065726f7965") + version("8.4", sha256="8ea0cf23176b1029f28db679d712ca6477b3807097c3755c135bdc53b51cfa72") + version("8.3", sha256="faa371f9c4a7f78c9800da655107d4f99f04b718d1c0d9f48cafdcbef0049079") + version("8.2", sha256="9a1dddd4585d13ec77555db5d6b6a31ee81587ea6fc604ff9fcd232cb0782df5") version("7.2", sha256="e3e95cb56ca88dbbe741cb5d69aa2be494eb2fc2a09ee4f651644a670ee5aeb3") version("5.2", sha256="217195085ec94346291a87b7b1e6d9cfdeeee562b3e0f9a32b25c9530b3bce8f") version("4.2", sha256="5aae34dc81e51600cfecbbbce3c3a80ce3f7548bc0aa1faa4b74ecd18f6fca3f") + depends_on("python@3.10:", when="@8.6:", type=("build", "run")) + depends_on("python@3.9:", when="@8.3:", type=("build", "run")) depends_on("python@3.8:", when="@7.2:", type=("build", "run")) depends_on("python@3.7:", when="@5.1:", type=("build", "run")) depends_on("python@3.6:", when="@5.0", type=("build", "run")) depends_on("python@2.7:2,3.5:", when="@:4", type=("build", "run")) - depends_on("py-setuptools", type=("build", "run")) + depends_on("py-setuptools", type=("build", "run"), when="@:8.2") + depends_on("py-hatchling", when="@8.3:", type="build") + depends_on("py-hatch-vcs", when="@8.3:", type="build") + depends_on("py-hatch-fancy-pypi-readme", when="@8.3:", type="build") depends_on("py-jinja2", type=("build", "run")) depends_on("py-lxml", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_gcsfs/package.py b/repos/spack_repo/builtin/packages/py_gcsfs/package.py index b8ebec068e2..b5bdd503565 100644 --- a/repos/spack_repo/builtin/packages/py_gcsfs/package.py +++ b/repos/spack_repo/builtin/packages/py_gcsfs/package.py @@ -15,15 +15,18 @@ class PyGcsfs(PythonPackage): license("BSD-3-Clause") + version("2025.9.0", sha256="36b8c379d9789d5332a45a3aa2840ec518ff73c6d21c1e962f53318d1cd65db9") version("2024.2.0", sha256="f7cffd7cae2fb50c56ef883f8aef9792be045b5059f06c1902c3a6151509f506") version("2023.1.0", sha256="0a7b7ca8c1affa126a14ba35d7b7dff81c49e2aaceedda9732c7f159a4837a26") depends_on("py-setuptools", type="build") - depends_on("py-aiohttp", type=("build", "run")) - depends_on("py-decorator@4.1.3:", type=("build", "run")) - depends_on("py-fsspec@2024.2.0", type=("build", "run"), when="@2024.2.0") - depends_on("py-fsspec@2023.1.0", type=("build", "run"), when="@2023.1.0") - depends_on("py-google-auth@1.2:", type=("build", "run")) - depends_on("py-google-auth-oauthlib", type=("build", "run")) - depends_on("py-google-cloud-storage", type=("build", "run")) - depends_on("py-requests", type=("build", "run")) + + with default_args(type=("build", "run")): + depends_on("py-aiohttp") + depends_on("py-decorator@4.1.3:") + for v in ["2025.9.0", "2024.2.0", "2023.1.0"]: + depends_on(f"py-fsspec@{v}", when=f"@{v}") + depends_on("py-google-auth@1.2:") + depends_on("py-google-auth-oauthlib") + depends_on("py-google-cloud-storage") + depends_on("py-requests") diff --git a/repos/spack_repo/builtin/packages/py_gdbgui/package.py b/repos/spack_repo/builtin/packages/py_gdbgui/package.py deleted file mode 100644 index df750393814..00000000000 --- a/repos/spack_repo/builtin/packages/py_gdbgui/package.py +++ /dev/null @@ -1,27 +0,0 @@ -# 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 PyGdbgui(PythonPackage): - """gdbgui is a modern, free, browser-based frontend to gdb""" - - homepage = "https://gdbgui.com" - pypi = "gdbgui/gdbgui-0.11.2.1.tar.gz" - - license("GPL-3.0-or-later") - - version("0.13.2.0", sha256="80e347a08b8cc630ab9f68482a1ed92c844fbfde46dc21fd39f3e6ef14b72e54") - - depends_on("py-setuptools", type=("build", "run")) - depends_on("py-flask@0.12.2:0", type=("build", "run")) - depends_on("py-flask-compress@1.4.0:1", type=("build", "run")) - depends_on("py-flask-socketio@2.9.3:2", type=("build", "run")) - depends_on("py-gevent@1.2.2:1", type=("build", "run")) - depends_on("py-pygdbmi@0.9.0.0:0", type=("build", "run")) - depends_on("py-pygments@2.2.0:2", type=("build", "run")) - depends_on("gdb", type="run") diff --git a/repos/spack_repo/builtin/packages/py_gdown/package.py b/repos/spack_repo/builtin/packages/py_gdown/package.py index 52f7e8aaf39..0f1f4f7e99c 100644 --- a/repos/spack_repo/builtin/packages/py_gdown/package.py +++ b/repos/spack_repo/builtin/packages/py_gdown/package.py @@ -15,6 +15,7 @@ class PyGdown(PythonPackage): license("MIT") + version("5.2.1", sha256="247c2ad1f579db5b66b54c04e6a871995fc8fd7021708b950b8ba7b32cf90323") version("5.2.0", sha256="2145165062d85520a3cd98b356c9ed522c5e7984d408535409fd46f94defc787") with default_args(type="build"): diff --git a/repos/spack_repo/builtin/packages/py_geemap/package.py b/repos/spack_repo/builtin/packages/py_geemap/package.py index f483c3a9c60..50c706c9149 100644 --- a/repos/spack_repo/builtin/packages/py_geemap/package.py +++ b/repos/spack_repo/builtin/packages/py_geemap/package.py @@ -15,23 +15,31 @@ class PyGeemap(PythonPackage): license("MIT") + version("0.36.3", sha256="5307cb29eeae6ce1a3b4fee3a8a09ae091d5e5afc05c2b4d4d3007d7e24ec257") + version("0.36.1", sha256="378bbaaf87a74f70f021ae727d8310871fe35a7fc4b14321dbc698a56730426c") + version("0.36.0", sha256="cb5da3bc6414d4b75dc97a333e46cadc2492de992741abcb09d5b875e6f65823") version("0.35.1", sha256="98f3f17fb1d07a6fe43b06f03fb680e10517adfd96002184015a3d4fe92435d6") with default_args(type="build"): - depends_on("py-setuptools@64:") - depends_on("py-setuptools-scm@8:") + depends_on("py-hatchling", when="@0.36:") + depends_on("py-hatch-jupyter-builder@0.5:", when="@0.36:") + + # Historical dependencies + depends_on("py-setuptools@64:", when="@:0.35") + depends_on("py-setuptools-scm@8:", when="@:0.35") with default_args(type=("build", "run")): + depends_on("py-anywidget", when="@0.36:") depends_on("py-bqplot") - depends_on("py-colour") + depends_on("py-earthengine-api@1.5.12:", when="@0.36.1:") depends_on("py-earthengine-api@1:") + depends_on("py-eerepr@0.1:", when="@0.36:") depends_on("py-eerepr@0.0.4:") depends_on("py-folium@0.17:") depends_on("py-geocoder") depends_on("py-ipyevents") depends_on("py-ipyfilechooser@0.6:") depends_on("py-ipyleaflet@0.19.2:") - depends_on("py-ipytree") depends_on("py-matplotlib") depends_on("py-numpy") depends_on("py-pandas") @@ -40,3 +48,7 @@ class PyGeemap(PythonPackage): depends_on("py-pyshp@2.3.1:") depends_on("py-python-box") depends_on("py-scooby") + + # Historical dependencies + depends_on("py-colour", when="@:0.36.0") + depends_on("py-ipytree", when="@:0.36.2") diff --git a/repos/spack_repo/builtin/packages/py_gemmi/package.py b/repos/spack_repo/builtin/packages/py_gemmi/package.py new file mode 100644 index 00000000000..a59b66e7efb --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_gemmi/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 PyGemmi(PythonPackage): + """Library for structural biology.""" + + homepage = "https://github.com/project-gemmi/gemmi" + pypi = "gemmi/gemmi-0.7.1.tar.gz" + + maintainers("LydDeb") + + license("MPL-2.0", checked_by="LydDeb") + + version("0.7.1", sha256="73bb4a2c574ef7586efdf0161aae22bb75c0301af5e9cc22252877e707facdd2") + version("0.6.7", sha256="5c0809329ba8a9711fdb1655d13c14e226828933e33e8816091a09d3f0ce35ce") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("cmake@3.15:3.22", type="build") + + depends_on("python@3.8:3.10", type=("build", "run"), when="@0.7.1:") + depends_on("python@3.7:", type=("build", "run"), when="@0.6.7") + depends_on("py-scikit-build-core@0.11.1:0.11", type=("build", "run"), when="@0.7.1:") + depends_on("py-scikit-build-core@0.10.5:0.10", type=("build", "run"), when="@0.6.7") + depends_on("py-nanobind@2.4:", type=("build", "run"), when="@0.7.1:") + depends_on("py-pybind11@2.6.2:", type=("build", "run"), when="@0.6.7:0.6") + depends_on("py-pybind11-stubgen@2.5.1:2.5", type=("build", "run"), when="@0.6.7") + depends_on("py-typing-extensions@4.0:", type=("build", "run"), when="@0.7.1") + depends_on("py-numpy", type=("build", "run"), when="@0.6.7") diff --git a/repos/spack_repo/builtin/packages/py_gensim/package.py b/repos/spack_repo/builtin/packages/py_gensim/package.py index 9bf6e654430..ff323320ff5 100644 --- a/repos/spack_repo/builtin/packages/py_gensim/package.py +++ b/repos/spack_repo/builtin/packages/py_gensim/package.py @@ -19,6 +19,14 @@ class PyGensim(PythonPackage): license("LGPL-2.1-only") + # Using the tarball from github as the one from pypi contains c and cpp + # files generated using cython version 0.29.32. These will not compile + # with python@3.12: or py-numpy@1.26: + version( + "4.4.0", + url="https://github.com/piskvorky/gensim/archive/refs/tags/4.4.0.tar.gz", + sha256="0c1c8984f18512aba04332b45dc58698ac277dfa1d314a190a3f07edc48c31ac", + ) version("4.3.1", sha256="8b5f11c0e6a5308086b48e8f6841223a4fa1a37d513684612b7ee854b533015f") version("3.8.3", sha256="786adb0571f75114e9c5f7a31dd2e6eb39a9791f22c8757621545e2ded3ea367") version("3.8.1", sha256="33277fc0a8d7b0c7ce70fcc74bb82ad39f944c009b334856c6e86bf552b1dfdc") @@ -29,15 +37,21 @@ class PyGensim(PythonPackage): depends_on("python@2.7:2.8,3.5:", type=("build", "run")) depends_on("python@3.8:", type=("build", "run"), when="@4.3.1:") + depends_on("python@3.9:", type=("build", "run"), when="@4.4:") depends_on("py-setuptools", type="build") depends_on("py-cython", type=("build", "run"), when="@4.3.1:") + depends_on("py-cython@3.1.3:", type=("build", "run"), when="@4.4.0:") - depends_on("py-numpy@1.11.3:", type=("build", "run")) - depends_on("py-numpy@1.18.5:", type=("build", "run"), when="@4.3.1:") + # Upper version limit related to: https://github.com/piskvorky/gensim/issues/3541 + depends_on("py-numpy@1.11.3:1.25", type=("build", "run"), when="@:3.8.3") + depends_on("py-numpy@1.18.5:1.25", type=("build", "run"), when="@4.3.1") + depends_on("py-numpy@1.18.5:", type=("build", "run"), when="@4.4:") - depends_on("py-scipy@0.18.1:", type=("build", "run")) - depends_on("py-scipy@1.7.0:", type=("build", "run"), when="@4.3.1:") + # Upper version limit related to: https://github.com/piskvorky/gensim/issues/3525 + depends_on("py-scipy@0.18.1:1.12", type=("build", "run"), when="@:3.8.3") + depends_on("py-scipy@1.7.0:1.12", type=("build", "run"), when="@4.3.1") + depends_on("py-scipy@1.7.0:", type=("build", "run"), when="@4.4:") depends_on("py-six@1.5.0:", type=("build", "run"), when="@:3.8.3") @@ -45,4 +59,5 @@ class PyGensim(PythonPackage): depends_on("py-smart-open@1.8.1:", when="@3.8.1:", type=("build", "run")) def setup_build_environment(self, env: EnvironmentModifications) -> None: - env.set("GENSIM_CYTHON_REQUIRES", "Cython=={0}".format(self.spec["py-cython"].version)) + if self.spec.satisfies("^py-cython"): + env.set("GENSIM_CYTHON_REQUIRES", "Cython=={0}".format(self.spec["py-cython"].version)) diff --git a/repos/spack_repo/builtin/packages/py_geopandas/package.py b/repos/spack_repo/builtin/packages/py_geopandas/package.py index a0a2d614480..abc0beeda15 100644 --- a/repos/spack_repo/builtin/packages/py_geopandas/package.py +++ b/repos/spack_repo/builtin/packages/py_geopandas/package.py @@ -22,40 +22,62 @@ class PyGeopandas(PythonPackage): maintainers("adamjstewart") version("main", branch="main") - version("master", branch="master", deprecated=True) - version("1.1.1", sha256="1745713f64d095c43e72e08e753dbd271678254b24f2e01db8cdb8debe1d293d") - version("1.1.0", sha256="d176b084170539044ce7554a1219a4433fa1bfba94035b5a519c8986330e429e") - version("1.0.1", sha256="b8bf70a5534588205b7a56646e2082fb1de9a03599651b3d80c99ea4c2ca08ab") - version("1.0.0", sha256="386d42c028047e2b0f09191d7859268304761c4711a247173a88891b6161f711") - version("0.14.3", sha256="748af035d4a068a4ae00cab384acb61d387685c833b0022e0729aa45216b23ac") - version("0.11.1", sha256="f0f0c8d0423d30cf81de2056d853145c4362739350a7f8f2d72cc7409ef1eca1") - version("0.11.0", sha256="562fe7dc19a6e0f61532d654c4752f7bf46e0714990c5844fe3de3f9c99cb873") - version("0.10.2", sha256="efbf47e70732e25c3727222019c92b39b2e0a66ebe4fe379fbe1aa43a2a871db") - version("0.10.1", sha256="6429ee4e0cc94f26aff12139445196ef83fe17cadbe816925508a1799f60a681") - version("0.10.0", sha256="3ba1cb298c8e27112debe1d5b7898f100c91cbdf66c7dbf39726d63616cf0c6b") - version("0.9.0", sha256="63972ab4dc44c4029f340600dcb83264eb8132dd22b104da0b654bef7f42630a") - version("0.8.2", sha256="aa9ae82e4e6b52efa244bd4b8bd2363d66693e5592ad1a0f52b6afa8c36348cb") - version("0.8.1", sha256="e28a729e44ac53c1891b54b1aca60e3bc0bb9e88ad0f2be8e301a03b9510f6e2") - version("0.5.0", sha256="d075d2ab61a502ab92ec6b72aaf9610a1340ec24ed07264fcbdbe944b9e68954") - version("0.4.0", sha256="9f5d24d23f33e6d3267a633025e4d9e050b3a1e86d41a96d3ccc5ad95afec3db") - version("0.3.0", sha256="e63bb32a3e516d8c9bcd149c22335575defdc5896c8bdf15c836608f152a920b") + version("1.1.3", sha256="91a31989b6f566012838d21d5f8033f37dce882079ccb7cfdc40d5ccce7f284f") + version("1.1.2", sha256="33f7b33565c46a45b8459a2ab699ec943fdbb5716e58e251b3c413cf7783106c") + + # SQL injection vulnerability + # Reported: https://github.com/geopandas/geopandas/issues/3679 + # Fixed: https://github.com/geopandas/geopandas/pull/3681 + with default_args(deprecated=True): + version("1.1.1", sha256="1745713f64d095c43e72e08e753dbd271678254b24f2e01db8cdb8debe1d293d") + version("1.1.0", sha256="d176b084170539044ce7554a1219a4433fa1bfba94035b5a519c8986330e429e") + version("1.0.1", sha256="b8bf70a5534588205b7a56646e2082fb1de9a03599651b3d80c99ea4c2ca08ab") + version("1.0.0", sha256="386d42c028047e2b0f09191d7859268304761c4711a247173a88891b6161f711") + version( + "0.14.3", sha256="748af035d4a068a4ae00cab384acb61d387685c833b0022e0729aa45216b23ac" + ) + version( + "0.11.1", sha256="f0f0c8d0423d30cf81de2056d853145c4362739350a7f8f2d72cc7409ef1eca1" + ) + version( + "0.11.0", sha256="562fe7dc19a6e0f61532d654c4752f7bf46e0714990c5844fe3de3f9c99cb873" + ) + version( + "0.10.2", sha256="efbf47e70732e25c3727222019c92b39b2e0a66ebe4fe379fbe1aa43a2a871db" + ) + version( + "0.10.1", sha256="6429ee4e0cc94f26aff12139445196ef83fe17cadbe816925508a1799f60a681" + ) + version( + "0.10.0", sha256="3ba1cb298c8e27112debe1d5b7898f100c91cbdf66c7dbf39726d63616cf0c6b" + ) + version("0.9.0", sha256="63972ab4dc44c4029f340600dcb83264eb8132dd22b104da0b654bef7f42630a") + version("0.8.2", sha256="aa9ae82e4e6b52efa244bd4b8bd2363d66693e5592ad1a0f52b6afa8c36348cb") + version("0.8.1", sha256="e28a729e44ac53c1891b54b1aca60e3bc0bb9e88ad0f2be8e301a03b9510f6e2") + version("0.5.0", sha256="d075d2ab61a502ab92ec6b72aaf9610a1340ec24ed07264fcbdbe944b9e68954") + version("0.4.0", sha256="9f5d24d23f33e6d3267a633025e4d9e050b3a1e86d41a96d3ccc5ad95afec3db") + version("0.3.0", sha256="e63bb32a3e516d8c9bcd149c22335575defdc5896c8bdf15c836608f152a920b") with default_args(type="build"): - depends_on("py-setuptools@61:", when="@0.14:") - depends_on("py-setuptools") + # https://github.com/geopandas/geopandas/pull/3747 + depends_on("py-hatchling@1.5:", when="@1.2:") + depends_on("py-hatch-vcs", when="@1.2:") + + # Historical dependencies + # https://github.com/geopandas/geopandas/pull/3746 + depends_on("py-setuptools@77:", when="@1.1.3:1.1") + depends_on("py-setuptools@61:", when="@0.14:1.1") + depends_on("py-setuptools", when="@:1.1") with default_args(type=("build", "run")): - depends_on("python@3.10:", when="@1.1:") - depends_on("python@3.9:", when="@0.14:") - depends_on("python@3.8:", when="@0.11:") - depends_on("python@3.7:", when="@0.10:") - depends_on("python@3.6:", when="@0.9:") - depends_on("python@3.5:", when="@0.7:") + depends_on("py-numpy@2.0:", when="@1.2:") depends_on("py-numpy@1.24:", when="@1.1:") depends_on("py-numpy@1.22:", when="@0.14.4:") depends_on("py-numpy") + depends_on("py-pyogrio@0.8:", when="@1.2:") depends_on("py-pyogrio@0.7.2:", when="@1:") depends_on("py-packaging", when="@0.11:") + depends_on("py-pandas@2.2:", when="@1.2:") depends_on("py-pandas@2.0:", when="@1.1:") depends_on("py-pandas@1.4:", when="@0.14:") depends_on("py-pandas@1.0:", when="@0.11:") @@ -63,11 +85,15 @@ class PyGeopandas(PythonPackage): depends_on("py-pandas@0.24:", when="@0.9:") depends_on("py-pandas@0.23:", when="@0.6:") depends_on("py-pandas") + # https://github.com/geopandas/geopandas/pull/3621 + depends_on("py-pandas@:2", when="@:1.1.1") + depends_on("py-pyproj@3.7:", when="@1.2:") depends_on("py-pyproj@3.5:", when="@1.1:") depends_on("py-pyproj@3.3:", when="@0.14:") depends_on("py-pyproj@2.6.1.post1:", when="@0.11:") depends_on("py-pyproj@2.2:", when="@0.7:") depends_on("py-pyproj") + depends_on("py-shapely@2.1:", when="@1.2:") depends_on("py-shapely@2.0:", when="@1:") depends_on("py-shapely@1.8:", when="@0.14:") depends_on("py-shapely@1.7:", when="@0.11:") diff --git a/repos/spack_repo/builtin/packages/py_geopmdpy/package.py b/repos/spack_repo/builtin/packages/py_geopmdpy/package.py index d2aba1a52b4..ac8cf7a23ed 100644 --- a/repos/spack_repo/builtin/packages/py_geopmdpy/package.py +++ b/repos/spack_repo/builtin/packages/py_geopmdpy/package.py @@ -13,43 +13,68 @@ class PyGeopmdpy(PythonPackage): homepage = "https://geopm.github.io" git = "https://github.com/geopm/geopm.git" - url = "https://github.com/geopm/geopm/tarball/v3.1.0" + url = "https://github.com/geopm/geopm/tarball/v3.2.2" maintainers("bgeltz", "cmcantalupo") license("BSD-3-Clause") tags = ["e4s"] + variant("grpc", default=False, when="@3.2:", description="Enable gRPC support") + variant( + "stats", + default=False, + when="@3.2:", + description="Enable additional packages for data analysis and post-processing", + ) + variant("optimize", default=True, when="@develop", description="Enable geopmopt support") + version("develop", branch="dev", get_full_repo=True) - version("3.1.0", sha256="2d890cad906fd2008dc57f4e06537695d4a027e1dc1ed92feed4d81bb1a1449e") - version("3.0.1", sha256="32ba1948de58815ee055470dcdea64593d1113a6cad70ce00ab0286c127f8234") + version("3.2.2", sha256="715383060187a84b0d4022a823805b158709ec9225d2f35dba94af63cd260afe") + version( + "3.2.1", + sha256="9177da3af335256592c4ea8ae0dd4f8f9c8fb4caf65965af6216e7975d094b99", + deprecated=True, + ) + version( + "3.2.0", + sha256="b708233e1bfda66408c500f2ac0cbaf042140870bffdced12dd7cabbd18e0025", + deprecated=True, + ) + version( + "3.1.0", + sha256="2d890cad906fd2008dc57f4e06537695d4a027e1dc1ed92feed4d81bb1a1449e", + deprecated=True, + ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated + for ver in ["3.1.0", "3.2.0", "3.2.1", "3.2.2", "develop"]: + depends_on(f"libgeopmd@{ver}", type=("build", "test", "run"), when=f"@{ver}") depends_on("py-dasbus@1.6.0:", type=("build", "run")) - depends_on("py-cffi@1.14.5:", type="run") - depends_on("py-psutil@5.8.0:", type="run") - depends_on("py-jsonschema@3.2.0:", type="run") - depends_on("py-pyyaml@6.0:", type="run") - depends_on("py-setuptools@53.0.0:", type="build") - depends_on("py-setuptools-scm@7.0.3:", when="@3.1:", type="build") - depends_on("py-build@0.9.0:", when="@3.1:", type="build") - - @property - def build_directory(self): - if self.version == Version("3.0.1"): - return "service" - else: - return "geopmdpy" + depends_on("py-cffi@1.14.5:", when="@3.1", type="run") + depends_on("py-cffi@1.14.5:", when="@3.2:", type=("build", "run")) + depends_on("py-psutil@5.8.0:", when="@3.1", type="run") + depends_on("py-psutil@5.8.0:", when="@3.2:", type=("test", "run")) + depends_on("py-jsonschema@3.2.0:", when="@3.1", type="run") + depends_on("py-jsonschema@3.2.0:", when="@3.2:", type=("test", "run")) + depends_on("py-pyyaml@6.0:", when="+stats", type="run") + depends_on("py-seaborn@0.11.2:", when="+stats", type="run") + depends_on("py-setuptools@59.6.0:", when="@3.2:", type="build") + depends_on("py-setuptools-scm@6.4.2:", type="build") + depends_on("py-build@0.9.0:", type="build") + depends_on("py-defusedxml@0.7.1:", when="@3.2:", type="test") + depends_on("py-grpcio@1.30.2:", when="+grpc", type=("build", "run")) + depends_on("py-protobuf@3.12.4:", when="+grpc", type=("build", "run")) + depends_on("py-sdnotify@0.3.2:", when="@3.2.1:", type="run") + depends_on("py-scikit-optimize@0.9.0:", when="+optimize", type="run") + + build_directory = "geopmdpy" def setup_build_environment(self, env: EnvironmentModifications) -> None: if not self.spec.version.isdevelop(): env.set("SETUPTOOLS_SCM_PRETEND_VERSION", self.version) - - @run_before("install") - def populate_version(self): - if self.version == Version("3.0.1"): - with working_dir(join_path(self.build_directory, "geopmdpy")): - with open("version.py", "w") as fd: - fd.write(f"__version__ = '{self.spec.version}'") + if self.version >= Version("3.2.0"): # Required for CFFI API mode builds + env.append_path("C_INCLUDE_PATH", self.spec["libgeopmd"].prefix.include) + env.append_path("LIBRARY_PATH", self.spec["libgeopmd"].prefix.lib) diff --git a/repos/spack_repo/builtin/packages/py_geopmpy/package.py b/repos/spack_repo/builtin/packages/py_geopmpy/package.py index 6828a171dec..88c981dda70 100644 --- a/repos/spack_repo/builtin/packages/py_geopmpy/package.py +++ b/repos/spack_repo/builtin/packages/py_geopmpy/package.py @@ -13,30 +13,65 @@ class PyGeopmpy(PythonPackage): homepage = "https://geopm.github.io" git = "https://github.com/geopm/geopm.git" - url = "https://github.com/geopm/geopm/tarball/v3.1.0" + url = "https://github.com/geopm/geopm/tarball/v3.2.2" maintainers("bgeltz", "cmcantalupo") license("BSD-3-Clause") tags = ["e4s"] version("develop", branch="dev", get_full_repo=True) - version("3.1.0", sha256="2d890cad906fd2008dc57f4e06537695d4a027e1dc1ed92feed4d81bb1a1449e") + version("3.2.2", sha256="715383060187a84b0d4022a823805b158709ec9225d2f35dba94af63cd260afe") + version( + "3.2.1", + sha256="9177da3af335256592c4ea8ae0dd4f8f9c8fb4caf65965af6216e7975d094b99", + deprecated=True, + ) + version( + "3.2.0", + sha256="b708233e1bfda66408c500f2ac0cbaf042140870bffdced12dd7cabbd18e0025", + deprecated=True, + ) + version( + "3.1.0", + sha256="2d890cad906fd2008dc57f4e06537695d4a027e1dc1ed92feed4d81bb1a1449e", + deprecated=True, + ) + + variant("pytorch", default=False, description="Enable PyTorch support (for FFNet agent)") + + for ver in ["3.1.0", "3.2.0", "3.2.1", "3.2.2", "develop"]: + depends_on(f"py-geopmdpy@{ver}", type="run", when=f"@{ver}") + depends_on(f"libgeopm@{ver}", type=("build", "run"), when=f"@{ver}") depends_on("python@3.6:3", type=("build", "run")) - depends_on("py-setuptools@53.0.0:", type="build") - depends_on("py-setuptools-scm@7.0.3:", when="@3.1:", type="build") + depends_on("py-setuptools@53.0.0:", when="@3.1", type="build") + depends_on("py-setuptools@59.6.0:", when="@3.2:", type="build") + depends_on("py-setuptools-scm@6.4.2:", when="@3.1:", type="build") depends_on("py-build@0.9.0:", when="@3.1:", type="build") - depends_on("py-cffi@1.14.5:", type="run") + depends_on("py-cffi@1.14.5:", when="@3.1.0", type="run") + depends_on("py-cffi@1.14.5:", when="@3.2:", type=("build", "run")) depends_on("py-natsort@8.2.0:", type="run") depends_on("py-numpy@1.19.5:", type="run") + depends_on("py-numpy@1.19.5:1", when="@3.2", type="run") depends_on("py-pandas@1.1.5:", type="run") depends_on("py-tables@3.7.0:", type="run") depends_on("py-psutil@5.8.0:", type="run") depends_on("py-pyyaml@6.0:", type="run") + + # Integration test dependencies depends_on("py-docutils@0.18:", type="run") + depends_on("py-dash@2.17.1:", type="run") + depends_on("py-matplotlib", type="run") + depends_on("py-plotly@5.18.0:", type="run") + depends_on("py-torch@1.10.2:", when="+pytorch", type="run") + depends_on("numactl", type="run") + depends_on("stress-ng", type="run") build_directory = "geopmpy" def setup_build_environment(self, env: EnvironmentModifications) -> None: if not self.spec.version.isdevelop(): env.set("SETUPTOOLS_SCM_PRETEND_VERSION", self.version) + if self.version >= Version("3.2.0"): # Required for CFFI API mode builds + env.append_path("C_INCLUDE_PATH", self.spec["libgeopm"].prefix.include) + env.append_path("LIBRARY_PATH", self.spec["libgeopm"].prefix.lib) diff --git a/repos/spack_repo/builtin/packages/py_geoviews/package.py b/repos/spack_repo/builtin/packages/py_geoviews/package.py index 570a7581897..cb8820c81fa 100644 --- a/repos/spack_repo/builtin/packages/py_geoviews/package.py +++ b/repos/spack_repo/builtin/packages/py_geoviews/package.py @@ -16,6 +16,7 @@ class PyGeoviews(PythonPackage): license("BSD-3-Clause", checked_by="climbfuji") + version("1.14.0", sha256="3cca679a32b2c97215424a3a154e3fa343f61e2589d15e333e493bdf2f62fc6a") version("1.13.0", sha256="7554a1e9114995acd243546fac6c6c7f157fc28529fde6ab236a72a6e77fe0bf") # version("1.12.0", sha256="e2cbef0605e8fd1529bc643a31aeb61997f8f93c9b41a5aff8b2b355a76fa789") @@ -23,6 +24,12 @@ class PyGeoviews(PythonPackage): depends_on("py-hatchling", type="build") depends_on("py-hatch-vcs", type="build") depends_on("py-bokeh@3.5", type=("build", "run")) + depends_on("py-bokeh@3.6:", type=("build", "run"), when="@1.14:") + + # nodejs and npm are not explicitly listed but to build geoviews, py-bokeh needs them. + # Setting as a dep in py-bokeh is not sufficient + depends_on("node-js@18:", type="build", when="^py-bokeh@3.5:") + depends_on("npm", type="build", when="^py-bokeh@3.5:") depends_on("py-cartopy@0.18:", type="run") depends_on("py-holoviews@1.16:", type="run") @@ -30,6 +37,7 @@ class PyGeoviews(PythonPackage): depends_on("py-packaging", type="run") depends_on("py-panel@1:", type="run") depends_on("py-param", type="run") + depends_on("py-param@1.9.3:2", type="run", when="@1.14.0") depends_on("py-pyproj", type="run") depends_on("py-shapely", type="run") depends_on("py-xyzservices", type="run") diff --git a/repos/spack_repo/builtin/packages/py_gest_api/package.py b/repos/spack_repo/builtin/packages/py_gest_api/package.py new file mode 100644 index 00000000000..417530a9352 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_gest_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 PyGestApi(PythonPackage): + """Standardized interface for generators in optimization libraries""" + + homepage = "https://gest-api.readthedocs.io" + pypi = "gest-api/gest_api-0.1.tar.gz" + git = "https://github.com/campa-consortium/gest-api" + + maintainers("shuds13", "jlnav", "RemiLehe") + license("BSD-3-Clause") + + version("0.1", sha256="c5712721072fab8fdef7e976d4140db99729245f34ff36eefc0737c5197d25a8") + + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-pydantic@2:", type=("build", "run")) + depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_gevent/package.py b/repos/spack_repo/builtin/packages/py_gevent/package.py index aadde2ff2c9..0220d4e7674 100644 --- a/repos/spack_repo/builtin/packages/py_gevent/package.py +++ b/repos/spack_repo/builtin/packages/py_gevent/package.py @@ -16,6 +16,8 @@ class PyGevent(PythonPackage): license("MIT") + version("26.4.0", sha256="288d03addfccf0d1c67268358b6759b04392bf3bc35d26f3d9a45c82899c292d") + version("25.5.1", sha256="582c948fa9a23188b890d0bc130734a506d039a2e5ad87dae276a456cc683e61") version("24.11.1", sha256="8bd1419114e9e4a3ed33a5bad766afff9a3cf765cb440a582a1b3a9bc80c1aca") version("24.10.3", sha256="aa7ee1bd5cabb2b7ef35105f863b386c8d5e332f754b60cfc354148bd70d35d1") version("24.2.1", sha256="432fc76f680acf7cf188c2ee0f5d3ab73b63c1f03114c7cd8a34cebbe5aa2056") @@ -24,34 +26,42 @@ class PyGevent(PythonPackage): version("21.8.0", sha256="43e93e1a4738c922a2416baf33f0afb0a20b22d3dba886720bc037cd02a98575") version("1.5.0", sha256="b2814258e3b3fb32786bb73af271ad31f51e1ac01f33b37426b66cb8491b4c29") - depends_on("c", type="build") # generated - - depends_on("gmake", type="build") - - depends_on("python@3.9:", when="@24.10.1:", type=("build", "run")) - depends_on("python@3.8:", when="@23.7.0:", type=("build", "run")) - depends_on("python@:3.10", when="@:21.12", type=("build", "run")) - - depends_on("py-setuptools@40.8:", when="@20.5.1:", type=("build", "run")) - depends_on("py-setuptools@40.8:", when="@1.5:", type="build") - depends_on("py-setuptools@24.2:", when="@:1.4", type="build") - depends_on("py-cython@3.0.11:", when="@24.10.1:", type="build") - depends_on("py-cython@3.0.8:", when="@24.2.1:", type="build") - depends_on("py-cython@3.0.2:", when="@23.9.0:", type="build") - depends_on("py-cython@3:", when="@20.5.1:", type="build") - depends_on("py-cython@0.29.14:", when="@1.5:", type="build") - depends_on("py-cffi@1.17.1:", when="@24.10.1:", type=("build", "run")) - depends_on("py-cffi@1.12.3:", type=("build", "run")) - depends_on("py-greenlet@3.1.1:", when="@24.10.1:", type=("build", "run")) # setup.py - depends_on("py-greenlet@3.0.3:", when="@24.2.1:", type=("build", "run")) - depends_on("py-greenlet@3:", when="@23.7: ^python@3.12:", type=("build", "run")) - depends_on("py-greenlet@2:", when="@22.10.2: ^python@:3.11", type=("build", "run")) - depends_on("py-greenlet@1.1:1", when="@21.8:21.12.0", type=("build", "run")) - depends_on("py-greenlet@0.4.17:1", when="@20.12:21.1.2", type=("build", "run")) - depends_on("py-greenlet@0.4.14:", type=("build", "run")) - depends_on("py-zope-event", when="@20.5.1:", type=("build", "run")) - depends_on("py-zope-interface", when="@20.5.1:", type=("build", "run")) - + with default_args(type="build"): + depends_on("c") + depends_on("gmake") + + depends_on("py-setuptools@40.8:", when="@1.5:") + depends_on("py-setuptools@24.2:", when="@:1.4") + depends_on("py-cython@3.2.1:", when="@26:") + depends_on("py-cython@3.0.11:", when="@24.10.1:") + depends_on("py-cython@3.0.8:", when="@24.2.1:") + depends_on("py-cython@3.0.2:", when="@23.9.0:") + depends_on("py-cython@3:", when="@20.5.1:") + depends_on("py-cython@0.29.14:", when="@1.5:") + + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@24.10.1:") + depends_on("python@3.8:", when="@23.7.0:") + depends_on("python@:3.10", when="@:21.12") + + depends_on("py-setuptools@40.8:", when="@20.5.1:") + # https://github.com/pypa/distutils/pull/335 + depends_on("py-setuptools@:80") + + depends_on("py-cffi@1.17.1:", when="@24.10.1:") + depends_on("py-cffi@1.12.3:") + depends_on("py-greenlet@3.2.2:", when="@25.5.1:") # setup.py + depends_on("py-greenlet@3.0.3:", when="@24.2.1:") + depends_on("py-greenlet@3:", when="@23.7: ^python@3.12:") + depends_on("py-greenlet@2:", when="@22.10.2: ^python@:3.11") + depends_on("py-greenlet@1.1:1", when="@21.8:21.12.0") + depends_on("py-greenlet@0.4.17:1", when="@20.12:21.1.2") + depends_on("py-greenlet@0.4.14:") + depends_on("py-zope-event", when="@20.5.1:") + depends_on("py-zope-interface", when="@20.5.1:") + + # https://github.com/gevent/gevent/issues/2076 + conflicts("^py-cython@3.1:", when="@:24.10.3") # https://github.com/gevent/gevent/issues/1599 conflicts("^py-cython@3:", when="@:20.5.0") diff --git a/repos/spack_repo/builtin/packages/py_gfal2_python/package.py b/repos/spack_repo/builtin/packages/py_gfal2_python/package.py index a31fb89b13a..0ab96f68738 100644 --- a/repos/spack_repo/builtin/packages/py_gfal2_python/package.py +++ b/repos/spack_repo/builtin/packages/py_gfal2_python/package.py @@ -19,6 +19,7 @@ class PyGfal2Python(PythonPackage): version("1.13.0", sha256="5be42cc894fa20af3d6f6dbb30dfd4d29ab49bd5f15b3e3e754aa25c5ed17997") + depends_on("c", type="build") depends_on("cxx", type="build") depends_on("python", type="build") diff --git a/repos/spack_repo/builtin/packages/py_gimmik/package.py b/repos/spack_repo/builtin/packages/py_gimmik/package.py index 72671487eea..55502fde6eb 100644 --- a/repos/spack_repo/builtin/packages/py_gimmik/package.py +++ b/repos/spack_repo/builtin/packages/py_gimmik/package.py @@ -22,11 +22,7 @@ class PyGimmik(PythonPackage): version("3.2.1", sha256="048644bd71497eb07e144f2c22fdee49ba23e1cde5fb954c3c30c4e3ea23687a") version("3.0", sha256="45c2da7acff3201b7796ba731e4be7f3b4f39469ff1f1bc0ddf4f19c4a6af010") - version("2.3", sha256="c019c85316bcf0d5e84de9b7d10127355dfe8037c0e37f1880a9819ce92b74e1") - version("2.2", sha256="9144640f94aab92f9c5dfcaf16885a79428ab97337cf503a4b2dddeb870f3cf0") - depends_on("python@3.8", when="@:2.3", type=("build", "run")) - depends_on("python@3.9:", when="@3.0:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-numpy@1.7:", type=("build", "run")) depends_on("py-mako", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_gitpython/package.py b/repos/spack_repo/builtin/packages/py_gitpython/package.py index ab6bdf81a1c..571897e0862 100644 --- a/repos/spack_repo/builtin/packages/py_gitpython/package.py +++ b/repos/spack_repo/builtin/packages/py_gitpython/package.py @@ -16,84 +16,6 @@ class PyGitpython(PythonPackage): license("BSD-3-Clause") version("3.1.43", sha256="35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2024-22190 - version( - "3.1.40", sha256="22b126e9ffb671fdd0c129796343a02bf67bf2994b35449ffc9321aa755e18a4" - ) - version( - "3.1.34", sha256="85f7d365d1f6bf677ae51039c1ef67ca59091c7ebd5a3509aa399d4eda02d6dd" - ) - version( - "3.1.27", sha256="1c885ce809e8ba2d88a29befeb385fcea06338d3640712b59ca623c220bb5704" - ) - version( - "3.1.24", sha256="df83fdf5e684fef7c6ee2c02fc68a5ceb7e7e759d08b694088d0cacb4eba59e5" - ) - version( - "3.1.23", sha256="aaae7a3bfdf0a6db30dc1f3aeae47b71cd326d86b936fe2e158aa925fdf1471c" - ) - version( - "3.1.22", sha256="e1589f27c3cd1f33b22db1df194201b5abca6b4cc5450f13f9c371e099c1b24f" - ) - version( - "3.1.20", sha256="df0e072a200703a65387b0cfdf0466e3bab729c0458cf6b7349d0e9877636519" - ) - version( - "3.1.19", sha256="18f4039b96b5567bc4745eb851737ce456a2d499cecd71e84f5c0950e92d0e53" - ) - version( - "3.1.18", sha256="b838a895977b45ab6f0cc926a9045c8d1c44e2b653c1fcc39fe91f42c6e8f05b" - ) - version( - "3.1.17", sha256="ee24bdc93dce357630764db659edaf6b8d664d4ff5447ccfeedd2dc5c253f41e" - ) - version( - "3.1.16", sha256="2bfcd25e6b81fe431fa3ab1f0975986cfddabf7870a323c183f3afbc9447c0c5" - ) - version( - "3.1.15", sha256="05af150f47a5cca3f4b0af289b73aef8cf3c4fe2385015b06220cbcdee48bb6e" - ) - version( - "3.1.14", sha256="be27633e7509e58391f10207cd32b2a6cf5b908f92d9cd30da2e514e1137af61" - ) - version( - "3.1.13", sha256="8621a7e777e276a5ec838b59280ba5272dd144a18169c36c903d8b38b99f750a" - ) - version( - "3.1.12", sha256="42dbefd8d9e2576c496ed0059f3103dcef7125b9ce16f9d5f9c834aed44a1dac" - ) - version( - "3.1.11", sha256="befa4d101f91bad1b632df4308ec64555db684c360bd7d2130b4807d49ce86b8" - ) - version( - "3.1.10", sha256="f488d43600d7299567b59fe41497d313e7c1253a9f2a8ebd2df8af2a1151c71d" - ) - version("3.1.9", sha256="a03f728b49ce9597a6655793207c6ab0da55519368ff5961e4a74ae475b9fa8e") - version("3.1.8", sha256="080bf8e2cf1a2b907634761c2eaefbe83b69930c94c66ad11b65a8252959f912") - version("3.1.7", sha256="2db287d71a284e22e5c2846042d0602465c7434d910406990d5b74df4afb0858") - version("3.1.6", sha256="b54969b3262d4647f80ace8e9dd4e3f99ac30cc0f3e766415b349208f810908f") - version("3.1.5", sha256="90400ecfa87bac36ac75dfa7b62e83a02017b51759f6eef4494e4de775b2b4be") - version("3.1.4", sha256="fa98ce1f05805d59bbc3adb16c0780e5ca43b5ea9422feecf1cd0949a61d947e") - version("3.1.3", sha256="e107af4d873daed64648b4f4beb89f89f0cfbe3ef558fc7821ed2331c2f8da1a") - version("3.1.2", sha256="864a47472548f3ba716ca202e034c1900f197c0fb3a08f641c20c3cafd15ed94") - version("3.1.1", sha256="6d4f10e2aaad1864bb0f17ec06a2c2831534140e5883c350d58b4e85189dab74") - version("3.1.0", sha256="e426c3b587bd58c482f0b7fe6145ff4ac7ae6c82673fc656f489719abca6f4cb") - version("3.0.9", sha256="7e5df21bfef38505115ad92544fb379e6fedb2753f3b709174c4358cecd0cb97") - version("0.3.6", sha256="e6599fcb939cb9b25a015a429702db39de10f2b493655ed5669c49c37707d233") - depends_on("python@3.4:", type=("build", "run")) - depends_on("python@3.5:", type=("build", "run"), when="@3.1.15:") - depends_on("python@3.6:", type=("build", "run"), when="@3.1.18:") - depends_on("python@3.7:", type=("build", "run"), when="@3.1.22:") depends_on("py-setuptools", type="build") depends_on("py-gitdb@4.0.1:4", type=("build", "run")) - depends_on( - "py-typing-extensions@3.7.4.0:", type=("build", "run"), when="@3.1.16: ^python@:3.7" - ) - depends_on( - "py-typing-extensions@3.7.4.3:", type=("build", "run"), when="@3.1.19:3.1.26 ^python@:3.10" - ) - depends_on( - "py-typing-extensions@3.7.4.3:", type=("build", "run"), when="@3.1.27: ^python@:3.7" - ) diff --git a/repos/spack_repo/builtin/packages/py_glean_sdk/package.py b/repos/spack_repo/builtin/packages/py_glean_sdk/package.py index 2c0421744e5..e9954afbb29 100644 --- a/repos/spack_repo/builtin/packages/py_glean_sdk/package.py +++ b/repos/spack_repo/builtin/packages/py_glean_sdk/package.py @@ -23,3 +23,4 @@ class PyGleanSdk(PythonPackage): depends_on("py-glean-parser@14.0", when="@:60.3") depends_on("py-glean-parser@14.3:", when="@60.4:") depends_on("py-maturin@1") + depends_on("rust", type="build") diff --git a/repos/spack_repo/builtin/packages/py_globus_sdk/package.py b/repos/spack_repo/builtin/packages/py_globus_sdk/package.py index 4960212b9d9..3372cea9534 100644 --- a/repos/spack_repo/builtin/packages/py_globus_sdk/package.py +++ b/repos/spack_repo/builtin/packages/py_globus_sdk/package.py @@ -20,6 +20,35 @@ class PyGlobusSdk(PythonPackage): license("Apache-2.0", checked_by="wdconinc") + version("4.3.1", sha256="f892bf26bb0b48fb96d4a79bd820c103733abbc5068bb96db812e585ffdfe14a") + version("4.3.0", sha256="bc815d7ee9b3e789b9c5f85cb6bafc9b01db777b638147af3c2f035226087b89") + version("4.2.0", sha256="d72715f6feae6dd947e167df803d5c1424b69513bb01f5fb6d184936a74705b2") + version("4.1.0", sha256="2848eeebf9310fa2a580258798a9995020516867116919043bb20ca657b56a9b") + version("4.0.0", sha256="0754e7adc0b193df2a12a847cbe3207392e463bd29a41168283398a7eb86185b") + version("3.65.0", sha256="a4b350b980809e86d768c8e327de9ddee4405b60cfb83429cdf831ac0c63d763") + version("3.64.0", sha256="88e5263af8421d5117845485785f0eda8359927b56c56528a5d489809107000d") + version("3.63.0", sha256="9a3c4668197f710e2748c015eb06f3b5eb34e929028bc4bf37558b8e0022ab45") + version("3.62.0", sha256="5eabe95ee8c8f891b6b3367924037627bcd388b3433f2994062c5efc67915890") + version("3.61.0", sha256="6b9c9f05a095ec7c26b94cbf22ed9dcecd8b4309a8ac17bf823cb349f54c4a01") + version("3.60.0", sha256="9047af9980dd40c878d9d88a8954f6f59dc75ed55a93722c101b0e7f9359740d") + version("3.59.0", sha256="16fd4410e3b61d86a8c88b68910569ca5e31d945a5022cb67b58603987752f74") + version("3.58.0", sha256="21cc8ad62cde662999ff18daf45eccfb374dfc2d2533714d4e51e89f655e0a7a") + version("3.57.0", sha256="15ac2cd1313777be9ce026a51437c90db7c25311e8a4b3950a76ab744d0fb425") + version("3.56.1", sha256="07674b12b0e6667fa7be6fc91e419647bb00c1630a72ee862cec034e011aab2f") + version("3.56.0", sha256="3a794106136f3d43505bb2fede3e81a63735d608a812d11338135126a857e7ca") + version("3.55.0", sha256="3b905c9cc7ec638b9e652130500a2a4bb8fd368a93fec0f07aeda76f66ca66f6") + version("3.54.0", sha256="55297ec204e69f9da2c161b1e7b66906867c9ab32b6e0e3a10aa81066133cda0") + version("3.53.0", sha256="502cf6f2fac3d8f2ee1f0270db07307adb0b928f367dad522c3ec5ac90b5acec") + version("3.52.0", sha256="4ad17d6442608be851c881c746411ed785a66f9532758ff30735ed1061af5d96") + version("3.51.0", sha256="e7b59cd4a4c64cb23d92009b0488ad7e975f8a9701b786b49b7043c6240a59a5") + version("3.50.0", sha256="758e638cd28f13c310d97ee5b30605496b3ca5d83f048d2bc1bbcbe4527c29c5") + version("3.49.0", sha256="6268a1a9ea04cce0eb06cd1a02eeaa8a04dad8682e16a6c65520b743446d0479") + version("3.48.0", sha256="54eab5bbed54924d7d1ad15f7059b6efdb7ef1a1d7c49e06a662b4f3f85428de") + version("3.47.0", sha256="1c860c5115100a2cce1ef9cf1e053bea51393bcfd899f7f33050a29da9ec6198") + version("3.46.0", sha256="eb5e1a3e724b6afe89277f2e3aed6d4959d7d3c4b05ed51f084eaa60ee6a4d25") + version("3.45.0", sha256="80da09d3ca254a63e1aa6d2f7cf86bc3252cf62f4321378a09199283b9df87fb") + version("3.44.0", sha256="645ebeeb7140a5095126696b37323010452a7d8216549c2df5931489a1827983") + version("3.43.0", sha256="753a21baa8c1e26480451cd2075e044e362bbca91b723cc06c4731d4f35097fd") version("3.42.0", sha256="7f239acf26cd98c72568b07cc69d7e8d84511004881435c83129bf37c9495f43") version("3.41.0", sha256="a097829e7516735675c1535bd17a8d9137636678bdbf50e95b3e7af8b32638ef") version("3.40.0", sha256="6394f01c35b2b3275622f4f7c194eaf6750cb6c1e82cb2448dac2eb4ec394d75") @@ -43,17 +72,17 @@ class PyGlobusSdk(PythonPackage): version("3.9.0", sha256="456f707b25a8c502607134f1d699b5970ef1aa9d17877474db73fc6d87c711e9") version("3.8.0", sha256="492611636c190806409198cdadc9960227fa712281dce95ef3ec0d7e8f9823a9") version("3.7.0", sha256="81dbcb7bb7072bf9a5f730becc65e4a0f15f0fa0e2022faf2d943a99b5ce1fb5") - version("3.0.2", sha256="765b577b37edac70c513179607f1c09de7b287baa855165c9dd68de076d67f16") depends_on("python@3.6:", type=("build", "run")) depends_on("python@3.7:", type=("build", "run"), when="@3.17:") depends_on("python@3.8:", type=("build", "run"), when="@3.42:") + depends_on("python@3.9:", type=("build", "run"), when="@4.0.0:") depends_on("py-setuptools", type="build") depends_on("py-requests@2.19.1:2", type=("build", "run")) depends_on("py-pyjwt@2.0.0:2+crypto", type=("build", "run")) - depends_on("py-cryptography@3.3.1:3.3,3.4.1:", when="@3.7:", type=("build", "run")) - depends_on("py-cryptography@2:3.3,3.4.1:3.6", when="@:3.0", type=("build", "run")) - depends_on("py-typing-extensions@4:", when="@3.25: ^python@:3.9", type=("build", "run")) + depends_on("py-cryptography@3.3.1:3.3,3.4.1:", type=("build", "run")) + depends_on("py-typing-extensions@4:", when="@3.46: ^python@:3.10", type=("build", "run")) + depends_on("py-typing-extensions@4:", when="@3.25:3.45 ^python@:3.9", type=("build", "run")) depends_on("py-importlib-resources@5.12.0:", when="@3.41: ^python@:3.8", type=("build", "run")) def url_for_version(self, version): diff --git a/repos/spack_repo/builtin/packages/py_google_api_core/package.py b/repos/spack_repo/builtin/packages/py_google_api_core/package.py index 2aeeccd2ef5..70f3600657a 100644 --- a/repos/spack_repo/builtin/packages/py_google_api_core/package.py +++ b/repos/spack_repo/builtin/packages/py_google_api_core/package.py @@ -11,7 +11,7 @@ class PyGoogleApiCore(PythonPackage): """Google API client core library.""" homepage = "https://github.com/googleapis/python-api-core" - pypi = "google-api-core/google-api-core-2.17.0.tar.gz" + pypi = "google-api-core/google_api_core-2.17.0.tar.gz" # 'google.api_core.operations_v1' and 'google.api_core.gapic_v1' require 'grpc'. # Leave them out of 'import_modules' to avoid optional dependency. @@ -19,6 +19,7 @@ class PyGoogleApiCore(PythonPackage): license("Apache-2.0") + version("2.29.0", sha256="84181be0f8e6b04006df75ddfe728f24489f0af57c96a529ff7cf45bc28797f7") version("2.17.0", sha256="de7ef0450faec7c75e0aea313f29ac870fdc44cfaec9d6499a9a17305980ef66") version("2.16.2", sha256="032d37b45d1d6bdaf68fb11ff621e2593263a239fa9246e2e94325f9c47876d2") version("2.15.0", sha256="abc978a72658f14a2df1e5e12532effe40f94f868f6e23d95133bd6abcca35ca") @@ -36,17 +37,19 @@ class PyGoogleApiCore(PythonPackage): ) with when("@2:"): - depends_on("py-setuptools", type=("build", "run")) + depends_on("py-setuptools", when="@2.29:", type="build") + depends_on("py-setuptools", when="@:2.17", type=("build", "run")) depends_on("py-googleapis-common-protos@1.56.2:1", type=("build", "run")) - depends_on("py-protobuf@3.19.5:3.19,3.20.2:4.20,4.21.6:4", type=("build", "run")) + depends_on("py-protobuf@3.19.5:6", when="@2.29:", type=("build", "run")) + depends_on("py-protobuf@3.19.5:4", when="@:2.17", type=("build", "run")) depends_on("py-google-auth@2.14.1:2", type=("build", "run")) depends_on("py-requests@2.18:2", type=("build", "run")) + conflicts("py-protobuf@3.20.0:3.20.1,4.21.0:4.21.5") + with when("+grpc"): - depends_on("py-grpcio-status@1.49.1:1", when="^python@3.11:", type="run") - depends_on("py-grpcio-status@1.33.2:1", when="@2.2.0:", type="run") - depends_on("py-grpcio@1.49.1:1", when="^python@3.11:", type="run") depends_on("py-grpcio@1.33.2:1", type="run") + depends_on("py-grpcio-status@1.33.2:1", when="@2.2.0:", type="run") with when("@:1"): depends_on("py-googleapis-common-protos@1.6:1", type=("build", "run")) @@ -62,3 +65,11 @@ class PyGoogleApiCore(PythonPackage): depends_on("py-grpcio@1.33.2:1", when="@1.33:", type="run") depends_on("py-grpcio@1.29.0:1", when="@1.19.1", type="run") depends_on("py-grpcio@1.8.2:1", type="run") + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/g/google-api-core/{}-{}.tar.gz" + if version >= Version("2.19.2"): + name = "google_api_core" + else: + name = "google-api-core" + return url.format(name, version) diff --git a/repos/spack_repo/builtin/packages/py_google_cloud_bigquery/package.py b/repos/spack_repo/builtin/packages/py_google_cloud_bigquery/package.py new file mode 100644 index 00000000000..910733cf99f --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_google_cloud_bigquery/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 PyGoogleCloudBigquery(PythonPackage): + """Google BigQuery API client library.""" + + homepage = "https://github.com/googleapis/python-bigquery" + pypi = "google_cloud_bigquery/google_cloud_bigquery-3.38.0.tar.gz" + + license("Apache-2.0") + + version("3.38.0", sha256="8afcb7116f5eac849097a344eb8bfda78b7cfaae128e60e019193dd483873520") + + depends_on("py-setuptools", type="build") + + with default_args(type=("build", "run")): + depends_on("py-google-api-core@2.11.1:2+grpc") + depends_on("py-google-auth@2.14.1:2") + depends_on("py-google-cloud-core@2.4.1:2") + depends_on("py-google-resumable-media@2") + depends_on("py-packaging@24.2:") + depends_on("py-python-dateutil@2.8.2:2") + depends_on("py-requests@2.21:2") diff --git a/repos/spack_repo/builtin/packages/py_google_cloud_core/package.py b/repos/spack_repo/builtin/packages/py_google_cloud_core/package.py index 15aad2752d8..16413aaaad4 100644 --- a/repos/spack_repo/builtin/packages/py_google_cloud_core/package.py +++ b/repos/spack_repo/builtin/packages/py_google_cloud_core/package.py @@ -15,6 +15,7 @@ class PyGoogleCloudCore(PythonPackage): license("Apache-2.0") + version("2.4.1", sha256="9b7749272a812bde58fff28868d0c5e2f585b82f37e09a1f6ed2d4d10f134073") version("2.3.2", sha256="b9529ee7047fd8d4bf4a2182de619154240df17fbe60ead399078c1ae152af9a") version("1.0.3", sha256="10750207c1a9ad6f6e082d91dbff3920443bdaf1c344a782730489a9efa802f1") diff --git a/repos/spack_repo/builtin/packages/py_googleapis_common_protos/package.py b/repos/spack_repo/builtin/packages/py_googleapis_common_protos/package.py index d676f11a027..c3660227878 100644 --- a/repos/spack_repo/builtin/packages/py_googleapis_common_protos/package.py +++ b/repos/spack_repo/builtin/packages/py_googleapis_common_protos/package.py @@ -11,18 +11,17 @@ class PyGoogleapisCommonProtos(PythonPackage): """Common protobufs used in Google APIs.""" homepage = "https://github.com/googleapis/python-api-common-protos" - pypi = "googleapis-common-protos/googleapis-common-protos-1.6.0.tar.gz" + pypi = "googleapis-common-protos/googleapis_common_protos-1.6.0.tar.gz" license("Apache-2.0") + version("1.72.0", sha256="e55a601c1b32b52d7a3e65f43563e2aa61bcd737998ee672ac9b951cd49319f5") version("1.63.0", sha256="17ad01b11d5f1d0171c06d3ba5c04c54474e883b66b949722b4938ee2694ef4e") version("1.58.0", sha256="c727251ec025947d545184ba17e3578840fc3a24a0516a020479edab660457df") version("1.56.4", sha256="c25873c47279387cfdcbdafa36149887901d36202cb645a0e4f29686bf6e4417") version("1.55.0", sha256="53eb313064738f45d5ac634155ae208e121c963659627b90dfcb61ef514c03e1") version("1.6.0", sha256="e61b8ed5e36b976b487c6e7b15f31bb10c7a0ca7bd5c0e837f4afab64b53a0c6") - # https://github.com/googleapis/python-api-common-protos/blob/v1.58.0/setup.py - variant( "grpc", default=False, @@ -32,18 +31,22 @@ class PyGoogleapisCommonProtos(PythonPackage): depends_on("py-setuptools", type="build") with default_args(type=("build", "run")): - # https://github.com/googleapis/python-api-common-protos/blob/main/setup.py - # May be able to rais max version to :5 in next release - depends_on("py-protobuf@3.19.5:4", when="@1.58:") + depends_on("py-protobuf@3.20.2:6", when="@1.72:") + depends_on("py-protobuf@3.19.5:4", when="@1.58:1.63") depends_on("py-protobuf@3.15.0:4", when="@1.56:1.57") depends_on("py-protobuf@3.12.0:4", when="@1.55") - depends_on("py-protobuf@3.6.0:", when="@1.6.0:") + depends_on("py-protobuf@3.6.0:", when="@1.6") - # Explicitly incompatibile versions per setup.py - # https://github.com/googleapis/python-api-common-protos/issues/128 - conflicts("py-protobuf@3.20:3.20.1") - conflicts("py-protobuf@4.21.1:4.21.5") + conflicts("py-protobuf@3.20:3.20.1,4.21.1:4.21.5") with when("+grpc"), default_args(type="run"): depends_on("py-grpcio@1.44:1", when="@1.57:") depends_on("py-grpcio@1:") + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/g/googleapis-common-protos/{}-{}.tar.gz" + if version >= Version("1.64"): + name = "googleapis_common_protos" + else: + name = "googleapis-common-protos" + return url.format(name, version) diff --git a/repos/spack_repo/builtin/packages/py_gosam/package.py b/repos/spack_repo/builtin/packages/py_gosam/package.py index 2e6fc87eb29..2e81ef7b5a8 100644 --- a/repos/spack_repo/builtin/packages/py_gosam/package.py +++ b/repos/spack_repo/builtin/packages/py_gosam/package.py @@ -2,12 +2,12 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.generic import Package +from spack_repo.builtin.build_systems.python import PythonPackage from spack.package import * -class PyGosam(Package): +class PyGosam(PythonPackage): """The package GoSam allows for the automated calculation of one-loop amplitudes for multi-particle processes in renormalizable quantum field theories.""" @@ -40,11 +40,8 @@ class PyGosam(Package): depends_on("qgraf", type="run") depends_on("gosam-contrib", type="link") depends_on("python@3:", type=("build", "run")) + depends_on("py-setuptools", type="build") def setup_run_environment(self, env: EnvironmentModifications) -> None: gosam_contrib_lib_dir = self.spec["gosam-contrib"].prefix.lib env.prepend_path("LD_LIBRARY_PATH", gosam_contrib_lib_dir) - - def install(self, spec, prefix): - python("-s", "setup.py", "--no-user-cfg", "build") - python("-s", "setup.py", "--no-user-cfg", "install", "--prefix=" + prefix) diff --git a/repos/spack_repo/builtin/packages/py_gpaw/libxc.patch b/repos/spack_repo/builtin/packages/py_gpaw/libxc.patch deleted file mode 100644 index 09a992876e2..00000000000 --- a/repos/spack_repo/builtin/packages/py_gpaw/libxc.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur gpaw-1.3.0.orig/c/xc/libxc.c gpaw-1.3.0/c/xc/libxc.c ---- gpaw-1.3.0.orig/c/xc/libxc.c 2019-09-06 14:59:35.151442058 +0300 -+++ gpaw-1.3.0/c/xc/libxc.c 2019-09-06 15:00:46.211440365 +0300 -@@ -801,7 +801,7 @@ - if (!PyArg_ParseTuple(args, "dOOOOOO", - &c, &n_g, &sigma_g, &lapl_g, &tau_g, &v_g, &vx_g)) - return NULL; -- xc_mgga_x_tb09_set_params(self->functional[0], c); -+ xc_func_set_ext_params(self->functional[0], &c); - xc_mgga_vxc(self->functional[0], PyArray_DIM(n_g, 0), - PyArray_DATA(n_g), - PyArray_DATA(sigma_g), diff --git a/repos/spack_repo/builtin/packages/py_gpaw/package.py b/repos/spack_repo/builtin/packages/py_gpaw/package.py index 3d29d1a0586..da0f12cef66 100644 --- a/repos/spack_repo/builtin/packages/py_gpaw/package.py +++ b/repos/spack_repo/builtin/packages/py_gpaw/package.py @@ -2,55 +2,89 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.cuda import CudaPackage from spack_repo.builtin.build_systems.python import PythonPackage from spack.package import * -class PyGpaw(PythonPackage): +class PyGpaw(PythonPackage, CudaPackage): """GPAW is a density-functional theory (DFT) Python code based on the projector-augmented wave (PAW) method and the atomic simulation environment (ASE).""" - homepage = "https://wiki.fysik.dtu.dk/gpaw/index.html" - pypi = "gpaw/gpaw-1.3.0.tar.gz" + homepage = "https://gpaw.readthedocs.io/index.html" + pypi = "gpaw/gpaw-25.7.0.tar.gz" - license("GPL-3.0-only") + maintainers("alikhamze", "Chronum94") - version("21.1.0", sha256="96843b68e04bd1c12606036c9f99b0ddfa5e6ee08ce46835e6bb347a6bd560a3") - version("20.10.0", sha256="77c3d3918f5cc118e448f8063af4807d163b31d502067f5cbe31fc756eb3971d") - version("20.1.0", sha256="c84307eb9943852d78d966c0c8856fcefdefa68621139906909908fb641b8421") - version("19.8.1", sha256="79dee367d695d68409c4d69edcbad5c8679137d6715da403f6c2500cb2178c2a") - version("1.3.0", sha256="cf601c69ac496421e36111682bcc1d23da2dba2aabc96be51accf73dea30655c") + license("GPL-3.0-or-later", checked_by="alikhamze") + + version("25.7.0", sha256="93ac829bba36be74eab0d7deef5eb798613c04edbce196837208d206cf39c431") + version("25.1.0", sha256="80236e779784df3317e7da395dc59ea403bc0213bb3a68d02c17957162e972ea") + version("24.6.0", sha256="fb48ef0db48c0e321ce5967126a47900bba20c7efb420d6e7b5459983bd8f6f6") + version("23.9.1", sha256="19a24840b876003528864b7a0b38fc0d456800b83b8666b1f724273660745b47") + version("23.6.1", sha256="ff56d323a499972c8991770a6ab0334a6dd18df36e9c94360e0aa1ddf8867dfd") variant("mpi", default=True, description="Build with MPI support") variant("scalapack", default=True, description="Build with ScaLAPACK support") variant("fftw", default=True, description="Build with FFTW support") variant("libvdwxc", default=True, description="Build with libvdwxc support") + variant("elpa", default=True, description="Build with ELPA support") + variant("openmp", default=True, description="Build with OpenMP support") + variant("cuda", default=False, when="@23.6:", description="Build with CUDA GPU support") - depends_on("c", type="build") # generated - - depends_on("mpi", when="+mpi", type=("build", "link", "run")) - depends_on("python@2.6:", type=("build", "run"), when="@:1.3.0") - depends_on("python@3.5:", type=("build", "run"), when="@19.8.1:") - depends_on("python@3.6:", type=("build", "run"), when="@20.10.0:") + # Build dependencies + depends_on("c", type="build") depends_on("py-setuptools", type="build") - depends_on("py-ase@3.13.0:", type=("build", "run"), when="@1.3.0") - depends_on("py-ase@3.18.0:", type=("build", "run"), when="@19.8.1") - depends_on("py-ase@3.19.0:", type=("build", "run"), when="@20.1.0") - depends_on("py-ase@3.20.1:", type=("build", "run"), when="@20.10.0") - depends_on("py-ase@3.21.0:", type=("build", "run"), when="@21.1.0") - depends_on("py-numpy", type=("build", "run")) - depends_on("py-scipy", type=("build", "run")) - depends_on("libxc@3:4.3.4") + + # Version-agnostic required dependencies depends_on("blas") depends_on("lapack") - depends_on("fftw+mpi", when="+fftw +mpi") - depends_on("fftw~mpi", when="+fftw ~mpi") + + # Version-specific required dependencies + with when("@25.7.0:"): + depends_on("libxc") + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-ase@3.25.0:", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy@1.6.0:", type=("build", "run")) + depends_on("py-gpaw-data", type=("run")) + + with when("@25.1.0"): + depends_on("libxc") + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-ase@3.23.0:", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy@1.6.0:", type=("build", "run")) + + with when("@24.1.0:24.6.0"): + depends_on("libxc@:6.2.2") + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-ase@3.23.0:", type=("build", "run")) + depends_on("py-numpy@1.17:1.26.4", type=("build", "run")) + depends_on("py-scipy@1.6.0:", type=("build", "run")) + + with when("@23.6.1:23.9.1"): + depends_on("libxc@:6.2.2") + depends_on("python@3.7:", type=("build", "run")) + depends_on("py-ase@3.22.1:", type=("build", "run")) + depends_on("py-numpy@1.17:1.26.4", type=("build", "run")) + depends_on("py-scipy@1.6.0:", type=("build", "run")) + + # Variant dependencies and conflicts + depends_on("mpi", when="+mpi", type=("build", "link", "run")) + depends_on("fftw-api", when="+fftw") depends_on("scalapack", when="+scalapack") depends_on("libvdwxc", when="+libvdwxc") - - patch("libxc.patch", when="@1.3.0") + depends_on("cuda", when="+cuda") + depends_on("py-cupy +cuda", when="+cuda") + depends_on("openmpi +cuda", when="+cuda +mpi", type=("build", "link", "run")) + conflicts("cuda_arch=none", when="+cuda", msg="CUDA arch required when building cuda variant.") + conflicts("elpa", when="+cuda", msg="CUDA and ELPA have not been tested together.") + # Fixed elpa version due to compilation/linking errors on older and newer versions. + # Tested for versions @23.6.1:25.1.0 + depends_on("elpa@2022.11.001", when="+elpa") def patch(self): spec = self.spec @@ -60,64 +94,77 @@ def patch(self): blas = spec["blas"] lapack = spec["lapack"] - python_include = spec["python"].headers.directories[0] - numpy_include = join_path( - self["py-numpy"].module.python_platlib, "numpy", "core", "include" - ) - libs = blas.libs + lapack.libs + libxc.libs - include_dirs = [ - python_include, - numpy_include, - blas.prefix.include, - lapack.prefix.include, - libxc.prefix.include, - ] + + include_dirs = [blas.prefix.include, lapack.prefix.include, libxc.prefix.include] + + runtime_library_dirs = [] + + bools = "" + if "+mpi" in spec: libs += spec["mpi"].libs - mpi_include_dirs = repr([spec["mpi"].prefix.include]) - mpi_library_dirs = repr(list(spec["mpi"].libs.directories)) include_dirs.append(spec["mpi"].prefix.include) + if "+scalapack" in spec: libs += spec["scalapack"].libs include_dirs.append(spec["scalapack"].prefix.include) scalapack_macros = repr( [("GPAW_NO_UNDERSCORE_CBLACS", "1"), ("GPAW_NO_UNDERSCORE_CSCALAPACK", "1")] ) + bools += "scalapack = True\n" + if "+fftw" in spec: - libs += spec["fftw"].libs - include_dirs.append(spec["fftw"].prefix.include) + libs += spec["fftw-api"].libs + include_dirs.append(spec["fftw-api"].prefix.include) + bools += "fftw = True\n" + if "+libvdwxc" in spec: libs += spec["libvdwxc"].libs include_dirs.append(spec["libvdwxc"].prefix.include) + bools += "libvdwxc = True\n" + + if "+elpa" in spec: + libs += spec["elpa"].libs + include_dirs.append(spec["elpa"].prefix.include) + bools += "elpa = True\n" + runtime_library_dirs += spec["elpa"].libs.directories + + if "+openmp" in spec: + openmp_compile_args = ["-fopenmp"] + openmp_link_args = ["-fopenmp"] + + if "+cuda" in spec: + bools += "gpu = True\n" + include_dirs.append(spec["cuda"].prefix.include) + libs += spec["cuda"].libs + libs += ["cudart", "cublas"] + gpu_compile_args = ["-O3", "-g"] + for f in spec.variants["cuda_arch"].value: + gpu_compile_args.append("-gencode") + gpu_compile_args.append(f"arch=compute_{f},code=sm_{f}") lib_dirs = list(libs.directories) libs = list(libs.names) rpath_str = ":".join(self.rpath) - if spec.satisfies("@:19.8.1"): - cfgfile = "customize.py" - else: - cfgfile = "siteconfig.py" - - with open(cfgfile, "w") as f: - f.write("libraries = {0}\n".format(repr(libs))) - f.write("include_dirs = {0}\n".format(repr(include_dirs))) - f.write("library_dirs = {0}\n".format(repr(lib_dirs))) - f.write("extra_link_args += ['-Wl,-rpath={0}']\n".format(rpath_str)) + with open("siteconfig.py", "w") as f: + f.write(bools) + f.write(f"libraries = {repr(libs)}\n") + f.write(f"include_dirs = {repr(include_dirs)}\n") + f.write(f"library_dirs = {repr(lib_dirs)}\n") + f.write(f"extra_link_args += ['-Wl,-rpath={rpath_str}']\n") if "+mpi" in spec: - f.write("define_macros += [('PARALLEL', '1')]\n") - f.write("compiler='{0}'\n".format(spec["mpi"].mpicc)) - f.write("mpicompiler = '{0}'\n".format(spec["mpi"].mpicc)) - f.write("mpi_include_dirs = {0}\n".format(mpi_include_dirs)) - f.write("mpi_library_dirs = {0}\n".format(mpi_library_dirs)) - else: - f.write("compiler='{0}'\n".format(self.compiler.cc)) - f.write("mpicompiler = None\n") + if spec.satisfies("@:19.8.1"): + f.write("define_macros += [('PARALLEL', '1')]\n") if "+scalapack" in spec: - f.write("scalapack = True\n") - f.write("define_macros += {0}\n".format(scalapack_macros)) - if "+fftw" in spec: - f.write("fftw = True\n") - if "+libvdwxc" in spec: - f.write("libvdwxc = True\n") + f.write(f"define_macros += {scalapack_macros}\n") + if "+elpa" in spec: + f.write(f"runtime_library_dirs = {repr(runtime_library_dirs)}\n") + if "+openmp" in spec: + f.write(f"extra_compile_args += {openmp_compile_args}\n") + f.write(f"extra_link_args += {openmp_link_args}\n") + if "+cuda" in spec: + f.write("gpu_target = 'cuda'\n") + f.write("gpu_compiler = 'nvcc'\n") + f.write(f"gpu_compile_args = {gpu_compile_args}\n") diff --git a/repos/spack_repo/builtin/packages/py_gpaw_data/package.py b/repos/spack_repo/builtin/packages/py_gpaw_data/package.py new file mode 100644 index 00000000000..3988f132310 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_gpaw_data/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 PyGpawData(PythonPackage): + """Data package for PAW files and other data files for the GPAW DFT code.""" + + homepage = "https://gpaw.readthedocs.io/" + pypi = "gpaw_data/gpaw_data-1.0.1.tar.gz" + + maintainers("alikhamze") + + license("GPL-3.0-or-later", checked_by="alikhamze") + + version("1.0.1", sha256="28212110aa04daae333ef1260b281d70b818ad9cf4282078624ee3fc7a8fc05c") + + depends_on("python@3.9:", type=("build", "run")) + + depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_gpy/package.py b/repos/spack_repo/builtin/packages/py_gpy/package.py index 2df0afde588..8df5c2b8fcd 100644 --- a/repos/spack_repo/builtin/packages/py_gpy/package.py +++ b/repos/spack_repo/builtin/packages/py_gpy/package.py @@ -11,11 +11,12 @@ class PyGpy(PythonPackage): """The Gaussian Process Toolbox.""" homepage = "https://sheffieldml.github.io/GPy/" - pypi = "gpy/GPy-1.9.9.tar.gz" + pypi = "gpy/GPy-1.13.2.tar.gz" maintainers("liuyangzhuan") license("BSD-3-Clause") + version("1.13.2", sha256="a38256b4dda536a5b5e6134a3924b42d454e987ee801fb6fc8b55a922da27920") version("1.10.0", sha256="a2b793ef8d0ac71739e7ba1c203bc8a5afa191058b42caa617e0e29aa52aa6fb") version("1.9.9", sha256="04faf0c24eacc4dea60727c50a48a07ddf9b5751a3b73c382105e2a31657c7ed") version("0.8.8", sha256="e135d928cf170e2ec7fb058a035b5a7e334dc6b84d0bfb981556782528341988") diff --git a/repos/spack_repo/builtin/packages/py_gql/package.py b/repos/spack_repo/builtin/packages/py_gql/package.py index 448e4d894ca..9d478077d80 100644 --- a/repos/spack_repo/builtin/packages/py_gql/package.py +++ b/repos/spack_repo/builtin/packages/py_gql/package.py @@ -19,16 +19,9 @@ class PyGql(PythonPackage): license("MIT") - version("3.0.0a1", sha256="ecd8fd0b6a5a8bb5c9e1a97eefad3f267fc889bd03316211193640d49b3e4525") version("0.4.0", sha256="259b0c66d8dfe61feb06fe45b57713da0fe2e5ca13fa500a1fafc9bf2f195e81") depends_on("py-setuptools", type="build") - depends_on("py-aiohttp@3.6.2", type=("build", "run"), when="@3.0:") - depends_on("py-graphql-core@3.1.0:3.1", type=("build", "run"), when="@3.0:") - depends_on("py-requests@2.23:2", type=("build", "run"), when="@3.0:") - depends_on("py-websockets@8.1:8", type=("build", "run"), when="@3.0:") - depends_on("py-yarl@1.4:1", type=("build", "run"), when="@3.0:") - depends_on("py-graphql-core@2.0:2", type=("build", "run"), when="@0.4.0") depends_on("py-six@1.10.0:", type=("build", "run"), when="@0.4.0") depends_on("py-promise@2.0:2", type=("build", "run"), when="@0.4.0") diff --git a/repos/spack_repo/builtin/packages/py_gradio/package.py b/repos/spack_repo/builtin/packages/py_gradio/package.py index 15c4272329c..d4d8ac1f4de 100644 --- a/repos/spack_repo/builtin/packages/py_gradio/package.py +++ b/repos/spack_repo/builtin/packages/py_gradio/package.py @@ -16,17 +16,6 @@ class PyGradio(PythonPackage): license("Apache-2.0") version("5.1.0", sha256="d2153668e6de2df7a01bb33f01a074fc7716ec863c40f472d8e439439ef1e153") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2024-47871 - version( - "4.44.1", sha256="a68a52498ac6b63f8864ef84bf7866a70e7d07ebe913edf921e1d2a3708ad5ae" - ) - version( - "3.50.2", sha256="c6c81320566ba3e5688a1a58201d0729565a97b828b2bf6895e54f7bf25c01de" - ) - version( - "3.36.1", sha256="1d821cee15da066c24c197248ba9aaed5f5e59505d17754561c2f96f90e73a89" - ) depends_on("python@3.8:", type=("build", "run")) depends_on("py-hatchling", type="build") diff --git a/repos/spack_repo/builtin/packages/py_grandalf/package.py b/repos/spack_repo/builtin/packages/py_grandalf/package.py index 65e5df3684d..37827b73132 100644 --- a/repos/spack_repo/builtin/packages/py_grandalf/package.py +++ b/repos/spack_repo/builtin/packages/py_grandalf/package.py @@ -16,6 +16,7 @@ class PyGrandalf(PythonPackage): license("EPL-1.0") + version("0.8", sha256="82d80072e5a1928bc46d94a54d2d92a38f73da0af052efc84ce34b5f4601dfa2") version("0.7", sha256="b3112299fe0a9123c088a16bf2f1b541d0d91199b77170a9739b569bd16a828e") version("0.6", sha256="928db4b90f7aff01e252a833951086b20d5958c00083411193c794de7bf59df2") diff --git a/repos/spack_repo/builtin/packages/py_graphene/package.py b/repos/spack_repo/builtin/packages/py_graphene/package.py index b398cebff9b..4b83b41b722 100644 --- a/repos/spack_repo/builtin/packages/py_graphene/package.py +++ b/repos/spack_repo/builtin/packages/py_graphene/package.py @@ -13,14 +13,19 @@ class PyGraphene(PythonPackage): homepage = "https://github.com/graphql-python/graphene" pypi = "graphene/graphene-3.3.tar.gz" - maintainers("LydDeb") + maintainers("LydDeb", "climbfuji") license("MIT") - version("2.1.9", sha256="b9f2850e064eebfee9a3ef4a1f8aa0742848d97652173ab44c82cc8a62b9ed93") + version("3.4.3", sha256="2a3786948ce75fe7e078443d37f609cbe5bb36ad8d6b828740ad3b95ed1a0aaa") + version("2.1.9", sha256="b9f2850e064eebfee9a3ef4a1f8aa0742848d97652173ab44c82cc8a62b9ed93", deprecated=True) depends_on("py-setuptools", type="build") - depends_on("py-graphql-core@2.1:2", type=("build", "run")) - depends_on("py-graphql-relay@2", type=("build", "run")) - depends_on("py-aniso8601@3:7", type=("build", "run")) - depends_on("py-six@1.10.0:1", type=("build", "run")) + depends_on("py-graphql-core@3.1:3.2", type=("build", "run"), when="@3") + depends_on("py-graphql-core@2.1:2", type=("build", "run"), when="@2") + depends_on("py-graphql-relay@3.1:3.2", type=("build", "run"), when="@3") + depends_on("py-graphql-relay@2", type=("build", "run"), when="@2") + depends_on("py-python-dateutil@2.7:2", type=("build", "run"), when="@3") + depends_on("py-typing-extensions@4.7.1:4", type=("build", "run"), when="@3") + depends_on("py-aniso8601@3:7", type=("build", "run"), when="@2") + depends_on("py-six@1.10.0:1", type=("build", "run"), when="@2") diff --git a/repos/spack_repo/builtin/packages/py_graphene_tornado/package.py b/repos/spack_repo/builtin/packages/py_graphene_tornado/package.py deleted file mode 100644 index 1395f34c2cb..00000000000 --- a/repos/spack_repo/builtin/packages/py_graphene_tornado/package.py +++ /dev/null @@ -1,31 +0,0 @@ -# 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 PyGrapheneTornado(PythonPackage): - """Graphene Tornado integration.""" - - homepage = "https://github.com/graphql-python/graphene-tornado" - pypi = "graphene-tornado/graphene-tornado-2.6.1.tar.gz" - - maintainers("LydDeb") - - license("MIT") - - version("2.6.1", sha256="953bf812267177224ce1ac2a93c669069d85a8fa187a9fac681b76b63dffebc2") - - depends_on("py-setuptools", type="build") - depends_on("py-six@1.10.0:", type=("build", "run")) - depends_on("py-graphene@2.1:2", type=("build", "run")) - depends_on("py-jinja2@2.10.1:", type=("build", "run")) - depends_on("py-tornado@5.1.0:", type=("build", "run")) - # py-werkzeug version requirements differ between setup.py (0.12.2) - # and requirements.txt (0.15.3); the latter seems to be correct, - # see also https://github.com/spack/spack/pull/41426 - depends_on("py-werkzeug@0.15.3", type=("build", "run")) - depends_on("py-pytest", type=("build")) diff --git a/repos/spack_repo/builtin/packages/py_graphlib_backport/package.py b/repos/spack_repo/builtin/packages/py_graphlib_backport/package.py index ae4df8e5276..e2d18d4a4a4 100644 --- a/repos/spack_repo/builtin/packages/py_graphlib_backport/package.py +++ b/repos/spack_repo/builtin/packages/py_graphlib_backport/package.py @@ -13,6 +13,7 @@ class PyGraphlibBackport(PythonPackage): homepage = "https://github.com/mariushelf/graphlib_backport" pypi = "graphlib_backport/graphlib_backport-1.0.3.tar.gz" + version("1.1.0", sha256="00a7888b21e5393064a133209cb5d3b3ef0a2096cf023914c9d778dff5644125") version("1.0.3", sha256="7bb8fc7757b8ae4e6d8000a26cd49e9232aaa9a3aa57edb478474b8424bfaae2") depends_on("python@3.6:3", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_graphql_core/package.py b/repos/spack_repo/builtin/packages/py_graphql_core/package.py index 5bbf2375d1a..1e2f696e69a 100644 --- a/repos/spack_repo/builtin/packages/py_graphql_core/package.py +++ b/repos/spack_repo/builtin/packages/py_graphql_core/package.py @@ -14,16 +14,29 @@ class PyGraphqlCore(PythonPackage): for APIs created by Facebook.""" homepage = "https://github.com/graphql-python/graphql-core" - pypi = "graphql-core/graphql-core-3.1.5.tar.gz" + pypi = "graphql-core/graphql_core-3.2.7.tar.gz" + + maintainers("climbfuji") license("MIT") + version("3.2.7", sha256="27b6904bdd3b43f2a0556dad5d579bdfdeab1f38e8e8788e555bdcb586a6f62c") version("3.1.2", sha256="c056424cbdaa0ff67446e4379772f43746bad50a44ec23d643b9bdcd052f5b3a") version("3.0.5", sha256="51f7dab06b5035515b23984f6fcb677ed909b56c672152699cca32e03624992e") version("2.3.2", sha256="aac46a9ac524c9855910c14c48fc5d60474def7f99fd10245e76608eba7af746") + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/g/graphql-core/{0}-{1}.tar.gz" + if version >= Version("3.2.5"): + prefix = "graphql_core" + else: + prefix = "graphql-core" + return url.format(prefix, version) + depends_on("python@3.6:3", type=("build", "run")) - depends_on("py-poetry@1", when="@3:", type="build") + depends_on("py-poetry-core@1:2", when="@3.2:", type="build") + depends_on("py-poetry-core@1", when="@3:3.1", type="build") + depends_on("py-setuptools@59:80", when="@3", type="build") depends_on("py-setuptools", when="@2", type="build") depends_on("py-six@1.10.0:", type=("build", "run"), when="@2.3.2") depends_on("py-promise@2.3:2", type=("build", "run"), when="@2.3.2") diff --git a/repos/spack_repo/builtin/packages/py_graphql_relay/package.py b/repos/spack_repo/builtin/packages/py_graphql_relay/package.py index 90c956ea820..d05cc2288bd 100644 --- a/repos/spack_repo/builtin/packages/py_graphql_relay/package.py +++ b/repos/spack_repo/builtin/packages/py_graphql_relay/package.py @@ -13,13 +13,18 @@ class PyGraphqlRelay(PythonPackage): homepage = "https://github.com/graphql-python/graphql-relay-py" pypi = "graphql-relay/graphql-relay-2.0.1.tar.gz" - maintainers("LydDeb") + maintainers("LydDeb", "climbfuji") license("MIT") + version("3.2.0", sha256="1ff1c51298356e481a0be009ccdff249832ce53f30559c1338f22a0e0d17250c") version("2.0.1", sha256="870b6b5304123a38a0b215a79eace021acce5a466bf40cd39fa18cb8528afabb") + depends_on("python@3.6:3", type=("build", "run")) + depends_on("py-poetry-core@1", when="@3", type="build") depends_on("py-setuptools", type="build") depends_on("py-graphql-core@2.2:2", type=("build", "run"), when="@2") + depends_on("py-graphql-core@3.2", type=("build", "run"), when="@3") + depends_on("py-typing-extensions@4.1:4", type=("build", "run"), when="@3 ^python@:3.7") depends_on("py-six@1.12:", type=("build", "run"), when="@2") depends_on("py-promise@2.2:2", type=("build", "run"), when="@2") diff --git a/repos/spack_repo/builtin/packages/py_greenlet/package.py b/repos/spack_repo/builtin/packages/py_greenlet/package.py index 285ab66550c..e432023016e 100644 --- a/repos/spack_repo/builtin/packages/py_greenlet/package.py +++ b/repos/spack_repo/builtin/packages/py_greenlet/package.py @@ -18,6 +18,8 @@ class PyGreenlet(PythonPackage): license("MIT AND PSF-2.0", checked_by="tgamblin") + version("3.4.0", sha256="f50a96b64dafd6169e595a5c56c9146ef80333e67d4476a65a9c55f400fc22ff") + version("3.2.2", sha256="ad053d34421a2debba45aa3cc39acf454acbcd025b3fc1a9f8a0dee237abd485") version("3.1.1", sha256="4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467") version("3.0.3", sha256="43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491") version("3.0.0a1", sha256="1bd4ea36f0aeb14ca335e0c9594a5aaefa1ac4e2db7d86ba38f0be96166b3102") @@ -28,15 +30,19 @@ class PyGreenlet(PythonPackage): version("0.4.17", sha256="41d8835c69a78de718e466dd0e6bfd4b46125f21a67c3ff6d76d8d8059868d6b") version("0.4.13", sha256="0fef83d43bf87a5196c91e73cb9772f945a4caaff91242766c5916d1dd1381e4") - depends_on("c", type="build") - depends_on("cxx", type="build") - with default_args(type=("build", "link", "run")): - depends_on("python") - depends_on("python@:3.11", when="@:2") + depends_on("python@3.10:", when="@3.3:") + depends_on("python@3.9:", when="@3.2:") depends_on("python@:3.12", when="@:3.0") + depends_on("python@:3.11", when="@:2") + depends_on("python") + + with default_args(type="build"): + depends_on("c") + depends_on("cxx") - depends_on("py-setuptools", type="build") - depends_on("py-setuptools@40.8.0:", type="build", when="@3.0.2:") + depends_on("py-setuptools@77.0.3:", when="@3.3.1:") + depends_on("py-setuptools@40.8:", when="@3.0.2:") + depends_on("py-setuptools") conflicts("%gcc@:7", when="@3.1.1:", msg="GCC-8 required as of 3.1.1") diff --git a/repos/spack_repo/builtin/packages/py_grequests/package.py b/repos/spack_repo/builtin/packages/py_grequests/package.py index 7ed73301ff2..39b2d26d248 100644 --- a/repos/spack_repo/builtin/packages/py_grequests/package.py +++ b/repos/spack_repo/builtin/packages/py_grequests/package.py @@ -17,6 +17,7 @@ class PyGrequests(PythonPackage): homepage = "https://github.com/spyoungtech/grequests" pypi = "grequests/grequests-0.4.0.tar.gz" + version("0.7.0", sha256="5c33f14268df5b8fa1107d8537815be6febbad6ec560524d6a404b7778cf6ba6") version("0.4.0", sha256="8aeccc15e60ec65c7e67ee32e9c596ab2196979815497f85cf863465a1626490") version("0.3.0", sha256="0f41c4eee83bab39f5543af49665c08681637a0562a5704a3f7b2e4a996531c9") 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_gromacswrapper/package.py b/repos/spack_repo/builtin/packages/py_gromacswrapper/package.py new file mode 100644 index 00000000000..fef6a019aa0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_gromacswrapper/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 PyGromacswrapper(PythonPackage): + """ + GromacsWrapper: A Python framework that wraps GROMACS + tools into thin classes for easier scripting. + """ + + homepage = "https://github.com/Becksteinlab/GromacsWrapper" + pypi = "gromacswrapper/gromacswrapper-0.9.2.tar.gz" + + license("GPL-3.0-or-later") + maintainers("adamwitmer") + + version("0.9.2", sha256="73a7077258d68f92b1ee359e45af904e2f89766fc3f411bda9e2bf440f381a36") + + # Variants + variant("pandas", default=True, description="Optional dependency on Pandas") + + # Dependencies + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-matplotlib", type=("build", "run")) + depends_on("py-numkit", type=("build", "run")) + depends_on("py-setuptools@42:", type="build") + depends_on("py-wheel", type="build") + depends_on("py-pandas", when="+pandas") diff --git a/repos/spack_repo/builtin/packages/py_grpcio/package.py b/repos/spack_repo/builtin/packages/py_grpcio/package.py index 01f625c5704..fa1ef3d452d 100644 --- a/repos/spack_repo/builtin/packages/py_grpcio/package.py +++ b/repos/spack_repo/builtin/packages/py_grpcio/package.py @@ -11,87 +11,122 @@ class PyGrpcio(PythonPackage): """HTTP/2-based RPC framework.""" homepage = "https://grpc.io/" - pypi = "grpcio/grpcio-1.32.0.tar.gz" + pypi = "grpcio/grpcio-1.78.1.tar.gz" license("Apache-2.0") + version("1.78.1", sha256="27c625532d33ace45d57e775edf1982e183ff8641c72e4e91ef7ba667a149d72") + version("1.75.0", sha256="b989e8b09489478c2d19fecc744a298930f40d8b27c3638afbfe84d22f36ce4e") version("1.71.0", sha256="2b85f7820475ad3edec209d3d89a7909ada16caab05d3f2e08a7e8ae3200a55c") version("1.64.0", sha256="257baf07f53a571c215eebe9679c3058a313fd1d1f7c4eede5a8660108c52d9c") version("1.63.0", sha256="f3023e14805c61bc439fb40ca545ac3d5740ce66120a678a3c6c2c55b70343d1") version("1.62.2", sha256="c77618071d96b7a8be2c10701a98537823b9c65ba256c0b9067e0594cdbd954d") version("1.60.1", sha256="dd1d3a8d1d2e50ad9b59e10aa7f07c7d1be2b367f3f2d33c5fade96ed5460962") version("1.56.2", sha256="0ff789ae7d8ddd76d2ac02e7d13bfef6fc4928ac01e1dcaa182be51b6bcc0aaa") - version( - "1.52.0", - sha256="a5d4a83d29fc39af429c10b9b326c174fec49b73398e4a966a1f2a4f30aa4fdb", - deprecated=True, # https://github.com/grpc/grpc/issues/32306 - ) - version("1.48.2", sha256="90e5da224c6b9b23658adf6f36de6f435ef7dbcc9c5c12330314d70d6f8de1f7") - version( - "1.48.1", - sha256="660217eccd2943bf23ea9a36e2a292024305aec04bf747fbcff1f5032b83610e", - deprecated=True, # https://github.com/grpc/grpc/issues/30372 - ) - version("1.43.0", sha256="735d9a437c262ab039d02defddcb9f8f545d7009ae61c0114e19dda3843febe5") - version("1.42.0", sha256="4a8f2c7490fe3696e0cdd566e2f099fb91b51bc75446125175c55581c2f7bc11") - version("1.39.0", sha256="57974361a459d6fe04c9ae0af1845974606612249f467bbd2062d963cb90f407") - version("1.38.1", sha256="1f79d8a24261e3c12ec3a6c25945ff799ae09874fd24815bc17c2dc37715ef6c") - version("1.38.0", sha256="abbf9c8c3df4d5233d5888c6cfa85c1bb68a6923749bd4dd1abc6e1e93986f17") - version("1.37.1", sha256="df8305806311d3fe913d4f7eb3ef28e2072159ea12f95baab5d447f1380a71e3") - version("1.37.0", sha256="b3ce16aa91569760fdabd77ca901b2288152eb16941d28edd9a3a75a0c4a8a85") - version("1.36.0", sha256="70b11805bc9385fcd24e15bcdc5bd8bed463026cd2227d9fdd1ebda612ba0cd9") - version("1.35.0", sha256="7bd0ebbb14dde78bf66a1162efd29d3393e4e943952e2f339757aa48a184645c") - version("1.34.1", sha256="1c746a3cd8a830d8d916a9d0476a786aaa98c5cc2a096344af2be955e439f8ac") - version("1.34.0", sha256="f98f746cacbaa681de0bcd90d7aa77b440e3e1327a9988f6a2b580d54e27d4c3") - version("1.33.2", sha256="21265511880056d19ce4f809ce3fbe2a3fa98ec1fc7167dbdf30a80d3276202e") - version("1.33.1", sha256="f19782ec5104599382a0f73f2dfea465d0e65f6818bb3c49ca672b97034c64c3") - version("1.32.0", sha256="01d3046fe980be25796d368f8fc5ff34b7cf5e1444f3789a017a7fe794465639") - version("1.30.0", sha256="e8f2f5d16e0164c415f1b31a8d9a81f2e4645a43d1b261375d6bab7b0adf511f") - version("1.29.0", sha256="a97ea91e31863c9a3879684b5fb3c6ab4b17c5431787548fc9f52b9483ea9c25") - version("1.28.1", sha256="cbc322c5d5615e67c2a15be631f64e6c2bab8c12505bc7c150948abdaa0bdbac") - version("1.27.2", sha256="5ae532b93cf9ce5a2a549b74a2c35e3b690b171ece9358519b3039c7b84c887e") - version("1.25.0", sha256="c948c034d8997526011960db54f512756fb0b4be1b81140a15b4ef094c6594a4") - version( - "1.16.0", - sha256="0cc5f2d3ee21c642d8982f197c83053fd3a8cbcd6a60240d8c87c6c256b10d57", - deprecated=True, - # Released 6ish years ago and does not install for python 3.8 with gcc11 - ) + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2023-4785/ + version( + "1.48.2", sha256="90e5da224c6b9b23658adf6f36de6f435ef7dbcc9c5c12330314d70d6f8de1f7" + ) + version( + "1.43.0", sha256="735d9a437c262ab039d02defddcb9f8f545d7009ae61c0114e19dda3843febe5" + ) + version( + "1.42.0", sha256="4a8f2c7490fe3696e0cdd566e2f099fb91b51bc75446125175c55581c2f7bc11" + ) + version( + "1.39.0", sha256="57974361a459d6fe04c9ae0af1845974606612249f467bbd2062d963cb90f407" + ) + version( + "1.38.1", sha256="1f79d8a24261e3c12ec3a6c25945ff799ae09874fd24815bc17c2dc37715ef6c" + ) + version( + "1.38.0", sha256="abbf9c8c3df4d5233d5888c6cfa85c1bb68a6923749bd4dd1abc6e1e93986f17" + ) + version( + "1.37.1", sha256="df8305806311d3fe913d4f7eb3ef28e2072159ea12f95baab5d447f1380a71e3" + ) + version( + "1.37.0", sha256="b3ce16aa91569760fdabd77ca901b2288152eb16941d28edd9a3a75a0c4a8a85" + ) + version( + "1.36.0", sha256="70b11805bc9385fcd24e15bcdc5bd8bed463026cd2227d9fdd1ebda612ba0cd9" + ) + version( + "1.35.0", sha256="7bd0ebbb14dde78bf66a1162efd29d3393e4e943952e2f339757aa48a184645c" + ) + version( + "1.34.1", sha256="1c746a3cd8a830d8d916a9d0476a786aaa98c5cc2a096344af2be955e439f8ac" + ) + version( + "1.34.0", sha256="f98f746cacbaa681de0bcd90d7aa77b440e3e1327a9988f6a2b580d54e27d4c3" + ) + version( + "1.33.2", sha256="21265511880056d19ce4f809ce3fbe2a3fa98ec1fc7167dbdf30a80d3276202e" + ) + version( + "1.33.1", sha256="f19782ec5104599382a0f73f2dfea465d0e65f6818bb3c49ca672b97034c64c3" + ) + version( + "1.32.0", sha256="01d3046fe980be25796d368f8fc5ff34b7cf5e1444f3789a017a7fe794465639" + ) + version( + "1.30.0", sha256="e8f2f5d16e0164c415f1b31a8d9a81f2e4645a43d1b261375d6bab7b0adf511f" + ) + version( + "1.29.0", sha256="a97ea91e31863c9a3879684b5fb3c6ab4b17c5431787548fc9f52b9483ea9c25" + ) + version( + "1.28.1", sha256="cbc322c5d5615e67c2a15be631f64e6c2bab8c12505bc7c150948abdaa0bdbac" + ) + version( + "1.27.2", sha256="5ae532b93cf9ce5a2a549b74a2c35e3b690b171ece9358519b3039c7b84c887e" + ) + version( + "1.25.0", sha256="c948c034d8997526011960db54f512756fb0b4be1b81140a15b4ef094c6594a4" + ) - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") - depends_on("py-setuptools", type="build") - with default_args(type=("build", "run")): - depends_on("py-coverage@4:") - depends_on("py-wheel@0.29:") + depends_on("python", type=("build", "link", "run")) - depends_on("py-cython@3:", when="@1.63.0:") - depends_on("py-cython@0.29.8:2", when="@1.56.0:1.62") - depends_on("py-cython@0.29.8:", when="@1.49.0:1.55") - # States dependency in setup.py >=0.23 - # Package states >=0.23 but doesn't compile w/ >=3 - depends_on("py-cython@0.23:2", when="@:1.48") + with default_args(type="build"): + depends_on("py-setuptools") + depends_on("py-setuptools@77.0.1:", when="@1.78:") + depends_on("py-cython@3.1.1:", when="@1.75:") + depends_on("py-cython@3.0.0:", when="@1.63:1.71") + depends_on("py-cython@0.23:2", when="@:1.62") - depends_on("py-protobuf@5.26.1:5", when="@1.63.0:") - depends_on("py-protobuf@4.21.3:4", when="@1.49.0:1.62") - depends_on("py-protobuf@3.5.0:3", when="@:1.48") + with default_args(type=("build", "run")): + depends_on("py-typing-extensions@4.12:4", when="@1.75:") - depends_on("py-six@1.10:", when="@:1.48") + # Historical dependencies + depends_on("py-six@1.5.2:", when="@:1.48") - depends_on("openssl") - depends_on("zlib-api") - depends_on("c-ares") - depends_on("re2+shared") + depends_on("openssl+shared", when="@1.33.1:") + depends_on("zlib-api", when="@1.33.1:") + depends_on("c-ares", when="@1.33.1:") + depends_on("re2+shared", when="@1.34:") + depends_on("abseil-cpp+shared cxxstd=17", when="@1.71:") + depends_on("abseil-cpp+shared cxxstd=14", when="@1.47:1.64") patch("30522.diff", when="@1.48") # https://github.com/grpc/grpc/issues/30372 + # Fix missing includes exposed by abseil-cpp 20260107+. See https://github.com/grpc/grpc/pull/41351 + patch( + "https://github.com/grpc/grpc/commit/223be6932adb00d085149c53167c1b0318745f6c.patch?full_index=1", + when="@1.71:1.76", + sha256="50e41d42bf3d5b8b5edf131ff5f232079b79fe25c567fbf8a70e73b9ecfa5008", + ) + def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("GRPC_PYTHON_BUILD_WITH_CYTHON", "True") env.set("GRPC_PYTHON_BUILD_SYSTEM_OPENSSL", "True") env.set("GRPC_PYTHON_BUILD_SYSTEM_ZLIB", "True") env.set("GRPC_PYTHON_BUILD_SYSTEM_CARES", "True") env.set("GRPC_PYTHON_BUILD_SYSTEM_RE2", "True") + env.set("GRPC_PYTHON_BUILD_SYSTEM_ABSL", "True") # https://github.com/grpc/grpc/pull/24449 env.set("GRPC_BUILD_WITH_BORING_SSL_ASM", "") env.set("GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS", str(make_jobs)) @@ -107,23 +142,41 @@ def patch(self): filter_file("-std=gnu99", "", "setup.py") # use the spack packages - filter_file( - r"(\s+SSL_INCLUDE = ).*", - r"\1('{0}',)".format(self.spec["openssl"].prefix.include), - "setup.py", - ) - filter_file( - r"(\s+ZLIB_INCLUDE = ).*", - r"\1('{0}',)".format(self.spec["zlib-api"].prefix.include), - "setup.py", - ) - filter_file( - r"(\s+CARES_INCLUDE = ).*", - r"\1('{0}',)".format(self.spec["c-ares"].prefix.include), - "setup.py", - ) - filter_file( - r"(\s+RE2_INCLUDE = ).*", - r"\1('{0}',)".format(self.spec["re2"].prefix.include), - "setup.py", - ) + if "openssl" in self.spec: + filter_file( + r"(\s+SSL_INCLUDE = ).*", + r"\1('{0}',)".format(self.spec["openssl"].prefix.include.openssl), + "setup.py", + ) + if "zlib-api" in self.spec: + filter_file( + r"(\s+ZLIB_INCLUDE = ).*", + r"\1('{0}',)".format(self.spec["zlib-api"].prefix.include), + "setup.py", + ) + if "c-ares" in self.spec: + filter_file( + r"(\s+CARES_INCLUDE = ).*", + r"\1('{0}',)".format(self.spec["c-ares"].prefix.include), + "setup.py", + ) + if "re2" in self.spec: + filter_file( + r"(\s+RE2_INCLUDE = ).*", + r"\1('{0}',)".format(self.spec["re2"].prefix.include.re2), + "setup.py", + ) + if "abseil-cpp" in self.spec: + filter_file( + r"(\s+ABSL_INCLUDE = ).*", + r"\1('{0}',)".format(self.spec["abseil-cpp"].prefix.include), + "setup.py", + ) + filter_file( + 'pathlib.Path("/usr").glob("lib*/libabsl_*.so")', + 'pathlib.Path("{}").glob("lib*/libabsl_*.{}")'.format( + self.spec["abseil-cpp"].prefix, dso_suffix + ), + "setup.py", + string=True, + ) diff --git a/repos/spack_repo/builtin/packages/py_grpcio_status/package.py b/repos/spack_repo/builtin/packages/py_grpcio_status/package.py index 42b4b593189..0cef0ecac4d 100644 --- a/repos/spack_repo/builtin/packages/py_grpcio_status/package.py +++ b/repos/spack_repo/builtin/packages/py_grpcio_status/package.py @@ -11,22 +11,28 @@ class PyGrpcioStatus(PythonPackage): """Status proto mapping for gRPC.""" homepage = "https://grpc.io/" - pypi = "grpcio_status/grpcio-status-1.60.1.tar.gz" + pypi = "grpcio_status/grpcio_status-1.60.1.tar.gz" license("Apache-2.0") - # Versions 1.63.0 and 1.64.0 are released but not yet on pypi - + version("1.75.0", sha256="69d5b91be1b8b926f086c1c483519a968c14640773a0ccdd6c04282515dbedf7") version("1.62.2", sha256="62e1bfcb02025a1cd73732a2d33672d3e9d0df4d21c12c51e0bbcaf09bab742a") version("1.60.1", sha256="61b5aab8989498e8aa142c20b88829ea5d90d18c18c853b9f9e6d407d37bf8b4") version("1.56.2", sha256="a046b2c0118df4a5687f4585cca9d3c3bae5c498c4dff055dcb43fb06a1180c8") - # https://github.com/grpc/grpc/blob/v1.60.1/src/python/grpcio_status/setup.py + depends_on("py-setuptools", type="build") with default_args(type=("build", "run")): + depends_on("py-protobuf@6.31.1:6", when="@1.75:") depends_on("py-protobuf@4.21.6:") - for grpcio in ("1.62.2", "1.60.1", "1.56.2"): - depends_on(f"py-grpcio@{grpcio}", when=f"@{grpcio}") + for grpcio in ("1.75.0", "1.62.2", "1.60.1", "1.56.2"): + depends_on(f"py-grpcio@{grpcio}:", when=f"@{grpcio}") depends_on("py-googleapis-common-protos@1.5.5:") - depends_on("py-setuptools", type="build") + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/g/grpcio_status/{}-{}.tar.gz" + if version >= Version("63"): + name = "grpcio_status" + else: + name = "grpcio-status" + return url.format(name, version) diff --git a/repos/spack_repo/builtin/packages/py_gym/package.py b/repos/spack_repo/builtin/packages/py_gym/package.py index 32bebba00a0..0c8741bd040 100644 --- a/repos/spack_repo/builtin/packages/py_gym/package.py +++ b/repos/spack_repo/builtin/packages/py_gym/package.py @@ -19,6 +19,7 @@ class PyGym(PythonPackage): license("MIT") + version("0.26.2", sha256="e0d882f4b54f0c65f203104c24ab8a38b039f1289986803c7d02cdbe214fbcc4") version("0.19.0", sha256="940069b983806e1ccc400fa6d47b4e34e462accf6a4fb0acb0a5e509ad0f502d") version("0.18.0", sha256="a0dcd25c1373f3938f4cb4565f74f434fba6faefb73a42d09c9dddd0c08af53e") diff --git a/repos/spack_repo/builtin/packages/py_h11/package.py b/repos/spack_repo/builtin/packages/py_h11/package.py index b0329fce446..de42a8450e4 100644 --- a/repos/spack_repo/builtin/packages/py_h11/package.py +++ b/repos/spack_repo/builtin/packages/py_h11/package.py @@ -15,6 +15,7 @@ class PyH11(PythonPackage): license("MIT") + version("0.16.0", sha256="4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1") version("0.13.0", sha256="70813c1135087a248a4d38cc0e1a0181ffab2188141a93eaf567940c3957ff06") version("0.12.0", sha256="47222cb6067e4a307d535814917cd98fd0a57b6788ce715755fa2b6c28b56042") version("0.11.0", sha256="3c6c61d69c6f13d41f1b80ab0322f1872702a3ba26e12aa864c928f6a43fbaab") @@ -23,5 +24,8 @@ class PyH11(PythonPackage): depends_on("py-setuptools", type="build") + depends_on("python@3.8:", type=("build", "run"), when="@0.15.0:") depends_on("python@3.6:", type=("build", "run"), when="@0.12.0:") + + # Historical dependencies depends_on("py-typing-extensions", type=("build", "run"), when="@0.13: ^python@:3.7") diff --git a/repos/spack_repo/builtin/packages/py_h3/package.py b/repos/spack_repo/builtin/packages/py_h3/package.py new file mode 100644 index 00000000000..5a76fc38f0a --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_h3/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 PyH3(PythonPackage): + """Uber's hierarchical hexagonal geospatial indexing system.""" + + homepage = "https://github.com/uber/h3-py" + git = "https://github.com/uber/h3-py.git" + pypi = "h3/h3-4.4.2.tar.gz" + + maintainers("LydDeb") + + license("Apache-2.0", checked_by="LydDeb") + + version("4.4.2", sha256="b25ab9f339e40b10dcb5e2e6988d07672e780a4950d79c25380d308cdf14f82f") + + depends_on("c", type="build") + + depends_on("python@3.8:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-scikit-build-core") + depends_on("py-cython") diff --git a/repos/spack_repo/builtin/packages/py_h5io/package.py b/repos/spack_repo/builtin/packages/py_h5io/package.py index b837332305b..359be675a72 100644 --- a/repos/spack_repo/builtin/packages/py_h5io/package.py +++ b/repos/spack_repo/builtin/packages/py_h5io/package.py @@ -16,10 +16,15 @@ class PyH5io(PythonPackage): license("BSD-3-Clause") + version("0.2.5", sha256="265bc9c24508b30575e8a8806b19cd4440643ff26f8b82b51d0280444807eed8") version("0.1.7", sha256="be2684e678a28a5d59140de838f0165f095af865e48b8e498a279a3c2b89303e") + depends_on("python@3.8:", type=("build", "run"), when="@0.2.4:") depends_on("python@3.7:", type=("build", "run")) + + depends_on("py-setuptools@64:", type="build", when="@0.2.4:") depends_on("py-setuptools", type="build") + depends_on("py-setuptools-scm@8:", type="build", when="@0.2.4:") depends_on("py-numpy", type=("build", "run")) depends_on("py-h5py", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_h5netcdf/package.py b/repos/spack_repo/builtin/packages/py_h5netcdf/package.py index 840dad80564..7b7fb5d4830 100644 --- a/repos/spack_repo/builtin/packages/py_h5netcdf/package.py +++ b/repos/spack_repo/builtin/packages/py_h5netcdf/package.py @@ -17,13 +17,20 @@ class PyH5netcdf(PythonPackage): license("BSD-3-Clause") + version("1.8.1", sha256="9b396a4cc346050fc1a4df8523bc1853681ec3544e0449027ae397cb953c7a16") version("1.6.1", sha256="7ef4ecd811374d94d29ac5e7f7db71ff59b55ef8eeefbe4ccc2c316853d31894") version("1.3.0", sha256="a171c027daeb34b24c24a3b6304195b8eabbb6f10c748256ed3cfe19806383cf") version("0.10.0", sha256="fc1cfec33bb9f730c412f87fcbc259167fd7620635679ccfc6e31971730dbd60") - depends_on("python@3.9:", when="@1.3:", type=("build", "run")) - depends_on("py-setuptools@42:", when="@1.3:", type="build") - depends_on("py-setuptools", type="build") - depends_on("py-setuptools-scm@7:+toml", when="@1.3:", type="build") - depends_on("py-h5py", type=("build", "run")) - depends_on("py-packaging", when="@1.3:", type=("build", "run")) + variant("h5py", default=False, description="Use h5py backend", when="@1.8:") + + with default_args(type="build"): + depends_on("py-setuptools@42:", when="@1.3:", type="build") + depends_on("py-setuptools", type="build") + depends_on("py-setuptools-scm@7:+toml", when="@1.3:", type="build") + + with default_args(type=("build", "run")): + depends_on("py-packaging", when="@1.3:") + depends_on("py-numpy", when="@1.8.1:") + depends_on("py-h5py", when="+h5py") + depends_on("py-h5py", when="@:1.7") diff --git a/repos/spack_repo/builtin/packages/py_h5py/package.py b/repos/spack_repo/builtin/packages/py_h5py/package.py index 5893e2db604..8b47149d036 100644 --- a/repos/spack_repo/builtin/packages/py_h5py/package.py +++ b/repos/spack_repo/builtin/packages/py_h5py/package.py @@ -14,19 +14,16 @@ class PyH5py(PythonPackage): homepage = "https://www.h5py.org/" pypi = "h5py/h5py-3.3.0.tar.gz" git = "https://github.com/h5py/h5py.git" + maintainers("bryanherman", "takluyver") license("BSD-3-Clause") version("master", branch="master") + version("3.16.0", sha256="a0dbaad796840ccaa67a4c144a0d0c8080073c34c76d5a6941d6818678ef2738") + version("3.14.0", sha256="2372116b2e0d5d3e5e705b7f663f7c8d96fa79a4052d250484ef91d24d6a08f4") version("3.13.0", sha256="1870e46518720023da85d0895a1960ff2ce398c5671eac3b1a41ec696b7105c3") version("3.12.1", sha256="326d70b53d31baa61f00b8aa5f95c2fcb9621a3ee8365d770c551a13dbbcbfdf") - # Yanked - version( - "3.12.0", - sha256="00955a079e9f86c5ae2cd08accb54396c69cda87152312ddd1528e3f90acc866", - deprecated=True, - ) version("3.11.0", sha256="7b7e8f78072a2edec87c9836f25f34203fd492a4475709a18b417a33cfb21fa9") version("3.10.0", sha256="d93adc48ceeb33347eb24a634fb787efc7ae4644e6ea4ba733d099605045c049") version("3.9.0", sha256="e604db6521c1e367c6bd7fad239c847f53cc46646f2d2651372d05ae5e95f817") @@ -51,60 +48,65 @@ class PyH5py(PythonPackage): variant("mpi", default=True, description="Build with MPI support") - depends_on("c", type="build") - - # Python versions - # python@3.9+ is required in 3.12+, but 3.11 needs python@3.9+ for numpy@2 - # as python@3.8 is deprecated in spack, harmonized on python@3.9+ - # https://github.com/h5py/h5py/blob/3.11.0/pyproject.toml#L5 - depends_on("python@3.9:", type=("build", "run"), when="@3.11:") - depends_on("python@:3.9", type=("build", "run"), when="@:2.8") - # Build dependencies - # h5py@3.11 can build with cython@3.x - depends_on("py-cython@0.29.31:3", type="build", when="@3.11:") - depends_on("py-cython@0.29.31:0", type="build", when="@3.9:3.10") - depends_on("py-cython@0.29.15:0", type=("build"), when="@3:3.7 ^python@3.9.0:") - depends_on("py-cython@0.29.14:0", type=("build"), when="@3:3.7 ^python@3.8.0:3.8") - depends_on("py-cython@0.29:0", type=("build"), when="@3.0:3.10") - depends_on("py-cython@0.23:0", type="build", when="@:2") - depends_on("py-pkgconfig", type="build") - depends_on("py-setuptools@61:", type="build", when="@3.8.0:") - depends_on("py-setuptools", type="build") - - # Build and runtime dependencies - depends_on("py-numpy@2", type=("build", "run"), when="@3.11: ^python@3.9:") - - # https://github.com/h5py/h5py/pull/2556 - depends_on("py-numpy@2:2.2", when="@3.11:3.12", type="build") - - # until 3.11.0, uses "oldest-supported-numpy" and doesn't support numpy2 - # https://github.com/scipy/oldest-supported-numpy/blob/main/setup.cfg - # pre-3.11 is numpy@1 only - # https://github.com/h5py/h5py/issues/2353 - depends_on("py-numpy@:1", when="@:3.10", type=("build", "run")) - depends_on("py-numpy@1.19.3:", type=("build", "run"), when="@3:3.10 ^python@3.9:") - depends_on("py-numpy@1.17.5:", type=("build", "run"), when="@3:3.5 ^python@3.8.0:3.8") - depends_on("py-numpy@1.7:", type=("build", "run"), when="@:2") + with default_args(type="build"): + depends_on("c") + + depends_on("py-cython@3", when="@3.15:") + # h5py@3.11 can build with cython@3.x + depends_on("py-cython@0.29.31:3", when="@3.11:") + depends_on("py-cython@0.29.31:0", when="@3.9:3.10") + depends_on("py-cython@0.29.15:0", when="@3:3.7") + depends_on("py-cython@0.29:0", when="@3.0:3.10") + depends_on("py-cython@0.23:0", when="@:2") + + depends_on("py-packaging@23:", when="@3.16:") + depends_on("py-pkgconfig@1.5.5:", when="@3.15:") + depends_on("py-pkgconfig") + depends_on("py-setuptools@77.0.1:", when="@3.15:") + depends_on("py-setuptools@77:", when="@3.14:") + depends_on("py-setuptools@61:", when="@3.8.0:") + depends_on("py-setuptools") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@3.15:") + depends_on("python@3.9:", when="@3.12:") + + depends_on("py-numpy@1.25:2", when="@3.15:") + # https://github.com/h5py/h5py/issues/2644 + depends_on("py-numpy@2:", when="@3.14") + depends_on("py-numpy@1.19.3:", when="@3.12:") + depends_on("py-numpy@1.17.3:", when="@3.9:") + depends_on("py-numpy@1.14.5:", when="@3.2:") + depends_on("py-numpy@1.12:", when="@3.0:") + depends_on("py-numpy@1.7:", when="@2.7:") + depends_on("py-numpy@1.6.1:", when="@2.4:") + + # pre-3.11 is numpy@1 only + # https://github.com/h5py/h5py/issues/2353 + depends_on("py-numpy@:1", when="@:3.10") + + # Historical dependencies + depends_on("py-six", when="@:2") # Link dependencies (py-h5py v2 cannot build against HDF5 1.12 regardless # of API setting) - depends_on("hdf5@1.10.6:1.14 +hl", when="@3.12:") + # version constraints from https://github.com/h5py/h5py/tree/master/docs/whatsnew + depends_on("hdf5@1.10.7:1.14 +hl", when="@3.15:") + depends_on("hdf5@1.10.6:1.14 +hl", when="@3.12:3.14") depends_on("hdf5@1.10.4:1.14 +hl", when="@3.10:3.11") depends_on("hdf5@1.8.4:1.14 +hl", when="@3.8:3.9") depends_on("hdf5@1.8.4:1.12 +hl", when="@3:3.7") depends_on("hdf5@1.8.4:1.11 +hl", when="@:2") # MPI dependencies - depends_on("hdf5+mpi", when="+mpi") - depends_on("mpi", when="+mpi") - depends_on("py-mpi4py@3.1.1:", when="@3.8: +mpi", type=("build", "run")) - depends_on("py-mpi4py@3.0.2:", when="@3: +mpi", type=("build", "run")) - depends_on("py-mpi4py", when="@:2 +mpi", type=("build", "run")) - - # Historical dependencies - depends_on("py-cached-property@1.5:", type=("build", "run"), when="@:3.6 ^python@:3.7") - depends_on("py-six", type=("build", "run"), when="@:2") + with when("+mpi"): + depends_on("hdf5+mpi") + depends_on("mpi") + depends_on("py-mpi4py@3.1.2:", when="@3.15:", type=("build", "run")) + depends_on("py-mpi4py@3.1.1:", when="@3.8:", type=("build", "run")) + depends_on("py-mpi4py@3.0.2:", when="@3:", type=("build", "run")) + depends_on("py-mpi4py", when="@:2", type=("build", "run")) def flag_handler(self, name, flags): if name == "cflags": diff --git a/repos/spack_repo/builtin/packages/py_hail/package.py b/repos/spack_repo/builtin/packages/py_hail/package.py index 321988782fc..808b4652c16 100644 --- a/repos/spack_repo/builtin/packages/py_hail/package.py +++ b/repos/spack_repo/builtin/packages/py_hail/package.py @@ -222,7 +222,7 @@ def build_targets(self): def install(self, spec, prefix): spec = self.spec - pip = which("pip") + pip = which("pip", required=True) wheel = self.build_wheel_file_path # This mimics the install-on-cluster target but avoids anything @@ -232,6 +232,5 @@ def install(self, spec, prefix): backend = spec.variants["query_backend"].value if backend != "undefined": - hailctl = which("hailctl") # Should be installed from above - if hailctl is not None: # but it might not be - hailctl("config", "set", "query/backend", f"{backend}") + hailctl = which("hailctl", required=True) + hailctl("config", "set", "query/backend", f"{backend}") diff --git a/repos/spack_repo/builtin/packages/py_haphpipe/package.py b/repos/spack_repo/builtin/packages/py_haphpipe/package.py deleted file mode 100644 index a5100f4ba40..00000000000 --- a/repos/spack_repo/builtin/packages/py_haphpipe/package.py +++ /dev/null @@ -1,52 +0,0 @@ -# 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 PyHaphpipe(PythonPackage): - """HAplotype and PHylodynamics pipeline for viral assembly, - population genetics, and phylodynamics.""" - - homepage = "https://github.com/gwcbi/haphpipe" - url = "https://github.com/gwcbi/haphpipe/archive/v1.0.3.tar.gz" - - maintainers("dorton21") - - license("GPL-3.0-or-later") - - version("1.0.3", sha256="9a9e8632a217ff4207c1dea66887a471e0ea04bbb7c0f0d72631acaba214bd37") - - # Deps. taken from - # https://github.com/bioconda/bioconda-recipes/blob/master/recipes/haphpipe/meta.yaml - # https://bioconda.github.io/recipes/haphpipe/README.html - # https://github.com/gwcbi/haphpipe/blob/master/environment.yml - depends_on("python@3.7:", type=("build", "run")) - depends_on("py-future", type=("build", "run")) - depends_on("py-pyyaml", type=("build", "run")) - depends_on("py-biopython@1.73:", type=("build", "run")) - depends_on("py-gsutil", type=("build", "run")) - depends_on("py-sierrapy", type=("build", "run")) - depends_on("py-setuptools", type="build") - - depends_on("bowtie2", type=("build", "run")) - depends_on("blast-plus", type=("build", "run")) - depends_on("freebayes", type=("build", "run")) - depends_on("modeltest-ng", type=("build", "run")) - depends_on("libdeflate", type=("build", "run")) - depends_on("sratoolkit", type=("build", "run")) - depends_on("spades", type=("build", "run")) - depends_on("seqtk", type=("build", "run")) - depends_on("raxml-ng~mpi", type=("build", "run")) - depends_on("gatk@3.8-0", type=("build", "run")) - depends_on("trinity", type=("build", "run")) - depends_on("trimmomatic@0.38:", type=("build", "run")) - depends_on("flash@1.2.11:", type=("build", "run")) - depends_on("mummer@3.23:", type=("build", "run")) - depends_on("bwa", type=("build", "run")) - depends_on("samtools@1.9:", type=("build", "run")) - depends_on("mafft", type=("build", "run")) - depends_on("picard", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_hatch/package.py b/repos/spack_repo/builtin/packages/py_hatch/package.py index 1eeae69e0fe..25102b2a194 100644 --- a/repos/spack_repo/builtin/packages/py_hatch/package.py +++ b/repos/spack_repo/builtin/packages/py_hatch/package.py @@ -15,14 +15,16 @@ class PyHatch(PythonPackage): license("MIT") + version("1.14.1", sha256="ca1aff788f8596b0dd1f8f8dfe776443d2724a86b1976fabaf087406ba3d0713") version("1.13.0", sha256="5e1a75770cfe8f3ebae3abfded3a976238b0acefd19cdabc5245597525b8066f") version("1.12.0", sha256="ae80478d10312df2b44d659c93bc2ed4d33aecddce4b76378231bdf81c8bf6ad") depends_on("python@3.8:", type=("build", "run")) - depends_on("py-hatchling@1.24.2:", type="build") + depends_on("py-hatchling@1.24.2:", type=("build", "run")) + depends_on("py-hatchling@1.26.3:", type=("build", "run"), when="@1.14:") depends_on("py-hatch-vcs@0.3.0:", type="build") - depends_on("py-pyproject-hooks", type=("build")) + depends_on("py-pyproject-hooks", type="build") depends_on("py-click@8.0.6:", type=("build", "run")) depends_on("py-httpx@0.22.0:", type=("build", "run")) @@ -35,7 +37,9 @@ class PyHatch(PythonPackage): depends_on("py-shellingham@1.4.0:", type=("build", "run")) depends_on("py-tomli-w@1.0:", type=("build", "run")) depends_on("py-tomlkit@0.11.1:", type=("build", "run")) - depends_on("py-userpath@1.7:1.7", type=("build", "run")) + depends_on("py-userpath@1.7:1", type=("build", "run")) depends_on("py-uv@0.1.35:", type=("build", "run")) + depends_on("py-uv@0.5.23:", type=("build", "run"), when="@1.14:") depends_on("py-virtualenv@20.26.1:", type=("build", "run")) - depends_on("py-zstandard@:1", type=("build", "run")) + depends_on("py-virtualenv@20.26.6:", type=("build", "run"), when="@1.14:") + depends_on("py-zstandard@:0", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_hatch_fancy_pypi_readme/package.py b/repos/spack_repo/builtin/packages/py_hatch_fancy_pypi_readme/package.py index 5b7a33ce4f0..e63a9b888b8 100644 --- a/repos/spack_repo/builtin/packages/py_hatch_fancy_pypi_readme/package.py +++ b/repos/spack_repo/builtin/packages/py_hatch_fancy_pypi_readme/package.py @@ -13,9 +13,11 @@ class PyHatchFancyPypiReadme(PythonPackage): homepage = "https://github.com/hynek/hatch-fancy-pypi-readme" pypi = "hatch_fancy_pypi_readme/hatch_fancy_pypi_readme-22.7.0.tar.gz" + version("25.1.0", sha256="9c58ed3dff90d51f43414ce37009ad1d5b0f08ffc9fc216998a06380f01c0045") version("23.1.0", sha256="b1df44063094af1e8248ceacd47a92c9cf313d6b9823bf66af8a927c3960287d") version("22.7.0", sha256="dedf2ba0b81a2975abb1deee9310b2eb85d22380fda0d52869e760b5435aa596") depends_on("py-hatchling", type=("build", "run")) + depends_on("py-hatchling@1.26:", when="@25:", type=("build", "run")) depends_on("py-tomli", when="^python@:3.10", type=("build", "run")) depends_on("py-typing-extensions", when="^python@:3.7", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_hatch_jupyter_builder/package.py b/repos/spack_repo/builtin/packages/py_hatch_jupyter_builder/package.py index b1ddf3a6bb1..c978019b7f1 100644 --- a/repos/spack_repo/builtin/packages/py_hatch_jupyter_builder/package.py +++ b/repos/spack_repo/builtin/packages/py_hatch_jupyter_builder/package.py @@ -15,9 +15,11 @@ class PyHatchJupyterBuilder(PythonPackage): license("BSD-3-Clause") + version("0.9.1", sha256="79278198d124c646b799c5e8dca8504aed9dcaaa88d071a09eb0b5c2009a58ad") version("0.8.3", sha256="0dbd14a8aef6636764f88a8fd1fcc9a91921e5c50356e6aab251782f264ae960") depends_on("npm", type="run") - depends_on("python@3.8:", type=("build", "run")) - depends_on("py-hatchling@1.5:", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("py-hatchling@1.17:", when="@0.9:") + depends_on("py-hatchling@1.5:") diff --git a/repos/spack_repo/builtin/packages/py_hatch_nodejs_version/package.py b/repos/spack_repo/builtin/packages/py_hatch_nodejs_version/package.py index 07a99a472da..f896ad82c93 100644 --- a/repos/spack_repo/builtin/packages/py_hatch_nodejs_version/package.py +++ b/repos/spack_repo/builtin/packages/py_hatch_nodejs_version/package.py @@ -15,8 +15,12 @@ class PyHatchNodejsVersion(PythonPackage): license("MIT") + version("0.4.0", sha256="2428ea398dd053f019d2b7ac949dd6b690ca8e826b6d433ad13c5b6c475ae91b") version("0.3.2", sha256="8a7828d817b71e50bbbbb01c9bfc0b329657b7900c56846489b9c958de15b54c") version("0.3.1", sha256="0e55fd713d92c5c1ccfee778efecaa780fd8bcd276d4ca7aff9f6791f6f76d9c") - depends_on("python@3.7:", type=("build", "run")) - depends_on("py-hatchling@0.21:", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@0.4:") + depends_on("python@3.7:") + + depends_on("py-hatchling@0.21:") diff --git a/repos/spack_repo/builtin/packages/py_hatch_vcs/package.py b/repos/spack_repo/builtin/packages/py_hatch_vcs/package.py index e1fc46a531a..8d03e320284 100644 --- a/repos/spack_repo/builtin/packages/py_hatch_vcs/package.py +++ b/repos/spack_repo/builtin/packages/py_hatch_vcs/package.py @@ -15,11 +15,13 @@ class PyHatchVcs(PythonPackage): license("MIT") + version("0.5.0", sha256="0395fa126940340215090c344a2bf4e2a77bcbe7daab16f41b37b98c95809ff9") version("0.4.0", sha256="093810748fe01db0d451fabcf2c1ac2688caefd232d4ede967090b1c1b07d9f7") version("0.3.0", sha256="cec5107cfce482c67f8bc96f18bbc320c9aa0d068180e14ad317bbee5a153fee") version("0.2.0", sha256="9913d733b34eec9bb0345d0626ca32165a4ad2de15d1ce643c36d09ca908abff") - depends_on("py-hatchling@1.24.2:", when="@0.4:", type=("build", "run")) + depends_on("python@3.9:", when="@0.5:", type=("build", "run")) depends_on("python@3.8:", when="@0.4:", type=("build", "run")) depends_on("py-hatchling@1.1:", when="@0.3:", type=("build", "run")) + depends_on("py-setuptools-scm@8.2.0:", when="@0.5:", type=("build", "run")) depends_on("py-setuptools-scm@6.4.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_hatchet/package.py b/repos/spack_repo/builtin/packages/py_hatchet/package.py index e9c11b2997f..982dbda24d5 100644 --- a/repos/spack_repo/builtin/packages/py_hatchet/package.py +++ b/repos/spack_repo/builtin/packages/py_hatchet/package.py @@ -20,46 +20,17 @@ class PyHatchet(PythonPackage): license("MIT") version("1.4.0", sha256="9f934f128666703d30818e9a091493df1bf1819bf7445ffb35a0f46871501b55") - version( - "1.3.0", - sha256="d77d071fc37863fdc9abc3fd9ea1088904cd98c6980a014a31e44595d2deac5e", - deprecated=True, - ) - version( - "1.2.0", - sha256="1d5f80abfa69d1a379dff7263908c5c915023f18f26d50b639556e2f43ac755e", - deprecated=True, - ) - version( - "1.1.0", - sha256="71bfa2881ef295294e5b4493acb8cce98d14c354e9ae59b42fb56a76d8ec7056", - deprecated=True, - ) - version( - "1.0.1", - sha256="e5a4b455ab6bfbccbce3260673d9af8d1e4b21e19a2b6d0b6c1e1d7727613b7a", - deprecated=True, - ) - version( - "1.0.0", - sha256="efd218bc9152abde0a8006489a2c432742f00283a114c1eeb6d25abc10f5862d", - deprecated=True, - ) depends_on("c", type="build") # generated - # https://github.com/hatchet/hatchet/issues/428 - depends_on("python@2.7:3.8", when="@:1.3.0", type=("build", "run")) - depends_on("python@2.7:", when="@1.3.1:", type=("build", "run")) - - depends_on("py-cython", when="@1.4:", type="build") + depends_on("py-cython", type="build") depends_on("py-setuptools", type="build") depends_on("py-pydot", type=("build", "run")) depends_on("py-pyyaml", type=("build", "run")) depends_on("py-matplotlib", type=("build", "run")) depends_on("py-numpy", type=("build", "run")) depends_on("py-pandas", type=("build", "run")) - depends_on("py-textx", when="@1.4:", type=("build", "run")) - depends_on("py-multiprocess", when="@1.4:", type=("build", "run")) - depends_on("py-caliper-reader", when="@1.4:", type=("build", "run")) - depends_on("py-pycubexr", when="@1.4:", type=("build", "run")) + depends_on("py-textx", type=("build", "run")) + depends_on("py-multiprocess", type=("build", "run")) + depends_on("py-caliper-reader", type=("build", "run")) + depends_on("py-pycubexr", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_hatchling/package.py b/repos/spack_repo/builtin/packages/py_hatchling/package.py index b7b561f7458..cf3860afbdc 100644 --- a/repos/spack_repo/builtin/packages/py_hatchling/package.py +++ b/repos/spack_repo/builtin/packages/py_hatchling/package.py @@ -16,6 +16,7 @@ class PyHatchling(PythonPackage): license("MIT", checked_by="tgamblin") + version("1.29.0", sha256="793c31816d952cee405b83488ce001c719f325d9cda69f1fc4cd750527640ea6") version("1.27.0", sha256="971c296d9819abb3811112fc52c7a9751c8d381898f36533bb16f9791e941fd6") version("1.25.0", sha256="7064631a512610b52250a4d3ff1bd81551d6d1431c4eb7b72e734df6c74f4262") version("1.24.2", sha256="41ddc27cdb25db9ef7b68bef075f829c84cb349aa1bff8240797d012510547b0") @@ -28,14 +29,18 @@ class PyHatchling(PythonPackage): version("1.8.1", sha256="448b04b23faed669b2b565b998ac955af4feea66c5deed3a1212ac9399d2e1cd") version("1.4.1", sha256="13461b42876ade4f75ee5d2a2c656b288ca0aab7f048ef66657ef166996b2118") + def setup_dependent_build_environment( + self, env: EnvironmentModifications, dependent_spec: Spec + ) -> None: + # If trove-classifiers is older than the latest Python release, it pedantically errors + # over classifiers like "Programming Language :: Python :: 3.X". Disable that check. + env.set("HATCH_METADATA_CLASSIFIERS_NO_VERIFY", "1") + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@1.28:") depends_on("python@3.8:", when="@1.18:") depends_on("python@3.7:", when="@1.12:") - depends_on("py-editables@0.3:", when="@:1.21") - - depends_on("py-importlib-metadata", when="@1.12:1.17 ^python@:3.7") - depends_on("py-packaging@24.2:", when="@1.26:") depends_on("py-packaging@23.2:", when="@1.23:") depends_on("py-packaging@21.3:") @@ -48,3 +53,7 @@ class PyHatchling(PythonPackage): depends_on("py-tomli@1.2.2:", when="^python@:3.10") depends_on("py-trove-classifiers", when="@1.14:") + + # Historical dependencies + depends_on("py-editables@0.3:", when="@:1.21") + depends_on("py-importlib-metadata", when="@1.12:1.17 ^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_hdfs/package.py b/repos/spack_repo/builtin/packages/py_hdfs/package.py index e9db8997946..107139ef395 100644 --- a/repos/spack_repo/builtin/packages/py_hdfs/package.py +++ b/repos/spack_repo/builtin/packages/py_hdfs/package.py @@ -15,6 +15,7 @@ class PyHdfs(PythonPackage): license("MIT") + version("2.7.3", sha256="752a21e43f82197dce43697c73f454ba490838108c73a57a9247efb66d1c0479") version("2.1.0", sha256="a40fe99ccb03b5c3247b33a4110eb21b57405dd7c3f1b775e362e66c19b44bc6") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_heat/package.py b/repos/spack_repo/builtin/packages/py_heat/package.py index 57116d47e87..bb2125f686d 100644 --- a/repos/spack_repo/builtin/packages/py_heat/package.py +++ b/repos/spack_repo/builtin/packages/py_heat/package.py @@ -8,17 +8,24 @@ class PyHeat(PythonPackage): - """Heat is a flexible and seamless open-source software for high performance data analytics - and machine learning. It provides highly optimized algorithms and data structures for tensor - computations using CPUs, GPUs and distributed cluster systems on top of MPI.""" + """Heat is a distributed tensor framework built on PyTorch and mpi4py. It provides + highly optimized algorithms and data structures for tensor computations using + CPUs, GPUs (CUDA/ROCm), and distributed cluster systems. It is designed to + handle massive arrays that exceed the memory and computational limits of a + single machine.""" homepage = "https://github.com/helmholtz-analytics/heat/" pypi = "heat/heat-1.3.0.tar.gz" - maintainers("mrfh92", "ClaudiaComito", "JuanPedroGHM") + maintainers("ClaudiaComito", "JuanPedroGHM", "LeonKaem") license("MIT") + version("1.8.0", sha256="f0d64e122c88a44ca27ad60d91cdb7250f97c71c971913302ed90d838d7fd253") + version("1.7.0", sha256="1d787cc5f52fc2123bb69e6e2ee53b268b258abe4ed5be99e53706bcb250175c") + version("1.6.0", sha256="cd011e67c284b7f94d0f1c6ff8bf5309535fa26a895b0db2df83290c47dae55b") + version("1.5.1", sha256="95fea9daec6c2d5f0453159dbcd5efb26cb23997f0981e49fe9793a2fd342313") + version("1.5.0", sha256="a2e2d7f0c1f340ab2597f2b9c02563f0057419a53287fbf4cdf1a7934bc6d60b") version("1.4.2", sha256="d6714428a9c5204c1c44a2b246f228effaddc688f812277f229f4acdbcfeb7c5") version("1.4.1", sha256="ecd871717c372a6983f643c0178dda44bc017d6b32b9258dbf3775af95f580ce") version("1.4.0", sha256="6836fa10f9ce62ea61cf1bdc3283d7ad0c305836cc5a08c4edfd30695708e788") @@ -30,36 +37,88 @@ class PyHeat(PythonPackage): variant( "netcdf", default=False, description="Use the py-netcdf4 package needed for NetCDF support" ) + variant( + "zarr", default=False, description="Use the py-zarr package for Zarr support", when="@1.6:" + ) variant("dev", default=False, description="Use the py-pre-commit package") variant( "examples", default=False, description="Use py-scikit-learn and py-matplotlib for the example tests", ) + variant("cuda", default=False, description="build Py_Torch dependency with cuda support") + variant("rocm", default=False, description="build Py_Torch dependency with rocm support") depends_on("py-setuptools", type="build") + # dependencies per major version, sourced from setup.py or pyproject.toml with when("@1.3"): depends_on("python@3.8:3.10", type=("build", "run")) depends_on("py-mpi4py@3:", type=("build", "run")) depends_on("py-numpy@1.20:1", type=("build", "run")) - depends_on("py-torch@1.8:2.0.1", type=("build", "run")) depends_on("py-scipy@0.14:", type=("build", "run")) depends_on("pil@6:", type=("build", "run")) depends_on("py-torchvision@0.8:", type=("build", "run")) + depends_on("py-torch@1.8:2.0.1", type=("build", "run")) with when("@1.4"): depends_on("python@3.8:3.11", type=("build", "run")) depends_on("py-mpi4py@3:", type=("build", "run")) depends_on("py-numpy@1.22:1", type=("build", "run")) - depends_on("py-torch@1.11:2.3.2", type=("build", "run")) depends_on("py-scipy@1.10:", type=("build", "run")) depends_on("pil@6:", type=("build", "run")) depends_on("py-torchvision@0.12:", type=("build", "run")) + depends_on("py-torch@1.11:2.3.2", type=("build", "run")) + + with when("@1.5"): + depends_on("python@3.9:3.12", type=("build", "run")) + depends_on("py-mpi4py@3:", type=("build", "run")) + depends_on("py-numpy@1.22:1", type=("build", "run")) + depends_on("py-scipy@1.10:", type=("build", "run")) + depends_on("pil@6:", type=("build", "run")) + depends_on("py-typing-extensions", type=("build", "run")) + depends_on("py-torchvision@0.15.2:0.21.1", type=("build", "run")) + depends_on("py-torch@2.0:2.6.1", type=("build", "run")) + + with when("@1.6"): + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-mpi4py@3:", type=("build", "run")) + depends_on("py-scipy@1.14:", type=("build", "run")) + depends_on("pil@6:", when=("+examples"), type=("build", "run")) + depends_on("py-typing-extensions", type=("build", "run")) + depends_on("py-torchvision@0.15:", type=("build", "run")) + depends_on("py-torch@2.0:2.8.0", type=("build", "run")) + + with when("@1.7"): + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-mpi4py@3.0.0:", type=("build", "run")) + depends_on("py-scipy@1.14:", type=("build", "run")) + depends_on("pil", when="+examples", type=("build", "run")) + depends_on("py-torchvision@0.15:", type=("build", "run")) + depends_on("py-torch@2.0:2.9", type=("build", "run")) + with when("@1.8"): + depends_on("python@3.11:", type=("build", "run")) + depends_on("py-mpi4py@3.1:", type=("build", "run")) + depends_on("py-scipy@1.14:", type=("build", "run")) + depends_on("pil@6:", when=("+examples"), type=("build", "run")) + depends_on("py-torchvision@0.18:", type=("build", "run")) + depends_on("py-torch@2.3:2.11.0", type=("build", "run")) + + # specify differences cuda vs rocm + with when("+cuda"): + depends_on("py-torch+cuda", type=("build", "run")) + + with when("+rocm"): + depends_on("py-torch+rocm", type=("build", "run")) + + # additional variants depends_on("py-docutils@0.16:", when="+docutils", type=("build", "link", "run")) depends_on("py-h5py@2.8.0:", when="+hdf5", type=("build", "link", "run")) depends_on("py-netcdf4@1.5.6:", when="+netcdf", type=("build", "link", "run")) + depends_on("py-zarr", when="+zarr", type=("build", "link", "run")) depends_on("py-pre-commit@1.18.3:", when="+dev", type=("build", "link", "run")) depends_on("py-scikit-learn@0.24.0:", when="+examples", type=("build", "link", "run")) depends_on("py-matplotlib@3.1.0:", when="+examples", type=("build", "link", "run")) + + conflicts("+cuda+rocm") diff --git a/repos/spack_repo/builtin/packages/py_heavyball/package.py b/repos/spack_repo/builtin/packages/py_heavyball/package.py new file mode 100644 index 00000000000..5c0482d0d09 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_heavyball/package.py @@ -0,0 +1,31 @@ +# 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 PyHeavyball(PythonPackage): + """Efficient Optimizers""" + + homepage = "https://github.com/HomebrewML/HeavyBall" + git = "https://github.com/HomebrewML/HeavyBall.git" + pypi = "heavyball/heavyball-2.3.1.tar.gz" + + maintainers("LydDeb") + + license("BSD-2-Clause", checked_by="LydDeb") + + version("2.3.1", sha256="125e1858860063a319c5699736474d173b6121c82bc2b14e9c0bd5ea28bdcd4b") + + depends_on("python@3.9:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-setuptools@75:") + + with default_args(type=("build", "run")): + depends_on("py-opt-einsum@3.4.0:") + depends_on("py-numpy@2.2:2") + depends_on("py-torch@2.3.4:") diff --git a/repos/spack_repo/builtin/packages/py_hepdata_validator/package.py b/repos/spack_repo/builtin/packages/py_hepdata_validator/package.py index e17ab5ef62e..16048173d59 100644 --- a/repos/spack_repo/builtin/packages/py_hepdata_validator/package.py +++ b/repos/spack_repo/builtin/packages/py_hepdata_validator/package.py @@ -12,9 +12,11 @@ class PyHepdataValidator(PythonPackage): homepage = "https://github.com/hepdata/hepdata-validator" pypi = "hepdata_validator/hepdata_validator-0.1.16.tar.gz" + git = "https://github.com/hepdata/hepdata-validator.git" tags = ["hep"] + version("0.3.6", sha256="e57b97f83509c81d579ccbbd4cdd515043ba32aa1d8543bf31a36a19dcf08fbb") version("0.3.3", sha256="dccdf2ba58bac78e879145a2ff31d299e7b20bd7f28b575ab9d07b950ab723ae") version("0.3.0", sha256="d603ddf908ce3838bac09bf7334184db4b35f03e2b215572c67b5e1fabbf0d9b") version("0.2.3", sha256="314e75eae7d4a134bfc8291440259839d82aabefdd720f237c0bf8ea5c9be4dc") diff --git a/repos/spack_repo/builtin/packages/py_hepunits/package.py b/repos/spack_repo/builtin/packages/py_hepunits/package.py index 9723369e038..0a387d32d8b 100644 --- a/repos/spack_repo/builtin/packages/py_hepunits/package.py +++ b/repos/spack_repo/builtin/packages/py_hepunits/package.py @@ -21,6 +21,8 @@ class PyHepunits(PythonPackage): license("BSD-3-Clause") version("master", branch="master") + version("2.4.4", sha256="1846e729fa3e4fb36bff599ed7b8bd2cdc4abdc02906830fb75c205fd54905eb") + version("2.3.6", sha256="cffc1c82040b15bb530542ec97f3c1f83aae6050caa4cc5c1a03097bebe34932") version("2.3.2", sha256="8a3366fa5d72c16af1166ed579cdaa81edd2676acb8f6a1fe7da290cefca3b08") version("2.3.1", sha256="b1174bba4d575b9939c01f341e24d9bdbe0e0cd4cc4ce2e7d77692da19145cfb") version("2.3.0", sha256="33b9ae9a8b7b3af355141a74901cb5aa557dce2e4c9992a0a30ef0443a1b2206") @@ -35,6 +37,8 @@ class PyHepunits(PythonPackage): depends_on("python@2.7:2.8,3.5:", type=("build", "run")) depends_on("python@3.6:", when="@2.2:", type=("build", "run")) depends_on("python@3.7:", when="@2.3:", type=("build", "run")) + depends_on("python@3.8:", when="@2.3.4:", type=("build", "run")) + depends_on("python@3.9:", when="@2.4.3:", type=("build", "run")) depends_on("py-setuptools", when="@:2.2", type="build") depends_on("py-setuptools-scm +toml", when="@:2.2", type="build") depends_on("py-hatchling", when="@2.3:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_heudiconv/package.py b/repos/spack_repo/builtin/packages/py_heudiconv/package.py new file mode 100644 index 00000000000..48c2a8c6a31 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_heudiconv/package.py @@ -0,0 +1,37 @@ +# 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 PyHeudiconv(PythonPackage): + """Heuristic DICOM Converter.""" + + homepage = "https://heudiconv.readthedocs.io/" + pypi = "heudiconv/heudiconv-1.3.4.tar.gz" + git = "https://github.com/nipy/heudiconv.git" + + license("apache-2.0") + + version("1.3.4", sha256="cd3ff1cbd7f41819a11899b819dd1910a35289f0418f1d119933aaabaa8de1aa") + + depends_on("python@3.9:", type=("build", "run")) + + # from pyproject.toml + with default_args(type="build"): + depends_on("py-setuptools@46.4:") + depends_on("py-versioningit@2.3:2") + depends_on("py-wheel@0.32:0") + + # from heudiconv/info.py + with default_args(type=("build", "run")): + depends_on("py-dcmstack@0.8:") + depends_on("py-etelemetry") + depends_on("py-filelock@3.0.12:") + depends_on("py-nibabel@5.3.1:") + depends_on("py-nipype@1.2.3:") + depends_on("py-pydicom@1:") + depends_on("dcm2niix") diff --git a/repos/spack_repo/builtin/packages/py_hf_transfer/package.py b/repos/spack_repo/builtin/packages/py_hf_transfer/package.py index 22f8f753e3c..aab4098aafd 100644 --- a/repos/spack_repo/builtin/packages/py_hf_transfer/package.py +++ b/repos/spack_repo/builtin/packages/py_hf_transfer/package.py @@ -15,7 +15,12 @@ class PyHfTransfer(PythonPackage): license("Apache-2.0") + version("0.1.9", sha256="035572865dab29d17e783fbf1e84cf1cb24f3fcf8f1b17db1cfc7fdf139f02bf") version("0.1.8", sha256="26d229468152e7a3ec12664cac86b8c2800695fd85f9c9a96677a775cc04f0b3") with default_args(type="build"): depends_on("py-maturin@1.4:1") + depends_on("rust") + + # https://github.com/huggingface/hf_transfer/pull/74 + depends_on("python@:3.13", when="@:0.1.8", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_hf_xet/package.py b/repos/spack_repo/builtin/packages/py_hf_xet/package.py new file mode 100644 index 00000000000..4bde55ad4e3 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_hf_xet/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 PyHfXet(PythonPackage): + """Fast transfer of large files with the Hugging Face Hub.""" + + homepage = "https://github.com/huggingface/xet-core" + pypi = "hf-xet/hf_xet-1.1.5.tar.gz" + + license("Apache-2.0") + + version("1.4.3", sha256="8ddedb73c8c08928c793df2f3401ec26f95be7f7e516a7bee2fbb546f6676113") + version("1.1.5", sha256="69ebbcfd9ec44fdc2af73441619eeb06b94ee34511bbcf57cd423820090f5694") + + with default_args(type="build"): + depends_on("c") + depends_on("cxx") + + # https://github.com/huggingface/xet-core/blob/v1.1.5/hf_xet/pyproject.toml + depends_on("py-maturin@1.7:1") + depends_on("rust") + + conflicts("py-maturin@1.13:", when="@:1.1") diff --git a/repos/spack_repo/builtin/packages/py_highspy/package.py b/repos/spack_repo/builtin/packages/py_highspy/package.py new file mode 100644 index 00000000000..5c73bcd793e --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_highspy/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 PyHighspy(PythonPackage): + """A thin set of pybind11 wrappers to HiGHS""" + + homepage = "https://github.com/ERGO-Code/HiGHS" + pypi = "highspy/highspy-1.13.1.tar.gz" + + maintainers("LydDeb") + + license("MIT", checked_by="LydDeb") + + version("1.13.1", sha256="7888873501c6ca3e0fa19fee960c8b3cb1c64132c5a9b514903cc7e259b5b0c7") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + depends_on("cmake@3.15:3.27", type="build") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-scikit-build-core@0.3.3:", type="build") + depends_on("py-pybind11", type="build") + depends_on("py-numpy", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_hist/package.py b/repos/spack_repo/builtin/packages/py_hist/package.py index a2f25ff428c..4b1a8825d8a 100644 --- a/repos/spack_repo/builtin/packages/py_hist/package.py +++ b/repos/spack_repo/builtin/packages/py_hist/package.py @@ -12,24 +12,68 @@ class PyHist(PythonPackage): homepage = "https://github.com/scikit-hep/hist" pypi = "hist/hist-2.5.2.tar.gz" + git = "https://github.com/scikit-hep/hist.git" + + maintainers("wdconinc") license("BSD-3-Clause") + version("2.10.1", sha256="dec8e6ac79a6d64ec8873cf36b3ef0394c79aff3b0e8abed71fdc77fdc421b2e") + version("2.9.2", sha256="67bf80e15bb1ab99f89ccf6588efa357d16826d691043b726165c78334a9067b") + version("2.8.1", sha256="7da7c900e2ef6d425793da1a9adac424ebc013a8eabf29b24301f70898218d9d") + version("2.7.3", sha256="f9f9b56809b190bb546698789cc0d7d040934fc5141d2763c6e49d65e81dbc0b") + version("2.6.3", sha256="dede097733d50b273af9f67386e6dcccaab77e900ae702e1a9408a856e217ce9") version("2.6.1", sha256="ee9034795fd2feefed923461aaccaf76f87c1f8d5414b1e704faa293ceb4fc27") version("2.5.2", sha256="0bafb8b956cc041f1b26e8f5663fb8d3b8f7673f56336facb84d8cfdc30ae2cf") variant("plot", default=False, description="Add support for drawing histograms") + variant("dask", default=False, description="Add support for dask histograms", when="@2.6.3:") + variant("fit", default=False, description="Add support for fitting histograms", when="@2.7.1:") depends_on("python@3.7:", type=("build", "run")) - depends_on("py-setuptools@45:", type="build") - depends_on("py-setuptools-scm@3.4:+toml", type="build") + depends_on("python@3.8:", type=("build", "run"), when="@2.8:") + depends_on("python@3.9:", type=("build", "run"), when="@2.9:") + depends_on("python@3.10:", type=("build", "run"), when="@2.10:") + + with when("@:2.6.1"): + depends_on("py-setuptools@45:", type="build") + depends_on("py-setuptools-scm@3.4:+toml", type="build") + with when("@2.6.2:"): + depends_on("py-hatchling", type="build") + depends_on("py-hatch-vcs", type="build") + depends_on("py-boost-histogram@1.2.0:1.2", when="@2.5.2", type=("build", "run")) - depends_on("py-boost-histogram@1.3.1:1.3", when="@2.6.1", type=("build", "run")) + depends_on("py-boost-histogram@1.3.1:1.3", when="@2.6.1:2.7.1", type=("build", "run")) + depends_on("py-boost-histogram@1.3.1:1.4", when="@2.7.2:2.7", type=("build", "run")) + depends_on("py-boost-histogram@1.3.1:1.5", when="@2.8", type=("build", "run")) + depends_on("py-boost-histogram@1.5:1.6", when="@2.9", type=("build", "run")) + depends_on("py-boost-histogram@1.6:1.7", when="@2.10:", type=("build", "run")) depends_on("py-histoprint@2.2.0:", type=("build", "run")) - depends_on("py-numpy@1.14.5:", type=("build", "run")) - depends_on("py-typing-extensions@3.7:", when="^python@:3.7", type=("build", "run")) + depends_on("py-numpy@1.19.3:", type=("build", "run"), when="@2.9:") + depends_on("py-numpy@1.14.5:", type=("build", "run"), when="@:2.7.1,2.7.3:") + depends_on("py-numpy@1.14.5:", type=("build", "run"), when="@2.7.2 ^python@:3.11") + depends_on("py-numpy@1.26:", type=("build", "run"), when="@2.7.2 ^python@3.12:") + depends_on("py-typing-extensions@3.7:", when="@:2.6 ^python@:3.7", type=("build", "run")) + depends_on("py-typing-extensions@4:", when="@2.7: ^python@:3.10", type=("build", "run")) + + with when("+plot"): + depends_on("py-matplotlib@3.0:", type=("build", "run")) + depends_on("py-matplotlib@3.3.3:", type=("build", "run"), when="@2.9.0:") + depends_on("py-matplotlib@3.8:", type=("build", "run"), when="@2.9.1:") + depends_on("py-mplhep@0.2.16:", type=("build", "run")) + depends_on("py-mplhep@0.3.17:", type=("build", "run"), when="@2.9.0:") + depends_on("py-mplhep@0.3.33:", type=("build", "run"), when="@2.9.1:") + with when("@:2.7.0"): + depends_on("py-scipy@1.4:", type=("build", "run"), when="@:2.6.1,2.7.0") + depends_on("py-iminuit@2:", type=("build", "run"), when="@:2.6.1,2.7.0") + depends_on("py-scipy@1.4:", type=("build", "run"), when="@2.6.2:2.6.3 ^python@:3.10") + depends_on("py-iminuit@2:", type=("build", "run"), when="@2.6.2:2.6.3 ^python@:3.10") + + with when("+dask"): + depends_on("py-dask@2022:2024 +dataframe", type=("build", "run"), when="^python@3.8:") + depends_on("py-dask-histogram@2023.1:", type=("build", "run"), when="^python@3.8:") - depends_on("py-matplotlib@3.0:", when="+plot", type=("build", "run")) - depends_on("py-scipy@1.4:", when="+plot", type=("build", "run")) - depends_on("py-iminuit@2:", when="+plot", type=("build", "run")) - depends_on("py-mplhep@0.2.16:", when="+plot", type=("build", "run")) + with when("+fit"): + depends_on("py-scipy@1.4:", type=("build", "run")) + depends_on("py-scipy@1.5.4:", type=("build", "run"), when="@2.9:") + depends_on("py-iminuit@2:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_holoviews/package.py b/repos/spack_repo/builtin/packages/py_holoviews/package.py index 2220ea99f88..8a9c36b0a03 100644 --- a/repos/spack_repo/builtin/packages/py_holoviews/package.py +++ b/repos/spack_repo/builtin/packages/py_holoviews/package.py @@ -18,6 +18,7 @@ class PyHoloviews(PythonPackage): license("BSD-3-Clause", checked_by="climbfuji") + version("1.21.0", sha256="837885ab2fa376677f21dae0b2a2aeb94ba6db96e9fcb3824cdb899538ee5032") version("1.20.2", sha256="8c78b798601ce3af31523667c6d1cb40df8d781249ebebbdb2c5f6143565e6d8") version("1.19.1", sha256="b9e85e8c07275a456c0ef8d06bc157d02b37eff66fb3602aa12f5c86f084865c") diff --git a/repos/spack_repo/builtin/packages/py_horovod/package.py b/repos/spack_repo/builtin/packages/py_horovod/package.py index 72b401a02ab..9e8b34eed94 100644 --- a/repos/spack_repo/builtin/packages/py_horovod/package.py +++ b/repos/spack_repo/builtin/packages/py_horovod/package.py @@ -22,42 +22,45 @@ class PyHorovod(PythonPackage, CudaPackage): tags = ["e4s"] - version("master", branch="master") - version("0.28.1", tag="v0.28.1", commit="1d217b59949986d025f6db93c49943fb6b6cc78f") - version("0.28.0", tag="v0.28.0", commit="587d72004736209a93ebda8cec0acdb7870db583") - version("0.27.0", tag="v0.27.0", commit="bfaca90d5cf66780a97d8799d4e1573855b64560") - version("0.26.1", tag="v0.26.1", commit="34604870eabd9dc670c222deb1da9acc6b9d7c03") - version("0.26.0", tag="v0.26.0", commit="c638dcec972750d4a75b229bc208cff9dc76b00a") - version("0.25.0", tag="v0.25.0", commit="48e0affcba962831668cd1222866af2d632920c2") - version("0.24.3", tag="v0.24.3", commit="a2d9e280c1210a8e364a7dc83ca6c2182fefa99d") - version("0.24.2", tag="v0.24.2", commit="b4c191c8d05086842517b3836285a85c6f96ab22") - version("0.24.1", tag="v0.24.1", commit="ebd135098571722469bb6290a6d098a9e1c96574") - version("0.24.0", tag="v0.24.0", commit="b089df66a29d3ba6672073eef3d42714d9d3626b") - version("0.23.0", tag="v0.23.0", commit="66ad6d5a3586decdac356e8ec95c204990bbc3d6") - version("0.22.1", tag="v0.22.1", commit="93a2f2583ed63391a904aaeb03b602729be90f15") - version("0.22.0", tag="v0.22.0", commit="3ff94801fbb4dbf6bc47c23888c93cad4887435f") - version("0.21.3", tag="v0.21.3", commit="6916985c9df111f36864724e2611827f64de8e11") - version("0.21.2", tag="v0.21.2", commit="c64b1d60c6bad7834f3315f12707f8ebf11c9c3d") - version("0.21.1", tag="v0.21.1", commit="a9dea74abc1f0b8e81cd2b6dd9fe81e2c4244e39") - version("0.21.0", tag="v0.21.0", commit="7d71874258fc8625ad8952defad0ea5b24531248") - version("0.20.3", tag="v0.20.3", commit="b3c4d81327590c9064d544622b6250d9a19ce2c2") - version("0.20.2", tag="v0.20.2", commit="cef4393eb980d4137bb91256da4dd847b7f44d1c") - version("0.20.1", tag="v0.20.1", commit="4099c2b7f34f709f0db1c09f06b2594d7b4b9615") - version("0.20.0", tag="v0.20.0", commit="396c1319876039ad8f5a56c007a020605ccb8277") - version("0.19.5", tag="v0.19.5", commit="b52e4b3e6ce5b1b494b77052878a0aad05c2e3ce") - version("0.19.4", tag="v0.19.4", commit="31f1f700b8fa6d3b6df284e291e302593fbb4fa3") - version("0.19.3", tag="v0.19.3", commit="ad63bbe9da8b41d0940260a2dd6935fa0486505f") - version("0.19.2", tag="v0.19.2", commit="f8fb21e0ceebbdc6ccc069c43239731223d2961d") - version("0.19.1", tag="v0.19.1", commit="9ad69e78e83c34568743e8e97b1504c6c7af34c3") - version("0.19.0", tag="v0.19.0", commit="1a805d9b20224069b294f361e47f5d9b55f426ff") - version("0.18.2", tag="v0.18.2", commit="bb2134b427e0e0c5a83624d02fafa4f14de623d9") - version("0.18.1", tag="v0.18.1", commit="0008191b3e61b5dfccddabe0129bbed7cd544c56") - version("0.18.0", tag="v0.18.0", commit="a639de51e9a38d5c1f99f458c045aeaebe70351e") - version("0.17.1", tag="v0.17.1", commit="399e70adc0f74184b5848d9a46b9b6ad67b5fe6d") - version("0.17.0", tag="v0.17.0", commit="2fed0410774b480ad19057320be9027be06b309e") - version("0.16.4", tag="v0.16.4", commit="2aac48c95c035bee7d68f9aff30e59319f46c21e") - version("0.16.3", tag="v0.16.3", commit="30a2148784478415dc31d65a6aa08d237f364b42") - version("0.16.2", tag="v0.16.2", commit="217774652eeccfcd60aa6e268dfd6b766d71b768") + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2024-10190/ + version("master", branch="master") + version("0.28.1", tag="v0.28.1", commit="1d217b59949986d025f6db93c49943fb6b6cc78f") + version("0.28.0", tag="v0.28.0", commit="587d72004736209a93ebda8cec0acdb7870db583") + version("0.27.0", tag="v0.27.0", commit="bfaca90d5cf66780a97d8799d4e1573855b64560") + version("0.26.1", tag="v0.26.1", commit="34604870eabd9dc670c222deb1da9acc6b9d7c03") + version("0.26.0", tag="v0.26.0", commit="c638dcec972750d4a75b229bc208cff9dc76b00a") + version("0.25.0", tag="v0.25.0", commit="48e0affcba962831668cd1222866af2d632920c2") + version("0.24.3", tag="v0.24.3", commit="a2d9e280c1210a8e364a7dc83ca6c2182fefa99d") + version("0.24.2", tag="v0.24.2", commit="b4c191c8d05086842517b3836285a85c6f96ab22") + version("0.24.1", tag="v0.24.1", commit="ebd135098571722469bb6290a6d098a9e1c96574") + version("0.24.0", tag="v0.24.0", commit="b089df66a29d3ba6672073eef3d42714d9d3626b") + # https://www.cvedetails.com/cve/CVE-2022-0315/ + version("0.23.0", tag="v0.23.0", commit="66ad6d5a3586decdac356e8ec95c204990bbc3d6") + version("0.22.1", tag="v0.22.1", commit="93a2f2583ed63391a904aaeb03b602729be90f15") + version("0.22.0", tag="v0.22.0", commit="3ff94801fbb4dbf6bc47c23888c93cad4887435f") + version("0.21.3", tag="v0.21.3", commit="6916985c9df111f36864724e2611827f64de8e11") + version("0.21.2", tag="v0.21.2", commit="c64b1d60c6bad7834f3315f12707f8ebf11c9c3d") + version("0.21.1", tag="v0.21.1", commit="a9dea74abc1f0b8e81cd2b6dd9fe81e2c4244e39") + version("0.21.0", tag="v0.21.0", commit="7d71874258fc8625ad8952defad0ea5b24531248") + version("0.20.3", tag="v0.20.3", commit="b3c4d81327590c9064d544622b6250d9a19ce2c2") + version("0.20.2", tag="v0.20.2", commit="cef4393eb980d4137bb91256da4dd847b7f44d1c") + version("0.20.1", tag="v0.20.1", commit="4099c2b7f34f709f0db1c09f06b2594d7b4b9615") + version("0.20.0", tag="v0.20.0", commit="396c1319876039ad8f5a56c007a020605ccb8277") + version("0.19.5", tag="v0.19.5", commit="b52e4b3e6ce5b1b494b77052878a0aad05c2e3ce") + version("0.19.4", tag="v0.19.4", commit="31f1f700b8fa6d3b6df284e291e302593fbb4fa3") + version("0.19.3", tag="v0.19.3", commit="ad63bbe9da8b41d0940260a2dd6935fa0486505f") + version("0.19.2", tag="v0.19.2", commit="f8fb21e0ceebbdc6ccc069c43239731223d2961d") + version("0.19.1", tag="v0.19.1", commit="9ad69e78e83c34568743e8e97b1504c6c7af34c3") + version("0.19.0", tag="v0.19.0", commit="1a805d9b20224069b294f361e47f5d9b55f426ff") + version("0.18.2", tag="v0.18.2", commit="bb2134b427e0e0c5a83624d02fafa4f14de623d9") + version("0.18.1", tag="v0.18.1", commit="0008191b3e61b5dfccddabe0129bbed7cd544c56") + version("0.18.0", tag="v0.18.0", commit="a639de51e9a38d5c1f99f458c045aeaebe70351e") + version("0.17.1", tag="v0.17.1", commit="399e70adc0f74184b5848d9a46b9b6ad67b5fe6d") + version("0.17.0", tag="v0.17.0", commit="2fed0410774b480ad19057320be9027be06b309e") + version("0.16.4", tag="v0.16.4", commit="2aac48c95c035bee7d68f9aff30e59319f46c21e") + version("0.16.3", tag="v0.16.3", commit="30a2148784478415dc31d65a6aa08d237f364b42") + version("0.16.2", tag="v0.16.2", commit="217774652eeccfcd60aa6e268dfd6b766d71b768") # https://github.com/horovod/horovod/blob/master/docs/install.rst variant( @@ -302,5 +305,5 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: def test_check_build(self): """run horovodrun --check-build""" - horovodrun = which(self.prefix.bin.horovodrun) + horovodrun = which(self.prefix.bin.horovodrun, required=True) horovodrun("--check-build") diff --git a/repos/spack_repo/builtin/packages/py_hpccm/package.py b/repos/spack_repo/builtin/packages/py_hpccm/package.py index 61ee417b626..4b92237b0b7 100644 --- a/repos/spack_repo/builtin/packages/py_hpccm/package.py +++ b/repos/spack_repo/builtin/packages/py_hpccm/package.py @@ -16,6 +16,7 @@ class PyHpccm(PythonPackage): license("Apache-2.0") + version("26.1.0", sha256="f0757993c18df8619d9722c082ffa6edfec07a99d46b4be38f7ee10dfd26fc8b") version("19.2.0", sha256="c60eec914a802b0a76596cfd5fdf7122d3f8665fcef06ef928323f5dfb5219a6") depends_on("py-setuptools", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_hsluv/package.py b/repos/spack_repo/builtin/packages/py_hsluv/package.py new file mode 100644 index 00000000000..a271765d96d --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_hsluv/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 PyHsluv(PythonPackage): + """hsluv is a Python implementation of HSLuv, a human-friendly HSL color + space. It can convert to/from hex and RGB.""" + + homepage = "https://www.hsluv.org" + pypi = "hsluv/hsluv-5.0.4.tar.gz" + + maintainers("Markus92") + + license("MIT", checked_by="Markus92") + + version("5.0.4", sha256="2281f946427a882010042844a38c7bbe9e0d0aaf9d46babe46366ed6f169b72e") + + depends_on("python@3.7:", type=("build", "run")) + + depends_on("py-setuptools@38.6.0:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_hstspreload/package.py b/repos/spack_repo/builtin/packages/py_hstspreload/package.py index 38c4635bc6f..1f822f04110 100644 --- a/repos/spack_repo/builtin/packages/py_hstspreload/package.py +++ b/repos/spack_repo/builtin/packages/py_hstspreload/package.py @@ -15,6 +15,7 @@ class PyHstspreload(PythonPackage): license("BSD-3-Clause") + version("2025.1.1", sha256="346552a807b3a1762376de8ecce097544e7fcd64fb64231b4652da52f86fa6f1") version("2020.9.23", sha256="35822733ba67cfb4efc6cd7d1230b509f0bd42c90eeb329faf2fe679f801e40f") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_html5lib/package.py b/repos/spack_repo/builtin/packages/py_html5lib/package.py index c1121a043be..e4bcddbb86b 100644 --- a/repos/spack_repo/builtin/packages/py_html5lib/package.py +++ b/repos/spack_repo/builtin/packages/py_html5lib/package.py @@ -19,7 +19,13 @@ class PyHtml5lib(PythonPackage): version("1.0.1", sha256="66cb0dcfdbbc4f9c3ba1a63fdb511ffdbd4f513b2b6d81b80cd26ce6b3fb3736") version("0.99", sha256="aff6fd3031c563883197e5a04b7df324086ff5f358278a0386808c463a077e59") + depends_on("python@:3.13", type=("build", "run"), when="@:0.99") depends_on("py-six", type=("build", "run")) depends_on("py-six@1.9:", type=("build", "run"), when="@1.0.1:") - depends_on("py-setuptools", type="build", when="@1.0.1:") + # pkg_resources removed from v81 + depends_on("py-setuptools@:80", type="build", when="@1.0.1:") depends_on("py-webencodings", type=("build", "run"), when="@1.0.1:") + + # ast.Str removed from 3.14 + # (https://docs.python.org/dev/whatsnew/3.14.html#id9) + patch("py314astfix.patch", when="@1:1.1 ^python@3.14:") diff --git a/repos/spack_repo/builtin/packages/py_html5lib/py314astfix.patch b/repos/spack_repo/builtin/packages/py_html5lib/py314astfix.patch new file mode 100644 index 00000000000..f8a33b2bad5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_html5lib/py314astfix.patch @@ -0,0 +1,13 @@ +--- a/setup.py 2020-06-22 23:23:02.000000000 +0000 ++++ b/setup.py 2026-04-09 09:14:32.850544088 +0000 +@@ -90,8 +90,8 @@ + if (len(a.targets) == 1 and + isinstance(a.targets[0], ast.Name) and + a.targets[0].id == "__version__" and +- isinstance(a.value, ast.Str)): +- version = a.value.s ++ isinstance(a.value, ast.Constant)): ++ version = a.value.value + + setup(name='html5lib', + version=version, diff --git a/repos/spack_repo/builtin/packages/py_htmldate/package.py b/repos/spack_repo/builtin/packages/py_htmldate/package.py new file mode 100644 index 00000000000..c6bb2f544a6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_htmldate/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 PyHtmldate(PythonPackage): + """Fast and robust date extraction from web pages, with Python or on the command-line.""" + + homepage = "https://htmldate.readthedocs.io/en/latest/" + pypi = "htmldate/htmldate-1.9.3.tar.gz" + + license("Apache-2.0") + + version("1.9.3", sha256="ac0caf4628c3ded4042011e2d60dc68dfb314c77b106587dd307a80d77e708e9") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@61:", type="build") + depends_on("py-charset-normalizer@3.4.0:", type=("build", "run")) + depends_on("py-dateparser@1.1.2:", type=("build", "run")) + depends_on("py-lxml@4.9.2", when="platform=darwin ^python@:3.8", type=("build", "run")) + depends_on("py-lxml@5.3.0:5", when="platform=linux", type=("build", "run")) + depends_on("py-lxml@5.3.0:5", when="^python@3.9:", type=("build", "run")) + depends_on("py-python-dateutil@2.9.0.post0:", type=("build", "run")) + depends_on("py-urllib3@1.26:2", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_httpcore/package.py b/repos/spack_repo/builtin/packages/py_httpcore/package.py index 1b620b338c0..6e5d6bb4821 100644 --- a/repos/spack_repo/builtin/packages/py_httpcore/package.py +++ b/repos/spack_repo/builtin/packages/py_httpcore/package.py @@ -16,24 +16,28 @@ class PyHttpcore(PythonPackage): license("BSD-3-Clause") + version("1.0.9", sha256="6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8") version("1.0.5", sha256="34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61") version("0.18.0", sha256="13b5e5cd1dca1a6636a6aaea212b19f4f85cd88c366a2b82304181b769aab3c9") version("0.16.3", sha256="c5d6f04e2fc530f39e0c077e6a30caa53f1451096120f1f38b954afd0b17c0cb") version("0.14.7", sha256="7503ec1c0f559066e7e39bc4003fd2ce023d01cf51793e3c173b864eb456ead1") version("0.11.0", sha256="35ffc735d746b83f8fc6d36f82600e56117b9e8adc65d0c0423264b6ebfef7bf") - depends_on("py-setuptools", when="@:1.16.3", type="build") depends_on("py-hatchling", when="@0.18:", type="build") depends_on("py-hatch-fancy-pypi-readme", when="@0.18:", type="build") with default_args(type=("build", "run")): depends_on("py-certifi", when="@0.14.7:") - depends_on("py-h11@0.8:0.9", when="@0.11.0") + depends_on("py-h11@0.16:", when="@1.0.9:") + depends_on("py-h11@0.13:0.14", when="@0.16.3:1.0.8") depends_on("py-h11@0.11:0.12", when="@0.14.7") - depends_on("py-h11@0.13:0.14", when="@0.16.3:") + depends_on("py-h11@0.8:0.9", when="@0.11.0") + # Historical dependencies depends_on("py-sniffio@1", when="@0") depends_on("py-anyio@3", when="@0.14.7") depends_on("py-anyio@3:4", when="@0.16.3:0.18") + + depends_on("py-setuptools", when="@:0.16.3", type="build") diff --git a/repos/spack_repo/builtin/packages/py_httptools/package.py b/repos/spack_repo/builtin/packages/py_httptools/package.py index 7485c791cbc..17cf4003190 100644 --- a/repos/spack_repo/builtin/packages/py_httptools/package.py +++ b/repos/spack_repo/builtin/packages/py_httptools/package.py @@ -15,10 +15,15 @@ class PyHttptools(PythonPackage): license("MIT") + version("0.6.4", sha256="4e93eee4add6493b59a5c514da98c939b244fce4a0d8879cd3f466562f4b7d5c") version("0.5.0", sha256="295874861c173f9101960bba332429bb77ed4dcd8cdf5cee9922eb00e4f6bc09") version("0.1.1", sha256="41b573cf33f64a8f8f3400d0a7faf48e1888582b6f6e02b82b9bd4f0bf7497ce") depends_on("c", type="build") # generated + depends_on("python@3.8:", when="@0.6.4:", type=("build", "run")) + depends_on("python@3.5:", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-cython@0.29.24:0.29", type="build") + depends_on("py-cython@0.29.24:", when="@0.6.2:", type="build") + depends_on("py-cython@0.29.24:0.29", when="@0.5.0", type="build") + depends_on("py-cython@0.29.14:", when="@0.1.1", type="build") diff --git a/repos/spack_repo/builtin/packages/py_huggingface_hub/package.py b/repos/spack_repo/builtin/packages/py_huggingface_hub/package.py index de286a850b5..c5d530e3703 100644 --- a/repos/spack_repo/builtin/packages/py_huggingface_hub/package.py +++ b/repos/spack_repo/builtin/packages/py_huggingface_hub/package.py @@ -17,6 +17,8 @@ class PyHuggingfaceHub(PythonPackage): license("Apache-2.0") maintainers("adamjstewart") + version("0.34.3", sha256="d58130fd5aa7408480681475491c0abd7e835442082fbc3ef4d45b6c39f83853") + version("0.33.1", sha256="589b634f979da3ea4b8bdb3d79f97f547840dc83715918daf0b64209c0844c7b") version("0.26.2", sha256="b100d853465d965733964d123939ba287da60a547087783ddff8a323f340332b") version("0.24.6", sha256="cc2579e761d070713eaa9c323e3debe39d5b464ae3a7261c39a9195b27bb8000") version("0.23.4", sha256="35d99016433900e44ae7efe1c209164a5a81dbbcd53a52f99c281dcd7ce22431") @@ -53,6 +55,8 @@ class PyHuggingfaceHub(PythonPackage): depends_on("py-tqdm") depends_on("py-typing-extensions@3.7.4.3:", when="@0.10:") depends_on("py-typing-extensions", when="@0.0.10:") + depends_on("py-hf-xet@1.1.3:1", when="@0.34:") + depends_on("py-hf-xet@1.1.2:1", when="@0.32:") with when("+cli"): depends_on("py-inquirerpy@0.3.4") diff --git a/repos/spack_repo/builtin/packages/py_humanize/package.py b/repos/spack_repo/builtin/packages/py_humanize/package.py index 7adb0fd7f95..bc44346635e 100644 --- a/repos/spack_repo/builtin/packages/py_humanize/package.py +++ b/repos/spack_repo/builtin/packages/py_humanize/package.py @@ -19,6 +19,8 @@ class PyHumanize(PythonPackage): license("MIT") + version("4.15.0", sha256="1dd098483eb1c7ee8e32eb2e99ad1910baefa4b75c3aff3a82f4d78688993b10") + version("4.13.0", sha256="78f79e68f76f0b04d711c4e55d32bebef5be387148862cb1ef83d2b58e7935a0") version("4.9.0", sha256="582a265c931c683a7e9b8ed9559089dea7edcf6cc95be39a3cbc2c5d5ac2bcfa") version("4.8.0", sha256="9783373bf1eec713a770ecaa7c2d7a7902c98398009dfa3d8a2df91eec9311e8") version("4.6.0", sha256="5f1f22bc65911eb1a6ffe7659bd6598e33dcfeeb904eb16ee1e705a09bf75916") @@ -31,8 +33,11 @@ class PyHumanize(PythonPackage): version("1.0.0", sha256="38ace9b66bcaeb7f8186b9dbf0b3448e00148e5b4fbaf726f96c789e52c3e741") version("0.5.1", sha256="a43f57115831ac7c70de098e6ac46ac13be00d69abbf60bdcac251344785bb19") + depends_on("python@3.10:", when="@4.15:") + depends_on("python@3.9:", when="@4.11:") depends_on("python@3.8:", when="@4.6:") depends_on("py-hatch-vcs", when="@4.6:", type=("build", "run")) + depends_on("py-hatchling@1.27:", when="@4.12:", type=("build", "run")) depends_on("py-hatchling", when="@4.6:", type=("build", "run")) with when("@:4.4"): diff --git a/repos/spack_repo/builtin/packages/py_hvplot/package.py b/repos/spack_repo/builtin/packages/py_hvplot/package.py index 86fe38fdb09..e40c3361adc 100644 --- a/repos/spack_repo/builtin/packages/py_hvplot/package.py +++ b/repos/spack_repo/builtin/packages/py_hvplot/package.py @@ -16,6 +16,7 @@ class PyHvplot(PythonPackage): license("BSD-3-Clause", checked_by="climbfuji") + version("0.11.3", sha256="ce82dea296af6146b9a51aa5ed1f772e5415a07c6c33a4eae0f00bbe7ec880ca") version("0.11.1", sha256="989ed0389189adc47edcd2601d2eab18bf366e74b07f5e2873e021323c4a14bb") depends_on("python@3.9:", type=("build", "run")) @@ -23,7 +24,7 @@ class PyHvplot(PythonPackage): depends_on("py-setuptools-scm@6:", type="build") depends_on("py-bokeh@3.1:", type="run") - depends_on("py-colorcet", type="run") + depends_on("py-colorcet@2:", type="run") depends_on("py-holoviews@1.19:", type="run") depends_on("py-numpy@1.21:", type="run") depends_on("py-packaging", type="run") diff --git a/repos/spack_repo/builtin/packages/py_hypothesis/package.py b/repos/spack_repo/builtin/packages/py_hypothesis/package.py index 7ca376c360f..2b45bc1aac2 100644 --- a/repos/spack_repo/builtin/packages/py_hypothesis/package.py +++ b/repos/spack_repo/builtin/packages/py_hypothesis/package.py @@ -15,6 +15,7 @@ class PyHypothesis(PythonPackage): license("MPL-2.0") + version("6.114.0", sha256="cdded8b9e3f8a8088a444ad525c06ac67a4d4f6605f672535c41fd9a49cd128f") version("6.96.2", sha256="524a0ac22c8dfff640f21f496b85ee193a470e8570ab7707b8e3bfccd7da34a6") version("6.23.1", sha256="23a1b0488aec5719e2f9e399342e10f30d497cbb9fd39470ef0975c1b502ae35") version("5.3.0", sha256="c9fdb53fe3bf1f8e7dcca1a7dd6e430862502f088aca2903d141511212e79429") diff --git a/repos/spack_repo/builtin/packages/py_id/package.py b/repos/spack_repo/builtin/packages/py_id/package.py index 8d91796e135..d03ae9a44f4 100644 --- a/repos/spack_repo/builtin/packages/py_id/package.py +++ b/repos/spack_repo/builtin/packages/py_id/package.py @@ -12,11 +12,20 @@ class PyId(PythonPackage): homepage = "https://pypi.org/project/id/" pypi = "id/id-1.5.0.tar.gz" + git = "https://github.com/di/id.git" license("Apache-2.0", checked_by="RobertMaaskant") + version("1.6.1", sha256="d0732d624fb46fd4e7bc4e5152f00214450953b9e772c182c1c22964def1a069") version("1.5.0", sha256="292cb8a49eacbbdbce97244f47a97b4c62540169c976552e497fd57df0734c1d") depends_on("py-flit-core@3.2:3", type="build") - depends_on("python@3.8:", type=("build", "run")) - depends_on("py-requests", type=("build", "run")) + + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@1.6:") + depends_on("python@3.8:") + + depends_on("py-urllib3@2:", when="@1.6:") + + # Historical dependencies + depends_on("py-requests", when="@:1.5") diff --git a/repos/spack_repo/builtin/packages/py_identify/package.py b/repos/spack_repo/builtin/packages/py_identify/package.py index 1f76e084177..b13a8eddd9d 100644 --- a/repos/spack_repo/builtin/packages/py_identify/package.py +++ b/repos/spack_repo/builtin/packages/py_identify/package.py @@ -15,12 +15,18 @@ class PyIdentify(PythonPackage): homepage = "https://github.com/pre-commit/identify" pypi = "identify/identify-1.4.7.tar.gz" + maintainers("sethrj") license("MIT") + version("2.6.19", sha256="6be5020c38fcb07da56c53733538a3081ea5aa70d36a156f83044bfbf9173842") + version("2.6.15", sha256="e4f4864b96c6557ef2a1e1c951771838f4edc9df3a72ec7118b338801b11c7bf") version("2.5.24", sha256="0aac67d5b4812498056d28a9a512a483f5085cc28640b02b258a59dac34301d4") version("2.5.5", sha256="322a5699daecf7c6fd60e68852f36f2ecbb6a36ff6e6e973e0d2bb6fca203ee6") version("2.5.3", sha256="887e7b91a1be152b0d46bbf072130235a8117392b9f1828446079a816a05ef44") version("1.4.7", sha256="d8919589bd2a5f99c66302fec0ef9027b12ae150b0b0213999ad3f695fc7296e") + depends_on("python@3.10:", type=("build", "run"), when="@2.6.16:") + depends_on("python@3.9:", type=("build", "run"), when="@2.6:") + depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_idna/package.py b/repos/spack_repo/builtin/packages/py_idna/package.py index b4a4d3c0977..27a0dda6a20 100644 --- a/repos/spack_repo/builtin/packages/py_idna/package.py +++ b/repos/spack_repo/builtin/packages/py_idna/package.py @@ -15,16 +15,23 @@ class PyIdna(PythonPackage): license("BSD-3-Clause") - version("3.4", sha256="814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4") - version("3.3", sha256="9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d") - version("3.2", sha256="467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3") - version("2.9", sha256="7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb") - version("2.8", sha256="c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407") - version("2.5", sha256="3cb5ce08046c4e3a560fc02f138d0ac63e00f8ce5901a56b32ec8b7994082aab") - - depends_on("python@3.5:", when="@3.2:", type=("build", "run")) - depends_on("python@3.4:", when="@3:", type=("build", "run")) - depends_on("python@2.7:2,3.4:", when="@2.8:2", type=("build", "run")) - depends_on("python@2.6:", when="@:2.7", type=("build", "run")) - depends_on("py-flit-core@3.2:3", when="@3.4:", type="build") - depends_on("py-setuptools", when="@:3.3", type=("build", "link")) + version("3.15", sha256="ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc") + with default_args(deprecated=True): + # https://github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx + version("3.11", sha256="795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902") + version("3.10", sha256="12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9") + # https://github.com/kjd/idna/security/advisories/GHSA-jjg7-2v4v-x38h + version("3.4", sha256="814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4") + version("3.3", sha256="9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d") + version("3.2", sha256="467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3") + version("2.9", sha256="7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb") + version("2.8", sha256="c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407") + version("2.5", sha256="3cb5ce08046c4e3a560fc02f138d0ac63e00f8ce5901a56b32ec8b7994082aab") + + with default_args(type="build"): + depends_on("py-flit-core@3.11:4", when="@3.15:") + depends_on("py-flit-core@3.11:3", when="@3.11") + depends_on("py-flit-core@3.2:3", when="@3.4:3.10") + + # Historical dependencies + depends_on("py-setuptools", when="@:3.3") diff --git a/repos/spack_repo/builtin/packages/py_igv_notebook/package.py b/repos/spack_repo/builtin/packages/py_igv_notebook/package.py index 4bfbe6765cc..66583778f75 100644 --- a/repos/spack_repo/builtin/packages/py_igv_notebook/package.py +++ b/repos/spack_repo/builtin/packages/py_igv_notebook/package.py @@ -16,6 +16,7 @@ class PyIgvNotebook(PythonPackage): license("MIT license", checked_by="ashim-mahara") + version("0.6.2", sha256="24c3990872851701bf17e7479180b02b63ab988e35b59859b294acae36eccc21") version("0.5.2", sha256="8b47a1a6c41f11359a07264815401cc4000c99722c77cbb749182bf6b66cf69c") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_igwn_auth_utils/package.py b/repos/spack_repo/builtin/packages/py_igwn_auth_utils/package.py new file mode 100644 index 00000000000..cc8a641c9fd --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_igwn_auth_utils/package.py @@ -0,0 +1,31 @@ +# 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 PyIgwnAuthUtils(PythonPackage): + """Authorisation utilities for IGWN.""" + + homepage = "https://git.ligo.org/computing/igwn-auth-utils" + pypi = "igwn_auth_utils/igwn_auth_utils-1.4.0.tar.gz" + git = "https://git.ligo.org/computing/igwn-auth-utils.git" + + maintainers("wdconinc") + + license("BSD-3-Clause", checked_by="wdconinc") + + version("1.4.0", sha256="8ebd331a1d6de16e843e94cde2dc0a09d07a7fbc089bc525fa0eabddd89ea187") + + with default_args(type="build"): + depends_on("py-setuptools@70:") + depends_on("py-setuptools-scm@3.4.3:+toml") + + with default_args(type=("build", "run")): + depends_on("py-cryptography@44.0.1:") + depends_on("py-requests@2.32:") + depends_on("py-safe-netrc@1:") + depends_on("py-scitokens@1.8:") diff --git a/repos/spack_repo/builtin/packages/py_ihm/package.py b/repos/spack_repo/builtin/packages/py_ihm/package.py new file mode 100644 index 00000000000..63f89008b3c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_ihm/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 PyIhm(PythonPackage): + """Package for handling IHM mmCIF and BinaryCIF files.""" + + homepage = "https://github.com/ihmwg/python-ihm" + git = "https://github.com/ihmwg/python-ihm.git" + pypi = "ihm/ihm-2.7.tar.gz" + + maintainers("LydDeb") + + license("MIT", checked_by="LydDeb") + + version("2.9", sha256="2efc460217c66b4d359c1eb7509ffa417568c2e59e04c0e2609995db99fc937f") + version("2.7", sha256="a3b9eba5545de1e07a15d110e9e6b70369807798d8f2c45908323db2b6fde82c") + + depends_on("c", type="build") + + depends_on("py-setuptools@42:", type="build") + depends_on("py-msgpack", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_illumina_utils/package.py b/repos/spack_repo/builtin/packages/py_illumina_utils/package.py index d0ab54d3cb6..9b01ca4b06f 100644 --- a/repos/spack_repo/builtin/packages/py_illumina_utils/package.py +++ b/repos/spack_repo/builtin/packages/py_illumina_utils/package.py @@ -16,6 +16,11 @@ class PyIlluminaUtils(PythonPackage): license("GPL-2.0-or-later") + version( + "2.14", + sha256="5536158e97f9264d428fb7666b9f60a9a19568a2dbd77331426e8043f9d55564", + url="https://files.pythonhosted.org/packages/fb/10/c365f42d9a2e9d8d17773b7a8e5fbabdd4b55f6207b6cad8a7451674e27d/illumina_utils-2.14.tar.gz", + ) version("2.3", sha256="0e8407b91d530d9a53d8ec3c83e60f25e7f8f80d06ce17b8e4f57a02d3262441") version("2.2", sha256="6039c72d077c101710fe4fdbfeaa30caa1c3c2c84ffa6295456927d82def8e6d") @@ -25,3 +30,7 @@ class PyIlluminaUtils(PythonPackage): depends_on("py-matplotlib", type=("build", "run")) depends_on("py-numpy", type=("build", "run")) depends_on("py-python-levenshtein", type=("build", "run")) + + with when("@2.14:"): + depends_on("py-setuptools@61:", type="build") + depends_on("py-wheel", type="build") diff --git a/repos/spack_repo/builtin/packages/py_imagecorruptions_imaug/package.py b/repos/spack_repo/builtin/packages/py_imagecorruptions_imaug/package.py new file mode 100644 index 00000000000..a504d9d760c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_imagecorruptions_imaug/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyImagecorruptionsImaug(PythonPackage): + """This package provides a set of image corruptions.""" + + homepage = "https://github.com/imaug/imagecorruptions" + pypi = "imagecorruptions_imaug/imagecorruptions_imaug-1.1.3.tar.gz" + + license("Apache-2.0") + + version("1.1.3", sha256="dd103a5b7a1d1d8d173aec26fe8b4be93ef83de122bea4ad88c08695daa76d00") + + depends_on("py-setuptools", type=("build", "run")) + depends_on("py-numpy@1.16:", type=("build", "run")) + depends_on("pil@5.4.1:", type=("build", "run")) + depends_on("py-scikit-image@0.15:", type=("build", "run")) + depends_on("opencv@3.4.5:+python3", type=("build", "run")) + depends_on("py-scipy@1.2.1:", type=("build", "run")) + depends_on("py-numba@0.53:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_imagehash/package.py b/repos/spack_repo/builtin/packages/py_imagehash/package.py index 6ab65c5db6c..35fed93fe23 100644 --- a/repos/spack_repo/builtin/packages/py_imagehash/package.py +++ b/repos/spack_repo/builtin/packages/py_imagehash/package.py @@ -17,6 +17,7 @@ class PyImagehash(PythonPackage): license("BSD-2-Clause") + version("4.3.2", sha256="e54a79805afb82a34acde4746a16540503a9636fd1ffb31d8e099b29bbbf8156") version("4.3.1", sha256="7038d1b7f9e0585beb3dd8c0a956f02b95a346c0b5f24a9e8cc03ebadaf0aa70") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_imageio/package.py b/repos/spack_repo/builtin/packages/py_imageio/package.py index 145e7502676..ceb2e415aa5 100644 --- a/repos/spack_repo/builtin/packages/py_imageio/package.py +++ b/repos/spack_repo/builtin/packages/py_imageio/package.py @@ -20,6 +20,8 @@ class PyImageio(PythonPackage): license("BSD-2-Clause") + version("2.37.3", sha256="bbb37efbfc4c400fcd534b367b91fcd66d5da639aaa138034431a1c5e0a41451") + version("2.37.0", sha256="71b57b3669666272c818497aebba2b4c5f20d5b37c81720e5e1a56d59c492996") version("2.35.1", sha256="4952dfeef3c3947957f6d5dedb1f4ca31c6e509a476891062396834048aeed2a") version("2.34.0", sha256="ae9732e10acf807a22c389aef193f42215718e16bd06eed0c5bb57e1034a4d53") version("2.30.0", sha256="7fc6ad5b5677cb1e58077875a72512aa8c392b6d40885eca0a6ab250efb4b8f4") @@ -31,14 +33,20 @@ class PyImageio(PythonPackage): version("2.4.1", sha256="16b8077bc8a5fa7a58b3e744f7ecbb156d8c088132df31e0f4f546c98de3514a") version("2.3.0", sha256="c4fd5183c342d47fdc2e98552d14e3f24386021bbc3efedd1e3b579d7d249c07") - # TODO: Add variants for plugins, and optional dependencies + with default_args(type="build"): + depends_on("py-setuptools@61:", when="@2.37.1:") + depends_on("py-setuptools") - depends_on("py-setuptools", type="build") + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@2.37.3:") + depends_on("python@3.9:", when="@2.36:") + depends_on("python@3.8:", when="@2.31.2:") + + depends_on("py-numpy") + depends_on("py-numpy@1.20:", when="@2.16") + # https://github.com/imageio/imageio/issues/1077 + depends_on("py-numpy@:1", when="@:2.34.1") + depends_on("pil@8.3.2:", when="@2.10:") + depends_on("pil") - depends_on("py-numpy", type=("build", "run")) - depends_on("py-numpy@1.20:", when="@2.16", type=("build", "run")) - # https://github.com/imageio/imageio/issues/1077 - depends_on("py-numpy@:1", when="@:2.34.1", type=("build", "run")) - depends_on("pil@8.3.2:", when="@2.10:", type=("build", "run")) - depends_on("pil", type=("build", "run")) depends_on("ffmpeg", type="run") diff --git a/repos/spack_repo/builtin/packages/py_imagesize/package.py b/repos/spack_repo/builtin/packages/py_imagesize/package.py index 963080deae5..5433b292dc4 100644 --- a/repos/spack_repo/builtin/packages/py_imagesize/package.py +++ b/repos/spack_repo/builtin/packages/py_imagesize/package.py @@ -16,10 +16,11 @@ class PyImagesize(PythonPackage): license("MIT") + version("2.0.0", sha256="8e8358c4a05c304f1fccf7ff96f036e7243a189e9e42e90851993c558cfe9ee3") version("1.4.1", sha256="69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a") version("1.3.0", sha256="cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d") version("1.1.0", sha256="f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5") version("0.7.1", sha256="0ab2c62b87987e3252f89d30b7cedbec12a01af9274af9ffa48108f2c13c6062") - depends_on("python@2.7:2,3.4:", when="@1.2:", type=("build", "run")) + depends_on("python@3.10:3.14", type=("build", "run"), when="@2:") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_imaug/package.py b/repos/spack_repo/builtin/packages/py_imaug/package.py new file mode 100644 index 00000000000..bac8d964821 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_imaug/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 PyImaug(PythonPackage): + """Image augmentation library for deep neural networks. Fork of py-imgaug""" + + homepage = "https://github.com/imaug/imaug" + pypi = "imaug/imaug-0.4.2.tar.gz" + + license("MIT") + + version("0.4.2", sha256="996fffc4877c9664228679d566a5ebfd49a87648547d3bca1bb2905033e83421") + + depends_on("python@3.6.1:3.13", type=("build", "run")) + + depends_on("py-setuptools", type="build") + + with default_args(type=("build", "run")): + depends_on("py-six") + depends_on("py-numpy@1.21:") + depends_on("py-scipy") + depends_on("pil") + depends_on("py-matplotlib") + depends_on("py-scikit-image@0.18:") + depends_on("opencv+python3") + depends_on("py-imageio") + depends_on("py-shapely") + depends_on("py-imagecorruptions-imaug@1.1.3:") diff --git a/repos/spack_repo/builtin/packages/py_imgaug/package.py b/repos/spack_repo/builtin/packages/py_imgaug/package.py index b1fa62de0c2..141f59ae5e7 100644 --- a/repos/spack_repo/builtin/packages/py_imgaug/package.py +++ b/repos/spack_repo/builtin/packages/py_imgaug/package.py @@ -24,7 +24,7 @@ class PyImgaug(PythonPackage): depends_on("py-setuptools", type="build") depends_on("py-imageio", type=("build", "run")) depends_on("py-matplotlib", type=("build", "run")) - depends_on("py-numpy@1.15:", type=("build", "run")) + depends_on("py-numpy@1.15:1", type=("build", "run")) depends_on("py-scipy", type=("build", "run")) depends_on("py-shapely", type=("build", "run")) depends_on("py-six", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_iminuit/package.py b/repos/spack_repo/builtin/packages/py_iminuit/package.py index f0003f9489e..0aa0aa44f01 100644 --- a/repos/spack_repo/builtin/packages/py_iminuit/package.py +++ b/repos/spack_repo/builtin/packages/py_iminuit/package.py @@ -12,11 +12,15 @@ class PyIminuit(PythonPackage): homepage = "http://github.com/scikit-hep/iminuit" pypi = "iminuit/iminuit-1.2.tar.gz" + git = "http://github.com/scikit-hep/iminuit.git" tags = ["hep"] license("MIT AND LGPL-2.0-only", checked_by="wdconinc") + version("2.32.0", sha256="a32b34d18665959be75ad6bdb1dd80459bb94466c62b455631c00568accdf7d2") + version("2.31.3", sha256="ffb3aeb2de26c400d0aff7e2b7457f64cd609a494c45ee579effee81b1bc5d78") + version("2.31.1", sha256="d5e004f1ffd83d2a076409fbf4a79691e7a17c9d73950bb63465af32e104de18") version("2.30.1", sha256="2815bfdeb8e7f78185f316b75e2d4b19d0f6993bdc5ff03352ed37b70a796360") version("2.29.1", sha256="474d10eb2f924b9320f6f7093e4c149d0a38c124d0419c12a07a3eca942de025") version("2.28.0", sha256="6646ae0b66a4760e02cd73711d460a6cf2375382b78ce8344141751595596aad") @@ -54,13 +58,9 @@ class PyIminuit(PythonPackage): # Bundled pybind11@:2.92 until 2.21 fails to compile with python@3.11: # See https://github.com/pybind/pybind11/pull/3368 depends_on("python@:3.10", type=("build", "run"), when="@:2.21") - with when("@2.22:"): - depends_on("py-scikit-build-core@0.3:+pyproject", type="build") - depends_on("py-scikit-build-core@0.5:+pyproject", type="build", when="@2.26:") - depends_on("py-pybind11", type="build") - depends_on("py-pybind11@2.12:", type="build", when="@2.26:") - with when("@:2.21"): - depends_on("py-setuptools", type="build") + depends_on("py-scikit-build-core@0.10:", type="build", when="@2.31:") + depends_on("py-pybind11", type="build", when="@2.22:") + depends_on("py-pybind11@2.12:", type="build", when="@2.26:") depends_on("py-numpy", type=("build", "run"), when="@1.3:1.3.6") depends_on("py-numpy@1.11.3:", type=("build", "run"), when="@1.3.7:") # https://github.com/numpy/numpy/issues/26191#issuecomment-2179127999 @@ -71,6 +71,10 @@ class PyIminuit(PythonPackage): depends_on("cmake@3.15:", type="build", when="@2.22:") # Historical dependencies + depends_on("py-setuptools", type="build", when="@:2.21") + with when("@2.22:2.30"): + depends_on("py-scikit-build-core@0.3:+pyproject", type="build") + depends_on("py-scikit-build-core@0.5:+pyproject", type="build", when="@2.26:") with when("@:2.27"): depends_on("py-typing-extensions", when="@2.21: ^python@:3.8", type=("build", "run")) depends_on( diff --git a/repos/spack_repo/builtin/packages/py_immutables/package.py b/repos/spack_repo/builtin/packages/py_immutables/package.py index db07c20b583..04457a05c74 100644 --- a/repos/spack_repo/builtin/packages/py_immutables/package.py +++ b/repos/spack_repo/builtin/packages/py_immutables/package.py @@ -16,6 +16,7 @@ class PyImmutables(PythonPackage): license("Apache-2.0") + version("0.21", sha256="b55ffaf0449790242feb4c56ab799ea7af92801a0a43f9e2f4f8af2ab24dfc4a") version("0.20", sha256="1d2f83e6a6a8455466cd97b9a90e2b4f7864648616dfa6b19d18f49badac3876") version("0.19", sha256="df17942d60e8080835fcc5245aa6928ef4c1ed567570ec019185798195048dcf") version("0.18", sha256="5336c7974084cce62f7e29aaff81a3c3f75e0fd0a23a2faeb986ae0ea08d8cf4") @@ -24,8 +25,15 @@ class PyImmutables(PythonPackage): depends_on("c", type="build") # generated - depends_on("python@3.5:", type=("build", "run")) - depends_on("python@3.6:", type=("build", "run"), when="@0.16:") + # Based on PyPI wheel availability + with default_args(type=("build", "link", "run")): + depends_on("python@3.8:3.13", when="@0.21") + depends_on("python@3.8:3.12", when="@0.20") + depends_on("python@3.6:3.11", when="@0.19") + depends_on("python@3.6:3.10", when="@0.17:0.18") + depends_on("python@3.6:3.9", when="@0.16") + depends_on("python@3.5:3.9", when="@0.15") + depends_on("python@3.5:3.8", when="@0.14") depends_on("py-setuptools", type="build") # setuptools 68 is more strict about the format of pyproject.toml and fails to install older # versions of this package diff --git a/repos/spack_repo/builtin/packages/py_importlib_metadata/package.py b/repos/spack_repo/builtin/packages/py_importlib_metadata/package.py index bb193fba149..c7481a610f8 100644 --- a/repos/spack_repo/builtin/packages/py_importlib_metadata/package.py +++ b/repos/spack_repo/builtin/packages/py_importlib_metadata/package.py @@ -16,6 +16,8 @@ class PyImportlibMetadata(PythonPackage): license("Apache-2.0") + version("9.0.0", sha256="a4f57ab599e6a2e3016d7595cfd72eb4661a5106e787a95bcc90c7105b831efc") + version("8.7.0", sha256="d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000") version("7.0.1", sha256="f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc") version("6.6.0", sha256="92501cdf9cc66ebd3e612f1b4f0c0765dfa42f0fa38ffb319b6bd84dd675d705") version("5.1.0", sha256="d5059f9f1e8e41f80e9c56c2ee58811450c31984dfa625329ffd7c0dad88a73b") @@ -36,13 +38,22 @@ class PyImportlibMetadata(PythonPackage): version("0.19", sha256="23d3d873e008a513952355379d93cbcab874c58f4f034ff657c7a87422fa64e8") version("0.18", sha256="cb6ee23b46173539939964df59d3d72c3e0c1b5d54b84f1d8a7e912fe43612db") - depends_on("python@3.8:", when="@6.8.0:", type=("build", "run")) - # lowerbound needed as spack itself supports python 3.6 (can be dropped in spack 0.21) - depends_on("python@3.7:", when="@4.9.0:", type=("build", "run")) - depends_on("py-setuptools@56:", when="@4.6.4:", type="build") - depends_on("py-setuptools", type="build") - depends_on("py-setuptools-scm@3.4.1:+toml", when="@3:", type="build") - depends_on("py-setuptools-scm", type="build") - - depends_on("py-zipp@0.5:", type=("build", "run")) - depends_on("py-typing-extensions@3.6.4:", when="@3: ^python@:3.7", type=("build", "run")) + with default_args(type="build"): + depends_on("py-setuptools@77:", when="@8.7.1:") + depends_on("py-setuptools@61.2:", when="@7.2:") + depends_on("py-setuptools@56:", when="@4.6.4:") + depends_on("py-setuptools") + depends_on("py-setuptools-scm@3.4.1:+toml", when="@3:") + depends_on("py-setuptools-scm") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@8.8:") + depends_on("python@3.9:", when="@8.6:") + depends_on("python@3.8:", when="@6.8:") + depends_on("python@3.7:", when="@4.9:") + + depends_on("py-zipp@3.20:", when="@8.5:") + depends_on("py-zipp@0.5:") + + # Historical dependencies + depends_on("py-typing-extensions@3.6.4:", when="@3:8.7.1 ^python@:3.7") diff --git a/repos/spack_repo/builtin/packages/py_imutils/package.py b/repos/spack_repo/builtin/packages/py_imutils/package.py new file mode 100644 index 00000000000..a239606666d --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_imutils/package.py @@ -0,0 +1,29 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# 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.python import PythonPackage + +from spack.package import * + + +class PyImutils(PythonPackage): + """A series of convenience functions to make basic image processing + functions such as translation, rotation, resizing, skeletonization, + displaying Matplotlib images, sorting contours, detecting edges, and much + more easier with OpenCV and both Python 2.7 and Python 3.""" + + homepage = "https://github.com/jrosebr1/imutils" + pypi = "imutils/imutils-0.5.4.tar.gz" + + license("MIT", checked_by="alex391") + + version("0.5.4", sha256="03827a9fca8b5c540305c0844a62591cf35a0caec199cb0f2f0a4a0fb15d8f24") + + depends_on("py-setuptools", type="build") + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + depends_on("py-matplotlib", type=("build", "run")) + depends_on("opencv+python3+imgcodecs", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_in_n_out/package.py b/repos/spack_repo/builtin/packages/py_in_n_out/package.py new file mode 100644 index 00000000000..2e84b74ae49 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_in_n_out/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 PyInNOut(PythonPackage): + """A lightweight dependency injection and result processing framework for + Python using type hints. Emphasis is on simplicity, ease of use, and + minimal impact on source code.""" + + homepage = "https://github.com/pyapp-kit/in-n-out" + pypi = "in_n_out/in_n_out-0.2.1.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("0.2.1", sha256="43cde2b7de981d41a6d70618a2b7bd989481095922a53ead4dc75f2bbd5dffea") + + depends_on("python@3.8:", type=("build", "run")) + + depends_on("py-hatchling", type="build") diff --git a/repos/spack_repo/builtin/packages/py_iniconfig/package.py b/repos/spack_repo/builtin/packages/py_iniconfig/package.py index 8fd4b4210c8..a92bf0e0ee4 100644 --- a/repos/spack_repo/builtin/packages/py_iniconfig/package.py +++ b/repos/spack_repo/builtin/packages/py_iniconfig/package.py @@ -16,10 +16,16 @@ class PyIniconfig(PythonPackage): license("MIT") + version("2.1.0", sha256="3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7") version("2.0.0", sha256="2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3") version("1.1.1", sha256="bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32") + depends_on("python@3.8:", when="@2.1:", type=("build", "run")) + depends_on("python@3.7:", when="@2:", type=("build", "run")) + depends_on("py-hatchling@1.26:", when="@2.1:", type="build") depends_on("py-hatchling", when="@2", type="build") depends_on("py-hatch-vcs", when="@2", type="build") + + # Historical dependencies depends_on("py-setuptools@41.2:", when="@1", type="build") depends_on("py-setuptools-scm@4:", when="@1", type="build") diff --git a/repos/spack_repo/builtin/packages/py_inscriptis/package.py b/repos/spack_repo/builtin/packages/py_inscriptis/package.py new file mode 100644 index 00000000000..41a8a00d78c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_inscriptis/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 PyInscriptis(PythonPackage): + """A python based HTML to text conversion library, command line client and Web service.""" + + homepage = "https://github.com/weblyzard/inscriptis" + pypi = "inscriptis/inscriptis-2.6.0.tar.gz" + + maintainers("thomas-bouvier") + + version("2.6.0", sha256="6f164bf45ea6972d61fd048a8e074d5125d215eaa837f8e70c158c97c31c3181") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-poetry-core", type="build") + depends_on("py-requests@2.32.2:", type=("build", "run")) + depends_on("py-lxml@4.9.3:", type=("build", "run")) + depends_on("py-fastapi@0.115.11:", type=("build", "run")) + depends_on("py-uvicorn@0.34.0:", type=("build", "run")) + + # Development dependencies + depends_on("py-pytest@8.3.5:", type="test") diff --git a/repos/spack_repo/builtin/packages/py_installer/package.py b/repos/spack_repo/builtin/packages/py_installer/package.py index a8084ca8f80..12aac4d9d20 100644 --- a/repos/spack_repo/builtin/packages/py_installer/package.py +++ b/repos/spack_repo/builtin/packages/py_installer/package.py @@ -19,11 +19,15 @@ class PyInstaller(Package, PythonExtension): ) list_url = "https://pypi.org/simple/installer/" + version("1.0.0", sha256="7b46327ded20d8544bfe2d8561618bbcd12d88e7e3645333af1ed141d8bc1bfe") version("0.7.0", sha256="05d1933f0a5ba7d8d6296bb6d5018e7c94fa473ceb10cf198a92ccea19c27b53") version("0.6.0", sha256="ae7c62d1d6158b5c096419102ad0d01fdccebf857e784cee57f94165635fe038") extends("python") + # https://github.com/pypa/installer/issues/132 + depends_on("python@:3.12", type=("build", "run"), when="@:0") + def install(self, spec, prefix): # To build and install installer from source, you need flit-core, build, and installer # already installed. We get around this by using a pre-built wheel to install itself. diff --git a/repos/spack_repo/builtin/packages/py_intake/package.py b/repos/spack_repo/builtin/packages/py_intake/package.py new file mode 100644 index 00000000000..5194af3bde5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_intake/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 PyIntake(PythonPackage): + """Data catalog, search and load""" + + homepage = "https://github.com/intake/intake" + git = "https://github.com/intake/intake.git" + pypi = "intake/intake-2.0.8.tar.gz" + + maintainers("LydDeb") + + license("MIT", checked_by="LydDeb") + + version("2.0.8", sha256="731d484a002de2f659bb988f406b35037234a35c17b08776d9a5e4838ecf2769") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@64:", type="build") + depends_on("py-setuptools-scm@8:", type="build") + depends_on("py-fsspec@2023:", type=("build", "run")) + depends_on("py-pyyaml", type=("build", "run")) + depends_on("py-platformdirs", type=("build", "run")) + depends_on("py-networkx", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_intake_esm/package.py b/repos/spack_repo/builtin/packages/py_intake_esm/package.py new file mode 100644 index 00000000000..fb1029c8e38 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_intake_esm/package.py @@ -0,0 +1,44 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyIntakeEsm(PythonPackage): + """ + An intake plugin for parsing an Earth System Model (ESM) catalog and loading netCDF files + and/or Zarr stores into Xarray datasets." + """ + + homepage = "https://intake-esm.readthedocs.io" + git = "https://github.com/intake/intake-esm.git" + pypi = "intake_esm/intake_esm-2025.12.12.tar.gz" + + maintainers("LydDeb") + + license("Apache-2.0", checked_by="LydDeb") + + version( + "2025.12.12", sha256="b99d2d07347a9ea98261277960ccce8a737f683521472bc4ca879b8f71bc7ed2" + ) + + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-setuptools@75.0:", type="build") + depends_on("py-setuptools-scm@8.1:", type="build") + depends_on("py-dask@2024.12:", type=("build", "run")) + depends_on("py-fastprogress@1.0.0:", type=("build", "run")) + depends_on("py-fsspec@2024.12:", type=("build", "run")) + depends_on("py-intake@2.0.0:", type=("build", "run")) + depends_on("py-itables", type=("build", "run")) + depends_on("py-netcdf4@1.5.5:", type=("build", "run")) + depends_on("py-pandas@2.1.0:", type=("build", "run")) + depends_on("py-polars@1.24.0:1.32", type=("build", "run")) + depends_on("py-pydantic@2.0:", type=("build", "run")) + depends_on("py-pydap@:3.5.4,3.5.6:", type=("build", "run")) + depends_on("py-requests@2.24.0:", type=("build", "run")) + depends_on("py-xarray@2024.10:", type=("build", "run")) + depends_on("py-zarr@2.12:2,3.1:", type=("build", "run")) + depends_on("py-kerchunk@0.2.9:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_invoke/package.py b/repos/spack_repo/builtin/packages/py_invoke/package.py index e86cf80416f..2678ed47a0a 100644 --- a/repos/spack_repo/builtin/packages/py_invoke/package.py +++ b/repos/spack_repo/builtin/packages/py_invoke/package.py @@ -15,6 +15,7 @@ class PyInvoke(PythonPackage): license("BSD-2-Clause") + version("2.2.1", sha256="515bf49b4a48932b79b024590348da22f39c4942dff991ad1fb8b8baea1be707") version("2.2.0", sha256="ee6cbb101af1a859c7fe84f2a264c059020b0cb7fe3535f9424300ab568f6bd5") version("1.4.1", sha256="de3f23bfe669e3db1085789fd859eb8ca8e0c5d9c20811e2407fa042e8a5e15d") version("1.2.0", sha256="dc492f8f17a0746e92081aec3f86ae0b4750bf41607ea2ad87e5a7b5705121b7") diff --git a/repos/spack_repo/builtin/packages/py_ipdb/package.py b/repos/spack_repo/builtin/packages/py_ipdb/package.py index d6b65438b4f..76b8ac51f28 100644 --- a/repos/spack_repo/builtin/packages/py_ipdb/package.py +++ b/repos/spack_repo/builtin/packages/py_ipdb/package.py @@ -15,6 +15,7 @@ class PyIpdb(PythonPackage): license("BSD-3-Clause") + version("0.13.13", sha256="e3ac6018ef05126d442af680aad863006ec19d02290561ac88b8b1c0b0cfc726") version("0.13.11", sha256="c23b6736f01fd4586cc2ecbebdf79a5eb454796853e1cd8f2ed3b7b91d4a3e93") version("0.13.10", sha256="6950715f491d59df6c27b49cb372f22c2f1763478a5e9ed03fb0507e2d85f460") version("0.13.9", sha256="951bd9a64731c444fd907a5ce268543020086a697f6be08f7cc2c9a752a278c5") diff --git a/repos/spack_repo/builtin/packages/py_ipycanvas/package.py b/repos/spack_repo/builtin/packages/py_ipycanvas/package.py index ddf6c6cc5e7..b58a27b17d8 100644 --- a/repos/spack_repo/builtin/packages/py_ipycanvas/package.py +++ b/repos/spack_repo/builtin/packages/py_ipycanvas/package.py @@ -15,13 +15,21 @@ class PyIpycanvas(PythonPackage): license("BSD-3-Clause") + version("0.14.3", sha256="c6a53a22eebf4d611b168b8f4434145883f27a7575509bd99a4bfc48c5385a39") + version("0.14.1", sha256="921f1482258b5929b599317b5c129931d80e16be35fa38300a32e7aa4cfe9f89") version("0.10.2", sha256="a02c494834cb3c60509801172e7429beae837b3cb6c61d3becf8b586c5a66004") version("0.9.0", sha256="f29e56b93fe765ceace0676c3e75d44e02a3ff6c806f3b7e5b869279f470cc43") - depends_on("python@3.5:", type=("build", "run")) - depends_on("py-setuptools@40.8:", type="build") - depends_on("py-jupyter-packaging@0.7", type="build") - depends_on("py-jupyterlab@3.0:3", type="build") - depends_on("py-ipywidgets@7.6:", type=("build", "run")) - depends_on("pil@6:", type=("build", "run")) - depends_on("py-numpy", type=("build", "run")) + with default_args(type="build"): + depends_on("py-hatchling", when="@0.14:") + depends_on("py-jupyterlab@3:4", when="@0.14:") + depends_on("py-jupyterlab@3", when="@:0.10") + + # Historical dependencies + depends_on("py-setuptools@40.8:", when="@:0.10") + depends_on("py-jupyter-packaging@0.7", when="@:0.10") + + with default_args(type=("build", "run")): + depends_on("py-ipywidgets@7.6:8") + depends_on("py-numpy") + depends_on("pil@6:") diff --git a/repos/spack_repo/builtin/packages/py_ipyevents/package.py b/repos/spack_repo/builtin/packages/py_ipyevents/package.py index 58a3ebad2f0..3789bf0bfaf 100644 --- a/repos/spack_repo/builtin/packages/py_ipyevents/package.py +++ b/repos/spack_repo/builtin/packages/py_ipyevents/package.py @@ -15,20 +15,15 @@ class PyIpyevents(PythonPackage): license("BSD-3-Clause") + version("2.0.4", sha256="bd8c66a9ff26f481494cda1ec1d979722ca9eba19f8ef52538c7cc2db2a1a139") version("2.0.2", sha256="26e878b0c5854bc8b6bd6a2bd2c89b314ebe86fda642f4d2434051545bab258f") - version( - "2.0.1", - sha256="23eb2afab13d9056397f120a88051dd3beb067b698d08b33adffc9e077f019cb", - deprecated=True, - ) - with default_args(type="build"): - depends_on("py-hatchling", when="@2.0.2:") - depends_on("py-jupyterlab@3") - depends_on("py-hatch-jupyter-builder@0.8.3:", when="@2.0.2:") + depends_on("python@3.9:", type=("build", "run"), when="@2.0.4:") - # Historical dependencies - depends_on("py-setuptools@40.8:", when="@:2.0.1") - depends_on("py-jupyter-packaging@0.7", when="@:2.0.1") + with default_args(type="build"): + depends_on("py-hatchling") + depends_on("py-jupyterlab@4", when="@2.0.3:") + depends_on("py-jupyterlab@3", when="@:2.0.2") + depends_on("py-hatch-jupyter-builder@0.8.3:") depends_on("py-ipywidgets@7.6:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_ipykernel/package.py b/repos/spack_repo/builtin/packages/py_ipykernel/package.py index 73fc67a4479..28bde4eb388 100644 --- a/repos/spack_repo/builtin/packages/py_ipykernel/package.py +++ b/repos/spack_repo/builtin/packages/py_ipykernel/package.py @@ -18,6 +18,8 @@ class PyIpykernel(PythonPackage): license("BSD-3-Clause") + version("7.2.0", sha256="18ed160b6dee2cbb16e5f3575858bc19d8f1fe6046a9a680c708494ce31d909e") + version("6.30.1", sha256="6abb270161896402e76b91394fcdce5d1be5d45f456671e5080572f8505be39b") version("6.29.5", sha256="f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215") version("6.29.4", sha256="3d44070060f9475ac2092b760123fadf105d2e2493c24848b6691a7c4f42af5c") version("6.28.0", sha256="69c11403d26de69df02225916f916b37ea4b9af417da0a8c827f84328d88e5f3") @@ -36,87 +38,25 @@ class PyIpykernel(PythonPackage): version("6.0.2", sha256="7fb3e370dbb481b012b74bed4e794d2d16eb2a83930b31e6d8d030b9fdb4d5b4") version("5.5.6", sha256="4ea44b90ae1f7c38987ad58ea0809562a17c2695a0499644326f334aecd369ec") version("5.5.5", sha256="e976751336b51082a89fc2099fb7f96ef20f535837c398df6eab1283c2070884") - version("5.3.4", sha256="9b2652af1607986a1b231c62302d070bc0534f564c393a5d9d130db9abbbe89d") - version("5.1.1", sha256="f0e962052718068ad3b1d8bcc703794660858f58803c3798628817f492a8769c") - version("5.1.0", sha256="0fc0bf97920d454102168ec2008620066878848fcfca06c22b669696212e292f") - version( - "4.10.0", - sha256="699103c8e64886e3ec7053f2a6aa83bb90426063526f63a818732ff385202bad", - deprecated=True, - ) - version( - "4.5.0", - sha256="245a798edb8fd751b95750d8645d736dd739a020e7fc7d5627dac4d1c35d8295", - deprecated=True, - ) - version( - "4.4.1", - sha256="6d48398b3112efb733b254edede4b7f3262c28bd19f665b64ef1acf6ec5cd74f", - deprecated=True, - ) - version( - "4.4.0", - sha256="d516427c3bd689205e6693c9616302ef34017b91ada3c9ea3fca6e90702b7ffe", - deprecated=True, - ) - version( - "4.3.1", - sha256="8219d3eaa3e4d4efc5f349114e41a40f0986c91a960846bb81d5da817fb7cc3f", - deprecated=True, - ) - version( - "4.3.0", - sha256="f214c661328c836e02b6f185f98f3eccd7ce396791937493ffa1babf5e3267ab", - deprecated=True, - ) - version( - "4.2.2", - sha256="a876da43e01acec2c305abdd8e6aa55f052bab1196171ccf1cb9a6aa230298b0", - deprecated=True, - ) - version( - "4.2.1", - sha256="081a5d4db33db58697be2d682b92f79b2c239493445f13dd457c15bc3e52c874", - deprecated=True, - ) - version( - "4.2.0", - sha256="723b3d4baac20f0c9cd91fc75c3e813636ecb6c6e303fb34d628c3df078985a7", - deprecated=True, - ) - version( - "4.1.1", - sha256="d8c5555386d0f18f1336dea9800f9f0fe96dcecc9757c0f980e11fdfadb661ff", - deprecated=True, - ) - version( - "4.1.0", - sha256="e0e150ad55e487e49054efc9a4b0e2e17f27e1de77444b26760789077b146d86", - deprecated=True, - ) - - depends_on("py-hatchling@1.4:", when="@6.13.1:", type="build") + + with default_args(type="build"): + depends_on("py-hatchling@1.22:", when="@7.0.1:") + depends_on("py-hatchling@1.4:", when="@6.13.1:") with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@7:") + depends_on("python@3.9:", when="@6.30:") depends_on("python@3.8:", when="@6.11:") depends_on("python@3.8:3.11", when="@6:6.10") depends_on("python@3.6:3.9", when="@5.5:5") - depends_on("python@3.5:3.8", when="@5.4") - depends_on("python@3.5:3.7", when="@5:5.3") - # depends_on("python@3.4:3.5", when="@4") - - with when("@6:"): - depends_on("py-debugpy@1.6.5:", when="@6.22:") - depends_on("py-debugpy@1:") - depends_on("py-debugpy@:1", when="@:6.10") - depends_on("py-matplotlib-inline@0.1:") - depends_on("py-matplotlib-inline@:0.1", when="@:6.10") + depends_on("py-debugpy@1.6.5:", when="@6.22:") + depends_on("py-debugpy@1:", when="@6:") + depends_on("py-debugpy@:1", when="@6:6.10") depends_on("py-ipython@7.23.1:", when="@6.5.1:") depends_on("py-ipython@7.23.1:7", when="@6:6.5.0") depends_on("py-ipython@5:", when="@5:") - depends_on("py-ipython@4:") depends_on("py-ipython@:7", when="@:6.5") depends_on("py-comm@0.1.1:", when="@6.22:") @@ -126,28 +66,44 @@ class PyIpykernel(PythonPackage): depends_on("py-traitlets@4.1.0:") depends_on("py-traitlets@:5", when="@:6.10") + depends_on("py-jupyter-client@8.8:", when="@7.2:") + depends_on("py-jupyter-client@8:", when="@6.30:") depends_on("py-jupyter-client@6.1.12:", when="@6.11:") depends_on("py-jupyter-client") depends_on("py-jupyter-client@:7", when="@:6.10") depends_on("py-jupyter-client@:6", when="@:6.1") + depends_on("py-jupyter-core@5.1:", when="@7.2:") depends_on("py-jupyter-core@4.12:", when="@6.22:") + depends_on("py-nest-asyncio@1.4:", when="@6.30:") depends_on("py-nest-asyncio", when="@6.6.1:") + depends_on("py-tornado@6.4.1:", when="@7.2:") + depends_on("py-tornado@6.2:", when="@6.30:") depends_on("py-tornado@6.1:", when="@6.11:") depends_on("py-tornado@5:", when="@6.10:") depends_on("py-tornado@4.2:", when="@5:") - depends_on("py-tornado@4:") depends_on("py-tornado@:6", when="@:6.10") + depends_on("py-matplotlib-inline@0.1:", when="@6:") + depends_on("py-matplotlib-inline@:0.1", when="@6:6.10") + + depends_on("py-appnope@0.1.2:", when="@6.30: platform=darwin") depends_on("py-appnope", when="@5.1.3: platform=darwin") + + depends_on("py-pyzmq@25:", when="@6.30:") depends_on("py-pyzmq@24:", when="@6.28:") depends_on("py-pyzmq@20:", when="@6.22:") depends_on("py-pyzmq@17:", when="@6.15:") + + depends_on("py-psutil@5.7:", when="@6.30:") depends_on("py-psutil", when="@6.9.2:") + + depends_on("py-packaging@22:", when="@6.30:") depends_on("py-packaging", when="@6.12:") + conflicts("^py-jupyter-core@6.0") conflicts("^py-jupyter-core@5.0") # Historical dependencies diff --git a/repos/spack_repo/builtin/packages/py_ipympl/package.py b/repos/spack_repo/builtin/packages/py_ipympl/package.py index 59380f6af7a..5d8ed1008de 100644 --- a/repos/spack_repo/builtin/packages/py_ipympl/package.py +++ b/repos/spack_repo/builtin/packages/py_ipympl/package.py @@ -17,33 +17,17 @@ class PyIpympl(PythonPackage): license("BSD-3-Clause") version("0.9.4", sha256="cfb53c5b4fcbcee6d18f095eecfc6c6c474303d5b744e72cc66e7a2804708907") - # Build failures - version( - "0.8.8", - sha256="5bf5d780b07fafe7924922ac6b2f3abd22721f341e5e196b3b82737dfbd0e1c9", - deprecated=True, - ) with default_args(type="build"): - with when("@0.9:"): - depends_on("py-hatchling") - depends_on("py-jupyterlab@4") - depends_on("py-hatch-nodejs-version@0.3.2:") - - # Historical dependencies - with when("@:0.8"): - depends_on("py-jupyter-packaging@0.7") - depends_on("py-jupyterlab@3") - depends_on("py-setuptools@40.8:") - depends_on("yarn@1") + depends_on("py-hatchling") + depends_on("py-jupyterlab@4") + depends_on("py-hatch-nodejs-version@0.3.2:") with default_args(type=("build", "run")): depends_on("py-ipython@:8") depends_on("py-ipython-genutils") - depends_on("py-ipywidgets@7.6:8", when="@0.9:") - depends_on("py-ipywidgets@7.6:7", when="@:0.8") - depends_on("py-matplotlib@3.4:3", when="@0.9:") - depends_on("py-matplotlib@2:3", when="@:0.8") + depends_on("py-ipywidgets@7.6:8") + depends_on("py-matplotlib@3.4:3") depends_on("py-numpy") depends_on("pil") depends_on("py-traitlets@:5") diff --git a/repos/spack_repo/builtin/packages/py_ipython/package.py b/repos/spack_repo/builtin/packages/py_ipython/package.py index be48653c83d..48d2b58f77d 100644 --- a/repos/spack_repo/builtin/packages/py_ipython/package.py +++ b/repos/spack_repo/builtin/packages/py_ipython/package.py @@ -23,6 +23,8 @@ class PyIpython(PythonPackage): license("BSD-3-Clause") + version("9.12.0", sha256="01daa83f504b693ba523b5a407246cabde4eb4513285a3c6acaff11a66735ee4") + version("9.5.0", sha256="129c44b941fe6d9b82d36fc7a7c18127ddb1d6f02f78f867f402e2e3adde3113") version("8.28.0", sha256="0d0d15ca1e01faeb868ef56bc7ee5a0de5bd66885735682e8a322ae289a13d1a") version("8.27.0", sha256="0b99a2dc9f15fd68692e898e5568725c6d49c527d36a9fb5960ffbdeaa82ff7e") version("8.26.0", sha256="1cec0fbba8404af13facebe83d04436a7434c7400e59f47acf467c64abd0956c") @@ -52,47 +54,62 @@ class PyIpython(PythonPackage): version("5.8.0", sha256="4bac649857611baaaf76bc82c173aa542f7486446c335fe1a6c05d0d491c8906") version("5.1.0", sha256="7ef4694e1345913182126b219aaa4a0047e191af414256da6772cf249571b961") + depends_on("python@3.12:", when="@9.11:", type=("build", "run")) + depends_on("python@3.11:", when="@9:", type=("build", "run")) depends_on("python@3.10:", when="@8.19:", type=("build", "run")) depends_on("python@3.9:", when="@8.13.1:", type=("build", "run")) depends_on("python@3.8: +sqlite3", when="@8:", type=("build", "run")) - depends_on("py-setuptools@61.2:", when="@8.22:", type="build") - depends_on("py-setuptools@51:", when="@8:", type="build") - depends_on("py-setuptools@18.5:", when="@:7", type="run") - depends_on("py-setuptools", type="build") - depends_on("py-colorama", when="platform=windows", type=("build", "run")) - depends_on("py-decorator", type=("build", "run")) - depends_on("py-exceptiongroup", when="@8.15: ^python@:3.10", type=("build", "run")) - depends_on("py-jedi@0.16:", when="@7.18,7.20:", type=("build", "run")) - depends_on("py-jedi@0.10:", when="@7.5:7.17,7.19", type=("build", "run")) - depends_on("py-matplotlib-inline", when="@7.23:", type=("build", "run")) - depends_on("py-pexpect@4.4:", when="@7.18: platform=linux", type=("build", "run")) - depends_on("py-pexpect@4.4:", when="@7.18: platform=darwin", type=("build", "run")) - depends_on("py-pexpect", when="platform=linux", type=("build", "run")) - depends_on("py-pexpect", when="platform=darwin", type=("build", "run")) - depends_on("py-prompt-toolkit@3.0.41:3.0", when="@8.18.1:", type=("build", "run")) - depends_on("py-prompt-toolkit@3.0.30:3.0.36,3.0.38:3.0", when="@8.11:", type=("build", "run")) - depends_on("py-prompt-toolkit@3.0.2:3.0", when="@8.5:", type=("build", "run")) - depends_on("py-prompt-toolkit@2.0.0:2,3.0.2:3.0", when="@7.26:", type=("build", "run")) - depends_on("py-prompt-toolkit@3.0.2:3.0", when="@7.18:7.25", type=("build", "run")) - depends_on("py-prompt-toolkit@2.0.0:2.0", when="@7.5.0", type=("build", "run")) - depends_on("py-prompt-toolkit@2.0.0:2", when="@7.0.0:7.5.0", type=("build", "run")) - depends_on("py-prompt-toolkit@1.0.4:1", when="@:7.0.0", type=("build", "run")) - depends_on("py-prompt-toolkit@1.0.3:1", when="@:7.0.0", type=("build", "run")) - depends_on("py-pygments@2.4:", when="@8.1:", type=("build", "run")) - depends_on("py-pygments", type=("build", "run")) - depends_on("py-stack-data", when="@8:", type=("build", "run")) - depends_on("py-traitlets@5.13:", when="@8.22.1:", type=("build", "run")) - depends_on("py-traitlets@5:", when="@8:", type=("build", "run")) - depends_on("py-traitlets@4.2:", type=("build", "run")) - depends_on("py-traitlets", type=("build", "run")) - depends_on("py-typing-extensions@4.6:", when="@8.24: ^python@:3.11", type=("build", "run")) - depends_on("py-typing-extensions", when="@8.23: ^python@:3.11", type=("build", "run")) - depends_on("py-typing-extensions", when="@8.12: ^python@:3.9", type=("build", "run")) + with default_args(type="build"): + depends_on("py-setuptools@80:", when="@9.11:") + depends_on("py-setuptools@61.2:", when="@8.22:") + depends_on("py-setuptools@51:", when="@8:") + depends_on("py-setuptools@18.5:", when="@:7") + depends_on("py-setuptools") - # Historical dependencies - depends_on("py-appnope", when="@:8.17 platform=darwin", type=("build", "run")) - depends_on("py-backcall", when="@7.3.0:8.16", type=("build", "run")) - depends_on("py-black", when="@8.0", type=("build", "run")) - depends_on("py-pickleshare", when="@:8.16", type=("build", "run")) - depends_on("py-simplegeneric@0.8:", when="@:7.0.0", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("py-colorama@0.4.4:", when="@9.7: platform=windows") + depends_on("py-colorama", when="platform=windows") + depends_on("py-decorator@5.1:", when="@9.11:") + depends_on("py-decorator") + depends_on("py-ipython-pygments-lexers@1:", when="@9:") + depends_on("py-ipython-pygments-lexers", when="@9:") + depends_on("py-jedi@0.18.2:", when="@9.11:") + depends_on("py-jedi@0.16:", when="@7.18,7.20:") + depends_on("py-jedi@0.10:", when="@7.5:7.17,7.19") + depends_on("py-matplotlib-inline@0.1.6:", when="@9.11:") + depends_on("py-matplotlib-inline", when="@7.23:") + depends_on("py-pexpect@4.5:", when="@9.11: platform=linux") + depends_on("py-pexpect@4.5:", when="@9.11: platform=darwin") + depends_on("py-pexpect@4.4:", when="@7.18: platform=linux") + depends_on("py-pexpect@4.4:", when="@7.18: platform=darwin") + depends_on("py-pexpect", when="platform=linux") + depends_on("py-pexpect", when="platform=darwin") + depends_on("py-prompt-toolkit@3.0.41:3.0", when="@8.18.1:") + depends_on("py-prompt-toolkit@3.0.30:3.0.36,3.0.38:3.0", when="@8.11:") + depends_on("py-prompt-toolkit@3.0.2:3.0", when="@8.5:") + depends_on("py-prompt-toolkit@2.0.0:2,3.0.2:3.0", when="@7.26:") + depends_on("py-prompt-toolkit@3.0.2:3.0", when="@7.18:7.25") + depends_on("py-prompt-toolkit@2.0.0:2.0", when="@7.5.0") + depends_on("py-prompt-toolkit@2.0.0:2", when="@7.0.0:7.5.0") + depends_on("py-prompt-toolkit@1.0.4:1", when="@:7.0.0") + depends_on("py-prompt-toolkit@1.0.3:1", when="@:7.0.0") + depends_on("py-pygments@2.14:", when="@9.11:") + depends_on("py-pygments@2.4:", when="@8.1:") + depends_on("py-pygments") + depends_on("py-stack-data@0.6:", when="@9.7:") + depends_on("py-stack-data", when="@8:") + depends_on("py-traitlets@5.13:", when="@8.22.1:") + depends_on("py-traitlets@5:", when="@8:") + depends_on("py-traitlets@4.2:") + + # Historical dependencies + depends_on("py-appnope", when="@:8.17 platform=darwin") + depends_on("py-backcall", when="@7.3.0:8.16") + depends_on("py-black", when="@8.0") + depends_on("py-exceptiongroup", when="@8.15:8 ^python@:3.10") + depends_on("py-pickleshare", when="@:8.16") + depends_on("py-simplegeneric@0.8:", when="@:7.0.0") + depends_on("py-typing-extensions@4.6:", when="@8.24:9.10 ^python@:3.11") + depends_on("py-typing-extensions", when="@8.23:9.10 ^python@:3.11") + depends_on("py-typing-extensions", when="@8.12:9.10 ^python@:3.9") diff --git a/repos/spack_repo/builtin/packages/py_ipython_pygments_lexers/package.py b/repos/spack_repo/builtin/packages/py_ipython_pygments_lexers/package.py new file mode 100644 index 00000000000..62c295d9f6e --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_ipython_pygments_lexers/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 PyIpythonPygmentsLexers(PythonPackage): + """Defines a variety of Pygments lexers for highlighting IPython code.""" + + homepage = "https://github.com/ipython/ipython-pygments-lexers" + pypi = "ipython_pygments_lexers/ipython_pygments_lexers-1.1.1.tar.gz" + + license("BSD-3-Clause") + + version("1.1.1", sha256="09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-flit-core@3.2:3", type="build") + + depends_on("py-pygments", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_iso8601/package.py b/repos/spack_repo/builtin/packages/py_iso8601/package.py index 14c330818a9..0c4c65c9195 100644 --- a/repos/spack_repo/builtin/packages/py_iso8601/package.py +++ b/repos/spack_repo/builtin/packages/py_iso8601/package.py @@ -15,10 +15,12 @@ class PyIso8601(PythonPackage): license("MIT") + version("2.1.0", sha256="6b1d3829ee8921c4301998c909f7829fa9ed3cbdac0d3b16af2d743aed1ba8df") version("1.1.0", sha256="32811e7b81deee2063ea6d2e94f8819a86d1f3811e49d23623a41fa832bef03f") version("1.0.2", sha256="27f503220e6845d9db954fb212b95b0362d8b7e6c1b2326a87061c3de93594b1") version("0.1.14", sha256="8aafd56fa0290496c5edbb13c311f78fa3a241f0853540da09d9363eae3ebd79") + depends_on("python@3.7:3", when="@2:", type=("build", "run")) depends_on("python@3.6.2:3", when="@1:", type=("build", "run")) depends_on("py-poetry-core@1:", when="@1:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_isodate/package.py b/repos/spack_repo/builtin/packages/py_isodate/package.py index 48dd041fcf7..dad56ed5d76 100644 --- a/repos/spack_repo/builtin/packages/py_isodate/package.py +++ b/repos/spack_repo/builtin/packages/py_isodate/package.py @@ -16,8 +16,15 @@ class PyIsodate(PythonPackage): homepage = "https://github.com/gweis/isodate/" pypi = "isodate/isodate-0.6.0.tar.gz" + license("BSD-3-Clause") + + version("0.7.2", sha256="4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6") version("0.6.1", sha256="48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9") version("0.6.0", sha256="2e364a3d5759479cdb2d37cce6b9376ea504db2ff90252a2e5b7cc89cc9ff2d8") + depends_on("python@3.7:", type="build", when="@0.7:") depends_on("py-setuptools", type="build") - depends_on("py-six", type=("build", "run")) + depends_on("py-setuptools-scm+toml", type="build", when="@0.7:") + + # Historical dependencies + depends_on("py-six", type=("build", "run"), when="@:0.6") diff --git a/repos/spack_repo/builtin/packages/py_isort/package.py b/repos/spack_repo/builtin/packages/py_isort/package.py index f68040caa2b..b45a4b2b43d 100644 --- a/repos/spack_repo/builtin/packages/py_isort/package.py +++ b/repos/spack_repo/builtin/packages/py_isort/package.py @@ -20,16 +20,6 @@ class PyIsort(PythonPackage): version("5.10.1", sha256="e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951") version("5.9.3", sha256="9c2ea1e62d871267b78307fe511c0838ba0da28698c5732d54e2790bf3ba9899") version("5.9.1", sha256="83510593e07e433b77bd5bff0f6f607dbafa06d1a89022616f02d8b699cfcd56") - version( - "4.3.20", - sha256="c40744b6bc5162bbb39c1257fe298b7a393861d50978b565f3ccd9cb9de0182a", - deprecated=True, - ) - version( - "4.2.15", - sha256="79f46172d3a4e2e53e7016e663cc7a8b538bec525c36675fcfd2767df30b3983", - deprecated=True, - ) variant("colors", default=False, description="Install colorama for --color support") @@ -41,10 +31,9 @@ class PyIsort(PythonPackage): depends_on("python@3.6:3", when="@5.10") depends_on("python@3.6:3", when="@5.9") - conflicts("python@3.6.0", when="@5:") + conflicts("python@3.6.0") - depends_on("py-setuptools", when="@:4", type=("build", "run")) - depends_on("py-poetry-core@1:", when="@5:", type="build") + depends_on("py-poetry-core@1:", type="build") depends_on("py-colorama@0.4.3:", when="+colors @5.12:", type=("build", "run")) depends_on("py-colorama@0.4.3:0.4", when="+colors @:5.11", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_itables/package.py b/repos/spack_repo/builtin/packages/py_itables/package.py new file mode 100644 index 00000000000..a30614d4b68 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_itables/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 PyItables(PythonPackage): + """Python DataFrames as interactive DataTables.""" + + homepage = "https://github.com/mwouts/itables" + git = "https://github.com/mwouts/itables.git" + pypi = "itables/itables-2.7.1.tar.gz" + + maintainers("LydDeb") + + license("MIT", checked_by="gLydDeb") + + version("2.7.1", sha256="67f375e773ddf748da2ec2250fd21a242aaa63835b4ebe816840be01bcfa98e8") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-hatchling", type="build") diff --git a/repos/spack_repo/builtin/packages/py_iterative_stats/package.py b/repos/spack_repo/builtin/packages/py_iterative_stats/package.py index 86d3b13416b..6962f9210f3 100644 --- a/repos/spack_repo/builtin/packages/py_iterative_stats/package.py +++ b/repos/spack_repo/builtin/packages/py_iterative_stats/package.py @@ -10,33 +10,39 @@ class PyIterativeStats(PythonPackage): """Bacis iterative statistics implementation.""" - pypi = "iterative-stats/iterative_stats-0.1.0.tar.gz" + pypi = "iterative-stats/iterative_stats-0.1.2.tar.gz" git = "https://github.com/IterativeStatistics/BasicIterativeStatistics.git" - maintainers("robcaulk", "viperML", "abhishek1297") + maintainers("abhishek1297", "raffino") license("BSD-3-Clause") version("main", branch="main") + version("0.1.2", sha256="40874dde372a648623b79c45ce9f1259c8616c8d5d0aafacefe65bfbb88f4525") version("0.1.1", sha256="c2be6045e720aa7ff5c8dbbcd01d082d1b66f2c2a8613ad825528535e3ce0436") version("0.1.0", sha256="bb4f378a8fa117d1f24e9ea5ac0f1bd13c04b1ab3693a148ba936ffb237f2fba") version("0.0.4", sha256="7e838aa79de867b0e312be8cdf9319bb70824b624c684e968636cc8d4c9d5712") with default_args(type=("build", "run")): depends_on("python@3.8:3.10", when="@:0.1.0") - depends_on("python@3.9:3.12", when="@0.1.1:") + depends_on("python@3.9:3.12", when="@0.1.1") + depends_on("python@3.11:3.14", when="@0.1.2:") depends_on("py-pyyaml@6.0:") - depends_on("py-numpy@1.19:1") + depends_on("py-numpy@1.26:2", when="@0.1.2:") + depends_on("py-numpy@1.19:1", when="@:0.1.1") depends_on("py-poetry-core@1.0.0:", type=("build")) with default_args(type=("test")): depends_on("py-pytest@6.2.1:6") depends_on("py-autopep8@1.6.0") - depends_on("openturns@1.19+python+libxml2") - depends_on("py-scipy@1.8:1") + depends_on("openturns@1.26", when="@0.1.2:") + depends_on("openturns@1.19", when="@:0.1.1") + depends_on("openturns+python+libxml2") + depends_on("py-scipy@1.16.1:1", when="@0.1.2:") + depends_on("py-scipy@1.8:1", when="@:0.1.1") @run_after("install") @on_package_attributes(run_tests=True) def install_test(self): - pytest = which("pytest") + pytest = which("pytest", required=True) pytest() diff --git a/repos/spack_repo/builtin/packages/py_itk/package.py b/repos/spack_repo/builtin/packages/py_itk/package.py index e83c851b303..b4b3ca2b45e 100644 --- a/repos/spack_repo/builtin/packages/py_itk/package.py +++ b/repos/spack_repo/builtin/packages/py_itk/package.py @@ -17,21 +17,7 @@ class PyItk(PythonPackage): skip_version_audit = ["platform=windows"] if sys.platform == "darwin": - # version 5.1.1 - version( - "5.1.1-cp38", - url="https://pypi.io/packages/cp35/i/itk/itk-5.1.1-cp38-cp38-macosx_10_9_x86_64.whl", - sha256="94b09ab9dd59ceaecc456ede2b719a44b8f0d54d92409eede372c6004395ae7b", - deprecated=True, - ) - # version 5.1.2 - version( - "5.1.2-cp38", - url="https://pypi.io/packages/cp38/i/itk/itk-5.1.2-cp38-cp38-macosx_10_9_x86_64.whl", - sha256="e8dec75b4452bd2ee65beb4901b245fc3a2a2ccc46dfa008ae0b5b757718d458", - deprecated=True, - ) version( "5.1.2-cp39", url="https://pypi.io/packages/cp39/i/itk/itk-5.1.2-cp39-cp39-macosx_10_9_x86_64.whl", @@ -39,12 +25,6 @@ class PyItk(PythonPackage): ) # version 5.3.0 - version( - "5.3.0-cp38", - url="https://pypi.io/packages/cp38/i/itk/itk-5.3.0-cp38-cp38-macosx_10_9_x86_64.whl", - sha256="1fbcde6f6612b13d2934722707fd7194b1d5900a655efa191dfc130bbb94df09", - deprecated=True, - ) version( "5.3.0-cp39", url="https://pypi.io/packages/cp39/i/itk/itk-5.3.0-cp39-cp39-macosx_10_9_x86_64.whl", @@ -61,21 +41,7 @@ class PyItk(PythonPackage): sha256="9dcfd9721ff6022e91eb98dc4004d437de2912dfd50d707d1ee72b89c334a3d4", ) elif sys.platform.startswith("linux"): - # version 5.1.1 - version( - "5.1.1-cp38", - url="https://pypi.io/packages/cp38/i/itk/itk-5.1.1-cp38-cp38-manylinux1_x86_64.whl", - sha256="14cd6c3a25f0d69f45eda74b006eceeaf8e2b2fcbe7c343e49683edf97e0fb14", - deprecated=True, - ) - # version 5.1.2 - version( - "5.1.2-cp38", - url="https://pypi.io/packages/cp38/i/itk/itk-5.1.2-cp38-cp38-manylinux1_x86_64.whl", - sha256="fe9225ac353116f4000c0a3440bf151200beb4a65deec5b2e626edda5b498f16", - deprecated=True, - ) version( "5.1.2-cp39", url="https://pypi.io/packages/cp39/i/itk/itk-5.1.2-cp39-cp39-manylinux1_x86_64.whl", @@ -83,12 +49,6 @@ class PyItk(PythonPackage): ) # version 5.3.0 - version( - "5.3.0-cp38", - url="https://pypi.io/packages/cp38/i/itk/itk-5.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", - sha256="d83dc2b0f5d673226ef6eacac012d1da6dd36c6126f2b3cffc7ed62231c29bf2", - deprecated=True, - ) version( "5.3.0-cp39", url="https://pypi.io/packages/cp39/i/itk/itk-5.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", @@ -105,7 +65,6 @@ class PyItk(PythonPackage): sha256="ba8361a8ed1c5462e690ee893f624c0babb7a1072a15609c26790eea717e3f77", ) - depends_on("python@3.8.0:3.8", when="@5.1.1-cp38,5.1.2-cp38,5.3.0-cp38", type=("build", "run")) depends_on("python@3.9.0:3.9", when="@5.1.2-cp39,5.3.0-cp39", type=("build", "run")) depends_on("python@3.10.0:3.10", when="@5.3.0-cp310", type=("build", "run")) depends_on("python@3.11.0:3.11", when="@5.3.0-cp311", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_itsdangerous/package.py b/repos/spack_repo/builtin/packages/py_itsdangerous/package.py index 43e7039e214..2d50c9f757d 100644 --- a/repos/spack_repo/builtin/packages/py_itsdangerous/package.py +++ b/repos/spack_repo/builtin/packages/py_itsdangerous/package.py @@ -15,12 +15,17 @@ class PyItsdangerous(PythonPackage): license("BSD-3-Clause") + version("2.2.0", sha256="e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173") version("2.1.2", sha256="5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a") version("2.0.1", sha256="9e724d68fc22902a1435351f84c3fb8623f303fffcc566a4cb952df8c572cff0") version("1.1.0", sha256="321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19") version("0.24", sha256="cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519") + depends_on("python@3.8:", when="@2.2:", type=("build", "run")) depends_on("python@3.7:", when="@2.1:", type=("build", "run")) depends_on("python@3.6:", when="@2:", type=("build", "run")) depends_on("python@2.7:2.8,3.4:", type=("build", "run")) - depends_on("py-setuptools", type="build") + depends_on("py-flit-core@:3", when="@2.2:", type="build") + + # Historical dependencies + depends_on("py-setuptools", when="@:2.1", type="build") diff --git a/repos/spack_repo/builtin/packages/py_jaconv/package.py b/repos/spack_repo/builtin/packages/py_jaconv/package.py index ba838899f9a..36fd83f9de9 100644 --- a/repos/spack_repo/builtin/packages/py_jaconv/package.py +++ b/repos/spack_repo/builtin/packages/py_jaconv/package.py @@ -17,6 +17,7 @@ class PyJaconv(PythonPackage): license("MIT") + version("0.5.0", sha256="53f6f968276846716f0f37100a6d5c7308cfa1e0c714eb41287d5bb09345c40f") version("0.3", sha256="cc70c796c19a6765598c03eac59d1399a555a9a8839cc70e540ec26f0ec3e66e") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_jaraco_classes/package.py b/repos/spack_repo/builtin/packages/py_jaraco_classes/package.py index aeae225bda6..ec9e484efb1 100644 --- a/repos/spack_repo/builtin/packages/py_jaraco_classes/package.py +++ b/repos/spack_repo/builtin/packages/py_jaraco_classes/package.py @@ -15,9 +15,12 @@ class PyJaracoClasses(PythonPackage): license("MIT") + version("3.4.0", sha256="47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd") version("3.2.3", sha256="89559fa5c1d3c34eff6f631ad80bb21f378dbcbb35dd161fd2c6b93f5be2f98a") version("3.2.2", sha256="6745f113b0b588239ceb49532aa09c3ebb947433ce311ef2f8e3ad64ebb74594") + depends_on("python@3.8:", type=("build", "run"), when="@3.3:") + depends_on("python@3.7:", type=("build", "run")) depends_on("py-setuptools@56:", type="build") depends_on("py-setuptools-scm@3.4.1: +toml", type="build") diff --git a/repos/spack_repo/builtin/packages/py_jaraco_context/package.py b/repos/spack_repo/builtin/packages/py_jaraco_context/package.py new file mode 100644 index 00000000000..0596dfe9992 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_jaraco_context/package.py @@ -0,0 +1,31 @@ +# 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 PyJaracoContext(PythonPackage): + """Useful decorators and context managers.""" + + homepage = "https://github.com/jaraco/jaraco.context" + pypi = "jaraco_context/jaraco_context-6.0.1.tar.gz" + + license("MIT") + + version("6.1.2", sha256="f1a6c9d391e661cc5b8d39861ff077a7dc24dc23833ccee564b234b81c82dfe3") + version("6.0.1", sha256="9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3") + + with default_args(type="build"): + depends_on("py-setuptools@77:", when="@6.0.2:") + depends_on("py-setuptools@61.2:") + depends_on("py-setuptools-scm+toml@3.4.1:") + depends_on("py-coherent-licensed", when="@6.0.2:") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@6.1.2:") + depends_on("python@3.8:") + + depends_on("py-backports-tarfile", when="^python@:3.11") diff --git a/repos/spack_repo/builtin/packages/py_jaraco_functools/package.py b/repos/spack_repo/builtin/packages/py_jaraco_functools/package.py index dab38098285..97927735dfe 100644 --- a/repos/spack_repo/builtin/packages/py_jaraco_functools/package.py +++ b/repos/spack_repo/builtin/packages/py_jaraco_functools/package.py @@ -11,13 +11,23 @@ class PyJaracoFunctools(PythonPackage): """Functools like those found in stdlib""" homepage = "https://github.com/jaraco/jaraco.functools" - pypi = "jaraco.functools/jaraco.functools-2.0.tar.gz" + pypi = "jaraco.functools/jaraco_functools-4.1.0.tar.gz" license("MIT") + version("4.1.0", sha256="70f7e0e2ae076498e212562325e805204fc092d7b4c17e0e86c959e249701a9d") version("2.0", sha256="35ba944f52b1a7beee8843a5aa6752d1d5b79893eeb7770ea98be6b637bf9345") + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/j/jaraco.functools/{0}-{1}.tar.gz" + if version >= Version("4"): + prefix = "jaraco_functools" + else: + prefix = "jaraco.functools" + return url.format(prefix, version) + depends_on("py-setuptools", type="build") depends_on("py-setuptools-scm@1.15.0:", type="build") depends_on("py-more-itertools", type=("build", "run")) depends_on("python@2.7:", type=("build", "run")) + depends_on("python@3.8:", when="@4:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_jax/package.py b/repos/spack_repo/builtin/packages/py_jax/package.py index 172fc0f8d4d..6076d43b631 100644 --- a/repos/spack_repo/builtin/packages/py_jax/package.py +++ b/repos/spack_repo/builtin/packages/py_jax/package.py @@ -23,6 +23,18 @@ class PyJax(PythonPackage): tags = ["e4s"] + version("0.10.1", sha256="11672410faf8752429eb9a131de203dc488a2a3a012d509baa2b39878008810d") + version("0.10.0", sha256="0119c767de1645f407df72345d28a3837dc904f1d698911c121d8f2b396fdece") + version("0.9.2", sha256="42b28017b3e6b57a44b0274cc15f5153239c4873959030399ac1afc009c22365") + version("0.9.1", sha256="ce1b82477ee192f0b1d9801b095aa0cf3839bc1fe0cbc071c961a24b3ff30361") + version("0.9.0", sha256="e5ce9d6991333aeaad37729dd8315d29c4b094ea9476a32fb49933b556c723fb") + version("0.8.3", sha256="cf0569abe750f08a7c06421134576ca292851ab763f16edba719b35269c0ff5e") + version("0.8.2", sha256="1a685ded06a8223a7b52e45e668e406049dbbead02873f2b5a4d881ba7b421ae") + version("0.8.1", sha256="e53f67b15315f5e154851a7fd77a192b59c6c75b3f7ac56e214296765391cca7") + version("0.8.0", sha256="0ea5a7be7068c25934450dfd87d7d80a18a5d30e0a53454e7aade525b23accd5") + version("0.7.2", sha256="71a42b964bc6d52e819311429e6c0f5742e2a4650226dab1a1dd26fd986ca70d") + version("0.7.1", sha256="118f56338c503361d2791f069d24339d8d44a8db442ed851d2e591222fb7a56d") + version("0.7.0", sha256="4dd8924f171ed73a4f1a6191e2f800ae1745069989b69fabc45593d6b6504003") version("0.6.2", sha256="a437d29038cbc8300334119692744704ca7941490867b9665406b7f90665cd96") version("0.6.1", sha256="c4dcb93e1d34f80cf7adfa81f3fdab62a5068b69107b7a6117f8742ab37b6779") version("0.6.0", sha256="abc690c530349ce470eeef92e09a7bd8a0460424b4980bc72feea45332a636bf") @@ -71,6 +83,7 @@ class PyJax(PythonPackage): with default_args(type=("build", "run")): # setup.py + depends_on("python@3.11:", when="@0.7:") depends_on("python@3.10:", when="@0.4.31:") depends_on("python@3.9:", when="@0.4.14:") depends_on("py-ml-dtypes@0.5:", when="@0.6:") @@ -78,6 +91,7 @@ class PyJax(PythonPackage): depends_on("py-ml-dtypes@0.2:", when="@0.4.14:") depends_on("py-ml-dtypes@0.1:", when="@0.4.9:") depends_on("py-ml-dtypes@0.0.3:", when="@0.4.7:") + depends_on("py-numpy@2:", when="@0.7.2:") depends_on("py-numpy@1.26:", when="@0.6.2:") depends_on("py-numpy@1.25:", when="@0.5:") depends_on("py-numpy@1.24:", when="@0.4.31:") @@ -87,6 +101,8 @@ class PyJax(PythonPackage): # https://github.com/google/jax/issues/19246 depends_on("py-numpy@:1", when="@:0.4.25") depends_on("py-opt-einsum") + depends_on("py-scipy@1.14:", when="@0.10:") + depends_on("py-scipy@1.13:", when="@0.7.2:") depends_on("py-scipy@1.12:", when="@0.6.2:") depends_on("py-scipy@1.11.1:", when="@0.5:") depends_on("py-scipy@1.10:", when="@0.4.31:") @@ -97,6 +113,18 @@ class PyJax(PythonPackage): # jax/_src/lib/__init__.py # https://github.com/google/jax/commit/8be057de1f50756fe7522f7e98b2f30fad56f7e4 for v in [ + "0.10.1", + "0.10.0", + "0.9.2", + "0.9.1", + "0.9.0", + "0.8.3", + "0.8.2", + "0.8.1", + "0.8.0", + "0.7.2", + "0.7.1", + "0.7.0", "0.6.2", "0.6.1", "0.6.0", @@ -144,12 +172,23 @@ class PyJax(PythonPackage): depends_on(f"py-jaxlib@:{v}", when=f"@{v}") # See _minimum_jaxlib_version in jax/version.py + depends_on("py-jaxlib@0.10.1:", when="@0.10.1:") + depends_on("py-jaxlib@0.10.0:", when="@0.10.0:") + depends_on("py-jaxlib@0.9.2:", when="@0.9.2:") + depends_on("py-jaxlib@0.9.1:", when="@0.9.1:") + depends_on("py-jaxlib@0.9.0:", when="@0.9.0:") + depends_on("py-jaxlib@0.8.2:", when="@0.8.2:") + depends_on("py-jaxlib@0.8.1:", when="@0.8.1:") + depends_on("py-jaxlib@0.8.0:", when="@0.8.0:") + depends_on("py-jaxlib@0.7.2:", when="@0.7.2:") + depends_on("py-jaxlib@0.7.1:", when="@0.7.1:") + depends_on("py-jaxlib@0.7.0:", when="@0.7.0:") depends_on("py-jaxlib@0.6.2:", when="@0.6.2:") depends_on("py-jaxlib@0.6.1:", when="@0.6.1:") - depends_on("py-jaxlib@0.6:", when="@0.6:") + depends_on("py-jaxlib@0.6.0:", when="@0.6.0:") depends_on("py-jaxlib@0.5.3:", when="@0.5.3:") depends_on("py-jaxlib@0.5.1:", when="@0.5.1:") - depends_on("py-jaxlib@0.5:", when="@0.5:") + depends_on("py-jaxlib@0.5.0:", when="@0.5.0:") depends_on("py-jaxlib@0.4.38:", when="@0.4.38:") depends_on("py-jaxlib@0.4.36:", when="@0.4.36:") depends_on("py-jaxlib@0.4.35:", when="@0.4.35:") diff --git a/repos/spack_repo/builtin/packages/py_jaxlib/package.py b/repos/spack_repo/builtin/packages/py_jaxlib/package.py index 1fdfb15dbfa..2155c33775f 100644 --- a/repos/spack_repo/builtin/packages/py_jaxlib/package.py +++ b/repos/spack_repo/builtin/packages/py_jaxlib/package.py @@ -49,6 +49,18 @@ class PyJaxlib(PythonPackage, CudaPackage, ROCmPackage): license("Apache-2.0") maintainers("adamjstewart", "jonas-eschle") + version("0.10.1", sha256="15983d01b0c858738b16b19b773459d22449992ce1ee97688cc532ea0047de9e") + version("0.10.0", sha256="12ae17617d1346e2f98cfc48c1a000adc7389784eb119e8108a22dfd57cbb8c3") + version("0.9.2", sha256="9e67faaa74be4539e397fe61317568545f9ea325ddf1f7f534929d508786f29e") + version("0.9.1", sha256="1bdae0c3311165437461e9afe05b76de2adb9ce86b557b4bd270b0ec411ff27d") + version("0.9.0", sha256="8525c72ac7ea01851297df5b25ca4622c65299c265c87dfe78420bb29e7b1bb3") + version("0.8.3", sha256="fad6506b91b761842263dc6a9691ecc4f584b313a214ed6c89b6e5d899a69a3d") + version("0.8.2", sha256="f7e5080c97c1aaffb490a17d174cb59a83dd037800d9c41d309287bebd15b0b8") + version("0.8.1", sha256="38882602112dadfd49a2c74868a0722574ae88e04646a96f32f8c36a7893c548") + version("0.8.0", sha256="864aa46b5a4475c70195bd3728d32224f5b5ae1c7dd9c70646ef1387b4b0b04b") + version("0.7.2", sha256="56d92604f1bb60bb3dbd7dc7c7dc21502d10b3474b8b905ce29ce06db6a26e45") + version("0.7.1", sha256="8b866b775106c712a0c5532775a00941d293a4807cffae8dbcca1e03f54ce1ff") + version("0.7.0", sha256="518966801e4402667e77915c2dc7cf1a178a80e22ff253204a837f207a87fcde") version("0.6.2", sha256="d46cb98795f2c1ccdf2b081e02d9d74b659063679a80beb001ad17d482a60e17") version("0.6.1", sha256="af179a4047d473059beebc4b9d09763e80d8f7dcf4ae75670bc3dd912c92d6f5") version("0.6.0", sha256="07ec7a19c3a27c4cca88288f9e9477a62cd0b54bd43c4a77f497505ddadc72ed") @@ -86,15 +98,13 @@ class PyJaxlib(PythonPackage, CudaPackage, ROCmPackage): variant("cuda", default=True, description="Build with CUDA enabled") variant("nccl", default=True, description="Build with NCCL enabled", when="+cuda") - depends_on("c", type="build") - depends_on("cxx", type="build") - # docs/installation.md (Compatible with) with when("+cuda"): depends_on("cuda@12.1:", when="@0.4.26:") depends_on("cuda@11.8:", when="@0.4.11:") depends_on("cuda@11.4:", when="@0.4.0:0.4.7") - depends_on("cudnn@9.1:9", when="@0.4.31:") + depends_on("cudnn@9.8:9", when="@0.7.1:") + depends_on("cudnn@9.1:9", when="@0.4.31:0.7.0") depends_on("cudnn@9", when="@0.4.29:0.4.30") depends_on("cudnn@8.9:8", when="@0.4.26:0.4.28") depends_on("cudnn@8.8:8", when="@0.4.11:0.4.25") @@ -109,19 +119,26 @@ class PyJaxlib(PythonPackage, CudaPackage, ROCmPackage): for pkg_dep in rocm_dependencies: depends_on(f"{pkg_dep}@6:", when="@0.4.28:") depends_on(f"{pkg_dep}@6.3:", when="@0.6:") + depends_on(f"{pkg_dep}@:6", when="@:0.7") depends_on(pkg_dep) depends_on("rocprofiler-register", when="^hip@6.2:") depends_on("hipblas-common", when="^hip@6.3:") depends_on("hsakmt-roct", when="^hip@:6.2") depends_on("llvm-amdgpu") + depends_on("rocprofiler-sdk", when="@0.8.1:") depends_on("py-nanobind") with default_args(type="build"): + depends_on("c") + depends_on("cxx") + + # Bazel tends to be backwards-compatible within major versions # .bazelversion - depends_on("bazel@7.4.1", when="@0.5.3:") - depends_on("bazel@6.5.0", when="@0.4.28:0.5.2") - depends_on("bazel@6.1.2", when="@0.4.11:0.4.27") - depends_on("bazel@5.1.1", when="@0.3.7:0.4.10") + depends_on("bazel@7.7.0:7", when="@0.8.1:") + depends_on("bazel@7.4.1:7", when="@0.5.3:0.8.0") + depends_on("bazel@6.5.0:6", when="@0.4.28:0.5.2") + depends_on("bazel@6.1.2:6", when="@0.4.11:0.4.27") + depends_on("bazel@5.1.1:5", when="@0.3.7:0.4.10") # jaxlib/setup.py depends_on("py-setuptools") @@ -129,23 +146,31 @@ class PyJaxlib(PythonPackage, CudaPackage, ROCmPackage): # build/build.py depends_on("py-build", when="@0.4.14:") + # XLA requires xxd? + depends_on("xxd-standalone", when="@0.9:") + with default_args(type=("build", "run")): # Based on PyPI wheels + depends_on("python@3.11:", when="@0.7:") depends_on("python@3.10:", when="@0.4.31:") depends_on("python@3.9:", when="@0.4.14:") depends_on("python@3.8:", when="@0.4.6:") - depends_on("python@:3.13") - depends_on("python@:3.12", when="+rocm") + depends_on("python@:3.14") + depends_on("python@:3.13", when="@:0.7.0") depends_on("python@:3.12", when="@:0.4.33") depends_on("python@:3.11", when="@:0.4.16") + depends_on("python@:3.12", when="+rocm") # jaxlib/setup.py + depends_on("py-scipy@1.14:", when="@0.10:") + depends_on("py-scipy@1.13:", when="@0.7.2:") depends_on("py-scipy@1.12:", when="@0.6.2:") depends_on("py-scipy@1.11.1:", when="@0.5:") depends_on("py-scipy@1.10:", when="@0.4.31:") depends_on("py-scipy@1.9:", when="@0.4.19:") depends_on("py-scipy@1.7:", when="@0.4.7:") depends_on("py-scipy@1.5:") + depends_on("py-numpy@2:", when="@0.7.2:") depends_on("py-numpy@1.26:", when="@0.6.2:") depends_on("py-numpy@1.25:", when="@0.5:") depends_on("py-numpy@1.24:", when="@0.4.31:") @@ -160,6 +185,16 @@ class PyJaxlib(PythonPackage, CudaPackage, ROCmPackage): depends_on("py-ml-dtypes@0.1:", when="@0.4.9:") depends_on("py-ml-dtypes@0.0.3:", when="@0.4.7:") + patch( + "https://github.com/jax-ml/jax/commit/0899e024c68254ec520006f51511f9a5e696dc17.patch?full_index=1", + sha256="c2509251a8708baf55e56c54fffc1725925720ff2365a0a186764f5dc50e611b", + when="@0.8.1:0.8", + ) + patch( + "https://github.com/jax-ml/jax/commit/a24ae9e9d5380d074058fb862043182327f4547f.patch?full_index=1", + sha256="2455043e7a412f5c661dfa6a55f145addbe6b0ad53f385a72caee59a4bd1ef72", + when="@0.7.0", + ) patch( "https://github.com/jax-ml/jax/commit/f62af6457a6cc575a7b1ada08d541f0dd0eb5765.patch?full_index=1", sha256="d3b7ea2cfeba927e40a11f07e4cbf80939f7fe69448c9eb55231a93bd64e5c02", @@ -180,6 +215,13 @@ class PyJaxlib(PythonPackage, CudaPackage, ROCmPackage): # backports https://github.com/abseil/abseil-cpp/pull/1732 patch("jaxxlatsl.patch", when="@0.4.28:0.4.32 target=aarch64:") + with when("@0.7.1:"): + with default_args(msg="Clang is the only acceptable compiler."): + requires("%c,cxx=llvm", when="platform=linux") + # Order here is important. Place the most common compiler first so that the + # concretizer will not try to use v0.7.0 to avoid taking a penalty on requirements + requires("%c,cxx=apple-clang", "%c,cxx=llvm", when="platform=darwin") + conflicts( "cuda_arch=none", when="+cuda", @@ -224,11 +266,23 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: rocm_dependencies.append("hipblas-common") else: rocm_dependencies.append("hsakmt-roct") + if spec.satisfies("@0.8.1:"): + rocm_dependencies.append("rocprofiler-sdk") env.set("LLVM_PATH", spec["llvm-amdgpu"].prefix) for pkg_dep in rocm_dependencies: env.prepend_path("TF_ROCM_MULTIPLE_PATHS", spec[pkg_dep].prefix) env.prune_duplicate_paths("TF_ROCM_MULTIPLE_PATHS") + def setup_run_environment(self, env: EnvironmentModifications) -> None: + if "+cuda" in self.spec: + libs = find_libraries( + "libcupti", root=self.spec["cuda"].prefix, shared=True, recursive=True + ) + for libdir in libs.directories: + env.append_path("LD_LIBRARY_PATH", libdir) + + env.set("XLA_FLAGS", f"--xla_gpu_cuda_data_dir={self.spec['cuda'].prefix}") + def install(self, spec, prefix): # https://jax.readthedocs.io/en/latest/developer.html args = ["build/build.py"] @@ -243,8 +297,10 @@ def install(self, spec, prefix): else: args.append("--wheels=jaxlib") - if spec.satisfies("@0.4.32:"): - if spec.satisfies("%c,cxx=clang"): + if spec.satisfies("@0.7.1:"): + args.append(f"--clang_path={spack_cc}") + elif spec.satisfies("@0.4.32:0.7.0"): + if spec.satisfies("%c,cxx=llvm") or spec.satisfies("%c,cxx=apple-clang"): args.append("--use_clang=true") else: args.append("--use_clang=false") @@ -282,6 +338,8 @@ def install(self, spec, prefix): args.append( f"--bazel_options=--override_repository=xla={self.stage.source_path}/xla" ) + amdgpu_targets = ",".join(self.spec.variants["amdgpu_target"].value) + args.append(f"--rocm_amdgpu_target={amdgpu_targets}") args.extend( [ diff --git a/repos/spack_repo/builtin/packages/py_jcb/package.py b/repos/spack_repo/builtin/packages/py_jcb/package.py index 35f35deabd1..ea59562bca7 100644 --- a/repos/spack_repo/builtin/packages/py_jcb/package.py +++ b/repos/spack_repo/builtin/packages/py_jcb/package.py @@ -36,5 +36,5 @@ def check(self): env["PYTHONPATH"] = ":".join( (join_path(self.build_directory, "build/lib"), env["PYTHONPATH"]) ) - pytest = which(join_path(self.spec["py-pytest"].prefix.bin, "pytest")) + pytest = which(join_path(self.spec["py-pytest"].prefix.bin, "pytest"), required=True) pytest("-v", self.build_directory) diff --git a/repos/spack_repo/builtin/packages/py_jdcal/package.py b/repos/spack_repo/builtin/packages/py_jdcal/package.py index 53153c2dd97..7bc80d9b513 100644 --- a/repos/spack_repo/builtin/packages/py_jdcal/package.py +++ b/repos/spack_repo/builtin/packages/py_jdcal/package.py @@ -15,6 +15,7 @@ class PyJdcal(PythonPackage): license("BSD-2-Clause") + version("1.4.1", sha256="472872e096eb8df219c23f2689fc336668bdb43d194094b5cc1707e1640acfc8") version("1.3", sha256="b760160f8dc8cc51d17875c6b663fafe64be699e10ce34b6a95184b5aa0fdc9e") version("1.2", sha256="5ebedb58b95ebabd30f56abef65139c6f69ec1687cf1d2f3a7c503f9a2cdfa4d") diff --git a/repos/spack_repo/builtin/packages/py_jedi/package.py b/repos/spack_repo/builtin/packages/py_jedi/package.py index 60d9c01d9cb..b1e7be5c3e6 100644 --- a/repos/spack_repo/builtin/packages/py_jedi/package.py +++ b/repos/spack_repo/builtin/packages/py_jedi/package.py @@ -17,101 +17,25 @@ class PyJedi(PythonPackage): license("MIT") + version("0.20.0", sha256="c3f4ccbd276696f4b19c54618d4fb18f9fc24b0aef02acf704b23f487daa1011") version("0.19.2", sha256="4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0") version("0.18.2", sha256="bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612") version("0.18.1", sha256="74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab") version("0.18.0", sha256="92550a404bad8afed881a137ec9a461fed49eca661414be45059329614ed0707") version("0.17.2", sha256="86ed7d9b750603e4ba582ea8edc678657fb4007894a12bcf6f4bb97892f31d20") version("0.17.1", sha256="807d5d4f96711a2bcfdd5dfa3b1ae6d09aa53832b182090b222b5efb81f52f63") - version( - "0.15.1", - sha256="ba859c74fa3c966a22f2aeebe1b74ee27e2a462f56d3f5f7ca4a59af61bfe42e", - deprecated=True, - ) - version( - "0.15.0", - sha256="9f16cb00b2aee940df2efc1d7d7c848281fd16391536a3d4561f5aea49db1ee6", - deprecated=True, - ) - version( - "0.14.1", - sha256="53c850f1a7d3cfcd306cc513e2450a54bdf5cacd7604b74e42dd1f0758eaaf36", - deprecated=True, - ) - version( - "0.14.0", - sha256="49ccb782651bb6f7009810d17a3316f8867dde31654c750506970742e18b553d", - deprecated=True, - ) - version( - "0.13.3", - sha256="2bb0603e3506f708e792c7f4ad8fc2a7a9d9c2d292a358fbbd58da531695595b", - deprecated=True, - ) - version( - "0.13.2", - sha256="571702b5bd167911fe9036e5039ba67f820d6502832285cde8c881ab2b2149fd", - deprecated=True, - ) - version( - "0.13.1", - sha256="b7493f73a2febe0dc33d51c99b474547f7f6c0b2c8fb2b21f453eef204c12148", - deprecated=True, - ) - version( - "0.13.0", - sha256="e4db7a2e08980e48c6aec6588483629c81fdcf9b6d9e6a372b40ed7fec91f310", - deprecated=True, - ) - version( - "0.12.1", - sha256="b409ed0f6913a701ed474a614a3bb46e6953639033e31f769ca7581da5bd1ec1", - deprecated=True, - ) - version( - "0.12.0", - sha256="1972f694c6bc66a2fac8718299e2ab73011d653a6d8059790c3476d2353b99ad", - deprecated=True, - ) - version( - "0.10.2", - sha256="7abb618cac6470ebbd142e59c23daec5e6e063bfcecc8a43a037d2ab57276f4e", - deprecated=True, - ) - version( - "0.10.1", - sha256="2420daf6fd00e80caf1bc22903598b5bf5560c900113dcc120eaefc7b4d50e06", - deprecated=True, - ) - # unfortunately pypi.io only offers a .whl for 0.10.0 - version( - "0.10.0", - sha256="d6a7344df9c80562c3f62199278004ccc7c5889be9f1a6aa5abde117ec085123", - url="https://github.com/davidhalter/jedi/archive/v0.10.0.tar.gz", - deprecated=True, - ) - version( - "0.9.0", - sha256="3b4c19fba31bdead9ab7350fb9fa7c914c59b0a807dcdd5c00a05feb85491d31", - deprecated=True, - ) with default_args(type=("build", "run")): - depends_on("python@3.5:", when="@0.17.1:") - depends_on("python@3.6:", when="@0.18.1:") - depends_on("python@:3.9", when="@:0.17.1") depends_on("python@:3.10", when="@:0.18.1") depends_on("python@:3.11", when="@:0.19.0") depends_on("python@:3.12", when="@:0.19.1") - depends_on("python@:3.13", when="@0.19.2:") + depends_on("python@:3.13", when="@:0.19.2") + depends_on("python@:3.14", when="@0.20:") depends_on("py-setuptools") - depends_on("py-parso@0.2.0:", when="@0.12.0") - depends_on("py-parso@0.3.0:", when="@0.12.1:0.14.0") - depends_on("py-parso@0.5.0:", when="@0.14.1:0.15.1") - depends_on("py-parso@0.5.2:", when="@0.15.2:0.16") depends_on("py-parso@0.7", when="@0.17") depends_on("py-parso@0.8", when="@0.18.0:") depends_on("py-parso@0.8.4:0.8", when="@0.19.2:") + depends_on("py-parso@0.8.6:0.8", when="@0.20:") diff --git a/repos/spack_repo/builtin/packages/py_jeepney/package.py b/repos/spack_repo/builtin/packages/py_jeepney/package.py index 9008bba8fdd..6847bc0c578 100644 --- a/repos/spack_repo/builtin/packages/py_jeepney/package.py +++ b/repos/spack_repo/builtin/packages/py_jeepney/package.py @@ -16,6 +16,7 @@ class PyJeepney(PythonPackage): license("MIT") + version("0.9.0", sha256="cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732") version("0.8.0", sha256="5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806") version("0.7.1", sha256="fa9e232dfa0c498bd0b8a3a73b8d8a31978304dcef0515adc859d4e096f96f4f") version("0.6.0", sha256="7d59b6622675ca9e993a6bd38de845051d315f8b0c72cca3aef733a20b648657") @@ -24,4 +25,5 @@ class PyJeepney(PythonPackage): depends_on("python@3.7:", when="@0.8:", type=("build", "run")) depends_on("python@3.6:", when="@0.5:", type=("build", "run")) depends_on("python@3.5:", when="@:0.4", type=("build", "run")) + depends_on("py-flit-core@3.11:3", when="@0.9:", type="build") depends_on("py-flit-core@2:3", type="build") diff --git a/repos/spack_repo/builtin/packages/py_jinja2/package.py b/repos/spack_repo/builtin/packages/py_jinja2/package.py index 2f819b163f8..17546165410 100644 --- a/repos/spack_repo/builtin/packages/py_jinja2/package.py +++ b/repos/spack_repo/builtin/packages/py_jinja2/package.py @@ -18,6 +18,7 @@ class PyJinja2(PythonPackage): license("BSD-3-Clause") + version("3.1.6", sha256="0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d") version("3.1.4", sha256="4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369") version("3.1.2", sha256="31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852") version("3.0.3", sha256="611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7") 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_jmespath/package.py b/repos/spack_repo/builtin/packages/py_jmespath/package.py index 675b69e7808..4981fcbcecf 100644 --- a/repos/spack_repo/builtin/packages/py_jmespath/package.py +++ b/repos/spack_repo/builtin/packages/py_jmespath/package.py @@ -15,9 +15,13 @@ class PyJmespath(PythonPackage): license("MIT") + version("1.1.0", sha256="472c87d80f36026ae83c6ddd0f1d05d4e510134ed462851fd5f754c8c3cbb88d") version("1.0.1", sha256="90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe") version("0.10.0", sha256="b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9") version("0.9.4", sha256="bde2aef6f44302dfb30320115b17d030798de8c4110e28d5cf6cf91a7a31074c") depends_on("py-setuptools", type="build") - depends_on("python@3.7:", type=("build", "run"), when="@1.0.0:") + + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@1.1:") + depends_on("python@3.7:", when="@1:") diff --git a/repos/spack_repo/builtin/packages/py_joblib/package.py b/repos/spack_repo/builtin/packages/py_joblib/package.py index 6943deb81ff..a44fe656896 100644 --- a/repos/spack_repo/builtin/packages/py_joblib/package.py +++ b/repos/spack_repo/builtin/packages/py_joblib/package.py @@ -20,6 +20,8 @@ class PyJoblib(PythonPackage): license("BSD-3-Clause") + version("1.5.3", sha256="8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3") + version("1.5.2", sha256="3faa5c39054b2f03ca547da9b2f52fde67c06240c31853f306aea97f13647b55") version("1.4.2", sha256="2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e") version("1.2.0", sha256="e1cee4a79e4af22881164f218d4311f60074197fb707e082e803b61f6d137018") version("1.1.0", sha256="4158fcecd13733f8be669be0683b96ebdbbd38d23559f54dca7205aea1bf1e35") @@ -38,9 +40,14 @@ class PyJoblib(PythonPackage): version("0.10.0", sha256="49b3a0ba956eaa2f077e1ebd230b3c8d7b98afc67520207ada20a4d8b8efd071") with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@1.5:") + depends_on("python@3.8:", when="@1.4:") + depends_on("python@3.7:", when="@1.2:") + depends_on("python@3.6:", when="@0.15:") # https://github.com/joblib/joblib/pull/1361 depends_on("python@:3.11", when="@:1.2") with default_args(type="build"): + depends_on("py-setuptools@77.0.3:", when="@1.5.3:") depends_on("py-setuptools@61.2:", when="@1.4:") depends_on("py-setuptools") diff --git a/repos/spack_repo/builtin/packages/py_jplephem/package.py b/repos/spack_repo/builtin/packages/py_jplephem/package.py index 13e8d145614..4f8cce55f45 100644 --- a/repos/spack_repo/builtin/packages/py_jplephem/package.py +++ b/repos/spack_repo/builtin/packages/py_jplephem/package.py @@ -16,6 +16,8 @@ class PyJplephem(PythonPackage): license("MIT") + version("2.24", sha256="354fe1adae022264ab46f18afb6af26211277cfd7b3ef90400755fcabe93bc11") + version("2.17", sha256="e1c6e5565c4d00485f1063241b4d1eff044585c22b8e97fad0ff2f6efb8aaa27") version("2.9", sha256="9dffb9f3d3f6d996ade875102431fe385e8ea422da25c8ba17b0508d9ca1282b") # pip silently replaces distutils with setuptools diff --git a/repos/spack_repo/builtin/packages/py_json5/package.py b/repos/spack_repo/builtin/packages/py_json5/package.py index 4f655af1cc9..2344977ae69 100644 --- a/repos/spack_repo/builtin/packages/py_json5/package.py +++ b/repos/spack_repo/builtin/packages/py_json5/package.py @@ -17,9 +17,13 @@ class PyJson5(PythonPackage): license("Apache-2.0") + version("0.14.0", sha256="b3f492fad9f6cdbced8b7d40b28b9b1c9701c5f561bef0d33b81c2ff433fefcb") + version("0.12.1", sha256="b2743e77b3242f8d03c143dd975a6ec7c52e2f2afe76ed934e53503dd4ad4990") version("0.9.14", sha256="9ed66c3a6ca3510a976a9ef9b8c0787de24802724ab1860bc0153c7fdd589b02") version("0.9.10", sha256="ad9f048c5b5a4c3802524474ce40a622fae789860a86f10cc4f7e5f9cf9b46ab") version("0.9.6", sha256="9175ad1bc248e22bb8d95a8e8d765958bf0008fef2fe8abab5bc04e0f1ac8302") version("0.9.4", sha256="2ebfad1cd502dca6aecab5b5c36a21c732c3461ddbc412fb0e9a52b07ddfe586") + depends_on("python@3.8:", type=("build", "run"), when="@0.9.16:") + depends_on("py-setuptools@61:", type="build", when="@0.9.17:") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_json_tricks/package.py b/repos/spack_repo/builtin/packages/py_json_tricks/package.py new file mode 100644 index 00000000000..1ab49e8e8db --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_json_tricks/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 PyJsonTricks(PythonPackage): + """Extra features for Python's JSON: comments, order, numpy, pandas, + datetimes, and many more! Simple but customizable.""" + + homepage = "https://github.com/mverleg/pyjson_tricks" + pypi = "json_tricks/json_tricks-3.17.3.tar.gz" + + license("BSD-3-Clause") + + version("3.17.3", sha256="71561eedad7c22dde019e9a38ff8c46ebd91da789e31e2513f627dd2cbbdbf56") + + depends_on("py-setuptools", type="build") 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_jsonpath_ng/package.py b/repos/spack_repo/builtin/packages/py_jsonpath_ng/package.py index 803c3bfdedb..17764983d00 100644 --- a/repos/spack_repo/builtin/packages/py_jsonpath_ng/package.py +++ b/repos/spack_repo/builtin/packages/py_jsonpath_ng/package.py @@ -18,6 +18,7 @@ class PyJsonpathNg(PythonPackage): license("Apache-2.0") + version("1.7.0", sha256="f6f5f7fd4e5ff79c785f1573b394043b39849fb2bb47bcead935d12b00beab3c") version("1.6.0", sha256="5483f8e9d74c39c9abfab554c070ae783c1c8cbadf5df60d561bc705ac68a07e") version("1.5.3", sha256="a273b182a82c1256daab86a313b937059261b5c5f8c4fa3fc38b882b344dd567") version("1.5.2", sha256="144d91379be14d9019f51973bd647719c877bfc07dc6f3f5068895765950c69d") diff --git a/repos/spack_repo/builtin/packages/py_jsonpointer/package.py b/repos/spack_repo/builtin/packages/py_jsonpointer/package.py index e42441975fa..04764ad7e38 100644 --- a/repos/spack_repo/builtin/packages/py_jsonpointer/package.py +++ b/repos/spack_repo/builtin/packages/py_jsonpointer/package.py @@ -15,7 +15,9 @@ class PyJsonpointer(PythonPackage): license("BSD-3-Clause") + version("3.0.0", sha256="2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef") version("2.0", sha256="c192ba86648e05fdae4f08a17ec25180a9aef5008d973407b581798a83975362") version("1.9", sha256="39403b47a71aa782de6d80db3b78f8a5f68ad8dfc9e674ca3bb5b32c15ec7308") + depends_on("python@3.7:", type="build", when="@3:") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_jsonschema/package.py b/repos/spack_repo/builtin/packages/py_jsonschema/package.py index 2e638c7089f..070bcecadf2 100644 --- a/repos/spack_repo/builtin/packages/py_jsonschema/package.py +++ b/repos/spack_repo/builtin/packages/py_jsonschema/package.py @@ -15,6 +15,8 @@ class PyJsonschema(PythonPackage): license("MIT", checked_by="wdconinc") + version("4.26.0", sha256="0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326") + version("4.25.1", sha256="e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85") version("4.23.0", sha256="d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4") version("4.22.0", sha256="5b22d434a45935119af990552c862e5d6d564e8f6601206b305a61fdf661a2b7") version("4.21.1", sha256="85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5") @@ -40,42 +42,50 @@ class PyJsonschema(PythonPackage): description="Enable format-nongpl functionality", ) - depends_on("python@3.8:", when="@4.18:", type="build") + with default_args(type="build"): + depends_on("py-hatchling", when="@4.10:") + depends_on("py-hatch-vcs", when="@4.10:") + depends_on("py-hatch-fancy-pypi-readme", when="@4.11:") - depends_on("py-hatchling", when="@4.10:", type="build") - depends_on("py-hatch-vcs", when="@4.10:", type="build") - depends_on("py-hatch-fancy-pypi-readme", when="@4.11:", type="build") + # Historical dependencies + depends_on("py-setuptools@40.6.0:", when="@4:4.4") + depends_on("py-setuptools", when="@:2") + depends_on("py-setuptools-scm+toml@3.4:", when="@4.4.0") + depends_on("py-setuptools-scm", when="@3") - depends_on("py-attrs@17.4:", when="@3:", type=("build", "run")) - depends_on("py-attrs@22.2:", when="@4.18:", type=("build", "run")) - depends_on("py-jsonschema-specifications@2023.03.6:", when="@4.18:", type=("build", "run")) - depends_on("py-referencing@0.28.4:", when="@4.18:", type=("build", "run")) - depends_on("py-rpds-py@0.7.1:", when="@4.18:", type=("build", "run")) - depends_on("py-importlib-resources@1.4:", when="@4.2.1: ^python@:3.8", type=("build", "run")) - depends_on("py-importlib-resources", when="@4.2.0 ^python@:3.8", type=("build", "run")) - depends_on("py-pkgutil-resolve-name@1.3.10:", when="@4.10.0: ^python@:3.8") + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@4.26:") + depends_on("python@3.9:", when="@4.24:") + depends_on("python@3.8:", when="@4.18:") - # Historical dependencies - depends_on("py-setuptools@40.6.0:", when="@4:4.4", type="build") - depends_on("py-setuptools", when="@3", type=("build", "run")) - depends_on("py-setuptools", when="@:2", type="build") - depends_on("py-vcversioner", when="@:2", type="build") - depends_on("py-setuptools-scm+toml@3.4:", when="@4.4.0", type="build") - depends_on("py-setuptools-scm", when="@3", type="build") - depends_on("py-six@1.11:", when="@3", type=("build", "run")) - depends_on("py-pyrsistent@0.14:", when="@3:4.17", type=("build", "run")) - depends_on("py-importlib-metadata", when="@3.1.1:4.17 ^python@:3.7", type=("build", "run")) - depends_on("py-typing-extensions", when="@4.3:4.17 ^python@:3.7", type=("build", "run")) + depends_on("py-attrs@22.2:", when="@4.18:") + depends_on("py-attrs@17.4:", when="@3:") + depends_on("py-jsonschema-specifications@2023.03.6:", when="@4.18:") + depends_on("py-referencing@0.28.4:", when="@4.18:") + depends_on("py-rpds-py@0.25:", when="@4.26:") + depends_on("py-rpds-py@0.7.1:", when="@4.18:") - conflicts("^py-pyrsistent@0.17.0:0.17.2") + with when("+format-nongpl"): + depends_on("py-fqdn", when="@4:") + depends_on("py-idna") + depends_on("py-isoduration", when="@4:") + depends_on("py-jsonpointer@1.14:") + depends_on("py-rfc3339-validator") + depends_on("py-rfc3986-validator@0.1.1:") + depends_on("py-rfc3987-syntax@1.1.0:", when="@4.25:") + depends_on("py-uri-template", when="@4:") + depends_on("py-webcolors@24.6:", when="@4.23:") + depends_on("py-webcolors@1.11:", when="@4:") + depends_on("py-webcolors") + + # Historical dependencies + depends_on("py-importlib-metadata", when="@3.1.1:4.17 ^python@:3.7") + depends_on("py-importlib-resources@1.4:", when="@4.2.1:4.23 ^python@:3.8") + depends_on("py-importlib-resources", when="@4.2.0 ^python@:3.8") + depends_on("py-pkgutil-resolve-name@1.3.10:", when="@4.10.0:4.23 ^python@:3.8") + depends_on("py-pyrsistent@0.14:", when="@3:4.17") + depends_on("py-setuptools", when="@3") + depends_on("py-six@1.11:", when="@3") + depends_on("py-typing-extensions", when="@4.3:4.17 ^python@:3.7") - with when("+format-nongpl"): - depends_on("py-fqdn", when="@4:", type=("build", "run")) - depends_on("py-idna", type=("build", "run")) - depends_on("py-isoduration", when="@4:", type=("build", "run")) - depends_on("py-jsonpointer@1.14:", type=("build", "run")) - depends_on("py-rfc3339-validator", type=("build", "run")) - depends_on("py-rfc3986-validator@0.1.1:", type=("build", "run")) - depends_on("py-uri-template", when="@4:", type=("build", "run")) - depends_on("py-webcolors@1.11:", when="@4:", type=("build", "run")) - depends_on("py-webcolors", type=("build", "run")) + conflicts("^py-pyrsistent@0.17.0:0.17.2") diff --git a/repos/spack_repo/builtin/packages/py_jsonschema_specifications/package.py b/repos/spack_repo/builtin/packages/py_jsonschema_specifications/package.py index 8ac25ae1f34..cd79ab3fa42 100644 --- a/repos/spack_repo/builtin/packages/py_jsonschema_specifications/package.py +++ b/repos/spack_repo/builtin/packages/py_jsonschema_specifications/package.py @@ -17,10 +17,16 @@ class PyJsonschemaSpecifications(PythonPackage): license("MIT", checked_by="wdconinc") + version("2025.9.1", sha256="b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d") version("2023.12.1", sha256="48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc") + depends_on("python@3.9:", type=("build", "run"), when="@2024:") + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-hatchling@1.27.0:", type="build", when="@2025:") depends_on("py-hatchling", type="build") depends_on("py-hatch-vcs", type="build") depends_on("py-referencing@0.31.0:", type=("build", "run")) + + # Historical dependencies depends_on("py-importlib-resources@1.4.0:", type=("build", "run"), when="^python@:3.8") diff --git a/repos/spack_repo/builtin/packages/py_jupyter/package.py b/repos/spack_repo/builtin/packages/py_jupyter/package.py index 257a5ad9c99..308671a96fb 100644 --- a/repos/spack_repo/builtin/packages/py_jupyter/package.py +++ b/repos/spack_repo/builtin/packages/py_jupyter/package.py @@ -16,19 +16,13 @@ class PyJupyter(PythonPackage): license("BSD-3-Clause") version("1.1.1", sha256="d55467bceabdea49d7e3624af7e33d59c37fff53ed3a350e1ac957bed731de7a") - version( - "1.0.0", - sha256="d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f", - deprecated=True, - ) depends_on("py-setuptools", type="build") with default_args(type=("build", "run")): depends_on("py-notebook") - depends_on("py-qtconsole", when="@:1.0") depends_on("py-jupyter-console") depends_on("py-nbconvert") depends_on("py-ipykernel") depends_on("py-ipywidgets") - depends_on("py-jupyterlab", when="@1.1:") + depends_on("py-jupyterlab") diff --git a/repos/spack_repo/builtin/packages/py_jupyter_client/package.py b/repos/spack_repo/builtin/packages/py_jupyter_client/package.py index 6f41e70c922..363ca7a44c5 100644 --- a/repos/spack_repo/builtin/packages/py_jupyter_client/package.py +++ b/repos/spack_repo/builtin/packages/py_jupyter_client/package.py @@ -16,6 +16,8 @@ class PyJupyterClient(PythonPackage): license("BSD-3-Clause") + version("8.8.0", sha256="d556811419a4f2d96c869af34e854e3f059b7cc2d6d01a9cd9c85c267691be3e") + version("8.6.3", sha256="35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419") version("8.2.0", sha256="9fe233834edd0e6c0aa5f05ca2ab4bdea1842bfd2d8a932878212fc5301ddaf0") version("8.1.0", sha256="3fbab64100a0dcac7701b1e0f1a4412f1ccb45546ff2ad9bc4fcbe4e19804811") version("7.3.5", sha256="3c58466a1b8d55dba0bf3ce0834e4f5b7760baf98d1d73db0add6f19de9ecd1d") @@ -34,28 +36,35 @@ class PyJupyterClient(PythonPackage): version("4.1.0", sha256="b1786dbf4752907292afed4a5a192572280a8794be0c499d1f530ae8e1550d57") version("4.0.0", sha256="a39a4181ea2021daf6e821acae836999ef6e0fefe603813a7a7d4658d2ffa2ac") + depends_on("python@3.10:", when="@8.7:", type=("build", "run")) depends_on("python@3.8:", when="@8:", type=("build", "run")) - depends_on("py-hatchling@1.5:", when="@8:", type="build") - depends_on("py-hatchling@0.25:", when="@7.3.5:", type="build") - - depends_on("py-importlib-metadata@4.8.3:", when="@8: ^python@:3.9", type=("build", "run")) - depends_on("py-jupyter-core@4.12:", when="@8:", type=("build", "run")) - depends_on("py-jupyter-core@4.9.2:", when="@7.3.5:", type=("build", "run")) - depends_on("py-jupyter-core@4.6.0:", when="@6:", type=("build", "run")) - depends_on("py-jupyter-core", type=("build", "run")) - depends_on("py-python-dateutil@2.8.2:", when="@7.3.5:", type=("build", "run")) - depends_on("py-python-dateutil@2.1:", when="@5:", type=("build", "run")) - depends_on("py-pyzmq@23:", when="@7.3.5:", type=("build", "run")) - depends_on("py-pyzmq@13:", type=("build", "run")) - depends_on("py-tornado@6.2:", when="@7.3.5:", type=("build", "run")) - depends_on("py-tornado@4.1:", when="@5:", type=("build", "run")) - depends_on("py-traitlets@5.3:", when="@8:", type=("build", "run")) - depends_on("py-traitlets", type=("build", "run")) - conflicts("^py-jupyter-core@5.0") + with default_args(type="build"): + depends_on("py-hatchling@1.5:", when="@8:") + depends_on("py-hatchling@0.25:", when="@7.3.5:") + + with default_args(type=("build", "run")): + depends_on("py-jupyter-core@5.1:", when="@8.7:") + depends_on("py-jupyter-core@4.12:", when="@8:") + depends_on("py-jupyter-core@4.9.2:", when="@7.3.5:") + depends_on("py-jupyter-core@4.6.0:", when="@6:") + depends_on("py-jupyter-core") + depends_on("py-python-dateutil@2.8.2:", when="@7.3.5:") + depends_on("py-python-dateutil@2.1:", when="@5:") + depends_on("py-pyzmq@25:", when="@8.7:") + depends_on("py-pyzmq@23:", when="@7.3.5:") + depends_on("py-pyzmq@13:") + depends_on("py-tornado@6.4.1:", when="@8.7:") + depends_on("py-tornado@6.2:", when="@7.3.5:") + depends_on("py-tornado@4.1:", when="@5:") + depends_on("py-traitlets@5.3:", when="@8:") + depends_on("py-traitlets") - # Historical dependencies - depends_on("py-setuptools", when="@5:7.3.4", type=("build", "run")) - depends_on("py-entrypoints", when="@7", type=("build", "run")) - depends_on("py-nest-asyncio@1.5.4:", when="@7.3.5", type=("build", "run")) - depends_on("py-nest-asyncio@1.5:", when="@6.1.13:7.1.2", type=("build", "run")) + # Historical dependencies + depends_on("py-importlib-metadata@4.8.3:", when="@8:8.6 ^python@:3.9") + depends_on("py-setuptools", when="@5:7.3.4") + depends_on("py-entrypoints", when="@7") + depends_on("py-nest-asyncio@1.5.4:", when="@7.3.5") + depends_on("py-nest-asyncio@1.5:", when="@6.1.13:7.1.2") + + conflicts("^py-jupyter-core@5.0") diff --git a/repos/spack_repo/builtin/packages/py_jupyter_core/package.py b/repos/spack_repo/builtin/packages/py_jupyter_core/package.py index 1f7dbc2d01a..4f11621b8f3 100644 --- a/repos/spack_repo/builtin/packages/py_jupyter_core/package.py +++ b/repos/spack_repo/builtin/packages/py_jupyter_core/package.py @@ -18,6 +18,8 @@ class PyJupyterCore(PythonPackage): license("BSD-3-Clause") + version("5.9.1", sha256="4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508") + version("5.8.1", sha256="0a5f9706f70e64786b75acba995988915ebd4601c8a52e534a40b51c95f59941") version("5.3.0", sha256="6db75be0c83edbf1b7c9f91ec266a9a24ef945da630f3120e1a0046dc13713fc") version("5.1.0", sha256="a5ae7c09c55c0b26f692ec69323ba2b62e8d7295354d20f6cd57b749de4a05bf") version("4.11.1", sha256="2e5f244d44894c4154d06aeae3419dd7f1b0ef4494dc5584929b398c61cfd314") @@ -38,13 +40,14 @@ class PyJupyterCore(PythonPackage): version("4.0.1", sha256="7c165f7de7a063596f8be1bcfc86e9ba6897e38baf24e8510514690963600122") version("4.0.0", sha256="9025208cdfc40718c7e3ab62b5e17aacf68e3fc66e34ff21fe032d553620122a") + depends_on("python@3.10:", when="@5.9:", type=("build", "run")) depends_on("python@3.8:", when="@5:", type=("build", "run")) depends_on("py-hatchling@1.4:", when="@4.11.1:", type="build") + depends_on("py-hatchling@1.26:", when="@5.8.1:", type="build") depends_on("py-platformdirs@2.5:", when="@5.1:", type=("build", "run")) depends_on("py-traitlets@5.3:", when="@5.1:", type=("build", "run")) depends_on("py-traitlets", type=("build", "run")) - # additional pywin32>=300 dependency for windows # Historical dependencies depends_on("py-setuptools", when="@:4.9.2", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_jupyter_events/package.py b/repos/spack_repo/builtin/packages/py_jupyter_events/package.py index 697cafd20c3..362e731cade 100644 --- a/repos/spack_repo/builtin/packages/py_jupyter_events/package.py +++ b/repos/spack_repo/builtin/packages/py_jupyter_events/package.py @@ -13,9 +13,12 @@ class PyJupyterEvents(PythonPackage): homepage = "https://github.com/jupyter/jupyter_events" pypi = "jupyter_events/jupyter_events-0.6.3.tar.gz" + version("0.12.0", sha256="fc3fce98865f6784c9cd0a56a20644fc6098f21c8c33834a8d9fe383c17e554b") version("0.10.0", sha256="670b8229d3cc882ec782144ed22e0d29e1c2d639263f92ca8383e66682845e22") version("0.6.3", sha256="9a6e9995f75d1b7146b436ea24d696ce3a35bfa8bfe45e0c33c334c79464d0b3") + depends_on("python@3.9:", type=("build", "run"), when="@0.11:") + depends_on("python@3.8:", type=("build", "run"), when="@0.7:") depends_on("py-hatchling@1.5:", type="build") depends_on("py-referencing", type=("build", "run"), when="@0.7:") @@ -24,5 +27,6 @@ class PyJupyterEvents(PythonPackage): depends_on("py-python-json-logger@2.0.4:", type=("build", "run")) depends_on("py-pyyaml@5.3:", type=("build", "run")) depends_on("py-traitlets@5.3:", type=("build", "run")) + depends_on("py-packaging", type=("build", "run"), when="@0.12:") depends_on("py-rfc3339-validator", type=("build", "run")) depends_on("py-rfc3986-validator@0.1.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_jupyter_leaflet/package.py b/repos/spack_repo/builtin/packages/py_jupyter_leaflet/package.py index 5276a37e65c..63ea8cfb002 100644 --- a/repos/spack_repo/builtin/packages/py_jupyter_leaflet/package.py +++ b/repos/spack_repo/builtin/packages/py_jupyter_leaflet/package.py @@ -15,6 +15,7 @@ class PyJupyterLeaflet(PythonPackage): license("MIT") + version("0.20.0", sha256="ad826dd7976a2b6d8b91d762c25a69a44f123b7b3bd1acaba236bd9af8e68cb4") version("0.19.2", sha256="b09b5ba48b1488cb61da37a6f558347269eb53ff6d64dc1a73e005ffc4420063") with default_args(type="build"): diff --git a/repos/spack_repo/builtin/packages/py_jupyter_lsp/package.py b/repos/spack_repo/builtin/packages/py_jupyter_lsp/package.py index 27d9dd19594..7822df25066 100644 --- a/repos/spack_repo/builtin/packages/py_jupyter_lsp/package.py +++ b/repos/spack_repo/builtin/packages/py_jupyter_lsp/package.py @@ -11,10 +11,11 @@ class PyJupyterLsp(PythonPackage): """Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server.""" homepage = "https://github.com/jupyter-lsp/jupyterlab-lsp" - pypi = "jupyter-lsp/jupyter-lsp-2.2.0.tar.gz" + pypi = "jupyter-lsp/jupyter_lsp-2.3.0.tar.gz" license("BSD-3-Clause") + version("2.3.0", sha256="458aa59339dc868fb784d73364f17dbce8836e906cd75fd471a325cba02e0245") version("2.2.0", sha256="8ebbcb533adb41e5d635eb8fe82956b0aafbf0fd443b6c4bfa906edeeb8635a1") depends_on("python@3.8:", type=("build", "run")) @@ -22,3 +23,12 @@ class PyJupyterLsp(PythonPackage): depends_on("py-jupyter-server@1.1.2:", type=("build", "run")) depends_on("py-importlib-metadata@4.8.3:", when="^python@:3.9", type=("build", "run")) + + def url_for_version(self, version): + if version >= Version("2.2.6"): + name = "jupyter_lsp" + else: + name = "jupyter-lsp" + return ( + f"https://files.pythonhosted.org/packages/source/j/jupyter-lsp/{name}-{version}.tar.gz" + ) diff --git a/repos/spack_repo/builtin/packages/py_jupyter_server/package.py b/repos/spack_repo/builtin/packages/py_jupyter_server/package.py index ba1dc41f50b..0c0db670913 100644 --- a/repos/spack_repo/builtin/packages/py_jupyter_server/package.py +++ b/repos/spack_repo/builtin/packages/py_jupyter_server/package.py @@ -18,48 +18,23 @@ class PyJupyterServer(PythonPackage): license("BSD-3-Clause") + version("2.17.0", sha256="c38ea898566964c888b4772ae1ed58eca84592e88251d2cfc4d171f81f7e99d5") version("2.14.2", sha256="66095021aa9638ced276c248b1d81862e4c50f292d575920bbe960de1c56b12b") version("2.6.0", sha256="ae4af349f030ed08dd78cb7ac1a03a92d886000380c9ea6283f3c542a81f4b06") version("1.21.0", sha256="d0adca19913a3763359be7f0b8c2ea8bfde356f4b8edd8e3149d7d0fbfaa248b") version("1.18.1", sha256="2b72fc595bccae292260aad8157a0ead8da2c703ec6ae1bb7b36dbad0e267ea7") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2022-29241 - version( - "1.17.0", sha256="7b3aa524790ab0da64f06dfe0b2af149d0a3f59aad71fdedcf1d8bae6508018c" - ) - version( - "1.13.5", sha256="9e3e9717eea3bffab8cfb2ff330011be6c8bbd9cdae5b71cef169fcece2f19d3" - ) - version( - "1.11.2", sha256="c1f32e0c1807ab2de37bf70af97a36b4436db0bc8af3124632b1f4441038bf95" - ) - version( - "1.11.1", sha256="ab7ab1cc38512f15026cbcbb96300fb46ec8b24aa162263d9edd00e0a749b1e8" - ) - version( - "1.11.0", sha256="8ab4f484a4a2698f757cff0769d27b5d991e0232a666d54f4d6ada4e6a61330b" - ) - version( - "1.10.2", sha256="d3a3b68ebc6d7bfee1097f1712cf7709ee39c92379da2cc08724515bb85e72bf" - ) - version("1.9.0", sha256="7d19006380f6217458a9db309b54e3dab87ced6c06329c61823907bef2a6f51b") - version("1.6.1", sha256="242ddd0b644f10e030f917019b47c381e0f2d2b950164af45cbd791d572198ac") variant("typescript", default=False, description="Build the typescript code", when="@1.10.2:1") # https://github.com/spack/spack/issues/41899 patch("no_npm_node.patch", when="@1.10.2:1 ~typescript") + depends_on("python@3.9:", when="@2.15:", type=("build", "run")) depends_on("python@3.8:", when="@2:", type=("build", "run")) depends_on("py-hatchling@1.11:", when="@2:", type="build") # under [tool.hatch.build.hooks.jupyter-builder] in pyproject.toml depends_on("py-hatch-jupyter-builder@0.8.1:", when="@2:", type="build") - with when("@:1"): - depends_on("py-jupyter-packaging@0.9:0", when="@1.6.2:", type="build") - depends_on("py-pre-commit", when="@1.16:", type="build") - depends_on("py-setuptools", type="build") - depends_on("npm", type="build", when="+typescript") depends_on("py-anyio@3.1.0:", when="@2.2.1:", type=("build", "run")) depends_on("py-anyio@3.1.0:3", when="@:2.2.0", type=("build", "run")) @@ -69,17 +44,13 @@ class PyJupyterServer(PythonPackage): depends_on("py-jinja2", type=("build", "run")) depends_on("py-jupyter-client@7.4.4:", when="@2:", type=("build", "run")) depends_on("py-jupyter-client@6.1.12:", when="@1.16:", type=("build", "run")) - depends_on("py-jupyter-client@6.1.1:", type=("build", "run")) depends_on("py-jupyter-core@4.12:4,5.1:", when="@1.23.5:", type=("build", "run")) depends_on("py-jupyter-core@4.7:", when="@1.16:", type=("build", "run")) - depends_on("py-jupyter-core@4.6:", type=("build", "run")) depends_on("py-jupyter-server-terminals@0.4.4:", when="@2.14:", type=("build", "run")) depends_on("py-jupyter-server-terminals", when="@2:", type=("build", "run")) depends_on("py-nbconvert@6.4.4:", when="@1.16:", type=("build", "run")) - depends_on("py-nbconvert", type=("build", "run")) depends_on("py-nbformat@5.3:", when="@2:", type=("build", "run")) depends_on("py-nbformat@5.2:", when="@1.15:", type=("build", "run")) - depends_on("py-nbformat", type=("build", "run")) depends_on("py-packaging@22.0:", when="@2.14:", type=("build", "run")) depends_on("py-packaging", when="@1.13.2:", type=("build", "run")) depends_on("py-prometheus-client@0.9:", when="@2.14:", type=("build", "run")) @@ -97,14 +68,17 @@ class PyJupyterServer(PythonPackage): depends_on("py-traitlets@5.6:", when="@2.0.1:", type=("build", "run")) depends_on("py-traitlets@5.1:", when="@1.16:", type=("build", "run")) depends_on("py-traitlets@5:", when="@1.13.3:", type=("build", "run")) - depends_on("py-traitlets@4.2.1:", type=("build", "run")) depends_on("py-websocket-client@1.7:", when="@2.14:", type=("build", "run")) depends_on("py-websocket-client", type=("build", "run")) + depends_on("py-jupyter-events@0.11:", when="@2.10.1:", type=("build", "run")) depends_on("py-jupyter-events@0.9:", when="@2.10.1:", type=("build", "run")) depends_on("py-jupyter-events@0.6:", when="@2.6:", type=("build", "run")) - depends_on("py-overrides@5.0:", when="@2.14:", type=("build", "run")) - depends_on("py-overrides", when="@2.6:", type=("build", "run")) + depends_on("py-overrides@5.0:", when="@2.17: ^python@:3.11", type=("build", "run")) + depends_on("py-overrides@5.0:", when="@2.14:2.16 ", type=("build", "run")) + depends_on("py-overrides", when="@2.6:2.16", type=("build", "run")) - # old - depends_on("py-ipython-genutils", when="@:1.15", type=("build", "run")) - depends_on("py-requests-unixsocket", when="@:1.11.1", type=("build", "run")) + # Historical dependencies + with when("@:1"): + depends_on("py-jupyter-packaging@0.9:0", when="@1.6.2:", type="build") + depends_on("py-pre-commit", when="@1.16:", type="build") + depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_jupyter_server_proxy/package.py b/repos/spack_repo/builtin/packages/py_jupyter_server_proxy/package.py index 27a6ebf085c..cb7530b6642 100644 --- a/repos/spack_repo/builtin/packages/py_jupyter_server_proxy/package.py +++ b/repos/spack_repo/builtin/packages/py_jupyter_server_proxy/package.py @@ -16,16 +16,35 @@ class PyJupyterServerProxy(PythonPackage): """ homepage = "https://github.com/jupyterhub/jupyter-server-proxy" - pypi = "jupyter-server-proxy/jupyter-server-proxy-3.2.2.tar.gz" + pypi = "jupyter-server-proxy/jupyter_server_proxy-4.4.0.tar.gz" license("BSD-3-Clause") + version("4.4.0", sha256="e5732eb9c810c0caa997f90a2f15f7d09af638e7eea9c67eb5c43e9c1f0e1157") version("3.2.2", sha256="54690ea9467035d187c930c599e76065017baf16e118e6eebae0d3a008c4d946") - depends_on("py-jupyter-packaging@0.7.9:0.7", type="build") - depends_on("py-jupyterlab@3.0:3", type="build") - depends_on("py-setuptools@40.8.0:", type="build") + depends_on("python@3.8:", type=("build", "run"), when="@4:") + depends_on("py-hatch-jupyter-builder@0.8.3:", type="build", when="@4.1.1:") + depends_on("py-hatchling@1.18.0:", type="build", when="@4.1.1:") + depends_on("py-jupyterlab@4.0.6:4", type="build", when="@4.1:") + depends_on("py-jupyterlab@3", type="build", when="@:3") depends_on("py-aiohttp", type=("build", "run")) - depends_on("py-jupyter-server@1.0:", type=("build", "run")) - depends_on("py-simpervisor@0.4:", type=("build", "run")) + depends_on("py-importlib-metadata@4.8.3:", type=("build", "run"), when="@4: ^python@:3.9") + depends_on("py-jupyter-server@1.24:", type=("build", "run"), when="@4.2:") + depends_on("py-jupyter-server@1:", type=("build", "run"), when="@:4.1") + depends_on("py-simpervisor@1:", type=("build", "run"), when="@4.1:") + depends_on("py-simpervisor@0.4:", type=("build", "run"), when="@:4.0") + depends_on("py-tornado@6.1:", type=("build", "run"), when="@4.2:") + depends_on("py-traitlets@5.1:", type=("build", "run"), when="@4.1.1:") + + # Historical dependencies + depends_on("py-jupyter-packaging@0.7.9:0.7", type="build", when="@:3") + depends_on("py-setuptools@40.8.0:", type="build", when="@:3") + + def url_for_version(self, version): + if version >= Version("3.2.3"): + name = "jupyter_server_proxy" + else: + name = "jupyter-server-proxy" + return f"https://files.pythonhosted.org/packages/source/j/jupyter-server-proxy/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_jupyter_server_terminals/package.py b/repos/spack_repo/builtin/packages/py_jupyter_server_terminals/package.py index 9e51deac73b..dfead504193 100644 --- a/repos/spack_repo/builtin/packages/py_jupyter_server_terminals/package.py +++ b/repos/spack_repo/builtin/packages/py_jupyter_server_terminals/package.py @@ -13,6 +13,8 @@ class PyJupyterServerTerminals(PythonPackage): homepage = "https://github.com/jupyter-server/jupyter_server_terminals" pypi = "jupyter_server_terminals/jupyter_server_terminals-0.4.4.tar.gz" + version("0.5.4", sha256="bbda128ed41d0be9020349f9f1f2a4ab9952a73ed5f5ac9f1419794761fb87f5") + version("0.5.3", sha256="5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269") version("0.4.4", sha256="57ab779797c25a7ba68e97bcfb5d7740f2b5e8a83b5e8102b10438041a7eac5d") depends_on("python@3.8:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_jupyterlab/package.py b/repos/spack_repo/builtin/packages/py_jupyterlab/package.py index 387e1a7ad3a..d78b7b47959 100644 --- a/repos/spack_repo/builtin/packages/py_jupyterlab/package.py +++ b/repos/spack_repo/builtin/packages/py_jupyterlab/package.py @@ -18,6 +18,10 @@ class PyJupyterlab(PythonPackage): license("BSD-3-Clause", checked_by="lgarrison") + version("4.5.7", sha256="55a9822c4754da305f41e113452c68383e214dcf96de760146af89ce5d5117b0") + version("4.5.6", sha256="642fe2cfe7f0f5922a8a558ba7a0d246c7bc133b708dfe43f7b3a826d163cf42") + version("4.4.10", sha256="521c017508af4e1d6d9d8a9d90f47a11c61197ad63b2178342489de42540a615") + version("4.4.7", sha256="8c8e225492f4513ebde9bbbc00a05b651ab9a1f5b0013015d96fabf671c37188") version("4.3.5", sha256="c779bf72ced007d7d29d5bcef128e7fdda96ea69299e19b04a43635a7d641f9d") version("4.0.1", sha256="4dc3901f7bbfd4704c994b7a893a49955256abf57dba9831f4825e3f3165b8bb") version("3.4.8", sha256="1fafb8b657005d91603f3c3adfd6d9e8eaf33fdc601537fef09283332efe67cb") @@ -36,32 +40,42 @@ class PyJupyterlab(PythonPackage): depends_on("node-js", type="run") depends_on("npm", type="run") - depends_on("python@3.8:", when="@4:", type=("build", "run")) depends_on("py-hatchling@1.21.1:", when="@4.3.5:", type="build") depends_on("py-hatchling@1.5:", when="@4:", type="build") - # under [tool.hatch.build.hooks.jupyter-builder] in pyproject.toml - depends_on("py-hatch-jupyter-builder@0.3.2:", when="@4:", type=("build", "run")) - depends_on("py-async-lru@1:", when="@4:", type=("build", "run")) - depends_on("py-httpx@0.25:", when="@4.3.5:", type=("build", "run")) - depends_on("py-importlib-metadata@4.8.3:", when="@4: ^python@:3.9", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@4.4:") + depends_on("python@3.8:", when="@4:") + + # under [tool.hatch.build.hooks.jupyter-builder] in pyproject.toml + depends_on("py-hatch-jupyter-builder@0.3.2:", when="@4:") + + depends_on("py-async-lru@1:", when="@4:") + depends_on("py-httpx@0.25:0", when="@4.3.5:") + depends_on("py-importlib-metadata@4.8.3:", when="@4: ^python@:3.9") + depends_on("py-ipykernel@6.5.0:", when="@4.3.5:") + depends_on("py-ipykernel", when="@4:") + depends_on("py-jinja2@3.0.3:", when="@4:") + depends_on("py-jupyter-core", when="@3:") + depends_on("py-jupyter-server@2.4:2", when="@4:") + depends_on("py-jupyter-lsp@2:", when="@4:") + depends_on("py-jupyterlab-server@2.28:2", when="@4.5:") + 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", when="@3:") + depends_on("py-setuptools@41.1:", when="@4.3.7:") + depends_on("py-setuptools@40.8.0:", when="@4.3.5:") + depends_on("py-tomli@1.2.2:", when="@4.3.5: ^python@:3.10") + depends_on("py-tomli", when="@4: ^python@:3.10") + depends_on("py-tomli", when="@3.4.7:3") + depends_on("py-tornado@6.2:", when="@4:") + depends_on("py-traitlets", when="@4:") + + conflicts("py-ipykernel@6.30.0") + + # Historical dependencies depends_on("py-importlib-resources@1.4:", when="@4: ^python@:3.8", type=("build", "run")) - depends_on("py-ipykernel@6.5.0:", when="@4.3.5:", type=("build", "run")) - depends_on("py-ipykernel", when="@4:", type=("build", "run")) - depends_on("py-jinja2@3.0.3:", when="@4:", type=("build", "run")) - depends_on("py-jupyter-core", when="@3:", type=("build", "run")) - depends_on("py-jupyter-lsp@2:", when="@4:", type=("build", "run")) - depends_on("py-jupyter-server@2.4:2", when="@4:", type=("build", "run")) - depends_on("py-jupyterlab-server@2.27.1:2", when="@4.3.5:", type=("build", "run")) - depends_on("py-jupyterlab-server@2.19:2", when="@4:", type=("build", "run")) - depends_on("py-notebook-shim@0.2:", when="@4:", type=("build", "run")) - depends_on("py-packaging", when="@3:", type=("build", "run")) - depends_on("py-setuptools@40.8.0:", when="@4.3.5:", type=("build", "run")) - depends_on("py-traitlets", when="@4:", type=("build", "run")) - depends_on("py-tornado@6.2:", when="@4:", type=("build", "run")) - depends_on("py-tomli@1.2.2:", when="@4.3.5: ^python@:3.10", type=("build", "run")) - depends_on("py-tomli", when="@4: ^python@:3.10", type=("build", "run")) - depends_on("py-tomli", when="@3.4.7:3", type=("build", "run")) with when("@:3"): depends_on("py-setuptools", when="@:3", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_jupyterlab_server/package.py b/repos/spack_repo/builtin/packages/py_jupyterlab_server/package.py index fbf950460dd..dcce99fd680 100644 --- a/repos/spack_repo/builtin/packages/py_jupyterlab_server/package.py +++ b/repos/spack_repo/builtin/packages/py_jupyterlab_server/package.py @@ -17,6 +17,9 @@ class PyJupyterlabServer(PythonPackage): license("BSD-3-Clause") + tags = ["build-tools"] + + version("2.28.0", sha256="35baa81898b15f93573e2deca50d11ac0ae407ebb688299d3a5213265033712c") version("2.27.3", sha256="eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4") version("2.27.2", sha256="15cbb349dc45e954e09bacf81b9f9bcb10815ff660fb2034ecd7417db3a7ea27") version("2.27.1", sha256="097b5ac709b676c7284ac9c5e373f11930a561f52cd5a86e4fc7e5a9c8a8631d") diff --git a/repos/spack_repo/builtin/packages/py_jupyterlab_widgets/package.py b/repos/spack_repo/builtin/packages/py_jupyterlab_widgets/package.py index dac1b8068d8..6ebac513047 100644 --- a/repos/spack_repo/builtin/packages/py_jupyterlab_widgets/package.py +++ b/repos/spack_repo/builtin/packages/py_jupyterlab_widgets/package.py @@ -17,6 +17,7 @@ class PyJupyterlabWidgets(PythonPackage): license("BSD-3-Clause") + version("3.0.16", sha256="45fa36d9c6422cf2559198e4db481aa243c7a32d9926b500781c830c80f7ecf8") version("3.0.3", sha256="6aa1bc0045470d54d76b9c0b7609a8f8f0087573bae25700a370c11f82cb38c8") version("1.1.0", sha256="c2a9bd3789f120f64d73268c066ed3b000c56bc1dda217be5cdc43e7b4ebad3f") version("1.0.2", sha256="f5d9efface8ec62941173ba1cffb2edd0ecddc801c11ae2931e30b50492eb8f7") diff --git a/repos/spack_repo/builtin/packages/py_justext/package.py b/repos/spack_repo/builtin/packages/py_justext/package.py new file mode 100644 index 00000000000..7e9b038e07e --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_justext/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 PyJustext(PythonPackage): + """Heuristic based boilerplate removal tool.""" + + homepage = "https://github.com/miso-belica/jusText" + pypi = "justext/justext-3.0.2.tar.gz" + + version("3.0.2", sha256="13496a450c44c4cd5b5a75a5efcd9996066d2a189794ea99a49949685a0beb05") + + depends_on("python@3.5:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-lxml@4.4.2:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_kaleido/package.py b/repos/spack_repo/builtin/packages/py_kaleido/package.py index 12363f510da..25e9347f8a9 100644 --- a/repos/spack_repo/builtin/packages/py_kaleido/package.py +++ b/repos/spack_repo/builtin/packages/py_kaleido/package.py @@ -1,7 +1,6 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - import platform import sys @@ -14,13 +13,18 @@ class PyKaleido(PythonPackage): - """Static image export for web-based visualization libraries with zero dependencies""" + """Plotly graph export library.""" - homepage = "https://github.com/plotly/Kaleido" - pypi = "kaleido/kaleido-0.2.1-py2.py3-none-manylinux1_x86_64.whl" + homepage = "https://github.com/plotly/kaleido" + pypi = "kaleido/kaleido-1.1.0.tar.gz" + git = "https://github.com/plotly/Kaleido.git" maintainers("Pandapip1") + license("MIT") + + version("1.1.0", sha256="5747703a56d4c034efa69abea4a9c2bfe8ef516ba848e0ec485c65b3b0ab52b6") + if (arch == "x86_64" or arch == "x64") and os == "linux": # Linux on x86_64 version( "0.2.1", @@ -71,5 +75,13 @@ class PyKaleido(PythonPackage): expand=False, ) - depends_on("python", type=("build", "run")) + depends_on("python@3.8:", type=("build", "run"), when="@1:") + depends_on("py-setuptools@65:", type="build", when="@1:") depends_on("py-setuptools", type="build") + depends_on("py-setuptools-git-versioning", type="build", when="@1:") + + depends_on("py-choreographer@1.0.10:", type=("build", "run"), when="@1:") + depends_on("py-logistro@1.0.8:", type=("build", "run"), when="@1:") + depends_on("py-orjson@3.10.15:", type=("build", "run"), when="@1:") + depends_on("py-packaging", type=("build", "run"), when="@1:") + depends_on("py-pytest-timeout@2.4:", type=("build", "run"), when="@1:") diff --git a/repos/spack_repo/builtin/packages/py_keras/package.py b/repos/spack_repo/builtin/packages/py_keras/package.py index 65aabde23d4..1b8ac493f05 100644 --- a/repos/spack_repo/builtin/packages/py_keras/package.py +++ b/repos/spack_repo/builtin/packages/py_keras/package.py @@ -12,82 +12,138 @@ class PyKeras(PythonPackage): """Multi-backend Keras. - Keras 3 is a new multi-backend implementation of the Keras API, - with support for TensorFlow, JAX, and PyTorch. + Keras 3 is a multi-backend deep learning framework, with support for + JAX, TensorFlow, PyTorch, and OpenVINO (for inference-only). """ homepage = "https://keras.io" git = "https://github.com/keras-team/keras.git" pypi = "keras/keras-3.0.0.tar.gz" - - maintainers("adamjstewart") tags = ["e4s"] + license("Apache-2.0") + maintainers("adamjstewart") - version("3.10.0", sha256="6e9100bf66eaf6de4b7f288d34ef9bb8b5dcdd62f42c64cfd910226bb34ad2d2") - version("3.9.2", sha256="322aab6418ee3de1e2bd0871b60a07f0e444e744a7e8cba79af8b42408879ecf") - version("3.9.1", sha256="1ba893820258d4eab9a5a94a6faae2d8f4b134019d0bfa19868606b6381502ff") - version("3.9.0", sha256="b5bf04e7c64c3176eda5124d035005bb7a676fb505f42496c7b03a99d5683652") - version("3.8.0", sha256="6289006e6f6cb2b68a563b58cf8ae5a45569449c5a791df6b2f54c1877f3f344") - version("3.7.0", sha256="a4451a5591e75dfb414d0b84a3fd2fb9c0240cc87ebe7e397f547ce10b0e67b7") - version("3.6.0", sha256="405727525a3522ed8f9ec0b46e0667e4c65fcf714a067322c16a00d902ded41d") - version("3.5.0", sha256="53ae4f9472ec9d9c6941c82a3fda86969724ace3b7630a94ba0a1f17ba1065c3") - version("3.4.1", sha256="34cd9aeaa008914715149234c215657ca758e1b473bd2aab2e211ac967d1f8fe") - version("3.4.0", sha256="c4b05b150b1c4df27b4a17efd137b2d5e20f385f146fd48636791d675e75059d") - version("3.3.3", sha256="f2fdffc8434fd77045cf8fb21816dbaa2308d5f76974ca924b2f60b40433b1a0") - version("3.3.2", sha256="e7e2ccba2dfe2cf10b82e3c75ea971b82a4c62560dc562c43b33f7790127c92f") - version("3.3.1", sha256="03531beb01b108b867683762ceaacd0f28efc40cb92eee3c8c988b80cf718bbe") - version("3.3.0", sha256="46763bd84696aa5e326734ee0ccfde12bef73b27f1e5e241bbf539cb6411e78d") - version("3.2.1", sha256="966abbf0dfc1f9725f6293fb2a04ec83f56cd2a800990b38d1a03041255214a7") - version("3.2.0", sha256="e3ff572c872ebb24d2ae62d4e12c3579ccd0019d0f0adaf3cb7dc610e77e84c1") - version("3.1.1", sha256="55558ea228dc38e7667874fd2e83eaf7faeb026e2e8615b36a8616830f7e303b") - version("3.1.0", sha256="cac46e053f0493da313e7c9b16379a532b1a38f9f19c7a5fe4578759f4c6aa4d") - version("3.0.5", sha256="df3d3795e12c3f6035e811c43c13f1eb41e37241796a0fea120ede4ebe1c4496") - version("3.0.4", sha256="ff2204792582e3889c51c77722cc6e8258dbb1ece7db192f5a9bcd1887cf3385") - version("3.0.3", sha256="1e455a82be63b7fb4f699e26bd1e04b7dbcbf66fa3a799117afca9ab067b5d61") - version("3.0.2", sha256="526b6c053cdd880a33467c5bfd5c460a5bdc0c58869c2683171c2dec2ad3c2d0") - version("3.0.1", sha256="d993721510fa654582132192193f69b1b3165418a6e00a73c3edce615b3cc672") - version("3.0.0", sha256="82a9fa4b32a049b38151d11188ed15d74f21f853f163e78da0950dce1f244ccc") - version("2.15.0", sha256="b281ce09226576e0593b8dab0d9e5d42c334e053ce6f4f154dc6cd745ab93d2f") - version("2.14.0", sha256="a845d446b6ae626f61dde5ab2fa952530b6c17b4f9ed03e9362bd20172d00cca") - version("2.13.1", sha256="b3591493cce75a69adef7b192cec6be222e76e2386d132cd4e34aa190b0ecbd5") - version("2.12.0", sha256="6336cebb6b2b0a91f7efd3ff3a9db3a94f2abccf07a40323138afb80826aec62") - version("2.11.0", sha256="e7a7c4199ac76ea750d145c1d84ae1b932e68b9bca34e83596bd66b2fc2ad79e") - version("2.10.0", sha256="b1d8d9358700f4a585455854a142d88cc987419c1638ef935b440842d593ad04") - version("2.9.0", sha256="90226eaa0337573304f3e5ab44d4d9e3a65fe002776c5cbd0f65b738152c1084") - version("2.8.0", sha256="5e777b0101d8385d3a90fc9056f1b2f6313f2c830d2e8181828b300c9229ec0c") - version("2.7.0", sha256="7502746467ab15184e2e267f13fbb2c3f33ba24f8e02a097d229ba376dabaa04") - version("2.6.0", sha256="15586a3f3e1ed9182e6e0d4c0dbd052dfb7250e779ceb7e24f8839db5c63fcae") - version("2.4.3", sha256="fedd729b52572fb108a98e3d97e1bac10a81d3917d2103cc20ab2a5f03beb973") - version("2.4.2", sha256="e26bc51b7b8fb7add452cdf6fba77d6509e6c78b9d9ef5fd32fe132c6d9182d2") - version("2.4.1", sha256="e282cc9c5c996043b21d045765c0c5bf541c1879232a97a574c51af0ce132cb1") - version("2.4.0", sha256="e31c6d2910767ab72f630309286fb7bf5476810dd64fde3e254054478442e9b0") - version("2.3.1", sha256="321d43772006a25a1d58eea17401ef2a34d388b588c9f7646c34796151ebc8cc") - version("2.3.0", sha256="a0d6ecf1d71cd0b85ea1da27ea7314a9d4723f5b468b7cedd87dcad0a491b354") - version("2.2.5", sha256="0fb448b95643a708d25d2394183a2f3a84eefb55fb64917152a46826990113ea") - version("2.2.4", sha256="90b610a3dbbf6d257b20a079eba3fdf2eed2158f64066a7c6f7227023fd60bc9") - version("2.2.3", sha256="694aee60a6f8e0d3d6d3e4967e063b4623e3ca90032f023fd6d16bb5f81d18de") - version("2.2.2", sha256="468d98da104ec5c3dbb10c2ef6bb345ab154f6ca2d722d4c250ef4d6105de17a") - version("2.2.1", sha256="0d3cb14260a3fa2f4a5c4c9efa72226ffac3b4c50135ba6edaf2b3d1d23b11ee") - version("2.2.0", sha256="5b8499d157af217f1a5ee33589e774127ebc3e266c833c22cb5afbb0ed1734bf") + version("3.14.1", sha256="ef479173102ad29db89b53c232efdc3fb5ad57c28bc27ead59f3e78a1eecd05b") + version("3.14.0", sha256="86fcf8249a25264a566ac393c287c7ad657000e5e62615dcaad4b3472a17aeda") + version("3.13.2", sha256="62f0123488ac87c929c988617e14f293f7bc993811837d08bb37eff77adc85a9") + version("3.12.2", sha256="e19c7c7f8f2a81e44d4f203e567731a15a270d8ef351060982b45a1fafdf3fce") + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2026-1669/ + version( + "3.13.1", sha256="670c726dfc9c357fe7ae5ef1c15d8f61ee7fbb40ae9a091a458ec6444a772480" + ) + # https://www.cvedetails.com/cve/CVE-2026-0897/ + version( + "3.13.0", sha256="ec51ad2ffcef086d0e3077ac461fa9e3bc54f91d94b49b7c9a84c9af7f54cf5e" + ) + version( + "3.12.1", sha256="3cb760b3fec105db4d893dd717daafdd0e35457a8201502c1ba8bedfaf334a71" + ) + version( + "3.12.0", sha256="536e3f8385a05ae04e82e08715a1a59988578087e187b04cb0a6fad11743f07f" + ) + # https://www.cvedetails.com/cve/CVE-2025-12060/ + # https://www.cvedetails.com/cve/CVE-2025-12058/ + version( + "3.11.3", sha256="efda616835c31b7d916d72303ef9adec1257320bc9fd4b2b0138840fc65fb5b7" + ) + # https://www.cvedetails.com/cve/CVE-2025-49655/ + # https://www.cvedetails.com/cve/CVE-2025-9905/ + version( + "3.11.2", sha256="b78a4af616cbe119e88fa973d2b0443b70c7f74dd3ee888e5026f0b7e78a2801" + ) + version( + "3.11.1", sha256="7a27f384467fa8d0b0281665b52efd6bd948f20854099e35929786ce44d847f0" + ) + version( + "3.11.0", sha256="f5dfeaf4fcaea180e032f7c1e373f1868961e2940dcfcaaf9a5b711baf41bd60" + ) + # https://www.cvedetails.com/cve/CVE-2025-9906/ + # https://www.cvedetails.com/cve/CVE-2025-8747/ + version( + "3.10.0", sha256="6e9100bf66eaf6de4b7f288d34ef9bb8b5dcdd62f42c64cfd910226bb34ad2d2" + ) + version("3.9.2", sha256="322aab6418ee3de1e2bd0871b60a07f0e444e744a7e8cba79af8b42408879ecf") + version("3.9.1", sha256="1ba893820258d4eab9a5a94a6faae2d8f4b134019d0bfa19868606b6381502ff") + version("3.9.0", sha256="b5bf04e7c64c3176eda5124d035005bb7a676fb505f42496c7b03a99d5683652") + version("3.8.0", sha256="6289006e6f6cb2b68a563b58cf8ae5a45569449c5a791df6b2f54c1877f3f344") + # https://www.cvedetails.com/cve/CVE-2025-1550/ + # https://www.cvedetails.com/cve/CVE-2024-55459/ + version("3.7.0", sha256="a4451a5591e75dfb414d0b84a3fd2fb9c0240cc87ebe7e397f547ce10b0e67b7") + version("3.6.0", sha256="405727525a3522ed8f9ec0b46e0667e4c65fcf714a067322c16a00d902ded41d") + version("3.5.0", sha256="53ae4f9472ec9d9c6941c82a3fda86969724ace3b7630a94ba0a1f17ba1065c3") + version("3.4.1", sha256="34cd9aeaa008914715149234c215657ca758e1b473bd2aab2e211ac967d1f8fe") + version("3.4.0", sha256="c4b05b150b1c4df27b4a17efd137b2d5e20f385f146fd48636791d675e75059d") + version("3.3.3", sha256="f2fdffc8434fd77045cf8fb21816dbaa2308d5f76974ca924b2f60b40433b1a0") + version("3.3.2", sha256="e7e2ccba2dfe2cf10b82e3c75ea971b82a4c62560dc562c43b33f7790127c92f") + version("3.3.1", sha256="03531beb01b108b867683762ceaacd0f28efc40cb92eee3c8c988b80cf718bbe") + version("3.3.0", sha256="46763bd84696aa5e326734ee0ccfde12bef73b27f1e5e241bbf539cb6411e78d") + version("3.2.1", sha256="966abbf0dfc1f9725f6293fb2a04ec83f56cd2a800990b38d1a03041255214a7") + version("3.2.0", sha256="e3ff572c872ebb24d2ae62d4e12c3579ccd0019d0f0adaf3cb7dc610e77e84c1") + version("3.1.1", sha256="55558ea228dc38e7667874fd2e83eaf7faeb026e2e8615b36a8616830f7e303b") + version("3.1.0", sha256="cac46e053f0493da313e7c9b16379a532b1a38f9f19c7a5fe4578759f4c6aa4d") + version("3.0.5", sha256="df3d3795e12c3f6035e811c43c13f1eb41e37241796a0fea120ede4ebe1c4496") + version("3.0.4", sha256="ff2204792582e3889c51c77722cc6e8258dbb1ece7db192f5a9bcd1887cf3385") + version("3.0.3", sha256="1e455a82be63b7fb4f699e26bd1e04b7dbcbf66fa3a799117afca9ab067b5d61") + version("3.0.2", sha256="526b6c053cdd880a33467c5bfd5c460a5bdc0c58869c2683171c2dec2ad3c2d0") + version("3.0.1", sha256="d993721510fa654582132192193f69b1b3165418a6e00a73c3edce615b3cc672") + version("3.0.0", sha256="82a9fa4b32a049b38151d11188ed15d74f21f853f163e78da0950dce1f244ccc") + # Technically no CVEs, just deprecated due to age + version( + "2.15.0", sha256="b281ce09226576e0593b8dab0d9e5d42c334e053ce6f4f154dc6cd745ab93d2f" + ) + version( + "2.14.0", sha256="a845d446b6ae626f61dde5ab2fa952530b6c17b4f9ed03e9362bd20172d00cca" + ) + version( + "2.13.1", sha256="b3591493cce75a69adef7b192cec6be222e76e2386d132cd4e34aa190b0ecbd5" + ) + # https://www.cvedetails.com/cve/CVE-2024-3660/ + version( + "2.12.0", sha256="6336cebb6b2b0a91f7efd3ff3a9db3a94f2abccf07a40323138afb80826aec62" + ) + version( + "2.11.0", sha256="e7a7c4199ac76ea750d145c1d84ae1b932e68b9bca34e83596bd66b2fc2ad79e" + ) + version( + "2.10.0", sha256="b1d8d9358700f4a585455854a142d88cc987419c1638ef935b440842d593ad04" + ) + version("2.9.0", sha256="90226eaa0337573304f3e5ab44d4d9e3a65fe002776c5cbd0f65b738152c1084") + version("2.8.0", sha256="5e777b0101d8385d3a90fc9056f1b2f6313f2c830d2e8181828b300c9229ec0c") + version("2.7.0", sha256="7502746467ab15184e2e267f13fbb2c3f33ba24f8e02a097d229ba376dabaa04") + version("2.6.0", sha256="15586a3f3e1ed9182e6e0d4c0dbd052dfb7250e779ceb7e24f8839db5c63fcae") + version("2.4.3", sha256="fedd729b52572fb108a98e3d97e1bac10a81d3917d2103cc20ab2a5f03beb973") + version("2.4.2", sha256="e26bc51b7b8fb7add452cdf6fba77d6509e6c78b9d9ef5fd32fe132c6d9182d2") + version("2.4.1", sha256="e282cc9c5c996043b21d045765c0c5bf541c1879232a97a574c51af0ce132cb1") + version("2.4.0", sha256="e31c6d2910767ab72f630309286fb7bf5476810dd64fde3e254054478442e9b0") + version("2.3.1", sha256="321d43772006a25a1d58eea17401ef2a34d388b588c9f7646c34796151ebc8cc") + version("2.3.0", sha256="a0d6ecf1d71cd0b85ea1da27ea7314a9d4723f5b468b7cedd87dcad0a491b354") + version("2.2.5", sha256="0fb448b95643a708d25d2394183a2f3a84eefb55fb64917152a46826990113ea") + version("2.2.4", sha256="90b610a3dbbf6d257b20a079eba3fdf2eed2158f64066a7c6f7227023fd60bc9") + version("2.2.3", sha256="694aee60a6f8e0d3d6d3e4967e063b4623e3ca90032f023fd6d16bb5f81d18de") + version("2.2.2", sha256="468d98da104ec5c3dbb10c2ef6bb345ab154f6ca2d722d4c250ef4d6105de17a") + version("2.2.1", sha256="0d3cb14260a3fa2f4a5c4c9efa72226ffac3b4c50135ba6edaf2b3d1d23b11ee") + version("2.2.0", sha256="5b8499d157af217f1a5ee33589e774127ebc3e266c833c22cb5afbb0ed1734bf") # TODO: add openvino backend (keras 3.8+) variant( "backend", default="tensorflow", - description="backend library", + description="Backend library. Set KERAS_BACKEND with first value.", values=["tensorflow", "jax", "torch"], - multi=False, + multi=True, when="@3:", ) + # pyproject.toml with default_args(type="build"): - # pyproject.toml depends_on("py-setuptools@61:", when="@3.7:") depends_on("py-setuptools") with default_args(type=("build", "run")): - # pyproject.toml + depends_on("python@3.11:", when="@3.13:") + depends_on("python@3.10:", when="@3.11:") depends_on("python@3.9:", when="@3:") depends_on("python@3.8:", when="@2.12:") depends_on("py-absl-py", when="@2.6:") @@ -99,43 +155,19 @@ class PyKeras(PythonPackage): depends_on("py-ml-dtypes", when="@3.0.5:") depends_on("py-packaging", when="@3.4:") - # requirements-common.txt - # Many more (optional?) dependencies - - # requirements-tensorflow-cuda.txt + # https://github.com/keras-team/keras#backend-compatibility-table + with default_args(type="run"): with when("backend=tensorflow"): - depends_on("py-tensorflow@2.18.1:2.18", when="@3.10:") - depends_on("py-tensorflow@2.18", when="@3.7:3.9") - depends_on("py-tensorflow@2.17", when="@3.5:3.6") - depends_on("py-tensorflow@2.16.1:2.16", when="@3.0:3.4") - # depends_on("py-tf2onnx", when="@3.8:") + depends_on("py-tensorflow@2.16.1:", when="@3.0:") + + with when("backend=torch"): + depends_on("py-torch@2.1:", when="@3.0:") - # requirements-jax-cuda.txt with when("backend=jax"): - depends_on("py-jax@0.6.0", when="@3.10:") - depends_on("py-jax@0.4.28", when="@3.6:3.9") - depends_on("py-jax@0.4.23", when="@3.0.5:3.5") - depends_on("py-jax", when="@3:") - # depends_on("py-flax", when="@3.2:") + depends_on("py-jax@0.4.20:", when="@3.0:") - # requirements-torch-cuda.txt - with when("backend=torch"): - depends_on("py-torch@2.6.0", when="@3.10:") - depends_on("py-torch@2.5.1", when="@3.7:3.9") - depends_on("py-torch@2.4.1", when="@3.6") - depends_on("py-torch@2.4.0", when="@3.5") - depends_on("py-torch@2.2.1", when="@3.1:3.4") - depends_on("py-torch@2.1.2", when="@3.0.3:3.0.5") - depends_on("py-torch@2.1.1", when="@3.0.1:3.0.2") - depends_on("py-torch@2.1.0", when="@3.0.0") - depends_on("py-torchvision@0.20.1", when="@3.7:") - depends_on("py-torchvision@0.19.1", when="@3.6") - depends_on("py-torchvision@0.19.0", when="@3.5") - depends_on("py-torchvision@0.17.1", when="@3.1:3.4") - depends_on("py-torchvision@0.16.2", when="@3.0.3:3.0.5") - depends_on("py-torchvision@0.16.1", when="@3.0.1:3.0.2") - depends_on("py-torchvision@0.16.0", when="@3.0.0") - # depends_on("py-torch-xla", when="@3.8:") + # with when("backend=openvino"): + # depends_on("openvino@2025.3:", when="@3.8:") # Historical dependencies with default_args(type="build"): @@ -156,6 +188,19 @@ class PyKeras(PythonPackage): depends_on("py-tensorflow@2.{}".format(minor_ver), when="@2.{}".format(minor_ver)) depends_on("py-tensorboard@2.{}".format(minor_ver), when="@2.{}".format(minor_ver)) + @property + def skip_modules(self): + modules = [] + if not self.spec.satisfies("backend=jax"): + modules.extend(["keras.src.backend.jax", "keras.src.backend.numpy"]) + if not self.spec.satisfies("backend=openvino"): + modules.append("keras.src.backend.openvino") + if not self.spec.satisfies("backend=tensorflow"): + modules.append("keras.src.backend.tensorflow") + if not self.spec.satisfies("backend=torch"): + modules.extend(["keras.src.backend.torch", "keras.src.backend.torch.optimizers"]) + return modules + def url_for_version(self, version): if version >= Version("3"): url = "https://files.pythonhosted.org/packages/source/k/keras/keras-{}.tar.gz" @@ -167,7 +212,7 @@ def url_for_version(self, version): def setup_run_environment(self, env: EnvironmentModifications) -> None: if self.spec.satisfies("@3:"): - env.set("KERAS_BACKEND", self.spec.variants["backend"].value) + env.set("KERAS_BACKEND", self.spec.variants["backend"].value[0]) @when("@2.5:2") def patch(self): diff --git a/repos/spack_repo/builtin/packages/py_kerchunk/package.py b/repos/spack_repo/builtin/packages/py_kerchunk/package.py new file mode 100644 index 00000000000..5566e4088c8 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_kerchunk/package.py @@ -0,0 +1,38 @@ +# 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 PyKerchunk(PythonPackage): + """Kerchunk is a library that provides a unified way to represent a variety of chunked, + compressed data formats (e.g. NetCDF, HDF5, GRIB), allowing efficient access to the data + from traditional file systems or cloud object storage. It also provides a flexible way + to create virtual datasets from multiple files. It does this by extracting the byte ranges, + compression information and other information about the data and storing this metadata in a + new, separate object. This means that you can create a virtual aggregate dataset over + potentially many source files, for efficient, parallel and cloud-friendly in-situ access + without having to copy or translate the originals. It is a gateway to in-the-cloud massive + data processing while the data providers still insist on using legacy formats for archival + storage.""" + + homepage = "https://github.com/fsspec/kerchunk" + pypi = "kerchunk/kerchunk-0.2.9.tar.gz" + + license("MIT", checked_by="Chrismarsh") + maintainers("Chrismarsh") + + version("0.2.9", sha256="86a54da9a57a94fd6fb97be786e2d83182d3d8e4fd7c0ea2b67cde3d0641df7d") + + depends_on("python@3.11:", type=("build", "run")) + depends_on("py-setuptools@42:", type="build") + depends_on("py-setuptools-scm@7:", type="build") + + depends_on("py-fsspec@2025.2.0:", type=("build", "run")) + depends_on("py-numcodecs", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-ujson", type=("build", "run")) + depends_on("py-zarr@3.0.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_keyrings_alt/package.py b/repos/spack_repo/builtin/packages/py_keyrings_alt/package.py index 2533bb24b83..1ec8930ecfa 100644 --- a/repos/spack_repo/builtin/packages/py_keyrings_alt/package.py +++ b/repos/spack_repo/builtin/packages/py_keyrings_alt/package.py @@ -11,18 +11,29 @@ class PyKeyringsAlt(PythonPackage): """Alternate keyring implementations""" homepage = "https://github.com/jaraco/keyrings.alt" - pypi = "keyrings.alt/keyrings.alt-4.0.2.tar.gz" + pypi = "keyrings.alt/keyrings_alt-5.0.2.tar.gz" license("MIT") + version("5.0.2", sha256="8f097ebe9dc8b185106502b8cdb066c926d2180e13b4689fd4771a3eab7d69fb") version("4.2.0", sha256="2ba3d56441ba0637f5f9c096068f67010ac0453f9d0b626de2aa3019353b6431") version("4.1.0", sha256="52ccb61d6f16c10f32f30d38cceef7811ed48e086d73e3bae86f0854352c4ab2") version("4.0.2", sha256="cc475635099d6edd7e475c5a479e5b4da5e811a3af04495a1e9ada488d16fe25") + depends_on("python@3.8:", when="@5:", type=("build", "run")) depends_on("python@3.7:", when="@4.2:", type=("build", "run")) depends_on("python@3.6:", type=("build", "run")) + depends_on("py-setuptools@61.2:", when="@5.0.2:", type="build") depends_on("py-setuptools@56:", when="@4.2:", type="build") depends_on("py-setuptools@42:", type="build") depends_on("py-setuptools-scm+toml@3.4.1:", type="build") depends_on("py-jaraco-classes", when="@4.1.2:", type=("build", "run")) + depends_on("py-jaraco-context", when="@5.0.1:", type=("build", "run")) + + def url_for_version(self, version): + if version >= Version("5.0.2"): + name = "keyrings_alt" + else: + name = "keyrings.alt" + return f"https://files.pythonhosted.org/packages/source/k/keyrings.alt/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_kiwisolver/package.py b/repos/spack_repo/builtin/packages/py_kiwisolver/package.py index 04e3269be2c..036089e65b7 100644 --- a/repos/spack_repo/builtin/packages/py_kiwisolver/package.py +++ b/repos/spack_repo/builtin/packages/py_kiwisolver/package.py @@ -13,6 +13,7 @@ class PyKiwisolver(PythonPackage): homepage = "https://github.com/nucleic/kiwi" pypi = "kiwisolver/kiwisolver-1.1.0.tar.gz" + version("1.5.0", sha256="d4193f3d9dc3f6f79aaed0e5637f45d98850ebf01f7ca20e69457f3e8946b66a") version("1.4.8", sha256="23d5f023bdc8c7e54eb65f03ca5d5bb25b601eac4d7f1a042888a1f45237987e") version("1.4.7", sha256="9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60") version("1.4.6", sha256="3cda29d601445e6aa11f80d90a9b8c2ae501650c55d7ad29829bd44499c9e7e0") @@ -25,22 +26,24 @@ class PyKiwisolver(PythonPackage): version("1.1.0", sha256="53eaed412477c836e1b9522c19858a8557d6e595077830146182225613b11a75") version("1.0.1", sha256="ce3be5d520b4d2c3e5eeb4cd2ef62b9b9ab8ac6b6fedbaa0e39cdb6f50644278") - depends_on("c", type="build") - depends_on("cxx", type="build") - - depends_on("python@2.7:2.8,3.4:", type=("build", "run")) - depends_on("python@3.6:", type=("build", "run"), when="@1.2.0:") - depends_on("python@3.7:", type=("build", "run"), when="@1.3.2:") - depends_on("python@3.8:", type=("build", "run"), when="@1.4.6:") - depends_on("python@3.10:", type=("build", "run"), when="@1.4.8:") - - depends_on("py-setuptools", type="build") - depends_on("py-setuptools@61.2:", when="@1.4.4:", type="build") - depends_on("py-setuptools-scm@3.4.3:+toml", when="@1.4.4:", type="build") - depends_on("py-cppy@1.1.0:", type="build", when="@1.2.0:") - depends_on("py-cppy@1.2.0:", type="build", when="@1.4.4:") - depends_on("py-cppy@1.3.0:", type="build", when="@1.4.8:") - depends_on("py-typing-extensions", when="@1.4.4: ^python@:3.7", type=("build", "run")) + with default_args(type="build"): + depends_on("c") + depends_on("cxx") + + depends_on("py-setuptools@61.2:", when="@1.4.4:") + depends_on("py-setuptools") + depends_on("py-setuptools-scm@3.4.3:+toml", when="@1.4.4:") + depends_on("py-cppy@1.3.0:", when="@1.4.8:") + depends_on("py-cppy@1.2.0:", when="@1.4.4:") + depends_on("py-cppy@1.1.0:", when="@1.2.0:") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@1.4.8:") + depends_on("python@3.8:", when="@1.4.6:") + depends_on("python@3.7:", when="@1.3.2:") + + # Historical dependencies + depends_on("py-typing-extensions", when="@1.4.4:1.4.5 ^python@:3.7") # https://github.com/spack/spack/issues/28522 # https://github.com/nucleic/kiwi/issues/126 diff --git a/repos/spack_repo/builtin/packages/py_kneaddata/package.py b/repos/spack_repo/builtin/packages/py_kneaddata/package.py index 2608d1d8813..60d3c1d39bd 100644 --- a/repos/spack_repo/builtin/packages/py_kneaddata/package.py +++ b/repos/spack_repo/builtin/packages/py_kneaddata/package.py @@ -16,6 +16,7 @@ class PyKneaddata(PythonPackage): homepage = "https://github.com/biobakery/kneaddata" pypi = "kneaddata/kneaddata-0.12.0.tar.gz" + version("0.12.4", sha256="f95811aeb7c4a74250ce3f62879676f4e3c970f20dad2d5f9628250a9c45a6c3") version("0.12.0", sha256="b211bf973ea50cc89dd5935761ca3b101d422cfb62b215aae08f5ed92a624a58") maintainers("Pandapip1") diff --git a/repos/spack_repo/builtin/packages/py_kornia/package.py b/repos/spack_repo/builtin/packages/py_kornia/package.py index 16e80c95a80..62e2e9b1ca0 100644 --- a/repos/spack_repo/builtin/packages/py_kornia/package.py +++ b/repos/spack_repo/builtin/packages/py_kornia/package.py @@ -24,6 +24,8 @@ class PyKornia(PythonPackage): "adamjstewart", ) + version("0.8.3", sha256="c06887374eaf39fb614a77ca054383e6cc2092cb7225e45437111b4984d0f866") + version("0.8.2", sha256="5411b2ce0dd909d1608016308cd68faeef90f88c47f47e8ecd40553fd4d8b937") version("0.8.1", sha256="9ce5a54a11df661794934a293f89f8b8d49e83dd09b0b9419f6082ab07afe433") version("0.8.0", sha256="a0ffc31106e8d777a8df693572ad5ea11f7236b8bc1d452754f5e57de012ea9a") version("0.7.4", sha256="1f8dd6268ca5a2f2ec04b13c48da4dfb90ba2cfae7e31e0cc80d37f6520fa3f1") @@ -45,17 +47,19 @@ class PyKornia(PythonPackage): version("0.6.1", sha256="f638fb3309f88666545866c162f510b6d485fd8f7131d5570d4e6c0d295fdcd6") version("0.5.10", sha256="428b4b934a2ba7360cc6cba051ed8fd96c2d0f66611fdca0834e82845f14f65d") - # pyproject.toml - depends_on("py-setuptools@61.2:", when="@0.6.11:", type="build") - depends_on("py-setuptools", type="build") + with default_args(type="build"): + depends_on("py-hatchling", when="@0.8.3:") - # requirements/requirements.txt - depends_on("py-kornia-rs@0.1.9:", when="@0.8.1:", type=("build", "run")) - depends_on("py-kornia-rs@0.1:", when="@0.7.2:", type=("build", "run")) - depends_on("py-packaging", when="@0.6:", type=("build", "run")) - depends_on("py-torch@1.9.1:", when="@0.6.9:", type=("build", "run")) - depends_on("py-torch@1.8.1:", when="@0.6:", type=("build", "run")) - depends_on("py-torch@1.6.0:", type=("build", "run")) + # Historical dependencies + depends_on("py-pytest-runner", when="@:0.6.10") + depends_on("py-setuptools@61.2:", when="@0.6.11:0.8.2") + depends_on("py-setuptools", when="@:0.6.10") - # Historical dependencies - depends_on("py-pytest-runner", when="@:0.6.10", type="build") + with default_args(type=("build", "run")): + depends_on("py-kornia-rs@0.1.9:", when="@0.8.1:") + depends_on("py-kornia-rs@0.1:", when="@0.7.2:") + depends_on("py-packaging", when="@0.6:") + depends_on("py-torch@2:", when="@0.8.2:") + depends_on("py-torch@1.9.1:", when="@0.6.9:") + depends_on("py-torch@1.8.1:", when="@0.6:") + depends_on("py-torch@1.6.0:") diff --git a/repos/spack_repo/builtin/packages/py_kornia_rs/package.py b/repos/spack_repo/builtin/packages/py_kornia_rs/package.py index d2d3af0154f..d4379b08032 100644 --- a/repos/spack_repo/builtin/packages/py_kornia_rs/package.py +++ b/repos/spack_repo/builtin/packages/py_kornia_rs/package.py @@ -12,6 +12,7 @@ class PyKorniaRs(PythonPackage): homepage = "http://www.kornia.org/" url = "https://github.com/kornia/kornia-rs/archive/refs/tags/v0.1.1.tar.gz" + git = "https://github.com/kornia/kornia-rs.git" license("Apache-2.0") maintainers( @@ -24,27 +25,43 @@ class PyKorniaRs(PythonPackage): "adamjstewart", ) + version("main", branch="main") + version("0.1.10", sha256="b6f5dd6e1e25e2163648953476a5dada2f6a9e5d8e524f78d1680977152bb179") version("0.1.9", sha256="a9b8a6afa00d80c9b1b1e3e5ff650762dac9605829a4f768ff5aedf47649efc2") version("0.1.1", sha256="b9ac327fae6e982e6d7df9faeadd1d4f6453e65521819ae9ae5b90e9da0ed1a5") version("0.1.0", sha256="0fca64f901dddff49b72e51fc92a25f0a7606e9a1a72ef283606245ea6b4f90d") - depends_on("py-maturin@1", when="@0.1.6:", type="build") - depends_on("py-maturin@1.3.2:", when="@:0.1.5", type="build") + # PyO3 has tight coupling with CPython version + # Assume Python versions aren't supported until wheels are available on PyPI + with default_args(type=("build", "run")): + depends_on("python@:3.14") + depends_on("python@:3.13", when="@:0.1.9") + depends_on("python@:3.12", when="@:0.1.7") + depends_on("python@:3.11", when="@:0.1.0") - # rav1e needs rustdoc - depends_on("rust+dev", type="build") + with default_args(type="build"): + # kornia-py/pyproject.toml + depends_on("py-maturin@1", when="@0.1.6:") + depends_on("py-maturin@1.3.2:", when="@:0.1.5") - # pyo3 needs cmake - depends_on("cmake", type="build") + # kornia-py/Cargo.toml + depends_on("rust@1.76:", when="@0.1.7:") - # turbojpeg-sys needs an assembly compiler - depends_on("nasm", type="build") + # rav1e needs rustdoc + depends_on("rust+dev") + + # pyo3 needs cmake + depends_on("cmake") + + # turbojpeg-sys needs an assembly compiler + depends_on("nasm") # dlpack-rs needs libclang depends_on("llvm+clang") # See https://github.com/kornia/kornia-rs/commit/93f768137814709b60767f7fc24a9b0184002aee patch("py-kornia-rs-pin-fast_image_resize.patch", when="@0.1.9") + patch("py-kornia-rs-pin-circular_buffer.patch", when="@0.1.9") @property def build_directory(self): diff --git a/repos/spack_repo/builtin/packages/py_kornia_rs/py-kornia-rs-pin-circular_buffer.patch b/repos/spack_repo/builtin/packages/py_kornia_rs/py-kornia-rs-pin-circular_buffer.patch new file mode 100644 index 00000000000..2146f1ddeb9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_kornia_rs/py-kornia-rs-pin-circular_buffer.patch @@ -0,0 +1,13 @@ +diff --git a/crates/kornia-io/Cargo.toml b/crates/kornia-io/Cargo.toml +index af6b17b..53c176d 100644 +--- a/crates/kornia-io/Cargo.toml ++++ b/crates/kornia-io/Cargo.toml +@@ -17,7 +17,7 @@ rustdoc-args = ["--cfg", "docsrs"] + + [dependencies] + image = "0.25" +-circular-buffer = "1.1.0" ++circular-buffer = "=1.1" + kornia-image = { workspace = true } + png = "0.17" + jpeg-encoder = "0.6" diff --git a/repos/spack_repo/builtin/packages/py_kt_legacy/package.py b/repos/spack_repo/builtin/packages/py_kt_legacy/package.py index 977fcdc9747..f3f5fb51a4c 100644 --- a/repos/spack_repo/builtin/packages/py_kt_legacy/package.py +++ b/repos/spack_repo/builtin/packages/py_kt_legacy/package.py @@ -17,6 +17,7 @@ class PyKtLegacy(PythonPackage): license("Apache-2.0") + version("1.0.5", sha256="dbbade58f12c6a6da6062f4b045a6395a8d4195815e3e064bc3e609b69c8a26c") version("1.0.4", sha256="a94112e42a50e7cc3aad31f3287aa384c23555ea1432c55b5823852e09e706cf") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_langcodes/package.py b/repos/spack_repo/builtin/packages/py_langcodes/package.py index 8e165fd1f98..ded4833699e 100644 --- a/repos/spack_repo/builtin/packages/py_langcodes/package.py +++ b/repos/spack_repo/builtin/packages/py_langcodes/package.py @@ -15,7 +15,13 @@ class PyLangcodes(PythonPackage): license("MIT") + version("3.5.1", sha256="40bff315e01b01d11c2ae3928dd4f5cbd74dd38f9bd912c12b9a3606c143f731") + version("3.5.0", sha256="1eef8168d07e51e131a2497ffecad4b663f6208e7c3ae3b8dc15c51734a6f801") version("3.3.0", sha256="794d07d5a28781231ac335a1561b8442f8648ca07cd518310aeb45d6f0807ef6") depends_on("python@3.6:", type=("build", "run")) - depends_on("py-poetry-core@1:", type="build") + depends_on("python@3.9:", type=("build", "run"), when="@3.5:") + depends_on("py-setuptools@60:", type="build", when="@3.5:") + depends_on("py-setuptools-scm@8:", type="build", when="@3.5:") + depends_on("py-poetry-core@1:", type="build", when="@:3.4") + depends_on("py-language-data@1.2:", type=("build", "run"), when="@3.5:") diff --git a/repos/spack_repo/builtin/packages/py_language_data/package.py b/repos/spack_repo/builtin/packages/py_language_data/package.py new file mode 100644 index 00000000000..9a3e26906cc --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_language_data/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyLanguageData(PythonPackage): + """Supplementary data about languages used by the langcodes module""" + + homepage = "https://github.com/georgkrause/language_data" + pypi = "language_data/language_data-1.3.0.tar.gz" + + license("MIT") + + version("1.3.0", sha256="7600ef8aa39555145d06c89f0c324bf7dab834ea0b0a439d8243762e3ebad7ec") + + depends_on("py-setuptools@60:", type="build") + depends_on("py-setuptools-scm@8:", type="build") + depends_on("py-marisa-trie@1.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_lark/package.py b/repos/spack_repo/builtin/packages/py_lark/package.py index 415daf58823..45e442e1b53 100644 --- a/repos/spack_repo/builtin/packages/py_lark/package.py +++ b/repos/spack_repo/builtin/packages/py_lark/package.py @@ -15,6 +15,9 @@ class PyLark(PythonPackage): license("MIT") + version("1.3.1", sha256="b426a7a6d6d53189d318f2b6236ab5d6429eaf09259f1ca33eb716eed10d2905") + version("1.2.2", sha256="ca807d0162cd16cef15a8feecb862d7319e7a09bdb13aef927968e45040fed80") + version("1.1.9", sha256="15fa5236490824c2c4aba0e22d2d6d823575dcaf4cdd1848e34b6ad836240fba") version("1.1.2", sha256="7a8d0c07d663da9391d7faee1bf1d7df4998c47ca43a593cbef5c7566acd057a") version("1.1.1", sha256="5115193433051f079374c4f81059fa4bf2afa78cc87dd87817ed4435e8647c82") version("1.1.0", sha256="669eab99a9627b2b9e0c6fb97f23113c64d673c93d804bca40b05b2a765f13c0") diff --git a/repos/spack_repo/builtin/packages/py_lazy_loader/package.py b/repos/spack_repo/builtin/packages/py_lazy_loader/package.py index 6a7d5805ade..b89554c4228 100644 --- a/repos/spack_repo/builtin/packages/py_lazy_loader/package.py +++ b/repos/spack_repo/builtin/packages/py_lazy_loader/package.py @@ -12,9 +12,11 @@ class PyLazyLoader(PythonPackage): homepage = "https://scientific-python.org/specs/spec-0001/" pypi = "lazy_loader/lazy_loader-0.1.tar.gz" + git = "https://github.com/scientific-python/lazy-loader.git" license("BSD-3-Clause") + version("0.5", sha256="717f9179a0dbed357012ddad50a5ad3d5e4d9a0b8712680d4e687f5e6e6ed9b3") version("0.4", sha256="47c75182589b91a4e1a85a136c074285a5ad4d9f39c63e0d7fb76391c4574cd1") version("0.3", sha256="3b68898e34f5b2a29daaaac172c6555512d0f32074f147e2254e4a6d9d838f37") version("0.1", sha256="77ce7f2737ebabf9c0ff73b4a99c947876d74d24c2f026544e32246ecca5feca") 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_lerc/package.py b/repos/spack_repo/builtin/packages/py_lerc/package.py index 6995a1badf5..2f0c8e30085 100644 --- a/repos/spack_repo/builtin/packages/py_lerc/package.py +++ b/repos/spack_repo/builtin/packages/py_lerc/package.py @@ -13,6 +13,7 @@ class PyLerc(PythonPackage): homepage = "https://github.com/Esri/lerc" pypi = "lerc/lerc-0.1.0.tar.gz" + version("4.0.1", sha256="dc4c243db0cd1d5c9df612f69bd75b880679aa0b575b347c491f1ec5bc891e41") version("0.1.0", sha256="46cac3f5a0194518f49a52e3ae073093fc85b0d79396383b64b1f9dba4aeacc1") depends_on("python@3.6:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_lfpykit/package.py b/repos/spack_repo/builtin/packages/py_lfpykit/package.py index 4501a62d757..70ab00b7345 100644 --- a/repos/spack_repo/builtin/packages/py_lfpykit/package.py +++ b/repos/spack_repo/builtin/packages/py_lfpykit/package.py @@ -16,6 +16,7 @@ class PyLfpykit(PythonPackage): license("GPL-3.0-only") + version("0.5.1", sha256="a962029460c8173c4fec3923204e04d64c370b05740b64c2d07efbe29cbe63a6") version("0.5", sha256="9a7ae80ad905bb8dd0eeab8517b43c3d5b4fff2b8766c9d5a36320a7a67bd545") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_libclang/package.py b/repos/spack_repo/builtin/packages/py_libclang/package.py index 2137be0bc24..6dc84df1ffe 100644 --- a/repos/spack_repo/builtin/packages/py_libclang/package.py +++ b/repos/spack_repo/builtin/packages/py_libclang/package.py @@ -38,9 +38,14 @@ class PyLibclang(PythonPackage): depends_on("llvm+clang@" + ver, when="@" + ver, type="build") def patch(self): + if self.version >= Version("14"): + setup = "setup_ext.py" + else: + setup = "setup.py" + filter_file( "source_dir = './native/'", "source_dir = '{0}'".format(self.spec["llvm"].libs.directories[0]), - "setup.py", + setup, string=True, ) diff --git a/repos/spack_repo/builtin/packages/py_libcst/package.py b/repos/spack_repo/builtin/packages/py_libcst/package.py index ed6ec980853..9399e42c3fb 100644 --- a/repos/spack_repo/builtin/packages/py_libcst/package.py +++ b/repos/spack_repo/builtin/packages/py_libcst/package.py @@ -23,3 +23,4 @@ class PyLibcst(PythonPackage): depends_on("py-typing-extensions@3.7.4.2:", type=("build", "run")) depends_on("py-typing-inspect@0.4:", type=("build", "run")) depends_on("py-pyyaml@5.2:", type=("build", "run")) + depends_on("rust", type="build") diff --git a/repos/spack_repo/builtin/packages/py_librt/package.py b/repos/spack_repo/builtin/packages/py_librt/package.py new file mode 100644 index 00000000000..3909511c846 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_librt/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 PyLibrt(PythonPackage): + """Mypyc runtime library.""" + + homepage = "https://github.com/mypyc/librt" + pypi = "librt/librt-0.6.3.tar.gz" + + license("MIT AND PSF-2.0") + + version("0.11.0", sha256="075dc3ef4458a278e0195cbf6ac9d38808d9b906c5a6c7f7f79c3888276a3fb1") + version("0.9.0", sha256="a0951822531e7aee6e0dfb556b30d5ee36bbe234faf60c20a16c01be3530869d") + version("0.6.3", sha256="c724a884e642aa2bbad52bb0203ea40406ad742368a5f90da1b220e970384aae") + + depends_on("python@3.9:3.14", type=("build", "link", "run")) + depends_on("c", type="build") + depends_on("py-setuptools@77.0.3:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_lightly/package.py b/repos/spack_repo/builtin/packages/py_lightly/package.py index e4889c5bc4c..6cd6b14bf5c 100644 --- a/repos/spack_repo/builtin/packages/py_lightly/package.py +++ b/repos/spack_repo/builtin/packages/py_lightly/package.py @@ -36,29 +36,9 @@ class PyLightly(PythonPackage): version("1.4.7", sha256="dce719996d9b01b2a3c652e9cbab3ff80d078c4ed86d1adb39220d20e1f3fdf2") version("1.4.6", sha256="1c8b904a96fadaefbaa00296eea0ac1e8b50cb10e94595c74b0abada5f4f5a64") version("1.4.5", sha256="67b1de64950ff5bc35ef86fec3049f437ed1c9cb4a191c43b52384460207535f") - version( - "1.4.4", - sha256="e726120437ee61754da8e1c384d2ed27d9a7004e037c74d98e3debbc98cbd4a4", - deprecated=True, - ) - version( - "1.4.3", - sha256="ff2cfded234bc5338519bdb2de774c59a55200159f4429b009b7a3923bc0be0e", - deprecated=True, - ) - version( - "1.4.2", - sha256="bae451fcd04fbd3cc14b044a2583ae24591533d4a8a6ff51e5f1477f9a077648", - deprecated=True, - ) - version( - "1.4.1", - sha256="4c64657639c66ee5c8b4b8d300fc9b5287dc7e14a260f3a2e04917dca7f57f5b", - deprecated=True, - ) with default_args(type="build"): - depends_on("py-setuptools@21:", when="@1.4.2:") + depends_on("py-setuptools@21:") depends_on("py-setuptools-scm", when="@1.5.11:") with default_args(type=("build", "run")): @@ -71,10 +51,8 @@ class PyLightly(PythonPackage): depends_on("py-six@1.10:") depends_on("py-tqdm@4.44:") depends_on("py-torch") - depends_on("py-torch@:1", when="@:1.4.1") depends_on("py-torchvision") depends_on("py-pytorch-lightning@1.0.4:") - depends_on("py-pytorch-lightning@1.0.4:1", when="@:1.4.1") depends_on("py-urllib3@1.25.3:", when="@1.4.8:") depends_on("py-urllib3@1.15.1:") depends_on("py-pydantic@1.10.5:", when="@1.5.11:") @@ -83,13 +61,9 @@ class PyLightly(PythonPackage): # Historical dependencies depends_on("py-setuptools@21:", when="@1.4.8,1.4.15:1.4.25") - depends_on("py-setuptools@21:65.5.1", when="@:1.4.1") # https://github.com/lightly-ai/lightly/issues/1558 depends_on("py-numpy@:1", when="@:1.5.10") - # https://github.com/lightly-ai/lightly/issues/1153 - depends_on("py-torch+distributed", when="@:1.4.4") - # https://github.com/microsoft/torchgeo/issues/1824 conflicts("py-timm@:0.9.8", when="@1.4.26") diff --git a/repos/spack_repo/builtin/packages/py_lightning/package.py b/repos/spack_repo/builtin/packages/py_lightning/package.py index 042c60e8f7e..ef003fbf504 100644 --- a/repos/spack_repo/builtin/packages/py_lightning/package.py +++ b/repos/spack_repo/builtin/packages/py_lightning/package.py @@ -12,57 +12,61 @@ class PyLightning(PythonPackage): homepage = "https://github.com/Lightning-AI/pytorch-lightning" pypi = "lightning/lightning-2.0.0.tar.gz" + git = "https://github.com/Lightning-AI/pytorch-lightning.git" skip_modules = ["lightning.app", "lightning.data", "lightning.store"] - maintainers("adamjstewart") - license("Apache-2.0") + 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") + version("2.5.6", sha256="57b6abe87080895bc237fb7f36b7b4abaa2793760cbca00e3907e56607e0ed27") + version("2.5.5", sha256="4d3d66c5b1481364a7e6a1ce8ddde1777a04fa740a3145ec218a9941aed7dd30") + version("2.5.4", sha256="cec9459a356117f11c501b591fe80f327947614fc345dc6b6c9f8d4d373f214e") + version("2.5.3", sha256="4ed3e12369a1e0f928beecf5c9f5efdabda60a9216057954851e2d89f1abecde") version("2.5.2", sha256="9550df613cfb22358ebf77b4a8ad45f3767cd7d26ba2d52b7f036bd3cdd701c4") version("2.5.1", sha256="aca88f8abf3fc38d8b40c1f82ce481f4379c2b181a6eeeb9217db0aba8e40736") version("2.5.0", sha256="3090d979acbc5a97a91906687f9530a246f357fd6b1a81a38d8a8c998ba6db5f") version("2.4.0", sha256="9156604cc56e4b2b603f34fa7f0fe5107375c8e6d85e74544b319a15faa9ed0e") - version("2.3.3", sha256="7f454711895c1c6e455766f01fa39522e25e5ab54c15c5e5fbad342fa92bc93c") - version("2.3.2", sha256="6d02862e7e8c9e6903c06314296d0950e677f7e67ad615c3262fe7c73d95f4b8") - version("2.3.1", sha256="29cf87270a1779984d3614f7f748af57e3695396a25e814119840894505c334c") - version("2.3.0", sha256="4bb4d6e3650d2d5f544ad60853a22efc4e164aa71b9596d13f0454b29df05130") - version("2.2.5", sha256="a6c31a2052fc30fee34aec7e31ea2a117a005d049c3593fc9cfb867a34f962bf") - version("2.2.4", sha256="4cc3fb3edf04fcd63c0ecf75087d2fa06163759fc8c1fc500b16404ac1854f77") - version("2.2.3", sha256="9f208d57ad9c1ae40918136dbef673f02d8e9ab519d33237a6e74984bcd73d96") - version("2.2.2", sha256="799e933bf51f3f10516b3f1acf3650e4bc063682eb5b5dc9dcbd1ebd38e03e3a") - version("2.2.1", sha256="b3e46d596b32cafd1fb9b21fdba1b1767df97b1af5cc702693d1c51df60b19aa") - version("2.2.0", sha256="acf47bebc924f443f90a860b84a3f5566933a930adde42e3021abb5cf466c45f") - version("2.1.4", sha256="0e45098c700fa28c604a11ae233ce181b44aeffce2404debebc2616118431d9f") - version("2.1.3", sha256="70867a59e6b67e7720958ceb14476a2a00f34c12ad03680faed3163ed70138e2") - version("2.1.2", sha256="3b2599a8a719916cb03526e6570356809729680c6cda09391232e2aba0a4ed4b") - version("2.1.1", sha256="865491940d20a9754eac7494aa18cab893e0c2b31e83743349eeeaf31dfb52db") - version("2.1.0", sha256="1f78f5995ae7dcffa1edf34320db136902b73a0d1b304404c48ec8be165b3a93") - version("2.0.9", sha256="2395ece6e29e12064718ff16b8edec5685df7f7095d4fee78edb0a654f5cd7eb") - version("2.0.8", sha256="db914e211b5c3b079a821be6e4344e72d0a729163676a65c4e00aae98390ae7b") - version("2.0.7", sha256="f05acd4ba846505d40125b4f9f0bda0804b2b0356e2ad2fd4e4bf7d1c61c8cc6") - version("2.0.6", sha256="bff959f65eed2f626dd65e7b2cfd0d3ddcd0c4ca19ffc8f5f49a4ba4494ca528") - version("2.0.5", sha256="77df233129b29c11df7b5e071e24e29420d5efbdbbac9cb6fb4602b7b5afce8a") - version("2.0.4", sha256="f5f5ed75a657caa8931051590ed000d46bf1b8311ae89bb17a961c3f299dbf33") - version("2.0.3", sha256="5a70f05e40f1d7882f81eace0d4a86fe2604b423f8df42beaabd187bfdb420cf") - version("2.0.2", sha256="fa32d671850a5be2d961c6705c927f6f48d1cf9696f61f7d865244142e684430") - version("2.0.1", sha256="abf4f9e10b0d97348336038db79f4efc75daa2f3f81876822273023294d6ef3e") - version("2.0.0", sha256="dfe158aa91ac139d8bdfccc7cdb627072e0052076ae9c0459c8fa12a028dbe6c") - version( - "1.9.5", - sha256="4a6ee1bf338f7677f04d339b84dd0c9c0fa407c3dacea366a111dc86476d4dec", - deprecated=True, - ) + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2024-8019/ + version("2.3.3", sha256="7f454711895c1c6e455766f01fa39522e25e5ab54c15c5e5fbad342fa92bc93c") + # https://www.cvedetails.com/cve/CVE-2024-8020/ + # https://www.cvedetails.com/cve/CVE-2024-5980/ + # https://www.cvedetails.com/cve/CVE-2024-5452/ + version("2.3.2", sha256="6d02862e7e8c9e6903c06314296d0950e677f7e67ad615c3262fe7c73d95f4b8") + version("2.3.1", sha256="29cf87270a1779984d3614f7f748af57e3695396a25e814119840894505c334c") + version("2.3.0", sha256="4bb4d6e3650d2d5f544ad60853a22efc4e164aa71b9596d13f0454b29df05130") + version("2.2.5", sha256="a6c31a2052fc30fee34aec7e31ea2a117a005d049c3593fc9cfb867a34f962bf") + version("2.2.4", sha256="4cc3fb3edf04fcd63c0ecf75087d2fa06163759fc8c1fc500b16404ac1854f77") + version("2.2.3", sha256="9f208d57ad9c1ae40918136dbef673f02d8e9ab519d33237a6e74984bcd73d96") + version("2.2.2", sha256="799e933bf51f3f10516b3f1acf3650e4bc063682eb5b5dc9dcbd1ebd38e03e3a") + version("2.2.1", sha256="b3e46d596b32cafd1fb9b21fdba1b1767df97b1af5cc702693d1c51df60b19aa") + version("2.2.0", sha256="acf47bebc924f443f90a860b84a3f5566933a930adde42e3021abb5cf466c45f") + version("2.1.4", sha256="0e45098c700fa28c604a11ae233ce181b44aeffce2404debebc2616118431d9f") + version("2.1.3", sha256="70867a59e6b67e7720958ceb14476a2a00f34c12ad03680faed3163ed70138e2") + version("2.1.2", sha256="3b2599a8a719916cb03526e6570356809729680c6cda09391232e2aba0a4ed4b") + version("2.1.1", sha256="865491940d20a9754eac7494aa18cab893e0c2b31e83743349eeeaf31dfb52db") + version("2.1.0", sha256="1f78f5995ae7dcffa1edf34320db136902b73a0d1b304404c48ec8be165b3a93") + version("2.0.9", sha256="2395ece6e29e12064718ff16b8edec5685df7f7095d4fee78edb0a654f5cd7eb") + version("2.0.8", sha256="db914e211b5c3b079a821be6e4344e72d0a729163676a65c4e00aae98390ae7b") + version("2.0.7", sha256="f05acd4ba846505d40125b4f9f0bda0804b2b0356e2ad2fd4e4bf7d1c61c8cc6") + version("2.0.6", sha256="bff959f65eed2f626dd65e7b2cfd0d3ddcd0c4ca19ffc8f5f49a4ba4494ca528") + version("2.0.5", sha256="77df233129b29c11df7b5e071e24e29420d5efbdbbac9cb6fb4602b7b5afce8a") + version("2.0.4", sha256="f5f5ed75a657caa8931051590ed000d46bf1b8311ae89bb17a961c3f299dbf33") depends_on("py-setuptools", type="build") with default_args(type=("build", "run")): - # src/lightning/__setup__.py - depends_on("python@3.9:", when="@2.4:") - depends_on("python@3.8:", when="@2:") - # src/lightning.egg-info/requires.txt - depends_on("py-pyyaml@5.4:7") - depends_on("py-fsspec@2022.5:2025+http", when="@2.3:") + depends_on("py-pyyaml@5.4.1:7", when="@2.5.3:") + depends_on("py-pyyaml@5.4:7", when="@:2.5.2") + depends_on("py-fsspec@2022.5:2027+http", when="@2.6.1:") + depends_on("py-fsspec@2022.5:2026+http", when="@2.5.3:2.6.0") + depends_on("py-fsspec@2022.5:2025+http", when="@2.3:2.5.2") depends_on("py-fsspec@2022.5:2024+http", when="@2.1.3:2.2") depends_on("py-fsspec@2021.6.1:2024+http", when="@2.1.0:2.1.2") depends_on("py-fsspec@2022.5:2024+http", when="@2.0.5:2.0") @@ -70,20 +74,22 @@ class PyLightning(PythonPackage): depends_on("py-lightning-utilities@0.10:1", when="@2.4:") depends_on("py-lightning-utilities@0.8:1", when="@2.1:2.3") depends_on("py-lightning-utilities@0.7:1", when="@2.0") - depends_on("py-lightning-utilities@0.6.0.post0:1", when="@:1") - depends_on("py-packaging@20:24", when="@2.1:") + depends_on("py-packaging@23:26", when="@2.6.1:") + depends_on("py-packaging@20:26", when="@2.5.3:2.6.0") + depends_on("py-packaging@20:24", when="@2.1:2.5.2") depends_on("py-packaging@17.1:24", when="@:2.0") depends_on("py-torch@2.1:3", when="@2.4:") depends_on("py-torch@2:3", when="@2.3") depends_on("py-torch@1.13:3", when="@2.2:") depends_on("py-torch@1.12:3", when="@2.1") depends_on("py-torch@1.11:3", when="@2.0") - depends_on("py-torch@1.10:3", when="@:1") - depends_on("py-torchmetrics@0.7:2", when="@2.0.9:") + depends_on("py-torchmetrics@0.7.1:2", when="@2.5.3:") + depends_on("py-torchmetrics@0.7:2", when="@2.0.9:2.5.2") depends_on("py-torchmetrics@0.7:1", when="@:2.0.8") depends_on("py-tqdm@4.57:5") - depends_on("py-typing-extensions@4.4:5", when="@2.2:") - depends_on("py-typing-extensions@4:5") + depends_on("py-typing-extensions@4.5.1:5", when="@2.5.3:") + depends_on("py-typing-extensions@4.4:5", when="@2.2:2.5.2") + depends_on("py-typing-extensions@4:5", when="@:2.1") # Only an alias, not actually used by the library # depends_on("py-pytorch-lightning", when="@2:") @@ -104,30 +110,22 @@ class PyLightning(PythonPackage): depends_on("py-dateutils@:1") depends_on("py-deepdiff@5.7:7") depends_on("py-fastapi@0.92:1", when="@2.0.4:") - depends_on("py-fastapi@0.69:0.88", when="@2.0.3") - depends_on("py-fastapi@:0.88", when="@:2.0.2") depends_on("py-inquirer@2.10:4") depends_on("py-lightning-cloud@0.5.38:", when="@2.0.9:") depends_on("py-lightning-cloud@0.5.37:", when="@2.0.5:") depends_on("py-lightning-cloud@0.5.34:", when="@2.0.3:") - depends_on("py-lightning-cloud@0.5.31:", when="@2:") - depends_on("py-lightning-cloud@0.5.27:", when="@:1") depends_on("py-psutil@:6") depends_on("py-pydantic@1.7.4:2.1", when="@2.0.7:") depends_on("py-pydantic@1.7.4:2.0", when="@2.0.6") depends_on("py-pydantic@1.7.4:1", when="@2.0.5") depends_on("py-pydantic@1.7.4:3", when="@2.0.3:2.0.4") - depends_on("py-pydantic@:2", when="@:2.0.2") depends_on("py-python-multipart@0.0.5:1") depends_on("py-requests@:3") depends_on("py-rich@12.3:14", when="@2:") - depends_on("py-rich@:14", when="@:1") depends_on("py-starlette", when="@2.0.3:") - depends_on("py-starlette@:1", when="@:2.0.2") depends_on("py-starsessions@1.2.1:1") depends_on("py-traitlets@5.3:6") depends_on("py-urllib3@:3", when="@2.0.4:") - depends_on("py-urllib3@:2", when="@:2.0.3") depends_on("py-uvicorn@:1") depends_on("py-websocket-client@:2") depends_on("py-websockets@:12", when="@2.0.5:") diff --git a/repos/spack_repo/builtin/packages/py_lightning_utilities/package.py b/repos/spack_repo/builtin/packages/py_lightning_utilities/package.py index a107b5786ea..57729ccae45 100644 --- a/repos/spack_repo/builtin/packages/py_lightning_utilities/package.py +++ b/repos/spack_repo/builtin/packages/py_lightning_utilities/package.py @@ -11,12 +11,13 @@ class PyLightningUtilities(PythonPackage): """Common Python utilities and GitHub Actions in Lightning Ecosystem""" homepage = "https://github.com/Lightning-AI/utilities" - pypi = "lightning-utilities/lightning-utilities-0.4.1.tar.gz" + pypi = "lightning-utilities/lightning_utilities-0.4.1.tar.gz" maintainers("adamjstewart") license("Apache-2.0") + version("0.15.3", sha256="792ae0204c79f6859721ac7f386c237a33b0ed06ba775009cb894e010a842033") version("0.11.2", sha256="adf4cf9c5d912fe505db4729e51d1369c6927f3a8ac55a9dff895ce5c0da08d9") version("0.8.0", sha256="8e5d95c7c57f026cdfed7c154303e88c93a7a5e868c9944cb02cf71f1db29720") version( @@ -28,12 +29,24 @@ class PyLightningUtilities(PythonPackage): version("0.4.0", sha256="961c29774c2c8303e0a2f6e6512a2e21e1d8acaf6df182865667af4a51bc176c") version("0.3.0", sha256="d769ab9b76ebdee3243d1051d509aafee57d7947734ddc22977deef8a6427f2f") - # requirements/core.txt - depends_on("py-importlib-metadata@4:", when="@0.4.1: ^python@:3.7", type=("build", "run")) - depends_on("py-packaging@17.1:", when="@0.6.0.post0:", type=("build", "run")) - depends_on("py-packaging@20:", when="@0.5:0.6.0.a", type=("build", "run")) - depends_on("py-setuptools", type=("build", "run")) - depends_on("py-typing-extensions", when="@0.5:", type=("build", "run")) - - # Historical dependencies - depends_on("py-fire", when="@0.3.0", type=("build", "run")) + depends_on("py-setuptools", type="build") + + with default_args(type=("build", "run")): + # requirements/core.txt + depends_on("py-packaging@22:", when="@0.15.3:") + depends_on("py-packaging@17.1:", when="@0.6.0.post0:") + depends_on("py-packaging@20:", when="@0.5:0.6.0.a") + depends_on("py-typing-extensions", when="@0.5:") + + # Historical dependencies + depends_on("py-fire", when="@0.3.0") + # https://github.com/Lightning-AI/utilities/pull/473 + depends_on("py-setuptools@:81", when="@:0.15.2") + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/l/lightning-utilities/{}-{}.tar.gz" + if version >= Version("0.11.3"): + name = "lightning_utilities" + else: + name = "lightning-utilities" + return url.format(name, version) diff --git a/repos/spack_repo/builtin/packages/py_lightpipes/package.py b/repos/spack_repo/builtin/packages/py_lightpipes/package.py new file mode 100644 index 00000000000..051d4368f6e --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_lightpipes/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 PyLightpipes(PythonPackage): + """LightPipes for Python optical toolbox.""" + + homepage = "https://github.com/opticspy/lightpipes" + pypi = "LightPipes/LightPipes-2.1.5-py3-none-any.whl" + # Work-around URL until the CI version check can rely on the URL related to a PyPi wheel. + url = "https://pypi.io/packages/py3/l/lightpipes/LightPipes-2.1.5-py3-none-any.whl" + maintainers("LydDeb") + + license("BSD-3-Clause", checked_by="LydDeb") + + version("2.1.5", sha256="0943916bf5e57a2197e337098ab8941132ffc706dabe99c7c03b2552fc107810") + + variant("fftw", default=False, description="Enable fftw support") + + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + depends_on("py-matplotlib", type=("build", "run")) + depends_on("py-pyfftw", type=("build", "run"), when="+fftw") diff --git a/repos/spack_repo/builtin/packages/py_lil_aretomo/package.py b/repos/spack_repo/builtin/packages/py_lil_aretomo/package.py new file mode 100644 index 00000000000..fb0e540f2a4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_lil_aretomo/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyLilAretomo(PythonPackage): + """A lightweight Python API for AreTomo.""" + + homepage = "https://github.com/teamtomo/lil-aretomo" + pypi = "lil_aretomo/lil_aretomo-0.1.1.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("0.1.1", sha256="02ccb0efbf2c06304570117f142e78331bfffdde46864e22de11c6cd7f30f178") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@42:", type="build") + depends_on("py-setuptools-scm@3.4: +toml", type="build") + + depends_on("aretomo", type="run") diff --git a/repos/spack_repo/builtin/packages/py_lineenhancer/package.py b/repos/spack_repo/builtin/packages/py_lineenhancer/package.py index 96370749b42..13fafa9684b 100644 --- a/repos/spack_repo/builtin/packages/py_lineenhancer/package.py +++ b/repos/spack_repo/builtin/packages/py_lineenhancer/package.py @@ -17,6 +17,7 @@ class PyLineenhancer(PythonPackage): license("MIT") + version("1.0.9", sha256="170698c7947c3257d19234668ad6743df163d26fe607dcab8d84a1995442f7b6") version("1.0.8", sha256="a1c7f2556110135d7298b0002674b669b8bbf23f94d63e3e3db8f17f2fd3efbe") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_linkchecker/package.py b/repos/spack_repo/builtin/packages/py_linkchecker/package.py index cb4e0cd1cee..2784d6c82d1 100644 --- a/repos/spack_repo/builtin/packages/py_linkchecker/package.py +++ b/repos/spack_repo/builtin/packages/py_linkchecker/package.py @@ -17,6 +17,7 @@ class PyLinkchecker(PythonPackage): license("GPL-2.0") + version("10.6.0", sha256="fb7e8facda7749c2fa5fa5dc241c0adc302da3d31d588964a2570db501aa49e5") version("10.5.0", sha256="978b42b803e58b7a8f6ffae1ff88fa7fd1e87b944403b5dc82380dd59f516bb9") depends_on("python@3.9:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_linkify_it_py/package.py b/repos/spack_repo/builtin/packages/py_linkify_it_py/package.py index 5f25fb9da79..29eddb6034f 100644 --- a/repos/spack_repo/builtin/packages/py_linkify_it_py/package.py +++ b/repos/spack_repo/builtin/packages/py_linkify_it_py/package.py @@ -15,6 +15,7 @@ class PyLinkifyItPy(PythonPackage): license("MIT") + version("2.0.3", sha256="68cda27e162e9215c17d786649d1da0021a451bdc436ef9e0fa0ba5234b9b048") version("2.0.2", sha256="19f3060727842c254c808e99d465c80c49d2c7306788140987a1a7a29b0d6ad2") version("1.0.3", sha256="2b3f168d5ce75e3a425e34b341a6b73e116b5d9ed8dbbbf5dc7456843b7ce2ee") diff --git a/repos/spack_repo/builtin/packages/py_lit/package.py b/repos/spack_repo/builtin/packages/py_lit/package.py index 843b01cd5d5..de130d1383f 100644 --- a/repos/spack_repo/builtin/packages/py_lit/package.py +++ b/repos/spack_repo/builtin/packages/py_lit/package.py @@ -15,6 +15,13 @@ class PyLit(PythonPackage): pypi = "lit/lit-0.5.0.tar.gz" + version("18.1.8", sha256="47c174a186941ae830f04ded76a3444600be67d5e5fb8282c3783fba671c4edb") + version("17.0.6", sha256="dfa9af9b55fc4509a56be7bf2346f079d7f4a242d583b9f2e0b078fd0abae31b") + version("16.0.6", sha256="84623c9c23b6b14763d637f4e63e6b721b3446ada40bf7001d8fee70b8e77a9a") + version("15.0.7", sha256="ed08ac55afe714a193653df293ae8a6ee6c45d6fb11eeca72ce347d99b88ecc8") + version("14.0.6", sha256="86ee8fce0613ba6c48db85afb6a08d4885b947870e98193c2248d106d8e8a274") + version("13.0.1", sha256="c6ca0b36e2581f51db690a9b907b64847bb289448fe7222d0dafd7f83dde34e8") + version("12.0.1", sha256="d2957aac5d560e98662a9fe7a2f5a485d2320ded2ef26e065e4fe871967ecf07") version("0.7.1", sha256="ecef2833aef7f411cb923dac109c7c9dcc7dbe7cafce0650c1e8d19c243d955f") version("0.5.0", sha256="3ea4251e78ebeb2e07be2feb33243d1f8931d956efc96ccc2b0846ced212b58c") diff --git a/repos/spack_repo/builtin/packages/py_llama_cpp_python/package.py b/repos/spack_repo/builtin/packages/py_llama_cpp_python/package.py new file mode 100644 index 00000000000..652dd1543b6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_llama_cpp_python/package.py @@ -0,0 +1,33 @@ +# 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 PyLlamaCppPython(PythonPackage): + """Python bindings for llama.cpp""" + + homepage = "https://github.com/abetlen/llama-cpp-python" + pypi = "llama-cpp-python/llama_cpp_python-0.3.16.tar.gz" + git = "https://github.com/abetlen/llama-cpp-python.git" + + maintainers("rbberger") + + license("MIT") + + version("main", branch="main") + version("0.3.16", sha256="34ed0f9bd9431af045bb63d9324ae620ad0536653740e9bb163a2e1fcb973be6") + + depends_on("py-scikit-build-core@0.9.2: +pyproject", type="build") + depends_on("py-typing-extensions@4.5.0:") + depends_on("py-diskcache@5.6.1:") + depends_on("py-numpy@1.20.0:") + depends_on("py-jinja2@2.11.3:") + + depends_on("llama-cpp") + + def config_settings(self, spec, prefix): + return {"wheel.cmake": "false"} diff --git a/repos/spack_repo/builtin/packages/py_llvmlite/package.py b/repos/spack_repo/builtin/packages/py_llvmlite/package.py index a17e5ffc47c..a2f5dcdf468 100644 --- a/repos/spack_repo/builtin/packages/py_llvmlite/package.py +++ b/repos/spack_repo/builtin/packages/py_llvmlite/package.py @@ -16,6 +16,14 @@ class PyLlvmlite(PythonPackage): license("BSD-2-Clause") + version("0.47.0", sha256="62031ce968ec74e95092184d4b0e857e444f8fdff0b8f9213707699570c33ccc") + version("0.46.0", sha256="227c9fd6d09dce2783c18b754b7cd9d9b3b3515210c46acc2d3c5badd9870ceb") + version("0.45.1", sha256="09430bb9d0bb58fc45a45a57c7eae912850bedc095cd0810a57de109c69e1c32") + version( + "0.45.0rc2", + sha256="c264f8ac7ffc139d66cd243f6369d71c164098cc4fdf4e0af90dde004ba39fc1", + deprecated=True, + ) version("0.44.0", sha256="07667d66a5d150abed9157ab6c0b9393c9356f229784a4385c02f99e94fc94d4") version("0.43.0", sha256="ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5") version("0.42.0", sha256="f92b09243c0cc3f457da8b983f67bd8e1295d0f5b3746c7a1861d7a99403854a") @@ -28,33 +36,29 @@ class PyLlvmlite(PythonPackage): version("0.38.1", sha256="0622a86301fcf81cc50d7ed5b4bebe992c030580d413a8443b328ed4f4d82561") version("0.38.0", sha256="a99d166ccf3b116f3b9ed23b9b70ba2415640a9c978f3aaa13fad49c58f4965c") version("0.37.0", sha256="6392b870cd018ec0c645d6bbb918d6aa0eeca8c62674baaee30862d6b6865b15") - version( - "0.34.0", - sha256="f03ee0d19bca8f2fe922bb424a909d05c28411983b0c2bc58b020032a0d11f63", - deprecated=True, - ) - version( - "0.33.0", - sha256="9c8aae96f7fba10d9ac864b443d1e8c7ee4765c31569a2b201b3d0b67d8fc596", - deprecated=True, - ) - version( - "0.31.0", - sha256="22ab2b9d7ec79fab66ac8b3d2133347de86addc2e2df1b3793e523ac84baa3c8", - deprecated=True, - ) - depends_on("cxx", type="build") # generated + with default_args(type="build"): + depends_on("c") + depends_on("cxx") + depends_on("cmake") + depends_on("binutils", when="platform=linux") + depends_on("py-setuptools") - depends_on("py-setuptools", type="build") - depends_on("python@3.9:3.12", when="@0.42:", type=("build", "run")) - depends_on("python@3.8:3.11", when="@0.40:0.41", type=("build", "run")) - depends_on("python@:3.10", when="@0.38:0.39", type=("build", "run")) - depends_on("python@:3.9", when="@0.36:0.37", type=("build", "run")) - depends_on("python@:3.8", when="@0.31:0.35", type=("build", "run")) + # https://github.com/numba/llvmlite/pull/1400 + depends_on("py-setuptools@:80", when="@:0.46") + + # Based on PyPI wheel availability + with default_args(type=("build", "run")): + depends_on("python@3.10:3.14", when="@0.46:") + depends_on("python@3.10:3.13", when="@0.44:0.45") + depends_on("python@3.9:3.12", when="@0.42:0.43") + depends_on("python@3.8:3.11", when="@0.40:0.41") + depends_on("python@:3.10", when="@0.38:0.39") + depends_on("python@:3.9", when="@0.36:0.37") # https://github.com/numba/llvmlite#compatibility - depends_on("llvm@15", when="@0.44:") + depends_on("llvm@20", when="@0.45:") + depends_on("llvm@15:16", when="@0.44") depends_on("llvm@14", when="@0.41:0.43") depends_on("llvm@11:14", when="@0.40") depends_on("llvm@11", when="@0.37:0.39") @@ -71,14 +75,6 @@ class PyLlvmlite(PythonPackage): ]: depends_on("llvm@10.0", when=f"@0.34:0.36 target={t}") - depends_on("llvm@9.0", when="@0.34:0.36 target=aarch64:") - depends_on("llvm@9.0", when="@0.33") - depends_on("llvm@7.0:7.1,8.0", when="@0.29:0.32") - depends_on("binutils", type="build") - - # TODO: investigate - conflicts("%apple-clang@15:") - def setup_build_environment(self, env: EnvironmentModifications) -> None: if self.spec.satisfies("%fj"): env.set("CXX_FLTO_FLAGS", "{0}".format(self.compiler.cxx_pic_flag)) diff --git a/repos/spack_repo/builtin/packages/py_localcider/package.py b/repos/spack_repo/builtin/packages/py_localcider/package.py index 23b0499ae3a..f286b7363c5 100644 --- a/repos/spack_repo/builtin/packages/py_localcider/package.py +++ b/repos/spack_repo/builtin/packages/py_localcider/package.py @@ -15,6 +15,7 @@ class PyLocalcider(PythonPackage): license("GPL-2.0-or-later") + version("0.1.21", sha256="58acf94264c08675c6fc2edc7e0e6e4e3b046594bbe25f238993483c75250393") version("0.1.14", sha256="54ff29e8a011947cca5df79e96f3c69a76c49c4db41dcf1608663992be3e3f5f") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_logistro/package.py b/repos/spack_repo/builtin/packages/py_logistro/package.py new file mode 100644 index 00000000000..bf7a93da193 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_logistro/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 PyLogistro(PythonPackage): + """Simple wrapper over logging for a couple basic features.""" + + homepage = "https://github.com/geopozo/logistro" + pypi = "logistro/logistro-1.1.0.tar.gz" + + license("MIT") + + version("2.0.1", sha256="8446affc82bab2577eb02bfcbcae196ae03129287557287b6a070f70c1985047") + version("1.1.0", sha256="ad51f0efa2bc705bea7c266e8a759cf539457cf7108202a5eec77bdf6300d774") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@65:", type="build") + depends_on("py-setuptools-git-versioning", type="build") 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_looseversion/package.py b/repos/spack_repo/builtin/packages/py_looseversion/package.py index 6e22b3503fd..abf7877114f 100644 --- a/repos/spack_repo/builtin/packages/py_looseversion/package.py +++ b/repos/spack_repo/builtin/packages/py_looseversion/package.py @@ -13,8 +13,11 @@ class PyLooseversion(PythonPackage): homepage = "https://github.com/effigies/looseversion" pypi = "looseversion/looseversion-1.0.2.tar.gz" + version("1.3.0", sha256="ebde65f3f6bb9531a81016c6fef3eb95a61181adc47b7f949e9c0ea47911669e") version("1.2.0", sha256="c64e71c0b29030683b4ea75aee431db2d25c4e6e533590e52129f1d9e51de204") version("1.0.2", sha256="8b9f2e649eb81620c4527ba33ba87505eb69d4bb3f66523b34182a0450c294bc") depends_on("py-hatchling", when="@1.1.1:", type="build") + + # Historical dependencies depends_on("py-setuptools@40.8:", when="@:1.0.2", type="build") 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_lxml/package.py b/repos/spack_repo/builtin/packages/py_lxml/package.py index 3277275c462..ddfd54baea5 100644 --- a/repos/spack_repo/builtin/packages/py_lxml/package.py +++ b/repos/spack_repo/builtin/packages/py_lxml/package.py @@ -17,6 +17,8 @@ class PyLxml(PythonPackage): license("BSD-3-Clause") + version("6.0.2", sha256="cd79f3367bd74b317dda655dc8fcfa304d9eb6e4fb06b7168c5cf27f96e0cd62") + version("6.0.1", sha256="2b3a882ebf27dd026df3801a87cf49ff791336e0f94b0fad195db77e01240690") version("5.3.0", sha256="4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f") version("5.2.2", sha256="bb2dc4898180bea79863d5487e5f9c7c34297414bad54bcd0f0852aee9cfdb87") version("4.9.2", sha256="2455cfaeb7ac70338b3257f41e21f0724f4b5b0c0e7702da67ee6c3640835b67") @@ -40,13 +42,23 @@ class PyLxml(PythonPackage): depends_on("c", type="build") # generated + depends_on("python@3.8:", type=("build", "run"), when="@6:") depends_on("py-setuptools", type="build") + depends_on("libxml2@2.14.6:", type=("build", "link", "run"), when="@6.0.2:") + depends_on("libxml2@2.14.5:", type=("build", "link", "run"), when="@6.0.1:") + depends_on("libxml2@2.12.9:", type=("build", "link", "run"), when="@5.3:") + depends_on("libxml2@2.12.6:", type=("build", "link", "run"), when="@5.2.2:") depends_on("libxml2@2.9.2:", type=("build", "link", "run")) + depends_on("libxslt@1.1.43:", type=("build", "link", "run"), when="@6.0.1:") + depends_on("libxslt@1.1.42:", type=("build", "link", "run"), when="@5.3:") + depends_on("libxslt@1.1.39:", type=("build", "link", "run"), when="@5.2.2:") depends_on("libxslt@1.1.27:", type=("build", "link", "run")) depends_on("py-html5lib", when="+html5", type=("build", "run")) depends_on("py-beautifulsoup4", when="+htmlsoup", type=("build", "run")) depends_on("py-cssselect@0.7:", when="+cssselect", type=("build", "run")) + depends_on("py-cython@3.1.4:", type="build", when="@6.0.2:") + depends_on("py-cython@3.1.2:", type="build", when="@6:") depends_on("py-cython@3.0.11:", type="build", when="@5.3:") depends_on("py-cython@3.0.10:", type="build", when="@5.2:") depends_on("py-cython@3.0.9:", type="build", when="@5.1.1:") diff --git a/repos/spack_repo/builtin/packages/py_m2r/package.py b/repos/spack_repo/builtin/packages/py_m2r/package.py index 549cc0e9130..f0ba602c773 100644 --- a/repos/spack_repo/builtin/packages/py_m2r/package.py +++ b/repos/spack_repo/builtin/packages/py_m2r/package.py @@ -16,6 +16,7 @@ class PyM2r(PythonPackage): license("MIT") + version("0.3.1", sha256="db99105d3b43121ca31d543f561a2078c00d0b9d9d6a7062b64ca5d084a74288") version("0.2.1", sha256="9286c1a5d7548f34b0a12017444e4c441781bef4b71f321f723e314b76b6c498") version("0.2.0", sha256="e9b7476203c4a5e3b822eb0ef110011d7b427d2c0dbdc4030f9cbcd239fbd4d6") version("0.1.15", sha256="4ca4c73385512f6e54db8e152ba157fc3eea84f9e942fe60a12ace5078ff83df") diff --git a/repos/spack_repo/builtin/packages/py_macs2/package.py b/repos/spack_repo/builtin/packages/py_macs2/package.py index 7893ddf4f7e..48952747870 100644 --- a/repos/spack_repo/builtin/packages/py_macs2/package.py +++ b/repos/spack_repo/builtin/packages/py_macs2/package.py @@ -38,7 +38,7 @@ class PyMacs2(PythonPackage): depends_on("py-setuptools", type="build") depends_on("py-setuptools@41.2:", when="@2.2.4:", type="build") depends_on("py-numpy@1.17:", when="@2.2.4:", type=("build", "run")) - depends_on("py-cython@0.29.24:", when="@2.2.8:", type="build") + depends_on("py-cython@0.29.24:0.29.36", when="@2.2.8:", type="build") depends_on("py-cython@0.29:", when="@2.2.4:2.2.7.1", type="build") def patch(self): diff --git a/repos/spack_repo/builtin/packages/py_magicgui/package.py b/repos/spack_repo/builtin/packages/py_magicgui/package.py new file mode 100644 index 00000000000..cfc2da30074 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_magicgui/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 PyMagicgui(PythonPackage): + """magicgui is a python library for building graphical user interfaces (GUIs). + + It aims to speed up data workflows by providing a simple, consistent API + for creating GUIs to control various data types, that work across various + environments.""" + + homepage = "https://pyapp-kit.github.io/magicgui/" + pypi = "magicgui/magicgui-0.10.1.tar.gz" + + maintainers("Markus92") + + license("MIT", checked_by="Markus92") + + version("0.10.1", sha256="422cd0c0b5fea2fb37f3d3ea9b5591a160919baeae16061efea6f74c9b8fcfd1") + + depends_on("python@3.9:", type=("build", "run")) + + depends_on("py-hatchling", type="build") + + with default_args(type=("build", "run")): + depends_on("py-docstring-parser@0.7:") + depends_on("py-psygnal@0.8.0:") + depends_on("py-qtpy@2.4.0:") + depends_on("py-superqt@0.7.2: +iconify") + depends_on("py-typing-extensions@4.6:") diff --git a/repos/spack_repo/builtin/packages/py_makefun/package.py b/repos/spack_repo/builtin/packages/py_makefun/package.py new file mode 100644 index 00000000000..7c94817eba0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_makefun/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 PyMakefun(PythonPackage): + """makefun helps you create functions dynamically, with the signature of + your choice. It was largely inspired by decorator and functools, and + created mainly to cover some of their limitations.""" + + homepage = "https://smarie.github.io/python-makefun/" + pypi = "makefun/makefun-1.16.0.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("1.16.0", sha256="e14601831570bff1f6d7e68828bcd30d2f5856f24bad5de0ccb22921ceebc947") + + depends_on("py-setuptools@39.2:71", type="build") + depends_on("py-setuptools-scm", type="build") diff --git a/repos/spack_repo/builtin/packages/py_mako/package.py b/repos/spack_repo/builtin/packages/py_mako/package.py index 2ab8b45efb0..ebddfa9adbd 100644 --- a/repos/spack_repo/builtin/packages/py_mako/package.py +++ b/repos/spack_repo/builtin/packages/py_mako/package.py @@ -12,11 +12,12 @@ class PyMako(PythonPackage): ideas from the existing templating languages.""" homepage = "https://www.makotemplates.org/" - pypi = "Mako/Mako-1.0.1.tar.gz" + pypi = "Mako/mako-1.3.10.tar.gz" git = "https://github.com/sqlalchemy/mako" license("MIT") + version("1.3.10", sha256="99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28") version("1.2.4", sha256="d60a3903dc3bb01a18ad6a89cdbe2e4eadc69c0bc8ef1e3773ba53d44c3f7a34") version("1.2.2", sha256="3724869b363ba630a272a5f89f68c070352137b8fd1757650017b7e06fda163f") version("1.1.6", sha256="4e9e345a41924a954251b95b4b28e14a301145b544901332e658907a7464b6b2") @@ -25,8 +26,19 @@ class PyMako(PythonPackage): version("1.0.4", sha256="fed99dbe4d0ddb27a33ee4910d8708aca9ef1fe854e668387a9ab9a90cbf9059") version("1.0.1", sha256="45f0869febea59dab7efd256fb451c377cbb7947bef386ff0bb44627c31a8d1c") + depends_on("python@3.8:", when="@1.3:", type="build") + depends_on("python@3.7:", when="@1.2:", type="build") depends_on("py-setuptools@47:", when="@1.2.2:", type="build") depends_on("py-setuptools", type="build") depends_on("py-markupsafe@0.9.2:", type=("build", "run")) + + # Historical dependencies depends_on("py-importlib-metadata", when="@1.2.2: ^python@:3.7", type=("build", "run")) + + def url_for_version(self, version): + if version >= Version("1.3.6"): + name = "mako" + else: + name = "Mako" + return f"https://files.pythonhosted.org/packages/source/M/Mako/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_marisa_trie/package.py b/repos/spack_repo/builtin/packages/py_marisa_trie/package.py new file mode 100644 index 00000000000..f8de0fb5d7e --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_marisa_trie/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 PyMarisaTrie(PythonPackage): + """Static memory-efficient and fast Trie-like structures for Python.""" + + homepage = "https://github.com/pytries/marisa-trie" + pypi = "marisa_trie/marisa_trie-1.3.1.tar.gz" + + license("MIT AND (BSD-2-Clause OR LGPL-2.1-or-later)") + + version("1.3.1", sha256="97107fd12f30e4f8fea97790343a2d2d9a79d93697fe14e1b6f6363c984ff85b") + + depends_on("cxx", type="build") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-setuptools@77:", type="build") + depends_on("py-cython@3.1.3:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_markdown/package.py b/repos/spack_repo/builtin/packages/py_markdown/package.py index 9b7693642ca..f19d01e14f0 100644 --- a/repos/spack_repo/builtin/packages/py_markdown/package.py +++ b/repos/spack_repo/builtin/packages/py_markdown/package.py @@ -20,15 +20,26 @@ class PyMarkdown(PythonPackage): license("BSD-3-Clause") + # need to update the pypi as the older versions are not visible + # putting a url for the latest version temporarily + version( + "3.10.2", + sha256="994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950", + url="https://files.pythonhosted.org/packages/2b/f4/69fa6ed85ae003c2378ffa8f6d2e3234662abd02c10d216c0ba96081a238/markdown-3.10.2.tar.gz", + ) version("3.4.1", sha256="3b809086bb6efad416156e00a0da66fe47618a5d6918dd688f53f40c8e4cfeff") version("3.3.4", sha256="31b5b491868dcc87d6c24b7e3d19a0d730d59d3e46f4eea6430a321bed387a49") version("3.1.1", sha256="2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a") - depends_on("python@2.7:2.8,3.3.5:", type=("build", "run")) - depends_on("python@3.6:", when="@3.3.4:", type=("build", "run")) - depends_on("python@3.7:", when="@3.4.1:", type=("build", "run")) + with default_args(type="build"): + depends_on("py-setuptools@77.0:", when="@3.10.2:") + depends_on("py-setuptools@36.6:", when="@:3.4") - depends_on("py-setuptools", type="build") - depends_on("py-setuptools@36.6:", type="build") - depends_on("py-importlib-metadata", when="@3.3.4: ^python@:3.7", type=("build", "run")) - depends_on("py-importlib-metadata@4.4:", when="@3.4.1: ^python@:3.9", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@3.10.2:") + depends_on("python@3.7:", when="@3.4.1:") + depends_on("python@3.6:", when="@3.3.4:") + depends_on("python@2.7:2.8,3.3.5:", when="@3.1.1") + + depends_on("py-importlib-metadata", when="@3.3.4: ^python@:3.7") + depends_on("py-importlib-metadata@4.4:", when="@3.4.1: ^python@:3.9") diff --git a/repos/spack_repo/builtin/packages/py_markdown_it_py/package.py b/repos/spack_repo/builtin/packages/py_markdown_it_py/package.py index df3ffee51c0..bfc61878bcb 100644 --- a/repos/spack_repo/builtin/packages/py_markdown_it_py/package.py +++ b/repos/spack_repo/builtin/packages/py_markdown_it_py/package.py @@ -14,10 +14,11 @@ class PyMarkdownItPy(PythonPackage): homepage = "https://github.com/executablebooks/markdown-it-py" git = "https://github.com/executablebooks/markdown-it-py" - pypi = "markdown-it-py/markdown-it-py-1.1.0.tar.gz" + pypi = "markdown-it-py/markdown_it_py-1.1.0.tar.gz" license("MIT") + version("4.0.0", sha256="cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3") version("3.0.0", sha256="e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb") version("2.2.0", sha256="7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1") version("1.1.0", sha256="36be6bb3ad987bfdb839f5ba78ddf094552ca38ccbd784ae4f74a4e1419fc6e3") @@ -37,3 +38,11 @@ class PyMarkdownItPy(PythonPackage): depends_on("py-setuptools", when="@:2.0", type="build") depends_on("py-attrs@19:21", when="@:2.0", type=("build", "run")) depends_on("py-typing-extensions@3.7.4:", when="@:2 ^python@:3.7", type=("build", "run")) + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/m/markdown-it-py/{}-{}.tar.gz" + if version >= Version("4"): + name = "markdown_it_py" + else: + name = "markdown-it-py" + return url.format(name, version) diff --git a/repos/spack_repo/builtin/packages/py_markupsafe/package.py b/repos/spack_repo/builtin/packages/py_markupsafe/package.py index 50865eb0828..0fbf6e0083c 100644 --- a/repos/spack_repo/builtin/packages/py_markupsafe/package.py +++ b/repos/spack_repo/builtin/packages/py_markupsafe/package.py @@ -14,11 +14,14 @@ class PyMarkupsafe(PythonPackage): Mako templating engine, the Pylons web framework and many more.""" homepage = "https://palletsprojects.com/p/markupsafe" - pypi = "MarkupSafe/MarkupSafe-1.1.1.tar.gz" + pypi = "MarkupSafe/markupsafe-3.0.2.tar.gz" git = "https://github.com/pallets/markupsafe.git" license("BSD-3-Clause") + version("3.0.3", sha256="722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698") + version("3.0.2", sha256="ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0") + version("2.1.5", sha256="d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b") version("2.1.3", sha256="af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad") version("2.1.1", sha256="7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b") version("2.0.1", sha256="594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a") @@ -30,7 +33,22 @@ class PyMarkupsafe(PythonPackage): version("0.20", sha256="f6cf3bd233f9ea6147b21c7c02cac24e5363570ce4fd6be11dab9f499ed6a7d8") version("0.19", sha256="62fcc5d641df8b5ad271ebbd6b77a19cd92eceba1e1a990de4e96c867789f037") - depends_on("c", type="build") # generated - - depends_on("py-setuptools", type="build") - depends_on("python@3.7:", when="@2.0:") + with default_args(type="build"): + depends_on("c") + + depends_on("py-setuptools@77:", when="@3.0.3:") + depends_on("py-setuptools@70.1:", when="@3:") + depends_on("py-setuptools") + + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@3:") + depends_on("python@3.7:", when="@2:") + + def url_for_version(self, version): + if version >= Version("3.0.0"): + name = "markupsafe" + else: + name = "MarkupSafe" + return ( + f"https://files.pythonhosted.org/packages/source/M/MarkupSafe/{name}-{version}.tar.gz" + ) diff --git a/repos/spack_repo/builtin/packages/py_maturin/package.py b/repos/spack_repo/builtin/packages/py_maturin/package.py index 3673756e4aa..22e1f7cd3a1 100644 --- a/repos/spack_repo/builtin/packages/py_maturin/package.py +++ b/repos/spack_repo/builtin/packages/py_maturin/package.py @@ -17,8 +17,12 @@ class PyMaturin(PythonPackage): maintainers("teaguesterling") - license("Apache-2.0") + license("Apache-2.0 OR MIT") + version("1.13.1", sha256="9a87ff3b8e4d1c6eac33ebfe8e261e8236516d98d45c0323550621819b5a1a2f") + version("1.10.2", sha256="259292563da89850bf8f7d37aa4ddba22905214c1e180b1c8f55505dfd8c0e81") + version("1.9.6", sha256="2c2ae37144811d365509889ed7220b0598487f1278c2441829c3abf56cc6324a") + version("1.9.1", sha256="97b52fb19d20c1fdc70e4efdc05d79853a4c9c0051030c93a793cd5181dc4ccd") version("1.8.3", sha256="304762f86fd53a8031b1bf006d12572a2aa0a5235485031113195cc0152e1e12") version("1.8.2", sha256="e31abc70f6f93285d6e63d2f4459c079c94c259dd757370482d2d4ceb9ec1fa0") version("1.6.0", sha256="b955025c24c8babc808db49e0ff90db8b4b1320dcc16b14eb26132841737230d") @@ -29,16 +33,23 @@ class PyMaturin(PythonPackage): version("0.13.7", sha256="c0a77aa0c57f945649ca711c806203a1b6888ad49c2b8b85196ffdcf0421db77") with default_args(type="build"): + depends_on("py-setuptools@77:", when="@1.9.6:") depends_on("py-setuptools") - depends_on("py-wheel@0.36.2:") + depends_on("py-setuptools-rust@1.11:", when="@1.8.6:") depends_on("py-setuptools-rust@1.4:") + depends_on("py-wheel@0.36.2:", when="@:1.8.3") + with default_args(type=("build", "run")): depends_on("py-tomli@1.1:", when="^python@:3.10") + # from Cargo.toml for rust, maturin in [ - ("1.74", "1.8"), + ("1.88", "1.12.0"), + ("1.83", "1.10.2"), + ("1.74", "1.7.0"), ("1.70", "1.5.0"), - ("1.64", "1.0.0"), + ("1.67", "1.4.0"), + ("1.64", "0.15.0"), ("1.62", "0.14.3"), ("1.59", "0.13.3"), ]: diff --git a/repos/spack_repo/builtin/packages/py_mbstrdecoder/package.py b/repos/spack_repo/builtin/packages/py_mbstrdecoder/package.py new file mode 100644 index 00000000000..30711815c23 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_mbstrdecoder/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 PyMbstrdecoder(PythonPackage): + """mbstrdecoder is a Python library for multi-byte character string decoder.""" + + homepage = "https://github.com/thombashi/mbstrdecoder" + pypi = "mbstrdecoder/mbstrdecoder-1.1.4.tar.gz" + + license("MIT") + + version("1.1.4", sha256="8105ef9cf6b7d7d69fe7fd6b68a2d8f281ca9b365d7a9b670be376b2e6c81b21") + + with default_args(type="build"): + depends_on("py-setuptools@64:") + depends_on("py-setuptools-scm@8:") + + depends_on("py-chardet@3.0.4:5", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_mdahole2/package.py b/repos/spack_repo/builtin/packages/py_mdahole2/package.py new file mode 100644 index 00000000000..003fb31a636 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_mdahole2/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 PyMdahole2(PythonPackage): + """ + A Python interface for the HOLE suite tools to analyze an ion channel pore + or transporter pathway as a function of time or arbitrary order parameters. + """ + + homepage = "https://github.com/MDAnalysis/mdahole2" + pypi = "mdahole2/mdahole2-0.5.0.tar.gz" + + maintainers("LydDeb") + + license("LGPL-2.1-only", checked_by="LydDeb") + + version("0.5.0", sha256="39150588b9bc07ebc176bac30d9c3b0bd25003e2e2eac24b622f2a10e5352a1f") + + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-setuptools@40.9.0:", type="build") + depends_on("py-versioningit", type="build") + depends_on("py-mdanalysis@2.1.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_mdanalysis/package.py b/repos/spack_repo/builtin/packages/py_mdanalysis/package.py index eebb5bfc3ce..dcb28e91896 100644 --- a/repos/spack_repo/builtin/packages/py_mdanalysis/package.py +++ b/repos/spack_repo/builtin/packages/py_mdanalysis/package.py @@ -21,6 +21,9 @@ class PyMdanalysis(PythonPackage): license("CC-BY-ND-3.0") + version("2.10.0", sha256="5cef1f1eba4b25cbf9dd4045f08eeab293bb9577b970aa96132f14491312d877") + version("2.9.0", sha256="fe7a4ac33e7a5c1001d954667d7e630aeb26cab6f8917fdbac6ffad903999497") + version("2.8.0", sha256="0cf8efda7cb4a1cc33a92d2cd0d69a3d9b33c06c603df3c386caf6edccf46099") version("2.7.0", sha256="572e82945e5d058e3749ec5f18e6b3831ef7f2119cb54672567ae9a977201e93") version("2.6.1", sha256="9cc69b94bddd026f26ffcaf5bdbed6d568c1c10e19a341d84f8d37a2a70222f2") version("2.6.0", sha256="210b198a115165004c36fbbbe5eb83a13323f52b10ccaef30dd40bfe25ba3e61") @@ -38,19 +41,29 @@ class PyMdanalysis(PythonPackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + depends_on("python@3.11:", type=("build", "run"), when="@2.10.0:") + depends_on("python@3.10:", type=("build", "run"), when="@2.8.0:") depends_on("python@3.9:", type=("build", "run"), when="@2.5.0:") depends_on("python@3.8:", type=("build", "run")) depends_on("py-setuptools", type="build") + depends_on("py-setuptools@40.9.0:", type="build", when="@2.8.0:") depends_on("py-cython@0.28:", type="build") # MDAnalysis required dependencies (install_requires) + depends_on("py-numpy@2.0.0:", when="@2.8.0:", type=("build", "run")) depends_on("py-numpy@1.22.3:", when="@2.6.0:", type=("build", "run")) depends_on("py-numpy@1.21.0:", when="@2.5.0:", type=("build", "run")) - depends_on("py-numpy@1.20.0:", type=("build", "run")) + depends_on("py-numpy@1.20.0:", when="@:2.4.0", type=("build", "run")) # https://github.com/MDAnalysis/mdanalysis/pull/4482 - depends_on("py-numpy@:1", type=("build", "run")) + depends_on("py-numpy@:1", when="@:2.7.0", type=("build", "run")) + # https://github.com/MDAnalysis/mdanalysis/issues/5061 + conflicts( + "py-numpy@2.1:", + when="@:2.9.0", + msg="MDAnalysis versions up to 2.9.0 are incompatible with numpy 2.1+", + ) depends_on("py-griddataformats@0.4.0:", type=("build", "run")) depends_on("py-mmtf-python@1.0.0:", type=("build", "run")) @@ -61,8 +74,9 @@ class PyMdanalysis(PythonPackage): depends_on("py-tqdm@4.43.0:", type=("build", "run")) depends_on("py-threadpoolctl", type=("build", "run")) depends_on("py-packaging", type=("build", "run")) - depends_on("py-fasteners", type=("build", "run")) + depends_on("py-fasteners", when="@:2.8.0", type=("build", "run")) depends_on("py-mda-xdrlib", when="@2.7.0:", type=("build", "run")) + depends_on("py-filelock", when="@2.9.0:", type=("build", "run")) # extra_format (extras_require) depends_on("py-netcdf4@1.0:", when="+extra_formats", type=("build", "run")) @@ -89,3 +103,11 @@ class PyMdanalysis(PythonPackage): depends_on("py-gsd@1.9.3:", when="@:2.5.0", type=("build", "run")) depends_on("py-biopython@1.80:", when="@:2.6.1", type=("build", "run")) depends_on("py-networkx@2.0:", when="@:2.6.1", type=("build", "run")) + + def url_for_version(self, version): + """ + From version 2.8.0 onwards, the archive named changed + to 'mdanalysis-{version}.tar.gz from 'MDAnalysis-{version}.tar.gz + """ + if version >= Version("2.8.0"): + return f"https://files.pythonhosted.org/packages/source/m/mdanalysis/mdanalysis-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_mdanalysistests/package.py b/repos/spack_repo/builtin/packages/py_mdanalysistests/package.py index c41cb51b518..e803e241468 100644 --- a/repos/spack_repo/builtin/packages/py_mdanalysistests/package.py +++ b/repos/spack_repo/builtin/packages/py_mdanalysistests/package.py @@ -6,6 +6,19 @@ from spack.package import * +# Necessary to pin each version to py-mdanalysis +VERSIONS = { + "2.10.0": "286b8678e19195093a19b57b26d76b8274415d33ac23fc872355639fcb49beef", + "2.9.0": "8e4942ec3aaef5e93aeb39690293764ab9995550135ff1bd0df2f40cb95c0626", + "2.8.0": "a611dfa060088cc11e582c90dbd37bd1142d65423f7de6e304d3d694655aee0b", + "2.7.0": "326d65d7f14da8d1b047aab87ca312a68459a5fd18ddf6d8cb9ac9c3ca51d9e5", + "2.6.1": "043f7451f4d9c42ea9e6609a81a6002948e2c74fd268282e0831416789b22e5e", + "2.6.0": "16fdd10e5240b606e8f9210b7cbd9e4be110e6b8d79bb6e72ce6250c4731a817", + "2.5.0": "a15b53b7f8bed67900a2bf542bbb3cab81dc71674fa6cddb3248dd11880e4c9d", + "2.4.3": "6fbdeccdbfb249f76520ee3605d007cd70292187e3754d0184c71e5afe133abb", + "2.4.2": "6e8fb210a4268691c77717ea5157e82d85874a4f7ee0f8f177718451a44ee793", +} + class PyMdanalysistests(PythonPackage): """Test suite for MDAnalysis""" @@ -17,25 +30,30 @@ class PyMdanalysistests(PythonPackage): license("GPL-3.0-or-later") - version("2.7.0", sha256="326d65d7f14da8d1b047aab87ca312a68459a5fd18ddf6d8cb9ac9c3ca51d9e5") - version("2.6.1", sha256="043f7451f4d9c42ea9e6609a81a6002948e2c74fd268282e0831416789b22e5e") - version("2.6.0", sha256="16fdd10e5240b606e8f9210b7cbd9e4be110e6b8d79bb6e72ce6250c4731a817") - version("2.5.0", sha256="a15b53b7f8bed67900a2bf542bbb3cab81dc71674fa6cddb3248dd11880e4c9d") - version("2.4.3", sha256="6fbdeccdbfb249f76520ee3605d007cd70292187e3754d0184c71e5afe133abb") - version("2.4.2", sha256="6e8fb210a4268691c77717ea5157e82d85874a4f7ee0f8f177718451a44ee793") - # Version need to match MDAnalysis' - depends_on("py-mdanalysis@2.7.0", when="@2.7.0", type=("build", "run")) - depends_on("py-mdanalysis@2.6.1", when="@2.6.1", type=("build", "run")) - depends_on("py-mdanalysis@2.6.0", when="@2.6.0", type=("build", "run")) - depends_on("py-mdanalysis@2.5.0", when="@2.5.0", type=("build", "run")) - depends_on("py-mdanalysis@2.4.3", when="@2.4.3", type=("build", "run")) - depends_on("py-mdanalysis@2.4.2", when="@2.4.2", type=("build", "run")) - + for mdanalysistests_version, sha in VERSIONS.items(): + version(mdanalysistests_version, sha256=sha) + depends_on( + f"py-mdanalysis@={mdanalysistests_version}", + when=f"@={mdanalysistests_version}", + type=("build", "run"), + ) + + depends_on("python@3.11:", when="@2.10.0:", type=("build", "run")) + depends_on("python@3.10:", when="@2.8.0:", type=("build", "run")) depends_on("python@3.9:", when="@2.5.0:", type=("build", "run")) depends_on("python@3.8:", type=("build", "run")) depends_on("py-pytest@3.3.0:", type=("build", "run")) depends_on("py-hypothesis", type=("build", "run")) + depends_on("py-setuptools@40.9.0:", when="@2.8.0:", type="build") depends_on("py-setuptools", type="build") + + def url_for_version(self, version): + """ + From version 2.8.0 onwards, the archive named changed + to 'mdanalysistests-{version}.tar.gz from 'MDAnalysistests-{version}.tar.gz + """ + if version >= Version("2.8.0"): + return f"https://files.pythonhosted.org/packages/source/m/mdanalysistests/mdanalysistests-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_mdit_py_plugins/package.py b/repos/spack_repo/builtin/packages/py_mdit_py_plugins/package.py index dc7ae30a523..3710d9580f0 100644 --- a/repos/spack_repo/builtin/packages/py_mdit_py_plugins/package.py +++ b/repos/spack_repo/builtin/packages/py_mdit_py_plugins/package.py @@ -17,6 +17,7 @@ class PyMditPyPlugins(PythonPackage): license("MIT") + version("0.5.0", sha256="f4918cb50119f50446560513a8e311d574ff6aaed72606ddae6d35716fe809c6") version("0.4.2", sha256="5f2cd1fdb606ddf152d37ec30e46101a60512bc0e5fa1a7002c36647b09e26b5") version("0.3.5", sha256="eee0adc7195e5827e17e02d2a258a2ba159944a0748f59c5099a4a27f78fcf6a") version("0.3.1", sha256="3fc13298497d6e04fe96efdd41281bfe7622152f9caa1815ea99b5c893de9441") @@ -34,6 +35,7 @@ def url_for_version(self, version): depends_on("py-setuptools", when="@:0.2", type="build") depends_on("py-flit-core@3.4:3", when="@0.3:", type="build") - depends_on("py-markdown-it-py@1.0:1", when="@:0.2", type=("build", "run")) - depends_on("py-markdown-it-py@1.0:2", when="@0.3", type=("build", "run")) - depends_on("py-markdown-it-py@1.0:3", when="@0.4:", type=("build", "run")) + depends_on("py-markdown-it-py@1:1", when="@0.2", type=("build", "run")) + depends_on("py-markdown-it-py@1:2", when="@0.3", type=("build", "run")) + depends_on("py-markdown-it-py@1:3", when="@0.4", type=("build", "run")) + depends_on("py-markdown-it-py@2:4", when="@0.5", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_mdocfile/package.py b/repos/spack_repo/builtin/packages/py_mdocfile/package.py new file mode 100644 index 00000000000..ba862e4b773 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_mdocfile/package.py @@ -0,0 +1,31 @@ +# 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 PyMdocfile(PythonPackage): + """mdocfile is Python package for working with SerialEM mdoc files.""" + + homepage = "https://github.com/teamtomo/mdocfile/" + pypi = "mdocfile/mdocfile-0.2.2.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("0.2.3", sha256="7cb9a4e14719fe76524a064209b0acc7ca9272781ae04ed03dceac7b23151c64") + version("0.2.2", sha256="74d2dbe55ffda288f61cfac82aaf0052e1365a65c5acc1ed93e3c86e1457e5b0") + version("0.0.8", sha256="61e352b569128fdeaff9f639e6aa3d46c8f8c3b8fe36627461ba0153f46f103d") + + depends_on("python@3.9:") + depends_on("py-hatchling", type="build", when="@0.1.0:") + depends_on("py-hatch-vcs", type="build", when="@0.1.0:") + depends_on("py-setuptools", type="build", when="@:0.0.8") + depends_on("py-setuptools-scm", type="build", when="@:0.0.8") + + depends_on("py-pydantic@2:", when="@0.1.0:") + depends_on("py-pydantic") + depends_on("py-pandas") diff --git a/repos/spack_repo/builtin/packages/py_meldmd/package.py b/repos/spack_repo/builtin/packages/py_meldmd/package.py index 9897b2e4626..2ddd3656818 100644 --- a/repos/spack_repo/builtin/packages/py_meldmd/package.py +++ b/repos/spack_repo/builtin/packages/py_meldmd/package.py @@ -61,7 +61,7 @@ def install_python(self): pip(*PythonPipBuilder.std_args(self), f"--prefix={self.prefix}", ".") for _, _, files in os.walk(self.spec["openmm"].prefix.lib.plugins): for f in files: - os.symlink( + symlink( join_path(self.spec["openmm"].prefix.lib.plugins, f), join_path(self.prefix.lib.plugins, f), ) diff --git a/repos/spack_repo/builtin/packages/py_melissa_core/package.py b/repos/spack_repo/builtin/packages/py_melissa_core/package.py index 017b49208db..905d164a246 100644 --- a/repos/spack_repo/builtin/packages/py_melissa_core/package.py +++ b/repos/spack_repo/builtin/packages/py_melissa_core/package.py @@ -18,22 +18,22 @@ class PyMelissaCore(PythonPackage, CudaPackage): homepage = "https://gitlab.inria.fr/melissa/melissa" git = "https://gitlab.inria.fr/melissa/melissa.git" url = "https://gitlab.inria.fr/melissa/melissa/-/archive/v2.0.0/melissa-v2.0.0.tar.gz" - maintainers("abhishek1297", "viperML", "raffino") + maintainers("abhishek1297", "raffino") license("BSD-3-Clause") version( - "2.0.0", - sha256="75957d1933cd9c228a6e8643bc855587162c31f3b0ca94c3f5e0e380d01775dd", + "2.4.1", + sha256="92a8c7f823ef79c8a5eb05b67120e130c9b03bf7fecd635b4ae9501eb32b2fd7", preferred=True, ) - version("develop", branch="develop") - - # DEPRECATED VERSIONS - version( - "joss", tag="JOSS_v2", commit="20bbe68c1a7b73aa2ea3ad35681c332c7a5fc516", deprecated=True - ) - version("sc23", tag="SC23", commit="8bb5b6817d4abe4eaa5893552d711150e53535f3", deprecated=True) + with default_args(deprecated=True): + version("2.3.0", sha256="f356e05082e4bb26a210cd11ccfa78a783ebe07be2bd75d5e51ed10da3b58997") + version("2.2.0", sha256="e805c9ac08de5aa666768d5d92bfc680f064bd9108415a911dfd08ad7b0a3cf3") + version("2.1.1", sha256="6b92852429f13b144860edc37c7914723addabb0ec0bd108929ff567334d3f71") + version("2.1.0", sha256="cf0f105ed5b1da260cc7476aec23df084470b50a61df997c0e457c38948bed93") + version("2.0.1", sha256="a7ff4df75ea09af435b0c28c3fa3cab9335c1c76e1c48757facce36786b4962c") + version("2.0.0", sha256="75957d1933cd9c228a6e8643bc855587162c31f3b0ca94c3f5e0e380d01775dd") # define variants for the deep learning server (torch, tf) variant( @@ -45,67 +45,64 @@ class PyMelissaCore(PythonPackage, CudaPackage): when="~torch", description="Install Deep Learning requirements with TensorFlow only", ) - # ============================== - # Base dependencies - # ============================== + + # ============================================================ + # Base dependencies + # ============================================================ + depends_on("c", type="build") # generated + depends_on("cxx", type="build") depends_on("fortran", type="build") # generated - - depends_on("python@3.9:3.12", type=("build", "run")) depends_on("py-setuptools@46.4:", type="build") - depends_on("py-pyzmq@22.3.0:", type="run") - depends_on("py-mpi4py@3.1.3:3", type="run") - depends_on("py-numpy@1.21:1", type="run") - depends_on("py-jsonschema@4.5:", type="run") - depends_on("py-python-rapidjson@1.8:", type="run") - depends_on("py-scipy@1.10.0:1", type="run") - depends_on("py-plotext@5.2.8:", type="run") - depends_on("py-cloudpickle@2.2.0:", type="run") - depends_on("py-iterative-stats@0.1:", type="run") - depends_on("py-psutil@5:", type="run") - # ============================== - # DL dependencies - # ============================== + + with default_args(type=("build", "run")): + depends_on("python@3.9:3.12", when="@:2.1.0") + depends_on("python@3.11:3.12", when="@2.1.1:") + + with default_args(type="run"): + depends_on("py-pyzmq@22.3.0:") + depends_on("py-mpi4py@3.1.3:3", when="@:2.3.0") + depends_on("py-mpi4py@3.1.3:", when="@2.4:") + depends_on("py-numpy@1.21:1") + depends_on("py-jsonschema@4.5:") + depends_on("py-python-rapidjson@1.8:") + depends_on("py-scipy@1.10.0:1") + depends_on("py-plotext@5.2.8:") + depends_on("py-cloudpickle@2.2.0:") + depends_on("py-iterative-stats@0.1:") + depends_on("py-psutil@5:") + + # ============================================================ + # DL dependencies + # ============================================================ + for framework in ["+tf", "+torch"]: - conflicts( - "%gcc@:9", - when=framework, - msg=f"GCC must be greater than version 9 when using {framework}", - ) - depends_on("py-tensorboard@2.10.0:2", type="run", when=framework) - depends_on("py-matplotlib", type="run", when=framework) - depends_on("py-pandas", type="run", when=framework) - # WARNING: If using a gcc compiler, then support with AVX512-VNNI is - # expected for bazel source builds. - # The instruction set comes with binutils. If you are installing a gcc - # through spack then do spack install `gcc+binutils` - depends_on("binutils@2.29:", type="build", when=f"{framework} %gcc") - - # WARNING: do not change the upper limit for tensorflow beyond 2.17, which requires - # AVX-VNNI-INT8 support. - # Check cpu flags to ensure if avxvnniint8 is available on your machine, - # if you want to increase the upper limit. - depends_on("py-tensorflow@2.8.0:2.17 ~cuda", type="run", when="+tf ~cuda") - depends_on("py-torch@1.12.1:2.6 ~cuda", type="run", when="+torch ~cuda") - - # ============================== - # CUDA dependencies - # ============================== - for arch in CudaPackage.cuda_arch_values: - # Support beyond ampere (A100) GPUs hasn't been tested yet. - # FIXME: free to modify and test - if arch.isdigit() and 60 <= int(arch) <= 80: + with when(framework): + conflicts("%gcc@:9", msg=f"GCC must be greater than version 9 when using {framework}") + + with default_args(type="run"): + depends_on("py-tensorboard@2.10.0:2") + depends_on("py-matplotlib") + depends_on("py-pandas") + + depends_on("binutils@2.29:", type="build", when="%gcc") + + # ============================================================ + # Frameworks with/out CUDA + # ============================================================ + + with default_args(type="run"): + # Without CUDA + with when("~cuda"): + # WARNING: Do not set tensorflow upper limit above 2.17. + # Versions >2.17 require AVX-VNNI-INT8 CPU support. + # Check your CPU flags for 'avxvnniint8' before increasing. + depends_on("py-tensorflow@2.8.0:2.17 ~cuda", when="+tf") + depends_on("py-torch@1.12.1:2 ~cuda", when="+torch") + + # With CUDA + for arch in CudaPackage.cuda_arch_values: cuda_specs = f"+cuda cuda_arch={arch}" - depends_on(f"nccl {cuda_specs}", when=cuda_specs) # it is set by default - depends_on( - f"py-tensorflow@2.8.0:2.17 {cuda_specs}", type="run", when=f"+tf {cuda_specs}" - ) - depends_on( - f"py-torch@1.12.1:2.6 {cuda_specs}", type="run", when=f"+torch {cuda_specs}" - ) - else: - conflicts( - f"+cuda cuda_arch={arch}", - msg="Support beyond Ampere GPUs has not been tested yet. " - "Accepted values are between 60 and 80 inclusive.", - ) + with when(cuda_specs): + depends_on(f"py-tensorflow@2.8.0:2.17+nccl{cuda_specs}", when="+tf") + depends_on(f"py-torch@1.12.1:2+cudnn+nccl{cuda_specs}", when="+torch") 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_memray/package.py b/repos/spack_repo/builtin/packages/py_memray/package.py index 01b3ace8063..48f4dd21272 100644 --- a/repos/spack_repo/builtin/packages/py_memray/package.py +++ b/repos/spack_repo/builtin/packages/py_memray/package.py @@ -15,11 +15,13 @@ class PyMemray(PythonPackage): license("Apache-2.0") + version("1.19.1", sha256="7fcf306eae2c00144920b01913f42fa7f235af7a80fa3226ab124672a5cb1d8f") version("1.15.0", sha256="1beffa2bcba3dbe0f095d547927286eca46e272798b83026dd1b5db58e16ed56") version("1.1.0", sha256="876e46e0cd42394be48b33f81314bc946f4eb023b04bf1def084c25ccf1d2bb6") depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("gmake", type="build") depends_on("python@3.7:", type=("build", "link", "run")) @@ -38,7 +40,7 @@ class PyMemray(PythonPackage): depends_on("py-textual@0.34:", when="@1.11:") # https://github.com/bloomberg/memray#building-from-source - depends_on("elfutils", when="platform=linux @1.13:") + depends_on("elfutils+debuginfod", when="platform=linux @1.13:") depends_on("libunwind", when="platform=linux") depends_on("lz4") diff --git a/repos/spack_repo/builtin/packages/py_mendeleev/package.py b/repos/spack_repo/builtin/packages/py_mendeleev/package.py new file mode 100644 index 00000000000..669a8a71c32 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_mendeleev/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 PyMendeleev(PythonPackage): + """Pythonic periodic table of elements.""" + + homepage = "https://github.com/lmmentel/mendeleev" + pypi = "mendeleev/mendeleev-1.1.0.tar.gz" + + maintainers("LydDeb") + + license("MIT", checked_by="LydDeb") + + version("1.1.0", sha256="34081dd9ae58823287382e8defde8276003d8c2784367bb1271e8e32e7fd07e8") + + depends_on("python@3.9:3.13", type=("build", "run")) + depends_on("py-poetry-core@1.1.0:", type="build") + depends_on("py-colorama@0.4", type=("build", "run")) + depends_on("py-numpy@2.0", type=("build", "run")) + depends_on("py-pyfiglet@0.8", type=("build", "run")) + depends_on("py-pygments@2.11", type=("build", "run")) + depends_on("py-pandas@2.1", type=("build", "run"), when="^python@3.12:3.13") + depends_on("py-pandas@1.1.0:", type=("build", "run"), when="^python@:3.11") + depends_on("py-sqlalchemy@1.4.0:", type=("build", "run")) + depends_on("py-deprecated@1.2", type=("build", "run")) + depends_on("py-pydantic@2.9", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_meson_python/package.py b/repos/spack_repo/builtin/packages/py_meson_python/package.py index bb2052e2f7a..fe2468fd0c6 100644 --- a/repos/spack_repo/builtin/packages/py_meson_python/package.py +++ b/repos/spack_repo/builtin/packages/py_meson_python/package.py @@ -14,10 +14,12 @@ class PyMesonPython(PythonPackage): pypi = "meson_python/meson_python-0.7.0.tar.gz" tags = ["build-tools"] - maintainers("eli-schwartz", "adamjstewart", "rgommers") + maintainers("eli-schwartz", "rgommers") license("MIT") + version("0.19.0", sha256="9959d198aa69b57fcfd354a34518c6f795b781a73ed0656f4d01660160cc2553") + version("0.18.0", sha256="c56a99ec9df669a40662fe46960321af6e4b14106c14db228709c1628e23848d") version("0.16.0", sha256="9068c17e36c89d6c7ff709fffb2a8a9925e8cd0b02629728e5ceaf2ec505cb5f") version("0.15.0", sha256="fddb73eecd49e89c1c41c87937cd89c2d0b65a1c63ba28238681d4bd9484d26f") version("0.13.1", sha256="63b3170001425c42fa4cfedadb9051cbd28925ff8eed7c40d36ba0099e3c7618") @@ -27,32 +29,26 @@ class PyMesonPython(PythonPackage): version("0.9.0", sha256="6aa5a09ff5cce1c5308938ebbf3eab5529413c8677055ace1ac8c83d8a07b29d") version("0.8.1", sha256="442f1fa4cf5db50eea61170a6059c10fafd70977f5dbdf3441c106cd23b05e4c") version("0.8.0", sha256="b5c8a2727e6f6feaffc1db513244c9bdb5d0f689b45e24f4529b649b7710daf7") - version( - "0.7.0", - sha256="9fcfa350f44ca80dd4f5f9c3d251725434acf9a07d9618f382e6cc4629dcbe84", - deprecated=True, - ) - - depends_on("c", type="build") # generated - - depends_on("py-colorama", when="platform=windows", type=("build", "run")) - depends_on("meson@0.63.3:", when="@0.11:", type=("build", "run")) - depends_on("meson@0.63:", when="@0.9:0.10", type=("build", "run")) - depends_on("meson@0.62:", type=("build", "run")) - depends_on("py-packaging@19:", when="@0.16:", type=("build", "run")) - depends_on("py-pyproject-metadata@0.7.1:", when="@0.13:", type=("build", "run")) - depends_on("py-pyproject-metadata@0.6.1:", when="@0.12:", type=("build", "run")) - depends_on("py-pyproject-metadata@0.5:", type=("build", "run")) - depends_on("py-tomli@1:", when="@0.11: ^python@:3.10", type=("build", "run")) - depends_on("py-tomli@1:", when="@:0.10", type=("build", "run")) - depends_on("py-setuptools@60:", when="@0.13 ^python@3.12:", type=("build", "run")) - depends_on("ninja", type=("build", "run")) - - # https://github.com/mesonbuild/meson-python/pull/111 - conflicts("platform=darwin os=ventura", when="@:0.7") - conflicts("platform=darwin os=monterey", when="@:0.7") - conflicts("platform=darwin os=bigsur", when="@:0.7") - - # Historical dependencies - depends_on("py-typing-extensions@3.7.4:", when="@0.12 ^python@:3.9", type=("build", "run")) - depends_on("py-typing-extensions@3.7.4:", when="@:0.11 ^python@:3.7", type=("build", "run")) + + depends_on("c", type="build") + + with default_args(type=("build", "run")): + depends_on("ninja", type=("build", "run")) + depends_on("meson@0.64:", when="@0.18:") + depends_on("meson@0.63.3:", when="@0.11:") + depends_on("meson@0.63:", when="@0.9:") + depends_on("meson@0.62:") + depends_on("py-packaging@23.2:", when="@0.18:") + depends_on("py-packaging@19:", when="@0.16:") + depends_on("py-pyproject-metadata@0.9:", when="@0.18:") + depends_on("py-pyproject-metadata@0.7.1:", when="@0.13:") + depends_on("py-pyproject-metadata@0.6.1:", when="@0.12:") + depends_on("py-pyproject-metadata@0.5:") + depends_on("py-tomli@1:", when="@0.11: ^python@:3.10") + depends_on("py-tomli@1:", when="@:0.10") + + # Historical dependencies + depends_on("py-colorama", when="@:0.16 platform=windows") + depends_on("py-setuptools@60:", when="@0.13 ^python@3.12:") + depends_on("py-typing-extensions@3.7.4:", when="@0.12 ^python@:3.9") + depends_on("py-typing-extensions@3.7.4:", when="@:0.11 ^python@:3.7") diff --git a/repos/spack_repo/builtin/packages/py_metaphlan/package.py b/repos/spack_repo/builtin/packages/py_metaphlan/package.py index c6ed79aec68..384448b0086 100644 --- a/repos/spack_repo/builtin/packages/py_metaphlan/package.py +++ b/repos/spack_repo/builtin/packages/py_metaphlan/package.py @@ -16,6 +16,7 @@ class PyMetaphlan(PythonPackage): homepage = "https://github.com/biobakery/MetaPhlAn/" pypi = "MetaPhlAn/MetaPhlAn-4.0.2.tar.gz" + version("4.2.4", sha256="58f9546820c937f258dd9142720422fa5665c6ea7ef90e89bd8f0adbc8a4efc8") version("4.0.2", sha256="2549fdf2de97a0024551a7bb8d639613b8a7b612054506c88cdb719353f466ff") version("3.1.0", sha256="4e7a7a36d07ed6f4f945afc4216db7f691d44a22b059c2404c917a160a687a6b") @@ -27,11 +28,11 @@ class PyMetaphlan(PythonPackage): depends_on("py-biopython", type=("build", "run")) depends_on("py-pandas", type=("build", "run")) depends_on("py-scipy", type=("build", "run")) - depends_on("py-hclust2", type=("build", "run"), when="@4.0.2:") + depends_on("py-hclust2", type=("build", "run"), when="@4.0.2") depends_on("py-requests", type=("build", "run")) depends_on("py-dendropy", type=("build", "run")) depends_on("py-pysam", type=("build", "run")) - depends_on("py-cmseq", type=("build", "run")) + depends_on("py-cmseq", type=("build", "run"), when="@:4.0.2") depends_on("py-phylophlan", type=("build", "run")) depends_on("py-matplotlib", type=("build", "run")) depends_on("bowtie2@2.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_metatensor_core/package.py b/repos/spack_repo/builtin/packages/py_metatensor_core/package.py new file mode 100644 index 00000000000..a269dd0db0d --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_metatensor_core/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 * + +# Necessary to pin each version to libmetatensor +VERSIONS = { + "0.1.19": "ca7e1e73da3712a79989e856ebab4a254b7f893d01d8fb63f162b4937d81d824", + "0.1.17": "98708f89a37652016ee508e307f824f3ca63307b85829de17ba6d2558f0b3b3b", +} + + +class PyMetatensorCore(PythonPackage): + """Python bindings for metatensor-core""" + + homepage = "https://docs.metatensor.org" + pypi = "metatensor-core/metatensor_core-0.0.0.tar.gz" + + import_modules = ["metatensor"] + + maintainers("HaoZeke", "Luthaf", "RMeli") + license("BSD-3-Clause", checked_by="HaoZeke") + + depends_on("python@3.9:", type=("run", "build")) + depends_on("py-numpy", type=("run", "build")) + + for ver, sha in VERSIONS.items(): + version(ver, sha256=sha) + depends_on(f"libmetatensor@={ver}", when=f"@{ver}") + + # pyproject.toml + depends_on("py-setuptools@77:", type="build") + depends_on("py-packaging@23:", type="build") + # CMakeLists.txt + depends_on("cmake@3.16:", type="build") + depends_on("cmake@3.22:", type="build", when="@0.1.18:") + + def setup_build_environment(self, env: EnvironmentModifications) -> None: + env.set("METATENSOR_CORE_PYTHON_USE_EXTERNAL_LIB", "ON") diff --git a/repos/spack_repo/builtin/packages/py_metatensor_learn/package.py b/repos/spack_repo/builtin/packages/py_metatensor_learn/package.py new file mode 100644 index 00000000000..aa97f06cf31 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_metatensor_learn/package.py @@ -0,0 +1,31 @@ +# 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 PyMetatensorLearn(PythonPackage): + """Building blocks for the atomistic machine learning models based on PyTorch and NumPy""" + + homepage = "https://docs.metatensor.org" + pypi = "metatensor-learn/metatensor_learn-0.0.0.tar.gz" + + import_modules = ["metatensor.learn"] + + maintainers("HaoZeke", "Luthaf", "RMeli") + license("BSD-3-Clause", checked_by="HaoZeke") + + version("0.4.0", sha256="78ab06157075d754789bf2c048fb2e2cbf75806bd0ef87f8191eae8cb9a4ef23") + version("0.3.2", sha256="987f63228888882a6189137ddb89f913b2fde1072c3caa83a39b9f5d50388b51") + + # pyproject.toml + depends_on("python@3.9:", type=("build", "run")) + depends_on("python@3.10:", type=("build", "run"), when="@0.4.0:") + depends_on("py-setuptools@77:", type="build") + depends_on("py-packaging@23:", type="build") + # setup.py + depends_on("py-metatensor-operations@0.3", type=("build", "run"), when="@0.3.2") + depends_on("py-metatensor-operations@0.4", type=("build", "run"), when="@0.4.0:") diff --git a/repos/spack_repo/builtin/packages/py_metatensor_operations/package.py b/repos/spack_repo/builtin/packages/py_metatensor_operations/package.py new file mode 100644 index 00000000000..46c4ea48b51 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_metatensor_operations/package.py @@ -0,0 +1,31 @@ +# 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 PyMetatensorOperations(PythonPackage): + """Operations to manipulate metatensor data types.""" + + homepage = "https://docs.metatensor.org" + pypi = "metatensor-operations/metatensor_operations-0.0.0.tar.gz" + + import_modules = ["metatensor.operations"] + + maintainers("HaoZeke", "Luthaf", "RMeli") + license("BSD-3-Clause", checked_by="HaoZeke") + + version("0.4.0", sha256="5eefca88c92479a2b9d1125ee53e31cacca539e220c2ad2c91bff2223c3609d5") + version("0.3.4", sha256="448c155e5d4ac7ad7bdf56a6d0883f641622d54d4357f50b2149b2cb2ad8d66a") + + # pyproject.toml + depends_on("python@3.9:", type=("build", "run")) + depends_on("python@3.10:", type=("build", "run"), when="@0.4.0:") + depends_on("py-setuptools@77:", type="build") + depends_on("py-packaging@23:", type="build") + # setup.py + depends_on("py-metatensor-core@0.1.13:0.1", type=("build", "run"), when="@0.3.4") + depends_on("py-metatensor-core@0.1.15:0.1", type=("build", "run"), when="@0.4.0:") diff --git a/repos/spack_repo/builtin/packages/py_metatensor_torch/package.py b/repos/spack_repo/builtin/packages/py_metatensor_torch/package.py new file mode 100644 index 00000000000..2230956a295 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_metatensor_torch/package.py @@ -0,0 +1,81 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import os + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + +VERSIONS = { + "0.8.4": "0b2e158e8b31f12735bf2db391257296a5ef0b802512f2d2db8e0c5ee028a192", + "0.8.3": "9b0907f0969bd2139a6ab3614d81faebc7abca102df4127cba9f0521e2e1437d", + "0.8.2": "60a81ccb5bda11ee173abfecd02a5d126d2788732b2ebb4d701ba0c82c7331a1", + "0.8.1": "11986d4c2964054baae9fe10ffc36c6a6ba70a78d97b406cb6c2e14e72a0cf72", + "0.8.0": "240ea8c37328f6bb61ec9f3e482131f0875c73166a0e349a8dd8b85204c58bd7", + "0.7.6": "bcc23b535e5b86c0d49096cbf73de67141896f4f14c114515d97b936a78353a1", +} + + +class PyMetatensorTorch(PythonPackage): + """Torchscript bindings for metatensor""" + + homepage = "https://docs.metatensor.org" + pypi = "metatensor-torch/metatensor_torch-0.0.0.tar.gz" + + import_modules = ["metatensor.torch"] + + maintainers("HaoZeke", "Luthaf", "RMeli") + license("BSD-3-Clause", checked_by="HaoZeke") + + # setup.py + for ver, sha256 in VERSIONS.items(): + version(ver, sha256=sha256) + depends_on(f"libmetatensor-torch@={ver}", when=f"@{ver}") + + # setup.py + depends_on("py-torch@2.1:", type=("build", "run")) + depends_on("py-metatensor-core@0.1.13:0.1", type=("build", "run"), when="@0.7.6") + depends_on("py-metatensor-core@0.1.15:0.1", type=("build", "run"), when="@0.8.0:") + + # pyproject.toml + depends_on("python@3.9:", type=("build", "run")) + depends_on("python@3.10:", type=("build", "run"), when="@0.8.1:") + depends_on("py-setuptools@77:", type="build") + depends_on("py-packaging@23:", type="build") + # metatensor/python/CMakeLists.txt + depends_on("cmake@3.16:", type="build") + depends_on("cmake@3.22:", type="build", when="@0.8.2:") + depends_on("c", type="build") + depends_on("cxx", type="build") + + def setup_build_environment(self, env: EnvironmentModifications) -> None: + env.set("METATENSOR_TORCH_PYTHON_USE_EXTERNAL_LIB", "ON") + + @run_after("install") + def workaround(self): + """ + Workaround for the incorrect usage of namespace packages. + + See https://github.com/metatensor/metatensor/issues/976 + """ + python = self.spec["python"] + python_version = python.version.up_to(2) + + metatensor_core = os.path.join( + self.spec["py-metatensor-core"].prefix.lib, + f"python{python_version}", + "site-packages", + "metatensor", + ) + metatensor_torch = os.path.join( + self.prefix.lib, f"python{python_version}", "site-packages", "metatensor", "torch" + ) + + dest = os.path.join(metatensor_core, "torch") + + if os.path.lexists(dest): + os.remove(dest) + + symlink(metatensor_torch, dest) diff --git a/repos/spack_repo/builtin/packages/py_metatomic_torch/package.py b/repos/spack_repo/builtin/packages/py_metatomic_torch/package.py new file mode 100644 index 00000000000..7e867f59be9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_metatomic_torch/package.py @@ -0,0 +1,65 @@ +# 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 * + +VERSIONS = { + "0.1.11": "540171dd03de84cb11b46a750bf016eb57dca756b5adf0383cefffbc9117e95f", + "0.1.10": "a221154d789d7c03ba2e06da9653301fb1954f92d9c2608e8c19fd33dde84d2d", + # 0.1.9 is skipped because it is partially broken + "0.1.8": "8bb19a487d112ca6fe73a75fd28440e35b29f1d599a36fc41dc0f05fca783353", + "0.1.7": "bd8cc1638e5e2bb14f9db57c634bb9794b6530796041a698cb8b47d7ad67c9ab", + "0.1.6": "cb1a966bd69e13234b02289f984705ecdbf5eb3cbcb050c1e103741adc708d50", + "0.1.5": "fb9680cd4cbac4348833af9cb2d196bcfbffb02da623397168e3f96c9a9e0e32", + "0.1.4": "c593bbc0fa3a410bd19d4a4a8d0008d5bd1c31a9faaca85b9d6b655ee1133bde", + "0.1.3": "60a4b651cf6e15f175879af74d18215d45cc4fd5e42a61242a180e2014fe9fd2", +} + + +class PyMetatomicTorch(PythonPackage): + """Torchscript bindings for metatomic""" + + homepage = "https://docs.metatensor.org/metatomic" + pypi = "metatomic-torch/metatomic_torch-0.0.0.tar.gz" + + import_modules = ["metatomic.torch"] + + maintainers("HaoZeke", "Luthaf", "RMeli") + license("BSD-3-Clause", checked_by="HaoZeke") + + for ver, sha256 in VERSIONS.items(): + version(ver, sha256=sha256) + depends_on(f"libmetatomic-torch@={ver}", when=f"@{ver}") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("python@3.10:", type=("build", "run"), when="@0.1.6:") + # python/metatomic_torch/setup.py + depends_on("py-torch@2.1:", type=("build", "run")) + depends_on("py-vesin", type=("build", "run")) + depends_on("py-vesin@0.5.1:", type=("build", "run"), when="@0.1.10:") + depends_on("py-metatensor-torch@0.8.0:0.8", type=("build", "run"), when="@0.1.4:") + depends_on("py-metatensor-torch@0.7.0:0.7", type=("build", "run"), when="@0.1.3") + depends_on("py-metatensor-operations@0.4.0:0.4", type=("build", "run"), when="@0.1.6:") + depends_on("py-metatensor-operations@0.3.0:0.3", type=("build", "run"), when="@:0.1.5") + # pyproject.toml + depends_on("py-setuptools@77:", type="build") + depends_on("py-packaging@23:", type="build") + # CMakeLists.txt + depends_on("cmake@3.16:", type="build") + depends_on("cmake@3.22:", type="build", when="@0.1.5:") + depends_on("c", type="build") + depends_on("cxx", type="build") + + # Fix build when torch looks for a CUDA compiler + patch( + "https://github.com/metatensor/metatomic/commit/256f9f96eb36620e42228c25d7b3062d544a11c0.patch?full_index=1", + sha256="4e958c83e1a2b5684984f6db38c948a86cca6b5477f8e0a849496d235f81d628", + when="@0.1.3", + level=3, + ) + + def setup_build_environment(self, env: EnvironmentModifications) -> None: + env.set("METATOMIC_TORCH_PYTHON_USE_EXTERNAL_LIB", "ON") diff --git a/repos/spack_repo/builtin/packages/py_metatrain/package.py b/repos/spack_repo/builtin/packages/py_metatrain/package.py new file mode 100644 index 00000000000..5da70025b1c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_metatrain/package.py @@ -0,0 +1,60 @@ +# 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 PyMetatrain(PythonPackage): + """Train, fine-tune, and manipulate machine learning models for atomistic systems""" + + homepage = "https://docs.metatensor.org/metatrain/latest/index.html" + pypi = "metatrain/metatrain-2025.11.tar.gz" + + maintainers("RMeli", "Luthaf", "HaoZeke") + + license("BSD-3-Clause", checked_by="RMeli") + + version("2026.2", sha256="ca3078d269189113585e5296166f8d2d8a2a6d5a1fe0aa8e3bcd88afe9b8a487") + version("2026.1", sha256="a86e2eb8d63e4a3c667ff783eb68f1a1dce6b2f204820d4bc7fabbbb165508df") + version("2025.12", sha256="d0634934cc33d23189a9ef99f8c27e2e81cdfc248cf110d8df6c48255cb78765") + version("2025.11", sha256="4c1a78feb359885f29d659f97ccf0e0676892ba1aa120cf58d0c7a0442161255") + + variant("soap_bpnn", default=False, description="Enable SOAP-BPNN architecture") + + # pyproject.toml [build-system] + with default_args(type="build"): + depends_on("py-setuptools@77:") + depends_on("py-setuptools-scm@8:") + + # pyproject.toml [project] dependencies + with default_args(type=("build", "run")): + depends_on("py-ase") + depends_on("py-huggingface-hub") + depends_on("py-numpy", when="@2025.12:") + depends_on("py-metatensor-learn@0.3.2:0.3", when="@2025.11") + depends_on("py-metatensor-learn@0.4.0:0.4", when="@2025.12:") + depends_on("py-metatensor-operations@0.3.4:0.3", when="@2025.11") + depends_on("py-metatensor-operations@0.4.0:0.4", when="@2025.12:") + depends_on("py-metatensor-torch@0.8.1:0.8", when="@2025.11") + depends_on("py-metatensor-torch@0.8.2:0.8", when="@2025.12:") + depends_on("py-metatomic-torch@0.1.5:0.1", when="@2025.11") + depends_on("py-metatomic-torch@0.1.6:0.1", when="@2025.12:") + depends_on("py-metatomic-torch@0.1.7:0.1", when="@2026.1:") + depends_on("py-metatomic-torch@0.1.8:0.1", when="@2026.2:") + depends_on("py-jsonschema") + depends_on("py-pydantic@2.12:", when="@2025.12:") + depends_on("py-typing-extensions", when="@2025.12:") + depends_on("py-omegaconf@2.3.0:") + depends_on("py-python-hostlist") + depends_on("py-tqdm") + depends_on("py-vesin") + depends_on("py-vesin@0.5.2:", when="@2026.2:") + + # soap-bpnn + # pyproject.toml [project.optional-dependencies] soap-bpnn + with default_args(type=("build", "run"), when="+soap_bpnn"): + depends_on("py-torch-spex@0.1") + depends_on("py-wigners") diff --git a/repos/spack_repo/builtin/packages/py_metpy/package.py b/repos/spack_repo/builtin/packages/py_metpy/package.py index 73f6349a734..6ad3a8e291e 100644 --- a/repos/spack_repo/builtin/packages/py_metpy/package.py +++ b/repos/spack_repo/builtin/packages/py_metpy/package.py @@ -12,7 +12,7 @@ class PyMetpy(PythonPackage): with weather data.""" homepage = "https://github.com/Unidata/MetPy" - pypi = "MetPy/MetPy-1.0.1.tar.gz" + pypi = "MetPy/metpy-1.0.1.tar.gz" maintainers("dopplershift") # Importing 'metpy.io' results in downloads, so skip it. @@ -21,6 +21,8 @@ class PyMetpy(PythonPackage): license("BSD-3-Clause") + version("1.7.1", sha256="cdfd8fdab58bc092a1974c016f2ea3a7715ffdf6a4660b28b0de7049328bce75") + version("1.7.0", sha256="aad7e03dc735cf8bfd870d16aca24920a707152de6caa24dbaf4da695c6f6ae4") version("1.6.2", sha256="eb065bac0d7818587fa38fa6c96dfe720d9d15b59af4e4866541894e267476bb") version("1.0.1", sha256="16fa9806facc24f31f454b898741ec5639a72ba9d4ff8a19ad0e94629d93cb95") @@ -31,23 +33,40 @@ class PyMetpy(PythonPackage): description="Enable xarray lazy-loading and advanced plotting", ) - with when("@1.6.2"): - depends_on("python@3.9:", type=("build", "run")) - depends_on("py-setuptools@61:", type="build") - depends_on("py-setuptools-scm@3.4:", type="build") - depends_on("py-matplotlib@3.5.0:", type=("build", "run")) - depends_on("py-numpy@1.20.0:", type=("build", "run")) - depends_on("py-pandas@1.4.0:", type=("build", "run")) - depends_on("py-pint@0.17:", type=("build", "run")) - depends_on("py-pooch@1.2.0:", type=("build", "run")) - depends_on("py-pyproj@3.0.0:", type=("build", "run")) - depends_on("py-scipy@1.8.0:", type=("build", "run")) - depends_on("py-traitlets@5.0.5:", type=("build", "run")) - depends_on("py-xarray@0.21.0:", type=("build", "run")) - - depends_on("py-cartopy@0.12.0:", when="+extras") - depends_on("py-dask@2020.12.0:", when="+extras") - depends_on("py-shapely@1.6.4:", when="+extras") + depends_on("python@3.9:", type=("build", "run"), when="@1.6.2:") + depends_on("py-setuptools@61:", type="build", when="@1.6.2:") + depends_on("py-setuptools-scm@3.4:", type="build", when="@1.6.2:") + + depends_on("py-matplotlib@3.5.0:", type=("build", "run"), when="@1.6.2:") + + depends_on("py-numpy@1.20.0:", type=("build", "run"), when="@1.6.2:") + depends_on("py-numpy@1.23.0:", type=("build", "run"), when="@1.7:") + + depends_on("py-pandas@1.4.0:", type=("build", "run"), when="@1.6.2:") + + depends_on("py-pint +numpy +xarray +dask", when="@1.6: +extras") + depends_on("py-pint@0.17:", type=("build", "run"), when="@1.6.2:") + depends_on("py-pint@0.24:", type=("build", "run"), when="@1.6.2: ^py-numpy@2:") + + depends_on("py-pooch@1.2.0:", type=("build", "run"), when="@1.6.2:") + + depends_on("py-pyproj@3.0.0:", type=("build", "run"), when="@1.6.2:") + depends_on("py-pyproj@3.3.0:", type=("build", "run"), when="@1.7:") + + depends_on("py-scipy@1.8.0:", type=("build", "run"), when="@1.6.2:") + + depends_on("py-traitlets@5.0.5:", type=("build", "run"), when="@1.6.2:") + depends_on("py-traitlets@5.1.0:", type=("build", "run"), when="@1.7:") + + depends_on("py-xarray@0.21.0:", type=("build", "run"), when="@1.6.2:") + depends_on("py-xarray@2022.6.0:", type=("build", "run"), when="@1.7:") + + depends_on("py-cartopy@0.12.0:", when="@1.6.2: +extras") + depends_on("py-cartopy@0.21.0:", when="@1.7: +extras") + + depends_on("py-dask@2020.12.0:", when="@1.6.2: +extras") + depends_on("py-shapely@1.6.4:", when="@1.6.2: +extras") + depends_on("py-boto3@1.26.45:", when="@1.7: +extras") with when("@1.0.1"): depends_on("python@3.6:", type=("build", "run")) @@ -65,3 +84,10 @@ class PyMetpy(PythonPackage): depends_on("py-scipy@1.0:", type=("build", "run")) depends_on("py-traitlets@4.3.0:", type=("build", "run")) depends_on("py-xarray@0.14.1:", type=("build", "run")) + + def url_for_version(self, version): + if version > Version("1.6.2"): + return super().url_for_version(version) + + url = "https://files.pythonhosted.org/packages/source/m/MetPy/MetPy-{0}.tar.gz" + return url.format(version.dotted) diff --git a/repos/spack_repo/builtin/packages/py_microsoft_aurora/package.py b/repos/spack_repo/builtin/packages/py_microsoft_aurora/package.py new file mode 100644 index 00000000000..980f35b44f4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_microsoft_aurora/package.py @@ -0,0 +1,38 @@ +# 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 PyMicrosoftAurora(PythonPackage): + """Implementation of the Aurora model.""" + + homepage = "https://github.com/microsoft/aurora" + pypi = "microsoft_aurora/microsoft_aurora-1.7.0.tar.gz" + + maintainers("adamjstewart") + + license("MIT") + + version("1.8.0", sha256="2557523e880b9754ced6a535e8861ad6bc0b29c26c5c7f62ce4e625b3d1f7d16") + version("1.7.0", sha256="1c285f5b39e7f5f47f7dc11c5c4f16edb63998179141a4ee27e66ce4b764d0ba") + + with default_args(type="build"): + depends_on("py-hatchling@1.8:") + depends_on("py-hatch-vcs") + + with default_args(type=("build", "run")): + depends_on("python@3.10:") + depends_on("py-numpy") + depends_on("py-scipy") + depends_on("py-torch") + depends_on("py-einops") + depends_on("py-timm") + depends_on("py-huggingface-hub") + depends_on("py-pydantic") + depends_on("py-xarray") + depends_on("py-netcdf4") + depends_on("py-azure-storage-blob") diff --git a/repos/spack_repo/builtin/packages/py_mistletoe/package.py b/repos/spack_repo/builtin/packages/py_mistletoe/package.py index 7e6ac2a67ff..2c25e34faa7 100644 --- a/repos/spack_repo/builtin/packages/py_mistletoe/package.py +++ b/repos/spack_repo/builtin/packages/py_mistletoe/package.py @@ -16,6 +16,7 @@ class PyMistletoe(PythonPackage): license("MIT") + version("1.5.1", sha256="c5571ce6ca9cfdc7ce9151c3ae79acb418e067812000907616427197648030a3") version("1.2.1", sha256="7d0c1ab3747047d169f9fc4b925d1cba3f5c13eaf0b90c365b72e47e59d00a02") depends_on("python@3.5:3", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_mistune/package.py b/repos/spack_repo/builtin/packages/py_mistune/package.py index eaadc832bb3..0e4aad7f433 100644 --- a/repos/spack_repo/builtin/packages/py_mistune/package.py +++ b/repos/spack_repo/builtin/packages/py_mistune/package.py @@ -15,21 +15,34 @@ class PyMistune(PythonPackage): license("BSD-3-Clause") - version("2.0.5", sha256="0246113cb2492db875c6be56974a7c893333bf26cd92891c85f63151cee09d34") - version("2.0.4", sha256="9ee0a66053e2267aba772c71e06891fa8f1af6d4b01d5e84e267b4570d4d9808") - version("2.0.2", sha256="6fc88c3cb49dba8b16687b41725e661cf85784c12e8974a29b9d336dd596c3a1") - version("0.8.4", sha256="59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e") - version("0.8.3", sha256="bc10c33bfdcaa4e749b779f62f60d6e12f8215c46a292d05e486b869ae306619") - version("0.8.2", sha256="c50f2fb3a058120c5696f08af9d57877a9c76e879f19af5835fb2c6a4e56a67b") - version("0.8.1", sha256="4c0f66924ce28f03b95b210ea57e57bd0b59f479edd91c2fa4fe59331eae4a82") - version("0.8", sha256="dc3f43e7cf0abb95cdfecbf82d85c419108d5f13e1844b2a8a2fc0abf24c7a47") - version("0.7.4", sha256="8517af9f5cd1857bb83f9a23da75aa516d7538c32a2c5d5c56f3789a9e4cd22f") - version("0.7.3", sha256="21d0e869df3b9189f248e022f1c9763cf9069e1a2f00676f1f1852bd7f98b713") - version("0.7.2", sha256="626f2516adcde4af608eaf83635ff20ff7e577c1898ad4d0f0fcd8c094399840") - version("0.7.1", sha256="6076dedf768348927d991f4371e5a799c6a0158b16091df08ee85ee231d929a7") - version("0.7", sha256="1daa2e55f5de63ecde7c446c4677c0447006752f78ad2c9c1c3c3452d395f89f") - version("0.6", sha256="d54a69365d01bc97412a39c11674a8aae3f333586e91f38895cc1ad818e13dc5") - version("0.5.1", sha256="cc66489a28845c0e1848ae290af5b555074eb76185136ca058e8eed1faa89692") - version("0.5", sha256="d53d868cfd10cf757160e88adb5760fce95f7026a243f15a02b7c604238e5869") - + # https://github.com/lepture/mistune/security/advisories/GHSA-8g87-j6q8-g93x + version("3.2.1", sha256="7c8e5501d38bac1582e067e46c8343f17d57ea1aaa735823f3aba1fd59c88a28") + with default_args(deprecated=True): + # https://github.com/lepture/mistune/security/advisories/GHSA-8mp2-v27r-99xp + # https://github.com/lepture/mistune/security/advisories/GHSA-hjph-f4mc-wx4c + # https://github.com/lepture/mistune/security/advisories/GHSA-58cw-g322-p94v + # https://github.com/lepture/mistune/security/advisories/GHSA-v87v-83h2-53w7 + version("3.2.0", sha256="708487c8a8cdd99c9d90eb3ed4c3ed961246ff78ac82f03418f5183ab70e398a") + version("3.1.4", sha256="b5a7f801d389f724ec702840c11d8fc48f2b33519102fc7ee739e8177b672164") + version("2.0.5", sha256="0246113cb2492db875c6be56974a7c893333bf26cd92891c85f63151cee09d34") + version("2.0.4", sha256="9ee0a66053e2267aba772c71e06891fa8f1af6d4b01d5e84e267b4570d4d9808") + version("2.0.2", sha256="6fc88c3cb49dba8b16687b41725e661cf85784c12e8974a29b9d336dd596c3a1") + version("0.8.4", sha256="59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e") + version("0.8.3", sha256="bc10c33bfdcaa4e749b779f62f60d6e12f8215c46a292d05e486b869ae306619") + version("0.8.2", sha256="c50f2fb3a058120c5696f08af9d57877a9c76e879f19af5835fb2c6a4e56a67b") + version("0.8.1", sha256="4c0f66924ce28f03b95b210ea57e57bd0b59f479edd91c2fa4fe59331eae4a82") + version("0.8", sha256="dc3f43e7cf0abb95cdfecbf82d85c419108d5f13e1844b2a8a2fc0abf24c7a47") + version("0.7.4", sha256="8517af9f5cd1857bb83f9a23da75aa516d7538c32a2c5d5c56f3789a9e4cd22f") + version("0.7.3", sha256="21d0e869df3b9189f248e022f1c9763cf9069e1a2f00676f1f1852bd7f98b713") + version("0.7.2", sha256="626f2516adcde4af608eaf83635ff20ff7e577c1898ad4d0f0fcd8c094399840") + version("0.7.1", sha256="6076dedf768348927d991f4371e5a799c6a0158b16091df08ee85ee231d929a7") + version("0.7", sha256="1daa2e55f5de63ecde7c446c4677c0447006752f78ad2c9c1c3c3452d395f89f") + version("0.6", sha256="d54a69365d01bc97412a39c11674a8aae3f333586e91f38895cc1ad818e13dc5") + version("0.5.1", sha256="cc66489a28845c0e1848ae290af5b555074eb76185136ca058e8eed1faa89692") + version("0.5", sha256="d53d868cfd10cf757160e88adb5760fce95f7026a243f15a02b7c604238e5869") + + depends_on("python@3.8:", type=("build", "run"), when="@3.1:") + depends_on("python@3.7:", type=("build", "run"), when="@3:") depends_on("py-setuptools", type="build") + + depends_on("py-typing-extensions", type="build", when="@3.1: ^python@:3.10") diff --git a/repos/spack_repo/builtin/packages/py_mlflow/package.py b/repos/spack_repo/builtin/packages/py_mlflow/package.py index 6612da1ce8c..0e591a6051f 100644 --- a/repos/spack_repo/builtin/packages/py_mlflow/package.py +++ b/repos/spack_repo/builtin/packages/py_mlflow/package.py @@ -46,7 +46,6 @@ class PyMlflow(PythonPackage): depends_on("py-sqlalchemy@1.4.0:1", type=("build", "run")) for platform in ["linux", "darwin"]: depends_on("py-gunicorn@:20", type=("build", "run"), when=f"platform={platform}") - depends_on("py-waitress@:2", type=("build", "run"), when="platform=windows") depends_on("py-scikit-learn@:1", type=("build", "run")) depends_on("py-pyarrow@4.0.0:10", type=("build", "run")) depends_on("py-shap@0.40:0", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_mmcv/package.py b/repos/spack_repo/builtin/packages/py_mmcv/package.py index f805634309a..494116e98c7 100644 --- a/repos/spack_repo/builtin/packages/py_mmcv/package.py +++ b/repos/spack_repo/builtin/packages/py_mmcv/package.py @@ -17,16 +17,24 @@ class PyMmcv(PythonPackage): license("Apache-2.0") + version("2.2.0", sha256="13b2bdab6e97799177dee568efdb2ae0bb48b1dc924a8b617416ee8a392e5348") version("0.5.1", sha256="7c5ad30d9b61e44019e81ef46c406aa85dd08b5d0ba12ddd5cdc9c445835a55e") depends_on("cxx", type="build") # generated depends_on("python@3.6:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-cython", type="build") + depends_on("py-addict", type=("build", "run")) + depends_on("py-mmengine@0.3.0:", type=("build", "run"), when="@2:") depends_on("py-numpy@1.11.1:", type=("build", "run")) + depends_on("py-packaging", type=("build", "run"), when="@2:") + depends_on("py-pillow", type=("build", "run"), when="@2:") depends_on("py-pyyaml", type=("build", "run")) - depends_on("opencv+python3", type=("build", "run")) - depends_on("py-cython", type="build") + depends_on("py-regex", type=("build", "run"), when="platform=win32") + depends_on("py-yapf", type=("build", "run"), when="@2:") + depends_on("opencv@3:+python3", type=("build", "run")) patch("opencv_for0.5.1.patch", when="@0.5.1") diff --git a/repos/spack_repo/builtin/packages/py_mmengine/package.py b/repos/spack_repo/builtin/packages/py_mmengine/package.py new file mode 100644 index 00000000000..2d662a98fa5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_mmengine/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 PyMmengine(PythonPackage): + """MMEngine is a foundational python library for deep learning + models based on PyTorch. + """ + + homepage = "https://mmengine.readthedocs.io/en/latest/" + url = "https://github.com/open-mmlab/mmengine/archive/v0.10.7.tar.gz" + + license("Apache-2.0") + + version("0.10.7", sha256="ccc32b78d230220b6b0e1f5ceb44835b54c2848548b8ee344feecd4aa98cf56f") + + depends_on("cxx", type="build") # generated + + depends_on("python@3.6:", type=("build", "run")) + + depends_on("py-setuptools", type="build") + depends_on("py-cython", type="build") + + depends_on("py-addict", type=("build", "run")) + depends_on("py-numpy@1.11.1:", type=("build", "run")) + depends_on("py-pyyaml", type=("build", "run")) + depends_on("py-regex", type=("build", "run"), when="platform=win32") + depends_on("py-rich", type=("build", "run")) + depends_on("py-termcolor", type=("build", "run")) + depends_on("py-yapf", 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 33f76a8d47a..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,11 @@ 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") + version("1.10.1", sha256="a93e3d772d551e43ec5ddcd3495fffe0f98e3e384045bcd96497636e86a32a0b") version("1.7.1", sha256="a87bbc998b792532d2c87add8b0f7bbf28a4d8cf5db1bdfb6d6e260791754498") version("1.6.1", sha256="e4f5683d01cef675eddad788bdb6b44cc015dff0fb1ddfca3c4105edfb757ef8") version("1.4.2", sha256="dd2bf35a90d951bef15ff3a651045b0373eff26018a821667109c727d55c7d63") @@ -32,79 +37,91 @@ class PyMne(PythonPackage): variant("full", default=False, when="@:0.23", description="Enable full functionality.") variant("hdf5", default=False, when="@1:", description="Enable hdf5 functionality.") - depends_on("python@3.9:", when="@1.7:", type=("build", "run")) - depends_on("python@3.8:", when="@1.4:", type=("build", "run")) - depends_on("py-hatchling", when="@1.7:", type="build") - depends_on("py-hatch-vcs", when="@1.7:", type="build") - - # requirements_base.txt with versions specified in README.rst (marked with *) - depends_on("py-numpy@1.21.2:", when="@1.6.1:", type=("build", "run")) - depends_on("py-numpy@1.20.2:", when="@1.4:", type=("build", "run")) # * - depends_on("py-numpy@1.18.1:", when="@1:", type=("build", "run")) # * - depends_on("py-numpy@1.15.4:", when="@0.23:", type=("build", "run")) - depends_on("py-numpy@1.11.3:", type=("build", "run")) - depends_on("py-numpy@:1", when="@:1.6", type=("build", "run")) - depends_on("py-scipy@1.7.1:", when="@1.6.1:", type=("build", "run")) - depends_on("py-scipy@1.6.3:", when="@1.4:", type=("build", "run")) - depends_on("py-scipy@1.4.1:", when="@1:", type=("build", "run")) # * - depends_on("py-scipy@1.1.0:", when="@0.23:", type=("build", "run")) - depends_on("py-scipy@0.17.1:", type=("build", "run")) - depends_on("py-matplotlib@3.5:", when="@1.6.1:", type=("build", "run")) - depends_on("py-matplotlib@3.4:", when="@1:", type=("build", "run")) # * - depends_on("py-matplotlib@3.1:", when="@1:", type=("build", "run")) # * - depends_on("py-tqdm", when="@1:", type=("build", "run")) - depends_on("py-pooch@1.5:", when="@1:", type=("build", "run")) - depends_on("py-decorator", when="@1:", type=("build", "run")) - depends_on("py-packaging", when="@1:", type=("build", "run")) - depends_on("py-jinja2", when="@1:", type=("build", "run")) - depends_on("py-lazy-loader@0.3:", when="@1.6.1:", type=("build", "run")) - - with when("+hdf5"): - depends_on("py-h5io", type=("build", "run")) - depends_on("py-pymatreader", type=("build", "run")) - - # Historical dependencies - depends_on("py-setuptools@45:", when="@1.4:1.6", type="build") - depends_on("py-setuptools", when="@:1.6", type="build") - depends_on("py-setuptools-scm@6.2:", when="@1.4:1.6", type="build") - depends_on( - "py-importlib-resources@5.10.2:", when="@1.4:1.6 ^python@:3.9", type=("build", "run") - ) - - with when("+full"): - # requirements.txt with versions specified in README.rst (marked with *) - depends_on("py-matplotlib@3.0.3:", type=("build", "run")) # * - depends_on("py-pyqt5@5.10:,:5.15.1,5.15.4:", when="platform=linux", type=("build", "run")) - depends_on("py-pyqt5@5.10:,:5.13", when="platform=darwin", type=("build", "run")) - depends_on("py-pyqt5@5.10:,:5.15.2,5.15.4:", when="platform=win32", type=("build", "run")) - depends_on("py-pyqt5-sip", type=("build", "run")) - depends_on("py-sip", type=("build", "run")) - depends_on("py-scikit-learn@0.20.2:", type=("build", "run")) # * - depends_on("py-nibabel@2.1.0:", type=("build", "run")) # * - depends_on("py-numba@0.40:", type=("build", "run")) # * - depends_on("py-h5py", type=("build", "run")) - depends_on("py-pandas@0.23.4:", type=("build", "run")) # * - depends_on("py-numexpr", type=("build", "run")) - depends_on("py-jupyter", type=("build", "run")) - depends_on("py-python-picard@0.3:", type=("build", "run")) # * - depends_on("py-statsmodels", type=("build", "run")) - depends_on("py-joblib", type=("build", "run")) - depends_on("py-psutil", type=("build", "run")) - depends_on("py-dipy@0.10.1:", type=("build", "run")) # * - depends_on("vtk+python", type=("build", "run")) - depends_on("vtk+python@:8.1", when="platform=darwim", type=("build", "run")) - depends_on("py-mayavi", type=("build", "run")) - depends_on("py-pysurfer+save_movie", type=("build", "run")) - depends_on("py-nilearn", type=("build", "run")) - depends_on("py-xlrd", type=("build", "run")) - depends_on("py-imageio@2.6.1:", type=("build", "run")) # * - depends_on("py-imageio-ffmpeg@0.4.1:", type=("build", "run")) - depends_on("py-pyvista@0.24:", type=("build", "run")) # * - depends_on("py-pyvistaqt@0.2.0:", type=("build", "run")) # * - depends_on("py-tqdm", type=("build", "run")) - depends_on("py-mffpy@0.5.7:", type=("build", "run")) # * - depends_on("py-ipywidgets", type=("build", "run")) - depends_on("py-ipyvtk-simple", type=("build", "run")) - - # README.rst - # depends_on('py-cupy@4.0:', type=('build', 'run')) # not yet in spack + with default_args(type="build"): + depends_on("py-hatch-vcs", when="@1.7:") + depends_on("py-hatchling@1.27", when="@1.12:") + depends_on("py-hatchling", when="@1.7:") + + # Historical dependencies + depends_on("py-setuptools@45:", when="@1.4:1.6") + depends_on("py-setuptools", when="@:1.6") + depends_on("py-setuptools-scm@6.2:", when="@1.4:1.6") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@1.9:") + depends_on("python@3.9:", when="@1.7:") + depends_on("python@3.8:", when="@1.4:") + + # dependencies for @:1.5 can be found in requirements_base.txt with versions + # specified in README.rst (marked with *) + depends_on("py-decorator@5.1:", when="@1:") + depends_on("py-decorator", when="@1:") + depends_on("py-jinja2@3.1", when="@1.12:") + depends_on("py-jinja2", when="@1:") + depends_on("py-lazy-loader@0.3:", when="@1.6.1:") + depends_on("py-matplotlib@3.8:", when="@1.11:") + depends_on("py-matplotlib@3.7:", when="@1.10:") + depends_on("py-matplotlib@3.5:", when="@1.6.1:") + depends_on("py-matplotlib@3.4:", when="@1.4:") # * + depends_on("py-matplotlib@3.1:", when="@1:") # * + depends_on("py-numpy@1.26:2", when="@1.11:") + depends_on("py-numpy@1.25:2", when="@1.6.1:1.10") + depends_on("py-numpy@1.21.2:", when="@1.6.1:1.7") + depends_on("py-numpy@1.20.2:", when="@1.4:1.7") # * + depends_on("py-numpy@1.18.1:", when="@1:1.7") # * + depends_on("py-numpy@1.15.4:", when="@0.23:1.7") + depends_on("py-numpy@1.11.3:", when="@:1.7") + depends_on("py-numpy@:1", when="@:1.6") + depends_on("py-packaging", when="@1:") + depends_on("py-pooch@1.5:", when="@1:") + depends_on("py-scipy@1.13:", when="@1.12:") + depends_on("py-scipy@1.11:", when="@1.10:") + depends_on("py-scipy@1.7.1:", when="@1.6.1:") + depends_on("py-scipy@1.6.3:", when="@1.4:") + depends_on("py-scipy@1.4.1:", when="@1:") # * + depends_on("py-scipy@1.1.0:", when="@0.23:") + depends_on("py-scipy@0.17.1:") + depends_on("py-tqdm@4.66:", when="@1.12:") + depends_on("py-tqdm", when="@1:") + + with when("+hdf5"): + depends_on("py-h5io@0.2.4:", when="@1.8:") + depends_on("py-h5io") + depends_on("py-pymatreader") + + # Historical dependencies + depends_on("py-importlib-resources@5.10.2:", when="@1.4:1.6 ^python@:3.9") + + with when("+full"): + # requirements.txt with versions specified in README.rst (marked with *) + depends_on("py-matplotlib@3.0.3:") # * + depends_on("py-pyqt5@5.10:,:5.15.1,5.15.4:", when="platform=linux") + depends_on("py-pyqt5@5.10:,:5.13", when="platform=darwin") + depends_on("py-pyqt5@5.10:,:5.15.2,5.15.4:", when="platform=win32") + depends_on("py-pyqt5-sip") + depends_on("py-sip") + depends_on("py-scikit-learn@0.20.2:") # * + depends_on("py-nibabel@2.1.0:") # * + depends_on("py-numba@0.40:") # * + depends_on("py-h5py") + depends_on("py-pandas@0.23.4:") # * + depends_on("py-numexpr") + depends_on("py-jupyter") + depends_on("py-python-picard@0.3:") # * + depends_on("py-statsmodels") + depends_on("py-joblib") + depends_on("py-psutil") + depends_on("py-dipy@0.10.1:") # * + depends_on("vtk+python") + depends_on("py-mayavi") + depends_on("py-pysurfer+save_movie") + depends_on("py-nilearn") + depends_on("py-xlrd") + depends_on("py-imageio@2.6.1:") # * + depends_on("py-imageio-ffmpeg@0.4.1:") + depends_on("py-pyvista@0.24:") # * + depends_on("py-pyvistaqt@0.2.0:") # * + depends_on("py-tqdm") + depends_on("py-mffpy@0.5.7:") # * + depends_on("py-ipywidgets") + depends_on("py-ipyvtk-simple") diff --git a/repos/spack_repo/builtin/packages/py_mne_bids/package.py b/repos/spack_repo/builtin/packages/py_mne_bids/package.py index dcfc80b648d..bbd4e416bc5 100644 --- a/repos/spack_repo/builtin/packages/py_mne_bids/package.py +++ b/repos/spack_repo/builtin/packages/py_mne_bids/package.py @@ -17,14 +17,47 @@ class PyMneBids(PythonPackage): license("BSD-3-Clause") + version("0.18.0", sha256="9db6bbeabc8b465ce17c2356ad11606b871a0116054866a2413a9b313421134a") + version("0.17.0", sha256="e6415bce905d6721eb175f8eab269309cb4b75081f43c782da860a89553ab4bb") version("0.15.0", sha256="8a3ac7fb586ba2be70eb687c67ae060b42693078c56232180b27161124c22f72") variant("full", default=False, description="Enable full functionality.") - depends_on("python@3.9:", type=("build", "run")) - depends_on("py-hatchling", type="build") - depends_on("py-hatch-vcs", type="build") - - depends_on("py-mne@1.5:", type=("build", "run")) - depends_on("py-numpy@1.21.2:", type=("build", "run")) - depends_on("py-scipy@1.7.1:", type=("build", "run")) + with default_args(type="build"): + # although 0.17 needs py-hatchling==1.26.3 to build according to + # pyproject.toml, it also builds fine with other versions + depends_on("py-hatchling") + depends_on("py-hatch-vcs") + + with default_args(type=("build", "run")): + depends_on("python@3.11:", when="@0.18:") + depends_on("python@3.10:", when="@0.16:") + depends_on("python@3.9:") + + depends_on("py-mne@1.8:", when="@0.17:") + depends_on("py-mne@1.5:") + depends_on("py-numpy@1.23:", when="@0.17:") + depends_on("py-numpy@1.21.2:") + depends_on("py-scipy@1.9:", when="@0.17:") + depends_on("py-scipy@1.7.1:") + + with when("+full"): + depends_on("py-curryreader@0.1.2:", when="@0.18:") + depends_on("py-defusedxml") + depends_on("py-edfio@0.4.10:", when="@0.18:") + depends_on("py-edfio@0.2.1:") + depends_on("py-eeglabio@0.1:", when="@0.18:") + depends_on("py-eeglabio@0.0.2:") + depends_on("py-filelock", when="@0.18:") + depends_on("py-matplotlib@3.6:", when="@0.17:") + depends_on("py-matplotlib@3.5:") + depends_on("py-nibabel@3.2.1:") + depends_on("py-pandas@1.3.2:") + depends_on("py-pybv@0.7.5:") + depends_on("py-pymatreader") + depends_on("py-pymatreader@0.0.30:", when="@:0.15") + + # Historical dependencies + depends_on("py-edflib-python@1.0.6:", when="@:0.15") + + conflicts("py-h5py@3.15.0") diff --git a/repos/spack_repo/builtin/packages/py_modelcif/package.py b/repos/spack_repo/builtin/packages/py_modelcif/package.py new file mode 100644 index 00000000000..7a3c210b4cd --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_modelcif/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 PyModelcif(PythonPackage): + """Package for handling ModelCIF mmCIF and BinaryCIF files.""" + + homepage = "https://github.com/ihmwg/python-modelcif" + git = "https://github.com/ihmwg/python-modelcif.git" + pypi = "modelcif/modelcif-1.4.tar.gz" + + maintainers("LydDeb") + + license("MIT", checked_by="LydDeb") + + version("1.6", sha256="b1bf0751f0e2d1ea6da7a0a8a92efd2754428ae50bc3bfbff8e015183e978b19") + version("1.4", sha256="fca5c1da5eb25fff3c9cd61b618fa247569f8e90cbb64774740601155d4add6e") + + depends_on("py-setuptools", type="build") + depends_on("py-ihm@2.6:", type=("build", "run")) 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_modules_gui/package.py b/repos/spack_repo/builtin/packages/py_modules_gui/package.py index d9f0f987870..f3eea223a1f 100644 --- a/repos/spack_repo/builtin/packages/py_modules_gui/package.py +++ b/repos/spack_repo/builtin/packages/py_modules_gui/package.py @@ -18,6 +18,7 @@ class PyModulesGui(PythonPackage): license("GPL-2.0") + version("0.2.2", sha256="9b0b1a5aecff5db30e214d0e193cb2db6f35f89c672adf0267d00f9967512cc1") version("0.2", sha256="d58a3943f4631756afa4f84c13b70fae67a72365ab3cad28014f972b8d023aec") depends_on("py-setuptools@61:", type=("build")) diff --git a/repos/spack_repo/builtin/packages/py_monai/package.py b/repos/spack_repo/builtin/packages/py_monai/package.py index ace6b9b188f..93dd28f1923 100644 --- a/repos/spack_repo/builtin/packages/py_monai/package.py +++ b/repos/spack_repo/builtin/packages/py_monai/package.py @@ -21,7 +21,7 @@ class PyMonai(PythonPackage): depends_on("python@3.6:", type=("build", "run")) depends_on("python@3.8:", when="@1.2:", type=("build", "run")) - depends_on("py-ninja", type="build") + depends_on("ninja", type="build") depends_on("py-wheel", type="build") depends_on("py-setuptools", type="build") depends_on("py-torch@1.6:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_more_itertools/package.py b/repos/spack_repo/builtin/packages/py_more_itertools/package.py index d319e070872..27868502688 100644 --- a/repos/spack_repo/builtin/packages/py_more_itertools/package.py +++ b/repos/spack_repo/builtin/packages/py_more_itertools/package.py @@ -11,10 +11,12 @@ class PyMoreItertools(PythonPackage): """Additions to the standard Python itertools package.""" homepage = "https://github.com/erikrose/more-itertools" - pypi = "more-itertools/more-itertools-7.2.0.tar.gz" + pypi = "more-itertools/more_itertools-10.8.0.tar.gz" license("MIT") + version("11.0.2", sha256="392a9e1e362cbc106a2457d37cabf9b36e5e12efd4ebff1654630e76597df804") + version("10.8.0", sha256="f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd") version("9.1.0", sha256="cabaa341ad0389ea83c17a94566a53ae4c9d07349861ecb14dc6d0345cf9ac5d") version("8.14.0", sha256="c09443cd3d5438b8dafccd867a6bc1cb0894389e90cb53d227456b0b0bccb750") version("8.12.0", sha256="7dc6ad46f05f545f900dd59e8dfb4e84a4827b97b3cfecb175ea0c7d247f6064") @@ -27,8 +29,20 @@ class PyMoreItertools(PythonPackage): version("4.1.0", sha256="c9ce7eccdcb901a2c75d326ea134e0886abfbea5f93e91cc95de9507c0816c44") version("2.2", sha256="93e62e05c7ad3da1a233def6731e8285156701e3419a5fe279017c429ec67ce0") - depends_on("py-flit-core@3.2:3", when="@8.14.0:", type="build") + depends_on("python@3.10:", when="@11:", type=("build", "run")) + depends_on("python@3.9:", when="@10.6:", type=("build", "run")) + depends_on("python@3.8:", when="@10:", type=("build", "run")) + depends_on("python@3.7:", when="@9:", type=("build", "run")) + depends_on("py-flit-core@3.12:3", when="@10.8:", type="build") + depends_on("py-flit-core@3.2:3", when="@8.14.0:10.7", type="build") # Historical dependencies depends_on("py-setuptools", when="@:8.12.0", type="build") depends_on("py-six@1.0.0:1", when="@:5", type=("build", "run")) + + def url_for_version(self, version): + if version >= Version("10.7.0"): + name = "more_itertools" + else: + name = "more-itertools" + return f"https://files.pythonhosted.org/packages/source/m/more-itertools/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_morphosamplers/package.py b/repos/spack_repo/builtin/packages/py_morphosamplers/package.py new file mode 100644 index 00000000000..4072d035932 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_morphosamplers/package.py @@ -0,0 +1,33 @@ +# 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 PyMorphosamplers(PythonPackage): + """A library for sampling image data along morphological objects such as + splines and surfaces.""" + + homepage = "https://github.com/morphometrics/morphosamplers" + pypi = "morphosamplers/morphosamplers-0.0.16.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("0.0.16", sha256="82097605e42f2129445ef4ac2235430ac10d1ec6dced918bfacc58d913377f58") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@45:", type="build") + depends_on("py-setuptools-scm@6.2:", type="build") + + with default_args(type=("build", "run")): + depends_on("py-einops") + depends_on("py-numpy") + depends_on("py-psygnal") + depends_on("py-pydantic") + depends_on("py-pydantic-compat") + depends_on("py-scipy") + depends_on("py-typing-extensions") diff --git a/repos/spack_repo/builtin/packages/py_motor/package.py b/repos/spack_repo/builtin/packages/py_motor/package.py deleted file mode 100644 index 2695709075c..00000000000 --- a/repos/spack_repo/builtin/packages/py_motor/package.py +++ /dev/null @@ -1,22 +0,0 @@ -# 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 PyMotor(PythonPackage): - """async Python driver for MongoDB and Tornado or asyncio""" - - homepage = "https://github.com/mongodb/motor/" - pypi = "motor/motor-2.5.1.tar.gz" - - license("Apache-2.0") - - version("2.5.1", sha256="663473f4498f955d35db7b6f25651cb165514c247136f368b84419cb7635f6b8") - - depends_on("python@3.5.2:", type=("build", "run")) - depends_on("py-pymongo@3.12:3", type=("build", "run")) - depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_mpi4py/package.py b/repos/spack_repo/builtin/packages/py_mpi4py/package.py index 182e9cd2537..f3b9542e86a 100644 --- a/repos/spack_repo/builtin/packages/py_mpi4py/package.py +++ b/repos/spack_repo/builtin/packages/py_mpi4py/package.py @@ -22,6 +22,10 @@ class PyMpi4py(PythonPackage): license("BSD-2-Clause", when="@:3") version("master", branch="master") + version("4.1.1", sha256="eb2c8489bdbc47fdc6b26ca7576e927a11b070b6de196a443132766b3d0a2a22") + version("4.1.0", sha256="817492796bce771ccd809a6051cf68d48689815493b567a696ce7679260449cd") + version("4.0.3", sha256="de2710d73e25e115865a3ab63d34a54b2d8608b724f761c567b6ad58dd475609") + version("4.0.2", sha256="86085436d3ea3587323321b9e661e4df60eabbcf11c2c9cf63d0873ca111cc8b") version("4.0.1", sha256="f3174b245775d556f4fddb32519a2066ef0592edc810c5b5a59238f9a0a40c89") version("4.0.0", sha256="820d31ae184d69c17d9b5d55b1d524d56be47d2e6cb318ea4f3e7007feff2ccc") version("3.1.6", sha256="c8fa625e0f92b082ef955bfb52f19fa6691d29273d7d71135d295aa143dee6cb") diff --git a/repos/spack_repo/builtin/packages/py_mpld3/package.py b/repos/spack_repo/builtin/packages/py_mpld3/package.py index 27f9b0a11c5..debafb2814e 100644 --- a/repos/spack_repo/builtin/packages/py_mpld3/package.py +++ b/repos/spack_repo/builtin/packages/py_mpld3/package.py @@ -16,6 +16,7 @@ class PyMpld3(PythonPackage): license("BSD-3-Clause") + version("0.5.12", sha256="1333e2bca012ea9af3c27801ba36f65bc26540b6fad4c56a903afb19477f2c37") version("0.5.8", sha256="1a167dbef836dd7c66d8aa71c06a32d50bffa18725f304d93cb74fdb3545043b") version("0.5.5", sha256="b080f3535238a71024c0158280ab4f6091717c45347c41c907012f8dd6da1bd5") version("0.3", sha256="4d455884a211bf99b37ecc760759435c7bb6a5955de47d8daf4967e301878ab7") diff --git a/repos/spack_repo/builtin/packages/py_mplhep/package.py b/repos/spack_repo/builtin/packages/py_mplhep/package.py index 95c54f0205e..4bd84cd466b 100644 --- a/repos/spack_repo/builtin/packages/py_mplhep/package.py +++ b/repos/spack_repo/builtin/packages/py_mplhep/package.py @@ -12,9 +12,14 @@ class PyMplhep(PythonPackage): homepage = "https://github.com/scikit-hep/mplhep" pypi = "mplhep/mplhep-0.3.15.tar.gz" + git = "https://github.com/scikit-hep/mplhep.git" license("MIT", checked_by="wdconinc") + version("1.1.0", sha256="bc79cc481b27835f7cc069e9e0d801e203e37c61af3131c717191d19838908db") + version("1.0.0", sha256="efab1ec4545f75a47fe6d1dd5862667e8c12054f4d933c089052c345e6940b43") + version("0.4.1", sha256="86e2d99680bdb19598e847ff5b24f3bf1c63f164b99f076be98255acd738ee48") + version("0.4.0", sha256="485d67db2dd7a1091eee86580fe46cf32dd0b0fc34d6db6246b1ef59346a810c") version("0.3.59", sha256="06f4b3a799e92fe6982ed3939dd648d0f972781aca3dc814a83e5bbd970649fe") version("0.3.58", sha256="fed8b5d5fee92c7aa40cfe70e5b8d2b2bb8ed7aeb7a2c272d73b241279e1adba") version("0.3.57", sha256="3b04a91f75889e31c0d7a5e520dd092f2fd29fb6000418c26cf4e497cc977541") @@ -25,6 +30,7 @@ class PyMplhep(PythonPackage): depends_on("python@3.7:", type=("build", "run")) depends_on("python@3.8:", type=("build", "run"), when="@0.3.29:") + depends_on("python@3.9:", type=("build", "run"), when="@1:") with when("@0.3.53:"): depends_on("py-hatchling", type="build") depends_on("py-hatch-vcs", type="build") @@ -33,6 +39,12 @@ class PyMplhep(PythonPackage): depends_on("py-setuptools@42:", when="@0.3.26:", type="build") depends_on("py-setuptools-scm@3.4:+toml", when="@0.3.2:", type="build") depends_on("py-matplotlib@3.4:", type=("build", "run")) + # properly handle docstring -> _docstring transition in mplhep#443 and mplhep#455 + depends_on("py-matplotlib@3.6:", type=("build", "run"), when="@0.3.29:") + depends_on("py-matplotlib@:3.9", type=("build", "run"), when="@1: ^python@:3.9") + depends_on("py-matplotlib@3.10.8:", type=("build", "run"), when="@1: ^python@3.10:") + depends_on("py-matplotlib@:3.8", type=("build", "run"), when="@:0.3.28") + depends_on("py-pyparsing@:3.2", type=("build", "run"), when="@1: ^python@:3.9") depends_on("py-mplhep-data", type=("build", "run")) depends_on("py-mplhep-data@0.0.4:", type=("build", "run"), when="@0.3.54:") depends_on("py-numpy@1.16.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_mplhep_data/package.py b/repos/spack_repo/builtin/packages/py_mplhep_data/package.py index 4fbdb53b77a..edc0db7e92a 100644 --- a/repos/spack_repo/builtin/packages/py_mplhep_data/package.py +++ b/repos/spack_repo/builtin/packages/py_mplhep_data/package.py @@ -15,6 +15,7 @@ class PyMplhepData(PythonPackage): license("MIT") + version("0.0.5", sha256="4e5c4eae3e423762eb3d4ad542060f1be7f122c18a17164f7fcfedcf943fac7d") version("0.0.4", sha256="cd1f3ad3af9dbff33aef9e7406d2130d624a0bd1d5aa5970fc713a6421165a4e") version("0.0.3", sha256="b54d257f3f53c93a442cda7a6681ce267277e09173c0b41fd78820f78321772f") diff --git a/repos/spack_repo/builtin/packages/py_msal/package.py b/repos/spack_repo/builtin/packages/py_msal/package.py index 3e8fe702c1e..c290404ed4b 100644 --- a/repos/spack_repo/builtin/packages/py_msal/package.py +++ b/repos/spack_repo/builtin/packages/py_msal/package.py @@ -19,6 +19,7 @@ class PyMsal(PythonPackage): license("MIT") + version("1.36.0", sha256="3f6a4af2b036b476a4215111c4297b4e6e236ed186cd804faefba23e4990978b") version("1.26.0", sha256="224756079fe338be838737682b49f8ebc20a87c1c5eeaf590daae4532b83de15") version("1.20.0", sha256="78344cd4c91d6134a593b5e3e45541e666e37b747ff8a6316c3668dd1e6ab6b2") version("1.3.0", sha256="5442a3a9d006506e653d3c4daff40538bdf067bf07b6b73b32d1b231d5e77a92") @@ -27,13 +28,12 @@ class PyMsal(PythonPackage): # https://github.com/AzureAD/microsoft-authentication-library-for-python/blob/1.26.0/setup.cfg depends_on("py-setuptools", type="build") - depends_on("py-requests@2", type=("build", "run")) - depends_on("py-pyjwt@1:2+crypto", type=("build", "run"), when="@1.9:") - depends_on("py-pyjwt@1+crypto", type=("build", "run"), when="@:1.8") - depends_on("py-cryptography@0.6:43", type=("build", "run"), when="@1.24:") - depends_on("py-cryptography@0.6:42", type=("build", "run"), when="@1.22:1.23") - depends_on("py-cryptography@0.6:40", type=("build", "run"), when="@1.19:1.21") - depends_on("py-cryptography@0.6:39", type=("build", "run"), when="@1.18") - depends_on("py-cryptography@0.6:38", type=("build", "run"), when="@1.17") - depends_on("py-cryptography@0.6:37", type=("build", "run"), when="@1.15:1.16") - depends_on("py-cryptography@0.6:3", type=("build", "run"), when="@1.6:1.14") + + with default_args(type=("build", "run")): + depends_on("py-requests@2") + depends_on("py-pyjwt@1:2+crypto", when="@1.9:") + depends_on("py-pyjwt@1+crypto", when="@:1.8") + depends_on("py-cryptography@2.5:48", when="@1.34:") + depends_on("py-cryptography@0.6:43", when="@1.24:1.26") + depends_on("py-cryptography@0.6:42", when="@1.22:1.23") + depends_on("py-cryptography@0.6:40", when="@1.19:1.21") diff --git a/repos/spack_repo/builtin/packages/py_msgpack/package.py b/repos/spack_repo/builtin/packages/py_msgpack/package.py index 183b437f0ab..582ce5d8024 100644 --- a/repos/spack_repo/builtin/packages/py_msgpack/package.py +++ b/repos/spack_repo/builtin/packages/py_msgpack/package.py @@ -17,6 +17,8 @@ class PyMsgpack(PythonPackage): license("Apache-2.0") + version("1.1.2", sha256="3b60763c1373dd60f398488069bcdc703cd08a711477b5d480eecc9f9626f47e") + version("1.1.1", sha256="77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd") version("1.0.5", sha256="c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c") version("1.0.4", sha256="f5d869c18f030202eb412f08b28d2afeea553d6613aee89e200d7aca7ef01f5f") version("1.0.3", sha256="51fdc7fb93615286428ee7758cecc2f374d5ff363bdd884c7ea622a7a327a81e") @@ -27,8 +29,20 @@ class PyMsgpack(PythonPackage): version("0.6.1", sha256="734e1abc6f14671f28acd5266de336ae6d8de522fe1c8d0b7146365ad1fe6b0f") version("0.6.0", sha256="4478a5f68142414084cd43af8f21cef9619ad08bb3c242ea505330dade6ca9ea") - depends_on("cxx", type="build") # generated - - depends_on("py-setuptools", type="build") - depends_on("py-setuptools@35.0.2:", when="@1.0.4:", type="build") - depends_on("py-cython@0.29.30:0.29", when="@1.0.4:", type="build") + with default_args(type="build"): + depends_on("cxx") + + depends_on("py-setuptools@80.9.0:", when="@1.1.2:") + depends_on("py-setuptools@75.3:", when="@1.1.1:") + depends_on("py-setuptools@35.0.2:", when="@1.0.4:") + depends_on("py-setuptools") + # in requirements.txt + # ignore upper version limit, because it builds fine with newer + # versions of py-cython + depends_on("py-cython@3.1.4:", when="@1.1.2:") + depends_on("py-cython@3.1.1:3.1", when="@1.1.1") + depends_on("py-cython@0.29.30:0.29", when="@1.0.4:1.0.5") + + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@1.1.2:") + depends_on("python@3.8:", when="@1.0.6:") diff --git a/repos/spack_repo/builtin/packages/py_msgpack_numpy/package.py b/repos/spack_repo/builtin/packages/py_msgpack_numpy/package.py index 4f70f71e730..f34c3e0703d 100644 --- a/repos/spack_repo/builtin/packages/py_msgpack_numpy/package.py +++ b/repos/spack_repo/builtin/packages/py_msgpack_numpy/package.py @@ -19,6 +19,7 @@ class PyMsgpackNumpy(PythonPackage): license("BSD-3-Clause") + version("0.4.8", sha256="c667d3180513422f9c7545be5eec5d296dcbb357e06f72ed39cc683797556e69") version("0.4.7.1", sha256="7eaf51acf82d7c467d21aa71df94e1c051b2055e54b755442051b474fa7cf5e1") version("0.4.7", sha256="8e975dd7dd9eb13cbf5e8cd90af1f12af98706bbeb7acfcbd8d558fd005a85d7") version("0.4.6", sha256="ef3c5fe3d6cbab5c9db97de7062681c18f82d32a37177aaaf58b483d0336f135") diff --git a/repos/spack_repo/builtin/packages/py_mui4py/package.py b/repos/spack_repo/builtin/packages/py_mui4py/package.py new file mode 100644 index 00000000000..730424a39e1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_mui4py/package.py @@ -0,0 +1,37 @@ +# 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 PyMui4py(PythonPackage): + """Python bindings for the Multiscale Universal Interface (MUI) Library""" + + homepage = "https://mxui.github.io/" + git = "https://github.com/MxUI/MUI.git" + url = "https://github.com/MxUI/MUI/archive/refs/tags/2.0.tar.gz" + + build_directory = "wrappers/Python" + + maintainers("blairSmcc03") + + license("GPL-3.0 OR Apache-2.0", checked_by="blairSmcc03") + + version("2.0", sha256="fdddd4ffe72c22356eb53707567622a9bfb8d17836a9677a980f035e87e1b295") + version("master", branch="master") + + depends_on("mui@2", when="@2") + depends_on("mui@master", when="@master") + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools", type="build") + + depends_on("py-pybind11", type=("build")) + depends_on("py-numpy@1.21:", type=("build", "run")) + depends_on("py-mpi4py", type=("build", "run")) + depends_on("cmake@3.27:", type=("build")) + + def setup_build_environment(self, env): + env.append_path("CPLUS_INCLUDE_PATH", self.spec["mui"].prefix.include) diff --git a/repos/spack_repo/builtin/packages/py_multidict/package.py b/repos/spack_repo/builtin/packages/py_multidict/package.py index d94405b0556..eaff139be0a 100644 --- a/repos/spack_repo/builtin/packages/py_multidict/package.py +++ b/repos/spack_repo/builtin/packages/py_multidict/package.py @@ -16,27 +16,26 @@ class PyMultidict(PythonPackage): license("Apache-2.0") + version("6.7.0", sha256="c6e99d9a65ca282e578dfea819cfa9c0a62b2499d8677392e09feaf305e9e6f5") + version("6.6.4", sha256="d2d4e4787672911b48350df02ed3fa3fffdc2f2e8ca06dd6afdf34189b76a9dd") version("6.1.0", sha256="22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a") version("6.0.4", sha256="3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49") version("6.0.2", sha256="5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013") version("5.2.0", sha256="0dd1c93edb444b33ba2274b66f63def8a327d607c6c790772f448a53b6ea59ce") version("5.1.0", sha256="25b4e5f22d3a37ddf3effc0710ba692cfc792c2b9edfb9c05aefe823256e84d5") - with default_args(deprecated=True): - version("4.7.6", sha256="fbb77a75e529021e7c4a8d4e823d88ef4d23674a202be4f5addffc72cbb91430") depends_on("c", type="build") # Based on PyPI wheel availability with default_args(type=("build", "link", "run")): - depends_on("python@:3.13") - depends_on("python@:3.12", when="@:6.0") - depends_on("python@:3.11", when="@:6.0.4") - depends_on("python@:3.10", when="@:6.0.2") - depends_on("python@:3.9", when="@:5.1") - depends_on("python@:3.8", when="@:4") + depends_on("python@3.9:3.14", when="@6.7:") + depends_on("python@3.9:3.13", when="@6.2:6.6") + depends_on("python@3.8:3.13", when="@6.1") + depends_on("python@3.7:3.12", when="@6.0.5") + depends_on("python@3.7:3.11", when="@6.0.3:6.0.4") + depends_on("python@3.7:3.10", when="@6.0.0:6.0.2") + depends_on("python@3.6:3.10", when="@5.2") + depends_on("python@3.6:3.9", when="@:5.1") depends_on("py-setuptools@40:", type="build") depends_on("py-typing-extensions@4.1:", when="@6.1: ^python@:3.10", type=("build", "run")) - - # Historical dependencies - depends_on("py-pip@18:", when="@:4", type="build") diff --git a/repos/spack_repo/builtin/packages/py_multiecho/package.py b/repos/spack_repo/builtin/packages/py_multiecho/package.py index 877fdc95b22..33677c9af00 100644 --- a/repos/spack_repo/builtin/packages/py_multiecho/package.py +++ b/repos/spack_repo/builtin/packages/py_multiecho/package.py @@ -15,6 +15,7 @@ class PyMultiecho(PythonPackage): license("MIT") + version("0.31", sha256="0c853ddd8aaff8137410077e24d03cd63dade70c0b4c9da122fc573c415af28d") version("0.29", sha256="df4860fe4478c162f976bdc4bdd2dc1c51ba2c33cb23658ac7218cf1597c4f0a") version("0.28", sha256="d0459bd03398547116d8e989b2d2b7922af0ae7ae77e233794dd7253a2abced3") @@ -22,9 +23,10 @@ class PyMultiecho(PythonPackage): depends_on("py-setuptools", type="build") depends_on("py-argparse-manpage+setuptools", type="build", when="@0.29:") - depends_on("py-coloredlogs", type=("build", "run")) + depends_on("py-rich", type=("build", "run"), when="@0.31:") depends_on("py-numpy", type=("build", "run")) depends_on("py-nibabel", type=("build", "run")) # Historical dependencies + depends_on("py-coloredlogs", type=("build", "run"), when="@:30") depends_on("python@3.6:3.9", type=("build", "run"), when="@0.28") diff --git a/repos/spack_repo/builtin/packages/py_multiurl/package.py b/repos/spack_repo/builtin/packages/py_multiurl/package.py index 3625d257f74..44a5b709b8d 100644 --- a/repos/spack_repo/builtin/packages/py_multiurl/package.py +++ b/repos/spack_repo/builtin/packages/py_multiurl/package.py @@ -15,6 +15,7 @@ class PyMultiurl(PythonPackage): license("Apache-2.0") + version("0.3.7", sha256="4201563fc8989baca7b525fdc69d4cd5a6c0cef4f303559710b9890021aab6d9") version("0.2.3.2", sha256="b625892ef3a5b8d4bd323f1dcd4750b6ea7e4e2e2e4574b6e88cdf92e10579e9") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_mumps4py/package.py b/repos/spack_repo/builtin/packages/py_mumps4py/package.py new file mode 100644 index 00000000000..012508568ce --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_mumps4py/package.py @@ -0,0 +1,98 @@ +from spack_repo.builtin.build_systems.python import PythonPackage, PythonPipBuilder + +from spack.package import * + + +class PyMumps4py(PythonPackage): + """Python wrapper for the MUMPS solver (MUMPS4PY).""" + + homepage = "https://github.com/imadki/mumps4py" + url = "https://github.com/imadki/mumps4py/archive/refs/tags/1.0.0.tar.gz" + + maintainers = ["williampiat3"] + + version("1.0.0", sha256="634dd52a9942e88a430d6c8b519cbf6e50db77dd5f1be1cb04e5ab3f3e9da8ba") + + # build dependencies + with default_args(type="build"): + depends_on("cmake") + depends_on("py-setuptools") + depends_on("py-cython") + + # Python dependencies + with default_args(type=("build", "run")): + depends_on("py-numpy") + depends_on("py-mpi4py") + + # Optional/test deps + depends_on("py-pytest", type="test") + + # External solver + depends_on("mumps+float+complex+double") + + def build_args(self, spec, prefix): + # Ensure MUMPS include/lib are passed if setup.py needs them + mumps = spec["mumps"] + args = [ + "MUMPS_INC={0}".format(mumps.prefix.include), + "MUMPS_LIB={0}".format(mumps.prefix.lib), + ] + return args + + def install(self, spec: Spec, prefix: Prefix) -> None: + """Install everything from build directory.""" + pip = spec["python"].command + pip.add_default_arg("-m", "pip") + + args = PythonPipBuilder.std_args(self) + [f"--prefix={prefix}"] + + config_settings = self.config_settings(spec, prefix) + for setting in config_settings: + if isinstance(config_settings[setting], list): + for value in config_settings[setting]: + args.append(f"--config-settings={setting}={value}") + else: + args.append(f"--config-settings={setting}={config_settings[setting]}") + for option in self.install_options(spec, prefix): + args.append(f"--install-option={option}") + + if self.stage.archive_file and self.stage.archive_file.endswith(".whl"): + args.append(self.stage.archive_file) + else: + args.append(".") + + with working_dir(self.build_directory): + pip(*args) + + def config_settings(self, spec, prefix): + return {"--build-option": ["build_ext", "--inplace"]} + + def setup_build_environment(self, env): + # Required by mumps4py to specify which MUMPS solvers to use + env.set("MUMPS_SOLVERS", "dmumps,cmumps,zmumps,smumps") + env.set("MUMPS_INC", join_path(self.spec["mumps"].prefix, "include")) + env.set("MUMPS_LIB", join_path(self.spec["mumps"].prefix, "lib")) + + def setup_run_environment(self, env): + # Required by mumps4py to specify which MUMPS solvers to use + env.set("MUMPS_SOLVERS", "dmumps,cmumps,zmumps,smumps") + env.set("MUMPS_INC", join_path(self.spec["mumps"].prefix, "include")) + env.set("MUMPS_LIB", join_path(self.spec["mumps"].prefix, "lib")) + + @run_after("install") + @on_package_attributes(run_tests=True) + def run_source_tests(self): + """Test if all solvers are working""" + with working_dir("spack-test", create=True): + python( + "-c", + ";".join( + [ + "from mumps4py.mumps_solver import MumpsSolver", + "MumpsSolver(verbose=False,system='complex64')", + "MumpsSolver(verbose=False, system='complex128')", + "MumpsSolver(verbose=False, system='double')", + "MumpsSolver(verbose=False, system='single')", + ] + ), + ) diff --git a/repos/spack_repo/builtin/packages/py_murmurhash/package.py b/repos/spack_repo/builtin/packages/py_murmurhash/package.py index 06b591d0f69..82e1f879251 100644 --- a/repos/spack_repo/builtin/packages/py_murmurhash/package.py +++ b/repos/spack_repo/builtin/packages/py_murmurhash/package.py @@ -16,9 +16,14 @@ class PyMurmurhash(PythonPackage): license("MIT") + version("1.0.15", sha256="58e2b27b7847f9e2a6edf10b47a8c8dd70a4705f45dccb7bf76aeadacf56ba01") + version("1.0.10", sha256="5282aab1317804c6ebd6dd7f69f15ba9075aee671c44a34be2bde0f1b11ef88a") version("1.0.2", sha256="c7a646f6b07b033642b4f52ae2e45efd8b80780b3b90e8092a0cec935fbf81e2") depends_on("cxx", type="build") # generated + depends_on("python@3.6:3.14", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-wheel@0.32.0:0.32", type="build") + depends_on("py-wheel@0.32", type="build", when="@1.0.2") + depends_on("py-cython@0.25:", type="build") + depends_on("py-cython@3.1:", type="build", when="@1.0.15:") diff --git a/repos/spack_repo/builtin/packages/py_mutagen/package.py b/repos/spack_repo/builtin/packages/py_mutagen/package.py index f058483ba3f..e331f8388cc 100644 --- a/repos/spack_repo/builtin/packages/py_mutagen/package.py +++ b/repos/spack_repo/builtin/packages/py_mutagen/package.py @@ -15,7 +15,9 @@ class PyMutagen(PythonPackage): license("GPL-2.0-or-later") + version("1.47.0", sha256="719fadef0a978c31b4cf3c956261b3c58b6948b32023078a2117b1de09f0fc99") version("1.45.1", sha256="6397602efb3c2d7baebd2166ed85731ae1c1d475abca22090b7141ff5034b3e1") - depends_on("python@3.5:3", type=("build", "run")) + depends_on("python@3.7:", type=("build", "run"), when="@1.46:") + depends_on("python@3.5:3", type=("build", "run"), when="@:1.45") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_mypy/package.py b/repos/spack_repo/builtin/packages/py_mypy/package.py index 2e6027f2a57..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,8 @@ 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") version("1.14.1", sha256="7ec88144fe9b510e8475ec2f5f251992690fcf89ccb4500b214b4226abcd32d6") @@ -61,40 +63,50 @@ class PyMypy(PythonPackage): version("0.800", sha256="e0202e37756ed09daf4b0ba64ad2c245d357659e014c3f51d8cd0681ba66940a") version("0.790", sha256="2b21ba45ad9ef2e2eb88ce4aeadd0112d0f5026418324176fd494a6824b74975") version("0.740", sha256="48c8bc99380575deb39f5d3400ebb6a8a1cb5cc669bbba4d3bb30f904e0a0e7d") - version("0.670", sha256="e80fd6af34614a0e898a57f14296d0dacb584648f0339c2e000ddbf0f4cc2f8d") - # pyproject.toml - depends_on("py-setuptools@75.1.0:", when="@1.14:", type="build") - depends_on("py-setuptools@40.6.2:", when="@0.790:", type="build") - depends_on("py-setuptools", type="build") - depends_on("py-wheel@0.30:", when="@0.790:", type="build") - depends_on("py-types-psutil", when="@0.981:", type="build") - depends_on("py-types-setuptools", when="@0.981:", type="build") + 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") + depends_on("py-types-psutil", when="@0.981:") + depends_on("py-types-setuptools", when="@0.981:") - depends_on("python@3.9:", when="@1.15:", type=("build", "run")) - depends_on("python@3.8:", when="@1.5:", type=("build", "run")) - depends_on("python@3.7:", when="@0.981:", type=("build", "run")) - depends_on("py-typing-extensions@4.6:", when="@1.11:", type=("build", "run")) - depends_on("py-typing-extensions@4.1:", when="@1.5:", type=("build", "run")) - depends_on("py-typing-extensions@3.10:", when="@0.930:", type=("build", "run")) - depends_on("py-typing-extensions@3.7.4:", when="@0.700:", type=("build", "run")) - depends_on("py-mypy-extensions@1:", when="@1.1:", type=("build", "run")) - depends_on("py-mypy-extensions@0.4.3:", when="@0.930:1.0", type=("build", "run")) - depends_on("py-mypy-extensions@0.4.3:0.4", when="@0.700:0.929", type=("build", "run")) - depends_on("py-mypy-extensions@0.4.0:0.4", when="@:0.699", type=("build", "run")) - depends_on("py-pathspec@0.9:", when="@1.16:", type=("build", "run")) - depends_on("py-tomli@1.1:", when="@0.950: ^python@:3.10", type=("build", "run")) - depends_on("py-tomli@1.1:", when="@0.930:0.949", type=("build", "run")) - depends_on("py-tomli@1.1:2", when="@0.920:0.929", type=("build", "run")) + # Historical dependencies + depends_on("py-wheel@0.30:", when="@0.790:1.13") - # Historical dependencies - depends_on("py-types-typed-ast@1.5.8.5:1.5", when="@1.2:1.4", type="build") - depends_on("py-types-typed-ast@1.5.8:1.5", when="@0.981:1.1", type="build") - depends_on("py-toml", when="@0.900:0.910", type=("build", "run")) - depends_on("py-typed-ast@1.4.0:1", when="@0.920:1.4 ^python@:3.7", type=("build", "run")) - depends_on("py-typed-ast@1.4.0:1.4", when="@0.900:0.910 ^python@:3.7", type=("build", "run")) - depends_on("py-typed-ast@1.4.0:1.4", when="@0.700:0.899", type=("build", "run")) - depends_on("py-typed-ast@1.3.1:1.3", when="@:0.699", type=("build", "run")) + 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.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") + depends_on("py-types-typed-ast@1.5.8:1.5", when="@0.981:1.1") + depends_on("py-toml", when="@0.900:0.910") + depends_on("py-typed-ast@1.4.0:1", when="@0.920:1.4 ^python@:3.7") + depends_on("py-typed-ast@1.4.0:1.4", when="@0.900:0.910 ^python@:3.7") + depends_on("py-typed-ast@1.4.0:1.4", when="@0.700:0.899") # https://github.com/python/mypy/issues/13627 conflicts("^python@3.10.7:", when="@:0.971") diff --git a/repos/spack_repo/builtin/packages/py_mysqldb1/package.py b/repos/spack_repo/builtin/packages/py_mysqldb1/package.py deleted file mode 100644 index fc2f7b771aa..00000000000 --- a/repos/spack_repo/builtin/packages/py_mysqldb1/package.py +++ /dev/null @@ -1,25 +0,0 @@ -# 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 PyMysqldb1(PythonPackage): - """Legacy mysql bindings for python""" - - homepage = "https://github.com/farcepest/MySQLdb1" - url = "https://github.com/farcepest/MySQLdb1/archive/MySQLdb-1.2.5.tar.gz" - - version( - "1.2.5", - sha256="905dd8be887ff596641ace5411fed17cfd08dd33699ea627d3fb44f8a922c2f0", - url="https://github.com/farcepest/MySQLdb1/archive/MySQLdb-1.2.5.tar.gz", - ) - - depends_on("c", type="build") # generated - - depends_on("mysql@:6") - depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_myst_parser/package.py b/repos/spack_repo/builtin/packages/py_myst_parser/package.py index 16aa290e1d6..1cd7229a3c1 100644 --- a/repos/spack_repo/builtin/packages/py_myst_parser/package.py +++ b/repos/spack_repo/builtin/packages/py_myst_parser/package.py @@ -17,7 +17,9 @@ class PyMystParser(PythonPackage): pypi = "myst-parser/myst_parser-4.0.0.tar.gz" license("MIT") + maintainers("adamjstewart") + version("5.0.0", sha256="f6f231452c56e8baa662cc352c548158f6a16fcbd6e3800fc594978002b94f3a") version("4.0.0", sha256="851c9dfb44e36e56d15d05e72f02b80da21a9e0d07cba96baf5e2d476bb91531") version("3.0.1", sha256="88f0cb406cb363b077d176b51c476f62d60604d68a8dcdf4832e080441301a87") version("3.0.0", sha256="0b4ae0b33a45800a748260cb40348c37089a8a456c35120609240bd1b32f9255") @@ -27,37 +29,43 @@ class PyMystParser(PythonPackage): version("0.19.0", sha256="5a278c02015ce89f282dfde2a6e43d0924d957ab57d83555fce1645448810577") version("0.18.1", sha256="79317f4bb2c13053dd6e64f9da1ba1da6cd9c40c8a430c447a7b146a594c246d") - def url_for_version(self, version): - prefix = self.url.rsplit("/", maxsplit=1)[0] - package = "myst-parser" if version < Version("2.0.0") else "myst_parser" - return f"{prefix}/{package}-{version}.tar.gz" + depends_on("py-flit-core@3.4:3", type="build") - depends_on("python@3.7:", type=("build", "run")) - depends_on("python@3.8:3", type=("build", "run"), when="@2:") - depends_on("python@3.10:3", type=("build", "run"), when="@4:") + with default_args(type=("build", "run")): + depends_on("python@3.7:", when="@:1") + depends_on("python@3.8:3", when="@2:3") + depends_on("python@3.10:3", when="@4") + depends_on("python@3.11:", when="@5") - depends_on("py-flit-core@3.4:3", type="build") + depends_on("py-docutils@0.15:0.19", when="@:1") + depends_on("py-docutils@0.16:0.20", when="@2") + depends_on("py-docutils@0.18:0.21", when="@3") + depends_on("py-docutils@0.19:0.21", when="@4") + depends_on("py-docutils@0.20:0.22", when="@5") - depends_on("py-docutils@0.15:0.19", type=("build", "run"), when="@:1") - depends_on("py-docutils@0.16:0.20", type=("build", "run"), when="@2:") - depends_on("py-docutils@0.18:0.21", type=("build", "run"), when="@3:") - depends_on("py-docutils@0.19:0.21", type=("build", "run"), when="@4:") + depends_on("py-jinja2") - depends_on("py-jinja2", type=("build", "run")) # let sphinx decide version + depends_on("py-markdown-it-py@1:2", when="@:1") + depends_on("py-markdown-it-py@3", when="@2:4") + depends_on("py-markdown-it-py@4", when="@5") - depends_on("py-markdown-it-py@1:2", type=("build", "run"), when="@:1") - depends_on("py-markdown-it-py@3", type=("build", "run"), when="@2:") + depends_on("py-mdit-py-plugins@0.3.1:0.3", when="@0.18") + depends_on("py-mdit-py-plugins@0.3.4:0.3", when="@0.19:1") + depends_on("py-mdit-py-plugins@0.4", when="@2:3") + depends_on("py-mdit-py-plugins@0.4.1:0.4", when="@4") + depends_on("py-mdit-py-plugins@0.5", when="@5") - depends_on("py-mdit-py-plugins@0.3.1:0.3", type=("build", "run"), when="@0.18") - depends_on("py-mdit-py-plugins@0.3.4:0.3", type=("build", "run"), when="@0.19:1") - depends_on("py-mdit-py-plugins@0.4", type=("build", "run"), when="@2:3") - depends_on("py-mdit-py-plugins@0.4.1:0.4", type=("build", "run"), when="@4:") + depends_on("py-pyyaml") - depends_on("py-pyyaml", type=("build", "run")) + depends_on("py-sphinx@4:5", when="@0.18") + depends_on("py-sphinx@5:6", when="@0.19:1") + depends_on("py-sphinx@6:7", when="@2:3") + depends_on("py-sphinx@7:8", when="@4") + depends_on("py-sphinx@8:9", when="@5") - depends_on("py-sphinx@4:5", type=("build", "run"), when="@0.18") - depends_on("py-sphinx@5:6", type=("build", "run"), when="@0.19:1") - depends_on("py-sphinx@6:7", type=("build", "run"), when="@2:3") - depends_on("py-sphinx@7:8", type=("build", "run"), when="@4:") + depends_on("py-typing-extensions", when="@:1") - depends_on("py-typing-extensions", type=("build", "run"), when="@:1") + def url_for_version(self, version): + prefix = self.url.rsplit("/", maxsplit=1)[0] + package = "myst-parser" if version < Version("2.0.0") else "myst_parser" + return f"{prefix}/{package}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_nanobind/package.py b/repos/spack_repo/builtin/packages/py_nanobind/package.py index fddd15db739..9ab64db0db1 100644 --- a/repos/spack_repo/builtin/packages/py_nanobind/package.py +++ b/repos/spack_repo/builtin/packages/py_nanobind/package.py @@ -24,6 +24,9 @@ class PyNanobind(PythonPackage): license("BSD-3-Clause") version("master", branch="master", submodules=True) + version( + "2.8.0", tag="v2.8.0", commit="0e7aa61a75052034453cd2b906a79fe222792697", submodules=True + ) version( "2.7.0", tag="v2.7.0", commit="44ad9a9e5729abda24ef8dc9d76233d801e651e9", submodules=True ) diff --git a/repos/spack_repo/builtin/packages/py_napari/package.py b/repos/spack_repo/builtin/packages/py_napari/package.py new file mode 100644 index 00000000000..6b2997fc946 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_napari/package.py @@ -0,0 +1,103 @@ +# 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 PyNapari(PythonPackage): + """napari is a fast, interactive, multi-dimensional image viewer for + Python. It's designed for browsing, annotating, and analyzing large + multi-dimensional images. It's built on top of Qt (for the GUI), vispy (for + performant GPU-based rendering), and the scientific Python stack (numpy, + scipy).""" + + homepage = "https://www.napari.org" + pypi = "napari/napari-0.6.5.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("0.6.5", sha256="00663221583467f41fa956a672b0b4cd7a761e2642db41fc3c336d1c82339533") + version("0.4.18", sha256="daea9ab94124140fc0f715e945dd1dd6dc3056a1cb2f2cc31fc29b80162943e4") + + variant("all", default=False, description="Install all optional dependencies") + + depends_on("python@3.10:", type=("build", "run")) + + depends_on("py-setuptools@69:", when="@0.6:", type="build") + depends_on("py-setuptools@56:", type="build") + depends_on("py-setuptools-scm@8: +toml", when="@0.6:", type="build") + depends_on("py-setuptools-scm@3.4: +toml", type="build") + + conflicts("^py-pillow@7.1.0") + conflicts("^py-pillow@7.1.1") + conflicts("^py-pqt5@5.15.0", when="@0.4:0.5 +all") + + with default_args(type=("build", "run")): + depends_on("py-appdirs@1.4.4:") + depends_on("py-app-model@0.4.0:0.4", when="@0.6:") + depends_on("py-app-model@0.1:0.2", when="@0.4:0.5") + depends_on("py-cachey@0.2.1:") + depends_on("py-certifi@2018.1.18:") + depends_on("py-dask@2021.10.0: +array") + depends_on("py-imageio@2.20:2.27,2.28.1:") + depends_on("py-jsonschema@3.2.0:") + depends_on("py-lazy-loader@0.3:", when="@0.6:") + depends_on("py-lazy-loader@0.2:") + depends_on("py-magicgui@0.7.0:", when="@0.6:") + depends_on("py-magicgui@0.3.6:") + depends_on("py-numpy@1.24.2:", when="@0.6:") + depends_on("py-numpy@1.21:") + depends_on("py-numpydoc@1.0.0:", when="@0.6:") + depends_on("py-numpydoc@0.9.2:") + depends_on("py-pandas@1.3.3:") + depends_on("py-pillow@9.0:", when="@0.6:") + depends_on("py-pint@0.17:") + depends_on("py-psutil@5.9.0:", when="@0.6:") + depends_on("py-psutil@5.0:") + depends_on("py-psygnal@0.14.2:", when="@0.6:") + depends_on("py-psygnal@0.3.4:") + depends_on("py-pydantic@2.2.0:", when="@0.6:") + depends_on("py-pydantic@1.9.0:1", when="@0.4:0.5") + depends_on("py-pygments@2.6.0:") + depends_on("py-pyopengl@3.1.5:", when="@0.6:") + depends_on("py-pyopengl@3.1:") + depends_on("py-pyyaml@6.0:", when="@0.6:") + depends_on("py-pyyaml@5.1:") + depends_on("py-qtpy@2.3.1:", when="@0.6:") + depends_on("py-qtpy@1.10.0:") + depends_on("py-scikit-image@0.19.1:+data") + depends_on("py-scipy@1.10.1:", when="@0.6:") + depends_on("py-scipy@1.5.4:") + depends_on("py-superqt@0.7.4:", when="@0.6:") + depends_on("py-superqt@0.4.1:") + depends_on("py-sphinx@4.3.0:4", when="@0.4:0.5") + depends_on("py-tifffile@2022.7.28:", when="@0.6:") + depends_on("py-tifffile@2020.2.16:") + depends_on("py-toolz@0.11.0:", when="@0.6:") + depends_on("py-toolz@0.10.0:") + depends_on("py-tqdm@4.56.0:") + depends_on("py-typing-extensions@4.12:", when="@0.6:") + depends_on("py-typing-extensions@4.2.0:") + depends_on("py-vispy@0.15.2:0.15", when="@0.6:") + depends_on("py-vispy@0.12.1:0.12", when="@0.4:0.5") + depends_on("py-wrapt@1.13.3:", when="@0.6:") + depends_on("py-wrapt@1.11.1:") + + # Other napari packages + depends_on("py-napari-console@0.1.1:", when="@0.6:") + depends_on("py-napari-console@0.0.6:", when="@0.4:") + depends_on("py-napari-plugin-engine@0.1.9:") + depends_on("py-napari-svg@0.1.8:", when="@0.6:") + depends_on("py-napari-svg@0.1.7:") + depends_on("py-npe2@0.7.9:", when="@0.6:") + depends_on("py-npe2@0.5.2:", when="@0.4:") + + # Optional dependencies + depends_on("py-pyqt5@5.12.3:", when="@0.4:0.5 +all") + depends_on("py-pyqt5@5.15.8:", when="@0.6.5 +all") + depends_on("py-napari-plugin-manager@0.1.0:0.1", when="@0.4:0.5 +all") + depends_on("py-napari-plugin-manager@0.1.3:0.1", when="@0.4:0.5 +all") diff --git a/repos/spack_repo/builtin/packages/py_napari_console/package.py b/repos/spack_repo/builtin/packages/py_napari_console/package.py new file mode 100644 index 00000000000..e1f022bcaa0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_napari_console/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 PyNapariConsole(PythonPackage): + """This napari plugin adds a console to napari""" + + homepage = "https://github.com/napari/napari-console" + pypi = "napari_console/napari_console-0.1.3.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("0.1.3", sha256="ba4f7e1cdca65a7924631372a5e58884e2e35a2b9092c79b98acb9c2dfe1254f") + + depends_on("python@3.9:", type="run") + + depends_on("py-setuptools@42:", type="build") + depends_on("py-setuptools-scm@8:", type="build") + + depends_on("py-ipython@7.7.0:", type=("build", "run")) + depends_on("py-ipykernel@5.2.0:", type=("build", "run")) + depends_on("py-qtpy@1.7.0:", type=("build", "run")) + + depends_on("py-qtconsole@4.5.1:", type=("build", "run")) + conflicts("^py-qtconsole@4.7.6") + conflicts("^py-qtconsole@5.4.2") + + depends_on("py-napari-plugin-engine@0.1.9:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_napari_plugin_engine/package.py b/repos/spack_repo/builtin/packages/py_napari_plugin_engine/package.py new file mode 100644 index 00000000000..875816dbcfe --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_napari_plugin_engine/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 PyNapariPluginEngine(PythonPackage): + """napari-plugin-engine is a fork of pluggy modified by the napari team for + use in napari.""" + + homepage = "https://napari-plugin-engine.readthedocs.io/en/latest/" + pypi = "napari-plugin-engine/napari-plugin-engine-0.2.0.tar.gz" + + maintainers("Markus92") + + license("MIT", checked_by="github_user1") + + version("0.2.0", sha256="fa926f869d70e0d652c005661948cd0c7fee5508ae17d437937f34f5287590b3") + + depends_on("py-setuptools@42:", type="build") + depends_on("py-setuptools-scm@3.4: +toml", type="build") diff --git a/repos/spack_repo/builtin/packages/py_napari_plugin_manager/clean_pyproject_toml.patch b/repos/spack_repo/builtin/packages/py_napari_plugin_manager/clean_pyproject_toml.patch new file mode 100644 index 00000000000..46d9af59af6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_napari_plugin_manager/clean_pyproject_toml.patch @@ -0,0 +1,14 @@ +diff --git a/pyproject.toml b/pyproject.toml +index 3938b74..d4c12f7 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -22,9 +22,6 @@ authors = [ + {name = "napari team", email = "napari-steering-council@googlegroups.com"} + ] + license = "BSD-3-Clause" +-license-files = [ +- "LICENSE", +-] + classifiers = [ + "Development Status :: 3 - Alpha", + "Environment :: X11 Applications :: Qt", diff --git a/repos/spack_repo/builtin/packages/py_napari_plugin_manager/package.py b/repos/spack_repo/builtin/packages/py_napari_plugin_manager/package.py new file mode 100644 index 00000000000..155819aae5a --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_napari_plugin_manager/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 PyNapariPluginManager(PythonPackage): + """The napari plugin manager provides a graphical user interface for + installing napari plugins.""" + + homepage = "https://github.com/napari/napari-plugin-manager" + pypi = "napari_plugin_manager/napari_plugin_manager-0.1.7.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("0.1.7", sha256="858adeacfc65bb8ed92e875659999a51c06188a6c813ebef54f5248e27dd5a74") + + depends_on("python@3.10:", type=("build", "run")) + + depends_on("py-setuptools@77:", type="build") + depends_on("py-setuptools-scm +toml", type="build") + + with default_args(type=("build", "run")): + depends_on("py-npe2") + depends_on("py-qtpy") + depends_on("py-superqt") + depends_on("py-packaging") + depends_on("py-pip") + # Other dependencies include napari - but that'd be circular + + patch("clean_pyproject_toml.patch") diff --git a/repos/spack_repo/builtin/packages/py_napari_svg/package.py b/repos/spack_repo/builtin/packages/py_napari_svg/package.py new file mode 100644 index 00000000000..33e8c604d4b --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_napari_svg/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 PyNapariSvg(PythonPackage): + """A plugin for writing svg files with napari.""" + + homepage = "https://github.com/napari/napari-svg" + pypi = "napari_svg/napari_svg-0.2.1.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("0.2.1", sha256="031f13b34b0948afbdcb11eb00728fe32ef7e4e3aa3905f923001d6871a08ad9") + + depends_on("python@3.9:", type=("build", "run")) + + depends_on("py-setuptools@56:", type="build") + depends_on("py-setuptools-scm@8: +toml", type="build") + + depends_on("py-imageio@2.5.0:", type=("build", "run")) + depends_on("py-numpy@1.16:", type=("build", "run")) + depends_on("py-vispy@0.6.4:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_narwhals/package.py b/repos/spack_repo/builtin/packages/py_narwhals/package.py index 6623dd078a9..e5d3deb0f47 100644 --- a/repos/spack_repo/builtin/packages/py_narwhals/package.py +++ b/repos/spack_repo/builtin/packages/py_narwhals/package.py @@ -13,8 +13,13 @@ class PyNarwhals(PythonPackage): homepage = "https://github.com/narwhals-dev/narwhals" pypi = "narwhals/narwhals-1.8.1.tar.gz" + license("MIT") + + version("2.19.0", sha256="14fd7040b5ff211d415a82e4827b9d04c354e213e72a6d0730205ffd72e3b7ff") + version("2.3.0", sha256="b66bc4ab7b6746354f60c4b3941e3ce60c066588c35360e2dc6c063489000a16") version("1.38.0", sha256="0a356a21ad00de0db0e631332a823a6a6755544bd10b8e68a02d75029c71392e") version("1.8.1", sha256="97527778e11f39a1e5e2113b8fbb9ead788be41c0337f21852e684e378f583e8") + depends_on("python@3.9:", type=("build", "run"), when="@1.43:") depends_on("python@3.8:", type=("build", "run")) depends_on("py-hatchling", type=("build")) diff --git a/repos/spack_repo/builtin/packages/py_nbclassic/package.py b/repos/spack_repo/builtin/packages/py_nbclassic/package.py index aaf47d63929..8db9c6e1045 100644 --- a/repos/spack_repo/builtin/packages/py_nbclassic/package.py +++ b/repos/spack_repo/builtin/packages/py_nbclassic/package.py @@ -15,41 +15,48 @@ class PyNbclassic(PythonPackage): license("BSD-3-Clause") + version("1.3.3", sha256="434228763f8cee754318cd6dfa42370db191af630dabab8e30bafc8c1aa3eee6") + version("1.3.1", sha256="4c52da8fc88f9f73ef512cc305091d5ce726bdca19f44ed697cb5ba12dcaad3c") version("1.1.0", sha256="77b77ba85f9e988f9bad85df345b514e9e64c7f0e822992ab1df4a78ac64fc1e") version("1.0.0", sha256="0ae11eb2319455d805596bf320336cda9554b41d99ab9a3c31bf8180bffa30e3") version("0.4.8", sha256="c74d8a500f8e058d46b576a41e5bc640711e1032cf7541dde5f73ea49497e283") version("0.3.5", sha256="99444dd63103af23c788d9b5172992f12caf8c3098dd5a35c787f0df31490c29") version("0.3.1", sha256="f920f8d09849bea7950e1017ff3bd101763a8d68f565a51ce053572e65aa7947") - depends_on("python@3.7:", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-jupyter-packaging@0.9:0", when="@0.3.3:", type="build") - depends_on("py-babel", when="@0.4:", type="build") - - depends_on("py-ipython-genutils", when="@0.4:", type=("build", "run")) - depends_on("py-notebook-shim@0.2.3:", when="@0.5.6:", type=("build", "run")) - depends_on("py-notebook-shim@0.1:", when="@0.3.6:", type=("build", "run")) - depends_on("py-nest-asyncio@1.5:", when="@0.4:", type=("build", "run")) - depends_on("py-ipykernel", when="@0.4:", type=("build", "run")) - - # Dependencies reduced after 1.0 - # https://github.com/jupyter/nbclassic/issues/252 - depends_on("py-jinja2", when="@0.4:1.0", type=("build", "run")) - depends_on("py-tornado@6.1:", when="@0.4:1.0", type=("build", "run")) - depends_on("py-pyzmq@17:", when="@0.4:1.0", type=("build", "run")) - depends_on("py-argon2-cffi", when="@0.4:1.0", type=("build", "run")) - depends_on("py-traitlets@4.2.1:", when="@0.4:1.0", type=("build", "run")) - depends_on("py-jupyter-core@4.6.1:", when="@0.4:1.0", type=("build", "run")) - depends_on("py-jupyter-client@6.1.1:", when="@0.4:1.0", type=("build", "run")) - # version requirement for py-jupyter-server comes from pyproject.toml - depends_on("py-jupyter-server@1.17:", when="@0.4:1.0", type=("build", "run")) - depends_on("py-jupyter-server@1.8:", when="@0.3.7", type=("build", "run")) - depends_on("py-jupyter-server@1.8:1", when="@:0.3.6", type=("build", "run")) - depends_on("py-nbformat", when="@0.4:1.0", type=("build", "run")) - depends_on("py-nbconvert@5:", when="@0.4:1.0", type=("build", "run")) - depends_on("py-send2trash@1.8:", when="@0.4:1.0", type=("build", "run")) - depends_on("py-terminado@0.8.3:", when="@0.4:1.0", type=("build", "run")) - depends_on("py-prometheus-client", when="@0.4:1.0", type=("build", "run")) - - # Historical dependencies - depends_on("py-notebook@:6", when="@:0.3.7", type=("build", "run")) + with default_args(type="build"): + depends_on("py-babel", when="@0.4:") + depends_on("py-hatchling", when="@1.3:") + depends_on("py-jupyter-server@1.17:", when="@1.3:") + depends_on("py-hatch-jupyter-builder@0.9.1:", when="@1.3:") + + # Historical dependencies + depends_on("py-jupyter-packaging@0.9:0", when="@0.3.3:1.1") + depends_on("py-setuptools", when="@:1.1") + + with default_args(type=("build", "run")): + depends_on("py-ipykernel", when="@0.4:") + depends_on("py-ipython-genutils", when="@0.4:") + depends_on("py-nest-asyncio@1.5:", when="@0.4:") + depends_on("py-notebook-shim@0.2.3:", when="@0.5.6:") + depends_on("py-notebook-shim@0.1:", when="@0.3.6:") + + # Historical dependencies + depends_on("py-jinja2", when="@0.4:1.0") + depends_on("py-tornado@6.1:", when="@0.4:1.0") + depends_on("py-pyzmq@17:", when="@0.4:1.0") + depends_on("py-argon2-cffi", when="@0.4:1.0") + depends_on("py-traitlets@4.2.1:", when="@0.4:1.0") + depends_on("py-jupyter-core@4.6.1:", when="@0.4:1.0") + depends_on("py-jupyter-client@6.1.1:", when="@0.4:1.0") + depends_on("py-jupyter-server@1.17:", when="@0.4:1.0") + depends_on("py-jupyter-server@1.8:", when="@0.3.7") + depends_on("py-jupyter-server@1.8:1", when="@:0.3.6") + depends_on("py-nbformat", when="@0.4:1.0") + depends_on("py-nbconvert@5:", when="@0.4:1.0") + depends_on("py-send2trash@1.8:", when="@0.4:1.0") + depends_on("py-terminado@0.8.3:", when="@0.4:1.0") + depends_on("py-prometheus-client", when="@0.4:1.0") + depends_on("py-notebook@:6", when="@:0.3.7") + + # https://github.com/jupyter/nbclassic/issues/308 + depends_on("python@:3.12", when="@:1.1") diff --git a/repos/spack_repo/builtin/packages/py_nbclient/package.py b/repos/spack_repo/builtin/packages/py_nbclient/package.py index 7cb87512fbf..a8524c01def 100644 --- a/repos/spack_repo/builtin/packages/py_nbclient/package.py +++ b/repos/spack_repo/builtin/packages/py_nbclient/package.py @@ -19,6 +19,8 @@ class PyNbclient(PythonPackage): license("BSD-3-Clause") + version("0.10.4", sha256="1e54091b16e6da39e297b0ece3e10f6f29f4ac4e8ee515d29f8a7099bd6553c9") + version("0.10.2", sha256="90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193") version("0.8.0", sha256="f9b179cd4b2d7bca965f900a2ebf0db4a12ebff2f36a711cb66861e4ae158e55") version("0.7.2", sha256="884a3f4a8c4fc24bb9302f263e0af47d97f0d01fe11ba714171b320c8ac09547") version("0.6.7", sha256="3c5a7fc6bb74be7d31edf2817b44501a65caa99e5e56363bc359649b97cd24b9") @@ -27,22 +29,26 @@ class PyNbclient(PythonPackage): version("0.5.5", sha256="ed7d18431393750d29a64da432e0b7889274eb5a5056682be5691b1b1dc8f755") version("0.5.0", sha256="8ad52d27ba144fca1402db014857e53c5a864a2f407be66ca9d74c3a56d6591d") + depends_on("python@3.10:", when="@0.10.3:", type=("build", "run")) + depends_on("python@3.9:", when="@0.10.2:", type=("build", "run")) depends_on("python@3.7:", when="@0.5.13:", type=("build", "run")) depends_on("python@3.6.1:", when="@0.5.5:", type=("build", "run")) - depends_on("py-setuptools", when="@:0.7.0", type="build") depends_on("py-hatchling@1.10:", when="@0.7.1:", type="build") - depends_on("py-jupyter-client@6.1.12:", when="@0.7.1:", type=("build", "run")) - depends_on("py-jupyter-client@6.1.5:", type=("build", "run")) - depends_on("py-jupyter-core@4.12:4,5.1:", when="@0.7.1:", type=("build", "run")) - depends_on("py-nbformat@5.1:", when="@0.7.1:", type=("build", "run")) - depends_on("py-nbformat@5.0:", type=("build", "run")) - depends_on("py-traitlets@5.4:", when="@0.8:", type=("build", "run")) - depends_on("py-traitlets@5.3:", when="@0.7.1:", type=("build", "run")) - depends_on("py-traitlets@5.2.2:", when="@0.6:", type=("build", "run")) - depends_on("py-traitlets@5:", when="@0.5.13:", type=("build", "run")) - depends_on("py-traitlets@4.2:", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("py-jupyter-client@6.1.12:", when="@0.7.1:") + depends_on("py-jupyter-client@6.1.5:") + depends_on("py-jupyter-core@4.12:4,5.1:", when="@0.7.1:") + depends_on("py-nbformat@5.1.3:", when="@0.10.3:") + depends_on("py-nbformat@5.1:", when="@0.7.1:") + depends_on("py-nbformat@5.0:") + depends_on("py-traitlets@5.4:", when="@0.8:") + depends_on("py-traitlets@5.3:", when="@0.7.1:") + depends_on("py-traitlets@5.2.2:", when="@0.6:") + depends_on("py-traitlets@5:", when="@0.5.13:") + depends_on("py-traitlets@4.2:") # Historical dependencies + depends_on("py-setuptools", when="@:0.7.0", type="build") depends_on("py-async-generator", when="@0.5.0", type=("build", "run")) depends_on("py-nest-asyncio", when="@:0.7.0", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_nbconvert/package.py b/repos/spack_repo/builtin/packages/py_nbconvert/package.py index 57a888e1b18..6cfe8162dcd 100644 --- a/repos/spack_repo/builtin/packages/py_nbconvert/package.py +++ b/repos/spack_repo/builtin/packages/py_nbconvert/package.py @@ -16,6 +16,8 @@ class PyNbconvert(PythonPackage): license("BSD-3-Clause") + version("7.17.1", sha256="34d0d0a7e73ce3cbab6c5aae8f4f468797280b01fd8bd2ca746da8569eddd7d2") + version("7.16.6", sha256="576a7e37c6480da7b8465eefa66c17844243816ce1ccc372633c6b71c3c0f582") version("7.16.4", sha256="86ca91ba266b0a448dc96fa6c5b9d98affabde2867b363258703536807f9f7f4") version("7.16.3", sha256="a6733b78ce3d47c3f85e504998495b07e6ea9cf9bf6ec1c98dda63ec6ad19142") version("7.16.2", sha256="8310edd41e1c43947e4ecf16614c61469ebc024898eb808cce0999860fc9fb16") @@ -32,46 +34,22 @@ class PyNbconvert(PythonPackage): version("6.3.0", sha256="5e77d6203854944520105e38f2563a813a4a3708e8563aa598928a3b5ee1081a") version("6.2.0", sha256="16ceecd0afaa8fd26c245fa32e2c52066c02f13aa73387fffafd84750baea863") version("6.0.1", sha256="db94117fbac29153834447e31b30cda337d4450e46e0bdb1a36eafbbf4435156") - version( - "5.6.0", - sha256="427a468ec26e7d68a529b95f578d5cbf018cb4c1f889e897681c2b6d11897695", - deprecated=True, - ) - version( - "5.5.0", - sha256="138381baa41d83584459b5cfecfc38c800ccf1f37d9ddd0bd440783346a4c39c", - deprecated=True, - ) - version( - "4.2.0", - sha256="55946d7522741294fcdd50799bd1777d16673ce721fecca0610cdb86749863c6", - deprecated=True, - ) - version( - "4.1.0", - sha256="e0296e45293dd127d028f678e3b6aba3f1db3283a134178bdb49eea402d4cf1c", - deprecated=True, - ) - version( - "4.0.0", - sha256="472ad15d1a71f1ef00c4094c11bb93638858fc89fb2c5838b3aa6b67d981b437", - deprecated=True, - ) variant("serve", default=True, description="Include a webserver") + depends_on("python@3.9:", when="@7.17:", type=("build", "run")) depends_on("python@3.8:", when="@7.7:", type=("build", "run")) depends_on("python@3.7:", when="@6.2.0:", type=("build", "run")) depends_on("py-hatchling@1.5:", when="@7.14:", type="build") depends_on("py-hatchling@0.25:", when="@7:", type="build") depends_on("py-beautifulsoup4", when="@6.4.4:", type=("build", "run")) - depends_on("py-bleach", when="@5:", type=("build", "run")) + depends_on("py-bleach+css", when="@7.16.5:", type=("build", "run")) + depends_on("py-bleach", when="@5:7.16.4", type=("build", "run")) depends_on("py-defusedxml", when="@5:", type=("build", "run")) depends_on("py-importlib-metadata@3.6:", when="@7: ^python@:3.9", type=("build", "run")) depends_on("py-jinja2@3:", when="@6.5:", type=("build", "run")) depends_on("py-jinja2@2.4:", when="@5:", type=("build", "run")) - depends_on("py-jinja2", type=("build", "run")) depends_on("py-jupyter-core@4.7:", when="@6.5:", type=("build", "run")) depends_on("py-jupyter-core", type=("build", "run")) depends_on("py-jupyterlab-pygments", when="@6:", type=("build", "run")) @@ -84,22 +62,17 @@ class PyNbconvert(PythonPackage): depends_on("py-nbformat@5.7:", when="@7.14:", type=("build", "run")) depends_on("py-nbformat@5.1:", when="@6.5:", type=("build", "run")) depends_on("py-nbformat@4.4:", when="@5:", type=("build", "run")) - depends_on("py-nbformat", type=("build", "run")) depends_on("py-packaging", when="@6.5:", type=("build", "run")) depends_on("py-pandocfilters@1.4.1:", when="@5:", type=("build", "run")) depends_on("py-pygments@2.4.1:", when="@6:", type=("build", "run")) - depends_on("py-pygments", type=("build", "run")) - depends_on("py-tinycss2", when="@6.5:", type=("build", "run")) depends_on("py-traitlets@5.1:", when="@7.14:", type=("build", "run")) depends_on("py-traitlets@5:", when="@6.2.0:", type=("build", "run")) depends_on("py-traitlets@4.2:", when="@5:", type=("build", "run")) - depends_on("py-traitlets", type=("build", "run")) # https://bugs.gentoo.org/720870 # https://github.com/jupyter/nbconvert/pull/937 depends_on("py-tornado@6.1:", when="@6.5: +serve", type=("build", "run")) depends_on("py-tornado@4.0:", when="@5.4.1: +serve", type=("build", "run")) - depends_on("py-tornado@4.0:5", when="@:5.4.0 +serve", type=("build", "run")) # Historical dependencies depends_on("py-setuptools", when="@5:6", type=("build", "run")) @@ -108,6 +81,7 @@ class PyNbconvert(PythonPackage): depends_on("py-entrypoints@0.2.2:", when="@5:6", type=("build", "run")) depends_on("py-testpath", when="@5:6.4", type=("build", "run")) depends_on("py-lxml", when="@6.5.1:7.0", type=("build", "run")) + depends_on("py-tinycss2", when="@6.5:7.16.4", type=("build", "run")) conflicts("^bleach@5.0.0") diff --git a/repos/spack_repo/builtin/packages/py_nbdime/package.py b/repos/spack_repo/builtin/packages/py_nbdime/package.py index 3e39e94f819..1f1dad0a17d 100644 --- a/repos/spack_repo/builtin/packages/py_nbdime/package.py +++ b/repos/spack_repo/builtin/packages/py_nbdime/package.py @@ -14,9 +14,6 @@ class PyNbdime(PythonPackage): pypi = "nbdime/nbdime-3.1.1.tar.gz" version("3.2.1", sha256="31409a30f848ffc6b32540697e82d5a0a1b84dcc32716ca74e78bcc4b457c453") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2021-41134 - version("3.1.1", sha256="67767320e971374f701a175aa59abd3a554723039d39fae908e72d16330d648b") depends_on("python@3.6:", type=("build", "run")) depends_on("py-setuptools@40.8.0:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_nbformat/package.py b/repos/spack_repo/builtin/packages/py_nbformat/package.py index 1a45306d2f7..d7cfb082ea1 100644 --- a/repos/spack_repo/builtin/packages/py_nbformat/package.py +++ b/repos/spack_repo/builtin/packages/py_nbformat/package.py @@ -16,6 +16,7 @@ class PyNbformat(PythonPackage): license("BSD-3-Clause") + version("5.10.4", sha256="322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a") version("5.8.0", sha256="46dac64c781f1c34dfd8acba16547024110348f9fc7eab0f31981c2a3dc48d1f") version("5.7.0", sha256="1d4760c15c1a04269ef5caf375be8b98dd2f696e5eb9e603ec2bf091f9b0d3f3") version("5.4.0", sha256="44ba5ca6acb80c5d5a500f1e5b83ede8cbe364d5a495c4c8cf60aaf1ba656501") @@ -26,18 +27,24 @@ class PyNbformat(PythonPackage): version("4.0.1", sha256="5261c957589b9dfcd387c338d59375162ba9ca82c69e378961a1f4e641285db5") version("4.0.0", sha256="daf9b990e96863d120aff123361156a316757757b81a8070eb6945e4a9774b2d") + depends_on("python@3.8:", when="@5.9:", type="build") + depends_on("python@3.7:", when="@5.2:", type="build") depends_on("py-hatchling@1.5:", when="@5.6:", type="build") depends_on("py-hatch-nodejs-version", when="@5.6:", type="build") + depends_on("py-fastjsonschema@2.15:", when="@5.10.4:", type=("build", "run")) depends_on("py-fastjsonschema", when="@5.3:", type=("build", "run")) depends_on("py-jsonschema@2.6:", when="@5.3:", type=("build", "run")) depends_on("py-jsonschema@2.4,2.5.1:", type=("build", "run")) + depends_on("py-jupyter-core@4.12:", when="@5.10.4:", type=("build", "run")) depends_on("py-jupyter-core", type=("build", "run")) depends_on("py-traitlets@5.1:", when="@5.4:", type=("build", "run")) depends_on("py-traitlets@4.1:", type=("build", "run")) - depends_on("py-importlib-metadata@3.6:", when="@5.7: ^python@:3.7", type=("build", "run")) + + conflicts("py-jupyter-core@5.0") # Historical dependencies + depends_on("py-importlib-metadata@3.6:", when="@5.7:5.8 ^python@:3.7", type=("build", "run")) depends_on("py-setuptools@60:", when="@5.3:5.4", type="build") depends_on("py-setuptools", when="@:5.4", type="build") depends_on("py-ipython-genutils", when="@:5.1", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_nbmake/package.py b/repos/spack_repo/builtin/packages/py_nbmake/package.py index b361c5bbca7..bda78c1c2fe 100644 --- a/repos/spack_repo/builtin/packages/py_nbmake/package.py +++ b/repos/spack_repo/builtin/packages/py_nbmake/package.py @@ -15,6 +15,7 @@ class PyNbmake(PythonPackage): license("Apache-2.0") + version("1.5.5", sha256="239dc868ea13a7c049746e2aba2c229bd0f6cdbc6bfa1d22f4c88638aa4c5f5c") version("1.4.3", sha256="9afc46ba05cc22f5a78047a758dca32386c95eaaa41501b25ce108cf733d9622") version("1.4.1", sha256="7f602ba5195e80e4f2527944bb06d3b4df0d1520e73ba66126b51132b1f646ea") version("1.4", sha256="2d3b97b83a8a378d5d828ad7b5412e509b82ed883662af16533236c909cfa20a") @@ -35,21 +36,30 @@ class PyNbmake(PythonPackage): version("0.6", sha256="20dcec145507eec664d61ab36fa248797de6348e7013c9547028077bc46acde2") version("0.5", sha256="da9bf1bbc377c9d1d697f99952834017c39b4983e7e482a038dec705955a8ae9") - depends_on("py-setuptools", type="build") - depends_on("py-poetry-core@1:", type="build") - depends_on("py-pytest@6.1.0:", when="@1.2.1:", type=("build", "run")) - depends_on("py-pytest@6.1.0:6", when="@0.10:1.2.0", type=("build", "run")) - depends_on("py-pytest@6.1.2:6", when="@:0.9", type=("build", "run")) - depends_on("python@3.7.0:3", when="@1.3:", type=("build", "run")) - depends_on("python@3.6.1:3", when="@:1.2", type=("build", "run")) - depends_on("py-nbclient@0.6.6:0.6", when="@1.3.1:", type=("build", "run")) - depends_on("py-nbclient@0.5.13:0.5", when="@1.3.0", type=("build", "run")) - depends_on("py-nbclient@0.5.5:0.5", when="@1.2", type=("build", "run")) - depends_on("py-nbclient@0.3:0", when="@:1.1", type=("build", "run")) - depends_on("py-nbformat@5.0.8:5", type=("build", "run")) - depends_on("py-pygments@2.7.3:2", type=("build", "run")) - depends_on("py-ipykernel@5.4.0:", when="@0.7:", type=("build", "run")) - depends_on("py-ipykernel@5.4.0:5", when="@0.5", type=("build", "run")) - - # Historical dependencies - depends_on("py-pydantic@1.7.2:1", when="@:1.4.1", type=("build", "run")) + with default_args(type="build"): + depends_on("py-hatchling", when="@1.5.5:") + + # Historical dependencies + depends_on("py-poetry-core@1:", when="@:1.5.4") + depends_on("py-setuptools", when="@:1.5.4") + + with default_args(type=("build", "run")): + depends_on("py-pytest@6.1.0:", when="@1.2.1:") + depends_on("py-pytest@6.1.0:6", when="@0.10:1.2.0") + depends_on("py-pytest@6.1.2:6", when="@:0.9") + depends_on("py-nbclient@0.6.6:", when="@1.5.5:") + depends_on("py-nbclient@0.6.6:0.6", when="@1.3.1:1.5.4") + depends_on("py-nbclient@0.5.13:0.5", when="@1.3.0") + depends_on("py-nbclient@0.5.5:0.5", when="@1.2") + depends_on("py-nbclient@0.3:0", when="@:1.1") + depends_on("py-nbformat@5.0.4:", when="@1.5.5:") + depends_on("py-nbformat@5.0.8:5", when="@:1.5.4") + depends_on("py-pygments@2.7.3:", when="@1.5.5:") + depends_on("py-pygments@2.7.3:2", when="@:1.5.4") + depends_on("py-ipykernel@5.4.0:", when="@0.7:") + depends_on("py-ipykernel@5.4.0:5", when="@0.5") + + # Historical dependencies + depends_on("py-pydantic@1.7.2:1", when="@:1.4.1") + # https://github.com/treebeardtech/nbmake/pull/112 + depends_on("py-setuptools@:81", when="@:1.4.4") diff --git a/repos/spack_repo/builtin/packages/py_nbsphinx/package.py b/repos/spack_repo/builtin/packages/py_nbsphinx/package.py index 4be2a87e4ac..e9d8ea10e9b 100644 --- a/repos/spack_repo/builtin/packages/py_nbsphinx/package.py +++ b/repos/spack_repo/builtin/packages/py_nbsphinx/package.py @@ -21,18 +21,28 @@ class PyNbsphinx(PythonPackage): license("MIT") + version("0.9.8", sha256="d0765908399a8ee2b57be7ae881cf2ea58d66db3af7bbf33e6eb48f83bea5495") version("0.8.8", sha256="b5090c824b330b36c2715065a1a179ad36526bff208485a9865453d1ddfc34ec") version("0.8.7", sha256="ff91b5b14ceb1a9d44193b5fc3dd3617e7b8ab59c788f7710049ce5faff2750c") version("0.8.1", sha256="24d59aa3a1077ba58d9769c64c38fb05b761a1af21c1ac15f6393500cd008ea6") version("0.8.0", sha256="369c16fe93af14c878d61fb3e81d838196fb35b27deade2cd7b95efe1fe56ea0") - # https://nbsphinx.readthedocs.io/en/latest/installation.html - depends_on("python@3.6:", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-docutils", type=("build", "run")) - depends_on("py-jinja2", type=("build", "run")) - depends_on("py-nbconvert@:5.3,5.5:", type=("build", "run")) - depends_on("py-traitlets", type=("build", "run")) - depends_on("py-nbformat", type=("build", "run")) - depends_on("py-sphinx@1.8:", type=("build", "run")) + with default_args(type="build"): + depends_on("py-setuptools") + depends_on("py-setuptools-scm", when="@0.9:") + + with default_args(type=("build", "run")): + depends_on("py-docutils@0.18.1:", when="@0.9:") + depends_on("py-docutils") + depends_on("py-jinja2") + depends_on("py-nbconvert@5.3:", when="@0.9:") + depends_on("py-nbconvert") + depends_on("py-nbformat") + depends_on("py-sphinx@1.8:") + depends_on("py-traitlets@5:", when="@0.9:") + depends_on("py-traitlets") + depends_on("pandoc", type="run") + + conflicts("py-nbconvert@5.4") + conflicts("py-sphinx@8.2.0:8.2.1") diff --git a/repos/spack_repo/builtin/packages/py_ncbi_genome_download/package.py b/repos/spack_repo/builtin/packages/py_ncbi_genome_download/package.py index 939f1271390..0aa1c743368 100644 --- a/repos/spack_repo/builtin/packages/py_ncbi_genome_download/package.py +++ b/repos/spack_repo/builtin/packages/py_ncbi_genome_download/package.py @@ -16,6 +16,7 @@ class PyNcbiGenomeDownload(PythonPackage): license("Apache-2.0") + version("0.3.3", sha256="fb949f087f2cde1408414758678e714fb1a1f1b9196b3e8cac6bd3e8e395c996") version("0.3.1", sha256="74675e94f184b8d80429641b27ed6d46ed81028d95156337de6d09f8dd739c6e") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_ndindex/package.py b/repos/spack_repo/builtin/packages/py_ndindex/package.py index 7013d47c3b2..164f4539afa 100644 --- a/repos/spack_repo/builtin/packages/py_ndindex/package.py +++ b/repos/spack_repo/builtin/packages/py_ndindex/package.py @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os + from spack_repo.builtin.build_systems.python import PythonPackage from spack.package import * @@ -18,3 +20,8 @@ class PyNdindex(PythonPackage): version("1.7", sha256="bf9bd0b76eeada1c8275e04091f8291869ed2b373b7af48e56faf7579fd2efd2") depends_on("py-setuptools", type="build") + depends_on("py-versioneer@0.29: +toml", type="build") + + @run_before("install") + def no_versioner(self): + os.remove("versioneer.py") diff --git a/repos/spack_repo/builtin/packages/py_networkx/package.py b/repos/spack_repo/builtin/packages/py_networkx/package.py index 43385e08bf9..ed37ef8344f 100644 --- a/repos/spack_repo/builtin/packages/py_networkx/package.py +++ b/repos/spack_repo/builtin/packages/py_networkx/package.py @@ -17,6 +17,8 @@ class PyNetworkx(PythonPackage): license("BSD-3-Clause") + version("3.6.1", sha256="26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509") + version("3.5", sha256="d4c6f9cf81f52d69230866796b82afbccdec3db7ae4fbd1b65ea750feed50037") version("3.4.2", sha256="307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1") version("3.4.1", sha256="f9df45e85b78f5bd010993e897b4f1fdb242c11e015b101bd951e5c0e29982d8") version("3.4", sha256="1269b90f8f0d3a4095f016f49650f35ac169729f49b69d0572b2bb142748162b") @@ -49,48 +51,59 @@ class PyNetworkx(PythonPackage): description="Optional requirements that may require extra steps to install", ) - depends_on("python@3.10:", when="@3.3:", type=("build", "run")) - depends_on("python@3.9:", when="@3.2:", type=("build", "run")) - depends_on("python@3.8:", when="@2.7:", type=("build", "run")) - depends_on("python@3.7:", when="@2.6:", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-setuptools@61.2:", type="build", when="@3.2:") - - with when("+default"): - # From requirements/default.txt - depends_on("py-numpy@1.24:", when="@3.4:", type=("build", "run")) - depends_on("py-numpy@1.23:", when="@3.3:", type=("build", "run")) - depends_on("py-numpy@1.22:", when="@3.2:", type=("build", "run")) - depends_on("py-numpy@1.20:", when="@3:", type=("build", "run")) - depends_on("py-numpy@1.19:", when="@2.8.6:", type=("build", "run")) - # https://github.com/networkx/networkx/pull/7390 - depends_on("py-numpy@:1", when="@:3.2", type=("build", "run")) - depends_on("py-scipy@1.11.2:", when="@3.2:", type=("build", "run")) - depends_on("py-scipy@1.8:", when="@2.8.6:", type=("build", "run")) - depends_on("py-matplotlib@3.8:", when="@3.4:", type=("build", "run")) - depends_on("py-matplotlib@3.5:", when="@3.2:", type=("build", "run")) - depends_on("py-matplotlib@3.4:", when="@2.8.6:", type=("build", "run")) - depends_on("py-pandas@2.0:", when="@3.4:", type=("build", "run")) - depends_on("py-pandas@1.4:", when="@3.2:", type=("build", "run")) - depends_on("py-pandas@1.3:", when="@2.8.6:", type=("build", "run")) - - # Historical dependencies - depends_on("py-decorator@4.3.0:4", when="@2.5.1:2.5", type=("build", "run")) - depends_on("py-decorator@4.3.0:", when="@2.2:2.4", type=("build", "run")) - depends_on("py-decorator@4.1.0:", when="@2.0:2.1", type=("build", "run")) - depends_on("py-decorator@3.4.0:", when="@:1", type=("build", "run")) - - with when("+extra"): - # From requirements/extra.txt - depends_on("py-lxml@4.6:", when="@2.7:", type=("build", "run")) - depends_on("py-lxml@4.5:", when="@2.6:", type=("build", "run")) - depends_on("py-pygraphviz@1.10:", when="@3:", type=("build", "run")) - depends_on("py-pygraphviz@1.9:", when="@2.7:", type=("build", "run")) - depends_on("py-pygraphviz@1.7:", when="@2.6:", type=("build", "run")) - depends_on("py-pygraphviz@1.5:1", type=("build", "run")) - depends_on("py-pydot@1.4.2:", when="@2.7:", type=("build", "run")) - depends_on("py-pydot@1.4.1:", type=("build", "run")) - depends_on("py-sympy@1.10:", when="@2.8:", type=("build", "run")) + with default_args(type="build"): + depends_on("py-setuptools@77.0.3:", when="@3.6:") + depends_on("py-setuptools@61.2:", when="@3.2:") + depends_on("py-setuptools") + + with default_args(type=("build", "run")): + depends_on("python@3.11:", when="@3.5:") + depends_on("python@3.10:", when="@3.3:") + depends_on("python@3.9:", when="@3.2:") + depends_on("python@3.8:", when="@2.7:") + depends_on("python@3.7:", when="@2.6:") + + with when("+default"): + depends_on("py-numpy@1.25:", when="@3.5:") + depends_on("py-numpy@1.24:", when="@3.4:") + depends_on("py-numpy@1.23:", when="@3.3:") + depends_on("py-numpy@1.22:", when="@3.2:") + depends_on("py-numpy@1.20:", when="@3:") + depends_on("py-numpy@1.19:", when="@2.8.6:") + # https://github.com/networkx/networkx/pull/7390 + depends_on("py-numpy@:1", when="@:3.2") + depends_on("py-scipy@1.11.2:", when="@3.2:") + depends_on("py-scipy@1.8:", when="@2.8.6:") + depends_on("py-matplotlib@3.8:", when="@3.4:") + depends_on("py-matplotlib@3.5:", when="@3.2:") + depends_on("py-matplotlib@3.4:", when="@2.8.6:") + depends_on("py-pandas@2.0:", when="@3.4:") + depends_on("py-pandas@1.4:", when="@3.2:") + depends_on("py-pandas@1.3:", when="@2.8.6:") + + # Historical dependencies + depends_on("py-decorator@4.3.0:4", when="@2.5.1:2.5") + depends_on("py-decorator@4.3.0:", when="@2.2:2.4") + depends_on("py-decorator@4.1.0:", when="@2.0:2.1") + depends_on("py-decorator@3.4.0:", when="@:1") + + with when("+extra"): + depends_on("py-lxml@4.6:", when="@2.7:") + depends_on("py-lxml@4.5:", when="@2.6:") + depends_on("py-pygraphviz@1.14:", when="@3.4:") + depends_on("py-pygraphviz@1.12:", when="@3.3:") + depends_on("py-pygraphviz@1.11:", when="@3.2:") + depends_on("py-pygraphviz@1.10:", when="@3:") + depends_on("py-pygraphviz@1.9:", when="@2.7:") + depends_on("py-pygraphviz@1.7:", when="@2.6:") + depends_on("py-pygraphviz@1.5:1") + depends_on("py-pydot@3.0.1:", when="@3.4:") + depends_on("py-pydot@2:", when="@3.3") + depends_on("py-pydot@1.4.2:", when="@2.7:") + depends_on("py-pydot@1.4.1:") + depends_on("py-sympy@1.10:", when="@2.8:") + + conflicts("python@3.14.1") def url_for_version(self, version): ext = "tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_neurokit2/package.py b/repos/spack_repo/builtin/packages/py_neurokit2/package.py index 7fb85fca222..74465f58dd6 100644 --- a/repos/spack_repo/builtin/packages/py_neurokit2/package.py +++ b/repos/spack_repo/builtin/packages/py_neurokit2/package.py @@ -22,17 +22,33 @@ class PyNeurokit2(PythonPackage): license("MIT") + version("0.2.13", sha256="e0a3831e939444855c8350f01322d3ecece1faf8a290c179d730697930f10046") + version("0.2.12", sha256="f1ca66136a397ce31bc9df8319a3fd04c544950b6e43080d13ea83e89492ca7c") version("0.2.4", sha256="4699704f6890ae3510d5abf1deec86a59d793d31cda51b627f6eae65360d298f") version("0.2.2", sha256="0c33b060f9ac5ec8a6a0e23261fdbc36a98cb48e06142a1653fd12698806a952") version("0.1.5", sha256="4df48c0ce8971e32e32f36c2263986b00fd83da5eadaaa98e4bb5ab6bcd930e5") version("0.1.4.1", sha256="226bb04bb369d8bb87d99831f0a93cd8d0ed96fdc500f63de0b3550082876f6e") version("0.1.2", sha256="5ef40037c2d7078ecb713ab0b77b850267babf133856b59595de9613f29787bc") - depends_on("py-setuptools@40.6.0:", type="build") - depends_on("py-pytest-runner", type="build") - depends_on("py-numpy", type=("build", "run")) - depends_on("py-pandas", type=("build", "run")) - depends_on("py-scipy", type=("build", "run")) - depends_on("py-scikit-learn@1:", when="@0.2:", type=("build", "run")) - depends_on("py-scikit-learn", type=("build", "run")) - depends_on("py-matplotlib", type=("build", "run")) + depends_on("python@3.10:", type=("build", "run"), when="@0.2.13:") + + with default_args(type="build"): + depends_on("py-hatchling", when="@0.2.13:") + depends_on("py-hatch-vcs", when="@0.2.13:") + + with default_args(type=("build", "run")): + depends_on("py-requests", when="@0.2.8:") + depends_on("py-numpy@2:", when="@0.2.13") + depends_on("py-numpy") + depends_on("py-pandas@:2") + depends_on("py-scipy") + depends_on("py-scikit-learn@1:", when="@0.2:") + depends_on("py-scikit-learn") + depends_on("py-matplotlib@3.5:", when="@0.2.11:") + depends_on("py-matplotlib") + depends_on("py-pywavelets@1.4:", when="@0.2.12:") + depends_on("py-setuptools@:81", when="@0.2.13:") + + # Historical dependencies + depends_on("py-setuptools@40.6.0:", type="build", when="@:0.2.12") + depends_on("py-pytest-runner", type="build", when="@:0.2.12") diff --git a/repos/spack_repo/builtin/packages/py_neurora/package.py b/repos/spack_repo/builtin/packages/py_neurora/package.py index e00083acb18..f60a373c225 100644 --- a/repos/spack_repo/builtin/packages/py_neurora/package.py +++ b/repos/spack_repo/builtin/packages/py_neurora/package.py @@ -15,6 +15,7 @@ class PyNeurora(PythonPackage): license("MIT") + version("1.1.6.12", sha256="cdd2708f7d8320a795d4dd23d2ea174de8c81e9568a58a9ddde7a1245e0ba5d4") version("1.1.6.10", sha256="cdfed753b9d2e227cd15e3215fc0297ad5df0b131ef87a849e3fcec90788c514") version("1.1.6.9", sha256="052d826e17d6a40171d487b188bd68863e36e41e37740da5eec33562241e36ce") version("1.1.6.8", sha256="84aebe82ce0e8e99b306dcab7b5e15f85269862c379f16b8161dbab64e7d1dd2") diff --git a/repos/spack_repo/builtin/packages/py_nexusforge/package.py b/repos/spack_repo/builtin/packages/py_nexusforge/package.py index 5432ea1a432..93a0fb24bdc 100644 --- a/repos/spack_repo/builtin/packages/py_nexusforge/package.py +++ b/repos/spack_repo/builtin/packages/py_nexusforge/package.py @@ -18,6 +18,7 @@ class PyNexusforge(PythonPackage): license("Apache-2.0") + version("0.8.2", sha256="a4511b4abed9a6968945ef5f73d1a329ac24994700c1805468a42fa1e2a11aa9") version("0.8.1", sha256="eb2909cbec185e7a73191c1be1e62902a0d8534f0d93454ef3e4e3b18b5129cf") version("0.8.0", sha256="4358505ead26e41c2a0c4e6113cf3a486c9661e2a3899394497a2b5a94b70424") version("0.7.0", sha256="a8d2951d9ad18df9f2f4db31a4c18fcdd27bfcec929b03a3c91f133ea439413c") diff --git a/repos/spack_repo/builtin/packages/py_nh3/package.py b/repos/spack_repo/builtin/packages/py_nh3/package.py new file mode 100644 index 00000000000..71046e0b01b --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_nh3/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 PyNh3(PythonPackage): + """Python binding to Ammonia HTML sanitizer Rust crate.""" + + homepage = "https://github.com/messense/nh3" + pypi = "nh3/nh3-0.3.0.tar.gz" + + license("MIT") + + version("0.3.4", sha256="96709a379997c1b28c8974146ca660b0dcd3794f4f6d50c1ea549bab39ac6ade") + version("0.3.2", sha256="f394759a06df8b685a4ebfb1874fb67a9cbfd58c64fc5ed587a663c0e63ec376") + version("0.3.0", sha256="d8ba24cb31525492ea71b6aac11a4adac91d828aadeff7c4586541bf5dc34d2f") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-maturin@1", type="build") + depends_on("rust", type="build") diff --git a/repos/spack_repo/builtin/packages/py_nibabel/package.py b/repos/spack_repo/builtin/packages/py_nibabel/package.py index 42261b66a0e..450d915b0ff 100644 --- a/repos/spack_repo/builtin/packages/py_nibabel/package.py +++ b/repos/spack_repo/builtin/packages/py_nibabel/package.py @@ -19,6 +19,9 @@ class PyNibabel(PythonPackage): # As detailed: https://nipy.org/nibabel/legal.html license("MIT AND BSD-3-Clause AND PSF-2.0 AND PDDL-1.0") + version("5.4.2", sha256="d5f4b9076a13178ae7f7acf18c8dbd503ee1c4d5c0c23b85df7be87efcbb49da") + version("5.3.3", sha256="8d2006b70d727fd0a798a88ae5fd64339741f436fcfc83d6ea3256cdbc51c5b7") + version("5.3.2", sha256="0bdca6503b1c784b446c745a4542367de7756cfba0d72143b91f9ffb78be569b") version("5.2.1", sha256="b6c80b2e728e4bc2b65f1142d9b8d2287a9102a8bf8477e115ef0d8334559975") version("5.1.0", sha256="ce73ca5e957209e7219a223cb71f77235c9df2acf4d3f27f861ba38e9481ac53") version("4.0.2", sha256="45c49b5349351b45f6c045a91aa02b4f0d367686ff3284632ef95ac65b930786") @@ -26,20 +29,28 @@ class PyNibabel(PythonPackage): version("3.2.1", sha256="4d2ff9426b740011a1c916b54fc25da9348282e727eaa2ea163f42e00f1fc29e") version("2.4.1", sha256="f165ff1cb4464902d6594eb2694e2cfb6f8b9fe233b856c976c3cff623ee0e17") + depends_on("python@3.10:", when="@5.4:", type=("build", "run")) + depends_on("python@3.9:", when="@5.3:", type=("build", "run")) depends_on("python@3.8:", when="@5:", type=("build", "run")) depends_on("python@3.7:", when="@4:", type=("build", "run")) + depends_on("py-hatchling@1,27:", when="@5.4:", type="build") depends_on("py-hatchling", when="@5:", type="build") depends_on("py-hatch-vcs", when="@5:", type="build") + depends_on("py-numpy@1.25:", when="@5.4:", type=("build", "run")) + depends_on("py-numpy@1.22:", when="@5.3:", type=("build", "run")) depends_on("py-numpy@1.20:", when="@5.2.1:", type=("build", "run")) depends_on("py-numpy@1.19:", when="@5:", type=("build", "run")) depends_on("py-numpy@1.17:", when="@4:", type=("build", "run")) depends_on("py-numpy@1.14:", when="@3.2:", type=("build", "run")) depends_on("py-numpy@1.8:", type=("build", "run")) + depends_on("py-packaging@20:", when="@5.3:", type=("build", "run")) depends_on("py-packaging@17:", when="@4:", type=("build", "run")) depends_on("py-packaging@14.3:", when="@3.1:", type=("build", "run")) + depends_on("py-importlib-resources@5.12:", when="@5.3: ^python@:3.11", type=("build", "run")) depends_on("py-importlib-resources@1.3:", when="@5.2.1: ^python@:3.9", type=("build", "run")) depends_on("py-importlib-resources@1.3:", when="@5.1: ^python@:3.8", type=("build", "run")) + depends_on("py-typing-extensions@4.6:", when="@5.3: ^python@:3.12", type=("build", "run")) depends_on("py-pytest", type="test") diff --git a/repos/spack_repo/builtin/packages/py_nibetaseries/package.py b/repos/spack_repo/builtin/packages/py_nibetaseries/package.py deleted file mode 100644 index d5cb3a944fc..00000000000 --- a/repos/spack_repo/builtin/packages/py_nibetaseries/package.py +++ /dev/null @@ -1,50 +0,0 @@ -# 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 PyNibetaseries(PythonPackage): - """BetaSeries Correlations implemented in Nipype.""" - - homepage = "https://github.com/HBClab/NiBetaSeries" - pypi = "nibetaseries/nibetaseries-0.6.0.tar.gz" - git = "https://github.com/HBClab/NiBetaSeries.git" - - license("MIT") - - version("master", branch="master") - - depends_on("python@3.5:", type=("build", "run")) - depends_on("py-setuptools@40.8:", type="build") - depends_on("py-cython", type="build") - - with when("@master"): - depends_on("py-nipype@1.5.1:", type=("build", "run")) - depends_on("py-pybids@0.11.1:", type=("build", "run")) - depends_on("py-nibabel@3:", type=("build", "run")) - depends_on("py-nistats@0.0.1b2", type=("build", "run")) - depends_on("py-niworkflows@1.3.1:1.3", type=("build", "run")) - depends_on("py-nilearn", type=("build", "run")) - depends_on("py-pandas", type=("build", "run")) - depends_on("py-numpy", type=("build", "run")) - depends_on("py-duecredit", type=("build", "run")) - depends_on("py-scikit-learn@0.22.0:0.22", type=("build", "run")) - depends_on("py-matplotlib", type=("build", "run")) - depends_on("py-mne", type=("build", "run")) - # pypiwin32; platform_system=="Windows" - - @run_after("install") - def patch_bin(self): - # pkg_resources fails to find the dependencies, resulting in errors - # like: pkg_resources.DistributionNotFound: The 'sklearn' distribution - # was not found and is required by nilearn - filter_file( - "__requires__ = 'nibetaseries==0.post1+gaa7d2ea'", - "", - join_path(self.prefix.bin, "nibs"), - string=True, - ) diff --git a/repos/spack_repo/builtin/packages/py_nilearn/package.py b/repos/spack_repo/builtin/packages/py_nilearn/package.py index 0721bebf613..0981147c0d2 100644 --- a/repos/spack_repo/builtin/packages/py_nilearn/package.py +++ b/repos/spack_repo/builtin/packages/py_nilearn/package.py @@ -18,6 +18,8 @@ class PyNilearn(PythonPackage): license("BSD") + version("0.13.1", sha256="66d4a4f3f1dea9b8683806849ea8e91abfeac11e14f7e972a726f644e515bc2b") + version("0.12.1", sha256="a08bbfae94d0fac5ba0aebbbcd864b7f91d1ef5725d1c309ce643dd64b2391b9") version("0.10.3", sha256="77819331314c4ca5c15c07634f69f855fafdf9add051b1882e3a600ad52757d8") version("0.10.1", sha256="928a364e7ed77d15d02b7f227197ea7c78f44f2fe780feb555d6d7cf9232f846") version("0.10.0", sha256="cc7f1068e038076527ead1bd363436f88f5e8d21e8bb57b323b30b926fc7553a") @@ -26,61 +28,77 @@ class PyNilearn(PythonPackage): version("0.8.1", sha256="a0489940855130f35bbc4cac0750479a6f82025215ea7b1d778faca064219298") version("0.8.0", sha256="f2d3dc81005f829f3a183efa6c90d698ea6818c06264d2e3f03e805c4340febb") version("0.7.1", sha256="8b1409a5e1f0f6d1a1f02555c2f11115a2364f45f1e57bcb5fb3c9ea11f346fa") - version("0.6.2", sha256="cfc6cfda59a6f4247189f8ccf92e364de450460a15c0ec21bdb857c420dd198c") - version("0.4.2", sha256="5049363eb6da2e7c35589477dfc79bf69929ca66de2d7ed2e9dc07acf78636f4") variant("plotting", default=False, description="Enable plotting functionalities") + depends_on("python@3.10:", when="@0.13:", type=("build", "run")) + depends_on("python@3.9:", when="@0.11:", type=("build", "run")) + depends_on("python@3.8:", when="@0.10.3:", type=("build", "run")) + depends_on("python@3.7:", when="@0.10:", type=("build", "run")) depends_on("py-hatchling", when="@0.10.1:", type="build") depends_on("py-hatch-vcs", when="@0.10.1:", type="build") - depends_on("py-setuptools", when="@:0.10.0", type="build") + depends_on("py-joblib@1.2:", when="@0.11:", type=("build", "run")) depends_on("py-joblib@1:", when="@0.10:", type=("build", "run")) depends_on("py-joblib@0.15:", when="@0.9.1:", type=("build", "run")) depends_on("py-joblib@0.12:", when="@0.7:", type=("build", "run")) - depends_on("py-joblib@0.11:", when="@0.6:", type=("build", "run")) - depends_on("py-lxml", when="@0.9.1:", type=("build", "run")) - depends_on("py-nibabel@4.0.0:", when="@0.10.3:", type=("build", "run")) + + depends_on("py-nibabel@5.2:", when="@0.11:", type=("build", "run")) + depends_on("py-nibabel@4:", when="@0.10.3:", type=("build", "run")) depends_on("py-nibabel@3.2:", when="@0.10:", type=("build", "run")) depends_on("py-nibabel@3:", when="@0.9.1:", type=("build", "run")) depends_on("py-nibabel@2.5:", when="@0.8:", type=("build", "run")) depends_on("py-nibabel@2.0.2:", type=("build", "run")) + + depends_on("py-numpy@1.22.4:", when="@0.11:", type=("build", "run")) depends_on("py-numpy@1.19:", when="@0.10:", type=("build", "run")) depends_on("py-numpy@1.18:", when="@0.9.1:", type=("build", "run")) depends_on("py-numpy@1.16:", when="@0.8:", type=("build", "run")) depends_on("py-numpy@1.11:", when="@0.5:", type=("build", "run")) depends_on("py-numpy@1.6.1:", type=("build", "run")) + + depends_on("py-pandas@2.2:", when="@0.11:", type=("build", "run")) depends_on("py-pandas@1.1.5:", when="@0.10:", type=("build", "run")) depends_on("py-pandas@1:", when="@0.9.1:", type=("build", "run")) depends_on("py-pandas@0.24.0:", when="@0.8:", type=("build", "run")) depends_on("py-pandas@0.18.0:", when="@0.7:", type=("build", "run")) + + depends_on("py-requests@2.30:", when="@0.13:", type=("build", "run")) depends_on("py-requests@2.25:", when="@0.10:", type=("build", "run")) depends_on("py-requests@2:", when="@0.7:", type=("build", "run")) + + depends_on("py-scikit-learn@1.4:", when="@0.11:", type=("build", "run")) depends_on("py-scikit-learn@1:", when="@0.10:", type=("build", "run")) depends_on("py-scikit-learn@0.22:", when="@0.9.1:", type=("build", "run")) depends_on("py-scikit-learn@0.21:", when="@0.8:", type=("build", "run")) depends_on("py-scikit-learn@0.19:", when="@0.7:", type=("build", "run")) - # sklearn.linear_model.base was deprecated in py-scikit.learn@0.24 - depends_on("py-scikit-learn@0.19:0.23", when="@0.6.0:0.6", type=("build", "run")) - # older py-nilearn versions use import sklearn.external.joblib which was - # deprecated in py-scikit-learn@0.23: - depends_on("py-scikit-learn@0.15:0.22", when="@:0.5", type=("build", "run")) + + depends_on("py-jinja2@3.1.2:", when="@0.13:", type=("build", "run")) + + depends_on("py-scipy@1.9:", when="@0.13:", type=("build", "run")) depends_on("py-scipy@1.8:", when="@0.10.3:", type=("build", "run")) depends_on("py-scipy@1.6:", when="@0.10:", type=("build", "run")) depends_on("py-scipy@1.5:", when="@0.9.1:", type=("build", "run")) depends_on("py-scipy@1.2:", when="@0.8:", type=("build", "run")) depends_on("py-scipy@0.19:", when="@0.6:", type=("build", "run")) - depends_on("py-scipy@0.17:", when="@0.5:", type=("build", "run")) - depends_on("py-scipy@0.14:", type=("build", "run")) + depends_on("py-packaging", when="@0.10.1:", type=("build", "run")) - depends_on("py-matplotlib@3.3:", when="@0.10: +plotting", type=("build", "run")) - depends_on("py-matplotlib@3:", when="@0.9.1: +plotting", type=("build", "run")) - depends_on("py-matplotlib@2:", when="@0.6: +plotting", type=("build", "run")) - # older py-nilearn versions use matplotlib.cm.revcmap which was deprecated - # in py-matplotlib@3.4: - depends_on("py-matplotlib@1.5.1:3.3", when="@:0.5 +plotting", type=("build", "run")) - depends_on("py-matplotlib@1.1.1:3.3", when="@0.4.2 +plotting", type=("build", "run")) + with when("+plotting"): + depends_on("py-matplotlib@3.8:", when="@0.13:", type=("build", "run")) + depends_on("py-matplotlib@3.3:", when="@0.10:", type=("build", "run")) + depends_on("py-matplotlib@3:", when="@0.9.1:", type=("build", "run")) + depends_on("py-matplotlib@2:", when="@0.6:", type=("build", "run")) + depends_on("py-plotly@5:", when="@0.12:", type=("build", "run")) + depends_on("py-plotly", when="@0.10.3:", type=("build", "run")) + depends_on("py-kaleido", when="@0.10.3:", type=("build", "run")) + + conflicts("py-setuptools-scm@9.0.0") + conflicts("py-plotly@6.1.0") + + # Historical dependencies + depends_on("py-lxml", when="@0.9.1:0.12", type=("build", "run")) + depends_on("py-setuptools", when="@:0.10.0", type="build") @property def skip_modules(self): diff --git a/repos/spack_repo/builtin/packages/py_ninja/package.py b/repos/spack_repo/builtin/packages/py_ninja/package.py deleted file mode 100644 index 62c30d25801..00000000000 --- a/repos/spack_repo/builtin/packages/py_ninja/package.py +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os - -from spack_repo.builtin.build_systems.python import PythonPackage - -from spack.package import * - - -class PyNinja(PythonPackage): - """Ninja is a small build system with a focus on speed. - - Deprecated: use ninja instead. - """ - - homepage = "https://ninja-build.org" - pypi = "ninja/ninja-1.10.2.tar.gz" - - license("Apache-2.0") - - version( - "1.10.2", - sha256="bb5e54b9a7343b3a8fc6532ae2c169af387a45b0d4dd5b72c2803e21658c5791", - deprecated=True, - ) - - depends_on("cmake@3.6:", type="build") - depends_on("py-setuptools@42:", type="build") - depends_on("py-scikit-build", type="build") - depends_on("ninja@1.10.2", type=("build", "run"), when="@1.10.2") - - def patch(self): - os.unlink(join_path(self.stage.source_path, "CMakeLists.txt")) - - @run_after("install") - def installit(self): - syntax_file = os.path.join(self.spec["ninja"].prefix.misc, "ninja_syntax.py") - bin_file = os.path.join(self.spec["ninja"].prefix.bin, "ninja") - dst = os.path.join(python_platlib, "ninja") - dstbin = os.path.join(dst, "data", "bin") - mkdirp(dstbin) - os.symlink(bin_file, os.path.join(dstbin, "ninja")) - os.symlink(syntax_file, os.path.join(dst, "ninja_syntax.py")) diff --git a/repos/spack_repo/builtin/packages/py_nipype/package.py b/repos/spack_repo/builtin/packages/py_nipype/package.py index 54bebc8863b..908e53aac12 100644 --- a/repos/spack_repo/builtin/packages/py_nipype/package.py +++ b/repos/spack_repo/builtin/packages/py_nipype/package.py @@ -15,6 +15,8 @@ class PyNipype(PythonPackage): license("Apache-2.0") + version("1.11.0", sha256="6707ec4c3cf8e1983aef7f8eea79627ee7b7ab4aa49649991550e129c165b7a7") + version("1.10.0", sha256="19e5d6cefa70997198f78bc665ef4d3d3cb53325b5b98a72e51aefadaf6b3e0e") version("1.8.6", sha256="977b1315e8f70f94163ec07e31e5571be83f2add6023141c5a06ac700126f8d1") version("1.8.5", sha256="e3842743fb660464dd29de73dcfc9ef66d273be10bcc64059ff21cd5ef1e9655") version("1.7.0", sha256="e689fe2e5049598c9cd3708e8df1cac732fa1a88696f283e3bc0a70fecb8ab51") @@ -22,31 +24,56 @@ class PyNipype(PythonPackage): version("1.6.0", sha256="bc56ce63f74c9a9a23c6edeaf77631377e8ad2bea928c898cc89527a47f101cf") version("1.4.2", sha256="069dcbb0217f13af6ee5a7f1e58424b9061290a3e10d7027d73bf44e26f820db") - depends_on("python@3.7:", when="@1.8:", type=("build", "run")) + depends_on("python@3.10:", type=("build", "run"), when="@1.11:") + depends_on("python@3.9:", type=("build", "run"), when="@1.9:") + depends_on("python@3.7:", type=("build", "run"), when="@1.8:") - depends_on("py-setuptools@30.3:", when="@1.7.1:", type="build") - depends_on("py-setuptools", type="build") + with default_args(type="build"): + depends_on("py-hatchling", when="@1.11:") + depends_on("py-hatch-vcs", when="@1.11:") + + # Historical dependencies + depends_on("py-setuptools@30.3:", when="@1.7.1:1.10") + depends_on("py-setuptools", when="@:1.10") # dependencies are listed in nipype/info.py - depends_on("py-click@6.6:", type=("build", "run")) - depends_on("py-networkx@2:", when="@1.6:", type=("build", "run")) - depends_on("py-networkx@1.9:", type=("build", "run")) - depends_on("py-nibabel@2.1:", type=("build", "run")) - depends_on("py-numpy@1.17:", when="@1.8:", type=("build", "run")) - depends_on("py-numpy@1.15.3:", when="^python@3.7:", type=("build", "run")) - depends_on("py-packaging", type=("build", "run")) - depends_on("py-prov@1.5.2:", type=("build", "run")) - depends_on("py-pydot@1.2.3:", type=("build", "run")) - depends_on("py-pydotplus", when="@:1.5", type=("build", "run")) - depends_on("py-python-dateutil@2.2:", type=("build", "run")) - depends_on("py-rdflib@5:", when="@1.5:", type=("build", "run")) - depends_on("py-scipy@0.14:", type=("build", "run")) - depends_on("py-simplejson@3.8:", type=("build", "run")) - depends_on("py-traits@4.6:4,5.1:6.3", when="@1.8.4:", type=("build", "run")) - depends_on("py-traits@4.6:4,5.1:", when="@:1.8.3", type=("build", "run")) - depends_on("py-filelock@3:", type=("build", "run")) - depends_on("py-etelemetry@0.2:", when="@1.5:", type=("build", "run")) - depends_on("py-etelemetry", type=("build", "run")) - depends_on("py-looseversion", when="@1.8.1:", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("py-click@6.6:") + depends_on("py-networkx@2.5:", when="@1.9.1:") + depends_on("py-networkx@2:", when="@1.6:") + depends_on("py-networkx@1.9:") + depends_on("py-nibabel@3:", when="@1.9.1:") + depends_on("py-nibabel@2.1:") + depends_on("py-numpy@1.21:", when="@1.9.1:") + depends_on("py-numpy@1.17:", when="@1.8:") + depends_on("py-numpy@1.15.3:", when="^python@3.7:") + depends_on("py-packaging@21:", when="@1.11:") + depends_on("py-packaging") + depends_on("py-prov@1.5.2:") + depends_on("py-pydot@1.2.3:") + depends_on("py-python-dateutil@2.2:") + depends_on("py-rdflib@5:", when="@1.5:") + depends_on("py-scipy@1.8:", when="@1.9.1:") + depends_on("py-scipy@0.14:") + depends_on("py-simplejson@3.8:") + depends_on("py-traits@6.2:", when="@1.9.1:") + depends_on("py-traits@4.6:4,5.1:6.3", when="@1.8.4") + depends_on("py-traits@4.6:4,5.1:", when="@:1.8.3") + depends_on("py-filelock@3:") + depends_on("py-acres@0.3:", when="@1.11:") + depends_on("py-acres", when="@1.9.1:") + depends_on("py-etelemetry@0.3.1:", when="@1.9.1:") + depends_on("py-etelemetry@0.2:", when="@1.5:") + depends_on("py-etelemetry") + depends_on("py-looseversion@1.0.1:", when="@1.11:") + depends_on("py-looseversion", when="@1.8.1:") + depends_on("py-lxml@4.9.1:", when="@1.11:") + depends_on("py-puremagic@1.15:", when="@1.11:") + depends_on("py-puremagic", when="@1.9:") + + # Historical dependencies + depends_on("py-pydotplus", when="@:1.5") + + conflicts("py-looseversion@1.2") skip_modules = ["nipype.sphinxext.apidoc"] diff --git a/repos/spack_repo/builtin/packages/py_nistats/package.py b/repos/spack_repo/builtin/packages/py_nistats/package.py deleted file mode 100644 index 9fb65f0973b..00000000000 --- a/repos/spack_repo/builtin/packages/py_nistats/package.py +++ /dev/null @@ -1,29 +0,0 @@ -# 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 PyNistats(PythonPackage): - """Modeling and Statistical analysis of fMRI data in Python.""" - - homepage = "https://github.com/nilearn/nistats" - pypi = "nistats/nistats-0.0.1rc0.tar.gz" - - version("0.0.1rc0", sha256="dcc4c4e410f542fd72e02e12b3b6531851bae2680d08ad29658b272587ef2f98") - version("0.0.1b2", sha256="a853149087bafbf1bed12664ed8889a63ff15dde1fb7a9d51e8a094afc8d695d") - - depends_on("python@2.7:", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-numpy@1.11:", type=("build", "run")) - depends_on("py-scipy@0.17:", type=("build", "run")) - depends_on("py-scikit-learn@0.18:", type=("build", "run")) - depends_on("py-nibabel@2.0.2:", type=("build", "run")) - # needs +plotting to avoid ModuleNotFoundError: - # 'nilearn.plotting.js_plotting_utils' when importing nistats.reporting - # Functionality has been incorporated into py-nilearn@0.7: - depends_on("py-nilearn+plotting@0.4:0.6", type=("build", "run")) - depends_on("py-pandas@0.18:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_nltk/resourcegen.py b/repos/spack_repo/builtin/packages/py_nltk/resourcegen.py index 1a6e747b49f..64afc0fdb0e 100644 --- a/repos/spack_repo/builtin/packages/py_nltk/resourcegen.py +++ b/repos/spack_repo/builtin/packages/py_nltk/resourcegen.py @@ -32,9 +32,7 @@ when='+data', sha256='{2}', destination='nltk_data/{3}', - placement='{0}')""".format( - name, url, output_checksum, subdir - ) + placement='{0}')""".format(name, url, output_checksum, subdir) ) else: print("""bad {0}""".format(url)) diff --git a/repos/spack_repo/builtin/packages/py_node_semver/package.py b/repos/spack_repo/builtin/packages/py_node_semver/package.py index b85d59705a9..7da1c1ab3cd 100644 --- a/repos/spack_repo/builtin/packages/py_node_semver/package.py +++ b/repos/spack_repo/builtin/packages/py_node_semver/package.py @@ -15,6 +15,7 @@ class PyNodeSemver(PythonPackage): license("MIT") + version("0.9.0", sha256="04aa0b0016dbc06748d6378c42d8cf82a343415bd9fca6284f488041d08b33bb") version("0.8.1", sha256="281600d009606f4f63ddcbe148992e235b39a69937b9c20359e2f4a2adbb1e00") version("0.6.1", sha256="4016f7c1071b0493f18db69ea02d3763e98a633606d7c7beca811e53b5ac66b7") diff --git a/repos/spack_repo/builtin/packages/py_nodeenv/package.py b/repos/spack_repo/builtin/packages/py_nodeenv/package.py index 714bee7d8e7..35cb2c16ca2 100644 --- a/repos/spack_repo/builtin/packages/py_nodeenv/package.py +++ b/repos/spack_repo/builtin/packages/py_nodeenv/package.py @@ -13,6 +13,7 @@ class PyNodeenv(PythonPackage): homepage = "https://github.com/ekalinin/nodeenv" pypi = "nodeenv/nodeenv-1.3.3.tar.gz" + version("1.10.0", sha256="996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb") version("1.9.1", sha256="6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f") version("1.8.0", sha256="d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2") version("1.7.0", sha256="e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b") diff --git a/repos/spack_repo/builtin/packages/py_notebook/package.py b/repos/spack_repo/builtin/packages/py_notebook/package.py index 0a7734b0b6a..a9fce068c0f 100644 --- a/repos/spack_repo/builtin/packages/py_notebook/package.py +++ b/repos/spack_repo/builtin/packages/py_notebook/package.py @@ -14,6 +14,9 @@ class PyNotebook(PythonPackage): homepage = "https://github.com/jupyter/notebook" pypi = "notebook/notebook-6.1.4.tar.gz" + license("BSD-3-Clause") + + version("7.4.5", sha256="7c2c4ea245913c3ad8ab3e5d36b34a842c06e524556f5c2e1f5d7d08c986615e") version("6.5.7", sha256="04eb9011dfac634fbd4442adaf0a8c27cd26beef831fe1d19faf930c327768e4") version("6.5.6", sha256="b4625a4b7a597839dd3156b140d5ba2c7123761f98245a3290f67a8b8ee048d9") version("6.5.4", sha256="517209568bd47261e2def27a140e97d49070602eea0d226a696f42a7f16c9a4e") @@ -42,47 +45,59 @@ class PyNotebook(PythonPackage): version("4.0.2", sha256="8478d7e2ab474855b0ff841f693983388af8662d3af1adcb861acb900274f22a") with default_args(type=("build", "run")): + depends_on("python@3.8:", when="@7:") depends_on("python@3.7:", when="@6.4:") depends_on("python@3.6:", when="@6.3:") # import pipes in setupbase.py depends_on("python@:3.12", when="@:6") - depends_on("py-jupyter-packaging@0.9:0", when="@6.4.1:", type="build") + depends_on("py-hatchling@1.11:", type="build", when="@7:") + depends_on("py-httpx@0.25:0", type="build", when="@7.4.5:") + + depends_on("py-jupyter-server@2.4:2", type="build", when="@7:") + depends_on("py-jupyterlab@4.4.5:4.4", type=("build", "run"), when="@7.4.5:") + depends_on("py-jupyterlab-server@2.27.1:2", type=("build", "run"), when="@7.2:") + depends_on("py-notebook-shim@0.2", type=("build", "run"), when="@7:") + depends_on("py-tornado@6.2:", type=("build", "run"), when="@7:") + depends_on("py-tornado@6.1:", type=("build", "run"), when="@6.4.5:") + depends_on("py-tornado@5.0:", type=("build", "run"), when="@6:") + depends_on("py-tornado@4.1:6", type=("build", "run"), when="@5.7.5:5") + depends_on("py-tornado@4.0:6", type=("build", "run"), when="@:5.7.4") + + # Historical dependencies + with when("@:6"): + depends_on("py-jupyter-packaging@0.9:0", type="build", when="@6.4.1:") + depends_on("py-setuptools", type="build", when="@5:") - depends_on("py-setuptools", when="@5:", type="build") - depends_on("py-jinja2", type=("build", "run")) - depends_on("py-tornado@6.1:", when="@6.4.5:", type=("build", "run")) - depends_on("py-tornado@5.0:", when="@6:", type=("build", "run")) - depends_on("py-tornado@4.1:6", when="@5.7.5:5", type=("build", "run")) - depends_on("py-tornado@4.0:6", when="@:5.7.4", type=("build", "run")) - depends_on("py-pyzmq@17:", when="@6:", type=("build", "run")) - depends_on("py-argon2-cffi", when="@6.1:", type=("build", "run")) - depends_on("py-traitlets@5.10.1:", when="@6.5.6:", type=("build", "run")) - # https://github.com/jupyter/notebook/issues/7048 - # Maybe the lower bound on 6 is wrong, but py-traitlets@5.10+ is incompatible w/ 6.5.4 - depends_on("py-traitlets@4.2.1:5.9.0", when="@6:6.5.5", type=("build", "run")) - depends_on("py-traitlets@4.2.1:", when="@5:", type=("build", "run")) - depends_on("py-traitlets", type=("build", "run")) - depends_on("py-jupyter-core@4.6.1:", when="@6.0.3:", type=("build", "run")) - depends_on("py-jupyter-core@4.6.0:", when="@6.0.2", type=("build", "run")) - depends_on("py-jupyter-core@4.4.0:", when="@5.7.0:6.0.1", type=("build", "run")) - depends_on("py-jupyter-core", type=("build", "run")) - depends_on("py-jupyter-client@5.3.4:", when="@6.0.2:", type=("build", "run")) - depends_on("py-jupyter-client@5.3.1:", when="@6.0.0:6.0.1", type=("build", "run")) - depends_on("py-jupyter-client@5.2.0:", when="@5.7.0:5", type=("build", "run")) - depends_on("py-jupyter-client", type=("build", "run")) - depends_on("py-ipython-genutils", type=("build", "run")) - depends_on("py-nbformat", type=("build", "run")) - # https://github.com/jupyter/notebook/pull/6286 - depends_on("py-nbconvert@5:", when="@5.5:", type=("build", "run")) - depends_on("py-nbconvert", type=("build", "run")) - depends_on("py-nest-asyncio@1.5:", when="@6.4.10:", type=("build", "run")) - depends_on("py-ipykernel", type=("build", "run")) - depends_on("py-send2trash@1.8:", when="@6.4.10:", type=("build", "run")) - depends_on("py-send2trash@1.5:", when="@6.2.0:", type=("build", "run")) - depends_on("py-send2trash", when="@6:", type=("build", "run")) - depends_on("py-terminado@0.8.3:", when="@6.1:", type=("build", "run")) - depends_on("py-terminado@0.8.1:", when="@5.7.0:", type=("build", "run")) - depends_on("py-terminado@0.3.3:", when="@:5.7.0", type=("build", "run")) - depends_on("py-prometheus-client", when="@5.7.0:", type=("build", "run")) - depends_on("py-nbclassic@0.4.7:", when="@6.5:", type=("build", "run")) + depends_on("py-jinja2", type=("build", "run")) + depends_on("py-pyzmq@17:", type=("build", "run"), when="@6") + depends_on("py-argon2-cffi", type=("build", "run"), when="@6.1:") + depends_on("py-traitlets@5.10.1:", type=("build", "run"), when="@6.5.6:") + # https://github.com/jupyter/notebook/issues/7048 + # Maybe the lower bound on 6 is wrong, but py-traitlets@5.10+ is incompatible w/ 6.5.4 + depends_on("py-traitlets@4.2.1:5.9.0", type=("build", "run"), when="@6:6.5.5") + depends_on("py-traitlets@4.2.1:", type=("build", "run"), when="@5:") + depends_on("py-traitlets", type=("build", "run")) + depends_on("py-jupyter-core@4.6.1:", type=("build", "run"), when="@6.0.3:") + depends_on("py-jupyter-core@4.6.0:", type=("build", "run"), when="@6.0.2") + depends_on("py-jupyter-core@4.4.0:", type=("build", "run"), when="@5.7.0:6.0.1") + depends_on("py-jupyter-core", type=("build", "run")) + depends_on("py-jupyter-client@5.3.4:", type=("build", "run"), when="@6.0.2:") + depends_on("py-jupyter-client@5.3.1:", type=("build", "run"), when="@6.0.0:6.0.1") + depends_on("py-jupyter-client@5.2.0:", type=("build", "run"), when="@5.7.0:5") + depends_on("py-jupyter-client", type=("build", "run")) + depends_on("py-ipython-genutils", type=("build", "run")) + depends_on("py-nbformat", type=("build", "run")) + # https://github.com/jupyter/notebook/pull/6286 + depends_on("py-nbconvert@5:", type=("build", "run"), when="@5.5:") + depends_on("py-nbconvert", type=("build", "run")) + depends_on("py-nest-asyncio@1.5:", type=("build", "run"), when="@6.4.10:") + depends_on("py-ipykernel", type=("build", "run")) + depends_on("py-send2trash@1.8:", type=("build", "run"), when="@6.4.10:") + depends_on("py-send2trash@1.5:", type=("build", "run"), when="@6.2.0:") + depends_on("py-send2trash", type=("build", "run"), when="@6:") + depends_on("py-terminado@0.8.3:", type=("build", "run"), when="@6.1:") + depends_on("py-terminado@0.8.1:", type=("build", "run"), when="@5.7.0:") + depends_on("py-terminado@0.3.3:", type=("build", "run"), when="@:5.7.0") + depends_on("py-prometheus-client", type=("build", "run"), when="@5.7.0:") + depends_on("py-nbclassic@0.4.7:", type=("build", "run"), when="@6.5:") diff --git a/repos/spack_repo/builtin/packages/py_notebook_shim/package.py b/repos/spack_repo/builtin/packages/py_notebook_shim/package.py index 4e11de21798..53519d7f7a8 100644 --- a/repos/spack_repo/builtin/packages/py_notebook_shim/package.py +++ b/repos/spack_repo/builtin/packages/py_notebook_shim/package.py @@ -15,6 +15,7 @@ class PyNotebookShim(PythonPackage): license("BSD-3-Clause") + version("0.2.4", sha256="b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb") version("0.2.3", sha256="f69388ac283ae008cd506dda10d0288b09a017d822d5e8c7129a152cbd3ce7e9") version("0.2.2", sha256="090e0baf9a5582ff59b607af523ca2db68ff216da0c69956b62cab2ef4fc9c3f") diff --git a/repos/spack_repo/builtin/packages/py_npe2/package.py b/repos/spack_repo/builtin/packages/py_npe2/package.py new file mode 100644 index 00000000000..ea141b01747 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_npe2/package.py @@ -0,0 +1,37 @@ +# 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 PyNpe2(PythonPackage): + """The napari plugin engine version 2, npe2 extends the functionality of + napari's core. The plugin ecosystem offers user additional functionality + for napari as well as specific support for different scientific domains.""" + + homepage = "github.com/napari/npe2" + pypi = "npe2/npe2-0.7.9.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("0.7.9", sha256="b6d2f20c87c12bcf60294cab9b1645889c12d68c5338ff7abd66f2742e675ad4") + + depends_on("python@3.8:", type=("build", "run")) + + depends_on("py-hatchling", type="build") + depends_on("py-hatch-vcs", type="build") + + with default_args(type=("build", "run")): + depends_on("py-pyyaml") + depends_on("py-platformdirs") + depends_on("py-build@1") + depends_on("py-psygnal@0.3.0:") + depends_on("py-pydantic") + depends_on("py-tomli-w") + depends_on("py-tomli", when="^python@:3.10") + depends_on("py-rich") + depends_on("py-typer") diff --git a/repos/spack_repo/builtin/packages/py_nptyping/package.py b/repos/spack_repo/builtin/packages/py_nptyping/package.py index 0a68abe6466..7824528d05e 100644 --- a/repos/spack_repo/builtin/packages/py_nptyping/package.py +++ b/repos/spack_repo/builtin/packages/py_nptyping/package.py @@ -16,6 +16,7 @@ class PyNptyping(PythonPackage): license("MIT") + version("2.5.0", sha256="7f061750bcbda8ce3926fc22c22c372c9cebfdb9b889376c71cb5d911173660d") version("2.4.1", sha256="1c1b2b08220d271f3e52dbf2bd9190e4dd15b3c04abfcf7a04ec533d3cc9fdab") version("1.4.1", sha256="bbcedb967f8be1302dffdd999eb531b99712c6914078294b4411758d5899b3b6") version("1.0.1", sha256="a00e672bfdaddc99aa6b25dd1ae89d7d58d2b76e8ad099bd69577bac2598589f") diff --git a/repos/spack_repo/builtin/packages/py_num2words/package.py b/repos/spack_repo/builtin/packages/py_num2words/package.py index 45705721bd2..0540614bd5f 100644 --- a/repos/spack_repo/builtin/packages/py_num2words/package.py +++ b/repos/spack_repo/builtin/packages/py_num2words/package.py @@ -15,6 +15,7 @@ class PyNum2words(PythonPackage): license("LGPL-2.1-or-later") + version("0.5.14", sha256="b066ec18e56b6616a3b38086b5747daafbaa8868b226a36127e0451c0cf379c6") version("0.5.12", sha256="7e7c0b0f080405aa3a1dd9d32b1ca90b3bf03bab17b8e54db05e1b78301a0988") version("0.5.10", sha256="37cd4f60678f7e1045cdc3adf6acf93c8b41bf732da860f97d301f04e611cc57") diff --git a/repos/spack_repo/builtin/packages/py_numba/package.py b/repos/spack_repo/builtin/packages/py_numba/package.py index 3d6d2c79daf..52e673a40b0 100644 --- a/repos/spack_repo/builtin/packages/py_numba/package.py +++ b/repos/spack_repo/builtin/packages/py_numba/package.py @@ -8,7 +8,11 @@ class PyNumba(PythonPackage): - """NumPy aware dynamic Python compiler using LLVM""" + """Compiling Python code using LLVM. + + Numba is an open source, NumPy-aware optimizing compiler for Python sponsored by Anaconda, Inc. + It uses the LLVM compiler project to generate machine code from Python syntax. + """ homepage = "https://numba.pydata.org/" pypi = "numba/numba-0.35.0.tar.gz" @@ -18,6 +22,15 @@ class PyNumba(PythonPackage): license("BSD-2-Clause") + version("0.65.1", sha256="19357146c32fe9ed25059ab915e8465fb13951cf6b0aace3826b76886373ab23") + version("0.64.0", sha256="95e7300af648baa3308127b1955b52ce6d11889d16e8cfe637b4f85d2fca52b1") + version("0.63.0", sha256="27e525ce6f9f727c4f61e89b9d453d4a7d0aabbbf110278988334f43cbd70fdc") + version("0.62.1", sha256="7b774242aa890e34c21200a1fc62e5b5757d5286267e71103257f4e2af0d5161") + version( + "0.62.0rc2", + sha256="4f9a4a9c61e1b1a8a75ef862c4fc265599c32d760b30b29b58442a0da384e30f", + deprecated=True, + ) version("0.61.2", sha256="8750ee147940a6637b80ecf7f95062185ad8726c8c28a2295b8ec1160a196f7d") version("0.61.0", sha256="888d2e89b8160899e19591467e8fdd4970e07606e1fbc248f239c89818d5f925") version("0.60.0", sha256="5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16") @@ -29,68 +42,57 @@ class PyNumba(PythonPackage): version("0.55.2", sha256="e428d9e11d9ba592849ccc9f7a009003eb7d30612007e365afe743ce7118c6f4") version("0.55.1", sha256="03e9069a2666d1c84f93b00dbd716fb8fedde8bb2c6efafa2f04842a46442ea3") version("0.54.0", sha256="bad6bd98ab2e41c34aa9c80b8d9737e07d92a53df4f74d3ada1458b0b516ccff") - version( - "0.51.1", - sha256="1e765b1a41535684bf3b0465c1d0a24dcbbff6af325270c8f4dad924c0940160", - deprecated=True, - ) - version( - "0.50.1", - sha256="89e81b51b880f9b18c82b7095beaccc6856fcf84ba29c4f0ced42e4e5748a3a7", - deprecated=True, - ) - version( - "0.48.0", - sha256="9d21bc77e67006b5723052840c88cc59248e079a907cc68f1a1a264e1eaba017", - deprecated=True, - ) variant("tbb", default=False, description="Build with Intel Threading Building Blocks") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - # Be careful that the bounds given in setup.py are exclusive on the upper bound - # i.e., [min, max) - depends_on("python@3.10:3.13", when="@0.61:", type=("build", "run")) - depends_on("python@3.9:3.12", when="@0.59:", type=("build", "run")) - depends_on("python@3.8:3.11", when="@0.57:0.58", type=("build", "run")) - depends_on("python@3.7:3.10", when="@0.55:0.56", type=("build", "run")) - depends_on("python@3.7:3.9", when="@0.54", type=("build", "run")) - depends_on("python@3.6:3.9", when="@0.53", type=("build", "run")) - depends_on("python@3.6:3.8", when="@0.52", type=("build", "run")) - depends_on("python@3.6:3.8", when="@0.48:0.51", type=("build", "run")) - - # max_numpy_run_version in setup.py is a non inclusive upper bound - # min_numpy_run_version < min_numpy_build_version and these ranges use - # min_numpy_build_version - depends_on("py-numpy@2.0:2.2", when="@0.61.2", type=("build", "run")) - depends_on("py-numpy@2.0:2.1", when="@0.61.0", type=("build", "run")) - depends_on("py-numpy@2.0", when="@0.60", type=("build", "run")) - depends_on("py-numpy@1.22:1.26", when="@0.58.1:0.59", type=("build", "run")) - depends_on("py-numpy@1.21:1.25", when="@0.58.0", type=("build", "run")) - depends_on("py-numpy@1.21:1.24", when="@0.57", type=("build", "run")) - depends_on("py-numpy@1.18:1.23", when="@0.56.1:0.56.4", type=("build", "run")) - depends_on("py-numpy@1.18:1.22", when="@0.55.2:0.56.0", type=("build", "run")) - depends_on("py-numpy@1.18:1.21", when="@0.55.0:0.55.1", type=("build", "run")) - depends_on("py-numpy@1.17:1.20", when="@0.54", type=("build", "run")) - depends_on("py-numpy@1.15:1.20", when="@0.48:0.53", type=("build", "run")) - depends_on("py-setuptools", type=("build", "run")) - depends_on("py-llvmlite@0.44", when="@0.61", type=("build", "run")) - depends_on("py-llvmlite@0.43", when="@0.60", type=("build", "run")) - depends_on("py-llvmlite@0.42", when="@0.59", type=("build", "run")) - depends_on("py-llvmlite@0.41", when="@0.58", type=("build", "run")) - depends_on("py-llvmlite@0.40", when="@0.57", type=("build", "run")) - depends_on("py-llvmlite@0.39", when="@0.56", type=("build", "run")) - depends_on("py-llvmlite@0.38", when="@0.55", type=("build", "run")) - depends_on("py-llvmlite@0.37", when="@0.54.0", type=("build", "run")) - depends_on("py-llvmlite@0.34", when="@0.51.1", type=("build", "run")) - depends_on("py-llvmlite@0.33", when="@0.50.1", type=("build", "run")) - depends_on("py-llvmlite@0.31", when="@0.48", type=("build", "run")) - depends_on("py-importlib-metadata", when="@0.56:^python@:3.8", type=("build", "run")) + with default_args(type="build"): + depends_on("c") + depends_on("cxx") + + with default_args(type=("build", "link", "run")): + # See min/max_*_version in setup.py + # Upper bounds are exclusive + depends_on("python@3.10:3.14", when="@0.63:") + depends_on("python@3.10:3.13", when="@0.61:0.62") + depends_on("python@3.9:3.12", when="@0.59:0.60") + depends_on("python@3.8:3.11", when="@0.57:0.58") + depends_on("python@3.7:3.10", when="@0.55:0.56") + depends_on("python@3.7:3.9", when="@0.54") + + with default_args(type=("build", "run")): + # Use min_numpy_run_version, not min_numpy_build_version + # min_numpy_build_version may be higher to ensure backwards-compatibility of wheels, + # but this doesn't matter for Spack which always guarantees compatibility + depends_on("py-numpy@1.22:2.4", when="@0.64:") + depends_on("py-numpy@1.22:2.3", when="@0.62:") + depends_on("py-numpy@1.24:2.2", when="@0.61.1:0.61.2") + depends_on("py-numpy@1.24:2.1", when="@0.61.0") + depends_on("py-numpy@1.22:2.0", when="@0.60") + depends_on("py-numpy@1.22:1.26", when="@0.58.1:0.59") + depends_on("py-numpy@1.21:1.25", when="@0.58.0") + depends_on("py-numpy@1.21:1.24", when="@0.57") + depends_on("py-numpy@1.18:1.23", when="@0.56.1:0.56.4") + depends_on("py-numpy@1.18:1.22", when="@0.55.2:0.56.0") + depends_on("py-numpy@1.18:1.21", when="@0.55.0:0.55.1") + depends_on("py-numpy@1.17:1.20", when="@0.54") + + depends_on("py-llvmlite@0.47", when="@0.65") + depends_on("py-llvmlite@0.46", when="@0.63,0.64") + depends_on("py-llvmlite@0.45", when="@0.62") + depends_on("py-llvmlite@0.44", when="@0.61") + depends_on("py-llvmlite@0.43", when="@0.60") + depends_on("py-llvmlite@0.42", when="@0.59") + depends_on("py-llvmlite@0.41", when="@0.58") + depends_on("py-llvmlite@0.40", when="@0.57") + depends_on("py-llvmlite@0.39", when="@0.56") + depends_on("py-llvmlite@0.38", when="@0.55") + depends_on("py-llvmlite@0.37", when="@0.54") + + # Always a build requirement + # Run-time requirement prior to 0.57, still required for pycc but technically optional + depends_on("py-setuptools") depends_on("tbb", when="+tbb") - conflicts("~tbb", when="@:0.50") # No way to disable TBB # Version 6.0.0 of llvm had a hidden symbol which breaks numba at runtime. # See https://reviews.llvm.org/D44140 conflicts("^llvm@6.0.0") diff --git a/repos/spack_repo/builtin/packages/py_numbagg/package.py b/repos/spack_repo/builtin/packages/py_numbagg/package.py new file mode 100644 index 00000000000..b411af3cfc2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_numbagg/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 PyNumbagg(PythonPackage): + """N-D labeled arrays and datasets in Python""" + + homepage = "https://github.com/numbagg/numbagg" + pypi = "numbagg/numbagg-0.9.0.tar.gz" + + license("BSD-3-Clause") + + version("0.9.0", sha256="45ba41077b7a621e35eaa4c294d90b22e75e8513b8c211f59d2b9be840fc1175") + + depends_on("py-setuptools", type="build") + depends_on("py-setuptools-scm", type="build") + + depends_on("py-numpy", type=("build", "run")) + depends_on("py-numba", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_numcodecs/package.py b/repos/spack_repo/builtin/packages/py_numcodecs/package.py index c86292da302..db5057d9c62 100644 --- a/repos/spack_repo/builtin/packages/py_numcodecs/package.py +++ b/repos/spack_repo/builtin/packages/py_numcodecs/package.py @@ -17,19 +17,15 @@ class PyNumcodecs(PythonPackage): pypi = "numcodecs/numcodecs-0.6.4.tar.gz" git = "https://github.com/zarr-developers/numcodecs.git" - # 'numcodecs.tests' excluded from 'import_modules' because it requires - # an additional dependency on 'pytest' - import_modules = ["numcodecs"] + # Requires pytest + skip_modules = ["numcodecs.tests"] license("MIT") version("main", branch="main", submodules=True) - version("master", branch="main", submodules=True, deprecated=True) - version( - "0.15.0", - sha256="52fb0c20d99845ef600eb3f8c8ad3e22fe2cb4f2a53394d331210af7cc3375ca", - preferred=True, - ) + version("0.16.5", sha256="0d0fb60852f84c0bd9543cc4d2ab9eefd37fc8efcc410acd4777e62a1d300318") + version("0.16.2", sha256="9922dae0c3b01b5bed3b4bae239f4787e891daa3262c27971298669d029d10e9") + version("0.15.0", sha256="52fb0c20d99845ef600eb3f8c8ad3e22fe2cb4f2a53394d331210af7cc3375ca") version("0.13.0", sha256="ba4fac7036ea5a078c7afe1d4dffeb9685080d42f19c9c16b12dad866703aa2e") version("0.12.1", sha256="05d91a433733e7eef268d7e80ec226a0232da244289614a8f3826901aec1098e") version("0.12.0", sha256="6388e5f4e94d18a7165fbd1c9d3637673b74157cff8bc644005f9e2a4c717d6e") @@ -37,27 +33,45 @@ class PyNumcodecs(PythonPackage): version("0.7.3", sha256="022b12ad83eb623ec53f154859d49f6ec43b15c36052fa864eaf2d9ee786dd85") version("0.6.4", sha256="ef4843d5db4d074e607e9b85156835c10d006afc10e175bda62ff5412fca6e4d") - variant("msgpack", default=False, description="Codec to encode data as msgpacked bytes.") - - depends_on("c", type="build") # generated - - depends_on("python@3.10:", when="@0.13:", type=("build", "link", "run")) - depends_on("python@3.8:", when="@0.11:0.12", type=("build", "link", "run")) - depends_on("python@3.6:3", when="@0.7:0.10", type=("build", "link", "run")) - depends_on("py-setuptools@64:", when="@0.11:", type="build") - depends_on("py-setuptools@18.1:", type="build") - depends_on("py-setuptools-scm@6.2: +toml", when="@0.11:", type="build") - depends_on("py-setuptools-scm@1.5.5: +toml", type="build") - depends_on("py-cython", type="build") - depends_on("py-numpy@1.7:", type=("build", "run")) - # https://github.com/zarr-developers/numcodecs/issues/521 - depends_on("py-numpy@:1", when="@:0.12.0", type=("build", "run")) - depends_on("py-py-cpuinfo", when="@0.11:", type="build") - depends_on("py-entrypoints", when="@0.10.1:0.11", type=("build", "run")) - depends_on("py-msgpack", type=("build", "run"), when="+msgpack") + variant("crc32c", default=False, description="CRC32C codec", when="@0.14:") + variant("msgpack", default=False, description="Codec to encode data as msgpacked bytes") + + with default_args(type=("build", "link", "run")): + depends_on("python@3.11:", when="@0.14:") + depends_on("python@3.10:", when="@0.13:") + depends_on("python@3.8:", when="@0.11:0.12") + depends_on("python@3.6:3", when="@0.7:0.10") + depends_on("py-numpy@1.24:", when="@0.14:") + depends_on("py-numpy@1.7:") + # https://github.com/zarr-developers/numcodecs/issues/521 + depends_on("py-numpy@:1", when="@:0.12.0") + + with default_args(type="build"): + depends_on("c") + depends_on("py-setuptools@77:", when="@0.16.1:") + depends_on("py-setuptools@64:", when="@0.11:") + depends_on("py-setuptools@18.1:") + depends_on("py-setuptools-scm@6.2: +toml", when="@0.11:") + depends_on("py-setuptools-scm@1.5.5: +toml") + depends_on("py-cython") + depends_on("py-py-cpuinfo", when="@0.11:") + + with default_args(type=("build", "run")): + depends_on("py-typing-extensions", when="@0.16:") + + # Historical dependencies + depends_on("py-deprecated", when="@0.15") + depends_on("py-entrypoints", when="@0.10.1:0.11") + + with default_args(type="run"): + depends_on("py-crc32c@2.7:", when="+crc32c") + depends_on("py-msgpack", when="+msgpack") patch("apple-clang-12.patch", when="@:0.13 %apple-clang@12:") + # https://github.com/zarr-developers/numcodecs/releases/tag/v0.16.3 + requires("@0.16.3:", when="%gcc@15:") + # TODO: this package should really depend on blosc, zstd, lz4, zlib, but right now it vendors # those libraries without any way to use the system versions. # https://github.com/zarr-developers/numcodecs/issues/464 diff --git a/repos/spack_repo/builtin/packages/py_numexpr/package.py b/repos/spack_repo/builtin/packages/py_numexpr/package.py index 9800607e9a1..b2d0e399a27 100644 --- a/repos/spack_repo/builtin/packages/py_numexpr/package.py +++ b/repos/spack_repo/builtin/packages/py_numexpr/package.py @@ -11,10 +11,11 @@ class PyNumexpr(PythonPackage): """Fast numerical expression evaluator for NumPy""" homepage = "https://github.com/pydata/numexpr" - url = "https://github.com/pydata/numexpr/archive/v2.7.0.tar.gz" + pypi = "numexpr/numexpr-2.14.1.tar.gz" license("MIT", checked_by="lgarrison") + version("2.14.1", sha256="4be00b1086c7b7a5c32e31558122b7b80243fe098579b170967da83f3152b48b") version("2.10.2", sha256="7e61a8aa4dacb15787b31c31bd7edf90c026d5e6dbe727844c238726e8464592") version("2.9.0", sha256="4df4163fcab20030137e8f2aa23e88e1e42e6fe702387cfd95d7675e1d84645e") version("2.8.8", sha256="10b377c6ec6d9c01349d00e16dd82e6a6f4439c8c2b1945e490df1436c1825f5") @@ -29,20 +30,26 @@ class PyNumexpr(PythonPackage): version("2.5", sha256="4ca111a9a27c9513c2e2f5b70c0a84ea69081d7d8e4512d4c3f26a485292de0d") version("2.4.6", sha256="2681faf55a3f19ba4424cc3d6f0a10610ebd49f029f8453f0ba64dd5c0fe4e0f") - depends_on("c", type="build") - depends_on("cxx", type="build") + with default_args(type="build"): + depends_on("c") + depends_on("cxx") - depends_on("python@3.7:", when="@2.8.3:", type=("build", "run")) - depends_on("python@3.9:", when="@2.8.7:", type=("build", "run")) - depends_on("py-setuptools", type="build") + depends_on("py-setuptools@77:", when="@2.12:") + depends_on("py-setuptools") - depends_on("py-numpy@2:", when="@2.10.2:", type="build") - depends_on("py-numpy@1.23:", when="@2.10.2:", type="run") - depends_on("py-numpy@1.13.3:1.25", type=("build", "run"), when="@2.8.3:2.9") - # https://github.com/pydata/numexpr/issues/397 - depends_on("py-numpy@1.7:1.22", type=("build", "run"), when="@:2.7") - # https://github.com/pydata/numexpr/pull/478 - depends_on("py-numpy@:1", when="@:2.9", type=("build", "run")) + depends_on("py-numpy@2:", when="@2.10.2:") - # Historical dependencies - depends_on("py-packaging", type=("build", "run"), when="@2.8.3") + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@2.11:") + depends_on("python@3.9:", when="@2.8.7:") + depends_on("python@3.7:", when="@2.8.3:") + + depends_on("py-numpy@1.23:", when="@2.10.2:") + depends_on("py-numpy@1.13.3:1.25", when="@2.8.3:2.9") + # https://github.com/pydata/numexpr/issues/397 + depends_on("py-numpy@1.7:1.22", when="@:2.7") + # https://github.com/pydata/numexpr/pull/478 + depends_on("py-numpy@:1", when="@:2.9") + + # Historical dependencies + depends_on("py-packaging", when="@2.8.3") diff --git a/repos/spack_repo/builtin/packages/py_numkit/package.py b/repos/spack_repo/builtin/packages/py_numkit/package.py new file mode 100644 index 00000000000..d54f761dd2a --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_numkit/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 PyNumkit(PythonPackage): + """Numerical first aid kit (with numpy/scipy).""" + + homepage = "https://github.com/Becksteinlab/numkit" + pypi = "numkit/numkit-1.3.1.tar.gz" + + license("BSD") + maintainers("adamwitmer") + + version("1.3.1", sha256="18fba519ab4714d9426a818c04e4656bc60368169db0f65f5eece2ddae0e3211") + + # Build-system requirements + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-setuptools@42:", type="build") + depends_on("py-wheel", type="build") + depends_on("py-setuptools-scm", type="build") + + # Runtime / build deps + depends_on("py-numpy@1.9:", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_numpy/add_fj_compiler2.patch b/repos/spack_repo/builtin/packages/py_numpy/add_fj_compiler2.patch deleted file mode 100644 index 4526ddeadb0..00000000000 --- a/repos/spack_repo/builtin/packages/py_numpy/add_fj_compiler2.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff -urN spack-src.org/numpy/distutils/fcompiler/fujitsu.py spack-src/numpy/distutils/fcompiler/fujitsu.py ---- spack-src.org/numpy/distutils/fcompiler/fujitsu.py 1970-01-01 09:00:00.000000000 +0900 -+++ spack-src/numpy/distutils/fcompiler/fujitsu.py 2020-11-16 17:55:57.608802456 +0900 -@@ -0,0 +1,40 @@ -+from numpy.distutils.fcompiler import FCompiler -+ -+compilers = ['FujitsuFCompiler'] -+ -+class FujitsuFCompiler(FCompiler): -+ compiler_type = 'fujitsu' -+ description = 'Fujitsu Fortran Compiler' -+ -+ possible_executables = ['frt'] -+ version_pattern = r'frt \(FRT\) (?P[a-z\d.]+)' -+ # $ frt --version -+ # frt (FRT) x.x.x yyyymmdd -+ -+ executables = { -+ 'version_cmd' : ["", "--version"], -+ 'compiler_f77' : ["frt", "-Fixed"], -+ 'compiler_fix' : ["frt", "-Fixed"], -+ 'compiler_f90' : ["frt"], -+ 'linker_so' : ["frt", "-shared"], -+ 'archiver' : ["ar", "-cr"], -+ 'ranlib' : ["ranlib"] -+ } -+ pic_flags = ['-KPIC'] -+ module_dir_switch = '-M' -+ module_include_switch = '-I' -+ -+ def get_flags_opt(self): -+ return ['-O3'] -+ def get_flags_debug(self): -+ return ['-g'] -+ def runtime_library_dir_option(self, dir): -+ return f'-Wl,-rpath={dir}' -+ def get_libraries(self): -+ return ['fj90f', 'fj90i', 'fjsrcinfo'] -+ -+if __name__ == '__main__': -+ from distutils import log -+ from numpy.distutils import customized_fcompiler -+ log.set_verbosity(2) -+ print(customized_fcompiler('fujitsu').get_version()) -diff -urN spack-src.org/numpy/distutils/fcompiler/__init__.py spack-src/numpy/distutils/fcompiler/__init__.py ---- spack-src.org/numpy/distutils/fcompiler/__init__.py 2020-11-16 17:55:31.638677631 +0900 -+++ spack-src/numpy/distutils/fcompiler/__init__.py 2020-11-16 17:56:29.978957954 +0900 -@@ -746,7 +746,7 @@ - 'intelvem', 'intelem', 'flang')), - ('cygwin.*', ('gnu', 'intelv', 'absoft', 'compaqv', 'intelev', 'gnu95', 'g95')), - ('linux.*', ('gnu95', 'intel', 'lahey', 'pg', 'absoft', 'nag', 'vast', 'compaq', -- 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor')), -+ 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor', 'fujitsu')), - ('darwin.*', ('gnu95', 'nag', 'absoft', 'ibm', 'intel', 'gnu', 'g95', 'pg')), - ('sunos.*', ('sun', 'gnu', 'gnu95', 'g95')), - ('irix.*', ('mips', 'gnu', 'gnu95',)), diff --git a/repos/spack_repo/builtin/packages/py_numpy/add_fj_compiler3.patch b/repos/spack_repo/builtin/packages/py_numpy/add_fj_compiler3.patch deleted file mode 100644 index 034cac069b8..00000000000 --- a/repos/spack_repo/builtin/packages/py_numpy/add_fj_compiler3.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff -urN spack-src.org/numpy/distutils/fcompiler/fujitsu.py spack-src/numpy/distutils/fcompiler/fujitsu.py ---- spack-src.org/numpy/distutils/fcompiler/fujitsu.py 1970-01-01 09:00:00.000000000 +0900 -+++ spack-src/numpy/distutils/fcompiler/fujitsu.py 2020-11-16 18:30:06.698641953 +0900 -@@ -0,0 +1,40 @@ -+from numpy.distutils.fcompiler import FCompiler -+ -+compilers = ['FujitsuFCompiler'] -+ -+class FujitsuFCompiler(FCompiler): -+ compiler_type = 'fujitsu' -+ description = 'Fujitsu Fortran Compiler' -+ -+ possible_executables = ['frt'] -+ version_pattern = r'frt \(FRT\) (?P[a-z\d.]+)' -+ # $ frt --version -+ # frt (FRT) x.x.x yyyymmdd -+ -+ executables = { -+ 'version_cmd' : ["", "--version"], -+ 'compiler_f77' : ["frt", "-Fixed"], -+ 'compiler_fix' : ["frt", "-Fixed"], -+ 'compiler_f90' : ["frt"], -+ 'linker_so' : ["frt", "-shared"], -+ 'archiver' : ["ar", "-cr"], -+ 'ranlib' : ["ranlib"] -+ } -+ pic_flags = ['-KPIC'] -+ module_dir_switch = '-M' -+ module_include_switch = '-I' -+ -+ def get_flags_opt(self): -+ return ['-O3'] -+ def get_flags_debug(self): -+ return ['-g'] -+ def runtime_library_dir_option(self, dir): -+ return '-Wl,-rpath=%s' %dir -+ def get_libraries(self): -+ return ['fj90f', 'fj90i', 'fjsrcinfo'] -+ -+if __name__ == '__main__': -+ from distutils import log -+ from numpy.distutils import customized_fcompiler -+ log.set_verbosity(2) -+ print(customized_fcompiler('fujitsu').get_version()) -diff -urN spack-src.org/numpy/distutils/fcompiler/__init__.py spack-src/numpy/distutils/fcompiler/__init__.py ---- spack-src.org/numpy/distutils/fcompiler/__init__.py 2020-11-16 18:25:26.087294181 +0900 -+++ spack-src/numpy/distutils/fcompiler/__init__.py 2020-11-16 18:26:19.987553070 +0900 -@@ -750,7 +750,7 @@ - 'intelvem', 'intelem', 'flang')), - ('cygwin.*', ('gnu', 'intelv', 'absoft', 'compaqv', 'intelev', 'gnu95', 'g95')), - ('linux.*', ('gnu95', 'intel', 'lahey', 'pg', 'absoft', 'nag', 'vast', 'compaq', -- 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor')), -+ 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor', 'fujitsu')), - ('darwin.*', ('gnu95', 'nag', 'absoft', 'ibm', 'intel', 'gnu', 'g95', 'pg')), - ('sunos.*', ('sun', 'gnu', 'gnu95', 'g95')), - ('irix.*', ('mips', 'gnu', 'gnu95',)), diff --git a/repos/spack_repo/builtin/packages/py_numpy/check_executables3.patch b/repos/spack_repo/builtin/packages/py_numpy/check_executables3.patch deleted file mode 100644 index 078211e3379..00000000000 --- a/repos/spack_repo/builtin/packages/py_numpy/check_executables3.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- spack-src/numpy/distutils/fcompiler/__init__.py.orig 2020-06-02 17:24:58.000000000 +0900 -+++ spack-src/numpy/distutils/fcompiler/__init__.py 2021-02-12 17:33:11.483728471 +0900 -@@ -320,7 +320,12 @@ - if not exe_from_environ: - possibles = [f90, f77] + self.possible_executables - else: -- possibles = [exe_from_environ] + self.possible_executables -+ matching_executables = [] -+ for e in exe_from_environ: -+ for p in self.possible_executables: -+ if p in e: -+ matching_executables.append(e) -+ possibles = [matching_executables] + self.possible_executables - - seen = set() - unique_possibles = [] diff --git a/repos/spack_repo/builtin/packages/py_numpy/fix-atomic-const.patch b/repos/spack_repo/builtin/packages/py_numpy/fix-atomic-const.patch new file mode 100644 index 00000000000..bd6d6b392d2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_numpy/fix-atomic-const.patch @@ -0,0 +1,20 @@ +--- a/spack-src/numpy/_core/src/common/npy_atomic.h 2025-06-24 16:23:34.000000000 +0900 ++++ b/spack-src/numpy/_core/src/common/npy_atomic.h 2025-06-24 16:24:23.000000000 +0900 +@@ -43,7 +43,7 @@ + npy_atomic_load_uint8(const npy_uint8 *obj) { + #ifdef STDC_ATOMICS + _NPY_USING_STD; +- return (npy_uint8)atomic_load((const _Atomic(uint8_t)*)obj); ++ return (npy_uint8)atomic_load((_Atomic(uint8_t)*)obj); + #elif defined(MSC_ATOMICS) + #if defined(_M_X64) || defined(_M_IX86) + return *(volatile npy_uint8 *)obj; +@@ -59,7 +59,7 @@ + npy_atomic_load_ptr(const void *obj) { + #ifdef STDC_ATOMICS + _NPY_USING_STD; +- return atomic_load((const _Atomic(void *)*)obj); ++ return atomic_load((_Atomic(void *)*)obj); + #elif defined(MSC_ATOMICS) + #if SIZEOF_VOID_P == 8 + #if defined(_M_X64) || defined(_M_IX86) diff --git a/repos/spack_repo/builtin/packages/py_numpy/package.py b/repos/spack_repo/builtin/packages/py_numpy/package.py index a9902b9900f..a85915f195e 100644 --- a/repos/spack_repo/builtin/packages/py_numpy/package.py +++ b/repos/spack_repo/builtin/packages/py_numpy/package.py @@ -20,9 +20,20 @@ class PyNumpy(PythonPackage): maintainers("adamjstewart", "rgommers") - license("BSD-3-Clause") + license("BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0") version("main", branch="main") + version("2.4.6", sha256="f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda") + version("2.4.5", sha256="ca670567a5683b7c1670ec03e0ddd5862e10934e92a70751d68d7b7b74ca7f9f") + version("2.4.4", sha256="2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0") + version("2.4.3", sha256="483a201202b73495f00dbc83796c6ae63137a9bdade074f7648b3e32613412dd") + version("2.4.2", sha256="659a6107e31a83c4e33f763942275fd278b21d095094044eb35569e86a21ddae") + version("2.4.1", sha256="a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690") + version("2.4.0", sha256="6e504f7b16118198f138ef31ba24d985b124c2c469fe8467007cf30fd992f934") + version("2.3.5", sha256="784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0") + version("2.3.4", sha256="a7d018bfedb375a8d979ac758b120ba846a7fe764911a64465fd87b8729f4a6a") + version("2.3.3", sha256="ddc7c39727ba62b80dfdbedf400d1c10ddfa8eefbd7ec8dcb118be8b56d31029") + version("2.3.2", sha256="e0486a11ec30cdecb53f184d496d1c6a20786c81e55e41640270130056f8ee48") version("2.3.1", sha256="1ec9ae20a4226da374362cca3c62cd753faf2f951440b0e3b98e93c235441d2b") version("2.3.0", sha256="581f87f9e9e9db2cba2141400e160e9dd644ee248788d6f90636eeb8fd9260a6") version("2.2.6", sha256="e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd") @@ -77,73 +88,14 @@ class PyNumpy(PythonPackage): version("1.19.5", sha256="a76f502430dd98d7546e1ea2250a7360c065a5fdea52b2dffe8ae7180909b6f4") version("1.19.4", sha256="141ec3a3300ab89c7f2b0775289954d193cc8edb621ea05f99db9cb181530512") version("1.19.3", sha256="35bf5316af8dc7c7db1ad45bec603e5fb28671beb98ebd1d65e8059efcfd3b72") - version( - "1.19.2", - sha256="0d310730e1e793527065ad7dde736197b705d0e4c9999775f212b03c44a8484c", - deprecated=True, - ) - version( - "1.19.1", - sha256="b8456987b637232602ceb4d663cb34106f7eb780e247d51a260b84760fd8f491", - deprecated=True, - ) - version( - "1.19.0", - sha256="76766cc80d6128750075378d3bb7812cf146415bd29b588616f72c943c00d598", - deprecated=True, - ) - version( - "1.18.5", - sha256="34e96e9dae65c4839bd80012023aadd6ee2ccb73ce7fdf3074c62f301e63120b", - deprecated=True, - ) - version( - "1.18.4", - sha256="bbcc85aaf4cd84ba057decaead058f43191cc0e30d6bc5d44fe336dc3d3f4509", - deprecated=True, - ) - version( - "1.18.3", - sha256="e46e2384209c91996d5ec16744234d1c906ab79a701ce1a26155c9ec890b8dc8", - deprecated=True, - ) - version( - "1.18.2", - sha256="e7894793e6e8540dbeac77c87b489e331947813511108ae097f1715c018b8f3d", - deprecated=True, - ) - version( - "1.18.1", - sha256="b6ff59cee96b454516e47e7721098e6ceebef435e3e21ac2d6c3b8b02628eb77", - deprecated=True, - ) - version( - "1.18.0", - sha256="a9d72d9abaf65628f0f31bbb573b7d9304e43b1e6bbae43149c17737a42764c4", - deprecated=True, - ) - version( - "1.17.5", - sha256="16507ba6617f62ae3c6ab1725ae6f550331025d4d9a369b83f6d5a470446c342", - deprecated=True, - ) - version( - "1.17.4", - sha256="f58913e9227400f1395c7b800503ebfdb0772f1c33ff8cb4d6451c06cabdf316", - deprecated=True, - ) - version( - "1.17.3", - sha256="a0678793096205a4d784bd99f32803ba8100f639cf3b932dc63b21621390ea7e", - deprecated=True, - ) depends_on("c", type="build") depends_on("cxx", type="build") # Based on PyPI wheel availability with default_args(type=("build", "link", "run")): - depends_on("python@3.11:3.13", when="@2.3:") + depends_on("python@3.11:3.14", when="@2.3.2:") + depends_on("python@3.11:3.13", when="@2.3.0:2.3.1") depends_on("python@3.10:3.13", when="@2.1:2.2") depends_on("python@3.9:3.12", when="@1.26:2.0") depends_on("python@3.9:3.11", when="@1.25") @@ -151,22 +103,20 @@ class PyNumpy(PythonPackage): depends_on("python@3.8:3.10", when="@1.22:1.23.1") depends_on("python@:3.10", when="@1.21.2:1.21") depends_on("python@:3.9", when="@1.19.3:1.21.1") - depends_on("python@:3.8", when="@1.17.3:1.19.2") with default_args(type="build"): # Required to use --config-settings depends_on("py-pip@23.1:", when="@1.26:") # Build dependencies (do not include upper bound unless known issues) + depends_on("py-meson-python@0.18:", when="@2.4:") + depends_on("py-meson-python@0.15:", when="@1.26.4:") depends_on("py-cython@3.0.6:", when="@2:") depends_on("py-cython@0.29.34:", when="@1.26:") depends_on("py-cython@0.29.34:2", when="@1.25") depends_on("py-cython@0.29.30:2", when="@1.22.4:1.24") depends_on("py-cython@0.29.24:2", when="@1.21.2:1.22.3") depends_on("py-cython@0.29.21:2", when="@1.19.1:1.21.1") - depends_on("py-cython@0.29.14:2", when="@1.18.1:1.19.0") - depends_on("py-cython@0.29.13:2", when="@1.18.0") - depends_on("py-meson-python@0.15:", when="@1.26.4:") depends_on("blas") depends_on("lapack") @@ -174,14 +124,14 @@ class PyNumpy(PythonPackage): # requirements/test_requirements.txt with default_args(type="test"): depends_on("py-pytest") - depends_on("py-hypothesis", when="@1.19:") + depends_on("py-hypothesis") depends_on("py-typing-extensions@4.2:", when="@1.23:") # Historical dependencies with default_args(type="build"): depends_on("py-pyproject-metadata@0.7.1:", when="@1.26.0:1.26.3") depends_on("py-tomli@1:", when="@1.26.0:1.26.3 ^python@:3.10") - depends_on("py-setuptools@60:", when="@1.26.0:1.26.3 ^python@3.12:") + depends_on("py-setuptools@60:67", when="@1.26.0:1.26.3 ^python@3.12:") depends_on("py-colorama", when="@1.26.0:1.26.3 platform=windows") depends_on("ninja@1.8.2:", when="@1.26.0:1.26.3") depends_on("pkgconfig", when="@1.26.0:1.26.3") @@ -193,6 +143,13 @@ class PyNumpy(PythonPackage): depends_on("py-setuptools@:63", when="@:1.25") depends_on("py-setuptools@:59", when="@:1.22.1") + # Fix support for C++23 compilers (e.g., Apple Clang 17+) + patch( + "https://github.com/numpy/numpy/pull/27361.patch?full_index=1", + sha256="c7565df581e7756965f8a538bc1e50f3f86c35eb68166d05d7d50205f8b1e312", + when="@2.0.0:2.1.1", + ) + # https://github.com/spack/spack/issues/49983 patch( "https://github.com/numpy/numpy/commit/7771624a4a4c662f936e07bbf74dd7d553225f23.patch?full_index=1", @@ -202,12 +159,12 @@ class PyNumpy(PythonPackage): # Add Fujitsu Fortran compiler patch("add_fj_compiler.patch", when="@1.19.3:1.19.5%fj") - patch("add_fj_compiler2.patch", when="@1.19.0:1.19.2%fj") - patch("add_fj_compiler3.patch", when="@1.14.0:1.18.5%fj") patch("check_executables.patch", when="@1.20.0:") patch("check_executables2.patch", when="@1.19.0:1.19.5") - patch("check_executables3.patch", when="@1.16.0:1.18.5") + + # Fix atomic_load const issue + patch("fix-atomic-const.patch", when="@2.1.0: %fj") # Backport bug fix for f2py's define for threading when building with Mingw patch( @@ -240,11 +197,12 @@ def patch(self): ".get(compiler_id, ['-O3'])", ".get(compiler_id, ['-O1'])", "./numpy/core/meson.build", - string=True + string=True, ) # meson.build # https://docs.scipy.org/doc/scipy/dev/toolchain.html#compilers + conflicts("%gcc@:9.2", when="@2.3:", msg="NumPy requires GCC >= 9.3") conflicts("%gcc@:8.3", when="@1.26:", msg="NumPy requires GCC >= 8.4") conflicts("%gcc@:6.4", when="@1.23:", msg="NumPy requires GCC >= 6.5") conflicts("%gcc@:4.7", msg="NumPy requires GCC >= 4.8") @@ -318,7 +276,25 @@ def flag_handler(self, name, flags): return (flags, None, None) - def blas_lapack_pkg_config(self) -> Tuple[str, str]: + def _blas_lapack_pkg_config_mkl(self, spec) -> str: + """Determine pkg-config name from MKL configuration + + Returns: + The string "mkl-dynamic-[i]lp64-[seq,tbb,iomp,gomp]" + """ + lp64_or_ilp64 = "ilp64" if spec.satisfies("+ilp64") else "lp64" + if spec.satisfies("threads=none"): + threads = "seq" + elif spec.satisfies("threads=tbb"): + threads = "tbb" + elif spec.satisfies("threads=openmp"): + threads = "gomp" if spec.satisfies("%gcc") else "iomp" + else: + raise InstallError("Unknown 'threads' variant for the Intel MKL libaray") + + return "mkl-dynamic-" + lp64_or_ilp64 + "-" + threads + + def blas_lapack_pkg_config(self) -> Tuple[str, str, str]: """Convert library names to pkg-config names. Returns: @@ -328,14 +304,23 @@ def blas_lapack_pkg_config(self) -> Tuple[str, str]: blas = spec["blas"].libs.names[0] lapack = spec["lapack"].libs.names[0] - if spec["blas"].name == "intel-oneapi-mkl": - blas = "mkl-dynamic-lp64-seq" + if spec["blas"].name in ["intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"]: + blas = self._blas_lapack_pkg_config_mkl(spec["blas"]) - if spec["lapack"].name == "intel-oneapi-mkl": - lapack = "mkl-dynamic-lp64-seq" + if spec["lapack"].name in ["intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"]: + lapack = self._blas_lapack_pkg_config_mkl(spec["lapack"]) + + if spec["blas"].name == "blis": + blas = "blis" - if spec["blas"].name in ["blis", "amdblis"]: + # Handle AMD BLIS: use multithreaded pkg-config name for @5.1: when threading is enabled + if spec["blas"].name == "amdblis": blas = "blis" + if spec["amdblis"].satisfies("@5.1:") and ( + spec["amdblis"].satisfies("threads=openmp") + or spec["amdblis"].satisfies("threads=pthreads") + ): + blas = "blis-mt" if spec["blas"].name == "cray-libsci": blas = "libsci" @@ -355,19 +340,27 @@ def blas_lapack_pkg_config(self) -> Tuple[str, str]: else: lapack = "armpl-dynamic-lp64-seq" - return blas, lapack + if spec["blas"].satisfies("+ilp64") != spec["lapack"].satisfies("+ilp64"): + raise InstallError( + "Either both blas and lapack must use ilp64 or none: ({0} vs. {1})".format( + blas, lapack + ) + ) + use_ilp64 = spec["blas"].satisfies("+ilp64") + + return blas, lapack, use_ilp64 @when("@1.26:") def config_settings(self, spec, prefix): - blas, lapack = self.blas_lapack_pkg_config() + blas, lapack, use_ilp64 = self.blas_lapack_pkg_config() settings = { "builddir": "build", - "compile-args": f"-j{make_jobs}", "setup-args": { # https://scipy.github.io/devdocs/building/blas_lapack.html "-Dblas": blas, "-Dlapack": lapack, + "-Duse-ilp64": use_ilp64, # https://numpy.org/doc/stable/reference/simd/build-options.html # TODO: get this working in CI # "-Dcpu-baseline": "native", diff --git a/repos/spack_repo/builtin/packages/py_numpy_indexed/package.py b/repos/spack_repo/builtin/packages/py_numpy_indexed/package.py new file mode 100644 index 00000000000..6bbee2edd83 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_numpy_indexed/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyNumpyIndexed(PythonPackage): + """This package contains functionality for indexed operations on numpy ndarrays, + providing efficient vectorized functionality such as grouping and set operations.""" + + homepage = "https://github.com/EelcoHoogendoorn/Numpy_arraysetops_EP" + url = ( + "https://pypi.io/packages/py2.py3/n/numpy_indexed/numpy_indexed-0.3.7-py2.py3-none-any.whl" + ) + + version("0.3.7", sha256="3e9f8f5ca453e49809618b3717b8ce07551b616a4ae43069c46aaad286386a9e") + + depends_on("py-setuptools", type="build") + + depends_on("python@3.5:", type=("build", "run")) + + depends_on("py-numpy", type=("build", "run")) + depends_on("py-future", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_nvidia_dali/package.py b/repos/spack_repo/builtin/packages/py_nvidia_dali/package.py index a974bb398f7..0def1e560dd 100644 --- a/repos/spack_repo/builtin/packages/py_nvidia_dali/package.py +++ b/repos/spack_repo/builtin/packages/py_nvidia_dali/package.py @@ -17,13 +17,54 @@ class PyNvidiaDali(PythonPackage): homepage = "https://developer.nvidia.com/dali" url = "https://developer.download.nvidia.com/compute/redist/" + maintainers("thomas-bouvier") + + # py-nvidia-dali is not available on these platforms, but is depended on by + # py-nvidia-modulus which does not have such conflict statements. skip_version_audit = ["platform=darwin", "platform=windows"] - maintainers("thomas-bouvier") + conflicts("platform=darwin") + conflicts("platform=windows") system = platform.system().lower() arch = platform.machine() if "linux" in system and arch == "x86_64": + version( + "1.53.0-cuda130", + sha256="f8f0f0a6216de4d7ab933c35bbf74c20e849fb042fc816995ab5fe3f437da277", + url="https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda130/nvidia_dali_cuda130-1.53.0-py3-none-manylinux_2_28_x86_64.whl", + expand=False, + ) + version( + "1.53.0-cuda120", + sha256="a4e0390ab173dd93e6e97299131b54e79b7a35fccc2f88fd312f8bce94612537", + url="https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda120/nvidia_dali_cuda120-1.53.0-py3-none-manylinux_2_28_x86_64.whl", + expand=False, + ) + version( + "1.52.0-cuda130", + sha256="37369fb30e9c66f710b29836688c90abc36793bbe757cd3ad699fac76ba07119", + url="https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda130/nvidia_dali_cuda130-1.52.0-py3-none-manylinux_2_28_x86_64.whl", + expand=False, + ) + version( + "1.52.0-cuda120", + sha256="52310878e2c6ced901c8e9fde8f8ac79b65537abc2a290a1cbf1f53f44072206", + url="https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda120/nvidia_dali_cuda120-1.52.0-py3-none-manylinux_2_28_x86_64.whl", + expand=False, + ) + version( + "1.50.0-cuda120", + sha256="3bd42581e6e39d76fa754f56ddb1ccf33195847d6b54b4e0da921adede3d6da8", + url="https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda120/nvidia_dali_cuda120-1.50.0-py3-none-manylinux2014_x86_64.whl", + expand=False, + ) + version( + "1.50.0-cuda110", + sha256="c80237a529ea76b73d6b176918d2e278ff29f89c884c0e1dde185c952511497d", + url="https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda110/nvidia_dali_cuda110-1.50.0-py3-none-manylinux2014_x86_64.whl", + expand=False, + ) version( "1.41.0-cuda120", sha256="240b4135e7c71c5f669d2f2970fa350f7ad1a0a4aab588a3ced578f9b6d7abd9", @@ -121,6 +162,42 @@ class PyNvidiaDali(PythonPackage): expand=False, ) elif "linux" in system and arch == "aarch64": + version( + "1.53.0-cuda130", + sha256="59e4865bb37c616dd01efe7180d7e391a48e6f2fc0128c0f173404a694fb6dbc", + url="https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda130/nvidia_dali_cuda130-1.53.0-py3-none-manylinux_2_28_aarch64.whl", + expand=False, + ) + version( + "1.53.0-cuda120", + sha256="5cae8790dcfaf0ad44a8bfee747127a1f10bed14f577626ef3501cad434ac63c", + url="https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda120/nvidia_dali_cuda120-1.53.0-py3-none-manylinux_2_28_aarch64.whl", + expand=False, + ) + version( + "1.52.0-cuda130", + sha256="2951f4141311583d3e6e3c885a4c560b43b6cb1aa66d4a018e347d541b4fc873", + url="https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda130/nvidia_dali_cuda130-1.52.0-py3-none-manylinux_2_28_aarch64.whl", + expand=False, + ) + version( + "1.52.0-cuda120", + sha256="e99dc0190e436dea29fac78487ee33b8dfe751b528baf176d3f9829c6fc7a971", + url="https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda120/nvidia_dali_cuda120-1.52.0-py3-none-manylinux_2_28_aarch64.whl", + expand=False, + ) + version( + "1.50.0-cuda120", + sha256="734379e8e5f167ec8601117531c6da9c9587bc7ed02e210edcec9fe354e974d6", + url="https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda120/nvidia_dali_cuda120-1.50.0-py3-none-manylinux2014_aarch64.whl", + expand=False, + ) + version( + "1.50.0-cuda110", + sha256="7d4915c376c2e6a919d5b0408c6ece5f102c4093dda969b40513639f5cac91b0", + url="https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda110/nvidia_dali_cuda110-1.50.0-py3-none-manylinux2014_aarch64.whl", + expand=False, + ) version( "1.41.0-cuda120", sha256="5b9eddcd6433244a1c5bec44db71c5dccede7d81f929711c634c4d79f6ce5f81", @@ -218,7 +295,11 @@ class PyNvidiaDali(PythonPackage): expand=False, ) + cuda130_versions = ("@1.52.0-cuda130", "@1.53.0-cuda130") cuda120_versions = ( + "@1.53.0-cuda120", + "@1.52.0-cuda120", + "@1.50.0-cuda120", "@1.41.0-cuda120", "@1.36.0-cuda120", "@1.27.0-cuda120", @@ -229,6 +310,7 @@ class PyNvidiaDali(PythonPackage): "@1.22.0-cuda120", ) cuda110_versions = ( + "@1.50.0-cuda110", "@1.41.0-cuda110", "@1.36.0-cuda110", "@1.27.0-cuda110", @@ -239,15 +321,43 @@ class PyNvidiaDali(PythonPackage): "@1.22.0-cuda110", ) + for v in cuda130_versions: + depends_on("cuda@13", when=v, type=("build", "run")) for v in cuda120_versions: depends_on("cuda@12", when=v, type=("build", "run")) for v in cuda110_versions: depends_on("cuda@11", when=v, type=("build", "run")) - depends_on("python@3.8:3.12", when="@1.36:", type=("build", "run")) - depends_on("python@3.6:3.11", when="@1.23:1.27", type=("build", "run")) - depends_on("python@3.6:3.10", when="@:1.22", type=("build", "run")) - depends_on("py-astunparse@1.6.0:", type=("build", "run")) - depends_on("py-gast@0.3.3:", when="@1.27:", type=("build", "run")) - depends_on("py-gast@0.2.1:0.4.0", when="@:1.26", type=("build", "run")) - depends_on("py-dm-tree", when="@1.27:", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("python@3.9:3.13", when="@1.50:1.52") + depends_on("python@3.8:3.13", when="@1.44:1.49") + depends_on("python@3.8:3.12", when="@1.36:1.43") + depends_on("python@3.6:3.11", when="@1.23:1.27") + depends_on("python@3.6:3.10", when="@:1.22") + depends_on("py-astunparse@1.6.0:1.6.3") + depends_on("py-gast@0.3.3:0.6.0", when="@1.27:") + depends_on("py-gast@0.2.1:0.4.0", when="@:1.26") + depends_on("py-six@1.16:1.17", when="@1.41:") + depends_on("py-dm-tree@:0.1.9", when="@1.27: ^python@3.10:") + depends_on("py-dm-tree@:0.1.8", when="@1.27: ^python@:3.9") + depends_on("py-packaging@:25", when="@1.51:") + depends_on("py-packaging@:24.2", when="@1.45:1.50") + depends_on("py-nvtx", when="@1.52:") + depends_on("py-makefun", when="@1.52:") + # https://github.com/NVIDIA/DALI/blob/main/cmake/Dependencies.common.cmake + depends_on("py-nvidia-nvimagecodec@0.7.0:0.8.0", when="@1.53:") + depends_on("py-nvidia-nvimagecodec@0.6.0:0.7.0", when="@1.52") + depends_on("py-nvidia-nvimagecodec@0.5.0:0.6.0", when="@1.49:1.51") + depends_on("py-nvidia-nvimagecodec@0.4.1:0.5.0", when="@1.46:1.48") + depends_on("py-nvidia-nvimagecodec@0.3.0:0.4.0", when="@1.44:1.45") + depends_on("py-nvidia-nvimagecodec@0.3.0", when="@1.42:1.43") + depends_on("py-nvidia-nvimagecodec@0.2.0", when="@1.36:1.41") + depends_on("py-nvidia-nvjpeg2k", when="@1.46:1.48") + depends_on("py-nvidia-nvtiff", when="@1.46:1.48") + depends_on("py-nvidia-nvcomp@5.1.0.21", when="@1.53") + depends_on("py-nvidia-nvcomp@5.0.0.6", when="@1.52") + depends_on("py-nvidia-nvcomp@4", when="@1.50:1.51") + + def setup_build_environment(self, env: EnvironmentModifications) -> None: + env.set("WITH_DYNAMIC_NVIMGCODEC", "yes") + env.set("WITH_DYNAMIC_NVCOMP", "yes") diff --git a/repos/spack_repo/builtin/packages/py_nvidia_ml_py/package.py b/repos/spack_repo/builtin/packages/py_nvidia_ml_py/package.py index 0b1be130a7e..8d09500c92e 100644 --- a/repos/spack_repo/builtin/packages/py_nvidia_ml_py/package.py +++ b/repos/spack_repo/builtin/packages/py_nvidia_ml_py/package.py @@ -16,6 +16,7 @@ class PyNvidiaMlPy(PythonPackage): license("BSD-2-Clause") + version("13.590.48", sha256="8184d1be52914ac7f0991cd1c0d946c65dc88a840c754cd12c274b77b88760dd") version("12.575.51", sha256="6490e93fea99eb4e966327ae18c6eec6256194c921f23459c8767aee28c54581") version("12.570.86", sha256="0508d4a0c7b6d015cf574530b95a62ed4fc89da3b8b47e1aefe6777db170ec8b") version("12.560.30", sha256="f0254dc7400647680a072ee02509bfd46102b60bdfeca321576d4d4817e7fe97") diff --git a/repos/spack_repo/builtin/packages/py_nvidia_nvcomp/package.py b/repos/spack_repo/builtin/packages/py_nvidia_nvcomp/package.py new file mode 100644 index 00000000000..da1bfcf20a6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_nvidia_nvcomp/package.py @@ -0,0 +1,109 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import platform + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyNvidiaNvcomp(PythonPackage): + """The nvCOMP library provides fast lossless data compression and + decompression using a GPU. Not open-source anymore.""" + + homepage = "https://docs.nvidia.com/cuda/nvcomp/index.html" + git = "https://github.com/NVIDIA/nvcomp" + + skip_version_audit = ["platform=darwin", "platform=windows"] + + maintainers("thomas-bouvier") + + system = platform.system().lower() + arch = platform.machine() + if "linux" in system and arch == "x86_64": + version( + "5.1.0.21-cuda130", + sha256="b8b89f14435529b750f2fab61c35655e234611807e0857d606c77c41807e5d58", + url="https://files.pythonhosted.org/packages/08/e9/a60b0df949c65d758420109c5f2c6223caa2ee9c99f0f489641588ce6dbe/nvidia_nvcomp_cu13-5.1.0.21-py3-none-manylinux_2_28_x86_64.whl", + ) + version( + "5.1.0.21-cuda120", + sha256="87b7dbd4c7e00a9f0272467b4023dfd1e57fb778c7593813c636bdfaf1007d69", + url="https://files.pythonhosted.org/packages/ca/9e/1dffa63e4fa6a789e96dc10dde519bb76e4c009feceb1e05b893fa2197b1/nvidia_nvcomp_cu12-5.1.0.21-py3-none-manylinux_2_28_x86_64.whl", + ) + version( + "5.0.0.6-cuda130", + sha256="91a4e4b1dc15b0f38e54a3353c917086c99c9f415e1ad79a57d5f28d62b68a4d", + url="https://files.pythonhosted.org/packages/56/c9/f8a1b957f949ab4c4dc29e7f56316a2224b92c78cad9a66aeab2b36f8857/nvidia_nvcomp_cu13-5.0.0.6-py3-none-manylinux_2_28_x86_64.whl", + ) + version( + "5.0.0.6-cuda120", + sha256="b5b8a9a3ed33c4a87bb9103fbe59c83b28e4559234447ad40cab11896557c031", + url="https://files.pythonhosted.org/packages/e3/b5/1c3b2493dbcd0f436715b3faba4bef4747743dbb1828ce7823e61423863c/nvidia_nvcomp_cu12-5.0.0.6-py3-none-manylinux_2_28_x86_64.whl", + ) + version( + "5.0.0.6-cuda110", + sha256="816ed4c53718cd9de2e25e4cab8b20b219ceb2e0712c4452c7225c6eec83bd6b", + url="https://files.pythonhosted.org/packages/3c/3a/572e3881d86d227d2f274306c4996543a55f1876b03f0934e3f65f3ddd5e/nvidia_nvcomp_cu11-5.0.0.6-py3-none-manylinux_2_28_x86_64.whl", + ) + version( + "4.2.0.14-cuda120", + sha256="0d9bc07bf63aeae2e9877d34c8aab6781cf26efa8d2fec05af8b0ec58ca1fd41", + url="https://files.pythonhosted.org/packages/e5/58/371b6df7e9a86921324f1cc780a86c3e47ecbe52f4cc1148efceb4f102cf/nvidia_nvcomp_cu12-4.2.0.14-py3-none-manylinux_2_28_x86_64.whl", + ) + version( + "4.2.0.14-cuda110", + sha256="cd848d3d340156a51da38e1d59d686dd38080666b012d6c01f8c34a3c0a010dd", + url="https://files.pythonhosted.org/packages/4d/9b/d5d42fd00b74b61e8208a53001a8c4af9724114c7a81fe88463fa994522f/nvidia_nvcomp_cu11-4.2.0.14-py3-none-manylinux_2_28_x86_64.whl", + ) + elif "linux" in system and arch == "aarch64": + version( + "5.1.0.21-cuda130", + sha256="e43bdd25ee4265ee5b0e30b2b20b2a88e5249864e1f7a69607a05fc8249152fa", + url="https://files.pythonhosted.org/packages/44/93/cadd09eabc687450e0dccecd793d55b3bfd055529a1fb4b05e7bf5767e90/nvidia_nvcomp_cu13-5.1.0.21-py3-none-manylinux_2_28_aarch64.whl", + ) + version( + "5.1.0.21-cuda120", + sha256="3ea5a6eba548daebf9dd1d86ee58acfff0fd89cb7c6ee76479cdb07d89cfa871", + url="https://files.pythonhosted.org/packages/19/59/18b6f4aac53942e30bcd81d7ec3e052dce364dbb8e4c6ad7397c854e02c1/nvidia_nvcomp_cu12-5.1.0.21-py3-none-manylinux_2_28_aarch64.whl", + ) + version( + "5.0.0.6-cuda130", + sha256="13910a5e5dbf7d4ce21c807c801a1f10c261b9a2d538896e93b736c21d7d6b1d", + url="https://files.pythonhosted.org/packages/a3/86/e5eccb10e8be41501dfb7191a6b2cff32558d0bba3370ae67f37561caf43/nvidia_nvcomp_cu13-5.0.0.6-py3-none-manylinux_2_28_aarch64.whl", + ) + version( + "5.0.0.6-cuda120", + sha256="7af1093e866ee7a468753e3df94327fd63ba253dd119a2c04cd18df1761f4754", + url="https://files.pythonhosted.org/packages/8b/96/530b265e36e23e1e8dd88c864d5479bfd116d9c6cd78c6e3bf91cdf68c62/nvidia_nvcomp_cu12-5.0.0.6-py3-none-manylinux_2_28_aarch64.whl", + ) + version( + "5.0.0.6-cuda110", + sha256="99eb163d389cf06f62978ecfcd1cea427fb3e928b23bd56cf76d8287944ef908", + url="https://files.pythonhosted.org/packages/b7/08/07922c747e404df408d0e7637394d110607be8c11291f15be9168b833fee/nvidia_nvcomp_cu11-5.0.0.6-py3-none-manylinux_2_28_aarch64.whl", + ) + version( + "4.2.0.14-cuda120", + sha256="bd67b77f7d18daa60757a3400444bf8cc6056dc4d806e22b3a13561f26db692c", + url="https://files.pythonhosted.org/packages/28/ae/21b68910e544ab4476168a9c439f0a008a64c2672136ba619e0723cbd13e/nvidia_nvcomp_cu12-4.2.0.14-py3-none-manylinux_2_28_aarch64.whl", + ) + version( + "4.2.0.14-cuda110", + sha256="84cef688a27d45bf803e54665ee88cc55c3fd9039106d7fee2e2b994a44c0660", + url="https://files.pythonhosted.org/packages/33/3b/b2664b92a45be3cade6ca033d743041e593cc510ea6f76ab49c28fc71794/nvidia_nvcomp_cu11-4.2.0.14-py3-none-manylinux_2_28_aarch64.whl", + ) + + cuda130_versions = ("@5.1.0.21-cuda130", "@5.0.0.6-cuda130") + cuda120_versions = ("@5.1.0.21-cuda120", "@5.0.0.6-cuda120", "@4.2.0.14-cuda120") + cuda110_versions = ("@5.0.0.6-cuda110", "@4.2.0.14-cuda110") + + for v in cuda130_versions: + depends_on("cuda@13", when=v, type=("build", "run")) + for v in cuda120_versions: + depends_on("cuda@12", when=v, type=("build", "run")) + for v in cuda110_versions: + depends_on("cuda@11", when=v, type=("build", "run")) + + depends_on("python@3.8:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_nvidia_nvimagecodec/package.py b/repos/spack_repo/builtin/packages/py_nvidia_nvimagecodec/package.py new file mode 100644 index 00000000000..51671bc3d72 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_nvidia_nvimagecodec/package.py @@ -0,0 +1,199 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import platform + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyNvidiaNvimagecodec(PythonPackage): + """A nvImageCodec library of GPU- and CPU- accelerated codecs featuring a unified interface.""" + + homepage = "https://docs.nvidia.com/cuda/nvimagecodec/index.html" + git = "https://github.com/NVIDIA/nvImageCodec.git" + + skip_version_audit = ["platform=darwin", "platform=windows"] + + maintainers("thomas-bouvier") + + system = platform.system().lower() + arch = platform.machine() + if "linux" in system and arch == "x86_64": + version( + "0.7.0.11-cuda130", + sha256="6075220b7ece40b5d975969f423e4ff9bc6d02bae4ac64ff8c8bf67d1234b12e", + url="https://files.pythonhosted.org/packages/0d/ab/e23d570d282394188882526f65a8719bc03e10ce11bc398ea6d81ed5d480/nvidia_nvimgcodec_cu13-0.7.0.11-py3-none-manylinux_2_28_x86_64.whl", + ) + version( + "0.7.0.11-cuda120", + sha256="32d3457859c5784e4c0f6a2f56b6a9afec8fe646cec1cbe4bb5c320948d92dfe", + url="https://files.pythonhosted.org/packages/73/b4/f06528ebcb82da84f4a96efe7a210c277767cb86ad2f61f8b1a17d17f251/nvidia_nvimgcodec_cu12-0.7.0.11-py3-none-manylinux_2_28_x86_64.whl", + ) + version( + "0.6.1.37-cuda120", + sha256="3b72bc65cfd113ef8a599082ca7f80ef53df0577f13e8489d065ba31d2df78f7", + url="https://files.pythonhosted.org/packages/13/f4/36906056947347350a4b7441f7431355ff3fbc747c4ae3f9ec9d8e18cffc/nvidia_nvimgcodec_cu12-0.6.1.37-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.6.1.37-cuda110", + sha256="8d104649aaa7aec4115afd5bea052613b26b6607436dace480bd6823f2f3bd04", + url="https://files.pythonhosted.org/packages/91/1b/a7a2d2317abf9d04a5e2f2152ae4924e945bcd6235a2d72ae0d5f925e7c7/nvidia_nvimgcodec_cu11-0.6.1.37-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.5.0.13-cuda120", + sha256="24cf0a759b1b02a6c3c0aedf8bf6602643f74c4c6df68c4b1c3c4ec1d48d71b0", + url="https://files.pythonhosted.org/packages/f0/6d/1c9919912ee97a4f52674f1c2deec7ab80df8fdd9a8b76f8ed4d75ebf799/nvidia_nvimgcodec_cu12-0.5.0.13-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.5.0.13-cuda110", + sha256="d82ccf33921a35d965e975bfcf7f64472c804cb0f734a8fe692d9dca7e1e8643", + url="https://files.pythonhosted.org/packages/60/69/d26efdefee269e87c034b229d94bf878ec033fca1b7cd4644395e706cf38/nvidia_nvimgcodec_cu11-0.5.0.13-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.4.1.21-cuda120", + sha256="3a4c64ea5cf832e908da8a2ff70e77115bcfa2f9b046dbaf5188319a91451220", + url="https://files.pythonhosted.org/packages/c0/c5/5b5fbd654aca6fc393766df0f15b7e078c982248a6b6fe5a35170ac898f0/nvidia_nvimgcodec_cu12-0.4.1.21-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.4.1.21-cuda110", + sha256="7c6ad5d717dd80d274caa3773c698adbe2f053a10dbe819d15494ce72f2fbdb7", + url="https://files.pythonhosted.org/packages/31/f7/1982f473a4ace1015d711a106acfa710ec218cdcb79d6dd9de9778e6f052/nvidia_nvimgcodec_cu11-0.4.1.21-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.4.0.9-cuda120", + sha256="254b594effa60c94e79bdcb379276fd66b1b56085a0c661902b211a263c50295", + url="https://files.pythonhosted.org/packages/38/31/3425e3daaabd2deea9754a533876a8c8c957244e3ab574287bd9d6a3744c/nvidia_nvimgcodec_cu12-0.4.0.9-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.4.0.9-cuda110", + sha256="ea68bd59deebd792b9f0590e53b7f1d4b20e4212c5efee13455c1eade0bd0602", + url="https://files.pythonhosted.org/packages/ac/7e/23f99745a626a0ba57ab1563e554e170081a3fcf24858cdc1f113fb2a9cd/nvidia_nvimgcodec_cu11-0.4.0.9-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.3.0.5-cuda120", + sha256="b038b17223bb09b70c846244e7a54ad4147da29f169ea5a95a3b9108e9e33b89", + url="https://files.pythonhosted.org/packages/67/6d/749eb173622a0f269c967abc0f946970899e90970427b1b8446e8b7ba8d1/nvidia_nvimgcodec_cu12-0.3.0.5-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.3.0.5-cuda110", + sha256="f32bcaeff6f543234ddda85390928c6eb7944abe7f6c03ea97eccdf170f46b67", + url="https://files.pythonhosted.org/packages/80/ba/12747756ff654f7c248cfc0bdb21dab385a2ef8dfd620803a73a1c9c59ce/nvidia_nvimgcodec_cu11-0.3.0.5-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.2.0.7-cuda120", + sha256="4f3987f12291f6da47988e7c98664056ed5b4a9e3068ebe0d03a3646405e2437", + url="https://files.pythonhosted.org/packages/74/27/614bcb521603e4ff39086a20bc9972cd861286375b9dc067307f21800789/nvidia_nvimgcodec_cu12-0.2.0.7-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.2.0.7-cuda110", + sha256="c77c7bd7ca3033dc7a84f1657312b4f2d2046ac7c82b7dc9c229b9f2bcf10aea", + url="https://files.pythonhosted.org/packages/1d/cd/a8f5f21b07bc76eb7fdc1a0dbb644e8f8289ca44ec402ade2cdcc4716f12/nvidia_nvimgcodec_cu11-0.2.0.7-py3-none-manylinux2014_x86_64.whl", + ) + elif "linux" in system and arch == "aarch64": + version( + "0.7.0.11-cuda130", + sha256="65ee61c93aaed80e21dc5db428bc7641fca6dcc319c166835a961359f7703736", + url="https://files.pythonhosted.org/packages/55/04/09d25e7af95cfd2a946326ad9276623c1ef6a0063dd85e03296074539ee2/nvidia_nvimgcodec_cu13-0.7.0.11-py3-none-manylinux_2_28_aarch64.whl", + ) + version( + "0.7.0.11-cuda120", + sha256="52d834be8122bb5b8fc3151cc3bedb95368b3e7ac76af0c4561772ab2a847b2b", + url="https://files.pythonhosted.org/packages/63/48/74d33dd126f84a4212480e2cf07504f457b5bae5acd33c0f6bf839ea17d4/nvidia_nvimgcodec_cu12-0.7.0.11-py3-none-manylinux_2_28_aarch64.whl", + ) + version( + "0.6.1.37-cuda120", + sha256="20067a5006be254afb363b8dc25ac793d935b012b4fd230102f977cbbff31fb3", + url="https://files.pythonhosted.org/packages/8e/61/f8439c719c7c97d7444ba4f2d9d386ebabab8566518e6a58228543a3421f/nvidia_nvimgcodec_cu12-0.6.1.37-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.6.1.37-cuda110", + sha256="cb1753e4fae01b1ed95fb7196a8c450e1cc97079b58712a8c69f249831455a8a", + url="https://files.pythonhosted.org/packages/16/40/aa091d0954bc031a0db4ffa20d9001d9d725ce77c94b4ca3e14222398945/nvidia_nvimgcodec_cu11-0.6.1.37-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.5.0.13-cuda120", + sha256="d76fadc2ed0f9075871627e45f2592c7807a0e944a0505afc21f87ccceb75caa", + url="https://files.pythonhosted.org/packages/28/9a/f6c9105cb045f52af2096417ce92e7e8fba4d24ffe24d2cc82eb9bbe5534/nvidia_nvimgcodec_cu12-0.5.0.13-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.5.0.13-cuda110", + sha256="0cb46e2032e2ae91afd48ba65b4a990c786927969110119a611859f6022bc417", + url="https://files.pythonhosted.org/packages/58/84/2ed139ffa8961549acf168a554187b3cda9820076d687ede9ed95cd458be/nvidia_nvimgcodec_cu11-0.5.0.13-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.4.1.21-cuda120", + sha256="9bc771f81407e3b02b258161d7d13281f4abf90d1407389edfd5699389dacb01", + url="https://files.pythonhosted.org/packages/d3/63/8f3da84deda05c554681b64a4752b63494c1d90d6ad5f3ff4f52d0fd6a70/nvidia_nvimgcodec_cu12-0.4.1.21-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.4.1.21-cuda110", + sha256="983a47a52801b085478549426f7758bd4ee866c47fc1acbe7636a43186c88ea5", + url="https://files.pythonhosted.org/packages/f8/45/b20e8ca19c469d7f4e631b73ffc37e0ff33570ded2804a8914e851ebfddf/nvidia_nvimgcodec_cu11-0.4.1.21-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.4.0.9-cuda120", + sha256="a3d853ea6b242929b3c18554527618bb2f03ba3a153090d0076b7b74c6de602c", + url="https://files.pythonhosted.org/packages/6b/ab/72011d2e45d7e21dcaaa6988c971f8d8480887703f1c3ff0c4358820ee2c/nvidia_nvimgcodec_cu12-0.4.0.9-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.4.0.9-cuda110", + sha256="133a8896e37e0c69940f2f19b0167c6346e0819d35518b02134aa074c30b2be7", + url="https://files.pythonhosted.org/packages/6b/e9/8316f9d3b11a5c0a3e350bf8acd6a7625939787159113e3a6e30b742cad6/nvidia_nvimgcodec_cu11-0.4.0.9-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.3.0.5-cuda120", + sha256="f8a4524913828ac07d80f9572c8e8b74d088698451ba5240ea1afb06bd29fe73", + url="https://files.pythonhosted.org/packages/09/e0/71abde334ac4fb0506d2ad6064b08b077f42bece682bda8ae55d45f1386f/nvidia_nvimgcodec_cu12-0.3.0.5-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.3.0.5-cuda110", + sha256="06936e531d5671644db7a7b88a244188ff19aba1194c822062936d464a542d89", + url="https://files.pythonhosted.org/packages/2f/0c/9383260a99552f076dc344ec7b141c2cfb2afe47f19f5359a9c359d6a8bf/nvidia_nvimgcodec_cu11-0.3.0.5-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.2.0.7-cuda120", + sha256="ec2a190598f49b328cae3015651d9cea351e5acf770231fc0027ec459dfd3e79", + url="https://files.pythonhosted.org/packages/a2/17/adc558478077fdc372db916311a6b94b819f4b23877abeb73eff23d342c9/nvidia_nvimgcodec_cu12-0.2.0.7-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.2.0.7-cuda110", + sha256="909f96878561f6cfe0099f6cc26c57f3295de2ebfd0334022e0b29aab75e250b", + url="https://files.pythonhosted.org/packages/c8/9f/1cdcefbc5f916440b4ed92a7141914cc45da154ffa9c9ae9c5fa0e6359f2/nvidia_nvimgcodec_cu11-0.2.0.7-py3-none-manylinux2014_aarch64.whl", + ) + + variant("nvjpeg2k", default=True, description="Enable NVJPEG2K support") + variant("nvtiff", default=True, description="Enable NVTIFF support") + + cuda130_versions = ("@0.7.0.11-cuda130",) + cuda120_versions = ( + "@0.7.0.11-cuda120", + "@0.6.1.37-cuda120", + "@0.5.0.13-cuda120", + "@0.4.1.21-cuda120", + "@0.4.0.9-cuda120", + "@0.3.0.5-cuda120", + "@0.2.0.7-cuda120", + ) + cuda110_versions = ( + "@0.6.1.37-cuda110", + "@0.5.0.13-cuda110", + "@0.4.1.21-cuda110", + "@0.4.0.9-cuda110", + "@0.3.0.5-cuda110", + "@0.2.0.7-cuda110", + ) + + for v in cuda130_versions: + depends_on("cuda@13", when=v, type=("build", "run")) + for v in cuda120_versions: + depends_on("cuda@12", when=v, type=("build", "run")) + for v in cuda110_versions: + depends_on("cuda@11", when=v, type=("build", "run")) + + depends_on("python@3.8:", when="@0.5:", type=("build", "run")) + + depends_on("py-nvidia-nvjpeg2k", type=("build", "run"), when="+nvjpeg2k") + depends_on("py-nvidia-nvtiff", type=("build", "run"), when="+nvtiff") diff --git a/repos/spack_repo/builtin/packages/py_nvidia_nvjpeg2k/package.py b/repos/spack_repo/builtin/packages/py_nvidia_nvjpeg2k/package.py new file mode 100644 index 00000000000..c974645ff48 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_nvidia_nvjpeg2k/package.py @@ -0,0 +1,87 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import platform + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyNvidiaNvjpeg2k(PythonPackage): + """NVIDIA nvJPEG2000 native runtime libraries""" + + homepage = "https://docs.nvidia.com/cuda/nvjpeg2000/index.html" + + skip_version_audit = ["platform=darwin", "platform=windows"] + + maintainers("thomas-bouvier") + + system = platform.system().lower() + arch = platform.machine() + if "linux" in system and arch == "x86_64": + version( + "0.9.1.47-cuda130", + sha256="e9e943e70103f595ee47ce0a268bd4683498983b581fdb1a296c918c6045138b", + url="https://files.pythonhosted.org/packages/ec/f8/9b15332114f38f65b0887b683909ccaebcd52bbadd54e6bbd127a9e90b17/nvidia_nvjpeg2k_cu13-0.9.1.47-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.9.1.47-cuda120", + sha256="6672c85e47ab61ffe3d19da8a41fd597155852e6e219ddc90a133623b54f7818", + url="https://files.pythonhosted.org/packages/85/91/41abf44089ceb8b29479cdef2ca952277cc6667d40affedd39c3f1744d7e/nvidia_nvjpeg2k_cu12-0.9.1.47-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.9.0.43-cuda110", + sha256="970518cfe3f345eb263df8c0b3e9c403800a353406ca36e75d7b1f6a58fb25d8", + url="https://files.pythonhosted.org/packages/41/83/7e975b58c82551e785eb2fb096f9f4dbb036987278da40bfe9f347ad53c4/nvidia_nvjpeg2k_cu11-0.9.0.43-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.8.1.40-cuda120", + sha256="326518da11c4b037a0ae2189ec2f7d317c8bd5ddd616413e45da0faa31bd3399", + url="https://files.pythonhosted.org/packages/fe/3c/7d6ba35508f5cbf6d25149076355188c8ea8303768b9a8272150a38c8063/nvidia_nvjpeg2k_cu12-0.8.1.40-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.8.1.40-cuda110", + sha256="47b5f2f3217b5bf9935d013152df6e0412d11741bfee81419bdb4ad52d68aeb7", + url="https://files.pythonhosted.org/packages/9d/15/88dbe4f0ca93a8e5d381a993f384e7eb929d51476fcc905b848b14a2bcd7/nvidia_nvjpeg2k_cu11-0.8.1.40-py3-none-manylinux2014_x86_64.whl", + ) + elif "linux" in system and arch == "aarch64": + version( + "0.9.1.47-cuda130", + sha256="bb58118a3e1d2fd4d640123e92c60ac01a9db5f09c46d9df2eee5f916c5280c8", + url="https://files.pythonhosted.org/packages/24/64/024dd7dfb08f536413c1d7a3ccf5609bf01a1b1760a6e7ac80e8edf48df6/nvidia_nvjpeg2k_cu13-0.9.1.47-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.9.1.47-cuda120", + sha256="f6787aed8f9d0c839ea4e0ae190af90bcc71a9a6b4e3965d5b67c22a00f58714", + url="https://files.pythonhosted.org/packages/84/0b/421625f754862b893c2f487090b4b6b86337801451f0623cda9d21d111b4/nvidia_nvjpeg2k_cu12-0.9.1.47-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.9.0.43-cuda110", + sha256="63a642e0b318cd0ddbde5083155400d97005cee7acb8e47f36f8920124581338", + url="https://files.pythonhosted.org/packages/e5/a5/f7c07636d13bf6feac93bff247aad64946ffd2ba56034aebf833aae50bcd/nvidia_nvjpeg2k_cu11-0.9.0.43-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.8.1.40-cuda120", + sha256="63dd81d37b0826ad9d1086957815836a9dce45b3cbdb502b5c3566fba8cb4141", + url="https://files.pythonhosted.org/packages/8c/5a/8618385bb6e1d5f95f59de3a7fe22ed9b3a2c439c541589b7001345ac0aa/nvidia_nvjpeg2k_cu12-0.8.1.40-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.8.1.40-cuda110", + sha256="5bc4a20f9b00097cfcbbf6d4905668717db5d381425144b06b9fce957b3a793e", + url="https://files.pythonhosted.org/packages/4f/85/1daca97fbef54307691dde4bbd94b654a0535d3cdff1cb4a75adecc3f2be/nvidia_nvjpeg2k_cu11-0.8.1.40-py3-none-manylinux2014_aarch64.whl", + ) + + cuda130_versions = ("@0.9.1.47-cuda130",) + cuda120_versions = ("@0.9.1.47-cuda120", "@0.8.1.40-cuda120") + cuda110_versions = ("@0.9.0.43-cuda110", "@0.8.1.40-cuda110") + + for v in cuda130_versions: + depends_on("cuda@13", when=v, type=("build", "run")) + for v in cuda120_versions: + depends_on("cuda@12", when=v, type=("build", "run")) + for v in cuda110_versions: + depends_on("cuda@11", when=v, type=("build", "run")) + + depends_on("python@3.8:", when="@0.8:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_nvidia_nvtiff/package.py b/repos/spack_repo/builtin/packages/py_nvidia_nvtiff/package.py new file mode 100644 index 00000000000..5eeffb46dfb --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_nvidia_nvtiff/package.py @@ -0,0 +1,77 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import platform + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyNvidiaNvtiff(PythonPackage): + """NVIDIA nvTIFF native runtime libraries""" + + homepage = "https://docs.nvidia.com/cuda/nvtiff/index.html" + + skip_version_audit = ["platform=darwin", "platform=windows"] + + maintainers("thomas-bouvier") + + system = platform.system().lower() + arch = platform.machine() + if "linux" in system and arch == "x86_64": + version( + "0.6.0.78-cuda130", + sha256="b49d9cd2e33d389fa2aeb00bffb1c4a22e24b47de498ebfca367de9262181f5a", + url="https://files.pythonhosted.org/packages/e8/7e/0e5f6e0cad026f0422db016d325aa9b9026d133507a3baacce31c6c22ad3/nvidia_nvtiff_cu13-0.6.0.78-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.6.0.78-cuda120", + sha256="b48517578de6f1a6e806e00ef0da6d673036957560efbe9fa2934707d5d18c00", + url="https://files.pythonhosted.org/packages/62/4b/24805e9c56936dd57a1830b65b53234853f429cea5edbcbfdf853ceebdcf/nvidia_nvtiff_cu12-0.6.0.78-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.5.0.67-cuda120", + sha256="97787f710beea7a7990b48d1dde57318e82716bdea61407db6eaced8ac511dc6", + url="https://files.pythonhosted.org/packages/81/67/c503df80ea3c2384bc8ed177164a1339ff49180835de01aa6597cfcad3a0/nvidia_nvtiff_cu12-0.5.0.67-py3-none-manylinux2014_x86_64.whl", + ) + version( + "0.5.0.67-cuda110", + sha256="42881265c130cd62c031c154cfe108e5fb51c515b329dab627c60c46a4cbf764", + url="https://files.pythonhosted.org/packages/2e/13/27a18d88ed9001a98c80d3ffb1f0eec7fb77e277b7468421dc37ddebed6f/nvidia_nvtiff_cu11-0.5.0.67-py3-none-manylinux2014_x86_64.whl", + ) + elif "linux" in system and arch == "aarch64": + version( + "0.6.0.78-cuda130", + sha256="d33120be5a31b09253d06cdfb63a3b4e60998b04e2b031049348715751e449e8", + url="https://files.pythonhosted.org/packages/52/5a/b641ea5de0e6b6838b9b75ac00ca57e3d8a5b7ac2df8a4b890a2da7407c9/nvidia_nvtiff_cu13-0.6.0.78-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.6.0.78-cuda120", + sha256="9193a46eaef2d52a92178c34e2404f621b581d651d2c7ab2d83c24fee6fcc136", + url="https://files.pythonhosted.org/packages/41/19/9529fbda1e7a24b45649c9bc86cf6490d5b53f63e6b17d851f1528ff8380/nvidia_nvtiff_cu12-0.6.0.78-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.5.0.67-cuda120", + sha256="cdaeff98d909d8ee885f1ab97da8cab06b7c1f1159f4da478f0afd21ac603155", + url="https://files.pythonhosted.org/packages/e9/27/d5528e059ddc6a2ae5f7df0bb602d96d0593b0c585597d04c987a5240da9/nvidia_nvtiff_cu12-0.5.0.67-py3-none-manylinux2014_aarch64.whl", + ) + version( + "0.5.0.67-cuda110", + sha256="d043962a7c24085a85e93285f314a8c90bdbefef9ed48b74f943c02b3ce3f47e", + url="https://files.pythonhosted.org/packages/1a/b2/3b470a42ab20920f40a6138cc345379e412bfee0d58a989fb26bc6b15581/nvidia_nvtiff_cu11-0.5.0.67-py3-none-manylinux2014_aarch64.whl", + ) + + cuda130_versions = ("@0.6.0.78-cuda130",) + cuda120_versions = ("@0.6.0.78-cuda120", "@0.5.0.67-cuda120") + cuda110_versions = ("@0.5.0.67-cuda110",) + + for v in cuda130_versions: + depends_on("cuda@13", when=v, type=("build", "run")) + for v in cuda120_versions: + depends_on("cuda@12", when=v, type=("build", "run")) + for v in cuda110_versions: + depends_on("cuda@11", when=v, type=("build", "run")) + + depends_on("python@3.8:", when="@0.5:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_nvidia_physicsnemo/package.py b/repos/spack_repo/builtin/packages/py_nvidia_physicsnemo/package.py new file mode 100644 index 00000000000..d10788e2191 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_nvidia_physicsnemo/package.py @@ -0,0 +1,40 @@ +# 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 PyNvidiaPhysicsnemo(PythonPackage): + """A deep learning framework for AI-driven multi-physics systems""" + + homepage = "https://github.com/NVIDIA/physicsnemo" + pypi = "nvidia-physicsnemo/nvidia_physicsnemo-1.3.0-py3-none-any.whl" + # Work-around URL until the CI version check can rely on the URL related to a PyPi wheel. + # ref. https://github.com/spack/spack-packages/pull/2400/changes/a3e13de4f218e3fb6951e8b89dfa914be704313f + url = "https://pypi.io/packages/py3/n/nvidia-physicsnemo/nvidia_physicsnemo-1.3.0-py3-none-any.whl" + + maintainers("LydDeb") + + license("Apache-2.0", checked_by="LydDeb") + + version("1.3.0", sha256="404b5a17cdc00bcc8a2b003304695e4cbd8fff7fc7cca7f140988569c690f6b9") + + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-setuptools@77.0.3:", type=("build")) + depends_on("py-certifi@2023.7.22:", type=("build", "run")) + depends_on("py-einops@0.8.0:", type=("build", "run")) + depends_on("py-fsspec@2023.1.0:", type=("build", "run")) + depends_on("py-numpy@1.22.4:", type=("build", "run")) + depends_on("py-onnx@1.14.0:", type=("build", "run")) + depends_on("py-packaging@24.2:", type=("build", "run")) + depends_on("py-requests@2.32.2:", type=("build", "run")) + depends_on("py-s3fs@2023.5.0:", type=("build", "run")) + depends_on("py-timm@1.0.0:", type=("build", "run")) + depends_on("py-torch@2.4.0:", type=("build", "run")) + depends_on("py-tqdm@4.60.0:", type=("build", "run")) + depends_on("py-treelib@1.2.5:", type=("build", "run")) + depends_on("py-xarray@2023.1.0:", type=("build", "run")) + depends_on("py-zarr@2.14.2:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_oauthlib/package.py b/repos/spack_repo/builtin/packages/py_oauthlib/package.py index 3db188ed78b..2fcdb01e8b4 100644 --- a/repos/spack_repo/builtin/packages/py_oauthlib/package.py +++ b/repos/spack_repo/builtin/packages/py_oauthlib/package.py @@ -27,7 +27,7 @@ class PyOauthlib(PythonPackage): variant( "extras", - when="@:3.1.1", + when="@:3.1.0", default=True, description="Build with pyjwt, blinker, cryptography", ) @@ -42,14 +42,11 @@ class PyOauthlib(PythonPackage): depends_on("py-setuptools", type="build") depends_on("py-pyjwt@1.0.0:", type=("build", "run"), when="+extras") - depends_on("py-pyjwt@2.0.0:2", type=("build", "run"), when="+extras @3.1.1:") depends_on("py-pyjwt@2.0.0:2", type=("build", "run"), when="+signedtoken @3.2.1:") depends_on("py-blinker", type=("build", "run"), when="+extras") depends_on("py-blinker", type=("build", "run"), when="+signals") - depends_on("py-blinker@1.4:", type=("build", "run"), when="+extras @3.1.1:") depends_on("py-blinker@1.4:", type=("build", "run"), when="+signals @3.2.1:") depends_on("py-cryptography", type=("build", "run"), when="+extras") - depends_on("py-cryptography@3.0.0:3", type=("build", "run"), when="+extras @3.1.1") depends_on("py-cryptography@3.0.0:", type=("build", "run"), when="+rsa @3.2.1:") depends_on("py-cryptography@3.0.0:", type=("build", "run"), when="+signedtoken @3.2.1:") depends_on("python@2.7:2.8,3.4:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_ocp_models/package.py b/repos/spack_repo/builtin/packages/py_ocp_models/package.py deleted file mode 100644 index 12e55b0eea7..00000000000 --- a/repos/spack_repo/builtin/packages/py_ocp_models/package.py +++ /dev/null @@ -1,46 +0,0 @@ -# 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 PyOcpModels(PythonPackage): - """Reference implementation for the MLPerf HPC OpenCatalyst DimeNet++ benchmark""" - - homepage = "https://opencatalystproject.org/" - git = "https://github.com/mlcommons/hpc.git" - - version("main", branch="main") - - tags = ["proxy-app"] - - depends_on("python@3.8", type=("build", "run")) - depends_on("py-ase@3.21", type=("build", "run")) - depends_on("py-matplotlib@3.3", type=("build", "run")) - depends_on("py-pre-commit@2.10", type=("build", "run")) - depends_on("py-pymatgen@2020.12.31", type=("build", "run")) - depends_on("py-torch@1.8.1", type=("build", "run")) - depends_on("py-pyyaml@5.4", type=("build", "run")) - depends_on("py-tensorboard@2.4", type=("build", "run")) - depends_on("py-tqdm@4.58", type=("build", "run")) - depends_on("py-sphinx", type=("build", "run")) - depends_on("py-nbsphinx", type=("build", "run")) - depends_on("pandoc", type=("build", "run")) - depends_on("py-black", type=("build", "run")) - depends_on("py-torch", type=("build", "run")) - depends_on("py-torch-scatter", type=("build", "run")) - depends_on("py-torch-cluster", type=("build", "run")) - depends_on("py-torch-sparse", type=("build", "run")) - depends_on("py-torch-spline-conv", type=("build", "run")) - depends_on("py-demjson", type=("build", "run")) - depends_on("py-pillow", type=("build", "run")) - depends_on("py-torch-geometric", type=("build", "run")) - depends_on("py-wandb", type=("build", "run")) - depends_on("py-lmdb@1.1.1", type=("build", "run")) - depends_on("py-pytest@6.2.2", type=("build", "run")) - depends_on("py-submitit", type=("build", "run")) - depends_on("py-sphinx-rtd-theme", type=("build", "run")) - - build_directory = "open_catalyst" diff --git a/repos/spack_repo/builtin/packages/py_okada_wrapper/package.py b/repos/spack_repo/builtin/packages/py_okada_wrapper/package.py index 4340d7afa54..1fe4cfe53a7 100644 --- a/repos/spack_repo/builtin/packages/py_okada_wrapper/package.py +++ b/repos/spack_repo/builtin/packages/py_okada_wrapper/package.py @@ -17,15 +17,20 @@ class PyOkadaWrapper(PythonPackage): license("MIT", checked_by="snehring") + version("24.6.15", sha256="c19bacfc4336c59d94e3ece3ed378fe2ae3496a165412c47e08164fe8b66f307") version( "18.12.07.3", sha256="ee296ad6e347c8df400f6f3d1badc371925add8d1af33854634c2fe1a2b2c855" ) + depends_on("c", type="build") depends_on("fortran", type="build") # generated + depends_on("py-meson-python", type="build", when="@24.6.15:") + # https://github.com/tbenthompson/okada_wrapper/issues/8 - depends_on("python@3:3.11", type=("build", "run")) + depends_on("python@3:3.11", type=("build", "run"), when="@18.12.07.3") + depends_on("python@3.8:", type=("build", "run"), when="@24.6.15") - depends_on("py-setuptools", type="build") + depends_on("py-setuptools", type="build", when="@18.12.07.3") depends_on("py-numpy", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_olmoearth_pretrain_minimal/package.py b/repos/spack_repo/builtin/packages/py_olmoearth_pretrain_minimal/package.py new file mode 100644 index 00000000000..52c574da82b --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_olmoearth_pretrain_minimal/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 PyOlmoearthPretrainMinimal(PythonPackage): + """Minimal package for loading and initializing OlmoEarth models.""" + + homepage = "https://github.com/allenai/olmoearth_pretrain_minimal" + pypi = "olmoearth_pretrain_minimal/olmoearth_pretrain_minimal-0.0.2.tar.gz" + + maintainers("piperwolters", "adamjstewart") + + license("Apache-2.0") + + version("0.0.2", sha256="832fad5311e9827ebc74093335d774ba03cd0b9b8fba17d6bec5168b14b6c7a7") + + # Enable Python 3.14+ support + # https://github.com/allenai/olmoearth_pretrain_minimal/pull/3 + patch("python-3.14.patch", when="@0.0.2") + + with default_args(type="build"): + depends_on("py-setuptools@61:") + + with default_args(type=("build", "run")): + depends_on("py-einops@0.7:") + depends_on("py-huggingface-hub") + depends_on("py-numpy@1.26.4:") + depends_on("py-torch@2.8:") + depends_on("py-universal-pathlib@0.2.5:") diff --git a/repos/spack_repo/builtin/packages/py_olmoearth_pretrain_minimal/python-3.14.patch b/repos/spack_repo/builtin/packages/py_olmoearth_pretrain_minimal/python-3.14.patch new file mode 100644 index 00000000000..a0cac580b9d --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_olmoearth_pretrain_minimal/python-3.14.patch @@ -0,0 +1,12 @@ +diff --color=auto -Naur a/pyproject.toml b/pyproject.toml +--- a/pyproject.toml 2026-04-12 15:49:33 ++++ b/pyproject.toml 2026-04-12 15:49:41 +@@ -7,7 +7,7 @@ + ] + readme = "README.md" + license = {file = "LICENSE"} +-requires-python = ">=3.11, <3.14" ++requires-python = ">=3.11" + dependencies = [ + "einops>=0.7.0", + "huggingface_hub", diff --git a/repos/spack_repo/builtin/packages/py_onnx/OpSchemaRegisterOnce.patch b/repos/spack_repo/builtin/packages/py_onnx/OpSchemaRegisterOnce.patch new file mode 100644 index 00000000000..87ac7795c72 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_onnx/OpSchemaRegisterOnce.patch @@ -0,0 +1,30 @@ +diff --git a/onnx/defs/schema.h b/onnx/defs/schema.h +index 6a870de4c7cd4d6a144d4e6fea9c7f937c7292cf..a4ceac17692d109c0cacaece93b7ca0e9d25bbec 100644 +--- a/onnx/defs/schema.h ++++ b/onnx/defs/schema.h +@@ -994,8 +994,10 @@ class OpSchemaRegistry final : public ISchemaRegistry { + + class OpSchemaRegisterOnce final { + public: +- // Export to cpp custom register macro +- explicit OpSchemaRegisterOnce( ++ // Export to cpp custom register macro. ++ // DO NOT decorate the constructor as "explicit" because that breaks the macro ONNX_OPERATOR_SCHEMA_UNIQ. ++ // NOLINTNEXTLINE(google-explicit-constructor) ++ OpSchemaRegisterOnce( // NOSONAR + OpSchema op_schema, + int opset_version_to_load = 0, + bool fail_duplicate_schema = true) { +@@ -1341,9 +1343,9 @@ size_t ReplaceAll(std::string& s, const char* from, const char* to); + // Legacy macros to register schema at static initialization + #define ONNX_OPERATOR_SCHEMA(name) ONNX_OPERATOR_SCHEMA_UNIQ_HELPER(__COUNTER__, name) + #define ONNX_OPERATOR_SCHEMA_UNIQ_HELPER(Counter, name) ONNX_OPERATOR_SCHEMA_UNIQ(Counter, name) +-#define ONNX_OPERATOR_SCHEMA_UNIQ(Counter, name) \ +- static ONNX_NAMESPACE::OpSchemaRegistry::OpSchemaRegisterOnce(op_schema_register_once##name##Counter) ONNX_UNUSED = \ +- OpSchema(#name, __FILE__, __LINE__) ++#define ONNX_OPERATOR_SCHEMA_UNIQ(Counter, name) \ ++ static ONNX_NAMESPACE::OpSchemaRegistry::OpSchemaRegisterOnce op_schema_register_once##name##Counter ONNX_UNUSED = \ ++ ONNX_NAMESPACE::OpSchema(#name, __FILE__, __LINE__) + + ONNX_API inline std::string GenerateOptionalArgumentsDoc() { + return "This operator has **optional** inputs/outputs. " diff --git a/repos/spack_repo/builtin/packages/py_onnx/package.py b/repos/spack_repo/builtin/packages/py_onnx/package.py index 513e16af4a0..cafc712bb49 100644 --- a/repos/spack_repo/builtin/packages/py_onnx/package.py +++ b/repos/spack_repo/builtin/packages/py_onnx/package.py @@ -19,9 +19,17 @@ class PyOnnx(PythonPackage): homepage = "https://github.com/onnx/onnx" pypi = "Onnx/onnx-1.6.0.tar.gz" + git = "https://github.com/onnx/onnx.git" license("Apache-2.0", checked_by="wdconinc") + maintainers("wdconinc") + + version("main", branch="main") + version("1.20.0", sha256="1a93ec69996b4556062d552ed1aa0671978cfd3c17a40bf4c89a1ae169c6a4ad") + version("1.19.1", sha256="737524d6eb3907d3499ea459c6f01c5a96278bb3a0f2ff8ae04786fb5d7f1ed5") + version("1.19.0", sha256="aa3f70b60f54a29015e41639298ace06adf1dd6b023b9b30f1bca91bb0db9473") + version("1.18.0", sha256="3d8dbf9e996629131ba3aa1afd1d8239b660d1f830c6688dd7e03157cccd6b9c") version("1.17.0", sha256="48ca1a91ff73c1d5e3ea2eef20ae5d0e709bb8a2355ed798ffc2169753013fd3") version("1.16.2", sha256="b33a282b038813c4b69e73ea65c2909768e8dd6cc10619b70632335daf094646") version("1.16.1", sha256="8299193f0f2a3849bfc069641aa8e4f93696602da8d165632af8ee48ec7556b6") @@ -38,18 +46,29 @@ class PyOnnx(PythonPackage): version("1.6.0", sha256="3b88c3fe521151651a0403c4d131cb2e0311bd28b753ef692020a432a81ce345") version("1.5.0", sha256="1a584a4ef62a6db178c257fffb06a9d8e61b41c0a80bfd8bcd8a253d72c4b0b4") - depends_on("c", type="build") + depends_on("c", type="build", when="@:1.18") depends_on("cxx", type="build") # CMakeLists.txt depends_on("cmake@3.1:", type="build") depends_on("cmake@3.14:", type="build", when="@1.17:") - depends_on("py-pybind11@2.2:", type=("build", "link")) - - # requirements.txt + depends_on("cmake@3.18:", type="build", when="@1.18:") + depends_on("cmake@3.24:", type="build", when="@1.19:") + depends_on("cmake@3.26:", type="build", when="@1.20:") + depends_on("py-pybind11@2.2:", type=("build", "link"), when="@:1.19") + depends_on("py-nanobind@2.8:", type=("build", "link"), when="@1.20:") + + # pyproject.toml + depends_on("python@3.10:", when="@1.20:", type=("build", "run")) + depends_on("python@3.9:", when="@1.18:", type=("build", "run")) + depends_on("python@3.8:", when="@1.15:", type=("build", "run")) + depends_on("py-setuptools@77:", type="build", when="@1.20:") depends_on("py-setuptools@64:", type="build") depends_on("py-setuptools", type="build") + + # requirements.txt depends_on("protobuf") + depends_on("py-protobuf@4.25.1:", type=("build", "run"), when="@1.18:") depends_on("py-protobuf@3.20.2:", type=("build", "run"), when="@1.15:") depends_on("py-protobuf@3.20.2:3", type=("build", "run"), when="@1.13") depends_on("py-protobuf@3.12.2:3.20.1", type=("build", "run"), when="@1.12") @@ -62,10 +81,14 @@ class PyOnnx(PythonPackage): # https://github.com/onnx/onnx/pull/3112 depends_on("py-protobuf@:3.17", type=("build", "run"), when="@:1.8") depends_on("py-numpy", type=("build", "run")) - depends_on("py-numpy@1.16.6:", type=("build", "run"), when="@1.8.1:1.13") - depends_on("py-numpy@1.20:", type=("build", "run"), when="@1.16.0:") + depends_on("py-numpy@1.23.2:", type=("build", "run"), when="@1.20:") + depends_on("py-numpy@1.22:", type=("build", "run"), when="@1.18:") depends_on("py-numpy@1.21:", type=("build", "run"), when="@1.16.2:") + depends_on("py-numpy@1.20:", type=("build", "run"), when="@1.16.0:") + depends_on("py-numpy@1.16.6:", type=("build", "run"), when="@1.8.1:1.13") depends_on("py-numpy@:1", type=("build", "run"), when="@:1.16") + depends_on("py-typing-extensions@4.7.1:", type=("build", "run"), when="@1.18:") + depends_on("py-ml-dtypes@0.5:", type=("build", "run"), when="@1.19:") # Historical dependencies depends_on("py-six", type=("build", "run"), when="@:1.8.1") @@ -88,6 +111,10 @@ class PyOnnx(PythonPackage): when="@1.15.0 ^abseil-cpp cxxstd=20", ) + # Allow conversion from OpSchema to OpSchemaRegisterOnce (needed for onnxruntime) + # Ref: https://github.com/onnx/onnx/pull/7390 + patch("OpSchemaRegisterOnce.patch", when="@1.18.0:1.19") + # By default, ONNX always uses .setuptools-cmake-build/ under the source path, # so we allow overriding with a build environment variable def patch(self): diff --git a/repos/spack_repo/builtin/packages/py_onnx_opcounter/package.py b/repos/spack_repo/builtin/packages/py_onnx_opcounter/package.py index fda9c2000b1..36230fc7471 100644 --- a/repos/spack_repo/builtin/packages/py_onnx_opcounter/package.py +++ b/repos/spack_repo/builtin/packages/py_onnx_opcounter/package.py @@ -15,6 +15,7 @@ class PyOnnxOpcounter(PythonPackage): license("Apache-2.0") + version("0.0.4", sha256="b12ace32c4f953dd2232ebf901131af55eb8a4ebf6abf877a5af38cc1cc845f2") version("0.0.3", sha256="c75e76d066eb777e4855c486beb402b1fef83783a6634237b8ca20eb75cce8c9") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_onnxruntime/package.py b/repos/spack_repo/builtin/packages/py_onnxruntime/package.py index a3516867cbf..5191d1013fd 100644 --- a/repos/spack_repo/builtin/packages/py_onnxruntime/package.py +++ b/repos/spack_repo/builtin/packages/py_onnxruntime/package.py @@ -26,6 +26,8 @@ class PyOnnxruntime(CMakePackage, PythonExtension, ROCmPackage, CudaPackage): license("MIT") + version("1.22.2", tag="v1.22.2", commit="5630b081cd25e4eccc7516a652ff956e51676794") + version("1.21.1", tag="v1.21.1", commit="8f7cce3a49fdbdac96e0868b75b7d0159db7ac7f") version("1.21.0", tag="v1.21.0", commit="e0b66cad282043d4377cea5269083f17771b6dfc") version("1.20.2", tag="v1.20.2", commit="8608bf02f21774be0388d2aa3a9f886d009d0b4c") version("1.19.2", tag="v1.19.2", commit="ffceed9d44f2f3efb9dd69fa75fea51163c91d91") @@ -38,19 +40,24 @@ class PyOnnxruntime(CMakePackage, PythonExtension, ROCmPackage, CudaPackage): version("1.10.0", tag="v1.10.0", commit="0d9030e79888d1d5828730b254fedc53c7b640c1") version("1.7.2", tag="v1.7.2", commit="5bc92dff16b0ddd5063b717fb8522ca2ad023cb0") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("binutils@2.36:", type="build") # cmake/CMakeLists.txt + depends_on("cmake@3.28:", when="@1.21:", type="build") depends_on("cmake@3.26:", when="@1.17:", type="build") depends_on("cmake@3.1:", type="build") - depends_on("abseil-cpp@20240722.0: cxxstd=17", when="@1.20:") - # Needs absl/strings/has_absl_stringify.h - # cxxstd=20 may also work, but cxxstd=14 does not - depends_on("abseil-cpp@20240116.0: cxxstd=17", when="@1.17:1.19.2") + with when("@1.17:"): + # Needs absl/strings/has_absl_stringify.h + # cxxstd=20 may also work, but cxxstd=14 does not + depends_on("abseil-cpp@20240116.0: cxxstd=17") + depends_on("abseil-cpp@20240722.0:", when="@1.20:") + + # abseil 20250814+ lacks absl::low_level_hash: https://github.com/microsoft/onnxruntime/issues/25815 + depends_on("abseil-cpp@:20250512") extends("python") depends_on("python", type=("build", "run")) @@ -146,6 +153,10 @@ class PyOnnxruntime(CMakePackage, PythonExtension, ROCmPackage, CudaPackage): when="@1.17:1.20.2", ) + # Add back linker flags "-z noexecstack" + # https://github.com/microsoft/onnxruntime/pull/25200 + patch("pr25200-fix-linker-flags.patch", when="@1.21:1.22") + dynamic_cpu_arch_values = ("NOAVX", "AVX", "AVX2", "AVX512") variant( @@ -195,6 +206,7 @@ def cmake_args(self): args = [ define("onnxruntime_ENABLE_PYTHON", True), define("onnxruntime_BUILD_SHARED_LIB", True), + define("onnxruntime_BUILD_UNIT_TESTS", self.run_tests), define_from_variant("onnxruntime_USE_CUDA", "cuda"), define("onnxruntime_BUILD_CSHARP", False), define("onnxruntime_USE_TVM", False), diff --git a/repos/spack_repo/builtin/packages/py_onnxruntime/pr25200-fix-linker-flags.patch b/repos/spack_repo/builtin/packages/py_onnxruntime/pr25200-fix-linker-flags.patch new file mode 100644 index 00000000000..55415030cc1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_onnxruntime/pr25200-fix-linker-flags.patch @@ -0,0 +1,26 @@ +From 3e6663f2ae073d1d978fab72e5792ef6fd08ec64 Mon Sep 17 00:00:00 2001 +From: Arne Juul +Date: Fri, 27 Jun 2025 16:31:45 +0000 +Subject: [PATCH] add back linker flags "-z noexecstack" that were lost by + accident + +Note by spack maintainers: This patch was modified in white space +to match the surrounding lines in the file being patched. + +--- + cmake/onnxruntime.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmake/onnxruntime.cmake b/cmake/onnxruntime.cmake +index c4a8641e02444b29dd9231036d271501fb971fa8..ae6684b0618838346800214205fdb4114c640f01 100644 +--- a/cmake/onnxruntime.cmake ++++ b/cmake/onnxruntime.cmake +@@ -148,7 +148,7 @@ if(onnxruntime_BUILD_SHARED_LIB) + if (APPLE) + target_link_options(onnxruntime PRIVATE "LINKER:-dead_strip") + elseif(NOT CMAKE_SYSTEM_NAME MATCHES "AIX") +- target_link_options(onnxruntime PRIVATE "LINKER:--version-script=${SYMBOL_FILE}" "LINKER:--no-undefined" "LINKER:--gc-sections") ++ target_link_options(onnxruntime PRIVATE "LINKER:--version-script=${SYMBOL_FILE}" "LINKER:--no-undefined" "LINKER:--gc-sections" "LINKER:-z,noexecstack") + endif() + else() + target_link_options(onnxruntime PRIVATE "-DEF:${SYMBOL_FILE}") diff --git a/repos/spack_repo/builtin/packages/py_openai_whisper/package.py b/repos/spack_repo/builtin/packages/py_openai_whisper/package.py new file mode 100644 index 00000000000..ed1b37e56a2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_openai_whisper/package.py @@ -0,0 +1,33 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# 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.python import PythonPackage + +from spack.package import * + + +class PyOpenaiWhisper(PythonPackage): + """Robust Speech Recognition via Large-Scale Weak Supervision""" + + homepage = "https://github.com/openai/whisper" + pypi = "openai-whisper/openai_whisper-20250625.tar.gz" + git = "https://github.com/openai/whisper.git" + + license("MIT") + + version("20250625", sha256="37a91a3921809d9f44748ffc73c0a55c9f366c85a3ef5c2ae0cc09540432eb96") + + depends_on("python@3.8:", type=("build", "run")) + + depends_on("py-setuptools@61.2:", type="build") + + with default_args(type=("build", "run")): + depends_on("py-numba") + depends_on("py-numpy") + depends_on("py-torch") + depends_on("py-tqdm") + depends_on("py-more-itertools") + depends_on("py-tiktoken") + depends_on("py-triton@2.0.0:2", when="platform=linux target=x86_64:") diff --git a/repos/spack_repo/builtin/packages/py_opencensus_context/package.py b/repos/spack_repo/builtin/packages/py_opencensus_context/package.py index 56158bb9c30..8d49ea53673 100644 --- a/repos/spack_repo/builtin/packages/py_opencensus_context/package.py +++ b/repos/spack_repo/builtin/packages/py_opencensus_context/package.py @@ -16,4 +16,5 @@ class PyOpencensusContext(PythonPackage): license("Apache-2.0") + version("0.1.3", sha256="073bb0590007af276853009fac7e4bab1d523c3f03baf4cb4511ca38967c6039") version("0.1.1", sha256="1a3fdf6bec537031efcc93d51b04f1edee5201f8c9a0c85681d63308b76f5702") diff --git a/repos/spack_repo/builtin/packages/py_opencv_python/package.py b/repos/spack_repo/builtin/packages/py_opencv_python/package.py new file mode 100644 index 00000000000..6df8420d849 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_opencv_python/package.py @@ -0,0 +1,31 @@ +# 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 PyOpencvPython(PythonPackage): + """Wrapper package for OpenCV python bindings.""" + + homepage = "https://github.com/opencv/opencv-python" + pypi = "opencv-python/opencv-python-4.12.0.88.tar.gz" + + license("Apache-2.0") + + version("4.12.0.88", sha256="8b738389cede219405f6f3880b851efa3415ccd674752219377353f017d2994d") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("py-packaging", type="build") + depends_on("py-pip", type="build") + depends_on("py-scikit-build@0.14:", type="build") + # restrictions on setuptools not needed, builds fine with newer versions + depends_on("py-setuptools", type="build") + + # build dependency version restriction from pyproject.toml not needed + depends_on("py-numpy@2:", type=("build", "run"), when="^python@3.9:") + depends_on("py-numpy@:2", type=("build", "run"), when="^python@:3.8") diff --git a/repos/spack_repo/builtin/packages/py_openmc/package.py b/repos/spack_repo/builtin/packages/py_openmc/package.py index fbf977a1e2d..ab3475db3da 100644 --- a/repos/spack_repo/builtin/packages/py_openmc/package.py +++ b/repos/spack_repo/builtin/packages/py_openmc/package.py @@ -18,12 +18,14 @@ class PyOpenmc(PythonPackage): programming model.""" homepage = "https://docs.openmc.org/" - url = "https://github.com/openmc-dev/openmc/tarball/v0.15.0" + url = "https://github.com/openmc-dev/openmc/tarball/v0.15.2" git = "https://github.com/openmc-dev/openmc.git" maintainers("paulromano") version("develop", branch="develop") version("master", branch="master") + version("0.15.2", commit="e23760b0264c66fb7bb373aa0596801e5209d920", submodules=True) + version("0.15.1", commit="906548db20d4ce3c322e7317992c73b51daeb11d", submodules=True) version("0.15.0", commit="55b52b7ef3c9415ce045712132bf31c2a013d8c8", submodules=True) version("0.14.0", commit="fa2330103de61a864c958d1a7250f11e5dd91468", submodules=True) version("0.13.3", commit="27cb0dc97960fe6d750eb5a93584a9a0ca532ac8", submodules=True) @@ -44,6 +46,8 @@ class PyOpenmc(PythonPackage): for ver in [ "develop", "master", + "0.15.2", + "0.15.1", "0.15.0", "0.14.0", "0.13.3", @@ -63,7 +67,8 @@ class PyOpenmc(PythonPackage): ) depends_on("git", type="build") - depends_on("python@3.10:", type=("build", "run"), when="@0.15.0:") + depends_on("python@3.11:", type=("build", "run"), when="@0.15.1:") + depends_on("python@3.10:", type=("build", "run"), when="@0.15.0") depends_on("python@3.7:", type=("build", "run"), when="@0.13.2:0.14.0") depends_on("python@3.6:", type=("build", "run"), when="@0.13.0:0.13.1") depends_on("python@3.5:", type=("build", "run"), when="@:0.12") @@ -74,7 +79,7 @@ class PyOpenmc(PythonPackage): depends_on("py-lxml", type=("build", "run")) depends_on("py-matplotlib", type=("build", "run")) depends_on("py-mpi4py", when="+mpi", type=("build", "run")) - depends_on("py-numpy@1.9:1.21", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) depends_on("py-pandas", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-scipy", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_openpyxl/package.py b/repos/spack_repo/builtin/packages/py_openpyxl/package.py index c35cc6dabc0..3a5228c81e6 100644 --- a/repos/spack_repo/builtin/packages/py_openpyxl/package.py +++ b/repos/spack_repo/builtin/packages/py_openpyxl/package.py @@ -15,6 +15,7 @@ class PyOpenpyxl(PythonPackage): license("MIT") + version("3.1.5", sha256="cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050") version("3.1.2", sha256="a6f5977418eff3b2d5500d54d9db50c8277a368436f4e4f8ddb1be3422870184") version("3.0.7", sha256="6456a3b472e1ef0facb1129f3c6ef00713cebf62e736cd7a75bcc3247432f251") version("3.0.3", sha256="547a9fc6aafcf44abe358b89ed4438d077e9d92e4f182c87e2dc294186dc4b64") diff --git a/repos/spack_repo/builtin/packages/py_openslide_python/package.py b/repos/spack_repo/builtin/packages/py_openslide_python/package.py index 117f451a26b..a7efe90f1af 100644 --- a/repos/spack_repo/builtin/packages/py_openslide_python/package.py +++ b/repos/spack_repo/builtin/packages/py_openslide_python/package.py @@ -17,14 +17,9 @@ class PyOpenslidePython(PythonPackage): version("1.1.2", sha256="83e064ab4a29658e7ddf86bf1d3e54d2508cc19ece35d55b55519c826e45d83f") - with default_args(deprecated=True): - version("1.1.1", sha256="33c390fe43e3d7d443fafdd66969392d3e9efd2ecd5d4af73c3dbac374485ed5") - - depends_on("c", type="build") # generated + depends_on("c", type="build") depends_on("openslide@3.4.0:") depends_on("python@2.6:2.8,3.3:", type=("build", "run")) - # https://github.com/openslide/openslide-python/pull/76 - depends_on("py-setuptools@:45", type="build", when="@1.1.1") - depends_on("py-setuptools", type="build", when="@1.1.2:") + depends_on("py-setuptools", type="build") depends_on("pil", type=("build", "run")) 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_opentuner/package.py b/repos/spack_repo/builtin/packages/py_opentuner/package.py index cd4f801c9e4..068fd21a96d 100644 --- a/repos/spack_repo/builtin/packages/py_opentuner/package.py +++ b/repos/spack_repo/builtin/packages/py_opentuner/package.py @@ -17,15 +17,20 @@ class PyOpentuner(PythonPackage): license("MIT") + version("0.8.8", commit="622e4fbd0e9e8d958532e8d8b92d61b07dd2d381") version("0.8.7", commit="070c5cef6d933eb760a2f9cd5cd08c95f27aee75") version("0.8.2", commit="8e720a2094e7964d7a1225e58aca40b0e78bff7d") - depends_on("cxx", type="build") # generated - depends_on("python@3:", type=("build", "run"), when="@0.8.1:") - depends_on("py-fn-py@0.2.12:", type=("build", "run")) - depends_on("py-future", type=("build", "run")) - depends_on("py-numpy@1.8.0:", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("py-fn-py@0.2.12:") + depends_on("py-future") + depends_on("py-numpy@1.8.0:") + depends_on("py-sqlalchemy@0.8.2:") + + with when("@0.8.8"): + depends_on("py-numpy@1.22:") + depends_on("py-sqlalchemy@1.2.19:") + depends_on("py-setuptools", type="build") - depends_on("py-sqlalchemy@0.8.2:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_optuna/package.py b/repos/spack_repo/builtin/packages/py_optuna/package.py index 45eb09a1b00..4ecbc0d4a61 100644 --- a/repos/spack_repo/builtin/packages/py_optuna/package.py +++ b/repos/spack_repo/builtin/packages/py_optuna/package.py @@ -18,19 +18,24 @@ class PyOptuna(PythonPackage): homepage = "https://optuna.org/" pypi = "optuna/optuna-3.2.0.tar.gz" - maintainers("elliottslaughter", "eugeneswalker") + maintainers("eugeneswalker") license("MIT") + version("4.8.0", sha256="6f7043e9f8ecb5e607af86a7eb00fb5ec2be26c3b08c201209a73d36aff37a38") version("3.2.0", sha256="683d8693643a761a41d251a6b8e13263b24acacf9fc46a9233d5f6aa3ce5c683") depends_on("py-setuptools@61.1:", type="build") - depends_on("py-alembic@1.5:", type=("build", "run")) - depends_on("py-cmaes@0.9.1:", type=("build", "run")) - depends_on("py-colorlog", type=("build", "run")) - depends_on("py-numpy", type=("build", "run")) - depends_on("py-packaging@20:", type=("build", "run")) - depends_on("py-pyyaml", type=("build", "run")) - depends_on("py-sqlalchemy@1.3:", type=("build", "run")) - depends_on("py-tqdm", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@4.8:") + depends_on("python@3.7:") + depends_on("py-alembic@1.5:") + depends_on("py-cmaes@0.9.1:", when="@3.2") + depends_on("py-colorlog") + depends_on("py-numpy") + depends_on("py-packaging@20:") + depends_on("py-pyyaml") + depends_on("py-tqdm") + depends_on("py-sqlalchemy@1.4.2:", when="@4.8:") + depends_on("py-sqlalchemy@1.3:") diff --git a/repos/spack_repo/builtin/packages/py_oracledb/package.py b/repos/spack_repo/builtin/packages/py_oracledb/package.py index 39be9017243..4a233a84d77 100644 --- a/repos/spack_repo/builtin/packages/py_oracledb/package.py +++ b/repos/spack_repo/builtin/packages/py_oracledb/package.py @@ -15,7 +15,7 @@ class PyOracledb(PythonPackage): homepage = "https://oracle.github.io/python-oracledb/" pypi = "oracledb/oracledb-1.4.2.tar.gz" - license("Apache-2.0") + license("UPL-1.0 AND Apache-2.0", checked_by="alecbcs") version("2.4.1", sha256="bd5976bef0e466e0f9d1b9f6531fb5b8171dc8534717ccb04b26e680b6c7571d") version("2.3.0", sha256="b9b0c4ec280b10063e6789bed23ddc2435ae98569ebe64e0b9a270780b9103d5") diff --git a/repos/spack_repo/builtin/packages/py_orjson/package.py b/repos/spack_repo/builtin/packages/py_orjson/package.py index 48bfd82e8ff..ed21deeece3 100644 --- a/repos/spack_repo/builtin/packages/py_orjson/package.py +++ b/repos/spack_repo/builtin/packages/py_orjson/package.py @@ -15,19 +15,28 @@ 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") version("3.9.15", sha256="95cae920959d772f30ab36d3b25f83bb0f3be671e986c72ce22f8fa700dae061") version("3.8.14", sha256="5ea93fd3ef7be7386f2516d728c877156de1559cda09453fc7dd7b696d0439b3") version("3.8.7", sha256="8460c8810652dba59c38c80d27c325b5092d189308d8d4f3e688dbd8d4f3b2dc") - depends_on("c", type="build") # generated + depends_on("c", type="build") + + with when("@:3.10.3"): + 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:") + depends_on("py-maturin@1") with when("@3.8"): depends_on("rust@1.60:") depends_on("python@3.7:") depends_on("py-maturin@0.13:0.14") - with when("@03.9:"): - depends_on("rust@1.72:") - depends_on("python@3.8:") - depends_on("py-maturin@1") + depends_on("rust@:1.88", when="@:3.11.1") diff --git a/repos/spack_repo/builtin/packages/py_osqp/package.py b/repos/spack_repo/builtin/packages/py_osqp/package.py index 9709b145c55..969b39f7134 100644 --- a/repos/spack_repo/builtin/packages/py_osqp/package.py +++ b/repos/spack_repo/builtin/packages/py_osqp/package.py @@ -18,6 +18,7 @@ class PyOsqp(PythonPackage): license("Apache-2.0") + version("1.1.1", sha256="1719e6a88f2ec2bd5dab06131331d1433152fb222372832727d9eb5604d7acf4") version( "0.6.2.post8", sha256="23d6bae4a3612f60d5f652d0e5fa4b2ead507cabfff5d930d822057ae6ed6677" ) @@ -26,10 +27,21 @@ class PyOsqp(PythonPackage): depends_on("c", type="build") # generated depends_on("cmake", type="build") + depends_on("py-pybind11", type=("build"), when="@1:") + depends_on("py-scikit-build-core", type=("build"), when="@1:") depends_on("py-setuptools", type="build") depends_on("py-setuptools@40.8.0:", when="@0.6.2.post8:", type="build") depends_on("py-setuptools-scm@6.2:", when="@0.6.2.post8:", type="build") depends_on("py-numpy@1.7:", type=("build", "run")) depends_on("py-scipy@0.13.2:", type=("build", "run")) - depends_on("py-future", when="@:0.6.1", type=("build", "run")) - depends_on("py-qdldl", when="@0.6.2.post8:", type=("build", "run")) + depends_on("py-future", type=("build", "run"), when="@:0.6.1") + depends_on("py-qdldl", type=("build", "run"), when="@0.6.2.post8:0.6.7") + depends_on("py-jinja2", type=("build", "run"), when="@1:") + depends_on("py-joblib", type=("build", "run"), when="@1:") + + # py-setuptools@61: supports PEP 621 which recommends the following syntax + # license = { text = "Apache-2.0" } + @when("^py-setuptools@61:") + def patch(self): + pyproject = "pyproject.toml" + filter_file(r'license\s*=\s*"([^"]+)"', r'license = { text = "\1" }', pyproject) diff --git a/repos/spack_repo/builtin/packages/py_overrides/package.py b/repos/spack_repo/builtin/packages/py_overrides/package.py index ec6a048af10..23327788c0f 100644 --- a/repos/spack_repo/builtin/packages/py_overrides/package.py +++ b/repos/spack_repo/builtin/packages/py_overrides/package.py @@ -15,6 +15,7 @@ class PyOverrides(PythonPackage): license("Apache-2.0") + version("7.7.0", sha256="55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a") version("7.3.1", sha256="8b97c6c1e1681b78cbc9424b138d880f0803c2254c5ebaabdde57bb6c62093f2") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_p2j/package.py b/repos/spack_repo/builtin/packages/py_p2j/package.py new file mode 100644 index 00000000000..e436afb22af --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_p2j/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 PyP2j(PythonPackage): + """p2j: Convert Python scripts to Jupyter notebook with minimal intervention""" + + homepage = "https://github.com/raibosome/python2jupyter" + pypi = "p2j/p2j-1.3.2.tar.gz" + + license("MIT", checked_by="mll8777") + + version("1.3.2", sha256="6a492350953a87ceaf190b13141242f604b597efd668c2b026241c4a4f4777f5") + + depends_on("py-setuptools", type="build") + depends_on("python@3.6:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_packaging/package.py b/repos/spack_repo/builtin/packages/py_packaging/package.py index 5ea83870c71..e8764c919b7 100644 --- a/repos/spack_repo/builtin/packages/py_packaging/package.py +++ b/repos/spack_repo/builtin/packages/py_packaging/package.py @@ -15,6 +15,9 @@ class PyPackaging(PythonPackage): license("BSD-2-Clause") + version("26.2", sha256="ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661") + version("26.1", sha256="f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de") + version("26.0", sha256="00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4") version("25.0", sha256="d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f") version("24.2", sha256="c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f") version("24.1", sha256="026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002") @@ -30,6 +33,7 @@ class PyPackaging(PythonPackage): version("17.1", sha256="f019b770dd64e585a99714f1fd5e01c7a8f11b45635aa953fd41c689a657375b") version("16.8", sha256="5d50835fdf0a7edf0b55e311b7c887786504efea1177abd7e69329a8e5ea619e") + depends_on("py-flit-core@3.12:", when="@26:", type="build") depends_on("py-flit-core@3.3:", when="@22:", type="build") # Needed to bootstrap Spack correctly on Python 3.6 (rhel8 platform-python) diff --git a/repos/spack_repo/builtin/packages/py_paho_mqtt/package.py b/repos/spack_repo/builtin/packages/py_paho_mqtt/package.py new file mode 100644 index 00000000000..b0ec705a463 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_paho_mqtt/package.py @@ -0,0 +1,37 @@ +# 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 PyPahoMqtt(PythonPackage): + """paho-mqtt is the Eclipse Paho MQTT Python client library, which + implements versions 5.0, 3.1.1, and 3.1 of the MQTT protocol. + + This library provides a client class which enables applications to connect + to an MQTT broker to publish messages, and to subscribe to topics and + receive published messages. It also provides some helper functions to make + publishing one off messages to an MQTT server very straightforward. + """ + + maintainers("eap") + + homepage = "https://eclipse.dev/paho/" + pypi = "paho-mqtt/paho_mqtt-2.1.0.tar.gz" + + license("EPL-2.0 OR BSD-3-Clause") + + version("2.1.0", sha256="12d6e7511d4137555a3f6ea167ae846af2c7357b10bc6fa4f7c3968fc1723834") + version("2.0.0", sha256="13b205f29251e4f2c66a6c923c31fc4fd780561e03b2d775cff8e4f2915cf947") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("py-hatchling", type="build") + + variant("proxy", default=False, description="Enable socket proxy support") + + with when("+proxy"): + depends_on("py-pysocks", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pamela/package.py b/repos/spack_repo/builtin/packages/py_pamela/package.py index b2cd1a02d4e..424b619734b 100644 --- a/repos/spack_repo/builtin/packages/py_pamela/package.py +++ b/repos/spack_repo/builtin/packages/py_pamela/package.py @@ -14,6 +14,7 @@ class PyPamela(PythonPackage): license("MIT") + version("1.2.0", sha256="0ea6e2a99dded8c7783a4a06f2d31f5bdcad894d79101e8f09322e387a34aacf") version("1.0.0", sha256="65c9389bef7d1bb0b168813b6be21964df32016923aac7515bdf05366acbab6c") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pandas/package.py b/repos/spack_repo/builtin/packages/py_pandas/package.py index 077bfa3d673..85a32d16791 100644 --- a/repos/spack_repo/builtin/packages/py_pandas/package.py +++ b/repos/spack_repo/builtin/packages/py_pandas/package.py @@ -23,6 +23,12 @@ class PyPandas(PythonPackage): tags = ["e4s"] + version("3.0.3", sha256="696a4a00a2a2a35d4e5deb3fc946641b96c944f02230e4f76137fe35d806c4fc") + version("3.0.2", sha256="f4753e73e34c8d83221ba58f232433fca2748be8b18dbca02d242ed153945043") + version("3.0.1", sha256="4186a699674af418f655dbd420ed87f50d56b4cd6603784279d9eef6627823c8") + version("3.0.0", sha256="0facf7e87d38f721f0af46fe70d97373a37701b1c09f7ed7aeeb292ade5c050f") + version("2.3.3", sha256="e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b") + version("2.3.2", sha256="ab7b58f8f82706890924ccdfb5f48002b83d2b5a3845976a9fb705d36c34dcdb") version("2.3.1", sha256="0a95b9ac964fe83ce317827f80304d37388ea77616b1425f0ae41c9d2d0d7bb2") version("2.3.0", sha256="34600ab34ebf1131a7613a260a61dbe8b62c188ec0ea4c296da7c9a06b004133") version("2.2.3", sha256="4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667") @@ -62,61 +68,6 @@ class PyPandas(PythonPackage): version("1.1.5", sha256="f10fc41ee3c75a474d3bdf68d396f10782d013d7f67db99c0efbfd0acb99701b") version("1.1.4", sha256="a979d0404b135c63954dea79e6246c45dd45371a88631cdbb4877d844e6de3b6") version("1.1.3", sha256="babbeda2f83b0686c9ad38d93b10516e68cdcd5771007eb80a763e98aaf44613") - version( - "1.1.2", - sha256="b64ffd87a2cfd31b40acd4b92cb72ea9a52a48165aec4c140e78fd69c45d1444", - deprecated=True, - ) - version( - "1.1.1", - sha256="53328284a7bb046e2e885fd1b8c078bd896d7fc4575b915d4936f54984a2ba67", - deprecated=True, - ) - version( - "1.1.0", - sha256="b39508562ad0bb3f384b0db24da7d68a2608b9ddc85b1d931ccaaa92d5e45273", - deprecated=True, - ) - version( - "1.0.5", - sha256="69c5d920a0b2a9838e677f78f4dde506b95ea8e4d30da25859db6469ded84fa8", - deprecated=True, - ) - version( - "1.0.4", - sha256="b35d625282baa7b51e82e52622c300a1ca9f786711b2af7cbe64f1e6831f4126", - deprecated=True, - ) - version( - "1.0.3", - sha256="32f42e322fb903d0e189a4c10b75ba70d90958cc4f66a1781ed027f1a1d14586", - deprecated=True, - ) - version( - "1.0.2", - sha256="76334ba36aa42f93b6b47b79cbc32187d3a178a4ab1c3a478c8f4198bcd93a73", - deprecated=True, - ) - version( - "1.0.1", - sha256="3c07765308f091d81b6735d4f2242bb43c332cc3461cae60543df6b10967fe27", - deprecated=True, - ) - version( - "1.0.0", - sha256="3ea6cc86931f57f18b1240572216f09922d91b19ab8a01cf24734394a3db3bec", - deprecated=True, - ) - version( - "0.25.3", - sha256="52da74df8a9c9a103af0a72c9d5fdc8e0183a90884278db7f386b5692a2220a4", - deprecated=True, - ) - version( - "0.25.2", - sha256="ca91a19d1f0a280874a24dca44aadce42da7f3a7edb7e9ab7c7baad8febee2be", - deprecated=True, - ) variant("performance", default=True, description="Build recommended performance dependencies") variant("excel", when="@1.4:", default=False, description="Build with support for Excel") @@ -126,17 +77,17 @@ class PyPandas(PythonPackage): depends_on("cxx", type="build") with default_args(type="build"): + depends_on("py-meson-python@0.17.1:", when="@3.0:") depends_on("py-meson-python@0.13.1:", when="@2.1:") depends_on("meson@1.2.1:", when="@2.1.1:") depends_on("meson@1.0.1:", when="@2.1.0") + depends_on("py-cython@3.1.0:", when="@3.0.2:") depends_on("py-cython@3.0.5:3", when="@2.2:") depends_on("py-cython@0.29.33:2", when="@2.0:2.1") depends_on("py-cython@0.29.32:2", when="@1.4.4:1") depends_on("py-cython@0.29.30:2", when="@1.4.3") depends_on("py-cython@0.29.24:2", when="@1.3.4:1.4.2") depends_on("py-cython@0.29.21:2", when="@1.1.3:1.3.3") - depends_on("py-cython@0.29.16:2", when="@1.1.0:1.1.2") - depends_on("py-cython@0.29.13:2", when="@1.0") depends_on("py-versioneer+toml", when="@2:") # Historical dependencies @@ -147,49 +98,49 @@ class PyPandas(PythonPackage): with default_args(type=("build", "run")): # Based on PyPI wheel availability - depends_on("python@3.10:", when="@2.2:") - depends_on("python@3.9:", when="@2.1:") - depends_on("python@3.8:", when="@1.4:") - - depends_on("python@:3.13") + depends_on("python@3.11:3.14", when="@3.0:") + depends_on("python@:3.14") + depends_on("python@:3.13", when="@:2.3.2") depends_on("python@:3.12", when="@:2.2.2") depends_on("python@:3.11", when="@:2.1.0") depends_on("python@:3.10", when="@:1.4") depends_on("python@:3.9", when="@:1.3.2") - depends_on("python@:3.8", when="@:1.1.2") + depends_on("py-numpy@1.26.0:", when="@3.0:") depends_on("py-numpy@1.22.4:", when="@2.1:") depends_on("py-numpy@1.20.3:", when="@1.5:") depends_on("py-numpy@1.18.5:", when="@1.4") depends_on("py-numpy@1.17.3:", when="@1.3") depends_on("py-numpy@1.16.5:", when="@1.2") depends_on("py-numpy@1.15.4:", when="@1.1") - depends_on("py-numpy@1.13.3:", when="@1.0") - # 'NUMPY_IMPORT_ARRAY_RETVAL' was removed in numpy@1.19 - depends_on("py-numpy@1.13.3:1.18", when="@0.25") # https://github.com/pandas-dev/pandas/issues/55519 depends_on("py-numpy@:1", when="@:2.2.1") depends_on("py-python-dateutil@2.8.2:", when="@2:") depends_on("py-python-dateutil@2.8.1:", when="@1.4:") depends_on("py-python-dateutil@2.7.3:", when="@1.1:") - depends_on("py-python-dateutil@2.6.1:", when="@0.25:") depends_on("py-python-dateutil") - depends_on("py-pytz@2020.1:", when="@1.4:") - depends_on("py-pytz@2017.3:", when="@1.2:") - depends_on("py-pytz@2017.2:") - depends_on("py-tzdata@2022.7:", when="@2.2:") - depends_on("py-tzdata@2022.1:", when="@2:") + depends_on("py-tzdata", when="@3: platform=windows") + depends_on("py-tzdata@2022.7:", when="@2.2:2") + depends_on("py-tzdata@2022.1:", when="@2") + + # Historical dependencies + depends_on("py-pytz@2020.1:", when="@1.4:2") + depends_on("py-pytz@2017.3:", when="@1.2:2") + depends_on("py-pytz@2017.2:", when="@:2") with default_args(type="run"): with when("+performance"): + depends_on("py-bottleneck@1.4.2:", when="@3.0:") depends_on("py-bottleneck@1.3.6:", when="@2.2:") depends_on("py-bottleneck@1.3.4:", when="@2.1:") depends_on("py-bottleneck@1.3.2:", when="@1.5:") depends_on("py-bottleneck@1.3.1:", when="@1.4:") depends_on("py-bottleneck@1.2.1:", when="@0.25:") + depends_on("py-numba@0.60.0:", when="@3.0:") depends_on("py-numba@0.56.4:", when="@2.2:") depends_on("py-numba@0.55.2:", when="@2.1:") depends_on("py-numba@0.53.1:", when="@2.0:") + depends_on("py-numexpr@2.10.2:", when="@3.0:") depends_on("py-numexpr@2.8.4:", when="@2.2:") depends_on("py-numexpr@2.8.0:", when="@2.1:") depends_on("py-numexpr@2.7.3:", when="@1.5:") @@ -201,10 +152,12 @@ class PyPandas(PythonPackage): with when("+excel"): # Excel dependencies for 1.4+ (not coded up for earlier versions) depends_on("py-odfpy@1.4.1:", when="@2.0:") + depends_on("py-openpyxl@3.1.5:", when="@3.0:") depends_on("py-openpyxl@3.1:", when="@2.2:") depends_on("py-openpyxl@3.0.10:", when="@2.1:") depends_on("py-openpyxl@3.0.7:", when="@1.5:") depends_on("py-openpyxl@3.0.3:", when="@1.4:") + depends_on("py-python-calamine@0.3.0:", when="@3.0:") depends_on("py-python-calamine@0.1.7:", when="@2.2:") depends_on("py-pyxlsb@1.0.10:", when="@2.2:") depends_on("py-pyxlsb@1.0.9:", when="@2.1:") @@ -213,11 +166,13 @@ class PyPandas(PythonPackage): depends_on("py-xlrd@2.0.1:", when="@2.2:") depends_on("py-xlrd@2.0.1:", when="@1.4:") depends_on("py-xlwt@1.3.0:", when="@1.4:1.5") + depends_on("py-xlsxwriter@3.2.0:", when="@3.0:") depends_on("py-xlsxwriter@3.0.5:", when="@2.2:") depends_on("py-xlsxwriter@3.0.3:", when="@2.1:") depends_on("py-xlsxwriter@1.4.3:", when="@1.5:") depends_on("py-xlsxwriter@1.2.2:", when="@1.4:") with when("+parquet"): + depends_on("py-pyarrow@13.0.0:", when="@3.0:") depends_on("py-pyarrow@10.0.1:") depends_on("arrow+parquet") diff --git a/repos/spack_repo/builtin/packages/py_pandas_stubs/package.py b/repos/spack_repo/builtin/packages/py_pandas_stubs/package.py index c7568396719..16e68c4a513 100644 --- a/repos/spack_repo/builtin/packages/py_pandas_stubs/package.py +++ b/repos/spack_repo/builtin/packages/py_pandas_stubs/package.py @@ -19,11 +19,20 @@ class PyPandasStubs(PythonPackage): license("BSD-3-Clause") + version( + "2.3.3.251219", sha256="dc2883e6daff49d380d1b5a2e864983ab9be8cd9a661fa861e3dea37559a5af4" + ) + version( + "2.3.2.250926", sha256="c64b9932760ceefb96a3222b953e6a251321a9832a28548be6506df473a66406" + ) version( "2.0.2.230605", sha256="624c7bb06d38145a44b61be459ccd19b038e0bf20364a025ecaab78fea65e858" ) - depends_on("python@3.8:", type=("build", "run")) depends_on("py-poetry-core@1:", type="build") - depends_on("py-numpy@1.24.3:", type=("build", "run")) - depends_on("py-types-pytz@2022.1.1:", type=("build", "run")) + + with default_args(type=("build", "run")): + depends_on("py-numpy@1.23.5:2.3.5", when="@2.3.3") + depends_on("py-numpy@1.23.5:", when="@2.3:") + depends_on("py-numpy@1.24.3:", when="@2.0") + depends_on("py-types-pytz@2022.1.1:") diff --git a/repos/spack_repo/builtin/packages/py_pandera/package.py b/repos/spack_repo/builtin/packages/py_pandera/package.py new file mode 100644 index 00000000000..12836950e7a --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pandera/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 PyPandera(PythonPackage): + """ + A light-weight and flexible data validation and testing tool for statistical data objects. + """ + + homepage = "https://www.union.ai/pandera" + git = "https://github.com/unionai-oss/pandera.git" + pypi = "pandera/pandera-0.24.0.tar.gz" + + maintainers("LydDeb") + + license("MIT", checked_by="LydDeb") + + version("0.29.0", sha256="06bc4fc1e4ff02534dd44482a9bc704fb2e58fe3fbb11be906aa714f7f5ec801") + version("0.24.0", sha256="154231780643bc73b121bd976b0ada9dcebb3e065c622954fd099dc299cf44bd") + + depends_on("python@3.10:", type=("build", "run"), when="@0.29.0:") + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-setuptools@61.0:", type="build") + depends_on("py-setuptools-scm", type="build") + depends_on("py-packaging@20.0:", type=("build", "run")) + depends_on("py-pydantic", type=("build", "run")) + depends_on("py-typeguard", type=("build", "run")) + depends_on("py-typing-extensions", type=("build", "run")) + depends_on("py-typing-inspect@0.6.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pandocfilters/package.py b/repos/spack_repo/builtin/packages/py_pandocfilters/package.py index fc112e03783..2ba8bb8577b 100644 --- a/repos/spack_repo/builtin/packages/py_pandocfilters/package.py +++ b/repos/spack_repo/builtin/packages/py_pandocfilters/package.py @@ -15,6 +15,7 @@ class PyPandocfilters(PythonPackage): license("BSD-3-Clause") + version("1.5.1", sha256="002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e") version("1.5.0", sha256="0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38") version("1.4.2", sha256="b3dd70e169bb5449e6bc6ff96aea89c5eea8c5f6ab5e207fc2f521a2cf4a0da9") diff --git a/repos/spack_repo/builtin/packages/py_panel/package.py b/repos/spack_repo/builtin/packages/py_panel/package.py index 1aaa56717d5..aae93683227 100644 --- a/repos/spack_repo/builtin/packages/py_panel/package.py +++ b/repos/spack_repo/builtin/packages/py_panel/package.py @@ -15,6 +15,7 @@ class PyPanel(PythonPackage): license("BSD-3-Clause") + version("1.7.5", sha256="8bf5041174593fdb0e8c46bef3ade334ae7e97ef64f52c8955a1d7c62b5db18d") version("1.6.3a2", sha256="c4413f8f604c7457b4f0fe7b3d375cc8cdeeacdbf01480b89cd00a49453a734a") version("1.5.2", sha256="30a45f314716bdde2de5c002fbd3a0b4d6ff85459e2179284df559455ff1534b") version("0.14.4", sha256="b853d2f53d7738ec6372525360c5bf9427a71ed990685ccac703bc9b442e9951") @@ -29,8 +30,9 @@ class PyPanel(PythonPackage): depends_on("py-hatch-vcs", type="build", when="@1.5.2:") depends_on("py-bokeh@2.4.3:2.4", type=("build", "run"), when="@0.14.4") - depends_on("py-bokeh@3.5:3.6", type=("build", "run"), when="@1.5.2:") - depends_on("py-bokeh@3.5:3.7", type=("build", "run"), when="@1.6.3:") + depends_on("py-bokeh@3.5:3.6", type=("build", "run"), when="@1.5.2") + depends_on("py-bokeh@3.5:3.7", type=("build", "run"), when="@1.6.3") + depends_on("py-bokeh@3.7", type=("build", "run"), when="@1.7.5:") depends_on("py-param@1.12:", type=("build", "run"), when="@0.14.4") depends_on("py-param@2.1:2", type=("build", "run"), when="@1.5.2:") diff --git a/repos/spack_repo/builtin/packages/py_paralleltask/package.py b/repos/spack_repo/builtin/packages/py_paralleltask/package.py index 37fe615b8a9..cf987fecf6d 100644 --- a/repos/spack_repo/builtin/packages/py_paralleltask/package.py +++ b/repos/spack_repo/builtin/packages/py_paralleltask/package.py @@ -17,6 +17,7 @@ class PyParalleltask(PythonPackage): license("GPL-3.0-only") + version("0.2.3", sha256="8015a8311d5021bc44edbfbf45ff2557a529999e235d25190bac62993fdf7b66") version("0.2.2", sha256="f00945e2bd5b6aff9cdc48fbd92aa7b48d23bb530d7f6643ac966fea11a7a9d5") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_param/package.py b/repos/spack_repo/builtin/packages/py_param/package.py index 3773de3b093..c8d88adb967 100644 --- a/repos/spack_repo/builtin/packages/py_param/package.py +++ b/repos/spack_repo/builtin/packages/py_param/package.py @@ -20,12 +20,14 @@ class PyParam(PythonPackage): license("BSD-3-Clause") + version("2.2.1", sha256="ba1f7cec6455ea8ad96f641f4082759bf1057dcbe629aa79d956b25973252422") version("2.2.0", sha256="2ef63ef7aef37412eeb8ee3a06189a51f69c58c068824ae070baecb5b2abd0b8") version("2.1.1", sha256="3b1da14abafa75bfd908572378a58696826b3719a723bc31b40ffff2e9a5c852") version("1.12.0", sha256="35d0281c8e3beb6dd469f46ff0b917752a54bed94d1b0c567346c76d0ff59c4a") depends_on("python@2.7:", when="@1", type=("build", "run")) depends_on("python@3.8:", when="@2:", type=("build", "run")) + depends_on("python@3.9:", when="@2.2:", type=("build", "run")) depends_on("py-setuptools", when="@1", type="build") diff --git a/repos/spack_repo/builtin/packages/py_paramiko/package.py b/repos/spack_repo/builtin/packages/py_paramiko/package.py index a2bf70d1fd7..e620eee265f 100644 --- a/repos/spack_repo/builtin/packages/py_paramiko/package.py +++ b/repos/spack_repo/builtin/packages/py_paramiko/package.py @@ -28,23 +28,17 @@ class PyParamiko(PythonPackage): version("2.12.0", sha256="376885c05c5d6aa6e1f4608aac2a6b5b0548b1add40274477324605903d9cd49") version("2.9.2", sha256="944a9e5dbdd413ab6c7951ea46b0ab40713235a9c4c5ca81cfe45c6f14fa677b") version("2.7.1", sha256="920492895db8013f6cc0179293147f830b8c7b21fdfc839b6bad760c27459d9f") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2018-7750 - version("2.1.2", sha256="5fae49bed35e2e3d45c4f7b0db2d38b9ca626312d91119b3991d0ecf8125e310") variant("invoke", default=False, description="Enable invoke support") depends_on("py-setuptools", type="build") depends_on("py-bcrypt@3.1.3:", when="@2.7:", type=("build", "run")) depends_on("py-bcrypt@3.2:", when="@3:", type=("build", "run")) - depends_on("py-cryptography@1.1:", type=("build", "run")) depends_on("py-cryptography@2.5:", when="@2.7:", type=("build", "run")) depends_on("py-cryptography@3.3:", when="@3:", type=("build", "run")) - depends_on("py-pyasn1@0.1.7:", when="@:2.1", type=("build", "run")) depends_on("py-pynacl@1.0.1:", when="@2.7:", type=("build", "run")) depends_on("py-pynacl@1.5:", when="@3:", type=("build", "run")) depends_on("py-six", when="@2.9.3:2", type=("build", "run")) depends_on("py-invoke@1.3:", when="+invoke", type=("build", "run")) depends_on("py-invoke@2:", when="@3: +invoke", type=("build", "run")) - conflicts("+invoke", when="@2.1.2") diff --git a/repos/spack_repo/builtin/packages/py_parasail/package.py b/repos/spack_repo/builtin/packages/py_parasail/package.py index c1b0a10f472..32f2aa3ed92 100644 --- a/repos/spack_repo/builtin/packages/py_parasail/package.py +++ b/repos/spack_repo/builtin/packages/py_parasail/package.py @@ -19,6 +19,7 @@ class PyParasail(PythonPackage): license("LiLiQ-R-1.1") + version("1.3.4", sha256="d6a7035dfae3ef5aafdd7e6915711214c22b572ea059fa69d9d7ecbfb9b61b0f") version("1.3.3", sha256="06f05066d9cf624c0b043f51a1e9d2964154e1edd0f9843e0838f32073e576f8") depends_on("perl", type="build") diff --git a/repos/spack_repo/builtin/packages/py_parse/package.py b/repos/spack_repo/builtin/packages/py_parse/package.py index fbcff5c9dc2..040fecc09dc 100644 --- a/repos/spack_repo/builtin/packages/py_parse/package.py +++ b/repos/spack_repo/builtin/packages/py_parse/package.py @@ -14,8 +14,12 @@ class PyParse(PythonPackage): license("MIT") + version("1.21.0", sha256="937725d51330ffec9c7a26fdb5623baa135d8ba8ed78817ea9523538844e3ce4") + version("1.20.2", sha256="b41d604d16503c79d81af5165155c0b20f6c8d6c559efa66b4b695c3e5a0a0ce") + version("1.19.1", sha256="cc3a47236ff05da377617ddefa867b7ba983819c664e1afe46249e5b469be464") version("1.18.0", sha256="91666032d6723dc5905248417ef0dc9e4c51df9526aaeef271eacad6491f06a4") version("1.12.1", sha256="a5fca7000c6588d77bc65c28f3f21bfce03b5e44daa8f9f07c17fe364990d717") version("1.11.1", sha256="870dd675c1ee8951db3e29b81ebe44fd131e3eb8c03a79483a58ea574f3145c2") + depends_on("py-setuptools@61.2:", type="build", when="@1.19:") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_parsedatetime/package.py b/repos/spack_repo/builtin/packages/py_parsedatetime/package.py index a0ad7cdb9c3..5652c0afe7e 100644 --- a/repos/spack_repo/builtin/packages/py_parsedatetime/package.py +++ b/repos/spack_repo/builtin/packages/py_parsedatetime/package.py @@ -13,6 +13,7 @@ class PyParsedatetime(PythonPackage): homepage = "https://github.com/bear/parsedatetime" pypi = "parsedatetime/parsedatetime-2.5.tar.gz" + version("2.6", sha256="4cb368fbb18a0b7231f4d76119165451c8d2e35951455dfee97c62a87b04d455") version("2.5", sha256="d2e9ddb1e463de871d32088a3f3cea3dc8282b1b2800e081bd0ef86900451667") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_parsl/package.py b/repos/spack_repo/builtin/packages/py_parsl/package.py index bf136fb0687..4c31fadf986 100644 --- a/repos/spack_repo/builtin/packages/py_parsl/package.py +++ b/repos/spack_repo/builtin/packages/py_parsl/package.py @@ -19,6 +19,9 @@ class PyParsl(PythonPackage): license("Apache-2.0") + version( + "2026.02.16", sha256="9867f0027251a36022c340c0cbfe5c6173220e1499ee4757f71ff47afeeaf730" + ) version( "2023.08.21", sha256="d7d6145ad5ab63baf9c9f9441a0a6ea5be6f896ef8094d47bf64d949a56b1782" ) @@ -30,34 +33,40 @@ class PyParsl(PythonPackage): depends_on("c", type="build") # generated + depends_on("python@3.10:", type=("build", "run"), when="@2026.02.16:") depends_on("python@3.8:", type=("build", "run"), when="@2023.08.21:") depends_on("python@3.6:", type=("build", "run"), when="@:1.2") depends_on("py-setuptools", type="build") depends_on("py-pyzmq@17.1.2:", type=("build", "run")) - depends_on("py-typeguard@2.10:2", type=("build", "run"), when="@2023.08.21:") + depends_on("py-typeguard@2.10:2,4", type=("build", "run"), when="@2026.02.16:") + depends_on("py-typeguard@2.10:2", type=("build", "run"), when="@2023.08.21") depends_on("py-typeguard@2.10:", type=("build", "run"), when="@:1.2") depends_on("py-typing-extensions@4.6:4", type=("build", "run"), when="@2023.08.21:") depends_on("py-typing-extensions", type=("build", "run"), when="@:1.2") - depends_on("py-six", type=("build", "run"), when="@2023.08.21:") - depends_on("py-globus-sdk", type=("build", "run")) + depends_on("py-six", type=("build", "run"), when="@2023.08.21") + depends_on("py-globus-sdk", type=("build", "run"), when="@:2023.08.21") depends_on("py-dill", type=("build", "run")) depends_on("py-tblib", type=("build", "run")) depends_on("py-requests", type=("build", "run")) - depends_on("py-paramiko", type=("build", "run")) + depends_on("py-sortedcontainers", type=("build", "run"), when="@2026.02.16:") + depends_on("py-paramiko", type=("build", "run"), when="@:2023.08.21") depends_on("py-psutil@5.5.1:", type=("build", "run")) depends_on("py-setproctitle", type=("build", "run"), when="@2023.08.21:") + depends_on("py-filelock@3.13:3", type=("build", "run"), when="@2026.02.16:") with when("+monitoring"): - depends_on("py-sqlalchemy@1.4:1", type=("build", "run"), when="@2023.08.21:") + depends_on("py-sqlalchemy@2.0", type=("build", "run"), when="@2026.02.16") + depends_on("py-sqlalchemy@1.4:1", type=("build", "run"), when="@2023.08.21") depends_on("py-sqlalchemy@1.3", type=("build", "run"), when="@:1.2") conflicts("^py-sqlalchemy@1.3.4", when="@:1.2") + depends_on("py-sqlalchemy-utils", type=("build", "run"), when="@:1.2") - depends_on("py-pydot", type=("build", "run")) - depends_on("py-networkx@2.5.0:2.5", type=("build", "run"), when="@2023.08.21:") + depends_on("py-pydot", type=("build", "run"), when="@:2023.08.21") + depends_on("py-networkx@2.5.0:2.5", type=("build", "run"), when="@2023.08.21") depends_on("py-networkx", type=("build", "run"), when="@:1.2") - depends_on("py-flask@1.0.2:", type=("build", "run")) - depends_on("py-flask-sqlalchemy", type=("build", "run")) - depends_on("py-pandas@:1", type=("build", "run"), when="@2023.08.21:") + depends_on("py-flask@1.0.2:", type=("build", "run"), when="@:2023.08.21") + depends_on("py-flask-sqlalchemy", type=("build", "run"), when="@:2023.08.21") + depends_on("py-pandas@:1", type=("build", "run"), when="@2023.08.21") depends_on("py-pandas", type=("build", "run"), when="@:1.2") - depends_on("py-plotly", type=("build", "run")) - depends_on("py-python-daemon", type=("build", "run")) + depends_on("py-plotly", type=("build", "run"), when="@:2023.08.21") + depends_on("py-python-daemon", type=("build", "run"), when="@:2023.08.21") diff --git a/repos/spack_repo/builtin/packages/py_parso/package.py b/repos/spack_repo/builtin/packages/py_parso/package.py index 4ac984b6f21..67386ba45fa 100644 --- a/repos/spack_repo/builtin/packages/py_parso/package.py +++ b/repos/spack_repo/builtin/packages/py_parso/package.py @@ -13,10 +13,13 @@ class PyParso(PythonPackage): Parso is also able to list multiple syntax errors in your python file.""" + homepage = "https://github.com/davidhalter/parso" pypi = "parso/parso-0.6.1.tar.gz" license("MIT") + version("0.8.6", sha256="2b9a0332696df97d454fa67b81618fd69c35a7b90327cbe6ba5c92d2c68a7bfd") + version("0.8.5", sha256="034d7354a9a018bdce352f48b2a8a450f05e9d6ee85db84764e9b6bd96dafe5a") version("0.8.4", sha256="eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d") version("0.8.3", sha256="8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0") version("0.8.2", sha256="12b83492c6239ce32ff5eed6d3639d6a536170723c6f3f1506869f1ace413398") @@ -26,6 +29,9 @@ class PyParso(PythonPackage): version("0.4.0", sha256="2e9574cb12e7112a87253e14e2c380ce312060269d04bd018478a3c92ea9a376") with default_args(type=("build", "run")): + # See parso/python/grammar*.txt + depends_on("python@:3.14", when="@:0.8.6") + # https://github.com/davidhalter/parso/commit/f670e6e7dc01e07576ec5c84cbf9fbce1a02c3eb depends_on("python@:3.13", when="@:0.8.4") # https://github.com/davidhalter/parso/commit/f7bea28bcc3a1862075e5b61a08d703d72be94aa depends_on("python@:3.12", when="@:0.8.3") diff --git a/repos/spack_repo/builtin/packages/py_partd/package.py b/repos/spack_repo/builtin/packages/py_partd/package.py index ac27db27b9c..3eea6d2e729 100644 --- a/repos/spack_repo/builtin/packages/py_partd/package.py +++ b/repos/spack_repo/builtin/packages/py_partd/package.py @@ -20,13 +20,6 @@ class PyPartd(PythonPackage): version("1.4.0", sha256="aa0ff35dbbcc807ae374db56332f4c1b39b46f67bf2975f5151e0b4186aed0d5") version("1.1.0", sha256="6e258bf0810701407ad1410d63d1a15cfd7b773fd9efe555dac6bb82cc8832b0") - # very old versions, should remove later - with default_args(deprecated=True): - version( - "0.3.10", sha256="33722a228ebcd1fa6f44b1631bdd4cff056376f89eb826d7d880b35b637bcfba" - ) - version("0.3.8", sha256="67291f1c4827cde3e0148b3be5d69af64b6d6169feb9ba88f0a6cfe77089400f") - variant("complete", default=False, description="Complete install") # python 3.12+ requires 1.4.2 diff --git a/repos/spack_repo/builtin/packages/py_particle/package.py b/repos/spack_repo/builtin/packages/py_particle/package.py index f17611cbdb6..07dad611fb0 100644 --- a/repos/spack_repo/builtin/packages/py_particle/package.py +++ b/repos/spack_repo/builtin/packages/py_particle/package.py @@ -23,6 +23,8 @@ class PyParticle(PythonPackage): license("BSD-3-Clause") version("master", branch="master") + version("0.26.1", sha256="107698d0ad8d56d6568ef97367f424e5d672a14087a5de31539d6218257590c7") + version("0.25.4", sha256="bfa77d8aa073e6b498f1ae2d4d4926b707662b060fb23eb986a7cdb4931f58af") version("0.25.3", sha256="78cf7e56e9e2118385fbfb8908d8395e7a267ab5f0596aaafebadb08cb04452b") version("0.25.2", sha256="1fa4bbee38bfeaef08a40b2779b4c30c5ce4fa2865a10c02acfe90679b4e61e9") version("0.25.1", sha256="9706748e95a706dffd49426db393298197fe1af819721c5d2c6e515764a1fb01") @@ -49,6 +51,7 @@ class PyParticle(PythonPackage): depends_on("python@3.6:", when="@0.20:", type=("build", "run")) depends_on("python@3.7:", when="@0.21:", type=("build", "run")) depends_on("python@3.8:", when="@0.24:", type=("build", "run")) + depends_on("python@3.9:", when="@0.26:", type=("build", "run")) depends_on("py-setuptools", when="@:0.20", type="build") depends_on("py-setuptools-scm@3.4:+toml", when="@:0.20", type="build") depends_on("py-hatchling", when="@0.21:", type="build") @@ -56,8 +59,11 @@ class PyParticle(PythonPackage): depends_on("py-importlib-resources@2:", when="@0.16: ^python@:3.8", type=("build", "run")) depends_on("py-typing-extensions@4.5:", when="@0.23.1: ^python@:3.12", type=("build", "run")) depends_on("py-typing-extensions", when="@0.16:0.23.0 ^python@:3.7", type=("build", "run")) - depends_on("py-deprecated", when="@0.22.0:0.23.0", type=("build", "run")) - depends_on("py-attrs@19.2.0:", type=("build", "run")) - depends_on("py-hepunits@1.2.0:", when="@:0.12", type=("build", "run")) + depends_on("py-attrs@22.2.0:", when="@0.26.1:", type=("build", "run")) depends_on("py-hepunits@2.0.0:", when="@0.13:", type=("build", "run")) + depends_on("py-hepunits@2.4:", when="@0.26:", type=("build", "run")) + + # Historical dependencies + depends_on("py-deprecated", when="@0.22.0:0.23.0", type=("build", "run")) + depends_on("py-hepunits@1.2.0:", when="@:0.12", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pathlib_abc/package.py b/repos/spack_repo/builtin/packages/py_pathlib_abc/package.py new file mode 100644 index 00000000000..f8443d8cd3c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pathlib_abc/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 PyPathlibAbc(PythonPackage): + """Backport of pathlib ABCs.""" + + homepage = "https://github.com/barneygale/pathlib-abc" + pypi = "pathlib_abc/pathlib_abc-0.5.2.tar.gz" + + license("PSF-2.0") + + version("0.5.2", sha256="fcd56f147234645e2c59c7ae22808b34c364bb231f685ddd9f96885aed78a94c") + + with default_args(type="build"): + depends_on("py-hatchling") + + with default_args(type=("build", "run")): + depends_on("python@3.9:") diff --git a/repos/spack_repo/builtin/packages/py_pathsimanalysis/package.py b/repos/spack_repo/builtin/packages/py_pathsimanalysis/package.py new file mode 100644 index 00000000000..4c44930bf48 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pathsimanalysis/package.py @@ -0,0 +1,31 @@ +# 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 PyPathsimanalysis(PythonPackage): + """ + Calculates the geometric similarity of molecular dynamics trajectories using + path metrics such as the Hausdorff and Fréchet distances. + """ + + homepage = "https://github.com/MDAnalysis/pathsimanalysis" + pypi = "pathsimanalysis/pathsimanalysis-1.2.0.tar.gz" + + maintainers("LydDeb") + + license("LGPL-2.1-only", checked_by="LydDeb") + + version("1.2.0", sha256="afd63ec143d2ab28a11c4c530f3f8132ed0aec447391f8345f4fe8e68be8ed08") + + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-setuptools@40.9.0:", type="build") + depends_on("py-versioningit", type="build") + depends_on("py-mdanalysis@2.1.0:", type=("build", "run")) + depends_on("py-scipy@1.5.0:", type=("build", "run")) + depends_on("py-matplotlib@1.5.1:", type=("build", "run")) + depends_on("py-numpy@1.22.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pathspec/package.py b/repos/spack_repo/builtin/packages/py_pathspec/package.py index 9242a3fed9a..a2a4b7a30b4 100644 --- a/repos/spack_repo/builtin/packages/py_pathspec/package.py +++ b/repos/spack_repo/builtin/packages/py_pathspec/package.py @@ -16,6 +16,8 @@ class PyPathspec(PythonPackage): license("MPL-2.0") + version("1.1.1", sha256="17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a") + version("1.0.4", sha256="0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645") version("0.12.1", sha256="a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712") version("0.12.0", sha256="c57e16065a97b7beb175f13c84d27cb05f7b7315741c2fbd5de541042f4ea6e1") version("0.11.2", sha256="e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3") @@ -29,10 +31,16 @@ class PyPathspec(PythonPackage): version("0.5.5", sha256="72c495d1bbe76674219e307f6d1c6062f2e1b0b483a5e4886435127d0df3d0d3") version("0.3.4", sha256="7605ca5c26f554766afe1d177164a2275a85bb803b76eba3428f422972f66728") - depends_on("python@3.8:", when="@0.12:", type=("build", "run")) - depends_on("python@3.7:", when="@0.10:0.11", type=("build", "run")) - depends_on("python@2.7:2.8,3.5:", type=("build", "run")) - depends_on("py-flit-core@3.2:3", when="@0.11:", type="build") - depends_on("py-setuptools@40.8:", when="@0.10:", type="build") - depends_on("py-setuptools@39.2:", when="@0.9", type="build") - depends_on("py-setuptools", when="@:0.10", type="build") + with default_args(type="build"): + depends_on("py-flit-core@3.2:4", when="@1:") + depends_on("py-flit-core@3.2:3", when="@0.11:0") + + # Historical dependencies + depends_on("py-setuptools@40.8:", when="@0.10") + depends_on("py-setuptools@39.2:", when="@0.9") + depends_on("py-setuptools", when="@:0.10") + + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@1:") + depends_on("python@3.8:", when="@0.12:") + depends_on("python@3.7:", when="@0.10:0.11") diff --git a/repos/spack_repo/builtin/packages/py_pathvalidate/package.py b/repos/spack_repo/builtin/packages/py_pathvalidate/package.py new file mode 100644 index 00000000000..51781a9904a --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pathvalidate/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 PyPathvalidate(PythonPackage): + """pathvalidate is a Python library to sanitize/validate a string such as + filenames/file-paths/etc. + """ + + homepage = "https://github.com/thombashi/pathvalidate" + pypi = "pathvalidate/pathvalidate-3.3.1.tar.gz" + + license("MIT") + + version("3.3.1", sha256="b18c07212bfead624345bb8e1d6141cdcf15a39736994ea0b94035ad2b1ba177") + + with default_args(type="build"): + depends_on("py-setuptools@64:") + depends_on("py-setuptools-scm@8:") diff --git a/repos/spack_repo/builtin/packages/py_patool/package.py b/repos/spack_repo/builtin/packages/py_patool/package.py index cd72dc9ea56..eb6ce34ef68 100644 --- a/repos/spack_repo/builtin/packages/py_patool/package.py +++ b/repos/spack_repo/builtin/packages/py_patool/package.py @@ -12,10 +12,20 @@ class PyPatool(PythonPackage): homepage = "https://wummel.github.io/patool/" pypi = "patool/patool-1.12.tar.gz" + git = "https://github.com/wummel/patool.git" license("GPL-3.0-or-later") + version("4.0.4", sha256="2f23e2d6513193c28061425d6ddf1f56561ae4003cbe2007fc6d051df273e09a") + version("4.0.1", sha256="41f7ee21be337a5baf07b2cb4796e9d94397ab741d2379c622f98fc001099802") version("1.12", sha256="e3180cf8bfe13bedbcf6f5628452fca0c2c84a3b5ae8c2d3f55720ea04cb1097") - depends_on("python@3.5:", type=("build", "run")) - depends_on("py-setuptools", type="build") + with default_args(type="build"): + depends_on("py-setuptools-reproducible", when="@4.0.1:") + + # Historical dependencies + depends_on("py-setuptools", when="@:4.0.0") + + with default_args(type=("build", "run")): + depends_on("python@3.12:", when="@4.0.4:") + depends_on("python@3.11:", when="@4:") diff --git a/repos/spack_repo/builtin/packages/py_patsy/package.py b/repos/spack_repo/builtin/packages/py_patsy/package.py index 0b6150dd3b1..2b5723f49da 100644 --- a/repos/spack_repo/builtin/packages/py_patsy/package.py +++ b/repos/spack_repo/builtin/packages/py_patsy/package.py @@ -19,6 +19,8 @@ class PyPatsy(PythonPackage): license("PSF-2.0") + version("1.0.2", sha256="cdc995455f6233e90e22de72c37fcadb344e7586fb83f06696f54d92f8ce74c0") + version("1.0.1", sha256="e786a9391eec818c054e359b737bbce692f051aee4c661f4141cc88fb459c0c4") version("0.5.4", sha256="7dabc527597308de0e8f188faa20af7e06a89bdaa306756dfc7783693ea16af4") version("0.5.3", sha256="bdc18001875e319bc91c812c1eb6a10be4bb13cb81eb763f466179dca3b67277") version("0.5.2", sha256="5053de7804676aba62783dbb0f23a2b3d74e35e5bfa238b88b7cbf148a38b69d") diff --git a/repos/spack_repo/builtin/packages/py_pdequinox/package.py b/repos/spack_repo/builtin/packages/py_pdequinox/package.py new file mode 100644 index 00000000000..ce2e47a107d --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pdequinox/package.py @@ -0,0 +1,37 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyPdequinox(PythonPackage, CudaPackage): + """A collection of neural architectures for emulating Partial Differential Equations (PDEs) + in JAX agnostic to the spatial dimension (1D, 2D, 3D) and boundary conditions + (Dirichlet, Neumann, Periodic). This package is built on top of Equinox.""" + + homepage = "https://fkoehler.site/pdequinox/" + pypi = "pdequinox/pdequinox-0.1.2.tar.gz" + + maintainers("abhishek1297") + license("MIT", checked_by="abhishek1297") + + version("0.1.2", sha256="7ee9dcbf277cbb94cda508034c0955600a03bc4c664bede5eb61b4a4b99b54c5") + version("0.1.0", sha256="07f7516fe26823e6c3b71f1ed5a170e97cc34ff1d1349435d4b7469adc540d3a") + + depends_on("py-setuptools", type="build") + depends_on("python@3.8:3.12", type=("build", "run")) + + with default_args(type="run"): + for arch in CudaPackage.cuda_arch_values: + cuda_specs = f"+cuda cuda_arch={arch}" + depends_on(f"py-jaxlib@0.4.13: {cuda_specs}", when=f"{cuda_specs}") + + depends_on("py-jax@0.4.13:") + depends_on("py-jaxtyping@0.2.20:") + depends_on("py-typing-extensions@4.5.0:") + depends_on("py-equinox@0.11.3:") diff --git a/repos/spack_repo/builtin/packages/py_pdf2image/package.py b/repos/spack_repo/builtin/packages/py_pdf2image/package.py index f28d9c3c017..6d4e4195dbe 100644 --- a/repos/spack_repo/builtin/packages/py_pdf2image/package.py +++ b/repos/spack_repo/builtin/packages/py_pdf2image/package.py @@ -15,6 +15,7 @@ class PyPdf2image(PythonPackage): license("MIT") + version("1.17.0", sha256="eaa959bc116b420dd7ec415fcae49b98100dda3dd18cd2fdfa86d09f112f6d57") version("1.16.3", sha256="74208810c2cef4d9e347769b8e62a52303982ddb4f2dfd744c7ab4b940ae287e") version("1.12.1", sha256="a0d9906f5507192210a8d5d7ead63145e9dec4bccc4564b1fb644e923913c31c") diff --git a/repos/spack_repo/builtin/packages/py_pdm_backend/package.py b/repos/spack_repo/builtin/packages/py_pdm_backend/package.py index 58dd007e246..9a6f138fda4 100644 --- a/repos/spack_repo/builtin/packages/py_pdm_backend/package.py +++ b/repos/spack_repo/builtin/packages/py_pdm_backend/package.py @@ -11,11 +11,15 @@ class PyPdmBackend(PythonPackage): homepage = "https://backend.pdm-project.org/" pypi = "pdm_backend/pdm_backend-2.3.0.tar.gz" + git = "https://github.com/pdm-project/pdm-backend.git" license("MIT", checked_by="matz-e") + version("2.4.7", sha256="a509d083850378ce919d41e7a2faddfc57a1764d376913c66731125d6b14110f") + version("2.4.5", sha256="56c019c440308adad5d057c08cbb777e65f43b991a3b0920749781258972fe5b") version("2.4.3", sha256="dbd9047a7ac10d11a5227e97163b617ad5d665050476ff63867d971758200728") version("2.3.0", sha256="e39ed2da206d90d4a6e9eb62f6dce54ed4fa65ddf172a7d5700960d0f8a09e09") + depends_on("python@3.9:", type=("build", "run"), when="@2.4.4:") depends_on("python@3.8:", type=("build", "run")) depends_on("py-importlib-metadata@3.6:", type=("build", "run"), when="^python@:3.9") diff --git a/repos/spack_repo/builtin/packages/py_peakutils/package.py b/repos/spack_repo/builtin/packages/py_peakutils/package.py new file mode 100644 index 00000000000..3c35e0661f0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_peakutils/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 PyPeakutils(PythonPackage): + """Peak detection utilities for 1D data.""" + + homepage = "https://bitbucket.org/lucashnegri/peakutils" + pypi = "peakutils/peakutils-1.3.5.tar.gz" + + license("MIT") + + version("1.3.5", sha256="4ff2e7f3330b93024fe8da1ee04e00389e26bcb2ef79bd2f9cf86ccd4962e114") + + depends_on("py-setuptools", type="build") + + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_peft/package.py b/repos/spack_repo/builtin/packages/py_peft/package.py new file mode 100644 index 00000000000..0070dcd8774 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_peft/package.py @@ -0,0 +1,37 @@ +# 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 PyPeft(PythonPackage): + """Parameter-Efficient Fine-Tuning (PEFT) methods enable efficient adaptation of + pre-trained language models (PLMs) to various downstream applications without + fine-tuning all the model's parameters.""" + + homepage = "https://github.com/huggingface/peft" + pypi = "peft/peft-0.5.0.tar.gz" + + license("Apache-2.0") + + version("0.17.1", sha256="e6002b42517976c290b3b8bbb9829a33dd5d470676b2dec7cb4df8501b77eb9f") + version("0.5.0", sha256="3cc03049ac6130426d82c22ca54cc6de849e7c6727181393e7751f7f512a9ced") + + depends_on("py-setuptools", type="build") + depends_on("python@3.8.0:", type=("build", "run")) + depends_on("python@3.9.0:", type=("build", "run"), when="@0.17.1:") + depends_on("py-numpy@1.17:", type=("build", "run")) + depends_on("py-packaging@20.0:", type=("build", "run")) + depends_on("py-psutil", type=("build", "run")) + depends_on("py-pyyaml", type=("build", "run")) + depends_on("py-torch@1.13.0:", type=("build", "run")) + depends_on("py-transformers", type=("build", "run")) + depends_on("py-tqdm", type=("build", "run")) + depends_on("py-accelerate", type=("build", "run")) + depends_on("py-accelerate@0.21:", type=("build", "run"), when="@0.17.1:") + depends_on("py-safetensors", type=("build", "run")) + depends_on("py-huggingface-hub@0.25:", type=("build", "run"), when="@0.17.1:") diff --git a/repos/spack_repo/builtin/packages/py_pelicanfs/package.py b/repos/spack_repo/builtin/packages/py_pelicanfs/package.py new file mode 100644 index 00000000000..a63eeba6536 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pelicanfs/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 PyPelicanfs(PythonPackage): + """An FSSpec Implementation using the Pelican System.""" + + homepage = "https://github.com/PelicanPlatform/pelicanfs" + pypi = "pelicanfs/pelicanfs-1.3.1.tar.gz" + git = "https://github.com/PelicanPlatform/pelicanfs.git" + + maintainers("wdconinc") + + license("Apache-2.0", checked_by="wdconinc") + + version("1.3.1", sha256="fc650efbaf2863eb072aab8624452a63f304dad472934402f862ad05e5b7a958") + + depends_on("python@3.11:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-setuptools@61:") + + with default_args(type=("build", "run")): + depends_on("py-aiohttp@3.9.4:3") + depends_on("py-aiowebdav2") + depends_on("py-cachetools@5.3:5") + depends_on("py-fsspec@2024.3.1:") + depends_on("py-igwn-auth-utils") + depends_on("py-pywinpty", when="platform=windows") 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_perfdump/package.py b/repos/spack_repo/builtin/packages/py_perfdump/package.py index e29a08867cf..e5fecc1b2a6 100644 --- a/repos/spack_repo/builtin/packages/py_perfdump/package.py +++ b/repos/spack_repo/builtin/packages/py_perfdump/package.py @@ -24,6 +24,7 @@ class PyPerfdump(CMakePackage): variant("hdf5", default=False, description="Enable HDF5 output") depends_on("cmake@3.15:", type="build") + depends_on("c", type="build") depends_on("cxx", type="build") depends_on("papi", type=("build", "link", "run")) depends_on("python@3:", type=("build", "link", "run")) diff --git a/repos/spack_repo/builtin/packages/py_petsc4py/package.py b/repos/spack_repo/builtin/packages/py_petsc4py/package.py index 9c48660c686..61adaa44405 100644 --- a/repos/spack_repo/builtin/packages/py_petsc4py/package.py +++ b/repos/spack_repo/builtin/packages/py_petsc4py/package.py @@ -21,6 +21,18 @@ class PyPetsc4py(PythonPackage): license("BSD-2-Clause") version("main", branch="main") + version("3.25.1", sha256="2cddfe810dd975988e350f821a15e657e88b7fc796c091b54040921ba2f6dce3") + version("3.25.0", sha256="8eafd133adbb22a6b7cd963f5eb03f86d959b832c7e5843704caba29b79c5659") + version("3.24.6", sha256="1b9594c9aabcd76eaf6092086d8b3f0f2e6c71e3c6088b41dde40fdaf776812a") + version("3.24.5", sha256="fd2eabafb9b683b964ab0517cfe2d1c42077cfae408dbdaf1560691be73d833e") + version("3.24.4", sha256="21280b81aa536ff46176374b8f8a71b4d9fe061b1e8f2eef78f498473ae80a3b") + version("3.24.3", sha256="62ed68d87fb3485b0b2fb2e9158b88dc56e64cce6bdc511d7f4630741218e868") + version("3.24.2", sha256="965a4ea86ad718838126bb714f80cb11fd59825bba66048af7e6a2f5e7ade22c") + version("3.24.1", sha256="94d7ba092b3d690215740b7616d9da52b8351bff3af56213bc5c4eabd7341361") + version("3.24.0", sha256="3dc92ccb27a80d5bce87e186e5644ec90a3bd91569145ae1908ee6364816911b") + version("3.23.7", sha256="9b2a667922683b176ca8a80ada365c69b01093f0aa5b095fd594e15a5ae2552c") + version("3.23.6", sha256="2f122b79c84c728702e3367e0d72e4ccf16cdf25aa200148018b4e7864e431e8") + version("3.23.5", sha256="2d4d5c98d86c4d9f2e6d811a3ba85d2be8a2af7153db446b6e411eb2a2e35a18") version("3.23.4", sha256="e91a7020873131eb3afdd108ab6b523e1d136e67a3283a703f9bf330ae9eaccd") version("3.23.3", sha256="e46914d30e55a91cd0100f7fb0bc99423e733e1a5c082cd69c6fb8f1b1a5b970") version("3.23.2", sha256="6e9220af93a9ee96ad90a47d1513cd5d86bfca02b3a9a902507146311cf4d059") @@ -81,21 +93,6 @@ class PyPetsc4py(PythonPackage): version("3.15.0", sha256="87dcc5ef63a1f0e1a963619f7527e623f52341b2806056b0ef5fdfb0b8b287ad") version("3.14.1", sha256="f5f8daf3a4cd1dfc945876b0d83a05b25f3c54e08046312eaa3e3036b24139c0") version("3.14.0", sha256="33ac9fb55a541e4c1deabd6e2144da96d5ae70e70c830a55de558000cf3f0ec5") - version( - "3.13.0", - sha256="0e11679353c0c2938336a3c8d1a439b853e20d3bccd7d614ad1dbea3ec5cb31f", - deprecated=True, - ) - version( - "3.12.0", - sha256="4c94a1dbbf244b249436b266ac5fa4e67080d205420805deab5ec162b979df8d", - deprecated=True, - ) - version( - "3.11.0", - sha256="ec114b303aadaee032c248a02021e940e43c6437647af0322d95354e6f2c06ad", - deprecated=True, - ) variant("mpi", default=True, description="Activates MPI support") @@ -106,7 +103,6 @@ class PyPetsc4py(PythonPackage): patch("ldshared.patch", when="@:3.18") depends_on("c", type="build") # generated - depends_on("fortran", type="build") # generated conflicts("py-cython@3.1:", when="@:3.23.1") depends_on("py-cython@3:", when="@3.20:", type="build") @@ -117,10 +113,15 @@ class PyPetsc4py(PythonPackage): depends_on("py-numpy", type=("build", "run")) depends_on("py-mpi4py", when="+mpi", type=("build", "run")) + # https://gitlab.com/petsc/petsc/-/merge_requests/9016 + depends_on("py-setuptools@:80", when="@:3.24.4", type="build") + depends_on("petsc+mpi", when="+mpi") depends_on("petsc~mpi", when="~mpi") depends_on("petsc@main", when="@main") for ver in [ + "3.25", + "3.24", "3.23", "3.22", "3.21", @@ -130,9 +131,6 @@ class PyPetsc4py(PythonPackage): "3.17", "3.16", "3.15", - "3.13", - "3.12", - "3.11", ]: depends_on(f"petsc@{ver}", when=f"@{ver}") depends_on("petsc@3.14.2:3.14", when="@3.14.1:3.14") diff --git a/repos/spack_repo/builtin/packages/py_phylophlan/package.py b/repos/spack_repo/builtin/packages/py_phylophlan/package.py index 80f24061fac..af020a68935 100644 --- a/repos/spack_repo/builtin/packages/py_phylophlan/package.py +++ b/repos/spack_repo/builtin/packages/py_phylophlan/package.py @@ -17,6 +17,7 @@ class PyPhylophlan(PythonPackage): license("MIT") + version("3.1.1", sha256="67df67b60b5a361ee9354db031608213d3ecfa2f9ec78104cb3e81903a8cc07a") version("3.0.3", sha256="d8d0082c95d58d7b11a60c1e2214b35c1a23a65675005f1393e7647d76c6a054") version("3.0.2", sha256="c342116662bbfbb49f0665291fc7c0be5a0d04a02a7be2da81de0322eb2256b4") diff --git a/repos/spack_repo/builtin/packages/py_picmistandard/package.py b/repos/spack_repo/builtin/packages/py_picmistandard/package.py index dae11a03535..c25e4cf8bac 100644 --- a/repos/spack_repo/builtin/packages/py_picmistandard/package.py +++ b/repos/spack_repo/builtin/packages/py_picmistandard/package.py @@ -12,11 +12,12 @@ class PyPicmistandard(PythonPackage): homepage = "https://picmi-standard.github.io" git = "https://github.com/picmi-standard/picmi.git" - pypi = "picmistandard/picmistandard-0.33.0.tar.gz" + pypi = "picmistandard/picmistandard-0.34.0.tar.gz" - maintainers("ax3l", "dpgrote", "RemiLehe") + maintainers("ax3l", "dpgrote", "EZoni", "RemiLehe") version("master", branch="master") + version("0.34.0", sha256="28db66c652c7ce7bedf79ecf7e764a02fa5e51ac05a2fb1cf9433354ac056ec1") version("0.33.0", sha256="bdab1643385d85da1462ba8cebc4460dd87c735946f4766181714d7cb8cf2188") version("0.30.0", sha256="28b892b242e0cc044ad987d6bdc12811fe4a478d5096d6bc5989038ee9d9dab6") version("0.29.0", sha256="dc0bf3ddd3635df9935ac569b3085de387150c4f8e9851897078bb12d123dde8") @@ -27,7 +28,7 @@ class PyPicmistandard(PythonPackage): version("0.23.2", sha256="2853fcfaf2f226a88bb6063ae564832b7e69965294fd652cd2ac04756fa4599a") version("0.23.1", sha256="c7375010b7a3431b519bc0accf097f2aafdb520e2a0126f42895cb96dcc7dcf1") - depends_on("python@3.8:", type=("build", "run")) - depends_on("py-numpy@1.15:1", type=("build", "run")) - depends_on("py-scipy@1.5:1", type=("build", "run")) + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-numpy@1.15:", type=("build", "run")) + depends_on("py-scipy@1.5:", type=("build", "run")) depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pid/package.py b/repos/spack_repo/builtin/packages/py_pid/package.py index 007d57f0973..24f01899aa8 100644 --- a/repos/spack_repo/builtin/packages/py_pid/package.py +++ b/repos/spack_repo/builtin/packages/py_pid/package.py @@ -16,6 +16,7 @@ class PyPid(PythonPackage): license("Apache-2.0") + version("3.0.4", sha256="6dc99da0991c7b4ec1a65381947c814e968c2a74b7acdb77665245ff71251ac7") version("3.0.3", sha256="082281e2f6b99b4aaa02a24ae4796c604ac17f19cdd0327b8c1ba9c2e73aadc8") version("3.0.2", sha256="0be7dc260e35788163b3171a5f0e1a8b9888bc2b77232c053c042a65496b8396") version("3.0.1", sha256="2f51b61210f8e1f009b09a2034717003ca22dcd86995537ecb857863bddca89a") diff --git a/repos/spack_repo/builtin/packages/py_pillow/package.py b/repos/spack_repo/builtin/packages/py_pillow/package.py index 9c4fd388150..c2ea899b415 100644 --- a/repos/spack_repo/builtin/packages/py_pillow/package.py +++ b/repos/spack_repo/builtin/packages/py_pillow/package.py @@ -10,7 +10,6 @@ class PyPillowBase(PythonPackage): """Base class for Pillow and its fork Pillow-SIMD.""" - license("HPND") maintainers("adamjstewart") provides("pil") @@ -39,14 +38,15 @@ class PyPillowBase(PythonPackage): variant("webp", default=False, description="WebP format") variant("webpmux", when="@:10+webp", default=False, description="WebP metadata") variant("jpeg2000", default=False, description="JPEG 2000 functionality") - variant("imagequant", when="@3.3:", default=False, description="Improved color quantization") - variant("xcb", when="@7.1:", default=False, description="X11 screengrab support") + variant("imagequant", default=False, description="Improved color quantization") + variant("xcb", default=False, description="X11 screengrab support") variant("avif", when="@11.2:", default=False, description="Support for the AVIF format") # Required dependencies # https://pillow.readthedocs.io/en/stable/installation/python-support.html with default_args(type=("build", "link", "run")): - depends_on("python@3.9:3.14", when="@11.3:") + depends_on("python@3.10:3.14", when="@12:") + depends_on("python@3.9:3.14", when="@11.3") depends_on("python@3.9:3.13", when="@11.0:11.2") depends_on("python@3.8:3.13", when="@10.4") depends_on("python@3.8:3.12", when="@10.1:10.3") @@ -55,12 +55,11 @@ class PyPillowBase(PythonPackage): depends_on("python@3.7:3.10", when="@9.0:9.2") depends_on("python@3.6:3.10", when="@8.3.2:8.4") depends_on("python@3.6:3.9", when="@8:8.3.1") - depends_on("python@3.5:3.8", when="@7.0:7.2") - depends_on("python@2.7:2.8,3.5:3.8", when="@6.2.1:6.2.2") # pyproject.toml with default_args(type="build"): depends_on("py-pip@22.1:", when="@10:") + depends_on("py-pybind11", when="@12:") depends_on("py-setuptools@77:", when="@11.2:") depends_on("py-setuptools@67.8:", when="@10:") depends_on("py-setuptools") @@ -70,15 +69,16 @@ class PyPillowBase(PythonPackage): depends_on("zlib-api", when="+zlib") depends_on("jpeg", when="+jpeg") depends_on("libtiff", when="+tiff") + depends_on("freetype@2.9.1:", when="@12:+freetype") depends_on("freetype", when="+freetype") depends_on("libraqm", when="+raqm") depends_on("lcms@2:", when="+lcms") depends_on("libwebp", when="+webp") depends_on("libwebp+libwebpmux+libwebpdemux", when="+webpmux") - depends_on("openjpeg", when="+jpeg2000") + depends_on("openjpeg@2:", when="+jpeg2000") depends_on("libimagequant", when="+imagequant") depends_on("libxcb", when="+xcb") - depends_on("libavif", when="+avif") + depends_on("libavif@1:", when="+avif") patch( "https://github.com/python-pillow/Pillow/commit/1c11d4581c5705dfa21bc5a4f3b6980c556978bf.patch?full_index=1", @@ -154,50 +154,92 @@ class PyPillow(PyPillowBase): homepage = "https://python-pillow.org/" pypi = "pillow/pillow-10.2.0.tar.gz" - version("11.3.0", sha256="3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523") - version("11.2.1", sha256="a64dd61998416367b7ef979b73d3a85853ba9bec4c2925f74e588879a58716b6") - version("11.1.0", sha256="368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20") - version("11.0.0", sha256="72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739") - version("10.4.0", sha256="166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06") - version("10.3.0", sha256="9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d") - version("10.2.0", sha256="e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e") - version("10.1.0", sha256="e6bf8de6c36ed96c86ea3b6e1d5273c53f46ef518a062464cd7ef5dd2cf92e38") - version("10.0.1", sha256="d72967b06be9300fed5cfbc8b5bafceec48bf7cdc7dab66b1d2549035287191d") - version("10.0.0", sha256="9c82b5b3e043c7af0d95792d0d20ccf68f61a1fec6b3530e718b688422727396") - version("9.5.0", sha256="bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1") - version("9.4.0", sha256="a1c2d7780448eb93fbcc3789bf3916aa5720d942e37945f4056680317f1cd23e") - version("9.3.0", sha256="c935a22a557a560108d780f9a0fc426dd7459940dc54faa49d83249c8d3e760f") - version("9.2.0", sha256="75e636fd3e0fb872693f23ccb8a5ff2cd578801251f3a4f6854c6a5d437d3c04") - version("9.1.1", sha256="7502539939b53d7565f3d11d87c78e7ec900d3c72945d4ee0e2f250d598309a0") - version("9.1.0", sha256="f401ed2bbb155e1ade150ccc63db1a4f6c1909d3d378f7d1235a44e90d75fb97") - version("9.0.1", sha256="6c8bc8238a7dfdaf7a75f5ec5a663f4173f8c367e5a39f87e720495e1eed75fa") - version("9.0.0", sha256="ee6e2963e92762923956fe5d3479b1fdc3b76c83f290aad131a2f98c3df0593e") - version("8.4.0", sha256="b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed") - version("8.0.0", sha256="59304c67d12394815331eda95ec892bf54ad95e0aa7bc1ccd8e0a4a5a25d4bf3") - version( - "7.2.0", - sha256="97f9e7953a77d5a70f49b9a48da7776dc51e9b738151b22dacf101641594a626", - deprecated=True, - ) - version( - "7.0.0", - sha256="4d9ed9a64095e031435af120d3c910148067087541131e82b3e8db302f4c8946", - deprecated=True, - ) - version( - "6.2.2", - sha256="db9ff0c251ed066d367f53b64827cc9e18ccea001b986d08c265e53625dab950", - deprecated=True, - ) - version( - "6.2.1", - sha256="bf4e972a88f8841d8fdc6db1a75e0f8d763e66e3754b03006cbc3854d89f1cb1", - deprecated=True, - ) + license("MIT-CMU", when="@11:") + license("HPND", when="@:10") + + version("12.2.0", sha256="a830b1a40919539d07806aa58e1b114df53ddd43213d9c8b75847eee6c0182b5") + version("12.1.1", sha256="9ad8fa5937ab05218e2b6a4cff30295ad35afd2f83ac592e68c0d871bb0fdbc4") + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2026-25990/ + version( + "12.1.0", sha256="5c5ae0a06e9ea030ab786b0251b32c7e4ce10e58d983c0d5c56029455180b5b9" + ) + version( + "12.0.0", sha256="87d4f8125c9988bfbed67af47dd7a953e2fc7b0cc1e7800ec6d2080d490bb353" + ) + version( + "11.3.0", sha256="3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523" + ) + # https://www.cvedetails.com/cve/CVE-2025-48379/ + version( + "11.2.1", sha256="a64dd61998416367b7ef979b73d3a85853ba9bec4c2925f74e588879a58716b6" + ) + version( + "11.1.0", sha256="368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20" + ) + version( + "11.0.0", sha256="72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739" + ) + version( + "10.4.0", sha256="166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06" + ) + version( + "10.3.0", sha256="9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d" + ) + # https://www.cvedetails.com/cve/CVE-2024-28219/ + version( + "10.2.0", sha256="e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e" + ) + version( + "10.1.0", sha256="e6bf8de6c36ed96c86ea3b6e1d5273c53f46ef518a062464cd7ef5dd2cf92e38" + ) + # https://www.cvedetails.com/cve/CVE-2023-50447/ + version( + "10.0.1", sha256="d72967b06be9300fed5cfbc8b5bafceec48bf7cdc7dab66b1d2549035287191d" + ) + version( + "10.0.0", sha256="9c82b5b3e043c7af0d95792d0d20ccf68f61a1fec6b3530e718b688422727396" + ) + # https://www.cvedetails.com/cve/CVE-2023-44271/ + version("9.5.0", sha256="bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1") + version("9.4.0", sha256="a1c2d7780448eb93fbcc3789bf3916aa5720d942e37945f4056680317f1cd23e") + version("9.3.0", sha256="c935a22a557a560108d780f9a0fc426dd7459940dc54faa49d83249c8d3e760f") + # https://www.cvedetails.com/cve/CVE-2022-45199/ + version("9.2.0", sha256="75e636fd3e0fb872693f23ccb8a5ff2cd578801251f3a4f6854c6a5d437d3c04") + # https://www.cvedetails.com/cve/CVE-2022-45198/ + version("9.1.1", sha256="7502539939b53d7565f3d11d87c78e7ec900d3c72945d4ee0e2f250d598309a0") + # https://www.cvedetails.com/cve/CVE-2022-30595/ + version("9.1.0", sha256="f401ed2bbb155e1ade150ccc63db1a4f6c1909d3d378f7d1235a44e90d75fb97") + version("9.0.1", sha256="6c8bc8238a7dfdaf7a75f5ec5a663f4173f8c367e5a39f87e720495e1eed75fa") + # https://www.cvedetails.com/cve/CVE-2022-24303/ + version("9.0.0", sha256="ee6e2963e92762923956fe5d3479b1fdc3b76c83f290aad131a2f98c3df0593e") + # https://www.cvedetails.com/cve/CVE-2022-22817/ + # https://www.cvedetails.com/cve/CVE-2022-22816/ + # https://www.cvedetails.com/cve/CVE-2022-22815/ + version("8.4.0", sha256="b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed") + # https://www.cvedetails.com/cve/CVE-2021-34552/ + # https://www.cvedetails.com/cve/CVE-2021-28678/ + # https://www.cvedetails.com/cve/CVE-2021-28677/ + # https://www.cvedetails.com/cve/CVE-2021-28676/ + # https://www.cvedetails.com/cve/CVE-2021-28675/ + # https://www.cvedetails.com/cve/CVE-2021-27923/ + # https://www.cvedetails.com/cve/CVE-2021-27922/ + # https://www.cvedetails.com/cve/CVE-2021-27921/ + # https://www.cvedetails.com/cve/CVE-2021-25293/ + # https://www.cvedetails.com/cve/CVE-2021-25292/ + # https://www.cvedetails.com/cve/CVE-2021-25291/ + # https://www.cvedetails.com/cve/CVE-2021-25290/ + # https://www.cvedetails.com/cve/CVE-2021-25289/ + # and many, many more... + version("8.0.0", sha256="59304c67d12394815331eda95ec892bf54ad95e0aa7bc1ccd8e0a4a5a25d4bf3") depends_on("c", type="build") for ver in [ + "12.2.0", + "12.1.1", + "12.1.0", + "12.0.0", "11.3.0", "11.2.1", "11.1.0", @@ -218,10 +260,6 @@ class PyPillow(PyPillowBase): "9.0.0", "8.4.0", "8.0.0", - "7.2.0", - "7.0.0", - "6.2.2", - "6.2.1", ]: provides("pil@" + ver, when="@" + ver) diff --git a/repos/spack_repo/builtin/packages/py_pillow_simd/package.py b/repos/spack_repo/builtin/packages/py_pillow_simd/package.py index 4e9415c139e..43f11f50867 100644 --- a/repos/spack_repo/builtin/packages/py_pillow_simd/package.py +++ b/repos/spack_repo/builtin/packages/py_pillow_simd/package.py @@ -16,26 +16,27 @@ class PyPillowSimd(PyPillowBase): homepage = "https://github.com/uploadcare/pillow-simd" pypi = "Pillow-SIMD/Pillow-SIMD-7.0.0.post3.tar.gz" - version( - "9.5.0.post1", sha256="8c89b85c4085532752625f2cc066a28547cebb98529acf932d5d84c1a7ab2abc" - ) - version( - "9.0.0.post1", sha256="918541cfaa90ba3c0e1bae5da31ba1b1f52b09c0009bd90183b787af4e018263" - ) - version( - "7.0.0.post3", - sha256="c27907af0e7ede1ceed281719e722e7dbf3e1dbfe561373978654a6b64896cb7", - deprecated=True, - ) - version( - "6.2.2.post1", - sha256="d29b673ac80091797f1e8334458be307e4ac4ab871b0e495cfe56cb7b1d7704e", - deprecated=True, - ) + license("HPND") + + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2024-28219/ + # https://www.cvedetails.com/cve/CVE-2023-50447/ + # https://www.cvedetails.com/cve/CVE-2023-44271/ + version( + "9.5.0.post1", + sha256="8c89b85c4085532752625f2cc066a28547cebb98529acf932d5d84c1a7ab2abc", + ) + # https://www.cvedetails.com/cve/CVE-2022-45199/ + # https://www.cvedetails.com/cve/CVE-2022-45198/ + # https://www.cvedetails.com/cve/CVE-2022-24303/ + version( + "9.0.0.post1", + sha256="918541cfaa90ba3c0e1bae5da31ba1b1f52b09c0009bd90183b787af4e018263", + ) depends_on("c", type="build") # generated - for ver in ["6.2.2.post1", "7.0.0.post3", "9.0.0.post1", "9.5.0.post1"]: + for ver in ["9.0.0.post1", "9.5.0.post1"]: provides("pil@" + ver, when="@" + ver) conflicts("target=aarch64:") diff --git a/repos/spack_repo/builtin/packages/py_pint/package.py b/repos/spack_repo/builtin/packages/py_pint/package.py index c83382d253c..448d9cecac4 100644 --- a/repos/spack_repo/builtin/packages/py_pint/package.py +++ b/repos/spack_repo/builtin/packages/py_pint/package.py @@ -13,12 +13,16 @@ class PyPint(PythonPackage): It allows arithmetic operations between them and conversions from and to different units.""" - pypi = "pint/Pint-0.11.tar.gz" + homepage = "https://github.com/hgrecco/pint" + pypi = "pint/pint-0.11.tar.gz" + + license("BSD-3-Clause") # 'pint' requires 'xarray', creating a circular dependency. Don't bother attempting # any import tests for this package. import_modules = [] # type: List[str] + version("0.24.4", sha256="35275439b574837a6cd3020a5a4a73645eb125ce4152a73a2f126bf164b91b80") version("0.22", sha256="2d139f6abbcf3016cad7d3cec05707fe908ac4f99cf59aedfd6ee667b7a64433") version("0.21.1", sha256="5d5b6b518d0c5a7ab03a776175db500f1ed1523ee75fb7fafe38af8149431c8d") version("0.20.1", sha256="387cf04078dc7dfe4a708033baad54ab61d82ab06c4ee3d4922b1e45d5626067") @@ -31,9 +35,13 @@ class PyPint(PythonPackage): version("0.9", sha256="32d8a9a9d63f4f81194c0014b3b742679dce81a26d45127d9810a68a561fe4e2") version("0.8.1", sha256="afcf31443a478c32bbac4b00337ee9026a13d0e2ac83d30c79151462513bb0d4") + variant("numpy", default=False, description="Optional numpy support") + variant("xarray", default=False, description="Optional xarray support") + variant("dask", default=False, description="Optional dask support") + depends_on("python@3.9:", when="@0.22:", type=("build", "run")) depends_on("python@3.8:", when="@0.19:0.21", type=("build", "run")) - depends_on("py-typing-extensions", when="@0.22:", type=("build", "run")) + depends_on("py-setuptools@61:", when="@0.21:", type="build") depends_on("py-setuptools@41:", when="@0.16:0.20", type="build") depends_on("py-setuptools@41:", when="@0.11:0.15", type=("build", "run")) @@ -42,3 +50,24 @@ class PyPint(PythonPackage): depends_on("py-setuptools-scm", when="@0.10", type="build") depends_on("py-packaging", when="@0.13:18", type=("build", "run")) depends_on("py-importlib-metadata", when="@0.13:18 ^python@:3.7", type=("build", "run")) + + depends_on("py-typing-extensions", when="@0.22:", type=("build", "run")) + + # https://github.com/hgrecco/pint/blob/0.24.4/requirements.txt + depends_on("py-platformdirs@2.1.0:", when="@0.24:") + depends_on("py-typing-extensions@4.0.0:", when="@0.24:", type=("build", "run")) + depends_on("py-flexcache@0.3:", when="@0.24:") + depends_on("py-flexparser@0.4:", when="@0.24:") + + # variant depends + depends_on("py-numpy@1", when="@:0.22 +numpy") + depends_on("py-numpy@1.23:", when="@0.24: +numpy") # numpy 2 added in 0.24 + depends_on("py-xarray", when="+xarray") + depends_on("py-dask", when="+dask") + + def url_for_version(self, version): + if version > Version("0.22"): + return super().url_for_version(version) + + url = "https://files.pythonhosted.org/packages/source/p/pint/Pint-{0}.tar.gz" + return url.format(version.dotted) diff --git a/repos/spack_repo/builtin/packages/py_pint_xarray/package.py b/repos/spack_repo/builtin/packages/py_pint_xarray/package.py index 280eee39a00..780f3eb7178 100644 --- a/repos/spack_repo/builtin/packages/py_pint_xarray/package.py +++ b/repos/spack_repo/builtin/packages/py_pint_xarray/package.py @@ -25,7 +25,7 @@ class PyPintXarray(PythonPackage): depends_on("python@3.9:", type=("build", "run")) depends_on("py-numpy@1.23:", type=("build", "run")) depends_on("py-xarray@2022.06.0:", type=("build", "run")) - depends_on("py-pint@0.21:", type=("build", "run")) + depends_on("py-pint@0.21: +xarray +numpy +dask", type=("build", "run")) with when("@:0.3"): depends_on("py-setuptools@42:", type="build") @@ -33,11 +33,10 @@ class PyPintXarray(PythonPackage): depends_on("python@3.8:", type=("build", "run")) depends_on("py-numpy@1.17:", type=("build", "run")) depends_on("py-xarray@0.16.1:", type=("build", "run")) - depends_on("py-pint@0.16:", type=("build", "run")) + depends_on("py-pint@0.16: +xarray +numpy +dask", type=("build", "run")) depends_on("py-importlib-metadata", when="@0.2.1 ^python@:3.7", type=("build", "run")) def url_for_version(self, version): - if version >= Version("0.4"): return super().url_for_version(version) diff --git a/repos/spack_repo/builtin/packages/py_pip/package.py b/repos/spack_repo/builtin/packages/py_pip/package.py index cccb0448dbc..aeb068c8542 100644 --- a/repos/spack_repo/builtin/packages/py_pip/package.py +++ b/repos/spack_repo/builtin/packages/py_pip/package.py @@ -26,6 +26,8 @@ class PyPip(Package, PythonExtension): license("MIT") + version("26.1", sha256="4e8486d821d814b77319acb7b9e8bf5a4ee7590a643e7cb21029f209be8573c1") + version("26.0.1", sha256="bdb1b08f4274833d62c1aa29e20907365a2ceb950410df15fc9521bad440122b") version("25.1.1", sha256="2913a38a2abf4ea6b64ab507bd9e967f3b53dc1ede74b01b0931e1ce548751af") version("25.1", sha256="13b4aa0aaad055020a11bec8a1c2a70a2b2d080e12d89b962266029fff0a16ba") version("25.0.1", sha256="c46efd13b6aa8279f33f2864459c8ce587ea6a1a59ee20de055868d8f7688f7f") @@ -53,6 +55,7 @@ class PyPip(Package, PythonExtension): extends("python") with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@26.1:") depends_on("python@3.9:", when="@25.1:") depends_on("python@3.8:", when="@24.1:") depends_on("python@3.7:", when="@22:") diff --git a/repos/spack_repo/builtin/packages/py_pkgconfig/package.py b/repos/spack_repo/builtin/packages/py_pkgconfig/package.py index 9bf223f251c..cbfbfa25eb4 100644 --- a/repos/spack_repo/builtin/packages/py_pkgconfig/package.py +++ b/repos/spack_repo/builtin/packages/py_pkgconfig/package.py @@ -15,15 +15,21 @@ class PyPkgconfig(PythonPackage): license("MIT") + version("1.6.0", sha256="4a5a6631ce937fafac457104a40d558785a658bbdca5c49b6295bc3fd651907f") version("1.5.5", sha256="deb4163ef11f75b520d822d9505c1f462761b4309b1bb713d08689759ea8b899") version("1.5.1", sha256="97bfe3d981bab675d5ea3ef259045d7919c93897db7d3b59d4e8593cba8d354f") version("1.4.0", sha256="048c3b457da7b6f686b647ab10bf09e2250e4c50acfe6f215398a8b5e6fcdb52") version("1.2.2", sha256="3685ba02a9b72654a764b728b559f327e1dbd7dc6ebc310a1bd429666ee202aa") - depends_on("python@3.3:", when="@1.5.5:", type=("build", "run")) - depends_on("python@2.7,3.3:", when="@1.5:", type=("build", "run")) - depends_on("python@2.6:2.7,3.3:", when="@1.4:", type=("build", "run")) - depends_on("py-poetry-core@1:", when="@1.5.2:", type="build") - depends_on("py-poetry@0.12:", when="@1.5.0:1.5.1", type="build") - depends_on("py-setuptools", when="@:1.4", type="build") - depends_on("pkgconfig", type=("build", "run")) + with default_args(type="build"): + depends_on("py-poetry-core@1:", when="@1.5.2:") + + # Historical dependencies + depends_on("py-poetry@0.12:", when="@1.5.0:1.5.1") + depends_on("py-setuptools", when="@:1.4") + + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@1.6:") + depends_on("python@3.3:", when="@1.5.5:") + + depends_on("pkgconfig") diff --git a/repos/spack_repo/builtin/packages/py_plac/package.py b/repos/spack_repo/builtin/packages/py_plac/package.py index a186438cccf..894b5cc52e0 100644 --- a/repos/spack_repo/builtin/packages/py_plac/package.py +++ b/repos/spack_repo/builtin/packages/py_plac/package.py @@ -19,6 +19,7 @@ class PyPlac(PythonPackage): license("BSD-2-Clause") + version("1.4.5", sha256="5f05bf85235c017fcd76c73c8101d4ff8e96beb3dc58b9a37de49cac7de82d14") version("1.4.3", sha256="d4cb3387b2113a28aebd509433d0264a4e5d9bb7c1a86db4fbd0a8f11af74eb3") version("1.3.5", sha256="38bdd864d0450fb748193aa817b9c458a8f5319fbf97b2261151cfc0a5812090") version("1.3.3", sha256="51e332dabc2aed2cd1f038be637d557d116175101535f53eaa7ae854a00f2a74") diff --git a/repos/spack_repo/builtin/packages/py_platformdirs/package.py b/repos/spack_repo/builtin/packages/py_platformdirs/package.py index 44dbbb43b36..319276f784a 100644 --- a/repos/spack_repo/builtin/packages/py_platformdirs/package.py +++ b/repos/spack_repo/builtin/packages/py_platformdirs/package.py @@ -17,6 +17,8 @@ class PyPlatformdirs(PythonPackage): license("MIT") + version("4.9.6", sha256="3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a") + version("4.4.0", sha256="ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf") version("3.10.0", sha256="b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d") version("3.5.3", sha256="e48fabd87db8f3a7df7150a4a5ea22c546ee8bc39bc2473244730d4b56d2cc4e") version("3.5.0", sha256="7954a68d0ba23558d753f73437c55f89027cf8f5108c19844d4b82e5af396335") @@ -33,23 +35,35 @@ class PyPlatformdirs(PythonPackage): description="Install from wheel (required for bootstrapping Spack)", ) - depends_on("python@3.7:", when="@2.4.1:", type=("build", "run")) - depends_on("py-hatch-vcs@0.3:", when="@3:", type="build") - depends_on("py-hatch-vcs", when="@2.5.2:", type="build") - depends_on("py-hatchling@1.17.1:", when="@3.10:", type="build") - depends_on("py-hatchling@1.17:", when="@3.5.2:", type="build") - depends_on("py-hatchling@1.14:", when="@3.3:", type="build") - depends_on("py-hatchling@1.12.2:", when="@3:", type="build") - depends_on("py-hatchling@0.22.0:", when="@2.5.2:", type="build") - - depends_on("py-typing-extensions@4.7.1:", when="@3.10: ^python@:3.7", type=("build", "run")) - depends_on("py-typing-extensions@4.6.3:", when="@3.5.2: ^python@:3.7", type=("build", "run")) - depends_on("py-typing-extensions@4.5:", when="@3.2: ^python@:3.7", type=("build", "run")) - depends_on("py-typing-extensions@4.4:", when="@3: ^python@:3.7", type=("build", "run")) - - # Historical dependencies - depends_on("py-setuptools@44:", when="@:2.5.1", type="build") - depends_on("py-setuptools-scm@5:+toml", when="@:2.5.1", type="build") + with default_args(type="build"): + depends_on("py-hatch-vcs@0.5:", when="@4.5:") + depends_on("py-hatch-vcs@0.4:", when="@4.2:") + depends_on("py-hatch-vcs@0.3:", when="@3:") + depends_on("py-hatch-vcs", when="@2.5.2:") + + depends_on("py-hatchling@1.29:", when="@4.9.4:") + depends_on("py-hatchling@1.27:", when="@4.3.7:") + depends_on("py-hatchling@1.17.1:", when="@3.10:") + depends_on("py-hatchling@1.17:", when="@3.5.2:") + depends_on("py-hatchling@1.14:", when="@3.3:") + depends_on("py-hatchling@1.12.2:", when="@3:") + depends_on("py-hatchling@0.22.0:", when="@2.5.2:") + + # Historical dependencies + depends_on("py-setuptools@44:", when="@:2.5.1") + depends_on("py-setuptools-scm@5:+toml", when="@:2.5.1") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@4.5:") + depends_on("python@3.9:", when="@4.3.7:") + depends_on("python@3.7:", when="@2.4.1:") + + # Historical dependencies + with when("@:4.0 ^python@:3.7"): + depends_on("py-typing-extensions@4.7.1:", when="@3.10:") + depends_on("py-typing-extensions@4.6.3:", when="@3.5.2:") + depends_on("py-typing-extensions@4.5:", when="@3.2:") + depends_on("py-typing-extensions@4.4:", when="@3:") class PythonPipBuilder(python.PythonPipBuilder): diff --git a/repos/spack_repo/builtin/packages/py_plotly/package.py b/repos/spack_repo/builtin/packages/py_plotly/package.py index 69a55218081..e3989993a2c 100644 --- a/repos/spack_repo/builtin/packages/py_plotly/package.py +++ b/repos/spack_repo/builtin/packages/py_plotly/package.py @@ -12,11 +12,13 @@ class PyPlotly(PythonPackage): homepage = "https://plot.ly/python/" pypi = "plotly/plotly-2.2.0.tar.gz" + git = "https://github.com/plotly/plotly.py.git" maintainers("meyersbs") license("MIT") + version("6.3.0", sha256="8840a184d18ccae0f9189c2b9a2943923fd5cae7717b723f36eef78f444e5a73") version("5.20.0", sha256="bf901c805d22032cfa534b2ff7c5aa6b0659e037f19ec1e0cca7f585918b5c89") version("5.19.0", sha256="5ea91a56571292ade3e3bc9bf712eba0b95a1fb0a941375d978cc79432e055f4") version("5.18.0", sha256="360a31e6fbb49d12b007036eb6929521343d6bee2236f8459915821baefa2cbb") @@ -27,18 +29,28 @@ class PyPlotly(PythonPackage): version("5.2.2", sha256="809f0674a7991daaf4f287964d617d24e9fa44463acd5a5352ebd874cfd98b07") version("2.2.0", sha256="ca668911ffb4d11fed6d7fbb12236f8ecc6a7209db192326bcb64bdb41451a58") + depends_on("python@3.8:", when="@5.19.0:", type=("build", "run")) depends_on("python@3.6:3.11", when="@5.2.2:5.18.0", type=("build", "run")) - depends_on("python@3.8:3.11", when="@5.19.0:", type=("build", "run")) + # collections.MutableSequence moved to collections.abc.MutableSequence + depends_on("python@:3.9", when="@2", type=("build", "run")) - depends_on("py-setuptools", type="build") + depends_on("py-setuptools@61:", when="@6.1:", type="build") depends_on("py-setuptools@40.8.0:", when="@5.14.1:", type="build") - depends_on("py-jupyterlab@3", when="@5:", type="build") + depends_on("py-setuptools", type="build") + depends_on("py-hatch", when="@6.1:", type="build") + # upper bound conflicts with py-setuptool@:60 in py-jupyter-packaging@0.10 + depends_on("py-jupyter-packaging@0.10.0:", when="@6.1:", type="build") + + depends_on("py-narwhals@1.15.1:", when="@6:", type=("build", "run")) + depends_on("py-packaging", when="@5.14.1:", type=("build", "run")) + + # Historical dependencies + depends_on("py-jupyterlab@3", when="@5:6.0.0", type="build") + + depends_on("py-tenacity@6.2.0:", when="@5.2.2:5", type=("build", "run")) depends_on("py-six", when="@:5.2.2", type=("build", "run")) depends_on("py-pytz", when="@:2.2.0", type=("build", "run")) depends_on("py-decorator@4.0.6:", when="@:2.2.0", type=("build", "run")) depends_on("py-nbformat@4.2.0:", when="@:2.2.0", type=("build", "run")) depends_on("py-requests", when="@:2.2.0", type=("build", "run")) - - depends_on("py-tenacity@6.2.0:", when="@5.2.2:", type=("build", "run")) - depends_on("py-packaging", when="@5.14.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pluggy/package.py b/repos/spack_repo/builtin/packages/py_pluggy/package.py index c4a539aab34..d2741c92c24 100644 --- a/repos/spack_repo/builtin/packages/py_pluggy/package.py +++ b/repos/spack_repo/builtin/packages/py_pluggy/package.py @@ -15,6 +15,7 @@ class PyPluggy(PythonPackage): license("MIT") + version("1.6.0", sha256="7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3") version("1.5.0", sha256="2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1") version("1.4.0", sha256="8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be") version("1.0.0", sha256="4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159") @@ -26,12 +27,15 @@ class PyPluggy(PythonPackage): version("0.6.0", sha256="7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff") with default_args(type="build"): + depends_on("py-setuptools@65:", when="@1.6:") depends_on("py-setuptools@45:", when="@1.1:") depends_on("py-setuptools") + depends_on("py-setuptools-scm@8:+toml", when="@1.6:") depends_on("py-setuptools-scm@6.2.3:+toml", when="@1.1:") depends_on("py-setuptools-scm") with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@1.6:") depends_on("python@3.8:", when="@1.3:") depends_on("python@3.7:", when="@1.1:") depends_on("py-importlib-metadata@0.12:", when="^python@:3.7") diff --git a/repos/spack_repo/builtin/packages/py_pmtiles/package.py b/repos/spack_repo/builtin/packages/py_pmtiles/package.py new file mode 100644 index 00000000000..61a184b6749 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pmtiles/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 PyPmtiles(PythonPackage): + """PMTiles is a single-file archive format for tiled data""" + + homepage = "https://docs.protomaps.com/" + pypi = "pmtiles/pmtiles-3.5.0.tar.gz" + git = "https://github.com/protomaps/PMTiles" + + license("BSD-3-Clause", checked_by="Chrismarsh") + + version("3.7.0", sha256="ed8b04d550d104c81a759c9cc07bfc5743750f62e751f840425f4b9f4bb903df") + version("3.5.0", sha256="2b849ede4e006aa0ba9d508a4d77400dd5117d5da74346e057dc9e28bad8e9f0") + + # https://github.com/protomaps/PMTiles/blob/main/python/pmtiles/setup.py + depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pmw/package.py b/repos/spack_repo/builtin/packages/py_pmw/package.py index 96a38c2342a..505600f610c 100644 --- a/repos/spack_repo/builtin/packages/py_pmw/package.py +++ b/repos/spack_repo/builtin/packages/py_pmw/package.py @@ -13,6 +13,7 @@ class PyPmw(PythonPackage): pypi = "Pmw/Pmw-2.0.0.tar.gz" + version("2.1.1", sha256="948412457cfccf0c775dd08e0913fb00f90896a33c79737d571c7312aeaf55c6") version("2.0.1", sha256="0b9d28f52755a7a081b44591c3dd912054f896e56c9a627db4dd228306ad1120") version("2.0.0", sha256="2babb2855feaabeea1003c6908b61c9d39cff606d418685f0559952714c680bb") diff --git a/repos/spack_repo/builtin/packages/py_poetry_core/package.py b/repos/spack_repo/builtin/packages/py_poetry_core/package.py index d770d790780..4816235ab5a 100644 --- a/repos/spack_repo/builtin/packages/py_poetry_core/package.py +++ b/repos/spack_repo/builtin/packages/py_poetry_core/package.py @@ -15,6 +15,8 @@ class PyPoetryCore(PythonPackage): license("MIT") + version("2.3.2", sha256="20cb71be27b774628da9f384effd9183dfceb53bcef84063248a8672aa47031f") + version("2.2.0", sha256="b4033b71b99717a942030e074fec7e3082e5fde7a8ed10f02cd2413bdf940b1f") version("2.1.2", sha256="f9dbbbd0ebf9755476a1d57f04b30e9aecf71ca9dc2fcd4b17aba92c0002aa04") version("1.8.1", sha256="67a76c671da2a70e55047cddda83566035b701f7e463b32a2abfeac6e2a16376") version("1.7.0", sha256="8f679b83bd9c820082637beca1204124d5d2a786e4818da47ec8acefd0353b74") @@ -27,9 +29,12 @@ class PyPoetryCore(PythonPackage): depends_on("c", type="build") # generated with default_args(type=("build", "run")): + depends_on("python@3.10:3", when="@2.3:") depends_on("python@3.9:3", when="@2:") depends_on("python@3.8:3", when="@1.7:") depends_on("python@3.7:3", when="@1.1:") + + # Historical dependencies depends_on("py-importlib-metadata@1.7:", when="@1.1:1.6 ^python@:3.7") depends_on("py-importlib-metadata@1.7:1", when="@:1.0 ^python@:3.7") diff --git a/repos/spack_repo/builtin/packages/py_poetry_dynamic_versioning/package.py b/repos/spack_repo/builtin/packages/py_poetry_dynamic_versioning/package.py index 5f8b0f18701..1f54519e08d 100644 --- a/repos/spack_repo/builtin/packages/py_poetry_dynamic_versioning/package.py +++ b/repos/spack_repo/builtin/packages/py_poetry_dynamic_versioning/package.py @@ -15,15 +15,22 @@ class PyPoetryDynamicVersioning(PythonPackage): license("MIT") + version("1.10.0", sha256="52bf9ed57f2d60f4250a1dfe43db7b8144541df2f3ae6e712d12b43ecda71f47") + version("1.9.1", sha256="d6e7b9df817aa2ca4946cd695c6c89e1379d2e6c640f008a9b6170d081a9da48") version("1.4.0", sha256="725178bd50a22f2dd4035de7f965151e14ecf8f7f19996b9e536f4c5559669a7") version("0.19.0", sha256="a11a7eba6e7be167c55a1dddec78f52b61a1832275c95519ad119c7a89a7f821") - depends_on("python@3.7:3", type=("build", "run")) depends_on("py-poetry-core@1:", type="build") - depends_on("py-dunamai@1.12:1", type=("build", "run")) - depends_on("py-tomlkit@0.4:", type=("build", "run")) - depends_on("py-jinja2@2.11.1:3", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("python@3.7:3") + + depends_on("py-dunamai@1.26", when="@1.10:") + depends_on("py-dunamai@1.25", when="@1.9") + depends_on("py-dunamai@1.21", when="@1.3:1.7") + depends_on("py-dunamai@1.12", when="@:0.19") + depends_on("py-tomlkit@0.4:") + depends_on("py-jinja2@2.11.1:3") def url_for_version(self, version): url = "https://files.pythonhosted.org/packages/source/p/{0}/{0}-{1}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_polars/package.py b/repos/spack_repo/builtin/packages/py_polars/package.py index 8ecd9aed95e..d050caacfcd 100644 --- a/repos/spack_repo/builtin/packages/py_polars/package.py +++ b/repos/spack_repo/builtin/packages/py_polars/package.py @@ -14,6 +14,7 @@ class PyPolars(PythonPackage): pypi = "polars/polars-0.20.5.tar.gz" license("MIT") + maintainers("Chrismarsh") version("1.29.0", sha256="d2acb71fce1ff0ea76db5f648abd91a7a6c460fafabce9a2e8175184efa00d02") version("0.20.5", sha256="fa4abc22cee024b5872961ddcd8a13a0a76150df345e21ce4308c2b1a36b47aa") @@ -59,3 +60,7 @@ def setup_build_environment(self, env): # https://github.com/PyO3/maturin/discussions/1090 # https://github.com/pola-rs/polars/issues/22708#issuecomment-2872555300 env.prepend_path("MATURIN_PEP517_ARGS", "--no-default-features --features all") + + # https://github.com/pola-rs/polars/issues/26503#issuecomment-3874046239 + if self.spec.satisfies("@1.29.0 ^rust@1.89:"): + env.prepend_path("RUSTFLAGS", "--cap-lints warn") diff --git a/repos/spack_repo/builtin/packages/py_pooch/package.py b/repos/spack_repo/builtin/packages/py_pooch/package.py index fb322ba0b22..ae9c7dd66a5 100644 --- a/repos/spack_repo/builtin/packages/py_pooch/package.py +++ b/repos/spack_repo/builtin/packages/py_pooch/package.py @@ -17,20 +17,26 @@ class PyPooch(PythonPackage): license("BSD-3-Clause") + version("1.9.0", sha256="de46729579b9857ffd3e741987a2f6d5e0e03219892c167c6578c0091fb511ed") + version("1.8.2", sha256="76561f0de68a01da4df6af38e9955c4c9d1a5c90da73f7e40276a5728ec83d10") version("1.7.0", sha256="f174a1041b6447f0eef8860f76d17f60ed2f857dc0efa387a7f08228af05d998") version("1.5.2", sha256="5969b2f1defbdc405df932767e05e0b536e2771c27f1f95d7f260bc99bf13581") version("1.3.0", sha256="30d448e825904e2d763bbbe418831a788813c32f636b21c8d60ee5f474532898") - depends_on("py-setuptools@45:", when="@1.6:", type="build") - depends_on("py-setuptools", type="build") - depends_on("py-setuptools-scm+toml@6.2:", when="@1.6:", type="build") - depends_on("py-setuptools-scm", when="@1.4:", type="build") + with default_args(type="build"): + depends_on("py-setuptools@45:", when="@1.6:") + depends_on("py-setuptools") + depends_on("py-setuptools-scm+toml@6.2:", when="@1.6:") + depends_on("py-setuptools-scm", when="@1.4:") - depends_on("py-platformdirs@2.5:", when="@1.7:", type=("build", "run")) - depends_on("py-packaging@20:", when="@1.6:", type=("build", "run")) - depends_on("py-packaging", type=("build", "run")) - depends_on("py-requests@2.19:", when="@1.6:", type=("build", "run")) - depends_on("py-requests", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@1.9:") - # Historical dependencies - depends_on("py-appdirs", when="@:1.5", type=("build", "run")) + depends_on("py-platformdirs@2.5:", when="@1.7:") + depends_on("py-packaging@20:", when="@1.6:") + depends_on("py-packaging") + depends_on("py-requests@2.19:", when="@1.6:") + depends_on("py-requests") + + # Historical dependencies + depends_on("py-appdirs", when="@:1.5") diff --git a/repos/spack_repo/builtin/packages/py_portalocker/package.py b/repos/spack_repo/builtin/packages/py_portalocker/package.py index 51d197f5ca6..96ff30fa001 100644 --- a/repos/spack_repo/builtin/packages/py_portalocker/package.py +++ b/repos/spack_repo/builtin/packages/py_portalocker/package.py @@ -15,8 +15,12 @@ class PyPortalocker(PythonPackage): license("BSD-3-Clause") + version("3.2.0", sha256="1f3002956a54a8c3730586c5c77bf18fae4149e07eaf1c29fc3faf4d5a3f89ac") version("2.5.1", sha256="ae8e9cc2660da04bf41fa1a0eef7e300bb5e4a5869adfb1a6d8551632b559b2b") version("1.6.0", sha256="4013e6d17123560178a5ba28cb6fdf13fd3079dee18571ff824e05b7abc97b94") depends_on("python@3.5:", when="@2:", type=("build", "run")) + depends_on("python@3.9:", when="@3:", type=("build", "run")) depends_on("py-setuptools@38.3.0:", type="build") + depends_on("py-setuptools-scm", type="build", when="@3.2.0:") + depends_on("py-pywin32@226:", type=("build", "run"), when="platform=windows") diff --git a/repos/spack_repo/builtin/packages/py_portpicker/package.py b/repos/spack_repo/builtin/packages/py_portpicker/package.py index 1253c518206..caac0ee106f 100644 --- a/repos/spack_repo/builtin/packages/py_portpicker/package.py +++ b/repos/spack_repo/builtin/packages/py_portpicker/package.py @@ -15,6 +15,7 @@ class PyPortpicker(PythonPackage): license("Apache-2.0") + version("1.6.0", sha256="bd507fd6f96f65ee02781f2e674e9dc6c99bbfa6e3c39992e3916204c9d431fa") version("1.5.2", sha256="c55683ad725f5c00a41bc7db0225223e8be024b1fa564d039ed3390e4fd48fb3") depends_on("py-setuptools@40.9:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_poxy/package.py b/repos/spack_repo/builtin/packages/py_poxy/package.py index 4fd39d3929d..dd5fc5e5071 100644 --- a/repos/spack_repo/builtin/packages/py_poxy/package.py +++ b/repos/spack_repo/builtin/packages/py_poxy/package.py @@ -15,6 +15,7 @@ class PyPoxy(PythonPackage): license("MIT", checked_by="pranav-sivaraman") + version("0.20.1", sha256="3d4f3b6b924e28fa0a47e63fb68636c1183f1852db52313651f89fa96580d4fe") version("0.18.0", sha256="f5da8ff04ec08859bfd1c8ec6ef61b70e3af630915a4cce6a3e377eec3bcd3d4") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pre_commit/package.py b/repos/spack_repo/builtin/packages/py_pre_commit/package.py index 53167d9ddc2..446e5f882f6 100644 --- a/repos/spack_repo/builtin/packages/py_pre_commit/package.py +++ b/repos/spack_repo/builtin/packages/py_pre_commit/package.py @@ -13,9 +13,14 @@ class PyPreCommit(PythonPackage): homepage = "https://github.com/pre-commit/pre-commit" pypi = "pre_commit/pre_commit-1.20.0.tar.gz" + maintainers("sethrj") license("MIT") + version("4.6.0", sha256="718d2208cef53fdc38206e40524a6d4d9576d103eb16f0fec11c875e7716e9d9") + version("4.5.1", sha256="eb545fcff725875197837263e977ea257a402056661f09dae08e4b149b030a61") + version("4.4.0", sha256="f0233ebab440e9f17cabbb558706eb173d19ace965c68cdce2c081042b4fab15") + version("4.3.0", sha256="499fe450cc9d42e9d58e606262795ecb64dd05438943c62b66f6a8673da30b16") version("4.2.0", sha256="601283b9757afd87d40c4c4a9b2b5de9637a8ea02eaff7adc2d0fb4e04841146") version("4.1.0", sha256="ae3f018575a588e30dfddfab9a05448bfbd6b73d78709617b5a2b853549716d4") version("4.0.1", sha256="80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2") @@ -30,6 +35,7 @@ class PyPreCommit(PythonPackage): version("2.10.1", sha256="399baf78f13f4de82a29b649afd74bef2c4e28eb4f021661fc7f29246e8c7a3a") version("1.20.0", sha256="9f152687127ec90642a2cc3e4d9e1e6240c4eb153615cb02aa1ad41d331cbb6e") + depends_on("python@3.10:", when="@4.4:", type=("build", "run")) depends_on("python@3.9:", when="@3.6:", type=("build", "run")) depends_on("python@3.8:", when="@3:", type=("build", "run")) depends_on("python@3.7:", when="@2.20.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_preshed/package.py b/repos/spack_repo/builtin/packages/py_preshed/package.py index f938f2559d3..f4513ae4efd 100644 --- a/repos/spack_repo/builtin/packages/py_preshed/package.py +++ b/repos/spack_repo/builtin/packages/py_preshed/package.py @@ -16,6 +16,7 @@ class PyPreshed(PythonPackage): license("MIT") + version("4.0.0", sha256="5e2b0b2a07dd1a8deeaad6612019845c602ee24907f6936eaaf17aabd56e544c") version("3.0.8", sha256="6c74c70078809bfddda17be96483c41d06d717934b07cab7921011d81758b357") version("3.0.2", sha256="61d73468c97c1d6d5a048de0b01d5a6fd052123358aca4823cdb277e436436cb") diff --git a/repos/spack_repo/builtin/packages/py_prettytable/package.py b/repos/spack_repo/builtin/packages/py_prettytable/package.py index 1c3d4e4c175..2f1aeb88d37 100644 --- a/repos/spack_repo/builtin/packages/py_prettytable/package.py +++ b/repos/spack_repo/builtin/packages/py_prettytable/package.py @@ -16,6 +16,7 @@ class PyPrettytable(PythonPackage): homepage = "https://github.com/jazzband/prettytable" pypi = "prettytable/prettytable-0.7.2.tar.gz" + version("3.16.0", sha256="3c64b31719d961bf69c9a7e03d0c1e477320906a98da63952bc6698d6164ff57") version("3.7.0", sha256="ef8334ee40b7ec721651fc4d37ecc7bb2ef55fde5098d994438f0dfdaa385c0c") version("3.4.1", sha256="7d7dd84d0b206f2daac4471a72f299d6907f34516064feb2838e333a4e2567bd") version("3.2.0", sha256="ae7d96c64100543dc61662b40a28f3b03c0f94a503ed121c6fca2782c5816f81") diff --git a/repos/spack_repo/builtin/packages/py_prometheus_client/package.py b/repos/spack_repo/builtin/packages/py_prometheus_client/package.py index 4493d41a36c..fe5465cd286 100644 --- a/repos/spack_repo/builtin/packages/py_prometheus_client/package.py +++ b/repos/spack_repo/builtin/packages/py_prometheus_client/package.py @@ -15,6 +15,8 @@ class PyPrometheusClient(PythonPackage): license("Apache-2.0") + version("0.25.0", sha256="5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28") + version("0.22.1", sha256="190f1331e783cf21eb60bca559354e0a4d4378facecf78f5428c39b675d20d28") version("0.17.0", sha256="9c3b26f1535945e85b8934fb374678d263137b78ef85f305b1156c7c881cd11b") version("0.14.1", sha256="5459c427624961076277fdc6dc50540e2bacb98eebde99886e59ec55ed92093a") version("0.12.0", sha256="1b12ba48cee33b9b0b9de64a1047cbd3c5f2d0ab6ebcead7ddda613a750ec3c5") @@ -24,11 +26,18 @@ class PyPrometheusClient(PythonPackage): variant("twisted", default=False, description="Expose metrics as a twisted resource") - depends_on("py-setuptools", type="build") - # Notice: prometheus_client/twisted/_exposition.py imports 'twisted.web.wsgi' - # which was not ported to Python 3 until twisted 16.0.0 - depends_on("py-twisted@16:", when="@0.12.0: +twisted ^python@3:", type=("build", "run")) - depends_on("py-twisted", when="+twisted", type=("build", "run")) + with default_args(type="build"): + depends_on("py-setuptools@77:", when="@0.22.1:") + depends_on("py-setuptools") + + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@0.22:") + + with when("+twisted"): + # Notice: prometheus_client/twisted/_exposition.py imports 'twisted.web.wsgi' + # which was not ported to Python 3 until twisted 16.0.0 + depends_on("py-twisted@16:", when="@0.12.0: ^python@3:") + depends_on("py-twisted") @property def skip_modules(self): diff --git a/repos/spack_repo/builtin/packages/py_prompt_toolkit/package.py b/repos/spack_repo/builtin/packages/py_prompt_toolkit/package.py index 650057b6803..6a60f03519d 100644 --- a/repos/spack_repo/builtin/packages/py_prompt_toolkit/package.py +++ b/repos/spack_repo/builtin/packages/py_prompt_toolkit/package.py @@ -19,6 +19,7 @@ class PyPromptToolkit(PythonPackage): license("BSD-3-Clause") + version("3.0.52", sha256="28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855") version("3.0.43", sha256="3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d") version("3.0.38", sha256="23ac5d50538a9a38c8bde05fecb47d0b403ecd0662857a86f886f798563d5b9b") version("3.0.31", sha256="9ada952c9d1787f52ff6d5f3484d0b4df8952787c087edf6a1f7c2cb1ea88148") @@ -32,11 +33,13 @@ class PyPromptToolkit(PythonPackage): version("1.0.16", sha256="c1cedd626e08b8ee830ee65897de754113ff3f3035880030c08b01674d85c5b4") version("1.0.9", sha256="cd6523b36adc174cc10d54b1193eb626b4268609ff6ea92c15bcf1996609599c") + depends_on("python@3.8:", when="@3.0.49:", type=("build", "run")) depends_on("python@3.7:", when="@3.0.37:", type=("build", "run")) depends_on("python@3.6.2:", when="@3.0.24:", type=("build", "run")) depends_on("python@3.6.1:", when="@3:3.0.17", type=("build", "run")) # collections.Mapping was removed in python@3.10 depends_on("python@:3.9", when="@1.0.9", type=("build", "run")) + depends_on("py-setuptools@68:", when="@3.0.51:", type="build") depends_on("py-setuptools", type="build") depends_on("py-wcwidth", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_propcache/package.py b/repos/spack_repo/builtin/packages/py_propcache/package.py index 739a6199e33..e3ca3ac2a17 100644 --- a/repos/spack_repo/builtin/packages/py_propcache/package.py +++ b/repos/spack_repo/builtin/packages/py_propcache/package.py @@ -15,11 +15,17 @@ class PyPropcache(PythonPackage): license("Apache-2.0") + version("0.5.2", sha256="01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427") + version("0.4.1", sha256="f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d") + version("0.3.2", sha256="20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168") version("0.3.1", sha256="40d980c33765359098837527e18eddefc9a24cea5b45e078a7f3bb5b032c6ecf") depends_on("py-setuptools@47:", type="build") + depends_on("py-setuptools@82.0.1:", type="build", when="@0.5:") depends_on("py-expandvars", type="build") depends_on("py-tomli", when="^python@:3.10", type="build") depends_on("py-cython", type="build") depends_on("python@3.9:", when="@0.2.1:", type=("build", "run")) + depends_on("python@3.10:", when="@0.5:", type=("build", "run")) + depends_on("python@:3.13", when="@:0.4", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_protobuf/package.py b/repos/spack_repo/builtin/packages/py_protobuf/package.py index f6d2820f152..34ffa4c5c73 100644 --- a/repos/spack_repo/builtin/packages/py_protobuf/package.py +++ b/repos/spack_repo/builtin/packages/py_protobuf/package.py @@ -18,6 +18,8 @@ class PyProtobuf(PythonPackage): homepage = "https://developers.google.com/protocol-buffers/" pypi = "protobuf/protobuf-3.11.0.tar.gz" + version("6.32.1", sha256="ee2469e4a021474ab9baafea6cd070e5bf27c7d29433504ddea1a4ee5850f68d") + version("5.28.3", sha256="64badbc49180a5e401f373f9ce7ab1d18b63f7dd4a9cdc43c92b9f0b481cef7b") version("5.28.2", sha256="59379674ff119717404f7454647913787034f03fe7049cbef1d74a97bb4593f0") version("5.27.5", sha256="7fa81bc550201144a32f4478659da06e0b2ebe4d5303aacce9a202a1c3d5178d") version("5.26.1", sha256="8ca2a1d97c290ec7b16e4e5dff2e5ae150cc1582f55b5ab300d45cb0dfa90e51") @@ -69,14 +71,21 @@ class PyProtobuf(PythonPackage): depends_on("c", type="build") depends_on("python", type=("build", "link", "run")) + # https://github.com/protocolbuffers/protobuf/issues/12186 + depends_on("python@:3.13", when="@:5.26", type=("build", "link", "run")) depends_on("py-setuptools", type=("build", "run")) depends_on("py-six@1.9:", when="@3.0:3.17", type=("build", "run")) - # Minor version must match protobuf - for ver in range(26, 29): - depends_on(f"protobuf@3.{ver}", when=f"@5.{ver}") + # https://github.com/protocolbuffers/protobuf/pull/22447 + depends_on("py-setuptools@:81", when="@:6.31", type=("build", "run")) + + # https://protobuf.dev/support/version-support/#python + for ver in range(30, 33): + depends_on(f"protobuf@{ver}", when=f"@6.{ver}") + for ver in range(26, 30): + depends_on(f"protobuf@{ver}", when=f"@5.{ver}") for ver in range(21, 26): - depends_on(f"protobuf@3.{ver}", when=f"@4.{ver}") + depends_on(f"protobuf@{ver}", when=f"@4.{ver}") for ver in range(0, 21): depends_on(f"protobuf@3.{ver}", when=f"@3.{ver}") diff --git a/repos/spack_repo/builtin/packages/py_prov/package.py b/repos/spack_repo/builtin/packages/py_prov/package.py index c7cbacbd939..7b27a3e5f75 100644 --- a/repos/spack_repo/builtin/packages/py_prov/package.py +++ b/repos/spack_repo/builtin/packages/py_prov/package.py @@ -16,20 +16,39 @@ class PyProv(PythonPackage): homepage = "https://prov.readthedocs.io/" pypi = "prov/prov-2.0.0.tar.gz" + git = "https://github.com/trungdong/prov.git" license("MIT") + version("2.1.1", sha256="7d012b164f5bbb42e118ed9d25788ab012d09082b722bc9dd4e811a309ea57f5") version("2.0.0", sha256="b6438f2195ecb9f6e8279b58971e02bc51814599b5d5383366eef91d867422ee") version("1.5.1", sha256="7a2d72b0df43cd9c6e374d815c8ce3cd5ca371d54f98f837853ac9fcc98aee4c") - variant("dot", default=False, description="Graphical visualisation support for prov.model") - - depends_on("python@3.6:3", type=("build", "run")) + variant("rdf", default=False, when="@2.0.2:", description="Enable rdf support") + variant("xml", default=False, when="@2.0.2:", description="Enable xml support") + variant( + "dot", + default=False, + when="@:2.0.1", + description="Graphical visualisation support for prov.model", + ) + + depends_on("python@3.9:", type=("build", "run"), when="@2.0.2:") + depends_on("python@3.6:3", type=("build", "run"), when="@:2.0.1") + depends_on("py-setuptools@40.8:", type="build", when="@2:") depends_on("py-setuptools", type="build") - depends_on("py-lxml@3.3.5:", type=("build", "run")) - depends_on("py-networkx@2.0:", type=("build", "run")) + depends_on("py-networkx@2:", type=("build", "run")) + depends_on("py-pydot@1.2:", type=("build", "run"), when="@2.0.2:") depends_on("py-python-dateutil@2.2:", type=("build", "run")) - depends_on("py-rdflib@4.2.1:", type=("build", "run")) - depends_on("py-pydot@1.2.0:", when="+dot", type=("build", "run")) - depends_on("graphviz", when="+dot", type=("build", "run")) + depends_on("graphviz", type=("build", "run"), when="@2.0.1:") + + depends_on("py-rdflib@4.2.1:6", type=("build", "run"), when="+rdf") + depends_on("py-rdflib@4.2.1:6", type=("build", "run"), when="@:2.0.1") + + depends_on("py-lxml@3.3.5:", type=("build", "run"), when="+xml") + depends_on("py-lxml@3.3.5:", type=("build", "run"), when="@:2.0.1") + + # Historical dependencies + depends_on("py-pydot@1.2:", type=("build", "run"), when="+dot") + depends_on("graphviz", type=("build", "run"), when="+dot") diff --git a/repos/spack_repo/builtin/packages/py_proxystore/package.py b/repos/spack_repo/builtin/packages/py_proxystore/package.py new file mode 100644 index 00000000000..6baed350945 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_proxystore/package.py @@ -0,0 +1,47 @@ +# 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 PyProxystore(PythonPackage): + """ProxyStore facilitates efficient data flow management in + distributed Python applications, such as dynamic task-based + workflows or serverless and edge applications.""" + + homepage = "https://docs.proxystore.dev" + pypi = "proxystore/proxystore-0.8.3.tar.gz" + git = "https://github.com/proxystore/proxystore.git" + + maintainers("gpauloski", "mdorier") + + license("MIT", checked_by="mdorier") + + version("main", branch="main") + version("0.8.3", sha256="7a71de1abaefd04425f9614a32a6527de48f2c65bba999996c7c1db582ec7b48") + + variant("kafka", default=False, description="Enable Kafka connector") + variant("redis", default=False, description="Enable Redis connector") + variant("zmq", default=False, description="Enable ZMQ connector") + # TODO: the "endpoints" variant in pyproject.toml requires dependencies + # that are not in Spack yet. + + depends_on("python@3.9:") + depends_on("python@3.10:", when="@0.8.4:") + depends_on("py-setuptools@64.0:", type="build") + depends_on("py-setuptools-scm", type="build") + depends_on("py-click@:8.1.3,8.1.5:") + depends_on("py-cloudpickle@3:") + depends_on("py-cryptography@39.0.1:") + depends_on("py-globus-sdk@3.46.0:3") + depends_on("py-pydantic@2") + depends_on("py-tomli-w") + with when("^python@:3.10"): + depends_on("py-tomli") + depends_on("py-typing-extensions@4.3.0:") + depends_on("py-confluent-kafka", when="+kafka") + depends_on("py-redis@3.4:", when="+redis") + depends_on("py-pyzmq", when="+zmq") diff --git a/repos/spack_repo/builtin/packages/py_psij_python/package.py b/repos/spack_repo/builtin/packages/py_psij_python/package.py index dd4156df82d..b27fc232f47 100644 --- a/repos/spack_repo/builtin/packages/py_psij_python/package.py +++ b/repos/spack_repo/builtin/packages/py_psij_python/package.py @@ -21,25 +21,11 @@ class PyPsijPython(PythonPackage): version("0.9.9", sha256="79d527e43a5bb0df00818b956cc4dec064b59c38e4f8557e8533f901cb47d68f") - version( - "0.1.0.post2", - sha256="78f4fb147248be479aa6128b583dff9052698c49f36c6e9811b4c3f9db326043", - deprecated=True, - ) - - # Python dependencies - depends_on("python@3.7:", type=("build", "run"), when="@:0.9.8") - depends_on("python@3.8:", type=("build", "run"), when="@0.9.9:") - # Build dependencies (in order listed in pyproject.toml) depends_on("py-setuptools", type="build") # Install dependencies (in order listed in pyproject.toml or setup.cfg/py) - depends_on("py-psutil", type=("build", "run"), when="@:0.1") depends_on("py-psutil@5.9:6.1.1", type=("build", "run"), when="@0.9.9:") depends_on("py-pystache@0.6.0:", type=("build", "run")) depends_on("py-typeguard@3.0.1:", type=("build", "run"), when="@0.9.8:") depends_on("py-packaging@24.0:24.2", type=("build", "run"), when="@0.9.9:") - - # Historical dependencies - depends_on("py-filelock", type=("build", "run"), when="@:0.9.7") diff --git a/repos/spack_repo/builtin/packages/py_psutil/package.py b/repos/spack_repo/builtin/packages/py_psutil/package.py index 2945714546f..66b1e4623ee 100644 --- a/repos/spack_repo/builtin/packages/py_psutil/package.py +++ b/repos/spack_repo/builtin/packages/py_psutil/package.py @@ -17,6 +17,8 @@ class PyPsutil(PythonPackage): license("BSD-3-Clause") + version("7.2.2", sha256="0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372") + version("7.1.0", sha256="655708b3c069387c8b77b072fc429a57d0e214221d01c0a772df7dfedcb3bcd2") version("6.1.1", sha256="cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5") version("5.9.5", sha256="5410638e4df39c54d957fc51ce03048acd8e6d60abc0f5107af51e5fb566eb3c") version("5.9.4", sha256="3d7f9739eb435d4b1338944abe23f49584bde5395f27487d2ee25ad9a8774a62") diff --git a/repos/spack_repo/builtin/packages/py_psyclone/package.py b/repos/spack_repo/builtin/packages/py_psyclone/package.py index 5f50da073d6..3115242b910 100644 --- a/repos/spack_repo/builtin/packages/py_psyclone/package.py +++ b/repos/spack_repo/builtin/packages/py_psyclone/package.py @@ -48,7 +48,7 @@ class PyPsyclone(PythonPackage): depends_on("py-graphviz", type=("build", "run")) depends_on("py-configparser", type=("build", "run")) depends_on("py-jinja2", type="build") - depends_on("py-sympy", type=("build", "run"), when="@2.2.0:") + depends_on("py-sympy@1.6.1:", type=("build", "run"), when="@2.2.0:") depends_on("py-termcolor", type=("build", "run")) # Historical dependencies @@ -80,7 +80,7 @@ def url_for_version(self, version): @run_after("install") @on_package_attributes(run_tests=True) def check_build(self): - pytest = which("pytest") + pytest = which("pytest", required=True) # Limit pytest to search inside the build tree with working_dir("src"): pytest() @@ -88,3 +88,7 @@ def check_build(self): def setup_build_environment(self, env: EnvironmentModifications) -> None: # Allow testing with installed executables env.prepend_path("PATH", self.prefix.bin) + + def setup_run_environment(self, env): + # Set config file path + env.set("PSYCLONE_CONFIG", join_path(self.prefix.share, "psyclone", "psyclone.cfg")) diff --git a/repos/spack_repo/builtin/packages/py_psycopg2/package.py b/repos/spack_repo/builtin/packages/py_psycopg2/package.py index 6d6984d4ec4..115007f7c78 100644 --- a/repos/spack_repo/builtin/packages/py_psycopg2/package.py +++ b/repos/spack_repo/builtin/packages/py_psycopg2/package.py @@ -13,6 +13,8 @@ class PyPsycopg2(PythonPackage): homepage = "https://psycopg.org/" pypi = "psycopg2/psycopg2-2.8.6.tar.gz" + version("2.9.11", sha256="964d31caf728e217c697ff77ea69c2ba0865fa41ec20bb00f0977e62fdcc52e3") + version("2.9.10", sha256="12ec0b40b0273f95296233e8750441339298e6a572f7039da5b260e3c8b60e11") version("2.9.6", sha256="f15158418fd826831b28585e2ab48ed8df2d0d98f502a2b4fe619e7d5ca29011") version("2.9.1", sha256="de5303a6f1d0a7a34b9d40e4d3bef684ccc44a49bbe3eb85e3c0bffb4a131b7c") version("2.8.6", sha256="fb23f6c71107c37fd667cb4ea363ddeb936b348bbd6449278eb92c189699f543") @@ -23,13 +25,16 @@ class PyPsycopg2(PythonPackage): # https://github.com/psycopg/psycopg2/blob/master/doc/src/install.rst # https://www.psycopg.org/docs/news.html#news # https://pypi.org/project/psycopg2/#history - depends_on("python@:3.11", when="@2.9.5:", type=("build", "link", "run")) + depends_on("python@:3.14", when="@2.9.11:", type=("build", "link", "run")) + depends_on("python@:3.13", when="@2.9.10", type=("build", "link", "run")) + depends_on("python@:3.11", when="@2.9.5:2.9.9", type=("build", "link", "run")) depends_on("python@:3.10", when="@2.9.1:2.9.4", type=("build", "link", "run")) depends_on("python@:3.9", when="@2.8.6:2.9.0", type=("build", "link", "run")) depends_on("py-setuptools", type="build") - depends_on("postgresql@9.1:15", when="@2.9.4:", type=("build", "link", "run")) + depends_on("postgresql@9.1:17", when="@2.9.10:", type=("build", "link", "run")) + depends_on("postgresql@9.1:15", when="@2.9.4:2.9.9", type=("build", "link", "run")) depends_on("postgresql@9.1:14", when="@2.9.2:2.9.3", type=("build", "link", "run")) depends_on("postgresql@9.1:13", when="@2.9:2.9.1", type=("build", "link", "run")) depends_on("postgresql@9.1:12", when="@2.8.4:2.8", type=("build", "link", "run")) diff --git a/repos/spack_repo/builtin/packages/py_psygnal/package.py b/repos/spack_repo/builtin/packages/py_psygnal/package.py new file mode 100644 index 00000000000..010b8cbb363 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_psygnal/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 PyPsygnal(PythonPackage): + """Fast python callback/event system modeled after Qt Signals.""" + + homepage = "https://github.com/pyapp-kit/psygnal" + pypi = "psygnal/psygnal-0.14.0.tar.gz" + + license("BSD-3-Clause") + + version("0.14.2", sha256="588d1a7a0212db8ffc720ef2fb03e849e0280f4f156e5f5922e6b99b13c69689") + version("0.14.0", sha256="bdd219217d240611af31621a6701505256e245abb6e0dc86d7e4443c3f7d6d41") + + with default_args(type="build"): + depends_on("py-hatchling@1.8:") + depends_on("py-hatch-vcs") diff --git a/repos/spack_repo/builtin/packages/py_pulp/package.py b/repos/spack_repo/builtin/packages/py_pulp/package.py index e882ffa01d8..521e2ae4b46 100644 --- a/repos/spack_repo/builtin/packages/py_pulp/package.py +++ b/repos/spack_repo/builtin/packages/py_pulp/package.py @@ -19,7 +19,13 @@ class PyPulp(PythonPackage): license("MIT") + version( + "3.3.1", + sha256="f979a2e08c32279234a802ede4e5e26d493300e8ccf94f9223236d228c3941f5", + url="https://github.com/coin-or/pulp/archive/refs/tags/3.3.1.tar.gz", + ) version("2.6.0", sha256="4b4f7e1e954453e1b233720be23aea2f10ff068a835ac10c090a93d8e2eb2e8d") + depends_on("python@3.9:", type=("build", "run"), when="@3.3.1:") depends_on("python@2.7:2.8,3.4:", type=("build", "run")) depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_puremagic/package.py b/repos/spack_repo/builtin/packages/py_puremagic/package.py index 7c1d1af9b5d..333c4669c01 100644 --- a/repos/spack_repo/builtin/packages/py_puremagic/package.py +++ b/repos/spack_repo/builtin/packages/py_puremagic/package.py @@ -15,7 +15,14 @@ class PyPuremagic(PythonPackage): license("MIT") + version("2.2.0", sha256="eb4bddf07c177c4b434554b92165b67449f5a51e152b976202d6254498810eef") + version("1.30", sha256="f9ff7ac157d54e9cf3bff1addfd97233548e75e685282d84ae11e7ffee1614c9") version("1.14", sha256="3d5df26cc7ec9aebbf842a09115a2fa85dc59ea6414fa568572c44775d796cbc") version("1.10", sha256="6ffea02b80ceec1381f9df513e0120b701a74b6efad92311ea80281c7081b108") - depends_on("py-setuptools", type="build") + with default_args(type="build"): + depends_on("py-setuptools") + depends_on("py-setuptools-scm+toml@6.2:", when="@2:") + + with default_args(type=("build", "run")): + depends_on("python@3.12:", when="@2:") diff --git a/repos/spack_repo/builtin/packages/py_py4j/package.py b/repos/spack_repo/builtin/packages/py_py4j/package.py index 57e72489a31..6f3a0c0d7ba 100644 --- a/repos/spack_repo/builtin/packages/py_py4j/package.py +++ b/repos/spack_repo/builtin/packages/py_py4j/package.py @@ -18,6 +18,7 @@ class PyPy4j(PythonPackage): maintainers("teaguesterling") + version("0.10.9.9", sha256="f694cad19efa5bd1dee4f3e5270eb406613c974394035e5bfc4ec1aba870b879") version("0.10.9.7", sha256="0b6e5315bb3ada5cf62ac651d107bb2ebc02def3dee9d9548e3baac644ea8dbb") version("0.10.9.5", sha256="276a4a3c5a2154df1860ef3303a927460e02e97b047dc0a47c1c3fb8cce34db6") version("0.10.9.3", sha256="0d92844da4cb747155b9563c44fc322c9a1562b3ef0979ae692dbde732d784dd") diff --git a/repos/spack_repo/builtin/packages/py_py6s/package.py b/repos/spack_repo/builtin/packages/py_py6s/package.py index e3a26b04c63..38c65b1d678 100644 --- a/repos/spack_repo/builtin/packages/py_py6s/package.py +++ b/repos/spack_repo/builtin/packages/py_py6s/package.py @@ -17,6 +17,7 @@ class PyPy6s(PythonPackage): homepage = "https://py6s.rtwilson.com/" pypi = "py6s/Py6S-1.8.0.tar.gz" + version("1.9.2", sha256="2378ef027bbd3ead67cec47e9a14cf799b3bd851bc7833fbd44e2440666c0ff3") version("1.8.0", sha256="256162d2f1f558e601d4f79022c037a0051838ba307b9f4d1f5fcf0b46a0c277") depends_on("python@3:", type=("build", "run"), when="@1.8.0") diff --git a/repos/spack_repo/builtin/packages/py_py_spy/package.py b/repos/spack_repo/builtin/packages/py_py_spy/package.py index 8274544a3c2..c4a92b0e44e 100644 --- a/repos/spack_repo/builtin/packages/py_py_spy/package.py +++ b/repos/spack_repo/builtin/packages/py_py_spy/package.py @@ -15,6 +15,7 @@ class PyPySpy(CargoPackage): license("MIT", checked_by="lgarrison") + version("0.4.1", sha256="6abc303d4e2db30d472997838f83d547a990df7747e1d327249a757863ee9225") version("0.4.0", sha256="13a5c4b949947425670eedac05b6dd27edbc736b75f1587899efca1a7ef79ac3") version("0.3.8", sha256="9dbfd0ea79ef31a2966891e86cf6238ed3831938cf562e71848e07b7009cf57d") version("0.3.3", sha256="41454d3d9132da45c72f7574faaff65f40c757720293a277ffa5ec5a4b44f902") diff --git a/repos/spack_repo/builtin/packages/py_pyahocorasick/package.py b/repos/spack_repo/builtin/packages/py_pyahocorasick/package.py new file mode 100644 index 00000000000..65bcd2810ad --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pyahocorasick/package.py @@ -0,0 +1,31 @@ +# 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 PyPyahocorasick(PythonPackage): + """Fast and memory efficient library for exact or approximate + multi-pattern string search.""" + + homepage = "http://github.com/WojciechMula/pyahocorasick" + pypi = "pyahocorasick/pyahocorasick-2.1.0.tar.gz" + + version("2.1.0", sha256="4df4845c1149e9fa4aa33f0f0aa35f5a42957a43a3d6e447c9b44e679e2672ea") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools", type="build") + + # Optional dependencies for testing + depends_on("py-pytest", type="test") + depends_on("py-twine", type="test") + depends_on("py-wheel", type="test") + + def build_args(self, spec, prefix): + args = [] + # By default, build as unicode (matches setup.py behavior) + args.append("--define-macros=AHOCORASICK_UNICODE") + return args diff --git a/repos/spack_repo/builtin/packages/py_pyamg/package.py b/repos/spack_repo/builtin/packages/py_pyamg/package.py index 599cfaa9ef3..e516f5e5e44 100644 --- a/repos/spack_repo/builtin/packages/py_pyamg/package.py +++ b/repos/spack_repo/builtin/packages/py_pyamg/package.py @@ -18,6 +18,7 @@ class PyPyamg(PythonPackage): license("MIT") + version("5.3.0", sha256="c83e745f93e60a3fc1598ca6369049387403be1db4f6ac887866259c853f6364") version("5.0.0", sha256="088be4b38203e708905fa45295593c1336b127a28391486d4f5917cf0b96f5f2") version("4.2.3", sha256="dcf23808e0e8edf177fc4f71a6b36e0823ffb117137a33a9eee14b391ddbb733") version("4.1.0", sha256="9e340aef5da11280a1e28f28deeaac390f408e38ee0357d0fdbb77503747bbc4") @@ -26,9 +27,12 @@ class PyPyamg(PythonPackage): depends_on("python", type=("build", "link", "run")) depends_on("py-numpy@1.7:", type=("build", "run")) depends_on("py-scipy@0.12:", type=("build", "run")) + depends_on("py-scipy@0.12:1.15", type=("build", "run"), when="@:5.2") depends_on("py-setuptools@42:", type="build", when="@4.2.0:") # Later version required due to # https://github.com/pypa/setuptools_scm/issues/758 depends_on("py-setuptools-scm@7.1:+toml", type="build", when="@5.0.0:") depends_on("py-setuptools-scm@5:+toml", type="build", when="@4.2.0:") depends_on("py-pybind11@2.8.0:", type=("build", "link"), when="@4.2.0:") + + depends_on("cxx", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pyani/package.py b/repos/spack_repo/builtin/packages/py_pyani/package.py index 1cadd43ad11..5a4d1b25721 100644 --- a/repos/spack_repo/builtin/packages/py_pyani/package.py +++ b/repos/spack_repo/builtin/packages/py_pyani/package.py @@ -19,6 +19,7 @@ class PyPyani(PythonPackage): license("MIT") + version("0.2.12", sha256="4f56b217656f53416b333b69495a4ba8cde782e64e475e1481cb2213ce6b9388") version("0.2.7", sha256="dbc6c71c46fbbfeced3f8237b84474221268b51170caf044bec8559987a7deb9") version("0.2.6", sha256="e9d899bccfefaabe7bfa17d48eef9c713d321d2d15465f7328c8984807c3dd8d") diff --git a/repos/spack_repo/builtin/packages/py_pyarrow/package.py b/repos/spack_repo/builtin/packages/py_pyarrow/package.py index 962e2a94bf0..f413d85a393 100644 --- a/repos/spack_repo/builtin/packages/py_pyarrow/package.py +++ b/repos/spack_repo/builtin/packages/py_pyarrow/package.py @@ -53,11 +53,12 @@ class PyPyarrow(PythonPackage): depends_on("pkgconfig") # pyproject.toml, setup.py - depends_on("py-cython@0.29.31:", when="@14:") - depends_on("py-cython@0.29.31:2", when="@12:13") - depends_on("py-cython@0.29.22:2", when="@8:11") - depends_on("py-cython@0.29:2", when="@0.15:7") - depends_on("py-cython@:2", when="@:0.14") + depends_on("py-cython@0.29.31:", when="@12:") + depends_on("py-cython@0.29.22:", when="@8:") + depends_on("py-cython@0.29:", when="@0.15:") + # https://github.com/cython/cython/commit/4d8a3c9701ec78d08cd7923e3936d191d036f0e9 + depends_on("py-cython@:3.0", when="@:16") + depends_on("py-cython@:2", when="@:13") depends_on("py-setuptools-scm@8:+toml", when="@17:") depends_on("py-setuptools-scm", when="@16") depends_on("py-setuptools-scm@:7", when="@0.15:15") diff --git a/repos/spack_repo/builtin/packages/py_pyassimp/package.py b/repos/spack_repo/builtin/packages/py_pyassimp/package.py index 5d8d3a85d2f..e6874b29736 100644 --- a/repos/spack_repo/builtin/packages/py_pyassimp/package.py +++ b/repos/spack_repo/builtin/packages/py_pyassimp/package.py @@ -15,6 +15,7 @@ class PyPyassimp(PythonPackage): license("ISC") + version("5.2.5", sha256="107d93780e4300d70698c4291c54dd32ff78e8cf0dafd56ac1801cd0260c36f3") version("4.1.4", sha256="266bd4be170d46065b8c2ad0f5396dad10938a6bbf9a566c4e4d56456e33aa6a") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pyautogui/package.py b/repos/spack_repo/builtin/packages/py_pyautogui/package.py index 313ed7d3bbc..52d208d22dc 100644 --- a/repos/spack_repo/builtin/packages/py_pyautogui/package.py +++ b/repos/spack_repo/builtin/packages/py_pyautogui/package.py @@ -17,6 +17,7 @@ class PyPyautogui(PythonPackage): license("BSD-3-Clause") + version("0.9.54", sha256="dd1d29e8fd118941cb193f74df57e5c6ff8e9253b99c7b04f39cfc69f3ae04b2") version("0.9.53", sha256="d31de8f712218d90be7fc98091fce1a12a3e9196e0c814eb9afd73bb2ec97035") version("0.9.52", sha256="a486cb6b818bcbcdf98b48d010c7cee964134fa394b756e8ce6e50d43b58ecc8") diff --git a/repos/spack_repo/builtin/packages/py_pybids/package.py b/repos/spack_repo/builtin/packages/py_pybids/package.py index 50c5b55309c..40cbb62c20d 100644 --- a/repos/spack_repo/builtin/packages/py_pybids/package.py +++ b/repos/spack_repo/builtin/packages/py_pybids/package.py @@ -15,6 +15,8 @@ class PyPybids(PythonPackage): license("MIT") + version("0.22.0", sha256="98e7957e47c08d3c131de6f6cef629d009abce888849102b33820ca6a9930152") + version("0.20.0", sha256="a68b577426942e50e6ac37e011463361d00a378d19b75df817619450357ebbb6") version("0.16.3", sha256="10e279350c8d14ca602c0d4469a5e4bf7ff393e8643c831a546ae735b6b82cc3") version("0.16.1", sha256="1a6ab06d375f3b783e738826e6d220b2f4145419b4b02f4edbcc8cb7c9b2208a") version("0.15.3", sha256="4d99c979bc4bc209cff70a02d1da309c9bf8c6b0338e2a0b66ebea77c7f3c461") @@ -25,31 +27,61 @@ class PyPybids(PythonPackage): version("0.9.5", sha256="0e8f8466067ff3023f53661c390c02702fcd5fe712bdd5bf167ffb0c2b920430") version("0.8.0", sha256="fe60fa7d1e171e75a38a04220ed992f1b062531a7452fcb7ce5ba81bb6abfdbc") - depends_on("python@3.8:", when="@0.16:", type=("build", "run")) - depends_on("py-setuptools", when="@0.15.6:", type="build") - depends_on("py-setuptools@30.3:60,61.0.1:", when="@:0.15.5", type="build") - depends_on("py-versioneer+toml", when="@0.15.6:", type="build") - - depends_on("py-numpy@1.19:", when="@0.16:", type=("build", "run")) - depends_on("py-numpy", type=("build", "run")) - depends_on("py-scipy@1.5:", when="@0.16:", type=("build", "run")) - depends_on("py-scipy", type=("build", "run")) - depends_on("py-nibabel@3:", when="@0.16:", type=("build", "run")) - depends_on("py-nibabel@2.1:", type=("build", "run")) - depends_on("py-pandas@0.25.2:", when="@0.16:", type=("build", "run")) - depends_on("py-pandas@0.23:", type=("build", "run")) - depends_on("py-formulaic@0.2.4:0.5", when="@0.15.6:", type=("build", "run")) - depends_on("py-formulaic@0.2.4:0.3", when="@0.15.1:0.15.5", type=("build", "run")) - depends_on("py-formulaic@0.2.4:0.2", when="@0.14:0.15.0", type=("build", "run")) - depends_on("py-sqlalchemy@1.3.16:", when="@0.16:", type=("build", "run")) - depends_on("py-sqlalchemy@:1.3", when="@0.12.4:", type=("build", "run")) - depends_on("py-sqlalchemy", type=("build", "run")) - depends_on("py-bids-validator@1.11:", when="@0.16:", type=("build", "run")) - depends_on("py-bids-validator", type=("build", "run")) - depends_on("py-num2words@0.5.5:", when="@0.16:", type=("build", "run")) - depends_on("py-num2words", type=("build", "run")) - depends_on("py-click@8:", when="@0.15.2:", type=("build", "run")) - depends_on("py-click", when="@0.12.1:", type=("build", "run")) - - # Historical dependencies - depends_on("py-patsy", when="@:0.13", type=("build", "run")) + with default_args(type="build"): + depends_on("py-setuptools", when="@0.15.6:") + depends_on("py-setuptools@30.3:60,61.0.1:", when="@:0.15.5") + depends_on("py-versioneer+toml", when="@0.15.6:") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@0.21:") + depends_on("python@3.9:", when="@0.18:") + depends_on("python@3.8:", when="@0.16:") + + depends_on("py-numpy@1.25:", when="@0.22:") + depends_on("py-numpy@1.23:", when="@0.19:") + depends_on("py-numpy@1.19:", when="@0.16:") + depends_on("py-numpy") + + depends_on("py-scipy@1.11:", when="@0.22:") + depends_on("py-scipy@1.9:", when="@0.19:") + depends_on("py-scipy@1.5:", when="@0.16:") + depends_on("py-scipy") + + depends_on("py-nibabel@5.1:", when="@0.22:") + depends_on("py-nibabel@4:", when="@0.18:") + depends_on("py-nibabel@3:", when="@0.16:") + depends_on("py-nibabel@2.1:") + + depends_on("py-pandas@2:", when="@0.21:") + depends_on("py-pandas@1.5:", when="@0.19:") + depends_on("py-pandas@0.25.2:", when="@0.16:") + depends_on("py-pandas@0.23:") + + depends_on("py-formulaic@0.3:", when="@0.19:") + depends_on("py-formulaic@0.2.4:0.5", when="@0.15.6:0.18") + depends_on("py-formulaic@0.2.4:0.3", when="@0.15.1:0.15.5") + depends_on("py-formulaic@0.2.4:0.2", when="@0.14:0.15.0") + + depends_on("py-sqlalchemy@1.4.31:", when="@0.19:") + depends_on("py-sqlalchemy@1.3.16:", when="@0.16:") + depends_on("py-sqlalchemy@:1.3", when="@0.12.4:0.15") + depends_on("py-sqlalchemy") + + depends_on("py-bids-validator@1.14.7:", when="@0.18:") + depends_on("py-bids-validator@1.11:", when="@0.16:") + depends_on("py-bids-validator") + + depends_on("py-bidsschematools@1.1:", when="@0.22:") + + depends_on("py-num2words@0.5.10:", when="@0.19:") + depends_on("py-num2words@0.5.5:", when="@0.16:") + depends_on("py-num2words") + + depends_on("py-click@8:", when="@0.15.2:") + depends_on("py-click", when="@0.12.1:") + + depends_on("py-universal-pathlib@0.2.2:", when="@0.17:") + depends_on("py-frozendict@2.3:", when="@0.19:") + + # Historical dependencies + depends_on("py-patsy", when="@:0.13") diff --git a/repos/spack_repo/builtin/packages/py_pybind11/package.py b/repos/spack_repo/builtin/packages/py_pybind11/package.py index cdfa8cb780d..3c4cb0128b6 100644 --- a/repos/spack_repo/builtin/packages/py_pybind11/package.py +++ b/repos/spack_repo/builtin/packages/py_pybind11/package.py @@ -28,6 +28,9 @@ class PyPybind11(CMakePackage, PythonExtension): maintainers("ax3l") version("master", branch="master") + version("3.0.2", sha256="2f20a0af0b921815e0e169ea7fec63909869323581b89d7de1553468553f6a2d") + version("3.0.1", sha256="741633da746b7c738bb71f1854f957b9da660bcd2dce68d71949037f0969d0ca") + version("3.0.0", sha256="453b1a3e2b266c3ae9da872411cadb6d693ac18063bd73226d96cfb7015a200c") version("2.13.6", sha256="e08cb87f4773da97fa7b5f035de8763abc656d87d5773e62f6da0587d1f0ec20") version("2.13.5", sha256="b1e209c42b3a9ed74da3e0b25a4f4cd478d89d5efbb48f04b277df427faf6252") version("2.13.4", sha256="efc901aa0aab439a3fea6efeaf930b5a349fb06394bf845c64ce15a9cf8f0240") @@ -63,8 +66,14 @@ class PyPybind11(CMakePackage, PythonExtension): depends_on("cxx", type="build") - depends_on("py-setuptools@42:", type="build") + with when("@3:"): + depends_on("py-scikit-build-core@0.11.2:", type="build") + with when("@:2"): + depends_on("py-setuptools@42:", type="build") + depends_on("py-pytest", type="test") + depends_on("py-build", type="test", when="@3:") + depends_on("py-tomlkit", type="test", when="@3:") depends_on("py-pip", type="build") depends_on("py-wheel", type="build") extends("python") diff --git a/repos/spack_repo/builtin/packages/py_pybtex/package.py b/repos/spack_repo/builtin/packages/py_pybtex/package.py index 342b8c955fa..d67eaf25c0b 100644 --- a/repos/spack_repo/builtin/packages/py_pybtex/package.py +++ b/repos/spack_repo/builtin/packages/py_pybtex/package.py @@ -17,11 +17,15 @@ class PyPybtex(PythonPackage): license("MIT") + version("0.26.1", sha256="2e5543bea424e60e9e42eef70bff597be48649d8f68ba061a7a092b2477d5464") version("0.24.0", sha256="818eae35b61733e5c007c3fcd2cfb75ed1bc8b4173c1f70b56cc4c0802d34755") version("0.21", sha256="af8a6c7c74954ad305553b118d2757f68bc77c5dd5d5de2cc1fd16db90046000") + depends_on("python@3.8:", type=("build", "run"), when="@0.25:") depends_on("python@2.7:2.8,3.3:", type=("build", "run")) - depends_on("py-setuptools", type="build") + depends_on("py-hatchling", type="build", when="@0.25:") + depends_on("py-setuptools", type="build", when="@:0.24") depends_on("py-latexcodec@1.0.4:", type=("build", "run")) depends_on("py-pyyaml@3.01:", type=("build", "run")) depends_on("py-six", type=("build", "run"), when="@0.24.0:") + depends_on("py-importlib-metadata", type=("build", "run"), when="@0.25: ^python@:3.9") diff --git a/repos/spack_repo/builtin/packages/py_pybv/package.py b/repos/spack_repo/builtin/packages/py_pybv/package.py index 62b997b12fd..946d6d99a13 100644 --- a/repos/spack_repo/builtin/packages/py_pybv/package.py +++ b/repos/spack_repo/builtin/packages/py_pybv/package.py @@ -12,13 +12,19 @@ class PyPybv(PythonPackage): homepage = "https://github.com/bids-standard/pybv" pypi = "pybv/pybv-0.7.5.tar.gz" - git = "https://github.com/bids-standard/pybv" + git = "https://github.com/bids-standard/pybv.git" license("BSD-3-Clause") + version("0.7.6", sha256="518dac9bf151601c45787bf0ddcc5e37afd61033058eb734067825f8ae46d51b") version("0.7.5", sha256="57bb09305c1255b11dd5c6a75d0e6b3c81675cf0469d6a757b148ac332ac05d5") - depends_on("python@3.7:3", type=("build", "run")) - depends_on("py-setuptools@46.4:", type="build") + depends_on("python@3.9:", type=("build", "run"), when="@0.7.6:") + depends_on("python@3.7:3", type=("build", "run"), when="@:0.7.5") + depends_on("py-hatch-vcs", type="build", when="@0.7.6:") + depends_on("py-hatchling", type="build", when="@0.7.6:") depends_on("py-numpy@1.18.1:", type=("build", "run")) + + # Historical dependencies + depends_on("py-setuptools@46.4:", type="build", when="@:0.7.5") diff --git a/repos/spack_repo/builtin/packages/py_pycgns/package.py b/repos/spack_repo/builtin/packages/py_pycgns/package.py new file mode 100644 index 00000000000..9abd0c349b4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pycgns/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 PyPycgns(PythonPackage): + """PyCGNS package provides Python bindings for the CGNS library.""" + + homepage = "https://github.com/pyCGNS/pyCGNS" + + pypi = "pyCGNS/pycgns-6.3.5.tar.gz" + + maintainers("williampiat3") + + license("LGPL-2.1-only") + + version( + "6.3.5", + sha256="0414362305e7831c5719ccedfbec2c477bd345a6ff426d2a0601de727c5d74c3", + ) + + # build dependencies + with default_args(type="build"): + depends_on("c") + depends_on("py-meson-python@0.15:") + depends_on("py-cython@3.0.6:") + depends_on("pkgconfig") + # run dependencies + with default_args(type=("build", "run")): + depends_on("python@3.10:") + depends_on("py-numpy@2:") + depends_on("hdf5~mpi+hl") + + def setup_build_environment(self, env): + env.set("CC", self.compiler.cc) diff --git a/repos/spack_repo/builtin/packages/py_pyclibrary/package.py b/repos/spack_repo/builtin/packages/py_pyclibrary/package.py new file mode 100644 index 00000000000..add86ca5dd7 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pyclibrary/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 PyPyclibrary(PythonPackage): + """C parser and bindings automation for Python.""" + + homepage = "https://pyclibrary.readthedocs.io" + pypi = "pyclibrary/pyclibrary-0.2.2.tar.gz" + + version("0.2.2", sha256="9902fffe361bb86f57ab62aa4195ec4dd382b63c5c6892be6d9784ec0a3575f7") + + depends_on("py-setuptools", type="build") + depends_on("python", type=("build", "run")) + depends_on("py-pyparsing@2.3.1:3", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pycocotools/package.py b/repos/spack_repo/builtin/packages/py_pycocotools/package.py index 20172e1c75d..b4f63407a79 100644 --- a/repos/spack_repo/builtin/packages/py_pycocotools/package.py +++ b/repos/spack_repo/builtin/packages/py_pycocotools/package.py @@ -13,6 +13,8 @@ class PyPycocotools(PythonPackage): homepage = "https://github.com/ppwwyyxx/cocoapi" pypi = "pycocotools/pycocotools-2.0.2.tar.gz" + license("FreeBSD") + version("2.0.9", sha256="ba82e550670aa1182a911fb3e5f0e83345432044438707bd52c2519cda16872a") version("2.0.8", sha256="8f2bcedb786ba26c367a3680f9c4eb5b2ad9dccb2b34eaeb205e0a021e1dfb8d") version("2.0.6", sha256="7fe089b05cc18e806dcf3bd764708d86dab922a100f3734eb77fb77a70a1d18c") diff --git a/repos/spack_repo/builtin/packages/py_pycodestyle/package.py b/repos/spack_repo/builtin/packages/py_pycodestyle/package.py index 8a9643123c3..170175fd4f4 100644 --- a/repos/spack_repo/builtin/packages/py_pycodestyle/package.py +++ b/repos/spack_repo/builtin/packages/py_pycodestyle/package.py @@ -16,6 +16,7 @@ class PyPycodestyle(PythonPackage): license("MIT") + version("2.14.0", sha256="c4b5b517d278089ff9d0abdec919cd97262a3367449ea1c8b49b91529167b783") version("2.11.0", sha256="259bcc17857d8a8b3b4a2327324b79e5f020a13c16074670f9c8c8f872ea76d0") version("2.10.0", sha256="347187bdb476329d98f695c213d7295a846d1152ff4fe9bacb8a9590b8ee7053") version("2.9.1", sha256="2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785") diff --git a/repos/spack_repo/builtin/packages/py_pycompadre/package.py b/repos/spack_repo/builtin/packages/py_pycompadre/package.py index 0776666a75e..5bae36c6a46 100644 --- a/repos/spack_repo/builtin/packages/py_pycompadre/package.py +++ b/repos/spack_repo/builtin/packages/py_pycompadre/package.py @@ -22,34 +22,68 @@ class PyPycompadre(PythonPackage): maintainers("kuberry") version("master", branch="master") - version("1.6.0", sha256="5d937f85c2e64b50955beab1ac9f1083162f5239a5f13a40ef9a9c0e6ad216c9") - version("1.5.0", sha256="b7dd6020cc5a7969de817d5c7f6c5acceaad0f08dcfd3d7cacfa9f42e4c8b335") - version("1.4.1", sha256="2e1e7d8e30953f76b6dc3a4c86ec8103d4b29447194cb5d5abb74b8e4099bdd9") - version("1.3.0", sha256="f711a840fd921e84660451ded408023ec3bcfc98fd0a7dc4a299bfae6ab489c2") - - variant( - "debug", - default="0", - values=["0", "1", "2"], - multi=False, - description="Debugging level 0) release 1) debug 2) extreme debugging", + version("1.7.2", sha256="4b7c2944300fd025957be44a1114177dfa0aafcf9e613d830a94e020b2f1751e") + version( + "1.6.2", + sha256="ad4122feed81e9f661ee86e73ad4bf53dbfb2470b389a4ea31e6c8d727c8bec8", + deprecated=True, + ) + version( + "1.6.0", + sha256="5d937f85c2e64b50955beab1ac9f1083162f5239a5f13a40ef9a9c0e6ad216c9", + deprecated=True, + ) + version( + "1.5.0", + sha256="b7dd6020cc5a7969de817d5c7f6c5acceaad0f08dcfd3d7cacfa9f42e4c8b335", + deprecated=True, + ) + version( + "1.4.1", + sha256="2e1e7d8e30953f76b6dc3a4c86ec8103d4b29447194cb5d5abb74b8e4099bdd9", + deprecated=True, + ) + version( + "1.3.0", + sha256="f711a840fd921e84660451ded408023ec3bcfc98fd0a7dc4a299bfae6ab489c2", + deprecated=True, ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated depends_on("cmake@3.10:", type="build", when="@:1.4") - depends_on("cmake@3.16:", type="build", when="@1.5:") + depends_on("cmake@3.16:", type="build", when="@1.5:1.6") + depends_on("cmake@3.24:", type="build", when="@1.7:") depends_on("kokkos-kernels@3.3.01:4", when="@:1.5") - depends_on("kokkos-kernels@4:", when="@1.6:") + depends_on("kokkos-kernels@4:", when="@1.6") + depends_on("kokkos-kernels@4.5.1:", when="@1.7:") + requires("%clang", when="^kokkos+cuda~wrapper") + + variant( + "build_type", + default="Debug", + values=("Debug", "Release", "RelWithDebInfo", "MinSizeRel"), + description="CMake build type: Debug, Release, RelWithDebInfo, MinSizeRel", + ) + variant("extreme_debug", default="False", description="Enable extreme debugging") + conflicts("+extreme_debug", when="build_type=Release") + conflicts("+extreme_debug", when="build_type=RelWithDebInfo") depends_on("python@3.4:", type=("build", "link", "run"), when="@:1.5") - depends_on("python@3.6:", type=("build", "link", "run"), when="@1.6:") + depends_on("python@3.6:", type=("build", "link", "run"), when="@1.6") + depends_on("python@3.10:", type=("build", "link", "run"), when="@1.7:") + depends_on("py-setuptools", type="build") depends_on("py-cython@0.23:", type="build") + depends_on("py-pybind11", type="build", when="@:1.6") + depends_on("py-nanobind", type="build", when="@1.7:") + + depends_on("py-numpy@:2.3", when="@:1.6") + depends_on("py-numpy@2.1:", when="@1.7:") + # fixes duplicate symbol issue with static library build patch( "https://github.com/sandialabs/Compadre/commit/af91a6ee3831dc951445df76053ec6315c58cb45.patch?full_index=1", @@ -57,22 +91,41 @@ class PyPycompadre(PythonPackage): when="@1.5.0", ) + # logic borrowed from Trilinos recipe + def setup_build_environment(self, env: EnvironmentModifications) -> None: + spec = self.spec + if "^kokkos+cuda+wrapper" in spec: + if "+mpi" in spec: + env.set("OMPI_CXX", self["kokkos-nvcc-wrapper"].kokkos_cxx) + env.set("MPICH_CXX", self["kokkos-nvcc-wrapper"].kokkos_cxx) + env.set("MPICXX_CXX", self["kokkos-nvcc-wrapper"].kokkos_cxx) + else: + env.set("CXX", self["kokkos-nvcc-wrapper"].kokkos_cxx) + + if "^kokkos+rocm" in spec: + if "+mpi" in spec: + env.set("OMPI_CXX", self.spec["hip"].hipcc) + env.set("MPICH_CXX", self.spec["hip"].hipcc) + env.set("MPICXX_CXX", self.spec["hip"].hipcc) + else: + env.set("CXX", self.spec["hip"].hipcc) + @run_before("install") def set_cmake_from_variants(self): spec = self.spec with open("cmake_opts.txt", "w") as f: - f.write("KokkosCore_PREFIX:PATH=%s\n" % spec["kokkos"].prefix) - f.write("KokkosKernels_PREFIX:PATH=%s\n" % spec["kokkos-kernels"].prefix) - f.write("CMAKE_CXX_COMPILER:STRING={0}\n".format(self["kokkos"].kokkos_cxx)) - if spec.variants["debug"].value == "0": - f.write( - "CMAKE_CXX_FLAGS:STRING=%s\n" - % "' -Ofast -funroll-loops -march=native -mtune=native '" - ) - f.write("Compadre_DEBUG:BOOL=OFF\n") - else: - f.write("CMAKE_CXX_FLAGS:STRING=%s\n" % "'-g -O0'") - f.write("CMAKE_BUILD_TYPE:STRING=%s\n" % "DEBUG") - f.write("Compadre_DEBUG:BOOL=ON\n") - if spec.variants["debug"].value == "2": - f.write("Compadre_EXTREME_DEBUG:BOOL=ON\n") + f.write("Kokkos_ROOT:PATH=%s\n" % spec["kokkos"].prefix) + f.write("KokkosKernels_ROOT:PATH=%s\n" % spec["kokkos-kernels"].prefix) + + # Compadre_DEBUG is default OFF and handled from CMAKE_BUILD_TYPE beginning in v1.7.0 + f.write("CMAKE_BUILD_TYPE:STRING=%s\n" % spec.variants["build_type"].value) + if spec.satisfies("@:1.6"): + if spec.variants["build_type"].value.upper() == "RELEASE": + f.write("Compadre_DEBUG:BOOL=OFF\n") + elif spec.variants["build_type"].value.upper() == "RELWITHDEBINFO": + f.write("Compadre_DEBUG:BOOL=OFF\n") + else: + f.write("Compadre_DEBUG:BOOL=OFF\n") + + if spec.variants["extreme_debug"].value: + f.write("Compadre_EXTREME_DEBUG:BOOL=ON\n") diff --git a/repos/spack_repo/builtin/packages/py_pyconify/package.py b/repos/spack_repo/builtin/packages/py_pyconify/package.py new file mode 100644 index 00000000000..f2046f3b5ca --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pyconify/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 PyPyconify(PythonPackage): + """Pyconify is a wrapper for the Iconify API. + + Iconify is a versatile icon framework that includes 100+ icon sets with + more than 100,000 icons from FontAwesome, Material Design Icons, DashIcons, + Feather Icons, EmojiOne, Noto Emoji and many other open source icon + sets.""" + + homepage = "https://github.com/pyapp-kit/pyconify" + pypi = "pyconify/pyconify-0.2.1.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("0.2.1", sha256="8dd53757d9fbed41711434460932b2b5dbc25da720cd9f9a44af0187b2dfc07d") + + depends_on("python@3.9:", type=("build", "run")) + + depends_on("py-hatchling", type="build") + + depends_on("py-requests", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pycortex/package.py b/repos/spack_repo/builtin/packages/py_pycortex/package.py index cc79158b17d..18332a571c0 100644 --- a/repos/spack_repo/builtin/packages/py_pycortex/package.py +++ b/repos/spack_repo/builtin/packages/py_pycortex/package.py @@ -19,28 +19,43 @@ class PyPycortex(PythonPackage): license("BSD-2-Clause") + version("1.3.1", sha256="2d4eef825cde211a33b5cdb51fd974674042834653f8fd163b8e3b20e061af60") version("1.2.2", sha256="ac46ed6a1dc727c3126c2b5d7916fc0ac21a6510c32a5edcd3b8cfb7b2128414") - depends_on("c", type="build") # generated - - depends_on("py-setuptools", type="build") - depends_on("py-cython", type="build") - depends_on("py-future", type=("build", "run")) - depends_on("py-numpy", type=("build", "run")) - depends_on("py-scipy", type=("build", "run")) - depends_on("py-tornado@4.3:", type=("build", "run")) - depends_on("py-shapely", type=("build", "run")) - depends_on("py-lxml", type=("build", "run")) - depends_on("py-html5lib", type=("build", "run")) - depends_on("py-h5py", type=("build", "run")) - depends_on("py-numexpr", type=("build", "run")) - depends_on("py-cython", type=("build", "run")) # is in install_requires - depends_on("py-matplotlib", type=("build", "run")) - depends_on("pil", type=("build", "run")) - depends_on("py-nibabel", type=("build", "run")) - depends_on("py-networkx@2.1:", type=("build", "run")) - depends_on("py-imageio", type=("build", "run")) - depends_on("py-wget", type=("build", "run")) + with default_args(type="build"): + depends_on("c") + + depends_on("py-setuptools@64:", when="@1.2.13:") + depends_on("py-setuptools") + depends_on("py-setuptools-scm@8:", when="@1.2.13:") + depends_on("py-build", when="@1.2.9:") + + with default_args(type=("build", "run")): + # from requirements.txt + depends_on("py-setuptools", when="@1.2.9:") + depends_on("py-future") + depends_on("py-numpy") + depends_on("py-scipy") + depends_on("py-tornado@4.3:") + depends_on("py-shapely") + depends_on("py-lxml") + depends_on("py-html5lib") + depends_on("py-h5py") + depends_on("py-numexpr") + depends_on("py-cython", when="@1.2.11:") + depends_on("py-cython@:2", when="@:1.2.10") + depends_on("py-matplotlib") + depends_on("pil") + depends_on("py-nibabel@2.1:", when="@1.2.6:") + depends_on("py-nibabel") + depends_on("py-networkx@2.1:") + depends_on("py-imageio") + depends_on("py-looseversion", when="@1.2.10:") + depends_on("py-mda-xdrlib", when="@1.2.11:") + depends_on("py-typing-extensions", when="@1.3: ^python@:3.10") + + # Historical dependencies + depends_on("py-wget", when="@:1.2.8") # inkscape is not in spack # TODO remove this patch and add inkscape dependency once it is in diff --git a/repos/spack_repo/builtin/packages/py_pycparser/package.py b/repos/spack_repo/builtin/packages/py_pycparser/package.py index 2705bdf5a0f..64f3655d350 100644 --- a/repos/spack_repo/builtin/packages/py_pycparser/package.py +++ b/repos/spack_repo/builtin/packages/py_pycparser/package.py @@ -15,6 +15,8 @@ class PyPycparser(PythonPackage): license("BSD-3-Clause") + version("3.0", sha256="600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29") + version("2.23", sha256="78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2") version("2.21", sha256="e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206") version("2.20", sha256="2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0") version("2.19", sha256="a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3") @@ -22,7 +24,12 @@ class PyPycparser(PythonPackage): version("2.17", sha256="0aac31e917c24cb3357f5a4d5566f2cc91a19ca41862f6c3c22dc60a629673b6") version("2.13", sha256="b399599a8a0e386bfcbc5e01a38d79dd6e926781f9e358cd5512f41ab7d20eb7") - depends_on("c", type="build") # generated + with default_args(type="build"): + depends_on("c") - depends_on("python@2.7:2.8,3.4:", type=("build", "run")) - depends_on("py-setuptools", type="build") + depends_on("py-setuptools@69:", when="@3:") + depends_on("py-setuptools") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@3:") + depends_on("python@3.8:", when="@2.22:") diff --git a/repos/spack_repo/builtin/packages/py_pycryptodomex/package.py b/repos/spack_repo/builtin/packages/py_pycryptodomex/package.py new file mode 100644 index 00000000000..cbf12011289 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pycryptodomex/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyPycryptodomex(PythonPackage): + """Cryptographic library for Python.""" + + homepage = "https://www.pycryptodome.org/" + pypi = "pycryptodomex/pycryptodomex-3.23.0.tar.gz" + + license("BSD-2-Clause") + + version("3.23.0", sha256="71909758f010c82bc99b0abf4ea12012c98962fbf0583c2164f8b84533c2e4da") + + depends_on("python", type=("build", "link", "run")) + depends_on("c", type="build") + depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pycubexr/package.py b/repos/spack_repo/builtin/packages/py_pycubexr/package.py index 1610a811539..984f4560aff 100644 --- a/repos/spack_repo/builtin/packages/py_pycubexr/package.py +++ b/repos/spack_repo/builtin/packages/py_pycubexr/package.py @@ -15,7 +15,12 @@ class PyPycubexr(PythonPackage): license("BSD-3-Clause") + maintainers("pearzt") + + version("2.1.1", sha256="124031f86ed313c5c58048a16e8661324e644fea025795509516bd55df0e709a") + version("2.1.0", sha256="c09ea0d3a13465f38ce1302eb980f8e0cd1293f9d1dc5d21eb5bd47c19f8fe0d") + version("2.0.1", sha256="699643c076b603fb1140564da6c4589b73ec9efd3b9112cd3d957f5bee646915") version("2.0.0", sha256="03504fbbc9cbd514943e8aeb57919ad49731fe264bdbab86711bf10851276924") depends_on("py-setuptools", type="build") - depends_on("py-numpy@1.18:1", type=("build", "run")) + depends_on("py-numpy@1.18:2", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pydantic/package.py b/repos/spack_repo/builtin/packages/py_pydantic/package.py index 0b354964f4d..789f332f5ce 100644 --- a/repos/spack_repo/builtin/packages/py_pydantic/package.py +++ b/repos/spack_repo/builtin/packages/py_pydantic/package.py @@ -15,8 +15,12 @@ class PyPydantic(PythonPackage): license("MIT") + version("2.12.5", sha256="4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49") + version("2.12.4", sha256="0f8cb9555000a4b5b617f66bfd2566264c4984b27589d3b845685983e8ea85ac") version("2.10.1", sha256="a4daca2dc0aa429555e0656d6bf94873a7dc5f54ee42b1f5873d666fb3f35560") + version("2.9.0", sha256="c7a8a9fdf7d100afa49647eae340e2d23efa382466a8d177efcd1381e9be5598") version("2.7.4", sha256="0c84efd9548d545f63ac0060c1e4d39bb9b14db8b3c0652338aecc07b5adec52") + version("1.10.26", sha256="8c6aa39b494c5af092e690127c283d84f363ac36017106a9e66cb33a22ac412e") version("1.10.19", sha256="fea36c2065b7a1d28c6819cc2e93387b43dd5d3cf5a1e82d8132ee23f36d1f10") version("1.10.9", sha256="95c70da2cd3b6ddf3b9645ecaa8d98f3d80c606624b6d245558d202cd23ea3be") version("1.10.2", sha256="91b8e218852ef6007c2b98cd861601c6a09f1aa32bbbb74fab5b1c33d4a1e410") @@ -25,9 +29,14 @@ class PyPydantic(PythonPackage): variant("dotenv", default=False, description="Install requirements for pydantic.dotenv") + depends_on("python@3.8:", type="build", when="@2") + depends_on("python@3.9:", type="build", when="@2.11.0:") + depends_on("py-setuptools@68:", type="build", when="@1.10.20:1") depends_on("py-setuptools", type="build", when="@1") + depends_on("py-cython@3:", type="build", when="@1.10.20:1") depends_on("py-hatchling", type="build", when="@2") depends_on("py-hatch-fancy-pypi-readme@22.5.0:", type="build", when="@2") + depends_on("py-typing-extensions@4.14.1:", when="@2.12:", type=("build", "run")) depends_on("py-typing-extensions@4.12.2:", when="@2.10:", type=("build", "run")) depends_on("py-typing-extensions@4.6.1:", when="@2.7.1:", type=("build", "run")) depends_on("py-typing-extensions@4.2:", when="@1.10.9:", type=("build", "run")) @@ -35,9 +44,13 @@ class PyPydantic(PythonPackage): depends_on("py-typing-extensions@3.7.4.3:", type=("build", "run")) depends_on("py-annotated-types@0.6:", type=("build", "run"), when="@2.10:") depends_on("py-annotated-types@0.4.0:", type=("build", "run"), when="@2.7.4:") + depends_on("py-pydantic-core@2.41.5", type=("build", "run"), when="@2.12.4:") depends_on("py-pydantic-core@2.27.1", type=("build", "run"), when="@2.10.1") + depends_on("py-pydantic-core@2.23.2", type=("build", "run"), when="@2.9.0") depends_on("py-pydantic-core@2.18.4", type=("build", "run"), when="@2.7.4") + depends_on("py-typing-inspection@0.4.2:", type=("build", "run"), when="@2.12.0:") depends_on("py-python-dotenv@0.10.4:", when="@1 +dotenv", type=("build", "run")) + depends_on("py-tzdata", type=("build", "run"), when="@2.9.0 ^python@3.9:") # https://github.com/pydantic/pydantic/pull/9612 conflicts("python@3.12.4:", when="@:1.10.15") diff --git a/repos/spack_repo/builtin/packages/py_pydantic_compat/package.py b/repos/spack_repo/builtin/packages/py_pydantic_compat/package.py new file mode 100644 index 00000000000..1cd7b78cfa1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pydantic_compat/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 PyPydanticCompat(PythonPackage): + """This package provides (unofficial) compatibility mixins and function + adaptors for pydantic v1-v2 cross compatibility. It allows you to use + either v1 or v2 API names, regardless of the pydantic version installed. + (Prefer using v2 names when possible).""" + + homepage = "https://github.com/pyapp-kit/pydantic-compat" + pypi = "pydantic_compat/pydantic_compat-0.1.2.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("0.1.2", sha256="c5c5bca39ca2d22cad00c02898e400e1920e5127649a8e860637f15566739373") + + depends_on("python@3.8:", type=("build", "run")) + + depends_on("py-hatchling", type="build") + + depends_on("py-pydantic", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pydantic_core/package.py b/repos/spack_repo/builtin/packages/py_pydantic_core/package.py index 50323b6a8e0..c259c7bff50 100644 --- a/repos/spack_repo/builtin/packages/py_pydantic_core/package.py +++ b/repos/spack_repo/builtin/packages/py_pydantic_core/package.py @@ -16,12 +16,28 @@ class PyPydanticCore(PythonPackage): license("MIT", checked_by="qwertos") + version("2.41.5", sha256="08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e") + version("2.41.4", sha256="70e47929a9d4a1905a67e4b687d5946026390568a8e952b92824118063cee4d5") version("2.27.1", sha256="62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235") + version("2.23.2", sha256="95d6bf449a1ac81de562d65d180af5d8c19672793c81877a2eda8fde5d08f2fd") version("2.18.4", sha256="ec3beeada09ff865c344ff3bc2f427f5e6c26401cc6113d77e372c3fdac73864") - # Based on PyPI wheel availability - depends_on("python@:3.13", type=("build", "run")) - depends_on("python@:3.12", when="@:2.19", type=("build", "run")) - depends_on("rust@1.76:", type="build") - depends_on("py-maturin@1", type="build") - depends_on("py-typing-extensions@4.6,4.7.1:", type="build") + with default_args(type="build"): + # Cargo.toml + depends_on("rust@1.75:", when="@2.27:") + depends_on("rust@1.76:", when="@2.18") + + # pyproject.toml + depends_on("py-maturin@1.9.4:1", when="@2.41:") + depends_on("py-maturin@1") + + with default_args(type=("build", "run")): + # Based on PyPI wheel availability + depends_on("python@:3.14") + depends_on("python@:3.13", when="@:2.27") + depends_on("python@:3.12", when="@:2.19") + + depends_on("py-typing-extensions@4.14.1:", when="@2.41:") + depends_on("py-typing-extensions@4.6:") + + conflicts("py-typing-extensions@4.7.0") diff --git a/repos/spack_repo/builtin/packages/py_pydantic_settings/package.py b/repos/spack_repo/builtin/packages/py_pydantic_settings/package.py index 6f0896ea9d1..0b2c04ddcc2 100644 --- a/repos/spack_repo/builtin/packages/py_pydantic_settings/package.py +++ b/repos/spack_repo/builtin/packages/py_pydantic_settings/package.py @@ -15,9 +15,14 @@ class PyPydanticSettings(PythonPackage): license("MIT", checked_by="wdconinc") + version("2.14.0", sha256="24285fd4b0e0c06507dd9fdfd331ee23794305352aaec8fc4eb92d4047aeb67d") version("2.6.1", sha256="e0f92546d8a9923cb8941689abf85d6601a8c19a23e97a34b2964a2e3f813ca0") - depends_on("python@3.8:", type=("build", "run")) depends_on("py-hatchling", type="build") - depends_on("py-pydantic@2.7.0:", type=("build", "run")) - depends_on("py-python-dotenv@0.21:", type=("build", "run")) + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@2.14:") + depends_on("py-typing-inspection@0.4:") + depends_on("python@3.8:") + depends_on("py-pydantic@2.7.0:") + depends_on("py-python-dotenv@0.21:") diff --git a/repos/spack_repo/builtin/packages/py_pydap/package.py b/repos/spack_repo/builtin/packages/py_pydap/package.py index 62c826ff0b6..d371633bc8f 100644 --- a/repos/spack_repo/builtin/packages/py_pydap/package.py +++ b/repos/spack_repo/builtin/packages/py_pydap/package.py @@ -14,6 +14,7 @@ class PyPydap(PythonPackage): pypi = "pydap/pydap-3.5.5.tar.gz" license("MIT") + version("3.5.8", sha256="0dc3c7f28fd456e17ed1c789ccfd119938a2bd1d73828cdf5319c69a213df560") version("3.5.5", sha256="0f8ca9b4e244c4d345d0b5269c4ebc886fcd0778b828e5ae1415b7ea5341eabd") version("3.2.2", sha256="86326642e24f421595a74b0f9986da76d7932b277768f501fe214d72592bdc40") diff --git a/repos/spack_repo/builtin/packages/py_pydata_sphinx_theme/package.py b/repos/spack_repo/builtin/packages/py_pydata_sphinx_theme/package.py index ee937848ef2..c2cb07d331a 100644 --- a/repos/spack_repo/builtin/packages/py_pydata_sphinx_theme/package.py +++ b/repos/spack_repo/builtin/packages/py_pydata_sphinx_theme/package.py @@ -15,16 +15,27 @@ class PyPydataSphinxTheme(PythonPackage): license("BSD-3-Clause") + version("0.16.1", sha256="a08b7f0b7f70387219dc659bff0893a7554d5eb39b59d3b8ef37b8401b7642d7") + version("0.16.0", sha256="721dd26e05fa8b992d66ef545536e6cbe0110afb9865820a08894af1ad6f7707") + version("0.15.4", sha256="7762ec0ac59df3acecf49fd2f889e1b4565dbce8b88b2e29ee06fdd90645a06d") + version("0.15.3", sha256="f26ed9b676f61d1b2ae9289f3d7e496e8678dd56f2568b27a66fa4ad1f164efd") + version("0.15.2", sha256="4243fee85b3afcfae9df64f83210a04e7182e53bc3db8841ffff6d21d95ae320") + version("0.15.1", sha256="4606f7d59765ae06ff7cb5e07dead4286ea2ff2164deeee63922481eddf1083c") + version("0.14.4", sha256="f5d7a2cb7a98e35b9b49d3b02cec373ad28958c2ed5c9b1ffe6aff6c56e9de5b") + version("0.14.3", sha256="bd474f347895f3fc5b6ce87390af64330ee54f11ebf9660d5bc3f87d532d4e5c") + version("0.14.2", sha256="53860c95686f2b4fd8823ff977116a0dd654cceb01ff63c415cfeb5f19736753") version("0.14.1", sha256="d8d4ac81252c16a002e835d21f0fea6d04cf3608e95045c816e8cc823e79b053") depends_on("python@3.8:", type=("build", "run")) + depends_on("python@3.9:", type=("build", "run"), when="@0.15.0:") depends_on("py-sphinx-theme-builder", type="build") depends_on("py-sphinx@5:", type=("build", "run")) + depends_on("py-sphinx@6.1:", type=("build", "run"), when="@0.16.0:") depends_on("py-beautifulsoup4", type=("build", "run")) depends_on("py-docutils@:0.16,0.17.1:", type=("build", "run")) - depends_on("py-packaging", type=("build", "run")) + depends_on("py-packaging", type=("build", "run"), when="@:0.15") depends_on("py-babel", type=("build", "run")) depends_on("py-pygments@2.7:", type=("build", "run")) depends_on("py-accessible-pygments", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pydftracer/package.py b/repos/spack_repo/builtin/packages/py_pydftracer/package.py index 2f81de8801e..a2b161f30a0 100644 --- a/repos/spack_repo/builtin/packages/py_pydftracer/package.py +++ b/repos/spack_repo/builtin/packages/py_pydftracer/package.py @@ -40,3 +40,6 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("DFTRACER_INSTALL_DIR", self.prefix) env.set("DFTRACER_PYTHON_SITE", python_purelib) env.set("DFTRACER_BUILD_DEPENDENCIES", "0") + + depends_on("c", type="build") + depends_on("cxx", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pydicom/package.py b/repos/spack_repo/builtin/packages/py_pydicom/package.py index 94986bd225f..300dd0ee014 100644 --- a/repos/spack_repo/builtin/packages/py_pydicom/package.py +++ b/repos/spack_repo/builtin/packages/py_pydicom/package.py @@ -16,6 +16,7 @@ class PyPydicom(PythonPackage): homepage = "https://github.com/pydicom/pydicom" pypi = "pydicom/pydicom-2.1.2.tar.gz" + version("3.0.1", sha256="7b8be344b5b62493c9452ba6f5a299f78f8a6ab79786c729b0613698209603ec") version("2.4.3", sha256="51906e0b9fb6e184a0f56298cb43ed716b7cf7edc00f6b71d5c769bc1f982402") version("2.4.1", sha256="6cb210dbe5586841036e8eeb2d4feb4df22a48f39161ba7ee0bf3c89faaba946") version("2.3.0", sha256="dbfa081c9ad9ac8ff8a8efbd71784104db9eecf02fd775f7d7773f2183f89386") @@ -23,6 +24,8 @@ class PyPydicom(PythonPackage): variant("numpy", default=False, description="Use NumPy for Pixel data") + depends_on("python@3.10:", when="@3:", type=("build", "run")) + depends_on("python@3.7:", when="@2.4:", type=("build", "run")) depends_on("py-flit-core@3.2:3", when="@2.4:", type="build") depends_on("py-numpy", when="+numpy", type="run") diff --git a/repos/spack_repo/builtin/packages/py_pydocstyle/package.py b/repos/spack_repo/builtin/packages/py_pydocstyle/package.py index c2614a6cd98..f5cabb93afb 100644 --- a/repos/spack_repo/builtin/packages/py_pydocstyle/package.py +++ b/repos/spack_repo/builtin/packages/py_pydocstyle/package.py @@ -17,6 +17,7 @@ class PyPydocstyle(PythonPackage): license("MIT") + version("6.3.0", sha256="7ce43f0c0ac87b07494eb9c0b462c0b73e6ff276807f204d6b53edc72b7e44e1") version("6.2.1", sha256="5ddccabe3c9555d4afaabdba909ca2de4fa24ac31e2eede4ab3d528a4bcadd52") version("6.2.0", sha256="b2d280501a4c0d9feeb96e9171dc3f6f7d0064c55270f4c7b1baa18452019fd9") version("6.1.1", sha256="1d41b7c459ba0ee6c345f2eb9ae827cab14a7533a88c5c6f7e94923f72df92dc") diff --git a/repos/spack_repo/builtin/packages/py_pydot/package.py b/repos/spack_repo/builtin/packages/py_pydot/package.py index 74fb2b81aaf..7b95ed3c410 100644 --- a/repos/spack_repo/builtin/packages/py_pydot/package.py +++ b/repos/spack_repo/builtin/packages/py_pydot/package.py @@ -15,12 +15,16 @@ class PyPydot(PythonPackage): license("MIT") + version("4.0.1", sha256="c2148f681c4a33e08bf0e26a9e5f8e4099a82e0e2a068098f32ce86577364ad5") version("1.4.2", sha256="248081a39bcb56784deb018977e428605c1c758f10897a339fce1dd728ff007d") version("1.4.1", sha256="d49c9d4dd1913beec2a997f831543c8cbd53e535b1a739e921642fe416235f01") version("1.2.3", sha256="edb5d3f249f97fbd9c4bb16959e61bc32ecf40eee1a9f6d27abe8d01c0a73502") version("1.2.2", sha256="04a97a885ed418dcc193135cc525fa356cad8b16719293295a149b30718ce400") + depends_on("python@3.8:", type=("build", "run"), when="@3:") depends_on("python@2.7:2.8,3.4:", type=("build", "run"), when="@1.3.0:") + depends_on("py-setuptools@75.3.2:", type="build", when="@4.0.1:") depends_on("py-setuptools", type="build") + depends_on("py-pyparsing@3.1:", type=("build", "run"), when="@4.0.1:") depends_on("py-pyparsing@2.1.4:", type=("build", "run")) depends_on("graphviz", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pydv/package.py b/repos/spack_repo/builtin/packages/py_pydv/package.py deleted file mode 100644 index 86c73d23398..00000000000 --- a/repos/spack_repo/builtin/packages/py_pydv/package.py +++ /dev/null @@ -1,26 +0,0 @@ -# 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 PyPydv(PythonPackage): - """PDV is a 1D graphics and data analysis tool, heavily based on the - ULTRA plotting tool""" - - homepage = "https://github.com/griffin28/PyDV" - url = "https://github.com/griffin28/PyDV/archive/pydv-2.4.2.tar.gz" - - license("BSD-3-Clause") - - version("2.4.2", sha256="46bda76e27e85beaad446455d0cc279388d455f05912a8ff8e4fb66de983992c") - - depends_on("py-setuptools", type="build") - depends_on("py-cycler", type=("build", "run")) - depends_on("py-python-dateutil", type=("build", "run")) - depends_on("py-matplotlib", type=("build", "run")) - depends_on("py-pyside", type=("build", "run")) - depends_on("py-scipy", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pyface/package.py b/repos/spack_repo/builtin/packages/py_pyface/package.py index d302066cf58..8a6b66744ea 100644 --- a/repos/spack_repo/builtin/packages/py_pyface/package.py +++ b/repos/spack_repo/builtin/packages/py_pyface/package.py @@ -27,7 +27,7 @@ class PyPyface(PythonPackage): "backend", default="pyqt5", description="Default backend", - values=("wx", "pyqt", "pyqt5", "pyside", "pyside2"), + values=("wx", "pyqt", "pyqt5", "pyside2"), multi=False, ) @@ -38,7 +38,6 @@ class PyPyface(PythonPackage): depends_on("py-traits@6:", when="@7:", type=("build", "run")) depends_on("py-traits", type=("build", "run")) - conflicts("backend=pyside", when="@7.3:") conflicts("backend=pyside2", when="@:6") # Backends @@ -52,9 +51,6 @@ class PyPyface(PythonPackage): with when("backend=pyqt5"): depends_on("py-pyqt5@5:", type=("build", "run")) depends_on("py-pygments", type=("build", "run")) - with when("backend=pyside"): - depends_on("py-pyside@1.2:", type=("build", "run")) - depends_on("py-pygments", type=("build", "run")) with when("backend=pyside2"): depends_on("py-pyside2", type=("build", "run")) depends_on("py-shiboken2", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pyfive/package.py b/repos/spack_repo/builtin/packages/py_pyfive/package.py new file mode 100644 index 00000000000..84802dad489 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pyfive/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 PyPyfive(PythonPackage): + """A pure python HDF5 reader""" + + homepage = "https://github.com/NCAS-CMS/pyfive" + git = "https://github.com/NCAS-CMS/pyfive.git" + pypi = "pyfive/pyfive-1.1.1.tar.gz" + + maintainers("LydDeb") + + license("BSD-3-Clause", checked_by="LydDeb") + + version("1.1.1", sha256="a43e852947b9bc4703bc174d4e9cec77d61c2324d35961bbae9914aa69821ce5") + + depends_on("python@3.10:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-setuptools@80:") + depends_on("py-setuptools-scm@8:") + with default_args(type=("build", "run")): + depends_on("py-numpy@2:") + # Not in pyproject.toml but necessary to import the 'pyfive' module. + # This dependence appears in high_level.py on line 13 + depends_on("py-typing-extensions") diff --git a/repos/spack_repo/builtin/packages/py_pyflakes/package.py b/repos/spack_repo/builtin/packages/py_pyflakes/package.py index 1ef0fa2cb4c..07a3429bc1c 100644 --- a/repos/spack_repo/builtin/packages/py_pyflakes/package.py +++ b/repos/spack_repo/builtin/packages/py_pyflakes/package.py @@ -15,6 +15,7 @@ class PyPyflakes(PythonPackage): license("MIT") + version("3.4.0", sha256="b24f96fafb7d2ab0ec5075b7350b3d2d2218eab42003821c06344973d3ea2f58") version("3.1.0", sha256="a0aae034c444db0071aa077972ba4768d40c830d9539fd45bf4cd3f8f6992efc") version("3.0.1", sha256="ec8b276a6b60bd80defed25add7e439881c19e64850afd9b346283d4165fd0fd") version("2.5.0", sha256="491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3") @@ -36,7 +37,9 @@ class PyPyflakes(PythonPackage): version("0.9.1", sha256="baad29ac1e884c7077eb32ed1d9ee5cf30bf4b888329e1fcb51b9aa5298cb3b9") version("0.9.0", sha256="4c4d73085ce5de9d8147011c060d129659baa1111d1a5a3035f2bd03f2976538") - depends_on("python@3.6:", when="@2.5:", type=("build", "run")) + depends_on("python@3.9:", type=("build", "run"), when="@3.3:") + depends_on("python@3.8:", type=("build", "run"), when="@3.1:") + depends_on("python@3.6:", type=("build", "run"), when="@2.5:") depends_on("python@2.7:2.8,3.4:", type=("build", "run")) # Most Python packages only require py-setuptools as a build dependency. # However, py-pyflakes requires py-setuptools during runtime as well. diff --git a/repos/spack_repo/builtin/packages/py_pyfr/package.py b/repos/spack_repo/builtin/packages/py_pyfr/package.py index 4af61cbe300..70b669f4327 100644 --- a/repos/spack_repo/builtin/packages/py_pyfr/package.py +++ b/repos/spack_repo/builtin/packages/py_pyfr/package.py @@ -34,8 +34,6 @@ class PyPyfr(PythonPackage, CudaPackage, ROCmPackage): ) version("2.0.2", sha256="2c6bf460ffec446a933451792c09d3cd85d6703f14636d99810d61823b8d92c7") version("1.15.0", sha256="6a634b9d32447f45d3c24c9de0ed620a0a0a781be7cc5e57b1c1bf44a4650d8d") - version("1.14.0", sha256="ebf40ce0896cce9ac802e03fd9430b5be30ea837c31224531a6d5fd68f820766") - version("1.13.0", sha256="ac6ecec738d4e23799ab8c50dea9bdbd7d37bc971bd33f22720c5a230b8e7b2f") variant("metis", default=False, when="@:1.15.0", description="Metis for mesh partitioning") variant("scotch", default=True, description="Scotch for mesh partitioning") @@ -47,7 +45,6 @@ class PyPyfr(PythonPackage, CudaPackage, ROCmPackage): depends_on("python@3.9:", when="@:1.15.0", type=("build", "run")) depends_on("python@3.10:", when="@2.0.2:", type=("build", "run")) depends_on("py-setuptools", type=("build", "run")) - depends_on("py-gimmik@2.3:2", when="@:1.14.0", type=("build", "run")) depends_on("py-gimmik@3", when="@1.15.0", type=("build", "run")) depends_on("py-gimmik@3.2.1:", when="@2.0.2:", type=("build", "run")) depends_on("py-h5py@2.10:", type=("build", "run")) @@ -62,7 +59,6 @@ class PyPyfr(PythonPackage, CudaPackage, ROCmPackage): # Optional dependencies depends_on("metis@5.0.0:5.1.0", when="@:1.15.0 +metis", type=("run")) depends_on("scotch@7.0.1: +link_error_lib", when="+scotch", type=("run")) - depends_on("cuda@8.0: +allow-unsupported-compilers", when="@:1.14.0 +cuda", type=("run")) depends_on("cuda@11.4.0: +allow-unsupported-compilers", when="@1.15.0: +cuda", type=("run")) depends_on("rocblas@5.2.0:", when="@:1.15.0 +hip", type=("run")) depends_on("rocblas@6.0.0:", when="@2.0.2: +hip", type=("run")) diff --git a/repos/spack_repo/builtin/packages/py_pygame/package.py b/repos/spack_repo/builtin/packages/py_pygame/package.py index 0a1948b2bbc..2248522e76f 100644 --- a/repos/spack_repo/builtin/packages/py_pygame/package.py +++ b/repos/spack_repo/builtin/packages/py_pygame/package.py @@ -14,10 +14,11 @@ class PyPygame(PythonPackage): the most common functions, making writing these programs a more intuitive task.""" homepage = "https://www.pygame.org/" - url = "https://pypi.org/project/pygame/2.5.2/" + pypi = "pygame/pygame-2.5.2.tar.gz" license("LGPL-2.1-only") + version("2.6.1", sha256="56fb02ead529cee00d415c3e007f75e0780c655909aaa8e8bf616ee09c9feb1f") version("2.5.2", sha256="c1b89eb5d539e7ac5cf75513125fb5f2f0a2d918b1fd6e981f23bf0ac1b1c24a") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pygdal/package.py b/repos/spack_repo/builtin/packages/py_pygdal/package.py index ad3742738a5..c6dec2c25b6 100644 --- a/repos/spack_repo/builtin/packages/py_pygdal/package.py +++ b/repos/spack_repo/builtin/packages/py_pygdal/package.py @@ -27,9 +27,6 @@ class PyPygdal(PythonPackage): version("3.3.0.10", sha256="ea0c20bee67fac94fe0b1cb604a4fd0dc600aa8aa15cf9a7b6dc76adeb48670e") version("3.0.4.6", sha256="8e39b58cd9465bb5f41786a7cf6a62df93334c104db05a5bfb8181a0be276b86") version("3.0.1.5", sha256="1222f69fe5e6b632d0d2a42d3acb8fac80fb4577c05e01969d8cd5548192ccaa") - version("2.4.2.5", sha256="73386683c0b10ab43b6d64257fca2ba812f53ec61b268de8811565fd9ae9bacd") - version("2.4.1.6", sha256="5d1af98ad09f59e34e3b332cf20630b532b33c7120295aaaabbccebf58a11aa4") - version("2.4.0.6", sha256="728d11f3ecae0cd3493cd27dab599a0b6184f5504cc172d49400d88ea2b24a9c") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -42,6 +39,3 @@ class PyPygdal(PythonPackage): depends_on("gdal@3.3.0", type=("build", "link", "run"), when="@3.3.0.10") depends_on("gdal@3.0.4", type=("build", "link", "run"), when="@3.0.4.6") depends_on("gdal@3.0.1", type=("build", "link", "run"), when="@3.0.1.5") - depends_on("gdal@2.4.2", type=("build", "link", "run"), when="@2.4.2.5") - depends_on("gdal@2.4.1", type=("build", "link", "run"), when="@2.4.1.6") - depends_on("gdal@2.4.0", type=("build", "link", "run"), when="@2.4.0.6") diff --git a/repos/spack_repo/builtin/packages/py_pygdbmi/package.py b/repos/spack_repo/builtin/packages/py_pygdbmi/package.py index 4a1c56b7857..77d463a28f2 100644 --- a/repos/spack_repo/builtin/packages/py_pygdbmi/package.py +++ b/repos/spack_repo/builtin/packages/py_pygdbmi/package.py @@ -15,6 +15,7 @@ class PyPygdbmi(PythonPackage): license("MIT") + version("0.11.0.0", sha256="7a286be2fcf25650d9f66e11adc46e972cf078a466864a700cd44739ad261fb0") version("0.9.0.3", sha256="5bdf2f072e8f2f6471f19f8dcd87d6425c5d8069d47c0a5ffe8d0eff48cb171e") depends_on("python@3.5:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pygelf/package.py b/repos/spack_repo/builtin/packages/py_pygelf/package.py index 667f7d8efdf..43eadac7a4c 100644 --- a/repos/spack_repo/builtin/packages/py_pygelf/package.py +++ b/repos/spack_repo/builtin/packages/py_pygelf/package.py @@ -19,6 +19,7 @@ class PyPygelf(PythonPackage): license("MIT") + version("0.4.3", sha256="8ed972563be3c8f168483f01dbf522b6bc697959c97a3f4881324b3f79638911") version("0.4.0", sha256="3693da38794561d42b0556a78af7dcb22d92ea450125577e58089ab89a890ee5") version("0.3.6", sha256="3e5bc59e3b5a754556a76ff2c69fcf2003218ad7b5ff8417482fa1f6a7eba5f9") diff --git a/repos/spack_repo/builtin/packages/py_pygit2/package.py b/repos/spack_repo/builtin/packages/py_pygit2/package.py index 3e9d190684f..13b670cc7ae 100644 --- a/repos/spack_repo/builtin/packages/py_pygit2/package.py +++ b/repos/spack_repo/builtin/packages/py_pygit2/package.py @@ -19,11 +19,6 @@ class PyPygit2(PythonPackage): version("1.11.1", sha256="793f583fd33620f0ac38376db0f57768ef2922b89b459e75b1ac440377eb64ec") version("1.6.0", sha256="7aacea4e57011777f4774421228e5d0ddb9a6ddb87ac4b542346d17ab12a4d62") version("1.4.0", sha256="cbeb38ab1df9b5d8896548a11e63aae8a064763ab5f1eabe4475e6b8a78ee1c8") - version( - "1.3.0", - sha256="0be93f6a8d7cbf0cc79ae2f0afb1993fc055fc0018c27e2bd01ba143e51d4452", - deprecated=True, - ) depends_on("c", type="build") # generated @@ -34,11 +29,9 @@ class PyPygit2(PythonPackage): depends_on("libgit2@1.4", when="@1.9") depends_on("libgit2@1.3", when="@1.7:1.8") depends_on("libgit2@1.1", when="@1.4:1.6") - depends_on("libgit2@1.0", when="@1.2:1.3") depends_on("python@3.8:3.11", when="@1.11:1.12.1") depends_on("python@:3.10", when="@1.7:1.10") depends_on("python@:3.9", when="@1.4:1.6") - depends_on("python@:3.8", when="@1.0:1.3") depends_on("py-cffi@1.4.0:", when="@:1.5", type=("build", "run")) depends_on("py-cffi@1.6.0:", when="@1.6:1.7", type=("build", "run")) depends_on("py-cffi@1.9.1:", when="@1.8:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pygithub/package.py b/repos/spack_repo/builtin/packages/py_pygithub/package.py index 3bf82a7e4b3..83863255e36 100644 --- a/repos/spack_repo/builtin/packages/py_pygithub/package.py +++ b/repos/spack_repo/builtin/packages/py_pygithub/package.py @@ -11,14 +11,26 @@ class PyPygithub(PythonPackage): """Typed interactions with the GitHub API v3""" homepage = "https://pygithub.readthedocs.io/" - pypi = "PyGithub/PyGithub-1.54.1.tar.gz" + pypi = "pygithub/pygithub-2.8.1.tar.gz" license("LGPL-3.0-only") version("2.8.1", sha256="341b7c78521cb07324ff670afd1baa2bf5c286f8d9fd302c1798ba594a5400c9") - version("2.1.1", sha256="ecf12c2809c44147bce63b047b3d2e9dac8a41b63e90fcb263c703f64936b97c") - version("1.59.1", sha256="c44e3a121c15bf9d3a5cc98d94c9a047a5132a9b01d22264627f58ade9ddc217") - version("1.55", sha256="1bbfff9372047ff3f21d5cd8e07720f3dbfdaf6462fcaed9d815f528f1ba7283") + version( + "2.1.1", + sha256="ecf12c2809c44147bce63b047b3d2e9dac8a41b63e90fcb263c703f64936b97c", + url="https://files.pythonhosted.org/packages/source/P/PyGithub/pygithub-2.1.1.tar.gz", + ) + version( + "1.59.1", + sha256="c44e3a121c15bf9d3a5cc98d94c9a047a5132a9b01d22264627f58ade9ddc217", + url="https://files.pythonhosted.org/packages/source/P/PyGithub/PyGithub-1.59.1.tar.gz", + ) + version( + "1.55", + sha256="1bbfff9372047ff3f21d5cd8e07720f3dbfdaf6462fcaed9d815f528f1ba7283", + url="https://files.pythonhosted.org/packages/source/P/PyGithub/PyGithub-1.55.tar.gz", + ) depends_on("python@3.6:", type=("build", "run")) depends_on("python@3.7:", type=("build", "run"), when="@1.57:") @@ -33,16 +45,12 @@ class PyPygithub(PythonPackage): depends_on("py-requests@2.14.0:", type=("build", "run")) depends_on("py-pyjwt@2.4.0:", type=("build", "run")) depends_on("py-pyjwt@2.4.0: +crypto", type=("build", "run"), when="@1.58.1:") + depends_on("py-typing-extensions@4.5:", type=("build", "run"), when="@2.8.1:") depends_on("py-typing-extensions@4:", type=("build", "run"), when="@2.1.0:") depends_on("py-typing-extensions@4.5:", type=("build", "run"), when="@2.8.1:") depends_on("py-urllib3@1.26.0:", type=("build", "run"), when="@2.1.0:") depends_on("py-deprecated", type=("build", "run"), when="@:2.1.1") - # DetailedHTTPError: GET - # https://files.pythonhosted.org/packages/source/P/PyGithub/PyGithub-2.8.1.tar.gz - # returned 404: Not Found def url_for_version(self, version): - if version == Version("2.8.1"): - return "https://files.pythonhosted.org/packages/c1/74/e560bdeffea72ecb26cff27f0fad548bbff5ecc51d6a155311ea7f9e4c4c/pygithub-2.8.1.tar.gz" - else: - return f"https://files.pythonhosted.org/packages/source/P/PyGithub/PyGithub-{version}.tar.gz" + name = "pygithub" if version >= Version("2.4") else "PyGithub" + return f"https://files.pythonhosted.org/packages/source/{name[0]}/{name}/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_pygments/package.py b/repos/spack_repo/builtin/packages/py_pygments/package.py index ed7bbaed35c..0cdb2f9a038 100644 --- a/repos/spack_repo/builtin/packages/py_pygments/package.py +++ b/repos/spack_repo/builtin/packages/py_pygments/package.py @@ -16,22 +16,43 @@ class PyPygments(PythonPackage): license("BSD-2-Clause") + # MINOR, not possible to fix, not worth deprecating + # https://www.cvedetails.com/cve/CVE-2026-4539/ + version("2.19.2", sha256="636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887") version("2.18.0", sha256="786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199") version("2.16.1", sha256="1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29") version("2.16.0", sha256="4f6df32f21dca07a54a0a130bda9a25d2241e9e0a206841d061c85a60cc96145") version("2.15.1", sha256="8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c") - version("2.13.0", sha256="56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1") - version("2.12.0", sha256="5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb") - version("2.10.0", sha256="f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6") - version("2.6.1", sha256="647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44") - version("2.4.2", sha256="881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297") - version("2.3.1", sha256="5ffada19f6203563680669ee7f53b64dabbeb100eb51b61996085e99c03b284a") - version("2.2.0", sha256="dbae1046def0efb574852fab9e90209b23f556367b5a320c0bcb871c77c3e8cc") - version("2.1.3", sha256="88e4c8a91b2af5962bfa5ea2447ec6dd357018e86e94c7d14bd8cacbc5b55d81") - version("2.0.1", sha256="5e039e1d40d232981ed58914b6d1ac2e453a7e83ddea22ef9f3eeadd01de45cb") - version("2.0.2", sha256="7320919084e6dac8f4540638a46447a3bd730fca172afc17d2c03eed22cf4f51") + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2022-40896/ + version( + "2.13.0", sha256="56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1" + ) + version( + "2.12.0", sha256="5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb" + ) + version( + "2.11.0", sha256="51130f778a028f2d19c143fce00ced6f8b10f726e17599d7e91b290f6cbcda0c" + ) + version( + "2.10.0", sha256="f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6" + ) + # https://www.cvedetails.com/cve/CVE-2021-27291/ + # https://www.cvedetails.com/cve/CVE-2021-20270/ + version("2.6.1", sha256="647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44") + version("2.4.2", sha256="881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297") + version("2.3.1", sha256="5ffada19f6203563680669ee7f53b64dabbeb100eb51b61996085e99c03b284a") + version("2.2.0", sha256="dbae1046def0efb574852fab9e90209b23f556367b5a320c0bcb871c77c3e8cc") + version("2.1.3", sha256="88e4c8a91b2af5962bfa5ea2447ec6dd357018e86e94c7d14bd8cacbc5b55d81") + # https://www.cvedetails.com/cve/CVE-2015-8557/ + version("2.0.2", sha256="7320919084e6dac8f4540638a46447a3bd730fca172afc17d2c03eed22cf4f51") + version("2.0.1", sha256="5e039e1d40d232981ed58914b6d1ac2e453a7e83ddea22ef9f3eeadd01de45cb") + depends_on("python@3.8:", when="@2.18:", type="build") + depends_on("python@3.7:", when="@2.15:", type="build") depends_on("py-hatchling", when="@2.17:", type="build") + + # Historical dependencies depends_on("py-setuptools@61:", when="@2.15:2.16", type=("build", "run")) depends_on("py-setuptools", when="@:2.14", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pygobject/package.py b/repos/spack_repo/builtin/packages/py_pygobject/package.py index 50f65423301..ebe756ec6bb 100644 --- a/repos/spack_repo/builtin/packages/py_pygobject/package.py +++ b/repos/spack_repo/builtin/packages/py_pygobject/package.py @@ -2,38 +2,35 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.meson import MesonPackage from spack_repo.builtin.build_systems.python import PythonPackage from spack.package import * -class PyPygobject(PythonPackage): - """bindings for the GLib, and GObject, - to be used in Python.""" +class PyPygobject(MesonPackage, PythonPackage): + """bindings for the GLib, and GObject, to be used in Python.""" homepage = "https://pygobject.readthedocs.io/en/latest/" license("LGPL-2.1-or-later") - version("3.46.0", sha256="426008b2dad548c9af1c7b03b59df0440fde5c33f38fb5406b103a43d653cafc") + version("3.54.3", sha256="a8da09134a0f7d56491cf2412145e35aa74e91d760e8f337096a1cda0b92bae7") + version("3.54.5", sha256="b6656f6348f5245606cf15ea48c384c7f05156c75ead206c1b246c80a22fb585") version( - "3.38.0", - sha256="0372d1bb9122fc19f500a249b1f38c2bb67485000f5887497b4b205b3e7084d5", - deprecated=True, - ) - version( - "3.28.3", - sha256="3dd3e21015d06e00482ea665fc1733b77e754a6ab656a5db5d7f7bfaf31ad0b0", - deprecated=True, - ) - version( - "2.28.6", - sha256="fb8a1d4f665130a125011659bd347c7339c944232163dbb9a34fd0686577adb8", - deprecated=True, + "3.46.0", + sha256="426008b2dad548c9af1c7b03b59df0440fde5c33f38fb5406b103a43d653cafc", + url="https://download.gnome.org/sources/pygobject/3.46/pygobject-3.46.0.tar.xz", ) depends_on("c", type="build") # generated + build_system( + conditional("python_pip", when="@:3.50.0"), + conditional("meson", when="@3.50.0:"), + default="meson", + ) + extends("python") depends_on("py-setuptools", type="build") @@ -41,26 +38,19 @@ class PyPygobject(PythonPackage): depends_on("gtkplus") # meson.build - depends_on("python@3.8:3", type=("build", "run"), when="@3.46.0") - depends_on("glib@2.64.0:", when="@3.46.0") - depends_on("gobject-introspection@1.64.0:", when="@3.46.0") - depends_on("py-pycairo@1.16:1", type=("build", "run"), when="@3.46.0") - depends_on("libffi@3.0.0:", when="@3.46.0") + depends_on("python@3.8:3", type=("build", "run"), when="@3.46.0:") + depends_on("glib@2.64.0:", when="@3.46.0:") + depends_on("glib@2.80.0:", when="@3.54:") + depends_on("py-pycairo@1.16:1", type=("build", "run"), when="@3.46.0:") + depends_on("libffi@3.0.0:", when="@3.46.0:") depends_on("glib", when="@:3.46.0") depends_on("gobject-introspection", when="@:3.46.0") depends_on("py-pycairo", type=("build", "run"), when="@:3.46.0") depends_on("libffi", when="@:3.46.0") - # pygobject links directly using the compiler, not spack's wrapper. - # This causes it to fail to add the appropriate rpaths. This patch modifies - # pygobject's setup.py file to add -Wl,-rpath arguments for dependent - # libraries found with pkg-config. - patch("pygobject-3.28.3-setup-py.patch", when="@3.28.3") - def url_for_version(self, version): - url = "http://ftp.gnome.org/pub/GNOME/sources/pygobject" - return url + "/%s/pygobject-%s.tar.xz" % (version.up_to(2), version) + return f"https://download.gnome.org/sources/pygobject/{version.up_to(2)}/pygobject-{version}.tar.gz" def patch(self): filter_file(r"Pycairo_IMPORT", r"//Pycairo_IMPORT", "gi/pygi-foreign-cairo.c") diff --git a/repos/spack_repo/builtin/packages/py_pygobject/pygobject-3.28.3-setup-py.patch b/repos/spack_repo/builtin/packages/py_pygobject/pygobject-3.28.3-setup-py.patch deleted file mode 100644 index 3212d6a47ea..00000000000 --- a/repos/spack_repo/builtin/packages/py_pygobject/pygobject-3.28.3-setup-py.patch +++ /dev/null @@ -1,23 +0,0 @@ -*** spack-src/setup.py Tue Jul 30 07:25:06 2019 ---- spack-src/setup.py.new Tue Jul 30 07:44:00 2019 -*************** -*** 620,627 **** - min_version = get_version_requirement(script_dir, name) - pkg_config_version_check(name, min_version) - ext.include_dirs += pkg_config_parse("--cflags-only-I", name) - ext.library_dirs += pkg_config_parse("--libs-only-L", name) - ext.libraries += pkg_config_parse("--libs-only-l", name) - - - du_build_ext = get_command_class("build_ext") ---- 620,629 ---- - min_version = get_version_requirement(script_dir, name) - pkg_config_version_check(name, min_version) - ext.include_dirs += pkg_config_parse("--cflags-only-I", name) - ext.library_dirs += pkg_config_parse("--libs-only-L", name) - ext.libraries += pkg_config_parse("--libs-only-l", name) -+ for libdir in ext.library_dirs: -+ ext.extra_link_args.append('-Wl,-rpath=%s' %libdir) - - - du_build_ext = get_command_class("build_ext") diff --git a/repos/spack_repo/builtin/packages/py_pygrib/fix-cython-3.1.patch b/repos/spack_repo/builtin/packages/py_pygrib/fix-cython-3.1.patch new file mode 100644 index 00000000000..554a51b385c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pygrib/fix-cython-3.1.patch @@ -0,0 +1,25 @@ +From: Thomas Bouvier +Subject: Fix build with Cython 3.1 + +--- a/src/pygrib/_pygrib.pyx ++++ b/src/pygrib/_pygrib.pyx +@@ -420,7 +419,7 @@ cdef class open(object): + grbs = [self.message(n) for n in xrange(beg,end,inc)] + self.seek(msg) # put iterator back in original position + return grbs +- elif type(key) == int or type(key) == long: ++ elif type(key) == int: + # for an integer, return a single grib message. + msg = self.tell() + grb = self.message(key) +@@ -1925,8 +1924,8 @@ Example usage: + # if there are no matches for this key, just skip it + if not size: + continue +- if typ == 'l' or (type(v) == int or type(v) == long): +- longval = long(v) ++ if typ == 'l' or (type(v) == int): ++ longval = int(v) + err = grib_index_select_long(self._gi, key, longval) + if err: + raise RuntimeError(_get_error_message(err)) diff --git a/repos/spack_repo/builtin/packages/py_pygrib/package.py b/repos/spack_repo/builtin/packages/py_pygrib/package.py new file mode 100644 index 00000000000..138e67118e5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pygrib/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 PyPygrib(PythonPackage): + """Python interface for reading and writing GRIB data.""" + + homepage = "https://jswhit.github.io/pygrib" + pypi = "pygrib/pygrib-2.1.6.tar.gz" + + version("2.1.6", sha256="047980aeb010ef457999950bcc8e46556910316cb77fe78c0bd1b3520aa920f0") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("py-setuptools@61:", type="build") + depends_on("py-cython@0.29:", type="build") + depends_on("python@3.9:", type=("build", "run")) + + depends_on("py-packaging", type=("build", "run")) + depends_on("py-pyproj", type=("build", "run")) + depends_on("py-numpy@2:", type=("build", "run")) + depends_on("eccodes", type=("build", "run")) + + # See: https://github.com/jswhit/pygrib/pull/269 + patch("fix-cython-3.1.patch", when="@2.1.6 ^py-cython@3.1:") + + def setup_build_environment(self, env): + env.set("ECCODES_DIR", self.spec["eccodes"].prefix) diff --git a/repos/spack_repo/builtin/packages/py_pygtrie/package.py b/repos/spack_repo/builtin/packages/py_pygtrie/package.py index 49bda4cd144..50e2ddc57c2 100644 --- a/repos/spack_repo/builtin/packages/py_pygtrie/package.py +++ b/repos/spack_repo/builtin/packages/py_pygtrie/package.py @@ -15,6 +15,7 @@ class PyPygtrie(PythonPackage): license("Apache-2.0") + version("2.5.0", sha256="203514ad826eb403dab1d2e2ddd034e0d1534bbe4dbe0213bb0593f66beba4e2") version("2.4.2", sha256="43205559d28863358dbbf25045029f58e2ab357317a59b11f11ade278ac64692") version("2.4.0", sha256="77700d2fcaab321ac65e86c2969fb4b64c116796baf52ab12d07de2e1f6cfc5d") version("2.3.2", sha256="6299cdedd2cbdfda0895c2dbc43efe8828e698c62b574f3ef7e14b3253f80e23") diff --git a/repos/spack_repo/builtin/packages/py_pyhmmer/package.py b/repos/spack_repo/builtin/packages/py_pyhmmer/package.py index aa2fef83aab..add562fd9e7 100644 --- a/repos/spack_repo/builtin/packages/py_pyhmmer/package.py +++ b/repos/spack_repo/builtin/packages/py_pyhmmer/package.py @@ -21,6 +21,7 @@ class PyPyhmmer(PythonPackage): version("0.10.15", sha256="bf8e97ce8da6fb5850298f3074640f3e998d5a655877f865c1592eb057dc7921") version("0.10.14", sha256="eb50bdfdf67a3b1fecfe877d7ca6d9bade9a9f3dea3ad60c959453bbb235573d") + version("0.7.1", sha256="e746cfc3b352656757286106fd210763f835ac20cf8466141bca5588567bcb5c") depends_on("python@3.6:", type=("build", "run")) depends_on("py-setuptools@46.4:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pyinstrument/package.py b/repos/spack_repo/builtin/packages/py_pyinstrument/package.py index b5f9cd1b83d..d54f2a9652e 100644 --- a/repos/spack_repo/builtin/packages/py_pyinstrument/package.py +++ b/repos/spack_repo/builtin/packages/py_pyinstrument/package.py @@ -15,6 +15,7 @@ class PyPyinstrument(PythonPackage): license("BSD-3-Clause") + version("5.1.1", sha256="bc401cda990b3c1cfe8e0e0473cbd605df3c63b73478a89ac4ab108f2184baa8") version("4.4.0", sha256="be34a2e8118c14a616a64538e02430d9099d5d67d8a370f2888e4ac71e52bbb7") version("4.0.3", sha256="08caf41d21ae8f24afe79c664a34af1ed1e17aa5d4441cd9b1dc15f87bbbac95") version("3.1.3", sha256="353c7000a6563b16c0be0c6a04104d42b3154c5cd7c1979ab66efa5fdc5f5571") diff --git a/repos/spack_repo/builtin/packages/py_pyjwt/package.py b/repos/spack_repo/builtin/packages/py_pyjwt/package.py index fc2dd9c0d82..62ee56d8e47 100644 --- a/repos/spack_repo/builtin/packages/py_pyjwt/package.py +++ b/repos/spack_repo/builtin/packages/py_pyjwt/package.py @@ -19,11 +19,13 @@ class PyPyjwt(PythonPackage): version("2.1.0", sha256="fba44e7898bbca160a2b2b501f492824fc8382485d3a6f11ba5d0c1937ce6130") version("1.7.1", sha256="8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96") - variant("crypto", default=False, description="Build with cryptography support") + variant( + "crypto", default=False, description="Build with cryptography support", when="@:2.0,2.4:" + ) depends_on("python@2.7:2.8,3.4:", type=("build", "run")) depends_on("python@3.6:", when="@2.1.0:", type=("build", "run")) depends_on("py-setuptools", type="build") + depends_on("py-cryptography@3.3.1:", when="+crypto", type=("build", "run")) depends_on("py-cryptography@1.4:", when="+crypto", type=("build", "run")) - depends_on("py-cryptography@3.3.1:3", when="@2.1:2.3+crypto", type=("build", "run")) depends_on("py-cryptography@3.3.1:", when="@2.4:+crypto", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pylatex/package.py b/repos/spack_repo/builtin/packages/py_pylatex/package.py index fbff70765f1..667187fb8bb 100644 --- a/repos/spack_repo/builtin/packages/py_pylatex/package.py +++ b/repos/spack_repo/builtin/packages/py_pylatex/package.py @@ -15,6 +15,7 @@ class PyPylatex(PythonPackage): license("MIT") + version("1.4.2", sha256="bb7b21bec57ecdba3f6f44c856ebebdf6549fd6e80661bd44fd5094236729242") version("1.4.1", sha256="d3c12efb8b260771260443dce78d1e9089c09f9d0b92e6273dfca0bf5e7302fb") variant("docs", default=False, description="Build with Sphinx support for documentation") diff --git a/repos/spack_repo/builtin/packages/py_pylibjpeg_libjpeg/package.py b/repos/spack_repo/builtin/packages/py_pylibjpeg_libjpeg/package.py new file mode 100644 index 00000000000..e8c1fa3d452 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pylibjpeg_libjpeg/package.py @@ -0,0 +1,33 @@ +# 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 PyPylibjpegLibjpeg(PythonPackage): + """ + A Python wrapper for libjpeg, with a focus on use as a plugin for for pylibjpeg. + """ + + homepage = "https://github.com/pydicom/pylibjpeg-libjpeg" + pypi = "pylibjpeg_libjpeg/pylibjpeg_libjpeg-2.4.0.tar.gz" + + license("GPL-3.0-or-later") + + version("2.4.0", sha256="2798ca404a8834447efefa89a03563ce93abdbe4146ea35901680f975959f501") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("python@3.10:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-poetry-core@1.8:1") + depends_on("py-cython@3:") + depends_on("py-setuptools") + + with default_args(type=("build", "run")): + depends_on("py-numpy@2") diff --git a/repos/spack_repo/builtin/packages/py_pylibjpeg_openjpeg/package.py b/repos/spack_repo/builtin/packages/py_pylibjpeg_openjpeg/package.py new file mode 100644 index 00000000000..92a6f8e6817 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pylibjpeg_openjpeg/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 PyPylibjpegOpenjpeg(PythonPackage): + """ + A Python wrapper for openjpeg, with a focus on use as a plugin for for + pylibjpeg.""" + + homepage = "https://github.com/pydicom/pylibjpeg-openjpeg" + pypi = "pylibjpeg_openjpeg/pylibjpeg_openjpeg-2.5.0.tar.gz" + + license("MIT") + + version("2.5.0", sha256="e0ea4d9e59820b02c8437121ae65cc28e98d9e9150f4a6967f2c3ba805e7f873") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("python@3.9:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-poetry-core@1.8:1") + depends_on("py-cython@3:") + depends_on("py-setuptools") + + depends_on("cmake@3.5:") + + with default_args(type=("build", "run")): + depends_on("py-numpy@2") + + # version from release notes + # https://github.com/pydicom/pylibjpeg-openjpeg/blob/v2.5.0/docs/changes/v2.5.0.rst + depends_on("openjpeg@2.5.3:") diff --git a/repos/spack_repo/builtin/packages/py_pylibjpeg_rle/package.py b/repos/spack_repo/builtin/packages/py_pylibjpeg_rle/package.py new file mode 100644 index 00000000000..0d0792fba43 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pylibjpeg_rle/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 PyPylibjpegRle(PythonPackage): + """ + Python bindings for a fast RLE decoder/encoder, with a focus on use as a + plugin for pylibjpeg.""" + + homepage = "https://github.com/pydicom/pylibjpeg-rle" + pypi = "pylibjpeg_rle/pylibjpeg_rle-2.2.0.tar.gz" + + license("MIT") + + version("2.2.0", sha256="1a37353afbdd6f67aa3c2007879fff8ca30a98552cab7ed7f2aa00725ea4bb27") + + depends_on("python@3.10:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-maturin@1") + + with default_args(type=("build", "run")): + depends_on("py-numpy@2:") diff --git a/repos/spack_repo/builtin/packages/py_pylint/package.py b/repos/spack_repo/builtin/packages/py_pylint/package.py index 97fc6d6fbae..d91b8ad3084 100644 --- a/repos/spack_repo/builtin/packages/py_pylint/package.py +++ b/repos/spack_repo/builtin/packages/py_pylint/package.py @@ -62,8 +62,6 @@ class PyPylint(PythonPackage): depends_on("py-astroid@2.12.4:2.13", when="@2.15", type=("build", "run")) depends_on("py-astroid@2.14.2:2.15", when="@2.16:2", type=("build", "run")) depends_on("py-astroid@3.3.8:3.3", when="@3.3.7:", type=("build", "run")) - depends_on("py-isort@4.2.5:", type=("build", "run")) - depends_on("py-isort@4.2.5:4", when="@2.3.1:2.5", type=("build", "run")) depends_on("py-isort@4.2.5:5", when="@2.6:2", type=("build", "run")) depends_on("py-isort@4.2.5:6", when="@3.3.7:", type=("build", "run")) depends_on("py-mccabe", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pymdown_extensions/package.py b/repos/spack_repo/builtin/packages/py_pymdown_extensions/package.py index 7dff2ea0e46..0319301ae97 100644 --- a/repos/spack_repo/builtin/packages/py_pymdown_extensions/package.py +++ b/repos/spack_repo/builtin/packages/py_pymdown_extensions/package.py @@ -16,8 +16,14 @@ class PyPymdownExtensions(PythonPackage): license("MIT") + version("10.21", sha256="39f4a020f40773f6b2ff31d2cd2546c2c04d0a6498c31d9c688d2be07e1767d5") version("9.5", sha256="3ef2d998c0d5fa7eb09291926d90d69391283561cf6306f85cd588a5eb5befa0") - depends_on("python@3.7:", type=("build", "run")) depends_on("py-hatchling@0.21.1:", type="build") - depends_on("py-markdown@3.2:", type=("build", "run")) + + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@10.21:") + depends_on("python@3.7:", when="@9.5") + depends_on("py-markdown@3.6:", when="@10.21:") + depends_on("py-markdown@3.2:", when="@9.5") + depends_on("py-pyyaml", when="@10.21:") diff --git a/repos/spack_repo/builtin/packages/py_pymeeus/package.py b/repos/spack_repo/builtin/packages/py_pymeeus/package.py index f44c2a6f82e..0dd32277542 100644 --- a/repos/spack_repo/builtin/packages/py_pymeeus/package.py +++ b/repos/spack_repo/builtin/packages/py_pymeeus/package.py @@ -15,6 +15,7 @@ class PyPymeeus(PythonPackage): license("LGPL-3.0-only") + version("0.5.12", sha256="548f7186bd8b96cbc069cf649a8e8e377dce49ac74486709849fe63a99cad684") version("0.3.6", sha256="1f1ba0682e1b5c6b0cd6432c966e8bc8acc31737ea6f0ae79917a2189a98bb87") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pymongo/package.py b/repos/spack_repo/builtin/packages/py_pymongo/package.py index cd6aca05c35..7b7b0d5cd3c 100644 --- a/repos/spack_repo/builtin/packages/py_pymongo/package.py +++ b/repos/spack_repo/builtin/packages/py_pymongo/package.py @@ -19,24 +19,11 @@ class PyPymongo(PythonPackage): license("Apache-2.0", checked_by="wdconinc") version("4.10.1", sha256="a9de02be53b6bb98efe0b9eda84ffa1ec027fcb23a2de62c4f941d9a2f2f3330") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2024-5629 - version("4.2.0", sha256="72f338f6aabd37d343bd9d1fdd3de921104d395766bcc5cdc4039e4c2dd97766") - version( - "3.12.1", sha256="704879b6a54c45ad76cea7c6789c1ae7185050acea7afd15b58318fa1932ed45" - ) - version("3.9.0", sha256="4249c6ba45587b959292a727532826c5032d59171f923f7f823788f413c2a5a3") - version("3.6.0", sha256="c6de26d1e171cdc449745b82f1addbc873d105b8e7335097da991c0fc664a4a8") - version("3.3.0", sha256="3d45302fc2622fabf34356ba274c69df41285bac71bbd229f1587283b851b91e") depends_on("c", type="build") # generated - depends_on("python@2.7:2.8,3.4:", type=("build", "run")) - depends_on("python@3.7:", when="@4.2:", type=("build", "run")) - depends_on("python@3.8:", when="@4.8:", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-setuptools@63:", type="build", when="@4.5:") - depends_on("py-setuptools@65:", type="build", when="@4.8:") - depends_on("py-hatchling@1.24:", type="build", when="@4.8:") - depends_on("py-hatch-requirements-txt@0.4.1:", type="build", when="@4.8:") - depends_on("py-dnspython@1.16.0:2", type="build", when="@4.3:") + depends_on("py-setuptools@65:", type="build") + depends_on("py-hatchling@1.24:", type="build") + depends_on("py-hatch-requirements-txt@0.4.1:", type="build") + depends_on("py-dnspython@1.16.0:2", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pymoo/package.py b/repos/spack_repo/builtin/packages/py_pymoo/package.py index 11cfada7b04..ce4f326edbc 100644 --- a/repos/spack_repo/builtin/packages/py_pymoo/package.py +++ b/repos/spack_repo/builtin/packages/py_pymoo/package.py @@ -1,18 +1,13 @@ # 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 * -# Package automatically generated using 'pip2spack' converter - class PyPymoo(PythonPackage): - """ - Multi-Objective Optimization in Python - """ + """Multi-Objective Optimization in Python""" homepage = "https://pymoo.org" pypi = "pymoo/pymoo-0.5.0.tar.gz" @@ -20,20 +15,28 @@ class PyPymoo(PythonPackage): license("Apache-2.0") + version("0.6.1.5", sha256="9ce71eaceb2f5cccf8c5af53102cf6d96fa911452addaf48fb971a60621f8364") version("0.6.1.3", sha256="ab440986cbaede547125ca9d1545781fdee94b719488de44119a86b8e9af526e") - version("0.5.0", sha256="2fbca1716f6b45e430197ce4ce2210070fd3b6b9ec6b17bb25d98486115272c2") - version("0.4.2", sha256="6ec382a7d29c8775088eec7f245a30fd384b42c40f230018dea0e3bcd9aabdf1") + with default_args(deprecated=True): + version("0.5.0", sha256="2fbca1716f6b45e430197ce4ce2210070fd3b6b9ec6b17bb25d98486115272c2") + version("0.4.2", sha256="6ec382a7d29c8775088eec7f245a30fd384b42c40f230018dea0e3bcd9aabdf1") - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") with default_args(type="build"): depends_on("py-setuptools") + depends_on("py-setuptools@77:", when="@0.6.1.5") depends_on("py-cython@0.29:", when="@0.6.1.3:") with default_args(type=("build", "run")): depends_on("python@3.4:") depends_on("py-autograd") + # https://github.com/anyoptimization/pymoo/blob/6de0bda374aab26c6380c30387593faafc99cde3/pyproject.toml + with when("@0.6.1.5"): + depends_on("py-numpy@1.19.3:") + with when("@0.6.1.3:"): depends_on("python@3.9:") depends_on("py-numpy@1.15:") diff --git a/repos/spack_repo/builtin/packages/py_pymupdf/package.py b/repos/spack_repo/builtin/packages/py_pymupdf/package.py new file mode 100644 index 00000000000..96cbdde8e03 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pymupdf/package.py @@ -0,0 +1,54 @@ +# 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 PyPymupdf(PythonPackage): + """ + A high performance Python library for data extraction, analysis, conversion & manipulation of + PDF (and other) documents. + """ + + homepage = "https://pymupdf.readthedocs.io" + git = "https://github.com/pymupdf/PyMuPDF.git" + pypi = "pymupdf/pymupdf-1.27.2.2.tar.gz" + + maintainers("LydDeb") + + license("AGPL-3.0-only", checked_by="LydDeb") + + version("1.27.2.2", sha256="ea8fdc3ab6671ca98f629d5ec3032d662c8cf1796b146996b7ad306ac7ed3335") + + # These dependencies were added gradually during build testing. + with default_args(type="build"): + depends_on("c") + depends_on("cxx") + depends_on("py-libclang") + depends_on("swig") + # These dependencies were identified by scanning the source code using the 'pipreqs' command. + with default_args(type=("build", "run")): + depends_on("py-fonttools") + depends_on("py-pandas") + depends_on("py-pillow") + depends_on("py-pymupdf-fonts") + + # This URL is Hard coded in setup.py + resource( + when="@1.27.2.2", + name="mupdf", + url="https://mupdf.com/downloads/archive/mupdf-1.27.2-source.tar.gz", + sha256="553867b135303dc4c25ab67c5f234d8e900a0e36e66e8484d99adc05fe1e8737", + destination="mupdf", + placement="archive", + expand=True, + ) + + # Set the build environment is not enough + patch("setup_get_mupdf_internal.patch") + + def setup_build_environment(self, env: EnvironmentModifications) -> None: + env.set("PYMUPDF_SETUP_MUPDF_TGZ", join_path(self.stage.source_path, "mupdf/archive")) diff --git a/repos/spack_repo/builtin/packages/py_pymupdf/setup_get_mupdf_internal.patch b/repos/spack_repo/builtin/packages/py_pymupdf/setup_get_mupdf_internal.patch new file mode 100644 index 00000000000..7f589e25806 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pymupdf/setup_get_mupdf_internal.patch @@ -0,0 +1,12 @@ +diff --git a/setup.py.orig b/setup.py +index 6518383..dc7efb9 100755 +--- a/setup.py.orig ++++ b/setup.py +@@ -444,6 +444,7 @@ def get_mupdf_internal(out, location=None, local_tgz=None): + default location. + + ''' ++ location = os.environ.get('PYMUPDF_SETUP_MUPDF_TGZ') + log(f'get_mupdf_internal(): {out=} {location=}') + assert out in ('dir', 'tgz') + if location is None: diff --git a/repos/spack_repo/builtin/packages/py_pymupdf_fonts/package.py b/repos/spack_repo/builtin/packages/py_pymupdf_fonts/package.py new file mode 100644 index 00000000000..2892b61eaa6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pymupdf_fonts/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 PyPymupdfFonts(PythonPackage): + """Collection of font binaries for use in PyMuPDF""" + + homepage = "https://github.com/pymupdf/pymupdf-fonts" + git = "https://github.com/pymupdf/pymupdf-fonts.git" + pypi = "pymupdf_fonts/pymupdf_fonts-1.0.5.tar.gz" + + maintainers("LydDeb") + + license("OFL-1.1", checked_by="LydDeb") + + version("1.0.5", sha256="ac12e3ec4affa35e9a0aca29135ef41c23bdbe5758c3355dac236986309e6bc6") + + with default_args(type="build"): + depends_on("py-setuptools") diff --git a/repos/spack_repo/builtin/packages/py_pyogrio/package.py b/repos/spack_repo/builtin/packages/py_pyogrio/package.py index 5f28f70c719..be41a334952 100644 --- a/repos/spack_repo/builtin/packages/py_pyogrio/package.py +++ b/repos/spack_repo/builtin/packages/py_pyogrio/package.py @@ -14,29 +14,25 @@ class PyPyogrio(PythonPackage): pypi = "pyogrio/pyogrio-0.9.0.tar.gz" git = "https://github.com/geopandas/pyogrio.git" - maintainers("climbfuji") + maintainers("climbfuji", "adamjstewart") license("MIT", checked_by="climbfuji") + version("0.11.1", sha256="e1441dc9c866f10d8e6ae7ea9249a10c1f57ea921b1f19a5b0977ab91ef8082c") version("0.11.0", sha256="a7e0a97bc10c0d7204f6bf52e1b928cba0554c35a907c32b23065aed1ed97b3f") version("0.10.0", sha256="ec051cb568324de878828fae96379b71858933413e185148acb6c162851ab23c") version("0.9.0", sha256="6a6fa2e8cf95b3d4a7c0fac48bce6e5037579e28d3eb33b53349d6e11f15e5a8") - depends_on("python@3.8:", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-wheel", type="build") - depends_on("gdal@2.4:", type=("build", "link", "run")) - depends_on("py-cython@0.29:", type="build") + # pyproject.toml + with default_args(type="build"): + depends_on("py-setuptools") + depends_on("py-cython@0.29:") + depends_on("py-versioneer@0.28+toml") - depends_on("py-setuptools", type="build") - depends_on("py-cython@0.29:", type="build") - # Strictly, this should be 0.28. However others in the dask ecosystem - # require 0.29, which makes this fail to concretize. Since Versioneer 0.29 doesn't - # break anything with 0.28, it should be safe to keep this aligned - # https://github.com/python-versioneer/python-versioneer/releases/tag/0.29 - depends_on("py-versioneer@0.28: +toml", type="build") + with default_args(type=("build", "run")): + depends_on("py-certifi") + depends_on("py-numpy") + depends_on("py-packaging") + # setup.py depends_on("gdal@2.4:", type=("build", "link", "run")) - depends_on("py-certifi", type=("build", "run")) - depends_on("py-numpy", type=("build", "run")) - depends_on("py-packaging", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pyomo/package.py b/repos/spack_repo/builtin/packages/py_pyomo/package.py index 11b0ee8f0eb..e019b0f309b 100644 --- a/repos/spack_repo/builtin/packages/py_pyomo/package.py +++ b/repos/spack_repo/builtin/packages/py_pyomo/package.py @@ -13,12 +13,18 @@ class PyPyomo(PythonPackage): optimization models.""" homepage = "https://www.pyomo.org/" - pypi = "Pyomo/Pyomo-5.6.6.tar.gz" + pypi = "pyomo/pyomo-5.6.6.tar.gz" git = "https://github.com/Pyomo/pyomo.git" - # Maintainer accurate as of 2025-04-16 + # Maintainer accurate as of 2026-02-20 maintainers("mrmundt") + license("BSD-3-Clause") + + version("6.10.0", sha256="672fac375e57e121ca935adcc16a1cd118be8afa1a3e5608161fb86220c3a577") + version("6.9.5", sha256="0734020fcd5cc03ee200fd3f79d143fbfc14e6be116e0d16bab79f3f89609879") + version("6.9.4", sha256="34ad22cd6bf9956de9c0d3842d01c1f92dee0515b25aa3e8f113b326549b1231") + version("6.9.3", sha256="54ec698bb31f78460e1627cbfa90cb2741b629c1ecaca7035bd2e340351a47f7") version("6.9.2", sha256="81b2b14ea619244824e1c547cc12602fe9a6e19309cbf0742868c5b1ef37cb35") version("6.9.1", sha256="ccb85fa4b03450c32614a939c6830d073a7ce79461b12b0f1e7809db96ae86de") version("6.9.0", sha256="622323c9d24de09db9fb491847a9c371be24efa1cc2f38da4782e11850ec1e7d") @@ -49,26 +55,6 @@ class PyPyomo(PythonPackage): version("5.7.2", sha256="f10ada18ade84b16225dc519ef1788dd6d5f22cb22d0ea44db64c96d14cb7bb0") version("5.7.1", sha256="1228204d7eb4cdd217fed6323a7434de68e89a2aaa74085ea47f1b42fb64d8cd") version("5.7", sha256="27e3a3c8411de9bc52e5e6aa88e9a0de0dd7369126bc905996e23057775905d7") - version( - "5.6.9", - sha256="17bc3c15b405e3ba3a3b7cf9bf3867f6b8e57b611c8ecfdd43fd802587ee8bc6", - deprecated=True, - ) - version( - "5.6.8", - sha256="28cbe034b06a477053616a3ce5ef43149bfd7d025cac490c2a3dd006c388b60d", - deprecated=True, - ) - version( - "5.6.7", - sha256="fc97cc9d5a55c5185358ba65c1f9530c9af17e67a9aae7b36c3414f159030ae0", - deprecated=True, - ) - version( - "5.6.6", - sha256="813e14a604b9d3ac63bdd0880c07f5f4e1b8f0a8a10345f1b42bee762219c001", - deprecated=True, - ) variant("cython", default=False, description="Enable cythonization of Pyomo.") variant("tests", default=False, description="Install testing dependencies.", when="@6.1:") @@ -77,14 +63,16 @@ class PyPyomo(PythonPackage): ) variant("optional", default=False, description="Install optional dependencies.", when="@6.1:") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") ############################ # UPDATE THESE AS REQUIRED ############################ # python_requires + depends_on("python@3.10:3.14", when="@6.10", type=("build", "run")) + depends_on("python@3.9:3.14", when="@6.9.5", type=("build", "run")) depends_on("python@3.9:3.13", when="@6.9", type=("build", "run")) depends_on("python@3.8:3.13", when="@6.8.1:6.8.2", type=("build", "run")) depends_on("python@3.8:3.12", when="@6.7:6.8.0", type=("build", "run")) @@ -92,11 +80,11 @@ class PyPyomo(PythonPackage): depends_on("python@3.6:3.10", when="@6.3", type=("build", "run")) depends_on("python@3.6:3.9", when="@6.0:6.2", type=("build", "run")) depends_on("python@2.7:2.8,3.4:3.9", when="@5.7", type=("build", "run")) - depends_on("python@2.7:2.8,3.4:3.8", when="@5.6", type=("build", "run")) # universally required - depends_on("py-setuptools@39.2:", type="build") - depends_on("py-ply", type=("build", "run")) + depends_on("py-setuptools@77:", type="build") + # ply was removed as a required dependency in 6.10.0 + depends_on("py-ply", when="@:6.9.5", type=("build", "run")) # required for pre-6 series depends_on("py-pyutilib@6.0.0", when="@5", type=("build", "run")) @@ -110,9 +98,9 @@ class PyPyomo(PythonPackage): depends_on("py-coverage", when="@6.1:+tests", type=("run")) depends_on("py-nose", when="@6.1:6.2+tests", type=("run")) depends_on("py-parameterized", when="@6.1:+tests", type=("run")) + depends_on("py-pybind11", when="@6.1:+tests", type=("run")) depends_on("py-pytest", when="@6.3:+tests", type=("run")) depends_on("py-pytest-parallel", when="@6.3:+tests", type=("run")) - depends_on("py-pybind11", when="@6.1:+tests", type=("run")) # when docs is requested depends_on("py-sphinx@3:", when="@:6.6+docs", type=("run")) @@ -121,8 +109,8 @@ class PyPyomo(PythonPackage): depends_on("py-sphinx-rtd-theme@0.6:", when="@6.1:+docs", type=("run")) depends_on("py-sphinxcontrib-jsmath", when="@6.1:+docs", type=("run")) depends_on("py-sphinxcontrib-napoleon", when="@6.1:+docs", type=("run")) - depends_on("py-sphinx-toolbox@2.16:", when="@6.7.1:+docs", type=("run")) - depends_on("py-sphinx-jinja2-compat@0.1.1:", when="@6.7.1:+docs", type=("run")) + depends_on("py-sphinx-toolbox@2.16:", when="@6.7.1:6.9.2+docs", type=("run")) + depends_on("py-sphinx-jinja2-compat@0.1.1:", when="@6.7.1:6.9.2+docs", type=("run")) depends_on("py-enum-tools", when="@6.7.1:6.8.0+docs", type=("run")) depends_on("py-numpy@1", when="@6.1:6.7+docs", type=("run")) depends_on("py-numpy", when="@6.8:+docs", type=("run")) @@ -131,7 +119,7 @@ class PyPyomo(PythonPackage): # when optional is requested depends_on("py-dill", when="@6.1:+optional", type=("run")) depends_on("py-ipython", when="@6.1:+optional", type=("run")) - depends_on("py-linear-tree", when="@6.8:+optional", type=("run")) + depends_on("py-linear-tree", when="@6.8:+optional ^python@:3.13", type=("run")) depends_on("py-matplotlib@:3.6.0,3.6.2:", when="@6.1:+optional", type=("run")) depends_on("py-networkx", when="@6.1:+optional", type=("run")) depends_on("py-numpy@1", when="@6.1:6.7+optional", type=("run")) @@ -142,6 +130,7 @@ class PyPyomo(PythonPackage): depends_on("py-python-louvain", when="@6.1:+optional", type=("run")) depends_on("py-pyyaml", when="@6.1:+optional", type=("run")) depends_on("py-qtconsole", when="@6.7.1:+optional", type=("run")) + depends_on("py-scikit-learn@:1.7", when="@6.8:+optional", type=("run")) depends_on("py-scipy", when="@6.1:+optional", type=("run")) depends_on("py-sympy", when="@6.1:+optional", type=("run")) depends_on("py-xlrd", when="@6.1:+optional", type=("run")) @@ -152,6 +141,13 @@ class PyPyomo(PythonPackage): depends_on("py-pandas", when="@6.1:+optional", type=("run")) depends_on("py-seaborn", when="@6.1:+optional", type=("run")) + @when("^py-pip@23.1:") + def config_settings(self, spec, prefix): + if "+cython" in self.spec: + return {"--global-option": "--with-cython"} + return {} + + @when("^py-pip@:23.0") def global_options(self, spec, prefix): options = [] if "+cython" in self.spec: diff --git a/repos/spack_repo/builtin/packages/py_pyopengl/package.py b/repos/spack_repo/builtin/packages/py_pyopengl/package.py index fd64c8e5904..6e78599660f 100644 --- a/repos/spack_repo/builtin/packages/py_pyopengl/package.py +++ b/repos/spack_repo/builtin/packages/py_pyopengl/package.py @@ -15,6 +15,7 @@ class PyPyopengl(PythonPackage): homepage = "https://pyopengl.sourceforge.net" pypi = "pyopengl/PyOpenGL-3.1.6.tar.gz" + version("3.1.7", sha256="eef31a3888e6984fd4d8e6c9961b184c9813ca82604d37fe3da80eb000a76c86") version("3.1.6", sha256="8ea6c8773927eda7405bffc6f5bb93be81569a7b05c8cac50cd94e969dce5e27") variant("glu", default=True, description="Enable OpenGL Utility (GLU) binding.") diff --git a/repos/spack_repo/builtin/packages/py_pyopenssl/package.py b/repos/spack_repo/builtin/packages/py_pyopenssl/package.py index d434829ce8a..6fd54403297 100644 --- a/repos/spack_repo/builtin/packages/py_pyopenssl/package.py +++ b/repos/spack_repo/builtin/packages/py_pyopenssl/package.py @@ -16,10 +16,11 @@ class PyPyopenssl(PythonPackage): drop your pyOpenSSL dependency.""" homepage = "https://pyopenssl.org/" - pypi = "pyOpenSSL/pyOpenSSL-19.0.0.tar.gz" + pypi = "pyopenssl/pyopenssl-26.0.0.tar.gz" license("Apache-2.0") + version("26.0.0", sha256="f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc") version("23.2.0", sha256="276f931f55a452e7dea69c7173e984eb2a4407ce413c918aa34b55f82f9b8bac") version("22.1.0", sha256="7a83b7b272dd595222d672f5ce29aa030f1fb837630ef229f62e72e395ce8968") version("19.0.0", sha256="aeca66338f6de19d1aa46ed634c3b9ae519a64b458f8468aec688e7e3c20f200") @@ -27,12 +28,23 @@ class PyPyopenssl(PythonPackage): depends_on("py-setuptools", type="build") - depends_on("py-cryptography@38:41", when="@23.2:", type=("build", "run")) - depends_on("py-cryptography@38", when="@22", type=("build", "run")) - depends_on("py-cryptography@2.3:", when="@19", type=("build", "run")) - depends_on("py-cryptography@2.2.1:", when="@18", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("py-cryptography@46", when="@26:") + depends_on("py-cryptography@38:41", when="@23.2") + depends_on("py-cryptography@38", when="@22") + depends_on("py-cryptography@2.3:", when="@19") + depends_on("py-cryptography@2.2.1:", when="@18") + + depends_on("py-typing-extensions@4.9:", when="@25: ^python@3.8:3.12") + + # Historical dependencies + depends_on("py-six@1.5.2:", when="@:19") conflicts("^py-cryptography@40:40.0.1", when="@23.2:") - # Historical dependencies - depends_on("py-six@1.5.2:", when="@:19", type=("build", "run")) + def url_for_version(self, version): + if self.spec.satisfies("@24.2:"): + name = "pyopenssl" + else: + name = "pyOpenSSL" + return f"https://files.pythonhosted.org/packages/source/{name[0]}/{name}/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_pyparsing/package.py b/repos/spack_repo/builtin/packages/py_pyparsing/package.py index 0ec95578fff..9c67fdaed9b 100644 --- a/repos/spack_repo/builtin/packages/py_pyparsing/package.py +++ b/repos/spack_repo/builtin/packages/py_pyparsing/package.py @@ -15,6 +15,8 @@ class PyPyparsing(PythonPackage): license("MIT") + version("3.3.2", sha256="c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc") + version("3.2.5", sha256="2df8d5b7b2802ef88e8d016a2eb9c7aeaa923529cd251ed0fe4608275d4105b6") version("3.1.2", sha256="a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad") version("3.1.1", sha256="ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db") version("3.1.0", sha256="edb662d6fe322d6e990b1594b5feaeadf806803359e3d4d42f11e295e588f0ea") @@ -28,10 +30,13 @@ class PyPyparsing(PythonPackage): version("2.1.10", sha256="811c3e7b0031021137fc83e051795025fcb98674d07eb8fe922ba4de53d39188") version("2.0.3", sha256="06e729e1cbf5274703b1f47b6135ed8335999d547f9d8cf048b210fb8ebf844f") + depends_on("python@3.9:", when="@3.2:", type=("build", "run")) depends_on("python@3.6.8:", when="@3.0.9:", type=("build", "run")) depends_on("python@3.6:", when="@3:", type=("build", "run")) depends_on("python@2.6:2.8,3.3:", type=("build", "run")) - depends_on("py-setuptools", when="@:3.0.8", type="build") depends_on("py-flit-core@3.2:3", when="@3.0.9:", type="build") import_modules = ["pyparsing"] + + # Historical dependencies + depends_on("py-setuptools", when="@:3.0.8", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pypeflow/package.py b/repos/spack_repo/builtin/packages/py_pypeflow/package.py index 36d223fd759..6200e2fc873 100644 --- a/repos/spack_repo/builtin/packages/py_pypeflow/package.py +++ b/repos/spack_repo/builtin/packages/py_pypeflow/package.py @@ -19,4 +19,4 @@ class PyPypeflow(PythonPackage): version("2017-05-04", commit="f23a1b290876bbdf130611000934ae4247158073") depends_on("py-setuptools", type="build") - depends_on("py-networkx@1.7:1.11", type=["build", "run"]) + depends_on("py-networkx@1.7:1.11", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pyperclip/package.py b/repos/spack_repo/builtin/packages/py_pyperclip/package.py index 51368da5b3f..e17c438ba3f 100644 --- a/repos/spack_repo/builtin/packages/py_pyperclip/package.py +++ b/repos/spack_repo/builtin/packages/py_pyperclip/package.py @@ -15,8 +15,11 @@ class PyPyperclip(PythonPackage): license("BSD-3-Clause") + version("1.11.0", sha256="244035963e4428530d9e3a6101a1ef97209c6825edab1567beac148ccc1db1b6") + version("1.10.0", sha256="180c8346b1186921c75dfd14d9048a6b5d46bfc499778811952c6dd6eb1ca6be") version("1.8.2", sha256="105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57") version("1.7.0", sha256="979325468ccf682104d5dcaf753f869868100631301d3e72f47babdea5700d1c") + depends_on("py-setuptools@61:", type="build", when="@1.10:") depends_on("py-setuptools", type="build") depends_on("xclip", type="run", when="platform=linux") diff --git a/repos/spack_repo/builtin/packages/py_pypinfo/package.py b/repos/spack_repo/builtin/packages/py_pypinfo/package.py new file mode 100644 index 00000000000..68fdf364f1c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pypinfo/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 PyPypinfo(PythonPackage): + """View PyPI download statistics with ease.""" + + homepage = "https://github.com/ofek/pypinfo" + pypi = "pypinfo/pypinfo-22.0.0.tar.gz" + + license("MIT") + + version("22.0.0", sha256="4bc900c96b8827d22a674eee6a34c549939452a4174ee17fd3eafcaff594c408") + + depends_on("py-hatchling", type="build") + + with default_args(type=("build", "run")): + depends_on("py-binary") + depends_on("py-click") + depends_on("py-google-cloud-bigquery@2.11:") + depends_on("py-packaging@16.2:") + depends_on("py-platformdirs") + depends_on("py-tinydb@4:") + depends_on("py-tinyrecord@0.2:") diff --git a/repos/spack_repo/builtin/packages/py_pypistats/package.py b/repos/spack_repo/builtin/packages/py_pypistats/package.py new file mode 100644 index 00000000000..bc6aa5f953b --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pypistats/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 PyPypistats(PythonPackage): + """Python interface to PyPI Stats API.""" + + homepage = "https://github.com/hugovk/pypistats" + pypi = "pypistats/pypistats-1.11.0.tar.gz" + + license("MIT") + + version("1.11.0", sha256="99059cabd3b9dc60fea8553aa03fe9c5eeca8dcb3486830f05b6cfed2f0ebf2a") + + with default_args(type="build"): + depends_on("py-hatch-vcs") + depends_on("py-hatchling@1.27:") + + with default_args(type=("build", "run")): + depends_on("py-httpx@0.19:") + depends_on("py-platformdirs") + depends_on("py-prettytable@3.12:") + depends_on("py-pytablewriter@0.63:+html") + depends_on("py-python-dateutil") + depends_on("py-python-slugify") + depends_on("py-termcolor@2.1:") + depends_on("py-tomli", when="^python@:3.10") diff --git a/repos/spack_repo/builtin/packages/py_pyprof2html/package.py b/repos/spack_repo/builtin/packages/py_pyprof2html/package.py index 517ca14d6ba..bdec99d19b1 100644 --- a/repos/spack_repo/builtin/packages/py_pyprof2html/package.py +++ b/repos/spack_repo/builtin/packages/py_pyprof2html/package.py @@ -14,6 +14,7 @@ class PyPyprof2html(PythonPackage): license("BSD-3-Clause") + version("0.3.2", sha256="ca0bc88f8a98f523f97f63293144922d7c4f5bd7ca92cd39c009d2feb8f2ee93") version("0.3.1", sha256="db2d37e21d8c76f2fd25fb1ba9273c9b3ff4a98a327e37d943fed1ea225a6720") patch("version_0.3.1.patch", when="@0.3.1") diff --git a/repos/spack_repo/builtin/packages/py_pyproj/package.py b/repos/spack_repo/builtin/packages/py_pyproj/package.py index 5cd5e4086ef..ad79e71811b 100644 --- a/repos/spack_repo/builtin/packages/py_pyproj/package.py +++ b/repos/spack_repo/builtin/packages/py_pyproj/package.py @@ -18,6 +18,7 @@ class PyPyproj(PythonPackage): license("MIT") maintainers("citibeth", "adamjstewart") + version("3.7.2", sha256="39a0cf1ecc7e282d1d30f36594ebd55c9fae1fda8a2622cee5d100430628f88c") version("3.7.1", sha256="60d72facd7b6b79853f19744779abcd3f804c4e0d4fa8815469db20c9f640a47") version("3.7.0", sha256="bf658f4aaf815d9d03c8121650b6f0b8067265c36e31bc6660b98ef144d81813") version("3.6.1", sha256="44aa7c704c2b7d8fb3d483bbf75af6cb2350d30a63b144279a09b75fead501bf") @@ -39,12 +40,16 @@ class PyPyproj(PythonPackage): # In pyproject.toml with default_args(type="build"): + # https://github.com/pyproj4/pyproj/pull/1575 + depends_on("py-setuptools@77.0.1:", when="@3.7.2:") depends_on("py-setuptools@61:", when="@3.4:") depends_on("py-setuptools") + depends_on("py-cython@3.1:", when="@3.7.2:") depends_on("py-cython@3:", when="@3.6.1:") depends_on("py-cython@0.28.4:2", when="@2:3.6.0") with default_args(type=("build", "link", "run")): + depends_on("python@3.11:", when="@3.7.2:") depends_on("python@3.10:", when="@3.7:") depends_on("python@3.9:", when="@3.6:") depends_on("python@3.8:", when="@3.3:") @@ -54,6 +59,7 @@ class PyPyproj(PythonPackage): # In setup.py (PROJ_MIN_VERSION) # https://pyproj4.github.io/pyproj/stable/installation.html#installing-from-source + depends_on("proj@9.4:", when="@3.7.2:") depends_on("proj@9.2:", when="@3.7:") depends_on("proj@9:", when="@3.5:") depends_on("proj@8.2:", when="@3.4") diff --git a/repos/spack_repo/builtin/packages/py_pyproject_metadata/package.py b/repos/spack_repo/builtin/packages/py_pyproject_metadata/package.py index 271cb6069c6..9145ded5092 100644 --- a/repos/spack_repo/builtin/packages/py_pyproject_metadata/package.py +++ b/repos/spack_repo/builtin/packages/py_pyproject_metadata/package.py @@ -11,21 +11,23 @@ class PyPyprojectMetadata(PythonPackage): """PEP 621 metadata parsing.""" homepage = "https://github.com/FFY00/python-pyproject-metadata" - pypi = "pyproject-metadata/pyproject-metadata-0.6.1.tar.gz" + pypi = "pyproject-metadata/pyproject_metadata-0.6.1.tar.gz" license("MIT") + version("0.11.0", sha256="c72fa49418bb7c5a10f25e050c418009898d1c051721d19f98a6fb6da59a66cf") + version("0.10.0", sha256="7f5bd0ef398b60169556cb17ea261d715caf7f8561238151f51b2305084ba8d4") version("0.9.1", sha256="b8b2253dd1b7062b78cf949a115f02ba7fa4114aabe63fa10528e9e1a954a816") version("0.7.1", sha256="0a94f18b108b9b21f3a26a3d541f056c34edcb17dc872a144a15618fed7aef67") version("0.6.1", sha256="b5fb09543a64a91165dfe85796759f9e415edc296beb4db33d1ecf7866a862bd") with default_args(type="build"): - depends_on("py-typing-extensions", when="@0.9: ^python@:3.7") + depends_on("py-flit-core@3.11:", when="@0.10:") depends_on("py-flit-core", when="@0.8:") depends_on("py-setuptools@42:", when="@:0.7.1") with default_args(type=("build", "run")): - depends_on("python@3.7:") + depends_on("py-packaging@23.2:", when="@0.10:") depends_on("py-packaging@19:") def url_for_version(self, version): diff --git a/repos/spack_repo/builtin/packages/py_pyqt5/package.py b/repos/spack_repo/builtin/packages/py_pyqt5/package.py index 9747cc349f4..19882cacf5f 100644 --- a/repos/spack_repo/builtin/packages/py_pyqt5/package.py +++ b/repos/spack_repo/builtin/packages/py_pyqt5/package.py @@ -18,6 +18,7 @@ class PyPyqt5(SIPPackage): license("GPL-3.0-only") + version("5.15.11", sha256="fda45743ebb4a27b4b1a51c6d8ef455c4c1b5d610c90d2934c7802b5c1557c52") version("5.15.9", sha256="dc41e8401a90dc3e2b692b411bd5492ab559ae27a27424eed4bd3915564ec4c0") depends_on("cxx", type="build") # generated @@ -25,10 +26,12 @@ class PyPyqt5(SIPPackage): # pyproject.toml depends_on("py-sip@6.6.2:6", type="build") + depends_on("py-sip@6.8.6:6", type="build", when="@5.15.11:") depends_on("py-pyqt-builder@1.14.1:1", type="build") # PKG-INFO depends_on("py-pyqt5-sip@12.11:12", type=("build", "run")) + depends_on("py-pyqt5-sip@12.15:12", type=("build", "run"), when="@5.15.11:") # README depends_on("qt@5+opengl") diff --git a/repos/spack_repo/builtin/packages/py_pyqt5_sip/package.py b/repos/spack_repo/builtin/packages/py_pyqt5_sip/package.py index 4492d84ab3c..1cc645dc43e 100644 --- a/repos/spack_repo/builtin/packages/py_pyqt5_sip/package.py +++ b/repos/spack_repo/builtin/packages/py_pyqt5_sip/package.py @@ -11,10 +11,11 @@ class PyPyqt5Sip(PythonPackage): """The sip module support for PyQt5.""" homepage = "https://www.riverbankcomputing.com/software/sip/" - pypi = "PyQt5-sip/PyQt5_sip-12.9.0.tar.gz" + pypi = "PyQt5-sip/pyqt5_sip-12.9.0.tar.gz" license("GPL-2.0-only") + version("12.17.0", sha256="682dadcdbd2239af9fdc0c0628e2776b820e128bec88b49b8d692fe682f90b4f") version("12.13.0", sha256="7f321daf84b9c9dbca61b80e1ef37bdaffc0e93312edae2cd7da25b953971d91") version("12.12.1", sha256="8fdc6e0148abd12d977a1d3828e7b79aae958e83c6cb5adae614916d888a6b10") version("12.9.0", sha256="d3e4489d7c2b0ece9d203ae66e573939f7f60d4d29e089c9f11daa17cfeaae32") @@ -27,5 +28,14 @@ class PyPyqt5Sip(PythonPackage): patch( "https://src.fedoraproject.org/rpms/python-pyqt5-sip/raw/841f58ce66df4dfcf11713e7adb6bd301403d5a8/f/afc99fa84d0d.patch", sha256="82a326749b145b30eda3f0040cd7099c4c06a57a5e9626687b0a983de1ebfc3e", - when="@12.12: %gcc@14:", + when="@12.12:12.13 %gcc@14:", ) + + def url_for_version(self, version): + if version >= Version("12.17.0"): + name = "pyqt5-sip" + else: + name = "PyQt5-sip" + return ( + f"https://files.pythonhosted.org/packages/source/P/PyQt5-sip/{name}-{version}.tar.gz" + ) diff --git a/repos/spack_repo/builtin/packages/py_pyqt6/package.py b/repos/spack_repo/builtin/packages/py_pyqt6/package.py index 295a49e1a4b..e20c79cbfcf 100644 --- a/repos/spack_repo/builtin/packages/py_pyqt6/package.py +++ b/repos/spack_repo/builtin/packages/py_pyqt6/package.py @@ -11,30 +11,52 @@ class PyPyqt6(SIPPackage): """PyQt6 is a comprehensive set of Python bindings for Qt v6.""" homepage = "https://www.riverbankcomputing.com/software/pyqt/" - url = "https://files.pythonhosted.org/packages/source/P/PyQt6/PyQt6-6.5.1.tar.gz" + url = "https://files.pythonhosted.org/packages/source/P/PyQt6/pyqt6-6.9.1.tar.gz" list_url = "https://pypi.org/simple/PyQt6/" license("GPL-3.0-or-later") + version("6.11.0", sha256="45dd60aa69976de1918b5ced6b4e7b6a25abd2a919ecef5fd5826ecc76718889") + version("6.10.0", sha256="710ecfd720d9a03b2c684881ae37f528e11d17e8f1bf96431d00a6a73f308e36") + version("6.9.1", sha256="50642be03fb40f1c2111a09a1f5a0f79813e039c15e78267e6faaf8a96c1c3a6") version("6.7.0", sha256="3d31b2c59dc378ee26e16586d9469842483588142fc377280aad22aaf2fa6235") version("6.6.1", sha256="9f158aa29d205142c56f0f35d07784b8df0be28378d20a97bcda8bd64ffd0379") version("6.5.2", sha256="1487ee7350f9ffb66d60ab4176519252c2b371762cbe8f8340fd951f63801280") version("6.5.1", sha256="e166a0568c27bcc8db00271a5043936226690b6a4a74ce0a5caeb408040a97c3") - depends_on("cxx", type="build") # generated + with default_args(type="build"): + depends_on("cxx") - # pyproject.toml - depends_on("python@3.8:", type=("build", "run"), when="@6.7:") - depends_on("py-sip@6.8:6", type="build", when="@6.7:") - depends_on("py-sip@6.5:6", type="build", when="@:6.6") - depends_on("py-pyqt-builder@1.15:1", type="build") + # pyproject.toml + depends_on("py-sip@6.15:6", when="@6.10:") + depends_on("py-sip@6.13.1:6", when="@6.10:") + depends_on("py-sip@6.12:6", when="@6.9.1:") + depends_on("py-sip@6.8:6", when="@6.7:") + depends_on("py-sip@6.5:6", when="@:6.6") + depends_on("py-pyqt-builder@1.19:1", when="@6.10:") + depends_on("py-pyqt-builder@1.17:1", when="@6.8:") + depends_on("py-pyqt-builder@1.15:1") - # PKG-INFO - depends_on("py-pyqt6-sip@13.6:13", type=("build", "run"), when="@5.3:") - depends_on("py-pyqt6-sip@13.4:13", type=("build", "run"), when="@:5.2") + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@6.11:") + depends_on("python@3.9:", when="@6.8:") + depends_on("python@3.8:", when="@6.7:") + + # PKG-INFO + depends_on("py-pyqt6-sip@13.11:13", when="@6.11:") + depends_on("py-pyqt6-sip@13.8:13", when="@6.7.1:") + depends_on("py-pyqt6-sip@13.6:13", when="@6.5.3:6.7.2") + depends_on("py-pyqt6-sip@13.4:13", when="@:6.5.2") # README - depends_on("qt-base@6") + depends_on("qt-base@6+gui+accessibility") + + def url_for_version(self, version): + if version >= Version("6.8.1"): + name = "pyqt6" + else: + name = "PyQt6" + return f"https://files.pythonhosted.org/packages/source/P/PyQt6/{name}-{version}.tar.gz" def setup_build_environment(self, env: EnvironmentModifications) -> None: # Detected system locale encoding (US-ASCII, locale "C") is not UTF-8. diff --git a/repos/spack_repo/builtin/packages/py_pyqt6_sip/package.py b/repos/spack_repo/builtin/packages/py_pyqt6_sip/package.py index 324b488c74d..9637d7275a7 100644 --- a/repos/spack_repo/builtin/packages/py_pyqt6_sip/package.py +++ b/repos/spack_repo/builtin/packages/py_pyqt6_sip/package.py @@ -11,14 +11,26 @@ class PyPyqt6Sip(PythonPackage): """The sip module support for PyQt6.""" homepage = "https://www.riverbankcomputing.com/software/sip/" - pypi = "PyQt6-sip/PyQt6_sip-13.5.1.tar.gz" + pypi = "PyQt6-sip/pyqt6_sip-13.10.2.tar.gz" license("GPL-2.0-or-later") + version("13.11.1", sha256="869c5b48afe38e55b1ee0dd72182b0886e968cc509b98023ff50010b013ce1be") + version("13.10.2", sha256="464ad156bf526500ce6bd05cac7a82280af6309974d816739b4a9a627156fafe") version("13.6.0", sha256="2486e1588071943d4f6657ba09096dc9fffd2322ad2c30041e78ea3f037b5778") version("13.5.1", sha256="d1e9141752966669576d04b37ba0b122abbc41cc9c35493751028d7d91c4dd49") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + depends_on("py-setuptools@75.8.1:", type="build", when="@13.10.2:") depends_on("py-setuptools@30.3:", type="build") + + def url_for_version(self, version): + if version >= Version("13.9.1"): + name = "pyqt6_sip" + else: + name = "PyQt6_sip" + return ( + f"https://files.pythonhosted.org/packages/source/P/PyQt6-sip/{name}-{version}.tar.gz" + ) diff --git a/repos/spack_repo/builtin/packages/py_pyqt_builder/package.py b/repos/spack_repo/builtin/packages/py_pyqt_builder/package.py index f937e303df7..63ead365e6c 100644 --- a/repos/spack_repo/builtin/packages/py_pyqt_builder/package.py +++ b/repos/spack_repo/builtin/packages/py_pyqt_builder/package.py @@ -11,14 +11,26 @@ class PyPyqtBuilder(PythonPackage): """The PEP 517 compliant PyQt build system.""" homepage = "https://www.riverbankcomputing.com/hg/PyQt-builder/" - pypi = "PyQt-builder/PyQt-builder-1.12.2.tar.gz" + pypi = "PyQt-builder/pyqt_builder-1.18.2.tar.gz" license("GPL-2.0-or-later") + version("1.19.1", sha256="6af6646ba29668751b039bfdced51642cb510e300796b58a4d68b7f956a024d8") + version("1.19.0", sha256="79540e001c476bc050180db00fffcb1e9fa74544d95c148e48ad6117e49d6ea2") + version("1.18.2", sha256="56dfea461484a87a8f0c8b0229190defc436d7ec5de71102e20b35e5639180bc") version("1.15.1", sha256="a2bd3cfbf952e959141dfe55b44b451aa945ca8916d1b773850bb2f9c0fa2985") version("1.12.2", sha256="f62bb688d70e0afd88c413a8d994bda824e6cebd12b612902d1945c5a67edcd7") + depends_on("py-setuptools@77:", when="@1.18.2:", type="build") depends_on("py-setuptools@30.3:", type="build") + depends_on("py-setuptools-scm@8:", when="@1.16:", type="build") depends_on("py-packaging", type=("build", "run")) depends_on("py-sip@6.7:6", when="@1.15:", type=("build", "run")) depends_on("py-sip@6.3:6", type=("build", "run")) + + def url_for_version(self, version): + if version >= Version("1.16.1"): + name = "pyqt_builder" + else: + name = "PyQt-builder" + return f"https://files.pythonhosted.org/packages/source/P/PyQt-builder/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_pyqtgraph/package.py b/repos/spack_repo/builtin/packages/py_pyqtgraph/package.py index fcb726b33eb..4f8495cfbd2 100644 --- a/repos/spack_repo/builtin/packages/py_pyqtgraph/package.py +++ b/repos/spack_repo/builtin/packages/py_pyqtgraph/package.py @@ -16,11 +16,34 @@ class PyPyqtgraph(PythonPackage): license("MIT", checked_by="A-N-Other") + version("0.13.7", sha256="64f84f1935c6996d0e09b1ee66fe478a7771e3ca6f3aaa05f00f6e068321d9e3") version("0.13.3", sha256="58108d8411c7054e0841d8b791ee85e101fc296b9b359c0e01dde38a98ff2ace") - depends_on("python@3.8:", type=("build", "run")) + depends_on("python@3.8:", when="@:0.13.3", type=("build", "run")) + depends_on("python@3.9:", when="@0.13.4:", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-numpy@1.20:", type=("build", "run")) - # This dependency listed in README.md ... - depends_on("py-pyqt6", type=("build", "run")) + depends_on("py-numpy@1.20:", when="@:0.13.3", type=("build", "run")) + depends_on("py-numpy@1.22:", when="@0.13.4:", type=("build", "run")) + + # currently there are no packages for all variants... + apis = ["pyqt6", "pyqt5", "pyside2"] # pyside6 + + variant("api", default="pyqt6", description="Default QT API", values=apis, multi=False) + + for api in apis: + depends_on("py-" + api, when="api=" + api, type=("build", "run")) + + # todo: optional dependencies, see https://github.com/pyqtgraph/pyqtgraph?tab=readme-ov-file#optional-added-functionalities + + # see https://github.com/pyqtgraph/pyqtgraph/blob/44745a7ba5f8251b2f815f3188b80d579e9f93af/pyqtgraph/Qt/__init__.py#L25 + def setup_run_environment(self, env): + api = self.spec.variants["api"].value + if api == "pyqt6": + env.set("PYQTGRAPH_QT_LIB", "PyQt6") + elif api == "pyside6": + env.set("PYQTGRAPH_QT_LIB", "PySide6") + elif api == "pyqt5": + env.set("PYQTGRAPH_QT_LIB", "PyQt5") + elif api == "pyside2": + env.set("PYQTGRAPH_QT_LIB", "PySide2") diff --git a/repos/spack_repo/builtin/packages/py_pyrect/package.py b/repos/spack_repo/builtin/packages/py_pyrect/package.py index 8d8e66518be..6f64eabe163 100644 --- a/repos/spack_repo/builtin/packages/py_pyrect/package.py +++ b/repos/spack_repo/builtin/packages/py_pyrect/package.py @@ -14,6 +14,7 @@ class PyPyrect(PythonPackage): homepage = "https://github.com/asweigart/pyrect" pypi = "PyRect/PyRect-0.1.4.tar.gz" + version("0.2.0", sha256="f65155f6df9b929b67caffbd57c0947c5ae5449d3b580d178074bffb47a09b78") version("0.1.4", sha256="3b2fa7353ce32a11aa6b0a15495968d2a763423c8947ae248b92c037def4e202") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pyro4/package.py b/repos/spack_repo/builtin/packages/py_pyro4/package.py index 98142fb1313..69bbcc72c9f 100644 --- a/repos/spack_repo/builtin/packages/py_pyro4/package.py +++ b/repos/spack_repo/builtin/packages/py_pyro4/package.py @@ -20,6 +20,7 @@ class PyPyro4(PythonPackage): license("MIT") + version("4.82", sha256="511f5b0804e92dd77dc33adf9c947787e3f9e9c5a96b12162f0557a7c4ce21fb") version("4.81", sha256="e130da06478b813173b959f7013d134865e07fbf58cc5f1a2598f99479cdac5f") version("4.80", sha256="46847ca703de3f483fbd0b2d22622f36eff03e6ef7ec7704d4ecaa3964cb2220") version("4.79", sha256="b1eb34c9a1e63f731ca480f3e2c48169341a25a7504397badbaaab07e0f3241e") diff --git a/repos/spack_repo/builtin/packages/py_pyroaring/package.py b/repos/spack_repo/builtin/packages/py_pyroaring/package.py new file mode 100644 index 00000000000..06fbc1e64e6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pyroaring/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 PyPyroaring(PythonPackage): + """An efficient and light-weight ordered set of integers. + This is a Python wrapper for the C library CRoaring.""" + + homepage = "https://github.com/Ezibenroc/PyRoaringBitMap" + pypi = "pyroaring/pyroaring-1.0.3.tar.gz" + + license("MIT", checked_by="Chrismarsh") + + version("1.0.3", sha256="cd7392d1c010c9e41c11c62cd0610c8852e7e9698b1f7f6c2fcdefe50e7ef6da") + + depends_on("py-setuptools", type="build") + depends_on("cxx", type="build") + depends_on("py-cython@3.0.2:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pyrodigal_gv/package.py b/repos/spack_repo/builtin/packages/py_pyrodigal_gv/package.py new file mode 100644 index 00000000000..c0aefbad77d --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pyrodigal_gv/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 PyPyrodigalGv(PythonPackage): + """A Pyrodigal extension to predict genes in giant viruses and + viruses with alternative genetic code.""" + + homepage = "https://github.com/althonos/pyrodigal-gv" + pypi = "pyrodigal_gv/pyrodigal_gv-0.3.2.tar.gz" + + license("GPL-3.0", checked_by="V-Karch") + + version("0.3.2", sha256="aeeff43daec2c4aec7830ae2400799aa90bf273bcca86656ef239bee8d7e5ea5") + + depends_on("py-setuptools@46.4:", type="build") + depends_on("py-wheel@0.23:", type="build") + + depends_on("py-pyrodigal", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pyrometheus/package.py b/repos/spack_repo/builtin/packages/py_pyrometheus/package.py new file mode 100644 index 00000000000..4146524712f --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pyrometheus/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 PyPyrometheus(PythonPackage): + """Code generation for combustion thermochemistry, based on Cantera.""" + + homepage = "https://pyrometheus.readthedocs.io" + pypi = "pyrometheus/pyrometheus-1.0.7.tar.gz" + git = "https://github.com/pyrometheus/pyrometheus.git" + + maintainers("sbryngelson") + + license("MIT") + + version("main", branch="main") + version("1.0.7", sha256="fd8e1f95868121ea541bbed94657645f5d636a265be5bfd92bebdf38124b5b28") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-hatchling", type="build") + + depends_on("cantera+python@3.1:", type=("build", "run")) + depends_on("py-mako", type=("build", "run")) + depends_on("py-pymbolic", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pysam/package.py b/repos/spack_repo/builtin/packages/py_pysam/package.py index 135d107ad33..49c9c9e0942 100644 --- a/repos/spack_repo/builtin/packages/py_pysam/package.py +++ b/repos/spack_repo/builtin/packages/py_pysam/package.py @@ -16,6 +16,7 @@ class PyPysam(PythonPackage): license("MIT") + version("0.23.3", sha256="9ebcb1f004b296fd139b103ec6fd7e415e80f89f194eb7d0d972ac6d11bbaf24") version("0.21.0", sha256="5c9645ddd87668e36ff0a1966391e26f9c403bf85b1bc06c53fe2fcd592da2ce") version("0.19.1", sha256="dee403cbdf232170c1e11cc24c76e7dd748fc672ad38eb0414f3b9d569b1448f") version("0.18.0", sha256="1d6d49a0b3c626fae410a93d4c80583a8b5ddaacc9b46a080b250dbcebd30a59") @@ -26,15 +27,20 @@ class PyPysam(PythonPackage): version("0.7.7", sha256="c9f3018482eec99ee199dda3fdef2aa7424dde6574672a4c0d209a10985755cc") depends_on("c", type="build") # generated - - depends_on("py-setuptools@59.0:", when="@0.21:", type="build") + depends_on("python@3.8:", type=("build", "run")) + # pysam requires pkg-resources which is removed from setuptools in + # version 82.0.0 + depends_on("py-setuptools@:80", when="@:0.23", type="build") + depends_on("py-setuptools@59:", when="@0.21:", type="build") depends_on("py-setuptools", type="build") - depends_on("py-cython@0.29.30:2", when="@0.21:", type="build") - depends_on("py-cython@0.29.12:2", when="@0.18:", type="build") - depends_on("py-cython@0.21:2", when="@0.14:", type="build") - depends_on("py-cython@0.17:2", type="build") + depends_on("py-cython@0.29.12:3", when="@0.23.3:", type="build") + depends_on("py-cython@0.29.30:2", when="@0.21", type="build") + depends_on("py-cython@0.29.12:2", when="@0.18:0.19", type="build") + depends_on("py-cython@0.21:2", when="@0.14:0.15", type="build") + depends_on("py-cython@0.17:2", when="@0.7.7", type="build") depends_on("curl") depends_on("xz") + depends_on("htslib@1.21", when="@0.23.3") depends_on("htslib@1.17", when="@0.21.0") depends_on("htslib@:1.6", when="@:0.13") depends_on("htslib") diff --git a/repos/spack_repo/builtin/packages/py_pyscf/package.py b/repos/spack_repo/builtin/packages/py_pyscf/package.py index c0d3d02ea04..b06fbbfc451 100644 --- a/repos/spack_repo/builtin/packages/py_pyscf/package.py +++ b/repos/spack_repo/builtin/packages/py_pyscf/package.py @@ -19,6 +19,11 @@ class PyPyscf(PythonPackage): license("Apache-2.0") + version("2.13.0", sha256="5381c77568cc894df57f82aca1f025275322ac52b32b5aa86806a4649baa1eae") + version("2.12.1", sha256="cae3b026a928ce866965242056a833a17e46b89035d2e3abbf5429a158da4d48") + version("2.12.0", sha256="6c1ddb594ccc12f2b7411cfff977ab4b0cd0ade25cc454646cc26f93f97ce16e") + version("2.11.0", sha256="832b3ff4a84886e003fab272a49a7eec7b29e58733faadb94abc7b169956423a") + version("2.10.0", sha256="064bf7d27b2dd2684727cb703362e83c3a1f1505f23236965024422b1772c985") version("2.9.0", sha256="821dc882f3a5485d8f202abb093330cf1497b26767ba2a1a63b7fa600ddc58a3") version("2.8.0", sha256="db720372e7f7d1aa2df0fb90c07f483da363730197c937a6378952d34b6abf3d") version("2.7.0", sha256="ca8efc2f28d72c3130f26a967e7fa8d0bbc4a6b47d16a7c4c732ec85a31b7eec") @@ -40,8 +45,10 @@ class PyPyscf(PythonPackage): depends_on("cxx", type="build") # dependencies + depends_on("cmake@3", type="build", when="@:2.13.0") depends_on("cmake@3.10:", type="build", when="@2.1:") depends_on("cmake@2.8:", type="build") + depends_on("python@3.7:", type=("build", "run"), when="@2.13.0:") depends_on("python@3.6:", type=("build", "run"), when="@2.1:") depends_on("python@2.6:", type=("build", "run")) depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pyside/package.py b/repos/spack_repo/builtin/packages/py_pyside/package.py deleted file mode 100644 index fc419c01ba1..00000000000 --- a/repos/spack_repo/builtin/packages/py_pyside/package.py +++ /dev/null @@ -1,98 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os - -from spack_repo.builtin.build_systems.python import PythonPackage - -from spack.package import * - - -class PyPyside(PythonPackage): - """Python bindings for Qt.""" - - pypi = "PySide/PySide-1.2.2.tar.gz" - - # More recent versions of PySide2 (for Qt5) have been taken under - # the offical Qt umbrella. For more information, see: - # https://wiki.qt.io/Qt_for_Python_Development_Getting_Started - - # Version 1.2.4 claims to not work with Python 3.5, mostly - # because it hasn't been tested. Otherwise, it's the same as v1.2.3 - # https://github.com/PySide/pyside-setup/issues/58 - # Meanwhile, developers have moved onto pyside2 (for Qt5), - # and show little interest in certifying PySide 1.2.4 for Python. - version( - "1.2.4", - sha256="1421bc1bf612c396070de9e1ffe227c07c1f3129278bc7d30c754b5146be2433", - deprecated=True, - ) # rpath problems - - version( - "1.2.2", - sha256="53129fd85e133ef630144c0598d25c451eab72019cdcb1012f2aec773a3f25be", - deprecated=True, - ) - - depends_on("cxx", type="build") # generated - - # to prevent error: 'PyTypeObject' {aka 'struct _typeobject'} has no member - # named 'tp_print' - depends_on("python@:3.8", type=("build", "run")) - depends_on("py-setuptools", type="build") - # in newer pip versions --install-option does not exist - depends_on("py-pip@:23.0", type="build") - depends_on("cmake@2.6:", type="build") - - depends_on("py-sphinx", type=("build", "run")) - depends_on("py-sphinx@:3.5.0", type=("build", "run"), when="@:1.2.2") - depends_on("qt@4.6:4.8") - depends_on("libxml2@2.6.32:") - depends_on("libxslt@1.1.19:") - - def patch(self): - """Undo PySide RPATH handling and add Spack RPATH.""" - # Figure out the special RPATH - rpath = self.rpath - rpath.append(os.path.join(python_platlib, "PySide")) - - # Fix subprocess.mswindows check for Python 3.5 - # https://github.com/pyside/pyside-setup/pull/55 - filter_file( - "^if subprocess.mswindows:", - 'mswindows = (sys.platform == "win32")\r\nif mswindows:', - "popenasync.py", - ) - filter_file("^ if subprocess.mswindows:", " if mswindows:", "popenasync.py") - - # Remove check for python version because the above patch adds support for newer versions - filter_file("^check_allowed_python_version()", "", "setup.py") - - # Add Spack's standard CMake args to the sub-builds. - # They're called BY setup.py so we have to patch it. - filter_file( - r"OPTION_CMAKE,", - r"OPTION_CMAKE, " - + ( - '"-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=FALSE", ' - '"-DCMAKE_INSTALL_RPATH=%s",' % ":".join(rpath) - ), - "setup.py", - ) - - # PySide tries to patch ELF files to remove RPATHs - # Disable this and go with the one we set. - if self.spec.satisfies("@1.2.4:"): - rpath_file = "setup.py" - else: - rpath_file = "pyside_postinstall.py" - - filter_file(r"(^\s*)(rpath_cmd\(.*\))", r"\1#\2", rpath_file) - - # TODO: rpath handling for PySide 1.2.4 still doesn't work. - # PySide can't find the Shiboken library, even though it comes - # bundled with it and is installed in the same directory. - - def install_options(self, spec, prefix): - return ["--jobs={0}".format(make_jobs)] diff --git a/repos/spack_repo/builtin/packages/py_pyside2/package.py b/repos/spack_repo/builtin/packages/py_pyside2/package.py index bfd9c54c242..e6fb6a2f475 100644 --- a/repos/spack_repo/builtin/packages/py_pyside2/package.py +++ b/repos/spack_repo/builtin/packages/py_pyside2/package.py @@ -28,40 +28,6 @@ class PyPyside2(PythonPackage): commit="9282e03de471bb3772c8d3997159e49c113d7678", submodules=True, ) - version( - "5.14.2.1", - tag="v5.14.2.1", - commit="6341c063dea6022c1e40cca28d3bbf0f52350dcb", - submodules=True, - ) - version( - "5.13.2", - tag="v5.13.2", - commit="a1a94b43c5b277fd4e65c1389e24c4fbbb1c5641", - submodules=True, - deprecated=True, - ) - version( - "5.13.1", - tag="v5.13.1", - commit="de1e75b55f6f59bba4bae5cd036d6c355c62986a", - submodules=True, - deprecated=True, - ) - version( - "5.13.0", - tag="v5.13.0", - commit="208d0c8bc8595aebc2191dafd9d0e3ec719e2550", - submodules=True, - deprecated=True, - ) - version( - "5.12.5", - tag="v5.12.5", - commit="af0953e0d261ab9b1fc498d63e8d790a329dd285", - submodules=True, - deprecated=True, - ) variant( "doc", @@ -73,7 +39,6 @@ class PyPyside2(PythonPackage): depends_on("cxx", type="build") # see https://wiki.qt.io/Qt_for_Python#Python_compatibility_matrix - depends_on("python@2.7.0:2.7,3.5.0:3.5,3.6.1:3.8", when="@:5.15.0", type=("build", "run")) depends_on( "python@2.7.0:2.7,3.5.0:3.5,3.6.1:3.9", when="@5.15.1:5.15.7", type=("build", "run") ) @@ -82,15 +47,11 @@ class PyPyside2(PythonPackage): depends_on("python@3.6:3.11", when="@5.15.11:5.15.15", type=("build", "run")) depends_on("cmake@3.1:", type="build") - # libclang versioning from sources/shiboken2/doc/gettingstarted.rst - depends_on("llvm@6", type="build", when="@5.12:5.13") # clang >= 16 doesn't work, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270715#c6 depends_on("llvm@10:15 +clang", type="build", when="@5.15") depends_on("py-setuptools", type="build") depends_on("py-packaging", type="build") depends_on("py-wheel", type="build") - # https://bugreports.qt.io/browse/PYSIDE-1385 - depends_on("py-wheel@:0.34", when="@:5.14", type="build") # in newer pip versions --install-option does not exist depends_on("py-pip@:23.0", type="build") depends_on("qt@5.11:+opengl") diff --git a/repos/spack_repo/builtin/packages/py_pysindy/package.py b/repos/spack_repo/builtin/packages/py_pysindy/package.py new file mode 100644 index 00000000000..64973a9d059 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pysindy/package.py @@ -0,0 +1,33 @@ +# 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 PyPysindy(PythonPackage): + """Sparse Identification of Nonlinear Dynamics""" + + homepage = "https://github.com/dynamicslab/pysindy" + pypi = "pysindy/pysindy-2.0.0.tar.gz" + + maintainers("LydDeb") + + license("MIT", checked_by="LydDeb") + + version("2.0.0", sha256="a619980319d48ef0bfb364cfdf3a00f8ec585d69d32b92980bf79e89c43cf392") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-setuptools-scm", type="build") + depends_on("py-scikit-learn@1.1:", type=("build", "run")) + depends_on("py-numpy@2:", type=("build", "run")) + depends_on("py-derivative@0.6.2:", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + depends_on("py-typing-extensions", type=("build", "run")) + + conflicts("^py-scikit-learn@1.5.0") + conflicts("^py-scikit-learn@1.6.0") + conflicts("^py-scikit-learn@1.7.1") diff --git a/repos/spack_repo/builtin/packages/py_pysmartdl/package.py b/repos/spack_repo/builtin/packages/py_pysmartdl/package.py index abe985244df..17960114421 100644 --- a/repos/spack_repo/builtin/packages/py_pysmartdl/package.py +++ b/repos/spack_repo/builtin/packages/py_pysmartdl/package.py @@ -14,6 +14,7 @@ class PyPysmartdl(PythonPackage): license("Unlicense") + version("1.3.4", sha256="35275d1694f3474d33bdca93b27d3608265ffd42f5aeb28e56f38b906c0c35f4") version("1.3.2", sha256="9a96deb3ee4f4ab2279b22eb908d506f57215e1fbad290d540adcebff187a52c") version("1.2.5", sha256="d3968ce59412f99d8e17ca532a1d949d2aa770a914e3f5eb2c0385579dc2b6b8") diff --git a/repos/spack_repo/builtin/packages/py_pysmiles/package.py b/repos/spack_repo/builtin/packages/py_pysmiles/package.py new file mode 100644 index 00000000000..098532b6ba6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pysmiles/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 PyPysmiles(PythonPackage): + """A lightweight Python-only library for reading and writing SMILES strings.""" + + homepage = "https://github.com/pckroon/pysmiles" + pypi = "pysmiles/pysmiles-2.0.0.tar.gz" + + license("Apache-2.0") + maintainers("adamwitmer") + + version("2.0.0", sha256="9bd1da9bf172fc79f71d647d21bbba34178702c664ae0778e59b4d4d149cbe4d") + + depends_on("py-networkx", type=("build", "run")) + depends_on("py-setuptools@30.3.0:", type="build") + depends_on("py-pbr", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pyspod/package.py b/repos/spack_repo/builtin/packages/py_pyspod/package.py new file mode 100644 index 00000000000..13424ce8e16 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pyspod/package.py @@ -0,0 +1,38 @@ +# 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 PyPyspod(PythonPackage): + """Python Spectral Proper Orthogonal Decomposition""" + + homepage = "https://github.com/MathEXLab/PySPOD" + git = "https://github.com/MathEXLab/PySPOD.git" + pypi = "pyspod/pyspod-2.0.0.tar.gz" + + maintainers("LydDeb") + + license("MIT", checked_by="LydDeb") + + version("2.0.0", sha256="b27b23e35b7fb3a2672d7707951e1756ae7d60aa196aa03aa095225bec9df5a4") + + depends_on("python@3.7:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-setuptools@42:") + + with default_args(type=("build", "run")): + depends_on("py-importlib-metadata@:4", when="^python@:3.7") + depends_on("py-psutil") + depends_on("py-tqdm") + depends_on("py-numpy") + depends_on("py-scipy") + depends_on("py-h5py") + depends_on("py-netcdf4") + depends_on("py-xarray") + depends_on("py-matplotlib") + depends_on("py-pyyaml") diff --git a/repos/spack_repo/builtin/packages/py_pystac_client/package.py b/repos/spack_repo/builtin/packages/py_pystac_client/package.py index b937eb2d206..2a4f27121df 100644 --- a/repos/spack_repo/builtin/packages/py_pystac_client/package.py +++ b/repos/spack_repo/builtin/packages/py_pystac_client/package.py @@ -16,25 +16,15 @@ class PyPystacClient(PythonPackage): license("Apache-2.0") version("0.8.5", sha256="7fba8d4f3c641ff7e840084fc3a53c96443a227f8a5889ae500fc38183ccd994") - version( - "0.5.1", - sha256="f585bd9bcd52ee399c8a292dbb7e0405c0da359a73bc07c1ef82a65c17124d94", - url="https://files.pythonhosted.org/packages/source/p/pystac-client/pystac-client-0.5.1.tar.gz", - deprecated=True, - ) with default_args(type="build"): - depends_on("py-setuptools@61:", when="@0.8:") - depends_on("py-setuptools") + depends_on("py-setuptools@61:") with default_args(type=("build", "run")): depends_on("python@3.10:", when="@0.8:") # setup.py imports 'imp', removed in Python 3.12 depends_on("python@:3.11", when="@:0.6") - depends_on("py-requests@2.28.2:", when="@0.8:") - depends_on("py-requests@2.27.1:") - depends_on("py-pystac@1.10:+validation", when="@0.8:") - depends_on("py-pystac@1.4:") - depends_on("py-python-dateutil@2.8.2:", when="@0.8:") - depends_on("py-python-dateutil@2.7:") + depends_on("py-requests@2.28.2:") + depends_on("py-pystac@1.10:+validation") + depends_on("py-python-dateutil@2.8.2:") diff --git a/repos/spack_repo/builtin/packages/py_pytablewriter/package.py b/repos/spack_repo/builtin/packages/py_pytablewriter/package.py new file mode 100644 index 00000000000..7233bfe21a0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pytablewriter/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 PyPytablewriter(PythonPackage): + """pytablewriter is a Python library to write a table in various formats.""" + + homepage = "https://github.com/thombashi/pytablewriter" + pypi = "pytablewriter/pytablewriter-1.2.1.tar.gz" + + license("MIT") + + version("1.2.1", sha256="7bd0f4f397e070e3b8a34edcf1b9257ccbb18305493d8350a5dbc9957fced959") + + variant("html", default=False, description="Install dependencies needed for HTML support") + + with default_args(type="build"): + depends_on("py-setuptools@64:") + depends_on("py-setuptools-scm@8:") + + with default_args(type=("build", "run")): + depends_on("py-dataproperty@1.1:1") + depends_on("py-mbstrdecoder@1") + depends_on("py-pathvalidate@2.3:3") + depends_on("py-tabledata@1.3.1:1") + depends_on("py-tcolorpy@0.0.5:0") + depends_on("py-typepy@1.3.2:1+datetime") + + with when("+html"): + depends_on("py-dominate@2.1.5:2") diff --git a/repos/spack_repo/builtin/packages/py_pytest/package.py b/repos/spack_repo/builtin/packages/py_pytest/package.py index 8c8e8a40d92..a2b5751e2fe 100644 --- a/repos/spack_repo/builtin/packages/py_pytest/package.py +++ b/repos/spack_repo/builtin/packages/py_pytest/package.py @@ -17,56 +17,85 @@ class PyPytest(PythonPackage): license("MIT") maintainers("adamjstewart") - version("8.2.1", sha256="5046e5b46d8e4cac199c373041f26be56fdb81eb4e67dc11d4e10811fc3408fd") - version("8.0.0", sha256="249b1b0864530ba251b7438274c4d251c58d868edaaec8762893ad4a0d71c36c") - version("7.4.4", sha256="2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280") - version("7.3.2", sha256="ee990a3cc55ba808b80795a79944756f315c67c12b56abd3ac993a7b8c17030b") - version("7.2.1", sha256="d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42") - version("7.1.3", sha256="4f365fec2dff9c1162f834d9f18af1ba13062db0c708bf7b946f8a5c76180c39") - version("6.2.5", sha256="131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89") - version("6.2.4", sha256="50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b") - version("6.2.2", sha256="9d1edf9e7d0b84d72ea3dbcdfd22b35fb543a5e8f2a60092dd578936bf63d7f9") - version("6.2.1", sha256="66e419b1899bc27346cb2c993e12c5e5e8daba9073c1fbce33b9807abc95c306") - version("6.1.1", sha256="8f593023c1a0f916110285b6efd7f99db07d59546e3d8c36fc60e2ab05d3be92") - version("5.3.4", sha256="1d122e8be54d1a709e56f82e2d85dcba3018313d64647f38a91aec88c239b600") - version("5.2.1", sha256="ca563435f4941d0cb34767301c27bc65c510cb82e90b9ecf9cb52dc2c63caaa0") - version("5.1.1", sha256="c3d5020755f70c82eceda3feaf556af9a341334414a8eca521a18f463bcead88") - version("4.6.9", sha256="19e8f75eac01dd3f211edd465b39efbcbdc8fc5f7866d7dd49fedb30d8adf339") - version("4.6.5", sha256="8fc39199bdda3d9d025d3b1f4eb99a192c20828030ea7c9a0d2840721de7d347") - version("4.6.2", sha256="bea27a646a3d74cbbcf8d3d4a06b2dfc336baf3dc2cc85cf70ad0157e73e8322") - version("4.4.0", sha256="f21d2f1fb8200830dcbb5d8ec466a9c9120e20d8b53c7585d180125cce1d297a") - version("4.3.0", sha256="067a1d4bf827ffdd56ad21bd46674703fce77c5957f6c1eef731f6146bfcef1c") - version("3.7.2", sha256="3459a123ad5532852d36f6f4501dfe1acf4af1dd9541834a164666aa40395b02") - version("3.7.1", sha256="86a8dbf407e437351cef4dba46736e9c5a6e3c3ac71b2e942209748e76ff2086") - version("3.5.1", sha256="54713b26c97538db6ff0703a12b19aeaeb60b5e599de542e7fca0ec83b9038e8") - version("3.0.7", sha256="b70696ebd1a5e6b627e7e3ac1365a4bc60aaf3495e843c1e70448966c5224cab") - version("3.0.2", sha256="64d8937626dd2a4bc15ef0edd307d26636a72a3f3f9664c424d78e40efb1e339") + version("9.0.3", sha256="b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c") + + # Despite suffering from a security vulnerability, we keep these versions to enable developers + # to unit test Spack itself. Spack supports installing Python 3.10+, but also needs to support + # running Python 3.6+. + with default_args(deprecated=True): + # https://nvd.nist.gov/vuln/detail/CVE-2025-71176 + version("8.4.2", sha256="86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01") + version("8.3.5", sha256="f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845") + version("7.4.4", sha256="2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280") + version("7.0.1", sha256="e30905a0c131d3d94b89624a1cc5afec3e0ba2fbdb151867d8e0ebd49850f171") + + # These versions suffer from a security vulnerability and are obsolete anyway, remove at + # earliest convenience + with default_args(deprecated=True): + # https://nvd.nist.gov/vuln/detail/CVE-2025-71176 + version("9.0.2", sha256="75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11") + version("9.0.0", sha256="8f44522eafe4137b0f35c9ce3072931a788a21ee40a2ed279e817d3cc16ed21e") + version("8.4.1", sha256="7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c") + version("8.2.2", sha256="de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977") + version("8.2.1", sha256="5046e5b46d8e4cac199c373041f26be56fdb81eb4e67dc11d4e10811fc3408fd") + version("8.0.0", sha256="249b1b0864530ba251b7438274c4d251c58d868edaaec8762893ad4a0d71c36c") + version("7.3.2", sha256="ee990a3cc55ba808b80795a79944756f315c67c12b56abd3ac993a7b8c17030b") + version("7.2.1", sha256="d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42") + version("7.1.3", sha256="4f365fec2dff9c1162f834d9f18af1ba13062db0c708bf7b946f8a5c76180c39") + version("6.2.5", sha256="131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89") + version("6.2.4", sha256="50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b") + version("6.2.2", sha256="9d1edf9e7d0b84d72ea3dbcdfd22b35fb543a5e8f2a60092dd578936bf63d7f9") + version("6.2.1", sha256="66e419b1899bc27346cb2c993e12c5e5e8daba9073c1fbce33b9807abc95c306") + version("6.1.1", sha256="8f593023c1a0f916110285b6efd7f99db07d59546e3d8c36fc60e2ab05d3be92") + version("5.3.4", sha256="1d122e8be54d1a709e56f82e2d85dcba3018313d64647f38a91aec88c239b600") + version("5.2.1", sha256="ca563435f4941d0cb34767301c27bc65c510cb82e90b9ecf9cb52dc2c63caaa0") + version("5.1.1", sha256="c3d5020755f70c82eceda3feaf556af9a341334414a8eca521a18f463bcead88") + version("4.6.9", sha256="19e8f75eac01dd3f211edd465b39efbcbdc8fc5f7866d7dd49fedb30d8adf339") + version("4.6.5", sha256="8fc39199bdda3d9d025d3b1f4eb99a192c20828030ea7c9a0d2840721de7d347") + version("4.6.2", sha256="bea27a646a3d74cbbcf8d3d4a06b2dfc336baf3dc2cc85cf70ad0157e73e8322") + version("4.4.0", sha256="f21d2f1fb8200830dcbb5d8ec466a9c9120e20d8b53c7585d180125cce1d297a") + version("4.3.0", sha256="067a1d4bf827ffdd56ad21bd46674703fce77c5957f6c1eef731f6146bfcef1c") + version("3.7.2", sha256="3459a123ad5532852d36f6f4501dfe1acf4af1dd9541834a164666aa40395b02") + version("3.7.1", sha256="86a8dbf407e437351cef4dba46736e9c5a6e3c3ac71b2e942209748e76ff2086") + version("3.5.1", sha256="54713b26c97538db6ff0703a12b19aeaeb60b5e599de542e7fca0ec83b9038e8") + version("3.0.7", sha256="b70696ebd1a5e6b627e7e3ac1365a4bc60aaf3495e843c1e70448966c5224cab") + version("3.0.2", sha256="64d8937626dd2a4bc15ef0edd307d26636a72a3f3f9664c424d78e40efb1e339") with default_args(type="build"): + depends_on("py-setuptools@77:", when="@9:") depends_on("py-setuptools@61:", when="@8.1:") depends_on("py-setuptools@45:", when="@7:") depends_on("py-setuptools@42:", when="@6.2:") - depends_on("py-setuptools@40:", when="@3.9.2:6.1") - depends_on("py-setuptools@30.3:", when="@3.9.0:3.9.1") + depends_on("py-setuptools@40:", when="@3.9.2:") + depends_on("py-setuptools@30.3:", when="@3.9.0:") depends_on("py-setuptools") depends_on("py-setuptools-scm@6.2.3:+toml", when="@7:") depends_on("py-setuptools-scm@3.4:+toml", when="@6.2:") depends_on("py-setuptools-scm", when="@3.1:") with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@9:") + depends_on("python@3.9:", when="@8.4:") depends_on("python@3.8:", when="@8:") depends_on("python@3.7:", when="@7.1:") + # see https://github.com/pytest-dev/pytest/releases/tag/8.4.0 + depends_on("python@:3.13", when="@:8.3") # see https://github.com/pytest-dev/pytest/releases/tag/8.2.1 depends_on("python@:3.12", when="@:8.2.0") # see https://github.com/pytest-dev/pytest/releases/tag/7.3.2 depends_on("python@:3.11", when="@:7.3.1") + depends_on("py-colorama@0.4:", when="@8.4: platform=windows") depends_on("py-colorama", when="platform=windows") depends_on("py-exceptiongroup@1:", when="@7:^python@:3.10") + depends_on("py-iniconfig@1.0.1:", when="@9:") + depends_on("py-iniconfig@1:", when="@8.4:") depends_on("py-iniconfig", when="@6.0:") + depends_on("py-packaging@22:", when="@9:") + depends_on("py-packaging@20:", when="@8.4:") depends_on("py-packaging", when="@4.6:") depends_on("py-pluggy@1.5:1", when="@8.2:") - depends_on("py-pluggy@1.3:1", when="@8:") + depends_on("py-pluggy@1.3:1", when="@8.0:8.1") depends_on("py-pluggy@0.12:1", when="@6.2:7") depends_on("py-pluggy@0.12:0", when="@4.6:6.1") depends_on("py-pluggy@0.9.0:0.9,0.11:0", when="@4.5.0:4.5") @@ -75,6 +104,7 @@ class PyPytest(PythonPackage): depends_on("py-pluggy@0.7:", when="@3.7:4.3") depends_on("py-pluggy@0.5:0.7", when="@3.6.4:3.6") depends_on("py-pluggy@0.5:0.6", when="@:3.6.3") + depends_on("py-pygments@2.7.2:", when="@8.4:") depends_on("py-tomli@1:", when="@7.1: ^python@:3.10") depends_on("py-tomli@1:", when="@7.0") diff --git a/repos/spack_repo/builtin/packages/py_pytest_cmake/package.py b/repos/spack_repo/builtin/packages/py_pytest_cmake/package.py new file mode 100644 index 00000000000..39bf0606419 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pytest_cmake/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 PyPytestCmake(PythonPackage): + """Provide CMake module for Pytest""" + + pypi = "pytest_cmake/pytest_cmake-1.3.0.tar.gz" + + license("MIT") + + maintainers("pearzt") + + version("1.3.0", sha256="6291881b85f8810068552ac9ccc5c9d74ecd3d0c59b395253905e82c930682b9") + + depends_on("py-pytest") + depends_on("py-hatchling@1.4:") + depends_on("cmake@3.20:4.2") + depends_on("python@3.7:4") diff --git a/repos/spack_repo/builtin/packages/py_pytest_cov/package.py b/repos/spack_repo/builtin/packages/py_pytest_cov/package.py index b0d6302e70c..d29661d2eb2 100644 --- a/repos/spack_repo/builtin/packages/py_pytest_cov/package.py +++ b/repos/spack_repo/builtin/packages/py_pytest_cov/package.py @@ -11,17 +11,34 @@ class PyPytestCov(PythonPackage): """Pytest plugin for measuring coverage.""" homepage = "https://github.com/pytest-dev/pytest-cov" - pypi = "pytest-cov/pytest-cov-2.8.1.tar.gz" + pypi = "pytest_cov/pytest_cov-7.0.0.tar.gz" license("MIT") + version("7.0.0", sha256="33c97eda2e049a0c5298e91f519302a1334c26ac65c1a483d6206fd458361af1") version("4.0.0", sha256="996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470") version("3.0.0", sha256="e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470") version("2.8.1", sha256="cc6742d8bac45070217169f5f72ceee1e0e55b0221f54bcf24845972d3a47f2b") version("2.3.1", sha256="fa0a212283cdf52e2eecc24dd6459bb7687cc29adb60cb84258fab73be8dda0f") - depends_on("py-setuptools", type="build") - depends_on("py-pytest@4.6:", when="@3:", type=("build", "run")) + depends_on("python@3.9:", type=("build", "run"), when="@6:") + depends_on("py-hatchling", type="build", when="@7:") + depends_on("py-hatch-fancy-pypi-readme", type="build", when="@7:") + + depends_on("py-coverage+toml@7.10.6:", type=("build", "run"), when="@7:") + depends_on("py-coverage+toml@5.2.1:", type=("build", "run"), when="@3:") + depends_on("py-coverage@4.4:", type=("build", "run"), when="@:2.10") + depends_on("py-pytest@7:", type=("build", "run"), when="@7:") + depends_on("py-pytest@4.6:", type=("build", "run"), when="@3:") depends_on("py-pytest@3.6:", type=("build", "run")) - depends_on("py-coverage@5.2.1: +toml", when="@3:", type=("build", "run")) - depends_on("py-coverage@4.4:", type=("build", "run")) + depends_on("py-pluggy@1.2:", type=("build", "run"), when="@6.2.1:") + + # Historical dependencies + depends_on("py-setuptools", type="build", when="@:4.1") + + def url_for_version(self, version): + if self.spec.satisfies("@6.1:"): + name = "pytest_cov" + else: + name = "pytest-cov" + return f"https://files.pythonhosted.org/packages/source/p/{name}/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_pytest_doctestplus/package.py b/repos/spack_repo/builtin/packages/py_pytest_doctestplus/package.py index 8d75330eb83..056b1b0050e 100644 --- a/repos/spack_repo/builtin/packages/py_pytest_doctestplus/package.py +++ b/repos/spack_repo/builtin/packages/py_pytest_doctestplus/package.py @@ -16,11 +16,25 @@ class PyPytestDoctestplus(PythonPackage): license("BSD-3-Clause") + version("1.4.0", sha256="df83832b1d11288572df2ee4c7cccdb421d812b8038a658bb514c9c62bdbd626") + version("1.3.0", sha256="709ad23ea98da9a835ace0a4365c85371c376e000f2860f30de6df3a6f00728a") version("0.13.0", sha256="f884e2231fe5378cc8e5d1a272d19b01ebd352df0591a5add55ff50adac2d2d0") version("0.9.0", sha256="6fe747418461d7b202824a3486ba8f4fa17a9bd0b1eddc743ba1d6d87f03391a") - depends_on("py-setuptools@30.3.0:", type=("build", "run")) depends_on("py-setuptools-scm", type="build") + depends_on("py-setuptools@30.3.0:", type=("build", "run")) + depends_on("python@3.9:", when="@1.4.0:", type=("build", "run")) + depends_on("python@3.8:", when="@1.1.0:", type=("build", "run")) + depends_on("python@3.7:", when="@0.10.0:", type=("build", "run")) + depends_on("python@3.6:", when="@0.9.0:", type=("build", "run")) depends_on("py-pytest@4.6:", type=("build", "run")) depends_on("py-packaging@17:", when="@0.10:", type=("build", "run")) + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/p/{0}/{0}-{1}.tar.gz" + if version >= Version("1.3.0"): + name = "pytest_doctestplus" + else: + name = "pytest-doctestplus" + return url.format(name, version) diff --git a/repos/spack_repo/builtin/packages/py_pytest_fail_slow/package.py b/repos/spack_repo/builtin/packages/py_pytest_fail_slow/package.py index 61ed1fbc247..2c33c17b341 100644 --- a/repos/spack_repo/builtin/packages/py_pytest_fail_slow/package.py +++ b/repos/spack_repo/builtin/packages/py_pytest_fail_slow/package.py @@ -11,13 +11,27 @@ class PyPytestFailSlow(PythonPackage): """Fail tests that take too long to run.""" homepage = "https://github.com/jwodder/pytest-fail-slow" - pypi = "pytest-fail-slow/pytest-fail-slow-0.3.0.tar.gz" + pypi = "pytest_fail_slow/pytest_fail_slow-0.6.0.tar.gz" license("MIT") + version("0.6.0", sha256="b367a5bdfadb0a4d35d4ef1c220737aa46bc8d6035256171004c67f7f2f5235c") version("0.3.0", sha256="bc022f3f4f170b7e3e7d4dff45bd9e7855e4935ae396bb40b4521ce1ef8ea41c") - depends_on("python@3.6:3", type=("build", "run")) - depends_on("py-setuptools@46.4:", type="build") + depends_on("python@3.8:", type=("build", "run"), when="@0.5:") + depends_on("python@3.6:3", type=("build", "run"), when="@0.3") + depends_on("py-hatchling", type="build", when="@0.5:") + depends_on("py-pytest@7:", type=("build", "run"), when="@0.5:") depends_on("py-pytest@6:", type=("build", "run")) + depends_on("py-pluggy@1.1:", type=("build", "run"), when="@0.5:") + + # Historical dependencies + depends_on("py-setuptools@46.4:", type="build", when="@:0.4") + + def url_for_version(self, version): + if version >= Version("0.5.0"): + name = "pytest_fail_slow" + else: + name = "pytest-fail-slow" + return f"https://files.pythonhosted.org/packages/source/p/{name}/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_pytest_flakes/package.py b/repos/spack_repo/builtin/packages/py_pytest_flakes/package.py index 06729b15605..32b4e62afcf 100644 --- a/repos/spack_repo/builtin/packages/py_pytest_flakes/package.py +++ b/repos/spack_repo/builtin/packages/py_pytest_flakes/package.py @@ -16,6 +16,7 @@ class PyPytestFlakes(PythonPackage): license("MIT") + version("4.0.5", sha256="953134e97215ae31f6879fbd7368c18d43f709dc2fab5b7777db2bb2bac3a924") version("4.0.3", sha256="bf070c5485dad82d5b5f5d0eb08d269737e378492d9a68f5223b0a90924c7754") version("4.0.2", sha256="6733db47937d9689032876359e5ee0ee6926e3638546c09220e2f86b3581d4c1") diff --git a/repos/spack_repo/builtin/packages/py_pytest_memray/package.py b/repos/spack_repo/builtin/packages/py_pytest_memray/package.py new file mode 100644 index 00000000000..75a924c4a11 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pytest_memray/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyPytestMemray(PythonPackage): + """pytest-memray is a pytest plugin for easy integration of memray.""" + + homepage = "https://github.com/bloomberg/pytest-memray" + pypi = "pytest_memray/pytest_memray-1.8.0.tar.gz" + + license("Apache-2.0") + + version("1.8.0", sha256="c0c706ef81941a7aa7064f2b3b8b5cdc0cea72b5277c6a6a09b113ca9ab30bdb") + + with default_args(type="build"): + depends_on("py-hatchling@1.12.2:") + depends_on("py-hatch-vcs@0.3:") + + with default_args(type=("build", "run")): + depends_on("py-pytest@7.2:") + depends_on("py-memray@1.12:") diff --git a/repos/spack_repo/builtin/packages/py_pytest_retry/package.py b/repos/spack_repo/builtin/packages/py_pytest_retry/package.py new file mode 100644 index 00000000000..18f54f81bb1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pytest_retry/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyPytestRetry(PythonPackage): + """Adds the ability to retry flaky tests in CI environments.""" + + homepage = "https://github.com/str0zzapreti/pytest-retry" + pypi = "pytest_retry/pytest_retry-1.7.0.tar.gz" + + license("MIT") + + version("1.7.0", sha256="f8d52339f01e949df47c11ba9ee8d5b362f5824dff580d3870ec9ae0057df80f") + + depends_on("python@3.9:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-setuptools@61:") + + with default_args(type=("build", "run")): + depends_on("py-pytest@7:") diff --git a/repos/spack_repo/builtin/packages/py_pytest_runner/package.py b/repos/spack_repo/builtin/packages/py_pytest_runner/package.py index cd533517292..3697625c6c4 100644 --- a/repos/spack_repo/builtin/packages/py_pytest_runner/package.py +++ b/repos/spack_repo/builtin/packages/py_pytest_runner/package.py @@ -15,14 +15,15 @@ class PyPytestRunner(PythonPackage): license("MIT") + version("6.0.1", sha256="70d4739585a7008f37bf4933c013fdb327b8878a5a69fcbb3316c88882f0f49b") version("6.0.0", sha256="b4d85362ed29b4c348678de797df438f0f0509497ddb8c647096c02a6d87b685") version("5.3.1", sha256="0fce5b8dc68760f353979d99fdd6b3ad46330b6b1837e2077a89ebcf204aac91") version("5.1", sha256="25a013c8d84f0ca60bb01bd11913a3bcab420f601f0f236de4423074af656e7a") version("2.11.1", sha256="983a31eab45e375240e250161a556163bc8d250edaba97960909338c273a89b3") # requirements from pyproject.toml are marked with * - depends_on("python@3.6:", when="@5.3:", type=("build", "run")) depends_on("python@3.7:", when="@6.0.0:", type=("build", "run")) + depends_on("python@3.6:", when="@5.3:", type=("build", "run")) depends_on("py-setuptools@56:", when="@6.0.0:", type=("build", "run")) # * depends_on("py-setuptools@42:", when="@5.3:", type=("build", "run")) # * depends_on("py-setuptools@34.4:", when="@5:", type=("build", "run")) # * diff --git a/repos/spack_repo/builtin/packages/py_pytest_socket/package.py b/repos/spack_repo/builtin/packages/py_pytest_socket/package.py new file mode 100644 index 00000000000..47258e0059c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pytest_socket/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyPytestSocket(PythonPackage): + """Pytest Plugin to disable socket calls during tests.""" + + homepage = "https://github.com/miketheman/pytest-socket" + pypi = "pytest_socket/pytest_socket-0.7.0.tar.gz" + + license("MIT") + + version("0.7.0", sha256="71ab048cbbcb085c15a4423b73b619a8b35d6a307f46f78ea46be51b1b7e11b3") + + depends_on("py-poetry-core@1:", type="build") + depends_on("python@3.8:3", type=("build", "run")) + depends_on("py-pytest@6.2.5:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pytest_timeout/package.py b/repos/spack_repo/builtin/packages/py_pytest_timeout/package.py index 26484918bca..8fd9de55572 100644 --- a/repos/spack_repo/builtin/packages/py_pytest_timeout/package.py +++ b/repos/spack_repo/builtin/packages/py_pytest_timeout/package.py @@ -13,13 +13,23 @@ class PyPytestTimeout(PythonPackage): assuming the test session isn't being debugged.""" homepage = "https://github.com/pytest-dev/pytest-timeout/" - pypi = "pytest-timeout/pytest-timeout-1.4.2.tar.gz" + pypi = "pytest-timeout/pytest_timeout-2.4.0.tar.gz" license("MIT") + version("2.4.0", sha256="7e68e90b01f9eff71332b25001f85c75495fc4e3a836701876183c4bcfd0540a") version("2.2.0", sha256="3b0b95dabf3cb50bac9ef5ca912fa0cfc286526af17afc806824df20c2f72c90") version("1.4.2", sha256="20b3113cf6e4e80ce2d403b6fb56e9e1b871b510259206d40ff8d609f48bda76") + depends_on("python@3.7:", type="build") depends_on("py-setuptools", type="build") + depends_on("py-pytest@7:", when="@2.3:", type=("build", "run")) depends_on("py-pytest@5:", when="@2:", type=("build", "run")) depends_on("py-pytest@3.6.0:", type=("build", "run")) + + def url_for_version(self, version): + if version >= Version("2.4"): + name = "pytest_timeout" + else: + name = "pytest-timeout" + return f"https://files.pythonhosted.org/packages/source/p/pytest-timeout/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_python_calamine/package.py b/repos/spack_repo/builtin/packages/py_python_calamine/package.py index 45bcc55847e..ddd10655b20 100644 --- a/repos/spack_repo/builtin/packages/py_python_calamine/package.py +++ b/repos/spack_repo/builtin/packages/py_python_calamine/package.py @@ -15,6 +15,8 @@ class PyPythonCalamine(PythonPackage): license("MIT") + version("0.6.1", sha256="5974989919aa0bb55a136c1822d6f8b967d13c0fd0f245e3293abb4e63ab0f4b") version("0.1.7", sha256="57199dc84522001bdefd0e87e6c50c5a88bf3425dbc3d8fb52c0dec77c218ba2") depends_on("py-maturin@1", type="build") + depends_on("rust", type="build") 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 8b977681f3d..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,26 +22,19 @@ 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("1.5", sha256="6f197348b46fb8cdf9f3fcfc2a7d5a97da95db3e2e8667cf657216274fe1b009") + 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@:39", when="@2.8.0: ^python@3.3") depends_on("py-setuptools@24.3:") - - depends_on("py-setuptools-scm@:7", when="@2.9.0.post0:") - + depends_on("py-setuptools-scm", when="@2.7:") depends_on("py-wheel", when="@2.8.0:") with default_args(type=("build", "run")): - depends_on("python@2.7:2,3.3:", when="@2.7.0:") - depends_on("python@2.6:2,3.2:", when="@2.1:") - depends_on("python@3:", when="@2.0") - depends_on("python", when="@:1") - - depends_on("py-six@1.5:", when="@2:") + depends_on("py-six@1.5:") diff --git a/repos/spack_repo/builtin/packages/py_python_discovery/package.py b/repos/spack_repo/builtin/packages/py_python_discovery/package.py new file mode 100644 index 00000000000..e21fab0b894 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_python_discovery/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 PyPythonDiscovery(PythonPackage): + """Python interpreter discovery.""" + + homepage = "https://github.com/tox-dev/python-discovery" + pypi = "python_discovery/python_discovery-1.2.1.tar.gz" + + license("MIT") + + version("1.4.0", sha256="eb8bc7daad3c226c147e45bb4e970a1feb1bf4048ee178e6db59e197b8010ce3") + version("1.2.2", sha256="876e9c57139eb757cb5878cbdd9ae5379e5d96266c99ef731119e04fffe533bb") + version("1.2.1", sha256="180c4d114bff1c32462537eac5d6a332b768242b76b69c0259c7d14b1b680c9e") + + depends_on("python@3.8:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-hatch-vcs@0.5:") + depends_on("py-hatchling@1.28:") + + with default_args(type=("build", "run")): + depends_on("py-filelock@3.15.4:") + depends_on("py-platformdirs@4.3.6:4") diff --git a/repos/spack_repo/builtin/packages/py_python_docx/package.py b/repos/spack_repo/builtin/packages/py_python_docx/package.py new file mode 100644 index 00000000000..dddc72ad272 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_python_docx/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 PyPythonDocx(PythonPackage): + """python-docx is a Python library for reading, creating, and + updating Microsoft Word 2007+ (.docx) files.""" + + homepage = "https://github.com/python-openxml/python-docx" + pypi = "python_docx/python_docx-1.2.0.tar.gz" + + version("1.2.0", sha256="7bc9d7b7d8a69c9c02ca09216118c86552704edc23bac179283f2e38f86220ce") + + license("MIT") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-setuptools@61.0.0:", type="build") + + depends_on("py-lxml@3.1.0:", type=("build", "run")) + depends_on("py-typing-extensions@4.9.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_python_gitlab/package.py b/repos/spack_repo/builtin/packages/py_python_gitlab/package.py index 27782dd337d..ab1da1151ba 100644 --- a/repos/spack_repo/builtin/packages/py_python_gitlab/package.py +++ b/repos/spack_repo/builtin/packages/py_python_gitlab/package.py @@ -11,10 +11,12 @@ class PyPythonGitlab(PythonPackage): """Python wrapper for the GitLab API""" homepage = "https://github.com/gpocentek/python-gitlab" - pypi = "python-gitlab/python-gitlab-0.19.tar.gz" + pypi = "python_gitlab/python_gitlab-6.4.0.tar.gz" license("LGPL-3.0-or-later") + version("8.2.0", sha256="de874dc538db6dceb48929f4c8fb55d6064dd19cb3ffdad1100190f835c5b674") + version("6.4.0", sha256="55ed94fb47932124b7f9df8e72b29352d3d0ee01ecf44f081dd070f4bad8700d") version("3.15.0", sha256="c9e65eb7612a9fbb8abf0339972eca7fd7a73d4da66c9b446ffe528930aff534") version("3.9.0", sha256="5fc5e88f81f366e11851cb8b4b9a5b827491ce20ba7585446b74c9b097726ba3") version("2.10.1", sha256="7afa7d7c062fa62c173190452265a30feefb844428efc58ea5244f3b9fc0d40f") @@ -24,16 +26,32 @@ class PyPythonGitlab(PythonPackage): version("0.17", sha256="f79337cd8b2343195b7ac0909e0483624d4235cca78fc76196a0ee4e109c9a70") version("0.16", sha256="2c50dc0bd3ed7c6b1edb6e556b0f0109493ae9dfa46e3bffcf3e5e67228d7d53") - depends_on("python@3.7:", when="@3:", type=("build", "run")) - depends_on("py-setuptools", type="build") - - depends_on("py-requests@2.25:", when="@2.10.1:", type=("build", "run")) - depends_on("py-requests@2.22:", when="@2:", type=("build", "run")) - depends_on("py-requests@2.4.2:", when="@1.4:", type=("build", "run")) - depends_on("py-requests@1:", type=("build", "run")) - depends_on("py-requests-toolbelt@0.10.1:", when="@3.13:", type=("build", "run")) - depends_on("py-requests-toolbelt@0.9.1:", when="@2.6:", type=("build", "run")) - depends_on("py-typing-extensions@4:", when="@3.14: ^python@:3.7", type=("build", "run")) - - # Historical dependencies - depends_on("py-six", when="@:1", type=("build", "run")) + with default_args(type="build"): + depends_on("py-setuptools@61:", when="@4:") + depends_on("py-setuptools") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@7:") + depends_on("python@3.9:", when="@5:") + depends_on("python@3.7:", when="@3:") + + depends_on("py-requests@2.32:", when="@4.6:") + depends_on("py-requests@2.25:", when="@2.10.1:") + depends_on("py-requests@2.22:", when="@2:") + depends_on("py-requests@2.4.2:", when="@1.4:") + depends_on("py-requests@1:") + + depends_on("py-requests-toolbelt@1:", when="@4.6:") + depends_on("py-requests-toolbelt@0.10.1:", when="@3.13:") + depends_on("py-requests-toolbelt@0.9.1:", when="@2.6:") + + # Historical dependencies + depends_on("py-typing-extensions@4:", when="@3.14:3 ^python@:3.7") + depends_on("py-six", when="@:1") + + def url_for_version(self, version): + if self.spec.satisfies("@4.5:"): + name = "python_gitlab" + else: + name = "python-gitlab" + return f"https://files.pythonhosted.org/packages/source/p/{name}/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_python_jenkins/package.py b/repos/spack_repo/builtin/packages/py_python_jenkins/package.py index 85a57f3767f..7d43b8178b8 100644 --- a/repos/spack_repo/builtin/packages/py_python_jenkins/package.py +++ b/repos/spack_repo/builtin/packages/py_python_jenkins/package.py @@ -13,6 +13,7 @@ class PyPythonJenkins(PythonPackage): homepage = "https://opendev.org/jjb/python-jenkins/" pypi = "python-jenkins/python-jenkins-1.5.0.tar.gz" + version("1.8.2", sha256="56e7dabb0607bdb8e1d6fc6d2d4301abedbed9165da2b206facbd3071cb6eecb") version("1.5.0", sha256="0b11f7c1dffc48579afefa8a310cba5b1c98785b9132892ff8cf5312f32ebc90") version("1.0.2", sha256="54aba30cf49f78f9eb64e9717ad8049dacf090731a3e0c27e6035f9ec52ff78e") diff --git a/repos/spack_repo/builtin/packages/py_python_json_logger/package.py b/repos/spack_repo/builtin/packages/py_python_json_logger/package.py index 2209d1c5dd0..e94b8519e2b 100644 --- a/repos/spack_repo/builtin/packages/py_python_json_logger/package.py +++ b/repos/spack_repo/builtin/packages/py_python_json_logger/package.py @@ -11,12 +11,25 @@ class PyPythonJsonLogger(PythonPackage): """ "A python library adding a json log formatter.""" homepage = "https://github.com/madzak/python-json-logger" - pypi = "python-json-logger/python-json-logger-0.1.11.tar.gz" + pypi = "python_json_logger/python_json_logger-3.3.0.tar.gz" license("BSD-2-Clause") + version("4.0.0", sha256="f58e68eb46e1faed27e0f574a55a0455eecd7b8a5b88b85a784519ba3cff047f") + version("3.3.0", sha256="12b7e74b17775e7d565129296105bbe3910842d9d0eb083fc83a6a617aa8df84") version("2.0.7", sha256="23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c") version("2.0.2", sha256="202a4f29901a4b8002a6d1b958407eeb2dd1d83c18b18b816f5b64476dde9096") version("0.1.11", sha256="b7a31162f2a01965a5efb94453ce69230ed208468b0bbc7fdfc56e6d8df2e281") + depends_on("python@3.8:", type="build", when="@3.1:") + depends_on("python@3.7:", type="build", when="@3:") + depends_on("py-setuptools", type="build") + depends_on("py-typing-extensions", type="build", when="@3.1: ^python@:3.9") + + def url_for_version(self, version): + if self.spec.satisfies("@3.1:"): + name = "python_json_logger" + else: + name = "python-json-logger" + return f"https://files.pythonhosted.org/packages/source/p/{name}/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_python_logstash/package.py b/repos/spack_repo/builtin/packages/py_python_logstash/package.py index f042cdc513d..ecc8000932e 100644 --- a/repos/spack_repo/builtin/packages/py_python_logstash/package.py +++ b/repos/spack_repo/builtin/packages/py_python_logstash/package.py @@ -15,6 +15,7 @@ class PyPythonLogstash(PythonPackage): license("MIT") + version("0.4.8", sha256="d04e1ce11ecc107e4a4f3b807fc57d96811e964a554081b3bbb44732f74ef5f9") version("0.4.6", sha256="10943e5df83f592b4d61b63ad1afff855ccc8c9467f78718f0a59809ba1fe68c") # pip silently replaces distutils with setuptools diff --git a/repos/spack_repo/builtin/packages/py_python_louvain/package.py b/repos/spack_repo/builtin/packages/py_python_louvain/package.py index c9ce64cc6c1..a19e7db830b 100644 --- a/repos/spack_repo/builtin/packages/py_python_louvain/package.py +++ b/repos/spack_repo/builtin/packages/py_python_louvain/package.py @@ -20,6 +20,7 @@ class PyPythonLouvain(PythonPackage): license("BSD-3-Clause") + version("0.16", sha256="b7ba2df5002fd28d3ee789a49532baad11fe648e4f2117cf0798e7520a1da56b") version("0.15", sha256="2a856edfbe29952a60a5538a84bb78cca18f6884a88b9325e85a11c8dd4917eb") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_python_lsp_server/package.py b/repos/spack_repo/builtin/packages/py_python_lsp_server/package.py index 5dff9c602b9..e4040808ab0 100644 --- a/repos/spack_repo/builtin/packages/py_python_lsp_server/package.py +++ b/repos/spack_repo/builtin/packages/py_python_lsp_server/package.py @@ -11,12 +11,13 @@ class PyPythonLspServer(PythonPackage): """A Python 3.7+ implementation of the Language Server Protocol.""" homepage = "https://github.com/python-lsp/python-lsp-server" - pypi = "python-lsp-server/python-lsp-server-1.6.0.tar.gz" + pypi = "python_lsp_server/python_lsp_server-1.13.0.tar.gz" maintainers("alecbcs") license("MIT") + version("1.13.2", sha256="d507fc6be69861740827f4e4dffa1c9b1dec97c0ead859cfef86aa342a4c7904") version("1.11.0", sha256="89edd6fb3f7852e4bf5a3d1d95ea41484d1a28fa94b6e3cbff12b9db123b8e86") version("1.10.0", sha256="0c9a52dcc16cd0562404d529d50a03372db1ea6fb8dfcc3792b3265441c814f4") version("1.7.1", sha256="67473bb301f35434b5fa8b21fc5ed5fac27dc8a8446ccec8bae456af52a0aef6") @@ -26,9 +27,14 @@ class PyPythonLspServer(PythonPackage): depends_on("python@3.7:", type=("build", "run")) depends_on("python@3.8:", type=("build", "run"), when="@1.8.0:") depends_on("py-setuptools@61.2.0:", type=("build", "run"), when="@:1.7") - depends_on("py-setuptools@61.2.0:", type="build", when="@1.8.0:") + depends_on("py-setuptools@61.2.0:", type="build", when="@1.8.0:1.12") + depends_on("py-setuptools@69:", type="build", when="@1.13:") depends_on("py-setuptools-scm@3.4.3:+toml", type="build") + variant( + "formatter", values=any_combination_of("black", "ruff"), description="Formatter to use" + ) + with default_args(type=("build", "run")): depends_on("py-docstring-to-markdown") depends_on("py-importlib-metadata@4.8.3:", when="@1.8.0: ^python@:3.9") @@ -38,4 +44,14 @@ class PyPythonLspServer(PythonPackage): depends_on("py-python-lsp-jsonrpc@1.0.0:1") depends_on("py-python-lsp-jsonrpc@1.1.0:1", when="@1.8.0:") depends_on("py-ujson@3.0.0:") + depends_on("py-black", when="@1.13: formatter=black") + depends_on("py-ruff", when="@1.13: formatter=ruff") depends_on("py-importlib-metadata@4.8.3:", when="^python@:3.9") + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/p/" + if self.spec.satisfies("@1.13:"): + url += "python_lsp_server/python_lsp_server-{0}.tar.gz" + else: + url += "python-lsp-server/python-lsp-server-{0}.tar.gz" + return url.format(version) diff --git a/repos/spack_repo/builtin/packages/py_python_multipart/package.py b/repos/spack_repo/builtin/packages/py_python_multipart/package.py index 7cb5cee7c77..c39fdc99c18 100644 --- a/repos/spack_repo/builtin/packages/py_python_multipart/package.py +++ b/repos/spack_repo/builtin/packages/py_python_multipart/package.py @@ -12,22 +12,12 @@ class PyPythonMultipart(PythonPackage): """A streaming multipart parser for Python""" homepage = "https://github.com/andrew-d/python-multipart" - pypi = "python-multipart/python-multipart-0.0.5.tar.gz" + pypi = "python_multipart/python_multipart-0.0.17.tar.gz" license("Apache-2.0") + version("0.0.20", sha256="8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13") version("0.0.17", sha256="41330d831cae6e2f22902704ead2826ea038d0419530eadff3ea80175aec5538") - version("0.0.5", sha256="f7bb5f611fc600d15fa47b3974c8aa16e93724513b49b5f95c81e6624c83fa43") - depends_on("py-setuptools", type="build", when="@:0.0.5") - depends_on("py-hatchling", type="build", when="@0.0.6:") - - depends_on("py-six@1.4.0:", type=("build", "run")) - - def url_for_version(self, version): - url = "https://files.pythonhosted.org/packages/source/p/python-multipart/{}-{}.tar.gz" - if self.spec.satisfies("@:0.0.5"): - name = "python-multipart" - else: - name = "python_multipart" - return url.format(name, version) + depends_on("py-hatchling", type="build") + depends_on("python@3.8:", type=("build", "run")) 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_python_swiftclient/package.py b/repos/spack_repo/builtin/packages/py_python_swiftclient/package.py index aefaab06722..3dd7661c957 100644 --- a/repos/spack_repo/builtin/packages/py_python_swiftclient/package.py +++ b/repos/spack_repo/builtin/packages/py_python_swiftclient/package.py @@ -15,6 +15,7 @@ class PyPythonSwiftclient(PythonPackage): maintainers("ajkotobi") + version("4.7.0", sha256="afd7575753d8e49617adcb11550187fd0b120fcd819f1e782c0b538f2d093773") version("4.6.0", sha256="d4d18540413893fc16ad87791d740f823f763435e8212e68eb53d60da2638233") version("3.12.0", sha256="313b444a14d0f9b628cbf3e8c52f2c4271658f9e8a33d4222851c2e4f0f7b7a0") version("3.11.1", sha256="06919d59676d3e215f4da4f3f930d71880dda3528289842b25199509df712411") @@ -37,3 +38,9 @@ class PyPythonSwiftclient(PythonPackage): depends_on("py-python-keystoneclient@0.7.0:", when="+keystone", type=("build", "run")) depends_on("py-six@1.9:", type=("build", "run"), when="@:3") + + def url_for_version(self, version): + if version < Version("4.7.0"): + return f"https://files.pythonhosted.org/packages/source/p/python-swiftclient/python-swiftclient-{version}.tar.gz" + else: + return f"https://files.pythonhosted.org/packages/source/p/python-swiftclient/python_swiftclient-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_python_xlib/package.py b/repos/spack_repo/builtin/packages/py_python_xlib/package.py index e20cb8f27e4..da82ca25f8d 100644 --- a/repos/spack_repo/builtin/packages/py_python_xlib/package.py +++ b/repos/spack_repo/builtin/packages/py_python_xlib/package.py @@ -19,6 +19,7 @@ class PyPythonXlib(PythonPackage): license("LGPL-2.1-or-later") + version("0.33", sha256="55af7906a2c75ce6cb280a584776080602444f75815a7aff4d287bb2d7018b32") version("0.30", sha256="74131418faf9e7b83178c71d9d80297fbbd678abe99ae9258f5a20cd027acb5f") depends_on("python@2.7,3.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_python_xmp_toolkit/package.py b/repos/spack_repo/builtin/packages/py_python_xmp_toolkit/package.py index 830bb1ea825..7c682519478 100644 --- a/repos/spack_repo/builtin/packages/py_python_xmp_toolkit/package.py +++ b/repos/spack_repo/builtin/packages/py_python_xmp_toolkit/package.py @@ -11,13 +11,32 @@ class PyPythonXmpToolkit(PythonPackage): """Python XMP Toolkit for working with metadata.""" homepage = "https://github.com/python-xmp-toolkit/python-xmp-toolkit" - pypi = "python-xmp-toolkit/python-xmp-toolkit-2.0.1.tar.gz" + pypi = "python_xmp_toolkit/python_xmp_toolkit-2.1.0.tar.gz" license("BSD-3-Clause") + version("2.1.0", sha256="ca0aa2c60d418dd2558767db59953ab5954fb5b87dc0b50cecd60566b0b4e2da") version("2.0.1", sha256="f8d912946ff9fd46ed5c7c355aa5d4ea193328b3f200909ef32d9a28a1419a38") - depends_on("python@2.6:2.7,3.3:", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-pytz", type=("build", "run")) - depends_on("exempi@2.2.0:", type=("build", "run")) + with default_args(type="build"): + depends_on("py-flit-core@3.2:3", when="@2.1:") + + # Historical dependencies + depends_on("py-setuptools", when="@2.0") + + with default_args(type=("build", "run")): + depends_on("py-pytz") + depends_on("exempi@2.2.0:") + + # needed for ld used in ctypes.util.find_library to find exempi + depends_on("binutils") + + def setup_run_environment(self, env: EnvironmentModifications) -> None: + env.prepend_path("LD_LIBRARY_PATH", self.spec["exempi"].prefix.lib) + + def url_for_version(self, version): + if self.spec.satisfies("@2.1:"): + name = "python_xmp_toolkit" + else: + name = "python-xmp-toolkit" + return f"https://files.pythonhosted.org/packages/source/{name[0]}/{name}/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_pythran/package.py b/repos/spack_repo/builtin/packages/py_pythran/package.py index 67fed84ebe8..ffec321b25e 100644 --- a/repos/spack_repo/builtin/packages/py_pythran/package.py +++ b/repos/spack_repo/builtin/packages/py_pythran/package.py @@ -19,6 +19,8 @@ class PyPythran(PythonPackage): license("BSD-3-Clause") maintainers("rgommers") + version("0.18.1", sha256="8803ed948bf841a11bbbb10472a8ff6ea24ebd70e67c3f77b77be3db900eccfe") + version("0.18.0", sha256="5c003e8cbedf6dbb68c2869c49fc110ce8b5e8982993078a4a819f1dadc4fc6a") version("0.16.1", sha256="861748c0f9c7d422b32724b114b3817d818ed4eab86c09781aa0a3f7ceabb7f9") version("0.16.0", sha256="37dcf6aa9713b352b05004e3a20d14b3de7399bb0d7fe2027bd2b9e2833fe65a") version("0.15.0", sha256="f9bc61bcb96df2cd4b578abc5a62dfb3fbb0b0ef02c264513dfb615c5f87871c") @@ -44,7 +46,8 @@ class PyPythran(PythonPackage): depends_on("py-setuptools@62:", when="@0.15:", type=("build", "run")) depends_on("py-setuptools", type=("build", "run")) depends_on("py-ply@3.4:", type=("build", "run")) - depends_on("py-gast@0.5", when="@0.15:", type=("build", "run")) + depends_on("py-gast@0.6", when="@0.17:", type=("build", "run")) + depends_on("py-gast@0.5", when="@0.15:0.16", type=("build", "run")) # upper bound due to https://github.com/scipy/scipy/issues/18390 depends_on("py-gast@0.5:0.5.3", when="@0.9.12:0.12", type=("build", "run")) depends_on("py-gast@0.4", when="@0.9.7:0.9.11", type=("build", "run")) @@ -52,6 +55,8 @@ class PyPythran(PythonPackage): depends_on("py-gast@0.3:", when="@0.9.4:0.9.5", type=("build", "run")) depends_on("py-gast", when="@:0.9.3", type=("build", "run")) depends_on("py-numpy", type=("build", "run")) + # https://github.com/serge-sans-paille/pythran/issues/2368 + depends_on("py-numpy@:2.4", when="@:0.18.0", type=("build", "run")) # https://github.com/serge-sans-paille/pythran/issues/2189 depends_on("py-numpy@:1", when="@:0.15", type=("build", "run")) depends_on("py-beniget@0.4", when="@0.9.12:", type=("build", "run")) @@ -84,13 +89,6 @@ class PyPythran(PythonPackage): # from distutils.errors import CompileError in run.py conflicts("^python@3.12:", when="@:0.15") - @property - def headers(self): - # Pythran is mainly meant to be used as a compiler, so return no headers to - # avoid issue https://github.com/spack/spack/issues/33237 This can be refined - # later to allow using pythran also as a library. - return HeaderList([]) - def patch(self): # Compiler is used at run-time to determine name of OpenMP library to search for cfg_file = join_path("pythran", "pythran-{0}.cfg".format(sys.platform)) diff --git a/repos/spack_repo/builtin/packages/py_pytokens/package.py b/repos/spack_repo/builtin/packages/py_pytokens/package.py new file mode 100644 index 00000000000..f2cb26652d5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pytokens/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 PyPytokens(PythonPackage): + """A Fast, spec compliant Python 3.14+ tokenizer that runs on older Pythons.""" + + homepage = "https://github.com/tusharsadhwani/pytokens" + pypi = "pytokens/pytokens-0.4.1.tar.gz" + + license("MIT") + + version("0.4.1", sha256="292052fe80923aae2260c073f822ceba21f3872ced9a68bb7953b348e561179a") + + with default_args(type="build"): + depends_on("c") + depends_on("py-setuptools@69:") + depends_on("py-mypy") + + depends_on("python", type=("build", "link", "run")) diff --git a/repos/spack_repo/builtin/packages/py_pytorch_lightning/package.py b/repos/spack_repo/builtin/packages/py_pytorch_lightning/package.py index 9552bb160aa..e64439f7fbb 100644 --- a/repos/spack_repo/builtin/packages/py_pytorch_lightning/package.py +++ b/repos/spack_repo/builtin/packages/py_pytorch_lightning/package.py @@ -10,99 +10,119 @@ class PyPytorchLightning(PythonPackage): """PyTorch Lightning is the lightweight PyTorch wrapper for ML researchers.""" - homepage = "https://github.com/Lightning-AI/lightning" - pypi = "pytorch-lightning/pytorch-lightning-1.2.10.tar.gz" + homepage = "https://github.com/Lightning-AI/pytorch-lightning" + pypi = "pytorch-lightning/pytorch_lightning-2.6.1.tar.gz" maintainers("adamjstewart") license("Apache-2.0") - version("2.0.7", sha256="4e6bc1e1f7b0c69016ea2fe0616b18fa62bd3d8661c7ff02c11d317746cfc5f5") - version("2.0.0", sha256="632dec9af8036f726904e691c505d7650658ef0f4054a062c9e6a940ca09dfd8") - version("1.9.4", sha256="188a7f4468acf23512e7f4903253d86fc7929a49f0c09d699872e364162001e8") - version("1.9.3", sha256="479164caea190d49ee2a218eef7e001888be56db912b417639b047e8f9ca8a07") - version("1.9.2", sha256="e60303e258457ccf7ec37c46a616892691fe3fbb23ab12f5c02b8018f03bf223") - version("1.9.1", sha256="45b1031f1bdf68d9350fa42e5ec01ff8492d5badda9685a2ae48e5fd8598510a") - version("1.9.0", sha256="5b75fe936d16ef86dae22ea1cb0a73db281605cade682c0ef44e6508a99a0b37") - version("1.8.6", sha256="c4af783579a1528e07f40dd9bd0128c162bbbcf74fe1ce4292fec63fa7e76ada") - version("1.8.5", sha256="1c6fbd86923e73877521cdd21927f4da1d460719bbca2e04aec3d6b88d60a783") - version("1.8.4", sha256="c2771f966fc1b909cdfd1d603a87b8c84a3d5ff7aacf35b2c0260f697ec0c8be") - version("1.8.3", sha256="c12293da19810a08e4f81a40145760fb29514449ef5d294fa1ef741553cdf217") - version("1.8.2", sha256="480f3396cd63888c4e5ec2f21c02fe662a2b035d9634e6f31fcf1197a36ebd15") - version("1.8.1", sha256="5b60e5eb84dd16ee8dc408286f0074ab475bed385b09a702d678ccbde91e4818") - version("1.8.0", sha256="deff9bc7978ecebc8f45e881adef65dc8d9f4554e88c3b064f80587f32ab158d") - version("1.7.7", sha256="27c2dd01a18db2415168e3fa3775ccb5a1fa1e2961a50439ad9365507fe9d4ae") - version("1.7.6", sha256="93266c83f8340c100e41b3777bbab26dd2c20b4df3deccce3b8a15652326b9c8") - version("1.7.5", sha256="a5838ae990f0eef9a894fa863be3bc1f5594d2abba7848fb21317ba3e885d7cd") - version("1.7.4", sha256="d80df235228a8f6d6b77df4bfa34b3d667d734bd40e960bb4ca553a2746523eb") - version("1.7.3", sha256="605ab313e54992261db74df4a6a6d4d556f319ea8a08eff2f30d80e8b898eb14") - version("1.7.2", sha256="76e4d1af70721fc9a294641668c905e2db76e866f7bf07a5e37f72fa3cb87141") - version("1.7.1", sha256="bdf4815431e15581422154bafd2506f44d42baec8772b9eb36b9638436aa3728") - version("1.7.0", sha256="f3be1500e3ba9ff06c4b8f74d66f02757a5ae73b4cd2f63f47137c501a0400e2") - version("1.6.5", sha256="8d521f2619b9db2ada5bbaf9713330d01460e75a11e4bc0bc2ca25fd37c47c57") - version("1.6.4", sha256="5459f2c3e67676ec59e94576d1499e9559d214e7df41eadd135db64b4ccf54b9") - version("1.6.3", sha256="beb1f36a6dae91f5fef0959a04af1092dff4f3f4d99c20f0e033f84e615903e3") - version("1.6.2", sha256="ccb5e8593837afc9ecf914ee66bf171ee0e08a8d6673531a617b0a61863a9611") - version("1.6.1", sha256="280b9c7f84f9a6b6d2efb91c7b3caad50031e318d37cfe052f3047faf1f0a2de") - version("1.6.0", sha256="1ab6f15750862cfbac48ad7be420050c8c353a060da7c2575f9e267158a33d42") - version("1.5.3", sha256="a206169a0c4356366a7edadb5ebd2f38e9a611ff78265ce93b767662682f5620") - version("1.4.1", sha256="1d1128aeb5d0e523d2204c4d9399d65c4e5f41ff0370e96d694a823af5e8e6f3") - version("1.4.0", sha256="6529cf064f9dc323c94f3ce84b56ee1a05db1b0ab17db77c4d15aa36e34da81f") - version("1.3.8", sha256="60b0a3e464d394864dae4c8d251afa7aa453644a19bb7672f5ee400343cdf7b0") - version("1.2.10", sha256="2d8365e30ded0c20e73ce6e5b6028478ae460b8fd33727df2275666df005a301") + version("2.6.1", sha256="ba08f8901cf226fcca473046ad9346f414e99117762dc869c76e650d5b3d7bdc") + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2024-8020/ + # https://www.cvedetails.com/cve/CVE-2024-8019/ + # https://www.cvedetails.com/cve/CVE-2024-5980/ + # https://www.cvedetails.com/cve/CVE-2024-5452/ + version("2.0.7", sha256="4e6bc1e1f7b0c69016ea2fe0616b18fa62bd3d8661c7ff02c11d317746cfc5f5") + version("2.0.0", sha256="632dec9af8036f726904e691c505d7650658ef0f4054a062c9e6a940ca09dfd8") + version("1.9.4", sha256="188a7f4468acf23512e7f4903253d86fc7929a49f0c09d699872e364162001e8") + version("1.9.3", sha256="479164caea190d49ee2a218eef7e001888be56db912b417639b047e8f9ca8a07") + version("1.9.2", sha256="e60303e258457ccf7ec37c46a616892691fe3fbb23ab12f5c02b8018f03bf223") + version("1.9.1", sha256="45b1031f1bdf68d9350fa42e5ec01ff8492d5badda9685a2ae48e5fd8598510a") + version("1.9.0", sha256="5b75fe936d16ef86dae22ea1cb0a73db281605cade682c0ef44e6508a99a0b37") + version("1.8.6", sha256="c4af783579a1528e07f40dd9bd0128c162bbbcf74fe1ce4292fec63fa7e76ada") + version("1.8.5", sha256="1c6fbd86923e73877521cdd21927f4da1d460719bbca2e04aec3d6b88d60a783") + version("1.8.4", sha256="c2771f966fc1b909cdfd1d603a87b8c84a3d5ff7aacf35b2c0260f697ec0c8be") + version("1.8.3", sha256="c12293da19810a08e4f81a40145760fb29514449ef5d294fa1ef741553cdf217") + version("1.8.2", sha256="480f3396cd63888c4e5ec2f21c02fe662a2b035d9634e6f31fcf1197a36ebd15") + version("1.8.1", sha256="5b60e5eb84dd16ee8dc408286f0074ab475bed385b09a702d678ccbde91e4818") + version("1.8.0", sha256="deff9bc7978ecebc8f45e881adef65dc8d9f4554e88c3b064f80587f32ab158d") + version("1.7.7", sha256="27c2dd01a18db2415168e3fa3775ccb5a1fa1e2961a50439ad9365507fe9d4ae") + version("1.7.6", sha256="93266c83f8340c100e41b3777bbab26dd2c20b4df3deccce3b8a15652326b9c8") + version("1.7.5", sha256="a5838ae990f0eef9a894fa863be3bc1f5594d2abba7848fb21317ba3e885d7cd") + version("1.7.4", sha256="d80df235228a8f6d6b77df4bfa34b3d667d734bd40e960bb4ca553a2746523eb") + version("1.7.3", sha256="605ab313e54992261db74df4a6a6d4d556f319ea8a08eff2f30d80e8b898eb14") + version("1.7.2", sha256="76e4d1af70721fc9a294641668c905e2db76e866f7bf07a5e37f72fa3cb87141") + version("1.7.1", sha256="bdf4815431e15581422154bafd2506f44d42baec8772b9eb36b9638436aa3728") + version("1.7.0", sha256="f3be1500e3ba9ff06c4b8f74d66f02757a5ae73b4cd2f63f47137c501a0400e2") + version("1.6.5", sha256="8d521f2619b9db2ada5bbaf9713330d01460e75a11e4bc0bc2ca25fd37c47c57") + version("1.6.4", sha256="5459f2c3e67676ec59e94576d1499e9559d214e7df41eadd135db64b4ccf54b9") + version("1.6.3", sha256="beb1f36a6dae91f5fef0959a04af1092dff4f3f4d99c20f0e033f84e615903e3") + version("1.6.2", sha256="ccb5e8593837afc9ecf914ee66bf171ee0e08a8d6673531a617b0a61863a9611") + version("1.6.1", sha256="280b9c7f84f9a6b6d2efb91c7b3caad50031e318d37cfe052f3047faf1f0a2de") + version("1.6.0", sha256="1ab6f15750862cfbac48ad7be420050c8c353a060da7c2575f9e267158a33d42") + # https://nvd.nist.gov/vuln/detail/CVE-2022-0845 + # https://www.cvedetails.com/cve/CVE-2021-4118/ + version("1.5.3", sha256="a206169a0c4356366a7edadb5ebd2f38e9a611ff78265ce93b767662682f5620") + version("1.4.1", sha256="1d1128aeb5d0e523d2204c4d9399d65c4e5f41ff0370e96d694a823af5e8e6f3") + version("1.4.0", sha256="6529cf064f9dc323c94f3ce84b56ee1a05db1b0ab17db77c4d15aa36e34da81f") + version("1.3.8", sha256="60b0a3e464d394864dae4c8d251afa7aa453644a19bb7672f5ee400343cdf7b0") + version( + "1.2.10", sha256="2d8365e30ded0c20e73ce6e5b6028478ae460b8fd33727df2275666df005a301" + ) - # src/pytorch_lightning/__setup__.py - depends_on("python@3.8:", when="@2:", type=("build", "run")) - # https://github.com/Lightning-AI/pytorch-lightning/pull/20081 - depends_on("py-setuptools", type=("build", "run")) + with default_args(type="build"): + depends_on("py-setuptools") + depends_on("py-packaging") - # requirements/pytorch/base.txt - depends_on("py-numpy@1.17.2:", when="@1.3:", type=("build", "run")) - depends_on("py-numpy@1.16.6:", when="@:1.2", type=("build", "run")) - depends_on("py-torch@1.11:", when="@2:", type=("build", "run")) - depends_on("py-torch@1.10:", when="@1.9:", type=("build", "run")) - depends_on("py-torch@1.9:", when="@1.7:", type=("build", "run")) - depends_on("py-torch@1.8:", when="@1.6:", type=("build", "run")) - depends_on("py-torch@1.6:", when="@1.4:1.5", type=("build", "run")) - depends_on("py-torch@1.4:", when="@:1.3", type=("build", "run")) - depends_on("py-tqdm@4.57.0:", when="@1.6.3:", type=("build", "run")) - depends_on("py-tqdm@4.41.0:", when="@:1.6.2", type=("build", "run")) - depends_on("py-pyyaml@5.4:", when="@1.6:", type=("build", "run")) - depends_on("py-pyyaml@5.1:", when="@1.4:1.5", type=("build", "run")) - depends_on("py-pyyaml@5.1:5.4.1", when="@1.3", type=("build", "run")) - depends_on("py-pyyaml@5.1:5.3,5.5:", when="@:1.2", type=("build", "run")) - depends_on("py-fsspec@2021.06.1:+http", when="@1.8:", type=("build", "run")) - depends_on("py-fsspec@2021.05.0:2021.05,2021.06.1:+http", when="@1.3:", type=("build", "run")) - depends_on("py-fsspec@0.8.1:+http", when="@:1.2", type=("build", "run")) - depends_on("py-torchmetrics@0.7:", when="@1.7:", type=("build", "run")) - depends_on("py-torchmetrics@0.4.1:", when="@1.5:", type=("build", "run")) - depends_on("py-torchmetrics@0.4.0:", when="@1.4", type=("build", "run")) - depends_on("py-torchmetrics@0.2.0:", when="@1.3", type=("build", "run")) - depends_on("py-torchmetrics@0.2.0", when="@:1.2", type=("build", "run")) - depends_on("py-packaging@17.1:", when="@1.9:", type=("build", "run")) - depends_on("py-packaging@17.0:", when="@1.3:", type=("build", "run")) - depends_on("py-packaging", when="@:1.2", type=("build", "run")) - depends_on("py-typing-extensions@4.0.0:", when="@1.6:", type=("build", "run")) - depends_on("py-typing-extensions", when="@1.4:1.5", type=("build", "run")) - depends_on("py-lightning-utilities@0.7:", when="@2:", type=("build", "run")) - depends_on("py-lightning-utilities@0.6.0.post0:", when="@1.9.1:", type=("build", "run")) - depends_on("py-lightning-utilities@0.4.2:", when="@1.9.0", type=("build", "run")) - depends_on("py-lightning-utilities@0.3,0.4.1:", when="@1.8.4:1.8", type=("build", "run")) - depends_on("py-lightning-utilities@0.3:", when="@1.8.0:1.8.3", type=("build", "run")) + with default_args(type=("build", "run")): + # requirements/pytorch/base.txt + depends_on("py-torch@2.1:", when="@2.6:") + depends_on("py-torch@1.11:", when="@2:") + depends_on("py-torch@1.10:", when="@1.9:") + depends_on("py-torch@1.9:", when="@1.7:") + depends_on("py-torch@1.8:", when="@1.6:") + depends_on("py-torch@1.6:", when="@1.4:") + depends_on("py-torch@1.4:") + depends_on("py-tqdm@4.57:", when="@1.6.3:") + depends_on("py-tqdm@4.41:") + depends_on("py-pyyaml@5.4.1:", when="@2.6:") + depends_on("py-pyyaml@5.4:", when="@1.6:") + depends_on("py-pyyaml@5.1:", when="@1.4:") + depends_on("py-pyyaml@5.1:5.4.1", when="@1.3") + depends_on("py-pyyaml@5.1:5.3,5.5:", when="@:1.2") + depends_on("py-fsspec+http") + depends_on("py-fsspec@2022.5:", when="@2.6:") + depends_on("py-fsspec@2021.06.1:", when="@1.8:") + depends_on("py-fsspec@2021.05.0:2021.05,2021.06.1:", when="@1.3:") + depends_on("py-fsspec@0.8.1:") + depends_on("py-torchmetrics@0.7.1:", when="@2.6:") + depends_on("py-torchmetrics@0.7:", when="@1.7:") + depends_on("py-torchmetrics@0.4.1:", when="@1.5:") + depends_on("py-torchmetrics@0.4.0:", when="@1.4") + depends_on("py-torchmetrics@0.2.0:", when="@1.3") + depends_on("py-torchmetrics@0.2.0", when="@:1.2") + depends_on("py-packaging@23:", when="@2.6:") + depends_on("py-packaging@17.1:", when="@1.9:") + depends_on("py-packaging@17.0:", when="@1.3:") + depends_on("py-packaging", when="@:1.2") + depends_on("py-typing-extensions@4.5.1:", when="@2.6:") + depends_on("py-typing-extensions@4.0.0:", when="@1.6:") + depends_on("py-typing-extensions", when="@1.4:1.5") + depends_on("py-lightning-utilities@0.10:", when="@2.6:") + depends_on("py-lightning-utilities@0.7:", when="@2:") + depends_on("py-lightning-utilities@0.6.0.post0:", when="@1.9.1:") + depends_on("py-lightning-utilities@0.4.2:", when="@1.9.0") + depends_on("py-lightning-utilities@0.3,0.4.1:", when="@1.8.4:1.8") + depends_on("py-lightning-utilities@0.3:", when="@1.8.0:1.8.3") - # Historical dependencies - depends_on("py-lightning-lite@1.8.0", when="@1.8.0", type=("build", "run")) - depends_on("py-future@0.17.1:", when="@:1.5", type=("build", "run")) - depends_on("pil@:8.2,8.3.1:", when="@1.3", type=("build", "run")) - depends_on("py-protobuf@:3.20.1", when="@1.6.4:1.6", type="build") - depends_on("py-pydeprecate@0.3.1:", when="@1.6.4:1.7", type=("build", "run")) - depends_on("py-pydeprecate@0.3.1:0.3", when="@1.6:1.6.3", type=("build", "run")) - depends_on("py-pydeprecate@0.3.1", when="@1.4:1.5", type=("build", "run")) - depends_on("py-pydeprecate@0.3.0", when="@1.3", type=("build", "run")) - depends_on("py-tensorboardx@2.2:", when="@1.8.3:1.8", type=("build", "run")) - depends_on("py-tensorboard@2.9.1:", when="@1.7:1.8.2", type=("build", "run")) - depends_on("py-tensorboard@2.2.0:", when="@1.5:1.6", type=("build", "run")) - depends_on("py-tensorboard@2.2.0:2.4,2.5.1:", when="@:1.4", type=("build", "run")) + # Historical dependencies + depends_on("py-lightning-lite@1.8.0", when="@1.8.0") + depends_on("py-future@0.17.1:", when="@:1.5") + depends_on("py-numpy@1.17.2:", when="@1.3:2.0") + depends_on("py-numpy@1.16.6:", when="@:1.2") + depends_on("pil@:8.2,8.3.1:", when="@1.3") + depends_on("py-protobuf@:3.20.1", when="@1.6.4:1.6") + depends_on("py-pydeprecate@0.3.1:", when="@1.6.4:1.7") + depends_on("py-pydeprecate@0.3.1:0.3", when="@1.6:1.6.3") + depends_on("py-pydeprecate@0.3.1", when="@1.4:1.5") + depends_on("py-pydeprecate@0.3.0", when="@1.3") + # https://github.com/Lightning-AI/pytorch-lightning/pull/20081 + depends_on("py-setuptools", when="@:2.3") + depends_on("py-tensorboardx@2.2:", when="@1.8.3:1.8") + depends_on("py-tensorboard@2.9.1:", when="@1.7:1.8.2") + depends_on("py-tensorboard@2.2.0:", when="@1.5:1.6") + depends_on("py-tensorboard@2.2.0:2.4,2.5.1:", when="@:1.4") # https://github.com/Lightning-AI/lightning/issues/16637 conflicts("^py-torch~distributed", when="@1.9.0") @@ -110,3 +130,11 @@ class PyPytorchLightning(PythonPackage): conflicts("^py-torch~distributed", when="@1.8.0") # https://github.com/Lightning-AI/lightning/issues/10348 conflicts("^py-torch~distributed", when="@1.5.0:1.5.2") + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/p/pytorch-lightning/{}-{}.tar.gz" + if version >= Version("2.5"): + name = "pytorch_lightning" + else: + name = "pytorch-lightning" + return url.format(name, version) diff --git a/repos/spack_repo/builtin/packages/py_pytorch_sphinx_theme/package.py b/repos/spack_repo/builtin/packages/py_pytorch_sphinx_theme/package.py index bf0bfa7ae36..3fccc45fd96 100644 --- a/repos/spack_repo/builtin/packages/py_pytorch_sphinx_theme/package.py +++ b/repos/spack_repo/builtin/packages/py_pytorch_sphinx_theme/package.py @@ -13,6 +13,8 @@ class PyPytorchSphinxTheme(PythonPackage): homepage = "https://github.com/pytorch/pytorch_sphinx_theme" git = "https://github.com/pytorch/pytorch_sphinx_theme.git" + license("MIT") + version("master", branch="master") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_pytuq/package.py b/repos/spack_repo/builtin/packages/py_pytuq/package.py new file mode 100644 index 00000000000..eefa1ada9c7 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pytuq/package.py @@ -0,0 +1,44 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyPytuq(PythonPackage): + """The Python Toolkit for Uncertainty Quantification (PyTUQ) is a + Python-only collection of libraries and tools designed for quantifying + uncertainty in computational models. PyTUQ offers a range of UQ + functionalities, including Bayesian inference and linear regression + methods, polynomial chaos expansions, and global sensitivity analysis + methods. PyTUQ features advanced techniques for dimensionality + reduction, such as SVD and Karhunen-Loeve expansions, along with + various MCMC methods for calibration and inference. The toolkit also + includes robust classes for multivariate random variables and + integration techniques, making it a versatile resource for researchers + and practitioners seeking to quantify uncertainty in their numerical + predictions.""" + + homepage = "https://sandialabs.github.io/pytuq/" + pypi = "pytuq/pytuq-1.0.0.tar.gz" + + maintainers("bjdebus", "ksargsyan", "gregvw") + + license("BSD-3-Clause", checked_by="gregvw") + + version("1.0.0", sha256="1fc9fabf7bf183d38e104564e99d1950f7e2103baac5a13960c356173b9997ff") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-wheel", type="build") + + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + depends_on("py-matplotlib", type=("build", "run")) + + variant("nn", default=False, description="Enable neural network support") + + depends_on("py-torch", type=("build", "run"), when="+nn") + depends_on("py-uqinn", type=("build", "run"), when="+nn") diff --git a/repos/spack_repo/builtin/packages/py_pytz/package.py b/repos/spack_repo/builtin/packages/py_pytz/package.py index 164f2d07602..f2a57af5a56 100644 --- a/repos/spack_repo/builtin/packages/py_pytz/package.py +++ b/repos/spack_repo/builtin/packages/py_pytz/package.py @@ -16,6 +16,7 @@ class PyPytz(PythonPackage): license("MIT") + version("2025.2", sha256="360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3") version("2024.2", sha256="2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a") version("2023.3", sha256="1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588") version("2022.2.1", sha256="cea221417204f2d1a2aa03ddae3e867921971d0d76f14d87abb4414415bbdcf5") diff --git a/repos/spack_repo/builtin/packages/py_pyvips/package.py b/repos/spack_repo/builtin/packages/py_pyvips/package.py new file mode 100644 index 00000000000..52627be6bda --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pyvips/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 PyPyvips(PythonPackage): + """Python binding for the libvips image processing library.""" + + homepage = "https://github.com/libvips/pyvips" + pypi = "pyvips/pyvips-3.1.1.tar.gz" + + version("3.1.1", sha256="84fe744d023b1084ac2516bb17064cacd41c7f8aabf8e524dd383534941b9301") + + depends_on("py-setuptools@61:", type="build") + depends_on("py-pkgconfig@1.5:", type="build") # needed to enable API mode + depends_on("py-cffi@1:", type=("build", "run")) + depends_on("c", type="build") + + depends_on("libvips +fftw +jpeg +tiff +png +poppler", type=("run", "build", "link")) diff --git a/repos/spack_repo/builtin/packages/py_pyvista/package.py b/repos/spack_repo/builtin/packages/py_pyvista/package.py index 937f49a54b3..8b93b743160 100644 --- a/repos/spack_repo/builtin/packages/py_pyvista/package.py +++ b/repos/spack_repo/builtin/packages/py_pyvista/package.py @@ -20,6 +20,8 @@ class PyPyvista(PythonPackage): license("MIT") + version("0.46.3", sha256="1f8e6e39516d24d93bc227f278841a0d72ec3722959f612cf4616d2720a8afe1") + version("0.45.3", sha256="bca39f5ea17e45f40070ab45423dfd2c4fc81c33e0fb565bafded81c024fd04f") version("0.44.1", sha256="63976f5d57d151b3f7e1616dde40dcf56a66d1f37f6db067087fa9cc9667f512") version("0.42.3", sha256="00159cf0dea05c1ecfd1695c8c6ccfcfff71b0744c9997fc0276e661dc052351") version("0.37.0", sha256="d36a2c6d5f53f473ab6a9241669693acee7a5179394dc97595da14cc1de23141") @@ -31,11 +33,19 @@ class PyPyvista(PythonPackage): depends_on("py-numpy", type=("build", "run")) # https://github.com/pyvista/pyvista/releases/tag/v0.44.0 depends_on("py-numpy@:1", when="@:0.43", type=("build", "run")) + + # this is a virtual that can provide py-pillow as needed depends_on("pil", type=("build", "run")) depends_on("py-pooch", when="@0.37:", type=("build", "run")) depends_on("py-scooby@0.5.1:", type=("build", "run")) + # https://github.com/pyvista/pyvista/issues/6857 - depends_on("vtk@:9.3+python", type=("build", "run")) + depends_on("vtk@:9.3+python", type=("build", "run"), when="@:0.44.1") + # 9.4.0 and 9.4.1 are not supported + # https://github.com/pyvista/pyvista/issues/6731 + depends_on("vtk@:9.3,9.4.2:9.6+python", type=("build", "run"), when="@0.45.3:") + + depends_on("py-typing-extensions@4.10:", when="@0.46.1:", type=("build", "run")) depends_on("py-typing-extensions", when="^python@:3.7", type=("build", "run")) # Historical dependencies diff --git a/repos/spack_repo/builtin/packages/py_pyviz_comms/package.py b/repos/spack_repo/builtin/packages/py_pyviz_comms/package.py index 930ae2fae5a..7e6e55cad2b 100644 --- a/repos/spack_repo/builtin/packages/py_pyviz_comms/package.py +++ b/repos/spack_repo/builtin/packages/py_pyviz_comms/package.py @@ -15,6 +15,7 @@ class PyPyvizComms(PythonPackage): license("BSD-3-Clause") + version("3.0.6", sha256="73d66b620390d97959b2c4d8a2c0778d41fe20581be4717f01e46b8fae8c5695") version("3.0.4", sha256="d70e17555f7262c4884a6b7bc9ca19cb816507a032a334d9cb411b4546caff4c") version("2.2.1", sha256="a26145b8ce43d2d934b3c6826d77b913ce105c528eb2e494c890b3e3525ddf33") diff --git a/repos/spack_repo/builtin/packages/py_pywavelets/package.py b/repos/spack_repo/builtin/packages/py_pywavelets/package.py index 3dc9970adf3..b55f611959a 100644 --- a/repos/spack_repo/builtin/packages/py_pywavelets/package.py +++ b/repos/spack_repo/builtin/packages/py_pywavelets/package.py @@ -13,24 +13,40 @@ class PyPywavelets(PythonPackage): in Python""" homepage = "https://github.com/PyWavelets/pywt" - pypi = "PyWavelets/PyWavelets-0.5.2.tar.gz" + pypi = "PyWavelets/pywavelets-0.9.0.tar.gz" license("MIT") + version("1.9.0", sha256="148d12203377772bea452a59211d98649c8ee4a05eff019a9021853a36babdc8") version("1.4.1", sha256="6437af3ddf083118c26d8f97ab43b0724b956c9f958e9ea788659f6a2834ba93") version("1.1.1", sha256="1a64b40f6acb4ffbaccce0545d7fc641744f95351f62e4c6aaa40549326008c9") version("0.5.2", sha256="ce36e2f0648ea1781490b09515363f1f64446b0eac524603e5db5e180113bed9") depends_on("c", type="build") # generated - depends_on("python@3.8:", when="@1.4.1:", type=("build", "run")) - depends_on("python@3.5:", when="@1.1.1:", type=("build", "run")) - depends_on("py-setuptools@:64", type="build") - depends_on("py-cython@0.29.24:2", when="@1.2:", type="build") + depends_on("python@3.11:", type=("build", "run"), when="@1.9:") + depends_on("python@3.8:", type=("build", "run"), when="@1.4.1:") + depends_on("python@3.5:", type=("build", "run"), when="@1.1.1:") + depends_on("py-meson-python@0.18:", type="build", when="@1.9:") + depends_on("py-cython@3.0.4:", type="build", when="@1.7:") + depends_on("py-cython@0.29.24:2", type="build", when="@1.2:1.4") depends_on("py-cython", type="build") - depends_on("py-numpy@1.17.3:", when="@1.2:", type=("build", "run")) - depends_on("py-numpy@1.13.3:", when="@1.1.1:", type=("build", "run")) + depends_on("py-numpy@1.25:2", type=("build", "run"), when="@1.9:") + depends_on("py-numpy@1.17.3:", type=("build", "run"), when="@1.2:") + depends_on("py-numpy@1.13.3:", type=("build", "run"), when="@1.1.1:") depends_on("py-numpy@1.9.1:", type=("build", "run")) # https://github.com/PyWavelets/pywt/pull/731 - depends_on("py-numpy@:1", when="@:1.5", type=("build", "run")) + depends_on("py-numpy@:1", type=("build", "run"), when="@:1.5") + + # Historical dependencies + depends_on("py-setuptools@:64", type="build", when="@:1.4") + + def url_for_version(self, version): + if version >= Version("1.5"): + name = "pywavelets" + else: + name = "PyWavelets" + return ( + f"https://files.pythonhosted.org/packages/source/P/PyWavelets/{name}-{version}.tar.gz" + ) diff --git a/repos/spack_repo/builtin/packages/py_pywinpty/package.py b/repos/spack_repo/builtin/packages/py_pywinpty/package.py new file mode 100644 index 00000000000..91f6ac6a3cb --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_pywinpty/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 PyPywinpty(PythonPackage): + """Pseudoterminals for Windows in Python.""" + + homepage = "https://github.com/andfoy/pywinpty" + pypi = "pywinpty/pywinpty-3.0.3.tar.gz" + git = "https://github.com/andfoy/pywinpty.git" + + maintainers("wdconinc") + + license("MIT", checked_by="wdconinc") + + version("3.0.3", sha256="523441dc34d231fb361b4b00f8c99d3f16de02f5005fd544a0183112bcc22412") + + requires("platform=windows") + + with default_args(type=("build", "run")): + depends_on("python@3.9:", type="build") + + with default_args(type="build"): + depends_on("py-maturin@1.1:1") diff --git a/repos/spack_repo/builtin/packages/py_pyyaml/package.py b/repos/spack_repo/builtin/packages/py_pyyaml/package.py index 372b3a65afe..fcb78ed70ad 100644 --- a/repos/spack_repo/builtin/packages/py_pyyaml/package.py +++ b/repos/spack_repo/builtin/packages/py_pyyaml/package.py @@ -23,6 +23,7 @@ class PyPyyaml(PythonPackage): # (see url_for_version below). Since "spack checksum" does not use url_for_version, # for versions older than 6.0.2, you'll need to use "spack checksum py-pyyaml x.y.z" # as we changed the pypi url above to lowercase. + version("6.0.3", sha256="d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f") version("6.0.2", sha256="d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e") version("6.0.1", sha256="bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43") version("6.0", sha256="68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2") @@ -40,6 +41,9 @@ class PyPyyaml(PythonPackage): depends_on("python@2.7,3.5:", type=("build", "link", "run")) depends_on("python@3.6:", when="@6:", type=("build", "link", "run")) depends_on("libyaml", when="+libyaml", type="link") + # setuptools versions are not documented upstream, the when= constraint + # should probably be set to a lower version. + depends_on("py-setuptools@62:", type="build", when="@6.0.3:") depends_on("py-setuptools", type="build") depends_on("py-cython", when="@6:+libyaml", type="build") @@ -50,6 +54,11 @@ class PyPyyaml(PythonPackage): # 6.0.2+ do now support Cython 3 per release notes conflicts("^py-cython@3:", when="@:6.0.1") + # Per pyyaml release notes, support for Python 3.13 was added in 6.0.2 + # and support for Python 3.14 was added in 6.0.3. + conflicts("^python@3.13:", when="@:6.0.1") + conflicts("^python@3.14:", when="@:6.0.2") + # With pyyaml 6.0.2, the tarfile changed from PyYAML-6.0.1.tar.gz to pyyaml-6.0.2.tar.gz def url_for_version(self, version): if version >= Version("6.0.2"): @@ -67,6 +76,14 @@ def import_modules(self): return modules + @when("^py-pip@23.1:") + def config_settings(self, spec, prefix): + if "+libyaml" in self.spec: + return {"--global-option": "--with-libyaml"} + else: + return {"--global-option": "--without-libyaml"} + + @when("^py-pip@:23.0") def global_options(self, spec, prefix): args = [] @@ -76,3 +93,9 @@ def global_options(self, spec, prefix): args.append("--without-libyaml") return args + + def setup_build_environment(self, env): + if "+libyaml" in self.spec: + env.append_flags("LDFLAGS", f"-L{self.spec['libyaml'].prefix.lib}") + env.append_flags("LDFLAGS", f"-Wl,-rpath,{self.spec['libyaml'].prefix.lib}") + env.append_flags("CFLAGS", f"-I{self.spec['libyaml'].prefix.include}") diff --git a/repos/spack_repo/builtin/packages/py_pyzmq/package.py b/repos/spack_repo/builtin/packages/py_pyzmq/package.py index 5aa6c1f4bd5..abfa3954fec 100644 --- a/repos/spack_repo/builtin/packages/py_pyzmq/package.py +++ b/repos/spack_repo/builtin/packages/py_pyzmq/package.py @@ -15,6 +15,7 @@ class PyPyzmq(PythonPackage): license("BSD-3-Clause") + version("27.1.0", sha256="ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540") version("26.2.0", sha256="070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f") version("26.1.1", sha256="a7db05d8b7cd1a8c6610e9e9aa55d525baae7a44a43e18bc3260eb3f92de96c6") version("26.0.3", sha256="dba7d9f2e047dfa2bca3b01f4f84aa5246725203d6284e3790f2ca15fba6b40a") @@ -26,41 +27,36 @@ class PyPyzmq(PythonPackage): version("18.0.1", sha256="8b319805f6f7c907b101c864c3ca6cefc9db8ce0791356f180b1b644c7347e4c") version("17.1.2", sha256="a72b82ac1910f2cf61a49139f4974f994984475f771b0faa730839607eeedddf") version("16.0.2", sha256="0322543fff5ab6f87d11a8a099c4c07dd8a1719040084b6ce9162bcdf5c45c9d") - version( - "14.7.0", - sha256="77994f80360488e7153e64e5959dc5471531d1648e3a4bff14a714d074a38cc2", - deprecated=True, - ) - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - depends_on("python@2.6:2.7,3.2:3.8", type=("build", "run"), when="@:14") - - # pyproject.toml - with when("@26:"): - depends_on("py-scikit-build-core +pyproject", type="build") - with when("@:25"): - depends_on("py-setuptools", type="build") - # https://github.com/zeromq/pyzmq/issues/1278 - # https://github.com/zeromq/pyzmq/pull/1317 - depends_on("py-setuptools@:59", when="@17:18.0", type="build") - depends_on("py-packaging", type="build") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("py-cython@3:", type="build", when="@26:") - depends_on("py-cython@0.29.35:", type="build", when="@25.1.1: ^python@3.12:") - depends_on("py-cython@0.29:", type="build", when="@22.3.0:") - depends_on("py-cython@0.20:", type="build", when="@18:") - depends_on("py-cython@0.16:", type="build") + depends_on("py-cython@0.29.35:", type="build", when="@25.1.1:25 ^python@3.12:") + depends_on("py-cython@0.29:", type="build", when="@19:25") + depends_on("py-cython@0.20:", type="build", when="@:18") + depends_on("py-packaging", type="build") + depends_on("py-scikit-build-core+pyproject@0.10:", type="build", when="@26.3:") + depends_on("py-scikit-build-core+pyproject", type="build", when="@26.0:26.2") + + # from README + depends_on("libzmq@3.2.2:", type=("build", "link"), when="@22.3.0:") depends_on("libzmq", type=("build", "link")) - depends_on("libzmq@3.2:", type=("build", "link"), when="@22.3.0:") - # Only when python is provided by 'pypy' - depends_on("py-py", type=("build", "run"), when="@:22") - depends_on("py-cffi", type=("build", "run"), when="@:22") # Undocumented dependencies depends_on("py-gevent", type=("build", "run")) + # https://github.com/zeromq/pyzmq/issues/1915 + conflicts("^py-cython@3.1:", when="@:25") + + # Historical dependencies + depends_on("py-setuptools@:59", type="build", when="@17:18.0") + depends_on("py-setuptools", type="build", when="@:25") + depends_on("py-setuptools-scm+toml", type="build", when="@25.1.1:25") + # Only when python is provided by 'pypy' + depends_on("py-py", type=("build", "run"), when="@:22") + depends_on("py-cffi", type=("build", "run"), when="@:22") + @run_before("install", when="@15:19") def remove_cythonized_files(self): # Before v20.0.0 an ancient cythonize API was used, for which we cannot diff --git a/repos/spack_repo/builtin/packages/py_qiskit_terra/package.py b/repos/spack_repo/builtin/packages/py_qiskit_terra/package.py index 7b240576d30..89873ccfb7e 100644 --- a/repos/spack_repo/builtin/packages/py_qiskit_terra/package.py +++ b/repos/spack_repo/builtin/packages/py_qiskit_terra/package.py @@ -31,6 +31,8 @@ class PyQiskitTerra(PythonPackage): depends_on("py-stevedore@3.0.0:", type=("build", "run")) depends_on("py-psutil@5:", type=("build", "run")) + depends_on("rust", type="build", when="@0.22:") + with when("@0.18.3"): depends_on("python@3.6:", type=("build", "run")) depends_on("py-cython@0.27.1:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_qpth/package.py b/repos/spack_repo/builtin/packages/py_qpth/package.py index c528e232f08..61a5c2e983c 100644 --- a/repos/spack_repo/builtin/packages/py_qpth/package.py +++ b/repos/spack_repo/builtin/packages/py_qpth/package.py @@ -15,6 +15,7 @@ class PyQpth(PythonPackage): license("Apache-2.0") + version("0.0.18", sha256="ade478c6bf5ab60b7f86435c8893812c2c5938083fe8bccd775bb23d613fa3c5") version("0.0.15", sha256="99d8ec5a35877c18543875a7d5b7fc9af1fa9a4d4b0888011c1ecf42ad9d521c") depends_on("python", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_qtpy/package.py b/repos/spack_repo/builtin/packages/py_qtpy/package.py index b3999238e5d..bb6f86dcdcd 100644 --- a/repos/spack_repo/builtin/packages/py_qtpy/package.py +++ b/repos/spack_repo/builtin/packages/py_qtpy/package.py @@ -15,15 +15,18 @@ class PyQtpy(PythonPackage): license("MIT") + version("2.4.1", sha256="a5a15ffd519550a1361bdc56ffc07fda56a6af7292f17c7b395d4083af632987") version("1.11.2", sha256="d6e4ae3a41f1fcb19762b58f35ad6dd443b4bdc867a4cb81ef10ccd85403c92b") version("1.7.1", sha256="e97275750934b3a1f4d8e263f5b889ae817ed36f26867ab0ce52be731ab1ed9e") version("1.2.1", sha256="5803ce31f50b24295e8e600b76cc91d7f2a3140a5a0d526d40226f9ec5e9097d") - apis = ["pyqt5", "pyqt4", "pyside2", "pyside"] + apis = ["pyqt5", "pyqt4", "pyside2"] variant("api", default="pyqt5", description="Default QT API", values=apis, multi=False) + depends_on("python@3.7:", when="@2.4.1:", type=("build", "run")) depends_on("python@2.7:2.8,3.6:", when="@1.10.0:", type=("build", "run")) + depends_on("py-setuptools@42:", when="@2.4.1:", type="build") depends_on("py-setuptools", type="build") for api in apis: depends_on("py-" + api, when="api=" + api, type="run") diff --git a/repos/spack_repo/builtin/packages/py_quantiphy/package.py b/repos/spack_repo/builtin/packages/py_quantiphy/package.py index a6b39f6b5ef..1a9de076d5f 100644 --- a/repos/spack_repo/builtin/packages/py_quantiphy/package.py +++ b/repos/spack_repo/builtin/packages/py_quantiphy/package.py @@ -17,6 +17,7 @@ class PyQuantiphy(PythonPackage): license("MIT", checked_by="ax3l") + version("2.21", sha256="bf8d06ffa7150f69a5c7e3fb4a7a0a535109df85e7c0ab0f39fb317c5c9cafe0") version("2.20", sha256="ba5375ac55c3b90077a793588dd5a88aaf81b2c3b0fc9c9359513ac39f6ed84d") depends_on("python@3.6:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_quantities/package.py b/repos/spack_repo/builtin/packages/py_quantities/package.py index d897e0d133a..861050c4cab 100644 --- a/repos/spack_repo/builtin/packages/py_quantities/package.py +++ b/repos/spack_repo/builtin/packages/py_quantities/package.py @@ -18,8 +18,6 @@ class PyQuantities(PythonPackage): version("0.14.1", sha256="efeafffc0c0364f891a9327239cd12496bccb55cd037a6d1bf44de706f722877") version("0.13.0", sha256="0fde20115410de21cefa786f3aeae69c1b51bb19ee492190324c1da705e61a81") - version("0.12.5", sha256="67546963cb2a519b1a4aa43d132ef754360268e5d551b43dd1716903d99812f0") - version("0.12.4", sha256="a33d636d1870c9e1127631185d89b0105a49f827d6aacd44ad9d8f151f331d8b") depends_on("python@3.8:", type=("build", "run"), when="@0.14:") @@ -29,4 +27,3 @@ class PyQuantities(PythonPackage): depends_on("py-numpy@1.19:", type=("build", "run"), when="@0.14:") depends_on("py-numpy@1.16:", type=("build", "run"), when="@0.13") - depends_on("py-numpy@1.8.2:1.17", type=("build", "run"), when="@0.12.4:0.12") diff --git a/repos/spack_repo/builtin/packages/py_rachis/package.py b/repos/spack_repo/builtin/packages/py_rachis/package.py new file mode 100644 index 00000000000..48ea8ac1878 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_rachis/package.py @@ -0,0 +1,38 @@ +# 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 PyRachis(PythonPackage): + """Rachis Framework (Formerly Known as QIIME 2 Framework (Q2F))""" + + homepage = "https://qiime2.org/" + pypi = "rachis/rachis-2026.1.0.tar.gz" + + license("BSD-3-Clause") + + version("2026.1.0", sha256="692449dd06025902943c2ec3810dbb03683dee5e92e138f4d1b0c419972f7511") + + depends_on("python@3.10:3.11", type=("build", "run")) + depends_on("py-setuptools@80.9:80", type="build") + + with default_args(type=("build", "run")): + depends_on("py-appdirs@1.4.4:1") + depends_on("py-bibtexparser@1.4.3:1") + depends_on("py-decorator@4.4.2:4.4") + depends_on("py-dill@0.4") + depends_on("py-flufl-lock@9") + depends_on("py-networkx@3.1:4") + depends_on("py-numpy@1.26:2") + depends_on("py-pandas@2.2:2") + depends_on("py-parsl@2026:") + depends_on("py-psutil@7.1.3:7") + depends_on("py-python-dateutil@2.9.0.post0:2") + depends_on("py-pyyaml@6.0.3:6") + depends_on("py-tomlkit@0.13.3:0.13") + depends_on("py-tzlocal@5.3.1:5") + depends_on("py-lxml@6.0.2:6") diff --git a/repos/spack_repo/builtin/packages/py_radical_entk/package.py b/repos/spack_repo/builtin/packages/py_radical_entk/package.py index 88796b98793..35d8f03f37f 100644 --- a/repos/spack_repo/builtin/packages/py_radical_entk/package.py +++ b/repos/spack_repo/builtin/packages/py_radical_entk/package.py @@ -22,33 +22,6 @@ class PyRadicalEntk(PythonPackage): version("develop", branch="devel") version("1.92.0", sha256="908a5d35cbc801c8b064837a21cbf5ad1a9b4aed0db48f2db84ef85d4e529cef") - version( - "1.47.0", - sha256="a4338e3a87147c032fb3a16a03990155742cc64c6625cfb4e1588ae0e51aafda", - deprecated=True, - ) - version( - "1.39.0", - sha256="72d64b25df9f3cb1dcbc32323a669d86d947cf07d15bed91cfedca2a99fb3ef1", - deprecated=True, - ) - depends_on("py-radical-utils@1.90:1.99", type=("build", "run"), when="@1.90:") depends_on("py-radical-pilot@1.90:1.99", type=("build", "run"), when="@1.90:") - - depends_on("py-radical-utils@1.40:1.52", type=("build", "run"), when="@1.40:1.52") - depends_on("py-radical-pilot@1.40:1.52.1", type=("build", "run"), when="@1.40:1.52") - - depends_on("py-radical-utils@1.39", type=("build", "run"), when="@1.39") - depends_on("py-radical-pilot@1.39", type=("build", "run"), when="@1.39") - - depends_on("python@3.7:", type=("build", "run"), when="@1.53:") - depends_on("python@3.6:", type=("build", "run"), when="@:1.52") - depends_on("py-setuptools", type="build") - - def url_for_version(self, version): - if version >= Version("1.48.1"): - return super().url_for_version(version) - url = self.url.replace("_", ".") - return substitute_version_in_url(url, self.url_version(version)) diff --git a/repos/spack_repo/builtin/packages/py_radical_gtod/package.py b/repos/spack_repo/builtin/packages/py_radical_gtod/package.py index 1153f4e6243..a567e12c1bf 100644 --- a/repos/spack_repo/builtin/packages/py_radical_gtod/package.py +++ b/repos/spack_repo/builtin/packages/py_radical_gtod/package.py @@ -24,29 +24,6 @@ class PyRadicalGtod(PythonPackage): version("develop", branch="devel") version("1.90.0", sha256="70889239d3a60f8f323f62b942939665464fa368c4a00d0fbc49c878658f57b2") - version( - "1.47.0", - sha256="52e75bf14faf352165ffa0d9e32ca472bd63f479020cd78f832baa34f8acfe6d", - deprecated=True, - ) - version( - "1.39.0", - sha256="254f1e805b58a33b93c6180f018904db25538710ec9e75b3a3a9969d7206ecf6", - deprecated=True, - ) - depends_on("c", type="build") # generated - depends_on("py-radical-utils@1.90:1.99", type=("build", "run"), when="@1.90:") - depends_on("py-radical-utils@:1.52", type=("build", "run"), when="@1.13:1.52") - - depends_on("python@3.7:", type=("build", "run"), when="@1.53:") - depends_on("python@3.6:", type=("build", "run"), when="@:1.52") - depends_on("py-setuptools", type="build") - - def url_for_version(self, version): - if version >= Version("1.47.1"): - return super().url_for_version(version) - url = self.url.replace("_", ".") - return substitute_version_in_url(url, self.url_version(version)) diff --git a/repos/spack_repo/builtin/packages/py_radical_pilot/package.py b/repos/spack_repo/builtin/packages/py_radical_pilot/package.py index 750dc627c94..fe9028ae042 100644 --- a/repos/spack_repo/builtin/packages/py_radical_pilot/package.py +++ b/repos/spack_repo/builtin/packages/py_radical_pilot/package.py @@ -23,41 +23,10 @@ class PyRadicalPilot(PythonPackage): version("develop", branch="devel") version("1.92.0", sha256="5c65df02ec097f71648259db8ed8638580ea8e4c1c7f360879afff7f99e56134") - version( - "1.47.0", - sha256="58f41a0c42fe61381f15263a63424294732606ab7cee717540c0b730308f7908", - deprecated=True, - ) - version( - "1.39.0", - sha256="7ba0bfa3258b861db71e73d52f0915bfb8b3ac1099badacf69628307cab3b913", - deprecated=True, - ) - depends_on("py-radical-utils@1.90:1.99", type=("build", "run"), when="@1.90:") depends_on("py-radical-gtod@1.90:1.99", type=("build", "run"), when="@1.90:") - - depends_on("py-radical-utils@1.44:1.52", type=("build", "run"), when="@1.47:1.52.1") - depends_on("py-radical-saga@1.40:", type=("build", "run"), when="@1.47") - depends_on("py-radical-gtod@:1.52", type=("build", "run"), when="@1.14:1.52.1") - - depends_on("py-radical-utils@1.39", type=("build", "run"), when="@1.39") - depends_on("py-radical-saga@1.39", type=("build", "run"), when="@1.39") - depends_on("py-radical-gtod@1.39", type=("build", "run"), when="@1.39") - - depends_on("py-pymongo@:3", type=("build", "run"), when="@:1.39") - - depends_on("python@3.7:", type=("build", "run"), when="@1.48:") - depends_on("python@3.6:", type=("build", "run"), when="@:1.47") - depends_on("py-requests", type=("build", "run"), when="@1.90:") depends_on("py-psij-python", type=("build", "run"), when="@1.48:") depends_on("py-dill", type=("build", "run"), when="@1.14:") depends_on("py-setproctitle", type=("build", "run")) depends_on("py-setuptools", type="build") - - def url_for_version(self, version): - if version >= Version("1.49.3"): - return super().url_for_version(version) - url = self.url.replace("_", ".") - return substitute_version_in_url(url, self.url_version(version)) diff --git a/repos/spack_repo/builtin/packages/py_radical_saga/package.py b/repos/spack_repo/builtin/packages/py_radical_saga/package.py index f1ac568dcb9..2efe9d968a3 100644 --- a/repos/spack_repo/builtin/packages/py_radical_saga/package.py +++ b/repos/spack_repo/builtin/packages/py_radical_saga/package.py @@ -24,30 +24,6 @@ class PyRadicalSaga(PythonPackage): version("develop", branch="devel") version("1.90.0", sha256="55758339f58087477574ed598e5a34cb99d045a540a74ba9e11b34eead4af78d") - version( - "1.47.0", - sha256="fc9a8fc060e708852ce6c40b08a65111f8d72b9ad5f8afef9ceaa866c1351233", - deprecated=True, - ) - version( - "1.39.0", - sha256="0fea8103d3f96c821c977bcb55ff1c6a9844de727539b182dda4cbc2570df791", - deprecated=True, - ) - depends_on("py-radical-utils@1.90:1.99", type=("build", "run"), when="@1.90:") - depends_on("py-radical-utils@1.40:1.52", type=("build", "run"), when="@1.40:1.52") - depends_on("py-radical-utils@1.39", type=("build", "run"), when="@1.39") - - depends_on("python@3.7:", type=("build", "run"), when="@1.53:") - depends_on("python@3.6:", type=("build", "run"), when="@:1.52") - - depends_on("py-apache-libcloud", type=("build", "run"), when="@:1.60") depends_on("py-parse", type=("build", "run")) depends_on("py-setuptools", type="build") - - def url_for_version(self, version): - if version >= Version("1.47.1"): - return super().url_for_version(version) - url = self.url.replace("_", ".") - return substitute_version_in_url(url, self.url_version(version)) diff --git a/repos/spack_repo/builtin/packages/py_radical_utils/package.py b/repos/spack_repo/builtin/packages/py_radical_utils/package.py index 62521e6012a..156d4f80616 100644 --- a/repos/spack_repo/builtin/packages/py_radical_utils/package.py +++ b/repos/spack_repo/builtin/packages/py_radical_utils/package.py @@ -22,20 +22,6 @@ class PyRadicalUtils(PythonPackage): version("develop", branch="devel") version("1.91.1", sha256="5293f375f699161e451982b2e7668613c24e2562252f65e765ebbc83d8ae0118") - version( - "1.47.0", - sha256="f85a4a452561dd018217f1ed38d97c9be96fa448437cfeb1b879121174fd5311", - deprecated=True, - ) - version( - "1.39.0", - sha256="fade87ee4c6ccf335d5e26d5158ce22ee891e4d4c576464274999ddf36dc4977", - deprecated=True, - ) - - depends_on("python@3.7:", type=("build", "run"), when="@1.53:") - depends_on("python@3.6:", type=("build", "run"), when="@:1.52") - depends_on("py-colorama", type=("build", "run")) depends_on("py-msgpack", type=("build", "run")) depends_on("py-netifaces", type=("build", "run")) @@ -45,11 +31,3 @@ class PyRadicalUtils(PythonPackage): depends_on("py-setproctitle", type=("build", "run")) with default_args(type="build"): depends_on("py-setuptools") - # https://github.com/radical-cybertools/radical.utils/issues/403 - depends_on("py-setuptools@:69.2", when="@:1.51") - - def url_for_version(self, version): - if version >= Version("1.48.1"): - return super().url_for_version(version) - url = self.url.replace("_", ".") - return substitute_version_in_url(url, self.url_version(version)) diff --git a/repos/spack_repo/builtin/packages/py_rapidfuzz/package.py b/repos/spack_repo/builtin/packages/py_rapidfuzz/package.py index 2c038bd2bd4..0719f611038 100644 --- a/repos/spack_repo/builtin/packages/py_rapidfuzz/package.py +++ b/repos/spack_repo/builtin/packages/py_rapidfuzz/package.py @@ -15,20 +15,28 @@ class PyRapidfuzz(PythonPackage): license("MIT") + version("3.14.1", sha256="b02850e7f7152bd1edff27e9d584505b84968cacedee7a734ec4050c655a803c") version("3.3.1", sha256="6783b3852f15ed7567688e2e358757a7b4f38683a915ba5edc6c64f1a3f0b450") version("2.2.0", sha256="acb8839aac452ec61a419fdc8799e8a6e6cd21bed53d04678cdda6fba1247e2f") version("1.8.2", sha256="d6efbb2b6b18b3a67d7bdfbcd9bb72732f55736852bbef823bdf210f9e0c6c90") - depends_on("cxx", type="build") # generated + depends_on("cxx", type="build") depends_on("python", type=("build", "link", "run")) - depends_on("py-setuptools@42:", when="@2:", type="build") - depends_on("py-setuptools", type="build") - depends_on("py-scikit-build@0.17", when="@3:", type="build") - depends_on("py-scikit-build@0.13:", when="@2.2:", type="build") - depends_on("py-rapidfuzz-capi@1.0.5", when="@2", type="build") - depends_on("py-jarowinkler@1.2.0:1", when="@2", type=("build", "run")) + depends_on("python@3.10:", type=("build", "link", "run"), when="@3.14:") + depends_on("py-scikit-build-core@0.11:", type="build", when="@3.14.1:") + depends_on("py-cython@3.0.12:3.1", type="build", when="@3.14.1:") + + # historical + with when("@:3.3.1"): + depends_on("py-setuptools@42:", when="@2:", type="build") + depends_on("py-setuptools", type="build") + depends_on("py-scikit-build@0.17", when="@3:", type="build") + depends_on("py-scikit-build@0.13:", when="@2.2:", type="build") + depends_on("py-rapidfuzz-capi@1.0.5", when="@2", type="build") + depends_on("py-jarowinkler@1.2.0:1", when="@2", type=("build", "run")) # CMakeLists.txt - depends_on("cmake@3.12:", type="build") + depends_on("cmake@3.12:", type="build", when="@:3.3.1") + depends_on("cmake@3.15:", type="build", when="@3.14:") depends_on("ninja", type="build") diff --git a/repos/spack_repo/builtin/packages/py_rassumfrassum/package.py b/repos/spack_repo/builtin/packages/py_rassumfrassum/package.py new file mode 100644 index 00000000000..9aa73a114a0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_rassumfrassum/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyRassumfrassum(PythonPackage): + """Connect an LSP client to multiple LSP servers.""" + + homepage = "https://github.com/joaotavora/rassumfrassum" + pypi = "rassumfrassum/rassumfrassum-0.3.3.tar.gz" + + maintainers("alecbcs") + + license("GPL-3.0-only", checked_by="alecbcs") + + version("0.3.3", sha256="1acd9083069f8fd9b5b5d55cc359385174dbc606d2e5ac1308834191be472217") + + depends_on("python@3.10:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-setuptools@61:") diff --git a/repos/spack_repo/builtin/packages/py_rasterio/package.py b/repos/spack_repo/builtin/packages/py_rasterio/package.py index 34937b94c96..6c8803d7bf5 100644 --- a/repos/spack_repo/builtin/packages/py_rasterio/package.py +++ b/repos/spack_repo/builtin/packages/py_rasterio/package.py @@ -22,7 +22,8 @@ class PyRasterio(PythonPackage): maintainers("adamjstewart") version("main", branch="main") - version("master", branch="master", deprecated=True) + version("1.5.0", sha256="1e0ea56b02eea4989b36edf8e58a5a3ef40e1b7edcb04def2603accd5ab3ee7b") + version("1.4.4", sha256="c95424e2c7f009b8f7df1095d645c52895cd332c0c2e1b4c2e073ea28b930320") version("1.4.3", sha256="201f05dbc7c4739dacb2c78a1cf4e09c0b7265b0a4d16ccbd1753ce4f2af350a") version("1.4.2", sha256="1be35ccb4d998a4c48fa51bbee9e37927ecd9b9e954a2b2581b8f3e9bb165332") version("1.4.1", sha256="d750362bb792d2311f94803ff309baec48486ecba75c9b905ea9b1f5eb06ef9f") @@ -41,35 +42,26 @@ class PyRasterio(PythonPackage): version("1.3.0", sha256="90171035e5b201cdb85a9abd60181426366040d4ca44706958db982a030f8dc4") version("1.2.10", sha256="6062456047ba6494fe18bd0da98a383b6fad5306b16cd52a22e76c59172a2b5f") version("1.2.3", sha256="d8c345e01052b70ac3bbbe100c83def813c0ab19f7412c2c98e553d03720c1c5") - version( - "1.1.8", - sha256="f7cac7e2ecf65b4b1eb78c994c63bd429b67dc679b0bc0ecfe487d3d5bf88fd5", - deprecated=True, - ) - version( - "1.1.5", - sha256="ebe75c71f9257c780615caaec8ef81fa4602702cf9290a65c213e1639284acc9", - deprecated=True, - ) - - # From pyproject.toml + with default_args(type="build"): + depends_on("py-setuptools@77.0.3:", when="@1.5:") depends_on("py-setuptools@67.8:", when="@1.3.9:") - depends_on("py-cython@3.0.2:3", when="@1.3.10:") + depends_on("py-cython@3.1:3", when="@1.4.4:") + depends_on("py-cython@3.0.2:3", when="@1.3.10:1.4.3") depends_on("py-cython@0.29.29:", when="@1.3.3:1.3.9") depends_on("py-cython@0.29.24:0.29", when="@1.3.0:1.3.2") - # From setup.py with default_args(type=("build", "link", "run")): + depends_on("python@3.12:", when="@1.5:") + depends_on("python@3.10:", when="@1.4.4:") depends_on("python@3.9:", when="@1.4:") depends_on("python@3.8:", when="@1.3:") depends_on("python@3.6:3.9", when="@1.2") - depends_on("python@2.7:2.8,3.5:3.8", when="@1.1") + depends_on("py-numpy@2:", when="@1.5:") depends_on("py-numpy@1.24:", when="@1.4:") depends_on("py-numpy@1.18:", when="@1.3:") depends_on("py-numpy@1.15:", when="@1.2:") - depends_on("py-numpy") # https://github.com/rasterio/rasterio/issues/3024 depends_on("py-numpy@:1", when="@:1.3.9") @@ -80,20 +72,30 @@ class PyRasterio(PythonPackage): depends_on("py-click@4:", when="@1.2.4:") depends_on("py-click@4:7", when="@:1.2.3") depends_on("py-cligj@0.5:") - depends_on("py-importlib-metadata", when="@1.3.10: ^python@:3.9") - depends_on("py-click-plugins") depends_on("py-pyparsing") # Historical dependencies + depends_on("py-click-plugins", when="@:1.4") + depends_on("py-importlib-metadata", when="@1.3.10: ^python@:3.9") depends_on("py-setuptools", when="@:1.3.9") depends_on("py-snuggs@1.4.1:", when="@:1.3") # From README.rst and setup.py + depends_on("gdal@3.8:", when="@1.5:") + depends_on("gdal@3.6:", when="@1.4.4:") depends_on("gdal@3.5:", when="@1.4:") depends_on("gdal@3.1:", when="@1.3:") depends_on("gdal@2.4:3.3", when="@1.2.7:1.2") depends_on("gdal@2.3:3.2", when="@1.2.0:1.2.6") - depends_on("gdal@1.11:3.2", when="@1.1.0:1.1") + # https://github.com/rasterio/rasterio/issues/3371 + conflicts("^gdal@3.11:", when="@:1.4.3") # https://github.com/rasterio/rasterio/pull/3212 conflicts("^gdal@3.10:", when="@:1.4.1") + + # ensure cython absolutely gets the right gdal and embeds the correct rpaths + def setup_build_environment(self, env): + gdal = self.spec["gdal"] + # looks for this envar in setup.py + env.set("GDAL_CONFIG", join_path(gdal.prefix.bin, "gdal-config")) + env.prepend_path("LDFLAGS", f"-Wl,-rpath,{gdal.libs.directories[0]}") diff --git a/repos/spack_repo/builtin/packages/py_ray/missing-headers-gcc15.patch b/repos/spack_repo/builtin/packages/py_ray/missing-headers-gcc15.patch new file mode 100644 index 00000000000..a00ddbfc195 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_ray/missing-headers-gcc15.patch @@ -0,0 +1,27 @@ +From b641509ec593c1cde8868d89e139b7087275d7ea Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Iy=C3=A1n=20M=C3=A9ndez=20Veiga?= +Date: Thu, 4 Sep 2025 18:22:01 +0200 +Subject: [PATCH] Fix build with GCC 15 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes #56242 + +Signed-off-by: Iyán Méndez Veiga +--- + src/ray/observability/open_telemetry_metric_recorder.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/ray/observability/open_telemetry_metric_recorder.h b/src/ray/observability/open_telemetry_metric_recorder.h +index f21181f1739a..c1ada823586d 100644 +--- a/src/ray/observability/open_telemetry_metric_recorder.h ++++ b/src/ray/observability/open_telemetry_metric_recorder.h +@@ -14,6 +14,7 @@ + + #pragma once + ++#include + #include + #include + #include diff --git a/repos/spack_repo/builtin/packages/py_ray/package.py b/repos/spack_repo/builtin/packages/py_ray/package.py index ff501062e44..23f396ff332 100644 --- a/repos/spack_repo/builtin/packages/py_ray/package.py +++ b/repos/spack_repo/builtin/packages/py_ray/package.py @@ -14,80 +14,76 @@ class PyRay(PythonPackage): homepage = "https://github.com/ray-project/ray" url = "https://github.com/ray-project/ray/archive/ray-0.8.7.tar.gz" + maintainers("thomas-bouvier") + license("Apache-2.0") + version("2.53.0", sha256="bb2e1393e0617b2edbdbc793718a5dbe98d5024e9f2ab06b33ecc524b02c9e0e") version("2.0.1", sha256="b8b2f0a99d2ac4c001ff11c78b4521b217e2a02df95fb6270fd621412143f28b") - version( - "0.8.7", - sha256="2df328f1bcd3eeb4fa33119142ea0d669396f4ab2a3e78db90178757aa61534b", - deprecated=True, - ) - - variant("default", default=False, description="Install default extras", when="@2.0.1") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + variant("default", default=False, description="Install default extras") - depends_on("python@3.6:3.10", when="@2.0.1", type=("build", "run")) - depends_on("python@3.6:3.8", when="@0.8.7", type=("build", "run")) - depends_on("bazel@4.2.2", when="@2.0.1", type="build") - depends_on("bazel@3.2.0", when="@0.8.7", type="build") + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("npm", type="build") depends_on("py-setuptools", type="build") - depends_on("py-cython@0.29.26:", when="@2.0.1", type="build") - depends_on("py-cython@0.29.14:", when="@0.8.7", type="build") - depends_on("py-attrs", when="@2.0.1", type=("build", "run")) - depends_on("py-click@7:8.0.4", when="@2.0.1", type=("build", "run")) - depends_on("py-click@7.0:", when="@0.8.7", type=("build", "run")) + + depends_on("bazel@6.5.0", when="@2.53.0", type="build") # exact version + depends_on("python@3.9:3.13", when="@2.53.0:", type=("build", "run")) + depends_on("py-packaging", when="@2.53.0:", type=("build", "run")) + depends_on("py-cython@3.0.12:", when="@2.53.0:", type="build") + depends_on("py-click@7:", when="@2.53.0:", type=("build", "run")) + depends_on("py-protobuf@3.20.3:", when="@2.53.0:", type=("build", "run")) + depends_on("py-pyarrow@9:", when="@2.53.0:", type=("build", "run")) + depends_on("py-watchfiles", when="@2.53.0:", type=("build", "run")) + depends_on("py-filelock", type=("build", "run")) - depends_on("py-grpcio@1.32:1.43.0", when="@2.0.1 ^python@:3.9", type=("build", "run")) - depends_on("py-grpcio@1.42:1.43.0", when="@2.0.1 ^python@3.10:", type=("build", "run")) - depends_on("py-grpcio@1.28.1:", when="@0.8.7", type=("build", "run")) depends_on("py-jsonschema", type=("build", "run")) depends_on("py-msgpack@1", type=("build", "run")) - depends_on("py-numpy@1.16:", when="^python@:3.8", type=("build", "run")) - depends_on("py-numpy@1.19.3:", when="^python@3.9:", type=("build", "run")) - depends_on("py-protobuf@3.15.3:3", when="@2.0.1", type=("build", "run")) - depends_on("py-protobuf@3.8.0:", when="@0.8.7", type=("build", "run")) depends_on("py-pyyaml", type=("build", "run")) - depends_on("py-frozenlist", when="@2.0.1", type=("build", "run")) depends_on("py-requests", type=("build", "run")) - depends_on("py-typing-extensions", when="@2.0.1 ^python@:3.7", type=("build", "run")) - depends_on("py-virtualenv", when="@2.0.1", type=("build", "run")) with when("+default"): depends_on("py-aiohttp@3.7:", type=("build", "run")) depends_on("py-aiohttp-cors", type=("build", "run")) depends_on("py-colorful", type=("build", "run")) + depends_on("py-py-spy@0.4:", when="@2.53.0: ^python@3.12:", type=("build", "run")) depends_on("py-py-spy@0.2:", type=("build", "run")) - depends_on("py-gpustat@1:", type=("build", "run")) + depends_on("py-grpcio@1.42:", when="@2.53.0: ^python@3.10:", type=("build", "run")) + depends_on("py-grpcio@1.32:", when="@2.53.0: ^python@:3.9", type=("build", "run")) depends_on("py-opencensus", type=("build", "run")) - depends_on("py-pydantic", type=("build", "run")) - depends_on("py-prometheus-client@0.7.1:0.13", type=("build", "run")) + depends_on("py-pydantic@1,2.12:2", type=("build", "run")) + depends_on("py-prometheus-client@0.7.1:", when="@2.53.0:", type=("build", "run")) depends_on("py-smart-open", type=("build", "run")) - - # Historical dependencies - with when("@0.8.7"): - depends_on("py-aiohttp", type=("build", "run")) - depends_on("py-aioredis", type=("build", "run")) - depends_on("py-colorama", type=("build", "run")) - depends_on("py-colorful", type=("build", "run")) - depends_on("py-google", type=("build", "run")) - depends_on("py-gpustat", type=("build", "run")) - depends_on("py-py-spy@0.2.0:", type=("build", "run")) - depends_on("py-redis@3.3.2:3.4", type=("build", "run")) - depends_on("py-opencensus", type=("build", "run")) - depends_on("py-prometheus-client@0.7.1:", type=("build", "run")) - # If not guarded by SKIP_THIRDPARTY_INSTALL, those dependencies - # would be automatically installed via pip by the setup.py script. - depends_on("py-setproctitle", type=("build", "run")) - depends_on("py-psutil", type=("build", "run")) - # If not detected during install, the following dependency would - # be automatically downloaded and installed by the setup.py script. - depends_on("py-pickle5", when="^python@:3.8.1", type=("build", "run")) + depends_on("py-virtualenv@20.0.24:", when="@2.53.0:", type=("build", "run")) + conflicts("py-virtualenv@20.21.1") + + # Old version + with when("@2.0.1"): + depends_on("python@3.6:3.10", type=("build", "run")) + depends_on("bazel@4.2.2", type="build") + depends_on("py-cython@0.29.26:", type="build") + depends_on("py-attrs", type=("build", "run")) + depends_on("py-click@7:8.0.4", type=("build", "run")) + depends_on("py-grpcio@1.32:1.43.0", when="^python@:3.9", type=("build", "run")) + depends_on("py-grpcio@1.42:1.43.0", when="^python@3.10:", type=("build", "run")) + depends_on("py-numpy@1.19.3:", when="^python@3.9:", type=("build", "run")) + depends_on("py-numpy@1.16:", when="^python@:3.8", type=("build", "run")) + depends_on("py-protobuf@3.15.3:3", type=("build", "run")) + depends_on("py-aiosignal", type=("build", "run")) + depends_on("py-frozenlist", type=("build", "run")) + depends_on("py-typing-extensions", when="^python@:3.7", type=("build", "run")) + depends_on("py-virtualenv", type=("build", "run")) + + with when("+default"): + depends_on("py-gpustat@1:", type=("build", "run")) + depends_on("py-prometheus-client@0.7.1:0.13", type=("build", "run")) build_directory = "python" + # https://github.com/ray-project/ray/pull/56243 + patch("missing-headers-gcc15.patch", when="@2.53.0 %gcc@15:") + def patch(self): filter_file( 'bazel_flags = ["--verbose_failures"]', @@ -103,6 +99,6 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: @run_before("install") def build_dashboard(self): with working_dir(join_path("python", "ray", "dashboard", "client")): - npm = which("npm") + npm = which("npm", required=True) npm("ci") npm("run", "build") diff --git a/repos/spack_repo/builtin/packages/py_rdflib/package.py b/repos/spack_repo/builtin/packages/py_rdflib/package.py index 7e6a1f6df6a..169bdd6ab85 100644 --- a/repos/spack_repo/builtin/packages/py_rdflib/package.py +++ b/repos/spack_repo/builtin/packages/py_rdflib/package.py @@ -24,24 +24,28 @@ class PyRdflib(PythonPackage): license("BSD-3-Clause") + version("7.6.0", sha256="6c831288d5e4a5a7ece85d0ccde9877d512a3d0f02d7c06455d00d6d0ea379df") + version("7.2.1", sha256="cf9b7fa25234e8925da8b1fb09700f8349b5f0f100e785fb4260e737308292ac") version("7.0.0", sha256="9995eb8569428059b8c1affd26b25eac510d64f5043d9ce8c84e0d0036e995ae") version("6.3.2", sha256="72af591ff704f4caacea7ecc0c5a9056b8553e0489dd4f35a9bc52dbd41522e0") version("6.2.0", sha256="62dc3c86d1712db0f55785baf8047f63731fa59b2682be03219cb89262065942") version("6.0.2", sha256="6136ae056001474ee2aff5fc5b956e62a11c3a9c66bb0f3d9c0aaa5fbb56854e") version("5.0.0", sha256="78149dd49d385efec3b3adfbd61c87afaf1281c30d3fcaf1b323b34f603fb155") - depends_on("python@3.7:3", when="@6.3:", type=("build", "run")) - depends_on("python@3.8.1:3", when="@7:", type=("build", "run")) - depends_on("py-poetry-core@1.4:", when="@6.3:", type="build") + depends_on("python@3.8.1:", type=("build", "run"), when="@7.2.1:") + depends_on("python@3.8.1:3", type=("build", "run"), when="@7:7.2.0") + depends_on("python@3.7:3", type=("build", "run"), when="@6.3:6") + depends_on("py-poetry-core@1.4:", type="build", when="@6.3:") - depends_on("py-isodate@0.6", when="@6.3:", type=("build", "run")) - depends_on("py-isodate", type=("build", "run")) - depends_on("py-pyparsing@2.1:3", when="@6.3:", type=("build", "run")) - depends_on("py-pyparsing", type=("build", "run")) - depends_on("py-importlib-metadata@4", when="@6.3: ^python@:3.7", type=("build", "run")) - depends_on("py-importlib-metadata", when="@6.1: ^python@:3.7", type=("build", "run")) + depends_on("py-isodate@0.7.2:0", type=("build", "run"), when="@7.1: ^python@:3.10") + depends_on("py-isodate@0.6", type=("build", "run"), when="@6.3:7.0") + depends_on("py-isodate", type=("build", "run"), when="@:6.2") + depends_on("py-pyparsing@2.1:3", type=("build", "run"), when="@6.3:") + depends_on("py-pyparsing", type=("build", "run"), when="@:6.2") # Historical dependencies + depends_on("py-importlib-metadata@4", type=("build", "run"), when="@6.3:6 ^python@:3.7") + depends_on("py-importlib-metadata", type=("build", "run"), when="@6.1:6.2 ^python@:3.7") depends_on("py-setuptools", when="@6:6.2", type=("build", "run")) depends_on("py-setuptools", when="@:5", type="build") depends_on("py-six", when="@:5", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_readme_renderer/package.py b/repos/spack_repo/builtin/packages/py_readme_renderer/package.py index ecac5cda525..0c470854364 100644 --- a/repos/spack_repo/builtin/packages/py_readme_renderer/package.py +++ b/repos/spack_repo/builtin/packages/py_readme_renderer/package.py @@ -14,16 +14,22 @@ class PyReadmeRenderer(PythonPackage): homepage = "https://github.com/pypa/readme_renderer" pypi = "readme_renderer/readme_renderer-24.0.tar.gz" + version("44.0", sha256="8712034eabbfa6805cacf1402b4eeb2a73028f72d1166d6f5cb7f9c047c5d1e1") version("37.3", sha256="cd653186dfc73055656f090f227f5cb22a046d7f71a841dfa305f55c9a513273") version("24.0", sha256="bb16f55b259f27f75f640acf5e00cf897845a8b3e4731b5c1a436e4b8529202f") version("16.0", sha256="c46b3418ddef3c3c3f819a4a9cfd56ede15c03d12197962a7e7a89edf1823dd5") - depends_on("python@3.7:", when="@35:", type=("build", "run")) - depends_on("py-setuptools@40.8:", when="@33:", type="build") - depends_on("py-setuptools", type="build") + depends_on("python@3.9:", type=("build", "run"), when="@44:") + depends_on("python@3.7:", type=("build", "run"), when="@35:37") + depends_on("py-setuptools@40.8:", type="build", when="@33:") + depends_on("py-setuptools", type="build", when="@:32") - depends_on("py-bleach@2.1.0:", type=("build", "run")) - depends_on("py-docutils@0.13.1:", type=("build", "run")) - depends_on("py-pygments@2.5.1:", when="@25:", type=("build", "run")) - depends_on("py-pygments", type=("build", "run")) - depends_on("py-six", when="@:29", type=("build", "run")) + depends_on("py-nh3@0.2.14:", type=("build", "run"), when="@42:") + depends_on("py-docutils@0.21.2:", type=("build", "run"), when="@44:") + depends_on("py-docutils@0.13.1:", type=("build", "run"), when="@:43") + depends_on("py-pygments@2.5.1:", type=("build", "run"), when="@25:") + depends_on("py-pygments", type=("build", "run"), when="@:24") + + # Historical dependencies + depends_on("py-bleach@2.1.0:", type=("build", "run"), when="@:41") + depends_on("py-six", type=("build", "run"), when="@:29") diff --git a/repos/spack_repo/builtin/packages/py_recommonmark/package.py b/repos/spack_repo/builtin/packages/py_recommonmark/package.py index ff68be63263..a955911e348 100644 --- a/repos/spack_repo/builtin/packages/py_recommonmark/package.py +++ b/repos/spack_repo/builtin/packages/py_recommonmark/package.py @@ -20,6 +20,7 @@ class PyRecommonmark(PythonPackage): license("MIT") + version("0.7.1", sha256="bdb4db649f2222dcd8d2d844f0006b958d627f732415d399791ee436a3686d67") version("0.6.0", sha256="29cd4faeb6c5268c633634f2d69aef9431e0f4d347f90659fd0aab20e541efeb") depends_on("py-setuptools", type="build") 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_referencing/package.py b/repos/spack_repo/builtin/packages/py_referencing/package.py index 98bb6b8268a..c6b68db291a 100644 --- a/repos/spack_repo/builtin/packages/py_referencing/package.py +++ b/repos/spack_repo/builtin/packages/py_referencing/package.py @@ -12,15 +12,26 @@ class PyReferencing(PythonPackage): homepage = "https://referencing.readthedocs.io/" pypi = "referencing/referencing-0.35.1.tar.gz" + git = "https://github.com/python-jsonschema/referencing.git" maintainers("wdconinc") license("MIT", checked_by="wdconinc") + version("0.37.0", sha256="44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8") + version("0.36.2", sha256="df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa") version("0.35.1", sha256="25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c") - depends_on("py-hatchling", type="build") - depends_on("py-hatch-vcs", type="build") + with default_args(type="build"): + depends_on("py-hatchling") + depends_on("py-hatchling@1.26:", when="@0.36:") + depends_on("py-hatch-vcs") - depends_on("py-attrs@22.2.0:", type=("build", "run")) - depends_on("py-rpds-py@0.7.0:", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@0.37:") + depends_on("python@3.9:", when="@0.36:") + depends_on("python@3.8:", when="@:0.35") + + depends_on("py-attrs@22.2.0:") + depends_on("py-rpds-py@0.7.0:") + depends_on("py-typing-extensions@4.4:", when="@0.36.1: ^python@:3.12") diff --git a/repos/spack_repo/builtin/packages/py_regex/package.py b/repos/spack_repo/builtin/packages/py_regex/package.py index 6fdd7a240f6..f4420e7b03d 100644 --- a/repos/spack_repo/builtin/packages/py_regex/package.py +++ b/repos/spack_repo/builtin/packages/py_regex/package.py @@ -15,6 +15,7 @@ class PyRegex(PythonPackage): license("Apache-2.0") + version("2024.11.6", sha256="7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519") version("2022.8.17", sha256="5c77eab46f3a2b2cd8bbe06467df783543bf7396df431eb4a144cc4b89e9fb3c") version( "2020.11.13", sha256="83d6b356e116ca119db8e7c6fc2983289d87b27b3fac238cfe5dca529d884562" @@ -33,4 +34,5 @@ class PyRegex(PythonPackage): depends_on("c", type="build") # generated depends_on("py-setuptools", type="build") + depends_on("python@3.8:", when="@2024.11.6:", type=("build", "run")) depends_on("python@3.6:", when="@2022.8.17:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_relion/package.py b/repos/spack_repo/builtin/packages/py_relion/package.py new file mode 100644 index 00000000000..cd5a849b4f6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_relion/package.py @@ -0,0 +1,79 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyRelion(PythonPackage, CudaPackage): + """This is a helper package for relion, not to be used by end-users. + + relion (for REgularised LIkelihood OptimisatioN, pronounce rely-on) is a + software package that employs an empirical Bayesian approach for electron + cryo-microscopy (cryo-EM) structure determination. + """ + + homepage = "https://relion.readthedocs.io/en/latest/" + url = "https://github.com/3dem/relion/archive/refs/tags/5.0.1.tar.gz" + + maintainers("Markus92") + + license("GPL-2", checked_by="Markus92") + + version("5.0.1", sha256="acbf898e96513b092514a56ff2a255c69a795e7a6f04131eacc8f55e2a900c23") + version("5.0.0", sha256="5d02d529bfdb396204310b35963f35e5ec40ed9fd10bc88c901119ae7d7739fc") + + variant("cuda", default=True, description="Build with CUDA (recommended)") + + depends_on("python@3.10") + depends_on("py-setuptools@45:", type="build") + depends_on("py-wheel", type="build") + depends_on("py-setuptools-scm@6.3:", type="build") + + with default_args(type=("build", "run")): + depends_on("py-torchvision@0.15.2") + depends_on("py-tqdm@4.65.0") + depends_on("py-mrcfile@1.4.3") + depends_on("py-starfile@0.5.6:") + depends_on("py-loguru@0.7.0") + depends_on("py-scikit-learn@1.3.0") + depends_on("py-umap-learn@0.5.3") + depends_on("py-matplotlib@3.7.2") + depends_on("py-pydantic@1.10.19") + depends_on("py-napari+all@0.4.18") + depends_on("py-pyqt5@5.15.9") + depends_on("py-typer@0.9.0") + depends_on("py-biopython@1.81") + depends_on("py-fastcluster@1.2.6") + depends_on("py-seaborn@0.12.2") + depends_on("py-dill@0.3.7") + depends_on("py-numpy@:2") + depends_on("py-click@:8.1") + depends_on("py-mdocfile") + depends_on("py-rich") + depends_on("py-einops") + depends_on("py-lil-aretomo") + depends_on("py-makefun") + depends_on("py-lru-dict") + depends_on("topaz-3dem", type="run") + depends_on("model-angelo", type="run") + depends_on("py-relion-blush", type="run") + depends_on("py-relion-classranker", type="run") + + for arch in CudaPackage.cuda_arch_values: + depends_on( + f"tsne-cuda@3.0.1 +cuda cuda_arch={arch} +python", + when=f"@5.0 +cuda cuda_arch={arch}", + ) + depends_on( + f"py-torch@2.0.1 +cuda cuda_arch={arch}", when=f"@5.0 +cuda cuda_arch={arch}" + ) + + depends_on("py-torch@2.0.1 ~cuda", when="@5.0 ~cuda") + + # Set version so setuptools won't complain about not being able to determine it + def setup_build_environment(self, env): + env.set("SETUPTOOLS_SCM_PRETEND_VERSION", str(self.spec.version)) diff --git a/repos/spack_repo/builtin/packages/py_relion_blush/package.py b/repos/spack_repo/builtin/packages/py_relion_blush/package.py new file mode 100644 index 00000000000..965d41a86ef --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_relion_blush/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyRelionBlush(PythonPackage): + """Blush Refinement for Relion.""" + + homepage = "https://github.com/3dem/relion-blush" + + url = "https://github.com/3dem/relion-blush" + git = "https://github.com/3dem/relion-blush.git" + + license("MIT", checked_by="github_user1") + + version("20240529", commit="7889199242ab8227c628df72ea396826ed50185e") + + depends_on("py-setuptools", type="build") + + depends_on("py-torch@2.0.1:", type=("build", "run")) + depends_on("py-torchvision@0.15.2:", type=("build", "run")) + depends_on("py-numpy@1.24.4:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_relion_classranker/package.py b/repos/spack_repo/builtin/packages/py_relion_classranker/package.py new file mode 100644 index 00000000000..3cc6e410c6c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_relion_classranker/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 PyRelionClassranker(PythonPackage): + """The class ranker is part of the cryogenic electron microscopy (cryo-EM) + dataset processing pipeline in RELION. It is used to automatically + select suitable particles (EM images) assigned to 2D class averages + for further downstream processing.""" + + homepage = "https://github.com/3dem/relion-classranker" + + url = "https://github.com/3dem/relion-classranker" + git = "https://github.com/3dem/relion-classranker.git" + + license("GPL-3.0-only", checked_by="snehring") + + version("20250108", commit="8727e78cf00ffcbb0cb3dd5918db987a13cf4f3a") + + depends_on("py-setuptools", type="build") + + depends_on("py-torch@2.0.1:", type=("build", "run")) + depends_on("py-torchvision@0.15.2:", type=("build", "run")) + depends_on("py-numpy@1.24.4", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_repligit/package.py b/repos/spack_repo/builtin/packages/py_repligit/package.py index 42523d3e750..aae1559619e 100644 --- a/repos/spack_repo/builtin/packages/py_repligit/package.py +++ b/repos/spack_repo/builtin/packages/py_repligit/package.py @@ -19,6 +19,7 @@ class PyRepligit(PythonPackage): license("Apache-2.0 WITH LLVM-exception") version("main", branch="main") + version("0.2.0", sha256="d0d479e56e8396a6eaebea1e65a7cd3346d9c543a7a380dd9be589ed4ad69bb2") version("0.1.1", sha256="e1fec2b080dd657502b967148fbb7dd5d33eb02fc47a2e91ed7bbfebf082410e") version("0.1.0", sha256="9beac1a14542704f2e5af6a2f3d391d8adf2112ae3c70e98339db251a9e1079e") diff --git a/repos/spack_repo/builtin/packages/py_reportlab/package.py b/repos/spack_repo/builtin/packages/py_reportlab/package.py index b9da9428d80..e48e423a3c9 100644 --- a/repos/spack_repo/builtin/packages/py_reportlab/package.py +++ b/repos/spack_repo/builtin/packages/py_reportlab/package.py @@ -14,16 +14,25 @@ class PyReportlab(PythonPackage): homepage = "https://www.reportlab.com" pypi = "reportlab/reportlab-3.4.0.tar.gz" + license("BSD-3-Clause") + + version("4.4.10", sha256="5cbbb34ac3546039d0086deb2938cdec06b12da3cdb836e813258eb33cd28487") + version("4.4.9", sha256="7cf487764294ee791a4781f5a157bebce262a666ae4bbb87786760a9676c9378") + version("4.4.4", sha256="cb2f658b7f4a15be2cc68f7203aa67faef67213edd4f2d4bdd3eb20dab75a80d") version("4.0.4", sha256="7f70b3b56aff5f11cb4136c51a0f5a56fe6e4c8fbbac7b903076db99a8ef31c1") version("3.6.12", sha256="b13cebf4e397bba14542bcd023338b6ff2c151a3a12aabca89eecbf972cb361a") version("3.4.0", sha256="5beaf35e59dfd5ebd814fdefd76908292e818c982bd7332b5d347dfd2f01c343") - depends_on("python@3.7:3", when="@3.6.9:", type=("build", "run")) + depends_on("python@3.9:3", type=("build", "run"), when="@4.4.4:") + depends_on("python@3.7:3", type=("build", "run"), when="@3.6.9:4.4.3") # version restictions were taken over from release 3.4.0 setup.py depends_on("py-setuptools@2.2:", type="build") depends_on("py-pip@1.4.1:", type="build") - depends_on("pil@9:", when="@3.6.10:", type=("build", "run")) - depends_on("pil@2.4.0:", type=("build", "run")) + + depends_on("pil@9:", type=("build", "run"), when="@3.6.10:") + depends_on("pil@2.4.0:", type=("build", "run"), when="@3.4") + depends_on("py-charset-normalizer", type=("build", "run"), when="@4.4.2:") + depends_on("freetype") @when("@:3") diff --git a/repos/spack_repo/builtin/packages/py_reportseff/package.py b/repos/spack_repo/builtin/packages/py_reportseff/package.py index 90a45abf67c..066f75d94c9 100644 --- a/repos/spack_repo/builtin/packages/py_reportseff/package.py +++ b/repos/spack_repo/builtin/packages/py_reportseff/package.py @@ -15,6 +15,7 @@ class PyReportseff(PythonPackage): license("MIT") + version("2.8.2", sha256="e3cd58290c261ea1e51396a11ec2fc2fc5332294d1cd52d054532e3c1c9b7950") version("2.7.2", sha256="63cf99ceb0111de511636b214ade937c6c1b8444531e8026dbc34ddf92049c41") depends_on("python@3.7:3", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_requests/package.py b/repos/spack_repo/builtin/packages/py_requests/package.py index 1df8ab452f6..e87945df1ca 100644 --- a/repos/spack_repo/builtin/packages/py_requests/package.py +++ b/repos/spack_repo/builtin/packages/py_requests/package.py @@ -15,43 +15,92 @@ class PyRequests(PythonPackage): git = "https://github.com/psf/requests" license("Apache-2.0") + maintainers("adamjstewart") - version("2.32.3", sha256="55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760") - version("2.32.2", sha256="dd951ff5ecf3e3b3aa26b40703ba77495dab41da839ae72ef3c8e5d8e2433289") - version("2.31.0", sha256="942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1") - version("2.28.2", sha256="98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf") - version("2.28.1", sha256="7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983") - version("2.28.0", sha256="d568723a7ebd25875d8d1eaf5dfa068cd2fc8194b2e483d7b1f7c81918dbec6b") - version("2.27.1", sha256="68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61") - version("2.26.0", sha256="b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7") - version("2.25.1", sha256="27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804") - version("2.24.0", sha256="b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b") - version("2.23.0", sha256="b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6") - version("2.22.0", sha256="11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4") - version("2.21.0", sha256="502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e") - version("2.18.4", sha256="9c443e7324ba5b85070c4a818ade28bfabedf16ea10206da1132edaa6dda237e") - version("2.14.2", sha256="a274abba399a23e8713ffd2b5706535ae280ebe2b8069ee6a941cb089440d153") - version("2.13.0", sha256="5722cd09762faa01276230270ff16af7acf7c5c45d623868d9ba116f15791ce8") - version("2.11.1", sha256="5acf980358283faba0b897c73959cecf8b841205bb4b2ad3ef545f46eae1a133") - version("2.3.0", sha256="1c1473875d846fe563d70868acf05b1953a4472f4695b7b3566d1d978957b8fc") + version("2.33.1", sha256="18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517") + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2026-25645/ + version( + "2.32.5", sha256="dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf" + ) + version( + "2.32.3", sha256="55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760" + ) + version( + "2.32.2", sha256="dd951ff5ecf3e3b3aa26b40703ba77495dab41da839ae72ef3c8e5d8e2433289" + ) + # https://www.cvedetails.com/cve/CVE-2024-35195/ + version( + "2.31.0", sha256="942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" + ) + # https://www.cvedetails.com/cve/CVE-2023-32681/ + version( + "2.28.2", sha256="98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf" + ) + version( + "2.28.1", sha256="7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983" + ) + version( + "2.28.0", sha256="d568723a7ebd25875d8d1eaf5dfa068cd2fc8194b2e483d7b1f7c81918dbec6b" + ) + version( + "2.27.1", sha256="68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61" + ) + version( + "2.26.0", sha256="b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7" + ) + version( + "2.25.1", sha256="27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804" + ) + version( + "2.24.0", sha256="b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b" + ) + version( + "2.23.0", sha256="b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6" + ) + version( + "2.22.0", sha256="11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4" + ) + version( + "2.21.0", sha256="502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e" + ) + # https://www.cvedetails.com/cve/CVE-2018-18074/ + version( + "2.18.4", sha256="9c443e7324ba5b85070c4a818ade28bfabedf16ea10206da1132edaa6dda237e" + ) + version( + "2.14.2", sha256="a274abba399a23e8713ffd2b5706535ae280ebe2b8069ee6a941cb089440d153" + ) + version( + "2.13.0", sha256="5722cd09762faa01276230270ff16af7acf7c5c45d623868d9ba116f15791ce8" + ) + version( + "2.11.1", sha256="5acf980358283faba0b897c73959cecf8b841205bb4b2ad3ef545f46eae1a133" + ) + # https://www.cvedetails.com/cve/CVE-2015-2296/ + version("2.3.0", sha256="1c1473875d846fe563d70868acf05b1953a4472f4695b7b3566d1d978957b8fc") variant("socks", default=False, description="SOCKS and HTTP proxy support") - depends_on("python@3.7:", when="@2.28:", type=("build", "run")) - depends_on("py-setuptools", type="build") - - depends_on("py-charset-normalizer@2:3", when="@2.28.2:", type=("build", "run")) - depends_on("py-charset-normalizer@2", when="@2.26:2.28.1", type=("build", "run")) - depends_on("py-idna@2.5:3", when="@2.26:", type=("build", "run")) - depends_on("py-idna@2.5:2", when="@2.23:2.25", type=("build", "run")) - depends_on("py-idna@2.5:2.8", when="@2.16:2.22", type=("build", "run")) - depends_on("py-urllib3@1.21.1:2", when="@2.30:", type=("build", "run")) - depends_on("py-urllib3@1.21.1:1.26", when="@2.25:2.29", type=("build", "run")) - depends_on("py-urllib3@1.21.1:1.24,1.25.2:1.25", when="@2.16:2.24", type=("build", "run")) - depends_on("py-certifi@2017.4.17:", when="@2.16:", type=("build", "run")) - depends_on("py-pysocks@1.5.6,1.5.8:", when="+socks", type=("build", "run")) - - # Historical dependencies - depends_on("py-chardet@3.0.2:4", type=("build", "run"), when="@2.25.1:2.25") - depends_on("py-chardet@3.0.2:3", type=("build", "run"), when="@2.23:2.25.0") - depends_on("py-chardet@3.0.2:3.0", type=("build", "run"), when="@2.16:2.22") + with default_args(type="build"): + depends_on("py-setuptools@61:", when="@2.33:") + depends_on("py-setuptools") + + with default_args(type=("build", "run")): + depends_on("py-charset-normalizer@2:3", when="@2.28.2:") + depends_on("py-charset-normalizer@2", when="@2.26:2.28.1") + depends_on("py-idna@2.5:3", when="@2.26:") + depends_on("py-idna@2.5:2", when="@2.23:2.25") + depends_on("py-idna@2.5:2.8", when="@2.16:2.22") + depends_on("py-urllib3@1.26:2", when="@2.33:") + depends_on("py-urllib3@1.21.1:2", when="@2.30:2.32") + depends_on("py-urllib3@1.21.1:1.26", when="@2.25:2.29") + depends_on("py-urllib3@1.21.1:1.24,1.25.2:1.25", when="@2.16:2.24") + depends_on("py-certifi@2023.5.7:", when="@2.33:") + depends_on("py-certifi@2017.4.17:", when="@2.16:") + depends_on("py-pysocks@1.5.6,1.5.8:", when="+socks") + + # Historical dependencies + depends_on("py-chardet@3.0.2:4", when="@2.25.1:2.25") + depends_on("py-chardet@3.0.2:3", when="@2.23:2.25.0") + depends_on("py-chardet@3.0.2:3.0", when="@2.16:2.22") diff --git a/repos/spack_repo/builtin/packages/py_resultsfile/package.py b/repos/spack_repo/builtin/packages/py_resultsfile/package.py index 426a36acf75..3cabe320af9 100644 --- a/repos/spack_repo/builtin/packages/py_resultsfile/package.py +++ b/repos/spack_repo/builtin/packages/py_resultsfile/package.py @@ -18,6 +18,7 @@ class PyResultsfile(PythonPackage): license("GPL-2.0-only") + version("2.4", sha256="7917c5462e12e8299c8c369434eab68df2ed6b72a8a0ba4aeaad6657d9a428e6") version("2.0", sha256="2a34208254e4bea155695690437f6a59bf5f7b0ddb421d6c1a2d377510f018f7") depends_on("python@3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_retworkx/package.py b/repos/spack_repo/builtin/packages/py_retworkx/package.py index 8e732bad934..30f09ea5159 100644 --- a/repos/spack_repo/builtin/packages/py_retworkx/package.py +++ b/repos/spack_repo/builtin/packages/py_retworkx/package.py @@ -22,4 +22,5 @@ class PyRetworkx(PythonPackage): depends_on("python@3.6:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-setuptools-rust", type="build") + depends_on("rust", type="build") depends_on("py-numpy@1.16.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_rfc3987_syntax/package.py b/repos/spack_repo/builtin/packages/py_rfc3987_syntax/package.py new file mode 100644 index 00000000000..cb311201d2a --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_rfc3987_syntax/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyRfc3987Syntax(PythonPackage): + """Helper functions to syntactically validate strings according to RFC 3987.""" + + homepage = "https://github.com/willynilly/rfc3987-syntax" + pypi = "rfc3987_syntax/rfc3987_syntax-1.1.0.tar.gz" + + license("MIT") + + version("1.1.0", sha256="717a62cbf33cffdd16dfa3a497d81ce48a660ea691b1ddd7be710c22f00b4a0d") + + with default_args(type="build"): + depends_on("py-hatchling") + + with default_args(type=("build", "run")): + depends_on("python@3.9:") + + depends_on("py-lark@1.2.2:") diff --git a/repos/spack_repo/builtin/packages/py_rich/package.py b/repos/spack_repo/builtin/packages/py_rich/package.py index 9d7003c0be4..d1b4cab2b79 100644 --- a/repos/spack_repo/builtin/packages/py_rich/package.py +++ b/repos/spack_repo/builtin/packages/py_rich/package.py @@ -17,6 +17,10 @@ class PyRich(PythonPackage): license("MIT") + version("15.0.0", sha256="edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36") + version("14.3.2", sha256="e712f11c1a562a11843306f5ed999475f09ac31ffb64281f73ab29ffdda8b3b8") + version("14.1.0", sha256="e497a48b844b0320d45007cdebfeaeed8db2a4f4bcf49f15e455cfc4af11eaa8") + version("13.9.4", sha256="439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098") version("13.7.1", sha256="9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432") version("13.4.2", sha256="d653d6bccede5844304c605d5aac802c7cf9621efd700b46c7ec2b51ea914898") version("12.6.0", sha256="ba3a3775974105c221d31141f2c116f4fd65c5ceb0698657a11e9f295ec93fd0") @@ -36,20 +40,23 @@ class PyRich(PythonPackage): version("9.5.0", sha256="a65a9d003cb6e87e6fa5d1b53bff6f43a8d7475524c58873acdbf5bba0683fa3") version("9.4.0", sha256="bde23a1761373fed2802502ff98292c5d735a5389ed96f4fe1be5fb4c2cde8ea") - depends_on("python@3.7:", when="@13:", type=("build", "run")) - depends_on("python@3.6.3:3", when="@12.2.1:12", type=("build", "run")) - depends_on("python@3.6.2:3", when="@10.14.0:12", type=("build", "run")) - depends_on("py-poetry-core@1:", type="build") - - depends_on("py-typing-extensions@4", when="@12.2: ^python@:3.8", type=("build", "run")) - depends_on( - "py-typing-extensions@3.7.4:4", when="@10.14:12.1 ^python@:3.7", type=("build", "run") - ) - depends_on("py-typing-extensions@3.7.4:3", when="@:10.13", type=("build", "run")) - depends_on("py-pygments@2.13:2", when="@13.3.2:", type=("build", "run")) - depends_on("py-pygments@2.6:2", when="@:13.2", type=("build", "run")) - depends_on("py-markdown-it-py@2.2:", when="@13.3.2:", type=("build", "run")) - - # Historical dependencies - depends_on("py-commonmark@0.9.0:0.9", when="@:13.1", type=("build", "run")) - depends_on("py-colorama@0.4.0:0.4", when="@:10.14.0", type=("build", "run")) + with default_args(type="build"): + depends_on("py-poetry-core@1:") + + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@15:") + depends_on("python@3.8:", when="@13.9:") + depends_on("python@3.7:", when="@13:13.8") + depends_on("python@3.6.3:3", when="@12.2.1:12") + depends_on("python@3.6.2:3", when="@10.14.0:12") + + depends_on("py-pygments@2.13:2", when="@13.3.2:") + depends_on("py-pygments@2.6:2", when="@:13.2") + depends_on("py-markdown-it-py@2.2:", when="@13.3.2:") + + # Historical dependencies + depends_on("py-typing-extensions@4", when="@12.2:14.0 ^python@:3.10") + depends_on("py-typing-extensions@3.7.4:4", when="@10.14:12.1 ^python@:3.7") + depends_on("py-typing-extensions@3.7.4:3", when="@:10.13") + depends_on("py-commonmark@0.9.0:0.9", when="@:13.1") + depends_on("py-colorama@0.4.0:0.4", when="@:10.14.0") diff --git a/repos/spack_repo/builtin/packages/py_rio_pmtiles/package.py b/repos/spack_repo/builtin/packages/py_rio_pmtiles/package.py new file mode 100644 index 00000000000..7100ca534b3 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_rio_pmtiles/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 PyRioPmtiles(PythonPackage): + """Library and utilities to write and read PMTiles archives, + cloud-optimized archives of map tiles.""" + + homepage = "https://docs.protomaps.com/" + pypi = "rio_pmtiles/rio_pmtiles-1.0.3.tar.gz" + git = "https://github.com/protomaps/PMTiles" + + license("BSD-3-Clause", checked_by="Chrismarsh") + + version("1.2.0", sha256="b1ca2264afab0b37d62631976b25ef1cc611d62502ef1b8e3d2b584007763f83") + version("1.0.3", sha256="bd4c1bc94c292cdc6d06f0d50837ce18fa2e6e49f4811fa0f58588735bd65f26") + + depends_on("py-setuptools", type="build") + depends_on("py-click") + depends_on("py-cligj@0.5:") + depends_on("py-mercantile") + depends_on("py-pmtiles@3") + depends_on("py-pyroaring@1") + depends_on("py-rasterio@1") + depends_on("py-shapely@2") + depends_on("py-supermercado") + depends_on("py-tqdm@4") diff --git a/repos/spack_repo/builtin/packages/py_rioxarray/package.py b/repos/spack_repo/builtin/packages/py_rioxarray/package.py index f9d4bf4e03f..4a9b3fbb90e 100644 --- a/repos/spack_repo/builtin/packages/py_rioxarray/package.py +++ b/repos/spack_repo/builtin/packages/py_rioxarray/package.py @@ -13,34 +13,38 @@ class PyRioxarray(PythonPackage): homepage = "https://github.com/corteva/rioxarray" pypi = "rioxarray/rioxarray-0.4.1.post0.tar.gz" - maintainers("adamjstewart") - license("Apache-2.0") + maintainers("adamjstewart", "Chrismarsh") + version("0.22.0", sha256="3f55f23a632ffd9eff13463634227f4afbbcf298947536e161f6cf2ce88d4373") + version("0.21.0", sha256="a292d96f4d6412c05ff09629b72523ae2e9c42598183f5e9c555fc368f867c0f") + version("0.20.0", sha256="8bfc7e979edc7e30b4671d638a9be0e5a7d673dab2ea88e2445d3c7745599c02") + version("0.19.0", sha256="7819a0036fd874c8c8e280447cbbe43d8dc72fc4a14ac7852a665b1bdb7d4b04") version("0.17.0", sha256="46c29938827fff268d497f7ae277077066fcfbac4e53132ed3d4e2b96455be62") + version("0.16.0", sha256="a98ea9306739f119b63ffc2245f5d7d23ca1638b99c50ca282d932901f9272e8") version( "0.4.1.post0", sha256="f043f846724a58518f87dd3fa84acbe39e15a1fac7e64244be3d5dacac7fe62b" ) - # interpolation variant - variant("interp", default=False, when="@0.17.0:", description="Enable interpolation routines") + variant("interp", default=False, when="@0.16:", description="Enable interpolation routines") depends_on("py-setuptools", type="build") - with when("@0.17.0"): - depends_on("python@3.10:", type=("build", "run")) - depends_on("py-packaging", type=("build", "run")) - depends_on("py-rasterio@1.3:", type=("build", "run")) - depends_on("py-xarray@2022.3.0:", type=("build", "run")) - depends_on("py-pyproj@3.3:", type=("build", "run")) - depends_on("py-numpy@1.23:", type=("build", "run")) - depends_on("py-scipy", type=("build", "run"), when="+interp") - - with when("@0.4.1.post0"): - depends_on("python@3.7:", type=("build", "run")) - depends_on("py-rasterio", type=("build", "run")) - depends_on("py-xarray@0.17:", type=("build", "run")) - depends_on("py-pyproj@2.2:", type=("build", "run")) - - # not an optional in this version - depends_on("py-scipy", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("python@3.12:", when="@0.20:") + depends_on("python@3.10:", when="@0.16:") + depends_on("py-packaging", when="@0.16:") + depends_on("py-rasterio@1.4.3:", when="@0.19:") + depends_on("py-rasterio@1.3:", when="@0.16:") + depends_on("py-rasterio") + depends_on("py-xarray@2026.2:", when="@0.22:") + depends_on("py-xarray@2024.7:2025.11", when="@0.19:0.21") + depends_on("py-xarray@2022.3:2025.11", when="@0.16:0.18") + depends_on("py-xarray@0.17:2025.11", when="@:0.15") + depends_on("py-pyproj@3.3:", when="@0.16:") + depends_on("py-pyproj@2.2:") + depends_on("py-numpy@2:", when="@0.20:") + depends_on("py-numpy@1.23:", when="@0.16:") + + depends_on("py-scipy", when="+interp") + depends_on("py-scipy", when="@0.4") diff --git a/repos/spack_repo/builtin/packages/py_river/package.py b/repos/spack_repo/builtin/packages/py_river/package.py index 3c057935224..814333e159f 100644 --- a/repos/spack_repo/builtin/packages/py_river/package.py +++ b/repos/spack_repo/builtin/packages/py_river/package.py @@ -20,6 +20,7 @@ class PyRiver(PythonPackage): version("0.13.0", sha256="9d068b7a9db32302fbd581af81315681dfe61774a5d777fb3d5982d3c3061340") depends_on("c", type="build") # generated + depends_on("rust", type="build") # pyproject.toml depends_on("py-cython", type="build") diff --git a/repos/spack_repo/builtin/packages/py_rnc2rng/package.py b/repos/spack_repo/builtin/packages/py_rnc2rng/package.py index f2caf1bc8f4..2baf56ffe67 100644 --- a/repos/spack_repo/builtin/packages/py_rnc2rng/package.py +++ b/repos/spack_repo/builtin/packages/py_rnc2rng/package.py @@ -15,6 +15,7 @@ class PyRnc2rng(PythonPackage): license("MIT") + version("2.7.0", sha256="dd9ffbbd69d09cb07e6e7a8cf80fd28703fdc6d3b9026f8756b49cbe3314676b") version("2.6.6", sha256="5a01d157857b5f010a94167e7092cc49efe2531d58e013f12c4e60b8c4df78f1") version("2.6.5", sha256="d354afcf0bf8e3b1e8f8d37d71a8fe5b1c0cf75cbd4b71364a9d90b5108a16e5") diff --git a/repos/spack_repo/builtin/packages/py_robotframework/package.py b/repos/spack_repo/builtin/packages/py_robotframework/package.py index d095eccba33..8999c0dbe92 100644 --- a/repos/spack_repo/builtin/packages/py_robotframework/package.py +++ b/repos/spack_repo/builtin/packages/py_robotframework/package.py @@ -15,6 +15,15 @@ class PyRobotframework(PythonPackage): license("Apache-2.0") + version("7.4.1", sha256="6fa65c2708f0d48dd7a05bea2dc96943d0e39fdac9b3eb7290e780200b2cec57") + version("7.3.2", sha256="82e8bc68dea843a82e710c9b864535811e62bf6e03d3258d8cbb8c78eac30711") + version("7.2.2", sha256="4581c3a0da0c655b629aa1b56e6ff69256abdfa7ab26ae49e52c264c61f175b0") + version("7.1.1", sha256="8abeb82324d6e476297ed7d43d7d89518399c2404a26702cf9cac23548bf8a86") + version("7.0.1", sha256="6c29b9d4e6e9bec36d88a38916eeb1b685f77a9507ffb2fc9ebb465265b5adb9") + version("6.1.1", sha256="1045dc4482f16737f58686b659f2cd8a91750ecb1707389051ada075f79e9e32") + version("6.0.2", sha256="a588f6e4b286494d5226bf496725b9092299e275dcccf1bc1cf415f3f7b32858") + version("5.0.1", sha256="93a9a7504738d7493994c3a7f4f13b4591beb746a26cb141afdb0435909b9c81") + version("4.1.3", sha256="cbf8efce3a00287154fb4b54d574f292fab3597a15af8eb1d39c7ce171f5c405") version("3.2.2", sha256="6b2bddcecb5d1c6198999e38aeaf4c0366542a5e7b5bd788c6a3a36b055d5ea2") version("3.2.1", sha256="9805faa0990125ff2c9689b673448d5f47e78470e7a8e95af1606a775fa8379f") diff --git a/repos/spack_repo/builtin/packages/py_roman_numerals/package.py b/repos/spack_repo/builtin/packages/py_roman_numerals/package.py new file mode 100644 index 00000000000..0e2fdca1bca --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_roman_numerals/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 PyRomanNumerals(PythonPackage): + """Manipulate well-formed Roman numerals.""" + + homepage = "https://github.com/AA-Turner/roman-numerals/" + pypi = "roman_numerals/roman_numerals-3.1.0.tar.gz" + + license("0BSD OR CC0-1.0") + + version("4.1.0", sha256="1af8b147eb1405d5839e78aeb93131690495fe9da5c91856cb33ad55a7f1e5b2") + version("3.1.0", sha256="384e36fc1e8d4bd361bdb3672841faae7a345b3f708aae9895d074c878332551") + + with default_args(type="build"): + depends_on("py-flit-core@3.12:3", when="@4:") + depends_on("py-flit-core@3.7:3", when="@:3") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@4:") + depends_on("python@3.9:") diff --git a/repos/spack_repo/builtin/packages/py_roman_numerals_py/package.py b/repos/spack_repo/builtin/packages/py_roman_numerals_py/package.py index 4cf466e7527..7b0039920fd 100644 --- a/repos/spack_repo/builtin/packages/py_roman_numerals_py/package.py +++ b/repos/spack_repo/builtin/packages/py_roman_numerals_py/package.py @@ -15,6 +15,8 @@ class PyRomanNumeralsPy(PythonPackage): license("0BSD OR CC0-1.0") + version("3.1.0", sha256="be4bf804f083a4ce001b5eb7e3c0862479d10f94c936f6c4e5f250aa5ff5bd2d") version("3.0.0", sha256="91199c4373658c03d87d9fe004f4a5120a20f6cb192be745c2377cce274ef41c") + depends_on("python@3.9:", type=("build", "run")) depends_on("py-flit-core@3.7:3", type="build") diff --git a/repos/spack_repo/builtin/packages/py_rouge_score/package.py b/repos/spack_repo/builtin/packages/py_rouge_score/package.py new file mode 100644 index 00000000000..9804519d4cc --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_rouge_score/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 PyRougeScore(PythonPackage): + """This is a native python implementation of ROUGE, designed to replicate + results from the original perl package.""" + + homepage = "https://github.com/google-research/google-research/tree/master/rouge" + pypi = "rouge_score/rouge_score-0.1.2.tar.gz" + + license("Apache-2.0") + + version("0.1.2", sha256="c7d4da2683e68c9abf0135ef915d63a46643666f848e558a1b9f7ead17ff0f04") + + depends_on("py-setuptools", type="build") + depends_on("python@3.7:", type=("build", "run")) + depends_on("py-absl-py", type=("build", "run")) + depends_on("py-nltk", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-six@1.14.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_rpds_py/package.py b/repos/spack_repo/builtin/packages/py_rpds_py/package.py index 786e92ec6b4..0355bf7a8e2 100644 --- a/repos/spack_repo/builtin/packages/py_rpds_py/package.py +++ b/repos/spack_repo/builtin/packages/py_rpds_py/package.py @@ -17,11 +17,19 @@ class PyRpdsPy(PythonPackage): license("MIT", checked_by="wdconinc") + version("0.27.1", sha256="26a1c73171d10b7acccbded82bf6a586ab8203601e565badc74bbbf8bc5a10f8") version("0.20.0", sha256="d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121") version("0.18.1", sha256="dc48b479d540770c811fbd1eb9ba2bb66951863e448efec2e2c102625328e92f") depends_on("c", type="build") - depends_on("rust@1.76:", when="@0.19:") - depends_on("py-maturin@1.0:1", type="build") - depends_on("py-maturin@1.2:", type="build", when="@0.20:") + depends_on("python@3.9:", type="build", when="@0.21:") + depends_on("python@3.8:", type="build", when="@:0.20") + depends_on("py-maturin@1.9:1", type="build", when="@0.25:") + depends_on("py-maturin@1.2:1", type="build", when="@0.19.1:0.25.1") + depends_on("py-maturin@1.0:1", type="build", when="@:0.19.0") + + # retrieved via cargo msrv + depends_on("rust@1.85:", type="build", when="@0.25:") + depends_on("rust@1.76:", type="build", when="@0.19:") + depends_on("rust@1.60:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_rpy2/package.py b/repos/spack_repo/builtin/packages/py_rpy2/package.py index b6244bf5f4c..f50874cb992 100644 --- a/repos/spack_repo/builtin/packages/py_rpy2/package.py +++ b/repos/spack_repo/builtin/packages/py_rpy2/package.py @@ -23,12 +23,6 @@ class PyRpy2(PythonPackage): version("3.5.17", sha256="dbff08c30f3d79161922623858a5b3b68a3fba8ee1747d6af41bc4ba68f3d582") - # these are from 2019 and don't cleanly work with new r (4+) and pandas versions - # but the exact version incompatibility range is not clear without substantial testing - with default_args(deprecated=True): - version("3.0.4", sha256="2af5158a5d56af7f7bf5e54d8d7e87b6f115ff40f056d82f93cad0cbf6acc0cb") - version("3.0.0", sha256="34efc2935d9015527837d6b1de29641863d184b19d39ad415d5384be8a015bce") - variant("numpy", default=True, description="Numpy", when="@3.5.17:") variant("pandas", default=True, description="Pandas", when="@3.5.17:") variant("ipython", default=True, description="iPython", when="@3.5.17:") @@ -36,10 +30,6 @@ class PyRpy2(PythonPackage): depends_on("c", type="build") depends_on("cxx", type="build") - # many of the previous minor and patch versions change dependency versions so future updates - # should be careful of that - depends_on("python@3.8:", type=("build", "run"), when="@3.5.17:") - # https://github.com/rpy2/rpy2/blob/RELEASE_3_5_17/setup.py#L42C1-L42C14 depends_on("r@3.5:", type=("build", "run"), when="@3.5.17:") @@ -56,27 +46,16 @@ class PyRpy2(PythonPackage): # optional variant depends_on("py-ipython", type=("build", "run"), when="+ipython") + # https://github.com/rpy2/rpy2/issues/1173#issuecomment-2844717767 + depends_on("py-ipython@:8", type=("build", "run"), when="+ipython @3.5.17") + # optional variant depends_on("py-numpy@1.26:", type=("build", "run"), when="+numpy ^python@3.9:") - depends_on("py-numpy@:1.25", type=("build", "run"), when="+numpy ^python@:3.8") # optional variant depends_on("py-pandas", type=("build", "run"), when="+pandas ^python@:3.9") depends_on("py-pandas@1.3.5:", type=("build", "run"), when="+pandas ^python@3.10:") - depends_on("py-backports-zoneinfo", type=("build", "run"), when="@3.5.17: ^python@:3.8") - + # not explicitly listed but required depends_on("iconv") - - # These are from 2019 and predate the pyproject.toml config that currently exists - with when("@3.0.0:3.0.4"): - # Doesn't support post-distutil removal until 3.5.13 - # https://github.com/rpy2/rpy2/releases/tag/RELEASE_3_5_13 - depends_on("python@3.5:3.11", type=("build", "run")) - depends_on("py-setuptools", type="build") - - depends_on("py-cffi@1.0.0:", type=("build", "run")) - depends_on("py-simplegeneric", type=("build", "run")) - depends_on("py-pytest", type=("build", "run")) - - depends_on("r@3.3:", type=("build", "run")) + depends_on("zstd") diff --git a/repos/spack_repo/builtin/packages/py_rq/package.py b/repos/spack_repo/builtin/packages/py_rq/package.py deleted file mode 100644 index 068754b117e..00000000000 --- a/repos/spack_repo/builtin/packages/py_rq/package.py +++ /dev/null @@ -1,73 +0,0 @@ -# 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 PyRq(PythonPackage): - """RQ (Redis Queue) is a simple Python library for queueing - jobs and processing them in the background with workers.""" - - homepage = "https://github.com/rq/rq" - url = "https://github.com/rq/rq/archive/v1.5.2.tar.gz" - - license("BSD-2-Clause-FreeBSD") - - version( - "1.5.2", - sha256="e8e7b6ffc4a962837eaff8eb0137514346e629633bf08550a1649771cdc4ace6", - deprecated=True, - ) - version( - "1.5.1", - sha256="36ca5cd2762b5b15bb176943f77da933fac6c2f4e5b5d47a0475f918c167fd4c", - deprecated=True, - ) - version( - "1.5.0", - sha256="97443acd8aab1c273710f74db197838f68a0678f9cabb64c3598dfb816d35e13", - deprecated=True, - ) - version( - "1.4.3", - sha256="a971aa16d346d1c145442af3bfb171ea620f375d240fbade3c42c2246d3d698a", - deprecated=True, - ) - version( - "1.4.2", - sha256="478bd19ac4f66d3066459f5e8253cf5f477bfe128f69ed952f7565cb530ac6a4", - deprecated=True, - ) - version( - "1.4.1", - sha256="fe158e3d9d4efe533f5698738f14e975656e396cd280c6acfd45952dc5ddfc66", - deprecated=True, - ) - version( - "1.4.0", - sha256="03cd39392d31d00205bd1d84930e9b7aefc5d3ac9770c59092bdd8a94fc8a47d", - deprecated=True, - ) - version( - "1.3.0", - sha256="ce94d07125b96313e8c4512b30c62da290ae6f5eeff60b8c3e2a0a08055f5608", - deprecated=True, - ) - version( - "1.2.2", - sha256="ea71f805d4e3b972b4df5545529044df4bc0fbae30814a48bc28d8d0a39c0068", - deprecated=True, - ) - version( - "1.2.1", - sha256="0b38344cda68710e572df9c70b733e95f1cdf13ce727a970f68307cedc98376a", - deprecated=True, - ) - - depends_on("python@3.5:3.8", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-redis@3.5.0:", type=("build", "run")) - depends_on("py-click@5.0.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_rsatoolbox/package.py b/repos/spack_repo/builtin/packages/py_rsatoolbox/package.py index 45d8fe96de1..73268c5dea2 100644 --- a/repos/spack_repo/builtin/packages/py_rsatoolbox/package.py +++ b/repos/spack_repo/builtin/packages/py_rsatoolbox/package.py @@ -20,23 +20,13 @@ class PyRsatoolbox(PythonPackage): version("0.2.0", sha256="ecdcb50387c4b6330077ec2a3a221696078071319b8a0c32ed8128cd38da6863") version("0.1.5", sha256="439839fb20e2efa0c7c975ad305df8995a509ed3426ad0384ebfff20663fd58b") - with default_args(deprecated=True): - version("0.1.2", sha256="2d091cbaa33373bf9da4df5ca8d127f0e427431a3db726076090ab2d54fe1213") - version("0.1.0", sha256="245f909d31909ba896b765fa51ea019510dd690c6bb8d04b178a9c76ec36dce9") - version("0.0.5", sha256="7ede9309755a6173c26f08fd36fa436a11993c7ae0fa9fce05f38be7af0dc6eb") - version("0.0.4", sha256="84153fa4c686c95f3e83f2cb668b97b82b53dc2a565856db80aa5f8c96d09359") - version("0.0.3", sha256="9bf6e16d9feadc081f9daaaaab7ef38fc1cd64dd8ef0ccd9f74adb5fe6166649") - depends_on("python@3.8:", type=("build", "run"), when="@0.1.5:") - depends_on("python@:3.10", type=("build", "run"), when="@:0.1.2") depends_on("py-setuptools@68:", type="build", when="@0.1.5:") depends_on("py-setuptools", type="build") depends_on("py-setuptools-scm+toml@8.0:", type="build", when="@0.1.5:") - depends_on("py-setuptools-scm+toml@7.0", type="build", when="@0.0.5:0.1.4") depends_on("py-cython@3", type="build", when="@0.0.5:") depends_on("py-twine@4.0.1:", type="build", when="@0.1.5:") - depends_on("py-twine@4.0.1:4.0", type="build", when="@0.0.5:0.1.4") depends_on("py-numpy@1.21.2:", type=("build", "run")) depends_on("py-scipy@1.10.1:", type=("build", "run"), when="@0.2:") @@ -48,17 +38,6 @@ class PyRsatoolbox(PythonPackage): depends_on("py-h5py", type=("build", "run")) depends_on("py-tqdm", type=("build", "run")) depends_on("py-joblib", type=("build", "run")) - depends_on("py-importlib-resources@5.12:", type=("build", "run"), when="^python@:3.8") depends_on("py-networkx@3:", type=("build", "run"), when="@0.2:") conflicts("^py-matplotlib@3.9.1") - - # old dependcies - depends_on("py-coverage", type=("build", "run"), when="@:0.1.1") - depends_on("py-petname@2.2", type=("build", "run"), when="@0.0.4") - - @when("@:0.0.3") - def patch(self): - # tests are looking for a not existing requirements.txt file - with working_dir("tests"): - open("requirements.txt", "a").close() diff --git a/repos/spack_repo/builtin/packages/py_rst2pdf/package.py b/repos/spack_repo/builtin/packages/py_rst2pdf/package.py index 195862586d0..b861b18cb73 100644 --- a/repos/spack_repo/builtin/packages/py_rst2pdf/package.py +++ b/repos/spack_repo/builtin/packages/py_rst2pdf/package.py @@ -20,18 +20,40 @@ class PyRst2pdf(PythonPackage): license("MIT") + version("0.105", sha256="857e8741014ec5015f7a00aafb5dccbb56378ef4c1da55a828d44bcf5ff3acdb") + version("0.103.1", sha256="3ffe816d4b3275aee21b8ffdd08b2e6be4d7590cd88b189f733cbc6996d63786") version("0.100", sha256="664c3c16e6d3dea274e840a436eac4dba6cb50ab6af3162fc9d5716be3cb7b42") version("0.99", sha256="8fa23fa93bddd1f52d058ceaeab6582c145546d80f2f8a95974f3703bd6c8152") - depends_on("python@3.8:", when="@0.100:", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-setuptools-scm", type="build") - - depends_on("py-docutils", type=("build", "run")) - depends_on("py-importlib-metadata", type=("build", "run")) - depends_on("py-jinja2", type=("build", "run")) - depends_on("py-packaging", type=("build", "run")) - depends_on("py-pygments", type=("build", "run")) - depends_on("py-pyyaml", type=("build", "run")) - depends_on("py-reportlab", type=("build", "run")) - depends_on("py-smartypants", type=("build", "run")) + with default_args(type="build"): + depends_on("py-setuptools@64:", when="@0.103:") + depends_on("py-setuptools") + depends_on("py-setuptools-scm@8:", when="@0.103:") + depends_on("py-setuptools-scm") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@0.104:") + depends_on("python@3.9:", when="@0.103:") + depends_on("python@3.8:", when="@0.100:0.102") + + # ignore upper bound restrictions, because they seem to be too strict + depends_on("py-docutils@0.21.2:", when="@0.103:") + depends_on("py-docutils") + depends_on("py-jinja2@3:", when="@0.103:") + depends_on("py-jinja2") + depends_on("py-packaging@26:", when="@0.105:") + depends_on("py-packaging@24:", when="@0.103:") + depends_on("py-packaging") + depends_on("py-pygments@2:", when="@0.103:") + depends_on("py-pygments") + depends_on("py-pyyaml@6.0.1:", when="@0.105:") + depends_on("py-pyyaml@6:", when="@0.103:") + depends_on("py-pyyaml") + depends_on("py-reportlab@4:", when="@0.103:") + depends_on("py-reportlab") + + # Historical dependencies + depends_on("py-importlib-metadata@8:", when="@0.103") + depends_on("py-importlib-metadata", when="@:0.103") + depends_on("py-smartypants@2:", when="@0.103") + depends_on("py-smartypants", when="@:0.103") diff --git a/repos/spack_repo/builtin/packages/py_rtree/package.py b/repos/spack_repo/builtin/packages/py_rtree/package.py index 54f7413052b..ca44888fddb 100644 --- a/repos/spack_repo/builtin/packages/py_rtree/package.py +++ b/repos/spack_repo/builtin/packages/py_rtree/package.py @@ -16,6 +16,7 @@ class PyRtree(PythonPackage): license("MIT") maintainers("adamjstewart", "hobu") + version("1.4.1", sha256="c6b1b3550881e57ebe530cc6cffefc87cd9bf49c30b37b894065a9f810875e46") version("1.4.0", sha256="9d97c7c5dcf25f6c0599c76d9933368c6a8d7238f2c1d00e76f1a69369ca82a0") version("1.3.0", sha256="b36e9dd2dc60ffe3d02e367242d2c26f7281b00e1aaf0c39590442edaaadd916") version("1.2.0", sha256="f5145f7852bf7f95c126fb16bf1a4c2ca9300ae151b07f8a0f7083ea47912675") diff --git a/repos/spack_repo/builtin/packages/py_ruamel_yaml/package.py b/repos/spack_repo/builtin/packages/py_ruamel_yaml/package.py index fa83ad92051..f33ba48f1ab 100644 --- a/repos/spack_repo/builtin/packages/py_ruamel_yaml/package.py +++ b/repos/spack_repo/builtin/packages/py_ruamel_yaml/package.py @@ -18,6 +18,8 @@ class PyRuamelYaml(PythonPackage): license("MIT") + version("0.18.16", sha256="a6e587512f3c998b2225d68aa1f35111c29fad14aed561a26e73fab729ec5e5a") + version("0.18.15", sha256="dbfca74b018c4c3fba0b9cc9ee33e53c371194a9000e694995e620490fd40700") version("0.17.32", sha256="ec939063761914e14542972a5cba6d33c23b0859ab6342f61cf070cfc600efc2") version("0.17.16", sha256="1a771fc92d3823682b7f0893ad56cb5a5c87c48e62b5399d6f42c8759a583b33") version("0.16.10", sha256="099c644a778bf72ffa00524f78dd0b6476bca94a1da344130f4bf3381ce5b954") @@ -25,12 +27,15 @@ class PyRuamelYaml(PythonPackage): version("0.11.7", sha256="c89363e16c9eafb9354e55d757723efeff8682d05e56b0881450002ffb00a344") # from `supported` in __init__.py + depends_on("python@3.8:", when="@0.18.10:", type=("build", "run")) depends_on("python@3.7:", when="@0.17.22:", type=("build", "run")) + # from ast import Str + depends_on("python@:3.13", when="@:0.17", type=("build", "run")) # from setup.py - depends_on("py-setuptools@28.7:", when="@0.17:", type=("build")) + depends_on("py-setuptools@28.7:", when="@0.17:", type="build") depends_on("py-setuptools", type="build") # from __init__.py - depends_on("py-ruamel-yaml-clib@0.2.7:", when="@0.17.23: ^python@:3.11", type=("build", "run")) + depends_on("py-ruamel-yaml-clib@0.2.7:", when="@0.17.23: ^python@:3.13", type=("build", "run")) depends_on( "py-ruamel-yaml-clib@0.1.2:", when="@0.16:0.17.22 ^python@:3.8", type=("build", "run") ) @@ -38,5 +43,5 @@ class PyRuamelYaml(PythonPackage): @run_after("install") def fix_import_error(self): if str(self.spec["python"].version.up_to(1)) == "2": - touch = which("touch") + touch = which("touch", required=True) touch(join_path(python_purelib, "ruamel", "__init__.py")) diff --git a/repos/spack_repo/builtin/packages/py_ruamel_yaml_clib/package.py b/repos/spack_repo/builtin/packages/py_ruamel_yaml_clib/package.py index 90272f6c2b5..145e21c31e1 100644 --- a/repos/spack_repo/builtin/packages/py_ruamel_yaml_clib/package.py +++ b/repos/spack_repo/builtin/packages/py_ruamel_yaml_clib/package.py @@ -12,26 +12,26 @@ class PyRuamelYamlClib(PythonPackage): """C version of reader, parser and emitter for ruamel.yaml derived from libyaml.""" homepage = "https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree/" - pypi = "ruamel.yaml.clib/ruamel.yaml.clib-0.2.0.tar.gz" + pypi = "ruamel.yaml.clib/ruamel_yaml_clib-0.2.0.tar.gz" license("MIT") + version("0.2.15", sha256="46e4cc8c43ef6a94885f72512094e482114a8a706d3c555a34ed4b0d20200600") + version("0.2.14", sha256="803f5044b13602d58ea378576dd75aa759f52116a0232608e8fdada4da33752e") version("0.2.12", sha256="6c8fbb13ec503f99a91901ab46e0b07ae7941cd527393187039aec586fdfd36f") version("0.2.7", sha256="1f08fd5a2bea9c4180db71678e850b995d2a5f4537be0e94557668cf0f5f9497") version("0.2.4", sha256="f997f13fd94e37e8b7d7dbe759088bb428adc6570da06b64a913d932d891ac8d") - with default_args(deprecated=True): - version("0.2.0", sha256="b66832ea8077d9b3f6e311c4a53d06273db5dc2db6e8a908550f3c14d67e718c") depends_on("c", type="build") # Based on PyPI wheel availability with default_args(type=("build", "link", "run")): - depends_on("python@:3.13") + depends_on("python@:3.14") + depends_on("python@:3.13", when="@:0.2.12") depends_on("python@:3.12", when="@:0.2.8") depends_on("python@:3.11", when="@:0.2.7") depends_on("python@:3.10", when="@:0.2.6") depends_on("python@:3.9", when="@:0.2.4") - depends_on("python@:3.8", when="@:0.2.0") depends_on("py-setuptools", type="build") @@ -40,3 +40,11 @@ def flag_handler(self, name, flags): if self.spec.satisfies("%oneapi") or self.spec.satisfies("%apple-clang@15:"): flags.append("-Wno-error=incompatible-function-pointer-types") return (flags, None, None) + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/r/ruamel.yaml.clib/{}-{}.tar.gz" + if version >= Version("0.2.15"): + name = "ruamel_yaml_clib" + else: + name = "ruamel.yaml.clib" + return url.format(name, version) diff --git a/repos/spack_repo/builtin/packages/py_rucio_clients/package.py b/repos/spack_repo/builtin/packages/py_rucio_clients/package.py index f58da9cc57c..af3b98f5cc5 100644 --- a/repos/spack_repo/builtin/packages/py_rucio_clients/package.py +++ b/repos/spack_repo/builtin/packages/py_rucio_clients/package.py @@ -17,6 +17,8 @@ class PyRucioClients(PythonPackage): license("Apache-2.0", checked_by="wdconinc") + version("38.0.0", sha256="d49f912f2f98870cab2227e0464129ba0954e99b975d0225126cca1b9d9c983c") + version("37.3.0", sha256="b4bca8d451bc34528797ca188884a0c8b5ddfef2d32803765e6333455879f819") version( "36.0.0.post2", sha256="48ac2e3217aac9aaa70133cbfff991560bbeb162165bcf3dd3425967c8a2f816" ) @@ -38,24 +40,39 @@ class PyRucioClients(PythonPackage): # requirements/requirements.client.txt depends_on("python@3.9:", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-requests@2.32.2:", type=("build", "run")) - depends_on("py-urllib3@1.26.18:", type=("build", "run")) + depends_on("py-requests@2.32.2:", type=("build", "run"), when="@:36") + depends_on("py-urllib3@1.26.18:", type=("build", "run"), when="@:36") + depends_on("py-requests@2.32.3:", type=("build", "run"), when="@37:") + depends_on("py-urllib3@2.3.0:", type=("build", "run"), when="@37:") depends_on("py-dogpile-cache@1.2.2:", type=("build", "run")) depends_on("py-tabulate@0.9.0:", type=("build", "run")) - depends_on("py-jsonschema@4.20.0:", type=("build", "run")) + depends_on("py-jsonschema@4.20.0:", type=("build", "run"), when="@:36") + depends_on("py-jsonschema@4.23.0:", type=("build", "run"), when="@37:") depends_on("py-packaging@24.1:", type=("build", "run"), when="@36:") + depends_on("py-packaging@24.2:", type=("build", "run"), when="@37:") depends_on("py-rich@13.7.1:", type=("build", "run"), when="@36:") - depends_on("py-typing-extensions@4.12.2:", type=("build", "run"), when="@36:") + depends_on("py-rich@13.9.4:", type=("build", "run"), when="@37:") + depends_on("py-typing-extensions@4.12.2:", type=("build", "run")) + depends_on("py-typing-extensions@4.14.0:", type=("build", "run"), when="@38:") + depends_on("py-click@8.1.7:", type=("build", "run"), when="@37:") with when("+ssh"): - depends_on("py-paramiko@3.4.0:") + depends_on("py-paramiko@3.4.0:", when="@:36") + depends_on("py-paramiko@3.5.1:", when="@37:") + with when("+kerberos"): depends_on("py-kerberos@1.3.1:") depends_on("py-pykerberos@1.2.4:") - depends_on("py-requests-kerberos@0.14.0:") + depends_on("py-requests-kerberos@0.14.0:", when="@:36") + depends_on("py-requests-kerberos@0.15.0:", when="@37:") + with when("+swift"): - depends_on("py-python-swiftclient@4.4.0:") + depends_on("py-python-swiftclient@4.4.0:", when="@:36") + depends_on("py-python-swiftclient@4.7.0:", when="@37:") + with when("+argcomplete"): - depends_on("py-argcomplete@3.1.6:") + depends_on("py-argcomplete@3.1.6:", when="@:36") + depends_on("py-argcomplete@3.5.3:", when="@37:") + with when("+dumper"): depends_on("py-python-magic@0.4.27:") diff --git a/repos/spack_repo/builtin/packages/py_ruff/package.py b/repos/spack_repo/builtin/packages/py_ruff/package.py index 9203e73ec1a..07afab3b28a 100644 --- a/repos/spack_repo/builtin/packages/py_ruff/package.py +++ b/repos/spack_repo/builtin/packages/py_ruff/package.py @@ -17,6 +17,10 @@ class PyRuff(PythonPackage): license("MIT") maintainers("adamjstewart") + version("0.15.10", sha256="d1f86e67ebfdef88e00faefa1552b5e510e1d35f3be7d423dc7e84e63788c94e") + version("0.15.0", sha256="6bdea47cdbea30d40f8f8d7d69c0854ba7c15420ec75a26f463290949d7f7e9a") + version("0.13.0", sha256="5b4b1ee7eb35afae128ab94459b13b2baaed282b1fb0f472a73c82c996c8ae60") + version("0.12.4", sha256="13efa16df6c6eeb7d0f091abae50f58e9522f3843edb40d56ad52a5a4a4b6873") version("0.12.0", sha256="4d047db3662418d4a848a3fdbfaf17488b34b62f527ed6f10cb8afd78135bc5c") version("0.11.1", sha256="f2e209a283c9fa423e268cad015ec4fb249178608f755fb67491ff175ecbffbf") version("0.9.1", sha256="fd2b25ecaf907d6458fa842675382c8597b3c746a2dde6717fe3415425df0c17") @@ -30,12 +34,21 @@ class PyRuff(PythonPackage): version("0.3.0", sha256="0886184ba2618d815067cf43e005388967b67ab9c80df52b32ec1152ab49f53a") version("0.1.6", sha256="1b09f29b16c6ead5ea6b097ef2764b42372aebe363722f1605ecbcd2b9207184") - depends_on("c", type="build") - with default_args(type="build"): + depends_on("c") + depends_on("gmake") + + depends_on("py-maturin@1.9:1", when="@0.12.7:") depends_on("py-maturin@1") # Found in Cargo.toml + depends_on("rust@1.92:", when="@0.15.8:") + depends_on("rust@1.91:", when="@0.15.0:") + depends_on("rust@1.90:", when="@0.14.10:") + depends_on("rust@1.89:", when="@0.14.4:") + depends_on("rust@1.88:", when="@0.13.1:") + depends_on("rust@1.87:", when="@0.12.10:") + depends_on("rust@1.86:", when="@0.12.2:") depends_on("rust@1.85:", when="@0.11.11:") depends_on("rust@1.84:", when="@0.11.4:") depends_on("rust@1.83:", when="@0.9.8:") diff --git a/repos/spack_repo/builtin/packages/py_rustworkx/package.py b/repos/spack_repo/builtin/packages/py_rustworkx/package.py index 636519dbfe7..0c765e6a5bd 100644 --- a/repos/spack_repo/builtin/packages/py_rustworkx/package.py +++ b/repos/spack_repo/builtin/packages/py_rustworkx/package.py @@ -36,3 +36,5 @@ class PyRustworkx(PythonPackage): depends_on("py-setuptools", type="build") depends_on("py-setuptools-rust", type="build") depends_on("py-numpy@1.16:", type=("build", "run")) + + depends_on("rust", type="build") diff --git a/repos/spack_repo/builtin/packages/py_s3cmd/package.py b/repos/spack_repo/builtin/packages/py_s3cmd/package.py index e8c3d32933d..893c367ae0c 100644 --- a/repos/spack_repo/builtin/packages/py_s3cmd/package.py +++ b/repos/spack_repo/builtin/packages/py_s3cmd/package.py @@ -19,6 +19,7 @@ class PyS3cmd(PythonPackage): homepage = "https://github.com/s3tools/s3cmd" url = "https://github.com/s3tools/s3cmd/releases/download/v2.0.2/s3cmd-2.0.2.tar.gz" + version("2.4.0", sha256="6b567521be1c151323f2059c8feec85ded96b6f184ff80535837fea33798b40b") version("2.3.0", sha256="15330776e7ff993d8ae0ac213bf896f210719e9b91445f5f7626a8fa7e74e30b") version("2.2.0", sha256="2a7d2afe09ce5aa9f2ce925b68c6e0c1903dd8d4e4a591cd7047da8e983a99c3") version("2.1.0", sha256="966b0a494a916fc3b4324de38f089c86c70ee90e8e1cae6d59102103a4c0cc03") diff --git a/repos/spack_repo/builtin/packages/py_s3transfer/package.py b/repos/spack_repo/builtin/packages/py_s3transfer/package.py index d5960b7745e..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,9 @@ 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") version("0.9.0", sha256="9e1b186ec8bb5907a1e82b51237091889a9973a2bb799a924bcd9f301ff79d3d") version("0.8.2", sha256="368ac6876a9e9ed91f6bc86581e319be08188dc60d50e0d56308ed5765446283") @@ -28,6 +31,9 @@ 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:") depends_on("py-botocore@1.12.36:1", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_safe_netrc/package.py b/repos/spack_repo/builtin/packages/py_safe_netrc/package.py new file mode 100644 index 00000000000..5cb78bfeb90 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_safe_netrc/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 PySafeNetrc(PythonPackage): + """Safe netrc file parser.""" + + homepage = "https://git.ligo.org/computing/software/safe-netrc" + pypi = "safe-netrc/safe-netrc-1.0.1.tar.gz" + git = "https://git.ligo.org/computing/software/safe-netrc.git" + + maintainers("wdconinc") + + license("GPL-2.0-or-later", checked_by="wdconinc") + + version("1.0.1", sha256="1dcc7263b4d9ce72e0109d8e2bc9ba89c8056ccc618d26c8c94802c6fd753720") + + with default_args(type="build"): + depends_on("py-setuptools@61:") + depends_on("py-setuptools-scm@6.2:+toml") diff --git a/repos/spack_repo/builtin/packages/py_safetensors/package.py b/repos/spack_repo/builtin/packages/py_safetensors/package.py index 936e983a0d5..ebde26e60e8 100644 --- a/repos/spack_repo/builtin/packages/py_safetensors/package.py +++ b/repos/spack_repo/builtin/packages/py_safetensors/package.py @@ -15,14 +15,21 @@ class PySafetensors(PythonPackage): maintainers("thomas-bouvier") + version("0.6.2", sha256="43ff2aa0e6fa2dc3ea5524ac7ad93a9839256b8703761e76e2d0b2a3fa4f15d9") version("0.4.5", sha256="d73de19682deabb02524b3d5d1f8b3aaba94c72f1bbfc7911b9b9d5d391c0310") version("0.4.3", sha256="2f85fc50c4e07a21e95c24e07460fe6f7e2859d0ce88092838352b798ce711c2") version("0.3.1", sha256="571da56ff8d0bec8ae54923b621cda98d36dcef10feb36fd492c4d0c2cd0e869") + depends_on("c", type="build") + + depends_on("python@3.9:", when="@0.6:", type=("build", "run")) + # Build errors with python@3.14 + depends_on("python@3.7:3.13", when="@:0.4.5", type=("build", "run")) # Based on PyPI wheel availability - depends_on("python@:3.12", when="@:0.4.3", type=("build", "run")) + depends_on("python@3.7:3.12", when="@:0.4.3", type=("build", "run")) depends_on("py-maturin@1", type="build", when="@0.4.3:") + depends_on("rust", type="build", when="@0.4.3:") + + # Historical dependencies depends_on("py-setuptools", when="@0.3.1", type="build") depends_on("py-setuptools-rust", when="@0.3.1", type="build") - - depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/py_sanic/package.py b/repos/spack_repo/builtin/packages/py_sanic/package.py deleted file mode 100644 index 03b1b83fb6a..00000000000 --- a/repos/spack_repo/builtin/packages/py_sanic/package.py +++ /dev/null @@ -1,35 +0,0 @@ -# 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 PySanic(PythonPackage): - """Sanic is a Flask-like Python 3.5+ web server that is written to go fast. - It is based on the work done by the amazing folks at magicstack""" - - homepage = "https://github.com/huge-success/sanic" - pypi = "sanic/sanic-20.6.3.tar.gz" - - license("MIT") - - version("20.6.3", sha256="30e83d9f677b609d6b8ccab7c9551ca7e9a5f19ac0579f5aa10199ab6d4138ed") - - depends_on("py-setuptools", type="build") - depends_on("py-wheel", type="build") - depends_on("py-ujson") - depends_on("py-multidict@4.0:4") - depends_on("py-aiofiles@0.3.0:") - depends_on("py-httptools@0.0.10:") - depends_on("py-websockets@8.1:8") - depends_on("py-httpx@0.11.1") - depends_on("py-websockets@8.1:8") - depends_on("py-uvloop") - depends_on("py-chardet") - depends_on("py-hstspreload") - depends_on("py-h2") - depends_on("py-urllib3") - depends_on("py-brotlipy") diff --git a/repos/spack_repo/builtin/packages/py_sarif_tools/package.py b/repos/spack_repo/builtin/packages/py_sarif_tools/package.py new file mode 100644 index 00000000000..7af5a3de496 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_sarif_tools/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 PySarifTools(PythonPackage): + """A set of command line tools and Python library for working with SARIF files.""" + + homepage = "https://github.com/microsoft/sarif-tools" + pypi = "sarif_tools/sarif_tools-3.0.5.tar.gz" + + version("3.0.5", sha256="52d09c101121231fb3489ad8c7af56896b8a95415cef726a6db5e7d74c6834d2") + + license("MIT") + + depends_on("py-poetry", type="build") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-jinja2@3.1.6:3", type=("build", "run")) + depends_on("py-jsonpath-ng@1.6.0:1", type=("build", "run")) + depends_on("py-matplotlib@3.7:3", type=("build", "run")) + depends_on("py-python-docx@1.1.2:1", type=("build", "run")) + depends_on("py-pyyaml@6.0.1:6", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_schema/package.py b/repos/spack_repo/builtin/packages/py_schema/package.py index b06b40cf165..91e30ddac0d 100644 --- a/repos/spack_repo/builtin/packages/py_schema/package.py +++ b/repos/spack_repo/builtin/packages/py_schema/package.py @@ -15,6 +15,7 @@ class PySchema(PythonPackage): license("MIT") + version("0.7.8", sha256="e86cc08edd6fe6e2522648f4e47e3a31920a76e82cce8937535422e310862ab5") version("0.7.7", sha256="7da553abd2958a19dc2547c388cde53398b39196175a9be59ea1caf5ab0a1807") version("0.7.5", sha256="f06717112c61895cabc4707752b88716e8420a8819d71404501e114f91043197") diff --git a/repos/spack_repo/builtin/packages/py_scifem/package.py b/repos/spack_repo/builtin/packages/py_scifem/package.py new file mode 100644 index 00000000000..4dd88f81e21 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_scifem/package.py @@ -0,0 +1,64 @@ +# 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 PyScifem(PythonPackage): + """A collection of tools for scientific computing with a focus on finite element methods. + The tools are written in Python and are intended to be used in conjunction with + the py-fenics-dolfinx. + """ + + homepage = "https://scientificcomputing.github.io/scifem/" + url = "https://github.com/scientificcomputing/scifem/archive/refs/tags/v0.7.0.tar.gz" + git = "https://github.com/scientificcomputing/scifem.git" + + maintainers("finsberg", "jorgensd") + + license("MIT", checked_by="jorgensd") + + version("main", branch="main") + version("0.14.0", sha256="a875311cdd21f1c6395be67c0220df2f03e52a3571041eb75deef0972d511cbb") + version("0.7.0", sha256="016556573a05d2bebb983017c41427d906df870633d23e5bd9d68af8d4b81de2") + version("0.6.0", sha256="548c9af8997537bc6830c898a9ffe7007dda16b5e40f3240c97e646cfd0a30b3") + version("0.5.0", sha256="1e5978ab97889c2d6bad80e375c9db1b050bfb68c197eada17928e6908f15372") + version("0.4.0", sha256="c4494008c974c3303de7d28d40e038478c4fc1c7c24b7117305bd552a2a1c5a4") + + variant("adios2", default=False, description="ADIOS2 support") + variant("petsc", default=False, description="PETSc support") + variant("biomed", default=False, description="Biomedical imaging support") + variant("hdf5", default=False, description="HDF5 support") + + depends_on("python@3.10:", type=("build", "run")) + + depends_on("cxx", type="build") + depends_on("py-nanobind@2:", type="build") + depends_on("py-scikit-build-core+pyproject", type="build") + depends_on("py-setuptools@42:", type="build") + depends_on("cmake@3.21:", type="build") + depends_on("fenics-dolfinx@main", when="@main", type=("build", "link")) + depends_on("fenics-dolfinx@0.9:", when="@0.4:", type=("build", "link")) + depends_on("fenics-basix@main", when="@main", type=("build", "link")) + depends_on("fenics-basix@0.9:", when="@0.4:", type=("build", "link")) + + depends_on("py-fenics-dolfinx@0.9:", when="@0.4:", type="run") + depends_on("py-fenics-dolfinx@main", when="@main", type="run") + depends_on("py-numpy", type="run") + depends_on("py-packaging", type="run") + + with when("+adios2"): + depends_on("adios2+python", type="run") + + with when("+petsc"): + depends_on("py-petsc4py", type="run") + depends_on("py-fenics-dolfinx+petsc4py", type="run") + + with when("+biomed"): + depends_on("py-nibabel", type="run") + + with when("+hdf5"): + depends_on("py-h5py+mpi", when="+hdf5", type="run") diff --git a/repos/spack_repo/builtin/packages/py_scikit_build_core/package.py b/repos/spack_repo/builtin/packages/py_scikit_build_core/package.py index e8d5fb6522b..88f2c84864b 100644 --- a/repos/spack_repo/builtin/packages/py_scikit_build_core/package.py +++ b/repos/spack_repo/builtin/packages/py_scikit_build_core/package.py @@ -20,6 +20,9 @@ class PyScikitBuildCore(PythonPackage): license("Apache-2.0") + version("0.12.2", sha256="562e0bbc9de1a354c87825ccf732080268d6582a0200f648e8c4a2dcb1e3736d") + version("0.11.6", sha256="5982ccd839735be99cfd3b92a8847c6c196692f476c215da84b79d2ad12f9f1b") + version("0.11.5", sha256="8f0a1edb86cb087876f3c699d2a2682012efd8867b390ed37355f13949d0628e") version("0.11.1", sha256="4e5988df5cd33f0bdb9967b72663ca99f50383c9bc21d8b24fa40c0661ae72b7") version("0.10.7", sha256="04cbb59fe795202a7eeede1849112ee9dcbf3469feebd9b8b36aa541336ac4f8") version("0.9.5", sha256="2a4cb119cc968fe87ae05582979657cc0e7be45655798446eabbe490e61ce072") @@ -35,11 +38,14 @@ class PyScikitBuildCore(PythonPackage): depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated + depends_on("python@3.8:", type=("build", "run"), when="@0.11:") depends_on("python@3.7:", type=("build", "run")) # Build system depends_on("py-hatchling", type="build") + depends_on("py-hatchling@1.24:", when="@0.12:", type=("build", "test")) depends_on("py-hatch-vcs", type="build") + depends_on("py-hatch-vcs@0.4:", when="@0.12:", type=("build", "test")) # Dependencies depends_on("py-exceptiongroup@1:", when="@0.9: ^python@:3.10", type=("build", "run")) @@ -50,9 +56,11 @@ class PyScikitBuildCore(PythonPackage): depends_on("py-packaging@23.2:", type=("build", "run"), when="@0.10:") depends_on("py-packaging@21.3:", type=("build", "run"), when="@0.9") depends_on("py-packaging@20.9:", type=("build", "run")) + depends_on("py-pathspec@0.12.0:", type=("build", "run"), when="@0.12.2:") depends_on("py-pathspec@0.10.1:", type=("build", "run"), when="@0.9:") depends_on("py-tomli@1.2.2:", when="@0.9: ^python@:3.10", type=("build", "run")) depends_on("py-tomli@1.1:", when="^python@:3.10", type=("build", "run")) + depends_on("py-typing-extensions@4:", when="@0.12.2: ^python@:3.10", type=("build", "run")) depends_on("py-typing-extensions@3.10:", when="@0.8: ^python@:3.8", type=("build", "run")) depends_on("py-typing-extensions@3.10:", when="@:0.7 ^python@:3.7", type=("build", "run")) depends_on("cmake@3.15:", type=("build", "run")) @@ -65,6 +73,9 @@ class PyScikitBuildCore(PythonPackage): depends_on("py-build@0.8:", when="@0.9:", type="test") depends_on("py-build +virtualenv", when="@:0.8", type="test") depends_on("py-cattrs@22.2:", type="test") + depends_on("py-fastjsonschema@2.16.2:", when="@0.12:", type="test") + depends_on("py-filelock@3.8:", when="@0.12:", type="test") + depends_on("py-hatch-fancy-pypi-readme@23.2:", when="@0.12:", type="test") depends_on("py-importlib-metadata", when="^python@:3.7", type="test") depends_on("py-pybind11@2.12:", when="@0.9:", type="test") depends_on("py-pathspec@0.10.1:", when="@:0.8", type="test") @@ -72,12 +83,16 @@ class PyScikitBuildCore(PythonPackage): depends_on("py-pybind11", type="test") depends_on("py-pyproject-metadata@0.5:", when="@:0.8", type="test") depends_on("py-pytest@7:", type="test") + depends_on("py-pytest-xdist@3.1:", when="@0.11.4:", type="test") depends_on("py-pytest-subprocess@1.5:", type="test") + depends_on("py-setuptools-scm@5:", when="@0.12:", type="test") depends_on("py-setuptools@43:", when="@0.9: ^python@:3.8", type="test") depends_on("py-setuptools@45:", when="@0.9: ^python@3.9", type="test") depends_on("py-setuptools@49:", when="@0.9: ^python@3.10:3.11", type="test") depends_on("py-setuptools@66.1:", when="@0.9: ^python@3.12:", type="test") depends_on("py-setuptools", type="test") + depends_on("py-typing-extensions@3.10:", when="@0.12: ^python@:3.9", type="test") + depends_on("py-validate-pyproject@0.21:", when="@0.12:", type="test") depends_on("py-virtualenv@20.0.28:", when="@0.9:", type="test") depends_on("py-virtualenv", when="@0.6:", type="test") depends_on("py-wheel@0.40:", when="@0.9:", type="test") @@ -87,4 +102,4 @@ class PyScikitBuildCore(PythonPackage): @on_package_attributes(run_tests=True) def install_test(self): with working_dir("tests"): - which("pytest")() + which("pytest", required=True)() diff --git a/repos/spack_repo/builtin/packages/py_scikit_image/package.py b/repos/spack_repo/builtin/packages/py_scikit_image/package.py index cebb5440248..a51989e8e58 100644 --- a/repos/spack_repo/builtin/packages/py_scikit_image/package.py +++ b/repos/spack_repo/builtin/packages/py_scikit_image/package.py @@ -25,6 +25,7 @@ class PyScikitImage(PythonPackage): "skimage.future.graph", ] + version("0.26.0", sha256="f5f970ab04efad85c24714321fcc91613fcb64ef2a892a13167df2f3e59199fa") version("0.25.2", sha256="e5a37e6cd4d0c018a7a55b9d601357e3382826d3888c10d0213fc63bff977dde") version("0.25.1", sha256="d4ab30540d114d37c35fe5c837f89b94aaba2a7643afae8354aa353319e9bbbb") version("0.25.0", sha256="58d94fea11b6b3306b3770417dc1cbca7fa9bcbd6a13945d7910399c88c2018c") @@ -39,11 +40,13 @@ class PyScikitImage(PythonPackage): version("0.18.3", sha256="ecae99f93f4c5e9b1bf34959f4dc596c41f2f6b2fc407d9d9ddf85aebd3137ca") version("0.18.1", sha256="fbb618ca911867bce45574c1639618cdfb5d94e207432b19bc19563d80d2f171") version("0.17.2", sha256="bd954c0588f0f7e81d9763dc95e06950e68247d540476e06cb77bcbcd8c2d8b3") - version("0.14.2", sha256="1afd0b84eefd77afd1071c5c1c402553d67be2d7db8950b32d6f773f25850c1f") - version("0.12.3", sha256="82da192f0e524701e89c5379c79200bc6dc21373f48bf7778a864c583897d7c7") - depends_on("c", type="build") - depends_on("cxx", type="build") + variant( + "data", + default=False, + when="@0.18:", + description="Enable downloading of full selection of demo datasets", + ) # Get dependencies for: # @@ -53,6 +56,7 @@ class PyScikitImage(PythonPackage): # @:0.13 from requirements.txt, DEPENDS.txt with default_args(type=("build", "run")): + depends_on("python@3.11:", when="@0.26:") depends_on("python@3.10:", when="@0.23:") depends_on("python@3.9:", when="@0.22:") @@ -64,38 +68,29 @@ class PyScikitImage(PythonPackage): depends_on("py-numpy@1.17,1.18.1:", when="@0.19") depends_on("py-numpy@1.16.5:1.17,1.18.1:", when="@0.18") depends_on("py-numpy@1.15.1:1.17,1.18.1:", when="@0.17") - depends_on("py-numpy@1.14.1:", when="@0.16") - depends_on("py-numpy@1.11:", when="@0.13:0.15") - depends_on("py-numpy@1.7.2:", when="@:0.12") # https://github.com/scikit-image/scikit-image/issues/7282 depends_on("py-numpy@:1", when="@:0.23.0") with default_args(type=("build", "run")): + depends_on("py-scipy@1.11.4:", when="@0.25.2:") depends_on("py-scipy@1.11.2:", when="@0.25:") depends_on("py-scipy@1.9:", when="@0.23:") depends_on("py-scipy@1.8:", when="@0.20:") depends_on("py-scipy@1.4.1:", when="@0.19:") depends_on("py-scipy@1.0.1:", when="@0.17:") - depends_on("py-scipy@0.19:", when="@0.16:") - depends_on("py-scipy@0.17:", when="@0.13:") - depends_on("py-scipy@0.9:") depends_on("py-networkx@3:", when="@0.25:") depends_on("py-networkx@2.8:", when="@0.20:") depends_on("py-networkx@2.2:", when="@0.19:") depends_on("py-networkx@2:", when="@0.15:") - depends_on("py-networkx@1.8:") depends_on("pil@10.1:", when="@0.25:") depends_on("pil@9.1:", when="@0.23:") depends_on("pil@9.0.1:", when="@0.20:") depends_on("pil@6.1:7.0,7.1.2:8.2,8.3.1:", when="@0.19:") depends_on("pil@4.3:7.0,7.1.2:", when="@0.17:") - depends_on("pil@4.3:", when="@0.14:") - depends_on("pil@2.1:") depends_on("py-imageio@2.33:", when="@0.23:") depends_on("py-imageio@2.27:", when="@0.21:") depends_on("py-imageio@2.4.1:", when="@0.19:") depends_on("py-imageio@2.3:", when="@0.16:") - depends_on("py-imageio@2.0.1:", when="@0.15:") depends_on("py-tifffile@2022.8.12:", when="@0.21:") depends_on("py-tifffile@2019.7.26:", when="@0.17:") depends_on("py-packaging@21:", when="@0.21:") @@ -105,16 +100,16 @@ class PyScikitImage(PythonPackage): depends_on("py-lazy-loader@0.2:", when="@0.21:") depends_on("py-lazy-loader@0.1:", when="@0.20:") + depends_on("py-pooch@1.6.0:", when="@0.21: +data") + depends_on("py-pooch@1.3.0:", when="@0.18: +data") + with default_args(type="build"): + depends_on("c") + depends_on("cxx") depends_on("py-meson-python@0.16:", when="@0.25:") depends_on("py-meson-python@0.15:", when="@0.23:") depends_on("py-meson-python@0.14:", when="@0.22:") depends_on("py-meson-python@0.13:", when="@0.20:") - depends_on("py-setuptools@68:", when="@0.25:") - depends_on("py-setuptools@67:", when="@0.20:") - depends_on("py-setuptools@:59.4", when="@0.19.1:0.19") - depends_on("py-setuptools@51:", when="@0.18:") - depends_on("py-setuptools") depends_on("py-cython@3.0.8:", when="@0.25:") depends_on("py-cython@3.0.4:", when="@0.23:") depends_on("py-cython@0.29.32:", when="@0.21:") @@ -122,31 +117,23 @@ class PyScikitImage(PythonPackage): depends_on("py-cython@0.29.24:2", when="@0.19") depends_on("py-cython@0.29.21:", when="@0.18") depends_on("py-cython@0.29.13:", when="@0.17") - depends_on("py-cython@0.25:0.28.1,0.28.3:0.28,0.29.1:", when="@0.15:0.16") - depends_on("py-cython@0.23.4:0.28.1,0.28.3:0.28,0.29.1:", when="@0.14.3:0.14") - depends_on("py-cython@0.23.4:0.28.1", when="@0.14.2") - depends_on("py-cython@0.23.4:", when="@0.14.1") - depends_on("py-cython@0.21:", when="@0.12") depends_on("py-pythran@0.16:", when="@0.25:") depends_on("py-pythran", when="@0.19:") # dependencies for old versions with default_args(type="build"): - depends_on("py-numpydoc@0.6:", when="@0.13.0:0.13") + depends_on("py-setuptools@68:", when="@0.25.0:0.25.1") + depends_on("py-setuptools@67:", when="@0.20:0.24") + depends_on("py-setuptools@:59.4", when="@0.19.1:0.19") + depends_on("py-setuptools@51:", when="@0.18:0.19.0") + depends_on("py-setuptools", when="@:0.17") with default_args(type=("build", "run")): depends_on("py-pywavelets@1.1.1:", when="@0.17:0.21") - depends_on("py-pywavelets@0.4:", when="@0.13:0.16") depends_on("py-matplotlib@2.0:2,3.0.1:", when="@0.15:0.18") depends_on("py-matplotlib@2:", when="@0.14:0.18") depends_on("py-matplotlib@1.3.1:", when="@:0.18") - depends_on("py-six@1.10:", when="@0.14.0:0.14") - depends_on("py-six@1.7.3:", when="@:0.14") depends_on("py-pooch@0.5.2:", when="@0.17.0:0.17.1") - depends_on("py-dask+array@1:", when="@0.14.2") - depends_on("py-dask+array@0.9:", when="@0.14.0:0.14.1") - depends_on("py-dask+array@0.5:", when="@:0.13") - depends_on("py-cloudpickle@0.2.1:", when="@0.14.0:0.14") conflicts("py-imageio@2.35.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 7dae096a7f3..3e8db6b1ad6 100644 --- a/repos/spack_repo/builtin/packages/py_scikit_learn/package.py +++ b/repos/spack_repo/builtin/packages/py_scikit_learn/package.py @@ -21,7 +21,9 @@ class PyScikitLearn(PythonPackage): tags = ["e4s"] version("main", branch="main") - version("master", branch="main", deprecated=True) + version("1.8.0", sha256="9bccbb3b40e3de10351f8f5068e105d0f4083b1a65fa07b6634fbc401a6287fd") + version("1.7.2", sha256="20e9e49ecd130598f1ca38a1d85090e1a600147b9c02fa6f15d69cb53d968fda") + version("1.7.1", sha256="24b3f1e976a4665aa74ee0fcaac2b8fccc6ae77c8e07ab25da3ba6d3292b9802") version("1.7.0", sha256="c01e869b15aec88e2cdb73d27f15bdbe03bce8e2fb43afbe77c45d399e73a5a3") version("1.6.1", sha256="b4fc2525eca2c69a59260f583c56a7557c6ccdf8deafdba6e060f94c1c59738e") version("1.6.0", sha256="9d58481f9f7499dff4196927aedd4285a0baec8caa3790efbe205f13de37dd6e") @@ -46,43 +48,12 @@ class PyScikitLearn(PythonPackage): version("0.24.2", sha256="d14701a12417930392cd3898e9646cf5670c190b933625ebe7511b1f7d7b8736") version("0.24.1", sha256="a0334a1802e64d656022c3bfab56a73fbd6bf4b1298343f3688af2151810bbdf") version("0.24.0", sha256="076369634ee72b5a5941440661e2f306ff4ac30903802dc52031c7e9199ac640") - version( - "0.23.2", - sha256="20766f515e6cd6f954554387dfae705d93c7b544ec0e6c6a5d8e006f6f7ef480", - deprecated=True, - ) - version( - "0.23.1", - sha256="e3fec1c8831f8f93ad85581ca29ca1bb88e2da377fb097cf8322aa89c21bc9b8", - deprecated=True, - ) - version( - "0.23.0", - sha256="639a53df6273acc6a7510fb0c658b94e0c70bb13dafff9d14932c981ff9baff4", - deprecated=True, - ) - version( - "0.22.2.post1", - sha256="57538d138ba54407d21e27c306735cbd42a6aae0df6a5a30c7a6edde46b0017d", - deprecated=True, - ) - version( - "0.22.1", - sha256="51ee25330fc244107588545c70e2f3570cfc4017cff09eed69d6e1d82a212b7d", - deprecated=True, - ) - version( - "0.22", - sha256="314abf60c073c48a1e95feaae9f3ca47a2139bd77cebb5b877c23a45c9e03012", - deprecated=True, - ) - - depends_on("c", type="build") - depends_on("cxx", type="build") - - # Based on PyPI wheel availability + with default_args(type=("build", "link", "run")): - depends_on("python@3.10:3.13", when="@1.7:") + # Based on PyPI wheel availability + depends_on("python@3.11:3.14", when="@1.8:") + depends_on("python@3.10:3.14", when="@1.7.2") + depends_on("python@3.10:3.13", when="@1.7.0:1.7.1") depends_on("python@3.9:3.13", when="@1.5.2:1.6") depends_on("python@3.9:3.12", when="@1.4:1.5.1") depends_on("python@3.8:3.12", when="@1.3.1:1.3") @@ -90,43 +61,48 @@ class PyScikitLearn(PythonPackage): depends_on("python@3.8:3.10", when="@1.1.0:1.1.2") depends_on("python@:3.10", when="@1.0.2") depends_on("python@:3.9", when="@0.24:1.0.1") - depends_on("python@:3.8", when="@0.22:0.23") - - with default_args(type="build"): - depends_on("py-meson-python@0.16:", when="@1.5.1:") - depends_on("py-meson-python@0.15:", when="@1.5:") - depends_on("py-cython@3.0.10:", when="@1.5:") - depends_on("py-cython@3.0.8:", when="@1.4.2:") - depends_on("py-cython@0.29.33:", when="@1.4.0:1.4.1") - depends_on("py-cython@0.29.33:2", when="@1.3") - depends_on("py-cython@0.29.24:2", when="@1.0.2:1.2") - depends_on("py-cython@0.28.5:2", when="@0.21:1.0.1") - - with default_args(type=("build", "link", "run")): + depends_on("py-numpy@1.24.1:", when="@1.8:") depends_on("py-numpy@1.22:", when="@1.7:") depends_on("py-numpy@1.19.5:", when="@1.4:") depends_on("py-numpy@1.17.3:", when="@1.1:") depends_on("py-numpy@1.14.6:", when="@1.0:") depends_on("py-numpy@1.13.3:", when="@0.23:") - depends_on("py-numpy@1.11.0:", when="@0.21:") # https://github.com/scikit-learn/scikit-learn/issues/27075 depends_on("py-numpy@:1", when="@:1.4.1") with default_args(type=("build", "run")): + depends_on("py-scipy@1.10:", when="@1.8:") depends_on("py-scipy@1.8:", when="@1.7:") depends_on("py-scipy@1.6:", when="@1.4:") depends_on("py-scipy@1.5:", when="@1.3:") 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-scipy@0.17.0:", when="@0.21:") + 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-threadpoolctl@3.2:", when="@1.8:") depends_on("py-threadpoolctl@3.1:", when="@1.5:") depends_on("py-threadpoolctl@2.0:", when="@0.23:") + with default_args(type="build"): + # Upper bounds are only for long-term stability, can safely be ignored unless known issues + # https://github.com/scikit-learn/scikit-learn/pull/32151 + depends_on("py-meson-python@0.17.1:", when="@1.7.1:") + depends_on("py-meson-python@0.16:", when="@1.5.1:") + depends_on("py-meson-python@0.15:", when="@1.5:") + depends_on("py-cython@3.1.2:", when="@1.8:") + depends_on("py-cython@3.0.10:", when="@1.5:") + depends_on("py-cython@3.0.8:", when="@1.4.2:") + depends_on("py-cython@0.29.33:", when="@1.4.0:1.4.1") + depends_on("py-cython@0.29.33:2", when="@1.3") + depends_on("py-cython@0.29.24:2", when="@1.0.2:1.2") + depends_on("py-cython@0.28.5:2", when="@0.21:1.0.1") + depends_on("c") + depends_on("cxx") + depends_on("llvm-openmp", when="%apple-clang") # Historical dependencies @@ -143,8 +119,9 @@ def url_for_version(self, version): return url.format(name, version) def setup_build_environment(self, env: EnvironmentModifications) -> None: - # Enable parallel builds of the sklearn backend - env.append_flags("SKLEARN_BUILD_PARALLEL", str(make_jobs)) + if self.spec.satisfies("@:1.4"): + # Enable parallel builds for the pre py-meson-python build system + env.append_flags("SKLEARN_BUILD_PARALLEL", str(make_jobs)) # https://scikit-learn.org/stable/developers/advanced_installation.html#macos if self.spec.satisfies("%apple-clang"): diff --git a/repos/spack_repo/builtin/packages/py_scikit_matter/package.py b/repos/spack_repo/builtin/packages/py_scikit_matter/package.py new file mode 100644 index 00000000000..df825d99db5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_scikit_matter/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 PyScikitMatter(PythonPackage): + """Toolbox of methods developed in the computational chemical and materials science community + following the scikit-learn API.""" + + homepage = "https://scikit-matter.readthedocs.io/en/latest/" + pypi = "skmatter/skmatter-0.3.2.tar.gz" + + maintainers("RMeli") + + license("BSD3-Clause", checked_by="RMeli") + + version("0.3.2", sha256="2af37cb094658645d7f67492b35344fc23768568108cca425c1ed5bcfd261f2b") + + variant("examples", default=False, description="Examples") + + # pyproject.toml + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-setuptools@77:", type="build") + depends_on("py-setuptools-scm@8:", type="build") + + depends_on("py-scikit-learn@1.7", type=("build", "run")) + depends_on("py-scipy@1.15:", type=("build", "run")) + + depends_on("py-matplotlib", type=("build", "run"), when="+examples") + depends_on("py-pandas", type=("build", "run"), when="+examples") + depends_on("py-tqdm", type=("build", "run"), when="+examples") diff --git a/repos/spack_repo/builtin/packages/py_scikit_optimize/package.py b/repos/spack_repo/builtin/packages/py_scikit_optimize/package.py index 31aaa3e0ded..3d7f7883cd3 100644 --- a/repos/spack_repo/builtin/packages/py_scikit_optimize/package.py +++ b/repos/spack_repo/builtin/packages/py_scikit_optimize/package.py @@ -15,28 +15,41 @@ class PyScikitOptimize(PythonPackage): The library is built on top of NumPy, SciPy and Scikit-Learn.""" - homepage = "https://scikit-optimize.github.io" - pypi = "scikit-optimize/scikit-optimize-0.5.2.tar.gz" - git = "https://github.com/scikit-optimize/scikit-optimize.git" + homepage = "https://scikit-optimize.readthedocs.io" + pypi = "scikit-optimize/scikit_optimize-0.10.2.tar.gz" + git = "https://github.com/holgern/scikit-optimize.git" maintainers("liuyangzhuan") license("BSD-3-Clause") - version("master", branch="master") + version("main", branch="main") + version("0.10.2", sha256="00a3d91bf9015e292b6e7aaefe7e6cb95e8d25ce19adafd2cd88849e1a0b0da0") version("0.9.0", sha256="77d8c9e64947fc9f5cc05bbc6aed7b8a9907871ae26fe11997fd67be90f26008") version("0.5.2", sha256="1d7657a4b8ef9aa6d81e49b369c677c584e83269f11710557741d3b3f8fa0a75") variant("plots", default=True, description="Build with plot support from py-matplotlib") + depends_on("py-setuptools@61.2:", when="@0.10.2:", type="build") depends_on("py-setuptools", type="build") - depends_on("py-numpy", type=("build", "run")) + depends_on("py-numpy@1.20.3:", when="@0.10.2:", type=("build", "run")) depends_on("py-numpy@1.13.3:", when="@0.9:", type=("build", "run")) - depends_on("py-scipy@0.14:", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy@1.1.0:", when="@0.10.2:", type=("build", "run")) depends_on("py-scipy@0.19.1:", when="@0.9:", type=("build", "run")) - depends_on("py-scikit-learn@0.19.1:", type=("build", "run")) + depends_on("py-scipy@0.14:", type=("build", "run")) + depends_on("py-scikit-learn@1.0.0:", when="@0.10.2:", type=("build", "run")) depends_on("py-scikit-learn@0.20:", when="@0.9:", type=("build", "run")) + depends_on("py-scikit-learn@0.19.1:", type=("build", "run")) depends_on("py-pyaml@16.9:", when="@0.9:", type=("build", "run")) depends_on("py-joblib@0.11:", when="@0.9:", type=("build", "run")) depends_on("py-matplotlib", when="+plots") depends_on("py-matplotlib@2:", when="@0.9:+plots") + + def url_for_version(self, version): + url = "https://pypi.org/packages/source/s/scikit-optimize/scikit{}optimize-{}.tar.gz" + if version < Version("0.10.2"): + separator = "-" + else: + separator = "_" + return url.format(separator, version) diff --git a/repos/spack_repo/builtin/packages/py_scikits_odes/package.py b/repos/spack_repo/builtin/packages/py_scikits_odes/package.py index 91942f223bc..992568a0a10 100644 --- a/repos/spack_repo/builtin/packages/py_scikits_odes/package.py +++ b/repos/spack_repo/builtin/packages/py_scikits_odes/package.py @@ -52,5 +52,5 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: @on_package_attributes(run_tests=True) def install_test(self): with working_dir("spack-test", create=True): - pytest = which("pytest") + pytest = which("pytest", required=True) pytest(join_path(python_purelib, "scikits", "odes", "tests")) diff --git a/repos/spack_repo/builtin/packages/py_scipy/package.py b/repos/spack_repo/builtin/packages/py_scipy/package.py index 0a9eb08be18..506b82c727a 100644 --- a/repos/spack_repo/builtin/packages/py_scipy/package.py +++ b/repos/spack_repo/builtin/packages/py_scipy/package.py @@ -19,6 +19,11 @@ class PyScipy(PythonPackage): license("BSD-3-Clause") version("main", branch="main") + version("1.17.1", sha256="95d8e012d8cb8816c226aef832200b1d45109ed4464303e997c5b13122b297c0") + version("1.17.0", sha256="2591060c8e648d8b96439e111ac41fd8342fdeff1876be2e19dea3fe8930454e") + version("1.16.3", sha256="01e87659402762f43bd2fee13370553a17ada367d42e7487800bf2916535aecb") + version("1.16.2", sha256="af029b153d243a80afb6eabe40b0a07f8e35c9adc269c019f364ad747f826a6b") + version("1.16.1", sha256="44c76f9e8b6e8e488a586190ab38016e4ed2f8a038af7cd3defa903c0a2238b3") version("1.16.0", sha256="b5ef54021e832869c8cfb03bc3bf20366cbcd426e02a58e8a58d7584dfbb8f62") version("1.15.3", sha256="eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf") version("1.15.2", sha256="cd58a314d92838f7e6f755c8a2167ead4f27e1fd5c1251fd54289569ef3495ec") @@ -46,20 +51,6 @@ class PyScipy(PythonPackage): version("1.7.2", sha256="fa2dbabaaecdb502641b0b3c00dec05fb475ae48655c66da16c9ed24eda1e711") version("1.7.1", sha256="6b47d5fa7ea651054362561a28b1ccc8da9368a39514c1bbf6c0977a1c376764") version("1.7.0", sha256="998c5e6ea649489302de2c0bc026ed34284f531df89d2bdc8df3a0d44d165739") - with default_args(deprecated=True): - version("1.6.3", sha256="a75b014d3294fce26852a9d04ea27b5671d86736beb34acdfc05859246260707") - version("1.6.2", sha256="e9da33e21c9bc1b92c20b5328adb13e5f193b924c9b969cd700c8908f315aa59") - version("1.6.1", sha256="c4fceb864890b6168e79b0e714c585dbe2fd4222768ee90bc1aa0f8218691b11") - version("1.6.0", sha256="cb6dc9f82dfd95f6b9032a8d7ea70efeeb15d5b5fd6ed4e8537bb3c673580566") - version("1.5.4", sha256="4a453d5e5689de62e5d38edf40af3f17560bfd63c9c5bd228c18c1f99afa155b") - version("1.5.3", sha256="ddae76784574cc4c172f3d5edd7308be16078dd3b977e8746860c76c195fa707") - version("1.5.2", sha256="066c513d90eb3fd7567a9e150828d39111ebd88d3e924cdfc9f8ce19ab6f90c9") - version("1.5.1", sha256="039572f0ca9578a466683558c5bf1e65d442860ec6e13307d528749cfe6d07b8") - version("1.5.0", sha256="4ff72877d19b295ee7f7727615ea8238f2d59159df0bdd98f91754be4a2767f0") - version("1.4.1", sha256="dee1bbf3a6c8f73b6b218cb28eed8dd13347ea2f87d572ce19b289d6fd3fbc59") - version("1.4.0", sha256="31f7cfa93b01507c935c12b535e24812594002a02a56803d7cd063e9920d25e8") - version("1.3.3", sha256="64bf4e8ae0db2d42b58477817f648d81e77f0b381d0ea4427385bba3f959380a") - version("1.3.2", sha256="a03939b431994289f39373c57bbe452974a7da724ae7f9620a1beee575434da4") depends_on("c", type="build") depends_on("cxx", type="build") @@ -67,7 +58,8 @@ class PyScipy(PythonPackage): # Based on wheel availability on PyPI with default_args(type=("build", "link", "run")): - depends_on("python@3.11:3.13", when="@1.16:") + depends_on("python@3.11:3.14", when="@1.16.1:") + depends_on("python@3.11:3.13", when="@1.16.0") depends_on("python@3.10:3.13", when="@1.14.1:1.15") depends_on("python@3.10:3.12", when="@1.14.0") depends_on("python@3.9:3.12", when="@1.11.2:1.13") @@ -75,10 +67,14 @@ class PyScipy(PythonPackage): depends_on("python@3.8:3.10", when="@1.8:1.9.1") depends_on("python@:3.10", when="@1.7.2:1.7") depends_on("python@:3.9", when="@1.5.4:1.7.1") - depends_on("python@:3.8", when="@1.3.2:1.5.3") # Build dependencies (do not include upper bound unless known issues) with default_args(type="build"): + # from meson.build + depends_on("meson@1.5:", when="@1.15:") + depends_on("meson@1.1:", when="@1.11:") + depends_on("meson@0.64:") + # from pyproject.toml depends_on("py-meson-python@0.15:", when="@1.12:") depends_on("py-meson-python@0.12.1:", when="@1.11:") depends_on("py-meson-python@0.11:", when="@1.10:") @@ -97,8 +93,6 @@ class PyScipy(PythonPackage): depends_on("py-pybind11@2.10.4:", when="@1.11:") depends_on("py-pybind11@2.10.1:", when="@1.10:") depends_on("py-pybind11@2.4.3:", when="@1.5:") - depends_on("py-pybind11@2.4.0:", when="@1.4.1:") - depends_on("py-pybind11@2.2.4:", when="@1.4.0:") depends_on("py-pythran@0.14:", when="@1.13:") depends_on("py-pythran@0.15:", when="@1.12") depends_on("py-pythran@0.12:", when="@1.10:") @@ -109,7 +103,8 @@ class PyScipy(PythonPackage): # Run dependencies with default_args(type=("build", "link", "run")): - depends_on("py-numpy@1.25.2:2.5", when="@1.16:") + depends_on("py-numpy@1.26.4:2.6", when="@1.17:") + depends_on("py-numpy@1.25.2:2.5", when="@1.16") depends_on("py-numpy@1.23.5:2.4", when="@1.15") depends_on("py-numpy@1.23.5:2.2", when="@1.14") depends_on("py-numpy@1.22.4:2.2", when="@1.13") @@ -119,12 +114,10 @@ class PyScipy(PythonPackage): depends_on("py-numpy@1.18.5:1.25", when="@1.9") depends_on("py-numpy@1.17.3:1.24", when="@1.8") depends_on("py-numpy@1.16.5:1.22", when="@1.6:1.7") - depends_on("py-numpy@1.14.5:1.21", when="@1.5") - depends_on("py-numpy@1.13.3:1.21", when="@1.3:1.4") # Test dependencies with default_args(type="test"): - depends_on("py-pytest") + depends_on("py-pytest@8:") depends_on("py-pooch") depends_on("py-hypothesis@6.30:") @@ -136,6 +129,7 @@ class PyScipy(PythonPackage): depends_on("lapack@3.4.1:") depends_on("lapack") depends_on("blas") + conflicts("^openblas +ilp64", msg="SciPy requires a blas library with lp64 symbols") # Historical dependencies with default_args(type="build"): @@ -143,7 +137,6 @@ class PyScipy(PythonPackage): depends_on("py-setuptools", when="@:1.8") depends_on("py-setuptools@:59", when="@1.8") depends_on("py-setuptools@:57", when="@1.7") - depends_on("py-setuptools@:51.0.0", when="@1.6") # meson.build # https://docs.scipy.org/doc/scipy/dev/toolchain.html#compilers @@ -180,18 +173,7 @@ class PyScipy(PythonPackage): # https://docs.scipy.org/doc//scipy-1.10.1/release.1.7.3.html conflicts("platform=darwin target=aarch64:", when="@:1.7.2") - # https://github.com/scipy/scipy/pull/11324 - conflicts("@1.4.0:1.4.1", when="target=ppc64le:") - - # https://github.com/scipy/scipy/issues/12860 - patch( - "https://git.sagemath.org/sage.git/plain/build/pkgs/scipy/patches/extern_decls.patch?id=711fe05025795e44b84233e065d240859ccae5bd", - sha256="5433f60831cb554101520a8f8871ac5a32c95f7a971ccd68b69049535b106780", - when="@:1.5.3", - ) - - patch("scipy-clang.patch", when="@1.5.0:1.6.3 %clang") - + # DH* STILL NEEDED? NOT IN UPSTREAM # On macOS with GNU gcc instead of Apple/LLVM clang: # build/src.macosx-12-x86_64-3.9/scipy/integrate/vodemodule.c:94:10: # fatal error: threads.h: No such file or directory @@ -202,6 +184,7 @@ class PyScipy(PythonPackage): patch("use_stdc_no_threads.patch", when="platform=darwin %gcc") # Additional changes needed for scipy-1.8.0 patch("use_stdc_no_threads_scipy180_addon.patch", when="@1.8: platform=darwin %gcc") + # *DH # https://github.com/scipy/scipy/issues/21884 patch( @@ -234,12 +217,6 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: # https://github.com/scipy/scipy/issues/9080 env.set("F90", spack_fc) - # https://github.com/scipy/scipy/issues/11611 - if self.spec.satisfies("@:1.4 %gcc@10:"): - env.set("FFLAGS", "-fallow-argument-mismatch") - if self.spec.satisfies("^py-numpy@1.16:1.17"): - env.set("NPY_DISTUTILS_APPEND_FLAGS", "1") - # https://github.com/scipy/scipy/issues/14935 # Newer pythran versions 0.12+ work with newer Intel compilers only for py-scipy. # Tested to work: intel@2022.0.1; tested to not work: 19.1.1.217; in between unknown @@ -255,7 +232,12 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: @when("@1.9:") def config_settings(self, spec, prefix): - blas, lapack = self["py-numpy"].blas_lapack_pkg_config() + blas, lapack, use_ilp64 = self["py-numpy"].blas_lapack_pkg_config() + + if use_ilp64: + tty.warn("SciPy does not support ILP64 currently! Using LP64 libraries instead!") + blas = blas.replace("ilp64", "lp64") + lapack = lapack.replace("ilp64", "lp64") if spec.satisfies("%aocc") or spec.satisfies("%clang@18:"): fortran_std = "none" @@ -264,7 +246,6 @@ def config_settings(self, spec, prefix): return { "builddir": "build", - "compile-args": f"-j{make_jobs}", "setup-args": { # http://scipy.github.io/devdocs/building/blas_lapack.html "-Dfortran_std": fortran_std, diff --git a/repos/spack_repo/builtin/packages/py_scipy/scipy-clang.patch b/repos/spack_repo/builtin/packages/py_scipy/scipy-clang.patch deleted file mode 100644 index dcca99bd85e..00000000000 --- a/repos/spack_repo/builtin/packages/py_scipy/scipy-clang.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/scipy/special/_faddeeva.cxx b/scipy/special/_faddeeva.cxx -index 9134516..159122c 100644 ---- a/scipy/special/_faddeeva.cxx -+++ b/scipy/special/_faddeeva.cxx -@@ -130,7 +130,7 @@ double faddeeva_voigt_profile(double x, double sigma, double gamma) - - if(sigma == 0){ - if (gamma == 0){ -- if (isnan(x)) -+ if (std::isnan(x)) - return x; - if (x == 0) - return NPY_INFINITY; diff --git a/repos/spack_repo/builtin/packages/py_scitokens/package.py b/repos/spack_repo/builtin/packages/py_scitokens/package.py new file mode 100644 index 00000000000..09bd55f35c3 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_scitokens/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 PyScitokens(PythonPackage): + """SciToken reference implementation library.""" + + homepage = "https://scitokens.org" + pypi = "scitokens/scitokens-1.9.7.tar.gz" + git = "https://github.com/scitokens/scitokens.git" + + maintainers("wdconinc") + + license("Apache-2.0", checked_by="wdconinc") + + version("1.9.7", sha256="9aabefbd68859e94a3909f3dc08bd73c0e7a9c08203c16de338c9512ace821e3") + + with default_args(type="build"): + depends_on("py-setuptools") + + with default_args(type=("build", "run")): + depends_on("py-cryptography") + depends_on("py-pyjwt@1.6.1:") + depends_on("py-requests") diff --git a/repos/spack_repo/builtin/packages/py_scooby/package.py b/repos/spack_repo/builtin/packages/py_scooby/package.py index 6eb729350d6..20d7e67fef0 100644 --- a/repos/spack_repo/builtin/packages/py_scooby/package.py +++ b/repos/spack_repo/builtin/packages/py_scooby/package.py @@ -15,6 +15,7 @@ class PyScooby(PythonPackage): license("MIT") + version("0.11.0", sha256="3dfacc6becf2d6558efa4b625bae3b844ced5d256f3143ebf774e005367e712a") version("0.10.0", sha256="7ea33c262c0cc6a33c6eeeb5648df787be4f22660e53c114e5fff1b811a8854f") version("0.5.7", sha256="ae2c2b6f5f5d10adf7aaab32409028f1e28d3ce833664bdd1e8c2072e8da169a") diff --git a/repos/spack_repo/builtin/packages/py_scoop/package.py b/repos/spack_repo/builtin/packages/py_scoop/package.py index 377449c0539..8cd990a05ab 100644 --- a/repos/spack_repo/builtin/packages/py_scoop/package.py +++ b/repos/spack_repo/builtin/packages/py_scoop/package.py @@ -18,6 +18,7 @@ class PyScoop(PythonPackage): license("LGPL-3.0-only") + version("0.7.2.0", sha256="7658faf751627f5507b6f636794721d89db1771234a36e1378ee6796dd7ee761") version("0.7.1.1", sha256="d8b6444c7bac901171e3327a97e241dde63f060354e162a65551fd8083ca62b4") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_scs/package.py b/repos/spack_repo/builtin/packages/py_scs/package.py index f13c7fbb8ea..41632f8cd75 100644 --- a/repos/spack_repo/builtin/packages/py_scs/package.py +++ b/repos/spack_repo/builtin/packages/py_scs/package.py @@ -19,6 +19,7 @@ class PyScs(PythonPackage, CudaPackage): license("MIT") + version("3.2.11", sha256="2a5455cf2093d07f84f2f848c199faed52e79cdb3a11fe250b5622b6bbac4913") version("3.2.2", sha256="7206a2ad27ca031d693d65cbcbcfc661498f3983838079a66579bcc784b25293") version("2.1.1-2", sha256="f816cfe3d4b4cff3ac2b8b96588c5960ddd2a3dc946bda6b09db04e7bc6577f2") @@ -33,7 +34,12 @@ class PyScs(PythonPackage, CudaPackage): depends_on("c", type="build") # generated - depends_on("py-setuptools", type="build") + # from pyproject.toml since version 3.2.4 + depends_on("py-meson-python", type="build", when="@3.2.4:") + # from pyproject.toml of version 3.2.3 + depends_on("py-setuptools@:65.5", type="build", when="@:3.2.3") + # from pyproject.toml since version 3.2.5 + depends_on("py-numpy@2:", type=("build", "run"), when="@3.2.5:") depends_on("py-numpy@1.7:", type=("build", "run")) depends_on("py-scipy@0.13.2:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_sdnotify/package.py b/repos/spack_repo/builtin/packages/py_sdnotify/package.py new file mode 100644 index 00000000000..655b801b740 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_sdnotify/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PySdnotify(PythonPackage): + """This is a pure Python implementation of the systemd sd_notify protocol.""" + + homepage = "https://github.com/bb4242/sdnotify" + pypi = "sdnotify/sdnotify-0.3.2.tar.gz" + + license("MIT", checked_by="bgeltz") + + version("0.3.2", sha256="73977fc746b36cc41184dd43c3fe81323e7b8b06c2bb0826c4f59a20c56bb9f1") + + depends_on("python@3", type=("build", "run")) + depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_segmentation_models_pytorch/package.py b/repos/spack_repo/builtin/packages/py_segmentation_models_pytorch/package.py index a7610dd66c3..2736fd8e9c9 100644 --- a/repos/spack_repo/builtin/packages/py_segmentation_models_pytorch/package.py +++ b/repos/spack_repo/builtin/packages/py_segmentation_models_pytorch/package.py @@ -18,42 +18,21 @@ class PySegmentationModelsPytorch(PythonPackage): version("0.5.0", sha256="cabba8aced6ef7bdcd6288dd9e1dc2840848aa819d539c455bd07aeceb2fdf96") version("0.4.0", sha256="8833e63f0846090667be6fce05a2bbebbd1537776d3dea72916aa3db9e22e55b") - with default_args(deprecated=True): - version("0.3.4", sha256="f4aee7f6add479bd3c3953e855b7055fc657dc6800bf7fc8ab733fd7f8acb163") - version("0.3.3", sha256="b3b21ab4cd26a6b2b9e7a6ed466ace6452eb26ed3c31ae491ea2d7cbb01e384b") - version("0.3.2", sha256="8372733e57a10cb8f6b9e18a20577fbb3fb83549b6945664dc774a9b6d3ecd13") - version("0.3.1", sha256="d4a4817cf48872c3461bb7d22864c00f9d491719a6460adb252c035f9b0e8d51") - version("0.3.0", sha256="8e00ed1707698d309d23f207aef15f21465e091aa0f1dc8043ec3300f5f67216") - version("0.2.1", sha256="86744552b04c6bedf7e10f7928791894d8d9b399b9ed58ed1a3236d2bf69ead6") - version("0.2.0", sha256="247266722c23feeef16b0862456c5ce815e5f0a77f95c2cd624a71bf00d955df") with default_args(type="build"): - depends_on("py-setuptools@61:", when="@0.4:") - depends_on("py-setuptools") + depends_on("py-setuptools@61:") with default_args(type=("build", "run")): - depends_on("py-huggingface-hub@0.24:", when="@0.4:") - depends_on("py-huggingface-hub@0.24.6:", when="@0.3.4:0.3") - depends_on("py-numpy@1.19.3:", when="@0.4:") - depends_on("pil@8:", when="@0.4:") - depends_on("pil", when="@0.3:") + depends_on("py-huggingface-hub@0.24:") + depends_on("py-numpy@1.19.3:") + depends_on("pil@8:") depends_on("py-safetensors@0.3.1:", when="@0.5:") - depends_on("py-timm@0.9:", when="@0.4:") - depends_on("py-timm@0.9.7", when="@0.3.4") - depends_on("py-timm@0.9.2", when="@0.3.3") - depends_on("py-timm@0.6.12", when="@0.3.2") - depends_on("py-timm@0.4.12", when="@:0.3.1") - depends_on("py-torch@1.8:", when="@0.4:") - depends_on("py-torchvision@0.9:", when="@0.4:") - depends_on("py-torchvision@0.5:") - depends_on("py-tqdm@4.42.1:", when="@0.4:") - depends_on("py-tqdm", when="@0.3:") + depends_on("py-timm@0.9:") + depends_on("py-torch@1.8:") + depends_on("py-torchvision@0.9:") + depends_on("py-tqdm@4.42.1:") # Historical dependencies depends_on("py-efficientnet-pytorch@0.6.1:", when="@0.4") - depends_on("py-efficientnet-pytorch@0.7.1", when="@0.3") - depends_on("py-efficientnet-pytorch@0.6.3", when="@0.2") depends_on("py-pretrainedmodels@0.7.1:", when="@0.4") - depends_on("py-pretrainedmodels@0.7.4", when="@:0.3") depends_on("py-six@1.5:", when="@0.4") - depends_on("py-six", when="@0.3.4") diff --git a/repos/spack_repo/builtin/packages/py_semver/package.py b/repos/spack_repo/builtin/packages/py_semver/package.py index a20e14ca342..0a2f300862e 100644 --- a/repos/spack_repo/builtin/packages/py_semver/package.py +++ b/repos/spack_repo/builtin/packages/py_semver/package.py @@ -16,8 +16,10 @@ class PySemver(PythonPackage): license("BSD-3-Clause") + version("3.0.4", sha256="afc7d8c584a5ed0a11033af086e8af226a9c0b206f313e0301f8dd7b6b589602") 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_send2trash/package.py b/repos/spack_repo/builtin/packages/py_send2trash/package.py index 668cb5b30fc..b48f88dfd2b 100644 --- a/repos/spack_repo/builtin/packages/py_send2trash/package.py +++ b/repos/spack_repo/builtin/packages/py_send2trash/package.py @@ -15,8 +15,11 @@ class PySend2trash(PythonPackage): license("BSD-3-Clause") + version("2.1.0", sha256="7503447b1ae6ce211a71b0325acb7455e8397e3cea516043e52b79a5dd8949ee") version("1.8.3", sha256="90bcdf2ed2a18b687040c0f58bfccd6ad2e1b7ec495a9903119dc3c47c615052") version("1.8.0", sha256="937b038abd9f1e7b8c5d7a116be5dc4663beb71df74dcccffe56cacf992c7a9c") version("1.5.0", sha256="7cebc0ffc8b6d6e553bce9c6bb915614610ba2dec17c2f0643b1b97251da2a41") - depends_on("py-setuptools", type="build") + with default_args(type="build"): + depends_on("py-setuptools@75.3.1:", when="@2:") + depends_on("py-setuptools") diff --git a/repos/spack_repo/builtin/packages/py_sentencepiece/package.py b/repos/spack_repo/builtin/packages/py_sentencepiece/package.py index e5b2812e727..44fac75d756 100644 --- a/repos/spack_repo/builtin/packages/py_sentencepiece/package.py +++ b/repos/spack_repo/builtin/packages/py_sentencepiece/package.py @@ -20,6 +20,7 @@ class PySentencepiece(PythonPackage): license("Apache-2.0") + version("0.2.1", sha256="c1a59e9259c9653ad0ade653dadff074cd31f0a6ff2a11316f67bee4189a8f1b") version("0.1.91", sha256="acbc7ea12713cd2a8d64892f8d2033c7fd2bb4faecab39452496120ace9a4b1b") version("0.1.85", sha256="dd4956287a1b6af3cbdbbd499b7227a859a4e3f41c9882de5e6bdd929e219ae6") @@ -28,7 +29,9 @@ class PySentencepiece(PythonPackage): depends_on("sentencepiece") depends_on("sentencepiece@0.1.85", when="@0.1.85") depends_on("sentencepiece@0.1.91", when="@0.1.91") + depends_on("sentencepiece@0.2.1", when="@0.2.1") depends_on("pkgconfig", type="build") + depends_on("py-setuptools@61:", when="@0.2.1:", type="build") depends_on("py-setuptools", type="build") build_directory = "python" diff --git a/repos/spack_repo/builtin/packages/py_sentry_sdk/package.py b/repos/spack_repo/builtin/packages/py_sentry_sdk/package.py index cdf279ab30c..c6bb1429647 100644 --- a/repos/spack_repo/builtin/packages/py_sentry_sdk/package.py +++ b/repos/spack_repo/builtin/packages/py_sentry_sdk/package.py @@ -15,6 +15,7 @@ class PySentrySdk(PythonPackage): license("MIT") + version("2.34.1", sha256="69274eb8c5c38562a544c3e9f68b5be0a43be4b697f5fd385bf98e4fbe672687") version("1.5.5", sha256="98fd155fa5d5fec1dbabed32a1a4ae2705f1edaa5dae4e7f7b62a384ba30e759") version("0.17.6", sha256="1a086486ff9da15791f294f6e9915eb3747d161ef64dee2d038a4d0b4a369b24") @@ -23,10 +24,7 @@ class PySentrySdk(PythonPackage): variant("bottle", default=False, description="Builts with bottle") variant("falcon", default=False, description="Builts with falcon") variant("django", default=False, description="Builts with django") - variant("sanic", default=False, description="Builts with sanic") variant("celery", default=False, description="Builts with celery") - variant("beam", default=False, description="Builts with beam") - variant("rq", default=False, description="Builts with rq") variant("aiohttp", default=False, description="Builts with aiohttp") variant("tornado", default=False, description="Builts with tornado") variant("sqlalchemy", default=False, description="Builts with sqlalchemy") @@ -35,23 +33,24 @@ class PySentrySdk(PythonPackage): variant("chalice", default=False, description="Builts with chalice") variant("httpx", default=False, when="@1.5.5:", description="Builts with httpx") - depends_on("python@2.7,3.4:", type=("build", "run")) + depends_on("python@3.6:", type=("build", "run"), when="@2:") + depends_on("python@2.7,3.4:", type=("build", "run"), when="@:1") depends_on("py-setuptools", type="build") + depends_on("py-urllib3@1.26.11:", type=("build", "run"), when="@2.34.1:") depends_on("py-urllib3@1.10.0:", type=("build", "run")) depends_on("py-certifi", type=("build", "run")) depends_on("py-flask@0.11:", type=("build", "run"), when="+flask") depends_on("py-blinker@1.1:", type=("build", "run"), when="+flask") + depends_on("py-markupsafe", type=("build", "run"), when="@1.23: +flask") depends_on("py-quart@0.16.1:", type=("build", "run"), when="+quart") depends_on("py-blinker@1.1:", type=("build", "run"), when="+quart") depends_on("py-bottle@0.12.13:", type=("build", "run"), when="+bottle") depends_on("py-falcon@1.4:", type=("build", "run"), when="+falcon") depends_on("py-django@1.8:", type=("build", "run"), when="+django") - depends_on("py-sanic@0.8:", type=("build", "run"), when="+sanic") depends_on("py-celery@3:", type=("build", "run"), when="+celery") - depends_on("py-apache-beam@2.12:", type=("build", "run"), when="+beam") - depends_on("py-rq@0.6:", type=("build", "run"), when="+rq") depends_on("py-aiohttp@3.5:", type=("build", "run"), when="+aiohttp") + depends_on("py-tornado@6:", type=("build", "run"), when="@2.7.1: +tornado") depends_on("py-tornado@5:", type=("build", "run"), when="+tornado") depends_on("py-sqlalchemy@1.2:", type=("build", "run"), when="+sqlalchemy") depends_on("py-pyspark@2.4.4:", type=("build", "run"), when="+pyspark") @@ -60,3 +59,11 @@ class PySentrySdk(PythonPackage): depends_on("py-asttokens", type=("build", "run"), when="+pure_eval") depends_on("py-chalice@1.16.0:", type=("build", "run"), when="+chalice") depends_on("py-httpx@0.16.0:", type=("build", "run"), when="+httpx") + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/s/sentry-sdk/sentry{0}sdk-{1}.tar.gz" + if version >= Version("1.45.1"): + dash = "_" + else: + dash = "-" + return url.format(dash, version) diff --git a/repos/spack_repo/builtin/packages/py_serpent/package.py b/repos/spack_repo/builtin/packages/py_serpent/package.py index 7a696204c63..66e68f6e4ca 100644 --- a/repos/spack_repo/builtin/packages/py_serpent/package.py +++ b/repos/spack_repo/builtin/packages/py_serpent/package.py @@ -20,6 +20,7 @@ class PySerpent(PythonPackage): license("MIT") + version("1.42", sha256="8ea082b01f8ba07ecd74e34a9118ac4521bc4594938d912b808c89f1da425506") version("1.40", sha256="10b34e7f8e3207ee6fb70dcdc9bce473851ee3daf0b47c58aec1b48032ac11ce") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_setuptools/package.py b/repos/spack_repo/builtin/packages/py_setuptools/package.py index 07689394f7e..e98c09ef450 100644 --- a/repos/spack_repo/builtin/packages/py_setuptools/package.py +++ b/repos/spack_repo/builtin/packages/py_setuptools/package.py @@ -16,6 +16,7 @@ class PySetuptools(Package, PythonExtension): url = "https://files.pythonhosted.org/packages/py3/s/setuptools/setuptools-62.3.2-py3-none-any.whl" list_url = "https://pypi.org/simple/setuptools/" + license("MIT") maintainers("RobertMaaskant") tags = ["build-tools"] @@ -23,6 +24,8 @@ class PySetuptools(Package, PythonExtension): # Requires railroad skip_modules = ["setuptools._vendor", "pkg_resources._vendor"] + version("82.0.1", sha256="a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb") + version("82.0.0", sha256="70b18734b607bd1da571d097d236cfcfacaf01de45717d59e6e04b96877532e0") version("80.9.0", sha256="062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922") version("79.0.1", sha256="e147c0549f27767ba362f9da434eab9c5dc0045d5304feb602a0af001089fc51") version("78.1.1", sha256="c3a9c4211ff4c309edb8b8c4f1cbfa7ae324c4ba9f91ff254e3d305b9fd54561") @@ -62,74 +65,6 @@ class PySetuptools(Package, PythonExtension): version("58.2.0", sha256="2551203ae6955b9876741a26ab3e767bb3242dafe86a32a749ea0d78b6792f11") version("57.4.0", sha256="a49230977aa6cfb9d933614d2f7b79036e9945c4cdd7583163f4e920b83418d6") - with default_args(deprecated=True): - version( - "57.1.0", sha256="ddae4c1b9220daf1e32ba9d4e3714df6019c5b583755559be84ff8199f7e1fe3" - ) - version( - "51.0.0", sha256="8c177936215945c9a37ef809ada0fab365191952f7a123618432bbfac353c529" - ) - version( - "50.3.2", sha256="2c242a0856fbad7efbe560df4a7add9324f340cf48df43651e9604924466794a" - ) - version( - "50.1.0", sha256="4537c77e6e7dc170081f8547564551d4ff4e4999717434e1257600bbd3a23296" - ) - version( - "49.6.0", sha256="4dd5bb0a0a0cff77b46ca5dd3a84857ee48c83e8223886b556613c724994073f" - ) - version( - "49.2.0", sha256="272c7f48f5cddc5af5901f4265274c421c7eede5c8bc454ac2903d3f8fc365e9" - ) - version( - "46.1.3", sha256="4fe404eec2738c20ab5841fa2d791902d2a645f32318a7850ef26f8d7215a8ee" - ) - version( - "44.1.1", sha256="27a714c09253134e60a6fa68130f78c7037e5562c4f21f8f318f2ae900d152d5" - ) - version( - "44.1.0", sha256="992728077ca19db6598072414fb83e0a284aca1253aaf2e24bb1e55ee6db1a30" - ) - version( - "43.0.0", sha256="a67faa51519ef28cd8261aff0e221b6e4c370f8fb8bada8aa3e7ad8945199963" - ) - version( - "41.4.0", sha256="8d01f7ee4191d9fdcd9cc5796f75199deccb25b154eba82d44d6a042cf873670" - ) - version( - "41.3.0", sha256="e9832acd9be6f3174f4c34b40e7d913a146727920cbef6465c1c1bd2d21a4ec4" - ) - version( - "41.0.1", sha256="c7769ce668c7a333d84e17fe8b524b1c45e7ee9f7908ad0a73e1eda7e6a5aebf" - ) - version( - "41.0.0", sha256="e67486071cd5cdeba783bd0b64f5f30784ff855b35071c8670551fd7fc52d4a1" - ) - version( - "40.8.0", sha256="e8496c0079f3ac30052ffe69b679bd876c5265686127a3159cfa415669b7f9ab" - ) - version( - "40.4.3", sha256="ce4137d58b444bac11a31d4e0c1805c69d89e8ed4e91fde1999674ecc2f6f9ff" - ) - version( - "40.2.0", sha256="ea3796a48a207b46ea36a9d26de4d0cc87c953a683a7b314ea65d666930ea8e6" - ) - version( - "39.2.0", sha256="8fca9275c89964f13da985c3656cb00ba029d7f3916b37990927ffdf264e7926" - ) - version( - "39.0.1", sha256="8010754433e3211b9cdbbf784b50f30e80bf40fc6b05eb5f865fab83300599b8" - ) - version( - "25.2.0", sha256="2845247c359bb91097ccf8f6be8a69edfa44847f3d2d5def39aa43c3d7f615ca" - ) - version( - "20.7.0", sha256="8917a52aa3a389893221b173a89dae0471022d32bff3ebc31a1072988aa8039d" - ) - version( - "20.6.7", sha256="9982ee4d279a2541dc1a7efee994ff9c535cfc05315e121e09df7f93da48c442" - ) - extends("python") with default_args(type=("build", "run")): @@ -137,20 +72,14 @@ class PySetuptools(Package, PythonExtension): depends_on("python@3.8:", when="@68.1:") depends_on("python@3.7:", when="@59.7:") depends_on("python@3.6:", when="@51:") - depends_on("python@3.5:", when="@44:") - depends_on("python@3.4:", when="@40:") - depends_on("python@3.3:", when="@30:") - - # Uses HTMLParser.unescape - depends_on("python@:3.8", when="@:41.0") - - # Uses collections.MutableMapping - depends_on("python@:3.9", when="@:40.4.2") # https://github.com/pypa/setuptools/issues/3661 depends_on("python@:3.11", when="@:67") + depends_on("python@:3.13", when="@:80") depends_on("py-pip", type="build") + # setuptools@80: ships _distutils which imports jaraco.functools.splat (added in 4.0) + depends_on("py-jaraco-functools@4:", when="@80:", type=("build", "run")) conflicts( "^python@:3.9 ^py-pip@25:", @@ -161,13 +90,8 @@ class PySetuptools(Package, PythonExtension): ) def url_for_version(self, version): - url = "https://files.pythonhosted.org/packages/{0}/s/setuptools/setuptools-{1}-{0}-none-any.whl" - - if version >= Version("45.1.0"): - python_tag = "py3" - else: - python_tag = "py2.py3" - return url.format(python_tag, version) + url = "https://files.pythonhosted.org/packages/py3/s/setuptools/setuptools-{}-py3-none-any.whl" + return url.format(version) def install(self, spec, prefix): # When setuptools changes its entry point we might get weird diff --git a/repos/spack_repo/builtin/packages/py_setuptools_cpp/package.py b/repos/spack_repo/builtin/packages/py_setuptools_cpp/package.py index 088189c2c45..f4759174d2a 100644 --- a/repos/spack_repo/builtin/packages/py_setuptools_cpp/package.py +++ b/repos/spack_repo/builtin/packages/py_setuptools_cpp/package.py @@ -19,30 +19,6 @@ class PySetuptoolsCpp(PythonPackage): version("0.1.0", sha256="4fd5e08603237578d06d28efd592d9847b523ede3e502f660be44b1e6254674d") - depends_on("py-setuptools", type="build") - depends_on("py-appdirs", type=("build", "run")) - depends_on("py-atomicwrites", type=("build", "run")) - depends_on("py-attrs", type=("build", "run")) - depends_on("py-black", type=("build", "run")) - depends_on("py-chardet", type=("build", "run")) - depends_on("py-colorama", type=("build", "run")) - depends_on("py-chardet", type=("build", "run")) - depends_on("py-certifi", type=("build", "run")) - depends_on("py-click", type=("build", "run")) - depends_on("py-coverage", type=("build", "run")) - depends_on("py-entrypoints", type=("build", "run")) - depends_on("py-flake8", type=("build", "run")) - depends_on("py-importlib-metadata", type=("build", "run")) - depends_on("py-isort", type=("build", "run")) - depends_on("py-jinja2", type=("build", "run")) - depends_on("py-markdown", type=("build", "run")) - depends_on("py-markupsafe", type=("build", "run")) - depends_on("py-mccabe", type=("build", "run")) - depends_on("py-more-itertools", type=("build", "run")) - depends_on("py-mypy", type=("build", "run")) - depends_on("py-mypy-extensions", type=("build", "run")) - depends_on("py-packaging", type=("build", "run")) - depends_on("py-pathspec", type=("build", "run")) - depends_on("py-pluggy", type=("build", "run")) - depends_on("py-tornado", type=("build", "run")) - depends_on("py-typed-ast", type=("build", "run")) + depends_on("py-setuptools", type=("build", "run")) + depends_on("py-pybind11", type=("build", "run")) + depends_on("cxx", type="build") diff --git a/repos/spack_repo/builtin/packages/py_setuptools_git_versioning/package.py b/repos/spack_repo/builtin/packages/py_setuptools_git_versioning/package.py index 4b31146a349..0acfebb2cdc 100644 --- a/repos/spack_repo/builtin/packages/py_setuptools_git_versioning/package.py +++ b/repos/spack_repo/builtin/packages/py_setuptools_git_versioning/package.py @@ -11,15 +11,21 @@ class PySetuptoolsGitVersioning(PythonPackage): """Use git repo data for building a version number according PEP-440""" homepage = "https://setuptools-git-versioning.readthedocs.io/" - pypi = "setuptools-git-versioning/setuptools-git-versioning-1.13.3.tar.gz" + pypi = "setuptools_git_versioning/setuptools_git_versioning-3.0.0.tar.gz" maintainers("angus-g") license("MIT") + version("3.0.1", sha256="c8a599bacf163b5d215552b5701faf5480ffc4d65426a5711a010b802e1590eb") version("1.13.3", sha256="9dfc59a31dcadcae04bcddc50534ccfc07a25a3180ab5cc1b1e3730217971c63") depends_on("py-setuptools", type=("build", "run")) - depends_on("git") depends_on("py-toml@0.10.2:", when="^python@:3.10", type=("build", "run")) depends_on("py-packaging", type=("build", "run")) + + depends_on("git", type="run") + + def url_for_version(self, version): + sep = "_" if version >= Version("3.0.0") else "-" + return f"https://files.pythonhosted.org/packages/source/s/setuptools{sep}git{sep}versioning/setuptools_git_versioning-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_setuptools_reproducible/package.py b/repos/spack_repo/builtin/packages/py_setuptools_reproducible/package.py new file mode 100644 index 00000000000..f0feb362f0c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_setuptools_reproducible/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 PySetuptoolsReproducible(PythonPackage): + """Extension of setuptools to support reproducible dists.""" + + homepage = "https://github.com/wimglenn/setuptools-reproducible" + pypi = "setuptools_reproducible/setuptools_reproducible-0.1.tar.gz" + + license("MIT") + + version("0.1", sha256="1ae3c0dcca3f125e0fdfb7ce749c872f63d9fe6a0fd8b36954f639ee677f2f73") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_setuptools_rust/package.py b/repos/spack_repo/builtin/packages/py_setuptools_rust/package.py index 0750689764e..662824fcc7b 100644 --- a/repos/spack_repo/builtin/packages/py_setuptools_rust/package.py +++ b/repos/spack_repo/builtin/packages/py_setuptools_rust/package.py @@ -11,10 +11,12 @@ class PySetuptoolsRust(PythonPackage): """Setuptools rust extension plugin.""" homepage = "https://github.com/PyO3/setuptools-rust" - pypi = "setuptools-rust/setuptools-rust-0.12.1.tar.gz" + pypi = "setuptools-rust/setuptools_rust-1.11.1.tar.gz" license("MIT") + version("1.12.0", sha256="d94a93f0c97751c17014565f07bdc324bee45d396cd1bba83d8e7af92b945f0c") + version("1.11.1", sha256="7dabc4392252ced314b8050d63276e05fdc5d32398fc7d3cce1f6a6ac35b76c0") version("1.9.0", sha256="704df0948f2e4cc60c2596ad6e840ea679f4f43e58ed4ad0c1857807240eab96") version("1.8.1", sha256="94b1dd5d5308b3138d5b933c3a2b55e6d6927d1a22632e509fcea9ddd0f7e486") version("1.7.0", sha256="c7100999948235a38ae7e555fe199aa66c253dc384b125f5d85473bf81eae3a3") @@ -27,14 +29,21 @@ class PySetuptoolsRust(PythonPackage): depends_on("py-setuptools@62.4:", when="@1.4.0:", type=("build", "run")) depends_on("py-setuptools@46.1:", type=("build", "run")) depends_on("py-setuptools", type=("build", "run")) - depends_on("py-setuptools-scm", when="@1.7.0:", type=("build", "run")) + depends_on("py-setuptools-scm", when="@1.7.0:", type="build") depends_on("py-semantic-version@2.8.2:2", when="@1.2.0:", type=("build", "run")) depends_on("py-semantic-version@2.6.0:", type=("build", "run")) - depends_on("py-tomli@1.2.1:", when="^python@:3.10", type=("build", "run")) depends_on("rust", type="run") # Historical dependencies depends_on("py-typing-extensions@3.7.4.3:", when="@1.2.0:1.7.0", type=("build", "run")) depends_on("py-setuptools-scm+toml@6.3.2:", when="@1.2.0:1.4.1", type="build") depends_on("py-setuptools-scm+toml@3.4.3:", when="@:1.1", type="build") + depends_on("py-tomli@1.2.1:", when="@:1.9 ^python@:3.10", type=("build", "run")) depends_on("py-toml@0.9.0:", type=("build", "run"), when="@0.12.1") + + def url_for_version(self, version): + if version >= Version("1.10.0"): + name = "setuptools_rust" + else: + name = "setuptools-rust" + return f"https://files.pythonhosted.org/packages/source/s/setuptools-rust/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_setuptools_scm/package.py b/repos/spack_repo/builtin/packages/py_setuptools_scm/package.py index 8c7a0ca7ab4..92fbd3838eb 100644 --- a/repos/spack_repo/builtin/packages/py_setuptools_scm/package.py +++ b/repos/spack_repo/builtin/packages/py_setuptools_scm/package.py @@ -18,24 +18,19 @@ class PySetuptoolsScm(PythonPackage): license("MIT") + version("9.2.2", sha256="1c674ab4665686a0887d7e24c03ab25f24201c213e82ea689d2f3e169ef7ef57") version("8.2.1", sha256="51cfdd1deefc9b8c08d1a61e940a59c4dec39eb6c285d33fa2f1b4be26c7874d") version("8.2.0", sha256="a18396a1bc0219c974d1a74612b11f9dce0d5bd8b1dc55c65f6ac7fd609e8c28") version("8.1.0", sha256="42dea1b65771cba93b7a515d65a65d8246e560768a66b9106a592c8e7f26c8a7") version("8.0.4", sha256="b5f43ff6800669595193fd09891564ee9d1d7dcb196cab4b2506d53a2e1c95c7") version("7.1.0", sha256="6c508345a771aad7d56ebff0e70628bf2b0ec7573762be9960214730de278f27") + version("6.4.2", sha256="6833ac65c6ed9711a4d5d2266f8024cfa07c533a0e55f4c12f6eff280a5a9e30") version("6.3.2", sha256="a49aa8081eeb3514eb9728fa5040f2eaa962d6c6f4ec9c32f6c1fba88f88a0f2") version("5.0.2", sha256="83a0cedd3449e3946307811a4c7b9d89c4b5fd464a2fb5eeccd0a5bb158ae5c8") version("4.1.2", sha256="a8994582e716ec690f33fec70cca0f85bd23ec974e3f783233e4879090a7faa8") version("3.5.0", sha256="5bdf21a05792903cafe7ae0c9501182ab52497614fa6b1750d9dbae7b60c1a87") version("1.15.6", sha256="49ab4685589986a42da85706b3311a2f74f1af567d39fee6cb1e088d7a75fb5f") - with default_args(deprecated=True): - version("7.0.5", sha256="031e13af771d6f892b941adb6ea04545bbf91ebc5ce68c78aaf3fff6e1fb4844") - version("7.0.3", sha256="cf8ab8e235bed840cd4559b658af0d8e8a70896a191bbc510ee914ec5325332d") - version("6.0.1", sha256="d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92") - version("3.3.3", sha256="bd25e1fb5e4d603dcf490f1fde40fb4c595b357795674c3e5cb7f6217ab39ea5") - version("3.1.0", sha256="1191f2a136b5e86f7ca8ab00a97ef7aef997131f1f6d4971be69a1ef387d8b40") - # Basically a no-op in setuptools_scm 7+, toml support is always built variant("toml", default=True, description="Build with TOML support") @@ -53,6 +48,9 @@ class PySetuptoolsScm(PythonPackage): depends_on("py-setuptools@42:", when="@5:") depends_on("py-setuptools@34.4:") + # use of vendored pkg_resources + depends_on("py-setuptools@:80", when="@:6") + depends_on("py-tomli@1:2.0.2", when="@8.2.0: ^python@:3.10") depends_on("py-tomli@1:", when="@7.1.0:8.1.0 ^python@:3.10") depends_on("py-tomli@1:", when="@7.0.0:7.0.5") @@ -69,7 +67,10 @@ class PySetuptoolsScm(PythonPackage): depends_on("py-typing-extensions", when="@8.0.0:8.0.3 ^python@:3.10") depends_on("py-typing-extensions", when="@7") - depends_on("py-packaging@20:", when="@6.3.0:8.0.1") + depends_on("py-packaging@24:", when="@7.1:") + # https://github.com/pypa/setuptools/issues/4483#issuecomment-2236528158 + depends_on("py-packaging@22:", when="@7: ^py-setuptools@71:") + depends_on("py-packaging@20:", when="@6.3:") depends_on("py-wheel", when="@3.4.0:6.4.2") @@ -79,8 +80,6 @@ class PySetuptoolsScm(PythonPackage): depends_on("py-typing-extensions", when="@8.1: ^python@:3.10") depends_on("py-typing-extensions", when="@7:8.0.4") - depends_on("py-packaging@20.0:", when="@6.3:") - depends_on("py-importlib-metadata", when="@7: ^python@:3.7") def url_for_version(self, version): diff --git a/repos/spack_repo/builtin/packages/py_sgp4/package.py b/repos/spack_repo/builtin/packages/py_sgp4/package.py index 68b4e55aaa6..fb93311bf35 100644 --- a/repos/spack_repo/builtin/packages/py_sgp4/package.py +++ b/repos/spack_repo/builtin/packages/py_sgp4/package.py @@ -15,6 +15,7 @@ class PySgp4(PythonPackage): license("MIT") + version("2.25", sha256="e19edc6dcc25d69fb8fde0a267b8f0c44d7e915c7bcbeacf5d3a8b595baf0674") version("1.4", sha256="1fb3cdbc11981a9ff34a032169f83c1f4a2877d1b6c295aed044e1d890b73892") depends_on("python@2.6:2.8,3.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_shapely/package.py b/repos/spack_repo/builtin/packages/py_shapely/package.py index 975993b6bf0..233591904f0 100644 --- a/repos/spack_repo/builtin/packages/py_shapely/package.py +++ b/repos/spack_repo/builtin/packages/py_shapely/package.py @@ -22,6 +22,7 @@ class PyShapely(PythonPackage): license("BSD-3-Clause") version("main", branch="main") + version("2.1.2", sha256="2ed4ecb28320a433db18a5bf029986aa8afcfd740745e78847e330d5d94922a9") version("2.1.1", sha256="500621967f2ffe9642454808009044c21e5b35db89ce69f8a2042c2ffd0e2772") version("2.1.0", sha256="2cbe90e86fa8fc3ca8af6ffb00a77b246b918c7cf28677b7c21489b678f6b02e") version("2.0.7", sha256="28fe2997aab9a9dc026dc6a355d04e85841546b2a5d232ed953e3321ab958ee5") @@ -40,11 +41,6 @@ class PyShapely(PythonPackage): version("1.8.0", sha256="f5307ee14ba4199f8bbcf6532ca33064661c1433960c432c84f0daa73b47ef9c") version("1.7.1", sha256="1641724c1055459a7e2b8bbe47ba25bdc89554582e62aec23cb3f3ca25f9b129") version("1.7.0", sha256="e21a9fe1a416463ff11ae037766fe410526c95700b9e545372475d2361cc951e") - version( - "1.6.4", - sha256="b10bc4199cfefcf1c0e5d932eac89369550320ca4bdf40559328d85f1ca4f655", - deprecated=True, - ) depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/py_shiboken/package.py b/repos/spack_repo/builtin/packages/py_shiboken/package.py deleted file mode 100644 index e04c8278b8a..00000000000 --- a/repos/spack_repo/builtin/packages/py_shiboken/package.py +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os - -from spack_repo.builtin.build_systems.python import PythonPackage - -from spack.package import * - - -class PyShiboken(PythonPackage): - """Shiboken generates bindings for C++ libraries using CPython.""" - - homepage = "https://shiboken.readthedocs.org/" - pypi = "Shiboken/Shiboken-1.2.2.tar.gz" - - version( - "1.2.2", - sha256="0baee03c6244ab56e42e4200d0cb5e234682b11cc296ed0a192fe457d054972f", - deprecated=True, - ) - - depends_on("cxx", type="build") # generated - - depends_on("cmake@2.6:", type="build") - - # to prevent error: 'PyTypeObject' {aka 'struct _typeobject'} has no member - # named 'tp_print' - depends_on("python@:3.8", type=("build", "run")) - depends_on("py-setuptools", type="build") - # in newer pip versions --install-option does not exist - depends_on("py-pip@:23.0", type="build") - depends_on("py-sphinx@:3.4", type=("build", "run")) - depends_on("libxml2") - depends_on("qt@4.6:4.8") - - # subprocess.mswindows was renamed to subprocess._mswindows in Python 3.5 - patch("python-3.5.patch", when="^python@3.5:") - - def patch(self): - """Undo Shiboken RPATH handling and add Spack RPATH.""" - # Add Spack's standard CMake args to the sub-builds. - # They're called BY setup.py so we have to patch it. - rpath = self.rpath - rpath.append(os.path.join(python_platlib, "Shiboken")) - - filter_file( - r"OPTION_CMAKE,", - r"OPTION_CMAKE, " - + ( - '"-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=FALSE", ' - '"-DCMAKE_INSTALL_RPATH=%s",' % ":".join(rpath) - ), - "setup.py", - ) - - # Shiboken tries to patch ELF files to remove RPATHs - # Disable this and go with the one we set. - filter_file( - r"^\s*rpath_cmd\(shiboken_path, srcpath\)", - r"#rpath_cmd(shiboken_path, srcpath)", - "shiboken_postinstall.py", - ) - - def install_options(self, spec, prefix): - return ["--jobs={0}".format(make_jobs)] diff --git a/repos/spack_repo/builtin/packages/py_shiboken/python-3.5.patch b/repos/spack_repo/builtin/packages/py_shiboken/python-3.5.patch deleted file mode 100644 index 61de88c4683..00000000000 --- a/repos/spack_repo/builtin/packages/py_shiboken/python-3.5.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/popenasync.py 2014-04-24 01:27:23.000000000 -0500 -+++ b/popenasync.py 2022-01-19 11:11:09.000000000 -0600 -@@ -23,7 +23,7 @@ - else: - null_byte = '\x00' - --if subprocess.mswindows: -+if subprocess._mswindows: - if sys.version_info >= (3,): - # Test date should be in ascii. - def encode(s): -@@ -142,7 +142,7 @@ - getattr(self, which).close() - setattr(self, which, None) - -- if subprocess.mswindows: -+ if subprocess._mswindows: - def kill(self): - # Recipes - #http://me.in-berlin.de/doc/python/faq/windows.html#how-do-i-emulate-os-kill-in-windows diff --git a/repos/spack_repo/builtin/packages/py_shroud/package.py b/repos/spack_repo/builtin/packages/py_shroud/package.py index 4ba194443fe..bb4c8d379da 100644 --- a/repos/spack_repo/builtin/packages/py_shroud/package.py +++ b/repos/spack_repo/builtin/packages/py_shroud/package.py @@ -8,26 +8,28 @@ class PyShroud(PythonPackage): - """Create Fortran wrappers for a C++ library.""" + """Shroud is a tool for creating a Fortran or Python interface to a C or C++ library. + It can also create a C API for a C++ library.""" homepage = "https://github.com/LLNL/shroud" git = "https://github.com/LLNL/shroud.git" tags = ["radiuss"] - license("MIT") + maintainers("white238") + + license("BSD-3-Clause") version("develop", branch="develop") version("master", branch="master") - version("0.12.2", tag="v0.12.2", commit="939ba0a3e8b5a885da3ddaebb92bf93cb12b0401") - version("0.12.1", tag="v0.12.1", commit="c09344655371885a42783f8c0ac8a31f2bbffc9f") - version("0.11.0", tag="v0.11.0", commit="503b852796d549199c5ab94b14e59ebd62988870") - version("0.10.1", tag="v0.10.1", commit="13a3c70bc5190e0e8531e17925928fbd7154acb5") - version("0.9.0", tag="v0.9.0", commit="94aa2831290d10b604df16cb87ee17aa722fb998") - version("0.8.0", tag="v0.8.0", commit="b58ac35f41514428d08849a578c45ad444bfddc9") - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + version("0.14.0", tag="v0.14.0", commit="03b46abdb0b7221e05bd7f36e8087f7319fc9cf0") + version("0.13.0", tag="v0.13.0", commit="4388ff1b689bbe450ba7d1b9bc4e1fe2563a4101") + with default_args(deprecated=True): + version("0.12.2", tag="v0.12.2", commit="939ba0a3e8b5a885da3ddaebb92bf93cb12b0401") + version("0.12.1", tag="v0.12.1", commit="c09344655371885a42783f8c0ac8a31f2bbffc9f") + version("0.11.0", tag="v0.11.0", commit="503b852796d549199c5ab94b14e59ebd62988870") + version("0.10.1", tag="v0.10.1", commit="13a3c70bc5190e0e8531e17925928fbd7154acb5") + version("0.9.0", tag="v0.9.0", commit="94aa2831290d10b604df16cb87ee17aa722fb998") + version("0.8.0", tag="v0.8.0", commit="b58ac35f41514428d08849a578c45ad444bfddc9") depends_on("py-setuptools", type=("build", "run")) - depends_on("py-pyyaml@4.2:", type=("build", "run")) + depends_on("py-pyyaml@6.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_sierrapy/package.py b/repos/spack_repo/builtin/packages/py_sierrapy/package.py deleted file mode 100644 index 5528bba8d58..00000000000 --- a/repos/spack_repo/builtin/packages/py_sierrapy/package.py +++ /dev/null @@ -1,34 +0,0 @@ -# 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 PySierrapy(PythonPackage): - """A Client of HIVdb Sierra GraphQL Webservice""" - - homepage = "https://github.com/hivdb/sierra-client/tree/master/python" - pypi = "sierrapy/sierrapy-0.3.0.tar.gz" - - maintainers("dorton21") - - version("0.3.0", sha256="82474b3815d79d16a480b0cc70b9f7075430ff4990f33306c880b240a3141b6e") - - depends_on("py-setuptools", type="build") - depends_on("py-certifi@2020.4.5.1", type="build") - - depends_on("py-chardet@3.0.4", type=("build", "run")) - depends_on("py-click@7.1.2", type=("build", "run")) - depends_on("py-gql@0.4.0", type=("build", "run")) - depends_on("py-graphql-core@2.3.2", type=("build", "run")) - depends_on("py-idna@2.9", type=("build", "run")) - depends_on("py-rx@1.6.1", type=("build", "run")) - depends_on("py-promise@2.3", type=("build", "run")) - depends_on("py-requests@2.23.0", type=("build", "run")) - depends_on("py-six@1.14.0", type=("build", "run")) - depends_on("py-tqdm@4.46.0", type=("build", "run")) - depends_on("py-voluptuous@0.11.7", type=("build", "run")) - depends_on("py-urllib3@1.25.9", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_simpervisor/package.py b/repos/spack_repo/builtin/packages/py_simpervisor/package.py index f2fd6864b8a..2543da22606 100644 --- a/repos/spack_repo/builtin/packages/py_simpervisor/package.py +++ b/repos/spack_repo/builtin/packages/py_simpervisor/package.py @@ -18,6 +18,11 @@ class PySimpervisor(PythonPackage): license("BSD-3-Clause") + version("1.0.0", sha256="7eb87ca86d5e276976f5bb0290975a05d452c6a7b7f58062daea7d8369c823c1") version("0.4", sha256="cec79e13cdbd6edb04a5c98c1ff8d4bd9713e706c069226909a1ef0e89d393c5") - depends_on("py-setuptools", type="build") + depends_on("python@3.8:", type="build", when="@1:") + depends_on("py-hatchling", type="build", when="@1:") + + # Historical dependencies + depends_on("py-setuptools", type="build", when="@:0") diff --git a/repos/spack_repo/builtin/packages/py_simple_slurm/package.py b/repos/spack_repo/builtin/packages/py_simple_slurm/package.py new file mode 100644 index 00000000000..aca41ac4e42 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_simple_slurm/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 PySimpleSlurm(PythonPackage): + """A simple Python wrapper for Slurm with flexibility in mind.""" + + homepage = "https://github.com/amq92/simple_slurm" + pypi = "simple-slurm/simple_slurm-0.3.6.tar.gz" + + license("AGPL-3.0") + maintainers("adamwitmer") + + version("0.3.6", sha256="0f88cac96b39d7d7e34c5a124919cebb41eb8a8ef2ff4fb65c363d940ff8551e") + + depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_simplejson/package.py b/repos/spack_repo/builtin/packages/py_simplejson/package.py index 008ccdf4684..ad0ef7878b7 100644 --- a/repos/spack_repo/builtin/packages/py_simplejson/package.py +++ b/repos/spack_repo/builtin/packages/py_simplejson/package.py @@ -14,8 +14,11 @@ class PySimplejson(PythonPackage): homepage = "https://github.com/simplejson/simplejson" pypi = "simplejson/simplejson-3.10.0.tar.gz" - license("AFL-2.1") + license("MIT OR AFL-2.1", when="@4:") + license("MIT", when="@:3") + version("4.1.0", sha256="7b3ce1e8f13ec3cd41e31c45c2172caa4c66299c7002d3e0871b49a85683157e") + version("3.20.1", sha256="e64139b4ec4f1f24c142ff7dcafe55a22b811a74d86d66560c8815687143037d") version("3.19.1", sha256="6277f60848a7d8319d27d2be767a7546bc965535b28070e310b3a9af90604a4c") version("3.18.0", sha256="58a429d2c2fa80834115b923ff689622de8f214cf0dc4afa9f59e824b444ab31") version("3.17.2", sha256="75ecc79f26d99222a084fbdd1ce5aad3ac3a8bd535cd9059528452da38b68841") @@ -32,6 +35,8 @@ class PySimplejson(PythonPackage): version("3.8.0", sha256="217e4797da3a9a4a9fbe6722e0db98070b8443a88212d7acdbd241a7668141d9") version("3.3.0", sha256="7a8a6bd82e111976aeb06138316ab10847adf612925072eaff8512228bcf9a1f") - depends_on("c", type="build") # generated + with default_args(type="build"): + depends_on("c") - depends_on("py-setuptools", type="build") + depends_on("py-setuptools@42:", when="@4:") + depends_on("py-setuptools") diff --git a/repos/spack_repo/builtin/packages/py_simsimd/package.py b/repos/spack_repo/builtin/packages/py_simsimd/package.py new file mode 100644 index 00000000000..6f1402e0292 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_simsimd/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PySimsimd(PythonPackage): + """Portable mixed-precision BLAS-like vector math library for x86 and ARM""" + + homepage = "https://github.com/ashvardanian/simsimd" + pypi = "simsimd/simsimd-6.5.3.tar.gz" + + license("Apache-2.0") + + version("6.5.3", sha256="5ff341e84fe1c46e7268ee9e31f885936b29c38ce59f423433aef5f4bb5bfd18") + + depends_on("c", type="build") + + depends_on("py-setuptools@42:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_sip/package.py b/repos/spack_repo/builtin/packages/py_sip/package.py index 5d15799f8db..87c389b00ad 100644 --- a/repos/spack_repo/builtin/packages/py_sip/package.py +++ b/repos/spack_repo/builtin/packages/py_sip/package.py @@ -17,6 +17,9 @@ class PySip(PythonPackage): license("GPL-2.0-or-later") + version("6.15.3", sha256="bb2516983f9f716d321e5157c00d0de0c12422eba73b8f43a44610a0f6622438") + version("6.14.0", sha256="20c086aba387707b34cf47fd96d1a978d01e2b95807e86f8aaa960081f163b28") + version("6.12.0", sha256="083ced94f85315493231119a63970b2ba42b1d38b38e730a70e02a99191a89c6") version("6.8.5", sha256="5dddd5966e9875d89ecde9d3e6ac63225f9972e4d25c09e20fa22f1819409c70") version("6.7.9", sha256="35d51fc10f599d3696abb50f29d068ad04763df7b77808c76b74597660f99b17") version("6.6.2", sha256="0e3efac1c5dfd8e525ae57140927df26993e13f58b89d1577c314f4105bfd90d") @@ -39,25 +42,33 @@ class PySip(PythonPackage): multi=False, ) - depends_on("c", type="build") # generated + with default_args(type="build"): + depends_on("c") + depends_on("gmake") - depends_on("py-ply", type=("build", "run"), when="@6.6:") + depends_on("py-setuptools-scm@8:", when="@6.8.4:") - with when("@5:"): - depends_on("python", type=("build", "link", "run")) - depends_on("py-packaging", type=("build", "run")) - depends_on("py-setuptools@64:", type=("build", "run"), when="@6.8.4:") - depends_on("py-setuptools@30.3:", type=("build", "run"), when="@:6.8.3") - depends_on("py-setuptools-scm@8:", type="build", when="@6.8.4:") - depends_on("py-tomli", type=("build", "run"), when="@6.7: ^python@:3.10") - depends_on("py-toml", type=("build", "run"), when="@:6.6") + # Historical dependencies + depends_on("flex", when="@:4") + depends_on("bison", when="@:4") - with when("@:4"): + with default_args(type=("build", "link", "run")): + depends_on("python@3.10:", when="@6.15:") + depends_on("python", when="@5:") # Requires distutils - depends_on("python@:3.11", type=("build", "link", "run")) - depends_on("flex", type="build") - depends_on("bison", type="build") - depends_on("gmake", type="build") + depends_on("python@:3.11", when="@:4") + + with default_args(type=("build", "run")): + depends_on("py-setuptools@77:", when="@6.11:") + depends_on("py-setuptools@64:", when="@6.8.4:") + depends_on("py-setuptools@30.3:", when="@5:6.8.3") + depends_on("py-packaging@24.2:", when="@6.11:") + depends_on("py-packaging", when="@5:") + depends_on("py-tomli", when="@6.7: ^python@:3.10") + depends_on("py-toml", when="@5:6.6") + + # Historical dependencies + depends_on("py-ply", when="@6.6:6.7") def url_for_version(self, version): if version < Version("5"): diff --git a/repos/spack_repo/builtin/packages/py_slepc4py/package.py b/repos/spack_repo/builtin/packages/py_slepc4py/package.py index b5b59d612f2..32afdbc96fe 100644 --- a/repos/spack_repo/builtin/packages/py_slepc4py/package.py +++ b/repos/spack_repo/builtin/packages/py_slepc4py/package.py @@ -19,6 +19,13 @@ class PySlepc4py(PythonPackage): license("BSD-2-Clause") version("main", branch="main") + version("3.25.1", sha256="d5ac5c132ff7f5450fc511a50bdd2fce20b30e7618f53b6d64207832de33c75e") + version("3.25.0", sha256="8b81061b94a9c9a7586ff2b8cc1dfe40d373981b0c7d2a28bdad154bbc6f832e") + version("3.24.3", sha256="7b814fd5561838b1e0a4821d5e83e6aad061cd57b3ce50549598caa2e65b13c0") + version("3.24.2", sha256="cbcff24004e35cdb17587c534d68329b6467574df93028d04596bfaf3baccbb7") + version("3.24.1", sha256="ce798d38355127bee3416bab2975d5fb51df0c3e124b73ba13225ff6311d966e") + version("3.24.0", sha256="50c9b6a75f47db8131c690b1cda07a15bf532cb79a3e645a0b08d7941f6738f2") + version("3.23.3", sha256="aa00f90939c4b312b9efe041e4f50f8f7947f50cb8c0d8f6ca60d4d78dda92c9") version("3.23.2", sha256="6c98e6c728b9d440d1680047f623aead03d9870c0c4d2ea97c754bab291d1fb5") version("3.23.1", sha256="da3ac9854ad120699359c112be857298bd3e4b62c0cecee752f34ad2dec81cd9") version("3.23.0", sha256="cc00cfd02bf302363adf03404bdcf6d8d4f1b9448cb28d4305eef3e88ddd9059") @@ -48,24 +55,11 @@ class PySlepc4py(PythonPackage): version("3.15.2", sha256="c87135989c4d95b9c92a5b615a95eddc34b69dad9cc28b27d3cb7dfaec46177b") version("3.15.1", sha256="bcdab6d2101ae00e189f4b33072805358cee2dda806a6b6a8e3c2f1b9f619dfd") version("3.15.0", sha256="2f5f5cc25ab4dd3782046c65e97265b39be0cf9cc74c5c0100c3c580c3c32395") - version( - "3.13.0", - sha256="780eff0eea1a5217642d23cd563786ef22df27e1d772a1b0bb4ccc5701df5ea5", - deprecated=True, - ) - version( - "3.12.0", - sha256="d8c06953b7d00f529a9a7fd016dfa8efdf1d05995baeea7688d1d59611f424f7", - deprecated=True, - ) - version( - "3.11.0", - sha256="1e591056beee209f585cd781e5fe88174cd2a61215716a71d9eaaf9411b6a775", - deprecated=True, - ) patch("ldshared.patch", when="@:3.18") + depends_on("c", type="build") + depends_on("py-cython@3:", when="@3.20:", type="build") depends_on("py-cython@0.29.32:", when="^python@3.11:", type="build") depends_on("py-cython@0.24:", type="build") @@ -75,6 +69,8 @@ class PySlepc4py(PythonPackage): depends_on("py-petsc4py@main", when="@main", type=("build", "run")) depends_on("slepc@main", when="@main") for ver in [ + "3.25", + "3.24", "3.23", "3.22", "3.21", @@ -84,9 +80,6 @@ class PySlepc4py(PythonPackage): "3.17", "3.16", "3.15", - "3.13", - "3.12", - "3.11", ]: depends_on(f"py-petsc4py@{ver}", when=f"@{ver}", type=("build", "run")) depends_on(f"slepc@{ver}", when=f"@{ver}") diff --git a/repos/spack_repo/builtin/packages/py_slicer/package.py b/repos/spack_repo/builtin/packages/py_slicer/package.py index 780d929bbac..ad583df6955 100644 --- a/repos/spack_repo/builtin/packages/py_slicer/package.py +++ b/repos/spack_repo/builtin/packages/py_slicer/package.py @@ -13,6 +13,7 @@ class PySlicer(PythonPackage): homepage = "https://github.com/interpretml/slicer" pypi = "slicer/slicer-0.0.7.tar.gz" + version("0.0.8", sha256="2e7553af73f0c0c2d355f4afcc3ecf97c6f2156fcf4593955c3f56cf6c4d6eb7") version("0.0.7", sha256="f5d5f7b45f98d155b9c0ba6554fa9770c6b26d5793a3e77a1030fb56910ebeec") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_smartsim/package.py b/repos/spack_repo/builtin/packages/py_smartsim/package.py index 7627bc6cacf..9a9ec51172d 100644 --- a/repos/spack_repo/builtin/packages/py_smartsim/package.py +++ b/repos/spack_repo/builtin/packages/py_smartsim/package.py @@ -2,8 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import os - from spack_repo.builtin.build_systems.python import PythonPackage from spack.package import * @@ -75,12 +73,12 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: @run_after("install") def symlink_bin_deps(self): ss_core_path = join_path(python_purelib, "smartsim", "_core") - os.symlink( + symlink( self.spec["redis"].prefix.bin.join("redis-server"), join_path(ss_core_path, "bin", "redis-server"), ) - os.symlink( + symlink( self.spec["redis"].prefix.bin.join("redis-cli"), join_path(ss_core_path, "bin", "redis-cli"), ) - os.symlink(self.spec["redis-ai"].prefix, join_path(ss_core_path, "lib")) + symlink(self.spec["redis-ai"].prefix, join_path(ss_core_path, "lib")) diff --git a/repos/spack_repo/builtin/packages/py_smartypants/package.py b/repos/spack_repo/builtin/packages/py_smartypants/package.py index 741f054708b..083850efd43 100644 --- a/repos/spack_repo/builtin/packages/py_smartypants/package.py +++ b/repos/spack_repo/builtin/packages/py_smartypants/package.py @@ -11,12 +11,16 @@ class PySmartypants(PythonPackage): """smartypants is a Python fork of SmartyPants.""" homepage = "https://github.com/leohemsted/smartypants.py" - - # PyPI only has the wheel - url = "https://github.com/leohemsted/smartypants.py/archive/refs/tags/v2.0.1.tar.gz" + pypi = "smartypants/smartypants-2.0.2.tar.gz" license("BSD-3-Clause") - version("2.0.1", sha256="b98191911ff3b4144ef8ad53e776a2d0ad24bd508a905c6ce523597c40022773") + version("2.0.2", sha256="39d64ce1d7cc6964b698297bdf391bc12c3251b7f608e6e55d857cd7c5f800c6") + version( + "2.0.1", + sha256="b98191911ff3b4144ef8ad53e776a2d0ad24bd508a905c6ce523597c40022773", + # PyPI only has the wheel + url="https://github.com/leohemsted/smartypants.py/archive/refs/tags/v2.0.1.tar.gz", + ) depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_snakemake_interface_common/package.py b/repos/spack_repo/builtin/packages/py_snakemake_interface_common/package.py index 646d21ea8d4..ae919546d77 100644 --- a/repos/spack_repo/builtin/packages/py_snakemake_interface_common/package.py +++ b/repos/spack_repo/builtin/packages/py_snakemake_interface_common/package.py @@ -17,12 +17,27 @@ class PySnakemakeInterfaceCommon(PythonPackage): license("MIT") + version("1.22.0", sha256="ef1fa710a15629be4cc352b938596ab5235ecf0b615c5845f086d6c5da10cb88") + version("1.21.0", sha256="0b6f0ef2c1a19fa8c20d676f4e355b8ba7058e142640a1c3c36fd1b9e110ef53") + version("1.20.2", sha256="2857fc1f0baefd77d3bfa98938e1954d94f8b68df1f7910b92d1279153c84688") + version("1.19.4", sha256="99cfbbd01def8f75e67eb0fd244ab7ee3abb3b3f12597f6d14d0c8b92e407340") + version("1.18.0", sha256="2810abb68c1d2e5da69f271c9a0fc819dd9e62249c01db63793504011c7ad39a") version("1.17.4", sha256="c2142e1b93cbc18c2cf41d15968ba8688f60b077c8284e5de057cccfc215d4d3") version("1.17.3", sha256="cca6e2c728072a285a8e750f00fdd98d9c50063912184c41f8b89e4cab66c7b0") version("1.17.1", sha256="555c8218d9b68ddc1046f94a517e7d0f22e15bdc839d6ce149608d8ec137b9ae") - depends_on("py-argparse-dataclass@2", type=("build", "run")) - depends_on("py-configargparse@1.7:1", type=("build", "run")) - depends_on("python@:3", type=("build", "run")) - depends_on("py-poetry-core", type="build") + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@42:", type="build", when="@1.18:") + depends_on("py-wheel", type="build", when="@1.18:") + + depends_on("py-argparse-dataclass@2:", type=("build", "run"), when="@1.18:") + depends_on("py-argparse-dataclass@2", type=("build", "run"), when="@:1.17") + depends_on("py-configargparse@1.7:", type=("build", "run"), when="@1.18:") + depends_on("py-packaging@24:25", type=("build", "run"), when="@1.20.1:") + + # Historical dependencies + depends_on("py-poetry-core", type="build", when="@:1.17") + depends_on("py-configargparse@1.7:1", type=("build", "run"), when="@:1.17") + depends_on("py-semver@3", type=("build", "run"), when="@1.19:1.19.2") + depends_on("py-packaging@25", type=("build", "run"), when="@1.19.3:1.20.0") diff --git a/repos/spack_repo/builtin/packages/py_snakemake_interface_logger_plugins/package.py b/repos/spack_repo/builtin/packages/py_snakemake_interface_logger_plugins/package.py new file mode 100644 index 00000000000..3336994497c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_snakemake_interface_logger_plugins/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PySnakemakeInterfaceLoggerPlugins(PythonPackage): + """Logger plugin interface for snakemake.""" + + homepage = "https://github.com/snakemake/snakemake-interface-logger-plugins" + pypi = "snakemake_interface_logger_plugins/snakemake_interface_logger_plugins-2.0.0.tar.gz" + + license("MIT") + + version("2.0.0", sha256="0e8ff2af4c55ca140d6ea1c1540e733a4b3944abae48fe0eaf6a707e5797cd17") + version("1.2.4", sha256="09193b07c260b3efc88a75a0d33767820705f66e85c14d4f0d0e562b123c3c58") + version("1.1.0", sha256="8af888a5def0ad58a7b244e34b5edfde4608bbf572cba8c648407ebfbf2cc855") + + depends_on("python@3.11:", type=("build", "run")) + + depends_on("py-hatchling", type="build") + + depends_on("py-snakemake-interface-common@1.17.4:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_snakemake_interface_report_plugins/package.py b/repos/spack_repo/builtin/packages/py_snakemake_interface_report_plugins/package.py index d503400ccf6..5ad85965208 100644 --- a/repos/spack_repo/builtin/packages/py_snakemake_interface_report_plugins/package.py +++ b/repos/spack_repo/builtin/packages/py_snakemake_interface_report_plugins/package.py @@ -16,6 +16,9 @@ class PySnakemakeInterfaceReportPlugins(PythonPackage): license("MIT") + version("1.3.0", sha256="fc9495298bec4e69721ab8afe6d6d88a86966fda2eeb003db56b9a88b86d5934") + version("1.2.0", sha256="36cff4d50e7763ae0def0a7cf36d85e6c575d7bad1a3ade26b66c9b2b8831c02") + version("1.1.2", sha256="3d1218c5897345632f138a3f02794dfef7e59e407100c2a87313307a2da63c5b") version("1.1.0", sha256="b1ee444b2fca51225cf8a102f8e56633791d01433cd00cf07a1d9713a12313a5") version("1.0.0", sha256="02311cdc4bebab2a1c28469b5e6d5c6ac6e9c66998ad4e4b3229f1472127490f") diff --git a/repos/spack_repo/builtin/packages/py_snakemake_interface_scheduler_plugins/package.py b/repos/spack_repo/builtin/packages/py_snakemake_interface_scheduler_plugins/package.py new file mode 100644 index 00000000000..f38bd842d52 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_snakemake_interface_scheduler_plugins/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PySnakemakeInterfaceSchedulerPlugins(PythonPackage): + """Scheduler plugin interface for snakemake.""" + + homepage = "https://github.com/snakemake/snakemake-interface-scheduler-plugins" + pypi = ( + "snakemake_interface_scheduler_plugins/snakemake_interface_scheduler_plugins-2.0.2.tar.gz" + ) + + license("MIT") + + version("2.0.2", sha256="2797e8fa9019d983132c2b403f14d6fcd3c5ad4c8d8a66b984b4740a71cacc46") + + depends_on("python@3.11:", type=("build", "run")) + + depends_on("py-hatchling", type="build") + + depends_on("py-snakemake-interface-common@1.20.1:1", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_snakemake_interface_storage_plugins/package.py b/repos/spack_repo/builtin/packages/py_snakemake_interface_storage_plugins/package.py index 1321b27fd67..06e17e7f651 100644 --- a/repos/spack_repo/builtin/packages/py_snakemake_interface_storage_plugins/package.py +++ b/repos/spack_repo/builtin/packages/py_snakemake_interface_storage_plugins/package.py @@ -18,14 +18,25 @@ class PySnakemakeInterfaceStoragePlugins(PythonPackage): license("MIT") + version("4.2.3", sha256="95be93d1aa1c56c189d9ff661930a6475e847a79a74013822c9570c0ef691755") + version("4.1.0", sha256="9f1466b68abda3b4e602133318973d02c15404709d24eaeb02f23e713691aaf0") + version("4.0.1", sha256="6703b6effb68b86d9f9fe95497efdb3139473e63a523084a27bb7bfefe379cbd") + version("3.5.0", sha256="88ee1dde95f9d5abb03113c52fb8cfa78ee502cce9ec788c161b3c09076fc075") + version("3.4.0", sha256="7e1289bda0f693640dc1257815c35168fe4996be977621bcc1671b58217c69ae") version("3.3.0", sha256="203d8f794dfb37d568ad01a6c375fa8beac36df8e488c0f9b9f75984769c362a") + version("3.2.4", sha256="a44b99339f369703e3cfa5f21f3f513ca2000c8790c364be0e5df7d03fb264d3") version("3.1.0", sha256="26e95be235ef2a9716b890ea96c3a9a2e62061c5d72fbb89c2fad2afada87304") - depends_on("py-wrapt@1.15:1", type=("build", "run")) - depends_on("py-reretry@0.11.8:0.11", type=("build", "run")) - depends_on("py-throttler@1.2.2:1", type=("build", "run")) + depends_on("py-wrapt@1.15:", when="@4.2:", type=("build", "run")) + depends_on("py-wrapt@1.15:1", when="@:4.1", type=("build", "run")) + depends_on("py-reretry@0.11.8:", when="@4.2:", type=("build", "run")) + depends_on("py-reretry@0.11.8:0.11", when="@:4.1", type=("build", "run")) + depends_on("py-throttler@1.2.2:", when="@4.2:", type=("build", "run")) + depends_on("py-throttler@1.2.2:1", when="@:4.1", type=("build", "run")) + depends_on("py-humanfriendly@10:", type=("build", "run"), when="@3.6:4.1") - depends_on("py-snakemake-interface-common@1.12:1", type=("build", "run")) + depends_on("py-snakemake-interface-common@1.12:", when="@4.2:", type=("build", "run")) + depends_on("py-snakemake-interface-common@1.12:1", when="@:4.1", type=("build", "run")) depends_on("python@3.11:3", type=("build", "run")) depends_on("py-poetry-core", type="build") diff --git a/repos/spack_repo/builtin/packages/py_snakemake_storage_plugin_fs/package.py b/repos/spack_repo/builtin/packages/py_snakemake_storage_plugin_fs/package.py index be929071924..777b3a58232 100644 --- a/repos/spack_repo/builtin/packages/py_snakemake_storage_plugin_fs/package.py +++ b/repos/spack_repo/builtin/packages/py_snakemake_storage_plugin_fs/package.py @@ -17,6 +17,7 @@ class PySnakemakeStoragePluginFs(PythonPackage): license("MIT") + version("1.1.3", sha256="a3d4245915c5973645579afc1e2c7406dd5238ac600cdade388747095ced012e") version("1.0.6", sha256="8d8ead1883d7e670b1d34ea084f7c927bb4fab71fd8d221b7478680cc09a443e") version("1.0.5", sha256="4f7ce1bf16d10510f8f4a2fde2ae22d047131020bd5efa603132dabfc85f444b") version("1.0.4", sha256="d9467d2d8f00689c6af6478f67f693373ce3cb0404d10c6d783997465d5110a9") @@ -31,9 +32,14 @@ class PySnakemakeStoragePluginFs(PythonPackage): depends_on("py-snakemake-interface-common@1.17:1", type=("build", "run")) depends_on( - "py-snakemake-interface-storage-plugins@3.2.2:3", type=("build", "run"), when="@1.0.3:" + "py-snakemake-interface-storage-plugins@4.1.0:4", type=("build", "run"), when="@1.1:" + ) + depends_on( + "py-snakemake-interface-storage-plugins@3.2.2:3", type=("build", "run"), when="@1.0.3:1.0" + ) + depends_on( + "py-snakemake-interface-storage-plugins@3.1:3", type=("build", "run"), when="@:1.0.2" ) - depends_on("py-snakemake-interface-storage-plugins@3.1:3", type=("build", "run")) depends_on("python@3.11:3", type=("build", "run")) depends_on("py-poetry-core", type="build") diff --git a/repos/spack_repo/builtin/packages/py_snakemake_storage_plugin_pelican/package.py b/repos/spack_repo/builtin/packages/py_snakemake_storage_plugin_pelican/package.py new file mode 100644 index 00000000000..3ebd077e674 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_snakemake_storage_plugin_pelican/package.py @@ -0,0 +1,31 @@ +# 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 PySnakemakeStoragePluginPelican(PythonPackage): + """A Snakemake Storage Plugin for Pelican Federations.""" + + homepage = "https://github.com/PelicanPlatform/snakemake-storage-plugin-pelican" + pypi = "snakemake_storage_plugin_pelican/snakemake_storage_plugin_pelican-0.1.1.tar.gz" + git = "https://github.com/PelicanPlatform/snakemake-storage-plugin-pelican.git" + + maintainers("wdconinc") + + license("Apache-2.0", checked_by="wdconinc") + + version("0.1.1", sha256="a2b436dedaed0cae1edfb0d2d6c32085239eb0c2ec15bed86419d465b7bb5cb5") + + depends_on("python@3.12:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-poetry-core@2") + + with default_args(type=("build", "run")): + depends_on("py-snakemake-interface-common@1.21:1") + depends_on("py-snakemake-interface-storage-plugins@4.2.1:4") + depends_on("py-pelicanfs@1.2.3:") diff --git a/repos/spack_repo/builtin/packages/py_snakemake_storage_plugin_rucio/package.py b/repos/spack_repo/builtin/packages/py_snakemake_storage_plugin_rucio/package.py new file mode 100644 index 00000000000..41151d3f31f --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_snakemake_storage_plugin_rucio/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 PySnakemakeStoragePluginRucio(PythonPackage): + """A Snakemake storage plugin that handles files available through Rucio.""" + + homepage = "https://github.com/bouweandela/snakemake-storage-plugin-rucio" + url = "https://github.com/bouweandela/snakemake-storage-plugin-rucio/archive/refs/tags/v0.4.1.tar.gz" + + maintainers("wdconinc") + + license("Apache-2.0", checked_by="wdconinc") + + version("0.4.1", sha256="2e1ed50402b90ec85fc6f0a79b2dd27ad52cdfb80195f0ced8965af93e1d4742") + + depends_on("python@3.11:3", type=("build", "run")) + depends_on("py-poetry-core", type="build") + + depends_on("py-rucio-clients@36:", type=("build", "run")) + depends_on("snakemake@9.5.1:", type=("build", "run")) + depends_on("py-snakemake-interface-common@1.18:1", type=("build", "run")) + depends_on("py-snakemake-interface-storage-plugins@4.2.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_snakeviz/package.py b/repos/spack_repo/builtin/packages/py_snakeviz/package.py new file mode 100644 index 00000000000..4fa3386390d --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_snakeviz/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 PySnakeviz(PythonPackage): + """A web-based viewer for Python profiler output.""" + + homepage = "https://jiffyclub.github.io/snakeviz/" + pypi = "snakeviz/snakeviz-2.2.2.tar.gz" + + license("BSD-3-Clause") + + version("2.2.2", sha256="08028c6f8e34a032ff14757a38424770abb8662fb2818985aeea0d9bc13a7d83") + + depends_on("py-setuptools@43:", type="build") + depends_on("py-tornado@2:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_sniffio/package.py b/repos/spack_repo/builtin/packages/py_sniffio/package.py index 17796245531..92b5d2169a4 100644 --- a/repos/spack_repo/builtin/packages/py_sniffio/package.py +++ b/repos/spack_repo/builtin/packages/py_sniffio/package.py @@ -16,10 +16,12 @@ class PySniffio(PythonPackage): license("Apache-2.0") + version("1.3.1", sha256="f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc") version("1.3.0", sha256="e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101") version("1.2.0", sha256="c4666eecec1d3f50960c6bdf61ab7bc350648da6c126e3cf6898d8cd4ddcd3de") version("1.1.0", sha256="8e3810100f69fe0edd463d02ad407112542a11ffdc29f67db2bf3771afb87a21") - depends_on("python@3.5:", type=("build", "run")) - depends_on("python@3.7:", when="@1.3.0:", type=("build", "run")) - depends_on("py-setuptools", type="build") + depends_on("python@3.7:", type=("build", "run"), when="@1.3:") + depends_on("py-setuptools@64:", type="build", when="@1.3.1:") + depends_on("py-setuptools", type="build", when="@:1.3.0") + depends_on("py-setuptools-scm@6.4:", type="build", when="@1.3.1:") diff --git a/repos/spack_repo/builtin/packages/py_snoop/package.py b/repos/spack_repo/builtin/packages/py_snoop/package.py index bb59d065721..3f881866656 100644 --- a/repos/spack_repo/builtin/packages/py_snoop/package.py +++ b/repos/spack_repo/builtin/packages/py_snoop/package.py @@ -11,15 +11,17 @@ class PySnoop(PythonPackage): to be a more featureful and refined version of PySnooper. It also includes its own version of icecream and some other nifty stuff.""" - pypi = "snoop/snoop-0.4.3.tar.gz" + pypi = "snoop/snoop-0.6.0.tar.gz" license("MIT", checked_by="jmlapre") + version("0.6.0", sha256="c615eddf84d8907f893dec7fde38768aa4b1d88d92d63055b6cfc07e5cde37ec") version("0.4.3", sha256="2e0930bb19ff0dbdaa6f5933f88e89ed5984210ea9f9de0e1d8231fa5c1c1f25") + depends_on("python@3.8:", when="@0.6:") depends_on("py-setuptools", type="build") depends_on("py-setuptools-scm+toml", type="build") - depends_on("py-six", type=("build", "run")) + depends_on("py-six", when="@:0.5", type=("build", "run")) depends_on("py-cheap-repr@0.4.0:", type=("build", "run")) depends_on("py-executing", type=("build", "run")) depends_on("py-asttokens", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_snowballstemmer/package.py b/repos/spack_repo/builtin/packages/py_snowballstemmer/package.py index 61498e67c26..38dfa47ad8b 100644 --- a/repos/spack_repo/builtin/packages/py_snowballstemmer/package.py +++ b/repos/spack_repo/builtin/packages/py_snowballstemmer/package.py @@ -16,6 +16,7 @@ class PySnowballstemmer(PythonPackage): license("BSD-3-Clause") + version("3.0.1", sha256="6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895") version("2.2.0", sha256="09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1") version("2.0.0", sha256="df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52") version("1.2.1", sha256="919f26a68b2c17a7634da993d91339e288964f93c274f1343e3bbbe2096e1128") diff --git a/repos/spack_repo/builtin/packages/py_sortedcollections/package.py b/repos/spack_repo/builtin/packages/py_sortedcollections/package.py index 7851f55ab60..834c41fa84a 100644 --- a/repos/spack_repo/builtin/packages/py_sortedcollections/package.py +++ b/repos/spack_repo/builtin/packages/py_sortedcollections/package.py @@ -16,6 +16,7 @@ class PySortedcollections(PythonPackage): license("Apache-2.0") + version("2.1.0", sha256="d8e9609d6c580a16a1224a3dc8965789e03ebc4c3e5ffd05ada54a2fed5dcacd") version("1.2.1", sha256="58c31f35e3d052ada6a1fbfc235a408e9ec5e2cfc64a02731cf97cac4afd306a") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_soupsieve/package.py b/repos/spack_repo/builtin/packages/py_soupsieve/package.py index 1f72d13305f..a28d7c7b9ae 100644 --- a/repos/spack_repo/builtin/packages/py_soupsieve/package.py +++ b/repos/spack_repo/builtin/packages/py_soupsieve/package.py @@ -18,6 +18,8 @@ class PySoupsieve(PythonPackage): # Circular dependency on beautifulsoup4 skip_modules = ["soupsieve"] + version("2.8.3", sha256="3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349") + version("2.8", sha256="e2dd4a40a628cb5f28f6d4b0db8800b8f581b65bb380b97de22ba5ca8d72572f") version("2.4.1", sha256="89d12b2d5dfcd2c9e8c22326da9d9aa9cb3dfab0a83a024f05704076ee8d35ea") version( "2.3.2.post1", sha256="fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d" @@ -26,7 +28,11 @@ class PySoupsieve(PythonPackage): version("1.9.6", sha256="7985bacc98c34923a439967c1a602dc4f1e15f923b6fcf02344184f86cc7efaa") version("1.9.3", sha256="8662843366b8d8779dec4e2f921bebec9afd856a5ff2e82cd419acc5054a1a92") + depends_on("python@3.9:", when="@2.8:", type=("build", "run")) + depends_on("python@3.8:", when="@2.5:", type=("build", "run")) + depends_on("python@3.7:", when="@2.4:", type=("build", "run")) depends_on("py-hatchling@0.21.1:", when="@2.3.2:", type="build") + depends_on("py-hatchling@1.26:", when="@2.8:", type="build") # Historical dependencies depends_on("py-setuptools@42:", when="@2.2", type="build") diff --git a/repos/spack_repo/builtin/packages/py_spacy/package.py b/repos/spack_repo/builtin/packages/py_spacy/package.py index d59f97eeabf..5d92d4f2aac 100644 --- a/repos/spack_repo/builtin/packages/py_spacy/package.py +++ b/repos/spack_repo/builtin/packages/py_spacy/package.py @@ -30,7 +30,7 @@ class PySpacy(PythonPackage): depends_on("py-preshed@3.0.2:3.0", type=("build", "run")) depends_on("py-murmurhash@0.28:1.0", type=("build", "run")) depends_on("py-thinc@7.4.0", type=("build", "run"), when="@2.2.4:2.2") - depends_on("py-thinc@7.4.1", type=("build", "run"), when="@2.3.0:") + depends_on("py-thinc@7.4.1", type=("build", "run"), when="@2.3.2") depends_on("py-thinc@7.4.1:7.4", type=("build", "run"), when="@2.3.7:") depends_on("py-blis@0.4.0:0.4", type=("build", "run")) depends_on("py-blis@0.4.0:0.7", type=("build", "run"), when="@2.3.7:") diff --git a/repos/spack_repo/builtin/packages/py_spacy_loggers/package.py b/repos/spack_repo/builtin/packages/py_spacy_loggers/package.py index 470a6a58e91..eec4eb073e8 100644 --- a/repos/spack_repo/builtin/packages/py_spacy_loggers/package.py +++ b/repos/spack_repo/builtin/packages/py_spacy_loggers/package.py @@ -15,6 +15,7 @@ class PySpacyLoggers(PythonPackage): license("MIT") + version("1.0.5", sha256="d60b0bdbf915a60e516cc2e653baeff946f0cfc461b452d11a4d5458c6fe5f24") version("1.0.4", sha256="e6f983bf71230091d5bb7b11bf64bd54415eca839108d5f83d9155d0ba93bf28") depends_on("python@3.6:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_sparse/package.py b/repos/spack_repo/builtin/packages/py_sparse/package.py index fa20412e990..18541605c46 100644 --- a/repos/spack_repo/builtin/packages/py_sparse/package.py +++ b/repos/spack_repo/builtin/packages/py_sparse/package.py @@ -11,14 +11,21 @@ class PySparse(PythonPackage): """This library provides multi-dimensional sparse arrays.""" homepage = "https://sparse.pydata.org" - url = "https://github.com/pydata/sparse/archive/0.11.2.tar.gz" + pypi = "sparse/sparse-0.11.2.tar.gz" + + maintainers("LydDeb") license("BSD-3-Clause") - version("0.11.2", sha256="365b6f038c4d331b3913e5fb00f5bc5dc5eadc49ef2feef332214f9bf33dbc82") + version("0.17.0", sha256="6b1ad51a810c5be40b6f95e28513ec810fe1c785923bd83b2e4839a751df4bf7") + version("0.11.2", sha256="bc5c35dbc81242237feb7a8e1f7d9c5e9dd9bb0910f6ec55f50dcc379082864f") - depends_on("python@3.6:3", type=("build", "run")) + depends_on("python@3.10:", type=("build", "run"), when="@0.17.0") + depends_on("python@3.6:3", type=("build", "run"), when="@0.11.2") depends_on("py-setuptools", type="build") + depends_on("py-setuptools@64:", type="build", when="@0.17.0") + depends_on("py-setuptools-scm@8:", type="build", when="@0.17.0") depends_on("py-numpy", type=("build", "run")) + depends_on("py-numpy@1.17:", type=("build", "run"), when="@0.17.0") depends_on("py-scipy@0.19:", type=("build", "run")) depends_on("py-numba@0.49:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_spatialpandas/package.py b/repos/spack_repo/builtin/packages/py_spatialpandas/package.py index 00fcf6b3aca..08a65ec8045 100644 --- a/repos/spack_repo/builtin/packages/py_spatialpandas/package.py +++ b/repos/spack_repo/builtin/packages/py_spatialpandas/package.py @@ -16,17 +16,24 @@ class PySpatialpandas(PythonPackage): license("BSD-2-Clause", checked_by="climbfuji") + version("0.5.0", sha256="412bb93bb25f49b6c057e825560d14c06e71137228fa99dc007b3a191bfbabd1") version("0.4.10", sha256="032e24ebb40f75c5c79cb79d7c281f2990e69ba382c0b24acb53da7bba60851c") depends_on("python@3.9:", type=("build", "run")) + depends_on("python@3.10:", type=("build", "run"), when="@0.5:") depends_on("py-hatchling", type="build") depends_on("py-hatch-vcs", type="build") depends_on("py-param", type="build") - depends_on("py-dask", type="run") + # https://github.com/holoviz/spatialpandas/issues/146 + depends_on("py-dask@:2024", type="run", when="@:0.4") + depends_on("py-dask@2025.1:", type="run", when="@0.5.0:") + depends_on("py-fsspec@2022.8:", type="run") depends_on("py-numba", type="run") depends_on("py-packaging", type="run") depends_on("py-pandas", type="run") + depends_on("py-pandas@2:", type="run", when="@0.5:") depends_on("py-pyarrow@10:", type="run") + depends_on("py-pyarrow@14.0.1:", type="run", when="@0.5:") depends_on("py-retrying", type="run") diff --git a/repos/spack_repo/builtin/packages/py_spectral/package.py b/repos/spack_repo/builtin/packages/py_spectral/package.py index 00d5f92343a..6ac54c54dd6 100644 --- a/repos/spack_repo/builtin/packages/py_spectral/package.py +++ b/repos/spack_repo/builtin/packages/py_spectral/package.py @@ -19,6 +19,7 @@ class PySpectral(PythonPackage): license("MIT") + version("0.24", sha256="d10fbdd39715e0b91f1e816f59b0f80423c60c77b87727451721df86d4b28911") version("0.22.4", sha256="b208ffd1042e32fd2276a35e098e3df26a5f6ff1310b829e97d222c66645a9af") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_sphericart/package.py b/repos/spack_repo/builtin/packages/py_sphericart/package.py new file mode 100644 index 00000000000..41e7defac57 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_sphericart/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 PySphericart(PythonPackage): + """Library for the efficient calculation of spherical harmonics + and their derivatives in Cartesian coordinates.""" + + homepage = "https://sphericart.readthedocs.io/en/latest/index.html" + pypi = "sphericart/sphericart-1.0.3.tar.gz" + git = "https://github.com/lab-cosmo/sphericart.git" + + maintainers("RMeli", "luthaf", "HaoZeke", "rubber-duck-debug") + + version("1.0.5", sha256="b1e424d85f2460bf1884f0e42355af7c846e23c4a8789a0aca545e8117edbc6e") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + # pyproject.toml + with default_args(type="build"): + depends_on("py-wheel@0.36:") + depends_on("py-setuptools@44:") + depends_on("cmake@3.30:") + + depends_on("py-numpy", type=("build", "run")) + + def setup_build_environment(self, env): + # Prevent sphericart to accidentally pick up CUDA + env.unset("CUDA_HOME") diff --git a/repos/spack_repo/builtin/packages/py_sphericart_torch/package.py b/repos/spack_repo/builtin/packages/py_sphericart_torch/package.py new file mode 100644 index 00000000000..fce38eae133 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_sphericart_torch/package.py @@ -0,0 +1,38 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PySphericartTorch(PythonPackage, CudaPackage): + """Library for the calculation of spherical harmonics in Cartesian coordinates""" + + homepage = "https://sphericart.readthedocs.io/en/latest/" + pypi = "sphericart_torch/sphericart_torch-0.0.0.tar.gz" + + maintainers("RMeli", "luthaf", "HaoZeke", "rubber-duck-debug") + + version("1.0.5", sha256="d58c372395236b339837ee35b19933fca0c9803dcecabb213bedc51178e764a3") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + # pyproject.toml + with default_args(type="build"): + depends_on("py-wheel@0.36:") + depends_on("py-setuptools@77:") + depends_on("cmake@3.30:") + depends_on("py-numpy", type=("build", "run")) + + # setup.py + depends_on("py-torch@2.1:2.9", type=("build", "run")) + + def setup_build_environment(self, env): + if self.spec.satisfies("+cuda"): + env.set("CUDA_HOME", self.spec["cuda"].prefix) + else: + env.unset("CUDA_HOME") diff --git a/repos/spack_repo/builtin/packages/py_sphinx/package.py b/repos/spack_repo/builtin/packages/py_sphinx/package.py index f9401274f3c..634bcaa8968 100644 --- a/repos/spack_repo/builtin/packages/py_sphinx/package.py +++ b/repos/spack_repo/builtin/packages/py_sphinx/package.py @@ -16,6 +16,17 @@ class PySphinx(PythonPackage): license("BSD-2-Clause") maintainers("adamjstewart") + version("9.1.0", sha256="7741722357dd75f8190766926071fed3bdc211c74dd2d7d4df5404da95930ddb") + version("9.0.4", sha256="594ef59d042972abbc581d8baa577404abe4e6c3b04ef61bd7fc2acbd51f3fa3") + version("9.0.3", sha256="98ea46e18e3fbfe222c2aebd1988b52fb20afd0dd430f8b7ce06f64d2f53300f") + version("9.0.2", sha256="96fe90c40bff08f0a4a05f3a8f637ded4109f442088f896a0c7392973b1df913") + version("9.0.1", sha256="c820d856657ce7cd41ce2c097f478ac3d7ddad9779ad83de4f0136a81ff388fd") + version("9.0.0", sha256="dc75216d69e00f170cb236eee17e66bcd89c4c2b5fe938ca8532fd7fe5abb23f") + + version("8.3.0", sha256="3bad4314a7fa72ce92344eaaa14c42ddf3177ee6a79c227e4ff8ae07d416f584") + version("8.2.3", sha256="398ad29dee7f63a75888314e9424d40f52ce5a6a87ae88e7071e80af296ec348") + version("8.2.2", sha256="4579d91485326543df44307ba36ae6150a47fee070e89e99bec3654aac5607b8") + version("8.2.1", sha256="e4b932951b9c18b039f73b72e4e63afe967d90408700ec222b981ac24647c01e") version("8.2.0", sha256="5b0067853d6e97f3fa87563e3404ebd008fce03525b55b25da90706764da6215") version("8.1.3", sha256="43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927") version("8.1.2", sha256="b19e24b51d1926567e0bb8f4fbd372e40cb19f1f62bcba91b45c9ee0cdd8874e") @@ -107,14 +118,19 @@ class PySphinx(PythonPackage): version("1.3.1", sha256="1a6e5130c2b42d2de301693c299f78cc4bd3501e78b610c08e45efc70e2b5114") with default_args(type="build"): + depends_on("py-flit-core@3.12:", when="@9:") + depends_on("py-flit-core@3.11:", when="@8.2.1:") depends_on("py-flit-core@3.10:", when="@8.2:") depends_on("py-flit-core@3.7:", when="@5.2:") with default_args(type=("build", "run")): + depends_on("python@3.12:", when="@9.1:") depends_on("python@3.11:", when="@8.2:") depends_on("python@3.10:", when="@8:") depends_on("python@3.9:", when="@7.2:") depends_on("python@3.8:", when="@6:") + # https://github.com/sphinx-doc/sphinx/issues/13701 + depends_on("python@:3.13", when="@:8") # https://github.com/sphinx-doc/sphinx/issues/10440 depends_on("python@:3.12", when="@:6.1") depends_on("py-sphinxcontrib-applehelp@1.0.7:", when="@8.1:") @@ -140,7 +156,9 @@ class PySphinx(PythonPackage): depends_on("py-pygments@2.13:", when="@6.0.1:") depends_on("py-pygments@2.12:", when="@5.2:") depends_on("py-pygments@2:") - depends_on("py-docutils@0.20:0.21", when="@7.4:") + depends_on("py-docutils@0.21:0.22", when="@9.1:") + depends_on("py-docutils@0.20:0.22", when="@9.0") + depends_on("py-docutils@0.20:0.21", when="@7.4:8") depends_on("py-docutils@0.18.1:0.21", when="@7.3") depends_on("py-docutils@0.18.1:0.20", when="@7.0.1:7.2") depends_on("py-docutils@0.18.1:0.19", when="@6.2:7.0.0") @@ -164,7 +182,7 @@ class PySphinx(PythonPackage): depends_on("py-requests@2.25:", when="@6:") depends_on("py-requests@2.5:", when="@2:") depends_on("py-requests@2.4:", when="@1.5.2:") - depends_on("py-roman-numerals-py@1:", when="@8.2:") + depends_on("py-roman-numerals@1:", when="@9:") depends_on("py-packaging@23:", when="@7.4:") depends_on("py-packaging@21:", when="@5.2:") depends_on("py-packaging", when="@1.7:") @@ -179,6 +197,7 @@ class PySphinx(PythonPackage): depends_on("py-importlib-metadata@6:", when="@7.4: ^python@:3.9") depends_on("py-importlib-metadata@4.8:", when="@5.2: ^python@:3.9") depends_on("py-importlib-metadata@4.4:", when="@4.4: ^python@:3.9") + depends_on("py-roman-numerals-py@1:", when="@8.2:8") depends_on("py-setuptools", when="@:4.3") depends_on("py-sphinxcontrib-websupport", when="@1.6:1") depends_on("py-six@1.5:", when="@:1") diff --git a/repos/spack_repo/builtin/packages/py_sphinx_book_theme/package.py b/repos/spack_repo/builtin/packages/py_sphinx_book_theme/package.py index 6924d32d4f9..71215ea5642 100644 --- a/repos/spack_repo/builtin/packages/py_sphinx_book_theme/package.py +++ b/repos/spack_repo/builtin/packages/py_sphinx_book_theme/package.py @@ -15,11 +15,27 @@ class PySphinxBookTheme(PythonPackage): license("BSD-3-Clause") + version("1.1.4", sha256="73efe28af871d0a89bd05856d300e61edce0d5b2fbb7984e84454be0fedfe9ed") + version("1.1.3", sha256="1f25483b1846cb3d353a6bc61b3b45b031f4acf845665d7da90e01ae0aef5b4d") + version("1.1.2", sha256="7f3abcd146ca82e6f39d6db53711102b1c1d328d12f65e3e47ad9bf842614a49") + version("1.1.1", sha256="e4d1058dbcc2b693c8dfa76110fa122c8219a81b3fb35c6929f23d5da9befd3e") + version("1.1.0", sha256="ad4f92998e53e24751ecd0978d3eb79fdaa59692f005b1b286ecdd6146ebc9c1") version("1.0.1", sha256="927b399a6906be067e49c11ef1a87472f1b1964075c9eea30fb82c64b20aedee") depends_on("python@3.7:", type=("build", "run")) depends_on("py-sphinx-theme-builder@0.2.0a7:", type="build") - depends_on("py-sphinx@4:6", type=("build", "run")) - depends_on("py-pydata-sphinx-theme@0.13.3:", type=("build", "run")) + depends_on("py-sphinx@4:6", type=("build", "run"), when="@:1.0") + depends_on("py-pydata-sphinx-theme@0.13.3:", type=("build", "run"), when="@:1.0") + + depends_on("py-sphinx@5:", type=("build", "run"), when="@1.1.0:") + depends_on("py-pydata-sphinx-theme@0.14:", type=("build", "run"), when="@1.1.0:") + depends_on("py-pydata-sphinx-theme@0.15.2:", type=("build", "run"), when="@1.1.3:") + depends_on("py-pydata-sphinx-theme@0.15.4", type=("build", "run"), when="@1.1.4:") + + # https://github.com/executablebooks/sphinx-book-theme/issues/865 + conflicts( + "py-pydata-sphinx-theme@0.16:", + msg="Known bug that prevents sidebar from collapsing properly", + ) diff --git a/repos/spack_repo/builtin/packages/py_sphinx_bootstrap_theme/package.py b/repos/spack_repo/builtin/packages/py_sphinx_bootstrap_theme/package.py index f3d679a307c..c16fe70fb37 100644 --- a/repos/spack_repo/builtin/packages/py_sphinx_bootstrap_theme/package.py +++ b/repos/spack_repo/builtin/packages/py_sphinx_bootstrap_theme/package.py @@ -14,6 +14,7 @@ class PySphinxBootstrapTheme(PythonPackage): license("MIT") + version("0.8.1", sha256="683e3b735448dadd0149f76edecf95ff4bd9157787e9e77e0d048ca6f1d680df") version("0.4.13", sha256="47f7719e56304026f285455bbb115525d227a6e23341d4b7f6f0b48b2eface82") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_sphinx_github_changelog/package.py b/repos/spack_repo/builtin/packages/py_sphinx_github_changelog/package.py new file mode 100644 index 00000000000..9a4a31cbdbf --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_sphinx_github_changelog/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 PySphinxGithubChangelog(PythonPackage): + """Build a sphinx changelog from GitHub Releases.""" + + homepage = "https://github.com/ewjoachim/sphinx-github-changelog" + pypi = "sphinx_github_changelog/sphinx_github_changelog-1.7.2.tar.gz" + + maintainers("adamjstewart") + + license("MIT") + + version("1.7.2", sha256="79f11f30ec5b1ae52a1742a6dc702644203b164732a1af4b049ebe522ff484e4") + + with default_args(type="build"): + depends_on("py-hatchling") + depends_on("py-uv-dynamic-versioning") + + with default_args(type=("build", "run")): + depends_on("py-docutils") + depends_on("py-requests") + depends_on("py-sphinx") diff --git a/repos/spack_repo/builtin/packages/py_sphinx_removed_in/package.py b/repos/spack_repo/builtin/packages/py_sphinx_removed_in/package.py index 7a5855a2ea6..7ed11797c3e 100644 --- a/repos/spack_repo/builtin/packages/py_sphinx_removed_in/package.py +++ b/repos/spack_repo/builtin/packages/py_sphinx_removed_in/package.py @@ -15,6 +15,7 @@ class PySphinxRemovedIn(PythonPackage): maintainers("LydDeb") + version("0.2.3", sha256="a62dfeaa7962c5b6760b55de65ef3ed2ea83afa1a7c3416ac0bb7d3dec8fd2a6") version("0.2.1", sha256="0588239cb534cd97b1d3900d0444311c119e45296a9f73f1ea81ea81a2cd3db1") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_sphinx_theme_builder/package.py b/repos/spack_repo/builtin/packages/py_sphinx_theme_builder/package.py index af28cb4eb14..135a95df114 100644 --- a/repos/spack_repo/builtin/packages/py_sphinx_theme_builder/package.py +++ b/repos/spack_repo/builtin/packages/py_sphinx_theme_builder/package.py @@ -11,19 +11,37 @@ class PySphinxThemeBuilder(PythonPackage): """A tool for authoring Sphinx themes with a simple (opinionated) workflow.""" homepage = "https://sphinx-theme-builder.readthedocs.io/en/latest" - pypi = "sphinx-theme-builder/sphinx-theme-builder-0.2.0b2.tar.gz" + pypi = "sphinx-theme-builder/sphinx_theme_builder-0.2.0b2.tar.gz" git = "https://github.com/pradyunsg/sphinx-theme-builder" license("MIT") - version("0.2.0b2", sha256="e9cd98c2bb35bf414fe721469a043cdcc10f0808d1ffcf606acb4a6282a6f288") + version("0.3.2", sha256="40b4bc2275b04d76781722c2e597770159e512f166986e1ceca1580a693f27bb") + version( + "0.2.0b2", + sha256="e9cd98c2bb35bf414fe721469a043cdcc10f0808d1ffcf606acb4a6282a6f288", + deprecated=True, + ) depends_on("py-flit-core@3.2:3", type="build") - depends_on("py-pyproject-metadata", type=("build", "run")) - depends_on("py-packaging", type=("build", "run")) - depends_on("py-rich", type=("build", "run")) - depends_on("py-nodeenv", type=("build", "run")) - depends_on("py-setuptools", type=("build", "run")) - depends_on("py-tomli", when="^python@:3.10", type=("build", "run")) - depends_on("py-typing-extensions", when="^python@:3.7", type=("build", "run")) + with default_args(type=("build", "run")): + # https://github.com/pradyunsg/sphinx-theme-builder/pull/51 + depends_on("python@:3.13", when="@:0.2") + + depends_on("py-pyproject-metadata@0.10:", when="@0.3:") + depends_on("py-pyproject-metadata") + depends_on("py-packaging") + depends_on("py-rich") + depends_on("py-nodeenv") + depends_on("py-setuptools") + depends_on("py-tomli", when="^python@:3.10") + depends_on("py-diagnostic@2:", when="@0.3:") + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/s/sphinx-theme-builder/{}-{}.tar.gz" + if version == Version("0.2.0b2"): + name = "sphinx-theme-builder" + else: + name = "sphinx_theme_builder" + return url.format(name, version) diff --git a/repos/spack_repo/builtin/packages/py_sphinxcontrib_bibtex/package.py b/repos/spack_repo/builtin/packages/py_sphinxcontrib_bibtex/package.py index c619738e7b5..152dcc94ee4 100644 --- a/repos/spack_repo/builtin/packages/py_sphinxcontrib_bibtex/package.py +++ b/repos/spack_repo/builtin/packages/py_sphinxcontrib_bibtex/package.py @@ -12,6 +12,7 @@ class PySphinxcontribBibtex(PythonPackage): pypi = "sphinxcontrib-bibtex/sphinxcontrib-bibtex-0.3.5.tar.gz" + version("2.6.5", sha256="9b3224dd6fece9268ebd8c905dc0a83ff2f6c54148a9235fe70e9d1e9ff149c0") version("2.5.0", sha256="71b42e5db0e2e284f243875326bf9936aa9a763282277d75048826fef5b00eaa") version("2.4.2", sha256="65b023ee47f35f1f03ac4d71c824e67c624c7ecac1bb26e83623271a01f9da86") version("2.2.1", sha256="00d474092e04b1d941e645cf6c027632a975cd0b9337cf47d379f63a5928f334") @@ -28,6 +29,7 @@ class PySphinxcontribBibtex(PythonPackage): depends_on("py-pybtex@0.17:", type=("build", "run"), when="@:1") depends_on("py-pybtex@0.20:", type=("build", "run"), when="@2:2.3") depends_on("py-pybtex@0.24:", type=("build", "run"), when="@2.4:") + depends_on("py-pybtex@0.25:", type=("build", "run"), when="@2.6.5:") depends_on("py-pybtex-docutils@0.2.0:", type=("build", "run"), when="@:1") depends_on("py-pybtex-docutils@0.2.2:", type=("build", "run"), when="@2:") depends_on("py-pybtex-docutils@1.0.0:", type=("build", "run"), when="@2.2:") @@ -35,6 +37,17 @@ class PySphinxcontribBibtex(PythonPackage): depends_on("py-sphinx@1.0:", type=("build", "run"), when="@:1") depends_on("py-sphinx@2.0:", type=("build", "run"), when="@2.0.0:") depends_on("py-sphinx@2.1:", type=("build", "run"), when="@2.1.3:") + depends_on("py-sphinx@3.5:", type=("build", "run"), when="@2.6.5:") depends_on("py-oset@0.1.3:", type=("build", "run"), when="@:2.0.0") depends_on("py-docutils@0.8:", type=("build", "run"), when="@2.1.0:") depends_on("py-importlib-metadata@3.6:", when="@2.5.0: ^python@:3.9", type=("build", "run")) + + conflicts("^py-docutils@0.18:0.19", when="@2.6.5") + + def url_for_version(self, version): + url = "https://pypi.org/packages/source/s/sphinxcontrib-bibtex/sphinxcontrib{}bibtex-{}.tar.gz" + if version < Version("2.6.3"): + separator = "-" + else: + separator = "_" + return url.format(separator, version) diff --git a/repos/spack_repo/builtin/packages/py_sphinxcontrib_serializinghtml/package.py b/repos/spack_repo/builtin/packages/py_sphinxcontrib_serializinghtml/package.py index 2b007919398..06d7f55b1b7 100644 --- a/repos/spack_repo/builtin/packages/py_sphinxcontrib_serializinghtml/package.py +++ b/repos/spack_repo/builtin/packages/py_sphinxcontrib_serializinghtml/package.py @@ -20,6 +20,7 @@ class PySphinxcontribSerializinghtml(PythonPackage): license("BSD-2-Clause") + version("2.0.0", sha256="e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d") version("1.1.9", sha256="0c64ff898339e1fac29abd2bf5f11078f3ec413cfe9c046d3120d7ca65530b54") version("1.1.5", sha256="aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952") version("1.1.3", sha256="c0efb33f8052c04fd7a26c0a07f1678e8512e0faec19f4aa8f2473a8b81d5227") @@ -28,7 +29,8 @@ class PySphinxcontribSerializinghtml(PythonPackage): depends_on("py-flit-core@3.7:", when="@1.1.6:", type="build") # Circular dependency - # depends_on("py-sphinx@5:", when="@1.1.6:", type=("build", "run")) + # depends_on("py-sphinx@5:", when="@1.1.6:1.1.9", type=("build", "run")) + # also a dependency for variant "standalone" # Historical dependencies depends_on("py-setuptools", when="@:1.1.5", type="build") diff --git a/repos/spack_repo/builtin/packages/py_sphinxcontrib_tikz/package.py b/repos/spack_repo/builtin/packages/py_sphinxcontrib_tikz/package.py new file mode 100644 index 00000000000..6538077ad5a --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_sphinxcontrib_tikz/package.py @@ -0,0 +1,44 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PySphinxcontribTikz(PythonPackage): + """ + This package contains the tikz Sphinx extension, which enables the use + of the PGF/TikZ LaTeX package to draw nice pictures. + """ + + homepage = "https://sphinxcontrib-tikz.readthedocs.io" + pypi = "sphinxcontrib-tikz/sphinxcontrib-tikz-0.4.20.tar.gz" + + version("0.4.20", sha256="2ee3bd1f9ca2f349c0823a4f3507d91c410e7f96be20f051fef7af1665f341ca") + + all_suites = ["pdf2svg", "netpbm", "imagemagick", "ghostscript"] + + default_suite = "pdf2svg" + + variant( + "suite", + default=default_suite, + description="Conversion suite used to convert pdfs to various image formats", + values=all_suites, + multi=True, + ) + + depends_on("python@3.7:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-sphinx", type=("build", "run")) + + for suite in ["netpbm", "imagemagick"]: + depends_on("poppler", when="suite=" + suite, type="run") + + depends_on("texlive", type="run") + depends_on("pdf2svg", when="suite=pdf2svg", type="run") + depends_on("netpbm", when="suite=netpbm", type="run") + depends_on("imagemagick", when="suite=imagemagick", type="run") + depends_on("ghostscript", when="suite=ghostscript", type="run") diff --git a/repos/spack_repo/builtin/packages/py_spython/package.py b/repos/spack_repo/builtin/packages/py_spython/package.py index f7ebd1abbc2..e4368524df3 100644 --- a/repos/spack_repo/builtin/packages/py_spython/package.py +++ b/repos/spack_repo/builtin/packages/py_spython/package.py @@ -16,6 +16,7 @@ class PySpython(PythonPackage): license("MPL-2.0") + version("0.3.14", sha256="8ad53ef034395cfa2d8a710cc1c3638e4475e5bbc6a2842d317db8013c2e4188") version("0.3.1", sha256="143557849d636697ddd80e0ba95920efe4668351f5becce6bdc73a7651aa128d") version("0.2.14", sha256="49e22fbbdebe456b27ca17d30061489db8e0f95e62be3623267a23b85e3ce0f0") @@ -23,12 +24,11 @@ class PySpython(PythonPackage): "runtime", default="none", description="Container runtime installed by Spack for this package", - values=("none", "singularityce", "singularity"), + values=("none", "singularityce"), multi=False, ) depends_on("singularityce@3.5.2:", when="runtime=singularityce", type="run") - depends_on("singularity@3.5.2:", when="runtime=singularity", type="run") depends_on("py-setuptools", type="build") depends_on("py-semver@2.8.1:", when="@:0.2", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_sqlalchemy/package.py b/repos/spack_repo/builtin/packages/py_sqlalchemy/package.py index e43daefde8d..0c27999861c 100644 --- a/repos/spack_repo/builtin/packages/py_sqlalchemy/package.py +++ b/repos/spack_repo/builtin/packages/py_sqlalchemy/package.py @@ -11,12 +11,15 @@ class PySqlalchemy(PythonPackage): """The Python SQL Toolkit and Object Relational Mapper""" homepage = "http://www.sqlalchemy.org/" - pypi = "SQLAlchemy/SQLAlchemy-1.3.9.tar.gz" + pypi = "sqlalchemy/sqlalchemy-2.0.43.tar.gz" git = "https://github.com/sqlalchemy/sqlalchemy.git" license("MIT") + version("2.0.49", sha256="d15950a57a210e36dd4cec1aac22787e2a4d57ba9318233e2ef8b2daf9ff2d5f") + version("2.0.43", sha256="788bfcef6787a7764169cfe9859fe425bf44559619e1d9f56f5bddf2ebf6f417") version("2.0.19", sha256="77a14fa20264af73ddcdb1e2b9c5a829b8cc6b8304d0f093271980e36c200a3f") + version("1.4.54", sha256="4470fbed088c35dc20b78a39aaf4ae54fe81790c783b3264872a0224f437c31a") version("1.4.49", sha256="06ff25cbae30c396c4b7737464f2a7fc37a67b7da409993b182b024cec80aed9") version("1.4.45", sha256="fd69850860093a3f69fefe0ab56d041edfdfe18510b53d9a2eaecba2f15fa795") version("1.4.44", sha256="2dda5f96719ae89b3ec0f1b79698d86eb9aecb1d54e990abb3fdd92c04b46a90") @@ -34,22 +37,44 @@ 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:") + depends_on("py-setuptools@47:", when="@2:") + depends_on("py-setuptools") + depends_on("py-cython@0.29.24:", when="@2:") + + with default_args(type=("build", "run")): + depends_on("py-importlib-metadata", when="@1.4.0: ^python@:3.7") + depends_on("py-greenlet@1:", when="@2.0.40:") + depends_on("py-greenlet", when="@1.4.0:") + depends_on("py-typing-extensions@4.6.0:", when="@2.0.25:") + depends_on("py-typing-extensions@4.2.0:", when="@2:") + + # >=1.4.0 + depends_on("py-mysqlclient@1.4:", when="backend=mysql @1.4:") + depends_on("py-psycopg2@2.7:", when="backend=postgresql @1.4:") + depends_on("py-pymysql", when="backend=pymysql @1.4:") - depends_on("py-setuptools@47:", when="@2:", type="build") - depends_on("py-setuptools", type="build") - depends_on("py-cython@0.29.24:", when="@2:", type="build") + # < 1.4.0 + depends_on("py-mysqlclient", when="backend=mysql @:1.3") + depends_on("py-pymysql", when="backend=pymysql @:1.3") + depends_on("py-psycopg2", when="backend=postgresql @:1.3") - depends_on("py-importlib-metadata", when="@1.4.0: ^python@:3.7", type=("build", "run")) - depends_on("py-greenlet", when="@1.4.0:", type=("build", "run")) - conflicts("^py-greenlet@0.4.17", when="@1.4.0:") - depends_on("py-typing-extensions@4.2.0", when="@2:", type=("build", "run")) + conflicts("^py-greenlet@0.4.17", when="@1.4:2.0.39 ^python@:3.13") - # >=1.4.0 - depends_on("py-mysqlclient@1.4:", when="backend=mysql @1.4:", type=("build", "run")) - depends_on("py-psycopg2@2.7:", when="backend=postgresql @1.4:", type=("build", "run")) - depends_on("py-pymysql", when="backend=pymysql @1.4:", type=("build", "run")) + depends_on("py-greenlet@1:", when="@2.0.40: +asyncio", type=("build", "run")) + depends_on("py-greenlet", when="@1.4: +asyncio", type=("build", "run")) - # < 1.4.0 - depends_on("py-mysqlclient", when="backend=mysql @:1.3", type=("build", "run")) - depends_on("py-pymysql", when="backend=pymysql @:1.3", type=("build", "run")) - depends_on("py-psycopg2", when="backend=postgresql @:1.3", type=("build", "run")) + def url_for_version(self, version): + if self.spec.satisfies("@2.0.33:"): + name = "sqlalchemy" + else: + name = "SQLAlchemy" + return f"https://files.pythonhosted.org/packages/source/{name[0]}/{name}/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_srsly/package.py b/repos/spack_repo/builtin/packages/py_srsly/package.py index a8eeaf963e2..52326bd69bc 100644 --- a/repos/spack_repo/builtin/packages/py_srsly/package.py +++ b/repos/spack_repo/builtin/packages/py_srsly/package.py @@ -16,6 +16,7 @@ class PySrsly(PythonPackage): license("MIT") + version("2.5.2", sha256="4092bc843c71b7595c6c90a0302a197858c5b9fe43067f62ae6a45bc3baa1c19") version("2.4.6", sha256="47b41f323aba4c9c3311abf60e443c03a9efe9c69f65dc402d173c32f7744a6f") version("2.0.1", sha256="fa3c7375be8fe75f23c27feafbfb5f738d55ffdbf02964c6896fb7684f519a52") version("2.0.0", sha256="785b00e00406120dbef4ca82925051e6b60fe870c5f84f0d22b3632d574eb870") @@ -25,6 +26,7 @@ class PySrsly(PythonPackage): depends_on("cxx", type="build") # generated depends_on("python@3.6:", when="@2:", type=("build", "run")) + depends_on("python@3.9:3.14", when="@2.5.2:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-wheel", when="@2:", type="build") depends_on("py-cython@0.25:", when="@2:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_stack_data/package.py b/repos/spack_repo/builtin/packages/py_stack_data/package.py index 26164b67086..03f9d5f42bd 100644 --- a/repos/spack_repo/builtin/packages/py_stack_data/package.py +++ b/repos/spack_repo/builtin/packages/py_stack_data/package.py @@ -16,6 +16,7 @@ class PyStackData(PythonPackage): license("MIT") + version("0.6.3", sha256="836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9") version("0.6.2", sha256="32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815") version("0.5.0", sha256="715c8855fbf5c43587b141e46cc9d9339cc0d1f8d6e0f98ed0d01c6cb974e29f") version("0.2.0", sha256="45692d41bd633a9503a5195552df22b583caf16f0b27c4e58c98d88c8b648e12") diff --git a/repos/spack_repo/builtin/packages/py_starfile/package.py b/repos/spack_repo/builtin/packages/py_starfile/package.py new file mode 100644 index 00000000000..7bdb4f2409c --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_starfile/package.py @@ -0,0 +1,41 @@ +# 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 PyStarfile(PythonPackage): + """starfile is a package for reading and writing STAR files in Python. + starfile can be used interactively to inspect/explore files or in scripts + and larger software packages to provide basic STAR file I/O functions. Data + is exposed as simple python dictionaries or pandas dataframes. This package + was designed principally for compatibility with files generated by RELION. + """ + + homepage = "https://teamtomo.org/starfile/" + pypi = "starfile/starfile-0.5.13.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("0.5.13", sha256="c9562960b06558a35c12e0bd1b8a30b71c4b676733a8b9f222c8ee94a152dc15") + version("0.5.12", sha256="2de1a05998bc1e805c333cc2bbac60ddab12753eb94ad3592c1f98639491b6c7") + version("0.5.11", sha256="cc3161ab31a2e602b5feec3d2973ac6cc4209ca685affb8f05756bebb115af1f") + version("0.5.10", sha256="b9065776ffe088f0d4c11d7edeaa2bf0388253f9c20e47efcad30457cf6924f0") + version("0.5.8", sha256="877698060dbf729e90cae4094d0137dbe1a138ca0fab98ad851d468e59be3d29") + version("0.5.7", sha256="75b81959fc5d2a955907a01684c592108439f75d9ba2d5e85f102be4a5f67af5") + version("0.5.6", sha256="e6efe40a43ceae8ec6d85ec2fae62ae570cbadb981fdc76fe4a66a1b90c36631") + version("0.5.5", sha256="e472c24554a179e74ab2c0a6c43c21a185f081b9d1c3477b009ef9ba4461fd97") + version("0.5.4", sha256="4e7cea4f871f5aeeff6829b2cd95efc0c2212ca7a3a583f5fc8ff53329bc4417") + + depends_on("python@3.8:", type=("build", "run")) + + depends_on("py-hatchling", type="build") + + depends_on("py-numpy", type=("build", "run")) + depends_on("py-pandas@2.1.1:", type=("build", "run")) + depends_on("py-arrow", type=("build", "run"), when="@0.5.5:") + depends_on("py-typing-extensions", type=("build", "run")) 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_statsmodels/package.py b/repos/spack_repo/builtin/packages/py_statsmodels/package.py index efbf86f5d81..8701353ba9f 100644 --- a/repos/spack_repo/builtin/packages/py_statsmodels/package.py +++ b/repos/spack_repo/builtin/packages/py_statsmodels/package.py @@ -21,86 +21,42 @@ class PyStatsmodels(PythonPackage): license("BSD-3-Clause") + version("0.14.6", sha256="4d17873d3e607d398b85126cd4ed7aad89e4e9d89fc744cdab1af3189a996c2a") + version("0.14.5", sha256="de260e58cccfd2ceddf835b55a357233d6ca853a1aa4f90f7553a52cc71c6ddf") version("0.14.1", sha256="2260efdc1ef89f39c670a0bd8151b1d0843567781bcafec6cda0534eb47a94f6") - with default_args(deprecated=True): - version( - "0.14.0", sha256="6875c7d689e966d948f15eb816ab5616f4928706b180cf470fd5907ab6f647a4" - ) - version( - "0.13.5", sha256="593526acae1c0fda0ea6c48439f67c3943094c542fe769f8b90fe9e6c6cc4871" - ) - version( - "0.13.2", sha256="77dc292c9939c036a476f1770f9d08976b05437daa229928da73231147cde7d4" - ) - version( - "0.13.1", sha256="006ec8d896d238873af8178d5475203844f2c391194ed8d42ddac37f5ff77a69" - ) - version( - "0.13.0", sha256="f2efc02011b7240a9e851acd76ab81150a07d35c97021cb0517887539a328f8a" - ) - version( - "0.12.2", sha256="8ad7a7ae7cdd929095684118e3b05836c0ccb08b6a01fe984159475d174a1b10" - ) - version( - "0.12.1", sha256="a271b4ccec190148dccda25f0cbdcbf871f408fc1394a10a7dc1af4a62b91c8e" - ) - version( - "0.10.2", sha256="9cd2194c6642a8754e85f9a6e6912cdf996bebf6ff715d3cc67f65dadfd37cc9" - ) - version( - "0.10.1", sha256="320659a80f916c2edf9dfbe83512d9004bb562b72eedb7d9374562038697fa10" - ) - depends_on("c", type="build") # generated depends_on("fortran", type="build") # generated - depends_on("python@3.8:", when="@0.14:", type=("build", "link", "run")) - depends_on("python", type=("build", "link", "run")) - - depends_on("py-setuptools@69.0.2:", when="@0.14.1: ^python@3.12:", type="build") - depends_on("py-setuptools@63.4.3:", when="@0.14.1:", type="build") - depends_on("py-setuptools@59.2:", when="@0.13.3:", type="build") - depends_on("py-setuptools@0.6c5:", type="build") + depends_on("python@3.9:", when="@0.14.2:", type=("build", "link", "run")) + depends_on("python@3.8:", type=("build", "link", "run")) - # pyproject.toml + depends_on("py-setuptools@69.0.2:", when="@0.14.1:", type="build") + depends_on("py-setuptools@69.0.2:", when="@0.14.1 ^python@3.12:", type="build") + depends_on("py-setuptools@63.4.3:", when="@0.14.1", type="build") + depends_on("py-cython@3.0.10:3", when="@0.14.2:", type="build") depends_on("py-cython@0.29.33:3", when="@0.14.1", type="build") - depends_on("py-cython@0.29.26:2", when="@0.14.0", type="build") - depends_on("py-cython@0.29.32:2", when="@0.13.5:0.13", type="build") - depends_on("py-cython@0.29.22:2", when="@0.13:0.13.4", type="build") - depends_on("py-cython@0.29.14:2", when="@0.12", type="build") - depends_on("py-cython@0.29:2", when="@:0.11", type="build") depends_on("py-setuptools-scm+toml@8", when="@0.14.1:", type="build") - depends_on("py-setuptools-scm+toml@7.0", when="@0.13.3:0.14.0", type="build") # patsy@0.5.1 works around a Python change # https://github.com/statsmodels/statsmodels/issues/5343 and # https://github.com/pydata/patsy/pull/131 # requirements.txt - depends_on("py-numpy@1.22.3:1", when="@0.14.1:", type=("build", "link", "run")) - depends_on("py-numpy@1.18:1", when="@0.14:", type=("build", "link", "run")) - depends_on("py-numpy@1.17:", when="@0.13:", type=("build", "link", "run")) - depends_on("py-numpy@1.15:", when="@0.12.1:", type=("build", "link", "run")) - depends_on("py-numpy@1.11:", when="@0.10.1:", type=("build", "link", "run")) - # https://github.com/statsmodels/statsmodels/issues/9194 - depends_on("py-numpy@:1", when="@:0.14.1", type=("build", "link", "run")) - depends_on("py-scipy@1.4:", when="@0.13.5:", type=("build", "run")) - conflicts("^py-scipy@1.9.2", when="@:0.14.1") - depends_on("py-scipy@1.3:", when="@0.13:", type=("build", "run")) - depends_on("py-scipy@1.2:", when="@0.12:", type=("build", "run")) - depends_on("py-scipy@0.18:", when="@0.10.1:", type=("build", "run")) + depends_on("py-numpy@1.22.3:2", when="@0.14.3:", type=("build", "link", "run")) + depends_on("py-numpy@1.22.3:1", when="@0.14.1", type=("build", "link", "run")) + depends_on("py-scipy@1.8:", when="@0.14.2:", type=("build", "run")) + depends_on("py-scipy@1.4:", when="@0.13.5:0.14.1", type=("build", "run")) + depends_on("py-pandas@1.4:", when="@0.14:", type=("build", "run")) depends_on("py-pandas@1:", when="@0.14:", type=("build", "run")) - conflicts("^py-scipy@2.1.0", when="@:0.14.1") depends_on("py-pandas@0.25:", when="@0.13:", type=("build", "run")) - depends_on("py-pandas@0.23:", when="@0.12:", type=("build", "run")) - depends_on("py-pandas@0.19:", when="@0.10.1:", type=("build", "run")) - depends_on("py-patsy@0.5.4:", when="@0.14.1:", type=("build", "run")) - depends_on("py-patsy@0.5.2:", when="@0.13:", type=("build", "run")) - depends_on("py-patsy@0.5.1:", when="@0.12:", type=("build", "run")) - depends_on("py-patsy@0.4:", when="@0.10.1:", type=("build", "run")) + depends_on("py-patsy@0.5.6:", when="@0.14.2:", type=("build", "run")) + depends_on("py-patsy@0.5.4:", when="@0.14.1", type=("build", "run")) depends_on("py-packaging@21.3:", when="@0.13.2:", type=("build", "run")) + conflicts("^py-scipy@1.9.2") + conflicts("^py-pandas@2.1.0") + depends_on("py-pytest", type="test") @run_before("install") @@ -115,5 +71,5 @@ def remove_generated_sources(self): def build_test(self): dirs = glob.glob("build/lib*") # There can be only one... with working_dir(dirs[0]): - pytest = which("pytest") + pytest = which("pytest", required=True) pytest("statsmodels") diff --git a/repos/spack_repo/builtin/packages/py_stevedore/package.py b/repos/spack_repo/builtin/packages/py_stevedore/package.py index 8b129ab21da..625ae9d2aa4 100644 --- a/repos/spack_repo/builtin/packages/py_stevedore/package.py +++ b/repos/spack_repo/builtin/packages/py_stevedore/package.py @@ -29,7 +29,7 @@ class PyStevedore(PythonPackage): depends_on("python@3.8:", type=("build", "run"), when="@4.0.0:") depends_on("py-setuptools", type="build") + depends_on("py-pbr@2.0.0:", type="build", when="@3.5.0:") depends_on("py-six@1.10.0:", type=("build", "run"), when="@:3.4") depends_on("py-pbr@2.0.0:2.1.0", type=("build", "run"), when="@:3.4") - depends_on("py-pbr@2.0.0:", type=("build", "run"), when="@3.5.0:") diff --git a/repos/spack_repo/builtin/packages/py_stringzilla/package.py b/repos/spack_repo/builtin/packages/py_stringzilla/package.py new file mode 100644 index 00000000000..b8eb90e8e22 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_stringzilla/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 PyStringzilla(PythonPackage): + """Search, hash, sort, and process strings faster via SWAR and SIMD""" + + homepage = "https://github.com/ashvardanian/StringZilla" + pypi = "stringzilla/stringzilla-4.2.1.tar.gz" + + license("Apache-2.0") + + version("4.2.1", sha256="fd15835ab3b78b09dba678c66b36715bcf7f9e550994ea09abcc8eb7a5e1c9f7") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@61:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_supermercado/package.py b/repos/spack_repo/builtin/packages/py_supermercado/package.py new file mode 100644 index 00000000000..02ff2d2e8eb --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_supermercado/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 PySupermercado(PythonPackage): + """supermercado extends the functionality of mercantile with additional commands""" + + pypi = "supermercado/supermercado-0.3.0.tar.gz" + git = "https://github.com/mapbox/supermercado" + + license("MIT", checked_by="Chrismarsh") + + version("0.3.0", sha256="d8cc7519cb25f1142ee0e7c9e40b9be9a5688c3ac1f90a87d165286c3bfe44b6") + + depends_on("py-setuptools@68:", type="build") + depends_on("python@3.10:") diff --git a/repos/spack_repo/builtin/packages/py_superqt/package.py b/repos/spack_repo/builtin/packages/py_superqt/package.py index 695492b90ff..1a84e06d6ce 100644 --- a/repos/spack_repo/builtin/packages/py_superqt/package.py +++ b/repos/spack_repo/builtin/packages/py_superqt/package.py @@ -15,15 +15,23 @@ class PySuperqt(PythonPackage): license("BSD-3-Clause", checked_by="A-N-Other") + version("0.7.8", sha256="799c76d780ad9ca289a6a87d481686e28d85e47e2383d1579f57a02b572392a8") + version("0.7.6", sha256="822fdba71dc391929c9d3db839f78ca2a861e2f2876926f969a288dfb2a9787e") version("0.6.1", sha256="f1a9e0499c4bbcef34b6f895eb57cd41301b3799242cd030029238124184dade") + variant("iconify", default=False, description="Use Iconify icons keys") + depends_on("python@3.8:", type=("build", "run")) depends_on("py-hatchling", type="build") depends_on("py-hatch-vcs", type="build") - depends_on("py-packaging", type=("build", "run")) - depends_on("py-pygments@2.4:", type=("build", "run")) - depends_on("py-qtpy@1.1:", type=("build", "run")) - depends_on("py-typing-extensions@3.7.4.3:", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("py-packaging") + depends_on("py-pygments@2.4:") + depends_on("py-qtpy@2.4:", when="@0.7.6:") + depends_on("py-qtpy@1.1:") + depends_on("py-typing-extensions@4.5:", when="@0.7.6:") + depends_on("py-typing-extensions@3.7.4.3:", when="@0.6.1") + depends_on("py-pyconify", when="+iconify") conflicts("^py-typing-extensions@3.10.0.0") diff --git a/repos/spack_repo/builtin/packages/py_supervisor/package.py b/repos/spack_repo/builtin/packages/py_supervisor/package.py index 5d773d2c201..fc13e7fae98 100644 --- a/repos/spack_repo/builtin/packages/py_supervisor/package.py +++ b/repos/spack_repo/builtin/packages/py_supervisor/package.py @@ -11,7 +11,7 @@ class PySupervisor(PythonPackage): """A system for controlling process state under UNIX""" - homepage = "http://supervisord.org" + homepage = "https://supervisord.org" pypi = "supervisor/supervisor-4.2.4.tar.gz" version("4.2.4", sha256="40dc582ce1eec631c3df79420b187a6da276bbd68a4ec0a8f1f123ea616b97a2") diff --git a/repos/spack_repo/builtin/packages/py_sympy/package.py b/repos/spack_repo/builtin/packages/py_sympy/package.py index d7d9e9bc07c..9fd1f0bd4c8 100644 --- a/repos/spack_repo/builtin/packages/py_sympy/package.py +++ b/repos/spack_repo/builtin/packages/py_sympy/package.py @@ -10,10 +10,13 @@ class PySympy(PythonPackage): """SymPy is a Python library for symbolic mathematics.""" + homepage = "https://www.sympy.org" pypi = "sympy/sympy-0.7.6.tar.gz" + git = "https://github.com/sympy/sympy.git" license("BSD-3-Clause") + version("1.14.0", sha256="d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517") version("1.13.3", sha256="b27fd2c6530e0ab39e275fc9b683895367e51d5da91baa8d3d64db2565fec4d9") version("1.13.1", sha256="9cebf7e04ff162015ce31c9c6c9144daa34a93bd082f54fd8f12deca4f47515f") version("1.13.0", sha256="3b6af8f4d008b9a1a6a4268b335b984b23835f26d1d60b0526ebc71d48a25f57") @@ -38,6 +41,7 @@ class PySympy(PythonPackage): depends_on("python@3.5:", when="@1.6", type=("build", "run")) depends_on("python@3.6:", when="@1.7:", type=("build", "run")) depends_on("python@3.8:", when="@1.11.1:", type=("build", "run")) + depends_on("python@3.9:", when="@1.14:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-mpmath@0.19:", when="@1.0:1.12", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_tabledata/package.py b/repos/spack_repo/builtin/packages/py_tabledata/package.py new file mode 100644 index 00000000000..5390f4dd29e --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_tabledata/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyTabledata(PythonPackage): + """tabledata is a Python library to represent tabular data.""" + + homepage = "https://github.com/thombashi/tabledata" + pypi = "tabledata/tabledata-1.3.4.tar.gz" + + license("MIT") + + version("1.3.4", sha256="e9649cab129d718f3bff4150083b77f8a78c30f6634a30caf692b10fdc60cb97") + + with default_args(type="build"): + depends_on("py-setuptools@64:") + depends_on("py-setuptools-scm@8:") + + with default_args(type=("build", "run")): + depends_on("py-dataproperty@1.0.1:1") + depends_on("py-typepy@1.2:1") diff --git a/repos/spack_repo/builtin/packages/py_tables/package.py b/repos/spack_repo/builtin/packages/py_tables/package.py index c0c1a287375..d3b65354d02 100644 --- a/repos/spack_repo/builtin/packages/py_tables/package.py +++ b/repos/spack_repo/builtin/packages/py_tables/package.py @@ -17,7 +17,8 @@ class PyTables(PythonPackage): license("BSD-3-Clause") - version("master", branch="master") + version("master", branch="master", submodules=True) + version("3.10.2", sha256="2544812a7186fadba831d6dd34eb49ccd788d6a83f4e4c2b431b835b6796c910") version("3.9.0", sha256="27c9ca14c359d875caf945a6a527c12690e017650402dd17d8eb8b6caf6687d5") version("3.8.0", sha256="34f3fa2366ce20b18f1df573a77c1d27306ce1f2a41d9f9eff621b5192ea8788") version("3.7.0", sha256="e92a887ad6f2a983e564a69902de4a7645c30069fc01abd353ec5da255c5e1fe") @@ -50,8 +51,10 @@ class PyTables(PythonPackage): depends_on("py-numpy@1.19:", when="@3.8:", type=("build", "run")) depends_on("py-numpy@1.9.3:", type=("build", "run")) # https://github.com/PyTables/PyTables/issues/1083 - depends_on("py-numpy@:1", type=("build", "run")) + depends_on("py-numpy@:1", type=("build", "run"), when="@:3.9") + depends_on("py-numpy@1.25:", type=("build", "run"), when="@3.10:") depends_on("py-numexpr@2.6.2:", type=("build", "run")) + depends_on("py-numexpr@2.10.2:", type=("build", "run"), when="@3.10:") depends_on("py-packaging", when="@3.7:", type=("build", "run")) depends_on("py-py-cpuinfo", when="@3.8:", type=("build", "run")) depends_on("py-blosc2@2.2.8:", when="@3.9:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_tcolorpy/package.py b/repos/spack_repo/builtin/packages/py_tcolorpy/package.py new file mode 100644 index 00000000000..882c3037cbf --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_tcolorpy/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyTcolorpy(PythonPackage): + """tcolopy is a Python library to apply true color for terminal text.""" + + homepage = "https://github.com/thombashi/tcolorpy" + pypi = "tcolorpy/tcolorpy-0.1.7.tar.gz" + + license("MIT") + + version("0.1.7", sha256="0fbf6bf238890bbc2e32662aa25736769a29bf6d880328f310c910a327632614") + + with default_args(type="build"): + depends_on("py-setuptools@64:") + depends_on("py-setuptools-scm@8:") diff --git a/repos/spack_repo/builtin/packages/py_tensorboard/package.py b/repos/spack_repo/builtin/packages/py_tensorboard/package.py index cf55bbfb175..7999d15dba2 100644 --- a/repos/spack_repo/builtin/packages/py_tensorboard/package.py +++ b/repos/spack_repo/builtin/packages/py_tensorboard/package.py @@ -21,6 +21,8 @@ class PyTensorboard(PythonPackage): license("Apache-2.0") maintainers("aweits") + version("2.20.0", sha256="9dc9f978cb84c0723acf9a345d96c184f0293d18f166bb8d59ee098e6cfaaba6") + version("2.19.0", sha256="5e71b98663a641a7ce8a6e70b0be8e1a4c0c45d48760b076383ac4755c35b9a0") version("2.18.0", sha256="107ca4821745f73e2aefa02c50ff70a9b694f39f790b11e6f682f7d326745eab") version("2.17.1", sha256="253701a224000eeca01eee6f7e978aea7b408f60b91eb0babdb04e78947b773e") version("2.17.0", sha256="859a499a9b1fb68a058858964486627100b71fcb21646861c61d31846a6478fb") @@ -67,14 +69,15 @@ class PyTensorboard(PythonPackage): # https://github.com/tensorflow/tensorboard/pull/5138 depends_on("py-numpy@:1.23", when="@:2.5") depends_on("py-packaging", when="@2.18:") + depends_on("pil", when="@2.20:") depends_on("py-protobuf@3.19.6:", when="@2.15.2:2.16,2.18:") depends_on("py-protobuf@3.19.6:4", when="@2.17") depends_on("py-protobuf@3.19.6:4.23", when="@2.12:2.15.1") depends_on("py-protobuf@3.9.2:3", when="@2.11") depends_on("py-protobuf@3.9.2:3.19", when="@2.9:2.10") depends_on("py-protobuf@3.6.0:3.19", when="@:2.8") - depends_on("py-setuptools@41:") - depends_on("py-six@1.10:", when="@:2.4,2.14:") + # https://github.com/tensorflow/tensorboard/issues/7003 + depends_on("py-setuptools@41:81") depends_on("py-tensorboard-data-server@0.7", when="@2.12:") depends_on("py-tensorboard-data-server@0.6", when="@2.5:2.11") depends_on("py-werkzeug@1.0.1:", when="@2.9:") @@ -87,6 +90,7 @@ class PyTensorboard(PythonPackage): depends_on("py-google-auth-oauthlib@0.5:1.0", when="@2.12.1:2.14") depends_on("py-google-auth-oauthlib@0.4.1:0.4", when="@:2.12.0") depends_on("py-requests@2.21.0:2", when="@:2.15") + depends_on("py-six@1.9.1:", when="@:2.4,2.14:2.19") depends_on("py-tensorboard-plugin-wit@1.6.0:", when="@:2.13") conflicts("^py-protobuf@4.24.0") diff --git a/repos/spack_repo/builtin/packages/py_tensorboard_data_server/package.py b/repos/spack_repo/builtin/packages/py_tensorboard_data_server/package.py index 7ce2f0d9492..18d8ad8e2a9 100644 --- a/repos/spack_repo/builtin/packages/py_tensorboard_data_server/package.py +++ b/repos/spack_repo/builtin/packages/py_tensorboard_data_server/package.py @@ -22,6 +22,7 @@ class PyTensorboardDataServer(PythonPackage): depends_on("py-setuptools", type="build") depends_on("rust+dev", type="build") + depends_on("rust@:1.89+dev", type="build", when="@:0.6") # https://github.com/tensorflow/tensorboard/issues/5713 patch( @@ -35,12 +36,9 @@ class PyTensorboardDataServer(PythonPackage): when="@0.6.1", ) - def setup_build_environment(self, env: EnvironmentModifications) -> None: - env.set("CARGO_HOME", self.stage.source_path) - def install(self, spec, prefix): with working_dir(join_path("tensorboard", "data", "server")): - cargo = which("cargo") + cargo = which("cargo", required=True) cargo("build", "--release") with working_dir(join_path("tensorboard", "data", "server", "pip_package")): diff --git a/repos/spack_repo/builtin/packages/py_tensorflow/package.py b/repos/spack_repo/builtin/packages/py_tensorflow/package.py index 030ce3fd19d..657a201591d 100644 --- a/repos/spack_repo/builtin/packages/py_tensorflow/package.py +++ b/repos/spack_repo/builtin/packages/py_tensorflow/package.py @@ -22,7 +22,6 @@ "rccl", "hipsparse", "rocprim", - "llvm-amdgpu", "hsa-rocr-dev", "rocminfo", "hipsolver", @@ -49,13 +48,26 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): maintainers("adamjstewart", "aweits") tags = ["e4s"] - version("2.18.1", sha256="467c512b631e72ad5c9d5c16b23669bcf89675de630cfbb58f9dde746d34afa8") version( - "2.18.0-rocm-enhanced", - sha256="85f44bed166927b2e22db28f5c4e4538da22221fedd9c2f47c763c52a0e40814", - url="https://github.com/ROCm/tensorflow-upstream/archive/refs/tags/v2.18.0-rocm-enhanced.tar.gz", + "2.20.0-rocm-enhanced", + sha256="1db75eb24f617ac0b1aea417c294cbdf98ec7ede3cb2957e07c1e9f8eefa8713", + url="https://github.com/ROCm/tensorflow-upstream/archive/refs/tags/v2.20.0-rocm-enhanced.tar.gz", ) - version("2.18.0", sha256="d7876f4bb0235cac60eb6316392a7c48676729860da1ab659fb440379ad5186d") + version("2.20.0", sha256="a640d1f97be316a09301dfc9347e3d929ad4d9a2336e3ca23c32c93b0ff7e5d0") + version("2.19.1", sha256="fcfb3e88ab3eebdbab98a03c869a4d2616d52ea166c8d8021de1ef921b47be8d") + version("2.19.0", sha256="4691b18e8c914cdf6759b80f1b3b7f3e17be41099607ed0143134f38836d058e") + version("2.18.1", sha256="467c512b631e72ad5c9d5c16b23669bcf89675de630cfbb58f9dde746d34afa8") + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2025-55559/ + # https://www.cvedetails.com/cve/CVE-2025-55556/ + version( + "2.18.0-rocm-enhanced", + sha256="85f44bed166927b2e22db28f5c4e4538da22221fedd9c2f47c763c52a0e40814", + url="https://github.com/ROCm/tensorflow-upstream/archive/refs/tags/v2.18.0-rocm-enhanced.tar.gz", + ) + version( + "2.18.0", sha256="d7876f4bb0235cac60eb6316392a7c48676729860da1ab659fb440379ad5186d" + ) version("2.17.1", sha256="2d3cfb48510f92f3a52fb05b820481c6f066a342a9f5296fe26d72c4ea757700") version("2.17.0", sha256="9cc4d5773b8ee910079baaecb4086d0c28939f024dd74b33fc5e64779b6533dc") version("2.16.2", sha256="023849bf253080cb1e4f09386f5eb900492da2288274086ed6cfecd6d99da9eb") @@ -76,121 +88,70 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): version("2.14.0", sha256="ce357fd0728f0d1b0831d1653f475591662ec5bca736a94ff789e6b1944df19f") version("2.13.1", sha256="89c07aebd4f41fbe0d08cc88aef00305542134f2f16d3b62918dc3c1182f33e2") version("2.13.0", sha256="e58c939079588623e6fa1d054aec2f90f95018266e0a970fd353a5244f5173dc") - version("2.12.1", sha256="6bc4600cc0b88e9e40f1800096f5bddbbd3b6e5527a030dea631b87f2ae46b5b") - version("2.12.0", sha256="c030cb1905bff1d2446615992aad8d8d85cbe90c4fb625cee458c63bf466bc8e") - version("2.11.1", sha256="624ed1cc170cdcc19e8a15d8cdde989a9a1c6b0534c90b38a6b2f06fb2963e5f") - version( - "2.11.0-rocm-enhanced", - sha256="0c4ee8d83bc72215cbc1a5cd3e88cde1a9cf7304237d3e3d8d105ff09827d903", - url="https://github.com/ROCmSoftwarePlatform/tensorflow-upstream/archive/refs/tags/v2.11.0-rocm-enhanced.tar.gz", - ) - version("2.11.0", sha256="99c732b92b1b37fc243a559e02f9aef5671771e272758aa4aec7f34dc92dac48") - version("2.10.1", sha256="622a92e22e6f3f4300ea43b3025a0b6122f1cc0e2d9233235e4c628c331a94a3") - version("2.10.0", sha256="b5a1bb04c84b6fe1538377e5a1f649bb5d5f0b2e3625a3c526ff3a8af88633e8") - version("2.9.3", sha256="59d09bd00eef6f07477eea2f50778582edd4b7b2850a396f1fd0c646b357a573") - version("2.9.2", sha256="8cd7ed82b096dc349764c3369331751e870d39c86e73bbb5374e1664a59dcdf7") - version("2.9.1", sha256="6eaf86ead73e23988fe192da1db68f4d3828bcdd0f3a9dc195935e339c95dbdc") - version("2.9.0", sha256="8087cb0c529f04a4bfe480e49925cd64a904ad16d8ec66b98e2aacdfd53c80ff") - version("2.8.4", sha256="c08a222792bdbff9da299c7885561ee27b95d414d1111c426efac4ccdce92cde") - version("2.8.3", sha256="4b7ecbe50b36887e1615bc2a582cb86df1250004d8bb540e18336d539803b5a7") - version("2.8.2", sha256="b3f860c02c22a30e9787e2548ca252ab289a76b7778af6e9fa763d4aafd904c7") - version("2.8.1", sha256="4b487a63d6f0c1ca46a2ac37ba4687eabdc3a260c222616fa414f6df73228cec") - version("2.8.0", sha256="66b953ae7fba61fd78969a2e24e350b26ec116cf2e6a7eb93d02c63939c6f9f7") - version( - "2.7.4-rocm-enhanced", - sha256="45b79c125edfdc008274f1b150d8b5a53b3ff4713fd1ad1ff4738f515aad8191", - url="https://github.com/ROCmSoftwarePlatform/tensorflow-upstream/archive/refs/tags/v2.7.4-rocm-enhanced.tar.gz", - ) - version("2.7.4", sha256="75b2e40a9623df32da16d8e97528f5e02e4a958e23b1f2ee9637be8eec5d021b") - version("2.7.3", sha256="b576c2e124cd6d4d04cbfe985430a0d955614e882172b2258217f0ec9b61f39b") - version("2.7.2", sha256="b3c8577f3b7cc82368ff7f9315821d506abd2f716ea6692977d255b7d8bc54c0") - version("2.7.1", sha256="abebe2cf5ca379e18071693ca5f45b88ade941b16258a21cc1f12d77d5387a21") - version("2.7.0", sha256="bb124905c7fdacd81e7c842b287c169bbf377d29c74c9dacc04f96c9793747bb") - version("2.6.5", sha256="305da42845ac584a42494e521c92a88ce92ee47d93022d4c0bb45180b5c19a8c") - version("2.6.4", sha256="6a9e54f46039ef0a6f0a1adf19befa510044d3203d1e124dba8318ec4b1e0210") - version("2.6.3", sha256="7a71dde0987677b9512b202eb6ae119e0e308b1ea15b66dcfce001a44873997b") - version("2.6.2", sha256="e68c1d346fc3d529653530ca346b2c62f5b31bd4fcca7ffc9c65bb39ab2f6ed3") - version("2.6.1", sha256="8e457f617bc2eb43de2a51900e7922b60a8107e2524b2576438f1acccee1d043") - version("2.6.0", sha256="41b32eeaddcbc02b0583660bcf508469550e4cd0f86b22d2abe72dfebeacde0f") - version("2.5.3", sha256="58d69b7163f7624debc243750976d27fa7dddbc6fb7c5215aec94732bcc670e1") - version("2.5.2", sha256="bcccc6ba0b8ac1d10d3302f766eed71911acecc0bc43d0bd27d97a1e7ce275a8") - version("2.5.1", sha256="8d2728e155a3aa6befd9cb3d0980fabd25e2142d124f8f6b6c78cdf17ff79da5") - version("2.5.0", sha256="233875ea27fc357f6b714b2a0de5f6ff124b50c1ee9b3b41f9e726e9e677b86c") - version( - "2.4.4", - sha256="f1abc3ed92c3ce955db2a7db5ec422a3a98f015331183194f97b99fe77a09bb4", - deprecated=True, - ) - version( - "2.4.3", - sha256="cafd520c753f8755a9eb1262932f685dc722d8658f08373f8ec88d8acd58d7d4", - deprecated=True, - ) - version( - "2.4.2", - sha256="edc88da97277906513d53eeee57997a2036fa32ac1f1937730301764fa06cdc0", - deprecated=True, - ) - version( - "2.4.1", - sha256="f681331f8fc0800883761c7709d13cda11942d4ad5ff9f44ad855e9dc78387e0", - deprecated=True, - ) - version( - "2.4.0", - sha256="26c833b7e1873936379e810a39d14700281125257ddda8cd822c89111db6f6ae", - deprecated=True, - ) - version( - "2.3.4", - sha256="195947838b0918c15d79bc6ed85ff714b24d6d564b4d07ba3de0b745a2f9b656", - deprecated=True, - ) - version( - "2.3.3", - sha256="b91e5bcd373b942c4a62c6bcb7ff6f968b1448152b82f54a95dfb0d8fb9c6093", - deprecated=True, - ) - version( - "2.3.2", - sha256="21a703d2e68cd0677f6f9ce329198c24fd8203125599d791af9f1de61aadf31f", - deprecated=True, - ) - version( - "2.3.2", - sha256="21a703d2e68cd0677f6f9ce329198c24fd8203125599d791af9f1de61aadf31f", - deprecated=True, - ) - version( - "2.3.1", - sha256="ee534dd31a811f7a759453567257d1e643f216d8d55a25c32d2fbfff8153a1ac", - deprecated=True, - ) - version( - "2.3.0", - sha256="2595a5c401521f20a2734c4e5d54120996f8391f00bb62a57267d930bce95350", - deprecated=True, - ) - version( - "2.2.3", - sha256="5e6c779ca8392864d436d88893461dcce783c3a8d46dcb2b2f2ee8ece3cc4538", - deprecated=True, - ) - version( - "2.2.2", - sha256="fb4b5d26c5b983350f7ce8297b71176a86a69e91faf66e6ebb1e58538ad3bb51", - deprecated=True, - ) - version( - "2.2.1", - sha256="e6a28e64236d729e598dbeaa02152219e67d0ac94d6ed22438606026a02e0f88", - deprecated=True, - ) - version( - "2.2.0", - sha256="69cd836f87b8c53506c4f706f655d423270f5a563b76dc1cfa60fbc3184185a3", - deprecated=True, - ) + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2024-3660/ + # https://www.cvedetails.com/cve/CVE-2023-33976/ + version( + "2.12.1", sha256="6bc4600cc0b88e9e40f1800096f5bddbbd3b6e5527a030dea631b87f2ae46b5b" + ) + version( + "2.12.0", sha256="c030cb1905bff1d2446615992aad8d8d85cbe90c4fb625cee458c63bf466bc8e" + ) + version( + "2.11.1", sha256="624ed1cc170cdcc19e8a15d8cdde989a9a1c6b0534c90b38a6b2f06fb2963e5f" + ) + # https://www.cvedetails.com/cve/CVE-2023-27579/ + # https://www.cvedetails.com/cve/CVE-2023-25801/ + # https://www.cvedetails.com/cve/CVE-2023-25676/ + # https://www.cvedetails.com/cve/CVE-2023-25675/ + # https://www.cvedetails.com/cve/CVE-2023-25674/ + # https://www.cvedetails.com/cve/CVE-2023-25673/ + # https://www.cvedetails.com/cve/CVE-2023-25672/ + # https://www.cvedetails.com/cve/CVE-2023-25671/ + # and many, many more... + version( + "2.11.0-rocm-enhanced", + sha256="0c4ee8d83bc72215cbc1a5cd3e88cde1a9cf7304237d3e3d8d105ff09827d903", + url="https://github.com/ROCmSoftwarePlatform/tensorflow-upstream/archive/refs/tags/v2.11.0-rocm-enhanced.tar.gz", + ) + version( + "2.11.0", sha256="99c732b92b1b37fc243a559e02f9aef5671771e272758aa4aec7f34dc92dac48" + ) + version( + "2.10.1", sha256="622a92e22e6f3f4300ea43b3025a0b6122f1cc0e2d9233235e4c628c331a94a3" + ) + version( + "2.10.0", sha256="b5a1bb04c84b6fe1538377e5a1f649bb5d5f0b2e3625a3c526ff3a8af88633e8" + ) + version("2.9.3", sha256="59d09bd00eef6f07477eea2f50778582edd4b7b2850a396f1fd0c646b357a573") + version("2.9.2", sha256="8cd7ed82b096dc349764c3369331751e870d39c86e73bbb5374e1664a59dcdf7") + version("2.9.1", sha256="6eaf86ead73e23988fe192da1db68f4d3828bcdd0f3a9dc195935e339c95dbdc") + version("2.9.0", sha256="8087cb0c529f04a4bfe480e49925cd64a904ad16d8ec66b98e2aacdfd53c80ff") + version("2.8.4", sha256="c08a222792bdbff9da299c7885561ee27b95d414d1111c426efac4ccdce92cde") + version("2.8.3", sha256="4b7ecbe50b36887e1615bc2a582cb86df1250004d8bb540e18336d539803b5a7") + version("2.8.2", sha256="b3f860c02c22a30e9787e2548ca252ab289a76b7778af6e9fa763d4aafd904c7") + version("2.8.1", sha256="4b487a63d6f0c1ca46a2ac37ba4687eabdc3a260c222616fa414f6df73228cec") + version("2.8.0", sha256="66b953ae7fba61fd78969a2e24e350b26ec116cf2e6a7eb93d02c63939c6f9f7") + version( + "2.7.4-rocm-enhanced", + sha256="45b79c125edfdc008274f1b150d8b5a53b3ff4713fd1ad1ff4738f515aad8191", + url="https://github.com/ROCmSoftwarePlatform/tensorflow-upstream/archive/refs/tags/v2.7.4-rocm-enhanced.tar.gz", + ) + version("2.7.4", sha256="75b2e40a9623df32da16d8e97528f5e02e4a958e23b1f2ee9637be8eec5d021b") + version("2.7.3", sha256="b576c2e124cd6d4d04cbfe985430a0d955614e882172b2258217f0ec9b61f39b") + version("2.7.2", sha256="b3c8577f3b7cc82368ff7f9315821d506abd2f716ea6692977d255b7d8bc54c0") + version("2.7.1", sha256="abebe2cf5ca379e18071693ca5f45b88ade941b16258a21cc1f12d77d5387a21") + version("2.7.0", sha256="bb124905c7fdacd81e7c842b287c169bbf377d29c74c9dacc04f96c9793747bb") + version("2.6.5", sha256="305da42845ac584a42494e521c92a88ce92ee47d93022d4c0bb45180b5c19a8c") + version("2.6.4", sha256="6a9e54f46039ef0a6f0a1adf19befa510044d3203d1e124dba8318ec4b1e0210") + version("2.6.3", sha256="7a71dde0987677b9512b202eb6ae119e0e308b1ea15b66dcfce001a44873997b") + version("2.6.2", sha256="e68c1d346fc3d529653530ca346b2c62f5b31bd4fcca7ffc9c65bb39ab2f6ed3") + version("2.6.1", sha256="8e457f617bc2eb43de2a51900e7922b60a8107e2524b2576438f1acccee1d043") + version("2.6.0", sha256="41b32eeaddcbc02b0583660bcf508469550e4cd0f86b22d2abe72dfebeacde0f") + version("2.5.3", sha256="58d69b7163f7624debc243750976d27fa7dddbc6fb7c5215aec94732bcc670e1") + version("2.5.2", sha256="bcccc6ba0b8ac1d10d3302f766eed71911acecc0bc43d0bd27d97a1e7ce275a8") + version("2.5.1", sha256="8d2728e155a3aa6befd9cb3d0980fabd25e2142d124f8f6b6c78cdf17ff79da5") + version("2.5.0", sha256="233875ea27fc357f6b714b2a0de5f6ff124b50c1ee9b3b41f9e726e9e677b86c") variant("mkl", default=False, description="Build with MKL support") variant("jemalloc", default=False, description="Build with jemalloc as malloc support") @@ -231,18 +192,18 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): extends("python") with default_args(type="build"): + # Bazel tends to be backwards-compatible within major versions # See .bazelversion - depends_on("bazel@6.5.0", when="@2.16:") - depends_on("bazel@6.1.0", when="@2.14:2.15") - depends_on("bazel@5.3.0", when="@2.11:2.13") - depends_on("bazel@5.1.1", when="@2.10") + depends_on("bazel@7.4.1:7", when="@2.20:") + depends_on("bazel@6.5.0:6", when="@2.16:2.19") + depends_on("bazel@6.1.0:6", when="@2.14:2.15") + depends_on("bazel@5.3.0:5", when="@2.11:2.13") + depends_on("bazel@5.1.1:5", when="@2.10") # See _TF_MIN_BAZEL_VERSION and _TF_MAX_BAZEL_VERSION in configure.py - depends_on("bazel@4.2.2:5.99.0", when="@2.9") - depends_on("bazel@4.2.1:4.99.0", when="@2.8") - depends_on("bazel@3.7.2:4.99.0", when="@2.7") - depends_on("bazel@3.7.2:3.99.0", when="@2.5:2.6") - depends_on("bazel@3.1.0:3.99.0", when="@2.3:2.4") - depends_on("bazel@2.0.0", when="@2.2") + depends_on("bazel@4.2.2:5", when="@2.9") + depends_on("bazel@4.2.1:4", when="@2.8") + depends_on("bazel@3.7.2:4", when="@2.7") + depends_on("bazel@3.7.2:3", when="@2.5:2.6") # tensorflow/tools/pip_package/build_pip_package.sh depends_on("patchelf", when="@2.13: platform=linux") @@ -255,21 +216,19 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): with default_args(type=("build", "run")): # Python support based on wheel availability - depends_on("python@3.9:3.12", when="@2.16:") + depends_on("python@3.9:3.13", when="@2.20:") + depends_on("python@3.9:3.12", when="@2.16:2.19") depends_on("python@3.9:3.11", when="@2.14:2.15") depends_on("python@3.8:3.11", when="@2.12:2.13") depends_on("python@:3.10", when="@2.8:2.11") - depends_on("python@:3.9", when="@2.5:2.7") - depends_on("python@:3.8", when="@2.2:2.4") + depends_on("python@:3.9", when="@:2.7") - # Listed under REQUIRED_PACKAGES in tensorflow/tools/pip_package/setup.py + # Listed under REQUIRED_PACKAGES in tensorflow/tools/pip_package/setup.py.tpl depends_on("py-absl-py@1:", when="@2.9:") depends_on("py-absl-py@0.4:", when="@2.7:2.8") depends_on("py-absl-py@0.10:0", when="@2.4:2.6") - depends_on("py-absl-py@0.7:", when="@:2.3") depends_on("py-astunparse@1.6:", when="@2.7:") depends_on("py-astunparse@1.6.3:1.6", when="@2.4:2.6") - depends_on("py-astunparse@1.6.3", when="@2.2:2.3") depends_on("py-flatbuffers@24.3.25:", when="@2.17:") depends_on("py-flatbuffers@23.5.26:", when="@2.14:") depends_on("py-flatbuffers@23.1.21:", when="@2.13") @@ -283,30 +242,26 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): depends_on("py-gast@0.2.1:", when="@2.8") depends_on("py-gast@0.2.1:0.4", when="@2.7") depends_on("py-gast@0.4.0", when="@2.5:2.6") - depends_on("py-gast@0.3.3", when="@2.2:2.4") - depends_on("py-gast@0.2.2", when="@:2.1") depends_on("py-google-pasta@0.1.1:", when="@2.7:") depends_on("py-google-pasta@0.2:0", when="@2.4:2.6") - depends_on("py-google-pasta@0.1.8:", when="@2.2:2.3") - depends_on("py-google-pasta@0.1.6:", when="@:2.1") depends_on("py-libclang@13:", when="@2.9:") depends_on("py-libclang@9.0.1:", when="@2.7:2.8") - depends_on("py-opt-einsum@2.3.2:", when="@:2.3,2.7:") + depends_on("py-opt-einsum@2.3.2:", when="@2.7:") depends_on("py-opt-einsum@3.3", when="@2.4:2.6") depends_on("py-packaging", when="@2.9:") - depends_on("py-protobuf@3.20.3:4.20,4.21.6:5", when="@2.18:") + depends_on("py-protobuf@5.28:", when="@2.20:") + depends_on("py-protobuf@3.20.3:4.20,4.21.6:5", when="@2.18:2.19") depends_on("py-protobuf@3.20.3:4.20,4.21.6:4", when="@2.12:2.17") depends_on("py-protobuf@3.9.2:", when="@2.3:2.11") - depends_on("py-protobuf@3.8.0:", when="@:2.2") # https://github.com/protocolbuffers/protobuf/issues/10051 # https://github.com/tensorflow/tensorflow/issues/56266 depends_on("py-protobuf@:3.19", when="@:2.11") depends_on("py-requests@2.21:2", when="@2.16:") depends_on("py-requests") depends_on("py-setuptools") - depends_on("py-six@1.12:", when="@:2.3,2.7:") + depends_on("py-six@1.12:", when="@2.7:") depends_on("py-six@1.15", when="@2.4:2.6") - depends_on("py-termcolor@1.1:", when="@:2.3,2.7:") + depends_on("py-termcolor@1.1:", when="@2.7:") depends_on("py-termcolor@1.1", when="@2.4:2.6") depends_on("py-typing-extensions@3.6.6:", when="@2.7:2.12,2.14:") depends_on("py-typing-extensions@3.6.6:4.5", when="@2.13") @@ -314,48 +269,40 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): depends_on("py-wrapt@1.11:", when="@2.7:2.11,2.13,2.16:") depends_on("py-wrapt@1.11:1.14", when="@2.12,2.14:2.15") depends_on("py-wrapt@1.12.1:1.12", when="@2.4:2.6") - depends_on("py-wrapt@1.11.1:", when="@:2.3") - - # TODO: add packages for these dependencies - # depends_on('py-tensorflow-io-gcs-filesystem@0.23.1:', when='@2.8:') - # depends_on('py-tensorflow-io-gcs-filesystem@0.21:', when='@2.7') if sys.byteorder == "little": # Only builds correctly on little-endian machines depends_on("py-grpcio@1.24.3:1", when="@2.7:") depends_on("py-grpcio@1.37.0:1", when="@2.6") depends_on("py-grpcio@1.34", when="@2.5") - depends_on("py-grpcio@1.32", when="@2.4") - depends_on("py-grpcio@1.8.6:", when="@:2.3") - for minor_ver in range(2, 19): + for minor_ver in range(5, 21): depends_on("py-tensorboard@2.{}".format(minor_ver), when="@2.{}".format(minor_ver)) # TODO: support circular run-time dependencies # depends_on('py-keras') - depends_on("py-numpy@1.26:2.0", when="@2.18:") + depends_on("py-numpy@1.26:", when="@2.20:") + depends_on("py-numpy@1.26:2.1", when="@2.19") + depends_on("py-numpy@1.26:2.0", when="@2.18") depends_on("py-numpy@1.23.5:", when="@2.14:2.17") depends_on("py-numpy@1.22:1.24.3", when="@2.13") depends_on("py-numpy@1.22:1.23", when="@2.12") depends_on("py-numpy@1.20:", when="@2.8:2.11") depends_on("py-numpy@1.14.5:", when="@2.7") depends_on("py-numpy@1.19.2:1.19", when="@2.4:2.6") - # https://github.com/tensorflow/tensorflow/issues/40688 - depends_on("py-numpy@1.16.0:1.18", when="@:2.3") # https://github.com/tensorflow/tensorflow/issues/67291 depends_on("py-numpy@:1", when="@:2.17") depends_on("py-h5py@3.11:", when="@2.18:") depends_on("py-h5py@3.10:", when="@2.16:") depends_on("py-h5py@2.9:", when="@2.7:2.15") depends_on("py-h5py@3.1", when="@2.5:2.6") - depends_on("py-h5py@2.10", when="@2.2:2.4") - depends_on("py-h5py@:2.10.0", when="@2.1.3:2.1") # propagate the mpi variant setting for h5py/hdf5 to avoid unexpected crashes - depends_on("py-h5py+mpi", when="@2.1.3:+mpi") - depends_on("py-h5py~mpi", when="@2.1.3:~mpi") - depends_on("hdf5+mpi", when="@2.1.3:+mpi") - depends_on("hdf5~mpi", when="@2.1.3:~mpi") + depends_on("py-h5py+mpi", when="+mpi") + depends_on("py-h5py~mpi", when="~mpi") + depends_on("hdf5+mpi", when="+mpi") + depends_on("hdf5~mpi", when="~mpi") + depends_on("py-ml-dtypes@0.5.1:0", when="@2.19:") depends_on("py-ml-dtypes@0.4:0", when="@2.18.1") depends_on("py-ml-dtypes@0.4", when="@2.18.0") depends_on("py-ml-dtypes@0.3.1:0.4", when="@2.17") @@ -367,12 +314,12 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): depends_on("py-jax@0.3.15:", when="@2.12") depends_on("py-keras-preprocessing@1.1.1:", when="@2.7:2.10") depends_on("py-keras-preprocessing@1.1.2:1.1", when="@2.4:2.6") - depends_on("py-keras-preprocessing@1.1.1:1.1", when="@2.3") - depends_on("py-keras-preprocessing@1.1:", when="@2.2") - depends_on("py-scipy@1.4.1", when="@2.2.0,2.3.0") depends_on("py-wheel@0.32:0", when="@2.7") depends_on("py-wheel@0.35:0", when="@2.4:2.6") - depends_on("py-wheel@0.26:", when="@:2.3") + + # TODO: add packages for these dependencies + # depends_on("py-tensorflow-io-gcs-filesystem@0.23.1:", when="@2.8:2.19") + # depends_on("py-tensorflow-io-gcs-filesystem@0.21:", when="@2.7") # TODO: add packages for some of these dependencies depends_on("mkl", when="+mkl") @@ -381,25 +328,22 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): # depends_on('trisycl', when='+opencl~computepp') with when("+cuda"): # https://www.tensorflow.org/install/source#gpu + depends_on("cuda@12.5:", when="@2.18:") depends_on("cuda@12.3:", when="@2.16:") depends_on("cuda@12.2:", when="@2.15:") depends_on("cuda@11.8:", when="@2.12:") depends_on("cuda@11.2:", when="@2.5:") - depends_on("cuda@11.0:", when="@2.4:") - depends_on("cuda@10.1:", when="@2.1:") depends_on("cuda@:11.7.0", when="@:2.9") depends_on("cuda@:11.4", when="@2.4:2.7") - depends_on("cuda@:10.2", when="@:2.3") - depends_on("cudnn@8.9:8", when="@2.15:") - depends_on("cudnn@8.7:8", when="@2.14:") - depends_on("cudnn@8.6:8", when="@2.12:") - depends_on("cudnn@8.1:8", when="@2.5:") - depends_on("cudnn@8.0:8", when="@2.4:") - depends_on("cudnn@7.6:8", when="@2.1:") + depends_on("cudnn@9.3:", when="@2.18:") + depends_on("cudnn@:8", when="@:2.17") + depends_on("cudnn@8.9:", when="@2.15:") + depends_on("cudnn@8.7:", when="@2.14:") + depends_on("cudnn@8.6:", when="@2.12:") + depends_on("cudnn@8.1:", when="@2.5:") - depends_on("cudnn@:7", when="@:2.2") # depends_on('tensorrt', when='+tensorrt') depends_on("nccl", when="+nccl+cuda") depends_on("mpi", when="+mpi") @@ -407,6 +351,8 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): # depends_on('android-sdk', when='+android') with when("+rocm"): + depends_on("llvm-amdgpu") + depends_on("hipblaslt", when="@2.20:") for pkg_dep in rocm_dependencies: depends_on(f"{pkg_dep}@6.0:", when="@2.14:") depends_on(f"{pkg_dep}@:6.3", when="@:2.18") @@ -447,10 +393,6 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): ) conflicts("+mpi", when="platform=windows") conflicts("+ios", when="platform=linux", msg="iOS support only available on macOS") - # https://github.com/tensorflow/tensorflow/pull/45404 - conflicts("platform=darwin target=aarch64:", when="@:2.4") - # https://github.com/tensorflow/tensorflow/pull/39225 - conflicts("target=aarch64:", when="@:2.2") rocm_versions = [ "2.7.4-rocm-enhanced", @@ -458,6 +400,7 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): "2.14-rocm-enhanced", "2.16.1-rocm-enhanced", "2.18.0-rocm-enhanced", + "2.20.0-rocm-enhanced", ] rocm_conflicts = [ ":2.7.4-a", @@ -465,8 +408,10 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): "2.11.0.0:2.14-a", "2.14-z:2.16.1-a", "2.16.1-z:2.18.0-a", - "2.18.0-z:", + "2.18.0-z:2.20.0-a", + "2.20.0-z:", ] + conflicts("~rocm", when=f"@{','.join(rocm_versions)}") conflicts("+rocm", when=f"@{','.join(rocm_conflicts)}") @@ -485,6 +430,43 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): # https://github.com/tensorflow/tensorflow/issues/62416 conflicts("%clang@17:", when="@:2.14") + # https://github.com/tensorflow/tensorflow/issues/103590 + patch( + "https://github.com/tensorflow/tensorflow/pull/104948.patch?full_index=1", + sha256="93314b87dc9960aa5320f672dbe559a4ad95ba4f35c2ddca6094d169947f7c78", + when="@2.20", + ) + conflicts("os=tahoe", when="@:2.19") + + # https://github.com/tensorflow/tensorflow/pull/98321 + patch( + "https://github.com/tensorflow/tensorflow/commit/b9c263c3df2bb4926618a9c63e1dac45dc39c48a.patch?full_index=1", + sha256="275116b21eb27b86a5119ec69bfb7a5c1a5e8b6a7040d2272b65dbdbe997e8b4", + when="@2.20", + ) + + # Fix build error with CUDA + patch( + "https://github.com/tensorflow/tensorflow/pull/99046.patch?full_index=1", + sha256="2912121c181de1a695f1ee791cf94f8d71fca4955e8095e506e814d07eac5825", + when="@2.20", + ) + + # https://github.com/spack/spack/issues/49958 + patch( + "https://github.com/tensorflow/tensorflow/pull/90563.patch?full_index=1", + sha256="78b858380521f4624fd95bfa32fd038cdd8168b783c2a13502c4169431517618", + when="@2.19", + ) + + # Fix build error with GCC 13 + # https://github.com/tensorflow/tensorflow/issues/84977 + patch( + "https://github.com/tensorflow/tensorflow/pull/90558.patch?full_index=1", + sha256="3c93c6226bbde3a4c2aedbac42bc136eacf8da65f5623f7effad437ebf2ba4aa", + when="@2.19", + ) + # https://github.com/tensorflow/tensorflow/issues/94277 # https://github.com/tensorflow/tensorflow/pull/94289 patch("h5py-3.13.0.patch", when="@2.18") @@ -498,12 +480,11 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): when="@2.9:2.10.0", ) - # can set an upper bound if/when - # https://github.com/tensorflow/tensorflow/pull/89032 is merged + # https://github.com/tensorflow/tensorflow/pull/89032 patch( "allow-empty-config-environment-variables.patch", sha256="e061875c2ca9c157a7837d02afdd25205817def3460745523d5089bbeaa77d29", - when="@1.4.0:", + when="@1.4.0:2.19", ) # Version 2.10 produces an error related to cuBLAS: @@ -523,7 +504,7 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): # allow linker to be found in PATH # https://github.com/tensorflow/tensorflow/issues/39263 - patch("null_linker_bin_path.patch", when="@2.5:") + patch("null_linker_bin_path.patch", when="@2.5:2.19") # Reset import order to that of 2.4. Part of # https://bugs.gentoo.org/800824#c3 From the patch: @@ -566,7 +547,7 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension): sha256="75a61a79ce3aae51fda920f677f4dc045374b20e25628626eb37ca19c3a3b4c4", when="@2.16.1-rocm-enhanced +rocm", ) - patch("set_jit_true.patch", when="@2.18.0-rocm-enhanced +rocm") + patch("set_jit_true.patch", when="@2.18.0-rocm-enhanced: +rocm") phases = ["configure", "build", "install"] def flag_handler(self, name, flags): @@ -594,7 +575,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: # Please input the desired Python library path to use env.set("PYTHON_LIB_PATH", python_platlib) - env.set("TF_PYTHON_VERSION", spec["python"].version.up_to(2)) + env.set("TF_PYTHON_VERSION", str(spec["python"].version.up_to(2))) # Ensure swig is in PATH or set SWIG_PATH env.set("SWIG_PATH", spec["swig"].prefix.bin.swig) @@ -692,14 +673,34 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: # Do you wish to build TensorFlow with ROCm support? if "+rocm" in spec: env.set("TF_NEED_ROCM", "1") - env.set("TF_HIPBLASLT", "0") - env.set("MIOPEN_PATH", spec["miopen-hip"].prefix) - env.set("ROCTRACER_PATH", spec["roctracer-dev"].prefix) - env.set("LLVM_PATH", spec["llvm-amdgpu"].prefix) - for pkg_dep in rocm_dependencies: - pkg_dep_cap = pkg_dep.upper().replace("-", "_") - env.set(f"{pkg_dep_cap}_PATH", spec[pkg_dep].prefix) - env.set("TF_ROCM_AMDGPU_TARGETS", ",".join(self.spec.variants["amdgpu_target"].value)) + if not spec["hip"].external: + env.set( + "TF_ROCM_AMDGPU_TARGETS", ",".join(self.spec.variants["amdgpu_target"].value) + ) + env.set("LLVM_PATH", spec["llvm-amdgpu"].prefix) + + if spec.satisfies("@:2.18"): + env.set("TF_HIPBLASLT", "0") + env.set("MIOPEN_PATH", spec["miopen-hip"].prefix) + env.set("ROCTRACER_PATH", spec["roctracer-dev"].prefix) + for pkg_dep in rocm_dependencies: + pkg_dep_cap = pkg_dep.upper().replace("-", "_") + env.set(f"{pkg_dep_cap}_PATH", spec[pkg_dep].prefix) + else: + transitive_rocm_dependencies = [ + "hipblas-common", + "rocprofiler-register", + "hsakmt-roct", + "comgr", + "aqlprofile", + "hsa-amd-aqlprofile", + ] + for pkg_dep in transitive_rocm_dependencies: + if self.spec.satisfies(f"^{pkg_dep}"): + rocm_dependencies.append(pkg_dep) + for pkg_dep in rocm_dependencies: + env.prepend_path("TF_ROCM_MULTIPLE_PATHS", spec[pkg_dep].prefix) + env.prune_duplicate_paths("TF_ROCM_MULTIPLE_PATHS") else: env.set("TF_NEED_ROCM", "0") @@ -723,7 +724,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: cuda_paths.append(spec["tensorrt"].prefix) # Please specify the TensorRT version you want to use - env.set("TF_TENSORRT_VERSION", spec["tensorrt"].version.up_to(1)) + env.set("TF_TENSORRT_VERSION", str(spec["tensorrt"].version.up_to(1))) # Please specify the location where TensorRT is installed env.set("TENSORRT_INSTALL_PATH", spec["tensorrt"].prefix) @@ -732,16 +733,16 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.unset("TF_TENSORRT_VERSION") # Please specify the CUDA SDK version you want to use - env.set("TF_CUDA_VERSION", spec["cuda"].version.up_to(2)) + env.set("TF_CUDA_VERSION", str(spec["cuda"].version.up_to(2))) # Please specify the cuDNN version you want to use - env.set("TF_CUDNN_VERSION", spec["cudnn"].version.up_to(1)) + env.set("TF_CUDNN_VERSION", str(spec["cudnn"].version.up_to(1))) if "+nccl" in spec: cuda_paths.append(spec["nccl"].prefix) # Please specify the locally installed NCCL version to use - env.set("TF_NCCL_VERSION", spec["nccl"].version.up_to(1)) + env.set("TF_NCCL_VERSION", str(spec["nccl"].version.up_to(1))) # Please specify the location where NCCL is installed env.set("NCCL_INSTALL_PATH", spec["nccl"].prefix) @@ -857,9 +858,15 @@ def post_configure_fixes(self): # make sure xla is actually turned off if spec.satisfies("~xla"): + if spec.satisfies("@:2.19"): + join = " " + build = "" + else: + join = "=" + build = "build " filter_file( - r"--define with_xla_support=true", - r"--define with_xla_support=false", + f"{build}--define{join}with_xla_support=true", + f"{build}--define{join}with_xla_support=false", ".tf_configure.bazelrc", ) @@ -879,7 +886,7 @@ def post_configure_fixes(self): ".tf_configure.bazelrc", ) - if spec.satisfies("~opencl"): + if spec.satisfies("@:1.19~opencl"): # 1.8.0 and 1.9.0 aborts with numpy import error during python_api # generation somehow the wrong PYTHONPATH is used... # set --distinct_host_configuration=false as a workaround @@ -987,6 +994,8 @@ def build(self, spec, prefix): self.stage.source_path, "bazel-bin/tensorflow/tools/pip_package/wheel_house/" ) args.append(f"--repo_env=OUTPUT_PATH={buildpath}") + if self.spec.satisfies("@2.20:") and not self.spec["hip"].external: + args.append("--@local_config_rocm//rocm:rocm_path_type=multiple") # https://github.com/tensorflow/tensorflow/issues/63298 if self.spec.satisfies("@2.17:"): args.append("//tensorflow/tools/pip_package:wheel") diff --git a/repos/spack_repo/builtin/packages/py_tensorflow_estimator/package.py b/repos/spack_repo/builtin/packages/py_tensorflow_estimator/package.py index e5a5e455fe9..dd4d77858aa 100644 --- a/repos/spack_repo/builtin/packages/py_tensorflow_estimator/package.py +++ b/repos/spack_repo/builtin/packages/py_tensorflow_estimator/package.py @@ -22,6 +22,7 @@ class PyTensorflowEstimator(Package): license("Apache-2.0") + version("2.15.0", sha256="2d7e100b1878084da34b5e23b49a0cbb5ee8a7add74b7dd189a82ada1cf85530") version("2.14.0", sha256="622797bf5311f239c2b123364fa360868ae97d16b678413e5e0633241f7d7d5c") version("2.13.0", sha256="4175e9276a1eb8b5e4e876d228e4605871832e7bd8517965d6a47f1481af2c3e") version("2.12.0", sha256="86c75e830c6ba762d0e3cf04c160096930fb12a992e69b3f24674b9f58902063") @@ -31,9 +32,6 @@ class PyTensorflowEstimator(Package): version("2.8.0", sha256="58a2c3562ca6491c257e9a4d9bd8825667883257edcdb452181efa691c586b17") version("2.7.0", sha256="e5164e802638d3cf110ecc17912be9d514a9d3354ec48e77200b9403dcc15965") version("2.6.0", sha256="947705c60c50da0b4a8ceec1bc058aaf6bf567a7efdcd50d5173ebf6bafcf30f") - version("2.4.0", sha256="e6ea12014c3d8c89a81ace95f8f8b7c39ffcd3e4e4626709e4aee0010eefd962") - version("2.3.0", sha256="75403e7de7e8ec30ec0781ede56ed84cbe5e90daad64a9c242cd489c8fe63a17") - version("2.2.0", sha256="2d68cb6e6442e7dcbfa2e092aa25bdcb0eda420536a829b85d732854a4c85d46") extends("python") @@ -49,20 +47,7 @@ class PyTensorflowEstimator(Package): depends_on("py-numpy") depends_on("py-pandas") depends_on("py-six") - for ver in [ - "2.14", - "2.13", - "2.12", - "2.11", - "2.10", - "2.9", - "2.8", - "2.7", - "2.6", - "2.4", - "2.3", - "2.2", - ]: + for ver in ["2.14", "2.13", "2.12", "2.11", "2.10", "2.9", "2.8", "2.7", "2.6"]: depends_on(f"py-tensorboard@{ver}", when=f"@{ver}") depends_on(f"py-tensorflow@{ver}", when=f"@{ver}") depends_on(f"py-keras@{ver}", when=f"@{ver}") diff --git a/repos/spack_repo/builtin/packages/py_tensorflow_metadata/package.py b/repos/spack_repo/builtin/packages/py_tensorflow_metadata/package.py index a83072375b0..3e9e6b73310 100644 --- a/repos/spack_repo/builtin/packages/py_tensorflow_metadata/package.py +++ b/repos/spack_repo/builtin/packages/py_tensorflow_metadata/package.py @@ -22,11 +22,14 @@ class PyTensorflowMetadata(PythonPackage): license("Apache-2.0") + version("1.17.2", sha256="cdd53c34010d26fd71fad1658f6ac5720b5f2734ef4854da0a069124ecb737a0") version("1.17.1", sha256="6a49a3fac9616336d23c04990e7a8e566d4c97024730e11a7ec7a511c9167e2b") version("1.10.0", sha256="e7aa81aa01433e2a75c11425affd55125b64f384baf96b71eeb3a88dca8cf2ae") version("1.5.0", sha256="f0ec8aaf62fd772ef908efe4ee5ea3bc0d67dcbf10ae118415b7b206a1d61745") with default_args(type="build"): + depends_on("c") + depends_on("cxx") depends_on("bazel@6.5:", when="@1.17.1:") depends_on("bazel@0.24.1:") depends_on("py-setuptools") @@ -39,10 +42,18 @@ class PyTensorflowMetadata(PythonPackage): depends_on("py-absl-py@0.9:0.12", when="@:1.5") depends_on("py-googleapis-common-protos@1.56.4:1", when="@1.15: ^python@3.11:") depends_on("py-googleapis-common-protos@1.52:1", when="@:1.14") - depends_on("py-protobuf@4.25.2:5", when="@1.17: ^python@3.11:") + depends_on("py-protobuf@4.25.2:", when="@1.17.2: ^python@3.11:") + depends_on("py-protobuf@4.25.2:5", when="@1.17.0:1.17.1 ^python@3.11:") depends_on("py-protobuf@4.21.6:4.21", when="@1.17: ^python@:3.10") depends_on("py-protobuf@3.13:3", when="@:1.16") + # https://github.com/tensorflow/metadata/pull/59 + patch( + "https://github.com/tensorflow/metadata/commit/53a2c997ba9e28125db45f88ee61cdbd063737dc.patch?full_index=1", + sha256="f5f1c2ec7c30693eb0fe84bc7f29c0db2e8079de630b06cd3a686d66563e1ea5", + when="@1.17:", + ) + # Fix non-existing zlib URL patch( "https://github.com/tensorflow/metadata/commit/8df679e782f5bf2d163d63e550d8752c3812d566.patch?full_index=1", diff --git a/repos/spack_repo/builtin/packages/py_tensorflow_probability/package.py b/repos/spack_repo/builtin/packages/py_tensorflow_probability/package.py index 48def23eccf..b692cce0db0 100644 --- a/repos/spack_repo/builtin/packages/py_tensorflow_probability/package.py +++ b/repos/spack_repo/builtin/packages/py_tensorflow_probability/package.py @@ -34,16 +34,10 @@ class PyTensorflowProbability(Package): version("0.20.0", sha256="f0fb9a1f88a36a8f57d4d9cce4f9bf8dfacb6fc7778751729fe3c3067e5a1363") version("0.19.0", sha256="b32d2ae211ec727df9791b501839619f5389134bd6d4fe951570f500b0e75f55") version("0.18.0", sha256="f4852c0fea9117333ccb868f7a2ca75aecf5dd765dc39fd4ee5f8ab6fe87e909") - version( - "0.12.1", - sha256="1fe89e85fd053bf36e8645a5a1a53b729bc254cf1516bc224fcbd1e4ff50083a", - deprecated=True, - ) extends("python@3.9:", when="@0.22:") extends("python@3.8:", when="@0.20:0.21") extends("python@3.7:", when="@0.13:0.19") - extends("python@3.6:", when="@0.8:0.12") depends_on("py-pip", type="build") depends_on("py-wheel", type="build") depends_on("py-setuptools", type="build") @@ -54,9 +48,7 @@ class PyTensorflowProbability(Package): depends_on("py-numpy@1.13.3:", type=("build", "run")) depends_on("py-decorator", type=("build", "run")) depends_on("py-cloudpickle@1.3:", when="@0.12:", type=("build", "run")) - depends_on("py-cloudpickle@1.1.1", when="@0.8", type=("build", "run")) depends_on("py-gast@0.3.2:", when="@0.12:", type=("build", "run")) - depends_on("py-gast@0.2", when="@0.8", type=("build", "run")) depends_on("py-dm-tree", when="@0.12:", type=("build", "run")) # tensorflow_probability/python/__init__.py @@ -88,7 +80,6 @@ class PyTensorflowProbability(Package): depends_on( "py-tensorflow@2.10:2", when="@0.18", type=("build", "run") ) # keep here for backwards compatibility - depends_on("py-tensorflow@2.4:", when="@0.12:0.17", type=("build", "run")) # TODO: Directories have changed in Bazel 7, need to update manual install logic depends_on("bazel@3.2:6", type="build") diff --git a/repos/spack_repo/builtin/packages/py_tensorly/package.py b/repos/spack_repo/builtin/packages/py_tensorly/package.py index e734052657a..acaf58e2c96 100644 --- a/repos/spack_repo/builtin/packages/py_tensorly/package.py +++ b/repos/spack_repo/builtin/packages/py_tensorly/package.py @@ -19,6 +19,7 @@ class PyTensorly(PythonPackage): maintainers("meyersbs") + version("0.9.0", sha256="9b970dde47e2267a17b66a1444113e879c0bb77fb22f497a4207eb2b548ff792") version("0.8.1", sha256="cf78e4ffe612feca3510214002845c6831b267b1f2c1181154d41430310b237d") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_termcolor/package.py b/repos/spack_repo/builtin/packages/py_termcolor/package.py index baf126ec362..fd85430520d 100644 --- a/repos/spack_repo/builtin/packages/py_termcolor/package.py +++ b/repos/spack_repo/builtin/packages/py_termcolor/package.py @@ -14,7 +14,12 @@ class PyTermcolor(PythonPackage): license("MIT") + version("3.1.0", sha256="6a6dd7fbee581909eeec6a756cff1d7f7c376063b14e4a298dc4980309e55970") version("1.1.0", sha256="1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b") - # pip silently replaces distutils with setuptools - depends_on("py-setuptools", type="build") + with default_args(type="build"): + with when("@3:"): + depends_on("py-hatch-vcs") + depends_on("py-hatchling@1.27:") + with when("@:1"): + depends_on("py-setuptools") diff --git a/repos/spack_repo/builtin/packages/py_terminado/package.py b/repos/spack_repo/builtin/packages/py_terminado/package.py index 71d84354bed..101719af8c7 100644 --- a/repos/spack_repo/builtin/packages/py_terminado/package.py +++ b/repos/spack_repo/builtin/packages/py_terminado/package.py @@ -14,6 +14,7 @@ class PyTerminado(PythonPackage): homepage = "https://github.com/jupyter/terminado" pypi = "terminado/terminado-0.8.3.tar.gz" + version("0.18.1", sha256="de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e") version("0.17.1", sha256="6ccbbcd3a4f8a25a5ec04991f39a0b8db52dfcd487ea0e578d977e6752380333") version("0.15.0", sha256="ab4eeedccfcc1e6134bfee86106af90852c69d602884ea3a1e8ca6d4486e9bfe") version("0.12.1", sha256="b20fd93cc57c1678c799799d117874367cc07a3d2d55be95205b1a88fa08393f") @@ -22,6 +23,9 @@ class PyTerminado(PythonPackage): version("0.8.1", sha256="55abf9ade563b8f9be1f34e4233c7b7bde726059947a593322e8a553cc4c067a") version("0.6", sha256="2c0ba1f624067dccaaead7d2247cfe029806355cef124dc2ccb53c83229f0126") + depends_on("python@3.8:", when="@0.18:", type=("build", "run")) + depends_on("python@3.7:", when="@0.13:", type=("build", "run")) + depends_on("py-hatchling@1.5:", when="@0.16:", type="build") depends_on("py-hatchling@0.25:", when="@0.15:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_texttable/package.py b/repos/spack_repo/builtin/packages/py_texttable/package.py index aa6f1d81e56..8a691068dcd 100644 --- a/repos/spack_repo/builtin/packages/py_texttable/package.py +++ b/repos/spack_repo/builtin/packages/py_texttable/package.py @@ -16,6 +16,7 @@ class PyTexttable(PythonPackage): license("MIT") + version("1.7.0", sha256="2d2068fb55115807d3ac77a4ca68fa48803e84ebb0ee2340f858107a36522638") version("1.6.7", sha256="290348fb67f7746931bcdfd55ac7584ecd4e5b0846ab164333f0794b121760f2") version("1.6.6", sha256="e106b1204b788663283784fd6e5dfc23f1574b84e518e5d286c1a1e66dabd42c") version("1.6.5", sha256="fc3f763a89796ae03789a02343bd4e8fed9735935123b1bfb9537a5935852315") diff --git a/repos/spack_repo/builtin/packages/py_textual/package.py b/repos/spack_repo/builtin/packages/py_textual/package.py index 1c6e91b38c8..5d7fa017c1e 100644 --- a/repos/spack_repo/builtin/packages/py_textual/package.py +++ b/repos/spack_repo/builtin/packages/py_textual/package.py @@ -14,6 +14,7 @@ class PyTextual(PythonPackage): homepage = "https://github.com/Textualize/textual" pypi = "textual/textual-0.47.1.tar.gz" + version("5.3.0", sha256="1b6128b339adef2e298cc23ab4777180443240ece5c232f29b22960efd658d4d") version("0.47.1", sha256="4b82e317884bb1092f693f474c319ceb068b5a0b128b121f1aa53a2d48b4b80c") depends_on("python@3.8:3", type=("build", "run")) @@ -25,3 +26,4 @@ class PyTextual(PythonPackage): # Depending on py-mdit-py-plugins rather than on py-markdown-it-py+plugins, # because py-markdown-it-py+plugins would cause a circular dependency depends_on("py-typing-extensions@4.4.0:4", type=("build", "run")) + depends_on("py-platformdirs@3.6:4", when="@5.3:") diff --git a/repos/spack_repo/builtin/packages/py_textual_fspicker/package.py b/repos/spack_repo/builtin/packages/py_textual_fspicker/package.py new file mode 100644 index 00000000000..385de9b04e9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_textual_fspicker/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 PyTextualFspicker(PythonPackage): + """A Textual widget library for picking things in the filesystem""" + + homepage = "https://textual-fspicker.davep.dev/" + pypi = "textual-fspicker/textual_fspicker-0.5.0.tar.gz" + license("MIT") + + version("0.5.0", sha256="a27fc1e616814e99c2dfb5be68df0ee8f7f1d53b8ed552419d542c26b45f6f75") + + depends_on("python@3.9:3") + depends_on("py-textual@1:") + depends_on("py-hatchling@1.26.3:", type="build") + depends_on("py-hatch-vcs", type="build") diff --git a/repos/spack_repo/builtin/packages/py_textual_plotext/package.py b/repos/spack_repo/builtin/packages/py_textual_plotext/package.py new file mode 100644 index 00000000000..cfc9186bd81 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_textual_plotext/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 PyTextualPlotext(PythonPackage): + """A Textual widget wrapper library for Plotext""" + + homepage = "https://github.com/Textualize/textual-plotext" + pypi = "textual-plotext/textual_plotext-1.0.1.tar.gz" + + version("1.0.1", sha256="836f53a3316756609e194129a35c2875638e7958c261f541e0a794f7c98011be") + version("1.0.0", sha256="6e8e608ca9da52b4f171fa4adb0e80cbcd8e668f1334e9e4d7fbfd064d393a4f") + + depends_on("python@3.8:3") + depends_on("py-poetry-core") + depends_on("py-textual@5:") + depends_on("py-plotext@5.2.8:5") + depends_on("py-platformdirs") diff --git a/repos/spack_repo/builtin/packages/py_textx/package.py b/repos/spack_repo/builtin/packages/py_textx/package.py index 88a89940b0c..09d1c98961f 100644 --- a/repos/spack_repo/builtin/packages/py_textx/package.py +++ b/repos/spack_repo/builtin/packages/py_textx/package.py @@ -15,10 +15,17 @@ class PyTextx(PythonPackage): license("MIT") + version("4.3.0", sha256="0facac8029ad124ef21e5838dd8eb67f10129efcee96ea3548f5fd62428a9880") + version("4.2.3", sha256="5c503fe335b24bc113c21cf20bfec9a174680cf95bb651dea8f90c27d305d4c8") + version("4.2.2", sha256="62a84bfe6b956c3f3d221d34bd9c133268db0af16e35197a48932b17e9413ede") + version("4.2.1", sha256="5dbeed35de960ef32364523fcda25472db6fa32e3377e0e71aee03ef12519c31") + version("4.2.0", sha256="953fdd495195a26ca7af6fb1eeadd7ecf927f0a9d3821716f782c957c5b0e2ab") + version("4.1.0", sha256="37b4f0c455452e27cc0f13d40777b5d20549eaa871311b26e2ed83c019456692") version("4.0.1", sha256="84aff5c95fd2c947402fcbe83eeeddc23aabcfed3464ab84184ef193c52d831a") depends_on("c", type="build") depends_on("py-flit-core@3.8:3", type="build") - depends_on("python@3.8:3.12", type=("build", "run")) + depends_on("python@3.8:3.12", type=("build", "run"), when="@:4.0.1") + depends_on("python@3.8:", type=("build", "run"), when="@4.1.0:") depends_on("py-arpeggio@2:", type=("build", "run")) depends_on("py-importlib-metadata", when="^python@:3.9", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_tf2onnx/package.py b/repos/spack_repo/builtin/packages/py_tf2onnx/package.py new file mode 100644 index 00000000000..610fdcaf581 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_tf2onnx/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 PyTf2onnx(PythonPackage): + """Tensorflow to ONNX converter""" + + homepage = "https://github.com/onnx/tensorflow-onnx" + pypi = "tf2onnx/tf2onnx-1.17.0.tar.gz" + git = "https://github.com/onnx/tensorflow-onnx.git" + + maintainers("wdconinc") + + license("Apache-2.0", checked_by="wdconinc") + + version("1.17.0", sha256="998dc1841d5e2405226d985f28287570569034b7609924a52fb297b42462c1c1") + + depends_on("python@3.10:", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-setuptools@77:") + + with default_args(type=("build", "run")): + depends_on("py-tensorflow") + depends_on("py-numpy@1.23.5:") + depends_on("py-onnx@1.14.0:") + depends_on("py-requests") + depends_on("py-flatbuffers@1.12:") + depends_on("py-protobuf@3.20:") diff --git a/repos/spack_repo/builtin/packages/py_tf_keras/package.py b/repos/spack_repo/builtin/packages/py_tf_keras/package.py index 03ac713f430..0c9d745c412 100644 --- a/repos/spack_repo/builtin/packages/py_tf_keras/package.py +++ b/repos/spack_repo/builtin/packages/py_tf_keras/package.py @@ -43,7 +43,7 @@ class PyTfKeras(PythonPackage): depends_on("protobuf@3.20.3", type="build", when="@2.18:") # TODO: uncomment for 2.19 - # depends_on("protobuf@4.23.0", type="build", when="@2.19:") + # depends_on("protobuf@23.0", type="build", when="@2.19:") # the tf-keras versions are following along with TF versions # as defined in oss_setup.py for minor_ver in range(18, max_minor + 1): diff --git a/repos/spack_repo/builtin/packages/py_thinc/package.py b/repos/spack_repo/builtin/packages/py_thinc/package.py index e3d86632d1c..412cca6ac1d 100644 --- a/repos/spack_repo/builtin/packages/py_thinc/package.py +++ b/repos/spack_repo/builtin/packages/py_thinc/package.py @@ -16,20 +16,61 @@ class PyThinc(PythonPackage): license("MIT") + version("8.3.10", sha256="5a75109f4ee1c968fc055ce651a17cb44b23b000d9e95f04a4d047ab3cb3e34e") + version("8.1.10", sha256="6c4a48d7da07e044e84a68cbb9b22f32f8490995a2bab0bfc60e412d14afb991") version("7.4.1", sha256="0139fa84dc9b8d88af15e648fc4ae13d899b8b5e49cb26a8f4a0604ee9ad8a9e") version("7.4.0", sha256="523e9be1bfaa3ed1d03d406ce451b6b4793a9719d5b83d2ea6b3398b96bc58b8") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + # @8.1.10 minimum python version is 3.6. Set minimum version to 3.7 due to spack missing + # py-contextvars and 3.6 being deprecated in spack. + depends_on("python@3.7:", type=("build", "run"), when="@8.1.10") + depends_on("python@3.10:3.14", type=("build", "run"), when="@8.3.10:") + depends_on("py-setuptools", type="build") - depends_on("py-murmurhash@0.28:1.0", type=("build", "run")) - depends_on("py-cymem@2.0.2:2.0", type=("build", "run")) - depends_on("py-preshed@1.0.1:3.0", type=("build", "run")) - depends_on("py-blis@0.4.0:0.4", type=("build", "run")) - depends_on("py-wasabi@0.0.9:1.0", type=("build", "run")) - depends_on("py-srsly@0.0.6:1.0", type=("build", "run")) - depends_on("py-catalogue@0.0.7:1.0", type=("build", "run")) - depends_on("py-numpy@1.7:", type=("build", "run")) - depends_on("py-plac@0.9.6:1.1", type=("build", "run")) - depends_on("py-tqdm@4.10:4", type=("build", "run")) + + depends_on("py-cython@0.25:2", type="build", when="@8.1.10") + depends_on("py-cython@3", type="build", when="@8.3.10:") + + with default_args(type=("build", "run")): + depends_on("py-blis@0.4.0:0.4", when="@:7.4.1") + depends_on("py-blis@0.7.8:0.7", when="@8.1.10") + depends_on("py-blis@1.3", when="@8.3.10:") + + depends_on("py-murmurhash@0.28:1.0", when="@:7.4.1") + depends_on("py-murmurhash@1.0.2:1.0", when="@8.1.10:") + + depends_on("py-cymem@2.0.2:2.0") + + depends_on("py-preshed@1.0.1:3.0", when="@:7.4.1") + depends_on("py-preshed@3.0.2:3.0", when="@8.1.10:") + + depends_on("py-wasabi@0.0.9:1.0", when="@:7.4.1") + depends_on("py-wasabi@0.8.1:1.1", when="@8.1.10:") + + depends_on("py-srsly@0.0.6:1.0", when="@:7.4.1") + depends_on("py-srsly@2.4:2", when="@8.1.10:") + + depends_on("py-catalogue@0.0.7:1.0", when="@:7.4.1") + depends_on("py-catalogue@2.0.4:2.0", when="@8.1.10:") + + depends_on("py-confection@0.0.1:0", when="@8.1.10:") + + depends_on("py-numpy@1.7:", when="@:7.4.1") + depends_on("py-numpy@1.15:", when="@8.1.10") + depends_on("py-numpy@2:", when="@8.3.10:") + + depends_on("py-pydantic@1.7.4:1.7,1.9:1.10", when="@8.1.10") + depends_on("py-pydantic@2", when="@8.3.10:") + + depends_on("py-packaging@20:", when="@8.1.10:") + + # depends_on("py-dataclasses@0.6:0", when="@8.1.10:^python@:3.6") + depends_on("py-typing-extensions@3.7.4.1:4.4", when="@8.1.10:^python@:3.7") + # depends_on("py-contextvars@2.4:2", when="@8.1.10:^python@3.6") + + # Historical + depends_on("py-plac@0.9.6:1.1", when="@:7.4.1") + depends_on("py-tqdm@4.10:4", when="@:7.4.1") diff --git a/repos/spack_repo/builtin/packages/py_threadpoolctl/package.py b/repos/spack_repo/builtin/packages/py_threadpoolctl/package.py index 6e0b9bec022..ed33075fcae 100644 --- a/repos/spack_repo/builtin/packages/py_threadpoolctl/package.py +++ b/repos/spack_repo/builtin/packages/py_threadpoolctl/package.py @@ -18,11 +18,17 @@ class PyThreadpoolctl(PythonPackage): license("BSD-3-Clause") + version("3.6.0", sha256="8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e") version("3.1.0", sha256="a335baacfaa4400ae1f0d8e3a58d6674d2f8828e3716bb2802c44955ad391380") version("3.0.0", sha256="d03115321233d0be715f0d3a5ad1d6c065fe425ddc2d671ca8e45e9fd5d7a52a") version("2.0.0", sha256="48b3e3e9ee079d6b5295c65cbe255b36a3026afc6dde3fb49c085cd0c004bbcf") - depends_on("python@3.5:", type=("build", "run")) - depends_on("python@3.6:", when="@3.0.0:", type=("build", "run")) - depends_on("py-flit", when="@:3.0.0", type="build") - depends_on("py-flit-core", when="@3.1.0:", type="build") + depends_on("python@3.9:", type=("build", "run"), when="@3.6:") + depends_on("python@3.6:", type=("build", "run"), when="@3:3.1") + depends_on("python@3.5:", type=("build", "run"), when="@:2") + + depends_on("py-flit-core@2:3", type="build", when="@3.3:") + depends_on("py-flit-core", type="build", when="@3.1:3.2") + + # Historical dependencies + depends_on("py-flit", type="build", when="@:3.0.0") diff --git a/repos/spack_repo/builtin/packages/py_throttler/package.py b/repos/spack_repo/builtin/packages/py_throttler/package.py index 96314a3e18b..e715ff7faaa 100644 --- a/repos/spack_repo/builtin/packages/py_throttler/package.py +++ b/repos/spack_repo/builtin/packages/py_throttler/package.py @@ -19,4 +19,4 @@ class PyThrottler(PythonPackage): version("1.2.2", sha256="d54db406d98e1b54d18a9ba2b31ab9f093ac64a0a59d730c1cf7bb1cdfc94a58") - depends_on("py-setuptools", type="build") + depends_on("py-setuptools@:81", type="build") diff --git a/repos/spack_repo/builtin/packages/py_tifffile/package.py b/repos/spack_repo/builtin/packages/py_tifffile/package.py index bcece2c7454..4d1f401b9f9 100644 --- a/repos/spack_repo/builtin/packages/py_tifffile/package.py +++ b/repos/spack_repo/builtin/packages/py_tifffile/package.py @@ -15,6 +15,8 @@ class PyTifffile(PythonPackage): license("BSD-3-Clause") + version("2026.4.11", sha256="17758ff0c0d4db385792a083ad3ca51fcb0f4d942642f4d8f8bc1287fdcf17bc") + version("2025.10.4", sha256="2e437c16ab211be5bcdc79f71b4907359115f1f83b5d919e7c297c29725d3e38") version("2024.8.30", sha256="2c9508fe768962e30f87def61819183fb07692c258cb175b3c114828368485a4") version("2023.8.30", sha256="6a8c53b012a286b75d09a1498ab32f202f24cc6270a105b5d5911dc4426f162a") version( @@ -25,14 +27,19 @@ class PyTifffile(PythonPackage): version("2020.10.1", sha256="799feeccc91965b69e1288c51a1d1118faec7f40b2eb89ad2979591b85324830") version("0.12.1", sha256="802367effe86b0d1e64cb5c2ed886771f677fa63260b945e51a27acccdc08fa1") - depends_on("python@3.9:", when="@2023.7.18:", type=("build", "run")) - depends_on("python@3.8:", when="@2022.2.2:", type=("build", "run")) depends_on("py-setuptools", type="build") - # py-tifffile@2023.1.23: don't have a lower bound on py-numpy anymore - # -> leave it in nonetheless - depends_on("py-numpy@1.19.2:", when="@2022.2.2:", type=("build", "run")) - depends_on("py-numpy@1.15.1:", when="@2020.10.1:", type=("build", "run")) - depends_on("py-numpy@1.8.2:", type=("build", "run")) - # https://github.com/cgohlke/tifffile/issues/252 - depends_on("py-numpy@:1", when="@:2024.4.23", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("python@3.12:", when="@2025.5.21:") + depends_on("python@3.11:", when="@2025.5.21:") + depends_on("python@3.9:", when="@2023.7.18:") + depends_on("python@3.8:", when="@2022.2.2:") + + depends_on("py-numpy@2:", when="@2026.4.11:") + # py-tifffile@2023.1.23: don't have a lower bound on py-numpy anymore + # -> leave it in nonetheless + depends_on("py-numpy@1.19.2:", when="@2022.2.2:") + depends_on("py-numpy@1.15.1:", when="@2020.10.1:") + depends_on("py-numpy@1.8.2:") + # https://github.com/cgohlke/tifffile/issues/252 + depends_on("py-numpy@:1", when="@:2024.4.23") diff --git a/repos/spack_repo/builtin/packages/py_tiktoken/package.py b/repos/spack_repo/builtin/packages/py_tiktoken/package.py index d94b8e4a7ca..e79037fef33 100644 --- a/repos/spack_repo/builtin/packages/py_tiktoken/package.py +++ b/repos/spack_repo/builtin/packages/py_tiktoken/package.py @@ -18,6 +18,7 @@ class PyTiktoken(PythonPackage): license("MIT") + version("0.12.0", sha256="b18ba7ee2b093863978fcb14f74b3707cdc8d4d4d3836853ce7ec60772139931") version("0.9.0", sha256="d02a5ca6a938e0490e1ff957bc48c8b078c88cb83977be1625b1fd8aac792c5d") version("0.4.0", sha256="59b20a819969735b48161ced9b92f05dc4519c17be4015cfb73b65270a243620") version("0.3.1", sha256="8295912429374f5f3c6c6bf053a091ce1de8c1792a62e3b30d4ad36f47fa8b52") @@ -30,3 +31,4 @@ class PyTiktoken(PythonPackage): depends_on("python@3.8:", type=("build", "run")) depends_on("py-regex@2022.1.18:", type=("build", "run")) depends_on("py-requests@2.26.0:", type=("build", "run")) + depends_on("rust", type="build") diff --git a/repos/spack_repo/builtin/packages/py_tilelang/package.py b/repos/spack_repo/builtin/packages/py_tilelang/package.py new file mode 100644 index 00000000000..a95093f6652 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_tilelang/package.py @@ -0,0 +1,74 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.python import PythonPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage + +from spack.package import * + + +class PyTilelang(PythonPackage, CudaPackage, ROCmPackage): + """Domain-specific language designed to streamline + the development of high-performance GPU/CPU/Accelerators kernels""" + + license("MIT") + homepage = "https://tilelang.com/" + git = "https://github.com/tile-ai/tilelang.git" + submodules = True + + # Exact set of modules is version- and variant-specific, just attempt to import the + # core libraries to ensure that the package was successfully installed. + import_modules = ["tilelang", "tilelang.language", "tilelang.intrinsics"] + + version("main", branch="main") + version("0.1.7", tag="v0.1.7", commit="305c854be59b73eee297e24eb370bd75a8ff4179") + version("0.1.5", tag="v0.1.5", commit="a32009bf1e314b514c07389123648ba19009f3a5") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + with default_args(type="build"): + # https://github.com/tile-ai/tilelang/blob/v0.1.7/pyproject.toml + depends_on("py-scikit-build-core", when="@0.1.7:") + depends_on("py-cython@3.0.0:", when="@0.1.7:") + + # https://github.com/tile-ai/tilelang/blob/v0.1.5/pyproject.toml + depends_on("cmake@3.26:") + depends_on("py-packaging", when="@:0.1.5") + depends_on("py-setuptools@61:", when="@:0.1.5") + # depends_on("py-wheel") # inherited if `pip` is the build system + + # https://github.com/tile-ai/tilelang/blob/v0.1.5/requirements-build.txt + depends_on("py-build", when="@:0.1.5") + depends_on("py-tox", when="@:0.1.5") + depends_on("py-auditwheel", when="@:0.1.5") + depends_on("patchelf", when="@:0.1.5") + + with default_args(type=["build", "run"]): + # https://github.com/tile-ai/tilelang/pull/1403 + depends_on("py-torch-c-dlpack-ext", when="@0.1.7:") + # https://github.com/tile-ai/tilelang/blob/v0.1.7/pyproject.toml + depends_on("py-apache-tvm-ffi@:0.1.1", when="@0.1.7:") + depends_on("py-tqdm@4.62.3:", when="@0.1.7:") + # https://github.com/tile-ai/tilelang/blob/v0.1.5/requirements.txt + depends_on("py-cython") + depends_on("py-numpy@1.23.5:") + depends_on("py-tqdm@4.62.3:") + depends_on("py-typing-extensions@4.10.0:") + depends_on("py-cloudpickle") + depends_on("py-ml-dtypes") + depends_on("py-psutil") + depends_on("py-torch") + + def cmake_args(self): + return [ + self.define_from_variant("USE_CUDA", "cuda"), + self.define_from_variant("USE_ROCM", "rocm"), + ] + + def setup_run_environment(self, env: EnvironmentModifications) -> None: + # OSError: libnvrtc.so.12: cannot open shared object file: No such file or directory + if self.spec.satisfies("+cuda"): + env.prepend_path("LD_LIBRARY_PATH", self.spec["cuda"].prefix.lib64) diff --git a/repos/spack_repo/builtin/packages/py_timezonefinder/package.py b/repos/spack_repo/builtin/packages/py_timezonefinder/package.py new file mode 100644 index 00000000000..0465d2d9285 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_timezonefinder/package.py @@ -0,0 +1,41 @@ +# 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 PyTimezonefinder(PythonPackage): + """python package for finding the timezone of any point on earth (coordinates) offline""" + + homepage = "https://timezonefinder.michelfe.it/gui" + git = "https://github.com/jannikmi/timezonefinder.git" + pypi = "timezonefinder/timezonefinder-8.2.4.tar.gz" + + maintainers("LydDeb") + + license("MIT", checked_by="LydDeb") + + version("8.2.4", sha256="d80fae37adf1497729cc3e69826c22f3b2fec16db07932bf389b6ae545400b42") + + depends_on("c", type="build") + + depends_on("python@3.11:3", type=("build", "run")) + + with default_args(type="build"): + depends_on("py-setuptools@61:") + + with default_args(type=("build", "run")): + depends_on("py-numpy@2:") + depends_on("py-h3@4:") + depends_on("py-cffi@1.15.1:2") + depends_on("py-flatbuffers@25.2.10:") + + # py-setuptools@61: supports PEP 621 which recommends the following syntax + # license = { text = "Apache-2.0" } + @when("^py-setuptools@61:") + def patch(self): + pyproject = "pyproject.toml" + filter_file(r'^license\s*=\s*"([^"]+)"', r'license = { text = "\1" }', pyproject) diff --git a/repos/spack_repo/builtin/packages/py_timm/package.py b/repos/spack_repo/builtin/packages/py_timm/package.py index e516c1b2fc6..b9caae538c6 100644 --- a/repos/spack_repo/builtin/packages/py_timm/package.py +++ b/repos/spack_repo/builtin/packages/py_timm/package.py @@ -16,6 +16,7 @@ class PyTimm(PythonPackage): license("Apache-2.0") maintainers("adamjstewart") + version("1.0.24", sha256="c7b909f43fe2ef8fe62c505e270cd4f1af230dfbc37f2ee93e3608492b9d9a40") version("1.0.16", sha256="a3b8130dd2cb8dc3b9f5e3d09ab6d677a6315a8695fd5264eb6d52a4a46c1044") version("1.0.15", sha256="756a3bc30c96565f056e608a9b559daed904617eaadb6be536f96874879b1055") version("1.0.14", sha256="00a7f2cc04ce3ed8f80476bbb7eea27eac8cf6f2d59b5e9aa9cdd375dd6550db") diff --git a/repos/spack_repo/builtin/packages/py_tinycss2/package.py b/repos/spack_repo/builtin/packages/py_tinycss2/package.py index aa05400cd3d..f5bac72792c 100644 --- a/repos/spack_repo/builtin/packages/py_tinycss2/package.py +++ b/repos/spack_repo/builtin/packages/py_tinycss2/package.py @@ -18,8 +18,16 @@ class PyTinycss2(PythonPackage): license("BSD-3-Clause") + version("1.5.1", sha256="d339d2b616ba90ccce58da8495a78f46e55d4d25f9fd71dfd526f07e7d53f957") + version("1.4.0", sha256="10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7") version("1.2.1", sha256="8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627") version("1.1.1", sha256="b2e44dd8883c360c35dd0d1b5aad0b610e5156c2cb3b33434634e539ead9d8bf") depends_on("py-flit-core@3.2:3", type="build") - depends_on("py-webencodings@0.4:", type=("build", "run")) + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@1.5:") + depends_on("python@3.8:", when="@1.3:") + depends_on("python@3.7:", when="@1.2:") + + depends_on("py-webencodings@0.4:") diff --git a/repos/spack_repo/builtin/packages/py_tinyrecord/package.py b/repos/spack_repo/builtin/packages/py_tinyrecord/package.py new file mode 100644 index 00000000000..6a6be3846b5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_tinyrecord/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 PyTinyrecord(PythonPackage): + """Atomic transactions for TinyDB.""" + + homepage = "https://github.com/eugene-eeo/tinyrecord" + pypi = "tinyrecord/tinyrecord-0.2.0.tar.gz" + + license("MIT") + + version("0.2.0", sha256="eb6dc23601be359ee00f5a3d31a46adf3bad0a16f8d60af216cd67982ca75cf4") + + depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_tld/package.py b/repos/spack_repo/builtin/packages/py_tld/package.py new file mode 100644 index 00000000000..783911a35ce --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_tld/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 PyTld(PythonPackage): + """Extract the top-level domain (TLD) from the URL given.""" + + homepage = "https://github.com/barseghyanartur/tld" + pypi = "tld/tld-0.13.1.tar.gz" + + version("0.13.1", sha256="75ec00936cbcf564f67361c41713363440b6c4ef0f0c1592b5b0fbe72c17a350") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_tmtools/package.py b/repos/spack_repo/builtin/packages/py_tmtools/package.py new file mode 100644 index 00000000000..65338de19b6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_tmtools/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyTmtools(PythonPackage): + """Python bindings around the TM-align code for structural alignment of proteins.""" + + homepage = "https://github.com/jvkersch/tmtools" + git = "https://github.com/jvkersch/tmtools.git" + pypi = "tmtools/tmtools-0.2.0.tar.gz" + + maintainers("LydDeb") + + license("GPL-3.0-only", checked_by="LydDeb") + + version("0.2.0", sha256="e2d6422f5af91ee41753fb2e9776140785eb818ec83d7aef8a8b2f296f05e72c") + + depends_on("cxx", type="build") + depends_on("py-setuptools@42:", type="build") + depends_on("py-pybind11@2.10.4:2.10", type="build") + depends_on("py-numpy", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_tokenizers/package.py b/repos/spack_repo/builtin/packages/py_tokenizers/package.py index f79d4aaa1a2..88e7a8ea5f2 100644 --- a/repos/spack_repo/builtin/packages/py_tokenizers/package.py +++ b/repos/spack_repo/builtin/packages/py_tokenizers/package.py @@ -13,7 +13,11 @@ class PyTokenizers(PythonPackage): homepage = "https://github.com/huggingface/tokenizers" pypi = "tokenizers/tokenizers-0.6.0.tar.gz" + git = "https://github.com/huggingface/tokenizers.git" + version("main", branch="main") + version("0.22.2", sha256="473b83b915e547aa366d1eee11806deaf419e17be16310ac0a14077f1e28f917") + version("0.22.1", sha256="61de6522785310a309b3407bac22d99c4db5dba349935e99e4d15ea2226af2d9") version("0.21.0", sha256="ee0894bf311b75b0c03079f33859ae4b2334d675d4e93f5a4132e1eae2834fe4") version("0.20.4", sha256="db50ac15e92981227f499268541306824f49e97dbeec05d118ebdc7c2d22322c") version("0.19.1", sha256="ee59e6680ed0fdbe6b724cf38bd70400a0c1dd623b07ac729087270caeac88e3") @@ -21,20 +25,14 @@ class PyTokenizers(PythonPackage): version("0.13.3", sha256="2e546dbb68b623008a5442353137fbb0123d311a6d7ba52f2667c8862a75af2e") version("0.13.1", sha256="3333d1cee5c8f47c96362ea0abc1f81c77c9b92c6c3d11cbf1d01985f0d5cf1d") version("0.10.3", sha256="1a5d3b596c6d3a237e1ad7f46c472d467b0246be7fd1a364f12576eb8db8f7e6") - version( - "0.6.0", - sha256="1da11fbfb4f73be695bed0d655576097d09a137a16dceab2f66399716afaffac", - deprecated=True, - ) - version( - "0.5.2", - sha256="b5a235f9c71d04d4925df6c4fa13b13f1d03f9b7ac302b89f8120790c4f742bc", - deprecated=True, - ) + + depends_on("python@3.9:", type=("build", "run"), when="@0.22.1:") # TODO: This package currently requires internet access to install. depends_on("py-maturin@1", when="@0.14:", type="build") - depends_on("py-huggingface-hub@0.16.4:0", when="@0.15:", type=("build", "run")) + depends_on("rust", when="@0.14:", type="build") + depends_on("py-huggingface-hub@0.16.4:0", when="@0.15:0.21.0", type=("build", "run")) + depends_on("py-huggingface-hub@0.16.4:1", when="@0.22.1:", type=("build", "run")) # cargo resolves dependencies, which includes openssl-sys somewhere, which needs # system pkgconfig and openssl. @@ -45,10 +43,16 @@ class PyTokenizers(PythonPackage): depends_on("py-setuptools", when="@:0.13", type="build") depends_on("py-setuptools-rust", when="@:0.13", type="build") - # A nightly or dev version of rust is required to build older versions. - # https://github.com/huggingface/tokenizers/issues/176 - # https://github.com/PyO3/pyo3/issues/5 - depends_on("rust@nightly", when="@:0.8", type="build") - depends_on("c", type="build") depends_on("cxx", type="build") + + # fails in the spack pipeline otherwise, see + # https://github.com/huggingface/tokenizers/issues/2042 + conflicts("^py-maturin@1.13:", when="@:0.22.2 platform=darwin") + + @property + def build_directory(self): + if self.version == Version("main"): + return join_path("bindings", "python") + else: + return "." diff --git a/repos/spack_repo/builtin/packages/py_tomli/package.py b/repos/spack_repo/builtin/packages/py_tomli/package.py index a8962af1393..de1e240a90b 100644 --- a/repos/spack_repo/builtin/packages/py_tomli/package.py +++ b/repos/spack_repo/builtin/packages/py_tomli/package.py @@ -20,13 +20,16 @@ class PyTomli(PythonPackage): license("MIT") + version("2.4.1", sha256="7c7e1a961a0b2f2472c1ac5b69affa0ae1132c39adcb67aba98568702b9cc23f") version("2.0.1", sha256="de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f") version("1.2.2", sha256="c6ce0015eb38820eaf32b5db832dbc26deb3dd427bd5f6556cf0acac2c214fee") version("1.2.1", sha256="a5b75cb6f3968abb47af1b40c1819dc519ea82bcc065776a866e8d74c5ca9442") # https://github.com/hukkin/tomli/blob/2.0.1/pyproject.toml#L2 depends_on("py-flit-core@3.2:3", type="build") + depends_on("py-flit-core@3.12:3", type="build") # https://github.com/hukkin/tomli/blob/2.0.1/pyproject.toml#L13 depends_on("python@3.6:", type=("build", "run")) depends_on("python@3.7:", type=("build", "run"), when="@2.0.1:") + depends_on("python@3.8:", type=("build", "run"), when="@2.4.1:") diff --git a/repos/spack_repo/builtin/packages/py_tomlkit/package.py b/repos/spack_repo/builtin/packages/py_tomlkit/package.py index 3e9d48b190e..47018858077 100644 --- a/repos/spack_repo/builtin/packages/py_tomlkit/package.py +++ b/repos/spack_repo/builtin/packages/py_tomlkit/package.py @@ -15,6 +15,8 @@ class PyTomlkit(PythonPackage): license("MIT") + version("0.14.0", sha256="cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064") + version("0.13.3", sha256="430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1") version("0.12.1", sha256="38e1ff8edb991273ec9f6181244a6a391ac30e9f5098e7535640ea6be97a7c86") version("0.11.8", sha256="9330fc7faa1db67b541b28e62018c17d20be733177d290a13b24c62d1614e0c3") version("0.11.4", sha256="3235a9010fae54323e727c3ac06fb720752fe6635b3426e379daec60fbd44a83") @@ -22,6 +24,10 @@ class PyTomlkit(PythonPackage): version("0.7.2", sha256="d7a454f319a7e9bd2e249f239168729327e4dd2d27b17dc68be264ad1ce36754") version("0.7.0", sha256="ac57f29693fab3e309ea789252fcce3061e19110085aa31af5446ca749325618") - depends_on("python@3.7:", when="@0.11.8:", type=("build", "run")) - depends_on("python@3.6:3", when="@0.11.0:0.11.5", type=("build", "run")) depends_on("py-poetry-core@1:", type="build") + + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@0.14:") + depends_on("python@3.8:", when="@0.13:") + depends_on("python@3.7:", when="@0.11.8:0.11") + depends_on("python@3.6:3", when="@0.11.0:0.11.5") diff --git a/repos/spack_repo/builtin/packages/py_toolz/package.py b/repos/spack_repo/builtin/packages/py_toolz/package.py index d21454e6bf3..9295cd80e58 100644 --- a/repos/spack_repo/builtin/packages/py_toolz/package.py +++ b/repos/spack_repo/builtin/packages/py_toolz/package.py @@ -15,8 +15,16 @@ class PyToolz(PythonPackage): license("BSD-3-Clause") + version("1.1.0", sha256="27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b") version("0.12.0", sha256="88c570861c440ee3f2f6037c4654613228ff40c93a6c25e0eba70d17282c6194") version("0.9.0", sha256="929f0a7ea7f61c178bd951bdae93920515d3fbdbafc8e6caf82d752b9b3b31c9") - depends_on("py-setuptools", type="build") - depends_on("python@3.5:", type=("build", "run"), when="@0.11.0:") + with default_args(type="build"): + depends_on("py-setuptools") + depends_on("py-setuptools@77:", when="@1.1.0:") + + depends_on("py-setuptools-git-versioning@2.0:", when="@1.1.0:") + + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@1.1.0:") + depends_on("python@3.5:", when="@0.11.0:") diff --git a/repos/spack_repo/builtin/packages/py_torch/fj-ssl2_1.3-1.5.patch b/repos/spack_repo/builtin/packages/py_torch/fj-ssl2_1.3-1.5.patch deleted file mode 100644 index 0ea87500b0a..00000000000 --- a/repos/spack_repo/builtin/packages/py_torch/fj-ssl2_1.3-1.5.patch +++ /dev/null @@ -1,76 +0,0 @@ -diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake -index a8e9769536..f0f91304c2 100644 ---- a/cmake/Dependencies.cmake -+++ b/cmake/Dependencies.cmake -@@ -107,7 +107,7 @@ else() - set(AT_MKLDNN_ENABLED 0) - set(AT_MKL_ENABLED 0) - endif() --set_property(CACHE BLAS PROPERTY STRINGS "Eigen;ATLAS;OpenBLAS;MKL;vecLib;FLAME") -+set_property(CACHE BLAS PROPERTY STRINGS "Eigen;ATLAS;OpenBLAS;MKL;vecLib;SSL2;FLAME") - message(STATUS "Trying to find preferred BLAS backend of choice: " ${BLAS}) - - if(BLAS STREQUAL "Eigen") -@@ -147,6 +147,20 @@ elseif(BLAS STREQUAL "vecLib") - find_package(vecLib REQUIRED) - include_directories(SYSTEM ${vecLib_INCLUDE_DIR}) - list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS ${vecLib_LINKER_LIBS}) -+elseif(BLAS STREQUAL "SSL2") -+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$" -+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$") -+ message(STATUS "SSL2 Selected BLAS library") -+ list(APPEND Caffe2_PUBLIC_DEPENDENCY_LIBS "fjlapackexsve.so") -+ set(SSL2_FOUND ON) -+ message(STATUS "set CMAKE_SHARED_LINKER_FLAGS: -SSL2 --linkfortran") -+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran") -+ set(WITH_BLAS "ssl2") -+ else() -+ message(STATUS "Not built using fcc and FCC.") -+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}") -+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}") -+ endif() - else() - message(FATAL_ERROR "Unrecognized BLAS option: " ${BLAS}) - endif() -@@ -156,7 +170,7 @@ if (NOT INTERN_BUILD_MOBILE) - set(AT_MKL_ENABLED 0) - set(AT_MKL_MT 0) - set(USE_BLAS 1) -- if(NOT (ATLAS_FOUND OR OpenBLAS_FOUND OR MKL_FOUND OR VECLIB_FOUND)) -+ if(NOT (ATLAS_FOUND OR OpenBLAS_FOUND OR MKL_FOUND OR VECLIB_FOUND OR SSL2_FOUND)) - message(WARNING "Preferred BLAS (" ${BLAS} ") cannot be found, now searching for a general BLAS library") - find_package(BLAS) - if (NOT BLAS_FOUND) -diff --git a/cmake/Modules/FindBLAS.cmake b/cmake/Modules/FindBLAS.cmake -index e93e98a609..d43a6c40bd 100644 ---- a/cmake/Modules/FindBLAS.cmake -+++ b/cmake/Modules/FindBLAS.cmake -@@ -239,6 +239,28 @@ if((NOT BLAS_LIBRARIES) - endif (BLAS_LIBRARIES) - endif() - -+# BLAS in SSL2 library? -+if((NOT BLAS_LIBRARIES) -+ AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "ssl2"))) -+ if(CMAKE_CXX_COMPILER MATCHES ".*/FCC$" -+ AND CMAKE_C_COMPILER MATCHES ".*/fcc$") -+ check_fortran_libraries( -+ BLAS_LIBRARIES -+ BLAS -+ sgemm -+ "-SSL2;--linkfortran" -+ "fjlapackexsve") -+ if (BLAS_LIBRARIES) -+ set(BLAS_INFO "ssl2") -+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -SSL2 --linkfortran") -+ endif (BLAS_LIBRARIES) -+ else() -+ message(STATUS "Not built using fcc and FCC.") -+ message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}") -+ message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}") -+ endif() -+endif() -+ - # Generic BLAS library? - if((NOT BLAS_LIBRARIES) - AND ((NOT WITH_BLAS) OR (WITH_BLAS STREQUAL "generic"))) diff --git a/repos/spack_repo/builtin/packages/py_torch/gloo_cuda.patch b/repos/spack_repo/builtin/packages/py_torch/gloo_cuda.patch deleted file mode 100644 index 4c18dbd2697..00000000000 --- a/repos/spack_repo/builtin/packages/py_torch/gloo_cuda.patch +++ /dev/null @@ -1,115 +0,0 @@ -From e9bfe6f07faeaeba252cc426c2539b4b50326796 Mon Sep 17 00:00:00 2001 -From: Nathan Brown -Date: Tue, 4 Feb 2025 15:51:24 +0000 -Subject: [PATCH] gloo: fix building system gloo with CUDA/HIP - -Fix incorrect linking of Gloo's libraries when building with system -Gloo. Previously, either Gloo's native library or Gloo's CUDA library -were linked. However, Gloo had changed such that all users of Gloo must -link the native library, and can optionally link the CUDA or HIP -library for Gloo + CUDA/HIP support. -This had been updated when building/linking with vendored Gloo, but not -when using system Gloo. - -Fixes: #146239 - -Reported-by: Adam J Stewart -Signed-off-by: Nathan Brown ---- - cmake/Dependencies.cmake | 11 ++++++++-- - cmake/Modules/FindGloo.cmake | 39 +++++++++++++++--------------------- - 2 files changed, 25 insertions(+), 25 deletions(-) - -diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake -index 9342555d9bc7e40086c87fa7c199da18031ce808..c680e4995fb67000f6e545fe09190643dcf7ee25 100644 ---- a/cmake/Dependencies.cmake -+++ b/cmake/Dependencies.cmake -@@ -1192,10 +1192,17 @@ if(USE_GLOO) - if(NOT Gloo_FOUND) - message(FATAL_ERROR "Cannot find gloo") - endif() -- message("Found gloo: ${Gloo_LIBRARY}") -+ message("Found gloo: ${Gloo_NATIVE_LIBRARY}, cuda lib: ${Gloo_CUDA_LIBRARY}, hip lib: ${Gloo_HIP_LIBRARY}") - message("Found gloo include directories: ${Gloo_INCLUDE_DIRS}") - add_library(gloo SHARED IMPORTED) -- set_target_properties(gloo PROPERTIES IMPORTED_LOCATION ${Gloo_LIBRARY}) -+ set_target_properties(gloo PROPERTIES IMPORTED_LOCATION ${Gloo_NATIVE_LIBRARY}) -+ if(USE_CUDA) -+ add_library(gloo_cuda SHARED IMPORTED) -+ set_target_properties(gloo_cuda PROPERTIES IMPORTED_LOCATION ${Gloo_CUDA_LIBRARY}) -+ elseif(USE_ROCM) -+ add_library(gloo_hip SHARED IMPORTED) -+ set_target_properties(gloo_hip PROPERTIES IMPORTED_LOCATION ${Gloo_HIP_LIBRARY}) -+ endif() - # need to use Gloo_INCLUDE_DIRS over third_party/gloo to find Gloo's auto-generated config.h - include_directories(BEFORE SYSTEM ${Gloo_INCLUDE_DIRS}) - endif() -diff --git a/cmake/Modules/FindGloo.cmake b/cmake/Modules/FindGloo.cmake -index e965326e2e8a0ab006bfe79243a66292ba262b62..944cd4d8d25738125c0f85b4dd9fee2850029339 100644 ---- a/cmake/Modules/FindGloo.cmake -+++ b/cmake/Modules/FindGloo.cmake -@@ -1,7 +1,8 @@ - # Try to find the Gloo library and headers. - # Gloo_FOUND - system has Gloo lib - # Gloo_INCLUDE_DIRS - the Gloo include directory --# Gloo_LIBRARY/Gloo_NATIVE_LIBRARY - libraries needed to use Gloo -+# Gloo_NATIVE_LIBRARY - base gloo library, needs to be linked -+# Gloo_CUDA_LIBRARY/Gloo_HIP_LIBRARY - CUDA/HIP support library in Gloo - - find_path(Gloo_INCLUDE_DIR - NAMES gloo/common/common.h -@@ -10,40 +11,32 @@ find_path(Gloo_INCLUDE_DIR - - find_library(Gloo_NATIVE_LIBRARY - NAMES gloo -- DOC "The Gloo library (without CUDA)" -+ DOC "The Gloo library" - ) - -+# Gloo has optional CUDA support -+# if Gloo + CUDA is desired, Gloo_CUDA_LIBRARY -+# needs to be linked into desired target - find_library(Gloo_CUDA_LIBRARY - NAMES gloo_cuda -- DOC "The Gloo library (with CUDA)" -+ DOC "Gloo's CUDA support/code" -+) -+ -+# Gloo has optional HIP support -+# if Gloo + HIP is desired, Gloo_HIP_LIBRARY -+# needs to be linked to desired target -+find_library(Gloo_HIP_LIBRARY -+ NAMES gloo_hiop -+ DOC "Gloo's HIP support/code" - ) - - set(Gloo_INCLUDE_DIRS ${Gloo_INCLUDE_DIR}) - --# use the CUDA library depending on the Gloo_USE_CUDA variable --if (DEFINED Gloo_USE_CUDA) -- if (${Gloo_USE_CUDA}) -- set(Gloo_LIBRARY ${Gloo_CUDA_LIBRARY}) -- set(Gloo_NATIVE_LIBRARY ${Gloo_NATIVE_LIBRARY}) -- else() -- set(Gloo_LIBRARY ${Gloo_NATIVE_LIBRARY}) -- set(Gloo_NATIVE_LIBRARY ${Gloo_NATIVE_LIBRARY}) -- endif() --else() -- # else try to use the CUDA library if found -- if (${Gloo_CUDA_LIBRARY} STREQUAL "Gloo_CUDA_LIBRARY-NOTFOUND") -- set(Gloo_LIBRARY ${Gloo_NATIVE_LIBRARY}) -- set(Gloo_NATIVE_LIBRARY ${Gloo_NATIVE_LIBRARY}) -- else() -- set(Gloo_LIBRARY ${Gloo_CUDA_LIBRARY}) -- set(Gloo_NATIVE_LIBRARY ${Gloo_NATIVE_LIBRARY}) -- endif() --endif() - - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(Gloo - FOUND_VAR Gloo_FOUND -- REQUIRED_VARS Gloo_INCLUDE_DIR Gloo_LIBRARY -+ REQUIRED_VARS Gloo_INCLUDE_DIR Gloo_NATIVE_LIBRARY - ) - - mark_as_advanced(Gloo_FOUND) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index 8243424abe5..c17b5061546 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -29,59 +29,67 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): tags = ["e4s"] version("main", branch="main") - version("2.7.1", tag="v2.7.1", commit="e2d141dbde55c2a4370fac5165b0561b6af4798b") - version("2.7.0", tag="v2.7.0", commit="134179474539648ba7dee1317959529fbd0e7f89") - version("2.6.0", tag="v2.6.0", commit="1eba9b3aa3c43f86f4a2c807ac8e12c4a7767340") - version("2.5.1", tag="v2.5.1", commit="a8d6afb511a69687bbb2b7e88a3cf67917e1697e") - version("2.5.0", tag="v2.5.0", commit="32f585d9346e316e554c8d9bf7548af9f62141fc") - version("2.4.1", tag="v2.4.1", commit="ee1b6804381c57161c477caa380a840a84167676") - version("2.4.0", tag="v2.4.0", commit="d990dada86a8ad94882b5c23e859b88c0c255bda") - version("2.3.1", tag="v2.3.1", commit="63d5e9221bedd1546b7d364b5ce4171547db12a9") - version("2.3.0", tag="v2.3.0", commit="97ff6cfd9c86c5c09d7ce775ab64ec5c99230f5d") - version("2.2.2", tag="v2.2.2", commit="39901f229520a5256505ec24782f716ee7ddc843") - version("2.2.1", tag="v2.2.1", commit="6c8c5ad5eaf47a62fafbb4a2747198cbffbf1ff0") - version("2.2.0", tag="v2.2.0", commit="8ac9b20d4b090c213799e81acf48a55ea8d437d6") - version("2.1.2", tag="v2.1.2", commit="a8e7c98cb95ff97bb30a728c6b2a1ce6bff946eb") - version("2.1.1", tag="v2.1.1", commit="4c55dc50355d5e923642c59ad2a23d6ad54711e7") - version("2.1.0", tag="v2.1.0", commit="7bcf7da3a268b435777fe87c7794c382f444e86d") - version("2.0.1", tag="v2.0.1", commit="e9ebda29d87ce0916ab08c06ab26fd3766a870e5") - version("2.0.0", tag="v2.0.0", commit="c263bd43e8e8502d4726643bc6fd046f0130ac0e") - version("1.13.1", tag="v1.13.1", commit="49444c3e546bf240bed24a101e747422d1f8a0ee") - version("1.13.0", tag="v1.13.0", commit="7c98e70d44abc7a1aead68b6ea6c8adc8c554db5") - version("1.12.1", tag="v1.12.1", commit="664058fa83f1d8eede5d66418abff6e20bd76ca8") - version("1.12.0", tag="v1.12.0", commit="67ece03c8cd632cce9523cd96efde6f2d1cc8121") - version("1.11.0", tag="v1.11.0", commit="bc2c6edaf163b1a1330e37a6e34caf8c553e4755") - version("1.10.2", tag="v1.10.2", commit="71f889c7d265b9636b93ede9d651c0a9c4bee191") - version("1.10.1", tag="v1.10.1", commit="302ee7bfb604ebef384602c56e3853efed262030") - version("1.10.0", tag="v1.10.0", commit="36449ea93134574c2a22b87baad3de0bf8d64d42") - version("1.9.1", tag="v1.9.1", commit="dfbd030854359207cb3040b864614affeace11ce") - version("1.9.0", tag="v1.9.0", commit="d69c22dd61a2f006dcfe1e3ea8468a3ecaf931aa") - version("1.8.2", tag="v1.8.2", commit="e0495a7aa104471d95dc85a1b8f6473fbcc427a8") - version("1.8.1", tag="v1.8.1", commit="56b43f4fec1f76953f15a627694d4bba34588969") - version("1.8.0", tag="v1.8.0", commit="37c1f4a7fef115d719104e871d0cf39434aa9d56") - version("1.7.1", tag="v1.7.1", commit="57bffc3a8e4fee0cce31e1ff1f662ccf7b16db57") - version( - "1.7.0", tag="v1.7.0", commit="e85d494707b835c12165976b8442af54b9afcb26", deprecated=True - ) - version( - "1.6.0", tag="v1.6.0", commit="b31f58de6fa8bbda5353b3c77d9be4914399724d", deprecated=True - ) - version( - "1.5.1", tag="v1.5.1", commit="3c31d73c875d9a4a6ea8a843b9a0d1b19fbe36f3", deprecated=True - ) - version( - "1.5.0", tag="v1.5.0", commit="4ff3872a2099993bf7e8c588f7182f3df777205b", deprecated=True - ) - version( - "1.4.1", tag="v1.4.1", commit="74044638f755cd8667bedc73da4dbda4aa64c948", deprecated=True - ) + version("2.12.0", tag="v2.12.0", commit="0d62256a2b23365f8e1604297eb23a6545102aa8") + version("2.11.0", tag="v2.11.0", commit="70d99e998b4955e0049d13a98d77ae1b14db1f45") + version("2.10.0", tag="v2.10.0", commit="449b1768410104d3ed79d3bcfe4ba1d65c7f22c0") + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2026-24747/ + version("2.9.1", tag="v2.9.1", commit="d38164a545b4a4e4e0cf73ce67173f70574890b6") + version("2.9.0", tag="v2.9.0", commit="0fabc3ba44823f257e70ce397d989c8de5e362c1") + # https://www.cvedetails.com/cve/CVE-2025-55554/ + # https://www.cvedetails.com/cve/CVE-2025-55552/ + # https://www.cvedetails.com/cve/CVE-2025-55551/ + version("2.8.0", tag="v2.8.0", commit="ba56102387ef21a3b04b357e5b183d48f0afefc7") + version("2.7.1", tag="v2.7.1", commit="e2d141dbde55c2a4370fac5165b0561b6af4798b") + # https://www.cvedetails.com/cve/CVE-2025-55560/ + # https://www.cvedetails.com/cve/CVE-2025-55558/ + # https://www.cvedetails.com/cve/CVE-2025-55557/ + # https://www.cvedetails.com/cve/CVE-2025-55553/ + version("2.7.0", tag="v2.7.0", commit="134179474539648ba7dee1317959529fbd0e7f89") + # https://www.cvedetails.com/cve/CVE-2025-46148/ + version("2.6.0", tag="v2.6.0", commit="1eba9b3aa3c43f86f4a2c807ac8e12c4a7767340") + # https://www.cvedetails.com/cve/CVE-2025-32434/ + version("2.5.1", tag="v2.5.1", commit="a8d6afb511a69687bbb2b7e88a3cf67917e1697e") + version("2.5.0", tag="v2.5.0", commit="32f585d9346e316e554c8d9bf7548af9f62141fc") + # https://www.cvedetails.com/cve/CVE-2024-48063/ + version("2.4.1", tag="v2.4.1", commit="ee1b6804381c57161c477caa380a840a84167676") + version("2.4.0", tag="v2.4.0", commit="d990dada86a8ad94882b5c23e859b88c0c255bda") + version("2.3.1", tag="v2.3.1", commit="63d5e9221bedd1546b7d364b5ce4171547db12a9") + version("2.3.0", tag="v2.3.0", commit="97ff6cfd9c86c5c09d7ce775ab64ec5c99230f5d") + version("2.2.2", tag="v2.2.2", commit="39901f229520a5256505ec24782f716ee7ddc843") + # https://www.cvedetails.com/cve/CVE-2024-5480/ + version("2.2.1", tag="v2.2.1", commit="6c8c5ad5eaf47a62fafbb4a2747198cbffbf1ff0") + version("2.2.0", tag="v2.2.0", commit="8ac9b20d4b090c213799e81acf48a55ea8d437d6") + # https://www.cvedetails.com/cve/CVE-2024-31584/ + # https://www.cvedetails.com/cve/CVE-2024-31583/ + # https://www.cvedetails.com/cve/CVE-2024-31580/ + version("2.1.2", tag="v2.1.2", commit="a8e7c98cb95ff97bb30a728c6b2a1ce6bff946eb") + version("2.1.1", tag="v2.1.1", commit="4c55dc50355d5e923642c59ad2a23d6ad54711e7") + version("2.1.0", tag="v2.1.0", commit="7bcf7da3a268b435777fe87c7794c382f444e86d") + version("2.0.1", tag="v2.0.1", commit="e9ebda29d87ce0916ab08c06ab26fd3766a870e5") + version("2.0.0", tag="v2.0.0", commit="c263bd43e8e8502d4726643bc6fd046f0130ac0e") + version("1.13.1", tag="v1.13.1", commit="49444c3e546bf240bed24a101e747422d1f8a0ee") + # https://www.cvedetails.com/cve/CVE-2022-45907/ + version("1.13.0", tag="v1.13.0", commit="7c98e70d44abc7a1aead68b6ea6c8adc8c554db5") + version("1.12.1", tag="v1.12.1", commit="664058fa83f1d8eede5d66418abff6e20bd76ca8") + version("1.12.0", tag="v1.12.0", commit="67ece03c8cd632cce9523cd96efde6f2d1cc8121") + version("1.11.0", tag="v1.11.0", commit="bc2c6edaf163b1a1330e37a6e34caf8c553e4755") + version("1.10.2", tag="v1.10.2", commit="71f889c7d265b9636b93ede9d651c0a9c4bee191") + version("1.10.1", tag="v1.10.1", commit="302ee7bfb604ebef384602c56e3853efed262030") + version("1.10.0", tag="v1.10.0", commit="36449ea93134574c2a22b87baad3de0bf8d64d42") + version("1.9.1", tag="v1.9.1", commit="dfbd030854359207cb3040b864614affeace11ce") + version("1.9.0", tag="v1.9.0", commit="d69c22dd61a2f006dcfe1e3ea8468a3ecaf931aa") + version("1.8.2", tag="v1.8.2", commit="e0495a7aa104471d95dc85a1b8f6473fbcc427a8") + version("1.8.1", tag="v1.8.1", commit="56b43f4fec1f76953f15a627694d4bba34588969") + version("1.8.0", tag="v1.8.0", commit="37c1f4a7fef115d719104e871d0cf39434aa9d56") + version("1.7.1", tag="v1.7.1", commit="57bffc3a8e4fee0cce31e1ff1f662ccf7b16db57") is_darwin = sys.platform == "darwin" # All options are defined in CMakeLists.txt. # Some are listed in setup.py, but not all. variant("debug", default=False, description="Build with debugging support") - variant("caffe2", default=False, description="Build Caffe2", when="@1.7:") + variant("caffe2", default=False, description="Build Caffe2") variant("test", default=False, description="Build C++ test binaries") variant("cuda", default=not is_darwin, description="Use CUDA") variant("rocm", default=False, description="Use ROCm") @@ -105,13 +113,13 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): variant("openmp", default=True, description="Use OpenMP for parallel code") variant("qnnpack", default=True, description="Use QNNPACK (quantized 8-bit operators)") variant("valgrind", default=True, description="Use Valgrind", when="@1.8: platform=linux") - variant("xnnpack", default=True, description="Use XNNPACK", when="@1.5:") + variant("xnnpack", default=True, description="Use XNNPACK") variant("mkldnn", default=True, description="Use MKLDNN") variant("distributed", default=True, description="Use distributed") variant("mpi", default=True, description="Use MPI for Caffe2", when="+distributed") variant("ucc", default=False, description="Use UCC", when="@1.13: +distributed") - variant("gloo", default=True, description="Use Gloo", when="+distributed") - variant("tensorpipe", default=True, description="Use TensorPipe", when="@1.6: +distributed") + variant("gloo", default=False, description="Use Gloo", when="+distributed") + variant("tensorpipe", default=True, description="Use TensorPipe", when="+distributed") variant( "breakpad", default=True, @@ -124,6 +132,7 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): _desc = "Build the flash_attention kernel for scaled dot product attention" variant("flash_attention", default=True, description=_desc, when="@1.13:+cuda") variant("flash_attention", default=True, description=_desc, when="@1.13:+rocm") + variant("cusparselt", default=True, description="Use NVIDIA cuSPARSELt", when="@2.1: +cuda") # py-torch has strict dependencies on old protobuf/py-protobuf versions that # cause problems with other packages that require newer versions of protobuf # and py-protobuf --> provide an option to use the internal/vendored protobuf. @@ -160,18 +169,20 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): # Required dependencies depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("binutils@2.36:", when="platform=linux", type="build") # Based on PyPI wheel availability with default_args(type=("build", "link", "run")): - depends_on("python@3.9:3.13", when="@2.5:") + depends_on("python@3.10:3.14", when="@2.9:") + depends_on("python@3.9:3.13", when="@2.5:2.8") depends_on("python@3.8:3.12", when="@2.2:2.4") depends_on("python@3.8:3.11", when="@2.0:2.1") depends_on("python@:3.10", when="@1.11:1") depends_on("python@:3.9", when="@1.7.1:1.10") - depends_on("python@:3.8", when="@1.4:1.7.0") # CMakelists.txt with default_args(type="build"): + depends_on("cmake@3.27:", when="@2.8:") depends_on("cmake@3.18:", when="@2:") depends_on("cmake@3.13:", when="@1.11:") depends_on("cmake@3.10:", when="@1.10:") @@ -183,22 +194,28 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): depends_on("py-filelock", when="@2:") depends_on("py-typing-extensions@4.10:", when="@2.6:") depends_on("py-typing-extensions@4.8:", when="@2.2:") - depends_on("py-typing-extensions@3.6.2.1:", when="@1.7:") - depends_on("py-setuptools") + depends_on("py-typing-extensions@3.6.2.1:") depends_on("py-sympy@1.13.3:", when="@2.7:") depends_on("py-sympy@1.13.1", when="@2.5:2.6") depends_on("py-sympy", when="@2:") + depends_on("py-networkx@2.5.1:", when="@2.9:") depends_on("py-networkx", when="@2:") depends_on("py-jinja2", when="@2:") + depends_on("py-fsspec@0.8.5:", when="@2.9:") depends_on("py-fsspec", when="@2.1:") # pyproject.toml - depends_on("py-astunparse", when="@1.13:") + depends_on("py-setuptools@70.1:81", when="@2.10:") + depends_on("py-setuptools@70.1:79", when="@2.9:") + depends_on("py-setuptools@62.3:79", when="@2.8") + depends_on("py-setuptools@:79", when="@:2.7") depends_on("py-numpy") # https://github.com/pytorch/pytorch/issues/107302 depends_on("py-numpy@:1", when="@:2.2") + depends_on("py-packaging", when="@2.9:") depends_on("py-pyyaml") depends_on("py-requests", when="@1.13:") + depends_on("py-six", when="@1.13:1,2.9:") # Undocumented dependencies depends_on("py-tqdm", type="run") @@ -206,11 +223,14 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): depends_on("lapack") # third_party - depends_on("fp16@2020-05-14", when="@1.6:") - depends_on("fxdiv@2020-04-17", when="@1.6:") - depends_on("nvtx@3.1.0", when="@2.6:") + depends_on("fp16@2020-05-14") + depends_on("fxdiv@2020-04-17") + depends_on("nvtx@3.3.0", when="@2.10:") + depends_on("nvtx@3.2.1", when="@2.8:2.9") + depends_on("nvtx@3.1.0", when="@2.6:2.7") # https://github.com/pytorch/pytorch/issues/60332 - # depends_on("xnnpack@2024-11-08", when="@2.6:+xnnpack") + # depends_on("xnnpack@2024-12-03", when="@2.7:+xnnpack") + # depends_on("xnnpack@2024-11-08", when="@2.6+xnnpack") # depends_on("xnnpack@2024-02-29", when="@2.3:2.5+xnnpack") # depends_on("xnnpack@2022-12-21", when="@2.0:2.2+xnnpack") # depends_on("xnnpack@2022-02-16", when="@1.12:1+xnnpack") @@ -218,7 +238,9 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): # depends_on("xnnpack@2021-02-22", when="@1.8:1.9+xnnpack") # depends_on("xnnpack@2020-03-23", when="@1.6:1.7+xnnpack") depends_on("benchmark", when="@1.6:+test") - depends_on("cpuinfo@2024-09-26", when="@2.6:") + depends_on("cpuinfo@2025-11-14", when="@2.10:") + depends_on("cpuinfo@2025-03-21", when="@2.8:2.9") + depends_on("cpuinfo@2024-09-26", when="@2.6:2.7") depends_on("cpuinfo@2024-09-06", when="@2.5.1") depends_on("cpuinfo@2024-08-30", when="@2.5.0") depends_on("cpuinfo@2023-11-04", when="@2.3:2.4") @@ -226,20 +248,22 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): depends_on("cpuinfo@2022-08-19", when="@1.13:2.0") depends_on("cpuinfo@2020-12-17", when="@1.8:1.12") depends_on("cpuinfo@2020-06-11", when="@1.6:1.7") - depends_on("eigen") - depends_on("gloo@2023-12-03", when="@2.3:+gloo") - depends_on("gloo@2023-05-19", when="@2.1:2.2+gloo") - depends_on("gloo@2023-01-17", when="@2.0+gloo") - depends_on("gloo@2022-05-18", when="@1.13:1+gloo") - depends_on("gloo@2021-05-21", when="@1.10:1.12+gloo") - depends_on("gloo@2021-05-04", when="@1.9+gloo") - depends_on("gloo@2020-09-18", when="@1.7:1.8+gloo") - depends_on("gloo@2020-03-17", when="@1.6+gloo") - depends_on("gloo+cuda", when="@1.6:+gloo+cuda") - depends_on("gloo+libuv", when="@1.6: platform=darwin") - depends_on("nccl", when="+nccl+cuda") + with when("+gloo"): + depends_on("gloo@2025-12-02", when="@2.11:") + depends_on("gloo@2025-08-21", when="@2.9:2.10") + depends_on("gloo@2025-06-04", when="@2.8") + depends_on("gloo@2023-12-03", when="@2.3:2.7") + depends_on("gloo@2023-05-19", when="@2.1:2.2") + depends_on("gloo@2023-01-17", when="@2.0") + depends_on("gloo@2022-05-18", when="@1.13:1") + depends_on("gloo@2021-05-21", when="@1.10:1.12") + depends_on("gloo@2021-05-04", when="@1.9") + depends_on("gloo@2020-09-18", when="@1.7:1.8") + depends_on("gloo+cuda", when="+gloo+cuda") + depends_on("gloo+libuv", when="platform=darwin") # https://github.com/pytorch/pytorch/issues/60331 - # depends_on("onnx@1.17.0", when="@2.6:") + # depends_on("onnx@1.18.0", when="@2.8:") + # depends_on("onnx@1.17.0", when="@2.6:2.7") # depends_on("onnx@1.16.0", when="@2.3:2.5") # depends_on("onnx@1.15.0", when="@2.2") # depends_on("onnx@1.14.1", when="@2.1") @@ -253,19 +277,16 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): with when("~custom-protobuf"): depends_on("protobuf@3.13.0", when="@1.10:") depends_on("protobuf@3.11.4", when="@1.6:1.9") - depends_on("protobuf@3.6.1", when="@1.1:1.5") - depends_on("protobuf@3.5.0", when="@1.0") with default_args(type=("build", "run")): depends_on("py-protobuf@3.13", when="@1.10:") depends_on("py-protobuf@3.11", when="@1.6:1.9") - depends_on("py-protobuf@3.6", when="@1.1:1.5") - depends_on("py-protobuf@3.5", when="@1.0") - depends_on("psimd@2020-05-17", when="@1.6:") + depends_on("psimd@2020-05-17") depends_on("pthreadpool@2023-08-29", when="@2.2:") depends_on("pthreadpool@2021-04-13", when="@1.9:2.1") depends_on("pthreadpool@2020-10-05", when="@1.8") depends_on("pthreadpool@2020-06-15", when="@1.6:1.7") with default_args(type=("build", "link", "run")): + depends_on("py-pybind11@3.0.1:", when="@2.9:") depends_on("py-pybind11@2.13.6:", when="@2.6:") depends_on("py-pybind11@2.13.5:", when="@2.5") depends_on("py-pybind11@2.12.0:", when="@2.3:2.4") @@ -274,14 +295,20 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): depends_on("py-pybind11@2.10.0:", when="@1.13:1") depends_on("py-pybind11@2.6.2:", when="@1.8:1.12") depends_on("py-pybind11@2.3.0:", when="@:1.7") - depends_on("sleef@3.7.0_2024-12-06", when="@2.7:") + # https://github.com/spack/spack-packages/pull/3708#issuecomment-4077800794 + depends_on("py-pybind11@:3.0.1", when="@:2.11") + depends_on("sleef@3.8", when="@2.8:") + depends_on("sleef@3.7.0_2024-12-06", when="@2.7") depends_on("sleef@3.6.0_2024-03-20", when="@2.4:2.6") depends_on("sleef@3.5.1_2020-12-22", when="@1.8:2.3") depends_on("sleef@3.4.0_2019-07-30", when="@1.6:1.7") + depends_on("eigen") # Optional dependencies with default_args(type=("build", "link", "run")): # cmake/public/cuda.cmake + depends_on("cuda@12.6:", when="@2.12:+cuda") + depends_on("cuda@12:", when="@2.9:+cuda") depends_on("cuda@11:", when="@2.4:+cuda") # https://github.com/pytorch/pytorch/issues/122169 depends_on("cuda@11:12.3", when="@2.0:2.3+cuda") @@ -289,14 +316,15 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): # https://discuss.pytorch.org/t/compiling-1-10-1-from-source-with-gcc-11-and-cuda-11-5/140971 depends_on("cuda@10.2:11.4", when="@1.10+cuda") depends_on("cuda@9.2:11.4", when="@1.6:1.9+cuda") - depends_on("cuda@9:11.4", when="@:1.5+cuda") # https://github.com/pytorch/pytorch#prerequisites + depends_on("cudnn@8.5:9", when="@2.8:+cudnn") # https://github.com/pytorch/pytorch/issues/119400 - depends_on("cudnn@8.5:9.0", when="@2.3:+cudnn") + depends_on("cudnn@8.5:9.0", when="@2.3:2.7+cudnn") depends_on("cudnn@7:8", when="@1.6:2.2+cudnn") - depends_on("cudnn@7", when="@:1.5+cudnn") - depends_on("magma+cuda", when="+magma+cuda") - depends_on("magma+rocm", when="+magma+rocm") + depends_on("nccl", when="+nccl+cuda") + # https://github.com/pytorch/pytorch/pull/178065 + depends_on("magma@:2.9+cuda", when="+magma+cuda") + depends_on("magma@:2.9+rocm", when="+magma+rocm") depends_on("numactl", when="+numa") depends_on("llvm-openmp@19:", when="+openmp %apple-clang") depends_on("valgrind", when="+valgrind") @@ -326,6 +354,7 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): depends_on("ucc", when="+ucc") depends_on("ucx", when="+ucc") depends_on("mkl", when="+mkldnn") + depends_on("cusparselt", when="+cusparselt") # Test dependencies with default_args(type="test"): @@ -338,10 +367,24 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): depends_on("mkl@2021.1.1:2021.4.0", when="@2.3 platform=windows") depends_on("py-cffi", when="@:1") depends_on("py-future", when="@1.5:1") - depends_on("py-six", when="@1.13:1") + depends_on("py-astunparse", when="@1.13:2.8") conflicts("%gcc@:9.3", when="@2.2:", msg="C++17 support required") + # https://github.com/pytorch/pytorch/issues/172630 (GCC-14.2 ICE for aarch64) + patch( + "https://github.com/pytorch/pytorch/commit/8fd509399e25cb4b265dff663d3f777406001f2e.patch?full_index=1", + sha256="91d0470cc05f5f0f775f32b70f174af74f5607162852ba1bcdd81381cd735f24", + when="@2.9:2.10.0", + ) + + # https://github.com/pytorch/pytorch/issues/160092 + patch( + "https://github.com/pytorch/pytorch/commit/231c72240d80091f099c95e326d3600cba866eee.patch?full_index=1", + sha256="5e56556a5698e6c43d0e7e9e3da6d7d819a4886bcd717e7b8e22ec08414a0b66", + when="@2.8.0", + ) + # https://github.com/pytorch/pytorch/issues/151592 patch("macos_rpath.patch", when="@2.7:") @@ -355,9 +398,9 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): # https://github.com/pytorch/pytorch/issues/146239 patch( - "gloo_cuda.patch", - sha256="f93aa66e2cf9c0febdbcf72f44213a213e570e5f860186e81c92c8d2af0857c0", - when="@2.6:", + "https://github.com/pytorch/pytorch/commit/93da9952a77f59cb29a2d599362ba9c7ba22eaec.patch?full_index=1", + sha256="e5a030aae1603a9b57f9e9995902544da7087502fe60261698780f0cb8e5fb7b", + when="@2.6:2.8", ) # Fixes 'FindBLAS.cmake' error: unknown command check_function_exists @@ -398,16 +441,10 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): ) # Fixes CMake configuration error when XNNPACK is disabled - # https://github.com/pytorch/pytorch/pull/35607 - # https://github.com/pytorch/pytorch/pull/37865 - patch("xnnpack.patch", when="@1.5") # https://github.com/pytorch/pytorch/issues/141083 # https://github.com/google/XNNPACK/commit/5f23827e66cca435fa400b6e221892ac95af0079 patch("xnnpack2.patch", when="@2.6", working_dir="third_party/XNNPACK") - # Fixes build error when ROCm is enabled for pytorch-1.5 release - patch("rocm.patch", when="@1.5+rocm") - # PR 152569 is to set ROCM_INCLUDE_DIRS the include path # of required rocm packages in LoadHIP.cmake. # https://github.com/pytorch/pytorch/pull/152569 @@ -424,13 +461,6 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): when="@2.6:2.7+rocm", ) - # Fixes compilation with Clang 9.0.0 and Apple Clang 11.0.3 - # https://github.com/pytorch/pytorch/pull/37086 - patch( - "https://github.com/pytorch/pytorch/commit/e921cd222a8fbeabf5a3e74e83e0d8dfb01aa8b5.patch?full_index=1", - sha256="0f3ad037a95af9d34b1d085050c1e7771fd00f0b89e5b3a276097b7c9f4fabf8", - when="@:1.5", - ) # Fixes build failure from py-torch version 1.5 to 2.2 with rocm patch( "https://github.com/ROCm/pytorch/commit/bac5378c734e74b5d58b8e82f9dbaa1454cfa5bd.patch?full_index=1", @@ -446,7 +476,6 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): patch("fj-ssl2_1.9.patch", when="@1.9^fujitsu-ssl2") patch("fj-ssl2_1.8.patch", when="@1.8^fujitsu-ssl2") patch("fj-ssl2_1.6-1.7.patch", when="@1.6:1.7^fujitsu-ssl2") - patch("fj-ssl2_1.3-1.5.patch", when="@:1.5^fujitsu-ssl2") # Fix compilation of +distributed~tensorpipe # https://github.com/pytorch/pytorch/issues/68002 @@ -564,7 +593,6 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): working_dir="third_party/fbgemm", ) - @when("@1.5.0:") def patch(self): # https://github.com/pytorch/pytorch/issues/52208 filter_file( @@ -649,6 +677,9 @@ def enable_or_disable(variant, keyword="USE", var=None): # Spack logs have trouble handling colored output env.set("COLORIZE_OUTPUT", "OFF") + # Currently there are no variants/dependencies for Intel GPU support + env.set("USE_XPU", "OFF") + enable_or_disable("test", keyword="BUILD") enable_or_disable("caffe2", keyword="BUILD") @@ -695,6 +726,7 @@ def enable_or_disable(variant, keyword="USE", var=None): env.set("CUDNN_INCLUDE_DIR", self.spec["cudnn"].prefix.include) env.set("CUDNN_LIBRARY", self.spec["cudnn"].libs[0]) + enable_or_disable("cusparselt") enable_or_disable("fbgemm") enable_or_disable("kineto") enable_or_disable("magma") @@ -817,3 +849,9 @@ def install_test(self): def cmake_prefix_paths(self): cmake_prefix_paths = [join_path(python_platlib, "torch", "share", "cmake")] return cmake_prefix_paths + + @property + def libs(self): + return find_libraries( + "libtorch*", root=python_platlib, recursive=True, shared=True + ) + find_libraries("libc10*", root=python_platlib, recursive=True, shared=True) diff --git a/repos/spack_repo/builtin/packages/py_torch/rocm.patch b/repos/spack_repo/builtin/packages/py_torch/rocm.patch deleted file mode 100644 index b50cc7e1598..00000000000 --- a/repos/spack_repo/builtin/packages/py_torch/rocm.patch +++ /dev/null @@ -1,98 +0,0 @@ -diff --git a/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h b/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h -index 9cd678dfb4cc7..4630465115c7c 100644 ---- a/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h -+++ b/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h -@@ -67,6 +67,14 @@ namespace at { namespace cuda { - // - // HIP doesn't have - // cuGetErrorString (maps to non-functional hipGetErrorString___) -+// -+// HIP from ROCm 3.5 on renamed hipOccupancyMaxActiveBlocksPerMultiprocessor -+// to hipModuleOccupancyMaxActiveBlocksPerMultiprocessor. -+#if HIP_VERSION < 305 -+#define HIPOCCUPANCYMAXACTIVEBLOCKSPERMULTIPROCESSOR hipOccupancyMaxActiveBlocksPerMultiprocessor -+#else -+#define HIPOCCUPANCYMAXACTIVEBLOCKSPERMULTIPROCESSOR cuOccupancyMaxActiveBlocksPerMultiprocessor -+#endif - - #define AT_FORALL_NVRTC(_) \ - _(nvrtcVersion) \ -@@ -76,7 +84,7 @@ namespace at { namespace cuda { - _(nvrtcGetPTX) \ - _(cuModuleLoadData) \ - _(cuModuleGetFunction) \ -- _(cuOccupancyMaxActiveBlocksPerMultiprocessor) \ -+ _(HIPOCCUPANCYMAXACTIVEBLOCKSPERMULTIPROCESSOR)\ - _(nvrtcGetErrorString) \ - _(nvrtcGetProgramLogSize) \ - _(nvrtcGetProgramLog) \ -diff --git a/aten/src/ATen/native/cuda/SoftMax.cu b/aten/src/ATen/native/cuda/SoftMax.cu -index da1995123ecfc..f935eb4ef3d0e 100644 ---- a/aten/src/ATen/native/cuda/SoftMax.cu -+++ b/aten/src/ATen/native/cuda/SoftMax.cu -@@ -127,8 +127,8 @@ void SpatialSoftMax_getLaunchSizes( - uint32_t block_threads = block.x * block.y; - smem_size = block.x == 1 ? 0 : block_threads * sizeof(accscalar_t); - int max_active_blocks; --#ifdef __HIP_PLATFORM_HCC__ -- // XXX HIP function signature is not compatible yet. -+#if defined(__HIP_PLATFORM_HCC__) && HIP_VERSION < 305 -+ // HIP function signature is not compatible yet. - uint32_t max_blocks; - cudaOccupancyMaxActiveBlocksPerMultiprocessor(&max_blocks, - k, block_threads, smem_size); -diff --git a/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp b/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp -index 5586e49919727..27315ee475277 100644 ---- a/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp -+++ b/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp -@@ -140,10 +140,10 @@ FusedKernelCUDA::FusedKernelCUDA( - nvrtc().cuModuleGetFunction(&function_, module_, name_.c_str())); - - // Computes max blocks --#ifdef __HIP_PLATFORM_HCC__ -- // XXX HIP function signature is not compatible yet -+#if defined(__HIP_PLATFORM_HCC__) && HIP_VERSION < 305 -+ // HIP function signature is not compatible yet - uint32_t max_blocks; -- AT_CUDA_DRIVER_CHECK(nvrtc().cuOccupancyMaxActiveBlocksPerMultiprocessor( -+ AT_CUDA_DRIVER_CHECK(nvrtc().hipOccupancyMaxActiveBlocksPerMultiprocessor( - &max_blocks, function_, 128, 0)); - maxBlocks_ = max_blocks; - #else -diff --git a/torch/utils/hipify/cuda_to_hip_mappings.py b/torch/utils/hipify/cuda_to_hip_mappings.py -index 7e21363cbe6af..26f269d92ae38 100644 ---- a/torch/utils/hipify/cuda_to_hip_mappings.py -+++ b/torch/utils/hipify/cuda_to_hip_mappings.py -@@ -2890,7 +2890,7 @@ - ( - "cuOccupancyMaxActiveBlocksPerMultiprocessor", - ( -- "hipOccupancyMaxActiveBlocksPerMultiprocessor", -+ "hipModuleOccupancyMaxActiveBlocksPerMultiprocessor", - CONV_OCCUPANCY, - API_DRIVER, - ), -@@ -2898,7 +2898,7 @@ - ( - "cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", - ( -- "hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", -+ "hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", - CONV_OCCUPANCY, - API_DRIVER, - HIP_UNSUPPORTED, -@@ -2906,12 +2906,12 @@ - ), - ( - "cuOccupancyMaxPotentialBlockSize", -- ("hipOccupancyMaxPotentialBlockSize", CONV_OCCUPANCY, API_DRIVER), -+ ("hipModuleOccupancyMaxPotentialBlockSize", CONV_OCCUPANCY, API_DRIVER), - ), - ( - "cuOccupancyMaxPotentialBlockSizeWithFlags", - ( -- "hipOccupancyMaxPotentialBlockSizeWithFlags", -+ "hipModuleOccupancyMaxPotentialBlockSizeWithFlags", - CONV_OCCUPANCY, - API_DRIVER, - HIP_UNSUPPORTED, diff --git a/repos/spack_repo/builtin/packages/py_torch/xnnpack.patch b/repos/spack_repo/builtin/packages/py_torch/xnnpack.patch deleted file mode 100644 index 154033081e7..00000000000 --- a/repos/spack_repo/builtin/packages/py_torch/xnnpack.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt -index 8025a7de3c..0da37079d6 100644 ---- a/caffe2/CMakeLists.txt -+++ b/caffe2/CMakeLists.txt -@@ -46,12 +46,19 @@ if (INTERN_BUILD_ATEN_OPS) - list(APPEND Caffe2_DEPENDENCY_INCLUDE ${ATen_THIRD_PARTY_INCLUDE}) - endif() - -+# {Q/X,etc} NPACK support is enabled by default, if none of these options -+# are selected, turn this flag ON to incidate the support is disabled -+set(NNPACK_AND_FAMILY_DISABLED OFF) -+if(NOT (USE_NNPACK OR USE_QNNPACK OR USE_PYTORCH_QNNPACK OR USE_XNNPACK)) -+ set(NNPACK_AND_FAMILY_DISABLED ON) -+endif() -+ - # ---[ Caffe2 build - # Note: the folders that are being commented out have not been properly - # addressed yet. - - # For pthreadpool_new_if_impl. TODO: Remove when threadpools are unitied. --if (NOT MSVC) -+if (NOT MSVC AND NOT NNPACK_AND_FAMILY_DISABLED) - IF(NOT TARGET fxdiv) - SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "") - SET(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "") -@@ -710,7 +717,7 @@ ELSEIF(USE_CUDA) - ENDIF() - - --if (NOT MSVC) -+if (NOT MSVC AND NOT NNPACK_AND_FAMILY_DISABLED) - TARGET_LINK_LIBRARIES(torch_cpu PRIVATE fxdiv) - endif() - -diff --git a/caffe2/utils/CMakeLists.txt b/caffe2/utils/CMakeLists.txt -index 27aabb1315..3c7845c67d 100644 ---- a/caffe2/utils/CMakeLists.txt -+++ b/caffe2/utils/CMakeLists.txt -@@ -36,7 +36,7 @@ list(APPEND Caffe2_CPU_SRCS - # ---[ threadpool/pthreadpool* is a local modification of the NNPACK - # pthreadpool with a very similar interface. Neither NNPACK, nor this - # thread pool supports Windows. --if (NOT MSVC) -+if (NOT MSVC AND NOT NNPACK_AND_FAMILY_DISABLED) - add_definitions(-DUSE_INTERNAL_THREADPOOL_IMPL) - set(Caffe2_CPU_SRCS ${Caffe2_CPU_SRCS} - utils/threadpool/pthreadpool.cc diff --git a/repos/spack_repo/builtin/packages/py_torch_c_dlpack_ext/package.py b/repos/spack_repo/builtin/packages/py_torch_c_dlpack_ext/package.py new file mode 100644 index 00000000000..35717196a02 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_torch_c_dlpack_ext/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 PyTorchCDlpackExt(PythonPackage): + """torch c dlpack ext""" + + homepage = "https://pypi.org/project/torch-c-dlpack-ext/" + pypi = "torch-c-dlpack-ext/torch_c_dlpack_ext-0.1.5.tar.gz" + + license("Apache-2.0") + + version("0.1.5", sha256="d06f0357d575d22a168cc77acb9020fc4bae30968ceb6718a055dcbe92bacabe") + + depends_on("py-torch", type=("build", "link", "run")) + + with default_args(type="build"): + depends_on("cxx") + depends_on("py-setuptools@61.0:") + depends_on("py-apache-tvm-ffi@0.1.1:") diff --git a/repos/spack_repo/builtin/packages/py_torch_nvidia_apex/package.py b/repos/spack_repo/builtin/packages/py_torch_nvidia_apex/package.py index 1ddd4b419af..ed807e4181d 100644 --- a/repos/spack_repo/builtin/packages/py_torch_nvidia_apex/package.py +++ b/repos/spack_repo/builtin/packages/py_torch_nvidia_apex/package.py @@ -20,17 +20,12 @@ class PyTorchNvidiaApex(PythonPackage, CudaPackage): license("BSD-3-Clause") version("master", branch="master") - version( - "24.04.01", - sha256="065bc5c0146ee579d5db2b38ca3949da4dc799b871961a2c9eb19e18892166ce", - preferred=True, - ) + version("24.04.01", sha256="065bc5c0146ee579d5db2b38ca3949da4dc799b871961a2c9eb19e18892166ce") version("23.08", tag="23.08") version("23.07", tag="23.07") version("23.06", tag="23.06") version("23.05", tag="23.05") version("22.03", tag="22.03") - version("2020-10-19", commit="8a1ed9e8d35dfad26fb973996319965e4224dcdd", deprecated=True) variant("cuda", default=True, description="Build with CUDA") diff --git a/repos/spack_repo/builtin/packages/py_torch_scatter/package.py b/repos/spack_repo/builtin/packages/py_torch_scatter/package.py index 10fc603746a..b07ace3dbda 100644 --- a/repos/spack_repo/builtin/packages/py_torch_scatter/package.py +++ b/repos/spack_repo/builtin/packages/py_torch_scatter/package.py @@ -17,6 +17,7 @@ class PyTorchScatter(PythonPackage): license("MIT") maintainers("adamjstewart") + version("master", branch="master") version("2.1.2", sha256="69b3aa435f2424ac6a1bfb6ff702da6eb73b33ca0db38fb26989c74159258e47") depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/py_torch_spex/package.py b/repos/spack_repo/builtin/packages/py_torch_spex/package.py new file mode 100644 index 00000000000..20668c65177 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_torch_spex/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 PyTorchSpex(PythonPackage): + """Spherical expansions of atomic neighbourhoods""" + + homepage = "https://github.com/lab-cosmo/torch-spex" + pypi = "torch_spex/torch_spex-0.0.0.tar.gz" + + maintainers("RMeli", "luthaf", "HaoZeke") + + # pyproject.toml + license("MIT", checked_by="RMeli") + + version("0.1.0", sha256="82722780bf49638c439b8e7ca98ab31b956941aacef72382a9650ff1f1c5eed0") + + depends_on("py-flit-core@3.4:3", type="build") + + with default_args(type=("build", "run")): + depends_on("py-numpy") + depends_on("py-pyyaml") + depends_on("py-scipy") + depends_on("py-sphericart-torch") diff --git a/repos/spack_repo/builtin/packages/py_torchaudio/package.py b/repos/spack_repo/builtin/packages/py_torchaudio/package.py index 497b3a601ee..f8caea347a6 100644 --- a/repos/spack_repo/builtin/packages/py_torchaudio/package.py +++ b/repos/spack_repo/builtin/packages/py_torchaudio/package.py @@ -19,6 +19,11 @@ class PyTorchaudio(PythonPackage): maintainers("adamjstewart") version("main", branch="main") + version("2.11.0", tag="v2.11.0", commit="34c52a67e8941bbd8e6adaca0eb0b9eabec11d78") + version("2.10.0", tag="v2.10.0", commit="27b7ebdebd2d2e4d34a2f5c05b0fb26efbd1da63") + version("2.9.1", tag="v2.9.1", commit="a224ab24a7f4797f6707051257265e223e12576f") + version("2.9.0", tag="v2.9.0", commit="eaa9e4e4dd413dca1084116581dc84fad403db3b") + version("2.8.0", tag="v2.8.0", commit="6e1c7fe9ff6d82b8665d0a46d859d3357d2ebaaa") version("2.7.1", tag="v2.7.1", commit="95c61b4168fc5133be8dd8c1337d929d066ae6cf") version("2.7.0", tag="v2.7.0", commit="654fee8fd17784271be1637eac1293fd834b4e9a") version("2.6.0", tag="v2.6.0", commit="d8831425203385077a03c1d92cfbbe3bf2106008") @@ -50,36 +55,27 @@ class PyTorchaudio(PythonPackage): version("0.8.1", tag="v0.8.1", commit="e4e171a51714b2b2bd79e1aea199c3f658eddf9a") version("0.8.0", tag="v0.8.0", commit="099d7883c6b7af1d1c3b416191e5f3edf492e104") version("0.7.2", tag="v0.7.2", commit="a853dff25de36cc637b1f02029343790d2dd0199") - version( - "0.7.0", tag="v0.7.0", commit="ac17b64f4daedd45d0495e2512e22eaa6e5b7eeb", deprecated=True - ) - version( - "0.6.0", tag="v0.6.0", commit="f17ae39ff9da0df8f795fef2fcc192f298f81268", deprecated=True - ) - version( - "0.5.1", tag="v0.5.1", commit="71434798460a4ceca9d42004567ef419c62a612e", deprecated=True - ) - version( - "0.5.0", tag="v0.5.0", commit="09494ea545738538f9db2dceeffe10d421060ee5", deprecated=True - ) - version( - "0.4.0", tag="v0.4.0", commit="8afed303af3de41f3586007079c0534543c8f663", deprecated=True - ) depends_on("c", type="build") depends_on("cxx", type="build") with default_args(type=("build", "link", "run")): # Based on PyPI wheel availability - depends_on("python@3.9:3.13", when="@2.6:") + depends_on("python@3.10:", when="@2.10:") + depends_on("python@3.10:3.14", when="@2.9") + depends_on("python@3.9:3.13", when="@2.6:2.8") depends_on("python@3.9:3.12", when="@2.5") depends_on("python@3.8:3.12", when="@2.2:2.4") depends_on("python@3.8:3.11", when="@2.0:2.1") depends_on("python@:3.10", when="@0.12:0") depends_on("python@:3.9", when="@0.7.2:0.11") - depends_on("python@:3.8", when="@:0.7.0") depends_on("py-torch@main", when="@main") + depends_on("py-torch@2.11:", when="@2.11.0") + depends_on("py-torch@2.10:", when="@2.10.0") + depends_on("py-torch@2.9.1", when="@2.9.1") + depends_on("py-torch@2.9.0", when="@2.9.0") + depends_on("py-torch@2.8.0", when="@2.8.0") depends_on("py-torch@2.7.1", when="@2.7.1") depends_on("py-torch@2.7.0", when="@2.7.0") depends_on("py-torch@2.6.0", when="@2.6.0") @@ -111,25 +107,20 @@ class PyTorchaudio(PythonPackage): depends_on("py-torch@1.8.1", when="@0.8.1") depends_on("py-torch@1.8.0", when="@0.8.0") depends_on("py-torch@1.7.1", when="@0.7.2") - depends_on("py-torch@1.7.0", when="@0.7.0") - depends_on("py-torch@1.6.0", when="@0.6.0") - depends_on("py-torch@1.5.1", when="@0.5.1") - depends_on("py-torch@1.5.0", when="@0.5.0") - depends_on("py-torch@1.4.1", when="@0.4.0") # CMakelists.txt depends_on("cmake@3.18:", when="@0.10:", type="build") depends_on("cmake@3.5:", when="@0.8:", type="build") depends_on("ninja", when="@0.8:", type="build") - # prior to 2.1 ffmpeg was vendored - depends_on("ffmpeg@:6", when="@2.1:") - # setup.py depends_on("py-setuptools", type="build") depends_on("py-pybind11", when="@0.12:", type=("build", "link")) depends_on("pkgconfig", type="build") - depends_on("sox") + + # Historical dependencies, vendored before 2.1, optional after 2.8 + depends_on("ffmpeg@4.4:6", when="@2.1:2.8") + depends_on("sox", when="@2.1:2.8") # https://github.com/pytorch/audio/pull/3811 patch( @@ -156,12 +147,13 @@ def patch(self): ) def setup_build_environment(self, env: EnvironmentModifications) -> None: - # tools/setup_helpers/extension.py - env.set("BUILD_SOX", "0") + if self.spec.satisfies("@:2.8"): + # tools/setup_helpers/extension.py + env.set("BUILD_SOX", "0") - if self.spec.satisfies("@2.1:"): + if self.spec.satisfies("@2.1:2.8"): env.set("FFMPEG_ROOT", self.spec["ffmpeg"].prefix) - else: + elif self.spec.satisfies("@:2.0"): # a specific ffmpeg is built but not installed, so just disable env.set("USE_FFMPEG", "0") diff --git a/repos/spack_repo/builtin/packages/py_torchgeo/package.py b/repos/spack_repo/builtin/packages/py_torchgeo/package.py index 0406d7e0dd7..32bc8c3ad05 100644 --- a/repos/spack_repo/builtin/packages/py_torchgeo/package.py +++ b/repos/spack_repo/builtin/packages/py_torchgeo/package.py @@ -15,158 +15,120 @@ class PyTorchgeo(PythonPackage): git = "https://github.com/microsoft/torchgeo.git" license("MIT") - maintainers("adamjstewart", "calebrob6") + maintainers("adamjstewart", "calebrob6", "ashnair1") version("main", branch="main") + version("0.9.0", sha256="93858ccd1cd9cc25b022572dabcd94a024160529a3bd7fc75dc28e995240ca6c") + version("0.8.1", sha256="2de05fd510264569f28a8d92737cac85d34dd3c14e01aec99e6f2edb7d297248") + version("0.8.0", sha256="a367127b8a6b6f94cff979972169271c70ca9d8237d68576c5ec38de34e5cbe7") + version("0.7.2", sha256="0597455c689c61fd1bdffc79357646292aac98681279a1d05536317a0d094b69") + version("0.7.1", sha256="05f645868a6dff083d4d0529662bde1b502e1f33ef260ebc735065e05d84176e") version("0.7.0", sha256="4ba0e96ea826080f393b1bb719a3f8c364637112710b1ac38c56b9590a638e29") version("0.6.2", sha256="82f49f0d18d2c22cc70fc0690641e8dd60e4904a9c50d32c79ebd5020ac10fa7") version("0.6.1", sha256="38c930917ea341d05a7a611ff74c017f29482df7455d50e287ea79dec7d0a14b") - version("0.6.0", sha256="c5b073b3c9ac06cd68e45620bab3a78fb7637fa3563aae4f75f4781ba57aee5a") - version("0.5.2", sha256="b23df51fe53ebe66c8d555484605a5618985f3680b70275f99ce8665e7203560") - version("0.5.1", sha256="5f86a34d18fe36eeb9146b057b21e5356252ef8ab6a9db33feebb120a01feff8") - version("0.5.0", sha256="2bc2f9c4a19a569790cb3396499fdec17496632b0e52b86be390a2cc7a1a7033") - version("0.4.1", sha256="a3692436bf63df8d2f9b76d16eea5ee309dd1bd74e0fde6e64456abfdb2a5b58") - version("0.4.0", sha256="a0812487205aa2db7bc92119d896ae4bf4f1014e6fdc0ce0f75bcb24fada6613") - version("0.3.1", sha256="ba7a716843575d173abab383c6cc2d5fc8faf5834472f16a4abe1b932040ece5") - version("0.3.0", sha256="3d98fd58e6678555592a596bd079ed5a8b4959996ff7718d7caa48d47815b6b0") - version("0.2.1", sha256="218bd5aed7680244688dbf0f1398f5251ad243267eb19a6a7332668ac779a1cc") - version("0.2.0", sha256="968c4bf68c7e487bf495f2f306d8bb0f5824eb67e24b26772a510e753e04ba4c") - version("0.1.1", sha256="6e28132f75e9d8cb3a3a0e8b443aba3cde26c8f3140b9426139ee6e8f8058b26") - version("0.1.0", sha256="44eb3cf10ab2ac63ff95e92fcd3807096bac3dcb9bdfe15a8edac9d440d2f323") variant("datasets", default=False, description="Install optional dataset dependencies") variant("docs", default=False, description="Install documentation dependencies") + variant( + "models", default=False, description="Install optional model dependencies", when="@0.8:" + ) variant("style", default=False, description="Install style checking tools") variant("tests", default=False, description="Install testing tools") - # NOTE: historically, dependencies had upper bounds based on semantic version compatibility. - # However, these were removed to improve the maintainability and flexibility of the recipe. - # Required dependencies with default_args(type="build"): - depends_on("py-setuptools@61:", when="@0.5:") - depends_on("py-setuptools@42:") + depends_on("py-setuptools@77.0.1:", when="@0.7.1:") + depends_on("py-setuptools@61:") with default_args(type=("build", "run")): + depends_on("python@3.12:", when="@0.9:") depends_on("python@3.11:", when="@0.7:") - depends_on("python@3.10:", when="@0.6:") - depends_on("python@3.9:", when="@0.5:") + depends_on("python@3.10:") depends_on("py-einops@0.3:") - depends_on("py-fiona@1.8.22:", when="@0.7:") - depends_on("py-fiona@1.8.21:", when="@0.6:") - depends_on("py-fiona@1.8.19:", when="@0.5:") - depends_on("py-fiona@1.8:", when="@0.3:") - depends_on("py-fiona@1.5:") + depends_on("py-geopandas@0.13:", when="@0.9:") + depends_on("py-geopandas@0.12.1:", when="@0.8:") + depends_on("py-jsonargparse@4.35:+signatures", when="@0.9:") + depends_on("py-jsonargparse@4.25:+signatures") + depends_on("py-kornia@0.8.2:", when="@0.8:") depends_on("py-kornia@0.7.4:", when="@0.7:") - depends_on("py-kornia@0.7.3:", when="@0.6:") - depends_on("py-kornia@0.6.9:", when="@0.5:") - depends_on("py-kornia@0.6.5:", when="@0.4:") - depends_on("py-kornia@0.6.4:", when="@0.3:") - depends_on("py-kornia@0.5.11:", when="@0.2:") - depends_on("py-kornia@0.5.4:", when="@0.1:") - depends_on("py-lightly@1.4.5:", when="@0.6:") - depends_on("py-lightly@1.4.4:", when="@0.5:") - depends_on("py-lightning@2:", when="@0.5:") - depends_on("py-lightning@1.8:", when="@0.4.1:") + depends_on("py-kornia@0.7.3:") + depends_on("py-lightly@1.4.5:") + depends_on("py-lightning@2:") + depends_on("py-matplotlib@3.7.3:", when="@0.9:") depends_on("py-matplotlib@3.6:", when="@0.7:") - depends_on("py-matplotlib@3.5:", when="@0.6:") - depends_on("py-matplotlib@3.3.3:", when="@0.5:") - depends_on("py-matplotlib@3.3:") + depends_on("py-matplotlib@3.5:") + depends_on("py-numpy@1.26:", when="@0.9:") + depends_on("py-numpy@1.24:", when="@0.8:") depends_on("py-numpy@1.23.2:", when="@0.7:") - depends_on("py-numpy@1.21.2:", when="@0.6:") - depends_on("py-numpy@1.19.3:", when="@0.5:") - depends_on("py-numpy@1.17.2:") + depends_on("py-numpy@1.21.2:") + depends_on("py-pandas@2.1.1:", when="@0.9:") depends_on("py-pandas@1.5:", when="@0.7:") - depends_on("py-pandas@1.3.3:", when="@0.6:") - depends_on("py-pandas@1.1.3:", when="@0.5:") + depends_on("py-pandas@1.3.3:") + depends_on("pil@10:", when="@0.9:") depends_on("pil@9.2:", when="@0.7:") - depends_on("pil@8.4:", when="@0.6:") - depends_on("pil@8:", when="@0.5:") - depends_on("pil@6.2:") + depends_on("pil@8.4:") + depends_on("py-pyproj@3.6.1:", when="@0.9:") depends_on("py-pyproj@3.4:", when="@0.7:") - depends_on("py-pyproj@3.3:", when="@0.6:") - depends_on("py-pyproj@3:", when="@0.5:") - depends_on("py-pyproj@2.2:") - depends_on("py-rasterio@1.3.3:", when="@0.7:") - depends_on("py-rasterio@1.3:", when="@0.6:") - depends_on("py-rasterio@1.2:", when="@0.5:") - depends_on("py-rasterio@1.0.20:", when="@0.3:") - depends_on("py-rasterio@1.0.16:") - depends_on("py-rtree@1.0.1:", when="@0.7:") - depends_on("py-rtree@1:", when="@0.3:") - depends_on("py-rtree@0.9.4:", when="@0.2.1:") - depends_on("py-rtree@0.5:") + depends_on("py-pyproj@3.3:") + depends_on("py-rasterio@1.4.3:", when="@0.8:") + # https://github.com/torchgeo/torchgeo/pull/2969 + depends_on("py-rasterio@1.3.11:", when="@0.7:") + depends_on("py-rasterio@1.3:") depends_on("py-segmentation-models-pytorch@0.5:", when="@0.7.1:") # https://github.com/microsoft/torchgeo/pull/2740 depends_on("py-segmentation-models-pytorch@0.3.3:0.4", when="@0.7.0") - depends_on("py-segmentation-models-pytorch@0.2:0.4") + depends_on("py-segmentation-models-pytorch@0.2:0.4", when="@0.6") + depends_on("py-shapely@2.0.2:", when="@0.9:") + depends_on("py-shapely@2:", when="@0.8:") depends_on("py-shapely@1.8.5:", when="@0.7:") - depends_on("py-shapely@1.8:", when="@0.6:") - depends_on("py-shapely@1.7.1:", when="@0.5:") - depends_on("py-shapely@1.3:") + depends_on("py-shapely@1.8:") + depends_on("py-timm@1.0.3:", when="@0.8:") depends_on("py-timm@0.9.2:", when="@0.7:") depends_on("py-timm@0.4.12:") + depends_on("py-torch@2.2:", when="@0.9:") depends_on("py-torch@2:", when="@0.7:") - depends_on("py-torch@1.13:", when="@0.6:") - depends_on("py-torch@1.12:", when="@0.4:") - depends_on("py-torch@1.9:", when="@0.2:") - depends_on("py-torch@1.7:") + depends_on("py-torch@1.13:") depends_on("py-torchmetrics@1.2:", when="@0.7:") - depends_on("py-torchmetrics@0.10:", when="@0.4:") - depends_on("py-torchmetrics@0.7:") + depends_on("py-torchmetrics@0.10:") + depends_on("py-torchvision@0.17:", when="@0.9:") depends_on("py-torchvision@0.15.1:", when="@0.7:") - depends_on("py-torchvision@0.14:", when="@0.6:") - depends_on("py-torchvision@0.13:", when="@0.4:") - depends_on("py-torchvision@0.10:", when="@0.2:") - depends_on("py-torchvision@0.3:") + depends_on("py-torchvision@0.14:") + depends_on("py-typing-extensions@4.8:", when="@0.9:") depends_on("py-typing-extensions@4.5:", when="@0.7:") - # Only part of lightning[pytorch-extra] we actually require. - depends_on("py-jsonargparse@4.26.1:+signatures", when="@0.5:") - # Historical dependencies - depends_on("py-omegaconf@2.1:", when="@:0.4.0") - depends_on("py-packaging@17:", when="@0.3") - depends_on("py-pytorch-lightning@1.5.1:", when="@0.3.1:0.4.0") - # https://github.com/microsoft/torchgeo/pull/697 - depends_on("py-pytorch-lightning@1.5.1:1.8", when="@0.3.0") - depends_on("py-pytorch-lightning@1.3:1.8", when="@:0.2") - depends_on("py-scikit-learn@0.21:", when="@0.3:0.4") - depends_on("py-scikit-learn@0.18:", when="@:0.2") + depends_on("py-fiona@1.8.22:", when="@0.7") + depends_on("py-fiona@1.8.21:", when="@0.6") # Optional dependencies with when("+datasets"), default_args(type="run"): + depends_on("py-h5py@3.10:", when="@0.9:") depends_on("py-h5py@3.8:", when="@0.7:") - depends_on("py-h5py@3.6:", when="@0.6:") - depends_on("py-h5py@3:", when="@0.5:") - depends_on("py-h5py@2.6:") - depends_on("py-laspy@2:", when="@0.2:") + depends_on("py-h5py@3.6:") + depends_on("py-laspy@2.5.3:", when="@0.7.2:") + depends_on("py-laspy@2:") + depends_on("py-netcdf4@1.6.5:", when="@0.9:") depends_on("py-netcdf4@1.6.1:", when="@0.7:") - depends_on("opencv@4.5.5:", when="@0.7:") - depends_on("opencv@4.5.4:", when="@0.6:") - depends_on("opencv@4.4.0.46:", when="@0.5:") - depends_on("opencv@3.4.2.17:") - depends_on("py-pandas@2:+parquet", when="@0.7:") - depends_on("py-pycocotools@2.0.7:", when="@0.6:") - depends_on("py-pycocotools@2.0.5:", when="@0.5:") - depends_on("py-pycocotools@2:") + depends_on("py-pandas+parquet", when="@0.7:") + depends_on("py-pycocotools@2.0.8:", when="@0.9:") + depends_on("py-pycocotools@2.0.7:") + depends_on("py-requests@2.25:", when="@0.9:") + depends_on("py-requests@2.23:", when="@0.8:") + depends_on("py-rioxarray@0.14.1:", when="@0.8:") + depends_on("py-scikit-image@0.22:", when="@0.9:") depends_on("py-scikit-image@0.20:", when="@0.7:") - depends_on("py-scikit-image@0.19:", when="@0.6:") - depends_on("py-scikit-image@0.18:", when="@0.4:") + depends_on("py-scikit-image@0.19:") + depends_on("py-scipy@1.11.2:", when="@0.9:") depends_on("py-scipy@1.9.2:", when="@0.7:") - depends_on("py-scipy@1.7.2:", when="@0.6:") - depends_on("py-scipy@1.6.2:", when="@0.4:") - depends_on("py-scipy@1.2:", when="@0.3:") - depends_on("py-scipy@0.9:") + depends_on("py-scipy@1.7.2:") depends_on("py-webdataset@0.2.4:", when="@0.7:") + depends_on("py-xarray@0.17:", when="@0.8:") depends_on("py-xarray@0.12.3:", when="@0.7:") # Required to download SpaceNet datasets. - depends_on("awscli-v2", when="@0.6:") + depends_on("awscli-v2") # Required to download Source Cooperative datasets. - depends_on("azcopy", when="@0.6:") - # Required to download Google Drive datasets. - depends_on("py-gdown", when="^py-torchvision@0.17.1:") + depends_on("azcopy") # bz2 required to extract .tar.bz2 files, zlib required to extract .tar.gz files. depends_on("python+bz2+zlib") # JPEG, JPEG2000, TIFF, compressed PNG support required for file I/O in several datasets. @@ -174,69 +136,63 @@ class PyTorchgeo(PythonPackage): depends_on("py-pillow-simd+jpeg+jpeg2000+tiff+zlib", when="^[virtuals=pil] py-pillow-simd") # GDAL and libtiff are both dependencies of rasterio. # Sentinel 2 dataset requires OpenJPEG to read .jp2 files. - depends_on("gdal+openjpeg", when="@0.3.1:") + depends_on("gdal+openjpeg") # JPEG required for GDAL to read JPEG files # LIBDEFLATE, ZLIB, and ZSTD required for compressed file I/O. depends_on("libtiff+jpeg+libdeflate+zlib+zstd") - # LandCover.ai dataset requires ability to read .tif and write .jpg and .png files. - # Doing this from Python requires both imgcodecs and Python bindings. - depends_on("opencv+imgcodecs+jpeg+png+python3+tiff") # Historical dependencies - depends_on("open3d@0.11.2:+python", when="@0.2:0.3") - # https://github.com/microsoft/torchgeo/pull/1537 - depends_on("py-pandas@0.23.2:2.0", when="@0.3:0.4") - depends_on("py-pandas@0.19.1:2.0", when="@0.2") - depends_on("py-pyvista@0.34.2:", when="@0.5:0.6") - depends_on("py-pyvista@0.20:", when="@0.4") - depends_on("py-radiant-mlhub@0.3:", when="@0.4.1:0.5") - depends_on("py-radiant-mlhub@0.2.1:0.4", when="@:0.4.0") - depends_on("py-rarfile@4:", when="@0.5") - depends_on("py-rarfile@3:", when="@:0.4") - depends_on("py-zipfile-deflate64@0.2:", when="@0.2.1:0.5") + depends_on("opencv@4.5.5.64:", when="@0.7:0.8.0") + depends_on("opencv@4.5.4:", when="@0.6") + depends_on("opencv+imgcodecs+jpeg+png+python3+tiff", when="@:0.8.0") + # Required to download Google Drive datasets. + depends_on("py-gdown", when="@:0.8 ^py-torchvision@0.17.1:") + depends_on("py-pyvista@0.34.2:", when="@0.6") + depends_on("py-rtree@1.0.1:", when="@0.7") + depends_on("py-rtree@1:", when="@0.6") with when("+docs"), default_args(type="run"): depends_on("py-ipywidgets@7:") + depends_on("py-myst-parser@0.18:", when="@0.8.1:") depends_on("py-nbsphinx@0.8.5:") - depends_on("py-pytorch-sphinx-theme") - depends_on("py-sphinx@4:5") + depends_on("py-pydata-sphinx-theme@0.14:", when="@0.8.1:") + depends_on("py-pytorch-sphinx-theme", when="@:0.8.0") + depends_on("py-sphinx@5.3:", when="@0.8.1:") + depends_on("py-sphinx@4:5", when="@:0.8.0") + depends_on("pandoc") + + with when("+models"), default_args(type="run"): + depends_on("py-microsoft-aurora@1.6:") with when("+style"), default_args(type="run"): - depends_on("prettier@3:", when="@0.6:") + depends_on("prettier@3:") + depends_on("py-mypy@1.16:", when="@0.8.1:") depends_on("py-mypy@0.900:") + depends_on("py-pandas-stubs@2.1.1:", when="@0.9:") + depends_on("py-pandas-stubs@1.5:", when="@0.8.1:") depends_on("py-ruff@0.9:", when="@0.7:") - depends_on("py-ruff@0.2:", when="@0.6:") - - # Historical dependencies - depends_on("py-black@21.8:+jupyter", when="@0.3:0.5") - depends_on("py-black@21:", when="@:0.2") - depends_on("py-flake8@3.8:", when="@:0.5") - depends_on("py-isort@5.8:+colors", when="@:0.5") - depends_on("py-pydocstyle@6.1:+toml", when="@:0.5") - depends_on("py-pyupgrade@2.8:", when="@0.5") - depends_on("py-pyupgrade@1.24:", when="@0.3:0.4") + depends_on("py-ruff@0.2:") + depends_on("py-types-requests@2.25:", when="@0.9:") + depends_on("py-types-requests@2.23:", when="@0.8.1:") + depends_on("py-types-shapely@2.0.2:", when="@0.9:") + depends_on("py-types-shapely@2:", when="@0.8.1:") with when("+tests"), default_args(type="run"): - depends_on("py-nbmake@1.3.3:", when="@0.4.1:") - depends_on("py-nbmake@0.1:", when="@0.3.1:") - depends_on("py-nbmake@0.1:1.1", when="@:0.3.0") - depends_on("py-pytest@7.3:", when="@0.6:") - depends_on("py-pytest@6.2:", when="@0.5:") - depends_on("py-pytest@6.1.2:") - depends_on("py-pytest-cov@4:", when="@0.6:") - depends_on("py-pytest-cov@2.4:") - - # Historical dependencies - depends_on("py-omegaconf@2.1:", when="@0.4.1") - depends_on("py-tensorboard@2.9.1:", when="@0.4.1") - - # https://github.com/microsoft/torchgeo/pull/1123 - conflicts("py-kornia@0.6.10:", when="@:0.4.0") + depends_on("py-nbmake@1.3.3:") + depends_on("py-packaging@21:", when="@0.9:") + depends_on("py-packaging@20.9:", when="@0.7.2:") + depends_on("py-pytest@7.3.2:", when="@0.9:") + depends_on("py-pytest@7.3:") + depends_on("py-pytest-cov@4:") + depends_on("py-pytest-socket@0.3.4:", when="@0.9:") + + # https://github.com/torchgeo/torchgeo/pull/3052 + conflicts("py-lightning@2.5.5:2.5") # https://github.com/microsoft/torchgeo/pull/2484 conflicts("py-lightning@=2.5.0") # https://github.com/Lightning-AI/pytorch-lightning/issues/19977 conflicts("py-lightning@2.3") - # https://github.com/microsoft/torchgeo/pull/2151 - conflicts("py-numpy@2:", when="@:0.5") + # https://github.com/torchgeo/torchgeo/pull/3311 + conflicts("py-pandas@3:", when="@:0.8.0") # https://github.com/rasterio/rasterio/issues/3196 conflicts("py-rasterio@1.4.0:1.4.2") diff --git a/repos/spack_repo/builtin/packages/py_torchmetrics/package.py b/repos/spack_repo/builtin/packages/py_torchmetrics/package.py index 9e1f2ead4d5..073449a777a 100644 --- a/repos/spack_repo/builtin/packages/py_torchmetrics/package.py +++ b/repos/spack_repo/builtin/packages/py_torchmetrics/package.py @@ -16,6 +16,12 @@ class PyTorchmetrics(PythonPackage): license("Apache-2.0") maintainers("adamjstewart") + version("1.9.0", sha256="a488609948600df52d3db4fcdab02e62aab2a85ef34da67037dc3e65b8512faa") + version("1.8.2", sha256="cf64a901036bf107f17a524009eea7781c9c5315d130713aeca5747a686fe7a5") + version("1.8.1", sha256="04ca021105871637c5d34d0a286b3ab665a1e3d2b395e561f14188a96e862fdb") + version("1.8.0", sha256="8b4d011963a602109fb8255018c2386391e8c4c7f48a09669fbf7bb7889fda8c") + version("1.7.4", sha256="506a1a5c7c304cd77ba323ca4b009e46b814fd2be9dcf0f4ccc2e5c0f5b4b0c1") + version("1.7.3", sha256="08450a19cdb67ba1608aac0b213e5dc73033e11b60ad4719696ebcede591621e") version("1.7.2", sha256="ba401cd01aeaa268e809c0e4f42ef8f95669bf9b485e1d93d54dc765e012338a") version("1.7.1", sha256="0ac1a0e90d2375866ceb5d3868720c6df7d7d0c5729b7ad36e92c897c6af70c2") version("1.7.0", sha256="7a26d5cb73a6ae51ab5cb514aa4dc0543af7287a507719986a06e15df12ea68b") @@ -31,11 +37,6 @@ class PyTorchmetrics(PythonPackage): version("1.4.0", sha256="0b1e5acdcc9beb05bfe369d3d56cfa5b143f060ebfd6079d19ccc59ba46465b3") version("1.3.2", sha256="0a67694a4c4265eeb54cda741eaf5cb1f3a71da74b7e7e6215ad156c9f2379f6") version("1.3.1", sha256="8d371f7597a1a5eb02d5f2ed59642d6fef09093926997ce91e18b1147cc8defa") - version( - "1.3.0", - sha256="e8ac3adcc61e7a847d0504b0a0e0a3b7f57796178b239c6fafb5d20c0c9460ac", - deprecated=True, - ) # Yanked version("1.2.1", sha256="217387738f84939c39b534b20d4983e737cc448d27aaa5340e0327948d97ca3e") version("1.2.0", sha256="7eb28340bde45e13187a9ad54a4a7010a50417815d8181a5df6131f116ffe1b7") version("1.1.1", sha256="65ea34205c0506eecfd06b98f63f4d2a2c5c0e17367cf324e1747adc854c80a5") @@ -60,13 +61,16 @@ class PyTorchmetrics(PythonPackage): version("0.3.1", sha256="78f4057db53f7c219fdf9ec9eed151adad18dd43488a44e5c780806d218e3f1d") version("0.2.0", sha256="481a28759acd2d77cc088acba6bc7dc4a356c7cb767da2e1495e91e612e2d548") + variant("detection", default=False, description="object detection support", when="@0.6:") variant("image", default=False, description="image support", when="@0.11.2:") - # setup.py - depends_on("py-setuptools", type="build") + with default_args(type="build"): + depends_on("py-setuptools") + # https://github.com/Lightning-AI/torchmetrics/pull/3324 + depends_on("py-setuptools@:81", when="@:1.8") - # requirements/base.txt (upper bound is removed during processing) with default_args(type=("build", "run")): + # requirements/base.txt (upper bound is removed during processing) depends_on("py-numpy@1.20.1:", when="@1:") depends_on("py-numpy@1.17.2:", when="@0.4:") depends_on("py-numpy", when="@0.3:") @@ -76,9 +80,17 @@ class PyTorchmetrics(PythonPackage): depends_on("py-torch@1.10:", when="@1.3:") depends_on("py-torch@1.8.1:", when="@0.11:") depends_on("py-torch@1.3.1:") + depends_on("py-lightning-utilities@0.15.3:", when="@1.9:") depends_on("py-lightning-utilities@0.8:", when="@1.1:") depends_on("py-lightning-utilities@0.7:", when="@1:") + # requirements/detection.txt (upper bound is removed during processing) + with when("+detection"): + depends_on("py-torchvision@0.15.1:", when="@1.6:") + depends_on("py-torchvision@0.8:") + depends_on("py-pycocotools@2.0.1:") + + # requirements/image.txt (upper bound is removed during processing) with when("+image"): depends_on("py-scipy@1.0.1:") depends_on("py-torchvision@0.15.1:", when="@1.6:") diff --git a/repos/spack_repo/builtin/packages/py_torchtext/package.py b/repos/spack_repo/builtin/packages/py_torchtext/package.py index 2a73c924726..015d3c97275 100644 --- a/repos/spack_repo/builtin/packages/py_torchtext/package.py +++ b/repos/spack_repo/builtin/packages/py_torchtext/package.py @@ -40,9 +40,6 @@ class PyTorchtext(PythonPackage): version("0.10.0", tag="v0.10.0", commit="4da1de36247aa06622088e78508e0e38a4392e38") version("0.9.2", tag="v0.9.2", commit="22e5ee7548a85190eee78e8ed6c8911ec2c53035") version("0.8.1", tag="v0.8.1", commit="0f911ec35ab020983efbf36b8c14415651e98618") - with default_args(deprecated=True): - version("0.6.0", tag="0.6.0", commit="3a54c7f52584f201c17ca7489b52b812152612dc") - version("0.5.0", tag="0.5.0", commit="0169cde2f1d446ae886ef0be07e9a673585ed256") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -53,7 +50,6 @@ class PyTorchtext(PythonPackage): depends_on("python@3.8:3.11", when="@0.15:0.17.1") depends_on("python@:3.10", when="@0.13:0.14") depends_on("python@:3.9", when="@0.8.1:0.12") - depends_on("python@:3.8", when="@:0.8.0") # https://github.com/pytorch/text#installation depends_on("py-torch@main", when="@main") @@ -77,8 +73,6 @@ class PyTorchtext(PythonPackage): depends_on("py-torch@1.9.0", when="@0.10.0") depends_on("py-torch@1.8.2", when="@0.9.2") depends_on("py-torch@1.7.1", when="@0.8.1") - depends_on("py-torch@1.5.0", when="@0.6.0") - depends_on("py-torch@1.4.1", when="@0.5.0") # CMakelists.txt depends_on("cmake@3.18:", when="@0.13:", type="build") @@ -92,9 +86,7 @@ class PyTorchtext(PythonPackage): depends_on("py-torchdata@0.7.0", when="@0.16.0", type=("build", "run")) depends_on("py-torchdata@0.6.1", when="@0.15.2", type=("build", "run")) depends_on("py-torchdata@0.6.0", when="@0.15.1", type=("build", "run")) - depends_on("py-pybind11", when="@0.8:", type=("build", "link")) - depends_on("py-six", when="@:0.6", type=("build", "run")) - depends_on("py-sentencepiece", when="@:0.7", type=("build", "run")) + depends_on("py-pybind11", type=("build", "link")) def patch(self): # Add missing rpaths, which requires patching due to hardcoded cmake_args diff --git a/repos/spack_repo/builtin/packages/py_torchtoolbox/package.py b/repos/spack_repo/builtin/packages/py_torchtoolbox/package.py new file mode 100644 index 00000000000..41e58c3584f --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_torchtoolbox/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 PyTorchtoolbox(PythonPackage): + """This project aims to provide the most frequently used tools to help you + write more concise and readable PyTorch code.""" + + homepage = "https://github.com/PistonY/torch-toolbox" + pypi = "torchtoolbox/torchtoolbox-0.1.8.2.tar.gz" + + license("BSD-3-Clause", checked_by="alex391") + + version("0.1.8.2", sha256="31f92dd93f3115a8e336d9e3db5945bafa9dbb1323f3d7e47bb7fff968c87203") + + depends_on("py-setuptools", type="build") + + depends_on("py-numpy", type=("build", "run")) + depends_on("py-tqdm", type=("build", "run")) + depends_on("py-pyarrow", type=("build", "run")) + depends_on("py-six", type=("build", "run")) + depends_on("py-lmdb", type=("build", "run")) + depends_on("py-scikit-learn", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + depends_on("opencv +python3", type=("build", "run")) + depends_on("py-pyyaml", type=("build", "run")) + depends_on("py-tensorboard", type=("build", "run")) + depends_on("py-prettytable", type=("build", "run")) + depends_on("py-transformers", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_torchvision/package.py b/repos/spack_repo/builtin/packages/py_torchvision/package.py index e688ee0e92c..9add87af941 100644 --- a/repos/spack_repo/builtin/packages/py_torchvision/package.py +++ b/repos/spack_repo/builtin/packages/py_torchvision/package.py @@ -20,6 +20,12 @@ class PyTorchvision(PythonPackage): license("BSD-3-Clause") version("main", branch="main") + version("0.27.0", sha256="04c588d80e63903e1e4444db8a1c32dc56e4080ed48782555e1d00752d6edb17") + version("0.26.0", sha256="fb95b6b78b3801c4d4d6332f7a5a0b6c624588e1b39e0d6fa145227b0c749403") + version("0.25.0", sha256="a7ac1b3ab489d71f6e27edfad1e27616e4b8a9b1517e60fce4a950600d3510e8") + version("0.24.1", sha256="071da2078600bfec4886efab77358c9329abfedcf1488b05879b556cb9b84ba7") + version("0.24.0", sha256="f799cdd1d67a3edbcdc6af8fb416fe1b019b512fb426c0314302cd81518a0095") + version("0.23.0", sha256="db5a91569e5eb4a3b02e9eaad6080335f5ae3824890a697f5618541999f04027") version("0.22.1", sha256="fa1b0a58e13c08329bcff8d52607b4e25944fd074c01dee1b501c8158fadcdec") version("0.22.0", sha256="83ed8855cdfb138aba6f116f8fd8da8b83463170dad67a70f60327915ed12014") version("0.21.0", sha256="0a4a967bbb7f9810f792cd0289a07fb98c8fb5d1303fae8b63e3a6b05d720058") @@ -52,21 +58,14 @@ class PyTorchvision(PythonPackage): version("0.9.1", sha256="79964773729880e0eee0e6af13f336041121d4cc8491a3e2c0e5f184cac8a718") version("0.9.0", sha256="9351ed92aded632f8c7f59dfadac13c191a834babe682f5785ea47e6fcf6b472") version("0.8.2", sha256="9a866c3c8feb23b3221ce261e6153fc65a98ce9ceaa71ccad017016945c178bf") - with default_args(deprecated=True): - version("0.8.1", sha256="c46734c679c99f93e5c06654f4295a05a6afe6c00a35ebd26a2cce507ae1ccbd") - version("0.8.0", sha256="b5f040faffbfc7bac8d4687d8665bd1196937334589b3fb5fcf15bb69ca25391") - version("0.7.0", sha256="fa0a6f44a50451115d1499b3f2aa597e0092a07afce1068750260fa7dd2c85cb") - version("0.6.1", sha256="8173680a976c833640ecbd0d7e6f0a11047bf8833433e2147180efc905e48656") - version("0.6.0", sha256="02de11b3abe6882de4032ce86dab9c7794cbc84369b44d04e667486580f0f1f7") - version("0.5.0", sha256="eb9afc93df3d174d975ee0914057a9522f5272310b4d56c150b955c287a4d74d") desc = "Enable support for native encoding/decoding of {} formats in torchvision.io" variant("png", default=True, description=desc.format("PNG")) variant("jpeg", default=True, description=desc.format("JPEG")) variant("webp", default=False, description=desc.format("WEBP"), when="@0.20:") variant("nvjpeg", default=False, description=desc.format("NVJPEG")) - variant("video_codec", default=False, description=desc.format("video_codec")) - variant("ffmpeg", default=False, description=desc.format("FFMPEG")) + variant("video_codec", default=False, description=desc.format("video_codec"), when="@:0.25") + variant("ffmpeg", default=False, description=desc.format("FFMPEG"), when="@:0.25") # torchvision does not yet support disabling giflib: # https://github.com/pytorch/vision/pull/8406#discussion_r1590926939 @@ -77,15 +76,21 @@ class PyTorchvision(PythonPackage): with default_args(type=("build", "link", "run")): # Based on PyPI wheel availability - depends_on("python@3.9:3.13", when="@0.21:") + depends_on("python@3.10:3.14", when="@0.24:") + depends_on("python@3.9:3.13", when="@0.21:0.23") depends_on("python@3.8:3.12", when="@0.17:0.20") depends_on("python@3.8:3.11", when="@0.15:0.16") depends_on("python@:3.10", when="@0.12:0.14") depends_on("python@:3.9", when="@0.8.2:0.11") - depends_on("python@:3.8", when="@0.5:0.8.1") # https://github.com/pytorch/vision#installation depends_on("py-torch@main", when="@main") + depends_on("py-torch@2.12.0", when="@0.27.0") + depends_on("py-torch@2.11.0", when="@0.26.0") + depends_on("py-torch@2.10.0", when="@0.25.0") + depends_on("py-torch@2.9.1", when="@0.24.1") + depends_on("py-torch@2.9.0", when="@0.24.0") + depends_on("py-torch@2.8.0", when="@0.23.0") depends_on("py-torch@2.7.1", when="@0.22.1") depends_on("py-torch@2.7.0", when="@0.22.0") depends_on("py-torch@2.6.0", when="@0.21.0") @@ -118,12 +123,6 @@ class PyTorchvision(PythonPackage): depends_on("py-torch@1.8.1", when="@0.9.1") depends_on("py-torch@1.8.0", when="@0.9.0") depends_on("py-torch@1.7.1", when="@0.8.2") - depends_on("py-torch@1.7.0", when="@0.8.1") - depends_on("py-torch@1.7.0", when="@0.8.0") - depends_on("py-torch@1.6.0", when="@0.7.0") - depends_on("py-torch@1.5.1", when="@0.6.1") - depends_on("py-torch@1.5.0", when="@0.6.0") - depends_on("py-torch@1.4.1", when="@0.5.0") depends_on("ninja", type="build") @@ -154,6 +153,8 @@ class PyTorchvision(PythonPackage): depends_on("py-six", when="@:0.5", type=("build", "run")) depends_on("py-typing-extensions", when="@0.12:0.14", type=("build", "run")) + # https://github.com/pytorch/vision/issues/9307 + conflicts("^python@3.14.1") # https://github.com/pytorch/vision/pull/5898 conflicts("^pil@10:", when="@:0.12") # https://github.com/pytorch/vision/issues/4146 diff --git a/repos/spack_repo/builtin/packages/py_tornado/package.py b/repos/spack_repo/builtin/packages/py_tornado/package.py index 39d8a201ec8..7c2cedf0223 100644 --- a/repos/spack_repo/builtin/packages/py_tornado/package.py +++ b/repos/spack_repo/builtin/packages/py_tornado/package.py @@ -16,6 +16,8 @@ class PyTornado(PythonPackage): license("Apache-2.0") + version("6.5.5", sha256="192b8f3ea91bd7f1f50c06955416ed76c6b72f96779b962f07f911b91e8d30e9") + version("6.5.2", sha256="ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0") version("6.3.3", sha256="e7d8db41c0181c80d76c982aacc442c0783a2c54d6400fe028954201a2e032fe") version("6.2", sha256="9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13") version("6.1", sha256="33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791") @@ -25,5 +27,6 @@ class PyTornado(PythonPackage): depends_on("c", type="build") # generated + depends_on("python@3.9:", when="@6.5:", type=("build", "run")) depends_on("python@3.8:", when="@6.3:", type=("build", "run")) depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_tqdm/package.py b/repos/spack_repo/builtin/packages/py_tqdm/package.py index 74075d88877..0c277954236 100644 --- a/repos/spack_repo/builtin/packages/py_tqdm/package.py +++ b/repos/spack_repo/builtin/packages/py_tqdm/package.py @@ -13,6 +13,7 @@ class PyTqdm(PythonPackage): homepage = "https://github.com/tqdm/tqdm" pypi = "tqdm/tqdm-4.45.0.tar.gz" + version("4.67.3", sha256="7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb") version("4.67.1", sha256="f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2") version("4.67.0", sha256="fe5a6f95e6fe0b9755e9469b77b9c3cf850048224ecaa8293d7d2d31f97d869a") version("4.66.6", sha256="4bdd694238bef1485ce839d67967ab50af8f9272aab687c0d7702a01da0be090") diff --git a/repos/spack_repo/builtin/packages/py_trafilatura/package.py b/repos/spack_repo/builtin/packages/py_trafilatura/package.py new file mode 100644 index 00000000000..109c840968b --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_trafilatura/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 PyTrafilatura(PythonPackage): + """Python & Command-line tool to gather text and metadata on the Web: + Crawling, scraping, extraction, output as CSV, JSON, HTML, MD, TXT, XML.""" + + homepage = "https://trafilatura.readthedocs.io" + pypi = "trafilatura/trafilatura-1.11.0.tar.gz" + + license("Apache-2.0") + + version("1.11.0", sha256="9334ca101c40b2904af5afcee790f0374fabca3ac388811720be65cc768787a2") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@61.0:", type="build") + + depends_on("py-certifi", type=("build", "run")) + depends_on("py-charset-normalizer@3.2.0:", type=("build", "run")) + depends_on("py-courlan@1.1.0:", type=("build", "run")) + depends_on("py-htmldate@1.8.1:", type=("build", "run")) + depends_on("py-justext@3.0.1:", type=("build", "run")) + depends_on("py-urllib3@1.26:2", type=("build", "run")) + depends_on("py-lxml@4.9.2", when="platform=darwin ^python@3.8", type=("build", "run")) + depends_on("py-lxml@5.3.0:", when="platform=linux", type=("build", "run")) + depends_on("py-lxml@5.3.0:", when="^python@3.9:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_trainax/package.py b/repos/spack_repo/builtin/packages/py_trainax/package.py new file mode 100644 index 00000000000..f1ff1fbebe5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_trainax/package.py @@ -0,0 +1,41 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.python import PythonPackage + +from spack.package import * + + +class PyTrainax(PythonPackage, CudaPackage): + """Convenience abstractions using optax to train neural networks to autoregressively + emulate time-dependent problems taking care of trajectory subsampling and offering a wide + range of training methodologies (regarding unrolling length and including + differentiable physics). + """ + + homepage = "https://fkoehler.site/trainax/" + pypi = "trainax/trainax-0.0.2.tar.gz" + + maintainers("abhishek1297") + license("MIT", checked_by="abhishek1297") + + version("0.0.2", sha256="3c7eeeb94e351db7ff0b036b1c1fb6f78ddc25ab72d6c1afe69547cbefa70ca8") + version("0.0.1", sha256="19552dfca2d6f9d7e69963e978628adb19dc2ba9cb9563b510c19e136116c23a") + + depends_on("py-setuptools", type="build") + depends_on("python@3.8:3.12", type=("build", "run")) + + with default_args(type="run"): + for arch in CudaPackage.cuda_arch_values: + cuda_specs = f"+cuda cuda_arch={arch}" + depends_on(f"py-jaxlib@0.4.13: {cuda_specs}", when=f"{cuda_specs}") + + depends_on("py-jax@0.4.13:") + depends_on("py-jaxtyping@0.2.20:") + depends_on("py-typing-extensions@4.5.0:") + depends_on("py-tqdm@4.63.2:") + depends_on("py-optax@0.2.0:") + depends_on("py-equinox@0.11.3:") diff --git a/repos/spack_repo/builtin/packages/py_traits/package.py b/repos/spack_repo/builtin/packages/py_traits/package.py index a38b6e0e9a8..0a8be6448ca 100644 --- a/repos/spack_repo/builtin/packages/py_traits/package.py +++ b/repos/spack_repo/builtin/packages/py_traits/package.py @@ -17,6 +17,8 @@ class PyTraits(PythonPackage): license("CC-BY-3.0") + version("7.1.0", sha256="af4775747e11e05ffe13d3ba463d92f67f1f3d1a9e4f46ba33a44ea22b0c9644") + version("7.0.2", sha256="a563515809cb3911975de5a54209855f0b6fdb7ca6912a5e81de26529f70428c") version("6.4.2", sha256="5be7cc5fb7a99cba7e9014786373e3ad2f75efb445eeced094654bbaf3b0fa82") version("6.4.1", sha256="78bb2ccafd60aff606515aac46de64668a0a81cb5c54c650b9877a841aa9e812") version("6.3.1", sha256="ebdd9b067a262045840a85e3ff34e1567ce4e9b6548c716cdcc82b5884ed9100") @@ -25,4 +27,6 @@ class PyTraits(PythonPackage): depends_on("c", type="build") # generated + depends_on("python@3.8:", type=("build", "run"), when="@7:") + depends_on("python@3.7:", type=("build", "run"), when="@6.4.2:") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_traitsui/package.py b/repos/spack_repo/builtin/packages/py_traitsui/package.py index e880a19d36f..bdd08f3bb0d 100644 --- a/repos/spack_repo/builtin/packages/py_traitsui/package.py +++ b/repos/spack_repo/builtin/packages/py_traitsui/package.py @@ -28,7 +28,7 @@ class PyTraitsui(PythonPackage): "backend", default="pyqt5", description="Default backend", - values=("wx", "pyqt", "pyqt5", "pyside", "pyside2"), + values=("wx", "pyqt", "pyqt5", "pyside2"), multi=False, ) @@ -43,7 +43,6 @@ class PyTraitsui(PythonPackage): depends_on("py-pyface@6:", type=("build", "run")) depends_on("py-six", when="@:6", type=("build", "run")) - conflicts("backend=pyside", when="@7.1:") conflicts("backend=pyside2", when="@:7.0") # Backends @@ -57,9 +56,6 @@ class PyTraitsui(PythonPackage): with when("backend=pyqt5"): depends_on("py-pyqt5@5:", type=("build", "run")) depends_on("py-pygments", type=("build", "run")) - with when("backend=pyside"): - depends_on("py-pyside@1.2:", type=("build", "run")) - depends_on("py-pygments", type=("build", "run")) with when("backend=pyside2"): depends_on("py-pyside2", type=("build", "run")) depends_on("py-shiboken2", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_trame_client/package.py b/repos/spack_repo/builtin/packages/py_trame_client/package.py index 40d5cd40fe7..6411a404035 100644 --- a/repos/spack_repo/builtin/packages/py_trame_client/package.py +++ b/repos/spack_repo/builtin/packages/py_trame_client/package.py @@ -11,12 +11,20 @@ class PyTrameClient(PythonPackage): """Internal client side implementation of trame""" homepage = "https://github.com/Kitware/trame-client" - pypi = "trame-client/trame-client-2.17.1.tar.gz" + pypi = "trame-client/trame_client-3.11.2.tar.gz" maintainers("johnwparent") license("Apache-2.0", checked_by="johnwparent") + version("3.11.3", sha256="ea75073c04c871a96ad51634ff7fc0b36242f62aab7ddfaac55e961c9ea46f90") + version("3.11.2", sha256="98b3f09d0fbdb09cd29eac61c945a76dcad4a08cfb4843abce5a148fd6fc7316") version("2.17.1", sha256="0841e569d0792c7fc218a502663c814ad69e318d2885cec82a7fe1d07fdf0bf4") + depends_on("python@3.9:", type=("build", "run"), when="@3.11.2:") depends_on("py-setuptools@42:", type="build") + depends_on("py-trame-common@0.2:", type=("build", "run"), when="@3.11.2") + + def url_for_version(self, version): + sep = "_" if version >= Version("3.5.1") else "-" + return f"https://files.pythonhosted.org/packages/source/t/trame{sep}client/trame{sep}client-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_trame_common/package.py b/repos/spack_repo/builtin/packages/py_trame_common/package.py new file mode 100644 index 00000000000..5219395b364 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_trame_common/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 PyTrameCommon(PythonPackage): + """Dependency less classes and functions for trame.""" + + homepage = "https://github.com/Kitware/trame-common" + pypi = "trame_common/trame_common-1.1.0.tar.gz" + + maintainers("LydDeb") + + license("Apache-2.0", checked_by="LydDeb") + + version("1.1.1", sha256="6254970b75700510c58265e90fd38ba852b99c0e71293d24eed54819902bb01c") + version("1.1.0", sha256="86280a72453571d91843f6a0cd8d0dbf283ddade6230915ccd244835d6bfa245") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-hatchling", type="build") diff --git a/repos/spack_repo/builtin/packages/py_trame_vtk/package.py b/repos/spack_repo/builtin/packages/py_trame_vtk/package.py new file mode 100644 index 00000000000..e50d483d74b --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_trame_vtk/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 PyTrameVtk(PythonPackage): + """ + trame-vtk extend trame widgets with components that can interface with VTK and/or ParaView. + """ + + homepage = "https://kitware.github.io/trame/" + pypi = "trame-vtk/trame_vtk-2.10.0.tar.gz" + + maintainers("LydDeb") + + license("BSD License") + + version("2.11.1", sha256="db1f316ba69c29b9292775c3f73567604aa366742c06030d8507d5bd56424492") + version("2.10.0", sha256="0e4cabd78c1e8b67da857ba5c3a404a2195cb3e849a252bae51575291bef01ad") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-hatchling", type="build") + depends_on("py-setuptools@42:", type="build") + depends_on("py-trame-client@3.4:3", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_trame_vuetify/package.py b/repos/spack_repo/builtin/packages/py_trame_vuetify/package.py new file mode 100644 index 00000000000..0564b5c65e5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_trame_vuetify/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 PyTrameVuetify(PythonPackage): + """Vuetify widgets for trame""" + + homepage = "https://github.com/Kitware/trame-vuetify" + git = "https://github.com/Kitware/trame-vuetify.git" + pypi = "trame_vuetify/trame_vuetify-3.2.1.tar.gz" + + maintainers("LydDeb") + + license("MIT", checked_by="LydDeb") + + version("3.2.1", sha256="1578904a8fc5313ba8033076ea2d9338a050a26c68ceebb207fb6b15e18c0a45") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-trame-client@3.7:3", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_transformers/package.py b/repos/spack_repo/builtin/packages/py_transformers/package.py index 3c86e8c81ac..016c6f4c5f6 100644 --- a/repos/spack_repo/builtin/packages/py_transformers/package.py +++ b/repos/spack_repo/builtin/packages/py_transformers/package.py @@ -19,6 +19,7 @@ class PyTransformers(PythonPackage): license("Apache-2.0") + version("4.57.0", sha256="d045753f3d93f9216e693cdb168698dfd2e9d3aad1bb72579a5d60ebf1545a8b") version("4.48.3", sha256="a5e8f1e9a6430aa78215836be70cecd3f872d99eeda300f41ad6cc841724afdb") version("4.46.3", sha256="8ee4b3ae943fe33e82afff8e837f4b052058b07ca9be3cb5b729ed31295f72cc") version("4.44.2", sha256="36aa17cc92ee154058e426d951684a2dab48751b35b49437896f898931270826") @@ -29,7 +30,6 @@ class PyTransformers(PythonPackage): version("4.31.0", sha256="4302fba920a1c24d3a429a29efff6a63eac03f3f3cf55b55927fc795d01cb273") version("4.24.0", sha256="486f353a8e594002e48be0e2aba723d96eda839e63bfe274702a4b5eda85559b") version("4.6.1", sha256="83dbff763b7e7dc57cbef1a6b849655d4fcab6bffdd955c5e8bea12a4f76dc10") - version("2.8.0", sha256="b9f29cdfd39c28f29e0806c321270dea337d6174a7aa60daf9625bf83dbb12ee") depends_on("cxx", type="build") # generated @@ -39,6 +39,7 @@ class PyTransformers(PythonPackage): with default_args(type=("build", "run")): depends_on("python@3.9:", when="@4.47:") depends_on("py-filelock") + depends_on("py-huggingface-hub@0.34:0", when="@4.57:") depends_on("py-huggingface-hub@0.24:0", when="@4.47:") depends_on("py-huggingface-hub@0.23.2:", when="@4.42.3:") depends_on("py-huggingface-hub@0.19.3:", when="@4.38.1:") @@ -53,18 +54,17 @@ class PyTransformers(PythonPackage): depends_on("py-pyyaml@5.1:", when="@4.24:") depends_on("py-regex@:2019.12.16,2019.12.18:") depends_on("py-requests") + depends_on("py-safetensors@0.4.3:", when="@4.57:") depends_on("py-safetensors@0.4.1:", when="@4.38.1:") depends_on("py-safetensors@0.3.1:", when="@4.31:") - depends_on("py-tokenizers@0.21", when="@4.47:") + depends_on("py-tokenizers@0.22:0.23.0", when="@4.57:") + depends_on("py-tokenizers@0.21", when="@4.47:4.48.3") depends_on("py-tokenizers@0.20", when="@4.45:4.46") depends_on("py-tokenizers@0.19", when="@4.40:4.44") depends_on("py-tokenizers@0.14:0.18", when="@4.35:4.39.3") depends_on("py-tokenizers@0.11.1:0.11.2,0.11.4:0.13", when="@4.24:4.33") depends_on("py-tokenizers@0.10.1:0.10", when="@4.6.1") - depends_on("py-tokenizers@0.5.2", when="@2.8.0") depends_on("py-tqdm@4.27:") # Historical requirements depends_on("py-sacremoses", when="@:4.6") - depends_on("py-boto3", when="@2.8.0") - depends_on("py-sentencepiece", when="@2.8.0") diff --git a/repos/spack_repo/builtin/packages/py_triton/package.py b/repos/spack_repo/builtin/packages/py_triton/package.py index d2a0c2dbda4..86396cbe503 100644 --- a/repos/spack_repo/builtin/packages/py_triton/package.py +++ b/repos/spack_repo/builtin/packages/py_triton/package.py @@ -17,13 +17,23 @@ class PyTriton(PythonPackage): license("MIT") version("main", branch="main") + version("3.4.0", sha256="a96e87a911794c907fab30e0c7a3f96ef4e9e8fdc8812cd8bbc6f0457619072f") + version("3.3.1", sha256="9dc77d9205933bf2fc05eb054f4f1d92acd79a963826174d57fe9cfd58ba367b") + version("3.2.0", sha256="04eb07e2ff1b87bf4b26e132d696177248bfb9c71cecd4864e561a9c103de9b3") version("2.1.0", sha256="4338ca0e80a059aec2671f02bfc9320119b051f378449cf5f56a1273597a3d99") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("py-setuptools@40.8:", type="build") - depends_on("cmake@3.18:", type="build") + with default_args(type="build"): + # https://github.com/triton-lang/triton/blob/v3.3.1/python/requirements.txt + depends_on("cmake@3.18:3") + depends_on("ninja@1.11.1:") + depends_on("py-setuptools@40.8.0:") + depends_on("py-pybind11@2.13.1:") + depends_on("py-lit") + + depends_on("py-setuptools@40.8.0:", type="run", when="@3.2.0") depends_on("py-filelock", type=("build", "run")) depends_on("zlib-api", type="link") conflicts("^openssl@3.3.0") @@ -33,4 +43,6 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: if self.spec.satisfies("%clang"): env.set("TRITON_BUILD_WITH_CLANG_LLD", "True") - build_directory = "python" + @property + def build_directory(self): + return "." if self.spec.satisfies("@3.4.0:") else "python" diff --git a/repos/spack_repo/builtin/packages/py_trl/package.py b/repos/spack_repo/builtin/packages/py_trl/package.py new file mode 100644 index 00000000000..bf326311cb9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_trl/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 PyTrl(PythonPackage): + """trl is a full stack library where we provide a set of tools to train + transformer language models and stable diffusion models with Reinforcement + Learning, from the Supervised Fine-tuning step (SFT), Reward Modeling step + (RM) to the Proximal Policy Optimization (PPO) step.""" + + homepage = "https://github.com/huggingface/trl" + pypi = "trl/trl-0.7.1.tar.gz" + + license("Apache-2.0") + + version("0.23.1", sha256="9a3025a9e7ea18fa4f3a5e575aa16b914d4ea86334b34689216af54562a460c5") + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-accelerate@1.4:", type=("build", "run")) + depends_on("py-datasets@3:", type=("build", "run")) + depends_on("py-transformers@4.56.1:", 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 c1a6b463fdc..6be563b0bf5 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,15 @@ class PyTroveClassifiers(PythonPackage): license("Apache-2.0") + version( + "2026.4.28.13", sha256="c85bb8a53c3de7330d1699b844ed9fb809a602a09ac15dc79ad6d1a509be0676" + ) + version( + "2026.1.14.14", sha256="00492545a1402b09d4858605ba190ea33243d361e2b01c9c296ce06b5c3325f3" + ) + version( + "2025.9.11.17", sha256="931ca9841a5e9c9408bc2ae67b50d28acf85bef56219b56860876dd1f2d024dd" + ) version( "2025.5.9.12", sha256="7ca7c8a7a76e2cd314468c677c69d12cc2357711fcab4a60f87994c1589e5cb5" ) diff --git a/repos/spack_repo/builtin/packages/py_tuswsgi/package.py b/repos/spack_repo/builtin/packages/py_tuswsgi/package.py index f69107fecf9..52745411916 100644 --- a/repos/spack_repo/builtin/packages/py_tuswsgi/package.py +++ b/repos/spack_repo/builtin/packages/py_tuswsgi/package.py @@ -16,6 +16,7 @@ class PyTuswsgi(PythonPackage): license("MIT") + version("0.5.5", sha256="10dddb1ae8ee5faa65069a9d6f178c08551fad45cf17c158df6c7d1e19f964c4") version("0.5.4", sha256="f681a386254a161a97301a67c01ee7da77419c007d9bc43dbd48d5a987491a5e") depends_on("python@3.6:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_twine/package.py b/repos/spack_repo/builtin/packages/py_twine/package.py index 9864960e9b2..f5045390c32 100644 --- a/repos/spack_repo/builtin/packages/py_twine/package.py +++ b/repos/spack_repo/builtin/packages/py_twine/package.py @@ -14,6 +14,7 @@ class PyTwine(PythonPackage): pypi = "twine/twine-2.0.0.tar.gz" git = "https://github.com/pypa/twine.git" + version("6.2.0", sha256="e5ed0d2fd70c9959770dce51c8f39c8945c574e18173a7b81802dab51b4b75cf") version("6.1.0", sha256="be324f6272eff91d07ee93f251edf232fc647935dd585ac003539b42404a8dbd") version("6.0.1", sha256="36158b09df5406e1c9c1fb8edb24fc2be387709443e7376689b938531582ee27") version("4.0.2", sha256="9e102ef5fdd5a20661eb88fad46338806c3bd32cf1db729603fe3697b1bc83c8") @@ -21,6 +22,7 @@ class PyTwine(PythonPackage): version("2.0.0", sha256="9fe7091715c7576df166df8ef6654e61bada39571783f2fd415bdcba867c6993") with default_args(type="build"): + depends_on("py-setuptools@77.0.3:", when="@6.2.0:") depends_on("py-setuptools@61.2:", when="@6:") depends_on("py-setuptools@45:", when="@3.4.1:") depends_on("py-setuptools@0.7.0:") @@ -31,18 +33,30 @@ class PyTwine(PythonPackage): depends_on("py-pkginfo@1.4.2:", when="@:3.6") depends_on("py-readme-renderer@35:", when="@4.0.1:") depends_on("py-readme-renderer@21.0:") - depends_on("py-requests@2.20:") - depends_on("py-requests-toolbelt@0.8,0.9.1:") - depends_on("py-urllib3@1.26:", when="@3.8:") + + # requests@2.30 brings in compatibility with urllib3@2, which has minor breaking. + # even though the requests/urlib pairing is compatible, twine wasn't compatible + # with urllib3@2: changes + # https://github.com/pypa/twine/issues/1148#issuecomment-2629533797 + # https://github.com/psf/requests/blob/main/HISTORY.md#2300-2023-05-03 + depends_on("py-requests@2.20:2.29.0", when="@:4") + depends_on("py-requests@2.20:", when="@6:") + depends_on("py-requests-toolbelt@0.8,0.9.1", when="^py-urllib3@1") + depends_on("py-requests-toolbelt@1:", when="^py-urllib3@2:") + depends_on("py-urllib3@1.26:1", when="@3.8:4") + depends_on("py-urllib3@1.26:", when="@6:") + depends_on("py-importlib-metadata@3.6:", when="@6:^python@:3.9") depends_on("py-importlib-metadata@3.6:", when="@3.4:4") depends_on("py-keyring@15.1:", when="@3:") + depends_on("py-keyring@21.2.0:", when="@6.2.0:") depends_on("py-rfc3986@1.4:", when="@3.2:") depends_on("py-rich@12:", when="@4:") depends_on("py-packaging@24:", when="@6:") depends_on("py-packaging", when="@6.1:") depends_on("py-id", when="@6.1:") + depends_on("python@3.9:", when="@6.2.0:") depends_on("python@3.8:", when="@5:") depends_on("python@3.7:", when="@4:") depends_on("python@3.6:", when="@2:") diff --git a/repos/spack_repo/builtin/packages/py_twisted/package.py b/repos/spack_repo/builtin/packages/py_twisted/package.py index 8ad032e902c..73aeac84ea4 100644 --- a/repos/spack_repo/builtin/packages/py_twisted/package.py +++ b/repos/spack_repo/builtin/packages/py_twisted/package.py @@ -17,20 +17,6 @@ class PyTwisted(PythonPackage): version("24.7.0", sha256="5a60147f044187a127ec7da96d170d49bcce50c6fd36f594e60f4587eff4d394") version("22.10.0", sha256="32acbd40a94f5f46e7b42c109bfae2b302250945561783a8b7a059048f2d4d31") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2022-24801 - version( - "21.7.0", sha256="2cd652542463277378b0d349f47c62f20d9306e57d1247baabd6d1d38a109006" - ) - version( - "15.4.0", sha256="78862662fa9ae29654bc2b9d349c3f1d887e6b2ed978512c4442d53ea861f05c" - ) - version( - "15.3.0", sha256="025729751cf898842262375a40f70ae1d246daea88369eab9f6bb96e528bf285" - ) - - depends_on("python@3.6.7:", type=("build", "run"), when="@21.7.0:") - depends_on("python@3.7.1:", type=("build", "run"), when="@22.8.0:") with when("@:22.10"): depends_on("py-setuptools", type="build") @@ -40,7 +26,6 @@ class PyTwisted(PythonPackage): depends_on("py-hatch-fancy-pypi-readme@22.5.0:", type="build") depends_on("py-incremental@22.10.0:", type="build") - depends_on("py-zope-interface@4.0.2:", type=("build", "run")) depends_on("py-zope-interface@4.4.2:", type=("build", "run"), when="@21.7.0:") depends_on("py-zope-interface@5:", type=("build", "run"), when="@23.8.0:") @@ -57,9 +42,7 @@ class PyTwisted(PythonPackage): def url_for_version(self, version): url = "https://pypi.io/packages/source/T/Twisted/" - if version <= Version("20.3.0"): - url += "Twisted-{0}.tar.bz2" - elif version <= Version("22.10.0"): + if version <= Version("22.10.0"): url += "Twisted-{0}.tar.gz" else: url += "twisted-{0}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_ty/package.py b/repos/spack_repo/builtin/packages/py_ty/package.py new file mode 100644 index 00000000000..c660cb60e18 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_ty/package.py @@ -0,0 +1,48 @@ +# 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 PyTy(PythonPackage): + """An extremely fast Python type checker, written in Rust.""" + + homepage = "https://github.com/astral-sh/ty/" + pypi = "ty/ty-0.0.1a29.tar.gz" + + license("MIT") + maintainers("adamjstewart") + + version("0.0.30", sha256="c982207640e7d75331b81031ebfb884ab858ed26ab16d7c086ac4942e2771846") + version("0.0.29", sha256="e7936cca2f691eeda631876c92809688dbbab68687c3473f526cd83b6a9228d8") + version("0.0.28", sha256="1fbde7bc5d154d6f047b570d95665954fa83b75a0dce50d88cf081b40a27ea32") + version("0.0.21", sha256="a4c2ba5d67d64df8fcdefd8b280ac1149d24a73dbda82fa953a0dff9d21400ed") + version("0.0.20", sha256="ebba6be7974c14efbb2a9adda6ac59848f880d7259f089dfa72a093039f1dcc6") + version("0.0.17", sha256="847ed6c120913e280bf9b54d8eaa7a1049708acb8824ad234e71498e8ad09f97") + version("0.0.16", sha256="a999b0db6aed7d6294d036ebe43301105681e0c821a19989be7c145805d7351c") + version("0.0.15", sha256="4f9a5b8df208c62dba56e91b93bed8b5bb714839691b8cff16d12c983bfa1174") + version("0.0.14", sha256="a691010565f59dd7f15cf324cdcd1d9065e010c77a04f887e1ea070ba34a7de2") + version("0.0.13", sha256="7a1d135a400ca076407ea30012d1f75419634160ed3b9cad96607bf2956b23b3") + version("0.0.12", sha256="cd01810e106c3b652a01b8f784dd21741de9fdc47bd595d02c122a7d5cefeee7") + version("0.0.11", sha256="ebcbc7d646847cb6610de1da4ffc849d8b800e29fd1e9ebb81ba8f3fbac88c25") + version("0.0.10", sha256="0a1f9f7577e56cd508a8f93d0be2a502fdf33de6a7d65a328a4c80b784f4ac5f") + version("0.0.2", sha256="e02dc50b65dc58d6cb8e8b0d563833f81bf03ed8a7d0b15c6396d486489a7e1d") + version( + "0.0.1a29", + sha256="43bb55fd467a057880d62ad4bbb048223fd4fba7d8e4d7d5372a0f4881da83fe", + deprecated=True, + ) + + with default_args(type="build"): + depends_on("c") + depends_on("gmake") + # ruff/Cargo.toml + depends_on("rust@1.92:", when="@0.0.25:") + depends_on("rust@1.91:", when="@0.0.15:") + depends_on("rust@1.90:", when="@0.0.2:") + depends_on("rust@1.89:") + + depends_on("py-maturin@1") diff --git a/repos/spack_repo/builtin/packages/py_typed_ast/package.py b/repos/spack_repo/builtin/packages/py_typed_ast/package.py index fcd9016b034..827225a8039 100644 --- a/repos/spack_repo/builtin/packages/py_typed_ast/package.py +++ b/repos/spack_repo/builtin/packages/py_typed_ast/package.py @@ -19,17 +19,6 @@ class PyTypedAst(PythonPackage): version("1.4.3", sha256="fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65") version("1.4.2", sha256="9fc0b3cb5d1720e7141d103cf4819aea239f7d136acf9ee4a69b047b7986175a") version("1.4.1", sha256="8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b") - version( - "1.4.0", - sha256="66480f95b8167c9c5c5c87f32cf437d585937970f3fc24386f313a4c97b44e34", - deprecated=True, - ) - version( - "1.3.5", - sha256="5315f4509c1476718a4825f45a203b82d7fdf2a6f5f0c8f166435975b1c9f7d4", - url="https://files.pythonhosted.org/packages/source/t/typed-ast/typed-ast-1.3.5.tar.gz", - deprecated=True, - ) variant( "wheel", @@ -42,7 +31,6 @@ class PyTypedAst(PythonPackage): depends_on("python@3.3:", type=("build", "link", "run")) depends_on("python@3.6:", when="@1.5.4:", type=("build", "link", "run")) - depends_on("python@:3.8", when="@:1.4.0") # build errors with 3.9 until 1.4.1 depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_typeguard/package.py b/repos/spack_repo/builtin/packages/py_typeguard/package.py index 5eb60da8a5e..4892537c853 100644 --- a/repos/spack_repo/builtin/packages/py_typeguard/package.py +++ b/repos/spack_repo/builtin/packages/py_typeguard/package.py @@ -19,15 +19,19 @@ class PyTypeguard(PythonPackage): license("MIT") + version("4.4.4", sha256="3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74") version("3.0.2", sha256="fee5297fdb28f8e9efcb8142b5ee219e02375509cd77ea9d270b5af826358d5a") version("2.13.3", sha256="00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4") version("2.12.1", sha256="c2af8b9bdd7657f4bd27b45336e7930171aead796711bc4cfc99b4731bb9d051") depends_on("python@3.5.3:", when="@:2.13.3", type=("build", "run")) depends_on("python@3.7.4:", when="@3.0.2:", type=("build", "run")) + depends_on("python@3.9:", when="@4.4.1:", type=("build", "run")) depends_on("py-setuptools@42:", when="@:2.13.3", type="build") depends_on("py-setuptools@64:", when="@3.0.2:", type="build") + depends_on("py-setuptools@77:", when="@4.4.3:", type="build") depends_on("py-setuptools-scm@3.4:+toml", when="@:2.13.3", type="build") depends_on("py-setuptools-scm@6.4:+toml", when="@3.0.2:", type="build") depends_on("py-importlib-metadata@3.6:", when="@3.0.2: ^python@:3.9", type=("build", "run")) depends_on("py-typing-extensions@4.4.0:", when="@3.0.2: ^python@:3.10", type=("build", "run")) + depends_on("py-typing-extensions@4.14.0:", when="@4.4.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_typepy/package.py b/repos/spack_repo/builtin/packages/py_typepy/package.py new file mode 100644 index 00000000000..fd0e9517c32 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_typepy/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 PyTypepy(PythonPackage): + """typepy is a Python library for variable type checker/validator/converter at a run time.""" + + homepage = "https://github.com/thombashi/typepy" + pypi = "typepy/typepy-1.3.4.tar.gz" + + license("MIT") + + version("1.3.4", sha256="89c1f66de6c6133209c43a94d23431d320ba03ef5db18f241091ea594035d9de") + + variant( + "datetime", default=False, description="Install dependencies needed for datetime support" + ) + + with default_args(type="build"): + depends_on("py-setuptools@64:") + depends_on("py-setuptools-scm@8:") + + with default_args(type=("build", "run")): + depends_on("py-mbstrdecoder@1") + + with when("+datetime"): + depends_on("py-python-dateutil@2.8:2") + depends_on("py-pytz@2018.9:") + depends_on("py-packaging") diff --git a/repos/spack_repo/builtin/packages/py_typer/package.py b/repos/spack_repo/builtin/packages/py_typer/package.py index a93b629ca26..de0fa076f67 100644 --- a/repos/spack_repo/builtin/packages/py_typer/package.py +++ b/repos/spack_repo/builtin/packages/py_typer/package.py @@ -15,16 +15,18 @@ 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") version("0.7.0", sha256="ff797846578a9f2a201b53442aedeb543319466870fbe1c701eab66dd7681165") version("0.5.0", sha256="4c285a5585c94d32c305444af934f0078b6a8ba91464f3f85807c91cd499d195") - with when("@0.15.1:"): + with when("@0.12.5:"): depends_on("python@3.7:", type=("build", "run")) depends_on("py-pdm-backend", type="build") - depends_on("py-click@8:", type=("build", "run")) - + depends_on("py-click@8:8.1.8", when="@:0.23.2", type=("build", "run")) + depends_on("py-click@8.2.1:", when="@0.23.2:", type=("build", "run")) depends_on("py-shellingham@1.3:", type=("build", "run")) depends_on("py-rich@10.11:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_types_geopandas/package.py b/repos/spack_repo/builtin/packages/py_types_geopandas/package.py new file mode 100644 index 00000000000..c0edd1bf915 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_types_geopandas/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 PyTypesGeopandas(PythonPackage): + """Typing stubs for geopandas.""" + + homepage = "https://github.com/python/typeshed" + pypi = "types_geopandas/types_geopandas-1.1.1.20250829.tar.gz" + + license("Apache-2.0") + + version( + "1.1.1.20250829", sha256="df386c6674052918b299e587e07acddf990110fb39478e0593cdd12e5f20f799" + ) + + depends_on("py-setuptools@77.0.3:", type="build") + + with default_args(type=("build", "run")): + depends_on("py-types-shapely") + depends_on("py-numpy@1.20:") + depends_on("py-pandas-stubs") + depends_on("py-pyproj") diff --git a/repos/spack_repo/builtin/packages/py_types_psutil/package.py b/repos/spack_repo/builtin/packages/py_types_psutil/package.py index 7d5a32510ad..45807a6f641 100644 --- a/repos/spack_repo/builtin/packages/py_types_psutil/package.py +++ b/repos/spack_repo/builtin/packages/py_types_psutil/package.py @@ -11,9 +11,31 @@ class PyTypesPsutil(PythonPackage): """Typing stubs for psutil.""" homepage = "https://github.com/python/typeshed" - pypi = "types-psutil/types-psutil-5.9.5.5.tar.gz" + pypi = "types_psutil/types_psutil-7.0.0.20251001.tar.gz" + license("Apache-2.0") + + version( + "7.2.2.20260408", sha256="e8053450685965b8cd52afb62569073d00ea9967ae78bb45dff5f606847f97f2" + ) + version( + "7.0.0.20251001", sha256="60d696200ddae28677e7d88cdebd6e960294e85adefbaafe0f6e5d0e7b4c1963" + ) version("5.9.5.16", sha256="4e9b219efb625d3d04f6bf106934f87cab49aa41a94b0a3b3089403f47a79228") version("5.9.5.5", sha256="4f26fdb2cb064b274cbc6359fba4abf3b3a2993d7d4abc336ad0947568212c62") - depends_on("py-setuptools", type="build") + with default_args(type="build"): + depends_on("py-setuptools@82.0.1:", when="@7.2.2.20260404:") + depends_on("py-setuptools@77.0.3:", when="@7.0.0.20250516:") + depends_on("py-setuptools") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@7.2.2.20260404:") + depends_on("python@3.9:", when="@7.0.0.20250218:") + + def url_for_version(self, version): + if self.spec.satisfies("@6.1.0.20241221:"): + name = "types_psutil" + else: + name = "types-psutil" + return f"https://files.pythonhosted.org/packages/source/{name[0]}/{name}/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_types_python_dateutil/package.py b/repos/spack_repo/builtin/packages/py_types_python_dateutil/package.py index 7f11b04e2ba..d165f2d0d96 100644 --- a/repos/spack_repo/builtin/packages/py_types_python_dateutil/package.py +++ b/repos/spack_repo/builtin/packages/py_types_python_dateutil/package.py @@ -11,9 +11,21 @@ class PyTypesPythonDateutil(PythonPackage): """Typing stubs for python-dateutil.""" homepage = "https://github.com/python/typeshed" - pypi = "types-python-dateutil/types-python-dateutil-2.8.19.tar.gz" + pypi = "types_python_dateutil/types_python_dateutil-2.9.0.20251008.tar.gz" + version( + "2.9.0.20251008", sha256="c3826289c170c93ebd8360c3485311187df740166dbab9dd3b792e69f2bc1f9c" + ) version("2.8.19.14", sha256="1f4f10ac98bb8b16ade9dbee3518d9ace017821d94b057a425b069f834737f4b") version("2.8.19", sha256="bfd3eb39c7253aea4ba23b10f69b017d30b013662bb4be4ab48b20bbd763f309") + depends_on("python@3.9:", type=("build", "run"), when="@2.9.0.20250516:") + depends_on("py-setuptools@77.0.3:", type="build", when="@2.9.0.20250516:") depends_on("py-setuptools", type="build") + + def url_for_version(self, version): + if self.spec.satisfies("@2.9.0.20241206:"): + name = "types_python_dateutil" + else: + name = "types-python-dateutil" + return f"https://files.pythonhosted.org/packages/source/{name[0]}/{name}/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_types_pytz/package.py b/repos/spack_repo/builtin/packages/py_types_pytz/package.py index 3ab51e917e6..781b62a6bb7 100644 --- a/repos/spack_repo/builtin/packages/py_types_pytz/package.py +++ b/repos/spack_repo/builtin/packages/py_types_pytz/package.py @@ -13,10 +13,24 @@ class PyTypesPytz(PythonPackage): code that uses pytz.""" homepage = "https://github.com/python/typeshed" - pypi = "types-pytz/types-pytz-2023.3.0.0.tar.gz" + pypi = "types_pytz/types_pytz-2025.2.0.20250809.tar.gz" + version( + "2025.2.0.20250809", + sha256="222e32e6a29bb28871f8834e8785e3801f2dc4441c715cd2082b271eecbe21e5", + ) version( "2023.3.0.0", sha256="ecdc70d543aaf3616a7e48631543a884f74205f284cefd6649ddf44c6a820aac" ) + depends_on("python@3.9:", type=("build", "run"), when="@2025.1.0.20250204:") + + depends_on("py-setuptools@77.0.3:", type="build", when="@025.2.0.20250516:") depends_on("py-setuptools", type="build") + + def url_for_version(self, version): + if self.spec.satisfies("@2024.2.0.20241221:"): + name = "types_pytz" + else: + name = "types-pytz" + return f"https://files.pythonhosted.org/packages/source/{name[0]}/{name}/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_types_pyyaml/package.py b/repos/spack_repo/builtin/packages/py_types_pyyaml/package.py new file mode 100644 index 00000000000..9b1d18d682d --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_types_pyyaml/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 PyTypesPyyaml(PythonPackage): + """This is a type stub package for the PyYAML package. + It can be used by type checkers to check code that uses PyYAML.""" + + homepage = "https://pypi.org/project/types-PyYAML/" + pypi = "types_PyYAML/types_pyyaml-6.0.12.20250915.tar.gz" + + license("MIT") + + version( + "6.0.12.20250915", + sha256="0f8b54a528c303f0e6f7165687dd33fafa81c807fcac23f632b63aa624ced1d3", + ) + + depends_on("python@3.9:", type=("build", "run")) + depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_types_requests/package.py b/repos/spack_repo/builtin/packages/py_types_requests/package.py index b199fa6fd3d..6162d3432e9 100644 --- a/repos/spack_repo/builtin/packages/py_types_requests/package.py +++ b/repos/spack_repo/builtin/packages/py_types_requests/package.py @@ -11,12 +11,29 @@ class PyTypesRequests(PythonPackage): """Typing stubs for requests.""" homepage = "https://github.com/python/typeshed" - pypi = "types-requests/types-requests-2.28.10.tar.gz" + pypi = "types_requests/types_requests-2.32.0.20250301.tar.gz" + version( + "2.32.4.20250913", + sha256="abd6d4f9ce3a9383f269775a9835a4c24e5cd6b9f647d64f88aa4613c33def5d", + ) version("2.31.0.2", sha256="6aa3f7faf0ea52d728bb18c0a0d1522d9bfd8c72d26ff6f61bfc3d06a411cf40") version("2.28.10", sha256="97d8f40aa1ffe1e58c3726c77d63c182daea9a72d9f1fa2cafdea756b2a19f2c") + depends_on("python@3.9:", type="build", when="@2.32.0.20250301:") + + depends_on("py-setuptools@77.0.3:", type="build", when="@2.32.0.20250515:") depends_on("py-setuptools", type="build") - depends_on("py-types-urllib3", type=("build", "run")) - depends_on("py-types-urllib3@:1.26", when="@:2.29", type=("build", "run")) + depends_on("py-urllib3@2:", type=("build", "run"), when="@2.31.0.7:") + + # Historical dependencies + depends_on("py-types-urllib3", type=("build", "run"), when="@:2.31.0.6") + depends_on("py-types-urllib3@:1.26", type=("build", "run"), when="@:2.29") + + def url_for_version(self, version): + if self.spec.satisfies("@2.32.0.20250301:"): + name = "types_requests" + else: + name = "types-requests" + return f"https://files.pythonhosted.org/packages/source/{name[0]}/{name}/{name}-{version}.tar.gz" diff --git a/repos/spack_repo/builtin/packages/py_types_setuptools/package.py b/repos/spack_repo/builtin/packages/py_types_setuptools/package.py index 097e2ac6f7e..64d83db2c75 100644 --- a/repos/spack_repo/builtin/packages/py_types_setuptools/package.py +++ b/repos/spack_repo/builtin/packages/py_types_setuptools/package.py @@ -11,9 +11,38 @@ class PyTypesSetuptools(PythonPackage): """Typing stubs for setuptools.""" homepage = "https://github.com/python/typeshed" - pypi = "types-setuptools/types-setuptools-65.5.0.3.tar.gz" + pypi = "types-setuptools/types_setuptools-80.9.0.20250529.tar.gz" + license("Apache-2.0") + + version( + "82.0.0.20260408", + sha256="036c68caf7e672a699f5ebbf914708d40644c14e05298bc49f7272be91cf43d3", + ) + version( + "80.9.0.20250822", + sha256="070ea7716968ec67a84c7f7768d9952ff24d28b65b6594797a464f1b3066f965", + ) + version( + "80.9.0.20250529", + sha256="79e088ba0cba2186c8d6499cbd3e143abb142d28a44b042c28d3148b1e353c91", + ) version("68.2.0.0", sha256="a4216f1e2ef29d089877b3af3ab2acf489eb869ccaf905125c69d2dc3932fd85") version("65.5.0.3", sha256="17769171f5f2a2dc69b25c0d3106552a5cda767bbf6b36cb6212b26dae5aa9fc") - depends_on("py-setuptools", type="build") + with default_args(type="build"): + depends_on("py-setuptools@82.0.1:", when="@82.0.0.20260402:") + depends_on("py-setuptools@77.0.3:", when="@79.0.0.20250422:") + depends_on("py-setuptools") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@82.0.0.20260210:") + depends_on("python@3.9:", when="@75.8.0.20250210:") + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/t/types-setuptools/{}-{}.tar.gz" + if version >= Version("75.5.0.20241121"): + name = "types_setuptools" + else: + name = "types-setuptools" + return url.format(name, version) diff --git a/repos/spack_repo/builtin/packages/py_types_shapely/package.py b/repos/spack_repo/builtin/packages/py_types_shapely/package.py new file mode 100644 index 00000000000..04eedc706a4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_types_shapely/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 PyTypesShapely(PythonPackage): + """Typing stubs for shapely.""" + + homepage = "https://github.com/python/typeshed" + pypi = "types_shapely/types_shapely-2.1.0.20250917.tar.gz" + + license("Apache-2.0") + + version( + "2.1.0.20250917", sha256="5c56670742105aebe40c16414390d35fcaa55d6f774d328c1a18273ab0e2134a" + ) + + depends_on("py-setuptools@77.0.3:", type="build") + depends_on("py-numpy@1.20:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_types_tqdm/package.py b/repos/spack_repo/builtin/packages/py_types_tqdm/package.py new file mode 100644 index 00000000000..d5c25541a45 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_types_tqdm/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 PyTypesTqdm(PythonPackage): + """Typing stubs for tqdm.""" + + homepage = "https://github.com/python/typeshed" + pypi = "types_tqdm/types_tqdm-4.67.0.20250809.tar.gz" + + license("Apache-2.0") + + version( + "4.67.0.20250809", + sha256="02bf7ab91256080b9c4c63f9f11b519c27baaf52718e5fdab9e9606da168d500", + ) + + depends_on("py-setuptools@77.0.3:", type="build") + depends_on("py-types-requests", type=("build", "run")) 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 cf8a923a795..49318001783 100644 --- a/repos/spack_repo/builtin/packages/py_typing_extensions/package.py +++ b/repos/spack_repo/builtin/packages/py_typing_extensions/package.py @@ -18,11 +18,13 @@ class PyTypingExtensions(PythonPackage): license("0BSD AND PSF-2.0") + version("4.15.0", sha256="0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466") version("4.14.1", sha256="38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36") version("4.14.0", sha256="8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4") 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_typing_inspect/package.py b/repos/spack_repo/builtin/packages/py_typing_inspect/package.py index d63a2dbe59d..2d55da479b7 100644 --- a/repos/spack_repo/builtin/packages/py_typing_inspect/package.py +++ b/repos/spack_repo/builtin/packages/py_typing_inspect/package.py @@ -15,6 +15,7 @@ class PyTypingInspect(PythonPackage): license("MIT") + version("0.9.0", sha256="b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78") version("0.8.0", sha256="8b1ff0c400943b6145df8119c41c244ca8207f1f10c9c057aeed1560e4806e3d") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_typing_inspection/package.py b/repos/spack_repo/builtin/packages/py_typing_inspection/package.py new file mode 100644 index 00000000000..23f33a9d5d0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_typing_inspection/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 PyTypingInspection(PythonPackage): + """Runtime typing introspection tools""" + + homepage = "https://typing-inspection.pydantic.dev/latest/" + pypi = "typing_inspection/typing_inspection-0.4.2.tar.gz" + + license("MIT", checked_by="RMeli") + + version("0.4.2", sha256="ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464") + + # pyproject.toml + depends_on("py-hatchling@1.27.0:", type="build") + depends_on("py-typing-extensions@4.12.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_tzdata/package.py b/repos/spack_repo/builtin/packages/py_tzdata/package.py index 517c1f3047b..e91501882b5 100644 --- a/repos/spack_repo/builtin/packages/py_tzdata/package.py +++ b/repos/spack_repo/builtin/packages/py_tzdata/package.py @@ -15,6 +15,8 @@ class PyTzdata(PythonPackage): license("Apache-2.0") + version("2026.1", sha256="67658a1903c75917309e753fdc349ac0efd8c27db7a0cb406a25be4840f87f98") + version("2025.3", sha256="de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7") version("2025.2", sha256="b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9") version("2023.3", sha256="11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a") diff --git a/repos/spack_repo/builtin/packages/py_tzlocal/package.py b/repos/spack_repo/builtin/packages/py_tzlocal/package.py index fe27e2e58e5..6385138a09b 100644 --- a/repos/spack_repo/builtin/packages/py_tzlocal/package.py +++ b/repos/spack_repo/builtin/packages/py_tzlocal/package.py @@ -15,10 +15,13 @@ class PyTzlocal(PythonPackage): license("MIT") + version("5.3.1", sha256="cceffc7edecefea1f595541dbd6e990cb1ea3d19bf01b2809f362a03dd7921fd") version("2.1", sha256="643c97c5294aedc737780a49d9df30889321cbe1204eac2c2ec6134035a92e44") version("2.0.0", sha256="949b9dd5ba4be17190a80c0268167d7e6c92c62b30026cf9764caf3e308e5590") version("1.3", sha256="d160c2ce4f8b1831dabfe766bd844cf9012f766539cf84139c2faac5201882ce") + depends_on("python@3.9:", when="@5.3.1:", type=("build", "run")) depends_on("py-setuptools", type="build") + depends_on("py-setuptools@64:", when="@5.3.1:", type="build") - depends_on("py-pytz", type=("build", "run")) + depends_on("py-pytz", when="@:2.1", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_uc_micro_py/package.py b/repos/spack_repo/builtin/packages/py_uc_micro_py/package.py index 94e95ff8f8f..29c6595b77b 100644 --- a/repos/spack_repo/builtin/packages/py_uc_micro_py/package.py +++ b/repos/spack_repo/builtin/packages/py_uc_micro_py/package.py @@ -15,6 +15,7 @@ class PyUcMicroPy(PythonPackage): license("MIT") + version("1.0.3", sha256="d321b92cff673ec58027c04015fcaa8bb1e005478643ff4a500882eaab88c48a") version("1.0.2", sha256="30ae2ac9c49f39ac6dce743bd187fcd2b574b16ca095fa74cd9396795c954c54") depends_on("python@3.7:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_uhi/package.py b/repos/spack_repo/builtin/packages/py_uhi/package.py index 4180b49f7b4..bd167f05901 100644 --- a/repos/spack_repo/builtin/packages/py_uhi/package.py +++ b/repos/spack_repo/builtin/packages/py_uhi/package.py @@ -11,21 +11,30 @@ class PyUhi(PythonPackage): """Unified Histogram Interface: tools to help library authors work with histograms""" - homepage = "https://github.com/Scikit-HEP/uhi" + homepage = "https://github.com/scikit-hep/uhi" pypi = "uhi/uhi-0.3.0.tar.gz" + git = "https://github.com/scikit-hep/uhi.git" license("BSD-3-Clause") + version("1.0.0", sha256="331188949b1a49c8db9ef9d50b7c4d4df4606115d147ded97c4f050da8270e74") + version("0.5.0", sha256="9559bbf2f38f18a2fc1d8f73139396068f88f898d6a9afc833207ec0fd59a31c") version("0.4.0", sha256="0dcb6b19775087d38a31ee388cb2c70f2ecfe04c4ffe2ca63223410cae5beefa") version("0.3.3", sha256="800caf3a5f1273b08bcc3bb4b49228fe003942e23423812b0110546aad9a24be") version("0.3.2", sha256="fd6ed2ae8ce68ba6be37b872de86e7775b45d54f858768c8fdaba162b6452ab2") version("0.3.1", sha256="6f1ebcadd1d0628337a30b012184325618047abc01c3539538b1655c69101d91") version("0.3.0", sha256="3f441bfa89fae11aa762ae1ef1b1b454362d228e9084477773ffb82d6e9f5d2c") + depends_on("python@3.9:", type=("build", "run"), when="@1.0:") + depends_on("python@3.8:", type=("build", "run"), when="@0.5:") depends_on("python@3.7:", type=("build", "run"), when="@0.4:") depends_on("python@3.6:", type=("build", "run")) + depends_on("py-numpy@1.19.3:", type=("build", "run"), when="@1.0:") depends_on("py-numpy@1.13.3:", type=("build", "run")) + depends_on("py-boost-histogram@1.4:", type=("build", "run"), when="@1.0:") + depends_on("py-boost-histogram@1:", type=("build", "run")) depends_on("py-typing-extensions@3.7:", type=("build", "run"), when="^python@:3.7") + depends_on("py-typing-extensions@4:", type=("build", "run"), when="@1: ^python@:3.10") depends_on("py-hatchling", when="@0.3.2:", type="build") depends_on("py-hatch-vcs", when="@0.3.3:", type="build") depends_on("py-flit-core@3.2:", when="@0.3.1", type="build") diff --git a/repos/spack_repo/builtin/packages/py_universal_pathlib/package.py b/repos/spack_repo/builtin/packages/py_universal_pathlib/package.py new file mode 100644 index 00000000000..a62b029ca5e --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_universal_pathlib/package.py @@ -0,0 +1,33 @@ +# 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 PyUniversalPathlib(PythonPackage): + """pathlib api extended to use fsspec backends.""" + + homepage = "https://github.com/fsspec/universal_pathlib" + pypi = "universal_pathlib/universal_pathlib-0.2.6.tar.gz" + + license("MIT") + + version("0.3.10", sha256="4487cbc90730a48cfb64f811d99e14b6faed6d738420cd5f93f59f48e6930bfb") + version("0.2.6", sha256="50817aaeaa9f4163cb1e76f5bdf84207fa05ce728b23fd779479b3462e5430ac") + + with default_args(type="build"): + depends_on("py-setuptools@64:") + depends_on("py-setuptools-scm@8:") + + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@0.3:") + depends_on("python@3.8:") + + depends_on("py-fsspec@2024.5.0:", when="@0.3:") + depends_on("py-fsspec@2022.1.0:") + depends_on("py-pathlib-abc@0.5.1:0.5", when="@0.3.4:") + + conflicts("py-fsspec@2024.3.1", when="@0.2.6") diff --git a/repos/spack_repo/builtin/packages/py_unyt/package.py b/repos/spack_repo/builtin/packages/py_unyt/package.py index 1614b0f8cae..8ed68006ace 100644 --- a/repos/spack_repo/builtin/packages/py_unyt/package.py +++ b/repos/spack_repo/builtin/packages/py_unyt/package.py @@ -20,6 +20,7 @@ class PyUnyt(PythonPackage): license("BSD-3-Clause") version("main", branch="main") + version("3.0.4", sha256="17ea7013ef4004507fe193193e80b30645ec269b5b3f5fca80eda8f7cb961213") version("2.9.2", sha256="8d4bf3dd3f7b4c29580728c0359caa17d62239673eeab436448d0777adeee5e1") # Undocumented in 2.9.2 diff --git a/repos/spack_repo/builtin/packages/py_uproot/package.py b/repos/spack_repo/builtin/packages/py_uproot/package.py index 9dc363f1c09..70498393b18 100644 --- a/repos/spack_repo/builtin/packages/py_uproot/package.py +++ b/repos/spack_repo/builtin/packages/py_uproot/package.py @@ -17,8 +17,9 @@ class PyUproot(PythonPackage): on C++ ROOT. Instead, it uses Numpy to cast blocks of data from the ROOT file as Numpy arrays.""" - homepage = "https://github.com/scikit-hep/uproot4" + homepage = "https://github.com/scikit-hep/uproot5" pypi = "uproot/uproot-4.0.6.tar.gz" + git = "https://github.com/scikit-hep/uproot5.git" maintainers("vvolkl") @@ -26,6 +27,15 @@ class PyUproot(PythonPackage): license("BSD-3-Clause") + version("5.7.1", sha256="52fc757de1278959b1ff48a9ec4640f57c937cd1870a2f4fe047eacd9e8d5535") + version("5.6.9", sha256="0f019088f0f6f0d6e9e6cbc7ec158515d26f0dfed029f32e8b8faf041a507d3d") + version("5.6.3", sha256="47f2aefcdcae503c9a21900381ac42a7bc3274cd0c52cd0686700d282ad0f46b") + version("5.5.2", sha256="d765be4bea1df58cc237672fe4e8a10a2f7a40a2c7a8cf643333af48def07f5c") + version("5.4.2", sha256="53b245baf27067efd86fb92bd11d0efb12e8aff8b7455c85b27807e24e31d99b") + version("5.3.13", sha256="4af7cd874e7c1cd0703f17de70b52c9f2492cf0bca27d962c4a3f2755bb89fa9") + version("5.2.2", sha256="ce6abba7efaae35d891f15ad1757ece63620f0db12260403fbd0339e41951fc1") + version("5.1.2", sha256="f69ee9381243cb0fea58c01a94a8a7abee29de3b67cdb9c9c9cccdd2caccd934") + version("5.0.13", sha256="0b1a36c98a010bae5bea52f7fd98e85fee82cd7154af42a5e5a1ca6baf3dae25") version("5.0.5", sha256="1a2ac98d595bde7c83c7d5b716d33bb74abd44df6e8d84af62c638edb6c9abab") version("5.0.4", sha256="c4ea1af198e3292a4649e3fe789d11b038c1ed57c10f167fc3f52100300c2eea") version("5.0.3", sha256="a4ab3f2ea0b98746f601d43115a64b36f9c2145e9793da1e1cd9aaca72f311ab") @@ -53,26 +63,36 @@ class PyUproot(PythonPackage): variant("xrootd", default=True, description="Build with xrootd support ") variant( - "lz4", - default=True, - description="Build with support for reading " "lz4-compressed rootfiles ", + "lz4", default=True, description="Build with support for reading lz4-compressed rootfiles " ) variant( "zstd", default=True, - description="Build with support for reading " "zstd-compressed rootfiles ", + description="Build with support for reading zstd-compressed rootfiles ", ) depends_on("python@2.6:2,3.5:", type=("build", "run")) depends_on("python@3.6:", type=("build", "run"), when="@4.2.0:") + depends_on("python@3.7:", type=("build", "run"), when="@5.0:") + depends_on("python@3.8:", type=("build", "run"), when="@5.1:") + depends_on("python@3.9:", type=("build", "run"), when="@5.5:") + depends_on("python@3.10:", type=("build", "run"), when="@5.7:") depends_on("py-hatchling", when="@5:", type="build") + depends_on("py-hatch-vcs", when="@5.2:", type="build") depends_on("py-setuptools", when="@:4", type=("build", "run")) depends_on("py-setuptools@42:", type=("build", "run"), when="@4.1.8:4") depends_on("py-awkward@2:", type=("build", "run"), when="@5:") - depends_on("py-importlib-metadata", when="@5: ^python@:3.7", type=("build", "run")) + depends_on("py-awkward@2.4.6:", type=("build", "run"), when="@5.1:") + depends_on("py-awkward@2.8.2:", type=("build", "run"), when="@5.6.7:") + depends_on("py-cramjam@2.5.0:", type=("build", "run"), when="@5.3:") + depends_on("py-xxhash", type=("build", "run"), when="@5.4:") depends_on("py-numpy", type=("build", "run")) + depends_on("py-numpy@:1", type=("build", "run"), when="@:5.3.2") + depends_on("py-fsspec", type=("build", "run")) + depends_on("py-packaging", when="@5:", type=("build", "run")) + depends_on("py-typing-extensions@4.1:", when="@5.1: ^python@:3.10", type=("build", "run")) depends_on("xrootd", when="+xrootd") @@ -80,3 +100,6 @@ class PyUproot(PythonPackage): depends_on("xxhash", when="+lz4") depends_on("zstd", when="+zstd") + + # Historical dependencies + depends_on("py-importlib-metadata", when="@5:5.2 ^python@:3.7", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_uqinn/package.py b/repos/spack_repo/builtin/packages/py_uqinn/package.py new file mode 100644 index 00000000000..74505e4dc61 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_uqinn/package.py @@ -0,0 +1,31 @@ +# 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 PyUqinn(PythonPackage): + """Quantification of Uncertainties in Neural Networks (QUiNN) is a + python library centered around various probabilistic wrappers over + PyTorch modules in order to provide uncertainty estimation in Neural + Network (NN) predictions.""" + + homepage = "https://github.com/sandialabs/quinn" + pypi = "uqinn/uqinn-1.0.0.tar.gz" + + maintainers("ksargsyan", "odiazib", "gregvw") + + license("BSD-3-Clause", checked_by="gregvw") + + version("1.0.0", sha256="07c6a5a81bc14af2679e9510f438ef1bbb85eba00c4fdd993fcb1f018f511cac") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools", type="build") + + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + depends_on("py-matplotlib", type=("build", "run")) + depends_on("py-torch", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_urllib3/package.py b/repos/spack_repo/builtin/packages/py_urllib3/package.py index d029002c1d4..4daa717dbdb 100644 --- a/repos/spack_repo/builtin/packages/py_urllib3/package.py +++ b/repos/spack_repo/builtin/packages/py_urllib3/package.py @@ -17,6 +17,9 @@ class PyUrllib3(PythonPackage): license("MIT") + version("2.6.3", sha256="1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed") + version("2.5.0", sha256="3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760") + version("2.3.0", sha256="f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d") version("2.1.0", sha256="df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54") version("2.0.7", sha256="c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84") version("2.0.6", sha256="b19e1a85d206b56d7df1d5e683df4a7725252a964e3993648dd0fb5a1c157564") @@ -38,10 +41,16 @@ class PyUrllib3(PythonPackage): # Historical variant variant("secure", default=False, when="@:2.0", description="Add SSL/TLS support") + depends_on("python@3.9:", when="@2.3:", type=("build", "run")) depends_on("python@3.8:", when="@2.1:", type=("build", "run")) + depends_on("py-hatchling@1.6:1", when="@2:", type="build") + depends_on("py-hatch-vcs@0.4:0.5", when="@2.5:", type="build") + depends_on("py-hatch-vcs@0.4", when="@2.3:2.4", type="build") + depends_on("py-setuptools-scm@8", when="@2.5:", type="build") with when("+brotli"): + depends_on("py-brotli@1.2:", when="@2.6:", type=("build", "run")) depends_on("py-brotli@1.0.9:", when="@1.26.9:", type=("build", "run")) # Historical dependencies diff --git a/repos/spack_repo/builtin/packages/py_userpath/package.py b/repos/spack_repo/builtin/packages/py_userpath/package.py index 3ae93f8d0c4..640d6c4f824 100644 --- a/repos/spack_repo/builtin/packages/py_userpath/package.py +++ b/repos/spack_repo/builtin/packages/py_userpath/package.py @@ -14,6 +14,7 @@ class PyUserpath(PythonPackage): pypi = "userpath/userpath-1.8.0.tar.gz" license("MIT") + version("1.9.2", sha256="6c52288dab069257cc831846d15d48133522455d4677ee69a9781f11dbefd815") version("1.9.0", sha256="85e3274543174477c62d5701ed43a3ef1051824a9dd776968adc411e58640dd1") version("1.8.0", sha256="04233d2fcfe5cff911c1e4fb7189755640e1524ff87a4b82ab9d6b875fee5787") version("1.7.0", sha256="dcd66c5fa9b1a3c12362f309bbb5bc7992bac8af86d17b4e6b1a4b166a11c43f") diff --git a/repos/spack_repo/builtin/packages/py_uv/package.py b/repos/spack_repo/builtin/packages/py_uv/package.py index 4ee49a6851d..bac7a5a2cbf 100644 --- a/repos/spack_repo/builtin/packages/py_uv/package.py +++ b/repos/spack_repo/builtin/packages/py_uv/package.py @@ -11,20 +11,54 @@ class PyUv(PythonPackage): """An extremely fast Python package and project manager, written in Rust.""" homepage = "https://github.com/astral-sh/uv" - pypi = "uv/0.4.15.tar.gz" + pypi = "uv/uv-0.10.1.tar.gz" - license("APACHE 2.0 or MIT") + license("Apache-2.0 OR MIT") + maintainers("adamjstewart") - version("0.6.8", sha256="45ecd70cfe42132ff84083ecb37fe7a8d2feac3eacd7a5872e7a002fb260940f") - version("0.4.27", sha256="c13eea45257362ecfa2a2b31de9b62fbd0542e211a573562d98ab7c8fc50d8fc") - version("0.4.17", sha256="01564bd760eff885ad61f44173647a569732934d1a4a558839c8088fbf75e53f") - version("0.4.16", sha256="2144995a87b161d063bd4ef8294b1e948677bd90d01f8394d0e3fca037bb847f") - version("0.4.15", sha256="8e36b8e07595fc6216d01e729c81a0b4ff029a93cc2ef987a73d3b650d6d559c") + version("0.11.6", sha256="e3b21b7e80024c95ff339fcd147ac6fc3dd98d3613c9d45d3a1f4fd1057f127b") + version("0.10.1", sha256="c89e7fd708fb3474332d6fc54beb2ea48313ebdc82c6931df92a884fcb636d9d") + with default_args(deprecated=True): + # https://www.cvedetails.com/cve/CVE-2025-13327/ + version( + "0.7.22", sha256="f5cf159907d594e33433f14737d1ee843dc8799edfcf57b5b8c0f282d1117051" + ) + version( + "0.7.15", sha256="c608cd2d89db7482ab40fc6e7de27afc87b20595e145ed81a2a8702e9a0d7e2d" + ) + version("0.7.5", sha256="ae2192283eb645ccab189b1dfd8b13d3264eae631469a903c0e0f2dffce65e3b") + version("0.6.8", sha256="45ecd70cfe42132ff84083ecb37fe7a8d2feac3eacd7a5872e7a002fb260940f") + version( + "0.4.27", sha256="c13eea45257362ecfa2a2b31de9b62fbd0542e211a573562d98ab7c8fc50d8fc" + ) + version( + "0.4.17", sha256="01564bd760eff885ad61f44173647a569732934d1a4a558839c8088fbf75e53f" + ) + version( + "0.4.16", sha256="2144995a87b161d063bd4ef8294b1e948677bd90d01f8394d0e3fca037bb847f" + ) + version( + "0.4.15", sha256="8e36b8e07595fc6216d01e729c81a0b4ff029a93cc2ef987a73d3b650d6d559c" + ) - depends_on("rust", type=("build", "run")) - depends_on("python@3.8:", type=("build", "run")) - depends_on("py-maturin@1:1", type="build") - depends_on("cmake", type="build", when="@:0.6.3") + with default_args(type="build"): + depends_on("gmake") + depends_on("py-maturin@1") + + # from Cargo.toml + depends_on("rust@1.92:", when="@0.10.10:") + depends_on("rust@1.91:", when="@0.9.27:") + depends_on("rust@1.89:", when="@0.9.8:") + depends_on("rust@1.88:", when="@0.8.19:") + depends_on("rust@1.87:", when="@0.8.14:") + depends_on("rust@1.86:", when="@0.7.16:") + depends_on("rust@1.85:", when="@0.7.6:") + depends_on("rust@1.84:", when="@0.6.13:") + depends_on("rust@1.83:", when="@0.5.9:") + depends_on("rust@1.81:") + + # Historical dependencies + depends_on("cmake", when="@:0.6.3") @when("@:0.6.3") def setup_build_environment(self, env: EnvironmentModifications) -> None: 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_uv_dynamic_versioning/package.py b/repos/spack_repo/builtin/packages/py_uv_dynamic_versioning/package.py new file mode 100644 index 00000000000..0c06847d7eb --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_uv_dynamic_versioning/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 PyUvDynamicVersioning(PythonPackage): + """Dynamic versioning based on VCS tags for uv/hatch project.""" + + homepage = "https://github.com/ninoseki/uv-dynamic-versioning/" + pypi = "uv_dynamic_versioning/uv_dynamic_versioning-0.14.0.tar.gz" + + license("MIT") + + version("0.14.0", sha256="574fbc07e87ace45c01d55967ad3b864871257b98ff5b8ac87c261227ac8db5b") + + depends_on("py-hatchling", type="build") + + with default_args(type=("build", "run")): + depends_on("python@3.10:3") + depends_on("py-dunamai@1.26:1") + depends_on("py-hatchling@1.26:1") + depends_on("py-jinja2@3") + depends_on("py-tomlkit@0.13:0") diff --git a/repos/spack_repo/builtin/packages/py_uvicorn/package.py b/repos/spack_repo/builtin/packages/py_uvicorn/package.py index 134428bc8da..8412e5ee50a 100644 --- a/repos/spack_repo/builtin/packages/py_uvicorn/package.py +++ b/repos/spack_repo/builtin/packages/py_uvicorn/package.py @@ -16,6 +16,7 @@ class PyUvicorn(PythonPackage): license("BSD-3-Clause") + version("0.34.2", sha256="0e929828f6186353a80b58ea719861d2629d766293b6d19baf086ba31d4f3328") version("0.27.1", sha256="3d9a267296243532db80c83a959a3400502165ade2c1338dea4e67915fd4745a") version("0.20.0", sha256="a4e12017b940247f836bc90b72e725d7dfd0c8ed1c51eb365f5ba30d9f5127d8") @@ -29,9 +30,12 @@ class PyUvicorn(PythonPackage): with when("+standard"): depends_on("py-colorama@0.4:", when="platform=windows", type=("build", "run")) + depends_on("py-httptools@0.6.3:", when="@0.34.2:", type=("build", "run")) depends_on("py-httptools@0.5:", type=("build", "run")) depends_on("py-python-dotenv@0.13:", type=("build", "run")) depends_on("py-pyyaml@5.1:", type=("build", "run")) + depends_on("py-uvloop@0.15.1:", when="@0.34.2: platform=linux", type=("build", "run")) + depends_on("py-uvloop@0.15.1:", when="@0.34.2: platform=darwin", type=("build", "run")) depends_on("py-uvloop@0.14,0.15.2:", when="platform=linux", type=("build", "run")) depends_on("py-uvloop@0.14,0.15.2:", when="platform=darwin", type=("build", "run")) depends_on("py-watchfiles@0.13:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_uvloop/package.py b/repos/spack_repo/builtin/packages/py_uvloop/package.py index 72ad94dbad2..270819612e1 100644 --- a/repos/spack_repo/builtin/packages/py_uvloop/package.py +++ b/repos/spack_repo/builtin/packages/py_uvloop/package.py @@ -15,6 +15,7 @@ class PyUvloop(PythonPackage): license("Apache-2.0") + version("0.21.0", sha256="3bf12b0fda68447806a7ad847bfa591613177275d35b6724b1ee573faa3704e3") version("0.19.0", sha256="0246f4fd1bf2bf702e06b0d45ee91677ee5c31242f39aab4ea6fe0c51aedd0fd") version("0.18.0", sha256="d5d1135beffe9cd95d0350f19e2716bc38be47d5df296d7cc46e3b7557c0d1ff") version("0.17.0", sha256="0ddf6baf9cf11a1a22c71487f39f15b2cf78eb5bde7e5b45fbb99e8a9d91b9e1") @@ -30,4 +31,6 @@ class PyUvloop(PythonPackage): with default_args(type="build"): depends_on("py-setuptools") depends_on("py-setuptools@60:", when="@0.18:") - depends_on("py-cython@0.29.36:0.29", when="@0.17:") # May have been required for 0.16: + depends_on("py-cython@0.29.36:0.29", when="@0.17:0.20") # May have been required for 0.16: + # https://github.com/MagicStack/uvloop/blob/v0.21.0/setup.py + depends_on("py-cython@3.0", when="@0.21:") diff --git a/repos/spack_repo/builtin/packages/py_uxarray/package.py b/repos/spack_repo/builtin/packages/py_uxarray/package.py index 5c3255627f9..f791825bb3b 100644 --- a/repos/spack_repo/builtin/packages/py_uxarray/package.py +++ b/repos/spack_repo/builtin/packages/py_uxarray/package.py @@ -17,13 +17,24 @@ class PyUxarray(PythonPackage): license("Apache-2.0", checked_by="climbfuji") + maintainers("Chrismarsh") + + version("2026.2.0", sha256="296adbcdcee0eba4dea4af31e4f9b489bb7092983f0fcb14e3f45f73089446a4") + version("2025.12.0", sha256="0be5ad31f916253d6a3167dd42b0f6ccea754443aace90ddf0e36cc16407a6d5") + version("2025.11.0", sha256="a1976851451d3729f86e9fe9a8a899c4bf338b84af8dc265298f5a16a6400bb9") + version("2025.10.0", sha256="b25b8e13c7f041cb4c094ad7de0addd49acd0baae18da2a75a278c3c411ca20d") + version("2025.9.0", sha256="cdbeef657bb75518a9c4a1880ac2e2d446b1c2bdaacf15e6ce45654a2ed47f34") + version("2025.8.0", sha256="2279e3f4c5ca78d6a896441ee98ea29a228c7b24a0571c425d1c689939794c44") + version("2025.6.0", sha256="f354648373c2c253bce80af1339f052b651e4ecff68fff78635c843324f7d228") version("2025.5.1", sha256="420fab51843a26642d876c451badd4fafcbac16f1703f391abed19f6beac1a04") version("2025.5.0", sha256="5a52c938569212522c251fa48acbb967da4ee4f15ad3aeffcbf07f16813634b1") version("2025.4.0", sha256="340ab54254e0e403481ec144d056a2a82450623c7144e6cfd8d11dfae467e92d") version("2024.10.0", sha256="f65a9920ce085af9a38349dc5ece4f9b83bc015dc8cb738d245d343f7816fd59") # Build-time dependencies - depends_on("python@3.9:", type=("build", "run")) + depends_on("python@3.9:", type=("build", "run"), when="@2024") + depends_on("python@3.10:", type=("build", "run"), when="@2025:") + depends_on("py-setuptools@60:", type="build") depends_on("py-setuptools-scm@8:", type="build") @@ -40,7 +51,6 @@ class PyUxarray(PythonPackage): # TypeError: descriptor '__call__' for 'type' objects doesn't apply to a 'property' object # https://github.com/dask/dask/issues/11038 depends_on("py-dask@2024.7.1: +dataframe", type=("build", "run")) - depends_on("py-dask-expr@1.1.9:", type=("build", "run")) depends_on("py-datashader", type=("build", "run")) depends_on("py-geoviews", type=("build", "run")) @@ -49,7 +59,10 @@ class PyUxarray(PythonPackage): depends_on("py-matplotlib-inline", type=("build", "run")) depends_on("py-netcdf4", type=("build", "run")) depends_on("py-numba", type=("build", "run")) - depends_on("py-numpy", type=("build", "run")) + + depends_on("py-numpy@:2.3", type=("build", "run"), when="@:2025") + depends_on("py-numpy@:2.4", type=("build", "run"), when="@2026:") + depends_on("py-pandas", type=("build", "run")) depends_on("py-pyarrow", type=("build", "run")) depends_on("arrow +parquet", type=("build", "run")) @@ -61,8 +74,6 @@ class PyUxarray(PythonPackage): depends_on("py-geopandas", type=("build", "run")) depends_on("py-xarray", type=("build", "run")) depends_on("py-hvplot", type=("build", "run")) - depends_on("py-healpix", type=("build", "run"), when="@2025.4.0:") depends_on("py-polars", type=("build", "run"), when="@2025.4.0:") - depends_on("py-pytest", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_validate_pyproject/package.py b/repos/spack_repo/builtin/packages/py_validate_pyproject/package.py new file mode 100644 index 00000000000..8e67d012652 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_validate_pyproject/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 PyValidatePyproject(PythonPackage): + """Validation library and CLI tool for checking pyproject.toml files + using JSON Schema definitions.""" + + homepage = "https://github.com/abravalheri/validate-pyproject" + pypi = "validate-pyproject/validate_pyproject-0.25.tar.gz" + + license("MPL-2.0", checked_by="abhishek1297") + + version("0.25", sha256="e68c12d1cb0d8ddc269ffc42875a81727ddb7865000aa6d2f77d833b55c53f0b") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools@61.2:", type="build") + depends_on("py-setuptools-scm+toml@7.1:", type="build") + depends_on("py-wheel", type="build") + + # runtime deps + depends_on("py-fastjsonschema@2.16.2:3", type=("build", "run")) + depends_on("py-packaging@24.2:", type=("build", "run")) + depends_on("py-tomli@1.2.1:", when="^python@3.11", type=("build", "run")) + depends_on("py-trove-classifiers@2021.10.20:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_vcrpy/package.py b/repos/spack_repo/builtin/packages/py_vcrpy/package.py index b7c5173da38..95016ba7c08 100644 --- a/repos/spack_repo/builtin/packages/py_vcrpy/package.py +++ b/repos/spack_repo/builtin/packages/py_vcrpy/package.py @@ -15,10 +15,12 @@ class PyVcrpy(PythonPackage): license("MIT") + version("7.0.0", sha256="176391ad0425edde1680c5b20738ea3dc7fb942520a48d2993448050986b3a50") version("5.1.0", sha256="bbf1532f2618a04f11bce2a99af3a9647a32c880957293ff91e0a5f187b6b3d2") version("4.2.1", sha256="7cd3e81a2c492e01c281f180bcc2a86b520b173d2b656cb5d89d99475423e013") version("4.1.1", sha256="57095bf22fc0a2d99ee9674cdafebed0f3ba763018582450706f7d3a74fff599") + depends_on("python@3.9:", when="@7:", type=("build", "run")) depends_on("python@3.8:", when="@5:", type=("build", "run")) depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_vcstool/package.py b/repos/spack_repo/builtin/packages/py_vcstool/package.py index 8387967c9a1..051f52c43a3 100644 --- a/repos/spack_repo/builtin/packages/py_vcstool/package.py +++ b/repos/spack_repo/builtin/packages/py_vcstool/package.py @@ -16,6 +16,7 @@ class PyVcstool(PythonPackage): homepage = "https://github.com/dirk-thomas/vcstool" pypi = "vcstool/vcstool-0.2.15.tar.gz" + version("0.3.0", sha256="04b3a963e15386660f139e5b95d293e43e3cb414e3b13e14ee36f5223032ee2c") version("0.2.15", sha256="b1fce6fcef7b117b245a72dc8658a128635749d01dc7e9d1316490f89f9c2fde") depends_on("py-pyyaml", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_vector/package.py b/repos/spack_repo/builtin/packages/py_vector/package.py index b8e387975c1..b451b0616a3 100644 --- a/repos/spack_repo/builtin/packages/py_vector/package.py +++ b/repos/spack_repo/builtin/packages/py_vector/package.py @@ -12,6 +12,7 @@ class PyVector(PythonPackage): homepage = "https://github.com/scikit-hep/vector" pypi = "vector/vector-0.8.4.tar.gz" + git = "https://github.com/scikit-hep/vector.git" maintainers("wdconinc") @@ -19,6 +20,10 @@ class PyVector(PythonPackage): license("BSD-3-Clause", checked_by="wdconinc") + version("1.8.0", sha256="58f95e9e24463851ca34176a20df2fd2e80b41d78615e5b1f7ae4bf313424ca6") + version("1.7.0", sha256="8b05ea2953322c74c49d2af180f7eac73ad0aa3d4c391cab896175ec4fa3d642") + version("1.6.3", sha256="a85149a62fcaa8a4d95214ca217f3910ea6800d79d65ef1cfb1005720b4f713a") + version("1.5.2", sha256="42a027df219011eebab8144877b6cebcddf3113a713c23fcae2a81464454009a") version("1.5.1", sha256="41ec731fb67ea35af2075eb3a4d6c83ef93b580dade63010821cbc00f1b98961") version("1.5.0", sha256="77e48bd40b7e7d30a17bf79bb6ed0f2d6985d915fcb9bf0879836276a619a0a9") version("1.4.2", sha256="3805848eb9e53e9c60aa24dd5be88c842a6cd3d241e22984bfe12629b08536a9") @@ -38,6 +43,8 @@ class PyVector(PythonPackage): depends_on("python@3.6:", type=("build", "run")) depends_on("python@3.7:", type=("build", "run"), when="@0.10:") depends_on("python@3.8:", type=("build", "run"), when="@1.1:") + depends_on("python@3.9:", type=("build", "run"), when="@1.7:") + depends_on("python@3.10:", type=("build", "run"), when="@1.8:") with when("@0.9:"): depends_on("py-hatchling", type="build") depends_on("py-hatch-vcs", type="build") @@ -46,7 +53,9 @@ class PyVector(PythonPackage): depends_on("py-setuptools-scm@3.4: +toml", type="build") depends_on("py-wheel", type="build") depends_on("py-numpy@1.13.3:", type=("build", "run")) + depends_on("py-numpy@1.19.3:", type=("build", "run"), when="@1.7:") depends_on("py-packaging@19.0:", type=("build", "run")) + depends_on("py-packaging@20:", type=("build", "run"), when="@1.7:") depends_on("py-importlib-metadata@0.22:", type=("build", "run"), when="@:1.0 ^python@:3.7") depends_on("py-typing-extensions", type=("build", "run"), when="@:1.0 ^python@:3.7") diff --git a/repos/spack_repo/builtin/packages/py_vermin/package.py b/repos/spack_repo/builtin/packages/py_vermin/package.py index e65470f0001..a3a601867c5 100644 --- a/repos/spack_repo/builtin/packages/py_vermin/package.py +++ b/repos/spack_repo/builtin/packages/py_vermin/package.py @@ -12,12 +12,14 @@ class PyVermin(PythonPackage): """Concurrently detect the minimum Python versions needed to run code.""" homepage = "https://github.com/netromdk/vermin" - url = "https://github.com/netromdk/vermin/archive/v1.6.0.tar.gz" + url = "https://github.com/netromdk/vermin/archive/v1.8.0.tar.gz" maintainers("netromdk") license("MIT") + version("1.8.0", sha256="a1f3692f8c69b1f7ed1f417bfa2d63407e0213f33f92070762b08d198c0a59e8") + version("1.7.0", sha256="ffffc0c879e1643a12f9dcea782529a21e2c92a81e0f54e4b6b64bffcc2172bd") version("1.6.0", sha256="31200b1e674e064c7473484372db2743f5abbf1409d994880486bca5bcf05bec") version("1.5.2", sha256="e4b6ca6f3e71b0d83a179dc4a4ba50682f60474cf8c948ba9f82e330f219ff4a") version("1.5.1", sha256="2d1c7601d054da9fa5c5eb6c817c714235f9d484b74011f7f86c98f0a25e93ea") diff --git a/repos/spack_repo/builtin/packages/py_vermouth_martinize/package.py b/repos/spack_repo/builtin/packages/py_vermouth_martinize/package.py new file mode 100644 index 00000000000..f5a672e22a8 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_vermouth_martinize/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 PyVermouthMartinize(PythonPackage): + """ + Vermouth (and Martinize2) - build coarse-grained + Martini topologies from atomistic structures. + """ + + homepage = "https://github.com/marrink-lab/vermouth-martinize" + pypi = "vermouth/vermouth-0.14.0.tar.gz" + + license("Apache-2.0") + maintainers("adamwitmer") + + version("0.15.0", sha256="30da3ecadf6cda6068677d1a2de8ea62990d98fedd200ae71a05e89442cd0b24") + version("0.14.0", sha256="9f1c6221ea8b6b6da2a4eff32fe7374b76adced3f2fd85da5cbb1cfcfbf10696") + + # Runtime dependencies + depends_on("py-numpy", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + depends_on("py-networkx@2:", type=("build", "run")) + depends_on("py-setuptools@30.3:", type="build") + depends_on("py-pbr", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_versioneer/package.py b/repos/spack_repo/builtin/packages/py_versioneer/package.py index 109c57e8a67..2d6d4c9233a 100644 --- a/repos/spack_repo/builtin/packages/py_versioneer/package.py +++ b/repos/spack_repo/builtin/packages/py_versioneer/package.py @@ -15,6 +15,8 @@ class PyVersioneer(PythonPackage): pypi = "versioneer/versioneer-0.26.tar.gz" git = "https://github.com/python-versioneer/python-versioneer.git" + tags = ["build-tools"] + maintainers("scemama") license("Unlicense") diff --git a/repos/spack_repo/builtin/packages/py_versioningit/package.py b/repos/spack_repo/builtin/packages/py_versioningit/package.py new file mode 100644 index 00000000000..df2b845535a --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_versioningit/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 PyVersioningit(PythonPackage): + """Versioning It with your Version In Git.""" + + homepage = "https://github.com/jwodder/versioningit" + pypi = "versioningit/versioningit-3.3.0.tar.gz" + + maintainers("LydDeb") + + license("MIT", checked_by="LydDeb") + + version("3.3.0", sha256="b91ad7d73e73d21220e69540f20213f2b729a1f9b35c04e9e137eaf28d2214da") + version("2.3.0", sha256="1d0d71cfa3c2bc4f8dfb3d4a15c144eb8aa6a09d9da98923d410994a2ef826ea") + + depends_on("python@3.8:", type=("build", "run"), when="@3.1.2:") + depends_on("python@3.7:", type=("build", "run")) + + depends_on("py-hatchling", type="build", when="@3:") + depends_on("py-importlib-metadata@3.6:", type=("build", "run"), when="^python@:3.9") + depends_on("py-packaging@17.1:", type=("build", "run")) + depends_on("py-tomli@1.2:2", type=("build", "run"), when="^python@:3.10") + + # Historical dependencies + depends_on("py-setuptools@46.4:", type="build", when="@:2") diff --git a/repos/spack_repo/builtin/packages/py_vesin/package.py b/repos/spack_repo/builtin/packages/py_vesin/package.py new file mode 100644 index 00000000000..debf4fd73d5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_vesin/package.py @@ -0,0 +1,37 @@ +# 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 PyVesin(PythonPackage): + """Computing neighbor lists for atomistic system.""" + + homepage = "https://luthaf.fr/vesin/latest/index.html" + pypi = "vesin/vesin-0.0.0.tar.gz" + + import_modules = ["vesin"] + + maintainers("HaoZeke", "Luthaf", "RMeli") + license("BSD-3-Clause", checked_by="HaoZeke") + + version("0.5.2", sha256="d203c9e1fc749ee5375eb71f2521d2fa511a0f9587252766012695dce4be7c78") + version("0.5.1", sha256="86afd7641319b21187155a8d9585bc134e79536897f28c62b69476627c1020ae") + version("0.5.0", sha256="432322e51b214d6e13b056677424f54b250fb181bd726afb9b2d5b1b6fdbdb84") + version("0.4.2", sha256="46bcfdc4d56490d43a6d8c5882b900b5cf49cff68b6ffb78d442ff85d0104d4f") + version("0.3.7", sha256="52c11ac0ba775c228f06779877cf8641854edab7ea59036093ef5e8447379de0") + + # pyproject.toml + depends_on("python@3.9:", type=("build", "run")) + depends_on("python@3.10:", type=("build", "run"), when="@0.4.2:") + + # pyproject.toml + depends_on("py-setuptools@77:", type="build") + depends_on("py-wheel@0.41:", when="@:0.4", type="build") + depends_on("cmake@3.16:", type="build") + + # pyproject.toml + depends_on("py-numpy", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_vine/package.py b/repos/spack_repo/builtin/packages/py_vine/package.py index b1519a2d45a..ba7ad1489c4 100644 --- a/repos/spack_repo/builtin/packages/py_vine/package.py +++ b/repos/spack_repo/builtin/packages/py_vine/package.py @@ -14,6 +14,7 @@ class PyVine(PythonPackage): license("CC-BY-SA-4.0") + version("5.1.0", sha256="8b62e981d35c41049211cf62a0a1242d8c1ee9bd15bb196ce38aefd6799e61e0") version("5.0.0", sha256="7d3b1624a953da82ef63462013bbd271d3eb75751489f9807598e8f340bd637e") version("1.3.0", sha256="133ee6d7a9016f177ddeaf191c1f58421a1dcc6ee9a42c58b34bed40e1d2cd87") version("1.2.0", sha256="ee4813e915d0e1a54e5c1963fde0855337f82655678540a6bc5996bca4165f76") diff --git a/repos/spack_repo/builtin/packages/py_virtualenv/package.py b/repos/spack_repo/builtin/packages/py_virtualenv/package.py index 8b91931a544..dac7e24561e 100644 --- a/repos/spack_repo/builtin/packages/py_virtualenv/package.py +++ b/repos/spack_repo/builtin/packages/py_virtualenv/package.py @@ -15,6 +15,11 @@ class PyVirtualenv(PythonPackage): git = "https://github.com/pypa/virtualenv.git" 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") version("20.26.5", sha256="ce489cac131aa58f4b25e321d6d186171f78e6cb13fafbf32a840cee67733ff4") version("20.26.4", sha256="c17f4e0f3e6036e9f26700446f85c76ab11df65ff6d8a9cbfad9f71aabfcf23c") version("20.26.3", sha256="4c43a2a236279d9ea36a0d76f98d84bd6ca94ac4e0f4a3b9d46d05e10fea542a") @@ -40,34 +45,48 @@ class PyVirtualenv(PythonPackage): depends_on("c", type="build") # generated - depends_on("py-hatch-vcs@0.3:", when="@20.18:", type="build") - depends_on("py-hatchling@1.17.1:", when="@20.23.1:", type="build") - depends_on("py-hatchling@1.14:", when="@20.22:", type="build") - depends_on("py-hatchling@1.12.2:", when="@20.18:", type="build") - - depends_on("py-distlib@0.3.7:0", when="@20.24.2:", type=("build", "run")) - depends_on("py-distlib@0.3.6:0", when="@20.16.6:20.24.1", type=("build", "run")) - depends_on("py-distlib@0.3.5:0", when="@20.16.3:20.16.5", type=("build", "run")) - depends_on("py-distlib@0.3.1:0", when="@20.0.26:20.16.2", type=("build", "run")) - depends_on("py-distlib@0.3.0:0", when="@20.0.0:20.0.25", type=("build", "run")) - depends_on("py-filelock@3.12.2:3", when="@20.24.2:", type=("build", "run")) - depends_on("py-filelock@3.11:3", when="@20.22:20.23.0", type=("build", "run")) - depends_on("py-filelock@3.4.1:3", when="@20.16.3:20.21", type=("build", "run")) - depends_on("py-filelock@3.2:3", when="@20.9:20.16.2", type=("build", "run")) - depends_on("py-filelock@3.0.0:3", when="@20.0:20.8", type=("build", "run")) - depends_on("py-importlib-metadata@6.6:", when="@20.23.1: ^python@:3.7", type=("build", "run")) - depends_on("py-importlib-metadata@6.4.1:", when="@20.22: ^python@:3.7", type=("build", "run")) - depends_on( - "py-importlib-metadata@4.8.3:", when="@20.16.3: ^python@:3.7", type=("build", "run") - ) - depends_on("py-importlib-metadata@0.12:", when="@20.2.1: ^python@:3.7", type=("build", "run")) - depends_on( - "py-importlib-metadata@0.12:3", when="@20.0.0:20.2.0 ^python@:3.7", type=("build", "run") - ) - depends_on("py-platformdirs@3.9.1:3", when="@20.24.1:", type=("build", "run")) - depends_on("py-platformdirs@3.2:3", when="@20.22:20.23.0", type=("build", "run")) - depends_on("py-platformdirs@2.4:2", when="@20.16.3:20.21", type=("build", "run")) - depends_on("py-platformdirs@2:2", when="@20.5:20.16.2", type=("build", "run")) + with default_args(type="build"): + depends_on("py-hatch-vcs@0.4:", when="@20.39.1:") + depends_on("py-hatch-vcs@0.3:", when="@20.18:") + depends_on("py-hatchling@1.27:", when="@20.39.1:") + depends_on("py-hatchling@1.17.1:", when="@20.23.1:") + depends_on("py-hatchling@1.14:", when="@20.22:") + depends_on("py-hatchling@1.12.2:", when="@20.18:") + + with default_args(type=("build", "run")): + depends_on("python@3.8:", when="@20.27:") + depends_on("python@3.7:", when="@20.18:") + + depends_on("py-distlib@0.3.7:0", when="@20.24.2:") + depends_on("py-distlib@0.3.6:0", when="@20.16.6:20.24.1") + depends_on("py-distlib@0.3.5:0", when="@20.16.3:20.16.5") + depends_on("py-distlib@0.3.1:0", when="@20.0.26:20.16.2") + depends_on("py-distlib@0.3.0:0", when="@20.0.0:20.0.25") + + depends_on("py-filelock@3.24.2:3", when="@20.38: ^python@3.10:") + depends_on("py-filelock@3.16.1:3.19.1", when="@20.38: ^python@:3.9") + depends_on("py-filelock@3.12.2:3", when="@20.24.2:20.35.4") + depends_on("py-filelock@3.11:3", when="@20.22:20.23.0") + depends_on("py-filelock@3.4.1:3", when="@20.16.3:20.21") + depends_on("py-filelock@3.2:3", when="@20.9:20.16.2") + depends_on("py-filelock@3.0.0:3", when="@20.0:20.8") + + depends_on("py-importlib-metadata@6.6:", when="@20.23.1: ^python@:3.7") + depends_on("py-importlib-metadata@6.4.1:", when="@20.22: ^python@:3.7") + depends_on("py-importlib-metadata@4.8.3:", when="@20.16.3: ^python@:3.7") + depends_on("py-importlib-metadata@0.12:", when="@20.2.1: ^python@:3.7") + depends_on("py-importlib-metadata@0.12:3", when="@20.0.0:20.2.0 ^python@:3.7") + + depends_on("py-platformdirs@3.9.1:4", when="@20.24.7:") + depends_on("py-platformdirs@3.9.1:3", when="@20.24.1:20.24.6") + depends_on("py-platformdirs@3.2:3", when="@20.22:20.23.0") + 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") # Historical dependencies with when("@:20.17"): diff --git a/repos/spack_repo/builtin/packages/py_visdom/package.py b/repos/spack_repo/builtin/packages/py_visdom/package.py index 8de073c2463..76f15a91ef1 100644 --- a/repos/spack_repo/builtin/packages/py_visdom/package.py +++ b/repos/spack_repo/builtin/packages/py_visdom/package.py @@ -17,6 +17,7 @@ class PyVisdom(PythonPackage): license("Apache-2.0") + version("0.2.4", sha256="84a911d3c8814a056d54812b381bd938cb44bcfc503a85fe0f701502bb720574") version("0.1.8.9", sha256="c73ad23723c24a48156899f78dd76bd4538eba3edf9120b6c65a9528fa677126") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_vispy/package.py b/repos/spack_repo/builtin/packages/py_vispy/package.py new file mode 100644 index 00000000000..9f18656b9e2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_vispy/package.py @@ -0,0 +1,40 @@ +# 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 PyVispy(PythonPackage): + """VisPy is a high-performance interactive 2D/3D data visualization + library. VisPy leverages the computational power of modern Graphics + Processing Units (GPUs) through the OpenGL library to display very large + datasets.""" + + homepage = "https://www.vispy.org" + pypi = "vispy/vispy-0.15.2.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("0.16.1", sha256="b93c32c85d08c06ae8f5e3177f9cfd6c495e1745f2120b777830adee5d9c3648") + version("0.15.2", sha256="d52d10c0697f48990555cea2a2bad3f9f5a772391856fda364ea4bbc69fd075c") + version("0.12.2", sha256="141c2ddccc1158555bc89f09010c4b1d754487e816357333f31e795a7146a024") + + depends_on("py-setuptools@69.4.0:", when="@0.15:", type="build") + depends_on("py-setuptools@30.3.0:", type="build") + depends_on("py-setuptools-scm@8.1: +toml", when="@0.15:", type="build") + depends_on("py-setuptools-scm", type="build") + + depends_on("py-numpy@2:", when="@0.14.3:", type=("build", "run")) + depends_on( + "py-numpy@1", when="@:0.14.2", type=("build", "run") + ) # https://github.com/numpy/numpy/issues/26191 + depends_on("py-cython@3:", when="@0.15:", type=("build", "run")) + depends_on("py-cython@0.29.2:", type=("build", "run")) + depends_on("py-freetype-py", type=("build", "run")) + depends_on("py-hsluv", type=("build", "run")) + depends_on("py-kiwisolver", type=("build", "run")) + depends_on("py-packaging", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_vl_convert_python/package.py b/repos/spack_repo/builtin/packages/py_vl_convert_python/package.py index 74536346724..d0b016328c0 100644 --- a/repos/spack_repo/builtin/packages/py_vl_convert_python/package.py +++ b/repos/spack_repo/builtin/packages/py_vl_convert_python/package.py @@ -13,23 +13,12 @@ class PyVlConvertPython(PythonPackage): homepage = "https://github.com/vega/vl-convert" pypi = "vl_convert_python/vl_convert_python-1.4.0.tar.gz" + version("1.9.0", sha256="bbf4eb9ac9aa9f32f6fdb689391c914dff311846365658ac70bc5b30f30d57cd") version("1.4.0", sha256="264d6f2338c7d3474e60c6907cca016b880b0c1c9be302bb84abc6690188a7e9") - version( - "1.3.0", - sha256="de1462151dfbba7b2a17881dac1d2269662012c252f1e9d1537a4daed5e36067", - deprecated=True, - ) - version( - "0.13.1", - sha256="d70a608257dd6b5b782d96cccebfe7289992e522e47a8bebb7d928253ca8b396", - deprecated=True, - ) - - depends_on("python@3.7:", type=("build", "run")) - # TODO: This package currently requires internet access to install. depends_on("py-maturin@1.1:1", type="build") + depends_on("rust", type="build") depends_on("cmake", type="build") # some rust dependencies need this depends_on("protobuf", type="build") # rust dependency prost need this diff --git a/repos/spack_repo/builtin/packages/py_vsc_base/package.py b/repos/spack_repo/builtin/packages/py_vsc_base/package.py index 980de0f120a..df21736d7e5 100644 --- a/repos/spack_repo/builtin/packages/py_vsc_base/package.py +++ b/repos/spack_repo/builtin/packages/py_vsc_base/package.py @@ -15,6 +15,7 @@ class PyVscBase(PythonPackage): license("LGPL-2.0-only") + version("3.6.1", sha256="8e6a14431d3ebd19c4746a77398510fa8bdd985db5d192cc50785995b72e656e") version("2.5.8", sha256="7fcd300f842edf4baade7d0b7a3b462ca7dfb2a411a7532694a90127c6646ee2") depends_on("py-setuptools", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_wadler_lindig/package.py b/repos/spack_repo/builtin/packages/py_wadler_lindig/package.py index 2ce08240361..862c3adfaaa 100644 --- a/repos/spack_repo/builtin/packages/py_wadler_lindig/package.py +++ b/repos/spack_repo/builtin/packages/py_wadler_lindig/package.py @@ -15,8 +15,6 @@ class PyWadlerLindig(PythonPackage): version("0.1.3", sha256="476fb7015135f714cef8f8eac7c44b164c8b993345e651a9b6f25b7b112440c9") - maintainers("viperML") - license("Apache-2.0", checked_by="viperML") depends_on("py-hatchling", type="build") diff --git a/repos/spack_repo/builtin/packages/py_waitress/package.py b/repos/spack_repo/builtin/packages/py_waitress/package.py index 8d92c9e5c2d..b5adfc2ffe7 100644 --- a/repos/spack_repo/builtin/packages/py_waitress/package.py +++ b/repos/spack_repo/builtin/packages/py_waitress/package.py @@ -16,10 +16,5 @@ class PyWaitress(PythonPackage): license("ZPL-2.1") version("3.0.1", sha256="ef0c1f020d9f12a515c4ec65c07920a702613afcad1dbfdc3bcec256b6c072b3") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2024-49769 - version("2.1.2", sha256="780a4082c5fbc0fde6a2fcfe5e26e6efc1e8f425730863c04085769781f51eba") - - depends_on("python@3.8:", type=("build", "run"), when="@3:") depends_on("py-setuptools@41:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_wandb/package.py b/repos/spack_repo/builtin/packages/py_wandb/package.py index 3cccda1400a..f48b1d54564 100644 --- a/repos/spack_repo/builtin/packages/py_wandb/package.py +++ b/repos/spack_repo/builtin/packages/py_wandb/package.py @@ -8,8 +8,7 @@ class PyWandb(PythonPackage): - """A tool for visualizing and tracking your machine - learning experiments.""" + """A tool for visualizing and tracking your machine learning experiments.""" homepage = "https://github.com/wandb/wandb" pypi = "wandb/wandb-0.13.9.tar.gz" @@ -18,27 +17,79 @@ class PyWandb(PythonPackage): license("MIT") + version("0.21.0", sha256="473e01ef200b59d780416062991effa7349a34e51425d4be5ff482af2dc39e02") version("0.16.6", sha256="86f491e3012d715e0d7d7421a4d6de41abef643b7403046261f962f3e512fe1c") version("0.13.9", sha256="0a17365ce1f18306ce7a7f16b943094fac7284bb85f4e52c0685705602f9e307") + depends_on("rust", type="build") + depends_on("go@1.24.4:", type="build", when="@0.21.0:") + depends_on("go@1.22.1:", type="build", when="@0.16.6:") + depends_on("py-hatchling", type=("build", "run"), when="@0.17:") + depends_on("py-setuptools@61:", type=("build", "run"), when="@0.16.6:") depends_on("py-setuptools", type=("build", "run")) + depends_on("python@3.8:", type=("build", "run"), when="@0.19:") + depends_on("python@3.7:", type=("build", "run"), when="@0.16:") + depends_on("python@3.6:", type=("build", "run"), when="@0.13:") - depends_on("py-setproctitle", type=("build", "run")) - depends_on("py-appdirs@1.4.3:", type=("build", "run")) - depends_on("py-protobuf@3.19:4", type=("build", "run")) - conflicts("^py-protobuf@4.21.0") + depends_on("py-pyyaml", type=("build", "run")) + + depends_on( + "py-protobuf@3.19:6", type=("build", "run"), when="@0.19.10: platform=linux ^python@3.10:" + ) + depends_on( + "py-protobuf@3.15:6", type=("build", "run"), when="@0.19.10: platform=linux ^python@3.9" + ) + depends_on( + "py-protobuf@3.12:6", type=("build", "run"), when="@0.19.10: platform=linux ^python@:3.8" + ) + depends_on( + "py-protobuf@3.19:5", + type=("build", "run"), + when="@0.17.1:0.19.9 platform=linux ^python@3.10:", + ) + depends_on( + "py-protobuf@3.15:5", + type=("build", "run"), + when="@0.17.1:0.19.9 platform=linux ^python@3.9", + ) + depends_on( + "py-protobuf@3.12:5", + type=("build", "run"), + when="@0.17.1:0.19.9 platform=linux ^python@:3.8", + ) + depends_on( + "py-protobuf@3.19:4", type=("build", "run"), when="@:0.17.0 platform=linux ^python@3.10:" + ) + depends_on( + "py-protobuf@3.15:4", type=("build", "run"), when="@:0.17.0 platform=linux ^python@3.9" + ) + depends_on( + "py-protobuf@3.12:4", type=("build", "run"), when="@:0.17.0 platform=linux ^python@:3.8" + ) + conflicts("^py-protobuf@4.21.0,5.28.0") + + depends_on("py-typing-extensions@4.8:4", type=("build", "run"), when="@0.20:") + depends_on("py-typing-extensions@4.4:4", type=("build", "run"), when="@0.19.9:") + depends_on("py-typing-extensions@4.4:4", type=("build", "run"), when="@0.18.4: ^python@:3.11") depends_on("py-typing-extensions", type=("build", "run"), when="^python@:3.9") - depends_on("py-pyyaml", type=("build", "run")) - depends_on("py-click@7:", type=("build", "run"), when="@0.13") + depends_on("py-pydantic@:2", type=("build", "run"), when="@0.19.9:") + depends_on("py-pydantic@2.6:2", type=("build", "run"), when="@0.19.0:0.19.8") + depends_on("py-platformdirs", type=("build", "run"), when="@0.17:") depends_on("py-click@7.1:", type=("build", "run"), when="@0.15.5:") + depends_on("py-click@7:", type=("build", "run"), when="@0.13") conflicts("^py-click@8.0.0") depends_on("py-gitpython@1:", type=("build", "run")) conflicts("^py-gitpython@3.1.29") depends_on("py-requests@2", type=("build", "run")) - depends_on("py-psutil@5:", type=("build", "run")) - depends_on("py-sentry-sdk@1.0.0:", type=("build", "run")) - depends_on("py-dockerpy-creds@0.4.0:", type=("build", "run")) + depends_on("py-sentry-sdk@2:", type=("build", "run"), when="@0.18.4:") + depends_on("py-sentry-sdk@1:", type=("build", "run")) + depends_on("py-packaging", type=("build", "run"), when="@0.20:") + depends_on("py-eval-type-backport", type=("build", "run"), when="@0.19: ^python@:3.9") # Historical dependencies + depends_on("py-setproctitle", type=("build", "run"), when="@:0.20") + depends_on("py-psutil@5:", type=("build", "run"), when="@:0.19") + depends_on("py-dockerpy-creds@0.4:", type=("build", "run"), when="@:0.19") + depends_on("py-appdirs@1.4.3:", type=("build", "run"), when="@:0.16") depends_on("py-pathtools", type=("build", "run"), when="@:0.15") diff --git a/repos/spack_repo/builtin/packages/py_warcio/package.py b/repos/spack_repo/builtin/packages/py_warcio/package.py new file mode 100644 index 00000000000..c4843841964 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_warcio/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 PyWarcio(PythonPackage): + """Streaming WARC/ARC library for fast web archive IO.""" + + homepage = "https://github.com/webrecorder/warcio" + pypi = "warcio/warcio-1.7.5.tar.gz" + + version("1.7.5", sha256="7247b57e68074cfd9433cb6dc226f8567d6777052abec2d3c78346cffa4d19b9") + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-six", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_watchfiles/package.py b/repos/spack_repo/builtin/packages/py_watchfiles/package.py index d928bccba2c..22bc4de6226 100644 --- a/repos/spack_repo/builtin/packages/py_watchfiles/package.py +++ b/repos/spack_repo/builtin/packages/py_watchfiles/package.py @@ -13,13 +13,13 @@ class PyWatchfiles(PythonPackage): homepage = "https://github.com/samuelcolvin/watchfiles" pypi = "watchfiles/watchfiles-0.18.1.tar.gz" - maintainers("viperML") - license("MIT") + version("1.1.1", sha256="a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2") version("1.0.5", sha256="b7529b5dcc114679d43827d8c35a07c493ad6f083633d573d81c660abc5979e9") version("0.18.1", sha256="4ec0134a5e31797eb3c6c624dbe9354f2a8ee9c720e0b46fc5b7bab472b7c6d4") depends_on("py-maturin@0.13", type="build", when="@0.18.1") depends_on("py-maturin@0.14:2", type="build", when="@1:") + depends_on("rust", type="build") depends_on("py-anyio@3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_waterdynamics/package.py b/repos/spack_repo/builtin/packages/py_waterdynamics/package.py new file mode 100644 index 00000000000..1e03d5fcdfc --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_waterdynamics/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 PyWaterdynamics(PythonPackage): + """ + Analysis of water dynamics in molecular dynamics trajectories and water + interactions with other molecules. + """ + + homepage = "https://github.com/MDAnalysis/waterdynamics" + pypi = "waterdynamics/waterdynamics-1.2.0.tar.gz" + + maintainers("LydDeb") + + license("LGPL-2.1-only", checked_by="LydDeb") + + version("1.2.0", sha256="ab87ca22c46db71cf72b2c5534fbd062fd853d999cee9c10587932217cd40c96") + + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-setuptools@40.9.0:", type="build") + depends_on("py-versioningit", type="build") + depends_on("py-mdanalysis@2.1.0:", type=("build", "run")) + depends_on("py-numpy@1.22.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_waves/package.py b/repos/spack_repo/builtin/packages/py_waves/package.py index d6f6e2b6763..533ec0e67c4 100644 --- a/repos/spack_repo/builtin/packages/py_waves/package.py +++ b/repos/spack_repo/builtin/packages/py_waves/package.py @@ -23,6 +23,8 @@ class PyWaves(PythonPackage): license("BSD-3-Clause", checked_by="kbrindley") version("main", branch="main", get_full_repo=True) + version("1.0.1", sha256="85a48c138d4c0488c57e299c828ec221b25f6a933f31a623586ff13e418f5b15") + version("1.0.0", sha256="438beeb7326b9dda4d9b98fde6f483003cb0edc1a7f730dadda5733cf8690bc2") version("0.13.8", sha256="bb4febd3c7f75685525f93df408272e0ef38a8b596b111a84c4974bec0498aaf") version("0.13.4", sha256="e2dda546d003b32d7e0b9048dc0a660fb1b5594653e7f50021af108aaf06a820") version("0.13.1", sha256="3d776ebd07d05e7de8704e4491864336cab4ee23c284106056a805bf7561435a") @@ -90,7 +92,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: def install(self, spec, prefix): if self.spec.satisfies("@0.12.10:"): with working_dir(self.build_directory): - scons = which("scons") + scons = which("scons", required=True) scons("install", f"--prefix={self.prefix}") else: with working_dir(self.build_directory): @@ -116,14 +118,14 @@ def install(self, spec, prefix): # installation logic to be a ``@run_after("install")`` function. f"dist/waves-{self.version}.tar.gz", ) - scons = which("scons") + scons = which("scons", required=True) scons("html", "man") site_packages_directory = list( pathlib.Path(self.prefix).rglob("**/site-packages") )[0] python_package_documentation = python.copy() - python_package_documentation.add_default_env("SP_DIR", site_packages_directory), + python_package_documentation.add_default_env("SP_DIR", site_packages_directory) python_package_documentation("package_documentation.py") @run_after("install") @@ -142,5 +144,5 @@ def install_test(self): custom_arguments.insert(0, "--ignore=_tests/test_salib_sampler.py") with working_dir(installed_package): - pytest = which("pytest") + pytest = which("pytest", required=True) pytest(*custom_arguments) diff --git a/repos/spack_repo/builtin/packages/py_wcsaxes/package.py b/repos/spack_repo/builtin/packages/py_wcsaxes/package.py index 9ad81bb2660..723a350d069 100644 --- a/repos/spack_repo/builtin/packages/py_wcsaxes/package.py +++ b/repos/spack_repo/builtin/packages/py_wcsaxes/package.py @@ -16,6 +16,7 @@ class PyWcsaxes(PythonPackage): license("BSD-3-Clause") + version("0.9", sha256="be1a90457c93d18e24da1983c9cd8905260153b1abf0f7a38c0ce3c5fe8905ef") version("0.8", sha256="9c6addc1ec04cc99617850354b2c03dbd4099d2e43b45a81f8bc3069de9c8e83") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_wcwidth/package.py b/repos/spack_repo/builtin/packages/py_wcwidth/package.py index 926ef71f855..296e8cbd4be 100644 --- a/repos/spack_repo/builtin/packages/py_wcwidth/package.py +++ b/repos/spack_repo/builtin/packages/py_wcwidth/package.py @@ -15,8 +15,14 @@ class PyWcwidth(PythonPackage): license("MIT") + version("0.6.0", sha256="cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159") + version("0.2.14", sha256="4d478375d31bc5395a3c55c40ccdf3354688364cd61c4f6adacaa9215d0b3605") version("0.2.7", sha256="1b6d30a98ddd5ce9bbdb33658191fd2423fc9da203fe3ef1855407dcb7ee4e26") version("0.2.5", sha256="c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83") version("0.1.7", sha256="3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e") - depends_on("py-setuptools", type="build") + with default_args(type="build"): + depends_on("py-hatchling", when="@0.3:") + + # Historical dependencies + depends_on("py-setuptools", when="@:0.2") diff --git a/repos/spack_repo/builtin/packages/py_webcolors/package.py b/repos/spack_repo/builtin/packages/py_webcolors/package.py index 5e6544cca13..a8c8ff21c81 100644 --- a/repos/spack_repo/builtin/packages/py_webcolors/package.py +++ b/repos/spack_repo/builtin/packages/py_webcolors/package.py @@ -10,11 +10,13 @@ class PyWebcolors(PythonPackage): """Working with color names and values formats defined by HTML and CSS.""" - homepage = "https://pypi.org/project/webcolors/" + homepage = "https://webcolors.readthedocs.io/" pypi = "webcolors/webcolors-1.11.1.tar.gz" + git = "https://github.com/ubernostrum/webcolors.git" license("BSD-3-Clause", checked_by="wdconinc") + version("25.10.0", sha256="62abae86504f66d0f6364c2a8520de4a0c47b80c03fc3a5f1815fedbef7c19bf") version("24.11.1", sha256="ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6") version("24.8.0", sha256="08b07af286a01bcd30d583a7acadf629583d1f79bfef27dd2c2c5c263817277d") version("24.6.0", sha256="1d160d1de46b3e81e58d0a280d0c78b467dc80f47294b91b1ad8029d2cedb55b") @@ -22,9 +24,14 @@ class PyWebcolors(PythonPackage): version("1.12", sha256="16d043d3a08fd6a1b1b7e3e9e62640d09790dce80d2bdd4792a175b35fe794a9") version("1.11.1", sha256="76f360636957d1c976db7466bc71dcb713bb95ac8911944dffc55c01cb516de6") - depends_on("python@3.5:", type=("build", "run")) - depends_on("python@3.7:", type=("build", "run"), when="@1.12:") - depends_on("python@3.8:", type=("build", "run"), when="@24.6:") - depends_on("python@3.9:", type=("build", "run"), when="@24.11:") - depends_on("py-setuptools@61:", type=("build"), when="@:24.10") - depends_on("py-pdm-backend", type=("build"), when="@24.11:") + with default_args(type="build"): + depends_on("py-pdm-backend", when="@24.11:") + + # Historical dependencies + depends_on("py-setuptools@61:", when="@:24.10") + + with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@25:") + depends_on("python@3.9:", when="@24.11:") + depends_on("python@3.8:", when="@24.6:") + depends_on("python@3.7:", when="@1.12:") diff --git a/repos/spack_repo/builtin/packages/py_webdataset/package.py b/repos/spack_repo/builtin/packages/py_webdataset/package.py index 31641b137c8..d4d0511c4fa 100644 --- a/repos/spack_repo/builtin/packages/py_webdataset/package.py +++ b/repos/spack_repo/builtin/packages/py_webdataset/package.py @@ -15,8 +15,7 @@ class PyWebdataset(PythonPackage): license("BSD-3-Clause") maintainers("adamjstewart") - version("0.2.111", sha256="5b2835386a25601307a9ded9bcc0dbd1e81a9eee017784152528e77dd8619511") - version("0.1.62", sha256="78b6c7810116d6875fa1ed8eb2dea29a54b86fde014cc2069f4c08fc3530ceb5") + version("1.0.2", sha256="7f0498be827cfa46cc5430a58768a24e2c6a410676a61be1838f53d61afdaab4") depends_on("py-setuptools@45:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_webdavclient3/package.py b/repos/spack_repo/builtin/packages/py_webdavclient3/package.py new file mode 100644 index 00000000000..b118b28f4ee --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_webdavclient3/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 PyWebdavclient3(PythonPackage): + """WebDAV client, based on original package + https://github.com/designerror/webdav-client-python + but uses requests instead of PyCURL.""" + + homepage = "https://github.com/ezhov-evgeny/webdav-client-python-3" + pypi = "webdavclient3/webdavclient3-3.14.7.tar.gz" + git = "https://github.com/ezhov-evgeny/webdav-client-python-3.git" + + maintainers("wdconinc") + + license("MIT", checked_by="wdconinc") + + version("3.14.7", sha256="6c04252b579bc015cec78081480c63eadf1030f382768248777c6203f059b3f5") + + with default_args(type="build"): + depends_on("py-setuptools") + depends_on("py-wheel") + + with default_args(type=("build", "run")): + depends_on("py-requests") + depends_on("py-lxml") + depends_on("py-python-dateutil") diff --git a/repos/spack_repo/builtin/packages/py_websockets/package.py b/repos/spack_repo/builtin/packages/py_websockets/package.py index 83c6022649e..574760810a9 100644 --- a/repos/spack_repo/builtin/packages/py_websockets/package.py +++ b/repos/spack_repo/builtin/packages/py_websockets/package.py @@ -17,11 +17,12 @@ class PyWebsockets(PythonPackage): license("BSD-3-Clause") + version("15.0.1", sha256="82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee") version("10.4", sha256="eef610b23933c54d5d921c92578ae5f89813438fded840c2e9809d378dc765d3") version("10.3", sha256="fc06cc8073c8e87072138ba1e431300e2d408f054b27047d047b549455066ff4") version("10.1", sha256="181d2b25de5a437b36aefedaf006ecb6fa3aa1328ec0236cdde15f32f9d3ff6d") version("8.1", sha256="5c65d2da8c6bce0fca2528f69f44b2f977e06954c8512a952222cea50dad430f") - depends_on("c", type="build") # generated - + depends_on("python", type=("build", "link", "run")) + depends_on("c", type="build") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_werkzeug/package.py b/repos/spack_repo/builtin/packages/py_werkzeug/package.py index ff5168cce07..507b457acb9 100644 --- a/repos/spack_repo/builtin/packages/py_werkzeug/package.py +++ b/repos/spack_repo/builtin/packages/py_werkzeug/package.py @@ -19,59 +19,10 @@ class PyWerkzeug(PythonPackage): version("3.1.3", sha256="60723ce945c19328679790e3282cc758aa4a6040e4bb330f53d30fa546d44746") version("3.0.4", sha256="34f2371506b250df4d4f84bfe7b0921e4762525762bbd936614909fe25cd7306") version("3.0.0", sha256="3ffff4dcc32db52ef3cc94dff3000a3c2846890f3a5a51800a27b909c5e770f0") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2023-46136 - version("2.3.7", sha256="2b8c0e447b4b9dbcc85dd97b6eeb4dcbaf6c8b6c3be0bd654e25553e0a2157d8") - version("2.3.4", sha256="1d5a58e0377d1fe39d061a5de4469e414e78ccb1e1e59c0f5ad6fa1c36c52b76") - version("2.2.2", sha256="7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f") - version("2.0.2", sha256="aa2bb6fc8dee8d6c504c0ac1e7f5f7dc5810a9903e793b6f715a9f015bdadb9a") - version( - "0.16.0", sha256="7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7" - ) - version( - "0.15.6", sha256="0a24d43be6a7dce81bae05292356176d6c46d63e42a0dd3f9504b210a9cfaa43" - ) - version( - "0.15.5", sha256="a13b74dd3c45f758d4ebdb224be8f1ab8ef58b3c0ffc1783a8c7d9f4f50227e6" - ) - version( - "0.15.4", sha256="a0b915f0815982fb2a09161cb8f31708052d0951c3ba433ccc5e1aa276507ca6" - ) - version( - "0.15.3", sha256="cfd1281b1748288e59762c0e174d64d8bcb2b70e7c57bc4a1203c8825af24ac3" - ) - version( - "0.15.2", sha256="0a73e8bb2ff2feecfc5d56e6f458f5b99290ef34f565ffb2665801ff7de6af7a" - ) - version( - "0.15.1", sha256="ca5c2dcd367d6c0df87185b9082929d255358f5391923269335782b213d52655" - ) - version( - "0.15.0", sha256="590abe38f8be026d78457fe3b5200895b3543e58ac3fc1dd792c6333ea11af64" - ) - version( - "0.12.2", sha256="903a7b87b74635244548b30d30db4c8947fe64c5198f58899ddcd3a13c23bb26" - ) - version( - "0.11.15", sha256="455d7798ac263266dbd38d4841f7534dd35ca9c3da4a8df303f8488f38f3bcc0" - ) - version( - "0.11.11", sha256="e72c46bc14405cba7a26bd2ce28df734471bc9016bc8b4cb69466c2c14c2f7e5" - ) - depends_on("python@3.9:", when="@3.1:", type=("build", "run")) - depends_on("python@3.8:", when="@2.3:", type=("build", "run")) - depends_on("python@:3.9", when="@:0.12", type=("build", "run")) - depends_on("py-flit-core@:3", when="@2.3.7:", type="build") - depends_on("py-markupsafe@2.1.1:", when="@2.2:", type=("build", "run")) - - # Historical dependencies - depends_on("py-setuptools", when="@:2.3.6", type="build") + depends_on("py-flit-core@:3", type="build") + depends_on("py-markupsafe@2.1.1:", type=("build", "run")) def url_for_version(self, version): - url = "https://files.pythonhosted.org/packages/source/w/werkzeug/{0}-{1}.tar.gz" - if version >= Version("2.3.7"): - letter = "werkzeug" - else: - letter = "Werkzeug" - return url.format(letter, version) + url = "https://files.pythonhosted.org/packages/source/w/werkzeug/werkzeug-{}.tar.gz" + return url.format(version) diff --git a/repos/spack_repo/builtin/packages/py_wesanderson/package.py b/repos/spack_repo/builtin/packages/py_wesanderson/package.py index 0ec7895ade9..8423e32c98f 100644 --- a/repos/spack_repo/builtin/packages/py_wesanderson/package.py +++ b/repos/spack_repo/builtin/packages/py_wesanderson/package.py @@ -13,6 +13,7 @@ class PyWesanderson(PythonPackage): homepage = "https://pypi.org/project/wesanderson" pypi = "wesanderson/wesanderson-0.0.3.tar.gz" + version("0.0.4", sha256="5488539b772d6b355c4cc8877f7f3c503f01cc2624181e98567586390f609bfd") version("0.0.3", sha256="76f5df93b51babcb6e4ca47776846aeefa0234054fee76cbbbae74f9658aabfa") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_wheel/package.py b/repos/spack_repo/builtin/packages/py_wheel/package.py index 88324f23446..9af01b9d73a 100644 --- a/repos/spack_repo/builtin/packages/py_wheel/package.py +++ b/repos/spack_repo/builtin/packages/py_wheel/package.py @@ -15,8 +15,12 @@ class PyWheel(Package, PythonExtension): url = "https://files.pythonhosted.org/packages/py3/w/wheel/wheel-0.45.1-py3-none-any.whl" list_url = "https://pypi.org/simple/wheel/" + license("MIT") + tags = ["build-tools"] + version("0.47.0", sha256="212281cab4dff978f6cedd499cd893e1f620791ca6ff7107cf270781e587eced") + version("0.46.3", sha256="4b399d56c9d9338230118d705d9737a2a468ccca63d5e813e2a4fc7815d8bc4d") version("0.45.1", sha256="708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248") version("0.45.0", sha256="52f0baa5e6522155090a09c6bd95718cc46956d1b51d537ea5454249edb671c7") version("0.44.0", sha256="2376a90c98cc337d18623527a97c31797bd02bad0033d41547043a1cbfbe448f") @@ -38,8 +42,12 @@ class PyWheel(Package, PythonExtension): extends("python") depends_on("python +ctypes", type=("build", "run")) + depends_on("python@3.9:", when="@0.46.0:", type=("build", "run")) depends_on("python@3.8:", when="@0.43.0:", type=("build", "run")) depends_on("python@3.7:", when="@0.38:", type=("build", "run")) + + depends_on("py-packaging@24.0:", when="@0.46.3:", type=("build", "run")) + depends_on("py-pip", type="build") def url_for_version(self, version): 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_whichcraft/package.py b/repos/spack_repo/builtin/packages/py_whichcraft/package.py index 618096b814e..4afe3d58d68 100644 --- a/repos/spack_repo/builtin/packages/py_whichcraft/package.py +++ b/repos/spack_repo/builtin/packages/py_whichcraft/package.py @@ -15,6 +15,7 @@ class PyWhichcraft(PythonPackage): license("BSD-3-Clause") + version("0.6.1", sha256="bfa077578261e8bce72ebd44025a2ac196f943123e551589bd5f1c25af9f0085") version("0.4.1", sha256="66875022b3b9da8ddf7ab236c15670a782094550d07daeb51ceba4bc61b6b4aa") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_widgetsnbextension/package.py b/repos/spack_repo/builtin/packages/py_widgetsnbextension/package.py index 4bb2975d9a7..f5e26cad988 100644 --- a/repos/spack_repo/builtin/packages/py_widgetsnbextension/package.py +++ b/repos/spack_repo/builtin/packages/py_widgetsnbextension/package.py @@ -14,6 +14,7 @@ class PyWidgetsnbextension(PythonPackage): license("BSD-3-Clause") + version("4.0.15", sha256="de8610639996f1567952d763a5a41af8af37f2575a41f9852a38f947eb82a3b9") version("4.0.3", sha256="34824864c062b0b3030ad78210db5ae6a3960dfb61d5b27562d6631774de0286") version("3.6.0", sha256="e84a7a9fcb9baf3d57106e184a7389a8f8eb935bf741a5eb9d60aa18cc029a80") version("3.5.1", sha256="079f87d87270bce047512400efd70238820751a11d2d8cb137a5a5bdbaf255c7") diff --git a/repos/spack_repo/builtin/packages/py_wigners/package.py b/repos/spack_repo/builtin/packages/py_wigners/package.py new file mode 100644 index 00000000000..48f3c422cf9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_wigners/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 PyWigners(PythonPackage): + """Computes Wigner 3j coefficients and Clebsch-Gordan coefficients""" + + homepage = "https://github.com/Luthaf/wigners" + pypi = "wigners/wigners-0.3.1.tar.gz" + + maintainers("luthaf", "RMeli", "HaoZeke") + + license("Apache-2.0 OR MIT", checked_by="RMeli") + + version("0.3.1", sha256="90882e69208a830140a244645e39d4c3a84b8db1a4feb926ba29d0cc374ac149") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + # pyproject.toml + depends_on("py-setuptools@77:", type="build") + depends_on("py-packaging", type="build") + + depends_on("py-numpy", type=("build", "run")) + + # setup.py + depends_on("rust") diff --git a/repos/spack_repo/builtin/packages/py_wrapt/package.py b/repos/spack_repo/builtin/packages/py_wrapt/package.py index 4519d3c830d..b1ab0ab8d2f 100644 --- a/repos/spack_repo/builtin/packages/py_wrapt/package.py +++ b/repos/spack_repo/builtin/packages/py_wrapt/package.py @@ -15,6 +15,8 @@ class PyWrapt(PythonPackage): license("BSD-2-Clause") + version("2.1.2", sha256="3996a67eecc2c68fd47b4e3c564405a5777367adfd9b8abb58387b63ee83b21e") + version("1.17.3", sha256="f66eb08feaa410fe4eebd17f2a2c8e2e46d3476e9f8c783daa8e09e0faa666d0") version("1.15.0", sha256="d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a") version("1.14.1", sha256="380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d") version("1.13.3", sha256="1fea9cd438686e6682271d36f3481a9f3636195578bab9ca3382e2f5f01fc185") @@ -23,6 +25,12 @@ class PyWrapt(PythonPackage): version("1.11.1", sha256="4aea003270831cceb8a90ff27c4031da6ead7ec1886023b80ce0dfe0adf61533") version("1.10.10", sha256="42160c91b77f1bc64a955890038e02f2f72986c01d462d53cb6cb039b995cdd9") - depends_on("c", type="build") # generated + with default_args(type="build"): + depends_on("c") - depends_on("py-setuptools@38.3:", type="build") + depends_on("py-setuptools@62:", when="@2.1:") + depends_on("py-setuptools@38.3:") + + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@2.1:") + depends_on("python@3.8:", when="@1.17:") diff --git a/repos/spack_repo/builtin/packages/py_wurlitzer/package.py b/repos/spack_repo/builtin/packages/py_wurlitzer/package.py index 27de08bba2f..3e4fedb1b04 100644 --- a/repos/spack_repo/builtin/packages/py_wurlitzer/package.py +++ b/repos/spack_repo/builtin/packages/py_wurlitzer/package.py @@ -16,6 +16,7 @@ class PyWurlitzer(PythonPackage): license("MIT") + version("3.1.1", sha256="bfb9144ab9f02487d802b9ff89dbd3fa382d08f73e12db8adc4c2fb00cd39bd9") version("3.0.2", sha256="36051ac530ddb461a86b6227c4b09d95f30a1d1043de2b4a592e97ae8a84fcdf") depends_on("python+ctypes@3.5:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_wxflow/package.py b/repos/spack_repo/builtin/packages/py_wxflow/package.py index eb6494dc8be..7593bfc67c6 100644 --- a/repos/spack_repo/builtin/packages/py_wxflow/package.py +++ b/repos/spack_repo/builtin/packages/py_wxflow/package.py @@ -43,5 +43,5 @@ def check(self): env["PYTHONPATH"] = ":".join( (join_path(self.build_directory, "build/lib"), env["PYTHONPATH"]) ) - pytest = which(join_path(self.spec["py-pytest"].prefix.bin, "pytest")) + pytest = which(join_path(self.spec["py-pytest"].prefix.bin, "pytest"), required=True) pytest("-v", self.build_directory) diff --git a/repos/spack_repo/builtin/packages/py_wxpython/package.py b/repos/spack_repo/builtin/packages/py_wxpython/package.py index ef801b36d9d..878b1d05030 100644 --- a/repos/spack_repo/builtin/packages/py_wxpython/package.py +++ b/repos/spack_repo/builtin/packages/py_wxpython/package.py @@ -13,6 +13,7 @@ class PyWxpython(PythonPackage): homepage = "https://www.wxpython.org/" pypi = "wxPython/wxPython-4.0.6.tar.gz" + version("4.2.3", sha256="20d6e0c927e27ced85643719bd63e9f7fd501df6e9a8aab1489b039897fd7c01") version("4.2.2", sha256="5dbcb0650f67fdc2c5965795a255ffaa3d7b09fb149aa8da2d0d9aa44e38e2ba") version("4.1.1", sha256="00e5e3180ac7f2852f342ad341d57c44e7e4326de0b550b9a5c4a8361b6c3528") version("4.0.6", sha256="35cc8ae9dd5246e2c9861bb796026bbcb9fb083e4d49650f776622171ecdab37") @@ -20,8 +21,12 @@ class PyWxpython(PythonPackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + # Versions before 4.2.3 require distutils which is removed in python 3.12 + depends_on("python@:3.11", when="@:4.2.2") + depends_on("wxwidgets +gui") depends_on("wxwidgets@3.2.6 +gui", when="@4.2.2") + depends_on("wxwidgets@3.2.7 +gui", when="@4.2.3") # Needed by the buildtools/config.py script depends_on("pkgconfig", type="build") @@ -29,6 +34,7 @@ class PyWxpython(PythonPackage): depends_on("py-setuptools", type="build") depends_on("py-setuptools@:75", type="build", when="@:4.1") # deprecated license-file depends_on("py-pathlib2", type="build") + depends_on("py-requests", type="build") # Needed at runtime depends_on("py-numpy", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_x21/package.py b/repos/spack_repo/builtin/packages/py_x21/package.py index 8c4ea5882fc..09ed26321cc 100644 --- a/repos/spack_repo/builtin/packages/py_x21/package.py +++ b/repos/spack_repo/builtin/packages/py_x21/package.py @@ -28,11 +28,6 @@ def url_for_version(self, version): return url.format(version.string.split("-")[0], py_ver.joined, platform_string) if sys.platform == "darwin": - version( - "0.2.6-py3.8", - sha256="bbbfdb6b56562ecc81f0dc39e009713157011fbb50d47353eb25f633acf77204", - deprecated=True, - ) version( "0.2.6-py3.9", sha256="d7b4f06a71ac27d05ae774752b3ca396134916427f371b5995b07f0f43205043", @@ -42,11 +37,6 @@ def url_for_version(self, version): sha256="2cbda690757f1fc80edfe48fcb13f168068f1784f0cb8c300a0d8051714d0452", ) elif sys.platform.startswith("linux"): - version( - "0.2.6-py3.8", - sha256="64275052bcda784395bc613f750b8b5a6b1ddbfa4e7a590cb8e209543f0ca0c4", - deprecated=True, - ) version( "0.2.6-py3.9", sha256="e20b29650fcbf0be116ac93511033bf10debc76261b7350e018ff91b92ff950d", @@ -56,7 +46,6 @@ def url_for_version(self, version): sha256="7c5c58ff6dc81caac6815578f78cf545e719beb0bf4017f77120d38025d2bc7d", ) - depends_on("python@3.8.0:3.8", type=("build", "run"), when="@0.2.6-py3.8") depends_on("python@3.9.0:3.9", type=("build", "run"), when="@0.2.6-py3.9") depends_on("python@3.10.0:3.10", type=("build", "run"), when="@0.2.6-py3.10") depends_on("py-pynacl", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_xarray/package.py b/repos/spack_repo/builtin/packages/py_xarray/package.py index d57a9e00bf2..f7210ecd9d9 100644 --- a/repos/spack_repo/builtin/packages/py_xarray/package.py +++ b/repos/spack_repo/builtin/packages/py_xarray/package.py @@ -15,110 +15,145 @@ class PyXarray(PythonPackage): # 'xarray.tests' requires 'pytest'. Leave out of 'import_modules' to avoid # unnecessary dependency. - import_modules = [ - "xarray", - "xarray.core", - "xarray.plot", - "xarray.util", - "xarray.backends", - "xarray.coding", - ] + skip_modules = ["xarray.tests"] license("Apache-2.0") + maintainers("Chrismarsh", "adamjstewart") + version("2026.4.0", sha256="c4ac9a01a945d90d5b1628e2af045099a9d4943536d4f2ee3ae963c3b222d15b") + version("2026.2.0", sha256="978b6acb018770554f8fd964af4eb02f9bcc165d4085dbb7326190d92aa74bcf") + version("2025.7.1", sha256="2884bf5672b540fcc6ff8c20a3196bda0d78fbfb4d67398d60526e97c2faceef") version("2024.7.0", sha256="4cae512d121a8522d41e66d942fb06c526bc1fd32c2c181d5fe62fe65b671638") version("2023.7.0", sha256="dace2fdbf1b7ff185d9c1226a24bf83c2ae52f3253dbfe80e17d1162600d055c") version("2022.3.0", sha256="398344bf7d170477aaceff70210e11ebd69af6b156fe13978054d25c48729440") - version("0.18.2", sha256="5d2e72a228286fcf60f66e16876bd27629a1a70bf64822c565f16515c4d10284") - version("0.17.0", sha256="9c2edad2a4e588f9117c666a4249920b9717fb75703b96998cf65fcd4f60551f") - version("0.16.2", sha256="38e8439d6c91bcd5b7c0fca349daf8e0643ac68850c987262d53526e9d7d01e4") - version("0.14.0", sha256="a8b93e1b0af27fa7de199a2d36933f1f5acc9854783646b0f1b37fed9b4da091") - version("0.13.0", sha256="80e5746ffdebb96b997dba0430ff02d98028ef3828e6db6106cbbd6d62e32825") - version("0.12.0", sha256="856fd062c55208a248ac3784cac8d3524b355585387043efc92a4188eede57f3") - version("0.11.0", sha256="636964baccfca0e5d69220ac4ecb948d561addc76f47704064dcbe399e03a818") - version("0.9.1", sha256="89772ed0e23f0e71c3fb8323746374999ecbe79c113e3fadc7ae6374e6dc0525") - + with default_args(deprecated=True): + version( + "0.18.2", sha256="5d2e72a228286fcf60f66e16876bd27629a1a70bf64822c565f16515c4d10284" + ) + version( + "0.17.0", sha256="9c2edad2a4e588f9117c666a4249920b9717fb75703b96998cf65fcd4f60551f" + ) + version( + "0.16.2", sha256="38e8439d6c91bcd5b7c0fca349daf8e0643ac68850c987262d53526e9d7d01e4" + ) + version( + "0.14.0", sha256="a8b93e1b0af27fa7de199a2d36933f1f5acc9854783646b0f1b37fed9b4da091" + ) + version( + "0.13.0", sha256="80e5746ffdebb96b997dba0430ff02d98028ef3828e6db6106cbbd6d62e32825" + ) + version( + "0.12.0", sha256="856fd062c55208a248ac3784cac8d3524b355585387043efc92a4188eede57f3" + ) + version( + "0.11.0", sha256="636964baccfca0e5d69220ac4ecb948d561addc76f47704064dcbe399e03a818" + ) + version("0.9.1", sha256="89772ed0e23f0e71c3fb8323746374999ecbe79c113e3fadc7ae6374e6dc0525") + + variant("accel", default=False, when="@2025.7:", description="Accerlators, e.g., numba") variant("io", default=False, description="Build io backends") + variant("etc", default=False, when="@2025.7:", description="Etc") variant("parallel", default=False, description="Build parallel backend") - variant("viz", default=False, when="@2024.7.0:", description="Buid viz backends") - - # pyproject.toml - depends_on("py-setuptools", when="@:0.15", type="build") - depends_on("py-setuptools@38.4:", when="@0.16:", type=("build", "run")) - depends_on("py-setuptools@42:", when="@0.17:", type=("build", "run")) - depends_on("py-setuptools-scm", when="@0.15:", type="build") - depends_on("py-setuptools-scm@7:", when="@2023.7.0:", type="build") - depends_on("py-setuptools-scm@3.4:+toml", when="@0.17:2022.3.0", type="build") - depends_on("py-setuptools-scm-git-archive", when="@0.17:2022.3.0", type="build") - - # setup.cfg - depends_on("python@2.7,3.5:", when="@0.11:", type=("build", "run")) - depends_on("python@3.5:", when="@0.12", type=("build", "run")) - depends_on("python@3.5.3:", when="@0.13", type=("build", "run")) - depends_on("python@3.6:", when="@0.14:", type=("build", "run")) - depends_on("python@3.7:", when="@0.17:", type=("build", "run")) - depends_on("python@3.8:", when="@0.21:", type=("build", "run")) - depends_on("python@3.9:", when="@2023.7.0:", type=("build", "run")) - depends_on("python@3.10:", when="@2024.9.0:", type=("build", "run")) - - depends_on("py-numpy@1.7:", when="@0.9.1", type=("build", "run")) - depends_on("py-numpy@1.12:", when="@0.11:0.13", type=("build", "run")) - depends_on("py-numpy@1.14:", when="@0.14.0", type=("build", "run")) - depends_on("py-numpy@1.15:", when="@0.15:", type=("build", "run")) - depends_on("py-numpy@1.17:", when="@0.18:", type=("build", "run")) - depends_on("py-numpy@1.18:", when="@0.20:", type=("build", "run")) - depends_on("py-numpy@1.21:", when="@2023.7.0:", type=("build", "run")) - # numpy@2 starts with v2024.06.0 - # https://github.com/pydata/xarray/releases/tag/v2024.06.0 - depends_on("py-numpy@:1", when="@:2024.05", type=("build", "run")) - depends_on("py-numpy@1.23:", when="@2024.7.0:", type=("build", "run")) - - depends_on("py-pandas@0.15.0:", when="@0.9.1", type=("build", "run")) - depends_on("py-pandas@0.19.2:", when="@0.11:0.13", type=("build", "run")) - depends_on("py-pandas@0.24:", when="@0.14.0", type=("build", "run")) - depends_on("py-pandas@0.25:", when="@0.15:", type=("build", "run")) - depends_on("py-pandas@1:", when="@0.18:", type=("build", "run")) - depends_on("py-pandas@1.1:", when="@0.20:", type=("build", "run")) - depends_on("py-pandas@1.4:", when="@2023.7.0:", type=("build", "run")) - depends_on("py-pandas@2.0:", when="@2024.7.0:", type=("build", "run")) - - depends_on("py-packaging@20:", when="@0.21:", type=("build", "run")) - depends_on("py-packaging@21.3:", when="@2023.7.0:", type=("build", "run")) - depends_on("py-packaging@23.1:", when="@2024.7.0:", type=("build", "run")) - - # These are the versions that work with numpy@2: - # https://github.com/pydata/xarray/pull/9136 - depends_on("py-netcdf4@1.7.1:", when="+io ^numpy@2:", type=("build", "run")) - depends_on("py-netcdf4", when="+io", type=("build", "run")) - depends_on("py-h5netcdf", when="+io", type=("build", "run")) - depends_on("py-scipy", when="+io", type=("build", "run")) - # py-pydap@3.5: for numpy@2: - # https://github.com/pydata/xarray/pull/9391 - depends_on("py-pydap@3.5:", when="+io ^numpy@2:", type=("build", "run")) - depends_on("py-pydap", when="+io", type=("build", "run")) - depends_on("py-zarr@2.18:", when="+io ^numpy@2:", type=("build", "run")) - depends_on("py-zarr", when="+io", type=("build", "run")) - depends_on("py-fsspec", when="+io", type=("build", "run")) - depends_on("py-cftime", when="+io", type=("build", "run")) - depends_on("py-rasterio", when="@:2022.3.0 +io", type=("build", "run")) - depends_on("py-cfgrib", when="@:2022.3.0 +io", type=("build", "run")) - depends_on("py-pooch", when="+io", type=("build", "run")) - - depends_on( - "py-dask@:2021 +array+dataframe+distributed+diagnostics+delayed", - when="@:2022.05.0 +parallel", - type=("build", "run"), - ) - - # xarray uses inline_array starting in v2022.06.0 which only exists - # since dask 2021.01.0 - depends_on( - # +delayed is :2021.3.0 - "py-dask@2022: +array+dataframe+distributed+diagnostics", - when="@2022.06.0: +parallel", - type=("build", "run"), - ) - - depends_on("py-matplotlib", when="@2024.7.0: +viz", type=("build", "run")) - depends_on("py-seaborn", when="@2024.7.0: +viz", type=("build", "run")) - depends_on("py-nc-time-axis", when="@2024.7.0: +viz", type=("build", "run")) + variant("viz", default=False, when="@2024.7:", description="Buid viz backends") + + with default_args(type="build"): + depends_on("py-setuptools@77.0.3:", when="@2025.6:") + depends_on("py-setuptools@42:", when="@0.17:") + depends_on("py-setuptools@38.4:", when="@0.16:", type=("build", "run")) + depends_on("py-setuptools") + depends_on("py-setuptools-scm@8:", when="@2025.8:") + depends_on("py-setuptools-scm@7:", when="@2023.7:") + depends_on("py-setuptools-scm@3.4:+toml", when="@0.17:2022.3") + depends_on("py-setuptools-scm", when="@0.15:") + + # Historical dependencies + depends_on("py-setuptools-scm-git-archive", when="@0.17:2022.3") + + with default_args(type=("build", "run")): + depends_on("python@3.11:", when="@2025.7:") + depends_on("py-numpy@1.26:", when="@2025.7:") + depends_on("py-numpy@1.23:", when="@2024.7:") + depends_on("py-numpy@1.21:", when="@2023.7:") + depends_on("py-numpy@1.18:", when="@0.20:") + depends_on("py-numpy@1.17:", when="@0.18:") + depends_on("py-numpy@1.15:", when="@0.15:") + depends_on("py-numpy@1.14:", when="@0.14.0") + depends_on("py-numpy@1.12:", when="@0.11:0.13") + depends_on("py-numpy@1.7:", when="@0.9.1") + # https://github.com/pydata/xarray/releases/tag/v2024.06.0 + depends_on("py-numpy@:1", when="@:2024.5") + depends_on("py-packaging@24.2:", when="@2026.4:") + depends_on("py-packaging@24.1:", when="@2025.7:") + depends_on("py-packaging@23.1:", when="@2024.7:") + depends_on("py-packaging@21.3:", when="@2023.7:") + depends_on("py-packaging@20:", when="@0.21:") + depends_on("py-pandas@2.2:", when="@2025.7:") + depends_on("py-pandas@2.0:", when="@2024.7:") + depends_on("py-pandas@1.4:", when="@2023.7:") + depends_on("py-pandas@1.1:", when="@0.20:") + depends_on("py-pandas@1:", when="@0.18:") + depends_on("py-pandas@0.25:", when="@0.15:") + depends_on("py-pandas@0.24:", when="@0.14.0") + depends_on("py-pandas@0.19.2:", when="@0.11:0.13") + depends_on("py-pandas@0.15.0:", when="@0.9.1") + + # Historical dependencies + # https://github.com/pydata/xarray/pull/5845 + depends_on("py-setuptools", when="@:0.19") + + with when("+accel"): + depends_on("py-scipy@1.15:", when="@2026.4:") + depends_on("py-scipy@1.13:") + depends_on("py-bottleneck") + depends_on("py-numbagg@0.9:", when="@2026.4:") + depends_on("py-numbagg@0.8:") + depends_on("py-numba@0.62:", when="@2026:") + depends_on("py-numba@0.59:") + depends_on("py-flox@0.10:", when="@2026.4:") + depends_on("py-flox@0.9:") + depends_on("py-opt-einsum") + + with when("+io"): + depends_on("py-netcdf4@1.6:", when="@2025.7:") + depends_on("py-netcdf4") + depends_on("py-h5netcdf@1.5:+h5py", when="@2026.4:") + depends_on("py-h5netcdf@1.4:", when="@2026:") + depends_on("py-h5netcdf") + depends_on("py-pydap") + depends_on("py-scipy@1.15:", when="@2026.4:") + depends_on("py-scipy@1.13:", when="@2025.7:") + depends_on("py-scipy") + depends_on("py-zarr@3:", when="@2026.4:") + depends_on("py-zarr@2.18:", when="@2025.7:") + depends_on("py-zarr") + depends_on("py-fsspec") + depends_on("py-cftime") + depends_on("py-pooch") + + # Historical dependencies + depends_on("py-rasterio", when="@:2022.3") + depends_on("py-cfgrib", when="@:2022.3") + + with when("+etc"): + depends_on("py-sparse@0.15:") + + with when("+parallel"): + # xarray uses inline_array starting in v2022.6.0 which only exists + # since dask 2021.1.0 + depends_on( + # +delayed is :2021.3.0 + "py-dask@2022: +array+dataframe+distributed+diagnostics", + when="@2022.6:", + ) + depends_on( + "py-dask@:2021 +array+dataframe+distributed+diagnostics+delayed", when="@:2022.5" + ) + + with when("+viz"): + depends_on("py-cartopy@0.24:", when="@2026.4:") + depends_on("py-cartopy@0.23:", when="@2025.7:") + depends_on("py-matplotlib@3.10:", when="@2026.4:") + depends_on("py-matplotlib@3.8:", when="@2026:") + depends_on("py-matplotlib") + depends_on("py-nc-time-axis") + depends_on("py-seaborn") diff --git a/repos/spack_repo/builtin/packages/py_xarray_regrid/package.py b/repos/spack_repo/builtin/packages/py_xarray_regrid/package.py index ba9e09d07a1..3356e8aa5fc 100644 --- a/repos/spack_repo/builtin/packages/py_xarray_regrid/package.py +++ b/repos/spack_repo/builtin/packages/py_xarray_regrid/package.py @@ -17,8 +17,12 @@ class PyXarrayRegrid(PythonPackage): license("Apache-2.0", checked_by="Chrismarsh") + version("0.4.2", sha256="96525d39b0290efa59e0255cebd35be028052f1b347bfb10fd259b4380289673") + version("0.4.1", sha256="2c8a7baa321c2451aa42b387fef3b22ecd7bdf693e7ee5c52ebe5168482a1e2a") version("0.4.0", sha256="f0bef6a346e247c657ed293752b5685f3b559b32de546889ca9e9fca14b81f3a") + variant("accel", default=True, description="Improve performance in certain cases") + depends_on("py-hatchling", type="build") depends_on("python@3.10:", type=("build", "run")) @@ -27,3 +31,8 @@ class PyXarrayRegrid(PythonPackage): depends_on("py-xarray", type=("build", "run")) depends_on("py-flox", type=("build", "run")) depends_on("py-scipy", type=("build", "run")) + + with when("+accel"): + depends_on("py-sparse", type=("build", "run")) + depends_on("py-opt-einsum", type=("build", "run")) + depends_on("py-dask +distributed", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_xcdat/package.py b/repos/spack_repo/builtin/packages/py_xcdat/package.py new file mode 100644 index 00000000000..0a17299ab0f --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_xcdat/package.py @@ -0,0 +1,37 @@ +# 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 PyXcdat(PythonPackage): + """xCDAT is an extension of xarray for climate data analysis on structured grids. + It serves as a modern successor to the Community Data Analysis Tools (CDAT) library.""" + + homepage = "https://xcdat.readthedocs.io/en/latest" + + url = "https://github.com/xCDAT/xcdat/archive/refs/tags/v0.9.0.tar.gz" + + maintainers("LydDeb") + + license("Apache-2.0", checked_by="LydDeb") + + version("0.9.0", sha256="a36b46fe6317fabbac96ed2d4d1c6596a4f11d5069a88f85f683c08cd849faeb") + + depends_on("py-setuptools@42:", type="build") + depends_on("python@3.10:", type=("build", "run")) + depends_on("py-cf-xarray@0.10.3:", type=("build", "run")) + depends_on("py-cftime", type=("build", "run")) + depends_on("py-dask", type=("build", "run")) + depends_on("py-netcdf4", type=("build", "run")) + depends_on("py-numpy@2", type=("build", "run")) + depends_on("py-pandas", type=("build", "run")) + depends_on("py-python-dateutil", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + depends_on("py-sparse", type=("build", "run")) + depends_on("py-xarray@2024.03.0:", type=("build", "run")) + depends_on("py-xesmf@0.8.7:", type=("build", "run")) + depends_on("py-xgcm", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_xdot/package.py b/repos/spack_repo/builtin/packages/py_xdot/package.py index c5f1ae9134f..aaf15e7f006 100644 --- a/repos/spack_repo/builtin/packages/py_xdot/package.py +++ b/repos/spack_repo/builtin/packages/py_xdot/package.py @@ -30,6 +30,7 @@ class PyXdot(PythonPackage): depends_on("pango", type=("build", "run")) depends_on("harfbuzz", type=("build", "run")) depends_on("atk", type=("build", "run")) + depends_on("gobject-introspection", type=("build", "run")) depends_on("gdk-pixbuf", type=("build", "run")) depends_on("gtkplus", type=("build", "run")) depends_on("py-numpy", type=("build", "run"), when="@1.2:") @@ -37,12 +38,13 @@ class PyXdot(PythonPackage): @run_after("install") def post_install(self): spec = self.spec - repo_paths = "%s:%s:%s:%s:%s" % ( + repo_paths = "%s:%s:%s:%s:%s:%s" % ( join_path(spec["pango"].prefix.lib, "girepository-1.0"), join_path(spec["atk"].prefix.lib, "girepository-1.0"), join_path(spec["gdk-pixbuf"].prefix.lib, "girepository-1.0"), join_path(spec["gtkplus"].prefix.lib, "girepository-1.0"), join_path(spec["harfbuzz"].prefix.lib, "girepository-1.0"), + join_path(spec["gobject-introspection"].prefix.lib, "girepository-1.0"), ) dst = join_path(python_purelib, "xdot", "__init__.py") filter_file( @@ -68,3 +70,7 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: env.prepend_path( "GI_TYPELIB_PATH", join_path(spec["gtkplus"].prefix.lib, "girepository-1.0") ) + env.prepend_path( + "GI_TYPELIB_PATH", + join_path(spec["gobject-introspection"].prefix.lib, "girepository-1.0"), + ) 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/py_xgcm/package.py b/repos/spack_repo/builtin/packages/py_xgcm/package.py new file mode 100644 index 00000000000..12a92f2a628 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_xgcm/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 PyXgcm(PythonPackage): + """General Circulation Model Postprocessing with xarray.""" + + homepage = "https://github.com/xgcm/xgcm" + pypi = "xgcm/xgcm-0.8.1.tar.gz" + + maintainers("LydDeb") + + license("MIT", checked_by="LydDeb") + + version("0.8.1", sha256="fc733bf1ed5c1e286dddd182d37dabbdc1e01207dd15089f62be2021e29b0459") + + depends_on("py-setuptools", type="build") + depends_on("py-setuptools-scm", type="build") + depends_on("py-xarray@0.20.0:", type=("build", "run")) + depends_on("py-dask", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-future", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_xhistogram/package.py b/repos/spack_repo/builtin/packages/py_xhistogram/package.py index 0d004ffc5ae..9b4162ddfcf 100644 --- a/repos/spack_repo/builtin/packages/py_xhistogram/package.py +++ b/repos/spack_repo/builtin/packages/py_xhistogram/package.py @@ -18,6 +18,13 @@ class PyXhistogram(PythonPackage): version("0.3.2", sha256="56b0751e1469eaed81710f644c8ba5c574b51883baa2feee26a95f2f708f91a1") depends_on("py-setuptools", type="build") + depends_on("py-versioneer", type="build") + depends_on("py-versioneer@0.29:", type="build", when="^python@3.12:") + depends_on("py-xarray@0.12:", type=("build", "run")) depends_on("py-dask@2.3:+array", type=("build", "run")) depends_on("py-numpy@1.17:", type=("build", "run")) + + # compatibility with python 3.12 + # https://github.com/xgcm/xhistogram/pull/90 + patch("patch_py312_versioneer.patch", when="^python@3.12:") diff --git a/repos/spack_repo/builtin/packages/py_xhistogram/patch_py312_versioneer.patch b/repos/spack_repo/builtin/packages/py_xhistogram/patch_py312_versioneer.patch new file mode 100644 index 00000000000..e39ecac6434 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_xhistogram/patch_py312_versioneer.patch @@ -0,0 +1,39 @@ +From 6eef6c697d95ea70883a5ff6ee2f3e7188eaa4c5 Mon Sep 17 00:00:00 2001 +From: Chris Marsh +Date: Mon, 28 Jul 2025 16:51:05 -0600 +Subject: [PATCH] fix versioneer for python 3.12+ + +--- + setup.py | 2 +- + versioneer.py | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/setup.py b/setup.py +index 532192a6f180f064d33a4e033373aa02afd400be..fbc96ff0ef18809d4e8222a3e016314254360d9f 100644 +--- a/setup.py ++++ b/setup.py +@@ -20,7 +20,7 @@ + "Topic :: Scientific/Engineering", + ] + +-INSTALL_REQUIRES = ["xarray>=0.12.0", "dask[array]>=2.3.0", "numpy>=1.17"] ++INSTALL_REQUIRES = ["xarray>=0.12.0", "dask[array]>=2.3.0", "numpy>=1.17", "versioneer>=0.29"] + PYTHON_REQUIRES = ">=3.7" + + DESCRIPTION = "Fast, flexible, label-aware histograms for numpy and xarray" +diff --git a/versioneer.py b/versioneer.py +index 2b5454051080d3601eefccb729816fb493768d15..8b24e239bece4aebb2c9250a207cda8d4461be12 100644 +--- a/versioneer.py ++++ b/versioneer.py +@@ -343,9 +343,9 @@ def get_config_from_root(root): + # configparser.NoOptionError (if it lacks "VCS="). See the docstring at + # the top of versioneer.py for instructions on writing your setup.cfg . + setup_cfg = os.path.join(root, "setup.cfg") +- parser = configparser.SafeConfigParser() ++ parser = configparser.ConfigParser() + with open(setup_cfg, "r") as f: +- parser.readfp(f) ++ parser.read_file(f) + VCS = parser.get("versioneer", "VCS") # mandatory + + def get(parser, name): diff --git a/repos/spack_repo/builtin/packages/py_xlsxwriter/package.py b/repos/spack_repo/builtin/packages/py_xlsxwriter/package.py index 1a1f3138ddf..f8e40c6faa8 100644 --- a/repos/spack_repo/builtin/packages/py_xlsxwriter/package.py +++ b/repos/spack_repo/builtin/packages/py_xlsxwriter/package.py @@ -11,10 +11,11 @@ class PyXlsxwriter(PythonPackage): """XlsxWriter is a Python module for writing files in the Excel 2007+ XLSX file format.""" - pypi = "XlsxWriter/XlsxWriter-1.0.2.tar.gz" + pypi = "xlsxwriter/xlsxwriter-1.0.2.tar.gz" license("BSD-2-Clause") + version("3.2.9", sha256="254b1c37a368c444eac6e2f867405cc9e461b0ed97a3233b2ac1e574efb4140c") version("3.1.7", sha256="353042efb0f8551ce72baa087e98228f3394fcb380e8b96313edf1eec8d50823") version("3.0.3", sha256="e89f4a1d2fa2c9ea15cde77de95cd3fd8b0345d0efb3964623f395c8c4988b7f") version("1.4.3", sha256="641db6e7b4f4982fd407a3f372f45b878766098250d26963e95e50121168cbe2") @@ -22,3 +23,9 @@ class PyXlsxwriter(PythonPackage): version("1.0.2", sha256="a26bbbafff88abffce592ffd5dfaa4c9f08dc44ef4afbf45c70d3e270325f856") depends_on("py-setuptools", type="build") + + def url_for_version(self, version): + url = "https://files.pythonhosted.org/packages/source/X/XlsxWriter/XlsxWriter-{}.tar.gz" + if version >= Version("3.2.2"): + url = url.lower() + return url.format(version) diff --git a/repos/spack_repo/builtin/packages/py_xonsh/package.py b/repos/spack_repo/builtin/packages/py_xonsh/package.py index 4165ddf023c..b8c83d07336 100644 --- a/repos/spack_repo/builtin/packages/py_xonsh/package.py +++ b/repos/spack_repo/builtin/packages/py_xonsh/package.py @@ -16,7 +16,9 @@ class PyXonsh(PythonPackage): maintainers("mdorier") + version("0.23.4", sha256="05e60bbc9f2234f6482a96bfa8d936deb45c915e3f3fcfdc3056bfe32aa8d1cf") version("0.11.0", sha256="0d9c3d9a4e8b8199ae697fbc9d1e0ae55085cdbdd4306d04813350996f9c15dc") depends_on("python@3.6:", type=("build", "run")) + depends_on("py-setuptools@61:", type="build", when="@0.23.4:") depends_on("py-setuptools", type="build") diff --git a/repos/spack_repo/builtin/packages/py_xrootdpyfs/package.py b/repos/spack_repo/builtin/packages/py_xrootdpyfs/package.py deleted file mode 100644 index ba76c87282a..00000000000 --- a/repos/spack_repo/builtin/packages/py_xrootdpyfs/package.py +++ /dev/null @@ -1,20 +0,0 @@ -# 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 PyXrootdpyfs(PythonPackage): - """XRootDPyFS is a PyFilesystem interface to XRootD.""" - - homepage = "https://github.com/inveniosoftware/xrootdpyfs/" - pypi = "xrootdpyfs/xrootdpyfs-0.2.2.tar.gz" - - version("0.2.2", sha256="43698c260f3ec52320c6bfac8dd3e7c2be7d28e9e9f58edf4f916578114e82bf") - - depends_on("py-setuptools", type="build") - depends_on("py-fs@0.5.4:1", type=("build", "run")) - depends_on("xrootd@4.8.4:4 +python", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_xxhash/package.py b/repos/spack_repo/builtin/packages/py_xxhash/package.py index 37f040c7b85..ed5b843d1ae 100644 --- a/repos/spack_repo/builtin/packages/py_xxhash/package.py +++ b/repos/spack_repo/builtin/packages/py_xxhash/package.py @@ -16,6 +16,10 @@ class PyXxhash(PythonPackage): license("BSD-2-Clause") + version("3.6.0", sha256="f0162a78b13a0d7617b2845b90c763339d1f1d82bb04a4b07f4ab535cc5e05d6") + version("3.5.0", sha256="84f2caddf951c9cbf8dc2e22a89d4ccf5d86391ac6418fe81e3c67d0cf60b45f") + version("3.4.1", sha256="0379d6cf1ff987cd421609a264ce025e74f346e3e145dd106c0cc2e3ec3f99a9") + version("3.3.0", sha256="c3f9e322b1ebeebd44e3d9d2d9b124e0c550c1ef41bd552afdcdd719516ee41a") version("3.2.0", sha256="1afd47af8955c5db730f630ad53ae798cf7fae0acb64cebb3cf94d35c47dd088") version("2.0.2", sha256="b7bead8cf6210eadf9cecf356e17af794f57c0939a3d420a00d87ea652f87b49") diff --git a/repos/spack_repo/builtin/packages/py_xyzservices/package.py b/repos/spack_repo/builtin/packages/py_xyzservices/package.py index 4b894724789..a2abc16a4c4 100644 --- a/repos/spack_repo/builtin/packages/py_xyzservices/package.py +++ b/repos/spack_repo/builtin/packages/py_xyzservices/package.py @@ -16,6 +16,7 @@ class PyXyzservices(PythonPackage): license("BSD-3-Clause") + version("2025.11.0", sha256="2fc72b49502b25023fd71e8f532fb4beddbbf0aa124d90ea25dba44f545e17ce") version("2023.10.1", sha256="091229269043bc8258042edbedad4fcb44684b0473ede027b5672ad40dc9fa02") depends_on("python@3.8:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/py_yapf/package.py b/repos/spack_repo/builtin/packages/py_yapf/package.py index b42d39678c0..ecc63608385 100644 --- a/repos/spack_repo/builtin/packages/py_yapf/package.py +++ b/repos/spack_repo/builtin/packages/py_yapf/package.py @@ -16,8 +16,21 @@ class PyYapf(PythonPackage): license("Apache-2.0") + version("0.43.0", sha256="1d8ca9d7e1fc429c496e0a046e509e437d5ae766487b0394c45fc1fdf253b5d4") + version("0.40.2", sha256="8e0825803c488aa2cb118ed277a18d4617984608e75d10d5bffa5e24734eb022") + version("0.40.1", sha256="ed9e606d9f74ea44196249c1e5be2a16ec7c205314e798c1e2d92cf51cdc50aa") + # 0.40.0 and 0.33.0 were removed: https://pypi.org/project/yapf/#history + # version("0.40.0", sha256="c295a4e9d259c189b74cafb34d645cc9acff73a1aa33589d8e175362c3164050") + # version("0.33.0", sha256="c7bab16bab19c94a478e4f25fbcae545aa29c5f5fbe7c630f06ceafd807cc13b") + version("0.32.0", sha256="410ed0f592c898d75d73f7792aee6569bdbc0b57bc72b417c722c17f41f66b12") + version("0.31.0", sha256="e6330f89f024615b102f3140e50a1b864196c4d9d8e29ace4eaa234feec4c924") version("0.30.0", sha256="9f561af26f8d27c3a334d3d2ee8947b8826a86691087e447ce483512d834682c") + version("0.29.1", sha256="22046ea87e672376b3a9f7898357cb8328a473f512123f14fcca8cbe22d32631") version("0.29.0", sha256="f4bc9924de51d30da0241503d56e9e26a1a583bc58b3a13b2c450c4d16c9920d") version("0.2.1", sha256="13158055acd8e3c2f3a577528051a1c5057237f699150211a86fb405c4ea3936") depends_on("py-setuptools", type="build") + depends_on("py-setuptools@58.5:", type="build", when="@0.40.2:") + depends_on("py-platformdirs@3.5.1:", type=("build", "run"), when="@0.40:") + depends_on("py-tomli@2.0.1:", type=("build", "run"), when="@0.33: ^python@:3.10") + depends_on("py-importlib-metadata@6.6:", type=("build", "run"), when="@0.40:0.40.1") diff --git a/repos/spack_repo/builtin/packages/py_yarl/package.py b/repos/spack_repo/builtin/packages/py_yarl/package.py index dca52e82844..277b4315410 100644 --- a/repos/spack_repo/builtin/packages/py_yarl/package.py +++ b/repos/spack_repo/builtin/packages/py_yarl/package.py @@ -16,6 +16,7 @@ class PyYarl(PythonPackage): license("Apache-2.0") + version("1.22.0", sha256="bebf8557577d4401ba8bd9ff33906f1376c877aa78d1fe216ad01b4d6745af71") version("1.18.3", sha256="ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1") version("1.9.2", sha256="04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571") version("1.8.1", sha256="af887845b8c2e060eb5605ff72b6f2dd2aab7a761379373fd89d314f4752abbf") @@ -26,19 +27,37 @@ class PyYarl(PythonPackage): with default_args(type="build"): depends_on("c") depends_on("py-expandvars", when="@1.18:") + depends_on("py-setuptools@47:", when="@1.9.3:") depends_on("py-setuptools@40:", when="@1.7.2:") depends_on("py-setuptools") + depends_on("py-tomli", when="@1.9.3: ^python@:3.10") + # The freethreading_compatible directive is supported only by Cython >= 3.1 + # cf. PEP 703 and https://docs.python.org/3/howto/free-threading-python.html + # + # In version 1.20.0 there is an enable = ["cpython-freethreading"] in the + # [tool.cibuildwheel] block of 'pyproject.toml' + # Similarly, it is also present in version 1.21.0 in the same block. + # However, this configuration only concern the CI/CD part of the yarl project. + # It's the addition of freethreading_compatible = "True" in the + # [tool.local.cythonize.kwargs.directive] block that causes an error if the Cython + # version is too old. + depends_on("py-cython@3.1:", when="@1.21:") # requires https://github.com/cython/cython/commit/ea38521bf59edef9e6d22cbabf44229848091a76 depends_on("py-cython@3:", when="@1.15.4:") depends_on("py-cython") with default_args(type=("build", "run")): depends_on("python@3.9:", when="@1.15.3:") + depends_on("python@3.8:", when="@1.9.5:") depends_on("python@3.7:", when="@1.8:") + + depends_on("py-idna@2.0:") depends_on("py-multidict@4.0:") + depends_on("py-propcache@0.2.1:", when="@1.19:") depends_on("py-propcache@0.2:", when="@1.14:") - depends_on("py-idna@2.0:") - depends_on("py-typing-extensions@3.7.4:", when="@1.7.2: ^python@:3.7") + + # Historical dependencies + depends_on("py-typing-extensions@3.7.4:", when="@1.7.2:1.9.4 ^python@:3.7") @run_before("install", when="@:1.9") def fix_cython(self): diff --git a/repos/spack_repo/builtin/packages/py_yt_dlp/package.py b/repos/spack_repo/builtin/packages/py_yt_dlp/package.py new file mode 100644 index 00000000000..ec9ae6268ac --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_yt_dlp/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 PyYtDlp(PythonPackage): + """A feature-rich command-line audio/video downloader.""" + + homepage = "https://github.com/yt-dlp/yt-dlp" + pypi = "yt_dlp/yt_dlp-2025.11.12.tar.gz" + + license("Unlicense") + + version( + "2025.11.12", sha256="5f0795a6b8fc57a5c23332d67d6c6acf819a0b46b91a6324bae29414fa97f052" + ) + + variant("default", default=True, description="Install networking dependencies") + + depends_on("py-hatchling@1.27:") + + with default_args(type=("build", "run")): + with when("+default"): + depends_on("py-brotli") + depends_on("py-certifi") + depends_on("py-mutagen") + depends_on("py-pycryptodomex") + depends_on("py-requests@2.32.2:2") + depends_on("py-urllib3@2.0.2:2") + depends_on("py-websockets@13:") + depends_on("py-yt-dlp-ejs@0.3.1") diff --git a/repos/spack_repo/builtin/packages/py_yt_dlp_ejs/package.py b/repos/spack_repo/builtin/packages/py_yt_dlp_ejs/package.py new file mode 100644 index 00000000000..ba8cb39bf49 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_yt_dlp_ejs/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 PyYtDlpEjs(PythonPackage): + """External JavaScript for yt-dlp supporting many runtimes.""" + + homepage = "https://github.com/yt-dlp/ejs" + pypi = "yt_dlp_ejs/yt_dlp_ejs-0.3.1.tar.gz" + + license("Unlicense AND MIT AND ISC") + + version("0.4.0", sha256="3c67e0beb6f9f3603fbcb56f425eabaa37c52243d90d20ccbcce1dd941cfbd07") + version("0.3.1", sha256="7f2119eb02864800f651fa33825ddfe13d152a1f730fa103d9864f091df24227") + + with default_args(type="build"): + depends_on("py-hatchling@1.27:") + depends_on("py-hatch-vcs") + depends_on("npm") diff --git a/repos/spack_repo/builtin/packages/py_yte/package.py b/repos/spack_repo/builtin/packages/py_yte/package.py index 855e3e8462b..d24c9ffe96c 100644 --- a/repos/spack_repo/builtin/packages/py_yte/package.py +++ b/repos/spack_repo/builtin/packages/py_yte/package.py @@ -17,13 +17,13 @@ class PyYte(PythonPackage): license("MIT") + version("1.5.7", sha256="1e22a74e7c4d1aa70c54fe79d23938cb249d08c0804ad764ab97d5c587cbbad2") version("1.5.1", sha256="6d0b315b78af83276d78f5f67c107c84238f772a76d74f4fc77905b46f3731f5") - # https://github.com/yte-template-engine/yte/blob/v1.5.1/pyproject.toml#L12 + depends_on("python@3.7:", type=("build", "run")) + depends_on("py-poetry-core@1:", type="build") + depends_on("py-dpath@2", type=("build", "run")) + depends_on("py-dpath@2.1:2", type=("build", "run"), when="@1.5.2:") depends_on("py-plac@1.3.4:1", type=("build", "run")) - depends_on("python@3.7:", type=("build", "run")) depends_on("py-pyyaml@6", type=("build", "run")) - - # https://github.com/yte-template-engine/yte/blob/v1.5.1/pyproject.toml#L41 - depends_on("py-poetry-core@1:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_ytopt/package.py b/repos/spack_repo/builtin/packages/py_ytopt/package.py index c163a3fcf71..30a98b62ad6 100644 --- a/repos/spack_repo/builtin/packages/py_ytopt/package.py +++ b/repos/spack_repo/builtin/packages/py_ytopt/package.py @@ -20,23 +20,15 @@ class PyYtopt(PythonPackage): version("0.0.4", sha256="4e47315b658f1943f756816455ae491818c37b0f700dd895a97fb7792bb49e35") version("0.0.3", sha256="eac6ab87d4fd27517f136880016359c5b24836ec009e8cc9b4073a6c5edb17af") - version("0.0.2", sha256="5a624aa678b976ff6ef867610bafcb0dfd5c8af0d880138ca5d56d3f776e6d71") - version("0.0.1", sha256="3ca616922c8e76e73f695a5ddea5dd91b0103eada726185f008343cc5cbd7744") - variant( - "online", - default=False, - description="Install requirements for online tuning.", - when="@0.0.3:", - ) + variant("online", default=False, description="Install requirements for online tuning.") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("python@3.6:", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-scikit-learn@0.23.1", type=("build", "run"), when="@:0.0.2") - depends_on("py-scikit-learn@1.0.0:", type=("build", "run"), when="@0.0.3:") + depends_on("py-scikit-learn@1.0.0:", type=("build", "run")) depends_on("py-dh-scikit-optimize", type=("build", "run")) depends_on("py-configspace", type=("build", "run")) depends_on("py-numpy", type=("build", "run")) @@ -46,4 +38,4 @@ class PyYtopt(PythonPackage): depends_on("py-tqdm", type=("build", "run")) depends_on("py-ray", type=("build", "run")) depends_on("py-mpi4py@3.0.0:", type=("build", "run")) - depends_on("py-sdv@0.13.1:0.13", type=("build", "run"), when="@0.0.3: +online") + depends_on("py-sdv@0.13.1:0.13", type=("build", "run"), when="+online") diff --git a/repos/spack_repo/builtin/packages/py_z3_solver/package.py b/repos/spack_repo/builtin/packages/py_z3_solver/package.py index e74821b0588..c08f284b31f 100644 --- a/repos/spack_repo/builtin/packages/py_z3_solver/package.py +++ b/repos/spack_repo/builtin/packages/py_z3_solver/package.py @@ -15,9 +15,11 @@ class PyZ3Solver(PythonPackage): license("MIT") + version("4.13.0.0", sha256="52588e92aec7cb338fd6288ce93758ae01770f62ca0c80e8f4f2b2333feaf51b") version("4.12.3.0", sha256="b6719daf9676711a8f1c708af0ea185578b0f22a3cb9bf9a55735e21691dc38d") depends_on("cxx", type="build") # generated depends_on("py-setuptools@46.4:", type="build") - depends_on("cmake", type="build") + # https://github.com/Z3Prover/z3/blob/z3-4.12.3/CMakeLists.txt#L2 + depends_on("cmake@3.16:", type="build") diff --git a/repos/spack_repo/builtin/packages/py_zarr/package.py b/repos/spack_repo/builtin/packages/py_zarr/package.py index 5e4a6ac70b7..a6fdee4d57b 100644 --- a/repos/spack_repo/builtin/packages/py_zarr/package.py +++ b/repos/spack_repo/builtin/packages/py_zarr/package.py @@ -13,11 +13,14 @@ class PyZarr(PythonPackage): homepage = "https://zarr.readthedocs.io" pypi = "zarr/zarr-2.3.2.tar.gz" + git = "https://github.com/zarr-developers/zarr-python.git" license("MIT") + version("3.1.2", sha256="688e4eb79045c110128cd16f301f2f58fa19507b1803dcbea0ea894e66e06274") version("3.0.6", sha256="6ef23c740e34917a2a1099471361537732942e49f0cabe95c9b7124cd0d6d84f") version("3.0.1", sha256="033859c5603dc9c29e53af494ede24b42f1b761d2bb625466990a3b8a9afb792") + version("2.18.7", sha256="b2b8f66f14dac4af66b180d2338819981b981f70e196c9a66e6bfaa9e59572f5") version("2.17.0", sha256="6390a2b8af31babaab4c963efc45bf1da7f9500c9aafac193f84cf019a7c66b0") version("2.10.2", sha256="5c6ae914ab9215631bb95c09e76b9b9b4fffa70fec0c7bca26b68387d858ebe2") version("2.6.1", sha256="fa7eac1e4ff47ff82d09c42bb4679e18e8a05a73ee81ce59cee6a441a210b2fd") @@ -25,35 +28,47 @@ class PyZarr(PythonPackage): version("2.4.0", sha256="53aa21b989a47ddc5e916eaff6115b824c0864444b1c6f3aaf4f6cf9a51ed608") version("2.3.2", sha256="c62d0158fb287151c978904935a177b3d2d318dea3057cfbeac8541915dfa105") - with when("@:2"): - depends_on("python@3.9:", type=("build", "run"), when="@2.17:") - depends_on("python@3.7:3", type=("build", "run"), when="@2.10") - depends_on("py-setuptools@64:", type="build", when="@2.17:") - depends_on("py-setuptools@38.6.0:", type="build", when="@2.4.0:") - depends_on("py-setuptools@18.0:", type="build") - depends_on("py-setuptools-scm@1.5.5:", type="build") - - depends_on("py-asciitree", type=("build", "run")) - depends_on("py-numpy@1.21.1:", type=("build", "run"), when="@2.17:") - depends_on("py-numpy@1.7:", type=("build", "run")) - # https://github.com/zarr-developers/zarr-python/issues/1818 - depends_on("py-numpy@:1", when="@:2.17", type=("build", "run")) - depends_on("py-fasteners", type=("build", "run")) - depends_on("py-numcodecs@0.10:", type=("build", "run"), when="@2.17:") - depends_on("py-numcodecs@0.6.4:", type=("build", "run"), when="@2.4.0:") - depends_on("py-numcodecs@0.6.2:", type=("build", "run")) + with default_args(type="build"): + depends_on("py-hatchling@1.27:", when="@3.1.1:") + depends_on("py-hatchling", when="@3:") + depends_on("py-hatch-vcs", when="@3:") # Historical dependencies - depends_on("py-msgpack", type=("build", "run"), when="@:2.3.2") - - with when("@3:"): - depends_on("python@3.11:", type=("build", "run")) - depends_on("py-hatchling", type="build") - depends_on("py-hatch-vcs", type="build") - depends_on("py-packaging@22:", type=("build", "run"), when="@3.0:") - # numpy@2: compatible + depends_on("py-setuptools@64:", when="@2.13.4:2") + depends_on("py-setuptools@40.8:", when="@2.5:2") + depends_on("py-setuptools@38.6:", when="@2.4:2") + depends_on("py-setuptools@18.1:", when="@:2") + depends_on("py-setuptools-scm@8.1:", when="@2.18.4:2") + depends_on("py-setuptools-scm@1.5.5:", when="@:2") + + with default_args(type=("build", "run")): + depends_on("python@3.11:", when="@2.18.4:") + depends_on("python@3.10:", when="@2.18.3:") + depends_on("python@3.9:", when="@2.17:") + depends_on("python@3.8:", when="@2.13.4:") + depends_on("python@3.8:3", when="@2.13.0:2.13.3") + depends_on("python@3.7:3", when="@2.9:2.12") + depends_on("python@3.6:3", when="@2.6:2.8") + depends_on("python@3.5:", when="@2.4:2.5") + depends_on("py-packaging@22:", when="@3:") + depends_on("py-numpy@1.26:", when="@3.1:") + depends_on("py-numpy@1.25:", when="@3:") + depends_on("py-numpy@1.24:", when="@2.18.3:") + depends_on("py-numpy@1.23:", when="@2.17.2:") + depends_on("py-numpy@1.21.1:", when="@2.16.1:") + depends_on("py-numpy@1.20,1.21.1:", when="@2.13.4:") + depends_on("py-numpy@1.7:") # https://github.com/zarr-developers/zarr-python/issues/1818 - depends_on("py-numpy@1.25:2", type=("build", "run")) - depends_on("py-numcodecs@0.14:", type=("build", "run")) - depends_on("py-typing-extensions@4.9:", type=("build", "run")) - depends_on("py-donfig@0.8:", type=("build", "run")) + depends_on("py-numpy@:1", when="@:2.17") + depends_on("py-numcodecs@0.14:+crc32c", when="@3:") + depends_on("py-numcodecs@0.10:0.13,0.14.2:0.15", when="@2.18.7") + depends_on("py-numcodecs@0.10:0.13,0.14.2:", when="@2.18.4:2.18.6") + depends_on("py-numcodecs@0.10:", when="@2.13:") + depends_on("py-numcodecs@0.6.4:", when="@2.4:") + depends_on("py-numcodecs@0.6.2:") + depends_on("py-typing-extensions@4.9:", when="@3:") + depends_on("py-donfig@0.8:", when="@3:") + + # Historical dependencies + depends_on("py-asciitree", when="@:2") + depends_on("py-fasteners", when="@:2") diff --git a/repos/spack_repo/builtin/packages/py_zensical/package.py b/repos/spack_repo/builtin/packages/py_zensical/package.py new file mode 100644 index 00000000000..1a8507a9272 --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_zensical/package.py @@ -0,0 +1,37 @@ +# 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 PyZensical(PythonPackage): + """Zensical is a modern static site generator designed to simplify building + and maintaining project documentation. It's built by the creators of Material + for MkDocs and shares the same core design principles and philosophy – + batteries included, easy to use, with powerful customization options.""" + + homepage = "https://zensical.org" + pypi = "zensical/zensical-0.0.29.tar.gz" + + license("MIT", checked_by="abhishek1297") + + version("0.0.29", sha256="0d6282be7cb551e12d5806badf5e94c54a5e2f2cf07057a3e36d1eaf97c33ada") + + # build-only dependencies + depends_on("py-maturin@1.8:1", type="build") + + # build and runtime dependencies + with default_args(type=("build", "run")): + depends_on("python@3.10:") + depends_on("py-click@8.1.8:") + depends_on("py-deepmerge@2.0:") + depends_on("py-markdown@3.7:") + depends_on("py-pygments@2.16:") + depends_on("py-pymdown-extensions@10.15:") + depends_on("py-pyyaml@6.0.2:") + # tomli only needed on Python < 3.11 + # (stdlib tomllib covers 3.11+) + depends_on("py-tomli@2.0:", when="^python@:3.10") diff --git a/repos/spack_repo/builtin/packages/py_zfit/package.py b/repos/spack_repo/builtin/packages/py_zfit/package.py index 3996d1183fc..d0ff2d4e7ab 100644 --- a/repos/spack_repo/builtin/packages/py_zfit/package.py +++ b/repos/spack_repo/builtin/packages/py_zfit/package.py @@ -21,6 +21,9 @@ class PyZfit(PythonPackage): tags = ["likelihood", "statistics", "inference", "fitting", "hep"] + version("0.28.0", sha256="80fb7b0ef5700a38f8dd4e592f3fdf5adb2fe828b1df42ebfba49c22625af55c") + version("0.27.1", sha256="27b16be9ed4619fe437c3f533a671e44329a1172231d87f94ed93d958b7691b9") + version("0.27.0", sha256="2e8a906d56ab33949a241b02002ea1517d515a402e8b9680b6b7d38d75c99fc8") version("0.26.0", sha256="c61e55177055e775fefb6d985b643a7db8e8eb16e872d8dc66434b36f15c0b36") version("0.25.0", sha256="ac5a92bc284094eae55dd9afe1fe2c8f3f67a402dfc7a8ad6087a9ea29ff2b41") version("0.24.3", sha256="0efe47a5c597f7c730ac25495625f8bb4460f2fa4a0f4c387f503339ac8e91b5") @@ -44,10 +47,11 @@ class PyZfit(PythonPackage): version("0.14.1", sha256="66d1e349403f1d6c6350138d0f2b422046bcbdfb34fd95453dadae29a8b0c98a") depends_on("python@3.9:", type=("build", "run")) + depends_on("python@3.10:", type=("build", "run"), when="@0.27:") depends_on("python@:3.11", type=("build", "run"), when="@:0.18") - depends_on("python@:3.12", type=("build", "run"), when="@0.20:") + depends_on("python@:3.12", type=("build", "run"), when="@0.20:0.27") + depends_on("python@:3.13", type=("build", "run"), when="@0.28:") - depends_on("py-hatchling", type="build", when="@0.26:") depends_on("py-hatch-vcs", type="build", when="@0.26:") depends_on("py-setuptools@42:", type="build", when="@:0.25") @@ -62,8 +66,11 @@ class PyZfit(PythonPackage): depends_on("py-tensorflow") depends_on("py-tensorflow-probability") - depends_on("py-tensorflow@2.16.2:2.19", when="@0.25.0:") - depends_on("py-tensorflow-probability@0.25:0.26", when="@0.25.0:") + depends_on("py-tensorflow@2.16:2", when="@0.28:") + depends_on("py-tensorflow-probability@0.25:0", when="@0.28:") + + depends_on("py-tensorflow@2.16.2:2.19", when="@0.25.0:0.27") + depends_on("py-tensorflow-probability@0.25:0.26", when="@0.25.0:0.27") depends_on("py-tensorflow@2.16.2:2.18", when="@0.24.3:0.24") depends_on("py-tensorflow@2.18", when="@0.24:0.24.2") diff --git a/repos/spack_repo/builtin/packages/py_zfit_physics/package.py b/repos/spack_repo/builtin/packages/py_zfit_physics/package.py index e10d55b566c..dbcc9f3aae7 100644 --- a/repos/spack_repo/builtin/packages/py_zfit_physics/package.py +++ b/repos/spack_repo/builtin/packages/py_zfit_physics/package.py @@ -19,13 +19,19 @@ class PyZfitPhysics(PythonPackage): tags = ["likelihood", "statistics", "inference", "fitting", "hep"] + version("0.9.0", sha256="e59b64ead1c92ca43efc4852b40ba345828ff91f47a1e5c0e519c1f27f40c3d4") + version("0.8.1", sha256="8e2c2549665798d806c789943f3cf8a82cf2f93b178e93dbd302bb642fa0fff7") version("0.7.0", sha256="5d65becff7265a12d9b62a8476c5359e75ec10d6ac0fd84dfa39eb82b6693cda") - depends_on("py-setuptools@42:", type="build") - depends_on("py-setuptools-scm@3.4:+toml", type="build") - depends_on("py-setuptools-scm-git-archive", type="build") + depends_on("py-hatchling@1.17.1:", type="build", when="@0.8:") + depends_on("py-hatch-vcs", type="build", when="@0.8:") + + depends_on("py-setuptools@42:", type="build", when="@:0.7") + depends_on("py-setuptools-scm@3.4:+toml", type="build", when="@:0.7") + depends_on("py-setuptools-scm-git-archive", type="build", when="@:0.7") # TODO: remove "build" once fixed in spack that tests need "run", not "build" with default_args(type=("build", "run")): + depends_on("python@3.10:", when="@0.8:") depends_on("python@3.9:", when="@0.7:") depends_on("py-zfit@0.20:", when="@0.7:") diff --git a/repos/spack_repo/builtin/packages/py_zipp/package.py b/repos/spack_repo/builtin/packages/py_zipp/package.py index d9bc89d5727..f0bfb777e0e 100644 --- a/repos/spack_repo/builtin/packages/py_zipp/package.py +++ b/repos/spack_repo/builtin/packages/py_zipp/package.py @@ -15,19 +15,31 @@ class PyZipp(PythonPackage): license("MIT") + version("3.23.1", sha256="32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110") + version("3.23.0", sha256="a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166") version("3.17.0", sha256="84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0") version("3.8.1", sha256="05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2") version("3.6.0", sha256="71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832") version("0.6.0", sha256="3718b1cbcd963c7d4c5511a8240812904164b7f381b647143a89d3b98f9bcd8e") version("0.5.1", sha256="ca943a7e809cc12257001ccfb99e3563da9af99d52f261725e96dfe0f9275bc3") + depends_on("python@3.9:", when="@3.21:", type=("build", "run")) depends_on("python@3.8:", when="@3.16:", type=("build", "run")) # needed for spack bootstrap as spack itself supports python 3.6 depends_on("python@3.7:", when="@3.8.1:", type=("build", "run")) + depends_on("py-setuptools@77:", when="@3.22:", type="build") depends_on("py-setuptools@56:", when="@3.5.1:", type="build") depends_on("py-setuptools@34.4:", when="@0.3.3:", type="build") depends_on("py-setuptools-scm@3.4.1: +toml", when="@2.0.1:", type="build") depends_on("py-setuptools-scm@1.15.0:", type="build") + depends_on("py-coherent-licensed", when="@3.22:", type="build") # Historical dependencies depends_on("py-more-itertools", type=("build", "run"), when="@0.6.0:2.1.0") + + # py-setuptools@61: supports PEP 621 which recommends the following syntax + # license = { text = "MIT" } + @when("^py-setuptools@61:") + def patch(self): + pyproject = "pyproject.toml" + filter_file(r'license\s*=\s*"([^"]+)"', r'license = { text = "\1" }', pyproject) diff --git a/repos/spack_repo/builtin/packages/py_zope_interface/package.py b/repos/spack_repo/builtin/packages/py_zope_interface/package.py index 7ac5c17601a..bad01b2f2e6 100644 --- a/repos/spack_repo/builtin/packages/py_zope_interface/package.py +++ b/repos/spack_repo/builtin/packages/py_zope_interface/package.py @@ -34,15 +34,6 @@ class PyZopeInterface(PythonPackage): version("5.4.0", sha256="5dba5f530fec3f0988d83b78cc591b58c0b6eb8431a85edd1569a0539a8a5a0e") version("5.1.0", sha256="40e4c42bd27ed3c11b2c983fecfb03356fae1209de10686d03c02c8696a1d90e") - with default_args(deprecated=True): - version("4.5.0", sha256="57c38470d9f57e37afb460c399eb254e7193ac7fb8042bd09bdc001981a9c74c") - with default_args(type=("build", "run")): - depends_on("python@3.8:", when="@7:") - depends_on("python@3.7:", when="@6:") - depends_on("python@2.7:2.8,3.5:", when="@5.1.0:") - depends_on("python@2.7:2.8,3.4:", when="@4.5.0") - depends_on("py-setuptools@:73", when="@7.1:") - depends_on("py-setuptools@:45", when="@4.5.0") depends_on("py-setuptools") diff --git a/repos/spack_repo/builtin/packages/py_zstandard/package.py b/repos/spack_repo/builtin/packages/py_zstandard/package.py index a96b4c17df0..990824f799d 100644 --- a/repos/spack_repo/builtin/packages/py_zstandard/package.py +++ b/repos/spack_repo/builtin/packages/py_zstandard/package.py @@ -14,8 +14,25 @@ class PyZstandard(PythonPackage): license("BSD", checked_by="teaguesterling") + version("0.25.0", sha256="7713e1179d162cf5c7906da876ec2ccb9c3a9dcbdffef0cc7f70c3667a205f0b") + version("0.24.0", sha256="fe3198b81c00032326342d973e526803f183f97aa9e9a98e3f897ebafe21178f") + version("0.23.0", sha256="b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09") version("0.22.0", sha256="8226a33c542bcb54cd6bd0a366067b610b41713b64c9abec1bc4533d69f51e70") - depends_on("py-cffi@1.16.0:") - depends_on("py-setuptools@:68", type="build") + depends_on("python@3.9:", when="@0.24:", type=("build", "run")) + depends_on("python@3.8:", type=("build", "run")) + + depends_on("py-setuptools@77:", when="@0.25:", type="build") + depends_on("py-setuptools", when="@0.24", type="build") + depends_on("py-setuptools@:68", when="@:0.23", type="build") + depends_on("py-wheel@0.41.2", when="@0.22", type="build") + depends_on("py-packaging", when="@0.24:", type="build") + + depends_on("py-cffi@2:", when="@0.25: ^python@3.14:", type=("build", "run")) + depends_on("py-cffi@1.17:", when="@0.25: ^python@:3.13", type=("build", "run")) + depends_on("py-cffi@1.17:", when="@0.24 ^python@3.13:", type=("build", "run")) + depends_on("py-cffi@1.17:", when="@0.23 ^python@3.13:", type=("build", "run")) + depends_on("py-cffi@1.16:", when="@0.23 ^python@:3.12", type=("build", "run")) + depends_on("py-cffi@1.16.0:", when="@0.22", type=("build", "run")) + depends_on("zstd") diff --git a/repos/spack_repo/builtin/packages/py_zxcvbn/package.py b/repos/spack_repo/builtin/packages/py_zxcvbn/package.py index 64e66ea76af..0ead9d869b1 100644 --- a/repos/spack_repo/builtin/packages/py_zxcvbn/package.py +++ b/repos/spack_repo/builtin/packages/py_zxcvbn/package.py @@ -18,6 +18,7 @@ class PyZxcvbn(PythonPackage): license("MIT") + version("4.5.0", sha256="5e4efc8c9ef2a50220fb627066e4b698482643070ab2a51e020bd85957595271") version("4.4.28", sha256="b7275765acdf8028c21aa502d742e56de2252bac604c04ba5e336c39f88d5576") version("4.4.27", sha256="9b84927fff7b4cc557b63a49adbd74f7a92026e25edd9e1b2867c1610d15fa5d") version("4.4.26", sha256="ee498e9257742972950f33540f0e36112db14c636417ce5b53d99a492dad8aba") diff --git a/repos/spack_repo/builtin/packages/pyrefly/package.py b/repos/spack_repo/builtin/packages/pyrefly/package.py new file mode 100644 index 00000000000..9dde0f9b87f --- /dev/null +++ b/repos/spack_repo/builtin/packages/pyrefly/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 Pyrefly(PythonPackage): + """A fast type checker and language server for Python with powerful IDE features.""" + + homepage = "https://pyrefly.org/" + pypi = "pyrefly/pyrefly-0.58.0.tar.gz" + + license("MIT") + + version("0.58.0", sha256="4512b89cd8db95e8994537895ff41ad60e6211643442f8e33ed93bb59f88a256") + + depends_on("py-maturin@1.10.2:1", type="build") diff --git a/repos/spack_repo/builtin/packages/pythia6/package.py b/repos/spack_repo/builtin/packages/pythia6/package.py index d6295f57c5f..be1760f6078 100644 --- a/repos/spack_repo/builtin/packages/pythia6/package.py +++ b/repos/spack_repo/builtin/packages/pythia6/package.py @@ -110,9 +110,15 @@ class Pythia6(CMakePackage): # Docs. docs = { - "https://pythia.org/download/pythia6/pythia6428.update": "a229be4ba9a4eb65a9d53600a5f388b620038d56694c6cb4671c2be224b67751", - "https://pythia.org/download/pythia6/lutp0613man2.pdf": "03d637310ea80f0d7aea761492bd38452c602890d8cf913a1ec9edacd79fa43d", - "https://pythia.org/download/misc/pythia6plans.txt": "1befc8c6e641051a97a53ba4df7f890bf0c4d6ba9e0774c03df69b0fef481d89", + "https://pythia.org/download/pythia6/pythia6428.update": ( + "a229be4ba9a4eb65a9d53600a5f388b620038d56694c6cb4671c2be224b67751" + ), + "https://pythia.org/download/pythia6/lutp0613man2.pdf": ( + "03d637310ea80f0d7aea761492bd38452c602890d8cf913a1ec9edacd79fa43d" + ), + "https://pythia.org/download/misc/pythia6plans.txt": ( + "1befc8c6e641051a97a53ba4df7f890bf0c4d6ba9e0774c03df69b0fef481d89" + ), } for docurl, checksum in docs.items(): @@ -135,6 +141,7 @@ class Pythia6(CMakePackage): depends_on("c", type="build") depends_on("fortran", type="build") + depends_on("patch", type="build") def patch(self): # Use our provided CMakeLists.txt. The Makefile provided with diff --git a/repos/spack_repo/builtin/packages/pythia8/package.py b/repos/spack_repo/builtin/packages/pythia8/package.py index dcd0ff7a928..725ded34b83 100644 --- a/repos/spack_repo/builtin/packages/pythia8/package.py +++ b/repos/spack_repo/builtin/packages/pythia8/package.py @@ -23,6 +23,10 @@ class Pythia8(AutotoolsPackage): license("GPL-2.0-only") + version("8.317", sha256="1ae551d14dac495ddfe6b344792035ebe410fe6c6004d44a335e0ece0e745adf") + version("8.316", sha256="1d99301aafd6896b57435edd73850e53f368f0021a647b12cf25584d77313489") + version("8.315", sha256="4b2fe7341e33e90b7226fdcaa2a7bf9327987b3354e84c04f1fd9256863690ae") + version("8.314", sha256="4f853fceb0291f2472c6d3cd3a31f9a2ffff4435a02a24124304ca6aac8caabe") version("8.313", sha256="d07e801501c4dcb76d948dc63285375f597453c1d6ec65e71287603dc776718c") version("8.312", sha256="bad98e2967b687046c4568c9091d630a0c31b628745c021a994aba4d1d50f8ea") version("8.311", sha256="2782d5e429c1543c67375afe547fd4c4ca0720309deb008f7db78626dc7d1464") @@ -35,31 +39,6 @@ class Pythia8(AutotoolsPackage): version("8.303", sha256="cd7c2b102670dae74aa37053657b4f068396988ef7da58fd3c318c84dc37913e") version("8.302", sha256="7372e4cc6f48a074e6b7bc426b040f218ec4a64b0a55e89da6af56933b5f5085") version("8.301", sha256="51382768eb9aafb97870dca1909516422297b64ef6a6b94659259b3e4afa7f06") - version( - "8.244", - sha256="e34880f999daf19cdd893a187123927ba77d1bf851e30f6ea9ec89591f4c92ca", - deprecated=True, - ) - version( - "8.240", - sha256="d27495d8ca7707d846f8c026ab695123c7c78c7860f04e2c002e483080418d8d", - deprecated=True, - ) - version( - "8.235", - sha256="e82f0d6165a8250a92e6aa62fb53201044d8d853add2fdad6d3719b28f7e8e9d", - deprecated=True, - ) - version( - "8.230", - sha256="332fad0ed4f12e6e0cb5755df0ae175329bc16bfaa2ae472d00994ecc99cd78d", - deprecated=True, - ) - version( - "8.212", - sha256="f8fb4341c7e8a8be3347eb26b00329a388ccf925313cfbdba655a08d7fd5a70e", - deprecated=True, - ) variant( "cxxstd", @@ -102,6 +81,7 @@ class Pythia8(AutotoolsPackage): variant("mpich", default=False, description="Multi-threading support via MPICH") variant("hdf5", default=False, description="Support the use of HDF5 format") + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("zlib-api", when="+gzip") @@ -112,7 +92,6 @@ class Pythia8(AutotoolsPackage): depends_on("evtgen", when="+evtgen") depends_on("fastjet@3.0.0:", when="+fastjet") depends_on("lhapdf@6.2:", when="+lhapdf") - depends_on("boost", when="+lhapdf @:8.213") depends_on("rivet", when="+rivet") depends_on("yoda", when="@:8.312 +rivet") depends_on("yoda@2:", when="+yoda") diff --git a/repos/spack_repo/builtin/packages/python/package.py b/repos/spack_repo/builtin/packages/python/package.py index cf2ce149364..623ed470765 100644 --- a/repos/spack_repo/builtin/packages/python/package.py +++ b/repos/spack_repo/builtin/packages/python/package.py @@ -9,6 +9,9 @@ import re import subprocess import sys +from pathlib import Path +from shutil import copy +from typing import Dict, List from spack_repo.builtin.build_systems.generic import Package @@ -43,7 +46,7 @@ class Python(Package): list_depth = 1 tags = ["windows", "build-tools"] - maintainers("skosukhin", "scheibelp") + maintainers("adamjstewart", "scheibelp") phases = ["configure", "build", "install"] @@ -53,221 +56,116 @@ class Python(Package): license("0BSD") - version("3.13.5", sha256="e6190f52699b534ee203d9f417bdbca05a92f23e35c19c691a50ed2942835385") - version("3.13.4", sha256="2666038f1521b7a8ec34bf2997b363778118d6f3979282c93723e872bcd464e0") - version("3.13.3", sha256="988d735a6d33568cbaff1384a65cb22a1fb18a9ecb73d43ef868000193ce23ed") - version("3.13.2", sha256="b8d79530e3b7c96a5cb2d40d431ddb512af4a563e863728d8713039aa50203f9") - version("3.13.1", sha256="1513925a9f255ef0793dbf2f78bb4533c9f184bdd0ad19763fd7f47a400a7c55") - version("3.13.0", sha256="12445c7b3db3126c41190bfdc1c8239c39c719404e844babbd015a1bc3fafcd4") - version("3.12.9", sha256="45313e4c5f0e8acdec9580161d565cf5fea578e3eabf25df7cc6355bf4afa1ee") - version("3.12.8", sha256="5978435c479a376648cb02854df3b892ace9ed7d32b1fead652712bee9d03a45") - version("3.12.7", sha256="73ac8fe780227bf371add8373c3079f42a0dc62deff8d612cd15a618082ab623") - version("3.11.11", sha256="883bddee3c92fcb91cf9c09c5343196953cbb9ced826213545849693970868ed") - version("3.10.16", sha256="f2e22ed965a93cfeb642378ed6e6cdbc127682664b24123679f3d013fafe9cd0") - version("3.9.21", sha256="667c3ba2ca98d39ead1162f6548c3475768582e2ff89e0821d25eb956ac09944") + version("3.14.5", sha256="9c22bfe9939a6c5418fc74b289a5f1cc41859ae82ac6b163016b5844bd0a86bc") + version("3.13.13", sha256="f9cde7b0e2ec8165d7326e2a0f59ea2686ce9d0c617dbbb3d66a7e54d31b74b9") + version("3.12.13", sha256="0816c4761c97ecdb3f50a3924de0a93fd78cb63ee8e6c04201ddfaedca500b0b") + version("3.11.15", sha256="f4de1b10bd6c70cbb9fa1cd71fc5038b832747a74ee59d599c69ce4846defb50") + version("3.10.20", sha256="4ff5fd4c5bab803b935019f3e31d7219cebd6f870d00389cea53b88bbe935d1a") - # For module hierarchy (JCSDA repo only): - provides("python_virtual") - - # EOL versions we still want to be able to install + # Deprecated because newer bug fix patch releases exist with default_args(deprecated=True): version( - "3.8.20", sha256="9f2d5962c2583e67ef75924cd56d0c1af78bf45ec57035cf8a2cc09f74f4bf78" - ) - version( - "3.7.17", sha256="fd50161bc2a04f4c22a0971ff0f3856d98b4bf294f89740a9f06b520aae63b49" - ) - version( - "3.6.15", sha256="54570b7e339e2cfd72b29c7e2fdb47c0b7b18b7412e61de5b463fc087c13b043" - ) - - # Old patch versions to be removed in the next Spack version - with default_args(deprecated=True): - version( - "3.12.6", sha256="85a4c1be906d20e5c5a69f2466b00da769c221d6a684acfd3a514dbf5bf10a66" - ) - version( - "3.12.5", sha256="38dc4e2c261d49c661196066edbfb70fdb16be4a79cc8220c224dfeb5636d405" - ) - version( - "3.12.4", sha256="01b3c1c082196f3b33168d344a9c85fb07bfe0e7ecfe77fee4443420d1ce2ad9" - ) - version( - "3.12.3", sha256="a6b9459f45a6ebbbc1af44f5762623fa355a0c87208ed417628b379d762dddb0" - ) - version( - "3.12.2", sha256="a7c4f6a9dc423d8c328003254ab0c9338b83037bd787d680826a5bf84308116e" - ) - version( - "3.12.1", sha256="d01ec6a33bc10009b09c17da95cc2759af5a580a7316b3a446eb4190e13f97b2" - ) - version( - "3.12.0", sha256="51412956d24a1ef7c97f1cb5f70e185c13e3de1f50d131c0aac6338080687afb" - ) - version( - "3.11.10", sha256="92f2faf242681bfa406d53a51e17d42c5373affe23a130cd9697e132ef574706" - ) - version( - "3.11.9", sha256="e7de3240a8bc2b1e1ba5c81bf943f06861ff494b69fda990ce2722a504c6153d" - ) - version( - "3.11.8", sha256="d3019a613b9e8761d260d9ebe3bd4df63976de30464e5c0189566e1ae3f61889" - ) - version( - "3.11.7", sha256="068c05f82262e57641bd93458dfa883128858f5f4997aad7a36fd25b13b29209" - ) - version( - "3.11.6", sha256="c049bf317e877cbf9fce8c3af902436774ecef5249a29d10984ca3a37f7f4736" - ) - version( - "3.11.5", sha256="a12a0a013a30b846c786c010f2c19dd36b7298d888f7c4bd1581d90ce18b5e58" - ) - version( - "3.11.4", sha256="85c37a265e5c9dd9f75b35f954e31fbfc10383162417285e30ad25cc073a0d63" - ) - version( - "3.11.3", sha256="1a79f3df32265d9e6625f1a0b31c28eb1594df911403d11f3320ee1da1b3e048" - ) - version( - "3.11.2", sha256="2411c74bda5bbcfcddaf4531f66d1adc73f247f529aee981b029513aefdbf849" + "3.14.4", sha256="b4c059d5895f030e7df9663894ce3732bfa1b32cd3ab2883980266a45ce3cb3b" ) version( - "3.11.1", sha256="baed518e26b337d4d8105679caf68c5c32630d702614fc174e98cb95c46bdfa4" + "3.14.3", sha256="d7fe130d0501ae047ca318fa92aa642603ab6f217901015a1df6ce650d5470cd" ) version( - "3.11.0", sha256="64424e96e2457abbac899b90f9530985b51eef2905951febd935f0e73414caeb" + "3.14.2", sha256="c609e078adab90e2c6bacb6afafacd5eaf60cd94cf670f1e159565725fcd448d" ) version( - "3.10.15", sha256="a27864e5ba2a4474f8f6c58ab92ff52767ac8b66f1646923355a53fe3ef15074" + "3.14.0", sha256="88d2da4eed42fa9a5f42ff58a8bc8988881bd6c547e297e46682c2687638a851" ) version( - "3.10.14", sha256="cefea32d3be89c02436711c95a45c7f8e880105514b78680c14fe76f5709a0f6" + "3.13.12", sha256="12e7cb170ad2d1a69aee96a1cc7fc8de5b1e97a2bdac51683a3db016ec9a2996" ) version( - "3.10.13", sha256="698ec55234c1363bd813b460ed53b0f108877c7a133d48bde9a50a1eb57b7e65" + "3.13.11", sha256="03cfedbe06ce21bc44ce09245e091a77f2fee9ec9be5c52069048a181300b202" ) version( - "3.10.12", sha256="a43cd383f3999a6f4a7db2062b2fc9594fefa73e175b3aedafa295a51a7bb65c" + "3.13.8", sha256="06108fe96f4089b7d9e0096cb4ca9c81ddcd5135f779a7de94cf59abcaa4b53f" ) version( - "3.10.11", sha256="f3db31b668efa983508bd67b5712898aa4247899a346f2eb745734699ccd3859" + "3.13.7", sha256="6c9d80839cfa20024f34d9a6dd31ae2a9cd97ff5e980e969209746037a5153b2" ) version( - "3.10.10", sha256="fba64559dde21ebdc953e4565e731573bb61159de8e4d4cedee70fb1196f610d" + "3.13.5", sha256="e6190f52699b534ee203d9f417bdbca05a92f23e35c19c691a50ed2942835385" ) version( - "3.10.9", sha256="4ccd7e46c8898f4c7862910a1703aa0e63525913a519abb2f55e26220a914d88" + "3.13.4", sha256="2666038f1521b7a8ec34bf2997b363778118d6f3979282c93723e872bcd464e0" ) version( - "3.10.8", sha256="f400c3fb394b8bef1292f6dc1292c5fadc3533039a5bc0c3e885f3e16738029a" + "3.13.3", sha256="988d735a6d33568cbaff1384a65cb22a1fb18a9ecb73d43ef868000193ce23ed" ) version( - "3.10.7", sha256="1b2e4e2df697c52d36731666979e648beeda5941d0f95740aafbf4163e5cc126" + "3.13.2", sha256="b8d79530e3b7c96a5cb2d40d431ddb512af4a563e863728d8713039aa50203f9" ) version( - "3.10.6", sha256="848cb06a5caa85da5c45bd7a9221bb821e33fc2bdcba088c127c58fad44e6343" + "3.13.1", sha256="1513925a9f255ef0793dbf2f78bb4533c9f184bdd0ad19763fd7f47a400a7c55" ) version( - "3.10.5", sha256="18f57182a2de3b0be76dfc39fdcfd28156bb6dd23e5f08696f7492e9e3d0bf2d" + "3.13.0", sha256="12445c7b3db3126c41190bfdc1c8239c39c719404e844babbd015a1bc3fafcd4" ) version( - "3.10.4", sha256="f3bcc65b1d5f1dc78675c746c98fcee823c038168fc629c5935b044d0911ad28" + "3.12.12", sha256="487c908ddf4097a1b9ba859f25fe46d22ccaabfb335880faac305ac62bffb79b" ) version( - "3.10.3", sha256="5a3b029bad70ba2a019ebff08a65060a8b9b542ffc1a83c697f1449ecca9813b" + "3.12.11", sha256="7b8d59af8216044d2313de8120bfc2cc00a9bd2e542f15795e1d616c51faf3d6" ) version( - "3.10.2", sha256="3c0ede893011319f9b0a56b44953a3d52c7abf9657c23fb4bc9ced93b86e9c97" + "3.12.9", sha256="45313e4c5f0e8acdec9580161d565cf5fea578e3eabf25df7cc6355bf4afa1ee" ) version( - "3.10.1", sha256="b76117670e7c5064344b9c138e141a377e686b9063f3a8a620ff674fa8ec90d3" + "3.12.8", sha256="5978435c479a376648cb02854df3b892ace9ed7d32b1fead652712bee9d03a45" ) version( - "3.10.0", sha256="c4e0cbad57c90690cb813fb4663ef670b4d0f587d8171e2c42bd4c9245bd2758" + "3.12.7", sha256="73ac8fe780227bf371add8373c3079f42a0dc62deff8d612cd15a618082ab623" ) version( - "3.9.20", sha256="1e71f006222666e0a39f5a47be8221415c22c4dd8f25334cc41aee260b3d379e" + "3.11.14", sha256="563d2a1b2a5ba5d5409b5ecd05a0e1bf9b028cf3e6a6f0c87a5dc8dc3f2d9182" ) version( - "3.9.19", sha256="f5f9ec8088abca9e399c3b62fd8ef31dbd2e1472c0ccb35070d4d136821aaf71" + "3.11.13", sha256="0f1a22f4dfd34595a29cf69ee7ea73b9eff8b1cc89d7ab29b3ab0ec04179dad8" ) version( - "3.9.18", sha256="504ce8cfd59addc04c22f590377c6be454ae7406cb1ebf6f5a350149225a9354" + "3.11.11", sha256="883bddee3c92fcb91cf9c09c5343196953cbb9ced826213545849693970868ed" ) version( - "3.9.17", sha256="8ead58f669f7e19d777c3556b62fae29a81d7f06a7122ff9bc57f7dd82d7e014" + "3.10.19", sha256="a078fb2d7a216071ebbe2e34b5f5355dd6b6e9b0cd1bacc4a41c63990c5a0eec" ) version( - "3.9.16", sha256="1ad539e9dbd2b42df714b69726e0693bc6b9d2d2c8e91c2e43204026605140c5" + "3.10.18", sha256="1b19ab802518eb36a851f5ddef571862c7a31ece533109a99df6d5af0a1ceb99" ) version( - "3.9.15", sha256="48d1ccb29d5fbaf1fb8f912271d09f7450e426d4dfe95978ef6aaada70ece4d8" + "3.10.16", sha256="f2e22ed965a93cfeb642378ed6e6cdbc127682664b24123679f3d013fafe9cd0" ) version( - "3.9.14", sha256="9201836e2c16361b2b7408680502393737d44f227333fe2e5729c7d5f6041675" + "3.9.24", sha256="9a32cfc683aecaadbd9ed891ac2af9451ff37f48a00a2d8e1f4ecd9c2a1ffdcb" ) version( - "3.9.13", sha256="829b0d26072a44689a6b0810f5b4a3933ee2a0b8a4bfc99d7c5893ffd4f97c44" + "3.9.23", sha256="9a69aad184dc1d06f6819930741da3a328d34875a41f8ba33875774dbfc51b51" ) version( - "3.9.12", sha256="70e08462ebf265012bd2be88a63d2149d880c73e53f1712b7bbbe93750560ae8" - ) - version( - "3.9.11", sha256="3442400072f582ac2f0df30895558f08883b416c8c7877ea55d40d00d8a93112" - ) - version( - "3.9.10", sha256="1aa9c0702edbae8f6a2c95f70a49da8420aaa76b7889d3419c186bfc8c0e571e" - ) - version("3.9.9", sha256="2cc7b67c1f3f66c571acc42479cdf691d8ed6b47bee12c9b68430413a17a44ea") - version("3.9.8", sha256="7447fb8bb270942d620dd24faa7814b1383b61fa99029a240025fd81c1db8283") - version("3.9.7", sha256="a838d3f9360d157040142b715db34f0218e535333696a5569dc6f854604eb9d1") - version("3.9.6", sha256="d0a35182e19e416fc8eae25a3dcd4d02d4997333e4ad1f2eee6010aadc3fe866") - version("3.9.5", sha256="e0fbd5b6e1ee242524430dee3c91baf4cbbaba4a72dd1674b90fda87b713c7ab") - version("3.9.4", sha256="66c4de16daa74a825cf9da9ddae1fe020b72c3854b73b1762011cc33f9e4592f") - version("3.9.3", sha256="3afeb61a45b5a2e6f1c0f621bd8cf925a4ff406099fdb3d8c97b993a5f43d048") - version("3.9.2", sha256="7899e8a6f7946748830d66739f2d8f2b30214dad956e56b9ba216b3de5581519") - version("3.9.1", sha256="29cb91ba038346da0bd9ab84a0a55a845d872c341a4da6879f462e94c741f117") - version("3.9.0", sha256="df796b2dc8ef085edae2597a41c1c0a63625ebd92487adaef2fed22b567873e8") - version( - "3.8.19", sha256="c7fa55a36e5c7a19ec37d8f90f60a2197548908c9ac8b31e7c0dbffdd470eeac" - ) - version( - "3.8.18", sha256="7c5df68bab1be81a52dea0cc2e2705ea00553b67107a301188383d7b57320b16" - ) - version( - "3.8.17", sha256="def428fa6cf61b66bcde72e3d9f7d07d33b2e4226f04f9d6fce8384c055113ae" - ) - version( - "3.8.16", sha256="71ca9d935637ed2feb59e90a368361dc91eca472a90acb1d344a2e8178ccaf10" - ) - version( - "3.8.15", sha256="924d46999df82aa2eaa1de5ca51d6800ffb56b4bf52486a28f40634e3362abc4" - ) - version( - "3.8.14", sha256="41f959c480c59211feb55d5a28851a56c7e22d02ef91035606ebb21011723c31" + "3.9.21", sha256="667c3ba2ca98d39ead1162f6548c3475768582e2ff89e0821d25eb956ac09944" ) + + # For module hierarchy (JCSDA repo only): + provides("python_virtual") + + # EOL versions we still want to be able to install + with default_args(deprecated=True): version( - "3.8.13", sha256="903b92d76354366b1d9c4434d0c81643345cef87c1600adfa36095d7b00eede4" + "3.9.25", sha256="a7438eabd3a48139f42d4e058096af8d880b0bb6e8fb8c78838892e4ce5583f2" ) version( - "3.8.12", sha256="316aa33f3b7707d041e73f246efedb297a70898c4b91f127f66dc8d80c596f1a" + "3.8.20", sha256="9f2d5962c2583e67ef75924cd56d0c1af78bf45ec57035cf8a2cc09f74f4bf78" ) version( - "3.8.11", sha256="b77464ea80cec14581b86aeb7fb2ff02830e0abc7bcdc752b7b4bdfcd8f3e393" + "3.7.17", sha256="fd50161bc2a04f4c22a0971ff0f3856d98b4bf294f89740a9f06b520aae63b49" ) version( - "3.8.10", sha256="b37ac74d2cbad2590e7cd0dd2b3826c29afe89a734090a87bf8c03c45066cb65" + "3.6.15", sha256="54570b7e339e2cfd72b29c7e2fdb47c0b7b18b7412e61de5b463fc087c13b043" ) - version("3.8.9", sha256="9779ec1df000bf86914cdd40860b88da56c1e61db59d37784beca14a259ac9e9") - version("3.8.8", sha256="76c0763f048e4f9b861d24da76b7dd5c7a3ba7ec086f40caedeea359263276f7") - version("3.8.7", sha256="20e5a04262f0af2eb9c19240d7ec368f385788bba2d8dfba7e74b20bab4d2bac") - version("3.8.6", sha256="313562ee9986dc369cd678011bdfd9800ef62fbf7b1496228a18f86b36428c21") - version("3.8.5", sha256="015115023c382eb6ab83d512762fe3c5502fa0c6c52ffebc4831c4e1a06ffc49") - version("3.8.4", sha256="32c4d9817ef11793da4d0d95b3191c4db81d2e45544614e8449255ca9ae3cc18") - version("3.8.3", sha256="6af6d4d2e010f9655518d0fc6738c7ff7069f10a4d2fbd55509e467f092a8b90") - version("3.8.2", sha256="e634a7a74776c2b89516b2e013dda1728c89c8149b9863b8cea21946daf9d561") - version("3.8.1", sha256="c7cfa39a43b994621b245e029769e9126caa2a93571cee2e743b213cceac35fb") - version("3.8.0", sha256="f1069ad3cae8e7ec467aa98a6565a62a48ef196cb8f1455a245a08db5e1792df") extendable = True @@ -279,6 +177,8 @@ class Python(Package): ) variant("shared", default=True, description="Enable shared libraries") + variant("static", default=False, description="Enable static libraries") + variant("tests", default=False, description="Build and install tests") variant("pic", default=True, description="Produce position-independent code (for shared libs)") variant( "optimizations", @@ -300,6 +200,7 @@ class Python(Package): variant("zlib", default=True, description="Build zlib module") variant("bz2", default=True, description="Build bz2 module") variant("lzma", default=True, description="Build lzma module") + variant("zstd", default=True, description="Build zstd module", when="@3.14:") variant("pyexpat", default=True, description="Build pyexpat module") variant("ctypes", default=True, description="Build ctypes module") variant("tkinter", default=False, description="Build tkinter module") @@ -307,15 +208,22 @@ class Python(Package): variant("tix", default=False, description="Build Tix module", when="+tkinter") variant("crypt", default=True, description="Build crypt module", when="@:3.12 platform=linux") variant("crypt", default=True, description="Build crypt module", when="@:3.12 platform=darwin") + variant( + "freethreading", + default=False, + description="Removes the Global Interpreter Lock", + when="@3.13:", + ) depends_on("c", type="build") depends_on("cxx", type="build") if sys.platform != "win32": depends_on("gmake", type="build") - depends_on("pkgconfig@0.9.0:", type="build") + depends_on("pkgconfig", type="build") depends_on("gettext +libxml2", when="+libxml2") - depends_on("gettext ~libxml2", when="~libxml2") + depends_on("iconv", when="~libxml2") + depends_on("gettext ~libxml2", when="~libxml2 ^[virtuals=iconv]gettext") # Optional dependencies # See detect_modules() in setup.py for details @@ -333,6 +241,7 @@ class Python(Package): depends_on("zlib-api", when="+zlib") depends_on("bzip2", when="+bz2") depends_on("xz libs=shared", when="+lzma") + depends_on("zstd libs=shared", when="+zstd") depends_on("expat", when="+pyexpat") depends_on("libffi", when="+ctypes") # https://docs.python.org/3/whatsnew/3.11.html#build-changes @@ -426,6 +335,14 @@ def determine_variants(cls, exes, version_str): else: variants += "~pythoncmd" + if Version(version_str) >= Version("3.13"): + for exe in exes: + if exe.endswith("t"): + variants += "+freethreading" + break + else: + variants += "~freethreading" + for module in [ "readline", "sqlite3", @@ -466,6 +383,13 @@ def determine_variants(cls, exes, version_str): except ProcessError: variants += "~tix" + if Version(version_str) >= Version("3.14"): + try: + python("-c", "import compression.zstd", error=os.devnull) + variants += "+zstd" + except ProcessError: + variants += "~zstd" + # Some modules are platform-dependent if sys.platform != "win32" and Version(version_str) < Version("3.13"): try: @@ -612,41 +536,76 @@ def win_installer(self, prefix): Parameters: prefix (str): Install prefix for package """ - proj_root = self.stage.source_path - pcbuild_root = os.path.join(proj_root, "PCbuild") - build_root = os.path.join(pcbuild_root, platform.machine().lower()) - include_dir = os.path.join(proj_root, "Include") - copy_tree(include_dir, prefix.include) - doc_dir = os.path.join(proj_root, "Doc") - copy_tree(doc_dir, prefix.Doc) - tools_dir = os.path.join(proj_root, "Tools") - copy_tree(tools_dir, prefix.Tools) - lib_dir = os.path.join(proj_root, "Lib") - copy_tree(lib_dir, prefix.Lib) - if self.spec.satisfies("@3.13:"): - pyconfig = os.path.join(pcbuild_root, platform.machine().lower(), "pyconfig.h") + proj_root = Path(self.stage.source_path) + pcbuild_root = proj_root / "PCbuild" + build_root = pcbuild_root / platform.machine().lower() + # install headers + include_dir = proj_root / "Include" + copy_tree(str(include_dir), prefix.include) + if self.spec.satisfies("@3.13"): # reverted in 3.14 + pyconfig = pcbuild_root / platform.machine().lower() / "pyconfig.h" else: - pyconfig = os.path.join(proj_root, "PC", "pyconfig.h") - copy(pyconfig, prefix.include) - shared_libraries = [] - shared_libraries.extend(glob.glob("%s\\*.exe" % build_root)) - shared_libraries.extend(glob.glob("%s\\*.dll" % build_root)) - shared_libraries.extend(glob.glob("%s\\*.pyd" % build_root)) + pyconfig = proj_root / "PC" / "pyconfig.h" + copy(str(pyconfig), prefix.include) + # install docs + doc_dir = proj_root / "Doc" + copy_tree(str(doc_dir), prefix.Doc) + # install tools + tools_dir = proj_root / "Tools" + copy_tree(str(tools_dir), prefix.Tools) + # install stdlib python modules + lib_dir = proj_root / "Lib" + copy_tree(str(lib_dir), prefix.Lib) + + # locate and track all pdb files + pdbs = glob.glob(f"{str(build_root)}\\*.pdb") + pdb_assoc = {} + for pdb in pdbs: + filename = os.path.splitext(os.path.basename(pdb))[0] + pdb_assoc[filename] = pdb + + def install_pdb(binary: str, loc: str): + file_name = os.path.splitext(os.path.basename(binary))[0] + if file_name in pdb_assoc: + copy(pdb_assoc[file_name], loc) + + # handle executables + executables = glob.glob(f"{str(build_root)}\\*.exe") + for exe in executables: + copy(exe, prefix) + install_pdb(exe, prefix) + + # setup venv module correctly + venv_binaries = ("python.exe", "pythonw.exe") + if self.spec.satisfies("@3.13:"): + # 3.13 installs two new executables rather than copying + # python.exe into the venv module + # there are essentially just python.exe with a different name + # and are renamed to python.exe by the venv module when venvs + # are created + venv_binaries = ("venvlauncher.exe", "venvwlauncher.exe") + for binary in venv_binaries: + copy(str(build_root / binary), prefix.Lib.venv.scripts.nt) + + # handle shared libraries + shared_libraries = glob.glob(f"{str(build_root)}\\*.dll") + shared_libraries.extend(glob.glob(f"{str(build_root)}\\*.pyd")) os.makedirs(prefix.DLLs) for lib in shared_libraries: - file_name = os.path.basename(lib) - if ( - file_name.endswith(".exe") - or (file_name.endswith(".dll") and "python" in file_name) - or "vcruntime" in file_name - ): - copy(lib, prefix) - else: - copy(lib, prefix.DLLs) - static_libraries = glob.glob("%s\\*.lib" % build_root) + libname = os.path.basename(lib) + dest = prefix.DLLs + if "python" in libname or "vcruntime" in libname: + dest = prefix + + copy(lib, dest) + install_pdb(lib, dest) + + # handle static libraries + static_libraries = glob.glob(f"{str(build_root)}\\*.lib") os.makedirs(prefix.libs, exist_ok=True) for lib in static_libraries: copy(lib, prefix.libs) + install_pdb(lib, prefix.libs) def configure_args(self): spec = self.spec @@ -680,6 +639,11 @@ def configure_args(self): else: config_args.append("--with-lto") config_args.append("--with-computed-gotos") + # Revisit --tail-call-interp when GCC 16 comes out + # https://github.com/python/cpython/issues/128563#issuecomment-3501715689 + if spec.satisfies("@3.14:"): + if spec.satisfies("%c=clang@19:") or spec.satisfies("%c=apple-clang@17:"): + config_args.append("--with-tail-call-interp") if spec.satisfies("@3.7 %intel"): config_args.append("--with-icc={0}".format(spack_cc)) @@ -694,6 +658,12 @@ def configure_args(self): else: config_args.append("--disable-shared") + if "~static" in spec: + config_args.append("--without-static-libpython") + + if "~tests" in spec: + config_args.append("--disable-test-modules") + config_args.append("--without-ensurepip") if "+pic" in spec: @@ -731,6 +701,13 @@ def configure_args(self): ] ) + if "+freethreading" in spec: + config_args.append("--disable-gil") + + # Disable tkinter module in the configure script for Python 3.12 onwards if ~tkinter + if spec.satisfies("@3.12:") and spec.satisfies("~tkinter"): + config_args.append("py_cv_module__tkinter=n/a") + # Disable the nis module in the configure script for Python 3.11 and 3.12. It is deleted # in Python 3.13. See ``def patch`` for disabling the nis module in Python 3.10 and older. if spec.satisfies("@3.11:3.12"): @@ -834,8 +811,8 @@ def symlink(self): prefix = self.prefix if spec.satisfies("+pythoncmd"): - os.symlink(os.path.join(prefix.bin, "python3"), os.path.join(prefix.bin, "python")) - os.symlink( + symlink(os.path.join(prefix.bin, "python3"), os.path.join(prefix.bin, "python")) + symlink( os.path.join(prefix.bin, "python3-config"), os.path.join(prefix.bin, "python-config"), ) @@ -935,12 +912,18 @@ def command(self): # installed python, several different commands could be located # in the same directory. Be as specific as possible. Search for: # - # * python3.11 + # * python3.14t + # * python3.14 # * python3 # * python # - # in that order if using python@3.11.0, for example. - suffixes = [self.spec.version.up_to(2), self.spec.version.up_to(1), ""] + # in that order if using python@3.14.0, for example. + suffixes = [ + str(self.spec.version.up_to(2)) + "t", + str(self.spec.version.up_to(2)), + str(self.spec.version.up_to(1)), + "", + ] ext = "" if sys.platform != "win32" else ".exe" filenames = [f"python{ver}{ext}" for ver in suffixes] root = self.prefix.bin if sys.platform != "win32" else self.prefix @@ -1383,6 +1366,16 @@ def setup_dependent_package(self, module, dependent_spec): module.python_platlib = join_path(dependent_spec.prefix, self.platlib) module.python_purelib = join_path(dependent_spec.prefix, self.purelib) + def dependent_cmake_args(self, dependent_spec: Spec) -> List[str]: + # pkg.spec["python"] can re-direct to python-venv if pkg extends python + # ref. https://github.com/spack/spack/pull/40773 + python_executable = dependent_spec["python"].command.path + return [ + f"-DPYTHON_EXECUTABLE:PATH={python_executable}", + f"-DPython_EXECUTABLE:PATH={python_executable}", + f"-DPython3_EXECUTABLE:PATH={python_executable}", + ] + def add_files_to_view(self, view, merge_map, skip_if_exists=True): """Make the view a virtual environment if it isn't one already. diff --git a/repos/spack_repo/builtin/packages/python_venv/package.py b/repos/spack_repo/builtin/packages/python_venv/package.py index 5bb5315dac9..6c0edf84d92 100644 --- a/repos/spack_repo/builtin/packages/python_venv/package.py +++ b/repos/spack_repo/builtin/packages/python_venv/package.py @@ -18,6 +18,7 @@ class PythonVenv(Package): tags = ["build-tools"] + license("0BSD") maintainers("haampie") version("1.0") @@ -58,6 +59,7 @@ def command(self): python_name = "python" if self.spec.satisfies("platform=windows") else "python3" return which(python_name, path=self.bindir, required=True) + @memoized def _get_path(self, name) -> str: return self.command( "-Ec", f"import sysconfig; print(sysconfig.get_path('{name}'))", output=str diff --git a/repos/spack_repo/builtin/packages/q_e_sirius/package.py b/repos/spack_repo/builtin/packages/q_e_sirius/package.py index 817238135b2..c5cf93a2cfb 100644 --- a/repos/spack_repo/builtin/packages/q_e_sirius/package.py +++ b/repos/spack_repo/builtin/packages/q_e_sirius/package.py @@ -21,6 +21,7 @@ class QESirius(CMakePackage): license("GPL-2.0-or-later") version("develop-ristretto", branch="ristretto", submodules=True) + version("1.0.2", sha256="6885979d6c23b81b49d4a96c7f73f2eac618adccb0181bfb96ae2318664d9828") version("1.0.1", sha256="512f982aa60fe9fd1cc588fa270e74427c66b62cb2d02ac1cb6cd07dcbe72204") version("1.0.0", sha256="d85485db8e9252a0bcd67a6a348b2a74626030183199b0edeb97f14c33bca15b") diff --git a/repos/spack_repo/builtin/packages/qbank/package.py b/repos/spack_repo/builtin/packages/qbank/package.py deleted file mode 100644 index 746ea20b8d8..00000000000 --- a/repos/spack_repo/builtin/packages/qbank/package.py +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os - -from spack_repo.builtin.build_systems.generic import Package - -from spack.package import * - - -class Qbank(Package): - """QBank is a unique dynamic reservation-based allocation management system - that manages the utilization of computational resources in a multi-project - environment. It is used in conjunction with a resource management system - allowing an organization to guarantee greater fairness and enforce mission - priorities by associating a charge with the use of computational resources - and allocating resource credits which limit how much of the resources may - be used at what time and by whom. It tracks resource utilization and allows - for insightful planning.""" - - # QBank is so old that it no longer has (never had?) a homepage - # but it was developed at Pacific Northwest National Laboratory - # by Scott Jackson - homepage = "https://www.pnnl.gov/" - url = "file://{0}/qbank-2.10.4.tar.gz".format(os.getcwd()) - manual_download = True - - version("2.10.4", md5="0820587353e63d32ddb49689dd4289e7") - - variant("doc", default=False, description="Build documentation") - - depends_on("openssl") - - depends_on("perl@5.6:5.16", type=("build", "run")) - depends_on("perl-dbi@1.00:", type=("build", "run")) - depends_on("gmake", type="build") - - def configure_args(self): - config_args = ["--prefix", self.prefix, "--logdir", self.prefix.var.log.qbank] - - return config_args - - def install(self, spec, prefix): - perl = which("perl") - perl("configure", *self.configure_args()) - make() - - if "+doc" in spec: - make("docs") - - make("install") - - if "+doc" in spec: - install_tree("doc", prefix.doc) - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - if "+doc" in self.spec: - env.prepend_path("MANPATH", self.prefix.doc) diff --git a/repos/spack_repo/builtin/packages/qemacs/package.py b/repos/spack_repo/builtin/packages/qemacs/package.py index 1b0236ea76b..4032497bdbe 100644 --- a/repos/spack_repo/builtin/packages/qemacs/package.py +++ b/repos/spack_repo/builtin/packages/qemacs/package.py @@ -14,7 +14,6 @@ class Qemacs(MakefilePackage): git = "https://github.com/qemacs/qemacs.git" license("MIT", checked_by="Buldram") - maintainers("Buldram") version("master", branch="master") version("6.4.1", commit="43b5851958ee13fe0b96cf92b5cfc0aaa085d740") diff --git a/repos/spack_repo/builtin/packages/qemu/package.py b/repos/spack_repo/builtin/packages/qemu/package.py index 1ad7f0e6725..4002d02d9a7 100644 --- a/repos/spack_repo/builtin/packages/qemu/package.py +++ b/repos/spack_repo/builtin/packages/qemu/package.py @@ -19,6 +19,8 @@ class Qemu(AutotoolsPackage): # Docs say TCG is "under a BSD license" but all the headers for TCG have the MIT license. license("GPL-2.0-only AND LGPL-2.1-only AND MIT", checked_by="tgamblin") + version("10.1.0", sha256="e0517349b50ca73ebec2fa85b06050d5c463ca65c738833bd8fc1f15f180be51") + version("9.2.4", sha256="f3cc1c4eabfdb288218ac3e33763dbe9e276d8bc890b867a2335d58de2ddd39a") version("9.1.0", sha256="816b7022a8ba7c2ac30e2e0cf973e826f6bcc8505339603212c5ede8e94d7834") version("4.1.1", sha256="ed6fdbbdd272611446ff8036991e9b9f04a2ab2e3ffa9e79f3bab0eb9a95a1d2") version("4.1.0", sha256="656e60218689bdeec69903087fd7582d5d3e72238d02f4481d8dc6d79fd909c6") @@ -106,10 +108,20 @@ class Qemu(AutotoolsPackage): version("0.10.0", sha256="cd554729fa9d0ec17164afbc1cea62d02bde3db8e16db3fd1b8e71d8e1b3dd41") version("0.9.1", sha256="a9655a471d0649f5540b890447b35849c162d9b986bf2bbddcb68461748e0f42") + with default_args(type="build"): + depends_on("python") + depends_on("python@3.8:", when="@8.2:") + # qemu is not forward compatible with pip 25.2, which is vendored by python, + # bumped in v3.13.6 + # https://github.com/qemu/qemu/commit/6ad034e71232c2929ed546304c9d249312bb632f + # https://github.com/python/cpython/commit/1ba09b2f0445eb80fd255ee2d9cbbdc859e0bb41 + depends_on("python@:3.13.5", when="@:10.0") + depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("pkgconfig", type="build") + depends_on("diffutils", type="build") depends_on("py-tomli", when="@9:", type="build") depends_on("meson@1.1.0:", when="@9:", type="build") @@ -118,6 +130,9 @@ class Qemu(AutotoolsPackage): depends_on("capstone", when="@9:") depends_on("dtc", when="@9:") depends_on("flex", when="@9:") + depends_on("glib@2.66:", when="@9.1:") + depends_on("glib@2.56:", when="@6.1:") + depends_on("glib@2.48:", when="@4.2:") depends_on("glib@2.40:") depends_on("gnutls", when="@9:") depends_on("libslirp", when="@9:") diff --git a/repos/spack_repo/builtin/packages/qgis/package.py b/repos/spack_repo/builtin/packages/qgis/package.py index 639238237c1..b69fb6737ab 100644 --- a/repos/spack_repo/builtin/packages/qgis/package.py +++ b/repos/spack_repo/builtin/packages/qgis/package.py @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from pathlib import Path + from spack_repo.builtin.build_systems.cmake import CMakePackage from spack.package import * @@ -14,25 +16,24 @@ class Qgis(CMakePackage): """ homepage = "https://qgis.org" - url = "https://qgis.org/downloads/qgis-3.8.1.tar.bz2" - maintainers("adamjstewart", "Sinan81") + # the downloads are listed via json, so the spack checksum crawler won't find them + # spack checksum qgis x.y.z will provide the new checksum + url = "https://qgis.org/downloads/qgis-3.44.7.tar.bz2" + + maintainers("adamjstewart", "Sinan81", "Chrismarsh") license("GPL-2.0-or-later") # Prefer latest LTR version( - "3.40.6", - sha256="dd68d39a2a29326031195bed2125e8b0fa7112fe9ee74d5f9850d06b02cef6a8", + "3.44.8", + sha256="146e197f34f1f9ede8cfdf5b9cc4d76667771720a302172c32d4117367356e96", preferred=True, ) + version("3.44.7", sha256="1ab06f40600c84e928b4fe22a66997d80973201b10769e7a636e5be83459b814") + version("3.40.6", sha256="dd68d39a2a29326031195bed2125e8b0fa7112fe9ee74d5f9850d06b02cef6a8") version("3.40.1", sha256="53110464c9f5ba5562c437e1563ab36dad2f218e6e7d1c0cfbe5b6effe241c8e") - # version 3.36 isn't building right now. - version( - "3.36.0", - sha256="1b64bc92660bf07edc6b6478fc6a13656149e87d92eabe5c3db9493072506e2c", - deprecated=True, - ) version("3.34.15", sha256="afb0bed05ffbc7bcb6d27dd1a8644b1e63ac2cb322baa058ff65b848c760efc2") version("3.34.13", sha256="a8873ca9bae346bae48ef3fe3eed702ef1f06d951201464464a64019302ba50b") version("3.34.4", sha256="7d1c5fafff13f508a9bcf6244c9666f891351deb1ace2aedcc63504f070c5ce4") @@ -128,10 +129,13 @@ class Qgis(CMakePackage): depends_on("gdal@2.1.0: +python", type=("build", "link", "run")) depends_on("gdal@3.2.0: +python", type=("build", "link", "run"), when="@3.28:") depends_on("geos@3.4.0:") - depends_on("libspatialindex") + + # https://github.com/libspatialindex/libspatialindex/issues/276 + depends_on("libspatialindex@:2.0.0") depends_on("libspatialite@4.2.0:") depends_on("libzip") depends_on("libtasn1") + depends_on("proj@4.4.0:") depends_on("proj@4.9.3:", when="@3.8.2:") depends_on("proj@7.2:", when="@3.28:") @@ -139,6 +143,8 @@ class Qgis(CMakePackage): # fails to build with proj 9.4+ until the backported patch in 3.34.5 # https://github.com/qgis/QGIS/pull/56761 depends_on("proj@:9.3", when="@:3.34.4") + depends_on("proj@:9.5", when="@3.34.5:3.34.15") + depends_on("py-psycopg2", type=("build", "run")) # TODO: is build dependency necessary? depends_on("py-pyqt4", when="@2") depends_on("py-pyqt5@5.3:", when="@3") @@ -161,7 +167,7 @@ class Qgis(CMakePackage): depends_on("sqlite@3.0.0: +column_metadata") depends_on("pdal", when="+pdal") depends_on("protobuf", when="@3.16.4:") - depends_on("protobuf@:3.21", when="@:3.28") + depends_on("protobuf@:21", when="@:3.28") depends_on("zstd", when="@3.22:") # Runtime python dependencies, not mentioned in install instructions @@ -169,6 +175,7 @@ class Qgis(CMakePackage): depends_on("py-owslib", type="run") depends_on("py-jinja2", type="run") depends_on("py-pygments", type="run") + depends_on("py-packaging", type="run", when="@3.44:") # optionals depends_on("postgresql@8:", when="+postgresql") # for PostGIS support @@ -200,6 +207,13 @@ class Qgis(CMakePackage): patch("pyqt5_3165x.patch", when="@3.16.5:3.21 ^qt@5 ^py-sip@4") patch("pyqt5_322x.patch", when="@3.22: ^qt@5 ^py-sip@4") + # https://github.com/qgis/QGIS/pull/62142 + patch( + "https://patch-diff.githubusercontent.com/raw/qgis/QGIS/pull/62142.patch?full_index=1", + when="@3.40 ^py-sip@6.11:", + sha256="edb2c149f88c1adfee3791f1928c5119301900541cb40a6d1cc5b68d8aa3b688", + ) + @run_before("cmake", when="^py-pyqt5") def fix_pyqt5_cmake(self): cmfile = FileFilter(join_path("cmake", "FindPyQt5.cmake")) @@ -222,9 +236,35 @@ def fix_qsci_sip(self): elif "^py-pyqt6" in self.spec: pyqtx = "PyQt6" + pp = Path("python/gui/pyproject.toml.in") + txt = pp.read_text(encoding="utf-8") + sip_inc_dir = join_path(self["qscintilla"].module.python_platlib, pyqtx, "bindings") - with open(join_path("python", "gui", "pyproject.toml.in"), "a") as tomlfile: - tomlfile.write(f'\n[tool.sip.project]\nsip-include-dirs = ["{sip_inc_dir}"]\n') + sip_line = f'sip-include-dirs = ["{sip_inc_dir}"]' + + # QGis 3.42.0 added a @sipabi@ that expands to the [tool.sip.project] header. + # The simple patch append approach results in a duplicate header which causes a + # build failure. The middle case is probably overkill but it is kept as a just + # in (edge) case + + # if it's already there, do nothing + if sip_line not in txt: + if "@sipabi@" in txt: + # @sipabi@ expands to the [tool.sip.project] table + abi-version, + # add just the key immediately after it + txt = txt.replace("@sipabi@", "@sipabi@\n" + sip_line, 1) + + elif "[tool.sip.project]" in txt: + # insert right after the first header occurrence + txt = txt.replace("[tool.sip.project]", "[tool.sip.project]\n" + sip_line, 1) + + else: + # no macro + no table, append a new table + if not txt.endswith("\n"): + txt += "\n" + txt += "\n[tool.sip.project]\n" + sip_line + "\n" + + pp.write_text(txt, encoding="utf-8") def cmake_args(self): spec = self.spec diff --git a/repos/spack_repo/builtin/packages/qmcpack/package.py b/repos/spack_repo/builtin/packages/qmcpack/package.py index 91a049f8aa9..55fd618bd8e 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.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") version("3.17.1", tag="v3.17.1", commit="9d0d968139fc33f71dbf9159f526dd7b47f10a3b") @@ -65,8 +66,7 @@ class Qmcpack(CMakePackage, CudaPackage): variant( "mixed", default=False, - description="Build the mixed precision (mixture of single and " - "double precision) version", + description="Build the mixed precision (mixture of single and double precision) version", ) variant( "soa", @@ -127,15 +127,13 @@ class Qmcpack(CMakePackage, CudaPackage): conflicts("%gcc@:8", when="@3.15.0:") # QMCPACK 3.10.0 increased the minimum requirements for compiler versions - newer_compiler_warning = ( - "QMCPACK v3.10.0 or later requires a newer " "version of this compiler" - ) + newer_compiler_warning = "QMCPACK v3.10.0 or later requires a newer version of this compiler" conflicts("%gcc@:6", when="@3.10.0:", msg=newer_compiler_warning) conflicts("%intel@:18", when="@3.10.0:", msg=newer_compiler_warning) conflicts("%clang@:6", when="@3.10.0:", msg=newer_compiler_warning) # QMCPACK 3.6.0 or later requires support for C++14 - cpp14_warning = "QMCPACK v3.6.0 or later requires a " "compiler with support for C++14" + cpp14_warning = "QMCPACK v3.6.0 or later requires a compiler with support for C++14" conflicts("%gcc@:4", when="@3.6.0:", msg=cpp14_warning) conflicts("%intel@:17", when="@3.6.0:", msg=cpp14_warning) conflicts("%clang@:3.4", when="@3.6.0:", msg=cpp14_warning) @@ -155,8 +153,7 @@ class Qmcpack(CMakePackage, CudaPackage): # For older versions of QMCPACK, we issue a conflict below if you # try to use Intel MKL with a non-Intel compiler. mkl_warning = ( - "QMCPACK releases prior to 3.5.0 require the " - "Intel compiler when linking against Intel MKL" + "QMCPACK releases prior to 3.5.0 require the Intel compiler when linking against Intel MKL" ) conflicts("%gcc", when="@:3.4.0 ^[virtuals=blas,lapack] intel-oneapi-mkl", msg=mkl_warning) conflicts("%llvm", when="@:3.4.0 ^[virtuals=blas,lapack] intel-oneapi-mkl", msg=mkl_warning) @@ -328,7 +325,7 @@ def cmake_args(self): cuda_arch = cuda_arch_list[0] if len(cuda_arch_list) > 1: raise InstallError( - "QMCPACK only supports compilation for a single " "GPU architecture at a time" + "QMCPACK only supports compilation for a single GPU architecture at a time" ) if "@3.14.0:" in self.spec: args.append("-DCMAKE_CUDA_ARCHITECTURES={0}".format(cuda_arch)) diff --git a/repos/spack_repo/builtin/packages/qperf/package.py b/repos/spack_repo/builtin/packages/qperf/package.py index 5f8dea55307..e127ad0346b 100644 --- a/repos/spack_repo/builtin/packages/qperf/package.py +++ b/repos/spack_repo/builtin/packages/qperf/package.py @@ -33,5 +33,5 @@ class Qperf(AutotoolsPackage): depends_on("rdma-core", when="+verbs") def autoreconf(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("autogen.sh") diff --git a/repos/spack_repo/builtin/packages/qscintilla/package.py b/repos/spack_repo/builtin/packages/qscintilla/package.py index 555db7557a1..a0d6c3a1334 100644 --- a/repos/spack_repo/builtin/packages/qscintilla/package.py +++ b/repos/spack_repo/builtin/packages/qscintilla/package.py @@ -41,7 +41,7 @@ class Qscintilla(QMakePackage): depends_on("py-pyqt-builder", type="build", when="+python") depends_on("py-pyqt5", type=("build", "run"), when="+python ^qt@5") depends_on("python", type=("build", "run"), when="+python") - # adter install inquires py-sip variant : so we need to have it + # after install inquires py-sip variant : so we need to have it depends_on("py-sip", type="build", when="+python") extends("python", when="+python") @@ -76,6 +76,12 @@ def fix_install_path(self): makefile.filter( "$(INSTALL_ROOT)" + self.spec["qmake"].prefix, "$(INSTALL_ROOT)", string=True ) + # if prefix includes symlinks, the realpath is what was written to the make file + makefile.filter( + "$(INSTALL_ROOT)" + os.path.realpath(self.spec["qmake"].prefix), + "$(INSTALL_ROOT)", + string=True, + ) @run_after("install", when="+designer") def make_designer(self): @@ -88,6 +94,12 @@ def make_designer(self): makefile.filter( "$(INSTALL_ROOT)" + self.spec["qmake"].prefix, "$(INSTALL_ROOT)", string=True ) + # if prefix includes symlinks, the realpath is what was written to the make file + makefile.filter( + "$(INSTALL_ROOT)" + os.path.realpath(self.spec["qmake"].prefix), + "$(INSTALL_ROOT)", + string=True, + ) make("install") @run_after("install", when="+python") @@ -112,7 +124,14 @@ def make_qsci_python(self): tomlfile.write(f'\n[tool.sip.project]\nsip-include-dirs = ["{sip_inc_dir}"]\n') # add widgets and printsupport to Qsci.pro # also add link statement to fix "undefined symbol _Z...Qsciprinter... - link_qscilibs = "LIBS += -L" + self.prefix.lib + " -lqscintilla2_" + qtx + # without no-as-needed this can be dropped from linking stage + link_qscilibs = ( + "LIBS += -Wl,--no-as-needed -L" + + self.prefix.lib + + " -lqscintilla2_" + + qtx + + " -Wl,--as-needed" + ) tomlfile.write( f""" [tool.sip.builder] diff --git a/repos/spack_repo/builtin/packages/qt/package.py b/repos/spack_repo/builtin/packages/qt/package.py index 6d2985ea9e6..c3a3d53f8a1 100644 --- a/repos/spack_repo/builtin/packages/qt/package.py +++ b/repos/spack_repo/builtin/packages/qt/package.py @@ -4,7 +4,9 @@ import itertools import os import platform +import re import sys +from typing import List from spack_repo.builtin.build_systems.generic import Package @@ -30,6 +32,8 @@ class Qt(Package): license("LGPL-3.0-only") + version("5.15.18", sha256="cea1fbabf02455f3f0e8eaa839f5d6f45cdb56b62c8a83af5c1d00ac05f912ea") + version("5.15.17", sha256="85eb566333d6ba59be3a97c9445a6e52f2af1b52fc3c54b8a2e7f9ea040a7de4") version("5.15.16", sha256="efa99827027782974356aceff8a52bd3d2a8a93a54dd0db4cca41b5e35f1041c") version("5.15.15", sha256="b423c30fe3ace7402e5301afbb464febfb3da33d6282a37a665be1e51502335e") version("5.15.14", sha256="fdd3a4f197d2c800ee0085c721f4bef60951cbda9e9c46e525d1412f74264ed7") @@ -133,7 +137,10 @@ class Qt(Package): # https://bugreports.qt.io/browse/QTBUG-84037 patch("qt515-quick3d-assimp.patch", when="@5.15:5+opengl") # https://forum.qt.io/topic/130793/a-problem-with-python-path-when-i-try-to-build-qt-from-source-e-program-is-not-recognized-as-an-internal-or-external-command?_=1722965446110&lang=en-US - patch("qt515_masm_python.patch", when="@5.15 platform=windows") + patch("quote_qt515_masm_python.patch", when="@5.15:5.15.10 platform=windows") + patch("quote_qt515_masm_script.patch", when="@5.15.11: platform=windows") + patch("sfn_qt515_root_configure_path.patch", when="@5.15 platform=windows") + patch("quote_qt515_foreign_types.patch", when="@5.15 platform=windows") # https://bugreports.qt.io/browse/QTBUG-90395 patch( @@ -189,6 +196,11 @@ class Qt(Package): when="@5.9.2: %gcc@14:", ) + # Do not define `wtf_ceil()` in MathExtras.h on macOS. + # Prevents reference to removed API in order to avoid compilation errors + # for webkit on macOS. + patch("qt515-mathextras.patch", when="@5.15.4:5.15 platform=darwin") + conflicts("%gcc@10:", when="@5.9:5.12.6 +opengl") conflicts("%gcc@11:", when="@5.8") conflicts("%apple-clang@13:", when="@:5.13") @@ -241,7 +253,7 @@ class Qt(Package): depends_on("python", when="@5.7.0:", type="build") # Dependencies, then variant- and version-specific dependencies - depends_on("icu4c") + depends_on("icu4c@:74") # @75: requires cxxstd 17 which is not modelled here depends_on("jpeg") depends_on("libtiff") depends_on("libxml2") @@ -254,7 +266,6 @@ class Qt(Package): with when("+ssl"): depends_on("openssl") - depends_on("openssl@:1.0", when="@4:5.9") depends_on("openssl@1.1.1:", when="@5.15.0:") depends_on("libpng", when="@4:") @@ -314,6 +325,8 @@ def determine_version(cls, exe): msg="qtwebengine@5.7:5.15 are based on Google Chromium versions which depend on Py2", ) + conflicts("+ssl", when="@:5.9") + # gcc@4 is not supported as of Qt@5.14 # https://doc.qt.io/qt-5.14/supported-platforms.html conflicts("%gcc@:4", when="@5.14:") @@ -597,6 +610,38 @@ def patch(self): # noqa: F811 "libs-only-l", "libs-only-l --static", "qtbase/mkspecs/features/qt_configure.prf" ) + def _quoted(self, args): + """Returns args with each arg in double quotes if neccesary + Necessity determined by: + - path with a space on any platform + - path with a reserved character on Windows + """ + + def quote(arg): + return '"' + arg + '"' + + def has_space(arg): + return " " in arg + + def has_reserved(arg): + if not IS_WINDOWS: + return False + return True if re.search(r"[ <>^:\"|?*]", arg) else False + + return [quote(x) if has_space(x) or has_reserved(x) else x for x in args] + + def _split_link_args(self, file_set: List): + """Returns a list of the -L + arguments included in arg_str with proper + handling for paths with spaces""" + return ["-L" + x for x in file_set] + + def _split_include_args(self, file_set: List): + """Returns a list of the -I + arguments included in arg_str with proper + handling for paths with spaces""" + return ["-I" + x for x in file_set] + def _dep_appender_factory(self, config_args): spec = self.spec @@ -604,8 +649,8 @@ def use_spack_dep(spack_pkg, qt_name=None): pkg = spec[spack_pkg] config_args.append("-system-" + (qt_name or spack_pkg)) if not pkg.external: - config_args.extend(pkg.libs.search_flags.split()) - config_args.extend(pkg.headers.include_flags.split()) + config_args.extend(self._split_link_args(pkg.libs.directories)) + config_args.extend(self._split_include_args(pkg.headers.directories)) return use_spack_dep @@ -649,8 +694,8 @@ def common_config_args(self): if "+ssl" in spec: pkg = spec["openssl"] config_args.append("-openssl-linked") - config_args.extend(pkg.libs.search_flags.split()) - config_args.extend(pkg.headers.include_flags.split()) + config_args.extend(self._split_link_args(pkg.libs.directories)) + config_args.extend(self._split_include_args(pkg.headers.directories)) else: config_args.append("-no-openssl") @@ -753,9 +798,12 @@ def configure(self, spec, prefix): config_args.extend(["-nomake", "demos"]) if MACOS_VERSION: - sdkpath = which("xcrun")("--show-sdk-path", output=str).strip() + sdkpath = which("xcrun", required=True)("--show-sdk-path", output=str).strip() config_args.extend(["-cocoa", "-sdk", sdkpath]) + if IS_WINDOWS: + config_args = self._quoted(config_args) + configure(*config_args) @when("@5") diff --git a/repos/spack_repo/builtin/packages/qt/qt515-mathextras.patch b/repos/spack_repo/builtin/packages/qt/qt515-mathextras.patch new file mode 100644 index 00000000000..4b5cfd3471d --- /dev/null +++ b/repos/spack_repo/builtin/packages/qt/qt515-mathextras.patch @@ -0,0 +1,41 @@ +diff --git a/qtdeclarative/src/3rdparty/masm/wtf/MathExtras.h b/qtdeclarative/src/3rdparty/masm/wtf/MathExtras.h +index 6af108c886..cc8039ac98 100644 +--- a/qtdeclarative/src/3rdparty/masm/wtf/MathExtras.h ++++ b/qtdeclarative/src/3rdparty/masm/wtf/MathExtras.h +@@ -79,15 +79,6 @@ const double piOverFourDouble = M_PI_4; + const float piOverFourFloat = static_cast(M_PI_4); + #endif + +-#if OS(DARWIN) +- +-// Work around a bug in the Mac OS X libc where ceil(-0.1) return +0. +-inline double wtf_ceil(double x) { return copysign(ceil(x), x); } +- +-#define ceil(x) wtf_ceil(x) +- +-#endif +- + #if OS(SOLARIS) && __cplusplus < 201103L + + namespace std { +diff --git a/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/MathExtras.h b/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/MathExtras.h +index bea5896..f1cd444 100644 +--- a/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/MathExtras.h ++++ b/qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/MathExtras.h +@@ -67,16 +67,6 @@ const float piOverFourFloat = 0.785398163397448309616f; + const double piOverFourDouble = M_PI_4; + const float piOverFourFloat = static_cast(M_PI_4); + #endif +- +-#if OS(DARWIN) +- +-// Work around a bug in the Mac OS X libc where ceil(-0.1) return +0. +-inline double wtf_ceil(double x) { return copysign(ceil(x), x); } +- +-#define ceil(x) wtf_ceil(x) +- +-#endif +- + #if OS(SOLARIS) && __cplusplus < 201103L + + namespace std { diff --git a/repos/spack_repo/builtin/packages/qt/qt515_masm_python.patch b/repos/spack_repo/builtin/packages/qt/qt515_masm_python.patch deleted file mode 100644 index af599bd1825..00000000000 --- a/repos/spack_repo/builtin/packages/qt/qt515_masm_python.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/masm.pri b/masm-quote.pri -index b67ee79..b757ee5 100644 ---- a/qtdeclarative/src/3rdparty/masm/masm.pri -+++ b/qtdeclarative/src/3rdparty/masm/masm.pri -@@ -58,7 +58,7 @@ contains(DEFINES, WTF_USE_UDIS86=1) { - udis86.output = udis86_itab.h - udis86.input = ITAB - udis86.CONFIG += no_link -- udis86.commands = $$QMAKE_PYTHON $$PWD/disassembler/udis86/itab.py ${QMAKE_FILE_IN} -+ udis86.commands = "\"$$QMAKE_PYTHON\"" $$PWD/disassembler/udis86/itab.py ${QMAKE_FILE_IN} - QMAKE_EXTRA_COMPILERS += udis86 - - udis86_tab_cfile.target = $$OUT_PWD/udis86_itab.c -@@ -111,7 +111,7 @@ retgen.output = $$GENERATEDDIR/RegExpJitTables.h - retgen.script = $$PWD/yarr/create_regex_tables - retgen.input = retgen.script - retgen.CONFIG += no_link --retgen.commands = $$QMAKE_PYTHON $$retgen.script > ${QMAKE_FILE_OUT} -+retgen.commands = "\"$$QMAKE_PYTHON\"" $$retgen.script > ${QMAKE_FILE_OUT} - QMAKE_EXTRA_COMPILERS += retgen - - # Taken from WebKit/Tools/qmake/mkspecs/features/unix/default_post.prf diff --git a/repos/spack_repo/builtin/packages/qt/quote_qt515_foreign_types.patch b/repos/spack_repo/builtin/packages/qt/quote_qt515_foreign_types.patch new file mode 100644 index 00000000000..655aef236c6 --- /dev/null +++ b/repos/spack_repo/builtin/packages/qt/quote_qt515_foreign_types.patch @@ -0,0 +1,14 @@ +Submodule qtdeclarative contains modified content +diff --git a/qtdeclarative/src/qmltyperegistrar/qmltypes.prf b/qtdeclarative/src/qmltyperegistrar/qmltypes.prf +index 471bb6e3b0..8df72043f0 100644 +--- a/qtdeclarative/src/qmltyperegistrar/qmltypes.prf ++++ b/qtdeclarative/src/qmltyperegistrar/qmltypes.prf +@@ -62,7 +62,7 @@ QML_TYPEREGISTRAR_FLAGS = \ + --import-name=$$QML_IMPORT_NAME \ + --major-version=$$QML_IMPORT_MAJOR_VERSION \ + --minor-version=$$QML_IMPORT_MINOR_VERSION \ +- --foreign-types=$$join(QML_FOREIGN_METATYPES, ',') ++ --foreign-types=\"$$join(QML_FOREIGN_METATYPES, ',')\" + + DEPENDENCIESFILE = $$_PRO_FILE_PWD_/dependencies.json + exists($$DEPENDENCIESFILE): QML_TYPEREGISTRAR_FLAGS += --dependencies=$$DEPENDENCIESFILE diff --git a/repos/spack_repo/builtin/packages/qt/quote_qt515_masm_python.patch b/repos/spack_repo/builtin/packages/qt/quote_qt515_masm_python.patch new file mode 100644 index 00000000000..7ab876772f5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/qt/quote_qt515_masm_python.patch @@ -0,0 +1,22 @@ +diff --git a/masm.pri b/masm-quote.pri +index b67ee79..b757ee5 100644 +--- a/qtdeclarative/src/3rdparty/masm/masm.pri ++++ b/qtdeclarative/src/3rdparty/masm/masm.pri +@@ -58,7 +58,7 @@ contains(DEFINES, WTF_USE_UDIS86=1) { + udis86.output = udis86_itab.h + udis86.input = ITAB + udis86.CONFIG += no_link +- udis86.commands = $$QMAKE_PYTHON $$PWD/disassembler/udis86/itab.py ${QMAKE_FILE_IN} ++ udis86.commands = "\"$$QMAKE_PYTHON\"" $$PWD/disassembler/udis86/itab.py ${QMAKE_FILE_IN} + QMAKE_EXTRA_COMPILERS += udis86 + + udis86_tab_cfile.target = $$OUT_PWD/udis86_itab.c +@@ -111,7 +111,7 @@ retgen.output = $$GENERATEDDIR/RegExpJitTables.h + retgen.script = $$PWD/yarr/create_regex_tables + retgen.input = retgen.script + retgen.CONFIG += no_link +-retgen.commands = $$QMAKE_PYTHON $$retgen.script > ${QMAKE_FILE_OUT} ++retgen.commands = "\"$$QMAKE_PYTHON\"" "\"$$retgen.script\"" > "\"${QMAKE_FILE_OUT}\"" + QMAKE_EXTRA_COMPILERS += retgen + + # Taken from WebKit/Tools/qmake/mkspecs/features/unix/default_post.prf diff --git a/repos/spack_repo/builtin/packages/qt/quote_qt515_masm_script.patch b/repos/spack_repo/builtin/packages/qt/quote_qt515_masm_script.patch new file mode 100644 index 00000000000..dce3a2b0fe8 --- /dev/null +++ b/repos/spack_repo/builtin/packages/qt/quote_qt515_masm_script.patch @@ -0,0 +1,22 @@ +diff --git a/masm.pri b/masm-quote.pri +index b67ee79..b757ee5 100644 +--- a/qtdeclarative/src/3rdparty/masm/masm.pri ++++ b/qtdeclarative/src/3rdparty/masm/masm.pri +@@ -58,7 +58,7 @@ contains(DEFINES, WTF_USE_UDIS86=1) { + udis86.output = udis86_itab.h + udis86.input = ITAB + udis86.CONFIG += no_link +- udis86.commands = $$QMAKE_PYTHON $$PWD/disassembler/udis86/itab.py ${QMAKE_FILE_IN} ++ udis86.commands = "\"$$QMAKE_PYTHON\"" $$PWD/disassembler/udis86/itab.py ${QMAKE_FILE_IN} + QMAKE_EXTRA_COMPILERS += udis86 + + udis86_tab_cfile.target = $$OUT_PWD/udis86_itab.c +@@ -111,7 +111,7 @@ retgen.output = $$GENERATEDDIR/RegExpJitTables.h + retgen.script = $$PWD/yarr/create_regex_tables + retgen.input = retgen.script + retgen.CONFIG += no_link +-retgen.commands = $$QMAKE_PYTHON $$retgen.script > ${QMAKE_FILE_OUT} ++retgen.commands = $$QMAKE_PYTHON "\"$$retgen.script\"" > "\"${QMAKE_FILE_OUT}\"" + QMAKE_EXTRA_COMPILERS += retgen + + # Taken from WebKit/Tools/qmake/mkspecs/features/unix/default_post.prf diff --git a/repos/spack_repo/builtin/packages/qt/sfn_qt515_root_configure_path.patch b/repos/spack_repo/builtin/packages/qt/sfn_qt515_root_configure_path.patch new file mode 100644 index 00000000000..42f122e94ee --- /dev/null +++ b/repos/spack_repo/builtin/packages/qt/sfn_qt515_root_configure_path.patch @@ -0,0 +1,14 @@ +diff --git a/configure.bat b/configure.bat +index 500d627f..3d431df4 100644 +--- a/configure.bat ++++ b/configure.bat +@@ -27,7 +27,7 @@ + :: + ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +-set "srcpath=%~dp0" ++set "srcpath=%~sdp0" + set "configure=%srcpath%qtbase\configure.bat" + if not exist "%configure%" ( + echo %configure% not found. Did you forget to run "init-repository"? >&2 +Submodule qtdeclarative contains modified content diff --git a/repos/spack_repo/builtin/packages/qt_5compat/package.py b/repos/spack_repo/builtin/packages/qt_5compat/package.py index 14a8029ea39..92a7d799145 100644 --- a/repos/spack_repo/builtin/packages/qt_5compat/package.py +++ b/repos/spack_repo/builtin/packages/qt_5compat/package.py @@ -18,6 +18,12 @@ class Qt5compat(QtPackage): license("LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only") + version("6.11.1", sha256="2b21eff89b309819e877f39747494c280fb7b13afea8ce68a6793c364ae289a9") + version("6.10.2", sha256="3468f5ef429361b427a58830791b34ce4ea826583584b4ba9caaa2923002c78c") + version("6.10.1", sha256="e936870e435dae57f23793f7d3fd92444f7b98e9aa2931eda458e7e11b3f3571") + version("6.10.0", sha256="4f0c57c96bd5a04a59cc4fd9a6507392d5a5af886f59e8dc7274f2ccfa6d74f4") + version("6.9.3", sha256="c2b1dc10ddf8372f2d8060f3dd7404ecf02a4f630d03e0f21e3131b4a8e0aa1b") + version("6.9.2", sha256="49ddd0de9f76b35ef5f9420b024e6c066fd03218da732fb2ec131973db39c3b5") version("6.9.1", sha256="14a97fb93c342a6dcfff3bc827c7cdaff4dcb4853135aa7e391aa5df96fd7440") version("6.9.0", sha256="7c8fe0709d8efd758a788b1db47294ec1fb33387b11b4765e5ef98606aaa562c") version("6.8.3", sha256="67340c9c7a1d2007b593847363342c65570dc9e86edb6315226589dc4533e5ed") diff --git a/repos/spack_repo/builtin/packages/qt_base/package.py b/repos/spack_repo/builtin/packages/qt_base/package.py index cd181854d5b..60f539d167b 100644 --- a/repos/spack_repo/builtin/packages/qt_base/package.py +++ b/repos/spack_repo/builtin/packages/qt_base/package.py @@ -39,6 +39,8 @@ def get_list_url(qualname): # Default dependencies for all qt-* components generator("ninja") depends_on("cmake@3.16:", type="build") + depends_on("cmake@3.19:", when="@6.8.1:", type="build") + depends_on("cmake@3.22:", when="@6.9.0:", type="build") depends_on("pkgconfig", type="build", when="platform=linux") depends_on("python", type="build") @@ -55,6 +57,16 @@ def remove_vendor_deps(self, vendor_dir, vendor_deps_to_remove): if dep in vendor_deps_to_remove: shutil.rmtree(dep) + @staticmethod + def _qt_feature_flag(feature): + return f"FEATURE_{feature}" + + def define_qt_feature_from_variant(self, feature, variant=None): + return self.define_from_variant(QtPackage._qt_feature_flag(feature), variant or feature) + + def define_qt_feature(self, feature, value=None): + return self.define(QtPackage._qt_feature_flag(feature), value) + def cmake_args(self): # Start with upstream cmake_args args = super().cmake_args() @@ -148,6 +160,12 @@ class QtBase(QtPackage): license("BSD-3-Clause") + version("6.11.1", sha256="e20852bd45cdef5da5175f3634e285e03e2be7ca437f3d2b7e1a2af7321bca7a") + version("6.10.2", sha256="95271bc1f32db239723f597ab1899e624e3b22a16678b88520dee51ad5035faa") + version("6.10.1", sha256="088c248d7dfbcba1e60fc4fa7a46406c6c638687cd3dbd412cdd13fc21198df9") + version("6.10.0", sha256="6bc0cab63e70ef9634825de47790409079e00da77bad18d036b7ab83c5618346") + version("6.9.3", sha256="4b31f7501613a45a2ad26f30b09127287edf525387865754e5edd5ba4f8c4b32") + version("6.9.2", sha256="2cd19f62cfa3591570f1df6a707086c7b6de7b48f153231e28c41c2cb566f3f2") version("6.9.1", sha256="487e49508b8b4bb74908882cde04d3473f2c783651c72c75ee4a2a4691788263") version("6.9.0", sha256="defc1b7e6a98f0093254126b1cd80681f1d2a170df127d60c6297358ced43090") version("6.8.3", sha256="cea5c8f2c20d9cbd684f8a402721e63b87a2886e906f6ec7e0f7e1ff69c83206") @@ -214,7 +232,8 @@ class QtBase(QtPackage): depends_on("libdrm") depends_on("at-spi2-core", when="+accessibility") depends_on("dbus", when="+dbus") - depends_on("gl", when="+opengl") + depends_on("gl", when="+opengl", type=("build", "link")) + depends_on("glu", when="+opengl", type=("build", "link")) depends_on("sqlite", when="+sql") with when("+gui"): @@ -238,7 +257,7 @@ class QtBase(QtPackage): with when("+network"): depends_on("openssl") with when("platform=linux"): - depends_on("libproxy") + depends_on("libproxy", type=("link", "run")) # Qt6 requires newer compilers: see https://github.com/spack/spack/issues/34418 conflicts("%gcc@:7") @@ -280,35 +299,24 @@ def cmake_args(self): args = super().cmake_args() - def define(cmake_var, value): - args.append(self.define(cmake_var, value)) - - def define_from_variant(cmake_var, variant=None): - result = self.define_from_variant(cmake_var, variant) - if result: - # Not a conditional variant - args.append(result) - - def define_feature(key, variant=None): - if variant is None: - variant = key - define_from_variant("FEATURE_" + key, variant) - - define_from_variant("BUILD_SHARED_LIBS", "shared") - define("FEATURE_optimize_size", spec.satisfies("build_type=MinSizeRel")) - # Top-level features - define_feature("accessibility") - # concurrent: default to on - define_feature("dbus") - define_feature("framework") - define_feature("gui") - define_feature("network") # note: private feature - # testlib: default to on - # thread: default to on - define_feature("widgets") # note: private feature - define_feature("sql") # note: private feature - # xml: default to on + args.extend( + [ + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define_qt_feature("optimize_size", spec.satisfies("build_type=MinSizeRel")), + self.define_qt_feature_from_variant("accessibility"), + # concurrent: default to on + self.define_qt_feature_from_variant("dbus"), + self.define_qt_feature_from_variant("framework"), + self.define_qt_feature_from_variant("gui"), + self.define_qt_feature_from_variant("network"), # note: private feature + # testlib: default to on + # thread: default to on + self.define_qt_feature_from_variant("widgets"), # note: private feature + self.define_qt_feature_from_variant("sql"), # note: private feature + # xml: default to on + ] + ) # Extra FEATURE_ toggles features = [] @@ -319,8 +327,10 @@ def define_feature(key, variant=None): if sys.platform == "linux": features.append("libproxy") for k in features: - define("FEATURE_" + k, True) + args.append(self.define_qt_feature(k, True)) + # Disable EGL feature to avoid implicit EGL detection + args.append(self.define("FEATURE_egl", "no")) if "~opengl" in spec: args.append(self.define("INPUT_opengl", "no")) @@ -329,7 +339,7 @@ def define_feature(key, variant=None): if "+sql" in spec: sys_inputs.append("sqlite") for k in sys_inputs: - define("INPUT_" + k, "system") + args.append(self.define("INPUT_" + k, "system")) # FEATURE_system_* arguments: on/off sys_features = [ @@ -352,7 +362,7 @@ def define_feature(key, variant=None): if "+network" in spec: sys_features += [("proxies", True)] for k, v in sys_features: - define("FEATURE_system_" + k, v) + args.append(self.define_qt_feature(f"system_{k}", v)) return args diff --git a/repos/spack_repo/builtin/packages/qt_declarative/package.py b/repos/spack_repo/builtin/packages/qt_declarative/package.py index 35c9bf6a5e8..ad550db5bcc 100644 --- a/repos/spack_repo/builtin/packages/qt_declarative/package.py +++ b/repos/spack_repo/builtin/packages/qt_declarative/package.py @@ -16,6 +16,12 @@ class QtDeclarative(QtPackage): license("BSD-3-Clause") + version("6.11.1", sha256="3d98c58a8652f7188288832d8bea5529a1bc3906915ad1c9a2974955c8cd5656") + version("6.10.2", sha256="b3c1fa06ff918cfe5231dd4715438b6cd5b2df3e5affea3472ff303258734567") + version("6.10.1", sha256="2df250e9245e3af7e72e955948810017adb21911f993c86d78b3e3b6b33e23d4") + version("6.10.0", sha256="d5dcb10bd3152cfc616afababaa2cd7ea21119bdd03239700d37690c0db8211e") + version("6.9.3", sha256="9a746d0047f0281c107c3f26c05e68cfaed6173ab4e42e443732afdc112823d7") + version("6.9.2", sha256="e3e5dbf6efe913bcce8a1c2c646f8a75625f497add56a1568a1e239853fc9fe1") version("6.9.1", sha256="00f09b210c7c4268646645baf39fa436563f1cfc232f12ce0b2d37f9bb83da94") version("6.9.0", sha256="b6ef116dba80badf1cf36efc111e164edc4dd7e47c568d5d35165c6e8bca2c5d") version("6.8.3", sha256="e5e0d67236bf0a436f0dda6363c7a31085c9a8147f92f817c3fa817186a5a151") diff --git a/repos/spack_repo/builtin/packages/qt_quick3d/package.py b/repos/spack_repo/builtin/packages/qt_quick3d/package.py index f587b3cea4c..b7e78837c6e 100644 --- a/repos/spack_repo/builtin/packages/qt_quick3d/package.py +++ b/repos/spack_repo/builtin/packages/qt_quick3d/package.py @@ -16,6 +16,12 @@ class QtQuick3d(QtPackage): license("BSD-3-Clause") + version("6.11.1", sha256="fa684e2a86e0de6d128d30d71b8d6155082d2dbfc0b6d4f8f3196dbf106e81ac") + version("6.10.2", sha256="88082ab6847283c3c2b83c387538099c8d2840eb4b5efe7ab0b6cc8c565ee388") + version("6.10.1", sha256="993684adddc2825dd9ae1b9c1687e0163960332057df4dfbc3dbe4ea6b900413") + version("6.10.0", sha256="4a87e5c8f9f187a672af15da8bd1e412fe745d57d71a1df32e4114f340b72ffe") + version("6.9.3", sha256="959ace15a463726963df819f3c46d8f43bc7956556ce7fc28bad5e4b1c55f0f1") + version("6.9.2", sha256="a10d237850e40fc7bdae44fac8658726864995c5c6cca740b80a2c10b85d3d3b") version("6.9.1", sha256="127ea0306c5ca1a67d90b13c8d60a21b8e52ade007853bac7bcbf55af61ae0db") version("6.9.0", sha256="49c743ca41528787fb26057e603854c115a85efb3edb56977e49bf81ba3fada0") version("6.8.3", sha256="7a6d2087a5112b1d1bfe7455ae023418a2d5f6ef6d3d8de8ccdcef979a7cdd17") diff --git a/repos/spack_repo/builtin/packages/qt_quicktimeline/package.py b/repos/spack_repo/builtin/packages/qt_quicktimeline/package.py index 679584ec841..b6bdc3fd8ec 100644 --- a/repos/spack_repo/builtin/packages/qt_quicktimeline/package.py +++ b/repos/spack_repo/builtin/packages/qt_quicktimeline/package.py @@ -16,6 +16,12 @@ class QtQuicktimeline(QtPackage): license("BSD-3-Clause") + version("6.11.1", sha256="8b044f64c96a84282669a76f84fd11b9f7de3e681c025d0b3b595b541153db95") + version("6.10.2", sha256="e4a1b21a6e1579d1a954b67a22e816aaf23f4e74f156e34aab4ea5ed71d73528") + version("6.10.1", sha256="cb0db62d8844886eca6387d62be9997c3d25d75503af619690a1cc906d7eb855") + version("6.10.0", sha256="6af28c87896cf93f1033965323a80a9e5dd7ed004ecfa30826fe8056216f4102") + version("6.9.3", sha256="0fb33914939e8e5ce065ab3505ced6cbe8a3e8bd3e831eb5710d308513c177e0") + version("6.9.2", sha256="b79b8c9d85f2c1f67529cc82354bda661a8b808835a8eeecb8ac2f32044bddad") version("6.9.1", sha256="b9e06d733003097fa72ec4987c44ef6967ff9e630770e8cb6763a65d20d97532") version("6.9.0", sha256="5945693d20ca9ab753ff2cb0324c2535b47db86072c6652b26d90f34f768c5e4") version("6.8.3", sha256="e2129c5a4301ba8c8805837f399178d24f9eeea1757fd14cb5053e6b8ea3f260") diff --git a/repos/spack_repo/builtin/packages/qt_shadertools/package.py b/repos/spack_repo/builtin/packages/qt_shadertools/package.py index 9670e675bb8..cf598cb9bf6 100644 --- a/repos/spack_repo/builtin/packages/qt_shadertools/package.py +++ b/repos/spack_repo/builtin/packages/qt_shadertools/package.py @@ -18,6 +18,12 @@ class QtShadertools(QtPackage): license("BSD-3-Clause") + version("6.11.1", sha256="d4987b5fdf01d33e589cd4e4a8125734fa35fc8c8aa34c3d998571af07a4cfb8") + version("6.10.2", sha256="dbc29c54631a97778be49d7930367bc9d9ed84014fb735917c9e7658c21eb3d1") + version("6.10.1", sha256="984857c3ac6b26731e688604be72d3ecfeab13ee1c48b9c924013a6d21989883") + version("6.10.0", sha256="da7721256607e0074b0d959c61b6e1b422b5b7d0ad2a30b0e409aa9d8afc3d1f") + version("6.9.3", sha256="042f3713f32324f5c342e6ea56e1c420e98fc7e529b99c90797b0c47d03eba13") + version("6.9.2", sha256="9b7461bdc066b936e1cae626283a06ddbf44af2e88f2223496b058fdfce6a5bd") version("6.9.1", sha256="c2aafc1f28a59e69f19494211763948cc8f69f71d22fdbdbefd418e40c267b86") version("6.9.0", sha256="27bdda7abee92d6573e2b3ecc9113eb2f625a3ae952693d6cfc45c4062987ec9") version("6.8.3", sha256="b6c6cf0006476a219f8f3494ae0f356c8ca98cdd6be43dd9b105d7bea17d0ea0") diff --git a/repos/spack_repo/builtin/packages/qt_svg/package.py b/repos/spack_repo/builtin/packages/qt_svg/package.py index 840353ac503..6a655225ab9 100644 --- a/repos/spack_repo/builtin/packages/qt_svg/package.py +++ b/repos/spack_repo/builtin/packages/qt_svg/package.py @@ -18,6 +18,12 @@ class QtSvg(QtPackage): license("BSD-3-Clause") + version("6.11.1", sha256="06d7cefd2776a072b6906aaf9529a3a17eb51a254fba0cb52f5a35d97c342569") + version("6.10.2", sha256="70c58c2ad2d99ce1caf7e394e8e6c8a328563b70f97f9428e5c48d28d913a504") + version("6.10.1", sha256="8c2c82230f6acfb272b48078bd0257628a417b5f6932e10242e14469628bf855") + version("6.10.0", sha256="bda1574665edc73d08fc5ed0575a65f28e6fa5be2fcdeaae613bebd114a6a982") + version("6.9.3", sha256="87ca8fb2baf66ad0046d96dc5e56d6757d43664fd2a75883dbe74df4fd2b1f0f") + version("6.9.2", sha256="c4c4f2fae23b524dc7131b73b875397e1c74f5d7788f09ec754754716b122951") version("6.9.1", sha256="4b6b98dde835263a344c5bd696c3aae36f20239daaf42a3b38057dc85c739085") version("6.9.0", sha256="2f58d8c021b3d221204c1f623f84a6ba5f69d5fcdf9bd26b8c2da2934cf90444") version("6.8.3", sha256="fb53da582e98d23cbf6e8bedb71efb60720e61a982d31a741742c543e2f3838d") diff --git a/repos/spack_repo/builtin/packages/qt_tools/package.py b/repos/spack_repo/builtin/packages/qt_tools/package.py index 049b99a50b1..ecb4eefcdaf 100644 --- a/repos/spack_repo/builtin/packages/qt_tools/package.py +++ b/repos/spack_repo/builtin/packages/qt_tools/package.py @@ -20,6 +20,12 @@ class QtTools(QtPackage): license("BSD-3-Clause") # src/assistant/qlitehtml is a submodule that is not in the git archive + version("6.11.1", commit="947c5f152f4abc06f9e135b411c06a6fbe608aed", submodules=True) + version("6.10.2", commit="171ae9df0d84ee5133193cd3e27848fd73601c53", submodules=True) + version("6.10.1", commit="9e0030f889168f7a0ec1bb47a7d7138a497b3c96", submodules=True) + version("6.10.0", commit="f33c4bb1dee569eec4ffe1333584cb4b75af6c59", submodules=True) + version("6.9.3", commit="89031fa54058af5e4d92ee08d31642ca338e9c0c", submodules=True) + version("6.9.2", commit="f117f860edcbe49a38275bfe35d3573614be6107", submodules=True) version("6.9.1", commit="9e8f157b49c78c05abf8fa87da21e04cdf09780c", submodules=True) version("6.9.0", commit="087e300bf286aaee92682d828ee0bd622e00d52a", submodules=True) version("6.8.3", commit="2649ea1aa5cc1c23bd920ae94dd50071315ea30f", submodules=True) @@ -39,11 +45,24 @@ class QtTools(QtPackage): default=False, description="Qt Widgets Designer for designing and building GUIs with Qt Widgets.", ) + variant( + "qdoc", + default=False, + description="QDoc is Qt's documentation generator for C++ and QML projects.", + ) + variant( + "linguist", + default=False, + description="Qt Linguist can be used by translator to translate text in Qt applications.", + ) # use of relative path in https://github.com/qt/qttools/blob/6.8.2/.gitmodules conflicts("+assistant", when="@6.8.2", msg="Incorrect git submodule prevents +assistant") - depends_on("llvm +clang") + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("llvm +clang", when="+qdoc") depends_on("qt-base +network") depends_on("qt-base +widgets", when="+designer") @@ -55,23 +74,12 @@ class QtTools(QtPackage): depends_on("qt-base@" + v, when="@" + v) def cmake_args(self): - spec = self.spec - - args = super().cmake_args() + [] - - def define(cmake_var, value): - args.append(self.define(cmake_var, value)) - - if spec.satisfies("+assistant"): - define("FEATURE_assistant", True) - else: - define("FEATURE_assistant", False) - - if spec.satisfies("+designer"): - define("FEATURE_designer", True) - define("FEATURE_zstd", True) - else: - define("FEATURE_designer", False) - define("FEATURE_zstd", False) - - return args + return super().cmake_args() + [ + self.define_qt_feature("fullqthelp", True), + self.define_qt_feature_from_variant("qdoc"), + self.define_qt_feature_from_variant("clang", "qdoc"), + self.define_qt_feature_from_variant("assistant"), + self.define_qt_feature_from_variant("designer"), + self.define_qt_feature_from_variant("zstd", "designer"), + self.define_qt_feature_from_variant("linguist"), + ] diff --git a/repos/spack_repo/builtin/packages/qthreads/package.py b/repos/spack_repo/builtin/packages/qthreads/package.py index 00bd118f5a4..5935cfc3a6f 100644 --- a/repos/spack_repo/builtin/packages/qthreads/package.py +++ b/repos/spack_repo/builtin/packages/qthreads/package.py @@ -130,10 +130,10 @@ def _build_and_run_test(self, test): "-lqthread", f"{self.compiler.cc_rpath_arg}{self.prefix.lib}", ] - cc = which(os.environ["CC"]) + cc = which(os.environ["CC"], required=True) cc(*options) - exe = which(join_path(".", test)) + exe = which(join_path(".", test), required=True) exe() def test_hello_world(self): diff --git a/repos/spack_repo/builtin/packages/qualimap/package.py b/repos/spack_repo/builtin/packages/qualimap/package.py index 0c6106631a2..992bf42bb00 100644 --- a/repos/spack_repo/builtin/packages/qualimap/package.py +++ b/repos/spack_repo/builtin/packages/qualimap/package.py @@ -23,6 +23,8 @@ class Qualimap(Package): depends_on("java", type="run") + conflicts("java@17:") + def setup_run_environment(self, env: EnvironmentModifications) -> None: env.prepend_path("PATH", prefix) diff --git a/repos/spack_repo/builtin/packages/quandary/package.py b/repos/spack_repo/builtin/packages/quandary/package.py index 27ab44dce96..a888c208d5e 100644 --- a/repos/spack_repo/builtin/packages/quandary/package.py +++ b/repos/spack_repo/builtin/packages/quandary/package.py @@ -2,7 +2,11 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.cached_cmake import CachedCMakePackage, cmake_cache_path +from spack_repo.builtin.build_systems.cached_cmake import ( + CachedCMakePackage, + cmake_cache_option, + cmake_cache_path, +) from spack_repo.builtin.build_systems.cuda import CudaPackage from spack_repo.builtin.build_systems.rocm import ROCmPackage @@ -15,26 +19,36 @@ class Quandary(CachedCMakePackage, CudaPackage, ROCmPackage): homepage = "https://github.com/LLNL/quandary" git = "https://github.com/LLNL/quandary.git" - maintainers("steffi7574", "tdrwenski") + maintainers("steffi7574", "tdrwenski", "adrienbernede") license("MIT", checked_by="tdrwenski") version("main", branch="main", preferred=True) + version("4.4", tag="v4.4", commit="530f059e086894ee74d56198f3e4aa2a1808d916") + version("4.3", tag="v4.3", commit="d5087e7ac82665ceb028b492c88b3fe8acd5cd13") + version("4.2", tag="v4.2", commit="557675fd76daf9fd0be7ebd6321bf2afcb6a6b9c") version("learning", branch="learning") variant("slepc", default=False, description="Build with SLEPc library") - variant("debug", default=False, description="Debug mode") + variant("int64", default=False, description="Use 64 bit ints for PetscInts") variant("test", default=False, description="Add dependencies needed for testing") + variant("werror", default=False, description="Enable warnings as errors") depends_on("cxx", type="build") depends_on("c", type="build") depends_on("petsc~hypre~metis~fortran") - depends_on("petsc+debug", when="+debug") + depends_on("petsc+debug", when="build_type=Debug") + depends_on("petsc~debug", when="build_type=Release") + depends_on("petsc~debug", when="build_type=RelWithDebInfo") + depends_on("petsc+int64", when="+int64") + depends_on("petsc~int64", when="~int64") + depends_on("slepc", when="+slepc") depends_on("mpi", type=("build", "link", "run")) depends_on("blt@0.6.0:", type="build") + depends_on("tomlplusplus", when="@4.4:") with when("+rocm"): for arch_ in ROCmPackage.amdgpu_targets: @@ -56,9 +70,7 @@ def initconfig_package_entries(self): entries = [] entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec["blt"].prefix)) + entries.append(cmake_cache_option("WITH_SLEPC", spec.satisfies("+slepc"))) + entries.append(cmake_cache_option("ENABLE_WARNINGS_AS_ERRORS", spec.satisfies("+werror"))) return entries - - def cmake_args(self): - args = [self.define_from_variant("WITH_SLEPC", "slepc")] - return args diff --git a/repos/spack_repo/builtin/packages/quantum_espresso/package.py b/repos/spack_repo/builtin/packages/quantum_espresso/package.py index d64b4df29c3..cf74fa7cb7a 100644 --- a/repos/spack_repo/builtin/packages/quantum_espresso/package.py +++ b/repos/spack_repo/builtin/packages/quantum_espresso/package.py @@ -26,6 +26,7 @@ class QuantumEspresso(CMakePackage, Package): license("GPL-2.0-only") version("develop", branch="develop") + version("7.5", sha256="7e1f7a9a21b63192f5135218bee20a5321b66582e4756536681b76e9c59b3cc8") version("7.4.1", sha256="6ef9c53dbf0add2a5bf5ad2a372c0bff935ad56c4472baa001003e4f932cab97") version("7.4", sha256="b15dcfe25f4fbf15ccd34c1194021e90996393478226e601d876f7dea481d104") version("7.3.1", sha256="2c58b8fadfe4177de5a8b69eba447db5e623420b070dea6fd26c1533b081d844") @@ -76,7 +77,8 @@ class QuantumEspresso(CMakePackage, Package): depends_on("cmake@3.14.0:", type="build") variant("libxc", default=False, description="Uses libxc") - depends_on("libxc@5.1.2:", when="+libxc") + depends_on("libxc", when="+libxc") + depends_on("libxc@5.1.2:~shared", when="@:7.5+libxc") variant("openmp", default=True, description="Enables OpenMP support") # Need OpenMP threaded FFTW and BLAS libraries when configured @@ -194,7 +196,7 @@ class QuantumEspresso(CMakePackage, Package): ) conflicts( "@6.3:6.4.0 hdf5=serial", - msg="QE-to-QMCPACK wave function converter only " "supported with parallel HDF5", + msg="QE-to-QMCPACK wave function converter only supported with parallel HDF5", ) conflicts("@:7.0 hdf5=none", msg="QE-to-QMCPACK wave function converter requires HDF5") # QE > 7.0, the converter for QMCPACK can be built without hdf5 enabled in QE. diff --git a/repos/spack_repo/builtin/packages/qucs/package.py b/repos/spack_repo/builtin/packages/qucs/package.py index 917841b34d7..0b42c6f0581 100644 --- a/repos/spack_repo/builtin/packages/qucs/package.py +++ b/repos/spack_repo/builtin/packages/qucs/package.py @@ -59,7 +59,7 @@ class Qucs(AutotoolsPackage): depends_on("xyce", type="run", when="simulators=xyce") def autoreconf(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) if os.path.exists("bootstrap"): sh("./bootstrap") else: diff --git a/repos/spack_repo/builtin/packages/quda/package.py b/repos/spack_repo/builtin/packages/quda/package.py index cb893336f07..d2f120f1c22 100644 --- a/repos/spack_repo/builtin/packages/quda/package.py +++ b/repos/spack_repo/builtin/packages/quda/package.py @@ -30,21 +30,6 @@ class Quda(CMakePackage, CudaPackage, ROCmPackage): ) version("1.1.0", sha256="b4f635c993275010780ea09d8e593e0713a6ca1af1db6cc86c64518714fcc745") - version( - "1.0.0", - deprecated=True, - sha256="32b883bd4af45b76a832d8a070ab020306c94ff6590410cbe7c3eab3b630b938", - ) - version( - "0.9.0", - deprecated=True, - sha256="0a9f2e028fb40e4a09f78af51702d2de4099a9bf10fb8ce350eacb2d8327e481", - ) - version( - "0.8.0", - deprecated=True, - sha256="58d9a94b7fd38ec1f79bea7a0e9b470f0fa517cbf5fce42d5776e1c65607aeda", - ) # build dependencies generator("ninja") diff --git a/repos/spack_repo/builtin/packages/quest/package.py b/repos/spack_repo/builtin/packages/quest/package.py new file mode 100644 index 00000000000..375af3986a9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/quest/package.py @@ -0,0 +1,80 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage + +from spack.install_test import SkipTest +from spack.package import * + + +class Quest(CMakePackage, CudaPackage, ROCmPackage): + """A multithreaded, distributed, GPU-accelerated simulator of quantum computers.""" + + homepage = "https://quest.qtechtheory.org" + url = "https://github.com/QuEST-Kit/QuEST/archive/refs/tags/v4.0.0.tar.gz" + + maintainers("AcerP-py") + + license("MIT", checked_by="AcerP-py") + + version("4.1.0", sha256="85aa95bba6457c4f4e93221f4c417d988588891a1f7cb211c307dfe81a10cadd") + version("4.0.0", sha256="e6a922a9dc1d6ee7c4d2591a277646dca2ce2fd90eecf36fd66970cb24bbfb67") + + variant("examples", default=False, description="Build examples") + variant("mpi", default=True, description="Enable MPI support") + variant("openmp", default=True, description="Build with OpenMP") + variant( + "precision", + default="2", + description="Set floating-point precision", + values=("1", "2", "4"), + multi=False, + ) + variant("tests", default=False, description="Build tests") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + with when("+mpi"): + depends_on("mpi") + + with when("+tests"): + depends_on("catch2") + + def check(self): + if self.spec.satisfies("~tests"): + raise SkipTest("To run tests for QuEST you must enable the 'tests' variant!") + super().check() + + def cmake_args(self): + args = [ + # from variants + self.define_from_variant("BUILD_EXAMPLES", "examples"), + self.define_from_variant("ENABLE_DISTRIBUTION", "mpi"), + self.define_from_variant("ENABLE_MULTITHREADING", "openmp"), + self.define_from_variant("FLOAT_PRECISION", "precision"), + self.define_from_variant("ENABLE_TESTING", "tests"), + # others + self.define("DOWNLOAD_CATCH2", False), # don't use internal catch2 + ] + + if self.spec.satisfies("+cuda"): + args.append(self.define("ENABLE_CUDA", True)) + + targets = ";".join(self.spec.variants["cuda_arch"].value) + args.append(self.define("CMAKE_CUDA_ARCHITECTURES", targets)) + + if self.spec.satisfies("+rocm"): + args.append(self.define("ENABLE_HIP", True)) + + targets = ";".join(self.spec.variants["amdgpu_target"].value) + args.append(self.define("CMAKE_HIP_ARCHITECTURES", targets)) + + return args + + def patch(self): + # remove extra 'quest' that is added to the install path + filter_file(r'^cmake_path\(APPEND CMAKE_INSTALL_PREFIX "quest"\)$', "", "CMakeLists.txt") diff --git a/repos/spack_repo/builtin/packages/r/change_optflags_tmp.patch b/repos/spack_repo/builtin/packages/r/change_optflags_tmp.patch deleted file mode 100644 index 4e39b02be74..00000000000 --- a/repos/spack_repo/builtin/packages/r/change_optflags_tmp.patch +++ /dev/null @@ -1,67 +0,0 @@ -diff -ur R-3.6.3.org/configure R-3.6.3/configure ---- R-3.6.3.org/configure 2020-03-09 11:09:16.060825352 +0900 -+++ R-3.6.3/configure 2020-03-09 11:10:47.011280195 +0900 -@@ -6470,13 +6470,13 @@ - CFLAGS=$ac_save_CFLAGS - elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then -- CFLAGS="-g -O2" -+ CFLAGS="-g -O1" - else - CFLAGS="-g" - fi - else - if test "$GCC" = yes; then -- CFLAGS="-O2" -+ CFLAGS="-O1" - else - CFLAGS= - fi -@@ -7445,13 +7445,13 @@ - FCFLAGS=$ac_save_FCFLAGS - elif test $ac_cv_prog_fc_g = yes; then - if test "x$ac_cv_fc_compiler_gnu" = xyes; then -- FCFLAGS="-g -O2" -+ FCFLAGS="-g -O1" - else - FCFLAGS="-g" - fi - else - if test "x$ac_cv_fc_compiler_gnu" = xyes; then -- FCFLAGS="-O2" -+ FCFLAGS="-O1" - else - FCFLAGS= - fi -@@ -7717,13 +7717,13 @@ - CXXFLAGS=$ac_save_CXXFLAGS - elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then -- CXXFLAGS="-g -O2" -+ CXXFLAGS="-g -O1" - else - CXXFLAGS="-g" - fi - else - if test "$GXX" = yes; then -- CXXFLAGS="-O2" -+ CXXFLAGS="-O1" - else - CXXFLAGS= - fi -@@ -8336,13 +8336,13 @@ - OBJCFLAGS=$ac_save_OBJCFLAGS - elif test $ac_cv_prog_objc_g = yes; then - if test "$GOBJC" = yes; then -- OBJCFLAGS="-g -O2" -+ OBJCFLAGS="-g -O1" - else - OBJCFLAGS="-g" - fi - else - if test "$GOBJC" = yes; then -- OBJCFLAGS="-O2" -+ OBJCFLAGS="-O1" - else - OBJCFLAGS= - fi diff --git a/repos/spack_repo/builtin/packages/r/package.py b/repos/spack_repo/builtin/packages/r/package.py index 43c4a305dfd..79bbce03f84 100644 --- a/repos/spack_repo/builtin/packages/r/package.py +++ b/repos/spack_repo/builtin/packages/r/package.py @@ -3,6 +3,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os +import re from spack_repo.builtin.build_systems.autotools import AutotoolsPackage @@ -25,6 +26,9 @@ class R(AutotoolsPackage): license("GPL-2.0-or-later") + version("trunk", svn="https://svn.r-project.org/R/trunk") + version("4.5.3", sha256="aa5c1ed4293c7271ac513d654670356ac0e8a6ad5e42be014365d11150b5b8f2") + version("4.5.2", sha256="0d71ff7106ec69cd7c67e1e95ed1a3cee355880931f2eb78c530014a9e379f20") version("4.5.1", sha256="b42a7921400386645b10105b91c68728787db5c4c83c9f6c30acdce632e1bb70") version("4.5.0", sha256="3b33ea113e0d1ddc9793874d5949cec2c7386f66e4abfb1cef9aec22846c3ce1") version("4.4.3", sha256="0d93d224442dea253c2b086f088db6d0d3cfd9b592cd5496e8cb2143e90fc9e8") @@ -35,75 +39,37 @@ class R(AutotoolsPackage): version("4.3.2", sha256="b3f5760ac2eee8026a3f0eefcb25b47723d978038eee8e844762094c860c452a") version("4.3.1", sha256="8dd0bf24f1023c6f618c3b317383d291b4a494f40d73b983ac22ffea99e4ba99") version("4.3.0", sha256="45dcc48b6cf27d361020f77fde1a39209e997b81402b3663ca1c010056a6a609") - version("4.2.3", sha256="55e4a9a6d43be314e2c03d0266a6fa5444afdce50b303bfc3b82b3979516e074") - version("4.2.2", sha256="0ff62b42ec51afa5713caee7c4fde7a0c45940ba39bef8c5c9487fef0c953df5") - version("4.2.1", sha256="4d52db486d27848e54613d4ee977ad952ec08ce17807e1b525b10cd4436c643f") - version("4.2.0", sha256="38eab7719b7ad095388f06aa090c5a2b202791945de60d3e2bb0eab1f5097488") - version("4.1.3", sha256="15ff5b333c61094060b2a52e9c1d8ec55cc42dd029e39ca22abdaa909526fed6") - version("4.1.2", sha256="2036225e9f7207d4ce097e54972aecdaa8b40d7d9911cd26491fac5a0fab38af") - version("4.1.1", sha256="515e03265752257d0b7036f380f82e42b46ed8473f54f25c7b67ed25bbbdd364") - version("4.1.0", sha256="e8e68959d7282ca147360fc9644ada9bd161bab781bab14d33b8999a95182781") - version("4.0.5", sha256="0a3ee079aa772e131fe5435311ab627fcbccb5a50cabc54292e6f62046f1ffef") - version("4.0.4", sha256="523f27d69744a08c8f0bd5e1e6c3d89a4db29ed983388ba70963a3cd3a4a802e") - version("4.0.3", sha256="09983a8a78d5fb6bc45d27b1c55f9ba5265f78fa54a55c13ae691f87c5bb9e0d") - version("4.0.2", sha256="d3bceab364da0876625e4097808b42512395fdf41292f4915ab1fd257c1bbe75") - version("4.0.1", sha256="95fe24a4d8d8f8f888460c8f5fe4311cec656e7a1722d233218bc03861bc6f32") - version("4.0.0", sha256="06beb0291b569978484eb0dcb5d2339665ec745737bdfb4e873e7a5a75492940") - version("3.6.3", sha256="89302990d8e8add536e12125ec591d6951022cf8475861b3690bc8bf1cefaa8f") - version("3.6.2", sha256="bd65a45cddfb88f37370fbcee4ac8dd3f1aebeebe47c2f968fd9770ba2bbc954") - version("3.6.1", sha256="5baa9ebd3e71acecdcc3da31d9042fb174d55a42829f8315f2457080978b1389") - version("3.6.0", sha256="36fcac3e452666158e62459c6fc810adc247c7109ed71c5b6c3ad5fc2bf57509") - version("3.5.3", sha256="2bfa37b7bd709f003d6b8a172ddfb6d03ddd2d672d6096439523039f7a8e678c") - version("3.5.2", sha256="e53d8c3cf20f2b8d7a9c1631b6f6a22874506fb392034758b3bb341c586c5b62") - version("3.5.1", sha256="0463bff5eea0f3d93fa071f79c18d0993878fd4f2e18ae6cf22c1639d11457ed") - version("3.5.0", sha256="fd1725535e21797d3d9fea8963d99be0ba4c3aecadcf081b43e261458b416870") - version("3.4.4", sha256="b3e97d2fab7256d1c655c4075934725ba1cd7cb9237240a11bb22ccdad960337") - version("3.4.3", sha256="7a3cb831de5b4151e1f890113ed207527b7d4b16df9ec6b35e0964170007f426") - version("3.4.2", sha256="971e30c2436cf645f58552905105d75788bd9733bddbcb7c4fbff4c1a6d80c64") - version("3.4.1", sha256="02b1135d15ea969a3582caeb95594a05e830a6debcdb5b85ed2d5836a6a3fc78") - version("3.4.0", sha256="288e9ed42457c47720780433b3d5c3c20983048b789291cc6a7baa11f9428b91") - version("3.3.3", sha256="5ab768053a275084618fb669b4fbaadcc39158998a87e8465323829590bcfc6c") - version("3.3.2", sha256="d294ad21e9f574fb4828ebb3a94b8cb34f4f304a41687a994be00dd41a4e514c") - version("3.3.1", sha256="3dc59ae5831f5380f83c169bac2103ad052efe0ecec4ffa74bde4d85a0fda9e2") - version("3.3.0", sha256="9256b154b1a5993d844bee7b1955cd49c99ad72cef03cce3cd1bdca1310311e4") - version("3.2.5", sha256="60745672dce5ddc201806fa59f6d4e0ba6554d8ed78d0f9f0d79a629978f80b5") - version("3.2.3", sha256="b93b7d878138279234160f007cb9b7f81b8a72c012a15566e9ec5395cfd9b6c1") - version("3.2.2", sha256="9c9152e74134b68b0f3a1c7083764adc1cb56fd8336bec003fd0ca550cd2461d") - version("3.2.1", sha256="d59dbc3f04f4604a5cf0fb210b8ea703ef2438b3ee65fd5ab536ec5234f4c982") - version("3.2.0", sha256="f5ae953f18ba6f3d55b46556bbbf73441350f9fd22625402b723a2b81ff64f35") - version("3.1.3", sha256="07e98323935baa38079204bfb9414a029704bb9c0ca5ab317020ae521a377312") - version("3.1.2", sha256="bcd150afcae0e02f6efb5f35a6ab72432be82e849ec52ce0bb89d8c342a8fa7a") variant("X", default=False, description="Enable X11 support (TCLTK, PNG, JPEG, TIFF, CAIRO)") + variant("java", default=False, description="Enable Java support") variant("memory_profiling", default=False, description="Enable memory profiling") variant("rmath", default=False, description="Build standalone Rmath library") depends_on("c", type="build") depends_on("cxx", type="build") depends_on("fortran", type="build") + depends_on("findutils", type="build") + depends_on("texinfo", type="build") depends_on("blas") requires("^openblas symbol_suffix=none", when="^openblas") depends_on("lapack") + depends_on("zlib-api") + depends_on("zlib@1.2.5:", when="^[virtuals=zlib-api] zlib") depends_on("bzip2") + depends_on("xz") + depends_on("zstd", when="@4.5:") + depends_on("libdeflate", when="@4.4:") depends_on("curl+libidn2") - # R didn't anticipate the celebratory non-breaking major version bump of curl 8. - depends_on("curl@:7", when="@:4.2") - depends_on("icu4c") - depends_on("java") depends_on("libtirpc") depends_on("ncurses") - depends_on("pcre", when="@:3.6.3") - depends_on("pcre2", when="@4:") depends_on("readline") - depends_on("xz") - depends_on("which", type=("build", "run")) - depends_on("zlib-api") - depends_on("zlib@1.2.5:", when="^[virtuals=zlib-api] zlib") - depends_on("zstd", when="@4.5:") - depends_on("texinfo", type="build") + depends_on("pcre2") depends_on("gettext") + depends_on("icu4c") + depends_on("which", type=("build", "run")) + depends_on("java", when="+java", type=("build", "run")) with when("+X"): depends_on("cairo+X+gobject+pdf") @@ -113,18 +79,11 @@ class R(AutotoolsPackage): depends_on("libpng") depends_on("libtiff") depends_on("libx11") - depends_on("libxmu") depends_on("libxt") + depends_on("libxmu") + depends_on("tcl") depends_on("tk") - patch("zlib.patch", when="@:3.3.2") - - # R cannot be built with '-O2' optimization - # with Fujitsu Compiler @4.1.0 now. - # Until the Fujitsu compiler resolves this problem, - # temporary fix to lower the optimization level. - patch("change_optflags_tmp.patch", when="%fj@4.1.0") - # Make R use a symlink to which in Sys.which, otherwise an absolute path # gets stored as compressed byte code, which is not relocatable patch("relocate-which.patch") @@ -133,7 +92,7 @@ class R(AutotoolsPackage): patch( "https://github.com/r-devel/r-svn/commit/f7c46500f455eb4edfc3656c3fa20af61b16abb7.patch?full_index=1", sha256="56c77763cb104aa9cb63420e585da63cb2c23bc03fa3ef9d088044eeff9d7380", - when="@3.5.0:4.3.3", + when="@:4.3.3", ) build_directory = "spack-build" @@ -229,6 +188,8 @@ def configure_args(self): config_args.append("--without-tcltk") config_args.append("--without-x") + config_args.extend(self.enable_or_disable("java")) + if "+memory_profiling" in spec: config_args.append("--enable-memory-profiling") @@ -236,10 +197,6 @@ def configure_args(self): if self.compiler.name != "gcc": config_args.append("FPICFLAGS={0}".format(self.compiler.cc_pic_flag)) - if self.spec.satisfies("@:3.6.1 %gcc@10:"): - config_args.append("CFLAGS=-fcommon") - config_args.append("FFLAGS=-fallow-argument-mismatch") - return config_args @run_after("install") diff --git a/repos/spack_repo/builtin/packages/r/zlib.patch b/repos/spack_repo/builtin/packages/r/zlib.patch deleted file mode 100644 index 673d5352fac..00000000000 --- a/repos/spack_repo/builtin/packages/r/zlib.patch +++ /dev/null @@ -1,29 +0,0 @@ -*** a/configure 2017-01-21 21:48:35.077000000 +0000 ---- b/configure 2017-01-21 21:50:50.700000000 +0000 -*************** -*** 35496,35505 **** - #include - #include - int main() { -! #ifdef ZLIB_VERSION -! /* Work around Debian bug: it uses 1.2.3.4 even though there was no such -! version on the master site zlib.net */ -! exit(strncmp(ZLIB_VERSION, "1.2.5", 5) < 0); - #else - exit(1); - #endif ---- 35496,35509 ---- - #include - #include - int main() { -! /* Checking ZLIB_VERNUM trick learned here: -! * https://github.com/TransitApp/protobuf/blob/master/configure.ac#L95 -! */ -! #ifdef ZLIB_VERNUM -! if (ZLIB_VERNUM < 0x1250) { -! exit(1); -! } -! exit(0); - #else - exit(1); - #endif diff --git a/repos/spack_repo/builtin/packages/r3d/package.py b/repos/spack_repo/builtin/packages/r3d/package.py index 4366ec748c8..36e73ceebd6 100644 --- a/repos/spack_repo/builtin/packages/r3d/package.py +++ b/repos/spack_repo/builtin/packages/r3d/package.py @@ -18,15 +18,12 @@ class R3d(CMakePackage): version("master", branch="master") version("2021-03-16", commit="5978a3f9cc145a52eecbf89c44d7fd2166b4c778") - version("2019-04-24", commit="86cea79c124c6a8edd8c8cdea61e3e923acb0b22", deprecated=True) - version("2018-12-19", commit="47308f68c782ed3227d3dab1eff24d41f6421f21", deprecated=True) - version("2018-01-07", commit="d6799a582256a120ef3bd7e18959e96cba0e5495", deprecated=True) variant( "r3d_max_verts", default="0", description=( - "Maximum number of vertices allowed in a polyhedron " "(versions 2021-03-10 or later)" + "Maximum number of vertices allowed in a polyhedron (versions 2021-03-10 or later)" ), ) diff --git a/repos/spack_repo/builtin/packages/r_a4/package.py b/repos/spack_repo/builtin/packages/r_a4/package.py index 64ae324929c..1d33993550e 100644 --- a/repos/spack_repo/builtin/packages/r_a4/package.py +++ b/repos/spack_repo/builtin/packages/r_a4/package.py @@ -15,16 +15,17 @@ class RA4(RPackage): bioc = "a4" - version("1.48.0", commit="89ef9f4afdde5270acecc7c65be3752b71237eba") - version("1.46.0", commit="1b8f1300025fb0940e7f24cff7ffec9fca02d0e4") - version("1.44.0", commit="5b0fc5a9971d8f3688ad1f88a4f5ee1498e91633") - version("1.42.0", commit="fc26809e2bce7cd50d99d6f6dd5f85c38342fdea") - version("1.38.0", commit="5b7a9087bab10c55e24707e96e48046995236c94") - version("1.32.0", commit="03770d4e53be4eed1bd0ab8f8cddba66854b4712") - version("1.30.0", commit="771e01ae3aaac1c4db12f781c41d90fa7191b64d") - version("1.28.0", commit="e81a8c15e1062ed9433e2d4d333f0484bc0e8bfb") - version("1.26.0", commit="e6af2cba5b684f81cc6e44dbc432916f75a2f774") - version("1.24.0", commit="79b5143652176787c85a0d587b3bbfad6b4a19f4") + with default_args(get_full_repo=True): + version("1.48.0", commit="89ef9f4afdde5270acecc7c65be3752b71237eba") + version("1.46.0", commit="1b8f1300025fb0940e7f24cff7ffec9fca02d0e4") + version("1.44.0", commit="5b0fc5a9971d8f3688ad1f88a4f5ee1498e91633") + version("1.42.0", commit="fc26809e2bce7cd50d99d6f6dd5f85c38342fdea") + version("1.38.0", commit="5b7a9087bab10c55e24707e96e48046995236c94") + version("1.32.0", commit="03770d4e53be4eed1bd0ab8f8cddba66854b4712") + version("1.30.0", commit="771e01ae3aaac1c4db12f781c41d90fa7191b64d") + version("1.28.0", commit="e81a8c15e1062ed9433e2d4d333f0484bc0e8bfb") + version("1.26.0", commit="e6af2cba5b684f81cc6e44dbc432916f75a2f774") + version("1.24.0", commit="79b5143652176787c85a0d587b3bbfad6b4a19f4") depends_on("r-a4base", type=("build", "run")) depends_on("r-a4preproc", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_a4base/package.py b/repos/spack_repo/builtin/packages/r_a4base/package.py index 1c957e38190..cc36b9923d0 100644 --- a/repos/spack_repo/builtin/packages/r_a4base/package.py +++ b/repos/spack_repo/builtin/packages/r_a4base/package.py @@ -15,16 +15,17 @@ class RA4base(RPackage): bioc = "a4Base" - version("1.48.0", commit="26d5793de3163091125feeed1de82e5406777b60") - version("1.46.0", commit="be70ae723bb6031cdf9540d62dc6113761074e88") - version("1.44.0", commit="9ae69e03118c7b14df0e6c9e3b25362b09f25bbe") - version("1.42.0", commit="d7296e2792020e9c5b1c19101104326ee8bebfe6") - version("1.38.0", commit="4add242fa9c62795aca5b0dfca34a43484c5aa82") - version("1.32.0", commit="8a1e15d25494c54db8c1de5dbbd69e628569e3d7") - version("1.30.0", commit="fc370b2bd8286acc1e42a10344d91974f5b94229") - version("1.28.0", commit="3918a9ebafa065027c29620ee4d83789cb02f932") - version("1.26.0", commit="9b8ee4a8be90f5035a4b105ecebb8bb5b50cd0d9") - version("1.24.0", commit="f674afe424a508df2c8ee6c87a06fbd4aa410ef6") + with default_args(get_full_repo=True): + version("1.48.0", commit="26d5793de3163091125feeed1de82e5406777b60") + version("1.46.0", commit="be70ae723bb6031cdf9540d62dc6113761074e88") + version("1.44.0", commit="9ae69e03118c7b14df0e6c9e3b25362b09f25bbe") + version("1.42.0", commit="d7296e2792020e9c5b1c19101104326ee8bebfe6") + version("1.38.0", commit="4add242fa9c62795aca5b0dfca34a43484c5aa82") + version("1.32.0", commit="8a1e15d25494c54db8c1de5dbbd69e628569e3d7") + version("1.30.0", commit="fc370b2bd8286acc1e42a10344d91974f5b94229") + version("1.28.0", commit="3918a9ebafa065027c29620ee4d83789cb02f932") + version("1.26.0", commit="9b8ee4a8be90f5035a4b105ecebb8bb5b50cd0d9") + version("1.24.0", commit="f674afe424a508df2c8ee6c87a06fbd4aa410ef6") depends_on("r-a4preproc", type=("build", "run")) depends_on("r-a4core", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_a4classif/package.py b/repos/spack_repo/builtin/packages/r_a4classif/package.py index f4e07ac27a8..f7c900214f2 100644 --- a/repos/spack_repo/builtin/packages/r_a4classif/package.py +++ b/repos/spack_repo/builtin/packages/r_a4classif/package.py @@ -16,16 +16,17 @@ class RA4classif(RPackage): bioc = "a4Classif" - version("1.48.0", commit="1e2ff90d5af6332beac630395a7494c8fd30aff4") - version("1.46.0", commit="96794183a76ab7da7a1863ccd421640254447af5") - version("1.44.0", commit="df0fce781f9bc480a1159d958c9a63c314a9ed01") - version("1.42.0", commit="820854a7ca9ed0c295479a25b7e3375c6d01d0b5") - version("1.38.0", commit="c4d058813efb835774813b2d69c52912162f8e75") - version("1.32.0", commit="aa4f22df2da54b71e1a238d2b9cbcb3afa6f7f88") - version("1.30.0", commit="b62841bff2f8894a3011a4e74afc37076d1322a3") - version("1.28.0", commit="3464011f6c3ddb41b78acc47e775539034287be7") - version("1.26.0", commit="bc4018c3c441e1840bb3e2959c07611489439a50") - version("1.24.0", commit="ca06bf274c87a73fc12c29a6eea4b90289fe30b1") + with default_args(get_full_repo=True): + version("1.48.0", commit="1e2ff90d5af6332beac630395a7494c8fd30aff4") + version("1.46.0", commit="96794183a76ab7da7a1863ccd421640254447af5") + version("1.44.0", commit="df0fce781f9bc480a1159d958c9a63c314a9ed01") + version("1.42.0", commit="820854a7ca9ed0c295479a25b7e3375c6d01d0b5") + version("1.38.0", commit="c4d058813efb835774813b2d69c52912162f8e75") + version("1.32.0", commit="aa4f22df2da54b71e1a238d2b9cbcb3afa6f7f88") + version("1.30.0", commit="b62841bff2f8894a3011a4e74afc37076d1322a3") + version("1.28.0", commit="3464011f6c3ddb41b78acc47e775539034287be7") + version("1.26.0", commit="bc4018c3c441e1840bb3e2959c07611489439a50") + version("1.24.0", commit="ca06bf274c87a73fc12c29a6eea4b90289fe30b1") depends_on("r-a4core", type=("build", "run")) depends_on("r-a4preproc", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_a4core/package.py b/repos/spack_repo/builtin/packages/r_a4core/package.py index c6249eb07c4..1421110415d 100644 --- a/repos/spack_repo/builtin/packages/r_a4core/package.py +++ b/repos/spack_repo/builtin/packages/r_a4core/package.py @@ -15,16 +15,17 @@ class RA4core(RPackage): bioc = "a4Core" - version("1.48.0", commit="3dd09f0a662745fcfd3fee7048301f3524e8ac5c") - version("1.46.0", commit="8999fe146be6d04ae36c725d2b6324a6ce8ceb83") - version("1.44.0", commit="61a7f3a51a41af615bfd4c22984e4c4a82874e8c") - version("1.42.0", commit="6985950b72c2a0f20ec44fe2067d8864e004bfaa") - version("1.38.0", commit="a027dcd3486c64950815ec7c7271f1f65ba3d8a1") - version("1.32.0", commit="2916a29723bdd514d5d987f89725d141d1d2dfce") - version("1.30.0", commit="e392b1b4339a34f93d5d9bc520a1a9385ea63141") - version("1.28.0", commit="39b6ee29bc2f2fdc5733438c14dc02f8abc6460b") - version("1.26.0", commit="e7be935f20b486165a2b27dbbf9e99ba07151bcd") - version("1.24.0", commit="c871faa3e1ab6be38a9ea3018816cf31b58b0ed3") + with default_args(get_full_repo=True): + version("1.48.0", commit="3dd09f0a662745fcfd3fee7048301f3524e8ac5c") + version("1.46.0", commit="8999fe146be6d04ae36c725d2b6324a6ce8ceb83") + version("1.44.0", commit="61a7f3a51a41af615bfd4c22984e4c4a82874e8c") + version("1.42.0", commit="6985950b72c2a0f20ec44fe2067d8864e004bfaa") + version("1.38.0", commit="a027dcd3486c64950815ec7c7271f1f65ba3d8a1") + version("1.32.0", commit="2916a29723bdd514d5d987f89725d141d1d2dfce") + version("1.30.0", commit="e392b1b4339a34f93d5d9bc520a1a9385ea63141") + version("1.28.0", commit="39b6ee29bc2f2fdc5733438c14dc02f8abc6460b") + version("1.26.0", commit="e7be935f20b486165a2b27dbbf9e99ba07151bcd") + version("1.24.0", commit="c871faa3e1ab6be38a9ea3018816cf31b58b0ed3") depends_on("r-biobase", type=("build", "run")) depends_on("r-glmnet", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_a4preproc/package.py b/repos/spack_repo/builtin/packages/r_a4preproc/package.py index 25ac8d52edd..75c808ff9da 100644 --- a/repos/spack_repo/builtin/packages/r_a4preproc/package.py +++ b/repos/spack_repo/builtin/packages/r_a4preproc/package.py @@ -15,16 +15,17 @@ class RA4preproc(RPackage): bioc = "a4Preproc" - version("1.48.0", commit="d3bf8b82d7cabd2ef77253bb9a741dcde3ca3a41") - version("1.46.0", commit="8463958692c73fd655a6dfec39ea99c915513719") - version("1.44.0", commit="252381265b96b83803a93e0c2014dd6b0574e57f") - version("1.42.0", commit="773a91e884d2ada16fe9cf57d5ed53c0155e3fa2") - version("1.38.0", commit="c93c223bd531bff090531a109b51f8dcd710d0cb") - version("1.32.0", commit="0da742e500892b682feeb39256906282ad20c558") - version("1.30.0", commit="e6fb9fa2e7c703974e6ca10c0e9681b097b05978") - version("1.28.0", commit="435d66727f1187020d034a1beaf4cd8bd4f76981") - version("1.26.0", commit="be7403acc06670c05ead1adaf60533b0fe3a65ea") - version("1.24.0", commit="651014b8102807aea4f1274e34e083e70b5e7ee7") + with default_args(get_full_repo=True): + version("1.48.0", commit="d3bf8b82d7cabd2ef77253bb9a741dcde3ca3a41") + version("1.46.0", commit="8463958692c73fd655a6dfec39ea99c915513719") + version("1.44.0", commit="252381265b96b83803a93e0c2014dd6b0574e57f") + version("1.42.0", commit="773a91e884d2ada16fe9cf57d5ed53c0155e3fa2") + version("1.38.0", commit="c93c223bd531bff090531a109b51f8dcd710d0cb") + version("1.32.0", commit="0da742e500892b682feeb39256906282ad20c558") + version("1.30.0", commit="e6fb9fa2e7c703974e6ca10c0e9681b097b05978") + version("1.28.0", commit="435d66727f1187020d034a1beaf4cd8bd4f76981") + version("1.26.0", commit="be7403acc06670c05ead1adaf60533b0fe3a65ea") + version("1.24.0", commit="651014b8102807aea4f1274e34e083e70b5e7ee7") depends_on("r-biocgenerics", type=("build", "run"), when="@1.38.0:") depends_on("r-biobase", type=("build", "run"), when="@1.38.0:") diff --git a/repos/spack_repo/builtin/packages/r_a4reporting/package.py b/repos/spack_repo/builtin/packages/r_a4reporting/package.py index b16c16d19ee..2dbd1619c40 100644 --- a/repos/spack_repo/builtin/packages/r_a4reporting/package.py +++ b/repos/spack_repo/builtin/packages/r_a4reporting/package.py @@ -15,16 +15,17 @@ class RA4reporting(RPackage): bioc = "a4Reporting" - version("1.48.0", commit="de8c4b76f6b7ef502d77d55289df0d64fe70447c") - version("1.46.0", commit="00b82d25bef4d518ae92f615d3a6f7931c0618dc") - version("1.44.0", commit="bfe83507daf53e2e327474ea3012f0dc920efac1") - version("1.42.0", commit="b0d715b9cdac80bc412f0a9a6b33941c4a7582bb") - version("1.38.0", commit="cd3cf244e7a299b2485684ed15519cbbda1c590f") - version("1.32.0", commit="8d781899c625892080eb50f322694dd640d5f792") - version("1.30.0", commit="ae9b9ade45cfac2636d0445a7e0a029dfe3b9390") - version("1.28.0", commit="0fe72f48374353c39479a45e5516d0709f8c9ef7") - version("1.26.0", commit="cce201502e2d3b28fd2823b66d9f81b034dc7eaa") - version("1.24.0", commit="bf22c4d50daf40fc9eaf8c476385bf4a24a5b5ce") + with default_args(get_full_repo=True): + version("1.48.0", commit="de8c4b76f6b7ef502d77d55289df0d64fe70447c") + version("1.46.0", commit="00b82d25bef4d518ae92f615d3a6f7931c0618dc") + version("1.44.0", commit="bfe83507daf53e2e327474ea3012f0dc920efac1") + version("1.42.0", commit="b0d715b9cdac80bc412f0a9a6b33941c4a7582bb") + version("1.38.0", commit="cd3cf244e7a299b2485684ed15519cbbda1c590f") + version("1.32.0", commit="8d781899c625892080eb50f322694dd640d5f792") + version("1.30.0", commit="ae9b9ade45cfac2636d0445a7e0a029dfe3b9390") + version("1.28.0", commit="0fe72f48374353c39479a45e5516d0709f8c9ef7") + version("1.26.0", commit="cce201502e2d3b28fd2823b66d9f81b034dc7eaa") + version("1.24.0", commit="bf22c4d50daf40fc9eaf8c476385bf4a24a5b5ce") depends_on("r-xtable", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_abadata/package.py b/repos/spack_repo/builtin/packages/r_abadata/package.py index a6f01c5d854..f1046532a9a 100644 --- a/repos/spack_repo/builtin/packages/r_abadata/package.py +++ b/repos/spack_repo/builtin/packages/r_abadata/package.py @@ -21,12 +21,13 @@ class RAbadata(RPackage): bioc = "ABAData" - version("1.24.0", commit="c4c42701f995ab8d5ede7f36ff06650493c82e36") - version("1.20.0", commit="c08a841ffb54d6555eb80b90a7a8afe7e48201b3") - version("1.14.0", commit="ed7460e7d2948684db69dd4b4f8e135af50198bd") - version("1.12.0", commit="9c2f0fbda75b06a0807bd714528915920899282d") - version("1.10.0", commit="197edb2c3fc733c9e44dde2b9b86ecedcd2c5e1a") - version("1.8.0", commit="181a4af1af349064eb432255970e925ae2564e1a") - version("1.6.0", commit="517c18a3d1809dde0291eeb47dd2545c7cfcdabe") + with default_args(get_full_repo=True): + version("1.24.0", commit="c4c42701f995ab8d5ede7f36ff06650493c82e36") + version("1.20.0", commit="c08a841ffb54d6555eb80b90a7a8afe7e48201b3") + version("1.14.0", commit="ed7460e7d2948684db69dd4b4f8e135af50198bd") + version("1.12.0", commit="9c2f0fbda75b06a0807bd714528915920899282d") + version("1.10.0", commit="197edb2c3fc733c9e44dde2b9b86ecedcd2c5e1a") + version("1.8.0", commit="181a4af1af349064eb432255970e925ae2564e1a") + version("1.6.0", commit="517c18a3d1809dde0291eeb47dd2545c7cfcdabe") depends_on("r@3.2:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_abaenrichment/package.py b/repos/spack_repo/builtin/packages/r_abaenrichment/package.py index a96639ea584..cfe58277727 100644 --- a/repos/spack_repo/builtin/packages/r_abaenrichment/package.py +++ b/repos/spack_repo/builtin/packages/r_abaenrichment/package.py @@ -25,14 +25,15 @@ class RAbaenrichment(RPackage): bioc = "ABAEnrichment" - version("1.26.0", commit="33df9e162aec07e2aae92cc058cbfb33720ba4b4") - version("1.24.0", commit="5d20752263ae8f18ea5f5a6cfbdd5921a0f236d7") - version("1.20.0", commit="608433a0b07e6dd99915dc536a038d960f1be1d5") - version("1.14.1", commit="e1ebfb5de816b924af16675a5ba9ed1a6b527b23") - version("1.12.0", commit="1320e932deafd71d67c7a6f758d15b00d6d7f7d7") - version("1.10.0", commit="15f33ccb694a91d2d2067c937682c4bc952def6c") - version("1.8.0", commit="cb8155ee9a04fb55b2a2e8c23df7c0be15bb2624") - version("1.6.0", commit="d2a0467dcb7aa6e103e3b83dccd6510b0e142ac1") + with default_args(get_full_repo=True): + version("1.26.0", commit="33df9e162aec07e2aae92cc058cbfb33720ba4b4") + version("1.24.0", commit="5d20752263ae8f18ea5f5a6cfbdd5921a0f236d7") + version("1.20.0", commit="608433a0b07e6dd99915dc536a038d960f1be1d5") + version("1.14.1", commit="e1ebfb5de816b924af16675a5ba9ed1a6b527b23") + version("1.12.0", commit="1320e932deafd71d67c7a6f758d15b00d6d7f7d7") + version("1.10.0", commit="15f33ccb694a91d2d2067c937682c4bc952def6c") + version("1.8.0", commit="cb8155ee9a04fb55b2a2e8c23df7c0be15bb2624") + version("1.6.0", commit="d2a0467dcb7aa6e103e3b83dccd6510b0e142ac1") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_abind/package.py b/repos/spack_repo/builtin/packages/r_abind/package.py index fd94634023f..ffef9a8486d 100644 --- a/repos/spack_repo/builtin/packages/r_abind/package.py +++ b/repos/spack_repo/builtin/packages/r_abind/package.py @@ -20,6 +20,7 @@ class RAbind(RPackage): license("LGPL-2.0-or-later") + version("1.4-8", sha256="264a051b523ceae1795a0879e7768949ea55c586ac8db0adf1f5ebeddd2623e1") version("1.4-5", sha256="3a3ace5afbcb86e56889efcebf3bf5c3bb042a282ba7cc4412d450bb246a3f2c") version("1.4-3", sha256="b6c255878c1ab81701ae701f34546e88be115629b984ac4272e311fa3c0ea6ce") diff --git a/repos/spack_repo/builtin/packages/r_absseq/package.py b/repos/spack_repo/builtin/packages/r_absseq/package.py index 034f3bdddd3..e280b567a98 100644 --- a/repos/spack_repo/builtin/packages/r_absseq/package.py +++ b/repos/spack_repo/builtin/packages/r_absseq/package.py @@ -18,16 +18,17 @@ class RAbsseq(RPackage): bioc = "ABSSeq" - version("1.54.0", commit="5e7de8c2a6532073012660f22243c9f7a5568ef6") - version("1.52.0", commit="07038c047775e17d5d29909927d2143efb63e9cb") - version("1.50.0", commit="4f384d04ebaae6ea0b56e5cff9a9dcdcb6c8afb0") - version("1.48.0", commit="b237c967d44d075ca306c35e92df8b66a60ce72d") - version("1.44.0", commit="c202b4a059021ed1228ccee7303c69b0aa4ca1ee") - version("1.38.0", commit="b686d92f0f0efdb835982efe761d059bc24b34ce") - version("1.36.0", commit="bd419072432cba4ef58b4b37b3c69c85d78b1c4a") - version("1.34.1", commit="0c3a2514ef644c6e0de3714bc91959a302c9e006") - version("1.32.3", commit="189d81c3d70f957bf50780f76a6ddcee499b4784") - version("1.22.8", commit="a67ba49bc156a4522092519644f3ec83d58ebd6a") + with default_args(get_full_repo=True): + version("1.54.0", commit="5e7de8c2a6532073012660f22243c9f7a5568ef6") + version("1.52.0", commit="07038c047775e17d5d29909927d2143efb63e9cb") + version("1.50.0", commit="4f384d04ebaae6ea0b56e5cff9a9dcdcb6c8afb0") + version("1.48.0", commit="b237c967d44d075ca306c35e92df8b66a60ce72d") + version("1.44.0", commit="c202b4a059021ed1228ccee7303c69b0aa4ca1ee") + version("1.38.0", commit="b686d92f0f0efdb835982efe761d059bc24b34ce") + version("1.36.0", commit="bd419072432cba4ef58b4b37b3c69c85d78b1c4a") + version("1.34.1", commit="0c3a2514ef644c6e0de3714bc91959a302c9e006") + version("1.32.3", commit="189d81c3d70f957bf50780f76a6ddcee499b4784") + version("1.22.8", commit="a67ba49bc156a4522092519644f3ec83d58ebd6a") depends_on("r@2.10:", type=("build", "run")) depends_on("r-locfit", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_acde/package.py b/repos/spack_repo/builtin/packages/r_acde/package.py index 40d56315687..f2b3cc9950f 100644 --- a/repos/spack_repo/builtin/packages/r_acde/package.py +++ b/repos/spack_repo/builtin/packages/r_acde/package.py @@ -23,16 +23,17 @@ class RAcde(RPackage): bioc = "acde" - version("1.30.0", commit="4c16b9fd6c91a433bf1345252e022571c4983cb5") - version("1.28.0", commit="0edccca7be2475fa2ae3b3c36d0d64924c37b3c0") - version("1.26.0", commit="dfef9a435062e948efd5eda22942a0d500baa992") - version("1.24.0", commit="0c3c4d47af7eaff37420032ea5245743a65124cf") - version("1.20.0", commit="cefb4f2e2b0ef3c5f51944c0ece7a71294020350") - version("1.14.0", commit="6017c7436a46f186b2a3cea9d2b93274f6dd3417") - version("1.12.0", commit="f6ce5926ac915c2d73436f47daf7f9791645dad4") - version("1.10.0", commit="2c303dec45f3c70bf333a6eacae568a08d5ca010") - version("1.8.0", commit="f7fc3e1dce958445f920d3b28b56abde70bfb9de") - version("1.6.0", commit="244c81f435a077bf7895ea565fa6695e8b079f67") + with default_args(get_full_repo=True): + version("1.30.0", commit="4c16b9fd6c91a433bf1345252e022571c4983cb5") + version("1.28.0", commit="0edccca7be2475fa2ae3b3c36d0d64924c37b3c0") + version("1.26.0", commit="dfef9a435062e948efd5eda22942a0d500baa992") + version("1.24.0", commit="0c3c4d47af7eaff37420032ea5245743a65124cf") + version("1.20.0", commit="cefb4f2e2b0ef3c5f51944c0ece7a71294020350") + version("1.14.0", commit="6017c7436a46f186b2a3cea9d2b93274f6dd3417") + version("1.12.0", commit="f6ce5926ac915c2d73436f47daf7f9791645dad4") + version("1.10.0", commit="2c303dec45f3c70bf333a6eacae568a08d5ca010") + version("1.8.0", commit="f7fc3e1dce958445f920d3b28b56abde70bfb9de") + version("1.6.0", commit="244c81f435a077bf7895ea565fa6695e8b079f67") depends_on("r@3.3:", type=("build", "run")) depends_on("r-boot@1.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_acepack/package.py b/repos/spack_repo/builtin/packages/r_acepack/package.py index 02cf05cbe64..208e5808b7e 100644 --- a/repos/spack_repo/builtin/packages/r_acepack/package.py +++ b/repos/spack_repo/builtin/packages/r_acepack/package.py @@ -32,3 +32,6 @@ class RAcepack(RPackage): version("1.4.2", sha256="5bffcd12b783f372bb6c50e35317744ac31597c91b6433442a7b0dce2f66ac91") version("1.4.1", sha256="82750507926f02a696f6cc03693e8d4a5ee7e92500c8c15a16a9c12addcd28b9") + + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_acgh/package.py b/repos/spack_repo/builtin/packages/r_acgh/package.py index 9de9baa452f..fde70a24a87 100644 --- a/repos/spack_repo/builtin/packages/r_acgh/package.py +++ b/repos/spack_repo/builtin/packages/r_acgh/package.py @@ -17,16 +17,17 @@ class RAcgh(RPackage): bioc = "aCGH" - version("1.78.0", commit="75df3a4839af66ce177d1bbc3cec4ac03c21dc8e") - version("1.76.0", commit="c6068522854ed0b1c3feb006619ef25590f70ad6") - version("1.74.0", commit="e7ba380af0da138788eb6c86f5dbe453269c0810") - version("1.72.0", commit="b5d4022ac487125194d3913f1b8c2948db6e2792") - version("1.68.0", commit="91f41a3917ddce43eb05e11c90eb99c467ba2247") - version("1.62.0", commit="3b68b69c3380fa3b66dfb060457628a4a9c22d4f") - version("1.60.0", commit="ae581758aaa1755448f0cfef5adfb30d1e820b21") - version("1.58.0", commit="2decc79a21bff5a14d708cdc654e351515b20d3e") - version("1.56.0", commit="f3531ec99fc181044bdcb6a01c9976029efb6235") - version("1.54.0", commit="be2ed339449f55c8d218e10c435e4ad356683693") + with default_args(get_full_repo=True): + version("1.78.0", commit="75df3a4839af66ce177d1bbc3cec4ac03c21dc8e") + version("1.76.0", commit="c6068522854ed0b1c3feb006619ef25590f70ad6") + version("1.74.0", commit="e7ba380af0da138788eb6c86f5dbe453269c0810") + version("1.72.0", commit="b5d4022ac487125194d3913f1b8c2948db6e2792") + version("1.68.0", commit="91f41a3917ddce43eb05e11c90eb99c467ba2247") + version("1.62.0", commit="3b68b69c3380fa3b66dfb060457628a4a9c22d4f") + version("1.60.0", commit="ae581758aaa1755448f0cfef5adfb30d1e820b21") + version("1.58.0", commit="2decc79a21bff5a14d708cdc654e351515b20d3e") + version("1.56.0", commit="f3531ec99fc181044bdcb6a01c9976029efb6235") + version("1.54.0", commit="be2ed339449f55c8d218e10c435e4ad356683693") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_acme/package.py b/repos/spack_repo/builtin/packages/r_acme/package.py index bbf0c895bf2..9e04bed84e8 100644 --- a/repos/spack_repo/builtin/packages/r_acme/package.py +++ b/repos/spack_repo/builtin/packages/r_acme/package.py @@ -22,16 +22,17 @@ class RAcme(RPackage): bioc = "ACME" - version("2.56.0", commit="083af1249e67db11fd471babe67b146eb9c1700c") - version("2.54.0", commit="8d39d9d6623adf427f5eba308790e1de01213870") - version("2.52.0", commit="14a97c722d0201654af9e583e7e462b458c28a77") - version("2.50.0", commit="d55a19a8c091e8ea5fd35041520107a7f7603e14") - version("2.46.0", commit="68f45c9f7d34c28adf6a0fc4245fdf63881109de") - version("2.40.0", commit="38499e512998d54d874a0bfdc173f4ba5de5f01a") - version("2.38.0", commit="cd03196428e8adf62e84f25c4d4545429e2c908b") - version("2.36.0", commit="39e056435b9775d35e7f7fc5446c2c3cafe15670") - version("2.34.0", commit="1f53d43e420e245423fdf2711d0dcb345f829469") - version("2.32.0", commit="76372255d7714a0c8128a11c028bf70214dac407") + with default_args(get_full_repo=True): + version("2.56.0", commit="083af1249e67db11fd471babe67b146eb9c1700c") + version("2.54.0", commit="8d39d9d6623adf427f5eba308790e1de01213870") + version("2.52.0", commit="14a97c722d0201654af9e583e7e462b458c28a77") + version("2.50.0", commit="d55a19a8c091e8ea5fd35041520107a7f7603e14") + version("2.46.0", commit="68f45c9f7d34c28adf6a0fc4245fdf63881109de") + version("2.40.0", commit="38499e512998d54d874a0bfdc173f4ba5de5f01a") + version("2.38.0", commit="cd03196428e8adf62e84f25c4d4545429e2c908b") + version("2.36.0", commit="39e056435b9775d35e7f7fc5446c2c3cafe15670") + version("2.34.0", commit="1f53d43e420e245423fdf2711d0dcb345f829469") + version("2.32.0", commit="76372255d7714a0c8128a11c028bf70214dac407") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_adephylo/package.py b/repos/spack_repo/builtin/packages/r_adephylo/package.py index d7f8316b5db..d96f22e5589 100644 --- a/repos/spack_repo/builtin/packages/r_adephylo/package.py +++ b/repos/spack_repo/builtin/packages/r_adephylo/package.py @@ -21,6 +21,8 @@ class RAdephylo(RPackage): version("1.1-13", sha256="2aa132fee9d0a14ac09b0a96af40ac332cb4e13c892908803c335aa7319ca76d") version("1.1-11", sha256="154bf2645eac4493b85877933b9445442524ca4891aefe4e80c294c398cff61a") + depends_on("c", type="build") # generated + depends_on("r-ade4@1.7-10:", type=("build", "run")) depends_on("r-phylobase", type=("build", "run")) depends_on("r-ape", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_adespatial/package.py b/repos/spack_repo/builtin/packages/r_adespatial/package.py index 541c986079c..ff75c37ce7a 100644 --- a/repos/spack_repo/builtin/packages/r_adespatial/package.py +++ b/repos/spack_repo/builtin/packages/r_adespatial/package.py @@ -28,6 +28,8 @@ class RAdespatial(RPackage): version("0.3-14", sha256="a2ef7549c1ed7a23651716c633b25eaff468af8ccbf2e9fcd164e485984cbfbf") version("0.3-8", sha256="e3fd3209ce3f0a862a0794187e8c884f1697c87c96e569a2f51f252e00022906") + depends_on("c", type="build") # generated + depends_on("r-ade4@1.7-13:", type=("build", "run")) depends_on("r-adegraphics", type=("build", "run")) depends_on("r-adephylo", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_adsplit/package.py b/repos/spack_repo/builtin/packages/r_adsplit/package.py index 56db2377155..2c29b1984e5 100644 --- a/repos/spack_repo/builtin/packages/r_adsplit/package.py +++ b/repos/spack_repo/builtin/packages/r_adsplit/package.py @@ -17,16 +17,11 @@ class RAdsplit(RPackage): bioc = "adSplit" - version("1.70.0", commit="a08a994215a459b856eae051c778e2b9144f52d9") - version("1.68.0", commit="705977b5e1cb7dd69793cc673fa215baaba42af5") - version("1.66.0", commit="64580a6f7a9bc6b16334267c90df48fbb839cc16") - version("1.64.0", commit="32f150eb51c66b867301dceeb527de5b97f9f490") - version("1.60.0", commit="de5abccfe652cbc5b5f49fb6ed77cdd15cc760cd") - version("1.54.0", commit="ce8fb61f4a3d0942294da2baa28be1472acb0652") - version("1.52.0", commit="3bd105dbd76c52798b7d52f60c17de62ef13da19") - version("1.50.0", commit="a02e2c994e78ececd5a248575109c5ed36c969db") - version("1.48.0", commit="57dfcd93b9232cf53f05c34179ecb759bb7aff46") - version("1.46.0", commit="7e81a83f34d371447f491b3a146bf6851e260c7c") + with default_args(get_full_repo=True): + version("1.70.0", commit="a08a994215a459b856eae051c778e2b9144f52d9") + version("1.68.0", commit="705977b5e1cb7dd69793cc673fa215baaba42af5") + version("1.66.0", commit="64580a6f7a9bc6b16334267c90df48fbb839cc16") + version("1.64.0", commit="32f150eb51c66b867301dceeb527de5b97f9f490") depends_on("cxx", type="build") # generated @@ -37,5 +32,3 @@ class RAdsplit(RPackage): depends_on("r-go-db@1.8.1:", type=("build", "run")) depends_on("r-keggrest@1.30.1:", type=("build", "run"), when="@1.62.0:") depends_on("r-multtest@1.6.0:", type=("build", "run")) - - depends_on("r-kegg-db@1.8.1:", type=("build", "run"), when="@:1.60.0") diff --git a/repos/spack_repo/builtin/packages/r_afex/package.py b/repos/spack_repo/builtin/packages/r_afex/package.py index b173215eb40..064c6c001c6 100644 --- a/repos/spack_repo/builtin/packages/r_afex/package.py +++ b/repos/spack_repo/builtin/packages/r_afex/package.py @@ -27,6 +27,8 @@ class RAfex(RPackage): license("GPL-2.0-or-later") + version("1.5-1", sha256="68c5bb370579e288c4e11603a84aa637d2c44995faee10ebc2b42ebd86c03dbb") + version("1.5-0", sha256="b78aa9acba8e7f47f9cfb69a9739f07635ba042a10364e92922f317fd0b777c6") version("1.3-1", sha256="4a64fb7e86e3d081e576c0d744d1613f391656082962c5799cf3fc5e2ca631a8") version("1.3-0", sha256="f8e276a1070288c54b83db1d1214fd88fe8d8b8698cf0c2743ef2a45f61e1933") version("1.2-1", sha256="e3a8cecd46db9521039275a5bf27937afb3ec4021644cc4fac94096cc585aacb") @@ -41,3 +43,5 @@ class RAfex(RPackage): depends_on("r-lmertest@3.0-0:", type=("build", "run")) depends_on("r-car", type=("build", "run")) depends_on("r-reshape2", type=("build", "run")) + depends_on("r-reformulas", type=("build", "run"), when="@1.5:") + depends_on("r-rlang", type=("build", "run"), when="@1.5:") diff --git a/repos/spack_repo/builtin/packages/r_affxparser/package.py b/repos/spack_repo/builtin/packages/r_affxparser/package.py index bad66ccbe3e..e352d62bc01 100644 --- a/repos/spack_repo/builtin/packages/r_affxparser/package.py +++ b/repos/spack_repo/builtin/packages/r_affxparser/package.py @@ -21,16 +21,17 @@ class RAffxparser(RPackage): bioc = "affxparser" - version("1.72.0", commit="6e976af32f77835143f6b4e0c01c6016dc1b331c") - version("1.70.0", commit="28f94cd3477e9500942be89cbcb5cad1bbb369fe") - version("1.68.1", commit="821a01a2df18115a3b7864b3f45418255b7123eb") - version("1.66.0", commit="2ea72d4c924ac14bdd807b23563c8501c226ce3a") - version("1.62.0", commit="b3e988e5c136c3f1a064e1da13730b403c8704c0") - version("1.56.0", commit="20d27701ad2bdfacf34d857bb8ecb4f505b4d056") - version("1.54.0", commit="dce83d23599a964086a84ced4afd13fc43e7cd4f") - version("1.52.0", commit="8e0c4b89ee1cb4ff95f58a5dd947249dc718bc58") - version("1.50.0", commit="01ef641727eadc2cc17b5dbb0b1432364436e3d5") - version("1.48.0", commit="2461ea88f310b59c4a9a997a4b3dadedbd65a4aa") + with default_args(get_full_repo=True): + version("1.72.0", commit="6e976af32f77835143f6b4e0c01c6016dc1b331c") + version("1.70.0", commit="28f94cd3477e9500942be89cbcb5cad1bbb369fe") + version("1.68.1", commit="821a01a2df18115a3b7864b3f45418255b7123eb") + version("1.66.0", commit="2ea72d4c924ac14bdd807b23563c8501c226ce3a") + version("1.62.0", commit="b3e988e5c136c3f1a064e1da13730b403c8704c0") + version("1.56.0", commit="20d27701ad2bdfacf34d857bb8ecb4f505b4d056") + version("1.54.0", commit="dce83d23599a964086a84ced4afd13fc43e7cd4f") + version("1.52.0", commit="8e0c4b89ee1cb4ff95f58a5dd947249dc718bc58") + version("1.50.0", commit="01ef641727eadc2cc17b5dbb0b1432364436e3d5") + version("1.48.0", commit="2461ea88f310b59c4a9a997a4b3dadedbd65a4aa") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_affy/package.py b/repos/spack_repo/builtin/packages/r_affy/package.py index 6208572562e..7f0c3d929f1 100644 --- a/repos/spack_repo/builtin/packages/r_affy/package.py +++ b/repos/spack_repo/builtin/packages/r_affy/package.py @@ -16,25 +16,17 @@ class RAffy(RPackage): bioc = "affy" - version("1.78.0", commit="cc7eac358b6e10ee86a7a93d2e436758f6fbd9b5") - version("1.76.0", commit="3bb309388d5d6402c356d4a5270ee83c5b88942f") - version("1.74.0", commit="2266c4a46eda7e5b64f7f3e17e8b61e7b85579ff") - version("1.72.0", commit="3750b4eb8e5224b19100f6c881b67e568d8968a2") - version("1.68.0", commit="1664399610c9aa519399445a2ef8bb9ea2233eac") - version("1.62.0", commit="097ab4aa98a1700c5fae65d07bed44a477714605") - version("1.60.0", commit="fcae363e58b322ad53584d9e15e80fa2f9d17206") - version("1.58.0", commit="4698231f45f225228f56c0708cd477ad450b4ee6") - version("1.56.0", commit="d36a7b8f05b1ef60162d94e75037d45c48f88871") - version("1.54.0", commit="a815f02906fcf491b28ed0a356d6fce95a6bd20e") + with default_args(get_full_repo=True): + version("1.78.0", commit="cc7eac358b6e10ee86a7a93d2e436758f6fbd9b5") + version("1.76.0", commit="3bb309388d5d6402c356d4a5270ee83c5b88942f") + version("1.74.0", commit="2266c4a46eda7e5b64f7f3e17e8b61e7b85579ff") + version("1.72.0", commit="3750b4eb8e5224b19100f6c881b67e568d8968a2") depends_on("c", type="build") # generated - depends_on("r@2.8.0:4.0", type=("build", "run"), when="@:1.68.0") depends_on("r-biocgenerics@0.1.12:", type=("build", "run")) depends_on("r-biobase@2.5.5:", type=("build", "run")) depends_on("r-affyio@1.13.3:", type=("build", "run")) - depends_on("r-biocmanager", type=("build", "run"), when="@1.60.0:") + depends_on("r-biocmanager", type=("build", "run")) depends_on("r-preprocesscore", type=("build", "run")) depends_on("r-zlibbioc", type=("build", "run")) - - depends_on("r-biocinstaller", type=("build", "run"), when="@1.54.0:1.58.0") diff --git a/repos/spack_repo/builtin/packages/r_affycomp/package.py b/repos/spack_repo/builtin/packages/r_affycomp/package.py index d31d3fd706d..17bc38b1c5d 100644 --- a/repos/spack_repo/builtin/packages/r_affycomp/package.py +++ b/repos/spack_repo/builtin/packages/r_affycomp/package.py @@ -15,16 +15,17 @@ class RAffycomp(RPackage): bioc = "affycomp" - version("1.76.0", commit="8bfc628de26a739c5e0cb47aa22bfda7c8d0a922") - version("1.74.0", commit="1160d6395f23085456938ba2bd38fb45597fc92f") - version("1.72.0", commit="c52baea98b80abd4a99380ac9d4b68ef91869d40") - version("1.70.0", commit="487f6775975092475581a6c02ddb27590559cf07") - version("1.66.0", commit="388d01af8b1e6ab11051407f77d0206512df8424") - version("1.60.0", commit="5dbe61fa04941529a0fc70b728021c8e00c4ba0c") - version("1.58.0", commit="99607b2c4aad37e3e63eccbd12d0d533762f28ef") - version("1.56.0", commit="b0994da338be19396e647c680059fd35341b50a2") - version("1.54.0", commit="65281c1ca37147c2a54ad3722a8d5ff0ffa5acc5") - version("1.52.0", commit="1b97a1cb21ec93bf1e5c88d5d55b988059612790") + with default_args(get_full_repo=True): + version("1.76.0", commit="8bfc628de26a739c5e0cb47aa22bfda7c8d0a922") + version("1.74.0", commit="1160d6395f23085456938ba2bd38fb45597fc92f") + version("1.72.0", commit="c52baea98b80abd4a99380ac9d4b68ef91869d40") + version("1.70.0", commit="487f6775975092475581a6c02ddb27590559cf07") + version("1.66.0", commit="388d01af8b1e6ab11051407f77d0206512df8424") + version("1.60.0", commit="5dbe61fa04941529a0fc70b728021c8e00c4ba0c") + version("1.58.0", commit="99607b2c4aad37e3e63eccbd12d0d533762f28ef") + version("1.56.0", commit="b0994da338be19396e647c680059fd35341b50a2") + version("1.54.0", commit="65281c1ca37147c2a54ad3722a8d5ff0ffa5acc5") + version("1.52.0", commit="1b97a1cb21ec93bf1e5c88d5d55b988059612790") depends_on("r@2.13.0:", type=("build", "run")) depends_on("r-biobase@2.3.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_affycompatible/package.py b/repos/spack_repo/builtin/packages/r_affycompatible/package.py index edaf235e79c..669fffd0e52 100644 --- a/repos/spack_repo/builtin/packages/r_affycompatible/package.py +++ b/repos/spack_repo/builtin/packages/r_affycompatible/package.py @@ -19,15 +19,16 @@ class RAffycompatible(RPackage): bioc = "AffyCompatible" - version("1.58.0", commit="6508e72736371d353ec5f02d30caf8ffe39b342a") - version("1.56.0", commit="37ea4bb885c791fb989f40092f3d0d2c57d35641") - version("1.54.0", commit="fde7d86ccdb03c13c4838c18ac25477ffe6e0fe5") - version("1.50.0", commit="3b12d12bd6d1a9f0d45e012817231d137d47089e") - version("1.44.0", commit="98a27fbe880551fd32a5febb6c7bde0807eac476") - version("1.42.0", commit="699303cc20f292591e2faa12e211c588efb9eaa8") - version("1.40.0", commit="44838bdb5e8c26afbd898c49ed327ddd1a1d0301") - version("1.38.0", commit="d47ee3a3a3d3bce11121e80fe02ee216b9199b12") - version("1.36.0", commit="dbbfd43a54ae1de6173336683a9461084ebf38c3") + with default_args(get_full_repo=True): + version("1.58.0", commit="6508e72736371d353ec5f02d30caf8ffe39b342a") + version("1.56.0", commit="37ea4bb885c791fb989f40092f3d0d2c57d35641") + version("1.54.0", commit="fde7d86ccdb03c13c4838c18ac25477ffe6e0fe5") + version("1.50.0", commit="3b12d12bd6d1a9f0d45e012817231d137d47089e") + version("1.44.0", commit="98a27fbe880551fd32a5febb6c7bde0807eac476") + version("1.42.0", commit="699303cc20f292591e2faa12e211c588efb9eaa8") + version("1.40.0", commit="44838bdb5e8c26afbd898c49ed327ddd1a1d0301") + version("1.38.0", commit="d47ee3a3a3d3bce11121e80fe02ee216b9199b12") + version("1.36.0", commit="dbbfd43a54ae1de6173336683a9461084ebf38c3") depends_on("r@2.7.0:", type=("build", "run")) depends_on("r-xml@2.8-1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_affycontam/package.py b/repos/spack_repo/builtin/packages/r_affycontam/package.py index 8f1cfc65fd0..d350d74b11e 100644 --- a/repos/spack_repo/builtin/packages/r_affycontam/package.py +++ b/repos/spack_repo/builtin/packages/r_affycontam/package.py @@ -15,16 +15,17 @@ class RAffycontam(RPackage): bioc = "affyContam" - version("1.58.0", commit="5e91d79d7653a4f484b62eae7fd7e908de8cb9b6") - version("1.56.0", commit="e2b8a4fba1648255eadce954a848f2dd8e22bcb3") - version("1.54.0", commit="c5208b48b8881983ff53a4713244327e8ad13b78") - version("1.52.0", commit="47c1d86da330f157d3ece0e26b0657d66a5ca0c9") - version("1.48.0", commit="88387a2ad4be4234d36710c65f2ca3a5b06b67da") - version("1.42.0", commit="8a5e94a5ae8c2ecfafa6177b84a6e8ab07e14fbe") - version("1.40.0", commit="dfd5fd6ae04941dddbda03f656540b71b2fbc614") - version("1.38.0", commit="84651e8eade61619afefc83bb290047da101a5bc") - version("1.36.0", commit="aeb684a7d3f6fa9243f3946d214de53649fa4fd6") - version("1.34.0", commit="03529f26d059c19e069cdda358dbf7789b6d4c40") + with default_args(get_full_repo=True): + version("1.58.0", commit="5e91d79d7653a4f484b62eae7fd7e908de8cb9b6") + version("1.56.0", commit="e2b8a4fba1648255eadce954a848f2dd8e22bcb3") + version("1.54.0", commit="c5208b48b8881983ff53a4713244327e8ad13b78") + version("1.52.0", commit="47c1d86da330f157d3ece0e26b0657d66a5ca0c9") + version("1.48.0", commit="88387a2ad4be4234d36710c65f2ca3a5b06b67da") + version("1.42.0", commit="8a5e94a5ae8c2ecfafa6177b84a6e8ab07e14fbe") + version("1.40.0", commit="dfd5fd6ae04941dddbda03f656540b71b2fbc614") + version("1.38.0", commit="84651e8eade61619afefc83bb290047da101a5bc") + version("1.36.0", commit="aeb684a7d3f6fa9243f3946d214de53649fa4fd6") + version("1.34.0", commit="03529f26d059c19e069cdda358dbf7789b6d4c40") depends_on("r@2.7.0:", type=("build", "run")) depends_on("r-biobase", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_affycoretools/package.py b/repos/spack_repo/builtin/packages/r_affycoretools/package.py index d8825b9e5b2..c5cf0706aa5 100644 --- a/repos/spack_repo/builtin/packages/r_affycoretools/package.py +++ b/repos/spack_repo/builtin/packages/r_affycoretools/package.py @@ -16,16 +16,17 @@ class RAffycoretools(RPackage): bioc = "affycoretools" - version("1.72.0", commit="229ae09efc1a66e64ea395019c32d16387bf81ac") - version("1.70.0", commit="f09a788aa83e1e052a7c5f148a451a99fe9c9c96") - version("1.68.1", commit="69546b1fe5edd71eca130d53d33f0fb0fcf62c97") - version("1.66.0", commit="6bf769d70e196634097f465ed2fa85cce5312a6d") - version("1.62.0", commit="c9779e4da648fd174c9bd575c6020be1c03047c4") - version("1.56.0", commit="71eab04056a8d696470420a600b14900186be898") - version("1.54.0", commit="1e1f9680bc3e1fa443f4a81ce5ab81349959b845") - version("1.52.2", commit="2f98c74fad238b94c1e453b972524ab7b573b0de") - version("1.50.6", commit="4be92bcb55d7bace2a110865b7530dcfac14e76e") - version("1.48.0", commit="e0d52e34eead1ac45d3e60c59efd940e4889eb99") + with default_args(get_full_repo=True): + version("1.72.0", commit="229ae09efc1a66e64ea395019c32d16387bf81ac") + version("1.70.0", commit="f09a788aa83e1e052a7c5f148a451a99fe9c9c96") + version("1.68.1", commit="69546b1fe5edd71eca130d53d33f0fb0fcf62c97") + version("1.66.0", commit="6bf769d70e196634097f465ed2fa85cce5312a6d") + version("1.62.0", commit="c9779e4da648fd174c9bd575c6020be1c03047c4") + version("1.56.0", commit="71eab04056a8d696470420a600b14900186be898") + version("1.54.0", commit="1e1f9680bc3e1fa443f4a81ce5ab81349959b845") + version("1.52.2", commit="2f98c74fad238b94c1e453b972524ab7b573b0de") + version("1.50.6", commit="4be92bcb55d7bace2a110865b7530dcfac14e76e") + version("1.48.0", commit="e0d52e34eead1ac45d3e60c59efd940e4889eb99") depends_on("r+X", type=("build", "run")) depends_on("r-biobase", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_affydata/package.py b/repos/spack_repo/builtin/packages/r_affydata/package.py index 63ea11c33d6..6f79b69fa3c 100644 --- a/repos/spack_repo/builtin/packages/r_affydata/package.py +++ b/repos/spack_repo/builtin/packages/r_affydata/package.py @@ -16,16 +16,17 @@ class RAffydata(RPackage): bioc = "affydata" - version("1.48.0", commit="037b86c86c114761ff1bcca64ab4e0bcd68063d3") - version("1.46.0", commit="870745b886df9f1fbbd6130d266c0ef96f3afa66") - version("1.44.0", commit="f18304a356cee8cd7297bab362b13c40e50439df") - version("1.42.0", commit="4b54c1206bedd27ff9be32affc999a279f4e96f0") - version("1.38.0", commit="b5e843b2514789d0d87bea44d762c89a95314ee7") - version("1.32.0", commit="c7cef93f6edd23024f4b1985b90e89058874c2bd") - version("1.30.0", commit="d5408d84b37ebae73b40a448dd52baf7b4a13bea") - version("1.28.0", commit="a106a5514c352bf0bbc624ded58a93886d4ce96f") - version("1.26.0", commit="eb0a44a39990b361f9fb1094837ffafb320f39a9") - version("1.24.0", commit="663991606507572f083232e2b393d901270291d4") + with default_args(get_full_repo=True): + version("1.48.0", commit="037b86c86c114761ff1bcca64ab4e0bcd68063d3") + version("1.46.0", commit="870745b886df9f1fbbd6130d266c0ef96f3afa66") + version("1.44.0", commit="f18304a356cee8cd7297bab362b13c40e50439df") + version("1.42.0", commit="4b54c1206bedd27ff9be32affc999a279f4e96f0") + version("1.38.0", commit="b5e843b2514789d0d87bea44d762c89a95314ee7") + version("1.32.0", commit="c7cef93f6edd23024f4b1985b90e89058874c2bd") + version("1.30.0", commit="d5408d84b37ebae73b40a448dd52baf7b4a13bea") + version("1.28.0", commit="a106a5514c352bf0bbc624ded58a93886d4ce96f") + version("1.26.0", commit="eb0a44a39990b361f9fb1094837ffafb320f39a9") + version("1.24.0", commit="663991606507572f083232e2b393d901270291d4") depends_on("r@2.4.0:", type=("build", "run")) depends_on("r-affy@1.23.4:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_affyexpress/package.py b/repos/spack_repo/builtin/packages/r_affyexpress/package.py index d721ba9ee58..f07c4f0a3b6 100644 --- a/repos/spack_repo/builtin/packages/r_affyexpress/package.py +++ b/repos/spack_repo/builtin/packages/r_affyexpress/package.py @@ -16,12 +16,13 @@ class RAffyexpress(RPackage): bioc = "AffyExpress" - version("1.56.0", commit="e07085833de2bbf81537410cad526d39f8a82478") - version("1.50.0", commit="8b98703b63396df9692afb0e15b594658125cc96") - version("1.48.0", commit="dbaed516b7529ef4f7588aafaf3c5f1d53a9bb92") - version("1.46.0", commit="2add4a4436e21aa20f1ededbfd5f1365a3d28c85") - version("1.44.0", commit="7517bc8b363ceb107d5dca66dd74f94edefde52a") - version("1.42.0", commit="f5c5cf6173f4419e25f4aeff5e6b705a40abc371") + with default_args(get_full_repo=True): + version("1.56.0", commit="e07085833de2bbf81537410cad526d39f8a82478") + version("1.50.0", commit="8b98703b63396df9692afb0e15b594658125cc96") + version("1.48.0", commit="dbaed516b7529ef4f7588aafaf3c5f1d53a9bb92") + version("1.46.0", commit="2add4a4436e21aa20f1ededbfd5f1365a3d28c85") + version("1.44.0", commit="7517bc8b363ceb107d5dca66dd74f94edefde52a") + version("1.42.0", commit="f5c5cf6173f4419e25f4aeff5e6b705a40abc371") depends_on("r@2.10:", type=("build", "run")) depends_on("r-affy@1.23.4:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_affyilm/package.py b/repos/spack_repo/builtin/packages/r_affyilm/package.py index 512c5cb142a..8755ffbdf9e 100644 --- a/repos/spack_repo/builtin/packages/r_affyilm/package.py +++ b/repos/spack_repo/builtin/packages/r_affyilm/package.py @@ -17,16 +17,17 @@ class RAffyilm(RPackage): bioc = "affyILM" - version("1.52.0", commit="08ed8c60921ba1b9e04fa90e156eef1a3c899d15") - version("1.50.0", commit="185cd8e4712a3378ce7a156d4940224bbb2c4122") - version("1.48.0", commit="4603a4c4d6c2330a8a56a7bb657dc56c51a9393a") - version("1.46.0", commit="67ffbfa6c881ed83d15604bf4463fe5dba81036b") - version("1.42.0", commit="b97b29786b866de38802ebbb995169be91e90942") - version("1.36.0", commit="619ced931ba72860ce4cb41c841bbca1636a1132") - version("1.34.0", commit="2c02ed2d8fa9a9585d41cf4db0b75d0a07ad8564") - version("1.32.0", commit="860f2ddada80435d309ba334eff3fab503817755") - version("1.30.0", commit="c07d91ae52a2a48f0a5f212c3ecf3243741bee13") - version("1.28.0", commit="307bee3ebc599e0ea4a1d6fa8d5511ccf8bef7de") + with default_args(get_full_repo=True): + version("1.52.0", commit="08ed8c60921ba1b9e04fa90e156eef1a3c899d15") + version("1.50.0", commit="185cd8e4712a3378ce7a156d4940224bbb2c4122") + version("1.48.0", commit="4603a4c4d6c2330a8a56a7bb657dc56c51a9393a") + version("1.46.0", commit="67ffbfa6c881ed83d15604bf4463fe5dba81036b") + version("1.42.0", commit="b97b29786b866de38802ebbb995169be91e90942") + version("1.36.0", commit="619ced931ba72860ce4cb41c841bbca1636a1132") + version("1.34.0", commit="2c02ed2d8fa9a9585d41cf4db0b75d0a07ad8564") + version("1.32.0", commit="860f2ddada80435d309ba334eff3fab503817755") + version("1.30.0", commit="c07d91ae52a2a48f0a5f212c3ecf3243741bee13") + version("1.28.0", commit="307bee3ebc599e0ea4a1d6fa8d5511ccf8bef7de") depends_on("r@2.10.0:", type=("build", "run")) depends_on("r-gcrma", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_affyio/package.py b/repos/spack_repo/builtin/packages/r_affyio/package.py index 821107d1276..b3d428d8ffc 100644 --- a/repos/spack_repo/builtin/packages/r_affyio/package.py +++ b/repos/spack_repo/builtin/packages/r_affyio/package.py @@ -16,16 +16,17 @@ class RAffyio(RPackage): bioc = "affyio" - version("1.70.0", commit="95560567e27088863c64e868a8e5069fc725b8d7") - version("1.68.0", commit="33080c5eeb14c0ca40f0d231706af4e0c2c1ef8b") - version("1.66.0", commit="3a0b90704fc46cddd99a72b985a6bdb348f69b50") - version("1.64.0", commit="aa7ce48f3f4110431f6f488d45961fde4019ffb0") - version("1.60.0", commit="ee20528b32700e99768da48143d6d45c9a7bbe91") - version("1.54.0", commit="c0e306e1805a556a1074d1af1acdd18e0a04477f") - version("1.52.0", commit="9da725ac1098a22a370fa96eb03e51e4f6d5d963") - version("1.50.0", commit="911ea4f8e4cdf7b649b87ef7ed1a5f5b111ef38a") - version("1.48.0", commit="01727a4492c3a0d50453fc91892e04bf5f7fcadb") - version("1.46.0", commit="977597f2772e08273d86579486f452170566c880") + with default_args(get_full_repo=True): + version("1.70.0", commit="95560567e27088863c64e868a8e5069fc725b8d7") + version("1.68.0", commit="33080c5eeb14c0ca40f0d231706af4e0c2c1ef8b") + version("1.66.0", commit="3a0b90704fc46cddd99a72b985a6bdb348f69b50") + version("1.64.0", commit="aa7ce48f3f4110431f6f488d45961fde4019ffb0") + version("1.60.0", commit="ee20528b32700e99768da48143d6d45c9a7bbe91") + version("1.54.0", commit="c0e306e1805a556a1074d1af1acdd18e0a04477f") + version("1.52.0", commit="9da725ac1098a22a370fa96eb03e51e4f6d5d963") + version("1.50.0", commit="911ea4f8e4cdf7b649b87ef7ed1a5f5b111ef38a") + version("1.48.0", commit="01727a4492c3a0d50453fc91892e04bf5f7fcadb") + version("1.46.0", commit="977597f2772e08273d86579486f452170566c880") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_affypdnn/package.py b/repos/spack_repo/builtin/packages/r_affypdnn/package.py index a14c0f7f627..ce7cf78e533 100644 --- a/repos/spack_repo/builtin/packages/r_affypdnn/package.py +++ b/repos/spack_repo/builtin/packages/r_affypdnn/package.py @@ -15,11 +15,12 @@ class RAffypdnn(RPackage): bioc = "affypdnn" - version("1.58.0", commit="83d8b6b0d9606845bd77dbf7164dd5b160f32ccf") - version("1.56.0", commit="5fd9c5265fb895a1f646cf72e8d5169669d979f2") - version("1.54.0", commit="ea971b1b9cc443695a6614bef92e8e116ee87d55") - version("1.52.0", commit="17d74c593ce4f0dfd43f13a5016e482c1399d21e") - version("1.50.0", commit="97ff68e9f51f31333c0330435ea23b212b3ed18a") + with default_args(get_full_repo=True): + version("1.58.0", commit="83d8b6b0d9606845bd77dbf7164dd5b160f32ccf") + version("1.56.0", commit="5fd9c5265fb895a1f646cf72e8d5169669d979f2") + version("1.54.0", commit="ea971b1b9cc443695a6614bef92e8e116ee87d55") + version("1.52.0", commit="17d74c593ce4f0dfd43f13a5016e482c1399d21e") + version("1.50.0", commit="97ff68e9f51f31333c0330435ea23b212b3ed18a") depends_on("r@2.13.0:", type=("build", "run")) depends_on("r-affy@1.5:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_affyplm/package.py b/repos/spack_repo/builtin/packages/r_affyplm/package.py index 7529be16f9f..12214927538 100644 --- a/repos/spack_repo/builtin/packages/r_affyplm/package.py +++ b/repos/spack_repo/builtin/packages/r_affyplm/package.py @@ -18,16 +18,17 @@ class RAffyplm(RPackage): bioc = "affyPLM" - version("1.76.0", commit="45557df5a32f56aa5240439737c5718738fb4c27") - version("1.74.0", commit="5f76ef92e69deabc19c5395eaec4adb85c66b63d") - version("1.72.0", commit="394c0a8e213f188d0b1d01e20516df8bf1bc5c09") - version("1.70.0", commit="64abfec92b347aa340b54a8c7b2fbd524fe9c312") - version("1.66.0", commit="f0780c3d0e9dccaff83861b98beb5c1d324c4399") - version("1.60.0", commit="b11e377d6af3fd0f28aba8195ebf171003da1a9d") - version("1.58.0", commit="32764c7691d9a72a301d50042a8844112887a1c8") - version("1.56.0", commit="13dfc558281af9a177d4d592c34cf7ace629af0e") - version("1.54.0", commit="09cf5f6e01dd2d0aae3e9ddab27301f04bfd645c") - version("1.52.1", commit="e8613a6018c4ee58045df6bf19128844f50a1f43") + with default_args(get_full_repo=True): + version("1.76.0", commit="45557df5a32f56aa5240439737c5718738fb4c27") + version("1.74.0", commit="5f76ef92e69deabc19c5395eaec4adb85c66b63d") + version("1.72.0", commit="394c0a8e213f188d0b1d01e20516df8bf1bc5c09") + version("1.70.0", commit="64abfec92b347aa340b54a8c7b2fbd524fe9c312") + version("1.66.0", commit="f0780c3d0e9dccaff83861b98beb5c1d324c4399") + version("1.60.0", commit="b11e377d6af3fd0f28aba8195ebf171003da1a9d") + version("1.58.0", commit="32764c7691d9a72a301d50042a8844112887a1c8") + version("1.56.0", commit="13dfc558281af9a177d4d592c34cf7ace629af0e") + version("1.54.0", commit="09cf5f6e01dd2d0aae3e9ddab27301f04bfd645c") + version("1.52.1", commit="e8613a6018c4ee58045df6bf19128844f50a1f43") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_affyqcreport/package.py b/repos/spack_repo/builtin/packages/r_affyqcreport/package.py index e2ab3e7f7aa..0dc3040f626 100644 --- a/repos/spack_repo/builtin/packages/r_affyqcreport/package.py +++ b/repos/spack_repo/builtin/packages/r_affyqcreport/package.py @@ -16,12 +16,13 @@ class RAffyqcreport(RPackage): bioc = "affyQCReport" - version("1.68.0", commit="34b42a16f87a90a595146f4a1802ed04f6bfccca") - version("1.62.0", commit="92d4124b688b90a6a9b8a21ab9d13d92b368cee4") - version("1.60.0", commit="d0c15b1c56fc1caf6f114877ea6c1b8483a0dcfa") - version("1.58.0", commit="14be93a1e7a6d1a64c38ed2f53e0c52a389b2a1b") - version("1.56.0", commit="5c824045c7364155eafc2dd5bb342374aa1ca072") - version("1.54.0", commit="5572e9981dc874b78b4adebf58080cac3fbb69e1") + with default_args(get_full_repo=True): + version("1.68.0", commit="34b42a16f87a90a595146f4a1802ed04f6bfccca") + version("1.62.0", commit="92d4124b688b90a6a9b8a21ab9d13d92b368cee4") + version("1.60.0", commit="d0c15b1c56fc1caf6f114877ea6c1b8483a0dcfa") + version("1.58.0", commit="14be93a1e7a6d1a64c38ed2f53e0c52a389b2a1b") + version("1.56.0", commit="5c824045c7364155eafc2dd5bb342374aa1ca072") + version("1.54.0", commit="5572e9981dc874b78b4adebf58080cac3fbb69e1") depends_on("r-biobase@1.13.16:", type=("build", "run")) depends_on("r-affy", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_affyrnadegradation/package.py b/repos/spack_repo/builtin/packages/r_affyrnadegradation/package.py index 129109768f8..204ba9455c9 100644 --- a/repos/spack_repo/builtin/packages/r_affyrnadegradation/package.py +++ b/repos/spack_repo/builtin/packages/r_affyrnadegradation/package.py @@ -19,16 +19,17 @@ class RAffyrnadegradation(RPackage): bioc = "AffyRNADegradation" - version("1.46.0", commit="431ae61c9b3809829697ef71672c57171d93311e") - version("1.44.0", commit="63881f41fc67cc7322b189446dcffb4e1060e303") - version("1.42.0", commit="5775f41f538b3c8ee4d07d38cec1b49c548cebe6") - version("1.40.0", commit="8539a91ee464d692a267bb17c91dc1ef9a231f41") - version("1.36.0", commit="89662b93076659db2967a526899184c12c156bc5") - version("1.30.0", commit="620c464fb09248e1c7a122828eab59a4fb778cc1") - version("1.28.0", commit="aff91d78fa9e76edaa3ef6a9a43b98b86cc44c24") - version("1.26.0", commit="6ab03ad624701464280bf7dfe345d200e846298a") - version("1.24.0", commit="1f85f3da4720cef94623828713eb84d8accbcf8a") - version("1.22.0", commit="0fa78f8286494711a239ded0ba587b0de47c15d3") + with default_args(get_full_repo=True): + version("1.46.0", commit="431ae61c9b3809829697ef71672c57171d93311e") + version("1.44.0", commit="63881f41fc67cc7322b189446dcffb4e1060e303") + version("1.42.0", commit="5775f41f538b3c8ee4d07d38cec1b49c548cebe6") + version("1.40.0", commit="8539a91ee464d692a267bb17c91dc1ef9a231f41") + version("1.36.0", commit="89662b93076659db2967a526899184c12c156bc5") + version("1.30.0", commit="620c464fb09248e1c7a122828eab59a4fb778cc1") + version("1.28.0", commit="aff91d78fa9e76edaa3ef6a9a43b98b86cc44c24") + version("1.26.0", commit="6ab03ad624701464280bf7dfe345d200e846298a") + version("1.24.0", commit="1f85f3da4720cef94623828713eb84d8accbcf8a") + version("1.22.0", commit="0fa78f8286494711a239ded0ba587b0de47c15d3") depends_on("r@2.9.0:", type=("build", "run")) depends_on("r-affy", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_agdex/package.py b/repos/spack_repo/builtin/packages/r_agdex/package.py index 136f92b0a52..c2a4a7fc339 100644 --- a/repos/spack_repo/builtin/packages/r_agdex/package.py +++ b/repos/spack_repo/builtin/packages/r_agdex/package.py @@ -15,16 +15,17 @@ class RAgdex(RPackage): bioc = "AGDEX" - version("1.48.0", commit="917920b397493b0ea40093044ebe36fff7c389ad") - version("1.46.0", commit="d7c38e8bdcaa7b0261117c605e7f61e2b07e8316") - version("1.44.0", commit="9d3eb90eaf7bf093c7fa73facb3df89506a85185") - version("1.42.0", commit="175cf1b384b0942103d841b1feb9e4f7d141ba06") - version("1.38.0", commit="7e2c1f5f27ccbea6a7157f5122212e40408b74da") - version("1.32.0", commit="254ad2c876ab9ac48c3c3b395160dccabc084acf") - version("1.30.0", commit="d6cc21ed7e11e6644399495fa5f8b36368625d4b") - version("1.28.0", commit="7d78ee424485018b73cd019ceaed7a2ed53adf3f") - version("1.26.0", commit="260bc641111770176707d4d43e67b5877bf5eb82") - version("1.24.0", commit="29c6bcfa6919a5c6d8bcb36b44e75145a60ce7b5") + with default_args(get_full_repo=True): + version("1.48.0", commit="917920b397493b0ea40093044ebe36fff7c389ad") + version("1.46.0", commit="d7c38e8bdcaa7b0261117c605e7f61e2b07e8316") + version("1.44.0", commit="9d3eb90eaf7bf093c7fa73facb3df89506a85185") + version("1.42.0", commit="175cf1b384b0942103d841b1feb9e4f7d141ba06") + version("1.38.0", commit="7e2c1f5f27ccbea6a7157f5122212e40408b74da") + version("1.32.0", commit="254ad2c876ab9ac48c3c3b395160dccabc084acf") + version("1.30.0", commit="d6cc21ed7e11e6644399495fa5f8b36368625d4b") + version("1.28.0", commit="7d78ee424485018b73cd019ceaed7a2ed53adf3f") + version("1.26.0", commit="260bc641111770176707d4d43e67b5877bf5eb82") + version("1.24.0", commit="29c6bcfa6919a5c6d8bcb36b44e75145a60ce7b5") depends_on("r@2.10:", type=("build", "run")) depends_on("r-biobase", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_agilp/package.py b/repos/spack_repo/builtin/packages/r_agilp/package.py index 0288c17e7de..2d096b4d966 100644 --- a/repos/spack_repo/builtin/packages/r_agilp/package.py +++ b/repos/spack_repo/builtin/packages/r_agilp/package.py @@ -14,15 +14,16 @@ class RAgilp(RPackage): bioc = "agilp" - version("3.32.0", commit="8291f7b7c1b6167952568f51593116afc6d0fc27") - version("3.30.0", commit="a2c898dc901ccdda4b8582caff079ab20b1bfc28") - version("3.28.0", commit="2c6dfccc76473b5bef13b75fa59adf46b3381f55") - version("3.26.0", commit="3170fe2b1cc459d5e2ca7f61a127aac17cd66a96") - version("3.22.0", commit="7d089d576752e0526f15a1007e94436089954313") - version("3.16.0", commit="2900d6066317f21d076b3a043b16f32eca168c47") - version("3.14.0", commit="8feb047d70216013462ea7806e9227d192b60c61") - version("3.12.0", commit="a86dea1b03b2b56c2c8317d4b10903fb8948ffcb") - version("3.10.0", commit="cffec1004704a0c5119a50e3ad474897978981be") - version("3.8.0", commit="c772a802af1b4c0741f2edd78053a0425160ea53") + with default_args(get_full_repo=True): + version("3.32.0", commit="8291f7b7c1b6167952568f51593116afc6d0fc27") + version("3.30.0", commit="a2c898dc901ccdda4b8582caff079ab20b1bfc28") + version("3.28.0", commit="2c6dfccc76473b5bef13b75fa59adf46b3381f55") + version("3.26.0", commit="3170fe2b1cc459d5e2ca7f61a127aac17cd66a96") + version("3.22.0", commit="7d089d576752e0526f15a1007e94436089954313") + version("3.16.0", commit="2900d6066317f21d076b3a043b16f32eca168c47") + version("3.14.0", commit="8feb047d70216013462ea7806e9227d192b60c61") + version("3.12.0", commit="a86dea1b03b2b56c2c8317d4b10903fb8948ffcb") + version("3.10.0", commit="cffec1004704a0c5119a50e3ad474897978981be") + version("3.8.0", commit="c772a802af1b4c0741f2edd78053a0425160ea53") depends_on("r@2.14.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_agimicrorna/package.py b/repos/spack_repo/builtin/packages/r_agimicrorna/package.py index c415f733371..3b8c6f1c202 100644 --- a/repos/spack_repo/builtin/packages/r_agimicrorna/package.py +++ b/repos/spack_repo/builtin/packages/r_agimicrorna/package.py @@ -15,16 +15,17 @@ class RAgimicrorna(RPackage): bioc = "AgiMicroRna" - version("2.50.0", commit="a812b0f4f215b093ca685889b65de60c6701b695") - version("2.48.0", commit="4c163b1b730150a3a60a3815bd8c08fa04d71fc1") - version("2.46.0", commit="8c6d73e1c3f1f9cc019bdb219b19e6179bb1efe4") - version("2.44.0", commit="8b308baa3b1b0afc0855ea263630a288689e3864") - version("2.40.0", commit="cfa4acb2215da44767ab3a45845bcd587c309e74") - version("2.34.0", commit="aaa8cdd70ed2696c313f6240ffbfa044f0d97a7a") - version("2.32.0", commit="681ae17d07e8e533f798a607b761b71a31f407d8") - version("2.30.0", commit="99b5a8284cfe3e93c3ae85a2436e87101b9599dd") - version("2.28.0", commit="62c4a12f1168c7aa1ab46d2c97090ef71478328e") - version("2.26.0", commit="6dd74bae47986f2a23d03e3f1f9f78f701dd8053") + with default_args(get_full_repo=True): + version("2.50.0", commit="a812b0f4f215b093ca685889b65de60c6701b695") + version("2.48.0", commit="4c163b1b730150a3a60a3815bd8c08fa04d71fc1") + version("2.46.0", commit="8c6d73e1c3f1f9cc019bdb219b19e6179bb1efe4") + version("2.44.0", commit="8b308baa3b1b0afc0855ea263630a288689e3864") + version("2.40.0", commit="cfa4acb2215da44767ab3a45845bcd587c309e74") + version("2.34.0", commit="aaa8cdd70ed2696c313f6240ffbfa044f0d97a7a") + version("2.32.0", commit="681ae17d07e8e533f798a607b761b71a31f407d8") + version("2.30.0", commit="99b5a8284cfe3e93c3ae85a2436e87101b9599dd") + version("2.28.0", commit="62c4a12f1168c7aa1ab46d2c97090ef71478328e") + version("2.26.0", commit="6dd74bae47986f2a23d03e3f1f9f78f701dd8053") depends_on("r+X", type=("build", "run")) depends_on("r@2.10:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_aims/package.py b/repos/spack_repo/builtin/packages/r_aims/package.py index 76db037e954..f4bbee68bfe 100644 --- a/repos/spack_repo/builtin/packages/r_aims/package.py +++ b/repos/spack_repo/builtin/packages/r_aims/package.py @@ -18,16 +18,17 @@ class RAims(RPackage): bioc = "AIMS" - version("1.32.0", commit="019415a6362e805465d43c157606e1774aed9e51") - version("1.30.0", commit="2ab61159c5aa0902cc33fc1502f7853b66912cce") - version("1.28.0", commit="84608df638b5694c08158ed77ad2c8a64c4e594b") - version("1.26.0", commit="5dcf60eb4cdcf563ea848482c9c488f465c27bbd") - version("1.22.0", commit="34a38978b24377abb864eff7683bb36344ff171d") - version("1.16.0", commit="86cb8c998ade3003cd34a5405b218ae07d97bf84") - version("1.14.1", commit="4125c4217a7e4f00169b5ba65dcc3778fdd33c6f") - version("1.12.0", commit="d7eaa723d19a6aca37df244fd0b3d5426ed0a626") - version("1.10.0", commit="972945980b39168502a02ac3aa396f9b99fb3d71") - version("1.8.0", commit="86b866c20e191047492c51b43e3f73082c3f8357") + with default_args(get_full_repo=True): + version("1.32.0", commit="019415a6362e805465d43c157606e1774aed9e51") + version("1.30.0", commit="2ab61159c5aa0902cc33fc1502f7853b66912cce") + version("1.28.0", commit="84608df638b5694c08158ed77ad2c8a64c4e594b") + version("1.26.0", commit="5dcf60eb4cdcf563ea848482c9c488f465c27bbd") + version("1.22.0", commit="34a38978b24377abb864eff7683bb36344ff171d") + version("1.16.0", commit="86cb8c998ade3003cd34a5405b218ae07d97bf84") + version("1.14.1", commit="4125c4217a7e4f00169b5ba65dcc3778fdd33c6f") + version("1.12.0", commit="d7eaa723d19a6aca37df244fd0b3d5426ed0a626") + version("1.10.0", commit="972945980b39168502a02ac3aa396f9b99fb3d71") + version("1.8.0", commit="86b866c20e191047492c51b43e3f73082c3f8357") depends_on("r@2.10:", type=("build", "run")) depends_on("r-e1071", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_aldex2/package.py b/repos/spack_repo/builtin/packages/r_aldex2/package.py index c5caa101358..21c6f816df3 100644 --- a/repos/spack_repo/builtin/packages/r_aldex2/package.py +++ b/repos/spack_repo/builtin/packages/r_aldex2/package.py @@ -26,16 +26,17 @@ class RAldex2(RPackage): license("GPL-3.0-only") - version("1.32.0", commit="ba32b9a9b6a8f42906ea094318f00116f15e42eb") - version("1.30.0", commit="cb6670515a8722f9cfedac12a8c2747a5298ee46") - version("1.28.1", commit="f8d8ba6d2439bff75ab80f5466c9a047c31ed0a6") - version("1.26.0", commit="0876a2eac08d3f1c01df7414d97d391c80182ada") - version("1.22.0", commit="ac7f0ab3f094ec52713da7620a27058b14c7181d") - version("1.16.0", commit="bd698a896a5bea91187e3060e56a147bad1d586f") - version("1.14.1", commit="a8b970c594a00a37c064227bf312d5f89dccabe8") - version("1.12.0", commit="9efde428d22a0be1fe7b6655d45ddce8fcded180") - version("1.10.0", commit="e43f99e4009ad4d5ed200cc8a19faf7091c0c98a") - version("1.8.0", commit="24104824ca2402ad4f54fbf1ed9cee7fac2aaaf1") + with default_args(get_full_repo=True): + version("1.32.0", commit="ba32b9a9b6a8f42906ea094318f00116f15e42eb") + version("1.30.0", commit="cb6670515a8722f9cfedac12a8c2747a5298ee46") + version("1.28.1", commit="f8d8ba6d2439bff75ab80f5466c9a047c31ed0a6") + version("1.26.0", commit="0876a2eac08d3f1c01df7414d97d391c80182ada") + version("1.22.0", commit="ac7f0ab3f094ec52713da7620a27058b14c7181d") + version("1.16.0", commit="bd698a896a5bea91187e3060e56a147bad1d586f") + version("1.14.1", commit="a8b970c594a00a37c064227bf312d5f89dccabe8") + version("1.12.0", commit="9efde428d22a0be1fe7b6655d45ddce8fcded180") + version("1.10.0", commit="e43f99e4009ad4d5ed200cc8a19faf7091c0c98a") + version("1.8.0", commit="24104824ca2402ad4f54fbf1ed9cee7fac2aaaf1") depends_on("r-zcompositions", type=("build", "run"), when="@1.22.0:") depends_on("r-rfast", type=("build", "run"), when="@1.26.0:") diff --git a/repos/spack_repo/builtin/packages/r_allelicimbalance/package.py b/repos/spack_repo/builtin/packages/r_allelicimbalance/package.py index 81b0078fe3f..d01b81c97df 100644 --- a/repos/spack_repo/builtin/packages/r_allelicimbalance/package.py +++ b/repos/spack_repo/builtin/packages/r_allelicimbalance/package.py @@ -15,16 +15,17 @@ class RAllelicimbalance(RPackage): bioc = "AllelicImbalance" - version("1.38.0", commit="75a3b0fefe635a0892eae338d0fdd4a9e091f957") - version("1.36.0", commit="cb4910c1fd58cc4272c21251a8f120990e1aa431") - version("1.34.0", commit="290708ccc4ceae1fbb9e9257cb254916449d389b") - version("1.32.0", commit="428ab8c96bb15fab45e4084da25f98b01b9d60b6") - version("1.28.0", commit="ac5d13c9ee0935bf9500ee542792644e752a1fde") - version("1.22.0", commit="04692e367e8c6aac475d06adfd7cfa629baab05a") - version("1.20.0", commit="4cd3a789d872151b0d906ec419677271fecdf7c3") - version("1.18.0", commit="6d6eed7487e9207dba556bc76283bcc7745808ea") - version("1.16.0", commit="85f652ae8a0dd15535819b6e934065182df5544a") - version("1.14.0", commit="35958534945819baafde0e13d1eb4d05a514142c") + with default_args(get_full_repo=True): + version("1.38.0", commit="75a3b0fefe635a0892eae338d0fdd4a9e091f957") + version("1.36.0", commit="cb4910c1fd58cc4272c21251a8f120990e1aa431") + version("1.34.0", commit="290708ccc4ceae1fbb9e9257cb254916449d389b") + version("1.32.0", commit="428ab8c96bb15fab45e4084da25f98b01b9d60b6") + version("1.28.0", commit="ac5d13c9ee0935bf9500ee542792644e752a1fde") + version("1.22.0", commit="04692e367e8c6aac475d06adfd7cfa629baab05a") + version("1.20.0", commit="4cd3a789d872151b0d906ec419677271fecdf7c3") + version("1.18.0", commit="6d6eed7487e9207dba556bc76283bcc7745808ea") + version("1.16.0", commit="85f652ae8a0dd15535819b6e934065182df5544a") + version("1.14.0", commit="35958534945819baafde0e13d1eb4d05a514142c") depends_on("r@3.2.0:", type=("build", "run")) depends_on("r@4.0.0:", type=("build", "run"), when="@1.28.0:") diff --git a/repos/spack_repo/builtin/packages/r_alpine/package.py b/repos/spack_repo/builtin/packages/r_alpine/package.py index dbaf27712af..ba43291578e 100644 --- a/repos/spack_repo/builtin/packages/r_alpine/package.py +++ b/repos/spack_repo/builtin/packages/r_alpine/package.py @@ -15,16 +15,17 @@ class RAlpine(RPackage): bioc = "alpine" - version("1.26.0", commit="1e317dbf2973eb4b6a3ffbf52bc0faacec76a616") - version("1.24.0", commit="7e734d49881761cafaacea096ce757531b6bd522") - version("1.22.0", commit="6107a82962f07e0434e93f261cd375eaaa171d91") - version("1.20.0", commit="9348ef14128aa6be10cca1987736ddbc385df7e9") - version("1.16.0", commit="aee397774ac6cd17ad45dc05be14c526647f3c13") - version("1.10.0", commit="bf22597eb2c6c6aaa26900ed4ece96ce7256e77c") - version("1.8.0", commit="ddaa0b4517f0909460aa1bd33c8e43dc6c8d23d4") - version("1.6.0", commit="ea55fcb3cedb5caa20d8264bb29a4975041f5274") - version("1.4.0", commit="c85beb208fd6bfc0a61a483a98498b589640f946") - version("1.2.0", commit="896872e6071769e1ac2cf786974edb8b875c45eb") + with default_args(get_full_repo=True): + version("1.26.0", commit="1e317dbf2973eb4b6a3ffbf52bc0faacec76a616") + version("1.24.0", commit="7e734d49881761cafaacea096ce757531b6bd522") + version("1.22.0", commit="6107a82962f07e0434e93f261cd375eaaa171d91") + version("1.20.0", commit="9348ef14128aa6be10cca1987736ddbc385df7e9") + version("1.16.0", commit="aee397774ac6cd17ad45dc05be14c526647f3c13") + version("1.10.0", commit="bf22597eb2c6c6aaa26900ed4ece96ce7256e77c") + version("1.8.0", commit="ddaa0b4517f0909460aa1bd33c8e43dc6c8d23d4") + version("1.6.0", commit="ea55fcb3cedb5caa20d8264bb29a4975041f5274") + version("1.4.0", commit="c85beb208fd6bfc0a61a483a98498b589640f946") + version("1.2.0", commit="896872e6071769e1ac2cf786974edb8b875c45eb") depends_on("r@3.3:", type=("build", "run")) depends_on("r-biostrings", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_alsace/package.py b/repos/spack_repo/builtin/packages/r_alsace/package.py index 5027be17b04..6de7d75aa09 100644 --- a/repos/spack_repo/builtin/packages/r_alsace/package.py +++ b/repos/spack_repo/builtin/packages/r_alsace/package.py @@ -19,13 +19,14 @@ class RAlsace(RPackage): bioc = "alsace" - version("1.30.0", commit="d0e09b283da2b4869d5d6e6801399676246bc5bc") - version("1.26.0", commit="40a76404acb1466723a78a55d87c67eec3e6f306") - version("1.20.0", commit="47f1cf8daafc864e5e3418009f349ce85d6b0389") - version("1.18.0", commit="c9fc43c7b441de43b14ef1be69926c4c4a566191") - version("1.16.0", commit="5a51a19aeccbba0123222201cb7a228559f29653") - version("1.14.0", commit="aebb13b00eb850f9569391c4c92183b55b70ae89") - version("1.12.0", commit="1364c65bbff05786d05c02799fd44fd57748fae3") + with default_args(get_full_repo=True): + version("1.30.0", commit="d0e09b283da2b4869d5d6e6801399676246bc5bc") + version("1.26.0", commit="40a76404acb1466723a78a55d87c67eec3e6f306") + version("1.20.0", commit="47f1cf8daafc864e5e3418009f349ce85d6b0389") + version("1.18.0", commit="c9fc43c7b441de43b14ef1be69926c4c4a566191") + version("1.16.0", commit="5a51a19aeccbba0123222201cb7a228559f29653") + version("1.14.0", commit="aebb13b00eb850f9569391c4c92183b55b70ae89") + version("1.12.0", commit="1364c65bbff05786d05c02799fd44fd57748fae3") depends_on("r@2.10:", type=("build", "run")) depends_on("r-als", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_altcdfenvs/package.py b/repos/spack_repo/builtin/packages/r_altcdfenvs/package.py index dbd2fb170d2..313f1fa5870 100644 --- a/repos/spack_repo/builtin/packages/r_altcdfenvs/package.py +++ b/repos/spack_repo/builtin/packages/r_altcdfenvs/package.py @@ -14,16 +14,17 @@ class RAltcdfenvs(RPackage): bioc = "altcdfenvs" - version("2.62.0", commit="aedf0e9f98639d60b327e50957e504cf24b64bbb") - version("2.60.0", commit="0bc0b4493b8e9fe2eb47fb8e9377123ce8f472bb") - version("2.58.0", commit="08255a777ffa1e1414d3dd3062d95bfdd3dfd47c") - version("2.56.0", commit="941e00b97a33662a8230991e387070324b2e76bf") - version("2.52.0", commit="21329abf82eae26f84b7c0270e81c8e089c548ce") - version("2.46.0", commit="90a11e748a5af98cabfd6670a5b7b256420d172b") - version("2.44.0", commit="d804f6432422bd532abab415710f890b36cc8133") - version("2.42.0", commit="00ec6461877a063d938494b8ed0cd273a3b20b85") - version("2.40.0", commit="517a208f49f168bdd3cde40ed216282c417237d7") - version("2.38.0", commit="2e92b9da76dbe50af4bf33c525134e29e9809291") + with default_args(get_full_repo=True): + version("2.62.0", commit="aedf0e9f98639d60b327e50957e504cf24b64bbb") + version("2.60.0", commit="0bc0b4493b8e9fe2eb47fb8e9377123ce8f472bb") + version("2.58.0", commit="08255a777ffa1e1414d3dd3062d95bfdd3dfd47c") + version("2.56.0", commit="941e00b97a33662a8230991e387070324b2e76bf") + version("2.52.0", commit="21329abf82eae26f84b7c0270e81c8e089c548ce") + version("2.46.0", commit="90a11e748a5af98cabfd6670a5b7b256420d172b") + version("2.44.0", commit="d804f6432422bd532abab415710f890b36cc8133") + version("2.42.0", commit="00ec6461877a063d938494b8ed0cd273a3b20b85") + version("2.40.0", commit="517a208f49f168bdd3cde40ed216282c417237d7") + version("2.38.0", commit="2e92b9da76dbe50af4bf33c525134e29e9809291") depends_on("r@2.7:", type=("build", "run")) depends_on("r-biocgenerics@0.1.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_amelia/package.py b/repos/spack_repo/builtin/packages/r_amelia/package.py index a83222d6127..1201df447ae 100644 --- a/repos/spack_repo/builtin/packages/r_amelia/package.py +++ b/repos/spack_repo/builtin/packages/r_amelia/package.py @@ -33,6 +33,9 @@ class RAmelia(RPackage): version("1.8.0", sha256="3ec1d5a68dac601b354227916aa8ec72fa1216b603dd887aae2b24cb69b5995e") version("1.7.6", sha256="63c08d374aaf78af46c34dc78da719b3085e58d9fabdc76c6460d5193a621bea") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.0.2:", type=("build", "run")) depends_on("r-rcpp@0.11:", type=("build", "run")) depends_on("r-foreign", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_ampliqueso/package.py b/repos/spack_repo/builtin/packages/r_ampliqueso/package.py index 711bc056767..64c09b35b3e 100644 --- a/repos/spack_repo/builtin/packages/r_ampliqueso/package.py +++ b/repos/spack_repo/builtin/packages/r_ampliqueso/package.py @@ -15,11 +15,12 @@ class RAmpliqueso(RPackage): bioc = "ampliQueso" - version("1.21.0", commit="ed99c5194a452ee299a93e981da2224e4dab5bdd") - version("1.20.0", commit="ed064ffe9c5f2b47136e5f0f2e2c4214af4deae8") - version("1.18.0", commit="c27fa51094135ef8da52cd2b34a27ec6454abd8e") - version("1.16.0", commit="25d2543ff9dedef4f966f999c95cdf87185d3bb3") - version("1.14.0", commit="9a4c26ec594171279aba8ab7fe59c4a2ea09b06b") + with default_args(get_full_repo=True): + version("1.21.0", commit="ed99c5194a452ee299a93e981da2224e4dab5bdd") + version("1.20.0", commit="ed064ffe9c5f2b47136e5f0f2e2c4214af4deae8") + version("1.18.0", commit="c27fa51094135ef8da52cd2b34a27ec6454abd8e") + version("1.16.0", commit="25d2543ff9dedef4f966f999c95cdf87185d3bb3") + version("1.14.0", commit="9a4c26ec594171279aba8ab7fe59c4a2ea09b06b") depends_on("r+X", type=("build", "run")) depends_on("r@2.15.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_analysispageserver/package.py b/repos/spack_repo/builtin/packages/r_analysispageserver/package.py index 36c45ed5c8f..6b73a53d8ec 100644 --- a/repos/spack_repo/builtin/packages/r_analysispageserver/package.py +++ b/repos/spack_repo/builtin/packages/r_analysispageserver/package.py @@ -16,11 +16,12 @@ class RAnalysispageserver(RPackage): bioc = "AnalysisPageServer" - version("1.18.1", commit="08bd85e872d3f2b0c1fa148cf30bcd2d1a29b630") - version("1.16.0", commit="67b063523f80e2af1d26262367ff50f34e195174") - version("1.14.0", commit="620c0ea1e129ddd1a0866e2c9d7c3fcf06a8baf4") - version("1.12.0", commit="146501974ef1938ee1ec4eb293ea7eeca331a0dc") - version("1.10.0", commit="876c87073be116fa15a1afdd407e21152eb80d50") + with default_args(get_full_repo=True): + version("1.18.1", commit="08bd85e872d3f2b0c1fa148cf30bcd2d1a29b630") + version("1.16.0", commit="67b063523f80e2af1d26262367ff50f34e195174") + version("1.14.0", commit="620c0ea1e129ddd1a0866e2c9d7c3fcf06a8baf4") + version("1.12.0", commit="146501974ef1938ee1ec4eb293ea7eeca331a0dc") + version("1.10.0", commit="876c87073be116fa15a1afdd407e21152eb80d50") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_anaquin/package.py b/repos/spack_repo/builtin/packages/r_anaquin/package.py index ed17d75c4d3..5da30298c56 100644 --- a/repos/spack_repo/builtin/packages/r_anaquin/package.py +++ b/repos/spack_repo/builtin/packages/r_anaquin/package.py @@ -18,16 +18,17 @@ class RAnaquin(RPackage): bioc = "Anaquin" - version("2.24.0", commit="0eefabdc4036b98505032c460d08375839b1fc3e") - version("2.22.0", commit="d848a9bd7bf9d1d62202cc477300bf1a65b3e36c") - version("2.20.0", commit="61598dd3430b09b57f31d7d550ea95126a2d73c8") - version("2.18.0", commit="c8e3df3e299c32daac0dda23cea59a18673d886b") - version("2.14.0", commit="d0a34c931a0e72080bff91dacb37dbbe26b45386") - version("2.8.0", commit="f591d420740b77881ae0a4c16b208c63d460c601") - version("2.6.1", commit="22b6c71697fe1e2db8f6d18f77728d0fd96fa6d6") - version("2.4.0", commit="0d6ae80ff622151a782e4774ca274f06024a71d2") - version("2.2.0", commit="739f4ed2b73c43f934fd65a993ecb48242a5d5da") - version("1.2.0", commit="584d1970cc9dc1d354f9a6d7c1306bd7e8567119") + with default_args(get_full_repo=True): + version("2.24.0", commit="0eefabdc4036b98505032c460d08375839b1fc3e") + version("2.22.0", commit="d848a9bd7bf9d1d62202cc477300bf1a65b3e36c") + version("2.20.0", commit="61598dd3430b09b57f31d7d550ea95126a2d73c8") + version("2.18.0", commit="c8e3df3e299c32daac0dda23cea59a18673d886b") + version("2.14.0", commit="d0a34c931a0e72080bff91dacb37dbbe26b45386") + version("2.8.0", commit="f591d420740b77881ae0a4c16b208c63d460c601") + version("2.6.1", commit="22b6c71697fe1e2db8f6d18f77728d0fd96fa6d6") + version("2.4.0", commit="0d6ae80ff622151a782e4774ca274f06024a71d2") + version("2.2.0", commit="739f4ed2b73c43f934fd65a993ecb48242a5d5da") + version("1.2.0", commit="584d1970cc9dc1d354f9a6d7c1306bd7e8567119") depends_on("r@3.3:", type=("build", "run")) depends_on("r-ggplot2@2.2.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_aneufinder/package.py b/repos/spack_repo/builtin/packages/r_aneufinder/package.py index 25bbf6e901c..dc29409ca85 100644 --- a/repos/spack_repo/builtin/packages/r_aneufinder/package.py +++ b/repos/spack_repo/builtin/packages/r_aneufinder/package.py @@ -16,16 +16,17 @@ class RAneufinder(RPackage): bioc = "AneuFinder" - version("1.28.0", commit="e17d810171bdab1c6a26a3ab7b7931db4e073e7e") - version("1.26.0", commit="7cd59a1e24c6512f2e4fcbe2c53a0d3cd2d06217") - version("1.24.0", commit="4c6906eee514eba3e8ac159654a6953e37a99bba") - version("1.22.0", commit="ea0beb3d827c2dd4bc56708a839a93c55304918b") - version("1.18.0", commit="76ec9af947f97212084ca478e8e82f9e0eb79de9") - version("1.12.1", commit="e788fd0c864f0bf0abd93df44c6d42f82eb37e0e") - version("1.10.2", commit="56578ae69abac93dfea6bcac1fc205b14b6ba9dd") - version("1.8.0", commit="36a729d244add5aafbe21c37a1baaea6a50354d3") - version("1.6.0", commit="0cfbdd1951fb4df5622e002260cfa86294d65d1d") - version("1.4.0", commit="e5bdf4d5e4f84ee5680986826ffed636ed853b8e") + with default_args(get_full_repo=True): + version("1.28.0", commit="e17d810171bdab1c6a26a3ab7b7931db4e073e7e") + version("1.26.0", commit="7cd59a1e24c6512f2e4fcbe2c53a0d3cd2d06217") + version("1.24.0", commit="4c6906eee514eba3e8ac159654a6953e37a99bba") + version("1.22.0", commit="ea0beb3d827c2dd4bc56708a839a93c55304918b") + version("1.18.0", commit="76ec9af947f97212084ca478e8e82f9e0eb79de9") + version("1.12.1", commit="e788fd0c864f0bf0abd93df44c6d42f82eb37e0e") + version("1.10.2", commit="56578ae69abac93dfea6bcac1fc205b14b6ba9dd") + version("1.8.0", commit="36a729d244add5aafbe21c37a1baaea6a50354d3") + version("1.6.0", commit="0cfbdd1951fb4df5622e002260cfa86294d65d1d") + version("1.4.0", commit="e5bdf4d5e4f84ee5680986826ffed636ed853b8e") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_aneufinderdata/package.py b/repos/spack_repo/builtin/packages/r_aneufinderdata/package.py index 84de27b20e3..041347547f5 100644 --- a/repos/spack_repo/builtin/packages/r_aneufinderdata/package.py +++ b/repos/spack_repo/builtin/packages/r_aneufinderdata/package.py @@ -15,15 +15,16 @@ class RAneufinderdata(RPackage): bioc = "AneuFinderData" - version("1.28.0", commit="d04255e60173ce478d31b1e1e5c73e6ed9e3b20c") - version("1.26.0", commit="4b810599b62a3fb39239bfd98ed960c93989e86b") - version("1.24.0", commit="cf6f3852702aab28e3170fc56b695d00b7389666") - version("1.22.0", commit="ae8eec3b0afdc351dc447aad2024df5b2c75e56b") - version("1.18.0", commit="1bf1657b28fc8c1425e611980a692da952ce3d1e") - version("1.12.0", commit="7350f38856b6278e07eca141f7f3cb24bc60c3a1") - version("1.10.0", commit="ef7fc27f9af4f178fa45a21aba30709e1ebde035") - version("1.8.0", commit="4f00f8d5f2e968fea667a7feafc0a4607d6e0c6e") - version("1.6.0", commit="8fe5b221619aab75fe84c9094708d240dd1e6730") - version("1.4.0", commit="55c8807ee4a37a2eb6d0defafaf843f980b22c40") + with default_args(get_full_repo=True): + version("1.28.0", commit="d04255e60173ce478d31b1e1e5c73e6ed9e3b20c") + version("1.26.0", commit="4b810599b62a3fb39239bfd98ed960c93989e86b") + version("1.24.0", commit="cf6f3852702aab28e3170fc56b695d00b7389666") + version("1.22.0", commit="ae8eec3b0afdc351dc447aad2024df5b2c75e56b") + version("1.18.0", commit="1bf1657b28fc8c1425e611980a692da952ce3d1e") + version("1.12.0", commit="7350f38856b6278e07eca141f7f3cb24bc60c3a1") + version("1.10.0", commit="ef7fc27f9af4f178fa45a21aba30709e1ebde035") + version("1.8.0", commit="4f00f8d5f2e968fea667a7feafc0a4607d6e0c6e") + version("1.6.0", commit="8fe5b221619aab75fe84c9094708d240dd1e6730") + version("1.4.0", commit="55c8807ee4a37a2eb6d0defafaf843f980b22c40") depends_on("r@3.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_annaffy/package.py b/repos/spack_repo/builtin/packages/r_annaffy/package.py index 71335266b6d..d86fde08ba8 100644 --- a/repos/spack_repo/builtin/packages/r_annaffy/package.py +++ b/repos/spack_repo/builtin/packages/r_annaffy/package.py @@ -19,16 +19,11 @@ class RAnnaffy(RPackage): license("LGPL-2.1-or-later") - version("1.72.0", commit="7cb439706a7e93fb5b44ead374010077a44ea78b") - version("1.70.0", commit="c99e81259adb39b5d8e954fd7afe7f93675229bc") - version("1.68.0", commit="fa930c0bbdca9828a130ab06d86c65d451380830") - version("1.66.0", commit="aa1afa1509754128d27508228c1f39f51a8da043") - version("1.62.0", commit="ad9c37e0e7e45e0f35c208ce528ba48000b37432") - version("1.56.0", commit="8c8e16aa0f3073880c39684fd8e554a052ec6233") - version("1.54.0", commit="e1b3bf10515255eb994cd8bdf85697ea728c3484") - version("1.52.0", commit="ef84030163045f702941c8d5a59fbd4a09f30e2c") - version("1.50.0", commit="a822e20f3e961a8afa5eb23536343115a33fb259") - version("1.48.0", commit="89a03c64ac9df5d963ed60b87893a3fffa6798a0") + with default_args(get_full_repo=True): + version("1.72.0", commit="7cb439706a7e93fb5b44ead374010077a44ea78b") + version("1.70.0", commit="c99e81259adb39b5d8e954fd7afe7f93675229bc") + version("1.68.0", commit="fa930c0bbdca9828a130ab06d86c65d451380830") + version("1.66.0", commit="aa1afa1509754128d27508228c1f39f51a8da043") depends_on("r@2.5.0:", type=("build", "run")) depends_on("r-biobase", type=("build", "run")) @@ -36,5 +31,3 @@ class RAnnaffy(RPackage): depends_on("r-go-db", type=("build", "run")) depends_on("r-annotationdbi@0.1.15:", type=("build", "run")) depends_on("r-dbi", type=("build", "run")) - - depends_on("r-kegg-db", type=("build", "run"), when="@:1.62.0") diff --git a/repos/spack_repo/builtin/packages/r_annotate/package.py b/repos/spack_repo/builtin/packages/r_annotate/package.py index 2169a1a4d4a..586b5067af4 100644 --- a/repos/spack_repo/builtin/packages/r_annotate/package.py +++ b/repos/spack_repo/builtin/packages/r_annotate/package.py @@ -14,16 +14,17 @@ class RAnnotate(RPackage): bioc = "annotate" - version("1.78.0", commit="ca6415a463ec682f340ba5d1dc6246a92e836143") - version("1.76.0", commit="0181d5c41d594e36be06adb6a02302db0ad2c507") - version("1.74.0", commit="200c71743417792880f8171d59b2ac0ddd3902a8") - version("1.72.0", commit="67ac76a9ff6d60dc1620763d3aa98aef39443110") - version("1.68.0", commit="98cdb12c612b3f3fc06329a89a1ffb0a92b555c0") - version("1.62.0", commit="19af0b39747ea83fe8fe9b8bbb6036363bc815cd") - version("1.60.1", commit="9d8f87db02bf0c1593e79da754335a24d3a8ed16") - version("1.58.0", commit="d1b5dd5feb8793f4f816d9a4aecbebb5ec7df7bc") - version("1.56.2", commit="95ec3b004f5356bd78b2a60cbf7f93e0d48cf346") - version("1.54.0", commit="860cc5b696795a31b18beaf4869f9c418d74549e") + with default_args(get_full_repo=True): + version("1.78.0", commit="ca6415a463ec682f340ba5d1dc6246a92e836143") + version("1.76.0", commit="0181d5c41d594e36be06adb6a02302db0ad2c507") + version("1.74.0", commit="200c71743417792880f8171d59b2ac0ddd3902a8") + version("1.72.0", commit="67ac76a9ff6d60dc1620763d3aa98aef39443110") + version("1.68.0", commit="98cdb12c612b3f3fc06329a89a1ffb0a92b555c0") + version("1.62.0", commit="19af0b39747ea83fe8fe9b8bbb6036363bc815cd") + version("1.60.1", commit="9d8f87db02bf0c1593e79da754335a24d3a8ed16") + version("1.58.0", commit="d1b5dd5feb8793f4f816d9a4aecbebb5ec7df7bc") + version("1.56.2", commit="95ec3b004f5356bd78b2a60cbf7f93e0d48cf346") + version("1.54.0", commit="860cc5b696795a31b18beaf4869f9c418d74549e") depends_on("r@2.10:", type=("build", "run")) depends_on("r-annotationdbi@1.27.5:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_annotationdbi/package.py b/repos/spack_repo/builtin/packages/r_annotationdbi/package.py index 90594ee9d68..57eeccaeb41 100644 --- a/repos/spack_repo/builtin/packages/r_annotationdbi/package.py +++ b/repos/spack_repo/builtin/packages/r_annotationdbi/package.py @@ -15,16 +15,17 @@ class RAnnotationdbi(RPackage): bioc = "AnnotationDbi" - version("1.62.0", commit="7ca03a0332d0a284ea27d16edb7b386c86cf99ea") - version("1.60.0", commit="cd61bd1b1538e2f1f411fd7087820749ecf39da8") - version("1.58.0", commit="05fcf7a28a6b15b195da23474d7ba89bd0cfd891") - version("1.56.2", commit="13fdc4a93852199ca6ec120a2fe1078f9f445f67") - version("1.52.0", commit="c4e0ca9bd65362ae9cad6a98d90f54267b0ae838") - version("1.46.1", commit="ff260913741d0fcf9487eeb1f44a6c6968ced5b9") - version("1.44.0", commit="ce191b08cfd612d014431325c26c91b11c5f13ac") - version("1.42.1", commit="71085b47ea2e1ef929bebe8b17eb8e8a573f98e3") - version("1.40.0", commit="e34dff07e10402eecbf95604a512bc1fc4edb127") - version("1.38.2", commit="67d46facba8c15fa5f0eb47c4e39b53dbdc67c36") + with default_args(get_full_repo=True): + version("1.62.0", commit="7ca03a0332d0a284ea27d16edb7b386c86cf99ea") + version("1.60.0", commit="cd61bd1b1538e2f1f411fd7087820749ecf39da8") + version("1.58.0", commit="05fcf7a28a6b15b195da23474d7ba89bd0cfd891") + version("1.56.2", commit="13fdc4a93852199ca6ec120a2fe1078f9f445f67") + version("1.52.0", commit="c4e0ca9bd65362ae9cad6a98d90f54267b0ae838") + version("1.46.1", commit="ff260913741d0fcf9487eeb1f44a6c6968ced5b9") + version("1.44.0", commit="ce191b08cfd612d014431325c26c91b11c5f13ac") + version("1.42.1", commit="71085b47ea2e1ef929bebe8b17eb8e8a573f98e3") + version("1.40.0", commit="e34dff07e10402eecbf95604a512bc1fc4edb127") + version("1.38.2", commit="67d46facba8c15fa5f0eb47c4e39b53dbdc67c36") depends_on("r@2.7.0:", type=("build", "run")) depends_on("r-biocgenerics@0.15.10:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_annotationfilter/package.py b/repos/spack_repo/builtin/packages/r_annotationfilter/package.py index ceb9938382a..187aa970243 100644 --- a/repos/spack_repo/builtin/packages/r_annotationfilter/package.py +++ b/repos/spack_repo/builtin/packages/r_annotationfilter/package.py @@ -16,16 +16,17 @@ class RAnnotationfilter(RPackage): bioc = "AnnotationFilter" - version("1.24.0", commit="172d9c149d9025154f7b26982d07f571499b03e8") - version("1.22.0", commit="c9fea4a829ce9419b6e0af987915b2d469358597") - version("1.20.0", commit="2818aff6502fd6fe819521cd8d97695ef6f9198e") - version("1.18.0", commit="60a9b666d7362d7ed5c357fd4a5d2744d8598c20") - version("1.14.0", commit="6ee3a13ed93a535ed452cbc8c118151a2cbb732c") - version("1.8.0", commit="9bf70ead899e32e84e2908f2b29cd38250d2d1ed") - version("1.6.0", commit="fa40a7e17e93fac9e85091ff93f256adf145dec3") - version("1.4.0", commit="acbd3309f478843a7899bd9773af5f19f986b829") - version("1.2.0", commit="744b82915d7b85031de462d9d0a2bf9fdfd0e29d") - version("1.0.0", commit="a9f79b26defe3021eea60abe16ce1fa379813ec9") + with default_args(get_full_repo=True): + version("1.24.0", commit="172d9c149d9025154f7b26982d07f571499b03e8") + version("1.22.0", commit="c9fea4a829ce9419b6e0af987915b2d469358597") + version("1.20.0", commit="2818aff6502fd6fe819521cd8d97695ef6f9198e") + version("1.18.0", commit="60a9b666d7362d7ed5c357fd4a5d2744d8598c20") + version("1.14.0", commit="6ee3a13ed93a535ed452cbc8c118151a2cbb732c") + version("1.8.0", commit="9bf70ead899e32e84e2908f2b29cd38250d2d1ed") + version("1.6.0", commit="fa40a7e17e93fac9e85091ff93f256adf145dec3") + version("1.4.0", commit="acbd3309f478843a7899bd9773af5f19f986b829") + version("1.2.0", commit="744b82915d7b85031de462d9d0a2bf9fdfd0e29d") + version("1.0.0", commit="a9f79b26defe3021eea60abe16ce1fa379813ec9") depends_on("r@3.4.0:", type=("build", "run")) depends_on("r-genomicranges", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_annotationforge/package.py b/repos/spack_repo/builtin/packages/r_annotationforge/package.py index a80fdd1cc99..5fed38f99b7 100644 --- a/repos/spack_repo/builtin/packages/r_annotationforge/package.py +++ b/repos/spack_repo/builtin/packages/r_annotationforge/package.py @@ -15,17 +15,18 @@ class RAnnotationforge(RPackage): bioc = "AnnotationForge" - version("1.42.0", commit="2eac005012b11317c33c8b0062b968b2ac378308") - version("1.40.0", commit="f77d3a942eb6b18c18888b7af3f0e652596cf19f") - version("1.38.1", commit="2dcedf353bc57bf80818e6adb1f7129c21886f6b") - version("1.38.0", commit="1f77750562ea3a01f0f1a46c299184fc31196ffd") - version("1.36.0", commit="523b5f0c3ffb77e59e1568e5f36a5a470bfeeae5") - version("1.32.0", commit="3d17c2a945951c02fe152e5a8a8e9c6cb41e30f7") - version("1.26.0", commit="5d181f32df1fff6446af64a2538a7d25c23fe46e") - version("1.24.0", commit="3e1fe863573e5b0f69f35a9ad6aebce11ef83d0d") - version("1.22.2", commit="8eafb1690c1c02f6291ccbb38ac633d54b8217f8") - version("1.20.0", commit="7b440f1570cb90acce8fe2fa8d3b5ac34f638882") - version("1.18.2", commit="44ca3d4ef9e9825c14725ffdbbaa57ea059532e1") + with default_args(get_full_repo=True): + version("1.42.0", commit="2eac005012b11317c33c8b0062b968b2ac378308") + version("1.40.0", commit="f77d3a942eb6b18c18888b7af3f0e652596cf19f") + version("1.38.1", commit="2dcedf353bc57bf80818e6adb1f7129c21886f6b") + version("1.38.0", commit="1f77750562ea3a01f0f1a46c299184fc31196ffd") + version("1.36.0", commit="523b5f0c3ffb77e59e1568e5f36a5a470bfeeae5") + version("1.32.0", commit="3d17c2a945951c02fe152e5a8a8e9c6cb41e30f7") + version("1.26.0", commit="5d181f32df1fff6446af64a2538a7d25c23fe46e") + version("1.24.0", commit="3e1fe863573e5b0f69f35a9ad6aebce11ef83d0d") + version("1.22.2", commit="8eafb1690c1c02f6291ccbb38ac633d54b8217f8") + version("1.20.0", commit="7b440f1570cb90acce8fe2fa8d3b5ac34f638882") + version("1.18.2", commit="44ca3d4ef9e9825c14725ffdbbaa57ea059532e1") depends_on("r@2.7.0:", type=("build", "run")) depends_on("r-biocgenerics@0.15.10:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_annotationhub/package.py b/repos/spack_repo/builtin/packages/r_annotationhub/package.py index 9185ace35c6..018a156bcad 100644 --- a/repos/spack_repo/builtin/packages/r_annotationhub/package.py +++ b/repos/spack_repo/builtin/packages/r_annotationhub/package.py @@ -21,16 +21,17 @@ class RAnnotationhub(RPackage): bioc = "AnnotationHub" - version("3.8.0", commit="975022dd33706824bd02f67cc9c3a42f3567f4a5") - version("3.6.0", commit="3315a73b7803a92412ed18209dd37b378195b86f") - version("3.4.0", commit="e74e54ca44f50c2c15c60f8620e3d1721f8f5b6d") - version("3.2.1", commit="ad1dfe86f0b0ea4711cc9cdb89e073e8794ec9aa") - version("2.22.0", commit="3ab7dceebbc31ac14ca931f66c662cf9538b7d0a") - version("2.16.1", commit="f8cefaae603b782e1c1ad277a3fb89d44e3aa1ed") - version("2.14.5", commit="993a98ce3de04a0bbddcbde5b1ab2a9550275a12") - version("2.12.1", commit="471407bd9cdc612e01deb071c91bd9e5f1ea5e55") - version("2.10.1", commit="b7cb668de9b9625ac2beb3dcde1fa39e289eec29") - version("2.8.3", commit="8aa9c64262a8d708d2bf1c82f82dfc3d7d4ccc0c") + with default_args(get_full_repo=True): + version("3.8.0", commit="975022dd33706824bd02f67cc9c3a42f3567f4a5") + version("3.6.0", commit="3315a73b7803a92412ed18209dd37b378195b86f") + version("3.4.0", commit="e74e54ca44f50c2c15c60f8620e3d1721f8f5b6d") + version("3.2.1", commit="ad1dfe86f0b0ea4711cc9cdb89e073e8794ec9aa") + version("2.22.0", commit="3ab7dceebbc31ac14ca931f66c662cf9538b7d0a") + version("2.16.1", commit="f8cefaae603b782e1c1ad277a3fb89d44e3aa1ed") + version("2.14.5", commit="993a98ce3de04a0bbddcbde5b1ab2a9550275a12") + version("2.12.1", commit="471407bd9cdc612e01deb071c91bd9e5f1ea5e55") + version("2.10.1", commit="b7cb668de9b9625ac2beb3dcde1fa39e289eec29") + version("2.8.3", commit="8aa9c64262a8d708d2bf1c82f82dfc3d7d4ccc0c") depends_on("r-biocgenerics@0.15.10:", type=("build", "run")) depends_on("r-biocfilecache@1.5.1:", type=("build", "run"), when="@2.16.1:") diff --git a/repos/spack_repo/builtin/packages/r_ape/package.py b/repos/spack_repo/builtin/packages/r_ape/package.py index 3b8270a6eb0..bd7baaf77b0 100644 --- a/repos/spack_repo/builtin/packages/r_ape/package.py +++ b/repos/spack_repo/builtin/packages/r_ape/package.py @@ -41,6 +41,9 @@ class RApe(RPackage): version("5.0", sha256="c32ed22e350b3d7c7ef3de9334155ab1f3086922b5ec9a1643897cae7abda960") version("4.1", sha256="935af5ddadcba832d3f9cc032a80fc1a2e627a7ed54ef5f3773f87e06374a924") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("r@3.2:", type=("build", "run")) depends_on("r@3.2.0:", type=("build", "run"), when="@5.7-1:") depends_on("r-nlme", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_aroma_light/package.py b/repos/spack_repo/builtin/packages/r_aroma_light/package.py index 9b3c69d7f7e..dc4d2fcbfcf 100644 --- a/repos/spack_repo/builtin/packages/r_aroma_light/package.py +++ b/repos/spack_repo/builtin/packages/r_aroma_light/package.py @@ -17,12 +17,13 @@ class RAromaLight(RPackage): bioc = "aroma.light" - version("3.30.0", commit="a1882c2126622cb389a7ef1ef5b5c565e603a282") - version("3.28.0", commit="7749dd7033e9885ec2546a5cac0562bac2fea04d") - version("3.26.0", commit="7ead7517a77bc8b4b4b42aace69957a17e8fe016") - version("3.24.0", commit="3ff48b8f546acc9803b3c652363cac78d3b81ae5") - version("3.20.0", commit="02cde7fa166259bce73c396a87dca2ecc8249c39") - version("3.16.0", commit="fc16179fc4bee8954c5415d7cd13e3112b75b4fd") + with default_args(get_full_repo=True): + version("3.30.0", commit="a1882c2126622cb389a7ef1ef5b5c565e603a282") + version("3.28.0", commit="7749dd7033e9885ec2546a5cac0562bac2fea04d") + version("3.26.0", commit="7ead7517a77bc8b4b4b42aace69957a17e8fe016") + version("3.24.0", commit="3ff48b8f546acc9803b3c652363cac78d3b81ae5") + version("3.20.0", commit="02cde7fa166259bce73c396a87dca2ecc8249c39") + version("3.16.0", commit="fc16179fc4bee8954c5415d7cd13e3112b75b4fd") depends_on("r@2.15.2:", type=("build", "run")) depends_on("r-r-methodss3@1.7.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_askpass/package.py b/repos/spack_repo/builtin/packages/r_askpass/package.py index da8baf16f76..b0fcd8ecbda 100644 --- a/repos/spack_repo/builtin/packages/r_askpass/package.py +++ b/repos/spack_repo/builtin/packages/r_askpass/package.py @@ -23,6 +23,7 @@ class RAskpass(RPackage): license("MIT") + version("1.2.1", sha256="6c2106a74c44a748f2cea795d9686e27a0058a90debcfd8558b62b06aec0c7dd") version("1.2.0", sha256="b922369781934d0ffc8d0c0177e8ace56796c2e6a726f65e460c16f792592cef") version("1.1", sha256="db40827d1bdbb90c0aa2846a2961d3bf9d76ad1b392302f9dd84cc2fd18c001f") diff --git a/repos/spack_repo/builtin/packages/r_asreml/package.py b/repos/spack_repo/builtin/packages/r_asreml/package.py index e7808532922..8fab04af82f 100644 --- a/repos/spack_repo/builtin/packages/r_asreml/package.py +++ b/repos/spack_repo/builtin/packages/r_asreml/package.py @@ -13,6 +13,13 @@ class RAsreml(RPackage): """ASReml-R is a statistical package that fits linear mixed models using Residual Maximum Likelihood (REML) in the R environment.""" + # NOTES + # Annoyingly, this doesn't seem to be distributed well. + # When you download a version of asreml-r you get a file named + # the same regardless of the r version requested. + # You're going to need to rename the archive to fit the + # naming pattern below. + homepage = "https://vsni.co.uk/software/asreml-r" manual_download = True @@ -24,18 +31,28 @@ class RAsreml(RPackage): license("UNKNOWN", checked_by="snehring") + requires("target=x86_64: platform=linux", msg="r-asreml is only available for x86_64 linux") + + version( + "4.2.0.393_R45", sha256="a180d47af2f21c09055c1bd0808515bc1b457e196d2f239e9984b38950643b11" + ) + version( + "4.2.0.393_R44", sha256="cc4e3385cb0195a85fd6a5d339a21ce80c7c6731f567d88780db53aeb11cca24" + ) version( - "4.2.0.302_R42", sha256="93196b68a987fd0a8d26fa7463cab60bd35c7be750c4832332945d71907425cd" + "4.2.0.393_R43", sha256="8d5becb56a6a0a32d45cb14548833c861fc95d4ec8139129170193ea05ec1c44" ) version( "4.2.0.302_R43", sha256="0a685521c80e3263ebb852886d3e1bd31213bd83507e7fffca34261ae18523f9" ) - depends_on("r@4.2.0:4.2", type=("build", "run"), when="@4.2.0.302_R42") - depends_on("r@4.3.0:4.3", type=("build", "run"), when="@4.2.0.302_R43") - depends_on("r-data-table", type=("build", "run")) - depends_on("r-ggplot2", type=("build", "run")) - depends_on("r-jsonlite", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("r@4.5", when="@4.2.0.393_R45") + depends_on("r@4.4", when="@4.2.0.393_R44") + depends_on("r@4.3", when="@4.2.0.302_R43:4.2.0.393_R43") + depends_on("r-data-table") + depends_on("r-ggplot2") + depends_on("r-jsonlite") def url_for_version(self, version): return f"file://{os.getcwd()}//asreml_{version}_x86_64-pc-linux-gnu.tar.gz" diff --git a/repos/spack_repo/builtin/packages/r_bamsignals/package.py b/repos/spack_repo/builtin/packages/r_bamsignals/package.py index da6a904e0f8..d997be7f6bd 100644 --- a/repos/spack_repo/builtin/packages/r_bamsignals/package.py +++ b/repos/spack_repo/builtin/packages/r_bamsignals/package.py @@ -17,16 +17,17 @@ class RBamsignals(RPackage): bioc = "bamsignals" - version("1.32.0", commit="34bfc4e8b58e47c3b94347fd2976aeae07fc28c2") - version("1.30.0", commit="aac37dffd6f6876b4626866e3d40bb7af75620fe") - version("1.28.0", commit="27b70be6f73747d9d32054da043f4a37ea55b917") - version("1.26.0", commit="d57643441d04f77db0907637dc9e7cd5bed5842f") - version("1.22.0", commit="5f533969c84212406bcb3ebf725ebb6d77e9947a") - version("1.16.0", commit="dba9a4ae1613d2700f122ade1e9b90ca8fce5657") - version("1.14.0", commit="3107d3a35830e879eeddf127a81016ea1ca9b53d") - version("1.12.1", commit="06b6282df377cf9db58e8016be4ac8ddcc960939") - version("1.10.0", commit="7499312ce71e8680680eda10b49d7dff682fc776") - version("1.8.0", commit="b123b83e8e026c9ec91209d4498aff3e95a5de23") + with default_args(get_full_repo=True): + version("1.32.0", commit="34bfc4e8b58e47c3b94347fd2976aeae07fc28c2") + version("1.30.0", commit="aac37dffd6f6876b4626866e3d40bb7af75620fe") + version("1.28.0", commit="27b70be6f73747d9d32054da043f4a37ea55b917") + version("1.26.0", commit="d57643441d04f77db0907637dc9e7cd5bed5842f") + version("1.22.0", commit="5f533969c84212406bcb3ebf725ebb6d77e9947a") + version("1.16.0", commit="dba9a4ae1613d2700f122ade1e9b90ca8fce5657") + version("1.14.0", commit="3107d3a35830e879eeddf127a81016ea1ca9b53d") + version("1.12.1", commit="06b6282df377cf9db58e8016be4ac8ddcc960939") + version("1.10.0", commit="7499312ce71e8680680eda10b49d7dff682fc776") + version("1.8.0", commit="b123b83e8e026c9ec91209d4498aff3e95a5de23") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_base64enc/package.py b/repos/spack_repo/builtin/packages/r_base64enc/package.py index 8b7c50670ed..b64293ee890 100644 --- a/repos/spack_repo/builtin/packages/r_base64enc/package.py +++ b/repos/spack_repo/builtin/packages/r_base64enc/package.py @@ -17,6 +17,7 @@ class RBase64enc(RPackage): license("GPL-2.0-only OR GPL-3.0-only") + version("0.1-6", sha256="3c7e9d22f7409fa2989008fa6e980c3dd8e2693eb20676acf2470ae7addb0816") version("0.1-3", sha256="6d856d8a364bcdc499a0bf38bfd283b7c743d08f0b288174fba7dbf0a04b688d") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_basilisk/package.py b/repos/spack_repo/builtin/packages/r_basilisk/package.py index c6925c95dcd..b9b10b38fc0 100644 --- a/repos/spack_repo/builtin/packages/r_basilisk/package.py +++ b/repos/spack_repo/builtin/packages/r_basilisk/package.py @@ -20,7 +20,8 @@ class RBasilisk(RPackage): license("GPL-3.0-or-later") - version("1.12.0", commit="26c1c354526eb8d806268427a7c40b31bb89f489") + with default_args(get_full_repo=True): + version("1.12.0", commit="26c1c354526eb8d806268427a7c40b31bb89f489") depends_on("r-reticulate", type=("build", "run")) depends_on("r-dir-expiry", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_basilisk_utils/package.py b/repos/spack_repo/builtin/packages/r_basilisk_utils/package.py index 90bec408728..d2005ed6627 100644 --- a/repos/spack_repo/builtin/packages/r_basilisk_utils/package.py +++ b/repos/spack_repo/builtin/packages/r_basilisk_utils/package.py @@ -22,6 +22,7 @@ class RBasiliskUtils(RPackage): license("GPL-3.0-only") - version("1.12.0", commit="8314f9a72ecc0f20b180431aec93647320de8c2c") + with default_args(get_full_repo=True): + version("1.12.0", commit="8314f9a72ecc0f20b180431aec93647320de8c2c") depends_on("r-dir-expiry", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_bayesfactor/package.py b/repos/spack_repo/builtin/packages/r_bayesfactor/package.py new file mode 100644 index 00000000000..110b49e97a4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/r_bayesfactor/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.r import RPackage + +from spack.package import * + + +class RBayesfactor(RPackage): + """Computation of Bayes Factors for Common Designs. + + A suite of functions for computing various Bayes factors for simple designs, + including contingency tables, one- and two-sample designs, one-way designs, + general ANOVA designs, and linear regression. + """ + + cran = "BayesFactor" + + license("GPL-2.0-only") + + version( + "0.9.12-4.8", sha256="becd30201d6ce57dc1fd742e17881c09a253d5c7ee4c1b5b7b6cae8496326213" + ) + version( + "0.9.12-4.7", sha256="f92720697f8dbda248c7977873d582dc802522851647d563c5bcb1cada4e377d" + ) + + depends_on("cxx", type="build") + + with default_args(type=("build", "run")): + depends_on("r@3.2.0:") + depends_on("r-coda") + depends_on("r-matrix@1.1-1:") + + depends_on("r-pbapply") + depends_on("r-mvtnorm") + depends_on("r-stringr") + depends_on("r-matrixmodels") + depends_on("r-rcpp@1.1.1:", when="@0.9.12-4.8:") + depends_on("r-rcpp@0.11.2:") + depends_on("r-hypergeo") + depends_on("r-rcppeigen@0.3.2.2.0:") diff --git a/repos/spack_repo/builtin/packages/r_bayesm/package.py b/repos/spack_repo/builtin/packages/r_bayesm/package.py index b658e4d2ec5..25f755bbb9f 100644 --- a/repos/spack_repo/builtin/packages/r_bayesm/package.py +++ b/repos/spack_repo/builtin/packages/r_bayesm/package.py @@ -42,6 +42,8 @@ class RBayesm(RPackage): version("3.1-1", sha256="4854517dec30ab7c994de862aae1998c2d0c5e71265fd9eb7ed36891d4676078") version("3.1-0.1", sha256="5879823b7fb6e6df0c0fe98faabc1044a4149bb65989062df4ade64e19d26411") + depends_on("cxx", type="build") # generated + depends_on("r@3.2.0:", type=("build", "run")) depends_on("r-rcpp@0.12.0:", type=("build", "run")) depends_on("r-rcpparmadillo", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_bayesplot/package.py b/repos/spack_repo/builtin/packages/r_bayesplot/package.py index 846d7022fde..984d372109c 100644 --- a/repos/spack_repo/builtin/packages/r_bayesplot/package.py +++ b/repos/spack_repo/builtin/packages/r_bayesplot/package.py @@ -23,23 +23,28 @@ class RBayesplot(RPackage): license("GPL-3.0-or-later") + version("1.15.0", sha256="114a99322fea66e3db911a3ea9d9272ad8aa7d247991c8fe5d4fb6aa2629479c") + version("1.14.0", sha256="37d657a39d7115c76d7a86b8daca6160bc5caaa988dd9f9cfe1f51873b09724a") version("1.11.1", sha256="4f71e67391e0135acd3e890989b87025f3f8160242f532a8e1a0ed74ed0f3830") version("1.10.0", sha256="bb4cb92b1ae4cf8ae5f4b5cb092aba34af3d820d137e1f2265cca8f3e85113ff") version("1.9.0", sha256="0a81a4b99cf781334e57cfc3c469fad8b932a68204016a3bbca33cab4e2a1e43") version("1.8.1", sha256="d8d74201ea91fa5438714686ca22a947ec9375b6c12b0cfef010c57104b1aa2a") version("1.8.0", sha256="a605f9929e681593a3ef3ca9c836e713314994aaea00f359f71cfc42d151c948") + depends_on("r@4.1.0:", type=("build", "run"), when="@1.14:") depends_on("r@3.1.0:", type=("build", "run")) depends_on("r-dplyr@0.8.0:", type=("build", "run")) - depends_on("r-ggplot2@3.0.0:", type=("build", "run")) depends_on("r-ggplot2@3.4.0:", type=("build", "run"), when="@1.11.0:") - depends_on("r-ggridges", type=("build", "run")) + depends_on("r-ggplot2@3.0.0:", type=("build", "run")) depends_on("r-ggridges@0.5.5:", type=("build", "run"), when="@1.11.1:") + depends_on("r-ggridges", type=("build", "run")) depends_on("r-glue", type=("build", "run")) depends_on("r-posterior", type=("build", "run"), when="@1.9.0:") depends_on("r-reshape2", type=("build", "run")) depends_on("r-rlang@0.3.0:", type=("build", "run")) - depends_on("r-tibble", type=("build", "run")) depends_on("r-tibble@2.0.0:", type=("build", "run"), when="@1.9.0:") + depends_on("r-tibble", type=("build", "run")) + depends_on("r-tidyr", type=("build", "run"), when="@1.12:") depends_on("r-tidyselect", type=("build", "run")) + depends_on("pandoc@1.12.3:", when="@1.9.0:") diff --git a/repos/spack_repo/builtin/packages/r_beachmat/package.py b/repos/spack_repo/builtin/packages/r_beachmat/package.py index c184f9c2549..2123ec48ec4 100644 --- a/repos/spack_repo/builtin/packages/r_beachmat/package.py +++ b/repos/spack_repo/builtin/packages/r_beachmat/package.py @@ -18,15 +18,16 @@ class RBeachmat(RPackage): bioc = "beachmat" - version("2.16.0", commit="4cc8e50dcae767a2ef84ffc7a581ea182f05f300") - version("2.14.0", commit="5a4b85f4a22f3447f12d03157ab95de73f6137c6") - version("2.12.0", commit="3e6af145bdcdf0a0b722d8256ba1a38b8a36b2f5") - version("2.10.0", commit="b7cc532d4a5b26d9073135cc9945258ea08e5079") - version("2.6.4", commit="7d9dc6379017d723dda3e8dc9fd1f6de7fd33cdb") - version("2.0.0", commit="2bdac6ce7b636fd16f78641a0bcc2181670107ab") - version("1.4.0", commit="e3b7a21cae0080d077a0d40e35d1d148f088720a") - version("1.2.1", commit="ebae81772045a314e568c2f7d73ea3b27e7bf7d8") - version("1.0.2", commit="6bd57b91d6428ac916f46572d685d3cb01a757f7") + with default_args(get_full_repo=True): + version("2.16.0", commit="4cc8e50dcae767a2ef84ffc7a581ea182f05f300") + version("2.14.0", commit="5a4b85f4a22f3447f12d03157ab95de73f6137c6") + version("2.12.0", commit="3e6af145bdcdf0a0b722d8256ba1a38b8a36b2f5") + version("2.10.0", commit="b7cc532d4a5b26d9073135cc9945258ea08e5079") + version("2.6.4", commit="7d9dc6379017d723dda3e8dc9fd1f6de7fd33cdb") + version("2.0.0", commit="2bdac6ce7b636fd16f78641a0bcc2181670107ab") + version("1.4.0", commit="e3b7a21cae0080d077a0d40e35d1d148f088720a") + version("1.2.1", commit="ebae81772045a314e568c2f7d73ea3b27e7bf7d8") + version("1.0.2", commit="6bd57b91d6428ac916f46572d685d3cb01a757f7") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_bench/package.py b/repos/spack_repo/builtin/packages/r_bench/package.py new file mode 100644 index 00000000000..775a3fded00 --- /dev/null +++ b/repos/spack_repo/builtin/packages/r_bench/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.r import RPackage + +from spack.package import * + + +class RBench(RPackage): + """High Precision Timing of R Expressions.""" + + cran = "bench" + + license("MIT") + + version("1.1.4", sha256="b822f5b7648deecc6b516dcca4e932ce92e65eb166b997b04355218aceb1d083") + + depends_on("c", type="build") + + with default_args(type=("build", "run")): + depends_on("r@4:") + depends_on("r-glue@1.8:") + depends_on("r-pillar@1.10.1:") + depends_on("r-profmem@0.6:") + depends_on("r-rlang@1.1.4:") + depends_on("r-tibble@3.2.1:") diff --git a/repos/spack_repo/builtin/packages/r_bglr/package.py b/repos/spack_repo/builtin/packages/r_bglr/package.py index 64c3de1f847..b6887c205fa 100644 --- a/repos/spack_repo/builtin/packages/r_bglr/package.py +++ b/repos/spack_repo/builtin/packages/r_bglr/package.py @@ -19,6 +19,8 @@ class RBglr(RPackage): version("1.0.9", sha256="440a96f9f502e0d6ecc8c00720d1ccdbab5ee8223e1def6c930edaa9a9de9099") version("1.0.8", sha256="5e969590d80b2f272c02a43b487ab1ffa13af386e0342993e6ac484fc82c9b95") + depends_on("c", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-truncnorm", type=("build", "run")) depends_on("r-mass", type=("build", "run"), when="@1.0.9:") diff --git a/repos/spack_repo/builtin/packages/r_bh/package.py b/repos/spack_repo/builtin/packages/r_bh/package.py index 5eefa9dacdb..722f4f0faed 100644 --- a/repos/spack_repo/builtin/packages/r_bh/package.py +++ b/repos/spack_repo/builtin/packages/r_bh/package.py @@ -27,6 +27,8 @@ class RBh(RPackage): cran = "BH" + version("1.90.0-1", sha256="2e1fafb05938e81073561ae4892dc543ef15807e375e0ea8fa75e3ab79f0281b") + version("1.87.0-1", sha256="59829ae635f42a23289a1c51617f5f972704e1b243b604dad20ef5a812e60393") version("1.84.0-0", sha256="6fb660755f572cd975073d7052075654acf8db12d208954ca223b8e4f77ef1ac") version("1.81.0-1", sha256="f51c8badd6f181e06353314e1d15a6ec1495cc498ee74b6fa4ea8aba6e97ff64") version("1.78.0-0", sha256="3b9e9d07682013e0c06a396dda176b405eab99a7273eca6c40d1b4c4110e8cb3") @@ -35,3 +37,5 @@ class RBh(RPackage): version("1.69.0-1", sha256="a0fd4364b7e368f09c56dec030823f52c16da0787580af7e4615eddeb99baca2") version("1.65.0-1", sha256="82baa78afe8f1edc3c7e84e1c9924321047e14c1e990df9b848407baf3f7cb58") version("1.60.0-2", sha256="e441aede925d760dc0142be77079ebd7a46f2392772b875cde6ca567dd49c48c") + + depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_biasedurn/package.py b/repos/spack_repo/builtin/packages/r_biasedurn/package.py index 535c2cc53ae..a3e989ad969 100644 --- a/repos/spack_repo/builtin/packages/r_biasedurn/package.py +++ b/repos/spack_repo/builtin/packages/r_biasedurn/package.py @@ -23,3 +23,5 @@ class RBiasedurn(RPackage): version("2.0.9", sha256="bac62bbbc3e2417772f8784996a6c2d0857adb42e86e46b1a9703b187a406b09") version("2.0.8", sha256="205e7f8da8fba76fbf4bd9d12a027599b685dedecc818aad39de5c51dc47b856") version("1.07", sha256="2377c2e59d68e758a566452d7e07e88663ae61a182b9ee455d8b4269dda3228e") + + depends_on("cxx", type="build") diff --git a/repos/spack_repo/builtin/packages/r_bigalgebra/package.py b/repos/spack_repo/builtin/packages/r_bigalgebra/package.py index 8b0e601a0b7..3f4bf86b585 100644 --- a/repos/spack_repo/builtin/packages/r_bigalgebra/package.py +++ b/repos/spack_repo/builtin/packages/r_bigalgebra/package.py @@ -29,6 +29,10 @@ class RBigalgebra(RPackage): version("1.0.0", sha256="f186b603bd660be0cc5b7a52c943e23e92fef264f0bc96a8858e38df6cfc4085") version("0.8.4.2", sha256="29962468cbfa6416f8628563d5ed8c9f76089190311ff1c618f099ee8d9eea75") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r-bigmemory@4.0.0:", type=("build", "run")) depends_on("r-bh", type=("build", "run")) depends_on("r-rcpp", type=("build", "run"), when="@1.0.0:") diff --git a/repos/spack_repo/builtin/packages/r_biglm/package.py b/repos/spack_repo/builtin/packages/r_biglm/package.py index 7c88f99f6f9..8487ae782f3 100644 --- a/repos/spack_repo/builtin/packages/r_biglm/package.py +++ b/repos/spack_repo/builtin/packages/r_biglm/package.py @@ -17,4 +17,7 @@ class RBiglm(RPackage): version("0.9-3", sha256="805d483dc58c041f1616267abeb39cecaaf7271a34e90668a5439383bf9a0d58") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r-dbi", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_bigmemory/package.py b/repos/spack_repo/builtin/packages/r_bigmemory/package.py index a614151f71b..c6a83f38387 100644 --- a/repos/spack_repo/builtin/packages/r_bigmemory/package.py +++ b/repos/spack_repo/builtin/packages/r_bigmemory/package.py @@ -23,6 +23,8 @@ class RBigmemory(RPackage): version("4.6.1", sha256="b56e157c87ed6c4fc69d4cb9c697ae9a2001726e776e41aa7c48b35327b65141") version("4.5.36", sha256="18c67fbe6344b2f8223456c4f19ceebcf6c1166255eab81311001fd67a45ef0e") + depends_on("cxx", type="build") # generated + depends_on("r@3.2.0:", type=("build", "run")) depends_on("r-bigmemory-sri", type=("build", "run")) depends_on("r-rcpp", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_bindrcpp/package.py b/repos/spack_repo/builtin/packages/r_bindrcpp/package.py index 8df7dee06e8..1b4cf49c0a1 100644 --- a/repos/spack_repo/builtin/packages/r_bindrcpp/package.py +++ b/repos/spack_repo/builtin/packages/r_bindrcpp/package.py @@ -21,6 +21,8 @@ class RBindrcpp(RPackage): version("0.2.2", sha256="48130709eba9d133679a0e959e49a7b14acbce4f47c1e15c4ab46bd9e48ae467") version("0.2", sha256="d0efa1313cb8148880f7902a4267de1dcedae916f28d9a0ef5911f44bf103450") + depends_on("cxx", type="build") # generated + depends_on("r-rcpp@0.12.16:", type=("build", "run")) depends_on("r-bindr@0.1.1:", type=("build", "run")) depends_on("r-plogr", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_biobase/package.py b/repos/spack_repo/builtin/packages/r_biobase/package.py index 64b58449bc9..9380182a612 100644 --- a/repos/spack_repo/builtin/packages/r_biobase/package.py +++ b/repos/spack_repo/builtin/packages/r_biobase/package.py @@ -15,16 +15,20 @@ class RBiobase(RPackage): bioc = "Biobase" - version("2.60.0", commit="8dc10d2d26dc0847740ff2b4f16cc1ae2e936464") - version("2.58.0", commit="767f2f33f158f233616178e12ce08cdb03d2a5a2") - version("2.56.0", commit="3b2dd91b333677c2f27257c7624014a55e73c52b") - version("2.54.0", commit="8215d76ce44899e6d10fe8a2f503821a94ef6b40") - version("2.50.0", commit="9927f90d0676382f2f99e099d8d2c8e2e6f1b4de") - version("2.44.0", commit="bde2077f66047986297ec35a688751cdce150dd3") - version("2.42.0", commit="3e5bd466b99e3cc4af1b0c3b32687fa56d6f8e4d") - version("2.40.0", commit="6555edbbcb8a04185ef402bfdea7ed8ac72513a5") - version("2.38.0", commit="83f89829e0278ac014b0bc6664e621ac147ba424") - version("2.36.2", commit="15f50912f3fa08ccb15c33b7baebe6b8a59ce075") + with default_args(get_full_repo=True): + version("2.68.0", commit="9fd33eac9ba400994ea1786c3d9b2ea3be5b71ee") + version("2.60.0", commit="8dc10d2d26dc0847740ff2b4f16cc1ae2e936464") + version("2.58.0", commit="767f2f33f158f233616178e12ce08cdb03d2a5a2") + version("2.56.0", commit="3b2dd91b333677c2f27257c7624014a55e73c52b") + version("2.54.0", commit="8215d76ce44899e6d10fe8a2f503821a94ef6b40") + version("2.50.0", commit="9927f90d0676382f2f99e099d8d2c8e2e6f1b4de") + version("2.44.0", commit="bde2077f66047986297ec35a688751cdce150dd3") + version("2.42.0", commit="3e5bd466b99e3cc4af1b0c3b32687fa56d6f8e4d") + version("2.40.0", commit="6555edbbcb8a04185ef402bfdea7ed8ac72513a5") + version("2.38.0", commit="83f89829e0278ac014b0bc6664e621ac147ba424") + version("2.36.2", commit="15f50912f3fa08ccb15c33b7baebe6b8a59ce075") + + conflicts("r@4.5.0:", when="@:2.64.0") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_biocfilecache/package.py b/repos/spack_repo/builtin/packages/r_biocfilecache/package.py index ecc41ba09ff..78348a224d2 100644 --- a/repos/spack_repo/builtin/packages/r_biocfilecache/package.py +++ b/repos/spack_repo/builtin/packages/r_biocfilecache/package.py @@ -17,16 +17,17 @@ class RBiocfilecache(RPackage): bioc = "BiocFileCache" - version("2.8.0", commit="d088b3224bcee4661d954c77fe38ba8c45ecc51a") - version("2.6.0", commit="f5b8368c1402b15e8db8eab59217f1176e902e6f") - version("2.4.0", commit="2c00eee40d95fddad223f115f959b09e1a14f75d") - version("2.2.1", commit="cc912123408803193bf37395f4d18baa8dcd6f47") - version("1.14.0", commit="cdcde4b59ae73dda12aa225948dbd0a058d9be6d") - version("1.8.0", commit="0e3542b6aae849b01240d8055a48da1b267bd5a0") - version("1.6.0", commit="c2de6c1cdef6294e5d0adea31e4ebf25865742ba") - version("1.4.0", commit="a2c473d17f78899c7899b9638faea8c30735eb80") - version("1.2.3", commit="d78bf5b46c8a329f5ddef879fe51230444bc42f8") - version("1.0.1", commit="dbf4e8dd4d8d9f475066cd033481efe95c56df75") + with default_args(get_full_repo=True): + version("2.8.0", commit="d088b3224bcee4661d954c77fe38ba8c45ecc51a") + version("2.6.0", commit="f5b8368c1402b15e8db8eab59217f1176e902e6f") + version("2.4.0", commit="2c00eee40d95fddad223f115f959b09e1a14f75d") + version("2.2.1", commit="cc912123408803193bf37395f4d18baa8dcd6f47") + version("1.14.0", commit="cdcde4b59ae73dda12aa225948dbd0a058d9be6d") + version("1.8.0", commit="0e3542b6aae849b01240d8055a48da1b267bd5a0") + version("1.6.0", commit="c2de6c1cdef6294e5d0adea31e4ebf25865742ba") + version("1.4.0", commit="a2c473d17f78899c7899b9638faea8c30735eb80") + version("1.2.3", commit="d78bf5b46c8a329f5ddef879fe51230444bc42f8") + version("1.0.1", commit="dbf4e8dd4d8d9f475066cd033481efe95c56df75") depends_on("r@3.4.0:", type=("build", "run")) depends_on("r-dplyr", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_biocgenerics/package.py b/repos/spack_repo/builtin/packages/r_biocgenerics/package.py index 13171f9ceac..150ddf6834e 100644 --- a/repos/spack_repo/builtin/packages/r_biocgenerics/package.py +++ b/repos/spack_repo/builtin/packages/r_biocgenerics/package.py @@ -14,17 +14,18 @@ class RBiocgenerics(RPackage): bioc = "BiocGenerics" - version("0.46.0", commit="a90f0c5976a24417e47e009ba602fc98515ac9ab") - version("0.44.0", commit="d7cd9c19958bd8d4573d980494188fa15ab16e45") - version("0.42.0", commit="3582d47b836387afc08157f3d6a5013fd64334ed") - version("0.40.0", commit="0bc1e0ed4d20c7101cd782a14f6373e27478acfc") - version("0.36.0", commit="0d5d169d7d64d648a22f9043837c93bc784e71ed") - version("0.34.0", commit="f7c2020b6fb06ade6d70b4de17672735edfa45df") - version("0.30.0", commit="fc7c3af4a5635a30988a062ed09332c13ca1d1a8") - version("0.28.0", commit="041fc496504f2ab1d4d863fffb23372db214394b") - version("0.26.0", commit="5b2a6df639e48c3cd53789e0b174aec9dda6b67d") - version("0.24.0", commit="3db111e8c1f876267da89f4f0c5406a9d5c31cd1") - version("0.22.1", commit="9c90bb8926885289d596a81ff318ee3745cbb6ad") + with default_args(get_full_repo=True): + version("0.46.0", commit="a90f0c5976a24417e47e009ba602fc98515ac9ab") + version("0.44.0", commit="d7cd9c19958bd8d4573d980494188fa15ab16e45") + version("0.42.0", commit="3582d47b836387afc08157f3d6a5013fd64334ed") + version("0.40.0", commit="0bc1e0ed4d20c7101cd782a14f6373e27478acfc") + version("0.36.0", commit="0d5d169d7d64d648a22f9043837c93bc784e71ed") + version("0.34.0", commit="f7c2020b6fb06ade6d70b4de17672735edfa45df") + version("0.30.0", commit="fc7c3af4a5635a30988a062ed09332c13ca1d1a8") + version("0.28.0", commit="041fc496504f2ab1d4d863fffb23372db214394b") + version("0.26.0", commit="5b2a6df639e48c3cd53789e0b174aec9dda6b67d") + version("0.24.0", commit="3db111e8c1f876267da89f4f0c5406a9d5c31cd1") + version("0.22.1", commit="9c90bb8926885289d596a81ff318ee3745cbb6ad") depends_on("r@3.6.0:", type=("build", "run"), when="@0.30.0:") depends_on("r@4.0.0:", type=("build", "run"), when="@0.36.0:") diff --git a/repos/spack_repo/builtin/packages/r_biocinstaller/package.py b/repos/spack_repo/builtin/packages/r_biocinstaller/package.py index 814131ad0d6..ab85a4e8a53 100644 --- a/repos/spack_repo/builtin/packages/r_biocinstaller/package.py +++ b/repos/spack_repo/builtin/packages/r_biocinstaller/package.py @@ -15,11 +15,12 @@ class RBiocinstaller(RPackage): bioc = "BiocInstaller" - version("1.33.1", commit="6193f31c18e7e64d91e0e15ed0ba6924eda1416f") - version("1.32.1", commit="4c2a39e1cae470af3a5cf1491715f272b70f4bb4") - version("1.30.0", commit="27bcb7a378cb5d8b5d23b7b840340463f7e090bc") - version("1.28.0", commit="7261763529a0a1f730cde8a1bbdbf454c3e25603") - version("1.26.1", commit="9049b82a77aefa98e3f8e4dd7068317505d70e98") + with default_args(get_full_repo=True): + version("1.33.1", commit="6193f31c18e7e64d91e0e15ed0ba6924eda1416f") + version("1.32.1", commit="4c2a39e1cae470af3a5cf1491715f272b70f4bb4") + version("1.30.0", commit="27bcb7a378cb5d8b5d23b7b840340463f7e090bc") + version("1.28.0", commit="7261763529a0a1f730cde8a1bbdbf454c3e25603") + version("1.26.1", commit="9049b82a77aefa98e3f8e4dd7068317505d70e98") depends_on("r@3.4.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@1.30.0:") diff --git a/repos/spack_repo/builtin/packages/r_biocio/package.py b/repos/spack_repo/builtin/packages/r_biocio/package.py index 7be186a1e23..322999d1a11 100644 --- a/repos/spack_repo/builtin/packages/r_biocio/package.py +++ b/repos/spack_repo/builtin/packages/r_biocio/package.py @@ -23,10 +23,11 @@ class RBiocio(RPackage): bioc = "BiocIO" - version("1.10.0", commit="1368ff1a7ddbb62515a87a88d7ec39981de557d5") - version("1.8.0", commit="4a719fa41e014b7b948f7b245e581ede6a04eda1") - version("1.6.0", commit="60c8aa1a961e43bf0ee5d563a6d9fcec84f7f8f8") - version("1.4.0", commit="c335932526a38c75dbfa4970c1d90b8a21466d37") + with default_args(get_full_repo=True): + version("1.10.0", commit="1368ff1a7ddbb62515a87a88d7ec39981de557d5") + version("1.8.0", commit="4a719fa41e014b7b948f7b245e581ede6a04eda1") + version("1.6.0", commit="60c8aa1a961e43bf0ee5d563a6d9fcec84f7f8f8") + version("1.4.0", commit="c335932526a38c75dbfa4970c1d90b8a21466d37") depends_on("r@4.0.0:", type=("build", "run")) depends_on("r@4.0:", type=("build", "run"), when="@1.8.0:") diff --git a/repos/spack_repo/builtin/packages/r_biocneighbors/package.py b/repos/spack_repo/builtin/packages/r_biocneighbors/package.py index 25cf758a4a5..13faae8852a 100644 --- a/repos/spack_repo/builtin/packages/r_biocneighbors/package.py +++ b/repos/spack_repo/builtin/packages/r_biocneighbors/package.py @@ -22,13 +22,14 @@ class RBiocneighbors(RPackage): bioc = "BiocNeighbors" - version("1.18.0", commit="4b19ef2a76baa0b001c426bad540ab9295bec78e") - version("1.16.0", commit="3b227beead424314aab5ef847222f8f4243c684f") - version("1.14.0", commit="670a1bd4d82636d28fbff50cea2157e16bb1a858") - version("1.12.0", commit="3c8a290f75adc944b408e6e77a36f3a0c1509c4c") - version("1.8.2", commit="889bc91f8cb45d210b47ae5c0b9cfb86fb071ca2") - version("1.2.0", commit="f754c6300f835142536a4594ddf750481e0fe273") - version("1.0.0", commit="e252fc04b6d22097f2c5f74406e77d85e7060770") + with default_args(get_full_repo=True): + version("1.18.0", commit="4b19ef2a76baa0b001c426bad540ab9295bec78e") + version("1.16.0", commit="3b227beead424314aab5ef847222f8f4243c684f") + version("1.14.0", commit="670a1bd4d82636d28fbff50cea2157e16bb1a858") + version("1.12.0", commit="3c8a290f75adc944b408e6e77a36f3a0c1509c4c") + version("1.8.2", commit="889bc91f8cb45d210b47ae5c0b9cfb86fb071ca2") + version("1.2.0", commit="f754c6300f835142536a4594ddf750481e0fe273") + version("1.0.0", commit="e252fc04b6d22097f2c5f74406e77d85e7060770") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_biocparallel/package.py b/repos/spack_repo/builtin/packages/r_biocparallel/package.py index c1cea826e91..80431dd32ea 100644 --- a/repos/spack_repo/builtin/packages/r_biocparallel/package.py +++ b/repos/spack_repo/builtin/packages/r_biocparallel/package.py @@ -16,17 +16,18 @@ class RBiocparallel(RPackage): bioc = "BiocParallel" - version("1.34.0", commit="f3bbc0a2d38da034c50ca1e4704fc4ee99a2dc9e") - version("1.32.1", commit="6c85dbad596a74a6d3022173a4a11c6b81a4a2c2") - version("1.30.4", commit="1229ebe9f6d8305f9f61e562464f83f9ba86e699") - version("1.30.2", commit="e7e109f7a94dbfbc50f926be030c7ad8c1a053db") - version("1.28.3", commit="2f9d88ad83659939e7911d49c2d24d2cd599c7cc") - version("1.24.1", commit="f713caa4314ec0ddeba7fe0eb599ad417efb413f") - version("1.18.1", commit="348264af782d7dcd41a1879400f348f836767f6e") - version("1.16.6", commit="7f7a54c47f4949b600b9fd568289a519496bc4d4") - version("1.14.2", commit="1d5a44960b19e9dbbca04c7290c8c58b0a7fc299") - version("1.12.0", commit="2143a9addceed0151a27b95c70aadd2add5cbace") - version("1.10.1", commit="a76c58cf99fd585ba5ea33065649e68f1afe0a7d") + with default_args(get_full_repo=True): + version("1.34.0", commit="f3bbc0a2d38da034c50ca1e4704fc4ee99a2dc9e") + version("1.32.1", commit="6c85dbad596a74a6d3022173a4a11c6b81a4a2c2") + version("1.30.4", commit="1229ebe9f6d8305f9f61e562464f83f9ba86e699") + version("1.30.2", commit="e7e109f7a94dbfbc50f926be030c7ad8c1a053db") + version("1.28.3", commit="2f9d88ad83659939e7911d49c2d24d2cd599c7cc") + version("1.24.1", commit="f713caa4314ec0ddeba7fe0eb599ad417efb413f") + version("1.18.1", commit="348264af782d7dcd41a1879400f348f836767f6e") + version("1.16.6", commit="7f7a54c47f4949b600b9fd568289a519496bc4d4") + version("1.14.2", commit="1d5a44960b19e9dbbca04c7290c8c58b0a7fc299") + version("1.12.0", commit="2143a9addceed0151a27b95c70aadd2add5cbace") + version("1.10.1", commit="a76c58cf99fd585ba5ea33065649e68f1afe0a7d") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_biocsingular/package.py b/repos/spack_repo/builtin/packages/r_biocsingular/package.py index 11ec822f9bc..8ab98d188a1 100644 --- a/repos/spack_repo/builtin/packages/r_biocsingular/package.py +++ b/repos/spack_repo/builtin/packages/r_biocsingular/package.py @@ -18,12 +18,13 @@ class RBiocsingular(RPackage): bioc = "BiocSingular" - version("1.16.0", commit="0db9a691d4eb21551c532d8bde8f64dcc19b6c66") - version("1.14.0", commit="6dc42b30110e498f6694f18037f991c1006c71b7") - version("1.12.0", commit="7d1b8f4954e9e6f2c30a5111cdab9aabc8bcc3a6") - version("1.10.0", commit="6615ae8cb124aba6507447c1081bd2eba655e57d") - version("1.6.0", commit="11baf1080d6f791439cd5d97357589d6451643d9") - version("1.0.0", commit="d2b091c072d0312698c9bb6611eb1bdf8aebf833") + with default_args(get_full_repo=True): + version("1.16.0", commit="0db9a691d4eb21551c532d8bde8f64dcc19b6c66") + version("1.14.0", commit="6dc42b30110e498f6694f18037f991c1006c71b7") + version("1.12.0", commit="7d1b8f4954e9e6f2c30a5111cdab9aabc8bcc3a6") + version("1.10.0", commit="6615ae8cb124aba6507447c1081bd2eba655e57d") + version("1.6.0", commit="11baf1080d6f791439cd5d97357589d6451643d9") + version("1.0.0", commit="d2b091c072d0312698c9bb6611eb1bdf8aebf833") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_biocstyle/package.py b/repos/spack_repo/builtin/packages/r_biocstyle/package.py index ade427f33f4..3134924540f 100644 --- a/repos/spack_repo/builtin/packages/r_biocstyle/package.py +++ b/repos/spack_repo/builtin/packages/r_biocstyle/package.py @@ -15,16 +15,17 @@ class RBiocstyle(RPackage): bioc = "BiocStyle" - version("2.28.0", commit="b358aa5d3f9c68629e9abf50ffceccbf77226ea8") - version("2.26.0", commit="add035498bdce76d71a0afa22a063c2d8e5588bc") - version("2.24.0", commit="53095b534b7e6c80a33a67b5f2db0db8f00db902") - version("2.22.0", commit="86250b637afa3a3463fac939b99c0402b47876ea") - version("2.18.1", commit="956f0654e8e18882ba09305742401128c9c7d47d") - version("2.12.0", commit="0fba3fe6e6a38504f9aadcd3dc95bb83d7e92498") - version("2.10.0", commit="8fc946044c6b6a8a3104ddbc546baed49ee3aa70") - version("2.8.2", commit="3210c19ec1e5e0ed8d5a2d31da990aa47b42dbd8") - version("2.6.1", commit="5ff52cbb439a45575d0f58c4f7a83195a8b7337b") - version("2.4.1", commit="ef10764b68ac23a3a7a8ec3b6a6436187309c138") + with default_args(get_full_repo=True): + version("2.28.0", commit="b358aa5d3f9c68629e9abf50ffceccbf77226ea8") + version("2.26.0", commit="add035498bdce76d71a0afa22a063c2d8e5588bc") + version("2.24.0", commit="53095b534b7e6c80a33a67b5f2db0db8f00db902") + version("2.22.0", commit="86250b637afa3a3463fac939b99c0402b47876ea") + version("2.18.1", commit="956f0654e8e18882ba09305742401128c9c7d47d") + version("2.12.0", commit="0fba3fe6e6a38504f9aadcd3dc95bb83d7e92498") + version("2.10.0", commit="8fc946044c6b6a8a3104ddbc546baed49ee3aa70") + version("2.8.2", commit="3210c19ec1e5e0ed8d5a2d31da990aa47b42dbd8") + version("2.6.1", commit="5ff52cbb439a45575d0f58c4f7a83195a8b7337b") + version("2.4.1", commit="ef10764b68ac23a3a7a8ec3b6a6436187309c138") depends_on("r+X", type=("build", "run")) depends_on("r-bookdown", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_biocversion/package.py b/repos/spack_repo/builtin/packages/r_biocversion/package.py index 2b6a02106f7..e7ebdb06984 100644 --- a/repos/spack_repo/builtin/packages/r_biocversion/package.py +++ b/repos/spack_repo/builtin/packages/r_biocversion/package.py @@ -15,11 +15,12 @@ class RBiocversion(RPackage): bioc = "BiocVersion" - version("3.17.1", commit="a2d0c4c489be1cafdb51bf8d205161429b09ac7f") - version("3.16.0", commit="c681e06fe30ea6815f958c1a3c74c090863680ba") - version("3.15.2", commit="818ab03b6a3551993b712e3702126040f9fb7600") - version("3.14.0", commit="aa56d93d0ea5dcdbf301f120502981740fd91e1e") - version("3.12.0", commit="23b971963c6b73550a7e330dab5a046d58ce0223") + with default_args(get_full_repo=True): + version("3.17.1", commit="a2d0c4c489be1cafdb51bf8d205161429b09ac7f") + version("3.16.0", commit="c681e06fe30ea6815f958c1a3c74c090863680ba") + version("3.15.2", commit="818ab03b6a3551993b712e3702126040f9fb7600") + version("3.14.0", commit="aa56d93d0ea5dcdbf301f120502981740fd91e1e") + version("3.12.0", commit="23b971963c6b73550a7e330dab5a046d58ce0223") depends_on("r@4.0.0:", type=("build", "run")) depends_on("r@4.1.0:", type=("build", "run"), when="@3.14.0:") diff --git a/repos/spack_repo/builtin/packages/r_biomart/package.py b/repos/spack_repo/builtin/packages/r_biomart/package.py index 68a99d5c23f..0d452fab515 100644 --- a/repos/spack_repo/builtin/packages/r_biomart/package.py +++ b/repos/spack_repo/builtin/packages/r_biomart/package.py @@ -25,16 +25,17 @@ class RBiomart(RPackage): bioc = "biomaRt" - version("2.56.0", commit="91ca89eff52e63c225f7e4eb24b765d08faf3ed9") - version("2.54.0", commit="4fb88fb56c684d5678f8288ba05db193e4881758") - version("2.52.0", commit="cf4932ac02686da45ea36ff5137fa63cead8860b") - version("2.50.3", commit="83a519ac13d73dc545cb6aafde5f4b5001e9e08f") - version("2.46.2", commit="90d6abfdfa04259006f7b47efb10271ada76aec1") - version("2.40.5", commit="ed9ddafb0d620168ea8e3ab4884f3457b8525c68") - version("2.38.0", commit="16b997aba19a90a1c5fa64c442b1e7fcff99a658") - version("2.36.1", commit="5634e57e20199f9dc1f8b927eb3893143fc02f4f") - version("2.34.2", commit="a7030915fbc6120cc6812aefdedba423a207459b") - version("2.32.1", commit="f84d74424fa599f6d08f8db4612ca09914a9087f") + with default_args(get_full_repo=True): + version("2.56.0", commit="91ca89eff52e63c225f7e4eb24b765d08faf3ed9") + version("2.54.0", commit="4fb88fb56c684d5678f8288ba05db193e4881758") + version("2.52.0", commit="cf4932ac02686da45ea36ff5137fa63cead8860b") + version("2.50.3", commit="83a519ac13d73dc545cb6aafde5f4b5001e9e08f") + version("2.46.2", commit="90d6abfdfa04259006f7b47efb10271ada76aec1") + version("2.40.5", commit="ed9ddafb0d620168ea8e3ab4884f3457b8525c68") + version("2.38.0", commit="16b997aba19a90a1c5fa64c442b1e7fcff99a658") + version("2.36.1", commit="5634e57e20199f9dc1f8b927eb3893143fc02f4f") + version("2.34.2", commit="a7030915fbc6120cc6812aefdedba423a207459b") + version("2.32.1", commit="f84d74424fa599f6d08f8db4612ca09914a9087f") depends_on("r-xml", type=("build", "run")) depends_on("r-xml@3.99-0.7:", type=("build", "run"), when="@2.52.0:") diff --git a/repos/spack_repo/builtin/packages/r_biomformat/package.py b/repos/spack_repo/builtin/packages/r_biomformat/package.py index a51a74cf98d..f10fd61669a 100644 --- a/repos/spack_repo/builtin/packages/r_biomformat/package.py +++ b/repos/spack_repo/builtin/packages/r_biomformat/package.py @@ -22,16 +22,17 @@ class RBiomformat(RPackage): bioc = "biomformat" - version("1.28.0", commit="9240e78dc378abcf6c62ef8dbf2e60f7241232a3") - version("1.26.0", commit="f851ba2428b57769f6fbb287874bad0dc84dd69c") - version("1.24.0", commit="4e14692dbcc34c3bd51defd74c728df5de9d0829") - version("1.22.0", commit="ab7c6411a038fec010baa72e663f362fd972cb34") - version("1.18.0", commit="dc18859c139f4d76805adb6f01e199573cdd5a8b") - version("1.12.0", commit="6e946123bb59da262cbb0c17dc5ab49328a89d4a") - version("1.10.1", commit="e67c6f4b70201f748fa49a4938e1af0cd0613f09") - version("1.8.0", commit="acd207377b24e4d8310eaff06c16dcfe6c04509a") - version("1.6.0", commit="61fb8c7b34ad561c3c46cacc0dd1957be56da85e") - version("1.4.0", commit="83b4b1883bc56ea93a0a6ca90fc1b18712ef0f1a") + with default_args(get_full_repo=True): + version("1.28.0", commit="9240e78dc378abcf6c62ef8dbf2e60f7241232a3") + version("1.26.0", commit="f851ba2428b57769f6fbb287874bad0dc84dd69c") + version("1.24.0", commit="4e14692dbcc34c3bd51defd74c728df5de9d0829") + version("1.22.0", commit="ab7c6411a038fec010baa72e663f362fd972cb34") + version("1.18.0", commit="dc18859c139f4d76805adb6f01e199573cdd5a8b") + version("1.12.0", commit="6e946123bb59da262cbb0c17dc5ab49328a89d4a") + version("1.10.1", commit="e67c6f4b70201f748fa49a4938e1af0cd0613f09") + version("1.8.0", commit="acd207377b24e4d8310eaff06c16dcfe6c04509a") + version("1.6.0", commit="61fb8c7b34ad561c3c46cacc0dd1957be56da85e") + version("1.4.0", commit="83b4b1883bc56ea93a0a6ca90fc1b18712ef0f1a") depends_on("r@3.2:", type=("build", "run")) depends_on("r-plyr@1.8:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_biostrings/package.py b/repos/spack_repo/builtin/packages/r_biostrings/package.py index 14eee05aeda..8fbabbeaa05 100644 --- a/repos/spack_repo/builtin/packages/r_biostrings/package.py +++ b/repos/spack_repo/builtin/packages/r_biostrings/package.py @@ -16,42 +16,24 @@ class RBiostrings(RPackage): bioc = "Biostrings" - version("2.68.0", commit="f28b7838fb8321a9956506b3d2f4af2740bca124") - version("2.66.0", commit="3470ca7da798971e2c3a595d8dc8d0d86f14dc53") - version("2.64.1", commit="ffe263e958463bd1edb5d5d9316cfd89905be53c") - version("2.64.0", commit="c7ad3c7af607bc8fe4a5e1c37f09e6c9bf70b4f6") - version("2.62.0", commit="53ed287e03d16fa523789af3131c60375ccf587f") - version("2.58.0", commit="0ec1a5455d5e9eebd14b26228906bb04e2abb197") - version("2.52.0", commit="b78fe7c1f3cdbbb7affb1ca7164fe5a1f8b868f5") - version("2.50.2", commit="025e734641a93f6c5d44243297cb4264ea0e34a2") - version("2.48.0", commit="aa3599a7d259d658014d087b86d71ab1deb5f12b") - version("2.46.0", commit="3bf6978c155498b50607d1bb471d1687d185a0fa") - version("2.44.2", commit="e4a2b320fb21c5cab3ece7b3c6fecaedfb1e5200") + with default_args(get_full_repo=True): + version("2.76.0", commit="2e04124cda03d509d857df228153a45c89840284") + version("2.68.0", commit="f28b7838fb8321a9956506b3d2f4af2740bca124") + version("2.66.0", commit="3470ca7da798971e2c3a595d8dc8d0d86f14dc53") + version("2.64.1", commit="ffe263e958463bd1edb5d5d9316cfd89905be53c") + version("2.64.0", commit="c7ad3c7af607bc8fe4a5e1c37f09e6c9bf70b4f6") depends_on("c", type="build") # generated - depends_on("r@2.8.0:", type=("build", "run")) - depends_on("r@3.5.0:", type=("build", "run"), when="@2.50.2:") - depends_on("r@4.0.0:", type=("build", "run"), when="@2.62.0:") - # Older versions do not build with r@4.2: - depends_on("r@:4.1", type=("build", "run"), when="@:2.62.0") - depends_on("r-biocgenerics@0.15.6:", type=("build", "run")) - depends_on("r-biocgenerics@0.31.5:", type=("build", "run"), when="@2.58.0:") - depends_on("r-biocgenerics@0.37.0:", type=("build", "run"), when="@2.62.0:") - depends_on("r-s4vectors@0.13.13:", type=("build", "run")) - depends_on("r-s4vectors@0.17.25:", type=("build", "run"), when="@2.48.0:") - depends_on("r-s4vectors@0.21.13:", type=("build", "run"), when="@2.52.0:") - depends_on("r-s4vectors@0.27.12:", type=("build", "run"), when="@2.58.0:") - depends_on("r-iranges@2.9.18:", type=("build", "run"), when="@2.44.2:") - depends_on("r-iranges@2.13.24:", type=("build", "run"), when="@2.48.0:") - depends_on("r-iranges@2.23.9:", type=("build", "run"), when="@2.58.0:") + depends_on("r@4.0.0:", type=("build", "run")) + depends_on("r-biocgenerics@0.37.0:", type=("build", "run")) + depends_on("r-s4vectors@0.27.12:", type=("build", "run")) + depends_on("r-iranges@2.23.9:", type=("build", "run")) depends_on("r-iranges@2.30.1:", type=("build", "run"), when="@2.64.1:") depends_on("r-iranges@2.31.2:", type=("build", "run"), when="@2.66.0:") - depends_on("r-xvector@0.11.6:", type=("build", "run")) - depends_on("r-xvector@0.19.8:", type=("build", "run"), when="@2.48.0:") - depends_on("r-xvector@0.21.4:", type=("build", "run"), when="@2.50.2:") - depends_on("r-xvector@0.23.2:", type=("build", "run"), when="@2.52.0:") - depends_on("r-xvector@0.29.2:", type=("build", "run"), when="@2.58.0:") + depends_on("r-xvector@0.29.2:", type=("build", "run")) depends_on("r-xvector@0.37.1:", type=("build", "run"), when="@2.66.0:") - depends_on("r-genomeinfodb", type=("build", "run"), when="@2.62.0:") - depends_on("r-crayon", type=("build", "run"), when="@2.58.0:") + depends_on("r-genomeinfodb", type=("build", "run")) + depends_on("r-crayon", type=("build", "run")) + + conflicts("r@4.5.0:", when="@:2.75") diff --git a/repos/spack_repo/builtin/packages/r_biovizbase/package.py b/repos/spack_repo/builtin/packages/r_biovizbase/package.py index 0491c64295b..d64437cd6f9 100644 --- a/repos/spack_repo/builtin/packages/r_biovizbase/package.py +++ b/repos/spack_repo/builtin/packages/r_biovizbase/package.py @@ -17,16 +17,17 @@ class RBiovizbase(RPackage): bioc = "biovizBase" - version("1.48.0", commit="534db77074710dae57ade81844c769fd35a2fa9c") - version("1.46.0", commit="a47060cfb68e3f3b4876114af932823aed5d2d57") - version("1.44.0", commit="a8f05c56c27b278524033cb896a6c97f3ee0081c") - version("1.42.0", commit="f1627b2b567471837daca6e763acfc3e13937461") - version("1.38.0", commit="d0f3362e0ad0e90b4b1d3e47b13ed57907d03403") - version("1.32.0", commit="de044bf236cdcd71214ae7b77689a8f0ab4f5cc8") - version("1.30.1", commit="b6776d0470e2920f71127652f185f68ca1fd2c82") - version("1.28.2", commit="43d09060028665a237b04bfeb9e2575782b08063") - version("1.26.0", commit="640742f48384f01d117b70dc5c64737e97ae9b4b") - version("1.24.0", commit="ae9cd2ff665b74a8f45ed9c1d17fc0a778b4af6c") + with default_args(get_full_repo=True): + version("1.48.0", commit="534db77074710dae57ade81844c769fd35a2fa9c") + version("1.46.0", commit="a47060cfb68e3f3b4876114af932823aed5d2d57") + version("1.44.0", commit="a8f05c56c27b278524033cb896a6c97f3ee0081c") + version("1.42.0", commit="f1627b2b567471837daca6e763acfc3e13937461") + version("1.38.0", commit="d0f3362e0ad0e90b4b1d3e47b13ed57907d03403") + version("1.32.0", commit="de044bf236cdcd71214ae7b77689a8f0ab4f5cc8") + version("1.30.1", commit="b6776d0470e2920f71127652f185f68ca1fd2c82") + version("1.28.2", commit="43d09060028665a237b04bfeb9e2575782b08063") + version("1.26.0", commit="640742f48384f01d117b70dc5c64737e97ae9b4b") + version("1.24.0", commit="ae9cd2ff665b74a8f45ed9c1d17fc0a778b4af6c") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_bit/package.py b/repos/spack_repo/builtin/packages/r_bit/package.py index acc87e644f7..1a6d127ee0a 100644 --- a/repos/spack_repo/builtin/packages/r_bit/package.py +++ b/repos/spack_repo/builtin/packages/r_bit/package.py @@ -19,6 +19,7 @@ class RBit(RPackage): license("GPL-2.0-only OR GPL-3.0-only") + version("4.6.0", sha256="48fe21c5d04c7b724d695eeb60074395c0c631a7fb234e2075de92471445de08") version("4.0.5", sha256="f0f2536a8874b6a30b80baefbc68cb21f0ffbf51f3877bda8038c3f9f354bfbc") version("4.0.4", sha256="e404841fbe4ebefe4ecd4392effe673a8c9fa05f97952c4ce6e2f6159bd2f168") version("1.1-14", sha256="5cbaace1fb643a665a6ca69b90f7a6d624270de82420ca7a44f306753fcef254") @@ -27,3 +28,4 @@ class RBit(RPackage): depends_on("c", type="build") # generated depends_on("r@2.9.2:", type=("build", "run")) + depends_on("r@3.4.0:", type=("build", "run"), when="@4.6:") diff --git a/repos/spack_repo/builtin/packages/r_bit64/package.py b/repos/spack_repo/builtin/packages/r_bit64/package.py index 0d5663d2803..5510f7504f8 100644 --- a/repos/spack_repo/builtin/packages/r_bit64/package.py +++ b/repos/spack_repo/builtin/packages/r_bit64/package.py @@ -26,11 +26,14 @@ class RBit64(RPackage): license("GPL-2.0-only OR GPL-3.0-only") + version("4.6.0-1", sha256="fbc0ce142fc22c9a9fdcbac930a814dfb648563d4b6a77dff739c23cc81319b7") version("4.0.5", sha256="25df6826ea5e93241c4874cad4fa8dadc87a40f4ff74c9107aa12a9e033e1578") version("0.9-7", sha256="7b9aaa7f971198728c3629f9ba1a1b24d53db5c7e459498b0fdf86bbd3dff61f") depends_on("c", type="build") # generated depends_on("r@3.0.1:", type=("build", "run")) + depends_on("r@3.4.0:", type=("build", "run"), when="@4.6:") + depends_on("r-bit@1.1-12:", type=("build", "run")) depends_on("r-bit@4.0.0:", type=("build", "run"), when="@4.0.5:") diff --git a/repos/spack_repo/builtin/packages/r_blavaan/package.py b/repos/spack_repo/builtin/packages/r_blavaan/package.py index ee789d874a1..17294f5da19 100644 --- a/repos/spack_repo/builtin/packages/r_blavaan/package.py +++ b/repos/spack_repo/builtin/packages/r_blavaan/package.py @@ -26,6 +26,8 @@ class RBlavaan(RPackage): version("0.3-18", sha256="373960a22fc741c765e2ad2e0d99c1d4b2162f5f2a230ef314778ef8f433e865") version("0.3-15", sha256="f73ead024bc3b65bdb0c5e5cd5458845158914eb579c07be2fd697a3573ebe6f") + depends_on("cxx", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-lavaan@0.6-5:", type=("build", "run")) depends_on("r-lavaan@0.6-7:", type=("build", "run"), when="@0.3-18:") diff --git a/repos/spack_repo/builtin/packages/r_blob/package.py b/repos/spack_repo/builtin/packages/r_blob/package.py index 42e0555b9e2..d26f048f244 100644 --- a/repos/spack_repo/builtin/packages/r_blob/package.py +++ b/repos/spack_repo/builtin/packages/r_blob/package.py @@ -19,6 +19,7 @@ class RBlob(RPackage): license("MIT") + version("1.3.0", sha256="d4d2aeb8d17683bbfc256a7541e282af9663a752988a21a6ba72a4ab268c7331") version("1.2.4", sha256="d08922ebc4147d930fe4762b1b289935217308c6d3fcaa5ae028ce3f5cf2728f") version("1.2.3", sha256="2d88d683ee3d1b56b332b5c7769979b5d3994b5d9285ea634ec919576da3631b") version("1.2.2", sha256="4976053c65994c769a4c22b4553bea0bd9c623b3b991dbaf023d2a164770c7fa") diff --git a/repos/spack_repo/builtin/packages/r_blockmodeling/package.py b/repos/spack_repo/builtin/packages/r_blockmodeling/package.py index 2a10988f3ad..b5c4890f87d 100644 --- a/repos/spack_repo/builtin/packages/r_blockmodeling/package.py +++ b/repos/spack_repo/builtin/packages/r_blockmodeling/package.py @@ -25,6 +25,9 @@ class RBlockmodeling(RPackage): version("0.3.4", sha256="a269c83669dd5294cff0adddab36bc023db6a276a06b74b1fa94b7e407486987") version("0.3.1", sha256="39e8360400cec6baa920d5589d4e779568bdf2954f7331be0e3cadf22a217d31") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@2.10:", type=("build", "run")) depends_on("r-matrix", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_bluster/package.py b/repos/spack_repo/builtin/packages/r_bluster/package.py index c2224404e5a..4bd64885246 100644 --- a/repos/spack_repo/builtin/packages/r_bluster/package.py +++ b/repos/spack_repo/builtin/packages/r_bluster/package.py @@ -17,9 +17,10 @@ class RBluster(RPackage): bioc = "bluster" - version("1.10.0", commit="32340420e67a184e39238e46143c00151057924c") - version("1.8.0", commit="156115c8960c0b66b2c588d9fd8bbdfe56e5f0be") - version("1.6.0", commit="ff86c7d8d36233e838d4f00e6a4e173e7bf16816") + with default_args(get_full_repo=True): + version("1.10.0", commit="32340420e67a184e39238e46143c00151057924c") + version("1.8.0", commit="156115c8960c0b66b2c588d9fd8bbdfe56e5f0be") + version("1.6.0", commit="ff86c7d8d36233e838d4f00e6a4e173e7bf16816") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_boot/package.py b/repos/spack_repo/builtin/packages/r_boot/package.py index 009d6393568..cdcdfe0ae3f 100644 --- a/repos/spack_repo/builtin/packages/r_boot/package.py +++ b/repos/spack_repo/builtin/packages/r_boot/package.py @@ -18,6 +18,7 @@ class RBoot(RPackage): license("custom") + version("1.3-32", sha256="3a05aced6fea42a5c310c5c6ab7a2019f69f757f5e77c4961183977747136c97") version("1.3-30", sha256="5509d62bd6e6c21b6ef352ab7846d89027bddbfb727fd0cf55da59558bd3fe97") version("1.3-28.1", sha256="d4cde76fcc8ccc7ffa329de69147b66a6a93a10188e89342fd18207b1d02ff53") version("1.3-28", sha256="9f7158fd2714659f590c3955651893dc24bd8f39196bc5a4cc35b0b031744a32") diff --git a/repos/spack_repo/builtin/packages/r_bridgesampling/package.py b/repos/spack_repo/builtin/packages/r_bridgesampling/package.py index fba212e2f75..3c429bbb6e0 100644 --- a/repos/spack_repo/builtin/packages/r_bridgesampling/package.py +++ b/repos/spack_repo/builtin/packages/r_bridgesampling/package.py @@ -20,6 +20,7 @@ class RBridgesampling(RPackage): license("GPL-2.0-or-later") + version("1.2-1", sha256="e85f4fa1d1c226e485b5ffb71b83c6d80d7d6a1083795af3e526b9c87929e998") version("1.1-2", sha256="54ecd39aa2e36d4d521d3d36425f9fe56a3f8547df6048c814c5931d790f3e6b") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_brio/package.py b/repos/spack_repo/builtin/packages/r_brio/package.py index f1223bdf5b9..3e4dd74fa9d 100644 --- a/repos/spack_repo/builtin/packages/r_brio/package.py +++ b/repos/spack_repo/builtin/packages/r_brio/package.py @@ -22,4 +22,6 @@ class RBrio(RPackage): version("1.1.3", sha256="eaa89041856189bee545bf1c42c7920a0bb0f1f70bb477487c467ee3e8fedcc6") version("1.1.0", sha256="6bb3a3b47bea13f1a1e3dcdc8b9f688502643e4b40a481a34aa04a261aabea38") + depends_on("c", type="build") # generated + depends_on("r@3.6:", when="@1.1.4:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_brms/package.py b/repos/spack_repo/builtin/packages/r_brms/package.py index cb7dd6f5cdd..24e0ff69109 100644 --- a/repos/spack_repo/builtin/packages/r_brms/package.py +++ b/repos/spack_repo/builtin/packages/r_brms/package.py @@ -30,6 +30,7 @@ class RBrms(RPackage): license("GPL-2.0-only") + version("2.23.0", sha256="b5f5bb5604ec3f87b3ad99f0da4e6a37d8c5488221e8abe459171340992c37a5") version("2.21.0", sha256="7289ff33c2a4b83584b7fece0a6aa53fd14b5881a467d417fbca5dbf62ec5d58") version("2.19.0", sha256="0e146842c7acfcc6b8273df536eabb5279fb3bf2ae27ce1696f7d838d94fe5c1") version("2.18.0", sha256="63914be03cd1c4e6333317d22d7827ba2dc0414cb0dc88337cf74763ba07e111") @@ -38,13 +39,15 @@ class RBrms(RPackage): version("2.16.1", sha256="749efbd9fb061fe207cf2e729c1387d9a8538b922f12ceec4e82a9f8dd9c1bc4") version("2.15.0", sha256="c11701d1d8758590b74bb845b568b736e4455a81b114c7dfde0b27b7bd1bcc2f") - depends_on("r@3.5.0:", type=("build", "run")) depends_on("r@3.6.0:", type=("build", "run"), when="@2.20.1:") + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-rcpp@0.12.0:", type=("build", "run")) + depends_on("r-rstan@2.29.0:", type=("build", "run"), when="@2.21:") depends_on("r-rstan@2.19.2:", type=("build", "run")) - depends_on("r-rstan@2.29.0:", type=("build", "run"), when="@2.21.0:") depends_on("r-ggplot2@2.0.0:", type=("build", "run")) + depends_on("r-loo@2.8:", type=("build", "run"), when="@2.22:") depends_on("r-loo@2.3.1:", type=("build", "run")) + depends_on("r-posterior@1.6:", type=("build", "run"), when="@2.22:") depends_on("r-posterior@1.0.0:", type=("build", "run"), when="@2.16:") depends_on("r-matrix@1.1-1:", type=("build", "run")) depends_on("r-mgcv@1.8-13:", type=("build", "run")) @@ -62,5 +65,6 @@ class RBrms(RPackage): depends_on("r-abind", type=("build", "run")) depends_on("r-backports", type=("build", "run")) + # Historical dependencies depends_on("r-shinystan@2.4.0:", type=("build", "run"), when="@:2.20.4") depends_on("r-projpred@2.0.0:", type=("build", "run"), when="@:2.16.1") diff --git a/repos/spack_repo/builtin/packages/r_broom/package.py b/repos/spack_repo/builtin/packages/r_broom/package.py index b713be50acb..b8b4ac56a46 100644 --- a/repos/spack_repo/builtin/packages/r_broom/package.py +++ b/repos/spack_repo/builtin/packages/r_broom/package.py @@ -23,6 +23,8 @@ class RBroom(RPackage): license("MIT") + version("1.0.12", sha256="29c483cc0d39d402f4d35415e054cab7733ad8e543629b29cc8f1e26aee0f79b") + version("1.0.10", sha256="5ffabd4890dbe133c20f19feba6c687bcadb878c7a5404e0d088d87710630031") version("1.0.6", sha256="24cf36248dffbde38d3d81befa679e362bfd0526b9843bc536a85452a19fbccf") version("1.0.4", sha256="1d5f11b509786a8a45ffdd137243e24d6445f2944947cbd62a0734a06add0ad6") version("1.0.1", sha256="4b5e5aa485f0e23ed993088fc84159e31a00087e3a12327071dda25193382892") @@ -36,22 +38,26 @@ class RBroom(RPackage): version("0.5.1", sha256="da9e6bf7cb8f960b83309cf107743976cc32b54524675f6471982abe3d1aae2e") version("0.4.2", sha256="9f409413623cf25e7110452e6215353af5114f7044d73af182bd6c10971c5a44") - depends_on("r@3.1:", type=("build", "run")) + depends_on("r@4.1:", type=("build", "run"), when="@1.0.9:") depends_on("r@3.5:", type=("build", "run"), when="@1.0.4:") + depends_on("r@3.1:", type=("build", "run")) depends_on("r-backports", type=("build", "run"), when="@0.5.0:") - depends_on("r-dplyr", type=("build", "run")) + depends_on("r-cli", type=("build", "run"), when="@1.0.8:") depends_on("r-dplyr@1.0.0:", type=("build", "run"), when="@0.7.3:") + depends_on("r-dplyr", type=("build", "run")) depends_on("r-generics@0.0.2:", type=("build", "run"), when="@0.5.1:") depends_on("r-glue", type=("build", "run"), when="@0.7.3:") depends_on("r-lifecycle", type=("build", "run"), when="@1.0.4:") depends_on("r-purrr", type=("build", "run"), when="@0.5.0:") + depends_on("r-rlang@1.1.0:", type=("build", "run"), when="@1.0.8:") depends_on("r-rlang", type=("build", "run"), when="@0.7.3:") depends_on("r-stringr", type=("build", "run")) - depends_on("r-tibble", type=("build", "run"), when="@0.5.0:") depends_on("r-tibble@3.0.0:", type=("build", "run"), when="@0.7.3:") - depends_on("r-tidyr", type=("build", "run")) + depends_on("r-tibble", type=("build", "run"), when="@0.5.0:") depends_on("r-tidyr@1.0.0:", type=("build", "run"), when="@0.7.3:") + depends_on("r-tidyr", type=("build", "run")) + # Historical dependencies depends_on("r-ellipsis", type=("build", "run"), when="@0.7.3:1.0.5") depends_on("r-plyr", type=("build", "run"), when="@:0.4.2") depends_on("r-psych", type=("build", "run"), when="@:0.4.2") diff --git a/repos/spack_repo/builtin/packages/r_bsgenome/package.py b/repos/spack_repo/builtin/packages/r_bsgenome/package.py index 65582e40b95..98bccacde36 100644 --- a/repos/spack_repo/builtin/packages/r_bsgenome/package.py +++ b/repos/spack_repo/builtin/packages/r_bsgenome/package.py @@ -15,16 +15,17 @@ class RBsgenome(RPackage): bioc = "BSgenome" - version("1.68.0", commit="c546020750e900377fbdeae015a01a96d5962d09") - version("1.66.1", commit="d1efdfa8e7242bc0f54cc1c3a9583ea555c924f6") - version("1.64.0", commit="59cdebde613e9702985c003f699f4aea2b0f0e7b") - version("1.62.0", commit="9b1859e11ffa082833f035a45274af6e4e83e863") - version("1.58.0", commit="3a4926e03a7a1d7140a10c1b2bf6090808470145") - version("1.52.0", commit="5398eba1cb56a873b29c04a7ce6858d5d60ff75b") - version("1.50.0", commit="43910755f7477e4fe9bb968f186fddbb2f7355f9") - version("1.48.0", commit="092a1b90482ace329cbd8ca2a338e91449acb93e") - version("1.46.0", commit="bdfbd6d09820993585b8231ddea5e11c99008dc5") - version("1.44.2", commit="105b00588a758d5ec7c347a7dff2756aea4516a0") + with default_args(get_full_repo=True): + version("1.68.0", commit="c546020750e900377fbdeae015a01a96d5962d09") + version("1.66.1", commit="d1efdfa8e7242bc0f54cc1c3a9583ea555c924f6") + version("1.64.0", commit="59cdebde613e9702985c003f699f4aea2b0f0e7b") + version("1.62.0", commit="9b1859e11ffa082833f035a45274af6e4e83e863") + version("1.58.0", commit="3a4926e03a7a1d7140a10c1b2bf6090808470145") + version("1.52.0", commit="5398eba1cb56a873b29c04a7ce6858d5d60ff75b") + version("1.50.0", commit="43910755f7477e4fe9bb968f186fddbb2f7355f9") + version("1.48.0", commit="092a1b90482ace329cbd8ca2a338e91449acb93e") + version("1.46.0", commit="bdfbd6d09820993585b8231ddea5e11c99008dc5") + version("1.44.2", commit="105b00588a758d5ec7c347a7dff2756aea4516a0") depends_on("r@2.8.0:", type=("build", "run")) depends_on("r-biocgenerics@0.13.8:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_bslib/package.py b/repos/spack_repo/builtin/packages/r_bslib/package.py index 709eb2e3c56..f96a97cf375 100644 --- a/repos/spack_repo/builtin/packages/r_bslib/package.py +++ b/repos/spack_repo/builtin/packages/r_bslib/package.py @@ -19,6 +19,8 @@ class RBslib(RPackage): license("MIT") + version("0.10.0", sha256="b4a8d24855e299a4980b8eac0f1b6213d7e16ff8ef1be530d3623565ea5a56d3") + version("0.9.0", sha256="add7a107ff6a3185f68511cfcc45832f018917870eae06a8044f41de84ff0907") version("0.8.0", sha256="fd182ddb1b128691d2b0c12882361732a23d451dbf4052ba70b11257e8d44b03") version("0.4.2", sha256="9a40b7a1bbe409af273e1e940d921ab198ea576548f06f055f552f70ff822f19") version("0.4.1", sha256="4ebd1fc84cd19b414e8f8c13fb95270fc28ede125b6e58b08c574ca8c9e0e62f") @@ -26,20 +28,19 @@ class RBslib(RPackage): version("0.3.1", sha256="5f5cb56e5cab9039a24cd9d70d73b69c2cab5b2f5f37afc15f71dae0339d9849") depends_on("r@2.10:", type=("build", "run")) + depends_on("r-base64enc", type=("build", "run"), when="@0.4.2:") + depends_on("r-cachem", type=("build", "run"), when="@0.4.0:") depends_on("r-fastmap@1.1.1:", type=("build", "run"), when="@0.7.0:") - depends_on("r-htmltools@0.5.2:", type=("build", "run")) - depends_on("r-htmltools@0.5.4:", type=("build", "run"), when="@0.4.2:") - depends_on("r-htmltools@0.5.7:", type=("build", "run"), when="@0.6.0:") depends_on("r-htmltools@0.5.8:", type=("build", "run"), when="@0.7.0:") - depends_on("r-jsonlite", type=("build", "run")) - depends_on("r-sass@0.4.0:", type=("build", "run")) + depends_on("r-htmltools@0.5.7:", type=("build", "run"), when="@0.6.0:") + depends_on("r-htmltools@0.5.4:", type=("build", "run"), when="@0.4.2:") + depends_on("r-htmltools@0.5.2:", type=("build", "run")) depends_on("r-jquerylib@0.1.3:", type=("build", "run")) + depends_on("r-jsonlite", type=("build", "run")) depends_on("r-lifecycle", type=("build", "run"), when="@0.6.0:") - depends_on("r-rlang", type=("build", "run")) - depends_on("r-memoise", type=("build", "run"), when="@0.4.0:") depends_on("r-memoise@2.0.1:", type=("build", "run"), when="@0.4.1:") + depends_on("r-memoise", type=("build", "run"), when="@0.4.0:") depends_on("r-mime", type=("build", "run"), when="@0.4.2:") - depends_on("r-sass@0.4.0:", type=("build", "run"), when="@0.5.0:") + depends_on("r-rlang", type=("build", "run")) depends_on("r-sass@0.4.9:", type=("build", "run"), when="@0.6.2:") - depends_on("r-base64enc", type=("build", "run"), when="@0.4.2:") - depends_on("r-cachem", type=("build", "run"), when="@0.4.0:") + depends_on("r-sass@0.4.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_bsseq/package.py b/repos/spack_repo/builtin/packages/r_bsseq/package.py index 6ddbb21a3d5..03a70071872 100644 --- a/repos/spack_repo/builtin/packages/r_bsseq/package.py +++ b/repos/spack_repo/builtin/packages/r_bsseq/package.py @@ -15,14 +15,15 @@ class RBsseq(RPackage): bioc = "bsseq" - version("1.36.0", commit="5dd72c5a84e1fcc3389ab2a74f8ca14c399ac128") - version("1.34.0", commit="98239c07d74e1362c7ba2a3bf4f6119830fc95dc") - version("1.32.0", commit="a0c1eacbc479c57bd836e885e162c28bbe08e115") - version("1.30.0", commit="7eb5223e9ee02fd08a52be56eaa9316a67c0d66b") - version("1.26.0", commit="fae32292687625012a2938a48c93df55ad4257b5") - version("1.24.4", commit="8fe7a035802055cf14783d2ab92af70c5d5800ed") - version("1.22.0", commit="d4f7301dcd4a03431b0833302b5a79c6f1b186cc") - version("1.20.0", commit="07e398bc38ba903881df9a5d0577cca15788e0cd") + with default_args(get_full_repo=True): + version("1.36.0", commit="5dd72c5a84e1fcc3389ab2a74f8ca14c399ac128") + version("1.34.0", commit="98239c07d74e1362c7ba2a3bf4f6119830fc95dc") + version("1.32.0", commit="a0c1eacbc479c57bd836e885e162c28bbe08e115") + version("1.30.0", commit="7eb5223e9ee02fd08a52be56eaa9316a67c0d66b") + version("1.26.0", commit="fae32292687625012a2938a48c93df55ad4257b5") + version("1.24.4", commit="8fe7a035802055cf14783d2ab92af70c5d5800ed") + version("1.22.0", commit="d4f7301dcd4a03431b0833302b5a79c6f1b186cc") + version("1.20.0", commit="07e398bc38ba903881df9a5d0577cca15788e0cd") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_bumphunter/package.py b/repos/spack_repo/builtin/packages/r_bumphunter/package.py index 7ef86a7b9f6..aa330898739 100644 --- a/repos/spack_repo/builtin/packages/r_bumphunter/package.py +++ b/repos/spack_repo/builtin/packages/r_bumphunter/package.py @@ -14,16 +14,17 @@ class RBumphunter(RPackage): bioc = "bumphunter" - version("1.42.0", commit="0eb2808a04920aaba00e1ce3e9dff503596e931f") - version("1.40.0", commit="3de207a3659859737d4c748fc8023694943da43b") - version("1.38.0", commit="06e2fa87b342d48793d0d2f1f7d94a95a6613995") - version("1.36.0", commit="db50fcf7798c2eddfe48fd510d081dda82f2ee4e") - version("1.32.0", commit="b7d39c2a6385ca217dceefc918b3ccd5c31bbaa0") - version("1.26.0", commit="606bee8708a0911ced3efb197970b4c9fa52f2fa") - version("1.24.5", commit="29b874033a38e86103b58ef2d4a55f285758147b") - version("1.22.0", commit="fb71b193f4ef7fa12d100441e6eb498765f7afde") - version("1.20.0", commit="c9d8e7ab0c19299988e5d7fa74970312e9a1eac0") - version("1.16.0", commit="1c3ab4d1fd2d75b1586ccef12665960b3602080a") + with default_args(get_full_repo=True): + version("1.42.0", commit="0eb2808a04920aaba00e1ce3e9dff503596e931f") + version("1.40.0", commit="3de207a3659859737d4c748fc8023694943da43b") + version("1.38.0", commit="06e2fa87b342d48793d0d2f1f7d94a95a6613995") + version("1.36.0", commit="db50fcf7798c2eddfe48fd510d081dda82f2ee4e") + version("1.32.0", commit="b7d39c2a6385ca217dceefc918b3ccd5c31bbaa0") + version("1.26.0", commit="606bee8708a0911ced3efb197970b4c9fa52f2fa") + version("1.24.5", commit="29b874033a38e86103b58ef2d4a55f285758147b") + version("1.22.0", commit="fb71b193f4ef7fa12d100441e6eb498765f7afde") + version("1.20.0", commit="c9d8e7ab0c19299988e5d7fa74970312e9a1eac0") + version("1.16.0", commit="1c3ab4d1fd2d75b1586ccef12665960b3602080a") depends_on("r@2.10:", type=("build", "run")) depends_on("r@3.4:", type=("build", "run"), when="@1.20.0:") diff --git a/repos/spack_repo/builtin/packages/r_bwstest/package.py b/repos/spack_repo/builtin/packages/r_bwstest/package.py index 12bc45f86df..febcef1f5b4 100644 --- a/repos/spack_repo/builtin/packages/r_bwstest/package.py +++ b/repos/spack_repo/builtin/packages/r_bwstest/package.py @@ -21,5 +21,7 @@ class RBwstest(RPackage): version("0.2.3", sha256="4bc4cc27fcf0aa60c6497048b74528923aae852c98480900204835a8ebd714b2") version("0.2.2", sha256="faff1dd698f1673a6befacb94d14281077d4c19be035a0a3bf85d77c1dfd5509") + depends_on("cxx", type="build") # generated + depends_on("r-memoise", type=("build", "run")) depends_on("r-rcpp@0.12.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_cairo/package.py b/repos/spack_repo/builtin/packages/r_cairo/package.py index 87ab5ea791d..6943e1f6a32 100644 --- a/repos/spack_repo/builtin/packages/r_cairo/package.py +++ b/repos/spack_repo/builtin/packages/r_cairo/package.py @@ -34,6 +34,8 @@ class RCairo(RPackage): version("1.5-10", sha256="7837f0c384cd49bb3342cb39a916d7a80b02fffbf123913a58014e597f69b5d5") version("1.5-9", sha256="2a867b6cae96671d6bc3acf9334d6615dc01f6ecf1953a27cde8a43c724a38f4") + depends_on("c", type="build") # generated + depends_on("r+X", type=("build", "run")) depends_on("r@2.4.0:", type=("build", "run")) # "The Cairo package requires cairo library 1.2.0 or higher with PNG support enabled" diff --git a/repos/spack_repo/builtin/packages/r_car/package.py b/repos/spack_repo/builtin/packages/r_car/package.py index 8a8c9bdffde..34fc02c9993 100644 --- a/repos/spack_repo/builtin/packages/r_car/package.py +++ b/repos/spack_repo/builtin/packages/r_car/package.py @@ -17,6 +17,8 @@ class RCar(RPackage): license("GPL-2.0-or-later") + version("3.1-5", sha256="27ab23cff7c5c123ffe8a2475b5a3b4d778414a28dde0a59d5cfbbefa08c99fb") + version("3.1-3", sha256="59f2c024395995f662a8f64fe807765fc8507f1d2f7a8ab8a1c4f66a63be49bf") version("3.1-2", sha256="89263491977ac8e9406b2f4b1638bf06c7ddd1b0e0e3ecda4be61420474674c8") version("3.1-1", sha256="8fc55815eed7e46a32b54da9e0bfa4b74a8d082d73d896e3372f2a413b6bd2bc") version("3.1-0", sha256="bd52b4eaea46ce828fccd93445301d06ebd265e2ffff796064875a8c0f0aea21") @@ -29,18 +31,21 @@ class RCar(RPackage): version("2.1-4", sha256="fd39cf1750cb560a66623fea3fa9e6a94fc24e3dc36367aff24df7d0743edb28") version("2.1-2", sha256="8cc3e57f172c8782a08960b508906d3201596a21f4b6c1dab8d4e59353093652") - depends_on("r@3.2.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@3.0-3:") + depends_on("r@3.2.0:", type=("build", "run")) depends_on("r-cardata@3.0-0:", type=("build", "run"), when="@3.0:") depends_on("r-abind", type=("build", "run"), when="@3.0:") + depends_on("r-formula", type=("build", "run"), when="@3.1-3:") depends_on("r-mass", type=("build", "run")) depends_on("r-mgcv", type=("build", "run")) depends_on("r-nnet", type=("build", "run")) depends_on("r-pbkrtest@0.4-4:", type=("build", "run")) depends_on("r-quantreg", type=("build", "run")) - depends_on("r-rio", type=("build", "run"), when="@3.0:3.0-11") - depends_on("r-lme4", type=("build", "run"), when="@3.0:") depends_on("r-lme4@1.1-27.1:", type=("build", "run"), when="@3.0-11:") + depends_on("r-lme4", type=("build", "run"), when="@3.0:") depends_on("r-nlme", type=("build", "run"), when="@3.0:") depends_on("r-scales", type=("build", "run"), when="@3.1-1:") + + # Historical dependencies + depends_on("r-rio", type=("build", "run"), when="@3.0:3.0-11") depends_on("r-maptools", type=("build", "run"), when="@3.0:3.1-0") diff --git a/repos/spack_repo/builtin/packages/r_cardata/package.py b/repos/spack_repo/builtin/packages/r_cardata/package.py index 8321d9bcaed..f131dadb0f8 100644 --- a/repos/spack_repo/builtin/packages/r_cardata/package.py +++ b/repos/spack_repo/builtin/packages/r_cardata/package.py @@ -15,9 +15,11 @@ class RCardata(RPackage): cran = "carData" + version("3.0-6", sha256="b14d5b40b35e5a59c1ec1cdf3cce2cea239b60ff6977a821cca0d6d5b4112551") version("3.0-5", sha256="02e77159b33e3afb8cd9cfab11cf5a996a93175f924b07d991ce44bc6e16451a") version("3.0-4", sha256="cda6f5e3efc1d955a4a0625e9c33f90d49f5455840e88b3bd757129b86044724") version("3.0-2", sha256="3b5c4eff1cc1e456a5331084774503eaa06cf61fb7acf6b9e8a6bfabd5735494") - depends_on("r@3.0:", type=("build", "run")) - depends_on("r@3.5.0:", type=("build", "run"), when="@3.0-4:") + with default_args(type=("build", "run")): + depends_on("r@3.5.0:", when="@3.0-4:") + depends_on("r@3.0:") diff --git a/repos/spack_repo/builtin/packages/r_category/package.py b/repos/spack_repo/builtin/packages/r_category/package.py index b053bcf7c51..27554fa6f18 100644 --- a/repos/spack_repo/builtin/packages/r_category/package.py +++ b/repos/spack_repo/builtin/packages/r_category/package.py @@ -15,16 +15,17 @@ class RCategory(RPackage): bioc = "Category" - version("2.66.0", commit="404c5e4bebeb91b04ac62a821f9eea5610d98b96") - version("2.64.0", commit="b512cbeb22fc50a2f6d767a2eef356fb143a974e") - version("2.62.0", commit="0fe801c0c443aebd5d4cefa8c30e4e7d0931b673") - version("2.60.0", commit="55210d8c539474954d18cf913a219dce883eac2e") - version("2.56.0", commit="ad478caa9d693dbc2770608e79dd852375b9a223") - version("2.50.0", commit="d96f0b29cb778f6697b44d7ba7b0abd7086074a9") - version("2.48.1", commit="941819a3d9dd129f47b4ea00fa74032e405be3a5") - version("2.46.0", commit="c8aeee4dee3fb120f25e0647dd06e895a3ffbc2a") - version("2.44.0", commit="eaba50c1a801ba7983e6ffdf41ab0fc9cfe5a626") - version("2.42.1", commit="382c817a2371671a72f8f949dfb4050361ebabcd") + with default_args(get_full_repo=True): + version("2.66.0", commit="404c5e4bebeb91b04ac62a821f9eea5610d98b96") + version("2.64.0", commit="b512cbeb22fc50a2f6d767a2eef356fb143a974e") + version("2.62.0", commit="0fe801c0c443aebd5d4cefa8c30e4e7d0931b673") + version("2.60.0", commit="55210d8c539474954d18cf913a219dce883eac2e") + version("2.56.0", commit="ad478caa9d693dbc2770608e79dd852375b9a223") + version("2.50.0", commit="d96f0b29cb778f6697b44d7ba7b0abd7086074a9") + version("2.48.1", commit="941819a3d9dd129f47b4ea00fa74032e405be3a5") + version("2.46.0", commit="c8aeee4dee3fb120f25e0647dd06e895a3ffbc2a") + version("2.44.0", commit="eaba50c1a801ba7983e6ffdf41ab0fc9cfe5a626") + version("2.42.1", commit="382c817a2371671a72f8f949dfb4050361ebabcd") depends_on("r-biocgenerics", type=("build", "run")) depends_on("r-annotationdbi", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_catools/package.py b/repos/spack_repo/builtin/packages/r_catools/package.py index b79ce2ec3e9..556ecf586cb 100644 --- a/repos/spack_repo/builtin/packages/r_catools/package.py +++ b/repos/spack_repo/builtin/packages/r_catools/package.py @@ -18,12 +18,15 @@ class RCatools(RPackage): cran = "caTools" + version("1.18.3", sha256="e71b3942a7a239779028b1104c262ec5f70183128638ac7fb649c8d62c0468d8") version("1.18.2", sha256="75d61115afec754b053ed1732cc034f2aeb27b13e6e1932aa0f26bf590cf0293") version("1.18.1", sha256="ffeba4ffbeed5d491bf79b1fde3477f413341e412f77316af20439f54447c9f9") version("1.17.1.2", sha256="69cc542fab5677462b1a768709d0c4a0a0790f5db53e1fe9ae7123787c18726b") version("1.17.1.1", sha256="d53e2c5c77f1bd4744703d7196dbc9b4671a120bbb5b9b3edc45fc57c0650c06") version("1.17.1", sha256="d32a73febf00930355cc00f3e4e71357412e0f163faae6a4bf7f552cacfe9af4") + conflicts("r@4.5.0:", when="@:1.18.2") + depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_champ/package.py b/repos/spack_repo/builtin/packages/r_champ/package.py index 2044887075c..2214edacd2f 100644 --- a/repos/spack_repo/builtin/packages/r_champ/package.py +++ b/repos/spack_repo/builtin/packages/r_champ/package.py @@ -17,11 +17,12 @@ class RChamp(RPackage): bioc = "ChAMP" - version("2.30.0", commit="b6ff6670d239c2517aa57144a793ea93da3c7b42") - version("2.28.0", commit="3d27ac67a738afea8cc9ece6ea1301120e4b48f7") - version("2.26.0", commit="1548910bf53e1e5f7a8d80c83b742a94297d8a34") - version("2.24.0", commit="7ba19da74b61e1c40ced162ba753f0f9b9c7647a") - version("2.20.1", commit="99ea0463bce59f5b06bcc91f479dcd4065074896") + with default_args(get_full_repo=True): + version("2.30.0", commit="b6ff6670d239c2517aa57144a793ea93da3c7b42") + version("2.28.0", commit="3d27ac67a738afea8cc9ece6ea1301120e4b48f7") + version("2.26.0", commit="1548910bf53e1e5f7a8d80c83b742a94297d8a34") + version("2.24.0", commit="7ba19da74b61e1c40ced162ba753f0f9b9c7647a") + version("2.20.1", commit="99ea0463bce59f5b06bcc91f479dcd4065074896") depends_on("r@3.3:", type=("build", "run")) depends_on("r-minfi", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_champdata/package.py b/repos/spack_repo/builtin/packages/r_champdata/package.py index 6597afde78c..1b61bb1e7e3 100644 --- a/repos/spack_repo/builtin/packages/r_champdata/package.py +++ b/repos/spack_repo/builtin/packages/r_champdata/package.py @@ -15,11 +15,12 @@ class RChampdata(RPackage): bioc = "ChAMPdata" - version("2.32.0", commit="98a94978001b6a28543257e72a036c43d61e67ef") - version("2.30.0", commit="6e05b8f7b004b1a5185ec4b387c32725e8bd95cb") - version("2.28.0", commit="601555bf599828b6cfa125beffa51aebccdc8503") - version("2.26.0", commit="ea7882707921af33eefab5133a1ccd4a409f045d") - version("2.22.0", commit="eeedd4c477fac79f00743da8ff7da064221c5f3d") + with default_args(get_full_repo=True): + version("2.32.0", commit="98a94978001b6a28543257e72a036c43d61e67ef") + version("2.30.0", commit="6e05b8f7b004b1a5185ec4b387c32725e8bd95cb") + version("2.28.0", commit="601555bf599828b6cfa125beffa51aebccdc8503") + version("2.26.0", commit="ea7882707921af33eefab5133a1ccd4a409f045d") + version("2.22.0", commit="eeedd4c477fac79f00743da8ff7da064221c5f3d") depends_on("r@3.3:", type=("build", "run")) depends_on("r-genomicranges@1.22.4:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_checkmate/package.py b/repos/spack_repo/builtin/packages/r_checkmate/package.py index 6f5c8078db9..5a142133aff 100644 --- a/repos/spack_repo/builtin/packages/r_checkmate/package.py +++ b/repos/spack_repo/builtin/packages/r_checkmate/package.py @@ -18,11 +18,15 @@ class RCheckmate(RPackage): license("BSD-3-Clause") + version("2.3.4", sha256="95e1068dee07d95c5e616dfd66e622cf245821acd358a77e790118c34ebd85ca") + version("2.3.3", sha256="f7af5c701b85505141f68ea3d35e01034752bb22bc0578fc72bd58c0043ae57f") version("2.3.2", sha256="7255732d6c2da51204128a910e8c0d05246324a0402fca4d0d99433af40a88e3") version("2.1.0", sha256="b784dd5163a0350d084ef34882d9781373839dedeaa9a8b8e6187d773d0d21c6") version("2.0.0", sha256="0dc25b0e20c04836359df1885d099c6e4ad8ae0e585a9e4107f7ea945d9c6fa4") version("1.9.4", sha256="faa25754b757fe483b876f5d07b73f76f69a1baa971420892fadec4af4bbad21") version("1.8.4", sha256="6f948883e5a885a1c409d997f0c782e754a549227ec3c8eb18318deceb38f8f6") + depends_on("c", type="build") + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r-backports@1.1.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_chipseq/package.py b/repos/spack_repo/builtin/packages/r_chipseq/package.py index cf0446dfe17..d662cc25028 100644 --- a/repos/spack_repo/builtin/packages/r_chipseq/package.py +++ b/repos/spack_repo/builtin/packages/r_chipseq/package.py @@ -16,11 +16,12 @@ class RChipseq(RPackage): maintainers("dorton21") - version("1.50.0", commit="0bdfa25828b1d65f629e96c8e832061fd7ff7935") - version("1.48.0", commit="9c78296001b6dd4102318879c8504dac70015822") - version("1.46.0", commit="76b00397cd117d5432158f50fc1032d50485bd24") - version("1.44.0", commit="b64d0d28e9fcf0fdab9a7f9c521baf729426a594") - version("1.40.0", commit="84bcbc0b7ad732730b5989a308f1624a6a358df1") + with default_args(get_full_repo=True): + version("1.50.0", commit="0bdfa25828b1d65f629e96c8e832061fd7ff7935") + version("1.48.0", commit="9c78296001b6dd4102318879c8504dac70015822") + version("1.46.0", commit="76b00397cd117d5432158f50fc1032d50485bd24") + version("1.44.0", commit="b64d0d28e9fcf0fdab9a7f9c521baf729426a594") + version("1.40.0", commit="84bcbc0b7ad732730b5989a308f1624a6a358df1") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_chron/package.py b/repos/spack_repo/builtin/packages/r_chron/package.py index d9b9b126906..bc22e5975c2 100644 --- a/repos/spack_repo/builtin/packages/r_chron/package.py +++ b/repos/spack_repo/builtin/packages/r_chron/package.py @@ -25,4 +25,6 @@ class RChron(RPackage): version("2.3-52", sha256="c47fcf4abb635babe6337604c876d4853d8a24639a98b71523746c56ce75b4a0") version("2.3-47", sha256="9a8c771021165de517e54c3369c622aaac1bf3e220a2fbf595aba285e60445f6") + depends_on("c", type="build") # generated + depends_on("r@2.12.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_clarabel/package.py b/repos/spack_repo/builtin/packages/r_clarabel/package.py index 173e9a99581..0e2110aeb0a 100644 --- a/repos/spack_repo/builtin/packages/r_clarabel/package.py +++ b/repos/spack_repo/builtin/packages/r_clarabel/package.py @@ -26,4 +26,6 @@ class RClarabel(RPackage): version("0.9.0", sha256="50963022f8e5dc9d956193acf7b87194548dc4b3555bd844aa1f9f4d34f2c6bc") + depends_on("c", type="build") # generated + depends_on("rust", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_class/package.py b/repos/spack_repo/builtin/packages/r_class/package.py index 39fa6070915..83785802c70 100644 --- a/repos/spack_repo/builtin/packages/r_class/package.py +++ b/repos/spack_repo/builtin/packages/r_class/package.py @@ -25,5 +25,7 @@ class RClass(RPackage): version("7.3-15", sha256="f6bf33d610c726d58622b6cea78a808c7d6a317d02409d27c17741dfd1c730f4") version("7.3-14", sha256="18b876dbc18bebe6a00890eab7d04ef72b903ba0049d5ce50731406a82426b9c") + depends_on("c", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r-mass", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_classint/package.py b/repos/spack_repo/builtin/packages/r_classint/package.py index add9f4ad9aa..6abe398c8fc 100644 --- a/repos/spack_repo/builtin/packages/r_classint/package.py +++ b/repos/spack_repo/builtin/packages/r_classint/package.py @@ -24,6 +24,9 @@ class RClassint(RPackage): version("0.3-1", sha256="e2e6f857b544dfecb482b99346aa3ecfdc27b4d401c3537ee8fbaf91caca92b9") version("0.1-24", sha256="f3dc9084450ea3da07e1ea5eeb097fd2fedc7e29e5d7794b418bcb438c4fcfa2") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@2.2:", type=("build", "run")) depends_on("r-e1071", type=("build", "run")) depends_on("r-class", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_cli/package.py b/repos/spack_repo/builtin/packages/r_cli/package.py index 6eb97298199..7de53fc4b9f 100644 --- a/repos/spack_repo/builtin/packages/r_cli/package.py +++ b/repos/spack_repo/builtin/packages/r_cli/package.py @@ -21,6 +21,7 @@ class RCli(RPackage): license("MIT") + version("3.6.6", sha256="b2b58d6dd82f5798b335e39c00591686a01fd3e94399ef898e146173e36f18f9") version("3.6.3", sha256="4295085f11221c54b1dd2b1d39a675a85dfd9f900294297567e1d36f65ac4841") version("3.6.1", sha256="be3006cec7e67f9ae25e21b4658c4bec680038c2ef7467df5f14da3311a05e36") version("3.4.1", sha256="1c585efbfd8b8685c66fac34bcb60f28c351691bb4b9931df214e6e47fd9744e") @@ -37,11 +38,13 @@ class RCli(RPackage): depends_on("c", type="build") - depends_on("r@2.10:", type=("build", "run")) - depends_on("r@3.4:", type=("build", "run"), when="@3.3.0:") + with default_args(type=("build", "run")): + depends_on("r@3.4:", when="@3.3.0:") + depends_on("r@2.10:") - depends_on("r-assertthat", type=("build", "run"), when="@:2.3") - depends_on("r-crayon@1.3.4:", type=("build", "run"), when="@:2.2") - depends_on("r-fansi", type=("build", "run"), when="@2:2.2") - depends_on("r-glue", type=("build", "run"), when="@2:3.4.1") - depends_on("r-glue@1.6.0:", type=("build", "run"), when="@3.3.0") + # Historical dependencies + depends_on("r-assertthat", when="@:2.3") + depends_on("r-crayon@1.3.4:", when="@:2.2") + depends_on("r-fansi", when="@2:2.2") + depends_on("r-glue@1.6.0:", when="@3.3.0") + depends_on("r-glue", when="@2:3.4.1") diff --git a/repos/spack_repo/builtin/packages/r_clock/package.py b/repos/spack_repo/builtin/packages/r_clock/package.py index f1ce35e1952..cbb3a996bef 100644 --- a/repos/spack_repo/builtin/packages/r_clock/package.py +++ b/repos/spack_repo/builtin/packages/r_clock/package.py @@ -24,6 +24,8 @@ class RClock(RPackage): version("0.7.1", sha256="432d2fc39d3f20e348f09a9b6136a02a588db585bab428d184da71bf6aa1f0d8") version("0.6.1", sha256="f80c385fd8229538968ffb71d7de53ddc82bfcec6641f8e76f299546c43c1702") + depends_on("cxx", type="build") # generated + depends_on("r@3.4:", type=("build", "run")) depends_on("r@3.6.0:", type=("build", "run"), when="@0.7.1:") depends_on("r-cli@3.6.1:", type=("build", "run"), when="@0.7.0:") diff --git a/repos/spack_repo/builtin/packages/r_clue/package.py b/repos/spack_repo/builtin/packages/r_clue/package.py index 0cb983f1164..ea93b218a91 100644 --- a/repos/spack_repo/builtin/packages/r_clue/package.py +++ b/repos/spack_repo/builtin/packages/r_clue/package.py @@ -22,5 +22,7 @@ class RClue(RPackage): version("0.3-58", sha256="2ab6662eaa1103a7b633477e8ebd266b262ed54fac6f9326b160067a2ded9ce7") version("0.3-57", sha256="6e369d07b464a9624209a06b5078bf988f01f7963076e946649d76aea0622d17") + depends_on("c", type="build") # generated + depends_on("r@3.2.0:", type=("build", "run")) depends_on("r-cluster", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_cluster/package.py b/repos/spack_repo/builtin/packages/r_cluster/package.py index 2d7714cba92..bc30fa2b590 100644 --- a/repos/spack_repo/builtin/packages/r_cluster/package.py +++ b/repos/spack_repo/builtin/packages/r_cluster/package.py @@ -27,6 +27,9 @@ class RCluster(RPackage): version("2.0.5", sha256="4b309133bc2ad7b8fe4fa538dd69635bc8a4cd724a3c95f01084098876c57bae") version("2.0.4", sha256="d4d925c4fc1fc4f2e2e3c9208e518507aad6c28bb143b4358a05a8a8944ac6e4") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.0.1:", type=("build", "run")) depends_on("r@3.2.0:", type=("build", "run"), when="@2.0.7:") depends_on("r@3.3.0:", type=("build", "run"), when="@2.0.8:") diff --git a/repos/spack_repo/builtin/packages/r_clusterprofiler/package.py b/repos/spack_repo/builtin/packages/r_clusterprofiler/package.py index ecd08c6bab1..ad10e1861f8 100644 --- a/repos/spack_repo/builtin/packages/r_clusterprofiler/package.py +++ b/repos/spack_repo/builtin/packages/r_clusterprofiler/package.py @@ -16,17 +16,18 @@ class RClusterprofiler(RPackage): bioc = "clusterProfiler" - version("4.8.0", commit="35a69cf05855b01775658def2f3f26596902f5db") - version("4.6.0", commit="2644118c36a3aa14408bc0c97ac20a545e40344d") - version("4.4.4", commit="9fca9a45ca1793884d8dcfd0f077353dbf75df29") - version("4.4.1", commit="daad11fb80be2dd9b825e0b484815a0a2b1592a4") - version("4.2.2", commit="4ebb9de8e03eedc971f54a57cf5bf1b250ed43d5") - version("3.18.0", commit="064a6e612ce27e260e33af78b907bee4065ff821") - version("3.12.0", commit="6ec88d10832bdfd938e9c065b377015eedb7eee2") - version("3.10.1", commit="39927ef7ff6f97e27557bcf4147e2133b364fd3c") - version("3.8.1", commit="81e1a7ac49e4713703c55f87f945b20de5e7ab36") - version("3.6.0", commit="ff15e3dba69b93bc872d5f5d07821cd9ae20d829") - version("3.4.4", commit="b86b00e8405fe130e439362651a5567736e2d9d7") + with default_args(get_full_repo=True): + version("4.8.0", commit="35a69cf05855b01775658def2f3f26596902f5db") + version("4.6.0", commit="2644118c36a3aa14408bc0c97ac20a545e40344d") + version("4.4.4", commit="9fca9a45ca1793884d8dcfd0f077353dbf75df29") + version("4.4.1", commit="daad11fb80be2dd9b825e0b484815a0a2b1592a4") + version("4.2.2", commit="4ebb9de8e03eedc971f54a57cf5bf1b250ed43d5") + version("3.18.0", commit="064a6e612ce27e260e33af78b907bee4065ff821") + version("3.12.0", commit="6ec88d10832bdfd938e9c065b377015eedb7eee2") + version("3.10.1", commit="39927ef7ff6f97e27557bcf4147e2133b364fd3c") + version("3.8.1", commit="81e1a7ac49e4713703c55f87f945b20de5e7ab36") + version("3.6.0", commit="ff15e3dba69b93bc872d5f5d07821cd9ae20d829") + version("3.4.4", commit="b86b00e8405fe130e439362651a5567736e2d9d7") depends_on("r@3.3.1:", type=("build", "run")) depends_on("r@3.4.0:", type=("build", "run"), when="@3.8.1:") diff --git a/repos/spack_repo/builtin/packages/r_cner/package.py b/repos/spack_repo/builtin/packages/r_cner/package.py index f9c19e61bef..a12b8085b88 100644 --- a/repos/spack_repo/builtin/packages/r_cner/package.py +++ b/repos/spack_repo/builtin/packages/r_cner/package.py @@ -15,16 +15,17 @@ class RCner(RPackage): bioc = "CNEr" - version("1.36.0", commit="4f2feeb395cfc071ed97ba8b6327425dfd42d6b5") - version("1.34.0", commit="878de98d18f6f959ad5e014ecd8165d3105d8b48") - version("1.32.0", commit="1c92f3d7f3dccf76ab7d54f286117b09bc470b8f") - version("1.30.0", commit="e682f2a7c8ebb561c872cf51a58ba36eed341187") - version("1.26.0", commit="e5e582da6feeae0618c4460f16ece724215e3b20") - version("1.20.0", commit="9c25d8e8f6f5fd8a5311f554c86e7ca1140a4ca5") - version("1.18.1", commit="66aa88af04364c81832f3b09bad898f3c117f606") - version("1.16.1", commit="a2bec4b98d5938709f959a69c151f553ef357941") - version("1.14.0", commit="b8634d65c51728c815127e22b45eba7c9b9db897") - version("1.12.1", commit="90d611f9cd19a73d0fe92ab03ef428519d64c017") + with default_args(get_full_repo=True): + version("1.36.0", commit="4f2feeb395cfc071ed97ba8b6327425dfd42d6b5") + version("1.34.0", commit="878de98d18f6f959ad5e014ecd8165d3105d8b48") + version("1.32.0", commit="1c92f3d7f3dccf76ab7d54f286117b09bc470b8f") + version("1.30.0", commit="e682f2a7c8ebb561c872cf51a58ba36eed341187") + version("1.26.0", commit="e5e582da6feeae0618c4460f16ece724215e3b20") + version("1.20.0", commit="9c25d8e8f6f5fd8a5311f554c86e7ca1140a4ca5") + version("1.18.1", commit="66aa88af04364c81832f3b09bad898f3c117f606") + version("1.16.1", commit="a2bec4b98d5938709f959a69c151f553ef357941") + version("1.14.0", commit="b8634d65c51728c815127e22b45eba7c9b9db897") + version("1.12.1", commit="90d611f9cd19a73d0fe92ab03ef428519d64c017") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_codex/package.py b/repos/spack_repo/builtin/packages/r_codex/package.py index 00fb4d84395..87092560578 100644 --- a/repos/spack_repo/builtin/packages/r_codex/package.py +++ b/repos/spack_repo/builtin/packages/r_codex/package.py @@ -23,12 +23,13 @@ class RCodex(RPackage): bioc = "CODEX" - version("1.32.0", commit="83926238fb49b0e95d989612a98356d20e7caf57") - version("1.30.0", commit="0694f11be9e0b02ab15047d01db2afce943f92d8") - version("1.28.0", commit="c707497bd93aa4a0516fcf3671a64997c28c9f67") - version("1.26.0", commit="729fd10bd42d12edcedd65b5a8fb1579e5949718") - version("1.22.0", commit="aa0ee4278111a46e0c790312b0526ba07aab22eb") - version("1.18.0", commit="9a95cccc7ff3fe587636317e21e39a07dddf80bc") + with default_args(get_full_repo=True): + version("1.32.0", commit="83926238fb49b0e95d989612a98356d20e7caf57") + version("1.30.0", commit="0694f11be9e0b02ab15047d01db2afce943f92d8") + version("1.28.0", commit="c707497bd93aa4a0516fcf3671a64997c28c9f67") + version("1.26.0", commit="729fd10bd42d12edcedd65b5a8fb1579e5949718") + version("1.22.0", commit="aa0ee4278111a46e0c790312b0526ba07aab22eb") + version("1.18.0", commit="9a95cccc7ff3fe587636317e21e39a07dddf80bc") depends_on("r@3.2.3:", type=("build", "run")) depends_on("r-rsamtools", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_coin/package.py b/repos/spack_repo/builtin/packages/r_coin/package.py index 2f075b272b9..845f0754574 100644 --- a/repos/spack_repo/builtin/packages/r_coin/package.py +++ b/repos/spack_repo/builtin/packages/r_coin/package.py @@ -25,6 +25,8 @@ class RCoin(RPackage): version("1.2-2", sha256="d518065d3e1eb00121cb4e0200e1e4ae6b68eca6e249afc38bbffa35d24105bb") version("1.1-3", sha256="8b88ecc25903c83539dfc73cdc31a160e2aa4a7bea1773b22c79133d2f006035") + depends_on("c", type="build") # generated + depends_on("r@2.14.0:", type=("build", "run")) depends_on("r@3.4.0:", type=("build", "run"), when="@1.3-0:") depends_on("r@3.6.0:", type=("build", "run"), when="@1.4-2:") diff --git a/repos/spack_repo/builtin/packages/r_colorspace/package.py b/repos/spack_repo/builtin/packages/r_colorspace/package.py index 6d047b9f6e4..28b22f4e761 100644 --- a/repos/spack_repo/builtin/packages/r_colorspace/package.py +++ b/repos/spack_repo/builtin/packages/r_colorspace/package.py @@ -30,6 +30,7 @@ class RColorspace(RPackage): license("BSD-3-Clause") + version("2.1-2", sha256="ec71499d33ef5d72b7fb3359b8320639e06e413abad61a070201178a254b153e") version("2.1-1", sha256="e721cee5f4d6e4b0fc8eb18265e316b4f856fd3be02f0775a26032663758cd0b") version("2.1-0", sha256="04078abb6b54119c90dc7085d62916bf292ccb163e213f9ea70567d1be82614c") version("2.0-3", sha256="e75681cc4dd6e4b70303fd96a6d4597065dc6bffcaa4ae4244b73ff19016857f") diff --git a/repos/spack_repo/builtin/packages/r_commonmark/package.py b/repos/spack_repo/builtin/packages/r_commonmark/package.py index 247bad53e63..502d1de9c23 100644 --- a/repos/spack_repo/builtin/packages/r_commonmark/package.py +++ b/repos/spack_repo/builtin/packages/r_commonmark/package.py @@ -26,3 +26,5 @@ class RCommonmark(RPackage): version("1.8.1", sha256="96adcb093de3d2e48811af402da70e7222a313b97f1e979e0cbe84dd59bd5cbe") version("1.8.0", sha256="7d07e72937b1cf158e69f183722bf79dbb91b8967a9dd29f4fa145500c2be668") version("1.7", sha256="d14a767a3ea9778d6165f44f980dd257423ca6043926e3cd8f664f7171f89108") + + depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_complexheatmap/package.py b/repos/spack_repo/builtin/packages/r_complexheatmap/package.py index 38703541990..6d1644aaf10 100644 --- a/repos/spack_repo/builtin/packages/r_complexheatmap/package.py +++ b/repos/spack_repo/builtin/packages/r_complexheatmap/package.py @@ -19,17 +19,18 @@ class RComplexheatmap(RPackage): license("MIT") - version("2.16.0", commit="01eb55ca9b783c6d99bdfe88aa131cc102bae5b3") - version("2.14.0", commit="57fcaa040b08917c97fb66b963eb240d5fd5a8c7") - version("2.12.1", commit="2c5fe70724219008174d4e6f83189cddbd895ec6") - version("2.12.0", commit="8a5f060b06646f9d6a5032832ea72e3f183ca5d7") - version("2.10.0", commit="170df82a1568e879e4019e0ff6feb0047851684f") - version("2.6.2", commit="0383bada2c76dc3dde71cf6a625016b619aec4d3") - version("2.0.0", commit="97863d8ddfe36a52df0149b0b040dc386a03d2e4") - version("1.20.0", commit="1501ecc92fda07efa3652e41626b21741951ce0f") - version("1.18.1", commit="be0dd9d666a219c61335efe0dac50b2eed2a8825") - version("1.17.1", commit="f647c97e556d9e918a17be15883a0b72a91d688f") - version("1.14.0", commit="0acd8974fb5cedde8cd96efea6dfa39324d25b34") + with default_args(get_full_repo=True): + version("2.16.0", commit="01eb55ca9b783c6d99bdfe88aa131cc102bae5b3") + version("2.14.0", commit="57fcaa040b08917c97fb66b963eb240d5fd5a8c7") + version("2.12.1", commit="2c5fe70724219008174d4e6f83189cddbd895ec6") + version("2.12.0", commit="8a5f060b06646f9d6a5032832ea72e3f183ca5d7") + version("2.10.0", commit="170df82a1568e879e4019e0ff6feb0047851684f") + version("2.6.2", commit="0383bada2c76dc3dde71cf6a625016b619aec4d3") + version("2.0.0", commit="97863d8ddfe36a52df0149b0b040dc386a03d2e4") + version("1.20.0", commit="1501ecc92fda07efa3652e41626b21741951ce0f") + version("1.18.1", commit="be0dd9d666a219c61335efe0dac50b2eed2a8825") + version("1.17.1", commit="f647c97e556d9e918a17be15883a0b72a91d688f") + version("1.14.0", commit="0acd8974fb5cedde8cd96efea6dfa39324d25b34") depends_on("r@3.1.2:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@2.10.0:") diff --git a/repos/spack_repo/builtin/packages/r_compositions/package.py b/repos/spack_repo/builtin/packages/r_compositions/package.py index d60b7c9f934..76b12f4c047 100644 --- a/repos/spack_repo/builtin/packages/r_compositions/package.py +++ b/repos/spack_repo/builtin/packages/r_compositions/package.py @@ -24,6 +24,8 @@ class RCompositions(RPackage): version("2.0-1", sha256="84a291308faf858e5a9d9570135c2da5e57b0887f407903485fa85d09da61a0f") version("1.40-2", sha256="110d71ae000561987cb73fc76cd953bd69d37562cb401ed3c36dca137d01b78a") + depends_on("c", type="build") # generated + depends_on("r@2.2.0:", type=("build", "run")) depends_on("r@3.6:", type=("build", "run"), when="@2.0-4:") diff --git a/repos/spack_repo/builtin/packages/r_construct/package.py b/repos/spack_repo/builtin/packages/r_construct/package.py index f715156c070..246fe0476d6 100644 --- a/repos/spack_repo/builtin/packages/r_construct/package.py +++ b/repos/spack_repo/builtin/packages/r_construct/package.py @@ -24,6 +24,8 @@ class RConstruct(RPackage): version("1.0.4", sha256="4e585b718a361061bc1432cea46fc65f802fb0ef58e4516d33e1af99bbfe90ce") version("1.0.3", sha256="b449c133a944ad05a28f84f312ed4ccbc1574c4659aa09c678618d2ae9008310") + depends_on("cxx", type="build") # generated + depends_on("r+X", type=("build", "run")) depends_on("r@3.4.0:", type=("build", "run")) depends_on("r-rcpp@0.12.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_contfrac/package.py b/repos/spack_repo/builtin/packages/r_contfrac/package.py new file mode 100644 index 00000000000..a1b2433c62c --- /dev/null +++ b/repos/spack_repo/builtin/packages/r_contfrac/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.r import RPackage + +from spack.package import * + + +class RContfrac(RPackage): + """Continued Fractions. + + Various utilities for evaluating continued fractions. + """ + + cran = "contfrac" + + license("GPL-2.0-only") + + version("1.1-12", sha256="95bfc5e970513416c080486a1cd8dfd9f8d59fb691b02ef6ccbe0ce1ed61056b") + + depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/r_copula/package.py b/repos/spack_repo/builtin/packages/r_copula/package.py index 591fcfc7473..9c186a85a35 100644 --- a/repos/spack_repo/builtin/packages/r_copula/package.py +++ b/repos/spack_repo/builtin/packages/r_copula/package.py @@ -33,6 +33,9 @@ class RCopula(RPackage): version("1.0-1", sha256="d09b2ccffc7379e48b00952aa6b282baf502feebaf55cc44e93f881d7b909742") version("0.999-20", sha256="7d3d47bce2dacb05b94a772f84dbf3d83c99ac2ac11e5f1b4b03d50d9d5c0fb0") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.2.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@1.0-1:") depends_on("r-matrix", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_covr/package.py b/repos/spack_repo/builtin/packages/r_covr/package.py index e0fd7301b7a..26784e3abf6 100644 --- a/repos/spack_repo/builtin/packages/r_covr/package.py +++ b/repos/spack_repo/builtin/packages/r_covr/package.py @@ -32,6 +32,9 @@ class RCovr(RPackage): version("3.2.0", sha256="b26135306b1d6b14dd4deb481359dd919a7ca1e802ca5479fed394dcf35f0ef9") version("3.0.1", sha256="66b799fd03cb83a9ab382d9cf4ff40603d1e3f3a89905a3174546b0c63e8d184") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.1.0:", type=("build", "run")) depends_on("r-digest", type=("build", "run"), when="@3.2.0:") depends_on("r-jsonlite", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_cowplot/package.py b/repos/spack_repo/builtin/packages/r_cowplot/package.py index b4f3cef399c..243063fdcc0 100644 --- a/repos/spack_repo/builtin/packages/r_cowplot/package.py +++ b/repos/spack_repo/builtin/packages/r_cowplot/package.py @@ -22,6 +22,7 @@ class RCowplot(RPackage): license("GPL-2.0-only") + version("1.2.0", sha256="431d582a4fb68f005f45e0d963c19daad826289374b429b05fe168ef6f231aa1") version("1.1.3", sha256="8756971af5c50381cf00ec7ed622fd5cf3d70f534bdfa3ebadd157b5aef5b273") version("1.1.1", sha256="c7dce625b456dffc59ba100c816e16226048d12fdd29a7335dc1f6f6e12eed48") version("1.0.0", sha256="70f9a7c46d10f409d1599f1afc9fd3c947051cf2b430f01d903c64ef1e6c98a5") @@ -31,13 +32,16 @@ class RCowplot(RPackage): version("0.9.0", sha256="d5632f78294c3678c08d3eb090abe1eec5cc9cd15cb5d96f9c43794ead098cb5") version("0.8.0", sha256="a617fde25030fe764f20967fb753a953d73b47745a2146c97c2565eb4d06700d") - depends_on("r@3.3.0:", type=("build", "run")) - depends_on("r@3.5.0:", type=("build", "run"), when="@1.0.0:") - depends_on("r-ggplot2@2.1.1:", type=("build", "run")) - depends_on("r-ggplot2@2.2.1:", type=("build", "run"), when="@1.1.1:") - depends_on("r-ggplot2@3.4.0:", type=("build", "run"), when="@1.1.2:") - depends_on("r-gtable", type=("build", "run")) - depends_on("r-rlang", type=("build", "run"), when="@1.0.0:") - depends_on("r-scales", type=("build", "run")) - - depends_on("r-plyr@1.8.2:", type=("build", "run"), when="@:0.9.9") + with default_args(type=("build", "run")): + depends_on("r@3.5.0:", when="@1.0.0:") + depends_on("r@3.3.0:") + depends_on("r-ggplot2@3.5.2:", when="@1.2:") + depends_on("r-ggplot2@3.4.0:", when="@1.1.2:") + depends_on("r-ggplot2@2.2.1:", when="@1.1.1:") + depends_on("r-ggplot2@2.1.1:") + depends_on("r-gtable") + depends_on("r-rlang", when="@1.0.0:") + depends_on("r-scales") + + # Historical dependencies + depends_on("r-plyr@1.8.2:", when="@:0.9.9") diff --git a/repos/spack_repo/builtin/packages/r_cpp11/package.py b/repos/spack_repo/builtin/packages/r_cpp11/package.py index 7f3a02df2fd..ddcb1ebf9ba 100644 --- a/repos/spack_repo/builtin/packages/r_cpp11/package.py +++ b/repos/spack_repo/builtin/packages/r_cpp11/package.py @@ -19,10 +19,16 @@ class RCpp11(RPackage): license("MIT") + version("0.5.4", sha256="6e0053ce3886a3c1a66149df2bfd3da98f61ac8817c10276298ac0eb1cd71dec") + version("0.5.2", sha256="0e8ac07f9d599b82e7a811f9d084e5125ae787b1ba04e5ba57f79e2642af091b") version("0.4.7", sha256="801d1266824c3972642bce2db2a5fd0528a65ec845c58eb5a886edf082264344") version("0.4.3", sha256="f1a60e4971a86dbbcf6a16bbd739b59bb66d9c45d93cfd8dedc2a87e302598f1") version("0.4.2", sha256="403ce0bf82358d237176053b0fb1e958cb6bfa4d0fb3555bf5801db6a6939b99") version("0.4.0", sha256="1768fd07dc30dfbbf8f3fb1a1183947cb7e1dfd909165c4d612a63c163a41e87") version("0.2.5", sha256="6fef9306c0c3043252c987e77c99ef679b2ea46dffafae318dbeb38ad21a2e20") - depends_on("r@3.5.0:", when="@0.4.6:", type=("build", "run")) + depends_on("cxx", type="build") # generated + + with default_args(type=("build", "run")): + depends_on("r@4.0.0:", when="@0.5.1:") + depends_on("r@3.5.0:", when="@0.4.6:0.4") diff --git a/repos/spack_repo/builtin/packages/r_ctc/package.py b/repos/spack_repo/builtin/packages/r_ctc/package.py index 3c8c5188f2b..eac05ffbc2d 100644 --- a/repos/spack_repo/builtin/packages/r_ctc/package.py +++ b/repos/spack_repo/builtin/packages/r_ctc/package.py @@ -15,15 +15,16 @@ class RCtc(RPackage): bioc = "ctc" - version("1.74.0", commit="00be85633de7d71ca3dc6fe6c634cf0bde6188fd") - version("1.72.0", commit="0a4b464e1768e6407c1c2ce64ec4ae5a4577be65") - version("1.70.0", commit="05dc046ecfddbc1eeadf77e8f3ec0ce054794437") - version("1.68.0", commit="c2733534ef9d948e07ea654d1998a67ed8f7a98a") - version("1.64.0", commit="35dbe620a21056b8f69890e6f9a7c320528d8621") - version("1.58.0", commit="c41df03ac149db20c5e337142142d61cfb9b43fb") - version("1.56.0", commit="cbd5befdda4630799f8fe0d868d83b094e3d352f") - version("1.54.0", commit="0c3df81dfc8fabe12e11884bed44b64e11fd6d4e") - version("1.52.0", commit="ffff8693cab5ebad610d139367f089418f1830a1") - version("1.50.0", commit="4ee7519c3e5172e140c2658b4cf5271d229acc7e") + with default_args(get_full_repo=True): + version("1.74.0", commit="00be85633de7d71ca3dc6fe6c634cf0bde6188fd") + version("1.72.0", commit="0a4b464e1768e6407c1c2ce64ec4ae5a4577be65") + version("1.70.0", commit="05dc046ecfddbc1eeadf77e8f3ec0ce054794437") + version("1.68.0", commit="c2733534ef9d948e07ea654d1998a67ed8f7a98a") + version("1.64.0", commit="35dbe620a21056b8f69890e6f9a7c320528d8621") + version("1.58.0", commit="c41df03ac149db20c5e337142142d61cfb9b43fb") + version("1.56.0", commit="cbd5befdda4630799f8fe0d868d83b094e3d352f") + version("1.54.0", commit="0c3df81dfc8fabe12e11884bed44b64e11fd6d4e") + version("1.52.0", commit="ffff8693cab5ebad610d139367f089418f1830a1") + version("1.50.0", commit="4ee7519c3e5172e140c2658b4cf5271d229acc7e") depends_on("r-amap", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_cubature/package.py b/repos/spack_repo/builtin/packages/r_cubature/package.py index 8fecf6f6fd3..dbad16405d5 100644 --- a/repos/spack_repo/builtin/packages/r_cubature/package.py +++ b/repos/spack_repo/builtin/packages/r_cubature/package.py @@ -31,6 +31,10 @@ class RCubature(RPackage): version("2.0.2", sha256="641165c665ff490c523bccc05c42bb6851e42676b6b366b55fc442a51a8fbe8c") version("1.1-2", sha256="0a05469bdc85d6bd8165a42a3fc5c35a06700d279e4e8b3cf4669df19edffeed") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r-rcpp", type=("build", "run"), when="@2.0.3:") depends_on("gmake", type="build") diff --git a/repos/spack_repo/builtin/packages/r_cubist/package.py b/repos/spack_repo/builtin/packages/r_cubist/package.py index 6298db90d21..f7fb9cd362b 100644 --- a/repos/spack_repo/builtin/packages/r_cubist/package.py +++ b/repos/spack_repo/builtin/packages/r_cubist/package.py @@ -23,5 +23,7 @@ class RCubist(RPackage): version("0.2.1", sha256="b310c3f166f15fa3e16f8d110d39931b0bb1b0aa8d0c9ac2af5a9a45081588a3") version("0.0.19", sha256="101379979acb12a58bcf32a912fef32d497b00263ebea918f2b85a2c32934aae") + depends_on("c", type="build") # generated + depends_on("r-lattice", type=("build", "run")) depends_on("r-reshape2", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_curl/package.py b/repos/spack_repo/builtin/packages/r_curl/package.py index a916a0fe29c..fef838300ad 100644 --- a/repos/spack_repo/builtin/packages/r_curl/package.py +++ b/repos/spack_repo/builtin/packages/r_curl/package.py @@ -24,56 +24,16 @@ class RCurl(RPackage): license("MIT") + version("7.1.0", sha256="74f079b6306acc18fbe60c18dbaac805703fb6579e6ab398f3437377695fd8a9") version("6.2.0", sha256="0399bb6bcad5f31ad2a2a7165ff8c976111707125ca0a9c4b8ccf40bb5eb1635") - version("5.2.1", sha256="4a7a4d8c08aa1bca2fcd9c58ade7b4b0ea2ed9076d0521071be29baac8adfa90") - version("5.0.0", sha256="d7f3cac9b513914ffa8f6f64e6fa5dd96c8273378ace6b0c16b71bc6ba59c9b2") - version("4.3.3", sha256="3567b6acad40dad68acfe07511c853824839d451a50219a96dd6d125ed617c9e") - version("4.3.2", sha256="90b1facb4be8b6315bb3d272ba2dd90b88973f6ea1ab7f439550230f8500a568") - version("4.3", sha256="7406d485bb50a6190e3ed201e3489063fd249b8b3b1b4f049167ac405a352edb") - - # requires deprecated curl - version( - "4.0", - sha256="09a99c9c86666449188fbb211cb1e9fbdb5108ab56f0d09322cd0ae50e926171", - deprecated=True, - ) - version( - "3.3", - sha256="0cb0b9a9280edc42ebed94708541ec86b4f48779e722171e45227eab8a88a5bd", - deprecated=True, - ) - version( - "3.0", - sha256="7bf8e3ae7cc77802ae300277e85d925d4c0611a9b7dad5c5601e0d2cbe14a506", - deprecated=True, - ) - version( - "2.3", - sha256="f901dad6bb70a6875a85da75bcbb42afffdcdf4ef221909733826bcb012d7c3d", - deprecated=True, - ) - version( - "1.0", - sha256="f8927228754fdfb21dbf08b9e67c5f97e06764c4adf327a4126eed84b1508f3d", - deprecated=True, - ) - version( - "0.9.7", - sha256="46e150998723fd1937da598f47f49fe47e40c1f57ec594436c6ef1e0145b44dc", - deprecated=True, - ) depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@3.0.0:", type=("build", "run")) - depends_on("curl", when="@4.3:") - depends_on("curl@:7.63", when="@:4.0") - - # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282908 - requires("curl@:8.10", when="@:5.2.1") + depends_on("r@3:", type=("build", "run")) + depends_on("curl") # (Jan 2025) MacOS ships a very buggy libcurl 8.7.1 so we avoid this until apple updates it # See: https://github.com/jeroen/curl/issues/376 # from: https://github.com/jeroen/curl/blob/v6.2.0/configure#L18 - depends_on("curl@8.8.0:", when="@6.2.0: platform=darwin") + depends_on("curl@8.8:", when="platform=darwin") diff --git a/repos/spack_repo/builtin/packages/r_cvxr/package.py b/repos/spack_repo/builtin/packages/r_cvxr/package.py index 7d95fc09201..a258d1db15f 100644 --- a/repos/spack_repo/builtin/packages/r_cvxr/package.py +++ b/repos/spack_repo/builtin/packages/r_cvxr/package.py @@ -26,6 +26,8 @@ class RCvxr(RPackage): version("1.0-14", sha256="4d027cc2b933720ded4edcc098fde1259992673825abdb109fd84fee4af57cdb") version("1.0-11", sha256="e92a9638f35f4909e2a29c3b7106081e3dae7ff88b14bb6466b87fbdc80b972a") + depends_on("cxx", type="build") # generated + depends_on("r@3.4.0:", type=("build", "run")) depends_on("r-r6", type=("build", "run")) depends_on("r-matrix", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_d3r/package.py b/repos/spack_repo/builtin/packages/r_d3r/package.py new file mode 100644 index 00000000000..818cc0895df --- /dev/null +++ b/repos/spack_repo/builtin/packages/r_d3r/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.r import RPackage + +from spack.package import * + + +class RD3r(RPackage): + """Provides a suite of functions to help ease the use of 'd3.js' in R.""" + + homepage = "https://github.com/timelyportfolio/d3r" + url = "https://github.com/timelyportfolio/d3r/archive/refs/tags/v1.1.0.tar.gz" + + license("BSD_3_clause") + + version("1.1.0", sha256="02921d4269381cc5924df3135882a23b5be4438f526527cac0e9b9f26a66f667") + version("1.0.1", sha256="359bd6ab20839c62801613698ca1d297a073ab54eb3d7fd8bed10c05fd45278a") + version("1.0.0", sha256="4ee097b1ba149b64696b9447e890a185948c46dbb31002ced87d081ebf6eb3c6") + version("0.9.0", sha256="292b3e928319e8bc0d4bd3ef1b3973bc99459150540f15536fabff2890960e1a") + version("0.8.7", sha256="9a0efb95e5782639af22a5a87e9e44565e15cb1062a09ea39a9784fa2c966123") + version("0.8.6", sha256="f8ca8d5c2ed02acd8e62bc4a6bce034832a0cb7adfa3f09d49dce6ceaad653f4") + version("0.8.4", sha256="f57817cfd6dd83289021b77bf4e9267e551bfe2a6f40eefd42225e223c36772b") + version("0.8.2", sha256="45d89aa43ab9f2369ca1dd56d06c9aea6d0f90252eef7de1ba3f5233ea2722fa") + version("0.8.0", sha256="4fe9a680dc99f69cfce504f11f2c96d854305515520d9d031bf1048e7af8d37c") + version("0.7.1", sha256="e53c386ff2e15bb3b92dff8724118c6436a0e966bb8d8c222e2eea3140ecd2ef") + + with default_args(type=("build", "run")): + depends_on("r-dplyr") + depends_on("r-htmltools") + depends_on("r-rlang", when="@0.9:1.0") + depends_on("r-tidyr@0.7:") + depends_on("r-tidyr@0.8.3:", when="@0.9:") diff --git a/repos/spack_repo/builtin/packages/r_data_table/package.py b/repos/spack_repo/builtin/packages/r_data_table/package.py index 7c138169468..b5bc4701d74 100644 --- a/repos/spack_repo/builtin/packages/r_data_table/package.py +++ b/repos/spack_repo/builtin/packages/r_data_table/package.py @@ -19,6 +19,8 @@ class RDataTable(RPackage): license("MPL-2.0-no-copyleft-exception") + version("1.18.2.1", sha256="7663893a84b3e22ff23efb4658bf7809ea4ff5551659cae96f264ae1a2b815a2") + version("1.17.8", sha256="17f24496d548914fdac2b8ed00c7272f2e191ee32eb6bb8336f9beb6691330e0") version("1.15.4", sha256="ab8065ff946d59ecaaf5eaf91a975495c07c30caad97a71205c72e41a740cb53") version("1.14.8", sha256="14b2ce5367df9c9bb58f373555066f5dcb629c156149b5565de36d69557139fd") version("1.14.4", sha256="4862a7c26e8309108fd1f5296616407b9ff9e4e1be5cdedcb717f114c2e348f0") @@ -44,7 +46,10 @@ class RDataTable(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") + depends_on("r@3.4.0:", type=("build", "run"), when="@1.18:") + depends_on("r@3.3.0:", type=("build", "run"), when="@1.17:") depends_on("r@3.1.0:", type=("build", "run")) + depends_on("zlib-api") depends_on("llvm-openmp", when="platform=darwin %apple-clang", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_dbi/package.py b/repos/spack_repo/builtin/packages/r_dbi/package.py index d06fdbe864f..3db236cd521 100644 --- a/repos/spack_repo/builtin/packages/r_dbi/package.py +++ b/repos/spack_repo/builtin/packages/r_dbi/package.py @@ -16,6 +16,9 @@ class RDbi(RPackage): cran = "DBI" + license("LGPL-2.1-or-later AND LGPL-3.0-or-later") + + version("1.3.0", sha256="13def8e90cbe41205a0dfcf585a6a7ea79ce10d45969789e82613c7ce3d5fb18") version("1.2.3", sha256="cf6708a7566a80929f06575aa345fae354714159ed5fab5db14306fc5d0d2dbe") version("1.1.3", sha256="38bb33753da5bddb78893a5228a5d269dae3bf16f21dc5d9853ac9c24d31428d") version("1.1.2", sha256="56ec377d471c76ac234ddfd313bd01a050c99fb6fa5f704f5333b34a5d714f58") diff --git a/repos/spack_repo/builtin/packages/r_dbplyr/package.py b/repos/spack_repo/builtin/packages/r_dbplyr/package.py index ab0f8bbb20b..1815d251f69 100644 --- a/repos/spack_repo/builtin/packages/r_dbplyr/package.py +++ b/repos/spack_repo/builtin/packages/r_dbplyr/package.py @@ -19,6 +19,7 @@ class RDbplyr(RPackage): license("MIT") + version("2.5.2", sha256="215ae869bcdfb55ea9391086a816185fdd7174579437252d5f96ba87ef6d3b89") version("2.5.0", sha256="bb475bdbe89487b189ecc257b5c92007a7458803c81aa77bfc4ed46f5f24bcff") version("2.3.2", sha256="0ddc00595ec6b21962d0bb6f470f5f7c9d61c74a4f92681a37e94e1295707fac") version("2.2.1", sha256="a6f3f644c068fe1a3b3e99a3a10de55a150d43ef20b5130e6724d142afcb0df7") @@ -31,46 +32,65 @@ class RDbplyr(RPackage): version("1.2.0", sha256="02a5fa8dcf8a81c061fdaefa74f17896bee913720418b44dbd226a0d6b30799d") version("1.1.0", sha256="7b1e456a2d1056fa6284582cd82d2df66d06b3eea92e9995f5a91a45f246f69d") - depends_on("r@3.1:", type=("build", "run")) - depends_on("r@3.6:", type=("build", "run"), when="@2.4.0:") - depends_on("r-blob@1.2.0:", type=("build", "run"), when="@2.0.0:") - depends_on("r-cli@3.3.0:", type=("build", "run"), when="@2.2.1:") - depends_on("r-cli@3.4.1:", type=("build", "run"), when="@2.3.2:") - depends_on("r-cli@3.6.1:", type=("build", "run"), when="@2.4.0:") - depends_on("r-dbi@1.0.0:", type=("build", "run")) - depends_on("r-dbi@1.1.3:", type=("build", "run"), when="@2.4.0:") - depends_on("r-dplyr@0.8.0:", type=("build", "run")) - depends_on("r-dplyr@1.0.3:", type=("build", "run"), when="@2.1.0") - depends_on("r-dplyr@1.0.4:", type=("build", "run"), when="@2.1.1:") - depends_on("r-dplyr@1.0.9:", type=("build", "run"), when="@2.2.1:") - depends_on("r-dplyr@1.1.0:", type=("build", "run"), when="@2.3.2:") - depends_on("r-dplyr@1.1.2:", type=("build", "run"), when="@2.4.0:") - depends_on("r-glue@1.2.0:", type=("build", "run")) - depends_on("r-glue@1.6.2:", type=("build", "run"), when="@2.4.0:") - depends_on("r-lifecycle", type=("build", "run"), when="@2.0.0:") - depends_on("r-lifecycle@1.0.0:", type=("build", "run"), when="@2.1.1:") - depends_on("r-lifecycle@1.0.3:", type=("build", "run"), when="@2.3.2:") - depends_on("r-magrittr", type=("build", "run"), when="@2.0.0:") - depends_on("r-pillar@1.5.0:", type=("build", "run"), when="@2.2.1:") - depends_on("r-pillar@1.9.0:", type=("build", "run"), when="@2.4.0:") - depends_on("r-purrr@0.2.5:", type=("build", "run")) - depends_on("r-purrr@1.0.1:", type=("build", "run"), when="@2.3.2:") - depends_on("r-r6@2.2.2:", type=("build", "run")) - depends_on("r-rlang@0.2.0:", type=("build", "run")) - depends_on("r-rlang@1.0.0:", type=("build", "run"), when="@2.2.1:") - depends_on("r-rlang@1.0.6:", type=("build", "run"), when="@2.3.2:") - depends_on("r-rlang@1.1.1:", type=("build", "run"), when="@2.4.0:") - depends_on("r-tibble@1.4.2:", type=("build", "run")) - depends_on("r-tibble@3.2.1:", type=("build", "run"), when="@2.4.0:") - depends_on("r-tidyr@1.3.0:", type=("build", "run"), when="@2.3.2:") - depends_on("r-tidyselect@0.2.4:", type=("build", "run")) - depends_on("r-tidyselect@1.2.0:", type=("build", "run"), when="@2.3.2:") - depends_on("r-tidyselect@1.2.1:", type=("build", "run"), when="@2.4.0:") - depends_on("r-vctrs", type=("build", "run"), when="@2.1:") - depends_on("r-vctrs@0.4.1:", type=("build", "run"), when="@2.2.1:") - depends_on("r-vctrs@0.5.0:", type=("build", "run"), when="@2.3.2:") - depends_on("r-vctrs@0.6.3:", type=("build", "run"), when="@2.4.0:") - depends_on("r-withr", type=("build", "run"), when="@2.0.0:") - depends_on("r-withr@2.5.0:", type=("build", "run"), when="@2.4.0:") - depends_on("r-ellipsis", type=("build", "run"), when="@2.1.1") - depends_on("r-assertthat", type=("build", "run"), when="@:2.2.1") + with default_args(type=("build", "run")): + depends_on("r@3.6:", when="@2.4.0:") + depends_on("r@3.1:") + + depends_on("r-blob@1.2.0:", when="@2.0.0:") + + depends_on("r-cli@3.6.1:", when="@2.4.0:") + depends_on("r-cli@3.4.1:", when="@2.3.2:") + depends_on("r-cli@3.3.0:", when="@2.2.1:") + + depends_on("r-dbi@1.1.3:", when="@2.4.0:") + depends_on("r-dbi@1.0.0:") + + depends_on("r-dplyr@1.1.2:", when="@2.4.0:") + depends_on("r-dplyr@1.1.0:", when="@2.3.2:") + depends_on("r-dplyr@1.0.9:", when="@2.2.1:") + depends_on("r-dplyr@1.0.4:", when="@2.1.1:") + depends_on("r-dplyr@1.0.3:", when="@2.1.0") + depends_on("r-dplyr@0.8.0:") + + depends_on("r-glue@1.6.2:", when="@2.4.0:") + depends_on("r-glue@1.2.0:") + + depends_on("r-lifecycle@1.0.3:", when="@2.3.2:") + depends_on("r-lifecycle@1.0.0:", when="@2.1.1:") + depends_on("r-lifecycle", when="@2.0.0:") + + depends_on("r-magrittr", when="@2.0.0:") + + depends_on("r-pillar@1.9.0:", when="@2.4.0:") + depends_on("r-pillar@1.5.0:", when="@2.2.1:") + + depends_on("r-purrr@1.0.1:", when="@2.3.2:") + depends_on("r-purrr@0.2.5:") + + depends_on("r-r6@2.2.2:") + + depends_on("r-rlang@1.1.1:", when="@2.4.0:") + depends_on("r-rlang@1.0.6:", when="@2.3.2:") + depends_on("r-rlang@1.0.0:", when="@2.2.1:") + depends_on("r-rlang@0.2.0:") + + depends_on("r-tibble@3.2.1:", when="@2.4.0:") + depends_on("r-tibble@1.4.2:") + + depends_on("r-tidyr@1.3.0:", when="@2.3.2:") + + depends_on("r-tidyselect@1.2.1:", when="@2.4.0:") + depends_on("r-tidyselect@1.2.0:", when="@2.3.2:") + depends_on("r-tidyselect@0.2.4:") + + depends_on("r-vctrs@0.6.3:", when="@2.4.0:") + depends_on("r-vctrs@0.5.0:", when="@2.3.2:") + depends_on("r-vctrs@0.4.1:", when="@2.2.1:") + depends_on("r-vctrs", when="@2.1:") + + depends_on("r-withr@2.5.0:", when="@2.4.0:") + depends_on("r-withr", when="@2.0.0:") + + # Historical dependencies + depends_on("r-ellipsis", when="@2.1.1") + depends_on("r-assertthat", when="@:2.2.1") diff --git a/repos/spack_repo/builtin/packages/r_decipher/package.py b/repos/spack_repo/builtin/packages/r_decipher/package.py index 184667ef011..a60eb979343 100644 --- a/repos/spack_repo/builtin/packages/r_decipher/package.py +++ b/repos/spack_repo/builtin/packages/r_decipher/package.py @@ -14,16 +14,17 @@ class RDecipher(RPackage): bioc = "DECIPHER" - version("2.28.0", commit="9be570c9fd812139d6bf9cd0851821fe54d4d3fa") - version("2.26.0", commit="7de99ec5e79f1f645f29dfbe24d2a106c2b0e69a") - version("2.24.0", commit="437e60005ab281bd836f47756a367795bc16755d") - version("2.22.0", commit="45da5cab5869d83af797aa82b08ebcd24f5bdab3") - version("2.18.1", commit="6a708421550e6705d05e2fb50a0f5ab4f9041cb0") - version("2.12.0", commit="658ae23870383b25b96a03a18d4ecac228a2650f") - version("2.10.2", commit="db7b017c9050a7ec1d4daa15352994890095e9c3") - version("2.8.1", commit="35aa66f48e06b93a98d1060c90c44d34ce05ccd9") - version("2.6.0", commit="ed9acaa35c8774cb0ea01cd7cc2e46d063d8c70e") - version("2.4.0", commit="1a57b8e4c7d7dec1c233f79c9a88d3705e0ad432") + with default_args(get_full_repo=True): + version("2.28.0", commit="9be570c9fd812139d6bf9cd0851821fe54d4d3fa") + version("2.26.0", commit="7de99ec5e79f1f645f29dfbe24d2a106c2b0e69a") + version("2.24.0", commit="437e60005ab281bd836f47756a367795bc16755d") + version("2.22.0", commit="45da5cab5869d83af797aa82b08ebcd24f5bdab3") + version("2.18.1", commit="6a708421550e6705d05e2fb50a0f5ab4f9041cb0") + version("2.12.0", commit="658ae23870383b25b96a03a18d4ecac228a2650f") + version("2.10.2", commit="db7b017c9050a7ec1d4daa15352994890095e9c3") + version("2.8.1", commit="35aa66f48e06b93a98d1060c90c44d34ce05ccd9") + version("2.6.0", commit="ed9acaa35c8774cb0ea01cd7cc2e46d063d8c70e") + version("2.4.0", commit="1a57b8e4c7d7dec1c233f79c9a88d3705e0ad432") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_delayedarray/package.py b/repos/spack_repo/builtin/packages/r_delayedarray/package.py index eb95b28c485..fe669ae539c 100644 --- a/repos/spack_repo/builtin/packages/r_delayedarray/package.py +++ b/repos/spack_repo/builtin/packages/r_delayedarray/package.py @@ -21,16 +21,17 @@ class RDelayedarray(RPackage): bioc = "DelayedArray" - version("0.26.0", commit="e3bdae96838a8ed45f18697f072f3c4ec011aa03") - version("0.24.0", commit="68ee3d0626c234ee1e9248a6cb95b901e4b3ad90") - version("0.22.0", commit="4a5afd117b189b40bd409c7aff60e09d41797472") - version("0.20.0", commit="829b52916ec54bb4f1a3c6f06c9955f3e28b3592") - version("0.16.1", commit="c95eba771ad3fee1b49ec38c51cd8fd1486feadc") - version("0.10.0", commit="4781d073110a3fd1e20c4083b6b2b0f260d0cb0a") - version("0.8.0", commit="7c23cf46558de9dbe7a42fba516a9bb660a0f19f") - version("0.6.6", commit="bdb0ac0eee71edd40ccca4808f618fa77f595a64") - version("0.4.1", commit="ffe932ef8c255614340e4856fc6e0b44128a27a1") - version("0.2.7", commit="909c2ce1665ebae2543172ead50abbe10bd42bc4") + with default_args(get_full_repo=True): + version("0.26.0", commit="e3bdae96838a8ed45f18697f072f3c4ec011aa03") + version("0.24.0", commit="68ee3d0626c234ee1e9248a6cb95b901e4b3ad90") + version("0.22.0", commit="4a5afd117b189b40bd409c7aff60e09d41797472") + version("0.20.0", commit="829b52916ec54bb4f1a3c6f06c9955f3e28b3592") + version("0.16.1", commit="c95eba771ad3fee1b49ec38c51cd8fd1486feadc") + version("0.10.0", commit="4781d073110a3fd1e20c4083b6b2b0f260d0cb0a") + version("0.8.0", commit="7c23cf46558de9dbe7a42fba516a9bb660a0f19f") + version("0.6.6", commit="bdb0ac0eee71edd40ccca4808f618fa77f595a64") + version("0.4.1", commit="ffe932ef8c255614340e4856fc6e0b44128a27a1") + version("0.2.7", commit="909c2ce1665ebae2543172ead50abbe10bd42bc4") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_delayedmatrixstats/package.py b/repos/spack_repo/builtin/packages/r_delayedmatrixstats/package.py index 586b8aa471d..e3cab849a57 100644 --- a/repos/spack_repo/builtin/packages/r_delayedmatrixstats/package.py +++ b/repos/spack_repo/builtin/packages/r_delayedmatrixstats/package.py @@ -19,16 +19,17 @@ class RDelayedmatrixstats(RPackage): bioc = "DelayedMatrixStats" - version("1.22.0", commit="e820ab9a72963badc539e38fa79dbaeab95b2d2c") - version("1.20.0", commit="1ed14250e8731e60bccb44946cafad4c2b3ac5b0") - version("1.18.1", commit="9c4658d11fc20b7d88e05b9c52140c2ca8a65768") - version("1.18.0", commit="50c9aab259b6e8f68abf44b78122662a41c8bf47") - version("1.16.0", commit="d44a3d765769cb022193428a77af25bf19916be7") - version("1.12.3", commit="2b3091dfa9b3bab914e3a4157182063714ba86ae") - version("1.6.1", commit="4378d1898a403305a94b122c4f36d1215fa7708d") - version("1.4.0", commit="eb5b390ef99651fe87a346848f807de95afe8971") - version("1.2.0", commit="de868e730be6280dfad41a280ab09f4d3083c9ac") - version("1.0.3", commit="e29a3444980ff727c5b12286884b06dfaebf5b5b") + with default_args(get_full_repo=True): + version("1.22.0", commit="e820ab9a72963badc539e38fa79dbaeab95b2d2c") + version("1.20.0", commit="1ed14250e8731e60bccb44946cafad4c2b3ac5b0") + version("1.18.1", commit="9c4658d11fc20b7d88e05b9c52140c2ca8a65768") + version("1.18.0", commit="50c9aab259b6e8f68abf44b78122662a41c8bf47") + version("1.16.0", commit="d44a3d765769cb022193428a77af25bf19916be7") + version("1.12.3", commit="2b3091dfa9b3bab914e3a4157182063714ba86ae") + version("1.6.1", commit="4378d1898a403305a94b122c4f36d1215fa7708d") + version("1.4.0", commit="eb5b390ef99651fe87a346848f807de95afe8971") + version("1.2.0", commit="de868e730be6280dfad41a280ab09f4d3083c9ac") + version("1.0.3", commit="e29a3444980ff727c5b12286884b06dfaebf5b5b") depends_on("r-matrixgenerics", type=("build", "run"), when="@1.12.2:") depends_on("r-matrixgenerics@1.5.3:", type=("build", "run"), when="@1.16.0:") diff --git a/repos/spack_repo/builtin/packages/r_deldir/package.py b/repos/spack_repo/builtin/packages/r_deldir/package.py index c31899f2ebf..70434c952da 100644 --- a/repos/spack_repo/builtin/packages/r_deldir/package.py +++ b/repos/spack_repo/builtin/packages/r_deldir/package.py @@ -27,5 +27,8 @@ class RDeldir(RPackage): version("0.1-21", sha256="b9dabcc1813c7a0f8edaf720a94bdd611a83baf3d3e52e861d352369e815690c") version("0.1-14", sha256="89d365a980ef8589971e5d311c6bd59fe32c48dbac8000a880b9655032c99289") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@0.99:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@0.2-3:") diff --git a/repos/spack_repo/builtin/packages/r_densvis/package.py b/repos/spack_repo/builtin/packages/r_densvis/package.py index ad192012250..f9f46cffad8 100644 --- a/repos/spack_repo/builtin/packages/r_densvis/package.py +++ b/repos/spack_repo/builtin/packages/r_densvis/package.py @@ -36,7 +36,8 @@ class RDensvis(RPackage): license("MIT") - version("1.10.0", commit="833db1fb7b2a5667575cc2e7c2fefc8360c8d7fb") + with default_args(get_full_repo=True): + version("1.10.0", commit="833db1fb7b2a5667575cc2e7c2fefc8360c8d7fb") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_deriv/package.py b/repos/spack_repo/builtin/packages/r_deriv/package.py index a4739a1c92f..f2ee9c1de41 100644 --- a/repos/spack_repo/builtin/packages/r_deriv/package.py +++ b/repos/spack_repo/builtin/packages/r_deriv/package.py @@ -16,5 +16,6 @@ class RDeriv(RPackage): cran = "Deriv" + version("4.2.0", sha256="210394e7f90fe6fd943d37e8b1953c5a3c10c96fbdc5bbac7660aa9d112a1f63") version("4.1.3", sha256="dbdbf5ed8babf706373ae33a937d013c46110a490aa821bcd158a70f761d0f8c") version("4.1.2", sha256="c4b0c3f351f6df53778d48033460cf8674e7a7878fbc542085d66a9a78803ac9") diff --git a/repos/spack_repo/builtin/packages/r_deseq/package.py b/repos/spack_repo/builtin/packages/r_deseq/package.py index 001cfcb5975..116193375ea 100644 --- a/repos/spack_repo/builtin/packages/r_deseq/package.py +++ b/repos/spack_repo/builtin/packages/r_deseq/package.py @@ -17,12 +17,13 @@ class RDeseq(RPackage): bioc = "DESeq" - version("1.42.0", commit="da76bc64e8c4073b58eaf1c93aa4e89bec5c4e50") - version("1.36.0", commit="db4af67b49d3bd8c321d19efbe9415cd2e4ddb7e") - version("1.34.1", commit="e86f1b03a30bc02de4bfd4a0759af2f65cb48c62") - version("1.32.0", commit="e3d623b815b53d79eae7cdd09d097cc6098d28c9") - version("1.30.0", commit="90c93d991dd980d538c13b0361d3345f9546794e") - version("1.28.0", commit="738371466e6ccf00179fd35b617c8ba0e1e91630") + with default_args(get_full_repo=True): + version("1.42.0", commit="da76bc64e8c4073b58eaf1c93aa4e89bec5c4e50") + version("1.36.0", commit="db4af67b49d3bd8c321d19efbe9415cd2e4ddb7e") + version("1.34.1", commit="e86f1b03a30bc02de4bfd4a0759af2f65cb48c62") + version("1.32.0", commit="e3d623b815b53d79eae7cdd09d097cc6098d28c9") + version("1.30.0", commit="90c93d991dd980d538c13b0361d3345f9546794e") + version("1.28.0", commit="738371466e6ccf00179fd35b617c8ba0e1e91630") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_deseq2/package.py b/repos/spack_repo/builtin/packages/r_deseq2/package.py index 940dc4dcc91..36d0d20cea9 100644 --- a/repos/spack_repo/builtin/packages/r_deseq2/package.py +++ b/repos/spack_repo/builtin/packages/r_deseq2/package.py @@ -17,19 +17,20 @@ class RDeseq2(RPackage): bioc = "DESeq2" - version("1.46.0", commit="4887eb42fa96fcc234118ead8ffd11032a8f08bb") - version("1.44.0", commit="5facd3093468ce2e75a2b742b1533efee13e5818") - version("1.42.0", commit="17a39b5296cb3d897f1e2a9aa4bebbdefb13b46a") - version("1.40.0", commit="c4962c3b16546e552fbc1a712258e4e21ff44241") - version("1.38.0", commit="0e059f425d4ce6a5203685a4ad434f15bbd6e211") - version("1.36.0", commit="2800b78ae52c0600f7e603c54af59beed3a2ed17") - version("1.34.0", commit="25d4f74be59548122ccfbe8687d30c0bae5cf49a") - version("1.30.0", commit="f4b47b208ee26ab23fe65c345f907fcfe70b3f77") - version("1.24.0", commit="3ce7fbbebac526b726a6f85178063d02eb0314bf") - version("1.22.2", commit="3c6a89b61add635d6d468c7fa00192314f8ca4ce") - version("1.20.0", commit="7e88ea5c5e68473824ce0af6e10f19e22374cb7c") - version("1.18.1", commit="ef65091d46436af68915124b752f5e1cc55e93a7") - version("1.16.1", commit="f41d9df2de25fb57054480e50bc208447a6d82fb") + with default_args(get_full_repo=True): + version("1.46.0", commit="4887eb42fa96fcc234118ead8ffd11032a8f08bb") + version("1.44.0", commit="5facd3093468ce2e75a2b742b1533efee13e5818") + version("1.42.0", commit="17a39b5296cb3d897f1e2a9aa4bebbdefb13b46a") + version("1.40.0", commit="c4962c3b16546e552fbc1a712258e4e21ff44241") + version("1.38.0", commit="0e059f425d4ce6a5203685a4ad434f15bbd6e211") + version("1.36.0", commit="2800b78ae52c0600f7e603c54af59beed3a2ed17") + version("1.34.0", commit="25d4f74be59548122ccfbe8687d30c0bae5cf49a") + version("1.30.0", commit="f4b47b208ee26ab23fe65c345f907fcfe70b3f77") + version("1.24.0", commit="3ce7fbbebac526b726a6f85178063d02eb0314bf") + version("1.22.2", commit="3c6a89b61add635d6d468c7fa00192314f8ca4ce") + version("1.20.0", commit="7e88ea5c5e68473824ce0af6e10f19e22374cb7c") + version("1.18.1", commit="ef65091d46436af68915124b752f5e1cc55e93a7") + version("1.16.1", commit="f41d9df2de25fb57054480e50bc208447a6d82fb") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_desolve/package.py b/repos/spack_repo/builtin/packages/r_desolve/package.py index a4ba78b6e51..9836884ea0f 100644 --- a/repos/spack_repo/builtin/packages/r_desolve/package.py +++ b/repos/spack_repo/builtin/packages/r_desolve/package.py @@ -24,6 +24,7 @@ class RDesolve(RPackage): cran = "deSolve" + version("1.42", sha256="c15d4d3b17f7e6c9344728f7623c519495b6742d5236b9323d6b6250ce2c0f71") version("1.40", sha256="8c09ae6bb6875b569b9844eede30b790f39fc227f5c9d045fa63ce1b22f500ef") version("1.35", sha256="96f17f497713754f84ff56c3538c6d05b9f5229f9a2a32aafec7d7cdc721d488") version("1.34", sha256="2254305f44dde22ac685fef4c60e29a0608af0197c803107365d1d80b75c9f21") @@ -35,6 +36,11 @@ class RDesolve(RPackage): version("1.21", sha256="45c372d458fe4c7c11943d4c409517849b1be6782dc05bd9a74b066e67250c63") version("1.20", sha256="56e945835b0c66d36ebc4ec8b55197b616e387d990788a2e52e924ce551ddda2") - depends_on("r@2.15.0:", type=("build", "run")) - depends_on("r@3.3.0:", type=("build", "run"), when="@1.28:") - depends_on("r@4.0.0:", type=("build", "run"), when="@1.32:") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + + with default_args(type=("build", "run")): + # the dependency was relaxed in later versions again + depends_on("r@4.0.0:", when="@1.32") + depends_on("r@3.3.0:", when="@1.28:") + depends_on("r@2.15.0:") diff --git a/repos/spack_repo/builtin/packages/r_dexseq/package.py b/repos/spack_repo/builtin/packages/r_dexseq/package.py index 58e3afe1278..f2b94e5a56e 100644 --- a/repos/spack_repo/builtin/packages/r_dexseq/package.py +++ b/repos/spack_repo/builtin/packages/r_dexseq/package.py @@ -22,11 +22,12 @@ class RDexseq(RPackage): maintainers("dorton21") - version("1.46.0", commit="074c0bf6776eea69e58a788a0f6904dd632a1b74") - version("1.44.0", commit="9660d7372d5ced1a7e324ed9a61b935023b7d135") - version("1.42.0", commit="d91de62a27d0cab2ef12ef1a5f23dc2f7a0cfadd") - version("1.40.0", commit="7d2d639b3a157e443058fc557132cd2629bb36f3") - version("1.36.0", commit="f0a361af6954fcc2abb2db801c26e303570669b2") + with default_args(get_full_repo=True): + version("1.46.0", commit="074c0bf6776eea69e58a788a0f6904dd632a1b74") + version("1.44.0", commit="9660d7372d5ced1a7e324ed9a61b935023b7d135") + version("1.42.0", commit="d91de62a27d0cab2ef12ef1a5f23dc2f7a0cfadd") + version("1.40.0", commit="7d2d639b3a157e443058fc557132cd2629bb36f3") + version("1.36.0", commit="f0a361af6954fcc2abb2db801c26e303570669b2") depends_on("r-biocparallel", type=("build", "run")) depends_on("r-biobase", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_digest/package.py b/repos/spack_repo/builtin/packages/r_digest/package.py index 2a0b4079864..7d561ffc03a 100644 --- a/repos/spack_repo/builtin/packages/r_digest/package.py +++ b/repos/spack_repo/builtin/packages/r_digest/package.py @@ -31,6 +31,7 @@ class RDigest(RPackage): license("GPL-2.0-or-later") + version("0.6.39", sha256="8bf048b49b2d17077138fae758bda56bbd53278d9437f2fdeaedf979c90a13c9") version("0.6.37", sha256="82c4d149994b8a4a9af930f5a8e47420829935abed41f3f9030e94b6a48f0321") version("0.6.31", sha256="5a284f490eaca6750f695f00a584cfca3f180ca1046ac1107202141149d431b9") version("0.6.30", sha256="7b8059943be7dba6053268dfcc229de1bb0b55db497b2943541a6abace076aa7") @@ -47,6 +48,7 @@ class RDigest(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@2.4.1:", type=("build", "run")) - depends_on("r@3.1.0:", type=("build", "run"), when="@0.6.16:") - depends_on("r@3.3.0:", type=("build", "run"), when="@0.6.27:") + with default_args(type=("build", "run")): + depends_on("r@3.3.0:", when="@0.6.27:") + depends_on("r@3.1.0:", when="@0.6.16:") + depends_on("r@2.4.1:") diff --git a/repos/spack_repo/builtin/packages/r_diptest/package.py b/repos/spack_repo/builtin/packages/r_diptest/package.py index 25f87cc51f0..6c42c4e5e72 100644 --- a/repos/spack_repo/builtin/packages/r_diptest/package.py +++ b/repos/spack_repo/builtin/packages/r_diptest/package.py @@ -21,3 +21,5 @@ class RDiptest(RPackage): version("0.77-1", sha256="224eae00f483ce0fb131719065667227417cc98ad2beda55bfd5efe2bb612813") version("0.76-0", sha256="508a5ebb161519cd0fcd156dc047b51becb216d545d62c6522496463f94ec280") version("0.75-7", sha256="462900100ca598ef21dbe566bf1ab2ce7c49cdeab6b7a600a50489b05f61b61b") + + depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_dir_expiry/package.py b/repos/spack_repo/builtin/packages/r_dir_expiry/package.py index da934c4c2f4..fcf6a262215 100644 --- a/repos/spack_repo/builtin/packages/r_dir_expiry/package.py +++ b/repos/spack_repo/builtin/packages/r_dir_expiry/package.py @@ -17,6 +17,7 @@ class RDirExpiry(RPackage): bioc = "dir.expiry" - version("1.8.0", commit="271f76cb2e8565817400e85fcc2c595923af4af6") + with default_args(get_full_repo=True): + version("1.8.0", commit="271f76cb2e8565817400e85fcc2c595923af4af6") depends_on("r-filelock", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_dirichletmultinomial/package.py b/repos/spack_repo/builtin/packages/r_dirichletmultinomial/package.py index 26ebc38fb16..b200bad2ff5 100644 --- a/repos/spack_repo/builtin/packages/r_dirichletmultinomial/package.py +++ b/repos/spack_repo/builtin/packages/r_dirichletmultinomial/package.py @@ -19,16 +19,17 @@ class RDirichletmultinomial(RPackage): bioc = "DirichletMultinomial" - version("1.42.0", commit="c388536bed4bdc57724b704edec04b28acbf48db") - version("1.40.0", commit="200176f8c72ff127788c500629b71872bc6b1f83") - version("1.38.0", commit="b4de83d354e974fdb7cb3526d029487f24aab670") - version("1.36.0", commit="926baff6c75cb498945c5895f25cc143c907a357") - version("1.32.0", commit="6949abab2462b2c09f7a0ca5b5cbf0c95a40ad16") - version("1.26.0", commit="7daa84948020811bb8a27d2e633fccfdcdd1018f") - version("1.24.1", commit="50195d9b1986852da29100e77f6f09df5d6e2a35") - version("1.22.0", commit="5864f4298105d12f345f27df77ad13bae4061ca5") - version("1.20.0", commit="251529f301da1482551142240aeb6baf8dab2272") - version("1.18.0", commit="81ccc8d83b8ef84f5d3e877bc0a04233a0f63c51") + with default_args(get_full_repo=True): + version("1.42.0", commit="c388536bed4bdc57724b704edec04b28acbf48db") + version("1.40.0", commit="200176f8c72ff127788c500629b71872bc6b1f83") + version("1.38.0", commit="b4de83d354e974fdb7cb3526d029487f24aab670") + version("1.36.0", commit="926baff6c75cb498945c5895f25cc143c907a357") + version("1.32.0", commit="6949abab2462b2c09f7a0ca5b5cbf0c95a40ad16") + version("1.26.0", commit="7daa84948020811bb8a27d2e633fccfdcdd1018f") + version("1.24.1", commit="50195d9b1986852da29100e77f6f09df5d6e2a35") + version("1.22.0", commit="5864f4298105d12f345f27df77ad13bae4061ca5") + version("1.20.0", commit="251529f301da1482551142240aeb6baf8dab2272") + version("1.18.0", commit="81ccc8d83b8ef84f5d3e877bc0a04233a0f63c51") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_dismo/package.py b/repos/spack_repo/builtin/packages/r_dismo/package.py index 2ebdda45bd0..6255292f333 100644 --- a/repos/spack_repo/builtin/packages/r_dismo/package.py +++ b/repos/spack_repo/builtin/packages/r_dismo/package.py @@ -24,9 +24,12 @@ class RDismo(RPackage): version("1.3-3", sha256="fd65331ac18a4287ba0856b90508ddd0e2738c653eecc5f3eb2b14e1d06949ca") version("1.1-4", sha256="f2110f716cd9e4cca5fd2b22130c6954658aaf61361d2fe688ba22bbfdfa97c8") + depends_on("cxx", type="build") + depends_on("r+java", type=("build", "run"), when="@1.3-3:") depends_on("r@3.2.0:", type=("build", "run")) depends_on("r@4.0.0:", type=("build", "run"), when="@1.3-5:") depends_on("r@3.6.3:", type=("build", "run"), when="@1.3-9:") + depends_on("java@8:", when="@1.3-3:") depends_on("r-raster@2.5-2:", type=("build", "run")) depends_on("r-raster@3.5-2:", type=("build", "run"), when="@1.3-5:") depends_on("r-raster@3.5-21:", type=("build", "run"), when="@1.3-9:") @@ -34,4 +37,3 @@ class RDismo(RPackage): depends_on("r-sp@1.4-5:", type=("build", "run"), when="@1.3-5:") depends_on("r-terra@1.5-34:", type=("build", "run"), when="@1.3-9:") depends_on("r-rcpp", type=("build", "run"), when="@1.3-9:") - depends_on("java@8:", when="@1.3-3:") diff --git a/repos/spack_repo/builtin/packages/r_distributional/package.py b/repos/spack_repo/builtin/packages/r_distributional/package.py index 22f6fcadd07..099be148ba5 100644 --- a/repos/spack_repo/builtin/packages/r_distributional/package.py +++ b/repos/spack_repo/builtin/packages/r_distributional/package.py @@ -22,20 +22,26 @@ class RDistributional(RPackage): license("GPL-3.0-only") + version("0.7.0", sha256="15f10bc388de532ba93a53af5048a4ecad9cde8d429e07299be70e05db7895a7") version("0.4.0", sha256="09b5f3279bed4c79575f75d5f7f5e3e593c7838434a78c89f0b7184e8f20e602") version("0.3.2", sha256="c883d633398233aee5a8ca6b587687f765bdfe0732a84e4961e7f71ac0d008f8") version("0.3.1", sha256="727e56cbcf0c8a8adacca8030214ddbd14f68ee28d0aad716467bd68b027235f") version("0.3.0", sha256="fab36c7346617d8f2ca4b3cd0e3c9da93cb2f95fb7f102a3ae88670e694751d6") version("0.2.2", sha256="028e5a91aabe3a676eb7b7f3dc907f7f34735a123fe0d9adcabc03476504435f") - depends_on("r-vctrs@0.3.0:", type=("build", "run")) - depends_on("r-rlang@0.4.5:", type=("build", "run")) - depends_on("r-generics", type=("build", "run")) - depends_on("r-numderiv", type=("build", "run")) - depends_on("r-lifecycle", type=("build", "run")) - - depends_on("r-ggplot2", type=("build", "run"), when="@:0.3.2") - depends_on("r-scales", type=("build", "run"), when="@:0.3.2") - depends_on("r-farver", type=("build", "run"), when="@:0.3.2") - depends_on("r-digest", type=("build", "run"), when="@:0.3.2") - depends_on("r-ellipsis", type=("build", "run"), when="@:0.3.0") + with default_args(type=("build", "run")): + depends_on("r@4:", when="@0.6:") + + depends_on("r-vctrs@0.3.0:") + depends_on("r-rlang@0.4.5:") + depends_on("r-generics") + depends_on("r-numderiv") + depends_on("r-lifecycle") + depends_on("r-pillar", when="@0.5:") + + # Historical dependencies + depends_on("r-ggplot2", when="@:0.3.2") + depends_on("r-scales", when="@:0.3.2") + depends_on("r-farver", when="@:0.3.2") + depends_on("r-digest", when="@:0.3.2") + depends_on("r-ellipsis", when="@:0.3.0") diff --git a/repos/spack_repo/builtin/packages/r_diversitree/package.py b/repos/spack_repo/builtin/packages/r_diversitree/package.py index e4146161334..92e2b8d0210 100644 --- a/repos/spack_repo/builtin/packages/r_diversitree/package.py +++ b/repos/spack_repo/builtin/packages/r_diversitree/package.py @@ -28,6 +28,9 @@ class RDiversitree(RPackage): version("0.9-11", sha256="4caa6a468f93de9f1c8c30e4457f34bb8346e1acdaf74f684005bfa86a950ecb") version("0.9-10", sha256="e7df5910c8508a5c2c2d6d3deea53dd3f947bb762196901094c32a7033cb043e") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@2.10:", type=("build", "run")) depends_on("r-ape", type=("build", "run")) depends_on("r-desolve@1.7:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_dmrcate/package.py b/repos/spack_repo/builtin/packages/r_dmrcate/package.py index ebefd6b4250..f56981276e3 100644 --- a/repos/spack_repo/builtin/packages/r_dmrcate/package.py +++ b/repos/spack_repo/builtin/packages/r_dmrcate/package.py @@ -18,14 +18,15 @@ class RDmrcate(RPackage): bioc = "DMRcate" - version("3.2.0", commit="1f46517bcdea269a2c9726d1156495d6dd172067") - version("3.0.0", commit="9cd77dedef76528990487b931ae0cc314423c3b9") - version("2.16.0", commit="9e42d8c8eb26dbd2d36a70bf32be322062ecc850") - version("2.14.0", commit="6e7bae0917001e7664f01c3f8d261f9fe28c2f4d") - version("2.12.0", commit="560dd5067b05715631739d0fb58ef9cebdbf7078") - version("2.10.0", commit="81e83701da5c55ac83d0e0b5e640a9d431f09551") - version("2.8.5", commit="c65dc79a33a047c10932a98b3383709a6bcb8903") - version("2.4.1", commit="bc6242a0291a9b997872f575a4417d38550c9550") + with default_args(get_full_repo=True): + version("3.2.0", commit="1f46517bcdea269a2c9726d1156495d6dd172067") + version("3.0.0", commit="9cd77dedef76528990487b931ae0cc314423c3b9") + version("2.16.0", commit="9e42d8c8eb26dbd2d36a70bf32be322062ecc850") + version("2.14.0", commit="6e7bae0917001e7664f01c3f8d261f9fe28c2f4d") + version("2.12.0", commit="560dd5067b05715631739d0fb58ef9cebdbf7078") + version("2.10.0", commit="81e83701da5c55ac83d0e0b5e640a9d431f09551") + version("2.8.5", commit="c65dc79a33a047c10932a98b3383709a6bcb8903") + version("2.4.1", commit="bc6242a0291a9b997872f575a4417d38550c9550") depends_on("r@3.6.0:", type=("build", "run")) depends_on("r@4.0.0:", type=("build", "run"), when="@2.8.5:2.17.1") diff --git a/repos/spack_repo/builtin/packages/r_dnacopy/package.py b/repos/spack_repo/builtin/packages/r_dnacopy/package.py index 2424c87e3e8..e9920b77a90 100644 --- a/repos/spack_repo/builtin/packages/r_dnacopy/package.py +++ b/repos/spack_repo/builtin/packages/r_dnacopy/package.py @@ -16,16 +16,17 @@ class RDnacopy(RPackage): bioc = "DNAcopy" - version("1.74.0", commit="7d22a81570c0fe76f4b5a5c25d0b8fd3696ec70e") - version("1.72.0", commit="1a1ae854c3425aee68b060e3e7ab788db5bed08c") - version("1.70.0", commit="9595d0ad7c78af4ed568cbd210b894d3350eae0a") - version("1.68.0", commit="08f039f58bc2f5ed2cc3117ae817dbac333002a6") - version("1.64.0", commit="01650266ea7a4e5c600de545fe70a1103e79b2d8") - version("1.58.0", commit="1954745eafca990d6ddeefe84059c54a8c37df23") - version("1.56.0", commit="e521826f2515b309921272f65db421cbe2ff961a") - version("1.54.0", commit="fe2657936afbce8ee03221461dff4265e3ded4c4") - version("1.52.0", commit="2632fbecec4cef3705b85676942a59188ae9bba4") - version("1.50.1", commit="a20153029e28c009df813dbaf13d9f519fafa4e8") + with default_args(get_full_repo=True): + version("1.74.0", commit="7d22a81570c0fe76f4b5a5c25d0b8fd3696ec70e") + version("1.72.0", commit="1a1ae854c3425aee68b060e3e7ab788db5bed08c") + version("1.70.0", commit="9595d0ad7c78af4ed568cbd210b894d3350eae0a") + version("1.68.0", commit="08f039f58bc2f5ed2cc3117ae817dbac333002a6") + version("1.64.0", commit="01650266ea7a4e5c600de545fe70a1103e79b2d8") + version("1.58.0", commit="1954745eafca990d6ddeefe84059c54a8c37df23") + version("1.56.0", commit="e521826f2515b309921272f65db421cbe2ff961a") + version("1.54.0", commit="fe2657936afbce8ee03221461dff4265e3ded4c4") + version("1.52.0", commit="2632fbecec4cef3705b85676942a59188ae9bba4") + version("1.50.1", commit="a20153029e28c009df813dbaf13d9f519fafa4e8") depends_on("c", type="build") # generated depends_on("fortran", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_doby/package.py b/repos/spack_repo/builtin/packages/r_doby/package.py index 6c47683613c..bd001e5ea6e 100644 --- a/repos/spack_repo/builtin/packages/r_doby/package.py +++ b/repos/spack_repo/builtin/packages/r_doby/package.py @@ -17,25 +17,30 @@ class RDoby(RPackage): cran = "doBy" + version("4.7.1", sha256="a6d9b14e3b4f907addbe7461a39bab2c0efda6b78ee6b91372908cfaf87b827b") version("4.6.22", sha256="2aa7e236de98af73de54a46214ceac50fdf69d90b12bb37f2779a501f40b0b0d") version("4.6.16", sha256="d5937eb57d293b0bc2e581ff2e1e628671cb4eacddc0b9574dc28a5316ecbbe7") - depends_on("r@3.6.0:", type=("build", "run")) - depends_on("r@4.1.0:", type=("build", "run"), when="@4.6.18:") - depends_on("r@4.2.0:", type=("build", "run"), when="@4.6.21:") - depends_on("r-boot", type=("build", "run"), when="@4.6.21:") - depends_on("r-broom", type=("build", "run")) - depends_on("r-cowplot", type=("build", "run"), when="@4.6.21:") - depends_on("r-deriv", type=("build", "run")) - depends_on("r-dplyr", type=("build", "run")) - depends_on("r-ggplot2", type=("build", "run")) - depends_on("r-mass", type=("build", "run")) - depends_on("r-matrix", type=("build", "run")) - depends_on("r-microbenchmark", type=("build", "run")) - depends_on("r-modelr", type=("build", "run"), when="@4.6.21:") - depends_on("r-rlang", type=("build", "run"), when="@4.6.21:") - depends_on("r-tibble", type=("build", "run")) - depends_on("r-tidyr", type=("build", "run"), when="@4.6.21:") - - depends_on("r-magrittr", type=("build", "run"), when="@:4.6.20") - depends_on("r-pbkrtest@0.4-8.1:", type=("build", "run"), when="@:4.6.21") + with default_args(type=("build", "run")): + depends_on("r@4.2.0:", when="@4.6.21:") + depends_on("r@4.1.0:", when="@4.6.18:") + depends_on("r@3.6.0:") + depends_on("r-boot", when="@4.6.21:") + depends_on("r-broom") + depends_on("r-cowplot", when="@4.6.21:") + depends_on("r-deriv") + depends_on("r-dplyr") + depends_on("r-forecast", when="@4.7.1:") + depends_on("r-ggplot2") + depends_on("r-mass") + depends_on("r-matrix") + depends_on("r-modelr", when="@4.6.21:") + depends_on("r-microbenchmark") + depends_on("r-rlang", when="@4.6.21:") + depends_on("r-purrr", when="@4.7.1:") + depends_on("r-tibble") + depends_on("r-tidyr", when="@4.6.21:") + + # Historical dependencies + depends_on("r-magrittr", when="@:4.6.20") + depends_on("r-pbkrtest@0.4-8.1:", when="@:4.6.21") diff --git a/repos/spack_repo/builtin/packages/r_dose/package.py b/repos/spack_repo/builtin/packages/r_dose/package.py index 93ba8ec1996..f136e239a59 100644 --- a/repos/spack_repo/builtin/packages/r_dose/package.py +++ b/repos/spack_repo/builtin/packages/r_dose/package.py @@ -19,17 +19,18 @@ class RDose(RPackage): bioc = "DOSE" - version("3.26.0", commit="9c91fb45a2ab9a875a6a7259610b7d5bc86933f6") - version("3.24.1", commit="a78995d3b12bd4baabb69c497102687814cd4c68") - version("3.22.1", commit="6b711a0f076a9fefcb00ddef66e8f198039e6dfa") - version("3.22.0", commit="242ac1b746c44fbbf281fbe6e5e4424a8dc74375") - version("3.20.1", commit="bf434f24d035217822cb1b0ab08a486b9a53edb4") - version("3.16.0", commit="a534a4f2ef1e54e8b92079cf1bbedb5042fd90cd") - version("3.10.2", commit="5ea51a2e2a04b4f3cc974cecb4537e14efd6a7e3") - version("3.8.2", commit="4d3d1ca710aa7e4288a412c8d52b054b86a57639") - version("3.6.1", commit="f2967f0482cea39222bfd15767d0f4a5994f241b") - version("3.4.0", commit="dabb70de1a0f91d1767601e871f2f1c16d29a612") - version("3.2.0", commit="71f563fc39d02dfdf65184c94e0890a63b96b86b") + with default_args(get_full_repo=True): + version("3.26.0", commit="9c91fb45a2ab9a875a6a7259610b7d5bc86933f6") + version("3.24.1", commit="a78995d3b12bd4baabb69c497102687814cd4c68") + version("3.22.1", commit="6b711a0f076a9fefcb00ddef66e8f198039e6dfa") + version("3.22.0", commit="242ac1b746c44fbbf281fbe6e5e4424a8dc74375") + version("3.20.1", commit="bf434f24d035217822cb1b0ab08a486b9a53edb4") + version("3.16.0", commit="a534a4f2ef1e54e8b92079cf1bbedb5042fd90cd") + version("3.10.2", commit="5ea51a2e2a04b4f3cc974cecb4537e14efd6a7e3") + version("3.8.2", commit="4d3d1ca710aa7e4288a412c8d52b054b86a57639") + version("3.6.1", commit="f2967f0482cea39222bfd15767d0f4a5994f241b") + version("3.4.0", commit="dabb70de1a0f91d1767601e871f2f1c16d29a612") + version("3.2.0", commit="71f563fc39d02dfdf65184c94e0890a63b96b86b") depends_on("r@3.3.1:", type=("build", "run")) depends_on("r@3.4.0:", type=("build", "run"), when="@3.6.1:") diff --git a/repos/spack_repo/builtin/packages/r_dotcall64/package.py b/repos/spack_repo/builtin/packages/r_dotcall64/package.py index e23061bb859..69c8ff46929 100644 --- a/repos/spack_repo/builtin/packages/r_dotcall64/package.py +++ b/repos/spack_repo/builtin/packages/r_dotcall64/package.py @@ -24,4 +24,7 @@ class RDotcall64(RPackage): version("1.0-1", sha256="f10b28fcffb9453b1d8888a72c8fd2112038b5ac33e02a481492c7bd249aa5c6") version("1.0-0", sha256="69318dc6b8aecc54d4f789c8105e672198363b395f1a764ebaeb54c0473d17ad") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_dplyr/package.py b/repos/spack_repo/builtin/packages/r_dplyr/package.py index 0d8ce3f9f96..99c426c2774 100644 --- a/repos/spack_repo/builtin/packages/r_dplyr/package.py +++ b/repos/spack_repo/builtin/packages/r_dplyr/package.py @@ -17,6 +17,7 @@ class RDplyr(RPackage): license("MIT") + version("1.2.0", sha256="a82c292f2249d439157986b504edd1d99741f467c75bf08969254ca8d441bfa3") version("1.1.4", sha256="cf730414d5d4ab387b4e9890a4b1df9d17a3903488e8da8df1cf2e11e44558cb") version("1.1.2", sha256="c220c38a3a44977c43eeae3d9aef90e8bb297150cad0993ea8d3cc13150096e3") version("1.0.10", sha256="3ab639f627b4e439052df18f193f0ccab223225a4ae2ff8c18aba4f9807e0f2b") @@ -43,6 +44,9 @@ class RDplyr(RPackage): depends_on("r@3.3.0:", type=("build", "run"), when="@1.0.3:") depends_on("r@3.4.0:", type=("build", "run"), when="@1.0.9:") depends_on("r@3.5.0:", type=("build", "run"), when="@1.1.2:") + depends_on("r@4.1.0:", type=("build", "run"), when="@1.2:") + depends_on("r-cli@3.4.0:", type=("build", "run"), when="@1.1.2:") + depends_on("r-cli@3.6.2:", type=("build", "run"), when="@1.2.0:") depends_on("r-generics", type=("build", "run"), when="@1.0.3:") depends_on("r-glue@1.3.0:", type=("build", "run")) depends_on("r-glue@1.3.2:", type=("build", "run"), when="@1.0.3:") @@ -50,14 +54,17 @@ class RDplyr(RPackage): depends_on("r-lifecycle@1.0.0:", type=("build", "run"), when="@1.0.5:") depends_on("r-lifecycle@1.0.1:", type=("build", "run"), when="@1.0.9:") depends_on("r-lifecycle@1.0.3:", type=("build", "run"), when="@1.1.2:") - depends_on("r-cli@3.4.0:", type=("build", "run"), when="@1.1.2:") + depends_on("r-lifecycle@1.0.5:", type=("build", "run"), when="@1.2.0:") depends_on("r-magrittr@1.5:", type=("build", "run")) + depends_on("r-pillar@1.5.1:", type=("build", "run"), when="@1.0.6:") + depends_on("r-pillar@1.9.0:", type=("build", "run"), when="@1.1.2:") depends_on("r-r6", type=("build", "run")) depends_on("r-rlang@0.4.0:", type=("build", "run")) depends_on("r-rlang@0.4.9:", type=("build", "run"), when="@1.0.3:") depends_on("r-rlang@0.4.10:", type=("build", "run"), when="@1.0.5:") depends_on("r-rlang@1.0.2:", type=("build", "run"), when="@1.0.9:") depends_on("r-rlang@1.1.0:", type=("build", "run"), when="@1.1.2:") + depends_on("r-rlang@1.1.7:", type=("build", "run"), when="@1.2.0:") depends_on("r-tibble@2.0.0:", type=("build", "run")) depends_on("r-tibble@2.1.3:", type=("build", "run"), when="@1.0.3:") depends_on("r-tibble@3.2.0:", type=("build", "run"), when="@1.1.2:") @@ -69,9 +76,9 @@ class RDplyr(RPackage): depends_on("r-vctrs@0.4.1:", type=("build", "run"), when="@1.0.9:") depends_on("r-vctrs@0.6.0:", type=("build", "run"), when="@1.1.2:") depends_on("r-vctrs@0.6.4:", type=("build", "run"), when="@1.1.4:") - depends_on("r-pillar@1.5.1:", type=("build", "run"), when="@1.0.6:") - depends_on("r-pillar@1.9.0:", type=("build", "run"), when="@1.1.2:") + depends_on("r-vctrs@0.7.1:", type=("build", "run"), when="@1.2.0:") + # Historical dependencies depends_on("r-assertthat@0.2.0:", type=("build", "run"), when="@:0.8.3") depends_on("r-bindrcpp@0.2.0:", type=("build", "run"), when="@:0.7.9") depends_on("r-pkgconfig", type=("build", "run"), when="@:0.8.3") diff --git a/repos/spack_repo/builtin/packages/r_dqrng/package.py b/repos/spack_repo/builtin/packages/r_dqrng/package.py index 6f8d355b45a..a4848768a81 100644 --- a/repos/spack_repo/builtin/packages/r_dqrng/package.py +++ b/repos/spack_repo/builtin/packages/r_dqrng/package.py @@ -31,6 +31,8 @@ class RDqrng(RPackage): version("0.3.0", sha256="4beeabfe245ce7196b07369f2a7d277cb08869ad8b45a22c6354c4cc70a39abb") version("0.2.1", sha256="e149c105b1db31e7f46b1aebf31d911a109e380923f3696fc56a53197fc1e866") + depends_on("cxx", type="build") # generated + depends_on("r@3.1.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@0.3.1:") depends_on("r-rcpp@0.12.16:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_dss/package.py b/repos/spack_repo/builtin/packages/r_dss/package.py index 2d9863648ea..24d159cf75f 100644 --- a/repos/spack_repo/builtin/packages/r_dss/package.py +++ b/repos/spack_repo/builtin/packages/r_dss/package.py @@ -19,14 +19,15 @@ class RDss(RPackage): bioc = "DSS" - version("2.48.0", commit="03ceee2656e57b717e4fd7f22ff389f118421ae1") - version("2.46.0", commit="debfbac4bc741961ba57915d4f2d98534f02cc21") - version("2.44.0", commit="b9f44106f139c93564dfb4afab50555d24a657ba") - version("2.42.0", commit="33e87450fbb64bb3e321688ff613e83cd40efe48") - version("2.38.0", commit="82e65b92e6e227f1f99620362db8b03059e07e98") - version("2.36.0", commit="841c7ed72a138a458ee2df52336050dbe581e727") - version("2.34.0", commit="f9819c7d7927c8e6d9963632cdeab36c8c22caa8") - version("2.32.0", commit="ffb502d20810a873c2376199d44adedf7c83912d") + with default_args(get_full_repo=True): + version("2.48.0", commit="03ceee2656e57b717e4fd7f22ff389f118421ae1") + version("2.46.0", commit="debfbac4bc741961ba57915d4f2d98534f02cc21") + version("2.44.0", commit="b9f44106f139c93564dfb4afab50555d24a657ba") + version("2.42.0", commit="33e87450fbb64bb3e321688ff613e83cd40efe48") + version("2.38.0", commit="82e65b92e6e227f1f99620362db8b03059e07e98") + version("2.36.0", commit="841c7ed72a138a458ee2df52336050dbe581e727") + version("2.34.0", commit="f9819c7d7927c8e6d9963632cdeab36c8c22caa8") + version("2.32.0", commit="ffb502d20810a873c2376199d44adedf7c83912d") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_dtplyr/package.py b/repos/spack_repo/builtin/packages/r_dtplyr/package.py index 6ae2560446c..28992775853 100644 --- a/repos/spack_repo/builtin/packages/r_dtplyr/package.py +++ b/repos/spack_repo/builtin/packages/r_dtplyr/package.py @@ -18,26 +18,32 @@ class RDtplyr(RPackage): license("MIT") + version("1.3.3", sha256="cbcf0671dd551a0ceacc8f88d83c0bb6cdc967d0f817dc4c211f78fdb536b188") version("1.3.1", sha256="a5a9689a640b8bd1274519af220c33deaa3919654acac4ebdff1ff365cc8d6e5") version("1.2.2", sha256="f85928fe63701bc3a0cadf705ba660834a2aaeab37cf20addab406430e53e2d4") version("1.2.1", sha256="2640e9cde4eaa06f02cff29e3f2b99fdd08488df07ea2e6629b2ed6a8285d0f3") version("1.2.0", sha256="a6dedfb6dd80dfc1d29d005ab634c060b7bfda8cb49835ece84d3b7d12077414") version("1.1.0", sha256="99681b7285d7d5086e5595ca6bbeebf7f4e2ee358a32b694cd9d35916cdfc732") - depends_on("r@3.3:", type=("build", "run")) - depends_on("r-cli@3.4.0:", type=("build", "run"), when="@1.3.1:") - depends_on("r-data-table@1.12.4:", type=("build", "run")) - depends_on("r-data-table@1.13.0:", type=("build", "run"), when="@1.2.0:") - depends_on("r-dplyr@1.0.3:", type=("build", "run")) - depends_on("r-dplyr@1.1.0:", type=("build", "run"), when="@1.3.1:") - depends_on("r-glue", type=("build", "run")) - depends_on("r-lifecycle", type=("build", "run")) - depends_on("r-rlang", type=("build", "run")) - depends_on("r-rlang@1.0.4:", type=("build", "run"), when="@1.3.1:") - depends_on("r-tibble", type=("build", "run")) - depends_on("r-tidyselect", type=("build", "run")) - depends_on("r-tidyselect@1.2.0:", type=("build", "run"), when="@1.3.1:") - depends_on("r-vctrs", type=("build", "run")) - depends_on("r-vctrs@0.4.1:", type=("build", "run"), when="@1.3.1:") - depends_on("r-crayon", type=("build", "run"), when="@:1.2.2") - depends_on("r-ellipsis", type=("build", "run"), when="@:1.2.2") + with default_args(type=("build", "run")): + depends_on("r@4:", when="@1.3.2:") + depends_on("r@3.3:") + + depends_on("r-cli@3.4.0:", when="@1.3.1:") + depends_on("r-data-table@1.13.0:", when="@1.2.0:") + depends_on("r-data-table@1.12.4:") + depends_on("r-dplyr@1.1.0:", when="@1.3.1:") + depends_on("r-dplyr@1.0.3:") + depends_on("r-glue") + depends_on("r-lifecycle") + depends_on("r-rlang@1.0.4:", when="@1.3.1:") + depends_on("r-rlang") + depends_on("r-tibble") + depends_on("r-tidyselect@1.2.0:", when="@1.3.1:") + depends_on("r-tidyselect") + depends_on("r-vctrs@0.4.1:", when="@1.3.1:") + depends_on("r-vctrs") + + # Historical dependencies + depends_on("r-crayon", when="@:1.2.2") + depends_on("r-ellipsis", when="@:1.2.2") diff --git a/repos/spack_repo/builtin/packages/r_dupradar/package.py b/repos/spack_repo/builtin/packages/r_dupradar/package.py index cc149512aca..09e22465241 100644 --- a/repos/spack_repo/builtin/packages/r_dupradar/package.py +++ b/repos/spack_repo/builtin/packages/r_dupradar/package.py @@ -16,9 +16,10 @@ class RDupradar(RPackage): license("GPL-3.0-only") - version("1.32.0", commit="7e07fc3a3901f8cae0203759fc24dd7df430a07f") - version("1.30.3", commit="19e3b13a148c47e69686cd1e872182c564fd4dcd") - version("1.30.0", commit="3d53d2d2e0c404a25845d78b8df8fee3f6b34eb5") + with default_args(get_full_repo=True): + version("1.32.0", commit="7e07fc3a3901f8cae0203759fc24dd7df430a07f") + version("1.30.3", commit="19e3b13a148c47e69686cd1e872182c564fd4dcd") + version("1.30.0", commit="3d53d2d2e0c404a25845d78b8df8fee3f6b34eb5") depends_on("r@3.2:", type=("build", "run")) depends_on("r-kernsmooth", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_e1071/package.py b/repos/spack_repo/builtin/packages/r_e1071/package.py index 09ff66aece6..91a942dd718 100644 --- a/repos/spack_repo/builtin/packages/r_e1071/package.py +++ b/repos/spack_repo/builtin/packages/r_e1071/package.py @@ -29,5 +29,8 @@ class RE1071(RPackage): version("1.7-1", sha256="5c5f04a51c1cd2c7dbdf69987adef9bc07116804c63992cd36d804a1daf89dfe") version("1.6-7", sha256="7048fbc0ac17d7e3420fe68081d0e0a2176b1154ee3191d53558ea9724c7c980") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r-class", type=("build", "run")) depends_on("r-proxy", type=("build", "run"), when="@1.7-9:") diff --git a/repos/spack_repo/builtin/packages/r_earth/package.py b/repos/spack_repo/builtin/packages/r_earth/package.py index c31630fcff8..3aa15c2b069 100644 --- a/repos/spack_repo/builtin/packages/r_earth/package.py +++ b/repos/spack_repo/builtin/packages/r_earth/package.py @@ -24,6 +24,9 @@ class REarth(RPackage): version("5.3.0", sha256="05ace806271a74b3ddf8718a93237fe2a8550a8659ebd87f8079c0bda5e02437") version("5.1.2", sha256="326f98e8c29365ca3cd5584cf2bd6529358f5ef81664cbd494162f92b6c3488d") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.4.0:", type=("build", "run")) depends_on("r-formula@1.2-3:", type=("build", "run")) depends_on("r-plotmo@3.5.4:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_ebseq/package.py b/repos/spack_repo/builtin/packages/r_ebseq/package.py index 2e5528bd343..a8695d04d9e 100644 --- a/repos/spack_repo/builtin/packages/r_ebseq/package.py +++ b/repos/spack_repo/builtin/packages/r_ebseq/package.py @@ -22,8 +22,9 @@ class REbseq(RPackage): bioc = "EBSeq" - version("2.0.0", commit="f1d4e4419988ab98540739c9349559fd437cb59f") - version("1.40.0", commit="7d1d2a2b4ea0df8cddfb5e57d6431f3948c5c4ca") + with default_args(get_full_repo=True): + version("2.0.0", commit="f1d4e4419988ab98540739c9349559fd437cb59f") + version("1.40.0", commit="7d1d2a2b4ea0df8cddfb5e57d6431f3948c5c4ca") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_ecosolver/package.py b/repos/spack_repo/builtin/packages/r_ecosolver/package.py index f9355ea66b6..1eff6a7294c 100644 --- a/repos/spack_repo/builtin/packages/r_ecosolver/package.py +++ b/repos/spack_repo/builtin/packages/r_ecosolver/package.py @@ -21,4 +21,6 @@ class REcosolver(RPackage): version("0.5.5", sha256="2594ed1602b2fe159cc9aff3475e9cba7c1927b496c3daeabc1c0d227943ecc7") version("0.5.4", sha256="5d7489e8176c1df3f3f1290732243429280efca4f837916e6b6faa6dc8a8e324") + depends_on("c", type="build") # generated + depends_on("gmake", type="build") diff --git a/repos/spack_repo/builtin/packages/r_ecp/package.py b/repos/spack_repo/builtin/packages/r_ecp/package.py index 5ea0ff352ea..06319d5fc32 100644 --- a/repos/spack_repo/builtin/packages/r_ecp/package.py +++ b/repos/spack_repo/builtin/packages/r_ecp/package.py @@ -27,5 +27,8 @@ class REcp(RPackage): version("3.1.3", sha256="a80ab10bafe30cc96287b9220e44c4b4eda40f5dd0546e4d2a2e1baab514c058") version("3.1.1", sha256="d2ab194e22e6ab0168222fbccfcf2e25c6cd51a73edc959086b0c6e0a7410268") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r-rcpp", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_edger/package.py b/repos/spack_repo/builtin/packages/r_edger/package.py index 566bca3d1db..641d64aa7d9 100644 --- a/repos/spack_repo/builtin/packages/r_edger/package.py +++ b/repos/spack_repo/builtin/packages/r_edger/package.py @@ -20,17 +20,18 @@ class REdger(RPackage): bioc = "edgeR" - version("3.42.0", commit="197b9a8ccc27016611b262c2c31ca22f991661c5") - version("3.40.0", commit="0b25adcc6b3cb0a8c641964d1274536ee07ee162") - version("3.38.4", commit="f5a3bb568a23b34146ac66329a95ee4785093536") - version("3.38.1", commit="e58bf52f34ec451096f593126922ad7e5d517f7e") - version("3.36.0", commit="c7db03addfc42138a1901834409c02da9d873026") - version("3.32.1", commit="b881d801d60e5b38413d27f149384c218621c55a") - version("3.26.8", commit="836809e043535f2264e5db8b5c0eabcffe85613f") - version("3.24.3", commit="d1260a2aeba67b9ab7a9b8b197b746814ad0716d") - version("3.22.5", commit="44461aa0412ef4a0d955730f365e44fc64fe1902") - version("3.20.9", commit="acbcbbee939f399673678653678cd9cb4917c4dc") - version("3.18.1", commit="101106f3fdd9e2c45d4a670c88f64c12e97a0495") + with default_args(get_full_repo=True): + version("3.42.0", commit="197b9a8ccc27016611b262c2c31ca22f991661c5") + version("3.40.0", commit="0b25adcc6b3cb0a8c641964d1274536ee07ee162") + version("3.38.4", commit="f5a3bb568a23b34146ac66329a95ee4785093536") + version("3.38.1", commit="e58bf52f34ec451096f593126922ad7e5d517f7e") + version("3.36.0", commit="c7db03addfc42138a1901834409c02da9d873026") + version("3.32.1", commit="b881d801d60e5b38413d27f149384c218621c55a") + version("3.26.8", commit="836809e043535f2264e5db8b5c0eabcffe85613f") + version("3.24.3", commit="d1260a2aeba67b9ab7a9b8b197b746814ad0716d") + version("3.22.5", commit="44461aa0412ef4a0d955730f365e44fc64fe1902") + version("3.20.9", commit="acbcbbee939f399673678653678cd9cb4917c4dc") + version("3.18.1", commit="101106f3fdd9e2c45d4a670c88f64c12e97a0495") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_elliptic/package.py b/repos/spack_repo/builtin/packages/r_elliptic/package.py new file mode 100644 index 00000000000..0c6206f7733 --- /dev/null +++ b/repos/spack_repo/builtin/packages/r_elliptic/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.r import RPackage + +from spack.package import * + + +class RElliptic(RPackage): + """Weierstrass and Jacobi Elliptic Functions. + + A suite of elliptic and related functions including Weierstrass and Jacobi + forms. Also includes various tools for manipulating and visualizing complex + functions. + """ + + cran = "elliptic" + + license("GPL-2.0-only") + + version("1.5-1", sha256="e6ecfddf7a1a2c6e40889e42f5a7e2e5693a99359d190dda6fdceb2bf93bc901") + + depends_on("r@2.5.0:", type=("build", "run")) + depends_on("r-mass", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_emmeans/package.py b/repos/spack_repo/builtin/packages/r_emmeans/package.py index 4e828d16a8e..e2256e50f03 100644 --- a/repos/spack_repo/builtin/packages/r_emmeans/package.py +++ b/repos/spack_repo/builtin/packages/r_emmeans/package.py @@ -22,6 +22,8 @@ class REmmeans(RPackage): license("GPL-2.0-only OR GPL-3.0-only") + version("2.0.2", sha256="58d8586687a2aa4ad3f818904e059ea158e1853f3930994886143c2ce7944a46") + version("2.0.0", sha256="9064dcd6fd2a6f88b5c77449d2c2d599eefc790c497a5ceb33b144ec8f446656") version("1.10.4", sha256="66653623c5984f99ba481a8611d6cf3b829e577f07bbe4043f279a3f8fbadcc3") version("1.8.5", sha256="5c88b415b5a42d8c1aa63af090c4987326530ea6d0e60bab9b5fb7e99a982415") version("1.8.2", sha256="785973457d8a6547df489f87b62987d44a68c4b9018661d38ca11ee34e49d209") @@ -32,12 +34,14 @@ class REmmeans(RPackage): version("1.7.0", sha256="d4b654896197dfda8354b33257380a66ee06117d6177b1ed7f1e42176525e9c5") version("1.6.0", sha256="201bb7b008dde94231ed60bcc6a32749442faaab4baeea99ad28b97c951b3c1e") - depends_on("r@3.5.0:", type=("build", "run")) depends_on("r@4.1.0:", type=("build", "run"), when="@1.8.1-1:") - depends_on("r-estimability@1.3:", type=("build", "run")) + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-estimability@1.4.1:", type=("build", "run"), when="@1.8.1-1:") - depends_on("r-numderiv", type=("build", "run")) + depends_on("r-estimability@1.3:", type=("build", "run")) depends_on("r-mvtnorm", type=("build", "run")) + depends_on("r-numderiv", type=("build", "run")) + depends_on("r-rlang", type=("build", "run"), when="@2:") + # Historical dependencies depends_on("r-plyr", type=("build", "run"), when="@:1.6") depends_on("r-xtable@1.8-2:", type=("build", "run"), when="@:1.8.2") diff --git a/repos/spack_repo/builtin/packages/r_enrichplot/package.py b/repos/spack_repo/builtin/packages/r_enrichplot/package.py index dce9fde3ac5..f4aca4caf21 100644 --- a/repos/spack_repo/builtin/packages/r_enrichplot/package.py +++ b/repos/spack_repo/builtin/packages/r_enrichplot/package.py @@ -17,15 +17,16 @@ class REnrichplot(RPackage): bioc = "enrichplot" - version("1.20.0", commit="ae72efe5f2ded561958f95bc8b1b41c0fc79840e") - version("1.18.0", commit="61ea941784a1ed6cc604af1c1cc4532b8b5fcea7") - version("1.16.2", commit="eeb21345288d96c116ac308649fa772d03760259") - version("1.16.1", commit="cff77b622b2312be546714ec437aa4bc585bac87") - version("1.14.1", commit="ccf3a6d9b7cd9cffd8de6d6263efdffe59d2ec36") - version("1.10.2", commit="77ee04f60a07cc31151f8f47f8ee64f3a43c9760") - version("1.4.0", commit="6ffe5d9c5dbe5cbea29f2e0941595475bbbcea0e") - version("1.2.0", commit="2eeaafb571d35a106eba8ae7df014f3201066e8b") - version("1.0.2", commit="ba7726fa0d4b581b7514dcbb04889cdbdd75ff29") + with default_args(get_full_repo=True): + version("1.20.0", commit="ae72efe5f2ded561958f95bc8b1b41c0fc79840e") + version("1.18.0", commit="61ea941784a1ed6cc604af1c1cc4532b8b5fcea7") + version("1.16.2", commit="eeb21345288d96c116ac308649fa772d03760259") + version("1.16.1", commit="cff77b622b2312be546714ec437aa4bc585bac87") + version("1.14.1", commit="ccf3a6d9b7cd9cffd8de6d6263efdffe59d2ec36") + version("1.10.2", commit="77ee04f60a07cc31151f8f47f8ee64f3a43c9760") + version("1.4.0", commit="6ffe5d9c5dbe5cbea29f2e0941595475bbbcea0e") + version("1.2.0", commit="2eeaafb571d35a106eba8ae7df014f3201066e8b") + version("1.0.2", commit="ba7726fa0d4b581b7514dcbb04889cdbdd75ff29") depends_on("r@3.4.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@1.10.2:") diff --git a/repos/spack_repo/builtin/packages/r_ensembldb/package.py b/repos/spack_repo/builtin/packages/r_ensembldb/package.py index 3294810bc6b..e96293c2c9b 100644 --- a/repos/spack_repo/builtin/packages/r_ensembldb/package.py +++ b/repos/spack_repo/builtin/packages/r_ensembldb/package.py @@ -25,17 +25,18 @@ class REnsembldb(RPackage): bioc = "ensembldb" - version("2.24.0", commit="45a79a438fde11b0d244b071e6ae2b652100be03") - version("2.22.0", commit="4dda178a14e080c643bbd8c4dd6378bfe4e6ee9f") - version("2.20.2", commit="ac1fb8389efd88099600af298d6bb3384206f9ed") - version("2.20.1", commit="e547d184730cfe5e65f59e4f3512395fb1cdba1a") - version("2.18.3", commit="e2fcfc0c7700110df070a171d2d542b37ec098f3") - version("2.14.0", commit="c7150519ed4ef38e5eac1043209863dbc7be43a1") - version("2.8.1", commit="a4d8d89c143dca86b364d59dff8e46cc81c41ac0") - version("2.6.8", commit="c2c4f41b4ecc81d5328ce1d380065dfcb5e0c54c") - version("2.4.1", commit="b5b6b94826a2f46a4faecb9dde750ecd3bfaf327") - version("2.2.2", commit="d71610e58aed88dbbe6a74e7a8ddfb7451398060") - version("2.0.4", commit="514623d71e3cca7a4e547adb579b5a958702ef86") + with default_args(get_full_repo=True): + version("2.24.0", commit="45a79a438fde11b0d244b071e6ae2b652100be03") + version("2.22.0", commit="4dda178a14e080c643bbd8c4dd6378bfe4e6ee9f") + version("2.20.2", commit="ac1fb8389efd88099600af298d6bb3384206f9ed") + version("2.20.1", commit="e547d184730cfe5e65f59e4f3512395fb1cdba1a") + version("2.18.3", commit="e2fcfc0c7700110df070a171d2d542b37ec098f3") + version("2.14.0", commit="c7150519ed4ef38e5eac1043209863dbc7be43a1") + version("2.8.1", commit="a4d8d89c143dca86b364d59dff8e46cc81c41ac0") + version("2.6.8", commit="c2c4f41b4ecc81d5328ce1d380065dfcb5e0c54c") + version("2.4.1", commit="b5b6b94826a2f46a4faecb9dde750ecd3bfaf327") + version("2.2.2", commit="d71610e58aed88dbbe6a74e7a8ddfb7451398060") + version("2.0.4", commit="514623d71e3cca7a4e547adb579b5a958702ef86") depends_on("r@3.5.0:", type=("build", "run"), when="@2.20.1:") depends_on("r-biocgenerics@0.15.10:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_ergm/package.py b/repos/spack_repo/builtin/packages/r_ergm/package.py index 46aa6b777b0..08f812604d6 100644 --- a/repos/spack_repo/builtin/packages/r_ergm/package.py +++ b/repos/spack_repo/builtin/packages/r_ergm/package.py @@ -32,6 +32,8 @@ class RErgm(RPackage): version("3.10.1", sha256="a2ac249ff07ba55b3359242f20389a892543b4fff5956d74143d2d41fa6d4beb") version("3.7.1", sha256="91dd011953b93ecb2b84bb3ababe7bddae25d9d86e69337156effd1da84b54c3") + depends_on("c", type="build") # generated + depends_on("r@3.5:", type=("build", "run"), when="@4.1.2:") depends_on("r@4.0:", type=("build", "run"), when="@4.2.1:") depends_on("r@4.1:", type=("build", "run"), when="@4.4.0:") diff --git a/repos/spack_repo/builtin/packages/r_evaluate/package.py b/repos/spack_repo/builtin/packages/r_evaluate/package.py index 068efe9b462..ba58f16eeea 100644 --- a/repos/spack_repo/builtin/packages/r_evaluate/package.py +++ b/repos/spack_repo/builtin/packages/r_evaluate/package.py @@ -17,6 +17,7 @@ class REvaluate(RPackage): license("MIT") + version("1.0.5", sha256="47aac79f889a828a5f8b4756cb972d7c2966bb984cbae17a4bd2389a73270794") version("0.24.0", sha256="e23d764a58e7525257d57da4ccfee9d6f63b5b3c18bf01c76818ec8c9c587fd6") version("0.20", sha256="35f5d9e85603600b58960923d591c5ca1115153febba7c612867d8b5598afff0") version("0.18", sha256="7f4eecdc97ac286d5c7a39c454fe6798da38ef634bf9305c595faa8facb2bf36") @@ -27,7 +28,10 @@ class REvaluate(RPackage): version("0.10", sha256="6163baeb382c2c1e87d4e36a2e986ef74673d8a92ea8508c39ac662ff3519657") version("0.9", sha256="e8118c9d6ec479c0e712913848404431b6b6c0282f3c131acaf9a677ab5fc6ae") - depends_on("r@3.0.2:", type=("build", "run")) - depends_on("r@4.0.0:", type=("build", "run"), when="@0.24.0:") + with default_args(type=("build", "run")): + depends_on("r@3.6:", when="@1:") + depends_on("r@4.0.0:", when="@0.24.0") + depends_on("r@3.0.2:") - depends_on("r-stringr@0.6.2:", type=("build", "run"), when="@:0.11") + # Historical dependencies + depends_on("r-stringr@0.6.2:", when="@:0.11") diff --git a/repos/spack_repo/builtin/packages/r_evd/package.py b/repos/spack_repo/builtin/packages/r_evd/package.py index fce81ce7ed4..6206078a00b 100644 --- a/repos/spack_repo/builtin/packages/r_evd/package.py +++ b/repos/spack_repo/builtin/packages/r_evd/package.py @@ -24,3 +24,5 @@ class REvd(RPackage): version("2.3-6.1", sha256="662c592d3f5c5693dbf1c673d1137c4a60a347e330b71be1f3933f201d2c8971") version("2.3-6", sha256="8edb8bc4f06d246c4343fd923bb5d5df99724d6db8821bfd996220343a834cb6") version("2.3-3", sha256="2fc5ef2e0c3a2a9392425ddd45914445497433d90fb80b8c363877baee4559b4") + + depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_exactextractr/package.py b/repos/spack_repo/builtin/packages/r_exactextractr/package.py index 1fea8cab049..6c25897ee3a 100644 --- a/repos/spack_repo/builtin/packages/r_exactextractr/package.py +++ b/repos/spack_repo/builtin/packages/r_exactextractr/package.py @@ -26,6 +26,8 @@ class RExactextractr(RPackage): version("0.3.0", sha256="c7fb38b38b9dc8b3ca5b8f1f84f4ba3256efd331f2b4636b496d42689ffc3fb0") version("0.2.1", sha256="d0b998c77c3fd9265a600a0e08e9bf32a2490a06c19df0d0c0dea4b5c9ab5773") + depends_on("cxx", type="build") # generated + depends_on("r@3.4.0:", type=("build", "run")) depends_on("r-rcpp@0.12.12:", type=("build", "run")) depends_on("r-raster", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_exomecopy/package.py b/repos/spack_repo/builtin/packages/r_exomecopy/package.py index 5b324c650b9..f1fe4df7b5d 100644 --- a/repos/spack_repo/builtin/packages/r_exomecopy/package.py +++ b/repos/spack_repo/builtin/packages/r_exomecopy/package.py @@ -18,12 +18,13 @@ class RExomecopy(RPackage): bioc = "exomeCopy" - version("1.46.0", commit="b282adb17fb05e1a940d068d27bfd9d4549a53e7") - version("1.44.0", commit="2dd6598d5fb14d49f7a42e597284c7a929c0cd62") - version("1.42.0", commit="ba0979cf5fbdefed841022f2dc0604941315c1b8") - version("1.40.0", commit="ebde39be67baace2c326359421fd17f4a02fd4fe") - version("1.36.0", commit="cbe3134acbbc9b7d5426ae2f142dc64cadb3fc26") - version("1.32.0", commit="c9a884427d91b6d62ddc16a939bd808e389d3ea6") + with default_args(get_full_repo=True): + version("1.46.0", commit="b282adb17fb05e1a940d068d27bfd9d4549a53e7") + version("1.44.0", commit="2dd6598d5fb14d49f7a42e597284c7a929c0cd62") + version("1.42.0", commit="ba0979cf5fbdefed841022f2dc0604941315c1b8") + version("1.40.0", commit="ebde39be67baace2c326359421fd17f4a02fd4fe") + version("1.36.0", commit="cbe3134acbbc9b7d5426ae2f142dc64cadb3fc26") + version("1.32.0", commit="c9a884427d91b6d62ddc16a939bd808e389d3ea6") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_exomedepth/package.py b/repos/spack_repo/builtin/packages/r_exomedepth/package.py index 10f16461c69..af715c58993 100644 --- a/repos/spack_repo/builtin/packages/r_exomedepth/package.py +++ b/repos/spack_repo/builtin/packages/r_exomedepth/package.py @@ -19,6 +19,9 @@ class RExomedepth(RPackage): version("1.1.16", sha256="7ba6b51e7ea435a2799b25d99bb9f48e2b1e99e15e47f88e514e98120b4cebe4") version("1.1.15", sha256="112bcb536f5766d9d0b55e064feedd6727ccab14cb1edfdba1f0d7b890e55ad2") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.4.0:", type=("build", "run")) depends_on("r-biostrings", type=("build", "run")) depends_on("r-iranges", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_experimenthub/package.py b/repos/spack_repo/builtin/packages/r_experimenthub/package.py index 948ae2f876f..63c3f0e7013 100644 --- a/repos/spack_repo/builtin/packages/r_experimenthub/package.py +++ b/repos/spack_repo/builtin/packages/r_experimenthub/package.py @@ -19,11 +19,12 @@ class RExperimenthub(RPackage): bioc = "ExperimentHub" - version("2.8.0", commit="f25c854c51878844098290a05936cb35b235f30e") - version("2.6.0", commit="557ba29720bce85902a85445dd0435b7356cdd7f") - version("2.4.0", commit="bdce35d3a89e8633cc395f28991e6b5d1eccbe8e") - version("2.2.1", commit="4e10686fa72baefef5d2990f41a7c44c527a7a7d") - version("1.16.1", commit="61d51b7ca968d6cc1befe299e0784d9a19ca51f6") + with default_args(get_full_repo=True): + version("2.8.0", commit="f25c854c51878844098290a05936cb35b235f30e") + version("2.6.0", commit="557ba29720bce85902a85445dd0435b7356cdd7f") + version("2.4.0", commit="bdce35d3a89e8633cc395f28991e6b5d1eccbe8e") + version("2.2.1", commit="4e10686fa72baefef5d2990f41a7c44c527a7a7d") + version("1.16.1", commit="61d51b7ca968d6cc1befe299e0784d9a19ca51f6") depends_on("r-biocgenerics@0.15.10:", type=("build", "run")) depends_on("r-annotationhub@2.19.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_expm/package.py b/repos/spack_repo/builtin/packages/r_expm/package.py index 00197eac322..0315bf732a2 100644 --- a/repos/spack_repo/builtin/packages/r_expm/package.py +++ b/repos/spack_repo/builtin/packages/r_expm/package.py @@ -24,4 +24,7 @@ class RExpm(RPackage): version("0.999-3", sha256="511bac5860cc5b3888bca626cdf23241b6118eabcc82d100935386039e516412") version("0.999-2", sha256="38f1e5bfa90f794486789695d0d9e49158c7eb9445dc171dd83dec3d8fa130d6") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r-matrix", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_factominer/package.py b/repos/spack_repo/builtin/packages/r_factominer/package.py index 0972eeae5b0..8913f652490 100644 --- a/repos/spack_repo/builtin/packages/r_factominer/package.py +++ b/repos/spack_repo/builtin/packages/r_factominer/package.py @@ -33,6 +33,8 @@ class RFactominer(RPackage): version("1.36", sha256="2198c3facaa41a23df6f9373d4ccb636b98a8810896e379e5deb686ab31b36de") version("1.35", sha256="afe176fe561d1d16c5965ecb2b80ec90a56d0fbcd75c43ec8025a401a5b715a9") + depends_on("c", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@2.4:") depends_on("r@4.0:", type=("build", "run"), when="@2.6:") diff --git a/repos/spack_repo/builtin/packages/r_fansi/package.py b/repos/spack_repo/builtin/packages/r_fansi/package.py index bef0c666466..ee58ca6428f 100644 --- a/repos/spack_repo/builtin/packages/r_fansi/package.py +++ b/repos/spack_repo/builtin/packages/r_fansi/package.py @@ -17,6 +17,7 @@ class RFansi(RPackage): license("GPL-2.0-only OR GPL-3.0-only") + version("1.0.7", sha256="32a43f073aeb5c1d31c804014b95c2cb644bb4132119fcea313838b7ea4eb792") version("1.0.6", sha256="ea9dc690dfe50a7fad7c5eb863c157d70385512173574c56f4253b6dfe431863") version("1.0.4", sha256="3163214e6c40922bbb495229259ed8ce1bebd98b77098a6936d234e43da9c49f") version("1.0.3", sha256="86a7b83d8c9d28baebbde310cd0b459d0950a9c7ff1a6276ce5858f6a89bc06a") diff --git a/repos/spack_repo/builtin/packages/r_fastcluster/package.py b/repos/spack_repo/builtin/packages/r_fastcluster/package.py index 5fe9cd02b39..67f48c6f49f 100644 --- a/repos/spack_repo/builtin/packages/r_fastcluster/package.py +++ b/repos/spack_repo/builtin/packages/r_fastcluster/package.py @@ -29,4 +29,6 @@ class RFastcluster(RPackage): version("1.2.3", sha256="1f229129e1cddc78c7bb5ecc90c4d28ed810ee68cf210004c7cdfa12cfaf2a01") version("1.1.25", sha256="f3661def975802f3dd3cec5b2a1379f3707eacff945cf448e33aec0da1ed4205") + depends_on("cxx", type="build") + depends_on("r@3.0.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_fastdigest/package.py b/repos/spack_repo/builtin/packages/r_fastdigest/package.py index dfec4de66de..02d56a9e269 100644 --- a/repos/spack_repo/builtin/packages/r_fastdigest/package.py +++ b/repos/spack_repo/builtin/packages/r_fastdigest/package.py @@ -26,3 +26,5 @@ class RFastdigest(RPackage): version("0.6-4", sha256="b2b6a550d90446bed911c9ad7642efd2a869257ecc5b9eb57e66b2cd4ef109a0") version("0.6-3", sha256="62a04aa39f751cf9bb7ff43cadb3c1a8d2270d7f3e8550a2d6ca9e1d8ca09a09") + + depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_fastica/package.py b/repos/spack_repo/builtin/packages/r_fastica/package.py index 5f881d39f66..5f72b114502 100644 --- a/repos/spack_repo/builtin/packages/r_fastica/package.py +++ b/repos/spack_repo/builtin/packages/r_fastica/package.py @@ -19,5 +19,7 @@ class RFastica(RPackage): version("1.2-3", sha256="e9ef82644cb64bb49ae3b7b6e0885f4fb2dc08ae030f8c76fe8dd8507b658950") version("1.2-2", sha256="32223593374102bf54c8fdca7b57231e4f4d0dd0be02d9f3500ad41b1996f1fe") + depends_on("c", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@4.0.0:", type=("build", "run"), when="@1.2-3:") diff --git a/repos/spack_repo/builtin/packages/r_fastmatch/package.py b/repos/spack_repo/builtin/packages/r_fastmatch/package.py index 1e982cae2ca..012c2e09e75 100644 --- a/repos/spack_repo/builtin/packages/r_fastmatch/package.py +++ b/repos/spack_repo/builtin/packages/r_fastmatch/package.py @@ -23,4 +23,6 @@ class RFastmatch(RPackage): version("1.1-3", sha256="1defa0b08bc3f48e4c3e4ba8df4f1b9e8299932fd8c747c67d32de44f90b9861") version("1.1-0", sha256="20b51aa4838dbe829e11e951444a9c77257dcaf85130807508f6d7e76797007d") + depends_on("c", type="build") # generated + depends_on("r@2.3.0:", type=("build", "run"), when="@1.1-3:") diff --git a/repos/spack_repo/builtin/packages/r_fastmatrix/package.py b/repos/spack_repo/builtin/packages/r_fastmatrix/package.py index e0f8abf4288..fd9b407e729 100644 --- a/repos/spack_repo/builtin/packages/r_fastmatrix/package.py +++ b/repos/spack_repo/builtin/packages/r_fastmatrix/package.py @@ -38,4 +38,7 @@ class RFastmatrix(RPackage): version("0.3-8196", sha256="72fae07c627b995a091ccc3e14b2b2167474e3b1f14d723e87252538cf978fb6") version("0.3", sha256="d92e789454a129db5f6f5b23e0d2245f3d55ff34b167427af265b9a6331e7c21") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_ff/package.py b/repos/spack_repo/builtin/packages/r_ff/package.py index 1ab6c227e8f..8858a8afca1 100644 --- a/repos/spack_repo/builtin/packages/r_ff/package.py +++ b/repos/spack_repo/builtin/packages/r_ff/package.py @@ -65,6 +65,9 @@ class RFf(RPackage): version("2.2-14", sha256="1c6307847275b1b8ad9e2ffdce3f4df3c9d955dc2e8a45e3fd7bfd2b0926e2f0") version("2.2-13", sha256="8bfb08afe0651ef3c23aaad49208146d5f929af5af12a25262fe7743fa346ddb") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@2.10.1:", type=("build", "run")) depends_on("r-bit@1.1-13:", type=("build", "run")) depends_on("r-bit@4.0.0:", type=("build", "run"), when="@4.0.4:") diff --git a/repos/spack_repo/builtin/packages/r_fgsea/package.py b/repos/spack_repo/builtin/packages/r_fgsea/package.py index 20c5f95994d..26aae633db8 100644 --- a/repos/spack_repo/builtin/packages/r_fgsea/package.py +++ b/repos/spack_repo/builtin/packages/r_fgsea/package.py @@ -19,16 +19,17 @@ class RFgsea(RPackage): license("MIT") - version("1.26.0", commit="102b439e2208ae415dc19d3d1ac8936f9c5999f1") - version("1.24.0", commit="ac74ccd935c15623b8584caa791835aec514144b") - version("1.22.0", commit="e4e203aa64faa984e0406fed5d87a422d9df92f2") - version("1.20.0", commit="b704f81687dc16afdaafc6d30108c62a067856b2") - version("1.16.0", commit="9d9df596c7e160afa18e067b7637cfc465494318") - version("1.10.1", commit="fb06a6ebfb4a195e77e37226d100a2148b90c5f3") - version("1.8.0", commit="bb2898aca9fb23e90770671a83fe23f79bb1841b") - version("1.6.0", commit="52b801b7c2dfd8238fa8f2b402fddb4fda60271d") - version("1.4.1", commit="73de5ff364e520ac99507a9ee5a61a0d23d3c44e") - version("1.2.1", commit="99b04eef664204d0dca4b9f8027cd7eefb006b72") + with default_args(get_full_repo=True): + version("1.26.0", commit="102b439e2208ae415dc19d3d1ac8936f9c5999f1") + version("1.24.0", commit="ac74ccd935c15623b8584caa791835aec514144b") + version("1.22.0", commit="e4e203aa64faa984e0406fed5d87a422d9df92f2") + version("1.20.0", commit="b704f81687dc16afdaafc6d30108c62a067856b2") + version("1.16.0", commit="9d9df596c7e160afa18e067b7637cfc465494318") + version("1.10.1", commit="fb06a6ebfb4a195e77e37226d100a2148b90c5f3") + version("1.8.0", commit="bb2898aca9fb23e90770671a83fe23f79bb1841b") + version("1.6.0", commit="52b801b7c2dfd8238fa8f2b402fddb4fda60271d") + version("1.4.1", commit="73de5ff364e520ac99507a9ee5a61a0d23d3c44e") + version("1.2.1", commit="99b04eef664204d0dca4b9f8027cd7eefb006b72") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_fields/package.py b/repos/spack_repo/builtin/packages/r_fields/package.py index 095e9d72dd5..8fd4ea536bc 100644 --- a/repos/spack_repo/builtin/packages/r_fields/package.py +++ b/repos/spack_repo/builtin/packages/r_fields/package.py @@ -45,6 +45,9 @@ class RFields(RPackage): version("11.6", sha256="8600d1d992c40668cc2ab01b3c17d0e1bd44a001ec7ba9f468bc0e9ef87c59db") version("9.9", sha256="262f03c630773b580c7162ab2a031c894ca489fd83989fd8a2f67573306e78e1") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@14.1:") depends_on("r-spam", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_filehash/package.py b/repos/spack_repo/builtin/packages/r_filehash/package.py index 1235edc1982..90fd5b0a4bb 100644 --- a/repos/spack_repo/builtin/packages/r_filehash/package.py +++ b/repos/spack_repo/builtin/packages/r_filehash/package.py @@ -31,5 +31,7 @@ class RFilehash(RPackage): version("2.4-1", sha256="d0e087d338d89372c251c18fc93b53fb24b1750ea154833216ff16aff3b1eaf4") version("2.3", sha256="63b098df9a2cf4aac862cd7bf86ae516e00852a8ad0f3090f9721b6b173e6edb") + depends_on("c", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r-digest", type=("build", "run"), when="@2.4-5:") diff --git a/repos/spack_repo/builtin/packages/r_filelock/package.py b/repos/spack_repo/builtin/packages/r_filelock/package.py index 9d54df3eccd..ed011df83a6 100644 --- a/repos/spack_repo/builtin/packages/r_filelock/package.py +++ b/repos/spack_repo/builtin/packages/r_filelock/package.py @@ -20,4 +20,6 @@ class RFilelock(RPackage): version("1.0.3", sha256="2dcd0ec453f5ec4d96f69b0c472569d57d3c5f9956a82a48492ee02f12071137") version("1.0.2", sha256="ac2915950789b16c43a625a2b8dab6ba423588db4a7d0daa75b74518b82b1403") + depends_on("c", type="build") + depends_on("r@3.4:", type=("build", "run"), when="@1.0.3:") diff --git a/repos/spack_repo/builtin/packages/r_flexclust/package.py b/repos/spack_repo/builtin/packages/r_flexclust/package.py index 11afa3c3bfe..be7d8eb55b2 100644 --- a/repos/spack_repo/builtin/packages/r_flexclust/package.py +++ b/repos/spack_repo/builtin/packages/r_flexclust/package.py @@ -27,6 +27,8 @@ class RFlexclust(RPackage): version("1.4-0", sha256="82fe445075a795c724644864c7ee803c5dd332a89ea9e6ccf7cd1ae2d1ecfc74") version("1.3-5", sha256="dbf49969c93a7b314d9dc3299a0764ed9a804ba7dcbdc08a1235f244f4b85059") + depends_on("c", type="build") # generated + depends_on("r@2.14.0:", type=("build", "run")) depends_on("r-lattice", type=("build", "run")) depends_on("r-modeltools", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_fnn/package.py b/repos/spack_repo/builtin/packages/r_fnn/package.py index 8d2c1fa16f4..fd712164060 100644 --- a/repos/spack_repo/builtin/packages/r_fnn/package.py +++ b/repos/spack_repo/builtin/packages/r_fnn/package.py @@ -27,5 +27,8 @@ class RFnn(RPackage): version("0.6-3", sha256="9ac1817852427a056b5c6ad6ac5212bc43abd29ce15f98441a6261b25cf5f810") version("0.6-2", sha256="f1fc410c341175bdb11a75b063c8c987e15b632378b56148d3566b91fca53a31") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@4.0.0:", type=("build", "run"), when="@1.1.4:") diff --git a/repos/spack_repo/builtin/packages/r_fontawesome/package.py b/repos/spack_repo/builtin/packages/r_fontawesome/package.py index e2f74c79293..ac304a97b8d 100644 --- a/repos/spack_repo/builtin/packages/r_fontawesome/package.py +++ b/repos/spack_repo/builtin/packages/r_fontawesome/package.py @@ -20,13 +20,16 @@ class RFontawesome(RPackage): license("MIT") + version("0.5.3", sha256="1b1909d0fad5ec4c658f5c628a195b9bd93d544afa957e68e897224cfb81fb4f") version("0.5.2", sha256="da3de2a9717084d1400d48edd783f06c66b8c910ce9c8d753d1b7d99be1c5cc9") version("0.5.1", sha256="f4ebbbe2ee8d2e2c0342b72095cfe668bd9800ea6c4bf7180300544bde7e566c") version("0.4.0", sha256="760a0bc5b50ddbce1160b123f3b3d76342167519d75641dc2c5b952fa8d4242f") version("0.3.0", sha256="4deefcf4d4580d84213f863351c2a23c39adbd2f8762d7477ec2faa8235a1a31") version("0.2.2", sha256="572db64d1b3c9be301935e0ca7baec69f3a6e0aa802e23f1f224b3724259df64") - depends_on("r@3.3.0:", type=("build", "run")) - depends_on("r-rlang@0.4.10:", type=("build", "run")) - depends_on("r-rlang@1.0.6:", type=("build", "run"), when="@0.5.1:") - depends_on("r-htmltools@0.5.1.1:", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("r@3.3.0:") + + depends_on("r-rlang@1.0.6:", when="@0.5.1:") + depends_on("r-rlang@0.4.10:") + depends_on("r-htmltools@0.5.1.1:") diff --git a/repos/spack_repo/builtin/packages/r_forcats/package.py b/repos/spack_repo/builtin/packages/r_forcats/package.py index 7ca3fa8452b..79b81e3230c 100644 --- a/repos/spack_repo/builtin/packages/r_forcats/package.py +++ b/repos/spack_repo/builtin/packages/r_forcats/package.py @@ -19,6 +19,7 @@ class RForcats(RPackage): license("MIT") + version("1.0.1", sha256="1de46b83b7038a293e612775197b7ffe47bd079cd2385aa7c65e98171bbd3605") version("1.0.0", sha256="c5bb157909d92e1e1a427c0dc5cb358ea00a43a14918a9088fa4f6630962254e") version("0.5.2", sha256="14a60a43183f82da0fbf42633cee446d21dcbb98a8c37361b5c8061a4da86141") version("0.5.1", sha256="c4fb96e874e2bedaa8a1aa32ea22abdee7906d93b5c5c7b42c0894c0c5b6a289") @@ -27,16 +28,21 @@ class RForcats(RPackage): version("0.3.0", sha256="95814610ec18b8a8830eba63751954387f9d21400d6ab40394ed0ff22c0cb657") version("0.2.0", sha256="b5bce370422d4c0ec9509249ae645373949bfbe9217cdf50dce2bfbdad9f7cd7") - depends_on("r@3.1:", type=("build", "run")) - depends_on("r@3.2:", type=("build", "run"), when="@0.5.0:") - depends_on("r@3.4:", type=("build", "run"), when="@0.5.2:") - depends_on("r-cli", type=("build", "run"), when="@0.5.2:") - depends_on("r-cli@3.4.0:", type=("build", "run"), when="@1.0.0:") - depends_on("r-lifecycle", type=("build", "run"), when="@0.5.2:") - depends_on("r-glue", type=("build", "run"), when="@0.5.2:") - depends_on("r-magrittr", type=("build", "run")) - depends_on("r-rlang", type=("build", "run"), when="@0.4.0:") - depends_on("r-rlang@1.0.0:", type=("build", "run"), when="@0.5.2:") - depends_on("r-tibble", type=("build", "run")) - depends_on("r-ellipsis", type=("build", "run"), when="@0.4.0:0.5.2") - depends_on("r-withr", type=("build", "run"), when="@0.5.2:0.5.2") + with default_args(type=("build", "run")): + depends_on("r@4.1:", when="@1.0.1:") + depends_on("r@3.4:", when="@0.5.2:") + depends_on("r@3.2:", when="@0.5.0:") + depends_on("r@3.1:") + + depends_on("r-cli@3.4.0:", when="@1.0.0:") + depends_on("r-cli", when="@0.5.2:") + depends_on("r-glue", when="@0.5.2:") + depends_on("r-lifecycle", when="@0.5.2:") + depends_on("r-magrittr") + depends_on("r-rlang@1.0.0:", when="@0.5.2:") + depends_on("r-rlang", when="@0.4.0:") + depends_on("r-tibble") + + # Historical dependencies + depends_on("r-ellipsis", when="@0.4.0:0.5.2") + depends_on("r-withr", when="@0.5.2:0.5.2") diff --git a/repos/spack_repo/builtin/packages/r_forecast/package.py b/repos/spack_repo/builtin/packages/r_forecast/package.py index dd554f939b7..11697f158f4 100644 --- a/repos/spack_repo/builtin/packages/r_forecast/package.py +++ b/repos/spack_repo/builtin/packages/r_forecast/package.py @@ -28,6 +28,9 @@ class RForecast(RPackage): version("8.6", sha256="4279e4f700e26310bae39419ab4a9b5918a850148667a5e577a4807d53eb4d02") version("8.2", sha256="eb3fab64ed139d068e7d026cd3880f1b623f4153a832fb71845488fa75e8b812") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.0.2:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@8.18:") depends_on("r-colorspace", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_foreign/package.py b/repos/spack_repo/builtin/packages/r_foreign/package.py index a375da3676f..599dce12ac7 100644 --- a/repos/spack_repo/builtin/packages/r_foreign/package.py +++ b/repos/spack_repo/builtin/packages/r_foreign/package.py @@ -28,5 +28,7 @@ class RForeign(RPackage): version("0.8-70.2", sha256="ae82fad68159860b8ca75b49538406ef3d2522818e649d7ccc209c18085ef179") version("0.8-66", sha256="d7401e5fcab9ce6e697d3520dbb8475e229c30341c0004c4fa489c82aa4447a4") + depends_on("c", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@4.0.0:", type=("build", "run"), when="@0.8-81:") diff --git a/repos/spack_repo/builtin/packages/r_fracdiff/package.py b/repos/spack_repo/builtin/packages/r_fracdiff/package.py index f01368c8555..62cb8d23f1d 100644 --- a/repos/spack_repo/builtin/packages/r_fracdiff/package.py +++ b/repos/spack_repo/builtin/packages/r_fracdiff/package.py @@ -23,3 +23,5 @@ class RFracdiff(RPackage): version("1.5-2", sha256="ac5f881330287f5bc68b5cdce4fb74156a95356ffb875ee171538bc44200f437") version("1.5-1", sha256="b8103b32a4ca3a59dda1624c07da08ecd144c7a91a747d1f4663e99421950eb6") version("1.4-2", sha256="983781cedc2b4e3ba9fa020213957d5133ae9cd6710bc61d6225728e2f6e850e") + + depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_fs/package.py b/repos/spack_repo/builtin/packages/r_fs/package.py index 404fb786496..db9a58ce076 100644 --- a/repos/spack_repo/builtin/packages/r_fs/package.py +++ b/repos/spack_repo/builtin/packages/r_fs/package.py @@ -17,18 +17,23 @@ class RFs(RPackage): license("MIT") + version("2.1.0", sha256="7088af1117d65c4ceb144b532e323f197fc8243b1d704bf6edf40774789829cd") version("1.6.4", sha256="7e06290f2dbe36f54fdf51b748a4b00b8b0f68967b5754e37e0c83df7fea5ac8") version("1.6.2", sha256="548b7c0ed5ab26dc4fbd88707ae12987bcaef834dbc6de4e17d453846dc436b2") version("1.5.2", sha256="35cad1781d6d17c1feb56adc4607079c6844b63794d0ce1e74bb18dbc11e1987") version("1.5.0", sha256="36df1653571de3c628a4f769c4627f6ac53d0f9e4106d9d476afb22ae9603897") version("1.3.1", sha256="d6934dca8f835d8173e3fb9fd4d5e2740c8c04348dd2bcc57df1b711facb46bc") - depends_on("c", type="build") - depends_on("cxx", type="build") + with default_args(type="build"): + depends_on("c") + depends_on("cxx") + depends_on("cmake") - depends_on("r@3.1:", type=("build", "run")) - depends_on("r@3.4:", type=("build", "run"), when="@1.6.2:") - depends_on("r@3.6:", type=("build", "run"), when="@1.6.4:") - depends_on("gmake", type="build") + with default_args(type=("build", "run")): + depends_on("r@4.1:", when="@1.6.7:") + depends_on("r@3.6:", when="@1.6.4:") + depends_on("r@3.4:", when="@1.6.2:") + depends_on("r@3.1:") - depends_on("r-rcpp", type=("build", "run"), when="@:1.3.1") + # Historical dependencies + depends_on("r-rcpp", when="@:1.3.1") diff --git a/repos/spack_repo/builtin/packages/r_future/package.py b/repos/spack_repo/builtin/packages/r_future/package.py index a4a9f0934ff..27b2c9a9109 100644 --- a/repos/spack_repo/builtin/packages/r_future/package.py +++ b/repos/spack_repo/builtin/packages/r_future/package.py @@ -29,6 +29,7 @@ class RFuture(RPackage): license("LGPL-2.1-or-later") + version("1.70.0", sha256="0141056909ec2e9f8901ea611930d8a892ec83533855e965b819b694be999017") version("1.34.0", sha256="5839d4fd1f8beb1b18b27a7c50c1eb2bb5d80acd926b1bce9323637c8b2dfa5d") version("1.32.0", sha256="d5bb74512d069745184dd580a36449dc0b50d95b1cbbbc1605db82de596f2f76") version("1.29.0", sha256="856d1fd51d2f998c6572490c49fdcc27e5f3e0c1ade75eecdbf64a2cd0954373") @@ -40,18 +41,26 @@ class RFuture(RPackage): version("1.21.0", sha256="909e6602068eba543a6d2e464b911123cc29efdb600a7000eff0e5624ff0d12d") version("1.14.0", sha256="0a535010d97a01b21aaf9d863603e44359335e273019c1e1980bbb5b2917dbcb") - depends_on("r-digest", type=("build", "run")) - depends_on("r-globals@0.12.4:", type=("build", "run")) - depends_on("r-globals@0.13.1:", type=("build", "run"), when="@1.21.0:") - depends_on("r-globals@0.14.0:", type=("build", "run"), when="@1.22.0:") - depends_on("r-globals@0.15.0:", type=("build", "run"), when="@1.26.1:") - depends_on("r-globals@0.16.0:", type=("build", "run"), when="@1.28.0:") - depends_on("r-globals@0.16.1:", type=("build", "run"), when="@1.29.0:") - depends_on("r-listenv@0.7.0:", type=("build", "run")) - depends_on("r-listenv@0.8.0:", type=("build", "run"), when="@1.21.0:") - depends_on("r-parallelly@1.21.0:", type=("build", "run"), when="@1.21.0:") - depends_on("r-parallelly@1.26.1:", type=("build", "run"), when="@1.22.0:") - depends_on("r-parallelly@1.30.0:", type=("build", "run"), when="@1.24.0:") - depends_on("r-parallelly@1.32.1:", type=("build", "run"), when="@1.28.0:") - depends_on("r-parallelly@1.34.0:", type=("build", "run"), when="@1.32.0:") - depends_on("r-parallelly@1.38.0:", type=("build", "run"), when="@1.34.0:") + with default_args(type=("build", "run")): + depends_on("r@3.2:", when="@1.40:") + + depends_on("r-digest") + + depends_on("r-globals@0.18.0:", when="@1.49.0:") + depends_on("r-globals@0.16.1:", when="@1.29.0:") + depends_on("r-globals@0.16.0:", when="@1.28.0:") + depends_on("r-globals@0.15.0:", when="@1.26.1:") + depends_on("r-globals@0.14.0:", when="@1.22.0:") + depends_on("r-globals@0.13.1:", when="@1.21.0:") + depends_on("r-globals@0.12.4:") + + depends_on("r-listenv@0.8.0:", when="@1.21.0:") + depends_on("r-listenv@0.7.0:") + + depends_on("r-parallelly@1.44.0:", when="@1.49.0:") + depends_on("r-parallelly@1.38.0:", when="@1.34.0:") + depends_on("r-parallelly@1.34.0:", when="@1.32.0:") + depends_on("r-parallelly@1.32.1:", when="@1.28.0:") + depends_on("r-parallelly@1.30.0:", when="@1.24.0:") + depends_on("r-parallelly@1.26.1:", when="@1.22.0:") + depends_on("r-parallelly@1.21.0:", when="@1.21.0:") diff --git a/repos/spack_repo/builtin/packages/r_future_apply/package.py b/repos/spack_repo/builtin/packages/r_future_apply/package.py index 2d8bf849d9c..edd6021bac9 100644 --- a/repos/spack_repo/builtin/packages/r_future_apply/package.py +++ b/repos/spack_repo/builtin/packages/r_future_apply/package.py @@ -20,6 +20,7 @@ class RFutureApply(RPackage): cran = "future.apply" + version("1.20.2", sha256="30d6b64c93a1c40fc1b07e21503fce811707fc30589145832ce0b8947ce74bdf") version("1.11.2", sha256="f4a635b0fa5e0d826d2f8da6bc1fa5bb055e640c29a85c644931d08ab2d81387") version("1.10.0", sha256="dee92dd84812fe8c55064c0f0e6d806c0c29848b5a5fc4a7725d6a4b623e94aa") version("1.9.1", sha256="4f22ccd5caa62077581c6adc4d35543451e547220270aed3f1abcbaa6a202133") @@ -28,14 +29,20 @@ class RFutureApply(RPackage): version("1.7.0", sha256="2ffa6adb55f239918ce9679b7eac8dcc4bf2e6bed35c9cbedf4bf90d906345db") version("1.3.0", sha256="6374eca49bb81e05c013509c8e324cf9c5d023f9f8217b29ce7b7e12025ca371") - depends_on("r@3.2.0:", type=("build", "run")) - depends_on("r-future@1.13.0:", type=("build", "run")) - depends_on("r-future@1.17.0:", type=("build", "run"), when="@1.7.0:") - depends_on("r-future@1.21.0:", type=("build", "run"), when="@1.8.1:") - depends_on("r-future@1.22.1:", type=("build", "run"), when="@1.9.0:") - depends_on("r-future@1.27.0:", type=("build", "run"), when="@1.9.1:") - depends_on("r-future@1.28.0:", type=("build", "run"), when="@1.10.0:") - depends_on("r-globals@0.12.4:", type=("build", "run")) - depends_on("r-globals@0.12.5:", type=("build", "run"), when="@1.7.0:") - depends_on("r-globals@0.14.0:", type=("build", "run"), when="@1.8.1:") - depends_on("r-globals@0.16.1:", type=("build", "run"), when="@1.9.1:") + with default_args(type=("build", "run")): + depends_on("r@3.2.0:") + + depends_on("r-future@1.49.0:", when="@1.20.0:") + depends_on("r-future@1.28.0:", when="@1.10.0:") + depends_on("r-future@1.27.0:", when="@1.9.1:") + depends_on("r-future@1.22.1:", when="@1.9.0:") + depends_on("r-future@1.21.0:", when="@1.8.1:") + depends_on("r-future@1.17.0:", when="@1.7.0:") + depends_on("r-future@1.13.0:") + + # newer versions don't have a versions restriction anymore + # -> leave it in nevertheless + depends_on("r-globals@0.16.1:", when="@1.9.1:") + depends_on("r-globals@0.14.0:", when="@1.8.1:") + depends_on("r-globals@0.12.5:", when="@1.7.0:") + depends_on("r-globals@0.12.4:") diff --git a/repos/spack_repo/builtin/packages/r_gamlss/package.py b/repos/spack_repo/builtin/packages/r_gamlss/package.py index 23106521bf3..eb5ccd4d96d 100644 --- a/repos/spack_repo/builtin/packages/r_gamlss/package.py +++ b/repos/spack_repo/builtin/packages/r_gamlss/package.py @@ -30,6 +30,8 @@ class RGamlss(RPackage): version("5.1-3", sha256="d37d121bc2acdbacc20cea04a1ed4489a575079e2a7b17b4a9823ee283857317") version("5.1-2", sha256="0d404e74768a8f98c6a5e9a48bd2cf4280125831a5dcd8c7f7b57922f57e016b") + depends_on("c", type="build") # generated + depends_on("r@3.3.0:", type=("build", "run")) depends_on("r-gamlss-data@5.0-0:", type=("build", "run")) depends_on("r-gamlss-dist@4.3.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_gamlss_dist/package.py b/repos/spack_repo/builtin/packages/r_gamlss_dist/package.py index 7ae8c6d03ff..2b6cd18b7b7 100644 --- a/repos/spack_repo/builtin/packages/r_gamlss_dist/package.py +++ b/repos/spack_repo/builtin/packages/r_gamlss_dist/package.py @@ -31,6 +31,8 @@ class RGamlssDist(RPackage): version("5.1-3", sha256="87fd643c82579519b67c66c1d87383fa1e203e8b09f607649ee7bce142bda404") version("5.1-1", sha256="44f999ff74ee516757eb39c8308c48aa850523aad2f38e622268313a13dda0b1") + depends_on("c", type="build") # generated + depends_on("r@2.15:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@6.0-3:") depends_on("r-mass", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_gargle/package.py b/repos/spack_repo/builtin/packages/r_gargle/package.py index fbee829b46d..4db2b2e020a 100644 --- a/repos/spack_repo/builtin/packages/r_gargle/package.py +++ b/repos/spack_repo/builtin/packages/r_gargle/package.py @@ -19,26 +19,33 @@ class RGargle(RPackage): license("MIT") + version("1.6.1", sha256="0c72c60e5e448ad9db6d4f224654afa1a1d459d43f31c623c8117eba29850e5c") version("1.5.2", sha256="4a5beb046eb50a168b4baf5d1fcd8ac20d698e7fcb6b6ef46a436ded5b039001") version("1.4.0", sha256="8e0f1edf5595d4fd27bd92f98af1cc0c1349975803d9d6f3ff0c25ee2440498b") version("1.2.1", sha256="f367e2c82f403167ae84058303a4fb0402664558a2abf0b495474a7ef1a2f020") version("1.2.0", sha256="4d46ca2933f19429ca5a2cfe47b4130a75c7cd9931c7758ade55bac0c091d73b") - depends_on("r@3.3:", type=("build", "run")) - depends_on("r@3.5:", type=("build", "run"), when="@1.2.1:") - depends_on("r@3.6:", type=("build", "run"), when="@1.5.0:") - depends_on("r-cli@3.0.0:", type=("build", "run")) - depends_on("r-cli@3.0.1:", type=("build", "run"), when="@1.4.0:") - depends_on("r-fs@1.3.1:", type=("build", "run")) - depends_on("r-glue@1.3.0:", type=("build", "run")) - depends_on("r-httr@1.4.0:", type=("build", "run")) - depends_on("r-httr@1.4.5:", type=("build", "run"), when="@1.4.0:") - depends_on("r-jsonlite", type=("build", "run")) - depends_on("r-openssl", type=("build", "run"), when="@1.4.0:") - depends_on("r-lifecycle", type=("build", "run"), when="@1.4.0:") - depends_on("r-rappdirs", type=("build", "run")) - depends_on("r-rlang@0.4.9:", type=("build", "run")) - depends_on("r-rlang@1.0.0:", type=("build", "run"), when="@1.2.1:") - depends_on("r-rlang@1.1.0:", type=("build", "run"), when="@1.4.0:") - depends_on("r-withr", type=("build", "run")) - depends_on("r-rstudioapi", type=("build", "run"), when="@:1.2.1") + with default_args(type=("build", "run")): + depends_on("r@4.1:", when="@1.6.1:") + depends_on("r@3.6:", when="@1.5.0:") + depends_on("r@3.5:", when="@1.2.1:") + depends_on("r@3.3:") + + depends_on("r-cli@3.0.1:", when="@1.4.0:") + depends_on("r-cli@3.0.0:") + depends_on("r-fs@1.3.1:") + depends_on("r-glue@1.3.0:") + depends_on("r-httr@1.4.5:", when="@1.4.0:") + depends_on("r-httr@1.4.0:") + depends_on("r-jsonlite") + depends_on("r-lifecycle@0.2.0:", when="@1.6.0:") + depends_on("r-lifecycle", when="@1.4.0:") + depends_on("r-openssl", when="@1.4.0:") + depends_on("r-rappdirs") + depends_on("r-rlang@1.1.0:", when="@1.4.0:") + depends_on("r-rlang@1.0.0:", when="@1.2.1:") + depends_on("r-rlang@0.4.9:") + depends_on("r-withr") + + # Historical dependencies + depends_on("r-rstudioapi", when="@:1.2.1") diff --git a/repos/spack_repo/builtin/packages/r_gbm/package.py b/repos/spack_repo/builtin/packages/r_gbm/package.py index e77a04bcea0..4f9d713d8f8 100644 --- a/repos/spack_repo/builtin/packages/r_gbm/package.py +++ b/repos/spack_repo/builtin/packages/r_gbm/package.py @@ -27,6 +27,9 @@ class RGbm(RPackage): version("2.1.5", sha256="06fbde10639dfa886554379b40a7402d1f1236a9152eca517e97738895a4466f") version("2.1.3", sha256="eaf24be931d762f1ccca4f90e15997719d01005f152160a3d20d858a0bbed92b") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@2.9.0:", type=("build", "run")) depends_on("r-lattice", type=("build", "run")) depends_on("r-survival", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_gcrma/package.py b/repos/spack_repo/builtin/packages/r_gcrma/package.py index bd08e20c1fe..4b3ce2a12e5 100644 --- a/repos/spack_repo/builtin/packages/r_gcrma/package.py +++ b/repos/spack_repo/builtin/packages/r_gcrma/package.py @@ -14,16 +14,17 @@ class RGcrma(RPackage): bioc = "gcrma" - version("2.72.0", commit="5cfccc7c684283dc3a82830bad75aad254efcb01") - version("2.70.0", commit="095f38914525d8812524a3cb38db8075382f8121") - version("2.68.0", commit="c14063ff5490fac8d60530826613d728e68b3d66") - version("2.66.0", commit="ba134b392def89d36b5639a187e0c25a4353457b") - version("2.62.0", commit="b91bdf5bf4e875defedb4d4e3e1e75867773287a") - version("2.56.0", commit="1f37bbfb4d3ed542b1e90704ab0fa8914d5e0224") - version("2.54.0", commit="9515fdbbc766a2a3b2ec61cf530c57bbded77ccc") - version("2.52.0", commit="d6e90b05432d2a8b0583d3fed001811ecdf49d7d") - version("2.50.0", commit="cbba460d131e1073059500b8d7b168a78f963992") - version("2.48.0", commit="3ea0eb0b5c15ffb24df76620667ae7996ed715b4") + with default_args(get_full_repo=True): + version("2.72.0", commit="5cfccc7c684283dc3a82830bad75aad254efcb01") + version("2.70.0", commit="095f38914525d8812524a3cb38db8075382f8121") + version("2.68.0", commit="c14063ff5490fac8d60530826613d728e68b3d66") + version("2.66.0", commit="ba134b392def89d36b5639a187e0c25a4353457b") + version("2.62.0", commit="b91bdf5bf4e875defedb4d4e3e1e75867773287a") + version("2.56.0", commit="1f37bbfb4d3ed542b1e90704ab0fa8914d5e0224") + version("2.54.0", commit="9515fdbbc766a2a3b2ec61cf530c57bbded77ccc") + version("2.52.0", commit="d6e90b05432d2a8b0583d3fed001811ecdf49d7d") + version("2.50.0", commit="cbba460d131e1073059500b8d7b168a78f963992") + version("2.48.0", commit="3ea0eb0b5c15ffb24df76620667ae7996ed715b4") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_gdsfmt/package.py b/repos/spack_repo/builtin/packages/r_gdsfmt/package.py index d170eddf01e..b3a8f4d69db 100644 --- a/repos/spack_repo/builtin/packages/r_gdsfmt/package.py +++ b/repos/spack_repo/builtin/packages/r_gdsfmt/package.py @@ -27,16 +27,17 @@ class RGdsfmt(RPackage): license("BSD-2-Clause") - version("1.36.0", commit="39ba0af93d499b0f9ef53f04d4f15e5436616f1a") - version("1.34.0", commit="ab912c393d8eb6dc26f844a13422a29b9ce7265b") - version("1.32.0", commit="06f2097cc10b1888739f86e635383a0f2ee7e208") - version("1.30.0", commit="d27dde6a70bb2295f5bbc8961152b45ccee7a652") - version("1.26.1", commit="bd180b21b1ace120035f0da255cbf6f13088f069") - version("1.20.0", commit="b1fbaba0a5ace3dc45daecc85168651cd85dce00") - version("1.18.1", commit="b911b953e9db7988e93ec2010b0ab1e384d073c9") - version("1.16.0", commit="49b011452585e432b983b68466a230c9b71d8a95") - version("1.14.1", commit="15743647b7eea5b82d3284858b4591fb6e59959d") - version("1.12.0", commit="d705a95b0bea7be2a2b37e939f45017337ba0fb6") + with default_args(get_full_repo=True): + version("1.36.0", commit="39ba0af93d499b0f9ef53f04d4f15e5436616f1a") + version("1.34.0", commit="ab912c393d8eb6dc26f844a13422a29b9ce7265b") + version("1.32.0", commit="06f2097cc10b1888739f86e635383a0f2ee7e208") + version("1.30.0", commit="d27dde6a70bb2295f5bbc8961152b45ccee7a652") + version("1.26.1", commit="bd180b21b1ace120035f0da255cbf6f13088f069") + version("1.20.0", commit="b1fbaba0a5ace3dc45daecc85168651cd85dce00") + version("1.18.1", commit="b911b953e9db7988e93ec2010b0ab1e384d073c9") + version("1.16.0", commit="49b011452585e432b983b68466a230c9b71d8a95") + version("1.14.1", commit="15743647b7eea5b82d3284858b4591fb6e59959d") + version("1.12.0", commit="d705a95b0bea7be2a2b37e939f45017337ba0fb6") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_genefilter/package.py b/repos/spack_repo/builtin/packages/r_genefilter/package.py index db0f8b990a7..59013f7bc94 100644 --- a/repos/spack_repo/builtin/packages/r_genefilter/package.py +++ b/repos/spack_repo/builtin/packages/r_genefilter/package.py @@ -14,17 +14,18 @@ class RGenefilter(RPackage): bioc = "genefilter" - version("1.82.0", commit="1ee4bdc65b0144853211354f8fabf8b497d9a565") - version("1.80.0", commit="14fbc2d776916e572583e3c268ea9ba60ed60a9a") - version("1.78.0", commit="2f574388971641d3a71858f5c34606c04fcd2ba2") - version("1.76.0", commit="8d630fd25f0d2a4101e05e123c3959591203a7ea") - version("1.72.1", commit="b01b00a766982ef7d80b90a252085c8c4f085e1b") - version("1.72.0", commit="8cb0b2e73531a417d53e5625bcf436265cdbe101") - version("1.66.0", commit="1c4c471ccca873bf92dcf0b50f611eaa64c4f0cf") - version("1.64.0", commit="82e91b7751bae997b9c898c219ea201fd02a8512") - version("1.62.0", commit="eb119894f015c759f93f458af7733bdb770a22ad") - version("1.60.0", commit="c98f695253c330a9380b2b4ffa27f3b7d66773e4") - version("1.58.1", commit="ace2556049677f60882adfe91f8cc96791556fc2") + with default_args(get_full_repo=True): + version("1.82.0", commit="1ee4bdc65b0144853211354f8fabf8b497d9a565") + version("1.80.0", commit="14fbc2d776916e572583e3c268ea9ba60ed60a9a") + version("1.78.0", commit="2f574388971641d3a71858f5c34606c04fcd2ba2") + version("1.76.0", commit="8d630fd25f0d2a4101e05e123c3959591203a7ea") + version("1.72.1", commit="b01b00a766982ef7d80b90a252085c8c4f085e1b") + version("1.72.0", commit="8cb0b2e73531a417d53e5625bcf436265cdbe101") + version("1.66.0", commit="1c4c471ccca873bf92dcf0b50f611eaa64c4f0cf") + version("1.64.0", commit="82e91b7751bae997b9c898c219ea201fd02a8512") + version("1.62.0", commit="eb119894f015c759f93f458af7733bdb770a22ad") + version("1.60.0", commit="c98f695253c330a9380b2b4ffa27f3b7d66773e4") + version("1.58.1", commit="ace2556049677f60882adfe91f8cc96791556fc2") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_genelendatabase/package.py b/repos/spack_repo/builtin/packages/r_genelendatabase/package.py index a241f3588a9..560965c45c0 100644 --- a/repos/spack_repo/builtin/packages/r_genelendatabase/package.py +++ b/repos/spack_repo/builtin/packages/r_genelendatabase/package.py @@ -15,16 +15,17 @@ class RGenelendatabase(RPackage): bioc = "geneLenDataBase" - version("1.36.0", commit="e8f37dd2a63cf10ba946958362192909fec64a10") - version("1.34.0", commit="e26cf8e3fc20b5d183cbd39b7b28a8cc866f6ead") - version("1.32.0", commit="eaa193a2c6d502c6d59113fd42f66761b8730594") - version("1.30.0", commit="b3cc755f1ffcbb2eacd9ea45e11f39f1639782b1") - version("1.26.0", commit="2724715ae23a6647d1c0c6e934720aad9377d65e") - version("1.20.0", commit="70a1abed00ee68f7bfa07c42c011f9edae9915e4") - version("1.18.0", commit="77db87e5a4819bf94761fabef0d2ff741a1c5d07") - version("1.16.0", commit="c2a8b2359c6c59388853d6f6d15d71dffb17a198") - version("1.14.0", commit="b456b3ffb04eaf335893fdec2bb10f6795dd7e08") - version("1.12.0", commit="85d6536763c12850e6c01da9e2f9e0b9c07601fe") + with default_args(get_full_repo=True): + version("1.36.0", commit="e8f37dd2a63cf10ba946958362192909fec64a10") + version("1.34.0", commit="e26cf8e3fc20b5d183cbd39b7b28a8cc866f6ead") + version("1.32.0", commit="eaa193a2c6d502c6d59113fd42f66761b8730594") + version("1.30.0", commit="b3cc755f1ffcbb2eacd9ea45e11f39f1639782b1") + version("1.26.0", commit="2724715ae23a6647d1c0c6e934720aad9377d65e") + version("1.20.0", commit="70a1abed00ee68f7bfa07c42c011f9edae9915e4") + version("1.18.0", commit="77db87e5a4819bf94761fabef0d2ff741a1c5d07") + version("1.16.0", commit="c2a8b2359c6c59388853d6f6d15d71dffb17a198") + version("1.14.0", commit="b456b3ffb04eaf335893fdec2bb10f6795dd7e08") + version("1.12.0", commit="85d6536763c12850e6c01da9e2f9e0b9c07601fe") depends_on("r@2.11.0:", type=("build", "run")) depends_on("r-rtracklayer", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_genemeta/package.py b/repos/spack_repo/builtin/packages/r_genemeta/package.py index 0c517021c56..ab805a8168d 100644 --- a/repos/spack_repo/builtin/packages/r_genemeta/package.py +++ b/repos/spack_repo/builtin/packages/r_genemeta/package.py @@ -15,16 +15,17 @@ class RGenemeta(RPackage): bioc = "GeneMeta" - version("1.72.0", commit="1cb047172f54c12c5dc5a9b39358ea04cbeff8a2") - version("1.70.0", commit="e5db82e04efc4572358abce7e0c09273f94c9d72") - version("1.68.0", commit="4213c0205d477660195300a0aa9751972f86bf91") - version("1.66.0", commit="c16eb09492f08f6cc0f253fafa3fa5dce35dcdba") - version("1.62.0", commit="eb4273ff5867e39592f50b97b454fa5e32b4a9bf") - version("1.56.0", commit="cb2c9e353d34ea9f3db06cb236c7a89674f2682d") - version("1.54.0", commit="932553cd8df82b7df804fccda9bfd4b0f36d79d7") - version("1.52.0", commit="1f21759984a5852c42a19e89ee53ffd72053d49c") - version("1.50.0", commit="0f8603653285698ed451fcbf536a4b3f90015f92") - version("1.48.0", commit="68c65304d37f5a4722cf4c25afb23214c3a2f4c8") + with default_args(get_full_repo=True): + version("1.72.0", commit="1cb047172f54c12c5dc5a9b39358ea04cbeff8a2") + version("1.70.0", commit="e5db82e04efc4572358abce7e0c09273f94c9d72") + version("1.68.0", commit="4213c0205d477660195300a0aa9751972f86bf91") + version("1.66.0", commit="c16eb09492f08f6cc0f253fafa3fa5dce35dcdba") + version("1.62.0", commit="eb4273ff5867e39592f50b97b454fa5e32b4a9bf") + version("1.56.0", commit="cb2c9e353d34ea9f3db06cb236c7a89674f2682d") + version("1.54.0", commit="932553cd8df82b7df804fccda9bfd4b0f36d79d7") + version("1.52.0", commit="1f21759984a5852c42a19e89ee53ffd72053d49c") + version("1.50.0", commit="0f8603653285698ed451fcbf536a4b3f90015f92") + version("1.48.0", commit="68c65304d37f5a4722cf4c25afb23214c3a2f4c8") depends_on("r@2.10:", type=("build", "run")) depends_on("r-biobase@2.5.5:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_geneplotter/package.py b/repos/spack_repo/builtin/packages/r_geneplotter/package.py index f48ff4070e3..0cd8ce3ec9d 100644 --- a/repos/spack_repo/builtin/packages/r_geneplotter/package.py +++ b/repos/spack_repo/builtin/packages/r_geneplotter/package.py @@ -14,16 +14,17 @@ class RGeneplotter(RPackage): bioc = "geneplotter" - version("1.78.0", commit="a105c51d2f7a097ea33c3aad8f2345e9a51406d3") - version("1.76.0", commit="4eb6a787d0c66110ec9a7d34fc76b64030fbde5d") - version("1.74.0", commit="ca819565829eac7a9a98e3cafafd6c06a466fddf") - version("1.72.0", commit="57a1d830ba7844fda5236af0153d5b5587634f96") - version("1.68.0", commit="f1fea7e468fb24fdfa93ef4493600a4d8d183f69") - version("1.62.0", commit="1fbaddde11014b453b131860409f89cd784e8e48") - version("1.60.0", commit="6723a9fc0730e146187e79c2ddab6a68186dc5ad") - version("1.58.0", commit="2b3f44804d61a40cfe7eaedf74ac9f5a054f7fde") - version("1.56.0", commit="881d25aece3dc00cc4280457ffecdc25e93bb1f1") - version("1.54.0", commit="efdd946e092e44e35fde1eb4bcc5ec1d52090940") + with default_args(get_full_repo=True): + version("1.78.0", commit="a105c51d2f7a097ea33c3aad8f2345e9a51406d3") + version("1.76.0", commit="4eb6a787d0c66110ec9a7d34fc76b64030fbde5d") + version("1.74.0", commit="ca819565829eac7a9a98e3cafafd6c06a466fddf") + version("1.72.0", commit="57a1d830ba7844fda5236af0153d5b5587634f96") + version("1.68.0", commit="f1fea7e468fb24fdfa93ef4493600a4d8d183f69") + version("1.62.0", commit="1fbaddde11014b453b131860409f89cd784e8e48") + version("1.60.0", commit="6723a9fc0730e146187e79c2ddab6a68186dc5ad") + version("1.58.0", commit="2b3f44804d61a40cfe7eaedf74ac9f5a054f7fde") + version("1.56.0", commit="881d25aece3dc00cc4280457ffecdc25e93bb1f1") + version("1.54.0", commit="efdd946e092e44e35fde1eb4bcc5ec1d52090940") depends_on("r@2.10:", type=("build", "run")) depends_on("r-biobase", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_generics/package.py b/repos/spack_repo/builtin/packages/r_generics/package.py index a24fcf1807e..8d1b102ec2e 100644 --- a/repos/spack_repo/builtin/packages/r_generics/package.py +++ b/repos/spack_repo/builtin/packages/r_generics/package.py @@ -18,11 +18,14 @@ class RGenerics(RPackage): license("MIT") + version("0.1.4", sha256="bbe95a097792d38fc3b7e677738af1b95b66ea5e5017e33b8beac6a6088d0801") version("0.1.3", sha256="75046163bfa8b8a4f4214c1b689e796207f6447182f2e5062cf570302387d053") version("0.1.2", sha256="63eab37a9148f820ce2d67bda3dab6dedb9db6890baa5284949c39ab1b4c5898") version("0.1.1", sha256="a2478ebf1a0faa8855a152f4e747ad969a800597434196ed1f71975a9eb11912") version("0.1.0", sha256="ab71d1bdbb66c782364c61cede3c1186d6a94c03635f9af70d926e2c1ac88763") version("0.0.2", sha256="71b3d1b719ce89e71dd396ac8bc6aa5f1cd99bbbf03faff61dfbbee32fec6176") - depends_on("r@3.1:", type=("build", "run")) - depends_on("r@3.2:", type=("build", "run"), when="@0.1.1:") + with default_args(type=("build", "run")): + depends_on("r@3.6:", when="@0.1.4:") + depends_on("r@3.2:", when="@0.1.1:") + depends_on("r@3.1:") diff --git a/repos/spack_repo/builtin/packages/r_genie3/package.py b/repos/spack_repo/builtin/packages/r_genie3/package.py index ad60fd126ec..935e05184dc 100644 --- a/repos/spack_repo/builtin/packages/r_genie3/package.py +++ b/repos/spack_repo/builtin/packages/r_genie3/package.py @@ -15,15 +15,16 @@ class RGenie3(RPackage): bioc = "GENIE3" - version("1.22.0", commit="e0b7f23a1ac5b01c937a351bb530b2dc6b76711f") - version("1.20.0", commit="aea2e686a262f30b16c068241938d04f21251a0d") - version("1.18.0", commit="f16b25ef50978a4a497eb2f911e21f2e839fa33c") - version("1.16.0", commit="5543b1b883d3a1c92e955de6668444278edc2bdf") - version("1.12.0", commit="14289cee9bed113ab35ba03bcaac4a30e5784497") - version("1.6.0", commit="d6a49182e098342afe77f01c322dfc7b72450502") - version("1.4.3", commit="ae719c759f23f09d28fcf1acc45b860cd7761f08") - version("1.2.1", commit="1b56fe8184d521d1bb247f000efe9e2b540604c9") - version("1.0.0", commit="eb7c95ed12ea50d61e8fa20bc2b25ae9d74c302f") + with default_args(get_full_repo=True): + version("1.22.0", commit="e0b7f23a1ac5b01c937a351bb530b2dc6b76711f") + version("1.20.0", commit="aea2e686a262f30b16c068241938d04f21251a0d") + version("1.18.0", commit="f16b25ef50978a4a497eb2f911e21f2e839fa33c") + version("1.16.0", commit="5543b1b883d3a1c92e955de6668444278edc2bdf") + version("1.12.0", commit="14289cee9bed113ab35ba03bcaac4a30e5784497") + version("1.6.0", commit="d6a49182e098342afe77f01c322dfc7b72450502") + version("1.4.3", commit="ae719c759f23f09d28fcf1acc45b860cd7761f08") + version("1.2.1", commit="1b56fe8184d521d1bb247f000efe9e2b540604c9") + version("1.0.0", commit="eb7c95ed12ea50d61e8fa20bc2b25ae9d74c302f") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_genomeinfodb/package.py b/repos/spack_repo/builtin/packages/r_genomeinfodb/package.py index a6a61d8ed09..19e474ea68c 100644 --- a/repos/spack_repo/builtin/packages/r_genomeinfodb/package.py +++ b/repos/spack_repo/builtin/packages/r_genomeinfodb/package.py @@ -18,17 +18,18 @@ class RGenomeinfodb(RPackage): bioc = "GenomeInfoDb" - version("1.36.0", commit="c380bb93a5480b48e0efbf6d107cefc10d574438") - version("1.34.3", commit="ea6f131f1d1ee61535d6733ce76fabf3c62185fc") - version("1.32.4", commit="69df6a5a10027fecf6a6d1c8298f3f686b990d8f") - version("1.32.2", commit="2e40af38f00ee86d2c83d140e234c1349baa27de") - version("1.30.1", commit="bf8b385a2ffcecf9b41e581794056f267895863d") - version("1.26.2", commit="96dd27a7e3ef476790b1475aab50dbbed7df67a2") - version("1.20.0", commit="ea771e3b429ef17fb912fb37333556c6f77f2265") - version("1.18.2", commit="557b75ea7734749a2650d30f5c5d52c57a6bcc6f") - version("1.16.0", commit="6543dad89bbc2c275010b329eb114b237fd712fa") - version("1.14.0", commit="4978308a57d887b764cc4ce83724ca1758f580f6") - version("1.12.3", commit="2deef3f0571b7f622483257bc22d2509ab5a0369") + with default_args(get_full_repo=True): + version("1.36.0", commit="c380bb93a5480b48e0efbf6d107cefc10d574438") + version("1.34.3", commit="ea6f131f1d1ee61535d6733ce76fabf3c62185fc") + version("1.32.4", commit="69df6a5a10027fecf6a6d1c8298f3f686b990d8f") + version("1.32.2", commit="2e40af38f00ee86d2c83d140e234c1349baa27de") + version("1.30.1", commit="bf8b385a2ffcecf9b41e581794056f267895863d") + version("1.26.2", commit="96dd27a7e3ef476790b1475aab50dbbed7df67a2") + version("1.20.0", commit="ea771e3b429ef17fb912fb37333556c6f77f2265") + version("1.18.2", commit="557b75ea7734749a2650d30f5c5d52c57a6bcc6f") + version("1.16.0", commit="6543dad89bbc2c275010b329eb114b237fd712fa") + version("1.14.0", commit="4978308a57d887b764cc4ce83724ca1758f580f6") + version("1.12.3", commit="2deef3f0571b7f622483257bc22d2509ab5a0369") depends_on("r@3.1:", type=("build", "run")) depends_on("r@4.0.0:", type=("build", "run"), when="@1.30.1:") diff --git a/repos/spack_repo/builtin/packages/r_genomicalignments/package.py b/repos/spack_repo/builtin/packages/r_genomicalignments/package.py index 559789ab4a6..90b1bc0a445 100644 --- a/repos/spack_repo/builtin/packages/r_genomicalignments/package.py +++ b/repos/spack_repo/builtin/packages/r_genomicalignments/package.py @@ -17,17 +17,18 @@ class RGenomicalignments(RPackage): bioc = "GenomicAlignments" - version("1.36.0", commit="cdc1aa49f14d3effe2540380a04fe1fc72c00f04") - version("1.34.0", commit="c6eb78079c8aa21d47c95b3d16a606e8c2c5d799") - version("1.32.1", commit="2553580d0b8a8a5fd7835c1446616b39f707b8a9") - version("1.32.0", commit="7a660a914a04e2eb0758082b6f64c4124a887ef3") - version("1.30.0", commit="2d2c5fce3529c2962fdcefd736d8b7f7c0ec2d54") - version("1.26.0", commit="6c74c74ee53efcd880171126366fee4bd72357bc") - version("1.20.1", commit="9dce402071e4cd945de7ff82ea574c79993625fd") - version("1.18.1", commit="8ac41e5981cf343076044f451a984afb651688ab") - version("1.16.0", commit="db032a459e5cf05a2a5c2059662a541827112974") - version("1.14.2", commit="57b0b35d8b36069d4d94af86af051f0129b28eef") - version("1.12.2", commit="b5d6f19e4a89b6c1c3e9e58e5ea4eb13870874ef") + with default_args(get_full_repo=True): + version("1.36.0", commit="cdc1aa49f14d3effe2540380a04fe1fc72c00f04") + version("1.34.0", commit="c6eb78079c8aa21d47c95b3d16a606e8c2c5d799") + version("1.32.1", commit="2553580d0b8a8a5fd7835c1446616b39f707b8a9") + version("1.32.0", commit="7a660a914a04e2eb0758082b6f64c4124a887ef3") + version("1.30.0", commit="2d2c5fce3529c2962fdcefd736d8b7f7c0ec2d54") + version("1.26.0", commit="6c74c74ee53efcd880171126366fee4bd72357bc") + version("1.20.1", commit="9dce402071e4cd945de7ff82ea574c79993625fd") + version("1.18.1", commit="8ac41e5981cf343076044f451a984afb651688ab") + version("1.16.0", commit="db032a459e5cf05a2a5c2059662a541827112974") + version("1.14.2", commit="57b0b35d8b36069d4d94af86af051f0129b28eef") + version("1.12.2", commit="b5d6f19e4a89b6c1c3e9e58e5ea4eb13870874ef") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_genomicfeatures/package.py b/repos/spack_repo/builtin/packages/r_genomicfeatures/package.py index 75a6f2afd85..0651a588f13 100644 --- a/repos/spack_repo/builtin/packages/r_genomicfeatures/package.py +++ b/repos/spack_repo/builtin/packages/r_genomicfeatures/package.py @@ -21,17 +21,18 @@ class RGenomicfeatures(RPackage): bioc = "GenomicFeatures" - version("1.52.0", commit="207ff08b38421f0394a8f6450e00fb8713ab463c") - version("1.50.2", commit="4fc9120ceed9ff59f390c8bbdbd79b212ee35b84") - version("1.48.4", commit="06e37dc1847d49d91391264caec877ed33abf359") - version("1.48.3", commit="b0ddea0e101e3861928f3ad353348df047d90382") - version("1.46.4", commit="d3ab6fd069624904ce7fcdf75dad884473f97975") - version("1.42.1", commit="2e82891974138b0e976799d64a8938f0be61284d") - version("1.36.4", commit="28082ec465c91ccaec6881ff348b380edac1b555") - version("1.34.8", commit="c798b3bb111f4de30632303540074ec1875c1387") - version("1.32.3", commit="80807d88048858846de3750cecb9431a0e5e69e1") - version("1.30.3", commit="496bbf81beebd7c934b8d3dcea001e3e4a7d7dee") - version("1.28.5", commit="ba92381ae93cb1392dad5e6acfab8f6c1d744834") + with default_args(get_full_repo=True): + version("1.52.0", commit="207ff08b38421f0394a8f6450e00fb8713ab463c") + version("1.50.2", commit="4fc9120ceed9ff59f390c8bbdbd79b212ee35b84") + version("1.48.4", commit="06e37dc1847d49d91391264caec877ed33abf359") + version("1.48.3", commit="b0ddea0e101e3861928f3ad353348df047d90382") + version("1.46.4", commit="d3ab6fd069624904ce7fcdf75dad884473f97975") + version("1.42.1", commit="2e82891974138b0e976799d64a8938f0be61284d") + version("1.36.4", commit="28082ec465c91ccaec6881ff348b380edac1b555") + version("1.34.8", commit="c798b3bb111f4de30632303540074ec1875c1387") + version("1.32.3", commit="80807d88048858846de3750cecb9431a0e5e69e1") + version("1.30.3", commit="496bbf81beebd7c934b8d3dcea001e3e4a7d7dee") + version("1.28.5", commit="ba92381ae93cb1392dad5e6acfab8f6c1d744834") depends_on("r@3.5.0:", type=("build", "run"), when="@1.48.3:") depends_on("r-biocgenerics@0.1.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_genomicranges/package.py b/repos/spack_repo/builtin/packages/r_genomicranges/package.py index cbbd0fcd07d..f511af10d6a 100644 --- a/repos/spack_repo/builtin/packages/r_genomicranges/package.py +++ b/repos/spack_repo/builtin/packages/r_genomicranges/package.py @@ -23,16 +23,17 @@ class RGenomicranges(RPackage): bioc = "GenomicRanges" - version("1.52.0", commit="883f125ea593099293dc808ec2188be3cbdbd3a7") - version("1.50.1", commit="6b3fb388ec038fb43f3cd26684ce778ee0e80e81") - version("1.48.0", commit="2bce60814db7c20949892587740fb484aa435978") - version("1.46.1", commit="e422642f64815cdfee8fc340681ad87a7eafc3bb") - version("1.42.0", commit="32baca734b599d60fa13bdbe31c5712e648f538d") - version("1.36.1", commit="418e7e5647dd54d81b804455ddfcbc027fd0164a") - version("1.34.0", commit="ebaad5ca61abb67c2c30c132e07531ba4257bccd") - version("1.32.7", commit="4c56dc836dbfd0d228dc810e8d401811cdbc267c") - version("1.30.3", commit="e99979054bc50ed8c0109bc54563036c1b368997") - version("1.28.6", commit="197472d618f3ed04c795dc6ed435500c29619563") + with default_args(get_full_repo=True): + version("1.52.0", commit="883f125ea593099293dc808ec2188be3cbdbd3a7") + version("1.50.1", commit="6b3fb388ec038fb43f3cd26684ce778ee0e80e81") + version("1.48.0", commit="2bce60814db7c20949892587740fb484aa435978") + version("1.46.1", commit="e422642f64815cdfee8fc340681ad87a7eafc3bb") + version("1.42.0", commit="32baca734b599d60fa13bdbe31c5712e648f538d") + version("1.36.1", commit="418e7e5647dd54d81b804455ddfcbc027fd0164a") + version("1.34.0", commit="ebaad5ca61abb67c2c30c132e07531ba4257bccd") + version("1.32.7", commit="4c56dc836dbfd0d228dc810e8d401811cdbc267c") + version("1.30.3", commit="e99979054bc50ed8c0109bc54563036c1b368997") + version("1.28.6", commit="197472d618f3ed04c795dc6ed435500c29619563") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_gensa/package.py b/repos/spack_repo/builtin/packages/r_gensa/package.py index be478638875..1cff5960a17 100644 --- a/repos/spack_repo/builtin/packages/r_gensa/package.py +++ b/repos/spack_repo/builtin/packages/r_gensa/package.py @@ -19,4 +19,7 @@ class RGensa(RPackage): version("1.1.8", sha256="375e87541eb6b098584afccab361dc28ff09d03cf1d062ff970208e294eca216") version("1.1.7", sha256="9d99d3d0a4b7770c3c3a6de44206811272d78ab94481713a8c369f7d6ae7b80f") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@2.12.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_geometries/package.py b/repos/spack_repo/builtin/packages/r_geometries/package.py index 73edbc41a26..3381b28b13f 100644 --- a/repos/spack_repo/builtin/packages/r_geometries/package.py +++ b/repos/spack_repo/builtin/packages/r_geometries/package.py @@ -23,5 +23,7 @@ class RGeometries(RPackage): version("0.2.2", sha256="32d3063de0f8a751382788f85ebaee5f39d68e486253c159d553bb3d72d69141") version("0.2.0", sha256="8cf5094f3c2458fef5d755799c766afd27c66cd1c292574a6ab532d608360314") + depends_on("cxx", type="build") # generated + depends_on("r-rcpp", type=("build", "run")) depends_on("r-rcpp@1.0.10:", type=("build", "run"), when="@0.2.2:") diff --git a/repos/spack_repo/builtin/packages/r_geoquery/package.py b/repos/spack_repo/builtin/packages/r_geoquery/package.py index 8ee5b8ea7f3..1c46872e678 100644 --- a/repos/spack_repo/builtin/packages/r_geoquery/package.py +++ b/repos/spack_repo/builtin/packages/r_geoquery/package.py @@ -19,16 +19,17 @@ class RGeoquery(RPackage): license("MIT") - version("2.68.0", commit="7995c579b068f98ebf3f1cd2cfd0575c3d73530c") - version("2.66.0", commit="00a954e9f8223607b43cf112943ab575d03a0eb6") - version("2.64.2", commit="e9b7f075a4a6a952660443ca93ed392d7a4fd6d7") - version("2.62.2", commit="1966c108fe8a58ac39ef53c3c452fd160efa526e") - version("2.58.0", commit="6332ca3791ddcfb233b9ad75b5904b3d60f49b93") - version("2.52.0", commit="3059331eb82ad4947c2d1bef86ff9526e70af643") - version("2.50.5", commit="135c17f8fe535acda14f95a37d1be1ff2bd80f97") - version("2.48.0", commit="6a8d1ca195b5c26fb717ae93beb1a8d9b7031c5e") - version("2.46.15", commit="a52b195ac640caae9679610d5b486b7cb828c0fd") - version("2.42.0", commit="c26adef8d3ddbd6932a3170f2f84f6e4327641fb") + with default_args(get_full_repo=True): + version("2.68.0", commit="7995c579b068f98ebf3f1cd2cfd0575c3d73530c") + version("2.66.0", commit="00a954e9f8223607b43cf112943ab575d03a0eb6") + version("2.64.2", commit="e9b7f075a4a6a952660443ca93ed392d7a4fd6d7") + version("2.62.2", commit="1966c108fe8a58ac39ef53c3c452fd160efa526e") + version("2.58.0", commit="6332ca3791ddcfb233b9ad75b5904b3d60f49b93") + version("2.52.0", commit="3059331eb82ad4947c2d1bef86ff9526e70af643") + version("2.50.5", commit="135c17f8fe535acda14f95a37d1be1ff2bd80f97") + version("2.48.0", commit="6a8d1ca195b5c26fb717ae93beb1a8d9b7031c5e") + version("2.46.15", commit="a52b195ac640caae9679610d5b486b7cb828c0fd") + version("2.42.0", commit="c26adef8d3ddbd6932a3170f2f84f6e4327641fb") depends_on("r-biobase", type=("build", "run")) depends_on("r-readr", type=("build", "run"), when="@2.46.15:") diff --git a/repos/spack_repo/builtin/packages/r_geor/package.py b/repos/spack_repo/builtin/packages/r_geor/package.py index 81abee2c336..331bde2cd68 100644 --- a/repos/spack_repo/builtin/packages/r_geor/package.py +++ b/repos/spack_repo/builtin/packages/r_geor/package.py @@ -21,6 +21,8 @@ class RGeor(RPackage): version("1.8-1", sha256="990647804590b925a50f72897b24bbabd331cebef0be1696a60528b2f79d6fd3") version("1.7-5.2.1", sha256="3895e49c005a5745738d190ccaad43bb0aa49c74465d4d0b4dd88c5850ed63b9") + depends_on("c", type="build") # generated + depends_on("r+X", type=("build", "run")) depends_on("r@2.10:", type=("build", "run")) depends_on("r-mass", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_gert/package.py b/repos/spack_repo/builtin/packages/r_gert/package.py index bb68bacfc20..5da43add6ca 100644 --- a/repos/spack_repo/builtin/packages/r_gert/package.py +++ b/repos/spack_repo/builtin/packages/r_gert/package.py @@ -27,6 +27,8 @@ class RGert(RPackage): version("1.5.0", sha256="9fc330893b0cb43360905fd204e674813e1906449a95dc4037fe8802bd74a2ae") version("1.0.2", sha256="36687ab98291d50a35752fcb2e734a926a6b845345c18d36e3f48823f68304d3") + depends_on("c", type="build") # generated + depends_on("r-askpass", type=("build", "run")) depends_on("r-credentials@1.2.1:", type=("build", "run")) depends_on("r-openssl@1.4.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_ggbio/package.py b/repos/spack_repo/builtin/packages/r_ggbio/package.py index 38dc871519b..0b054e2b58d 100644 --- a/repos/spack_repo/builtin/packages/r_ggbio/package.py +++ b/repos/spack_repo/builtin/packages/r_ggbio/package.py @@ -22,17 +22,18 @@ class RGgbio(RPackage): bioc = "ggbio" - version("1.48.0", commit="fd4ebca44151e8f8e20ad2a38292398a3a4bb948") - version("1.46.0", commit="d9c6cb495c7268bcaaab141231a9038aec8498bc") - version("1.44.1", commit="0301d9464e304a8113ea4479185cd358855ca365") - version("1.44.0", commit="cb21284a9803917fa76e116adfc456525c95f660") - version("1.42.0", commit="3540047ef018957d59fba8af7d3c58e4659f8e26") - version("1.38.0", commit="c39c51993f419cfc2f094e664477f25f5212a242") - version("1.32.0", commit="04bd12fbe0b1c5c6b721a5f927e1352765f9bf88") - version("1.30.0", commit="8b05258b089b06a743352e92058edda06c24cfb7") - version("1.28.5", commit="594521ca556ef7d97cf4882ecfa54d22c2a2faba") - version("1.26.1", commit="b4f4c898c92aa1082aa7574f1e5c2a0dae943fbc") - version("1.24.1", commit="ef04c1bca1330f37152bcc21080cbde94849a094") + with default_args(get_full_repo=True): + version("1.48.0", commit="fd4ebca44151e8f8e20ad2a38292398a3a4bb948") + version("1.46.0", commit="d9c6cb495c7268bcaaab141231a9038aec8498bc") + version("1.44.1", commit="0301d9464e304a8113ea4479185cd358855ca365") + version("1.44.0", commit="cb21284a9803917fa76e116adfc456525c95f660") + version("1.42.0", commit="3540047ef018957d59fba8af7d3c58e4659f8e26") + version("1.38.0", commit="c39c51993f419cfc2f094e664477f25f5212a242") + version("1.32.0", commit="04bd12fbe0b1c5c6b721a5f927e1352765f9bf88") + version("1.30.0", commit="8b05258b089b06a743352e92058edda06c24cfb7") + version("1.28.5", commit="594521ca556ef7d97cf4882ecfa54d22c2a2faba") + version("1.26.1", commit="b4f4c898c92aa1082aa7574f1e5c2a0dae943fbc") + version("1.24.1", commit="ef04c1bca1330f37152bcc21080cbde94849a094") depends_on("r-biocgenerics", type=("build", "run")) depends_on("r-ggplot2@1.0.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_ggforce/package.py b/repos/spack_repo/builtin/packages/r_ggforce/package.py index 27599a5aff5..c48bf36c9f9 100644 --- a/repos/spack_repo/builtin/packages/r_ggforce/package.py +++ b/repos/spack_repo/builtin/packages/r_ggforce/package.py @@ -26,6 +26,8 @@ class RGgforce(RPackage): version("0.3.2", sha256="4cce8acb60ce06af44c1c76bbacd7de129eed9b51ed6a85e03a9bf55b0eff4d2") version("0.3.1", sha256="a05271da9b226c12ae5fe6bc6eddb9ad7bfe19e1737e2bfcd6d7a89631332211") + depends_on("cxx", type="build") # generated + depends_on("r@3.3.0:", type=("build", "run")) depends_on("r-ggplot2@3.0.0:", type=("build", "run")) depends_on("r-ggplot2@3.3.6:", type=("build", "run"), when="@0.4.1:") diff --git a/repos/spack_repo/builtin/packages/r_ggpattern/package.py b/repos/spack_repo/builtin/packages/r_ggpattern/package.py new file mode 100644 index 00000000000..b7fa8dc32ce --- /dev/null +++ b/repos/spack_repo/builtin/packages/r_ggpattern/package.py @@ -0,0 +1,31 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.r import RPackage + +from spack.package import * + + +class RGgpattern(RPackage): + """Provides 'ggplot2' geoms filled with various patterns. + Includes a patterned version of every 'ggplot2' geom that has a region that can be + filled with a pattern. Provides a suite of 'ggplot2' aesthetics and scales for + controlling pattern appearances. Supports over a dozen builtin patterns (every + pattern implemented by 'gridpattern') as well as allowing custom user-defined patterns. + """ + + cran = "ggpattern" + + license("MIT") + + version("1.2.1", sha256="bf6d4df5636c791b1cb8f4d96ac97cc56f9d7f502088de7116f2f795f4ea5827") + + depends_on("r-cli", type=("build", "run")) + depends_on("r-ggplot2@3.5.1:", type=("build", "run")) + depends_on("r-glue", type=("build", "run")) + depends_on("r-gridpattern@1.2.2:", type=("build", "run")) + depends_on("r-lifecycle", type=("build", "run")) + depends_on("r-rlang@1.1.3:", type=("build", "run")) + depends_on("r-scales", type=("build", "run")) + depends_on("r-vctrs", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_ggplot2/package.py b/repos/spack_repo/builtin/packages/r_ggplot2/package.py index 45552e63ba6..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,9 @@ 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") version("3.5.0", sha256="07fa1cd4e02d409ade32e69a9088d9209f864c6ddd70fa2f904769dec21090e2") version("3.4.4", sha256="2d76ec065d3e604d019506f45b3b713ae20f38e47dbebfb5ba1648b47fe63e46") @@ -33,32 +36,39 @@ class RGgplot2(RPackage): version("2.2.1", sha256="5fbc89fec3160ad14ba90bd545b151c7a2e7baad021c0ab4b950ecd6043a8314") version("2.1.0", sha256="f2c323ae855d6c089e3a52138aa7bc25b9fe1429b8df9eae89d28ce3c0dd3969") - depends_on("r@3.1:", type=("build", "run")) - depends_on("r@3.2:", type=("build", "run"), when="@3.2.0:") - depends_on("r@3.3:", type=("build", "run"), when="@3.3.4:") - depends_on("r@3.5:", type=("build", "run"), when="@3.5.0:") - depends_on("r-cli", type=("build", "run"), when="@3.4.0:") - depends_on("r-glue", type=("build", "run"), when="@3.3.3:") - depends_on("r-gtable@0.1.1:", type=("build", "run")) - depends_on("r-isoband", type=("build", "run"), when="@3.3.3:") - depends_on("r-lifecycle@1.0.1.1:", type=("build", "run"), when="@3.4.0:") - depends_on("r-mass", type=("build", "run")) - depends_on("r-mgcv", type=("build", "run"), when="@3.2.0:") - depends_on("r-rlang@0.3.0:", type=("build", "run"), when="@3.0.0:") - depends_on("r-rlang@0.4.10:", type=("build", "run"), when="@3.3.4:") - depends_on("r-rlang@1.0.0:", type=("build", "run"), when="@3.4.0:") - depends_on("r-rlang@1.1.0:", type=("build", "run"), when="@3.4.2:") - depends_on("r-scales@0.5.0:", type=("build", "run")) - depends_on("r-scales@1.2.0:", type=("build", "run"), when="@3.4.0:3.4.4") - depends_on("r-scales@1.3.0:", type=("build", "run"), when="@3.5.0:") - depends_on("r-tibble", type=("build", "run")) - depends_on("r-vctrs@0.5.0:", type=("build", "run"), when="@3.4.0:") - depends_on("r-vctrs@0.6.0:", type=("build", "run"), when="@3.5.1:") - depends_on("r-withr@2.0.0:", type=("build", "run"), when="@3.0.0:") - depends_on("r-withr@2.5.0:", type=("build", "run"), when="@3.4.0:") + with default_args(type=("build", "run")): + depends_on("r@4.1:", when="@4:") + depends_on("r@3.5:", when="@3.5.0:") + 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-plyr@1.7.1:", type=("build", "run"), when="@:3.1.1") - depends_on("r-reshape2", type=("build", "run"), when="@:3.2.0") - depends_on("r-lazyeval", type=("build", "run"), when="@:3.2.0") - depends_on("r-viridislite", type=("build", "run"), when="@3.0.0:3.2.0") - depends_on("r-digest", type=("build", "run"), when="@:3.3.6") + depends_on("r-cli", when="@3.4.0:") + depends_on("r-gtable@0.3.6:", when="@4:") + depends_on("r-gtable@0.1.1:") + depends_on("r-isoband", when="@3.3.3:") + depends_on("r-lifecycle@1.0.1.1:", when="@3.4.0:") + depends_on("r-rlang@1.1.0:", when="@3.4.2:") + 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.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-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-tibble", when="@:3") + depends_on("r-viridislite", when="@3.0.0:3.2.0") diff --git a/repos/spack_repo/builtin/packages/r_ggraph/package.py b/repos/spack_repo/builtin/packages/r_ggraph/package.py index a3f25b5eaab..ed43e6befb1 100644 --- a/repos/spack_repo/builtin/packages/r_ggraph/package.py +++ b/repos/spack_repo/builtin/packages/r_ggraph/package.py @@ -27,6 +27,8 @@ class RGgraph(RPackage): version("2.0.4", sha256="9c6092d9a98b7b116f9c765ba44de7a34ceff2f584e776ef7a2082ad1d717dc8") version("2.0.0", sha256="4307efe85bfc6a0496797f6b86d6b174ba196538c51b1a6b6af55de0d4e04762") + depends_on("cxx", type="build") # generated + depends_on("r@2.10:", type=("build", "run")) depends_on("r-ggplot2@3.0.0:", type=("build", "run")) depends_on("r-ggplot2@3.5.0:", type=("build", "run"), when="@2.2.0:") diff --git a/repos/spack_repo/builtin/packages/r_ggrepel/package.py b/repos/spack_repo/builtin/packages/r_ggrepel/package.py index cd41d32a676..1e4613aaecb 100644 --- a/repos/spack_repo/builtin/packages/r_ggrepel/package.py +++ b/repos/spack_repo/builtin/packages/r_ggrepel/package.py @@ -27,6 +27,8 @@ class RGgrepel(RPackage): version("0.8.0", sha256="6386606e716d326354a29fcb6cd09f9b3d3b5e7c5ba0d5f7ff35416b1a4177d4") version("0.6.5", sha256="360ae9d199755f9e260fefbd3baba3448fad3f024f20bcd9942a862b8c41a752") + depends_on("cxx", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r-ggplot2@2.2.0:", type=("build", "run")) depends_on("r-rcpp", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_ggridges/package.py b/repos/spack_repo/builtin/packages/r_ggridges/package.py index 652e1dafd69..56d1453a129 100644 --- a/repos/spack_repo/builtin/packages/r_ggridges/package.py +++ b/repos/spack_repo/builtin/packages/r_ggridges/package.py @@ -18,6 +18,7 @@ class RGgridges(RPackage): license("GPL-2.0-only OR custom") + version("0.5.7", sha256="fcba89ffa3a31edfb3eeea249a78997150d9e01888dbe2015fec310709681133") version("0.5.6", sha256="efccaa309a150d11c6b402b912e618ea041f25cca3101f32cd821a6f41684e35") version("0.5.4", sha256="2bf71c2034804cec637e6748dc51d8cadad01d3ea4d14ace754327f082e8d851") version("0.5.3", sha256="f5eafab17f2d4a8a2a83821ad3e96ae7c26b62bbce9de414484c657383c7b42e") @@ -26,11 +27,15 @@ class RGgridges(RPackage): version("0.4.1", sha256="03d2013df6adf07c9741d4476df96865b878a88359763ac36b98aa86591cca4d") version("0.4.0", sha256="c62153fb47f55468c873e6cf882b46754b6eedec423dacf3992ab23c474d521c") - depends_on("r@3.2:", type=("build", "run")) - depends_on("r-ggplot2@2.2.0:", type=("build", "run")) - depends_on("r-ggplot2@3.0.0:", type=("build", "run"), when="@0.5.3:") - depends_on("r-ggplot2@3.4.0:", type=("build", "run"), when="@0.5.5:") - depends_on("r-scales@0.4.1:", type=("build", "run")) - depends_on("r-withr@2.1.1:", type=("build", "run"), when="@0.5.0:") + with default_args(type=("build", "run")): + depends_on("r@3.2:") - depends_on("r-plyr@1.8.0:", type=("build", "run"), when="@:0.5.3") + depends_on("r-ggplot2@3.5.0:", when="@0.5.7:") + depends_on("r-ggplot2@3.4.0:", when="@0.5.5:") + depends_on("r-ggplot2@3.0.0:", when="@0.5.3:") + depends_on("r-ggplot2@2.2.0:") + depends_on("r-scales@0.4.1:") + depends_on("r-withr@2.1.1:", when="@0.5.0:") + + # Historical dependencies + depends_on("r-plyr@1.8.0:", when="@:0.5.3") diff --git a/repos/spack_repo/builtin/packages/r_ggtree/package.py b/repos/spack_repo/builtin/packages/r_ggtree/package.py index 61763687b46..9809a3d0a53 100644 --- a/repos/spack_repo/builtin/packages/r_ggtree/package.py +++ b/repos/spack_repo/builtin/packages/r_ggtree/package.py @@ -17,11 +17,12 @@ class RGgtree(RPackage): bioc = "ggtree" - version("3.8.0", commit="e7c989085d0848e4d5f82aa8000422c71458a9a8") - version("3.6.2", commit="431ec37bc0f0159b08a7990ce1d9374e160b9f44") - version("3.4.4", commit="8e48d3e2ea445b6c2213f0471462108a7a72b333") - version("3.4.0", commit="23f08a3da1829d1bbb6827ed1c4cf878daa4b539") - version("3.2.1", commit="d3747e636fe1a6a9e09b56a3a3899208ebd05547") + with default_args(get_full_repo=True): + version("3.8.0", commit="e7c989085d0848e4d5f82aa8000422c71458a9a8") + version("3.6.2", commit="431ec37bc0f0159b08a7990ce1d9374e160b9f44") + version("3.4.4", commit="8e48d3e2ea445b6c2213f0471462108a7a72b333") + version("3.4.0", commit="23f08a3da1829d1bbb6827ed1c4cf878daa4b539") + version("3.2.1", commit="d3747e636fe1a6a9e09b56a3a3899208ebd05547") depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-ape", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_git2r/package.py b/repos/spack_repo/builtin/packages/r_git2r/package.py index 93f025832cd..5c6033d798f 100644 --- a/repos/spack_repo/builtin/packages/r_git2r/package.py +++ b/repos/spack_repo/builtin/packages/r_git2r/package.py @@ -30,6 +30,8 @@ class RGit2r(RPackage): version("0.18.0", sha256="91b32e49afb859c0c4f6f77988343645e9499e5046ef08d945d4d8149b6eff2d") version("0.15.0", sha256="682ab9e7f71b2ed13a9ef95840df3c6b429eeea070edeb4d21d725cf0b72ede6") + depends_on("c", type="build") # generated + depends_on("r@3.1:", type=("build", "run")) depends_on("r@3.4:", type=("build", "run"), when="@0.31.0:") depends_on("r@4.0:", type=("build", "run"), when="@0.33.0:") diff --git a/repos/spack_repo/builtin/packages/r_glimma/package.py b/repos/spack_repo/builtin/packages/r_glimma/package.py index 6ef555fd572..98e83d2e81a 100644 --- a/repos/spack_repo/builtin/packages/r_glimma/package.py +++ b/repos/spack_repo/builtin/packages/r_glimma/package.py @@ -20,16 +20,17 @@ class RGlimma(RPackage): license("LGPL-3.0-only") - version("2.10.0", commit="ea1257614c5fca0cedf5805d5b9a21e8b7d15d18") - version("2.8.0", commit="09cec82e9af9c6775192570f8c28f050c0df08ac") - version("2.6.0", commit="23220d9b90476059aab035b5de11b7ce04b331c8") - version("2.4.0", commit="caa270e44ec6994035d2e915c0f68a14ccbb58db") - version("2.0.0", commit="40bebaa79e8c87c5686cff7285def4461c11bca9") - version("1.12.0", commit="d02174239fe0b47983d6947ed42a1a53b24caecb") - version("1.10.1", commit="ffc7abc36190396598fadec5e9c653441e47be72") - version("1.8.2", commit="7696aca2c023f74d244b6c908a6e7ba52bfcb34b") - version("1.6.0", commit="57572996982806aa7ac155eedb97b03249979610") - version("1.4.0", commit="c613c5334ed7868f36d5716b97fdb6234fb291f8") + with default_args(get_full_repo=True): + version("2.10.0", commit="ea1257614c5fca0cedf5805d5b9a21e8b7d15d18") + version("2.8.0", commit="09cec82e9af9c6775192570f8c28f050c0df08ac") + version("2.6.0", commit="23220d9b90476059aab035b5de11b7ce04b331c8") + version("2.4.0", commit="caa270e44ec6994035d2e915c0f68a14ccbb58db") + version("2.0.0", commit="40bebaa79e8c87c5686cff7285def4461c11bca9") + version("1.12.0", commit="d02174239fe0b47983d6947ed42a1a53b24caecb") + version("1.10.1", commit="ffc7abc36190396598fadec5e9c653441e47be72") + version("1.8.2", commit="7696aca2c023f74d244b6c908a6e7ba52bfcb34b") + version("1.6.0", commit="57572996982806aa7ac155eedb97b03249979610") + version("1.4.0", commit="c613c5334ed7868f36d5716b97fdb6234fb291f8") depends_on("r@3.3.0:", type=("build", "run")) depends_on("r@3.4.0:", type=("build", "run"), when="@1.6.0:") diff --git a/repos/spack_repo/builtin/packages/r_glmgampoi/package.py b/repos/spack_repo/builtin/packages/r_glmgampoi/package.py index 88b9a68f69a..6f6c2f77cd3 100644 --- a/repos/spack_repo/builtin/packages/r_glmgampoi/package.py +++ b/repos/spack_repo/builtin/packages/r_glmgampoi/package.py @@ -17,9 +17,10 @@ class RGlmgampoi(RPackage): bioc = "glmGamPoi" - version("1.12.0", commit="5fdfa5ca1a56b19e51bc6e307ca6015cc56109a0") - version("1.10.0", commit="048e17384209fc07031e09875ec6eea35e90ef46") - version("1.8.0", commit="b723d61e05c1ad50a3cf6a6393ec3d97adc7edb4") + with default_args(get_full_repo=True): + version("1.12.0", commit="5fdfa5ca1a56b19e51bc6e307ca6015cc56109a0") + version("1.10.0", commit="048e17384209fc07031e09875ec6eea35e90ef46") + version("1.8.0", commit="b723d61e05c1ad50a3cf6a6393ec3d97adc7edb4") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_glmnet/package.py b/repos/spack_repo/builtin/packages/r_glmnet/package.py index c709796a899..fa60a6b746e 100644 --- a/repos/spack_repo/builtin/packages/r_glmnet/package.py +++ b/repos/spack_repo/builtin/packages/r_glmnet/package.py @@ -30,6 +30,10 @@ class RGlmnet(RPackage): version("2.0-13", sha256="f3288dcaddb2f7014d42b755bede6563f73c17bc87f8292c2ef7776cb9b9b8fd") version("2.0-5", sha256="2ca95352c8fbd93aa7800f3d972ee6c1a5fcfeabc6be8c10deee0cb457fd77b1") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.6.0:", type=("build", "run"), when="@4.1:") depends_on("r-matrix@1.0-6:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_globals/package.py b/repos/spack_repo/builtin/packages/r_globals/package.py index 1659af81a3b..861a71cd733 100644 --- a/repos/spack_repo/builtin/packages/r_globals/package.py +++ b/repos/spack_repo/builtin/packages/r_globals/package.py @@ -20,6 +20,7 @@ class RGlobals(RPackage): license("LGPL-2.1-or-later") + version("0.19.1", sha256="b58d7ea423eb8772aa1be615d97722a6babf836360e01e533d176e108c216979") version("0.16.3", sha256="d73ced94248d8b81d29d774bdfc41496274d7da683a5d84440aed6a501a18c5b") version("0.16.2", sha256="682c26a95fa6c4e76a3a875be1a3192fc5b88e036c80dfa3b256add0336d770a") version("0.16.1", sha256="f7f63a575a3dd518c6afeabb4116bd26692a2a250df113059bc1a5b4711a1e95") diff --git a/repos/spack_repo/builtin/packages/r_globaltest/package.py b/repos/spack_repo/builtin/packages/r_globaltest/package.py index 2ca0387d83b..9345805115a 100644 --- a/repos/spack_repo/builtin/packages/r_globaltest/package.py +++ b/repos/spack_repo/builtin/packages/r_globaltest/package.py @@ -19,11 +19,12 @@ class RGlobaltest(RPackage): bioc = "globaltest" - version("5.54.0", commit="bb8bc5f757c8b7c020da31b6a3f500075715ab8e") - version("5.52.0", commit="a1fc3ad206454d1151bcc940644fd8a5c4164d63") - version("5.50.0", commit="08612a06eb1cc7381f9bf70f6fe198bb401a21df") - version("5.48.0", commit="86c2c8f35734dcbc8c8ca791d8a190dc525beac9") - version("5.44.0", commit="571933d5c779a241740be913ff49ecdd59bcbc45") + with default_args(get_full_repo=True): + version("5.54.0", commit="bb8bc5f757c8b7c020da31b6a3f500075715ab8e") + version("5.52.0", commit="a1fc3ad206454d1151bcc940644fd8a5c4164d63") + version("5.50.0", commit="08612a06eb1cc7381f9bf70f6fe198bb401a21df") + version("5.48.0", commit="86c2c8f35734dcbc8c8ca791d8a190dc525beac9") + version("5.44.0", commit="571933d5c779a241740be913ff49ecdd59bcbc45") depends_on("r-survival", type=("build", "run")) depends_on("r-biobase", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_glue/package.py b/repos/spack_repo/builtin/packages/r_glue/package.py index 636de27bf8b..7e0a0e0485e 100644 --- a/repos/spack_repo/builtin/packages/r_glue/package.py +++ b/repos/spack_repo/builtin/packages/r_glue/package.py @@ -20,6 +20,7 @@ class RGlue(RPackage): license("MIT") + version("1.8.0", sha256="c86f364ba899b8662f5da3e1a75f43ae081ab04e0d51171d052356e7ee4b72a0") version("1.7.0", sha256="1af51b51f52c1aeb3bfe9349f55896dd78b5542ffdd5654e432e4d646e4a86dc") version("1.6.2", sha256="9da518f12be584c90e75fe8e07f711ee3f6fc0d03d817f72c25dc0f66499fdbf") version("1.6.1", sha256="318c2f9544f1204216009f512793c44d6bbe178ff2012f56fa5ffb5e1da978db") diff --git a/repos/spack_repo/builtin/packages/r_gmp/package.py b/repos/spack_repo/builtin/packages/r_gmp/package.py index 8371856ac42..c612e85fc42 100644 --- a/repos/spack_repo/builtin/packages/r_gmp/package.py +++ b/repos/spack_repo/builtin/packages/r_gmp/package.py @@ -29,6 +29,8 @@ class RGmp(RPackage): version("0.5-13.4", sha256="f05605b40fc39fc589e3a4d2f526a591a649faa45eef7f95c096e1bff8775196") version("0.5-13.1", sha256="2f805374a26742cd43f6b2054130d8670eda1940070aabb9971e9e48226d0976") + depends_on("cxx", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@0.6-2:") depends_on("gmp@4.2.3:") diff --git a/repos/spack_repo/builtin/packages/r_gofuncr/package.py b/repos/spack_repo/builtin/packages/r_gofuncr/package.py index db655983613..a0f4c4e4148 100644 --- a/repos/spack_repo/builtin/packages/r_gofuncr/package.py +++ b/repos/spack_repo/builtin/packages/r_gofuncr/package.py @@ -29,14 +29,15 @@ class RGofuncr(RPackage): bioc = "GOfuncR" - version("1.20.0", commit="2374d68fdd13a72bc8d43cc3b5e6735228996ff1") - version("1.18.0", commit="49182411e40a5d72abf99a5cca9287f34f870b19") - version("1.16.0", commit="603fc79e13b58ec4612b6092f37d2450078dbfe1") - version("1.14.0", commit="b3d445acf95851241d1fdb673d108ee115bdc17b") - version("1.10.0", commit="51b01a2b9afa03fde2e1628036096cbeafaa2ef4") - version("1.4.0", commit="2f633dc28e3faeddc5346fcdcadf1c29e3fcf709") - version("1.2.0", commit="140a3cea4fe34d32fef9be756f85e337ce3deded") - version("1.0.0", commit="becd4ddde085c5477042adb856e7a4f40dbd648e") + with default_args(get_full_repo=True): + version("1.20.0", commit="2374d68fdd13a72bc8d43cc3b5e6735228996ff1") + version("1.18.0", commit="49182411e40a5d72abf99a5cca9287f34f870b19") + version("1.16.0", commit="603fc79e13b58ec4612b6092f37d2450078dbfe1") + version("1.14.0", commit="b3d445acf95851241d1fdb673d108ee115bdc17b") + version("1.10.0", commit="51b01a2b9afa03fde2e1628036096cbeafaa2ef4") + version("1.4.0", commit="2f633dc28e3faeddc5346fcdcadf1c29e3fcf709") + version("1.2.0", commit="140a3cea4fe34d32fef9be756f85e337ce3deded") + version("1.0.0", commit="becd4ddde085c5477042adb856e7a4f40dbd648e") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_googledrive/package.py b/repos/spack_repo/builtin/packages/r_googledrive/package.py index 5833ab6d4ca..e994e51ba5b 100644 --- a/repos/spack_repo/builtin/packages/r_googledrive/package.py +++ b/repos/spack_repo/builtin/packages/r_googledrive/package.py @@ -16,29 +16,34 @@ class RGoogledrive(RPackage): license("MIT") + version("2.1.2", sha256="3809ea4d8333eb80e6ca4e780f198014f65b21c3cf4ec95a63aeb6772c8d94aa") version("2.1.1", sha256="0b8b4f74ba3630b0347249a32a80bc5fc2e8b63ad2952702f30162bd2d38fb82") version("2.1.0", sha256="0d70353bbf1bebc96d3987ebd9cbb2b0902e6ddc4cdccece3d07c2bb688c4b74") version("2.0.0", sha256="605c469a6a086ef4b049909c2e20a35411c165ce7ce4f62d68fd39ffed8c5a26") - depends_on("r@3.3:", type=("build", "run")) - depends_on("r@3.5:", type=("build", "run"), when="@2.1.0:") - depends_on("r@3.6:", type=("build", "run"), when="@2.1.1:") - depends_on("r-cli@3.0.0:", type=("build", "run")) - depends_on("r-gargle@1.2.0:", type=("build", "run")) - depends_on("r-gargle@1.3.0:", type=("build", "run"), when="@2.1.0:") - depends_on("r-gargle@1.5.0:", type=("build", "run"), when="@2.1.1:") - depends_on("r-glue@1.4.2:", type=("build", "run")) - depends_on("r-httr", type=("build", "run")) - depends_on("r-jsonlite", type=("build", "run")) - depends_on("r-lifecycle", type=("build", "run")) - depends_on("r-magrittr", type=("build", "run")) - depends_on("r-pillar", type=("build", "run")) - depends_on("r-pillar@1.9.0:", type=("build", "run"), when="@2.1.1:") - depends_on("r-purrr@0.2.3:", type=("build", "run")) - depends_on("r-purrr@1.0.1:", type=("build", "run"), when="@2.1.0:") - depends_on("r-rlang@0.4.9:", type=("build", "run")) - depends_on("r-rlang@1.0.2:", type=("build", "run"), when="@2.1.0:") - depends_on("r-tibble@2.0.0:", type=("build", "run")) - depends_on("r-uuid", type=("build", "run")) - depends_on("r-vctrs@0.3.0:", type=("build", "run")) - depends_on("r-withr", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("r@4.1:", when="@2.1.2:") + depends_on("r@3.6:", when="@2.1.1:") + depends_on("r@3.5:", when="@2.1.0:") + depends_on("r@3.3:") + + depends_on("r-cli@3.0.0:") + depends_on("r-gargle@1.6.0:", when="@2.1.2:") + depends_on("r-gargle@1.5.0:", when="@2.1.1:") + depends_on("r-gargle@1.3.0:", when="@2.1.0:") + depends_on("r-gargle@1.2.0:") + depends_on("r-glue@1.4.2:") + depends_on("r-httr") + depends_on("r-jsonlite") + depends_on("r-lifecycle") + depends_on("r-magrittr") + depends_on("r-pillar@1.9.0:", when="@2.1.1:") + depends_on("r-pillar") + depends_on("r-purrr@1.0.1:", when="@2.1.0:") + depends_on("r-purrr@0.2.3:") + depends_on("r-rlang@1.0.2:", when="@2.1.0:") + depends_on("r-rlang@0.4.9:") + depends_on("r-tibble@2.0.0:") + depends_on("r-uuid") + depends_on("r-vctrs@0.3.0:") + depends_on("r-withr") diff --git a/repos/spack_repo/builtin/packages/r_googlesheets4/package.py b/repos/spack_repo/builtin/packages/r_googlesheets4/package.py index f304726fff4..6bd9753c1f9 100644 --- a/repos/spack_repo/builtin/packages/r_googlesheets4/package.py +++ b/repos/spack_repo/builtin/packages/r_googlesheets4/package.py @@ -22,32 +22,36 @@ class RGooglesheets4(RPackage): license("MIT") + version("1.1.2", sha256="7ba9d5dd051a405a7af6d41d5fc12bdec8474f9fb1482ef32eb79aa6914fadd9") version("1.1.1", sha256="c5cc63348c54b9de8492e7b12b249245746ea1ff33e306f12431f4fc9386fccf") version("1.1.0", sha256="50e15543bef5b8d8cda36f6ea8a1d59b256d889cd3cedddc91f00ae30c8c8ec9") version("1.0.1", sha256="284ecbce98944093cb065c1b0b32074eae7b45fd74b87d7815c7ca6deca76591") version("1.0.0", sha256="0a107d76aac99d6db48d97ce55810c1412b2197f457b8476f676169a36c7cc7a") - depends_on("r@3.3:", type=("build", "run")) - depends_on("r@3.4:", type=("build", "run"), when="@1.0.1:") - depends_on("r@3.5:", type=("build", "run"), when="@1.1.0:") - depends_on("r@3.6:", type=("build", "run"), when="@1.1.1:") - depends_on("r-cellranger", type=("build", "run")) - depends_on("r-cli@3.0.0:", type=("build", "run")) - depends_on("r-curl", type=("build", "run")) - depends_on("r-gargle@1.2.0:", type=("build", "run"), when="@1.0.0:") - depends_on("r-gargle@1.3.0:", type=("build", "run"), when="@1.1.0:") - depends_on("r-gargle@1.5.0:", type=("build", "run"), when="@1.1.1:") - depends_on("r-glue@1.3.0:", type=("build", "run")) - depends_on("r-googledrive@2.0.0:", type=("build", "run")) - depends_on("r-googledrive@2.1.0:", type=("build", "run"), when="@1.1.0:") - depends_on("r-httr", type=("build", "run")) - depends_on("r-ids", type=("build", "run")) - depends_on("r-lifecycle", type=("build", "run"), when="@1.1.0:") - depends_on("r-magrittr", type=("build", "run")) - depends_on("r-purrr", type=("build", "run")) - depends_on("r-rematch2", type=("build", "run")) - depends_on("r-rlang@0.4.11:", type=("build", "run")) - depends_on("r-rlang@1.0.2:", type=("build", "run"), when="@1.0.1:") - depends_on("r-tibble@2.1.1:", type=("build", "run")) - depends_on("r-vctrs@0.2.3:", type=("build", "run")) - depends_on("r-withr", type=("build", "run"), when="@1.1.0:") + with default_args(type=("build", "run")): + depends_on("r@3.6:", when="@1.1.1:") + depends_on("r@3.5:", when="@1.1.0:") + depends_on("r@3.4:", when="@1.0.1:") + depends_on("r@3.3:") + + depends_on("r-cellranger") + depends_on("r-cli@3.0.0:") + depends_on("r-curl") + depends_on("r-gargle@1.6.0:", when="@1.1.2:") + depends_on("r-gargle@1.5.0:", when="@1.1.1:") + depends_on("r-gargle@1.3.0:", when="@1.1.0:") + depends_on("r-gargle@1.2.0:", when="@1.0.0:") + depends_on("r-glue@1.3.0:") + depends_on("r-googledrive@2.1.0:", when="@1.1.0:") + depends_on("r-googledrive@2.0.0:") + depends_on("r-httr") + depends_on("r-ids") + depends_on("r-lifecycle", when="@1.1.0:") + depends_on("r-magrittr") + depends_on("r-purrr") + depends_on("r-rematch2") + depends_on("r-rlang@1.0.2:", when="@1.0.1:") + depends_on("r-rlang@0.4.11:") + depends_on("r-tibble@2.1.1:") + depends_on("r-vctrs@0.2.3:") + depends_on("r-withr", when="@1.1.0:") diff --git a/repos/spack_repo/builtin/packages/r_gosemsim/package.py b/repos/spack_repo/builtin/packages/r_gosemsim/package.py index 74be1dad95e..acb230d1954 100644 --- a/repos/spack_repo/builtin/packages/r_gosemsim/package.py +++ b/repos/spack_repo/builtin/packages/r_gosemsim/package.py @@ -20,16 +20,17 @@ class RGosemsim(RPackage): bioc = "GOSemSim" - version("2.26.0", commit="ef3d5a7fb37b43603de4f43aa4fecadaa47f93e0") - version("2.24.0", commit="ed7334f3cf3ac7ce5be76003934c29b598089f4d") - version("2.22.0", commit="fd74aeba2371ebf9db0595cf18674441bdac9618") - version("2.20.0", commit="fa82442aaa4ad1a8dacc05ee2c54f5e5e770a794") - version("2.16.1", commit="92f1d567f3584fe488f434abce87c2e1950081c0") - version("2.10.0", commit="5db1ecbf2f8d870430d6e587609327d05ba3ad7b") - version("2.8.0", commit="c8c985b2a814cc2365c7f05b2509205e1b6b7f58") - version("2.6.2", commit="2ffe78e89276e804306554965fc0799318ec56ed") - version("2.4.1", commit="0656e845860d14e054670ffc246a1c53f699299c") - version("2.2.0", commit="247434790e6c8cf99e5643f569390362b8c87c52") + with default_args(get_full_repo=True): + version("2.26.0", commit="ef3d5a7fb37b43603de4f43aa4fecadaa47f93e0") + version("2.24.0", commit="ed7334f3cf3ac7ce5be76003934c29b598089f4d") + version("2.22.0", commit="fd74aeba2371ebf9db0595cf18674441bdac9618") + version("2.20.0", commit="fa82442aaa4ad1a8dacc05ee2c54f5e5e770a794") + version("2.16.1", commit="92f1d567f3584fe488f434abce87c2e1950081c0") + version("2.10.0", commit="5db1ecbf2f8d870430d6e587609327d05ba3ad7b") + version("2.8.0", commit="c8c985b2a814cc2365c7f05b2509205e1b6b7f58") + version("2.6.2", commit="2ffe78e89276e804306554965fc0799318ec56ed") + version("2.4.1", commit="0656e845860d14e054670ffc246a1c53f699299c") + version("2.2.0", commit="247434790e6c8cf99e5643f569390362b8c87c52") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_goseq/package.py b/repos/spack_repo/builtin/packages/r_goseq/package.py index c22ec5e30ce..5863b9be247 100644 --- a/repos/spack_repo/builtin/packages/r_goseq/package.py +++ b/repos/spack_repo/builtin/packages/r_goseq/package.py @@ -15,16 +15,17 @@ class RGoseq(RPackage): bioc = "goseq" - version("1.52.0", commit="d6b0cfddf887a074acf18c77c2ea4cb3a9202bd8") - version("1.50.0", commit="f9fad238e2d08a87b14c3c8c228ad332efa60f14") - version("1.48.0", commit="d077fda56986cc7218a88f7db37a42412b227025") - version("1.46.0", commit="1fb5626cc80f595499af511a830322ed12bbe144") - version("1.42.0", commit="8164b90e7505bbc1035105fdc15219c764ef8b8d") - version("1.36.0", commit="26c9f7de18889afeee1b571ca1c4ab4d2877ab80") - version("1.34.1", commit="bad217b42cc34423698fbcf701d4e3591aac4474") - version("1.32.0", commit="32fcbe647eea17d7d0d7a262610811502c421d36") - version("1.30.0", commit="fa8cafe0766ed0b6a97a4ed3374a709ed9d1daf1") - version("1.28.0", commit="ed0ce332a8972618d740d8a93711dff994657738") + with default_args(get_full_repo=True): + version("1.52.0", commit="d6b0cfddf887a074acf18c77c2ea4cb3a9202bd8") + version("1.50.0", commit="f9fad238e2d08a87b14c3c8c228ad332efa60f14") + version("1.48.0", commit="d077fda56986cc7218a88f7db37a42412b227025") + version("1.46.0", commit="1fb5626cc80f595499af511a830322ed12bbe144") + version("1.42.0", commit="8164b90e7505bbc1035105fdc15219c764ef8b8d") + version("1.36.0", commit="26c9f7de18889afeee1b571ca1c4ab4d2877ab80") + version("1.34.1", commit="bad217b42cc34423698fbcf701d4e3591aac4474") + version("1.32.0", commit="32fcbe647eea17d7d0d7a262610811502c421d36") + version("1.30.0", commit="fa8cafe0766ed0b6a97a4ed3374a709ed9d1daf1") + version("1.28.0", commit="ed0ce332a8972618d740d8a93711dff994657738") depends_on("r@2.11.0:", type=("build", "run")) depends_on("r-biasedurn", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_gostats/package.py b/repos/spack_repo/builtin/packages/r_gostats/package.py index 5214adec471..acede376dd9 100644 --- a/repos/spack_repo/builtin/packages/r_gostats/package.py +++ b/repos/spack_repo/builtin/packages/r_gostats/package.py @@ -16,16 +16,17 @@ class RGostats(RPackage): bioc = "GOstats" - version("2.66.0", commit="dbfc8a7646b53db53b0c329e0e1c77c0f202f08f") - version("2.64.0", commit="62813253249dc02d2ddaafa7f0249e69d6f2c6b0") - version("2.62.0", commit="217db032272010ebb8fe3af4647153428f42cd47") - version("2.60.0", commit="a20055cc1c04a91b0291a918dadd9ea912c187ce") - version("2.56.0", commit="8f988c3b4b1ce7e05626aae8956004c7bbdd6f3a") - version("2.50.0", commit="ee13f84341988d537a5485dcdcfb71f69e6e4930") - version("2.48.0", commit="5db7020f4bab725cd729b32bd1d5e819b31f2485") - version("2.46.0", commit="489d7a437488f77c3010f6212f3b81f4e240cd17") - version("2.44.0", commit="fc64ca2aa37c52656d396d6e46611f39d6efd48a") - version("2.42.0", commit="8b29709064a3b66cf1d963b2be0c996fb48c873e") + with default_args(get_full_repo=True): + version("2.66.0", commit="dbfc8a7646b53db53b0c329e0e1c77c0f202f08f") + version("2.64.0", commit="62813253249dc02d2ddaafa7f0249e69d6f2c6b0") + version("2.62.0", commit="217db032272010ebb8fe3af4647153428f42cd47") + version("2.60.0", commit="a20055cc1c04a91b0291a918dadd9ea912c187ce") + version("2.56.0", commit="8f988c3b4b1ce7e05626aae8956004c7bbdd6f3a") + version("2.50.0", commit="ee13f84341988d537a5485dcdcfb71f69e6e4930") + version("2.48.0", commit="5db7020f4bab725cd729b32bd1d5e819b31f2485") + version("2.46.0", commit="489d7a437488f77c3010f6212f3b81f4e240cd17") + version("2.44.0", commit="fc64ca2aa37c52656d396d6e46611f39d6efd48a") + version("2.42.0", commit="8b29709064a3b66cf1d963b2be0c996fb48c873e") depends_on("r+X", type=("build", "run")) depends_on("r@2.10:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_graph/package.py b/repos/spack_repo/builtin/packages/r_graph/package.py index 5d5aba38c53..d43beab09b1 100644 --- a/repos/spack_repo/builtin/packages/r_graph/package.py +++ b/repos/spack_repo/builtin/packages/r_graph/package.py @@ -14,16 +14,17 @@ class RGraph(RPackage): bioc = "graph" - version("1.78.0", commit="9df68e8f74e2b807b033f991d21142edfd1bc090") - version("1.76.0", commit="e3efc108716e98bd3363621d17a6f9c3ef975d19") - version("1.74.0", commit="4af608a5d9e1de33fda6ae28fb73bff9272ee296") - version("1.72.0", commit="7afbd26ecd76e55e6bbd74915a561d7a9b15f907") - version("1.68.0", commit="03ad9ed088095605e317510b8234501318994e94") - version("1.62.0", commit="95223bd63ceb66cfe8d881f992a441de8b8c89a3") - version("1.60.0", commit="e2aecb0a862f32091b16e0036f53367d3edf4c1d") - version("1.58.2", commit="6455d8e7a5a45dc733915942cb71005c1016b6a0") - version("1.56.0", commit="c4abe227dac525757679743e6fb4f49baa34acad") - version("1.54.0", commit="2a8b08520096241620421078fc1098f4569c7301") + with default_args(get_full_repo=True): + version("1.78.0", commit="9df68e8f74e2b807b033f991d21142edfd1bc090") + version("1.76.0", commit="e3efc108716e98bd3363621d17a6f9c3ef975d19") + version("1.74.0", commit="4af608a5d9e1de33fda6ae28fb73bff9272ee296") + version("1.72.0", commit="7afbd26ecd76e55e6bbd74915a561d7a9b15f907") + version("1.68.0", commit="03ad9ed088095605e317510b8234501318994e94") + version("1.62.0", commit="95223bd63ceb66cfe8d881f992a441de8b8c89a3") + version("1.60.0", commit="e2aecb0a862f32091b16e0036f53367d3edf4c1d") + version("1.58.2", commit="6455d8e7a5a45dc733915942cb71005c1016b6a0") + version("1.56.0", commit="c4abe227dac525757679743e6fb4f49baa34acad") + version("1.54.0", commit="2a8b08520096241620421078fc1098f4569c7301") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_graphlayouts/package.py b/repos/spack_repo/builtin/packages/r_graphlayouts/package.py index 6b0646ecd27..41a771a261a 100644 --- a/repos/spack_repo/builtin/packages/r_graphlayouts/package.py +++ b/repos/spack_repo/builtin/packages/r_graphlayouts/package.py @@ -28,6 +28,8 @@ class RGraphlayouts(RPackage): version("0.7.1", sha256="380f8ccb0b08735694e83f661fd56a0d592a78448ae91b89c290ba8582d66717") version("0.5.0", sha256="83f61ce07580c5a64c7044c12b20d98ccf138c7e78ff12855cdfc206e1fab10d") + depends_on("cxx", type="build") # generated + depends_on("r@3.2.0:", type=("build", "run")) depends_on("r-igraph", type=("build", "run")) depends_on("r-rcpp", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_grbase/package.py b/repos/spack_repo/builtin/packages/r_grbase/package.py index f58eec4ee5f..920c7edff51 100644 --- a/repos/spack_repo/builtin/packages/r_grbase/package.py +++ b/repos/spack_repo/builtin/packages/r_grbase/package.py @@ -34,6 +34,9 @@ class RGrbase(RPackage): version("1.8-6.7", sha256="aaafc7e1b521de60e1a57c0175ac64d4283850c3273bd14774cf24dabc743388") version("1.8-3.4", sha256="d35f94c2fb7cbd4ce3991570424dfe6723a849658da32e13df29f53b6ea2cc2c") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r+X", type=("build", "run")) depends_on("r@3.0.2:", type=("build", "run")) depends_on("r@3.6.0:", type=("build", "run"), when="@1.8-6.7:") diff --git a/repos/spack_repo/builtin/packages/r_gridpattern/package.py b/repos/spack_repo/builtin/packages/r_gridpattern/package.py new file mode 100644 index 00000000000..784bb317b4e --- /dev/null +++ b/repos/spack_repo/builtin/packages/r_gridpattern/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.r import RPackage + +from spack.package import * + + +class RGridpattern(RPackage): + """Provides 'grid' grobs that fill in a user-defined area with various patterns. + Includes enhanced versions of the geometric and image-based patterns originally + contained in the 'ggpattern' package as well as original 'pch', 'polygon_tiling', + 'regular_polygon', 'rose', 'text', 'wave', and 'weave' patterns plus support for + custom user-defined patterns.""" + + cran = "gridpattern" + + license("MIT") + + version("1.3.1", sha256="2e67ff7c4e381a4ce60fbc368d1fd01917503a970f3179641501ccbb7d8acea5") + + depends_on("r-glue", type=("build", "run")) + depends_on("r-memoise", type=("build", "run")) + depends_on("r-png", type=("build", "run")) + depends_on("r-rlang", type=("build", "run")) + depends_on("r-sf", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_gseabase/package.py b/repos/spack_repo/builtin/packages/r_gseabase/package.py index 77cfc79b3a1..548c682a1b8 100644 --- a/repos/spack_repo/builtin/packages/r_gseabase/package.py +++ b/repos/spack_repo/builtin/packages/r_gseabase/package.py @@ -15,16 +15,17 @@ class RGseabase(RPackage): bioc = "GSEABase" - version("1.62.0", commit="fc20cbcd85da0202eb0f2316dcf63f6fb1372b3e") - version("1.60.0", commit="aae4e52b50b076550967601f98031e952fb97765") - version("1.58.0", commit="7de04442fb1ab63ffde29f4e3daf13ad32e90bdb") - version("1.56.0", commit="ee7c3ca4ad0f1f3e9b9162db1515413802860ecc") - version("1.52.1", commit="257dfccbc5b507d82099fac6b06bb03825e995e8") - version("1.46.0", commit="edce83a9256a0c03206c2bce7c90ada0d90f6622") - version("1.44.0", commit="7042ff64a98b05b9572231ee1b4f3ae4fc9c768e") - version("1.42.0", commit="5e40ce0fdd4dc0cff7601b169bbf6aa1430ae33e") - version("1.40.1", commit="3e5441708b80aab2c9642988bee709d5732831a6") - version("1.38.2", commit="84c9f10c316163118ca990900a7a67555b96e75b") + with default_args(get_full_repo=True): + version("1.62.0", commit="fc20cbcd85da0202eb0f2316dcf63f6fb1372b3e") + version("1.60.0", commit="aae4e52b50b076550967601f98031e952fb97765") + version("1.58.0", commit="7de04442fb1ab63ffde29f4e3daf13ad32e90bdb") + version("1.56.0", commit="ee7c3ca4ad0f1f3e9b9162db1515413802860ecc") + version("1.52.1", commit="257dfccbc5b507d82099fac6b06bb03825e995e8") + version("1.46.0", commit="edce83a9256a0c03206c2bce7c90ada0d90f6622") + version("1.44.0", commit="7042ff64a98b05b9572231ee1b4f3ae4fc9c768e") + version("1.42.0", commit="5e40ce0fdd4dc0cff7601b169bbf6aa1430ae33e") + version("1.40.1", commit="3e5441708b80aab2c9642988bee709d5732831a6") + version("1.38.2", commit="84c9f10c316163118ca990900a7a67555b96e75b") depends_on("r@2.6.0:", type=("build", "run")) depends_on("r-biocgenerics@0.13.8:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_gss/package.py b/repos/spack_repo/builtin/packages/r_gss/package.py index edbd153e144..b9509789bc3 100644 --- a/repos/spack_repo/builtin/packages/r_gss/package.py +++ b/repos/spack_repo/builtin/packages/r_gss/package.py @@ -24,5 +24,8 @@ class RGss(RPackage): version("2.1-10", sha256="26c47ecae6a9b7854a1b531c09f869cf8b813462bd8093e3618e1091ace61ee2") version("2.1-7", sha256="0405bb5e4c4d60b466335e5da07be4f9570045a24aed09e7bc0640e1a00f3adb") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@2.14.0:", type=("build", "run")) depends_on("r@3.0.0:", type=("build", "run"), when="@2.2-2:") diff --git a/repos/spack_repo/builtin/packages/r_gtable/package.py b/repos/spack_repo/builtin/packages/r_gtable/package.py index 08318590da4..61c27b9f7d3 100644 --- a/repos/spack_repo/builtin/packages/r_gtable/package.py +++ b/repos/spack_repo/builtin/packages/r_gtable/package.py @@ -19,16 +19,18 @@ class RGtable(RPackage): cran = "gtable" license("MIT") - + version("0.3.6", sha256="d305a5fa11278b649d2d8edc5288bf28009be888a42be58ff8714018e49de0ef") version("0.3.5", sha256="b19fc1a30359945adbab7d4e915fe95523a839c380e34ae705d70b7ebddeea72") version("0.3.3", sha256="2f9a58d978e2a487b7fd8841539ea33cf948e55ddf6f7a9bd2dd3362600a7b3a") version("0.3.1", sha256="8bd62c5722d5188914d667cabab12991c555f657f4f5ce7b547571ae3aec7cb5") version("0.3.0", sha256="fd386cc4610b1cc7627dac34dba8367f7efe114b968503027fb2e1265c67d6d3") version("0.2.0", sha256="801e4869830ff3da1d38e41f5a2296a54fc10a7419c6ffb108582850c701e76f") - depends_on("r@3.0:", type=("build", "run")) - depends_on("r@3.5:", type=("build", "run"), when="@0.3.3:") - depends_on("r-rlang@1.1.0:", type=("build", "run"), when="@0.3.3:") - depends_on("r-lifecycle", type=("build", "run"), when="@0.3.3:") - depends_on("r-glue", type=("build", "run"), when="@0.3.3:") - depends_on("r-cli", type=("build", "run"), when="@0.3.3:") + with default_args(type=("build", "run")): + depends_on("r@3.0:") + depends_on("r@3.5:", when="@0.3.3:") + depends_on("r@4:", when="@0.3.6:") + depends_on("r-rlang@1.1.0:", when="@0.3.3:") + depends_on("r-lifecycle", when="@0.3.3:") + depends_on("r-glue", when="@0.3.3:") + depends_on("r-cli", when="@0.3.3:") diff --git a/repos/spack_repo/builtin/packages/r_gtools/package.py b/repos/spack_repo/builtin/packages/r_gtools/package.py index 5850612e749..b3cf926a81d 100644 --- a/repos/spack_repo/builtin/packages/r_gtools/package.py +++ b/repos/spack_repo/builtin/packages/r_gtools/package.py @@ -55,4 +55,7 @@ class RGtools(RPackage): version("3.8.1", sha256="051484459bd8ad1b03425b8843d24f6828fea18f7357cfa1c192198cc3f4ba38") version("3.5.0", sha256="86b6a51a92ddb3c78095e0c5dc20414c67f6e28f915bf0ee11406adad3e476f6") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("r@2.10:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_gtrellis/package.py b/repos/spack_repo/builtin/packages/r_gtrellis/package.py index 38c94fc2baa..21f79a2c0e0 100644 --- a/repos/spack_repo/builtin/packages/r_gtrellis/package.py +++ b/repos/spack_repo/builtin/packages/r_gtrellis/package.py @@ -21,16 +21,17 @@ class RGtrellis(RPackage): license("MIT") - version("1.32.0", commit="4c2361bde90a556aa5a585d45f056b3ddc806f9b") - version("1.30.0", commit="da93b30ef812e231c47aa83da5c521f1801b3d14") - version("1.28.0", commit="d770a7b3441e4003869c88cfd8e21fd6508b86c4") - version("1.26.0", commit="f2c3121b31ad1b422e2cf503435d0590e903ff3f") - version("1.22.0", commit="c071c5631f3dedda212aed87d9c02954b5ed6611") - version("1.16.1", commit="a9003ededc8f2a48c78d4545e2f214023c13a7da") - version("1.14.0", commit="93935fb34211d12b250e22291712e18a31b0208d") - version("1.12.1", commit="7f3941adddbbfa17f4cf474b703568678a38272d") - version("1.11.1", commit="ff47d99743fd697d5c724f7bb18131dfe76dee71") - version("1.8.0", commit="f813b420a008c459f63a2a13e5e64c5507c4c472") + with default_args(get_full_repo=True): + version("1.32.0", commit="4c2361bde90a556aa5a585d45f056b3ddc806f9b") + version("1.30.0", commit="da93b30ef812e231c47aa83da5c521f1801b3d14") + version("1.28.0", commit="d770a7b3441e4003869c88cfd8e21fd6508b86c4") + version("1.26.0", commit="f2c3121b31ad1b422e2cf503435d0590e903ff3f") + version("1.22.0", commit="c071c5631f3dedda212aed87d9c02954b5ed6611") + version("1.16.1", commit="a9003ededc8f2a48c78d4545e2f214023c13a7da") + version("1.14.0", commit="93935fb34211d12b250e22291712e18a31b0208d") + version("1.12.1", commit="7f3941adddbbfa17f4cf474b703568678a38272d") + version("1.11.1", commit="ff47d99743fd697d5c724f7bb18131dfe76dee71") + version("1.8.0", commit="f813b420a008c459f63a2a13e5e64c5507c4c472") depends_on("r@3.1.2:", type=("build", "run")) depends_on("r-iranges", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_gviz/package.py b/repos/spack_repo/builtin/packages/r_gviz/package.py index a1569798f66..f28c0cd260e 100644 --- a/repos/spack_repo/builtin/packages/r_gviz/package.py +++ b/repos/spack_repo/builtin/packages/r_gviz/package.py @@ -21,16 +21,17 @@ class RGviz(RPackage): license("Artistic-2.0") - version("1.44.0", commit="e70aaa7dd27df8482ee854395475a87ec2121279") - version("1.42.0", commit="4eddb688bca3fdeb65fd536d653d7ba7f7976121") - version("1.40.1", commit="d21843710cd05135353de5cd4ce4d35cdd333b7c") - version("1.38.3", commit="c4b352a16455a5744533c511e59354977814cb9e") - version("1.34.0", commit="445fadff2aedd8734580fa908aa47ff1216a8182") - version("1.28.3", commit="20b9825af144cfc888629c34aa980b5bbd65bf86") - version("1.26.5", commit="430310b9d2e098f9757a71d26a2f69871071f30c") - version("1.24.0", commit="3ee1eec97a56653c07c434a97f82cfe3c4281841") - version("1.22.3", commit="2238079d0a7017c474f010acb35d98ee7cc1c5d1") - version("1.20.0", commit="299b8255e1b03932cebe287c3690d58c88f5ba5c") + with default_args(get_full_repo=True): + version("1.44.0", commit="e70aaa7dd27df8482ee854395475a87ec2121279") + version("1.42.0", commit="4eddb688bca3fdeb65fd536d653d7ba7f7976121") + version("1.40.1", commit="d21843710cd05135353de5cd4ce4d35cdd333b7c") + version("1.38.3", commit="c4b352a16455a5744533c511e59354977814cb9e") + version("1.34.0", commit="445fadff2aedd8734580fa908aa47ff1216a8182") + version("1.28.3", commit="20b9825af144cfc888629c34aa980b5bbd65bf86") + version("1.26.5", commit="430310b9d2e098f9757a71d26a2f69871071f30c") + version("1.24.0", commit="3ee1eec97a56653c07c434a97f82cfe3c4281841") + version("1.22.3", commit="2238079d0a7017c474f010acb35d98ee7cc1c5d1") + version("1.20.0", commit="299b8255e1b03932cebe287c3690d58c88f5ba5c") depends_on("r@2.10.0:", type=("build", "run")) depends_on("r@4.0:", type=("build", "run"), when="@1.34.0:") diff --git a/repos/spack_repo/builtin/packages/r_gwmodel/package.py b/repos/spack_repo/builtin/packages/r_gwmodel/package.py index 097d8f72f2a..5c748032355 100644 --- a/repos/spack_repo/builtin/packages/r_gwmodel/package.py +++ b/repos/spack_repo/builtin/packages/r_gwmodel/package.py @@ -33,6 +33,9 @@ class RGwmodel(RPackage): version("2.1-1", sha256="91241b4e26d423a54c7c6784ef5159759058a5dafdff18a1ea8451faf979d1f3") version("2.0-9", sha256="b479af2c19d4aec30f1883d00193d52e342c609c1badcb51cc0344e4404cffa7") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r-robustbase", type=("build", "run")) depends_on("r-sf", type=("build", "run"), when="@2.3-1:") diff --git a/repos/spack_repo/builtin/packages/r_haven/package.py b/repos/spack_repo/builtin/packages/r_haven/package.py index 83ac61fe0b5..b5b4112e62f 100644 --- a/repos/spack_repo/builtin/packages/r_haven/package.py +++ b/repos/spack_repo/builtin/packages/r_haven/package.py @@ -17,6 +17,7 @@ class RHaven(RPackage): license("MIT") + version("2.5.5", sha256="9482cd9c3760e1838acf687235317fed97fa6bf79219d3216f0ea447d4b1c9a5") version("2.5.4", sha256="9e1531bb37aa474abd91db5e0ed9e3a355c03faa65f4e653b3ea68b7c61ea835") version("2.5.3", sha256="9a5999afad09f0cf80515241b2ff19a0c480658c4bd3810638ad52762e04b7e3") version("2.5.2", sha256="2131fb0377ae1beffae54bf4beb8b3a876e9b6b9841a5acc39a2a2615023561d") @@ -30,22 +31,26 @@ class RHaven(RPackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - - depends_on("r@3.1:", type=("build", "run")) - depends_on("r@3.2:", type=("build", "run"), when="@2.1.1:") - depends_on("r@3.4:", type=("build", "run"), when="@2.5.0:") - depends_on("r@3.6:", type=("build", "run"), when="@2.5.4:") - depends_on("r-cli@3.0.0:", type=("build", "run"), when="@2.5.0:") - depends_on("r-forcats@0.2.0:", type=("build", "run")) - depends_on("r-hms", type=("build", "run")) - depends_on("r-lifecycle", type=("build", "run"), when="@2.5.0:") - depends_on("r-readr@0.1.0:", type=("build", "run")) - depends_on("r-rlang@0.4.0:", type=("build", "run"), when="@2.3.1:") - depends_on("r-tibble", type=("build", "run")) - depends_on("r-tidyselect", type=("build", "run"), when="@2.3.1:") - depends_on("r-vctrs@0.3.0:", type=("build", "run"), when="@2.3.1:") - depends_on("r-cpp11", type=("build", "run"), when="@2.4:") depends_on("gmake", type="build") - depends_on("zlib-api", when="@2.4:") - depends_on("r-rcpp@0.11.4:", type=("build", "run"), when="@:2.3") + with default_args(type=("build", "run")): + depends_on("r@3.6:", when="@2.5.4:") + depends_on("r@3.4:", when="@2.5.0:") + depends_on("r@3.2:", when="@2.1.1:") + depends_on("r@3.1:") + + depends_on("r-cli@3.0.0:", when="@2.5.0:") + depends_on("r-forcats@0.2.0:") + depends_on("r-hms") + depends_on("r-lifecycle", when="@2.5.0:") + depends_on("r-readr@0.1.0:") + depends_on("r-rlang@0.4.0:", when="@2.3.1:") + depends_on("r-tibble") + depends_on("r-tidyselect", when="@2.3.1:") + depends_on("r-vctrs@0.3.0:", when="@2.3.1:") + depends_on("r-cpp11", when="@2.4:") + + # Historical dependencies + depends_on("r-rcpp@0.11.4:", when="@:2.3") + + depends_on("zlib-api", when="@2.4:") diff --git a/repos/spack_repo/builtin/packages/r_hdf5array/package.py b/repos/spack_repo/builtin/packages/r_hdf5array/package.py index 1b14356649c..7046ffa71c5 100644 --- a/repos/spack_repo/builtin/packages/r_hdf5array/package.py +++ b/repos/spack_repo/builtin/packages/r_hdf5array/package.py @@ -21,17 +21,18 @@ class RHdf5array(RPackage): bioc = "HDF5Array" - version("1.28.0", commit="8c839417c4a37c35330bd6f02b79dda9f48e76ae") - version("1.26.0", commit="38b7bd603f7281245605048d8d57237e00b74d79") - version("1.24.2", commit="fb213ba36631b04dfe754705f701f3a015c4fc82") - version("1.24.1", commit="d002fe70c84baaadb62058ce467d6c1ea032d8f5") - version("1.22.1", commit="b3f091fbc159609e8e0792d2bf9fbef52c6ceede") - version("1.18.0", commit="d5bd55d170cb384fdebdf60751e1e28483782caa") - version("1.12.3", commit="21c6077f3f789748a18f2e579110576c5522e975") - version("1.10.1", commit="0b8ae1dfb56e4203dd8e14781850370df46a5e2c") - version("1.8.1", commit="3c9aa23d117bf489b6341708dc80c943bd1af11a") - version("1.6.0", commit="95f2f8d3648143abe9dc77c76340c5edf4114c82") - version("1.4.8", commit="79ab96d123c8da8f8ead81f678fe714c0958ff45") + with default_args(get_full_repo=True): + version("1.28.0", commit="8c839417c4a37c35330bd6f02b79dda9f48e76ae") + version("1.26.0", commit="38b7bd603f7281245605048d8d57237e00b74d79") + version("1.24.2", commit="fb213ba36631b04dfe754705f701f3a015c4fc82") + version("1.24.1", commit="d002fe70c84baaadb62058ce467d6c1ea032d8f5") + version("1.22.1", commit="b3f091fbc159609e8e0792d2bf9fbef52c6ceede") + version("1.18.0", commit="d5bd55d170cb384fdebdf60751e1e28483782caa") + version("1.12.3", commit="21c6077f3f789748a18f2e579110576c5522e975") + version("1.10.1", commit="0b8ae1dfb56e4203dd8e14781850370df46a5e2c") + version("1.8.1", commit="3c9aa23d117bf489b6341708dc80c943bd1af11a") + version("1.6.0", commit="95f2f8d3648143abe9dc77c76340c5edf4114c82") + version("1.4.8", commit="79ab96d123c8da8f8ead81f678fe714c0958ff45") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_hdf5r/package.py b/repos/spack_repo/builtin/packages/r_hdf5r/package.py index 1eb2b7da0b3..99ee9c939d4 100644 --- a/repos/spack_repo/builtin/packages/r_hdf5r/package.py +++ b/repos/spack_repo/builtin/packages/r_hdf5r/package.py @@ -28,6 +28,8 @@ class RHdf5r(RPackage): version("1.3.3", sha256="a0f83cbf21563e81dbd1a1bd8379623ed0c9c4df4e094c75013abfd7a5271545") version("1.2.0", sha256="58813e334fd3f9040038345a7186e5cb02090898883ac192477a76a5b8b4fe81") + depends_on("c", type="build") # generated + depends_on("r@3.2.2:", type=("build", "run")) depends_on("r-r6", type=("build", "run")) depends_on("r-bit64", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_highr/package.py b/repos/spack_repo/builtin/packages/r_highr/package.py index af8d9dde3c1..774a2db7730 100644 --- a/repos/spack_repo/builtin/packages/r_highr/package.py +++ b/repos/spack_repo/builtin/packages/r_highr/package.py @@ -18,6 +18,7 @@ class RHighr(RPackage): license("GPL-2.0-or-later") + version("0.12", sha256="e8e1d6460022a9948799602d6b95dc78fbfa318ff6f0627e95c20b7190fc612b") version("0.11", sha256="e90d14284001963325a84a9dbeef029609d52515da8d65c87ae61be21b7fe0a7") version("0.10", sha256="ec55bc1ff66390ed66806dc2a7b6c17dbfd089b3d73fe2e369017f8cb4bc347b") version("0.9", sha256="beff11390d936c90fdcc00e7ed0eb72220f3de403a51b56659e3d3e0b6d8ed4d") @@ -25,7 +26,9 @@ class RHighr(RPackage): version("0.7", sha256="cabba5b6f2ea82024a49c5ced5f1aa476f864bc52bc129038e319e4e26b6f3b7") version("0.6", sha256="43e152b2dea596df6e14c44398c74fcd438ece15eaae5bdb84aef8d61b213b59") - depends_on("r@3.0.2:", type=("build", "run")) - depends_on("r@3.2.3:", type=("build", "run"), when="@0.8:") - depends_on("r@3.3.0:", type=("build", "run"), when="@0.10:") - depends_on("r-xfun@0.18:", type=("build", "run"), when="@0.9:") + with default_args(type=("build", "run")): + depends_on("r@3.3.0:", when="@0.10:") + depends_on("r@3.2.3:", when="@0.8:") + depends_on("r@3.0.2:") + + depends_on("r-xfun@0.18:", when="@0.9:") diff --git a/repos/spack_repo/builtin/packages/r_hmisc/package.py b/repos/spack_repo/builtin/packages/r_hmisc/package.py index 79dc2f9af62..59089e25782 100644 --- a/repos/spack_repo/builtin/packages/r_hmisc/package.py +++ b/repos/spack_repo/builtin/packages/r_hmisc/package.py @@ -28,6 +28,9 @@ class RHmisc(RPackage): version("4.2-0", sha256="9e9614673288dd00295f250fa0bf96fc9e9fed692c69bf97691081c1a01411d9") version("4.1-1", sha256="991db21cdf73ffbf5b0239a4876b2e76fd243ea33528afd88dc968792f281498") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@4.1.0:", type=("build", "run"), when="@5.1-2:") depends_on("r-formula", type=("build", "run")) depends_on("r-ggplot2@2.2:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_hms/package.py b/repos/spack_repo/builtin/packages/r_hms/package.py index c50134e4982..cf8299c16c6 100644 --- a/repos/spack_repo/builtin/packages/r_hms/package.py +++ b/repos/spack_repo/builtin/packages/r_hms/package.py @@ -17,6 +17,7 @@ class RHms(RPackage): license("MIT") + version("1.1.4", sha256="efc525f797b62b3740d06c6fa8202593ab5aa4fc1edeefb76b6eb9be89e87b94") version("1.1.3", sha256="e626f4c60af46efd53ea631b316a103e089470d8fd63c0e0c0efb99364990282") version("1.1.2", sha256="1ee6a9847336aaf58d3fcee5b56c290c2204e1213b6628862818419b2302bded") version("1.1.1", sha256="6b5f30db1845c70d27b5de33f31caa487cdd0787cd80a4073375e5f482269062") @@ -24,13 +25,17 @@ class RHms(RPackage): version("0.5.0", sha256="a87872665c3bf3901f597d78c152e7805f7129e4dbe27397051de4cf1a76561b") version("0.3", sha256="9368259cbc1094ce0e4cf61544875ec30088ef690d6667e6b0b564218ab3ff88") - depends_on("r-lifecycle", type=("build", "run"), when="@1.0.0:") - depends_on("r-pkgconfig", type=("build", "run"), when="@0.5.0:") - depends_on("r-rlang", type=("build", "run"), when="@0.5.0:") - depends_on("r-rlang@1.0.2:", type=("build", "run"), when="@1.1.3:") - depends_on("r-vctrs@0.2.0:", type=("build", "run"), when="@0.5.0:") - depends_on("r-vctrs@0.2.1:", type=("build", "run"), when="@1.0.0:") - depends_on("r-vctrs@0.3.8:", type=("build", "run"), when="@1.1:") - depends_on("r-ellipsis", type=("build", "run"), when="@1.0.0:1.1.2") - depends_on("r-ellipsis@0.3.2", type=("build", "run"), when="@1.1:1.1.2") - depends_on("r-ellipsis@0.3.2:", type=("build", "run"), when="@1.1.2:1.1.2") + with default_args(type=("build", "run")): + depends_on("r-cli", when="@1.1.4:") + depends_on("r-lifecycle", when="@1.0.0:") + depends_on("r-pkgconfig", when="@0.5.0:") + depends_on("r-rlang@1.0.2:", when="@1.1.3:") + depends_on("r-rlang", when="@0.5.0:") + depends_on("r-vctrs@0.3.8:", when="@1.1:") + depends_on("r-vctrs@0.2.1:", when="@1.0.0:") + depends_on("r-vctrs@0.2.0:", when="@0.5.0:") + + # Historical dependencies + depends_on("r-ellipsis@0.3.2:", when="@1.1.2") + depends_on("r-ellipsis@0.3.2", when="@1.1:1.1.2") + depends_on("r-ellipsis", when="@1.0.0:1.1.2") diff --git a/repos/spack_repo/builtin/packages/r_htmltools/package.py b/repos/spack_repo/builtin/packages/r_htmltools/package.py index 4b7e6bc3e44..244b61010d6 100644 --- a/repos/spack_repo/builtin/packages/r_htmltools/package.py +++ b/repos/spack_repo/builtin/packages/r_htmltools/package.py @@ -16,6 +16,7 @@ class RHtmltools(RPackage): license("GPL-2.0-or-later") + version("0.5.9", sha256="19308618da485818f69dcfeeadd2ddc81d43a736a74519df7b3fd98e13128afd") version("0.5.8.1", sha256="f9f62293ec06c353c4584db6ccedb06a2da12e485208bd26b856f17dd013f176") version("0.5.5", sha256="c8b23fab855a89c6ed0f6d6c7cad0ff9c5ae329c0bdb479940443ee752f26659") version("0.5.3", sha256="2c451b369ea8918358e2b280f548816664fe0143222c609e6bfb1f9cd2f7324f") @@ -28,13 +29,16 @@ class RHtmltools(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@2.14.1:", type=("build", "run")) - depends_on("r-digest", type=("build", "run")) - depends_on("r-base64enc", type=("build", "run"), when="@0.5.1:") - depends_on("r-rlang", type=("build", "run"), when="@0.5.1:") - depends_on("r-rlang@0.4.10:", type=("build", "run"), when="@0.5.2:") - depends_on("r-rlang@1.0.0:", type=("build", "run"), when="@0.5.7:") - depends_on("r-fastmap@1.1.0:", type=("build", "run"), when="@0.5.2:") + with default_args(type=("build", "run")): + depends_on("r@2.14.1:") - depends_on("r-ellipsis", type=("build", "run"), when="@0.5.5:0.5.7") - depends_on("r-rcpp", type=("build", "run"), when="@:0.3.6") + depends_on("r-base64enc", when="@0.5.1:") + depends_on("r-digest") + depends_on("r-fastmap@1.1.0:", when="@0.5.2:") + depends_on("r-rlang@1.0.0:", when="@0.5.7:") + depends_on("r-rlang@0.4.10:", when="@0.5.2:") + depends_on("r-rlang", when="@0.5.1:") + + # Historical dependencies + depends_on("r-ellipsis", when="@0.5.5:0.5.7") + depends_on("r-rcpp", when="@:0.3.6") diff --git a/repos/spack_repo/builtin/packages/r_httpuv/package.py b/repos/spack_repo/builtin/packages/r_httpuv/package.py index fc392c20dff..eeb735bef38 100644 --- a/repos/spack_repo/builtin/packages/r_httpuv/package.py +++ b/repos/spack_repo/builtin/packages/r_httpuv/package.py @@ -31,6 +31,9 @@ class RHttpuv(RPackage): version("1.3.5", sha256="4336b993afccca2a194aca577b1975b89a35ac863423b18a11cdbb3f8470e4e9") version("1.3.3", sha256="bb37452ddc4d9381bee84cdf524582859af6a988e291debb71c8a2e120d02b2a") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@2.15.1:", type=("build", "run")) depends_on("r-rcpp@0.11.0:", type=("build", "run")) depends_on("r-rcpp@1.0.7:", type=("build", "run"), when="@1.6.5:") diff --git a/repos/spack_repo/builtin/packages/r_httr/package.py b/repos/spack_repo/builtin/packages/r_httr/package.py index 252825671c8..81e2a7187f6 100644 --- a/repos/spack_repo/builtin/packages/r_httr/package.py +++ b/repos/spack_repo/builtin/packages/r_httr/package.py @@ -18,6 +18,7 @@ class RHttr(RPackage): license("MIT") + version("1.4.8", sha256="62acf6759814f0a2923d18904971e16e01d6147419ceb816dac02113fc3e09f8") version("1.4.7", sha256="1555e6c2fb67bd38ff11b479f74aa287b2d93f4add487aec53b836ff07de3a3a") version("1.4.5", sha256="f93bac7f882b0df099abca47dd5aae3686fb3cd2d3e9926fcd639bcddff76f6c") version("1.4.4", sha256="41d82523f3ee260d409a7b5ae4136190cbc5aecbc270b40ed7064f83e7f5435d") @@ -29,13 +30,17 @@ class RHttr(RPackage): version("1.2.1", sha256="e7b90b90ee52c826e152efcfadf98e078fa75b65a6baaeb8fd25eeed2195730e") version("1.1.0", sha256="d7c0cdc11b2ded3132544580f52ebe5dad2a426cde1a5029f2cc693b2f195823") - depends_on("r@3.0.0:", type=("build", "run")) - depends_on("r@3.1:", type=("build", "run"), when="@1.4.0:") - depends_on("r@3.2:", type=("build", "run"), when="@1.4.1:") - depends_on("r@3.5:", type=("build", "run"), when="@1.4.5:") - depends_on("r-curl@3.0.0:", type=("build", "run")) - depends_on("r-curl@5.0.2:", type=("build", "run"), when="@1.4.7:") - depends_on("r-jsonlite", type=("build", "run")) - depends_on("r-mime", type=("build", "run")) - depends_on("r-openssl@0.8:", type=("build", "run")) - depends_on("r-r6", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("r@3.6:", when="@1.4.8:") + depends_on("r@3.5:", when="@1.4.5:") + depends_on("r@3.2:", when="@1.4.1:") + depends_on("r@3.1:", when="@1.4.0:") + depends_on("r@3.0.0:") + + depends_on("r-curl@5.1.0:", when="@1.4.8:") + depends_on("r-curl@5.0.2:", when="@1.4.7:") + depends_on("r-curl@3.0.0:") + depends_on("r-jsonlite") + depends_on("r-mime") + depends_on("r-openssl@0.8:") + depends_on("r-r6") diff --git a/repos/spack_repo/builtin/packages/r_httr2/package.py b/repos/spack_repo/builtin/packages/r_httr2/package.py index 312a2308cee..ef7ea703a34 100644 --- a/repos/spack_repo/builtin/packages/r_httr2/package.py +++ b/repos/spack_repo/builtin/packages/r_httr2/package.py @@ -19,21 +19,27 @@ class RHttr2(RPackage): license("MIT") + version("1.2.2", sha256="a5e7128fe26e083839d85c2969412c7fafaca6140b5601156c0c3472cc5c45e1") version("1.0.2", sha256="d1f8e37f74a59f4e1b3b886e5f453336ba14251e500acdccc8f4f7d2b9300048") version("0.2.2", sha256="5d1ab62541f7817112519f0f9d00d6a2555bab5b2da7f5c6d579b0c307d7f2bf") - depends_on("r@3.4:", type=("build", "run")) - depends_on("r@4.0:", type=("build", "run"), when="@1.0.2:") - depends_on("r-cli@3.0.0:", type=("build", "run")) - depends_on("r-curl", type=("build", "run")) - depends_on("r-curl@5.1.0:", type=("build", "run"), when="@1.0.0:") - depends_on("r-glue", type=("build", "run")) - depends_on("r-lifecycle", type=("build", "run"), when="@1.0.0:") - depends_on("r-magrittr", type=("build", "run")) - depends_on("r-openssl", type=("build", "run")) - depends_on("r-r6", type=("build", "run")) - depends_on("r-rappdirs", type=("build", "run")) - depends_on("r-rlang@1.0.0:", type=("build", "run")) - depends_on("r-rlang@1.1.0:", type=("build", "run"), when="@1.0.0:") - depends_on("r-vctrs@0.6.3:", type=("build", "run"), when="@1.0.0:") - depends_on("r-withr", type=("build", "run")) + depends_on("gmake", type="build") + + with default_args(type=("build", "run")): + depends_on("r@4.1:", when="@1.2:") + depends_on("r@4.0:", when="@1.0.2:") + depends_on("r@3.4:") + depends_on("r-cli@3.0.0:") + depends_on("r-curl@6.4.0:", when="@1.2:") + depends_on("r-curl@5.1.0:", when="@1.0.0:") + depends_on("r-curl") + depends_on("r-glue") + depends_on("r-lifecycle", when="@1.0.0:") + depends_on("r-magrittr") + depends_on("r-openssl") + depends_on("r-r6") + depends_on("r-rappdirs") + depends_on("r-rlang@1.1.0:", when="@1.0.0:") + depends_on("r-rlang@1.0.0:") + depends_on("r-vctrs@0.6.3:", when="@1.0.0:") + depends_on("r-withr") diff --git a/repos/spack_repo/builtin/packages/r_hypergeo/package.py b/repos/spack_repo/builtin/packages/r_hypergeo/package.py new file mode 100644 index 00000000000..29fd334fdbe --- /dev/null +++ b/repos/spack_repo/builtin/packages/r_hypergeo/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.r import RPackage + +from spack.package import * + + +class RHypergeo(RPackage): + """The Gauss Hypergeometric Function. + + The Gaussian hypergeometric function for complex numbers.""" + + cran = "hypergeo" + + license("GPL-2.0-only") + + version("1.2-14", sha256="bf379a5d5543ca20b7ac779555f504a3b98f421abadf782676c161426e6570e4") + + depends_on("r@3.1.0:", type=("build", "run")) + depends_on("r-elliptic@1.3-5:", type=("build", "run")) + depends_on("r-contfrac@1.1-9:", type=("build", "run")) + depends_on("r-desolve", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_hypergraph/package.py b/repos/spack_repo/builtin/packages/r_hypergraph/package.py index 7f5f6812424..149cfdaddec 100644 --- a/repos/spack_repo/builtin/packages/r_hypergraph/package.py +++ b/repos/spack_repo/builtin/packages/r_hypergraph/package.py @@ -15,16 +15,17 @@ class RHypergraph(RPackage): bioc = "hypergraph" - version("1.72.0", commit="1b619b8dfeaf13dca7857013495d52dcfe4276b4") - version("1.70.0", commit="a5ffeafa8b999b5e7e77f93f4e6284abafc81621") - version("1.68.0", commit="7d53b5050f4ebe0a7007c02b76e93498195da3a4") - version("1.66.0", commit="e9c47336df6409006622818f541f258103163a39") - version("1.62.0", commit="a286bbb70289e9f3cdf41407d52e5976bd6ed11e") - version("1.56.0", commit="f8b977fe068f15ecea49d30e77a871a35afcb97b") - version("1.54.0", commit="cf134b9221e9b5f6329a6786a366f57426c49e7c") - version("1.52.0", commit="3e28d8e8ab4c3facb79857b4e4cfffd65e064aca") - version("1.50.0", commit="fb3d523caf1d5791ef6962dd3c1a142742025ad5") - version("1.48.0", commit="a4c19ea0b5f15204f706a7bfdea5363706382820") + with default_args(get_full_repo=True): + version("1.72.0", commit="1b619b8dfeaf13dca7857013495d52dcfe4276b4") + version("1.70.0", commit="a5ffeafa8b999b5e7e77f93f4e6284abafc81621") + version("1.68.0", commit="7d53b5050f4ebe0a7007c02b76e93498195da3a4") + version("1.66.0", commit="e9c47336df6409006622818f541f258103163a39") + version("1.62.0", commit="a286bbb70289e9f3cdf41407d52e5976bd6ed11e") + version("1.56.0", commit="f8b977fe068f15ecea49d30e77a871a35afcb97b") + version("1.54.0", commit="cf134b9221e9b5f6329a6786a366f57426c49e7c") + version("1.52.0", commit="3e28d8e8ab4c3facb79857b4e4cfffd65e064aca") + version("1.50.0", commit="fb3d523caf1d5791ef6962dd3c1a142742025ad5") + version("1.48.0", commit="a4c19ea0b5f15204f706a7bfdea5363706382820") depends_on("r@2.1.0:", type=("build", "run")) depends_on("r-graph", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_igraph/package.py b/repos/spack_repo/builtin/packages/r_igraph/package.py index 02506d6d205..c9939ddd408 100644 --- a/repos/spack_repo/builtin/packages/r_igraph/package.py +++ b/repos/spack_repo/builtin/packages/r_igraph/package.py @@ -29,6 +29,10 @@ class RIgraph(RPackage): version("1.1.2", sha256="89b16b41bc77949ea208419e52a18b78b5d418c7fedc52cd47d06a51a6e746ec") version("1.0.1", sha256="dc64ed09b8b5f8d66ed4936cde3491974d6bc5178dd259b6eab7ef3936aa5602") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.0.2:", type=("build", "run"), when="@1.4.2:") depends_on("r@3.5.0:", type=("build", "run"), when="@1.5.0:") diff --git a/repos/spack_repo/builtin/packages/r_illumina450probevariants_db/package.py b/repos/spack_repo/builtin/packages/r_illumina450probevariants_db/package.py index 8cf65136c1f..52e19c1ff67 100644 --- a/repos/spack_repo/builtin/packages/r_illumina450probevariants_db/package.py +++ b/repos/spack_repo/builtin/packages/r_illumina450probevariants_db/package.py @@ -16,10 +16,11 @@ class RIllumina450probevariantsDb(RPackage): bioc = "Illumina450ProbeVariants.db" - version("1.36.0", commit="aaa4254cebb352730779677cef7a7c99c1447e7a") - version("1.34.0", commit="6c0f0b4d2bcf13da852b2f132a8ce1229fa5269e") - version("1.32.0", commit="a15602253e675a104303627957653a08876d8d7c") - version("1.30.0", commit="ba1296b4aafc287dea61f5f37c6c99fd553e52a2") - version("1.26.0", commit="fffe6033cc8d87354078c14de1e29976eaedd611") + with default_args(get_full_repo=True): + version("1.36.0", commit="aaa4254cebb352730779677cef7a7c99c1447e7a") + version("1.34.0", commit="6c0f0b4d2bcf13da852b2f132a8ce1229fa5269e") + version("1.32.0", commit="a15602253e675a104303627957653a08876d8d7c") + version("1.30.0", commit="ba1296b4aafc287dea61f5f37c6c99fd553e52a2") + version("1.26.0", commit="fffe6033cc8d87354078c14de1e29976eaedd611") depends_on("r@3.0.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_illuminaio/package.py b/repos/spack_repo/builtin/packages/r_illuminaio/package.py index 9217a740658..ab398019b8d 100644 --- a/repos/spack_repo/builtin/packages/r_illuminaio/package.py +++ b/repos/spack_repo/builtin/packages/r_illuminaio/package.py @@ -14,16 +14,17 @@ class RIlluminaio(RPackage): bioc = "illuminaio" - version("0.42.0", commit="d72b85c57ea9bcba8d652e3a66fddf5dcc59dda6") - version("0.40.0", commit="1d7045697eaf09e5c61447a6f61e2eeaaf7a5095") - version("0.38.0", commit="b16231b7417b4d6e9cff1e2724ed3529871dff92") - version("0.36.0", commit="c5b6e9164b73c650c0a9f055f4fd0580ac64fae7") - version("0.32.0", commit="e1322c781dd475a5e8ff6c0422bebb3deb47fa80") - version("0.26.0", commit="40c2f94df2ea64d745d25aadd2bfb33ac3e02f81") - version("0.24.0", commit="47953c77713c2da00a610f39308f86c5b44f6c59") - version("0.22.0", commit="dbd842340999569975ea593f47d70a729b3f68f2") - version("0.20.0", commit="d226628133b2396be9e7a6bf043f0309bd70c4ec") - version("0.18.0", commit="e6b8ab1f8eacb760aebdb4828e9cfbf07da06eda") + with default_args(get_full_repo=True): + version("0.42.0", commit="d72b85c57ea9bcba8d652e3a66fddf5dcc59dda6") + version("0.40.0", commit="1d7045697eaf09e5c61447a6f61e2eeaaf7a5095") + version("0.38.0", commit="b16231b7417b4d6e9cff1e2724ed3529871dff92") + version("0.36.0", commit="c5b6e9164b73c650c0a9f055f4fd0580ac64fae7") + version("0.32.0", commit="e1322c781dd475a5e8ff6c0422bebb3deb47fa80") + version("0.26.0", commit="40c2f94df2ea64d745d25aadd2bfb33ac3e02f81") + version("0.24.0", commit="47953c77713c2da00a610f39308f86c5b44f6c59") + version("0.22.0", commit="dbd842340999569975ea593f47d70a729b3f68f2") + version("0.20.0", commit="d226628133b2396be9e7a6bf043f0309bd70c4ec") + version("0.18.0", commit="e6b8ab1f8eacb760aebdb4828e9cfbf07da06eda") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_imager/package.py b/repos/spack_repo/builtin/packages/r_imager/package.py index c05e0c7d80d..9dd6259aa79 100644 --- a/repos/spack_repo/builtin/packages/r_imager/package.py +++ b/repos/spack_repo/builtin/packages/r_imager/package.py @@ -29,6 +29,8 @@ class RImager(RPackage): version("0.42.3", sha256="6fc308153df8251cef48f1e13978abd5d29ec85046fbe0b27c428801d05ebbf3") version("0.41.2", sha256="9be8bc8b3190d469fcb2883045a404d3b496a0380f887ee3caea11f0a07cd8a5") + depends_on("cxx", type="build") # generated + depends_on("r+X") depends_on("r@2.10.0:", type=("build", "run")) depends_on("r@4.0.0:", type=("build", "run"), when="@1.0.0:") diff --git a/repos/spack_repo/builtin/packages/r_impute/package.py b/repos/spack_repo/builtin/packages/r_impute/package.py index 98297caa239..0488cee2058 100644 --- a/repos/spack_repo/builtin/packages/r_impute/package.py +++ b/repos/spack_repo/builtin/packages/r_impute/package.py @@ -14,16 +14,17 @@ class RImpute(RPackage): bioc = "impute" - version("1.74.0", commit="6dc26573263e337d4b521f006701f022bbad21b9") - version("1.72.0", commit="638ac916464f5a392b947ef5bb426b8445d27325") - version("1.70.0", commit="970b2c28d908e26369b01dddf36dab2f8916d4af") - version("1.68.0", commit="fa4e4d883e609633c49d865a44acd6a79954eaac") - version("1.64.0", commit="31a5636f4dfbb1fd61386738786a0de048a620c2") - version("1.58.0", commit="dc17173df08d965a0d0aac9fa4ad519bd99d127e") - version("1.56.0", commit="6c037ed4dffabafceae684265f86f2a18751b559") - version("1.54.0", commit="efc61f5197e8c4baf4ae881fb556f0312beaabd8") - version("1.52.0", commit="7fa1b917a5dd60f2aaf52d9aae1fcd2c93511d63") - version("1.50.1", commit="31d1cc141797afdc83743e1d95aab8a90ee19b71") + with default_args(get_full_repo=True): + version("1.74.0", commit="6dc26573263e337d4b521f006701f022bbad21b9") + version("1.72.0", commit="638ac916464f5a392b947ef5bb426b8445d27325") + version("1.70.0", commit="970b2c28d908e26369b01dddf36dab2f8916d4af") + version("1.68.0", commit="fa4e4d883e609633c49d865a44acd6a79954eaac") + version("1.64.0", commit="31a5636f4dfbb1fd61386738786a0de048a620c2") + version("1.58.0", commit="dc17173df08d965a0d0aac9fa4ad519bd99d127e") + version("1.56.0", commit="6c037ed4dffabafceae684265f86f2a18751b559") + version("1.54.0", commit="efc61f5197e8c4baf4ae881fb556f0312beaabd8") + version("1.52.0", commit="7fa1b917a5dd60f2aaf52d9aae1fcd2c93511d63") + version("1.50.1", commit="31d1cc141797afdc83743e1d95aab8a90ee19b71") depends_on("fortran", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_influencer/package.py b/repos/spack_repo/builtin/packages/r_influencer/package.py index d27de79b7ea..cb3b031da73 100644 --- a/repos/spack_repo/builtin/packages/r_influencer/package.py +++ b/repos/spack_repo/builtin/packages/r_influencer/package.py @@ -25,6 +25,8 @@ class RInfluencer(RPackage): version("0.1.0.1", sha256="63c46f1175fced33fb1b78d4d56e37fbee09b408945b0106dac36e3344cd4766") version("0.1.0", sha256="4fc9324179bd8896875fc0e879a8a96b9ef2a6cf42a296c3b7b4d9098519e98a") + depends_on("c", type="build") # generated + depends_on("r@3.2.0:", type=("build", "run")) depends_on("r-igraph@1.0.1:", type=("build", "run")) depends_on("r-matrix@1.1-4:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_inline/package.py b/repos/spack_repo/builtin/packages/r_inline/package.py index 6a8bd38a900..febb53d2f0b 100644 --- a/repos/spack_repo/builtin/packages/r_inline/package.py +++ b/repos/spack_repo/builtin/packages/r_inline/package.py @@ -17,9 +17,11 @@ class RInline(RPackage): license("LGPL-2.0-or-later") + version("0.3.21", sha256="7ef9410a933a47f6a346bc8c0e55b62931379b464b92696aee9865ec6378bc98") version("0.3.19", sha256="0ee9309bb7dab0b97761ddd18381aa12bd7d54678ccd7bec00784e831f4c99d5") version("0.3.17", sha256="792857b2ebd408d6523424d2f6bb7297e241d4b28ab32372f6a9240c8cd554f3") version("0.3.15", sha256="ff043fe13c1991a3b285bed256ff4a9c0ba10bee764225a34b285875b7d69c68") version("0.3.14", sha256="fd34d6bf965148d26d983a022a0ff7bc1a5831f6ca066deee3f6139894dfc931") + # no minimal requirement on R anymore, but leave it in anyway depends_on("r@2.4.0:", when="@0.3.16:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_interactivedisplaybase/package.py b/repos/spack_repo/builtin/packages/r_interactivedisplaybase/package.py index 580eaea8ffd..ef65e6d72fe 100644 --- a/repos/spack_repo/builtin/packages/r_interactivedisplaybase/package.py +++ b/repos/spack_repo/builtin/packages/r_interactivedisplaybase/package.py @@ -17,16 +17,17 @@ class RInteractivedisplaybase(RPackage): bioc = "interactiveDisplayBase" - version("1.38.0", commit="3b3a3fdc4bafca767ae66c5f8869e2d93a9a4cb3") - version("1.36.0", commit="79a0552bd467367866ceda2efc2b60a04a81f5fb") - version("1.34.0", commit="fafbb13a42bb7549f17aa08cdb0e51728c5e825e") - version("1.32.0", commit="0f88b2ac3689d51abb6ac0045b3207ca77963a5a") - version("1.28.0", commit="a74c02c971c4f9c7086e14abd23f1a4190da4599") - version("1.22.0", commit="4ce3cde1dabc01375c153ad614d77a5e28b96916") - version("1.20.0", commit="f40912c8af7afbaaf68c003a6e148d81cbe84df6") - version("1.18.0", commit="d07ea72a595877f27bf054f664f23e8f0304def8") - version("1.16.0", commit="a86aa586b589497f5449d36c2ce67a6b6055026d") - version("1.14.0", commit="e2ccc7eefdd904e3b1032dc6b3f4a28d08c1cd40") + with default_args(get_full_repo=True): + version("1.38.0", commit="3b3a3fdc4bafca767ae66c5f8869e2d93a9a4cb3") + version("1.36.0", commit="79a0552bd467367866ceda2efc2b60a04a81f5fb") + version("1.34.0", commit="fafbb13a42bb7549f17aa08cdb0e51728c5e825e") + version("1.32.0", commit="0f88b2ac3689d51abb6ac0045b3207ca77963a5a") + version("1.28.0", commit="a74c02c971c4f9c7086e14abd23f1a4190da4599") + version("1.22.0", commit="4ce3cde1dabc01375c153ad614d77a5e28b96916") + version("1.20.0", commit="f40912c8af7afbaaf68c003a6e148d81cbe84df6") + version("1.18.0", commit="d07ea72a595877f27bf054f664f23e8f0304def8") + version("1.16.0", commit="a86aa586b589497f5449d36c2ce67a6b6055026d") + version("1.14.0", commit="e2ccc7eefdd904e3b1032dc6b3f4a28d08c1cd40") depends_on("r@2.10:", type=("build", "run")) depends_on("r-biocgenerics", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_interp/package.py b/repos/spack_repo/builtin/packages/r_interp/package.py index 1a2156d2585..93b3747a06f 100644 --- a/repos/spack_repo/builtin/packages/r_interp/package.py +++ b/repos/spack_repo/builtin/packages/r_interp/package.py @@ -37,6 +37,10 @@ class RInterp(RPackage): version("1.1-4", sha256="4f7b5d388132a4d76e8635e2a7c4fa0d705df2b49e7d108faa16ce2236e34d06") version("1.1-3", sha256="b74e606b38cfb02985c1f9e3e45093620f76c0307b1b0b4058761e871eb5fa3f") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-rcpp@0.12.9:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_intervals/package.py b/repos/spack_repo/builtin/packages/r_intervals/package.py index f2fbb8c3de3..f68d6f927ea 100644 --- a/repos/spack_repo/builtin/packages/r_intervals/package.py +++ b/repos/spack_repo/builtin/packages/r_intervals/package.py @@ -19,4 +19,7 @@ class RIntervals(RPackage): version("0.15.2", sha256="0bd23b0ce817ddd851238233d8a5420bf3a6d29e75fd361418cbc50118777c57") version("0.15.1", sha256="9a8b3854300f2055e1492c71932cc808b02feac8c4d3dbf6cba1c7dbd09f4ae4") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@2.9.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_iranges/package.py b/repos/spack_repo/builtin/packages/r_iranges/package.py index f47cebd457f..cd373b9a1dd 100644 --- a/repos/spack_repo/builtin/packages/r_iranges/package.py +++ b/repos/spack_repo/builtin/packages/r_iranges/package.py @@ -19,18 +19,19 @@ class RIranges(RPackage): bioc = "IRanges" - version("2.34.0", commit="dcddf934384e05dccffb2a8a808147c963ff0c3e") - version("2.32.0", commit="2b5c9fc706c8cdc96f0c46508087863df1502f81") - version("2.30.1", commit="ead506a14d6cc89ac2f14b55a4b04496755e4e50") - version("2.30.0", commit="9b5f3ca12812fb76c23b1550aa3a794384384d9b") - version("2.28.0", commit="d85ee908a379e12d1e32599e999c71ab37c25e57") - version("2.24.1", commit="6c61fddf4c5830f69a0f7f108888c67cd0a12b19") - version("2.22.2", commit="8c5e99131c419224f92921b9a13255b705a293ad") - version("2.18.3", commit="c98a7ba074e72f2e5ec98252dffe9d3392711972") - version("2.16.0", commit="26834c6868d7c279dd8ac1bb9daa16e6fef273c2") - version("2.14.12", commit="00af02756c14771a23df9efcf379409ab6eb3041") - version("2.12.0", commit="1b1748655a8529ba87ad0f223f035ef0c08e7fcd") - version("2.10.5", commit="b00d1d5025e3c480d17c13100f0da5a0132b1614") + with default_args(get_full_repo=True): + version("2.34.0", commit="dcddf934384e05dccffb2a8a808147c963ff0c3e") + version("2.32.0", commit="2b5c9fc706c8cdc96f0c46508087863df1502f81") + version("2.30.1", commit="ead506a14d6cc89ac2f14b55a4b04496755e4e50") + version("2.30.0", commit="9b5f3ca12812fb76c23b1550aa3a794384384d9b") + version("2.28.0", commit="d85ee908a379e12d1e32599e999c71ab37c25e57") + version("2.24.1", commit="6c61fddf4c5830f69a0f7f108888c67cd0a12b19") + version("2.22.2", commit="8c5e99131c419224f92921b9a13255b705a293ad") + version("2.18.3", commit="c98a7ba074e72f2e5ec98252dffe9d3392711972") + version("2.16.0", commit="26834c6868d7c279dd8ac1bb9daa16e6fef273c2") + version("2.14.12", commit="00af02756c14771a23df9efcf379409ab6eb3041") + version("2.12.0", commit="1b1748655a8529ba87ad0f223f035ef0c08e7fcd") + version("2.10.5", commit="b00d1d5025e3c480d17c13100f0da5a0132b1614") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_irkernel/package.py b/repos/spack_repo/builtin/packages/r_irkernel/package.py index 9c0919c7116..99be048131d 100644 --- a/repos/spack_repo/builtin/packages/r_irkernel/package.py +++ b/repos/spack_repo/builtin/packages/r_irkernel/package.py @@ -21,12 +21,6 @@ class RIrkernel(RPackage): version("1.3.1", sha256="3186e3a177c7246d45218af55f8b10836540e68a2d106858a0385f7d741b640c") version("1.3", sha256="5a7fcbfd978dfb3cca6702a68a21c147551995fc400084ae8382ffcbbdae1903") version("1.2", sha256="5fb4dbdb741d05043120a8be0eb73f054b607d9854f314bd79cfec08d219ff91") - version( - "0.7", - git="https://github.com/IRkernel/IRkernel.git", - commit="9cdd284e03eb42d03fab18544b81f486852d5fe0", - deprecated=True, - ) depends_on("r@3.2.0:", type=("build", "run")) depends_on("r-repr@0.4.99:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_iso/package.py b/repos/spack_repo/builtin/packages/r_iso/package.py index 473d08d2a9b..3b5acb2771d 100644 --- a/repos/spack_repo/builtin/packages/r_iso/package.py +++ b/repos/spack_repo/builtin/packages/r_iso/package.py @@ -20,4 +20,7 @@ class RIso(RPackage): version("0.0-18", sha256="2d7e8c4452653364ee086d95cea620c50378e30acfcff129b7261e1756a99504") version("0.0-17", sha256="c007d6eaf6335a15c1912b0804276ff39abce27b7a61539a91b8fda653629252") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@1.7.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_isoband/package.py b/repos/spack_repo/builtin/packages/r_isoband/package.py index cb41825c496..8407b947d12 100644 --- a/repos/spack_repo/builtin/packages/r_isoband/package.py +++ b/repos/spack_repo/builtin/packages/r_isoband/package.py @@ -18,6 +18,7 @@ class RIsoband(RPackage): license("MIT") + version("0.3.0", sha256="fe8d3d58ca75bbee32f389152ac0058818f3f76f09c9867949531de7abc424ac") version("0.2.7", sha256="7693223343b45b86de2b5b638ff148f0dafa6d7b1237e822c5272902f79cdf61") version("0.2.6", sha256="27e460945753f6710649563dc817e2f314392ef6d1f8b6af2b1bf9447fab43a3") version("0.2.5", sha256="46f53fa066f0966f02cb2bf050190c0d5e950dab2cdf565feb63fc092c886ba5") @@ -25,4 +26,13 @@ class RIsoband(RPackage): depends_on("cxx", type="build") # generated - depends_on("r-testthat", type=("build", "run"), when="@0.2.3") + with default_args(type=("build", "run")): + depends_on("r-cpp11", when="@0.3:") + + # additional dependencies to prevent + # ERROR: dependencies 'cli', 'rlang' are not available for package 'isoband' + depends_on("r-cli", when="@0.3:") + depends_on("r-rlang", when="@0.3:") + + # Historical dependencies + depends_on("r-testthat", when="@0.2.3") diff --git a/repos/spack_repo/builtin/packages/r_jade/package.py b/repos/spack_repo/builtin/packages/r_jade/package.py index ecd6ae8ab40..598567f284f 100644 --- a/repos/spack_repo/builtin/packages/r_jade/package.py +++ b/repos/spack_repo/builtin/packages/r_jade/package.py @@ -22,4 +22,7 @@ class RJade(RPackage): version("2.0-4", sha256="d4b3d65a33cae454d3ab13343bceabfb3f6b8004ac64ae7bd86dee92a1cd2055") version("2.0-3", sha256="56d68a993fa16fc6dec758c843960eee840814c4ca2271e97681a9d2b9e242ba") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r-clue", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_jaspar2018/package.py b/repos/spack_repo/builtin/packages/r_jaspar2018/package.py index b1ebb6d5479..e42ccd27e94 100644 --- a/repos/spack_repo/builtin/packages/r_jaspar2018/package.py +++ b/repos/spack_repo/builtin/packages/r_jaspar2018/package.py @@ -15,7 +15,8 @@ class RJaspar2018(RPackage): bioc = "JASPAR2018" - version("1.1.0", commit="cf8598d3c9054d85c43655cf82be17f74d800fa5") - version("1.0.0", commit="4c84092b3737bb1c57ab56f4321f2f5e4b0efeaa") + with default_args(get_full_repo=True): + version("1.1.0", commit="cf8598d3c9054d85c43655cf82be17f74d800fa5") + version("1.0.0", commit="4c84092b3737bb1c57ab56f4321f2f5e4b0efeaa") depends_on("r@3.4.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_jsonlite/package.py b/repos/spack_repo/builtin/packages/r_jsonlite/package.py index 31420d8c023..109ffa9c18d 100644 --- a/repos/spack_repo/builtin/packages/r_jsonlite/package.py +++ b/repos/spack_repo/builtin/packages/r_jsonlite/package.py @@ -25,6 +25,7 @@ class RJsonlite(RPackage): license("MIT") + version("2.0.0", sha256="75eb910c82b350ec33f094779da0f87bff154c232e4ae39c9896a9b89f3ac82d") version("1.8.8", sha256="7de21316984c3ba3d7423d12f43d1c30c716007c5e39bf07e11885e0ceb0caa4") version("1.8.7", sha256="7d42b7784b72d728698ea02b97818df51e2015ffa39fec2eaa2400771b0f601c") version("1.8.5", sha256="dc3cca4bdca1b6d6836c412760ea9656140683126c54cb89c3e42219dec4a3ad") diff --git a/repos/spack_repo/builtin/packages/r_kegg_db/package.py b/repos/spack_repo/builtin/packages/r_kegg_db/package.py deleted file mode 100644 index ec5292b9e2b..00000000000 --- a/repos/spack_repo/builtin/packages/r_kegg_db/package.py +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.r import RPackage - -from spack.package import * - - -class RKeggDb(RPackage): - """A set of annotation maps for KEGG. - - A set of annotation maps for KEGG assembled using data from KEGG.""" - - # NOTE: The KEGG.db package was removed in Bioconductor-3.13 - - bioc = "KEGG.db" - url = "https://www.bioconductor.org/packages/release/data/annotation/src/contrib/KEGG.db_3.2.3.tar.gz" - - version( - "3.2.4", - url="https://bioconductor.org/packages/3.12/data/annotation/src/contrib/KEGG.db_3.2.4.tar.gz", - sha256="2e60d1b664cbd1491cc00ed13a22904706c5a4651150f70daca04bf3ba9ead88", - deprecated=True, - ) - version( - "3.2.3", - url="https://bioconductor.org/packages/3.10/data/annotation/src/contrib/KEGG.db_3.2.3.tar.gz", - sha256="02ea4630a3ec06a8d9a6151627c96d3f71dfc7e8857800bb5c0cdb6a838d6963", - deprecated=True, - ) - - depends_on("r@2.7.0:", type=("build", "run")) - depends_on("r-annotationdbi@1.34.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_kegggraph/package.py b/repos/spack_repo/builtin/packages/r_kegggraph/package.py index 3ff73c9d388..9ba671036f4 100644 --- a/repos/spack_repo/builtin/packages/r_kegggraph/package.py +++ b/repos/spack_repo/builtin/packages/r_kegggraph/package.py @@ -19,16 +19,17 @@ class RKegggraph(RPackage): bioc = "KEGGgraph" - version("1.60.0", commit="9fc1e371309193e7ff47b0e9d9937cbeed830a1c") - version("1.58.0", commit="7c3f148b57903b8df517f94824f07f38bbd3b591") - version("1.56.0", commit="e95cbf9f8a095d59b78a053463191b89c00d5ded") - version("1.54.0", commit="135ee3dad30ca208e21acd0a2d81120b74b64079") - version("1.50.0", commit="3335e85cdba264c04e6e36378578cf6c83a30eb8") - version("1.44.0", commit="2c24e8ec53fe34c72ea65f34e3c09905ab2e5c62") - version("1.42.0", commit="7d907e22a3ad7b4829a7cbaba5a8f8dc8013a609") - version("1.40.0", commit="6351a1637276f71697b01a994ebda0d3d1cf6d7a") - version("1.38.0", commit="72f102e2611e3966362cfaa43646a6e66dd2ba27") - version("1.38.1", commit="dd31665beb36d5aad8ed09ed56c603633b6b2292") + with default_args(get_full_repo=True): + version("1.60.0", commit="9fc1e371309193e7ff47b0e9d9937cbeed830a1c") + version("1.58.0", commit="7c3f148b57903b8df517f94824f07f38bbd3b591") + version("1.56.0", commit="e95cbf9f8a095d59b78a053463191b89c00d5ded") + version("1.54.0", commit="135ee3dad30ca208e21acd0a2d81120b74b64079") + version("1.50.0", commit="3335e85cdba264c04e6e36378578cf6c83a30eb8") + version("1.44.0", commit="2c24e8ec53fe34c72ea65f34e3c09905ab2e5c62") + version("1.42.0", commit="7d907e22a3ad7b4829a7cbaba5a8f8dc8013a609") + version("1.40.0", commit="6351a1637276f71697b01a994ebda0d3d1cf6d7a") + version("1.38.0", commit="72f102e2611e3966362cfaa43646a6e66dd2ba27") + version("1.38.1", commit="dd31665beb36d5aad8ed09ed56c603633b6b2292") depends_on("r@2.10.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@1.54.0:") diff --git a/repos/spack_repo/builtin/packages/r_keggrest/package.py b/repos/spack_repo/builtin/packages/r_keggrest/package.py index eeda1dabc78..6b545b46240 100644 --- a/repos/spack_repo/builtin/packages/r_keggrest/package.py +++ b/repos/spack_repo/builtin/packages/r_keggrest/package.py @@ -16,17 +16,18 @@ class RKeggrest(RPackage): bioc = "KEGGREST" - version("1.40.0", commit="1bdb0b57d7e9b708da14d2847c2a17ca35500b21") - version("1.38.0", commit="4dfbff9f6662227bd49d64d18a342f469dd88ad3") - version("1.36.3", commit="1827cde76863aa80c83264a0dd95514654358df3") - version("1.36.0", commit="591818bbc9195bfd0657cf4f5c7c771ea7f86830") - version("1.34.0", commit="2056750dc202fa04a34b84c6c712e884c7cad2bd") - version("1.30.1", commit="fd9970ea9df117d625257b8c6351cf85098cfbc1") - version("1.24.1", commit="bbc3ef476e02147aad8e1f33178136cc797c1b3f") - version("1.22.0", commit="4374507376be811d29416d0cbbfd9115a50494d9") - version("1.20.2", commit="62b4519367841f3548536c117e7e2bfe3fa4bf72") - version("1.18.1", commit="580c126eabc3c52145967708f67a428ca46b23b2") - version("1.16.1", commit="ed48de0def57a909894e237fa4731c4a052d8849") + with default_args(get_full_repo=True): + version("1.40.0", commit="1bdb0b57d7e9b708da14d2847c2a17ca35500b21") + version("1.38.0", commit="4dfbff9f6662227bd49d64d18a342f469dd88ad3") + version("1.36.3", commit="1827cde76863aa80c83264a0dd95514654358df3") + version("1.36.0", commit="591818bbc9195bfd0657cf4f5c7c771ea7f86830") + version("1.34.0", commit="2056750dc202fa04a34b84c6c712e884c7cad2bd") + version("1.30.1", commit="fd9970ea9df117d625257b8c6351cf85098cfbc1") + version("1.24.1", commit="bbc3ef476e02147aad8e1f33178136cc797c1b3f") + version("1.22.0", commit="4374507376be811d29416d0cbbfd9115a50494d9") + version("1.20.2", commit="62b4519367841f3548536c117e7e2bfe3fa4bf72") + version("1.18.1", commit="580c126eabc3c52145967708f67a428ca46b23b2") + version("1.16.1", commit="ed48de0def57a909894e237fa4731c4a052d8849") depends_on("r@3.5.0:", when="@1.30.1:", type=("build", "run")) depends_on("r-httr", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_kernsmooth/package.py b/repos/spack_repo/builtin/packages/r_kernsmooth/package.py index 12b4655b4f6..f902407d48c 100644 --- a/repos/spack_repo/builtin/packages/r_kernsmooth/package.py +++ b/repos/spack_repo/builtin/packages/r_kernsmooth/package.py @@ -20,4 +20,7 @@ class RKernsmooth(RPackage): version("2.23-18", sha256="8334800c5ad2305539d2731b929ea34f50fa4269ba87277b699fd5be5b03c490") version("2.23-15", sha256="8b72d23ed121a54af188b2cda4441e3ce2646359309885f6455b82c0275210f6") + depends_on("c", type="build") + depends_on("fortran", type="build") + depends_on("r@2.5.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_knitr/package.py b/repos/spack_repo/builtin/packages/r_knitr/package.py index 7daf3c7d7b8..1995c805373 100644 --- a/repos/spack_repo/builtin/packages/r_knitr/package.py +++ b/repos/spack_repo/builtin/packages/r_knitr/package.py @@ -18,6 +18,7 @@ class RKnitr(RPackage): license("GPL-2.0-or-later") + version("1.51", sha256="bcfa3081677ff5c3881c7cef35f3305bbf6714b01320c81a523772663741ca11") version("1.48", sha256="501b5926da7da1e8df61958639537e4c30110a0a8de07381afd92b31b9bff197") version("1.42", sha256="9344f1a0089e4da101def54aee38d7cfe3b2022d75c560141d8cc22ac65130f3") version("1.40", sha256="9b8f95ff367a0e52f024bda30315ec7cdd6a5b82371a1aaed95ab4eea78535bc") @@ -31,31 +32,39 @@ class RKnitr(RPackage): version("1.17", sha256="9484a2b2c7b0c2aae24ab7f4eec6db48affbceb0e42bd3d69e34d953fe92f401") version("1.14", sha256="ba6d301482d020a911390d5eff181e1771f0e02ac3f3d9853a9724b1ec041aec") - depends_on("r@2.14.1:", type=("build", "run"), when="@:1.9") - depends_on("r@3.0.2:", type=("build", "run"), when="@1.10:1.14") - depends_on("r@3.1.0:", type=("build", "run"), when="@1.15:1.22") - depends_on("r@3.2.3:", type=("build", "run"), when="@1.23:") - depends_on("r@3.3.0:", type=("build", "run"), when="@1.39:") - - depends_on("r-evaluate@0.10:", type=("build", "run")) - depends_on("r-evaluate@0.15:", type=("build", "run"), when="@1.39:") - depends_on("r-highr", type=("build", "run")) - depends_on("r-highr@0.11:", type=("build", "run"), when="@1.47:") - depends_on("r-yaml@2.1.19:", type=("build", "run")) - depends_on("r-xfun", type=("build", "run"), when="@1.23:") - depends_on("r-xfun@0.15:", type=("build", "run"), when="@1.30") - depends_on("r-xfun@0.19:", type=("build", "run"), when="@1.31") - depends_on("r-xfun@0.21:", type=("build", "run"), when="@1.32:") - depends_on("r-xfun@0.27:", type=("build", "run"), when="@1.37:") - depends_on("r-xfun@0.29:", type=("build", "run"), when="@1.39:") - depends_on("r-xfun@0.34:", type=("build", "run"), when="@1.42:") - depends_on("r-xfun@0.39:", type=("build", "run"), when="@1.43:") - depends_on("r-xfun@0.43:", type=("build", "run"), when="@1.46:") - depends_on("r-xfun@0.44:", type=("build", "run"), when="@1.47:") - depends_on("pandoc", type="build") - depends_on("py-rst2pdf", type=("build", "run")) - - depends_on("r-digest", type=("build", "run"), when="@:1.17") - depends_on("r-formatr", type=("build", "run"), when="@:1.14") - depends_on("r-markdown", type=("build", "run"), when="@:1.33") - depends_on("r-stringr@0.6:", type=("build", "run"), when="@:1.40") + with default_args(type=("build", "run")): + depends_on("r@3.6.0:", when="@1.49:") + depends_on("r@3.3.0:", when="@1.39:") + depends_on("r@3.2.3:", when="@1.23:") + depends_on("r@3.1.0:", when="@1.15:1.22") + depends_on("r@3.0.2:", when="@1.10:1.14") + depends_on("r@2.14.1:", when="@:1.9") + + depends_on("r-evaluate@0.15:", when="@1.39:") + depends_on("r-evaluate@0.10:") + + depends_on("r-highr@0.11:", when="@1.47:") + depends_on("r-highr") + + depends_on("r-xfun@0.52:", when="@1.51:") + depends_on("r-xfun@0.44:", when="@1.47:") + depends_on("r-xfun@0.43:", when="@1.46:") + depends_on("r-xfun@0.39:", when="@1.43:") + depends_on("r-xfun@0.34:", when="@1.42:") + depends_on("r-xfun@0.29:", when="@1.39:") + depends_on("r-xfun@0.27:", when="@1.37:") + depends_on("r-xfun@0.21:", when="@1.32:") + depends_on("r-xfun@0.19:", when="@1.31") + depends_on("r-xfun@0.15:", when="@1.30") + depends_on("r-xfun", when="@1.23:") + + depends_on("r-yaml@2.1.19:") + + depends_on("py-rst2pdf") + depends_on("pandoc") + + # Historical dependencies + depends_on("r-digest", when="@:1.17") + depends_on("r-formatr", when="@:1.14") + depends_on("r-markdown", when="@:1.33") + depends_on("r-stringr@0.6:", when="@:1.40") diff --git a/repos/spack_repo/builtin/packages/r_ks/package.py b/repos/spack_repo/builtin/packages/r_ks/package.py index 9a0c73f210f..8bc3abb225e 100644 --- a/repos/spack_repo/builtin/packages/r_ks/package.py +++ b/repos/spack_repo/builtin/packages/r_ks/package.py @@ -28,6 +28,8 @@ class RKs(RPackage): version("1.11.4", sha256="0beffaf8694819fba8c93af07a8782674a15fe00a04ad1d94d31238d0a41b134") version("1.11.2", sha256="9dfd485096e1e67abc7dfcb7b76a83de110dd15bcfeffe5c899605b3a5592961") + depends_on("c", type="build") # generated + depends_on("r@2.10:", type=("build", "run")) depends_on("r@2.10.0:", type=("build", "run"), when="@1.14.0:") depends_on("r-fnn@1.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_ksamples/package.py b/repos/spack_repo/builtin/packages/r_ksamples/package.py index b34682daf00..9564612c76b 100644 --- a/repos/spack_repo/builtin/packages/r_ksamples/package.py +++ b/repos/spack_repo/builtin/packages/r_ksamples/package.py @@ -28,4 +28,6 @@ class RKsamples(RPackage): version("1.2-10", sha256="2d66cc0511fb1be3190c5a285dcd93d02419468ee1ff5ae6d0838f16df2b578d") version("1.2-9", sha256="ba3ec4af3dfcf7cf12f0b784ef67bfea565e16985647ead904629886cc1542ff") + depends_on("c", type="build") # generated + depends_on("r-suppdists", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_later/package.py b/repos/spack_repo/builtin/packages/r_later/package.py index fd84ad6d889..782c70262a0 100644 --- a/repos/spack_repo/builtin/packages/r_later/package.py +++ b/repos/spack_repo/builtin/packages/r_later/package.py @@ -22,6 +22,9 @@ class RLater(RPackage): version("1.1.0.1", sha256="71baa7beae774a35a117e01d7b95698511c3cdc5eea36e29732ff1fe8f1436cd") version("0.8.0", sha256="6b2a28b43c619b2c7890840c62145cd3a34a7ed65b31207fdedde52efb00e521") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r-rcpp@0.12.9:", type=("build", "run")) depends_on("r-rlang", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_lattice/package.py b/repos/spack_repo/builtin/packages/r_lattice/package.py index 1124dfa1b2e..6649d85bb8a 100644 --- a/repos/spack_repo/builtin/packages/r_lattice/package.py +++ b/repos/spack_repo/builtin/packages/r_lattice/package.py @@ -19,6 +19,7 @@ class RLattice(RPackage): license("GPL-2.0-or-later") + version("0.22-9", sha256="b72ad4ed2e5269fa7cf668e46f83a9b5d9d5f8fdcbc5b9886531ca19dffca4ba") version("0.22-6", sha256="4b377211e472ece7872b9d6759f9b9c660b09594500462eb6146312a1d4d00f7") version("0.21-8", sha256="8ad3d6974262e6cab6cc8fec38aa279b5b2f2524adf6f3eab56f68302b60c329") version("0.20-45", sha256="22388d92bdb7d3959da84d7308d9026dd8226ef07580783729e8ad2f7d7507ad") @@ -31,5 +32,6 @@ class RLattice(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@3.0.0:", type=("build", "run")) - depends_on("r@4.0.0:", type=("build", "run"), when="@0.21-8:") + with default_args(type=("build", "run")): + depends_on("r@4.0.0:", when="@0.21-8:") + depends_on("r@3.0.0:") diff --git a/repos/spack_repo/builtin/packages/r_ldheatmap/package.py b/repos/spack_repo/builtin/packages/r_ldheatmap/package.py index 452181dd85b..4c0a92884e7 100644 --- a/repos/spack_repo/builtin/packages/r_ldheatmap/package.py +++ b/repos/spack_repo/builtin/packages/r_ldheatmap/package.py @@ -25,6 +25,8 @@ class RLdheatmap(RPackage): version("1.0-4", sha256="07eb385f19e6a195e8e4d75be0b47c57744eabbf14045e527f0c27e1183ae5ca") version("0.99-7", sha256="aca54c839a424506d8be7153bf03b32026aeefe7ed38f534e8e19708e34212e4") + depends_on("cxx", type="build") # generated + depends_on("r@2.14.0:", type=("build", "run")) depends_on("r@4.0:", type=("build", "run"), when="@1.0-4:") depends_on("r-genetics", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_leaps/package.py b/repos/spack_repo/builtin/packages/r_leaps/package.py index 24d90c18a2a..3b184a9c147 100644 --- a/repos/spack_repo/builtin/packages/r_leaps/package.py +++ b/repos/spack_repo/builtin/packages/r_leaps/package.py @@ -19,3 +19,6 @@ class RLeaps(RPackage): version("3.2", sha256="a0d6bebb676e5cdc0ecf3e3a07163ce0d60b6fe72a083d91f0413e11a8a96fad") version("3.1", sha256="3d7c3a102ce68433ecf167ece96a7ebb4207729e4defd0ac8fc00e7003f5c3b6") version("3.0", sha256="55a879cdad5a4c9bc3b5697dd4d364b3a094a49d8facb6692f5ce6af82adf285") + + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_lfe/package.py b/repos/spack_repo/builtin/packages/r_lfe/package.py index d205862205d..1b9b03ea501 100644 --- a/repos/spack_repo/builtin/packages/r_lfe/package.py +++ b/repos/spack_repo/builtin/packages/r_lfe/package.py @@ -33,6 +33,8 @@ class RLfe(RPackage): version("2.8-5", sha256="fd80c573d334594db933ff38f67bd4c9f899aaf648c3bd68f19477a0059723c2") version("2.8-4", sha256="ee5f6e312214aa73e285ae84a6bdf49ba10e830f1a68ffded2fea2e532f2cd6a") + depends_on("c", type="build") # generated + depends_on("r@2.15.2:", type=("build", "run")) depends_on("r-matrix@1.1-2:", type=("build", "run")) depends_on("r-formula", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_lhs/package.py b/repos/spack_repo/builtin/packages/r_lhs/package.py index c4d632cb42d..11141b5d957 100644 --- a/repos/spack_repo/builtin/packages/r_lhs/package.py +++ b/repos/spack_repo/builtin/packages/r_lhs/package.py @@ -26,6 +26,9 @@ class RLhs(RPackage): version("1.0", sha256="38c53482b360bdea89ddcfadf6d45476c80b99aee8902f97c5e97975903e2745") version("0.16", sha256="9cd199c3b5b2be1736d585ef0fd39a00e31fc015a053333a7a319668d0809425") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.3.0:", type=("build", "run")) depends_on("r@3.4.0:", type=("build", "run"), when="@1.0:") depends_on("r-rcpp", type=("build", "run"), when="@1.0:") diff --git a/repos/spack_repo/builtin/packages/r_libcoin/package.py b/repos/spack_repo/builtin/packages/r_libcoin/package.py index 588d5b6f266..2c57c316792 100644 --- a/repos/spack_repo/builtin/packages/r_libcoin/package.py +++ b/repos/spack_repo/builtin/packages/r_libcoin/package.py @@ -24,5 +24,7 @@ class RLibcoin(RPackage): version("1.0-6", sha256="48afc1415fc89b29e4f2c8b6f6db3cffef1531580e5c806ad7cacf4afe6a4e5a") version("1.0-4", sha256="91dcbaa0ab8c2109aa54c3eda29ad0acd67c870efcda208e27acce9d641c09c5") + depends_on("c", type="build") # generated + depends_on("r@3.4.0:", type=("build", "run")) depends_on("r-mvtnorm", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_lifecycle/package.py b/repos/spack_repo/builtin/packages/r_lifecycle/package.py index 59254eecb61..40103f407fb 100644 --- a/repos/spack_repo/builtin/packages/r_lifecycle/package.py +++ b/repos/spack_repo/builtin/packages/r_lifecycle/package.py @@ -23,6 +23,7 @@ class RLifecycle(RPackage): license("MIT") + version("1.0.5", sha256="61841e3e6edba056a88355a3f1d6698ab8d5d9cb3c05f2af0ec5a44ab516f8ee") version("1.0.4", sha256="ada4d3c7e84b0c93105e888647c5754219a8334f6e1f82d5afaf83d4855b91cc") version("1.0.3", sha256="6459fdc3211585c0cdf120427579c12149b02161efe273a64b825c05e9aa69c2") version("1.0.1", sha256="1da76e1c00f1be96ca34e122ae611259430bf99d6a1b999fdef70c00c30f7ba0") diff --git a/repos/spack_repo/builtin/packages/r_limma/package.py b/repos/spack_repo/builtin/packages/r_limma/package.py index e7799888d37..35cf7715023 100644 --- a/repos/spack_repo/builtin/packages/r_limma/package.py +++ b/repos/spack_repo/builtin/packages/r_limma/package.py @@ -15,19 +15,24 @@ class RLimma(RPackage): bioc = "limma" - version("3.56.0", commit="efe857829233edb11ae317ce5d1ad4ea3073cf7f") - version("3.54.0", commit="1d1fa843d4fe2f8c94fd843bb1e80b8384d8306e") - version("3.52.4", commit="3226c29ad8c18aa7e6722f4a2c95ff8ac900437e") - version("3.52.1", commit="c81c539a217ac1cf46e850f8a20266cecfafed50") - version("3.50.0", commit="657b19bbc33c5c941af79aeb68967bf42ea40e23") - version("3.46.0", commit="ff03542231827f39ebde6464cdbba0110e24364e") - version("3.40.6", commit="3ae0767ecf7a764030e7b7d0b1d0f292c0b24055") - version("3.38.3", commit="77b292eb150cdedaa1db704bcfb01f0bb29e9849") - version("3.36.5", commit="3148d1cb7eea9c6bdd60351d51abcfd665332d44") - version("3.34.9", commit="6755278a929f942a49e2441fb002a3ed393e1139") - version("3.32.10", commit="593edf28e21fe054d64137ae271b8a52ab05bc60") + with default_args(get_full_repo=True): + version("3.64.3", commit="0f42428e09766efb49ab672419cdbe745872b22e") + version("3.56.0", commit="efe857829233edb11ae317ce5d1ad4ea3073cf7f") + version("3.54.0", commit="1d1fa843d4fe2f8c94fd843bb1e80b8384d8306e") + version("3.52.4", commit="3226c29ad8c18aa7e6722f4a2c95ff8ac900437e") + version("3.52.1", commit="c81c539a217ac1cf46e850f8a20266cecfafed50") + version("3.50.0", commit="657b19bbc33c5c941af79aeb68967bf42ea40e23") + version("3.46.0", commit="ff03542231827f39ebde6464cdbba0110e24364e") + version("3.40.6", commit="3ae0767ecf7a764030e7b7d0b1d0f292c0b24055") + version("3.38.3", commit="77b292eb150cdedaa1db704bcfb01f0bb29e9849") + version("3.36.5", commit="3148d1cb7eea9c6bdd60351d51abcfd665332d44") + version("3.34.9", commit="6755278a929f942a49e2441fb002a3ed393e1139") + version("3.32.10", commit="593edf28e21fe054d64137ae271b8a52ab05bc60") + + conflicts("r@4.5.0:", when="@:3.60.4") depends_on("c", type="build") # generated depends_on("r@2.3.0:", type=("build", "run")) depends_on("r@3.6.0:", type=("build", "run"), when="@3.40.6:") + depends_on("r-statmod", type=("build", "run"), when="@3.64.3:") diff --git a/repos/spack_repo/builtin/packages/r_limsolve/package.py b/repos/spack_repo/builtin/packages/r_limsolve/package.py index 82f39e11a9c..1b398ce28d6 100644 --- a/repos/spack_repo/builtin/packages/r_limsolve/package.py +++ b/repos/spack_repo/builtin/packages/r_limsolve/package.py @@ -22,6 +22,9 @@ class RLimsolve(RPackage): version("1.5.7.1", sha256="a5945217bbf512724297883f8d7c65846a11202266b2b6bb3355372935e85b92") version("1.5.6", sha256="b97ea9930383634c8112cdbc42f71c4e93fe0e7bfaa8f401921835cb44cb49a0") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@2.10:", type=("build", "run")) depends_on("r-quadprog", type=("build", "run")) depends_on("r-lpsolve", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_list/package.py b/repos/spack_repo/builtin/packages/r_list/package.py index 7a95e51be51..c94ec90cf54 100644 --- a/repos/spack_repo/builtin/packages/r_list/package.py +++ b/repos/spack_repo/builtin/packages/r_list/package.py @@ -18,6 +18,8 @@ class RList(RPackage): version("9.2.6", sha256="6a2b1dd9cdee87d739605fb38463cb6e04680c94b73f51fbd39b5552a62432e4") + depends_on("c", type="build") # generated + depends_on("r@3.2.0:", type=("build", "run")) depends_on("r-sandwich@2.3-3:", type=("build", "run")) depends_on("r-vgam@0.9-8:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_listenv/package.py b/repos/spack_repo/builtin/packages/r_listenv/package.py index f6922166579..974481397f6 100644 --- a/repos/spack_repo/builtin/packages/r_listenv/package.py +++ b/repos/spack_repo/builtin/packages/r_listenv/package.py @@ -18,6 +18,7 @@ class RListenv(RPackage): license("LGPL-2.1-or-later") + version("0.10.1", sha256="c09aa855883247f41b9ea57039626f036bc001f0e88046d00db5b993dc5509aa") version("0.9.1", sha256="422aaf487b91c6512b83c05536f8dac255db79b16ee85254acc59a3fda8c1c3b") version("0.9.0", sha256="352841e04f0725d361b78cfdc75e00511f740d97237dd651ea86aa5484674887") version("0.8.0", sha256="fd2aaf3ff2d8d546ce33d1cb38e68401613975117c1f9eb98a7b41facf5c485f") diff --git a/repos/spack_repo/builtin/packages/r_lme4/package.py b/repos/spack_repo/builtin/packages/r_lme4/package.py index 63a6357f3e2..bb7f1181817 100644 --- a/repos/spack_repo/builtin/packages/r_lme4/package.py +++ b/repos/spack_repo/builtin/packages/r_lme4/package.py @@ -19,6 +19,8 @@ class RLme4(RPackage): license("GPL-2.0-or-later") + version("2.0-1", sha256="a34b75c1ef05d7c023d9d86c9d644381a4098de5b3008f9256b89b3a380917a4") + version("1.1-37", sha256="cfdb756c445fdda069307945798dae1646557df2ed417ac06572eab47fbef00c") version("1.1-35.5", sha256="7d6664db7ea96429562efe1058da58985d779d6fe79ec6f4e86ba68047135170") version("1.1-33", sha256="d956a5ed7cbcc016114a836bad89acf6cdafcd0f82a7d85e3805ced936b40910") version("1.1-31", sha256="5affd1e33d3fece5ec0a6c7663eb12328e64147f8aa92675ce6453c4fe72edfd") @@ -31,20 +33,30 @@ class RLme4(RPackage): version("1.1-20", sha256="44f45f5cd20ec6a50bf96a939b1db44b1a180dbc871a5e3042baf7a107016b2c") version("1.1-12", sha256="2976b567a4a2144814ff9db987b0aa55c16122c78ecb51b9e09b87fe66a1c048") - depends_on("r@3.0.2:", type=("build", "run")) - depends_on("r@3.2.0:", type=("build", "run"), when="@1.1-16:") - depends_on("r@3.5.0:", type=("build", "run"), when="@1.1-31:") - depends_on("r@3.6.0:", type=("build", "run"), when="@1.1-35.5:") - depends_on("r-matrix@1.2-1:", type=("build", "run")) - depends_on("r-matrix@1.2-3:", type=("build", "run"), when="@1.1-35.5:") - depends_on("r-mass", type=("build", "run")) - depends_on("r-lattice", type=("build", "run")) - depends_on("r-boot", type=("build", "run"), when="@1.1-21:") - depends_on("r-nlme@3.1-123:", type=("build", "run")) - depends_on("r-minqa@1.1.15:", type=("build", "run")) - depends_on("r-nloptr@1.0.4:", type=("build", "run")) - depends_on("r-rcpp@0.10.5:", type=("build", "run")) - depends_on("r-rcppeigen", type=("build", "run")) - depends_on("r-rcppeigen@0.3.3.9.4:", type=("build", "run"), when="@1.1-35.1:") - - depends_on("r-statmod", type=("build", "run"), when="@1.1-26") + depends_on("cxx", type="build") + + with default_args(type=("build", "run")): + depends_on("r@3.6.0:", when="@1.1-35.5:") + depends_on("r@3.5.0:", when="@1.1-31:") + depends_on("r@3.2.0:", when="@1.1-16:") + depends_on("r@3.0.2:") + + depends_on("r-matrix@1.5-0:", when="@1.1-38:") + depends_on("r-matrix@1.2-3:", when="@1.1-35.5:") + depends_on("r-matrix@1.2-1:") + depends_on("r-mass") + depends_on("r-rdpack", when="@1.1-38:") + depends_on("r-boot", when="@1.1-21:") + depends_on("r-lattice") + depends_on("r-minqa@1.1.15:") + depends_on("r-nlme@3.1-123:") + depends_on("r-nloptr@1.0.4:") + depends_on("r-reformulas@0.4.3.1:", when="@2:") + depends_on("r-reformulas@0.3.0:", when="@1.1-36:") + depends_on("r-rlang", when="@1.1-38:") + depends_on("r-rcpp@0.10.5:") + depends_on("r-rcppeigen@0.3.3.9.4:", when="@1.1-35.1:") + depends_on("r-rcppeigen") + + # Historical dependencies + depends_on("r-statmod", when="@1.1-26") diff --git a/repos/spack_repo/builtin/packages/r_lmertest/package.py b/repos/spack_repo/builtin/packages/r_lmertest/package.py index ce49c51de15..e3abea7fbc5 100644 --- a/repos/spack_repo/builtin/packages/r_lmertest/package.py +++ b/repos/spack_repo/builtin/packages/r_lmertest/package.py @@ -19,10 +19,14 @@ class RLmertest(RPackage): cran = "lmerTest" + version("3.2-1", sha256="a0c5e6958940824fe09fc595383548e65ff08d3e363f4940e84a51084c025968") version("3.1-3", sha256="35aa75e9f5f2871398ff56a482b013e6828135ef04916ced7d1d7e35257ea8fd") - depends_on("r@3.2.5:", type=("build", "run")) - depends_on("r-lme4@1.1-10:", type=("build", "run")) - depends_on("r-numderiv", type=("build", "run")) - depends_on("r-mass", type=("build", "run")) - depends_on("r-ggplot2", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("r@3.2.5:") + + depends_on("r-lme4@1.1-10:") + depends_on("r-numderiv") + depends_on("r-mass") + depends_on("r-ggplot2") + depends_on("r-reformulas", when="@3.2:") diff --git a/repos/spack_repo/builtin/packages/r_locfit/package.py b/repos/spack_repo/builtin/packages/r_locfit/package.py index d423658a8f3..dff5e1bd6ac 100644 --- a/repos/spack_repo/builtin/packages/r_locfit/package.py +++ b/repos/spack_repo/builtin/packages/r_locfit/package.py @@ -24,6 +24,8 @@ class RLocfit(RPackage): version("1.5-9.4", sha256="d9d3665c5f3d49f698fb4675daf40a0550601e86db3dc00f296413ceb1099ced") version("1.5-9.1", sha256="f524148fdb29aac3a178618f88718d3d4ac91283014091aa11a01f1c70cd4e51") + depends_on("c", type="build") + depends_on("r@2.0.1:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@1.5-9.4:") depends_on("r@4.1.0:", type=("build", "run"), when="@1.5-9.5:") diff --git a/repos/spack_repo/builtin/packages/r_loo/package.py b/repos/spack_repo/builtin/packages/r_loo/package.py index 260666f23a5..084026c9c46 100644 --- a/repos/spack_repo/builtin/packages/r_loo/package.py +++ b/repos/spack_repo/builtin/packages/r_loo/package.py @@ -25,6 +25,7 @@ class RLoo(RPackage): license("GPL-3.0-or-later") + version("2.9.0", sha256="e7544188a1d91ac2676109197a53b48624b19a4bec127597fde67419a148c186") version("2.8.0", sha256="aab727a95a2e1c0e5005188e7daa6eba52455fa0c5869130d53cee5a8963244c") version("2.6.0", sha256="66da60fdf53a62cbc93797fa696a4cc43bce77f1721dd4bc1a58d25b3f981210") version("2.5.1", sha256="866a2f54a4e8726cc3062e27daa8a073e6ac4aeb6719af7845284f7a668745f1") @@ -32,10 +33,12 @@ class RLoo(RPackage): version("2.3.1", sha256="d98de21b71d9d9386131ae5ba4da051362c3ad39e0305af4f33d830f299ae08b") version("2.1.0", sha256="1bf4a1ef85d151577ff96d4cf2a29c9ef24370b0b1eb08c70dcf45884350e87d") - depends_on("r@3.1.2:", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("r@3.1.2:") + + depends_on("r+X") + depends_on("r-checkmate") + depends_on("r-matrixstats@0.52:") + depends_on("r-posterior@1.5.0:", when="@2.7.0:") - depends_on("r+X", type=("build", "run")) - depends_on("r-checkmate", type=("build", "run")) - depends_on("r-matrixstats@0.52:", type=("build", "run")) - depends_on("r-posterior@1.5.0:", type=("build", "run"), when="@2.7.0:") depends_on("pandoc@1.12.3:") diff --git a/repos/spack_repo/builtin/packages/r_lpsolve/package.py b/repos/spack_repo/builtin/packages/r_lpsolve/package.py index a0a57994f98..e4f2dd71ddf 100644 --- a/repos/spack_repo/builtin/packages/r_lpsolve/package.py +++ b/repos/spack_repo/builtin/packages/r_lpsolve/package.py @@ -26,3 +26,5 @@ class RLpsolve(RPackage): version("5.6.13.2", sha256="75f0c0af5cbdc219ac29c792342ecd625903632ad86e581c408879958aa88539") version("5.6.13.1", sha256="6ad8dc430f72a4698fc4a615bb5ecb73690b3c4520e84d9094af51a528f720b8") version("5.6.13", sha256="d5d41c53212dead4fd8e6425a9d3c5767cdc5feb19d768a4704116d791cf498d") + + depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_lpsolveapi/package.py b/repos/spack_repo/builtin/packages/r_lpsolveapi/package.py index e231ac42fe9..d6aa90649a6 100644 --- a/repos/spack_repo/builtin/packages/r_lpsolveapi/package.py +++ b/repos/spack_repo/builtin/packages/r_lpsolveapi/package.py @@ -29,3 +29,5 @@ class RLpsolveapi(RPackage): version( "5.5.2.0-17.7", sha256="9ebc8e45ad73eb51e0b25049598a5bc758370cf89508e2328cf4bd93d68d55bb" ) + + depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_lubridate/package.py b/repos/spack_repo/builtin/packages/r_lubridate/package.py index ca704cb0294..a734574d0f0 100644 --- a/repos/spack_repo/builtin/packages/r_lubridate/package.py +++ b/repos/spack_repo/builtin/packages/r_lubridate/package.py @@ -21,6 +21,7 @@ class RLubridate(RPackage): license("GPL-2.0-or-later") + version("1.9.5", sha256="0bc5d10e5a34285d4f9e9c572c058c386b9e1515d8faebc1496b2680138280a8") version("1.9.3", sha256="2b6e1406d231b0a14d60b99cc406d159fea5465a5694725ad25343f12cf37fff") version("1.9.2", sha256="8976431a4affe989261cbaa5e09cd44bb42a3b16eed59a42c1698da34c6544a7") version("1.9.0", sha256="b936041f8a71894ef930cfff61b45833e0dd148b5b16697f4f541d25b31a903a") @@ -33,12 +34,16 @@ class RLubridate(RPackage): depends_on("c", type="build") - depends_on("r@3.0.0:", type=("build", "run")) - depends_on("r@3.2:", type=("build", "run"), when="@1.7.9.2:") - depends_on("r-generics", type=("build", "run"), when="@1.7.9.2:") + with default_args(type=("build", "run")): + depends_on("r@3.2:", when="@1.7.9.2:") + depends_on("r@3.0.0:") - depends_on("r-rcpp@0.12.13:", type=("build", "run"), when="@:1.7") - depends_on("r-timechange@0.1.1:", type=("build", "run"), when="@1.9.0:") - depends_on("r-stringr", type=("build", "run"), when="@:1.7.4") - depends_on("r-cpp11", type=("build", "run"), when="@:1.8.0") - depends_on("r-cpp11@0.2.7:", type=("build", "run"), when="@1.8.0") + depends_on("r-generics", when="@1.7.9.2:") + depends_on("r-timechange@0.4.0:", when="@1.9.5:") + + # Historical dependencies + depends_on("r-rcpp@0.12.13:", when="@:1.7") + depends_on("r-timechange@0.1.1:", when="@1.9.0:") + depends_on("r-stringr", when="@:1.7.4") + depends_on("r-cpp11", when="@:1.8.0") + depends_on("r-cpp11@0.2.7:", when="@1.8.0") diff --git a/repos/spack_repo/builtin/packages/r_lumi/package.py b/repos/spack_repo/builtin/packages/r_lumi/package.py index 70ddfbd8e7f..0a65e310d93 100644 --- a/repos/spack_repo/builtin/packages/r_lumi/package.py +++ b/repos/spack_repo/builtin/packages/r_lumi/package.py @@ -20,12 +20,13 @@ class RLumi(RPackage): bioc = "lumi" - version("2.52.0", commit="c6aa992a622dbaba4dae1b54c61835a37cce8e95") - version("2.50.0", commit="8711b77a1b5b0a58770d25d3d079ad02208704f5") - version("2.48.0", commit="1f988ffe04d2c0707b2202d2074d02b679a3204b") - version("2.46.0", commit="a68932c17a61c99e58ebbd8008d078bec6adb4e7") - version("2.42.0", commit="a643b3ba46fee951b8566ddd8216af7e6c92f6f6") - version("2.38.0", commit="321d480d44ce9a0c02ce5af1bddc1f549abdea59") + with default_args(get_full_repo=True): + version("2.52.0", commit="c6aa992a622dbaba4dae1b54c61835a37cce8e95") + version("2.50.0", commit="8711b77a1b5b0a58770d25d3d079ad02208704f5") + version("2.48.0", commit="1f988ffe04d2c0707b2202d2074d02b679a3204b") + version("2.46.0", commit="a68932c17a61c99e58ebbd8008d078bec6adb4e7") + version("2.42.0", commit="a643b3ba46fee951b8566ddd8216af7e6c92f6f6") + version("2.38.0", commit="321d480d44ce9a0c02ce5af1bddc1f549abdea59") depends_on("r@2.10:", type=("build", "run")) depends_on("r-biobase@2.5.5:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_lwgeom/package.py b/repos/spack_repo/builtin/packages/r_lwgeom/package.py index 44fbf369936..e81a7d3e05a 100644 --- a/repos/spack_repo/builtin/packages/r_lwgeom/package.py +++ b/repos/spack_repo/builtin/packages/r_lwgeom/package.py @@ -24,6 +24,9 @@ class RLwgeom(RPackage): version("0.2-8", sha256="f48a92de222da0590b37a30d5cbf2364555044a842795f6b488afecc650b8b34") version("0.2-5", sha256="4a1d93f96c10c2aac173d8186cf7d7bef7febcb3cf066a7f45da32251496d02f") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.3.0:", type=("build", "run")) depends_on("r-rcpp", type=("build", "run")) depends_on("r-units", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_magick/package.py b/repos/spack_repo/builtin/packages/r_magick/package.py index 928e4a1face..8efd63ad31b 100644 --- a/repos/spack_repo/builtin/packages/r_magick/package.py +++ b/repos/spack_repo/builtin/packages/r_magick/package.py @@ -31,6 +31,8 @@ class RMagick(RPackage): version("2.6.0", sha256="66585336e3ff18793ae9e2726af67a6672622f270468670ab5fe5e013bc48ecc") version("2.1", sha256="ef4fb8fc1c5a9cfcc36b22485a0e17d622f61e55803b1e7423fd15f0550de7df") + depends_on("cxx", type="build") # generated + depends_on("r+X", type=("build", "run")) depends_on("r-rcpp@0.12.12:", type=("build", "run")) depends_on("r-magrittr", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_magrittr/package.py b/repos/spack_repo/builtin/packages/r_magrittr/package.py index 96236a07800..be1357f9df5 100644 --- a/repos/spack_repo/builtin/packages/r_magrittr/package.py +++ b/repos/spack_repo/builtin/packages/r_magrittr/package.py @@ -20,6 +20,7 @@ class RMagrittr(RPackage): license("MIT") + version("2.0.5", sha256="3f5b5b1d4e6d12807a95c50b6c88cb1d8af2c5eb5213f08bfe58f278eca2ed23") version("2.0.3", sha256="a2bff83f792a1acb801bfe6330bb62724c74d5308832f2cb6a6178336ace55d2") version("2.0.2", sha256="7be6fd0d0da75b92d8bad0136076da96260ee84bf639ef632a24668acdc163a6") version("2.0.1", sha256="75c265d51cc2b34beb27040edb09823c7b954d3990a7a931e40690b75d4aad5f") diff --git a/repos/spack_repo/builtin/packages/r_makecdfenv/package.py b/repos/spack_repo/builtin/packages/r_makecdfenv/package.py index cfb5cd6979a..fce914815dd 100644 --- a/repos/spack_repo/builtin/packages/r_makecdfenv/package.py +++ b/repos/spack_repo/builtin/packages/r_makecdfenv/package.py @@ -17,16 +17,17 @@ class RMakecdfenv(RPackage): bioc = "makecdfenv" - version("1.76.0", commit="8196d4886db1d8e51821bfe9f727a30666d53801") - version("1.74.0", commit="412affc333ba51cad0ff3c7919e2eadaaf426359") - version("1.72.0", commit="85c89688e6b6e8bff46b92cbeba49e38c510492e") - version("1.70.0", commit="82ecd0fa8ac401e4ac8f1e9139556d2be4a3c4f3") - version("1.66.0", commit="02aa975d543089f5495cb3b4e8edbcf0ff05148a") - version("1.60.0", commit="900ece3ecd7a0ade9f8a0374e5a03def4e079cb3") - version("1.58.0", commit="6f513e39c4920a6da10d22718fc3bf278fe5ffe2") - version("1.56.0", commit="f6b48e9a9f18598653d05bc0bdffeae7fefbb327") - version("1.54.0", commit="3ff646ddc4b028e46b1e091ff9c2d17ce77cec26") - version("1.52.0", commit="b88a3e93e3b7feeeca69eda7c1fc5a0826c81120") + with default_args(get_full_repo=True): + version("1.76.0", commit="8196d4886db1d8e51821bfe9f727a30666d53801") + version("1.74.0", commit="412affc333ba51cad0ff3c7919e2eadaaf426359") + version("1.72.0", commit="85c89688e6b6e8bff46b92cbeba49e38c510492e") + version("1.70.0", commit="82ecd0fa8ac401e4ac8f1e9139556d2be4a3c4f3") + version("1.66.0", commit="02aa975d543089f5495cb3b4e8edbcf0ff05148a") + version("1.60.0", commit="900ece3ecd7a0ade9f8a0374e5a03def4e079cb3") + version("1.58.0", commit="6f513e39c4920a6da10d22718fc3bf278fe5ffe2") + version("1.56.0", commit="f6b48e9a9f18598653d05bc0bdffeae7fefbb327") + version("1.54.0", commit="3ff646ddc4b028e46b1e091ff9c2d17ce77cec26") + version("1.52.0", commit="b88a3e93e3b7feeeca69eda7c1fc5a0826c81120") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_maldiquant/package.py b/repos/spack_repo/builtin/packages/r_maldiquant/package.py index 92009afe241..e5ad05fdfbc 100644 --- a/repos/spack_repo/builtin/packages/r_maldiquant/package.py +++ b/repos/spack_repo/builtin/packages/r_maldiquant/package.py @@ -28,5 +28,7 @@ class RMaldiquant(RPackage): version("1.19.2", sha256="8c6efc4ae4f1af4770b079db29743049f2fd597bcdefeaeb16f623be43ddeb87") version("1.16.4", sha256="9b910dbd5dd1a739a17a7ee3f83d7e1ebad2fee89fd01a5b274415d2b6d3b0de") + depends_on("c", type="build") # generated + depends_on("r@3.2.0:", type=("build", "run")) depends_on("r@4.0.0:", type=("build", "run"), when="@1.21:") diff --git a/repos/spack_repo/builtin/packages/r_maps/package.py b/repos/spack_repo/builtin/packages/r_maps/package.py index de0b2e88a99..1715946a828 100644 --- a/repos/spack_repo/builtin/packages/r_maps/package.py +++ b/repos/spack_repo/builtin/packages/r_maps/package.py @@ -24,5 +24,7 @@ class RMaps(RPackage): version("3.2.0", sha256="437abeb4fa4ad4a36af6165d319634b89bfc6bf2b1827ca86c478d56d670e714") version("3.1.1", sha256="972260e5ce9519ecc09b18e5d7a28e01bed313fadbccd7b06c571af349cb4d2a") + depends_on("c", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@3.4.0:") diff --git a/repos/spack_repo/builtin/packages/r_maptools/package.py b/repos/spack_repo/builtin/packages/r_maptools/package.py index 3900bdbf5c7..3d8300cbe27 100644 --- a/repos/spack_repo/builtin/packages/r_maptools/package.py +++ b/repos/spack_repo/builtin/packages/r_maptools/package.py @@ -19,46 +19,8 @@ class RMaptools(RPackage): cran = "maptools" version("1.1-8", sha256="5e8579e3f559161935f1dde622ece703eefa2a28a677ce553d7f27611e66e0f7") - version( - "1.1-6", - sha256="d6a5df52db03b2231f21921b693c67f85df3c3b376181aa13ef4f21710f69308", - deprecated=True, - ) - version( - "1.1-5", - sha256="3cd9bd95d3a1cb4aae3a350e0582319dacc25f070af6995061b85e68042f25dc", - deprecated=True, - ) - version( - "1.1-4", - sha256="f3ee25f9787d97c8373dac3651c6a198c932948eb3a6006b8618c91c6344fdc9", - deprecated=True, - ) - version( - "1.1-2", - sha256="3995c96e8472cd6717fe3cbd3506358ff460b6c2cf92dbe4b00f75f507514439", - deprecated=True, - ) - version( - "1.0-2", - sha256="daac6da5817cf0cff17b9e7d4a7cdc7c329574249bd9b1bafdb6c9431e1fee49", - deprecated=True, - ) - version( - "0.9-5", - sha256="5d9511f09fb49d57a51f28495b02239800596a4fcfad7b03ee1074d793657bdd", - deprecated=True, - ) - version( - "0.9-4", - sha256="930875f598a516f0f9049fa2fae7391bc9bdf7e3e5db696059ab4ec2fc9ba39c", - deprecated=True, - ) - version( - "0.8-39", - sha256="4b81e313e45dbb75e0fbb180b02985d1c34aaa5669e483283b632788e6a67dd2", - deprecated=True, - ) + + depends_on("c", type="build") # generated depends_on("r@2.10:", type=("build", "run")) depends_on("r-sp@1.0-11:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_marray/package.py b/repos/spack_repo/builtin/packages/r_marray/package.py index e7d2cffd81c..1eaa19a4d13 100644 --- a/repos/spack_repo/builtin/packages/r_marray/package.py +++ b/repos/spack_repo/builtin/packages/r_marray/package.py @@ -17,11 +17,12 @@ class RMarray(RPackage): license("GPL-2.0-or-later") - version("1.78.0", commit="97d74b2af40568eda445378b4708a2e2d33291cd") - version("1.76.0", commit="88cb0fd21cc60ac65410ca4314eca2e351933ec5") - version("1.74.0", commit="9130a936fffb7d2d445ff21d04520e78b62625ac") - version("1.72.0", commit="da35e8b8d2c9ef17e779013a5d252f38a1c66633") - version("1.68.0", commit="67b3080486abdba7dd19fccd7fb731b0e8b5b3f9") + with default_args(get_full_repo=True): + version("1.78.0", commit="97d74b2af40568eda445378b4708a2e2d33291cd") + version("1.76.0", commit="88cb0fd21cc60ac65410ca4314eca2e351933ec5") + version("1.74.0", commit="9130a936fffb7d2d445ff21d04520e78b62625ac") + version("1.72.0", commit="da35e8b8d2c9ef17e779013a5d252f38a1c66633") + version("1.68.0", commit="67b3080486abdba7dd19fccd7fb731b0e8b5b3f9") depends_on("r@2.10.0:", type=("build", "run")) depends_on("r-limma", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_mass/package.py b/repos/spack_repo/builtin/packages/r_mass/package.py index 14849458e61..1cfa25585a4 100644 --- a/repos/spack_repo/builtin/packages/r_mass/package.py +++ b/repos/spack_repo/builtin/packages/r_mass/package.py @@ -15,6 +15,9 @@ class RMass(RPackage): cran = "MASS" + license("GPL-2.0-only OR GPL-3.0-only") + + version("7.3-65", sha256="b07ef1e3c364ce56269b4a8a7759cc9f87c876554f91293437bb578cfe38172f") version("7.3-61", sha256="3144c8bf579dd7b7c47c259728c27f53f53e294e7ed307da434dfd144e800a90") version("7.3-59", sha256="454200bec7a52835fbb7f9fe8e01a7aaa728b3ab87b068fc6d900e01c930da5a") version("7.3-58.1", sha256="f704e4e2fb131740d023ae1755c925c2e684886a3061b08e26397135f1231420") @@ -30,7 +33,8 @@ class RMass(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@3.1.0:", type=("build", "run")) - depends_on("r@3.3.0:", type=("build", "run"), when="@7.3-55:") - depends_on("r@4.2.0:", type=("build", "run"), when="@7.3-59:") - depends_on("r@4.4.0:", type=("build", "run"), when="@7.3-60.1:") + with default_args(type=("build", "run")): + depends_on("r@4.4.0:", when="@7.3-60.1:") + depends_on("r@4.2.0:", when="@7.3-59:") + depends_on("r@3.3.0:", when="@7.3-55:") + depends_on("r@3.1.0:") diff --git a/repos/spack_repo/builtin/packages/r_matrix/package.py b/repos/spack_repo/builtin/packages/r_matrix/package.py index 7741a679f88..e8a389e7789 100644 --- a/repos/spack_repo/builtin/packages/r_matrix/package.py +++ b/repos/spack_repo/builtin/packages/r_matrix/package.py @@ -19,6 +19,7 @@ class RMatrix(RPackage): license("GPL-3.0-only") + version("1.7-5", sha256="308b0edd7bcb023a8bb50cc5cec98e66b3658c94a5badfb1ce6024e595fa8a83") version("1.7-0", sha256="fb97bba0df370222eb4f7e2da2e94dd01053b5e054b1c51829ff9a6efc08ad37") version("1.5-4", sha256="15ceb61993d61b442068104abb46e6d91b5a1179c01eeb64563b853abab66f06") version("1.5-1", sha256="557dba0358172d67dc63eb5db90841915bb5ce1528f941a8005ae808d635575d") @@ -36,11 +37,14 @@ class RMatrix(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@3.0.1:", type=("build", "run")) - depends_on("r@3.2.0:", type=("build", "run"), when="@1.2-13:") - depends_on("r@3.6.0:", type=("build", "run"), when="@1.3-2:") - depends_on("r@3.5.0:", type=("build", "run"), when="@1.3-3:") - depends_on("r@4.4.0:", type=("build", "run"), when="@1.7-0:") - depends_on("r-lattice", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("r@4.4.0:", when="@1.7-0:") + depends_on("r@3.5.0:", when="@1.3-3:") + depends_on("r@3.6.0:", when="@1.3-2:") + depends_on("r@3.2.0:", when="@1.2-13:") + depends_on("r@3.0.1:") + + depends_on("r-lattice") + # looks for libintl.h directly depends_on("gettext") diff --git a/repos/spack_repo/builtin/packages/r_matrixgenerics/package.py b/repos/spack_repo/builtin/packages/r_matrixgenerics/package.py index 8b5221e42b0..0c08113789a 100644 --- a/repos/spack_repo/builtin/packages/r_matrixgenerics/package.py +++ b/repos/spack_repo/builtin/packages/r_matrixgenerics/package.py @@ -20,12 +20,13 @@ class RMatrixgenerics(RPackage): bioc = "MatrixGenerics" - version("1.12.0", commit="442fde27fdf18ee3460ea0258a74a847b2c99cf3") - version("1.10.0", commit="6d9d907e8c4d1fc96a32160fb9f3ab805d6eb356") - version("1.8.1", commit="a4a21089e9f78275dd4a6f0df0c4b6b45c4650c7") - version("1.8.0", commit="e4cc34d53bcfb9a5914afd79fda31ecd5037a47a") - version("1.6.0", commit="4588a60e5cc691424c17faa281bdd7d99d83ec34") - version("1.2.1", commit="abcc9ca0504e0b915cd7933a3169a8e9e5bd2fe9") + with default_args(get_full_repo=True): + version("1.12.0", commit="442fde27fdf18ee3460ea0258a74a847b2c99cf3") + version("1.10.0", commit="6d9d907e8c4d1fc96a32160fb9f3ab805d6eb356") + version("1.8.1", commit="a4a21089e9f78275dd4a6f0df0c4b6b45c4650c7") + version("1.8.0", commit="e4cc34d53bcfb9a5914afd79fda31ecd5037a47a") + version("1.6.0", commit="4588a60e5cc691424c17faa281bdd7d99d83ec34") + version("1.2.1", commit="abcc9ca0504e0b915cd7933a3169a8e9e5bd2fe9") depends_on("r-matrixstats@0.57.1:", type=("build", "run")) depends_on("r-matrixstats@0.60.1:", type=("build", "run"), when="@1.6.0:") diff --git a/repos/spack_repo/builtin/packages/r_matrixmodels/package.py b/repos/spack_repo/builtin/packages/r_matrixmodels/package.py index 1c55831033c..514071fb5d8 100644 --- a/repos/spack_repo/builtin/packages/r_matrixmodels/package.py +++ b/repos/spack_repo/builtin/packages/r_matrixmodels/package.py @@ -15,13 +15,18 @@ class RMatrixmodels(RPackage): cran = "MatrixModels" + version("0.5-4", sha256="f57af9e0a35a3fea77790e46846482c6c7de0d0ea1996a995a5924f2d41cf33c") version("0.5-3", sha256="c2db5406c6b0b9d348b44eea215a39c64fc087099fea1342a04d50326577f20f") version("0.5-1", sha256="3fc55bdfa5ab40c75bf395e90983d14c9715078c33c727c1658e4e1f36e43ea9") version("0.5-0", sha256="a87faf1a185219f79ea2307e6787d293e1d30bf3af9398e8cfe1e079978946ed") version("0.4-1", sha256="fe878e401e697992a480cd146421c3a10fa331f6b37a51bac83b5c1119dcce33") - depends_on("r@3.0.1:", type=("build", "run")) - depends_on("r@3.6.0:", type=("build", "run"), when="@0.5-1:") - depends_on("r-matrix@1.1-5:", type=("build", "run")) - depends_on("r-matrix@1.4-2:", type=("build", "run"), when="@0.5-1:") - depends_on("r-matrix@1.6-0:", type=("build", "run"), when="@0.5-2:") + with default_args(type=("build", "run")): + depends_on("r@3.6.0:", when="@0.5-1:") + depends_on("r@3.0.1:") + + depends_on("r-matrix@1.6-0:", when="@0.5-2:") + depends_on("r-matrix@1.4-2:", when="@0.5-1:") + depends_on("r-matrix@1.1-5:") + + conflicts("r-matrix@1.8:") diff --git a/repos/spack_repo/builtin/packages/r_matrixstats/package.py b/repos/spack_repo/builtin/packages/r_matrixstats/package.py index 0b2c12f3f18..7f626bcc698 100644 --- a/repos/spack_repo/builtin/packages/r_matrixstats/package.py +++ b/repos/spack_repo/builtin/packages/r_matrixstats/package.py @@ -18,6 +18,7 @@ class RMatrixstats(RPackage): cran = "matrixStats" + version("1.5.0", sha256="12996c5f3e6fc202a43e1087f16a71b7fa93d7e908f512542c7ee89cf95dcc15") version("1.3.0", sha256="413ee607d95b243c514b4a7c4944c2caea1fb264d27c96ff547c3939f893245a") version("0.63.0", sha256="c000b60421742eb035ff4ceedd3e588a79e4b28985484f0c81361e5a6c351f5f") version("0.62.0", sha256="85e2016b6dd20cbfe32d38a2ef2578ae80e688d9a3590aefd1d2f4bf4bd44eca") @@ -28,4 +29,9 @@ class RMatrixstats(RPackage): version("0.54.0", sha256="8f0db4e181300a208b9aedbebfdf522a2626e6675d2662656efb8ba71b05a06f") version("0.52.2", sha256="39da6aa6b109f89a141dab8913d981abc4fbd3f8be9e206f92e382cc5270d2a5") + conflicts("r@4.5.0:", when="@:1.3.0") + + depends_on("c", type="build") + depends_on("r@2.12.0:", type=("build", "run")) + depends_on("r@3.4.0:", type=("build", "run"), when="@1.5.0:") diff --git a/repos/spack_repo/builtin/packages/r_mclust/package.py b/repos/spack_repo/builtin/packages/r_mclust/package.py index 7acc7eb24aa..7bd8f698ef0 100644 --- a/repos/spack_repo/builtin/packages/r_mclust/package.py +++ b/repos/spack_repo/builtin/packages/r_mclust/package.py @@ -29,5 +29,8 @@ class RMclust(RPackage): version("5.4.4", sha256="ccc31b0ad445e121a447b04988e73232a085c506fcc7ebdf11a3e0754aae3e0d") version("5.3", sha256="2b1b6d8266ae16b0e96f118df81559f208a568744a7c105af9f9abf1eef6ba40") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@3.0:", type=("build", "run"), when="@6.0.0:") diff --git a/repos/spack_repo/builtin/packages/r_mcmc/package.py b/repos/spack_repo/builtin/packages/r_mcmc/package.py index 1617269eb20..a03340eaea7 100644 --- a/repos/spack_repo/builtin/packages/r_mcmc/package.py +++ b/repos/spack_repo/builtin/packages/r_mcmc/package.py @@ -25,5 +25,7 @@ class RMcmc(RPackage): version("0.9-8", sha256="6a06440d4b58e8a7f122747d92046ff40da4bb58a20bf642228a648a0c826ea7") version("0.9-7", sha256="b7c4d3d5f9364c67a4a3cd49296a61c315ad9bd49324a22deccbacb314aa8260") + depends_on("c", type="build") # generated + depends_on("r@3.0.2:", type=("build", "run")) depends_on("r@3.6.0:", type=("build", "run"), when="@0.9-8:") diff --git a/repos/spack_repo/builtin/packages/r_mcmcglmm/package.py b/repos/spack_repo/builtin/packages/r_mcmcglmm/package.py index a1a443f8806..fe463c033e3 100644 --- a/repos/spack_repo/builtin/packages/r_mcmcglmm/package.py +++ b/repos/spack_repo/builtin/packages/r_mcmcglmm/package.py @@ -25,6 +25,9 @@ class RMcmcglmm(RPackage): version("2.28", sha256="7d92e6d35638e5e060a590b92c3b1bfc02a11386276a8ab99bceec5d797bfc2a") version("2.25", sha256="3072316bf5c66f6db5447cb488395ff019f6c47122813467384474f340643133") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r-matrix", type=("build", "run")) depends_on("r-coda", type=("build", "run")) depends_on("r-ape", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_mcmcpack/package.py b/repos/spack_repo/builtin/packages/r_mcmcpack/package.py index f172ab68db3..c19adb5f2ab 100644 --- a/repos/spack_repo/builtin/packages/r_mcmcpack/package.py +++ b/repos/spack_repo/builtin/packages/r_mcmcpack/package.py @@ -25,6 +25,9 @@ class RMcmcpack(RPackage): version("1.6-0", sha256="b5b9493457d11d4dca12f7732bd1b3eb1443852977c8ee78393126f13deaf29b") version("1.5-0", sha256="795ffd3d62bf14d3ecb3f5307bd329cd75798cf4b270ff0e768bc71a35de0ace") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.6:", type=("build", "run")) depends_on("r-coda@0.11-3:", type=("build", "run")) depends_on("r-lattice", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_mco/package.py b/repos/spack_repo/builtin/packages/r_mco/package.py index ff0ec5c96d6..13ca29665c0 100644 --- a/repos/spack_repo/builtin/packages/r_mco/package.py +++ b/repos/spack_repo/builtin/packages/r_mco/package.py @@ -23,5 +23,7 @@ class RMco(RPackage): version("1.0-15.1", sha256="3c13ebc8c1f1bfa18f3f95b3998c57fde5259876e92456b6c6d4c59bef07c193") version("1.0-15", sha256="a25e3effbb6dcae735fdbd6c0bfc775e9fbbcc00dc00076b69c53fe250627055") + depends_on("c", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@3.4.0:", type=("build", "run"), when="@1.17:") diff --git a/repos/spack_repo/builtin/packages/r_mda/package.py b/repos/spack_repo/builtin/packages/r_mda/package.py index 92da84ed443..c042b8260ab 100644 --- a/repos/spack_repo/builtin/packages/r_mda/package.py +++ b/repos/spack_repo/builtin/packages/r_mda/package.py @@ -23,6 +23,9 @@ class RMda(RPackage): version("0.4-10", sha256="7036bc622a8fea5b2de94fc19e6b64f5f0c27e5d743ae7646e116af08c9de6a5") version("0.4-9", sha256="b72456d2fa5b49895644489735d21cf4836d3d597f5e693e6103cce1887ffd85") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@1.9.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@0.5-2:") depends_on("r-class", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_memisc/package.py b/repos/spack_repo/builtin/packages/r_memisc/package.py index b6848c816f3..6a58afd5a29 100644 --- a/repos/spack_repo/builtin/packages/r_memisc/package.py +++ b/repos/spack_repo/builtin/packages/r_memisc/package.py @@ -24,6 +24,8 @@ class RMemisc(RPackage): version("0.99.31.7", sha256="b403185850520db18ebd608df85c76df80e6c64af428cdc4e49c2fe487483637") version("0.99.31.6", sha256="52336b4ffc6e60c3ed10ccc7417231582b0d2e4c5c3b2184396a7d3ca9c1d96e") + depends_on("c", type="build") # generated + depends_on("r@3.3.0:", type=("build", "run")) depends_on("r-lattice", type=("build", "run")) depends_on("r-mass", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_mendelianrandomization/package.py b/repos/spack_repo/builtin/packages/r_mendelianrandomization/package.py index 8a0adbb3770..e26a63c3d52 100644 --- a/repos/spack_repo/builtin/packages/r_mendelianrandomization/package.py +++ b/repos/spack_repo/builtin/packages/r_mendelianrandomization/package.py @@ -21,6 +21,8 @@ class RMendelianrandomization(RPackage): version("0.10.0", sha256="0851e91f826424f20fd4a58348ffe161d147bdc091d24d676e14d4cd6180e13c") version("0.7.0", sha256="cad7cc1b6964fc7d299864378694c5fd947caa83796a1958e581299796b854c7") + depends_on("cxx", type="build") # generated + depends_on("r@3.0.1:", type=("build", "run")) depends_on("r-knitr", type=("build", "run")) depends_on("r-rmarkdown", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_mergemaid/package.py b/repos/spack_repo/builtin/packages/r_mergemaid/package.py index 11ba3731c11..d69cbf44932 100644 --- a/repos/spack_repo/builtin/packages/r_mergemaid/package.py +++ b/repos/spack_repo/builtin/packages/r_mergemaid/package.py @@ -23,11 +23,12 @@ class RMergemaid(RPackage): bioc = "MergeMaid" - version("2.56.0", commit="c510d1d85bb39476e8397b24c4bc127780a17686") - version("2.54.0", commit="8e79bd2bd06b25138b3c5107681c89d714a3b194") - version("2.52.0", commit="88a1ddfd9cdbe902ba40fae0f39ee5665ac33a74") - version("2.50.0", commit="b77d7fcb8ac8cf9ee71303bb193ef1a36a7f6049") - version("2.48.0", commit="aee89c523fcafff4c166ff3db4fff90df16a1ed4") + with default_args(get_full_repo=True): + version("2.56.0", commit="c510d1d85bb39476e8397b24c4bc127780a17686") + version("2.54.0", commit="8e79bd2bd06b25138b3c5107681c89d714a3b194") + version("2.52.0", commit="88a1ddfd9cdbe902ba40fae0f39ee5665ac33a74") + version("2.50.0", commit="b77d7fcb8ac8cf9ee71303bb193ef1a36a7f6049") + version("2.48.0", commit="aee89c523fcafff4c166ff3db4fff90df16a1ed4") depends_on("r@2.10.0:", type=("build", "run")) depends_on("r-survival", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_metapod/package.py b/repos/spack_repo/builtin/packages/r_metapod/package.py index df854674f9b..5fdc73cb9a8 100644 --- a/repos/spack_repo/builtin/packages/r_metapod/package.py +++ b/repos/spack_repo/builtin/packages/r_metapod/package.py @@ -20,9 +20,10 @@ class RMetapod(RPackage): bioc = "metapod" - version("1.8.0", commit="6ac6999182d581ed579d2f7535e838b084f67b8d") - version("1.6.0", commit="cfeaa959f5c6b2119df270f40af9c3ea718c4b00") - version("1.4.0", commit="e71c2072e5b39f74599e279b28f4da7923b515fb") + with default_args(get_full_repo=True): + version("1.8.0", commit="6ac6999182d581ed579d2f7535e838b084f67b8d") + version("1.6.0", commit="cfeaa959f5c6b2119df270f40af9c3ea718c4b00") + version("1.4.0", commit="e71c2072e5b39f74599e279b28f4da7923b515fb") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_methylumi/package.py b/repos/spack_repo/builtin/packages/r_methylumi/package.py index a4cc10fc808..cd605199f2d 100644 --- a/repos/spack_repo/builtin/packages/r_methylumi/package.py +++ b/repos/spack_repo/builtin/packages/r_methylumi/package.py @@ -21,12 +21,13 @@ class RMethylumi(RPackage): bioc = "methylumi" - version("2.46.0", commit="eb09e6508f1619c789d6b3091a8065cb6571cdac") - version("2.44.0", commit="8f1f1f944993800da2776cb3240b4482c09429ad") - version("2.42.0", commit="73e9c7fe1252c4ca20dc7b4e58decf04bf22d5e0") - version("2.40.1", commit="211039225ca6fca9af75b8266f656161912ce10f") - version("2.36.0", commit="5fb0b609f9c9181ac99f902745958774e5489606") - version("2.32.0", commit="e2a29c1b214c0d43c7325d176f9ce41dcf8e2f9d") + with default_args(get_full_repo=True): + version("2.46.0", commit="eb09e6508f1619c789d6b3091a8065cb6571cdac") + version("2.44.0", commit="8f1f1f944993800da2776cb3240b4482c09429ad") + version("2.42.0", commit="73e9c7fe1252c4ca20dc7b4e58decf04bf22d5e0") + version("2.40.1", commit="211039225ca6fca9af75b8266f656161912ce10f") + version("2.36.0", commit="5fb0b609f9c9181ac99f902745958774e5489606") + version("2.32.0", commit="e2a29c1b214c0d43c7325d176f9ce41dcf8e2f9d") depends_on("r@2.13:", type=("build", "run")) depends_on("r-biobase", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_mgcv/package.py b/repos/spack_repo/builtin/packages/r_mgcv/package.py index 69539372985..5177f7ca47c 100644 --- a/repos/spack_repo/builtin/packages/r_mgcv/package.py +++ b/repos/spack_repo/builtin/packages/r_mgcv/package.py @@ -22,6 +22,7 @@ class RMgcv(RPackage): license("GPL-2.0-or-later") + version("1.9-4", sha256="a98159698afb269e06a46cac1f945bf2b3427a2dd587c6f2efd67ede90089372") version("1.9-1", sha256="700fbc37bedd3a49505b9bc4949faee156d9cfb4f669d797d06a10a15a5bdb32") version("1.8-42", sha256="087fc38b64ad06f2149eafc54f2679dd8840cf6fc488e66cf131e3c1de2db6c7") version("1.8-41", sha256="2f7a030fe2be75edef6bd96147df46c2262f3cdc44c383d8f82b401df44fe690") @@ -41,8 +42,12 @@ class RMgcv(RPackage): depends_on("c", type="build") - depends_on("r@2.14.0:", type=("build", "run")) - depends_on("r@3.6.0:", type=("build", "run"), when="@1.8.34:") - depends_on("r-nlme@3.1-64:", type=("build", "run")) - depends_on("r-matrix", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("r@4.4.0:", when="@1.9-4:") + depends_on("r@3.6.0:", when="@1.8-34:") + depends_on("r@2.14.0:") + + depends_on("r-nlme@3.1-64:") + depends_on("r-matrix") + depends_on("gettext") diff --git a/repos/spack_repo/builtin/packages/r_mice/package.py b/repos/spack_repo/builtin/packages/r_mice/package.py index 8762812b44d..cbe04144158 100644 --- a/repos/spack_repo/builtin/packages/r_mice/package.py +++ b/repos/spack_repo/builtin/packages/r_mice/package.py @@ -34,6 +34,8 @@ class RMice(RPackage): version("3.5.0", sha256="4fccecdf9e8d8f9f63558597bfbbf054a873b2d0b0820ceefa7b6911066b9e45") version("3.0.0", sha256="98b6bb1c5f8fb099bd0024779da8c865146edb25219cc0c9542a8254152c0add") + depends_on("cxx", type="build") # generated + depends_on("r@2.10.0:", type=("build", "run")) depends_on("r-broom", type=("build", "run")) depends_on("r-dplyr", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_microbenchmark/package.py b/repos/spack_repo/builtin/packages/r_microbenchmark/package.py index 4e26a0e8631..3ac291e45f7 100644 --- a/repos/spack_repo/builtin/packages/r_microbenchmark/package.py +++ b/repos/spack_repo/builtin/packages/r_microbenchmark/package.py @@ -17,6 +17,11 @@ class RMicrobenchmark(RPackage): license("BSD-2-Clause") + version("1.5.0", sha256="3d1e92a9206811ad128b28795d20a0d31da5f0c29ea7f1caaf1194ed3e49765f") version("1.4.10", sha256="04cc41be72708dce8d31ff1cb105d88cc9f167250ea00fe9a165c99204b9b481") version("1.4.9", sha256="443d2caf370ef33e4ac2773176ad9eb86f8790f43b430968ef9647699dbbffd2") version("1.4-7", sha256="268f13c6323dd28cc2dff7e991bb78b814a8873b4a73f4a3645f40423da984f6") + + depends_on("c", type="build") + + depends_on("r@3.2:", type=("build", "run"), when="@1.5:") diff --git a/repos/spack_repo/builtin/packages/r_mime/package.py b/repos/spack_repo/builtin/packages/r_mime/package.py index d3a5374e82f..73acc0a3293 100644 --- a/repos/spack_repo/builtin/packages/r_mime/package.py +++ b/repos/spack_repo/builtin/packages/r_mime/package.py @@ -17,6 +17,7 @@ class RMime(RPackage): license("GPL-2.0-or-later") + version("0.13", sha256="7132834cf3c3388eff12bad376d69fbcf8275acc37d36c290e59174fe3c7f3eb") version("0.12", sha256="a9001051d6c1e556e881910b1816b42872a1ee41ab76d0040ce66a27135e3849") version("0.11", sha256="215427a49f0d0b0e3ab38d419c515a35d57e3bc32535805306275d8b33f8eec0") version("0.9", sha256="2ccf97d2940a09539dc051c7a9a1aee90ef04b34e9bc6c0b64b4435fb3c2fa80") diff --git a/repos/spack_repo/builtin/packages/r_minfi/package.py b/repos/spack_repo/builtin/packages/r_minfi/package.py index c55e0639002..e7e356893c3 100644 --- a/repos/spack_repo/builtin/packages/r_minfi/package.py +++ b/repos/spack_repo/builtin/packages/r_minfi/package.py @@ -14,16 +14,17 @@ class RMinfi(RPackage): bioc = "minfi" - version("1.46.0", commit="1d063178fb27d577c260f8b7626b982c9a6585cc") - version("1.44.0", commit="7c89fefc2e174d43ed9891b3f30b51ee19e916a6") - version("1.42.0", commit="30fc7059460a9ec0be734fc26e608426ca9f5614") - version("1.40.0", commit="17fa2b5d6cdbef6cbfb690242bd3f660731431f1") - version("1.36.0", commit="94301da343226be7cd878c2a6c1bb529564785d6") - version("1.30.0", commit="a4c28e9388fe3b35e7d21a9669e39250ed6dcbcd") - version("1.28.4", commit="b5125b2f3e05d37d519eeb6fd44a60efdad388e7") - version("1.26.2", commit="ebb07b728b2453998d46e4e53d4fbf873e8e81fc") - version("1.24.0", commit="a4df428588ea86a1c79ddba76132014f0a39644e") - version("1.22.1", commit="b2faf84bcbb291e32d470a0e029450093527545b") + with default_args(get_full_repo=True): + version("1.46.0", commit="1d063178fb27d577c260f8b7626b982c9a6585cc") + version("1.44.0", commit="7c89fefc2e174d43ed9891b3f30b51ee19e916a6") + version("1.42.0", commit="30fc7059460a9ec0be734fc26e608426ca9f5614") + version("1.40.0", commit="17fa2b5d6cdbef6cbfb690242bd3f660731431f1") + version("1.36.0", commit="94301da343226be7cd878c2a6c1bb529564785d6") + version("1.30.0", commit="a4c28e9388fe3b35e7d21a9669e39250ed6dcbcd") + version("1.28.4", commit="b5125b2f3e05d37d519eeb6fd44a60efdad388e7") + version("1.26.2", commit="ebb07b728b2453998d46e4e53d4fbf873e8e81fc") + version("1.24.0", commit="a4df428588ea86a1c79ddba76132014f0a39644e") + version("1.22.1", commit="b2faf84bcbb291e32d470a0e029450093527545b") depends_on("r-biocgenerics@0.15.3:", type=("build", "run")) depends_on("r-genomicranges", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_minqa/package.py b/repos/spack_repo/builtin/packages/r_minqa/package.py index 911ce3e24dd..c9801294faa 100644 --- a/repos/spack_repo/builtin/packages/r_minqa/package.py +++ b/repos/spack_repo/builtin/packages/r_minqa/package.py @@ -21,5 +21,7 @@ class RMinqa(RPackage): version("1.2.5", sha256="9b83562390990d04b2c61b63ac9a7c9ecab0d35c460d232596e3c73bdc89f4be") version("1.2.4", sha256="cfa193a4a9c55cb08f3faf4ab09c11b70412523767f19894e4eafc6e94cccd0c") + depends_on("fortran", type="build") + depends_on("cxx", type="build") + depends_on("r-rcpp@0.9.10:", type=("build", "run")) - depends_on("gmake", type="build") diff --git a/repos/spack_repo/builtin/packages/r_missmethyl/package.py b/repos/spack_repo/builtin/packages/r_missmethyl/package.py index ac897359196..f3368867679 100644 --- a/repos/spack_repo/builtin/packages/r_missmethyl/package.py +++ b/repos/spack_repo/builtin/packages/r_missmethyl/package.py @@ -24,11 +24,12 @@ class RMissmethyl(RPackage): bioc = "missMethyl" - version("1.34.0", commit="57db57c48ab79c36eb89726afc2833a981cbaf3d") - version("1.32.0", commit="969b892e400b9821398099bcea46f2d0431daedf") - version("1.30.0", commit="734846653f332f10e557b87aca4cb5d100b62469") - version("1.28.0", commit="6a36aee28837736291ac630c1da3909f0e9c8d6a") - version("1.24.0", commit="f6c86048911dc0e302fb593b7d0623f6e77ac332") + with default_args(get_full_repo=True): + version("1.34.0", commit="57db57c48ab79c36eb89726afc2833a981cbaf3d") + version("1.32.0", commit="969b892e400b9821398099bcea46f2d0431daedf") + version("1.30.0", commit="734846653f332f10e557b87aca4cb5d100b62469") + version("1.28.0", commit="6a36aee28837736291ac630c1da3909f0e9c8d6a") + version("1.24.0", commit="f6c86048911dc0e302fb593b7d0623f6e77ac332") depends_on("r@3.6.0:", type=("build", "run")) depends_on("r-illuminahumanmethylation450kanno-ilmn12-hg19", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_mlbench/package.py b/repos/spack_repo/builtin/packages/r_mlbench/package.py index ada556a7ae6..81c3cab15d4 100644 --- a/repos/spack_repo/builtin/packages/r_mlbench/package.py +++ b/repos/spack_repo/builtin/packages/r_mlbench/package.py @@ -21,4 +21,6 @@ class RMlbench(RPackage): version("2.1-3", sha256="b1f92be633243185ab86e880a1e1ac5a4dd3c535d01ebd187a4872d0a8c6f194") version("2.1-1", sha256="748141d56531a39dc4d37cf0a5165a40b653a04c507e916854053ed77119e0e6") + depends_on("c", type="build") # generated + depends_on("r@2.10:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_mlinterfaces/package.py b/repos/spack_repo/builtin/packages/r_mlinterfaces/package.py index a251852c7c2..8ad6bc9fef4 100644 --- a/repos/spack_repo/builtin/packages/r_mlinterfaces/package.py +++ b/repos/spack_repo/builtin/packages/r_mlinterfaces/package.py @@ -16,16 +16,17 @@ class RMlinterfaces(RPackage): bioc = "MLInterfaces" - version("1.80.0", commit="275f8d39f05c46ab3ab7096d1e0539a33bab3a54") - version("1.78.0", commit="0988b95d282a6bffe56b7df4da2e23485e96d12c") - version("1.76.0", commit="935323d8ce1e4bbf41844a1f9b6c946c5a30c673") - version("1.74.0", commit="5ee73b6491b1d68d7b49ddce6483df98ad880946") - version("1.70.0", commit="7b076c3e85314dd5fd5bd8a98e8123d08d9acd3b") - version("1.64.1", commit="0b081112d87771248bc33b3b82d5ca4685f986a1") - version("1.62.1", commit="6cf59a90b14779cf57a0b36f1087304082ae50fe") - version("1.60.1", commit="019e9ed44923e5d845a4800246aa044ddd59d548") - version("1.58.1", commit="4e2b5efa019fcb677dc82a58a1668c8a00cdfe07") - version("1.56.0", commit="31fe6fb20d859fcb01d5552f42bca6bab16cc67f") + with default_args(get_full_repo=True): + version("1.80.0", commit="275f8d39f05c46ab3ab7096d1e0539a33bab3a54") + version("1.78.0", commit="0988b95d282a6bffe56b7df4da2e23485e96d12c") + version("1.76.0", commit="935323d8ce1e4bbf41844a1f9b6c946c5a30c673") + version("1.74.0", commit="5ee73b6491b1d68d7b49ddce6483df98ad880946") + version("1.70.0", commit="7b076c3e85314dd5fd5bd8a98e8123d08d9acd3b") + version("1.64.1", commit="0b081112d87771248bc33b3b82d5ca4685f986a1") + version("1.62.1", commit="6cf59a90b14779cf57a0b36f1087304082ae50fe") + version("1.60.1", commit="019e9ed44923e5d845a4800246aa044ddd59d548") + version("1.58.1", commit="4e2b5efa019fcb677dc82a58a1668c8a00cdfe07") + version("1.56.0", commit="31fe6fb20d859fcb01d5552f42bca6bab16cc67f") depends_on("r@2.9:", type=("build", "run")) depends_on("r@3.5:", type=("build", "run"), when="@1.60.1:") diff --git a/repos/spack_repo/builtin/packages/r_mlr/package.py b/repos/spack_repo/builtin/packages/r_mlr/package.py index d14809ff106..b371abdf625 100644 --- a/repos/spack_repo/builtin/packages/r_mlr/package.py +++ b/repos/spack_repo/builtin/packages/r_mlr/package.py @@ -35,6 +35,8 @@ class RMlr(RPackage): version("2.12.1", sha256="9cbb98b82eb493b783fe8808a18d76f32881d941364466ef8829b852fabbc82c") version("2.12", sha256="cfe00089ae4cd88c6d03826eda43d4fe29e467e3a7c95d103fafca8308f5c161") + depends_on("c", type="build") # generated + # There are some potential variants for this. # SystemRequirements: gdal (optional), geos (optional), proj (optional), # udunits (optional), gsl (optional), gmp (optional), glu (optional), jags diff --git a/repos/spack_repo/builtin/packages/r_mscoreutils/package.py b/repos/spack_repo/builtin/packages/r_mscoreutils/package.py index 364befab114..75fdbc6cdf9 100644 --- a/repos/spack_repo/builtin/packages/r_mscoreutils/package.py +++ b/repos/spack_repo/builtin/packages/r_mscoreutils/package.py @@ -20,10 +20,11 @@ class RMscoreutils(RPackage): bioc = "MsCoreUtils" - version("1.12.0", commit="14a3fdb2fecca41ef0acb67bc8356227a1491c56") - version("1.10.0", commit="742c0c7143b1c32f75cc96b555e9f8cd265096c9") - version("1.8.0", commit="8b7e2c31009276aad0b418ba5cdfc94d03e1973e") - version("1.6.0", commit="9ed95b2d20dacaa83567fadd04349c81db9127ef") + with default_args(get_full_repo=True): + version("1.12.0", commit="14a3fdb2fecca41ef0acb67bc8356227a1491c56") + version("1.10.0", commit="742c0c7143b1c32f75cc96b555e9f8cd265096c9") + version("1.8.0", commit="8b7e2c31009276aad0b418ba5cdfc94d03e1973e") + version("1.6.0", commit="9ed95b2d20dacaa83567fadd04349c81db9127ef") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_msnbase/package.py b/repos/spack_repo/builtin/packages/r_msnbase/package.py index 917ce33827f..a74fdf775dd 100644 --- a/repos/spack_repo/builtin/packages/r_msnbase/package.py +++ b/repos/spack_repo/builtin/packages/r_msnbase/package.py @@ -16,16 +16,17 @@ class RMsnbase(RPackage): bioc = "MSnbase" - version("2.26.0", commit="3e6268a86b93c474e37b21a9b8f564812202b2b6") - version("2.24.0", commit="b96e0142c663c2cb01e92479816a503c46caa1a8") - version("2.22.0", commit="4f6e5767eee91b2105781b494fcabcfed16eba2d") - version("2.20.4", commit="c86ac8b341832f2b577f2153258c1abf064e6448") - version("2.16.1", commit="4d88b4edd1af59474462b1b06ad0ec5831f3a878") - version("2.10.1", commit="4d5899bc9c714f0b1a70cddd537cd4621b2b53b0") - version("2.8.3", commit="ef883752c5e92d445647bc5b5d23d5df320db415") - version("2.6.4", commit="46836860ce0281eef135303f2e2948303d67f68c") - version("2.4.2", commit="c045d65daa730c7837852e6343a05cae9644ab5e") - version("2.2.0", commit="d6e8fb7f106d05096fa9074da0f829ac8f02c197") + with default_args(get_full_repo=True): + version("2.26.0", commit="3e6268a86b93c474e37b21a9b8f564812202b2b6") + version("2.24.0", commit="b96e0142c663c2cb01e92479816a503c46caa1a8") + version("2.22.0", commit="4f6e5767eee91b2105781b494fcabcfed16eba2d") + version("2.20.4", commit="c86ac8b341832f2b577f2153258c1abf064e6448") + version("2.16.1", commit="4d88b4edd1af59474462b1b06ad0ec5831f3a878") + version("2.10.1", commit="4d5899bc9c714f0b1a70cddd537cd4621b2b53b0") + version("2.8.3", commit="ef883752c5e92d445647bc5b5d23d5df320db415") + version("2.6.4", commit="46836860ce0281eef135303f2e2948303d67f68c") + version("2.4.2", commit="c045d65daa730c7837852e6343a05cae9644ab5e") + version("2.2.0", commit="d6e8fb7f106d05096fa9074da0f829ac8f02c197") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_multicool/package.py b/repos/spack_repo/builtin/packages/r_multicool/package.py index 4fae93ce4a6..bed7955b410 100644 --- a/repos/spack_repo/builtin/packages/r_multicool/package.py +++ b/repos/spack_repo/builtin/packages/r_multicool/package.py @@ -36,4 +36,6 @@ class RMulticool(RPackage): version("0.1-10", sha256="5bb0cb0d9eb64420c862877247a79bb0afadacfe23262ec8c3fa26e5e34d6ff9") version("0.1-9", sha256="bdf92571cef1b649952d155395a92b8683099ee13114f73a9d41fc5d7d49d329") + depends_on("cxx", type="build") # generated + depends_on("r-rcpp@0.11.2:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_multitaper/package.py b/repos/spack_repo/builtin/packages/r_multitaper/package.py index 505822fcce6..5d9814da777 100644 --- a/repos/spack_repo/builtin/packages/r_multitaper/package.py +++ b/repos/spack_repo/builtin/packages/r_multitaper/package.py @@ -27,4 +27,7 @@ class RMultitaper(RPackage): version("1.0-15", sha256="837d71f3b46fbce2bea210449cf75e609f5363ff23b7808f5f115fdc51e6a3be") version("1.0-14", sha256="c84c122541dc2874131446e23b212259b3b00590d701efee49e6740fd74a8d13") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_multtest/package.py b/repos/spack_repo/builtin/packages/r_multtest/package.py index 872b530791f..161126c3366 100644 --- a/repos/spack_repo/builtin/packages/r_multtest/package.py +++ b/repos/spack_repo/builtin/packages/r_multtest/package.py @@ -30,16 +30,17 @@ class RMulttest(RPackage): bioc = "multtest" - version("2.56.0", commit="619975704a271cdb74d97a75bee7e2df0028b4d3") - version("2.54.0", commit="4e2c9e939dfd9984d8ff4bab0a95e1bd0457ec72") - version("2.52.0", commit="00cfc9beb6d063c2b04fc83495a76824f8a33a64") - version("2.50.0", commit="1de96649a942b115d3d554394514745e86eb3fd3") - version("2.46.0", commit="c4dd27b333c80313a88668b59d0299988c6478a2") - version("2.40.0", commit="5f00017c2d3a31e05e1cfe06d9f7afdee19f8473") - version("2.38.0", commit="4dfe71cecfb298a94521088fb7bd83c5498d2915") - version("2.36.0", commit="babb15e8d110eb72300ad59cf7e53386237a4198") - version("2.34.0", commit="6ef873e05e6c93ede54f3421424f56eda057cd54") - version("2.32.0", commit="c5e890dfbffcc3a3f107303a24b6085614312f4a") + with default_args(get_full_repo=True): + version("2.56.0", commit="619975704a271cdb74d97a75bee7e2df0028b4d3") + version("2.54.0", commit="4e2c9e939dfd9984d8ff4bab0a95e1bd0457ec72") + version("2.52.0", commit="00cfc9beb6d063c2b04fc83495a76824f8a33a64") + version("2.50.0", commit="1de96649a942b115d3d554394514745e86eb3fd3") + version("2.46.0", commit="c4dd27b333c80313a88668b59d0299988c6478a2") + version("2.40.0", commit="5f00017c2d3a31e05e1cfe06d9f7afdee19f8473") + version("2.38.0", commit="4dfe71cecfb298a94521088fb7bd83c5498d2915") + version("2.36.0", commit="babb15e8d110eb72300ad59cf7e53386237a4198") + version("2.34.0", commit="6ef873e05e6c93ede54f3421424f56eda057cd54") + version("2.32.0", commit="c5e890dfbffcc3a3f107303a24b6085614312f4a") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_mvtnorm/package.py b/repos/spack_repo/builtin/packages/r_mvtnorm/package.py index dc83d8c5ad1..f7de70ab4cf 100644 --- a/repos/spack_repo/builtin/packages/r_mvtnorm/package.py +++ b/repos/spack_repo/builtin/packages/r_mvtnorm/package.py @@ -17,6 +17,8 @@ class RMvtnorm(RPackage): license("GPL-2.0-only") + version("1.3-7", sha256="c393e96e204bd7838dbfa60969c6b35ac472e60cb002b6eff922bca767fe8e90") + version("1.3-3", sha256="e20e7f534bc89b9258ad63d508aabed60f3bd504a7532a33e6ea230ca8fa4171") version("1.2-6", sha256="c4dedc3c296ed8e5fd2faecdba6de302bca1dd2e96b84fd846c47a54286acd31") version("1.1-3", sha256="ff4e302139ba631280fc9c4a2ab168596bfd09e17a805974199b043697c02448") version("1.1-1", sha256="e965dad5e93babb7ded25b5ebdbd52332191b61f897d68853a379a07620d45de") @@ -25,5 +27,8 @@ class RMvtnorm(RPackage): version("1.0-6", sha256="4a015b57b645b520151b213eb04b7331598c06442a3f652c7dc149425bd2e444") version("1.0-5", sha256="d00f9f758f0d0d4b999f259223485dc55d23cbec09004014816f180045ac81dd") - depends_on("r@1.9.0:", type=("build", "run")) + depends_on("c", type="build") + depends_on("fortran", type="build") + depends_on("r@3.5.0:", type=("build", "run"), when="@1.0-9:") + depends_on("r@1.9.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_mzid/package.py b/repos/spack_repo/builtin/packages/r_mzid/package.py index ac839898d8e..4a293684465 100644 --- a/repos/spack_repo/builtin/packages/r_mzid/package.py +++ b/repos/spack_repo/builtin/packages/r_mzid/package.py @@ -18,16 +18,17 @@ class RMzid(RPackage): bioc = "mzID" - version("1.38.0", commit="d87d8b83d27876d3c12cd437499b87a5856f397d") - version("1.36.0", commit="d6525edce3389fd4a05ff5fd42e9d611f00a545d") - version("1.34.0", commit="bef64db159a0a4d241ba2ba271f70266c1522b2b") - version("1.32.0", commit="d4146385b54f4d8361e23fc2c2aef79e952f4730") - version("1.28.0", commit="cd006631c8222ce5b4af0577a7401b39cc58fd9c") - version("1.22.0", commit="382d9cf11f0cba996911a9d79e193d28f3ac6042") - version("1.20.1", commit="819582646944440ddd9ed3724ae964841573e54c") - version("1.18.0", commit="7d8924ae95585eb8cf472d21619a7603d291d652") - version("1.16.0", commit="fc203832a4cbbbe20f6dd826c6bf2128f2c271c4") - version("1.14.0", commit="1c53aa6523ae61d3ebb13381381fc119d6cc6115") + with default_args(get_full_repo=True): + version("1.38.0", commit="d87d8b83d27876d3c12cd437499b87a5856f397d") + version("1.36.0", commit="d6525edce3389fd4a05ff5fd42e9d611f00a545d") + version("1.34.0", commit="bef64db159a0a4d241ba2ba271f70266c1522b2b") + version("1.32.0", commit="d4146385b54f4d8361e23fc2c2aef79e952f4730") + version("1.28.0", commit="cd006631c8222ce5b4af0577a7401b39cc58fd9c") + version("1.22.0", commit="382d9cf11f0cba996911a9d79e193d28f3ac6042") + version("1.20.1", commit="819582646944440ddd9ed3724ae964841573e54c") + version("1.18.0", commit="7d8924ae95585eb8cf472d21619a7603d291d652") + version("1.16.0", commit="fc203832a4cbbbe20f6dd826c6bf2128f2c271c4") + version("1.14.0", commit="1c53aa6523ae61d3ebb13381381fc119d6cc6115") depends_on("r-xml", type=("build", "run")) depends_on("r-plyr", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_mzr/package.py b/repos/spack_repo/builtin/packages/r_mzr/package.py index fd9f5da0a53..147b8f077c4 100644 --- a/repos/spack_repo/builtin/packages/r_mzr/package.py +++ b/repos/spack_repo/builtin/packages/r_mzr/package.py @@ -20,16 +20,17 @@ class RMzr(RPackage): bioc = "mzR" - version("2.34.0", commit="14ccc37ab3efd4b6003442a0268668258ccb7df9") - version("2.32.0", commit="ef57d59205398558898a748ba9c8de66b0bddb81") - version("2.30.0", commit="563ae755cfc7de1ac8862247779182b7b3aebdcc") - version("2.28.0", commit="bee7d6fb5f99e1fab5444ae1ad27b0bc6e83be9e") - version("2.24.1", commit="e1d4de8761e6729fd45320d842691c8fe9116b7b") - version("2.18.1", commit="13f9f9b1149859c3e29cfce941d958cc4f680546") - version("2.16.2", commit="22d7dad98f46b5bed7f6f7b3a703dcdf5997f709") - version("2.14.0", commit="bf1154bc45101d95b5a67c66980856a779b84bd4") - version("2.12.0", commit="f05eb27ae31c3d019cca10fc3b9ee513cbcdfc5a") - version("2.10.0", commit="a6168b68e48c281e88de9647254a8db1e21df388") + with default_args(get_full_repo=True): + version("2.34.0", commit="14ccc37ab3efd4b6003442a0268668258ccb7df9") + version("2.32.0", commit="ef57d59205398558898a748ba9c8de66b0bddb81") + version("2.30.0", commit="563ae755cfc7de1ac8862247779182b7b3aebdcc") + version("2.28.0", commit="bee7d6fb5f99e1fab5444ae1ad27b0bc6e83be9e") + version("2.24.1", commit="e1d4de8761e6729fd45320d842691c8fe9116b7b") + version("2.18.1", commit="13f9f9b1149859c3e29cfce941d958cc4f680546") + version("2.16.2", commit="22d7dad98f46b5bed7f6f7b3a703dcdf5997f709") + version("2.14.0", commit="bf1154bc45101d95b5a67c66980856a779b84bd4") + version("2.12.0", commit="f05eb27ae31c3d019cca10fc3b9ee513cbcdfc5a") + version("2.10.0", commit="a6168b68e48c281e88de9647254a8db1e21df388") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_nanotime/package.py b/repos/spack_repo/builtin/packages/r_nanotime/package.py index 4dc031260cd..9c8a9980bed 100644 --- a/repos/spack_repo/builtin/packages/r_nanotime/package.py +++ b/repos/spack_repo/builtin/packages/r_nanotime/package.py @@ -28,6 +28,8 @@ class RNanotime(RPackage): version("0.2.3", sha256="7d6df69a4223ae154f610b650e24ece38ce4aa706edfa38bec27d15473229f5d") version("0.2.0", sha256="9ce420707dc4f0cb4241763579b849d842904a3aa0d88de8ffef334d08fa188d") + depends_on("cxx", type="build") # generated + depends_on("r-bit64", type=("build", "run")) depends_on("r-rcppcctz@0.2.3:", type=("build", "run")) depends_on("r-rcppcctz@0.2.9:", type=("build", "run"), when="@0.3.2:") diff --git a/repos/spack_repo/builtin/packages/r_ncdf4/package.py b/repos/spack_repo/builtin/packages/r_ncdf4/package.py index 65dee5d2862..49282609db7 100644 --- a/repos/spack_repo/builtin/packages/r_ncdf4/package.py +++ b/repos/spack_repo/builtin/packages/r_ncdf4/package.py @@ -37,4 +37,7 @@ class RNcdf4(RPackage): version("1.16", sha256="edd5731a805bbece3a8f6132c87c356deafc272351e1dd07256ca00574949253") version("1.15", sha256="d58298f4317c6c80a041a70216126492fd09ba8ecde9da09d5145ae26f324d4d") + depends_on("c", type="build") + depends_on("gmake", type="build") + depends_on("netcdf-c@4.1:") diff --git a/repos/spack_repo/builtin/packages/r_network/package.py b/repos/spack_repo/builtin/packages/r_network/package.py index 1e91e48d0d1..730eaa43b17 100644 --- a/repos/spack_repo/builtin/packages/r_network/package.py +++ b/repos/spack_repo/builtin/packages/r_network/package.py @@ -28,6 +28,8 @@ class RNetwork(RPackage): version("1.14-377", sha256="013c02f8d97f1f87f2c421760534df9353d2a8c2277f20b46b59fb79822d3e46") version("1.13.0", sha256="7a04ea89261cdf32ccb52222810699d5fca59a849053e306b5ec9dd5c1184f87") + depends_on("c", type="build") # generated + depends_on("r@2.10:", type=("build", "run")) depends_on("r-tibble", type=("build", "run"), when="@1.14-377:") depends_on("r-magrittr", type=("build", "run"), when="@1.14-377:") diff --git a/repos/spack_repo/builtin/packages/r_nimble/package.py b/repos/spack_repo/builtin/packages/r_nimble/package.py index 86fb566d6af..7bc89e8da25 100644 --- a/repos/spack_repo/builtin/packages/r_nimble/package.py +++ b/repos/spack_repo/builtin/packages/r_nimble/package.py @@ -37,6 +37,8 @@ class RNimble(RPackage): version("0.9.1", sha256="ad5e8a171193cb0172e68bf61c4f94432c45c131a150101ad1c5c7318c335757") version("0.9.0", sha256="ebc28fadf933143eea73900cacaf96ff81cb3c2d607405016062b7e93afa5611") + depends_on("cxx", type="build") # generated + depends_on("r@3.1.2:", type=("build", "run")) depends_on("r-igraph", type=("build", "run")) depends_on("r-coda", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_nleqslv/package.py b/repos/spack_repo/builtin/packages/r_nleqslv/package.py index 6a0b5e0ff71..b76ce5533ca 100644 --- a/repos/spack_repo/builtin/packages/r_nleqslv/package.py +++ b/repos/spack_repo/builtin/packages/r_nleqslv/package.py @@ -20,7 +20,11 @@ class RNleqslv(RPackage): license("GPL-2.0-or-later") + version("3.3.7", sha256="6f29ad65049338006a52e457dbbeba529813b6dd952c4d774ef8b9c42193ef75") version("3.3.5", sha256="1298172d2fe67d8d6b742ce7e792f6b897f081da5c94d34f14970ab531f04b3a") version("3.3.4", sha256="2783e7525bcd155dd8cedf5a41b7db65cd1fa0e095cd937371448316f3930fcf") version("3.3.3", sha256="2e46dfce95ddfd7ed5208413ee41f6bdf1ae18414fb1d0c146d9da3af12ac633") version("3.3.2", sha256="f54956cf67f9970bb3c6803684c84a27ac78165055745e444efc45cfecb63fed") + + depends_on("c", type="build") + depends_on("fortran", type="build") diff --git a/repos/spack_repo/builtin/packages/r_nlme/package.py b/repos/spack_repo/builtin/packages/r_nlme/package.py index 3256d6716de..9eed25a124d 100644 --- a/repos/spack_repo/builtin/packages/r_nlme/package.py +++ b/repos/spack_repo/builtin/packages/r_nlme/package.py @@ -16,6 +16,7 @@ class RNlme(RPackage): license("GPL-2.0-or-later") + version("3.1-169", sha256="51b92f1b543d2eb5915478965dab05a9094e1675a160138d49963eb3a0e7fdb8") version("3.1-166", sha256="237a14ee8d78755b11a7efe234b95be40b46fbdd1b4aaf463f6d532be1909762") version("3.1-162", sha256="ba6da2575554afa2614c4cba9971f8a9f8a07622d201284cb78899f3d6a2dc67") version("3.1-160", sha256="d4454623194876b083774c662fd223bc3b9e8325824cb758b8adecd5dc0d8a08") @@ -30,16 +31,19 @@ class RNlme(RPackage): version("3.1-131", sha256="79daa167eb9bc7d8dba506da4b24b5250665b051d4e0a51dfccbb0087fdb564c") version("3.1-130", sha256="ec576bd906ef2e1c79b6a4382743d425846f63be2a43de1cce6aa397b40e290e") - depends_on("c", type="build") - depends_on("cxx", type="build") - depends_on("fortran", type="build") + with default_args(type="build"): + depends_on("c") + depends_on("cxx") + depends_on("fortran") - depends_on("r@3.0.2:", type=("build", "run")) - depends_on("r@3.3.0:", type=("build", "run"), when="@3.1-131.1") - depends_on("r@3.5.0:", type=("build", "run"), when="@3.1-134:3.1-135") - depends_on("r@3.4.0:", type=("build", "run"), when="@3.1-135.5:") - depends_on("r@3.6.0:", type=("build", "run"), when="@3.1-165:") - depends_on("r-lattice", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("r@3.6.0:", when="@3.1-165:") + depends_on("r@3.4.0:", when="@3.1-135.5:") + depends_on("r@3.5.0:", when="@3.1-134:3.1-135") + depends_on("r@3.3.0:", when="@3.1-131.1") + depends_on("r@3.0.2:") + + depends_on("r-lattice") # looks for libintl.h directly depends_on("gettext") diff --git a/repos/spack_repo/builtin/packages/r_nloptr/package.py b/repos/spack_repo/builtin/packages/r_nloptr/package.py index e9cb5e1ce30..197be8f1890 100644 --- a/repos/spack_repo/builtin/packages/r_nloptr/package.py +++ b/repos/spack_repo/builtin/packages/r_nloptr/package.py @@ -26,6 +26,7 @@ class RNloptr(RPackage): license("LGPL-3.0-or-later") + version("2.2.1", sha256="76ba40750b475c8b1ad6a86c9e05f0c1746af16d965235ff9293953920aed7f4") version("2.1.1", sha256="4cdaf55dfdeb090119f2c2ca77f617962524654da4511bacd650f62bb6dad8ea") version("2.0.3", sha256="7b26ac1246fd1bd890817b0c3a145456c11aec98458b8518de863650b99616d7") version("2.0.0", sha256="65ca3149cfc9ba15ac10a91f34b5d86b20f5fd693f44e3edf3e392402911619a") @@ -34,6 +35,9 @@ class RNloptr(RPackage): version("1.2.1", sha256="1f86e33ecde6c3b0d2098c47591a9cd0fa41fb973ebf5145859677492730df97") version("1.0.4", sha256="84225b993cb1ef7854edda9629858662cc8592b0d1344baadea4177486ece1eb") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("r-testthat", when="@2.0.0:2.1.0") depends_on("nlopt@2.4.0:") depends_on("nlopt@2.7.0:", when="@2.0.0:") diff --git a/repos/spack_repo/builtin/packages/r_nmf/package.py b/repos/spack_repo/builtin/packages/r_nmf/package.py index cfc1cee0274..3f31595489f 100644 --- a/repos/spack_repo/builtin/packages/r_nmf/package.py +++ b/repos/spack_repo/builtin/packages/r_nmf/package.py @@ -25,6 +25,9 @@ class RNmf(RPackage): version("0.23.0", sha256="0f0cca01b37bf46fce90d2e951df609d3d377908aa607825083fd0c47cc24753") version("0.21.0", sha256="3b30c81c66066fab4a63c5611a0313418b840d8b63414db31ef0e932872d02e3") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r-registry", type=("build", "run")) depends_on("r-rngtools@1.2.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_nnet/package.py b/repos/spack_repo/builtin/packages/r_nnet/package.py index 8a0ddef6937..cfe06394caa 100644 --- a/repos/spack_repo/builtin/packages/r_nnet/package.py +++ b/repos/spack_repo/builtin/packages/r_nnet/package.py @@ -17,11 +17,14 @@ class RNnet(RPackage): license("GPL-2.0-only OR GPL-3.0-only") + version("7.3-20", sha256="8f33e17e0eb161cfbc1bfee4875baa23c66fcdba8215a64a63402b099db2b555") version("7.3-19", sha256="a9241f469270d3b03bbab7dc0d3c6a06a84010af16ba82fd3bd6660b35382ce7") version("7.3-18", sha256="d29aebfb5cb00071eecf754d55db5d474a6fda88860df5c9d31ba89aa8d9e3d0") version("7.3-17", sha256="ee750bb8164aa058edf93823af987ab2c7ec64128dce2abeaae1b7d3661e9a67") version("7.3-14", sha256="5d1b9e9764d74d16c651f18f949aa4e9e2995ba64633cbfa2c6a7355ae30f4af") version("7.3-12", sha256="2723523e8581cc0e2215435ac773033577a16087a3f41d111757dd96b8c5559d") - depends_on("r@2.14:", type=("build", "run")) + depends_on("c", type="build") + depends_on("r@3.0.0:", type=("build", "run"), when="@7.3-14:") + depends_on("r@2.14:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_nnls/package.py b/repos/spack_repo/builtin/packages/r_nnls/package.py index dc86008d4a4..1ddbac6c46b 100644 --- a/repos/spack_repo/builtin/packages/r_nnls/package.py +++ b/repos/spack_repo/builtin/packages/r_nnls/package.py @@ -20,3 +20,6 @@ class RNnls(RPackage): version("1.5", sha256="cd70feb286f86f6dead75da693a8f67c9bd3b91eb738e6e6ac659e3b8c7a3452") version("1.4", sha256="0e5d77abae12bc50639d34354f96a8e079408c9d7138a360743b73bd7bce6c1f") + + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_oligoclasses/package.py b/repos/spack_repo/builtin/packages/r_oligoclasses/package.py index cb12b994037..cb0d57cad87 100644 --- a/repos/spack_repo/builtin/packages/r_oligoclasses/package.py +++ b/repos/spack_repo/builtin/packages/r_oligoclasses/package.py @@ -16,16 +16,17 @@ class ROligoclasses(RPackage): bioc = "oligoClasses" - version("1.62.0", commit="2de6126d2a98f78d6dc80ffeef8bc76782a6dbdf") - version("1.60.0", commit="cf9d76c2551ad061d8b882ff1dc0a5cadc64a8a7") - version("1.58.0", commit="5544e937913bb0df54c66d738d279c38efeb30cd") - version("1.56.0", commit="6e6c7b4ba54095d1d3c44c081839f57af9261cbf") - version("1.52.0", commit="7995efbd2d26b8fa950830d62db92bdaf5cbeeea") - version("1.46.0", commit="325684f66fc92f778098f24bcfbef0ce3da9717c") - version("1.44.0", commit="d3e1134cdbea5f95b83215dc66e5f7b6a1cd0638") - version("1.42.0", commit="ef125700d487b470281a9c1e985390633c4dd2bd") - version("1.40.0", commit="32f40617e62d05c457baaebc7e27585b852848ed") - version("1.38.0", commit="fe2bb7f02c7ed3cbd338254c27ceba6ff829a962") + with default_args(get_full_repo=True): + version("1.62.0", commit="2de6126d2a98f78d6dc80ffeef8bc76782a6dbdf") + version("1.60.0", commit="cf9d76c2551ad061d8b882ff1dc0a5cadc64a8a7") + version("1.58.0", commit="5544e937913bb0df54c66d738d279c38efeb30cd") + version("1.56.0", commit="6e6c7b4ba54095d1d3c44c081839f57af9261cbf") + version("1.52.0", commit="7995efbd2d26b8fa950830d62db92bdaf5cbeeea") + version("1.46.0", commit="325684f66fc92f778098f24bcfbef0ce3da9717c") + version("1.44.0", commit="d3e1134cdbea5f95b83215dc66e5f7b6a1cd0638") + version("1.42.0", commit="ef125700d487b470281a9c1e985390633c4dd2bd") + version("1.40.0", commit="32f40617e62d05c457baaebc7e27585b852848ed") + version("1.38.0", commit="fe2bb7f02c7ed3cbd338254c27ceba6ff829a962") depends_on("r@2.14:", type=("build", "run")) depends_on("r-biocgenerics@0.3.2:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_openssl/package.py b/repos/spack_repo/builtin/packages/r_openssl/package.py index acb592aa071..33fde9aa918 100644 --- a/repos/spack_repo/builtin/packages/r_openssl/package.py +++ b/repos/spack_repo/builtin/packages/r_openssl/package.py @@ -25,6 +25,7 @@ class ROpenssl(RPackage): license("MIT") + version("2.4.0", sha256="75ccbde2e52fc3f13c146eab3d30aa3d3a80ab66fa203b9b40d09b1f2a0fcd85") version("2.2.1", sha256="25a12328d584212d8d4c095b3d2a71152c5d2bc4adda7a9addb25da01136f78d") version("2.0.6", sha256="77f3032a16270f0d1734f269b8d348eedc75b277812854386091143082c1b3f3") version("2.0.4", sha256="a1a5c65127c20c0ca3b46f2c4f4d3817276a887a231569537c1373e7740a5cec") diff --git a/repos/spack_repo/builtin/packages/r_ordinal/package.py b/repos/spack_repo/builtin/packages/r_ordinal/package.py index 7ab29d3e1d9..2edb37f7f91 100644 --- a/repos/spack_repo/builtin/packages/r_ordinal/package.py +++ b/repos/spack_repo/builtin/packages/r_ordinal/package.py @@ -37,6 +37,8 @@ class ROrdinal(RPackage): ) version("2019.4-25", sha256="2812ad7a123cae5dbe053d1fe5f2d9935afc799314077eac185c844e3c9d79df") + depends_on("c", type="build") # generated + depends_on("r@2.13.0:", type=("build", "run")) depends_on("r-ucminf", type=("build", "run")) depends_on("r-mass", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_organismdbi/package.py b/repos/spack_repo/builtin/packages/r_organismdbi/package.py index cd202ea09fa..529c0d1532c 100644 --- a/repos/spack_repo/builtin/packages/r_organismdbi/package.py +++ b/repos/spack_repo/builtin/packages/r_organismdbi/package.py @@ -17,17 +17,18 @@ class ROrganismdbi(RPackage): bioc = "OrganismDbi" - version("1.42.0", commit="29fcd5c47f8c479edac630a8e2a05ec5facb1328") - version("1.40.0", commit="fac971dabef3b6d2473d2061bc1723e3de59c9d7") - version("1.38.1", commit="fa8da4dd42ab15e1d21fd9f8286440596d50b1ec") - version("1.38.0", commit="2ca01830a6ffcd0c0018d2bdbd3de8b4df716771") - version("1.36.0", commit="3e7a90d248ff09f05ccd381ff921e12373a4b330") - version("1.32.0", commit="c8100c4fea17bf1b10d4efacc73a7e2866d649e3") - version("1.26.0", commit="495b4a8f8264d06d827537d43b3c6cc705244bb5") - version("1.24.0", commit="3428952dc0f267a01e256a1c0873656cfbfde7f8") - version("1.22.0", commit="24e953eb3847222d8018103b79b9fc72483cc513") - version("1.20.0", commit="d42e06a24777e5ffb966ad5addb4f46dfffa2269") - version("1.18.1", commit="ba2d1237256805e935d9534a0c6f1ded07b42e95") + with default_args(get_full_repo=True): + version("1.42.0", commit="29fcd5c47f8c479edac630a8e2a05ec5facb1328") + version("1.40.0", commit="fac971dabef3b6d2473d2061bc1723e3de59c9d7") + version("1.38.1", commit="fa8da4dd42ab15e1d21fd9f8286440596d50b1ec") + version("1.38.0", commit="2ca01830a6ffcd0c0018d2bdbd3de8b4df716771") + version("1.36.0", commit="3e7a90d248ff09f05ccd381ff921e12373a4b330") + version("1.32.0", commit="c8100c4fea17bf1b10d4efacc73a7e2866d649e3") + version("1.26.0", commit="495b4a8f8264d06d827537d43b3c6cc705244bb5") + version("1.24.0", commit="3428952dc0f267a01e256a1c0873656cfbfde7f8") + version("1.22.0", commit="24e953eb3847222d8018103b79b9fc72483cc513") + version("1.20.0", commit="d42e06a24777e5ffb966ad5addb4f46dfffa2269") + version("1.18.1", commit="ba2d1237256805e935d9534a0c6f1ded07b42e95") depends_on("r@2.14.0:", type=("build", "run")) depends_on("r-biocgenerics@0.15.10:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_osqp/package.py b/repos/spack_repo/builtin/packages/r_osqp/package.py index 725cfc023dc..20fc5ed91fc 100644 --- a/repos/spack_repo/builtin/packages/r_osqp/package.py +++ b/repos/spack_repo/builtin/packages/r_osqp/package.py @@ -23,6 +23,9 @@ class ROsqp(RPackage): version("0.6.0.8", sha256="14034045ae4ae5ec4eae4944653d41d94282fa85a0cd53614ac86f34fd02ed97") version("0.6.0.7", sha256="ee6584d02341e3f1d8fab3b2cb93defd6c48d561297d82a6bedb3e7541868203") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r-rcpp@0.12.14:", type=("build", "run")) depends_on("r-matrix", type=("build", "run")) depends_on("r-matrix@1.6-1:", type=("build", "run"), when="@0.6.3:") diff --git a/repos/spack_repo/builtin/packages/r_pan/package.py b/repos/spack_repo/builtin/packages/r_pan/package.py index 959c0f7255e..9471e51e4a0 100644 --- a/repos/spack_repo/builtin/packages/r_pan/package.py +++ b/repos/spack_repo/builtin/packages/r_pan/package.py @@ -25,4 +25,7 @@ class RPan(RPackage): version("1.6", sha256="adc0df816ae38bc188bce0aef3aeb71d19c0fc26e063107eeee71a81a49463b6") version("1.4", sha256="e6a83f0799cc9714f5052f159be6e82ececd013d1626f40c828cda0ceb8b76dc") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@2.10:", when="@1.9:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_parallelly/package.py b/repos/spack_repo/builtin/packages/r_parallelly/package.py index 4ac537ce9bb..d907e04f3f0 100644 --- a/repos/spack_repo/builtin/packages/r_parallelly/package.py +++ b/repos/spack_repo/builtin/packages/r_parallelly/package.py @@ -25,6 +25,8 @@ class RParallelly(RPackage): license("LGPL-2.1-or-later") + version("1.47.0", sha256="88c0f4515c71dfe70c3b22f488daa55d4c410865e0885e2df71fb6e3877797c4") + version("1.45.1", sha256="6b5d3c0487fd8f9b05d98077c08919dc282bc9046c305efe49b34487ffbf485d") version("1.38.0", sha256="632c823c64d1bb840b2a5ff2cb2f5ffc743d62d5090a3cde55a2ebdde230d1aa") version("1.35.0", sha256="3f5e9b6507196aab052c5e67f8b524b75aa356731c5eaffbadde76c967ad5dcd") version("1.32.1", sha256="31c685f59ac7ff702fe2720910780378113adf0df0baf048a62eef94524cca90") @@ -32,3 +34,5 @@ class RParallelly(RPackage): version("1.30.0", sha256="aab080cb709bab232b2d808053efb2391eeb30a2de9497cbe474c99df89f9f3b") version("1.28.1", sha256="f4ae883b18409adb83c561ed69427e740e1b50bf85ef57f48c3f2edf837cc663") version("1.23.0", sha256="376ce2381587380a4da60f9563710d63084a605f93aa364e9349f2523e83bc08") + + depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/r_party/package.py b/repos/spack_repo/builtin/packages/r_party/package.py index 7886e8ce788..99dfef5ac30 100644 --- a/repos/spack_repo/builtin/packages/r_party/package.py +++ b/repos/spack_repo/builtin/packages/r_party/package.py @@ -41,6 +41,8 @@ class RParty(RPackage): version("1.3-2", sha256="9f350fa21114151c49bccc3d5f8536dbc5a608cfd88f60461c9805a4c630510b") version("1.1-2", sha256="c3632b4b02dc12ec949e2ee5b24004e4a4768b0bc9737432e9a85acbc2ed0e74") + depends_on("c", type="build") # generated + depends_on("r@2.14.0:", type=("build", "run")) depends_on("r@3.0.0:", type=("build", "run"), when="@1.2-3:") depends_on("r-mvtnorm@1.0-2:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_patchwork/package.py b/repos/spack_repo/builtin/packages/r_patchwork/package.py index 201f91a29ff..3d30677bc08 100644 --- a/repos/spack_repo/builtin/packages/r_patchwork/package.py +++ b/repos/spack_repo/builtin/packages/r_patchwork/package.py @@ -21,11 +21,20 @@ class RPatchwork(RPackage): license("MIT") + version("1.3.2", sha256="0ec469acfd69d1a4f1a6317c861e6bf000f768c2d5047e3aed6713df9afe27eb") version("1.2.0", sha256="cc31ea13560c424de9bfe2287d926a7d9e6cc8da2d5561402bb145b4f51b68a1") version("1.1.2", sha256="dab9d5d2d704d591717eaa6efeacf09cb6cd7bee2ca2c46d18414e8503ac8977") version("1.1.1", sha256="cf0d7d9f92945729b499d6e343441c55007d5b371206d5389b9e5154dc7cf481") depends_on("r-ggplot2@3.0.0:", type=("build", "run")) + # https://github.com/thomasp85/patchwork/issues/454#issuecomment-3430577354 + depends_on("r-ggplot2@3.5.2:", type=("build", "run"), when="@1.3.2:") + depends_on("r-gtable", type=("build", "run")) - depends_on("r-cli", type=("build", "run"), when="@1.1.3:") + depends_on("r-gtable@0.3.6:", type=("build", "run"), when="@1.3.2:") + depends_on("r-rlang", type=("build", "run"), when="@1.1.3:") + depends_on("r-rlang@1.0.0:", type=("build", "run"), when="@1.3.2:") + + depends_on("r-cli", type=("build", "run"), when="@1.1.3:") + depends_on("r-farver", type=("build", "run"), when="@1.3.2:") diff --git a/repos/spack_repo/builtin/packages/r_pathview/package.py b/repos/spack_repo/builtin/packages/r_pathview/package.py index 357674d0318..149e8e312a6 100644 --- a/repos/spack_repo/builtin/packages/r_pathview/package.py +++ b/repos/spack_repo/builtin/packages/r_pathview/package.py @@ -21,17 +21,18 @@ class RPathview(RPackage): bioc = "pathview" - version("1.40.0", commit="6546c6139f797bdff2fcc0645030a5de3588f2eb") - version("1.38.0", commit="8229376ffd45278b74a6e4ccfb3abea8992667f7") - version("1.36.1", commit="f2e86b106c1cd91aac703337f968b7593a61c68d") - version("1.36.0", commit="4f6be090a4089b5259d8e796d62f9830e2d63943") - version("1.34.0", commit="a8788902a3bb047f8ee785966e57f84596076bbd") - version("1.30.1", commit="a6a32395db408798cb076894678e90148bae6bf4") - version("1.24.0", commit="e4401c1425c980ce2e6e478a4602a9f6d36ccd8d") - version("1.22.3", commit="ff86f9e166a5b03bbed1a0ad276778958c3045ce") - version("1.20.0", commit="a195afa6ba6c7917af2c7f77170f0644c46880c7") - version("1.18.2", commit="d2048981696564ec75f661ed665977d3a6e09188") - version("1.16.7", commit="fc560ed15ef7393a73d35e714716cc24dc835339") + with default_args(get_full_repo=True): + version("1.40.0", commit="6546c6139f797bdff2fcc0645030a5de3588f2eb") + version("1.38.0", commit="8229376ffd45278b74a6e4ccfb3abea8992667f7") + version("1.36.1", commit="f2e86b106c1cd91aac703337f968b7593a61c68d") + version("1.36.0", commit="4f6be090a4089b5259d8e796d62f9830e2d63943") + version("1.34.0", commit="a8788902a3bb047f8ee785966e57f84596076bbd") + version("1.30.1", commit="a6a32395db408798cb076894678e90148bae6bf4") + version("1.24.0", commit="e4401c1425c980ce2e6e478a4602a9f6d36ccd8d") + version("1.22.3", commit="ff86f9e166a5b03bbed1a0ad276778958c3045ce") + version("1.20.0", commit="a195afa6ba6c7917af2c7f77170f0644c46880c7") + version("1.18.2", commit="d2048981696564ec75f661ed665977d3a6e09188") + version("1.16.7", commit="fc560ed15ef7393a73d35e714716cc24dc835339") depends_on("r+X", type=("build", "run")) depends_on("r@2.10:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_pbapply/package.py b/repos/spack_repo/builtin/packages/r_pbapply/package.py index 82739496098..f67d9d080db 100644 --- a/repos/spack_repo/builtin/packages/r_pbapply/package.py +++ b/repos/spack_repo/builtin/packages/r_pbapply/package.py @@ -20,6 +20,7 @@ class RPbapply(RPackage): license("GPL-2.0-or-later") + version("1.7-4", sha256="6a5c7110a6bf13735374d3b2e75b32ec0e0f0276ad95e928d2c802b53ff1302d") version("1.7-2", sha256="aeed8c8c308c7e3827daf10b01b8ed4b88c1d68cea57d72d67c600c0ce0dae13") version("1.7-0", sha256="64b8e931e0a09031c20b66173ce80a646043b8f135d329bc86226a11c6b706c0") version("1.5-0", sha256="effdfee286e5ba9534dc2ac3cee96590a37f5cd2af28c836d00c25ca9f070a55") diff --git a/repos/spack_repo/builtin/packages/r_pbdzmq/package.py b/repos/spack_repo/builtin/packages/r_pbdzmq/package.py index 6b01ec25435..6c2a88450f4 100644 --- a/repos/spack_repo/builtin/packages/r_pbdzmq/package.py +++ b/repos/spack_repo/builtin/packages/r_pbdzmq/package.py @@ -23,6 +23,7 @@ class RPbdzmq(RPackage): license("GPL-3.0-or-later") + version("0.3-14", sha256="60154f66db9378655d7c39c8c2e02e74ac6bd801a9aac1bc73003c7eeeb23223") version("0.3-11", sha256="da7e204d857370201f75a05fbd808a2f409d440cc96855bb8f48f4a5dd75405b") version("0.3-9", sha256="d033238d0a9810581f6b40c7c75263cfc495a585653bbff98e957c37954e0fb6") version("0.3-8", sha256="eded4ccf6ee54a59e06061f1c6e67a8ec36e03c6ab2318af64446d8f95505465") diff --git a/repos/spack_repo/builtin/packages/r_pbkrtest/package.py b/repos/spack_repo/builtin/packages/r_pbkrtest/package.py index 49b22afc620..5ac3b1dd25f 100644 --- a/repos/spack_repo/builtin/packages/r_pbkrtest/package.py +++ b/repos/spack_repo/builtin/packages/r_pbkrtest/package.py @@ -25,6 +25,7 @@ class RPbkrtest(RPackage): license("GPL-2.0-or-later") + version("0.5.5", sha256="d26c8ef0a6fd73bba184bde8e3434439d62539d93aef0a0b5b480a0f309bc51b") version("0.5.3", sha256="b03e5156fef6a4a2ea67c1d15c051799e63acafef2f89962c580645266e6ba63") version("0.5.2", sha256="8e79adf035a0fcf3c82145ad55847497379e009f7be880ba3007ebeb2e69b6e3") version("0.5.1", sha256="b2a3452003d93890f122423b3f2487dcb6925440f5b8a05578509e98b6aec7c5") @@ -33,18 +34,23 @@ class RPbkrtest(RPackage): version("0.4-6", sha256="9d28b8916fea3ffec8d5958bb8c531279b1e273f21fdbeb2fcad6d7e300a9c01") version("0.4-4", sha256="a685392ef3fca0ddc2254f6cc9bba6bc22b298fa823359fc4515e64e753abd31") - depends_on("r@3.0.2:", type=("build", "run")) - depends_on("r@3.2.3:", type=("build", "run"), when="@0.4-6:") - depends_on("r@3.5.0:", type=("build", "run"), when="@0.5-0.1:") - depends_on("r@4.1.0:", type=("build", "run"), when="@0.5.2:") - depends_on("r@4.2.0:", type=("build", "run"), when="@0.5.3:") - depends_on("r-lme4@1.1-10:", type=("build", "run")) - depends_on("r-lme4@1.1-31:", type=("build", "run"), when="@0.5.2:") - depends_on("r-broom", type=("build", "run"), when="@0.5-0.1:") - depends_on("r-doby", type=("build", "run"), when="@0.5.3:") - depends_on("r-dplyr", type=("build", "run"), when="@0.5-0.1:") - depends_on("r-mass", type=("build", "run")) - depends_on("r-matrix@1.2-3:", type=("build", "run")) - depends_on("r-numderiv", type=("build", "run"), when="@0.5-0.1:") - depends_on("r-knitr", type=("build", "run"), when="@0.5-0.1:0.5.1") - depends_on("r-magrittr", type=("build", "run"), when="@0.5-0.1:0.5.1") + with default_args(type=("build", "run")): + depends_on("r@4.2.0:", when="@0.5.3:") + depends_on("r@4.1.0:", when="@0.5.2:") + depends_on("r@3.5.0:", when="@0.5-0.1:") + depends_on("r@3.2.3:", when="@0.4-6:") + depends_on("r@3.0.2:") + + depends_on("r-lme4@1.1-31:", when="@0.5.2:") + depends_on("r-lme4@1.1-10:") + depends_on("r-broom", when="@0.5-0.1:") + depends_on("r-dplyr", when="@0.5-0.1:") + depends_on("r-mass") + depends_on("r-numderiv", when="@0.5-0.1:") + depends_on("r-matrix@1.2-3:") + depends_on("r-doby@4.6.22:", when="@0.5.4:") + depends_on("r-doby", when="@0.5.3:") + + # Historical dependencies + depends_on("r-knitr", when="@0.5-0.1:0.5.1") + depends_on("r-magrittr", when="@0.5-0.1:0.5.1") diff --git a/repos/spack_repo/builtin/packages/r_pcamethods/package.py b/repos/spack_repo/builtin/packages/r_pcamethods/package.py index cbd18d963a5..7c7f9ad0d20 100644 --- a/repos/spack_repo/builtin/packages/r_pcamethods/package.py +++ b/repos/spack_repo/builtin/packages/r_pcamethods/package.py @@ -24,16 +24,17 @@ class RPcamethods(RPackage): license("GPL-2.0-or-later") - version("1.92.0", commit="ecbbc5b96b8fa79342611af8f798dd43c36d6699") - version("1.90.0", commit="52474bc6d125122e89834328a1a780988349756f") - version("1.88.0", commit="02fb58d6fe35579b86fb2ebd2eaf92e6b53444d2") - version("1.86.0", commit="9419cfa18c18dfbd1e1194127fd120ab456c3657") - version("1.82.0", commit="d500b3363308f1f8ca70625c5cd10cce59b27641") - version("1.76.0", commit="5db995330ced37dfd5ddad6ad1d90b4815d3127a") - version("1.74.0", commit="1b8f0a5cdfe3664119d0d7e926a2e0fe7320133c") - version("1.72.0", commit="1bb8c7d056645e62ee5179f6bb30b6594ebf3bfd") - version("1.70.0", commit="3368fad48ea930775505fd26e4179d7714d633d8") - version("1.68.0", commit="c8d7c93dcaf7ef728f3d089ae5d55771b320bdab") + with default_args(get_full_repo=True): + version("1.92.0", commit="ecbbc5b96b8fa79342611af8f798dd43c36d6699") + version("1.90.0", commit="52474bc6d125122e89834328a1a780988349756f") + version("1.88.0", commit="02fb58d6fe35579b86fb2ebd2eaf92e6b53444d2") + version("1.86.0", commit="9419cfa18c18dfbd1e1194127fd120ab456c3657") + version("1.82.0", commit="d500b3363308f1f8ca70625c5cd10cce59b27641") + version("1.76.0", commit="5db995330ced37dfd5ddad6ad1d90b4815d3127a") + version("1.74.0", commit="1b8f0a5cdfe3664119d0d7e926a2e0fe7320133c") + version("1.72.0", commit="1bb8c7d056645e62ee5179f6bb30b6594ebf3bfd") + version("1.70.0", commit="3368fad48ea930775505fd26e4179d7714d633d8") + version("1.68.0", commit="c8d7c93dcaf7ef728f3d089ae5d55771b320bdab") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_pcapp/package.py b/repos/spack_repo/builtin/packages/r_pcapp/package.py index b396fe8b2c7..e15e2bca065 100644 --- a/repos/spack_repo/builtin/packages/r_pcapp/package.py +++ b/repos/spack_repo/builtin/packages/r_pcapp/package.py @@ -30,5 +30,8 @@ class RPcapp(RPackage): version("1.9-60", sha256="9a4b471957ac39ed7c860e3165bf8e099b5b55cf814654adb58f9d19df2718e7") version("1.9-50", sha256="137637314fba6e11883c63b0475d8e50aa7f363e064baa1e70245f7692565b56") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.6.2:", type=("build", "run"), when="@2.0-4:") depends_on("r-mvtnorm", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_pegas/package.py b/repos/spack_repo/builtin/packages/r_pegas/package.py index 39fbed248f4..2a6374faf19 100644 --- a/repos/spack_repo/builtin/packages/r_pegas/package.py +++ b/repos/spack_repo/builtin/packages/r_pegas/package.py @@ -28,6 +28,8 @@ class RPegas(RPackage): version("1.1", sha256="87ba91a819496dfc3abdcc792ff853a6d49caae6335598a24c23e8851505ed59") version("0.14", sha256="7df90e6c4a69e8dbed2b3f68b18f1975182475bf6f86d4159256b52fd5332053") + depends_on("c", type="build") # generated + depends_on("r@3.2.0:", type=("build", "run")) depends_on("r-ape@5.3-11:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_pepxmltab/package.py b/repos/spack_repo/builtin/packages/r_pepxmltab/package.py new file mode 100644 index 00000000000..4004a1aae3d --- /dev/null +++ b/repos/spack_repo/builtin/packages/r_pepxmltab/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.r import RPackage + +from spack.package import * + + +class RPepxmltab(RPackage): + """pepXMLTab: Parsing pepXML files and filter based on peptide FDR""" + + bioc = "pepXMLTab" + + with default_args(get_full_repo=True): + version("1.46.0", commit="a49de2215c3801a932d52aae976835b471946ae0") + + depends_on("r@3.0.1:", type=("build", "run")) + depends_on("r-xml@3.98-1.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_philentropy/package.py b/repos/spack_repo/builtin/packages/r_philentropy/package.py index 1ea4b8b9e1f..d5d64ddb2c2 100644 --- a/repos/spack_repo/builtin/packages/r_philentropy/package.py +++ b/repos/spack_repo/builtin/packages/r_philentropy/package.py @@ -29,6 +29,8 @@ class RPhilentropy(RPackage): version("0.5.0", sha256="b39e9a825458f3377e23b2a133180566780e89019e9d22a6a5b7ca87c49c412f") version("0.4.0", sha256="bfd30bf5635aab6a82716299a87d44cf96c7ab7f4ee069843869bcc85c357127") + depends_on("cxx", type="build") # generated + depends_on("r@3.1.2:", type=("build", "run")) depends_on("r-rcpp", type=("build", "run")) depends_on("r-kernsmooth", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_phylobase/package.py b/repos/spack_repo/builtin/packages/r_phylobase/package.py index bc94ce32c81..720bc5e5123 100644 --- a/repos/spack_repo/builtin/packages/r_phylobase/package.py +++ b/repos/spack_repo/builtin/packages/r_phylobase/package.py @@ -20,6 +20,9 @@ class RPhylobase(RPackage): version("0.8.12", sha256="9b81ca60dc6215e74b720880cc2db3abc1f7e6d8785ea7d7df95a950f0778f20") version("0.8.10", sha256="5a44380ff49bab333a56f6f96157324ade8afb4af0730e013194c4badb0bf94b") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r-ade4", type=("build", "run")) depends_on("r-ape@3.0:", type=("build", "run")) depends_on("r-rcpp@0.11.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_phyloseq/package.py b/repos/spack_repo/builtin/packages/r_phyloseq/package.py index f8294d77b7b..f92779212ee 100644 --- a/repos/spack_repo/builtin/packages/r_phyloseq/package.py +++ b/repos/spack_repo/builtin/packages/r_phyloseq/package.py @@ -17,16 +17,17 @@ class RPhyloseq(RPackage): license("LiLiQ-R-1.1") - version("1.44.0", commit="03b74f7d7aa866f5f9a84c7368da57b7a168967e") - version("1.42.0", commit="de6be71fe9902bdfe7791163acb7b67d238424dc") - version("1.40.0", commit="20bb27d5e6e0d4368978a15671b829990b1f4568") - version("1.38.0", commit="1e2409a6ed3c23e308275098c2dc9fdba9d5e5f6") - version("1.34.0", commit="cbed93ead5528fe9024d646c597dab9fc95952d3") - version("1.28.0", commit="a86ed1e0a650fdf80bee5a0a5a82aaa5a276178d") - version("1.26.1", commit="a084072bc9e057b90adfbd59e27db2a1ecee151c") - version("1.24.2", commit="829992f88c79de48bb8749678624e2bbd3b66645") - version("1.22.3", commit="c695323f2963636d16acda9f05a583bd58e31344") - version("1.20.0", commit="107d1d5e3437a6e33982c06a548d3cc91df2a7e0") + with default_args(get_full_repo=True): + version("1.44.0", commit="03b74f7d7aa866f5f9a84c7368da57b7a168967e") + version("1.42.0", commit="de6be71fe9902bdfe7791163acb7b67d238424dc") + version("1.40.0", commit="20bb27d5e6e0d4368978a15671b829990b1f4568") + version("1.38.0", commit="1e2409a6ed3c23e308275098c2dc9fdba9d5e5f6") + version("1.34.0", commit="cbed93ead5528fe9024d646c597dab9fc95952d3") + version("1.28.0", commit="a86ed1e0a650fdf80bee5a0a5a82aaa5a276178d") + version("1.26.1", commit="a084072bc9e057b90adfbd59e27db2a1ecee151c") + version("1.24.2", commit="829992f88c79de48bb8749678624e2bbd3b66645") + version("1.22.3", commit="c695323f2963636d16acda9f05a583bd58e31344") + version("1.20.0", commit="107d1d5e3437a6e33982c06a548d3cc91df2a7e0") depends_on("r@3.3.0:", type=("build", "run")) depends_on("r@3.4.0:", type=("build", "run"), when="@1.22.3") diff --git a/repos/spack_repo/builtin/packages/r_pillar/package.py b/repos/spack_repo/builtin/packages/r_pillar/package.py index eb4a71ee51f..a0671e95b22 100644 --- a/repos/spack_repo/builtin/packages/r_pillar/package.py +++ b/repos/spack_repo/builtin/packages/r_pillar/package.py @@ -17,6 +17,7 @@ class RPillar(RPackage): license("MIT") + version("1.11.1", sha256="056ce154238c9b5b8d5dcbcb52e1bc51d33870ce08c8a9ca9496478bd59f4653") version("1.9.0", sha256="f23eb486c087f864c2b4072d5cba01d5bebf2f554118bcba6886d8dbceb87acc") version("1.8.1", sha256="2f06a7cc9e5638390c9b98a6ec9a9ec1beec0f2b9dbdfa42e39a5ab2456d87ec") version("1.7.0", sha256="7841f89658cc8935568c0ff24dc480b4481bac896de2f6447050abc4360a13bb") @@ -35,19 +36,21 @@ class RPillar(RPackage): version("1.0.1", sha256="7b37189ab9ab0bbf2e6f49e9d5e678acb31500739d3c3ea2b5326b457716277d") version("1.0.0", sha256="7478d0765212c5f0333b8866231a6fe350393b7fa49840e6fed3516ac64540dc") - depends_on("r-cli", type=("build", "run")) - depends_on("r-cli@2.3.0:", type=("build", "run"), when="@1.7.0:") - depends_on("r-fansi", type=("build", "run")) - depends_on("r-glue", type=("build", "run"), when="@1.6.5:") - depends_on("r-lifecycle", type=("build", "run"), when="@1.4.7:") - depends_on("r-rlang@0.3.0:", type=("build", "run")) - depends_on("r-rlang@1.0.2:", type=("build", "run"), when="@1.8.1:") - depends_on("r-utf8@1.1.0:", type=("build", "run")) - depends_on("r-vctrs", type=("build", "run"), when="@1.4.0:") - depends_on("r-vctrs@0.2.0:", type=("build", "run"), when="@1.4.7:") - depends_on("r-vctrs@0.3.8:", type=("build", "run"), when="@1.6.1:") - depends_on("r-vctrs@0.5.0:", type=("build", "run"), when="@1.9.0:") - - depends_on("r-crayon@1.3.4:", type=("build", "run"), when="@:1.7.0") - depends_on("r-ellipsis", type=("build", "run"), when="@1.4.7:1.7.0") - depends_on("r-ellipsis@0.3.2", type=("build", "run"), when="@1.6.1:1.7.0") + with default_args(type=("build", "run")): + depends_on("r-cli@2.3.0:", when="@1.7.0:") + depends_on("r-cli") + depends_on("r-glue", when="@1.6.5:") + depends_on("r-lifecycle", when="@1.4.7:") + depends_on("r-rlang@1.0.2:", when="@1.8.1:") + depends_on("r-rlang@0.3.0:") + depends_on("r-utf8@1.1.0:") + depends_on("r-vctrs@0.5.0:", when="@1.9.0:") + depends_on("r-vctrs@0.3.8:", when="@1.6.1:") + depends_on("r-vctrs@0.2.0:", when="@1.4.7:") + depends_on("r-vctrs", when="@1.4.0:") + + # Historical dependencies + depends_on("r-crayon@1.3.4:", when="@:1.7.0") + depends_on("r-ellipsis@0.3.2", when="@1.6.1:1.7.0") + depends_on("r-ellipsis", when="@1.4.7:1.7.0") + depends_on("r-fansi", when="@:1.9") diff --git a/repos/spack_repo/builtin/packages/r_pkgbuild/package.py b/repos/spack_repo/builtin/packages/r_pkgbuild/package.py index ca6546cbd1f..255c767b2c2 100644 --- a/repos/spack_repo/builtin/packages/r_pkgbuild/package.py +++ b/repos/spack_repo/builtin/packages/r_pkgbuild/package.py @@ -18,6 +18,7 @@ class RPkgbuild(RPackage): license("MIT") + version("1.4.8", sha256="2e4259202ce90fc452f31ff36cfe14ff21a38e9fd71c3015e25018b9079924cb") version("1.4.4", sha256="5972843cd43654715cdbdd28f50af013fa3d1c213146654992b2b5f39ed0e2a8") version("1.4.0", sha256="357f3c40c99650eaa8a715991ff1355a553acb165f217ed204712f698ba55ed6") version("1.3.1", sha256="7c6a82d1e6b19e136a7d16095743c50cd7b6340eeda594e4a8e14d74972ddb48") @@ -26,19 +27,24 @@ class RPkgbuild(RPackage): version("1.0.4", sha256="2934efa5ff9ccfe1636d360aedec36713f3bb3128a493241dbb728d842ea3b5f") version("1.0.3", sha256="c93aceb499886e42bcd61eb7fb59e47a76c9ba5ab5349a426736d46c8ce21f4d") - depends_on("r@3.1:", type=("build", "run")) - depends_on("r@3.4:", type=("build", "run"), when="@1.4.0:") - depends_on("r@3.5:", type=("build", "run"), when="@1.4.3:") - depends_on("r-callr@2.0.0:", type=("build", "run")) - depends_on("r-callr@3.2.0:", type=("build", "run"), when="@1.0.4:") - depends_on("r-cli", type=("build", "run")) - depends_on("r-cli@3.4.0:", type=("build", "run"), when="@1.4.0:") - depends_on("r-desc", type=("build", "run")) - depends_on("r-processx", type=("build", "run"), when="@1.4.0:") - depends_on("r-r6", type=("build", "run")) - - depends_on("r-crayon", type=("build", "run"), when="@:1.4.2") - depends_on("r-prettyunits", type=("build", "run"), when="@:1.4.2") - depends_on("r-rprojroot", type=("build", "run"), when="@:1.4.2") - depends_on("r-withr@2.1.2:", type=("build", "run"), when="@:1.4.0") - depends_on("r-withr@2.3.0:", type=("build", "run"), when="@1.3.1:1.4.0") + depends_on("c", type="build") # generated + + with default_args(type=("build", "run")): + depends_on("r@3.5:", when="@1.4.3:") + depends_on("r@3.4:", when="@1.4.0:") + depends_on("r@3.1:") + + depends_on("r-callr@3.2.0:", when="@1.0.4:") + depends_on("r-callr@2.0.0:") + depends_on("r-cli@3.4.0:", when="@1.4.0:") + depends_on("r-cli") + depends_on("r-desc") + depends_on("r-processx", when="@1.4.0:") + depends_on("r-r6") + + # Historical dependencies + depends_on("r-crayon", when="@:1.4.2") + depends_on("r-prettyunits", when="@:1.4.2") + depends_on("r-rprojroot", when="@:1.4.2") + depends_on("r-withr@2.3.0:", when="@1.3.1:1.4.0") + depends_on("r-withr@2.1.2:", when="@:1.4.0") diff --git a/repos/spack_repo/builtin/packages/r_pkgcache/package.py b/repos/spack_repo/builtin/packages/r_pkgcache/package.py index f8964c1ae5e..0d62a228190 100644 --- a/repos/spack_repo/builtin/packages/r_pkgcache/package.py +++ b/repos/spack_repo/builtin/packages/r_pkgcache/package.py @@ -25,6 +25,8 @@ class RPkgcache(RPackage): version("2.0.1", sha256="1add648c6f30543cbd5e43369c4d1462248d4caaedfcb588ee7b946a75d42f4f") version("1.3.0", sha256="bd5f460a3bee9fc1298cf9f747bc59a6b9fbed90e92454bc6ea6bf82c15b9471") + depends_on("c", type="build") # generated + depends_on("r@3.1:", type=("build", "run")) depends_on("r@3.4:", type=("build", "run"), when="@2.0.2:") depends_on("r-callr@2.0.4.9000:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_pkgdepends/package.py b/repos/spack_repo/builtin/packages/r_pkgdepends/package.py index eca878edc30..8eae0b3f2c2 100644 --- a/repos/spack_repo/builtin/packages/r_pkgdepends/package.py +++ b/repos/spack_repo/builtin/packages/r_pkgdepends/package.py @@ -29,6 +29,8 @@ class RPkgdepends(RPackage): version("0.3.1", sha256="8e4263a1792871ee9629b0d6a8caeb53b77012db3b5be91b432f3553cd2a80be") version("0.2.0", sha256="59afdbe0e59663088ba4facac5cd011a0a05b0b9c540103fb8b9f0a673bf4d94") + depends_on("c", type="build") # generated + depends_on("r@3.4:", type=("build", "run"), when="@0.3.1:") depends_on("r@3.5:", type=("build", "run"), when="@0.7.0:") depends_on("r-callr@3.3.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_pkgload/package.py b/repos/spack_repo/builtin/packages/r_pkgload/package.py index 0816e646af0..f9691c35d70 100644 --- a/repos/spack_repo/builtin/packages/r_pkgload/package.py +++ b/repos/spack_repo/builtin/packages/r_pkgload/package.py @@ -29,6 +29,9 @@ class RPkgload(RPackage): version("1.1.0", sha256="189d460dbba2b35fa15dd59ce832df252dfa654a5acee0c9a8471b4d70477b0d") version("1.0.2", sha256="3186564e690fb05eabe76e1ac0bfd4312562c3ac8794b29f8850399515dcf27c") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.4.0:", type=("build", "run"), when="@1.3.0:") depends_on("r-cli", type=("build", "run"), when="@1.1.0:") diff --git a/repos/spack_repo/builtin/packages/r_pki/package.py b/repos/spack_repo/builtin/packages/r_pki/package.py index 3c01a354ab3..21815ae5fe5 100644 --- a/repos/spack_repo/builtin/packages/r_pki/package.py +++ b/repos/spack_repo/builtin/packages/r_pki/package.py @@ -19,5 +19,7 @@ class RPki(RPackage): version("0.1-14", sha256="c024e81977b978b705460df96639e3369420bd7e8f4f3242ec796255dc1b7966") + depends_on("c", type="build") # generated + depends_on("r@2.9.0:", type=("build", "run")) depends_on("r-base64enc", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_plyr/package.py b/repos/spack_repo/builtin/packages/r_plyr/package.py index a566ec14ed4..b020460eafc 100644 --- a/repos/spack_repo/builtin/packages/r_plyr/package.py +++ b/repos/spack_repo/builtin/packages/r_plyr/package.py @@ -28,5 +28,8 @@ class RPlyr(RPackage): version("1.8.6", sha256="ea55d26f155443e9774769531daa5d4c20a0697bb53abd832e891b126c935287") version("1.8.4", sha256="60b522d75961007658c9806f8394db27989f1154727cb0bb970062c96ec9eac5") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("r@3.1.0:", type=("build", "run")) depends_on("r-rcpp@0.11.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_pmcmrplus/package.py b/repos/spack_repo/builtin/packages/r_pmcmrplus/package.py index 64f107e964d..83a07bb415d 100644 --- a/repos/spack_repo/builtin/packages/r_pmcmrplus/package.py +++ b/repos/spack_repo/builtin/packages/r_pmcmrplus/package.py @@ -42,6 +42,9 @@ class RPmcmrplus(RPackage): version("1.9.4", sha256="1ec36674bb6d2fac3a1b0889c4672e40849c7e3565ffb34bb73b61f973bba19a") version("1.9.3", sha256="76baba60f57343fa5bb6f6d2ea27aab77178e02b0d2f9d5d74abde7d18994f03") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-mvtnorm@1.0:", type=("build", "run")) depends_on("r-multcompview", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_polspline/package.py b/repos/spack_repo/builtin/packages/r_polspline/package.py index cb28cbc1b4e..556eb9f4591 100644 --- a/repos/spack_repo/builtin/packages/r_polspline/package.py +++ b/repos/spack_repo/builtin/packages/r_polspline/package.py @@ -26,3 +26,6 @@ class RPolspline(RPackage): version("1.1.17", sha256="d67b269d01105d4a6ea774737e921e66e065a859d1931ae38a70f88b6fb7ee30") version("1.1.16", sha256="aa3b5a1560008a1a401a65a25f19a27ba6f0a6ea185b6d093acd40e4e2818934") version("1.1.15", sha256="8cdbaa5ee672055a4d02f965025199ce764958f84bfa159e853feba7ee24faa7") + + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_polyclip/package.py b/repos/spack_repo/builtin/packages/r_polyclip/package.py index 346e48ae6aa..b98ad4eaa03 100644 --- a/repos/spack_repo/builtin/packages/r_polyclip/package.py +++ b/repos/spack_repo/builtin/packages/r_polyclip/package.py @@ -26,5 +26,8 @@ class RPolyclip(RPackage): version("1.10-4", sha256="84d2c9778771d3759b49d7d16fb54c8ddc5397da3b1d21074bc4aa42c02e6f56") version("1.10-0", sha256="74dabc0dfe5a527114f0bb8f3d22f5d1ae694e6ea9345912909bae885525d34b") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@1.10-7:") diff --git a/repos/spack_repo/builtin/packages/r_popgenome/package.py b/repos/spack_repo/builtin/packages/r_popgenome/package.py index 31fe7c20bab..a55ad8a00f3 100644 --- a/repos/spack_repo/builtin/packages/r_popgenome/package.py +++ b/repos/spack_repo/builtin/packages/r_popgenome/package.py @@ -23,6 +23,9 @@ class RPopgenome(RPackage): version("2.7.1", sha256="a84903b151528fa026ccaba42ada22cd89babbc1824afd40269b7204e488a5fa") version("2.6.1", sha256="7a2922ed505fa801117a153e479d246bcf4854b91c6ab0241acc620a9d779b1c") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@2.14.2:", type=("build", "run")) depends_on("r-ff", type=("build", "run")) depends_on("zlib-api") diff --git a/repos/spack_repo/builtin/packages/r_posterior/package.py b/repos/spack_repo/builtin/packages/r_posterior/package.py index 0b3edd5324d..2626336d70f 100644 --- a/repos/spack_repo/builtin/packages/r_posterior/package.py +++ b/repos/spack_repo/builtin/packages/r_posterior/package.py @@ -24,6 +24,7 @@ class RPosterior(RPackage): license("BSD-3-Clause") + version("1.7.0", sha256="430305bcceea4c09e04935e9b48ac1510fed88e89caded882846dc0d225780dc") version("1.6.0", sha256="34612a39fb15a8e3ba6ef5c32a041a4b5f77554216dd774563f46db1150bf40c") version("1.4.1", sha256="2b8953fa8d6890a105521023c431ddea725465eb95cf9454a88852e43ebb58d3") version("1.3.1", sha256="7000780290a24be86dbc406dd4338aec622d8dee1e471b68b55abb4872934d7a") @@ -31,16 +32,18 @@ class RPosterior(RPackage): version("1.2.0", sha256="2ba01711a98448acc939cf506d22e8ee4cf680cdcea873226671fa8ae6934386") version("1.1.0", sha256="eff6262dbcc1bf18337f535b0c75ba2fe360322e8b170c466e24ed3ee76cf4d2") - depends_on("r@3.2.0:", type=("build", "run")) - depends_on("r-abind", type=("build", "run")) - depends_on("r-checkmate", type=("build", "run")) - depends_on("r-rlang@0.4.7:", type=("build", "run")) - depends_on("r-rlang@1.0.6:", type=("build", "run"), when="@1.4.1:") - depends_on("r-tibble@3.0.0:", type=("build", "run")) - depends_on("r-tibble@3.1.0:", type=("build", "run"), when="@1.4.1:") - depends_on("r-vctrs", type=("build", "run")) - depends_on("r-vctrs@0.5.0:", type=("build", "run"), when="@1.4.1:") - depends_on("r-tensora", type=("build", "run")) - depends_on("r-pillar", type=("build", "run")) - depends_on("r-distributional", type=("build", "run")) - depends_on("r-matrixstats", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("r@3.2.0:") + + depends_on("r-abind") + depends_on("r-checkmate") + depends_on("r-rlang@1.0.6:", when="@1.4.1:") + depends_on("r-rlang@0.4.7:") + depends_on("r-tibble@3.1.0:", when="@1.4.1:") + depends_on("r-tibble@3.0.0:") + depends_on("r-vctrs@0.5.0:", when="@1.4.1:") + depends_on("r-vctrs") + depends_on("r-tensora") + depends_on("r-pillar") + depends_on("r-distributional") + depends_on("r-matrixstats") diff --git a/repos/spack_repo/builtin/packages/r_preprocesscore/package.py b/repos/spack_repo/builtin/packages/r_preprocesscore/package.py index e5bab6f88b1..084858d9ac1 100644 --- a/repos/spack_repo/builtin/packages/r_preprocesscore/package.py +++ b/repos/spack_repo/builtin/packages/r_preprocesscore/package.py @@ -14,15 +14,16 @@ class RPreprocesscore(RPackage): bioc = "preprocessCore" - version("1.62.0", commit="a6e3d339bc8204d15db4e750bd98f0313490b658") - version("1.60.0", commit="7f62a7d54776a21ab6c2d3df4668382d531d1ee8") - version("1.58.0", commit="2995e3e1a8f428a80aee200db42ee44743d893f6") - version("1.56.0", commit="8f3272219507aa85e0c876fb434dc3b926c22c5d") - version("1.52.1", commit="91de4ab67315dc2af68554ae3c48823f4b1ea8ac") - version("1.46.0", commit="8cfc3938c1b08424587f437ed6cd2ec43512500e") - version("1.44.0", commit="dc1dc61fc562aaff3fd9b11ab0d48c2d6b3a5b81") - version("1.42.0", commit="2e3a8baeacfaa1526d51252642772ea951015bba") - version("1.40.0", commit="969bb0e5cbd63d569502ae4e6eaadc1e216646dd") - version("1.38.1", commit="c58cb4c720eda0f1c733b989b14912093a7c5fbc") + with default_args(get_full_repo=True): + version("1.62.0", commit="a6e3d339bc8204d15db4e750bd98f0313490b658") + version("1.60.0", commit="7f62a7d54776a21ab6c2d3df4668382d531d1ee8") + version("1.58.0", commit="2995e3e1a8f428a80aee200db42ee44743d893f6") + version("1.56.0", commit="8f3272219507aa85e0c876fb434dc3b926c22c5d") + version("1.52.1", commit="91de4ab67315dc2af68554ae3c48823f4b1ea8ac") + version("1.46.0", commit="8cfc3938c1b08424587f437ed6cd2ec43512500e") + version("1.44.0", commit="dc1dc61fc562aaff3fd9b11ab0d48c2d6b3a5b81") + version("1.42.0", commit="2e3a8baeacfaa1526d51252642772ea951015bba") + version("1.40.0", commit="969bb0e5cbd63d569502ae4e6eaadc1e216646dd") + version("1.38.1", commit="c58cb4c720eda0f1c733b989b14912093a7c5fbc") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_proc/package.py b/repos/spack_repo/builtin/packages/r_proc/package.py index 4c54dbf6341..d2328f79044 100644 --- a/repos/spack_repo/builtin/packages/r_proc/package.py +++ b/repos/spack_repo/builtin/packages/r_proc/package.py @@ -21,6 +21,8 @@ class RProc(RPackage): version("1.18.0", sha256="d5ef54b384176ece6d6448014ba40570a98181b58fee742f315604addb5f7ba9") version("1.17.0.1", sha256="221c726ffb81b04b999905effccfd3a223cd73cae70d7d86688e2dd30e51a6bd") + depends_on("cxx", type="build") # generated + depends_on("r@2.14:", type=("build", "run")) depends_on("r-plyr", type=("build", "run")) depends_on("r-rcpp@0.11.1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_processx/package.py b/repos/spack_repo/builtin/packages/r_processx/package.py index 047d74d9b6c..80eba675ad0 100644 --- a/repos/spack_repo/builtin/packages/r_processx/package.py +++ b/repos/spack_repo/builtin/packages/r_processx/package.py @@ -21,6 +21,7 @@ class RProcessx(RPackage): license("MIT") + version("3.9.0", sha256="cdfef9035405891d8b104b258a40f62656f215aba7dcdc9f3226203c4c8fb354") version("3.8.4", sha256="6627672d7fb109f37dc1d0eaef913f4cfc7ad8ac807abf0397e6d37753b1e70b") version("3.8.1", sha256="e008472b81d4ca1a37a4ba7dd58e5e944f96ab2e44c8ccc8840d43e9fe99e93c") version("3.8.0", sha256="9270d9d26c4314151062801a5c1fc57556b4fcb41dbf3558cb5bd230b18ffb0b") @@ -39,10 +40,14 @@ class RProcessx(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@3.4.0:", type=("build", "run"), when="@3.5.3:") - depends_on("r-ps@1.2.0:", type=("build", "run"), when="@3.2.0:") - depends_on("r-r6", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("r@3.4.0:", when="@3.5.3:") - depends_on("r-assertthat", type=("build", "run"), when="@:3.2.9") - depends_on("r-crayon", type=("build", "run"), when="@:3.2.9") - depends_on("r-debugme", type=("build", "run"), when="@:3.0.9") + depends_on("r-ps@1.9.3:", when="@3.9.0:") + depends_on("r-ps@1.2.0:", when="@3.2.0:") + depends_on("r-r6") + + # Historical dependencies + depends_on("r-assertthat", when="@:3.2.9") + depends_on("r-crayon", when="@:3.2.9") + depends_on("r-debugme", when="@:3.0.9") diff --git a/repos/spack_repo/builtin/packages/r_prodlim/package.py b/repos/spack_repo/builtin/packages/r_prodlim/package.py index b2d8034f790..72057f24bf9 100644 --- a/repos/spack_repo/builtin/packages/r_prodlim/package.py +++ b/repos/spack_repo/builtin/packages/r_prodlim/package.py @@ -33,6 +33,8 @@ class RProdlim(RPackage): version("1.6.1", sha256="3f2665257118a3db8682731a500b1ae4d669af344672dc2037f987bee3cca154") version("1.5.9", sha256="853644886c57102e7f6dd26b6e03e54bf3f9e126f54c76f8d63a3324811f7b42") + depends_on("c", type="build") # generated + depends_on("r@2.9.0:", type=("build", "run")) depends_on("r-rcpp@0.11.5:", type=("build", "run")) depends_on("r-diagram", type=("build", "run"), when="@2023.03.31:") diff --git a/repos/spack_repo/builtin/packages/r_profmem/package.py b/repos/spack_repo/builtin/packages/r_profmem/package.py new file mode 100644 index 00000000000..854dcf25ad1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/r_profmem/package.py @@ -0,0 +1,17 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.r import RPackage + +from spack.package import * + + +class RProfmem(RPackage): + """Simple Memory Profiling for R.""" + + cran = "profmem" + + license("LGPL-2.1-or-later AND LGPL-3.0-or-later") + + version("0.7.0", sha256="16efc5f13f4b78919c9d51c07acf62c051e0e3830ae3cc32c596f8daf569c3cb") diff --git a/repos/spack_repo/builtin/packages/r_profvis/package.py b/repos/spack_repo/builtin/packages/r_profvis/package.py index be5cafe9ed1..1c5bf2a6805 100644 --- a/repos/spack_repo/builtin/packages/r_profvis/package.py +++ b/repos/spack_repo/builtin/packages/r_profvis/package.py @@ -17,6 +17,8 @@ class RProfvis(RPackage): version("0.3.8", sha256="ec02c75bc9907a73564e691adfa8e06651ca0bd73b7915412960231cd265b4b2") version("0.3.7", sha256="43974863cb793f81dbea4b94096343c321f7739c9038980405c9b16b04a906b9") + depends_on("c", type="build") # generated + depends_on("r@3.0:", type=("build", "run")) depends_on("r-htmlwidgets@0.3.2:", type=("build", "run")) depends_on("r-purrr", type=("build", "run"), when="@0.3.8:") diff --git a/repos/spack_repo/builtin/packages/r_progress/package.py b/repos/spack_repo/builtin/packages/r_progress/package.py index 607d5de6a0f..5570a587598 100644 --- a/repos/spack_repo/builtin/packages/r_progress/package.py +++ b/repos/spack_repo/builtin/packages/r_progress/package.py @@ -24,6 +24,8 @@ class RProgress(RPackage): version("1.2.1", sha256="7401e86ff76bef4d26508b74ee8bd169a0377b2738d9ec79ebff0b7fd5c55326") version("1.1.2", sha256="a9f4abfd9579b80967cd681041643fe9dfcc4eb3beeba45391bb64e9209baabb") + depends_on("cxx", type="build") # generated + depends_on("r@3.6:", type=("build", "run"), when="@1.2.3:") depends_on("r-r6", type=("build", "run")) depends_on("r-prettyunits", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_proj/package.py b/repos/spack_repo/builtin/packages/r_proj/package.py index 52d235ebaf1..d5eb573acc8 100644 --- a/repos/spack_repo/builtin/packages/r_proj/package.py +++ b/repos/spack_repo/builtin/packages/r_proj/package.py @@ -23,6 +23,8 @@ class RProj(RPackage): version("0.4.0", sha256="dde90cfeca83864e61a7422e1573d2d55bb0377c32b9a8f550f47b8631121ce7") version("0.1.0", sha256="5186f221335e8092bbcd4d82bd323ee7e752c7c9cf83d3f94e4567e0b407aa6f") + depends_on("c", type="build") # generated + depends_on("r@2.10:", type=("build", "run")) depends_on("r@3.0.2:", type=("build", "run"), when="@0.4.0:") diff --git a/repos/spack_repo/builtin/packages/r_proj4/package.py b/repos/spack_repo/builtin/packages/r_proj4/package.py index 7ed6eb447e1..3181ca7de75 100644 --- a/repos/spack_repo/builtin/packages/r_proj4/package.py +++ b/repos/spack_repo/builtin/packages/r_proj4/package.py @@ -25,6 +25,8 @@ class RProj4(RPackage): version("1.0-10", sha256="5f396f172a17cfa9821a390f11ff7d3bff3c92ccf585572116dec459c621d1d0") version("1.0-8.1", sha256="a3a2a8f0014fd79fa34b5957440fd38299d8e97f1a802a61a068a6c6cda10a7e") + depends_on("c", type="build") # generated + depends_on("r@2.0.0:", type=("build", "run")) depends_on("proj@4.4.6:7", when="@:1.0-8") depends_on("proj@4.4.6:") diff --git a/repos/spack_repo/builtin/packages/r_projpred/package.py b/repos/spack_repo/builtin/packages/r_projpred/package.py index ad47b969229..c6fe6210514 100644 --- a/repos/spack_repo/builtin/packages/r_projpred/package.py +++ b/repos/spack_repo/builtin/packages/r_projpred/package.py @@ -28,6 +28,8 @@ class RProjpred(RPackage): version("2.1.2", sha256="a88a651e533c118aad0e8c2c905cfcf688d9c419ed195896036b8f6667b5cfb0") version("2.0.2", sha256="af0a9fb53f706090fe81b6381b27b0b6bd3f7ae1e1e44b0ada6f40972b09a55b") + depends_on("cxx", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r@3.6.0:", type=("build", "run"), when="@2.7.0:") depends_on("r-rcpp", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_promises/package.py b/repos/spack_repo/builtin/packages/r_promises/package.py index a5c92086fce..4f12cf9df80 100644 --- a/repos/spack_repo/builtin/packages/r_promises/package.py +++ b/repos/spack_repo/builtin/packages/r_promises/package.py @@ -25,6 +25,8 @@ class RPromises(RPackage): version("1.1.1", sha256="3718c6eb2c3362cbe89389e613118f783f9977dbf24757f85026e661199c5800") version("1.0.1", sha256="c2dbc7734adf009377a41e570dfe0d82afb91335c9d0ca1ef464b9bdcca65558") + depends_on("cxx", type="build") # generated + depends_on("r-r6", type=("build", "run")) depends_on("r-fastmap@1.1.0:", type=("build", "run"), when="@1.2.1:") depends_on("r-later", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_protgenerics/package.py b/repos/spack_repo/builtin/packages/r_protgenerics/package.py index 5d6b7deedff..df06f46fa6e 100644 --- a/repos/spack_repo/builtin/packages/r_protgenerics/package.py +++ b/repos/spack_repo/builtin/packages/r_protgenerics/package.py @@ -14,13 +14,14 @@ class RProtgenerics(RPackage): bioc = "ProtGenerics" - version("1.32.0", commit="30c6458568c43fc7d769b0aef855d6e90b314eaa") - version("1.30.0", commit="fcd566bf04034cf52db3338b5d6de7447443cf77") - version("1.28.0", commit="cfcd0a9ebd642515764ba70c5c4e9c2a0f2f07ac") - version("1.26.0", commit="2033289ab928034b86c321e56c37e502e557c7a1") - version("1.22.0", commit="2bb3011fb0d79536e1c50251084a7057004449c6") - version("1.16.0", commit="960a5fdc586898513b5ae9c48fffba5c5d703723") - version("1.14.0", commit="c85940b70a16ad69275c4facb3ef673d20a1c998") - version("1.12.0", commit="e84382a4b1730409f572fb681b5070017d00d30d") - version("1.10.0", commit="9ae2c3710b77381571900f0f25c6c8fda65795ac") - version("1.8.0", commit="b2b3bb0938e20f58fca905f6870de7dbc9dfd7a3") + with default_args(get_full_repo=True): + version("1.32.0", commit="30c6458568c43fc7d769b0aef855d6e90b314eaa") + version("1.30.0", commit="fcd566bf04034cf52db3338b5d6de7447443cf77") + version("1.28.0", commit="cfcd0a9ebd642515764ba70c5c4e9c2a0f2f07ac") + version("1.26.0", commit="2033289ab928034b86c321e56c37e502e557c7a1") + version("1.22.0", commit="2bb3011fb0d79536e1c50251084a7057004449c6") + version("1.16.0", commit="960a5fdc586898513b5ae9c48fffba5c5d703723") + version("1.14.0", commit="c85940b70a16ad69275c4facb3ef673d20a1c998") + version("1.12.0", commit="e84382a4b1730409f572fb681b5070017d00d30d") + version("1.10.0", commit="9ae2c3710b77381571900f0f25c6c8fda65795ac") + version("1.8.0", commit="b2b3bb0938e20f58fca905f6870de7dbc9dfd7a3") diff --git a/repos/spack_repo/builtin/packages/r_ps/package.py b/repos/spack_repo/builtin/packages/r_ps/package.py index 37ce3bf465e..8b9dab21243 100644 --- a/repos/spack_repo/builtin/packages/r_ps/package.py +++ b/repos/spack_repo/builtin/packages/r_ps/package.py @@ -17,6 +17,7 @@ class RPs(RPackage): license("MIT") + version("1.9.3", sha256="7b227f0627709a2073daf960ac612a0b87d03e18f7dd5c1938048ed440ef2e68") version("1.7.7", sha256="46fedcb2b8faa94ea1451e48e6f31a1e4ed3b12f529e645f9efcfca1003d22f2") version("1.7.5", sha256="1abc3ae3c55797b994973f7e43bf5c7bbb4da649a0dcfad36675e196dba4cb4e") version("1.7.2", sha256="9225ebdedb5c1b245bb38b01ce88084c0fc7eafcff6c4fda2e299003ace6b21a") @@ -31,5 +32,6 @@ class RPs(RPackage): depends_on("c", type="build") - depends_on("r@3.1:", type=("build", "run")) - depends_on("r@3.4:", type=("build", "run"), when="@1.7.0:") + with default_args(type=("build", "run")): + depends_on("r@3.4:", when="@1.7.0:") + depends_on("r@3.1:") diff --git a/repos/spack_repo/builtin/packages/r_pspline/package.py b/repos/spack_repo/builtin/packages/r_pspline/package.py index f813b5e4751..cba538d36aa 100644 --- a/repos/spack_repo/builtin/packages/r_pspline/package.py +++ b/repos/spack_repo/builtin/packages/r_pspline/package.py @@ -20,4 +20,7 @@ class RPspline(RPackage): version("1.0-19", sha256="ba55bf193f1df9785a0e13b7ef727d5fd2415b318cd6a26b48a2db490c4dfe40") version("1.0-18", sha256="f71cf293bd5462e510ac5ad16c4a96eda18891a0bfa6447dd881c65845e19ac7") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@2.0.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_purrr/package.py b/repos/spack_repo/builtin/packages/r_purrr/package.py index 25c21449fe9..35256fd509b 100644 --- a/repos/spack_repo/builtin/packages/r_purrr/package.py +++ b/repos/spack_repo/builtin/packages/r_purrr/package.py @@ -16,6 +16,7 @@ class RPurrr(RPackage): license("MIT") + version("1.2.2", sha256="ac3bc0fc0e789510042522e6c4294336c71447be8f6921b5ef78b9a9fb86617d") version("1.0.2", sha256="2c1bc6bb88433dff0892b41136f2f5c23573b335ff35a4775c72aa57b48bbb63") version("1.0.1", sha256="0a7911be3539355a4c40d136f2602befcaaad5a3f7222078500bfb969a6f2ba2") version("0.3.5", sha256="a2386cd7e78a043cb9c14703023fff15ab1c879bf648816879d2c0c4a554fcef") @@ -27,19 +28,22 @@ class RPurrr(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@3.1:", type=("build", "run")) - depends_on("r@3.2:", type=("build", "run"), when="@0.3.3:") - depends_on("r@3.4.0:", type=("build", "run"), when="@1.0.1:") - depends_on("r@3.5.0:", type=("build", "run"), when="@1.0.2:") - depends_on("r-vctrs@0.5.0:", type=("build", "run"), when="@1.0.1:") - depends_on("r-vctrs@0.6.3:", type=("build", "run"), when="@1.0.2:") - depends_on("r-lifecycle@1.0.3:", type=("build", "run"), when="@1.0.1:") - depends_on("r-cli@3.4.0:", type=("build", "run"), when="@1.0.1:") - depends_on("r-cli@3.6.1:", type=("build", "run"), when="@1.0.2:") - depends_on("r-magrittr@1.5:", type=("build", "run")) - depends_on("r-magrittr@1.5.0:", type=("build", "run"), when="@1.0.1:") - depends_on("r-rlang@0.3.1:", type=("build", "run")) - depends_on("r-rlang@0.4.10:", type=("build", "run"), when="@1.0.1:") - depends_on("r-rlang@1.1.1:", type=("build", "run"), when="@1.0.2:") - - depends_on("r-tibble", type=("build", "run"), when="@:0.2.9") + with default_args(type=("build", "run")): + depends_on("r@4.1:", when="@1.1.0:") + depends_on("r@3.5.0:", when="@1.0.2:") + depends_on("r@3.4.0:", when="@1.0.1:") + depends_on("r@3.2:", when="@0.3.3:") + depends_on("r@3.1:") + + depends_on("r-cli@3.6.1:", when="@1.0.2:") + depends_on("r-cli@3.4.0:", when="@1.0.1:") + depends_on("r-lifecycle@1.0.3:", when="@1.0.1:") + depends_on("r-magrittr@1.5:") + depends_on("r-rlang@1.1.1:", when="@1.0.2:") + depends_on("r-rlang@0.4.10:", when="@1.0.1:") + depends_on("r-rlang@0.3.1:") + depends_on("r-vctrs@0.6.3:", when="@1.0.2:") + depends_on("r-vctrs@0.5.0:", when="@1.0.1:") + + # Historical dependencies + depends_on("r-tibble", when="@:0.2.9") diff --git a/repos/spack_repo/builtin/packages/r_qs/package.py b/repos/spack_repo/builtin/packages/r_qs/package.py index 3e62d62b4ec..c6d7e9d5afa 100644 --- a/repos/spack_repo/builtin/packages/r_qs/package.py +++ b/repos/spack_repo/builtin/packages/r_qs/package.py @@ -26,6 +26,9 @@ class RQs(RPackage): version("0.25.2", sha256="fe428ae5dc46f88fdf454ca74c4a073f5ac288d6d039080a3c0d66c4ebbd5cbf") version("0.23.6", sha256="c6e958e9741ee981bf2388c91b8f181718ffb0f32283cd7ebcd2d054817280e4") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r@3.0.2:", type=("build", "run"), when="@0.25.2:") depends_on("r-bh", type=("build", "run"), when="@0.26.0:") diff --git a/repos/spack_repo/builtin/packages/r_qtl/package.py b/repos/spack_repo/builtin/packages/r_qtl/package.py index 35e41233d1b..cb037c9d8a0 100644 --- a/repos/spack_repo/builtin/packages/r_qtl/package.py +++ b/repos/spack_repo/builtin/packages/r_qtl/package.py @@ -26,4 +26,7 @@ class RQtl(RPackage): version("1.47-9", sha256="6ba4e7b40d946b3ab68d54624599284b1d352c86fb50d31b134826be758ece41") version("1.44-9", sha256="315063f0c3fbb95cd2169eb4109ade0339e8f3c28670b38c3167214b9bdf950e") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@2.14.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_quantreg/package.py b/repos/spack_repo/builtin/packages/r_quantreg/package.py index c19b087e1f1..caaef29f7bb 100644 --- a/repos/spack_repo/builtin/packages/r_quantreg/package.py +++ b/repos/spack_repo/builtin/packages/r_quantreg/package.py @@ -22,6 +22,7 @@ class RQuantreg(RPackage): license("GPL-2.0-or-later") + version("6.1", sha256="f42292c5ab25a15f39295b93391deafef192fe09eefde563399a64eba7e0169a") version("5.98", sha256="a98cb259d8cf563f66a25ae8858794e574dd40de6206816ad61b1ffeb9686a61") version("5.95", sha256="4b05a81eceebbd927372cefdc4912dfa70b6dfcd96528489f78e125eb32a96cc") version("5.94", sha256="52d585ccb972ed7726b7d083f5635d3e42915847398e00fd6e0f69a5fe1b17c1") @@ -36,12 +37,16 @@ class RQuantreg(RPackage): version("5.29", sha256="bb4638e8f295579afa5c40c4de7266a6ea9221436ba4ca802f94cdb43bf20f25") version("5.26", sha256="9d7403f7c5ee219ec155838648401a1c4915a46a74f5774a0f6876c537ef2c87") - depends_on("r@2.6:", type=("build", "run")) + depends_on("c", type="build") + depends_on("fortran", type="build") + depends_on("r@3.5:", type=("build", "run"), when="@5.93:") + depends_on("r@2.6:", type=("build", "run")) depends_on("r-sparsem", type=("build", "run")) depends_on("r-matrix", type=("build", "run")) depends_on("r-matrixmodels", type=("build", "run")) depends_on("r-survival", type=("build", "run"), when="@5.93:") depends_on("r-mass", type=("build", "run"), when="@5.93:") + # Historical dependencies depends_on("r-conquer", type=("build", "run"), when="@5.82:5.86") diff --git a/repos/spack_repo/builtin/packages/r_quantro/package.py b/repos/spack_repo/builtin/packages/r_quantro/package.py index 7fd84864664..3cdad8a9b94 100644 --- a/repos/spack_repo/builtin/packages/r_quantro/package.py +++ b/repos/spack_repo/builtin/packages/r_quantro/package.py @@ -19,16 +19,17 @@ class RQuantro(RPackage): bioc = "quantro" - version("1.34.0", commit="c769d21ce5ccb6f33c35e6e1dbb901ea8afad4b1") - version("1.32.0", commit="0c70b787866d915abb720f2ab326a83eb1e775b7") - version("1.30.0", commit="e756c439cdc5a6fb4d7879aff56a8368475513b5") - version("1.28.0", commit="109e7452a349f273e10d2ffb79d5624260b67dd5") - version("1.24.0", commit="c7c0180292156a01722d91b353da44324e72d68f") - version("1.18.0", commit="f6553c2296289eed31e4b2f32a082e990bdb8359") - version("1.16.0", commit="cfc2e853bdc3cc90fd35e153fe243892d50d61c6") - version("1.14.0", commit="2d43264b2a95ae8ca51a69d7768fe43b9f1b77bb") - version("1.12.0", commit="1cfcc73875cf4ecc2618e5e45fda89bd075a5d12") - version("1.10.0", commit="111337c0aba052aa49c3d2e2d3042794b28858c9") + with default_args(get_full_repo=True): + version("1.34.0", commit="c769d21ce5ccb6f33c35e6e1dbb901ea8afad4b1") + version("1.32.0", commit="0c70b787866d915abb720f2ab326a83eb1e775b7") + version("1.30.0", commit="e756c439cdc5a6fb4d7879aff56a8368475513b5") + version("1.28.0", commit="109e7452a349f273e10d2ffb79d5624260b67dd5") + version("1.24.0", commit="c7c0180292156a01722d91b353da44324e72d68f") + version("1.18.0", commit="f6553c2296289eed31e4b2f32a082e990bdb8359") + version("1.16.0", commit="cfc2e853bdc3cc90fd35e153fe243892d50d61c6") + version("1.14.0", commit="2d43264b2a95ae8ca51a69d7768fe43b9f1b77bb") + version("1.12.0", commit="1cfcc73875cf4ecc2618e5e45fda89bd075a5d12") + version("1.10.0", commit="111337c0aba052aa49c3d2e2d3042794b28858c9") depends_on("r@3.1.3:", type=("build", "run")) depends_on("r@4.0:", type=("build", "run"), when="@1.24.0:") diff --git a/repos/spack_repo/builtin/packages/r_quickjsr/package.py b/repos/spack_repo/builtin/packages/r_quickjsr/package.py index bfd89c7ffe7..f3d3cd4dd79 100644 --- a/repos/spack_repo/builtin/packages/r_quickjsr/package.py +++ b/repos/spack_repo/builtin/packages/r_quickjsr/package.py @@ -17,4 +17,9 @@ class RQuickjsr(RPackage): license("MIT", checked_by="wdconinc") + depends_on("c", type="build") + depends_on("cxx", type="build") + + version("1.9.2", sha256="f0ab99048cfb520d818401da99fbcac844a83c3f27f085f91d8fd8a17f319de0") + version("1.8.1", sha256="dd4cf107016d659991cdbd313908209e3998ea8b093f3632d8b3a84dea435e0f") version("1.3.1", sha256="10559d6e84a838ec97acdbc6028a59e2121811d4a20e83c95cdb8fb4ce208fd1") diff --git a/repos/spack_repo/builtin/packages/r_qvalue/package.py b/repos/spack_repo/builtin/packages/r_qvalue/package.py index f83465d2d35..cb040cf199c 100644 --- a/repos/spack_repo/builtin/packages/r_qvalue/package.py +++ b/repos/spack_repo/builtin/packages/r_qvalue/package.py @@ -24,16 +24,17 @@ class RQvalue(RPackage): bioc = "qvalue" - version("2.32.0", commit="a6272dc68f9d91de63e04fae28476e4ec016ee89") - version("2.30.0", commit="e8a4c22d035f860ee730aa7c5a4dbc7460afcedc") - version("2.28.0", commit="aaa62d5ab5a960e0a626928abaf5b3a5c5f73374") - version("2.26.0", commit="6d7410d4b8673bcf9065e054670c1fbcb917a27e") - version("2.22.0", commit="b4bde8198252737b287fd7f9a4ed697f57fad92c") - version("2.16.0", commit="5efbe20ef522a45a7a04b681f72bb9a12e2747ae") - version("2.14.1", commit="b694e4b264f25250eb1d1115e70c07f65767c20e") - version("2.12.0", commit="7df64ebfcbe69dcbf8b88cb6ef0068bf16979673") - version("2.10.0", commit="581e5664b4356440a96310897398f01a98ceb81b") - version("2.8.0", commit="c7bf3315619d42d800f57a36670c25a7495ded72") + with default_args(get_full_repo=True): + version("2.32.0", commit="a6272dc68f9d91de63e04fae28476e4ec016ee89") + version("2.30.0", commit="e8a4c22d035f860ee730aa7c5a4dbc7460afcedc") + version("2.28.0", commit="aaa62d5ab5a960e0a626928abaf5b3a5c5f73374") + version("2.26.0", commit="6d7410d4b8673bcf9065e054670c1fbcb917a27e") + version("2.22.0", commit="b4bde8198252737b287fd7f9a4ed697f57fad92c") + version("2.16.0", commit="5efbe20ef522a45a7a04b681f72bb9a12e2747ae") + version("2.14.1", commit="b694e4b264f25250eb1d1115e70c07f65767c20e") + version("2.12.0", commit="7df64ebfcbe69dcbf8b88cb6ef0068bf16979673") + version("2.10.0", commit="581e5664b4356440a96310897398f01a98ceb81b") + version("2.8.0", commit="c7bf3315619d42d800f57a36670c25a7495ded72") depends_on("r@2.10:", type=("build", "run")) depends_on("r-ggplot2", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_r6/package.py b/repos/spack_repo/builtin/packages/r_r6/package.py index 4a45e0eb885..ef92d5ac8e4 100644 --- a/repos/spack_repo/builtin/packages/r_r6/package.py +++ b/repos/spack_repo/builtin/packages/r_r6/package.py @@ -19,6 +19,7 @@ class RR6(RPackage): cran = "R6" + version("2.6.1", sha256="59c6eba8b1b912eb7e104f65053235604be853425ee67c152ac4e86a1f2073b4") version("2.5.1", sha256="8d92bd29c2ed7bf15f2778618ffe4a95556193d21d8431a7f75e7e5fc102bf48") version("2.5.0", sha256="aec1af9626ec532cb883b544bf9eff4cb2d89c343c7ce0fa31761ec5a7882e02") version("2.4.0", sha256="70be110174fbf5f5304049b186a6f9c05b77bfaec6d8caf980fcef5da6e0abce") @@ -26,4 +27,6 @@ class RR6(RPackage): version("2.2.0", sha256="7d7bddc4303fafa99954182ccad938166d681499d4e9ae7001d21b0fd60d25c7") version("2.1.2", sha256="1bfbb14d9da85b5f8eb865aa6355b2c71c9f86b71f616bfe5a28939b62484d79") - depends_on("r@3.0:", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("r@3.6:", when="@2.6:") + depends_on("r@3.0:") diff --git a/repos/spack_repo/builtin/packages/r_ragg/package.py b/repos/spack_repo/builtin/packages/r_ragg/package.py index bd103a4747a..ff69dcec005 100644 --- a/repos/spack_repo/builtin/packages/r_ragg/package.py +++ b/repos/spack_repo/builtin/packages/r_ragg/package.py @@ -19,6 +19,7 @@ class RRagg(RPackage): license("MIT") + version("1.5.2", sha256="1dad21034a403e84a835c90260a1d9d8dc43c8d100f7fe63dd01d5e928b28f16") version("1.3.2", sha256="8037a45209fdd50acf101208af8e832b840a11ad4201cf7fb480de432e6b6931") version("1.2.5", sha256="936f4d75e0e01cdeefb9f57d121cdd7812d0de5a9e1a3a8315f92ce1c84da8f9") version("1.2.4", sha256="c547e5636a2eefaa0021a0d50fad1e813c2ce976ec0c9c3f796d38a110680dcd") @@ -29,10 +30,12 @@ class RRagg(RPackage): depends_on("r-systemfonts@1.0.3:", type=("build", "run")) depends_on("r-textshaping@0.3.0:", type=("build", "run")) + depends_on("freetype") depends_on("libpng") depends_on("libtiff") depends_on("jpeg") + depends_on("libwebp+libwebpmux", when="@1.5:") def flag_handler(self, name, flags): # Freetype 2.13.3 broke the public interface by switching char/unsigned char: diff --git a/repos/spack_repo/builtin/packages/r_randomfields/package.py b/repos/spack_repo/builtin/packages/r_randomfields/package.py index 400971b6df4..b8f5840a23c 100644 --- a/repos/spack_repo/builtin/packages/r_randomfields/package.py +++ b/repos/spack_repo/builtin/packages/r_randomfields/package.py @@ -24,6 +24,9 @@ class RRandomfields(RPackage): version("3.3.4", sha256="a340d4f3ba7950d62acdfa19b9724c82e439d7b1a9f73340124038b7c90c73d4") version("3.1.50", sha256="2d6a07c3a716ce20f9c685deb59e8fcc64fd52c8a50b0f04baf451b6b928e848") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@3.3.8:") depends_on("r-sp", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_randomfieldsutils/package.py b/repos/spack_repo/builtin/packages/r_randomfieldsutils/package.py index 6a32b51a296..14d2c110044 100644 --- a/repos/spack_repo/builtin/packages/r_randomfieldsutils/package.py +++ b/repos/spack_repo/builtin/packages/r_randomfieldsutils/package.py @@ -23,4 +23,8 @@ class RRandomfieldsutils(RPackage): version("0.5.3", sha256="ea823cba2e254a9f534efb4b772c0aeef2039ee9ef99744e077b969a87f8031d") version("0.5.1", sha256="a95aab4e2025c4247503ff513570a65aa3c8e63cb7ce2979c9317a2798dfaca2") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_ranger/package.py b/repos/spack_repo/builtin/packages/r_ranger/package.py index 66e4a73bc16..39829f2d192 100644 --- a/repos/spack_repo/builtin/packages/r_ranger/package.py +++ b/repos/spack_repo/builtin/packages/r_ranger/package.py @@ -34,6 +34,8 @@ class RRanger(RPackage): version("0.5.0", sha256="bc55811e723c9076c35aac4d82f29770ef84b40846198235d8b0ea9a4e91f144") version("0.4.0", sha256="d9f5761c3b07357aa586270cf7cbc97fc3db56ba731b6d0f3baf296f635f2be5") + depends_on("cxx", type="build") # generated + depends_on("r@3.1:", type=("build", "run")) depends_on("r-rcpp@0.11.2:", type=("build", "run")) depends_on("r-matrix", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rapiserialize/package.py b/repos/spack_repo/builtin/packages/r_rapiserialize/package.py index 5ecd9a29a8b..037024412a7 100644 --- a/repos/spack_repo/builtin/packages/r_rapiserialize/package.py +++ b/repos/spack_repo/builtin/packages/r_rapiserialize/package.py @@ -26,3 +26,6 @@ class RRapiserialize(RPackage): version("0.1.3", sha256="9f413759eabb2acce2b9a363687ca365e1bbedaf9851d23a2ec3683a3d46f42b") version("0.1.2", sha256="9cc0bbb918eeadb394339c64b15324e8123fbb0061692f40102b111417a2600a") version("0.1.0", sha256="324d42c655c27b4647d194bfcd7c675da95c67ea3a74ce99853502022792a23e") + + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_rappdirs/package.py b/repos/spack_repo/builtin/packages/r_rappdirs/package.py index bf22eef5c91..4db0059e1bc 100644 --- a/repos/spack_repo/builtin/packages/r_rappdirs/package.py +++ b/repos/spack_repo/builtin/packages/r_rappdirs/package.py @@ -18,10 +18,13 @@ class RRappdirs(RPackage): license("MIT") + version("0.3.4", sha256="2320ebc9ef3b1a32a1e63f94a6ce2c1c34d66782221a6531e786804f681abc66") version("0.3.3", sha256="49959f65b45b0b189a2792d6c1339bef59674ecae92f8c2ed9f26ff9e488c184") version("0.3.1", sha256="2fd891ec16d28862f65bb57e4a78f77a597930abb59380e757afd8b6c6d3264a") depends_on("c", type="build") # generated - depends_on("r@2.14:", type=("build", "run")) - depends_on("r@3.2:", type=("build", "run"), when="@0.3.2:") + with default_args(type=("build", "run")): + depends_on("r@4.1:", when="@0.3.4:") + depends_on("r@3.2:", when="@0.3.2:") + depends_on("r@2.14:") diff --git a/repos/spack_repo/builtin/packages/r_raster/package.py b/repos/spack_repo/builtin/packages/r_raster/package.py index eb5f94dbdd8..797f1bf7585 100644 --- a/repos/spack_repo/builtin/packages/r_raster/package.py +++ b/repos/spack_repo/builtin/packages/r_raster/package.py @@ -29,6 +29,9 @@ class RRaster(RPackage): version("2.9-22", sha256="8107d95f1aa85cea801c8101c6aa391becfef4b5b915d9bc7a323531fee26128") version("2.5-8", sha256="47992abd783450513fbce3770298cc257030bf0eb77e42aa3a4b3924b16264cc") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@3.4-5:") depends_on("r-sp@1.2-0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rbgl/package.py b/repos/spack_repo/builtin/packages/r_rbgl/package.py index 32eaff9dbee..74a8d5a0d24 100644 --- a/repos/spack_repo/builtin/packages/r_rbgl/package.py +++ b/repos/spack_repo/builtin/packages/r_rbgl/package.py @@ -17,16 +17,17 @@ class RRbgl(RPackage): license("BSL-1.0") - version("1.76.0", commit="18b7cc5f002435aa83e8b693e7bf269fc0b096a5") - version("1.74.0", commit="e698db897b719992a8c0747138735c0e7d9dfb21") - version("1.72.0", commit="a86f3102f2795e1ffb530bb061247e3a42ca22f7") - version("1.70.0", commit="9cfd5fdad4f1f438ff748317f32e822aede8921b") - version("1.66.0", commit="bf0c111dbc231de6d3423c28e115b54fb010e1ea") - version("1.60.0", commit="ef24c17c411659b8f030602bd9781c534d6ec93b") - version("1.58.2", commit="086ad0c6bab7be29311b6ae14fd39df7a21331a6") - version("1.56.0", commit="a1fa9d89c6a3401892c5dd1493df6a14031f0912") - version("1.54.0", commit="e9c743d380e83c155495cb8732102f01f213c905") - version("1.52.0", commit="93e8fcfafec8f1cd5638fe30dc0f9506d15b49c0") + with default_args(get_full_repo=True): + version("1.76.0", commit="18b7cc5f002435aa83e8b693e7bf269fc0b096a5") + version("1.74.0", commit="e698db897b719992a8c0747138735c0e7d9dfb21") + version("1.72.0", commit="a86f3102f2795e1ffb530bb061247e3a42ca22f7") + version("1.70.0", commit="9cfd5fdad4f1f438ff748317f32e822aede8921b") + version("1.66.0", commit="bf0c111dbc231de6d3423c28e115b54fb010e1ea") + version("1.60.0", commit="ef24c17c411659b8f030602bd9781c534d6ec93b") + version("1.58.2", commit="086ad0c6bab7be29311b6ae14fd39df7a21331a6") + version("1.56.0", commit="a1fa9d89c6a3401892c5dd1493df6a14031f0912") + version("1.54.0", commit="e9c743d380e83c155495cb8732102f01f213c905") + version("1.52.0", commit="93e8fcfafec8f1cd5638fe30dc0f9506d15b49c0") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_rbibutils/package.py b/repos/spack_repo/builtin/packages/r_rbibutils/package.py index c65f7097293..d4085ea3235 100644 --- a/repos/spack_repo/builtin/packages/r_rbibutils/package.py +++ b/repos/spack_repo/builtin/packages/r_rbibutils/package.py @@ -19,6 +19,7 @@ class RRbibutils(RPackage): license("GPL-2.0-only") + version("2.4.1", sha256="da313d920a0f35ffdf30a54929ba8904b2b5a0d7f11a519db8674148129c8f32") version("2.2.16", sha256="9c7c0fba47f63b1749005311c7174b40e72d95c863a67b736a84b8ff375a2aaf") version("2.2.13", sha256="ac235c60bf191ad1830b93045af1b2fe50a6978f6f63cecc4c514a8ba339efc2") version("2.2.9", sha256="b22c07ff916ec338e5a8c6e7e4302f06c9b88d64ee6a59ee4bf5d83a3d5eff86") @@ -26,4 +27,6 @@ class RRbibutils(RPackage): version("2.2.7", sha256="7c9e6719556b8caa9fb58743b717e89f45e8e7018371bf16f07dc3c1f96a55c5") version("2.0", sha256="03d13abee321decb88bc4e7c9f27276d62a4a880fa72bb6b86be91885010cfed") + depends_on("c", type="build") + depends_on("r@2.10:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rcpp/package.py b/repos/spack_repo/builtin/packages/r_rcpp/package.py index bc505209ddd..2b88d939480 100644 --- a/repos/spack_repo/builtin/packages/r_rcpp/package.py +++ b/repos/spack_repo/builtin/packages/r_rcpp/package.py @@ -24,6 +24,7 @@ class RRcpp(RPackage): cran = "Rcpp" + version("1.1.1", sha256="da0c616a71c82150397259516b2ea7558dbd31a5b4a217423ec9666b3a0fcfb7") version("1.0.13-1", sha256="1d1fc623d27082b5749f9584a9204de410134b6412a192157a3e42e2ba43969a") version("1.0.13", sha256="21fec650c113e57935fd86c7d1be190811f1ae036c1ee203bfbbf3ad5cdb22ce") version("1.0.12", sha256="0c7359cc43beee02761aa3df2baccede1182d29d28c9cd49964b609305062bd0") @@ -52,10 +53,12 @@ class RRcpp(RPackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + depends_on("gmake", type="build") # leave the r dependency also for newer versions # (not listed in Description for @1.0.5:) depends_on("r@3.0.0:", type=("build", "run")) + depends_on("r@3.5.0:", when="@1.1.1:", type=("build", "run")) # https://github.com/RcppCore/Rcpp/issues/1341 conflicts("^r@4.4.2", when="@=1.0.13", msg="Rcpp@1.0.13 fails to compile under R@4.4.2") diff --git a/repos/spack_repo/builtin/packages/r_rcppannoy/package.py b/repos/spack_repo/builtin/packages/r_rcppannoy/package.py index b77e5ba5100..0fb252990ec 100644 --- a/repos/spack_repo/builtin/packages/r_rcppannoy/package.py +++ b/repos/spack_repo/builtin/packages/r_rcppannoy/package.py @@ -27,6 +27,9 @@ class RRcppannoy(RPackage): version("0.0.18", sha256="e4e7ddf071109b47b4fdf285db6d2155618ed73da829c30d8e64fc778e63c858") version("0.0.12", sha256="8f736cbbb4a32c80cb08ba4e81df633846d725f27867e983af2012966eac0eac") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.1:", type=("build", "run")) depends_on("r-rcpp", type=("build", "run")) depends_on("r-rcpp@0.11.3:", type=("build", "run"), when="@:0.0.12") diff --git a/repos/spack_repo/builtin/packages/r_rcpparmadillo/package.py b/repos/spack_repo/builtin/packages/r_rcpparmadillo/package.py index a0d4159711c..0e50d87b925 100644 --- a/repos/spack_repo/builtin/packages/r_rcpparmadillo/package.py +++ b/repos/spack_repo/builtin/packages/r_rcpparmadillo/package.py @@ -59,6 +59,9 @@ class RRcpparmadillo(RPackage): "0.8.100.1.0", sha256="97ca929b34d84d99d7cadc3612b544632cdd0c43ed962933a3d47caa27854fa7" ) + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("r@3.3.0:", type=("build", "run"), when="@0.8.500.0:") depends_on("r-rcpp@0.11.0:", type=("build", "run")) depends_on("r-rcpp@1.0.8:", type=("build", "run"), when="@0.12.8.4.0:") diff --git a/repos/spack_repo/builtin/packages/r_rcppblaze/package.py b/repos/spack_repo/builtin/packages/r_rcppblaze/package.py index 906a894f4a5..93f495ed83f 100644 --- a/repos/spack_repo/builtin/packages/r_rcppblaze/package.py +++ b/repos/spack_repo/builtin/packages/r_rcppblaze/package.py @@ -41,6 +41,9 @@ class RRcppblaze(RPackage): version("1.0.1", sha256="2d152294dc231e4ab097a377ddeda6f2bbb608970c82563a893c77de08916227") version("0.2.2", sha256="67550ed8aea12a219047af61b41e5b9f991608a21ce9a8fbf7ac55da0f7c2742") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.0.2:", type=("build", "run")) depends_on("r@4.2.0:", type=("build", "run"), when="@1.0.0:") depends_on("r-rcpp@0.11.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rcppcnpy/package.py b/repos/spack_repo/builtin/packages/r_rcppcnpy/package.py index d0f2c8ffa4c..45e3675623d 100644 --- a/repos/spack_repo/builtin/packages/r_rcppcnpy/package.py +++ b/repos/spack_repo/builtin/packages/r_rcppcnpy/package.py @@ -26,6 +26,8 @@ class RRcppcnpy(RPackage): version("0.2.10", sha256="77d6fbc86520a08da40d44c0b82767099f8f719ca95870d91efff1a9cab1ab9c") version("0.2.9", sha256="733f004ad1a8b0e5aafbf547c4349d2df3118afd57f1ff99f20e39135c6edb30") + depends_on("cxx", type="build") # generated + depends_on("r@3.1.0:", type=("build", "run")) depends_on("r-rcpp", type=("build", "run")) depends_on("zlib-api") diff --git a/repos/spack_repo/builtin/packages/r_rcppeigen/package.py b/repos/spack_repo/builtin/packages/r_rcppeigen/package.py index 48886588ddc..b1fa15fbc70 100644 --- a/repos/spack_repo/builtin/packages/r_rcppeigen/package.py +++ b/repos/spack_repo/builtin/packages/r_rcppeigen/package.py @@ -28,6 +28,7 @@ class RRcppeigen(RPackage): license("MPL-2.0") + version("0.3.4.0.2", sha256="ecad7ba2129fd48b7ebb825558d38492ed1f3a8934959e27fcd6688175e542bb") version("0.3.4.0.1", sha256="25ed48f148b50aaadd92752d73e3eefe00ab4ecd4ae5662ae91a9ff3f72a4e26") version("0.3.3.9.3", sha256="5873a47fd6587d916f86119ab140c6736abf80ac45d06ff1c9d198708e7d1c76") version("0.3.3.9.2", sha256="2547e794d5a6fb8d9fbadf19e64afa0bcf413cc69ecf3f428995fa5a0fced493") @@ -38,7 +39,10 @@ class RRcppeigen(RPackage): version("0.3.2.9.0", sha256="25affba9065e3c12d67b1934d1ce97a928a4011a7738f7b90f0e9830409ec93b") version("0.3.2.8.1", sha256="ceccb8785531c5c23f9232b594e5372c214a114a08ec759115e946badd08d681") + depends_on("cxx", type="build") + depends_on("r-rcpp@0.11.0:", type=("build", "run")) depends_on("r@3.6.0:", type=("build", "run"), when="@0.3.3.9.3:") + # Historical dependencies depends_on("r-matrix@1.1-0:", type=("build", "run"), when="@:0.3.3.9.3") diff --git a/repos/spack_repo/builtin/packages/r_rcppensmallen/package.py b/repos/spack_repo/builtin/packages/r_rcppensmallen/package.py index c90f6bce963..77bf86ccd3b 100644 --- a/repos/spack_repo/builtin/packages/r_rcppensmallen/package.py +++ b/repos/spack_repo/builtin/packages/r_rcppensmallen/package.py @@ -19,6 +19,8 @@ class RRcppensmallen(RPackage): "0.2.19.0.1", sha256="b4a9bde4dde309a52a47b56790389ecab14fe64066098d2a38b1b588ba3d8631" ) + depends_on("cxx", type="build") # generated + depends_on("r@3.3.0:", type=("build", "run")) depends_on("r@4.0.0:", type=("build", "run"), when="@0.2.20.0.1:") depends_on("r-rcpp", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rcpphnsw/package.py b/repos/spack_repo/builtin/packages/r_rcpphnsw/package.py index 20ce87f692a..e5119774108 100644 --- a/repos/spack_repo/builtin/packages/r_rcpphnsw/package.py +++ b/repos/spack_repo/builtin/packages/r_rcpphnsw/package.py @@ -23,4 +23,6 @@ class RRcpphnsw(RPackage): version("0.3.0", sha256="a0eb4eea65e28ba31e8306a1856f7e617a192bd448b148f88abe99181cbde007") version("0.1.0", sha256="75a54c30953845dec685764c7b3b4cd7315197c91aef4ab3b4eb0a6293010a95") + depends_on("cxx", type="build") # generated + depends_on("r-rcpp@0.11.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rcppparallel/package.py b/repos/spack_repo/builtin/packages/r_rcppparallel/package.py index a3dddfb722a..3c2f55d2e7b 100644 --- a/repos/spack_repo/builtin/packages/r_rcppparallel/package.py +++ b/repos/spack_repo/builtin/packages/r_rcppparallel/package.py @@ -17,14 +17,20 @@ class RRcppparallel(RPackage): cran = "RcppParallel" + license("GPL-3.0-or-later") + + version("5.1.11-2", sha256="350d013d62cd80175e1b13fd5bbf973755e331a5d4d4590a163778a24b27980b") + version("5.1.11-1", sha256="e18c83548212cbd52f6629131564a392b870399343a5867d512dbca2a27a6362") version("5.1.9", sha256="fd0861f3f0f7be4e0ef29c021e75beb351ae2eb18ce5d79e21f2725da4da114f") version("5.1.7", sha256="f9c30eb9ce1abffc590825d513d6d28dcbe970e36032dd7521febf04e905b29c") version("5.1.5", sha256="6396322b3b6d6f7019aac808ceb74707bc5c4ed01677fab408372c2a5508c2ea") version("5.0.2", sha256="8ca200908c6365aafb2063be1789f0894969adc03c0f523c6cc45434b8236f81") version("4.4.3", sha256="7a04929ecab97e46c0b09fe5cdbac9d7bfa17ad7d111f1a9787a9997f45fa0fa") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("r@3.0.2:", type=("build", "run")) - depends_on("gmake", type="build") depends_on("tbb", when="@5.1.5:") patch("asclang.patch", when="%fj") diff --git a/repos/spack_repo/builtin/packages/r_rcpproll/package.py b/repos/spack_repo/builtin/packages/r_rcpproll/package.py index a80d176908b..6ff20a76649 100644 --- a/repos/spack_repo/builtin/packages/r_rcpproll/package.py +++ b/repos/spack_repo/builtin/packages/r_rcpproll/package.py @@ -20,5 +20,7 @@ class RRcpproll(RPackage): version("0.3.1", sha256="d2f5d978b6feb8510ec1a1a50ba0e8bf9002bb77bfad7d120f5b30b8f56036df") version("0.3.0", sha256="cbff2096443a8a38a6f1dabf8c90b9e14a43d2196b412b5bfe5390393f743f6b") + depends_on("cxx", type="build") # generated + depends_on("r@2.15.1:", type=("build", "run")) depends_on("r-rcpp", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rcurl/package.py b/repos/spack_repo/builtin/packages/r_rcurl/package.py index 35e445997e2..fa8f8a8a1d9 100644 --- a/repos/spack_repo/builtin/packages/r_rcurl/package.py +++ b/repos/spack_repo/builtin/packages/r_rcurl/package.py @@ -31,8 +31,11 @@ class RRcurl(RPackage): version("1.95-4.12", sha256="393779efafdf40823dac942a1e028905d65c34f3d41cfd21bcd225e411385ff4") version("1.95-4.8", sha256="e72243251bbbec341bc5864305bb8cc23d311d19c5d0d9310afec7eb35aa2bfb") + depends_on("c", type="build") + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@3.4.0:", type=("build", "run"), when="@1.98:") depends_on("r-bitops", type=("build", "run")) depends_on("curl") depends_on("gmake", type="build") + depends_on("icu4c", type=("build", "link", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rdpack/package.py b/repos/spack_repo/builtin/packages/r_rdpack/package.py index afe848ed3f0..4214a8c2b7c 100644 --- a/repos/spack_repo/builtin/packages/r_rdpack/package.py +++ b/repos/spack_repo/builtin/packages/r_rdpack/package.py @@ -20,6 +20,9 @@ class RRdpack(RPackage): cran = "Rdpack" + license("GPL-2.0-or-later AND GPL-3.0-or-later") + + version("2.6.6", sha256="b4e19d22bd5a2ec79cdb08ba209e79c66ea16dbc2fd2e7db8bca46412651cbdb") version("2.6.1", sha256="39626397c4ab1706bfdc53433dbaa0a6cb691dcba68173945b5a9eb041acf945") version("2.4", sha256="7652add12b30fcba1f3a12493a089a4166079e78c47b95802a98595a3ff53581") version("2.3", sha256="c45e1ab8352b92ce03f26ece1f4db3716959fca2af9e826d5bd3c76b2151f7c5") @@ -27,8 +30,12 @@ class RRdpack(RPackage): version("2.1", sha256="26e094fe3c077fb2a99e95c5bd94015a5f993a4a5f5d217829b4872ff004bfce") version("0.11-0", sha256="8fb449c80fbe931cdce51f728fb03a1978009ccce66fd6b9edacdc6ff4118d85") - depends_on("r@2.15.0:", type=("build", "run")) - depends_on("r-rbibutils@1.3:", type=("build", "run"), when="@2.1:") + with default_args(type=("build", "run")): + depends_on("r@2.15.0:") + + depends_on("r-rbibutils@2.4.1:", when="@2.6.5:") + depends_on("r-rbibutils@1.3:", when="@2.1:") - depends_on("r-bibtex@0.4.0:", type=("build", "run"), when="@:0.11-0") - depends_on("r-gbrd", type=("build", "run"), when="@:2.1") + # Historical dependencies + depends_on("r-bibtex@0.4.0:", when="@:0.11-0") + depends_on("r-gbrd", when="@:2.1") diff --git a/repos/spack_repo/builtin/packages/r_readr/package.py b/repos/spack_repo/builtin/packages/r_readr/package.py index 9d756c69055..8187837b024 100644 --- a/repos/spack_repo/builtin/packages/r_readr/package.py +++ b/repos/spack_repo/builtin/packages/r_readr/package.py @@ -19,6 +19,7 @@ class RReadr(RPackage): license("MIT") + version("2.2.0", sha256="8025d797c183e12ad5ebe4af891dbcb5a8e9bd53aa4765006eb25a07f9a9f473") version("2.1.5", sha256="0fa65a5fe0a46cffe221b7696b52adb82dd4d7a692a895484e438e439594e10a") version("2.1.4", sha256="98144fa48c4fa61ef8c73ede8f87a2d2c5c44e9502b7875b266eb79984fbeb0d") version("2.1.3", sha256="d70dd55e80e87cf1387811fcdc3da92987a892ee75dae02f77ff074142618263") @@ -32,28 +33,37 @@ class RReadr(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@3.0.2:", type=("build", "run")) - depends_on("r@3.1:", type=("build", "run"), when="@1.3.0:") - depends_on("r@3.4:", type=("build", "run"), when="@2.1.3:") - depends_on("r@3.5:", type=("build", "run"), when="@2.1.4:") - depends_on("r@3.6:", type=("build", "run"), when="@2.1.5:") - depends_on("r-cli", type=("build", "run"), when="@1.4.0:") - depends_on("r-cli@3.0.0:", type=("build", "run"), when="@2.1.2:") - depends_on("r-cli@3.2.0:", type=("build", "run"), when="@2.1.3:") - depends_on("r-clipr", type=("build", "run"), when="@1.2.0:") - depends_on("r-crayon", type=("build", "run"), when="@1.3.1:") - depends_on("r-hms@0.4.1:", type=("build", "run")) - depends_on("r-lifecycle", type=("build", "run"), when="@1.4.0:") - depends_on("r-lifecycle@0.2.0:", type=("build", "run"), when="@2:") - depends_on("r-r6", type=("build", "run")) - depends_on("r-rlang", type=("build", "run"), when="@1.4.0:") - depends_on("r-tibble", type=("build", "run")) - depends_on("r-vroom@1.5.2:", type=("build", "run"), when="@2.0.0") - depends_on("r-vroom@1.5.4:", type=("build", "run"), when="@2.0.1:") - depends_on("r-vroom@1.5.6:", type=("build", "run"), when="@2.1.1:") - depends_on("r-vroom@1.6.0:", type=("build", "run"), when="@2.1.3:") - depends_on("r-cpp11", type=("build", "run"), when="@1.4.0:") - depends_on("r-tzdb@0.1.1:", type=("build", "run"), when="@2:") - - depends_on("r-bh", type=("build", "run"), when="@:1") - depends_on("r-rcpp@0.12.0.5:", type=("build", "run"), when="@:1.3.1") + with default_args(type=("build", "run")): + depends_on("r@4.1:", when="@2.2.0:") + depends_on("r@3.6:", when="@2.1.5:") + depends_on("r@3.5:", when="@2.1.4:") + depends_on("r@3.4:", when="@2.1.3:") + depends_on("r@3.1:", when="@1.3.0:") + depends_on("r@3.0.2:") + + # no lower version restriction anymore in new release -> leave it anyway + depends_on("r-cli@3.2.0:", when="@2.1.3:") + depends_on("r-cli@3.0.0:", when="@2.1.2:") + depends_on("r-cli", when="@1.4.0:") + depends_on("r-clipr", when="@1.2.0:") + depends_on("r-crayon", when="@1.3.1:") + depends_on("r-glue", when="@2.2.0:") + depends_on("r-hms@0.4.1:") + # no lower version restriction anymore in new release -> leave it anyway + depends_on("r-lifecycle@0.2.0:", when="@2:") + depends_on("r-lifecycle", when="@1.4.0:") + depends_on("r-r6") + depends_on("r-rlang", when="@1.4.0:") + depends_on("r-tibble") + depends_on("r-vroom@1.7.0:", when="@2.2.0:") + depends_on("r-vroom@1.6.0:", when="@2.1.3:") + depends_on("r-vroom@1.5.6:", when="@2.1.1:") + depends_on("r-vroom@1.5.4:", when="@2.0.1:") + depends_on("r-vroom@1.5.2:", when="@2.0.0") + depends_on("r-withr", when="@2.2.0:") + depends_on("r-cpp11", when="@1.4.0:") + depends_on("r-tzdb@0.1.1:", when="@2:") + + # Historical dependencies + depends_on("r-bh", when="@:1") + depends_on("r-rcpp@0.12.0.5:", when="@:1.3.1") diff --git a/repos/spack_repo/builtin/packages/r_readxl/package.py b/repos/spack_repo/builtin/packages/r_readxl/package.py index fa0844b9ec4..50aafe41c0a 100644 --- a/repos/spack_repo/builtin/packages/r_readxl/package.py +++ b/repos/spack_repo/builtin/packages/r_readxl/package.py @@ -19,6 +19,7 @@ class RReadxl(RPackage): license("MIT") + version("1.4.5", sha256="09d70d7bbafbe129ce687b8743dbf6b9d0f201205b30dc515a00b35fcc1bdedf") version("1.4.3", sha256="7efebbcdefeb8523633db62b3eeb6ea2e4e81e3d010d8b2adb134011c09a5948") version("1.4.2", sha256="387304e2c5be0dca4861ec0232f0d92cc1882b660ca917f8f2a8a4ae858aba11") version("1.4.1", sha256="f6bebb7f940fb21baacd60345b7075c77eb1d026466c55e6a36148de680da1fa") @@ -31,13 +32,14 @@ class RReadxl(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@3.4:", type=("build", "run"), when="@1.4.0:") - depends_on("r@3.5:", type=("build", "run"), when="@1.4.2:") depends_on("r@3.6:", type=("build", "run"), when="@1.4.3:") + depends_on("r@3.5:", type=("build", "run"), when="@1.4.2:") + depends_on("r@3.4:", type=("build", "run"), when="@1.4.0:") depends_on("r-cellranger", type=("build", "run")) - depends_on("r-tibble@1.3.1:", type=("build", "run")) depends_on("r-tibble@2.0.1:", type=("build", "run"), when="@1.4.0:") + depends_on("r-tibble@1.3.1:", type=("build", "run")) depends_on("r-cpp11@0.4.0:", type=("build", "run"), when="@1.4.0:") depends_on("r-progress", type=("build", "run"), when="@1.2.0:") + # Historical dependencies depends_on("r-rcpp@0.12.18:", type=("build", "run"), when="@:1.3.1") diff --git a/repos/spack_repo/builtin/packages/r_reformulas/package.py b/repos/spack_repo/builtin/packages/r_reformulas/package.py new file mode 100644 index 00000000000..bf167cdad3c --- /dev/null +++ b/repos/spack_repo/builtin/packages/r_reformulas/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.r import RPackage + +from spack.package import * + + +class RReformulas(RPackage): + """Machinery for Processing Random Effect Formulas + + Takes formulas including random-effects components (formatted as in + 'lme4', 'glmmTMB', etc.) and processes them. Includes various helper + functions.""" + + cran = "reformulas" + + license("GPL-3.0-or-later") + + version("0.4.4", sha256="6a76d85eb4e19325aef87510180175f8cd7b5904a7075c89aff073765529e2f7") + version("0.4.1", sha256="60c585ef8791d3f3f8d0c6eeac83fabcf1f21960a6ad1abd2b756603c603f0de") + + depends_on("r-matrix", type=("build", "run")) + depends_on("r-rdpack", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_reordercluster/package.py b/repos/spack_repo/builtin/packages/r_reordercluster/package.py index b8d4483f21f..55169bd5cc8 100644 --- a/repos/spack_repo/builtin/packages/r_reordercluster/package.py +++ b/repos/spack_repo/builtin/packages/r_reordercluster/package.py @@ -19,6 +19,8 @@ class RReordercluster(RPackage): version("2.0", sha256="38862ba2ef2a88ea70b12d50352a96f3b2ea032861256702387989bdfb20017f") version("1.0", sha256="a87898faa20380aac3e06a52eedcb2f0eb2b35ab74fdc3435d40ee9f1d28476b") + depends_on("cxx", type="build") # generated + depends_on("r@2.10:", type=("build", "run")) depends_on("r@2.13.0:", type=("build", "run"), when="@2.0:") depends_on("r-gtools", type=("build", "run"), when="@2.0:") diff --git a/repos/spack_repo/builtin/packages/r_reportingtools/package.py b/repos/spack_repo/builtin/packages/r_reportingtools/package.py index 1dfad2a4902..78576714542 100644 --- a/repos/spack_repo/builtin/packages/r_reportingtools/package.py +++ b/repos/spack_repo/builtin/packages/r_reportingtools/package.py @@ -24,16 +24,17 @@ class RReportingtools(RPackage): bioc = "ReportingTools" - version("2.40.0", commit="808af36aa9756be8c907a8669726c90dcd02c73c") - version("2.38.0", commit="5c4971eebbaf3577ef20b74bf36c2db4e91561cc") - version("2.36.0", commit="34122d4bde5ce43415f63f2e39e3a088c55282cc") - version("2.34.0", commit="fb5aef0b6e1c6166d0f025d9e6ca60e54c68dbaf") - version("2.30.0", commit="fb9aee416f38cfd308d6d7264ccbcda0467642a7") - version("2.24.0", commit="d114c658affba9b682a37b4e2caf4341cf8da6cf") - version("2.22.1", commit="dce6af6c6a1cddff077fe61368f2c13e5a0e7bab") - version("2.20.0", commit="77e14ae13fdc16654300852dfd94e6cef58009da") - version("2.17.3", commit="b2e379cd5b813d8ccca37ec25f0660deec943622") - version("2.16.0", commit="b1aa0ea302da7f2993ce8087b1d09c11ddf03663") + with default_args(get_full_repo=True): + version("2.40.0", commit="808af36aa9756be8c907a8669726c90dcd02c73c") + version("2.38.0", commit="5c4971eebbaf3577ef20b74bf36c2db4e91561cc") + version("2.36.0", commit="34122d4bde5ce43415f63f2e39e3a088c55282cc") + version("2.34.0", commit="fb5aef0b6e1c6166d0f025d9e6ca60e54c68dbaf") + version("2.30.0", commit="fb9aee416f38cfd308d6d7264ccbcda0467642a7") + version("2.24.0", commit="d114c658affba9b682a37b4e2caf4341cf8da6cf") + version("2.22.1", commit="dce6af6c6a1cddff077fe61368f2c13e5a0e7bab") + version("2.20.0", commit="77e14ae13fdc16654300852dfd94e6cef58009da") + version("2.17.3", commit="b2e379cd5b813d8ccca37ec25f0660deec943622") + version("2.16.0", commit="b1aa0ea302da7f2993ce8087b1d09c11ddf03663") depends_on("r+X", type=("build", "run")) depends_on("r-knitr", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_reshape2/package.py b/repos/spack_repo/builtin/packages/r_reshape2/package.py index ef02d5238ff..db5ac05c026 100644 --- a/repos/spack_repo/builtin/packages/r_reshape2/package.py +++ b/repos/spack_repo/builtin/packages/r_reshape2/package.py @@ -17,6 +17,7 @@ class RReshape2(RPackage): license("MIT") + version("1.4.5", sha256="0ead5acd0153e5073b3c24e8e782982a4eab3aaa768ba17700d796fb13b68cef") version("1.4.4", sha256="d88dcf9e2530fa9695fc57d0c78adfc5e361305fe8919fe09410b17da5ca12d8") version("1.4.3", sha256="8aff94c935e75032344b52407593392ddd4e16a88bb206984340c816d42c710e") version("1.4.2", sha256="6d3783610379be4c5676d9236cf66276a166b5b96c18f2759e9b219758959b6b") @@ -24,7 +25,9 @@ class RReshape2(RPackage): depends_on("cxx", type="build") # generated - depends_on("r@3.1:", type=("build", "run"), when="@1.4.3:") - depends_on("r-plyr@1.8.1:", type=("build", "run")) - depends_on("r-rcpp", type=("build", "run")) - depends_on("r-stringr", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("r@3.1:", when="@1.4.3:") + + depends_on("r-plyr@1.8.1:") + depends_on("r-rcpp") + depends_on("r-stringr") diff --git a/repos/spack_repo/builtin/packages/r_reticulate/package.py b/repos/spack_repo/builtin/packages/r_reticulate/package.py index 0feb5457e90..6a9708c92c3 100644 --- a/repos/spack_repo/builtin/packages/r_reticulate/package.py +++ b/repos/spack_repo/builtin/packages/r_reticulate/package.py @@ -30,6 +30,8 @@ class RReticulate(RPackage): version("1.15", sha256="47db3e9c9424263ade15287da8e74f6ba261a936b644b197dba6772853b7b50d") version("1.13", sha256="adbe41d556b667c4419d563680f8608a56b0f792b8bc427b3bf4c584ff819de3") + depends_on("cxx", type="build") # generated + depends_on("r@3.0:", type=("build", "run")) depends_on("r@3.5:", type=("build", "run"), when="@1.30.0:") depends_on("r-matrix", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rfast/package.py b/repos/spack_repo/builtin/packages/r_rfast/package.py index 0e7412e8264..062ca29487e 100644 --- a/repos/spack_repo/builtin/packages/r_rfast/package.py +++ b/repos/spack_repo/builtin/packages/r_rfast/package.py @@ -27,6 +27,9 @@ class RRfast(RPackage): version("2.0.6", sha256="34694b5c67ce8fcbdc90aac2ac80a74d4b66515f383e6301aea7c020009ebe7f") version("2.0.4", sha256="959907e36e24620c07ec282b203b40214f4914f4928c07ee6491043c27af31d9") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-rcpp@0.12.3:", type=("build", "run")) depends_on("r-rcppparallel", type=("build", "run"), when="@2.1.0:") diff --git a/repos/spack_repo/builtin/packages/r_rgdal/package.py b/repos/spack_repo/builtin/packages/r_rgdal/package.py index 281aca874b2..d1247a45fb5 100644 --- a/repos/spack_repo/builtin/packages/r_rgdal/package.py +++ b/repos/spack_repo/builtin/packages/r_rgdal/package.py @@ -25,51 +25,9 @@ class RRgdal(RPackage): cran = "rgdal" version("1.6-7", sha256="555cedfdadb05db90b061d4b056f96d8b7010c00ea54bc6c1bbcc7684fadae33") - version( - "1.6-6", - sha256="d742d7aadfc004771e61cac28a1faffeb4dbda981dea19115be11c541087399a", - deprecated=True, - ) - version( - "1.6-2", - sha256="7eab4b0adaa788b985cd33da214799d562a943f5788631ebd1301dfc69ca033d", - deprecated=True, - ) - version( - "1.5-32", - sha256="4583a4e187492eb936b59bc6bfeefea687b115bc3ae25172e0ed348b38f473ed", - deprecated=True, - ) - version( - "1.5-28", - sha256="7f54432cfa8c0db463f68e8856c3ca0a90671dc841ac5203af049eb318e261a2", - deprecated=True, - ) - version( - "1.5-19", - sha256="6fbfd71b19e7b8d9dbddc91cb1eef8890c74a1e2bf8f619da165ff51bf1231b2", - deprecated=True, - ) - version( - "1.5-18", - sha256="53467c19bc93d8ea311458eaa281c8c456168ab75e84d76ef5cc6c00f53122df", - deprecated=True, - ) - version( - "1.4-4", - sha256="2532e76e0af27d145f799d70006a5dbecb2d3be698e3d0bbf580f4c41a34c5d7", - deprecated=True, - ) - version( - "1.3-9", - sha256="3e44f88d09894be4c0abd8874d00b40a4a5f4542b75250d098ffbb3ba41e2654", - deprecated=True, - ) - version( - "1.2-16", - sha256="017fefea4f9a6d4540d128c707197b7025b55e4aff98fc763065366b025b03c9", - deprecated=True, - ) + + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated depends_on("r@3.3.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@1.5:") diff --git a/repos/spack_repo/builtin/packages/r_rgenoud/package.py b/repos/spack_repo/builtin/packages/r_rgenoud/package.py index 4caa66feee4..423f28a723f 100644 --- a/repos/spack_repo/builtin/packages/r_rgenoud/package.py +++ b/repos/spack_repo/builtin/packages/r_rgenoud/package.py @@ -22,4 +22,7 @@ class RRgenoud(RPackage): version("5.8-2.0", sha256="106c4f6a6df5159578e929a0141b3cfbaa88141a70703ff59a1fc48a27e2d239") version("5.8-1.0", sha256="9deca354be6887f56bf9f4ca9a7291296050e51149ae9a3b757501704126c38a") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@2.15:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rgeos/package.py b/repos/spack_repo/builtin/packages/r_rgeos/package.py index 11c3793c443..c93877c09b7 100644 --- a/repos/spack_repo/builtin/packages/r_rgeos/package.py +++ b/repos/spack_repo/builtin/packages/r_rgeos/package.py @@ -32,31 +32,9 @@ class RRgeos(RPackage): cran = "rgeos" version("0.6-4", sha256="9d03c4de96fd3fad55ff8d1ff8113dcaaa00f15d9d0588e54c9f91751bcede11") - version( - "0.6-2", - sha256="2ee2bb8b0c20d7908ac55d4d1cf8292c624ab836e02599ce1871a249a59fe0af", - deprecated=True, - ) - version( - "0.5-9", - sha256="ab90cbfe6a3680a9d2eed5e655064a075adc66788e304468969ab7cc2df0e3d4", - deprecated=True, - ) - version( - "0.5-5", - sha256="4baa0dfe6ff76e87ddb67a030fc14fe963d28b518485a4d71058923b2606d420", - deprecated=True, - ) - version( - "0.5-1", - sha256="8408973e7fe5648e39aa53f3d4bfe800638021a146a4e06f86496c0132e05488", - deprecated=True, - ) - version( - "0.3-26", - sha256="98524a0b8113abe6c3d0ecc1f2f66e7ab6d40c783a76158cfc017e1ab1e3f433", - deprecated=True, - ) + + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated depends_on("r@3.3.0:", type=("build", "run")) depends_on("r-sp@1.1-0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rgl/package.py b/repos/spack_repo/builtin/packages/r_rgl/package.py index 21d35951f61..c911407d373 100644 --- a/repos/spack_repo/builtin/packages/r_rgl/package.py +++ b/repos/spack_repo/builtin/packages/r_rgl/package.py @@ -33,6 +33,9 @@ class RRgl(RPackage): version("0.99.16", sha256="692a545ed2ff0f5e15289338736f0e3c092667574c43ac358d8004901d7a1a61") version("0.98.1", sha256="5f49bed9e092e672f73c8a1a5365cdffcda06db0315ac087e95ab9c9c71a6986") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r+X", type=("build", "run")) depends_on("r@3.2.0:", type=("build", "run")) depends_on("r@3.3.0:", type=("build", "run"), when="@0.108.3:") diff --git a/repos/spack_repo/builtin/packages/r_rgraphviz/package.py b/repos/spack_repo/builtin/packages/r_rgraphviz/package.py index 356a04847a9..ac7583016d0 100644 --- a/repos/spack_repo/builtin/packages/r_rgraphviz/package.py +++ b/repos/spack_repo/builtin/packages/r_rgraphviz/package.py @@ -15,16 +15,17 @@ class RRgraphviz(RPackage): bioc = "Rgraphviz" - version("2.44.0", commit="1a1540d66afa0b5a693eee2acac8ad96cfc0a2e6") - version("2.42.0", commit="f6877441ab256876ef6a62c2e6faf980c2190b20") - version("2.40.0", commit="d864c9741c9177bc627cca1198673be2b1bfbc3e") - version("2.38.0", commit="004de09a5b171211aff6cbaa1969ab8e3a5d6c61") - version("2.34.0", commit="9746623211be794226258631992dfcccccfd7487") - version("2.28.0", commit="c1f57c11f037c977f1d17f227f12a09a999e8c0b") - version("2.26.0", commit="e9b08c77121a45c65129d94a12b5c0b31c65617f") - version("2.24.0", commit="7d1fb00afed0d44e32b4a46f10137ab34f100577") - version("2.22.0", commit="5b8ebbf9b38574c08959dd4632e802b3fbccc121") - version("2.20.0", commit="eface6298150667bb22eac672f1a45e52fbf8c90") + with default_args(get_full_repo=True): + version("2.44.0", commit="1a1540d66afa0b5a693eee2acac8ad96cfc0a2e6") + version("2.42.0", commit="f6877441ab256876ef6a62c2e6faf980c2190b20") + version("2.40.0", commit="d864c9741c9177bc627cca1198673be2b1bfbc3e") + version("2.38.0", commit="004de09a5b171211aff6cbaa1969ab8e3a5d6c61") + version("2.34.0", commit="9746623211be794226258631992dfcccccfd7487") + version("2.28.0", commit="c1f57c11f037c977f1d17f227f12a09a999e8c0b") + version("2.26.0", commit="e9b08c77121a45c65129d94a12b5c0b31c65617f") + version("2.24.0", commit="7d1fb00afed0d44e32b4a46f10137ab34f100577") + version("2.22.0", commit="5b8ebbf9b38574c08959dd4632e802b3fbccc121") + version("2.20.0", commit="eface6298150667bb22eac672f1a45e52fbf8c90") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_rhdf5/package.py b/repos/spack_repo/builtin/packages/r_rhdf5/package.py index af08bcb3d96..c8b8b08e187 100644 --- a/repos/spack_repo/builtin/packages/r_rhdf5/package.py +++ b/repos/spack_repo/builtin/packages/r_rhdf5/package.py @@ -20,16 +20,17 @@ class RRhdf5(RPackage): bioc = "rhdf5" - version("2.44.0", commit="0f6e367ca9e97c37c683cd0f97c06732a67146f0") - version("2.42.0", commit="fa26027d57b5b6d1c297446d9bbed74d5710c5d2") - version("2.40.0", commit="fb6c15a3199f3ffd746fb9a381d574d17fef45a2") - version("2.38.0", commit="f6fdfa807f5cd5a4d11d4aa6ebfaa81c118b4c3f") - version("2.34.0", commit="ec861b81fc6962e844bf56b7549ba565a7e4c69c") - version("2.28.1", commit="e230fa34d6f3e97dd4e6065115675baf5e8213bb") - version("2.26.2", commit="81e11258db493661a19cf83e142b690ecac4e6cf") - version("2.24.0", commit="e926e8ce4e77082781afb943324a1e6745385b48") - version("2.22.0", commit="4431bdc0a2bcbb8086ee08a0f2300129b808d1be") - version("2.20.0", commit="37b5165325062728bbec9167f89f5f4b794f30bc") + with default_args(get_full_repo=True): + version("2.44.0", commit="0f6e367ca9e97c37c683cd0f97c06732a67146f0") + version("2.42.0", commit="fa26027d57b5b6d1c297446d9bbed74d5710c5d2") + version("2.40.0", commit="fb6c15a3199f3ffd746fb9a381d574d17fef45a2") + version("2.38.0", commit="f6fdfa807f5cd5a4d11d4aa6ebfaa81c118b4c3f") + version("2.34.0", commit="ec861b81fc6962e844bf56b7549ba565a7e4c69c") + version("2.28.1", commit="e230fa34d6f3e97dd4e6065115675baf5e8213bb") + version("2.26.2", commit="81e11258db493661a19cf83e142b690ecac4e6cf") + version("2.24.0", commit="e926e8ce4e77082781afb943324a1e6745385b48") + version("2.22.0", commit="4431bdc0a2bcbb8086ee08a0f2300129b808d1be") + version("2.20.0", commit="37b5165325062728bbec9167f89f5f4b794f30bc") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_rhdf5filters/package.py b/repos/spack_repo/builtin/packages/r_rhdf5filters/package.py index 24254dfd08a..717de569624 100644 --- a/repos/spack_repo/builtin/packages/r_rhdf5filters/package.py +++ b/repos/spack_repo/builtin/packages/r_rhdf5filters/package.py @@ -16,11 +16,12 @@ class RRhdf5filters(RPackage): license("BSD-2-Clause") - version("1.12.0", commit="4deabdef71c0349c4eaf7e5604cb7f389809f006") - version("1.10.0", commit="6131538e2c5896dca0af33882bc2da961d79e49a") - version("1.8.0", commit="b0b588b71a5595b30f4e698a50b84310dc19745d") - version("1.6.0", commit="5f7f3a5b7dabd6e7d0c50cda70290e2472ff4f53") - version("1.2.0", commit="25af0180f926b4b3ea11b30ec9277d26ad3d56b3") + with default_args(get_full_repo=True): + version("1.12.0", commit="4deabdef71c0349c4eaf7e5604cb7f389809f006") + version("1.10.0", commit="6131538e2c5896dca0af33882bc2da961d79e49a") + version("1.8.0", commit="b0b588b71a5595b30f4e698a50b84310dc19745d") + version("1.6.0", commit="5f7f3a5b7dabd6e7d0c50cda70290e2472ff4f53") + version("1.2.0", commit="25af0180f926b4b3ea11b30ec9277d26ad3d56b3") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_rhdf5lib/package.py b/repos/spack_repo/builtin/packages/r_rhdf5lib/package.py index 196055de706..bf045444e1b 100644 --- a/repos/spack_repo/builtin/packages/r_rhdf5lib/package.py +++ b/repos/spack_repo/builtin/packages/r_rhdf5lib/package.py @@ -14,15 +14,16 @@ class RRhdf5lib(RPackage): bioc = "Rhdf5lib" - version("1.22.0", commit="2bf06b364e8d478549b07a298eaf60177a050dc9") - version("1.20.0", commit="760679995f17996a9de328cf7a8bcaa6c87286d4") - version("1.18.2", commit="d104bbfdb91ac5ec7db3c453f23e4d1d6feb671f") - version("1.16.0", commit="534c49705dbdb27ae0c564acff2c72df2b27b3f1") - version("1.12.1", commit="cf464f40fd95274d0d351cf28b586c49307c4f0b") - version("1.6.3", commit="11ac3069f28b0068002db9c645817401f6c5b3c4") - version("1.4.3", commit="f6be8c2659b2daa17541506058917b7981490d65") - version("1.2.1", commit="dbf85dbedb736d5a696794d52875729c8514494e") - version("1.0.0", commit="79608038c2016a518ba747fe6a2bf02ce53a75f9") + with default_args(get_full_repo=True): + version("1.22.0", commit="2bf06b364e8d478549b07a298eaf60177a050dc9") + version("1.20.0", commit="760679995f17996a9de328cf7a8bcaa6c87286d4") + version("1.18.2", commit="d104bbfdb91ac5ec7db3c453f23e4d1d6feb671f") + version("1.16.0", commit="534c49705dbdb27ae0c564acff2c72df2b27b3f1") + version("1.12.1", commit="cf464f40fd95274d0d351cf28b586c49307c4f0b") + version("1.6.3", commit="11ac3069f28b0068002db9c645817401f6c5b3c4") + version("1.4.3", commit="f6be8c2659b2daa17541506058917b7981490d65") + version("1.2.1", commit="dbf85dbedb736d5a696794d52875729c8514494e") + version("1.0.0", commit="79608038c2016a518ba747fe6a2bf02ce53a75f9") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_rhtslib/package.py b/repos/spack_repo/builtin/packages/r_rhtslib/package.py index 8e1302c76d8..708ce46a295 100644 --- a/repos/spack_repo/builtin/packages/r_rhtslib/package.py +++ b/repos/spack_repo/builtin/packages/r_rhtslib/package.py @@ -28,16 +28,18 @@ class RRhtslib(RPackage): # branches. # Aborting # version("1.28.0", commit='214fde2218bdbca89f1e12a30d2e081e76915aef') - version("2.0.0", commit="1757333eb88625158505e5fa47840081110cf8a4") - version("1.28.0", branch="RELEASE_3_15") - version("1.26.0", commit="f5b20e97b283942877529f750b28398782552655") - version("1.22.0", commit="899b79faa54d42c7c9b9a2bc49972109637d367f") - version("1.18.1", commit="751a2ebaed43b7991204b27bd6c7870645001d82") - version("1.16.3", commit="3ed0b5db2ee3cf0df1c6096fde8855c8485eebd4") - version("1.14.1", commit="4be260720f845a34d0ac838278fce1363f645230") - version("1.12.1", commit="e3487b1355995d09b28fde5d0a7504a3e79a7203") - version("1.10.0", commit="53dcf7dfe35d735283956c77c011a97ca3f4eb26") - version("1.8.0", commit="3b5493473bed42958614091c58c739932ffcfa79") + with default_args(get_full_repo=True): + version("3.4.0", commit="2779f264713fa4bb06811a220fb00bda155d9dc1") + version("2.0.0", commit="1757333eb88625158505e5fa47840081110cf8a4") + version("1.28.0", branch="RELEASE_3_15") + version("1.26.0", commit="f5b20e97b283942877529f750b28398782552655") + version("1.22.0", commit="899b79faa54d42c7c9b9a2bc49972109637d367f") + version("1.18.1", commit="751a2ebaed43b7991204b27bd6c7870645001d82") + version("1.16.3", commit="3ed0b5db2ee3cf0df1c6096fde8855c8485eebd4") + version("1.14.1", commit="4be260720f845a34d0ac838278fce1363f645230") + version("1.12.1", commit="e3487b1355995d09b28fde5d0a7504a3e79a7203") + version("1.10.0", commit="53dcf7dfe35d735283956c77c011a97ca3f4eb26") + version("1.8.0", commit="3b5493473bed42958614091c58c739932ffcfa79") depends_on("c", type="build") # generated @@ -52,6 +54,8 @@ class RRhtslib(RPackage): # available depends_on("patchelf", type="build", when="@1.12:1.14") + conflicts("r@4.5.0:", when="@:3.3") + patch("use_spack_Makeconf.patch", when="@1.12:1.28.0") patch("find_deps-1.12.patch", when="@1.12:1.14") patch("find_deps-1.16.patch", when="@1.16:1.28.0") diff --git a/repos/spack_repo/builtin/packages/r_rinside/package.py b/repos/spack_repo/builtin/packages/r_rinside/package.py index 5d7ae84390d..ff48fd44e33 100644 --- a/repos/spack_repo/builtin/packages/r_rinside/package.py +++ b/repos/spack_repo/builtin/packages/r_rinside/package.py @@ -27,6 +27,7 @@ class RRinside(RPackage): cran = "RInside" + version("0.2.19", sha256="0703843a3f1460c571650138e5846d96552d6541766c7df72c609cd3aaca1f24") version("0.2.18", sha256="805014f0f0a364633e0e3c59100665a089bc455dec80b24f04aaec96466cb736") version("0.2.17", sha256="0be28c44ee34cba669a7264d2b99c289230645598ca78e21682559dc31824348") version("0.2.16", sha256="7ae4ade128ea05f37068d59e610822ff0b277f9d39d8900f7eb31759ad5a2a0e") @@ -36,5 +37,6 @@ class RRinside(RPackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + depends_on("gmake", type="build") depends_on("r-rcpp", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rjags/package.py b/repos/spack_repo/builtin/packages/r_rjags/package.py index 2c32a1fbffd..179564ae0d0 100644 --- a/repos/spack_repo/builtin/packages/r_rjags/package.py +++ b/repos/spack_repo/builtin/packages/r_rjags/package.py @@ -25,6 +25,9 @@ class RRjags(RPackage): version("4-8", sha256="1529827ab11493fb5f05552e239d700ae2f818995d86d3c9e4c92523f594b59f") version("4-6", sha256="cf24bb1e7c8445bafb49097089ad33e5bd5d8efbccf16fc7e32ad230f05f89ad") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@2.14.0:", type=("build", "run")) depends_on("r-coda@0.13:", type=("build", "run")) depends_on("jags@4.0.0:4.999.999", type=("link")) diff --git a/repos/spack_repo/builtin/packages/r_rjava/package.py b/repos/spack_repo/builtin/packages/r_rjava/package.py index 23729f12d5e..c3e2163138c 100644 --- a/repos/spack_repo/builtin/packages/r_rjava/package.py +++ b/repos/spack_repo/builtin/packages/r_rjava/package.py @@ -21,18 +21,20 @@ class RRjava(RPackage): version("0.9-11", sha256="c28ae131456a98f4d3498aa8f6eac9d4df48727008dacff1aa561fc883972c69") version("0.9-8", sha256="dada5e031414da54eb80b9024d51866c20b92d41d68da65789fe0130bc54bd8a") + depends_on("c", type="build") + depends_on("r+java", type=("build", "run")) depends_on("r@2.5:", type=("build", "run")) depends_on("r@3.6.0:", type=("build", "run"), when="@1.0-6:") depends_on("java@2:") depends_on("gmake", type="build") - - # these are not listed as dependencies but are needed + # These are not listed as dependencies but are needed depends_on("bzip2") depends_on("icu4c") depends_on("iconv") depends_on("pcre2") depends_on("xz") depends_on("zlib-api") + depends_on("zstd", when="^r@4.5:") def setup_build_environment(self, env: EnvironmentModifications) -> None: spec = self.spec diff --git a/repos/spack_repo/builtin/packages/r_rjsonio/package.py b/repos/spack_repo/builtin/packages/r_rjsonio/package.py index 7313bd8297e..b3456cf5564 100644 --- a/repos/spack_repo/builtin/packages/r_rjsonio/package.py +++ b/repos/spack_repo/builtin/packages/r_rjsonio/package.py @@ -35,3 +35,6 @@ class RRjsonio(RPackage): version("1.3-1.2", sha256="550e18f7c04186376d67747b8258f529d205bfc929da9194fe45ec384e092d7e") version("1.3-1.1", sha256="c72493b441758cd1e3e9d91296b9ea31068e71104649f46ad84c854a02c09693") version("1.3-0", sha256="119334b7761c6c1c3cec52fa17dbc1b72eaebb520c53e68d873dea147cf48fb7") + + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_rlang/package.py b/repos/spack_repo/builtin/packages/r_rlang/package.py index becef877524..7752be7e52d 100644 --- a/repos/spack_repo/builtin/packages/r_rlang/package.py +++ b/repos/spack_repo/builtin/packages/r_rlang/package.py @@ -17,6 +17,7 @@ class RRlang(RPackage): license("MIT") + version("1.1.7", sha256="123c91e7eaacd3514a368a31c30617d36a874def37f6cafdacc0c7d1409be373") version("1.1.4", sha256="f2d74527508bf3287102470beb27de0d234c3cbba399c28d3312f2c83c64a6e1") version("1.1.2", sha256="2a0ee1dc6e5c59b283c32db5e74e869922a336197cb406fe92622b6ec66f8092") version("1.1.1", sha256="5e5ec9a7796977216c39d94b1e342e08f0681746657067ba30de11b8fa8ada99") @@ -45,3 +46,4 @@ class RRlang(RPackage): depends_on("r@3.3.0:", type=("build", "run"), when="@0.4.10:") depends_on("r@3.4.0:", type=("build", "run"), when="@1.0.2:") depends_on("r@3.5.0:", type=("build", "run"), when="@1.1.0:") + depends_on("r@4.0.0:", type=("build", "run"), when="@1.1.7:") diff --git a/repos/spack_repo/builtin/packages/r_rmariadb/package.py b/repos/spack_repo/builtin/packages/r_rmariadb/package.py index 81d976b4b2f..0bdac98a2e8 100644 --- a/repos/spack_repo/builtin/packages/r_rmariadb/package.py +++ b/repos/spack_repo/builtin/packages/r_rmariadb/package.py @@ -22,6 +22,8 @@ class RRmariadb(RPackage): version("1.1.0", sha256="9ffa63a15052876a51a7996ca4e6a5b7b937f594b5cc7ca5a86f43789e22a956") version("1.0.8", sha256="3c8aedc519dc063ceb068535a3700bc5caf26f867078cc5a228aa8961e2d99f5") + depends_on("cxx", type="build") # generated + depends_on("r@2.8.0:", type=("build", "run")) depends_on("r-bit64", type=("build", "run")) depends_on("r-blob", type=("build", "run"), when="@1.2.1:") diff --git a/repos/spack_repo/builtin/packages/r_rmarkdown/package.py b/repos/spack_repo/builtin/packages/r_rmarkdown/package.py index c4ecb791ce3..ecb25656fd4 100644 --- a/repos/spack_repo/builtin/packages/r_rmarkdown/package.py +++ b/repos/spack_repo/builtin/packages/r_rmarkdown/package.py @@ -17,6 +17,7 @@ class RRmarkdown(RPackage): license("GPL-3.0-only") + version("2.31", sha256="0c5baed4a447292f15507794d2dde6b18bae1fa6c45ea6ada8bcd99ca211fcbc") version("2.28", sha256="a102a503a92d4203038c5a0675451daf9460df18efcabd5c23283ecefe75a085") version("2.21", sha256="c25b20a422d11a115c93460f41c488874002154abb349b14e0d6518682fdac28") version("2.17", sha256="aa576c458ec4c2e8468aaa4e3f60202d8d9c7ef54fa01d6b2d243bffee08c4be") @@ -30,30 +31,34 @@ class RRmarkdown(RPackage): version("1.7", sha256="c3191db65b9ad41b6dbb77aff53487701032d306e92b208ef7515b747931fe63") version("1.0", sha256="ff1ecb74ebc444b9b0b7b547adc512daefe1ee08d06bc0e3ee4eb68e58d2ef30") - depends_on("r+X", type=("build", "run")) - depends_on("r@3.0:", type=("build", "run")) - depends_on("r-bslib@0.2.5.1:", type=("build", "run"), when="@2.14:") - depends_on("r-evaluate@0.13:", type=("build", "run")) - depends_on("r-fontawesome@0.5.0:", type=("build", "run"), when="@2.21:") - depends_on("r-htmltools@0.3.5:", type=("build", "run")) - depends_on("r-htmltools@0.5.1:", type=("build", "run"), when="@2.16:") - depends_on("r-jquerylib", type=("build", "run"), when="@2.11:") - depends_on("r-jsonlite", type=("build", "run")) - depends_on("r-knitr@1.22:", type=("build", "run")) - depends_on("r-knitr@1.43:", type=("build", "run"), when="@2.26:") - depends_on("r-tinytex@0.11:", type=("build", "run"), when="@1.10:") - depends_on("r-tinytex@0.31:", type=("build", "run"), when="@2.8:") - depends_on("r-xfun", type=("build", "run"), when="@1.13:") - depends_on("r-xfun@0.15:", type=("build", "run"), when="@2.6:") - depends_on("r-xfun@0.21:", type=("build", "run"), when="@2.8:") - depends_on("r-xfun@0.30:", type=("build", "run"), when="@2.14:") - depends_on("r-xfun@0.36:", type=("build", "run"), when="@2.21:") - depends_on("r-yaml@2.1.19:", type=("build", "run")) - depends_on("pandoc@1.12.3:") - depends_on("pandoc@1.14:", when="@2.6:") + with default_args(type=("build", "run")): + depends_on("r+X") + depends_on("r@3.0:") + + depends_on("r-bslib@0.2.5.1:", when="@2.14:") + depends_on("r-evaluate@0.13:") + depends_on("r-fontawesome@0.5.0:", when="@2.21:") + depends_on("r-htmltools@0.5.1:", when="@2.16:") + depends_on("r-htmltools@0.3.5:") + depends_on("r-jquerylib", when="@2.11:") + depends_on("r-jsonlite") + depends_on("r-knitr@1.43:", when="@2.26:") + depends_on("r-knitr@1.22:") + depends_on("r-tinytex@0.31:", when="@2.8:") + depends_on("r-tinytex@0.11:", when="@1.10:") + depends_on("r-xfun@0.36:", when="@2.21:") + depends_on("r-xfun@0.30:", when="@2.14:") + depends_on("r-xfun@0.21:", when="@2.8:") + depends_on("r-xfun@0.15:", when="@2.6:") + depends_on("r-xfun", when="@1.13:") + depends_on("r-yaml@2.1.19:") - depends_on("r-rprojroot", type=("build", "run"), when="@1.3:1.7") - depends_on("r-mime", type=("build", "run"), when="@1.8:1.14") - depends_on("r-catools", type=("build", "run"), when="@:1.7") - depends_on("r-base64enc", type=("build", "run"), when="@:1.14") - depends_on("r-stringr@1.2.0:", type=("build", "run"), when="@1.6:2.25") + # Historical dependencies + depends_on("r-rprojroot", when="@1.3:1.7") + depends_on("r-mime", when="@1.8:1.14") + depends_on("r-catools", when="@:1.7") + depends_on("r-base64enc", when="@:1.14") + depends_on("r-stringr@1.2.0:", when="@1.6:2.25") + + depends_on("pandoc@1.14:", when="@2.6:") + depends_on("pandoc@1.12.3:") diff --git a/repos/spack_repo/builtin/packages/r_rmpfr/package.py b/repos/spack_repo/builtin/packages/r_rmpfr/package.py index 1b7422b0ce7..abd13289bae 100644 --- a/repos/spack_repo/builtin/packages/r_rmpfr/package.py +++ b/repos/spack_repo/builtin/packages/r_rmpfr/package.py @@ -27,6 +27,8 @@ class RRmpfr(RPackage): version("0.7-1", sha256="9b3021617a22b0710b0f1acc279290762317ff123fd9e8fd03f1449f4bbfe204") version("0.6-1", sha256="bf50991055e9336cd6a110d711ae8a91a0551b96f9eaab5fef8c05f578006e1c") + depends_on("c", type="build") # generated + depends_on("r@3.0.1:", type=("build", "run")) depends_on("r@3.1.0:", type=("build", "run"), when="@0.7-0") depends_on("r@3.3.0:", type=("build", "run"), when="@0.7-1:") diff --git a/repos/spack_repo/builtin/packages/r_rmpi/package.py b/repos/spack_repo/builtin/packages/r_rmpi/package.py index 55be0385ead..0ffe1ff2495 100644 --- a/repos/spack_repo/builtin/packages/r_rmpi/package.py +++ b/repos/spack_repo/builtin/packages/r_rmpi/package.py @@ -22,6 +22,8 @@ class RRmpi(RPackage): version("0.6-8", sha256="9b453ce3bd7284eda33493a0e47bf16db6719e3c48ac5f69deac6746f5438d96") version("0.6-6", sha256="d8fc09ad38264697caa86079885a7a1098921a3116d5a77a62022b9508f8a63a") + depends_on("c", type="build") # generated + depends_on("r@2.15.1:", type=("build", "run")) depends_on("mpi") diff --git a/repos/spack_repo/builtin/packages/r_rms/package.py b/repos/spack_repo/builtin/packages/r_rms/package.py index 5933910cde1..de8fdb28890 100644 --- a/repos/spack_repo/builtin/packages/r_rms/package.py +++ b/repos/spack_repo/builtin/packages/r_rms/package.py @@ -39,6 +39,9 @@ class RRms(RPackage): version("5.1-2", sha256="f1cfeef466ac436105756679353a3468027d97a600e3be755b819aef30ed9207") version("5.1-1", sha256="c489948df5c434b40bcf5288844f5b4e08d157f36939d09230c1600f88d1bfe3") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r@4.1.0:", type=("build", "run"), when="@6.8-0:") depends_on("r-hmisc@4.3-0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rmysql/package.py b/repos/spack_repo/builtin/packages/r_rmysql/package.py index 95832732529..b70780353bc 100644 --- a/repos/spack_repo/builtin/packages/r_rmysql/package.py +++ b/repos/spack_repo/builtin/packages/r_rmysql/package.py @@ -24,6 +24,8 @@ class RRmysql(RPackage): version("0.10.17", sha256="754df4fce159078c1682ef34fc96aa5ae30981dc91f4f2bada8d1018537255f5") version("0.10.9", sha256="41289c743dc8ee2e0dea8b8f291d65f0a7cd11e799b713d94840406ff296fd42") + depends_on("c", type="build") # generated + depends_on("r@2.8.0:", type=("build", "run")) depends_on("r-dbi@0.4:", type=("build", "run")) depends_on("mariadb-client") diff --git a/repos/spack_repo/builtin/packages/r_rnaseqmap/package.py b/repos/spack_repo/builtin/packages/r_rnaseqmap/package.py index 51f741f05df..199f8e57aaa 100644 --- a/repos/spack_repo/builtin/packages/r_rnaseqmap/package.py +++ b/repos/spack_repo/builtin/packages/r_rnaseqmap/package.py @@ -16,12 +16,13 @@ class RRnaseqmap(RPackage): bioc = "rnaSeqMap" - version("2.48.0", commit="a8c515e518cebf571d1524c3a8a986ba7d1557db") - version("2.42.0", commit="3a3a1030cc38d79d04536e0ab16114e4fa6721cf") - version("2.40.1", commit="c122d645b3503fb1a061f5515e4f8cf2863b3ba3") - version("2.38.0", commit="5eb9583bfacd375161739a8ae6057204487f8b9e") - version("2.36.0", commit="69c46fa467be0ac30776ede85a521f7622539b7e") - version("2.34.0", commit="7881bc00600ed824ac437edf3cfba35573261e46") + with default_args(get_full_repo=True): + version("2.48.0", commit="a8c515e518cebf571d1524c3a8a986ba7d1557db") + version("2.42.0", commit="3a3a1030cc38d79d04536e0ab16114e4fa6721cf") + version("2.40.1", commit="c122d645b3503fb1a061f5515e4f8cf2863b3ba3") + version("2.38.0", commit="5eb9583bfacd375161739a8ae6057204487f8b9e") + version("2.36.0", commit="69c46fa467be0ac30776ede85a521f7622539b7e") + version("2.34.0", commit="7881bc00600ed824ac437edf3cfba35573261e46") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_robust/package.py b/repos/spack_repo/builtin/packages/r_robust/package.py index e0f66dafed4..ed87ac6a01f 100644 --- a/repos/spack_repo/builtin/packages/r_robust/package.py +++ b/repos/spack_repo/builtin/packages/r_robust/package.py @@ -26,6 +26,9 @@ class RRobust(RPackage): version("0.4-18.1", sha256="de31901882873ef89748bb6863caf55734431df5b3eb3c6663ed17ee2e4a4077") version("0.4-18", sha256="e4196f01bb3b0d768759d4411d524238b627eb8dc213d84cb30014e75480f8ac") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r-fit-models", type=("build", "run")) depends_on("r-lattice", type=("build", "run")) depends_on("r-mass", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_robustbase/package.py b/repos/spack_repo/builtin/packages/r_robustbase/package.py index d7d601b37e3..5fcbfbe73c8 100644 --- a/repos/spack_repo/builtin/packages/r_robustbase/package.py +++ b/repos/spack_repo/builtin/packages/r_robustbase/package.py @@ -29,6 +29,9 @@ class RRobustbase(RPackage): version("0.93-4", sha256="ea9e03d484ef52ea805803477ffc48881e4c8c86ffda4eea56109f8b23f0a6e0") version("0.92-7", sha256="fcbd6ccbb0291b599fe6a674a91344511e0a691b9cadba0a9d40037faa22bf8f") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.0.2:", type=("build", "run")) depends_on("r@3.1.0:", type=("build", "run"), when="@0.93-2:") depends_on("r@3.5.0:", type=("build", "run"), when="@0.93-9:") diff --git a/repos/spack_repo/builtin/packages/r_roc/package.py b/repos/spack_repo/builtin/packages/r_roc/package.py index 86057568c73..793cc2d47fd 100644 --- a/repos/spack_repo/builtin/packages/r_roc/package.py +++ b/repos/spack_repo/builtin/packages/r_roc/package.py @@ -14,12 +14,13 @@ class RRoc(RPackage): bioc = "ROC" - version("1.76.0", commit="905ee01be734ed0a5674a4ce2cdc0cdea9d01cb9") - version("1.74.0", commit="982ad4d3606b19b8460e8a8af7cfe7c30b83f9b9") - version("1.72.0", commit="c5d083b01314280dd43eb4cddd8a7fde8b5dce18") - version("1.70.0", commit="44fd639958b9b1be4f8f731dc2be9dd91b2fa632") - version("1.66.0", commit="62701ee41f48f99d15344127384fa032db69486f") - version("1.62.0", commit="60250fdb091f6a938709b8a2cffe6442ee22a9a2") + with default_args(get_full_repo=True): + version("1.76.0", commit="905ee01be734ed0a5674a4ce2cdc0cdea9d01cb9") + version("1.74.0", commit="982ad4d3606b19b8460e8a8af7cfe7c30b83f9b9") + version("1.72.0", commit="c5d083b01314280dd43eb4cddd8a7fde8b5dce18") + version("1.70.0", commit="44fd639958b9b1be4f8f731dc2be9dd91b2fa632") + version("1.66.0", commit="62701ee41f48f99d15344127384fa032db69486f") + version("1.62.0", commit="60250fdb091f6a938709b8a2cffe6442ee22a9a2") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_rodbc/package.py b/repos/spack_repo/builtin/packages/r_rodbc/package.py index c1803c2187b..c202321782b 100644 --- a/repos/spack_repo/builtin/packages/r_rodbc/package.py +++ b/repos/spack_repo/builtin/packages/r_rodbc/package.py @@ -23,6 +23,8 @@ class RRodbc(RPackage): version("1.3-15", sha256="c43e5a2f0aa2f46607e664bfc0bb3caa230bbb779f4ff084e01727642da136e1") version("1.3-13", sha256="e8ea7eb77a07be36fc2d824c28bb426334da7484957ffbc719140373adf1667c") + depends_on("c", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@4.0.0:", type=("build", "run"), when="@1.3-17:") depends_on("unixodbc") diff --git a/repos/spack_repo/builtin/packages/r_rots/package.py b/repos/spack_repo/builtin/packages/r_rots/package.py index 64626d283c3..e2652cb9c8d 100644 --- a/repos/spack_repo/builtin/packages/r_rots/package.py +++ b/repos/spack_repo/builtin/packages/r_rots/package.py @@ -15,16 +15,17 @@ class RRots(RPackage): bioc = "ROTS" - version("1.28.0", commit="032cb97ed6fe303758856c669a4f63fb9e43d124") - version("1.26.0", commit="8bb45fe78779583ae4d30cf0dc3af0d8de405fdf") - version("1.24.0", commit="372e4623b39f585d4196d21164436c1ba013173f") - version("1.22.0", commit="a53ec77c40ed3b3c84e91d794c1602dd509cad83") - version("1.18.0", commit="1d4e206a8ce68d5a1417ff51c26174ed9d0ba7d2") - version("1.12.0", commit="7e2c96fd8fd36710321498745f24cc6b59ac02f0") - version("1.10.1", commit="1733d3f868cef4d81af6edfc102221d80793937b") - version("1.8.0", commit="02e3c6455bb1afe7c4cc59ad6d4d8bae7b01428b") - version("1.6.0", commit="3567ac1142ba97770b701ee8e5f9e3e6c781bd56") - version("1.4.0", commit="2e656514a4bf5a837ee6e14ce9b28a61dab955e7") + with default_args(get_full_repo=True): + version("1.28.0", commit="032cb97ed6fe303758856c669a4f63fb9e43d124") + version("1.26.0", commit="8bb45fe78779583ae4d30cf0dc3af0d8de405fdf") + version("1.24.0", commit="372e4623b39f585d4196d21164436c1ba013173f") + version("1.22.0", commit="a53ec77c40ed3b3c84e91d794c1602dd509cad83") + version("1.18.0", commit="1d4e206a8ce68d5a1417ff51c26174ed9d0ba7d2") + version("1.12.0", commit="7e2c96fd8fd36710321498745f24cc6b59ac02f0") + version("1.10.1", commit="1733d3f868cef4d81af6edfc102221d80793937b") + version("1.8.0", commit="02e3c6455bb1afe7c4cc59ad6d4d8bae7b01428b") + version("1.6.0", commit="3567ac1142ba97770b701ee8e5f9e3e6c781bd56") + version("1.4.0", commit="2e656514a4bf5a837ee6e14ce9b28a61dab955e7") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_roxygen2/package.py b/repos/spack_repo/builtin/packages/r_roxygen2/package.py index 82018642e2e..bb3a70dc5f7 100644 --- a/repos/spack_repo/builtin/packages/r_roxygen2/package.py +++ b/repos/spack_repo/builtin/packages/r_roxygen2/package.py @@ -29,6 +29,8 @@ class RRoxygen2(RPackage): version("6.1.1", sha256="ed46b7e062e0dfd8de671c7a5f6d120fb2b720982e918dbeb01e6985694c0273") version("5.0.1", sha256="9f755ddd08358be436f08b02df398e50e7508b856131aeeed235099bb3a7eba5") + depends_on("cxx", type="build") # generated + depends_on("r@3.0.2:", type=("build", "run")) depends_on("r@3.1:", type=("build", "run"), when="@6.1.0:") depends_on("r@3.2:", type=("build", "run"), when="@7.1.0:") diff --git a/repos/spack_repo/builtin/packages/r_rpart/package.py b/repos/spack_repo/builtin/packages/r_rpart/package.py index 5b8876ad770..173ad125f1c 100644 --- a/repos/spack_repo/builtin/packages/r_rpart/package.py +++ b/repos/spack_repo/builtin/packages/r_rpart/package.py @@ -26,4 +26,6 @@ class RRpart(RPackage): version("4.1-11", sha256="38ab80959f59bcdd2c4c72860e8dd0deab0307668cbbf24f96014d7a2496ad98") version("4.1-10", sha256="c5ddaed288d38118876a94c7aa5000dce0070b8d736dba12de64a9cb04dc2d85") + depends_on("c", type="build") # generated + depends_on("r@2.15.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rpostgres/package.py b/repos/spack_repo/builtin/packages/r_rpostgres/package.py index cefa1a15464..80c7d7420d2 100644 --- a/repos/spack_repo/builtin/packages/r_rpostgres/package.py +++ b/repos/spack_repo/builtin/packages/r_rpostgres/package.py @@ -21,6 +21,9 @@ class RRpostgres(RPackage): version("1.4.3", sha256="a5be494a54b6e989fadafdc6ee2dc5c4c15bb17bacea9ad540b175c693331be2") version("1.3.1", sha256="f68ab095567317ec32d3faa10e5bcac400aee5aeca8d7132260d4e90f82158ea") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.1.0:", type=("build", "run")) depends_on("r-bit64", type=("build", "run")) depends_on("r-blob@1.2.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rpostgresql/package.py b/repos/spack_repo/builtin/packages/r_rpostgresql/package.py index ef35b489c80..5eb137b30cb 100644 --- a/repos/spack_repo/builtin/packages/r_rpostgresql/package.py +++ b/repos/spack_repo/builtin/packages/r_rpostgresql/package.py @@ -31,6 +31,8 @@ class RRpostgresql(RPackage): version("0.6-2", sha256="080118647208bfa2621bcaac0d324891cc513e07618fa22e3c50ec2050e1b0d5") version("0.4-1", sha256="6292e37fa841670a3fb1a0950ceb83d15beb4631c3c532c8ce279d1c0d10bf79") + depends_on("c", type="build") # generated + depends_on("r@2.9.0:", type=("build", "run")) depends_on("r-dbi@0.3:", type=("build", "run")) depends_on("postgresql") diff --git a/repos/spack_repo/builtin/packages/r_rrcov/package.py b/repos/spack_repo/builtin/packages/r_rrcov/package.py index f02ef4caa7c..4c2050b53fb 100644 --- a/repos/spack_repo/builtin/packages/r_rrcov/package.py +++ b/repos/spack_repo/builtin/packages/r_rrcov/package.py @@ -33,6 +33,9 @@ class RRrcov(RPackage): version("1.5-5", sha256="1f7f07558e347e7d1f1adff68631764670bc672777a7d990901c4fa94cc0e629") version("1.4-7", sha256="cbd08ccce8b583a2f88946a3267c8fc494ee2b44ba749b9296a6e3d818f6f293") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@2.10:", type=("build", "run")) depends_on("r-robustbase@0.92.1:", type=("build", "run")) depends_on("r-mvtnorm", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rsamtools/package.py b/repos/spack_repo/builtin/packages/r_rsamtools/package.py index 6046459a744..7ccc473510e 100644 --- a/repos/spack_repo/builtin/packages/r_rsamtools/package.py +++ b/repos/spack_repo/builtin/packages/r_rsamtools/package.py @@ -20,17 +20,19 @@ class RRsamtools(RPackage): license("MIT") - version("2.16.0", commit="3eb6d03acecb8d640ec5201cacdc322e9e0c2445") - version("2.14.0", commit="8302eb7fa1c40384f1af5855222d94f2efbdcad1") - version("2.12.0", commit="d6a65dd57c5a17e4c441a27492e92072f69b175e") - version("2.10.0", commit="b19738e85a467f9032fc7903be3ba10e655e7061") - version("2.6.0", commit="f2aea061517c5a55e314c039251ece9831c7fad2") - version("2.2.1", commit="f10084658b4c9744961fcacd79c0ae9a7a40cd30") - version("2.0.3", commit="17d254cc026574d20db67474260944bf60befd70") - version("1.34.1", commit="0ec1d45c7a14b51d019c3e20c4aa87c6bd2b0d0c") - version("1.32.3", commit="0aa3f134143b045aa423894de81912becf64e4c2") - version("1.30.0", commit="61b365fe3762e796b3808cec7238944b7f68d7a6") - version("1.28.0", commit="dfa5b6abef68175586f21add7927174786412472") + with default_args(get_full_repo=True): + version("2.24.0", commit="5fa43af28dd6ae25fbabd23e2e7329003ba53e30") + version("2.16.0", commit="3eb6d03acecb8d640ec5201cacdc322e9e0c2445") + version("2.14.0", commit="8302eb7fa1c40384f1af5855222d94f2efbdcad1") + version("2.12.0", commit="d6a65dd57c5a17e4c441a27492e92072f69b175e") + version("2.10.0", commit="b19738e85a467f9032fc7903be3ba10e655e7061") + version("2.6.0", commit="f2aea061517c5a55e314c039251ece9831c7fad2") + version("2.2.1", commit="f10084658b4c9744961fcacd79c0ae9a7a40cd30") + version("2.0.3", commit="17d254cc026574d20db67474260944bf60befd70") + version("1.34.1", commit="0ec1d45c7a14b51d019c3e20c4aa87c6bd2b0d0c") + version("1.32.3", commit="0aa3f134143b045aa423894de81912becf64e4c2") + version("1.30.0", commit="61b365fe3762e796b3808cec7238944b7f68d7a6") + version("1.28.0", commit="dfa5b6abef68175586f21add7927174786412472") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -55,12 +57,15 @@ class RRsamtools(RPackage): depends_on("r-rhtslib@1.16.3", type=("build", "run"), when="@2.0.3") depends_on("r-rhtslib@1.17.7:", type=("build", "run"), when="@2.2.1:") depends_on("r-rhtslib@1.99.3:", type=("build", "run"), when="@2.14.0:") + depends_on("r-rhtslib@3.3.1:", type=("build", "run"), when="@2.24.0:") depends_on("gmake", type="build") # this is not a listed dependency but is needed depends_on("curl") depends_on("zlib-api") + conflicts("r@4.5.0:", when="@:2.23") + def patch(self): with working_dir("src"): filter_file(r"(^PKG_LIBS=)(\$\(RHTSLIB_LIBS\))", "\\1\\2 -lz", "Makevars") diff --git a/repos/spack_repo/builtin/packages/r_rsnns/package.py b/repos/spack_repo/builtin/packages/r_rsnns/package.py index 4704b5f6cf7..3e00d614c7c 100644 --- a/repos/spack_repo/builtin/packages/r_rsnns/package.py +++ b/repos/spack_repo/builtin/packages/r_rsnns/package.py @@ -29,5 +29,8 @@ class RRsnns(RPackage): version("0.4-10.1", sha256="38bb3d172390bd01219332ec834744274b87b01f94d23b29a9d818c2bca04071") version("0.4-7", sha256="ec941dddda55e4e29ed281bd8768a93d65e0d86d56ecab0f2013c64c8d1a4994") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@2.10.0:", type=("build", "run")) depends_on("r-rcpp@0.8.5:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rsqlite/package.py b/repos/spack_repo/builtin/packages/r_rsqlite/package.py index 96fcbd9379d..3cc3770f960 100644 --- a/repos/spack_repo/builtin/packages/r_rsqlite/package.py +++ b/repos/spack_repo/builtin/packages/r_rsqlite/package.py @@ -27,6 +27,9 @@ class RRsqlite(RPackage): version("2.1.0", sha256="ad6081be2885be5921b1a44b1896e6a8568c8cff40789f43bfaac9f818767642") version("2.0", sha256="7f0fe629f34641c6af1e8a34412f3089ee2d184853843209d97ffe29430ceff6") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("r@3.1.0:", type=("build", "run")) depends_on("r-bit64", type=("build", "run")) depends_on("r-blob@1.2.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rstan/package.py b/repos/spack_repo/builtin/packages/r_rstan/package.py index dd45b68f91c..f0edf9f5b4f 100644 --- a/repos/spack_repo/builtin/packages/r_rstan/package.py +++ b/repos/spack_repo/builtin/packages/r_rstan/package.py @@ -24,6 +24,7 @@ class RRstan(RPackage): license("GPL-3.0-or-later") + version("2.32.7", sha256="5931cf77fb01672f962c203c49bb4508f86f55553cac97f58ff0c7a55b72174a") version("2.32.6", sha256="3390d00191bbd3b0739dd19fe437b99a041a6b04be208877b48419d1348a1a70") version("2.21.8", sha256="b2d4edc315419037970c9fa2e8740b934966d88d40548152811f3d4a28475075") version("2.21.7", sha256="4495221310d390925b665c32e05ffabd3ae8857225bda65131a7ed2be41d6d45") @@ -35,37 +36,40 @@ class RRstan(RPackage): version("2.17.2", sha256="a7b197e6e42f8f0c302da9205afc19a0261eaf6af1425854303d2ce6cbd36729") version("2.10.1", sha256="4d2040742607f8675633c6b8c0a2e810f2fe3077f9242b1edfd42642613a8294") + depends_on("cxx", type="build") + depends_on("r+X", type=("build", "run")) - depends_on("r@3.0.2:", type=("build", "run")) depends_on("r@3.4.0:", type=("build", "run"), when="@2.18.1:") - depends_on("r-stanheaders@2.18.1:", type=("build", "run")) - depends_on("r-stanheaders@2.21.0:", type=("build", "run"), when="@2.21.2:") + depends_on("r@3.0.2:", type=("build", "run")) depends_on("r-stanheaders@2.32.0:", type=("build", "run"), when="@2.26.23:") - depends_on("r-ggplot2@2.0.0:", type=("build", "run")) - depends_on("r-ggplot2@3.0.0:", type=("build", "run"), when="@2.21.2:") - depends_on("r-ggplot2@3.3.5:", type=("build", "run"), when="@2.26.23:") - depends_on("r-inline", type=("build", "run")) + depends_on("r-stanheaders@2.21.0:", type=("build", "run"), when="@2.21.2:") + depends_on("r-stanheaders@2.18.1:", type=("build", "run")) depends_on("r-inline@0.3.19:", type=("build", "run"), when="@2.26.23:") - depends_on("r-gridextra@2.0.0:", type=("build", "run")) + depends_on("r-inline", type=("build", "run")) depends_on("r-gridextra@2.3:", type=("build", "run"), when="@2.26.23:") - depends_on("r-rcpp@0.12.0:", type=("build", "run")) + depends_on("r-gridextra@2.0.0:", type=("build", "run")) depends_on("r-rcpp@1.0.7:", type=("build", "run"), when="@2.26.23:") - depends_on("r-rcppparallel@5.0.1:", type=("build", "run"), when="@2.21.2:") + depends_on("r-rcpp@0.12.0:", type=("build", "run")) depends_on("r-rcppparallel@5.1.4:", type=("build", "run"), when="@2.26.23:") - depends_on("r-loo@2.0.0:", type=("build", "run"), when="@2.18:") - depends_on("r-loo@2.3.0:", type=("build", "run"), when="@2.21.2:") + depends_on("r-rcppparallel@5.0.1:", type=("build", "run"), when="@2.21.2:") depends_on("r-loo@2.4.1:", type=("build", "run"), when="@2.26.23:") - depends_on("r-pkgbuild", type=("build", "run"), when="@2.18:") + depends_on("r-loo@2.3.0:", type=("build", "run"), when="@2.21.2:") + depends_on("r-loo@2.0.0:", type=("build", "run"), when="@2.18:") depends_on("r-pkgbuild@1.2.0:", type=("build", "run"), when="@2.26.23:") + depends_on("r-pkgbuild", type=("build", "run"), when="@2.18:") depends_on("r-quickjsr", type=("build", "run"), when="@2.26.23:") - depends_on("r-rcppeigen@0.3.3.3.0:", type=("build", "run")) + depends_on("r-ggplot2@3.3.5:", type=("build", "run"), when="@2.26.23:") + depends_on("r-ggplot2@3.0.0:", type=("build", "run"), when="@2.21.2:") + depends_on("r-ggplot2@2.0.0:", type=("build", "run")) depends_on("r-rcppeigen@0.3.4.0.0:", type=("build", "run"), when="@2.26.23:") - depends_on("r-bh@1.69.0:", type=("build", "run")) - depends_on("r-bh@1.72.0-2:", type=("build", "run"), when="@2.21.2:") + depends_on("r-rcppeigen@0.3.3.3.0:", type=("build", "run")) depends_on("r-bh@1.75.0-0:", type=("build", "run"), when="@2.26.23:") - depends_on("gmake", type="build") + depends_on("r-bh@1.72.0-2:", type=("build", "run"), when="@2.21.2:") + depends_on("r-bh@1.69.0:", type=("build", "run")) + depends_on("pandoc", type="build") + # Historical dependencies depends_on("r-withr", type=("build", "run"), when="@2.21.2") depends_on("r-v8", type=("build", "run"), when="@2.21.2") diff --git a/repos/spack_repo/builtin/packages/r_rstantools/package.py b/repos/spack_repo/builtin/packages/r_rstantools/package.py index 275a16e5061..b8394e928c0 100644 --- a/repos/spack_repo/builtin/packages/r_rstantools/package.py +++ b/repos/spack_repo/builtin/packages/r_rstantools/package.py @@ -20,14 +20,19 @@ class RRstantools(RPackage): license("GPL-3.0-or-later") + version("2.6.0", sha256="6fe4d8f48e42bb48a0d65aedf017b4e1a919a29e3431301cc0295f7777a7f837") version("2.4.0", sha256="bff72ca2f0352c6c5d2868823e286fdb73a6ead74508a4124cbcb222c83b4faa") version("2.3.1", sha256="82d4f2e884ffc894463bd37765606d5a9bef2ee631758840ec58636acdca6975") version("2.2.0", sha256="cb810baeb90c67668361b666c6862df9917aff6aaec63d2c3a485f28407c4eb7") version("2.1.1", sha256="c95b15de8ec577eeb24bb5206e7b685d882f88b5e6902efda924b7217f463d2d") version("1.5.1", sha256="5cab16c132c12e84bd08e18cd6ef25ba39d67a04ce61015fc4490659c7cfb485") - depends_on("r+X", type=("build", "run")) - depends_on("r-desc", type=("build", "run"), when="@2.1.1:") - depends_on("r-rcpp@0.12.16:", type=("build", "run"), when="@2.1.1:") - depends_on("r-rcppparallel@5.0.1:", type=("build", "run"), when="@2.1.1:") - depends_on("pandoc", type="build") + depends_on("cxx", type="build") # generated + + with default_args(type=("build", "run")): + depends_on("r+X") + depends_on("r-desc", when="@2.1.1:") + depends_on("r-rcpp@0.12.16:", when="@2.1.1:") + depends_on("r-rcppparallel@5.0.1:", when="@2.1.1:") + + depends_on("pandoc") diff --git a/repos/spack_repo/builtin/packages/r_rstudioapi/package.py b/repos/spack_repo/builtin/packages/r_rstudioapi/package.py index dd83eaf0beb..53db9e0f570 100644 --- a/repos/spack_repo/builtin/packages/r_rstudioapi/package.py +++ b/repos/spack_repo/builtin/packages/r_rstudioapi/package.py @@ -17,6 +17,7 @@ class RRstudioapi(RPackage): license("MIT") + version("0.18.0", sha256="9649eef00381d3bde3d96928782e8792d78b9be0a2968e832728b54f5886fdbd") version("0.16.0", sha256="74ffa867199e87a54386fbd26919233371f314f73d7338dd4e4695708fed4fe6") version("0.14", sha256="469d0987b1ad728a96c363a422fba712a5cebc8b11a5f7e953b4a671044dafc4") version("0.13", sha256="aac35bbdcb4a8e8caba943bc8a2b98120e8940b80cd1020224bb1a26ff776d8b") diff --git a/repos/spack_repo/builtin/packages/r_rsubread/package.py b/repos/spack_repo/builtin/packages/r_rsubread/package.py index 57438f445c0..6ff77384e9d 100644 --- a/repos/spack_repo/builtin/packages/r_rsubread/package.py +++ b/repos/spack_repo/builtin/packages/r_rsubread/package.py @@ -12,8 +12,9 @@ class RRsubread(RPackage): bioc = "Rsubread" - version("2.16.0", commit="62b92c9ed3fc2be89ed9f29e3db1809d1e115dbc") - version("2.14.2", commit="863bd98c6523b888da59335a6acb516d2676d412") + with default_args(get_full_repo=True): + version("2.16.0", commit="62b92c9ed3fc2be89ed9f29e3db1809d1e115dbc") + version("2.14.2", commit="863bd98c6523b888da59335a6acb516d2676d412") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_rtracklayer/package.py b/repos/spack_repo/builtin/packages/r_rtracklayer/package.py index f8578aff763..cf231860a1d 100644 --- a/repos/spack_repo/builtin/packages/r_rtracklayer/package.py +++ b/repos/spack_repo/builtin/packages/r_rtracklayer/package.py @@ -19,17 +19,18 @@ class RRtracklayer(RPackage): bioc = "rtracklayer" - version("1.60.0", commit="de35bc03116fc7ad30f0e425b41715c3cb2e783b") - version("1.58.0", commit="54a74972c08775fdf1e83e6e22cd0b8fad677fc1") - version("1.56.1", commit="4c6d2201fcb102d471bd88f4f51cc34317669955") - version("1.56.0", commit="1d70f7dc464ad87a1fde61588cd9ae0cb86b6e86") - version("1.54.0", commit="04cdd75521a8364e67a49d7352500dd4a3e83c55") - version("1.50.0", commit="d2e61f72ff5d5a94c2c487ba108a37f23bfcc1e6") - version("1.44.4", commit="aec96e85daf53b5c5eb2e89250d2755352be4de3") - version("1.42.2", commit="76702f671faea736807d54aeecfbadcd152d94c5") - version("1.40.6", commit="ba9a6e711504a702147383bc7abfcc36eb304df7") - version("1.38.3", commit="f20db703c09dc7e808c09e9b78c15aec9e546248") - version("1.36.6", commit="8c0ac7230f94e0c5a981acbb178c8de70e968131") + with default_args(get_full_repo=True): + version("1.60.0", commit="de35bc03116fc7ad30f0e425b41715c3cb2e783b") + version("1.58.0", commit="54a74972c08775fdf1e83e6e22cd0b8fad677fc1") + version("1.56.1", commit="4c6d2201fcb102d471bd88f4f51cc34317669955") + version("1.56.0", commit="1d70f7dc464ad87a1fde61588cd9ae0cb86b6e86") + version("1.54.0", commit="04cdd75521a8364e67a49d7352500dd4a3e83c55") + version("1.50.0", commit="d2e61f72ff5d5a94c2c487ba108a37f23bfcc1e6") + version("1.44.4", commit="aec96e85daf53b5c5eb2e89250d2755352be4de3") + version("1.42.2", commit="76702f671faea736807d54aeecfbadcd152d94c5") + version("1.40.6", commit="ba9a6e711504a702147383bc7abfcc36eb304df7") + version("1.38.3", commit="f20db703c09dc7e808c09e9b78c15aec9e546248") + version("1.36.6", commit="8c0ac7230f94e0c5a981acbb178c8de70e968131") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_rtsne/package.py b/repos/spack_repo/builtin/packages/r_rtsne/package.py index 8f354236661..631ddca28cb 100644 --- a/repos/spack_repo/builtin/packages/r_rtsne/package.py +++ b/repos/spack_repo/builtin/packages/r_rtsne/package.py @@ -23,4 +23,6 @@ class RRtsne(RPackage): version("0.11", sha256="1e2e7368f3de870b9270f70b207ba9e8feea67f9b061cb6abb2fec785fb7247e") version("0.10", sha256="c54371f4a935520e7e7ab938ef8f5f7f9ad2a829123b9513ae715c07de034790") + depends_on("cxx", type="build") # generated + depends_on("r-rcpp@0.11.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_runjags/package.py b/repos/spack_repo/builtin/packages/r_runjags/package.py index 1594a71320c..4ee23061fd6 100644 --- a/repos/spack_repo/builtin/packages/r_runjags/package.py +++ b/repos/spack_repo/builtin/packages/r_runjags/package.py @@ -30,6 +30,9 @@ class RRunjags(RPackage): version("2.2.0-3", sha256="1b1fc0b0cfecf9ecdecc3abcba804cdc114b3c5352d5cc801602deeca90db528") version("2.2.0-2", sha256="e5dfeb83d36faf19ebe64429f6db64aedecf3c9a040fd5bf9c0200914bf5039a") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@2.14.0:", type=("build", "run")) depends_on("r-lattice@0.20-10:", type=("build", "run")) depends_on("r-coda@0.17-1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_rvest/package.py b/repos/spack_repo/builtin/packages/r_rvest/package.py index 45b69e9d179..019951a1627 100644 --- a/repos/spack_repo/builtin/packages/r_rvest/package.py +++ b/repos/spack_repo/builtin/packages/r_rvest/package.py @@ -17,6 +17,7 @@ class RRvest(RPackage): license("MIT") + version("1.0.5", sha256="1e7c34a0b4467887195b1cd66388919989e82ca096d08df283c675d87e53bc00") version("1.0.4", sha256="7d707c6b2994cf7b6c1d665bec872d2ef5c55f30e7c343c447a8a386a6049ca6") version("1.0.3", sha256="a465ef7391afaa3c26eebe8c61db02314ac04c4d8de5aa53f090716763d21c1e") version("1.0.2", sha256="89bb477e0944c80298a52ccf650db8f6377fd7ed3c1bc7034d000f695fdf05a4") @@ -25,22 +26,27 @@ class RRvest(RPackage): version("0.3.3", sha256="b10a87fa2d733f7c0fc567242ef0ab10a1a77d58d51796996cc0fd81381a556f") version("0.3.2", sha256="0d6e8837fb1df79b1c83e7b48d8f1e6245f34a10c4bb6952e7bec7867e4abb12") - depends_on("r@3.0.1:", type=("build", "run")) - depends_on("r@3.1:", type=("build", "run"), when="@0.3.3") - depends_on("r@3.2:", type=("build", "run"), when="@0.3.4:") - depends_on("r@3.6:", type=("build", "run"), when="@1.0.4:") - depends_on("r-cli", type=("build", "run"), when="@1.0.3:") - depends_on("r-glue", type=("build", "run"), when="@1.0.3:") - depends_on("r-httr@0.5:", type=("build", "run")) - depends_on("r-lifecycle@1.0.0:", type=("build", "run"), when="@1:") - depends_on("r-lifecycle@1.0.3:", type=("build", "run"), when="@1.0.4:") - depends_on("r-magrittr", type=("build", "run")) - depends_on("r-rlang@0.4.10:", type=("build", "run"), when="@1:") - depends_on("r-rlang@1.0.0:", type=("build", "run"), when="@1.0.3:") - depends_on("r-rlang@1.1.0:", type=("build", "run"), when="@1.0.4:") - depends_on("r-selectr", type=("build", "run")) - depends_on("r-tibble", type=("build", "run"), when="@1:") - depends_on("r-xml2", type=("build", "run")) - depends_on("r-xml2@1.3:", type=("build", "run"), when="@1:") - - depends_on("r-withr", type=("build", "run"), when="@1.0.3") + with default_args(type=("build", "run")): + depends_on("r@4.1:", when="@1.0.5:") + depends_on("r@3.6:", when="@1.0.4:") + depends_on("r@3.2:", when="@0.3.4:") + depends_on("r@3.1:", when="@0.3.3") + depends_on("r@3.0.1:") + + depends_on("r-cli", when="@1.0.3:") + depends_on("r-glue", when="@1.0.3:") + depends_on("r-httr@0.5:") + depends_on("r-lifecycle@1.0.3:", when="@1.0.4:") + depends_on("r-lifecycle@1.0.0:", when="@1:") + depends_on("r-magrittr") + depends_on("r-rlang@1.1.0:", when="@1.0.4:") + depends_on("r-rlang@1.0.0:", when="@1.0.3:") + depends_on("r-rlang@0.4.10:", when="@1:") + depends_on("r-selectr") + depends_on("r-tibble", when="@1:") + depends_on("r-xml2@1.4:", when="@1.0.5:") + depends_on("r-xml2@1.3:", when="@1:") + depends_on("r-xml2") + + # Historical dependencies + depends_on("r-withr", when="@1.0.3") diff --git a/repos/spack_repo/builtin/packages/r_rzmq/package.py b/repos/spack_repo/builtin/packages/r_rzmq/package.py index 10cb40d207c..3128152ae9d 100644 --- a/repos/spack_repo/builtin/packages/r_rzmq/package.py +++ b/repos/spack_repo/builtin/packages/r_rzmq/package.py @@ -25,5 +25,8 @@ class RRzmq(RPackage): version("0.9.4", sha256="03fbda756d823c11fba359b94a6213c3440e61973331668eaac35779717f73ad") version("0.7.7", sha256="bdbaf77a0e04c5b6d6ce79ab2747848a5044355eed2e2c4d39c4ba16f97dc83d") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.1.0:", type=("build", "run"), when="@0.9.0:") depends_on("libzmq@3.0.0:") diff --git a/repos/spack_repo/builtin/packages/r_s2/package.py b/repos/spack_repo/builtin/packages/r_s2/package.py index b68a038aaf9..3cbc33c7a67 100644 --- a/repos/spack_repo/builtin/packages/r_s2/package.py +++ b/repos/spack_repo/builtin/packages/r_s2/package.py @@ -27,6 +27,9 @@ class RS2(RPackage): version("1.0.7", sha256="2010c1c6ae29938ec9cd153a8b2c06a333ea4d647932369b2fc7d0c68d6d9e3f") version("1.0.4", sha256="3c274ebae33aa5473f94afb3066c6f388aced17ff3b5f6add9edcc9af22b985e") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r-rcpp", type=("build", "run")) depends_on("r-wk", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_s4vectors/package.py b/repos/spack_repo/builtin/packages/r_s4vectors/package.py index 85e53733e1a..4842daeb2cc 100644 --- a/repos/spack_repo/builtin/packages/r_s4vectors/package.py +++ b/repos/spack_repo/builtin/packages/r_s4vectors/package.py @@ -21,17 +21,18 @@ class RS4vectors(RPackage): bioc = "S4Vectors" - version("0.38.0", commit="e80c24e1481033741147a0677fb42ce455e7da74") - version("0.36.0", commit="af58701957ffdd9209031dd6a8dee3acdc58e999") - version("0.34.0", commit="f590de3ec4d896a63351d0c1925d3856c0bd5292") - version("0.32.3", commit="ad90e78fd3a4059cfcf2846498fb0748b4394e1a") - version("0.28.1", commit="994cb7ef830e76f8b43169cc72b553869fafb2ed") - version("0.26.1", commit="935769c7e2767230feb47f6f8147e0e2908af4f0") - version("0.22.1", commit="d25e517b48ca4184a4c2ee1f8223c148a55a8b8a") - version("0.20.1", commit="1878b2909086941e556c5ea953c6fd86aebe9b02") - version("0.18.3", commit="d6804f94ad3663828440914920ac933b934aeff1") - version("0.16.0", commit="00fec03fcbcb7cff37917fab0da28d91fdf9dc3d") - version("0.14.7", commit="40af17fe0b8e93b6a72fc787540d2961773b8e23") + with default_args(get_full_repo=True): + version("0.38.0", commit="e80c24e1481033741147a0677fb42ce455e7da74") + version("0.36.0", commit="af58701957ffdd9209031dd6a8dee3acdc58e999") + version("0.34.0", commit="f590de3ec4d896a63351d0c1925d3856c0bd5292") + version("0.32.3", commit="ad90e78fd3a4059cfcf2846498fb0748b4394e1a") + version("0.28.1", commit="994cb7ef830e76f8b43169cc72b553869fafb2ed") + version("0.26.1", commit="935769c7e2767230feb47f6f8147e0e2908af4f0") + version("0.22.1", commit="d25e517b48ca4184a4c2ee1f8223c148a55a8b8a") + version("0.20.1", commit="1878b2909086941e556c5ea953c6fd86aebe9b02") + version("0.18.3", commit="d6804f94ad3663828440914920ac933b934aeff1") + version("0.16.0", commit="00fec03fcbcb7cff37917fab0da28d91fdf9dc3d") + version("0.14.7", commit="40af17fe0b8e93b6a72fc787540d2961773b8e23") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_s7/package.py b/repos/spack_repo/builtin/packages/r_s7/package.py new file mode 100644 index 00000000000..fb93ecbb91a --- /dev/null +++ b/repos/spack_repo/builtin/packages/r_s7/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.r import RPackage + +from spack.package import * + + +class RS7(RPackage): + """The S7 package is a new OOP system designed to be a successor to S3 and S4.""" + + homepage = "https://rconsortium.github.io/S7/" + cran = "S7" + + license("MIT", checked_by="snehring") + + version("0.2.1", sha256="f026ec13aa4d0613720c483e2b6ec28251f4d4b7cc6624cab689ecfcac189a5b") + version("0.2.0", sha256="b8675a7fac7a396e524b21cd353ef0823d2acf76088b5f229d2a55a182a4d49b") + version("0.1.1", sha256="dce9613f389d3c49bf70e2dc57852b79b6e70474abb92887e13cb3d50d2a7b64") + version("0.1.0", sha256="83bd800c959520955a70b6efdc8467a38cc53ceaff598947e98b65eddd77cdc1") + + depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/r_sass/package.py b/repos/spack_repo/builtin/packages/r_sass/package.py index 08b617fb5b0..515e3f4767f 100644 --- a/repos/spack_repo/builtin/packages/r_sass/package.py +++ b/repos/spack_repo/builtin/packages/r_sass/package.py @@ -19,19 +19,22 @@ class RSass(RPackage): license("MIT") + version("0.4.10", sha256="4adb4c243f74d811276529e346deaa064bce28dbfbb837208fc85f2c47b79b30") version("0.4.9", sha256="e133049aad7964e0f6150257e1470b3748f36029322265ee797b8caf7517d4d2") version("0.4.5", sha256="eba161d982d2db108c8c0b61ec6b41a20d3adec430c7cc39537ab388c1007a90") version("0.4.2", sha256="b409049d0de9fae853f46c19d353226c8e9244ce847bdada033d8669fc2c9646") version("0.4.1", sha256="850fcb6bd49085d5afd25ac18da0744234385baf1f13d8c0a320f4da2de608bb") version("0.4.0", sha256="7d06ca15239142a49e88bb3be494515abdd8c75f00f3f1b0ee7bccb55019bc2b") - depends_on("c", type="build") - depends_on("cxx", type="build") - - depends_on("r-fs", type=("build", "run")) - depends_on("r-fs@1.2.4:", type=("build", "run"), when="@0.4.7:") - depends_on("r-rlang@0.4.10:", type=("build", "run")) - depends_on("r-htmltools@0.5.1:", type=("build", "run")) - depends_on("r-r6", type=("build", "run")) - depends_on("r-rappdirs", type=("build", "run")) - depends_on("gmake", type="build") + with default_args(type="build"): + depends_on("c") + depends_on("cxx") + depends_on("gmake") + + with default_args(type=("build", "run")): + depends_on("r-fs@1.2.4:", when="@0.4.7:") + depends_on("r-fs") + depends_on("r-rlang@0.4.10:") + depends_on("r-htmltools@0.5.1:") + depends_on("r-r6") + depends_on("r-rappdirs") diff --git a/repos/spack_repo/builtin/packages/r_satellite/package.py b/repos/spack_repo/builtin/packages/r_satellite/package.py index f7df5542d00..aab9bc061d5 100644 --- a/repos/spack_repo/builtin/packages/r_satellite/package.py +++ b/repos/spack_repo/builtin/packages/r_satellite/package.py @@ -30,6 +30,8 @@ class RSatellite(RPackage): version("1.0.4", sha256="99e79577a70489930c32da46ac26453af53e21c2d3a99f51fbf1f55f2d80dc7c") version("1.0.2", sha256="6447476bd31216e5abe504221e465677954d07419b4174ab4f4e4f7a197969c5") + depends_on("cxx", type="build") # generated + depends_on("r@2.10:", type=("build", "run")) depends_on("r-raster", type=("build", "run")) depends_on("r-plyr", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_scaledmatrix/package.py b/repos/spack_repo/builtin/packages/r_scaledmatrix/package.py index 5c04ddddc57..add6fd29e66 100644 --- a/repos/spack_repo/builtin/packages/r_scaledmatrix/package.py +++ b/repos/spack_repo/builtin/packages/r_scaledmatrix/package.py @@ -17,11 +17,12 @@ class RScaledmatrix(RPackage): bioc = "ScaledMatrix" - version("1.8.0", commit="122f2c43d496bd420f0aff7cd96728a11bd7fa07") - version("1.6.0", commit="45a29d3662e2766f973b281ed86ce2654be84b70") - version("1.4.1", commit="15e2efcb6b11e26c31ef2d44968355f71cc1f4fc") - version("1.4.0", commit="32e6e918bc7bb64bbf75613d353ca268c7d04292") - version("1.2.0", commit="d0573e14ca537b40ade7dd1c9cf0cadae60d4349") + with default_args(get_full_repo=True): + version("1.8.0", commit="122f2c43d496bd420f0aff7cd96728a11bd7fa07") + version("1.6.0", commit="45a29d3662e2766f973b281ed86ce2654be84b70") + version("1.4.1", commit="15e2efcb6b11e26c31ef2d44968355f71cc1f4fc") + version("1.4.0", commit="32e6e918bc7bb64bbf75613d353ca268c7d04292") + version("1.2.0", commit="d0573e14ca537b40ade7dd1c9cf0cadae60d4349") depends_on("r-matrix", type=("build", "run")) depends_on("r-s4vectors", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_scales/package.py b/repos/spack_repo/builtin/packages/r_scales/package.py index 410f0c89913..4a9fc409c69 100644 --- a/repos/spack_repo/builtin/packages/r_scales/package.py +++ b/repos/spack_repo/builtin/packages/r_scales/package.py @@ -17,6 +17,7 @@ class RScales(RPackage): license("MIT") + version("1.4.0", sha256="d55ef5f08c92652d7a95cfa27584024723ab17873f1b2577dd488cb7c883ceee") version("1.3.0", sha256="b33e0f6b44259551ce02befd52eac53602509fbfdd903920620c658c50f35888") version("1.2.1", sha256="59453e6dbdafee93dfb101e4d86048a62a12898134259d3ef02d65aeec57ed08") version("1.2.0", sha256="185d50240e6b3e84d36ec7fbca6aef7a85db7c8c1b0dde51d4af28d363ce02df") @@ -26,6 +27,8 @@ class RScales(RPackage): version("0.4.1", sha256="642b88fb1fce7bac72a0038ce532b65b8a79dffe826fec25033cf386ab630cd3") version("0.4.0", sha256="851ef6136339b361b3f843fb73ea89f9112279b9cc126bdb38acde8d24c1c6a7") + depends_on("cxx", type="build") + depends_on("r@2.13:", type=("build", "run")) depends_on("r@3.1:", type=("build", "run"), when="@1.0.0:") depends_on("r@3.2:", type=("build", "run"), when="@1.1.1:") diff --git a/repos/spack_repo/builtin/packages/r_scater/package.py b/repos/spack_repo/builtin/packages/r_scater/package.py index 42f9be165d9..22907046ac8 100644 --- a/repos/spack_repo/builtin/packages/r_scater/package.py +++ b/repos/spack_repo/builtin/packages/r_scater/package.py @@ -16,16 +16,17 @@ class RScater(RPackage): bioc = "scater" - version("1.28.0", commit="e654498c3fa9f769b794f840f230720333bd9555") - version("1.26.0", commit="a548ddc8424e185bfb06f48bfc174071e69fc687") - version("1.24.0", commit="013f0935a1a225139986ca5a3f0e9d08a1558153") - version("1.22.0", commit="ea2c95c53adb8c6fab558c1cb869e2eab36aa9f8") - version("1.18.3", commit="a94e7f413bf0f5f527b41b0b34e7a8e5c947ae37") - version("1.12.2", commit="1518dc27a87c79181c34107d639e95fe55e55092") - version("1.10.1", commit="2e6694af2929092f263c2b0830d48b3f9632e70c") - version("1.8.4", commit="d560a9a378541d53d17990d2aa2cd28874df3dcd") - version("1.6.3", commit="964effb4e883102d7c8cae627dbac4ba5d216a75") - version("1.4.0", commit="90a2eab66ff82ba6dd7fbb33e41cd0ded20fa218") + with default_args(get_full_repo=True): + version("1.28.0", commit="e654498c3fa9f769b794f840f230720333bd9555") + version("1.26.0", commit="a548ddc8424e185bfb06f48bfc174071e69fc687") + version("1.24.0", commit="013f0935a1a225139986ca5a3f0e9d08a1558153") + version("1.22.0", commit="ea2c95c53adb8c6fab558c1cb869e2eab36aa9f8") + version("1.18.3", commit="a94e7f413bf0f5f527b41b0b34e7a8e5c947ae37") + version("1.12.2", commit="1518dc27a87c79181c34107d639e95fe55e55092") + version("1.10.1", commit="2e6694af2929092f263c2b0830d48b3f9632e70c") + version("1.8.4", commit="d560a9a378541d53d17990d2aa2cd28874df3dcd") + version("1.6.3", commit="964effb4e883102d7c8cae627dbac4ba5d216a75") + version("1.4.0", commit="90a2eab66ff82ba6dd7fbb33e41cd0ded20fa218") depends_on("r@3.3:", type=("build", "run"), when="@1.4.0") depends_on("r@3.4:", type=("build", "run"), when="@1.6.3") diff --git a/repos/spack_repo/builtin/packages/r_scattermore/package.py b/repos/spack_repo/builtin/packages/r_scattermore/package.py index efe298cedf2..35eac277011 100644 --- a/repos/spack_repo/builtin/packages/r_scattermore/package.py +++ b/repos/spack_repo/builtin/packages/r_scattermore/package.py @@ -21,5 +21,8 @@ class RScattermore(RPackage): version("0.8", sha256="dbdd73d8261cb063464bb29d5c17733b7e87bc50a19948bc80439e19f2a9f8e5") version("0.7", sha256="f36280197b8476314d6ce81a51c4ae737180b180204043d2937bc25bf3a5dfa2") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r-ggplot2", type=("build", "run")) depends_on("r-scales", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_scdblfinder/package.py b/repos/spack_repo/builtin/packages/r_scdblfinder/package.py index 0052af10755..6f05a58adfd 100644 --- a/repos/spack_repo/builtin/packages/r_scdblfinder/package.py +++ b/repos/spack_repo/builtin/packages/r_scdblfinder/package.py @@ -19,9 +19,10 @@ class RScdblfinder(RPackage): license("GPL-3.0-only") - version("1.14.0", commit="6191ed09b87d7c54809a721d1d6c50c0027cf0a9") - version("1.12.0", commit="65a88be3a4ca98ccad0a1829a19652df1a3c94fd") - version("1.10.0", commit="03512cad0cdfe3cddbef66ec5e330b53661eccfc") + with default_args(get_full_repo=True): + version("1.14.0", commit="6191ed09b87d7c54809a721d1d6c50c0027cf0a9") + version("1.12.0", commit="65a88be3a4ca98ccad0a1829a19652df1a3c94fd") + version("1.10.0", commit="03512cad0cdfe3cddbef66ec5e330b53661eccfc") depends_on("r@4.0:", type=("build", "run")) depends_on("r-igraph", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_scran/package.py b/repos/spack_repo/builtin/packages/r_scran/package.py index 4489cd6110a..6302348a3b0 100644 --- a/repos/spack_repo/builtin/packages/r_scran/package.py +++ b/repos/spack_repo/builtin/packages/r_scran/package.py @@ -18,10 +18,11 @@ class RScran(RPackage): bioc = "scran" - version("1.28.0", commit="2e542b929b231fb5bb8c40af0f6ccea97f79234d") - version("1.26.0", commit="df66576d6958a088c38bd45e1cad9c16cbb52991") - version("1.24.1", commit="1a83eb7c948b1dc49253080c23b26cefb3a0f3b9") - version("1.24.0", commit="c3f9e169c4538ce827d4f14a4141571c2366cd31") + with default_args(get_full_repo=True): + version("1.28.0", commit="2e542b929b231fb5bb8c40af0f6ccea97f79234d") + version("1.26.0", commit="df66576d6958a088c38bd45e1cad9c16cbb52991") + version("1.24.1", commit="1a83eb7c948b1dc49253080c23b26cefb3a0f3b9") + version("1.24.0", commit="c3f9e169c4538ce827d4f14a4141571c2366cd31") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_sctransform/package.py b/repos/spack_repo/builtin/packages/r_sctransform/package.py index db70f498f52..01171bd7822 100644 --- a/repos/spack_repo/builtin/packages/r_sctransform/package.py +++ b/repos/spack_repo/builtin/packages/r_sctransform/package.py @@ -27,6 +27,8 @@ class RSctransform(RPackage): version("0.3.2", sha256="5dbb0a045e514c19f51bbe11c2dba0b72dca1942d6eb044c36b0538b443475dc") version("0.2.0", sha256="d7f4c7958693823454f1426b23b0e1e9c207ad61a7a228602a1885a1318eb3e4") + depends_on("cxx", type="build") # generated + depends_on("r@3.0.2:", type=("build", "run")) depends_on("r@3.1.0:", type=("build", "run"), when="@0.3.2:") depends_on("r@3.5.0:", type=("build", "run"), when="@0.3.3:") diff --git a/repos/spack_repo/builtin/packages/r_scuttle/package.py b/repos/spack_repo/builtin/packages/r_scuttle/package.py index 9139d327e05..3d5e0340c89 100644 --- a/repos/spack_repo/builtin/packages/r_scuttle/package.py +++ b/repos/spack_repo/builtin/packages/r_scuttle/package.py @@ -17,12 +17,13 @@ class RScuttle(RPackage): bioc = "scuttle" - version("1.10.0", commit="02e864cb80414f71bb312cdf6d68e0036326e10b") - version("1.8.0", commit="dabf6b95e478d599557ebbed03edd44031fd6b78") - version("1.6.3", commit="df23680da9fa4d685df77e4561467f491c850b50") - version("1.6.2", commit="afdfc555151d84cc332757b4ec0b97cb7f39d2d5") - version("1.4.0", commit="b335263dd56bb859b5dd3ea27ee00dffa0215313") - version("1.0.4", commit="a827e2759d80e6c3510e2f8fd4bd680274206d9f") + with default_args(get_full_repo=True): + version("1.10.0", commit="02e864cb80414f71bb312cdf6d68e0036326e10b") + version("1.8.0", commit="dabf6b95e478d599557ebbed03edd44031fd6b78") + version("1.6.3", commit="df23680da9fa4d685df77e4561467f491c850b50") + version("1.6.2", commit="afdfc555151d84cc332757b4ec0b97cb7f39d2d5") + version("1.4.0", commit="b335263dd56bb859b5dd3ea27ee00dffa0215313") + version("1.0.4", commit="a827e2759d80e6c3510e2f8fd4bd680274206d9f") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_sdmtools/package.py b/repos/spack_repo/builtin/packages/r_sdmtools/package.py index d7ce90fe324..65873358b23 100644 --- a/repos/spack_repo/builtin/packages/r_sdmtools/package.py +++ b/repos/spack_repo/builtin/packages/r_sdmtools/package.py @@ -32,4 +32,6 @@ class RSdmtools(RPackage): version("1.1-12", sha256="6dc4a8a046e7fced190402f39a9bae6f863e08c320f0881367c022b2f220f14b") version("1.1-11", sha256="1caf8fa1914ad6921d76e7b22a8c25cfe55892b0d21aef3b2a7b8f5b79b9388b") + depends_on("c", type="build") # generated + depends_on("r-r-utils", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_selectr/package.py b/repos/spack_repo/builtin/packages/r_selectr/package.py index 55f994efbe5..bb307b1af8d 100644 --- a/repos/spack_repo/builtin/packages/r_selectr/package.py +++ b/repos/spack_repo/builtin/packages/r_selectr/package.py @@ -20,11 +20,13 @@ class RSelectr(RPackage): license("BSD-3-Clause") + version("0.5-1", sha256="e8a6f1f4cc8b91efdf8a69dd5344b112149b5c21973c7987db63be931267f165") version("0.4-2", sha256="5588aed05f3f5ee63c0d29953ef53da5dac7afccfdd04b7b22ef24e1e3b0c127") version("0.4-1", sha256="8bd42f167629344e485e586f9b05fed342746132489079084d82133d7b3ee2ca") version("0.4-0", sha256="40cd51bfe499954b300742c49f92167a68964b974268a7f47ca8864f32020ece") version("0.3-1", sha256="db4f7ceea4b522a54c3ae7709787b0b7fcf389c5d945c5a278e3625388218949") - depends_on("r@3.0:", type=("build", "run")) - depends_on("r-stringr", type=("build", "run")) - depends_on("r-r6", type=("build", "run"), when="@0.4-0:") + with default_args(type=("build", "run")): + depends_on("r@3.0:") + depends_on("r-stringr") + depends_on("r-r6", when="@0.4-0:") diff --git a/repos/spack_repo/builtin/packages/r_seqinr/package.py b/repos/spack_repo/builtin/packages/r_seqinr/package.py index 3bfd21fbb93..f3c1b2d43c1 100644 --- a/repos/spack_repo/builtin/packages/r_seqinr/package.py +++ b/repos/spack_repo/builtin/packages/r_seqinr/package.py @@ -27,6 +27,8 @@ class RSeqinr(RPackage): version("3.4-5", sha256="162a347495fd52cbb62e8187a4692e7c50b9fa62123c5ef98f2744c98a05fb9f") version("3.3-6", sha256="42a3ae01331db744d67cc9c5432ce9ae389bed465af826687b9c10216ac7a08d") + depends_on("c", type="build") # generated + depends_on("r@2.10:", type=("build", "run")) depends_on("r@2.10.0:", type=("build", "run"), when="@4.2-30:") depends_on("r-ade4", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_seqlogo/package.py b/repos/spack_repo/builtin/packages/r_seqlogo/package.py index 7b074e78b7f..178722b87fe 100644 --- a/repos/spack_repo/builtin/packages/r_seqlogo/package.py +++ b/repos/spack_repo/builtin/packages/r_seqlogo/package.py @@ -16,15 +16,16 @@ class RSeqlogo(RPackage): bioc = "seqLogo" - version("1.66.0", commit="6214c1733fe25da86071afba4210068816e4d74f") - version("1.64.0", commit="75ff6c0689fce541f054d33750acb6224d14ed4e") - version("1.62.0", commit="f2d0b53b1411ea98299201a8125a85f4cbf7c9cd") - version("1.60.0", commit="4115c8e1d01accb8c8cc1cf96f23359466827e16") - version("1.56.0", commit="169260c43fc58dc75becb3b7842cac3d0038a8d5") - version("1.50.0", commit="57986221c90c3920f9829756c4b3ee566dc1e14d") - version("1.48.0", commit="dde85582e7fd0c08c5b8bc73f9aed8f23b727d9d") - version("1.46.0", commit="e78be03db5f6a516138aeea6aa9512685633a4a2") - version("1.44.0", commit="4cac14ff29f413d6de1a9944eb5d21bfe5045fac") - version("1.42.0", commit="d7e04726c813282aa3f47a9ee98c5e1cec9bdddd") + with default_args(get_full_repo=True): + version("1.66.0", commit="6214c1733fe25da86071afba4210068816e4d74f") + version("1.64.0", commit="75ff6c0689fce541f054d33750acb6224d14ed4e") + version("1.62.0", commit="f2d0b53b1411ea98299201a8125a85f4cbf7c9cd") + version("1.60.0", commit="4115c8e1d01accb8c8cc1cf96f23359466827e16") + version("1.56.0", commit="169260c43fc58dc75becb3b7842cac3d0038a8d5") + version("1.50.0", commit="57986221c90c3920f9829756c4b3ee566dc1e14d") + version("1.48.0", commit="dde85582e7fd0c08c5b8bc73f9aed8f23b727d9d") + version("1.46.0", commit="e78be03db5f6a516138aeea6aa9512685633a4a2") + version("1.44.0", commit="4cac14ff29f413d6de1a9944eb5d21bfe5045fac") + version("1.42.0", commit="d7e04726c813282aa3f47a9ee98c5e1cec9bdddd") depends_on("r@4.2:", type=("build", "run"), when="@1.62.0:") diff --git a/repos/spack_repo/builtin/packages/r_sets/package.py b/repos/spack_repo/builtin/packages/r_sets/package.py index 5db0f9f4272..dbe27ca3c84 100644 --- a/repos/spack_repo/builtin/packages/r_sets/package.py +++ b/repos/spack_repo/builtin/packages/r_sets/package.py @@ -54,5 +54,7 @@ class RSets(RPackage): version("0.1-1", sha256="4e41480757e33897a26974e5234801ff1c15f1a3952c96071787b43141a130de") version("0.1", sha256="18dda6c9d526a2f41f2b49a472fb27a7f1bb9ce6ea137b8963e8ad6c378825d0") + depends_on("c", type="build") # generated + depends_on("r@2.6:", type=("build", "run"), when="@0.1:") depends_on("r@2.7.0:", type=("build", "run"), when="@0.1-2:") diff --git a/repos/spack_repo/builtin/packages/r_seurat/package.py b/repos/spack_repo/builtin/packages/r_seurat/package.py index 9366d97b160..abe369d5fc1 100644 --- a/repos/spack_repo/builtin/packages/r_seurat/package.py +++ b/repos/spack_repo/builtin/packages/r_seurat/package.py @@ -33,10 +33,15 @@ class RSeurat(RPackage): version("2.1.0", sha256="7d20d231b979a4aa63cd7dae7e725405212e8975889f12b8d779c6c896c10ac3") version("2.0.1", sha256="6aa33aa3afb29a8be364ab083c7071cfbc56ad042a019bcf6f939e0c8c7744f0") + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("r@3.2.0:", type=("build", "run")) depends_on("r@3.4.0:", type=("build", "run"), when="@2.3.1:") depends_on("r@3.6.0:", type=("build", "run"), when="@3.2.3:") depends_on("r@4.0.0:", type=("build", "run"), when="@4.1.0:") + depends_on("r+java", type=("build", "run"), when="@:2.3.0") + depends_on("java", when="@:2.3.0") + depends_on("r-cluster", type=("build", "run"), when="@2.3.0:") depends_on("r-cowplot", type=("build", "run")) depends_on("r-fastdummies", type=("build", "run"), when="@5.0.0:") @@ -138,5 +143,4 @@ class RSeurat(RPackage): depends_on("r-hdf5r", type=("build", "run"), when="@2.3.2:2.3.4") depends_on("r-rsvd", type=("build", "run"), when="@3.0.0:3.2.3") depends_on("r-spatstat@:1.64-1", type=("build", "run"), when="@3.2.3") - depends_on("java", when="@:2.3.0") depends_on("r-spatstat-core", type=("build", "run"), when="@4.1.0:4.2.0") diff --git a/repos/spack_repo/builtin/packages/r_seuratobject/package.py b/repos/spack_repo/builtin/packages/r_seuratobject/package.py index 7e45c326fa0..352a3463197 100644 --- a/repos/spack_repo/builtin/packages/r_seuratobject/package.py +++ b/repos/spack_repo/builtin/packages/r_seuratobject/package.py @@ -27,6 +27,9 @@ class RSeuratobject(RPackage): version("4.1.0", sha256="9ca406cb3bd95c588e1a81c5383e3173a446cc0667142b139ca32685b4b20a05") version("4.0.4", sha256="585261b7d2045193accf817a29e2e3356e731f57c554bed37d232fa49784088c") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@4.0.0:", type=("build", "run")) depends_on("r@4.1.0:", when="@5.0.2:", type=("build", "run")) depends_on("r-future", type=("build", "run"), when="@4.1.0:") diff --git a/repos/spack_repo/builtin/packages/r_sf/package.py b/repos/spack_repo/builtin/packages/r_sf/package.py index 211f095d41a..1467174a435 100644 --- a/repos/spack_repo/builtin/packages/r_sf/package.py +++ b/repos/spack_repo/builtin/packages/r_sf/package.py @@ -20,6 +20,8 @@ class RSf(RPackage): license("GPL-2.0-only OR MIT") + version("1.1-0", sha256="7ce76026eb51c789c123639901ad655273fedea29be508e3afd35000a122da25") + version("1.0-23", sha256="4a44abad6e94b648b8a31269fa5a5ff862f69a9dfcdd60b8958a5b9ee3bddceb") version("1.0-16", sha256="e96e191011cdf2a073c773bdfc50ffd4a5d80f1da0ba1aa05db8015da45a9987") version("1.0-12", sha256="3778ebf58d824b1dfa6297ca8363714d5d85eda04c55ab2bf39597cac1d91287") version("1.0-9", sha256="85c0c71a0a64750281e79aa96e36d13e6285927008b2d37d699e52aba7d8013b") @@ -29,9 +31,9 @@ class RSf(RPackage): version("0.9-7", sha256="4acac2f78badf9d252da5bf377975f984927c14a56a72d9f83d285c0adadae9c") version("0.7-7", sha256="d1780cb46a285b30c7cc41cae30af523fbc883733344e53f7291e2d045e150a4") version("0.7-5", sha256="53ed0567f502216a116c4848f5a9262ca232810f82642df7b98e0541a2524868") - with default_args(deprecated=True): - # deprecated @:0.7-3 as gdal@:2 is deprecated, and gdal@3: requires proj@6: - version("0.5-5", sha256="82ad31f98243b6982302fe245ee6e0d8d0546e5ff213ccc00ec3025dfec62229") + + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("r@3.3.0:", type=("build", "run")) depends_on("r-classint@0.2-1:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_sfheaders/package.py b/repos/spack_repo/builtin/packages/r_sfheaders/package.py index b59684123d3..dbc49f5aa97 100644 --- a/repos/spack_repo/builtin/packages/r_sfheaders/package.py +++ b/repos/spack_repo/builtin/packages/r_sfheaders/package.py @@ -22,6 +22,8 @@ class RSfheaders(RPackage): version("0.4.2", sha256="ed9fb934c537fb6f126886f8e5997727de856e32fc3d38911b61a3a83faa7b2c") version("0.4.0", sha256="86bcd61018a0491fc8a1e7fb0422c918296287b82be299a79ccee8fcb515e045") + depends_on("cxx", type="build") # generated + depends_on("r-geometries@0.2.0:", type=("build", "run")) depends_on("r-geometries@0.2.2:", type=("build", "run"), when="@0.4.2:") depends_on("r-geometries@0.2.4:", type=("build", "run"), when="@0.4.4:") diff --git a/repos/spack_repo/builtin/packages/r_shinyfiletree/package.py b/repos/spack_repo/builtin/packages/r_shinyfiletree/package.py new file mode 100644 index 00000000000..48da54344bf --- /dev/null +++ b/repos/spack_repo/builtin/packages/r_shinyfiletree/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.r import RPackage + +from spack.package import * + + +class RShinyfiletree(RPackage): + """This creates a widget with a shiny file tree.""" + + homepage = "https://github.com/fbreitwieser/shinyFileTree" + url = "https://github.com/fbreitwieser/shinyFileTree/tarball/76c44e744c930c3908a98d4a055a5bff7fba1e0c" + + license("GPL-3.0") + + version( + "0.0.0.9000", + sha256="3df3d52798287b506613acf65eb07d9a535d55af97da0726f1b8ef202bd498df", + url="https://github.com/fbreitwieser/shinyFileTree/tarball/76c44e744c930c3908a98d4a055a5bff7fba1e0c", + ) + + depends_on("r@3.2.3:", type=("build", "run")) + depends_on("r-htmlwidgets", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_shinywidgets/package.py b/repos/spack_repo/builtin/packages/r_shinywidgets/package.py new file mode 100644 index 00000000000..730d175c5a3 --- /dev/null +++ b/repos/spack_repo/builtin/packages/r_shinywidgets/package.py @@ -0,0 +1,37 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.r import RPackage + +from spack.package import * + + +class RShinywidgets(RPackage): + """This package provide custom widgets and other components to enhance your shiny + applications.""" + + homepage = "https://github.com/dreamRs/shinyWidgets" + url = "https://github.com/dreamRs/shinyWidgets/archive/refs/tags/v0.9.0.tar.gz" + + license("GPL-3.0") + + version("0.9.0", sha256="0e45af8670f9c885a07e3c4064d40e20ca6ddce67ac5a335a5173b9addbf263d") + version("0.8.7", sha256="eeb30b5afcd0b3dbbb35aa0a833867692b396d747a0833a14eb6106ba4f0bc67") + version("0.8.6", sha256="b3eb931a3d13b412a4ec7b7e6c08595168dd4f8477bb5ae77f0e74b55738ac1d") + version("0.8.5", sha256="3f8e3391fea5aa5ea36a001479a5084981211c9c505e90224f551e7c261b0212") + version("0.8.4", sha256="1d5817e883b9589f34beddc9e7692836e993d3a0d62d1540bb8c434241d617ae") + version("0.8.3", sha256="67d2e52fba66fb2ff16b51e0209e82bcb391d1f1b5532d8827d9b4d0ae1f8b1a") + version("0.8.2", sha256="586edf6b4fcea2f282abd93f37a7c3628dc59d28292845118e81ff08edb100f8") + version("0.8.1", sha256="0844f76c12db3105dc447668631692b87a10eeee4ab86ee02a5a4ffadc103540") + version("0.8.0", sha256="31547ce1aca72743e0e76cc07eec648724e2ba2fbf90897c3c611f49c871f68d") + version("0.7.6", sha256="637a10bd3ffabc4f82a19556aafb0d2778b13cdd66e84e5b7384c5c6eb94be1c") + + depends_on("r@3.1.0:", type=("build", "run")) + depends_on("r-anytime", type=("build", "run"), when="@0.7.6:0.8.6") + depends_on("r-bslib", type=("build", "run")) + depends_on("r-sass", type=("build", "run")) + depends_on("r-shiny@1.6.0:", type=("build", "run")) + depends_on("r-htmltools@0.5.1:", type=("build", "run")) + depends_on("r-jsonlite", type=("build", "run")) + depends_on("r-rlang", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_shortread/package.py b/repos/spack_repo/builtin/packages/r_shortread/package.py index eec9b1e0ae1..4e2131e82d7 100644 --- a/repos/spack_repo/builtin/packages/r_shortread/package.py +++ b/repos/spack_repo/builtin/packages/r_shortread/package.py @@ -19,16 +19,17 @@ class RShortread(RPackage): bioc = "ShortRead" - version("1.58.0", commit="433d18266b141ddcc9dc590f5244163a04efebe3") - version("1.56.0", commit="df25d0872d52aac3610998abda0d7bfd37298726") - version("1.54.0", commit="a1082a335120860d019aa0065a975d41890351f7") - version("1.52.0", commit="4d7304d7b5a0ca5c904c0b919d6c95599db72a39") - version("1.48.0", commit="ba44cd2517bc0e6f46d2cfcfce393f86eec814d0") - version("1.42.0", commit="daa2576a48278460caf87f42c022c796652f4908") - version("1.40.0", commit="0cbe4b62b0be4c5f2e2670da17493423446e008f") - version("1.38.0", commit="e9498f04b7b4bf0212bbb10ec7e3de2d7699f4bf") - version("1.36.1", commit="176c34eddf4a416d30c69cb4ac197141ba42e66f") - version("1.34.2", commit="25daac63b301df66a8ef6e98cc2977522c6786cd") + with default_args(get_full_repo=True): + version("1.58.0", commit="433d18266b141ddcc9dc590f5244163a04efebe3") + version("1.56.0", commit="df25d0872d52aac3610998abda0d7bfd37298726") + version("1.54.0", commit="a1082a335120860d019aa0065a975d41890351f7") + version("1.52.0", commit="4d7304d7b5a0ca5c904c0b919d6c95599db72a39") + version("1.48.0", commit="ba44cd2517bc0e6f46d2cfcfce393f86eec814d0") + version("1.42.0", commit="daa2576a48278460caf87f42c022c796652f4908") + version("1.40.0", commit="0cbe4b62b0be4c5f2e2670da17493423446e008f") + version("1.38.0", commit="e9498f04b7b4bf0212bbb10ec7e3de2d7699f4bf") + version("1.36.1", commit="176c34eddf4a416d30c69cb4ac197141ba42e66f") + version("1.34.2", commit="25daac63b301df66a8ef6e98cc2977522c6786cd") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_siggenes/package.py b/repos/spack_repo/builtin/packages/r_siggenes/package.py index cb72e1a6dd8..f9d78d2e619 100644 --- a/repos/spack_repo/builtin/packages/r_siggenes/package.py +++ b/repos/spack_repo/builtin/packages/r_siggenes/package.py @@ -17,16 +17,17 @@ class RSiggenes(RPackage): bioc = "siggenes" - version("1.74.0", commit="02e0e825eae0e1fa8ffda0c826ddc176cb67cb0a") - version("1.72.0", commit="4f93d1a28087c941b275e6c6bae9e42d721cf422") - version("1.70.0", commit="c263daa14cf87c61b41e3a9e88573ba339c66179") - version("1.68.0", commit="a29bf02b19cc9003c8401608831232b7c2af26e7") - version("1.64.0", commit="3b528d37c16fc41bbc5c98165f606394313aa050") - version("1.58.0", commit="69500158d69942cf7c62f583830933cf8baf89a1") - version("1.56.0", commit="3e929feaa76311be07ff51ad807e657b0b521f6f") - version("1.54.0", commit="1630e42652192e3e4e48e9e78e53665a120cfc7f") - version("1.52.0", commit="dc46cf4b6053ea99c6c841d661f97390653c2e71") - version("1.50.0", commit="b1818f26e1449005ffd971df6bda8da0303080bc") + with default_args(get_full_repo=True): + version("1.74.0", commit="02e0e825eae0e1fa8ffda0c826ddc176cb67cb0a") + version("1.72.0", commit="4f93d1a28087c941b275e6c6bae9e42d721cf422") + version("1.70.0", commit="c263daa14cf87c61b41e3a9e88573ba339c66179") + version("1.68.0", commit="a29bf02b19cc9003c8401608831232b7c2af26e7") + version("1.64.0", commit="3b528d37c16fc41bbc5c98165f606394313aa050") + version("1.58.0", commit="69500158d69942cf7c62f583830933cf8baf89a1") + version("1.56.0", commit="3e929feaa76311be07ff51ad807e657b0b521f6f") + version("1.54.0", commit="1630e42652192e3e4e48e9e78e53665a120cfc7f") + version("1.52.0", commit="dc46cf4b6053ea99c6c841d661f97390653c2e71") + version("1.50.0", commit="b1818f26e1449005ffd971df6bda8da0303080bc") depends_on("r-biobase", type=("build", "run")) depends_on("r-multtest", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_signac/package.py b/repos/spack_repo/builtin/packages/r_signac/package.py index 8b6bd8d785f..5c11b4cc827 100644 --- a/repos/spack_repo/builtin/packages/r_signac/package.py +++ b/repos/spack_repo/builtin/packages/r_signac/package.py @@ -24,6 +24,8 @@ class RSignac(RPackage): version("1.8.0", sha256="9c4b123f4d077111c7e6dd1659483ada984300c8e923672ca924e46fb6a1dd06") version("1.7.0", sha256="5e4456eeab29fa2df7f6236b050dec8cb9c073d7652a89ee5030a27f94e5e4bf") + depends_on("cxx", type="build") # generated + depends_on("r@4.0.0:", type=("build", "run")) depends_on("r@4.1.0:", type=("build", "run"), when="@1.14.0:") depends_on("r-genomeinfodb@1.29.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_simpleaffy/package.py b/repos/spack_repo/builtin/packages/r_simpleaffy/package.py index 705bd9011d5..f9318bb0846 100644 --- a/repos/spack_repo/builtin/packages/r_simpleaffy/package.py +++ b/repos/spack_repo/builtin/packages/r_simpleaffy/package.py @@ -20,12 +20,13 @@ class RSimpleaffy(RPackage): license("Unlicense") - version("2.66.0", commit="902db69e4ea4b6d306f0c744d3be600f1418ebc9") - version("2.60.0", commit="b32b5e7d5c65e43c10f98ab8684a1086a06d04f9") - version("2.58.0", commit="70cf1199bad620f60eaa288279632110bb571200") - version("2.56.0", commit="a05d768180b8713ad9e1dc46d491b7ef389b299d") - version("2.54.0", commit="6876e028d412b14504ad3915cbec1a189e9c6478") - version("2.52.0", commit="f2b43fb9b8e6fa4c03fe28b4efb3144a0a42a385") + with default_args(get_full_repo=True): + version("2.66.0", commit="902db69e4ea4b6d306f0c744d3be600f1418ebc9") + version("2.60.0", commit="b32b5e7d5c65e43c10f98ab8684a1086a06d04f9") + version("2.58.0", commit="70cf1199bad620f60eaa288279632110bb571200") + version("2.56.0", commit="a05d768180b8713ad9e1dc46d491b7ef389b299d") + version("2.54.0", commit="6876e028d412b14504ad3915cbec1a189e9c6478") + version("2.52.0", commit="f2b43fb9b8e6fa4c03fe28b4efb3144a0a42a385") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_singlecellexperiment/package.py b/repos/spack_repo/builtin/packages/r_singlecellexperiment/package.py index 6a529f20f73..96ead6e3b39 100644 --- a/repos/spack_repo/builtin/packages/r_singlecellexperiment/package.py +++ b/repos/spack_repo/builtin/packages/r_singlecellexperiment/package.py @@ -17,16 +17,17 @@ class RSinglecellexperiment(RPackage): bioc = "SingleCellExperiment" - version("1.22.0", commit="d477e8ef442dec60576e08bb660081b8bccc978c") - version("1.20.0", commit="467f02c0346e3ca5ec8825a6faa80a90d20fcd29") - version("1.18.1", commit="db7768a7cb5eca724bcf7e4cea3234992ac714a1") - version("1.18.0", commit="3a72dcd97e628055b2d02294eaecca9a41aba604") - version("1.16.0", commit="bb27609ba08052607fc08529ffbbbcf1eab265cb") - version("1.12.0", commit="66063b74c8b0bd0fd1277c7ad425ad11823ab356") - version("1.6.0", commit="baa51d77a8dacd2a22e7293095a8cffaaa3293b4") - version("1.4.1", commit="b1efcb338e9176ae6829bb897957aa37e74d4870") - version("1.2.0", commit="fe512259da79e0c660b322b5387e9bb16f2e6321") - version("1.0.0", commit="545e974aa7ca7855e039bf9e3030290cd71d9031") + with default_args(get_full_repo=True): + version("1.22.0", commit="d477e8ef442dec60576e08bb660081b8bccc978c") + version("1.20.0", commit="467f02c0346e3ca5ec8825a6faa80a90d20fcd29") + version("1.18.1", commit="db7768a7cb5eca724bcf7e4cea3234992ac714a1") + version("1.18.0", commit="3a72dcd97e628055b2d02294eaecca9a41aba604") + version("1.16.0", commit="bb27609ba08052607fc08529ffbbbcf1eab265cb") + version("1.12.0", commit="66063b74c8b0bd0fd1277c7ad425ad11823ab356") + version("1.6.0", commit="baa51d77a8dacd2a22e7293095a8cffaaa3293b4") + version("1.4.1", commit="b1efcb338e9176ae6829bb897957aa37e74d4870") + version("1.2.0", commit="fe512259da79e0c660b322b5387e9bb16f2e6321") + version("1.0.0", commit="545e974aa7ca7855e039bf9e3030290cd71d9031") depends_on("r@3.4:", type=("build", "run")) depends_on("r@3.5:", type=("build", "run"), when="@1.2.0:1.6.0") diff --git a/repos/spack_repo/builtin/packages/r_sm/package.py b/repos/spack_repo/builtin/packages/r_sm/package.py index f1d6a824096..5f48fc394bb 100644 --- a/repos/spack_repo/builtin/packages/r_sm/package.py +++ b/repos/spack_repo/builtin/packages/r_sm/package.py @@ -24,5 +24,8 @@ class RSm(RPackage): version("2.2-5.6", sha256="b890cd7ebe8ed711ab4a3792c204c4ecbe9e6ca1fd5bbc3925eba5833a839c30") version("2.2-5.5", sha256="43e212a14c364b98b10018b56fe0a619ccffe4bde1294e6c45b3eafe7caf82e7") + depends_on("c", type="build") + depends_on("fortran", type="build") + depends_on("r+X", type=("build", "run")) depends_on("r@3.1.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_snprelate/package.py b/repos/spack_repo/builtin/packages/r_snprelate/package.py index 9116331afa9..abb71d32faf 100644 --- a/repos/spack_repo/builtin/packages/r_snprelate/package.py +++ b/repos/spack_repo/builtin/packages/r_snprelate/package.py @@ -30,16 +30,17 @@ class RSnprelate(RPackage): bioc = "SNPRelate" - version("1.34.0", commit="27a7c9658b974f9887f48a4a3ed1a7621b141488") - version("1.32.0", commit="2e8cc807baa74fca5137148b672f3945c36689b2") - version("1.30.1", commit="baef8a71d3908287a2307768348c02db0720d125") - version("1.28.0", commit="8fcd837f4627a3bb77cb8d992b2baedd0589d123") - version("1.24.0", commit="419b13b761ea39a8b1b9bc73097fb0359c59f1c2") - version("1.18.1", commit="81c581bf76392efdc8ba237ca2e42ca1dba788ca") - version("1.16.0", commit="0e38e8df4af87dff6c27a23af2867661998c0d85") - version("1.14.0", commit="9501cbfc411aa320e58654a865fda2e9077977af") - version("1.12.2", commit="dce2e2b6f36483a9f905bb5df6ae834a9f1136fe") - version("1.10.2", commit="3f5c4010871df742e7a460586b38ad0c2fd37aeb") + with default_args(get_full_repo=True): + version("1.34.0", commit="27a7c9658b974f9887f48a4a3ed1a7621b141488") + version("1.32.0", commit="2e8cc807baa74fca5137148b672f3945c36689b2") + version("1.30.1", commit="baef8a71d3908287a2307768348c02db0720d125") + version("1.28.0", commit="8fcd837f4627a3bb77cb8d992b2baedd0589d123") + version("1.24.0", commit="419b13b761ea39a8b1b9bc73097fb0359c59f1c2") + version("1.18.1", commit="81c581bf76392efdc8ba237ca2e42ca1dba788ca") + version("1.16.0", commit="0e38e8df4af87dff6c27a23af2867661998c0d85") + version("1.14.0", commit="9501cbfc411aa320e58654a865fda2e9077977af") + version("1.12.2", commit="dce2e2b6f36483a9f905bb5df6ae834a9f1136fe") + version("1.10.2", commit="3f5c4010871df742e7a460586b38ad0c2fd37aeb") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_snpstats/package.py b/repos/spack_repo/builtin/packages/r_snpstats/package.py index bda3ef1c7d1..b8c6efb44c7 100644 --- a/repos/spack_repo/builtin/packages/r_snpstats/package.py +++ b/repos/spack_repo/builtin/packages/r_snpstats/package.py @@ -16,16 +16,17 @@ class RSnpstats(RPackage): bioc = "snpStats" - version("1.50.0", commit="b6d42f93f2ce510cc10a1668809218f317c23d2a") - version("1.48.0", commit="7d4cec7275b9360d98cb59d15c4140bed3e6a74c") - version("1.46.0", commit="1e70784b113eaca231bc5f91fc8ae5aadb151ddb") - version("1.44.0", commit="72392dab4e75de2da459b1e95f1d48947811597b") - version("1.40.0", commit="5fcac6f3b4bb6f45c19dff8f3089b693b74a56ce") - version("1.34.0", commit="e31cdfb18a9e12d70d6a3e8e6fbf7cf8faa3ea5b") - version("1.32.0", commit="7c31158183b4e39da6dc30c7da275acc36b2e32f") - version("1.30.0", commit="0dc1e4246f015feaf2579d60268b10ab5149ce09") - version("1.28.0", commit="8df9f4188f720dfbb4f4f4ec255cd2e22f3f4426") - version("1.26.0", commit="7c9b3304073e0556d694a8531882b349822fdda8") + with default_args(get_full_repo=True): + version("1.50.0", commit="b6d42f93f2ce510cc10a1668809218f317c23d2a") + version("1.48.0", commit="7d4cec7275b9360d98cb59d15c4140bed3e6a74c") + version("1.46.0", commit="1e70784b113eaca231bc5f91fc8ae5aadb151ddb") + version("1.44.0", commit="72392dab4e75de2da459b1e95f1d48947811597b") + version("1.40.0", commit="5fcac6f3b4bb6f45c19dff8f3089b693b74a56ce") + version("1.34.0", commit="e31cdfb18a9e12d70d6a3e8e6fbf7cf8faa3ea5b") + version("1.32.0", commit="7c31158183b4e39da6dc30c7da275acc36b2e32f") + version("1.30.0", commit="0dc1e4246f015feaf2579d60268b10ab5149ce09") + version("1.28.0", commit="8df9f4188f720dfbb4f4f4ec255cd2e22f3f4426") + version("1.26.0", commit="7c9b3304073e0556d694a8531882b349822fdda8") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_somaticsignatures/package.py b/repos/spack_repo/builtin/packages/r_somaticsignatures/package.py index 95fd4272a9f..db37f743b30 100644 --- a/repos/spack_repo/builtin/packages/r_somaticsignatures/package.py +++ b/repos/spack_repo/builtin/packages/r_somaticsignatures/package.py @@ -19,16 +19,17 @@ class RSomaticsignatures(RPackage): license("MIT") - version("2.36.0", commit="26ce72c1fc771f711796eccee0a24c1070d33066") - version("2.34.0", commit="249b1ef7cef3c94cfb96cc8aa2a16e00c2bd5d1f") - version("2.32.0", commit="444d37661d147618f6830fd5de01a83ddf2a694d") - version("2.30.0", commit="03f7ad707f6530fa7f62093f808884b6e83b0526") - version("2.26.0", commit="9d4bed6e118ac76755ffb7abd058b09bac58a9d7") - version("2.20.0", commit="dbedc30d92b600b3a17de596ebe38d15982c70c6") - version("2.18.0", commit="facccd67eee5202fcbe6ad32e667546546e7ccff") - version("2.16.0", commit="4ae348d9fa096c0ec307df95149991edf6044977") - version("2.14.0", commit="b12d24f86e96a7c6a17cbbad21ca14fa3aa7c60f") - version("2.12.1", commit="932298c6877d076004de5541cec85a14e819517a") + with default_args(get_full_repo=True): + version("2.36.0", commit="26ce72c1fc771f711796eccee0a24c1070d33066") + version("2.34.0", commit="249b1ef7cef3c94cfb96cc8aa2a16e00c2bd5d1f") + version("2.32.0", commit="444d37661d147618f6830fd5de01a83ddf2a694d") + version("2.30.0", commit="03f7ad707f6530fa7f62093f808884b6e83b0526") + version("2.26.0", commit="9d4bed6e118ac76755ffb7abd058b09bac58a9d7") + version("2.20.0", commit="dbedc30d92b600b3a17de596ebe38d15982c70c6") + version("2.18.0", commit="facccd67eee5202fcbe6ad32e667546546e7ccff") + version("2.16.0", commit="4ae348d9fa096c0ec307df95149991edf6044977") + version("2.14.0", commit="b12d24f86e96a7c6a17cbbad21ca14fa3aa7c60f") + version("2.12.1", commit="932298c6877d076004de5541cec85a14e819517a") depends_on("r@3.1.0:", type=("build", "run")) depends_on("r-variantannotation", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_sp/package.py b/repos/spack_repo/builtin/packages/r_sp/package.py index ad99c77a043..78a875c3abf 100644 --- a/repos/spack_repo/builtin/packages/r_sp/package.py +++ b/repos/spack_repo/builtin/packages/r_sp/package.py @@ -30,6 +30,8 @@ class RSp(RPackage): version("1.2-7", sha256="6d60e03e1abd30a7d4afe547d157ce3dd7a8c166fc5e407fd6d62ae99ff30460") version("1.2-3", sha256="58b3a9e395ca664ee61b20b480be4eb61576daca44c3d3f6f9a943bb0155879a") + depends_on("c", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@3.2.0:", type=("build", "run"), when="@2.0-0:") depends_on("r@3.5.0:", type=("build", "run"), when="@2.1-0:") diff --git a/repos/spack_repo/builtin/packages/r_spades_tools/package.py b/repos/spack_repo/builtin/packages/r_spades_tools/package.py index b9460a700a2..564ff6d8176 100644 --- a/repos/spack_repo/builtin/packages/r_spades_tools/package.py +++ b/repos/spack_repo/builtin/packages/r_spades_tools/package.py @@ -27,6 +27,8 @@ class RSpadesTools(RPackage): version("0.3.9", sha256="84dc47f55ded58746dcb943fde97fa4a4b852e1d2f45949ab1914cf8454e00f3") version("0.3.6", sha256="661f8ee792874e7447be78103775b63f18ec69e773a7b275dd977adb406dd3e5") + depends_on("cxx", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r@3.6:", type=("build", "run"), when="@0.3.9:") depends_on("r@4.0:", type=("build", "run"), when="@0.3.10:") diff --git a/repos/spack_repo/builtin/packages/r_spam/package.py b/repos/spack_repo/builtin/packages/r_spam/package.py index 1804484dd89..6d321804703 100644 --- a/repos/spack_repo/builtin/packages/r_spam/package.py +++ b/repos/spack_repo/builtin/packages/r_spam/package.py @@ -28,6 +28,10 @@ class RSpam(RPackage): version("2.6-0", sha256="638fdd658e94f7544b46f6b6568b20a9f390bcd703aff572a3a5249fef66be5c") version("2.3-0.2", sha256="848fa95c0a71ac82af6344539af7b1c33563c687f06ead42851a68b621fff533") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.1:", type=("build", "run")) depends_on("r@3.5:", type=("build", "run"), when="@2.9-1:") depends_on("r-dotcall64", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_sparsem/package.py b/repos/spack_repo/builtin/packages/r_sparsem/package.py index fcbcc6b8705..a667c413272 100644 --- a/repos/spack_repo/builtin/packages/r_sparsem/package.py +++ b/repos/spack_repo/builtin/packages/r_sparsem/package.py @@ -24,4 +24,7 @@ class RSparsem(RPackage): version("1.74", sha256="4712f0c80e9f3cb204497f146ba60b15e75976cdb7798996a7c51f841a85eeba") version("1.7", sha256="df61550b267f8ee9b9d3b17acbadd57a428b43e5e13a6b1c56ed4c38cb523369") + depends_on("c", type="build") + depends_on("fortran", type="build") + depends_on("r@2.15:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_sparsematrixstats/package.py b/repos/spack_repo/builtin/packages/r_sparsematrixstats/package.py index d0bb6a3a64f..ab989415cdb 100644 --- a/repos/spack_repo/builtin/packages/r_sparsematrixstats/package.py +++ b/repos/spack_repo/builtin/packages/r_sparsematrixstats/package.py @@ -23,14 +23,15 @@ class RSparsematrixstats(RPackage): # commit hash check the branch corresponding to a BioConductor release and # the latest commit (or one of the latest ones) should be the one bumping # the r-sparsematrixstats version. - version("1.18.0", commit="172c63ee6c8fa200d2fda5546750ab5ac8ddd858") - version("1.16.0", commit="2ad650c393497263c20d67d45d1a56ee6fa3b402") - version("1.14.0", commit="2923a3bb4e59cf0e05f0e21a8e8df66e670c4abc") - version("1.12.0", commit="054bf939cd7220deaf8e768ff7029d0d38483c91") - version("1.10.0", commit="75d85ba2c9c4c36887fef1a007883167aa85bd94") - version("1.8.0", commit="4f1e2213e5b0d6b3d817c2c9129b7566288916f6") - version("1.6.0", commit="78627a842790af42b6634893087b2bb1f4ac0392") - version("1.2.1", commit="9726f3d5e0f03b50c332d85d5e4c339c18b0494c") + with default_args(get_full_repo=True): + version("1.18.0", commit="172c63ee6c8fa200d2fda5546750ab5ac8ddd858") + version("1.16.0", commit="2ad650c393497263c20d67d45d1a56ee6fa3b402") + version("1.14.0", commit="2923a3bb4e59cf0e05f0e21a8e8df66e670c4abc") + version("1.12.0", commit="054bf939cd7220deaf8e768ff7029d0d38483c91") + version("1.10.0", commit="75d85ba2c9c4c36887fef1a007883167aa85bd94") + version("1.8.0", commit="4f1e2213e5b0d6b3d817c2c9129b7566288916f6") + version("1.6.0", commit="78627a842790af42b6634893087b2bb1f4ac0392") + version("1.2.1", commit="9726f3d5e0f03b50c332d85d5e4c339c18b0494c") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_spatial/package.py b/repos/spack_repo/builtin/packages/r_spatial/package.py index 192f93a6259..42fc20ba685 100644 --- a/repos/spack_repo/builtin/packages/r_spatial/package.py +++ b/repos/spack_repo/builtin/packages/r_spatial/package.py @@ -22,6 +22,8 @@ class RSpatial(RPackage): version("7.3-12", sha256="7639039ee7407bd088e1b253376b2cb4fcdf4cc9124d6b48e4119d5cda872d63") version("7.3-11", sha256="624448d2ac22e1798097d09fc5dc4605908a33f490b8ec971fc6ea318a445c11") + depends_on("c", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r-mass", type=("build", "run"), when="@:7.3-11") diff --git a/repos/spack_repo/builtin/packages/r_spatialreg/package.py b/repos/spack_repo/builtin/packages/r_spatialreg/package.py index cc54c84c9b7..9f99a6a4cd3 100644 --- a/repos/spack_repo/builtin/packages/r_spatialreg/package.py +++ b/repos/spack_repo/builtin/packages/r_spatialreg/package.py @@ -44,6 +44,8 @@ class RSpatialreg(RPackage): version("1.1-5", sha256="ddbf0773bad2e99b306116ae99a57bf29eecf723d1735820935a6fb7f331b27d") version("1.1-3", sha256="7609cdfcdfe427d2643a0db6b5360be3f6d60ede8229436ab52092d1c9cf0480") + depends_on("c", type="build") # generated + depends_on("r@3.3.0:", type=("build", "run")) depends_on("r-spdata", type=("build", "run")) depends_on("r-spdata@2.3.1:", type=("build", "run"), when="@1.3-4:") diff --git a/repos/spack_repo/builtin/packages/r_spatstat_core/package.py b/repos/spack_repo/builtin/packages/r_spatstat_core/package.py index 59e3ed7e5cf..e0ae64b1634 100644 --- a/repos/spack_repo/builtin/packages/r_spatstat_core/package.py +++ b/repos/spack_repo/builtin/packages/r_spatstat_core/package.py @@ -45,6 +45,8 @@ class RSpatstatCore(RPackage): version("2.4-4", sha256="e38c39efe8b14d6e8fdbee8dd870b90c52f78ea571ab7988fd3685f48347d13b") version("2.3-2", sha256="7f4d6d997f9187eda71097a53917e7cbe03f8dcfb4e758d86a90fbe42c92f63c") + depends_on("c", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-spatstat-data@2.1-0:", type=("build", "run")) depends_on("r-spatstat-geom@2.3-0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_spatstat_explore/package.py b/repos/spack_repo/builtin/packages/r_spatstat_explore/package.py index 4ca5b86b7e2..bbdf445bb20 100644 --- a/repos/spack_repo/builtin/packages/r_spatstat_explore/package.py +++ b/repos/spack_repo/builtin/packages/r_spatstat_explore/package.py @@ -30,6 +30,8 @@ class RSpatstatExplore(RPackage): version("3.1-0", sha256="87ef4882652db3b834214bfc776dd7d23d931a9227de12f19722aeb1029d086e") version("3.0-3", sha256="137444a46d26d88241336feece63ed7b006a9328cfe3861d4b8ab7b4bed963a7") + depends_on("c", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-spatstat-data@3.0:", type=("build", "run")) depends_on("r-spatstat-data@3.0-4:", type=("build", "run"), when="@:") diff --git a/repos/spack_repo/builtin/packages/r_spatstat_geom/package.py b/repos/spack_repo/builtin/packages/r_spatstat_geom/package.py index 6aeb53b6279..0eb25a11fe5 100644 --- a/repos/spack_repo/builtin/packages/r_spatstat_geom/package.py +++ b/repos/spack_repo/builtin/packages/r_spatstat_geom/package.py @@ -33,6 +33,8 @@ class RSpatstatGeom(RPackage): version("2.4-0", sha256="32b89a409ce87ffe901e4c8720a26cac9629f9816e163c4ad68b7aa012d69e67") version("2.3-1", sha256="f23e58d05a6d6bfab1345951fa528a9865f2a744e162fe4456161e1b0b5172c0") + depends_on("c", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-spatstat-data@2.0-0:", type=("build", "run")) depends_on("r-spatstat-data@3.0:", type=("build", "run"), when="@3.0-3:") diff --git a/repos/spack_repo/builtin/packages/r_spatstat_linnet/package.py b/repos/spack_repo/builtin/packages/r_spatstat_linnet/package.py index 5d9349c45cf..182b0b67de0 100644 --- a/repos/spack_repo/builtin/packages/r_spatstat_linnet/package.py +++ b/repos/spack_repo/builtin/packages/r_spatstat_linnet/package.py @@ -45,6 +45,8 @@ class RSpatstatLinnet(RPackage): version("2.3-2", sha256="9c78a4b680debfff0f3ae934575c30d03ded49bc9a7179475384af0ebaf13778") version("2.3-1", sha256="119ba6e3da651aa9594f70a7a35349209534215aa640c2653aeddc6aa25038c3") + depends_on("c", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-spatstat-model@3.2-1:", type=("build", "run"), when="@3.1-0:") depends_on("r-spatstat-model@3.2-11.005:", type=("build", "run"), when="@3.2-1:") diff --git a/repos/spack_repo/builtin/packages/r_spatstat_model/package.py b/repos/spack_repo/builtin/packages/r_spatstat_model/package.py index 01861885098..dcaeaf824ed 100644 --- a/repos/spack_repo/builtin/packages/r_spatstat_model/package.py +++ b/repos/spack_repo/builtin/packages/r_spatstat_model/package.py @@ -36,6 +36,8 @@ class RSpatstatModel(RPackage): version("3.3-1", sha256="5c1c969b5f2bbfdfe91ad31cd912f31b91ec9cc7651ecec86c1d7a562161afa7") version("3.2-3", sha256="8ad7d2644773571a5c579ceebb98b735dccc97e9b4b109ea39b4ce3faedb14ea") + depends_on("c", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-spatstat-data@3.0:", type=("build", "run")) depends_on("r-spatstat-data@3.0-4:", type=("build", "run"), when="@3.2-11:") diff --git a/repos/spack_repo/builtin/packages/r_spatstat_random/package.py b/repos/spack_repo/builtin/packages/r_spatstat_random/package.py index 59f9c7994f8..148f2201a86 100644 --- a/repos/spack_repo/builtin/packages/r_spatstat_random/package.py +++ b/repos/spack_repo/builtin/packages/r_spatstat_random/package.py @@ -31,6 +31,9 @@ class RSpatstatRandom(RPackage): version("3.0-1", sha256="938c845c063b8781bf894c0a67537e7b2a7c425a4beba4a95ec9d2c37b43e5b6") version("2.2-0", sha256="45f0bbdb9dbd53b6c4151c3cdd098451cf787729717ccbb063cd1f33910e604d") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-spatstat-data@2.1-0:", type=("build", "run")) depends_on("r-spatstat-data@2.2-0.003:", type=("build", "run"), when="@3.0-1:") diff --git a/repos/spack_repo/builtin/packages/r_spatstat_sparse/package.py b/repos/spack_repo/builtin/packages/r_spatstat_sparse/package.py index 897b8291e3a..1b518b165aa 100644 --- a/repos/spack_repo/builtin/packages/r_spatstat_sparse/package.py +++ b/repos/spack_repo/builtin/packages/r_spatstat_sparse/package.py @@ -22,6 +22,8 @@ class RSpatstatSparse(RPackage): version("2.1-1", sha256="9a35ad69715b767b3ae60b02dce05ccf108fcccdf95bbc8f7d02557bcbde7303") version("2.1-0", sha256="0019214418668cba9f01ee5901ed7f4dba9cfee5ff62d5c7e1c914adfbea0e91") + depends_on("c", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-matrix", type=("build", "run")) depends_on("r-abind", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_spatstat_univar/package.py b/repos/spack_repo/builtin/packages/r_spatstat_univar/package.py index 105aa0fea24..a888997520c 100644 --- a/repos/spack_repo/builtin/packages/r_spatstat_univar/package.py +++ b/repos/spack_repo/builtin/packages/r_spatstat_univar/package.py @@ -20,5 +20,7 @@ class RSpatstatUnivar(RPackage): version("3.0-0", sha256="00bc501d9bec32231207f0562433193bd680606ce465131caa5e2704b4ff4771") + depends_on("c", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run"), when="@3.0-0:") depends_on("r-spatstat-utils@3.0-5:", type=("build", "run"), when="@2.0-3.011:") diff --git a/repos/spack_repo/builtin/packages/r_spatstat_utils/package.py b/repos/spack_repo/builtin/packages/r_spatstat_utils/package.py index 63b6c783949..d0a37b8c693 100644 --- a/repos/spack_repo/builtin/packages/r_spatstat_utils/package.py +++ b/repos/spack_repo/builtin/packages/r_spatstat_utils/package.py @@ -24,5 +24,7 @@ class RSpatstatUtils(RPackage): version("1.17-0", sha256="39cd683ed7f41d8adc9e28af073d91b244aa1cf5ad966dfbb396ee3ee79f0922") version("1.15-0", sha256="90e07d730b6939f47f93c939afae10874b2c82bd402960ede4133de67dca2a0c") + depends_on("c", type="build") # generated + depends_on("r@3.3.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@3.1-0:") diff --git a/repos/spack_repo/builtin/packages/r_spdep/package.py b/repos/spack_repo/builtin/packages/r_spdep/package.py index 2a51a1fef2d..1db4c70f398 100644 --- a/repos/spack_repo/builtin/packages/r_spdep/package.py +++ b/repos/spack_repo/builtin/packages/r_spdep/package.py @@ -35,6 +35,8 @@ class RSpdep(RPackage): version("1.0-2", sha256="6f9efa4347d5c13b49922b75481ac403431c3c76a65a109af29954aa7bb138b2") version("0.6-13", sha256="ed345f4c7ea7ba064b187eb6b25f0ac46f17616f3b56ab89978935cdc67df1c4") + depends_on("c", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@3.3.0:", type=("build", "run"), when="@0.7-8:") depends_on("r-sp@1.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_spem/package.py b/repos/spack_repo/builtin/packages/r_spem/package.py index 951ab53f361..00a23cb468a 100644 --- a/repos/spack_repo/builtin/packages/r_spem/package.py +++ b/repos/spack_repo/builtin/packages/r_spem/package.py @@ -15,16 +15,17 @@ class RSpem(RPackage): bioc = "SPEM" - version("1.40.0", commit="2eb948950c01ced90ebf27558817e2849da81a32") - version("1.38.0", commit="43ff6b0a84e7aef947d1a793583d2e9a0119c99d") - version("1.36.0", commit="75832966ba3e2bae6b56aa138764f7a98c7ba9b1") - version("1.34.0", commit="53fd404638a04ec8e2e826e55c3f2d91d8b28e3d") - version("1.30.0", commit="6b2eb64bfe6287846b1408297dd46dc772431031") - version("1.24.0", commit="537ed19e466008f2972a246479b327c95177a99e") - version("1.22.0", commit="fddb7cd1f81e47eae603724ea149c2adca5b3eb4") - version("1.20.0", commit="b0e1049c61a35da00882d21026f4c1eb03b17517") - version("1.18.0", commit="3ab425dd9889885eac328d26b73366a875cd250b") - version("1.16.0", commit="9c0a96374086765db9c81e36a662999067fa4cc7") + with default_args(get_full_repo=True): + version("1.40.0", commit="2eb948950c01ced90ebf27558817e2849da81a32") + version("1.38.0", commit="43ff6b0a84e7aef947d1a793583d2e9a0119c99d") + version("1.36.0", commit="75832966ba3e2bae6b56aa138764f7a98c7ba9b1") + version("1.34.0", commit="53fd404638a04ec8e2e826e55c3f2d91d8b28e3d") + version("1.30.0", commit="6b2eb64bfe6287846b1408297dd46dc772431031") + version("1.24.0", commit="537ed19e466008f2972a246479b327c95177a99e") + version("1.22.0", commit="fddb7cd1f81e47eae603724ea149c2adca5b3eb4") + version("1.20.0", commit="b0e1049c61a35da00882d21026f4c1eb03b17517") + version("1.18.0", commit="3ab425dd9889885eac328d26b73366a875cd250b") + version("1.16.0", commit="9c0a96374086765db9c81e36a662999067fa4cc7") depends_on("r@2.15.1:", type=("build", "run")) depends_on("r-rsolnp", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_splancs/package.py b/repos/spack_repo/builtin/packages/r_splancs/package.py index 66034d2b4fa..e317368ccaa 100644 --- a/repos/spack_repo/builtin/packages/r_splancs/package.py +++ b/repos/spack_repo/builtin/packages/r_splancs/package.py @@ -23,5 +23,8 @@ class RSplancs(RPackage): version("2.01-42", sha256="8c0af4764521e20b629dba6afd5c284e7be48786f378c37668eacfa26d2ef0aa") version("2.01-40", sha256="79744381ebc4a361740a36dca3c9fca9ae015cfe0bd585b7856a664a3da74363") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@2.10.0:", type=("build", "run")) depends_on("r-sp@0.9:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_splines2/package.py b/repos/spack_repo/builtin/packages/r_splines2/package.py index b1995fff09d..af5cf94aa88 100644 --- a/repos/spack_repo/builtin/packages/r_splines2/package.py +++ b/repos/spack_repo/builtin/packages/r_splines2/package.py @@ -22,6 +22,8 @@ class RSplines2(RPackage): version("0.5.3", sha256="c27e7bd12d615095f765f4c1ed3cb9e39b922653aabbe88c4ca3ac31e6a01ddc") + depends_on("cxx", type="build") # generated + depends_on("r@3.2.3:", type=("build", "run")) depends_on("r-rcpp", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_sseq/package.py b/repos/spack_repo/builtin/packages/r_sseq/package.py index c49f4a451aa..371b425c56a 100644 --- a/repos/spack_repo/builtin/packages/r_sseq/package.py +++ b/repos/spack_repo/builtin/packages/r_sseq/package.py @@ -24,16 +24,17 @@ class RSseq(RPackage): bioc = "sSeq" - version("1.38.0", commit="09242bb94d72ff13e3f18c3588934149f27ac374") - version("1.36.0", commit="0345ac579c4bdcc9c42c24831ad86fc6225c5cb9") - version("1.34.0", commit="882bea1664f55d85550a7185cbd4a0108c35df36") - version("1.32.0", commit="c0d3c305755d888f64d334a4ab5fa54c623054cf") - version("1.28.0", commit="401f6805628bdf6579cc0e643b7ed54319f024be") - version("1.22.0", commit="fa3895c9578edddca17b5d13a2678ee5830b85cc") - version("1.20.1", commit="91f31440323612cb04beb44404ab0a1bcb3ad87d") - version("1.18.0", commit="1f65e5a55ce0d51672b785450031872e6db5ca0f") - version("1.16.0", commit="b7f2b99dbd4a12ee9d18b0ec9898f13f1038479e") - version("1.14.0", commit="20ccffeb60196914975aa1feef902ddba659c571") + with default_args(get_full_repo=True): + version("1.38.0", commit="09242bb94d72ff13e3f18c3588934149f27ac374") + version("1.36.0", commit="0345ac579c4bdcc9c42c24831ad86fc6225c5cb9") + version("1.34.0", commit="882bea1664f55d85550a7185cbd4a0108c35df36") + version("1.32.0", commit="c0d3c305755d888f64d334a4ab5fa54c623054cf") + version("1.28.0", commit="401f6805628bdf6579cc0e643b7ed54319f024be") + version("1.22.0", commit="fa3895c9578edddca17b5d13a2678ee5830b85cc") + version("1.20.1", commit="91f31440323612cb04beb44404ab0a1bcb3ad87d") + version("1.18.0", commit="1f65e5a55ce0d51672b785450031872e6db5ca0f") + version("1.16.0", commit="b7f2b99dbd4a12ee9d18b0ec9898f13f1038479e") + version("1.14.0", commit="20ccffeb60196914975aa1feef902ddba659c571") depends_on("r@3.0:", type=("build", "run")) depends_on("r-catools", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_stanheaders/package.py b/repos/spack_repo/builtin/packages/r_stanheaders/package.py index 81afd403a8b..7ee208e40c9 100644 --- a/repos/spack_repo/builtin/packages/r_stanheaders/package.py +++ b/repos/spack_repo/builtin/packages/r_stanheaders/package.py @@ -36,6 +36,8 @@ class RStanheaders(RPackage): version("2.17.1", sha256="4300a1910a2eb40d7a6ecabea3c1e26f0aa9421eeb3000689272a0f62cb80d97") version("2.10.0-2", sha256="ce4e335172bc65da874699302f6ba5466cdbcf69458c11954c0f131fc78b59b7") + depends_on("c", type=("build")) + depends_on("r+X", type=("build", "run")) depends_on("r@3.4.0:", type=("build", "run"), when="@2.18.0:") depends_on("r-rcppparallel@5.0.1:", type=("build", "run"), when="@2.21.0:") diff --git a/repos/spack_repo/builtin/packages/r_statnet_common/package.py b/repos/spack_repo/builtin/packages/r_statnet_common/package.py index 96118bcf807..73e34d58761 100644 --- a/repos/spack_repo/builtin/packages/r_statnet_common/package.py +++ b/repos/spack_repo/builtin/packages/r_statnet_common/package.py @@ -25,6 +25,8 @@ class RStatnetCommon(RPackage): version("4.2.0", sha256="1176c3303436ebe858d02979cf0a0c33e4e2d1f3637516b4761d573ccd132461") version("3.3.0", sha256="d714c4e7b0cbf71b7a628af443f5be530e74ad1e21f6b04f1b1087f6d7e40fa4") + depends_on("c", type="build") # generated + depends_on("r@3.5:", type=("build", "run"), when="@4.2.0:") depends_on("r-coda", type=("build", "run"), when="@4.1.2:") diff --git a/repos/spack_repo/builtin/packages/r_stringfish/package.py b/repos/spack_repo/builtin/packages/r_stringfish/package.py index 08b89bc3b38..0fd73aff0a5 100644 --- a/repos/spack_repo/builtin/packages/r_stringfish/package.py +++ b/repos/spack_repo/builtin/packages/r_stringfish/package.py @@ -24,6 +24,9 @@ class RStringfish(RPackage): version("0.15.5", sha256="9df21146a7710e5a9ab4bb53ebc231a580c798b7e541b8d78df53207283f8129") version("0.14.2", sha256="9373cfc715cda1527fd20179435977b8e59e19d8c5ef82a31e519f93fb624ced") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r@3.0.2:", type=("build", "run"), when="@0.15.5:") depends_on("r-rcpp@0.12.18.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_stringi/package.py b/repos/spack_repo/builtin/packages/r_stringi/package.py index 37f99795999..fe6bf749a3d 100644 --- a/repos/spack_repo/builtin/packages/r_stringi/package.py +++ b/repos/spack_repo/builtin/packages/r_stringi/package.py @@ -23,6 +23,7 @@ class RStringi(RPackage): license("custom") + version("1.8.7", sha256="0526decdcd41b7c42278aca96945394c2cb66ba6fdd47fd917b5d3d38ed5c8c6") version("1.8.4", sha256="c219f8f64d1a2bfd4ca9528452d44d30db1899af14f4b9ef248412443bc669f3") version("1.7.12", sha256="efe8ac2900001f986a75db5641fbb24587a6d23de274a6a85c39dfa58921e009") version("1.7.8", sha256="538918b1cd6ed1d8a2dd5ab146ba800a088e99f93c52dcd82615b6e127478b1c") @@ -39,9 +40,12 @@ class RStringi(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@2.14:", type=("build", "run")) - depends_on("r@3.1:", type=("build", "run"), when="@1.6.1:") - depends_on("r@3.4:", type=("build", "run"), when="@1.8.1:") - depends_on("icu4c@52:") + with default_args(type=("build", "run")): + depends_on("r@3.4:", type=("build", "run"), when="@1.8.1:") + depends_on("r@3.1:", type=("build", "run"), when="@1.6.1:") + depends_on("r@2.14:", type=("build", "run")) + + depends_on("icu4c@61:", when="@1.8:") depends_on("icu4c@55:", when="@1.5.3:") - # since version 1.6.1 there is also a SystemRequirement on C++11 + depends_on("icu4c@52:") + # for version 1.6.1 till 1.7.12 there is also a SystemRequirement on C++11 diff --git a/repos/spack_repo/builtin/packages/r_stringr/package.py b/repos/spack_repo/builtin/packages/r_stringr/package.py index 3f8f48375f7..07e0242a2ef 100644 --- a/repos/spack_repo/builtin/packages/r_stringr/package.py +++ b/repos/spack_repo/builtin/packages/r_stringr/package.py @@ -20,6 +20,7 @@ class RStringr(RPackage): license("MIT") + version("1.6.0", sha256="24f2fc5df980a7eb888659e22b9744d2316c558624015c7a7cd8c3ce3e370064") version("1.5.1", sha256="a4adec51bb3f04214b1d8ef40d3a58949f21b1497cbeaf2ba552e0891eef45de") version("1.5.0", sha256="52b159d7700a139111b4caf939e7c9c6ab3e01185181400d70a74c552826633a") version("1.4.1", sha256="ec0d8e90caa3e107f18c188ed313dea8bfd12a738011b0be09ef5362360ddcb1") @@ -29,16 +30,19 @@ class RStringr(RPackage): version("1.1.0", sha256="ccb1f0e0f3e9524786f6cbae705c42eedf3874d0e641564e5e00517d892c5a33") version("1.0.0", sha256="f8267db85b83c0fc8904009719c93296934775b0d6890c996ec779ec5336df4a") - depends_on("r@3.1:", type=("build", "run")) - depends_on("r@3.3:", type=("build", "run"), when="@1.5.0:") - depends_on("r@3.6:", type=("build", "run"), when="@1.5.1:") - depends_on("r-lifecycle@1.0.3:", type=("build", "run"), when="@1.5.0:") - depends_on("r-cli", type=("build", "run"), when="@1.5.0:") - depends_on("r-stringi@1.1.7:", type=("build", "run")) - depends_on("r-stringi@1.5.3:", type=("build", "run"), when="@1.5.0:") - depends_on("r-magrittr", type=("build", "run")) - depends_on("r-vctrs", type=("build", "run"), when="@1.5.0:") - depends_on("r-vctrs@0.4.0:", type=("build", "run"), when="@1.5.1:") - depends_on("r-rlang@1.0.0:", type=("build", "run"), when="@1.5.0:") - depends_on("r-glue@1.2.0:", type=("build", "run"), when="@1.3.0:") - depends_on("r-glue@1.6.1:", type=("build", "run"), when="@1.5.0:") + with default_args(type=("build", "run")): + depends_on("r@4.1:", when="@1.6.0:") + depends_on("r@3.6:", when="@1.5.1:") + depends_on("r@3.3:", when="@1.5.0:") + depends_on("r@3.1:") + + depends_on("r-cli", when="@1.5.0:") + depends_on("r-glue@1.6.1:", when="@1.5.0:") + depends_on("r-glue@1.2.0:", when="@1.3.0:") + depends_on("r-lifecycle@1.0.3:", when="@1.5.0:") + depends_on("r-magrittr") + depends_on("r-rlang@1.0.0:", when="@1.5.0:") + depends_on("r-stringi@1.5.3:", when="@1.5.0:") + depends_on("r-stringi@1.1.7:") + depends_on("r-vctrs@0.4.0:", when="@1.5.1:") + depends_on("r-vctrs", when="@1.5.0:") diff --git a/repos/spack_repo/builtin/packages/r_styler/package.py b/repos/spack_repo/builtin/packages/r_styler/package.py index 1b9499f27ba..aa22fc160b4 100644 --- a/repos/spack_repo/builtin/packages/r_styler/package.py +++ b/repos/spack_repo/builtin/packages/r_styler/package.py @@ -24,6 +24,8 @@ class RStyler(RPackage): version("1.6.2", sha256="a62fcc76aac851069f33874f9eaabdd580973b619cfc625d6ec910476015f75c") version("1.3.2", sha256="3fcf574382c607c2147479bad4f9fa8b823f54fb1462d19ec4a330e135a44ff1") + depends_on("cxx", type="build") # generated + depends_on("r@3.4.0:", type=("build", "run"), when="@1.7.0:") depends_on("r@3.5.0:", type=("build", "run"), when="@1.8.0:") depends_on("r@3.6.0:", type=("build", "run"), when="@1.10.0:") diff --git a/repos/spack_repo/builtin/packages/r_subplex/package.py b/repos/spack_repo/builtin/packages/r_subplex/package.py index c59c7a67739..388f1aa1f8b 100644 --- a/repos/spack_repo/builtin/packages/r_subplex/package.py +++ b/repos/spack_repo/builtin/packages/r_subplex/package.py @@ -25,5 +25,8 @@ class RSubplex(RPackage): version("1.5-2", sha256="6f8c3ccadf1ccd7f11f3eae28cec16eed3695f14e351b864d807dbaba6cd3ded") version("1.4-1", sha256="94b7b961aaa229a6f025151191ed50272af1394be69f1c41146b9e8c786caec6") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@2.5.1:", type=("build", "run")) depends_on("r@4.1.0:", type=("build", "run"), when="@1.9:") diff --git a/repos/spack_repo/builtin/packages/r_summarizedexperiment/package.py b/repos/spack_repo/builtin/packages/r_summarizedexperiment/package.py index 7103bb33529..6fc765901f9 100644 --- a/repos/spack_repo/builtin/packages/r_summarizedexperiment/package.py +++ b/repos/spack_repo/builtin/packages/r_summarizedexperiment/package.py @@ -17,17 +17,18 @@ class RSummarizedexperiment(RPackage): bioc = "SummarizedExperiment" - version("1.30.0", commit="a2843fbced9fc345c9061b2e52244f3263326e2e") - version("1.28.0", commit="ba55dac12224f0aafe8f52f1397611b5efb41626") - version("1.26.1", commit="c8cbd3b4f0fa1d686c4d7ce5b8614a24c74b2074") - version("1.24.0", commit="d37f19383d03c107a8a41c0df2326e28efe46b28") - version("1.20.0", commit="874aa87a481e4076a0ec3369f55c9c0a1ab8025e") - version("1.18.2", commit="e22fafe8c314b4e216fb130012d631b4626bc605") - version("1.14.1", commit="2c68d99e11c7345e5ed388370822ea48395c64a4") - version("1.12.0", commit="5f8416864636add121ec1d6737ebb89a42227fd7") - version("1.10.1", commit="7ad2e991c8285bfc4b2e15b29d94cc86d07f8f2b") - version("1.8.1", commit="9d8a29aa9c78bbc7dcc6472537e13fc0d11dc1f7") - version("1.6.5", commit="ec69cd5cfbccaef148a9f6abdfb3e22e888695d0") + with default_args(get_full_repo=True): + version("1.30.0", commit="a2843fbced9fc345c9061b2e52244f3263326e2e") + version("1.28.0", commit="ba55dac12224f0aafe8f52f1397611b5efb41626") + version("1.26.1", commit="c8cbd3b4f0fa1d686c4d7ce5b8614a24c74b2074") + version("1.24.0", commit="d37f19383d03c107a8a41c0df2326e28efe46b28") + version("1.20.0", commit="874aa87a481e4076a0ec3369f55c9c0a1ab8025e") + version("1.18.2", commit="e22fafe8c314b4e216fb130012d631b4626bc605") + version("1.14.1", commit="2c68d99e11c7345e5ed388370822ea48395c64a4") + version("1.12.0", commit="5f8416864636add121ec1d6737ebb89a42227fd7") + version("1.10.1", commit="7ad2e991c8285bfc4b2e15b29d94cc86d07f8f2b") + version("1.8.1", commit="9d8a29aa9c78bbc7dcc6472537e13fc0d11dc1f7") + version("1.6.5", commit="ec69cd5cfbccaef148a9f6abdfb3e22e888695d0") depends_on("r@3.2:", type=("build", "run")) depends_on("r@4.0.0:", type=("build", "run"), when="@1.24.0:") diff --git a/repos/spack_repo/builtin/packages/r_survey/package.py b/repos/spack_repo/builtin/packages/r_survey/package.py index 46b6b65104b..a08314010bf 100644 --- a/repos/spack_repo/builtin/packages/r_survey/package.py +++ b/repos/spack_repo/builtin/packages/r_survey/package.py @@ -29,6 +29,8 @@ class RSurvey(RPackage): version("3.35-1", sha256="11e5ddde9c8c21dfaed0b1247036e068ad32782c76ff71f7937eb7585dd364db") version("3.30-3", sha256="be45d00b22d857e66905789031f2db1037505f80ce15d4b0ea84dabb03bc9e6d") + depends_on("cxx", type="build") # generated + depends_on("r@2.14.0:", type=("build", "run")) depends_on("r@2.16.0:", type=("build", "run"), when="@3.32:") depends_on("r@3.1.0:", type=("build", "run"), when="@3.35:") diff --git a/repos/spack_repo/builtin/packages/r_survival/package.py b/repos/spack_repo/builtin/packages/r_survival/package.py index 14abd03eaf7..65f38d29a9a 100644 --- a/repos/spack_repo/builtin/packages/r_survival/package.py +++ b/repos/spack_repo/builtin/packages/r_survival/package.py @@ -18,6 +18,8 @@ class RSurvival(RPackage): license("LGPL-2.0-or-later") + version("3.8-6", sha256="9a4c0a35d86c64ec5a6e6cf179ab22dcffb5ce1d313d2880a09f1e53422699d7") + version("3.8-3", sha256="dcab05a57d37a561c7426f6213d49852dc4f462180dd28b5325ff4b6a5e59915") version("3.7-0", sha256="cd96b08ec928b0028f69c942cc788e190b4543c8518d71deb6d8a712de44feef") version("3.5-5", sha256="1375a509554b0258e04e27baca2e073e179406e2a9a71e6d3e0c777072568476") version("3.4-0", sha256="a48e23d47265fe4d90fb5f0f9fc388906014f8063211980856985db9e89cf812") @@ -31,7 +33,11 @@ class RSurvival(RPackage): version("2.40-1", sha256="91d5217847e39bebcbce4f0a2e295304e5816b1270e71f5f2ed39807f004ee82") version("2.39-5", sha256="607170ebe36080d102e884cf13c3b29df01d6bb3b593258afffa67fee2a0ada7") - depends_on("r@2.13.0:", type=("build", "run")) - depends_on("r@3.4:", type=("build", "run"), when="@3.1-12:") - depends_on("r@3.5.0:", type=("build", "run"), when="@3.2-13:") - depends_on("r-matrix", type=("build", "run")) + depends_on("c", type="build") + + with default_args(type=("build", "run")): + depends_on("r@3.5.0:", when="@3.2-13:") + depends_on("r@3.4:", when="@3.1-12:") + depends_on("r@2.13.0:") + + depends_on("r-matrix") diff --git a/repos/spack_repo/builtin/packages/r_sva/package.py b/repos/spack_repo/builtin/packages/r_sva/package.py index 5a4328e6de9..cd0687d5ccb 100644 --- a/repos/spack_repo/builtin/packages/r_sva/package.py +++ b/repos/spack_repo/builtin/packages/r_sva/package.py @@ -31,16 +31,17 @@ class RSva(RPackage): bioc = "sva" - version("3.48.0", commit="f1657af586d402598df71ade10dfeb28aa28b5c4") - version("3.46.0", commit="4aac49cf806f05bb98e08a6be539adebbecbfdb2") - version("3.44.0", commit="45ab2c1d6643bcda4de2d95a81b9b28d33a1a8a1") - version("3.42.0", commit="54c843cc46437be233ecb43b6aa868e968d71138") - version("3.38.0", commit="5ded8ba649200ec4829051f86a59e1a2548a7ab8") - version("3.32.1", commit="1b8286734d00533b49d9f1456b6523cc778bb744") - version("3.30.1", commit="fdb98bc2299dc5213c62d83cb7c0b1c1b4912f0c") - version("3.28.0", commit="dd4937229dbccd2f383a04d5237fe147a884728d") - version("3.26.0", commit="3cc5e75413c35ed5511892f5c36a8b5cb454937e") - version("3.24.4", commit="ed2ebb6e33374dc9ec50e6ea97cc1d9aef836c73") + with default_args(get_full_repo=True): + version("3.48.0", commit="f1657af586d402598df71ade10dfeb28aa28b5c4") + version("3.46.0", commit="4aac49cf806f05bb98e08a6be539adebbecbfdb2") + version("3.44.0", commit="45ab2c1d6643bcda4de2d95a81b9b28d33a1a8a1") + version("3.42.0", commit="54c843cc46437be233ecb43b6aa868e968d71138") + version("3.38.0", commit="5ded8ba649200ec4829051f86a59e1a2548a7ab8") + version("3.32.1", commit="1b8286734d00533b49d9f1456b6523cc778bb744") + version("3.30.1", commit="fdb98bc2299dc5213c62d83cb7c0b1c1b4912f0c") + version("3.28.0", commit="dd4937229dbccd2f383a04d5237fe147a884728d") + version("3.26.0", commit="3cc5e75413c35ed5511892f5c36a8b5cb454937e") + version("3.24.4", commit="ed2ebb6e33374dc9ec50e6ea97cc1d9aef836c73") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_svglite/package.py b/repos/spack_repo/builtin/packages/r_svglite/package.py index 76cdbaee840..1848f076928 100644 --- a/repos/spack_repo/builtin/packages/r_svglite/package.py +++ b/repos/spack_repo/builtin/packages/r_svglite/package.py @@ -22,6 +22,8 @@ class RSvglite(RPackage): version("2.1.0", sha256="ad40f590c7e80ae83001a3826b6e8394ba733446ed51fd55faeda974ab839c9b") version("2.0.0", sha256="76e625fe172a5b7ce99a67b6d631b037b3f7f0021cfe15f2e15e8851b89defa5") + depends_on("cxx", type="build") # generated + depends_on("r+X", type=("build", "run")) depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@2.1.2:") diff --git a/repos/spack_repo/builtin/packages/r_sys/package.py b/repos/spack_repo/builtin/packages/r_sys/package.py index 5e6d85526cc..42dc9c08dec 100644 --- a/repos/spack_repo/builtin/packages/r_sys/package.py +++ b/repos/spack_repo/builtin/packages/r_sys/package.py @@ -20,6 +20,7 @@ class RSys(RPackage): license("MIT") + version("3.4.3", sha256="051e7332e3074db826efef9059067721864f9d70adc55bbcae3a72e5ae83913a") version("3.4.2", sha256="b7bdce66f0fb681830ea6fb77b5a2c6babb43920abb1eddc733f95c0a63ce5b3") version("3.4.1", sha256="324e6d8fde58264e62bc04867b719c5fd16296de1542689801b8cb13621ecf52") version("3.4", sha256="17f88fbaf222f1f8fd07919461093dac0e7175ae3c3b3264b88470617afd0487") diff --git a/repos/spack_repo/builtin/packages/r_systemfonts/package.py b/repos/spack_repo/builtin/packages/r_systemfonts/package.py index 0e48beab05e..f4e7262d98b 100644 --- a/repos/spack_repo/builtin/packages/r_systemfonts/package.py +++ b/repos/spack_repo/builtin/packages/r_systemfonts/package.py @@ -22,6 +22,8 @@ class RSystemfonts(RPackage): license("MIT") + version("1.3.2", sha256="828a1780e540bd05107cd0a1ddfac6727de8aef1d6d82b43591dabaf753dd135") + version("1.3.1", sha256="4392cbf7f97d335b61f7a70257faead2d45a3beeb76249d75a41e9ed82e4456d") version("1.1.0", sha256="1941069bd20320284ec026a38c53cb736be60bda431303ceaf8fd27ae13fb644") version("1.0.4", sha256="ef766c75b942f147d382664a00d6a4930f1bfe0cce9d88943f571682a85a84c0") version("1.0.3", sha256="647c99d5ea6f90a49768ea7b10b39816af6be85168475273369fd973a20dbbba") @@ -30,8 +32,12 @@ class RSystemfonts(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@3.2.0:", type=("build", "run")) - depends_on("r-cpp11@0.2.1:", type=("build", "run")) - depends_on("r-lifecycle", type=("build", "run"), when="@1.1.0:") + with default_args(type=("build", "run")): + depends_on("r@3.2.0:") + depends_on("r-base64enc", when="@1.2.3:") + depends_on("r-jsonlite", when="@1.2:") + depends_on("r-lifecycle", when="@1.1:") + depends_on("r-cpp11@0.2.1:") + depends_on("fontconfig") depends_on("freetype") diff --git a/repos/spack_repo/builtin/packages/r_tclust/package.py b/repos/spack_repo/builtin/packages/r_tclust/package.py index d2ed8e33c64..edb2acb916c 100644 --- a/repos/spack_repo/builtin/packages/r_tclust/package.py +++ b/repos/spack_repo/builtin/packages/r_tclust/package.py @@ -31,6 +31,8 @@ class RTclust(RPackage): version("1.1-03", sha256="b8a62a1d27e69ac7e985ba5ea2ae5d182d2e51665bfbfb178e22b63041709270") version("1.1-02", sha256="f73c0d7a495552f901b710cf34e114c0ba401d5a17c48156313245904bcccad4") + depends_on("cxx", type="build") # generated + depends_on("r@2.12.0:", type=("build", "run")) depends_on("r@3.6.2:", type=("build", "run"), when="@1.5-6:") diff --git a/repos/spack_repo/builtin/packages/r_tensora/package.py b/repos/spack_repo/builtin/packages/r_tensora/package.py index cc96c7ed30b..947b95f12da 100644 --- a/repos/spack_repo/builtin/packages/r_tensora/package.py +++ b/repos/spack_repo/builtin/packages/r_tensora/package.py @@ -24,4 +24,6 @@ class RTensora(RPackage): version("0.36.1", sha256="c7ffe12b99867675b5e9c9f31798f9521f14305c9d9f9485b171bcbd8697d09c") version("0.36", sha256="97b3e72f26ca3a756d045008764d787a32c68f0a276fb7a29b6e1b4592fdecf6") + depends_on("c", type="build") + depends_on("r@2.2.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_terra/package.py b/repos/spack_repo/builtin/packages/r_terra/package.py index 8261004d7e5..f1941509b61 100644 --- a/repos/spack_repo/builtin/packages/r_terra/package.py +++ b/repos/spack_repo/builtin/packages/r_terra/package.py @@ -24,6 +24,8 @@ class RTerra(RPackage): license("GPL-3.0-or-later") + version("1.9-11", sha256="590f3a35c03bbc69e40bfa1475d12caac4b837fb77b449ee14ecba4f2c5e881a") + version("1.8-86", sha256="a446375352d1a01d6bb9ec0a0ac0031ac11a1252567278bd34b4a136f6de7474") version("1.7-78", sha256="658956b79d8a1371aefdf7300316f1756b58d436ba549ade012307684b2d4b7e") version("1.7-29", sha256="3f39b052a34c9f1166a342be4c25bbdc1e2c81402edb734901d63fc6fa547ca5") version("1.6-17", sha256="db888f4220ca511332f4d011345b2b207fcc1de26d2eae473e0eeb5dfd8bbc02") @@ -32,6 +34,11 @@ class RTerra(RPackage): version("1.5-12", sha256="865cc14ee8c3239037c08170df4011eed27cf638ac1d05f0b7cd704abf97cc19") version("1.4-22", sha256="b8eccfa36764577248d7b390e24af6db65fb8824c07f9b782bd6b83c4d2b3976") + variant("tbb", default=False, description="Enable parallel processing via Intel TBB") + + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.5.0:", type=("build", "run")) depends_on("r-rcpp", type=("build", "run")) depends_on("r-rcpp@1.0-10:", type=("build", "run"), when="@1.7-29:") @@ -39,3 +46,4 @@ class RTerra(RPackage): depends_on("geos@3.4.0:") depends_on("proj@4.9.3:") depends_on("sqlite") + depends_on("intel-oneapi-tbb", when="+tbb") diff --git a/repos/spack_repo/builtin/packages/r_testthat/package.py b/repos/spack_repo/builtin/packages/r_testthat/package.py index 265529a8fa4..ab09b741d02 100644 --- a/repos/spack_repo/builtin/packages/r_testthat/package.py +++ b/repos/spack_repo/builtin/packages/r_testthat/package.py @@ -30,6 +30,9 @@ class RTestthat(RPackage): version("2.1.0", sha256="cf5fa7108111b32b86e70819352f86b57ab4e835221bb1e83642d52a1fdbcdd4") version("1.0.2", sha256="0ef7df0ace1fddf821d329f9d9a5d42296085350ae0d94af62c45bd203c8415e") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.1:", type=("build", "run")) depends_on("r@3.6.0:", type=("build", "run"), when="@3.2.0:") depends_on("r-brio", type=("build", "run"), when="@3.0.1:") diff --git a/repos/spack_repo/builtin/packages/r_textshaping/package.py b/repos/spack_repo/builtin/packages/r_textshaping/package.py index af7f0078592..48a7442465f 100644 --- a/repos/spack_repo/builtin/packages/r_textshaping/package.py +++ b/repos/spack_repo/builtin/packages/r_textshaping/package.py @@ -19,18 +19,24 @@ class RTextshaping(RPackage): license("MIT") + version("1.0.5", sha256="12209d5535884b8b49bb56de10996cd797f806f44c691eefae2e8eb9786443dd") version("0.4.0", sha256="35e940786bb278560de61bb55d4f46f8c86c878d0461613ceb8c98ba9b239d7a") version("0.3.6", sha256="80e2c087962f55ce2811fbc798b09f5638c06c6b28c10cd3cb3827005b902ada") - depends_on("c", type="build") - depends_on("cxx", type="build") + with default_args(type="build"): + depends_on("c") + depends_on("cxx") + depends_on("pkgconfig") + + with default_args(type=("build", "run")): + depends_on("r@3.2.0:") + depends_on("r-lifecycle", when="@0.4.0:") + depends_on("r-stringi", when="@1.0.0:") + depends_on("r-systemfonts@1.3.0:", when="@1.0.4:") + depends_on("r-systemfonts@1.1.0:", when="@0.4.0:") + depends_on("r-systemfonts@1.0.0:") + depends_on("r-cpp11@0.2.1:") - depends_on("r@3.2.0:", type=("build", "run")) - depends_on("r-cpp11@0.2.1:", type=("build", "run")) - depends_on("r-lifecycle", type=("build", "run"), when="@0.4.0:") - depends_on("r-systemfonts@1.0.0:", type=("build", "run")) - depends_on("r-systemfonts@1.1.0:", type=("build", "run"), when="@0.4.0:") - depends_on("pkgconfig", type="build") depends_on("freetype") depends_on("harfbuzz") depends_on("fribidi") diff --git a/repos/spack_repo/builtin/packages/r_tfbstools/package.py b/repos/spack_repo/builtin/packages/r_tfbstools/package.py index ca5d5311363..7cb8f3a084a 100644 --- a/repos/spack_repo/builtin/packages/r_tfbstools/package.py +++ b/repos/spack_repo/builtin/packages/r_tfbstools/package.py @@ -19,16 +19,17 @@ class RTfbstools(RPackage): bioc = "TFBSTools" - version("1.38.0", commit="2ce17166b6f73b5093acec2a3dde33b6bcfa56bc") - version("1.36.0", commit="3358c89227a4d2e237ee5f8c532f468460a16ee2") - version("1.34.0", commit="7f8d0cb58a527a5d7ba94a773279f13aedca6ec7") - version("1.32.0", commit="235505626b910de29156a07e1f990daa3b5d57d9") - version("1.28.0", commit="15e7cf76f39ee3280a27284d58f7adef1c33f193") - version("1.22.0", commit="613d3567fd662b65269bd200c5aa5f87ac6a4612") - version("1.20.0", commit="74035fc6beb1af82f171c11ef2b0a8817714c5bc") - version("1.18.0", commit="17e12b9f3dcb9059d414307ec0bc23ed1ee33294") - version("1.16.0", commit="565436a5a674d4dea7279e796a20c5bd2034f65a") - version("1.14.2", commit="e429fdefb6f7ee4585dd2a8ca3d0ced7a5bed4ff") + with default_args(get_full_repo=True): + version("1.38.0", commit="2ce17166b6f73b5093acec2a3dde33b6bcfa56bc") + version("1.36.0", commit="3358c89227a4d2e237ee5f8c532f468460a16ee2") + version("1.34.0", commit="7f8d0cb58a527a5d7ba94a773279f13aedca6ec7") + version("1.32.0", commit="235505626b910de29156a07e1f990daa3b5d57d9") + version("1.28.0", commit="15e7cf76f39ee3280a27284d58f7adef1c33f193") + version("1.22.0", commit="613d3567fd662b65269bd200c5aa5f87ac6a4612") + version("1.20.0", commit="74035fc6beb1af82f171c11ef2b0a8817714c5bc") + version("1.18.0", commit="17e12b9f3dcb9059d414307ec0bc23ed1ee33294") + version("1.16.0", commit="565436a5a674d4dea7279e796a20c5bd2034f65a") + version("1.14.2", commit="e429fdefb6f7ee4585dd2a8ca3d0ced7a5bed4ff") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_tibble/package.py b/repos/spack_repo/builtin/packages/r_tibble/package.py index 348f16c648c..4128f0c9690 100644 --- a/repos/spack_repo/builtin/packages/r_tibble/package.py +++ b/repos/spack_repo/builtin/packages/r_tibble/package.py @@ -17,6 +17,7 @@ class RTibble(RPackage): license("MIT") + version("3.3.1", sha256="fb309f8a1939021b237c7e85ff7ad6e8ff5acd57a6230d220a452094b492b28f") version("3.2.1", sha256="65a72d0c557fd6e7c510d150c935ed6ced5db7d05fc20236b370f11428372131") version("3.1.8", sha256="acf30e075d18d2f61de53ca20a13c502bb32abb8083089b0bb9172a0cb5cedea") version("3.1.7", sha256="e1a50891f476803526960b4c4d736a72e7d9c3d366946744a02d6347f591c872") @@ -33,33 +34,44 @@ class RTibble(RPackage): version("1.1", sha256="10ea18890e5514faa4c2c05fa231a6e2bbb7689f3800850cead214306414c88e") depends_on("c", type="build") # generated + depends_on("cxx", type="build") - depends_on("r@3.1.2:", type=("build", "run")) - depends_on("r@3.1.0:", type=("build", "run"), when="@1.3.0:") - depends_on("r@3.4.0:", type=("build", "run"), when="@3.2.1:") - depends_on("r-fansi@0.4.0:", type=("build", "run"), when="@2.0.0:") - depends_on("r-lifecycle@0.2.0:", type=("build", "run"), when="@3.0.5:") - depends_on("r-lifecycle@1.0.0:", type=("build", "run"), when="@3.1.5:") - depends_on("r-magrittr", type=("build", "run"), when="@3.0.5:") - depends_on("r-pillar@1.3.1:", type=("build", "run"), when="@1.4.1:") - depends_on("r-pillar@1.4.3:", type=("build", "run"), when="@3.0.5:") - depends_on("r-pillar@1.6.0:", type=("build", "run"), when="@3.1.0:") - depends_on("r-pillar@1.6.2:", type=("build", "run"), when="@3.1.4:") - depends_on("r-pillar@1.7.0:", type=("build", "run"), when="@3.1.7:") - depends_on("r-pillar@1.8.1:", type=("build", "run"), when="@3.2.1:") - depends_on("r-pkgconfig", type=("build", "run"), when="@2.0.0:") - depends_on("r-rlang@0.3.0:", type=("build", "run"), when="@1.3.1:") - depends_on("r-rlang@0.4.3:", type=("build", "run"), when="@3.0.5:") - depends_on("r-rlang@1.0.1:", type=("build", "run"), when="@3.1.7:") - depends_on("r-rlang@1.0.2:", type=("build", "run"), when="@3.1.8:") - depends_on("r-vctrs@0.3.2:", type=("build", "run"), when="@3.0.5:") - depends_on("r-vctrs@0.3.8:", type=("build", "run"), when="@3.1.2:") - depends_on("r-vctrs@0.4.2:", type=("build", "run"), when="@3.2.1:") - - depends_on("r-cli", type=("build", "run"), when="@1.4.2:3.0") - depends_on("r-crayon@1.3.4:", type=("build", "run"), when="@1.4.1:3.0") - depends_on("r-assertthat", type=("build", "run"), when="@:1.3.1") - depends_on("r-lazyeval@0.1.10:", type=("build", "run"), when="@:1.3.0") - depends_on("r-rcpp@0.12.3:", type=("build", "run"), when="@:1.3.4") - depends_on("r-ellipsis@0.2.0:", type=("build", "run"), when="@3.0.5:3.1.7") - depends_on("r-ellipsis@0.3.2:", type=("build", "run"), when="@3.1.2:3.1.7") + with default_args(type=("build", "run")): + depends_on("r@3.4.0:", when="@3.2.1:") + depends_on("r@3.1.0:", when="@1.3.0:") + depends_on("r@3.1.2:") + + depends_on("r-cli", when="@1.4.2:3.0,3.3:") + + depends_on("r-lifecycle@1.0.0:", when="@3.1.5:") + depends_on("r-lifecycle@0.2.0:", when="@3.0.5:") + + depends_on("r-magrittr", when="@3.0.5:") + + depends_on("r-pillar@1.8.1:", when="@3.2.1:") + depends_on("r-pillar@1.7.0:", when="@3.1.7:") + depends_on("r-pillar@1.6.2:", when="@3.1.4:") + depends_on("r-pillar@1.6.0:", when="@3.1.0:") + depends_on("r-pillar@1.4.3:", when="@3.0.5:") + depends_on("r-pillar@1.3.1:", when="@1.4.1:") + + depends_on("r-pkgconfig", when="@2.0.0:") + + depends_on("r-rlang@1.0.2:", when="@3.1.8:") + depends_on("r-rlang@1.0.1:", when="@3.1.7:") + depends_on("r-rlang@0.4.3:", when="@3.0.5:") + depends_on("r-rlang@0.3.0:", when="@1.3.1:") + + depends_on("r-vctrs@0.5.0:", when="@3.3.0:") + depends_on("r-vctrs@0.4.2:", when="@3.2.1:") + depends_on("r-vctrs@0.3.8:", when="@3.1.2:") + depends_on("r-vctrs@0.3.2:", when="@3.0.5:") + + # Historical dependencies + depends_on("r-assertthat", when="@:1.3.1") + depends_on("r-crayon@1.3.4:", when="@1.4.1:3.0") + depends_on("r-ellipsis@0.3.2:", when="@3.1.2:3.1.7") + depends_on("r-ellipsis@0.2.0:", when="@3.0.5:3.1.7") + depends_on("r-fansi@0.4.0:", when="@2.0.0:3.2") + depends_on("r-lazyeval@0.1.10:", when="@:1.3.0") + depends_on("r-rcpp@0.12.3:", when="@:1.3.4") diff --git a/repos/spack_repo/builtin/packages/r_tictoc/package.py b/repos/spack_repo/builtin/packages/r_tictoc/package.py index 73ffc91a5c8..4d963e86d6e 100644 --- a/repos/spack_repo/builtin/packages/r_tictoc/package.py +++ b/repos/spack_repo/builtin/packages/r_tictoc/package.py @@ -26,9 +26,5 @@ class RTictoc(RPackage): version("1.2.1", sha256="8fcdb7c9a1e4b4817bcab654effd64dea6ec749a7901d4060d5b5c625fc88833") version("1.2", sha256="f05ea4b4142a90b0dc5d10356be3748625ef86bbd0e4399c56455654165ff20c") version("1.1", sha256="120f868ba276bda70c8edef5d6c092586cf73db0fa02eb5459d8f55350fb474d") - version("1.0.1", sha256="a09a1535c417ddf6637bbbda5fca6edab6c7f7b252a64e57e99d4d0748712705") - version("1.0", sha256="47da097c1822caa2d8e262381987cfa556ad901131eb96109752742526b2e2fe") - depends_on("r@3.0.3:", type=("build", "run"), when="@1.0.1:") - depends_on("r@3.0.3:4.0", type=("build", "run"), when="@1.0") - depends_on("r@2.15:", type=("build", "run"), when="@1.1:") + depends_on("r@3.0.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_tidygraph/package.py b/repos/spack_repo/builtin/packages/r_tidygraph/package.py index 780d635810e..d7468a6f264 100644 --- a/repos/spack_repo/builtin/packages/r_tidygraph/package.py +++ b/repos/spack_repo/builtin/packages/r_tidygraph/package.py @@ -27,6 +27,8 @@ class RTidygraph(RPackage): version("1.2.0", sha256="057d6c42fc0144109f3ace7f5058cca7b2fe493c761daa991448b23f86b6129f") version("1.1.2", sha256="5642001d4cccb122d66481b7c61a06c724c02007cbd356ee61cb29726a56fafe") + depends_on("cxx", type="build") # generated + depends_on("r-tibble", type=("build", "run")) depends_on("r-dplyr@0.8:", type=("build", "run")) depends_on("r-dplyr@0.8.5:", type=("build", "run"), when="@1.2.0:") diff --git a/repos/spack_repo/builtin/packages/r_tidyr/package.py b/repos/spack_repo/builtin/packages/r_tidyr/package.py index a99ab71463e..ebee031da8e 100644 --- a/repos/spack_repo/builtin/packages/r_tidyr/package.py +++ b/repos/spack_repo/builtin/packages/r_tidyr/package.py @@ -22,6 +22,7 @@ class RTidyr(RPackage): license("MIT") + version("1.3.2", sha256="04c0e6daf0af682af73763a42c027d7171761cdbdbf9ff7a77a0e421343d665a") version("1.3.1", sha256="e820c261cb5543f572f49276a7bdc7302aa4215da4bf850b1b939a315353835d") version("1.3.0", sha256="8d532b9366fdd3ec9827b51830e559a49d073425007c766025f0e603964e0a9d") version("1.2.1", sha256="6971766d3663dc75c2328ab257816f4e42d9fdc05c2d87d171b8b9b5ecce61af") @@ -36,37 +37,54 @@ class RTidyr(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@3.1:", type=("build", "run")) - depends_on("r@3.4.0:", type=("build", "run"), when="@1.3.0:") - depends_on("r@3.6:", type=("build", "run"), when="@1.3.1:") - depends_on("r-dplyr@0.7.0:", type=("build", "run")) - depends_on("r-dplyr@0.8.2:", type=("build", "run"), when="@1.1.2:") - depends_on("r-dplyr@1.0.0:", type=("build", "run"), when="@1.2.0:") - depends_on("r-dplyr@1.0.10:", type=("build", "run"), when="@1.3.0:") - depends_on("r-glue", type=("build", "run")) - depends_on("r-lifecycle", type=("build", "run"), when="@1.1.2:") - depends_on("r-lifecycle@1.0.3:", type=("build", "run"), when="@1.3.0:") - depends_on("r-magrittr", type=("build", "run")) - depends_on("r-stringr@1.5.0:", type=("build", "run"), when="@1.3.0:") - depends_on("r-purrr", type=("build", "run")) - depends_on("r-purrr@1.0.1:", type=("build", "run"), when="@1.3.0:") - depends_on("r-rlang", type=("build", "run")) - depends_on("r-rlang@1.0.4:", type=("build", "run"), when="@1.3.0:") - depends_on("r-rlang@1.1.1:", type=("build", "run"), when="@1.3.1:") - depends_on("r-tibble", type=("build", "run")) - depends_on("r-tibble@2.1.1:", type=("build", "run"), when="@1.1.2:") - depends_on("r-tidyselect@0.2.5:", type=("build", "run")) - depends_on("r-tidyselect@1.1.0:", type=("build", "run"), when="@1.1.2:") - depends_on("r-tidyselect@1.2.0:", type=("build", "run"), when="@1.3.0:") - depends_on("r-vctrs@0.3.0:", type=("build", "run"), when="@1.1.2:") - depends_on("r-vctrs@0.3.6:", type=("build", "run"), when="@1.1.3:") - depends_on("r-vctrs@0.3.7:", type=("build", "run"), when="@1.2.0:") - depends_on("r-vctrs@0.5.2:", type=("build", "run"), when="@1.3.0:") - depends_on("r-cpp11@0.2.1:", type=("build", "run"), when="@1.1.2:") - depends_on("r-cpp11@0.2.6:", type=("build", "run"), when="@1.1.3:") - depends_on("r-cpp11@0.4.0:", type=("build", "run"), when="@1.2.0:") - depends_on("r-cli@3.4.1:", type=("build", "run"), when="@1.3.0:") - - depends_on("r-stringi", type=("build", "run"), when="@:0.8.3") - depends_on("r-rcpp", type=("build", "run"), when="@:0.8.3") - depends_on("r-ellipsis@0.1.0:", type=("build", "run"), when="@1.1.2:1.2.1") + with default_args(type=("build", "run")): + depends_on("r@4.1:", when="@1.3.2:") + depends_on("r@3.6:", when="@1.3.1:") + depends_on("r@3.4.0:", when="@1.3.0:") + depends_on("r@3.1:") + + depends_on("r-cli@3.4.1:", when="@1.3.0:") + + depends_on("r-dplyr@1.1.0:", when="@1.3.2:") + depends_on("r-dplyr@1.0.10:", when="@1.3.0:") + depends_on("r-dplyr@1.0.0:", when="@1.2.0:") + depends_on("r-dplyr@0.8.2:", when="@1.1.2:") + depends_on("r-dplyr@0.7.0:") + + depends_on("r-glue") + + depends_on("r-lifecycle@1.0.3:", when="@1.3.0:") + depends_on("r-lifecycle", when="@1.1.2:") + + depends_on("r-magrittr") + + depends_on("r-purrr@1.0.1:", when="@1.3.0:") + depends_on("r-purrr") + + depends_on("r-rlang@1.1.1:", when="@1.3.1:") + depends_on("r-rlang@1.0.4:", when="@1.3.0:") + depends_on("r-rlang") + + depends_on("r-stringr@1.5.0:", when="@1.3.0:") + + depends_on("r-tibble@2.1.1:", when="@1.1.2:") + depends_on("r-tibble") + + depends_on("r-tidyselect@1.2.1:", when="@1.3.2:") + depends_on("r-tidyselect@1.2.0:", when="@1.3.0:") + depends_on("r-tidyselect@1.1.0:", when="@1.1.2:") + depends_on("r-tidyselect@0.2.5:") + + depends_on("r-vctrs@0.5.2:", when="@1.3.0:") + depends_on("r-vctrs@0.3.7:", when="@1.2.0:") + depends_on("r-vctrs@0.3.6:", when="@1.1.3:") + depends_on("r-vctrs@0.3.0:", when="@1.1.2:") + + depends_on("r-cpp11@0.4.0:", when="@1.2.0:") + depends_on("r-cpp11@0.2.6:", when="@1.1.3:") + depends_on("r-cpp11@0.2.1:", when="@1.1.2:") + + # Historical dependencies + depends_on("r-ellipsis@0.1.0:", when="@1.1.2:1.2.1") + depends_on("r-stringi", when="@:0.8.3") + depends_on("r-rcpp", when="@:0.8.3") diff --git a/repos/spack_repo/builtin/packages/r_tiff/package.py b/repos/spack_repo/builtin/packages/r_tiff/package.py index 3b6def13379..b60ce32e07a 100644 --- a/repos/spack_repo/builtin/packages/r_tiff/package.py +++ b/repos/spack_repo/builtin/packages/r_tiff/package.py @@ -24,6 +24,8 @@ class RTiff(RPackage): version("0.1-6", sha256="623bd9c16a426df7e6056738c5d91da86ea9b49df375eea6b5127e4e458dc4fb") version("0.1-5", sha256="9514e6a9926fcddc29ce1dd12b1072ad8265900373f738de687ef4a1f9124e2b") + depends_on("c", type="build") # generated + depends_on("r@2.9.0:", type=("build", "run")) depends_on("libtiff") depends_on("jpeg") diff --git a/repos/spack_repo/builtin/packages/r_timechange/package.py b/repos/spack_repo/builtin/packages/r_timechange/package.py index 3e3b59aee99..970feef7622 100644 --- a/repos/spack_repo/builtin/packages/r_timechange/package.py +++ b/repos/spack_repo/builtin/packages/r_timechange/package.py @@ -22,6 +22,7 @@ class RTimechange(RPackage): license("GPL-3.0-only") + version("0.4.0", sha256="6dc8ff9d339d3c4cff7ddf3800383f3e94f41c021f6c7bacccf971e187f73feb") version("0.3.0", sha256="d85c0b5514ab9578d16032e703c33f197feaed1a424c834ebfcbf0ad46ae46b4") version("0.2.0", sha256="3d602008052123daef94a5c3f5154c5461b4ec0432ab70c37273d7ddd252f7f1") version("0.1.1", sha256="8503919d233d7d7b81fe47692f0f2d6742ff4cae7320a5522bf98f077f5d7f70") diff --git a/repos/spack_repo/builtin/packages/r_tinytex/package.py b/repos/spack_repo/builtin/packages/r_tinytex/package.py index 55be3685caa..9a10ba2d0b0 100644 --- a/repos/spack_repo/builtin/packages/r_tinytex/package.py +++ b/repos/spack_repo/builtin/packages/r_tinytex/package.py @@ -21,6 +21,7 @@ class RTinytex(RPackage): license("MIT") + version("0.59", sha256="0e855c6b5fbd5f1318eb5fdef24db1c71bd4c8f9478e352a2966e80227f3743e") version("0.52", sha256="932a713b9fdd52fe8869e8c38d03f15602f2c02ec543d4dabffde2a3981f513a") version("0.45", sha256="0c2fbbd09e80af80ca6b685bf0653f070da97b85413d39af966aba28f376e92c") version("0.42", sha256="205f7a1978118aa38b6d9f7d3e1667c635da262b43967d1a879520284c2e22b1") @@ -31,7 +32,9 @@ class RTinytex(RPackage): version("0.28", sha256="76a0650aeab04eb252dc9cfa9ba855d88b09dfc2207c4a8ea2ea04fa0e0eea86") version("0.15", sha256="5d0988d3b7f763dfa65c722f177452a21344e428415a4b31aeb51478f0abad90") - depends_on("r-xfun@0.5:", type=("build", "run")) - depends_on("r-xfun@0.19:", type=("build", "run"), when="@0.28:") - depends_on("r-xfun@0.23:", type=("build", "run"), when="@0.32:") - depends_on("r-xfun@0.29:", type=("build", "run"), when="@0.36:") + with default_args(type=("build", "run")): + depends_on("r-xfun@0.48:", when="@0.54:") + depends_on("r-xfun@0.29:", when="@0.36:") + depends_on("r-xfun@0.23:", when="@0.32:") + depends_on("r-xfun@0.19:", when="@0.28:") + depends_on("r-xfun@0.5:") diff --git a/repos/spack_repo/builtin/packages/r_tmixclust/package.py b/repos/spack_repo/builtin/packages/r_tmixclust/package.py index 748d05ac934..0eab547540a 100644 --- a/repos/spack_repo/builtin/packages/r_tmixclust/package.py +++ b/repos/spack_repo/builtin/packages/r_tmixclust/package.py @@ -19,15 +19,16 @@ class RTmixclust(RPackage): bioc = "TMixClust" - version("1.22.0", commit="bb750ce4682542ba8e2cb5bfbdb5eff839ffacd4") - version("1.20.0", commit="df27f53d088b02cf596504b44909f2762900ab49") - version("1.18.0", commit="71f80a7ace481f46471f36c91223effb85e17186") - version("1.16.0", commit="e525cfd9c729a73a1964c243e5c34c37343f7bfa") - version("1.12.0", commit="982b31bd7e22a3dc638bbda0336546220444f0c2") - version("1.6.0", commit="9f5f78e52538d15f402c8f6e4c60f7212c7bc548") - version("1.4.0", commit="a52fcae6e7a5dd41e7afbe128f35397e8bc8cb12") - version("1.2.0", commit="0250c0b238f08077b5b9ff17c2f3b7633c67dc3c") - version("1.0.1", commit="0ac800210e3eb9da911767a80fb5582ab33c0cad") + with default_args(get_full_repo=True): + version("1.22.0", commit="bb750ce4682542ba8e2cb5bfbdb5eff839ffacd4") + version("1.20.0", commit="df27f53d088b02cf596504b44909f2762900ab49") + version("1.18.0", commit="71f80a7ace481f46471f36c91223effb85e17186") + version("1.16.0", commit="e525cfd9c729a73a1964c243e5c34c37343f7bfa") + version("1.12.0", commit="982b31bd7e22a3dc638bbda0336546220444f0c2") + version("1.6.0", commit="9f5f78e52538d15f402c8f6e4c60f7212c7bc548") + version("1.4.0", commit="a52fcae6e7a5dd41e7afbe128f35397e8bc8cb12") + version("1.2.0", commit="0250c0b238f08077b5b9ff17c2f3b7633c67dc3c") + version("1.0.1", commit="0ac800210e3eb9da911767a80fb5582ab33c0cad") depends_on("r@3.4:", type=("build", "run")) depends_on("r-gss", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_topgo/package.py b/repos/spack_repo/builtin/packages/r_topgo/package.py index e9957b239e6..4915b96469f 100644 --- a/repos/spack_repo/builtin/packages/r_topgo/package.py +++ b/repos/spack_repo/builtin/packages/r_topgo/package.py @@ -17,16 +17,17 @@ class RTopgo(RPackage): bioc = "topGO" - version("2.52.0", commit="214db210d1757231eb9b2889288dc385553525cd") - version("2.50.0", commit="befbff4e67c1b01e23f111d147274641a8b7b0f5") - version("2.48.0", commit="a47f0079319c7d74db4aeda6399e06f12a34b585") - version("2.46.0", commit="2bfa9dff41fff261aa6188f8368aebd6e8250b18") - version("2.42.0", commit="3a33cf53883de45bda506953303e1809ab982adc") - version("2.36.0", commit="c2f6c187b41c4aa44cc92ac781fdd878491a4019") - version("2.34.0", commit="44cb5eaba515b365b7b2a8c22df0a45883db6b4d") - version("2.32.0", commit="78ce3068fc06ae38d55219759fa177e2fcb3f596") - version("2.30.1", commit="b1469ce1d198ccb73ef79ca22cab81659e16dbaa") - version("2.28.0", commit="066a975d460046cce33fb27e74e6a0ebc33fd716") + with default_args(get_full_repo=True): + version("2.52.0", commit="214db210d1757231eb9b2889288dc385553525cd") + version("2.50.0", commit="befbff4e67c1b01e23f111d147274641a8b7b0f5") + version("2.48.0", commit="a47f0079319c7d74db4aeda6399e06f12a34b585") + version("2.46.0", commit="2bfa9dff41fff261aa6188f8368aebd6e8250b18") + version("2.42.0", commit="3a33cf53883de45bda506953303e1809ab982adc") + version("2.36.0", commit="c2f6c187b41c4aa44cc92ac781fdd878491a4019") + version("2.34.0", commit="44cb5eaba515b365b7b2a8c22df0a45883db6b4d") + version("2.32.0", commit="78ce3068fc06ae38d55219759fa177e2fcb3f596") + version("2.30.1", commit="b1469ce1d198ccb73ef79ca22cab81659e16dbaa") + version("2.28.0", commit="066a975d460046cce33fb27e74e6a0ebc33fd716") depends_on("r@2.10.0:", type=("build", "run")) depends_on("r-biocgenerics@0.13.6:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_treeio/package.py b/repos/spack_repo/builtin/packages/r_treeio/package.py index becd1b9051b..5fb47eaece5 100644 --- a/repos/spack_repo/builtin/packages/r_treeio/package.py +++ b/repos/spack_repo/builtin/packages/r_treeio/package.py @@ -19,11 +19,12 @@ class RTreeio(RPackage): bioc = "treeio" - version("1.24.0", commit="81425559d71ab87ee683c6a8833f0f165632e416") - version("1.22.0", commit="eb24a854806a671e7b37ef36dafc60b4eb9ddaa1") - version("1.20.2", commit="ed457d6fd85a50e0993c8c9acbd9b701be01a348") - version("1.20.0", commit="5f7c3704fc8202c52451d092148fdcfe683f026a") - version("1.18.1", commit="a06b6b3d2a64f1b22c6c8c5f97c08f5863349c83") + with default_args(get_full_repo=True): + version("1.24.0", commit="81425559d71ab87ee683c6a8833f0f165632e416") + version("1.22.0", commit="eb24a854806a671e7b37ef36dafc60b4eb9ddaa1") + version("1.20.2", commit="ed457d6fd85a50e0993c8c9acbd9b701be01a348") + version("1.20.0", commit="5f7c3704fc8202c52451d092148fdcfe683f026a") + version("1.18.1", commit="a06b6b3d2a64f1b22c6c8c5f97c08f5863349c83") depends_on("r@3.6.0:", type=("build", "run")) depends_on("r-ape", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_tseries/package.py b/repos/spack_repo/builtin/packages/r_tseries/package.py index ef6a61c905c..82a3e91af08 100644 --- a/repos/spack_repo/builtin/packages/r_tseries/package.py +++ b/repos/spack_repo/builtin/packages/r_tseries/package.py @@ -24,6 +24,9 @@ class RTseries(RPackage): version("0.10-46", sha256="12940afd1d466401160e46f993ed4baf28a42cef98d3757b66ee15e916e07222") version("0.10-42", sha256="827f79858715c700e8cabd2c27853ba88ad0e05eb043bc94e126b155a75546c4") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@2.10.0:", type=("build", "run")) depends_on("r@3.4.0:", type=("build", "run"), when="@0.10-57:") depends_on("r-jsonlite", type=("build", "run"), when="@0.10-54:") diff --git a/repos/spack_repo/builtin/packages/r_ttr/package.py b/repos/spack_repo/builtin/packages/r_ttr/package.py index b0adce1f09c..c897ba1c5ac 100644 --- a/repos/spack_repo/builtin/packages/r_ttr/package.py +++ b/repos/spack_repo/builtin/packages/r_ttr/package.py @@ -23,6 +23,8 @@ class RTtr(RPackage): version("0.23-3", sha256="2136032c7a2cd2a82518a4412fc655ecb16597b123dbdebe5684caef9f15261f") version("0.23-1", sha256="699798f06ceae9663da47b67d1bc8679fc1c0776d12afd054d6ac4d19e05b2ae") + depends_on("c", type="build") # generated + depends_on("r-xts@0.10-0:", type=("build", "run")) depends_on("r-zoo", type=("build", "run")) depends_on("r-curl", type=("build", "run"), when="@0.23-4:") diff --git a/repos/spack_repo/builtin/packages/r_tweenr/package.py b/repos/spack_repo/builtin/packages/r_tweenr/package.py index 90a6a1ff86a..ba1f030e9fc 100644 --- a/repos/spack_repo/builtin/packages/r_tweenr/package.py +++ b/repos/spack_repo/builtin/packages/r_tweenr/package.py @@ -25,6 +25,9 @@ class RTweenr(RPackage): version("1.0.2", sha256="1805f575da6705ca4e5ec1c4605222fc826ba806d9ff9af41770294fe08ff69f") version("1.0.1", sha256="efd68162cd6d5a4f6d833dbf785a2bbce1cb7b9f90ba3fb060931a4bd705096b") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.2.0:", type=("build", "run")) depends_on("r-farver", type=("build", "run")) depends_on("r-magrittr", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_tximeta/package.py b/repos/spack_repo/builtin/packages/r_tximeta/package.py index 7240625a37a..73f40ef4bf3 100644 --- a/repos/spack_repo/builtin/packages/r_tximeta/package.py +++ b/repos/spack_repo/builtin/packages/r_tximeta/package.py @@ -17,9 +17,10 @@ class RTximeta(RPackage): bioc = "tximeta" - version("1.20.0", commit="c9cf6d6a80ca5129b91d723867aca0aec12e8299") - version("1.18.3", commit="3caed00397476cfe9c379f4bc5a361023fdd6ffa") - version("1.18.0", commit="8f87d53bbd6f2d97821dd8f7fdd54624928f862d") + with default_args(get_full_repo=True): + version("1.20.0", commit="c9cf6d6a80ca5129b91d723867aca0aec12e8299") + version("1.18.3", commit="3caed00397476cfe9c379f4bc5a361023fdd6ffa") + version("1.18.0", commit="8f87d53bbd6f2d97821dd8f7fdd54624928f862d") depends_on("r", type=("build", "run")) depends_on("r-annotationdbi", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_tximport/package.py b/repos/spack_repo/builtin/packages/r_tximport/package.py index b1390748d89..f034286b232 100644 --- a/repos/spack_repo/builtin/packages/r_tximport/package.py +++ b/repos/spack_repo/builtin/packages/r_tximport/package.py @@ -20,13 +20,14 @@ class RTximport(RPackage): bioc = "tximport" - version("1.28.0", commit="9acd3640c034655ffba12044ed2982fab57d4fbb") - version("1.26.0", commit="5ae7139edf9d3445210ea014026813fd030212a8") - version("1.24.0", commit="58524f39bdd55299cfe80a726f99b714b724be20") - version("1.22.0", commit="335213baee3492fbf6baaa8b4e067ac0ef384684") - version("1.18.0", commit="58b20cbc566648586b6990b30ebc70bef308cb05") - version("1.12.3", commit="acbdead961471c3b910d720f73bd0af1b7a07c57") - version("1.10.1", commit="cd8f81cf7140f61d4a4f25f89451fb49e2cd4bd3") - version("1.8.0", commit="cc91b8389ca4c16b0f588bdeb63d051a11e8a705") - version("1.6.0", commit="0b1ba6c6622e02b954812c88454c28e8efb75e0b") - version("1.4.0", commit="bfbd2436eca21acf212b76a658b49cfb5e116d6b") + with default_args(get_full_repo=True): + version("1.28.0", commit="9acd3640c034655ffba12044ed2982fab57d4fbb") + version("1.26.0", commit="5ae7139edf9d3445210ea014026813fd030212a8") + version("1.24.0", commit="58524f39bdd55299cfe80a726f99b714b724be20") + version("1.22.0", commit="335213baee3492fbf6baaa8b4e067ac0ef384684") + version("1.18.0", commit="58b20cbc566648586b6990b30ebc70bef308cb05") + version("1.12.3", commit="acbdead961471c3b910d720f73bd0af1b7a07c57") + version("1.10.1", commit="cd8f81cf7140f61d4a4f25f89451fb49e2cd4bd3") + version("1.8.0", commit="cc91b8389ca4c16b0f588bdeb63d051a11e8a705") + version("1.6.0", commit="0b1ba6c6622e02b954812c88454c28e8efb75e0b") + version("1.4.0", commit="bfbd2436eca21acf212b76a658b49cfb5e116d6b") diff --git a/repos/spack_repo/builtin/packages/r_tximportdata/package.py b/repos/spack_repo/builtin/packages/r_tximportdata/package.py index f9710eac371..8d7f66c7a13 100644 --- a/repos/spack_repo/builtin/packages/r_tximportdata/package.py +++ b/repos/spack_repo/builtin/packages/r_tximportdata/package.py @@ -19,8 +19,9 @@ class RTximportdata(RPackage): bioc = "tximportData" - version("1.28.0", commit="7de494ba12168e2766baffdd177d9cecc0642820") - version("1.26.0", commit="8f6ef3e3ae54e6eb99fe915364f5174c4f50a986") - version("1.24.0", commit="646f366fb25be359c95dc97c9369961c8d5ed942") - version("1.22.0", commit="c576b18e43985baf8beab327cbc54afe8324659c") - version("1.18.0", commit="24945f8dd1e4e441ad5145fb7a37a1630912f929") + with default_args(get_full_repo=True): + version("1.28.0", commit="7de494ba12168e2766baffdd177d9cecc0642820") + version("1.26.0", commit="8f6ef3e3ae54e6eb99fe915364f5174c4f50a986") + version("1.24.0", commit="646f366fb25be359c95dc97c9369961c8d5ed942") + version("1.22.0", commit="c576b18e43985baf8beab327cbc54afe8324659c") + version("1.18.0", commit="24945f8dd1e4e441ad5145fb7a37a1630912f929") diff --git a/repos/spack_repo/builtin/packages/r_tzdb/package.py b/repos/spack_repo/builtin/packages/r_tzdb/package.py index 7513228344f..f614d18c33d 100644 --- a/repos/spack_repo/builtin/packages/r_tzdb/package.py +++ b/repos/spack_repo/builtin/packages/r_tzdb/package.py @@ -24,6 +24,7 @@ class RTzdb(RPackage): license("MIT") + version("0.5.0", sha256="380d5237dbfa722fddb7d1d9ad8520a2b26331dbbb77d51850ded332fcf347db") version("0.4.0", sha256="4253c66041bdddfd463c98183bf0052fbcacdb7c5cff9eadbb858b3dcf9d3a23") version("0.3.0", sha256="6099f0ec1fba692b51b4360aa776902a39f10dae815933c31994b8e4d4277038") version("0.2.0", sha256="c335905d452b400af7ed54b916b5246cb3f47ede0602911a2bcb25a1cf56d5a9") @@ -31,8 +32,12 @@ class RTzdb(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@3.3:", type=("build", "run")) - depends_on("r@3.4.0:", type=("build", "run"), when="@0.3.0:") - depends_on("r@3.5.0:", type=("build", "run"), when="@0.4.0:") - depends_on("r-cpp11@0.4.0:", type=("build", "run")) - depends_on("r-cpp11@0.4.2:", type=("build", "run"), when="@0.3.0:") + with default_args(type=("build", "run")): + depends_on("r@4.0.0:", when="@0.5.0:") + depends_on("r@3.5.0:", when="@0.4.0:") + depends_on("r@3.4.0:", when="@0.3.0:") + depends_on("r@3.3:") + + depends_on("r-cpp11@0.5.2:", when="@0.5.0:") + depends_on("r-cpp11@0.4.2:", when="@0.3.0:") + depends_on("r-cpp11@0.4.0:") diff --git a/repos/spack_repo/builtin/packages/r_ucminf/package.py b/repos/spack_repo/builtin/packages/r_ucminf/package.py index 3da820ca966..c656b5b13a5 100644 --- a/repos/spack_repo/builtin/packages/r_ucminf/package.py +++ b/repos/spack_repo/builtin/packages/r_ucminf/package.py @@ -24,4 +24,7 @@ class RUcminf(RPackage): version("1.1-4.1", sha256="01a5b6f373ad267d22e2c29b8f7b6e31a1a148e48f4413e6a38e51aa049976b2") version("1.1-4", sha256="a2eb382f9b24e949d982e311578518710f8242070b3aa3314a331c1e1e7f6f07") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.5.0:", when="@1.2.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_units/package.py b/repos/spack_repo/builtin/packages/r_units/package.py index 4381345dba5..da8585c61c4 100644 --- a/repos/spack_repo/builtin/packages/r_units/package.py +++ b/repos/spack_repo/builtin/packages/r_units/package.py @@ -23,6 +23,7 @@ class RUnits(RPackage): license("GPL-2.0-only") + version("1.0-1", sha256="09ec534a9d4ab7f171809cad1788074452f9b30620d5f54d959d799f5952fbf3") version("0.8-5", sha256="d95e80af760b053e10a1e33ce1f0c1280a84e84bd4b1d9c34d1fe9fc153603b1") version("0.8-1", sha256="d3e1ba246b4c97205bc3da3cf45d6b5bd5c196b8d421b84b4e94b2090985cd9a") version("0.8-0", sha256="9c46fe138e8c1c3d3a51268776412f02d09673656516148cccb71b1071beb21a") @@ -32,8 +33,15 @@ class RUnits(RPackage): version("0.6-2", sha256="5e286775d0712c8e15b6ae3a533d4c4349b0f6410c2d9d897ca519c3d0e5f170") version("0.4-6", sha256="db383c9b7ec221a5da29a2ddf4f74f9064c44ea2102ea7e07cc1cc5bb30fa1ef") - depends_on("r@3.0.2:", type=("build", "run")) - depends_on("r-rcpp@0.12.10:", type=("build", "run")) + depends_on("cxx", type="build") # generated + depends_on("udunits", when="@0.6-0:") - depends_on("r-udunits2@0.13:", type=("build", "run"), when="@:0.5-1") + with default_args(type=("build", "run")): + depends_on("r@3.0.2:") + depends_on("r@3.5.0:", when="@1.0-1:") + depends_on("r-rcpp@0.12.10:") + depends_on("r-rcpp@1.1.0:", when="@1.0-1:") + + # Historical dependencies + depends_on("r-udunits2@0.13:", when="@:0.5-1") diff --git a/repos/spack_repo/builtin/packages/r_urca/package.py b/repos/spack_repo/builtin/packages/r_urca/package.py index 09a9774fa9d..5a6d8a5c0c4 100644 --- a/repos/spack_repo/builtin/packages/r_urca/package.py +++ b/repos/spack_repo/builtin/packages/r_urca/package.py @@ -21,5 +21,8 @@ class RUrca(RPackage): version("1.3-3", sha256="43baa8b6735f8325a69e6a43686f4fecd77a0eb7f60da25b4fc5c51b9271e9f1") version("1.3-0", sha256="621cc82398e25b58b4a16edf000ed0a1484d9a0bc458f734e97b6f371cc76aaa") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@2.0.0:", type=("build", "run")) depends_on("r-nlme", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_usethis/package.py b/repos/spack_repo/builtin/packages/r_usethis/package.py index eb9bd211ade..3ac0e71a91b 100644 --- a/repos/spack_repo/builtin/packages/r_usethis/package.py +++ b/repos/spack_repo/builtin/packages/r_usethis/package.py @@ -26,6 +26,9 @@ class RUsethis(RPackage): version("1.6.1", sha256="60339059a97ed07dea7f8908b828b5bb42e0fd0b471165c061bc9660b0d59d6f") version("1.5.1", sha256="9e3920a04b0df82adf59eef2c1b2b4d835c4a757a51b3c163b8fc619172f561d") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.2:", type=("build", "run")) depends_on("r@3.4:", type=("build", "run"), when="@2.1.5:") depends_on("r@3.6:", type=("build", "run"), when="@2.2.0:") diff --git a/repos/spack_repo/builtin/packages/r_utf8/package.py b/repos/spack_repo/builtin/packages/r_utf8/package.py index b250d34d64f..b7d65c5da62 100644 --- a/repos/spack_repo/builtin/packages/r_utf8/package.py +++ b/repos/spack_repo/builtin/packages/r_utf8/package.py @@ -17,6 +17,7 @@ class RUtf8(RPackage): license("Apache-2.0 OR custom") + version("1.2.6", sha256="4589f8b72291329e70b7f3a8c20f2feb4e7764eebad2e6976bc9a3eee7686ce9") version("1.2.4", sha256="418f824bbd9cd868d2d8a0d4345545c62151d321224cdffca8b1ffd98a167b7d") version("1.2.3", sha256="c0a88686591f4ad43b52917d0964e9df4c62d8858fe25135a1bf357dfcbd6347") version("1.2.2", sha256="a71aee87d43a9bcf29249c7a5a2e9ca1d2a836e8d5ee3a264d3062f25378d8f4") diff --git a/repos/spack_repo/builtin/packages/r_uuid/package.py b/repos/spack_repo/builtin/packages/r_uuid/package.py index da53734baa5..1483ae82f5c 100644 --- a/repos/spack_repo/builtin/packages/r_uuid/package.py +++ b/repos/spack_repo/builtin/packages/r_uuid/package.py @@ -18,6 +18,7 @@ class RUuid(RPackage): license("MIT") + version("1.2-2", sha256="b1b73b87180d7b15095e6b33092ccf9dbd7ed3177791682711b8151ebbe9025f") version("1.2-1", sha256="f90e49733d7d6ea7cf91abdc07b7d0e9a34a4b993e6914d754f0621281fc4b96") version("1.1-0", sha256="e75b50ee7dc8c4c8e7083023e954ffd1c6a004431bf5e9094463e46aa760f42f") version("1.0-3", sha256="456e4633659f20242fd7cd585ad005a3e07265f1d1db383fca6794c8ac2c8346") diff --git a/repos/spack_repo/builtin/packages/r_uwot/package.py b/repos/spack_repo/builtin/packages/r_uwot/package.py index f92b7d281c4..5295643d533 100644 --- a/repos/spack_repo/builtin/packages/r_uwot/package.py +++ b/repos/spack_repo/builtin/packages/r_uwot/package.py @@ -31,6 +31,8 @@ class RUwot(RPackage): version("0.1.10", sha256="6ee1b6027bce679cd5a35f647f516a5b327632234bcf323c7f3d5b5e10807d23") version("0.1.3", sha256="4936e6922444cae8a71735e945b6bb0828a1012232eb94568054f78451c406d7") + depends_on("cxx", type="build") # generated + depends_on("r-matrix", type=("build", "run")) depends_on("r-rcpp", type=("build", "run")) depends_on("r-fnn", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_v8/package.py b/repos/spack_repo/builtin/packages/r_v8/package.py index 0fcfed60579..f74d56e0f6f 100644 --- a/repos/spack_repo/builtin/packages/r_v8/package.py +++ b/repos/spack_repo/builtin/packages/r_v8/package.py @@ -23,11 +23,8 @@ class RV8(RPackage): version("4.2.0", sha256="6c62fdc974cc30fa975cad4ccb1e3796112fc2490a807f6e3d7878c3a5544743") version("4.0.0", sha256="146a4cb671264f865ac2f2e35bfdfb37e2df70e4f6784354fb6e8a80a19dbbc8") version("3.6.0", sha256="a3969898bf4a7c13d3130fae0d385cd048d46372ff4a412917b914b159261377") - version( - "3.4.0", - sha256="f5c8a2a03cc1be9f504f47711a0fcd1b962745139c9fb2a10fbd79c4ae103fbd", - deprecated=True, - ) + + depends_on("cxx", type="build") # generated depends_on("r-rcpp@0.12.12:", type=("build", "run")) depends_on("r-jsonlite@1.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_variantannotation/package.py b/repos/spack_repo/builtin/packages/r_variantannotation/package.py index 9489b32bf33..209859a3962 100644 --- a/repos/spack_repo/builtin/packages/r_variantannotation/package.py +++ b/repos/spack_repo/builtin/packages/r_variantannotation/package.py @@ -15,16 +15,17 @@ class RVariantannotation(RPackage): bioc = "VariantAnnotation" - version("1.46.0", commit="80d43e024bead5afd48cb86910ba4670d8d37424") - version("1.44.0", commit="2e7e0a3b7c1918c0d64170dc7c173a636d3764f4") - version("1.42.1", commit="d1121696c76c189d6b4df9914806bf585a495845") - version("1.40.0", commit="50ead7cb60cedf3c053853fab92d9f104f9f85bd") - version("1.36.0", commit="9918bd19a2e6f89e5edc5fe03c8812f500bb3e19") - version("1.30.1", commit="fb1ab00872570afb280522c4663e347dafc07a9e") - version("1.28.13", commit="0393347b8ce2d5edf1a61589be93e6a93eda3419") - version("1.26.1", commit="60ae67598cc3d7ed20ee6417920f8c209085faaf") - version("1.24.5", commit="468d7f53fd743e04c9af853d58e871b4cc13a090") - version("1.22.3", commit="3a91b6d4297aa416d5f056dec6f8925eb1a8eaee") + with default_args(get_full_repo=True): + version("1.46.0", commit="80d43e024bead5afd48cb86910ba4670d8d37424") + version("1.44.0", commit="2e7e0a3b7c1918c0d64170dc7c173a636d3764f4") + version("1.42.1", commit="d1121696c76c189d6b4df9914806bf585a495845") + version("1.40.0", commit="50ead7cb60cedf3c053853fab92d9f104f9f85bd") + version("1.36.0", commit="9918bd19a2e6f89e5edc5fe03c8812f500bb3e19") + version("1.30.1", commit="fb1ab00872570afb280522c4663e347dafc07a9e") + version("1.28.13", commit="0393347b8ce2d5edf1a61589be93e6a93eda3419") + version("1.26.1", commit="60ae67598cc3d7ed20ee6417920f8c209085faaf") + version("1.24.5", commit="468d7f53fd743e04c9af853d58e871b4cc13a090") + version("1.22.3", commit="3a91b6d4297aa416d5f056dec6f8925eb1a8eaee") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_vcfr/package.py b/repos/spack_repo/builtin/packages/r_vcfr/package.py index 932185bf55b..ed6ef49bfeb 100644 --- a/repos/spack_repo/builtin/packages/r_vcfr/package.py +++ b/repos/spack_repo/builtin/packages/r_vcfr/package.py @@ -28,6 +28,8 @@ class RVcfr(RPackage): version("1.13.0", sha256="743ce845732ada638f0f8a2cd789cd06aa25d818fec87c8bdb998f7c77089ebc") version("1.12.0", sha256="dd87ff010365de363864a44ca49887c0fdad0dd18d0d9c66e44e39c2d4581d52") + depends_on("cxx", type="build") # generated + depends_on("r@3.0.1:", type=("build", "run")) depends_on("r-ape", type=("build", "run")) depends_on("r-dplyr", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_vctrs/package.py b/repos/spack_repo/builtin/packages/r_vctrs/package.py index c566658df7f..42e86d82cad 100644 --- a/repos/spack_repo/builtin/packages/r_vctrs/package.py +++ b/repos/spack_repo/builtin/packages/r_vctrs/package.py @@ -19,6 +19,7 @@ class RVctrs(RPackage): license("MIT") + version("0.7.1", sha256="2f93519dfcffabc08bc508c2f47b5c23151cc667250b08a8b90be367ef1317c0") version("0.6.5", sha256="43167d2248fd699594044b5c8f1dbb7ed163f2d64761e08ba805b04e7ec8e402") version("0.6.4", sha256="8a80192356e724d21bd89a0ce3e5835856fd5bb1651e7fc205c6fee58fd001c8") version("0.6.3", sha256="93dc220dcde8b440586b2260460ef354e827a17dfec1ea6a9815585a10cfa5c2") @@ -41,6 +42,7 @@ class RVctrs(RPackage): depends_on("r@3.2:", type=("build", "run")) depends_on("r@3.3:", type=("build", "run"), when="@0.3.5:") depends_on("r@3.5.0:", type=("build", "run"), when="@0.6.2:") + depends_on("r@4.0.0:", type=("build", "run"), when="@0.7.0:") depends_on("r-cli@3.2.0:", type=("build", "run"), when="@0.4.1:") depends_on("r-cli@3.4.0:", type=("build", "run"), when="@0.5.0:") depends_on("r-glue", type=("build", "run")) @@ -52,7 +54,9 @@ class RVctrs(RPackage): depends_on("r-rlang@1.0.2:", type=("build", "run"), when="@0.4.2:") depends_on("r-rlang@1.0.6:", type=("build", "run"), when="@0.5.0:") depends_on("r-rlang@1.1.0:", type=("build", "run"), when="@0.6.2:") + depends_on("r-rlang@1.1.7:", type=("build", "run"), when="@0.7.0:") + # Historical dependencies depends_on("r-digest", type=("build", "run"), when="@:0.3.6") depends_on("r-zeallot", type=("build", "run"), when="@:0.2.0") depends_on("r-ellipsis@0.2.0:", type=("build", "run"), when="@:0.3.8") diff --git a/repos/spack_repo/builtin/packages/r_vegan/package.py b/repos/spack_repo/builtin/packages/r_vegan/package.py index e359594c1be..9a93c2b8f50 100644 --- a/repos/spack_repo/builtin/packages/r_vegan/package.py +++ b/repos/spack_repo/builtin/packages/r_vegan/package.py @@ -25,6 +25,9 @@ class RVegan(RPackage): version("2.5-4", sha256="5116a440111fca49b5f95cfe888b180ff29a112e6301d5e2ac5cae0e628493e0") version("2.4-3", sha256="2556b1281a62e53f32bb57539bc600c00a599d0699867912220535d1a3ebec97") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@3.1.0:", type=("build", "run"), when="@2.5-1") depends_on("r@3.2.0:", type=("build", "run"), when="@2.5-2:") diff --git a/repos/spack_repo/builtin/packages/r_vgam/package.py b/repos/spack_repo/builtin/packages/r_vgam/package.py index 30cd34440df..cd78beabdb4 100644 --- a/repos/spack_repo/builtin/packages/r_vgam/package.py +++ b/repos/spack_repo/builtin/packages/r_vgam/package.py @@ -42,6 +42,9 @@ class RVgam(RPackage): version("1.0-1", sha256="c066864e406fcee23f383a28299dba3cf83356e5b68df16324885afac87a05ea") version("1.0-0", sha256="6acdd7db49c0987c565870afe593160ceba72a6ca4a84e6da3cf6f74d1fa02e1") + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + depends_on("r@3.0.0:", type=("build", "run")) depends_on("r@3.1.0:", type=("build", "run"), when="@1.0-2:") depends_on("r@3.4.0:", type=("build", "run"), when="@1.0-4:") diff --git a/repos/spack_repo/builtin/packages/r_viridislite/package.py b/repos/spack_repo/builtin/packages/r_viridislite/package.py index 9a641b6ac4b..e94e328e544 100644 --- a/repos/spack_repo/builtin/packages/r_viridislite/package.py +++ b/repos/spack_repo/builtin/packages/r_viridislite/package.py @@ -20,6 +20,9 @@ class RViridislite(RPackage): cran = "viridisLite" + license("MIT") + + version("0.4.3", sha256="433be9bde66234dc76301fb4ffbbc9fc74bab5c14f4548d8ef2fc0065e121ef5") version("0.4.2", sha256="893f111d31deccd2cc959bc9db7ba2ce9020a2dd1b9c1c009587e449c4cce1a1") version("0.4.1", sha256="a896db1ccae5fc1a8b3764d02f24cef74ef7a8341cf9f3401c4efe799870ea97") version("0.4.0", sha256="849955dc8ad9bc52bdc50ed4867fd92a510696fc8294e6971efa018437c83c6a") diff --git a/repos/spack_repo/builtin/packages/r_vroom/package.py b/repos/spack_repo/builtin/packages/r_vroom/package.py index f6dbdb084ef..e428225daf0 100644 --- a/repos/spack_repo/builtin/packages/r_vroom/package.py +++ b/repos/spack_repo/builtin/packages/r_vroom/package.py @@ -20,6 +20,7 @@ class RVroom(RPackage): license("MIT") + version("1.7.1", sha256="7d64f6227fdac3ee64c506654bb1d919e407f92fc2d0d5a2398dbb83001e8790") version("1.6.5", sha256="7bdca21e58c9c5049d7445d182f59fd399193cb2f4318d083de0a559ec9b5761") version("1.6.1", sha256="eb0e33d53212f9c7e8b38d632c98bd5015365cc13f55dadb15ff0d404b31807c") version("1.6.0", sha256="a718ccdf916442693af5392944774d8aec5ce48f417871f9de84dd1089d26ca6") @@ -29,22 +30,27 @@ class RVroom(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@3.1:", type=("build", "run")) - depends_on("r@3.4:", type=("build", "run"), when="@1.6.0:") - depends_on("r@3.6:", type=("build", "run"), when="@1.6.4:") - depends_on("r-bit64", type=("build", "run")) - depends_on("r-crayon", type=("build", "run")) - depends_on("r-cli", type=("build", "run")) - depends_on("r-cli@3.2.0:", type=("build", "run"), when="@1.6.0:") - depends_on("r-glue", type=("build", "run")) - depends_on("r-hms", type=("build", "run")) - depends_on("r-lifecycle", type=("build", "run")) - depends_on("r-lifecycle@1.0.3:", type=("build", "run"), when="@1.6.1:") - depends_on("r-rlang@0.4.2:", type=("build", "run")) - depends_on("r-tibble@2.0.0:", type=("build", "run")) - depends_on("r-tzdb@0.1.1:", type=("build", "run")) - depends_on("r-vctrs@0.2.0:", type=("build", "run")) - depends_on("r-tidyselect", type=("build", "run")) - depends_on("r-withr", type=("build", "run")) - depends_on("r-progress@1.2.1:", type=("build", "run")) - depends_on("r-cpp11@0.2.0:", type=("build", "run")) + with default_args(type=("build", "run")): + depends_on("r@4.1:", when="@1.6.7:") + depends_on("r@3.6:", when="@1.6.4:") + depends_on("r@3.4:", when="@1.6.0:") + depends_on("r@3.1:") + + depends_on("r-bit64") + depends_on("r-cli@3.2.0:", when="@1.6.0:") + depends_on("r-cli") + depends_on("r-crayon") + depends_on("r-glue") + depends_on("r-hms") + depends_on("r-lifecycle@1.0.3:", when="@1.6.1:") + depends_on("r-lifecycle") + depends_on("r-rlang@1.1.0:", when="@1.7.0:") + depends_on("r-rlang@0.4.2:") + depends_on("r-tibble@2.0.0:") + depends_on("r-tidyselect") + depends_on("r-tzdb@0.1.1:") + depends_on("r-vctrs@0.2.0:") + depends_on("r-withr") + depends_on("r-cpp11@0.2.0:") + depends_on("r-progress@1.2.3:", when="@1.6.6:") + depends_on("r-progress@1.2.1:") diff --git a/repos/spack_repo/builtin/packages/r_vsn/package.py b/repos/spack_repo/builtin/packages/r_vsn/package.py index b5d97c52d25..a64f2346123 100644 --- a/repos/spack_repo/builtin/packages/r_vsn/package.py +++ b/repos/spack_repo/builtin/packages/r_vsn/package.py @@ -25,16 +25,17 @@ class RVsn(RPackage): bioc = "vsn" - version("3.68.0", commit="b8c9cef9730a00a810e8ec08e472b26d0bff5357") - version("3.66.0", commit="ddccd6c74ebea426056794c2bfad2dfd02631092") - version("3.64.0", commit="1f09f20ee7f81100fb0bf66288c4caf0049b5508") - version("3.62.0", commit="6ae7f4e07ec1a5a9482cab892d98175983bfcd50") - version("3.58.0", commit="a451e6ae989623750feacf26d99683a7955adf85") - version("3.52.0", commit="e80642d850ae93bc141654200a8970b561a94fbe") - version("3.50.0", commit="ad49fcc288c6065d0f04040acd688e7f0d7d927e") - version("3.48.1", commit="d57f64112004b1d73b3be625949830209de027eb") - version("3.46.0", commit="7ecfd20452348da27d6fcc052cbff2b9be777792") - version("3.44.0", commit="e54513fcdd07ccfb8094359e93cef145450f0ee0") + with default_args(get_full_repo=True): + version("3.68.0", commit="b8c9cef9730a00a810e8ec08e472b26d0bff5357") + version("3.66.0", commit="ddccd6c74ebea426056794c2bfad2dfd02631092") + version("3.64.0", commit="1f09f20ee7f81100fb0bf66288c4caf0049b5508") + version("3.62.0", commit="6ae7f4e07ec1a5a9482cab892d98175983bfcd50") + version("3.58.0", commit="a451e6ae989623750feacf26d99683a7955adf85") + version("3.52.0", commit="e80642d850ae93bc141654200a8970b561a94fbe") + version("3.50.0", commit="ad49fcc288c6065d0f04040acd688e7f0d7d927e") + version("3.48.1", commit="d57f64112004b1d73b3be625949830209de027eb") + version("3.46.0", commit="7ecfd20452348da27d6fcc052cbff2b9be777792") + version("3.44.0", commit="e54513fcdd07ccfb8094359e93cef145450f0ee0") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_watermelon/package.py b/repos/spack_repo/builtin/packages/r_watermelon/package.py index c21c2d537ce..c6aaaa5b9c0 100644 --- a/repos/spack_repo/builtin/packages/r_watermelon/package.py +++ b/repos/spack_repo/builtin/packages/r_watermelon/package.py @@ -15,12 +15,13 @@ class RWatermelon(RPackage): bioc = "wateRmelon" - version("2.6.0", commit="a46541ffcc08efebf08ea29cb214a45f51f5cb72") - version("2.4.0", commit="31c15255511940b8b83d039c42ec89e43ceb0885") - version("2.2.0", commit="6ec49efe98aef31d0789b31ab048eb46edec762c") - version("2.0.0", commit="f6a331bdf50e0e5c94009fb67be873d996348ade") - version("1.34.0", commit="3fa2745535c22068a438747b41b9d793196098d4") - version("1.30.0", commit="66d7579fe49206d965832288df7937c3d43ed578") + with default_args(get_full_repo=True): + version("2.6.0", commit="a46541ffcc08efebf08ea29cb214a45f51f5cb72") + version("2.4.0", commit="31c15255511940b8b83d039c42ec89e43ceb0885") + version("2.2.0", commit="6ec49efe98aef31d0789b31ab048eb46edec762c") + version("2.0.0", commit="f6a331bdf50e0e5c94009fb67be873d996348ade") + version("1.34.0", commit="3fa2745535c22068a438747b41b9d793196098d4") + version("1.30.0", commit="66d7579fe49206d965832288df7937c3d43ed578") depends_on("r@2.10:", type=("build", "run")) depends_on("r@3.5.0:", type=("build", "run"), when="@2.0.0:") diff --git a/repos/spack_repo/builtin/packages/r_wgcna/package.py b/repos/spack_repo/builtin/packages/r_wgcna/package.py index 6f2e7a79f5e..6c909535e98 100644 --- a/repos/spack_repo/builtin/packages/r_wgcna/package.py +++ b/repos/spack_repo/builtin/packages/r_wgcna/package.py @@ -30,6 +30,9 @@ class RWgcna(RPackage): version("1.67", sha256="c9cc9989763b2c80835489eabd38d9ee35b204305044d115ca7c775a103f6824") version("1.64-1", sha256="961a890cda40676ba533cd6de2b1d4f692addd16363f874c82ba8b65dd2d0db6") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.0:", type=("build", "run")) depends_on("r-dynamictreecut@1.62:", type=("build", "run")) depends_on("r-fastcluster", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_withr/package.py b/repos/spack_repo/builtin/packages/r_withr/package.py index d65f3b4cb21..52dadbbcb36 100644 --- a/repos/spack_repo/builtin/packages/r_withr/package.py +++ b/repos/spack_repo/builtin/packages/r_withr/package.py @@ -19,6 +19,7 @@ class RWithr(RPackage): license("MIT") + version("3.0.2", sha256="0a3a05f493d275cca4bf13c8c1b95a1a4eed7f83b2493f41fde02ce3fc92c1a3") version("3.0.1", sha256="d573f1ac2f733c7dd89669feb495d68f1f15d7a9774473c2e46a9848945a3841") version("2.5.0", sha256="37317b3ed790a08407072993a05ab255f6305f95a12a16e0e28aa6aa80fc8bc0") version("2.4.3", sha256="9bdac7459ccc6c2d599ecfd132a7f0aa68d958942d9fe7dbb0442c9eda129d4c") @@ -29,6 +30,7 @@ class RWithr(RPackage): version("1.0.2", sha256="2391545020adc4256ee7c2e31c30ff6f688f0b6032e355e1ce8f468cab455f10") version("1.0.1", sha256="7e245fdd17d290ff9e7c237159804dd06e1c6a3efe7855ed641eb0765a1e727d") - depends_on("r@3.0.2:", type=("build", "run")) - depends_on("r@3.2.0:", type=("build", "run"), when="@2.2:") - depends_on("r@3.6.0:", type=("build", "run"), when="@3.0.1:") + with default_args(type=("build", "run")): + depends_on("r@3.6.0:", when="@3.0.1:") + depends_on("r@3.2.0:", when="@2.2:") + depends_on("r@3.0.2:") diff --git a/repos/spack_repo/builtin/packages/r_wk/package.py b/repos/spack_repo/builtin/packages/r_wk/package.py index 1c2425ffbaa..d4dc15cd726 100644 --- a/repos/spack_repo/builtin/packages/r_wk/package.py +++ b/repos/spack_repo/builtin/packages/r_wk/package.py @@ -21,11 +21,15 @@ class RWk(RPackage): license("MIT") + version("0.9.4", sha256="b973dd5fa9aed94efc7ea4027146e804ba54df818a71278d6a5b7df0ae9e348b") version("0.9.2", sha256="33675edd9baedb09bf69a3a55fec3190e2bf57a5f4f63f94bc06861b5e83e5f8") version("0.7.2", sha256="6f8b72f54e2efea62fda8bc897124b43a39b81cffa9569103d06d95f946eab2f") version("0.7.0", sha256="e24327d38f2ff2d502c67c60eba3b4e44079a64ed8b805df64f231dc4712a2de") version("0.6.0", sha256="af2c2837056a6dcc9f64d5ace29601d6d668c95769f855ca0329648d7326eaf5") version("0.4.1", sha256="daa7351af0bd657740972016906c686f335b8fa922ba10250e5000ddc2bb8950") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@2.10:", type=("build", "run"), when="@0.7.0:") depends_on("r-cpp11", type=("build", "run"), when="@:0.6.0") diff --git a/repos/spack_repo/builtin/packages/r_writexl/package.py b/repos/spack_repo/builtin/packages/r_writexl/package.py index 5ba694e3ea0..8ee52d114cf 100644 --- a/repos/spack_repo/builtin/packages/r_writexl/package.py +++ b/repos/spack_repo/builtin/packages/r_writexl/package.py @@ -18,4 +18,6 @@ class RWritexl(RPackage): version("1.5.0", sha256="e253dc58f00abf51e9b727ae132e8b301e359fb23df0afc40c3ebec3fb096dce") + depends_on("c", type="build") # generated + depends_on("zlib-api", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_wru/package.py b/repos/spack_repo/builtin/packages/r_wru/package.py index 30e9d70bb33..5036a3de212 100644 --- a/repos/spack_repo/builtin/packages/r_wru/package.py +++ b/repos/spack_repo/builtin/packages/r_wru/package.py @@ -44,6 +44,8 @@ class RWru(RPackage): version("0.0-2", sha256="4ad5a09a5663906ea546fd9169444a559643d87ac18115e88b538a9260d40d4d") version("0.0-1", sha256="604a3e0f04fa3b1c5ee13543c0e3841f5a050f784f561d7ed8576542a27584ae") + depends_on("cxx", type="build") # generated + depends_on("r@3.2.0:", type=("build", "run"), when="@0.0-1:") depends_on("r@3.5.0:", type=("build", "run"), when="@0.0-10:") depends_on("r@4.1.0:", type=("build", "run"), when="@1.0.0:") diff --git a/repos/spack_repo/builtin/packages/r_xde/package.py b/repos/spack_repo/builtin/packages/r_xde/package.py index 5234200b03f..67673a73945 100644 --- a/repos/spack_repo/builtin/packages/r_xde/package.py +++ b/repos/spack_repo/builtin/packages/r_xde/package.py @@ -16,16 +16,17 @@ class RXde(RPackage): bioc = "XDE" - version("2.46.0", commit="f94324fba1ad6dca129d86e61abc219f766321e8") - version("2.44.0", commit="a6ddedb91afe381f223e52ae49c6704f8f046916") - version("2.42.0", commit="298e83eff7fc5f72a2bb76b559c5115c6cd3ee84") - version("2.40.0", commit="bfc3c54787aec97b70bef7b99a6adc75d2cf5ed2") - version("2.36.0", commit="0277f9dffbd7d1880be77cb8581fc614501b3293") - version("2.30.0", commit="058af6f1e431522778f970bf61f834620d3d7dd7") - version("2.28.0", commit="b8cc7d0840ce1324644e8b4a750fbb964884498b") - version("2.26.0", commit="7bf6368037937c53542447175061c2e2059ee3be") - version("2.24.0", commit="fd5f245f82893657dc36e5a67a1d3b8255772462") - version("2.22.0", commit="25bcec965ae42a410dd285a9db9be46d112d8e81") + with default_args(get_full_repo=True): + version("2.46.0", commit="f94324fba1ad6dca129d86e61abc219f766321e8") + version("2.44.0", commit="a6ddedb91afe381f223e52ae49c6704f8f046916") + version("2.42.0", commit="298e83eff7fc5f72a2bb76b559c5115c6cd3ee84") + version("2.40.0", commit="bfc3c54787aec97b70bef7b99a6adc75d2cf5ed2") + version("2.36.0", commit="0277f9dffbd7d1880be77cb8581fc614501b3293") + version("2.30.0", commit="058af6f1e431522778f970bf61f834620d3d7dd7") + version("2.28.0", commit="b8cc7d0840ce1324644e8b4a750fbb964884498b") + version("2.26.0", commit="7bf6368037937c53542447175061c2e2059ee3be") + version("2.24.0", commit="fd5f245f82893657dc36e5a67a1d3b8255772462") + version("2.22.0", commit="25bcec965ae42a410dd285a9db9be46d112d8e81") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_xfun/package.py b/repos/spack_repo/builtin/packages/r_xfun/package.py index 28d2bafc8e9..4ffda0ea56b 100644 --- a/repos/spack_repo/builtin/packages/r_xfun/package.py +++ b/repos/spack_repo/builtin/packages/r_xfun/package.py @@ -17,6 +17,7 @@ class RXfun(RPackage): license("MIT") + version("0.57", sha256="5a0cded15fe21273c6d83dd9b72a1c798a1b43841c2166b563723c2ee4b7f475") version("0.47", sha256="999874fdbf4df2e686a3cb134bfef782c0d3eb0141006191ca1eda94ce232c4b") version("0.39", sha256="d0ecaabb243dd3496da6029932fcdd4772914843de7ffd0b78a172efde1356c9") version("0.34", sha256="50e76c1febb988c044e44fb78e1abc1ba681173c9ff3c336f4c0ad71e6a2853d") diff --git a/repos/spack_repo/builtin/packages/r_xgboost/package.py b/repos/spack_repo/builtin/packages/r_xgboost/package.py index f7fa8fc950e..30df43572eb 100644 --- a/repos/spack_repo/builtin/packages/r_xgboost/package.py +++ b/repos/spack_repo/builtin/packages/r_xgboost/package.py @@ -34,6 +34,9 @@ class RXgboost(RPackage): version("0.6-4", sha256="9fc51dd1b910c70930357f617d1ac7a74c5056e8847d4188175db27c09f9d1ed") version("0.4-4", sha256="b955fc3352fcdc4894178c82fd62fbaf5e099c9d794f1e9daa2dd7b3494b61ff") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@2.10:", type=("build", "run")) depends_on("r@2.15.1:", type=("build", "run"), when="@0.6-0:") depends_on("r@3.3.0:", type=("build", "run"), when="@0.6-3:") diff --git a/repos/spack_repo/builtin/packages/r_xlconnect/package.py b/repos/spack_repo/builtin/packages/r_xlconnect/package.py index dc17006ecdd..a79e4b4fb33 100644 --- a/repos/spack_repo/builtin/packages/r_xlconnect/package.py +++ b/repos/spack_repo/builtin/packages/r_xlconnect/package.py @@ -25,14 +25,14 @@ class RXlconnect(RPackage): version("0.2-12", sha256="500624f078fb27338aa91d8710daaf38633659a9b17f7cb713232a3d66f9f62c") version("0.2-11", sha256="17c5eddd00b933fd7a2ab9d942c813046d45f0af487f8d5b11011a004db69d0b") + depends_on("r+java", type=("build", "run")) depends_on("r@2.10.0:", type=("build", "run")) depends_on("r@3.6.0:", type=("build", "run"), when="@1.0.6:") - depends_on("r-rjava", type=("build", "run")) - depends_on("r-rjava@1.0-1:", type=("build", "run"), when="@1.0.6:") depends_on("java@6:") depends_on("java@8:11", when="@1.0.1:") depends_on("java@8:17", when="@1.0.5:") - + depends_on("r-rjava", type=("build", "run")) + depends_on("r-rjava@1.0-1:", type=("build", "run"), when="@1.0.6:") depends_on("r-xlconnectjars@0.2-9", type=("build", "run"), when="@0.2-11") depends_on("r-xlconnectjars@0.2-12", type=("build", "run"), when="@0.2-12") depends_on("r-xlconnectjars@0.2-14", type=("build", "run"), when="@0.2-14") diff --git a/repos/spack_repo/builtin/packages/r_xlconnectjars/package.py b/repos/spack_repo/builtin/packages/r_xlconnectjars/package.py index eb2c7bcb8d8..274585ff2a4 100644 --- a/repos/spack_repo/builtin/packages/r_xlconnectjars/package.py +++ b/repos/spack_repo/builtin/packages/r_xlconnectjars/package.py @@ -19,5 +19,6 @@ class RXlconnectjars(RPackage): version("0.2-12", sha256="676bf430ec118355142b3ebe8ecdadcd0019f6e9ac17c7b79b770668eace6df2") version("0.2-9", sha256="e31dd189f24afad84abb8bd865c2353b0eccee60ac74ce9030b846789248474b") - depends_on("r-rjava", type=("build", "run")) + depends_on("r+java", type=("build", "run")) depends_on("java@6:") + depends_on("r-rjava", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_xlsx/package.py b/repos/spack_repo/builtin/packages/r_xlsx/package.py index 2f50059b65c..7d5c403b8e2 100644 --- a/repos/spack_repo/builtin/packages/r_xlsx/package.py +++ b/repos/spack_repo/builtin/packages/r_xlsx/package.py @@ -20,6 +20,7 @@ class RXlsx(RPackage): version("0.6.5", sha256="378c5ed475a3d7631ea1ea13e0a69d619c1a52260922abda42818752dbb32107") version("0.6.1", sha256="a580bd16b5477c1c185bf681c12c1ffff4088089f97b6a37997913d93ec5a8b4") + depends_on("r+java", type=("build", "run")) + depends_on("java@6:") depends_on("r-rjava", type=("build", "run")) depends_on("r-xlsxjars", type=("build", "run")) - depends_on("java@6:") diff --git a/repos/spack_repo/builtin/packages/r_xmapbridge/package.py b/repos/spack_repo/builtin/packages/r_xmapbridge/package.py index 7b1b2a3ec85..7e91045f470 100644 --- a/repos/spack_repo/builtin/packages/r_xmapbridge/package.py +++ b/repos/spack_repo/builtin/packages/r_xmapbridge/package.py @@ -15,15 +15,16 @@ class RXmapbridge(RPackage): bioc = "xmapbridge" - version("1.58.0", commit="905077b7935c4678376f3f2afd9881ff0c45ad00") - version("1.56.0", commit="fdf2cafca8ad348813d3381fee57623fab53f0ab") - version("1.54.0", commit="a316e2399894191646c229378fa138b7461c75ab") - version("1.52.0", commit="fe32fcd2a83432c721eb948cb3af73dd187065f6") - version("1.48.0", commit="1cefe6b56c6dcb1f18028b3b7d6a67d490bc9730") - version("1.42.0", commit="d79c80dfc1a0ed3fd6d3e7a7c3a4aff778537ca9") - version("1.40.0", commit="00a2993863f28711e237bc937fa0ba2d05f81684") - version("1.38.0", commit="08138f00385fa0c669ff4cc33d7eac3d29cd615d") - version("1.36.0", commit="e44f648c9da9eaa130849a738d90dc11685050e2") - version("1.34.0", commit="f162e1f72ead5f5a1aede69032d5771a6572d965") + with default_args(get_full_repo=True): + version("1.58.0", commit="905077b7935c4678376f3f2afd9881ff0c45ad00") + version("1.56.0", commit="fdf2cafca8ad348813d3381fee57623fab53f0ab") + version("1.54.0", commit="a316e2399894191646c229378fa138b7461c75ab") + version("1.52.0", commit="fe32fcd2a83432c721eb948cb3af73dd187065f6") + version("1.48.0", commit="1cefe6b56c6dcb1f18028b3b7d6a67d490bc9730") + version("1.42.0", commit="d79c80dfc1a0ed3fd6d3e7a7c3a4aff778537ca9") + version("1.40.0", commit="00a2993863f28711e237bc937fa0ba2d05f81684") + version("1.38.0", commit="08138f00385fa0c669ff4cc33d7eac3d29cd615d") + version("1.36.0", commit="e44f648c9da9eaa130849a738d90dc11685050e2") + version("1.34.0", commit="f162e1f72ead5f5a1aede69032d5771a6572d965") depends_on("r@2.0:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_xml/package.py b/repos/spack_repo/builtin/packages/r_xml/package.py index 248af1d8498..f5e4bc4f15f 100644 --- a/repos/spack_repo/builtin/packages/r_xml/package.py +++ b/repos/spack_repo/builtin/packages/r_xml/package.py @@ -29,6 +29,8 @@ class RXml(RPackage): version("3.98-1.5", sha256="deaff082e4d37931d2dabea3a60c3d6916d565821043b22b3f9522ebf3918d35") version("3.98-1.4", sha256="9c0abc75312f66aac564266b6b79222259c678aedee9fc347462978354f11126") + depends_on("c", type="build") + depends_on("r@2.13.0:", type=("build", "run")) depends_on("r@4.0.0:", type=("build", "run"), when="@3.99-0.5:") depends_on("libxml2@2.6.3:") diff --git a/repos/spack_repo/builtin/packages/r_xml2/package.py b/repos/spack_repo/builtin/packages/r_xml2/package.py index 7ef1c3204f6..aa5a6267529 100644 --- a/repos/spack_repo/builtin/packages/r_xml2/package.py +++ b/repos/spack_repo/builtin/packages/r_xml2/package.py @@ -17,6 +17,7 @@ class RXml2(RPackage): license("MIT") + version("1.5.2", sha256="ed87cfa478f9e4c398288963cf7b0e1a66ba08f54d909b261a4a6c35944f50ab") version("1.3.6", sha256="e81991ff99bff3616dde8683c1327194e3ea64fa3b8062f52d8ce32673dd308f") version("1.3.3", sha256="cb4e9c0d31618ed67d2bfa4c7b5e52680e11612ed356a8164b541d44163c1c8d") version("1.3.2", sha256="df22f9e7e3189d8c9b8804eaf0105324fdac983cffe743552f6d76613600a4cf") @@ -27,11 +28,15 @@ class RXml2(RPackage): depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("r@3.1.0:", type=("build", "run")) - depends_on("r@3.6.0:", type=("build", "run"), when="@1.3.6:") depends_on("libxml2") - depends_on("r-bh", type=("build", "run"), when="@:1.1.1") - depends_on("r-cli", type=("build", "run"), when="@1.3.6:") - depends_on("r-rcpp@0.12.12:", type=("build", "run"), when="@:1.2") - depends_on("r-rlang@1.1.0:", type=("build", "run"), when="@1.3.6:") + with default_args(type=("build", "run")): + depends_on("r@3.6.0:", when="@1.3.6:") + depends_on("r@3.1.0:") + + depends_on("r-cli", when="@1.3.6:") + depends_on("r-rlang@1.1.0:", when="@1.3.6:") + + # Historical dependencies + depends_on("r-bh", when="@:1.1.1") + depends_on("r-rcpp@0.12.12:", when="@:1.2") diff --git a/repos/spack_repo/builtin/packages/r_xts/package.py b/repos/spack_repo/builtin/packages/r_xts/package.py index af2665ed633..a0ccdf600a1 100644 --- a/repos/spack_repo/builtin/packages/r_xts/package.py +++ b/repos/spack_repo/builtin/packages/r_xts/package.py @@ -27,6 +27,8 @@ class RXts(RPackage): version("0.11-2", sha256="12772f6a66aab5b84b0665c470f11a3d8d8a992955c027261cfe8e6077ee13b8") version("0.9-7", sha256="f11f7cb98f4b92b7f6632a2151257914130880c267736ef5a264b5dc2dfb7098") + depends_on("c", type="build") # generated + depends_on("r@3.6.0:", type=("build", "run"), when="@0.13.0:") depends_on("r-zoo@1.7-12:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_xvector/package.py b/repos/spack_repo/builtin/packages/r_xvector/package.py index 8ee28f57971..5d3db1a7026 100644 --- a/repos/spack_repo/builtin/packages/r_xvector/package.py +++ b/repos/spack_repo/builtin/packages/r_xvector/package.py @@ -16,16 +16,17 @@ class RXvector(RPackage): bioc = "XVector" - version("0.40.0", commit="875b4b4469e125737bee42362e7a3c75edd642f1") - version("0.38.0", commit="8cad08446091dcc7cd759e880c0f3e47228278dd") - version("0.36.0", commit="ff6f818ff4357eb9bf00654de9e0f508a5285408") - version("0.34.0", commit="06adb25ac51c707b90fb8e0637fa06df237a863c") - version("0.30.0", commit="985e963e0b1c3ff004dd0b07ad7c9ff7ed853ec0") - version("0.24.0", commit="e5109cb2687724b9fddddf296c07a82bae4c551d") - version("0.22.0", commit="b5e107a5fd719e18374eb836eb498b529afa4473") - version("0.20.0", commit="a83a7ea01f6a710f0ba7d9fb021cfa795b291cb4") - version("0.18.0", commit="27acf47282c9880b54d04dff46c1e50f0c87fa6b") - version("0.16.0", commit="54615888e1a559da4a81de33e934fc0f1c3ad99f") + with default_args(get_full_repo=True): + version("0.40.0", commit="875b4b4469e125737bee42362e7a3c75edd642f1") + version("0.38.0", commit="8cad08446091dcc7cd759e880c0f3e47228278dd") + version("0.36.0", commit="ff6f818ff4357eb9bf00654de9e0f508a5285408") + version("0.34.0", commit="06adb25ac51c707b90fb8e0637fa06df237a863c") + version("0.30.0", commit="985e963e0b1c3ff004dd0b07ad7c9ff7ed853ec0") + version("0.24.0", commit="e5109cb2687724b9fddddf296c07a82bae4c551d") + version("0.22.0", commit="b5e107a5fd719e18374eb836eb498b529afa4473") + version("0.20.0", commit="a83a7ea01f6a710f0ba7d9fb021cfa795b291cb4") + version("0.18.0", commit="27acf47282c9880b54d04dff46c1e50f0c87fa6b") + version("0.16.0", commit="54615888e1a559da4a81de33e934fc0f1c3ad99f") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_yaimpute/package.py b/repos/spack_repo/builtin/packages/r_yaimpute/package.py index 2b4f7abcc93..25cb328c4f3 100644 --- a/repos/spack_repo/builtin/packages/r_yaimpute/package.py +++ b/repos/spack_repo/builtin/packages/r_yaimpute/package.py @@ -27,5 +27,8 @@ class RYaimpute(RPackage): version("1.0-33", sha256="58595262eb1bc9ffeeadca78664c418ea24b4e894744890c00252c5ebd02512c") version("1.0-32", sha256="08eee5d851b80aad9c7c80f9531aadd50d60e4b16b3a80657a50212269cd73ff") + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + depends_on("r@3.0:", type=("build", "run")) depends_on("r@3.0.0:", type=("build", "run"), when="@1.0-33:") diff --git a/repos/spack_repo/builtin/packages/r_yaml/package.py b/repos/spack_repo/builtin/packages/r_yaml/package.py index 17c43e082db..e69b5211a26 100644 --- a/repos/spack_repo/builtin/packages/r_yaml/package.py +++ b/repos/spack_repo/builtin/packages/r_yaml/package.py @@ -17,6 +17,7 @@ class RYaml(RPackage): license("BSD-3-Clause") + version("2.3.12", sha256="80ccf3dde851133ef3e333b818a817c296c6ccdacfc4709cd466995289cd556c") version("2.3.10", sha256="e236d42d366e361d4855aa4f520260debd53a31e4786442b94770b045da02a6d") version("2.3.7", sha256="d20cb219e0f9c48aba02f132f81cfa9ecda5e22c925e36726840218ed56680ab") version("2.3.6", sha256="5dd19d8d6654ef2e4ccd6216ce8e96ca5185ae6143f95194955f6908a6e1ba26") diff --git a/repos/spack_repo/builtin/packages/r_yapsa/package.py b/repos/spack_repo/builtin/packages/r_yapsa/package.py index 6a03b9743a4..cd87b916a24 100644 --- a/repos/spack_repo/builtin/packages/r_yapsa/package.py +++ b/repos/spack_repo/builtin/packages/r_yapsa/package.py @@ -21,16 +21,17 @@ class RYapsa(RPackage): license("GPL-3.0-or-later") - version("1.26.0", commit="eab6bbd7a44e1368c7827e4717439de445303868") - version("1.24.0", commit="68d1c9c71af3ade4a44237ec2d3003688378f898") - version("1.22.0", commit="55c2886874f154c737264ce6843089bf3565fa57") - version("1.20.1", commit="6c3f437911859df6f6e4a9af5571c3a5aafbffb2") - version("1.16.0", commit="f344cdb81bb886c633f9325f811912fb59d58eb1") - version("1.10.0", commit="06af18e424868eb0f0be6c80e90cbab1eabf3d73") - version("1.8.0", commit="402f3f7774fdf8afc7883579ad651c26df0f8fdb") - version("1.6.0", commit="2455d272b076835ddb36ad21c01ef15af66abc36") - version("1.4.0", commit="6f24150a0689d5215983975ece96c8c205923c72") - version("1.2.0", commit="320809b69e470e30a777a383f8341f93064ec24d") + with default_args(get_full_repo=True): + version("1.26.0", commit="eab6bbd7a44e1368c7827e4717439de445303868") + version("1.24.0", commit="68d1c9c71af3ade4a44237ec2d3003688378f898") + version("1.22.0", commit="55c2886874f154c737264ce6843089bf3565fa57") + version("1.20.1", commit="6c3f437911859df6f6e4a9af5571c3a5aafbffb2") + version("1.16.0", commit="f344cdb81bb886c633f9325f811912fb59d58eb1") + version("1.10.0", commit="06af18e424868eb0f0be6c80e90cbab1eabf3d73") + version("1.8.0", commit="402f3f7774fdf8afc7883579ad651c26df0f8fdb") + version("1.6.0", commit="2455d272b076835ddb36ad21c01ef15af66abc36") + version("1.4.0", commit="6f24150a0689d5215983975ece96c8c205923c72") + version("1.2.0", commit="320809b69e470e30a777a383f8341f93064ec24d") depends_on("r@3.3.0:", type=("build", "run")) depends_on("r@3.6.0:", type=("build", "run"), when="@1.16.0:") diff --git a/repos/spack_repo/builtin/packages/r_yaqcaffy/package.py b/repos/spack_repo/builtin/packages/r_yaqcaffy/package.py index 34df17dbac3..e48bb5f00f7 100644 --- a/repos/spack_repo/builtin/packages/r_yaqcaffy/package.py +++ b/repos/spack_repo/builtin/packages/r_yaqcaffy/package.py @@ -16,11 +16,12 @@ class RYaqcaffy(RPackage): bioc = "yaqcaffy" - version("1.50.0", commit="b32e6b947ca9c4ab7163cfddc084a1bc0a34780e") - version("1.44.0", commit="00898f3ec9ac0beadbcf57bda3d3c1c99fb0c3c0") - version("1.42.0", commit="a4af673774165e087499ecc35f96aab6bbfbeea1") - version("1.40.0", commit="0c78f8ff8f675305f6fa4b052d2482e9aee551bb") - version("1.38.0", commit="d57100862c2dc0f5e7684f318b9ceda7349352be") - version("1.36.0", commit="4d46fe77b2c8de2230a77b0c07dd5dd726e3abd6") + with default_args(get_full_repo=True): + version("1.50.0", commit="b32e6b947ca9c4ab7163cfddc084a1bc0a34780e") + version("1.44.0", commit="00898f3ec9ac0beadbcf57bda3d3c1c99fb0c3c0") + version("1.42.0", commit="a4af673774165e087499ecc35f96aab6bbfbeea1") + version("1.40.0", commit="0c78f8ff8f675305f6fa4b052d2482e9aee551bb") + version("1.38.0", commit="d57100862c2dc0f5e7684f318b9ceda7349352be") + version("1.36.0", commit="4d46fe77b2c8de2230a77b0c07dd5dd726e3abd6") depends_on("r-simpleaffy@2.19.3:", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_yarn/package.py b/repos/spack_repo/builtin/packages/r_yarn/package.py index 353e9b27649..77d9afa0bbc 100644 --- a/repos/spack_repo/builtin/packages/r_yarn/package.py +++ b/repos/spack_repo/builtin/packages/r_yarn/package.py @@ -19,16 +19,17 @@ class RYarn(RPackage): bioc = "yarn" - version("1.26.0", commit="54dac4a6afe6b036bac60482cf268aa0cf28cec4") - version("1.24.0", commit="d3a9c5cc1f97bff111dc9332f32ded676e3709d3") - version("1.22.0", commit="0d94152eee4224bf1ca467fad7f2b35c2e1df6b2") - version("1.20.0", commit="b41e4ef14f980518af2fc59f202ad8ec148e8b47") - version("1.16.0", commit="ff5a18cb946ffec3cb773fe32af401c8a72d674a") - version("1.10.0", commit="36ffe84148eb871e93bc8f9e697475319b5ea472") - version("1.8.1", commit="ee0723d4dbf082b4469ca9c22cce4f1a2ac81c04") - version("1.6.0", commit="19d1b2ef275f294bd318b86e0d237c271880117d") - version("1.4.0", commit="36100f40b9e520c072d0d5ebf963723b813f7db0") - version("1.2.0", commit="28af616ef8c27dcadf6568e276dea8465486a697") + with default_args(get_full_repo=True): + version("1.26.0", commit="54dac4a6afe6b036bac60482cf268aa0cf28cec4") + version("1.24.0", commit="d3a9c5cc1f97bff111dc9332f32ded676e3709d3") + version("1.22.0", commit="0d94152eee4224bf1ca467fad7f2b35c2e1df6b2") + version("1.20.0", commit="b41e4ef14f980518af2fc59f202ad8ec148e8b47") + version("1.16.0", commit="ff5a18cb946ffec3cb773fe32af401c8a72d674a") + version("1.10.0", commit="36ffe84148eb871e93bc8f9e697475319b5ea472") + version("1.8.1", commit="ee0723d4dbf082b4469ca9c22cce4f1a2ac81c04") + version("1.6.0", commit="19d1b2ef275f294bd318b86e0d237c271880117d") + version("1.4.0", commit="36100f40b9e520c072d0d5ebf963723b813f7db0") + version("1.2.0", commit="28af616ef8c27dcadf6568e276dea8465486a697") depends_on("r-biobase", type=("build", "run")) depends_on("r-biomart", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/r_zip/package.py b/repos/spack_repo/builtin/packages/r_zip/package.py index 7daf467bccb..653024123f6 100644 --- a/repos/spack_repo/builtin/packages/r_zip/package.py +++ b/repos/spack_repo/builtin/packages/r_zip/package.py @@ -25,3 +25,5 @@ class RZip(RPackage): version("2.2.0", sha256="9f95987c964039834f770ecda2d5f7e3d3a9de553c89db2a5926c4219bf4b9d8") version("2.1.1", sha256="11dd417932296d3a25c53aa8d3b908973c4945a496cc473dd321825dfaaa7c2c") version("2.0.3", sha256="4a8cb8e41eb630bbf448a0fd56bcaeb752b8484fef98c6419334edf46401317e") + + depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_zlibbioc/package.py b/repos/spack_repo/builtin/packages/r_zlibbioc/package.py index 0b55ff48337..1cfa8adf260 100644 --- a/repos/spack_repo/builtin/packages/r_zlibbioc/package.py +++ b/repos/spack_repo/builtin/packages/r_zlibbioc/package.py @@ -17,15 +17,16 @@ class RZlibbioc(RPackage): bioc = "zlibbioc" - version("1.46.0", commit="f475457ece2c2b5fc9e6a91a3084dcba2345ab0a") - version("1.44.0", commit="d39f0b02fa108ab907b4042c00a114569430a333") - version("1.42.0", commit="aa074d72515df745ad65133ca21d3cad778ccc0e") - version("1.40.0", commit="3f116b39d104c1ea8288f6b8f0ef94bb95f41f69") - version("1.36.0", commit="62e888cd7fb482d512c6c31961b657e0b924e357") - version("1.30.0", commit="99eae5b05968bf6abc9b54b9031afd93517381e0") - version("1.28.0", commit="b825b042742ba45455fc284b988ff4cd2a33222c") - version("1.26.0", commit="2e3ab097caa09a5e3ddaa3469b13e19a7224da0d") - version("1.24.0", commit="2990059338d1b987d098c009b0bfa806bd24afec") - version("1.22.0", commit="30377f830af2bc1ff17bbf3fdd2cb6442015fea5") + with default_args(get_full_repo=True): + version("1.46.0", commit="f475457ece2c2b5fc9e6a91a3084dcba2345ab0a") + version("1.44.0", commit="d39f0b02fa108ab907b4042c00a114569430a333") + version("1.42.0", commit="aa074d72515df745ad65133ca21d3cad778ccc0e") + version("1.40.0", commit="3f116b39d104c1ea8288f6b8f0ef94bb95f41f69") + version("1.36.0", commit="62e888cd7fb482d512c6c31961b657e0b924e357") + version("1.30.0", commit="99eae5b05968bf6abc9b54b9031afd93517381e0") + version("1.28.0", commit="b825b042742ba45455fc284b988ff4cd2a33222c") + version("1.26.0", commit="2e3ab097caa09a5e3ddaa3469b13e19a7224da0d") + version("1.24.0", commit="2990059338d1b987d098c009b0bfa806bd24afec") + version("1.22.0", commit="30377f830af2bc1ff17bbf3fdd2cb6442015fea5") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/racon/package.py b/repos/spack_repo/builtin/packages/racon/package.py index ce8080498aa..81b2bc09bf1 100644 --- a/repos/spack_repo/builtin/packages/racon/package.py +++ b/repos/spack_repo/builtin/packages/racon/package.py @@ -33,46 +33,6 @@ def url_for_version(self, version): version("1.4.9", sha256="ae0bef208271166dd6325440131e408386408c12a9497d8d743504908ecb45e8") version("1.4.7", sha256="75e39395ced636dd0f5ef1abe431d8f9f6404eb0a806c530cff8e4fa4f57fab7") version("1.4.6", sha256="6514e89e4e6eea1d14fc1b760c4ccd02a833443284259d52628eeea0eb5f70db") - version( - "1.4.3", - sha256="dfce0bae8234c414ef72b690247701b4299e39a2593bcda548a7a864f51de7f2", - deprecated=True, - ) - version( - "1.4.2", - sha256="b36d8b767e0fc9acdd3e9d34c99a8bbc02a3aae7a953c57923d935ebdf332700", - deprecated=True, - ) - version( - "1.4.0", - sha256="3e1e97388f428326342dead3f8500e72b1986f292bdfd4d1be4a0d2a21f4cc61", - deprecated=True, - ) - version( - "1.3.3", - sha256="174afde420ed2e187e57c1a6e9fc6a414aa26723b4ae83c3904640fc84941e66", - deprecated=True, - ) - version( - "1.3.2", - sha256="7c99380a0f1091f5ee138b559e318d7e9463d3145eac026bf236751c2c4b92c7", - deprecated=True, - ) - version( - "1.3.1", - sha256="7ce3b1ce6abdb6c6a63d50755b1fc55d5a4d2ab8f86a1df81890d4a7842d9b75", - deprecated=True, - ) - version( - "1.3.0", - sha256="f2331fb88eae5c54227dc16651607af6f045ae1ccccc1d117011762927d4606a", - deprecated=True, - ) - version( - "1.2.1", - sha256="6e4b752b7cb6ab13b5e8cb9db58188cf1a3a61c4dcc565c8849bf4868b891bf8", - deprecated=True, - ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/raja/package.py b/repos/spack_repo/builtin/packages/raja/package.py index c9b36bbe213..c03cb9d0a92 100644 --- a/repos/spack_repo/builtin/packages/raja/package.py +++ b/repos/spack_repo/builtin/packages/raja/package.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re import socket from spack_repo.builtin.build_systems.cached_cmake import ( @@ -39,6 +40,48 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage): version("develop", branch="develop", submodules=submodules) version("main", branch="main", submodules=submodules) + version( + "2025.12.2", + tag="v2025.12.2", + commit="eca7c5015a5cf8bf7cc8ad1829fd36d3276ab274", + submodules=submodules, + ) + version( + "2025.12.1", + tag="v2025.12.1", + commit="3b8b59a1e9be2e1066c0d77372b3bf5956e6d6e2", + submodules=submodules, + ) + version( + "2025.12.0", + tag="v2025.12.0", + commit="e827035c630e71a9358e2f21c2f3cf6fd5fb6605", + submodules=submodules, + ) + version( + "2025.09.1", + tag="v2025.09.1", + commit="1e0756eda3c344da362e483afb9100ebd8137a2c", + submodules=submodules, + ) + version( + "2025.09.0", + tag="v2025.09.0", + commit="ca756788dbdd43fec2a3840389126ae94a905d5f", + submodules=submodules, + ) + version( + "2025.03.2", + tag="v2025.03.2", + commit="6e36a94380adbe88fed11a3213fc08461428ece0", + submodules=submodules, + ) + version( + "2025.03.1", + tag="v2025.03.1", + commit="ffa7b92377705aff855b4bf602e197ae4f8e8cc3", + submodules=submodules, + ) version( "2025.03.0", tag="v2025.03.0", @@ -100,76 +143,55 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage): submodules=submodules, ) version( - "0.14.0", - tag="v0.14.0", - commit="357933a42842dd91de5c1034204d937fce0a2a44", - submodules="True", + "0.14.0", tag="v0.14.0", commit="357933a42842dd91de5c1034204d937fce0a2a44", submodules=True ) version( - "0.13.0", - tag="v0.13.0", - commit="3047fa720132d19ee143b1fcdacaa72971f5988c", - submodules="True", + "0.13.0", tag="v0.13.0", commit="3047fa720132d19ee143b1fcdacaa72971f5988c", submodules=True ) version( - "0.12.1", - tag="v0.12.1", - commit="9cb6370bb2868e35ebba23cdce927f5f7f9da530", - submodules="True", + "0.12.1", tag="v0.12.1", commit="9cb6370bb2868e35ebba23cdce927f5f7f9da530", submodules=True ) version( - "0.12.0", - tag="v0.12.0", - commit="32d92e38da41cc8d4db25ec79b9884a73a0cb3a1", - submodules="True", + "0.12.0", tag="v0.12.0", commit="32d92e38da41cc8d4db25ec79b9884a73a0cb3a1", submodules=True ) version( - "0.11.0", - tag="v0.11.0", - commit="0502b9b69c4cb60aa0afbdf699b555c76cb18f22", - submodules="True", + "0.11.0", tag="v0.11.0", commit="0502b9b69c4cb60aa0afbdf699b555c76cb18f22", submodules=True ) version( - "0.10.1", - tag="v0.10.1", - commit="be91e040130678b1350dbda56cc352433db758bd", - submodules="True", + "0.10.1", tag="v0.10.1", commit="be91e040130678b1350dbda56cc352433db758bd", submodules=True ) version( - "0.10.0", - tag="v0.10.0", - commit="53cb89cf788d28bc4ed2b4e6f75483fdd26024aa", - submodules="True", + "0.10.0", tag="v0.10.0", commit="53cb89cf788d28bc4ed2b4e6f75483fdd26024aa", submodules=True ) version( - "0.9.0", tag="v0.9.0", commit="df7ca1fa892b6ac4147c614d2d739d5022f63fc7", submodules="True" + "0.9.0", tag="v0.9.0", commit="df7ca1fa892b6ac4147c614d2d739d5022f63fc7", submodules=True ) version( - "0.8.0", tag="v0.8.0", commit="8d19a8c2cbac611de6f92ad8852b9f3454b27e63", submodules="True" + "0.8.0", tag="v0.8.0", commit="8d19a8c2cbac611de6f92ad8852b9f3454b27e63", submodules=True ) version( - "0.7.0", tag="v0.7.0", commit="caa33b371b586dfae3d8569caee91c5eddfd7b31", submodules="True" + "0.7.0", tag="v0.7.0", commit="caa33b371b586dfae3d8569caee91c5eddfd7b31", submodules=True ) version( - "0.6.0", tag="v0.6.0", commit="cc7a97e8b4e52c3de820c9dfacd358822a147871", submodules="True" + "0.6.0", tag="v0.6.0", commit="cc7a97e8b4e52c3de820c9dfacd358822a147871", submodules=True ) version( - "0.5.3", tag="v0.5.3", commit="1ca35c0ed2a43a3fa9c6cd70c5d25f16d88ecd8c", submodules="True" + "0.5.3", tag="v0.5.3", commit="1ca35c0ed2a43a3fa9c6cd70c5d25f16d88ecd8c", submodules=True ) version( - "0.5.2", tag="v0.5.2", commit="4d5c3d5d7f311838855f7010810610349e729f64", submodules="True" + "0.5.2", tag="v0.5.2", commit="4d5c3d5d7f311838855f7010810610349e729f64", submodules=True ) version( - "0.5.1", tag="v0.5.1", commit="bf340abe5199d7e051520913c9a7a5de336b5820", submodules="True" + "0.5.1", tag="v0.5.1", commit="bf340abe5199d7e051520913c9a7a5de336b5820", submodules=True ) version( - "0.5.0", tag="v0.5.0", commit="9b539d84fdad049f65caeba836f41031f5baf4cc", submodules="True" + "0.5.0", tag="v0.5.0", commit="9b539d84fdad049f65caeba836f41031f5baf4cc", submodules=True ) version( - "0.4.1", tag="v0.4.1", commit="3618cfe95d6a442fa50fbe7bfbcf654cf9f800b9", submodules="True" + "0.4.1", tag="v0.4.1", commit="3618cfe95d6a442fa50fbe7bfbcf654cf9f800b9", submodules=True ) version( - "0.4.0", tag="v0.4.0", commit="31b2a48192542c2da426885baa5af0ed57606b78", submodules="True" + "0.4.0", tag="v0.4.0", commit="31b2a48192542c2da426885baa5af0ed57606b78", submodules=True ) # export targets when building pre-2.4.0 release with BLT 0.4.0+ @@ -197,7 +219,7 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage): 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") - variant("vectorization", default=False, description="Build SIMD/SIMT intrinsics support") + variant("vectorization", default=True, description="Build SIMD/SIMT intrinsics support") variant( "omptask", default=False, description="Build OpenMP task variants of internal algorithms" ) @@ -206,6 +228,7 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage): variant("gpu-profiling", default=False, description="Enable GPU profiling") variant("plugins", default=False, description="Enable runtime plugins") + variant("caliper", default=False, description="Enable caliper support") variant("examples", default=True, description="Build examples.") variant("exercises", default=True, description="Build exercises.") # TODO: figure out gtest dependency and then set this default True @@ -227,9 +250,23 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage): description="For developers, lowers optimization level to pass tests with some compilers", ) - depends_on("cxx", type="build") # generated + variant( + "cxxstd", + default="20", + values=("11", "14", "17", "20"), + description="C++ standard to build with", + ) + conflicts("cxxstd=11", when="@0.14.0:") + conflicts("cxxstd=14", when="@2025.09.0:") + conflicts("cxxstd=17", when="@2026.03.0:") + conflicts("+sycl cxxstd=14", when="@2024.07.0:") + + depends_on("cxx", type="build") + depends_on("c", type="build") depends_on("blt", type="build") + depends_on("blt@0.7.1:", type="build", when="@2025.09.0:") + depends_on("blt@0.7.0:", type="build", when="@2025.03.0:") depends_on("blt@0.6.2:", type="build", when="@2024.02.1:") depends_on("blt@0.6.1", type="build", when="@2024.02.0") depends_on("blt@0.5.3", type="build", when="@2023.06.0:2023.06.1") @@ -244,7 +281,12 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("camp+openmp", when="+openmp") depends_on("camp+omptarget", when="+omptarget") depends_on("camp+sycl", when="+sycl") - depends_on("camp@2024.07.0:", when="@2024.02.2:") + # TODO(johnbowen42): Remove the following line after the June 2026 RAJA suite release + depends_on("camp@main commit=e75ab64c029aa27c80593715cb2a3ccad7453c8c", when="@develop") + depends_on("camp@2025.12:", when="@2025.12:") + depends_on("camp@2025.09", when="@2025.09") + depends_on("camp@2025.03", when="@2025.03") + depends_on("camp@2024.07", when="@2024.07") depends_on("camp@2024.02.1", when="@2024.02.1") depends_on("camp@2024.02.0", when="@2024.02.0") depends_on("camp@2023.06.0", when="@2023.06.0:2023.06.1") @@ -254,7 +296,8 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("camp@0.2.2:0.2.3", when="@0.14.0") depends_on("camp@0.1.0", when="@0.10.0:0.13.0") - depends_on("cmake@3.23:", when="@2024.07.0:", type="build") + depends_on("cmake@3.24:", when="@2025.09.0:", type="build") + depends_on("cmake@3.23:", when="@2024.07.0:2025.03.2", type="build") depends_on("cmake@3.23:", when="@2022.10.0:2024.02.2+rocm", type="build") depends_on("cmake@3.20:", when="@2022.10.0:2024.02.2", type="build") depends_on("cmake@3.20:", when="@:2022.03+rocm", type="build") @@ -262,6 +305,8 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("llvm-openmp", when="+openmp %apple-clang") + depends_on("caliper", when="+caliper") + depends_on("rocprim", when="+rocm") with when("+rocm @0.12.0:"): depends_on("camp+rocm") @@ -290,6 +335,9 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage): "please use a newer release.", ) + # https://github.com/spack/spack-packages/pull/2059#issuecomment-3443184517 + conflicts("^cuda@13:", when="+cuda") + def _get_sys_type(self, spec): sys_type = spec.architecture if "SYS_TYPE" in env: @@ -338,10 +386,59 @@ def initconfig_hardware_entries(self): entries.append(cmake_cache_option("ENABLE_OPENMP", spec.satisfies("+openmp"))) entries.append(cmake_cache_option("ENABLE_CUDA", spec.satisfies("+cuda"))) + if spec.satisfies("+cuda"): + # CUDA configuration from cuda_for_radiuss_projects + cuda_flags = [] + if not spec.satisfies("cuda_arch=none"): + cuda_archs = ";".join(spec.variants["cuda_arch"].value) + entries.append(cmake_cache_string("CMAKE_CUDA_ARCHITECTURES", cuda_archs)) + + # gcc-toolchain support + gcc_toolchain_regex = re.compile(".*gcc-toolchain.*") + using_toolchain = list( + filter(gcc_toolchain_regex.match, spec.compiler_flags["cxxflags"]) + ) + if using_toolchain: + cuda_flags.append("-Xcompiler {}".format(using_toolchain[0])) + + if cuda_flags: + entries.append(cmake_cache_string("CMAKE_CUDA_FLAGS", " ".join(cuda_flags))) + if spec.satisfies("+rocm"): entries.append(cmake_cache_option("ENABLE_HIP", True)) + + # HIP configuration from hip_for_radiuss_projects + rocm_root = spec["llvm-amdgpu"].prefix + gcc_toolchain_regex = re.compile(".*gcc-toolchain.*") + using_toolchain = list( + filter(gcc_toolchain_regex.match, spec.compiler_flags["cxxflags"]) + ) + hip_link_flags = "" + + if using_toolchain: + gcc_prefix = using_toolchain[0] + entries.append( + cmake_cache_string("HIP_CLANG_FLAGS", "--gcc-toolchain={0}".format(gcc_prefix)) + ) + entries.append( + cmake_cache_string( + "CMAKE_EXE_LINKER_FLAGS", + hip_link_flags + " -Wl,-rpath={0}/lib64".format(gcc_prefix), + ) + ) + else: + entries.append( + cmake_cache_string( + "CMAKE_EXE_LINKER_FLAGS", "-Wl,-rpath={0}/llvm/lib/".format(rocm_root) + ) + ) + hipcc_flags = [] - if self.spec.satisfies("@0.14.0:"): + if self.spec.satisfies("^rocprim@7.0"): + hipcc_flags.append("-std=c++17") + if self.spec.satisfies("@2025.09.0:"): + hipcc_flags.append("-std=c++17") + elif self.spec.satisfies("@0.14.0:2025.09.0"): hipcc_flags.append("-std=c++14") entries.append(cmake_cache_string("HIP_HIPCC_FLAGS", " ".join(hipcc_flags))) else: @@ -349,6 +446,10 @@ def initconfig_hardware_entries(self): return entries + @property + def cxx_std(self): + return self.spec.variants.get("cxxstd").value + def initconfig_package_entries(self): spec = self.spec entries = [] @@ -395,16 +496,8 @@ def initconfig_package_entries(self): if spec.satisfies("+lowopttest"): entries.append(cmake_cache_string("CMAKE_CXX_FLAGS_RELEASE", "-O1")) - # C++17 - if spec.satisfies("@2024.07.0:") and spec.satisfies("+sycl"): - entries.append(cmake_cache_string("BLT_CXX_STD", "c++17")) - # C++14 - elif spec.satisfies("@0.14.0:"): - entries.append(cmake_cache_string("BLT_CXX_STD", "c++14")) - - if spec.satisfies("+desul"): - if spec.satisfies("+cuda"): - entries.append(cmake_cache_string("CMAKE_CUDA_STANDARD", "14")) + # C++ standard + entries.append(cmake_cache_string("BLT_CXX_STD", f"c++{self.cxx_std}")) entries.append( cmake_cache_option("RAJA_ENABLE_RUNTIME_PLUGINS", spec.satisfies("+plugins")) diff --git a/repos/spack_repo/builtin/packages/raja_perf/package.py b/repos/spack_repo/builtin/packages/raja_perf/package.py index db4f2dd1f4b..c0c58a71ee6 100644 --- a/repos/spack_repo/builtin/packages/raja_perf/package.py +++ b/repos/spack_repo/builtin/packages/raja_perf/package.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re import socket from spack_repo.builtin.build_systems.cached_cmake import ( @@ -28,67 +29,76 @@ class RajaPerf(CachedCMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") - version("develop", branch="develop", submodules="True") - version("main", branch="main", submodules="True") + version("develop", branch="develop", submodules=True) + version("main", branch="main", submodules=True) + version( + "2025.12.1", + tag="v2025.12.1", + commit="e3c6197dfa8f1c9ac61635c26775c333411bdcd5", + submodules=True, + ) + version( + "2025.12.0", + tag="v2025.12.0", + commit="f2ad263e08db89327ceccaa9a6c1e994b6d24e67", + submodules=True, + ) + version( + "2025.03.0", + tag="v2025.03.0", + commit="b66b9d7a1c6826037fed991492bc3ea1893d86ac", + submodules=True, + ) version( "2024.07.0", tag="v2024.07.0", commit="6e81aa58af244a13755a694bfdc7bc301139a244", - submodules="True", + submodules=True, ) version( "2023.06.0", tag="v2023.06.0", commit="e5b2102f50e4642f53d9c86fb622b398a748974a", - submodules="True", + submodules=True, ) version( "2022.10.0", tag="v2022.10.0", commit="57ee53e402d2ac0a398df39ad1ca85cf1d2be45b", - submodules="True", + submodules=True, ) version( - "0.12.0", - tag="v0.12.0", - commit="388c1d7562e1cb364191cb34c1ff62f3cadf54a0", - submodules="True", + "0.12.0", tag="v0.12.0", commit="388c1d7562e1cb364191cb34c1ff62f3cadf54a0", submodules=True ) version( - "0.11.0", - tag="v0.11.0", - commit="22ac1de533ebd477c781d53962a92478c0a11d43", - submodules="True", + "0.11.0", tag="v0.11.0", commit="22ac1de533ebd477c781d53962a92478c0a11d43", submodules=True ) version( - "0.10.0", - tag="v0.10.0", - commit="6bf725af38da41b1ebd1d29c75ffa5b8e57f7cbf", - submodules="True", + "0.10.0", tag="v0.10.0", commit="6bf725af38da41b1ebd1d29c75ffa5b8e57f7cbf", submodules=True ) version( - "0.9.0", tag="v0.9.0", commit="064dd17dae696c3e440eeb7469fa90341858a636", submodules="True" + "0.9.0", tag="v0.9.0", commit="064dd17dae696c3e440eeb7469fa90341858a636", submodules=True ) version( - "0.8.0", tag="v0.8.0", commit="94c65b2caefec2220f712f34c2a198b682ca7e23", submodules="True" + "0.8.0", tag="v0.8.0", commit="94c65b2caefec2220f712f34c2a198b682ca7e23", submodules=True ) version( - "0.7.0", tag="v0.7.0", commit="a6ef0279d9d240199947d872d8f28bf121f2192c", submodules="True" + "0.7.0", tag="v0.7.0", commit="a6ef0279d9d240199947d872d8f28bf121f2192c", submodules=True ) version( - "0.6.0", tag="v0.6.0", commit="21e476f031bc10bbdb8514425c380553bfb23bdc", submodules="True" + "0.6.0", tag="v0.6.0", commit="21e476f031bc10bbdb8514425c380553bfb23bdc", submodules=True ) version( - "0.5.2", tag="v0.5.2", commit="2da5e27bc648ff5540ffa69bbde67f125e4581d3", submodules="True" + "0.5.2", tag="v0.5.2", commit="2da5e27bc648ff5540ffa69bbde67f125e4581d3", submodules=True ) version( - "0.5.1", tag="v0.5.1", commit="a7b6f63e4fef2d0146932eff409788da51ab0cb3", submodules="True" + "0.5.1", tag="v0.5.1", commit="a7b6f63e4fef2d0146932eff409788da51ab0cb3", submodules=True ) version( - "0.5.0", tag="v0.5.0", commit="888f5ebe69a9b2ae35058cf8fb8d89d91a379bea", submodules="True" + "0.5.0", tag="v0.5.0", commit="888f5ebe69a9b2ae35058cf8fb8d89d91a379bea", submodules=True ) version( - "0.4.0", tag="v0.4.0", commit="a8f669c1ad01d51132a4e3d9d6aa8b2cabc9eff0", submodules="True" + "0.4.0", tag="v0.4.0", commit="a8f669c1ad01d51132a4e3d9d6aa8b2cabc9eff0", submodules=True ) variant("mpi", default=False, description="Enable MPI support") @@ -114,6 +124,8 @@ class RajaPerf(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("cxx", type="build") # generated depends_on("blt") + depends_on("blt@0.7.1:", type="build", when="@2025.12.0:") + depends_on("blt@0.7.0:", type="build", when="@2025.03.0:") depends_on("blt@0.6.2:", type="build", when="@2024.07.0:") depends_on("blt@0.5.3", type="build", when="@2023.06") depends_on("blt@0.5.2:0.5.3", type="build", when="@2022.10") @@ -122,6 +134,7 @@ class RajaPerf(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("blt@0.4.0:", type="build", when="@0.8.0:") depends_on("blt@0.3.0:", type="build", when="@:0.7.0") + depends_on("cmake@3.24:", when="@2025.12.0:", type="build") depends_on("cmake@3.23:", when="@2024.07.0:", type="build") depends_on("cmake@3.23:", when="@0.12.0:2023.06.0 +rocm", type="build") depends_on("cmake@3.20:", when="@0.12.0:2023.06.0", type="build") @@ -223,6 +236,21 @@ def initconfig_hardware_entries(self): entries.append(cmake_cache_option("ENABLE_CUDA", True)) # Shared handling of cuda. + # CUDA configuration from cuda_for_radiuss_projects + cuda_flags = [] + if not spec.satisfies("cuda_arch=none"): + cuda_archs = ";".join(spec.variants["cuda_arch"].value) + entries.append(cmake_cache_string("CMAKE_CUDA_ARCHITECTURES", cuda_archs)) + + gcc_toolchain_regex = re.compile(".*gcc-toolchain.*") + using_toolchain = list( + filter(gcc_toolchain_regex.match, spec.compiler_flags["cxxflags"]) + ) + if using_toolchain: + cuda_flags.append("-Xcompiler {}".format(using_toolchain[0])) + + entries.append(cmake_cache_string("CMAKE_CUDA_FLAGS", " ".join(cuda_flags))) + # Custom options. # We place everything in CMAKE_CUDA_FLAGS_(RELEASE|RELWITHDEBINFO|DEBUG) # which are not set by cuda_for_radiuss_projects @@ -262,6 +290,31 @@ def initconfig_hardware_entries(self): if "+rocm" in spec: entries.append(cmake_cache_option("ENABLE_HIP", True)) + + # HIP configuration from hip_for_radiuss_projects + rocm_root = spec["llvm-amdgpu"].prefix + hip_link_flags = "" + gcc_toolchain_regex = re.compile(".*gcc-toolchain.*") + using_toolchain = list( + filter(gcc_toolchain_regex.match, spec.compiler_flags["cxxflags"]) + ) + if using_toolchain: + gcc_prefix = using_toolchain[0] + entries.append( + cmake_cache_string("HIP_CLANG_FLAGS", "--gcc-toolchain={0}".format(gcc_prefix)) + ) + entries.append( + cmake_cache_string( + "CMAKE_EXE_LINKER_FLAGS", + hip_link_flags + " -Wl,-rpath={0}/lib64".format(gcc_prefix), + ) + ) + else: + entries.append( + cmake_cache_string( + "CMAKE_EXE_LINKER_FLAGS", "-Wl,-rpath={0}/llvm/lib/".format(rocm_root) + ) + ) else: entries.append(cmake_cache_option("ENABLE_HIP", False)) @@ -339,11 +392,13 @@ def initconfig_package_entries(self): entries.append(cmake_cache_option("RAJA_ENABLE_SYCL", spec.satisfies("+sycl"))) # C++17 - if spec.satisfies("@2024.07.0:") and spec.satisfies("+sycl"): + if spec.satisfies("@2025.09.0:") or ( + spec.satisfies("@2024.07.0:") and spec.satisfies("+sycl") + ): entries.append(cmake_cache_string("BLT_CXX_STD", "c++17")) # C++14 # Using RAJA version as threshold on purpose (no 0.14 version of RAJAPerf were released). - elif spec.satisfies("@0.14.0:"): + elif spec.satisfies("@0.14.0:2025.09.0"): entries.append(cmake_cache_string("BLT_CXX_STD", "c++14")) entries.append(cmake_cache_option("ENABLE_BENCHMARKS", "tests=benchmarks" in spec)) diff --git a/repos/spack_repo/builtin/packages/ratel/package.py b/repos/spack_repo/builtin/packages/ratel/package.py index 6d577c53779..78e530ca0c8 100644 --- a/repos/spack_repo/builtin/packages/ratel/package.py +++ b/repos/spack_repo/builtin/packages/ratel/package.py @@ -20,16 +20,23 @@ class Ratel(MakefilePackage, CudaPackage, ROCmPackage): license("BSD-2-Clause") version("develop", branch="main") + version("1.0.0", tag="v1.0.0", commit="abf2d34e77e48bd587fe3888a2a1043072ef4e77") + version("0.4.0", tag="v0.4.0", commit="72274845c5e50455c2d533ad3a9faeac0059e9bb") version("0.3.0", tag="v0.3.0", commit="ca2f3357e10b89fb274626fba104aad30c72774b") version("0.2.1", tag="v0.2.1", commit="043b61696a2407205fdfd898681467d1a7ff59e0") version("0.1.2", tag="v0.1.2", commit="94ad630bf897d231af7a94bf08257f6067258aae") depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated # development version depends_on("libceed@develop", when="@develop") depends_on("petsc@main", when="@develop") # released versions + depends_on("libceed@develop", when="@1.0.0") + depends_on("petsc@3.24.3:3.24", when="@1.0.0") + depends_on("libceed@develop", when="@0.4.0") + depends_on("petsc@3.23.0:3.23", when="@0.4.0") depends_on("libceed@0.12.0:0.12", when="@0.3.0") depends_on("petsc@3.20.0:3.20", when="@0.3.0") depends_on("libceed@0.11.0:0.11", when="@0.2.1") diff --git a/repos/spack_repo/builtin/packages/raxml_ng/package.py b/repos/spack_repo/builtin/packages/raxml_ng/package.py index 5da41246ae2..1bb5b32c97b 100644 --- a/repos/spack_repo/builtin/packages/raxml_ng/package.py +++ b/repos/spack_repo/builtin/packages/raxml_ng/package.py @@ -19,16 +19,24 @@ class RaxmlNg(CMakePackage): (Flouri et al. 2014).""" homepage = "https://github.com/amkozlov/raxml-ng/wiki" - url = "https://github.com/amkozlov/raxml-ng/archive/1.0.1.tar.gz" + url = "https://github.com/amkozlov/raxml-ng/archive/2.0.0.tar.gz" git = "https://github.com/amkozlov/raxml-ng.git" license("AGPL-3.0-only") - version("1.1.0", submodules=True) - version("1.0.2", submodules=True) - version("1.0.1", submodules=True) + version("2.0.1", submodules=True, commit="a7d61b56d2e0e6e263e4686bcbd0017659b37711") + version("2.0.0", submodules=True, commit="e995a54dda83e440ee15e890093c5b2718787043") + version("1.2.2", submodules=True, commit="805318cef87bd5d67064efa299b5d1cf948367fd") + version("1.2.1", submodules=True, commit="af74065fa2e03d4eb3efd83881bd50926d07e234") + version("1.2.0", submodules=True, commit="fd32e7f73c3ee44c526c7555a8d04e84b03bd51c") + version("1.1.0", submodules=True, commit="9b8150852c21fd0caa764752797e17382fc03aa0") + version("1.0.3", submodules=True, commit="55aeb1c38cfda54cfd9a416b30a87f08b15a94e5") + version("1.0.2", submodules=True, commit="411611611793e53c992717d869ca64370f2e4789") + version("1.0.1", submodules=True, commit="abdd9caff709a73928a8fe06f7934cd442b7a50e") + version("1.0.0", submodules=True, commit="308ff5cc88d0785fce1308d5953d7b6a644e8cf8") variant("mpi", default=True, description="Use MPI") + variant("vcf", default=True, description="Enable VCF Support", when="@2.0:") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -37,6 +45,10 @@ class RaxmlNg(CMakePackage): depends_on("flex") depends_on("gmp") depends_on("mpi", when="+mpi") + depends_on("htslib ~libcurl", when="+vcf") def cmake_args(self): - return [self.define_from_variant("USE_MPI", "mpi")] + return [ + self.define_from_variant("USE_MPI", "mpi"), + self.define_from_variant("USE_VCF", "vcf"), + ] diff --git a/repos/spack_repo/builtin/packages/ray/package.py b/repos/spack_repo/builtin/packages/ray/package.py index 92034496681..4f86d21ca3a 100644 --- a/repos/spack_repo/builtin/packages/ray/package.py +++ b/repos/spack_repo/builtin/packages/ray/package.py @@ -18,6 +18,7 @@ class Ray(CMakePackage, SourceforgePackage): version("2.3.1", sha256="3122edcdf97272af3014f959eab9a0f0e5a02c8ffc897d842b06b06ccd748036") + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("mpi") diff --git a/repos/spack_repo/builtin/packages/rccl/0003-Fix-numactl-rocm-smi-path-issue.patch b/repos/spack_repo/builtin/packages/rccl/0003-Fix-numactl-rocm-smi-path-issue.patch deleted file mode 100644 index 9e1b26a10f5..00000000000 --- a/repos/spack_repo/builtin/packages/rccl/0003-Fix-numactl-rocm-smi-path-issue.patch +++ /dev/null @@ -1,27 +0,0 @@ -From d929b8a0c4fcaaf2ce37cff335b89455db043780 Mon Sep 17 00:00:00 2001 -From: Renjith Ravindran -Date: Fri, 19 May 2023 22:36:11 +0000 -Subject: [PATCH] Updating with hsa include path in CMakeList - ---- - CMakeLists.txt | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9c139ef..f53cedf 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -134,6 +134,10 @@ include_directories(${PROJECT_BINARY_DIR}/src/include) # for hipified header fil - include_directories(src) - include_directories(src/collectives) - include_directories(src/collectives/device) -+include_directories(${NUMACTL_DIR}/include) -+include_directories(${HSA_INCLUDE_PATH}) -+link_directories(${NUMACTL_DIR}/lib) -+ - - if (BUILD_ALLREDUCE_ONLY) - add_definitions(-DBUILD_ALLREDUCE_ONLY) --- -2.17.1 - diff --git a/repos/spack_repo/builtin/packages/rccl/0005-Add-rocm-core-roctracer-path.patch b/repos/spack_repo/builtin/packages/rccl/0005-Add-rocm-core-roctracer-path.patch new file mode 100644 index 00000000000..3a7da57a2b4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/rccl/0005-Add-rocm-core-roctracer-path.patch @@ -0,0 +1,35 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 379cf70..1ca0b2e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -368,6 +368,7 @@ endif() + # Check for ROCTX + if(ROCTX) + find_library(ROCTX_LIB NAMES roctx64) ++ find_path(ROCTRACER_INCLUDE_DIR "roctracer/roctx.h") + if(ROCTX_LIB) + set(ROCTX_ENABLE ON) + message(STATUS "ROCTX library found: ${ROCTX_LIB}") +@@ -786,9 +787,13 @@ target_include_directories(rccl PRIVATE ${HIPIFY_DIR}/src/device/network/unpack) + target_include_directories(rccl PRIVATE ${HIPIFY_DIR}/gensrc) + target_include_directories(rccl PRIVATE ${HSA_INCLUDE_PATH}) + target_include_directories(rccl PRIVATE ${ROCM_SMI_INCLUDE_DIR}) ++target_include_directories(rccl PRIVATE $ENV{ROCMCORE_PATH}/include) + if(DEMANGLE_DIR) + target_include_directories(rccl PRIVATE ${DEMANGLE_DIR}) + endif() ++if(ROCTX_ENABLE) ++ target_include_directories(rccl PRIVATE ${ROCTRACER_INCLUDE_DIR}) ++endif() + + ## Set RCCL compile definitions + if(COLLTRACE) +@@ -1090,7 +1095,7 @@ if (HAVE_BFD) + endif() + endif() + if (ROCTX_ENABLE) +- target_link_libraries(rccl PRIVATE -lroctx64) ++ target_link_libraries(rccl PRIVATE ${ROCTX_LIB}) + endif() + target_link_libraries(rccl PRIVATE -fgpu-rdc) # Required when linking relocatable device code + target_link_libraries(rccl PRIVATE Threads::Threads) diff --git a/repos/spack_repo/builtin/packages/rccl/memory-3231.patch b/repos/spack_repo/builtin/packages/rccl/memory-3231.patch new file mode 100644 index 00000000000..007f075b910 --- /dev/null +++ b/repos/spack_repo/builtin/packages/rccl/memory-3231.patch @@ -0,0 +1,45 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index cb5d34e1caf..86b97a29c93 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1364,24 +1364,35 @@ execute_process( + COMMAND bash "-c" "cat /sys/fs/cgroup/memory.max" + OUTPUT_VARIABLE memory_max_string) + if (${memory_max_string} MATCHES "^[0-9]+") +- math(EXPR memory_in_gb "${memory_max_string} / (1024 * 1024 * 1024)") ++ math(EXPR detected_memory_gb "${memory_max_string} / (1024 * 1024 * 1024)") + else() + execute_process( + COMMAND bash "-c" "free | grep -o '[[:digit:]]*' | head -1" + OUTPUT_VARIABLE memory_max_string) + ## memory_max_string holds the free memory in KB + if (${memory_max_string} MATCHES "^[0-9]+") +- math(EXPR memory_in_gb "${memory_max_string} / (1024 * 1024)") ## KB to GB conversion ++ math(EXPR detected_memory_gb "${memory_max_string} / (1024 * 1024)") ## KB to GB conversion + else() + cmake_host_system_information(RESULT memory_max_string QUERY AVAILABLE_PHYSICAL_MEMORY ) +- math(EXPR memory_in_gb "${memory_max_string} / 1024") ++ math(EXPR detected_memory_gb "${memory_max_string} / 1024") + endif() + endif() +-## Reserve 16GB for each linker job. Limit max number of linker jobs to 16 ++set(RCCL_MAX_MEMORY ${detected_memory_gb} CACHE STRING "Maximum memory (in GB) during linking") ++set(RCCL_MEMORY_PER_LINK_JOB 32 CACHE STRING "Memory (in GB) reserved for each linker job") ++ ++# Use the minimum of detected memory and user-specified memory ++if (RCCL_MAX_MEMORY LESS detected_memory_gb) ++ set(memory_in_gb ${RCCL_MAX_MEMORY}) ++else() ++ set(memory_in_gb ${detected_memory_gb}) ++endif() ++ + if (HAVE_PARALLEL_JOBS) +- math(EXPR num_linker_jobs "(${memory_in_gb} + 15) / 16") ++ math(EXPR num_linker_jobs "(${memory_in_gb} + ${RCCL_MEMORY_PER_LINK_JOB} - 1) / ${RCCL_MEMORY_PER_LINK_JOB}") + if (${num_linker_jobs} GREATER_EQUAL "16") + set(num_linker_jobs "16") ++ elseif (${num_linker_jobs} LESS_EQUAL "0") ++ set(num_linker_jobs "1") + endif() + message(STATUS "Use ${num_linker_jobs} jobs for linking") + target_link_options(rccl PRIVATE -parallel-jobs=${num_linker_jobs}) # Use multiple threads to link diff --git a/repos/spack_repo/builtin/packages/rccl/package.py b/repos/spack_repo/builtin/packages/rccl/package.py index 9da2780d2f4..1677b8f06a2 100644 --- a/repos/spack_repo/builtin/packages/rccl/package.py +++ b/repos/spack_repo/builtin/packages/rccl/package.py @@ -18,11 +18,30 @@ class Rccl(CMakePackage): homepage = "https://github.com/ROCm/rccl" git = "https://github.com/ROCm/rccl.git" - url = "https://github.com/ROCm/rccl/archive/rocm-6.4.1.tar.gz" + url = "https://github.com/ROCm/rccl/archive/rocm-6.4.3.tar.gz" tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") libraries = ["librccl"] + version("7.2.3", sha256="0cb83b3a0552d8b38b05c182753c68dd15432d99769da6aead889e30f14367d7") + version("7.2.1", sha256="a373bcfe03cf2243a97536860a81940998c36a0b324d9e10830e3cd2c3f8b523") + version("7.2.0", sha256="c884d730711e433b9df88af3cdf003eeeb3df6d98e93a09475f760a2aa017078") + version("7.1.1", sha256="eaa60bcf62feb3198553f2bcf6dcbfdfcecd0fdfabda41f1dae7d3f15fadbd68") + version("7.1.0", sha256="50ba486bc8a466a68bff9d6c9d7b3ebf8de9426906720fa44023b5390602b3b8") + version("7.0.2", sha256="3e4363163f5de772707c8deea349a00744200733693c76a07ac842e55b6ad19e") + version("7.0.0", sha256="b55ecb07e82b130c9ce4fe9c969c2192a18b462f0e87ac70386e01341af6a98f") + version( + "6.4.3", + tag="rocm-6.4.3", + commit="2f7ac66cd64c68d4af8bb4562ce193778a7e470e", + submodules=True, + ) + version( + "6.4.2", + tag="rocm-6.4.2", + commit="2f7ac66cd64c68d4af8bb4562ce193778a7e470e", + submodules=True, + ) version( "6.4.1", tag="rocm-6.4.1", @@ -69,9 +88,6 @@ class Rccl(CMakePackage): version("6.0.0", sha256="0496d5a5f2e48c92cd390ab318df31a53cf7ec590988c2574c9f3d99c38b0fa7") version("5.7.1", sha256="fb4c1f0084196d1226ce8a726d0f012d3890b54508a06ca87bbda619be8b90b1") version("5.7.0", sha256="4c2825a3e4323ef3c2f8855ef445c1a81cf1992fb37e3e8a07a50db354aa3954") - with default_args(deprecated=True): - version("5.6.1", sha256="27ec6b86a1a329684d808f728c1fce134517ac8e6e7047689f95dbf8386c077e") - version("5.6.0", sha256="cce13c8a9e233e7ddf91a67b1626b7aaeaf818fefe61af8de6b6b6ff47cb358c") amdgpu_targets = ROCmPackage.amdgpu_targets @@ -83,20 +99,25 @@ class Rccl(CMakePackage): ) variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") - patch("0003-Fix-numactl-rocm-smi-path-issue.patch", when="@5.6") patch("0004-Set-rocm-core-path-for-version-file.patch", when="@6.0:6.2") patch("0004-Set-rocm-core-path-for-version-file-6.3.patch", when="@6.3") patch("0004-Set-rocm-core-path-for-version-file-6.4.patch", when="@6.4") + patch("0005-Add-rocm-core-roctracer-path.patch", when="@7.0") + patch( + "https://github.com/ROCm/rccl/commit/724680f87c8cfa1c4ffc8bfb5468fcc03e6606d9.patch?full_index=1", + sha256="a747b2f76acf938860b4319cafb90426506d5b931ca776d094fd0eb9580ef785", + when="@7.1", + ) + # See https://github.com/ROCm/rocm-systems/pull/3231 + patch("memory-3231.patch", when="@7.1:") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("cmake@3.5:", type="build") depends_on("numactl@2:") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -113,6 +134,15 @@ class Rccl(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") depends_on(f"hip@{ver}", when=f"@{ver}") @@ -121,7 +151,19 @@ class Rccl(CMakePackage): depends_on(f"rocm-smi-lib@{ver}", when=f"@{ver}") depends_on(f"rocm-core@{ver}", when=f"@{ver}") - for ver in ["6.4.0", "6.4.1"]: + for ver in [ + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"roctracer-dev@{ver}", when=f"@{ver}") depends_on(f"rocprofiler-register@{ver}", when=f"@{ver}") @@ -153,15 +195,28 @@ def cmake_args(self): self.define("ROCM_SMI_DIR", self.spec["rocm-smi-lib"].prefix), self.define("ROCM_PATH", self.spec["hip"].prefix), self.define("BUILD_TESTS", self.run_tests), + self.define("ENABLE_MSCCLPP", False), + self.define("ENABLE_MSCCL_KERNEL", False), + # Anecdotally, memory usage is about ~8GB per job per GPU arch. The value could be + # computed from amd_gpu_targets, except in the case of auto. Leave constant for now. + self.define("RCCL_MAX_MEMORY", "32"), + self.define("RCCL_MEMORY_PER_LINK_JOB", "8"), ] if "auto" not in self.spec.variants["amdgpu_target"]: - args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) + if self.spec.satisfies("@7.1:"): + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) + else: + args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) if self.spec.satisfies("^cmake@3.21.0:3.21.2"): args.append(self.define("__skip_rocmclang", True)) + if self.spec.satisfies("@7.0"): + args.append(self.define("EXPLICIT_ROCM_VERSION", self.version)) + if self.spec.satisfies("@7.1:"): + args.append(self.define("ROCMCORE_PATH", self.spec["rocm-core"].prefix)) return args def test_unit(self): """Run unit tests""" - unit_tests = which(join_path(self.prefix.bin, "rccl-UnitTests")) + unit_tests = which(join_path(self.prefix.bin, "rccl-UnitTests"), required=True) unit_tests() diff --git a/repos/spack_repo/builtin/packages/rccl_tests/package.py b/repos/spack_repo/builtin/packages/rccl_tests/package.py index eb1f3395382..5006e68ae8e 100644 --- a/repos/spack_repo/builtin/packages/rccl_tests/package.py +++ b/repos/spack_repo/builtin/packages/rccl_tests/package.py @@ -2,12 +2,12 @@ # # 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.package import * -class RcclTests(MakefilePackage): +class RcclTests(CMakePackage): """These tests check both the performance and the correctness of RCCL operations. They can be compiled against RCCL.""" @@ -25,21 +25,17 @@ class RcclTests(MakefilePackage): variant("mpi", default=True, description="with MPI support") - depends_on("cxx", type="build") # generated + depends_on("cxx", type="build") + requires("%cxx=llvm-amdgpu", msg="rccl-tests builds only with llvm-amdgpu") depends_on("hip") depends_on("rccl") depends_on("mpi", when="+mpi") - def build_targets(self): - targets = [] - targets.append("HIP_HOME={0}".format(self.spec["hip"].prefix)) - targets.append("RCCL_HOME={0}".format(self.spec["rccl"].prefix)) - if "+mpi" in self.spec: - targets.append("MPI_HOME={0}".format(self.spec["mpi"].prefix)) - targets.append("MPI=1") - return targets - - def install(self, spec, prefix): - mkdirp(prefix.bin) - install_tree("./build", prefix.bin) + def cmake_args(self): + return [ + self.define("EXPLICIT_ROCM_VERSION", self.spec["hip"].version), + self.define("ROCM_PATH", self.spec["hip"].prefix), + self.define("RCCL_ROOT", self.spec["rccl"].prefix), + self.define_from_variant("USE_MPI", "mpi"), + ] diff --git a/repos/spack_repo/builtin/packages/rclone/package.py b/repos/spack_repo/builtin/packages/rclone/package.py index 696402d838c..9ef4082852f 100644 --- a/repos/spack_repo/builtin/packages/rclone/package.py +++ b/repos/spack_repo/builtin/packages/rclone/package.py @@ -18,6 +18,8 @@ class Rclone(GoPackage): license("MIT") + version("1.73.5", sha256="19c929ce2f54bd22af2db4dd9d2a289499b02274f9f7d3c6639090761adfab1f") + version("1.73.3", sha256="608dde134e02a429b95ae566d638e514a9a658d0d69c35812069cf1c1b8f24af") version("1.70.2", sha256="982b1f09239855e7e55fb6a3b6a8146fe2ef93c8ba6e015a9c5d6ada5297ea30") version("1.70.0", sha256="d151d9b969dc0e000e3019c82599f53252b63fe1e63fad3c7031b718af0d0e88") version("1.69.3", sha256="febfd634e4eeb2e81506673debaf9af996a390dd79f215b605ac93f3d68d2b93") @@ -48,6 +50,7 @@ class Rclone(GoPackage): version("1.55.1", sha256="25da7fc5c9269b3897f27b0d946919df595c6dda1b127085fda0fe32aa59d29d") version("1.55.0", sha256="75accdaedad3b82edc185dc8824a19a59c30dc6392de7074b6cd98d1dc2c9040") + depends_on("go@1.25:", type="build", when="@1.73.3:") depends_on("go@1.23:", type="build", when="@1.69.2:") depends_on("go@1.21:", type="build", when="@1.68:") depends_on("go@1.20:", type="build", when="@1.66:") @@ -56,6 +59,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/rdc/package.py b/repos/spack_repo/builtin/packages/rdc/package.py index 1ade15c72f7..6b854e56a39 100644 --- a/repos/spack_repo/builtin/packages/rdc/package.py +++ b/repos/spack_repo/builtin/packages/rdc/package.py @@ -14,20 +14,29 @@ class Rdc(CMakePackage): """ROCm Data Center Tool""" homepage = "https://github.com/ROCm/rdc" - url = "https://github.com/ROCm/rdc/archive/rocm-6.1.2.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-systems.git" + tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") libraries = ["librdc"] + license("MIT") def url_for_version(self, version): - if version == Version("3.9.0"): - return "https://github.com/ROCm/rdc/archive/rdc_so_ver-0.3.tar.gz" - - url = "https://github.com/ROCm/rdc/archive/rocm-{0}.tar.gz" + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/rdc/archive/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-systems/archive/rocm-{0}.tar.gz" return url.format(version) - license("MIT") + version("7.2.3", sha256="e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b") + version("7.2.1", sha256="201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f") + version("7.2.0", sha256="728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638") + version("7.1.1", sha256="d16c63fe6609d82d0fcd65e9953f60318d015275b8752d052a6ae20cd634c3e1") + version("7.1.0", sha256="a77b6ad33dc41917f6b0ed2a26085b96fc7222cf507adb9b90d2eb7976fae5a5") + version("7.0.2", sha256="1184ef89435063a1d63d6c2d8b6d4f99bb6d5f4d65c241c405b6e550fe285a08") + version("7.0.0", sha256="2045ed1c57019edc6dd468f7dc092426e4587a413da6ecbff5ccdf45f9a19a0f") + version("6.4.3", sha256="1a4ba522b780375c8a8b24ceba34d5021d2255dc09fa7f841ae0249eeb96dea1") + version("6.4.2", sha256="56dcbdf3a0b4e330d7952e790cd6e7bca5fde351189d2f99026c1e4c8ac2fc63") version("6.4.1", sha256="8b6d58c6ce30497a9d6b465057a8a39be9e9e4603b75a52b5004335f12310024") version("6.4.0", sha256="2ee3def1e90784923f2043220974d30fe9581ec0d54c93628911ed8292fc56c4") version("6.3.3", sha256="9be314ea8d7e7af58ac4a24f5720f54d51ba553d3e1751bc9cfc4bff98494fab") @@ -44,25 +53,21 @@ def url_for_version(self, version): version("6.0.0", sha256="5e3847a919d5f7efe99d8d76c96e78401659eccd1fb234b1b8cb4304096d6e89") version("5.7.1", sha256="5251eb3085f2019246b332e9552dfae1572cf64ddf58306b81cbe7108019ffee") version("5.7.0", sha256="924e94f14f6390d7a6ff7863fb4e2085c1ff5f9c12b8bd46471eb31f001c4f14") - with default_args(deprecated=True): - version("5.6.1", sha256="9e9f57cebbc5ae386a405957ed2c17344cdb42db5e1a71285f2c9bc09eea6519") - version("5.6.0", sha256="5213cd89215463862f6a1e9480ebe017944a6bb6b0db1722628afaa34af57991") depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("cmake@3.15:", type="build") - depends_on("grpc@1.55.0+shared", when="@5.6.0:6.0") + depends_on("grpc@1.55.0+shared", when="@:6.0") depends_on("grpc@1.59.1+shared", when="@6.1") - depends_on("grpc@1.61.2+shared", when="@6.2:") + depends_on("grpc@1.61.2+shared", when="@6.2:6.4") + depends_on("grpc@1.67.1 cxxstd=17 +shared", when="@7.0:") depends_on("protobuf") depends_on("libcap") - for ver in ["5.6.0", "5.6.1", "5.7.0", "5.7.1", "6.0.0", "6.0.2", "6.1.0", "6.1.1", "6.1.2"]: + for ver in ["5.7.0", "5.7.1", "6.0.0", "6.0.2", "6.1.0", "6.1.1", "6.1.2"]: depends_on(f"rocm-smi-lib@{ver}", type=("build", "link"), when=f"@{ver}") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -79,24 +84,66 @@ def url_for_version(self, version): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocm-core@{ver}", when=f"@{ver}") depends_on(f"hsa-rocr-dev@{ver}", when=f"@{ver}") - for ver in ["6.2.0", "6.2.1", "6.2.4", "6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: + for ver in [ + "6.2.0", + "6.2.1", + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"amdsmi@{ver}", when=f"@{ver}") - for ver in ["6.4.0", "6.4.1"]: + for ver in [ + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"rocm-validation-suite@{ver}", when=f"@{ver}") def patch(self): - filter_file(r"\${ROCM_DIR}/rocm_smi", "${ROCM_SMI_DIR}", "CMakeLists.txt") - filter_file( - r"${GRPC_ROOT}/bin/protoc", - "{0}/bin/protoc".format(self.spec["protobuf"].prefix), - "CMakeLists.txt", - string=True, - ) + if self.spec.satisfies("@:6.1"): + filter_file(r"\${ROCM_DIR}/rocm_smi", "${ROCM_SMI_DIR}", "CMakeLists.txt") + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@:7.1"): + return "." + else: + return "projects/rdc" @classmethod def determine_version(cls, lib): @@ -108,8 +155,11 @@ def determine_version(cls, lib): return None def cmake_args(self): - return [ - self.define("GRPC_ROOT", self.spec["grpc"].prefix), - self.define("CMAKE_MODULE_PATH", f"{self.stage.source_path}/cmake_modules"), - self.define("ROCM_SMI_DIR", self.spec["rocm-smi-lib"].prefix), - ] + args = [self.define("GRPC_ROOT", self.spec["grpc"].prefix)] + if self.spec.satisfies("@:6.1"): + args.append(self.define("ROCM_SMI_DIR", self.spec["rocm-smi-lib"].prefix)) + if self.spec.satisfies("@:7.1"): + args.append( + self.define("CMAKE_MODULE_PATH", f"{self.stage.source_path}/cmake_modules") + ) + return args diff --git a/repos/spack_repo/builtin/packages/rdkit/package.py b/repos/spack_repo/builtin/packages/rdkit/package.py index 95f91800ae0..9b739652cdd 100644 --- a/repos/spack_repo/builtin/packages/rdkit/package.py +++ b/repos/spack_repo/builtin/packages/rdkit/package.py @@ -19,6 +19,8 @@ class Rdkit(CMakePackage): license("BSD-3-Clause") + version("2024_09_6", sha256="337075aadd51760fe920442c73972c2fef2561645785fac246615fcb03914062") + version("2024_09_5", sha256="ee55cf72d211c880b8f63e18fca6d9abce2b060987b7d2ce61d2d3b9527003c2") version("2024_03_3", sha256="52f79c6bf1d446cdb5c86a35de655d96bad0c52a5f4ecbe15f08eaf334e6f76a") version("2023_03_1", sha256="db346afbd0ba52c843926a2a62f8a38c7b774ffab37eaf382d789a824f21996c") version("2022_09_5", sha256="2efe7ce3b527df529ed3e355e2aaaf14623e51876be460fa4ad2b7f7ad54c9b1") @@ -82,6 +84,10 @@ class Rdkit(CMakePackage): conflicts("+xyz2mol", when="~yaehmop", msg="XY2MOL requires YAeHMOP") + depends_on( + "boost@1.53.0: +python +serialization +iostreams +system +numpy +program_options", + when="@2024_09_5:", + ) depends_on("boost@1.53.0: +python +serialization +iostreams +system") depends_on("sqlite") depends_on("freetype", when="@2020_09_1: +freetype") diff --git a/repos/spack_repo/builtin/packages/rdma_core/package.py b/repos/spack_repo/builtin/packages/rdma_core/package.py index fafbd99bf28..876859893a4 100644 --- a/repos/spack_repo/builtin/packages/rdma_core/package.py +++ b/repos/spack_repo/builtin/packages/rdma_core/package.py @@ -19,6 +19,12 @@ class RdmaCore(CMakePackage): license("GPL-2.0-only OR BSD-2-Clause") + version("60.1", sha256="3c83b75d952e96461338ed6320360580660ff897c62c773bc52c36c481ed8304") + version("59.1", sha256="4491a89a721f016fac54bbfdead68cef60f1f18f5711a6844a9e2c804cd4cad6") + version("59.0", sha256="e2c169b13b318cdc3b5ff957cd8b6dcc8bdf96dd9c5d42324129c163bb057ce5") + version("58.1", sha256="b3be2cfa89fa0a0f0af8bf25efb9ba53fc0823f05a8d4262434a93823e6a8d91") + version("58.0", sha256="88d67897b793f42d2004eec2629ab8464e425e058f22afabd29faac0a2f54ce4") + version("57.1", sha256="34ae4e915c8869f42e12896fbf033f9e8d3e7eaa30436c0d011b34ca919f2fbd") version("57.0", sha256="5f94c463c931e4a9273f366ca7cb446b54d8bd4732288ade04679886be06862d") version("56.1", sha256="63ce7f2baa7242c2dbc76375dac957c420187dd27f8c5e148efc07971ee522a8") version("55.1", sha256="4257c3210f5f4753682294d1920e797abdeb91e783ed8e86085de1f946eb0e43") @@ -79,6 +85,16 @@ class RdmaCore(CMakePackage): patch("libdrm.patch", when="@34:52") + def patch(self): + if self.spec.satisfies("+pyverbs"): + # avoid exceeding shebang length limit during build (in particular in CI) + filter_file( + r"#!${PYTHON_EXECUTABLE}", + "#!/usr/bin/env python", + "buildlib/Findcython.cmake", + string=True, + ) + variant( "static", default=True, @@ -87,7 +103,12 @@ class RdmaCore(CMakePackage): variant("pyverbs", default=True, description="Build with support for pyverbs") variant("man_pages", default=True, description="Build with support for man pages") - depends_on("c", type="build") # generated + depends_on("c", type="build") + + with when("+pyverbs"): + extends("python") + depends_on("python", type="build") + depends_on("py-cython@:3.1", type="build") depends_on("pkgconfig", type="build") depends_on("py-docutils", when="+man_pages", type="build") @@ -117,8 +138,11 @@ def cmake_args(self): cmake_args.append(self.define_from_variant("ENABLE_STATIC", "static")) - if self.spec.satisfies("~pyverbs"): + if self.spec.satisfies("+pyverbs"): + cmake_args.append(self.define("CMAKE_INSTALL_PYTHON_ARCH_LIB", python_platlib)) + else: cmake_args.append("-DNO_PYVERBS=1") + if self.spec.satisfies("~man_pages"): cmake_args.append("-DNO_MAN_PAGES=1") diff --git a/repos/spack_repo/builtin/packages/re2/package.py b/repos/spack_repo/builtin/packages/re2/package.py index d79c9470097..b5a5889123f 100644 --- a/repos/spack_repo/builtin/packages/re2/package.py +++ b/repos/spack_repo/builtin/packages/re2/package.py @@ -84,3 +84,17 @@ def cmake_args(self): if abseil: args.append(self.define("CMAKE_CXX_STANDARD", abseil[0].variants["cxxstd"].value)) return args + + +def patch(self): + # GCC 13+ and Clang 15+ removed many implicit header includes (like ). + # We only apply this if the header doesn't already exist to avoid conflicts. + if self.spec.satisfies("%gcc@13:") or self.spec.satisfies("%clang@15:"): + # Check if the fix is already there (for future-proofing) + prog_h = join_path(self.stage.source_path, "re2/prog.h") + if not any("" in line for line in open(prog_h)): + filter_file( + r'#include "re2/sparse_set.h"', + '#include "re2/sparse_set.h"\n#include ', + "re2/prog.h", + ) diff --git a/repos/spack_repo/builtin/packages/re2c/package.py b/repos/spack_repo/builtin/packages/re2c/package.py index 4bbbfd353a8..f1fb284d09b 100644 --- a/repos/spack_repo/builtin/packages/re2c/package.py +++ b/repos/spack_repo/builtin/packages/re2c/package.py @@ -17,25 +17,18 @@ class Re2c(AutotoolsPackage, CMakePackage): license("Public-Domain") + version("4.4", sha256="6b6b865924447ef992d5db4e52fb9307e5f65f26edd43efa91395da810f4280a") version("3.1", sha256="0ac299ad359e3f512b06a99397d025cfff81d3be34464ded0656f8a96676c029") version("3.0", sha256="b3babbbb1461e13fe22c630a40c43885efcfbbbb585830c6f4c0d791cf82ba0b") version("2.2", sha256="0fc45e4130a8a555d68e230d1795de0216dfe99096b61b28e67c86dfd7d86bda") version("2.1.1", sha256="036ee264fafd5423141ebd628890775aa9447a4c4068a6307385d7366fe711f8") version("2.1", sha256="8cba0d95c246c670de8f97f57def83a9c0f2113eaa6f7e4867a941f48f633540") - with default_args(deprecated=True): - version("2.0.3", sha256="b2bc1eb8aaaa21ff2fcd26507b7e6e72c5e3d887e58aa515c2155fb17d744278") - version("2.0.2", sha256="6cddbb558dbfd697a729cb4fd3f095524480283b89911ca5221835d8a67ae5e0") - version("2.0.1", sha256="aef8b50bb75905b2d55a7236380c0efdc756fa077fe16d808aaacbb10fb53531") - version("2.0", sha256="89a9d7ee14be10e3779ea7b2c8ea4a964afce6e76b8dbcd5479940681db46d20") - version("1.3", sha256="f37f25ff760e90088e7d03d1232002c2c2672646d5844fdf8e0d51a5cd75a503") - version("1.2.1", sha256="1a4cd706b5b966aeffd78e3cf8b24239470ded30551e813610f9cd1a4e01b817") - build_system(conditional("cmake", when="@2.2:"), "autotools", default="autotools") depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("python@3.7:", when="@3.1", type="build") + depends_on("python@3.7:", when="@3.1:", type="build") with when("build_system=cmake"): depends_on("cmake@3.12:", type="build") diff --git a/repos/spack_repo/builtin/packages/readline/package.py b/repos/spack_repo/builtin/packages/readline/package.py index 1e1517ccc3c..e7c8309b586 100644 --- a/repos/spack_repo/builtin/packages/readline/package.py +++ b/repos/spack_repo/builtin/packages/readline/package.py @@ -22,6 +22,7 @@ class Readline(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") + version("8.3", sha256="fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc") version("8.2", sha256="3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35") version("8.1", sha256="f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02") version("8.0", sha256="e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461") @@ -34,6 +35,7 @@ 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.2", "001", "bbf97f1ec40a929edab5aa81998c1e2ef435436c597754916e6a5868f273aff7"), ("8.2", "002", "e06503822c62f7bc0d9f387d4c78c09e0ce56e53872011363c74786c7cd4c053"), ("8.2", "003", "24f587ba46b46ed2b1868ccaf9947504feba154bb8faabd4adaea63ef7e6acb0"), @@ -75,6 +77,13 @@ class Readline(AutotoolsPackage, GNUMirrorPackage): sha256=checksum, ) + def configure_args(self): + # The wcwidth_broken test is a runtime check that requires an installed en_US.UTF-8 locale. + # In minimal environments that's lacking, resulting in a false positive, leading to + # non-deterministic builds. The test was meant to work around bugs in ancient libc and is + # no longer relevant. + return ["bash_cv_wcwidth_broken=no"] + def build(self, spec, prefix): make("SHLIB_LIBS=" + spec["ncurses:wide"].libs.ld_flags) diff --git a/repos/spack_repo/builtin/packages/realm/package.py b/repos/spack_repo/builtin/packages/realm/package.py new file mode 100644 index 00000000000..12db4850fbf --- /dev/null +++ b/repos/spack_repo/builtin/packages/realm/package.py @@ -0,0 +1,225 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage + +from spack.package import * + + +class Realm(CMakePackage, CudaPackage, ROCmPackage): + """Realm is a distributed, event–based tasking runtime for building + high-performance applications that span clusters of CPUs, GPUs, and other + accelerators. It began life as the low-level substrate underneath the Legion + programming system but is now maintained as a standalone project for developers + who want direct, fine-grained control of parallel and heterogeneous + machines.""" + + homepage = "https://legion.stanford.edu/realm/" + git = "https://github.com/StanfordLegion/realm.git" + + license("Apache-2.0") + + maintainers("elliottslaughter", "rbberger") + + version("main", branch="main") + + # unreleased versions, bundled with legion + version("26.03.0-legion", commit="77e872a5a9cafa9bb2fe6ae784c01d45ad691d5f") + version("25.09.0-legion", commit="7ef8789fc0a40abf6774152d4061420cff2e307f") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cmake@3.22:", type="build") + + # TODO: Need to spec version of MPI v3 for use of the low-level MPI transport + # layer. At present the MPI layer is still experimental and we discourge its + # use for general (not legion development) use cases. + depends_on("mpi", when="network=mpi") + depends_on("gasnet", when="network=gasnet") + depends_on("ucx", when="network=ucx") + depends_on("ucc", when="network=ucx") + depends_on("ucc+cuda+nccl", when="network=ucx +cuda") + depends_on("ucc+rocm+rccl", when="network=ucx +rocm") + depends_on("hdf5", when="+hdf5") + depends_on("hwloc", when="+hwloc") + + # Propagate CUDA architectures + for arch in CudaPackage.cuda_arch_values: + depends_on(f"ucc cuda_arch={arch}", when=f"network=ucx +cuda cuda_arch={arch}") + depends_on(f"gasnet +cuda cuda_arch={arch}", when=f"network=gasnet +cuda cuda_arch={arch}") + depends_on( + f"kokkos+cuda+cuda_lambda cuda_arch={arch}", when=f"+kokkos+cuda cuda_arch={arch}" + ) + + for arch in ROCmPackage.amdgpu_targets: + depends_on(f"ucc amdgpu_target={arch}", when=f"network=ucx +rocm amdgpu_target={arch}") + depends_on( + f"gasnet +rocm amdgpu_target={arch}", when=f"network=gasnet +rocm amdgpu_target={arch}" + ) + depends_on(f"kokkos+rocm amdgpu_target={arch}", when=f"+kokkos+rocm amdgpu_target={arch}") + + depends_on("kokkos@4:", when="+kokkos") + depends_on("kokkos+openmp", when="+kokkos+openmp") + depends_on("kokkos~openmp", when="+kokkos~openmp") + + # force same compiler as kokkos if static build + depends_on("kokkos %gcc", when="+kokkos~shared %gcc") + depends_on("kokkos %clang", when="+kokkos~shared %clang") + + depends_on("python@3.8:", when="+python") + + depends_on("papi", when="+papi") + + # A C++ standard variant to work-around some odd behaviors with apple-clang + # but this might be helpful for other use cases down the road. Realm's + # current development policy is C++17 or greater so we capture that aspect + # here. + cpp_stds = ("17", "20") + variant("cxxstd", default="17", description="C++ standard", values=cpp_stds, multi=False) + + # Network transport layer: the underlying data transport API should be used for + # distributed data movement. For Realm, GASNet and UCX are the most + # mature. We have many users that default to using no network layer for + # day-to-day development thus we default to 'none'. MPI support is new and + # should be considered as a beta release. + variant( + "network", + default="none", + values=("gasnet", "mpi", "ucx", "none"), + description="The network communications/transport layer to use.", + multi=False, + ) + + with when("network=gasnet"): + variant( + "conduit", + default="smp", + values=("smp", "aries", "ibv", "udp", "mpi", "ucx", "ofi-slingshot11"), + description="The GASNet conduit(s) to enable.", + sticky=True, + multi=False, + ) + + with when("network=ucx"): + variant( + "ucx_backends", + default="p2p", + values=("p2p", "mpi"), + description="UCX Bootstraps to build and install", + multi=True, + ) + requires("ucx_backends=p2p", msg="p2p backend is always enabled") + + variant("shared", default=False, description="Build shared libraries.") + + variant( + "log_level", + default="warning", + # Note: these values are dependent upon those used in the cmake config. + values=("spew", "debug", "info", "print", "warning", "error", "fatal", "none"), + description="Set the compile-time logging level.", + multi=False, + ) + + with when("+cuda"): + variant( + "cuda_dynamic_load", + default=False, + description="Enable dynamic loading of CUDA libraries.", + ) + variant( + "cuda_unsupported_compiler", + default=False, + description="Disable nvcc version check (--allow-unsupported-compiler).", + ) + + variant("hdf5", default=False, description="Enable support for HDF5.") + variant("hwloc", default=False, description="Use hwloc for topology awareness.") + variant( + "kokkos", default=False, description="Enable support for interoperability with Kokkos." + ) + variant( + "libdl", default=True, description="Enable support for dynamic object/library loading." + ) + variant("openmp", default=False, description="Enable support for OpenMP.") + variant("papi", default=False, description="Enable PAPI performance measurements.") + variant("python", default=False, description="Enable Python support.") + requires("+shared", when="+python") + + variant( + "max_dims", + values=int, + default="3", + description="Set max number of dimensions for logical regions.", + ) + + variant( + "sysomp", default=False, description="Use system OpenMP implementation instead of Realm's" + ) + + def cmake_args(self): + spec = self.spec + from_variant = self.define_from_variant + options = [ + self.define("REALM_ENABLE_INSTALL", True), + self.define("REALM_INSTALL", True), # remove once inconsistency is fixed + from_variant("REALM_CXX_STANDARD", "cxxstd"), + from_variant("BUILD_SHARED_LIBS", "shared"), + self.define("REALM_ENABLE_UCX", spec.satisfies("network=ucx")), + self.define("REALM_INSTALL_UCX_BOOTSTRAPS", spec.satisfies("network=ucx")), + self.define( + "UCX_BOOTSTRAP_ENABLE_MPI", spec.satisfies("network=ucx ucx_backends=mpi") + ), + self.define("REALM_ENABLE_GASNETEX", spec.satisfies("network=gasnet")), + self.define("REALM_ENABLE_MPI", spec.satisfies("network=mpi")), + from_variant("REALM_ENABLE_CUDA", "cuda"), + from_variant("REALM_ENABLE_HIP", "rocm"), + from_variant("REALM_ENABLE_HDF5", "hdf5"), + from_variant("REALM_ENABLE_HWLOC", "hwloc"), + from_variant("REALM_ENABLE_KOKKOS", "kokkos"), + from_variant("REALM_ENABLE_LIBDL", "libdl"), + from_variant("REALM_ENABLE_OPENMP", "openmp"), + from_variant("REALM_ENABLE_PAPI", "papi"), + from_variant("REALM_ENABLE_PYTHON", "python"), + from_variant("REALM_CUDA_DYNAMIC_LOAD", "cuda_dynamic_load"), + self.define("REALM_OPENMP_SYSTEM_RUNTIME", spec.satisfies("+openmp +sysomp")), + ] + + options.append(f"-DREALM_LOG_LEVEL={str.upper(spec.variants['log_level'].value)}") + + # for shared libraries, realm_kokkos.so will be self contained. + # however, in the static case we need to use the same compiler/wrapper as kokkos globally. + if self.spec.satisfies("~shared+kokkos ^kokkos+wrapper"): + options.append(self.define("CMAKE_CXX_COMPILER", self["kokkos"].kokkos_cxx)) + elif self.spec.satisfies("~shared+kokkos ^kokkos~cmake_lang+rocm"): + options.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc)) + + if spec.satisfies("+cuda"): + options.append( + self.define("CMAKE_CUDA_COMPILER", join_path(spec["cuda"].prefix.bin, "nvcc")) + ) + if spec.satisfies("+cuda_unsupported_compiler"): + options.append("-DCMAKE_CUDA_FLAGS:STRING=--allow-unsupported-compiler") + + options.append( + self.define("CMAKE_CUDA_ARCHITECTURES", spec.variants["cuda_arch"].value) + ) + if spec.satisfies("+rocm"): + options.append( + self.define( + "CMAKE_HIP_COMPILER", join_path(spec["llvm-amdgpu"].prefix.bin, "amdclang++") + ) + ) + options.append( + self.define("CMAKE_HIP_ARCHITECTURES", spec.variants["amdgpu_target"].value) + ) + + maxdims = int(spec.variants["max_dims"].value) + # TODO: sanity check if maxdims < 0 || > 9??? + options.append(f"-DREALM_MAX_DIM={maxdims}") + + return options diff --git a/repos/spack_repo/builtin/packages/recordproto/package.py b/repos/spack_repo/builtin/packages/recordproto/package.py index f8f60eef706..6497e4dfdca 100644 --- a/repos/spack_repo/builtin/packages/recordproto/package.py +++ b/repos/spack_repo/builtin/packages/recordproto/package.py @@ -19,5 +19,7 @@ class Recordproto(AutotoolsPackage, XorgPackage): version("1.14.2", sha256="485f792570dd7afe49144227f325bf2827bc7d87aae6a8ab6c1de2b06b1c68c5") + depends_on("c", type="build") + depends_on("pkgconfig", type="build") depends_on("util-macros", type="build") diff --git a/repos/spack_repo/builtin/packages/redis/package.py b/repos/spack_repo/builtin/packages/redis/package.py index 07a26653c15..1bacb22dcfb 100644 --- a/repos/spack_repo/builtin/packages/redis/package.py +++ b/repos/spack_repo/builtin/packages/redis/package.py @@ -30,40 +30,6 @@ class Redis(MakefilePackage): license("BSD-3-Clause") version("7.4.0", sha256="57b47c2c6682636d697dbf5d66d8d495b4e653afc9cd32b7adf9da3e433b8aaf") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2023-36824 - version("7.0.5", sha256="67054cc37b58c125df93bd78000261ec0ef4436a26b40f38262c780e56315cc3") - version("7.0.4", sha256="f0e65fda74c44a3dd4fa9d512d4d4d833dd0939c934e946a5c622a630d057f2f") - version("7.0.3", sha256="2cde7d17214ffe305953da9fff12333e8a72caa57fd4923e4872f6362a208e73") - version("7.0.2", sha256="5e57eafe7d4ac5ecb6a7d64d6b61db775616dbf903293b3fcc660716dbda5eeb") - version("7.0.1", sha256="ca1820d527e4759884620be2917079e61e996fa81da5fbe5c07c4a7b507264dc") - version("7.0.0", sha256="284d8bd1fd85d6a55a05ee4e7c31c31977ad56cbf344ed83790beeb148baa720") - # https://nvd.nist.gov/vuln/detail/CVE-2022-24834 - version("6.2.7", sha256="b7a79cc3b46d3c6eb52fa37dde34a4a60824079ebdfb3abfbbfa035947c55319") - version("6.2.6", sha256="5b2b8b7a50111ef395bf1c1d5be11e6e167ac018125055daa8b5c2317ae131ab") - version("6.2.5", sha256="4b9a75709a1b74b3785e20a6c158cab94cf52298aa381eea947a678a60d551ae") - version("6.2.4", sha256="ba32c406a10fc2c09426e2be2787d74ff204eb3a2e496d87cff76a476b6ae16e") - version("6.2.3", sha256="98ed7d532b5e9671f5df0825bb71f0f37483a16546364049384c63db8764512b") - version("6.2.2", sha256="7a260bb74860f1b88c3d5942bf8ba60ca59f121c6dce42d3017bed6add0b9535") - version("6.2.1", sha256="cd222505012cce20b25682fca931ec93bd21ae92cb4abfe742cf7b76aa907520") - version("6.2.0", sha256="67d624c25d962bd68aff8812a135df85bad07556b8825f3bcd5b522a9932dbca") - version( - "6.0.15", sha256="4bc295264a95bc94423c162a9eee66135a24a51eefe5f53f18fc9bde5c3a9f74" - ) - version("6.0.5", sha256="42cf86a114d2a451b898fcda96acd4d01062a7dbaaad2801d9164a36f898f596") - version("5.0.3", sha256="e290b4ddf817b26254a74d5d564095b11f9cd20d8f165459efa53eb63cd93e02") - version("5.0.2", sha256="937dde6164001c083e87316aa20dad2f8542af089dfcb1cbb64f9c8300cd00ed") - version("5.0.1", sha256="82a67c0eec97f9ad379384c30ec391b269e17a3e4596393c808f02db7595abcb") - version("5.0.0", sha256="70c98b2d0640b2b73c9d8adb4df63bcb62bad34b788fe46d1634b6cf87dc99a4") - version( - "4.0.13", sha256="17d955227966dcd68590be6139e5fe7f2d19fc4fb7334248a904ea9cdd30c1d4" - ) - version( - "4.0.12", sha256="6447259d2eed426a949c9c13f8fdb2d91fb66d9dc915dd50db13b87f46d93162" - ) - version( - "4.0.11", sha256="fc53e73ae7586bcdacb4b63875d1ff04f68c5474c1ddeda78f00e5ae2eed1bbb" - ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/reditools/package.py b/repos/spack_repo/builtin/packages/reditools/package.py index d8daa56c3b1..4cfbc5bb2eb 100644 --- a/repos/spack_repo/builtin/packages/reditools/package.py +++ b/repos/spack_repo/builtin/packages/reditools/package.py @@ -67,11 +67,11 @@ class Reditools(PythonPackage): def p2_to_p3(self): if "^python@3:" in self.spec: # clean up space/tab mixing - reindent = which("reindent") + reindent = which("reindent", required=True) reindent("--nobackup", "--recurse", ".") # convert to be python3 compatible - p2_to_p3 = which("2to3") + p2_to_p3 = which("2to3", required=True) p2_to_p3("--nobackups", "--write", ".") @run_after("install") diff --git a/repos/spack_repo/builtin/packages/reframe/package.py b/repos/spack_repo/builtin/packages/reframe/package.py index 3d6b298f9fb..8cd637f6e62 100644 --- a/repos/spack_repo/builtin/packages/reframe/package.py +++ b/repos/spack_repo/builtin/packages/reframe/package.py @@ -18,8 +18,8 @@ class Reframe(Package): focusing only on the functionality.""" homepage = "https://reframe-hpc.readthedocs.io" - url = "https://github.com/eth-cscs/reframe/archive/v2.21.tar.gz" - git = "https://github.com/eth-cscs/reframe.git" + url = "https://github.com/reframe-hpc/reframe/archive/v2.21.tar.gz" + git = "https://github.com/reframe-hpc/reframe.git" # notify when the package is updated. maintainers("victorusu", "vkarak") @@ -27,6 +27,16 @@ class Reframe(Package): license("BSD-3-Clause") version("develop", branch="develop") + version("4.9.3", sha256="44efde35528a36bec330926d769dbdb9277ed46c98a40a4f914bcbe5132f60ff") + version("4.9.2", sha256="a224434033cf94e4c74654fdc6204c9a8d5a0575060addc47ec1de5242148fdf") + version("4.9.1", sha256="82efaf74218d7f518a13393c066502ff61dfb713d040b33298fb01c3cd5e4182") + version("4.9.0", sha256="a2065fbf15a56e5120e36ae0858b379d11ac9709e85f3eff540cac50ca70f3a0") + version("4.8.4", sha256="07f09b6612a0cf57dde94e05c7b82ae5292e328ec6d1f2173f1f52b8e618d73b") + version("4.8.3", sha256="8401f46a7a662b980080fc5176f784c37d9d483da9a6e43658c6663d744b8745") + version("4.8.2", sha256="820c2b2a36434b477c0ebf252acdf2cac9adffdf91d4ef7fc17d894f741c58d7") + version("4.8.1", sha256="3d45685e8b88bdefa25c9b57f0b32159da77cb87e7c562ed983bcda38e520770") + version("4.8.0", sha256="94dcb8d651280a44b406790552b1e1e3acb406cd6c7786a9dcc799189c9442d5") + version("4.7.4", sha256="5d06aebd931e8f9f52b28843d08c20a46f88a6300b4baa992527c8a129176453") version("4.7.3", sha256="74b8f56dc622d1c75fc1152d15d45e00edab9d2db1f6bc8fd7290125d69c74dd") version("4.7.2", sha256="90e04eaaa21afd5c29a9c6218204c3df4503f624f21f2fe773f90e148d30c152") version("4.7.1", sha256="ed693368d8b47327981a0db2b984c88d7dd703add1ffe736c95f9193ef727baf") @@ -121,7 +131,7 @@ class Reframe(Package): depends_on("cxx", type="build") # generated # ReFrame requires git up to version 3.1, see: - # https://github.com/eth-cscs/reframe/issues/1464 + # https://github.com/reframe-hpc/reframe/issues/1464 depends_on("git", when="@2.0:3.1", type="run") # supported python versions diff --git a/repos/spack_repo/builtin/packages/regcm/package.py b/repos/spack_repo/builtin/packages/regcm/package.py index 48638e70464..0bb8765d40c 100644 --- a/repos/spack_repo/builtin/packages/regcm/package.py +++ b/repos/spack_repo/builtin/packages/regcm/package.py @@ -54,7 +54,7 @@ class Regcm(AutotoolsPackage): variant( "pnetcdf", default=False, - description="Build NetCDF using the high performance parallel " "NetCDF implementation.", + description="Build NetCDF using the high performance parallel NetCDF implementation.", ) depends_on("fortran", type="build") @@ -114,13 +114,13 @@ def configure_args(self): # compiler from GCC and Intel, which are the only compiler # supported by RegCM 4.7.x. raise InstallError( - "Architecture optimizations are available " "only for GCC and Intel compilers." + "Architecture optimizations are available only for GCC and Intel compilers." ) if len(optimizations) > 1 and self.spec.satisfies(r"%gcc"): # https://github.com/spack/spack/issues/974 raise InstallError( - "The GCC compiler does not support " "multiple architecture optimizations." + "The GCC compiler does not support multiple architecture optimizations." ) # RegCM configure script treats --disable-X as --enable-X, so we diff --git a/repos/spack_repo/builtin/packages/regenie/fix-cxxopts-with-new-boost.patch b/repos/spack_repo/builtin/packages/regenie/fix-cxxopts-with-new-boost.patch new file mode 100644 index 00000000000..ba1c95ebb7f --- /dev/null +++ b/repos/spack_repo/builtin/packages/regenie/fix-cxxopts-with-new-boost.patch @@ -0,0 +1,19 @@ +diff --git a/src/Regenie.cpp b/src/Regenie.cpp +index b501f4f..4a06c21 100755 +--- a/src/Regenie.cpp ++++ b/src/Regenie.cpp +@@ -1393,11 +1393,11 @@ void read_params_and_check(int& argc, char *argv[], struct param* params, struct + check_seed(params->rng_seed, vm.count("seed")); + print_args(arguments, valid_args, sout); + +- } catch (const cxxopts::OptionException& e) { ++ } catch (const cxxopts::exceptions::exception& msg) { + if (sout.coss.is_open()) + print_header(sout.coss); + print_header(cout); +- sout << "ERROR: " << e.what() << endl << params->err_help << "\n"; ++ sout << "ERROR: " << msg.what() << endl << params->err_help << "\n"; + exit(EXIT_FAILURE); + } catch (const std::string& msg) {// after opening sout + sout << "ERROR: " << msg << "\n" << params->err_help << "\n"; + diff --git a/repos/spack_repo/builtin/packages/regenie/package.py b/repos/spack_repo/builtin/packages/regenie/package.py new file mode 100644 index 00000000000..1e584f1becb --- /dev/null +++ b/repos/spack_repo/builtin/packages/regenie/package.py @@ -0,0 +1,197 @@ +# 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 Regenie(CMakePackage): + """regenie is a C++ program for whole genome regression modelling of large genome-wide + association studies.""" + + homepage = "https://rgcgithub.github.io/regenie/" + url = "https://github.com/rgcgithub/regenie/archive/refs/tags/v4.1.tar.gz" + + maintainers("teaguesterling") + + license("MIT", checked_by="teaguesterling") + + version("4.1", sha256="a7d8ad321ca66bd10fa5ed651c63069886f5cb5ef8e900ca9a0c5b7e3dfc7da5") + + variant("with-boostio", default=True, description="Build with Boost IO support") + variant("with-htslib", default=True, description="Build with HTSLib support") + variant("static", default=False, description="Build a statically linked version") + variant("bundled-eigen", default=False, description="Build with vendored eigen library") + variant("bundled-cxxopts", default=False, description="Build with vendored cxxopts library") + variant("bundled-lbfgspp", default=False, description="Build with vendored LBFGSpp library") + variant( + "bgen-bundled-deps", + default=False, + description="Build with sqlite, boost, and zstd from bgen", + ) + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + + depends_on("cmake@3.13:", type="build") + depends_on("zlib-api") + depends_on("openssl") + depends_on("bzip2") + depends_on("lzma") + depends_on("libdeflate") + depends_on("python") + depends_on("netlib-lapack+lapacke+external-blas") + depends_on("openblas threads=openmp") + depends_on("bgen+headers+libs", when="~bgen-bundled-deps") + depends_on("bgen+full-source", when="+bgen-bundled-deps") + depends_on("boost+iostreams", when="+with-boostio") + depends_on("eigen@3.4:", when="~bundled-eigen") + depends_on("cxxopts@3", when="~bundled-cxxopts") + depends_on("cxxopts@3.0", when="~bundled-cxxopts+bgen-bundled-deps") + depends_on("lbfgspp", when="~bundled-lbfgspp") + + with when("+with-htslib"): + depends_on("htslib") + depends_on("htslib+pic", when="+static") + + with when("~bgen-bundled-deps"): + depends_on("bgen~bundled-deps") + depends_on("zstd") + depends_on("sqlite@3") + + # regenie forces use of C++11 standard, boost::math requires C++14 after v1.82 + depends_on( + "boost@1.55:1.81+chrono+date_time+exception+filesystem+math+system+thread+timer" + ) + depends_on("zstd libs=static", when="+static") + with when("~static"): + depends_on("zstd libs=shared") + depends_on("boost+shared") + + # cxxopts changed the name of the base exception class after 3.0 + # This patch also changed the exception variable from e to msg to avoid any + # misleading error messages pointing to "e" from boost::math + patch("fix-cxxopts-with-new-boost.patch", when="^cxxopts@3.1:") + + def patch(self): + satisfies = self.spec.satisfies + + def dep_dirs(dep): + return " ".join(f'"{d}"' for d in dep.directories) + + # Avoid accidentally linking against system + filter_file("-L/usr/lib", "", "Makefile", string=True) # Don't explictly link system + filter_file("-Wno-c11-extensions", "", "CMakeLists.txt", string=True) # Flag doesn't exist + + # libcrypt needs to be defined explicitly and libssl needs to be linked + # before everything else or symbols will not be found + ssl = self.spec["openssl"] + filter_file( + " find_library(CRYPTO_LIB crypto REQUIRED)", + f" find_library(CRYPTO_LIB crypto HINTS {dep_dirs(ssl.libs)})\n" + f" find_library(SSL_LIB ssl HINTS {dep_dirs(ssl.libs)})\n" + " target_link_libraries(regenie PUBLIC ${SSL_LIB})", + "CMakeLists.txt", + string=True, + ) + # libblas needs to be defined before lapack + filter_file( + "${LAPACK_LIB} -llapacke ${BLAS_LIB}", + "${BLAS_LIB} ${LAPACK_LIB} -llapacke", + "CMakeLists.txt", + string=True, + ) + + # Record any libraries that will be statically linked by default + statics = ["hts"] + + # Avoid using (some) vendored dependencies included with regenie + for dep, old_path in [ + ("eigen", r"${EXTERN_LIBS_PATH}/eigen-3.4.0/"), + ("cxxopts", r"${EXTERN_LIBS_PATH}/cxxopts/include/"), + ("lbfgspp", r"${EXTERN_LIBS_PATH}/LBFGSpp/include/"), + ]: + if self.spec.satisfies(f"~bundled-{dep}"): + lib = self.spec[dep] + filter_file(old_path, dep_dirs(lib.headers), "CMakeLists.txt", string=True) + + # Avoid using vendored dependencies distribued with bgen + if satisfies("~bgen-bundled-deps"): + # zstd and sqlite can be replaced with subsitutions + for dep, lib_name, old_lib, old_inc in [ + ("zstd", "zstd", "zstd-1.1.0", "zstd-1.1.0/lib"), + ("sqlite", "sqlite3", "sqlite3", "sqlite3"), + ]: + lib = self.spec[dep] + lib_pat = f'"${{BGEN_PATH}}/build/3rd_party/{old_lib}"' + inc_pat = f"${{BGEN_PATH}}/3rd_party/{old_inc}" + filter_file(lib_pat, dep_dirs(lib.libs), "CMakeLists.txt", string=True) + filter_file(inc_pat, dep_dirs(lib.headers), "CMakeLists.txt", string=True) + statics.append(lib_name) + + # Boost needs more careful handling using find_package since bgen created a single + # static archive that doesn't find/replace as easily + statics.append("boost") + boost = self.spec["boost"] + boost_vers = boost.version.up_to(2) + boost_comps = [ + "chrono", + "exception", + "date_time", + "filesystem", + "system", + "thread", + "timer", + ] + if satisfies("+with-boostio"): + boost_comps.append("iostreams") + boost_lib = ( + "find_library(Boost_LIBRARY libboost.a" + ' HINTS "${BGEN_PATH}/build/3rd_party/boost_1_55_0" REQUIRED)' + ) + boost_pkg = ( + f"find_package(Boost {boost_vers} COMPONENTS {' '.join(boost_comps)} REQUIRED)" + ) + for find, replace in [ + (boost_lib, boost_pkg), + ("${Boost_LIBRARY}", "${Boost_LIBRARIES}"), + ("${BGEN_PATH}/3rd_party/boost_1_55_0/", "${Boost_INCLUDE_DIR}"), + ]: + filter_file(find, replace, "CMakeLists.txt", string=True) + + # Convert static libraries to shared unless we are actually building static + if satisfies("~static"): + for lib in statics: + filter_file(f"lib{lib}.a", lib, "CMakeLists.txt", string=True) + + # The bgen package installs libraries and headers in more traditional locations + # if we don't use the full source option. Patch the paths for compiling + bgen = self.spec["bgen"] + if satisfies("^bgen~full-source"): + for old_path, new_path in [ + ("${BGEN_PATH}/build", bgen.prefix.lib.bgen), + ( + "${BGEN_PATH} ${BGEN_PATH}/genfile/include/", + f"{bgen.prefix.include} {bgen.prefix.include.bgen}", + ), + ("${BGEN_PATH}/db/include/", bgen.prefix.include.db), + ]: + filter_file(old_path, new_path, "CMakeLists.txt", string=True) + + def setup_build_environment(self, env): + bgen = self.spec["bgen"] + openblas = self.spec["openblas"] + env.set("OPENBLAS_ROOT", openblas.prefix) + if self.spec.satisfies("+static"): + env.set("STATIC", "1") + if self.spec.satisfies("+with-boostio"): + env.set("HAS_BOOST_IOSTREAM", "1") + if self.spec.satisfies("with-htslib"): + env.set("HTSLIB_PATH", self.spec["htslib"].prefix.lib) + if self.spec.satisfies("^bgen~full-source"): + env.set("BGEN_PATH", bgen.prefix) + else: + env.set("BGEN_PATH", bgen.prefix.opt.bgen) diff --git a/repos/spack_repo/builtin/packages/relion/cudarch-override.patch b/repos/spack_repo/builtin/packages/relion/cudarch-override.patch new file mode 100644 index 00000000000..6bcf431cf6a --- /dev/null +++ b/repos/spack_repo/builtin/packages/relion/cudarch-override.patch @@ -0,0 +1,22 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8b8cd506..55b58905 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -186,14 +186,14 @@ if(CUDA) + if (CUDA_ARCH STREQUAL "") + if (${CUDA_VERSION} VERSION_LESS "13.0") # Pascal (e.g. 1080) + message(STATUS "Setting fallback CUDA_ARCH=50 (Pascal)") +- set(CUDARCH "-arch=sm_50") ++ set(CUDARCH "-arch=sm_50" CACHE STRING "CUDA arch compiler flag override") + else() # CUDA >= 13.0 no longer supports Pascal. 75 = Turing (e.g. 2080) + message(STATUS "Setting fallback CUDA_ARCH=75 (Turing)") +- set(CUDARCH "-arch=sm_75") ++ set(CUDARCH "-arch=sm_75" CACHE STRING "CUDA arch compiler flag override") + endif() + else () + message(STATUS "Using provided CUDA_ARCH=${CUDA_ARCH}") +- set(CUDARCH "-arch=sm_${CUDA_ARCH}") ++ set(CUDARCH "-arch=sm_${CUDA_ARCH}" CACHE STRING "CUDA arch compiler flag override") + endif () + + if(CUDA_FOUND) diff --git a/repos/spack_repo/builtin/packages/relion/package.py b/repos/spack_repo/builtin/packages/relion/package.py index 98548d6093f..01bf5061e1b 100644 --- a/repos/spack_repo/builtin/packages/relion/package.py +++ b/repos/spack_repo/builtin/packages/relion/package.py @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import glob + from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.cuda import CudaPackage @@ -17,11 +19,11 @@ class Relion(CMakePackage, CudaPackage): homepage = "https://www2.mrc-lmb.cam.ac.uk/relion" git = "https://github.com/3dem/relion.git" url = "https://github.com/3dem/relion/archive/4.0.0.zip" - maintainers("dacolombo") + maintainers("dacolombo", "Markus92") license("GPL-2.0-only") - version("5.0.0", sha256="800ad0c0aa778cbf584fcf8986976645f2b25d677a80f168e5397975b9db6e47") + version("5.0.1", sha256="3253230cd4b3d9633a5cac906937039b9971eb9430c3e2d838473777fb811f4c") version("4.0.1", sha256="7e0d56fd4068c99f943dc309ae533131d33870392b53a7c7aae7f65774f667be") version("4.0.0", sha256="0987e684e9d2dfd630f1ad26a6847493fe9fcd829ec251d8bc471d11701d51dd") @@ -44,6 +46,12 @@ class Relion(CMakePackage, CudaPackage): variant("cuda", default=True, description="enable compute on gpu") variant("double", default=True, description="double precision (cpu) code") variant("double-gpu", default=False, description="double precision gpu") + variant( + "python", + default=True, + description="Include py-relion Python tools (torch, napari, etc.)", + when="@5:", + ) # if built with purpose=cluster then relion will link to gpfs libraries # if that's not desirable then use purpose=desktop @@ -63,22 +71,31 @@ class Relion(CMakePackage, CudaPackage): # these new values were added in relion 3 # do not seem to cause problems with < 3 - variant("mklfft", default=True, description="Use MKL rather than FFTW for FFT") + variant("mklfft", default=False, description="Use MKL rather than FFTW for FFT") variant( "allow_ctf_in_sagd", default=True, description=( - "Allow CTF-modulation in SAGD, " "as specified in Claim 1 of patent US10,282,513B2" + "Allow CTF-modulation in SAGD, as specified in Claim 1 of patent US10,282,513B2" ), + when="@3", ) variant("altcpu", default=False, description="Use CPU acceleration", when="~cuda") variant( "external_motioncor2", default=False, - description="Have external motioncor2 available in addition to " "Relion builtin", + description="Have external motioncor2 available in addition to Relion builtin", + ) + variant( + "ghostscript", + default=True, + description="Use ghostscript for merging EPS diagnostic plots into PDF logfiles", + when="@4:", ) + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("mpi") depends_on("cmake@3:", type="build") depends_on("binutils@2.32:", type="build") @@ -90,28 +107,41 @@ class Relion(CMakePackage, CudaPackage): depends_on("libtiff") depends_on("libpng", when="@4:") - depends_on("cuda", when="+cuda") depends_on("cuda@9:", when="@3: +cuda") + conflicts("cuda@13:", when="@:5.0.0 +cuda") depends_on("tbb", when="+altcpu") depends_on("mkl", when="+mklfft") - depends_on("ctffind", type="run") + depends_on("ctffind@4.1:4", type="run", when="@5") + depends_on("ctffind@:4", type="run") depends_on("motioncor2", type="run", when="+external_motioncor2") - # TODO: more externals to add - # Spack packages needed - # - Gctf - # - ResMap + # ghostscript is only needed at runtime for merging EPS diagnostic plots + # into PDF logfiles. Relion gracefully degrades when gs is missing + # (creates empty placeholder PDFs, individual EPS files are still produced). + depends_on("ghostscript", type="run", when="+ghostscript") + depends_on("pbzip2", type="run", when="@5:") + depends_on("xz", type="run", when="@5:") + depends_on("zstd", type="run", when="@5:") + + # py-relion is now gated behind +python variant + for arch in CudaPackage.cuda_arch_values: + depends_on( + f"py-relion@5.0.1 +cuda cuda_arch={arch}", + type=("build", "run"), + when=f"@5.0.1 +python +cuda cuda_arch={arch}", + ) + depends_on("py-relion@5.0.1 ~cuda", type=("build", "run"), when="@5.0.1 +python ~cuda") + patch("0002-Simple-patch-to-fix-intel-mkl-linking.patch", when="@:3.1.1 os=ubuntu18.04") patch( "https://github.com/3dem/relion/commit/2daa7447c1c871be062cce99109b6041955ec5e9.patch?full_index=1", sha256="4995b0d4bc24a1ec99042a4b73e9db84918eb6f622dacb308b718146bfb6a5ea", when="@4.0.0", ) + patch("cudarch-override.patch", when="@5: +cuda") def cmake_args(self): args = [ - "-DCMAKE_C_FLAGS=-g", - "-DCMAKE_CXX_FLAGS=-g", "-DGUI=%s" % ("+gui" in self.spec), "-DDoublePrec_CPU=%s" % ("+double" in self.spec), "-DDoublePrec_GPU=%s" % ("+double-gpu" in self.spec), @@ -119,6 +149,9 @@ def cmake_args(self): "-DMKLFFT=%s" % ("+mklfft" in self.spec), "-DALTCPU=%s" % ("+altcpu" in self.spec), ] + if self.spec.satisfies("+gui"): + incs = [f"-I{self.spec[lib].prefix.include}" for lib in ["libx11", "xproto"]] + args += ["-DCMAKE_CXX_FLAGS=" + " ".join(incs)] if "+cuda" in self.spec: carch = self.spec.variants["cuda_arch"].value[0] @@ -129,6 +162,24 @@ def cmake_args(self): else: args += ["-DCUDA=ON", "-DCudaTexture=ON", "-DCUDA_ARCH=%s" % (carch)] + if self.spec.satisfies("@5:"): + cuda_flags = " ".join( + CudaPackage.cuda_flags(self.spec.variants["cuda_arch"].value) + ) + args += [f"-DCUDARCH={cuda_flags}"] + + if self.spec.satisfies("@5: ~cuda"): + # Relion 5 defaults to CUDA=ON so it has to be explicitly disabled. + args.append("-DCUDA=OFF") + + if self.spec.satisfies("@5:"): + if self.spec.satisfies("+python"): + args.append(f"-DPYTHON_EXE_PATH={self.spec['python'].command.path}") + else: + # /does-not-exist prevents CMake from auto-discovering Conda Python + args.append("-DPYTHON_EXE_PATH=/does-not-exist") + args.append("-DFETCH_WEIGHTS=OFF") + return args def patch(self): @@ -154,3 +205,19 @@ def patch(self): r'\1 "{0}"'.format(join_path(self.spec["motioncor2"].prefix.bin, "MotionCor2")), join_path("src", "pipeline_jobs.h"), ) + + @run_after("install") + def stub_python_scripts(self): + """When ~python, replace relion_python_* scripts with a clear error stub.""" + if self.spec.satisfies("@5: ~python"): + stub = ( + "#!/usr/bin/env bash\n\n" + 'echo "This build of RELION does not support Python commands."\n' + "exit 1\n" + ) + for path in glob.glob(join_path(self.prefix.bin, "relion_python_*")): + with open(path, "w") as f: + f.write(stub) + + def setup_run_environment(self, env): + env.set("RELION_CTFFIND_EXECUTABLE", self.spec["ctffind"].prefix.bin.ctffind) diff --git a/repos/spack_repo/builtin/packages/repeatafterme/package.py b/repos/spack_repo/builtin/packages/repeatafterme/package.py new file mode 100644 index 00000000000..69c6cc5cb2e --- /dev/null +++ b/repos/spack_repo/builtin/packages/repeatafterme/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.makefile import MakefilePackage + +from spack.package import * + + +class Repeatafterme(MakefilePackage): + """A package for the extension of repetitive DNA sequences""" + + homepage = "https://github.com/Dfam-consortium/RepeatAfterMe" + url = "https://github.com/Dfam-consortium/RepeatAfterMe/archive/refs/tags/RepeatAfterMe_V0.0.7.tar.gz" + + maintainers("snehring") + + license("CC0-1.0", checked_by="snehring") + + version("0.7", sha256="8a4c96be6c0fcedf24ee28796fea3bffef022c7479d8f49fbd2f83e56d697f26") + + depends_on("c", type="build") + + parallel = False + + def edit(self, spec, prefix): + filter_file(r"^INSTDIR = .*$", f"INSTDIR = {spec.prefix}", "Makefile") + filter_file(r"^\s+@mkdir \$\(INSTDIR\)$", "", "Makefile") + filter_file(r"^\s+@mkdir \$\(INSTDIR\)/bin$", "\t@mkdir -p $(INSTDIR)/bin", "Makefile") diff --git a/repos/spack_repo/builtin/packages/repeatmasker/package.py b/repos/spack_repo/builtin/packages/repeatmasker/package.py index 762df1d92db..4aee5b261af 100644 --- a/repos/spack_repo/builtin/packages/repeatmasker/package.py +++ b/repos/spack_repo/builtin/packages/repeatmasker/package.py @@ -94,7 +94,7 @@ def install(self, spec, prefix): f.write("\n".join(config_answers)) with open(config_answers_filename, "r") as f: - perl = which("perl") + perl = which("perl", required=True) perl("configure", input=f) # fix perl paths diff --git a/repos/spack_repo/builtin/packages/repeatmodeler/package.py b/repos/spack_repo/builtin/packages/repeatmodeler/package.py index b3a594c2c95..8e4087517f4 100644 --- a/repos/spack_repo/builtin/packages/repeatmodeler/package.py +++ b/repos/spack_repo/builtin/packages/repeatmodeler/package.py @@ -18,12 +18,8 @@ class Repeatmodeler(Package): license("OSL-2.1") + version("2.0.7", sha256="2873697a885e7115bf5e940cf880f47de17efb7a200ec2d3a1627d5a689f7a8f") version("2.0.4", sha256="94aad46cc70911d48de3001836fc3165adb95b2b282b5c53ab0d1da98c27a6b6") - version( - "1.0.11", - sha256="7ff0d588b40f9ad5ce78876f3ab8d2332a20f5128f6357413f741bb7fa172193", - url="https://www.repeatmasker.org/RepeatModeler/RepeatModeler-open-1.0.11.tar.gz", - ) depends_on("perl", type=("build", "run")) depends_on("perl-json", type=("build", "run")) @@ -45,10 +41,61 @@ class Repeatmodeler(Package): depends_on("mafft", type="run", when="@2.0.4:") depends_on("ninja-phylogeny", type="run", when="@2.0.4:") depends_on("blat", type="run", when="@2.0.4:") - depends_on("ltr-retriever", type="run", when="@2.0.4:") + depends_on("ltr-retriever@=2.9.0", type="run", when="@2.0.4:") + depends_on("repeatafterme", type="run", when="@2.0.7:") + + def patch(self): + file_list = [ + "BuildDatabase", + "Job.pm", + "LTRPipeline", + "MultAln.pm", + "NeedlemanWunschGotohAlgorithm.pm", + "Refiner", + "RepeatClassifier", + "RepeatModeler", + "RepeatUtil.pm", + "RepModelConfig.pm", + "SeedAlignmentCollection.pm", + "SeedAlignment.pm", + "SequenceSimilarityMatrix.pm", + "Task.pm", + "ThreadedJob.pm", + "ThreadedTaskSimple.pm", + "TRFMask", + "util/alignAndCallConsensus.pl", + "util/align.pl", + "util/AutoRunBlocker.pl", + "util/bestwindow.pl", + "util/Blocker.pl", + "util/ClusterPartialMatchingSubs.pl", + "util/CntSubst", + "util/extendFlankingSeqs.pl", + "util/fasta-trf-filter.pl", + "util/generateSeedAlignments.pl", + "util/Linup", + "util/renameIds.pl", + "util/resolveIndels.pl", + "util/rmblast.pl", + "util/TSD.pl", + "util/viewMSA.pl", + "util/visualizeAlignPNG.pl", + "configure", + ] + for f in file_list: + filter_file( + r"^#!.*perl( -w)?.*$", + rf"#!{self.spec['perl'].prefix.bin.perl}\1", + f, + ignore_absent=True, + ) + file_list = ["configure", "RepModelConfig.pm"] + for f in file_list: + filter_file(r'^.*system\( "clear" \).*$', "", f) def install(self, spec, prefix): # interactive configuration script + # once 1.0.11 is removed we can clean this up a bit if spec.satisfies("@1.0.11"): config_answers = [ "", @@ -76,10 +123,12 @@ def install(self, spec, prefix): spec["ncbi-rmblastn"].prefix.bin, "y", spec["genometools"].prefix.bin, - spec["ltr-retriever"].prefix.bin, + spec["ltr-retriever"].prefix, spec["mafft"].prefix.bin, spec["ninja-phylogeny"].prefix.bin, ] + if spec.satisfies("@2.0.7:"): + config_answers.insert(2, spec["repeatafterme"].prefix.bin) config_filename = "spack-config.in" @@ -87,7 +136,7 @@ def install(self, spec, prefix): f.write("\n".join(config_answers)) with open(config_filename, "r") as f: - perl = which("perl") + perl = which("perl", required=True) perl("configure", input=f) install_tree(".", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/resolve/package.py b/repos/spack_repo/builtin/packages/resolve/package.py index 604efea692f..0a982b3b1b9 100644 --- a/repos/spack_repo/builtin/packages/resolve/package.py +++ b/repos/spack_repo/builtin/packages/resolve/package.py @@ -26,6 +26,7 @@ class Resolve(CMakePackage, CudaPackage, ROCmPackage): ) version("develop", submodules=False, branch="develop") + variant("asan", default=False, description="Enable/Disable address sanitizer") variant("klu", default=True, description="Use KLU, AMD and COLAMD Libraries from SuiteSparse") variant( "lusol", @@ -33,6 +34,7 @@ class Resolve(CMakePackage, CudaPackage, ROCmPackage): when="@develop:", description="Build the LUSOL Library. Requires fortran", ) + variant("ubsan", default=False, description="Enable/Disable undefined behavior sanitizer") depends_on("c", type="build") depends_on("cxx", type="build") # generated @@ -61,6 +63,8 @@ def cmake_args(self): self.define_from_variant("RESOLVE_USE_KLU", "klu"), self.define_from_variant("RESOLVE_USE_LUSOL", "lusol"), self.define("RESOLVE_TEST_WITH_BSUB", False), + self.define_from_variant("RESOLVE_USE_ASAN", "asan"), + self.define_from_variant("RESOLVE_USE_UBSAN", "ubsan"), ] ) diff --git a/repos/spack_repo/builtin/packages/restic/package.py b/repos/spack_repo/builtin/packages/restic/package.py index 8bea363e29a..b9f9956eac3 100644 --- a/repos/spack_repo/builtin/packages/restic/package.py +++ b/repos/spack_repo/builtin/packages/restic/package.py @@ -17,6 +17,8 @@ class Restic(GoPackage): license("BSD-2-Clause") + version("0.18.1", sha256="4b8e2b6cb20e9707e14b9b9d92ddb6f2e913523754e1f123e2e6f3321e67f7ca") + version("0.18.0", sha256="fc068d7fdd80dd6a968b57128d736b8c6147aa23bcba584c925eb73832f6523e") version("0.17.3", sha256="bf0dd73edfae531c24070e2e7833938613f7b179ed165e6b681098edfdf286c8") version("0.17.1", sha256="cba3a5759690d11dae4b5620c44f56be17a5688e32c9856776db8a9a93d6d59a") version("0.16.4", sha256="d736a57972bb7ee3398cf6b45f30e5455d51266f5305987534b45a4ef505f965") @@ -29,9 +31,10 @@ class Restic(GoPackage): version("0.14.0", sha256="78cdd8994908ebe7923188395734bb3cdc9101477e4163c67e7cc3b8fd3b4bd6") version("0.12.1", sha256="a9c88d5288ce04a6cc78afcda7590d3124966dab3daa9908de9b3e492e2925fb") - depends_on("go@1.15:", type="build", when="@0.14.0:") - depends_on("go@1.18:", type="build", when="@0.15.0:") + depends_on("go@1.23:", type="build", when="@1.18.0:") depends_on("go@1.19:", type="build", when="@1.16.1:") + depends_on("go@1.18:", type="build", when="@0.15.0:") + depends_on("go@1.15:", type="build", when="@0.14.0:") build_directory = "cmd/restic" diff --git a/repos/spack_repo/builtin/packages/revocap_refiner/package.py b/repos/spack_repo/builtin/packages/revocap_refiner/package.py index f43dbd1e763..cdec0a405e5 100644 --- a/repos/spack_repo/builtin/packages/revocap_refiner/package.py +++ b/repos/spack_repo/builtin/packages/revocap_refiner/package.py @@ -15,7 +15,7 @@ class RevocapRefiner(MakefilePackage): url = "https://www.frontistr.com/download/link.php?REVOCAP_Refiner-1.1.04.tar.gz" # git = "https://gitlab.com/FrontISTR-Commons/REVOCAP_Refiner.git" - maintainers("k-tokunaga", "kgoto", "tuna" "inagaki.kazuhisa") + maintainers("k-tokunaga", "kgoto", "tuna", "inagaki.kazuhisa") version("1.1.04", sha256="bf3d959f4c1ab08a7e99cd7e02e710c758af28d71500f4814eed8b4eb3fb2d13") diff --git a/repos/spack_repo/builtin/packages/rhash/package.py b/repos/spack_repo/builtin/packages/rhash/package.py index 12962bc50e2..e9996e0c707 100644 --- a/repos/spack_repo/builtin/packages/rhash/package.py +++ b/repos/spack_repo/builtin/packages/rhash/package.py @@ -2,8 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import os - from spack_repo.builtin.build_systems.makefile import MakefilePackage from spack.package import * @@ -87,9 +85,7 @@ def install(self, spec, prefix): install("librhash/*.dylib", prefix.lib) else: make("install-lib-shared", "DESTDIR={0}".format(prefix), "PREFIX=") - os.symlink( - join_path(prefix.lib, "librhash.so.0"), join_path(prefix.lib, "librhash.so") - ) + symlink(join_path(prefix.lib, "librhash.so.0"), join_path(prefix.lib, "librhash.so")) @when("@1.3.6:") def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/rinetd/package.py b/repos/spack_repo/builtin/packages/rinetd/package.py index 336a85f7250..55ac7b2b37f 100644 --- a/repos/spack_repo/builtin/packages/rinetd/package.py +++ b/repos/spack_repo/builtin/packages/rinetd/package.py @@ -29,5 +29,5 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: env.prepend_path("PATH", self.prefix.sbin) def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./bootstrap") diff --git a/repos/spack_repo/builtin/packages/ripgrep/package.py b/repos/spack_repo/builtin/packages/ripgrep/package.py index 5461abff570..ef74a19d9ae 100644 --- a/repos/spack_repo/builtin/packages/ripgrep/package.py +++ b/repos/spack_repo/builtin/packages/ripgrep/package.py @@ -20,16 +20,32 @@ class Ripgrep(CargoPackage): license("MIT OR Unlicense") + version("15.1.0", sha256="046fa01a216793b8bd2750f9d68d4ad43986eb9c0d6122600f993906012972e8") version("14.1.1", sha256="4dad02a2f9c8c3c8d89434e47337aa654cb0e2aa50e806589132f186bf5c2b66") version("14.1.0", sha256="33c6169596a6bbfdc81415910008f26e0809422fda2d849562637996553b2ab6") version("14.0.3", sha256="f5794364ddfda1e0411ab6cad6dd63abe3a6b421d658d9fee017540ea4c31a0e") version("13.0.0", sha256="0fb17aaf285b3eee8ddab17b833af1e190d73de317ff9648751ab0660d763ed2") version("11.0.2", sha256="0983861279936ada8bc7a6d5d663d590ad34eb44a44c75c2d6ccd0ab33490055") - depends_on("rust@1.72:", type="build", when="@14:") + variant("pcre2", default=False, description="Add support for Perl-style regex via PCRE2") + depends_on("c", type="build") + depends_on("pkgconfig", type="build", when="+pcre2") + depends_on("rust@1.85:", type="build", when="@15:") + depends_on("rust@1.72:", type="build", when="@14:") + depends_on("rust@1.31:", type="build") + + depends_on("pcre2", when="+pcre2") + + @property + def build_args(self): + args = [] + if self.spec.satisfies("+pcre2"): + args.extend(["--features", "pcre2"]) + + return args - @run_after("install") + @run_after("install", when="@14:") def install_completions(self): rg = Executable(self.prefix.bin.rg) diff --git a/repos/spack_repo/builtin/packages/rivet/package.py b/repos/spack_repo/builtin/packages/rivet/package.py index 50004025a95..3120ef2507c 100644 --- a/repos/spack_repo/builtin/packages/rivet/package.py +++ b/repos/spack_repo/builtin/packages/rivet/package.py @@ -20,6 +20,8 @@ class Rivet(AutotoolsPackage): license("GPL-3.0-or-later") + version("4.1.2", sha256="61247fbc3d6a48a35ca01a2f2af9f626c4ce2a1401a50df46b6078cb20ecde46") + version("4.1.1", sha256="bd1d513355c3f72f0f88a972f39dd9f1144ceae2cb472542e5d3060feab4f1cc") version("4.1.0", sha256="6548a351a44e5a4303fb2277e7521690a9d84195df96d92c707b816f3b40c843") version("4.0.3", sha256="dbb97b769d1877f34c3c50190127bfda7847bcec79ba1de59561fdf43cdd4869") version("4.0.2", sha256="65a3b36f42bff782ed2767930e669e09b140899605d7972fc8f77785b4a882c0") diff --git a/repos/spack_repo/builtin/packages/rmgdft/package.py b/repos/spack_repo/builtin/packages/rmgdft/package.py index 117ade12b79..27f519f7fdc 100644 --- a/repos/spack_repo/builtin/packages/rmgdft/package.py +++ b/repos/spack_repo/builtin/packages/rmgdft/package.py @@ -19,6 +19,7 @@ class Rmgdft(CMakePackage, CudaPackage): tags = ["ecp", "ecp-apps"] version("master", branch="master") version("develop", branch="develop") + version("7.0.0", tag="v7.0.0", commit="3dbd1721f6a9c57e6cd94b94f3ba4fe45c988405") version("6.2.0", tag="v6.2.0", commit="c00f21741c40aacebf4767adb1f274c52bfc82ea") version("6.1.0", tag="v6.1.0", commit="4dd5862725006b35d3118705197f89f13b24b858") version("5.4.0", tag="v5.4.0", commit="471251b191abb5f6ffdca4333c1fcb2add3c52f2") @@ -90,10 +91,6 @@ def build_targets(self): spec = self.spec if "+cuda" in spec: targets = ["rmg-gpu"] - cuda_arch_list = spec.variants["cuda_arch"].value - cuda_arch = cuda_arch_list[0] - if cuda_arch != "none": - args.append("-DCUDA_FLAGS=-arch=sm_{0}".format(cuda_arch)) if "+local_orbitals" in spec: targets.append("rmg-on-gpu") else: @@ -115,6 +112,10 @@ def cmake_args(self): args.append("-DUSE_INTERNAL_PSEUDOPOTENTIALS=0") if "+cuda" in spec: args.append("-DRMG_CUDA_ENABLED=1") + cuda_arch_list = spec.variants["cuda_arch"].value + cuda_arch = cuda_arch_list[0] + if cuda_arch != "none": + args.append("-DCUDA_FLAGS=-arch=sm_{0}".format(cuda_arch)) return args def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/rocal/package.py b/repos/spack_repo/builtin/packages/rocal/package.py index c1a6e8c6ae1..2ded2a3f156 100644 --- a/repos/spack_repo/builtin/packages/rocal/package.py +++ b/repos/spack_repo/builtin/packages/rocal/package.py @@ -3,20 +3,32 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary, ROCmPackage from spack.package import * -class Rocal(CMakePackage): +class Rocal(ROCmLibrary, CMakePackage): """The AMD rocAL is designed to efficiently decode and process images and videos from a variety of storage formats and modify them through a processing graph programmable by the user.""" homepage = "https://github.com/ROCm/rocAL" - url = "https://github.com/ROCm/rocAL/archive/refs/tags/rocm-6.4.1.tar.gz" + url = "https://github.com/ROCm/rocAL/archive/refs/tags/rocm-6.4.3.tar.gz" + tags = ["rocm"] maintainers("afzpatel", "srekolam", "renjithravindrankannath") + libraries = ["librocal"] license("MIT") + version("7.2.3", sha256="3998d8dfe979fc23243c26a0953e95211fb384ad0de223c063148440c634b8f7") + version("7.2.1", sha256="1c6fc36e6f2a9dd04d1c61b533aef8ce0c90b5ba2aa78ce283534a5d056e7edc") + version("7.2.0", sha256="0de82b955229ed3883e237f0ffd23b4052aa78a1308873185662ab46ca01e711") + version("7.1.1", sha256="e1ce21471a3f91eb26245daf0720e8ac52c95a382cbc6918b90cc1721c881f5f") + version("7.1.0", sha256="670ef46f6b39311cdba7752069fd831c9146c88636a9c185dfa10cdc304b9682") + version("7.0.2", sha256="ae9cde0d4bd4bb1d32899ac7f47679ec1b5ff5719dc91206f1911b4957b3f115") + version("7.0.0", sha256="f971874b0f2f552a15482a3714c8cca335996e5a747c25f9c19d50a4d2304b3c") + version("6.4.3", sha256="b25798a37372e671fa8e73a6c0ca651ccec8231ef71441b24614f0aa157811ff") + version("6.4.2", sha256="0ec6508d95fe1dbe5b711e6c0ee226790ca7245640fa0702f1ddc76f8981f691") version("6.4.1", sha256="9ed8949b7a0c588b6ab8b804e353819314659cedfecfdf91fffc1c73f33d3014") version("6.4.0", sha256="6239caa398c2779c1c7ecff3cebe7d206cd2fa591c1800f6f2ae16329876dd4a") version("6.3.3", sha256="aaccd951f176356561d8ab8210696d80a94553fd48ace72993a7cfac4b98d6cf") @@ -27,6 +39,15 @@ class Rocal(CMakePackage): version("6.2.1", sha256="77d3e63e02afaee6f1ee1d877d88b48c6ea66a0afca96a1313d0f1c4f8e86b2a") version("6.2.0", sha256="c7c265375a40d4478a628258378726c252caac424f974456d488fce43890e157") + amdgpu_targets = ROCmPackage.amdgpu_targets + + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) + depends_on("libjpeg-turbo@2.0.6+partial_decoder", when="@6.2.0") depends_on("libjpeg-turbo@3.0.2:", when="@6.2.1:") depends_on("python@3") @@ -34,15 +55,35 @@ class Rocal(CMakePackage): depends_on("ffmpeg@4.4:") depends_on("abseil-cpp", when="@6.3:") - for ver in ["6.2.0", "6.2.1", "6.2.4", "6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: - depends_on(f"mivisionx@{ver}", when=f"@{ver}") + for ver in [ + "6.2.0", + "6.2.1", + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: + for tgt in ROCmPackage.amdgpu_targets: + depends_on(f"mivisionx@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") depends_on(f"rpp@{ver}", when=f"@{ver}") patch( "https://github.com/ROCm/rocAL/commit/357dfcb25b9ff959615efa45736d4368cf7b51fd.patch?full_index=1", sha256="5df45c3a0e870d6e6310a23071e05f1795a450eef5fde6445cb37caf2653a86f", - when="@6.4:", + when="@6.4", ) def patch(self): @@ -134,6 +175,8 @@ def cmake_args(self): # force rocAL to use Spack installed python args.append(self.define("PYTHON_VERSION_SUGGESTED", self.spec["python"].version)) args.append(self.define("Python3_ROOT_DIR", self.spec["python"].prefix)) + if "auto" not in self.spec.variants["amdgpu_target"]: + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) return args def check(self): diff --git a/repos/spack_repo/builtin/packages/rocalution/package.py b/repos/spack_repo/builtin/packages/rocalution/package.py index 26c1a40cd52..8526e7ac549 100644 --- a/repos/spack_repo/builtin/packages/rocalution/package.py +++ b/repos/spack_repo/builtin/packages/rocalution/package.py @@ -21,13 +21,23 @@ class Rocalution(CMakePackage): homepage = "https://github.com/ROCm/rocALUTION" git = "https://github.com/ROCm/rocALUTION.git" - url = "https://github.com/ROCm/rocALUTION/archive/rocm-6.4.1.tar.gz" + url = "https://github.com/ROCm/rocALUTION/archive/rocm-6.4.3.tar.gz" tags = ["rocm"] maintainers("cgmb", "srekolam", "renjithravindrankannath", "afzpatel") - libraries = ["librocalution_hip"] + libraries = ["librocalution"] license("MIT") + + version("7.2.3", sha256="6092bf6f59435b573f6d44fd4e78aa515f2e1f0c1b516f2d9f4e76a5a0fbd049") + version("7.2.1", sha256="09b22b15ba70b8f3c8b5d0a26dc5eb5d2318cbf9c079b1fd3897382c65aa5892") + version("7.2.0", sha256="15cf2f3cded70c300a2b5ee2af5b887397640ece922b4e384daef26e3ef65656") + version("7.1.1", sha256="354c892f1e6964977631c681876dbb45a96d4ed07a103403232ca5ec7c85a3cf") + version("7.1.0", sha256="0f8d8c24317b30d7269841b9fe5ab2d24dddd3d5132e84b4f8ac1cd9d30b0ff2") + version("7.0.2", sha256="638e9c5f677a8b8c3437dacdcdd0f0d7cc70546d8bbd4e86813a5b90703a0619") + version("7.0.0", sha256="0ca9d0e4a9ade70370cb2cc5c8f29206507a7e941385933ba41a39ea82b53d5a") + version("6.4.3", sha256="e74efb3ed6925c5552e5c488f40ac9610e00f100433d9bda92ccb6985878f46f") + version("6.4.2", sha256="74520eba1005c4db4d7c9bc1cb00469acd6d65755ca53cd1bb842c82dd418570") version("6.4.1", sha256="42e1478edd1a96a5b72dd71b8859529bbcb0cac2f4ad36b907fa2479e7cab629") version("6.4.0", sha256="dcd6cccb55136362bedb4681f10eb9c9fe7f958f63802f85573732c2cd7a5185") version("6.3.3", sha256="bec6388e74b74922c2dc3af0d73ff0e4cafdabad9e8473181079df09de81c11a") @@ -44,9 +54,6 @@ class Rocalution(CMakePackage): version("6.0.0", sha256="cabf37691b8db00c82bda49c7dcfaefd9b9067b7d097afa43b7a5f86c45bff99") version("5.7.1", sha256="b95afa1285759843c5fea1ad6e1c1edf283922e0d448db03a3e1f42b6942bc24") version("5.7.0", sha256="48232a0d1250debce89e39a233bd0b5d52324a2454c078b99c9d44965cbbc0e9") - with default_args(deprecated=True): - version("5.6.1", sha256="7197b3617a0c91e90adaa32003c04d247a5f585d216e77493d20984ba215addb") - version("5.6.0", sha256="7397a2039e9615c0cf6776c33c4083c00b185b5d5c4149c89fea25a8976a3097") amdgpu_targets = ROCmPackage.amdgpu_targets @@ -67,8 +74,6 @@ class Rocalution(CMakePackage): depends_on("cmake@3.5:", type="build") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -85,6 +90,15 @@ class Rocalution(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"rocprim@{ver}", when=f"@{ver}") @@ -137,12 +151,15 @@ def cmake_args(self): self.define("CMAKE_MODULE_PATH", self.spec["hip"].prefix.lib.cmake.hip), ] if "auto" not in self.spec.variants["amdgpu_target"]: - args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) + if self.spec.satisfies("@7.1:"): + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) + else: + args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) if self.spec.satisfies("^cmake@3.21.0:3.21.2"): args.append(self.define("__skip_rocmclang", "ON")) - if self.spec.satisfies("@5.6:6.3.1"): + if self.spec.satisfies("@:6.3.1"): args.append(self.define("BUILD_FILE_REORG_BACKWARD_COMPATIBILITY", True)) return args diff --git a/repos/spack_repo/builtin/packages/rocblas/0001-remove-blas-override-7.2.patch b/repos/spack_repo/builtin/packages/rocblas/0001-remove-blas-override-7.2.patch new file mode 100644 index 00000000000..1470bd92481 --- /dev/null +++ b/repos/spack_repo/builtin/packages/rocblas/0001-remove-blas-override-7.2.patch @@ -0,0 +1,19 @@ +diff --git a/projects/rocblas/clients/CMakeLists.txt b/projects/rocblas/clients/CMakeLists.txt +index 0f32675..65e458d 100644 +--- a/projects/rocblas/clients/CMakeLists.txt ++++ b/projects/rocblas/clients/CMakeLists.txt +@@ -163,14 +163,6 @@ if( BUILD_CLIENTS_BENCHMARKS OR BUILD_CLIENTS_TESTS) + find_package(PkgConfig) + if(NOT PKG_CONFIG_FOUND) + message( FATAL_ERROR "Could not find libblis and pkgconfig is not available" ) +- else() +- pkg_search_module(PKGBLAS cblas) +- if(PKGBLAS_FOUND) +- set( BLAS_LIBRARY ${PKGBLAS_LIBRARIES} ) +- set( BLAS_INCLUDE_DIR ${PKGBLAS_INCLUDE_DIRS} ) +- else() +- message( FATAL_ERROR "Could not find libblis and pkgconfig can not find any other implementation of cblas" ) +- endif() + endif() + endif() + else() diff --git a/repos/spack_repo/builtin/packages/rocblas/0001-remove-blas-override.patch b/repos/spack_repo/builtin/packages/rocblas/0001-remove-blas-override.patch new file mode 100644 index 00000000000..982f2114399 --- /dev/null +++ b/repos/spack_repo/builtin/packages/rocblas/0001-remove-blas-override.patch @@ -0,0 +1,19 @@ +diff --git a/clients/CMakeLists.txt b/clients/CMakeLists.txt +index 0f32675..65e458d 100644 +--- a/clients/CMakeLists.txt ++++ b/clients/CMakeLists.txt +@@ -163,14 +163,6 @@ if( BUILD_CLIENTS_BENCHMARKS OR BUILD_CLIENTS_TESTS) + find_package(PkgConfig) + if(NOT PKG_CONFIG_FOUND) + message( FATAL_ERROR "Could not find libblis and pkgconfig is not available" ) +- else() +- pkg_search_module(PKGBLAS cblas) +- if(PKGBLAS_FOUND) +- set( BLAS_LIBRARY ${PKGBLAS_LIBRARIES} ) +- set( BLAS_INCLUDE_DIR ${PKGBLAS_INCLUDE_DIRS} ) +- else() +- message( FATAL_ERROR "Could not find libblis and pkgconfig can not find any other implementation of cblas" ) +- endif() + endif() + endif() + else() diff --git a/repos/spack_repo/builtin/packages/rocblas/package.py b/repos/spack_repo/builtin/packages/rocblas/package.py index 0995b3a0a73..df543cedc73 100644 --- a/repos/spack_repo/builtin/packages/rocblas/package.py +++ b/repos/spack_repo/builtin/packages/rocblas/package.py @@ -14,15 +14,29 @@ class Rocblas(CMakePackage): """Radeon Open Compute BLAS library""" homepage = "https://github.com/ROCm/rocBLAS/" - git = "https://github.com/ROCm/rocBLAS.git" - url = "https://github.com/ROCm/rocBLAS/archive/rocm-6.4.1.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("cgmb", "srekolam", "renjithravindrankannath", "haampie", "afzpatel") libraries = ["librocblas"] - license("MIT") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/rocBLAS/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="29d43270ccf5d4818d261993f964d4fce4bd0a55c2b6dde60d1529b6c227a873") + version("7.1.0", sha256="54f38222d0e58344cf5c86f151d418c071b59145297fd2ed953bb561df1e12c3") + version("7.0.2", sha256="8398cda68242db2386abc9eaf00c3588bb27e2b382e29be2bc5624c2d4ac8a99") + version("7.0.0", sha256="337a77cec31927e484672002d245d3aebf7a67e95658a8477fc593c95cf281fb") + version("6.4.3", sha256="754dcc88b30468a2293d2406d7fe40f78dc92dd77c193758f937532217ecdad3") + version("6.4.2", sha256="703226c458bb3dd1155aad8bdc02cdae2ff789c6b44e41e4a49ae28e40baff98") version("6.4.1", sha256="517950ff6b3715dee8b2bcfbdd3968c65e1910e4b8e353e148574ae08aa6dc73") version("6.4.0", sha256="ab8e75c9f98d17817a650aa4f06ff1e6c6af92cd143079e361cb6a0c96676aaa") version("6.3.3", sha256="73e91bd50c920b818742fa5bf9990c0676be5bfbafe321d5781607dc2ce27060") @@ -39,9 +53,6 @@ class Rocblas(CMakePackage): version("6.0.0", sha256="befa4a75f1de0ea37f2358d4c2de5406d7bce671ca9936e2294b64d3b3bafb60") version("5.7.1", sha256="2984a5ed0ea5a05d40996ee3fddecb24399cbe8ea3e4921fc254e54d8f52fe4f") version("5.7.0", sha256="024edd98de9687ee5394badc4dd4c543eef4eb3f71c96ff64100705d851e1744") - with default_args(deprecated=True): - version("5.6.1", sha256="73896ebd445162a69af97f9fd462684609b4e0cf617eab450cd4558b4a23941e") - version("5.6.0", sha256="6a70b27eede02c45f46095a6ce8421af9a774a565e39f5e1074783ecf00c1ea7") amdgpu_targets = ROCmPackage.amdgpu_targets @@ -53,6 +64,7 @@ class Rocblas(CMakePackage): ) variant("tensile", default=True, description="Use Tensile as a backend") variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") + variant("hipblaslt", default=True, when="@6.3:", description="Build with hipblaslt") conflicts("+asan", when="os=rhel9") conflicts("+asan", when="os=centos7") @@ -67,12 +79,29 @@ class Rocblas(CMakePackage): depends_on("googletest@1.10.0:", type="test") depends_on("amdblis", type="test") - for ver in ["6.2.0", "6.2.1", "6.2.4", "6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: + for ver in [ + "6.2.0", + "6.2.1", + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"rocm-smi-lib@{ver}", type="test", when=f"@{ver}") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -89,16 +118,79 @@ class Rocblas(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + ]: + depends_on(f"rocm-openmp-extras@{ver}", type="test", when=f"@{ver}") + + for ver in [ + "5.7.0", + "5.7.1", + "6.0.0", + "6.0.2", + "6.1.0", + "6.1.1", + "6.1.2", + "6.2.0", + "6.2.1", + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"llvm-amdgpu@{ver}", type="build", when=f"@{ver}") depends_on(f"rocminfo@{ver}", type="build", when=f"@{ver}") depends_on(f"rocm-cmake@{ver}", type="build", when=f"@{ver}") - depends_on(f"rocm-openmp-extras@{ver}", type="test", when=f"@{ver}") - for ver in ["6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: - depends_on(f"hipblaslt@{ver}", when=f"@{ver}") - for ver in ["6.4.0", "6.4.1"]: + for ver in [ + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: + depends_on(f"hipblaslt@{ver}", when=f"@{ver} +hipblaslt") + + for ver in [ + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"roctracer-dev@{ver}", when=f"@{ver}") depends_on("python@3.6:", type="build") @@ -116,8 +208,6 @@ class Rocblas(CMakePackage): depends_on("procps", type="build") for t_version, t_commit in [ - ("@5.6.0", "7d0a9d040c3bbae893df7ecef6a19d9cd1c304aa"), - ("@5.6.1", "7d0a9d040c3bbae893df7ecef6a19d9cd1c304aa"), ("@5.7.0", "97e0cfc2c8cb87a1e38901d99c39090dc4181652"), ("@5.7.1", "97e0cfc2c8cb87a1e38901d99c39090dc4181652"), ("@6.0.0", "17df881bde80fc20f997dfb290f4bb4b0e05a7e9"), @@ -134,20 +224,45 @@ class Rocblas(CMakePackage): ("@6.3.3", "aca95d1743c243dd0dd0c8b924608bc915ce1ae7"), ("@6.4.0", "be49885fce2a61b600ae4593f1c2d00c8b4fa11e"), ("@6.4.1", "be49885fce2a61b600ae4593f1c2d00c8b4fa11e"), + ("@6.4.2", "be49885fce2a61b600ae4593f1c2d00c8b4fa11e"), + ("@6.4.3", "be49885fce2a61b600ae4593f1c2d00c8b4fa11e"), + ("@7.0.0", "cca3c8136aa812109629e6291ce9f0ca846b68d3"), + ("@7.0.2", "63c27e505cb532ff8e568d737bfdbd9e1d024665"), + ("@7.1.0", "0c8314da90fee8cf3b16dcb1bbc75bc1266e123f"), + ("@7.1.1", "0c8314da90fee8cf3b16dcb1bbc75bc1266e123f"), ]: resource( name="Tensile", git="https://github.com/ROCm/Tensile.git", commit=t_commit, + placement="Tensile", when=f"{t_version} +tensile", ) - patch("0007-add-rocm-openmp-extras-include-dir.patch", when="@5.6:5.7") + patch("0007-add-rocm-openmp-extras-include-dir.patch", when="@5.7") patch("0008-link-roctracer.patch", when="@6.4") - patch("0009-use-rocm-smi-config.patch", when="@6.4") + patch("0009-use-rocm-smi-config.patch", when="@6.4:7.1") + patch("0001-remove-blas-override.patch", when="@7.1") + patch("0001-remove-blas-override-7.2.patch", when="@7.2:") + patch( + "https://github.com/ROCm/rocm-libraries/commit/b3b20a3ea53051a14f30c28e577620c0beeea57c.patch?full_index=1", + sha256="1f436c5ad03c8fdc021f309a1ad84d4356f30c39c4cc940bb8267841561bf5f1", + when="@7.2", + ) + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/rocblas" + else: + return "." def setup_build_environment(self, env: EnvironmentModifications) -> None: - env.set("CXX", self.spec["hip"].hipcc) + if self.spec.satisfies("@:7.0"): + env.set("CXX", self.spec["hip"].hipcc) + else: + env.set("CC", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang") + env.set("CXX", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++") if self.spec.satisfies("+asan"): env.set("CC", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang") env.set("CXX", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang++") @@ -169,7 +284,7 @@ def determine_version(cls, lib): def cmake_args(self): args = [ - self.define("BUILD_CLIENTS_TESTS", self.run_tests and "@4.2.0:" in self.spec), + self.define("BUILD_CLIENTS_TESTS", self.run_tests), self.define("BUILD_CLIENTS_BENCHMARKS", "OFF"), self.define("BUILD_CLIENTS_SAMPLES", "OFF"), self.define("RUN_HEADER_TESTING", "OFF"), @@ -179,45 +294,56 @@ def cmake_args(self): ] if self.run_tests: args.append(self.define("LINK_BLIS", "ON")) - args.append( - self.define("ROCM_OPENMP_EXTRAS_DIR", self.spec["rocm-openmp-extras"].prefix) - ) args.append( self.define("BLIS_INCLUDE_DIR", self.spec["amdblis"].prefix + "/include/blis/") ) args.append( self.define("BLAS_LIBRARY", self.spec["amdblis"].prefix + "/lib/libblis.a") ) + if self.spec.satisfies("@:7.1"): + args.append( + self.define("ROCM_OPENMP_EXTRAS_DIR", self.spec["rocm-openmp-extras"].prefix) + ) if "+tensile" in self.spec: - tensile_path = join_path(self.stage.source_path, "Tensile") - if self.spec.satisfies("@:6.2"): - tensile_compiler = "hipcc" + if self.spec.satisfies("@:7.0"): + args.append(self.define("Tensile_COMPILER", "hipcc")) else: - tensile_compiler = "amdclang++" + args.append( + self.define( + "Tensile_COMPILER", self.spec["llvm-amdgpu"].prefix + "/bin/amdclang++" + ) + ) args += [ - self.define("Tensile_TEST_LOCAL_PATH", tensile_path), - self.define("Tensile_COMPILER", tensile_compiler), self.define("Tensile_LOGIC", "asm_full"), self.define("BUILD_WITH_TENSILE_HOST", "@3.7.0:" in self.spec), self.define("Tensile_LIBRARY_FORMAT", "msgpack"), ] + if self.spec.satisfies("@:7.1"): + tensile_path = join_path(self.stage.source_path, "Tensile") + args.append(self.define("Tensile_TEST_LOCAL_PATH", tensile_path)) # Restrict the number of jobs Tensile can spawn. # If we don't specify otherwise, Tensile creates a job per available core, # and that consumes a lot of system memory. # https://github.com/ROCm/Tensile/blob/93e10678a0ced7843d9332b80bc17ebf9a166e8e/Tensile/Parallel.py#L38 args.append(self.define("Tensile_CPU_THREADS", min(16, make_jobs))) - # See https://github.com/ROCm/rocBLAS/commit/c1895ba4bb3f4f5947f3818ebd155cf71a27b634 if "auto" not in self.spec.variants["amdgpu_target"]: - args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) + if self.spec.satisfies("@7.1:"): + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) + else: + args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) # See https://github.com/ROCm/rocBLAS/issues/1196 if self.spec.satisfies("^cmake@3.21.0:3.21.2"): args.append(self.define("__skip_rocmclang", "ON")) - if self.spec.satisfies("@5.6.0:6.3.1"): + if self.spec.satisfies("@:6.3.1"): args.append(self.define("BUILD_FILE_REORG_BACKWARD_COMPATIBILITY", True)) + if self.spec.satisfies("@6.3:"): + args.append(self.define_from_variant("BUILD_WITH_HIPBLASLT", "hipblaslt")) + if self.spec.satisfies("@7.1:"): + args.append(self.define("ROCTX_PATH", self.spec["roctracer-dev"].prefix)) return args @run_after("build") diff --git a/repos/spack_repo/builtin/packages/rocdecode/package.py b/repos/spack_repo/builtin/packages/rocdecode/package.py index 94d54f3f6ea..aee917a08ff 100644 --- a/repos/spack_repo/builtin/packages/rocdecode/package.py +++ b/repos/spack_repo/builtin/packages/rocdecode/package.py @@ -3,23 +3,33 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.cmake import CMakePackage -from spack_repo.builtin.build_systems.rocm import ROCmPackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary, ROCmPackage from spack.package import * -class Rocdecode(CMakePackage): +class Rocdecode(ROCmLibrary, CMakePackage): """rocDecode is a high performance video decode SDK for AMD hardware""" homepage = "https://github.com/ROCm/rocDecode" git = "https://github.com/ROCm/rocDecode.git" - url = "https://github.com/ROCm/rocDecode/archive/refs/tags/rocm-6.2.0.tar.gz" + url = "https://github.com/ROCm/rocDecode/archive/refs/tags/rocm-6.4.3.tar.gz" tags = ["rocm"] maintainers("afzpatel", "srekolam", "renjithravindrankannath") + libraries = ["librocdecode"] license("MIT") + version("7.2.3", sha256="058ad6046a2c24e2610a87c4eefaebf62e4f94e5fcd10c42fd6d1863835fe593") + version("7.2.1", sha256="59e162fcc472aefcf68cfe28b50316612572ca9f1256696537282f703310abaa") + version("7.2.0", sha256="70c3828364a289098123111aa27d37bab7238065b6ee8ceae35810ad4842bf0a") + version("7.1.1", sha256="76e7a27eb49b262ed68c2c8f13a20aba8700113087bc58068c396979e6051596") + version("7.1.0", sha256="ccd8d7fe8010214a00d75ac0299747ad9ebf25849f2575cb096b814ec071d952") + version("7.0.2", sha256="4d8c49236135105f252fe6ccd8652a440b4646129cad8595eead49cc7d34aa96") + version("7.0.0", sha256="f0c1dd260bf091c44d15718008630d0b882b8f444f4740c9d8edcbbed1e759fe") + version("6.4.3", sha256="dd485e1cf24eb6f7315c32afcd2eb639a64dfb100a747bdbef3aa3235c4e3fa9") + version("6.4.2", sha256="43c3bc2fe71c150bd6e646c95f834002df80d0bc6489082731c0be68fb785eac") version("6.4.1", sha256="35e364cec1405c76cfbb91215e1a327efea1e60340d8c8df12c0e5b2f0e1321e") version("6.4.0", sha256="d82c17687cc8ccac67fe2d401edd25c9825b38777b7a7b4100f84658838a1e50") version("6.3.3", sha256="e72f53674527b7a6c3cba3b7555fee32117f0875107fd9e632a2ec1d5ce03489") @@ -44,6 +54,7 @@ class Rocdecode(CMakePackage): depends_on("libva", type="build", when="@6.2:") depends_on("libdrm", type="build", when="@6.4:") + depends_on("ffmpeg", when="@7.0:") for ver in [ "6.1.0", @@ -58,24 +69,49 @@ class Rocdecode(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hip@{ver}", when=f"@{ver}") + for ver in [ + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: + depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") + patch("0001-add-amdgpu-drm-include.patch", when="@6.4") def patch(self): - filter_file( - r"${ROCM_PATH}/llvm/bin/clang++", - "{0}/bin/clang++".format(self.spec["llvm-amdgpu"].prefix), - "CMakeLists.txt", - string=True, - ) - filter_file( - r"${ROCM_PATH}/lib/llvm/bin/clang++", - "{0}/bin/clang++".format(self.spec["llvm-amdgpu"].prefix), - "CMakeLists.txt", - string=True, - ) + if self.spec.satisfies("@:7.0"): + filter_file( + r"${ROCM_PATH}/llvm/bin/clang++", + "{0}/bin/clang++".format(self.spec["llvm-amdgpu"].prefix), + "CMakeLists.txt", + string=True, + ) + filter_file( + r"${ROCM_PATH}/lib/llvm/bin/clang++", + "{0}/bin/clang++".format(self.spec["llvm-amdgpu"].prefix), + "CMakeLists.txt", + string=True, + ) def cmake_args(self): args = [] @@ -92,5 +128,11 @@ def cmake_args(self): "CMAKE_CXX_COMPILER", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++" ) ) + if self.spec.satisfies("@6.4"): args.append(self.define("AMDGPU_DRM_INCLUDE_DIRS", self.spec["libdrm"].prefix.include)) + if self.spec.satisfies("@7.0:"): + args.append( + self.define("LIBDRM_AMDGPU_INCLUDE_DIR", self.spec["libdrm"].prefix.include) + ) + args.append(self.define("LIBDRM_AMDGPU_LIBRARY", self.spec["libdrm"].prefix.lib)) return args diff --git a/repos/spack_repo/builtin/packages/rocfft/package.py b/repos/spack_repo/builtin/packages/rocfft/package.py index d4938c68247..37e804c527b 100644 --- a/repos/spack_repo/builtin/packages/rocfft/package.py +++ b/repos/spack_repo/builtin/packages/rocfft/package.py @@ -14,14 +14,29 @@ class Rocfft(CMakePackage): """Radeon Open Compute FFT library""" homepage = "https://github.com/ROCm/rocFFT/" - git = "https://github.com/ROCm/rocFFT.git" - url = "https://github.com/ROCm/rocfft/archive/rocm-6.4.1.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("cgmb", "srekolam", "renjithravindrankannath", "haampie", "afzpatel") libraries = ["librocfft"] - license("MIT") + + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/rocFFT/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="047e4e93e0b12869bf42136b5eb683df3a1635b01a58bbb25c8861df291ab285") + version("7.1.0", sha256="8cd4fcca0b8b730135f76bb34f95965348b1809061af65ff6bfbd4ad2ac85e0d") + version("7.0.2", sha256="05ccbdcb9d2860c72ff9665670aac44286aaaeabd4fb4e9530e7f4f1b5b01c71") + version("7.0.0", sha256="d0fb29b9ff90f603045cbe0f2f2d5db6fb9ff5d4d667d304565b80a62c1ed767") + version("6.4.3", sha256="9ccd198ab1ec1b729992d00fbe5f9e3955ed77690974d8bd1b713539b6c21c7e") + version("6.4.2", sha256="5dd068127129ad537de176d21d009f1b1b9540274dee13c486e9c4607629aa77") version("6.4.1", sha256="66e543990736bc4bf3b27fa085cca3bea0d42252f960be376371549707e35373") version("6.4.0", sha256="0e9f3f23d8facee65e32baaec7941119b56eb17313b8b514e1c3994c9777c320") version("6.3.3", sha256="b2edb5c39215b98e0abc485d2b277a0b8c6f87f06e9b0770a60f5568ef52e62e") @@ -38,9 +53,6 @@ class Rocfft(CMakePackage): version("6.0.0", sha256="fb8ba56572702e77e4383d922cd1fee4ad3fa5f63a5ebdb3d9c354439a446992") version("5.7.1", sha256="202f11f60dc8738e29bbd1b397d419e032794f8bffb7f48f2b31f09cc5f08bc2") version("5.7.0", sha256="3c4a1537a6ec76dc9b622644fe3890647306bf9f28f61c5d2028259c31bb964f") - with default_args(deprecated=True): - version("5.6.1", sha256="a65861e453587c3e6393da75b0b1976508c61f968aecda77fbec920fea48489e") - version("5.6.0", sha256="e3d4a6c1bdac78f9a22033f57011af783d560308103f73542f9e0e4dd133d38a") amdgpu_targets = ROCmPackage.amdgpu_targets @@ -72,13 +84,11 @@ class Rocfft(CMakePackage): depends_on("googletest@1.10.0:", type="test") depends_on("fftw@3.3.8:", type="test") depends_on("boost@1.64.0: +program_options", type="test") - depends_on("rocm-openmp-extras", type="test") + depends_on("rocm-openmp-extras", type="test", when="@:7.1") depends_on("hiprand", type="test") depends_on("rocrand", type="test") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -95,6 +105,15 @@ class Rocfft(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") @@ -116,6 +135,13 @@ class Rocfft(CMakePackage): when="@6.0.0", ) + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/rocfft" + else: + return "." + def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("CXX", self.spec["hip"].hipcc) if self.spec.satisfies("+asan"): @@ -153,12 +179,15 @@ def cmake_args(self): tgt = self.spec.variants["amdgpu_target"] if "auto" not in tgt: - args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) + if self.spec.satisfies("@7.1:"): + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) + else: + args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) # See https://github.com/ROCm/rocFFT/issues/322 if self.spec.satisfies("^cmake@3.21.0:3.21.2"): args.append(self.define("__skip_rocmclang", "ON")) - if self.spec.satisfies("@5.6.0:6.3.1"): + if self.spec.satisfies("@:6.3.1"): args.append(self.define("BUILD_FILE_REORG_BACKWARD_COMPATIBILITY", True)) return args diff --git a/repos/spack_repo/builtin/packages/rocjpeg/package.py b/repos/spack_repo/builtin/packages/rocjpeg/package.py index 0a68d8e7204..bb89d0bfb47 100644 --- a/repos/spack_repo/builtin/packages/rocjpeg/package.py +++ b/repos/spack_repo/builtin/packages/rocjpeg/package.py @@ -2,25 +2,34 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary from spack.package import * -class Rocjpeg(CMakePackage): +class Rocjpeg(ROCmLibrary, CMakePackage): """rocJPEG is a high-performance jpeg decode SDK for decoding jpeg images using a hardware-accelerated jpeg decoder on AMD's GPUs.""" homepage = "https://github.com/ROCm/rocJPEG" git = "https://github.com/ROCm/rocJPEG.git" - url = "https://github.com/ROCm/rocJPEG/archive/refs/tags/rocm-6.4.1.tar.gz" + url = "https://github.com/ROCm/rocJPEG/archive/refs/tags/rocm-6.4.2.tar.gz" tags = ["rocm"] maintainers("afzpatel", "srekolam", "renjithravindrankannath") + libraries = ["librocjpeg"] license("MIT") - + version("7.2.3", sha256="0aafd0468bc79575ad3bb5f51c02a1dd1a696db87c8ce4151eeaf8573cb35ade") + version("7.2.1", sha256="b1e28958d7e3986856388e98e04995b96601c8664cf325b9d3e3140e0ff0711a") + version("7.2.0", sha256="703af33cb0784cd279dbe581dec2a7b0993ad887fadc296648038d5e918f229a") + version("7.1.1", sha256="38ed6ad6aa6de3f830a157297ff239caa1a65010e7b4200891d37b7f31378f4b") + version("7.1.0", sha256="26ea59dd772c57ae5476a6ba3799bf86981694fbba9b87af882ed76c1b89c639") + version("7.0.2", sha256="fe1813e333dfb958d74693301ffb70e1baa2601ffd8b8d644f4026e56048164a") + version("7.0.0", sha256="00dfac45d1776f5e79704fc56bae1b5017fc19326f69e363a49285ebf72bff2e") + version("6.4.3", sha256="28c95c30603d6a0e39632cd31e8adcbe80786f5d77e15bb88cfef341eaf4eb94") + version("6.4.2", sha256="543d0a25b7da44885c99845041a54f391f484e0f1e051973c5993f08185d82fa") version("6.4.1", sha256="23eed12646409d8f931f6bbdacf68df246c762877a3c0ef723568f89f0f5b40f") version("6.4.0", sha256="5488f5ab9c475566716d99ad32fb4c20686ac1bcc00c9242221abdbde2b94ffe") version("6.3.3", sha256="65081b20ab3df82337fdcaf3d4e614c75f946656a4ea7bc00ac0d1bbd81e3e83") @@ -30,7 +39,23 @@ class Rocjpeg(CMakePackage): depends_on("cxx", type="build") - for ver in ["6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: + for ver in [ + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") depends_on(f"hip@{ver}", when=f"@{ver}") @@ -57,5 +82,11 @@ def cmake_args(self): "CMAKE_CXX_COMPILER", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++" ) ) + if self.spec.satisfies("@6.4"): args.append(self.define("AMDGPU_DRM_INCLUDE_DIRS", self.spec["libdrm"].prefix.include)) + if self.spec.satisfies("@7.0:"): + args.append( + self.define("LIBDRM_AMDGPU_INCLUDE_DIR", self.spec["libdrm"].prefix.include) + ) + args.append(self.define("LIBDRM_AMDGPU_LIBRARY", self.spec["libdrm"].prefix.lib)) return args diff --git a/repos/spack_repo/builtin/packages/rocketmq/package.py b/repos/spack_repo/builtin/packages/rocketmq/package.py index e363cd4979f..5db15e37b4a 100644 --- a/repos/spack_repo/builtin/packages/rocketmq/package.py +++ b/repos/spack_repo/builtin/packages/rocketmq/package.py @@ -20,14 +20,6 @@ class Rocketmq(Package): license("Apache-2.0", checked_by="wdconinc") version("5.3.1", sha256="251d7261fa26d35eaffef6a2fce30880054af7a5883d578dd31574bf908a8b97") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2023-37582 - version("4.6.0", sha256="584910d50639297808dd0b86fcdfaf431efd9607009a44c6258d9a0e227748fe") - version("4.5.2", sha256="f7711ef9c203d7133e70e0e1e887025d7dd80d29f6d5283ca6022b12576b8aba") - version("4.5.1", sha256="0c46e4b652b007d07e9c456eb2e275126b9210c27cd56bee518809f33c8ed437") - version("4.5.0", sha256="d75dc26291b47413f7c565bc65499501e3499f01beb713246586f72844e31042") - version("4.4.0", sha256="8a948e240e8d2ebbf4c40c180105d088a937f82a594cd1f2ae527b20349f1d34") - version("4.3.2", sha256="e31210a86266ee218eb6ff4f8ca6e211439895459c3bdad162067b573d9e3415") depends_on("java@8:", type="run") diff --git a/repos/spack_repo/builtin/packages/rocksdb/package.py b/repos/spack_repo/builtin/packages/rocksdb/package.py index 1d84907fc25..5c2109c5fff 100644 --- a/repos/spack_repo/builtin/packages/rocksdb/package.py +++ b/repos/spack_repo/builtin/packages/rocksdb/package.py @@ -17,6 +17,9 @@ 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") version("9.2.1", sha256="bb20fd9a07624e0dc1849a8e65833e5421960184f9c469d508b58ed8f40a780f") version("8.6.7", sha256="cdb2fc3c6a556f20591f564cb8e023e56828469aa3f76e1d9535c443ba1f0c1a") @@ -37,9 +40,10 @@ class Rocksdb(MakefilePackage): variant("lz4", default=True, description="Enable lz4 compression support") variant("shared", default=True, description="Build shared library") variant("snappy", default=False, description="Enable snappy compression support") - variant("static", default=True, description="Build static library") + variant("static", default=False, description="Build static library") variant("zlib", default=True, description="Enable zlib compression support") variant("zstd", default=False, description="Enable zstandard compression support") + variant("debug", default=False, description="Enable debug symbols") variant("tbb", default=False, description="Enable Intel TBB support") variant("werror", default=False, description="Build with -Werror") variant("rtti", default=False, description="Build with RTTI") @@ -70,7 +74,13 @@ class Rocksdb(MakefilePackage): phases = ["install"] def patch(self): - filter_file("-march=native", "", join_path("build_tools", "build_detect_platform")) + filter_file( + "-march=native", "", join_path("build_tools", "build_detect_platform"), string=True + ) + + if "~debug" in self.spec: + filter_file("CFLAGS += -g", "CFLAGS += ", "Makefile", string=True) + filter_file("CXXFLAGS += -g", "CXXFLAGS += ", "Makefile", string=True) def install(self, spec, prefix): cflags = [] @@ -151,7 +161,7 @@ def install_pkgconfig(self): f.write("\n") f.write("Name: rocksdb\n") f.write( - "Description: RocksDB: A Persistent Key-Value Store for" " Flash and RAM Storage\n" + "Description: RocksDB: A Persistent Key-Value Store for Flash and RAM Storage\n" ) f.write("Version: {0}\n".format(self.spec.version)) f.write("Cflags: -I${includedir}\n") diff --git a/repos/spack_repo/builtin/packages/rocm_bandwidth_test/add_numa_hsa.patch b/repos/spack_repo/builtin/packages/rocm_bandwidth_test/add_numa_hsa.patch new file mode 100644 index 00000000000..e4d26759b1f --- /dev/null +++ b/repos/spack_repo/builtin/packages/rocm_bandwidth_test/add_numa_hsa.patch @@ -0,0 +1,38 @@ +diff --git a/deps/external/cpp_std_support/include/cppstd_hooks.hpp b/deps/external/cpp_std_support/include/cppstd_hooks.hpp +index e7a5086..197d47f 100644 +--- a/deps/external/cpp_std_support/include/cppstd_hooks.hpp ++++ b/deps/external/cpp_std_support/include/cppstd_hooks.hpp +@@ -91,7 +91,7 @@ + + // clang-format off + #if defined(__has_include) +- #if ((__has_include() && (__cplusplus >= 202002L) && ((__cpp_lib_format) && (__cpp_lib_format >= 201907L)))) ++ #if ((__has_include() && (__cplusplus >= 202002L))) + #include + + namespace amd_fmt = std; +diff --git a/plugins/tb/transferbench/CMakeLists.txt b/plugins/tb/transferbench/CMakeLists.txt +index 2bf238b..966ec8a 100644 +--- a/plugins/tb/transferbench/CMakeLists.txt ++++ b/plugins/tb/transferbench/CMakeLists.txt +@@ -94,13 +94,18 @@ else() + message(WARNING "IBVerbs library not found. Building without NIC executor support") + endif() + +-link_libraries(numa hsa-runtime64 pthread) ++list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/modules") ++ ++find_package(hsa-runtime64 PATHS /opt/rocm REQUIRED) ++find_package(NUMA REQUIRED) ++ ++link_libraries(${NUMA_LIBRARIES} hsa-runtime64::hsa-runtime64 pthread) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY .) + set(AMD_WORK_BENCH_COMMON_INCLUDE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../../common/) + set(AMD_WORK_BENCH_LOCAL_PLUGINS_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/include/Presets) + ##add_executable(${AMD_PROJECT_NAME} src/Client.cpp) + add_library(${AMD_PROJECT_NAME} SHARED src/Client.cpp include/plugin_tb_link.hpp) +-target_include_directories(${AMD_PROJECT_NAME} PRIVATE ${AMD_WORK_BENCH_COMMON_INCLUDE_DIRECTORY} ${AMD_WORK_BENCH_LOCAL_PLUGINS_INCLUDE_DIRS}) ++target_include_directories(${AMD_PROJECT_NAME} PRIVATE ${AMD_WORK_BENCH_COMMON_INCLUDE_DIRECTORY} ${AMD_WORK_BENCH_LOCAL_PLUGINS_INCLUDE_DIRS} ${NUMA_INCLUDE_DIR}) + if (BUILD_INTERNAL_BINARY_VERSION) + set(BUILD_BINARY_VERSION ${BUILD_INTERNAL_BINARY_VERSION}) + else() diff --git a/repos/spack_repo/builtin/packages/rocm_bandwidth_test/change_install_path.patch b/repos/spack_repo/builtin/packages/rocm_bandwidth_test/change_install_path.patch new file mode 100644 index 00000000000..bd66a038390 --- /dev/null +++ b/repos/spack_repo/builtin/packages/rocm_bandwidth_test/change_install_path.patch @@ -0,0 +1,33 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4aea4d5..8b87eb0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -262,22 +262,24 @@ if(AMD_APP_STANDALONE_BUILD_PACKAGE OR AMD_APP_ENGINEERING_BUILD_PACKAGE) + ## This installs $prefix/lib and $prefix/lib/plugins ($prefix/lib//plugins) + ## Note: The ending '/' in the is important ${DIRECTORY} is important. + set(AMD_TARGET_INSTALL_PATH "${AMD_ROCM_STAGING_INSTALL_PATH}/${AMD_STANDALONE_STAGING_INSTALL_LIBDIR}") ++ set(AMD_ACTUAL_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/${AMD_STANDALONE_STAGING_INSTALL_LIBDIR}") + install(DIRECTORY "${AMD_TARGET_INSTALL_STAGING_AREA_BASE}/${AMD_TARGET_INSTALL_PATH}/" +- DESTINATION "${AMD_TARGET_INSTALL_PATH}" ++ DESTINATION "${AMD_ACTUAL_INSTALL_PATH}" + USE_SOURCE_PERMISSIONS + ) + + ## This installs $prefix/bin + set(AMD_TARGET_INSTALL_PATH "${AMD_ROCM_STAGING_INSTALL_PATH}/${AMD_STANDALONE_STAGING_INSTALL_BINDIR}") ++ set(AMD_ACTUAL_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/${AMD_STANDALONE_STAGING_INSTALL_BINDIR}") + install(DIRECTORY "${AMD_TARGET_INSTALL_STAGING_AREA_BASE}/${AMD_TARGET_INSTALL_PATH}/" +- DESTINATION "${AMD_TARGET_INSTALL_PATH}" ++ DESTINATION "${AMD_ACTUAL_INSTALL_PATH}" + USE_SOURCE_PERMISSIONS + ) + + ## This install documentation +- set(AMD_TARGET_INSTALL_PATH "${AMD_ROCM_STAGING_INSTALL_PATH}/${AMD_STANDALONE_STAGING_INSTALL_DOCDIR}/${AMD_TARGET_NAME}") ++ set(AMD_ACTUAL_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/${AMD_STANDALONE_STAGING_INSTALL_DOCDIR}/${AMD_TARGET_NAME}") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md") +- install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${AMD_TARGET_INSTALL_PATH}) ++ install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${AMD_ACTUAL_INSTALL_PATH}) + + include(CPack) + endif() diff --git a/repos/spack_repo/builtin/packages/rocm_bandwidth_test/change_install_path_7.0.2.patch b/repos/spack_repo/builtin/packages/rocm_bandwidth_test/change_install_path_7.0.2.patch new file mode 100644 index 00000000000..54c33f4a9a8 --- /dev/null +++ b/repos/spack_repo/builtin/packages/rocm_bandwidth_test/change_install_path_7.0.2.patch @@ -0,0 +1,30 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 74c341e..09b1711 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -283,14 +283,14 @@ if(AMD_APP_STANDALONE_BUILD_PACKAGE OR AMD_APP_ENGINEERING_BUILD_PACKAGE) + ## Note: The ending '/' in the is important ${DIRECTORY} is important. + set(AMD_TARGET_INSTALL_PATH "${AMD_ROCM_STAGING_INSTALL_PATH}/${AMD_STANDALONE_STAGING_INSTALL_LIBDIR}") + install(DIRECTORY "${AMD_TARGET_INSTALL_STAGING_AREA_BASE}/${AMD_TARGET_INSTALL_PATH}/" +- DESTINATION "${AMD_TARGET_INSTALL_PATH}" ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/${AMD_STANDALONE_STAGING_INSTALL_LIBDIR}" + USE_SOURCE_PERMISSIONS + ) + + ## This installs $prefix/bin + set(AMD_TARGET_INSTALL_PATH "${AMD_ROCM_STAGING_INSTALL_PATH}/${AMD_STANDALONE_STAGING_INSTALL_BINDIR}") + install(DIRECTORY "${AMD_TARGET_INSTALL_STAGING_AREA_BASE}/${AMD_TARGET_INSTALL_PATH}/" +- DESTINATION "${AMD_TARGET_INSTALL_PATH}" ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/${AMD_STANDALONE_STAGING_INSTALL_BINDIR}" + USE_SOURCE_PERMISSIONS + ) + +@@ -298,7 +298,7 @@ if(AMD_APP_STANDALONE_BUILD_PACKAGE OR AMD_APP_ENGINEERING_BUILD_PACKAGE) + set(AMD_TARGET_INSTALL_PATH + "${AMD_ROCM_STAGING_INSTALL_PATH}/${AMD_STANDALONE_STAGING_INSTALL_DOCDIR}/${CPACK_PACKAGE_NAME}") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md") +- install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${AMD_TARGET_INSTALL_PATH}) ++ install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION "${CMAKE_INSTALL_PREFIX}/${AMD_STANDALONE_STAGING_INSTALL_DOCDIR}/${CPACK_PACKAGE_NAME}") + + include(CPack) + endif() diff --git a/repos/spack_repo/builtin/packages/rocm_bandwidth_test/modify_hsa_include.patch b/repos/spack_repo/builtin/packages/rocm_bandwidth_test/modify_hsa_include.patch new file mode 100644 index 00000000000..220f06a62c1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/rocm_bandwidth_test/modify_hsa_include.patch @@ -0,0 +1,26 @@ +diff --git a/plugins/tb/CMakeLists.txt b/plugins/tb/CMakeLists.txt +index e92a5f2..fcad400 100644 +--- a/plugins/tb/CMakeLists.txt ++++ b/plugins/tb/CMakeLists.txt +@@ -68,7 +68,7 @@ if (NOT USE_SYSTEM_TB_ENGINE) + endif() + + set(AMD_WORK_BENCH_COMMON_INCLUDE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../common/) +- set(TB_PLUGIN_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/transferbench/include ${CMAKE_CURRENT_SOURCE_DIR}/transferbench/include/Presets ${ROCM_PATH}/include) ++ set(TB_PLUGIN_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/transferbench/include ${CMAKE_CURRENT_SOURCE_DIR}/transferbench/include/Presets ${ROCM_PATH}/include ${HSA_INCLUDE_DIR}) + else() + find_package(TransferBench REQUIRED) + endif() +diff --git a/plugins/tb/transferbench/CMakeLists.txt b/plugins/tb/transferbench/CMakeLists.txt +index 98e4bc4..632f584 100644 +--- a/plugins/tb/transferbench/CMakeLists.txt ++++ b/plugins/tb/transferbench/CMakeLists.txt +@@ -153,7 +153,7 @@ endif() + + ## Check for hsa support + find_library(HSA_LIBRARY hsa-runtime64 PATHS ${ROCM_PATH} ${ROCM_PATH}/lib) +-find_path(HSA_INCLUDE_DIR hsa.h PATHS ${ROCM_PATH}/include ${ROCM_PATH}/include/hsa) ++find_path(HSA_INCLUDE_DIR hsa/hsa.h PATHS ${ROCM_PATH}/include ${ROCM_PATH}/include/hsa) + if(HSA_LIBRARY AND HSA_INCLUDE_DIR) + add_library(hsa-runtime64 SHARED IMPORTED) + set_target_properties(hsa-runtime64 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${HSA_INCLUDE_DIR}" IMPORTED_LOCATION "${HSA_LIBRARY}" INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${HSA_INCLUDE_DIR}") \ No newline at end of file diff --git a/repos/spack_repo/builtin/packages/rocm_bandwidth_test/package.py b/repos/spack_repo/builtin/packages/rocm_bandwidth_test/package.py index c69ab1a52b4..b534bbd32ac 100644 --- a/repos/spack_repo/builtin/packages/rocm_bandwidth_test/package.py +++ b/repos/spack_repo/builtin/packages/rocm_bandwidth_test/package.py @@ -2,22 +2,73 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary from spack.package import * -class RocmBandwidthTest(CMakePackage): +class RocmBandwidthTest(ROCmLibrary, CMakePackage): """Test to measure PciE bandwidth on ROCm platforms""" homepage = "https://github.com/ROCm/rocm_bandwidth_test" git = "https://github.com/ROCm/rocm_bandwidth_test.git" - url = "https://github.com/ROCm/rocm_bandwidth_test/archive/rocm-6.4.1.tar.gz" + url = "https://github.com/ROCm/rocm_bandwidth_test/archive/rocm-6.4.3.tar.gz" tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") - + executables = ["rocm-bandwidth-test"] + version( + "7.2.3", + git="https://github.com/ROCm/rocm_bandwidth_test", + tag="rocm-7.2.3", + commit="06dd9df114855ed2dc38cd731ad214066a62d6da", + submodules=True, + ) + version( + "7.2.1", + git="https://github.com/ROCm/rocm_bandwidth_test", + tag="rocm-7.2.1", + commit="06dd9df114855ed2dc38cd731ad214066a62d6da", + submodules=True, + ) + version( + "7.2.0", + git="https://github.com/ROCm/rocm_bandwidth_test", + tag="rocm-7.2.0", + commit="06dd9df114855ed2dc38cd731ad214066a62d6da", + submodules=True, + ) + version( + "7.1.1", + git="https://github.com/ROCm/rocm_bandwidth_test", + tag="rocm-7.1.1", + commit="bba00e25cc49f8cda357cfe0439f0e01ba8839bb", + submodules=True, + ) + version( + "7.1.0", + git="https://github.com/ROCm/rocm_bandwidth_test", + tag="rocm-7.1.0", + commit="9f0a001fa5cfcbe6ecdf2e96fd91eacb371a8a1e", + submodules=True, + ) + version( + "7.0.2", + git="https://github.com/ROCm/rocm_bandwidth_test", + tag="rocm-7.0.2", + commit="ae9cd3f755553027bf799f9bb71c11a6c556d366", + submodules=True, + ) + version( + "7.0.0", + git="https://github.com/ROCm/rocm_bandwidth_test", + tag="rocm-7.0.0", + commit="49a72abaaaadb9934d6bcc96ac70663d7cca02f3", + submodules=True, + ) + version("6.4.3", sha256="2b8d9eb16191e9d8dcfdc345615298b36b8e7d468f1b40d46638989301b03688") + version("6.4.2", sha256="70cd7918dd07564241576e4ae8a4c5d007f87aa3d93589baded49022dc2cf27b") version("6.4.1", sha256="6910f52af9416802245d4fb6406274fd2bde6e9c287cc2d602adf682ecf98e4e") version("6.4.0", sha256="0a4c8aa32e041f0344eda448927d677b4a65835dda9736a7f2ab72b8e7f14d1c") version("6.3.3", sha256="d33f656eb6ba7db78b41c4bcf6d830b511dc97c6d645760e6d05edd07fcaefba") @@ -34,18 +85,15 @@ class RocmBandwidthTest(CMakePackage): version("6.0.0", sha256="9023401bd6a896059545b8e6263c6730afd89d7d45c0f5866261c300415532a6") version("5.7.1", sha256="7426ef1e317b8293e4d6389673cfa8c63efb3f7d061e2f50a6f0b1b706e2a2a7") version("5.7.0", sha256="fa95c28488ab4bb6d920b9f3c316554ca340f44c87ec2efb4cf8fa488e63ddd9") - with default_args(deprecated=True): - version("5.6.1", sha256="849af715d08dfd89e7aa5e4453b624151db1cafaa567ab5fa36a77948b90bf0d") - version("5.6.0", sha256="ae2f7263a21a3a650068f43e3112b2b765eea80a5af2297572f850c77f83c85e") depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("cmake@3:", type="build") + depends_on("curl", when="@7.0:") + depends_on("numactl", when="@7.0:") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -60,8 +108,6 @@ class RocmBandwidthTest(CMakePackage): depends_on(f"hsakmt-roct@{ver}", when=f"@{ver}") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -78,8 +124,50 @@ class RocmBandwidthTest(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hsa-rocr-dev@{ver}", when=f"@{ver}") depends_on(f"rocm-core@{ver}", when=f"@{ver}") - build_targets = ["package"] + for ver in ["7.0.0", "7.0.2", "7.1.0", "7.1.1", "7.2.0", "7.2.1", "7.2.3"]: + depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") + depends_on(f"hip@{ver} +rocm", when=f"@{ver}") + + patch("add_numa_hsa.patch", when="@7.0.0") + patch("modify_hsa_include.patch", when="@7.0.2:") + + # https://github.com/ROCm/rocm_bandwidth_test/issues/131 + # install doesnt honour CMAKE_INSTALL_PREFIX + patch("change_install_path.patch", when="@7.0.0") + patch("change_install_path_7.0.2.patch", when="@7.0.2:") + + @property + def build_targets(self): + targets = [] + if self.spec.satisfies("@:6.4.3"): + targets.append("package") + return targets + + def cmake_args(self): + args = [] + if self.spec.satisfies("@7.0:"): + args.append( + self.define("CMAKE_C_COMPILER", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang") + ) + args.append( + self.define( + "CMAKE_CXX_COMPILER", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++" + ) + ) + args.append(self.define("AMD_APP_STANDALONE_BUILD_PACKAGE", "ON")) + args.append(self.define("NUMA_INCLUDE_DIR", self.spec["numactl"].prefix.include)) + args.append(self.define("HSA_INCLUDE_DIR", self.spec["hsa-rocr-dev"].prefix.include)) + return args diff --git a/repos/spack_repo/builtin/packages/rocm_clang_ocl/package.py b/repos/spack_repo/builtin/packages/rocm_clang_ocl/package.py index 54090fb56f5..e994999048b 100644 --- a/repos/spack_repo/builtin/packages/rocm_clang_ocl/package.py +++ b/repos/spack_repo/builtin/packages/rocm_clang_ocl/package.py @@ -27,12 +27,9 @@ class RocmClangOcl(CMakePackage): version("6.0.0", sha256="74b5a64c32f3c57e7e4de638fffabbf448ecdb3dd8e65678b7ba0633352b4ca3") version("5.7.1", sha256="32e4430d009cbbf5404ca9cbbb549b36897fa1826bc2285372e293cfe7531bf8") version("5.7.0", sha256="c9ca80bfee674e740039256a846107373f1cf6554dc28398599976d8646a0392") - with default_args(deprecated=True): - version("5.6.1", sha256="c41deb1b564d939fc897b2bbdb13570b2234fa4c052a39783f5ad2dd1052f901") - version("5.6.0", sha256="1afc47dee02d73c10de422f254067f4ef3ff921c4a1204d54ecc40e61fc63497") depends_on("cmake@3.5:", type="build") - for ver in ["5.6.0", "5.6.1", "5.7.0", "5.7.1", "6.0.0", "6.0.2", "6.1.0", "6.1.1", "6.1.2"]: + for ver in ["5.7.0", "5.7.1", "6.0.0", "6.0.2", "6.1.0", "6.1.1", "6.1.2"]: depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") @@ -50,5 +47,5 @@ def test_make(self): with working_dir(test_dir): cmake = self.spec["cmake"].command cmake(f"-DCMAKE_PREFIX_PATH={self.prefix}", ".") - make = which("make") + make = which("make", required=True) make() diff --git a/repos/spack_repo/builtin/packages/rocm_cmake/package.py b/repos/spack_repo/builtin/packages/rocm_cmake/package.py index ba9f3c1beaf..5797587eb5d 100644 --- a/repos/spack_repo/builtin/packages/rocm_cmake/package.py +++ b/repos/spack_repo/builtin/packages/rocm_cmake/package.py @@ -14,13 +14,21 @@ class RocmCmake(CMakePackage): homepage = "https://github.com/ROCm/rocm-cmake" git = "https://github.com/ROCm/rocm-cmake.git" - url = "https://github.com/ROCm/rocm-cmake/archive/rocm-6.4.1.tar.gz" + url = "https://github.com/ROCm/rocm-cmake/archive/rocm-6.4.2.tar.gz" tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") license("MIT") - + version("7.2.3", sha256="069dc6405efc252d690e905dddb18b385691011cbc3fe142f0dd4f7a598211d7") + version("7.2.1", sha256="5eec670557b41516e9e27738d20178122b5b536344f471ab823b308d3c767588") + version("7.2.0", sha256="3f3899e84d78a0fecab62a35eed0014bb503c04d2cf76d263b29daf17f178636") + version("7.1.1", sha256="4ef6bbe518a3d4670272203c83f98b2a7135ad570a13498f871efda2320b698e") + version("7.1.0", sha256="d17a109b3ade999926f5b25ce25082b378399654e3b2234cad5f83cdd00a2f32") + version("7.0.2", sha256="79c40408be17f7c73105e281154267fcc6851e1db8b6be01a411ef1d8050bc71") + version("7.0.0", sha256="16b220cb10c8ebe438c1ba3b9de014abcd782fd0b0bcffb39d3d2d1ff6957f2a") + version("6.4.3", sha256="a2a29d5d5b6fcf01af8a662c2453c8c1bfc647fbcbfcbe86fc87d6af17287d24") + version("6.4.2", sha256="61e0217a453e30a68e0a42cba61e7181b07ef0be72d19a1133f8f24cedebddf1") version("6.4.1", sha256="d6dfa862009d593f4d334e0c6da9ac52b228e52bb3b38b53405975f28087ca2f") version("6.4.0", sha256="be8109c52e9309d1ae9553e067346ecdf1a25f653cc21974ddc542f31ce54615") version("6.3.3", sha256="4238cccc22226ba9487185fc2faa66b11c0cb8e7982240332e1b919cec8d909e") @@ -37,17 +45,12 @@ class RocmCmake(CMakePackage): version("6.0.0", sha256="82bd97ba23d1883ef38bb667e92f7367fedc50d6c11c82f54cced4ab04b0412d") version("5.7.1", sha256="4a4c6aa09576ccb834f869bdcb49e98cc0f0bac3678b802358065d1179a9d6f1") version("5.7.0", sha256="93b98144201a1143eeca32744a9927d063f4685189f132ba52a6f3bba158a86b") - with default_args(deprecated=True): - version("5.6.1", sha256="98bf5fe2e6e12f55d122807d0060f1bb19c80d63d2c2f6fee579c40bfd244fa6") - version("5.6.0", sha256="a118ca937856a4d0039955a8aef2466ef1fd1f08f7f7221cda53e1b5d02e476a") depends_on("cxx", type="build") # generated depends_on("cmake@3.6:", type="build") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -64,6 +67,15 @@ class RocmCmake(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocm-core@{ver}", when=f"@{ver}") diff --git a/repos/spack_repo/builtin/packages/rocm_core/package.py b/repos/spack_repo/builtin/packages/rocm_core/package.py index 09fcb7661e0..7f82d174469 100644 --- a/repos/spack_repo/builtin/packages/rocm_core/package.py +++ b/repos/spack_repo/builtin/packages/rocm_core/package.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re from spack_repo.builtin.build_systems.cmake import CMakePackage @@ -14,13 +15,29 @@ class RocmCore(CMakePackage): getROCmVersion function provides the ROCm version.""" homepage = "https://github.com/ROCm/rocm-core" - url = "https://github.com/ROCm/rocm-core/archive/refs/tags/rocm-6.4.1.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-systems.git" + tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") libraries = ["librocm-core"] - license("MIT") + + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/rocm-core/archive/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-systems/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b") + version("7.2.1", sha256="201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f") + version("7.2.0", sha256="728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638") + version("7.1.1", sha256="0171b82a4d028d57035d0d57a01a058f50f1a23959d230cdeab14972dcd94da8") + version("7.1.0", sha256="3c7e990ff4da60119c8575982660331bf636f63a9c68c6a344d410b2bdfa5d39") + version("7.0.2", sha256="2d126d47aa4523d84e5ab026680fa2b1145db332ff5e4aa74b48f8ed0ecd975d") + version("7.0.0", sha256="d7741e12d184a6553f6d39b3ff4d113a2e7eeb509d5ec08e06cdaf51dcd26f90") + version("6.4.3", sha256="dae6e06739882a3ce7be13ac300c22ab35ce80b4e853a21a1a3237fdc0411eb9") + version("6.4.2", sha256="f3af7cfd930e20610736335ea860b9a39fb9bba4153fdc34b46ffe7da86a40ab") version("6.4.1", sha256="ac56938879a550ecd55ef5c00067203a0b3faf5a17a48d649728b1a3c65b040c") version("6.4.0", sha256="058739404c91105c1b34117803f6b48917a23191291ce67020e6b983b45450c1") version("6.3.3", sha256="d2a3900424dea1dcc0e303c288d2c07e1345c2d5348398449998e8007fe7fd44") @@ -37,9 +54,6 @@ class RocmCore(CMakePackage): version("6.0.0", sha256="d950ee4b63336f34579b6e1dda2d05966b7afa9c84bcdc13874991d1147dc788") version("5.7.1", sha256="fc4915019ddfd126e8ef6a15006bce3aa7bd5fd11dc8eb04ce2ee6bdf9c6ae7f") version("5.7.0", sha256="722689bfec46c35f5428a41c5aacfc31efec2294fc3b0112861c562f8a71ac93") - with default_args(deprecated=True): - version("5.6.1", sha256="eeef75e16e05380ccbc8df17a02dc141a66dddaadb444a97f7278f78067c498c") - version("5.6.0", sha256="3c3d47c8b774968d768d42810a3fed42d058b7d6da248d5295df2a7ffb262568") variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") @@ -62,9 +76,36 @@ class RocmCore(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on("llvm-amdgpu", when=f"@{ver}+asan") + @classmethod + def determine_version(cls, lib): + match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib) + if match: + ver = "{0}.{1}.{2}".format( + int(match.group(1)), int(match.group(2)), int(match.group(3)) + ) + else: + ver = None + return ver + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@:7.1"): + return "." + else: + return "projects/rocm-core" + def setup_build_environment(self, env: EnvironmentModifications) -> None: if self.spec.satisfies("+asan"): env.set("CC", self.spec["llvm-amdgpu"].prefix + "/bin/clang") diff --git a/repos/spack_repo/builtin/packages/rocm_dbgapi/package.py b/repos/spack_repo/builtin/packages/rocm_dbgapi/package.py index 29da9d5ffd4..a937731d217 100644 --- a/repos/spack_repo/builtin/packages/rocm_dbgapi/package.py +++ b/repos/spack_repo/builtin/packages/rocm_dbgapi/package.py @@ -2,14 +2,13 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import re - from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary from spack.package import * -class RocmDbgapi(CMakePackage): +class RocmDbgapi(ROCmLibrary, CMakePackage): """The AMD Debugger API is a library that provides all the support necessary for a debugger and other tools to perform low level control of the execution and inspection of execution state of @@ -25,6 +24,15 @@ class RocmDbgapi(CMakePackage): license("MIT") + version("7.2.3", sha256="746c3c5d0e64fcdad5ec99a47d2be719656c2f24e79f1dc22d29e4ce4f9fb832") + version("7.2.1", sha256="29a5f689e03c176ec562634fb22192309fab538fe4245225a66b25ad6de0fab1") + version("7.2.0", sha256="3649f1ae9642cdc7f3b172a580388cbe50489dfbea6b245a6a73082a64e06c5b") + version("7.1.1", sha256="4c31da40e6da3c81fea8a8b0757daae3d6e95dc86ba32ff55484e7044aaa094f") + version("7.1.0", sha256="334a5bc39f5d1b3e7fe415206f499985156a0f76556b2f91789f528ccbc3e9a2") + version("7.0.2", sha256="01e154aa8b954beecb420674bc372d6ffe5b252ea393494383a0aad1c928675d") + version("7.0.0", sha256="f8df0b52e1cd959d2343bbc1eceb18c75d6522e37c125bbf27f89650e55573ff") + version("6.4.3", sha256="3f0df9d1f350cd6d88ddd41c2e574e4f385c109fcc1524b1de3bd69fce05f5b6") + version("6.4.2", sha256="fc62c2eb139db9ef454efaf5c18def6736f366c0a1677e8024aac622a5bae8b0") version("6.4.1", sha256="c4c16510b691506c3d0e17d6b2f1eb93529e99dee7877c44fa955a8083337463") version("6.4.0", sha256="5dcf627245cc9511c7ff22f46410c5e5777187fab97b7cfcd95e03e61069f72c") version("6.3.3", sha256="25c8e9f4a22f23004f2fc1998c284095b193591eb6143b47380455754948ab98") @@ -41,9 +49,6 @@ class RocmDbgapi(CMakePackage): version("6.0.0", sha256="4e823eba255e46b93aff05fd5938ef2a51693ffd74debebffc1aabfce613805c") version("5.7.1", sha256="0ee9c2f083868849f2ea0cec7010e0270c27e7679ccbbadd12072cc0ef6c8a6f") version("5.7.0", sha256="285ddded8e7f1981d8861ffc1cd7770b78129e4955da08ad55a4779945699716") - with default_args(deprecated=True): - version("5.6.1", sha256="c7241bf94bdb97a4cf1befbf25b8c35720797710da6f6b5b9d6a4094c1bc9c8b") - version("5.6.0", sha256="9b66e47f4eccb3c8bbc324aade92aac6139539dda449427b7823d0c45341afc8") variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") @@ -59,8 +64,6 @@ class RocmDbgapi(CMakePackage): depends_on("pciutils", type="build") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -77,20 +80,20 @@ class RocmDbgapi(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hsa-rocr-dev@{ver}", type="build", when=f"@{ver}") depends_on(f"comgr@{ver}", type=("build", "link"), when=f"@{ver}") depends_on(f"rocm-core@{ver}", when=f"@{ver}") - @classmethod - def determine_version(cls, lib): - match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib) - if match: - return "{0}.{1}.{2}".format( - int(match.group(1)), int(match.group(2)), int(match.group(3)) - ) - return None - def patch(self): filter_file( r"()", diff --git a/repos/spack_repo/builtin/packages/rocm_debug_agent/package.py b/repos/spack_repo/builtin/packages/rocm_debug_agent/package.py index c0e90db3636..915c4a6712a 100644 --- a/repos/spack_repo/builtin/packages/rocm_debug_agent/package.py +++ b/repos/spack_repo/builtin/packages/rocm_debug_agent/package.py @@ -2,14 +2,13 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import re - from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary from spack.package import * -class RocmDebugAgent(CMakePackage): +class RocmDebugAgent(ROCmLibrary, CMakePackage): """Radeon Open Compute (ROCm) debug agent""" homepage = "https://github.com/ROCm/rocr_debug_agent" @@ -20,6 +19,15 @@ class RocmDebugAgent(CMakePackage): maintainers("srekolam", "renjithravindrankannath", "afzpatel") libraries = ["librocm-debug-agent"] + version("7.2.3", sha256="b67bde5b700300c6468eb55b24a480b29d66da8fe1ec2c0d4fe0e6c9a0660441") + version("7.2.1", sha256="7dfd3363e07fcec65fb8f66c442e0cd601621cb5e086f311205ac3e65c9f9b6c") + version("7.2.0", sha256="42b7e7afe16913e67b7af1358ddbe7772bff1ffe61f4d60960062288b6287c2c") + version("7.1.1", sha256="2e8ab39ab68fe6eccaa9494b984faa7fb7edfb12e3f7e1b38dfe146e5b914d10") + version("7.1.0", sha256="21224ffe5019f1e2a160cad587b0448e550954accce9fd051a915c3f95b54e5b") + version("7.0.2", sha256="72ef89af0ec15edf43a99a3e76a420d501fa0871825c9baecd9dff1fc4d021dd") + version("7.0.0", sha256="5d822964855979c5063e0ec9554596463d37cdf5f3501550887c034beb3adcc8") + version("6.4.3", sha256="4be5783e3df89e8c3e35c5690d9414ca8a0b695081352bb945bb533e01de1d65") + version("6.4.2", sha256="8b42dee486f959795acbac7f8bf287718edbb14393e6262c3dcec97f0697d949") version("6.4.1", sha256="0e9fc4626e16eea1c701b5206349fceab4ec596a1d22738977e779f673a26769") version("6.4.0", sha256="699af72a1ff7edf3cff6ef293469345538da06aaedefb3540dd61f55ea862330") version("6.3.3", sha256="27407c5cabec3d9757ffe5eb729639ccb3ad3b086f57f101854b73479a6f0f51") @@ -36,9 +44,6 @@ class RocmDebugAgent(CMakePackage): version("6.0.0", sha256="705be2c2bd0f5c7d1e286eb9b94045b2bd017ff323f07bca9aa7c81f2d168524") version("5.7.1", sha256="3b8d2835935da98f41e7cfc5b808c596ac06dd705b9a07bb70283e002f8dea6a") version("5.7.0", sha256="d9344ed02e82a01140f2162e901e6a519e5fee6b498e2f49417730ee2660c5c1") - with default_args(deprecated=True): - version("5.6.1", sha256="d3b1d5d757489ed3cc66d351cec56b7b850aaa7ecf6a55b0350b89c3dee3153a") - version("5.6.0", sha256="0bed788f07906afeb9092d0bec184a7963233ac9d8ccd20b4afeb624a1d20698") variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") @@ -53,8 +58,6 @@ class RocmDebugAgent(CMakePackage): depends_on("elfutils@0.188:", type="link") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -69,8 +72,6 @@ class RocmDebugAgent(CMakePackage): depends_on(f"hsakmt-roct@{ver}", when=f"@{ver}") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -87,6 +88,15 @@ class RocmDebugAgent(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hsa-rocr-dev@{ver}", when=f"@{ver}") depends_on(f"rocm-dbgapi@{ver}", when=f"@{ver}") @@ -97,15 +107,6 @@ class RocmDebugAgent(CMakePackage): patch("0001-Drop-overly-strict-Werror-flag.patch") patch("0002-add-hip-architecture.patch", when="@:6.3") - @classmethod - def determine_version(cls, lib): - match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib) - if match: - return "{0}.{1}.{2}".format( - int(match.group(1)), int(match.group(2)), int(match.group(3)) - ) - return None - def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("CC", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang") env.set("CXX", f"{self.spec['llvm-amdgpu'].prefix}/bin/clang++") diff --git a/repos/spack_repo/builtin/packages/rocm_device_libs/package.py b/repos/spack_repo/builtin/packages/rocm_device_libs/package.py index 093a4b2f46f..70b71e6b010 100644 --- a/repos/spack_repo/builtin/packages/rocm_device_libs/package.py +++ b/repos/spack_repo/builtin/packages/rocm_device_libs/package.py @@ -11,8 +11,11 @@ class RocmDeviceLibs(CMakePackage): """set of AMD specific device-side language runtime libraries""" - homepage = "https://github.com/ROCm/ROCm-Device-Libs" - git = "https://github.com/ROCm/ROCm-Device-Libs.git" + homepage = "https://github.com/ROCm/llvm-project" + git = "https://github.com/ROCm/llvm-project.git" + + tags = ["rocm"] + maintainers("srekolam", "renjithravindrankannath", "haampie", "afzpatel") def url_for_version(self, version): if version <= Version("6.0.2"): @@ -21,11 +24,15 @@ def url_for_version(self, version): url = "https://github.com/ROCm/llvm-project/archive/rocm-{0}.tar.gz" return url.format(version) - tags = ["rocm"] - - maintainers("srekolam", "renjithravindrankannath", "haampie", "afzpatel") - - version("master", branch="amd-stg-open", deprecated=True) + version("7.2.3", sha256="6239fa0c72b150cf0a325676264d3030a67389dec4fca7103f563a70c2b70114") + version("7.2.1", sha256="4d3449d758e3f79b336248b0207a394eda04ba5cdd48a4088e135ddf769127fa") + version("7.2.0", sha256="e86138d2a63fbcbdf64668d55573b26ae944d0f0ae5a3f5bb59bf7bdb3124d3f") + version("7.1.1", sha256="d76a16db4a56914383029e241823f7bc2a3d645f2967dd22230f11c11cfe189e") + version("7.1.0", sha256="87f5532b8b653bd18541cdf6e59923cbd340b300d8ec5046d3e4288d9e5195c0") + version("7.0.2", sha256="fd612fa750bebd0c3be0ea642b2cae8ff5c7e00a2280b22b9ea16ee86a11d763") + version("7.0.0", sha256="3d479a2aa615b6bb35cd3521122fbff34188dc0cc52d8b0acda59f9f55198211") + version("6.4.3", sha256="7a484b621d568eef000ee8c4d2d46d589e5682b950f1f410ce7215031f1f3ad7") + version("6.4.2", sha256="9f42cb73d90bd4561686c0366f60f6e58cfd32ff24b094c69e8259fb5d177457") version("6.4.1", sha256="460ad28677092b9eb86ffdc49bcb4d01035e32b4f05161d85f90c9fa80239f50") version("6.4.0", sha256="dca1c145a23f05229d5d646241f9d1d3c5dbf1d745b338ae020eabe33beb965c") version("6.3.3", sha256="4df9aba24e574edf23844c0d2d9dda112811db5c2b08c9428604a21b819eb23d") @@ -42,9 +49,6 @@ def url_for_version(self, version): version("6.0.0", sha256="198df4550d4560537ba60ac7af9bde31d59779c8ec5d6309627f77a43ab6ef6f") version("5.7.1", sha256="703de8403c0bd0d80f37c970a698f10f148daf144d34f982e4484d04f7c7bbef") version("5.7.0", sha256="0f8780b9098573f1c456bdc84358de924dcf00604330770a383983e1775bf61e") - with default_args(deprecated=True): - version("5.6.1", sha256="f0dfab272ff936225bfa1e9dabeb3c5d12ce08b812bf53ffbddd2ddfac49761c") - version("5.6.0", sha256="efb5dcdca9b3a9fbe408d494fb4a23e0b78417eb5fa8eebd4a5d226088f28921") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -62,8 +66,6 @@ def url_for_version(self, version): depends_on("llvm-amdgpu ~rocm-device-libs") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -80,6 +82,15 @@ def url_for_version(self, version): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") depends_on(f"rocm-core@{ver}", when=f"@{ver}") diff --git a/repos/spack_repo/builtin/packages/rocm_examples/disable_hiptensor_rocprof-sdk.patch b/repos/spack_repo/builtin/packages/rocm_examples/disable_hiptensor_rocprof-sdk.patch new file mode 100644 index 00000000000..f77f98323a1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/rocm_examples/disable_hiptensor_rocprof-sdk.patch @@ -0,0 +1,19 @@ +diff --git a/Libraries/CMakeLists.txt b/Libraries/CMakeLists.txt +index 8e94f20..0b87266 100644 +--- a/Libraries/CMakeLists.txt ++++ b/Libraries/CMakeLists.txt +@@ -44,12 +44,12 @@ if( + add_subdirectory(hipSOLVER) + add_subdirectory(hipSPARSE) + add_subdirectory(hipSPARSELt) +- add_subdirectory(hipTensor) ++ # add_subdirectory(hipTensor) + add_subdirectory(rocALUTION) + add_subdirectory(rocBLAS) + add_subdirectory(rocFFT) + add_subdirectory(rocPRIM) +- add_subdirectory(rocProfiler-SDK) ++ # add_subdirectory(rocProfiler-SDK) + add_subdirectory(rocRAND) + add_subdirectory(rocSOLVER) + add_subdirectory(rocSPARSE) diff --git a/repos/spack_repo/builtin/packages/rocm_examples/package.py b/repos/spack_repo/builtin/packages/rocm_examples/package.py index 32cdcb1dd55..81de22f6a2d 100644 --- a/repos/spack_repo/builtin/packages/rocm_examples/package.py +++ b/repos/spack_repo/builtin/packages/rocm_examples/package.py @@ -4,6 +4,7 @@ from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage from spack.package import * @@ -12,6 +13,7 @@ class RocmExamples(CMakePackage): """A collection of examples for the ROCm software stack""" homepage = "https://github.com/ROCm/rocm-examples" + git = "https://github.com/ROCm/rocm-examples.git" url = "https://github.com/ROCm/rocm-examples/archive/refs/tags/rocm-6.2.1.tar.gz" tags = ["rocm"] @@ -19,6 +21,16 @@ class RocmExamples(CMakePackage): maintainers("srekolam", "renjithravindrankannath", "afzpatel") license("MIT") + + version("7.2.3", sha256="523ed9d130338eb7f2b96005445bac132829bfb649d564df67672e1edce8e27a") + version("7.2.1", sha256="34457fc665f814ec3a0a5f83edabccc18c293825f0d421b5d9e101b7494da637") + version("7.2.0", sha256="74c516f08cc0067c85ac5c29f25831a6e74c0cc0f0c07e80798dc827efefbde5") + version("7.1.1", sha256="7475c4eaca103395ecae93cc5fa51b77884d06ebe990e71383c53a91bc1b089f") + version("7.1.0", sha256="d64a82ba472126bb426c54abd1b2516479a375db895171bbc4024a7c8d0f4e94") + version("7.0.2", sha256="02ca88ec6ce584b6710f295c2ab2df61d38a6a5e4950082863186922be40f062") + version("7.0.0", sha256="a06dd85c3b55e62626884b9fe477393729ab5cbf7fb45c432df49bb3d918c0fe") + version("6.4.3", sha256="febace4c74256c9dc29b3ef71227dad615701263aa4825fd4b1bb00145e59122") + version("6.4.2", sha256="c9aa4d24a7542d029185fe382a0382bd208b2984813ebb854c352b78daf9fb80") version("6.4.1", sha256="ceece00ac0cb3431e032ce52eb660667fdfdcc64c1c7e9bb15ac1177fa20db83") version("6.4.0", sha256="af2be5806982a72c726cf052c512493cc004bfa98d0136fbf8fed2754a4f4b80") version("6.3.3", sha256="5e5bdffb4bf56d30c5f8dd8fda95d162362d17e446396e6b6a3afe8d293039f3") @@ -29,6 +41,15 @@ class RocmExamples(CMakePackage): version("6.2.1", sha256="2e426572aa5f5b44c7893ea256945c8733b79db39cca84754380f40c8b44a563") version("6.2.0", sha256="6fb1f954ed32b5c4085c7f071058d278c2e1e8b7b71118ee5e85cf9bbc024df0") + amdgpu_targets = ROCmPackage.amdgpu_targets + + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) + variant("rocm", default=True, description="Build with ROCm") variant("cuda", default=False, description="Build with CUDA") @@ -41,21 +62,79 @@ class RocmExamples(CMakePackage): depends_on("glfw", type="build") depends_on("mesa", type="build", when="+cuda") - for ver in ["6.4.1", "6.4.0", "6.3.3", "6.3.2", "6.3.1", "6.3.0", "6.2.4", "6.2.1", "6.2.0"]: + for ver in [ + "6.2.0", + "6.2.1", + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"hipify-clang@{ver}", when=f"@{ver}") - depends_on(f"hipcub@{ver}", when=f"@{ver}") - depends_on(f"hipsolver@{ver}", when=f"@{ver}") - depends_on(f"hipblas@{ver}", when=f"@{ver}") - depends_on(f"hiprand@{ver}", when=f"@{ver} +rocm") - depends_on(f"rocblas@{ver}", when=f"@{ver} +rocm") - depends_on(f"rocthrust@{ver}", when=f"@{ver} +rocm") - depends_on(f"rocsparse@{ver}", when=f"@{ver} +rocm") - depends_on(f"rocsolver@{ver}", when=f"@{ver} +rocm") - - for ver in ["6.4.1", "6.4.0", "6.3.3", "6.3.2", "6.3.1", "6.3.0"]: - depends_on(f"hipfft@{ver}", when=f"@{ver}") - depends_on(f"rocfft@{ver}", when=f"@{ver} +rocm") + for tgt in ROCmPackage.amdgpu_targets: + depends_on(f"hipcub@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + depends_on(f"hipsolver@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + depends_on(f"hipblas@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + depends_on( + f"hiprand@{ver} amdgpu_target={tgt}", when=f"@{ver} +rocm amdgpu_target={tgt}" + ) + depends_on( + f"rocblas@{ver} amdgpu_target={tgt}", when=f"@{ver} +rocm amdgpu_target={tgt}" + ) + depends_on( + f"rocthrust@{ver} amdgpu_target={tgt}", when=f"@{ver} +rocm amdgpu_target={tgt}" + ) + depends_on( + f"rocsparse@{ver} amdgpu_target={tgt}", when=f"@{ver} +rocm amdgpu_target={tgt}" + ) + depends_on( + f"rocsolver@{ver} amdgpu_target={tgt}", when=f"@{ver} +rocm amdgpu_target={tgt}" + ) + + for ver in [ + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: + for tgt in ROCmPackage.amdgpu_targets: + depends_on(f"hipfft@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + depends_on( + f"rocfft@{ver} amdgpu_target={tgt}", when=f"@{ver} +rocm amdgpu_target={tgt}" + ) + + for ver in ["7.2.0", "7.2.1", "7.2.3"]: + for tgt in ROCmPackage.amdgpu_targets: + depends_on(f"hipsparse@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + depends_on(f"hip-tensor@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + depends_on(f"rocwmma@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + depends_on( + f"rocprofiler-sdk@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}" + ) depends_on("hip+cuda", when="+cuda") depends_on("hipcub+cuda", when="+cuda") @@ -70,6 +149,7 @@ class RocmExamples(CMakePackage): ) patch("add_hip_include_cuda.patch", when="@6.4+cuda") patch("add_mesa_include.patch", when="@6.4+cuda") + patch("disable_hiptensor_rocprof-sdk.patch", when="@7.2") def patch(self): filter_file( @@ -81,7 +161,7 @@ def patch(self): def cmake_args(self): args = [] - if self.spec.satisfies("+cuda"): + if self.spec.satisfies("+rocm"): args.append( self.define( "OFFLOAD_BUNDLER_COMMAND", diff --git a/repos/spack_repo/builtin/packages/rocm_gdb/package.py b/repos/spack_repo/builtin/packages/rocm_gdb/package.py index 8fe83737666..935826e55d8 100644 --- a/repos/spack_repo/builtin/packages/rocm_gdb/package.py +++ b/repos/spack_repo/builtin/packages/rocm_gdb/package.py @@ -2,24 +2,34 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary from spack.package import * -class RocmGdb(AutotoolsPackage): +class RocmGdb(ROCmLibrary, AutotoolsPackage): """This is ROCmgdb, the ROCm source-level debugger for Linux, based on GDB, the GNU source-level debugger.""" homepage = "https://github.com/ROCm/ROCgdb" - url = "https://github.com/ROCm/ROCgdb/archive/rocm-6.2.4.tar.gz" + url = "https://github.com/ROCm/ROCgdb/archive/rocm-6.4.3.tar.gz" tags = ["rocm"] + executables = ["rocgdb"] license("LGPL-2.0-or-later") maintainers("srekolam", "renjithravindrankannath") + version("7.2.3", sha256="ce7e26f5470ed7afa4cb842d562e4ae6778f0ce123eed81ce10d867eb3ec0d80") + version("7.2.1", sha256="eaf4b7994ad4bf3b5e5e864e95b354d685c4cfeecb9a47aa1d84cb885feb1f97") + version("7.2.0", sha256="0648c00a4098af9edddbdb05832f0afd03c0027359213ad4d6b211951ec672d1") + version("7.1.1", sha256="4369b0dc0bea6c371872d517c43867fdfba3f12af7d5ae3900d4a4311bd49e30") + version("7.1.0", sha256="33833597801680b76639b0cc97113da17ab3cad3167bf06419e838c9e2ae8113") + version("7.0.2", sha256="1b06122860b9036ecdab4ba2ff2f3cab4707ad01941513aa23543962308c0e9e") + version("7.0.0", sha256="a65824bb2f8d67eab9e3823da06638b4c015ba3342400159eed76ca2e7c48b25") + version("6.4.3", sha256="7cb8a1c3554284b735232c2fa917315ac72421f11cc8156476003f0c3f1c3086") + version("6.4.2", sha256="787128a11805891b2ecef3014bc36cc33e08e008e6e882982a410c60efd0335e") version("6.4.1", sha256="e8f80ed022af7ce9b4f59ebb352d6b2b5af7b6a4179023b24f89215e65bc4527") version("6.4.0", sha256="ef32529b2e3799dd8ab15647701063fcdcadd6d043a0d376a98c3ca10813817a") version("6.3.3", sha256="51678b588f65f92f50c2336707322cf4973fa96d03e268ec5956ac1a9f2ebaa3") @@ -36,9 +46,6 @@ class RocmGdb(AutotoolsPackage): version("6.0.0", sha256="0db4ab32ca729e69688cdb238df274ce5cf58b5cb2538584662cca4358708c2b") version("5.7.1", sha256="5cd150b5796aea9d77efd43b89d30a34fa4125338179eb87c6053abcac9f3c62") version("5.7.0", sha256="94fba57b2f17b593de61f7593b404fabc00b054d38567be57d12cf7654b7969a") - with default_args(deprecated=True): - version("5.6.1", sha256="d2b40d4c5aa41a6ce2a84307627b30d16a458672e03e13f9d27c12f2dc3f21d6") - version("5.6.0", sha256="997ef1883aac2769552bc7082c70b837f4e98b57d24c133cea52b9c92fb0dee1") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -58,8 +65,6 @@ class RocmGdb(AutotoolsPackage): depends_on("pkgconfig", type="build") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -76,6 +81,15 @@ class RocmGdb(AutotoolsPackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocm-dbgapi@{ver}", type="link", when=f"@{ver}") depends_on(f"comgr@{ver}", type="link", when=f"@{ver}") @@ -100,7 +114,8 @@ def configure_args(self): "--disable-gdbtk", "--disable-shared", "--with-expat", - "--with-system-zlib" "--without-guile", + "--with-system-zlib", + "--without-guile", "--with-babeltrace", "--with-lzma", "--with-python", diff --git a/repos/spack_repo/builtin/packages/rocm_opencl/package.py b/repos/spack_repo/builtin/packages/rocm_opencl/package.py index 39ad3f1d3df..a0c276c9b30 100644 --- a/repos/spack_repo/builtin/packages/rocm_opencl/package.py +++ b/repos/spack_repo/builtin/packages/rocm_opencl/package.py @@ -15,23 +15,30 @@ class RocmOpencl(CMakePackage): """OpenCL: Open Computing Language on ROCclr""" homepage = "https://github.com/ROCm/clr" + url = "https://github.com/ROCm/clr/archive/refs/tags/rocm-6.4.3.tar.gz" git = "https://github.com/ROCm/clr.git" - tags = ["rocm"] + tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") - libraries = ["libOpenCL"] + libraries = ["libamdocl64"] + license("MIT") def url_for_version(self, version): - if version <= Version("5.6.1"): - url = ( - "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/rocm-{0}.tar.gz" - ) + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/clr/archive/rocm-{0}.tar.gz" else: - url = "https://github.com/ROCm/clr/archive/refs/tags/rocm-{0}.tar.gz" + url = "https://github.com/ROCm/rocm-systems/archive/rocm-{0}.tar.gz" return url.format(version) - license("MIT") - + version("7.2.3", sha256="e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b") + version("7.2.1", sha256="201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f") + version("7.2.0", sha256="728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638") + version("7.1.1", sha256="b09539ef53a775c03352f9843f3a346e4f2ad3941c1954e953d352e4984ee708") + version("7.1.0", sha256="d53ee72dd430c934a53b1fe5c798ac34c53e8826589f8f9f214419512059ad2d") + version("7.0.2", sha256="b49b1ccbf86ef78f4da5ff13ec3ee94f6133c55db3a95b823577b0808db5f2f1") + version("7.0.0", sha256="cc417e73cda903511db5a72b77704fd41bf7b39204c5cacb2c64701b344b8c5d") + version("6.4.3", sha256="aa7c9d9d7da3b5fc944b17ca7c032e8924a8dc327ec79eb8cb7f0c9df6fa76dc") + version("6.4.2", sha256="6dca1ffff36dbf8665594a72b47b8dd0362f7ee446dea03961d8b5a639bf3ede") version("6.4.1", sha256="18ee75a04f6fc55e72f8b3fcad1e0d58eceb2ce0e0696ca76d9b3dfaf4bfd7ff") version("6.4.0", sha256="76fd0ad83da0dabf7c91ca4cff6c51f2be8ab259e08ad9743af47d1b3473c2ff") version("6.3.3", sha256="8e5adca8f8c2d99d4a4e49605dd6b56b7881b762ee8ce15b4a7000e3cd982fec") @@ -48,9 +55,6 @@ def url_for_version(self, version): version("6.0.0", sha256="798b55b5b5fb90dd19db54f136d8d8e1da9ae1e408d5b12b896101d635f97e50") version("5.7.1", sha256="c78490335233a11b4d8a5426ace7417c555f5e2325de10422df06c0f0f00f7eb") version("5.7.0", sha256="bc2447cb6fd86dff6a333b04e77ce85755104d9011a14a044af53caf02449573") - with default_args(deprecated=True): - version("5.6.1", sha256="ec26049f7d93c95050c27ba65472736665ec7a40f25920a868616b2970f6b845") - version("5.6.0", sha256="52ab260d00d279c2a86c353901ffd88ee61b934ad89e9eb480f210656705f04e") variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") @@ -68,19 +72,6 @@ def url_for_version(self, version): depends_on("xproto", when="+asan") depends_on("opencl-icd-loader@2024.05.08", when="@6.2:") - for d_version, d_shasum in [ - ("5.6.1", "cc9a99c7e4de3d9360c0a471b27d626e84a39c9e60e0aff1e8e1500d82391819"), - ("5.6.0", "864f87323e793e60b16905284fba381a7182b960dd4a37fb67420c174442c03c"), - ]: - resource( - name="rocclr", - url=f"https://github.com/ROCm/ROCclr/archive/rocm-{d_version}.tar.gz", - sha256=d_shasum, - expand=True, - destination="", - placement="rocclr", - when=f"@{d_version}", - ) # For avx build, the start address of values_ buffer in KernelParameters is not # correct as it is computed based on 16-byte alignment. patch( @@ -95,8 +86,6 @@ def url_for_version(self, version): ) for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -113,6 +102,15 @@ def url_for_version(self, version): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"comgr@{ver}", type="build", when=f"@{ver}") depends_on(f"hsa-rocr-dev@{ver}", type="link", when=f"@{ver}") @@ -133,9 +131,21 @@ def url_for_version(self, version): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", ]: depends_on(f"aqlprofile@{ver}", type="link", when=f"@{ver}") + for ver in ["7.0.0", "7.0.2", "7.1.0", "7.1.1", "7.2.0", "7.2.1", "7.2.3"]: + depends_on(f"hsa-amd-aqlprofile@{ver}", type="link", when=f"@{ver}") + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/clr" + else: + return "." + @classmethod def determine_version(cls, lib): match = re.search(r"lib\S*\.so\.\d+\.\d+\.(\d)(\d\d)(\d\d)", lib) @@ -143,16 +153,14 @@ def determine_version(cls, lib): return "{0}.{1}.{2}".format( int(match.group(1)), int(match.group(2)), int(match.group(3)) ) - return None + else: + ver = None + return ver def cmake_args(self): args = ["-DUSE_COMGR_LIBRARY=yes", "-DBUILD_TESTS=ON"] - if self.spec.satisfies("@:5.6"): - args.append(self.define("ROCCLR_PATH", self.stage.source_path + "/rocclr")) - args.append(self.define("AMD_OPENCL_PATH", self.stage.source_path)) - if self.spec.satisfies("@5.7:"): - args.append(self.define("CLR_BUILD_HIP", False)) - args.append(self.define("CLR_BUILD_OCL", True)) + args.append(self.define("CLR_BUILD_HIP", False)) + args.append(self.define("CLR_BUILD_OCL", True)) if self.spec.satisfies("+asan"): args.append( self.define( @@ -196,7 +204,7 @@ def test_ocltst(self): os.environ["LD_LIBRARY_PATH"] += os.pathsep + join_path(self.prefix, test_dir) - ocltst = which(join_path(self.prefix, test_dir, "ocltst")) + ocltst = which(join_path(self.prefix, test_dir, "ocltst"), required=True) with test_part(self, "test_ocltst_runtime", purpose="check runtime"): ocltst("-m", "liboclruntime.so", "-A", "oclruntime.exclude") diff --git a/repos/spack_repo/builtin/packages/rocm_openmp_extras/0002-add-include-dir-omp.patch b/repos/spack_repo/builtin/packages/rocm_openmp_extras/0002-add-include-dir-omp.patch index af9b080973f..825e1a97ac1 100644 --- a/repos/spack_repo/builtin/packages/rocm_openmp_extras/0002-add-include-dir-omp.patch +++ b/repos/spack_repo/builtin/packages/rocm_openmp_extras/0002-add-include-dir-omp.patch @@ -1,12 +1,12 @@ -diff --git a/rocm-openmp-extras/llvm-project/offload/DeviceRTL/CMakeLists.txt b/rocm-openmp-extras/llvm-project/offload/DeviceRTL/CMakeLists.txt -index 46cbc65..df9cddc 100644 ---- a/rocm-openmp-extras/llvm-project/offload/DeviceRTL/CMakeLists.txt -+++ b/rocm-openmp-extras/llvm-project/offload/DeviceRTL/CMakeLists.txt -@@ -148,6 +148,7 @@ set(bc_flags -c -foffload-lto -std=c++17 -fvisibility=hidden - -I${include_directory} - -I${devicertl_base_directory}/../include - ${LIBOMPTARGET_LLVM_INCLUDE_DIRS_DEVICERTL} -+ -I${LIBOMP_OMP_TOOLS_INCLUDE_DIR} - ) - - if(${LIBOMPTARGET_DEVICE_DEBUG}) +diff --git a/rocm-openmp-extras/llvm-project/offload/DeviceRTL/CMakeLists.txt b/rocm-openmp-extras/llvm-project/offload/DeviceRTL/CMakeLists.txt +index 46cbc65..df9cddc 100644 +--- a/rocm-openmp-extras/llvm-project/offload/DeviceRTL/CMakeLists.txt ++++ b/rocm-openmp-extras/llvm-project/offload/DeviceRTL/CMakeLists.txt +@@ -148,6 +148,7 @@ set(bc_flags -c -foffload-lto -std=c++17 -fvisibility=hidden + -I${include_directory} + -I${devicertl_base_directory}/../include + ${LIBOMPTARGET_LLVM_INCLUDE_DIRS_DEVICERTL} ++ -I${LIBOMP_OMP_TOOLS_INCLUDE_DIR} + ) + + if(${LIBOMPTARGET_DEVICE_DEBUG}) diff --git a/repos/spack_repo/builtin/packages/rocm_openmp_extras/package.py b/repos/spack_repo/builtin/packages/rocm_openmp_extras/package.py index 6016eeead03..cd50f4569de 100644 --- a/repos/spack_repo/builtin/packages/rocm_openmp_extras/package.py +++ b/repos/spack_repo/builtin/packages/rocm_openmp_extras/package.py @@ -17,8 +17,6 @@ # For example array[0] = 3.9.0, array[1] = 3.10.0, etc. aomp = [ - "0673820a81986c9e2f28f15bbb45ad18934bca56a9d08aae6c49ec3895b38487", - "6c051bf7625f682ba3d2ea80b46a38ca2cbcd20f5d89ae3433602d3e7ef0403a", "4f34fa02db410808c5e629f30f8804210b42c4ff7d31aa80606deaed43054c3c", "ed7bbf92230b6535a353ed032a39a9f16e9987397798100392fc25e40c8a1a4e", "1b2c0934ef16e17b2377944fae8c9b3db6dc64b7e43932ddfe2eeefdf6821410", @@ -35,11 +33,18 @@ "b43b889b5778572d6d348c6a6614dc02258212004d1f1f64f0cdc74dc3249e86", "b9b1537fcbb7226d99145a1c01e8c5961ab83a5834286397943ff86676d545ed", "1a60ee18b2b58b83f38f8cb3cdeb304689be49b47a721a185d73648c4db78427", + "1a4b14f88a763a69e30479d27390d4bdc3307e00b5fd1cafbc645599f109f41b", + "559704720772503a4be2ee205033614a699fae765cc6baf90b8b3c8013678b78", + "f4931776c294354e80d562e0837881c52d2d5bfb30f7371ecb454cce6f44bbfc", + "c028cc7ff001c7023f85056c376a393418b411ec09ff11965b78bbb433f90d3e", + "233fcec4dc9649c93b3fa90c721e25eac33a712f0a6246b6004697425c428280", + "89f11c149953c17b54186251eb3d3ffcd457fca1c7666c0c77c07d6d1e7efda4", + "740cb8945ddc7d5d9d59a77cfcd2e9f24dc60f062c1a0d46377516037fd21939", + "5c4e38373ea41f12a4ffa44ef457a4a504a661966afcf39bb43a92c0df712706", + "652bbcd7da07063758ab5f65b0199dba430908c0d7c8c8ae9106abbdfde5db14", ] devlib = [ - "efb5dcdca9b3a9fbe408d494fb4a23e0b78417eb5fa8eebd4a5d226088f28921", - "f0dfab272ff936225bfa1e9dabeb3c5d12ce08b812bf53ffbddd2ddfac49761c", "0f8780b9098573f1c456bdc84358de924dcf00604330770a383983e1775bf61e", "703de8403c0bd0d80f37c970a698f10f148daf144d34f982e4484d04f7c7bbef", "198df4550d4560537ba60ac7af9bde31d59779c8ec5d6309627f77a43ab6ef6f", @@ -56,11 +61,18 @@ "4df9aba24e574edf23844c0d2d9dda112811db5c2b08c9428604a21b819eb23d", "dca1c145a23f05229d5d646241f9d1d3c5dbf1d745b338ae020eabe33beb965c", "460ad28677092b9eb86ffdc49bcb4d01035e32b4f05161d85f90c9fa80239f50", + "9f42cb73d90bd4561686c0366f60f6e58cfd32ff24b094c69e8259fb5d177457", + "7a484b621d568eef000ee8c4d2d46d589e5682b950f1f410ce7215031f1f3ad7", + "3d479a2aa615b6bb35cd3521122fbff34188dc0cc52d8b0acda59f9f55198211", + "fd612fa750bebd0c3be0ea642b2cae8ff5c7e00a2280b22b9ea16ee86a11d763", + "87f5532b8b653bd18541cdf6e59923cbd340b300d8ec5046d3e4288d9e5195c0", + "d76a16db4a56914383029e241823f7bc2a3d645f2967dd22230f11c11cfe189e", + "e86138d2a63fbcbdf64668d55573b26ae944d0f0ae5a3f5bb59bf7bdb3124d3f", + "4d3449d758e3f79b336248b0207a394eda04ba5cdd48a4088e135ddf769127fa", + "6239fa0c72b150cf0a325676264d3030a67389dec4fca7103f563a70c2b70114", ] llvm = [ - "e922bd492b54d99e56ed88c81e2009ed6472059a180b10cc56ce1f9bd2d7b6ed", - "045e43c0c4a3f4f2f1db9fb603a4f1ea3d56e128147e19ba17909eb57d7f08e5", "4abdf00b297a77c5886cedb37e63acda2ba11cb9f4c0a64e133b05800aadfcf0", "6b54c422e45ad19c9bf5ab090ec21753e7f7d854ca78132c30eb146657b168eb", "c673708d413d60ca8606ee75c77e9871b6953c59029c987b92f2f6e85f683626", @@ -77,11 +89,18 @@ "4df9aba24e574edf23844c0d2d9dda112811db5c2b08c9428604a21b819eb23d", "dca1c145a23f05229d5d646241f9d1d3c5dbf1d745b338ae020eabe33beb965c", "460ad28677092b9eb86ffdc49bcb4d01035e32b4f05161d85f90c9fa80239f50", + "9f42cb73d90bd4561686c0366f60f6e58cfd32ff24b094c69e8259fb5d177457", + "7a484b621d568eef000ee8c4d2d46d589e5682b950f1f410ce7215031f1f3ad7", + "3d479a2aa615b6bb35cd3521122fbff34188dc0cc52d8b0acda59f9f55198211", + "fd612fa750bebd0c3be0ea642b2cae8ff5c7e00a2280b22b9ea16ee86a11d763", + "87f5532b8b653bd18541cdf6e59923cbd340b300d8ec5046d3e4288d9e5195c0", + "d76a16db4a56914383029e241823f7bc2a3d645f2967dd22230f11c11cfe189e", + "e86138d2a63fbcbdf64668d55573b26ae944d0f0ae5a3f5bb59bf7bdb3124d3f", + "4d3449d758e3f79b336248b0207a394eda04ba5cdd48a4088e135ddf769127fa", + "6239fa0c72b150cf0a325676264d3030a67389dec4fca7103f563a70c2b70114", ] flang = [ - "fcefebddca0b373da81ff84f0f5469a1ef77a05430a5195d0f2e6399d3af31c3", - "5ebcbca2e03bd0686e677f44ea551e97bd9395c6b119f832fa784818733aa652", "cc4f1973b1b8e7bcc4f09e3381bae4e1a2e51ea4e2598fc1b520ccb8bf24d28c", "8fd618d81af092416b267c4d00c801731f7a00c0f8d4aedb795e52a4ec1bf183", "fcb319ddb2aa3004a6ae60370ab4425f529336b1cee50f29200e697e61b53586", @@ -98,11 +117,18 @@ "e0f650fc633ab4a8eab30b0c1ba0efb46ec596b540c3a4c13ca24d92c512d255", "a51fbdda9d5d968fe6d23eaeabbe04a0db810a88a7a609ae924e3caaed4539f1", "84b8a9501bece0a56d038c4f0210b0a2537ae6c1b5005c89eec026af07d52bc6", + "4bab6319c378629df868503be1f9e86effa5148924966a780d2ee1d7b6dd6747", + "fcc8b30fc7772ccb36c28af2deb5d1efe6ecf4da3fc2e457a2b7b299b693a290", + "4b03e7932d3291f1d285dc68e2cde6f2e1f1bbf66a2c5da77b329bf902d4b14e", + "dc61c10a5c6853fcf655d45293dc075764b0c0f8ffc63f8d38dcde3139b8f495", + "06c3cee1e3426e4d6b14f80f7e1938991b403cacea36e406491a0fd13dfbaa72", + "a2e27a8da910facea710f56f5d83319dd192746f5ba755493ba1da223228ae8a", + "c4c7caa29c1ad4363288853229a7ef78abb397bb51e3b617d0dc4e8b7d0b08ad", + "5fcc82780fb934e1af9ae835296bf1a1adeb7267fc20d085076995cedde00d07", + "24b426e85b11ad2e63dfd87111a643d2ae0f008bb294db22104588b3b6856f64", ] extras = [ - "017bfed52fbe08185d8dbde79377918454215683562519a9e47acf403d9a1c29", - "437e2017cfe2ab73b15ada0fc1ea88f794f0b108cc5410f457268ae7e4e8985a", "be59433dd85d4b8f0eaff87e0cc424a814152c67f3a682d1343c4bd61dd49a0f", "8060c6879708faf5f7d417b19a479dec9b7b9583a1b885f12d247faf831f7f0b", "f37e1107e4da5b083e794244f3d0c9fd073ccb6fd6015e635349d8f0d679c4b8", @@ -119,11 +145,18 @@ "9615235b4d5ae78e43ca4854f316b83e75f7d9ed3fc187ed1869b7d8d7e26341", "105dd0ccae2864275de5a6370010d923d25307e6a8c35af3befdd0064ea743bc", "cf20b02b1f99f506c198866ef03f2265dc355627760f82cda3878d5bc6486afc", + "5c005fdd3ec1bcd8588628d87298cb59e2ee276a02046b9f2592ab90d39e1f52", + "e13112f5ce118a25decf9626460ca5f1e2333976e23879cb0a4a6a5343db858f", + "5a8172d80162f46c84e9fabd06c25d044767855746a059c859a0180ac4424791", + "ba16f796f47b4a0a152b0e87db72cfe222d186334a0cbf6d8708083ebc1817d8", + "7736fad25566d09702a6e45211495977bef1ba1f8b032d224fc26ffacc6aca60", + "4b0068986e62bb2ba1e26197f8b1350aec65132396f225e3c66530c2ef78f801", + "8b56639b4ba9f791b873da20dbc552e4678acd69f9b256177e9a1d44c8361fdd", + "9c1f2f350f8f4399a4d63c107b231b5a383eb4856792cf512690630198e22460", + "26c697fdc5259efb8601ac607addc3e7f7b7b05fb2cd53e8bc6d332b35b82ae2", ] versions = [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -140,6 +173,15 @@ "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ] versions_dict = dict() # type: Dict[str,Dict[str,str]] components = ["aomp", "devlib", "llvm", "flang", "extras"] @@ -157,12 +199,21 @@ class RocmOpenmpExtras(Package): """OpenMP support for ROCm LLVM.""" homepage = tools_url + "/aomp" - url = tools_url + "/aomp/archive/rocm-6.3.2.tar.gz" + url = tools_url + "/aomp/archive/rocm-7.0.2.tar.gz" tags = ["rocm"] license("Apache-2.0") maintainers("srekolam", "renjithravindrankannath", "estewart08", "afzpatel") + version("7.2.3", sha256=versions_dict["7.2.3"]["aomp"]) + version("7.2.1", sha256=versions_dict["7.2.1"]["aomp"]) + version("7.2.0", sha256=versions_dict["7.2.0"]["aomp"]) + version("7.1.1", sha256=versions_dict["7.1.1"]["aomp"]) + version("7.1.0", sha256=versions_dict["7.1.0"]["aomp"]) + version("7.0.2", sha256=versions_dict["7.0.2"]["aomp"]) + version("7.0.0", sha256=versions_dict["7.0.0"]["aomp"]) + version("6.4.3", sha256=versions_dict["6.4.3"]["aomp"]) + version("6.4.2", sha256=versions_dict["6.4.2"]["aomp"]) version("6.4.1", sha256=versions_dict["6.4.1"]["aomp"]) version("6.4.0", sha256=versions_dict["6.4.0"]["aomp"]) version("6.3.3", sha256=versions_dict["6.3.3"]["aomp"]) @@ -179,14 +230,14 @@ class RocmOpenmpExtras(Package): version("6.0.0", sha256=versions_dict["6.0.0"]["aomp"]) version("5.7.1", sha256=versions_dict["5.7.1"]["aomp"]) version("5.7.0", sha256=versions_dict["5.7.0"]["aomp"]) - version("5.6.1", sha256=versions_dict["5.6.1"]["aomp"], deprecated=True) - version("5.6.0", sha256=versions_dict["5.6.0"]["aomp"], deprecated=True) variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") + variant("flang-legacy", default=False, description="Build flang-legacy") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + conflicts("~flang-legacy", when="@:6") + + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("gmake", type="build") depends_on("cmake@3:", type="build") @@ -201,8 +252,6 @@ class RocmOpenmpExtras(Package): depends_on("zlib", when="@6.2:") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -219,10 +268,19 @@ class RocmOpenmpExtras(Package): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocm-core@{ver}", when=f"@{ver}") - for ver in ["5.6.0", "5.6.1", "5.7.0", "5.7.1", "6.0.0", "6.0.2"]: + for ver in ["5.7.0", "5.7.1", "6.0.0", "6.0.2"]: depends_on(f"hsakmt-roct@{ver}", when=f"@{ver}") depends_on(f"comgr@{ver}", when=f"@{ver}") depends_on(f"hsa-rocr-dev@{ver}", when=f"@{ver}") @@ -282,6 +340,15 @@ class RocmOpenmpExtras(Package): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"comgr@{ver}", when=f"@{ver}") depends_on(f"hsa-rocr-dev@{ver}", when=f"@{ver}") @@ -294,7 +361,7 @@ class RocmOpenmpExtras(Package): expand=True, destination="rocm-openmp-extras", placement="flang", - when=f"@{ver}", + when=f"@{ver} +flang-legacy", ) resource( @@ -325,7 +392,7 @@ class RocmOpenmpExtras(Package): patch("0001-Avoid-duplicate-registration-on-cuda-env.patch", when="@6.1") patch("0001-Avoid-duplicate-registration-on-cuda-env-6.2.patch", when="@6.2:6.3") patch("0001-Avoid-duplicate-registration-on-cuda-env-6.4.patch", when="@6.4:") - patch("0002-add-include-dir-omp.patch", when="@6.4:") + patch("0002-add-include-dir-omp.patch", when="@6.4:7.1") def setup_run_environment(self, env: EnvironmentModifications) -> None: if self.spec.external: @@ -355,8 +422,10 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: gfx_list = "gfx700 gfx701 gfx801 gfx803 gfx900 gfx902 gfx906 gfx908" if self.spec.version >= Version("4.3.1"): - gfx_list = gfx_list + " gfx90a gfx1030 gfx1031" + gfx_list = gfx_list + " gfx90a gfx1030 gfx1031 gfx942" env.set("GFXLIST", gfx_list) + if self.spec.satisfies("%cxx=gcc"): + env.prepend_path("LD_LIBRARY_PATH", self.spec["gcc-runtime"].prefix.lib) def patch(self): src = self.stage.source_path @@ -458,19 +527,19 @@ def patch(self): libomptarget.format(src) + plugin, string=True, ) - - filter_file( - "ADDITIONAL_VERSIONS 2.7", - "ADDITIONAL_VERSIONS 3", - flang.format(src) + "CMakeLists.txt", - ) - - filter_file( - "if (LIBOMPTARGET_DEP_CUDA_FOUND)", - "if (LIBOMPTARGET_DEP_CUDA_FOUND AND NOT LIBOMPTARGET_AMDGPU_ARCH)", - libomptarget.format(src) + "/hostexec/CMakeLists.txt", - string=True, - ) + if self.spec.satisfies("@:6"): + filter_file( + "ADDITIONAL_VERSIONS 2.7", + "ADDITIONAL_VERSIONS 3", + flang.format(src) + "CMakeLists.txt", + ) + if self.spec.satisfies("@:7.1"): + filter_file( + "if (LIBOMPTARGET_DEP_CUDA_FOUND)", + "if (LIBOMPTARGET_DEP_CUDA_FOUND AND NOT LIBOMPTARGET_AMDGPU_ARCH)", + libomptarget.format(src) + "/hostexec/CMakeLists.txt", + string=True, + ) def install(self, spec, prefix): src = self.stage.source_path @@ -502,31 +571,37 @@ def install(self, spec, prefix): ncurses_lib_dir = self.spec["ncurses"].prefix.lib zlib_lib_dir = self.spec["zlib"].prefix.lib + legacy_or_classic = "classic" if self.spec.satisfies("@7.0:") else "legacy" + # flang1 and flang2 symlink needed for build of flang-runtime # libdevice symlink to rocm-openmp-extras for runtime # libdebug symlink to rocm-openmp-extras for runtime - if os.path.islink((os.path.join(bin_dir, "flang1"))): - os.unlink(os.path.join(bin_dir, "flang1")) - if os.path.islink((os.path.join(bin_dir, "flang2"))): - os.unlink(os.path.join(bin_dir, "flang2")) - if self.spec.version >= Version("6.1.0"): - if os.path.islink((os.path.join(bin_dir, "flang-legacy"))): - os.unlink(os.path.join(bin_dir, "flang-legacy")) - if os.path.islink((os.path.join(lib_dir, "libdevice"))): - os.unlink(os.path.join(lib_dir, "libdevice")) - if os.path.islink((os.path.join(llvm_prefix, "lib-debug"))): - os.unlink(os.path.join(llvm_prefix, "lib-debug")) - if not os.path.exists(os.path.join(bin_dir, "flang1")): - os.symlink(os.path.join(omp_bin_dir, "flang1"), os.path.join(bin_dir, "flang1")) - if not os.path.exists(os.path.join(bin_dir, "flang2")): - os.symlink(os.path.join(omp_bin_dir, "flang2"), os.path.join(bin_dir, "flang2")) - - if self.spec.version >= Version("6.1.0"): - os.symlink( - os.path.join(omp_bin_dir, "flang-legacy"), os.path.join(bin_dir, "flang-legacy") - ) - os.symlink(os.path.join(omp_lib_dir, "libdevice"), os.path.join(lib_dir, "libdevice")) - os.symlink(os.path.join(self.prefix, "lib-debug"), os.path.join(llvm_prefix, "lib-debug")) + if self.spec.satisfies("+flang-legacy"): + if os.path.islink((os.path.join(bin_dir, "flang1"))): + os.unlink(os.path.join(bin_dir, "flang1")) + if os.path.islink((os.path.join(bin_dir, "flang2"))): + os.unlink(os.path.join(bin_dir, "flang2")) + if self.spec.version >= Version("6.1.0"): + if os.path.islink((os.path.join(bin_dir, f"flang-{legacy_or_classic}"))): + os.unlink(os.path.join(bin_dir, f"flang-{legacy_or_classic}")) + if not os.path.exists(os.path.join(bin_dir, "flang1")): + symlink(os.path.join(omp_bin_dir, "flang1"), os.path.join(bin_dir, "flang1")) + if not os.path.exists(os.path.join(bin_dir, "flang2")): + symlink(os.path.join(omp_bin_dir, "flang2"), os.path.join(bin_dir, "flang2")) + + if self.spec.version >= Version("6.1.0"): + symlink( + os.path.join(omp_bin_dir, f"flang-{legacy_or_classic}"), + os.path.join(bin_dir, f"flang-{legacy_or_classic}"), + ) + + if self.spec.satisfies("@:7"): + if os.path.islink((os.path.join(lib_dir, "libdevice"))): + os.unlink(os.path.join(lib_dir, "libdevice")) + if os.path.islink((os.path.join(llvm_prefix, "lib-debug"))): + os.unlink(os.path.join(llvm_prefix, "lib-debug")) + symlink(os.path.join(omp_lib_dir, "libdevice"), os.path.join(lib_dir, "libdevice")) + symlink(os.path.join(self.prefix, "lib-debug"), os.path.join(llvm_prefix, "lib-debug")) # Set cmake args components = dict() @@ -535,13 +610,16 @@ def install(self, spec, prefix): "../rocm-openmp-extras/aomp-extras", f"-DLLVM_DIR={llvm_prefix}", f"-DDEVICE_LIBS_DIR={devlibs_prefix}/amdgcn/bitcode", - f"-DCMAKE_C_COMPILER={bin_dir}/clang", - f"-DCMAKE_CXX_COMPILER={bin_dir}/clang++", "-DAOMP_STANDALONE_BUILD=0", f"-DDEVICELIBS_ROOT={devlibs_src}", "-DNEW_BC_PATH=1", f"-DAOMP={llvm_prefix}", ] + if not self.spec.satisfies("%cxx=rocmcc"): + components["aomp-extras"] += [ + f"-DCMAKE_C_COMPILER={bin_dir}/clang", + f"-DCMAKE_CXX_COMPILER={bin_dir}/clang++", + ] # Shared cmake configuration for openmp, openmp-debug # Due to hsa-rocr-dev using libelf instead of elfutils @@ -556,8 +634,6 @@ def install(self, spec, prefix): f"-DDEVICELIBS_ROOT={devlibs_src}", f"-DOPENMP_TEST_C_COMPILER={bin_dir}/clang", f"-DOPENMP_TEST_CXX_COMPILER={bin_dir}/clang++", - f"-DCMAKE_C_COMPILER={bin_dir}/clang", - f"-DCMAKE_CXX_COMPILER={bin_dir}/clang++", f"-DLIBOMPTARGET_AMDGCN_GFXLIST={gfx_list}", "-DLIBOMP_COPY_EXPORTS=OFF", f"-DHSA_LIB={hsa_prefix}/lib", @@ -591,6 +667,11 @@ def install(self, spec, prefix): "-DCMAKE_CXX_FLAGS=-fsanitize=address -shared-libasan", "-DCMAKE_LD_FLAGS=-fuse-ld=lld", ] + if not self.spec.satisfies("%cxx=rocmcc"): + openmp_common_args += [ + f"-DCMAKE_C_COMPILER={bin_dir}/clang", + f"-DCMAKE_CXX_COMPILER={bin_dir}/clang++", + ] components["openmp"] = ["../rocm-openmp-extras/llvm-project/openmp"] components["openmp"] += openmp_common_args @@ -604,13 +685,15 @@ def install(self, spec, prefix): components["openmp-debug"] += openmp_common_args + flang_bin = "flang-classic" if self.spec.satisfies("@7.0:") else "flang" + # Shared cmake configuration for pgmath, flang, flang-runtime flang_common_args = [ "-DLLVM_ENABLE_ASSERTIONS=ON", f"-DLLVM_CONFIG={bin_dir}/llvm-config", f"-DCMAKE_CXX_COMPILER={bin_dir}/clang++", f"-DCMAKE_C_COMPILER={bin_dir}/clang", - f"-DCMAKE_Fortran_COMPILER={bin_dir}/flang", + f"-DCMAKE_Fortran_COMPILER={bin_dir}/{flang_bin}", "-DLLVM_TARGETS_TO_BUILD=AMDGPU;x86", # Spack thinks some warnings from the flang build are errors. # Disable those warnings in C and CXX flags. @@ -618,10 +701,18 @@ def install(self, spec, prefix): f"-DCMAKE_C_FLAGS={flang_warning} -I{src}{libpgmath}", ] + if not self.spec.satisfies("%cxx=rocmcc"): + flang_common_args += [ + f"-DCMAKE_C_COMPILER={bin_dir}/clang", + f"-DCMAKE_CXX_COMPILER={bin_dir}/clang++", + ] + components["pgmath"] = ["../rocm-openmp-extras/flang/runtime/libpgmath"] components["pgmath"] += flang_common_args components["offload"] = ["../rocm-openmp-extras/llvm-project/offload"] + if self.spec.satisfies("@7.0:"): + components["offload"] += [f"-DLLVM_DIR={llvm_prefix}/lib/cmake/llvm"] components["offload"] += openmp_common_args flang_legacy_version = "17.0-4" @@ -639,17 +730,20 @@ def install(self, spec, prefix): "-DLLVM_INCLUDE_DOCS=0", "-DLLVM_INCLUDE_UTILS=0", "-DCLANG_DEFAULT_PIE_ON_LINUX=0", - "../../rocm-openmp-extras/flang/flang-legacy/{0}/llvm-legacy/llvm".format( - flang_legacy_version - ), + f"../../rocm-openmp-extras/flang/flang-{legacy_or_classic}/" + f"{flang_legacy_version}/llvm-{legacy_or_classic}/llvm", ] components["flang-legacy"] = [ - f"-DCMAKE_C_COMPILER={bin_dir}/clang", - f"-DCMAKE_CXX_COMPILER={bin_dir}/clang++", - f"../rocm-openmp-extras/flang/flang-legacy/{flang_legacy_version}", + f"../rocm-openmp-extras/flang/flang-{legacy_or_classic}/{flang_legacy_version}" ] + if not self.spec.satisfies("%cxx=rocmcc"): + components["flang-legacy"] += [ + f"-DCMAKE_C_COMPILER={bin_dir}/clang", + f"-DCMAKE_CXX_COMPILER={bin_dir}/clang++", + ] + flang_legacy_flags = [] if ( self.compiler.name == "gcc" @@ -682,10 +776,11 @@ def install(self, spec, prefix): build_order = ["aomp-extras", "openmp"] if self.spec.version >= Version("6.4.0"): build_order += ["offload"] - if self.spec.version >= Version("6.1.0"): - build_order += ["flang-legacy-llvm", "flang-legacy"] - build_order += ["pgmath", "flang", "flang-runtime"] + if self.spec.satisfies("+flang-legacy"): + if self.spec.version >= Version("6.1.0"): + build_order += ["flang-legacy-llvm", "flang-legacy"] + build_order += ["pgmath", "flang", "flang-runtime"] # Override standard CMAKE_BUILD_TYPE std_cmake_args = CMakeBuilder.std_args(self, generator="Unix Makefiles") for arg in std_cmake_args: @@ -696,7 +791,7 @@ def install(self, spec, prefix): cmake_args = components[component] cmake_args.extend(std_cmake_args) if component == "flang-legacy-llvm": - with working_dir(f"spack-build-{component}/llvm-legacy", create=True): + with working_dir(f"spack-build-{component}/llvm-{legacy_or_classic}", create=True): cmake_args.append("-DCMAKE_BUILD_TYPE=Release") cmake(*cmake_args) make() @@ -706,7 +801,7 @@ def install(self, spec, prefix): cmake(*cmake_args) make() make("install") - os.symlink(os.path.join(bin_dir, "clang"), os.path.join(omp_bin_dir, "clang")) + symlink(os.path.join(bin_dir, "clang"), os.path.join(omp_bin_dir, "clang")) else: with working_dir(f"spack-build-{component}", create=True): # OpenMP build needs to be run twice(Release, Debug) diff --git a/repos/spack_repo/builtin/packages/rocm_smi_lib/disable_pdf_generation_with_doxygen_and_latex.patch b/repos/spack_repo/builtin/packages/rocm_smi_lib/disable_pdf_generation_with_doxygen_and_latex.patch deleted file mode 100644 index d3811be8a27..00000000000 --- a/repos/spack_repo/builtin/packages/rocm_smi_lib/disable_pdf_generation_with_doxygen_and_latex.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/rocm_smi/CMakeLists.txt b/rocm_smi/CMakeLists.txt -index 90cad13..02ea897 100755 ---- a/rocm_smi/CMakeLists.txt -+++ b/rocm_smi/CMakeLists.txt -@@ -140,8 +140,8 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/bindings_link - - - # Generate Doxygen documentation --find_package(Doxygen) --find_package(LATEX COMPONENTS PDFLATEX) -+#find_package(Doxygen) -+#find_package(LATEX COMPONENTS PDFLATEX) - - if (DOXYGEN_FOUND AND LATEX_FOUND) - set (RSMI_MANUAL_NAME "ROCm_SMI_Manual") diff --git a/repos/spack_repo/builtin/packages/rocm_smi_lib/package.py b/repos/spack_repo/builtin/packages/rocm_smi_lib/package.py index ad09a37e23c..3f5d05a07d3 100644 --- a/repos/spack_repo/builtin/packages/rocm_smi_lib/package.py +++ b/repos/spack_repo/builtin/packages/rocm_smi_lib/package.py @@ -15,13 +15,28 @@ class RocmSmiLib(CMakePackage): for applications to monitor and control GPU applications.""" homepage = "https://github.com/ROCm/rocm_smi_lib" - git = "https://github.com/ROCm/rocm_smi_lib.git" - url = "https://github.com/ROCm/rocm_smi_lib/archive/rocm-6.2.4.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-systems.git" + tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath") libraries = ["librocm_smi64"] + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/rocm_smi_lib/archive/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-systems/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b") + version("7.2.1", sha256="201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f") + version("7.2.0", sha256="728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638") + version("7.1.1", sha256="f47550aeeb2827a3ae857c35e16f5a9042de70d911abab80bebe4840c9ecd4fd") + version("7.1.0", sha256="eab6c7a85deb992b5cf511cdf7d0a6f8a93e46a0bfb6cf66c73d95c26dc4ce5e") + version("7.0.2", sha256="cdd7951fb46b79f6791340da21fc47dc3e719f82795f2e1f5546bb7d35db954c") + version("7.0.0", sha256="c41c5e697d53201108608916c6e495514b0695c0fbbac8d524820f7ae2af3fdb") + version("6.4.3", sha256="74fde0f8cd9362f7073db22ffb98c72f1f7bdb42b6e7a63ae4e0a06607644d4a") + version("6.4.2", sha256="466f6351c1d94c043195c6b5addd70d21eb1e678d5637b9849dc6b5d0e858cb5") version("6.4.1", sha256="c82c8c9de89537b903d82711c531b4b1c6d104098b5370d049527d1f250944b7") version("6.4.0", sha256="0c462520b4fa0cf9b49515b207b0ead32a5f96ddba487c5d4fa07a403690c05a") version("6.3.3", sha256="679dfd0cbd213d27660e546584ab013afea286eff95928d748d168503305c9c4") @@ -38,9 +53,6 @@ class RocmSmiLib(CMakePackage): version("6.0.0", sha256="0053b42402fd007e5ca9b3186c70f2c6f1b3026558f328722adadc2838c51309") version("5.7.1", sha256="4d79cb0482b2f801cc7824172743e3dd2b44b9f6784d1ca2e5067f2fbb4ef803") version("5.7.0", sha256="a399db3d9fc113ce2dd1ab5608a1cf9129ec4b6a2a79ab7922b1d9f43c454640") - with default_args(deprecated=True): - version("5.6.1", sha256="9e94f9a941202c3d7ce917fd1cd78c4e0f06f48d6c929f3aa916378ccef1e02c") - version("5.6.0", sha256="88be875948a29454b8aacced8bb8ad967502a7a074ecbc579ed673c1650a2f7e") variant("shared", default=True, description="Build shared or static library") variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") @@ -52,8 +64,6 @@ class RocmSmiLib(CMakePackage): depends_on("python@3:", type=("build", "run")) for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -70,6 +80,15 @@ class RocmSmiLib(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocm-core@{ver}", when=f"@{ver}") @@ -86,19 +105,27 @@ class RocmSmiLib(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on("llvm-amdgpu", when=f"@{ver}+asan") - depends_on("pkg-config", when="@6.4:") + depends_on("pkgconfig", when="@6.4:") depends_on("libdrm", when="@6.4:") patch( "https://github.com/ROCm/rocm_smi_lib/commit/11f12b86517d0e9868f4d16d74d4e8504c3ba7da.patch?full_index=1", sha256="62be7262f6e1e71bf82a03f500a424a536638f04e913d0f4b477f60e8e1190fd", - when="@6.1.1:", + when="@6.1.1:6", ) - patch("disable_pdf_generation_with_doxygen_and_latex.patch", when="@:5.6") patch( "https://github.com/ROCm/rocm_smi_lib/commit/ce405476cabf66a884a351cb2e3253bd5c29e06b.patch?full_index=1", sha256="54094b5dbd05b79341e38e95f785dcbb0ba4a5aef4bad19e075ea77470164138", @@ -106,6 +133,13 @@ class RocmSmiLib(CMakePackage): ) patch("0001-add-libdrm-include-dir.patch", when="@6.4") + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/rocm-smi-lib" + else: + return "." + def cmake_args(self): args = [ self.define_from_variant("BUILD_SHARED_LIBS", "shared"), @@ -137,5 +171,7 @@ def determine_version(cls, lib): @run_after("build") @on_package_attributes(run_tests=True) def check_build(self): - exe = which(join_path(self.build_directory, "tests", "rocm_smi_test", "rsmitst")) + exe = which( + join_path(self.build_directory, "tests", "rocm_smi_test", "rsmitst"), required=True + ) exe() diff --git a/repos/spack_repo/builtin/packages/rocm_tensile/package.py b/repos/spack_repo/builtin/packages/rocm_tensile/package.py index b0728a50ccb..a1ed304f018 100644 --- a/repos/spack_repo/builtin/packages/rocm_tensile/package.py +++ b/repos/spack_repo/builtin/packages/rocm_tensile/package.py @@ -4,6 +4,7 @@ from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage from spack_repo.builtin.packages.boost.package import Boost from spack.package import * @@ -14,13 +15,21 @@ class RocmTensile(CMakePackage): homepage = "https://github.com/ROCm/Tensile/" git = "https://github.com/ROCm/Tensile.git" - url = "https://github.com/ROCm/Tensile/archive/rocm-6.1.1.tar.gz" + url = "https://github.com/ROCm/Tensile/archive/rocm-6.4.3.tar.gz" tags = ["rocm"] license("MIT") maintainers("srekolam", "renjithravindrankannath", "haampie", "afzpatel") - + version("7.2.3", sha256="3bb419564c6c61cc0663c6cab3c46c45459be16bb2c15f055852de954dc8a3cf") + version("7.2.1", sha256="9d7757997b09c80a450a81dc48046408433d79d78f72ba362ee0afd721788b2e") + version("7.2.0", sha256="e09cfe77fc0b9198e3dd0530214599b1bf849a8bd36031a734f0e591aafb7caf") + version("7.1.1", sha256="12e3b538efe2069ecd77dfd0bc9309d6f067eab002f153ddbf8b20896ee46ec3") + version("7.1.0", sha256="853b92723750ee2249d8f7aedb1e367a97fb3b9fe4b3741d67e8c1bee7cd97cb") + version("7.0.2", sha256="6c87c6a0795d54051aaad97c4467ee1a298ce24ddf450a287f9496df8ab3b6d3") + version("7.0.0", sha256="1b825a8b79822adafb2d9747b1e4ff78ce14a71561b02048fe134eecf224714c") + version("6.4.3", sha256="0190bfc7050c6ea73fb20ce4d35a056644e129f792f3b016b079ee6cc237a598") + version("6.4.2", sha256="0c30d711ed09f53af9509e264addad9be25e897a7ad490752741cb848a2f31e6") version("6.4.1", sha256="f96fe39fbb0d43e39b258b21d66234abf3248f8cfa6954f922618d4bb7d04c74") version("6.4.0", sha256="cfe32aa31aa0dd79018d0cdd36e09df3a548159cb7b8e18d0ef6513d0febce90") version("6.3.3", sha256="5849fc3898e9cea05569c0ee102c13043c4df67079119572687bc42f274ae496") @@ -37,9 +46,15 @@ class RocmTensile(CMakePackage): version("6.0.0", sha256="5d90add62d1439b7daf0527316e950e454e5d8beefb4f723865fe9ab26c7aa42") version("5.7.1", sha256="9211a51b23c22b7a79e4e494e8ff3c31e90bf21adb8cce260acc57891fb2c917") version("5.7.0", sha256="fe2ae067c1c579f33d7a1e26da3fe6b4ed44befa08f9dfce2ceae586f184b816") - with default_args(deprecated=True): - version("5.6.1", sha256="3e78c933563fade8781a1dca2079bff135af2f5d2c6eb0147797d2c1f24d006c") - version("5.6.0", sha256="383728ecf49def59ab9a7f8a1d1e2eaf8b528e36b461e27030a2aab1a1ed80cb") + + amdgpu_targets = ROCmPackage.amdgpu_targets + + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) tensile_architecture = ( "all", @@ -70,8 +85,6 @@ class RocmTensile(CMakePackage): depends_on(Boost.with_default_variants) for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -88,6 +101,15 @@ class RocmTensile(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocm-cmake@{ver}", type="build", when=f"@{ver}") depends_on(f"hip@{ver}", when=f"@{ver}") @@ -98,11 +120,14 @@ class RocmTensile(CMakePackage): root_cmakelists_dir = "Tensile/Source" - patch("0003-require-openmp-extras-when-tensile-use-openmp.patch", when="@5.6.0:") - patch("0004-replace_rocm_smi.patch", when="@6.4") + patch("0003-require-openmp-extras-when-tensile-use-openmp.patch") + patch("0004-replace_rocm_smi.patch", when="@6.4:") def setup_build_environment(self, env: EnvironmentModifications) -> None: - env.set("CXX", self.spec["hip"].hipcc) + if self.spec.satisfies("@7.1:"): + env.set("CXX", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++") + else: + env.set("CXX", self.spec["hip"].hipcc) env.append_flags("LDFLAGS", "-pthread") def get_gpulist_for_tensile_support(self): @@ -135,6 +160,12 @@ def cmake_args(self): if self.spec.satisfies("^cmake@3.21.0:3.21.2"): args.append(self.define("__skip_rocmclang", "ON")) + if self.spec.satisfies("@7.1:"): + args.append( + self.define("CMAKE_MODULE_PATH", f"{self.stage.source_path}/next-cmake/cmake") + ) + if "auto" not in self.spec.variants["amdgpu_target"]: + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) return args def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/rocm_validation_suite/007-cleanup-path-reference-donot-download-googletest-yaml-library-path_5.6.patch b/repos/spack_repo/builtin/packages/rocm_validation_suite/007-cleanup-path-reference-donot-download-googletest-yaml-library-path_5.6.patch deleted file mode 100644 index 7acd9606141..00000000000 --- a/repos/spack_repo/builtin/packages/rocm_validation_suite/007-cleanup-path-reference-donot-download-googletest-yaml-library-path_5.6.patch +++ /dev/null @@ -1,532 +0,0 @@ -From 795e7474acf23eb2f7815fd54ffdd3fd41ff8c35 Mon Sep 17 00:00:00 2001 -From: Renjith Ravindran -Date: Tue, 12 Sep 2023 07:00:31 +0000 -Subject: [PATCH] 5.6 Patch to add rocm-smi library and include path - ---- - CMakeLists.txt | 105 ++++----------------------------- - babel.so/CMakeLists.txt | 16 ++--- - cmake_modules/tests_unit.cmake | 2 +- - edp.so/CMakeLists.txt | 3 +- - gm.so/CMakeLists.txt | 4 +- - gpup.so/CMakeLists.txt | 2 +- - gst.so/CMakeLists.txt | 4 +- - iet.so/CMakeLists.txt | 6 +- - mem.so/CMakeLists.txt | 4 +- - pbqt.so/CMakeLists.txt | 2 +- - pebb.so/CMakeLists.txt | 2 +- - peqt.so/CMakeLists.txt | 4 +- - perf.so/CMakeLists.txt | 4 +- - pesm.so/CMakeLists.txt | 2 +- - rcqt.so/CMakeLists.txt | 2 +- - rvs/CMakeLists.txt | 2 +- - rvs/tests.cmake | 2 +- - rvslib/CMakeLists.txt | 2 +- - smqt.so/CMakeLists.txt | 2 +- - testif.so/CMakeLists.txt | 2 +- - 20 files changed, 45 insertions(+), 127 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index a12eb41..900657a 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -68,13 +68,12 @@ endif(rocblas_FOUND) - # variables since we will pass them as cmake params appropriately, and - # all find_packages relevant to this build will be in ROCM path hence appending it to CMAKE_PREFIX_PATH - set(ROCM_PATH "/opt/rocm" CACHE PATH "ROCM install path") --set(CMAKE_INSTALL_PREFIX "/opt/rocm" CACHE PATH "CMAKE installation directory") --set(CMAKE_PACKAGING_INSTALL_PREFIX "/opt/rocm" CACHE PATH "Prefix used in built packages") -+set (CMAKE_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" ) - list(APPEND CMAKE_PREFIX_PATH "${ROCM_PATH}") --set(ROCR_INC_DIR "${ROCM_PATH}/include" CACHE PATH "Contains header files exported by ROC Runtime" FORCE) --set(ROCR_LIB_DIR "${ROCM_PATH}/lib" CACHE PATH "Contains library files exported by ROC Runtime" FORCE) --set(HIP_INC_DIR "${ROCM_PATH}" CACHE PATH "Contains header files exported by ROC Runtime") --set(ROCT_INC_DIR "${ROCM_PATH}/include" CACHE PATH "Contains header files exported by ROC Trunk" FORCE) -+set(ROCR_INC_DIR "${HSA_PATH}/include" CACHE PATH "Contains header files exported by ROC Runtime") -+set(ROCR_LIB_DIR "${HSA_PATH}/lib" CACHE PATH "Contains library files exported by ROC Runtime") -+set(HIP_INC_DIR "${HIP_PATH}" CACHE PATH "Contains header files exported by ROC Runtime") -+set(ROCT_INC_DIR "${ROCM_PATH}/include" CACHE PATH "Contains header files exported by ROC Trunk") - - - # -@@ -193,8 +192,6 @@ set(RVS_ROCBLAS "0" CACHE STRING "1 = use local rocBLAS") - set(RVS_ROCMSMI "0" CACHE STRING "1 = use local rocm_smi_lib") - - set(RVS_LIB_DIR "${CMAKE_BINARY_DIR}/rvslib" CACHE PATH "Contains RVS library") --set(YAML_INC_DIR "${CMAKE_BINARY_DIR}/yaml-src/include" CACHE PATH "Contains header files exported by yaml-cpp") --set(YAML_LIB_DIR "${CMAKE_BINARY_DIR}/yaml-build" CACHE PATH "Contains library files exported by yaml-cpp") - - if (${RVS_OS_TYPE} STREQUAL "centos") - set(ROCT_LIB_DIR "${ROCM_PATH}/lib64" CACHE PATH "Contains library files exported by ROC Trunk") -@@ -238,86 +235,6 @@ if (NOT DEFINED CPACK_GENERATOR ) - endif() - message (STATUS "CPACK_GENERATOR ${CPACK_GENERATOR}" ) - -- --################################################################################ --# Download and unpack yaml-cpp at configure time --configure_file(CMakeYamlDownload.cmake yaml-download/CMakeLists.txt) --execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . -- RESULT_VARIABLE result -- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/yaml-download ) --if(result) -- message(FATAL_ERROR "CMake step for yaml-download failed: ${result}") --endif() --execute_process(COMMAND ${CMAKE_COMMAND} --build . -- RESULT_VARIABLE result -- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/yaml-download ) --if(result) -- message(FATAL_ERROR "Build step for yaml-download failed: ${result}") --endif() --execute_process(COMMAND ${CMAKE_COMMAND} ${CMAKE_BINARY_DIR}/yaml-src -B${CMAKE_BINARY_DIR}/yaml-build -- RESULT_VARIABLE result -- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/yaml-src ) --if(result) -- message(FATAL_ERROR "Config step for yaml-src failed: ${result}") --endif() -- --add_custom_target(rvs_yaml_target -- DEPENDS ${CMAKE_BINARY_DIR}/yaml-build/libyaml-cpp.a --) -- --add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/yaml-build/libyaml-cpp.a -- COMMAND make -C ${CMAKE_BINARY_DIR}/yaml-build -- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/yaml-src -- COMMENT "Generating yaml-cpp targets" -- VERBATIM) -- --################################################################################ --## GOOGLE TEST --if(RVS_BUILD_TESTS) -- # Download and unpack googletest at configure time -- configure_file(CMakeGtestDownload.cmake googletest-download/CMakeLists.txt) -- execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . -- RESULT_VARIABLE result -- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download ) -- if(result) -- message(FATAL_ERROR "CMake step for googletest failed: ${result}") -- endif() -- execute_process(COMMAND ${CMAKE_COMMAND} --build . -- RESULT_VARIABLE result -- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download ) -- if(result) -- message(FATAL_ERROR "Build step for googletest failed: ${result}") -- endif() -- execute_process(COMMAND ${CMAKE_COMMAND} ${CMAKE_BINARY_DIR}/googletest-src -B${CMAKE_BINARY_DIR}/googletest-build -- RESULT_VARIABLE result -- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-src ) -- if(result) -- message(FATAL_ERROR "Config step for googletest-src failed: ${result}") -- endif() -- -- add_custom_target(rvs_gtest_target -- DEPENDS ${CMAKE_BINARY_DIR}/googletest-build/lib/libgtest_main.a -- ) -- -- add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/googletest-build/lib/libgtest_main.a -- COMMAND make -C ${CMAKE_BINARY_DIR}/googletest-build -- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-src -- COMMENT "Generating googletest targets" -- VERBATIM) -- -- ## Set default unit test framework include path -- if (NOT DEFINED UT_INC) -- set (UT_INC "${CMAKE_BINARY_DIR}/googletest-src/googletest/include") -- message ("UT_INC ${UT_INC}") -- endif () -- -- ## Set default unit test framework include path -- if (NOT DEFINED UT_LIB) -- set (UT_LIB "${CMAKE_BINARY_DIR}/googletest-build/lib") -- message ("UT_LIB ${UT_LIB}") -- endif() -- --endif() - ################################################################################ - ## rocBLAS - -@@ -441,8 +358,8 @@ if (RVS_ROCBLAS EQUAL 1) - set(ROCBLAS_INC_DIR "${CMAKE_BINARY_DIR}/rvs_rblas-src/build/release/rocblas-install") - set(ROCBLAS_LIB_DIR "${CMAKE_BINARY_DIR}/rvs_rblas-src/build/release/rocblas-install/lib/") - else() -- set(ROCBLAS_INC_DIR "${ROCM_PATH}/include") -- set(ROCBLAS_LIB_DIR "${ROCM_PATH}/lib") -+ set(ROCBLAS_INC_DIR "${ROCBLAS_DIR}/include") -+ set(ROCBLAS_LIB_DIR "${ROCBLAS_DIR}/lib") - endif() - - if (RVS_ROCMSMI EQUAL 1) -@@ -457,8 +374,8 @@ else() - set(ROCM_SMI_LIB_DIR "${ROCM_PATH}/rocm_smi/lib") - else() - message( STATUS "ROCBLAS REORG Enabled Version: ${RVS_ROCBLAS_VERSION_FLAT}" ) -- set(ROCM_SMI_INC_DIR "${ROCM_PATH}/include") -- set(ROCM_SMI_LIB_DIR "${ROCM_PATH}/lib") -+ set(ROCM_SMI_INC_DIR "${ROCM_SMI_DIR}/include") -+ set(ROCM_SMI_LIB_DIR "${ROCM_SMI_DIR}/lib") - endif() - endif() - set(ROCM_SMI_LIB "rocm_smi64" CACHE STRING "rocm_smi library name") -@@ -502,7 +419,7 @@ if (RVS_BUILD_TESTS) - add_subdirectory(testif.so) - endif() - --add_dependencies(rvshelper rvs_bin_folder rvs_doc rvs_yaml_target) -+add_dependencies(rvshelper rvs_bin_folder rvs_doc) - - - add_dependencies(pesm rvslib rvslibrt) -@@ -537,7 +454,7 @@ if (RVS_BUILD_TESTS) - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - COMMENT "Create the bintest directory" - VERBATIM) -- add_dependencies(rvshelper rvs_bintest_folder rvs_gtest_target) -+ add_dependencies(rvshelper rvs_bintest_folder) - endif() - - add_custom_target(rvs_doc ALL -diff --git a/babel.so/CMakeLists.txt b/babel.so/CMakeLists.txt -index 7290cef..ebd55ad 100644 ---- a/babel.so/CMakeLists.txt -+++ b/babel.so/CMakeLists.txt -@@ -107,13 +107,13 @@ set(HIP_HCC_LIB "amdhip64") - add_compile_options(-DRVS_ROCBLAS_VERSION_FLAT=${RVS_ROCBLAS_VERSION_FLAT}) - - # Determine Roc Runtime header files are accessible --if(NOT EXISTS ${HIP_INC_DIR}/include/hip/hip_runtime.h) -- message("ERROR: ROC Runtime headers can't be found under specified path. Please set HIP_INC_DIR path. Current value is : " ${HIP_INC_DIR}) -+if(NOT EXISTS ${HIP_PATH}/include/hip/hip_runtime.h) -+ message("ERROR: ROC Runtime headers can't be found under specified path. Please set HIP_PATH path. Current value is : " ${HIP_PATH}) - RETURN() - endif() - --if(NOT EXISTS ${HIP_INC_DIR}/include/hip/hip_runtime_api.h) -- message("ERROR: ROC Runtime headers can't be found under specified path. Please set HIP_INC_DIR path. Current value is : " ${HIP_INC_DIR}) -+if(NOT EXISTS ${HIP_PATH}/include/hip/hip_runtime_api.h) -+ message("ERROR: ROC Runtime headers can't be found under specified path. Please set HIP_PATH path. Current value is : " ${HIP_PATH}) - RETURN() - endif() - -@@ -133,16 +133,16 @@ if(DEFINED RVS_ROCMSMI) - endif() - - --if(NOT EXISTS "${ROCR_LIB_DIR}/lib${HIP_HCC_LIB}.so") -- message("ERROR: ROC Runtime libraries can't be found under specified path. Please set ROCR_LIB_DIR path. Current value is : " ${ROCR_LIB_DIR}) -+if(NOT EXISTS "${HIP_PATH}/lib/lib${HIP_HCC_LIB}.so") -+ message("ERROR: ROC Runtime libraries can't be found under specified path. Please set HIP_PATH path. Current value is : " ${HIP_PATH}) - RETURN() - endif() - - ## define include directories --include_directories(./ ../ ${ROCR_INC_DIR} ${HIP_INC_DIR}) -+include_directories(./ ../ ${HIP_PATH}) - - # Add directories to look for library files to link --link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH}) -+link_directories(${RVS_LIB_DIR} ${HIP_PATH}/lib/ ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR}) - ## additional libraries - set (PROJECT_LINK_LIBS rvslibrt rvslib libpthread.so libpci.so libm.so) - -diff --git a/cmake_modules/tests_unit.cmake b/cmake_modules/tests_unit.cmake -index 586f453..c8b6560 100644 ---- a/cmake_modules/tests_unit.cmake -+++ b/cmake_modules/tests_unit.cmake -@@ -27,7 +27,7 @@ - ## define additional unit testing include directories - include_directories(${UT_INC}) - ## define additional unit testing lib directories --link_directories(${UT_LIB} ${RVS_LIB_DIR}) -+link_directories(${UT_LIB} ${RVS_LIB_DIR} ${ROCM_SMI_LIB_DIR}) - - file(GLOB TESTSOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} test/test*.cpp ) - #message ( "TESTSOURCES: ${TESTSOURCES}" ) -diff --git a/edp.so/CMakeLists.txt b/edp.so/CMakeLists.txt -index a933061..d117e03 100644 ---- a/edp.so/CMakeLists.txt -+++ b/edp.so/CMakeLists.txt -@@ -129,6 +129,7 @@ endif() - - - if(NOT EXISTS "${ROCR_LIB_DIR}/lib${HIP_HCC_LIB}.so") -+ message("${ROCR_LIB_DIR}/lib${HIP_HCC_LIB}.so not found") - message("ERROR: ROC Runtime libraries can't be found under specified path. Please set ROCR_LIB_DIR path. Current value is : " ${ROCR_LIB_DIR}) - RETURN() - endif() -@@ -136,7 +137,7 @@ endif() - ## define include directories - include_directories(./ ../ ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR}) - # Add directories to look for library files to link --link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR}) -+link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ROCM_SMI_LIB_DIR}) - ## additional libraries - set (PROJECT_LINK_LIBS rvslibrt rvslib libpthread.so libpciaccess.so libpci.so libm.so) - -diff --git a/gm.so/CMakeLists.txt b/gm.so/CMakeLists.txt -index afaafcb..7c0cd79 100644 ---- a/gm.so/CMakeLists.txt -+++ b/gm.so/CMakeLists.txt -@@ -122,7 +122,7 @@ include_directories(./ ../ ${ROCM_SMI_INC_DIR}) - # Add directories to look for library files to link - link_directories(${RVS_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${ASAN_LIB_PATH}) - ## additional libraries --set (PROJECT_LINK_LIBS rvslibrt rvslib libpthread.so libpci.so libm.so) -+set (PROJECT_LINK_LIBS rvslibrt rvslib libpthread.so libpci.so libm.so librocm_smi64.so) - - ## define source files - set(SOURCES src/rvs_module.cpp src/action.cpp src/worker.cpp) -@@ -133,7 +133,7 @@ add_library( ${RVS_TARGET} SHARED ${SOURCES}) - set_target_properties(${RVS_TARGET} PROPERTIES - SUFFIX .so.${LIB_VERSION_STRING} - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) --target_link_libraries(${RVS_TARGET} ${PROJECT_LINK_LIBS} ${ROCM_SMI_LIB}) -+target_link_libraries(${RVS_TARGET} ${PROJECT_LINK_LIBS}) - add_dependencies(${RVS_TARGET} rvslibrt rvslib) - - add_custom_command(TARGET ${RVS_TARGET} POST_BUILD -diff --git a/gpup.so/CMakeLists.txt b/gpup.so/CMakeLists.txt -index ca1674b..a9e4d16 100644 ---- a/gpup.so/CMakeLists.txt -+++ b/gpup.so/CMakeLists.txt -@@ -111,7 +111,7 @@ endif() - ## define include directories - include_directories(./ ../ include ../include) - # Add directories to look for library files to link --link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH}) -+link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR}) - ## additional libraries - set (PROJECT_LINK_LIBS rvslibrt rvslib libpci.so libm.so) - -diff --git a/gst.so/CMakeLists.txt b/gst.so/CMakeLists.txt -index d85eadb..ca7fff4 100644 ---- a/gst.so/CMakeLists.txt -+++ b/gst.so/CMakeLists.txt -@@ -137,7 +137,7 @@ if(DEFINED RVS_ROCMSMI) - endif() - - --if(NOT EXISTS "${ROCR_LIB_DIR}/lib${HIP_HCC_LIB}.so") -+if(NOT EXISTS "${HIP_INC_DIR}/lib/lib${HIP_HCC_LIB}.so") - message("ERROR: ROC Runtime libraries can't be found under specified path. Please set ROCR_LIB_DIR path. Current value is : " ${ROCR_LIB_DIR}) - RETURN() - endif() -@@ -145,7 +145,7 @@ endif() - ## define include directories - include_directories(./ ../ ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR}) - # Add directories to look for library files to link --link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH}) -+link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${HIP_INC_DIR}/lib/ ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR}) - ## additional libraries - set (PROJECT_LINK_LIBS rvslibrt rvslib libpthread.so libpci.so libm.so) - -diff --git a/iet.so/CMakeLists.txt b/iet.so/CMakeLists.txt -index 3263d12..62f4318 100644 ---- a/iet.so/CMakeLists.txt -+++ b/iet.so/CMakeLists.txt -@@ -140,7 +140,7 @@ if(DEFINED RVS_ROCMSMI) - endif() - endif() - --if(NOT EXISTS "${ROCR_LIB_DIR}/lib${HIP_HCC_LIB}.so") -+if(NOT EXISTS "${HIP_INC_DIR}/lib/lib${HIP_HCC_LIB}.so") - message("ERROR: ROC Runtime libraries can't be found under specified path. Please set ROCR_LIB_DIR path. Current value is : " ${ROCR_LIB_DIR}) - RETURN() - endif() -@@ -159,7 +159,7 @@ include_directories(./ ../ ${ROCM_SMI_INC_DIR} ${ROCBLAS_INC_DIR} ${ROCR_INC_DIR - # Add directories to look for library files to link - link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${ASAN_LIB_PATH}) - ## additional libraries --set (PROJECT_LINK_LIBS rvslibrt rvslib libpthread.so libpci.so libm.so) -+set (PROJECT_LINK_LIBS rvslibrt rvslib libpthread.so libpci.so libm.so librocm_smi64.so) - - set(SOURCES src/rvs_module.cpp src/action.cpp src/iet_worker.cpp ) - -@@ -168,7 +168,7 @@ add_library( ${RVS_TARGET} SHARED ${SOURCES}) - set_target_properties(${RVS_TARGET} PROPERTIES - SUFFIX .so.${LIB_VERSION_STRING} - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) --target_link_libraries(${RVS_TARGET} ${PROJECT_LINK_LIBS} ${HIP_HCC_LIB} ${ROCBLAS_LIB} ${ROCM_SMI_LIB}) -+target_link_libraries(${RVS_TARGET} ${PROJECT_LINK_LIBS} ${HIP_INC_DIR}/lib/ ${HIP_HCC_LIB} ${ROCBLAS_LIB} ${ROCM_SMI_LIB_DIR}) - add_dependencies(${RVS_TARGET} rvslibrt rvslib) - - add_custom_command(TARGET ${RVS_TARGET} POST_BUILD -diff --git a/mem.so/CMakeLists.txt b/mem.so/CMakeLists.txt -index 5a0f401..3fc4f51 100644 ---- a/mem.so/CMakeLists.txt -+++ b/mem.so/CMakeLists.txt -@@ -134,7 +134,7 @@ if(DEFINED RVS_ROCMSMI) - endif() - - --if(NOT EXISTS "${ROCR_LIB_DIR}/lib${HIP_HCC_LIB}.so") -+if(NOT EXISTS "${HIP_INC_DIR}/lib/lib${HIP_HCC_LIB}.so") - message("ERROR: ROC Runtime libraries can't be found under specified path. Please set ROCR_LIB_DIR path. Current value is : " ${ROCR_LIB_DIR}) - RETURN() - endif() -@@ -143,7 +143,7 @@ endif() - include_directories(./ ../ ${ROCR_INC_DIR} ${HIP_INC_DIR}) - - # Add directories to look for library files to link --link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH}) -+link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${HIP_INC_DIR}/lib ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR}) - ## additional libraries - set (PROJECT_LINK_LIBS rvslibrt rvslib libpthread.so libpci.so libm.so) - -diff --git a/pbqt.so/CMakeLists.txt b/pbqt.so/CMakeLists.txt -index d75211d..80abe22 100644 ---- a/pbqt.so/CMakeLists.txt -+++ b/pbqt.so/CMakeLists.txt -@@ -138,7 +138,7 @@ endif() - ## define include directories - include_directories(./ ../ pci ${ROCR_INC_DIR}) - # Add directories to look for library files to link --link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCT_LIB_DIR} ${ASAN_LIB_PATH}) -+link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${HSAKMT_LIB_DIR} ${ROCT_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR}) - ## additional libraries - set (PROJECT_LINK_LIBS rvslibrt rvslib libpthread.so libpci.so libm.so) - -diff --git a/pebb.so/CMakeLists.txt b/pebb.so/CMakeLists.txt -index 7ba031c..e64be8e 100644 ---- a/pebb.so/CMakeLists.txt -+++ b/pebb.so/CMakeLists.txt -@@ -139,7 +139,7 @@ endif() - ## define include directories - include_directories(./ ../ pci ${ROCR_INC_DIR}) - # Add directories to look for library files to link --link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCT_LIB_DIR} ${ASAN_LIB_PATH}) -+link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${HSAKMT_LIB_DIR} ${ROCT_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ) - ## additional libraries - set (PROJECT_LINK_LIBS rvslibrt rvslib libpthread.so libpci.so libm.so) - -diff --git a/peqt.so/CMakeLists.txt b/peqt.so/CMakeLists.txt -index 2248d91..7f5912d 100644 ---- a/peqt.so/CMakeLists.txt -+++ b/peqt.so/CMakeLists.txt -@@ -107,9 +107,9 @@ else() - endif() - - ## define include directories --include_directories(./ ../) -+include_directories(./ ../ ${HSA_PATH}) - # Add directories to look for library files to link --link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH}) -+link_directories(${RVS_LIB_DIR} ${HSA_PATH}/lib/ ${HSAKMT_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR}) - ## additional libraries - set (PROJECT_LINK_LIBS rvslibrt rvslib libpci.so libm.so) - -diff --git a/perf.so/CMakeLists.txt b/perf.so/CMakeLists.txt -index b319396..b9abe15 100644 ---- a/perf.so/CMakeLists.txt -+++ b/perf.so/CMakeLists.txt -@@ -137,7 +137,7 @@ if(DEFINED RVS_ROCMSMI) - endif() - - --if(NOT EXISTS "${ROCR_LIB_DIR}/lib${HIP_HCC_LIB}.so") -+if(NOT EXISTS "${HIP_INC_DIR}/lib/lib${HIP_HCC_LIB}.so") - message("ERROR: ROC Runtime libraries can't be found under specified path. Please set ROCR_LIB_DIR path. Current value is : " ${ROCR_LIB_DIR}) - RETURN() - endif() -@@ -145,7 +145,7 @@ endif() - ## define include directories - include_directories(./ ../ ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR}) - # Add directories to look for library files to link --link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH}) -+link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${HIP_INC_DIR}/lib ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR}) - ## additional libraries - set (PROJECT_LINK_LIBS rvslibrt rvslib libpthread.so libpci.so libm.so) - -diff --git a/pesm.so/CMakeLists.txt b/pesm.so/CMakeLists.txt -index ff60729..e7a2402 100644 ---- a/pesm.so/CMakeLists.txt -+++ b/pesm.so/CMakeLists.txt -@@ -109,7 +109,7 @@ endif() - ## define include directories - include_directories(./ ../ pci) - # Add directories to look for library files to link --link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH}) -+link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR}) - ## additional libraries - set (PROJECT_LINK_LIBS libpthread.so libpci.so libm.so) - -diff --git a/rcqt.so/CMakeLists.txt b/rcqt.so/CMakeLists.txt -index 32e1004..ac826ea 100644 ---- a/rcqt.so/CMakeLists.txt -+++ b/rcqt.so/CMakeLists.txt -@@ -110,7 +110,7 @@ endif() - ## define include directories - include_directories(./ ../) - # Add directories to look for library files to link --link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH}) -+link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${ASAN_LIB_PATH} ${HSAKMT_LIB_DIR} ${ROCM_SMI_LIB_DIR}) - ## additional libraries - set (PROJECT_LINK_LIBS rvslibrt rvslib) - -diff --git a/rvs/CMakeLists.txt b/rvs/CMakeLists.txt -index b350429..c855a32 100644 ---- a/rvs/CMakeLists.txt -+++ b/rvs/CMakeLists.txt -@@ -115,7 +115,7 @@ endif() - ## define include directories - include_directories(./ ../ ${YAML_INC_DIR} ${YAML_LIB_DIR}/include) - ## define lib directories --link_directories(${CMAKE_CURRENT_BINARY_DIR} ${RVS_LIB_DIR} ${ASAN_LIB_PATH}) -+link_directories(${CMAKE_CURRENT_BINARY_DIR} ${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR}) - ## additional libraries - set (PROJECT_LINK_LIBS libdl.so "${YAML_LIB_DIR}/libyaml-cpp.a" libpthread.so) - -diff --git a/rvs/tests.cmake b/rvs/tests.cmake -index 32301c8..a058749 100644 ---- a/rvs/tests.cmake -+++ b/rvs/tests.cmake -@@ -179,7 +179,7 @@ add_test(NAME unit.ttf.rvs.config.noconfig - ## define include directories - include_directories(${UT_INC}) - ## define lib directories --link_directories(${UT_LIB}) -+link_directories(${UT_LIB} ${ROCM_SMI_LIB_DIR}) - ## additional libraries for unit tests - set (PROJECT_TEST_LINK_LIBS ${PROJECT_LINK_LIBS} libpci.so) - -diff --git a/rvslib/CMakeLists.txt b/rvslib/CMakeLists.txt -index 31e6143..4ffed0f 100644 ---- a/rvslib/CMakeLists.txt -+++ b/rvslib/CMakeLists.txt -@@ -115,7 +115,7 @@ endif() - - ## define include directories - include_directories(./ ../ -- ${ROCM_SMI_INC_DIR} ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} -+ ${ROCM_SMI_INC_DIR} ${HIP_PATH} ${ROCBLAS_INC_DIR} - ) - link_directories(${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR}) - -diff --git a/smqt.so/CMakeLists.txt b/smqt.so/CMakeLists.txt -index e6b8ec4..722f329 100644 ---- a/smqt.so/CMakeLists.txt -+++ b/smqt.so/CMakeLists.txt -@@ -108,7 +108,7 @@ endif() - ## define include directories - include_directories(./ ../ pci) - # Add directories to look for library files to link --link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH}) -+link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR}) - ## additional libraries - set (PROJECT_LINK_LIBS rvslibrt rvslib libpci.so libm.so) - -diff --git a/testif.so/CMakeLists.txt b/testif.so/CMakeLists.txt -index ed7d3d3..f09951e 100644 ---- a/testif.so/CMakeLists.txt -+++ b/testif.so/CMakeLists.txt -@@ -110,7 +110,7 @@ endif() - ## define include directories - include_directories(./ ../ pci) - # Add directories to look for library files to link --link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH}) -+link_directories(${RVS_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR}) - ## additional libraries - set (PROJECT_LINK_LIBS libpthread.so libpci.so libm.so) - --- -2.39.3 - diff --git a/repos/spack_repo/builtin/packages/rocm_validation_suite/010-add-drm-include-path.patch b/repos/spack_repo/builtin/packages/rocm_validation_suite/010-add-drm-include-path.patch index 4e9aab13963..8f144682ba3 100644 --- a/repos/spack_repo/builtin/packages/rocm_validation_suite/010-add-drm-include-path.patch +++ b/repos/spack_repo/builtin/packages/rocm_validation_suite/010-add-drm-include-path.patch @@ -1,16 +1,301 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8740ce8..e3d36ec 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -138,6 +138,21 @@ else() #If hipblas-common not found + message(FATAL_ERROR "hipblas-common not found !!! Install rocrand to proceed ...") + endif(hipblas-common_FOUND) + ++find_path(PCI_INCLUDE_DIR pci/pci.h PATHS /usr/include /usr/local/include) ++if(NOT PCI_INCLUDE_DIR) ++ message(FATAL_ERROR "PCI_INCLUDE_DIR not found !!! Install pciutils-devel to proceed ...") ++else() #If PCI_INCLUDE_DIR found ++ message(STATUS "PCI_INCLUDE_DIR found") ++endif(PCI_INCLUDE_DIR) ++ ++find_library(PCI_LIB pci PATHS /usr/lib /usr/local/lib) ++if(NOT PCI_LIB) ++ message(FATAL_ERROR "PCI_LIB not found !!! Install pciutils-devel to proceed ...") ++else() #If PCI_LIB found ++ message(STATUS "PCI_LIB found") ++ get_filename_component(PCI_LIB_DIR ${PCI_LIB} DIRECTORY) ++endif(PCI_LIB) ++ + # Making ROCM_PATH, CMAKE_INSTALL_PREFIX, CPACK_PACKAGING_INSTALL_PREFIX as CACHE + # variables since we will pass them as cmake params appropriately, and + # all find_packages relevant to this build will be in ROCM path hence appending it to CMAKE_PREFIX_PATH +diff --git a/babel.so/CMakeLists.txt b/babel.so/CMakeLists.txt +index b228d1a..985cfd4 100644 +--- a/babel.so/CMakeLists.txt ++++ b/babel.so/CMakeLists.txt +@@ -141,10 +141,10 @@ if(NOT EXISTS "${HIP_LIB_DIR}/lib${HIP_HCC_LIB}.so") + endif() + + ## define include directories +-include_directories(./ ../ ${ROCR_INC_DIR} ${HIP_INC_DIR}) ++include_directories(./ ../ ${ROCR_INC_DIR} ${HIP_INC_DIR} ${PCI_INCLUDE_DIR}) + + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${PCI_LIB_DIR}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/edp.so/CMakeLists.txt b/edp.so/CMakeLists.txt +index a6ebb58..a465c96 100644 +--- a/edp.so/CMakeLists.txt ++++ b/edp.so/CMakeLists.txt +@@ -134,9 +134,9 @@ if(NOT EXISTS "${HIP_LIB_DIR}/lib${HIP_HCC_LIB}.so") + endif() + + ## define include directories +-include_directories(./ ../ ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${YAML_CPP_INCLUDE_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR}) ++include_directories(./ ../ ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${YAML_CPP_INCLUDE_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${PCI_INCLUDE_DIR}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${PCI_LIB_DIR}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpciaccess.so libpci.so libm.so) + +diff --git a/gm.so/CMakeLists.txt b/gm.so/CMakeLists.txt +index 767729f..bc08c4d 100644 +--- a/gm.so/CMakeLists.txt ++++ b/gm.so/CMakeLists.txt +@@ -118,9 +118,9 @@ if(DEFINED RVS_ROCMSMI) + endif() + + ## define include directories +-include_directories(./ ../ ${ROCM_SMI_INC_DIR} ${YAML_CPP_INCLUDE_DIR}) ++include_directories(./ ../ ${ROCM_SMI_INC_DIR} ${YAML_CPP_INCLUDE_DIR} ${PCI_INCLUDE_DIR}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${HIPBLASLT_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${HIPBLASLT_LIB_DIR} ${PCI_LIB_DIR}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/gpup.so/CMakeLists.txt b/gpup.so/CMakeLists.txt +index 6d79409..7aaddc7 100644 +--- a/gpup.so/CMakeLists.txt ++++ b/gpup.so/CMakeLists.txt +@@ -111,7 +111,7 @@ endif() + ## define include directories + include_directories(./ ../ include ../include ${YAML_CPP_INCLUDE_DIR}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${ROCR_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${ROCR_LIB_DIR} ${PCI_LIB_DIR}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpci.so libm.so) + +diff --git a/gst.so/CMakeLists.txt b/gst.so/CMakeLists.txt +index 9b45dbe..63e376a 100644 +--- a/gst.so/CMakeLists.txt ++++ b/gst.so/CMakeLists.txt +@@ -143,9 +143,9 @@ if(NOT EXISTS "${HIP_LIB_DIR}/lib${HIP_HCC_LIB}.so") + endif() + + ## define include directories +-include_directories(./ ../ ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR}) ++include_directories(./ ../ ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR} ${PCI_INCLUDE_DIR}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${HIP_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_DIR} ${ROCRAND_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${HIP_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_DIR} ${ROCRAND_DIR} ${PCI_LIB_DIR}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/iet.so/CMakeLists.txt b/iet.so/CMakeLists.txt +index 4d5880a..02b0bf1 100644 +--- a/iet.so/CMakeLists.txt ++++ b/iet.so/CMakeLists.txt +@@ -160,9 +160,9 @@ if(DEFINED RVS_ROCMSMI) + endif() + + ## define include directories +-include_directories(./ ../ ${ROCM_SMI_INC_DIR} ${ROCBLAS_INC_DIR} ${ROCR_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR}) ++include_directories(./ ../ ${ROCM_SMI_INC_DIR} ${ROCBLAS_INC_DIR} ${ROCR_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR} ${PCI_INCLUDE_DIR}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${ASAN_LIB_PATH} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${HIPBLASLT_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${ASAN_LIB_PATH} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${HIPBLASLT_LIB_DIR} ${PCI_LIB_DIR}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/mem.so/CMakeLists.txt b/mem.so/CMakeLists.txt +index f9702bf..bc029b0 100644 +--- a/mem.so/CMakeLists.txt ++++ b/mem.so/CMakeLists.txt +@@ -140,10 +140,10 @@ if(NOT EXISTS "${HIP_LIB_DIR}/lib${HIP_HCC_LIB}.so") + endif() + + ## define include directories +-include_directories(./ ../ ${ROCR_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR}) ++include_directories(./ ../ ${ROCR_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${PCI_INCLUDE_DIR}) + + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${HIP_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${HIP_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${PCI_LIB_DIR}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/pbqt.so/CMakeLists.txt b/pbqt.so/CMakeLists.txt +index 50eacd2..79db4ea 100644 +--- a/pbqt.so/CMakeLists.txt ++++ b/pbqt.so/CMakeLists.txt +@@ -134,9 +134,9 @@ if(NOT EXISTS ${ROCR_LIB_DIR}/${CORE_RUNTIME_LIBRARY}.so) + endif() + + ## define include directories +-include_directories(./ ../ pci ${ROCR_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR}) ++include_directories(./ ../ pci ${ROCR_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${PCI_INCLUDE_DIR}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${PCI_LIB_DIR}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/pebb.so/CMakeLists.txt b/pebb.so/CMakeLists.txt +index 5668969..666443d 100644 +--- a/pebb.so/CMakeLists.txt ++++ b/pebb.so/CMakeLists.txt +@@ -135,9 +135,9 @@ if(NOT EXISTS ${ROCR_LIB_DIR}/${CORE_RUNTIME_LIBRARY}.so) + endif() + + ## define include directories +-include_directories(./ ../ pci ${ROCR_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR}) ++include_directories(./ ../ pci ${ROCR_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${PCI_INCLUDE_DIR}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${PCI_LIB_DIR}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/peqt.so/CMakeLists.txt b/peqt.so/CMakeLists.txt +index eff0fa0..e2692d1 100644 +--- a/peqt.so/CMakeLists.txt ++++ b/peqt.so/CMakeLists.txt +@@ -107,9 +107,9 @@ else() + endif() + + ## define include directories +-include_directories(./ ../ ${HSA_INC_DIR}) ++include_directories(./ ../ ${HSA_INC_DIR} ${PCI_INCLUDE_DIR}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${HSA_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${HSA_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${PCI_LIB_DIR}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpci.so libm.so) + +diff --git a/perf.so/CMakeLists.txt b/perf.so/CMakeLists.txt +index 62dbc91..4d8602c 100644 +--- a/perf.so/CMakeLists.txt ++++ b/perf.so/CMakeLists.txt +@@ -143,9 +143,9 @@ if(NOT EXISTS "${HIP_LIB_DIR}/lib${HIP_HCC_LIB}.so") + endif() + + ## define include directories +-include_directories(./ ../ ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR}) ++include_directories(./ ../ ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR} ${PCI_INCLUDE_DIR}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${HIP_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${HIP_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${PCI_LIB_DIR}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/pesm.so/CMakeLists.txt b/pesm.so/CMakeLists.txt +index 3ccec31..bc22fb0 100644 +--- a/pesm.so/CMakeLists.txt ++++ b/pesm.so/CMakeLists.txt +@@ -107,9 +107,9 @@ else() + endif() + + ## define include directories +-include_directories(./ ../ pci) ++include_directories(./ ../ pci ${PCI_INCLUDE_DIR}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_DIR} ${ROCRAND_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${HIPRAND_DIR} ${ROCRAND_DIR} ${PCI_LIB_DIR}) + ## additional libraries + set (PROJECT_LINK_LIBS libpthread.so libpci.so libm.so) + +diff --git a/rvs/CMakeLists.txt b/rvs/CMakeLists.txt +index 11cc788..4775a39 100644 +--- a/rvs/CMakeLists.txt ++++ b/rvs/CMakeLists.txt +@@ -113,9 +113,9 @@ else() + endif() + + ## define include directories +-include_directories(./ ../ ${YAML_CPP_INCLUDE_DIR}) ++include_directories(./ ../ ${YAML_CPP_INCLUDE_DIR} ${PCI_INCLUDE_DIR}) + ## define lib directories +-link_directories(${CMAKE_CURRENT_BINARY_DIR} ${RVS_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${ASAN_LIB_PATH} ${HIPRAND_LIB_DIR} ${HSA_LIB_DIR} ${HIPBLASLT_LIB_DIR} ${YAML_CPP_LIBRARY_DIR}) ++link_directories(${CMAKE_CURRENT_BINARY_DIR} ${RVS_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${ASAN_LIB_PATH} ${HIPRAND_LIB_DIR} ${HSA_LIB_DIR} ${HIPBLASLT_LIB_DIR} ${YAML_CPP_LIBRARY_DIR} ${PCI_LIB_DIR}) + + ## additional libraries + set(ROCBLAS_LIB "rocblas") diff --git a/rvslib/CMakeLists.txt b/rvslib/CMakeLists.txt -index d3ea8af..55b26c3 100644 +index d3ea8af..fde13a3 100644 --- a/rvslib/CMakeLists.txt +++ b/rvslib/CMakeLists.txt -@@ -114,9 +114,10 @@ else() +@@ -114,11 +114,13 @@ else() set(ASAN_LIB_PATH "$ENV{LD_LIBRARY_PATH}") endif() +find_path(DRM_INCLUDE_DIR libdrm/drm.h PATHS /usr/include /usr/local/include) ++ ## define include directories include_directories(./ ../ ../rvs - ${ROCM_SMI_INC_DIR} ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${HIPBLASLT_INC_DIR} ${YAML_CPP_INCLUDE_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR}) -+ ${ROCM_SMI_INC_DIR} ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${HIPBLASLT_INC_DIR} ${YAML_CPP_INCLUDE_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR} ${DRM_INCLUDE_DIR}) ++ ${ROCM_SMI_INC_DIR} ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${HIPBLASLT_INC_DIR} ${YAML_CPP_INCLUDE_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR} ${DRM_INCLUDE_DIR} ${PCI_INCLUDE_DIR}) + +-link_directories(${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR}) ++link_directories(${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR} ${PCI_LIB_DIR}) + + ## define common source files + set(SOURCES +diff --git a/smqt.so/CMakeLists.txt b/smqt.so/CMakeLists.txt +index 2b4f6fa..c4f957b 100644 +--- a/smqt.so/CMakeLists.txt ++++ b/smqt.so/CMakeLists.txt +@@ -106,9 +106,9 @@ else() + endif() + + ## define include directories +-include_directories(./ ../ pci) ++include_directories(./ ../ pci ${PCI_INCLUDE_DIR}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCR_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCR_LIB_DIR} ${PCI_LIB_DIR}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpci.so libm.so) + +diff --git a/testif.so/CMakeLists.txt b/testif.so/CMakeLists.txt +index c0b9921..92fa84f 100644 +--- a/testif.so/CMakeLists.txt ++++ b/testif.so/CMakeLists.txt +@@ -108,9 +108,9 @@ endif() + + + ## define include directories +-include_directories(./ ../ pci) ++include_directories(./ ../ pci ${PCI_INCLUDE_DIR}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${PCI_LIB_DIR}) + ## additional libraries + set (PROJECT_LINK_LIBS libpthread.so libpci.so libm.so) + +diff --git a/tst.so/CMakeLists.txt b/tst.so/CMakeLists.txt +index 6f2df40..43bd4a7 100644 +--- a/tst.so/CMakeLists.txt ++++ b/tst.so/CMakeLists.txt +@@ -155,9 +155,9 @@ if(DEFINED RVS_ROCMSMI) + endif() - link_directories(${ASAN_LIB_PATH} ${ROCM_SMI_LIB_DIR}) + ## define include directories +-include_directories(./ ../ ${ROCM_SMI_INC_DIR} ${ROCBLAS_INC_DIR} ${ROCR_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR}) ++include_directories(./ ../ ${ROCM_SMI_INC_DIR} ${ROCBLAS_INC_DIR} ${ROCR_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR} ${PCI_INCLUDE_DIR}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${ASAN_LIB_PATH}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${ASAN_LIB_PATH} ${PCI_LIB_DIR}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) diff --git a/repos/spack_repo/builtin/packages/rocm_validation_suite/011_add_inc_and_lib_path_for_pciutils.patch b/repos/spack_repo/builtin/packages/rocm_validation_suite/011_add_inc_and_lib_path_for_pciutils.patch new file mode 100644 index 00000000000..82e84f2e122 --- /dev/null +++ b/repos/spack_repo/builtin/packages/rocm_validation_suite/011_add_inc_and_lib_path_for_pciutils.patch @@ -0,0 +1,288 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1e4abf1..2221f9f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -142,6 +142,12 @@ else() #If hipblas-common not found + message(FATAL_ERROR "hipblas-common not found !!! Install hipblas-common to proceed ...") + endif(hipblas-common_FOUND) + ++# Include the FindPkgConfig module ++find_package(PkgConfig REQUIRED) ++ ++# Use pkg_check_modules to find libpci ++pkg_check_modules(PCI_PACKAGE REQUIRED libpci) ++ + # Making ROCM_PATH, CMAKE_INSTALL_PREFIX, CPACK_PACKAGING_INSTALL_PREFIX as CACHE + # variables since we will pass them as cmake params appropriately, and + # all find_packages relevant to this build will be in ROCM path hence appending it to CMAKE_PREFIX_PATH +diff --git a/babel.so/CMakeLists.txt b/babel.so/CMakeLists.txt +index 4f72897..2903b26 100644 +--- a/babel.so/CMakeLists.txt ++++ b/babel.so/CMakeLists.txt +@@ -140,10 +140,10 @@ if(NOT EXISTS "${HIP_LIB_DIR}/lib${HIP_HCC_LIB}.so") + endif() + + ## define include directories +-include_directories(./ ../ ${ROCR_INC_DIR} ${HIP_INC_DIR}) ++include_directories(./ ../ ${ROCR_INC_DIR} ${HIP_INC_DIR} ${PCI_PACKAGE_INCLUDE_DIRS}) + + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${PCI_PACKAGE_LIBRARY_DIRS}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/edp.so/CMakeLists.txt b/edp.so/CMakeLists.txt +index 512d2ae..6e29ec0 100644 +--- a/edp.so/CMakeLists.txt ++++ b/edp.so/CMakeLists.txt +@@ -133,9 +133,9 @@ if(NOT EXISTS "${HIP_LIB_DIR}/lib${HIP_HCC_LIB}.so") + endif() + + ## define include directories +-include_directories(./ ../ ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${YAML_CPP_INCLUDE_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR}) ++include_directories(./ ../ ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${YAML_CPP_INCLUDE_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${PCI_PACKAGE_INCLUDE_DIRS}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${PCI_PACKAGE_LIBRARY_DIRS}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpciaccess.so libpci.so libm.so) + +diff --git a/gm.so/CMakeLists.txt b/gm.so/CMakeLists.txt +index 9d1ab2c..ce54485 100644 +--- a/gm.so/CMakeLists.txt ++++ b/gm.so/CMakeLists.txt +@@ -117,9 +117,9 @@ if(DEFINED RVS_ROCMSMI) + endif() + + ## define include directories +-include_directories(./ ../ ${ROCM_SMI_INC_DIR} ${YAML_CPP_INCLUDE_DIR}) ++include_directories(./ ../ ${ROCM_SMI_INC_DIR} ${YAML_CPP_INCLUDE_DIR} ${PCI_PACKAGE_INCLUDE_DIRS}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${HIPBLASLT_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCM_SMI_LIB_DIR} ${ASAN_LIB_PATH} ${ROCM_SMI_LIB} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${HIPBLASLT_LIB_DIR} ${PCI_PACKAGE_LIBRARY_DIRS}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/gpup.so/CMakeLists.txt b/gpup.so/CMakeLists.txt +index d2775b6..52c5417 100644 +--- a/gpup.so/CMakeLists.txt ++++ b/gpup.so/CMakeLists.txt +@@ -110,7 +110,7 @@ endif() + ## define include directories + include_directories(./ ../ include ../include ${YAML_CPP_INCLUDE_DIR}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${ROCR_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${ROCR_LIB_DIR} ${PCI_PACKAGE_LIBRARY_DIRS}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpci.so libm.so) + +diff --git a/gst.so/CMakeLists.txt b/gst.so/CMakeLists.txt +index bdcb4b0..f65550b 100644 +--- a/gst.so/CMakeLists.txt ++++ b/gst.so/CMakeLists.txt +@@ -142,9 +142,9 @@ if(NOT EXISTS "${HIP_LIB_DIR}/lib${HIP_HCC_LIB}.so") + endif() + + ## define include directories +-include_directories(./ ../ ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR}) ++include_directories(./ ../ ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR} ${PCI_PACKAGE_INCLUDE_DIRS}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${HIP_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_DIR} ${ROCRAND_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${HIP_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_DIR} ${ROCRAND_DIR} ${PCI_PACKAGE_LIBRARY_DIRS}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/iet.so/CMakeLists.txt b/iet.so/CMakeLists.txt +index 61b289e..2d68782 100644 +--- a/iet.so/CMakeLists.txt ++++ b/iet.so/CMakeLists.txt +@@ -159,9 +159,9 @@ if(DEFINED RVS_AMDSMI) + endif() + + ## define include directories +-include_directories(./ ../ ${AMD_SMI_INC_DIR} ${ROCBLAS_INC_DIR} ${ROCR_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR}) ++include_directories(./ ../ ${AMD_SMI_INC_DIR} ${ROCBLAS_INC_DIR} ${ROCR_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR} ${PCI_PACKAGE_INCLUDE_DIRS}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${AMD_SMI_LIB_DIR} ${ASAN_LIB_PATH} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${HIPBLASLT_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${AMD_SMI_LIB_DIR} ${ASAN_LIB_PATH} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${HIPBLASLT_LIB_DIR} ${PCI_PACKAGE_LIBRARY_DIRS}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/mem.so/CMakeLists.txt b/mem.so/CMakeLists.txt +index 978f550..72af0a2 100644 +--- a/mem.so/CMakeLists.txt ++++ b/mem.so/CMakeLists.txt +@@ -139,10 +139,10 @@ if(NOT EXISTS "${HIP_LIB_DIR}/lib${HIP_HCC_LIB}.so") + endif() + + ## define include directories +-include_directories(./ ../ ${ROCR_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR}) ++include_directories(./ ../ ${ROCR_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${PCI_PACKAGE_INCLUDE_DIRS}) + + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${HIP_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${HIP_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${PCI_PACKAGE_LIBRARY_DIRS}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/pbqt.so/CMakeLists.txt b/pbqt.so/CMakeLists.txt +index ccaea42..87bbe88 100644 +--- a/pbqt.so/CMakeLists.txt ++++ b/pbqt.so/CMakeLists.txt +@@ -133,9 +133,9 @@ if(NOT EXISTS ${ROCR_LIB_DIR}/${CORE_RUNTIME_LIBRARY}.so) + endif() + + ## define include directories +-include_directories(./ ../ pci ${ROCR_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR}) ++include_directories(./ ../ pci ${ROCR_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${PCI_PACKAGE_INCLUDE_DIRS}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${PCI_PACKAGE_LIBRARY_DIRS}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/pebb.so/CMakeLists.txt b/pebb.so/CMakeLists.txt +index 7f624fd..62c2103 100644 +--- a/pebb.so/CMakeLists.txt ++++ b/pebb.so/CMakeLists.txt +@@ -135,9 +135,9 @@ if(NOT EXISTS ${ROCR_LIB_DIR}/${CORE_RUNTIME_LIBRARY}.so) + endif() + + ## define include directories +-include_directories(./ ../ pci ${ROCR_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR}) ++include_directories(./ ../ pci ${ROCR_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${PCI_PACKAGE_INCLUDE_DIRS}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${PCI_PACKAGE_LIBRARY_DIRS}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/peqt.so/CMakeLists.txt b/peqt.so/CMakeLists.txt +index 3540354..0b3f33c 100644 +--- a/peqt.so/CMakeLists.txt ++++ b/peqt.so/CMakeLists.txt +@@ -106,9 +106,9 @@ else() + endif() + + ## define include directories +-include_directories(./ ../ ${HSA_INC_DIR}) ++include_directories(./ ../ ${HSA_INC_DIR} ${PCI_PACKAGE_INCLUDE_DIRS}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${HSA_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${HSA_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${PCI_PACKAGE_LIBRARY_DIRS}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpci.so libm.so) + +diff --git a/perf.so/CMakeLists.txt b/perf.so/CMakeLists.txt +index 1f135ce..555d20a 100644 +--- a/perf.so/CMakeLists.txt ++++ b/perf.so/CMakeLists.txt +@@ -142,9 +142,9 @@ if(NOT EXISTS "${HIP_LIB_DIR}/lib${HIP_HCC_LIB}.so") + endif() + + ## define include directories +-include_directories(./ ../ ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR}) ++include_directories(./ ../ ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR} ${PCI_PACKAGE_INCLUDE_DIRS}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${HIP_LIB_DIR} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${HIP_LIB_DIR} ${AMD_SMI_LIB_DIR} ${HIPRAND_LIB_DIR} ${ROCRAND_LIB_DIR} ${PCI_PACKAGE_LIBRARY_DIRS}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + +diff --git a/pesm.so/CMakeLists.txt b/pesm.so/CMakeLists.txt +index a04f2fd..b63ba7e 100644 +--- a/pesm.so/CMakeLists.txt ++++ b/pesm.so/CMakeLists.txt +@@ -106,9 +106,9 @@ else() + endif() + + ## define include directories +-include_directories(./ ../ pci) ++include_directories(./ ../ pci ${PCI_PACKAGE_INCLUDE_DIRS}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_DIR} ${ROCRAND_DIR}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${HIPRAND_DIR} ${ROCRAND_DIR} ${PCI_PACKAGE_LIBRARY_DIRS}) + ## additional libraries + set (PROJECT_LINK_LIBS libpthread.so libpci.so libm.so) + +diff --git a/rvs/CMakeLists.txt b/rvs/CMakeLists.txt +index 03c2a06..e665bcb 100644 +--- a/rvs/CMakeLists.txt ++++ b/rvs/CMakeLists.txt +@@ -114,9 +114,9 @@ else() + endif() + + ## define include directories +-include_directories(./ ../ ${YAML_CPP_INCLUDE_DIR}) ++include_directories(./ ../ ${YAML_CPP_INCLUDE_DIR} ${PCI_PACKAGE_INCLUDE_DIRS}) + ## define lib directories +-link_directories(${CMAKE_CURRENT_BINARY_DIR} ${RVS_LIB_DIR} ${ROCBLAS_LIB_DIR} ${AMD_SMI_LIB_DIR} ${ASAN_LIB_PATH} ${HIPRAND_LIB_DIR} ${HSA_LIB_DIR} ${HIPBLASLT_LIB_DIR} ${YAML_CPP_LIBRARY_DIR}) ++link_directories(${CMAKE_CURRENT_BINARY_DIR} ${RVS_LIB_DIR} ${ROCBLAS_LIB_DIR} ${AMD_SMI_LIB_DIR} ${ASAN_LIB_PATH} ${HIPRAND_LIB_DIR} ${HSA_LIB_DIR} ${HIPBLASLT_LIB_DIR} ${YAML_CPP_LIBRARY_DIR} ${PCI_PACKAGE_LIBRARY_DIRS}) + + ## additional libraries + set(ROCBLAS_LIB "rocblas") +diff --git a/rvslib/CMakeLists.txt b/rvslib/CMakeLists.txt +index 79b1bc2..2c70fd9 100644 +--- a/rvslib/CMakeLists.txt ++++ b/rvslib/CMakeLists.txt +@@ -117,9 +117,9 @@ endif() + + ## define include directories + include_directories(./ ../ ../rvs +- ${AMD_SMI_INC_DIR} ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${HIPBLASLT_INC_DIR} ${YAML_CPP_INCLUDE_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR} ${MXDATAGENERATOR_INC_DIR}) ++ ${AMD_SMI_INC_DIR} ${ROCR_INC_DIR} ${ROCBLAS_INC_DIR} ${HIP_INC_DIR} ${HIPBLASLT_INC_DIR} ${YAML_CPP_INCLUDE_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR} ${MXDATAGENERATOR_INC_DIR} ${DRM_INCLUDE_DIR} ${PCI_PACKAGE_INCLUDE_DIRS}) + +-link_directories(${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR}) ++link_directories(${ASAN_LIB_PATH} ${AMD_SMI_LIB_DIR} ${PCI_PACKAGE_LIBRARY_DIRS}) + + ## define common source files + set(SOURCES +diff --git a/smqt.so/CMakeLists.txt b/smqt.so/CMakeLists.txt +index 806422a..82daa58 100644 +--- a/smqt.so/CMakeLists.txt ++++ b/smqt.so/CMakeLists.txt +@@ -105,9 +105,9 @@ else() + endif() + + ## define include directories +-include_directories(./ ../ pci) ++include_directories(./ ../ pci ${PCI_PACKAGE_INCLUDE_DIRS}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCR_LIB_DIR}) ++link_directories(${RVS_LIB_DIR} ${ASAN_LIB_PATH} ${ROCR_LIB_DIR} ${PCI_PACKAGE_LIBRARY_DIRS}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpci.so libm.so) + +diff --git a/testif.so/CMakeLists.txt b/testif.so/CMakeLists.txt +index 239912b..1b6f4d6 100644 +--- a/testif.so/CMakeLists.txt ++++ b/testif.so/CMakeLists.txt +@@ -107,9 +107,9 @@ endif() + + + ## define include directories +-include_directories(./ ../ pci) ++include_directories(./ ../ pci ${PCI_PACKAGE_INCLUDE_DIRS}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${ASAN_LIB_PATH} ${PCI_PACKAGE_LIBRARY_DIRS}) + ## additional libraries + set (PROJECT_LINK_LIBS libpthread.so libpci.so libm.so) + +diff --git a/tst.so/CMakeLists.txt b/tst.so/CMakeLists.txt +index f604f1b..8d11cd9 100644 +--- a/tst.so/CMakeLists.txt ++++ b/tst.so/CMakeLists.txt +@@ -154,9 +154,9 @@ if(DEFINED RVS_ROCMSMI) + endif() + + ## define include directories +-include_directories(./ ../ ${AMD_SMI_INC_DIR} ${ROCBLAS_INC_DIR} ${ROCR_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR}) ++include_directories(./ ../ ${AMD_SMI_INC_DIR} ${ROCBLAS_INC_DIR} ${ROCR_INC_DIR} ${HIP_INC_DIR} ${HIPRAND_INC_DIR} ${ROCRAND_INC_DIR} ${HIPBLASLT_INC_DIR} ${HIPBLAS-COMMON_INCLUDE_DIR} ${PCI_PACKAGE_INCLUDE_DIRS}) + # Add directories to look for library files to link +-link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${AMD_SMI_LIB_DIR} ${ASAN_LIB_PATH}) ++link_directories(${RVS_LIB_DIR} ${ROCR_LIB_DIR} ${ROCBLAS_LIB_DIR} ${AMD_SMI_LIB_DIR} ${ASAN_LIB_PATH} ${PCI_PACKAGE_LIBRARY_DIRS}) + ## additional libraries + set (PROJECT_LINK_LIBS rvslib libpthread.so libpci.so libm.so) + diff --git a/repos/spack_repo/builtin/packages/rocm_validation_suite/012-hipblaslt-libdir-lib64.patch b/repos/spack_repo/builtin/packages/rocm_validation_suite/012-hipblaslt-libdir-lib64.patch new file mode 100644 index 00000000000..108b9d05598 --- /dev/null +++ b/repos/spack_repo/builtin/packages/rocm_validation_suite/012-hipblaslt-libdir-lib64.patch @@ -0,0 +1,17 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b8f6c83..d54ff1a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -86,7 +86,11 @@ find_package (hipblaslt) + if(hipblaslt_FOUND) + message(STATUS "hipblaslt found") + set(HIPBLASLT_INC_DIR ${hipblaslt_INCLUDE_DIR} ) +- get_filename_component(HIPBLASLT_LIB_DIR "${HIPBLASLT_INC_DIR}/../lib" ABSOLUTE) ++ if(EXISTS "${HIPBLASLT_INC_DIR}/../lib64") ++ get_filename_component(HIPBLASLT_LIB_DIR "${HIPBLASLT_INC_DIR}/../lib64" ABSOLUTE) ++ else() ++ get_filename_component(HIPBLASLT_LIB_DIR "${HIPBLASLT_INC_DIR}/../lib" ABSOLUTE) ++ endif() + else() #If HIPBLASLT not found + message(FATAL_ERROR "hipblaslt not found !!! Install hipblaslt to proceed ...") + endif(hipblaslt_FOUND) diff --git a/repos/spack_repo/builtin/packages/rocm_validation_suite/package.py b/repos/spack_repo/builtin/packages/rocm_validation_suite/package.py index 514436f4a7f..d1241fe9540 100644 --- a/repos/spack_repo/builtin/packages/rocm_validation_suite/package.py +++ b/repos/spack_repo/builtin/packages/rocm_validation_suite/package.py @@ -5,11 +5,12 @@ import os from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary from spack.package import * -class RocmValidationSuite(CMakePackage): +class RocmValidationSuite(ROCmLibrary, CMakePackage): """The ROCm Validation Suite (RVS) is a system administrators and cluster manager's tool for detecting and troubleshooting common problems affecting AMD GPU(s) running in a high-performance @@ -17,13 +18,24 @@ class RocmValidationSuite(CMakePackage): compatible platform.""" homepage = "https://github.com/ROCm/ROCmValidationSuite" - url = "https://github.com/ROCm/ROCmValidationSuite/archive/rocm-6.1.1.tar.gz" + git = "https://github.com/ROCm/ROCmValidationSuite.git" + url = "https://github.com/ROCm/ROCmValidationSuite/archive/rocm-6.4.3.tar.gz" tags = ["rocm"] license("MIT") maintainers("srekolam", "renjithravindrankannath", "afzpatel") - + executables = ["rvs"] + + version("7.2.3", sha256="363009b394350a2ae1d8debe7092c96ab5aa2b183487aed6834580979e969c8c") + version("7.2.1", sha256="737c30e9ded3b9b70b85973aca49cf98015eff890eb8bb81c940f04f1079b7c9") + version("7.2.0", sha256="d4c7252104431542fb748afd2e17eb9d86ad87f490b19a3fa343721222d67910") + version("7.1.1", sha256="eecce5e1597f2da152feffe6ac6aec9234a686f10591c58995e1120d601f3128") + version("7.1.0", sha256="ef2ef3a6468e9dc47061afa91d862870c08cbdb7a6c883880d11eb168427bba9") + version("7.0.2", sha256="c4f2e8732e9f8fcabc925f97a5617fc89f6ae4d872987c34d407ac60c9883efc") + version("7.0.0", sha256="093951bfe198a47871137329341ca3d0fdb175183fc1121eb80cbac9da542317") + version("6.4.3", sha256="2ed24ee2a4bd581515fbdea1c182f377b84be15d8a75ad448bafdc3380fe3624") + version("6.4.2", sha256="2db0210ae6c894a8480bad0f50ea7553a5b2b14f6969006af666b9d1779285f7") version("6.4.1", sha256="2a0ce3e037e2eaee5a29bb796813f94faa9e080af29937583e5ddba7af3c3acb") version("6.4.0", sha256="1963aa0ec6f6b7e957a5521dbfba615c2047ef7f432048b4a14c979c90a6f995") version("6.3.3", sha256="3d1afc47f6bd491991f6deb80f84d00041497e7fd564fd0129622263b5b87cc1") @@ -40,16 +52,9 @@ class RocmValidationSuite(CMakePackage): version("6.0.0", sha256="a84e36b5e50e70ba033fb6bc6fa99da2e32bf7eaef2098df3164365a77a8f14c") version("5.7.1", sha256="202f2b6e014bbbeec40af5d3ec630c042f09a61087a77bd70715d81044ea4d65") version("5.7.0", sha256="f049b7786a220e9b6dfe099f17727dd0d9e41be9e680fe8309eae400cc5536ea") - with default_args(deprecated=True): - version("5.6.1", sha256="d5e4100e2d07311dfa101563c15d026a8130442cdee8af9ef861832cd7866c0d") - version("5.6.0", sha256="54cc5167055870570c97ee7114f48d24d5415f984e0c9d7b58b83467e0cf18fb") depends_on("c", type="build") depends_on("cxx", type="build") # generated - patch( - "007-cleanup-path-reference-donot-download-googletest-yaml-library-path_5.6.patch", - when="@5.6", - ) patch("008-correcting-library-and-include-path-WITHOUT-RVS-BUILD-TESTS.patch", when="@5.7") # Replacing ROCM_PATH with corresponding package prefix path. @@ -65,20 +70,22 @@ class RocmValidationSuite(CMakePackage): when="@6.3", ) patch("010-add-drm-include-path.patch", when="@6.4") + # https://github.com/ROCm/ROCmValidationSuite/pull/998 + patch("011_add_inc_and_lib_path_for_pciutils.patch", when="@7.0:") + patch("012-hipblaslt-libdir-lib64.patch", when="@7.0:") depends_on("cmake@3.5:", type="build") depends_on("zlib-api", type="link") depends_on("yaml-cpp~shared") depends_on("googletest") depends_on("doxygen", type="build") depends_on("libdrm", when="@6.4:") + depends_on("pciutils+shared", when="@6.4:") def setup_build_environment(self, env: EnvironmentModifications) -> None: spec = self.spec env.set("HIPCC_PATH", spec["hip"].prefix) for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -93,8 +100,6 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: depends_on(f"hsakmt-roct@{ver}", when=f"@{ver}") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -111,19 +116,90 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + ]: + depends_on(f"rocm-smi-lib@{ver}", when=f"@{ver}") + + for ver in [ + "5.7.0", + "5.7.1", + "6.0.0", + "6.0.2", + "6.1.0", + "6.1.1", + "6.1.2", + "6.2.0", + "6.2.1", + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"rocminfo@{ver}", when=f"@{ver}") depends_on(f"rocblas@{ver}", when=f"@{ver}") - depends_on(f"rocm-smi-lib@{ver}", when=f"@{ver}") depends_on(f"hsa-rocr-dev@{ver}", when=f"@{ver}") - for ver in ["6.2.1", "6.2.4", "6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: + + for ver in [ + "6.2.1", + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"hiprand@{ver}", when=f"@{ver}") depends_on(f"rocrand@{ver}", when=f"@{ver}") - for ver in ["6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: + for ver in [ + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"hipblaslt@{ver}", when=f"@{ver}") + for ver in ["7.0.0", "7.0.2", "7.1.0", "7.1.1"]: + depends_on(f"rocm-openmp-extras@{ver}", when=f"@{ver}") + + for ver in ["7.0.0", "7.0.2", "7.1.0", "7.1.1", "7.2.0", "7.2.1", "7.2.3"]: + depends_on(f"amdsmi@{ver}", when=f"@{ver}") + def patch(self): if self.spec.satisfies("@:5.7"): filter_file( @@ -141,21 +217,19 @@ def cmake_args(self): ] if self.spec.satisfies("@6.2.1:6.2.4"): - args.append(self.define("HIPRAND_DIR", self.spec["hiprand"].prefix)), - args.append(self.define("ROCRAND_DIR", self.spec["rocrand"].prefix)), + args.append(self.define("HIPRAND_DIR", self.spec["hiprand"].prefix)) + args.append(self.define("ROCRAND_DIR", self.spec["rocrand"].prefix)) libloc = self.spec["googletest"].prefix.lib64 if not os.path.isdir(libloc): libloc = self.spec["googletest"].prefix.lib args.append(self.define("UT_LIB", libloc)) if self.spec.satisfies("@:6.2"): - args.append(self.define("HIP_PATH", self.spec["hip"].prefix)), - args.append(self.define("HSA_PATH", self.spec["hsa-rocr-dev"].prefix)), - args.append(self.define("ROCM_SMI_DIR", self.spec["rocm-smi-lib"].prefix)), - args.append(self.define("ROCBLAS_DIR", self.spec["rocblas"].prefix)), - args.append( - self.define("YAML_CPP_INCLUDE_DIRS", self.spec["yaml-cpp"].prefix.include) - ), + args.append(self.define("HIP_PATH", self.spec["hip"].prefix)) + args.append(self.define("HSA_PATH", self.spec["hsa-rocr-dev"].prefix)) + args.append(self.define("ROCM_SMI_DIR", self.spec["rocm-smi-lib"].prefix)) + args.append(self.define("ROCBLAS_DIR", self.spec["rocblas"].prefix)) + args.append(self.define("YAML_CPP_INCLUDE_DIRS", self.spec["yaml-cpp"].prefix.include)) libloc = self.spec["hsakmt-roct"].prefix.lib64 if not os.path.isdir(libloc): @@ -163,7 +237,13 @@ def cmake_args(self): args.append(self.define("HSAKMT_LIB_DIR", libloc)) if self.spec.satisfies("@6.3.0:"): - args.append(self.define("CMAKE_INSTALL_RPATH", self.spec.prefix.lib)), - args.append(self.define("CPACK_PACKAGING_INSTALL_PREFIX", self.spec.prefix)), + args.append(self.define("CMAKE_INSTALL_RPATH", self.spec.prefix.lib)) + args.append(self.define("CPACK_PACKAGING_INSTALL_PREFIX", self.spec.prefix)) + + if self.spec.satisfies("@7.1:"): + # hipblaslt config file no longer sets this + args.append( + self.define("hipblaslt_INCLUDE_DIR", self.spec["hipblaslt"].prefix.include) + ) return args diff --git a/repos/spack_repo/builtin/packages/rocminfo/package.py b/repos/spack_repo/builtin/packages/rocminfo/package.py index bc289dc1ff8..c3d0f5beb5f 100644 --- a/repos/spack_repo/builtin/packages/rocminfo/package.py +++ b/repos/spack_repo/builtin/packages/rocminfo/package.py @@ -2,22 +2,38 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary from spack.package import * -class Rocminfo(CMakePackage): +class Rocminfo(ROCmLibrary, CMakePackage): """Radeon Open Compute (ROCm) Runtime rocminfo tool""" homepage = "https://github.com/ROCm/rocminfo" - git = "https://github.com/ROCm/rocminfo.git" - url = "https://github.com/ROCm/rocminfo/archive/rocm-6.4.1.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-systems.git" + tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "haampie") + executables = ["rocminfo"] + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/rocminfo/archive/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-systems/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b") + version("7.2.1", sha256="201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f") + version("7.2.0", sha256="728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638") + version("7.1.1", sha256="a1ff6d08e0c7ff653bb323964ff2badf6aa1d75aeb2d69248599b0133370fa7e") + version("7.1.0", sha256="fdf1e08392d3645d64696c5de7c116a1ea7ff3c70f19c0cb46c9eece7c00062c") + version("7.0.2", sha256="06098e7fa92c618ecd042dca3c980f270617f2085b93d1465a4b7e7cc4d12661") + version("7.0.0", sha256="fdab0c04941a64f585605b05d4e520fb2261d10175227cc6e9f934e868462eea") + version("6.4.3", sha256="0aa040963daaa2b5ebbec818a2d53c83612912686336160c223fb664dc0ca92b") + version("6.4.2", sha256="b559f7e22086db952cec098d5512c77ae844f955a16d2cbbbd088fb3844c8787") version("6.4.1", sha256="eabbe4bfb29152900bbde812c6fffd5555b45842259242d85f29e449c00f3249") version("6.4.0", sha256="060184e70755cb267017553ec37cc5b36af2c94e6b0643cad4b9fed270199a79") version("6.3.3", sha256="08390b2babe6dc832887098c5d3a5253d655430a18751f3446a56c7422b26dd2") @@ -34,9 +50,6 @@ class Rocminfo(CMakePackage): version("6.0.0", sha256="bc29f1798644b6dea73895353dffada9db7366d0058274e587ebd3291a4d3844") version("5.7.1", sha256="642dc2ec4254b3c30c43064e6690861486db820b25f4906ec78bdb47e68dcd0b") version("5.7.0", sha256="a5a3c19513bf26f17f163a03ba5288c5c761619ef55f0cb9e15472771748b93e") - with default_args(deprecated=True): - version("5.6.1", sha256="780b186ac7410a503eca1060f4bbc35db1b7b4d1d714d15c7534cd26d8af7b54") - version("5.6.0", sha256="87d98a736e4f7510d1475d35717842068d826096a0af7c15a395bcf9d36d7fa0") depends_on("c", type="build") depends_on("cxx", type="build") @@ -45,8 +58,6 @@ class Rocminfo(CMakePackage): extends("python@3:") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -61,8 +72,6 @@ class Rocminfo(CMakePackage): depends_on(f"hsakmt-roct@{ver}", when=f"@{ver}") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -79,9 +88,25 @@ class Rocminfo(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hsa-rocr-dev@{ver}", when=f"@{ver}") depends_on(f"rocm-core@{ver}", when=f"@{ver}") + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/rocminfo" + else: + return "." + def cmake_args(self): return [self.define("ROCM_DIR", self.spec["hsa-rocr-dev"].prefix)] diff --git a/repos/spack_repo/builtin/packages/rocmlir/package.py b/repos/spack_repo/builtin/packages/rocmlir/package.py index 727e6a20f10..76ddf291fe1 100644 --- a/repos/spack_repo/builtin/packages/rocmlir/package.py +++ b/repos/spack_repo/builtin/packages/rocmlir/package.py @@ -3,7 +3,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cmake import CMakePackage, generator from spack.package import * @@ -15,11 +15,31 @@ class Rocmlir(CMakePackage): homepage = "https://github.com/ROCm/rocMLIR" git = "https://github.com/ROCm/rocMLIR.git" - url = "https://github.com/ROCm/rocMLIR/archive/refs/tags/rocm-6.2.1.tar.gz" + url = "https://github.com/ROCm/rocMLIR/archive/refs/tags/rocm-6.4.3.tar.gz" tags = ["rocm"] maintainers("srekolam", "afzpatel", "renjithravindrankannath") - + version( + "7.2.3", + url="https://github.com/ROCm/rocMLIR/archive/refs/tags/rocm-7.2.3.tar.gz", + sha256="415eacd1fbd916e2f62cd7b8acad0bf8b66cdac0211ebce09eca931843c2dce2", + ) + version("7.2.1", sha256="9764005aabc939d32e2f9383cf50d7ca1d0f02c8b3c986ecf04340db3ac60720") + version("7.2.0", sha256="7349cf8ccf7bb612e24168b4be2e7312f243e1603907613edf6d2ec8e71f7801") + version("7.1.1", sha256="e5fb89f55b6d5abf1be85cc35a68bc496d908fdf9b9c51ad44ac3cbf67aa35ee") + version( + "7.1.0", + url="https://github.com/ROCm/rocMLIR/archive/refs/tags/rocm-7.1.tar.gz", + sha256="2e57ff0b098ebe67fca02ef65cb2e1a44f3aaa6d23456d747c4c8c0df24f9d50", + ) + version("7.0.2", sha256="01e4b5c3f22c23595816a8c16e3ec67d39c7c5f63ecfa2d8a641ef65a9b79d50") + version( + "7.0.0", + url="https://github.com/ROCm/rocMLIR/archive/refs/tags/rocm-7.0.1.tar.gz", + sha256="84ac7addddb184599d8aa3cc9fd3ff62f177f73a8e484fb7bbed11330dc87288", + ) + version("6.4.3", sha256="5f48cdbb35738223d18f92fd4624a270e20afcc3f67aaae75b76b09b9a3865e6") + version("6.4.2", sha256="9ad8e64a01902771255371fdd08de7e574bbe71c00245837173d42f54a7599e9") version("6.4.1", sha256="15cb80da488f88274afff358e6706f54139d1003a9ddcc918afc58af4ebc5c6a") version("6.4.0", sha256="e377ad70fd5a5723427edf9464dde8e7892dabd1f783123d39a2fa2faf87079f") version("6.3.3", sha256="87242b811536132a02ce79fe430c70485f9b1477de22d8376e7e923a9c9ad98b") @@ -50,9 +70,9 @@ def patch(self): string=True, ) - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + generator("ninja") + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("python", type="build") depends_on("z3", type="link") depends_on("zlib-api", type="link") @@ -77,6 +97,15 @@ def patch(self): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") diff --git a/repos/spack_repo/builtin/packages/rocprim/package.py b/repos/spack_repo/builtin/packages/rocprim/package.py index c3a9e244c87..f1595067066 100644 --- a/repos/spack_repo/builtin/packages/rocprim/package.py +++ b/repos/spack_repo/builtin/packages/rocprim/package.py @@ -12,14 +12,28 @@ class Rocprim(CMakePackage): """Radeon Open Compute Parallel Primitives Library""" homepage = "https://github.com/ROCm/rocPRIM" - git = "https://github.com/ROCm/rocPRIM.git" - url = "https://github.com/ROCm/rocPRIM/archive/rocm-6.1.0.tar.gz" - tags = ["rocm"] - - license("MIT") + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("cgmb", "srekolam", "renjithravindrankannath", "afzpatel") + license("MIT") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/rocPRIM/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="a96a1e7113f8bdd82475d7d44e1827264850865920884521f20081fecdf1972c") + version("7.1.0", sha256="97f190a84d03ed64d8db85fe9b1aece669cc216214052231f16be29e9ba1d3f9") + version("7.0.2", sha256="bde28c7d08b46ba46d9ab13496d0d63353e4eae0e7e884167c10bccc9ebcb933") + version("7.0.0", sha256="e4cbdeae91e95e1fb7388c39a8686ec8015599f579190538e6ada8b1dec244c2") + version("6.4.3", sha256="b66feed30fe53aa8f2f8902604394c72f156b6517f8e5174d5b9d0b3dfcbb3c1") + version("6.4.2", sha256="c228a7b434f7b9cb70204e43326a07bf31f4dacb15ae5e34ea1cfd839d0d459b") version("6.4.1", sha256="ff84b839bbe07fd2c97771c1b864dac641bfa654a652e75b0e7fed5e3ec5bb7c") version("6.4.0", sha256="c35c568b83f8894fc3b9b722343b0ea75c3bd961be24075fb3527d5230788e26") version("6.3.3", sha256="15e4f8dfc71175c568f8afa87e3e0e3c7ad0680c8bca0d9db3a39936ec185813") @@ -36,9 +50,6 @@ class Rocprim(CMakePackage): version("6.0.0", sha256="51f26c9f891a64c8db8df51d75d86d404d682092fd9d243e966ac6b2a6de381a") version("5.7.1", sha256="15d820a0f61aed60efbba88b6efe6942878b02d912f523f9cf8f33a4583d6cd7") version("5.7.0", sha256="a1bf94bbad13a0410b49476771270606d8a9d257188ee3ec3a37eee80540fe9b") - with default_args(deprecated=True): - version("5.6.1", sha256="e9ec1b0039c07cf3096653a04224fe5fe755afc6ba000f6838b3a8bc84df27de") - version("5.6.0", sha256="360d6ece3c4a3c289dd88043432026fb989e982ae4d05230d8cdc858bcd50466") amdgpu_targets = ROCmPackage.amdgpu_targets @@ -61,8 +72,6 @@ class Rocprim(CMakePackage): depends_on("googletest@1.10.0:", type="test") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -79,6 +88,15 @@ class Rocprim(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"comgr@{ver}", when=f"@{ver}") @@ -86,6 +104,13 @@ class Rocprim(CMakePackage): depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/rocprim" + else: + return "." + def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("CXX", self.spec["hip"].hipcc) if self.spec.satisfies("+asan"): @@ -110,7 +135,7 @@ def cmake_args(self): if self.spec.satisfies("^cmake@3.21.0:3.21.2"): args.append(self.define("__skip_rocmclang", "ON")) - if self.spec.satisfies("@5.6:6.3.1"): + if self.spec.satisfies("@:6.3.1"): args.append(self.define("BUILD_FILE_REORG_BACKWARD_COMPATIBILITY", True)) return args diff --git a/repos/spack_repo/builtin/packages/rocprofiler_compute/package.py b/repos/spack_repo/builtin/packages/rocprofiler_compute/package.py index 4302d9000f1..476a9c2535a 100644 --- a/repos/spack_repo/builtin/packages/rocprofiler_compute/package.py +++ b/repos/spack_repo/builtin/packages/rocprofiler_compute/package.py @@ -3,23 +3,39 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary from spack.package import * -class RocprofilerCompute(CMakePackage): +class RocprofilerCompute(ROCmLibrary, CMakePackage): """Advanced Profiling and Analytics for AMD Hardware""" - homepage = "https://github.com/ROCm/rocprofiler-compute" - git = "https://github.com/ROCm/rocprofiler-compute.git" - url = "https://github.com/ROCm/rocprofiler-compute/archive/refs/tags/rocm-6.3.2.tar.gz" + homepage = "https://github.com/ROCm/rocm-systems" + git = "https://github.com/ROCm/rocm-systems.git" tags = ["rocm"] - maintainers("afzpatel", "srekolam", "renjithravindrankannath") + executables = ["rocprof-compute"] license("MIT") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/rocprofiler-compute/archive/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-systems/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b") + version("7.2.1", sha256="201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f") + version("7.2.0", sha256="728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638") + version("7.1.1", sha256="cf5d577edc1bed185f9c424868ec42952ccd2f9c2679e6daeb3bc788536cf182") + version("7.1.0", sha256="11a65dac6e4099b4f2bb438320ef8206bb130a8a31bba52e90b594cdc235969b") + version("7.0.2", sha256="b56ab5c57883e2c3d75b7cc584279eb91157de195722f90c09cad51701ef4650") + version("7.0.0", sha256="0ef46ee668b6ee6936911ecd70947abb4e501ced1c4f87d8001a6e35b9781705") + version("6.4.3", sha256="d5005322dbfdd0feccd619d8fb6665f8631d74be1d6345be8726eff76829747b") + version("6.4.2", sha256="0a0c5cbcc6d54881c58899d2f0db7feaa0d5665bf13e19f0715cb22f54b11187") version("6.4.1", sha256="a48837861dad010516f579ba627b1cf49469c56d74787f7b0883c5198de6e2a7") version("6.4.0", sha256="484a8974ebf973fa00241bf3665eac790b3c317aa36b794cc2998f892b3036fc") version("6.3.3", sha256="0f563874f71b593cbdcdf0eea58b08c7437f1abf807f0886a3a30afa9e7f4953") @@ -40,7 +56,19 @@ class RocprofilerCompute(CMakePackage): depends_on("py-plotille") depends_on("py-dash-svg", type=("build", "run")) depends_on("py-dash", type=("build", "run")) + depends_on("py-dash@3:", type=("build", "run"), when="@7.0:") depends_on("py-dash-bootstrap-components", type=("build", "run")) + depends_on("py-textual", when="@7.0:") + depends_on("py-textual-plotext", when="@7.0:") + depends_on("py-sqlalchemy@2.0.42:", when="@7.1:") + depends_on("py-textual-fspicker@0.4.3:", when="@7.2:") + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@:7.1"): + return "." + else: + return "projects/rocprofiler-compute" def cmake_args(self): args = [self.define("ENABLE_TESTS", self.run_tests)] @@ -48,4 +76,5 @@ def cmake_args(self): @run_before("cmake") def before_cmake(self): - touch(join_path(self.stage.source_path, "VERSION.sha")) + if self.spec.satisfies("@:7.1"): + touch(join_path(self.stage.source_path, "VERSION.sha")) diff --git a/repos/spack_repo/builtin/packages/rocprofiler_compute_viewer/package.py b/repos/spack_repo/builtin/packages/rocprofiler_compute_viewer/package.py new file mode 100644 index 00000000000..44b248319d2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/rocprofiler_compute_viewer/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.cmake import CMakePackage + +from spack.package import * + + +class RocprofilerComputeViewer(CMakePackage): + """ROCprof Compute Viewer (RCV) is a tool for visualizing and analyzing GPU + thread trace data collected using rocprofv3.""" + + homepage = "https://github.com/ROCm/rocprof-compute-viewer" + git = "https://github.com/ROCm/rocprof-compute-viewer" + + tags = ["rocm"] + maintainers("etiennemlb", "srekolam", "renjithravindrankannath", "afzpatel") + license("MIT") + + def url_for_version(self, version): + url = "https://github.com/ROCm/rocprof-compute-viewer/archive/refs/tags/{0}.tar.gz" + return url.format(version) + + version("0.1.6", sha256="22de1dfb0dd2ac38cb67825f6477f13e271a8fea1cd91fa3d429f8f36a93992b") + + depends_on("cxx", type="build") + + depends_on("qt@5:6", type=("build", "link")) + + def cmake_args(self): + args = [ + self.define("QT_VERSION_MAJOR", self.spec["qt"].version.up_to(1)), + self.define("RCV_DISABLE_OPENGL", not self.spec["qt"].satisfies("+opengl")), + ] + return args + + def install(self, spec, prefix): + with working_dir(self.build_directory): + binaries = ["rocprof-compute-viewer"] + mkdirp(prefix.bin) + for binary in binaries: + install(binary, prefix.bin) diff --git a/repos/spack_repo/builtin/packages/rocprofiler_dev/0002-add-fPIC-and-disable-tests-5.6.patch b/repos/spack_repo/builtin/packages/rocprofiler_dev/0002-add-fPIC-and-disable-tests-5.6.patch deleted file mode 100644 index dc94db638c4..00000000000 --- a/repos/spack_repo/builtin/packages/rocprofiler_dev/0002-add-fPIC-and-disable-tests-5.6.patch +++ /dev/null @@ -1,74 +0,0 @@ -From b28744bd1c0df82efc952e5ad208927007adf6f5 Mon Sep 17 00:00:00 2001 -From: Afzal Patel -Date: Fri, 2 Feb 2024 13:38:22 +0000 -Subject: [PATCH] Disable tests and add fPIC compile option - ---- - CMakeLists.txt | 32 ++++---------------------------- - 1 file changed, 4 insertions(+), 28 deletions(-) - -diff git a/CMakeLists.txt b/CMakeLists.txt -index 8f94b58..95b0387 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -44,7 +44,7 @@ endif() - - set(CMAKE_CXX_STANDARD 17) - set(CMAKE_CXX_STANDARD_REQUIRED ON) --add_compile_options(-Wall) -+add_compile_options(-Wall -fPIC) - - set(THREADS_PREFER_PTHREAD_FLAG ON) - -@@ -162,17 +162,17 @@ add_subdirectory(src) - - if(${LIBRARY_TYPE} STREQUAL SHARED) - # Build samples -- add_subdirectory(samples) -+ # add_subdirectory(samples) - - # Build tests -- add_subdirectory(tests) -+ # add_subdirectory(tests) - endif() - - # Build Plugins - add_subdirectory(plugin) - - # Build tests --add_subdirectory(${TEST_DIR} ${PROJECT_BINARY_DIR}/test) -+# add_subdirectory(${TEST_DIR} ${PROJECT_BINARY_DIR}/test) - - # Installation and packaging - set(DEST_NAME ${ROCPROFILER_NAME}) -@@ -239,30 +239,6 @@ install( - DESTINATION ${CMAKE_INSTALL_LIBDIR}/${ROCPROFILER_NAME} - COMPONENT runtime) - --# librocprof-tool.so --install( -- FILES ${PROJECT_BINARY_DIR}/test/librocprof-tool.so -- DESTINATION ${CMAKE_INSTALL_LIBDIR}/${ROCPROFILER_NAME} -- COMPONENT runtime) -- --install( -- FILES ${PROJECT_BINARY_DIR}/test/librocprof-tool.so -- DESTINATION ${CMAKE_INSTALL_LIBDIR}/${ROCPROFILER_NAME} -- COMPONENT asan) -- --install( -- FILES ${PROJECT_BINARY_DIR}/test/rocprof-ctrl -- DESTINATION ${CMAKE_INSTALL_LIBDIR}/${ROCPROFILER_NAME} -- PERMISSIONS -- OWNER_READ -- OWNER_WRITE -- OWNER_EXECUTE -- GROUP_READ -- GROUP_EXECUTE -- WORLD_READ -- WORLD_EXECUTE -- COMPONENT runtime) -- - # File reorg backward compatibility for non ASAN packaging - if ( NOT ENABLE_ASAN_PACKAGING ) - # File reorg Backward compatibility diff --git a/repos/spack_repo/builtin/packages/rocprofiler_dev/0003-disable-tests-7.2.patch b/repos/spack_repo/builtin/packages/rocprofiler_dev/0003-disable-tests-7.2.patch new file mode 100644 index 00000000000..1bbd407791c --- /dev/null +++ b/repos/spack_repo/builtin/packages/rocprofiler_dev/0003-disable-tests-7.2.patch @@ -0,0 +1,24 @@ +From 869c2dc4b88aa5beb5ab0e57aba85d0c520e7074 Mon Sep 17 00:00:00 2001 +From: Afzal Patel +Date: Fri, 2 Feb 2024 14:16:12 +0000 +Subject: [PATCH] Disable tests + +--- + CMakeLists.txt | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/projects/rocprofiler/CMakeLists.txt b/projects/rocprofiler/CMakeLists.txt +index 9d52082..6f35926 100644 +--- a/projects/rocprofiler/CMakeLists.txt ++++ b/projects/rocprofiler/CMakeLists.txt +@@ -176,8 +176,8 @@ endif() + enable_testing() + + # Temporarily for CI to work +-set(ROCPROFILER_BUILD_TESTS ON) +-set(ROCPROFILER_BUILD_CI ON) ++set(ROCPROFILER_BUILD_TESTS OFF) ++set(ROCPROFILER_BUILD_CI OFF) + + if(ROCPROFILER_BUILD_CI) + include(CTest) diff --git a/repos/spack_repo/builtin/packages/rocprofiler_dev/package.py b/repos/spack_repo/builtin/packages/rocprofiler_dev/package.py index a2d1723cb68..9c78c49f903 100644 --- a/repos/spack_repo/builtin/packages/rocprofiler_dev/package.py +++ b/repos/spack_repo/builtin/packages/rocprofiler_dev/package.py @@ -13,14 +13,29 @@ class RocprofilerDev(CMakePackage): """ROCPROFILER library for AMD HSA runtime API extension support""" homepage = "https://github.com/ROCm/rocprofiler" - git = "https://github.com/ROCm/rocprofiler.git" - url = "https://github.com/ROCm/rocprofiler/archive/refs/tags/rocm-6.2.4.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-systems.git" + tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") libraries = ["librocprofiler64"] license("MIT") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/rocprofiler/archive/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-systems/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b") + version("7.2.1", sha256="201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f") + version("7.2.0", sha256="728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638") + version("7.1.1", sha256="db8b3698e3f743f0ce58cc5bc1d2406e77f4ca206f1a6c94b182518492f8af2f") + version("7.1.0", sha256="d029f0011092b9cd6bebeec1775d07eb2ae5fa039937db7376f8177b1956b4c6") + version("7.0.2", sha256="149557a5db8920e9d003ef7bfc3c5d7580c97c97abada1654a556b2203969124") + version("7.0.0", sha256="74c305dd270d9644eeab70d985f9195dd0bcd36a0a256c2fbd4f780436efd334") + version("6.4.3", sha256="b7d5a6848d0bb394bfcb2e667690abf50189010bdc2e6c6ebf401d0ba780c1a0") + version("6.4.2", sha256="0c7e6e25b1b1bbc33a311c40bc9864cc1d73c1a55ec6616d5a9a14843f9dd836") version("6.4.1", sha256="d816f6d7bd138c15d68bceb111847a12ecff5efb50831bb4c3e02fab102ab471") version("6.4.0", sha256="c605bdbf5245f46267d4a422746fc941213beae494cd3f902b67fc5423979a57") version("6.3.3", sha256="7ca6900b4a81f9dc0d7cdfe3be39372b3bf25f3c8304256705003294772890bd") @@ -37,22 +52,13 @@ class RocprofilerDev(CMakePackage): version("6.0.0", sha256="6aca327a6ba302b5957002e55ac640dd185d51a354da3859e957448a5fc36b14") version("5.7.1", sha256="2fb7158592d89312ba419a272d907d8849373c0a676a83dd03c32b9942dfd27a") version("5.7.0", sha256="003af33db5585e71823b2b58618d795df926f6bd25943f2add388db23f2bf377") - with default_args(deprecated=True): - version("5.6.1", sha256="3e5eecce216418e61ffee893cbc8611e38305ee472d0e10d579eb74e287c8e1b") - version("5.6.0", sha256="ff811bd91580f60b6b4d397b6fce38d96f07debc6fd8a631b81d1b266cc9542d") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("cmake@3:", type="build") - for ver in ["5.6.0", "5.6.1"]: - depends_on(f"aqlprofile@{ver}", when=f"@{ver}") - depends_on(f"comgr@{ver}", when=f"@{ver}") - for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -67,8 +73,6 @@ class RocprofilerDev(CMakePackage): depends_on(f"hsakmt-roct@{ver}", when=f"@{ver}") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -87,6 +91,11 @@ class RocprofilerDev(CMakePackage): depends_on(f"hsa-rocr-dev@{ver}", when=f"@{ver}") depends_on(f"rocminfo@{ver}", when=f"@{ver}") depends_on(f"roctracer-dev-api@{ver}", when=f"@{ver}") + depends_on(f"aqlprofile@{ver}", when=f"@{ver}") + + for ver in ["6.4.0", "6.4.1", "6.4.2", "6.4.3"]: + depends_on(f"aqlprofile@{ver}", when=f"@{ver}") + for ver in [ "5.7.0", "5.7.1", @@ -104,34 +113,54 @@ class RocprofilerDev(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: - depends_on(f"aqlprofile@{ver}", when=f"@{ver}") depends_on(f"comgr@{ver}", when=f"@{ver}") depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"rocm-smi-lib@{ver}", when=f"@{ver}") + for ver in ["7.0.0", "7.0.2", "7.1.0", "7.1.1", "7.2.0", "7.2.1", "7.2.3"]: + depends_on(f"hsa-amd-aqlprofile@{ver}", when=f"@{ver}") + depends_on("py-lxml") depends_on("py-cppheaderparser") depends_on("googletest@1.10.0:") depends_on("py-pyyaml") depends_on("py-barectf") depends_on("py-setuptools") - depends_on("py-jsonschema") + depends_on("py-jsonschema@4:") depends_on("py-jinja2") depends_on("py-termcolor") depends_on("py-pandas", when="@6.0:") + depends_on("elfutils", when="@7.1:") - patch("0002-add-fPIC-and-disable-tests-5.6.patch", when="@5.6") patch("0002-add-fPIC-and-disable-tests-5.7.patch", when="@5.7") - patch("0003-disable-tests.patch", when="@6.0:") + patch("0003-disable-tests.patch", when="@6.0:7.1") + patch("0003-disable-tests-7.2.patch", when="@7.2:") + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@:7.1"): + return "." + else: + return "projects/rocprofiler" def patch(self): - filter_file( - "${HSA_RUNTIME_LIB_PATH}/../include", - "${HSA_RUNTIME_LIB_PATH}/../include ${HSA_KMT_LIB_PATH}/../include", - "test/CMakeLists.txt", - string=True, - ) + if self.spec.satisfies("@:7.1"): + filter_file( + "${HSA_RUNTIME_LIB_PATH}/../include", + "${HSA_RUNTIME_LIB_PATH}/../include ${HSA_KMT_LIB_PATH}/../include", + "test/CMakeLists.txt", + string=True, + ) @classmethod def determine_version(cls, lib): @@ -153,6 +182,10 @@ def cmake_args(self): args.append(self.define("ROCM_ROOT_DIR", self.spec["hsakmt-roct"].prefix.include)) if self.spec.satisfies("@6.2:"): args.append(self.define("ROCPROFILER_BUILD_PLUGIN_PERFETTO", "OFF")) + + # libdw related error when building att + if self.spec.satisfies("@7.1:"): + args.append(self.define("ROCPROFILER_BUILD_PLUGIN_ATT", "OFF")) return args @run_after("install") diff --git a/repos/spack_repo/builtin/packages/rocprofiler_register/001-add-cpack-fmt-glog-7.2.patch b/repos/spack_repo/builtin/packages/rocprofiler_register/001-add-cpack-fmt-glog-7.2.patch new file mode 100644 index 00000000000..3c52c45c07a --- /dev/null +++ b/repos/spack_repo/builtin/packages/rocprofiler_register/001-add-cpack-fmt-glog-7.2.patch @@ -0,0 +1,38 @@ +From 6eb75bd029d17dbe53a6470ca357b2721ba9d87e Mon Sep 17 00:00:00 2001 +From: Afzal Patel +Date: Mon, 12 Aug 2024 20:43:05 +0000 +Subject: [PATCH] add CPack include and find glog and fmt + +--- + projects/rocprofiler-register/cmake/rocprofiler_register_config_packaging.cmake | 1 + + projects/rocprofiler-register/source/lib/rocprofiler-register/CMakeLists.txt | 3 ++- + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/projects/rocprofiler-register/cmake/rocprofiler_register_config_packaging.cmake b/projects/rocprofiler-register/cmake/rocprofiler_register_config_packaging.cmake +index 5e98f3e..88c4155 100644 +--- a/projects/rocprofiler-register/cmake/rocprofiler_register_config_packaging.cmake ++++ b/projects/rocprofiler-register/cmake/rocprofiler_register_config_packaging.cmake +@@ -81,6 +81,7 @@ foreach(COMPONENT_GROUP ${ROCPROFILER_REGISTER_COMPONENT_GROUPS}) + set(_NAME "${COMPONENT_NAME_${COMPONENT_GROUP}}") + set(_DESC "${COMPONENT_DESC_${COMPONENT_GROUP}}") + ++ include(CPack) + cpack_add_component_group( + ${COMPONENT_GROUP} + DISPLAY_NAME "${_NAME}" +diff --git a/projects/rocprofiler-register/source/lib/rocprofiler-register/CMakeLists.txt b/projects/rocprofiler-register/source/lib/rocprofiler-register/CMakeLists.txt +index 840fbed..4e30a3f 100644 +--- a/projects/rocprofiler-register/source/lib/rocprofiler-register/CMakeLists.txt ++++ b/projects/rocprofiler-register/source/lib/rocprofiler-register/CMakeLists.txt +@@ -16,7 +16,8 @@ endif() + target_include_directories( + rocprofiler-register PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/source + ${PROJECT_BINARY_DIR}/source) +- ++find_package(fmt CONFIG REQUIRED) ++find_package(glog CONFIG REQUIRED) + target_link_libraries( + rocprofiler-register + PUBLIC rocprofiler-register::headers +-- +2.43.5 diff --git a/repos/spack_repo/builtin/packages/rocprofiler_register/package.py b/repos/spack_repo/builtin/packages/rocprofiler_register/package.py index b3547ed269c..611a9e03137 100644 --- a/repos/spack_repo/builtin/packages/rocprofiler_register/package.py +++ b/repos/spack_repo/builtin/packages/rocprofiler_register/package.py @@ -3,24 +3,40 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary from spack.package import * -class RocprofilerRegister(CMakePackage): +class RocprofilerRegister(ROCmLibrary, CMakePackage): """The rocprofiler-register library is a helper library that coordinates the modification of the intercept API table(s) of the HSA/HIP/ROCTx runtime libraries by the ROCprofiler (v2) library""" homepage = "https://github.com/ROCm/rocprofiler-register" - git = "https://github.com/ROCm/rocprofiler-register.git" - url = "https://github.com/ROCm/rocprofiler-register/archive/refs/tags/rocm-6.4.1.tar.gz" + git = "https://github.com/ROCm/rocm-systems.git" tags = ["rocm"] - maintainers("afzpatel", "srekolam", "renjithravindrankannath") - + libraries = ["librocprofiler-register"] license("MIT") + + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/rocprofiler-register/archive/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-systems/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b") + version("7.2.1", sha256="201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f") + version("7.2.0", sha256="728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638") + version("7.1.1", sha256="eb34ed91a25b28fbbbe3e486f9865b97513b7a959d5a6b5b0c66a859038115e9") + version("7.1.0", sha256="29f050480d9efe9a8bd55e274f1d571a1c6001cd1db9f8648a1888f73e4ea2ef") + version("7.0.2", sha256="c76ffb35c510f8751d6d2db3a6366952ea7a76499556e9d64fdf8102a7a3ca5b") + version("7.0.0", sha256="fd8d22186385ee761c26acbeece89f61432c95492222c45865fe01027d99cfd7") + version("6.4.3", sha256="05a59920b75aaeb14f1911fa2d4b131c4210d3c6204167fc2fd678634ce9c1e7") + version("6.4.2", sha256="30da75f6b50fe4303c9c788ae29ed1aae79b0f653b7aa05e0f042b7313fb5de6") version("6.4.1", sha256="bb8a55d73049f433c039300357713e040ba5b37ed5490336fae435385d09e596") version("6.4.0", sha256="7439d789f722971b2dd2f8e7b5c5cbdb1522e47a6fbb428fd9bcb24234c6fd48") version("6.3.3", sha256="afe4b1017ca604259de8cf7d06f98680bae63180214b914fcd7bd5da116b58c3") @@ -38,8 +54,17 @@ class RocprofilerRegister(CMakePackage): depends_on("cxx", type="build") depends_on("fmt") depends_on("glog") + depends_on("libunwind") + + patch("001-add-cpack-fmt-glog.patch", when="@:7.1") + patch("001-add-cpack-fmt-glog-7.2.patch", when="@7.2:") - patch("001-add-cpack-fmt-glog.patch") + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/rocprofiler-register" + else: + return "." def cmake_args(self): args = ["-DROCPROFILER_REGISTER_BUILD_FMT=OFF", "-DROCPROFILER_REGISTER_BUILD_GLOG=OFF"] diff --git a/repos/spack_repo/builtin/packages/rocprofiler_sdk/package.py b/repos/spack_repo/builtin/packages/rocprofiler_sdk/package.py index 3440cf85312..b3b1b9dc72d 100644 --- a/repos/spack_repo/builtin/packages/rocprofiler_sdk/package.py +++ b/repos/spack_repo/builtin/packages/rocprofiler_sdk/package.py @@ -2,81 +2,256 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmPackage from spack.package import * +def submodules(package): + submodules = [ + "projects/rocprofiler-sdk/external/googletest", + "projects/rocprofiler-sdk/external/fmt", + "projects/rocprofiler-sdk/external/doxygen-awesome-css", + "projects/rocprofiler-sdk/external/ptl", + "projects/rocprofiler-sdk/external/cereal", + "projects/rocprofiler-sdk/external/filesystem", + "projects/rocprofiler-sdk/external/perfetto", + "projects/rocprofiler-sdk/external/elfio", + "projects/rocprofiler-sdk/external/yaml-cpp", + "projects/rocprofiler-sdk/external/json", + ] + return submodules + + class RocprofilerSdk(CMakePackage): """ROCProfiler-SDK is AMD’s new and improved tooling infrastructure, providing a hardware-specific low-level performance analysis interface for profiling and tracing GPU compute applications.""" homepage = "https://github.com/ROCm/rocprofiler-sdk" - git = "https://github.com/ROCm/rocprofiler-sdk.git" + git = "https://github.com/ROCm/rocm-systems.git" url = "https://github.com/ROCm/rocprofiler-sdk/archive/refs/tags/rocm-6.3.2.tar.gz" tags = ["rocm"] maintainers("afzpatel", "srekolam", "renjithravindrankannath") + executables = ["rocprofv3"] license("MIT") - + version( + "7.2.3", + tag="rocm-7.2.3", + commit="c2d94761153e1033a91744842dfc66eddd631fde", + submodules=submodules, + ) + version( + "7.2.1", + tag="rocm-7.2.1", + commit="e1a6bc5663304b9c586b3254b8920f2981057804", + submodules=submodules, + ) + version( + "7.2.0", + tag="rocm-7.2.0", + commit="fc0010cf6a5a972d42b276df946510f30343d493", + submodules=submodules, + ) + version( + "7.1.1", + git="https://github.com/ROCm/rocprofiler-sdk.git", + tag="rocm-7.1.1", + commit="ff4f9a64d386454ed5f1a1360a2a5c14292f36c6", + submodules=True, + ) + version( + "7.1.0", + git="https://github.com/ROCm/rocprofiler-sdk.git", + tag="rocm-7.1.0", + commit="d5c0aaae36a6cb348f408c9fde8be435e29981b9", + submodules=True, + ) + version( + "7.0.2", + git="https://github.com/ROCm/rocprofiler-sdk.git", + tag="rocm-7.0.2", + commit="19ae05055bee5dab65854b44c047f34db2e8276c", + submodules=True, + ) + version( + "7.0.0", + git="https://github.com/ROCm/rocprofiler-sdk.git", + tag="rocm-7.0.0", + commit="18af6a58b74558c91ba09376d86d2401da2cf76f", + submodules=True, + ) + version( + "6.4.3", + git="https://github.com/ROCm/rocprofiler-sdk.git", + tag="rocm-6.4.3", + commit="fb30388fd30c073ac7baf3dad775f37c51aafcc8", + submodules=True, + ) + version( + "6.4.2", + git="https://github.com/ROCm/rocprofiler-sdk.git", + tag="rocm-6.4.2", + commit="e8e49fe76971000a42a5a177d9a727d16dd0ebcf", + submodules=True, + ) version( "6.4.1", + git="https://github.com/ROCm/rocprofiler-sdk.git", tag="rocm-6.4.1", commit="e8e49fe76971000a42a5a177d9a727d16dd0ebcf", submodules=True, ) version( "6.4.0", + git="https://github.com/ROCm/rocprofiler-sdk.git", tag="rocm-6.4.0", commit="e8e49fe76971000a42a5a177d9a727d16dd0ebcf", submodules=True, ) version( "6.3.3", + git="https://github.com/ROCm/rocprofiler-sdk.git", tag="rocm-6.3.3", commit="95a3964ee26ac45618517f24669858bdb39ea7d2", submodules=True, ) version( "6.3.2", + git="https://github.com/ROCm/rocprofiler-sdk.git", tag="rocm-6.3.2", commit="f5d3fd3d3460c74cb8935f0021e31f0bff5cb305", submodules=True, ) version( "6.3.1", + git="https://github.com/ROCm/rocprofiler-sdk.git", tag="rocm-6.3.1", commit="38ac1c8f7d62cbb702f53c7085be16bf1943369a", submodules=True, ) version( "6.3.0", + git="https://github.com/ROCm/rocprofiler-sdk.git", tag="rocm-6.3.0", commit="38ac1c8f7d62cbb702f53c7085be16bf1943369a", submodules=True, ) version( "6.2.4", + git="https://github.com/ROCm/rocprofiler-sdk.git", tag="rocm-6.2.4", commit="03fe8df3622a97161699439dfe933ef8e9e7db8a", submodules=True, ) + amdgpu_targets = ROCmPackage.amdgpu_targets + + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) + + variant("internal-fmt", default=False, description="build internal fmt") + depends_on("c", type="build") depends_on("cxx", type="build") - for ver in ["6.2.4", "6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: + depends_on("sqlite", when="@7:") + depends_on("elfutils") + depends_on("libdrm") + depends_on("pkgconfig", when="@7.1:") + depends_on("py-pybind11", when="@7.2:") + depends_on("gotcha", when="@7.2:") + depends_on("fmt@:10", when="@7.2: ~internal-fmt") + depends_on("glog", when="@7.2:") + + for ver in ["6.2.4", "6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1", "6.4.2", "6.4.3"]: + depends_on(f"aqlprofile@{ver}", when=f"@{ver}") + for ver in ["7.0.0", "7.0.2", "7.1.0", "7.1.1", "7.2.0", "7.2.1", "7.2.3"]: + depends_on(f"hsa-amd-aqlprofile@{ver}", when=f"@{ver}") + + for ver in [ + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"rocm-cmake@{ver}", when=f"@{ver}") - depends_on(f"aqlprofile@{ver}", when=f"@{ver}") - depends_on(f"rccl@{ver}", when=f"@{ver}") + for tgt in ROCmPackage.amdgpu_targets: + depends_on(f"rccl@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") depends_on(f"rocprofiler-register@{ver}", when=f"@{ver}") - for ver in ["6.4.0", "6.4.1"]: - depends_on(f"rocdecode@{ver}", when=f"@{ver}") + for ver in [ + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: + for tgt in ROCmPackage.amdgpu_targets: + depends_on(f"rocdecode@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + + patch( + "https://github.com/ROCm/rocm-systems/commit/ef7253365c420ca486f074b9e9119a222e30fea0.patch?full_index=1", + sha256="05a71386d12d7fc98a40c025dc65a804556e01f381d1101ea244f35f29edd3d8", + when="@7.2:", + ) + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@:7.1"): + return "." + else: + return "projects/rocprofiler-sdk" + + def cmake_args(self): + args = [] + if self.spec.satisfies("@7.1:"): + args.append(self.define("ElfUtils_ROOT_DIR", self.spec["elfutils"].prefix)) + if self.spec.satisfies("@7.2:"): + args.append(self.define("ROCPROFILER_BUILD_PYBIND11", "OFF")) + args.append(self.define_from_variant("ROCPROFILER_BUILD_FMT", "internal-fmt")) + args.append(self.define("ROCPROFILER_BUILD_GLOG", "OFF")) + args.append(self.define("ROCPROFILER_BUILD_GOTCHA", "OFF")) + args.append(self.define("ROCPROFILER_BUILD_SQLITE3", "OFF")) + return args def setup_run_environment(self, env): - env.prepend_path("LD_LIBRARY_PATH", self.spec["aqlprofile"].prefix.lib) + if not self.spec.external: + if self.spec.satisfies("@7:"): + env.prepend_path("LD_LIBRARY_PATH", self.spec["hsa-amd-aqlprofile"].prefix.lib) + else: + env.prepend_path("LD_LIBRARY_PATH", self.spec["aqlprofile"].prefix.lib) + + @classmethod + def determine_version(cls, exe): + output = Executable(exe)("--version", output=str, error=str) + match = re.search(r"rocm_version: (\d+\.\d+\.\d+)", output) + return match.group(1) if match else None diff --git a/repos/spack_repo/builtin/packages/rocprofiler_systems/package.py b/repos/spack_repo/builtin/packages/rocprofiler_systems/package.py index 1a9b5374ffd..f0d107f2512 100644 --- a/repos/spack_repo/builtin/packages/rocprofiler_systems/package.py +++ b/repos/spack_repo/builtin/packages/rocprofiler_systems/package.py @@ -2,24 +2,101 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re + from spack_repo.builtin.build_systems.cmake import CMakePackage from spack.package import * +def submodules(package): + submodules = [ + "projects/rocprofiler-systems/external/timemory", + "projects/rocprofiler-systems/external/perfetto", + "projects/rocprofiler-systems/external/elfio", + "projects/rocprofiler-systems/external/dyninst", + "projects/rocprofiler-systems/external/PTL", + "projects/rocprofiler-systems/external/papi", + "projects/rocprofiler-systems/external/pybind11", + "projects/rocprofiler-systems/examples/openmp/external/ompvv", + ] + return submodules + + class RocprofilerSystems(CMakePackage): """Application Profiling, Tracing, and Analysis""" homepage = "https://github.com/ROCm/rocprofiler-systems" - git = "https://github.com/ROCm/rocprofiler-systems.git" - url = "https://github.com/ROCm/rocprofiler-systems/archive/refs/tags/rocm-6.3.1.tar.gz" + git = "https://github.com/ROCm/rocm-systems.git" + url = "https://github.com/ROCm/rocprofiler-systems/archive/refs/tags/rocm-6.4.3.tar.gz" + executables = ["rocprof-sys-sample"] + tags = ["rocm"] - maintainers("dgaliffiAMD", "afzpatel", "srekolam", "renjithravindrankannath", "wilephan-amd") + maintainers("dgaliffiAMD", "afzpatel", "srekolam", "renjithravindrankannath") license("MIT") - version("amd-mainline", branch="amd-mainline", submodules=True, deprecated=True) - version("amd-staging", branch="amd-staging", submodules=True, deprecated=True) + version( + "7.2.3", + tag="rocm-7.2.3", + commit="c2d94761153e1033a91744842dfc66eddd631fde", + submodules=submodules, + ) + version( + "7.2.1", + git="https://github.com/ROCm/rocm-systems.git", + tag="rocm-7.2.1", + commit="e1a6bc5663304b9c586b3254b8920f2981057804", + submodules=submodules, + ) + version( + "7.2.0", + git="https://github.com/ROCm/rocm-systems.git", + tag="rocm-7.2.0", + commit="fc0010cf6a5a972d42b276df946510f30343d493", + submodules=submodules, + ) + version( + "7.1.1", + git="https://github.com/ROCm/rocprofiler-systems", + branch="release/rocm-rel-7.1.1", + submodules=True, + ) + version( + "7.1.0", + git="https://github.com/ROCm/rocprofiler-systems", + tag="rocm-7.1.0", + commit="427f656162559f21fc3d6cb0e3688f3d31ae374c", + submodules=True, + ) + version( + "7.0.2", + git="https://github.com/ROCm/rocprofiler-systems", + tag="rocm-7.0.2", + commit="8bad624afb06ea2b567e985484d1b5d604865743", + submodules=True, + ) + version( + "7.0.0", + git="https://github.com/ROCm/rocprofiler-systems", + tag="rocm-7.0.0", + commit="1030d99db9934a07f1d276f6aadd0eb810b5f5f9", + submodules=True, + ) + version( + "6.4.3", + git="https://github.com/ROCm/rocprofiler-systems", + tag="rocm-6.4.3", + commit="ba0bfe8cf344294347cbb854084ab5b5df1b1a43", + submodules=True, + ) + version( + "6.4.2", + git="https://github.com/ROCm/rocprofiler-systems", + tag="rocm-6.4.2", + commit="ba0bfe8cf344294347cbb854084ab5b5df1b1a43", + submodules=True, + ) version( "6.4.1", git="https://github.com/ROCm/rocprofiler-systems", @@ -106,7 +183,11 @@ class RocprofilerSystems(CMakePackage): "(target application can use any MPI installation)" ), ) + variant("internal-dyninst", default=False, description="build internal dyninst") + variant("internal-tbb", default=False, description="build internal tbb") + conflicts("%rocmcc", when="+internal-tbb") + conflicts("%clang", when="+internal-tbb") extends("python", when="+python") depends_on("c", type="build") # generated @@ -115,7 +196,22 @@ class RocprofilerSystems(CMakePackage): # hard dependencies depends_on("cmake@3.16:", type="build") - depends_on("dyninst@:12") + depends_on("dyninst@:12", when="@6 ~internal-dyninst") + depends_on("dyninst@13", when="@7 ~internal-dyninst") + depends_on( + "boost@:1.88" + "+atomic+chrono+date_time+filesystem+system+thread+timer+container+random+exception", + when="@:7.1.0 +internal-dyninst", + ) + depends_on( + "boost@:1.88" + "+atomic+chrono+date_time+filesystem+system+thread+timer+container+random+exception", + when="@7.1.1:", + ) + depends_on("libiberty+pic", when="+internal-dyninst") + depends_on("intel-tbb@2019:2020.3", when="~internal-tbb") + depends_on("sqlite", when="@7.1:") + depends_on("elfutils") depends_on("m4") depends_on("texinfo") depends_on("libunwind", type=("build", "run")) @@ -128,15 +224,73 @@ class RocprofilerSystems(CMakePackage): depends_on("autoconf", when="+rocm") depends_on("automake", when="+rocm") depends_on("libtool", when="+rocm") + depends_on("sqlite", when="@7.1:") with when("+rocm"): - for ver in ["6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: - depends_on(f"rocm-smi-lib@{ver}", when=f"@{ver}") - depends_on(f"hip@{ver}", when=f"@{ver}") + for ver in ["6.3.0", "6.3.1", "6.3.2", "6.3.3"]: depends_on(f"roctracer-dev@{ver}", when=f"@{ver}") depends_on(f"rocprofiler-dev@{ver}", when=f"@{ver}") - for ver in ["6.4.0", "6.4.1"]: + + for ver in ["6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1", "6.4.2", "6.4.3"]: + depends_on(f"rocm-smi-lib@{ver}", when=f"@{ver}") + + for ver in [ + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: + depends_on(f"hip@{ver}", when=f"@{ver}") + + for ver in [ + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"rocprofiler-sdk@{ver}", when=f"@{ver}") + for ver in ["7.0.0", "7.0.2", "7.1.0", "7.1.1", "7.2.0", "7.2.1", "7.2.3"]: + depends_on(f"amdsmi@{ver}", when=f"@{ver}") + + # Fix GCC 13 build failure caused by a missing include of in dyninst + patch( + "https://github.com/ROCm/dyninst/commit/09e781d414c83b4ad587083d449a3e976546937d.patch?full_index=1", + sha256="e64c6b75393e7fbd711c0bd0233628c176a352cd10b4057f00eec283426eaf0a", + when="@:6.4.0 +internal-dyninst", + working_dir="external/dyninst", + ) + patch( + "https://github.com/ROCm/timemory/commit/b5e41aa9e4b83ab0868211d81924ac4f639bd998.patch?full_index=1", + sha256="2696f59dd9b6e74bf44bfcc56a0536c3f1f3845c29fac18f0224dee72bd9225f", + when="%rocmcc", + working_dir="external/timemory", + ) + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@:7.1"): + return "." + else: + return "projects/rocprofiler-systems" + def cmake_args(self): spec = self.spec @@ -147,7 +301,7 @@ def cmake_args(self): self.define("ROCPROFSYS_BUILD_LIBUNWIND", False), self.define("ROCPROFSYS_BUILD_STATIC_LIBGCC", False), self.define("ROCPROFSYS_BUILD_STATIC_LIBSTDCXX", False), - self.define("ROCPROFSYS_BUILD_DYNINST", False), + self.define_from_variant("ROCPROFSYS_BUILD_DYNINST", "internal-dyninst"), self.define_from_variant("ROCPROFSYS_BUILD_LTO", "ipo"), self.define_from_variant("ROCPROFSYS_USE_MPI", "mpi"), self.define_from_variant("ROCPROFSYS_USE_OMPT", "ompt"), @@ -157,6 +311,7 @@ def cmake_args(self): self.define_from_variant("ROCPROFSYS_USE_MPI_HEADERS", "mpi_headers"), self.define_from_variant("ROCPROFSYS_STRIP_LIBRARIES", "strip"), self.define_from_variant("ROCPROFSYS_INSTALL_PERFETTO_TOOLS", "perfetto_tools"), + self.define("ElfUtils_ROOT_DIR", spec["elfutils"].prefix), # timemory arguments self.define("TIMEMORY_BUILD_CALIPER", False), self.define_from_variant("TIMEMORY_USE_TAU", "tau"), @@ -183,14 +338,30 @@ def cmake_args(self): args.append( self.define("libunwind_INCLUDE_DIR", self.spec["libunwind"].prefix.include) ) + if spec.satisfies("@7.0:"): + args.append(self.define_from_variant("ROCPROFSYS_BUILD_TBB", "internal-tbb")) + if spec.satisfies("+internal-dyninst"): + args.append(self.define_from_variant("DYNINST_BUILD_TBB", "internal-tbb")) + if spec.satisfies("@7.2:"): + args.append(self.define("libunwind_ROOT", self.spec["libunwind"].prefix)) return args def flag_handler(self, name, flags): - if self.spec.satisfies("@6.3:"): + if self.spec.satisfies("@6.3:7.1"): if name == "ldflags": flags.append("-lintl") return (flags, None, None) + @classmethod + def determine_version(cls, exe): + output = Executable(exe)("--version", output=str, error=str) + match = re.search(r"rocm: v(\d+)\.(\d+)", output) + if match: + ver = "{0}.{1}".format(int(match.group(1)), int(match.group(2))) + else: + ver = None + return ver + def setup_build_environment(self, env: EnvironmentModifications) -> None: if "+tau" in self.spec: import glob diff --git a/repos/spack_repo/builtin/packages/rocpydecode/package.py b/repos/spack_repo/builtin/packages/rocpydecode/package.py index 1401668c7a3..15b93643b6d 100644 --- a/repos/spack_repo/builtin/packages/rocpydecode/package.py +++ b/repos/spack_repo/builtin/packages/rocpydecode/package.py @@ -12,10 +12,21 @@ class Rocpydecode(CMakePackage): full HW acceleration for video decoding on AMD GPUs.""" homepage = "https://github.com/ROCm/rocPyDecode" - url = "https://github.com/ROCm/rocPyDecode/archive/refs/tags/rocm-6.2.0.tar.gz" + url = "https://github.com/ROCm/rocPyDecode/archive/refs/tags/rocm-6.4.3.tar.gz" + tags = ["rocm"] maintainers("afzpatel", "srekolam", "renjithravindrankannath") + libraries = ["rocpydecode.cpython", "rocpyjpegdecode.cpython"] + version("7.2.3", sha256="b0c4abd1b1811b6950f76c698a855d0bae2e6694ce37e44ee8a172098a3b4aad") + version("7.2.1", sha256="68736587beff68ab10e591b80c02804b104a16f54b0f3069a8a01e364171be35") + version("7.2.0", sha256="e91a48734df8d4ce769b8979f2a1350a86705d38035c29618dff674471c9d026") + version("7.1.1", sha256="8946730b6159350b896f9704b3ed485fa376e502d9b68f0cef68d09ab8260fab") + version("7.1.0", sha256="7e9feeb0dd7d975f04364730cdf2b194d8e8d6bcc62aa983bc99509d9c6366d1") + version("7.0.2", sha256="fa8215316966198086ff24c1ba7646e69d105b8bd1df1f90b829a6ca3b8f383e") + version("7.0.0", sha256="f4245da75ba7bd27d3dbd39ecae89255e6d2b8c2096e579f812708f28b08716d") + version("6.4.3", sha256="d9dc540ab8d6cfd979016abeab9cfc79063e81647a32d9eeffd834a9d008f1e3") + version("6.4.2", sha256="d51f2dde62c6e581b0d3676fbd74b36802b4f97bbfc3f82baee76097affca685") version("6.4.1", sha256="2b74cb18d2f54664dbf1fa2063c7957e3c849fe6673e279d14aefe3712e187ff") version("6.4.0", sha256="c7fd47f98dc0ef005a0fda0dc73e71e1d5318901d038489ba69f51473b7aca6a") version("6.3.3", sha256="df45b4a64ed3e550229fd91bcf7896d1a8fe377dd1ff88d2e6a71897b981180d") @@ -30,8 +41,31 @@ class Rocpydecode(CMakePackage): depends_on("ffmpeg@4.4:6") depends_on("dlpack") - for ver in ["6.2.0", "6.2.1", "6.2.4", "6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: + for ver in [ + "6.2.0", + "6.2.1", + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"rocdecode@{ver}", when=f"@{ver}") + depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") + + for ver in ["7.0.0", "7.0.2", "7.1.0", "7.1.1", "7.2.0", "7.2.1", "7.2.3"]: + depends_on(f"rocjpeg@{ver}", when=f"@{ver}") def patch(self): filter_file( @@ -52,6 +86,13 @@ def patch(self): "CMakeLists.txt", string=True, ) + if self.spec.satisfies("@7.0:"): + filter_file( + r"${ROCM_PATH}/include/rocdecode", + self.spec["rocdecode"].prefix.include.rocdecode, + "CMakeLists.txt", + string=True, + ) def cmake_args(self): args = [ diff --git a/repos/spack_repo/builtin/packages/rocrand/package.py b/repos/spack_repo/builtin/packages/rocrand/package.py index 3fda41ac041..e821e803e02 100644 --- a/repos/spack_repo/builtin/packages/rocrand/package.py +++ b/repos/spack_repo/builtin/packages/rocrand/package.py @@ -15,15 +15,29 @@ class Rocrand(CMakePackage): pseudo-random and quasi-random numbers.""" homepage = "https://github.com/ROCm/rocRAND" - git = "https://github.com/ROCm/rocRAND.git" - url = "https://github.com/ROCm/rocRAND/archive/rocm-6.0.2.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("cgmb", "srekolam", "renjithravindrankannath", "afzpatel") libraries = ["librocrand"] - license("MIT") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/rocRAND/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="15c33c595aa8e4de1d8b3736df9eaf2ceba7914ffebe718f0997b0da28215d9e") + version("7.1.0", sha256="616c2f61a4e05d8f07e4f95a26c1f031e66092cbf45354fe64c62becc9dcb751") + version("7.0.2", sha256="ee0fee0ee7d3b59aafba8f9935c28c528363f941b42eea05045023c27e61938d") + version("7.0.0", sha256="b8539339d1538d1aae69b7b77e62eee00c8586001b996f1c8af0c7579e85a9a6") + version("6.4.3", sha256="6d174b679c1829e1740d8cb2a59bb43b7a34bd42e9234026860762ead90cccf9") + version("6.4.2", sha256="43b370e7f4acb44a0eb4a403f658a3b3db2f748dbf5d9582014c20cb3ba8329c") version("6.4.1", sha256="690f8edc7789719876cf6119e58aa1335b4ca17b775a753dffb9a07000af9df7") version("6.4.0", sha256="689bc7de81741a0b3feb9f4415a55c2cf1ae58a378fbd9b1a33769caf62bbf95") version("6.3.3", sha256="d55be9d367af28d87d983d649329b7ef04641e74d39064b98aeee4b9980af4eb") @@ -40,9 +54,6 @@ class Rocrand(CMakePackage): version("6.0.0", sha256="cee93231c088be524bb2cb0e6093ec47e62e61a55153486bebbc2ca5b3d49360") version("5.7.1", sha256="885cd905bbd23d02ba8f3f87d5c0b79bc44bd020ea9af190f3959cf5aa33d07d") version("5.7.0", sha256="d6053d986821e5cbc6cfec0778476efb1411ef943f11e7a8b973b1814a259dcf") - with default_args(deprecated=True): - version("5.6.1", sha256="6bf71e687ffa0fcc1b00e3567dd43da4147a82390f1b2db5e6f1f594dee6066d") - version("5.6.0", sha256="cc894d2f1af55e16b62c179062063946609c656043556189c656a115fd7d6f5f") amdgpu_targets = ROCmPackage.amdgpu_targets @@ -66,8 +77,6 @@ class Rocrand(CMakePackage): depends_on("googletest@1.10.0:", type="test") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -84,10 +93,26 @@ class Rocrand(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/rocrand" + else: + return "." + def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("CXX", self.spec["hip"].hipcc) if self.spec.satisfies("+asan"): @@ -111,7 +136,10 @@ def cmake_args(self): args = [self.define("BUILD_BENCHMARK", "OFF"), self.define("BUILD_TEST", self.run_tests)] if "auto" not in self.spec.variants["amdgpu_target"]: - args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) + if self.spec.satisfies("@7.1:"): + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) + else: + args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) if self.spec.satisfies("^cmake@3.21.0:3.21.2"): args.append(self.define("__skip_rocmclang", "ON")) diff --git a/repos/spack_repo/builtin/packages/rocshmem/package.py b/repos/spack_repo/builtin/packages/rocshmem/package.py index e43f93baf71..ab235c68bc5 100644 --- a/repos/spack_repo/builtin/packages/rocshmem/package.py +++ b/repos/spack_repo/builtin/packages/rocshmem/package.py @@ -3,35 +3,66 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary from spack.package import * -class Rocshmem(CMakePackage): +class Rocshmem(ROCmLibrary, CMakePackage): """rocSHMEM intra-kernel networking runtime for AMD dGPUs on the ROCm platform.""" homepage = "https://github.com/ROCm/rocSHMEM" url = "https://github.com/ROCm/rocSHMEM/archive/refs/tags/rocm-6.4.0.tar.gz" + tags = ["rocm"] maintainers("afzpatel", "srekolam", "renjithravindrankannath") + libraries = ["librocshmem"] license("MIT") + + version("7.2.3", sha256="ed409d703ccc7bc07baf1e7e046c322441b2a5e83b95e4acf0ea2bd2585e71e2") + version("7.2.1", sha256="03484b56547b8a5905cec34707e59105d23e4576f0b87c3bb6abb052f58bd0ae") + version("7.2.0", sha256="22c6851287e635bfa1bf0b23b98d6142440b3ab366d15e2203da362c1497341d") + version("7.1.1", sha256="610018ac57b5b56954da3ae0d6b5a64fb72fc3228f2e69085c4cd61f901820a8") + version("7.1.0", sha256="6092bd05976e73262cbb7f48dc55718db389100ad1b36e3baa01db401f0ca222") + version("7.0.2", sha256="63f5bb31e969c0d38f331e992e7cfd130802a8f66cec9d1fc6bfa73b282ed06a") + version("7.0.0", sha256="90d9a9915b0ba069b7b6f00b05525c476fa6c4942e4f53d0ba16d911ec68ff94") + version("6.4.3", sha256="96efeed8640862d9e35e4d8ffe9e6cbfa8efcd9be303e457fd2909f34d776fd8") + version("6.4.2", sha256="ec070adb6db0622c0c86739db5cb3dcfc40149980bcc49a24b0f5aeea64a0e09") version("6.4.1", sha256="35424f49b1060567a63045480eef6c9715ebf9f755f39c2cec2fbf447cce72de") version("6.4.0", sha256="fbc8b6a7159901fdeda0d6cc8b97f20740c6cce59ba4a28c2050658cc1eecb81") depends_on("c", type="build") depends_on("cxx", type="build") - for ver in ["6.4.0", "6.4.1"]: + for ver in [ + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"rocm-cmake@{ver}", when=f"@{ver}") depends_on(f"hsa-rocr-dev@{ver}", when=f"@{ver}") depends_on(f"rocprim@{ver}", when=f"@{ver}") depends_on(f"rocthrust@{ver}", when=f"@{ver}") + for ver in ["7.0.0", "7.0.2", "7.1.0", "7.1.1", "7.2.0"]: + depends_on(f"rocm-core@{ver}", when=f"@{ver}") depends_on("ucx@1.17: +rocm") depends_on("openmpi@5.0.6: fabrics=ucx") def cmake_args(self): - args = [self.define("USE_GPU_IB", False)] + args = [] + if self.spec.satisfies("@6.4"): + args.append(self.define("USE_GPU_IB", False)) + if self.spec.satisfies("@7.1:"): + args.append(self.define("ROCM_PATH", self.spec["rocm-core"].prefix)) return args diff --git a/repos/spack_repo/builtin/packages/rocsolver/package.py b/repos/spack_repo/builtin/packages/rocsolver/package.py index a5e257c1a70..6999c943b51 100644 --- a/repos/spack_repo/builtin/packages/rocsolver/package.py +++ b/repos/spack_repo/builtin/packages/rocsolver/package.py @@ -2,7 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import itertools import re from spack_repo.builtin.build_systems.cmake import CMakePackage @@ -16,12 +15,19 @@ class Rocsolver(CMakePackage): subset of LAPACK functionality on the ROCm platform.""" homepage = "https://github.com/ROCm/rocSOLVER" - git = "https://github.com/ROCm/rocSOLVER.git" - url = "https://github.com/ROCm/rocSOLVER/archive/rocm-6.2.4.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("cgmb", "srekolam", "renjithravindrankannath", "haampie", "afzpatel") libraries = ["librocsolver"] + license("BSD-2-Clause") + + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/rocSOLVER/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) amdgpu_targets = ROCmPackage.amdgpu_targets @@ -44,8 +50,15 @@ class Rocsolver(CMakePackage): conflicts("+asan", when="os=centos7") conflicts("+asan", when="os=centos8") - license("BSD-2-Clause") - + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="15a29454239dbbac34219d484247f5721d4af08ca1b1f3973ebcbd7895184ae6") + version("7.1.0", sha256="643100d6e225eb0d6d26cdc485df79ddd6e7938519e4d74d6f3e8c26d22c5cf2") + version("7.0.2", sha256="675c7cdc0e582f93d81d2dcd953ea567f040cbeb300ccd2db61cad4a07ca1d5b") + version("7.0.0", sha256="635bbf625d81e11afc70f6c0e23212ed13ea20ea50cf995d3dfa0e4636c19558") + version("6.4.3", sha256="6c2c6019eaf49abb30fc54f09b3d755ebcfbbd30d9b71052aa13bb0cbc26d2bb") + version("6.4.2", sha256="fe78538ead2ce9a95abbec74bc2c85408d5224f80b4816520e2d55d6b0188935") version("6.4.1", sha256="d27d3e0a59fbe1fb82172f545e38857643bb86fa1cd69ba51e9e292440a785c6") version("6.4.0", sha256="48930842ac441a6a5d7e25d6c5c6ac6b5fe26549a1add49a102b374e02f5b60e") version("6.3.3", sha256="0e8bb906513555d349b6a20cb17976402f5ea6702668efcdda595a2e2d516b46") @@ -62,22 +75,18 @@ class Rocsolver(CMakePackage): version("6.0.0", sha256="5fcaba96f3efafc2ecc3f4ec104095d96545c16e1b9f95410bd571cb0fc643ae") version("5.7.1", sha256="83e0c137b8690dbeb2e85d9e25415d96bd06979f09f2b10b2aff8e4c9f833fa4") version("5.7.0", sha256="bb16d360f14b34fe6e8a6b8ddc6e631672a5ffccbdcb25f0ce319edddd7f9682") - with default_args(deprecated=True): - version("5.6.1", sha256="6a8f366218aee599a0e56755030f94ee690b34f30e6d602748632226c5dc21bb") - version("5.6.0", sha256="54baa7f35f3c53da9005054e6f7aeecece5526dafcb277af32cbcb3996b0cbbc") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("cmake@3.8:", type="build") - depends_on("fmt@7:8.0.1", type="test", when="@5.6:") + depends_on("fmt@7:8.0.1", type="test") + depends_on("fortran", type="build") depends_on("googletest@1.10.0:", type="test") depends_on("netlib-lapack@3.7.1:", type="test") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -94,14 +103,28 @@ class Rocsolver(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hip@{ver}", when=f"@{ver}") - depends_on(f"rocblas@{ver}", when=f"@{ver}") depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") - depends_on(f"rocsparse@{ver}", when=f"@{ver}") + for tgt in ROCmPackage.amdgpu_targets: + depends_on(f"rocsparse@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + depends_on(f"rocblas@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") - for tgt in itertools.chain(["auto"], amdgpu_targets): - depends_on(f"rocblas amdgpu_target={tgt}", when=f"amdgpu_target={tgt}") + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/rocsolver" + else: + return "." @classmethod def determine_version(cls, lib): @@ -124,12 +147,15 @@ def cmake_args(self): tgt = self.spec.variants["amdgpu_target"] if "auto" not in tgt: - args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) + if self.spec.satisfies("@7.1:"): + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) + else: + args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) if self.spec.satisfies("^cmake@3.21.0:3.21.2"): args.append(self.define("__skip_rocmclang", "ON")) - if self.spec.satisfies("@5.6.0:6.3.1"): + if self.spec.satisfies("@:6.3.1"): args.append(self.define("BUILD_FILE_REORG_BACKWARD_COMPATIBILITY", True)) return args diff --git a/repos/spack_repo/builtin/packages/rocsparse/package.py b/repos/spack_repo/builtin/packages/rocsparse/package.py index 91bf75476bc..39b4f98f76a 100644 --- a/repos/spack_repo/builtin/packages/rocsparse/package.py +++ b/repos/spack_repo/builtin/packages/rocsparse/package.py @@ -18,12 +18,19 @@ class Rocsparse(CMakePackage): language and optimized for AMD's latest discrete GPUs.""" homepage = "https://github.com/ROCm/rocSPARSE" - git = "https://github.com/ROCm/rocSPARSE.git" - url = "https://github.com/ROCm/rocSPARSE/archive/rocm-6.2.4.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("cgmb", "srekolam", "renjithravindrankannath", "afzpatel") libraries = ["librocsparse"] + license("MIT") + + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/rocSPARSE/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) amdgpu_targets = ROCmPackage.amdgpu_targets @@ -40,8 +47,15 @@ class Rocsparse(CMakePackage): conflicts("+asan", when="os=centos7") conflicts("+asan", when="os=centos8") - license("MIT") - + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="420321039b1471a67318a9bccce749ed2293e4aa4615ef9d1b74ed4e03977ee0") + version("7.1.0", sha256="cdad45e7b23e91a9107e512d9205ef58dcdfaea506b6e5fce3701a2b6e96952c") + version("7.0.2", sha256="26dd7df3c470f877d0f9ab15dccdac1915a3939e2ab9e00a83342c6edf289c8a") + version("7.0.0", sha256="22aeb42b8c300a40ae29001781a92da8e396a2e42c4dce1abf66276552fca39e") + version("6.4.3", sha256="fca59e70da33a046be36ea2fe83ba18ea8f0a5c9efd255e0427802ba3a134d0a") + version("6.4.2", sha256="30c0b6c2aaa3686a94150d69560a96697551088d1ee9595a1c5feb7c10fd9501") version("6.4.1", sha256="f44db33179d5f8e18f948ff3ac8bd9b59f7bfdd67c66a7972ef1ee0eb15872de") version("6.4.0", sha256="a0fb423b80da72f072a6d80b9837c80c671b5fae719f57c0e83d7e4e27d3d187") version("6.3.3", sha256="e316d46b40e99976f4acaa097d6ebf5c2caf1ff2bd3c5b1de04c93c1dac90516") @@ -58,9 +72,6 @@ class Rocsparse(CMakePackage): version("6.0.0", sha256="bdc618677ec78830c6af315d61194d6ab8532345b8daeeb115aca96f274d4ca4") version("5.7.1", sha256="4c09b182b371124675d4057246021b5ed45e2833fdbf265b37a9b06b668baf0a") version("5.7.0", sha256="a42f0eb531b015b719e2bdcdff0cfb214e9894f73107966260f26931f982ecbc") - with default_args(deprecated=True): - version("5.6.1", sha256="6a50a64354507f1374e1a86aa7f5c07d1aaa96ac193ac292c279153087bb5d54") - version("5.6.0", sha256="5797db3deb4a532e691447e3e8c923b93bd9fe4c468f3a88f00cecd80bebcae4") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -69,8 +80,6 @@ class Rocsparse(CMakePackage): depends_on("cmake@3.5:", type="build") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -87,13 +96,26 @@ class Rocsparse(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hip@{ver}", when=f"@{ver}") - depends_on(f"rocprim@{ver}", when=f"@{ver}") + for tgt in ROCmPackage.amdgpu_targets: + depends_on(f"rocprim@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") - depends_on("googletest@1.11.0:", when="@5.6.0: +test") - depends_on("googletest@1.10.0:", when="+test") + for ver in ["7.2.0", "7.2.1", "7.2.3"]: + for tgt in ROCmPackage.amdgpu_targets: + depends_on(f"rocblas@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") + + depends_on("googletest@1.11.0:", when="+test") depends_on("python@3:", type="build", when="+test") depends_on("py-pyyaml", type="build", when="+test") @@ -243,6 +265,13 @@ class Rocsparse(CMakePackage): destination="mtx", ) + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/rocsparse" + else: + return "." + @run_after("build") def check_build(self): if self.spec.satisfies("+test"): @@ -280,11 +309,14 @@ def cmake_args(self): ] if "auto" not in self.spec.variants["amdgpu_target"]: - args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) + if self.spec.satisfies("@7.1:"): + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) + else: + args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) if self.spec.satisfies("^cmake@3.21.0:3.21.2"): args.append(self.define("__skip_rocmclang", "ON")) - if self.spec.satisfies("@5.6.0:6.3.1"): + if self.spec.satisfies("@:6.3.1"): args.append(self.define("BUILD_FILE_REORG_BACKWARD_COMPATIBILITY", True)) return args diff --git a/repos/spack_repo/builtin/packages/rocthrust/package.py b/repos/spack_repo/builtin/packages/rocthrust/package.py index 78599a7d6f8..6c4f086f362 100644 --- a/repos/spack_repo/builtin/packages/rocthrust/package.py +++ b/repos/spack_repo/builtin/packages/rocthrust/package.py @@ -15,12 +15,27 @@ class Rocthrust(CMakePackage): library works on HIP/ROCm platforms""" homepage = "https://github.com/ROCm/rocThrust" - git = "https://github.com/ROCm/rocThrust.git" - url = "https://github.com/ROCm/rocThrust/archive/rocm-6.1.0.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("cgmb", "srekolam", "renjithravindrankannath", "afzpatel") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/rocThrust/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="995f9498402f207d04aac1edeb845abea295f6f132151ae1e04a6f0d0dc5edf5") + version("7.1.0", sha256="12b83d4e06b72019d213c2627da32a8d913b0d8acf7d89a9d2ef81e42143456d") + version("7.0.2", sha256="931b7db032e1a9d4bc571be03a8c0f1880957851527a53a71ca38e7d6a2fc695") + version("7.0.0", sha256="0b466f9f29f7fae8f625c04760297480692219b612fdb1869ab8991524f2a8e6") + version("6.4.3", sha256="58ab36c901d347a6e989d0103b6c24b907361a4258fa1bbbfb3dca7ae0a2f066") + version("6.4.2", sha256="a9d84f29435e039c33d236fce9ce91da15f2fc6d6ef7dd391d75af9559441780") version("6.4.1", sha256="1b50e504b81ddadc4cf086aa48e4dbff26e6e0051fc48bf3b0438308890114d6") version("6.4.0", sha256="b590b69cfecf30b66202e426ad1adcb577651d72ed9dd7425281b5668e6262fe") version("6.3.3", sha256="564f5b2621bc707c0dda0d09702642876fc4d1b8cd9a83d1324539b768653e8b") @@ -37,9 +52,6 @@ class Rocthrust(CMakePackage): version("6.0.0", sha256="a3fdafe4b6124118e07f23a3b0270d91740da324f61aaa3e8c034da08d9312b1") version("5.7.1", sha256="b7cb9ea6c42b2c6b610c34d2c438443e0f99245bd391aff18591949bf1cd53ee") version("5.7.0", sha256="64e10f071acfc5b8e3c168b9178289cf1afc7b168bf1962793fc256b25074d3a") - with default_args(deprecated=True): - version("5.6.1", sha256="63df61d5ab46d4cfda6066d748274bacecc77151692e372e6f7df5e91852bdc2") - version("5.6.0", sha256="e52a27bcb4add38a5f0f3a5c7e409c230bf4ba9afae19bd2e06c2be00d39db59") amdgpu_targets = ROCmPackage.amdgpu_targets @@ -60,8 +72,6 @@ class Rocthrust(CMakePackage): depends_on("googletest@1.10.0:", type="test") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -78,11 +88,27 @@ class Rocthrust(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"rocprim@{ver}", when=f"@{ver}") depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/rocthrust" + else: + return "." + def check(self): with working_dir(self.build_directory): make("test") @@ -102,7 +128,7 @@ def cmake_args(self): if self.spec.satisfies("^cmake@3.21.0:3.21.2"): args.append(self.define("__skip_rocmclang", "ON")) - if self.spec.satisfies("@5.6.0:6.3.1"): + if self.spec.satisfies("@:6.3.1"): args.append(self.define("BUILD_FILE_REORG_BACKWARD_COMPATIBILITY", True)) return args diff --git a/repos/spack_repo/builtin/packages/roctracer_dev/package.py b/repos/spack_repo/builtin/packages/roctracer_dev/package.py index 4e521df3577..f5c07aca0af 100644 --- a/repos/spack_repo/builtin/packages/roctracer_dev/package.py +++ b/repos/spack_repo/builtin/packages/roctracer_dev/package.py @@ -16,15 +16,29 @@ class RoctracerDev(CMakePackage, ROCmPackage): specific runtime profiler to trace API and asyncronous activity.""" homepage = "https://github.com/ROCm/roctracer" - git = "https://github.com/ROCm/roctracer.git" - url = "https://github.com/ROCm/roctracer/archive/rocm-6.1.2.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-systems.git" + tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") libraries = ["libroctracer64"] - license("MIT") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/roctracer/archive/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-systems/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b") + version("7.2.1", sha256="201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f") + version("7.2.0", sha256="728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638") + version("7.1.1", sha256="dec80803c6d2d684759172145177849efda65672645b95a2f2ad1a84335043bb") + version("7.1.0", sha256="a90077e2080531803dac154e64d6d481289a5839493ce131c4edc8b5ac1bc294") + version("7.0.2", sha256="c9dc54fc8b68a7598b3e9453f7962a87cb02e86d64e5681452ebafd62fb85e96") + version("7.0.0", sha256="c1f435b8040c6d34720eeadf837bc888b1c5aaccbfd7efaff4d602f1957f812f") + version("6.4.3", sha256="a4378652b3b7141ca3b2743eedada03757383bff88932db8e28d0afd5869b882") + version("6.4.2", sha256="c9bc3390fe4c406cc2b2bdb5a7e9f088e0107825624c9cd7b2a6ec120bc73ef8") version("6.4.1", sha256="57d61441d95b05b12cd05210a80d81cd1d7a21dab7487680897427dfbdafddca") version("6.4.0", sha256="e5c6e3b20ed3c0d2dca61ad472f9878107c9ce09a2108ff6583ae32031298022") version("6.3.3", sha256="0d03ebd058291d584be6bf8b114292c666a799b0fd23c697e1c6cb2b6d43f990") @@ -41,9 +55,6 @@ class RoctracerDev(CMakePackage, ROCmPackage): version("6.0.0", sha256="941166a0363c5689bfec118d54e986c43fb1ec8cbf18d95721d9a824bd52c0f8") version("5.7.1", sha256="ec0453adac7e62b142eb0df1e1e2506863aac4c3f2ce9d117c3184c08c0c6b48") version("5.7.0", sha256="40bb757920488466e29df90bb80a975cc340bf7f8771fb1d754dfbb6b688d78e") - with default_args(deprecated=True): - version("5.6.1", sha256="007c498be25b067ad9a7631a2b0892f9129150ee9714e471a921225875d45e69") - version("5.6.0", sha256="cbcfe4fa2e8b627006b320a93992fb3078696d8ef2ef049b4b880b6b7d57e13e") variant("asan", default=False, description="Build with address-sanitizer enabled or disabled") @@ -55,8 +66,6 @@ class RoctracerDev(CMakePackage, ROCmPackage): depends_on("py-cppheaderparser", type="build") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -71,8 +80,6 @@ class RoctracerDev(CMakePackage, ROCmPackage): depends_on(f"hsakmt-roct@{ver}", when=f"@{ver}") for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -89,11 +96,21 @@ class RoctracerDev(CMakePackage, ROCmPackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on(f"rocm-core@{ver}", when=f"@{ver}") depends_on(f"hsa-rocr-dev@{ver}", when=f"@{ver}") depends_on(f"rocminfo@{ver}", when=f"@{ver}") - depends_on(f"hip@{ver}", when=f"@{ver}") + depends_on(f"hip@{ver} +rocm", when=f"@{ver}") + depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") @classmethod def determine_version(cls, lib): @@ -104,22 +121,6 @@ def determine_version(cls, lib): ) return None - def patch(self): - filter_file( - r"${CMAKE_PREFIX_PATH}/hsa", - "${HSA_RUNTIME_INC_PATH}", - "src/CMakeLists.txt", - string=True, - ) - with working_dir("script"): - filter_file( - "^#!/usr/bin/python[23]", - f"#!{self.spec['python'].command.path}", - "check_trace.py", - "gen_ostream_ops.py", - "hsaap.py", - ) - def setup_build_environment(self, env: EnvironmentModifications) -> None: if self.spec.satisfies("+asan"): self.asan_on(env) @@ -138,6 +139,13 @@ def cmake_args(self): args.append(self.define("Clang_DIR", self.spec["llvm-amdgpu"].prefix.lib.cmake.clang)) return args + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/roctracer" + else: + return "." + @run_after("install") def post_install(self): if self.spec.satisfies("@6.0:"): diff --git a/repos/spack_repo/builtin/packages/roctracer_dev_api/package.py b/repos/spack_repo/builtin/packages/roctracer_dev_api/package.py index 31aa084ca69..a2d32186d84 100644 --- a/repos/spack_repo/builtin/packages/roctracer_dev_api/package.py +++ b/repos/spack_repo/builtin/packages/roctracer_dev_api/package.py @@ -13,13 +13,29 @@ class RoctracerDevApi(Package): For the ROC-tracer library, please check out roctracer-dev.""" homepage = "https://github.com/ROCm/roctracer" - git = "https://github.com/ROCm/roctracer.git" - url = "https://github.com/ROCm/roctracer/archive/refs/tags/rocm-6.4.1.tar.gz" - tags = ["rocm"] + git = "https://github.com/ROCm/rocm-systems.git" + url = "https://github.com/ROCm/roctracer/archive/refs/tags/rocm-6.4.3.tar.gz" + tags = ["rocm"] + maintainers("srekolam", "renjithravindrankannath", "afzpatel") license("MIT") - maintainers("srekolam", "renjithravindrankannath", "afzpatel") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/roctracer/archive/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-systems/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="e90cfd8694af28a56433c8827a581ee12a4ba835f0d952436741d9e0f3f8685b") + version("7.2.1", sha256="201f19174eafbace2f7abf0d1178ebb17db878191276aba6d23f0e1758b0e10f") + version("7.2.0", sha256="728ea7e9bf16e6ed217a0fd1a8c9afaba2dae2e7908fa4e27201e67c803c5638") + version("7.1.1", sha256="dec80803c6d2d684759172145177849efda65672645b95a2f2ad1a84335043bb") + version("7.1.0", sha256="a90077e2080531803dac154e64d6d481289a5839493ce131c4edc8b5ac1bc294") + version("7.0.2", sha256="c9dc54fc8b68a7598b3e9453f7962a87cb02e86d64e5681452ebafd62fb85e96") + version("7.0.0", sha256="c1f435b8040c6d34720eeadf837bc888b1c5aaccbfd7efaff4d602f1957f812f") + version("6.4.3", sha256="a4378652b3b7141ca3b2743eedada03757383bff88932db8e28d0afd5869b882") + version("6.4.2", sha256="c9bc3390fe4c406cc2b2bdb5a7e9f088e0107825624c9cd7b2a6ec120bc73ef8") version("6.4.1", sha256="57d61441d95b05b12cd05210a80d81cd1d7a21dab7487680897427dfbdafddca") version("6.4.0", sha256="e5c6e3b20ed3c0d2dca61ad472f9878107c9ce09a2108ff6583ae32031298022") version("6.3.3", sha256="0d03ebd058291d584be6bf8b114292c666a799b0fd23c697e1c6cb2b6d43f990") @@ -36,14 +52,14 @@ class RoctracerDevApi(Package): version("6.0.0", sha256="941166a0363c5689bfec118d54e986c43fb1ec8cbf18d95721d9a824bd52c0f8") version("5.7.1", sha256="ec0453adac7e62b142eb0df1e1e2506863aac4c3f2ce9d117c3184c08c0c6b48") version("5.7.0", sha256="40bb757920488466e29df90bb80a975cc340bf7f8771fb1d754dfbb6b688d78e") - with default_args(deprecated=True): - version("5.6.1", sha256="007c498be25b067ad9a7631a2b0892f9129150ee9714e471a921225875d45e69") - version("5.6.0", sha256="cbcfe4fa2e8b627006b320a93992fb3078696d8ef2ef049b4b880b6b7d57e13e") depends_on("cxx", type="build") # generated def install(self, spec, prefix): - source_directory = self.stage.source_path + if self.spec.satisfies("@7.2:"): + source_directory = f"{self.stage.source_path}/projects/roctracer" + else: + source_directory = self.stage.source_path include = join_path(source_directory, "inc") def only_headers(p): diff --git a/repos/spack_repo/builtin/packages/rocwmma/0003-Fix-libomp.so-and-libamdhip64.so-not-found-error.patch b/repos/spack_repo/builtin/packages/rocwmma/0003-Fix-libomp.so-and-libamdhip64.so-not-found-error.patch new file mode 100644 index 00000000000..87efc8c160e --- /dev/null +++ b/repos/spack_repo/builtin/packages/rocwmma/0003-Fix-libomp.so-and-libamdhip64.so-not-found-error.patch @@ -0,0 +1,82 @@ +From dfeda07ccdf41fc5f566e5f1039d60b7c71a835e Mon Sep 17 00:00:00 2001 +From: Sreenivasa Murthy Kolam +Date: Tue, 24 Feb 2026 12:03:57 +0530 +Subject: [PATCH] Link with openmp correctly.Fixes libomp.so and libamdhip64.so + not found error for the binaries + +--- + CMakeLists.txt | 19 +++++++++++++++++-- + samples/CMakeLists.txt | 4 +++- + test/CMakeLists.txt | 4 +++- + 3 files changed, 23 insertions(+), 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 81b0050..baab45f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -141,7 +141,22 @@ message(STATUS "GPU_TARGETS=${GPU_TARGETS}") + + find_package( hip REQUIRED ) + find_package( hiprtc REQUIRED ) +-find_package( OpenMP REQUIRED ) ++set(ROCWMMA_USE_OPENMP ON CACHE BOOL "Use OpenMP to improve performance.") ++set(ROCWMMA_USE_HIP ON CACHE BOOL "Use the Hip runtime.") ++ ++if(ROCWMMA_USE_OPENMP) ++ # Workaround for https://gitlab.kitware.com/cmake/cmake/-/issues/21787 ++ # ensures we link to HIP's libomp and get an rpath to it. ++ add_library(custom_openmp_cxx INTERFACE) ++ ++ if(ROCWMMA_USE_HIP) ++ target_compile_options(custom_openmp_cxx INTERFACE "-fopenmp") ++ target_link_options(custom_openmp_cxx INTERFACE "-fopenmp") ++ else () ++ find_package(OpenMP REQUIRED) ++ target_link_libraries(custom_openmp_cxx INTERFACE OpenMP::OpenMP_CXX) ++ endif () ++endif() + + ## Check for ROCM-smi + find_package(rocm_smi PATHS ${ROCM_PATH}/lib/cmake/rocm_smi) +@@ -154,7 +169,7 @@ else() + endif() + + add_library(rocwmma INTERFACE) +-target_link_libraries(rocwmma INTERFACE hip::device hip::host OpenMP::OpenMP_CXX ${ROCM_SMI_LIBRARY}) ++target_link_libraries(rocwmma INTERFACE hip::device hip::host custom_openmp_cxx ${ROCM_SMI_LIBRARY}) + + rocm_install_targets( + TARGETS rocwmma +diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt +index 655f0a1..da3e44c 100644 +--- a/samples/CMakeLists.txt ++++ b/samples/CMakeLists.txt +@@ -40,7 +40,9 @@ function(add_rocwmma_sample TEST_TARGET TEST_SOURCE) + + list(APPEND TEST_SOURCE ${ARGN}) + add_executable(${TEST_TARGET} ${TEST_SOURCE}) +- target_link_libraries(${TEST_TARGET} OpenMP::OpenMP_CXX "-L${HIP_CLANG_ROOT}/lib" "-Wl,-rpath=$ORIGIN/../llvm/lib" "-fno-rtlib-add-rpath") ++ if(ROCWMMA_USE_HIP) ++ target_link_libraries(${TEST_TARGET} custom_openmp_cxx) ++ endif() + target_link_libraries(${TEST_TARGET} rocwmma hiprtc::hiprtc) + target_include_directories(${TEST_TARGET} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 7d055d5..fae4b98 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -88,7 +88,9 @@ function(add_rocwmma_test TEST_TARGET TEST_SOURCE) + list(APPEND TEST_SOURCE ${ARGN}) + add_executable(${TEST_TARGET} ${TEST_SOURCE}) + target_link_libraries(${TEST_TARGET} rocwmma gtest) +- target_link_libraries(${TEST_TARGET} OpenMP::OpenMP_CXX "-L${HIP_CLANG_ROOT}/lib" "-Wl,-rpath=$ORIGIN/../llvm/lib" "-fno-rtlib-add-rpath") ++ if(ROCWMMA_USE_HIP) ++ target_link_libraries(${TEST_TARGET} custom_openmp_cxx) ++ endif() + target_include_directories(${TEST_TARGET} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${ROCWMMA_TEST_INCLUDE_DIRS}) +-- +2.43.0 + diff --git a/repos/spack_repo/builtin/packages/rocwmma/0003-Fix-libopenmp.so-and-libamdhip64.so-not-found-error-7.2.patch b/repos/spack_repo/builtin/packages/rocwmma/0003-Fix-libopenmp.so-and-libamdhip64.so-not-found-error-7.2.patch new file mode 100644 index 00000000000..557d21f05be --- /dev/null +++ b/repos/spack_repo/builtin/packages/rocwmma/0003-Fix-libopenmp.so-and-libamdhip64.so-not-found-error-7.2.patch @@ -0,0 +1,101 @@ +From 29d9c1691b389927e1abfd51d05d55e2fb2868d1 Mon Sep 17 00:00:00 2001 +From: Sreenivasa Murthy Kolam +Date: Tue, 24 Feb 2026 12:11:29 +0530 +Subject: [PATCH] Fix libopenmp.so and libamdhip64.so not found error + +--- + projects/rocwmma/CMakeLists.txt | 25 +++++++++++++++++++++---- + projects/rocwmma/samples/CMakeLists.txt | 6 ++---- + projects/rocwmma/test/CMakeLists.txt | 7 +++---- + 3 files changed, 26 insertions(+), 12 deletions(-) + +diff --git a/projects/rocwmma/CMakeLists.txt b/projects/rocwmma/CMakeLists.txt +index be44651..3f991ca 100644 +--- a/projects/rocwmma/CMakeLists.txt ++++ b/projects/rocwmma/CMakeLists.txt +@@ -150,7 +150,23 @@ message(STATUS "GPU_TARGETS=${GPU_TARGETS}") + + find_package( hip REQUIRED ) + find_package( hiprtc REQUIRED ) +-find_package( OpenMP REQUIRED ) ++set(ROCWMMA_USE_OPENMP ON CACHE BOOL "Use OpenMP to improve performance.") ++set(ROCWMMA_USE_HIP ON CACHE BOOL "Use the Hip runtime.") ++ ++if(ROCWMMA_USE_OPENMP) ++ # Workaround for https://gitlab.kitware.com/cmake/cmake/-/issues/21787 ++ # ensures we link to HIP's libomp and get an rpath to it. ++ add_library(custom_openmp_cxx INTERFACE) ++ ++ if(ROCWMMA_USE_HIP) ++ target_compile_options(custom_openmp_cxx INTERFACE "-fopenmp") ++ target_link_options(custom_openmp_cxx INTERFACE "-fopenmp") ++ else () ++ find_package(OpenMP REQUIRED) ++ target_link_libraries(custom_openmp_cxx INTERFACE OpenMP::OpenMP_CXX) ++ endif () ++endif() ++ + + if (ROCWMMA_BUILD_BENCHMARK_TESTS) + ## Check for ROCM-smi +@@ -165,10 +181,10 @@ if (ROCWMMA_BUILD_BENCHMARK_TESTS) + endif() + + add_library(rocwmma INTERFACE) +-target_link_libraries(rocwmma INTERFACE hip::device hip::host OpenMP::OpenMP_CXX ${ROCM_SMI_LIBRARY}) +- ++target_link_libraries(rocwmma INTERFACE hip::device hip::host custom_openmp_cxx ${ROCM_SMI_LIBRARY}) ++target_link_directories(rocwmma INTERFACE ${ROCM_SMI_LIB_DIR}) + rocm_install_targets( +- TARGETS rocwmma ++ TARGETS rocwmma custom_openmp_cxx + INCLUDE library/include + ) + +@@ -201,6 +217,7 @@ set(CPACK_RPM_PACKAGE_LICENSE "MIT") + + rocm_export_targets( + TARGETS roc::rocwmma ++ DEPENDS PACKAGE hip + NAMESPACE roc:: + ) + +diff --git a/projects/rocwmma/samples/CMakeLists.txt b/projects/rocwmma/samples/CMakeLists.txt +index 3d23b15..8362c3d 100644 +--- a/projects/rocwmma/samples/CMakeLists.txt ++++ b/projects/rocwmma/samples/CMakeLists.txt +@@ -40,10 +40,8 @@ function(add_rocwmma_sample TEST_TARGET TEST_SOURCE) + + list(APPEND TEST_SOURCE ${ARGN}) + add_executable(${TEST_TARGET} ${TEST_SOURCE}) +- target_link_libraries(${TEST_TARGET} OpenMP::OpenMP_CXX "-L${HIP_CLANG_ROOT}/lib") +- if(UNIX) +- set_target_properties(${TEST_TARGET} PROPERTIES INSTALL_RPATH "\$ORIGIN/../llvm/lib") +- target_link_libraries(${TEST_TARGET} "-fno-rtlib-add-rpath") ++ if(ROCWMMA_USE_HIP) ++ target_link_libraries(${TEST_TARGET} custom_openmp_cxx) + endif() + target_link_libraries(${TEST_TARGET} rocwmma hiprtc::hiprtc) + target_include_directories(${TEST_TARGET} PRIVATE +diff --git a/projects/rocwmma/test/CMakeLists.txt b/projects/rocwmma/test/CMakeLists.txt +index 0e767aa..cfe3f34 100644 +--- a/projects/rocwmma/test/CMakeLists.txt ++++ b/projects/rocwmma/test/CMakeLists.txt +@@ -108,11 +108,10 @@ function(add_rocwmma_test TEST_TARGET TEST_SOURCE) + list(APPEND TEST_SOURCE ${ARGN}) + add_executable(${TEST_TARGET} ${TEST_SOURCE}) + target_link_libraries(${TEST_TARGET} rocwmma GTest::gtest) +- target_link_libraries(${TEST_TARGET} OpenMP::OpenMP_CXX "-L${HIP_CLANG_ROOT}/lib") +- if(UNIX) +- set_target_properties(${TEST_TARGET} PROPERTIES INSTALL_RPATH "\$ORIGIN/../llvm/lib") +- target_link_libraries(${TEST_TARGET} "-fno-rtlib-add-rpath") ++ if(ROCWMMA_USE_HIP) ++ target_link_libraries(${TEST_TARGET} custom_openmp_cxx) + endif() ++ + target_include_directories(${TEST_TARGET} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${ROCWMMA_TEST_INCLUDE_DIRS}) +-- +2.43.0 + diff --git a/repos/spack_repo/builtin/packages/rocwmma/package.py b/repos/spack_repo/builtin/packages/rocwmma/package.py index d7450d6bd2c..e8c5776cae9 100644 --- a/repos/spack_repo/builtin/packages/rocwmma/package.py +++ b/repos/spack_repo/builtin/packages/rocwmma/package.py @@ -4,7 +4,8 @@ import itertools -from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cmake import CMakePackage, generator +from spack_repo.builtin.build_systems.rocm import ROCmPackage from spack.package import * @@ -21,14 +22,28 @@ class Rocwmma(CMakePackage): linking to external runtime libraries or having to launch separate kernels.""" homepage = "https://github.com/ROCm/rocWMMA" - git = "https://github.com/ROCm/rocWMMA.git" - url = "https://github.com/ROCm/rocWMMA/archive/refs/tags/rocm-6.1.2.tar.gz" - tags = ["rocm"] - - license("MIT") + git = "https://github.com/ROCm/rocm-libraries.git" + tags = ["rocm"] maintainers("srekolam", "renjithravindrankannath", "afzpatel") + license("MIT") + def url_for_version(self, version): + if version <= Version("7.1.1"): + url = "https://github.com/ROCm/rocWMMA/archive/refs/tags/rocm-{0}.tar.gz" + else: + url = "https://github.com/ROCm/rocm-libraries/archive/rocm-{0}.tar.gz" + return url.format(version) + + version("7.2.3", sha256="300cc50720d40bad7c7ed1f6d67e8c5ebecaba62c07a6ea1cc5813c0ea2e41b5") + version("7.2.1", sha256="bc5140deec3b1c93c13796a8a6d2cb7e50aa87fd89f60f87c8d801d66f2fd156") + version("7.2.0", sha256="8ad5f4a11f1ed8a7b927f2e65f24083ca6ce902a42021a66a815190a91ccb654") + version("7.1.1", sha256="5a3c22ba75bf8473dc4a008fbff365d0666fc5a49c54e742f7ed4444a2b2d431") + version("7.1.0", sha256="96bed5cd6f2d3334cfbd4a9e6dab132cc2ec60150409712661dc69e774427707") + version("7.0.2", sha256="359604712e6802fbb66ebddf4c337916c5a851bd4302d8c3ab5c31f0d8b7ec7e") + version("7.0.0", sha256="14e0cec245c7c4827dc5421c9878fab5e1734112933351f8bef3a0d1ed68f6b6") + version("6.4.3", sha256="34797c458603688748a046b611e14693221843de96740ed3ba5c606d41ab0cdf") + version("6.4.2", sha256="63bbac42242ea3bf5f5dd160739a0bd8a2d01c0f6456c187a2e6c29fecdcc93a") version("6.4.1", sha256="888e9794adff06ca1be811d80018e761b9a9cf84cb88dec9e51bc3a6db7a359a") version("6.4.0", sha256="d95d53f70b4a2adc565bf4490515626cb7109f1d2e8a9978626610d3f178cf42") version("6.3.3", sha256="5bfd2909cc9b4601bb83ddd79da6cfa4075afa6d6e9396d9bbe1df844163fbd2") @@ -45,15 +60,8 @@ class Rocwmma(CMakePackage): version("6.0.0", sha256="f9e97e7c6c552d43ef8c7348e4402bead2cd978d0f81a9657d6a0f6c83a6139b") version("5.7.1", sha256="a998a1385e6ad7062707ddb9ff82bef727ca48c39a10b4d861667024e3ffd2a3") version("5.7.0", sha256="a8f1b090e9e504a149a924c80cfb6aca817359b43833a6512ba32e178245526f") - with default_args(deprecated=True): - version("5.6.1", sha256="41a5159ee1ad5fc411fe6220f37bd754e26d3883c24c0f2378f50ef628bc1b8f") - version("5.6.0", sha256="78b6ab10fce71d10a9d762b2eaab3390eb13b05c764f47a3b0a303ec3d37acf8") - - # gfx908:xnack-;gfx90a:xnack-;gfx90a:xnack+ - # are only targets currently supported for @5.2.0 - # releases - amdgpu_targets = ("gfx908:xnack-", "gfx90a", "gfx90a:xnack-", "gfx90a:xnack+") + amdgpu_targets = ROCmPackage.amdgpu_targets variant( "amdgpu_target", description="AMD GPU architecture", @@ -66,18 +74,16 @@ class Rocwmma(CMakePackage): values=("Release", "Debug", "RelWithDebInfo"), description="CMake build type", ) - depends_on("c", type="build") - depends_on("cxx", type="build") # generated + depends_on("cxx", type="build") - depends_on("cmake@3.16:", type="build", when="@5.6.0:") - depends_on("cmake@3.5:", type="build") + depends_on("cmake@3.16:", type="build") depends_on("googletest@1.10.0:", type="test") + generator("ninja") + for ver in [ - "5.6.0", - "5.6.1", "5.7.0", "5.7.1", "6.0.0", @@ -94,19 +100,62 @@ class Rocwmma(CMakePackage): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver) depends_on("llvm-amdgpu@" + ver, type="build", when="@" + ver) depends_on("hip@" + ver, when="@" + ver) depends_on("rocblas@" + ver, type="build", when="@" + ver) - depends_on("rocm-openmp-extras@" + ver, type="build", when="@" + ver) depends_on("rocm-smi-lib@" + ver, when="@" + ver) + for ver in [ + "5.7.0", + "5.7.1", + "6.0.0", + "6.0.2", + "6.1.0", + "6.1.1", + "6.1.2", + "6.2.0", + "6.2.1", + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + ]: + depends_on("rocm-openmp-extras@" + ver, type="build", when="@" + ver) + for tgt in itertools.chain(["auto"], amdgpu_targets): depends_on("rocblas amdgpu_target={0}".format(tgt), when="amdgpu_target={0}".format(tgt)) - patch("0001-add-rocm-smi-lib-path-for-building-tests.patch", when="@5.6:6.3") - patch("0002-use-find-package-rocm-smi.patch", when="@6.4:") + patch("0001-add-rocm-smi-lib-path-for-building-tests.patch", when="@:6.3") + patch("0002-use-find-package-rocm-smi.patch", when="@6.4") + patch("0003-Fix-libomp.so-and-libamdhip64.so-not-found-error.patch", when="@7.1") + patch("0003-Fix-libopenmp.so-and-libamdhip64.so-not-found-error-7.2.patch", when="@7.2") + + @property + def root_cmakelists_dir(self): + if self.spec.satisfies("@7.2:"): + return "projects/rocwmma" + else: + return "." def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("CXX", self.spec["hip"].hipcc) @@ -121,17 +170,18 @@ def cmake_args(self): self.define("ROCWMMA_BUILD_ASSEMBLY", "OFF"), self.define("ROCM_SMI_DIR", self.spec["rocm-smi-lib"].prefix), ] - args.extend( - [ - "-DOpenMP_CXX_FLAGS=-fopenmp=libomp", - "-DOpenMP_CXX_LIB_NAMES=libomp", - "-DOpenMP_libomp_LIBRARY={0}/lib/libomp.so".format( - self.spec["rocm-openmp-extras"].prefix - ), - ] - ) + if self.spec.satisfies("@:7.0"): + args.extend(["-DOpenMP_CXX_FLAGS=-fopenmp=libomp", "-DOpenMP_CXX_LIB_NAMES=libomp"]) + args.append( + f"-DOpenMP_libomp_LIBRARY={self.spec['rocm-openmp-extras'].prefix}/lib/libomp.so" + ) tgt = self.spec.variants["amdgpu_target"] if "auto" not in tgt: - args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) + if self.spec.satisfies("@7.1:"): + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) + else: + args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target")) + if self.spec.satisfies("@:7.1"): + args.append(self.define("CMAKE_BUILD_WITH_INSTALL_RPATH", "ON")) return args diff --git a/repos/spack_repo/builtin/packages/roms/package.py b/repos/spack_repo/builtin/packages/roms/package.py index d0ad72a30c8..19f0535243b 100644 --- a/repos/spack_repo/builtin/packages/roms/package.py +++ b/repos/spack_repo/builtin/packages/roms/package.py @@ -16,8 +16,13 @@ class Roms(MakefilePackage): the scientific community for a diverse range of applications""" homepage = "https://www.myroms.org/" - url = "https://github.com/myroms/roms/archive/refs/tags/roms-4.1.tar.gz" + url = "https://github.com/myroms/roms/archive/refs/tags/roms-4.2.tar.gz" + maintainers("rsoutelino") + + license("MIT", checked_by="rsoutelino") + + version("4.2", sha256="5035d72f708dfcdbc00b243a1782bc43b99c8c8a2f65881a13d38d5baaaf289b") version("4.1", sha256="cf25625066be3ea40fdd7bbe361f830d4415170636163b05bd338ac299809d4e") version("4.0", sha256="d14b4920e791ad24684f439c4751c2f1c38dbf9b82aa0d4d57def93e50a5a747") version("3.9", sha256="8e93f6ed40040e3f1b88d456ea9411ed3c06f280dc50b2787d6e5f793f58f1bc") @@ -38,6 +43,7 @@ class Roms(MakefilePackage): description="Turn on symbolic debug information with no optimization", ) + depends_on("c", type="build") depends_on("fortran", type="build") # generated depends_on("mpi", when="+mpi") diff --git a/repos/spack_repo/builtin/packages/root/honor-unuran-switch.patch b/repos/spack_repo/builtin/packages/root/honor-unuran-switch.patch deleted file mode 100644 index 1ea73d80bea..00000000000 --- a/repos/spack_repo/builtin/packages/root/honor-unuran-switch.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 20be628aeb0e2548693966b560fdde3e8d19c2d0 Mon Sep 17 00:00:00 2001 -From: Guilherme Amadio -Date: Tue, 8 May 2018 15:12:55 +0200 -Subject: [PATCH] Do not search for unuran or enable builtin_unuran if - unuran=OFF - ---- - cmake/modules/SearchInstalledSoftware.cmake | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake -index f69158e..b47ba34 100644 ---- a/cmake/modules/SearchInstalledSoftware.cmake -+++ b/cmake/modules/SearchInstalledSoftware.cmake -@@ -60,7 +60,7 @@ if(builtin_zlib) - endif() - - #---Check for Unuran ------------------------------------------------------------------ --if(NOT builtin_unuran) -+if(unuran AND NOT builtin_unuran) - message(STATUS "Looking for Unuran") - find_Package(Unuran) - if(NOT UNURAN_FOUND) --- -1.8.3.1 - diff --git a/repos/spack_repo/builtin/packages/root/math_uint.patch b/repos/spack_repo/builtin/packages/root/math_uint.patch deleted file mode 100644 index ff4a38b91c2..00000000000 --- a/repos/spack_repo/builtin/packages/root/math_uint.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 5f3faffdd869bce5e254ae70f69290e4651a061d Mon Sep 17 00:00:00 2001 -From: Lorenzo Moneta -Date: Mon, 4 Jan 2016 15:38:23 +0100 -Subject: [PATCH] Fix ROOT-7886. Use unsigned int instead of uint - ---- - math/mathcore/inc/Math/Delaunay2D.h | 2 +- - math/mathcore/src/Delaunay2D.cxx | 30 +++++++++++++++--------------- - 2 files changed, 16 insertions(+), 16 deletions(-) - -diff --git a/math/mathcore/inc/Math/Delaunay2D.h b/math/mathcore/inc/Math/Delaunay2D.h -index 6255e78..472bded 100644 ---- a/math/mathcore/inc/Math/Delaunay2D.h -+++ b/math/mathcore/inc/Math/Delaunay2D.h -@@ -273,7 +273,7 @@ class Delaunay2D { - double fYCellStep; //! inverse denominator to calculate X cell = fNCells / (fYNmax - fYNmin) - std::set fCells[(fNCells+1)*(fNCells+1)]; //! grid cells with containing triangles - -- inline unsigned int Cell(uint x, uint y) const { -+ inline unsigned int Cell(UInt_t x, UInt_t y) const { - return x*(fNCells+1) + y; - } - -diff --git a/math/mathcore/src/Delaunay2D.cxx b/math/mathcore/src/Delaunay2D.cxx -index c4d4680..9a82858 100644 ---- a/math/mathcore/src/Delaunay2D.cxx -+++ b/math/mathcore/src/Delaunay2D.cxx -@@ -190,7 +190,7 @@ void Delaunay2D::DoFindTriangles() { - - Triangle tri; - -- auto transform = [&] (const uint i) { -+ auto transform = [&] (const unsigned int i) { - tri.x[i] = face.vertex(i)->point().x(); - tri.y[i] = face.vertex(i)->point().y(); - tri.idx[i] = face.vertex(i)->info(); -@@ -326,7 +326,7 @@ void Delaunay2D::DoFindTriangles() { - for(int t = 0; t < out.numberoftriangles; ++t){ - Triangle tri; - -- auto transform = [&] (const uint v) { -+ auto transform = [&] (const unsigned int v) { - //each triangle as numberofcorners vertices ( = 3) - tri.idx[v] = out.trianglelist[t*out.numberofcorners + v]; - -@@ -354,14 +354,14 @@ void Delaunay2D::DoFindTriangles() { - auto bx = std::minmax({tri.x[0], tri.x[1], tri.x[2]}); - auto by = std::minmax({tri.y[0], tri.y[1], tri.y[2]}); - -- uint cellXmin = CellX(bx.first); -- uint cellXmax = CellX(bx.second); -+ unsigned int cellXmin = CellX(bx.first); -+ unsigned int cellXmax = CellX(bx.second); - -- uint cellYmin = CellY(by.first); -- uint cellYmax = CellY(by.second); -+ unsigned int cellYmin = CellY(by.first); -+ unsigned int cellYmax = CellY(by.second); - -- for(uint i = cellXmin; i <= cellXmax; ++i) -- for(uint j = cellYmin; j <= cellYmax; ++j){ -+ for(unsigned int i = cellXmin; i <= cellXmax; ++i) -+ for(unsigned int j = cellYmin; j <= cellYmax; ++j){ - //printf("(%u,%u) = %u\n", i, j, Cell(i,j)); - fCells[Cell(i,j)].insert(t); - } -@@ -382,7 +382,7 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy) - /// FindAllTriangles(); - - //see comment in header for CGAL fallback section -- auto bayCoords = [&] (const uint t) -> std::tuple { -+ auto bayCoords = [&] (const unsigned int t) -> std::tuple { - double la = ( (fTriangles[t].y[1] - fTriangles[t].y[2])*(xx - fTriangles[t].x[2]) - + (fTriangles[t].x[2] - fTriangles[t].x[1])*(yy - fTriangles[t].y[2]) ) * fTriangles[t].invDenom; - double lb = ( (fTriangles[t].y[2] - fTriangles[t].y[0])*(xx - fTriangles[t].x[2]) -@@ -401,7 +401,7 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy) - if(cX < 0 || cX > fNCells || cY < 0 || cY > fNCells) - return fZout; //TODO some more fancy interpolation here - -- for(uint t : fCells[Cell(cX, cY)]){ -+ for(unsigned int t : fCells[Cell(cX, cY)]){ - auto coords = bayCoords(t); - - if(inTriangle(coords)){ -@@ -415,7 +415,7 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy) - - //debugging - -- /*for(uint t = 0; t < fNdt; ++t){ -+ /*for(unsigned int t = 0; t < fNdt; ++t){ - auto coords = bayCoords(t); - - if(inTriangle(coords)){ -@@ -423,17 +423,17 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy) - //brute force found a triangle -> grid not - printf("Found triangle %u for (%f,%f) -> (%u,%u)\n", t, xx,yy, cX, cY); - printf("Triangles in grid cell: "); -- for(uint x : fCells[Cell(cX, cY)]) -+ for(unsigned int x : fCells[Cell(cX, cY)]) - printf("%u ", x); - printf("\n"); - - printf("Triangle %u is in cells: ", t); -- for(uint i = 0; i <= fNCells; ++i) -- for(uint j = 0; j <= fNCells; ++j) -+ for(unsigned int i = 0; i <= fNCells; ++i) -+ for(unsigned int j = 0; j <= fNCells; ++j) - if(fCells[Cell(i,j)].count(t)) - printf("(%u,%u) ", i, j); - printf("\n"); -- for(uint i = 0; i < 3; ++i) -+ for(unsigned int i = 0; i < 3; ++i) - printf("\tpoint %u (%u): (%f,%f) -> (%u,%u)\n", i, fTriangles[t].idx[i], fTriangles[t].x[i], fTriangles[t].y[i], CellX(fTriangles[t].x[i]), CellY(fTriangles[t].y[i])); - - //we found the triangle -> interpolate using the barycentric interpolation diff --git a/repos/spack_repo/builtin/packages/root/package.py b/repos/spack_repo/builtin/packages/root/package.py index 2b1e2321b66..5ea7aa0f32f 100644 --- a/repos/spack_repo/builtin/packages/root/package.py +++ b/repos/spack_repo/builtin/packages/root/package.py @@ -8,6 +8,7 @@ from spack_repo.builtin.build_systems.cmake import CMakePackage +import spack.util.environment as envutil from spack.package import * _is_macos = sys.platform == "darwin" @@ -35,9 +36,18 @@ class Root(CMakePackage): version("develop", branch="master") # Production release series + version("6.36.12", sha256="1243fc48b7c1358ebf69e6140a13d9c27e0fd84663632cc6217beda875a4a317") + version("6.36.10", sha256="8ccbfbca9d05016c8c324dd61c25a1091ae61847fb9404298652b83bf0cd3be0") + version("6.36.08", sha256="1678fd272cf3172d7ba602e2786ec659bd3ca28b38f0471005d456d968ef55a1") + version("6.36.06", sha256="62f9d38d2f2ed3d46653529c98e8cbc9b8866776494eb40ba0c23e2f46b681c4") + version("6.36.04", sha256="cc6367d8f563c6d49ca34c09d0b53cb0f41a528db6f86af111fd76744cda4596") + version("6.36.02", sha256="510d677b33ac7ca48aa0d712bdb88d835a1ff6a374ef86f1a1e168fa279eb470") version("6.36.00", sha256="94afc8def92842679a130a27521be66e2abdaa37620888e61d828a43fc4b01a2") # Supported LTS release series (note: more recent STS releases may be further down) + version("6.32.20", sha256="c4a9936d55adea8b5b20db9be2e356d95a0d97c9e78a92cd6494b7294838d261") + version("6.32.18", sha256="0b7d18b209e2a34e611e7cb2e6b82b6559fd86d64d1a7e8bf65cd13059839956") + version("6.32.16", sha256="1b9afc6730aa727722cc60d44a403f7a39b7226086181827bc4cabd0bea4c568") version("6.32.14", sha256="dfb5193127ff80ebfa10e6a4dcdf56eeec0eface65fc3de347d853ae9653aeff") version("6.32.12", sha256="2e41968aeb0406ee31c30af9c046143099b251846e0839cb04f4e960c7893e19") version("6.32.10", sha256="5a896804ec153685e8561adaa4e546b708139c484280aa6713a0a178f5b7f98b") @@ -48,141 +58,63 @@ class Root(CMakePackage): version("6.32.00", sha256="12f203681a59041c474ce9523761e6f0e8861b3bee78df5f799a8db55189e5d2") # Supported STS release series - # 6.34 (through 2025-06-30) - version("6.34.08", sha256="806045b156de03fe8f5661a670eab877f2e4d2da6c234dc3e31e98e2d7d96fe8") - version("6.34.06", sha256="a799d632dae5bb1ec87eae6ebc046a12268c6849f2a8837921c118fc51b6cff3") - version("6.34.04", sha256="e320c5373a8e87bb29b7280954ca8355ad8c4295cf49235606f0c8b200acb374") - version("6.34.02", sha256="166bec562e420e177aaf3133fa3fb09f82ecddabe8a2e1906345bad442513f94") - version("6.34.00", sha256="f3b00f3db953829c849029c39d7660a956468af247efd946e89072101796ab03") + # 6.38 (through 2026-06-30) + version("6.38.04", sha256="1ca561d03b3addae00cb76af57f8c75d3c229e8bd6939bdd408ec33fda9d3487") + version("6.38.02", sha256="77d34d2bca0ea720acfd43798bcb5d09a28584013b4d0a2910823c867d4bfa42") + version("6.38.00", sha256="a4429422c460f832cde514a580dd202b1d3c96e8919c24363c3d42f8cf5accdc") - # Older release series - version("6.30.08", sha256="8bb8594867b9ded20a65e59f2cb6da965aa30851b8960f8cbf76293aec046b69") - version("6.30.06", sha256="300db7ed1b678ed2fb9635ca675921a1945c7c2103da840033b493091f55700c") - version("6.30.04", sha256="2b4180b698f39cc65d91084d833a884515b325bc5f673c8e39abe818b025d8cc") - version("6.30.02", sha256="7965a456d1ad1ee0d5fe4769bf5a8fec291af684ed93db0f3080a9c362435183") - version("6.30.00", sha256="0592c066954cfed42312957c9cb251654456064fe2d8dabdcb8826f1c0099d71") - version("6.28.12", sha256="fcd325267d238e9c6008f56a3a7e7c87fd864b1e633b0ffcf1f82b7e7ad3d249") - version("6.28.10", sha256="69d6fdeb607e6b20bd02c757fa6217024c0b6132c1e9b1dff4d85d9a2bb7e51e") - version("6.28.06", sha256="af3b673b9aca393a5c9ae1bf86eab2672aaf1841b658c5c6e7a30ab93c586533") - version("6.28.04", sha256="70f7f86a0cd5e3f2a0befdc59942dd50140d990ab264e8e56c7f17f6bfe9c965") - version("6.28.02", sha256="6643c07710e68972b00227c68b20b1016fec16f3fba5f44a571fa1ce5bb42faa") - version("6.28.00", sha256="afa1c5c06d0915411cb9492e474ea9ab12b09961a358e7e559013ed63b5d8084") - - # Deprecated releases + # 6.34 (through 2025-06-30) with default_args(deprecated=True): version( - "6.26.16", sha256="5defb828d382649dc689440550f8241476a4071e0f0c6029697163baddb29e7b" - ) - version( - "6.26.14", sha256="81045a35a1958906c3eadecd9b01127a6087dadc19385af8e92ae5c84f06ce35" - ) - version( - "6.26.10", sha256="8e56bec397104017aa54f9eb554de7a1a134474fe0b3bb0f43a70fc4fabd625f" - ) - version( - "6.26.08", sha256="4dda043e7918b40743ad0299ddd8d526b7078f0a3822fd06066df948af47940e" - ) - version( - "6.26.06", sha256="b1f73c976a580a5c56c8c8a0152582a1dfc560b4dd80e1b7545237b65e6c89cb" - ) - version( - "6.26.04", sha256="a271cf82782d6ed2c87ea5eef6681803f2e69e17b3036df9d863636e9358421e" - ) - version( - "6.26.02", sha256="7ba96772271a726079506c5bf629c3ceb21bf0682567ed6145be30606d7cd9bb" - ) - version( - "6.26.00", sha256="5fb9be71fdf0c0b5e5951f89c2f03fcb5e74291d043f6240fb86f5ca977d4b31" - ) - version( - "6.24.08", sha256="882c41fe36e94456fb10443d08ef9152375a90d1f910a10add1793d6e838bc44" - ) - version( - "6.24.06", sha256="907f69f4baca1e4f30eeb4979598ca7599b6aa803ca046e80e25b6bbaa0ef522" - ) - version( - "6.24.04", sha256="4a416f3d7aa25dba46d05b641505eb074c5f07b3ec1d21911451046adaea3ee7" - ) - version( - "6.24.02", sha256="0507e1095e279ccc7240f651d25966024325179fa85a1259b694b56723ad7c1c" - ) - version( - "6.24.00", sha256="9da30548a289211c3122d47dacb07e85d35e61067fac2be6c5a5ff7bda979989" + "6.34.08", sha256="806045b156de03fe8f5661a670eab877f2e4d2da6c234dc3e31e98e2d7d96fe8" ) version( - "6.22.08", sha256="6f061ff6ef8f5ec218a12c4c9ea92665eea116b16e1cd4df4f96f00c078a2f6f" + "6.34.06", sha256="a799d632dae5bb1ec87eae6ebc046a12268c6849f2a8837921c118fc51b6cff3" ) version( - "6.22.06", sha256="c4688784a7e946cd10b311040b6cf0b2f75125a7520e04d1af0b746505911b57" + "6.34.04", sha256="e320c5373a8e87bb29b7280954ca8355ad8c4295cf49235606f0c8b200acb374" ) version( - "6.22.02", sha256="89784afa9c9047e9da25afa72a724f32fa8aa646df267b7731e4527cc8a0c340" + "6.34.02", sha256="166bec562e420e177aaf3133fa3fb09f82ecddabe8a2e1906345bad442513f94" ) version( - "6.22.00", sha256="efd961211c0f9cd76cf4a486e4f89badbcf1d08e7535bba556862b3c1a80beed" - ) - version( - "6.20.08", sha256="d02f224b4908c814a99648782b927c353d44db79dea2cadea86138c1afc23ae9" - ) - version( - "6.20.06", sha256="9a734758a91598d8a58a3d64d7d606aeb17bdf6fd8214e33f5c4d9947d391951" - ) - version( - "6.20.04", sha256="1f8c76ccdb550e64e6ddb092b4a7e9d0a10655ef80044828cba12d5e7c874472" - ) - version( - "6.20.02", sha256="0997586bf097c0afbc6f08edbffcebf5eb6a4237262216114ba3f5c8087dcba6" - ) - version( - "6.20.00", sha256="68421eb0434b38b66346fa8ea6053a0fdc9a6d254e4a72019f4e3633ae118bf0" - ) - version( - "6.18.04", sha256="315a85fc8363f8eb1bffa0decbf126121258f79bd273513ed64795675485cfa4" - ) - version( - "6.18.02", sha256="50ffffdbf2585a536c77a03f54aa631926138275ffeee02e5a16dde87e978c1d" - ) - version( - "6.18.00", sha256="e6698d6cfe585f186490b667163db65e7d1b92a2447658d77fa831096383ea71" - ) - version( - "6.16.00", sha256="2a45055c6091adaa72b977c512f84da8ef92723c30837c7e2643eecc9c5ce4d8" - ) - version( - "6.14.08", sha256="1b63b51cfb4dc20f1f5749faac6bbd1098eccab777f8b49911257d77186c73c4" + "6.34.00", sha256="f3b00f3db953829c849029c39d7660a956468af247efd946e89072101796ab03" ) + + # Older release series + with default_args(deprecated=True): version( - "6.14.06", sha256="0fb943b61396f282b289e35c455a9ab60126229be1bd3f04a8f00b37c13ab432" + "6.30.08", sha256="8bb8594867b9ded20a65e59f2cb6da965aa30851b8960f8cbf76293aec046b69" ) version( - "6.14.04", sha256="463ec20692332a422cfb5f38c78bedab1c40ab4d81be18e99b50cf9f53f596cf" + "6.30.06", sha256="300db7ed1b678ed2fb9635ca675921a1945c7c2103da840033b493091f55700c" ) version( - "6.14.02", sha256="93816519523e87ac75924178d87112d1573eaa108fc65691aea9a9dd5bc05b3e" + "6.30.04", sha256="2b4180b698f39cc65d91084d833a884515b325bc5f673c8e39abe818b025d8cc" ) version( - "6.14.00", sha256="7946430373489310c2791ff7a3520e393dc059db1371272bcd9d9cf0df347a0b" + "6.30.02", sha256="7965a456d1ad1ee0d5fe4769bf5a8fec291af684ed93db0f3080a9c362435183" ) version( - "6.12.06", sha256="aedcfd2257806e425b9f61b483e25ba600eb0ea606e21262eafaa9dc745aa794" + "6.30.00", sha256="0592c066954cfed42312957c9cb251654456064fe2d8dabdcb8826f1c0099d71" ) version( - "6.10.08", sha256="2cd276d2ac365403c66f08edd1be62fe932a0334f76349b24d8c737c0d6dad8a" + "6.28.12", sha256="fcd325267d238e9c6008f56a3a7e7c87fd864b1e633b0ffcf1f82b7e7ad3d249" ) version( - "6.08.06", sha256="ea31b047ba6fc04b0b312667349eaf1498a254ccacd212144f15ffcb3f5c0592" + "6.28.10", sha256="69d6fdeb607e6b20bd02c757fa6217024c0b6132c1e9b1dff4d85d9a2bb7e51e" ) version( - "6.06.08", sha256="7cb836282014cce822ef589cad27811eb7a86d7fad45a871fa6b0e6319ec201a" + "6.28.06", sha256="af3b673b9aca393a5c9ae1bf86eab2672aaf1841b658c5c6e7a30ab93c586533" ) version( - "6.06.06", sha256="0a7d702a130a260c72cb6ea754359eaee49a8c4531b31f23de0bfcafe3ce466b" + "6.28.04", sha256="70f7f86a0cd5e3f2a0befdc59942dd50140d990ab264e8e56c7f17f6bfe9c965" ) version( - "6.06.04", sha256="ab86dcc80cbd8e704099af0789e23f49469932ac4936d2291602301a7aa8795b" + "6.28.02", sha256="6643c07710e68972b00227c68b20b1016fec16f3fba5f44a571fa1ce5bb42faa" ) version( - "6.06.02", sha256="18a4ce42ee19e1a810d5351f74ec9550e6e422b13b5c58e0c3db740cdbc569d1" + "6.28.00", sha256="afa1c5c06d0915411cb9492e474ea9ab12b09961a358e7e559013ed63b5d8084" ) # ###################### Patches ########################## @@ -190,42 +122,12 @@ class Root(CMakePackage): # Widely used patch (CMS, FNAL) to increase the size of static # buffers used to improve the operation of TString. patch("format-stringbuf-size.patch", level=0) - # Support use of `mariadb-c-client` and `mariadb` to provide the - # MySQL API _cf_ - # https://github.com/root-project/root/commit/9c0fa8c554a569c971185249f9acfff4418c0c13. - patch("find-mysql.patch", level=1, when="@:6.16.00") - # Some ROOT versions did not honor the option to avoid building an - # internal version of unuran, _cf_ - # https://github.com/root-project/ROOT/commit/3e60764f133218b6938e5aa4986de760e8f058d9. - patch("honor-unuran-switch.patch", level=1, when="@6.08.06:6.13") - # 6.16.00 fails to handle particular build option combinations, _cf_ - # https://github.com/root-project/ROOT/commit/e0ae0483985d90a71a6cabd10d3622dfd1c15611. - patch("root7-webgui.patch", level=1, when="@6.16.00") - # Missing includes in libcpp_string_view.h - patch( - "https://github.com/root-project/root/commit/a15e883277e51303a61baa3e6890f46b5bb4bfd7.patch?full_index=1", - sha256="12f4b5d47cca85871160b6772f2e0ebcf49de4e3294414411477f1ef44dd2e5b", - when="@6.22:6.22.08", - ) - # 6.26.00:6.26.06 can fail with empty string COMPILE_DEFINITIONS, which this patch - # protects against - patch( - "https://github.com/root-project/root/commit/08ab7e03061e551647d707637957252d121f9c39.patch?full_index=1", - sha256="943e361c85f133d252e35200b59ee3c260a5e74edecb8ea37a362b580bef81d1", - when="@6.26:6.26.06", - ) - # 6.26.00:6.26.06 fails for recent nlohmann-json single headers versions - patch( - "https://github.com/root-project/root/commit/26247b68b3aabad4aea5362bc5a8988103ce8038.patch?full_index=1", - sha256="8337fda2a964682422a11f32cd385104054e3ad112ec234be3f2bd88cea08fd9", - when="@6.26:6.26.06 +root7 ^nlohmann-json@3.11:", - ) # Support recent versions of protobuf with their own CMake config # (provided the CMake being used supports targets), _cf_ # https://github.com/root-project/root/commit/f6cfe3bdab544e5f7fd49514562147ebd5d67d7c patch("protobuf-config.patch", level=0, when="@:6.30.02 ^protobuf ^cmake@3.9:") - patch("webgui.patch", level=0, when="@6.26.00:6.26.10,6.28.00:6.28.08,6.30.00 +webgui") + patch("webgui.patch", level=0, when="@6.28.00:6.28.08,6.30.00 +webgui") # Back-ported patches fixing segfault in weighted likelihood fits patch( @@ -246,13 +148,14 @@ class Root(CMakePackage): when="@6.32.0:6.32.02", ) + # Fix cppyy double-install overwriting rpath + patch( + "https://github.com/root-project/root/commit/5b09965c2acf098f0bfba465c395a2ce23f276b5.patch?full_index=1", + sha256="131ab40a3be20b14929327bf9fc0a4c5e2da7d56aa1ad6f8bd39c7826038da81", + when="@6.38.0 +python", + ) + if _is_macos: - # Resolve non-standard use of uint, _cf_ - # https://sft.its.cern.ch/jira/browse/ROOT-7886. - patch("math_uint.patch", when="@6.06.02") - # Resolve circular dependency, _cf_ - # https://sft.its.cern.ch/jira/browse/ROOT-8226. - patch("root6-60606-mathmore.patch", when="@6.06.06") # Fix macOS build when cocoa is disabled: patch( "https://github.com/root-project/root/commit/ebcda91aa14a359f06fa1c50690d5be9e4c98b94.patch?full_index=1", @@ -278,11 +181,13 @@ class Root(CMakePackage): variant("aqua", default=_is_macos, description="Enable native macOS (Cocoa) interface") variant("arrow", default=False, description="Enable Arrow interface") - variant("cuda", when="@6.08.00:", default=False, description="Enable CUDA support") - variant("cudnn", when="@6.20.02:", default=False, description="Enable cuDNN support") - variant( - "daos", default=False, description="Enable RNTuple support for DAOS storage", when="@6.26:" - ) + variant("cuda", default=False, description="Enable CUDA support") + variant("cudnn", default=False, description="Enable cuDNN support") + # C++ module support in ROOT seemingly not currently working in macOS, + # will lead to build errors if turned on + # See https://root-forum.cern.ch/t/build-error-on-macos-macports-with-unctrl-h-ncurses-h/40239/22 + variant("cxxmodules", default=not _is_macos, description="Enable C++ modules") + variant("daos", default=False, description="Enable RNTuple support for DAOS storage") variant("davix", default=True, description="Compile with external Davix") variant("dcache", default=False, description="Enable support for dCache") variant("emacs", default=False, description="Enable Emacs support") @@ -297,7 +202,7 @@ class Root(CMakePackage): variant( "gminimal", default=True, - description="Ignore most of Root's feature defaults except for " "basic graphic options", + description="Ignore most of Root's feature defaults except for basic graphic options", ) variant("geom", default=True, description="Enable support for the geometry library") conflicts("~geom", when="@:6.33", msg="geom is always enabled through 6.33") @@ -312,19 +217,13 @@ class Root(CMakePackage): description="Enable using the jemalloc allocator (deprecated in 6.28)", ) variant("math", default=True, description="Build the new libMathMore extended math library") - variant( - "memstat", - when="@:6.17", - default=False, - description="Enable a memory stats utility to detect memory leaks", - ) # Minuit must not be installed as a dependency of root # otherwise it crashes with the internal minuit library variant("minuit", default=True, description="Automatically search for support libraries") variant( "mlp", default=False, - description="Enable support for TMultilayerPerceptron " "classes' federation", + description="Enable support for TMultilayerPerceptron classes' federation", ) variant( "mysql", when="@:6.36", default=False, description="Enable support for MySQL databases" @@ -337,18 +236,19 @@ class Root(CMakePackage): variant("pythia6", when="@:6.30", default=False, description="Enable pythia6 support") variant("pythia8", default=False, description="Enable pythia8 support") variant("python", default=True, description="Enable Python ROOT bindings") - variant("qt4", when="@:6.17", default=False, description="Enable Qt4 graphics backend") - variant("qt5", when="@6.12:6.34", default=False, description="Enable Qt5 web-based display") - variant("qt6", when="@6.26:", default=False, description="Enable Qt6 web-based display") + variant("qt5", when="@:6.34", default=False, description="Enable Qt5 web-based display") + variant("qt6", default=False, description="Enable Qt6 web-based display") variant("r", default=False, description="Enable R ROOT bindings") variant("rpath", default=True, description="Enable RPATH") + conflicts( + "~rpath", when="@6.38:", msg="RPATHs are always applied if operating systems supports it" + ) variant("roofit", default=True, description="Build the libRooFit advanced fitting package") variant("root7", default=False, description="Enable ROOT 7 support") variant("shadow", default=False, description="Enable shadow password support") variant("spectrum", default=False, description="Enable support for TSpectrum") variant("sqlite", default=False, description="Enable SQLite support") variant("ssl", default=False, description="Enable SSL encryption support") - variant("table", when="@:6.17", default=False, description="Build libTable contrib library") variant("tbb", default=True, description="TBB multi-threading support") variant( "tiff", @@ -356,11 +256,9 @@ class Root(CMakePackage): default=True, description="Support TIFF in image processing (requires libtiff)", ) - variant("threads", when="@:6.19.01", default=True, description="Enable using thread library") variant("tmva", default=False, description="Build TMVA multi variate analysis library") variant( "tmva-cpu", - when="@6.15.02:", default=True, description="Build TMVA with CPU support for deep learning (requires BLAS)", ) @@ -372,19 +270,16 @@ class Root(CMakePackage): ) variant( "tmva-gpu", - when="@6.15.02:", default=False, description="Build TMVA with GPU support for deep learning (requires CUDA)", ) variant( "tmva-pymva", - when="@6.17.02:", default=False, description="Enable support for Python in TMVA (requires numpy)", ) variant( "tmva-sofie", - when="@6.25.02:", default=False, description="Build TMVA with support for sofie - " "fast inference code generation (requires protobuf 3)", @@ -401,21 +296,23 @@ class Root(CMakePackage): variant( "veccore", default=False, description="Enable support for VecCore SIMD abstraction library" ) - variant( - "vmc", when="@:6.25", default=False, description="Enable the Virtual Monte Carlo interface" - ) variant( "webgui", default=True, description="Enable web-based UI components of ROOT", when="+root7" ) variant("x", default=(not _is_macos), description="Enable set of graphical options") variant("xml", default=True, description="Enable XML parser interface") variant("xrootd", default=False, description="Build xrootd file server and its client") + variant( + "builtin_llvm", + default=True, + description="Use ROOT's bundled copy of LLVM (but bundled clang is always used)", + ) # ###################### Compiler variants ######################## variant( "cxxstd", - default="11", + default="17", values=("11", "14", "17", "20", "23"), multi=False, description="Use the specified C++ standard when building.", @@ -427,10 +324,8 @@ class Root(CMakePackage): depends_on("cxx", type="build") depends_on("fortran", type="build", when="+fortran") - depends_on("cmake@3.4.3:", type="build", when="@:6.16") - depends_on("cmake@3.9:", type="build", when="@6.18.00:") - depends_on("cmake@3.16:", type="build", when="@6.26.00:") - depends_on("cmake@3.19:", type="build", when="@6.28.00: platform=darwin") + depends_on("cmake@3.16:", type="build") + depends_on("cmake@3.19:", type="build", when="platform=darwin") depends_on("cmake@3.20:", type="build", when="@6.34.00:") depends_on("pkgconfig", type="build") @@ -444,15 +339,15 @@ class Root(CMakePackage): depends_on("jpeg") depends_on("libice") depends_on("libpng") - depends_on("lz4", when="@6.13.02:") # See cmake_args, below. + depends_on("lz4") # See cmake_args, below. depends_on("ncurses") - depends_on("nlohmann-json", when="@6.24:") - depends_on("nlohmann-json@:3.10", when="@6.24:6.26.07") - depends_on("pcre") - depends_on("xxhash", when="@6.13.02:") # See cmake_args, below. + depends_on("nlohmann-json") + depends_on("pcre", when="@:6.33") + depends_on("pcre2", when="@6.34:") + depends_on("xxhash") # See cmake_args, below. depends_on("xz") depends_on("zlib-api") - depends_on("zstd", when="@6.20:") + depends_on("zstd") # X-Graphics depends_on("libx11", when="+x") @@ -473,34 +368,27 @@ class Root(CMakePackage): depends_on("libglx", when="+opengl+x") # Qt - with when("+qt4"): - conflicts("+qt5", msg="+qt? options are mutually exclusive") - conflicts("+qt6", msg="+qt? options are mutually exclusive") - depends_on("qt@4.0.0:4") with when("+qt5"): - conflicts("+qt4", msg="+qt? options are mutually exclusive") conflicts("+qt6", msg="+qt? options are mutually exclusive") depends_on("qt@5.0.0:5") with when("+qt6"): - conflicts("+qt4", msg="+qt? options are mutually exclusive") conflicts("+qt5", msg="+qt? options are mutually exclusive") depends_on("qt-base +accessibility +gui") # Python depends_on("python@2.7:", when="+python", type=("build", "run")) - depends_on("python@2.7:3.10", when="@:6.26.09 +python", type=("build", "run")) depends_on("python@3.8:", when="@6.34.00: +python", type=("build", "run")) depends_on("py-numpy", type=("build", "run"), when="+tmva-pymva") - # See: https://sft.its.cern.ch/jira/browse/ROOT-10626 - depends_on("py-numpy", type=("build", "run"), when="@6.20.00:6.20.05 +python") # TMVA depends_on("blas", when="+tmva-cpu") + requires("^openblas ~ilp64 symbol_suffix=none", when="^[virtuals=blas] openblas") depends_on("cuda", when="+tmva-gpu") depends_on("protobuf@3:", when="+tmva-sofie") # Optional dependencies depends_on("arrow", when="+arrow") + depends_on("civetweb +shared", when="+http") depends_on("cuda", when="+cuda") depends_on("cuda", when="+cudnn") depends_on("cudnn", when="+cudnn") @@ -517,7 +405,6 @@ class Root(CMakePackage): depends_on("mysql-client", when="+mysql") depends_on("openssl", when="+ssl") depends_on("openssl", when="+davix") # Also with davix - depends_on("oracle-instant-client@19.10.0.0.0", when="+oracle @:6.24.01") depends_on("postgresql", when="+postgres") depends_on("pythia6+root", when="+pythia6") depends_on("pythia8", when="+pythia8") @@ -529,26 +416,19 @@ class Root(CMakePackage): depends_on("shadow", when="+shadow") depends_on("sqlite", when="+sqlite") depends_on("tbb", when="+tbb") - # See: https://github.com/root-project/root/issues/6933 - conflicts( - "^intel-tbb@2021.1:", when="@:6.22", msg="Please use an older intel-tbb version for ROOT" - ) - conflicts( - "^intel-oneapi-tbb@2021.1:", - when="@:6.22", - msg="Please use an older intel-tbb/intel-oneapi-tbb version for ROOT", - ) - # depends_on('intel-tbb@:2021.0', when='@:6.22 ^intel-tbb') depends_on("unuran", when="+unuran") - depends_on("vc@1.0:", when="@6.07.04: +vc") - depends_on("vc@1.3.0:", when="@6.09.02: +vc") + depends_on("vc@1.3.0:", when="+vc") depends_on("vc@1.4.4:", when="@6.29.02: +vc") depends_on("vdt", when="+vdt") - depends_on("veccore@0.4.0:", when="@6.09.04: +veccore") - depends_on("veccore@0.4.2:", when="@6.11.02: +veccore") + depends_on("veccore@0.4.2:", when="+veccore") depends_on("libxml2", when="+xml") depends_on("xrootd", when="+xrootd") - depends_on("xrootd@:4", when="@:6.22.03 +xrootd") + + # External LLVM (used when ~builtin_llvm). ROOT bundles its own patched Clang + # (interpreter/llvm-project/clang) and builds it against the external LLVM, so + # vanilla LLVM is sufficient here. ROOT's patches to llvm-project only touch + # clang/, not the LLVM core. + depends_on("llvm@20.1.0:20.1", when="@6.36: ~builtin_llvm") depends_on("googletest", when="@6.28.00:", type="test") @@ -558,19 +438,25 @@ class Root(CMakePackage): # See https://sft.its.cern.ch/jira/browse/ROOT-7517 conflicts("%intel") - # ROOT <6.08 was incompatible with the GCC 5+ ABI - conflicts("%gcc@5:", when="@:6.07") - - # The version of Clang featured in ROOT <6.12 fails to build with - # GCC 9.2.1, which we can safely extrapolate to the GCC 9 series. - conflicts("%gcc@9:", when="@:6.11") + # External LLVM is only supported for ROOT 6.36+ (requires LLVM 20.1.x). + # Older ROOT versions have different LLVM major requirements that have not + # been mapped to spack dependencies yet. + conflicts( + "~builtin_llvm", + when="@:6.35", + msg="External LLVM is only supported for ROOT 6.36+ in this spack recipe", + ) + # In order to avoid adding newer versions with incorrect LLVM versions, + # newer versions are explicitly added as conflicts as well. + conflicts( + "~builtin_llvm", + when="@6.39:", + msg="External LLVM support for ROOT 6.39+ has not been validated", + ) # GCC 15 support was added in 6.34.04 conflicts("%gcc@15:", when="@:6.34.02") - # See https://github.com/root-project/root/issues/9297 - conflicts("target=ppc64le:", when="@:6.24") - # Incompatible variants if _is_macos: conflicts("+opengl", when="~x ~aqua", msg="root+opengl requires X or Aqua") @@ -587,8 +473,7 @@ class Root(CMakePackage): conflicts("+tmva-pymva", when="~tmva", msg="root+tmva-pymva requires TMVA") conflicts("+tmva-sofie", when="~tmva", msg="root+tmva-sofie requires TMVA") conflicts("~http", when="+webgui", msg="root+webgui requires HTTP") - conflicts("cxxstd=11", when="+root7", msg="root7 requires at least C++14") - conflicts("cxxstd=11", when="@6.25.02:", msg="This version of root requires at least C++14") + conflicts("cxxstd=11", msg="ROOT requires at least C++14") conflicts("cxxstd=14", when="@6.30.00:", msg="This version of root requires at least C++17") conflicts( "cxxstd=20", when="@:6.28.02", msg="C++20 support requires root version at least 6.28.04" @@ -599,24 +484,10 @@ class Root(CMakePackage): conflicts("%gcc@:10", when="cxxstd=20") - # See https://github.com/root-project/root/issues/11128 - conflicts("%clang@16:", when="@:6.26.07", msg="clang 16+ support was added in root 6.26.08") - - # See https://github.com/spack/spack/pull/44826 - if _is_macos and macos_version() == Version("12"): - conflicts("@:6.27", when="+python", msg="macOS 12 python support for 6.28: only") - - # See https://github.com/root-project/root/issues/11714 - if _is_macos and macos_version() >= Version("13"): - conflicts("@:6.26.09", msg="macOS 13 support was added in root 6.26.10") - # See https://github.com/root-project/root/issues/16219 if _is_macos and macos_version() >= Version("15"): conflicts("@:6.32.05", msg="macOS 15 support was added in root 6.32.06") - # ROOT <6.14 is incompatible with Python >=3.7, which is the minimum supported by spack - conflicts("+python", when="@:6.13", msg="Spack wants python >=3.7, too new for ROOT <6.14") - # ROOT does not support LTO builds # See https://github.com/root-project/root/issues/11135 conflicts("+ipo", msg="LTO is not a supported configuration for building ROOT") @@ -698,8 +569,6 @@ def _add_variant(variants, features, featurename, variantname): _add_variant(v, f, ("imt", "tbb"), "+tbb") if Version(version_str) <= Version("6.28"): _add_variant(v, f, "jemalloc", "+jemalloc") - if Version(version_str) <= Version("6.17"): - _add_variant(v, f, "memstat", "+memstat") _add_variant(v, f, ("minuit", "minuit2"), "+minuit") _add_variant(v, f, "mlp", "+mlp") if Version(version_str) <= Version("6.36"): @@ -712,28 +581,20 @@ def _add_variant(variants, features, featurename, variantname): _add_variant(v, f, "pythia6", "+pythia6") _add_variant(v, f, "pythia8", "+pythia8") _add_variant(v, f, "pyroot", "+python") - if Version(version_str) <= Version("6.17"): - _add_variant(v, f, ("qt", "qtgsi"), "+qt4") - if Version(version_str) >= Version("6.12") and Version(version_str) <= Version("6.34"): + if Version(version_str) <= Version("6.34"): _add_variant(v, f, "qt5web", "+qt5") - if Version(version_str) >= Version("6.26"): - _add_variant(v, f, "qt6web", "+qt6") + _add_variant(v, f, "qt6web", "+qt6") _add_variant(v, f, "r", "+r") _add_variant(v, f, "roofit", "+roofit") # webui feature renamed to webgui in 6.18 - if Version(version_str) >= Version("6.18"): - _add_variant(v, f, ("root7", "webgui"), "+webgui") - else: - _add_variant(v, f, ("root7", "webui"), "+webgui") - _add_variant(v, f, "rpath", "+rpath") + _add_variant(v, f, ("root7", "webgui"), "+webgui") + if Version(version_str) < Version("6.38"): + _add_variant(v, f, "rpath", "+rpath") + _add_variant(v, f, "runtime_cxxmodules", "+cxxmodules") _add_variant(v, f, "shadowpw", "+shadow") _add_variant(v, f, "spectrum", "+spectrum") _add_variant(v, f, "sqlite", "+sqlite") _add_variant(v, f, "ssl", "+ssl") - if Version(version_str) <= Version("6.17"): - _add_variant(v, f, "table", "+table") - if Version(version_str) <= Version("6.19.01"): - _add_variant(v, f, "thread", "+threads") _add_variant(v, f, "tmva", "+tmva") _add_variant(v, f, "tmva-cpu", "+tmva-cpu") _add_variant(v, f, "tmva-gpu", "+tmva-gpu") @@ -743,13 +604,21 @@ def _add_variant(variants, features, featurename, variantname): _add_variant(v, f, "vc", "+vc") _add_variant(v, f, "vdt", "+vdt") _add_variant(v, f, "veccore", "+veccore") - if Version(version_str) <= Version("6.25"): - _add_variant(v, f, "vmc", "+vmc") _add_variant(v, f, ("x11", "xft"), "+x") _add_variant(v, f, "xml", "+xml") _add_variant(v, f, "xrootd", "+xrootd") return " ".join(v) + def url_for_version(self, version): + dotted = version.dotted + if version < Version("6.36.04"): + # Older releases available only on CERN mirror + return f"https://root.cern/download/root_v{dotted}.source.tar.gz" + else: + # Faster downloads + dashed = version.dashed + return f"https://github.com/root-project/root/releases/download/v{dashed}/root_v{dotted}.source.tar.gz" + def cmake_args(self): define = self.define define_from_variant = self.define_from_variant @@ -766,8 +635,8 @@ def cmake_args(self): define("gnuinstall", True), define("libcxx", False), define("roottest", False), + define_from_variant("runtime_cxxmodules", "cxxmodules"), define_from_variant("rpath"), - define("runtime_cxxmodules", False), define("shared", True), define("soversion", True), define("testing", self.run_tests), @@ -776,13 +645,6 @@ def cmake_args(self): define("CLING_CXX_PATH", self.compiler.cxx), ] - if self.spec.satisfies("@:6.19.01"): - options += [ - define("explicitlink", True), - define("pch", True), - define_from_variant("thread", "threads"), - ] - if self.spec.satisfies("@:6.28"): options.append(define("cxxmodules", False)) @@ -794,6 +656,8 @@ def cmake_args(self): options += [ define("builtin_cfitsio", False), + define("builtin_civetweb", False), + define("builtin_clang", True), # use builtin_clang even when ~builtin_llvm define("builtin_davix", False), define("builtin_fftw3", False), define("builtin_freetype", False), @@ -802,8 +666,8 @@ def cmake_args(self): define("builtin_gl2ps", False), define("builtin_glew", False), define("builtin_gsl", False), - define("builtin_llvm", True), - define("builtin_lz4", self.spec.satisfies("@6.12.02:6.12")), + define_from_variant("builtin_llvm"), + define("builtin_lz4", False), define("builtin_lzma", False), define("builtin_nlohmannjson", False), define("builtin_openssl", False), @@ -814,7 +678,7 @@ def cmake_args(self): define("builtin_vdt", False), define("builtin_veccore", False), define("builtin_xrootd", False), - define("builtin_xxhash", self.spec.satisfies("@6.12.02:6.12")), + define("builtin_xxhash", False), define("builtin_zlib", False), ] @@ -869,7 +733,6 @@ def cmake_args(self): define("krb5", False), define("ldap", False), define_from_variant("mathmore", "math"), - define_from_variant("memstat"), # See conflicts define("minimal", False), define_from_variant("minuit"), define_from_variant("mlp"), @@ -878,8 +741,6 @@ def cmake_args(self): define_from_variant("oracle"), define_from_variant("pythia6"), define_from_variant("pythia8"), - define_from_variant("qt", "qt4"), # See conflicts - define_from_variant("qtgsi", "qt4"), # See conflicts define_from_variant("r"), define("rfio", False), define_from_variant("roofit"), @@ -891,7 +752,6 @@ def cmake_args(self): define_from_variant("sqlite"), define("srp", False), define_from_variant("ssl"), - define_from_variant("table"), define_from_variant("tbb"), define("tcmalloc", False), define_from_variant("tmva"), @@ -900,42 +760,25 @@ def cmake_args(self): define_from_variant("vc"), define_from_variant("vdt"), define_from_variant("veccore"), - define_from_variant("vmc"), define_from_variant("x11", "x"), define_from_variant("xft", "x"), define_from_variant("xml"), define_from_variant("xrootd"), ] - if self.spec.satisfies("@6.08.00:"): - options.append(define_from_variant("cuda")) + options.append(define_from_variant("cuda")) # Necessary due to name change of variant (webui->webgui) # https://github.com/root-project/root/commit/d631c542909f2f793ca7b06abc622e292dfc4934 - if self.spec.satisfies("@:6.17.02"): - options.append(define_from_variant("webui", "webgui")) - if self.spec.satisfies("@6.18.00:"): - options.append(define_from_variant("webgui", "webgui")) + options.append(define_from_variant("webgui", "webgui")) # Some special features - if self.spec.satisfies("@6.15.02:"): - options.append(define_from_variant("tmva-cpu")) - options.append(define_from_variant("tmva-gpu")) - - if self.spec.satisfies("@6.17.02:"): - options.append(define_from_variant("tmva-pymva")) - - if self.spec.satisfies("@:6.19.01"): - options += [define("astiff", True), define("cling", True)] - - if self.spec.satisfies("@6.20.02:"): - options.append(define_from_variant("cudnn")) - options.append(define_from_variant("pyroot", "python")) - else: - options.append(define_from_variant("python")) - - if self.spec.satisfies("@6.25.02:"): - options.append(define_from_variant("tmva-sofie")) + options.append(define_from_variant("tmva-cpu")) + options.append(define_from_variant("tmva-gpu")) + options.append(define_from_variant("tmva-pymva")) + options.append(define_from_variant("cudnn")) + options.append(define_from_variant("pyroot", "python")) + options.append(define_from_variant("tmva-sofie")) if self.spec.satisfies("@:6.30"): options.append(define_from_variant("minuit2", "minuit")) @@ -963,17 +806,17 @@ def cmake_args(self): cflags = "-D__builtin_unreachable=__builtin_trap" options.extend([define("CMAKE_C_FLAGS", cflags), define("CMAKE_CXX_FLAGS", cflags)]) - # Method for selecting C++ standard depends on ROOT version - if self.spec.satisfies("@6.18.00:"): - options.append(define_from_variant("CMAKE_CXX_STANDARD", "cxxstd")) - else: - options.append(define("cxx" + self.spec.variants["cxxstd"].value, True)) + options.append(define_from_variant("CMAKE_CXX_STANDARD", "cxxstd")) if "+x+opengl" in self.spec: ftgl_prefix = self.spec["ftgl"].prefix options.append(define("FTGL_ROOT_DIR", ftgl_prefix)) options.append(define("FTGL_INCLUDE_DIR", ftgl_prefix.include)) + # Fix RPath handling with gnuinstall + if "+rpath" in self.spec: + options.append(define("CMAKE_INSTALL_RPATH", self.prefix.lib.root)) + return options def setup_build_environment(self, env: EnvironmentModifications) -> None: @@ -995,15 +838,12 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: # system/compiler combinations don't like having -I/usr/include around. def add_include_path(dep_name): include_path = spec[dep_name].prefix.include - if not is_system_path(include_path): + if not envutil.is_system_path(include_path): env.append_path("SPACK_INCLUDE_DIRS", include_path) # With that done, let's go fixing those deps - if spec.satisfies("@:6.12"): - add_include_path("zlib-api") if "+x" in spec: - if spec.satisfies("@:6.08") or spec.satisfies("@6.22:"): - add_include_path("xextproto") + add_include_path("xextproto") add_include_path("fontconfig") add_include_path("libx11") add_include_path("xproto") @@ -1016,13 +856,15 @@ def add_include_path(dep_name): # warnings when building against ROOT env.unset("MACOSX_DEPLOYMENT_TARGET") + # https://github.com/root-project/root/issues/18949 + if "+cxxmodules" in self.spec and "+vc" in self.spec: + env.prepend_path("ROOT_INCLUDE_PATH", self.spec["vc"].prefix.include) + @property def root_library_path(self): - # Where possible, we do not use LD_LIBRARY_PATH as that is non-portable - # and pollutes the standard library-loading mechanisms on Linux systems. # The ROOT_LIBRARY_PATH environment variable was added to ROOT 6.26. - if self.spec.satisfies("@:6.25"): - return "LD_LIBRARY_PATH" + # For previous versions (no longer supported by Spack) it was + # LD_LIBRARY_PATH. return "ROOT_LIBRARY_PATH" def setup_run_environment(self, env: EnvironmentModifications) -> None: @@ -1033,8 +875,12 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: env.set("CLING_STANDARD_PCH", "none") env.set("CPPYY_API_PATH", "none") env.set("CPPYY_BACKEND_LIBRARY", self.prefix.lib.root.libcppyy_backend) - if "+rpath" not in self.spec: - env.prepend_path(self.root_library_path, self.prefix.lib.root) + # Always define ROOT's library path for downstream usage + env.prepend_path(self.root_library_path, self.prefix.lib.root) + + # https://github.com/root-project/root/issues/18949 + if "+cxxmodules" in self.spec and "+vc" in self.spec: + env.prepend_path("ROOT_INCLUDE_PATH", self.spec["vc"].prefix.include) def setup_dependent_build_environment(self, env: EnvironmentModifications, dependent_spec): env.set("ROOTSYS", self.prefix) @@ -1042,15 +888,21 @@ def setup_dependent_build_environment(self, env: EnvironmentModifications, depen env.prepend_path("PYTHONPATH", self.prefix.lib.root) env.prepend_path("PATH", self.prefix.bin) env.append_path("CMAKE_MODULE_PATH", self.prefix.cmake) - env.prepend_path("ROOT_INCLUDE_PATH", dependent_spec.prefix.include) - if "+rpath" not in self.spec: - env.prepend_path(self.root_library_path, self.prefix.lib.root) if "platform=darwin" in self.spec: # Newer deployment targets cause fatal errors in rootcling env.unset("MACOSX_DEPLOYMENT_TARGET") + # Note that setup_dependent_run_environment will add include and + # library path + + # https://github.com/root-project/root/issues/18949 + if "+cxxmodules" in self.spec and "+vc" in self.spec: + env.prepend_path("ROOT_INCLUDE_PATH", self.spec["vc"].prefix.include) + def setup_dependent_run_environment(self, env: EnvironmentModifications, dependent_spec): + # Set up runtime dependencies *of downstream packages* that use ROOT env.prepend_path("ROOT_INCLUDE_PATH", dependent_spec.prefix.include) + # For dependents that build dictionaries, ROOT needs to know where the # dictionaries have been installed. This can be facilitated by # automatically prepending dependent package library paths to diff --git a/repos/spack_repo/builtin/packages/root/root6-60606-mathmore.patch b/repos/spack_repo/builtin/packages/root/root6-60606-mathmore.patch deleted file mode 100644 index d009a5af0de..00000000000 --- a/repos/spack_repo/builtin/packages/root/root6-60606-mathmore.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/math/mathmore/inc/Math/QuantFuncMathMore.h b/math/mathmore/inc/Math/QuantFuncMathMore.h -index fd6679c..03ccc03 100644 ---- a/math/mathmore/inc/Math/QuantFuncMathMore.h -+++ b/math/mathmore/inc/Math/QuantFuncMathMore.h -@@ -25,17 +25,6 @@ - **********************************************************************/ - - --#if defined(__CINT__) && !defined(__MAKECINT__) --// avoid to include header file when using CINT --#ifndef _WIN32 --#include "../lib/libMathMore.so" --#else --#include "../bin/libMathMore.dll" --#endif -- --#else -- -- - #ifndef ROOT_Math_QuantFuncMathMore - #define ROOT_Math_QuantFuncMathMore - -@@ -190,5 +179,3 @@ namespace MathMore { - - - #endif // ROOT_Math_QuantFuncMathMore -- --#endif // if defined (__CINT__) && !defined(__MAKECINT__) - diff --git a/repos/spack_repo/builtin/packages/root/root7-webgui.patch b/repos/spack_repo/builtin/packages/root/root7-webgui.patch deleted file mode 100644 index 61cf5150d3c..00000000000 --- a/repos/spack_repo/builtin/packages/root/root7-webgui.patch +++ /dev/null @@ -1,106 +0,0 @@ -diff --git a/cmake/modules/CheckCompiler.cmake b/cmake/modules/CheckCompiler.cmake -index 71f628f7f6..56d64fee43 100644 ---- a/cmake/modules/CheckCompiler.cmake -+++ b/cmake/modules/CheckCompiler.cmake -@@ -130,10 +130,10 @@ if(cxx17) - endif() - if(root7) - if(cxx11) -- message(STATUS "ROOT7 interfaces require >= cxx14 which is disabled. Switching OFF root7 option") -- set(root7 OFF CACHE BOOL "" FORCE) -+ message(FATAL ERROR "ROOT 7 requires C++14 or higher") -+ elseif(NOT http) -+ set(http ON CACHE BOOL "(Enabled since it's needed by ROOT 7)" FORCE) - endif() -- set(http ON CACHE BOOL "" FORCE) - endif() - - #---Check for libcxx option------------------------------------------------------------ -diff --git a/cmake/modules/RootBuildOptions.cmake b/cmake/modules/RootBuildOptions.cmake -index f1e6237592..4406549367 100644 ---- a/cmake/modules/RootBuildOptions.cmake -+++ b/cmake/modules/RootBuildOptions.cmake -@@ -156,6 +156,7 @@ ROOT_BUILD_OPTION(qt5web OFF "Enable support for Qt5 web-based display (requires - ROOT_BUILD_OPTION(r OFF "Enable support for R bindings (requires R, Rcpp, and RInside)") - ROOT_BUILD_OPTION(rfio OFF "Enable support for RFIO (Remote File IO) for CASTOR") - ROOT_BUILD_OPTION(roofit ON "Build RooFit advanced fitting package") -+ROOT_BUILD_OPTION(webui ON "Build Web-based UI components of ROOT (requires C++14 standard or higher)") - ROOT_BUILD_OPTION(root7 OFF "Build ROOT 7 components of ROOT (requires C++14 standard or higher)") - ROOT_BUILD_OPTION(rpath OFF "Link libraries with built-in RPATH (run-time search path)") - ROOT_BUILD_OPTION(runtime_cxxmodules OFF "Enable runtime support for C++ modules") -@@ -317,6 +318,17 @@ endforeach() - #---Apply root7 versus language------------------------------------------------------------------ - if(cxx14 OR cxx17 OR cxx14_defval OR cxx17_defval) - set(root7_defvalue ON) -+else() -+ set(root7_defvalue OFF) -+ set(webui_defvalue OFF) -+endif() -+ -+if(webui) -+ if(cxx11) -+ message(FATAL_ERROR "WebUI requires C++14 or higher") -+ elseif(NOT http) -+ set(http ON CACHE BOOL "(Enabled since it's needed by webui)" FORCE) -+ endif() - endif() - - #---roottest option implies testing -diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake -index 8273d5e382..7598ccaaeb 100644 ---- a/cmake/modules/SearchInstalledSoftware.cmake -+++ b/cmake/modules/SearchInstalledSoftware.cmake -@@ -1599,14 +1599,16 @@ endif() - - - #------------------------------------------------------------------------------------ --ExternalProject_Add( -- OPENUI5 -- URL ${CMAKE_SOURCE_DIR}/net/http/openui5/openui5.tar.gz -- URL_HASH SHA256=32e50e3e8808295c67ecb7561ea9cd9beb76dd934263170fbbd05ff59b6d501d -- CONFIGURE_COMMAND "" -- BUILD_COMMAND "" -- INSTALL_COMMAND "" -- SOURCE_DIR ${CMAKE_BINARY_DIR}/etc/http/openui5dist) -+if(webui) -+ ExternalProject_Add( -+ OPENUI5 -+ URL ${CMAKE_SOURCE_DIR}/net/http/openui5/openui5.tar.gz -+ URL_HASH SHA256=32e50e3e8808295c67ecb7561ea9cd9beb76dd934263170fbbd05ff59b6d501d -+ CONFIGURE_COMMAND "" -+ BUILD_COMMAND "" -+ INSTALL_COMMAND "" -+ SOURCE_DIR ${CMAKE_BINARY_DIR}/etc/http/openui5dist) -+endif() - - #---Report removed options--------------------------------------------------- - foreach(opt afs glite sapdb srp chirp ios) -diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt -index 499c427180..38b73b29cd 100644 ---- a/gui/CMakeLists.txt -+++ b/gui/CMakeLists.txt -@@ -6,7 +6,7 @@ add_subdirectory(guihtml) - add_subdirectory(recorder) - add_subdirectory(sessionviewer) - --if(cxx14 OR cxx17 OR root7) -+if(webui) - add_subdirectory(webdisplay) - if(cefweb) - add_subdirectory(cefdisplay) -@@ -15,11 +15,10 @@ if(cxx14 OR cxx17 OR root7) - add_subdirectory(qt5webdisplay) - endif() - add_subdirectory(webgui6) --endif() -- --if(root7) -- add_subdirectory(canvaspainter) -- add_subdirectory(fitpanelv7) -+ if(root7) -+ add_subdirectory(canvaspainter) -+ add_subdirectory(fitpanelv7) -+ endif() - endif() - if(qtgsi) - add_subdirectory(qtgsi) diff --git a/repos/spack_repo/builtin/packages/roounfold/package.py b/repos/spack_repo/builtin/packages/roounfold/package.py new file mode 100644 index 00000000000..94cc428db0c --- /dev/null +++ b/repos/spack_repo/builtin/packages/roounfold/package.py @@ -0,0 +1,36 @@ +# 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 Roounfold(CMakePackage): + """RooUnfold — Unfolding framework based on RooFit/ROOT. + + A framework implementing several unfolding algorithms for use in HEP analyses. + """ + + homepage = "https://gitlab.cern.ch/RooUnfold/RooUnfold" + url = "https://gitlab.cern.ch/RooUnfold/RooUnfold/-/archive/3.1.0/RooUnfold-3.1.0.zip" + git = "https://gitlab.cern.ch/RooUnfold/RooUnfold.git" + + tags = ["hep"] + + maintainers("wdconinc") + + license("BSD-3-Clause", checked_by="wdconinc") + + version("3.1.0", sha256="51daf6373971512ce5882574bb18a373e68a0a2e1f824141ff99d6488d43cbf9") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("cmake@3.18:", type="build") + + depends_on("root+roofit") + + def cmake_args(self): + args = [self.define("CMAKE_DISABLE_FIND_PACKAGE_Doxygen", True)] + return args diff --git a/repos/spack_repo/builtin/packages/rose/package.py b/repos/spack_repo/builtin/packages/rose/package.py index d6f3b8729a5..f740276bb7b 100644 --- a/repos/spack_repo/builtin/packages/rose/package.py +++ b/repos/spack_repo/builtin/packages/rose/package.py @@ -133,11 +133,11 @@ class Rose(AutotoolsPackage): def autoreconf(self, spec, prefix): with working_dir(self.stage.source_path): - bash = which("bash") + bash = which("bash", required=True) bash("build") if "+edg_source" in spec: - git = which("git") + git = which("git", required=True) git( "clone", "rose-dev@rosecompiler1.llnl.gov:rose/edg4x/edg.git", @@ -240,13 +240,13 @@ def build(self, spec, prefix): make() if "+polyopt" in spec: - mkdir = which("mkdir") + mkdir = which("mkdir", required=True) mkdir("-p", "projects/PolyOpt2") with working_dir("projects/PolyOpt2"): env["ROSE_SRC"] = self.stage.source_path env["ROSE_ROOT"] = self.prefix - bash = which("bash") + bash = which("bash", required=True) bash(join_path(self.stage.source_path, "projects/PolyOpt2/install.sh")) def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/routinator/package.py b/repos/spack_repo/builtin/packages/routinator/package.py index e8d0980fadc..88f0303130f 100644 --- a/repos/spack_repo/builtin/packages/routinator/package.py +++ b/repos/spack_repo/builtin/packages/routinator/package.py @@ -19,16 +19,10 @@ class Routinator(Package): version("0.14.0", sha256="861e90f395344be19880485185df47e8fd258cc583b82be702af660b466955cb") version("0.12.1", sha256="8150fe544f89205bb2d65bca46388f055cf13971d3163fe17508bf231f9ab8bc") - version( - "0.11.2", - sha256="00f825c53168592da0285e8dbd228018e77248d458214a2c0f86cd0ca45438f5", - deprecated=True, - ) - depends_on("rust@1.56:", when="@0.11.2") depends_on("rust@1.63:", when="@0.12.1") depends_on("rust@1.70:", when="@0.13.0:") def install(self, spec, prefix): - cargo = which("cargo") + cargo = which("cargo", required=True) cargo("install", "--root", prefix, "--path", ".") diff --git a/repos/spack_repo/builtin/packages/rpm/package.py b/repos/spack_repo/builtin/packages/rpm/package.py index 856efb832b7..393d40c35dc 100644 --- a/repos/spack_repo/builtin/packages/rpm/package.py +++ b/repos/spack_repo/builtin/packages/rpm/package.py @@ -114,7 +114,7 @@ class Rpm(AutotoolsPackage): conflicts("~lua", when="@4.17:") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh", "--noconfigure") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/rpp/0003-include-half-through-spack-package.patch b/repos/spack_repo/builtin/packages/rpp/0003-include-half-through-spack-package.patch index 2e7e08c2ac7..8bad49d3251 100644 --- a/repos/spack_repo/builtin/packages/rpp/0003-include-half-through-spack-package.patch +++ b/repos/spack_repo/builtin/packages/rpp/0003-include-half-through-spack-package.patch @@ -1,61 +1,61 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 137896e..ca82e98 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -129,6 +129,9 @@ list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) - - # OpenMP - find_package(OpenMP REQUIRED) -+find_path(HALF_INCLUDE_DIR half.hpp) -+message(STATUS "HALF_INCLUDE_DIR: ${HALF_INCLUDE_DIR}") -+ - if(APPLE) - if(CMAKE_C_COMPILER_ID MATCHES "Clang") - set(OpenMP_C "${CMAKE_C_COMPILER}") -@@ -278,6 +281,7 @@ target_include_directories(${PROJECT_NAME} - PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/include - ${ROCM_PATH}/include -+ ${HALF_INCLUDE_DIR} - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/src/include/cpu - ${CMAKE_CURRENT_SOURCE_DIR}/src/include/common -diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt -index 2a64d77..80c5686 100644 ---- a/src/modules/CMakeLists.txt -+++ b/src/modules/CMakeLists.txt -@@ -81,6 +81,8 @@ if("${TIME_INFO}" STREQUAL "1") - endif() - - # Backend specific settings -+find_path(HALF_INCLUDE_DIR half.hpp) -+message(STATUS "HALF_INCLUDE_DIR: ${HALF_INCLUDE_DIR}") - - if( "${BACKEND}" STREQUAL "HIP") - # Add HIP kernels -@@ -99,7 +101,7 @@ if( "${BACKEND}" STREQUAL "HIP") - # Add HIP specific includes - set(ROCM_INC ${ROCM_PATH}/include/) - list(APPEND HIP_LOCAL_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/src/include/hip/ ${CMAKE_SOURCE_DIR}/src/include/common/) -- set(INCLUDE_LIST ${ROCM_INC} ${HIP_LOCAL_INCLUDE_DIRS} ${INCLUDE_LIST}) -+ set(INCLUDE_LIST ${ROCM_INC} ${HIP_LOCAL_INCLUDE_DIRS} ${INCLUDE_LIST} ${HALF_INCLUDE_DIR}) - elseif( "${BACKEND}" STREQUAL "OCL") - # Add OpenCL kernels - file(GLOB MOD_CL_CPP "cl/*.cpp" ) -@@ -114,7 +116,7 @@ elseif( "${BACKEND}" STREQUAL "OCL") - # Add OpenCL specific includes - set(ROCM_INC ${ROCM_PATH}/include/) - list(APPEND OCL_LOCAL_INCLUDE_LIST ${CMAKE_SOURCE_DIR}/src/include/cl/ ${CMAKE_SOURCE_DIR}/src/include/common/) -- set(INCLUDE_LIST ${ROCM_INC} ${OCL_LOCAL_INCLUDE_LIST} ${INCLUDE_LIST}) -+ set(INCLUDE_LIST ${ROCM_INC} ${OCL_LOCAL_INCLUDE_LIST} ${INCLUDE_LIST} ${HALF_INCLUDE_DIR}) - elseif( "${BACKEND}" STREQUAL "CPU") - # Add CPU specific includes - set(INCLUDE_LIST ${CMAKE_SOURCE_DIR}/src/include/common/) -@@ -136,6 +138,7 @@ target_include_directories( ${PROJECT_NAME} - PUBLIC - ${CMAKE_SOURCE_DIR}/include - ${ROCM_INC} -+ ${HALF_INCLUDE_DIR} - PRIVATE - ${CMAKE_SOURCE_DIR}/src/include/cpu +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 137896e..ca82e98 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -129,6 +129,9 @@ list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) + + # OpenMP + find_package(OpenMP REQUIRED) ++find_path(HALF_INCLUDE_DIR half.hpp) ++message(STATUS "HALF_INCLUDE_DIR: ${HALF_INCLUDE_DIR}") ++ + if(APPLE) + if(CMAKE_C_COMPILER_ID MATCHES "Clang") + set(OpenMP_C "${CMAKE_C_COMPILER}") +@@ -278,6 +281,7 @@ target_include_directories(${PROJECT_NAME} + PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${ROCM_PATH}/include ++ ${HALF_INCLUDE_DIR} + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/src/include/cpu + ${CMAKE_CURRENT_SOURCE_DIR}/src/include/common +diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt +index 2a64d77..80c5686 100644 +--- a/src/modules/CMakeLists.txt ++++ b/src/modules/CMakeLists.txt +@@ -81,6 +81,8 @@ if("${TIME_INFO}" STREQUAL "1") + endif() + + # Backend specific settings ++find_path(HALF_INCLUDE_DIR half.hpp) ++message(STATUS "HALF_INCLUDE_DIR: ${HALF_INCLUDE_DIR}") + + if( "${BACKEND}" STREQUAL "HIP") + # Add HIP kernels +@@ -99,7 +101,7 @@ if( "${BACKEND}" STREQUAL "HIP") + # Add HIP specific includes + set(ROCM_INC ${ROCM_PATH}/include/) + list(APPEND HIP_LOCAL_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/src/include/hip/ ${CMAKE_SOURCE_DIR}/src/include/common/) +- set(INCLUDE_LIST ${ROCM_INC} ${HIP_LOCAL_INCLUDE_DIRS} ${INCLUDE_LIST}) ++ set(INCLUDE_LIST ${ROCM_INC} ${HIP_LOCAL_INCLUDE_DIRS} ${INCLUDE_LIST} ${HALF_INCLUDE_DIR}) + elseif( "${BACKEND}" STREQUAL "OCL") + # Add OpenCL kernels + file(GLOB MOD_CL_CPP "cl/*.cpp" ) +@@ -114,7 +116,7 @@ elseif( "${BACKEND}" STREQUAL "OCL") + # Add OpenCL specific includes + set(ROCM_INC ${ROCM_PATH}/include/) + list(APPEND OCL_LOCAL_INCLUDE_LIST ${CMAKE_SOURCE_DIR}/src/include/cl/ ${CMAKE_SOURCE_DIR}/src/include/common/) +- set(INCLUDE_LIST ${ROCM_INC} ${OCL_LOCAL_INCLUDE_LIST} ${INCLUDE_LIST}) ++ set(INCLUDE_LIST ${ROCM_INC} ${OCL_LOCAL_INCLUDE_LIST} ${INCLUDE_LIST} ${HALF_INCLUDE_DIR}) + elseif( "${BACKEND}" STREQUAL "CPU") + # Add CPU specific includes + set(INCLUDE_LIST ${CMAKE_SOURCE_DIR}/src/include/common/) +@@ -136,6 +138,7 @@ target_include_directories( ${PROJECT_NAME} + PUBLIC + ${CMAKE_SOURCE_DIR}/include + ${ROCM_INC} ++ ${HALF_INCLUDE_DIR} + PRIVATE + ${CMAKE_SOURCE_DIR}/src/include/cpu ${CMAKE_SOURCE_DIR}/src/include/common \ No newline at end of file diff --git a/repos/spack_repo/builtin/packages/rpp/package.py b/repos/spack_repo/builtin/packages/rpp/package.py index 14d59937141..37cd48ce800 100644 --- a/repos/spack_repo/builtin/packages/rpp/package.py +++ b/repos/spack_repo/builtin/packages/rpp/package.py @@ -2,21 +2,27 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary, ROCmPackage from spack_repo.builtin.packages.boost.package import Boost from spack.package import * -class Rpp(CMakePackage): +class Rpp(ROCmLibrary, CMakePackage): """Radeon Performance Primitives (RPP) library is a comprehensive high- performance computer vision library for AMD (CPU and GPU) with HIP and OPENCL back-ends""" homepage = "https://github.com/ROCm/rpp" git = "https://github.com/ROCm/rpp.git" - url = "https://github.com/ROCm/rpp/archive/refs/tags/rocm-6.4.1.tar.gz" + url = "https://github.com/ROCm/rpp/archive/refs/tags/rocm-6.4.3.tar.gz" + + tags = ["rocm"] + maintainers("srekolam", "afzpatel") + libraries = ["librpp"] + + license("MIT") def url_for_version(self, version): if version >= Version("5.7.0"): @@ -25,11 +31,15 @@ def url_for_version(self, version): url = "https://github.com/GPUOpen-ProfessionalCompute-Libraries/rpp/archive/{0}.tar.gz" return url.format(version) - tags = ["rocm"] - - maintainers("srekolam", "afzpatel") - license("MIT") - + version("7.2.3", sha256="348c08e5079e5f68403570e593d4c2f72e4bdaafdd38a0e57725353a16b6a66e") + version("7.2.1", sha256="5132d89449fcb94940414d157f5a21b2de9ac4a63237235d96cabca882baf503") + version("7.2.0", sha256="9240e325cd5adf7aa9842851d638394a25d3a784a6a206e8e96d7ae4d59b8d35") + version("7.1.1", sha256="3a13444acc86d307ff559b0282f11ec57ae5c89dec52a2f9f85e3757d9e66e35") + version("7.1.0", sha256="65d815f4957b27c1f994d4d905a107536fe90ffa4c229c015c241687f11fe2c0") + version("7.0.2", sha256="0836daecfde5dd7daa4269baae32d996d40ab6864622ad16000d00cf2aeac676") + version("7.0.0", sha256="b2ab0131480127a45386b3142168308bdbce7689c9a95e71c7b7a6481510fdad") + version("6.4.3", sha256="3c098c8951fb2730ecedbc57a4f966b344f630bc48fb3a6d33c62af28cf52cde") + version("6.4.2", sha256="55966e3d099748ae3fd9784ef23c8639fd84e0f602bf57a22513048cbe82c066") version("6.4.1", sha256="448973f167ca9aad9628acc7d06a06c6443a34dc23a4fa325eefaf37a52ce242") version("6.4.0", sha256="e59e5aa6b140de062430cab03c9c2b88a3b444c53ae17c6b885898e16aefd39b") version("6.3.3", sha256="e6b586679a3705bf6b7bb3c5852541d329bd967e110999ac59dc052b49a92cbc") @@ -46,13 +56,15 @@ def url_for_version(self, version): version("6.0.0", sha256="3626a648bc773520f5cd5ca15f494de6e74b422baf32491750ce0737c3367f15") version("5.7.1", sha256="36fff5f1c52d969c3e2e0c75b879471f731770f193c9644aa6ab993fb8fa4bbf") version("5.7.0", sha256="1c612cde3c3d3840ae75ee5c1ee59bd8d61b1fdbf84421ae535cda863470fc06") - with default_args(deprecated=True): - version("1.2.0", sha256="660a11e1bd8706967835597b26daa874fd1507459bfebe22818149444bec540c") - version("1.1.0", sha256="9b1b9e721df27ee577819710b261071c68b2dccba96d9daf5d0535ee5f0e045f") - version("1.0.0", sha256="040601e356b0a06c4ffb2043320ae822ab0da78af867392002c7b68dbd85989c") - version("0.99", sha256="f1d7ec65d0148ddb7b3ce836a7e058727036df940d72d1683dee590a913fd44a") - version("0.98", sha256="191b5d89bf990ae22b5ef73675b89ed4371c3ce342ab9cc65383fa12ef13086e") - version("0.97", sha256="8ce1a869ff67a29579d87d399d8b0bd97bf12ae1b6b1ca1f161cb8a262fb9939") + + amdgpu_targets = ROCmPackage.amdgpu_targets + + variant( + "amdgpu_target", + description="AMD GPU architecture", + values=auto_or_any_combination_of(*amdgpu_targets), + sticky=True, + ) variant( "build_type", @@ -77,7 +89,7 @@ def url_for_version(self, version): conflicts("+asan", when="os=centos8") patch("0001-include-half-openmp-through-spack-package.patch", when="@:5.7") - patch("0002-declare-handle-in-header.patch") + patch("0002-declare-handle-in-header.patch", when="@:6.4") patch("0003-include-half-through-spack-package.patch", when="@6.0:6.3") # adds half.hpp include directory and modifies how the libjpegturbo @@ -159,7 +171,7 @@ def patch(self): when="@1.0:", ) depends_on("libjpeg-turbo", type=("build", "link")) - depends_on("rocm-openmp-extras") + depends_on("rocm-openmp-extras", when="@:7.1") conflicts("+opencl+hip") with when("+hip"): @@ -181,6 +193,15 @@ def patch(self): "6.3.3", "6.4.0", "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", ]: depends_on("hip@" + ver, when="@" + ver) with when("@:1.2"): @@ -206,7 +227,8 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: def cmake_args(self): spec = self.spec args = [] - args.append(self.define("ROCM_OPENMP_EXTRAS_DIR", spec["rocm-openmp-extras"].prefix)) + if self.spec.satisfies("@:7.1"): + args.append(self.define("ROCM_OPENMP_EXTRAS_DIR", spec["rocm-openmp-extras"].prefix)) if self.spec.satisfies("+opencl"): args.append(self.define("BACKEND", "OPENCL")) if self.spec.satisfies("+cpu"): @@ -225,4 +247,6 @@ def cmake_args(self): "CMAKE_CXX_COMPILER", f"{self.spec['llvm-amdgpu'].prefix}/bin/amdclang++" ) ) + if "auto" not in self.spec.variants["amdgpu_target"]: + args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target")) return args diff --git a/repos/spack_repo/builtin/packages/rstudio/package.py b/repos/spack_repo/builtin/packages/rstudio/package.py index 4cb7a4952e8..f4e9724d205 100644 --- a/repos/spack_repo/builtin/packages/rstudio/package.py +++ b/repos/spack_repo/builtin/packages/rstudio/package.py @@ -133,7 +133,7 @@ def install_deps(self): pandoc_dir = join_path(self.prefix.tools, "pandoc", self.spec["pandoc"].version) os.makedirs(pandoc_dir) with working_dir(pandoc_dir): - os.symlink(self.spec["pandoc"].prefix.bin.pandoc, "pandoc") - os.symlink( + symlink(self.spec["pandoc"].prefix.bin.pandoc, "pandoc") + symlink( os.path.join(self.spec["pandoc"].prefix.bin, "pandoc-citeproc"), "pandoc-citeproc" ) diff --git a/repos/spack_repo/builtin/packages/rsync/package.py b/repos/spack_repo/builtin/packages/rsync/package.py index 935d12a2587..71e1b04ae3f 100644 --- a/repos/spack_repo/builtin/packages/rsync/package.py +++ b/repos/spack_repo/builtin/packages/rsync/package.py @@ -13,69 +13,17 @@ class Rsync(AutotoolsPackage): """An open source utility that provides fast incremental file transfer.""" homepage = "https://rsync.samba.org" - url = "https://download.samba.org/pub/rsync/src/rsync-3.3.0.tar.gz" + url = "https://download.samba.org/pub/rsync/src/rsync-3.4.2.tar.gz" license("GPL-3.0-or-later") + executables = ["^rsync$"] + + version("3.4.3", sha256="c72e63ca3021cbc80ba86ec30102773f4c5631fbc492b52e773b3958f82a53d3") + version("3.4.2", sha256="ff10aa2c151cd4b2dbbe6135126dbc854046113d2dfb49572a348233267eb315") version("3.4.1", sha256="2924bcb3a1ed8b551fc101f740b9f0fe0a202b115027647cf69850d65fd88c52") version("3.4.0", sha256="8e942f95a44226a012fe822faffa6c7fc38c34047add3a0c941e9bc8b8b93aa4") - # Releases before 3.4.0 are deprecated because of CVE-2024-12084 - # https://nvd.nist.gov/vuln/detail/CVE-2024-12084 - version( - "3.3.0", - sha256="7399e9a6708c32d678a72a63219e96f23be0be2336e50fd1348498d07041df90", - deprecated=True, - ) - version( - "3.2.7", - sha256="4e7d9d3f6ed10878c58c5fb724a67dacf4b6aac7340b13e488fb2dc41346f2bb", - deprecated=True, - ) - version( - "3.2.6", - sha256="fb3365bab27837d41feaf42e967c57bd3a47bc8f10765a3671efd6a3835454d3", - deprecated=True, - ) - version( - "3.2.5", - sha256="2ac4d21635cdf791867bc377c35ca6dda7f50d919a58be45057fd51600c69aba", - deprecated=True, - ) - - # Releases before 3.2.5 are deprecated because of CVE-2022-29154 - # https://nvd.nist.gov/vuln/detail/CVE-2022-29154 - version( - "3.2.4", - sha256="6f761838d08052b0b6579cf7f6737d93e47f01f4da04c5d24d3447b7f2a5fad1", - deprecated=True, - ) - version( - "3.2.3", - sha256="becc3c504ceea499f4167a260040ccf4d9f2ef9499ad5683c179a697146ce50e", - deprecated=True, - ) - version( - "3.2.2", - sha256="644bd3841779507665211fd7db8359c8a10670c57e305b4aab61b4e40037afa8", - deprecated=True, - ) - version( - "3.1.3", - sha256="55cc554efec5fdaad70de921cd5a5eeb6c29a95524c715f3bbf849235b0800c0", - deprecated=True, - ) - version( - "3.1.2", - sha256="ecfa62a7fa3c4c18b9eccd8c16eaddee4bd308a76ea50b5c02a5840f09c0a1c2", - deprecated=True, - ) - version( - "3.1.1", - sha256="7de4364fcf5fe42f3bdb514417f1c40d10bbca896abe7e7f2c581c6ea08a2621", - deprecated=True, - ) - depends_on("c", type="build") depends_on("cxx", type="build") depends_on("zlib-api") @@ -87,8 +35,6 @@ class Rsync(AutotoolsPackage): conflicts("%nvhpc") - executables = ["^rsync$"] - @classmethod def determine_version(cls, exe): output = Executable(exe)("--version", output=str, error=str) diff --git a/repos/spack_repo/builtin/packages/rsyslog/package.py b/repos/spack_repo/builtin/packages/rsyslog/package.py index ef5ee496e5c..184682e1303 100644 --- a/repos/spack_repo/builtin/packages/rsyslog/package.py +++ b/repos/spack_repo/builtin/packages/rsyslog/package.py @@ -16,17 +16,6 @@ class Rsyslog(AutotoolsPackage): license("Apache-2.0 AND GPL-3.0-or-later AND LGPL-3.0-or-later", checked_by="tgamblin") version("8.2410.0", sha256="0e4e6fcb1d72a1cb65438d85dd2bbf37a8f82115d7e271788535d1e7fbcf6838") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2022-24903 - version( - "8.2006.0", sha256="dc30a2ec02d5fac91d3a4f15a00641e0987941313483ced46592ab0b0d68f324" - ) - version( - "8.2004.0", sha256="b56b985fec076a22160471d389b7ff271909dfd86513dad31e401a775a6dfdc2" - ) - version( - "8.2002.0", sha256="b31d56311532335212ef2ea7be4501508224cb21f1bef9d262c6d78e21959ea1" - ) depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/ruby/package.py b/repos/spack_repo/builtin/packages/ruby/package.py index 38b0a395eaa..35a72f4d3b9 100644 --- a/repos/spack_repo/builtin/packages/ruby/package.py +++ b/repos/spack_repo/builtin/packages/ruby/package.py @@ -47,7 +47,6 @@ class Ruby(AutotoolsPackage, NMakePackage): for _platform_condition in ("platform=linux", "platform=darwin"): with when(_platform_condition): - variant("openssl", default=True, description="Enable OpenSSL support") variant("readline", default=False, description="Enable Readline support") variant("yjit", default=False, description="Enable Rust JIT", when="@3.2:") depends_on("pkgconfig", type="build") @@ -58,9 +57,6 @@ class Ruby(AutotoolsPackage, NMakePackage): depends_on("readline", when="+readline") depends_on("zlib-api") depends_on("libyaml", when="@3:") - with when("+openssl"): - depends_on("openssl@:1") - depends_on("openssl@:1.0", when="@:2.3") with when("+yjit"): depends_on("rust@1.58:") @@ -75,16 +71,6 @@ class Ruby(AutotoolsPackage, NMakePackage): patch("ruby_23_gcc7.patch", level=0, when="@2.3.0:2.3.4 %gcc@7:") patch("ruby_24_gcc7.patch", level=1, when="@2.4.0 %gcc@7:") - resource( - name="rubygems-updated-ssl-cert", - url="https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem", - sha256="df68841998b7fd098a9517fe971e97890be0fc93bbe1b2a1ef63ebdea3111c80", - when="+openssl", - destination="", - placement="rubygems-updated-ssl-cert", - expand=False, - ) - executables = ["^ruby$"] @classmethod @@ -134,8 +120,6 @@ def setup_dependent_build_environment( class AutotoolsBuilder(autotools.AutotoolsBuilder, SetupEnvironment): def configure_args(self): args = [] - if "+openssl" in self.spec: - args.append("--with-openssl-dir=%s" % self.spec["openssl"].prefix) if "+readline" in self.spec: args.append("--with-readline-dir=%s" % self.spec["readline"].prefix) if "^tk" in self.spec: @@ -153,19 +137,6 @@ def post_install(self): https://guides.rubygems.org/ssl-certificate-update/ for details. """ - if self.spec.satisfies("+openssl"): - rubygems_updated_cert_path = join_path( - self.pkg.stage.source_path, "rubygems-updated-ssl-cert", "GlobalSignRootCA.pem" - ) - rubygems_certs_path = join_path( - self.spec.prefix.lib, - "ruby", - "{0}.0".format(self.spec.version.up_to(2)), - "rubygems", - "ssl_certs", - ) - install(rubygems_updated_cert_path, rubygems_certs_path) - rbconfig = find(self.prefix, "rbconfig.rb")[0] filter_file( r'^(\s*CONFIG\["CXX"\]\s*=\s*).*', r'\1"{0}"'.format(self.pkg.compiler.cxx), rbconfig diff --git a/repos/spack_repo/builtin/packages/ruby_charlock_holmes/package.py b/repos/spack_repo/builtin/packages/ruby_charlock_holmes/package.py new file mode 100644 index 00000000000..7db6c6ab712 --- /dev/null +++ b/repos/spack_repo/builtin/packages/ruby_charlock_holmes/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.ruby import RubyPackage + +from spack.package import * + + +class RubyCharlockHolmes(RubyPackage): + """Character encoding detection, brought to you by ICU.""" + + homepage = "https://github.com/brianmario/charlock_holmes" + url = "https://rubygems.org/downloads/charlock_holmes-0.7.9.gem" + + license("MIT", checked_by="suzanneprentice") + + version( + "0.7.9", + sha256="b49e8a11ce1921e2c5b65511bb864ae51720ce9bd1c336ccf0e89e6c8ae62db0", + expand=False, + ) + + depends_on("icu4c@74.2", type=("build", "link", "run")) + + def install(self, spec, prefix): + gem( + "install", + "--install-dir", + prefix, + "charlock_holmes", + "--", + f"--with-icu-dir={spec['icu4c'].prefix}", + ) diff --git a/repos/spack_repo/builtin/packages/ruby_gist/package.py b/repos/spack_repo/builtin/packages/ruby_gist/package.py index 787a6db9d26..f287c31be35 100644 --- a/repos/spack_repo/builtin/packages/ruby_gist/package.py +++ b/repos/spack_repo/builtin/packages/ruby_gist/package.py @@ -8,7 +8,9 @@ class RubyGist(RubyPackage): - """The gist gem provides a gist command that you can use from your terminal to upload content to https://gist.github.com/.""" + """The gist gem provides a gist command that you can use from your terminal to upload content + to https://gist.github.com/. + """ homepage = "https://github.com/defunkt/gist" url = "https://rubygems.org/downloads/gist-6.0.0.gem" diff --git a/repos/spack_repo/builtin/packages/rust/package.py b/repos/spack_repo/builtin/packages/rust/package.py index 8ee8f40220b..38f4efda780 100644 --- a/repos/spack_repo/builtin/packages/rust/package.py +++ b/repos/spack_repo/builtin/packages/rust/package.py @@ -17,6 +17,8 @@ class Rust(Package): url = "https://static.rust-lang.org/dist/rustc-1.42.0-src.tar.gz" git = "https://github.com/rust-lang/rust.git" + tags = ["build-tools"] + maintainers("alecbcs") license("Apache-2.0 OR MIT") @@ -36,6 +38,9 @@ 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") version("1.83.0", sha256="722d773bd4eab2d828d7dd35b59f0b017ddf9a97ee2b46c1b7f7fac5c8841c6e") version("1.81.0", sha256="872448febdff32e50c3c90a7e15f9bb2db131d13c588fe9071b0ed88837ccfa7") @@ -84,6 +89,9 @@ 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") depends_on("rust-bootstrap@1.82:1.83", type="build", when="@1.83") depends_on("rust-bootstrap@1.80:1.81", type="build", when="@1.81") @@ -108,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) @@ -176,6 +188,23 @@ def get_test_path(p): if certs is not None: env.set("CARGO_HTTP_CAINFO", certs) + def setup_dependent_build_environment( + self, env: EnvironmentModifications, dependent_spec: Spec + ) -> None: + env.set("CARGO_HOME", join_path(dependent_spec.package.stage.path, "cargo")) + + # Until we get a little more integration with cargo or offload solving to spack + # (how to do this is TBD), we need it to fall back to older package versions + # when the latest version doesn't support our rust toolchain version. This + # option allows Spack to be slightly behind the latest rust in CI. + # + # This is safe as long as rust is using static libraries and there are not ABI + # dependencies among rust packages in Spack. + # + # This is supported in Cargo 1.84 and higher. + if self.spec.satisfies("@1.84:"): + env.set("CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS", "fallback") + def configure(self, spec, prefix): opts = [] diff --git a/repos/spack_repo/builtin/packages/rust_bootstrap/package.py b/repos/spack_repo/builtin/packages/rust_bootstrap/package.py index 54dae517bbd..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,39 @@ 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", + "aarch64": "235a6cca2dd4881130a9ae61ad1149bbf28bba184dd4621700f0c98c97457716", + }, + "linux": { + "x86_64": "6e5efd6c25953b2732d4e6b1842512536650c68cf72a8b99a0fc566012dd6ca5", + "aarch64": "c812028423c3d7dd7ba99f66101e9e1aa3f66eab44a1285f41c363825d49dca4", + "powerpc64le": "e2fe00a3c91f21c52947ebf96b4da016c9def5ccfedd1c335f30746db58bbf35", + }, + }, + "1.86.0": { + "darwin": { + "x86_64": "bf8121850b2f6a46566f6c2bbe9fa889b915b1039febf36853ea9d9c4256c67d", + "aarch64": "01271f83549c3b5191334a566289aa41615ea8f8f530f49548733585f21c7e5a", + }, + "linux": { + "x86_64": "f6a8c0d8b8a8a737c40eee78abe286a3cbe984d96b63de9ae83443360e3264bf", + "aarch64": "460058cd78f06875721427a42a5ce6a8b8ef2c0c3225fccfae149d9345572ff4", + "powerpc64le": "9b104428e2b0377dbdb9dc094eb4d9f4893ada0b80d2b315f0c4ea2135ed9007", + }, + }, "1.85.0": { "darwin": { "x86_64": "69a36d239e38cc08c6366d1d85071847406645346c6f2d2e0dfaf64b58050d3d", @@ -180,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/rust_clap/package.py b/repos/spack_repo/builtin/packages/rust_clap/package.py index 339d90b4a31..8b62d59b467 100644 --- a/repos/spack_repo/builtin/packages/rust_clap/package.py +++ b/repos/spack_repo/builtin/packages/rust_clap/package.py @@ -9,7 +9,7 @@ class RustClap(CargoPackage): """A full featured, fast Command Line Argument Parser for Rust""" - homepage = "http://docs.rs/clap" + homepage = "https://docs.rs/clap" url = "https://github.com/clap-rs/clap/archive/refs/tags/v4.5.10.tar.gz" license("APACHE-2.0 OR MIT", checked_by="teaguesterling") diff --git a/repos/spack_repo/builtin/packages/s4pred/package.py b/repos/spack_repo/builtin/packages/s4pred/package.py index 112a0f803ed..06d4281cbce 100644 --- a/repos/spack_repo/builtin/packages/s4pred/package.py +++ b/repos/spack_repo/builtin/packages/s4pred/package.py @@ -39,8 +39,8 @@ def install(self, spec, prefix): filter_file("/weights/", "/../weights/", "run_model.py") # add shebang and ensure +x for the main script sed = Executable("sed") - sed("-i", rf'1 i\#! {self.spec["python"].command.path}\n', "run_model.py") + sed("-i", rf"1 i\#! {self.spec['python'].command.path}\n", "run_model.py") os.chmod("run_model.py", 0o755) # install files and make convenience symlink install("*.py", prefix.bin) - os.symlink(join_path(prefix.bin, "run_model.py"), join_path(prefix.bin, "s4pred")) + symlink(join_path(prefix.bin, "run_model.py"), join_path(prefix.bin, "s4pred")) diff --git a/repos/spack_repo/builtin/packages/s5cmd/package.py b/repos/spack_repo/builtin/packages/s5cmd/package.py new file mode 100644 index 00000000000..36d245caa2e --- /dev/null +++ b/repos/spack_repo/builtin/packages/s5cmd/package.py @@ -0,0 +1,44 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.go import GoPackage + +from spack.package import * + + +class S5cmd(GoPackage): + """ + s5cmd is a very fast S3 and local filesystem execution tool. It comes with support + for a multitude of operations including tab completion and wildcard support for + files, which can be very handy for your object storage workflow while working with + large numbers of files. + """ + + homepage = "https://github.com/peak/s5cmd" + url = "https://github.com/peak/s5cmd/archive/refs/tags/v2.3.0.tar.gz" + + maintainers("ebagrenrut") + + license("MIT") + + version("2.3.0", sha256="6910763a7320010aa75fe9ef26f622e440c2bd6de41afdbfd64e78c158ca19d4") + + depends_on("go@1.20:", type="build") + + @run_after("install") + def install_completions(self): + s5cmd = Executable(self.prefix.bin.s5cmd) + + extra_env = EnvironmentModifications() + + extra_env.set("SHELL", "bash") + bash_comp_path = bash_completion_path(self.prefix) + mkdirp(bash_comp_path) + with open(bash_comp_path / self.name, "w") as file: + s5cmd("--install-completion", extra_env=extra_env, output=file) + + extra_env.set("SHELL", "zsh") + zsh_comp_path = zsh_completion_path(self.prefix) + mkdirp(zsh_comp_path) + with open(zsh_comp_path / f"_{self.name}", "w") as file: + s5cmd("--install-completion", extra_env=extra_env, output=file) diff --git a/repos/spack_repo/builtin/packages/saga_gis/package.py b/repos/spack_repo/builtin/packages/saga_gis/package.py index d056de7793f..456801e0c47 100644 --- a/repos/spack_repo/builtin/packages/saga_gis/package.py +++ b/repos/spack_repo/builtin/packages/saga_gis/package.py @@ -24,22 +24,6 @@ class SagaGis(AutotoolsPackage, SourceforgePackage): version("develop", branch="master") version("7.4.0", branch="release-7.4.0") version("7.3.0", branch="release-7.3.0") - version("7.1.1", branch="release-7.1.1") - version("7.1.0", branch="release-7.1.0") - version("7.0.0", branch="release-7.0.0") - version("6.4.0", branch="release-6.4.0") - version("6.3.0", branch="release-6.3.0") - version("6.2.0", branch="release-6.2.0") - version("6.1.0", branch="release-6.1.0") - version("6.0.0", branch="release-6.0.0") - version("5.0.1", branch="release-5-0-1") - version("5.0.0", branch="release-5.0.0") - version("4.1.0", branch="release-4.1.0") - version("4.0.0", branch="release-4.0.0") - version("3.0.0", branch="release-3.0.0", deprecated=True) - version("2.3-lts", branch="release-2-3-lts", deprecated=True) - version("2.3.1", branch="release-2-3-1", deprecated=True) - version("2.3.0", branch="release-2-3-0", deprecated=True) variant("gui", default=True, description="Build GUI and interactive SAGA tools") variant("odbc", default=True, description="Build with ODBC support") @@ -83,11 +67,7 @@ class SagaGis(AutotoolsPackage, SourceforgePackage): # Set hl variant due to similar issue #7145 depends_on("hdf5+hl") - # write support for grib2 is available since 2.3.0 (https://gdal.org/drivers/raster/grib.html) - depends_on("gdal@2.3:+grib+hdf5+netcdf") - - depends_on("gdal@2.3:2.4+grib+hdf5+netcdf", when="@:7.2") - depends_on("libgeotiff@:1.4", when="@:7.2") + depends_on("gdal@2.3:+hdf5+netcdf") # FIXME Saga-Gis uses a wrong include path # depends_on('qhull', when='~triangle') diff --git a/repos/spack_repo/builtin/packages/sage/package.py b/repos/spack_repo/builtin/packages/sage/package.py new file mode 100644 index 00000000000..c27c8146647 --- /dev/null +++ b/repos/spack_repo/builtin/packages/sage/package.py @@ -0,0 +1,33 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cargo import CargoPackage + +from spack.package import * + + +class Sage(CargoPackage): + """Proteomics search & quantification""" + + homepage = "https://sage-docs.vercel.app" + url = "https://github.com/lazear/sage/archive/refs/tags/v0.14.7.tar.gz" + + license("MIT") + + version( + "0.15.0-beta.2", sha256="1a0a67372f04c4f69d635270a33ab8f7308f4eb9783f3fda433bed3215f74810" + ) + version("0.14.7", sha256="894b59429a67dc22592fc65fca547ee6d67f8bada71d09f7c1a81524b65fe6da") + + depends_on("rust@1.85:", type=("build", "test"), when="@0.15:") + depends_on("rust@:1.79", type=("build", "test"), when="@:0.14.7") + + build_directory = "crates/sage-cli" + build_args = ["--locked"] + + @run_after("build") + @on_package_attributes(run_tests=True) + def recommended_test(self): + sage = Executable("target/release/sage") + sage("tests/config.json") diff --git a/repos/spack_repo/builtin/packages/salmon/package.py b/repos/spack_repo/builtin/packages/salmon/package.py index 39d6b3b07e4..b82b3c50899 100644 --- a/repos/spack_repo/builtin/packages/salmon/package.py +++ b/repos/spack_repo/builtin/packages/salmon/package.py @@ -16,6 +16,7 @@ class Salmon(CMakePackage): license("GPL-3.0-only") + version("1.11.4", sha256="9410904fa787f1f9aca635626fcdca08f3af9b02f820963f9439e80fb56d23b8") version("1.10.3", sha256="a053fba63598efc4ade3684aa2c8e8e2294186927d4fcdf1041c36edc2aa0871") version("1.10.2", sha256="976989182160fef3afb4429ee8b85d8dd39ed6ca212bb14d6a65cde0e985fb98") version("1.9.0", sha256="450d953a5c43fe63fd745733f478d3fbaf24d926cb52731fd38ee21c4990d613") @@ -41,6 +42,8 @@ class Salmon(CMakePackage): conflicts("^intel-tbb@2021.1:", when="@:1.7.0") conflicts("^intel-oneapi-tbb@2021.1:", when="@:1.7.0") depends_on("tbb") + depends_on("intel-tbb@2021.4.0:", when="@1.11: %tbb=intel-tbb") + depends_on("intel-oneapi-tbb@2021.4.0:", when="@1.11: %tbb=intel-oneapi-tbb") depends_on( "boost@1.66.0:" "+program_options+exception+filesystem+system+chrono+serialization" @@ -48,29 +51,53 @@ class Salmon(CMakePackage): when="@:0.14.1", ) depends_on( - "boost@1.72.0:" + "boost@1.72.0:1.88" "+program_options+exception+filesystem+system+chrono+serialization" "+random+graph+timer+iostreams+math+thread+container", - when="@1.4.0:", + when="@1.4.0:1.10.3", ) + depends_on("boost@1.72.0:+atomic+filesystem+timer+chrono+program_options", when="@1.11.4:") depends_on("cereal") - depends_on("jemalloc") + depends_on("jemalloc", when="@:1.10") depends_on("xz") - depends_on("zlib-api") + depends_on("zlib-api", when="@:1.10") + # it's explicitly looking for zlib-ng.h files, not normal compat includes + depends_on("zlib-ng~compat", when="@1.11:") depends_on("bzip2") - depends_on("libdivsufsort") - depends_on("staden-io-lib~curl") + depends_on("libdivsufsort", when="@:1.10") + depends_on("staden-io-lib~curl", when="@:1.10") # docs suggest libdeflate is slightly faster - depends_on("staden-io-lib~curl+libdeflate~shared@1.15:", when="@1.10.3:") + depends_on("staden-io-lib~curl+libdeflate~shared@1.15:", when="@1.10.3") depends_on("libgff") depends_on("pkgconfig") depends_on("curl", when="@0.14.1:") - depends_on("htslib", when="@1.10.2") + depends_on("htslib", when="@1.10.2:") + depends_on("mimalloc", when="@1.11:") + depends_on("catch2", type="test", when="@1.11:") + # probably just for tests, but cmake looks anyway + depends_on("python@3:", type="build", when="@1.11:") patch("fix_hts.patch", when="@1.10.2") conflicts("%gcc@:5.1", when="@0.14.1:") + # SalmonDependencies.camke + resource( + name="pufferfish", + git="https://github.com/COMBINE-lab/pufferfish.git", + commit="ace68c1c022816ba8c50a1a07c5d08f2abd597d6", + submodules=True, + placement="pufferfish", + when="@1.11.4", + ) + resource( + name="fqfeeder", + git="https://github.com/rob-p/FQFeeder.git", + commit="f5b08d1002351c192b69048ac9f6cf4c7c116265", + placement="fqfeeder", + when="@1.11.4", + ) + for ver, repo, checksum in [ ( "1.10.3", @@ -121,7 +148,7 @@ def patch(self): if self.spec.satisfies("@0.8.2:0.9.1"): filter_file( "${FAST_MALLOC_LIB}", - "${FAST_MALLOC_LIB}\n" "${CMAKE_DL_LIBS}", + "${FAST_MALLOC_LIB}\n${CMAKE_DL_LIBS}", "src/CMakeLists.txt", string=True, ) @@ -130,7 +157,7 @@ def patch(self): filter_file("curl -k.*", "", "scripts/fetchRapMap.sh") symlink("./salmon-v{0}.zip".format(self.version), "./external/rapmap.zip") - if self.spec.satisfies("@1.4.0:"): + if self.spec.satisfies("@1.4.0:1.10"): filter_file("curl -k.*", "", "scripts/fetchPufferfish.sh") symlink("./salmon-v{0}.zip".format(self.version), "./external/pufferfish.zip") # Fix issues related to lto-wrapper during install @@ -142,12 +169,49 @@ def patch(self): ) filter_file("curl -k.*", "", "scripts/fetchPufferfish.sh") - if self.spec.satisfies("@1.10.3:"): + if self.spec.satisfies("@1.10.3"): findstadenio_module = join_path("cmake", "Modules", "Findlibstadenio.cmake") filter_file("PACKAGE_VERSION", "IOLIB_VERSION", findstadenio_module, string=True) filter_file("io_lib_config.h", "version.h", findstadenio_module, string=True) - def cmake_args(self): - args = ["-DBOOST_ROOT=%s" % self.spec["boost"].prefix] + # filter file to remove boost_system dep if boost @1.69: + # (or 1.89: when they removed the stub) + if self.spec.satisfies("@1.11.4:"): + if self.spec.satisfies("%boost@1.89:"): + filter_file( + r"(^set\(_salmon_boost_components.*)( system)(.*\)$)", + r"\1\3", + join_path("cmake", "SalmonDependencies.cmake"), + ) + # tbbmalloc isn't identified as a target without adding it here + filter_file( + r"(find_package\(TBB 2021.4 QUIET CONFIG COMPONENTS) (tbb)\)", + r"\1 \2 tbbmalloc)", + join_path("cmake", "SalmonDependencies.cmake"), + ) + def cmake_args(self): + if self.spec.satisfies("@:1.10.3"): + args = ["-DBOOST_ROOT=%s" % self.spec["boost"].prefix] + if self.spec.satisfies("@1.11:"): + args = [ + self.define("SALMON_USE_SYSTEM_DEPS", True), + self.define("SALMON_FETCH_MISSING_DEPS", False), + self.define("SALMON_USE_HTSLIB", True), + self.define("USE_SHARED_LIBS", True), + self.define( + "SALMON_PUFFERFISH_SOURCE_DIR", join_path(self.stage.source_path, "pufferfish") + ), + self.define( + "SALMON_FQFEEDER_SOURCE_DIR", join_path(self.stage.source_path, "fqfeeder") + ), + self.define("SALMON_ENABLE_TESTS", self.run_tests), + self.define("SALMON_ENABLE_BENCHMARKS", self.run_tests), + ] return args + + @when("@1.11.4:") + def check(self): + with working_dir(self.build_directory): + make("unitTests") + make("benchmark_smoke") diff --git a/repos/spack_repo/builtin/packages/salome_configuration/package.py b/repos/spack_repo/builtin/packages/salome_configuration/package.py index 2e66b3b8fa5..77c563c3309 100644 --- a/repos/spack_repo/builtin/packages/salome_configuration/package.py +++ b/repos/spack_repo/builtin/packages/salome_configuration/package.py @@ -17,19 +17,17 @@ class SalomeConfiguration(Package): maintainers("franciskloss") homepage = "https://www.salome-platform.org" - git = "https://git.salome-platform.org/gitpub/tools/configuration.git" - - version("9.13.0", tag="V9_13_0", commit="1c9b00436fc0e8264742460ebc102ae7d1970e97") - version("9.12.0", tag="V9_12_0", commit="61ed79521f31363ba4aeedcd59812a4838c076aa") - version("9.11.0", tag="V9_11_0", commit="33fc859a523e9f84cabaae2c55fdc64d1be11ec0") - version("9.10.0", tag="V9_10_0", commit="25f724f7a6c0000330a40c3851dcd8bc2493e1fa") - version("9.9.0", tag="V9_9_0", commit="5e61c7330cb2e0ff39e0bf4ba7b65d1d26c824ac") - version("9.8.0", tag="V9_8_0", commit="f1b2929d32953ac4d2056d564dab62e2e8d7c2a5") - version("9.7.0", tag="V9_7_0", commit="b1430e72bc252867289b45de9a94041841fade06") - version("9.6.0", tag="V9_6_0", commit="02e621fc9e24b4eab20f82ef921859013bf024b4") - version("9.5.0", tag="V9_5_0", commit="96ecd4927604943dc80ead4aaf732a9d0215b70c") - version("9.4.0", tag="V9_4_0", commit="057e00d65a86f058dd4b0f82a866fcc66d81ed63") - version("9.3.0", tag="V9_3_0", commit="de7bac0ee58007a9501fffa7c1488de029b19cdc") + git = "https://github.com/SalomePlatform/configuration.git" + + version("9.15.0", sha256="01dd367a167383fbc03ca8de47e127c87f4a9d4c826c68768ac3a2bfd5f998f7") + version("9.14.0", sha256="9ff6cacfc272ef75211dee555b67acc50ec9dee1862676d429c24c13a60c6052") + version("9.13.0", sha256="b0bb296536cefb3b5e063a57fab8b66b510ff76d766fbd462ee10dedac3c4872") + version("9.12.0", sha256="81841371edfcf03a5099900f4205a37c56bfd9390f88dd9024e966bfb2e20f86") + version("9.11.0", sha256="a72f2cc828fbe769f0376cdbc60ee4c3573b4f9ceec5906ffe6bb7f010d08ee7") + + def url_for_version(self, version): + url = "https://github.com/SalomePlatform/configuration/archive/refs/tags/V{0}.tar.gz" + return url.format(version.underscored) patch("SalomeMacros.patch", working_dir="./cmake") patch("FindSalomeHDF5.patch", working_dir="./cmake", when="@:9.7.0") diff --git a/repos/spack_repo/builtin/packages/salome_med/MAJ_400_410_champs.patch b/repos/spack_repo/builtin/packages/salome_med/MAJ_400_410_champs.patch deleted file mode 100644 index 76002481662..00000000000 --- a/repos/spack_repo/builtin/packages/salome_med/MAJ_400_410_champs.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/MAJ_400_410_champs.c 2020-03-11 11:03:40.000000000 +0100 -+++ b/MAJ_400_410_champs.c.patched 2021-07-13 16:51:23.622940398 +0200 -@@ -27,7 +27,6 @@ - - #define USER_MODE MED_COMPACT_STMODE - --#include "_MEDfieldValueUpdateEntityList41.c" - - med_err getFieldsOn40(med_idt fid, - const char * const nommaa, diff --git a/repos/spack_repo/builtin/packages/salome_med/package.py b/repos/spack_repo/builtin/packages/salome_med/package.py deleted file mode 100644 index a457107ef6c..00000000000 --- a/repos/spack_repo/builtin/packages/salome_med/package.py +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) -# -# Important feature: to interoperate goodly MED files, it is imperative to fix -# the HDF5 version for a salome-med version - -from spack_repo.builtin.build_systems.cmake import CMakePackage - -from spack.package import * - - -class SalomeMed(CMakePackage): - """salome-med is the MED file format that is the SALOME platform standard - file for meshes and fields and salome-med is based on HDF5 library.""" - - maintainers("franciskloss") - - homepage = "https://docs.salome-platform.org/latest/dev/MEDCoupling/developer/med-file.html" - url = "ftp://ftp.cea.fr/pub/salome/prerequisites/med-4.1.0.tar.gz" - - license("LGPL-3.0-only") - - version( - "5.0.0", - sha256="267e76d0c67ec51c10e3199484ec1508baa8d5ed845c628adf660529dce7a3d4", - url="ftp://ftp.cea.fr/pub/salome/prerequisites/med-5.0.0.tar.bz2", - ) - version("4.1.1", sha256="a082b705d1aafe95d3a231d12c57f0b71df554c253e190acca8d26fc775fb1e6") - version("4.1.0", sha256="847db5d6fbc9ce6924cb4aea86362812c9a5ef6b9684377e4dd6879627651fce") - version("4.0.0", sha256="a474e90b5882ce69c5e9f66f6359c53b8b73eb448c5f631fa96e8cd2c14df004") - version("3.3.1", sha256="856e9c4bb75eb0cceac3d5a5c65b1ce52fb3c46b9182920e1c9f34ae69bd2d5f") - version("3.2.0", sha256="d52e9a1bdd10f31aa154c34a5799b48d4266dc6b4a5ee05a9ceda525f2c6c138") - - variant("mpi", default=False, description="Enable MPI") - variant("static", default=False, description="Enable static library build") - variant("fortran", default=False, description="Enable Fortran") - variant("int64", default=False, description="Use 64-bit integers as indices.") - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated - - depends_on("mpi", when="+mpi") - - for _mpi_variant in ("~mpi", "+mpi"): - depends_on(f"hdf5@1.12{_mpi_variant}", when=f"@5:{_mpi_variant}") - depends_on(f"hdf5@1.10{_mpi_variant}", when=f"@4{_mpi_variant}") - depends_on(f"hdf5@1.8{_mpi_variant}", when=f"@3{_mpi_variant}") - - patch("MAJ_400_410_champs.patch", when="@4.1.0+static", working_dir="./tools/medimport/4.0.0") - - def check(self): - with working_dir(self.build_directory): - make("test", parallel=False) - - def patch(self): - # resembles FindSalomeHDF5.patch as in salome-configuration - # see https://cmake.org/cmake/help/latest/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.html - filter_file( - "GET_PROPERTY(_lib_lst TARGET hdf5 PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES_NOCONFIG)", # noqa: E501 - "#GET_PROPERTY(_lib_lst TARGET hdf5 PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES_NOCONFIG)", # noqa: E501 - "config/cmake_files/FindMedfileHDF5.cmake", - string=True, - ) - - def setup_dependent_build_environment( - self, env: EnvironmentModifications, dependent_spec: Spec - ) -> None: - env.set("HDF5_ROOT_DIR", self.spec["hdf5"].prefix) - - def cmake_args(self): - spec = self.spec - options = [] - - if "+mpi" in spec: - options.extend(["-DMEDFILE_USE_MPI=ON", "-DMPI_ROOT_DIR=%s" % spec["mpi"].prefix]) - else: - options.extend(["-DMEDFILE_USE_MPI=OFF"]) - - if "+static" in spec: - options.extend(["-DMEDFILE_BUILD_SHARED_LIBS=OFF", "-DMEDFILE_BUILD_STATIC_LIBS=ON"]) - else: - options.extend(["-DMEDFILE_BUILD_SHARED_LIBS=ON", "-DMEDFILE_BUILD_STATIC_LIBS=OFF"]) - - if "+fortran" in spec: - options.extend(["-DCMAKE_Fortran_COMPILER=%s" % self.compiler.fc]) - else: - options.extend(["-DCMAKE_Fortran_COMPILER="]) - - if "+int64" in spec: - options.append("-DMED_MEDINT_TYPE=long") - else: - options.append("-DMED_MEDINT_TYPE=int") - - options.extend( - [ - "-DMEDFILE_BUILD_PYTHON=OFF", - "-DMEDFILE_INSTALL_DOC=OFF", - "-DMEDFILE_BUILD_TESTS=%s" % self.run_tests, - "-DHDF5_ROOT_DIR=%s" % spec["hdf5"].prefix, - ] - ) - - return options diff --git a/repos/spack_repo/builtin/packages/salome_medcoupling/package.py b/repos/spack_repo/builtin/packages/salome_medcoupling/package.py index 193e47a4bad..b663f8dbc52 100644 --- a/repos/spack_repo/builtin/packages/salome_medcoupling/package.py +++ b/repos/spack_repo/builtin/packages/salome_medcoupling/package.py @@ -12,68 +12,71 @@ class SalomeMedcoupling(CMakePackage): """salome-medcoupling is a part of SALOME platform to manipulate meshes and - fields in memory, and use salome-med format for files.""" + fields in memory, and uses MED format for files.""" maintainers("franciskloss") homepage = "https://docs.salome-platform.org/latest/dev/MEDCoupling/developer/index.html" - git = "https://git.salome-platform.org/gitpub/tools/medcoupling.git" + git = "https://github.com/SalomePlatform/medcoupling.git" license("LGPL-2.1-or-later") - version("9.13.0", tag="V9_13_0", commit="8bea530c92cd907ae859ef11fd95b2db54b2894a") - version("9.12.0", tag="V9_12_0", commit="28e485bde1c26dc835ec7acf449b1d519997ddce") - version("9.11.0", tag="V9_11_0", commit="1b5fb5650409b0ad3a61da3215496f2adf2dae02") - version("9.10.0", tag="V9_10_0", commit="fe2e38d301902c626f644907e00e499552bb2fa5") - version("9.9.0", tag="V9_9_0", commit="5b2a9cc1cc18fffd5674a589aacf368008983b45") - version("9.8.0", tag="V9_8_0", commit="8a82259c9a9228c54efeddd52d4afe6c0e397c30") - version("9.7.0", tag="V9_7_0", commit="773434a7f2a5cbacc2f50e93ea6d6a48a157acd9") - version("9.6.0", tag="V9_6_0", commit="2c14a65b40252770b3503945405f5bdb2f29f8e2") - version("9.5.0", tag="V9_5_0", commit="dd75474d950baf8ff862b03cb1685f2a2d562846") - version("9.4.0", tag="V9_4_0", commit="984fe46c4076f08f42ef43e290e3cd1aea5a8182") - version("9.3.0", tag="V9_3_0", commit="32521cd6e5c113de5db7953a80149e5ab492120a") + version("9.15.0", sha256="4ec97fc881f12e71965ea73422319aac6f69319c5c688eb165329dce826cbbb8") + version("9.14.0", sha256="d4699b564fe1a113663649b9ff1c353314509763a5aca756569e6f4de8940049") + version("9.13.0", sha256="54d010df0d8a66c7cf7b39a40e28aac16bc0bc20faf97c5190d0a2df4941e15e") + version("9.12.0", sha256="b668b9b2883b456e3edf6f9f1ef3749f8c8cc5279ae212c388e53f69eed66db7") + version("9.11.0", sha256="11d86030f7552a3b91fe0769784b42e9794b754e88c8b50405b75d130f1cb45a") + + def url_for_version(self, version): + url = "https://github.com/SalomePlatform/medcoupling/archive/refs/tags/V{0}.tar.gz" + return url.format(version.underscored) variant("static", default=False, description="Enable static library build") variant("mpi", default=False, description="Enable MPI") variant("int64", default=False, description="Use 64 bits indices") variant("partitioner", default=False, description="Enable partitioner") - variant("metis", default=False, description="Enable Metis") - variant("scotch", default=False, description="Enable Scotch") + variant("metis", default=False, when="+partitioner", description="Enable Metis") + variant("scotch", default=False, when="+partitioner", description="Enable Scotch") + + depends_on("c", type="build") + depends_on("cxx", type="build") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + # See https://github.com/SalomePlatform/sat_salome/blob/master/applications for the + # dependencies and their version used for official releases + depends_on("cmake@2.8.11:3", type="build") + + depends_on("rpc") depends_on("libxml2@2.9.1:") - depends_on("libtirpc") - depends_on("cppunit") - depends_on("python@3.6.5:") - depends_on("py-scipy@0.19.1:", type=("build", "run")) - depends_on("py-numpy@1.15.1:", type=("build", "run")) - depends_on("boost+python+numpy@1.58.0:") - depends_on("swig@3.0.12:", type="build") + depends_on("cppunit", type="test") + depends_on("python@3.6.5:", when="@:9.12") + depends_on("python@3.9.14:", when="@9.13:") + depends_on("py-scipy@0.19.1:1.14", type=("build", "run")) + depends_on("py-numpy@1.15.1:1", type=("build", "run")) + depends_on("boost+python+numpy@1.58.0:", when="@:9.12") + depends_on("boost+python+numpy@1.71.0:", when="@9.13:") + depends_on("swig@3.0.12:", when="@:9.10", type="build") + depends_on("swig@4.0.2:", when="@9.11:", type="build") depends_on("metis@5.1.0:", when="+metis") - depends_on("scotch@6.0.4:", when="+scotch") + depends_on("scotch@6.0.4:", when="@:9.12 +scotch") + depends_on("scotch@6.1.2:", when="@9.13: +scotch") depends_on("mpi", when="+mpi") - for _min_ver in range(3, 14): + for _min_ver in range(11, 16): _ver = f"9.{_min_ver}.0" depends_on(f"salome-configuration@{_ver}", when=f"@{_ver}") for _mpi_variant in ("~mpi", "+mpi"): - for _static_variant in ("~static", "+static"): + for _static_variant, _shared_variant in (("~static", "+shared"), ("+static", "~shared")): for _int64_variant in ("~int64", "+int64"): depends_on( - f"salome-med@4.1.1{_mpi_variant}{_static_variant}{_int64_variant}", - when=f"@9.11.0:{_mpi_variant}{_static_variant}{_int64_variant}", + f"med@4.2.0{_mpi_variant}{_shared_variant}{_int64_variant}", + when=f"@9.15.0:{_mpi_variant}{_static_variant}{_int64_variant}", ) depends_on( - f"salome-med@4.1.0{_mpi_variant}{_static_variant}{_int64_variant}", - when=f"@9.5.0:9.10.0{_mpi_variant}{_static_variant}{_int64_variant}", - ) - depends_on( - f"salome-med@4.0.0{_mpi_variant}{_static_variant}{_int64_variant}", - when=f"@9.3.0:9.4.0{_mpi_variant}{_static_variant}{_int64_variant}", + f"med@4.1.1{_mpi_variant}{_shared_variant}{_int64_variant}", + when=f"@9.11.0:9.14.0{_mpi_variant}{_static_variant}{_int64_variant}", ) def check(self): @@ -93,51 +96,20 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: ) def cmake_args(self): - spec = self.spec - options = [] - - if "+static" in spec: - options.extend(["-DMEDCOUPLING_BUILD_STATIC=ON"]) - else: - options.extend(["-DMEDCOUPLING_BUILD_STATIC=OFF"]) - - if "+mpi" in spec: - options.extend(["-DMEDCOUPLING_USE_MPI=ON", "-DSALOME_USE_MPI=ON"]) - else: - options.extend(["-DMEDCOUPLING_USE_MPI=OFF", "-DSALOME_USE_MPI=OFF"]) - - if "+int64" in spec: - options.extend(["-DMEDCOUPLING_USE_64BIT_IDS=ON"]) - else: - options.extend(["-DMEDCOUPLING_USE_64BIT_IDS=OFF"]) - - if "+partitioner" in spec: - options.extend(["-DMEDCOUPLING_ENABLE_PARTITIONER=ON"]) - else: - options.extend(["-DMEDCOUPLING_ENABLE_PARTITIONER=OFF"]) - - if "+metis" in spec: - options.extend(["-DMEDCOUPLING_ENABLE_PARTITIONER=ON"]) - options.extend(["-DMEDCOUPLING_PARTITIONER_METIS=ON"]) - else: - options.extend(["-DMEDCOUPLING_PARTITIONER_METIS=OFF"]) - - if "+scotch" in spec: - options.extend(["-DMEDCOUPLING_ENABLE_PARTITIONER=ON"]) - options.extend(["-DMEDCOUPLING_PARTITIONER_SCOTCH=ON"]) - else: - options.extend(["-DMEDCOUPLING_PARTITIONER_SCOTCH=OFF"]) - - options.extend( - [ - "-DMEDCOUPLING_BUILD_DOC=OFF", - "-DMEDCOUPLING_ENABLE_PYTHON=ON", - "-DMEDCOUPLING_ENABLE_RENUMBER=OFF", - "-DMEDCOUPLING_PARTITIONER_PARMETIS=OFF", - "-DMEDCOUPLING_PARTITIONER_PTSCOTCH=OFF", - "-DMEDCOUPLING_MICROMED=OFF", - "-DMEDCOUPLING_BUILD_TESTS=OFF", - ] - ) - - return options + args = [ + self.define_from_variant("MEDCOUPLING_BUILD_STATIC", "static"), + self.define_from_variant("MEDCOUPLING_USE_MPI", "mpi"), + self.define_from_variant("SALOME_USE_MPI", "mpi"), + self.define_from_variant("MEDCOUPLING_USE_64BIT_IDS", "int64"), + self.define_from_variant("MEDCOUPLING_ENABLE_PARTITIONER", "partitioner"), + self.define_from_variant("MEDCOUPLING_PARTITIONER_METIS", "metis"), + self.define_from_variant("MEDCOUPLING_PARTITIONER_SCOTCH", "scotch"), + self.define("MEDCOUPLING_BUILD_TESTS", self.run_tests), + self.define("MEDCOUPLING_BUILD_DOC", False), + self.define("MEDCOUPLING_ENABLE_PYTHON", True), + self.define("MEDCOUPLING_ENABLE_RENUMBER", False), + self.define("MEDCOUPLING_PARTITIONER_PARMETIS", False), + self.define("MEDCOUPLING_PARTITIONER_PTSCOTCH", False), + self.define("MEDCOUPLING_MICROMED", False), + ] + return args diff --git a/repos/spack_repo/builtin/packages/salt/package.py b/repos/spack_repo/builtin/packages/salt/package.py deleted file mode 100644 index 1aa65b42371..00000000000 --- a/repos/spack_repo/builtin/packages/salt/package.py +++ /dev/null @@ -1,27 +0,0 @@ -# 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 Salt(CMakePackage): - """SALT: A next generation LLVM-based Source Analysis Toolkit for performance instrumentation - of HPC applications""" - - homepage = "https://github.com/ParaToolsInc/salt" - url = "https://github.com/ParaToolsInc/salt/archive/refs/tags/v0.2.0.tar.gz" - git = "https://github.com/ParaToolsInc/salt.git" - - maintainers("zbeekman", "wspear") - - license("Apache-2.0", checked_by="wspear") - - version("master", branch="master") - version("0.3.0", sha256="7df4c060c292ed625d4c1cc8c0e794cd4380a263df63693b648b3c8e0cf51ccf") - version("0.2.0", sha256="55c80f9d0591752b1e5b40e924718dc28f928ee0a3c7008adec3feab1280c57f") - - depends_on("cxx", type="build") - depends_on("llvm+clang+flang@19", type=("build", "link", "run")) diff --git a/repos/spack_repo/builtin/packages/saltfm/package.py b/repos/spack_repo/builtin/packages/saltfm/package.py new file mode 100644 index 00000000000..df145d6464d --- /dev/null +++ b/repos/spack_repo/builtin/packages/saltfm/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 Saltfm(CMakePackage): + """SALT-FM: A next generation LLVM-based Source Analysis Toolkit for performance + instrumentation of HPC applications""" + + homepage = "https://github.com/ParaToolsInc/SALT-FM" + url = "https://github.com/ParaToolsInc/SALT-FM/archive/refs/tags/v0.4.1.tar.gz" + git = "https://github.com/ParaToolsInc/SALT-FM.git" + + maintainers("zbeekman", "wspear") + + license("Apache-2.0", checked_by="wspear") + + version("master", branch="master") + + version("0.4.1", sha256="fe251f28cd44eeb71640b03d01d6201c935485b4794ba7bc2d92e7988a13d237") + version("0.4.0", sha256="3c322326f0dfaa9f00f283d4d9be8c8fb991d1f081aca1c86451ceb92f2c9c4f") + + version("0.3.0", sha256="a80661ff5ca1cfdcab44deb42142c2aaf3cac0c366ac54639a7069e1cd67b4bd") + version("0.2.0", sha256="3a4f9be700b31e4fb4627154642d334f83579ffcfdeb47d92c0f87e4bdc75ccf") + + depends_on("cxx", type="build") + depends_on("c", type="build") + + variant( + "flang", default=True, description="Build the Flang frontend plugin for Fortran support" + ) + + depends_on("cmake@3.23:", type="build") + + depends_on("llvm+clang+flang@19", type=("build", "link", "run"), when="@:0.3.0") + + depends_on("llvm@19:22 +clang", type=("build", "link", "run"), when="@0.4.0:") + depends_on("llvm@19:22 +clang", type=("build", "link", "run"), when="@master") + + with when("+flang"): + depends_on("llvm +flang", type=("build", "link", "run")) diff --git a/repos/spack_repo/builtin/packages/samrai/package.py b/repos/spack_repo/builtin/packages/samrai/package.py index b6f65cb30b3..c8960d66533 100644 --- a/repos/spack_repo/builtin/packages/samrai/package.py +++ b/repos/spack_repo/builtin/packages/samrai/package.py @@ -2,13 +2,23 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems import autotools from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.build_systems.cached_cmake import ( + CachedCMakeBuilder, + CachedCMakePackage, + cmake_cache_option, + cmake_cache_path, + cmake_cache_string, +) +from spack_repo.builtin.build_systems.cuda import CudaPackage from spack_repo.builtin.packages.boost.package import Boost from spack.package import * -class Samrai(AutotoolsPackage): +class Samrai(AutotoolsPackage, CachedCMakePackage, CudaPackage): """SAMRAI (Structured Adaptive Mesh Refinement Application Infrastructure) is an object-oriented C++ software library enables exploration of numerical, algorithmic, parallel computing, and software issues @@ -18,40 +28,52 @@ class Samrai(AutotoolsPackage): """ homepage = "https://computing.llnl.gov/projects/samrai" - url = "https://computing.llnl.gov/projects/samrai/download/SAMRAI-v3.11.2.tar.gz" + url = "https://github.com/llnl/SAMRAI/releases/download/v-4-5-0/SAMRAI-v4.5.0.tar.gz" list_url = homepage - tags = ["radiuss"] + git = "https://github.com/LLNL/SAMRAI.git" + + # using build_system 'cached_cmake' -- assets SAMRAI-v4.5.0.tar.gz + version("4.5.0", sha256="1209a5be43d4aecfc2761f821f311cd54c9def45286edca3f4f0cc19dd8ba2ee") + version("4.3.0", sha256="b124f5a44cbdf44e21341de47161357684a67aaca39b2ab2cf68b6edb794149b") + version("4.2.1", sha256="dbd0b1f2c7f6c8eba2dc7e3535a73c97cbde929e8c08cecdbca8a98e2edf3bc1") + version("4.2.0", sha256="34a256c99e29bee6dee017253a18cf1ed6435f0376e666e235e9092a895fabc6") + version("4.1.2", sha256="2860c693ba495613ce0ea04cc72eb8749519a770d520ef0a83a54ecff3d515e3") + version("4.1.1", sha256="ceb6e5b3b1587c45b8c41971f252974e40eae3d5fe9ad93269d969ea4acc2637") + version("4.1.0", sha256="633968bf1d4ff9c0f1f0c31591f9bb665f8252231a9ca03b54c3b498239a5815") + + # using build_system 'autotools' + version("3.12.0", sha256="3b02915bc3edc63da8960109e74ca7e61a1ca729d7631fa7a3635c7ca29c8266") + version("3.11.5", sha256="22a6216ad451efeccaabfe9f37bd0364841f3e50cdc0e7829afc0ecaf81c6fba") + version("3.11.4", sha256="a91884a89bd240c97f5f989b0decb7917a738e33c32a27795ba16b3cbe21bd76") - version("3.12.0", sha256="b8334aa22330a7c858e09e000dfc62abbfa3c449212b4993ec3c4035bed6b832") - version("3.11.5", sha256="6ec1f4cf2735284fe41f74073c4f1be87d92184d79401011411be3c0671bd84c") - version("3.11.4", sha256="fa87f6cc1cb3b3c4856bc3f4d7162b1f9705a200b68a5dc173484f7a71c7ea0a") # Version 3.11.3 permissions don't allow downloading - version("3.11.2", sha256="fd9518cc9fd8c8f6cdd681484c6eb42114aebf2a6ba4c8e1f12b34a148dfdefb") - version("3.11.1", sha256="14317938e55cb7dc3eca21d9b7667a256a08661c6da988334f7af566a015b327") - version("3.10.0", sha256="8d6958867f7165396459f4556e439065bc2cd2464bcfe16195a2a68345d56ea7") - version("3.9.1", sha256="ce0aa9bcb3accbd39c09dd32cbc9884dc00e7a8d53782ba46b8fe7d7d60fc03f") - version("3.8.0", sha256="0fc811ca83bd72d238f0efb172d466e80e5091db0b78ad00ab6b93331a1fe489") - version("3.7.3", sha256="19eada4f351a821abccac0779fde85e2ad18b931b6a8110510a4c21707c2f5ce") - version("3.7.2", sha256="c20c5b12576b73a1a095d8ef54536c4424517adaf472d55d48e57455eda74f2d") + version("3.11.2", sha256="b0889efe25f21becda48fe42ccbcccf12bcacf56f638e171db705f135c5550ae") + version("3.11.1", sha256="8a02d51df50d0fdf4bc7ecc6dedc13b5d360bdd1f9a511264535a85cedd725e7") + version("3.11.0", sha256="5d609efb0b72f40e17b65a498665e9a35efc608cb380221ac4d2a6d053009c6c") + version("3.10.0", sha256="b63786a6597bfad03dd3fbd781f46ee1332c1b8e5af01c658fd9ed8cb93f1de2") + version("3.9.1", sha256="93ffd4c7f1423a36f1452cc81d4742f75aab2e6dc16cb40931df159d0cf2f321") + version("3.8.0", sha256="f3779f9816ddcc8e0a90c71f053e664bcd2c6169f8fd2fc37e1c2af6ceb5f1e4") + version("3.7.3", sha256="3ef5b0ce70d6181d12e224624c734105093ec0b9a753a791965bcf4fd8aa1b65") + version("3.7.2", sha256="f145b09b5b127ad63d7832cb29c001254027cb30f6a74d591792dbc8212a6aa8") version( - "3.6.3-beta", sha256="7d9202355a66b8850333484862627f73ea3d7620ca84cde757dee629ebcb61bb" + "3.6.3-beta", sha256="6a9feb1dd61f4cf42d982acb26a05ae5596096b9d4ace2bb1bf797db47707505" ) version( - "3.5.2-beta", sha256="9a591fc962edd56ea073abd13d03027bd530f1e61df595fae42dd9a7f8b9cc3a" + "3.5.2-beta", sha256="9bcf7d8237b3efcbcac980ec2c8276aa2c060b9d45160d176f688af0d31e7431" ) version( - "3.5.0-beta", sha256="3e10c55d7b652b6feca902ce782751d4b16c8ad9d4dd8b9e2e9ec74dd64f30da" + "3.5.0-beta", sha256="dc43bb77769ad18a4a4c54b8c70710f900fe4990e62df7a5b6416f64bfc1bf9b" ) version( - "3.4.1-beta", sha256="5aadc813b75b65485f221372e174a2691e184e380f569129e7aa4484ca4047f8" + "3.4.1-beta", sha256="0d039f0c2d3e21232bc909bf65b04725bfe7443ea35664554c7546497a61d90b" ) version( - "3.3.3-beta", sha256="c07b5dc8d56a8f310239d1ec6be31182a6463fea787a0e10b54a3df479979cac" + "3.3.3-beta", sha256="8c9156401bd1db30ce591d5d0d5cbc6f24e24f997c61ebf55ed19e5b0a45041e" ) version( - "3.3.2-beta", sha256="430ea1a77083c8990a3c996572ed15663d9b31c0f8b614537bd7065abd6f375f" + "3.3.2-beta", sha256="57d71e6848183786d65fb008d82aad62b4856caf5a043d243a0616c58f500296" ) - version("2.4.4", sha256="33242e38e6f4d35bd52f4194bd99a014485b0f3458b268902f69f6c02b35ee5c") + version("2.4.4", sha256="300998d26f21b206de392baff316b31aa3d6926bfed85c7f0ca94cb12fb03be0") # Debug mode reduces optimization, includes assertions, debug symbols # and more print statements @@ -59,36 +81,186 @@ class Samrai(AutotoolsPackage): "debug", default=False, description="Compile with reduced optimization and debugging on" ) variant("silo", default=False, description="Compile with support for silo") - variant("shared", default=False, description="Build shared libraries") - - depends_on("mpi") - depends_on("zlib-api") - depends_on("hdf5+mpi") - depends_on("m4", type="build") - depends_on("boost@:1.64.0", when="@3.0.0:3.11", type="build") - # 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="@3.0.0:3.11.99", type="build") - depends_on("silo+mpi", when="+silo") + variant("mpi", default=True, description="Build with MPI", when="@4:") + variant( + "cxxstd", + default="20", + values=("11", "14", "17", "20"), + multi=False, + description="C++ standard", + when="@4:", + ) + variant("tests", default=False, description="Build tests", when="@4:") + variant("docs", default=False, description="Build docs", when="@4:") + variant("tools", default=False, description="Build tools", when="@4:") + variant("fortran", default=True, description="Enable fortran", when="@4:") + variant("openmp", default=False, description="Enable openmp", when="@4:") + variant("conduit", default=True, description="Enable conduit", when="@4:") + variant("raja", default=True, description="Enable Raja", when="@4:") depends_on("c", type="build") depends_on("cxx", type="build") depends_on("fortran", type="build") + build_system( + conditional("cmake", when="@4:"), conditional("autotools", when="@:3"), default="cmake" + ) + + with when("build_system=cmake"): + depends_on("mpi", when="+mpi") + depends_on("zlib") + depends_on("hdf5") # This used to be hdf5+mpi + depends_on("blt") + + depends_on("raja") # TODO: check if this is only for +cuda + depends_on("umpire") # Umpire is needed when building with Raja + + # Miranda needs SAMRAI with conduit + depends_on("conduit") + + depends_on("m4", type="build") + depends_on("boost@:1.64.0", when="@3.0.0:3.11.99", type="build") + depends_on("silo+mpi", when="+silo") + + with when("build_system=autotools"): + depends_on("mpi") + depends_on("zlib-api") + depends_on("hdf5+mpi") + # 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="@3.0.0:3.11.99", type="build") + # don't build SAMRAI 3+ with tools with gcc - patch("no-tool-build.patch", when="@3.0.0:%gcc") + # 23/01/12: this causes issues with out version+gcc + patch("no-tool-build.patch", when="@3.0.0:3.12.0%gcc") - # 2.4.4 needs a lot of patches to fix ADL and performance problems - patch( - "https://github.com/IBAMR/IBAMR/releases/download/v0.3.0/ibamr-samrai-fixes.patch?full_index=1", - sha256="1d088b6cca41377747fa0ae8970440c20cb68988bbc34f9032d5a4e6aceede47", - when="@2.4.4", - ) + def url_for_version(self, version): + if version >= Version("4"): + base_url = "https://github.com/llnl/SAMRAI/releases/download/v-" + return f"{base_url}{version.dashed}/SAMRAI-v{version}.tar.gz" + elif version <= Version("3.11.0"): + base_url = "https://github.com/llnl/SAMRAI/archive/refs/tags" + return f"{base_url}/{version}.tar.gz" + elif version < Version("4"): + base_url = "https://github.com/llnl/SAMRAI/archive/refs/tags" + return f"{base_url}/v-{version.dashed}.tar.gz" + + return f"{base_url}/{version}.tar.gz" + + def flag_handler(self, name, flags): + if name == "ldflags": + flags.append("-lz") + return (flags, None, None) + + def setup_build_environment(self, env: EnvironmentModifications) -> None: + spec = self.spec + if "+cuda" in spec: + env.set("CUDAHOSTCXX", spack_cxx) + + def check(self): + if self.spec.satisfies("+tests"): + with working_dir(self.build_directory): + make("test") + make("check") + def cmake_args(self): + return [] + + +class CMakeBuilder(CachedCMakeBuilder): + @property + def libs(self): + libs = [ + "SAMRAI_appu", + "SAMRAI_geom", + "SAMRAI_solv", + "SAMRAI_algs", + "SAMRAI_mesh", + "SAMRAI_math", + "SAMRAI_pdat", + "SAMRAI_xfer", + "SAMRAI_hier", + "SAMRAI_tbox", + ] + libs = [("lib" + x) for x in libs] + return find_libraries(libs, self.spec.prefix, shared=False, recursive=True) + + def initconfig_mpi_entries(self): + spec = self.spec + entries = super().initconfig_mpi_entries() + entries.append(cmake_cache_option("ENABLE_MPI", spec.satisfies("+mpi"))) + return entries + + def initconfig_compiler_entries(self): + entries = super().initconfig_compiler_entries() + + # Warning (KW 6/2024) -- setting the CMAKE_Fortran_COMPILER to the default (env['FC']) + # produced lots of weird errors. Seems like it was related to Samrai's use + # of FIXED formatting for its Fortran (rather than FREE formatting) + entries.insert(0, cmake_cache_path("CMAKE_C_COMPILER", env["CC"])) + entries.insert(0, cmake_cache_path("CMAKE_CXX_COMPILER", env["CXX"])) + entries.insert(0, cmake_cache_path("CMAKE_Fortran_COMPILER", env["SPACK_FC"])) + + return entries + + def initconfig_package_entries(self): + spec = self.spec + entries = super().initconfig_package_entries() + + entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec["blt"].prefix)) + + if spec.satisfies("+tests"): + entries.append(cmake_cache_option("ENABLE_SAMRAI_TESTS", True)) + entries.append(cmake_cache_option("ENABLE_TESTS", True)) + else: + entries.append(cmake_cache_option("ENABLE_SAMRAI_TESTS", False)) + entries.append(cmake_cache_option("ENABLE_TESTS", False)) + + entries.append( + cmake_cache_string("BLT_CXX_STD", f"c++{self.spec.variants['cxxstd'].value}") + ) + entries.append(cmake_cache_option("ENABLE_DOCS", spec.satisfies("+docs"))) + entries.append(cmake_cache_option("ENABLE_TOOLS", spec.satisfies("+tools"))) + entries.append(cmake_cache_option("ENABLE_FORTRAN", spec.satisfies("+fortran"))) + entries.append(cmake_cache_option("ENABLE_OPENMP", spec.satisfies("+openmp"))) + entries.append(cmake_cache_option("ENABLE_CONDUIT", spec.satisfies("+conduit"))) + entries.append(cmake_cache_option("ENABLE_RAJA", spec.satisfies("+raja"))) + + if self.spec.satisfies("+conduit"): + entries.append(cmake_cache_string("CONDUIT_DIR", spec["conduit"].prefix)) + + if self.spec.satisfies("+raja"): + entries.append(cmake_cache_string("RAJA_DIR", spec["raja"].prefix)) + entries.append( + cmake_cache_string( + "umpire_DIR", join_path(spec["umpire"].prefix, "share/umpire/cmake") + ) + ) + + entries.append(cmake_cache_option("ENABLE_CUDA", spec.satisfies("+cuda"))) + + return entries + + def initconfig_hardware_entries(self): + spec = self.spec + entries = super().initconfig_hardware_entries() + + if self.spec.satisfies("+cuda"): + entries.append( + cmake_cache_string("CMAKE_CUDA_STANDARD", spec.variants["cxxstd"].value) + ) + entries.append(cmake_cache_string("CMAKE_CUDA_EXTENSIONS", False)) + entries.append( + cmake_cache_string("CMAKE_CUDA_ARCHITECTURES", spec.variants["cuda_arch"].value) + ) + + return entries + + +class AutotoolsBuilder(autotools.AutotoolsBuilder): def configure_args(self): options = [] - options.extend( [ "--with-CXX=%s" % self.spec["mpi"].mpicxx, diff --git a/repos/spack_repo/builtin/packages/samtools/package.py b/repos/spack_repo/builtin/packages/samtools/package.py index 5728fc353e9..bd169dba799 100644 --- a/repos/spack_repo/builtin/packages/samtools/package.py +++ b/repos/spack_repo/builtin/packages/samtools/package.py @@ -19,6 +19,7 @@ class Samtools(Package): license("MIT") + version("1.21", sha256="05724b083a6b6f0305fcae5243a056cc36cf826309c3cb9347a6b89ee3fc5ada") version("1.19.2", sha256="71f60499668e4c08e7d745fbff24c15cc8a0977abab1acd5d2bb419bdb065e96") version("1.19", sha256="fa6b3b18e20851b6f3cb55afaf3205d02fcb79dae3b849fcf52e8fc10ff08b83") version("1.18", sha256="d686ffa621023ba61822a2a50b70e85d0b18e79371de5adb07828519d3fc06e1") @@ -55,6 +56,7 @@ class Samtools(Package): depends_on("python", type="run") # htslib became standalone @1.3.1, must use corresponding version + depends_on("htslib@1.21", when="@1.21") depends_on("htslib@1.19.1", when="@1.19.2") depends_on("htslib@1.19", when="@1.19") depends_on("htslib@1.18", when="@1.18") @@ -76,26 +78,23 @@ class Samtools(Package): depends_on("htslib@1.3.1", when="@1.3.1") def install(self, spec, prefix): - if "+termlib" in spec["ncurses"]: - curses_lib = "-lncursesw -ltinfow" - else: - curses_lib = "-lncursesw" + curses_lib = self.spec["ncurses"].libs.link_flags if self.spec.version >= Version("1.3.1"): configure( - "--prefix={0}".format(prefix), - "--with-htslib={0}".format(self.spec["htslib"].prefix), + f"--prefix={prefix}", + f"--with-htslib={self.spec['htslib'].prefix}", "--with-ncurses", - "CURSES_LIB={0}".format(curses_lib), + f"CURSES_LIB={curses_lib}", ) make() make("install") else: - make("prefix={0}".format(prefix), "LIBCURSES={0}".format(curses_lib)) + make(f"prefix={prefix}", f"LIBCURSES={curses_lib}") if self.spec.version == Version("0.1.8"): - make("prefix={0}".format(prefix)) + make(f"prefix={prefix}") else: - make("prefix={0}".format(prefix), "install") + make(f"prefix={prefix}", "install") # Install dev headers and libs for legacy apps depending on them # per https://github.com/samtools/samtools/releases/tag/1.14 diff --git a/repos/spack_repo/builtin/packages/samurai/package.py b/repos/spack_repo/builtin/packages/samurai/package.py index bcf93dc7082..8596f80e7db 100644 --- a/repos/spack_repo/builtin/packages/samurai/package.py +++ b/repos/spack_repo/builtin/packages/samurai/package.py @@ -12,6 +12,7 @@ class Samurai(CMakePackage): mesh refinement and operators on it""" homepage = "https://github.com/hpc-maths/samurai" + url = "https://github.com/hpc-maths/samurai/archive/refs/tags/v0.27.1.tar.gz" git = "https://github.com/hpc-maths/samurai.git" maintainers("gouarin", "sbstndb") @@ -19,12 +20,17 @@ class Samurai(CMakePackage): license("BSD-3-Clause") version("master", branch="master") - version("0.23.0", tag="v0.23.0", commit="c0c01fe78aa81f6e630962a6d90f57df6b84cc08") - version("0.22.0", tag="v0.22.0", commit="c32a011036437b3651a0b2df409d0ddd310f8f9f") - version("0.21.1", tag="v0.21.1", commit="29798bd9592e5b80674c49080a242378a61878c3") - version("0.20.0", tag="v0.20.0", commit="b894b8aebf992e112e129e3b70ccdfc7c19c6647") - version("0.19.0", tag="v0.19.0", commit="b35332c5d719a940b045210abd8e4eb9b69f6b85") - version("0.18.0", tag="v0.18.0", commit="483c44d1b28dc59e2004d618b094b4de31e1ef7c") + version("0.28.0", sha256="94a50fc30714b652157e27ac7870dc8487e1045289d87cb83b28d2c7f6834b94") + version("0.27.1", sha256="5cb1ffb87a6a3defbde45037bd80e8277c31d577e20559c6cb2853b82bc989ba") + version("0.27.0", sha256="23d3e6475fbc674a887af84333b49ff6ac68fa8326e9edfdb49fa47491c28f4f") + version("0.26.1", sha256="07971b2c5359cc33f5e3fb3f4f7d156b6aed91441139a1ae133378ba25e46d7a") + version("0.26.0", sha256="66d94b787c701cb9287a63dffeff7bb129d9465bef7ec6513362b987bf3fbcd3") + version("0.25.1", sha256="6eb053138161d4823ad4e2d400add581b0a70402d59513fd855af6b625f48bfe") + version("0.25.0", sha256="b09ca316c099f8e60fdc7d0c94d884bd1777aab174547eead6e87bed3c2b1039") + version("0.24.0", sha256="73c2596f14f83f9c116d4e5755b369b440c2e95e152de42699fff27c398f9c47") + version("0.23.0", sha256="7f0c626b5f5671e40dc2d35c520db69c30444083b247eba1a5dc026a519b4ce3") + version("0.22.0", sha256="65a087ba0eb461f75b3ee4cf7725432d8c92f2a1af42220d6b233279a432429b") + version("0.21.1", sha256="f052ee47a4f533fb805f3d3c9c9d5462e2b041855c9e4322d902860ec572d747") variant("mpi", default=False, description="Enable MPI support") variant("openmp", default=False, description="Enable OpenMP support") @@ -34,21 +40,19 @@ class Samurai(CMakePackage): variant("tests", default=False, description="Build tests") variant("check_nan", default=False, description="Check for Nan in computations") - depends_on("xtl@0.7.4") # optional dependency for a future release - # depends_on("xsimd@11.0.0") - depends_on("xtensor@0.24.1 ~tbb") - depends_on("highfive~mpi", when="~mpi") - depends_on("highfive+mpi", when="+mpi") + depends_on("xtensor@0.26:", when="@0.27.1:") + depends_on("xtensor@0.25", when="@0.23:0.27.0") + depends_on("highfive@3", when="@0.27.1:") + depends_on("highfive@2", when="@0.21:0.27.0") depends_on("pugixml") depends_on("fmt") - depends_on("nlohmann-json") depends_on("cli11") - depends_on("cxxopts") - depends_on("cgal") - depends_on("petsc~mpi", when="~mpi") - depends_on("petsc+mpi", when="+mpi") - depends_on("boost+serialization+mpi", when="+mpi") + depends_on("petsc") + + depends_on("petsc +mpi", when="+mpi") + depends_on("highfive +mpi", when="+mpi") + depends_on("boost +serialization +mpi", when="+mpi") def setup_dependent_build_environment( self, env: EnvironmentModifications, dependent_spec: Spec diff --git a/repos/spack_repo/builtin/packages/sandia_micro_benchmarks/package.py b/repos/spack_repo/builtin/packages/sandia_micro_benchmarks/package.py new file mode 100644 index 00000000000..e93485fd45a --- /dev/null +++ b/repos/spack_repo/builtin/packages/sandia_micro_benchmarks/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.makefile import MakefilePackage + +from spack.package import * + + +class SandiaMicroBenchmarks(MakefilePackage): + """Sandia Micro Benchmarks test HPC networking, including messaging rate performance, across + several different HPC networking protocols, including MPI, RMA, and SHMEM. There is also a test + for MPI implementation overhead.""" + + maintainers("nhanford", "mdosanjh") + + license("GPL-2.0-or-later", checked_by="nhanford") + + homepage = "https://github.com/sandialabs/SMB" + git = "https://github.com/sandialabs/SMB.git" + version("master", branch="master") + + variant(name="shmem", default=False, description="Build the SHMEM benchmark.") + + depends_on("mpi") + depends_on("sos", when="+shmem") + + @property + def build_targets(self): + targets = ["mpi_overhead", "msgrate", "rma_mt_mpi"] + if self.spec.satisfies("+shmem"): + targets.append("shmem_mt") + return targets + + def install(self, spec, prefix): + mkdir(prefix.bin) + for target in self.build_targets: + make(target) + install(target, prefix.bin) diff --git a/repos/spack_repo/builtin/packages/sarus/package.py b/repos/spack_repo/builtin/packages/sarus/package.py index 06735a1f1bb..477b3dbc9f8 100644 --- a/repos/spack_repo/builtin/packages/sarus/package.py +++ b/repos/spack_repo/builtin/packages/sarus/package.py @@ -98,7 +98,5 @@ def build_perms_script(self): https://sarus.readthedocs.io/en/stable/install/post-installation.html#security-related - """.format( - script_sh - ) + """.format(script_sh) ) diff --git a/repos/spack_repo/builtin/packages/sbcl/package.py b/repos/spack_repo/builtin/packages/sbcl/package.py index 91eb32ec5b2..1496f0bac6a 100644 --- a/repos/spack_repo/builtin/packages/sbcl/package.py +++ b/repos/spack_repo/builtin/packages/sbcl/package.py @@ -55,7 +55,7 @@ class Sbcl(MakefilePackage): phases = ["build", "install"] def build(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) version_str = str(spec.version) @@ -77,5 +77,5 @@ def build(self, spec, prefix): sh("make.sh", *build_args) def install(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("install.sh") diff --git a/repos/spack_repo/builtin/packages/sbcl_bootstrap/package.py b/repos/spack_repo/builtin/packages/sbcl_bootstrap/package.py index 8c9ef73cd2f..7c50a37cb81 100644 --- a/repos/spack_repo/builtin/packages/sbcl_bootstrap/package.py +++ b/repos/spack_repo/builtin/packages/sbcl_bootstrap/package.py @@ -109,6 +109,6 @@ def url_for_version(self, version): return sbcl_url.format(version=version, target=sbcl_targets[target], os=os) def install(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) with set_env(INSTALL_ROOT=self.spec.prefix): sh("install.sh") diff --git a/repos/spack_repo/builtin/packages/scalasca/package.py b/repos/spack_repo/builtin/packages/scalasca/package.py index 1f815b925fe..00a23b331b5 100644 --- a/repos/spack_repo/builtin/packages/scalasca/package.py +++ b/repos/spack_repo/builtin/packages/scalasca/package.py @@ -25,9 +25,6 @@ class Scalasca(AutotoolsPackage): version("2.6", sha256="b3f9cb1d58f3e25090a39da777bae8ca2769fd10cbd6dfb9a4887d873ee2441e") version("2.5", sha256="7dfa01e383bfb8a4fd3771c9ea98ff43772e415009d9f3c5f63b9e05f2dde0f6") version("2.4", sha256="4a895868258030f700a635eac93d36764f60c8c63673c7db419ea4bcc6b0b760") - version("2.3.1", sha256="8ff485d03ab2c02a5852d346ae041a191c60b4295f8f9b87fe58cd36977ba558") - version("2.2.2", sha256="909567ca294366119bbcb7e8122b94f43982cbb328e18c6f6ce7a722d72cd6d4") - version("2.1", sha256="fefe43f10becf7893863380546c80ac8db171a3b1ebf97d0258602667572c2fc") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -46,13 +43,6 @@ class Scalasca(AutotoolsPackage): # version 2.3 - 2.6.0 depends_on("otf2@2:2.99", when="@2.3:2.6.0") - # version 2.3 - depends_on("cube@4.3", when="@2.3:2.3.99") - - # version 2.1 - 2.2 - depends_on("cube@4.2", when="@2.1:2.2") - depends_on("otf2@1.4", when="@2.1:2.2") - def url_for_version(self, version): return "http://apps.fz-juelich.de/scalasca/releases/scalasca/{0}/dist/scalasca-{1}.tar.gz".format( version.up_to(2), version @@ -63,10 +53,7 @@ def configure_args(self): config_args = ["--enable-shared"] - if spec.satisfies("@2.4:"): - config_args.append("--with-cube=%s" % spec["cubew"].prefix.bin) - else: - config_args.append("--with-cube=%s" % spec["cube"].prefix.bin) + config_args.append("--with-cube=%s" % spec["cubew"].prefix.bin) config_args.append("--with-otf2=%s" % spec["otf2"].prefix.bin) diff --git a/repos/spack_repo/builtin/packages/scale/package.py b/repos/spack_repo/builtin/packages/scale/package.py index bf49e5f95ae..542b804ba38 100644 --- a/repos/spack_repo/builtin/packages/scale/package.py +++ b/repos/spack_repo/builtin/packages/scale/package.py @@ -66,7 +66,7 @@ def build(self, spec, prefix): env["SCALE_SYS"] = scale_sys_str # set SCALE_NETCDF_INCLUDE - nc_config = which("nc-config") + nc_config = which("nc-config", required=True) nc_str = nc_config("--cflags", "--fflags", output=str) try: env["SCALE_NETCDF_INCLUDE"] = nc_str.replace("\n", " ") @@ -74,7 +74,7 @@ def build(self, spec, prefix): env["SCALE_NETCDF_INCLUDE"] = nc_str.decode().replace("\n", " ") # set SCALE_NETCDF_LIBS - nc_config = which("nc-config") + nc_config = which("nc-config", required=True) nc_str = nc_config("--libs", "--flibs", output=str) try: env["SCALE_NETCDF_LIBS"] = nc_str.replace("\n", " ") diff --git a/repos/spack_repo/builtin/packages/scallop/package.py b/repos/spack_repo/builtin/packages/scallop/package.py index 53dfed02020..032a2c589d7 100644 --- a/repos/spack_repo/builtin/packages/scallop/package.py +++ b/repos/spack_repo/builtin/packages/scallop/package.py @@ -17,6 +17,7 @@ class Scallop(AutotoolsPackage): version("0.10.5", sha256="b09e3c61f1b3b1da2a96d9d8429d80326a3bb14f5fe6af9b5e87570d4b86937a") version("0.10.3", sha256="04eb3ab27ed8c7ae38e1780d6b2af16b6a2c01807ffafd59e819d33bfeff58a0") + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("clp") diff --git a/repos/spack_repo/builtin/packages/sccache/package.py b/repos/spack_repo/builtin/packages/sccache/package.py index d03a8968901..fc70cd2c9fc 100644 --- a/repos/spack_repo/builtin/packages/sccache/package.py +++ b/repos/spack_repo/builtin/packages/sccache/package.py @@ -26,15 +26,9 @@ class Sccache(CargoPackage): license("Apache-2.0", checked_by="pranav-sivaraman") + version("0.10.0", sha256="2c9f82c43ce6a1b1d9b34f029ce6862bedc2f01deff45cde5dffc079deeba801") version("0.8.2", sha256="2b3e0ef8902fe7bcdcfccf393e29f4ccaafc0194cbb93681eaac238cdc9b94f8") - depends_on("rust@1.75:", when="@0.8.2:") - depends_on("rust@1.70:", when="@0.7.7:") - depends_on("rust@1.67.1:") # for 0.6/0.7.1 and newer, but may work for even older versions. - depends_on("pkgconfig", type="build", when="platform=linux") - - depends_on("openssl", when="platform=linux") - variant( "dist-server", default=False, @@ -42,6 +36,12 @@ class Sccache(CargoPackage): when="platform=linux", ) + depends_on("c", type="build") + depends_on("rust@1.75:", type="build", when="@0.8.2:") + depends_on("pkgconfig", type="build", when="platform=linux") + + depends_on("openssl", when="platform=linux") + @classmethod def determine_version(cls, exe): output = Executable(exe)("--version", output=str, error=str) @@ -57,7 +57,6 @@ def determine_variants(cls, exes, version_str): class CargoBuilder(cargo.CargoBuilder): - @property def build_args(self): if self.spec.satisfies("+dist-server"): diff --git a/repos/spack_repo/builtin/packages/scitokens_cpp/package.py b/repos/spack_repo/builtin/packages/scitokens_cpp/package.py index 57a69c558f6..38c4e80f25c 100644 --- a/repos/spack_repo/builtin/packages/scitokens_cpp/package.py +++ b/repos/spack_repo/builtin/packages/scitokens_cpp/package.py @@ -13,11 +13,13 @@ class ScitokensCpp(CMakePackage): homepage = "https://github.com/scitokens/scitokens-cpp" url = "https://github.com/scitokens/scitokens-cpp/archive/refs/tags/v0.7.0.tar.gz" + git = "https://github.com/scitokens/scitokens-cpp.git" maintainers("gartung", "greenc-FNAL", "marcmengel", "vitodb") license("Apache-2.0") + version("master", branch="master") version("1.1.3", sha256="eeaeb06da74cae92bd03d6be4c407e4855db023f409c59540b3143069407be1f") version("1.1.2", sha256="07d33cb51a3ccd8460f2acebb15b35393aeccfc70e3554a73c9e5cffed6edb39") version("1.1.1", sha256="a9091b888fc778282caf2a6808c86f685d2411557673152d58fe53932a6c7212") @@ -40,12 +42,13 @@ class ScitokensCpp(CMakePackage): depends_on("cxx", type="build") # generated - depends_on("cmake@2.6:") - depends_on("cmake@3.10:", when="@0.7.1:") + depends_on("cmake@2.6:", type="build") + depends_on("cmake@3.10:", type="build", when="@0.7.1:") depends_on("openssl") depends_on("sqlite") depends_on("curl") depends_on("jwt-cpp", type="build") + depends_on("jwt-cpp@0.7:", type="build", when="@master") depends_on("pkgconfig", type="build") depends_on("uuid", type="build") diff --git a/repos/spack_repo/builtin/packages/scnlib/package.py b/repos/spack_repo/builtin/packages/scnlib/package.py index 0de898fb354..a2938e4cdaf 100644 --- a/repos/spack_repo/builtin/packages/scnlib/package.py +++ b/repos/spack_repo/builtin/packages/scnlib/package.py @@ -11,12 +11,13 @@ class Scnlib(CMakePackage): """scanf for modern C++""" homepage = "https://scnlib.dev" - url = "https://github.com/eliaskosunen/scnlib/archive/refs/tags/v3.0.1.tar.gz" + url = "https://github.com/eliaskosunen/scnlib/archive/refs/tags/v4.0.1.tar.gz" maintainers("pranav-sivaraman") license("Apache-2.0", checked_by="pranav-sivaraman") + version("4.0.1", sha256="ece17b26840894cc57a7127138fe4540929adcb297524dec02c490c233ff46a7") version("3.0.1", sha256="bc8a668873601d00cce6841c2d0f2c93f836f63f0fbc77997834dea12e951eb1") variant("shared", default=True, description="Build shared libs") @@ -37,7 +38,7 @@ class Scnlib(CMakePackage): depends_on("cxx", type="build") depends_on("cmake@3.16:", type="build") - depends_on("fast-float@5:") + depends_on("fast-float@5:6") depends_on("boost +regex cxxstd=17", when="regex-backend=Boost") depends_on("boost +icu", when="+icu") diff --git a/repos/spack_repo/builtin/packages/scons/package.py b/repos/spack_repo/builtin/packages/scons/package.py index 9d612a49de6..568e1b308b9 100644 --- a/repos/spack_repo/builtin/packages/scons/package.py +++ b/repos/spack_repo/builtin/packages/scons/package.py @@ -70,7 +70,7 @@ def setup_dependent_run_environment( ) -> None: env.prepend_path("PYTHONPATH", self.prefix.lib.scons) - def setup_dependent_package(self, module, dspec): + def setup_dependent_package(self, module, dependent_spec): if sys.platform == "win32": module.scons = Executable(self.spec.prefix.Scripts.scons) else: diff --git a/repos/spack_repo/builtin/packages/scorec_core/package.py b/repos/spack_repo/builtin/packages/scorec_core/package.py deleted file mode 100644 index 5ae9fad43d2..00000000000 --- a/repos/spack_repo/builtin/packages/scorec_core/package.py +++ /dev/null @@ -1,41 +0,0 @@ -# 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 ScorecCore(CMakePackage): - """The SCOREC Core is a set of C/C++ libraries for unstructured mesh - simulations on supercomputers. - """ - - homepage = "https://www.scorec.rpi.edu/" - git = "https://github.com/SCOREC/core.git" - - tags = ["e4s"] - - license("BSD-3-Clause") - - version("develop") - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated - - depends_on("mpi") - depends_on("zoltan") - depends_on("cmake@3.0:", type="build") - - def cmake_args(self): - options = [] - options.append("-DCMAKE_C_COMPILER=%s" % self.spec["mpi"].mpicc) - options.append("-DCMAKE_CXX_COMPILER=%s" % self.spec["mpi"].mpicxx) - options.append("-DENABLE_ZOLTAN=ON") - - if self.compiler.name == "xl": - options.append("-DSCOREC_EXTRA_CXX_FLAGS=%s" % "-qminimaltoc") - - return options diff --git a/repos/spack_repo/builtin/packages/scorecard/package.py b/repos/spack_repo/builtin/packages/scorecard/package.py new file mode 100644 index 00000000000..f59377c6b5a --- /dev/null +++ b/repos/spack_repo/builtin/packages/scorecard/package.py @@ -0,0 +1,40 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.go import GoPackage + +from spack.package import * + + +class Scorecard(GoPackage): + """OpenSSF Scorecard - Security health metrics for Open Source""" + + homepage = "https://scorecard.dev/" + url = "https://github.com/ossf/scorecard/archive/refs/tags/v5.2.1.tar.gz" + + maintainers("alecbcs", "tgamblin") + + license("Apache-2.0", checked_by="alecbcs") + + version("5.3.0", sha256="4fbcb442071d5e463c8d20f8bc8ac52502e874e06a395887469c84335f4b21fb") + version("5.2.1", sha256="f73d5212de4f67f143258a64664af6906aa7fcad2188b66c3beabd46871e2f62") + + @run_after("install") + def install_completions(self): + scorecard = Executable(self.prefix.bin.scorecard) + + # Install bash completions + mkdirp(bash_completion_path(self.prefix)) + with open(bash_completion_path(self.prefix) / "scorecard", "w") as file: + scorecard("completion", "bash", output=file) + + # Install fish completions + mkdirp(fish_completion_path(self.prefix)) + with open(fish_completion_path(self.prefix) / "scorecard.fish", "w") as file: + scorecard("completion", "fish", output=file) + + # Install zsh completions + mkdirp(zsh_completion_path(self.prefix)) + with open(zsh_completion_path(self.prefix) / "_scorecard", "w") as file: + scorecard("completion", "zsh", output=file) diff --git a/repos/spack_repo/builtin/packages/scorep/gcc10.patch b/repos/spack_repo/builtin/packages/scorep/gcc10.patch deleted file mode 100644 index 76bcb987ca0..00000000000 --- a/repos/spack_repo/builtin/packages/scorep/gcc10.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/src/adapters/compiler/gcc-plugin/scorep_plugin_pass_instrument.inc.c -+++ b/src/adapters/compiler/gcc-plugin/scorep_plugin_pass_instrument.inc.c -@@ -83,7 +83,11 @@ is_instrumentable( const char* assemblerName ) - return "in system header"; - } - -+#if SCOREP_GCC_PLUGIN_TARGET_VERSION < 10000 - if ( node->global.inlined_to ) -+#else -+ if ( node->inlined_to ) -+#endif - { - return "was inlined"; - } diff --git a/repos/spack_repo/builtin/packages/scorep/gcc7.patch b/repos/spack_repo/builtin/packages/scorep/gcc7.patch deleted file mode 100644 index 7383ee15ba4..00000000000 --- a/repos/spack_repo/builtin/packages/scorep/gcc7.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -ru scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_gcc_version_compatibility.h scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_gcc_version_compatibility.h ---- scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_gcc_version_compatibility.h 2017-08-15 14:46:27.353875030 +0200 -+++ scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_gcc_version_compatibility.h 2017-08-15 14:52:18.458118812 +0200 -@@ -27,6 +27,11 @@ - DECL_SECTION_NAME( decl ) = build_string( strlen( section ), section ) - #endif - -+#if SCOREP_GCC_PLUGIN_TARGET_VERSION < 7000 -+#define SET_DECL_ALIGN( decl, align ) \ -+ DECL_ALIGN( decl ) = ( align ) -+#endif -+ - #if SCOREP_GCC_PLUGIN_TARGET_VERSION >= 5000 - #define varpool_finalize_decl( decl ) varpool_node::finalize_decl( decl ) - #define cgraph_get_node( decl ) cgraph_node::get( decl ) -diff -ru scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_inst_descriptor.inc.c scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_inst_descriptor.inc.c ---- scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_inst_descriptor.inc.c 2017-08-15 14:46:27.353875030 +0200 -+++ scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_inst_descriptor.inc.c 2017-08-15 14:52:56.220854113 +0200 -@@ -194,7 +194,7 @@ - TREE_TYPE( region_descr_value ) ); - - /* Align the struct generously, so that it works for 32 and 64 bit */ -- DECL_ALIGN( region_descr_var ) = 64 * BITS_PER_UNIT; -+ SET_DECL_ALIGN( region_descr_var, 64 * BITS_PER_UNIT ); - DECL_USER_ALIGN( region_descr_var ) = 1; - - /* The struct is 64 bytes, because of reserved entries */ -diff -ru scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_tree-flow.h scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_tree-flow.h ---- scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_tree-flow.h 2017-08-15 14:46:27.353875030 +0200 -+++ scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_tree-flow.h 2017-08-15 14:49:26.163888408 +0200 -@@ -23,6 +23,11 @@ - #include "stringpool.h" - #include "basic-block.h" - #include "tree-ssa-alias.h" -+ -+#if SCOREP_GCC_PLUGIN_TARGET_VERSION >= 7000 -+#include "tree-vrp.h" -+#endif -+ - #include "tree-ssanames.h" - #include "internal-fn.h" - #include "gimple-expr.h" diff --git a/repos/spack_repo/builtin/packages/scorep/package.py b/repos/spack_repo/builtin/packages/scorep/package.py index ad2dd43c3bf..a6b231af005 100644 --- a/repos/spack_repo/builtin/packages/scorep/package.py +++ b/repos/spack_repo/builtin/packages/scorep/package.py @@ -17,8 +17,9 @@ class Scorep(AutotoolsPackage): homepage = "https://www.vi-hps.org/projects/score-p" url = "https://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-7.1/scorep-7.1.tar.gz" maintainers("wrwilliams") - version("9.1", sha256="a6593716e62c751937f3be78782bf09b3737a68c46cdbeabec7cff80d2fdc7c8") - version("9.0", sha256="5d0a5db4cc6f31c30ae03c7e6f6245e83667b0ff38a7041ffe8b2e8e581e0997") + version("9.4", sha256="bea58d8c47a7512eca0a5858179377f3f0861f30eafb342a29aa97c05de8f623") + version("9.3", sha256="5498b31b1d6c04b08a9d408320a7515e884538d248de58b6dd11b48c8f364112") + version("9.2", sha256="be3eaee99cdd0145e518c1aa959126df45e25b61579a007d062748b2844c499c") version("8.4", sha256="7bbde9a0721d27cc6205baf13c1626833bcfbabb1f33b325a2d67976290f7f8a") version("8.3", sha256="76c914e6319221c059234597a3bc53da788ed679179ac99c147284dcefb1574a") # version 8.2 was immediately superseded before it hit Spack @@ -26,64 +27,7 @@ class Scorep(AutotoolsPackage): version("8.0", sha256="4c0f34f20999f92ebe6ca1ff706d0846b8ce6cd537ffbedb49dfaef0faa66311") version("7.1", sha256="98dea497982001fb82da3429ca55669b2917a0858c71abe2cfe7cd113381f1f7") version("7.0", sha256="68f24a68eb6f94eaecf500e17448f566031946deab74f2cba072ee8368af0996") - version( - "6.0", - sha256="5dc1023eb766ba5407f0b5e0845ec786e0021f1da757da737db1fb71fc4236b8", - deprecated="true", - ) - version( - "5.0", - sha256="0651614eacfc92ffbe5264a3efebd0803527ae6e8b11f7df99a56a02c37633e1", - deprecated="true", - ) - version( - "4.1", - sha256="7bb6c1eecdd699b4a3207caf202866778ee01f15ff39a9ec198fcd872578fe63", - deprecated="true", - ) - version( - "4.0", - sha256="c050525606965950ad9b35c14077b88571bcf9bfca08599279a3d8d1bb00e655", - deprecated="true", - ) - version( - "3.1", - sha256="49efe8a4e02afca752452809e1b21cba42e8ccb0a0772f936d4459d94e198540", - deprecated="true", - ) - version( - "3.0", - sha256="c9e7fe0a8239b3bbbf7628eb15f7e90de9c36557818bf3d01aecce9fec2dc0be", - deprecated="true", - ) - version( - "2.0.2", - sha256="d19498408781048f0e9039a1a245bce6b384f09fbe7d3643105b4e2981ecd610", - deprecated="true", - ) - version( - "1.4.2", - sha256="d7f3fcca2efeb2f5d5b5f183b3b2c4775e66cbb3400ea2da841dd0428713ebac", - deprecated="true", - ) - version( - "1.3", - sha256="dcfd42bd05f387748eeefbdf421cb3cd98ed905e009303d70b5f75b217fd1254", - deprecated="true", - ) - def url_for_version(self, version): - if version < Version("7.0"): - return "https://www.vi-hps.org/cms/upload/packages/scorep/scorep-{0}.tar.gz".format( - version - ) - - return "https://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-{0}/scorep-{0}.tar.gz".format( - version - ) - - patch("gcc7.patch", when="@1.4:3") - patch("gcc10.patch", when="@3.1:6.0") patch( "https://gitlab.com/score-p/scorep/-/commit/093ff84f0e155ac1db99bbaa312e028f89affddb.diff", when="@7:8.4 +gcc-plugin", @@ -108,21 +52,24 @@ def url_for_version(self, version): description="Enable debug info lookup via binutils", when="^binutils", ) - # Putting this in as preparation. F08 support exists in 9.0 but configure does not respect - # --enable-mpi-f08 and will not until 9.1. - variant("mpi_f08", default=True, description="Enable MPI F08 support", when="@9.1: +mpi") + variant("fortran", default=True, description="Enable fortran support") + variant( + "mpi_f08", default=True, description="Enable MPI F08 support", when="@9.1: +mpi +fortran" + ) + variant( + "gotcha", default=True, description="Enable library wrapping with libgotcha", when="@9:" + ) # Dependencies for SCORE-P are quite tight. See the homepage for more # information. Starting with scorep 4.0 / cube 4.4, Score-P only depends on # two components of cube -- cubew and cubelib. # Language dependencies - # TODO: we could allow a +fortran variant here. - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type=("build", "run")) + depends_on("cxx", type=("build", "run")) + depends_on("fortran", type=("build", "run"), when="+fortran") # SCOREP 9 - depends_on("gotcha@1.0.8:", type="link", when="@9:") + depends_on("gotcha@1.0.8:", type="link", when="+gotcha") depends_on("otf2@3.1:", when="@9:") depends_on("cubew@4.9:", when="@9:") depends_on("cubelib@4.9:", when="@9:") @@ -141,32 +88,10 @@ def url_for_version(self, version): depends_on("cubew@4.6:4.7.99", when="@7.0:7") depends_on("cubelib@4.6:4.7.99", when="@7.0:7") depends_on("opari2@2.0.6:", when="@7:") - # SCOREP 6 - depends_on("otf2@2.2:", when="@6.0:6") - # SCOREP 4 and 5 - depends_on("otf2@2.1:", when="@4:5") - depends_on("cubew@4.4:4.5", when="@4:6") - depends_on("cubelib@4.4:4.5", when="@4:6") - # SCOREP 3 - depends_on("otf2@2:", when="@3.0:3") - depends_on("opari2@2.0:2.0.5", when="@3:6") - depends_on("cube@4.3:4.3.5", when="@3.0:3") - # SCOREP 2.0.2 - depends_on("otf2@2.0", when="@2.0.2") - depends_on("opari2@2.0", when="@2.0.2") - depends_on("cube@4.3:4.3.5", when="@2.0.2") - # SCOREP 1.4.2 - depends_on("otf2@1.5:1.6", when="@1.4.2") - depends_on("opari2@1.1.4", when="@1.4.2") - depends_on("cube@4.2.3:4.3.5", when="@1.4.2") - # SCOREP 1.3 - depends_on("otf2@1.4", when="@1.3") - depends_on("opari2@1.1.4", when="@1.3") - depends_on("cube@4.2.3", when="@1.3") # Conditional dependencies for variants - depends_on("mpi@2.2:", when="@7.0:+mpi") - depends_on("mpi", when="+mpi") + depends_on("mpi@2.2:", type=("build", "run"), when="+mpi") + depends_on("mpi", type=("build", "run"), when="+mpi") depends_on("papi", when="+papi") depends_on("pdt", when="+pdt") depends_on("llvm", when="+unwind") @@ -182,7 +107,7 @@ def url_for_version(self, version): # https://github.com/spack/spack/issues/1609 conflicts("platform=darwin") # Score-P first has support for ROCm 6.x as of v8.4 - conflicts("hip@6.0:", when="@1.0:8.3+hip") + conflicts("hip@6.0:", when="@:8.3+hip") # Utility function: extract the first directory in `root` where # we find `libname`. Used to handle CUDA irregular layouts. @@ -244,9 +169,17 @@ def configure_args(self): "rocm", activation_value=lambda _: self.spec["hip"].prefix, variant="hip" ) ) + config_args.extend( + self.with_or_without( + "libgotcha", + activation_value=lambda _: self.spec["gotcha"].prefix, + variant="gotcha", + ) + ) config_args.extend(self.enable_or_disable("llvm-plugin")) config_args.extend(self.enable_or_disable("gcc-plugin")) config_args.extend(self.enable_or_disable("mpi_f08")) + config_args.extend(self.enable_or_disable("fortran")) if "~shmem" in spec: config_args.append("--without-shmem") @@ -286,13 +219,6 @@ def configure_args(self): ) ) - # when you build with gcc, you usually want to use the gcc-plugin! - # see, e.g., GNU Compiler Plug-In in https://scorepci.pages.jsc.fz-juelich.de/scorep-pipelines/docs/scorep-5.0/html/installationfile.html - if "+gcc-plugin" in spec: - config_args.append("--enable-gcc-plugin") - else: - config_args.append("--disable-gcc-plugin") - config_args.extend( [ "CFLAGS={0}".format(self.compiler.cc_pic_flag), diff --git a/repos/spack_repo/builtin/packages/scotch/package.py b/repos/spack_repo/builtin/packages/scotch/package.py index 3045c29357b..81ff0dd4856 100644 --- a/repos/spack_repo/builtin/packages/scotch/package.py +++ b/repos/spack_repo/builtin/packages/scotch/package.py @@ -19,8 +19,9 @@ class Scotch(CMakePackage, MakefilePackage): url = "https://gitlab.inria.fr/scotch/scotch/-/archive/v7.0.1/scotch-v7.0.1.tar.gz" list_url = "https://gforge.inria.fr/frs/?group_id=248" - maintainers("pghysels") + maintainers("AlexanderRichert-NOAA", "climbfuji") + version("7.0.11", sha256="ce1ea6e16ca36ae91426a360f639c8f575fccebc0116fbcb381f164c5e862768") version("7.0.10", sha256="8327725a08cdd4fc7575e291251883b4f93f75b07a54bc58f89f50dcbba7b244") version("7.0.9", sha256="6d50c3f66e3e0e2058bce45ed9eee171fd8d6c01123c802a98544948a1c3d5d1") version("7.0.8", sha256="21f48ac85c7991a5eb5fae9232dd68584556ccc500f85e2ebd6b5b275617e11a") @@ -157,7 +158,6 @@ def patch(self): class CMakeBuilder(cmake.CMakeBuilder): - def cmake_args(self): args = [ self.define_from_variant("BUILD_LIBSCOTCHMETIS", "metis"), diff --git a/repos/spack_repo/builtin/packages/scr/package.py b/repos/spack_repo/builtin/packages/scr/package.py index 9e5ade07698..17a3ec7706b 100644 --- a/repos/spack_repo/builtin/packages/scr/package.py +++ b/repos/spack_repo/builtin/packages/scr/package.py @@ -35,29 +35,10 @@ class Scr(CMakePackage): version("develop", branch="develop") version("legacy", branch="legacy") - version( - "3.1.0", - sha256="ca1f37c84e0ff7a307e68f213c8cc868974d7fb30f16826853a711c7c3a55ffa", - preferred=True, - ) + version("3.1.0", sha256="ca1f37c84e0ff7a307e68f213c8cc868974d7fb30f16826853a711c7c3a55ffa") version("3.0.1", sha256="ba8f9e676aec8176ecc46c31a4f470ac95047101654de8cc88e01a1f9d95665a") version("3.0.0", sha256="e204d3e99a49efac50b4bedc7ac05f55a05f1a65429500d919900c82490532cc") version("2.0.0", sha256="471978ae0afb56a20847d3989b994fbd680d1dea21e77a5a46a964b6e3deed6b") - version( - "1.2.2", - sha256="764a85638a9e8762667ec1f39fa5f7da7496fca78de379a22198607b3e027847", - deprecated=True, - ) - version( - "1.2.1", - sha256="23acab2dc7203e9514455a5168f2fd57bc590affb7a1876912b58201513628fe", - deprecated=True, - ) - version( - "1.2.0", - sha256="e3338ab2fa6e9332d2326c59092b584949a083a876adf5a19d4d5c7a1bbae047", - deprecated=True, - ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -104,7 +85,7 @@ class Scr(CMakePackage): "dtcmp", default=True, when="@:2", - description="Build with DTCMP. " "Necessary to enable user directory naming at runtime", + description="Build with DTCMP. Necessary to enable user directory naming at runtime", ) depends_on("dtcmp", when="+dtcmp") depends_on("dtcmp", when="@3:") diff --git a/repos/spack_repo/builtin/packages/screen/package.py b/repos/spack_repo/builtin/packages/screen/package.py index 6fa2ff6c36d..80eba204fa2 100644 --- a/repos/spack_repo/builtin/packages/screen/package.py +++ b/repos/spack_repo/builtin/packages/screen/package.py @@ -14,34 +14,47 @@ class Screen(AutotoolsPackage, GNUMirrorPackage): """ homepage = "https://www.gnu.org/software/screen/" - gnu_mirror_path = "screen/screen-4.3.1.tar.gz" + gnu_mirror_path = "screen/screen-5.0.1.tar.gz" license("GPL-3.0-or-later") - version("4.9.1", sha256="26cef3e3c42571c0d484ad6faf110c5c15091fbf872b06fa7aa4766c7405ac69") - version("4.9.0", sha256="f9335281bb4d1538ed078df78a20c2f39d3af9a4e91c57d084271e0289c730f4") - version("4.8.0", sha256="6e11b13d8489925fde25dfb0935bf6ed71f9eb47eff233a181e078fde5655aa1") - version("4.6.2", sha256="1b6922520e6a0ce5e28768d620b0f640a6631397f95ccb043b70b91bb503fa3a") - version("4.3.1", sha256="fa4049f8aee283de62e283d427f2cfd35d6c369b40f7f45f947dbfd915699d63") - version("4.3.0", sha256="5164e89bcc60d7193177e6e02885cc42411d1d815c839e174fb9abafb9658c46") - version("4.2.1", sha256="5468545047e301d2b3579f9d9ce00466d14a7eec95ce806e3834a3d6b0b9b080") - version("4.2.0", sha256="7dc1b7a3e7669eefe7e65f32e201704d7a11cc688244fcf71757f7792a5ff413") - version("4.0.3", sha256="78f0d5b1496084a5902586304d4a73954b2bfe33ea13edceecf21615c39e6c77") - version("4.0.2", sha256="05d087656d232b38c82379dfc66bf526d08e75e1f4c626acea4a2dda1ebcc845") - version("3.9.15", sha256="11ea131c224fa759feee3bc6ee2e3d6915a97d2d6da46db968dc24b41de054db") - version("3.9.11", sha256="f0d6d2eae538688766381c1658e3d4a64c8b4afb3682c2bb33ce96edc840a261") - version("3.9.10", sha256="3e8df4e1888e59267c37d2a24fa8365cd4d2081392f719579a347a2c6d1386a8") - version("3.9.9", sha256="8e40931ee93387c6897307419befb9d9c39bf66cd42261231f6160ef6c54dccb") - version("3.9.8", sha256="7c0593b5eec5191897e4293832cece08e4cbf362a2cf056d7d30e22727e7156b") - version("3.9.4", sha256="a3d84f7e2ae97e6264a52bcc7e0717bc9cf6bb9dbbab8d1acd1e78eb35233f42") - version("3.7.6", sha256="f30251dec5e23fac0d77922b5064e0b4db6d4d22a2a6534ebe4f3bae5ce22523") - version("3.7.4", sha256="65d33ad60c7e18f0c527654574ba1e630a8d4da106f377264a0ec3fa953d22cf") - version("3.7.2", sha256="6a882385d2810b8220b9e03c75c5fa184dcbd1afdb95974bbac396bb749a6cc0") - version("3.7.1", sha256="0cd5b1a2cbba6bb2f2bc2145aec650abf02541fd3a2071117a99e4982f6e01da") - - depends_on("c", type="build") # generated - + version("5.0.1", sha256="2dae36f4db379ffcd14b691596ba6ec18ac3a9e22bc47ac239789ab58409869d") + + # Older versions deprecated because of various CVEs + with default_args(deprecated=True): + version("4.9.1", sha256="26cef3e3c42571c0d484ad6faf110c5c15091fbf872b06fa7aa4766c7405ac69") + version("4.9.0", sha256="f9335281bb4d1538ed078df78a20c2f39d3af9a4e91c57d084271e0289c730f4") + version("4.8.0", sha256="6e11b13d8489925fde25dfb0935bf6ed71f9eb47eff233a181e078fde5655aa1") + version("4.6.2", sha256="1b6922520e6a0ce5e28768d620b0f640a6631397f95ccb043b70b91bb503fa3a") + version("4.3.1", sha256="fa4049f8aee283de62e283d427f2cfd35d6c369b40f7f45f947dbfd915699d63") + version("4.3.0", sha256="5164e89bcc60d7193177e6e02885cc42411d1d815c839e174fb9abafb9658c46") + version("4.2.1", sha256="5468545047e301d2b3579f9d9ce00466d14a7eec95ce806e3834a3d6b0b9b080") + version("4.2.0", sha256="7dc1b7a3e7669eefe7e65f32e201704d7a11cc688244fcf71757f7792a5ff413") + version("4.0.3", sha256="78f0d5b1496084a5902586304d4a73954b2bfe33ea13edceecf21615c39e6c77") + version("4.0.2", sha256="05d087656d232b38c82379dfc66bf526d08e75e1f4c626acea4a2dda1ebcc845") + version( + "3.9.15", sha256="11ea131c224fa759feee3bc6ee2e3d6915a97d2d6da46db968dc24b41de054db" + ) + version( + "3.9.11", sha256="f0d6d2eae538688766381c1658e3d4a64c8b4afb3682c2bb33ce96edc840a261" + ) + version( + "3.9.10", sha256="3e8df4e1888e59267c37d2a24fa8365cd4d2081392f719579a347a2c6d1386a8" + ) + version("3.9.9", sha256="8e40931ee93387c6897307419befb9d9c39bf66cd42261231f6160ef6c54dccb") + version("3.9.8", sha256="7c0593b5eec5191897e4293832cece08e4cbf362a2cf056d7d30e22727e7156b") + version("3.9.4", sha256="a3d84f7e2ae97e6264a52bcc7e0717bc9cf6bb9dbbab8d1acd1e78eb35233f42") + version("3.7.6", sha256="f30251dec5e23fac0d77922b5064e0b4db6d4d22a2a6534ebe4f3bae5ce22523") + version("3.7.4", sha256="65d33ad60c7e18f0c527654574ba1e630a8d4da106f377264a0ec3fa953d22cf") + version("3.7.2", sha256="6a882385d2810b8220b9e03c75c5fa184dcbd1afdb95974bbac396bb749a6cc0") + version("3.7.1", sha256="0cd5b1a2cbba6bb2f2bc2145aec650abf02541fd3a2071117a99e4982f6e01da") + + depends_on("c", type="build") + depends_on("awk", type="build") + depends_on("autoconf@2.71:", type="build", when="@5:") + depends_on("autoconf@2.60:", type="build", when="@4.9:") + depends_on("automake", type="build", when="@4.9:") + depends_on("libtool", type="build", when="@4.9:") depends_on("ncurses") - depends_on("autoconf", type="build", when="@4.9.0:") - depends_on("automake", type="build", when="@4.9.0:") - depends_on("libtool", type="build", when="@4.9.0:") + depends_on("libxcrypt", when="@3.9:") + depends_on("linux-pam", when="@5: platform=linux") diff --git a/repos/spack_repo/builtin/packages/scrnsaverproto/package.py b/repos/spack_repo/builtin/packages/scrnsaverproto/package.py index 07e1e358041..c3ce42414f3 100644 --- a/repos/spack_repo/builtin/packages/scrnsaverproto/package.py +++ b/repos/spack_repo/builtin/packages/scrnsaverproto/package.py @@ -21,5 +21,7 @@ class Scrnsaverproto(AutotoolsPackage, XorgPackage): version("1.2.2", sha256="d8dee19c52977f65af08fad6aa237bacee11bc5a33e1b9b064e8ac1fd99d6e79") + depends_on("c", type="build") + depends_on("pkgconfig", type="build") depends_on("util-macros", type="build") diff --git a/repos/spack_repo/builtin/packages/sdsl_lite/package.py b/repos/spack_repo/builtin/packages/sdsl_lite/package.py index 568c34abb63..7813426e755 100644 --- a/repos/spack_repo/builtin/packages/sdsl_lite/package.py +++ b/repos/spack_repo/builtin/packages/sdsl_lite/package.py @@ -35,7 +35,7 @@ def install(self, spec, prefix): # spack will fail to expand the archive on its own due to a link loop # expand it manually here and run the install helper - tar = which("tar") + tar = which("tar", required=True) tar("-xvf", self.stage.archive_file) with working_dir("sdsl-lite-{0}".format(spec.version.dotted)): diff --git a/repos/spack_repo/builtin/packages/seacas/package.py b/repos/spack_repo/builtin/packages/seacas/package.py index 9f4210af13d..0e6aace15e9 100644 --- a/repos/spack_repo/builtin/packages/seacas/package.py +++ b/repos/spack_repo/builtin/packages/seacas/package.py @@ -11,7 +11,6 @@ # # Need to add: # KOKKOS support using an external (i.e. spack-supplied) kokkos library. -# Data Warehouse (FAODEL) enable/disable is_windows = sys.platform == "win32" @@ -35,6 +34,15 @@ class Seacas(CMakePackage): # ###################### Versions ########################## version("master", branch="master") + version( + "2025-10-14", sha256="f9351a8f1a555a015020f249b1e5c26a282fbb6e274f9b71eb38720d61267dda" + ) + version( + "2025-08-28", sha256="29125a84859c78b6bb0b5909ce7443aa2774235f0fc75dedf467a223603e0ffd" + ) + version( + "2025-08-19", sha256="f745ca9a57bfd7f771632fb5f154eb38ed3260e1430d968f2db725f8d8ee8545" + ) version( "2025-07-07", sha256="c1700d39cef818c87335dd3789403e47dc9efc2f01c8c3fb8e7d54b2db02a54a" ) @@ -80,11 +88,6 @@ class Seacas(CMakePackage): version( "2023-11-27", sha256="fea1c0a6959d46af7478c9c16aac64e76c6dc358da38e2fe8793c15c1cffa8fc" ) - version( - "2023-10-24", - sha256="f93bf0327329c302ed3feb6adf2e3968f01ec325084a457b2c2dbbf6c4f751a2", - deprecated=True, - ) version( "2023-05-30", sha256="3dd982841854466820a3902163ad1cf1b3fbab65ed7542456d328f2d1a5373c1" ) @@ -103,76 +106,6 @@ class Seacas(CMakePackage): version( "2022-01-27", sha256="beff12583814dcaf75cf8f1a78bb183c1dcc8937bc18d5206672e3a692db05e0" ) - version( - "2021-10-11", - sha256="f8a6dac813c0937fed4a5377123aa61d47eb459ba87ddf368d02ebe10c2c3a0d", - deprecated=True, - ) - version( - "2021-09-30", - sha256="5d061e35e93eb81214da3b67ddda2829cf5efed38a566be6363a9866ba2f9ab3", - deprecated=True, - ) - version( - "2021-05-12", - sha256="92663767f0317018d6f6e422e8c687e49f6f7eb2b92e49e837eb7dc0ca0ac33d", - deprecated=True, - ) - version( - "2021-04-05", - sha256="76f66eec1fec7aba30092c94c7609495e6b90d9dcb6f35b3ee188304d02c6e04", - deprecated=True, - ) - version( - "2021-01-20", - sha256="7814e81981d03009b6816be3eb4ed3845fd02cc69e006ee008a2cbc85d508246", - deprecated=True, - ) - version( - "2021-01-06", - sha256="b233502a7dc3e5ab69466054cf358eb033e593b8679c6721bf630b03999bd7e5", - deprecated=True, - ) - version( - "2020-08-13", - sha256="e5eaf203eb2dbfb33c61ccde26deea459d058aaea79b0847e2f4bdb0cef1ddcb", - deprecated=True, - ) - version( - "2020-05-12", - sha256="7fc6915f60568b36e052ba07a77d691c99abe42eaba6ae8a6dc74bb33490ed60", - deprecated=True, - ) - version( - "2020-03-16", - sha256="2eb404f3dcb17c3e7eacf66978372830d40ef3722788207741fcd48417807af6", - deprecated=True, - ) - version( - "2020-01-16", - sha256="5ae84f61e410a4f3f19153737e0ac0493b144f20feb1bbfe2024f76613d8bff5", - deprecated=True, - ) - version( - "2019-12-18", - sha256="f82cfa276ebc5fe6054852383da16eba7a51c81e6640c73b5f01fc3109487c6f", - deprecated=True, - ) - version( - "2019-10-14", - sha256="ca4cf585cdbc15c25f302140fe1f61ee1a30d72921e032b9a854492b6c61fb91", - deprecated=True, - ) - version( - "2019-08-20", - sha256="a82c1910c2b37427616dc3716ca0b3c1c77410db6723aefb5bea9f47429666e5", - deprecated=True, - ) - version( - "2019-07-26", - sha256="651dac832b0cfee0f63527f563415c8a65b8e4d79242735c1e2aec606f6b2e17", - deprecated=True, - ) # ###################### Variants ########################## # Package options @@ -213,7 +146,18 @@ class Seacas(CMakePackage): default=False, description="Enable ADIOS2. See https://github.com/ornladios/ADIOS2", ) - variant("cgns", default=True, description="Enable CGNS.") + # enabling cgns fails builds on Windows, see seacas CI default configuration + # https://github.com/sandialabs/seacas/blob/master/.appveyor.yml#L71 + for plat in ["linux", "darwin", "freebsd"]: + with when(f"platform={plat}"): + variant("cgns", default=True, description="Enable CGNS.") + + variant( + "aws", + default=False, + when="@2025-10-14:", + description="Enable support for S3 compatible storage using AWS SDK's S3 module", + ) variant( "faodel", default=False, @@ -269,8 +213,12 @@ class Seacas(CMakePackage): depends_on("trilinos~exodus+mpi+pamgen", when="+mpi+pamgen") depends_on("trilinos~exodus~mpi+pamgen", when="~mpi+pamgen") # Always depends on netcdf-c - depends_on("netcdf-c@4.8.0:+mpi+parallel-netcdf", when="+mpi") + depends_on("netcdf-c@4.8.0:+mpi", when="+mpi") + depends_on("netcdf-c+parallel-netcdf", when="+mpi platform=linux") + depends_on("netcdf-c+parallel-netcdf", when="+mpi platform=darwin") + depends_on("netcdf-c+parallel-netcdf", when="+mpi platform=freebsd") depends_on("netcdf-c@4.8.0:~mpi", when="~mpi") + depends_on("netcdf-c@:4.9.2", when="@:2024-08-15") depends_on("hdf5+hl~mpi", when="~mpi") depends_on("hdf5+hl+mpi", when="+mpi") @@ -312,6 +260,9 @@ class Seacas(CMakePackage): with when("+metis"): depends_on("metis+int64+real64") depends_on("parmetis+int64", when="+mpi") + with when("+aws"): + depends_on("aws-sdk-cpp") + depends_on("cereal") # The Faodel TPL is only supported in seacas@2021-04-05: depends_on("faodel@1.2108.1:+mpi", when="+faodel +mpi") @@ -337,6 +288,12 @@ class Seacas(CMakePackage): # Based on install-tpl.sh script, cereal seems to only be used when faodel enabled depends_on("cereal", when="@2021-04-02: +faodel") + def flag_handler(self, name: str, flags: List[str]): + if name == "fflags" and self.spec.satisfies("@2022:2022-03 %fortran=gcc@10:"): + # Required for recent GCC compilers, flag exists since GCC 10 + flags.append("-fallow-argument-mismatch") + return (flags, None, None) + def setup_run_environment(self, env: EnvironmentModifications) -> None: env.prepend_path("PYTHONPATH", self.prefix.lib) @@ -357,11 +314,11 @@ def cmake_args(self): options.extend( [ from_variant(project_name_base + "_ENABLE_TESTS", "tests"), - define(project_name_base + "_ENABLE_CXX11", True), define(project_name_base + "_ENABLE_Kokkos", False), define(project_name_base + "_HIDE_DEPRECATED_CODE", False), # Seacas MSVC tests are not tested with Zoltan # which causes build errors, skip for now + define("ENABLE_ExoNull", True), define(project_name_base + "_ENABLE_Zoltan", not is_windows), from_variant("CMAKE_INSTALL_RPATH_USE_LINK_PATH", "shared"), from_variant("BUILD_SHARED_LIBS", "shared"), @@ -374,6 +331,11 @@ def cmake_args(self): define(project_name_base + "_ENABLE_SEACAS", True), ] ) + if spec.satisfies("@2025-08-28:"): + options.append(define(project_name_base + "_ENABLE_CXX17", True)) + else: + options.append(define(project_name_base + "_ENABLE_CXX11", True)) + if "~shared" in self.spec and not is_windows: options.append(self.define(f"{project_name_base}_EXTRA_LINK_FLAGS", "z;dl")) options.append(from_variant("TPL_ENABLE_MPI", "mpi")) @@ -514,6 +476,12 @@ def cmake_args(self): if "+cgns" in spec: options.append(define("CGNS_ROOT", spec["cgns"].prefix)) + options.append(from_variant("TPL_ENABLE_AWSSDK", "aws")) + if "+aws" in spec: + options.append(define("AWSSDK_ROOT", spec["aws-sdk-cpp"].prefix)) + options.append(define("TPL_ENABLE_Cereal", True)) + options.append(define("Cereal_INCLUDE_DIRS", spec["cereal"].prefix.include)) + options.append(from_variant("TPL_ENABLE_Faodel", "faodel")) for pkg in ("Faodel", "BOOST"): if pkg.lower() in spec: diff --git a/repos/spack_repo/builtin/packages/seissol/package.py b/repos/spack_repo/builtin/packages/seissol/package.py index 226e51ac1ee..cf7a66c7296 100644 --- a/repos/spack_repo/builtin/packages/seissol/package.py +++ b/repos/spack_repo/builtin/packages/seissol/package.py @@ -54,7 +54,7 @@ class Seissol(CMakePackage, CudaPackage, ROCmPackage): "convergence_order", default="4", description="polynomial degree plus one", - values=(str(v) for v in range(2, 9)), + values=tuple(str(v) for v in range(2, 9)), multi=False, ) variant( @@ -185,11 +185,11 @@ class Seissol(CMakePackage, CudaPackage, ROCmPackage): depends_on("mpi") with when("+cuda"): - for var in ["openmpi", "mpich", "mvapich", "mvapich2", "mvapich2-gdr"]: + for var in ["openmpi", "mpich", "mvapich-plus"]: depends_on(f"{var} +cuda", when=f"^[virtuals=mpi] {var}") with when("+rocm"): - for var in ["mpich", "mvapich2-gdr"]: + for var in ["openmpi@5:", "mpich", "mvapich-plus"]: depends_on(f"{var} +rocm", when=f"^[virtuals=mpi] {var}") # with cuda 12 and llvm 14:15, we have the issue: "error: no template named 'texture" diff --git a/repos/spack_repo/builtin/packages/selalib/package.py b/repos/spack_repo/builtin/packages/selalib/package.py index 670e0f12b75..674f59f9272 100644 --- a/repos/spack_repo/builtin/packages/selalib/package.py +++ b/repos/spack_repo/builtin/packages/selalib/package.py @@ -71,7 +71,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: @on_package_attributes(run_tests=True) def quick_serial_ctest(self): """quickly run a serial subset of tests for sanity check""" - ctest = which("ctest") + ctest = which("ctest", required=True) with working_dir(self.build_directory): ctest("--output-on-failure", "-R", "test_mud2") ctest("--output-on-failure", "-R", "sparse_grid_4d") diff --git a/repos/spack_repo/builtin/packages/sentencepiece/package.py b/repos/spack_repo/builtin/packages/sentencepiece/package.py index 17b2cd62b58..2a1e086cedb 100644 --- a/repos/spack_repo/builtin/packages/sentencepiece/package.py +++ b/repos/spack_repo/builtin/packages/sentencepiece/package.py @@ -20,10 +20,13 @@ class Sentencepiece(CMakePackage): license("Apache-2.0") + version("0.2.1", sha256="c1a59e9259c9653ad0ade653dadff074cd31f0a6ff2a11316f67bee4189a8f1b") version("0.1.91", sha256="acbc7ea12713cd2a8d64892f8d2033c7fd2bb4faecab39452496120ace9a4b1b") version("0.1.85", sha256="dd4956287a1b6af3cbdbbd499b7227a859a4e3f41c9882de5e6bdd929e219ae6") + depends_on("c", type="build") depends_on("cxx", type="build") # generated + depends_on("cmake@3.10:", when="@0.2.1:", type="build") depends_on("cmake@3.1:", type="build") depends_on("gperftools") # optional, 10-40% performance improvement diff --git a/repos/spack_repo/builtin/packages/sentieon_genomics/package.py b/repos/spack_repo/builtin/packages/sentieon_genomics/package.py index 0a7ba46b1b5..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,9 @@ 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") version("202308.02", sha256="adb553c72d5180f551aea77fb6626dea36f33f1968f3d0ab0bb00dc7af4f5b55") version("202308", sha256="13dc8d50577fe4767142c50f1a95772db95cd4b173c2b281cdcdd68a5af47cb0") diff --git a/repos/spack_repo/builtin/packages/sepp/package.py b/repos/spack_repo/builtin/packages/sepp/package.py index 5dc80ebc6d8..03d4d3d78d1 100644 --- a/repos/spack_repo/builtin/packages/sepp/package.py +++ b/repos/spack_repo/builtin/packages/sepp/package.py @@ -20,7 +20,7 @@ class Sepp(Package): version("4.5.1", sha256="51e052569ae89f586a1a94c804f09fe1b7910a3ffff7664e2005f18c7d3f717b") depends_on("python@3.6:", type=("build", "run")) - depends_on("py-setuptools", type="build") + depends_on("py-setuptools@:81", type="build") depends_on("py-dendropy@4:", type=("build", "run")) depends_on("java@1.8:", type="run") diff --git a/repos/spack_repo/builtin/packages/seq_gen/package.py b/repos/spack_repo/builtin/packages/seq_gen/package.py index 5b2bcbd2e58..48fdb34ec5e 100644 --- a/repos/spack_repo/builtin/packages/seq_gen/package.py +++ b/repos/spack_repo/builtin/packages/seq_gen/package.py @@ -22,7 +22,7 @@ class SeqGen(MakefilePackage): general purpose simulator that incorporates most of the commonly used (and computationally tractable) models of molecular sequence evolution.""" - homepage = "http://tree.bio.ed.ac.uk/software/Seq-Gen/" + homepage = "https://tree.bio.ed.ac.uk/software/Seq-Gen/" url = "https://github.com/rambaut/Seq-Gen/archive/refs/tags/1.3.4.tar.gz" version("1.3.4", sha256="092ec2255ce656a02b2c3012c32443c7d8e38c692f165fb155b304ca030cbb59") 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/serialbox/package.py b/repos/spack_repo/builtin/packages/serialbox/package.py index 5e6bb93d9fd..b1871e8fecf 100644 --- a/repos/spack_repo/builtin/packages/serialbox/package.py +++ b/repos/spack_repo/builtin/packages/serialbox/package.py @@ -39,7 +39,7 @@ class Serialbox(CMakePackage): variant( "std-filesystem", default=True, - description="use std::experimental::filesystem (no dependency on " "compiled boost libs)", + description="use std::experimental::filesystem (no dependency on compiled boost libs)", ) depends_on("c", type="build") # generated @@ -76,12 +76,12 @@ class Serialbox(CMakePackage): conflicts( "+ftg", when="~fortran", - msg="the FortranTestGenerator frontend requires the Fortran " "interface", + msg="the FortranTestGenerator frontend requires the Fortran interface", ) conflicts( "+ftg", when="@:2.2.999", - msg="the FortranTestGenerator frontend is supported only " "starting version 2.3.0", + msg="the FortranTestGenerator frontend is supported only starting version 2.3.0", ) conflicts("+sdb", when="~python", msg="the stencil debugger requires the Python interface") conflicts("+fortran", when="~c", msg="the Fortran interface requires the C interface") diff --git a/repos/spack_repo/builtin/packages/sfml/package.py b/repos/spack_repo/builtin/packages/sfml/package.py new file mode 100644 index 00000000000..608e3b747df --- /dev/null +++ b/repos/spack_repo/builtin/packages/sfml/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.cmake import CMakePackage + +from spack.package import * + + +class Sfml(CMakePackage): + """SFML is a simple, fast, cross-platform and object-oriented + multimedia API. It provides access to windowing, graphics, + audio and network. It is written in C++ and has bindings for + various languages such as C, .NET, Ruby, Python.""" + + homepage = "https://www.sfml-dev.org/" + url = "https://github.com/SFML/SFML/archive/refs/tags/3.1.0.tar.gz" + git = "https://github.com/SFML/SFML.git" + + maintainers("wdconinc") + + license("Zlib", checked_by="wdconinc") + + version("3.1.0", sha256="91209a112c2bd0bc6f4ce0d5f3e413cfb48b57c0de59f5507dc81f71b1ad7a5c") + version("2.6.2", sha256="15ff4d608a018f287c6a885db0a2da86ea389e516d2323629e4d4407a7ce047f") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("cmake@3.7.2:", type="build") + depends_on("cmake@3.24:", type="build", when="@3.0.0:") + depends_on("cmake@3.28:", type="build", when="@3.1.0:") + + variant("window", default=True, description="Build the window module", when="~graphics") + variant("graphics", default=True, description="Build the graphics module") + variant("audio", default=True, description="Build the audio module") + variant("network", default=True, description="Build the network module") + + conflicts("+window", msg="The window module requires UDev, which is not in spack") + conflicts("+graphics", msg="The graphics module requires UDev, which is not in spack") + conflicts( + "+audio", msg="The audio module requires OpenAL, Vorbis, FLAC, which are not in spack" + ) + + def cmake_args(self): + args = [ + self.define("SFML_USE_SYSTEM_DEPS", True), + self.define_from_variant("SFML_BUILD_WINDOW", "window"), + self.define_from_variant("SFML_BUILD_GRAPHICS", "graphics"), + self.define_from_variant("SFML_BUILD_AUDIO", "audio"), + self.define_from_variant("SFML_BUILD_NETWORK", "network"), + ] + return args diff --git a/repos/spack_repo/builtin/packages/shadowenv/package.py b/repos/spack_repo/builtin/packages/shadowenv/package.py new file mode 100644 index 00000000000..70fbd0885f7 --- /dev/null +++ b/repos/spack_repo/builtin/packages/shadowenv/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.cargo import CargoPackage + +from spack.package import * + + +class Shadowenv(CargoPackage): + """ + Shadowenv provides a way to perform a set of manipulations to the process + environment upon entering a directory in a shell. These manipulations are reversed + when leaving the directory, and there is some limited ability to make the + manipulations dynamic. + """ + + homepage = "https://shopify.github.io/shadowenv/" + url = "https://github.com/Shopify/shadowenv/archive/3.4.0.tar.gz" + + maintainers("ebagrenrut") + + license("MIT") + + version("3.4.0", sha256="86313a5022a8e897ceb52a51479fa7a921e44cd520cf04d111ba711684791e44") + + depends_on("c", type="build") + depends_on("rust@1.80:", type="build") diff --git a/repos/spack_repo/builtin/packages/shamrock/package.py b/repos/spack_repo/builtin/packages/shamrock/package.py index 59c8f5ebf68..b4018d8d10d 100644 --- a/repos/spack_repo/builtin/packages/shamrock/package.py +++ b/repos/spack_repo/builtin/packages/shamrock/package.py @@ -2,8 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import glob - from spack_repo.builtin.build_systems.cmake import CMakePackage, generator from spack.package import * @@ -13,7 +11,7 @@ class Shamrock(CMakePackage): """The Shamrock exascale framework for astrophysics""" homepage = "https://shamrock-code.github.io/" - url = "https://github.com/Shamrock-code/Shamrock/releases/download/v2025.05.0/shamrock-2025.05.0.tar" + url = "https://github.com/Shamrock-code/Shamrock/releases/download/v2025.10.0/shamrock-2025.10.0.tar" git = "https://github.com/Shamrock-code/Shamrock.git" maintainers("tdavidcl") @@ -23,12 +21,13 @@ class Shamrock(CMakePackage): version("main", branch="main", submodules=True) version("2025.05.0", sha256="59d5652467fd9453a65ae7b48e0c9b7d4162edc8df92e09d08dcc5275407a897") + version("2025.10.0", sha256="72683352d862d7b3d39568151a17ea78633bd4976a40eacb77098d3ef0ca3c55") depends_on("c", type="build") depends_on("cxx", type="build") variant("shared", default=True, description="Enables the build of shared libraries") - variant("testing", default=True, description="Enables the build of shared libraries") + variant("testing", default=True, description="Enables the build of tests") variant("pybindings", default=True, description="Install python bindings") generator("ninja") @@ -47,7 +46,6 @@ class Shamrock(CMakePackage): extends("python", when="+pybindings") def cmake_args(self): - spec = self.spec args = [ @@ -74,33 +72,13 @@ def cmake_args(self): args += [self.define("ACPP_PATH", self.spec["hipsycl"].prefix)] - return args - - @run_after("install") - def install_python_bindigs(self): - """Copy the .so files to the python site-packages directory""" - - spec = self.spec - libdir = spec.prefix.lib - if self.spec.satisfies("+pybindings"): - # move shamrock python bindings into expected place - site_packages = join_path(python_platlib, "shamrock") - mkdirp(site_packages) - - # Find all .so files in the build directory - so_files = glob.glob(join_path(libdir, "*.so")) - - # Install each .so file to the install directory - for _f in so_files: - install(_f, site_packages) - - # Python need a __init__.py file to import properly the .so - raw_string = "from .shamrock import *\n" - filename = "__init__.py" - filepath = join_path(site_packages, filename) - with open(filepath, "w") as f: - f.write(raw_string) + py_libdir = join_path( + self.prefix.lib, f"python{spec['python'].version.up_to(2)}", "site-packages" + ) + args.append(self.define("CMAKE_INSTALL_PYTHONDIR", py_libdir)) + + return args def test_install(self): """Test the install (executable, python bindings)""" diff --git a/repos/spack_repo/builtin/packages/shapelib/package.py b/repos/spack_repo/builtin/packages/shapelib/package.py index ca192dda6c9..f53676e8fe4 100644 --- a/repos/spack_repo/builtin/packages/shapelib/package.py +++ b/repos/spack_repo/builtin/packages/shapelib/package.py @@ -18,6 +18,7 @@ class Shapelib(CMakePackage): license("LGPL-2.0-only OR MIT") + version("1.6.3", sha256="3f9cb7526332144ccc83bb56ead6cd3a6765761a611481901a431458a1899dec") version("1.6.0", sha256="0bfd1eab9616ca3c420a5ad674b0d07c7c5018620d6ab6ae43917daa18ff0d1e") version("1.5.0", sha256="48de3a6a8691b0b111b909c0b908af4627635c75322b3a501c0c0885f3558cad") diff --git a/repos/spack_repo/builtin/packages/shellcheck/package.py b/repos/spack_repo/builtin/packages/shellcheck/package.py index f3caf2e4a72..d2b906426ec 100644 --- a/repos/spack_repo/builtin/packages/shellcheck/package.py +++ b/repos/spack_repo/builtin/packages/shellcheck/package.py @@ -14,7 +14,21 @@ "linux-aarch64": "179c579ef3481317d130adebede74a34dbbc2df961a70916dd4039ebf0735fae", "linux-armv6hf": "03deed9ded9dd66434ccf9649815bcde7d275d6c9f6dcf665b83391673512c75", "linux-x86_64": "700324c6dd0ebea0117591c6cc9d7350d9c7c5c287acbad7630fa17b1d4d9e2f", - } + }, + "0.10.0": { + "darwin-aarch64": "bbd2f14826328eee7679da7221f2bc3afb011f6a928b848c80c321f6046ddf81", + "linux-aarch64": "324a7e89de8fa2aed0d0c28f3dab59cf84c6d74264022c00c22af665ed1a09bb", + "linux-armv6hf": "1c89cb51e1412b580d7ba8aac240251ffb0b829788f83d2daa4a82da42d275e4", + "linux-riscv64": "be1f2028951783424c7a5dc744ac0bab8d5b181189e80f640cc56f481f1e371e", + "linux-x86_64": "6c881ab0698e4e6ea235245f22832860544f17ba386442fe7e9d629f8cbedf87", + }, + "0.11.0": { + "darwin-aarch64": "56affdd8de5527894dca6dc3d7e0a99a873b0f004d7aabc30ae407d3f48b0a79", + "linux-aarch64": "12b331c1d2db6b9eb13cfca64306b1b157a86eb69db83023e261eaa7e7c14588", + "linux-armv6hf": "8afc50b302d5feeac9381ea114d563f0150d061520042b254d6eb715797c8223", + "linux-riscv64": "693c987777e7b524dd311d9b8c704885a39c889c9804bb1ef1fd29b48567b0b3", + "linux-x86_64": "8c3be12b05d5c177a04c29e3c78ce89ac86f1595681cab149b65b97c4e227198", + }, } diff --git a/repos/spack_repo/builtin/packages/sherpa/package.py b/repos/spack_repo/builtin/packages/sherpa/package.py index 5119bfd1c7c..dbd23f461f1 100644 --- a/repos/spack_repo/builtin/packages/sherpa/package.py +++ b/repos/spack_repo/builtin/packages/sherpa/package.py @@ -25,6 +25,8 @@ class Sherpa(CMakePackage, AutotoolsPackage): license("GPL-3.0-only") + version("3.0.3", sha256="57484a09a99ff1b58a89153675230e69cab9698179291fecd67a7bd26309c4ea") + version("3.0.2", sha256="bae13a2f1dc736cffb104ca0c3eefee7405fc3400421c8cc3887065131e92599") version("3.0.1", sha256="ff5f43e79a9a10919391242307a771eca0c57b0462c11bfb99ee4a0fe8c48c58") version("3.0.0", sha256="e460d8798b323c4ef663293a2c918b1463e9641b35703a54d70d25c852c67d36") version("2.2.15", sha256="0300fd719bf6a089b7dc5441f720e669ac1cb030045d87034a4733bee98e7bbc") @@ -37,6 +39,8 @@ class Sherpa(CMakePackage, AutotoolsPackage): conditional("cmake", when="@3:"), conditional("autotools", when="@:2"), default="cmake" ) + conflicts("%gcc@15:", when="@:3.0.1") + _cxxstd_values = (conditional("11", "14", "17", when="@:"), conditional("20", when="@3:")) variant( "cxxstd", @@ -133,6 +137,10 @@ def patch(self): "ATOOLS/Org/Run_Parameter.C", ) + if self.spec.satisfies("@:2"): + # remove errant 'R' which trips up newer texinfo + filter_file(r"R@end", "@end", "Manual/Starting.texi", string=True) + if self.spec.satisfies("^recola@2:"): filter_file( r'#include "recola.h"', diff --git a/repos/spack_repo/builtin/packages/shortbred/package.py b/repos/spack_repo/builtin/packages/shortbred/package.py deleted file mode 100644 index 71bfccd007b..00000000000 --- a/repos/spack_repo/builtin/packages/shortbred/package.py +++ /dev/null @@ -1,37 +0,0 @@ -# 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 Shortbred(Package): - """ShortBRED is a system for profiling protein families of interest at - very high specificity in shotgun meta'omic sequencing data.""" - - homepage = "https://huttenhower.sph.harvard.edu/shortbred" - url = "https://bitbucket.org/biobakery/shortbred/get/0.9.4.tar.gz" - - version( - "0.9.4", - sha256="a85e5609db79696d3f2d478408fc6abfeea7628de9f533c4e1e0ea3622b397ba", - deprecated=True, - ) - - depends_on("blast-plus@2.2.28:") - depends_on("cdhit@4.6:") - depends_on("muscle@3.8.31:") - depends_on("python@2.7.9:") - depends_on("py-biopython") - depends_on("usearch@6.0.307:") - - def install(self, spec, prefix): - mkdirp(prefix.bin) - install("shortbred_identify.py", prefix.bin) - install("shortbred_quantify.py", prefix.bin) - install_tree("src", prefix.src) - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - env.prepend_path("PYTHONPATH", self.prefix) diff --git a/repos/spack_repo/builtin/packages/shred/package.py b/repos/spack_repo/builtin/packages/shred/package.py new file mode 100644 index 00000000000..7dbf2b01428 --- /dev/null +++ b/repos/spack_repo/builtin/packages/shred/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.makefile import MakefilePackage + +from spack.package import * + + +class Shred(MakefilePackage): + """Stochastic and Hybrid Representation Electronic structure by Density + functional theory (SHRED). SHRED is a plane-wave DFT code similar to + ABINIT, VASP and Quantum Espresso.""" + + url = "https://github.com/alwhite-LANL/SHRED/" + git = "git@github.com:alwhite-LANL/SHRED.git" + + maintainers("finkeljos", "alwhite") + + license("GPL-3.0-or-later") + + version("develop", branch="new_develop") + + depends_on("fortran", type="build") + depends_on("c", type="build") + + # Necessary package dependencies + depends_on("gmake", type="build") + + depends_on("blas") + depends_on("fftw+mpi+openmp") + depends_on("lapack") + # need libxc version to be less than 6 + depends_on("libxc@:5") + depends_on("mpi") + depends_on("scalapack") + + build_system("makefile", default="makefile") + + def setup_build_environment(self, env): + spec = self.spec + + # Set env variables which are then used by Makefile + env.set("MPI_DIR", spec["mpi"].prefix) + env.set("FFTW_DIR", spec["fftw"].prefix) + env.set("XC_DIR", spec["libxc"].prefix) + env.set("LA_DIR", spec["lapack"].prefix) + env.set("PLA_DIR", spec["scalapack"].prefix) + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install("shred", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/shtns/package.py b/repos/spack_repo/builtin/packages/shtns/package.py new file mode 100644 index 00000000000..6f9b0c34fca --- /dev/null +++ b/repos/spack_repo/builtin/packages/shtns/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.autotools import AutotoolsPackage + +from spack.package import * + + +class Shtns(AutotoolsPackage): + """SHTns is a high performance library for Spherical Harmonic + Transform written in C, aimed at numerical simulation (fluid + flows, mhd, ...) in spherical geometries.""" + + homepage = "https://nschaeff.bitbucket.io/shtns/index.html" + + maintainers("jagot") + + license("CECILL-2.1", checked_by="jagot") + + # The download page only provides the possibility to download the + # whole repository, not tagged releases. The commit + # f94e... corresponds to version 3.7.5, the latest version as of + # this writing (2026-03-04). + version( + "3.7.5", + sha256="b9a834e4ae0df5b9df070cb5df22d147614341fd99a788e41d97a29d2f5bf4f2", + url="https://bitbucket.org/nschaeff/shtns/get/f94ecca74a08.zip", + ) + depends_on("c", type="build") + + depends_on("fftw") diff --git a/repos/spack_repo/builtin/packages/siesta/package.py b/repos/spack_repo/builtin/packages/siesta/package.py index a39616d42c9..ce91548b3d4 100644 --- a/repos/spack_repo/builtin/packages/siesta/package.py +++ b/repos/spack_repo/builtin/packages/siesta/package.py @@ -100,7 +100,7 @@ def flag_handler(self, name, flags): return flags, None, None def edit(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) if "+cray" in spec: netcdff_prefix = os.environ.get("NETCDF_DIR", "") hdf5_prefix = os.environ.get("HDF5_DIR", "") @@ -233,7 +233,7 @@ def build(self, spec, prefix): with working_dir("Obj_trans"): make("transiesta", parallel=False) with working_dir("Util"): - sh = which("sh") + sh = which("sh", required=True) sh("build_all.sh") def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/silo/package.py b/repos/spack_repo/builtin/packages/silo/package.py index 755c814e7d3..85537e993c9 100644 --- a/repos/spack_repo/builtin/packages/silo/package.py +++ b/repos/spack_repo/builtin/packages/silo/package.py @@ -2,24 +2,35 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage +from spack_repo.builtin.build_systems import autotools, cmake from spack.package import * -class Silo(AutotoolsPackage): +class Silo(autotools.AutotoolsPackage, cmake.CMakePackage): """Silo is a library for reading and writing a wide variety of scientific - data to binary, disk files.""" + data to binary, disk or memory (in-situ) files.""" - homepage = "https://wci.llnl.gov/simulation/computer-codes/silo" + homepage = "https://silo.llnl.gov" git = "https://github.com/LLNL/Silo.git" - url = "https://wci.llnl.gov/sites/wci/files/2021-01/silo-4.10.2.tgz" - maintainers("patrickb314") + url = "https://github.com/LLNL/Silo/releases/tag/4.12.0" + maintainers("patrickb314", "markcmiller86") + + # Base license is BSD; fpzip and hzip variants change effective licensing. + # Versions of both hzip and fpzip built into silo are NOT BSD licensed. + # Newer versions of fpzip are BSD licensed but not version 1.0.2 in Silo. + license("BSD-3-Clause", when="license=bsdonly") version("main", branch="main") + version("4.12RC", branch="4.12RC") version( - "4.11.1", + "4.12.0", preferred=True, + sha256="bde1685e4547d5dd7416bd6215b41f837efef0e4934d938ba776957afbebdff0", + url="https://github.com/LLNL/Silo/releases/download/4.12.0/Silo-4.12.0.tar.xz", + ) + version( + "4.11.1", sha256="49eddc00304aa4a19074b099559edbdcaa3532c98df32f99aa62b9ec3ea7cee2", url="https://github.com/LLNL/Silo/releases/download/4.11.1/silo-4.11.1.tar.xz", ) @@ -41,47 +52,73 @@ class Silo(AutotoolsPackage): version( "4.10.2", sha256="3af87e5f0608a69849c00eb7c73b11f8422fa36903dd14610584506e7f68e638", - preferred=True, + url="https://sd.llnl.gov/sites/sd/files/2021-01/silo-4.10.2.tgz", ) version( "4.10.2-bsd", sha256="4b901dfc1eb4656e83419a6fde15a2f6c6a31df84edfad7f1dc296e01b20140e", - url="https://wci.llnl.gov/sites/wci/files/2021-01/silo-4.10.2-bsd.tgz", + url="https://sd.llnl.gov/sites/sd/files/2021-01/silo-4.10.2-bsd.tgz", + ) + version( + "4.9", + sha256="90f3d069963d859c142809cfcb034bc83eb951f61ac02ccb967fc8e8d0409854", + url="https://sd.llnl.gov/sites/sd/files/2021-01/silo-4.9.tgz", + ) + version( + "4.8", + sha256="c430c1d33fcb9bc136a99ad473d535d6763bd1357b704a915ba7b1081d58fb21", + url="https://sd.llnl.gov/sites/sd/files/2021-01/silo-4.8.tgz", ) - version("4.9", sha256="90f3d069963d859c142809cfcb034bc83eb951f61ac02ccb967fc8e8d0409854") - version("4.8", sha256="c430c1d33fcb9bc136a99ad473d535d6763bd1357b704a915ba7b1081d58fb21") variant("python", default=True, description="Enable Python support") variant("fortran", default=True, description="Enable Fortran support") variant("shared", default=True, description="Build shared libraries") - variant("silex", default=False, description="Builds Silex, a GUI for viewing Silo files") + variant( + "silex", + default=False, + description="Build Silex, a GUI alternative to text browser for viewing Silo files", + ) variant("pic", default=True, description="Produce position-independent code (for shared libs)") - variant("mpi", default=True, description="Compile with MPI Compatibility") + variant("mpi", default=False, when="@:4.11", description="(deprecated)") variant("hdf5", default=True, description="Support HDF5 for database I/O") - variant("hzip", default=True, description="Enable hzip support") - variant("fpzip", default=True, description="Enable fpzip support") + variant("zfp", default=True, description="Enable zfp compression features") + variant("hzip", default=False, description="Enable hzip compression features (!BSD)") + variant("fpzip", default=False, description="Enable fpzip compression features (!BSD)") + + # convenience multi-valued 'license mode' + variant( + "license", + values=("llnllegacy", "bsdonly"), + default="bsdonly", + when="@4.12.0:", + description="BSD-only licensed build (disables !BSD compression features)", + ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated - depends_on("python", type=("build", "link"), when="+python") + # The mkinc tool uses perl. Silo project could elim. this + # by relying upon mkinc generated files committed to repo depends_on("perl", type="build") - depends_on("m4", type="build", when="+shared") - depends_on("autoconf", type="build", when="+shared") - depends_on("autoconf-archive", type="build", when="+shared") - depends_on("automake", type="build", when="+shared") - depends_on("libtool", type="build", when="+shared") - depends_on("mpi", when="+mpi") depends_on("hdf5@1.8:1.10", when="@:4.10+hdf5") depends_on("hdf5@1.12:", when="@4.11:+hdf5") - depends_on("qt+gui~framework@4.8:4.9", when="+silex") + depends_on("qt +gui~framework@4.8:4.9", when="+silex") + depends_on("qt-base@6: +gui +widgets", when="@4.12.0: +silex") + depends_on("qt@5.0:5", when="@:4.11.1 +silex") depends_on("libx11", when="+silex") # Xmu dependency is required on Ubuntu 18-20 depends_on("libxmu", when="+silex") depends_on("readline") depends_on("zlib-api") + with when("build_system=autotools"): + depends_on("m4", type="build", when="+shared") + depends_on("autoconf", type="build", when="+shared") + depends_on("autoconf-archive", type="build", when="+shared") + depends_on("automake", type="build", when="+shared") + depends_on("libtool", type="build", when="+shared") + patch("remove-mpiposix.patch", when="@4.8:4.10.2") # hdf5 1.10 added an additional field to the H5FD_class_t struct @@ -102,9 +139,18 @@ class Silo(AutotoolsPackage): patch("hdf5-113.patch", when="@4.11:4.11-bsd +hdf5 ^hdf5@1.13:") conflicts("^hdf5@1.13:", when="@:4.10.2-bsd") + # compression features available only w/ HDF5 driver + conflicts("+hzip", when="~hdf5", msg="+hzip requires +hdf5") + conflicts("+fpzip", when="~hdf5", msg="+fpzip requires +hdf5") + conflicts("+zfp", when="~hdf5", msg="zfp requires +hdf5") + # hzip and fpzip are not available in the BSD releases - conflicts("+hzip", when="@4.10.2-bsd,4.11-bsd") - conflicts("+fpzip", when="@4.10.2-bsd,4.11-bsd") + conflicts("+hzip", when="@4.10.2-bsd,4.11-bsd,4.11.1-bsd") + conflicts("+fpzip", when="@4.10.2-bsd,4.11-bsd,4.11.1-bsd") + + # If bsdonly enbabled, hzip and fpzip cannot be enabled + conflicts("license=bsdonly", when="+hzip", msg="BSD-only build cannot use +hzip") + conflicts("license=bsdonly", when="+fpzip", msg="BSD-only build cannot use +fpzip") # zfp include missing patch("zfp_error.patch", when="@4.11:4.11-bsd +hdf5") @@ -112,6 +158,24 @@ class Silo(AutotoolsPackage): # use /usr/bin/env perl for portability patch("mkinc-usr-bin-env-perl.patch", when="@:4.11-bsd") + # CMake was introduced in version 4.12.0. Autotools is still + # available but deprecated in 4.12.0 and is fully removed after + # 4.12.0. So, 4.12.0 is only version where both are available. + build_system( + conditional("cmake", when="@4.12.0:"), + conditional("autotools", when="@:4.12.0"), + default="cmake", + ) + + # Fix issue with delimiter char in constant nameschemes + patch( + "https://github.com/llnl/Silo/commit/43a52d788a3c15bee3b9391906e8ed276c5a456c.patch?full_index=1", + sha256="4626644778c634518ee9d08815bfe757bf54e77621865c0b4effea0c122ca69b", + when="@4.12.0", + ) + + +class AutotoolsBuilder(autotools.AutotoolsBuilder): def flag_handler(self, name, flags): spec = self.spec if name == "ldflags": @@ -161,19 +225,18 @@ def flag_handler(self, name, flags): flags.append("-Wno-implicit-function-declaration") return (flags, None, None) - @when("%clang@9:") + @when("@:4.11.1 %clang@9:") def patch(self): self.clang_9_patch() - @when("%apple-clang@11.0.3:") + @when("@:4.11.1 %apple-clang@11.0.3:") def patch(self): self.clang_9_patch() def clang_9_patch(self): # Clang 9 and later include macro definitions in that conflict - # with typedefs DOMAIN and RANGE used in Silo plugins. - # It looks like the upstream fpzip repo has been fixed, but that change - # hasn't yet made it into silo. + # with typedefs DOMAIN and RANGE used in Silo compression libraries. + # This change didn't make it into Silo until version 4.12.0. # https://github.com/LLNL/fpzip/blob/master/src/pcmap.h if str(self.spec.version).endswith("-bsd"): @@ -202,7 +265,11 @@ def repl(match): def force_autoreconf(self): # Update autoconf's tests whether libtool supports shared libraries. # (Otherwise, shared libraries are always disabled on Darwin.) - if self.spec.satisfies("@4.11-bsd") or self.spec.satisfies("@4.10.2-bsd"): + if ( + self.spec.satisfies("@4.11.1-bsd") + or self.spec.satisfies("@4.11-bsd") + or self.spec.satisfies("@4.10.2-bsd") + ): return False else: return self.spec.satisfies("+shared") @@ -217,6 +284,7 @@ def configure_args(self): config_args.extend(self.enable_or_disable("shared")) config_args.extend(self.enable_or_disable("hzip")) config_args.extend(self.enable_or_disable("fpzip")) + config_args.extend(self.enable_or_disable("zfp")) # Do not specify the prefix of zlib if it is in a system directory # (see https://github.com/spack/spack/pull/21900). @@ -242,14 +310,34 @@ def configure_args(self): ] ) - if "+mpi" in spec: - config_args.append("CC=%s" % spec["mpi"].mpicc) - config_args.append("CXX=%s" % spec["mpi"].mpicxx) - config_args.append("FC=%s" % spec["mpi"].mpifc) - return config_args @property def libs(self): shared = "+shared" in self.spec return find_libraries("libsilo*", root=self.prefix, shared=shared, recursive=True) + + +class CMakeBuilder(cmake.CMakeBuilder): + def cmake_args(self): + args = [ + self.define("SILO_ENABLE_SILOCK", True), + self.define("SILO_ENABLE_BROWSER", True), + self.define("SILO_ENABLE_INSTALL_LITE_HEADERS", True), + self.define_from_variant("SILO_ENABLE_SHARED", "shared"), + self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), + self.define_from_variant("SILO_ENABLE_SILEX", "silex"), + self.define_from_variant("SILO_ENABLE_HDF5", "hdf5"), + self.define_from_variant("SILO_ENABLE_FORTRAN", "fortran"), + self.define_from_variant("SILO_ENABLE_PYTHON_MODULE", "python"), + self.define_from_variant("SILO_ENABLE_HZIP", "hzip"), + self.define_from_variant("SILO_ENABLE_FPZIP", "fpzip"), + self.define_from_variant("SILO_ENABLE_ZFP", "zfp"), + ] + + if self.spec.satisfies("license=bsdonly"): + args.append(self.define("SILO_BUILD_FOR_BSD_LICENSE", True)) + else: + args.append(self.define("SILO_BUILD_FOR_BSD_LICENSE", False)) + + return args diff --git a/repos/spack_repo/builtin/packages/simde/package.py b/repos/spack_repo/builtin/packages/simde/package.py index 11b68c886ab..d212af77d27 100644 --- a/repos/spack_repo/builtin/packages/simde/package.py +++ b/repos/spack_repo/builtin/packages/simde/package.py @@ -21,11 +21,18 @@ class Simde(MesonPackage): license("MIT") + version("0.8.2", sha256="ed2a3268658f2f2a9b5367628a85ccd4cf9516460ed8604eed369653d49b25fb") version("0.7.6", sha256="c63e6c61392e324728da1c7e5de308cb31410908993a769594f5e21ff8de962b") version("0.7.2", sha256="366d5e9a342c30f1e40d1234656fb49af5ee35590aaf53b3c79b2afb906ed4c8") version("0.6.0", sha256="25a8b8c69c17ddc2f6209e86caa6b12d4ed91c0f841617efc56e5675eea84915") - depends_on("c", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") patch("sve-gcc.patch", when="@0.6.0 %gcc") + patch( + "https://github.com/simd-everywhere/simde/commit/ef361ba5aba71e501f7c6db98a45c9b87d49f857.patch?full_index=1", + sha256="b6c435dc335b22065334e9e49840a6f85dc7a5de1ff3e12096d0ae3bd14a3b09", + when="@0.8.2", + ) conflicts("%gcc@8", when="target=a64fx", msg="Internal compiler error with gcc8 and a64fx") diff --git a/repos/spack_repo/builtin/packages/simgrid/package.py b/repos/spack_repo/builtin/packages/simgrid/package.py index decc66f2647..19e73a3e2e2 100644 --- a/repos/spack_repo/builtin/packages/simgrid/package.py +++ b/repos/spack_repo/builtin/packages/simgrid/package.py @@ -22,6 +22,7 @@ class Simgrid(CMakePackage): license("LGPL-2.1-or-later") + version("4.1", sha256="e16750bd13f5d3c0fb2370d79ba8eee124ee47f9e48c113bd23af9d9782d198b") version("4.0", sha256="c9f07122d43f61f1f0a21be2e42ef2cd6290abbf9b697926430f44ca2786bdea") version("3.36", sha256="cfdf6b98270c59be5c112457793c540bdd6a10deece91cbdb4793fbda190b95d") version("3.35", sha256="b4570d3de18d319cbd2e16c5a669f90760307673c0cc9940d4d11cfc537e69a8") @@ -64,62 +65,6 @@ class Simgrid(CMakePackage): url="https://github.com/simgrid/simgrid/releases/download/v3.20/SimGrid-3.20.tar.gz", ) - # gforge.inria.fr end of life https://gforge.inria.fr/forum/forum.php?forum_id=11543 - version( - "3.19", - sha256="64a3b82fdf0a65bb8b7c8e9feb01694360edaf38070097bf28aa181eccb86ea7", - deprecated=True, - url="https://gforge.inria.fr/frs/download.php/file/37452/SimGrid-3.19.tar.gz", - ) - version( - "3.18", - sha256="dc8f6223d89326b6a21c99eabc90598fa153d6b0818a63ff5c3ec8726e2257b2", - deprecated=True, - url="https://gforge.inria.fr/frs/download.php/file/37294/SimGrid-3.18.tar.gz", - ) - version( - "3.17", - sha256="f5e44f41983e83f65261598ab0de1909d3a8a3feb77f28e37d38f04631dbb908", - deprecated=True, - url="https://gforge.inria.fr/frs/download.php/file/37148/SimGrid-3.17.tar.gz", - ) - version( - "3.16", - sha256="51782534fec87eed9da345319ead699b13d7dad4be7ac89984a0446cb385d3fa", - deprecated=True, - url="https://gforge.inria.fr/frs/download.php/file/36900/SimGrid-3.16.tar.gz", - ) - version( - "3.15", - sha256="d1e411cdbfa953c018411b842727339ede6b82efcd5d3f6adc13a24f182fa9e8", - deprecated=True, - url="https://gforge.inria.fr/frs/download.php/file/36621/SimGrid-3.15.tar.gz", - ) - version( - "3.14.159", - sha256="2d93db245c6ec8039ffe332a77531b836ad093d57f18ec3f7920fe98e3719f48", - deprecated=True, - url="https://gforge.inria.fr/frs/download.php/file/36384/SimGrid-3.14.159.tar.gz", - ) - version( - "3.13", - sha256="7bcedd19492f9a32cc431840ad2688d0d6e4121982d6d26e0174b5c92b086121", - deprecated=True, - url="https://gforge.inria.fr/frs/download.php/file/35817/SimGrid-3.13.tar.gz", - ) - version( - "3.12", - sha256="d397ee0273395dc687fbcd2601515e7142559801a3db387454d77e0e18cd7878", - deprecated=True, - url="https://gforge.inria.fr/frs/download.php/file/35215/SimGrid-3.12.tar.gz", - ) - version( - "3.11", - sha256="6efb006e028e37f74a34fc37d585a8cb296720020cabad361d65662533f1600b", - deprecated=True, - url="https://gforge.inria.fr/frs/download.php/file/33683/SimGrid-3.11.tar.gz", - ) - version("develop", branch="master") variant("doc", default=False, description="Build documentation") @@ -127,10 +72,12 @@ class Simgrid(CMakePackage): variant("examples", default=False, description="Install examples") variant("mc", default=False, description="Model checker") variant("msg", default=False, description="Enables the old MSG interface") + variant("python", default=False, description="Enables the Python bindings") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated + extends("python", when="+python") # generated # does not build correctly with some old compilers -> rely on packages depends_on("boost@:1.69.0", when="@:3.21") @@ -145,7 +92,14 @@ class Simgrid(CMakePackage): conflicts("+msg", when="@3.34:", msg="MSG was removed from SimGrid v3.33.") - def setup_dependent_package(self, module, dep_spec): + # fix compilation with GCC 14 for v3.34 + patch( + "https://github.com/simgrid/simgrid/commit/e4ecb51dcdf597fb02340d7855dafd0da9bd9018.patch?full_index=1", + sha256="80cbe0eed635ff1864f0c2945763c8561b86c08c0c2b60d2ee5a57e1659ccc3d", + when="@3.34", + ) + + def setup_dependent_package(self, module, dependent_spec): if self.spec.satisfies("+smpi"): self.spec.smpicc = join_path(self.prefix.bin, "smpicc") self.spec.smpicxx = join_path(self.prefix.bin, "smpicxx") @@ -154,7 +108,7 @@ def setup_dependent_package(self, module, dep_spec): def cmake_args(self): spec = self.spec - args = [] + args = [self.define_from_variant("enable_python", "python")] if not spec.satisfies("+doc"): args.append("-Denable_documentation=OFF") diff --git a/repos/spack_repo/builtin/packages/simple_dftd3/package.py b/repos/spack_repo/builtin/packages/simple_dftd3/package.py index a3ebbea8386..07f345c9599 100644 --- a/repos/spack_repo/builtin/packages/simple_dftd3/package.py +++ b/repos/spack_repo/builtin/packages/simple_dftd3/package.py @@ -2,12 +2,14 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems import cmake, meson +from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.meson import MesonPackage from spack.package import * -class SimpleDftd3(MesonPackage): +class SimpleDftd3(MesonPackage, CMakePackage): """ Simple reimplementation of the DFT-D3 dispersion correction """ @@ -20,7 +22,13 @@ class SimpleDftd3(MesonPackage): license("LGPL-3.0-or-later") + build_system("cmake", "meson", default="meson") + version("main", branch="main") + version("1.4.0", sha256="c548629115c3d5f180d06a70bc29dcf42e4018fbc9e4ba7c99abc1cdbfda7c1e") + version("1.3.2", sha256="bbf6aaa23332a7217a6dfc5c3ca8dc74f949c4cb6e4dccbadf32fa21fe8bb0d7") + version("1.3.1", sha256="1a49cf2140e1d2e6f954a711b02b7b78e31595480ffa2393d9fa34ab9ea1cfef") + version("1.3.0", sha256="2892f6c766c9129e6a734264dc9e827491ec398d59634cb905286ea3eaa17b55") version("1.2.1", sha256="3a12c04c490badc63054aca18ea7670d416fcc2152cfe9b8af220da57c39f942") version("1.2.0", sha256="20adc61ed606e71227a78308a9ddca34d822d46117e6311ed51a00df16b2eabc") version("1.1.1", sha256="fde5e1bdac41c38692bfdb6abcad66fb9ccfe6e990a8d4cf54f44e7188d49b5a") @@ -35,18 +43,28 @@ class SimpleDftd3(MesonPackage): depends_on("c", type="build") # generated depends_on("fortran", type="build") # generated - - depends_on("mctc-lib") - depends_on("meson@0.57.1:", type="build") # mesonbuild/meson#8377 - depends_on("pkgconfig", type="build") - depends_on("toml-f") + depends_on("meson@0.57.1:", type="build", when="build_system=meson") # mesonbuild/meson#8377 depends_on("py-cffi", when="+python") depends_on("python@3.6:", when="+python") + depends_on("pkgconfig", type="build") + depends_on("blas") + + for build_system in ["cmake", "meson"]: + depends_on(f"mctc-lib build_system={build_system}", when=f"build_system={build_system}") + depends_on(f"toml-f build_system={build_system}", when=f"build_system={build_system}") + depends_on(f"mstore build_system={build_system}", when=f"build_system={build_system}") extends("python", when="+python") + +class MesonBuilder(meson.MesonBuilder): def meson_args(self): return [ "-Dopenmp={0}".format(str("+openmp" in self.spec).lower()), "-Dpython={0}".format(str("+python" in self.spec).lower()), ] + + +class CMakeBuilder(cmake.CMakeBuilder): + def cmake_args(self): + return [self.define_from_variant("WITH_OpenMP", "openmp")] diff --git a/repos/spack_repo/builtin/packages/simsipm/package.py b/repos/spack_repo/builtin/packages/simsipm/package.py index 714d3e399ce..e9ebab9bd73 100644 --- a/repos/spack_repo/builtin/packages/simsipm/package.py +++ b/repos/spack_repo/builtin/packages/simsipm/package.py @@ -43,6 +43,17 @@ class Simsipm(CMakePackage): depends_on("python@3.6:", when="+python", type=("build", "run")) depends_on("py-pybind11", when="+python", type=("build", "link")) + conflicts( + "arch=aarch64", + msg="SimSiPM < 2.1.0 uses x86 internals and does not support aarch64", + when="@:2.0", + ) + patch( + "https://github.com/EdoPro98/SimSiPM/commit/b08cc27151d70298b43ca7e216add9e46c056b04.patch?full_index=1", + sha256="354208cd110976a948e4770d7ae086cff367cef74534d07c22524f107ffbb7fd", + when="@2.1.0", + ) + def cmake_args(self): args = [ self.define("CMAKE_CXX_STANDARD", self.spec.variants["cxxstd"].value), diff --git a/repos/spack_repo/builtin/packages/sina/package.py b/repos/spack_repo/builtin/packages/sina/package.py index 6759305956c..7f0ed6f8d08 100644 --- a/repos/spack_repo/builtin/packages/sina/package.py +++ b/repos/spack_repo/builtin/packages/sina/package.py @@ -21,6 +21,7 @@ class Sina(CachedCMakePackage): maintainers("estebanpauli", "HaluskaR", "murray55") + version("1.14.0", sha256="a9154c02de4f32759af4d7225df962820432aeba3abd683ddaed02de2e2534b2") version("1.13.0", sha256="4087fc63ea054fd5d6cfcd2223d33edcb910df1fad5936301591e1a9aa4d6bac") version("1.11.0", sha256="a080f6583101696a6354940f00646ef892e1b2f8fc3f1b1907ba1c3ade6d4b47") version("1.10.0", sha256="b34379ce8cc5eca5a0f16893053fac75be14c2109d1beed4c6d48e11f9b281c7") @@ -36,6 +37,7 @@ class Sina(CachedCMakePackage): depends_on("adiak", when="+adiak") depends_on("doxygen", type="build", when="+docs") depends_on("conduit") + depends_on("blt", type="build", when="@1.14.0:") def cmake_args(self): return [ @@ -56,6 +58,10 @@ def initconfig_package_entries(self): adiak_dir = self.spec["adiak"].prefix entries.append(cmake_cache_path("adiak_DIR", "%s/lib/cmake/adiak/" % adiak_dir)) + use_blt = self.spec.satisfies("^blt") + if use_blt: + entries.append(cmake_cache_path("BLT_SOURCE_DIR", self.spec["blt"].prefix)) + entries.append("#" + 78 * "-") entries.append("# Devtools") entries.append("#" + 78 * "-") diff --git a/repos/spack_repo/builtin/packages/singular_factory/package.py b/repos/spack_repo/builtin/packages/singular_factory/package.py new file mode 100644 index 00000000000..a2f928033af --- /dev/null +++ b/repos/spack_repo/builtin/packages/singular_factory/package.py @@ -0,0 +1,44 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class SingularFactory(AutotoolsPackage): + """Factory is a C++ library for sparse multivariate polynomials over a + variety of coefficient domains (integers, rationals, finite fields, and + algebraic extensions). It implements efficient recursive representations + and algorithms for GCDs, resultants, Chinese remaindering, and (absolute) + factorization of multivariate polynomials. The library exposes a convenient + interface via the CanonicalForm class that uses operator overloading to + make polynomial operations feel like built-in types. Factory was originally + developed by R. Stobbe and J. Schmidt and is currently maintained as part + of the Singular project.""" + + homepage = "https://www.singular.uni-kl.de/" + url = "https://www.singular.uni-kl.de/ftp/pub/Math/Singular/Factory/factory-4.4.1.tar.gz" + + maintainers("d-torrance") + + license("GPL-2.0-or-later", checked_by="d-torrance") + + version("4.4.1", sha256="ba6a8a215448ebc0a0872a284cc9563c05a66d01944ef5fcfabfa5df672a68c0") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("flint") + depends_on("gmp") + depends_on("ntl+shared") + + # fix for building w/ flint >= 3.3.0 (backwards compatible w/ older flint) + # https://github.com/Singular/Singular/pull/1278 + patch( + "https://github.com/Singular/Singular/commit/05f5116e13c8a4f5f820c78c35944dd6d197d442.patch?full_index=1", + sha256="20d4472a394fbb6559fdf07113b6a4693aa225e8ac484df72c3badbcd405c318", + level=2, + when="@:4.4.1", + ) diff --git a/repos/spack_repo/builtin/packages/singularity/package.py b/repos/spack_repo/builtin/packages/singularity/package.py deleted file mode 100644 index 191b3ba221d..00000000000 --- a/repos/spack_repo/builtin/packages/singularity/package.py +++ /dev/null @@ -1,137 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.packages.singularityce.package import SingularityBase - -from spack.package import * - - -class Singularity(SingularityBase): - """Singularity is a container technology focused on building portable - encapsulated environments to support "Mobility of Compute" For older - versions of Singularity (pre 3.0) you should use singularity-legacy, - which has a different install base (Autotools). - - Needs post-install chmod/chown steps to enable full functionality. - See package definition or `spack-build-out.txt` build log for details, - e.g. - - tail -15 $(spack location -i singularity)/.spack/spack-build-out.txt - """ - - homepage = "https://singularity.hpcng.org/" - git = "https://github.com/hpcng/singularity.git" - url = "https://github.com/hpcng/singularity/releases/download/v3.8.5/singularity-3.8.5.tar.gz" - - license("BSD-3-Clause AND BSD-3-Clause-LBNL") - - version( - "3.8.7", - sha256="3329f2e583f84a8343cb2c0380a1d6cbceafae7d1e633b5cbcadf7143eac859b", - deprecated=True, - ) - version( - "3.8.6", - sha256="bb5a3b7670ac9c7a4b3ce5b2c9f3d6b5be60e21b08d338c9dfdabb7b2a99f528", - deprecated=True, - ) - version( - "3.8.5", - sha256="7fff78b5c07b5d4d08269bd267ac5e994390f933321e54efd6b7c86683153ce4", - deprecated=True, - ) - version( - "3.8.3", - sha256="2e22eb9ee1b73fdd51b8783149f0e4d83c0d2d8a0c1edf6034157d50eeefb835", - deprecated=True, - ) - version( - "3.8.0", - sha256="e9608b0e0a8c805218bbe795e9176484837b2f7fcb95e5469b853b3809a2412e", - deprecated=True, - ) - version( - "3.7.4", - sha256="c266369a8bf2747f44e0759858c3fc3b2325b975a8818b2668f0b97b124d0164", - deprecated=True, - ) - version( - "3.7.3", - sha256="6667eb8875d2b66d73504f40c956b42b1351744f488d164204376215d885da5c", - deprecated=True, - ) - version( - "3.7.2", - sha256="36916222e26fb934404f0766e0ff368edac36d7fc31ca571f5f609466609066b", - deprecated=True, - ) - version( - "3.7.1", - sha256="82d2c65063560195ec34551931be3c325b95e8e2009e92755fd7daad346e083c", - deprecated=True, - ) - version( - "3.7.0", - sha256="fb96aaf5f462a56a4a5bd2951287bcbbefe8cf543e228e4e955428f386a8d478", - deprecated=True, - ) - version( - "3.6.4", - sha256="71233a81d6bb4d686d8dc636b3e3e962a372f54001921c89a12b062cefd9e79f", - deprecated=True, - ) - version( - "3.6.3", - sha256="b1a985757a9907d8db0f102fc170a25387e715f7ff31957be964bf47914ea2fd", - deprecated=True, - ) - version( - "3.6.2", - sha256="dfd7ec7376ca0321c47787388fb3e781034edf99068f66efc36109e516024d9b", - deprecated=True, - ) - version( - "3.6.1", - sha256="6cac56106ee7f209150aaee9f8788d03b58796af1b767245d343f0b8a691121c", - deprecated=True, - ) - version( - "3.5.3", - sha256="0c76f1e3808bf4c10e92b17150314b2b816be79f8101be448a6e9d7a96c9e486", - deprecated=True, - ) - version( - "3.5.2", - sha256="f9c21e289377a4c40ed7a78a0c95e1ff416dec202ed49a6c616dd2c37700eab8", - deprecated=True, - ) - version( - "3.4.1", - sha256="638fd7cc5ab2a20e779b8768f73baf21909148339d6c4edf6ff61349c53a70c2", - deprecated=True, - ) - version( - "3.4.0", - sha256="eafb27f1ffbed427922ebe2b5b95d1c9c09bfeb897518867444fe230e3e35e41", - deprecated=True, - ) - version( - "3.3.0", - sha256="070530a472e7e78492f1f142c8d4b77c64de4626c4973b0589f0d18e1fcf5b4f", - deprecated=True, - ) - version( - "3.2.1", - sha256="d4388fb5f7e0083f0c344354c9ad3b5b823e2f3f27980e56efa7785140c9b616", - deprecated=True, - ) - version( - "3.1.1", - sha256="7f0df46458d8894ba0c2071b0848895304ae6b1137d3d4630f1600ed8eddf1a4", - deprecated=True, - ) - - depends_on("c", type="build") # generated - - patch("singularity_v3.4.0_remove_root_check.patch", level=0, when="@3.4.0:3.4.1") diff --git a/repos/spack_repo/builtin/packages/singularity/singularity_v3.4.0_remove_root_check.patch b/repos/spack_repo/builtin/packages/singularity/singularity_v3.4.0_remove_root_check.patch deleted file mode 100644 index ee91b729855..00000000000 --- a/repos/spack_repo/builtin/packages/singularity/singularity_v3.4.0_remove_root_check.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- mlocal/frags/build_runtime_suid.mk 2019-08-30 20:43:13.000000000 -0700 -+++ mlocal/frags/build_runtime_suid.mk 2019-09-10 12:21:09.120567773 -0700 -@@ -11,10 +11,10 @@ - -o $@ $(SOURCEDIR)/cmd/starter/main_linux.go - - $(starter_suid_INSTALL): $(starter_suid) -- @if [ `id -u` -ne 0 -a -z "${RPM_BUILD_ROOT}" ] ; then \ -- echo "SUID binary requires to execute make install as root, use sudo make install to finish installation"; \ -- exit 1 ; \ -- fi -+# @if [ `id -u` -ne 0 -a -z "${RPM_BUILD_ROOT}" ] ; then \ -+# echo "SUID binary requires to execute make install as root, use sudo make install to finish installation"; \ -+# exit 1 ; \ -+# fi - @echo " INSTALL SUID" $@ - $(V)install -d $(@D) - $(V)install -m 4755 $(starter_suid) $(starter_suid_INSTALL) diff --git a/repos/spack_repo/builtin/packages/singularity/spack_perms_fix.sh.j2 b/repos/spack_repo/builtin/packages/singularity/spack_perms_fix.sh.j2 deleted file mode 100644 index 32baa212032..00000000000 --- a/repos/spack_repo/builtin/packages/singularity/spack_perms_fix.sh.j2 +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -eu - -{% for cf in chown_files %} -chown root {{ prefix }}/{{ cf }} -{% endfor %} - -{% for sf in setuid_files %} -chmod 4555 {{ prefix }}/{{ sf }} -{% endfor %} - -# end diff --git a/repos/spack_repo/builtin/packages/singularity_eos/package.py b/repos/spack_repo/builtin/packages/singularity_eos/package.py index 7e14c5d50bf..6441df9c146 100644 --- a/repos/spack_repo/builtin/packages/singularity_eos/package.py +++ b/repos/spack_repo/builtin/packages/singularity_eos/package.py @@ -32,26 +32,19 @@ class SingularityEos(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") version("main", branch="main") + version("1.11.1", sha256="2bbec8d1ba98fb3038ecdda0c066b513a5b3dd4cab9b0de4cf6b5a0b4d5ee41f") + version("1.11.0", sha256="8bee9a40a4c2337d4df2b811a7071f4f5b0e9a50714a30a02b2712db1038bdf7") + version("1.10.0", sha256="f2b5986d2e7f11b61c4cc1ac3b264adac39e16047f95fac29c60a19a2853f35b") version("1.9.2", sha256="4a58782020ad7bff3ea1c0cf55838a3692205770dbe4be39a3df25ba6fae302d") version("1.9.1", sha256="148889e1b2d5bdc3d59c5fd6a6b5da25bb4f4f0f4343c57b3ccaf96691c93aff") version("1.9.0", sha256="460b36a8311df430e6d4cccf3e72a6b3afda7db8d092b4a0a4259c4363c4dbde") version("1.8.0", sha256="1f1ec496f714aa23cc7003c88a85bd10d0e53e37659ba7310541248e48a66558") version("1.7.0", sha256="ce0825db2e9d079503e98cecf1c565352be696109042b3a0941762b35f36dc49") - version( - "1.6.2", - sha256="9c85fca679139a40cc9c72fcaeeca78a407cc1ca184734785236042de364b942", - deprecated=True, - ) - version( - "1.6.1", - sha256="c6d92dfecf9689ffe2df615791c039f7e527e9f47799a862e26fa4e3420fe5d7", - deprecated=True, - ) # build with kokkos, kokkos-kernels for offloading support variant("kokkos", default=False, description="Enable kokkos") variant( - "kokkos-kernels", default=False, description="Enable kokkos-kernals for linear algebra" + "kokkos-kernels", default=False, description="Enable kokkos-kernels for linear algebra" ) # for compatibility with downstream projects @@ -109,16 +102,24 @@ class SingularityEos(CMakePackage, CudaPackage, ROCmPackage): depends_on("catch2@3.0.1:", when="@1.9.0:", type="test") depends_on("py-numpy", type="test") - # linear algebra when not using GPUs - depends_on("eigen@3.3.8:", when="~kokkos-kernels") - requires("+kokkos-kernels", when="+cuda") - requires("+kokkos-kernels", when="+rocm") + # Require kokkos for device/offloading support + requires("+kokkos", when="+cuda") + requires("+kokkos", when="+rocm") + + # linear algebra when using closure models. Eigen without kokkos + depends_on("eigen@3.3.8:", when="~kokkos-kernels+closure") + requires("+kokkos-kernels", when="+kokkos+closure") + + # test_pte fails on AMD MI300 for versions of llvm < 19 + # rocm 6.4 is the first version of rocm that depends on llvm >= 19 + depends_on("hip@6.4:", when="+rocm") depends_on("eospac", when="+eospac") depends_on("ports-of-call@1.4.2,1.5.2:", when="@:1.7.0") depends_on("ports-of-call@1.5.2:", when="@1.7.1:") depends_on("ports-of-call@1.6.0:", when="@1.9.0:") + depends_on("ports-of-call@2.0.0:", when="@1.11.0:") depends_on("ports-of-call@main", when="@main") depends_on("spiner +kokkos", when="+kokkos+spiner") @@ -129,14 +130,14 @@ class SingularityEos(CMakePackage, CudaPackage, ROCmPackage): depends_on("spiner@1.6.3:", when="@1.9.1: +spiner") depends_on("spiner@main", when="@main +spiner") - depends_on("mpark-variant") + depends_on("mpark-variant", when="@:1.10") depends_on( "mpark-variant", patches=patch( "https://raw.githubusercontent.com/lanl/singularity-eos/b6ae9bac37fca51854c8da7a699577c9932188e8/utils/gpu_compatibility.patch", sha256="592e64ceccd2822ec1cc7eb01ac3fcad620551940beab793003afb6b5366dad8", ), - when="+cuda", + when="@:1.10 +cuda", ) depends_on( "mpark-variant", @@ -144,7 +145,7 @@ class SingularityEos(CMakePackage, CudaPackage, ROCmPackage): "https://raw.githubusercontent.com/lanl/singularity-eos/b6ae9bac37fca51854c8da7a699577c9932188e8/utils/gpu_compatibility.patch", sha256="592e64ceccd2822ec1cc7eb01ac3fcad620551940beab793003afb6b5366dad8", ), - when="+rocm", + when="@:1.10 +rocm", ) depends_on("binutils@:2.39,2.42:+ld", when="build_type=Debug") depends_on("binutils@:2.39,2.42:+ld", when="build_type=RelWithDebInfo") @@ -163,7 +164,6 @@ class SingularityEos(CMakePackage, CudaPackage, ROCmPackage): depends_on("kokkos+pic", when="+kokkos-kernels") depends_on("kokkos+cuda_lambda", when="+cuda+kokkos") - # specfic specs when using GPU/cuda offloading for _flag in list(CudaPackage.cuda_arch_values): depends_on("kokkos cuda_arch=" + _flag, when="+cuda+kokkos cuda_arch=" + _flag) depends_on("kokkos-kernels cuda_arch=" + _flag, when="+cuda+kokkos cuda_arch=" + _flag) @@ -175,9 +175,6 @@ class SingularityEos(CMakePackage, CudaPackage, ROCmPackage): conflicts("amdgpu_target=none", when="+rocm", msg="ROCm architecture is required") # these are mirrored in the cmake configuration - conflicts("+cuda", when="~kokkos") - conflicts("+rocm", when="~kokkos") - conflicts("+kokkos-kernels", when="~kokkos") conflicts("+hdf5", when="~spiner") conflicts("+fortran", when="~closure") diff --git a/repos/spack_repo/builtin/packages/singularity_hpc/package.py b/repos/spack_repo/builtin/packages/singularity_hpc/package.py index e885b81e06b..08edbdf19c4 100644 --- a/repos/spack_repo/builtin/packages/singularity_hpc/package.py +++ b/repos/spack_repo/builtin/packages/singularity_hpc/package.py @@ -27,7 +27,7 @@ class SingularityHpc(PythonPackage): "runtime", default="none", description="Container runtime installed by Spack for this package", - values=("none", "singularityce", "singularity", "podman"), + values=("none", "singularityce", "podman"), multi=False, ) @@ -50,7 +50,6 @@ class SingularityHpc(PythonPackage): depends_on("py-requests", type=("build", "run")) depends_on("singularityce@3:", when="runtime=singularityce", type="run") - depends_on("singularity@3:", when="runtime=singularity", type="run") depends_on("podman", when="runtime=podman", type="run") depends_on("lmod", when="modules=lmod", type="run") diff --git a/repos/spack_repo/builtin/packages/singularity_legacy/package.py b/repos/spack_repo/builtin/packages/singularity_legacy/package.py deleted file mode 100644 index 06f84b39e97..00000000000 --- a/repos/spack_repo/builtin/packages/singularity_legacy/package.py +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage - -from spack.package import * - - -class SingularityLegacy(AutotoolsPackage): - """Singularity is a container platform focused on supporting 'Mobility of - Compute'. The software changed the installation method from AutoTools - to GoLang, so we have two separate package names to support that. The - legacy package is pre-version 3.0.0 - """ - - homepage = "https://sylabs.io/singularity/" - url = "https://github.com/hpcng/singularity/releases/download/2.5.2/singularity-2.5.2.tar.gz" - git = "https://github.com/hpcng/singularity.git" - - # Versions before 2.5.2 suffer from a serious security problem. - # https://nvd.nist.gov/vuln/detail/CVE-2018-12021 - version("2.6-release", branch="vault/2.6-release", deprecated=True) - version( - "2.6.1", - sha256="f38d46a225e8368eb4693137806d2dc96e925a50bdf7f6983662848831041df2", - deprecated=True, - ) - version( - "2.6.0", - sha256="7c425211a099f6fa6f74037e6e17be58fb5923b0bd11aea745e48ef83c488b49", - deprecated=True, - ) - version( - "2.5.2", - sha256="eca09dbf4de5e971404a31f24d6c90081aef77075f51be8b3eb15b8715d6805e", - deprecated=True, - ) - - depends_on("c", type="build") # generated - - depends_on("libarchive", when="@2.5.2:") - # these are only needed if we're grabbing the unreleased tree - depends_on("m4", type="build", when="@2.6-release") - depends_on("autoconf", type="build", when="@2.6-release") - depends_on("automake", type="build", when="@2.6-release") - depends_on("libtool", type="build", when="@2.6-release") - - # When installing as root, the copy has to run before chmod runs - def install(self, spec, prefix): - make("install", parallel=False) diff --git a/repos/spack_repo/builtin/packages/singularityce/package.py b/repos/spack_repo/builtin/packages/singularityce/package.py index 24d3c50e4ca..a9edf987dec 100644 --- a/repos/spack_repo/builtin/packages/singularityce/package.py +++ b/repos/spack_repo/builtin/packages/singularityce/package.py @@ -14,6 +14,7 @@ class SingularityBase(MakefilePackage): variant("suid", default=False, description="install SUID binary") variant("network", default=True, description="install network plugins") + variant("libsubid", default=True, when="@4.3:", description="Enable libsubid support") depends_on("pkgconfig", type="build") depends_on("conmon", type=("build", "run")) @@ -25,6 +26,7 @@ class SingularityBase(MakefilePackage): depends_on("squashfs", type="run") depends_on("git", when="@develop") # mconfig uses it for version info depends_on("shadow", type="run", when="@3.3:") + depends_on("shadow", type=("build", "link", "run"), when="@4.3: +libsubid") depends_on("cryptsetup", type=("build", "run"), when="@3.4:") depends_on("libfuse", type=("build", "run"), when="@4.0:") depends_on("autoconf", type="build", when="@4.0:") @@ -77,8 +79,16 @@ def build_directory(self): # Allow overriding config options @property def config_options(self): - # Using conmon from spack - return ["--without-conmon"] + options = [] + if self.spec.satisfies("@:4.2"): + # Using conmon from spack + # Singularity doesn't package conmon from 4.3 onward + options.append("--without-conmon") + + if self.spec.satisfies("@4.3: ~libsubid"): + options.append("--without-libsubid") + + return options # Hijack the edit stage to run mconfig. def edit(self, spec, prefix): @@ -189,6 +199,7 @@ class Singularityce(SingularityBase): maintainers("alalazo") version("master", branch="master") + version("4.3.3", sha256="cd0bef984270040b71bf43e517ff08e92e9cb474b71286e7274d8e5348e3ff7d") version("4.1.0", sha256="119667f18e76a750b7d4f8612d7878c18a824ee171852795019aa68875244813") version("4.0.3", sha256="b3789c9113edcac62032ce67cd1815cab74da6c33c96da20e523ffb54cdcedf3") version("3.11.5", sha256="5acfbb4a109d9c63a25c230e263f07c1e83f6c726007fbcd97a533f03d33a86a") diff --git a/repos/spack_repo/builtin/packages/sirius/package.py b/repos/spack_repo/builtin/packages/sirius/package.py index 6e72cff3fa9..f09aabdee5e 100644 --- a/repos/spack_repo/builtin/packages/sirius/package.py +++ b/repos/spack_repo/builtin/packages/sirius/package.py @@ -19,13 +19,18 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage): list_url = "https://github.com/electronic-structure/SIRIUS/releases" git = "https://github.com/electronic-structure/SIRIUS.git" - maintainers("simonpintarelli", "haampie", "dev-zero", "AdhocMan", "toxa81", "RMeli") + maintainers( + "simonpintarelli", "haampie", "dev-zero", "AdhocMan", "toxa81", "RMeli", "mtaillefumier" + ) license("BSD-2-Clause") version("develop", branch="develop") version("master", branch="master") + version("7.11.1", sha256="ce77dd168b2c3ef4a89cc2d6b163cb00b3d8b9d4b0652bc9de187dc7e0e74d77") + version("7.10.0", sha256="ef02f2a899ccd72803bed3c4b7460457e67d99a68e0d6e5ab157566a1e6abf4f") + version("7.9.0", sha256="c36e9a00637b9626f83c0db740751440bfe06ef4c8d7cadb9822dd3cf03c1046") version("7.8.0", sha256="2cd2f98d35fb9e0a8f6d68714c6f8d682895781d564e91ef6685d92569ffd413") version("7.7.1", sha256="6039c84197d9e719e826f98b840cff19bc513887b443f97c0099d3c8b908efed") version("7.7.0", sha256="be0bdc76db9eb8afdcb950f0ccaf7535b8e85d72a4232dc92246f54fa68d9d7b") @@ -52,6 +57,10 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage): variant("scalapack", default=False, description="Enable scalapack support") variant("magma", default=False, description="Enable MAGMA support") variant("nlcglib", default=False, description="Enable robust wave function optimization") + variant("vcsqnm", default=False, description="Enable lattice relaxation") + variant( + "power_counter", default=False, description="Enable Cray power counter", when="@7.11.0:" + ) variant("wannier90", default=False, description="Enable Wannier90 library") variant( "build_type", @@ -66,6 +75,8 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage): "profiler", default=True, description="Use internal profiler to measure execution time" ) variant("nvtx", default=False, description="Use NVTX profiler") + variant("dftd3", default=False, description="Enable dft-d3 corrections", when="@7.9.0:") + variant("dftd4", default=False, description="Enable dft-d4 corrections", when="@7.9.0:") with when("@7.6:"): variant( @@ -80,7 +91,7 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage): depends_on("c", type="build") depends_on("fortran", type="build") - depends_on("cmake@3.23:", type="build") + depends_on("cmake@3.25:", type="build") depends_on("mpi") depends_on("gsl") depends_on("blas") @@ -93,6 +104,8 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage): depends_on("hdf5+hl") depends_on("pkgconfig", type="build") depends_on("fmt", when="@7.8:") + depends_on("simple-dftd3 build_system=cmake", when="+dftd3") + depends_on("dftd4 build_system=cmake", when="+dftd4") # Python module depends_on("python", when="+python", type=("build", "run")) @@ -183,6 +196,7 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage): depends_on("elpa~openmp", when="+elpa~openmp") depends_on("eigen@3.4.0:", when="@7.3.2: +tests") + depends_on("eigen@3.4.0:", when="@7.7: +vcsqnm") depends_on("costa+shared", when="@7.3.2:") @@ -219,6 +233,10 @@ def cmake_args(self): self.define_from_variant(cm_label + "USE_NVTX", "nvtx"), self.define_from_variant(cm_label + "USE_WANNIER90", "wannier90"), self.define_from_variant(cm_label + "USE_PUGIXML", "pugixml"), + self.define_from_variant(cm_label + "USE_DFTD3", "dftd3"), + self.define_from_variant(cm_label + "USE_DFTD4", "dftd4"), + self.define_from_variant(cm_label + "USE_VCSQNM", "vcsqnm"), + self.define_from_variant(cm_label + "USE_POWER_COUNTER", "power_counter"), self.define_from_variant("BUILD_SHARED_LIBS", "shared"), self.define_from_variant("BUILD_TESTING", "tests"), ] diff --git a/repos/spack_repo/builtin/packages/skopeo/package.py b/repos/spack_repo/builtin/packages/skopeo/package.py index 76e3c751067..ec73f608856 100644 --- a/repos/spack_repo/builtin/packages/skopeo/package.py +++ b/repos/spack_repo/builtin/packages/skopeo/package.py @@ -33,7 +33,7 @@ class Skopeo(MakefilePackage): depends_on("lvm2") def edit(self, spec, prefix): - grep = which("grep") + grep = which("grep", required=True) files = grep( "-lR", "/etc/containers/", diff --git a/repos/spack_repo/builtin/packages/slate/package.py b/repos/spack_repo/builtin/packages/slate/package.py index 513b8b973fe..dc7c1720ee4 100644 --- a/repos/spack_repo/builtin/packages/slate/package.py +++ b/repos/spack_repo/builtin/packages/slate/package.py @@ -29,6 +29,9 @@ class Slate(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") version("master", branch="master") + version( + "2025.05.28", sha256="eb6167eb4748e91d663b46e6c2218e2eb074d38d9dea3384bd9aaec2581ac15e" + ) version( "2024.10.29", sha256="e729fad51f44b1340c0f64ac0f862026121183a3c8d731874f0a11a3b5053223" ) @@ -95,6 +98,7 @@ class Slate(CMakePackage, CudaPackage, ROCmPackage): for val in ROCmPackage.amdgpu_targets: depends_on("blaspp +rocm amdgpu_target=%s" % val, when="amdgpu_target=%s" % val) depends_on("lapackpp +rocm amdgpu_target=%s" % val, when="amdgpu_target=%s" % val) + depends_on("lapackpp@2025.05.28:", when="@2025.05.28:") depends_on("lapackpp@2024.10.26:", when="@2024.10.29:") depends_on("lapackpp@2024.05.31:", when="@2024.05.31:") depends_on("lapackpp@2023.11.05:", when="@2023.11.05:") @@ -110,6 +114,8 @@ class Slate(CMakePackage, CudaPackage, ROCmPackage): depends_on("comgr", when="+rocm") depends_on("rocblas", when="+rocm") depends_on("rocsolver", when="+rocm") + depends_on("cuda@11:", when="@2025.05.28 +cuda") # for c++17 support + depends_on("hip@5:", when="@2025.05.28 +rocm") # for c++17 support requires("%oneapi", when="+sycl", msg="slate+sycl must be compiled with %oneapi") requires("+mpi", msg="MPI is required (use of the 'mpi' variant is deprecated)") @@ -180,7 +186,7 @@ def mpi_launcher(self): except KeyError: print("Slurm not found, ignoring.") commands = ["srun", "mpirun", "mpiexec"] - return which(*commands, path=searchpath) or which(*commands) + return which(*commands, path=searchpath) or which(*commands, required=True) def test_example(self): """build and run slate example""" @@ -200,7 +206,7 @@ def test_example(self): prefixes = ";".join([self.spec[x].prefix for x in deps.split()]) cmake("-DCMAKE_PREFIX_PATH=" + prefixes, "..") - make = which("make") + make = which("make", required=True) make() launcher = self.mpi_launcher() assert launcher is not None, "Cannot run tests due to absence of MPI launcher" diff --git a/repos/spack_repo/builtin/packages/sleef/package.py b/repos/spack_repo/builtin/packages/sleef/package.py index dcad669c8e9..ef1389dfe2e 100644 --- a/repos/spack_repo/builtin/packages/sleef/package.py +++ b/repos/spack_repo/builtin/packages/sleef/package.py @@ -19,8 +19,11 @@ class Sleef(CMakePackage): license("BSL-1.0") version("master", branch="master") - version("3.7.0_2024-12-06", commit="56e1f79cb140fb9326d612d0be06b5250565cade") # py-torch@2.7: - version("3.7.0", commit="c5494730bf601599a55f4e77f357b51ba590585e", preferred=True) + version( + "3.8", sha256="a12ccd50f57083c530e1c76f10d52865defbd19fc9e2c85b483493065709874a" + ) # py-torch@2.8: + version("3.7.0_2024-12-06", commit="56e1f79cb140fb9326d612d0be06b5250565cade") # py-torch@2.7 + version("3.7.0", commit="c5494730bf601599a55f4e77f357b51ba590585e") version("3.6.1", commit="6ee14bcae5fe92c2ff8b000d5a01102dab08d774") version( "3.6.0_2024-03-20", commit="60e76d2bce17d278b439d9da17177c8f957a9e9b" @@ -33,26 +36,6 @@ class Sleef(CMakePackage): version( "3.4.0_2019-07-30", commit="7f523de651585fe25cade462efccca647dcc8d02" ) # py-torch@1.3:1.7 - version( - "3.4.0_2019-05-13", - commit="9b249c53a80343cc1a394ca961d7d5696ea76409", # py-torch@1.2 - git="https://github.com/zdevito/sleef.git", - deprecated=True, - ) - version( - "3.3.1_2018-12-09", - commit="191f655caa25526ae226cf88dd2529265176014a", # py-torch@1.1 - git="https://github.com/zdevito/sleef.git", - deprecated=True, - ) - version( - "3.2.0_2018-05-09", commit="6ff7a135a1e31979d1e1844a2e7171dfbd34f54f", deprecated=True - ) # py-torch@0.4.1:1.0 - version( - "3.2.0", - sha256="3130c5966e204e6d6a3ace81e543d12b5b21f60897f1c185bfa587c1bd77bee2", - deprecated=True, - ) depends_on("c", type="build") diff --git a/repos/spack_repo/builtin/packages/slepc/install_name_371.patch b/repos/spack_repo/builtin/packages/slepc/install_name_371.patch deleted file mode 100644 index d02ca88657d..00000000000 --- a/repos/spack_repo/builtin/packages/slepc/install_name_371.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 7489a3f3d569e2fbf5513ac9dcd769017d9f7eb7 Mon Sep 17 00:00:00 2001 -From: Lisandro Dalcin -Date: Thu, 2 Jun 2016 21:57:38 +0300 -Subject: [PATCH] OS X: Fix library path in invocation of install_name_tool - ---- - config/install.py | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/config/install.py b/config/install.py -index 09acd03..6ce98ae 100755 ---- a/config/install.py -+++ b/config/install.py -@@ -25,6 +25,7 @@ class Installer: - - def setupDirectories(self): - self.installDir = self.destDir -+ self.archDir = os.path.join(self.rootDir, self.arch) - self.rootIncludeDir = os.path.join(self.rootDir, 'include') - self.archIncludeDir = os.path.join(self.rootDir, self.arch, 'include') - self.rootConfDir = os.path.join(self.rootDir, 'lib','slepc','conf') -@@ -220,7 +221,7 @@ for dir in dirs: - if os.path.splitext(dst)[1] == '.dylib' and os.path.isfile('/usr/bin/install_name_tool'): - (result, output) = commands.getstatusoutput('otool -D '+src) - oldname = output[output.find("\n")+1:] -- installName = oldname.replace(self.destDir, self.installDir) -+ installName = oldname.replace(self.archDir, self.installDir) - (result, output) = commands.getstatusoutput('/usr/bin/install_name_tool -id ' + installName + ' ' + dst) - # preserve the original timestamps - so that the .a vs .so time order is preserved - shutil.copystat(src,dst) --- -2.7.4.1.g5468f9e diff --git a/repos/spack_repo/builtin/packages/slepc/package.py b/repos/spack_repo/builtin/packages/slepc/package.py index 1e614cbdc37..33135f2c1e4 100644 --- a/repos/spack_repo/builtin/packages/slepc/package.py +++ b/repos/spack_repo/builtin/packages/slepc/package.py @@ -25,6 +25,13 @@ class Slepc(Package, CudaPackage, ROCmPackage): test_requires_compiler = True version("main", branch="main") + version("3.25.1", sha256="906ddbe15a20774c23ddcdf13a5054889d00a26c3c37463447ee593c757d03ee") + version("3.25.0", sha256="ba2d1cd42d637a7577cab63b0f9e910921fdd60db58290dd1041d60152655f78") + version("3.24.3", sha256="3f13421f3fcd68fd720a143088506e0f91e24243844703997597eee793225452") + version("3.24.2", sha256="6f1f7e45b9bbd15631562f193284832ae4e9655eb3af7f1ba59bdf8bdaefb638") + version("3.24.1", sha256="b07e1c335eb620dfc50a2b8d4fb12db03c6929ae624f0338ff8acf879a072abf") + version("3.24.0", sha256="6e2d14c98aa9138ac698a2a04a7c6a9f9569988f570b2cfbe4935d32364cb4e9") + version("3.23.3", sha256="6b0c4f706bdfca46f00b30026b4d92a4eb68faa03e40cbcbfeadb89999653621") version("3.23.2", sha256="3060a95692151ef0f9ba4ca11da18d5dcd86697b59f6aeee723de92d7bd465a1") version("3.23.1", sha256="c2fde066521bbccfbc80aa15182bca69ffaf00a7de648459fd04b81589896238") version("3.23.0", sha256="78252f7b2f540c5fdadadee0fd21f3e6eff810f82cb45482f327b524c8db63d0") @@ -57,63 +64,8 @@ class Slepc(Package, CudaPackage, ROCmPackage): version("3.14.2", sha256="3e54578dda1f4c54d35ac27d02f70a43f6837906cb7604dbcec0e033cfb264c8") version("3.14.1", sha256="cc78a15e34d26b3e6dde003d4a30064e595225f6185c1975bbd460cb5edd99c7") version("3.14.0", sha256="37f8bb270169d1d3f5d43756ac8929d56204e596bd7a78a7daff707513472e46") - version( - "3.13.4", - sha256="ddc9d58e1a4413218f4e67ea3b255b330bd389d67f394403a27caedf45afa496", - deprecated=True, - ) - version( - "3.13.3", - sha256="23d179c22b4b2f22d29fa0ac0a62f5355a964d3bc245a667e9332347c5aa8f81", - deprecated=True, - ) - version( - "3.13.2", - sha256="04cb8306cb5d4d990509710d7f8ae949bdc2c7eb850930b8d0b0b5ca99f6c70d", - deprecated=True, - ) - version( - "3.13.1", - sha256="f4a5ede4ebdee5e15153ce31c1421209c7b794bd94be1430018615fb0838b879", - deprecated=True, - ) - version( - "3.13.0", - sha256="f1f3c2d13a1a6914e7bf4746d38761e107ea866f50927b639e4ad5918dd1e53b", - deprecated=True, - ) - version( - "3.12.2", - sha256="a586ce572a928ed87f04961850992a9b8e741677397cbaa3fb028323eddf4598", - deprecated=True, - ) - version( - "3.12.1", - sha256="a1cc2e93a81c9f6b86abd81022c9d64b0dc2161e77fb54b987f963bc292e286d", - deprecated=True, - ) - version( - "3.12.0", - sha256="872831d961cf76389fafb7553231ae1a6676555850c98ea0e893c06f596b2e9e", - deprecated=True, - ) - version( - "3.11.2", - sha256="cd6a73ac0c9f689c12f2987000a7a28fa7df53fdc069fb59a2bb148699e741dd", - deprecated=True, - ) - version( - "3.11.1", - sha256="4816070d4ecfeea6212c6944cee22dc7b4763df1eaf6ab7847cc5ac5132608fb", - deprecated=True, - ) - version( - "3.11.0", - sha256="bf29043c311fe2c549a25e2b0835095723a3eebc1dff288a233b32913b5762a2", - deprecated=True, - ) - variant("arpack", default=True, description="Enables Arpack wrappers") + variant("arpack", default=False, description="Enables Arpack wrappers") variant("blopex", default=False, description="Enables BLOPEX wrappers") variant("hpddm", default=False, description="Enables HPDDM wrappers") @@ -128,6 +80,8 @@ class Slepc(Package, CudaPackage, ROCmPackage): # Cannot mix release and development versions of SLEPc and PETSc: depends_on("petsc@main", when="@main") for ver in [ + "3.25", + "3.24", "3.23", "3.22", "3.21", @@ -138,9 +92,6 @@ class Slepc(Package, CudaPackage, ROCmPackage): "3.16", "3.15", "3.14", - "3.13", - "3.12", - "3.11", ]: depends_on(f"petsc@{ver}", when=f"@{ver}") depends_on("petsc+cuda", when="+cuda") @@ -151,28 +102,19 @@ class Slepc(Package, CudaPackage, ROCmPackage): rocm_dep = "+rocm amdgpu_target={0}".format(arch) depends_on("petsc {0}".format(rocm_dep), when=rocm_dep) - patch("install_name_371.patch", when="@3.7.1") - - # Arpack can not be used with 64bit integers. - conflicts("+arpack", when="@:3.12 ^petsc+int64") + # arpack-ng does not have an int64 variant that can enabled explicitly. + conflicts("+arpack", when="^petsc+int64") + # BLOPEX can not be used with 64bit integers. conflicts("+blopex", when="^petsc+int64") # HPDDM cannot be used in both PETSc and SLEPc prior to 3.19.0 conflicts("+hpddm", when="@:3.18 ^petsc+hpddm") - resource( - name="blopex", - url="https://slepc.upv.es/download/external/blopex-1.1.2.tar.gz", - sha256="0081ee4c4242e635a8113b32f655910ada057c59043f29af4b613508a762f3ac", - destination=join_path("installed-arch-" + sys.platform + "-c-opt", "externalpackages"), - when="@:3.12+blopex", - ) - resource( name="blopex", git="https://github.com/lobpcg/blopex", commit="6eba31f0e071f134a6e4be8eccfb8d9d7bdd5ac7", destination=join_path("installed-arch-" + sys.platform + "-c-opt", "externalpackages"), - when="@3.13.0:+blopex", + when="+blopex", ) def revert_kokkos_nvcc_wrapper(self): @@ -206,10 +148,6 @@ def install(self, spec, prefix): ] ) else: - if spec.satisfies("@:3.12"): - arpackopt = "--with-arpack-flags" - else: - arpackopt = "--with-arpack-lib" if "arpack-ng~mpi" in spec: arpacklib = "-larpack" else: @@ -217,7 +155,7 @@ def install(self, spec, prefix): options.extend( [ "--with-arpack-dir=%s" % spec["arpack-ng"].prefix, - "%s=%s" % (arpackopt, arpacklib), + "--with-arpack-lib=%s" % arpacklib, ] ) @@ -283,10 +221,10 @@ def test_hello(self): join_path(test_dir, f"{test_exe}.c"), ] - cc = which(os.environ["CC"]) + cc = which(os.environ["CC"], required=True) with working_dir(test_dir): cc(*options) - hello = which(test_exe) + hello = which(test_exe, required=True) out = hello(output=str.split, error=str.split) assert "Hello world" in out diff --git a/repos/spack_repo/builtin/packages/slurm/package.py b/repos/spack_repo/builtin/packages/slurm/package.py index 898ccf58b6c..c0889d32964 100644 --- a/repos/spack_repo/builtin/packages/slurm/package.py +++ b/repos/spack_repo/builtin/packages/slurm/package.py @@ -27,8 +27,15 @@ class Slurm(AutotoolsPackage): homepage = "https://slurm.schedmd.com" url = "https://github.com/SchedMD/slurm/archive/slurm-21-08-8-2.tar.gz" + maintainers("w8jcik") + license("GPL-2.0-or-later") + version("25-05-1-1", sha256="b568c761a6c9d72358addb3bb585456e73e80a02214ce375d2de8534f9ddb585") + version("24-11-6-1", sha256="282708483326f381eb001a14852a1a82e65e18f37b62b7a5f4936c0ed443b600") + version( + "23-11-11-1", sha256="e9234e664ce30be206f73c0ff1a5f33e0ce32be35ece812eac930fcaa9da2c2f" + ) version("23-11-1-1", sha256="31506df24c6d24e0ea0329cac1395ab9b645bbde1518f5c469f7711df5e22c11") version("23-11-0-1", sha256="3780773a80b73ea2edb4353318b4220188f4eda92c31ab3a2bdd3a4fdec76be9") version("23-02-7-1", sha256="3f60ad5b5a492312d1febb9f9167caa3aee7f8438bb032590a993f5a65c5e4db") @@ -44,84 +51,6 @@ class Slurm(AutotoolsPackage): version("21-08-8-2", sha256="876d7dfa716990d7e579cfb9c6ffc123258e03a1450e993ade596d2ee90afcdd") version("21-08-8-1", sha256="47d4dd2f391abcb856ecfddb51145c86ead89554f24efb586c59f0e38491ff36") version("20-11-9-1", sha256="98d36f3487e95af610db305a3ee1c1a7d370a3e1efef9fabee8b0edb98a6604b") - # Due to CVE 2022-29500, CVE 2022-29501, and CVE 2022-29502, prior to 21.08.8 and - # 20.11.9 are deprecated - version( - "21-08-1-1", - sha256="23321719101762b055a6b1da6ff4261f5e6c469bce038c6c23549840453862e7", - deprecated=True, - ) - version( - "21-08-0-1", - sha256="c8caf9b5f715c02b6f9e55e9737ee7b99f93c5efc8dcc34c2ce40bed0aea5402", - deprecated=True, - ) - version( - "20-11-8-1", - sha256="1cafed56ae9d90387a5dc6092090c174e144a6e5a31330f748d1fd3a616ae92f", - deprecated=True, - ) - version( - "20-11-7-1", - sha256="7d92babd97d0b8750b8c25eced4507323aff32a9d85af3a644c1acedbddb9d2f", - deprecated=True, - ) - version( - "20-02-7-1", - sha256="060acf966af53e75c7eaae83c4f42abdcc60702838c2dcd35cb01468b45a68a1", - deprecated=True, - ) - # Due to CVE-2021-31215, all versions prior to 20.11.7 or 20.02.7 are deprecated. - version( - "20-11-5-1", - sha256="d0634c6c6cc79bde38d19f0ef0de0de3b07907830f5e45be6f4a9ca4259f8f67", - deprecated=True, - ) - version( - "20-11-4-1", - sha256="06c5333e85f531730bf1c6eb48a8d48a551d9090540ce37b78181024273fb6bd", - deprecated=True, - ) - version( - "20-11-0-1", - sha256="404f72c287c5aad887a5b141304e4962548c12f79b04fc9c88550bc024604228", - deprecated=True, - ) - version( - "20-02-4-1", - sha256="d32a39df20a99430973de6692870269f38443d8b963c32b4d6475c9d5e92cd73", - deprecated=True, - ) - version( - "19-05-6-1", - sha256="1b83bce4260af06d644253b1f2ec2979b80b4418c631e9c9f48c2729ae2c95ba", - deprecated=True, - ) - version( - "19-05-5-1", - sha256="e53e67bd0bb4c37a9c481998764a746467a96bc41d6527569080514f36452c07", - deprecated=True, - ) - version( - "18-08-9-1", - sha256="32eb0b612ca18ade1e35c3c9d3b4d71aba2b857446841606a9e54d0a417c3b03", - deprecated=True, - ) - version( - "18-08-0-1", - sha256="62129d0f2949bc8a68ef86fe6f12e0715cbbf42f05b8da6ef7c3e7e7240b50d9", - deprecated=True, - ) - version( - "17-11-9-2", - sha256="6e34328ed68262e776f524f59cca79ac75bcd18030951d45ea545a7ba4c45906", - deprecated=True, - ) - version( - "17-02-6-1", - sha256="97b3a3639106bd6d44988ed018e2657f3d640a3d5c105413d05b4721bc8ee25e", - deprecated=True, - ) variant("gtk", default=False, description="Enable GTK+ support") variant("mariadb", default=False, description="Use MariaDB instead of MySQL") @@ -129,7 +58,7 @@ class Slurm(AutotoolsPackage): variant("hwloc", default=False, description="Enable hwloc support") variant("hdf5", default=False, description="Enable hdf5 support") variant("readline", default=True, description="Enable readline support") - variant("pmix", default=False, description="Enable PMIx support") + variant("pmix", default=False, description="Enable PMIx support", when="@22-05:") variant( "sysconfdir", default="PREFIX/etc", @@ -141,9 +70,18 @@ class Slurm(AutotoolsPackage): variant("cgroup", default=False, description="Enable cgroup plugin") variant("pam", default=False, description="Enable PAM support") variant("rsmi", default=False, description="Enable ROCm SMI support") + variant( + "multiple_slurmd", + default=False, + description="Enable support for multiple slurmd instances", + ) # TODO: add variant for BG/Q and Cray support + # TODO: add variant for TLS (slurm@25-05:) + + # TODO: add variant for RRD (librrd) (slurm@23-02:) + # TODO: add support for checkpoint/restart (BLCR) # TODO: add support for lua @@ -164,7 +102,8 @@ class Slurm(AutotoolsPackage): depends_on("hdf5", when="+hdf5") depends_on("hwloc", when="+hwloc") depends_on("mariadb", when="+mariadb") - depends_on("pmix", when="+pmix") + + depends_on("pmix@:5", when="+pmix") depends_on("http-parser", when="+restd") depends_on("libyaml", when="+restd") @@ -183,15 +122,6 @@ def determine_version(cls, exe): match = re.search(r"slurm(?:-wlm)?\s*([0-9.]+)", output) return match.group(1) if match else None - def flag_handler(self, name, flags): - wrapper_flags = None - - if name == "cflags": - if self.spec.satisfies("@:20-02-1 %gcc@10:"): - wrapper_flags = ["-fcommon"] - - return (wrapper_flags, None, flags) - def configure_args(self): spec = self.spec @@ -241,6 +171,9 @@ def configure_args(self): if spec.satisfies("+rsmi"): args.append(f"--with-rsmi={spec['rocm-smi-lib'].prefix}") + if spec.satisfies("+multiple_slurmd"): + args.append("--enable-multiple-slurmd") + sysconfdir = spec.variants["sysconfdir"].value if sysconfdir != "PREFIX/etc": args.append("--sysconfdir={0}".format(sysconfdir)) diff --git a/repos/spack_repo/builtin/packages/slurm_drmaa/package.py b/repos/spack_repo/builtin/packages/slurm_drmaa/package.py index d6487ba3bd2..c132cc14217 100644 --- a/repos/spack_repo/builtin/packages/slurm_drmaa/package.py +++ b/repos/spack_repo/builtin/packages/slurm_drmaa/package.py @@ -25,7 +25,6 @@ class SlurmDrmaa(AutotoolsPackage): license("GPL-3.0-or-later") version("main", branch="main", submodules=True) - version("1.1.2", sha256="5bfe25d501de83729df3c8c8f28535b9da3e99aea7738e259903abd6f1f5c836") depends_on("c", type="build") # generated @@ -35,7 +34,6 @@ class SlurmDrmaa(AutotoolsPackage): depends_on("bison", type="build", when="@main") depends_on("slurm") - depends_on("slurm@:20-11-8-1", when="@1.1.2") depends_on("gperf") depends_on("ragel") diff --git a/repos/spack_repo/builtin/packages/snakemake/package.py b/repos/spack_repo/builtin/packages/snakemake/package.py index d6b7e834707..d28f2e7ea13 100644 --- a/repos/spack_repo/builtin/packages/snakemake/package.py +++ b/repos/spack_repo/builtin/packages/snakemake/package.py @@ -16,6 +16,14 @@ class Snakemake(PythonPackage): license("MIT") + version("9.14.0", sha256="d1126fe73cd182c6810a7981130c197ce8b707122ab3aa30b510eaa69f6dec06") + version("9.13.7", sha256="c9e64fe5b8b57330680d4acc7ffd4e3d78c053379f940942dd3016281bc05383") + version("9.12.0", sha256="7d479110bc05eb68bf4bb9caa2dcb231ceb1b0c0967180fd2f37574962a8dc24") + version("9.11.9", sha256="dfebcc7fb1bbbcdf1a9aa6507c1c7cbeb77e906ac4214c9d47e1db12d53a5abd") + version("9.10.1", sha256="538308d13c0848c3d1a8b166f3a608d7a4800c3bac2313bd02b29fdf8c5a2c9f") + version("9.9.0", sha256="38b5e1a39d4f6eee361c9e30da1de5ec629ff67581e6ac3497e415d92f02961d") + version("9.8.1", sha256="2b2e5b6bac1078e38a0cc1b995e6c10f283a7270e2537520cd6afa73d1c0c961") + version("9.7.1", sha256="f3dacd42f6b38493c1a1faf2d851fd01af8b8167c82120b4cb48604331b0d3be") version("9.6.3", sha256="0ab3710d7782749eda5dc1af7f06b75d041172a1abdab31fc5c2ed78ec4f39cd") version("8.25.2", sha256="d5103ba37d9747bfea584b43ddcbe7255ab3f8e2aeb222e89bcb9a40c80ae603") version("8.18.2", sha256="7dc8cdc3c836444c2bc3d67a4a7f4d703557c1bf96a90da18f312f4df9daefc4") @@ -51,19 +59,26 @@ class Snakemake(PythonPackage): depends_on("py-immutables", type=("build", "run"), when="@8:") depends_on("py-configargparse", type=("build", "run")) depends_on("py-connectionpool@0.0.3:", type=("build", "run")) - depends_on("py-datrie", type=("build", "run")) + depends_on("py-datrie", type=("build", "run"), when="@:8.29.0") depends_on("py-docutils", type=("build", "run")) depends_on("py-gitpython", type=("build", "run")) depends_on("py-humanfriendly", type=("build", "run"), when="@7.20.0:") depends_on("py-jinja2@3", type=("build", "run"), when="@7:") depends_on("py-jsonschema", type=("build", "run")) depends_on("py-nbformat", type=("build", "run")) + depends_on("py-packaging@24.0:", type=("build", "run"), when="@9.7:") + depends_on("py-packaging@24.2:", type=("build", "run"), when="@9.7: ^py-setuptools@77:") depends_on("py-packaging", type=("build", "run"), when="@7.29.0:") depends_on("py-psutil", type=("build", "run")) - depends_on("py-pulp@2.3.1:2.9", type=("build", "run"), when="@8.22.0:") + depends_on("py-pulp@2.3.1:3.3", type=("build", "run"), when="@9.11.5:") + depends_on("py-pulp@2.3.1:3.2", type=("build", "run"), when="@9.6:9.11.4") + depends_on("py-pulp@2.3.1:3.1", type=("build", "run"), when="@9.3.1:9.5.1") + depends_on("py-pulp@2.3.1:3.0", type=("build", "run"), when="@9.1:9.3.0") + depends_on("py-pulp@2.3.1:2.9", type=("build", "run"), when="@8.22.0:9.0") depends_on("py-pulp@2.3.1:2.8", type=("build", "run"), when="@8.1.2:8.21") depends_on("py-pulp@2:", type=("build", "run"), when="@:8.1.1") depends_on("py-pyyaml", type=("build", "run")) + depends_on("py-referencing", type=("build", "run"), when="@9.6:") depends_on("py-requests@2.8.1:2", type=("build", "run"), when="@8.4.12") depends_on("py-requests", type=("build", "run")) @@ -92,23 +107,45 @@ class Snakemake(PythonPackage): "py-snakemake-interface-executor-plugins@8.1.3:8", type=("build", "run"), when="@8:8.5" ) + depends_on("py-snakemake-interface-common@1.20.1:1", type=("build", "run"), when="@9.7:") + depends_on("py-snakemake-interface-common@1.20.0:1", type=("build", "run"), when="@9.6.3:9.6") depends_on("py-snakemake-interface-common@1.17:1", type=("build", "run"), when="@8.4.10:") depends_on("py-snakemake-interface-common@1.15:1", type=("build", "run"), when="@8:") depends_on( - "py-snakemake-interface-storage-plugins@3.2.3:3", type=("build", "run"), when="@8.15.1:" + "py-snakemake-interface-storage-plugins@4.1.0:4", type=("build", "run"), when="@9.1:" ) depends_on( - "py-snakemake-interface-storage-plugins@3.1:3", type=("build", "run"), when="@8.4.10:" + "py-snakemake-interface-storage-plugins@3.5:3", type=("build", "run"), when="@9.0:9.0.1" ) - depends_on("py-snakemake-interface-storage-plugins@3", type=("build", "run"), when="@8:") + depends_on( + "py-snakemake-interface-storage-plugins@3.2.3:3", type=("build", "run"), when="@8.15.1:8" + ) + depends_on( + "py-snakemake-interface-storage-plugins@3.1:3", + type=("build", "run"), + when="@8.4.10:8.15.0", + ) + + depends_on("py-snakemake-interface-storage-plugins@3", type=("build", "run"), when="@8:9.0") + depends_on("py-snakemake-interface-report-plugins@1.2:1", type=("build", "run"), when="@9.11:") depends_on("py-snakemake-interface-report-plugins@1.1:1", type=("build", "run"), when="@8.22:") depends_on("py-snakemake-interface-report-plugins@1", type=("build", "run"), when="@8.5:") + depends_on( + "py-snakemake-interface-logger-plugins@1.1.0:2", type=("build", "run"), when="@9.11.7:" + ) + depends_on( + "py-snakemake-interface-logger-plugins@1.1.0:1", type=("build", "run"), when="@9:9.11.6" + ) + depends_on( + "py-snakemake-interface-scheduler-plugins@2.0.0:2", type=("build", "run"), when="@9.10:" + ) depends_on("py-tabulate", type=("build", "run")) depends_on("py-throttler", type=("build", "run"), when="@7:") depends_on("py-wrapt", type=("build", "run")) - depends_on("py-yte@1.5.1:1", type=("build", "run"), when="@7.28.1:") + depends_on("py-yte@1.5.5:1", type=("build", "run"), when="@8.26.0:") + depends_on("py-yte@1.5.1:1", type=("build", "run"), when="@7.28.1:8.25.5") depends_on("py-yte@1", type=("build", "run"), when="@7:7.28.0") depends_on("py-dpath@2.1.6:2", type=("build", "run"), when="@8.3:") depends_on("py-conda-inject@1.3.1:1", type=("build", "run"), when="@8:") diff --git a/repos/spack_repo/builtin/packages/snphylo/package.py b/repos/spack_repo/builtin/packages/snphylo/package.py index 32ab81d4f83..86517f8bf4a 100644 --- a/repos/spack_repo/builtin/packages/snphylo/package.py +++ b/repos/spack_repo/builtin/packages/snphylo/package.py @@ -16,11 +16,6 @@ class Snphylo(Package): license("GPL-2.0-only") version("20180901", sha256="46273bcafc8f6cc2465fc524926af7dd122bcc7b7ce1b7c3f5c278111c3a9ddd") - version( - "2016-02-04", - sha256="d9e144021c83dbef97bebf743b92109ad0afcfe70f37c244059b43f11b8a50da", - deprecated=True, - ) depends_on("python", type=("build", "run")) depends_on("r", type=("build", "run")) @@ -37,7 +32,7 @@ def install(self, spec, prefix): with open(install_answer_input, "w") as f: f.writelines(install_answer) with open(install_answer_input, "r") as f: - bash = which("bash") + bash = which("bash", required=True) bash("./setup.sh", input=f) install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/soapdenovo2/package.py b/repos/spack_repo/builtin/packages/soapdenovo2/package.py index 763eb3f41af..70dacab9388 100644 --- a/repos/spack_repo/builtin/packages/soapdenovo2/package.py +++ b/repos/spack_repo/builtin/packages/soapdenovo2/package.py @@ -28,6 +28,8 @@ class Soapdenovo2(MakefilePackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated + parallel = False + def flag_handler(self, name, flags): if name.lower() == "cflags" and self.spec.satisfies("%gcc@10:"): flags.append("-fcommon") diff --git a/repos/spack_repo/builtin/packages/soci/package.py b/repos/spack_repo/builtin/packages/soci/package.py index 762caf4e876..1e30a043915 100644 --- a/repos/spack_repo/builtin/packages/soci/package.py +++ b/repos/spack_repo/builtin/packages/soci/package.py @@ -15,6 +15,8 @@ class Soci(CMakePackage): license("BSL-1.0") + version("4.1.2", sha256="c0974067e57242f21d9a85677c5f6cc7848fba3cbd5ec58d76c95570a5a7a15b") + version("4.1.1", sha256="a8a3111b1a09b5ff527d3def2f6e973e6454bb99e389834cc1e2f1d9aebf0744") version("4.0.3", sha256="4b1ff9c8545c5d802fbe06ee6cd2886630e5c03bf740e269bb625b45cf934928") version("4.0.2", sha256="f293192a412ed82693d17dfe46e2734b140bff835bc3259e3cbd7c315e5e2d74") version("4.0.0", sha256="359b988d8cbe81357835317821919f7e270c0705e41951a92ac1627cb9fe8faf") @@ -42,6 +44,7 @@ class Soci(CMakePackage): variant("sqlite", default=False, description="Build with SQLite support") variant("postgresql", default=False, description="Build with PostgreSQL support") + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("boost", when="+boost") diff --git a/repos/spack_repo/builtin/packages/sollve/disable_unused_lock.patch b/repos/spack_repo/builtin/packages/sollve/disable_unused_lock.patch deleted file mode 100644 index 3171ec670fc..00000000000 --- a/repos/spack_repo/builtin/packages/sollve/disable_unused_lock.patch +++ /dev/null @@ -1,27 +0,0 @@ -commit 525b70302cea9b5850be9ee8d33b7660455082f2 -Author: Shintaro Iwasaki -Date: Wed Apr 15 03:46:44 2020 +0000 - - [BOLT] disable futex and adaptive locks if unused - - On some architectures, including POWER 9, futex locks and/or adaptive locks are - not enabled by default, but BOLT assumed they are available, causing - compile-time errors on such a platform. This patch fixes it. - -diff --git a/runtime/src/kmp_lock.cpp b/runtime/src/kmp_lock.cpp -index 5dcc4ee..5cda629 100644 ---- a/runtime/src/kmp_lock.cpp -+++ b/runtime/src/kmp_lock.cpp -@@ -219,8 +219,12 @@ KMP_DEFINE_LOCKS(tas) - KMP_DEFINE_LOCKS(ticket) - KMP_DEFINE_LOCKS(queuing) - KMP_DEFINE_LOCKS(drdpa) -+#if KMP_USE_FUTEX - KMP_DEFINE_LOCKS(futex) -+#endif -+#if KMP_USE_ADAPTIVE_LOCKS - KMP_DEFINE_LOCKS(adaptive) -+#endif - typedef kmp_abt_mutex_lock_t kmp_hle_lock_t; - KMP_DEFINE_LOCKS(hle) - typedef kmp_abt_mutex_lock_t kmp_rtm_lock_t; diff --git a/repos/spack_repo/builtin/packages/sollve/package.py b/repos/spack_repo/builtin/packages/sollve/package.py deleted file mode 100644 index 0713dfabb04..00000000000 --- a/repos/spack_repo/builtin/packages/sollve/package.py +++ /dev/null @@ -1,408 +0,0 @@ -# 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 Sollve(CMakePackage): - """The SOLLVE Project aims at scaling OpenMP by leveraging LLVM for - exascale performance and portability of applications. This package - provides a collection of Clang/LLVM compilers and an OpenMP runtime - library. - """ - - homepage = "https://www.bnl.gov/compsci/projects/SOLLVE/" - git = "https://github.com/SOLLVE/llvm.git" - - tags = ["e4s"] - - # NOTE: The debug version of LLVM is an order of magnitude larger than - # the release version, and may take up 20-30 GB of space. If you want - # to save space, build with `build_type=Release`. - - variant( - "clang", default=True, description="Build the LLVM C/C++/Objective-C compiler frontend" - ) - variant("lldb", default=True, description="Build the LLVM debugger") - variant("lld", default=True, description="Build the LLVM linker") - variant("internal_unwind", default=True, description="Build the libcxxabi libunwind") - variant("polly", default=True, description="Build the LLVM polyhedral optimization plugin") - variant("libcxx", default=True, description="Build the LLVM C++ standard library") - variant( - "compiler-rt", - default=True, - description="Build LLVM compiler runtime, including sanitizers", - ) - variant("gold", default=True, description="Add support for LTO with the gold linker plugin") - variant( - "shared_libs", - default=False, - description="Build all components as shared libraries, faster, " - "less memory to build, less stable", - ) - variant( - "link_dylib", - default=False, - description="Build and link the libLLVM shared library rather " "than static", - ) - variant( - "all_targets", - default=False, - description="Build all supported targets, default targets " - ",NVPTX,AMDGPU,CppBackend", - ) - variant("omp_tsan", default=False, description="Build with OpenMP capable thread sanitizer") - variant("python", default=False, description="Install python bindings") - variant("argobots", default=True, description="Use Argobots in BOLT") - extends("python", when="+python") - - depends_on("c", type="build") - depends_on("cxx", type="build") - - # Build dependency - depends_on("cmake@3.4.3:", type="build") - depends_on("python", type="build") - - # openmp dependencies - depends_on("perl-data-dumper", type=("build")) - depends_on("argobots", when="+argobots") - - # lldb dependencies - depends_on("ncurses", when="+lldb") - depends_on("swig", when="+lldb") - depends_on("libedit", when="+lldb") - depends_on("py-six", when="+lldb +python", type=("build", "run")) - - # gold support - depends_on("binutils+gold", when="+gold") - - # develop version. - version("develop", deprecated=True) - resource( - name="compiler-rt", - svn="http://llvm.org/svn/llvm-project/compiler-rt/trunk", - destination="projects", - when="@develop+compiler-rt", - placement="compiler-rt", - ) - resource( - name="openmp", - git="https://github.com/pmodels/bolt.git", - destination="projects", - when="@develop+clang", - placement="openmp", - ) - resource( - name="polly", - git="https://github.com/SOLLVE/polly.git", - destination="tools", - when="@develop+polly", - placement="polly", - ) - resource( - name="libcxx", - git="https://github.com/SOLLVE/libcxx.git", - destination="projects", - when="@develop+libcxx", - placement="libcxx", - ) - resource( - name="libcxxabi", - git="https://github.com/SOLLVE/libcxxabi.git", - destination="projects", - when="@develop+libcxx", - placement="libcxxabi", - ) - resource( - name="cfe", - git="https://github.com/SOLLVE/clang.git", - destination="tools", - when="@develop+clang", - placement="clang", - ) - resource( - name="lldb", - svn="http://llvm.org/svn/llvm-project/lldb/trunk", - destination="tools", - when="@develop+lldb", - placement="lldb", - ) - resource( - name="lld", - svn="http://llvm.org/svn/llvm-project/lld/trunk", - destination="tools", - when="@develop+lld", - placement="lld", - ) - resource( - name="libunwind", - svn="http://llvm.org/svn/llvm-project/libunwind/trunk", - destination="projects", - when="@develop+internal_unwind", - placement="libunwind", - ) - - # 1.0a2 based on LLVM 9.0+ - version("1.0a2", commit="cb4343bda9e57076a74dee23236ac9737e07594f", deprecated=True) - resource( - name="compiler-rt", - svn="https://llvm.org/svn/llvm-project/compiler-rt/trunk", - revision=373130, - destination="projects", - when="@1.0a2+compiler-rt", - placement="compiler-rt", - ) - resource( - name="openmp", - git="https://github.com/pmodels/bolt.git", - commit="0a0033b09cfb672c119cf41eeb54eda7664681bc", - destination="projects", - when="@1.0a2+clang", - placement="openmp", - ) - resource( - name="polly", - git="https://github.com/SOLLVE/polly.git", - commit="96168ae6fb436e95cd756950855a57b895070047", - destination="tools", - when="@1.0a2+polly", - placement="polly", - ) - resource( - name="libcxx", - git="https://github.com/SOLLVE/libcxx.git", - commit="9637883af0357acf02c87fae5efb71661d21f516", - destination="projects", - when="@1.0a2+libcxx", - placement="libcxx", - ) - resource( - name="libcxxabi", - git="https://github.com/SOLLVE/libcxxabi.git", - commit="3ed912b3b014a3af862c3b2cd0795ad43afadf31", - destination="projects", - when="@1.0a2+libcxx", - placement="libcxxabi", - ) - resource( - name="cfe", - git="https://github.com/SOLLVE/clang.git", - commit="774bc67094a1baa2dbdab705b0cac061048a062e", - destination="tools", - when="@1.0a2+clang", - placement="clang", - ) - resource( - name="lldb", - svn="http://llvm.org/svn/llvm-project/lldb/trunk", - revision=373127, - destination="tools", - when="@1.0a2+lldb", - placement="lldb", - ) - resource( - name="lld", - svn="http://llvm.org/svn/llvm-project/lld/trunk/", - revision=373077, - destination="tools", - when="@1.0a2+lld", - placement="lld", - ) - resource( - name="libunwind", - svn="http://llvm.org/svn/llvm-project/libunwind/trunk", - revision=372427, - destination="projects", - when="@1.0a2+internal_unwind", - placement="libunwind", - ) - - conflicts("+lldb", when="~clang") - - conflicts("%gcc@:5.0") - conflicts("+omp_tsan") - - patch("disable_unused_lock.patch", when="@1.0a2", working_dir="projects/openmp") - - @run_before("cmake") - def check_darwin_lldb_codesign_requirement(self): - if not self.spec.satisfies("+lldb platform=darwin"): - return - codesign = which("codesign") - mkdir("tmp") - llvm_check_file = join_path("tmp", "llvm_check") - copy("/usr/bin/false", llvm_check_file) - - try: - codesign("-f", "-s", "lldb_codesign", "--dryrun", llvm_check_file) - - except ProcessError: - explanation = ( - 'The "lldb_codesign" identity must be available' - " to build LLVM with LLDB. See https://llvm.org/" - "svn/llvm-project/lldb/trunk/docs/code-signing" - ".txt for details on how to create this identity." - ) - raise RuntimeError(explanation) - - def setup_build_environment(self, env: EnvironmentModifications) -> None: - env.append_flags("CXXFLAGS", self.compiler.cxx11_flag) - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - if "+clang" in self.spec: - env.set("CC", join_path(self.spec.prefix.bin, "clang")) - env.set("CXX", join_path(self.spec.prefix.bin, "clang++")) - - def cmake_args(self): - spec = self.spec - cmake_args = [ - "-DLLVM_REQUIRES_RTTI:BOOL=ON", - "-DLLVM_ENABLE_RTTI:BOOL=ON", - "-DLLVM_ENABLE_EH:BOOL=ON", - "-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp", - ] - - # TODO: Instead of unconditionally disabling CUDA, add a "cuda" variant - # (see TODO above), and set the paths if enabled. - cmake_args.extend( - [ - "-DCUDA_TOOLKIT_ROOT_DIR:PATH=IGNORE", - "-DCUDA_SDK_ROOT_DIR:PATH=IGNORE", - "-DCUDA_NVCC_EXECUTABLE:FILEPATH=IGNORE", - "-DLIBOMPTARGET_DEP_CUDA_DRIVER_LIBRARIES:STRING=IGNORE", - ] - ) - - if "+gold" in spec: - cmake_args.append("-DLLVM_BINUTILS_INCDIR=" + spec["binutils"].prefix.include) - - if "+polly" in spec: - cmake_args.append("-DLINK_POLLY_INTO_TOOLS:Bool=ON") - else: - cmake_args.extend( - [ - "-DLLVM_EXTERNAL_POLLY_BUILD:Bool=OFF", - "-DLLVM_TOOL_POLLY_BUILD:Bool=OFF", - "-DLLVM_POLLY_BUILD:Bool=OFF", - "-DLLVM_POLLY_LINK_INTO_TOOLS:Bool=OFF", - ] - ) - - if "+python" in spec and "+lldb" in spec: - cmake_args.append("-DLLDB_USE_SYSTEM_SIX:Bool=TRUE") - else: - cmake_args.append("-DLLDB_USE_SYSTEM_SIX:Bool=FALSE") - - if "+clang" in spec: - cmake_args.append("-DLLVM_EXTERNAL_CLANG_BUILD:Bool=ON") - else: - cmake_args.append("-DLLVM_EXTERNAL_CLANG_BUILD:Bool=OFF") - - if "+lldb" in spec: - cmake_args.extend( - ["-DLLVM_EXTERNAL_LLDB_BUILD:Bool=ON", "-DLLVM_TOOL_LLDB_BUILD:Bool=ON"] - ) - else: - cmake_args.extend( - ["-DLLVM_EXTERNAL_LLDB_BUILD:Bool=OFF", "-DLLVM_TOOL_LLDB_BUILD:Bool=OFF"] - ) - - if "+lld" in spec: - cmake_args.append("-DLLVM_TOOL_LLD_BUILD:Bool=ON") - else: - cmake_args.append("-DLLVM_TOOL_LLD_BUILD:Bool=OFF") - - if "+internal_unwind" in spec: - cmake_args.append("-DLLVM_EXTERNAL_LIBUNWIND_BUILD:Bool=ON") - else: - cmake_args.append("-DLLVM_EXTERNAL_LIBUNWIND_BUILD:Bool=OFF") - - if "+libcxx" in spec: - cmake_args.append("-DCLANG_DEFAULT_CXX_STDLIB=libc++") - cmake_args.append("-DLLVM_EXTERNAL_LIBCXX_BUILD:Bool=ON") - cmake_args.append("-DLLVM_EXTERNAL_LIBCXXABI_BUILD:Bool=ON") - else: - cmake_args.append("-DLLVM_EXTERNAL_LIBCXX_BUILD:Bool=OFF") - cmake_args.append("-DLLVM_EXTERNAL_LIBCXXABI_BUILD:Bool=OFF") - - if "+compiler-rt" in spec: - cmake_args.append("-DLLVM_EXTERNAL_COMPILER_RT_BUILD:Bool=ON") - else: - cmake_args.append("-DLLVM_EXTERNAL_COMPILER_RT_BUILD:Bool=OFF") - - if "+shared_libs" in spec: - cmake_args.append("-DBUILD_SHARED_LIBS:Bool=ON") - else: - cmake_args.append("-DBUILD_SHARED_LIBS:Bool=OFF") - - if "+link_dylib" in spec: - cmake_args.append("-DLLVM_LINK_LLVM_DYLIB:Bool=ON") - else: - cmake_args.append("-DLLVM_LINK_LLVM_DYLIB:Bool=OFF") - - if "+all_targets" not in spec: # all is default on cmake - targets = [] - if spec.target.family == "x86" or spec.target.family == "x86_64": - targets.append("X86") - elif spec.target.family == "arm": - targets.append("ARM") - elif spec.target.family == "aarch64": - targets.append("AArch64") - elif spec.target.family == "sparc" or spec.target.family == "sparc64": - targets.append("Sparc") - elif ( - spec.target.family == "ppc64" - or spec.target.family == "ppc64le" - or spec.target.family == "ppc" - or spec.target.family == "ppcle" - ): - targets.append("PowerPC") - - cmake_args.append("-DLLVM_TARGETS_TO_BUILD:STRING=" + ";".join(targets)) - - if "+omp_tsan" in spec: - cmake_args.append("-DLIBOMP_TSAN_SUPPORT=ON") - else: - cmake_args.append("-DLIBOMP_TSAN_SUPPORT=OFF") - - if "+argobots" in spec: - cmake_args.extend( - [ - "-DLIBOMP_USE_ITT_NOTIFY=OFF", - "-DLIBOMP_USE_ARGOBOTS=ON", - "-DLIBOMP_ARGOBOTS_INSTALL_DIR=" + spec["argobots"].prefix, - ] - ) - else: - # LIBOMP_USE_ITT_NOTIFY should be set to a default value. - cmake_args.append("-DLIBOMP_USE_ARGOBOTS=OFF") - - if self.compiler.name == "gcc": - gcc_prefix = ancestor(self.compiler.cc, 2) - cmake_args.append("-DGCC_INSTALL_PREFIX=" + gcc_prefix) - - if spec.satisfies("platform=linux"): - cmake_args.append("-DCMAKE_BUILD_WITH_INSTALL_RPATH=1") - - return cmake_args - - @run_before("build") - def pre_install(self): - with working_dir(self.build_directory): - # When building shared libraries these need to be installed first - make("install-LLVMTableGen") - if self.spec.version >= Version("4.0.0"): - # LLVMDemangle target was added in 4.0.0 - make("install-LLVMDemangle") - make("install-LLVMSupport") - - @run_after("install") - def post_install(self): - if "+clang" in self.spec and "+python" in self.spec: - install_tree("tools/clang/bindings/python/clang", join_path(python_platlib, "clang")) - - with working_dir(self.build_directory): - install_tree("bin", self.prefix.libexec.llvm) diff --git a/repos/spack_repo/builtin/packages/solr/package.py b/repos/spack_repo/builtin/packages/solr/package.py index 646cee4c580..7b87d9d9281 100644 --- a/repos/spack_repo/builtin/packages/solr/package.py +++ b/repos/spack_repo/builtin/packages/solr/package.py @@ -22,20 +22,6 @@ class Solr(Package): version("9.7.0", sha256="38548b86fa4e3c87883875952da124bf7d742cb8f7b25d37a1176833588e8552") version("8.11.4", sha256="163fbdf246bbd78910bc36c3257ad50cdf31ccc3329a5ef885c23c9ef69e0ebe") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2024-45216 - version( - "8.11.3", sha256="178300ae095094c2060a1060cf475aa935f1202addfb5bacb38e8712ccb56455" - ) - version( - "8.11.2", sha256="54d6ebd392942f0798a60d50a910e26794b2c344ee97c2d9b50e678a7066d3a6" - ) - version("8.6.0", sha256="4519ccdb531619df770f1065db6adcedc052c7aa94b42806d541966550956aa5") - version("8.5.2", sha256="c457d6c7243241cad141e1df34c6f669d58a6c60e537f4217d032616dd066dcf") - version("8.5.1", sha256="47b68073b37bbcc0517a355ef722f20827c3f1416537ebbccf5239dda8064a0b") - version("8.5.0", sha256="9e54711ad0aa60e9723d2cdeb20cf0d21ee2ab9fa0048ec59dcb5f9d94dc61dd") - version("8.4.1", sha256="ec39e1e024b2e37405149de41e39e875a39bf11a53f506d07d96b47b8d2a4301") - version("7.7.3", sha256="3ec67fa430afa5b5eb43bb1cd4a659e56ee9f8541e0116d6080c0d783870baee") depends_on("java", type="run") diff --git a/repos/spack_repo/builtin/packages/sombrero/package.py b/repos/spack_repo/builtin/packages/sombrero/package.py index 0113a5168d4..6574f19a60e 100644 --- a/repos/spack_repo/builtin/packages/sombrero/package.py +++ b/repos/spack_repo/builtin/packages/sombrero/package.py @@ -27,13 +27,6 @@ class Sombrero(MakefilePackage): version( "2021-07-08", sha256="816b0f0a684a421fa620f11c21649ac162e85d1febd6a7e10cfd07604760c0d6" ) - # Version 1 is incompatible with spack - # as CFLAGS and the like are hardcoded in the makefile. - version( - "1.0", - sha256="423a631c86f0e5f14dea186228871099ca0374dc07bf1bb24b6be17f79784682", - deprecated=True, - ) depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/sos/package.py b/repos/spack_repo/builtin/packages/sos/package.py index 74f5d197f7f..dd54119f612 100644 --- a/repos/spack_repo/builtin/packages/sos/package.py +++ b/repos/spack_repo/builtin/packages/sos/package.py @@ -100,7 +100,7 @@ def autoreconf(self, spec, prefix): if spec.satisfies("@1.5.3:"): branch_name = "v" + branch_name try: - git = which("git") + git = which("git", required=True) git( "clone", "--depth", diff --git a/repos/spack_repo/builtin/packages/spack/package.py b/repos/spack_repo/builtin/packages/spack/package.py index 2af68303100..0235c042b68 100644 --- a/repos/spack_repo/builtin/packages/spack/package.py +++ b/repos/spack_repo/builtin/packages/spack/package.py @@ -65,10 +65,6 @@ class Spack(Package): # This should be read as "require at least curl", not "require curl". requires("fetchers=curl", when="@:0.16", msg="Curl is required for Spack < 0.17") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated - # Python depends_on("python@2.6.0:2.7,3.5:", type="run") depends_on("python@2.7.0:2.7,3.5:", type="run", when="@0.18.0:") diff --git a/repos/spack_repo/builtin/packages/spack_configs_dav_sdk/package.py b/repos/spack_repo/builtin/packages/spack_configs_dav_sdk/package.py index edc78172b00..478ebcbed43 100644 --- a/repos/spack_repo/builtin/packages/spack_configs_dav_sdk/package.py +++ b/repos/spack_repo/builtin/packages/spack_configs_dav_sdk/package.py @@ -19,6 +19,19 @@ class SpackConfigsDavSdk(CMakePackage): version("main", branch="main") + depends_on("spack-configs-facilities") + + variant( + "facility", + default="all", + description="Facility configs to install", + values=("all", "frontier"), + ) + + def cmake_args(self): + args = [self.define_from_variant("FACILITY", "facility")] + return args + def setup_run_environment(self, env: EnvironmentModifications) -> None: env.set("SPACK_CONFIG_DAV_SDK_DIR", self.prefix.spack.configs.davsdk) env.set("SPACK_CONFIG_DAV_SDK_ENVIRONMENTS_DIR", self.prefix.spack.environments.davsdk) diff --git a/repos/spack_repo/builtin/packages/spack_configs_facilities/package.py b/repos/spack_repo/builtin/packages/spack_configs_facilities/package.py new file mode 100644 index 00000000000..718e3e0dab4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/spack_configs_facilities/package.py @@ -0,0 +1,33 @@ +# 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 SpackConfigsFacilities(CMakePackage): + """Spack configs for DOE facilities.""" + + git = "https://github.com/e4s-project/facility-external-spack-configs.git" + + maintainers("eugeneswalker", "kwryankrattiger", "qtpowell", "vicentebolea") + + license("UNKNOWN") + + version("main", branch="master") + + variant( + "facility", + default="all", + description="Facility configs to install", + values=("all", "frontier", "perlmutter"), + ) + + def cmake_args(self): + args = [self.define_from_variant("FACILITY", "facility")] + return args + + def setup_run_environment(self, env: EnvironmentModifications) -> None: + env.set("SPACK_CONFIG_FACILITY_DIR", self.prefix.spack.configs.facilities) diff --git a/repos/spack_repo/builtin/packages/spack_configs_tools_sdk/package.py b/repos/spack_repo/builtin/packages/spack_configs_tools_sdk/package.py new file mode 100644 index 00000000000..25600980000 --- /dev/null +++ b/repos/spack_repo/builtin/packages/spack_configs_tools_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.cmake import CMakePackage + +from spack.package import * + + +class SpackConfigsToolsSdk(CMakePackage): + """Spack configs for the TOOLS SDK.""" + + homepage = "https://tools-integration.github.io/" + git = "https://github.com/tools-integration/tools-sdk.git" + + maintainers("kwryankrattiger", "qtpowell", "vicentebolea") + + license("Apache-2.0") + + version("main", branch="main") + + def setup_run_environment(self, env: EnvironmentModifications) -> None: + env.set("SPACK_CONFIG_TOOLS_SDK_DIR", self.prefix.spack.configs.toolssdk) + env.set("SPACK_CONFIG_TOOLS_SDK_ENVIRONMENTS_DIR", self.prefix.spack.environments.toolssdk) diff --git a/repos/spack_repo/builtin/packages/sparrow/package.py b/repos/spack_repo/builtin/packages/sparrow/package.py deleted file mode 100644 index e9b2d920a8e..00000000000 --- a/repos/spack_repo/builtin/packages/sparrow/package.py +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os - -from spack_repo.builtin.build_systems.cmake import CMakePackage - -from spack.package import * - - -class Sparrow(CMakePackage): - """Sparrow: fast semiempirical quantum chemical calculations. - - When publishing results obtained with Sparrow, please cite - the corresponding release as archived on Zenodo - (DOI 10.5281/zenodo.3244105; please use the DOI of the respective - release). - - In addition, we kindly request you to cite the following article - when using Sparrow: - - T. Husch, A. C. Vaucher, M. Reiher, "Semiempirical molecular orbital - models based on the neglect of diatomic differential overlap - approximation", Int. J. Quantum Chem., 2018, 118, e25799. - """ - - homepage = "https://scine.ethz.ch/" - url = "https://github.com/qcscine/sparrow/archive/refs/tags/3.0.0.tar.gz" - - maintainers("frobnitzem") - - version( - "3.0.0", - sha256="70636871694c9363ae3fb2df5050bddb22667b71d875d5a7e9afd872f6a2b65d", - deprecated=True, - ) - - depends_on("cxx", type="build") # generated - - resource( - name="dev", - url="https://github.com/qcscine/development-utils/archive/refs/tags/4.0.0.tar.gz", - sha256="54002c2082b6bb75672ec66bf9cf3935bbdf6b085ed9b4d7174cbdedb7c2275d", - destination="deps", - placement="dev", - ) - - depends_on("eigen@3.3.2:") - depends_on("boost+filesystem+program_options cxxstd=17 @1.65.0:") - depends_on("py-pybind11@2.6.2") - depends_on("py-pip", type="build") - depends_on("yaml-cpp") - depends_on("cereal") - depends_on("googletest") - - def patch(self): - os.rmdir("dev") - os.rename("deps/dev", "dev") - if self.spec.satisfies("platform=darwin"): - filter_file( - r"SparrowApp PROPERTIES OUTPUT_NAME sparrow", - 'SparrowApp PROPERTIES OUTPUT_NAME sparrow SUFFIX ".exe"', - "src/Sparrow/CMakeLists.txt", - ) - filter_file( - r"MAKE_CXX_STANDARD 14 PARENT_SCOPE", - "MAKE_CXX_STANDARD 17 PARENT_SCOPE", - "dev/cmake/ComponentSetup.cmake", - ) - - def cmake_args(self): - args = [ - self.define("SCINE_BUILD_PYTHON_BINDINGS", True), - self.define("SCINE_BUILD_TESTS", self.run_tests), - ] - - return args - - # Adapted from ddd in MacPorts: cmake will build the executable - # "sparrow" right next to the copy of the source directory "Sparrow". - # As HFS+ is case-insensitive by default this will loosely FAIL. - # Mitigate this by building/installing 'sparrowexe' - # on Darwin and fixing up post install. - @run_after("install") - def _rename_exe_on_darwin(self): - if self.spec.satisfies("platform=darwin"): - with working_dir(self.prefix.bin): - os.rename("sparrow.exe", "sparrow") diff --git a/repos/spack_repo/builtin/packages/spatialdata/package.py b/repos/spack_repo/builtin/packages/spatialdata/package.py index cf57efad452..24f62718337 100644 --- a/repos/spack_repo/builtin/packages/spatialdata/package.py +++ b/repos/spack_repo/builtin/packages/spatialdata/package.py @@ -29,7 +29,7 @@ class Spatialdata(AutotoolsPackage): license("MIT", checked_by="downloadico") - version("develop", branch="develop", submodules="true") + version("develop", branch="develop", submodules=True) version("3.1.0", sha256="dd6caccbf41a51928183d6a1caf2380aa0ed0f2c8c71ecc9b2cd9e3f23aa418c") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/spdlog/package.py b/repos/spack_repo/builtin/packages/spdlog/package.py index bd9acd1a18d..e8214cb4cd5 100644 --- a/repos/spack_repo/builtin/packages/spdlog/package.py +++ b/repos/spack_repo/builtin/packages/spdlog/package.py @@ -15,6 +15,8 @@ class Spdlog(CMakePackage): license("MIT") + version("1.16.0", sha256="8741753e488a78dd0d0024c980e1fb5b5c85888447e309d9cb9d949bdb52aa3e") + version("1.15.3", sha256="15a04e69c222eb6c01094b5c7ff8a249b36bb22788d72519646fb85feb267e67") version("1.15.2", sha256="7a80896357f3e8e920e85e92633b14ba0f229c506e6f978578bdc35ba09e9a5d") version("1.15.1", sha256="25c843860f039a1600f232c6eb9e01e6627f7d030a2ae5e232bdd3c9205d26cc") version("1.15.0", sha256="9962648c9b4f1a7bbc76fd8d9172555bad1871fdb14ff4f842ef87949682caa5") @@ -82,7 +84,16 @@ class Spdlog(CMakePackage): depends_on("fmt@11.0.2:11", when="@1.15.0") # https://github.com/gabime/spdlog/releases/tag/v1.15.1 - depends_on("fmt@11.1.3:11", when="@1.15.1:") + depends_on("fmt@11.1.3:11", when="@1.15.1") + + # https://github.com/gabime/spdlog/releases/tag/v1.15.2 + depends_on("fmt@11.1.4:11", when="@1.15.2") + + # https://github.com/gabime/spdlog/releases/tag/v1.15.3 + depends_on("fmt@11.2.0:11", when="@1.15.3") + + # https://github.com/gabime/spdlog/releases/tag/v1.16.0 + depends_on("fmt@12.0.0:12", when="@1.16.0:") # spdlog@1.11.0 with fmt@10 https://github.com/gabime/spdlog/pull/2694 patch( @@ -113,6 +124,13 @@ class Spdlog(CMakePackage): conflicts("^fmt@11.1:", when="@:1.12") + variant( + "cxxstd", + values=("11", "14", "17", "20"), + default="14", + description="C++ standard used during compilation", + ) + def cmake_args(self): args = [] @@ -121,6 +139,7 @@ def cmake_args(self): [ self.define_from_variant("SPDLOG_BUILD_SHARED", "shared"), self.define("SPDLOG_FMT_EXTERNAL", True), + self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"), # tests and examples self.define("SPDLOG_BUILD_TESTS", self.run_tests), self.define("SPDLOG_BUILD_EXAMPLE", self.run_tests), diff --git a/repos/spack_repo/builtin/packages/specfem3d_globe/0001-fix-compilation-flags.patch b/repos/spack_repo/builtin/packages/specfem3d_globe/0001-fix-compilation-flags.patch new file mode 100644 index 00000000000..86dd2f31af9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/specfem3d_globe/0001-fix-compilation-flags.patch @@ -0,0 +1,25 @@ +From 305cd5794a59ffc5e52c89fb3714530a142cc084 Mon Sep 17 00:00:00 2001 +From: Simon Pintarelli +Date: Wed, 14 Jan 2026 09:33:14 +0100 +Subject: [PATCH] fix compilation flags + +--- + flags.guess | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/flags.guess b/flags.guess +index 32aa9dc..5a676d8 100644 +--- a/flags.guess ++++ b/flags.guess +@@ -116,7 +116,7 @@ case $my_FC in + # with some versions of gfortran/gcc you make get errors about unused functions when compiling with the options below; + # if so, either change -Wunused to -Wunused -Werror=no-unused-function, or remove -Wunused, or remove -Werror + # +- DEF_FFLAGS="-std=gnu -fimplicit-none -fmax-errors=10 -pedantic -pedantic-errors -Waliasing -Wampersand -Wcharacter-truncation -Wline-truncation -Wsurprising -Wno-tabs -Wunderflow -ffpe-trap=invalid,zero,overflow -Wunused" # -mcmodel=medium ++ DEF_FFLAGS="-std=gnu -fimplicit-none -fmax-errors=10 -fallow-argument-mismatch -Waliasing -Wampersand -Wcharacter-truncation -Wline-truncation -Wsurprising -Wno-tabs -Wunderflow -ffpe-trap=invalid,zero,overflow -Wunused" # -mcmodel=medium + OPT_FFLAGS="-O3 -finline-functions" + DEBUG_FFLAGS="-g -O0 -ggdb -fbacktrace -fbounds-check -frange-check -Werror" + # useful to track loss of accuracy because of automatic double to single precision conversion: -Wconversion (this may generate many warnings...) +-- +2.35.3 + diff --git a/repos/spack_repo/builtin/packages/specfem3d_globe/package.py b/repos/spack_repo/builtin/packages/specfem3d_globe/package.py index 186088d9f0d..13aecc45713 100644 --- a/repos/spack_repo/builtin/packages/specfem3d_globe/package.py +++ b/repos/spack_repo/builtin/packages/specfem3d_globe/package.py @@ -18,6 +18,7 @@ class Specfem3dGlobe(AutotoolsPackage, CudaPackage): license("GPL-3.0-only") + version("8.1.0", sha256="6492d02067e78c549ee688488f39c1ec659f0468572ecd6753dbd40e08dc17f4") version("8.0.0", sha256="3e234e66fce4cc5484c651584187b255f951ee6cd1ec057e6aa6d42aced9052d") version("7.0.2", sha256="78b4cfbe4e5121927ab82a8c2e821b65cdfff3e94d017303bf21af7805186d9b") @@ -32,6 +33,10 @@ class Specfem3dGlobe(AutotoolsPackage, CudaPackage): depends_on("mpi") depends_on("opencl", when="+opencl") + # fix compilation error in MPI calls for gfortran, + # adding `-fallow-argument-mismatch` and remove `-pedantic` + patch("0001-fix-compilation-flags.patch", when="@8.1.0 %fortran=gcc") + # When building with the gcc compiler,'Werror' is added to FFLAGS. # In the case of using the gcc compiler and the default simulation # settings, there is the process which always causes @@ -44,13 +49,14 @@ class Specfem3dGlobe(AutotoolsPackage, CudaPackage): def configure_args(self): args = [] + spec = self.spec - if "+cuda" in self.spec: - args.append("--with-cuda") + if "+cuda" in spec: + args.append("--with-cuda=cuda{0}".format(spec["cuda"].version[0])) args.append("CUDA_LIB={0}".format(spec["cuda"].libs.directories[0])) args.append("CUDA_INC={0}".format(spec["cuda"].prefix.include)) args.append("MPI_INC={0}".format(spec["mpi"].prefix.include)) - if "+opencl" in self.spec: + if "+opencl" in spec: args.append("--with-opencl") args.append("OCL_LIB={0}".format(spec["opencl"].libs.directories[0])) args.append("OCL_INC={0}".format(spec["opencl"].prefix.include)) diff --git a/repos/spack_repo/builtin/packages/spectrum_mpi/package.py b/repos/spack_repo/builtin/packages/spectrum_mpi/package.py index 7ecdacf4aad..0f7119c9bc7 100644 --- a/repos/spack_repo/builtin/packages/spectrum_mpi/package.py +++ b/repos/spack_repo/builtin/packages/spectrum_mpi/package.py @@ -133,10 +133,13 @@ def setup_dependent_build_environment( env.set("MPIF90", os.path.join(self.prefix.bin, "mpif90")) dependent_module = dependent_spec.package.module - env.set("OMPI_CC", dependent_module.spack_cc) - env.set("OMPI_CXX", dependent_module.spack_cxx) - env.set("OMPI_FC", dependent_module.spack_fc) - env.set("OMPI_F77", dependent_module.spack_f77) + if dependent_spec.satisfies("^c"): + env.set("OMPI_CC", dependent_module.spack_cc) + if dependent_spec.satisfies("^cxx"): + env.set("OMPI_CXX", dependent_module.spack_cxx) + if dependent_spec.satisfies("^fortran"): + env.set("OMPI_FC", dependent_module.spack_fc) + env.set("OMPI_F77", dependent_module.spack_f77) env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib) def setup_run_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/spfft/package.py b/repos/spack_repo/builtin/packages/spfft/package.py index 0da7efdfed2..bb9f46e9d03 100644 --- a/repos/spack_repo/builtin/packages/spfft/package.py +++ b/repos/spack_repo/builtin/packages/spfft/package.py @@ -92,9 +92,9 @@ def cmake_args(self): self.define_from_variant("SPFFT_STATIC", "static"), self.define("SPFFT_FFTW_LIB", "FFTW"), self.define("FFTW_INCLUDE_DIRS", spec["fftw-api"].prefix.include), - self.define("FFTWF_INCLUDE_DIRS", spec["fftw-api"].prefix.include), + self.define("FFTWF_INCLUDE_DIRS", spec["fftw-api:float"].prefix.include), self.define("FFTW_LIBRARIES", spec["fftw-api"].libs.ld_flags), - self.define("FFTWF_LIBRARIES", spec["fftw-api"].libs.ld_flags), + self.define("FFTWF_LIBRARIES", spec["fftw-api:float"].libs.ld_flags), ] if spec.satisfies("+cuda"): diff --git a/repos/spack_repo/builtin/packages/spglib/package.py b/repos/spack_repo/builtin/packages/spglib/package.py index 249b7b56aa1..4d85c47c11e 100644 --- a/repos/spack_repo/builtin/packages/spglib/package.py +++ b/repos/spack_repo/builtin/packages/spglib/package.py @@ -13,7 +13,7 @@ class Spglib(CMakePackage): homepage = "https://spglib.readthedocs.io/" url = "https://github.com/spglib/spglib/archive/v2.0.2.tar.gz" - maintainers("RMeli") + maintainers("RMeli", "mkrack") patch("fix_cmake_install.patch", when="@:1.10.3") # patch by Krishnendu Ghosh @@ -21,6 +21,8 @@ class Spglib(CMakePackage): license("BSD-3-Clause") + version("2.7.0", sha256="b22fc9abae9716c574fbc6d55cfc53ed654a714fccc5657a26ff5d18114bd8bd") + version("2.6.0", sha256="c65af71136c915352eb82444b165ec83289877eb8e46593033f199801b43dbf7") version("2.5.0", sha256="b6026f5e85106c0c9ee57e54b9399890d0f29982e20e96ede0428b3efbe6b914") version("2.4.0", sha256="e33694b189c6864f719a59c31e2af55301a524fb68ba9fb65f08e95af471847d") version("2.3.1", sha256="c295dbea7d2fc9e50639aa14331fef277878c35f00ef0766e688bfbb7b17d44c") @@ -61,6 +63,7 @@ class Spglib(CMakePackage): variant("openmp", default=True, description="Build with OpenMP support", when="@1.16.2:") variant("fortran", default=True, description="Build Fortran interface", when="@1.16.4:") + variant("shared", default=True, description="Build shared libraries", when="@2.1.0:") variant("tests", default=False, description="Build with tests", when="@2.1.0:") depends_on("cmake@3.15:", type="build", when="@2.1.0:") @@ -73,6 +76,7 @@ def libs(self): def cmake_args(self): pfx = "SPGLIB_" if self.spec.satisfies("@2.1.0:") else "" return [ + self.define_from_variant(pfx + "SHARED_LIBS", "shared"), self.define_from_variant(pfx + "USE_OMP", "openmp"), self.define_from_variant(pfx + "WITH_Fortran", "fortran"), self.define_from_variant(pfx + "WITH_TESTS", "tests"), diff --git a/repos/spack_repo/builtin/packages/spherepack/package.py b/repos/spack_repo/builtin/packages/spherepack/package.py index e0ac6f04936..153bb1ca6be 100644 --- a/repos/spack_repo/builtin/packages/spherepack/package.py +++ b/repos/spack_repo/builtin/packages/spherepack/package.py @@ -19,7 +19,16 @@ class Spherepack(Package): depends_on("fortran", type="build") depends_on("gmake", type="build") + def flag_handler(self, name, flags): + spec = self.spec + + if name == "fflags": + if spec.satisfies("%fortran=gcc@10:"): + flags.append("-fallow-argument-mismatch") + + return (flags, None, None) + def install(self, spec, prefix): - make("MAKE=make", "F90=f90 -O2 -fallow-argument-mismatch", "AR=ar", "libspherepack") - make("MAKE=make", "F90=f90 -O2 -fallow-argument-mismatch", "AR=ar", "testspherepack") + make("MAKE=make", "F90=f90", "AR=ar", "libspherepack") + make("MAKE=make", "F90=f90", "AR=ar", "testspherepack") install_tree("lib", prefix.lib) diff --git a/repos/spack_repo/builtin/packages/sphexa/package.py b/repos/spack_repo/builtin/packages/sphexa/package.py index b02396fe122..53104457437 100644 --- a/repos/spack_repo/builtin/packages/sphexa/package.py +++ b/repos/spack_repo/builtin/packages/sphexa/package.py @@ -20,6 +20,7 @@ class Sphexa(CMakePackage, CudaPackage, ROCmPackage): license("MIT") + version("0.95", sha256="1007ffa97eb2085d50173676ec5e6387d1da7a8b78f204308223fbdbbecc60a1") version("0.93.1", sha256="95a93d0063ac8857b9be12c1aca24f5b2eef9dd4ffe8cf3f6b552a4dd54b940f") version("develop", branch="develop") @@ -27,25 +28,29 @@ class Sphexa(CMakePackage, CudaPackage, ROCmPackage): variant("gpu_aware_mpi", default=True, description="GPU aware MPI") depends_on("cmake@3.22:", type="build") + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("mpi") - depends_on("cuda@11.2:", when="+cuda") + depends_on("cuda@12:", when="@0.95: +cuda") + depends_on("cuda@11.2:", when="@0.93: +cuda") depends_on("hip", when="+rocm") depends_on("rocthrust", when="+rocm") depends_on("hipcub", when="+rocm") depends_on("hdf5 +mpi", when="+hdf5") + depends_on("h5hut@master", when="@0.95: +hdf5") # Build MPI with GPU support when GPU aware MPI is requested. # For cray-mpich, the user is responsible to configure it for GPU aware MPI. with when("+gpu_aware_mpi"): depends_on("openmpi +cuda", when="+cuda ^[virtuals=mpi] openmpi") depends_on("mpich +cuda", when="+cuda ^[virtuals=mpi] mpich") - depends_on("mvapich +cuda", when="+cuda ^[virtuals=mpi] mvapich") - depends_on("mvapich2 +cuda", when="+cuda ^[virtuals=mpi] mvapich2") + depends_on("mvapich-plus +cuda", when="+cuda ^[virtuals=mpi] mvapich-plus") depends_on("mpich +rocm", when="+rocm ^[virtuals=mpi] mpich") - conflicts("%gcc@:10") + conflicts("%gcc@:11", when="@0.95:") + conflicts("%gcc@:10", when="@:0.93.1") conflicts("cuda_arch=none", when="+cuda", msg="CUDA architecture is required") conflicts("amdgpu_target=none", when="+rocm", msg="HIP architecture is required") conflicts("+cuda", when="+rocm", msg="CUDA and HIP cannot both be enabled") @@ -53,8 +58,12 @@ class Sphexa(CMakePackage, CudaPackage, ROCmPackage): def cmake_args(self): spec = self.spec + hdf5lib = "H5HUT" + if self.spec.satisfies("@:0.94"): + hdf5lib = "H5PART" + args = [ - self.define_from_variant("SPH_EXA_WITH_H5PART", "hdf5"), + self.define_from_variant("SPH_EXA_WITH_" + hdf5lib, "hdf5"), self.define_from_variant("SPH_EXA_WITH_CUDA", "cuda"), self.define_from_variant("RYOANJI_WITH_CUDA", "cuda"), self.define_from_variant("CSTONE_WITH_CUDA", "cuda"), diff --git a/repos/spack_repo/builtin/packages/spiner/package.py b/repos/spack_repo/builtin/packages/spiner/package.py index 6b4553b8b1d..f79163f196f 100644 --- a/repos/spack_repo/builtin/packages/spiner/package.py +++ b/repos/spack_repo/builtin/packages/spiner/package.py @@ -12,7 +12,7 @@ class Spiner(CMakePackage): Performance portable routines for generic, tabulated, multi-dimensional data""" homepage = "https://github.com/lanl/spiner" - url = "https://github.com/lanl/spiner/archive/refs/tags/1.4.0.tar.gz" + url = "https://github.com/lanl/spiner/archive/refs/tags/v1.7.0.tar.gz" git = "https://github.com/lanl/spiner.git" maintainers("rbberger") @@ -20,25 +20,18 @@ class Spiner(CMakePackage): license("BSD-3-Clause") version("main", branch="main") + version("1.7.0", sha256="effe6844fd895c4790eeebcb3f3bc7b3d4a7380554acfcc528d8d8296e88a9ba") + version("1.6.4", sha256="a51de69e438f5e3893958736d246c41ca87fd6442ee1e0a9cc5d442861ac5404") version("1.6.3", sha256="f78c50e0b4d7c4fd3f380432f12a528941e2bee5171d6f200e9a52bbcea940e9") version("1.6.2", sha256="91fb403ce3b151fbdf8b6ff5aed0d8dde1177749f5633951027b100ebc7080d3") version("1.6.1", sha256="52774322571d3b9b0dc3c6b255257de9af0e8e6170834360f2252c1ac272cbe7") version("1.6.0", sha256="afa5526d87c78c1165ead06c09c5c2b9e4a913687443e5adff7b709ea4dd7edf") - version( - "1.5.1", - sha256="dd1cada84446443e8925438b8da53ab5a6cb9f373f1a993905ef0bf51f48223c", - deprecated=True, - ) - version( - "1.5.0", - sha256="b27ddabc0d21870b845444c24307d3a0c1b175483e72cc138139d6e0dd29b244", - deprecated=True, - ) - version( - "1.4.0", - sha256="c3801b9eab26feabec33ff8c59e4056f384287f407d23faba010d354766f3ac5", - deprecated=True, - ) + + def url_for_version(self, version): + if version < Version("1.7"): + return f"https://github.com/lanl/spiner/archive/refs/tags/{version}.tar.gz" + else: + return f"https://github.com/lanl/spiner/archive/refs/tags/v{version}.tar.gz" # When overriding/overloading varaints, the last variant is always used, except for # "when" clauses. Therefore, call the whens FIRST then the non-whens. @@ -50,20 +43,16 @@ class Spiner(CMakePackage): variant("python", default=False, description="Python, Numpy & Matplotlib Support") - depends_on("c", type="build") # todo: disable cmake default? + depends_on("c", type="build") depends_on("cxx", type="build") - depends_on("cmake@3.12:", when="@:1.5.1", type="build") depends_on("cmake@3.23:", when="@1.6.0:", type="build") depends_on("catch2@3.7.1:", when="@1.6.3:", type="test") depends_on("catch2@2.13.4:2.13.9", type="test") - depends_on("ports-of-call@1.2.0:", when="@:1.5.1") depends_on("ports-of-call@1.5.1:", when="@1.6.0:") + depends_on("ports-of-call@2.0.0:", when="@1.7.0:") depends_on("ports-of-call@main", when="@main") - # Currently the raw cuda backend of ports-of-call is not supported. - depends_on("ports-of-call portability_strategy=Kokkos", when="@:1.5.1 +kokkos") - depends_on("ports-of-call portability_strategy=None", when="@:1.5.1 ~kokkos") depends_on("kokkos@3.3.00:", when="+kokkos") requires("^kokkos+cuda_lambda+cuda_constexpr", when="+kokkos ^kokkos+cuda") @@ -77,10 +66,7 @@ class Spiner(CMakePackage): conflicts("+mpi", when="~hdf5") def cmake_args(self): - if self.spec.satisfies("@1.6.0:"): - use_kokkos_option = "SPINER_TEST_USE_KOKKOS" - else: - use_kokkos_option = "SPINER_USE_KOKKOS" + use_kokkos_option = "SPINER_TEST_USE_KOKKOS" args = [ self.define("BUILD_TESTING", self.run_tests), diff --git a/repos/spack_repo/builtin/packages/spm/package.py b/repos/spack_repo/builtin/packages/spm/package.py index bb695976b3b..c3b0ed6e274 100644 --- a/repos/spack_repo/builtin/packages/spm/package.py +++ b/repos/spack_repo/builtin/packages/spm/package.py @@ -27,10 +27,10 @@ class Spm(Package): depends_on("matlab", type="run") def install(self, spec, prefix): - unzip = which("unzip") + unzip = which("unzip", required=True) unzip("spm12.ctf") - bash = which("bash") + bash = which("bash", required=True) bash("./run_spm12.sh") install_tree("spm12", prefix) diff --git a/repos/spack_repo/builtin/packages/sprng/package.py b/repos/spack_repo/builtin/packages/sprng/package.py index f4460a31732..7301fe72516 100644 --- a/repos/spack_repo/builtin/packages/sprng/package.py +++ b/repos/spack_repo/builtin/packages/sprng/package.py @@ -2,7 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack.package import * @@ -60,7 +59,7 @@ def mpicxx_check(self): raise RuntimeError(msg) if "+fortran" in self.spec: if "fmpi" not in self.spec["fortran"].libs.names: - msg = "SPRNG requires fortran mpi " "libraries with mpi enabled" + msg = "SPRNG requires fortran mpi libraries with mpi enabled" raise RuntimeError(msg) # raise RuntimeError("test") @@ -147,4 +146,4 @@ def listisclose(a, b, rel_tol=1e-09, abs_tol=1.0e-20): raise RuntimeError("sprng install check failed") else: print("test passed") - shutil.rmtree(checkdir) + rmtree(checkdir) diff --git a/repos/spack_repo/builtin/packages/sqlcipher/package.py b/repos/spack_repo/builtin/packages/sqlcipher/package.py index f3769a1ed08..ce246027d58 100644 --- a/repos/spack_repo/builtin/packages/sqlcipher/package.py +++ b/repos/spack_repo/builtin/packages/sqlcipher/package.py @@ -20,23 +20,12 @@ class Sqlcipher(AutotoolsPackage): license("BSD-3-Clause") version("4.6.1", sha256="d8f9afcbc2f4b55e316ca4ada4425daf3d0b4aab25f45e11a802ae422b9f53a3") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2021-3119 - version("4.4.1", sha256="a36ed7c879a5e9af1054942201c75fc56f1db22e46bf6c2bbae3975dfeb6782d") - version("4.4.0", sha256="0924b2ae1079717954498bda78a30de20ce2a6083076b16214a711567821d148") - version("4.3.0", sha256="fccb37e440ada898902b294d02cde7af9e8706b185d77ed9f6f4d5b18b4c305f") - version("4.2.0", sha256="105c1b813f848da038c03647a8bfc9d42fb46865e6aaf4edfd46ff3b18cdccfc") - version("4.1.0", sha256="65144ca3ba4c0f9cd4bae8c20bb42f2b84424bf29d1ebcf04c44a728903b1faa") - version("4.0.1", sha256="2f803017378c7479cb791be59b7bad8392a15acddbcc094e4433581fe421f4ca") - version("4.0.0", sha256="c8f5fc6d800aae6107bf23900144804db5510c2676c93fbb269e4a0700837d68") - # strictly, 3.4.2 is not affected by any CVEs - version("3.4.2", sha256="69897a5167f34e8a84c7069f1b283aba88cdfa8ec183165c4a5da2c816cfaadb") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("openssl") - depends_on("tcl", type=["build"]) + depends_on("tcl", type="build") depends_on("zlib-api") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/sqlite/package.py b/repos/spack_repo/builtin/packages/sqlite/package.py index 9bc20b1b9a4..cc604e534ed 100644 --- a/repos/spack_repo/builtin/packages/sqlite/package.py +++ b/repos/spack_repo/builtin/packages/sqlite/package.py @@ -25,6 +25,10 @@ class Sqlite(AutotoolsPackage, NMakePackage): license("blessing") + version("3.53.1", sha256="83e6b2020a034e9a7ad4a72feea59e1ad52f162e09cbd26735a3ffb98359fc4f") + version("3.51.2", sha256="fbd89f866b1403bb66a143065440089dd76100f2238314d92274a082d4f2b7bb") + version("3.50.4", sha256="a3db587a1b92ee5ddac2f66b3edb41b26f9c867275782d46c3a088977d6a5b18") + version("3.50.2", sha256="84a616ffd31738e4590b65babb3a9e1ef9370f3638e36db220ee0e73f8ad2156") version("3.46.0", sha256="6f8e6a7b335273748816f9b3b62bbdc372a889de8782d7f048c653a447417a7d") version("3.45.3", sha256="b2809ca53124c19c60f42bf627736eae011afdcc205bb48270a5ee9a38191531") version("3.45.1", sha256="cd9c27841b7a5932c9897651e20b86c701dd740556989b01ca596fcfa3d49a0a") @@ -72,7 +76,7 @@ class Sqlite(AutotoolsPackage, NMakePackage): "dynamic_extensions", default=True, description="Support loadable extensions", - when=f"platform={plat}", + when=f"@:3.48 platform={plat}", ) depends_on("readline", when=f"platform={plat}") @@ -162,7 +166,7 @@ def get_variant(name, has_variant): # check for fts def query_fts(version): - return "CREATE VIRTUAL TABLE name " "USING fts{:d}(sender, title, body);".format( + return "CREATE VIRTUAL TABLE name USING fts{:d}(sender, title, body);".format( version ) @@ -192,7 +196,11 @@ def url_for_version(self, version): raise ValueError(f"Unsupported sqlite version: {version}") # See https://www.sqlite.org/chronology.html for version -> year # correspondence. - if version >= Version("3.45.0"): + if version >= Version("3.51.2"): + year = "2026" + elif version >= Version("3.48.0"): + year = "2025" + elif version >= Version("3.45.0"): year = "2024" elif version >= Version("3.41.0"): year = "2023" @@ -232,7 +240,7 @@ def test_example(self): db_filename = test_data_dir.join("packages.db") # Ensure the database only contains one table - sqlite3 = which(self.prefix.bin.sqlite3) + sqlite3 = which(self.prefix.bin.sqlite3, required=True) out = sqlite3(db_filename, ".tables", output=str.split, error=str.split) assert "packages" in out diff --git a/repos/spack_repo/builtin/packages/squashfs/gcc-10.patch b/repos/spack_repo/builtin/packages/squashfs/gcc-10.patch deleted file mode 100644 index e7f4a721c75..00000000000 --- a/repos/spack_repo/builtin/packages/squashfs/gcc-10.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/squashfs-tools/mksquashfs.h b/squashfs-tools/mksquashfs.h -index 1beefef7..b6503063 100644 ---- a/squashfs-tools/mksquashfs.h -+++ b/squashfs-tools/mksquashfs.h -@@ -143,7 +143,7 @@ struct append_file { - #endif - - extern struct cache *reader_buffer, *fragment_buffer, *reserve_cache; --struct cache *bwriter_buffer, *fwriter_buffer; -+extern struct cache *bwriter_buffer, *fwriter_buffer; - extern struct queue *to_reader, *to_deflate, *to_writer, *from_writer, - *to_frag, *locked_fragment, *to_process_frag; - extern struct append_file **file_mapping; diff --git a/repos/spack_repo/builtin/packages/squashfs/package.py b/repos/spack_repo/builtin/packages/squashfs/package.py index 2c8e7320329..56e45ba1e87 100644 --- a/repos/spack_repo/builtin/packages/squashfs/package.py +++ b/repos/spack_repo/builtin/packages/squashfs/package.py @@ -22,36 +22,6 @@ class Squashfs(MakefilePackage): sha256="277b6e7f75a4a57f72191295ae62766a10d627a4f5e5f19eadfbc861378deea7", url="https://downloads.sourceforge.net/project/squashfs/squashfs/squashfs4.5.1/squashfs-tools-4.5.1.tar.gz", ) - version( - "4.5", - sha256="c493b29c3d152789d04fae5e6532499d96ce3f79256bc6df4f97b5170c88e979", - deprecated=True, - ) - version( - "4.4", - sha256="a981b3f3f2054b5a2e658851a3c06a2460ad04a9a8a645e0afe063a63fdbb07e", - deprecated=True, - ) - version( - "4.3", - sha256="0d605512437b1eb800b4736791559295ee5f60177e102e4d4ccd0ee241a5f3f6", - deprecated=True, - ) - version( - "4.2", - sha256="d9e0195aa922dbb665ed322b9aaa96e04a476ee650f39bbeadb0d00b24022e96", - deprecated=True, - ) - version( - "4.1", - sha256="3a870d065a25b3f5467bc6d9ed34340befab51a3f9e4b7e3792ea0ff4e06046a", - deprecated=True, - ) - version( - "4.0", - sha256="18948edbe06bac2c4307eea99bfb962643e4b82e5b7edd541b4d743748e12e21", - deprecated=True, - ) variant("gzip", default=True, description="Enable gzip compression support") variant("lz4", default=False, description="Enable LZ4 compression support") @@ -100,11 +70,6 @@ class Squashfs(MakefilePackage): depends_on("zstd", when="+zstd") depends_on("zstd libs=static", when="+zstd +static") - # patch from - # https://github.com/plougher/squashfs-tools/commit/fe2f5da4b0f8994169c53e84b7cb8a0feefc97b5.patch - patch("gcc-10.patch", when="@:4.4 %gcc@10:") - patch("gcc-10.patch", when="@:4.4 %clang@11:") - def make_options(self, spec): default = spec.variants["default_compression"].value return [ @@ -124,9 +89,6 @@ def build(self, spec, prefix): def install(self, spec, prefix): options = self.make_options(spec) - if "@4.5.1:" in spec: - prefix_arg = "INSTALL_PREFIX={}".format(prefix) - else: - prefix_arg = "INSTALL_DIR={}".format(prefix.bin) + prefix_arg = "INSTALL_PREFIX={}".format(prefix) with working_dir("squashfs-tools"): make("install", prefix_arg, *options) diff --git a/repos/spack_repo/builtin/packages/squashfuse/package.py b/repos/spack_repo/builtin/packages/squashfuse/package.py index 604b09d96a3..2abbe26a903 100644 --- a/repos/spack_repo/builtin/packages/squashfuse/package.py +++ b/repos/spack_repo/builtin/packages/squashfuse/package.py @@ -19,6 +19,8 @@ class Squashfuse(AutotoolsPackage): license("BSD-2-Clause") version("master", branch="master") + version("0.6.1", sha256="7b18a58c40a3161b5c329ae925b72336b5316941f906b446b8ed6c5a90989f8c") + version("0.6.0", sha256="56ff48814d3a083fad0ef427742bc95c9754d1ddaf9b08a990d4e26969f8eeeb") version("0.5.2", sha256="54e4baaa20796e86a214a1f62bab07c7c361fb7a598375576d585712691178f5") version("0.5.1", sha256="4dd81ea10323078193e5435ad8481b59f3ac8539648ddc732bcaea50b13966c9") version("0.5.0", sha256="d7602c7a3b1d0512764547d27cb8cc99d1b21181e1c9819e76461ee96c2ab4d9") @@ -35,7 +37,6 @@ class Squashfuse(AutotoolsPackage): variant("shared", default=True, description="Enable shared libraries") variant("static", default=True, description="Enable static libraries") variant("min_size", default=False, description="Build small binaries") - variant("zlib", default=True, description="Enable zlib/gzip compression support") variant("lz4", default=True, description="Enable LZ4 compression support") variant("lzo", default=True, description="Enable LZO compression support") diff --git a/repos/spack_repo/builtin/packages/sra_tools/package.py b/repos/spack_repo/builtin/packages/sra_tools/package.py index 292135b069e..4cc9a533906 100644 --- a/repos/spack_repo/builtin/packages/sra_tools/package.py +++ b/repos/spack_repo/builtin/packages/sra_tools/package.py @@ -14,6 +14,7 @@ class SraTools(CMakePackage): homepage = "https://github.com/ncbi/sra-tools" git = "https://github.com/ncbi/sra-tools.git" + version("3.3.0", tag="3.3.0", commit="a7fff20b1a8c1dcf1586dd1a32460b9d2dfb9392") version("3.0.3", tag="3.0.3", commit="01f0aa21bb20b84c68ea34404d43da680811e27a") version("3.0.0", tag="3.0.0", commit="bd2053a1049e64207e75f4395fd1be7f1572a5aa") @@ -25,15 +26,26 @@ class SraTools(CMakePackage): depends_on("libxml2") depends_on("ncbi-vdb") depends_on("ncbi-vdb@3.0.2:", when="@3.0.3:") + depends_on("ncbi-vdb@3.3.0:", when="@3.3.0:") + + variant("internal", default=False, description="Build internal tools", when="@3.0.1:") + variant("loaders", default=False, description="Build loaders", when="@3.0.1:") + variant("test", default=False, description="Build test tools", when="@3.0.1:") # The CMakeLists.txt file set the path to ${TARGDIR}/obj but the code # actually uses ${TARGDIR}. - patch("ngs-java.patch") + patch("ngs-java.patch", when="@:3.0.3") + + # Escape CMAKE_PREFIX_PATH, allow compilation w/o ncbi-vdb being in same directory + patch("path.patch", when="@3.1.1:") def cmake_args(self): args = [ self.define("VDB_INCDIR", format(self.spec["ncbi-vdb"].prefix) + "/include"), self.define("VDB_LIBDIR", format(self.spec["ncbi-vdb"].prefix) + "/lib64"), self.define("VDB_BINDIR", format(self.spec["ncbi-vdb"].prefix)), + self.define_from_variant("BUILD_TOOLS_INTERNAL", "internal"), + self.define_from_variant("BUILD_TOOLS_LOADERS", "loaders"), + self.define_from_variant("BUILD_TOOLS_TEST_TOOLS", "test"), ] return args diff --git a/repos/spack_repo/builtin/packages/sra_tools/path.patch b/repos/spack_repo/builtin/packages/sra_tools/path.patch new file mode 100644 index 00000000000..fbdf718ce91 --- /dev/null +++ b/repos/spack_repo/builtin/packages/sra_tools/path.patch @@ -0,0 +1,30 @@ +diff --git a/tools/external/driver-tool/CMakeLists.txt b/tools/external/driver-tool/CMakeLists.txt +index 1baf97e7..75d0c912 100644 +--- a/tools/external/driver-tool/CMakeLists.txt ++++ b/tools/external/driver-tool/CMakeLists.txt +@@ -109,7 +109,11 @@ if( WIN32 ) + Ws2_32 Crypt32 ShLwApi PathCch + ) + else() +- list(APPEND compile_defs PREFIX_PATH="${CMAKE_PREFIX_PATH}" BUILD_PATH="${BINDIR}") ++ string(REPLACE ";" ":" ESCAPED_PREFIX_PATH "${CMAKE_PREFIX_PATH}") ++ list(APPEND compile_defs ++ PREFIX_PATH="${ESCAPED_PREFIX_PATH}" ++ BUILD_PATH="${BINDIR}" ++ ) + endif() + + GenerateExecutableWithDefs(sratools "${sources}" "${compile_defs}" "" "${link_libs}") +diff --git a/tools/loaders/sharq/version.h b/tools/loaders/sharq/version.h +index 145ccac3..de685271 100644 +--- a/tools/loaders/sharq/version.h ++++ b/tools/loaders/sharq/version.h +@@ -18,6 +18,7 @@ + #define SHARQ_VERSION ( to_string(TOOLKIT_VERS >> 24) + "." + to_string((TOOLKIT_VERS >> 16) & 0x00ff) + "." + to_string(TOOLKIT_VERS & 0xffff) ) + + #include +-#include <../libs/kapp/version-hash.h> //TODO: relocate to sra-tools/kapp ++#define HASH_NCBI_VDB "" ++#define HASH_SRA_TOOLS "" + + #endif diff --git a/repos/spack_repo/builtin/packages/sratoolkit/package.py b/repos/spack_repo/builtin/packages/sratoolkit/package.py index 68d2e010a24..eae718effe1 100644 --- a/repos/spack_repo/builtin/packages/sratoolkit/package.py +++ b/repos/spack_repo/builtin/packages/sratoolkit/package.py @@ -17,6 +17,7 @@ class Sratoolkit(Package): maintainers("robqiao") + version("3.4.1", sha256="f4850a32975596ca0755d928b166ecb0095918284ea992fba10f1acb3fcff64d") version("3.0.0", sha256="89d11fc284e32d38b6639c551df6d658075cd268913f8ba2af65026e4a161dfe") version("2.10.9", sha256="2c849b4b9865737ff17732e3befa70718616ce31cac98e8a61b1c5ed5a6514c5") version("2.10.7", sha256="b3f319974f0c7a318554d6383a13dd30f7d447533d92b6fd3bd057d3524e0140") @@ -24,6 +25,14 @@ class Sratoolkit(Package): version("2.9.2", sha256="17dbe13aa1ed7955d31e1e76e8b62786e80a77e9ed9d396631162dc3ad8b716d") version("2.8.2-1", sha256="b053061aae7c6d00162fe0f514be4128a60365b4b2b5b36e7f4798b348b55cf5") + def url_for_version(self, version): + url = "https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/{0}/sratoolkit.{0}-{1}_linux64.tar.gz" + if version <= Version("3.0.0"): + dist = "centos" + else: + dist = "alma" + return url.format(version, dist) + def install(self, spec, prefix): install_tree("bin", prefix.bin, symlinks=True) install_tree("example", prefix.example) diff --git a/repos/spack_repo/builtin/packages/srilm/package.py b/repos/spack_repo/builtin/packages/srilm/package.py index b4556106f89..b90559ef142 100644 --- a/repos/spack_repo/builtin/packages/srilm/package.py +++ b/repos/spack_repo/builtin/packages/srilm/package.py @@ -46,8 +46,8 @@ def edit(self, spec, prefix): makefile.filter(r"# SRILM\s*=.*", "SRILM = {0}".format(self.build_directory)) makefile_common = FileFilter("common/Makefile.common.variables") - makefile_common.filter(r"GAWK\s*=.*", "GAWK = {0}".format(which("gawk"))) - makefile_common.filter(r"PERL\s*=.*", "PERL = {0}".format(which("perl"))) + makefile_common.filter(r"GAWK\s*=.*", "GAWK = {0}".format(which("gawk", required=True))) + makefile_common.filter(r"PERL\s*=.*", "PERL = {0}".format(which("perl", required=True))) makefile_common.filter( r"PIC_FLAG\s*=.*", "PIC_FLAG = {0}".format(self.compiler.cc_pic_flag) ) diff --git a/repos/spack_repo/builtin/packages/ssht/float_conversion.patch b/repos/spack_repo/builtin/packages/ssht/float_conversion.patch deleted file mode 100644 index af81bcafd85..00000000000 --- a/repos/spack_repo/builtin/packages/ssht/float_conversion.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- spack-src/src/c/ssht_sampling.h -+++ spack-src/src/c/ssht_sampling.h -@@ -89,7 +89,7 @@ - */ - static inline void ssht_sampling_ind2elm(int *el, int *m, int ind) { - -- *el = sqrt(ind); -+ *el = lrint(floor(sqrt(ind))); - *m = ind - (*el)*(*el) - (*el); - - } diff --git a/repos/spack_repo/builtin/packages/sst_core/package.py b/repos/spack_repo/builtin/packages/sst_core/package.py index ebbac628111..f37fd3bf36d 100644 --- a/repos/spack_repo/builtin/packages/sst_core/package.py +++ b/repos/spack_repo/builtin/packages/sst_core/package.py @@ -15,12 +15,16 @@ class SstCore(AutotoolsPackage): homepage = "https://github.com/sstsimulator" git = "https://github.com/sstsimulator/sst-core.git" - url = "https://github.com/sstsimulator/sst-core/releases/download/v15.0.0_Final/sstcore-15.0.0.tar.gz" + url = "https://github.com/sstsimulator/sst-core/releases/download/v15.1.0_Final/sstcore-15.1.0.tar.gz" maintainers("berquist", "jmlapre", "naromero77") 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") version("15.0.0", sha256="ca2875fb36be069e34b10fd9b0ad756dd4c707795f824346aff9523a56f3840c") version("14.1.0", sha256="9d17c37d1ebdff8d8eb10ab0084eb901c78a7c5a76db15189e3d7fc318fd6f9d") version("14.0.0", sha256="fadc7ee99472ff3ac5d4b3f3e507123e32bd9fb89c4c6b48fbd2dca8aeb8b8d6") @@ -84,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") @@ -93,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") @@ -102,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" @@ -110,7 +118,7 @@ class SstCore(AutotoolsPackage): # that cannot be easily circumvented with `touch`. @when("@develop,master,14.0.0") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("autogen.sh") def configure_args(self): @@ -126,10 +134,6 @@ def configure_args(self): if self.spec.satisfies("+pdes_mpi"): args.append("--enable-mpi") - env["CC"] = self.spec["mpi"].mpicc - env["CXX"] = self.spec["mpi"].mpicxx - env["F77"] = self.spec["mpi"].mpif77 - env["FC"] = self.spec["mpi"].mpifc else: args.append("--disable-mpi") diff --git a/repos/spack_repo/builtin/packages/sst_elements/package.py b/repos/spack_repo/builtin/packages/sst_elements/package.py index 2888ef35ffe..1aad92036fa 100644 --- a/repos/spack_repo/builtin/packages/sst_elements/package.py +++ b/repos/spack_repo/builtin/packages/sst_elements/package.py @@ -15,12 +15,14 @@ class SstElements(AutotoolsPackage): homepage = "https://github.com/sstsimulator" git = "https://github.com/sstsimulator/sst-elements.git" - url = "https://github.com/sstsimulator/sst-elements/releases/download/v15.0.0_Final/sstelements-15.0.0.tar.gz" + url = "https://github.com/sstsimulator/sst-elements/releases/download/v15.1.0_Final/sstelements-15.1.0.tar.gz" maintainers("berquist", "jmlapre", "naromero77") 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") version("14.0.0", sha256="68eab77febdd0138a497249d854e1cb0c3a67b1c56c4d51f1fe35df12dcd1b9c") @@ -64,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") @@ -93,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)) @@ -112,12 +113,16 @@ 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" @when("@develop,master") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("autogen.sh") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/sst_macro/package.py b/repos/spack_repo/builtin/packages/sst_macro/package.py index d016616cb67..adc5c585de1 100644 --- a/repos/spack_repo/builtin/packages/sst_macro/package.py +++ b/repos/spack_repo/builtin/packages/sst_macro/package.py @@ -18,10 +18,12 @@ class SstMacro(AutotoolsPackage): homepage = "https://github.com/sstsimulator" git = "https://github.com/sstsimulator/sst-macro.git" - url = "https://github.com/sstsimulator/sst-macro/releases/download/v15.0.0_Final/sstmacro-15.0.0.tar.gz" + url = "https://github.com/sstsimulator/sst-macro/releases/download/v15.1.0_Final/sstmacro-15.1.0.tar.gz" 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") version("14.0.0", sha256="3962942268dd9fe6ebd4462e2d6d305ab757f3f510487e84687146a8d461be13") @@ -46,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") @@ -64,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") @@ -86,7 +93,7 @@ class SstMacro(AutotoolsPackage): @when("@develop,master") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./bootstrap.sh") def configure_args(self): @@ -127,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/star_ccm_plus/package.py b/repos/spack_repo/builtin/packages/star_ccm_plus/package.py index a0567965ce8..41e526b5af4 100644 --- a/repos/spack_repo/builtin/packages/star_ccm_plus/package.py +++ b/repos/spack_repo/builtin/packages/star_ccm_plus/package.py @@ -74,7 +74,7 @@ def install(self, spec, prefix): "-DINSTALLFLEX=false", "-DADDSYSTEMPATH=false", "-DCOMPUTE_NODE=false", - "-DNODOC={0}".format("false" if "+docs" in spec else "true"), + "-DNODOC={0}".format("false" if "+doc" in spec else "true"), ) def setup_run_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/starpu/package.py b/repos/spack_repo/builtin/packages/starpu/package.py index b187e6dd43a..a821d7f94e5 100644 --- a/repos/spack_repo/builtin/packages/starpu/package.py +++ b/repos/spack_repo/builtin/packages/starpu/package.py @@ -31,6 +31,9 @@ class Starpu(AutotoolsPackage): maintainers("nfurmento", "sthibaul") + version("1.4.12", sha256="a186e0f4fc279877ecb36d53a672c07d9fbd54839172c051de60e2acd5c94990") + version("1.4.10", sha256="8f35f59c337ba109e5ef5fb4f6331b4845d524921e184fcc89f2ecac60faaf03") + version("1.4.9", sha256="1bf6388d59b3a01e18fb3e9deb001b35a243fe78e4508507284ea1fa00667af1") version("1.4.8", sha256="8dde07eb4d9c3e1fc09036c7f1eb70ded27413067539bc1bbcff0bcd7218827f") version("1.4.7", sha256="1eb3df551089153fe6e0b172ad95118434b4a81ea9eaa5a2c38725d0db53b13e") version("1.4.6", sha256="579f38e150ab78c9ab299649d8649a043dbf49786e54acbf3dad90c160672cc7") diff --git a/repos/spack_repo/builtin/packages/starship/package.py b/repos/spack_repo/builtin/packages/starship/package.py new file mode 100644 index 00000000000..ec1b6feadb1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/starship/package.py @@ -0,0 +1,50 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems.cargo import CargoPackage + +from spack.package import * + + +class Starship(CargoPackage): + """The minimal, blazing-fast, and infinitely customizable prompt for + any shell!""" + + homepage = "https://starship.rs/" + url = "https://github.com/starship/starship/archive/v1.24.1.tar.gz" + + maintainers("ebagrenrut") + + license("ISC") + + 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") + + @property + def build_args(self): + return ["--locked"] + + @run_after("install") + def install_completions(self): + starship = Executable(self.prefix.bin.starship) + + bash_comp_path = bash_completion_path(self.prefix) + mkdirp(bash_comp_path) + with open(bash_comp_path / self.name, "w") as file: + starship("completions", "bash", output=file) + + fish_comp_path = fish_completion_path(self.prefix) + mkdirp(fish_comp_path) + with open(fish_comp_path / f"{self.name}.fish", "w") as file: + starship("completions", "fish", output=file) + + zsh_comp_path = zsh_completion_path(self.prefix) + mkdirp(zsh_comp_path) + with open(zsh_comp_path / f"_{self.name}", "w") as file: + starship("completions", "zsh", output=file) diff --git a/repos/spack_repo/builtin/packages/stat/package.py b/repos/spack_repo/builtin/packages/stat/package.py index b4ab2e67219..3d3525bdd7c 100644 --- a/repos/spack_repo/builtin/packages/stat/package.py +++ b/repos/spack_repo/builtin/packages/stat/package.py @@ -19,6 +19,16 @@ class Stat(AutotoolsPackage): tags = ["e4s"] version("develop", branch="develop") + version( + "4.2.3", + sha256="cec7824e43d4c1f2cd24bdf074ef27b47d89ce9abda2b5bc37eed6396c4adf37", + url="https://github.com/LLNL/STAT/releases/download/v4.2.3/stat-4.2.3.tar.gz", + ) + version( + "4.2.2", + sha256="e12b5d1d0be1e7e485b5a4baba901ce508102a63deb5d2c9ca045b63bf6463d6", + url="https://github.com/LLNL/STAT/releases/download/v4.2.2/stat-4.2.2.tar.gz", + ) version( "4.2.1", sha256="137529889ec5b5f9b9bae3a0864a385c5814e989d0074228dd3500e3e713801d", @@ -63,8 +73,10 @@ class Stat(AutotoolsPackage): # we depend on mpa@master for bug fixes since launchmon 1.0.2 depends_on("launchmon@1.2.0:") depends_on("mrnet") - depends_on("python") + depends_on("python@:3.11") depends_on("py-xdot@1.0", when="+gui") + depends_on("py-pygments", when="+gui") + depends_on("pango", when="+gui") depends_on("swig") depends_on("mpi", when="+examples") @@ -86,6 +98,12 @@ def configure_args(self): "--with-python=%s" % spec["python"].command.path, "--with-boost=%s" % spec["boost"].prefix, ] + if self.spec.satisfies("@4.2.2:") and spec["glib"].satisfies("@2.0:2.99"): + args.append( + "STAT_GSETTINGS_SCHEMA_DIR=%s" + % spec["gtkplus"].prefix.join("share/glib-2.0/schemas") + ) + if "+fgfs" in spec: args.append("--with-fgfs=%s" % spec["fast-global-file-status"].prefix) if "+dysect" in spec: diff --git a/repos/spack_repo/builtin/packages/stata/package.py b/repos/spack_repo/builtin/packages/stata/package.py index 5a2a7452ef0..78c87748450 100644 --- a/repos/spack_repo/builtin/packages/stata/package.py +++ b/repos/spack_repo/builtin/packages/stata/package.py @@ -30,6 +30,10 @@ class Stata(Package): manual_download = True # url = "stata" + license("LicenseRef-Stata-Proprietary", checked_by="alecbcs") + + redistribute(source=False, binary=False) + version("16", sha256="a13a6a92558eeb3c6cb3013c458a6777e54c21af43599df6b0a924f5f5c2d5d2") version("15", sha256="2486f4c7db1e7b453004c7bd3f8da40ba1e30be150613065c7b82b1915259016") @@ -82,8 +86,8 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: # $ stinit def install(self, spec, prefix): - bash = which("bash") - tar = which("tar") + bash = which("bash", required=True) + tar = which("tar", required=True) res_dir = "unix/linux64/" diff --git a/repos/spack_repo/builtin/packages/stdexec/package.py b/repos/spack_repo/builtin/packages/stdexec/package.py index 8cd8395fdcf..937ec3dca7e 100644 --- a/repos/spack_repo/builtin/packages/stdexec/package.py +++ b/repos/spack_repo/builtin/packages/stdexec/package.py @@ -17,6 +17,8 @@ class Stdexec(CMakePackage): license("Apache-2.0") + version("25.09", sha256="46651430312b1f66a9120dde3daa578e9c9eba709e135d5e508ad5f8f4f18dab") + version("25.03.rc1", sha256="dc45560a7f68b9d7734e81e0a080fc13937b0f06b745631e9552af623bfb1f74") version("24.09", sha256="d2d811c852dc6c53527a244a54ae343d6b65a50c23ea49f93723e3082435fff4") version("23.03", sha256="2c9dfb6e56a190543049d2300ccccd1b626f4bb82af5b607869c626886fadd15") version("main", branch="main") diff --git a/repos/spack_repo/builtin/packages/steps/for_aarch64.patch b/repos/spack_repo/builtin/packages/steps/for_aarch64.patch deleted file mode 100644 index e238cf6b02e..00000000000 --- a/repos/spack_repo/builtin/packages/steps/for_aarch64.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- spack-src/src/third_party/Random123/features/gccfeatures.h.bak 2020-01-11 00:45:52.000000000 +0900 -+++ spack-src/src/third_party/Random123/features/gccfeatures.h 2020-09-25 13:17:53.218231843 +0900 -@@ -34,7 +34,7 @@ - - #define R123_GNUC_VERSION (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__) - --#if !defined(__x86_64__) && !defined(__i386__) && !defined(__powerpc__) -+#if !defined(__x86_64__) && !defined(__i386__) && !defined(__powerpc__) && !defined(__aarch64__) - # error "This code has only been tested on x86 and powerpc platforms." - #include - { /* maybe an unbalanced brace will terminate the compilation */ diff --git a/repos/spack_repo/builtin/packages/steps/package.py b/repos/spack_repo/builtin/packages/steps/package.py index c7bd5b46b1f..32ecb607303 100644 --- a/repos/spack_repo/builtin/packages/steps/package.py +++ b/repos/spack_repo/builtin/packages/steps/package.py @@ -84,7 +84,6 @@ class Steps(CMakePackage): depends_on("py-scipy", type=("build", "test", "run")) depends_on("python", type=("build", "test", "run")) depends_on("random123", when="~bundle") - depends_on("sundials@:2+int64", when="@:5~bundle") depends_on("sundials@:6+int64", when="@develop~bundle") def patch(self): diff --git a/repos/spack_repo/builtin/packages/stow/package.py b/repos/spack_repo/builtin/packages/stow/package.py index 4c21395a18a..273548ea1d3 100644 --- a/repos/spack_repo/builtin/packages/stow/package.py +++ b/repos/spack_repo/builtin/packages/stow/package.py @@ -21,6 +21,7 @@ class Stow(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") + version("2.4.1", sha256="0d85a8513677e7923697bce42cdbb33d2b57af915abde1d0671e7ae80b2ef0b4") version("2.4.0", sha256="a7bac673daa246cf54ffb48a113eadd204a615630e76b53b5f64d81a275b77b3") version("2.3.1", sha256="26a6cfdfdaca0eea742db5487798c15fcd01889dc86bc5aa62614ec9415a422f") version("2.2.2", sha256="a0022034960e47a8d23dffb822689f061f7a2d9101c9835cf11bf251597aa6fd") diff --git a/repos/spack_repo/builtin/packages/strace/package.py b/repos/spack_repo/builtin/packages/strace/package.py index c706240e5e4..5a06852dc02 100644 --- a/repos/spack_repo/builtin/packages/strace/package.py +++ b/repos/spack_repo/builtin/packages/strace/package.py @@ -20,6 +20,7 @@ class Strace(AutotoolsPackage): license("BSD-3-Clause") + version("6.15", sha256="8552dfab08abc22a0f2048c98fd9541fd4d71b6882507952780dab7c7c512f51") version("6.11", sha256="83262583a3529f02c3501aa8b8ac772b4cbc03dc934e98bab6e4883626e283a5") version("5.19", sha256="aa3dc1c8e60e4f6ff3d396514aa247f3c7bf719d8a8dc4dd4fa793be786beca3") version("5.17", sha256="5fb298dbd1331fd1e1bc94c5c32395860d376101b87c6cd3d1ba9f9aa15c161f") diff --git a/repos/spack_repo/builtin/packages/stress_ng/package.py b/repos/spack_repo/builtin/packages/stress_ng/package.py index 110d77dc028..6406d5bbc86 100644 --- a/repos/spack_repo/builtin/packages/stress_ng/package.py +++ b/repos/spack_repo/builtin/packages/stress_ng/package.py @@ -14,12 +14,13 @@ class StressNg(MakefilePackage): subsystems of a computer as well as the various operating system kernel interfaces.""" - homepage = "https://kernel.ubuntu.com/~cking/stress-ng/" - url = "https://kernel.ubuntu.com/~cking/tarballs/stress-ng/stress-ng-0.12.06.tar.xz" + homepage = "https://github.com/ColinIanKing/stress-ng" + url = "https://github.com/ColinIanKing/stress-ng/archive/refs/tags/V0.19.04.tar.gz" license("GPL-2.0-or-later") - version("0.12.06", sha256="75eb340266b1bbae944d8f9281af978bd5bc2c8085df97a098d5500d6f177296") + version("0.19.04", sha256="3761ae901b2a81dcdb3f5363b8d98f288c03ae320a697b6d7ffef01a48845f05") + version("0.12.06", sha256="ad15205e7e57cec0b00643a17329d74fe75055bb76267558830b32e31d0a584f") depends_on("libaio") depends_on("libbsd") diff --git a/repos/spack_repo/builtin/packages/stripack/package.py b/repos/spack_repo/builtin/packages/stripack/package.py index 084efec45a2..cbf3e84bebf 100644 --- a/repos/spack_repo/builtin/packages/stripack/package.py +++ b/repos/spack_repo/builtin/packages/stripack/package.py @@ -14,7 +14,8 @@ class Stripack(MakefilePackage): The original Fortran 77 package STRIPACK is available from netlib as algorithm number 772 at https://www.netlib.org/toms/772.gz - Dr. Renka's articles were published in the ACM Transactions on Mathematical Software, Vol. 23, No 3, September 1997 + Dr. Renka's articles were published in the ACM Transactions on Mathematical Software, Vol. 23, + No 3, September 1997. https://dl.acm.org/doi/10.1145/275323.275329 """ diff --git a/repos/spack_repo/builtin/packages/strumpack/package.py b/repos/spack_repo/builtin/packages/strumpack/package.py index 7261f23035a..dbc9f9458e2 100644 --- a/repos/spack_repo/builtin/packages/strumpack/package.py +++ b/repos/spack_repo/builtin/packages/strumpack/package.py @@ -58,7 +58,7 @@ class Strumpack(CMakePackage, CudaPackage, ROCmPackage): variant("shared", default=True, description="Build shared libraries") variant("mpi", default=True, description="Use MPI") variant( - "openmp", default=True, description="Enable thread parallellism via tasking with OpenMP" + "openmp", default=True, description="Enable thread parallelism via tasking with OpenMP" ) variant("parmetis", default=True, description="Enable use of ParMetis") variant("scotch", default=False, description="Enable use of Scotch") @@ -79,7 +79,9 @@ class Strumpack(CMakePackage, CudaPackage, ROCmPackage): depends_on("mpi", when="+mpi") depends_on("blas") depends_on("lapack") - depends_on("openblas threads=openmp", when="^[virtuals=blas] openblas") + for blas in ("openblas", "amdblis", "blis"): + depends_on(f"{blas} threads=openmp", when=f"+openmp ^[virtuals=blas] {blas}") + depends_on(f"{blas} threads=none", when=f"~openmp ^[virtuals=blas] {blas}") depends_on("scalapack", when="+mpi") depends_on("metis") depends_on("parmetis", when="+parmetis") @@ -94,6 +96,7 @@ class Strumpack(CMakePackage, CudaPackage, ROCmPackage): depends_on("zfp@0.5.5", when="@:7.0.1 +zfp") depends_on("zfp", when="@7.0.2: +zfp") depends_on("hipblas", when="+rocm") + depends_on("hipblas@:6", when="@:8.0.0 +rocm") depends_on("hipsparse", type="link", when="@7.0.1: +rocm") depends_on("rocsolver", when="+rocm") depends_on("rocthrust", when="+rocm") @@ -136,6 +139,7 @@ def cmake_args(self): self.define_from_variant("TPL_ENABLE_SCOTCH", "scotch"), self.define_from_variant("TPL_ENABLE_BPACK", "butterflypack"), self.define_from_variant("TPL_ENABLE_MAGMA", "magma"), + self.define_from_variant("TPL_ENABLE_ZFP", "zfp"), self.define_from_variant("STRUMPACK_COUNT_FLOPS", "count_flops"), self.define_from_variant("STRUMPACK_TASK_TIMERS", "task_timers"), "-DTPL_BLAS_LIBRARIES=%s" % spec["blas"].libs.joined(";"), @@ -226,11 +230,11 @@ def _test_example(self, test_prog, test_cmd, pre_args=[]): cmake = self.spec["cmake"].command cmake(*opts) - make = which("make") + make = which("make", required=True) make(test_prog) with set_env(OMP_NUM_THREADS="1"): - exe = which(test_cmd) + exe = which(test_cmd, required=True) test_args = pre_args + [join_path("..", self.test_data_dir, "pde900.mtx")] exe(*test_args) diff --git a/repos/spack_repo/builtin/packages/sublime_text/package.py b/repos/spack_repo/builtin/packages/sublime_text/package.py index 2338fa7b02d..b1f8f6ad8a1 100644 --- a/repos/spack_repo/builtin/packages/sublime_text/package.py +++ b/repos/spack_repo/builtin/packages/sublime_text/package.py @@ -12,10 +12,11 @@ class SublimeText(Package): prose.""" homepage = "https://www.sublimetext.com/" - url = "https://download.sublimetext.com/sublime_text_build_4152_x64.tar.xz" + url = "https://download.sublimetext.com/sublime_text_build_4200_x64.tar.xz" maintainers("LRWeber") + version("4.4200", sha256="36f69c551ad18ee46002be4d9c523fe545d93b67fea67beea731e724044b469f") version("4.4152", sha256="6ede3c83519959897041c6506e850753c19962603b71bd9f73a625ae1e4d3554") version("4.4143", sha256="7de862c38d19367414117110328dded754ac709fed54c8cc5cb0737c894c073c") version( @@ -24,11 +25,6 @@ class SublimeText(Package): version( "3.2.1.3207", sha256="acb64f1de024a0f004888096afa101051e48d96c7a3e7fe96e11312d524938c4" ) - version( - "3.1.1.3176", sha256="74f17c1aec4ddec9d4d4c39f5aec0414a4755d407a05efa571e8892e0b9cf732" - ) - version("3.0.3126", sha256="18db132e9a305fa3129014b608628e06f9442f48d09cfe933b3b1a84dd18727a") - version("2.0.2", sha256="01baed30d66432e30002a309ff0393967be1daba5cce653e43bba6bd6c38ab84") # Licensing license_required = True @@ -39,7 +35,6 @@ class SublimeText(Package): # add them as runtime dependencies. # depends_on("libgobject", type="run") - depends_on("gtkplus@:2", type="run", when="@:3.1") depends_on("gtkplus@3:", type="run", when="@3.2:3.2.2") depends_on("glib", type="run", when="@:3.2.2") depends_on("libx11", type="run", when="@:3.2.2") @@ -49,11 +44,7 @@ class SublimeText(Package): depends_on("libxau", type="run", when="@:3.2.2") def url_for_version(self, version): - if version[0] == 2: - return "https://download.sublimetext.com/Sublime%20Text%20{0}%20x64.tar.bz2".format( - version - ) - elif version[0] == 3: + if version[0] == 3: return ( "https://download.sublimetext.com/sublime_text_{0}_build_{1}_x64.tar.bz2".format( version[0], version[-1] diff --git a/repos/spack_repo/builtin/packages/subread/package.py b/repos/spack_repo/builtin/packages/subread/package.py index dea66073814..e21089640c3 100644 --- a/repos/spack_repo/builtin/packages/subread/package.py +++ b/repos/spack_repo/builtin/packages/subread/package.py @@ -46,7 +46,7 @@ def build(self, spec, prefix): elif plat.startswith("darwin"): make("-f", "Makefile.MacOS") else: - raise InstallError("The communication mechanism %s is not" "supported" % plat) + raise InstallError("The communication mechanism %s is not supported" % plat) def install(self, spec, prefix): install_tree("bin", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/subversion/package.py b/repos/spack_repo/builtin/packages/subversion/package.py index 26c61d0e8bc..fe021b283af 100644 --- a/repos/spack_repo/builtin/packages/subversion/package.py +++ b/repos/spack_repo/builtin/packages/subversion/package.py @@ -25,6 +25,7 @@ class Subversion(AutotoolsPackage): # internal lz4, x509, and utf8proc code have different licenses. license("Apache-2.0 AND BSD-3-Clause AND BSD-2-Clause AND MIT", checked_by="tgamblin") + version("1.14.5", sha256="cd143fe8fdb1cd506c438eef1c772a2e87e1519e6b0be3fcd54a8c59e9022390") version("1.14.2", sha256="fd826afad03db7a580722839927dc664f3e93398fe88b66905732c8530971353") version("1.14.1", sha256="dee2796abaa1f5351e6cc2a60b1917beb8238af548b20d3e1ec22760ab2f0cad") version("1.14.0", sha256="ef3d1147535e41874c304fb5b9ea32745fbf5d7faecf2ce21d4115b567e937d0") diff --git a/repos/spack_repo/builtin/packages/suite_sparse/package.py b/repos/spack_repo/builtin/packages/suite_sparse/package.py index 04283b02769..2a07a24af50 100644 --- a/repos/spack_repo/builtin/packages/suite_sparse/package.py +++ b/repos/spack_repo/builtin/packages/suite_sparse/package.py @@ -20,6 +20,7 @@ class SuiteSparse(Package): license("Apache-2.0") + version("7.12.2", sha256="679412daa5f69af96d6976595c1ac64f252287a56e98cc4a8155d09cc7fd69e8") version("7.8.3", sha256="ce39b28d4038a09c14f21e02c664401be73c0cb96a9198418d6a98a7db73a259") version("7.7.0", sha256="529b067f5d80981f45ddf6766627b8fc5af619822f068f342aab776e683df4f3") version("7.3.1", sha256="b512484396a80750acf3082adc1807ba0aabb103c2e09be5691f46f14d0a9718") @@ -270,6 +271,10 @@ def install(self, spec, prefix): f"-DSUITESPARSE_USE_OPENMP={'ON' if '+openmp' in spec else 'OFF'}", f"-DSUITESPARSE_USE_CUDA={'ON' if '+cuda' in spec else 'OFF'}", ] + # https://github.com/DrTimothyAldenDavis/SuiteSparse/issues/1013 + if spec.satisfies("@7.12"): + cmake_args += ["-DBLA_VENDOR=' '"] + make_args += [f"CMAKE_OPTIONS={' '.join(cmake_args)}"] if spec.satisfies("platform=darwin %gcc"): @@ -304,7 +309,7 @@ def install(self, spec, prefix): "UMFPACK", "RBio", ] - if spec.satisfies("+cuda"): + if spec.satisfies("@:7.3+cuda"): targets.extend(["SuiteSparse_GPURuntime", "GPUQREngine"]) targets.extend(["SPQR"]) if spec.satisfies("+graphblas"): diff --git a/repos/spack_repo/builtin/packages/sundials/package.py b/repos/spack_repo/builtin/packages/sundials/package.py index 15c07032707..50bc8e86969 100644 --- a/repos/spack_repo/builtin/packages/sundials/package.py +++ b/repos/spack_repo/builtin/packages/sundials/package.py @@ -29,10 +29,14 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage): # Versions # ========================================================================== version("develop", branch="develop") - version("7.4.0", tag="v7.4.0", commit="c3ff4663573953facb33eb026dd5d80444ecedc8") - version("7.3.0", tag="v7.3.0", commit="e941546af1a5b5e492dcac0a1872540e9961c556") - version("7.2.1", tag="v7.2.1", commit="5c53be85c88f63c5201c130b8cb2c686615cfb03") - version("7.2.0", tag="v7.2.0", commit="0eff39663606f2ff280c4059a947ed62ae38180a") + version("main", branch="main") + version("7.7.0", tag="v7.7.0", commit="0a1024b7fb902a5eae3142adf8c13561c6989543") + version("7.6.0", tag="v7.6.0", commit="ddf5daba8397ea89287a0fec6f1b3bc3fe6c548b") + version("7.5.0", tag="v7.5.0", commit="c8dabcea90ca8bf195474da120e4f3dd39aa711f") + version("7.4.0", tag="v7.4.0", commit="8e17876d3b4d682b4098684b07a85b005a122f81") + version("7.3.0", tag="v7.3.0", commit="cb681a4e3a46bcad903fb966284d6f53e85bdb94") + version("7.2.1", tag="v7.2.1", commit="2dcb3e018b4c4cfe824bff09eb52184ed083e368") + version("7.2.0", tag="v7.2.0", commit="71a4cc9ad5e7bc8b4e33a1ca9795b4e96883f9a6") version("7.1.1", tag="v7.1.1", commit="c28eaa3764a03705d61decb6025b409360e9d53f") version("7.0.0", sha256="d762a7950ef4097fbe9d289f67a8fb717a0b9f90f87ed82170eb5c36c0a07989") version("6.7.0", sha256="5f113a1564a9d2d98ff95249f4871a4c815a05dbb9b8866a82b13ab158c37adb") @@ -59,18 +63,6 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage): version("5.1.0", sha256="fb22d14fad42203809dc46d046b001149ec4e901b23882bd4a80619157fd9b21") version("5.0.0", sha256="345141ec01c641d0bdfb3476c478b7e74fd6a7192a478a27cafe75d9da2d7dd3") - with default_args(deprecated=True): - version("4.1.0", sha256="280de1c27b2360170a6f46cb3799b2aee9dff3bddbafc8b08c291a47ab258aa5") - version("4.0.1", sha256="29e409c8620e803990edbda1ebf49e03a38c08b9187b90658d86bddae913aed4") - version("3.2.1", sha256="47d94d977ab2382cdcdd02f72a25ebd4ba8ca2634bbb2f191fe1636e71c86808") - version("3.2.0", sha256="d2b690afecadf8b5a048bb27ab341de591d714605b98d3518985dfc2250e93f9") - version("3.1.2", sha256="a8985bb1e851d90e24260450667b134bc13d71f5c6effc9e1d7183bd874fe116") - version("3.1.1", sha256="a24d643d31ed1f31a25b102a1e1759508ce84b1e4739425ad0e18106ab471a24") - version("3.1.0", sha256="18d52f8f329626f77b99b8bf91e05b7d16b49fde2483d3a0ea55496ce4cdd43a") - version("3.0.0", sha256="28b8e07eecfdef66e2c0d0ea0cb1b91af6e4e94d71008abfe80c27bf39f63fde") - version("2.7.0", sha256="d39fcac7175d701398e4eb209f7e92a5b30a78358d4a0c0fcc23db23c11ba104") - version("2.6.2", sha256="d8ed0151509dd2b0f317b318a4175f8b95a174340fc3080b8c20617da8aa4d2f") - # ========================================================================== # Variants # ========================================================================== @@ -130,7 +122,7 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage): variant("mpi", default=True, description="Enable MPI parallel vector") variant("openmp", default=False, description="Enable OpenMP parallel vector") variant("pthread", default=False, description="Enable Pthreads parallel vector") - variant("raja", default=False, when="@3.0.0:", description="Enable RAJA vector") + variant("raja", default=False, description="Enable RAJA vector") variant("sycl", default=False, when="@5.7.0:", description="Enable SYCL vector") # External libraries @@ -141,7 +133,7 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage): description="Enable Caliper instrumentation/profiling", ) variant("ginkgo", default=False, when="@6.4.0:", description="Enable Ginkgo interfaces") - variant("hypre", default=False, when="@2.7.0:", description="Enable Hypre MPI parallel vector") + variant("hypre", default=False, description="Enable Hypre MPI parallel vector") variant("kokkos", default=False, when="@6.4.0:", description="Enable Kokkos vector") variant( "kokkos-kernels", @@ -151,16 +143,11 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage): ) variant("klu", default=False, description="Enable KLU sparse, direct solver") variant("lapack", default=False, description="Enable LAPACK direct solvers") - variant("petsc", default=False, when="@2.7.0:", description="Enable PETSc interfaces") + variant("petsc", default=False, description="Enable PETSc interfaces") variant("magma", default=False, when="@5.7.0:", description="Enable MAGMA interface") variant("superlu-mt", default=False, description="Enable SuperLU_MT sparse, direct solver") - variant( - "superlu-dist", - default=False, - when="@5.0.0:", - description="Enable SuperLU_DIST sparse, direct solver", - ) - variant("trilinos", default=False, when="@5.0.0:", description="Enable Trilinos interfaces") + variant("superlu-dist", default=False, description="Enable SuperLU_DIST sparse, direct solver") + variant("trilinos", default=False, description="Enable Trilinos interfaces") # Library type variant("shared", default=True, description="Build shared libraries") @@ -199,17 +186,13 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage): # Conflicts # ========================================================================== - conflicts("+cuda", when="@:2.7.0") conflicts("+rocm", when="@:5.6.0") - conflicts("~int64", when="@:2.7.0") - conflicts("+f2003", when="@:4.1.0") # External libraries incompatible with 64-bit indices - conflicts("+lapack", when="@3.0.0: +int64") + conflicts("+lapack", when="+int64") # External libraries incompatible with single precision conflicts("+klu", when="precision=single") - conflicts("+hypre", when="+hypre@:2.12.0 precision=single") conflicts("+superlu-dist", when="precision=single") # External libraries incompatible with extended (quad) precision @@ -217,10 +200,6 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage): conflicts("+superlu-mt", when="precision=extended") conflicts("+superlu-dist", when="precision=extended") conflicts("+klu", when="precision=extended") - conflicts("+hypre", when="+hypre@:2.12.0 precision=extended") - - # SuperLU_MT interface requires lapack for external blas (before v3.0.0) - conflicts("+superlu-mt", when="@:2.7.0 ~lapack") # rocm+examples and cstd do not work together in 6.0.0 conflicts("+rocm+examples", when="@6.0.0") @@ -267,6 +246,7 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage): when="+kokkos +rocm amdgpu_target=%s" % rocm_arch, ) depends_on("lapack", when="+lapack") + depends_on("blas", when="+lapack") depends_on("hypre+mpi~int64", when="@5.7.1: +hypre ~int64") depends_on("hypre+mpi+int64", when="@5.7.1: +hypre +int64") depends_on("hypre@:2.22.0+mpi~int64", when="@:5.7.0 +hypre ~int64") @@ -306,7 +286,6 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage): patch("Change-HIP_PLATFORM-from-HCC-to-AMD-and-NVCC-to-NVIDIA.patch", when="^hip@6.0 +rocm") # remove OpenMP header file and function from hypre vector test code - patch("test_nvector_parhyp.patch", when="@2.7.0:3.0.0") patch("FindPackageMultipass.cmake.patch", when="@5.0.0") patch("5.5.0-xsdk-patches.patch", when="@5.5.0") patch("0001-add-missing-README-to-examples-cvode-hip.patch", when="@5.6.0:5.7.0") @@ -348,15 +327,14 @@ def cmake_args(self): ] ) - # index type (v3.0.0 or later) - if spec.satisfies("@3:"): - intsize = "64" if "+int64" in spec else "32" - args.extend( - [ - define("SUNDIALS_INDEX_SIZE", intsize), - define("SUNDIALS_INDEX_TYPE", f"int{intsize}_t"), - ] - ) + # index type + intsize = "64" if "+int64" in spec else "32" + args.extend( + [ + define("SUNDIALS_INDEX_SIZE", intsize), + define("SUNDIALS_INDEX_TYPE", f"int{intsize}_t"), + ] + ) args.extend( [ @@ -412,7 +390,7 @@ def cmake_args(self): if "+rocm" in spec: args.extend( [ - define("CMAKE_C_COMPILER", spec["llvm-amdgpu"].prefix.bin.clang), + define("CMAKE_C_COMPILER", spec["llvm-amdgpu"].prefix.bin.amdclang), define("CMAKE_CXX_COMPILER", spec["hip"].hipcc), define("HIP_PATH", spec["hip"].prefix), define("HIP_CLANG_INCLUDE_PATH", spec["llvm-amdgpu"].prefix.include), @@ -492,18 +470,10 @@ def cmake_args(self): # Building with PETSc if "+petsc" in spec: - if spec.version >= Version("5"): - args.append(define("PETSC_DIR", spec["petsc"].prefix)) - if "+kokkos" in spec["petsc"]: - args.append(define("Kokkos_DIR", spec["kokkos"].prefix)) - args.append(define("KokkosKernels_DIR", spec["kokkos-kernels"].prefix)) - else: - args.extend( - [ - define("PETSC_INCLUDE_DIR", spec["petsc"].prefix.include), - define("PETSC_LIBRARY_DIR", spec["petsc"].prefix.lib), - ] - ) + args.append(define("PETSC_DIR", spec["petsc"].prefix)) + if "+kokkos" in spec["petsc"]: + args.append(define("Kokkos_DIR", spec["kokkos"].prefix)) + args.append(define("KokkosKernels_DIR", spec["kokkos-kernels"].prefix)) # Building with RAJA if "+raja" in spec: @@ -511,10 +481,7 @@ def cmake_args(self): # Building with SuperLU_MT if "+superlu-mt" in spec: - if spec.satisfies("@3:"): - args.extend( - [define("BLAS_ENABLE", True), define("BLAS_LIBRARIES", spec["blas"].libs)] - ) + args.extend([define("BLAS_ENABLE", True), define("BLAS_LIBRARIES", spec["blas"].libs)]) args.extend( [ define("SUPERLUMT_INCLUDE_DIR", spec["superlu-mt"].prefix.include), @@ -550,25 +517,16 @@ def cmake_args(self): args.append(define("Trilinos_DIR", spec["trilinos"].prefix)) # Examples - if spec.satisfies("@3:"): - args.extend( - [ - from_variant("EXAMPLES_ENABLE_C", "examples"), - from_variant("EXAMPLES_ENABLE_CXX", "examples"), - define("EXAMPLES_ENABLE_CUDA", "+examples+cuda" in spec), - define("EXAMPLES_ENABLE_F77", "+examples+fcmix" in spec), - define("EXAMPLES_ENABLE_F90", "+examples+fcmix" in spec), - define("EXAMPLES_ENABLE_F2003", "+examples+f2003" in spec), - ] - ) - else: - args.extend( - [ - from_variant("EXAMPLES_ENABLE", "examples"), - from_variant("CXX_ENABLE", "examples"), - define("F90_ENABLE", "+examples+fcmix" in spec), - ] - ) + args.extend( + [ + from_variant("EXAMPLES_ENABLE_C", "examples"), + from_variant("EXAMPLES_ENABLE_CXX", "examples"), + define("EXAMPLES_ENABLE_CUDA", "+examples+cuda" in spec), + define("EXAMPLES_ENABLE_F77", "+examples+fcmix" in spec), + define("EXAMPLES_ENABLE_F90", "+examples+fcmix" in spec), + define("EXAMPLES_ENABLE_F2003", "+examples+f2003" in spec), + ] + ) return args @@ -580,15 +538,11 @@ def cmake_args(self): def post_install(self): """Run after install to fix install name of dynamic libraries on Darwin to have full path and install the LICENSE file.""" - spec = self.spec prefix = self.spec.prefix if sys.platform == "darwin": fix_darwin_install_name(prefix.lib) - if spec.satisfies("@:3.0.0"): - install("LICENSE", prefix) - @run_after("install") def filter_compilers(self): """Run after install to tell the example program Makefiles @@ -786,9 +740,9 @@ def run_example(self, exe_path, opts, cmake_bool): cmake = self.spec["cmake"].command cmake("-DCMAKE_PREFIX_PATH=" + prefixes, ".") - make = which("make") + make = which("make", required=True) make() - exe = which(basename) + exe = which(basename, required=True) exe(*opts) make("clean") diff --git a/repos/spack_repo/builtin/packages/sundials/test_nvector_parhyp.patch b/repos/spack_repo/builtin/packages/sundials/test_nvector_parhyp.patch deleted file mode 100644 index ecb71d4a5f2..00000000000 --- a/repos/spack_repo/builtin/packages/sundials/test_nvector_parhyp.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/examples/nvector/parhyp/test_nvector_parhyp.c -+++ b/examples/nvector/parhyp/test_nvector_parhyp.c -@@ -24,7 +24,6 @@ - #include "test_nvector.h" - - #include --#include - - #if defined( SUNDIALS_HAVE_POSIX_TIMERS) && defined(_POSIX_TIMERS) - #include -@@ -74,7 +73,6 @@ int main(int argc, char *argv[]) - /* printf("\nRunning with vector length %ld \n \n", veclen); */ - /* Get processor number and total number of processes */ - MPI_Init(&argc, &argv); -- /* omp_set_num_threads(4); */ - comm = MPI_COMM_WORLD; - MPI_Comm_size(comm, &nprocs); - MPI_Comm_rank(comm, &myid); diff --git a/repos/spack_repo/builtin/packages/superlu/package.py b/repos/spack_repo/builtin/packages/superlu/package.py index 14f658dec5f..4441789868d 100644 --- a/repos/spack_repo/builtin/packages/superlu/package.py +++ b/repos/spack_repo/builtin/packages/superlu/package.py @@ -3,14 +3,12 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os -from spack_repo.builtin.build_systems import cmake, generic from spack_repo.builtin.build_systems.cmake import CMakePackage -from spack_repo.builtin.build_systems.generic import Package from spack.package import * -class Superlu(CMakePackage, Package): +class Superlu(CMakePackage): """SuperLU is a general purpose library for the direct solution of large, sparse, nonsymmetric systems of linear equations on high performance machines. SuperLU is designed for sequential machines.""" @@ -24,29 +22,12 @@ class Superlu(CMakePackage, Package): license("BSD-3-Clause") + version("7.0.1", sha256="86dcca1e086f8b8079990d07f00eb707fc9ef412cf3b2ce808b37956f0de2cb8") version("7.0.0", sha256="d7b91d4e0bb52644ca74c1a4dd466a694ddf1244a7bbf93cb453e8ca1f6527eb") version("6.0.1", sha256="6c5a3a9a224cb2658e9da15a6034eed44e45f6963f5a771a6b4562f7afb8f549") version("6.0.0", sha256="5c199eac2dc57092c337cfea7e422053e8f8229f24e029825b0950edd1d17e8e") version("5.3.0", sha256="3e464afa77335de200aeb739074a11e96d9bef6d0b519950cfa6684c4be1f350") - with default_args(deprecated=True): - version("5.2.2", sha256="470334a72ba637578e34057f46948495e601a5988a602604f5576367e606a28c") - version("5.2.1", sha256="28fb66d6107ee66248d5cf508c79de03d0621852a0ddeba7301801d3d859f463") - version( - "4.3", - sha256="169920322eb9b9c6a334674231479d04df72440257c17870aaa0139d74416781", - url="https://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_4.3.tar.gz", - ) - version( - "4.2", - sha256="5a06e19bf5a597405dfeea39fe92aa8c5dd41da73c72c7187755a75f581efb28", - url="https://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_4.2.tar.gz", - ) - - build_system( - conditional("cmake", when="@5:"), conditional("generic", when="@:4"), default="cmake" - ) - requires("build_system=cmake", when="platform=windows") variant("pic", default=True, description="Build with position independent code") @@ -80,19 +61,37 @@ def test_example(self): args.append("HEADER=" + self.prefix.include) args.append(test_exe) - make = which("make") + make = which("make", required=True) make(*args) - superlu = which(test_exe) + superlu = which(test_exe, required=True) superlu() + def cmake_args(self): + args = [ + self.define("enable_internal_blaslib", False), + self.define("CMAKE_INSTALL_LIBDIR", self.prefix.lib), + self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), + self.define("enable_tests", self.run_tests), + self.define_from_variant("enable_fortran", "fortran"), + ] + + if self.spec.satisfies("@6:"): + args.extend( + [ + self.define("TPL_ENABLE_METISLIB", True), + self.define("TPL_METIS_INCLUDE_DIRS", self.spec["metis"].prefix.include), + self.define("TPL_METIS_LIBRARIES", self.spec["metis"].libs), + ] + ) + + return args -class AnyBuilder(BaseBuilder): @run_after("install") def setup_standalone_tests(self): """Set up and copy example source files after the package is installed to an install test subdirectory for use during `spack test run`.""" - makefile = join_path(self.pkg.examples_src_dir, "Makefile") + makefile = join_path(self.examples_src_dir, "Makefile") if self.spec.satisfies("@5.2.2:"): # Include dir was hardcoded in 5.2.2 @@ -111,7 +110,7 @@ def setup_standalone_tests(self): lib = f"libsuperlu_{self.spec.version}.a" config_args.extend(self._make_hdr_for_test(lib)) - with open(join_path(self.pkg.examples_src_dir, filename), "w") as inc: + with open(join_path(self.examples_src_dir, filename), "w") as inc: for option in config_args: inc.write(f"{option}\n") @@ -119,7 +118,7 @@ def setup_standalone_tests(self): filter_file(r"include \.\./" + filename, "include ./" + filename, makefile) # Cache the examples directory for use by stand-alone tests - cache_extra_test_sources(self.pkg, self.pkg.examples_src_dir) + cache_extra_test_sources(self, self.examples_src_dir) def _make_hdr_for_test(self, lib): """Standard configure arguments for make.inc""" @@ -139,77 +138,3 @@ def _make_hdr_for_test(self, lib): "CFLAGS = -O3 -DNDEBUG -DUSE_VENDOR_BLAS -DPRNTlevel=0 -DAdd_", "NOOPTS = -O0", ] - - -class CMakeBuilder(AnyBuilder, cmake.CMakeBuilder): - def cmake_args(self): - if self.pkg.version > Version("5.2.1"): - _blaslib_key = "enable_internal_blaslib" - else: - _blaslib_key = "enable_blaslib" - args = [ - self.define(_blaslib_key, False), - self.define("CMAKE_INSTALL_LIBDIR", self.prefix.lib), - self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), - self.define("enable_tests", self.pkg.run_tests), - self.define_from_variant("enable_fortran", "fortran"), - ] - - if self.spec.satisfies("@6:"): - args.extend( - [ - self.define("TPL_ENABLE_METISLIB", True), - self.define("TPL_METIS_INCLUDE_DIRS", self.spec["metis"].prefix.include), - self.define("TPL_METIS_LIBRARIES", self.spec["metis"].libs), - ] - ) - return args - - -class GenericBuilder(AnyBuilder, generic.GenericBuilder): - def install(self, pkg, spec, prefix): - """Use autotools before version 5""" - # Define make.inc file - config = [ - "PLAT = _x86_64", - "SuperLUroot = %s" % self.pkg.stage.source_path, - # 'SUPERLULIB = $(SuperLUroot)/lib/libsuperlu$(PLAT).a', - "SUPERLULIB = $(SuperLUroot)/lib/libsuperlu_{0}.a".format(self.pkg.spec.version), - "BLASDEF = -DUSE_VENDOR_BLAS", - "BLASLIB = {0}".format(spec["blas"].libs.ld_flags), - # or BLASLIB = -L/usr/lib64 -lblas - "TMGLIB = libtmglib.a", - "LIBS = $(SUPERLULIB) $(BLASLIB)", - "ARCH = ar", - "ARCHFLAGS = cr", - "RANLIB = {0}".format("ranlib" if which("ranlib") else "echo"), - "CC = {0}".format(env["CC"]), - "FORTRAN = {0}".format(env["FC"]), - "LOADER = {0}".format(env["CC"]), - "CDEFS = -DAdd_", - ] - - if "+pic" in spec: - config.extend( - [ - # Use these lines instead when pic_flag capability arrives - "CFLAGS = -O3 {0}".format(self.pkg.compiler.cc_pic_flag), - "NOOPTS = {0}".format(self.pkg.compiler.cc_pic_flag), - "FFLAGS = -O2 {0}".format(self.pkg.compiler.f77_pic_flag), - "LOADOPTS = {0}".format(self.pkg.compiler.cc_pic_flag), - ] - ) - else: - config.extend( - ["CFLAGS = -O3", "NOOPTS = ", "FFLAGS = -O2", "LOADOPTS = "] - ) - - with open("make.inc", "w") as inc: - for option in config: - inc.write("{0}\n".format(option)) - - make(parallel=False) - - install_tree("lib", prefix.lib) - mkdir(prefix.include) - install(join_path("SRC", "*.h"), prefix.include) diff --git a/repos/spack_repo/builtin/packages/superlu_dist/package.py b/repos/spack_repo/builtin/packages/superlu_dist/package.py index a1015d66f24..22194de2b02 100644 --- a/repos/spack_repo/builtin/packages/superlu_dist/package.py +++ b/repos/spack_repo/builtin/packages/superlu_dist/package.py @@ -23,6 +23,8 @@ class SuperluDist(CMakePackage, CudaPackage, ROCmPackage): version("develop", branch="master") version("amd", branch="amd") + version("9.2.1", sha256="c80a1c2edaaa451ee9a54e005e5f3f56dc55cabe2b0a8d7acf5a1447a648157a") + version("9.2.0", sha256="d1df0e53d269cfc17379bb358e1b2b566d2807cb4a680b2ec1e4f35a77f707d1") version("9.1.0", sha256="1cb2c6dc7e8231b2ec30c1266e55e440ffca9f55527771d8df28f900dd179f9d") version("9.0.0", sha256="aa43d33d4b1b0f5f7b5ad7685e9a6bc25088832c6c74d2ab8f75a2c9f4e9e955") version("8.2.1", sha256="b77d065cafa6bc1a1dcc15bf23fd854f54b05762b165badcffc195835ad2bddf") @@ -76,17 +78,25 @@ class SuperluDist(CMakePackage, CudaPackage, ROCmPackage): depends_on("parmetis ~int64", when="~int64") depends_on("cmake@3.18.1:", type="build", when="@7.1.0:") depends_on("hipblas", when="+rocm") + depends_on("hipblas@:6", when="@:9.1.0 +rocm") depends_on("rocsolver", when="+rocm") conflicts("+rocm", when="+cuda") conflicts("+cuda", when="@:6.3") # See https://github.com/xiaoyeli/superlu_dist/issues/87 conflicts("^cuda@11.5.0:", when="@7.1.0:7.1 +cuda") + # https://github.com/xiaoyeli/superlu_dist/pull/193 + conflicts("^cuda@13:", when="@:9.1 +cuda") patch("xl-611.patch", when="@:6.1.1 %xl") patch("xl-611.patch", when="@:6.1.1 %xl_r") patch("superlu-cray-ftn-case.patch", when="@7.1.1 %cce") patch("CMAKE_INSTALL_LIBDIR.patch", when="@7.0.0:7.2.0") + patch( + "https://github.com/xiaoyeli/superlu_dist/commit/5a1946f347e6d813a250af874dee0942f4fdfc44.patch?full_index=1", + sha256="6472c192f6d24d4d762193385c5a46a536282cae786c13354a5e80f5ebfac64c", + when="@9.0:9.1", + ) def cmake_args(self): spec = self.spec @@ -129,6 +139,8 @@ def append_from_variant(*args): cuda_arch = spec.variants["cuda_arch"].value if cuda_arch[0] != "none": append_define("CMAKE_CUDA_ARCHITECTURES", cuda_arch[0]) + if spec.satisfies("^cuda@13:"): + append_define("CMAKE_CXX_STANDARD", "17") if "+rocm" in spec and (spec.satisfies("@amd") or spec.satisfies("@8:")): append_define("TPL_ENABLE_HIPLIB", True) @@ -188,5 +200,5 @@ def test_pddrive(self): # Smoke test input parameters: -r 2 -c 2 g20.rua test_args = ["-n", "4", superludriver, "-r", "2", "-c", "2", "g20.rua"] # Find the correct mpirun command - mpiexe_f = which("srun", "mpirun", "mpiexec") + mpiexe_f = which("srun", "mpirun", "mpiexec", required=True) mpiexe_f(*test_args) diff --git a/repos/spack_repo/builtin/packages/superlu_mt/package.py b/repos/spack_repo/builtin/packages/superlu_mt/package.py index 10b119c8ee1..bb30d50f3a2 100644 --- a/repos/spack_repo/builtin/packages/superlu_mt/package.py +++ b/repos/spack_repo/builtin/packages/superlu_mt/package.py @@ -20,6 +20,7 @@ class SuperluMt(Package): git = "https://github.com/xiaoyeli/superlu_mt" version("master", branch="master") + version("4.0.2", tag="v4.0.2", commit="efbf5220dfad9e54ec2e256eb329d0cff5af2aa5") version("4.0.1", tag="v4.0.1", commit="1300aec2a46327ecdd34fc7460d56e86e5431f79") version("3.1", sha256="407b544b9a92b2ed536b1e713e80f986824cf3016657a4bfc2f3e7d2a76ecab6") diff --git a/repos/spack_repo/builtin/packages/supermagic/package.py b/repos/spack_repo/builtin/packages/supermagic/package.py index 3f76286bd3d..5a7bb2d990d 100644 --- a/repos/spack_repo/builtin/packages/supermagic/package.py +++ b/repos/spack_repo/builtin/packages/supermagic/package.py @@ -27,7 +27,7 @@ class Supermagic(AutotoolsPackage): @when("@master") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/supernova/package.py b/repos/spack_repo/builtin/packages/supernova/package.py deleted file mode 100644 index 12e44a7347d..00000000000 --- a/repos/spack_repo/builtin/packages/supernova/package.py +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os - -from spack_repo.builtin.build_systems.generic import Package - -from spack.package import * - - -class Supernova(Package): - """Supernova is a software package for de novo assembly from Chromium - Linked-Reads that are made from a single whole-genome library from an - individual DNA source. - - A key feature of Supernova is that it creates diploid assemblies, thus - separately representing maternal and paternal chromosomes over very long - distances. Almost all other methods instead merge homologous chromosomes - into single incorrect 'consensus' sequences. Supernova is the only - practical method for creating diploid assemblies of large genomes. - - To install this package, you will need to go to the supernova download - page of supernova, register with your email address and download - supernova yourself. Spack will search your current directory for the - download file. Alternatively, add this file yo a mirror so that Spack - can find it. For instructions on how to set up a mirror, see - https://spack.readthedocs.io/en/latest/mirrors.html""" - - homepage = "https://support.10xgenomics.com/de-novo-assembly/software/overview/latest/welcome" - manual_download = True - - version("2.1.1", sha256="2f58eb66951e257b89359134ab8e35ad638c4ed51cb3fb8121625dfcc7761938") - version("2.0.1", md5="3697ce043c798fcb672fe0a66c56d6f0") - - depends_on("bcl2fastq2") - - def url_for_version(self, version): - return "file://{0}/supernova-{1}.tar.gz".format(os.getcwd(), version) - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - env.prepend_path("PATH", self.prefix) - - def install(self, spec, prefix): - rm = which("rm") - - # remove the broken symlinks - if os.path.isdir("anaconda-cs/2.2.0-anaconda-cs-c7/lib"): - rm( - "anaconda-cs/2.2.0-anaconda-cs-c7/lib/libtcl.so", - "anaconda-cs/2.2.0-anaconda-cs-c7/lib/libtk.so", - ) - - install_tree(".", prefix) diff --git a/repos/spack_repo/builtin/packages/surfer/package.py b/repos/spack_repo/builtin/packages/surfer/package.py index 34bec471fc8..0661e08e063 100644 --- a/repos/spack_repo/builtin/packages/surfer/package.py +++ b/repos/spack_repo/builtin/packages/surfer/package.py @@ -20,11 +20,21 @@ class Surfer(CargoPackage): version("main", branch="main", submodules=True) + version( + "0.6.0", tag="v0.6.0", commit="78e71f1e7761750a68fd94c128dd60ad00b220bc", submodules=True + ) + version( + "0.5.0", tag="v0.5.0", commit="0be6f8ad869060791ad0864d77f2f842cd27ee65", submodules=True + ) + version( + "0.4.0", tag="v0.4.0", commit="9198cc497aec2249ff7459df03fed628c9996578", submodules=True + ) version( "0.3.0", tag="v0.3.0", commit="1a6b34c44ea0e5089bd55d0bce1297aa1a02e6ef", submodules=True ) - depends_on("rust@1.82:") + depends_on("rust@1.92:", when="@:0.4.0") + depends_on("rust@1.82:", when="@:0.3.0") depends_on("c", type="build") depends_on("openssl") diff --git a/repos/spack_repo/builtin/packages/survey/package.py b/repos/spack_repo/builtin/packages/survey/package.py index 8e9a1fe3286..886b5c087e4 100644 --- a/repos/spack_repo/builtin/packages/survey/package.py +++ b/repos/spack_repo/builtin/packages/survey/package.py @@ -33,7 +33,13 @@ class Survey(CMakePackage): maintainers("jgalarowicz") - version("1.1.1", branch="1.1.1") + version("2.0.1", branch="2.0.1") + version("2.0.0", branch="2.0.0") + version("1.2.0", branch="1.2.0") + version("1.1.4", branch="1.1.4") + version("1.1.3", tag="1.1.3") + version("1.1.2", tag="1.1.2") + version("1.1.1", tag="1.1.1") version("1.1.0", tag="1.1.0") version("1.0.9", tag="1.0.9") version("1.0.8.1", branch="1.0.8.1") @@ -76,6 +82,8 @@ class Survey(CMakePackage): depends_on("python@3:", type=("build", "run")) depends_on("py-setuptools", type="build") + # 9.x has bootstrap issues with --no-build-isolation + depends_on("py-setuptools-scm@:8", type="build") depends_on("py-pip", type="build") depends_on("py-pandas", type=("build", "run")) depends_on("py-psutil", type=("build", "run")) @@ -99,6 +107,8 @@ class Survey(CMakePackage): depends_on("py-pillow", type=("build", "run"), when="@1.0.9:") depends_on("py-cycler", type=("build", "run"), when="@1.0.9:") depends_on("py-kiwisolver", type=("build", "run"), when="@1.0.9:") + depends_on("py-typing-extensions", type=("build", "run"), when="@2.0.0:") + depends_on("py-reportlab", type=("build", "run"), when="@2.0.0:") extends("python") @@ -253,3 +263,10 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: env.prepend_path( "PYTHONPATH", join_path(self.spec["py-kiwisolver"].prefix, self.site_packages_dir) ) + env.prepend_path( + "PYTHONPATH", + join_path(self.spec["py-typing-extensions"].prefix, self.site_packages_dir), + ) + env.prepend_path( + "PYTHONPATH", join_path(self.spec["py-reportlab"].prefix, self.site_packages_dir) + ) diff --git a/repos/spack_repo/builtin/packages/sw4lite/package.py b/repos/spack_repo/builtin/packages/sw4lite/package.py index 698eeacc914..f0c388c9f0c 100644 --- a/repos/spack_repo/builtin/packages/sw4lite/package.py +++ b/repos/spack_repo/builtin/packages/sw4lite/package.py @@ -65,6 +65,8 @@ def build_targets(self): targets.append("ckernel=yes") if "+cuda" in self.spec: + cuda_arch = self.spec.variants["cuda_arch"].value + targets.append("NVCC = {0}".format(self.spec["cuda"].prefix.bin.nvcc)) targets.append("HOSTCOMP = {0}".format(spack_cxx)) targets.append("MPIPATH= {0} ".format(self.spec["mpi"].prefix)) diff --git a/repos/spack_repo/builtin/packages/swig/package.py b/repos/spack_repo/builtin/packages/swig/package.py index 2214d6370f2..12ee162f7d7 100644 --- a/repos/spack_repo/builtin/packages/swig/package.py +++ b/repos/spack_repo/builtin/packages/swig/package.py @@ -22,7 +22,8 @@ class Swig(AutotoolsPackage, SourceforgePackage): application.""" homepage = "https://www.swig.org" - sourceforge_mirror_path = "swig/swig-3.0.12.tar.gz" + git = "https://github.com/swig/swig.git" + sourceforge_mirror_path = "swig/swig-4.4.1.tar.gz" maintainers("sethrj") tags = ["e4s", "build-tools"] @@ -31,12 +32,9 @@ class Swig(AutotoolsPackage, SourceforgePackage): license("GPL-3.0-only") - version("master", git="https://github.com/swig/swig.git") - version( - "4.1.1", - sha256="2af08aced8fcd65cdb5cc62426768914bedc735b1c250325203716f78e39ac9b", - preferred=True, - ) + version("master") + version("4.4.1", sha256="40162a706c56f7592d08fd52ef5511cb7ac191f3593cf07306a0a554c6281fcf") + version("4.1.1", sha256="2af08aced8fcd65cdb5cc62426768914bedc735b1c250325203716f78e39ac9b") version("4.1.0", sha256="d6a9a8094e78f7cfb6f80a73cc271e1fe388c8638ed22668622c2c646df5bb3d") version("4.0.2", sha256="d53be9730d8d58a16bf0cbd1f8ac0c0c3e1090573168bfa151b01eb47fa906fc") version("4.0.1", sha256="7a00b4d0d53ad97a14316135e2d702091cd5f193bb58bcfcd8bc59d41e7887a9") @@ -64,6 +62,7 @@ class Swig(AutotoolsPackage, SourceforgePackage): "4.1.dev1-fortran", sha256="d9020319771879b41f9545e95f9d252a3ffc379832dded14c385e5cd823e526d", url="https://github.com/swig-fortran/swig/archive/refs/tags/v4.1.0-dev1+fortran.tar.gz", + deprecated=True, ) version( "4.0.2-fortran", @@ -130,7 +129,7 @@ def test_version(self): def test_swiglib(self): """check that the lib dir exists""" - assert os.path.isdir(self._swiglib), f"SWIG library does not exist at '{swiglib}'" + assert os.path.isdir(self._swiglib), f"SWIG library does not exist at '{self._swiglib}'" def test_swig_swg(self): """check that swig.swg exists""" @@ -153,8 +152,8 @@ class AutotoolsBuilder(autotools.AutotoolsBuilder): def create_symlink(self): # CMake compatibility: see https://github.com/spack/spack/pull/6240 with working_dir(self.prefix.bin): - os.symlink("swig", "swig{0}.0".format(self.spec.version.up_to(1))) + symlink("swig", "swig{0}.0".format(self.spec.version.up_to(1))) @when(Swig.AUTOCONF_VERSIONS) def autoreconf(self, pkg, spec, prefix): - which("sh")("./autogen.sh") + which("sh", required=True)("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/syclomatic/package.py b/repos/spack_repo/builtin/packages/syclomatic/package.py new file mode 100644 index 00000000000..bc2d4fdd18a --- /dev/null +++ b/repos/spack_repo/builtin/packages/syclomatic/package.py @@ -0,0 +1,70 @@ +# 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 Syclomatic(CMakePackage): + """SYCLomatic is a tool to assist developers in migrating existing CUDA + code to SYCL C++ heterogeneous programming. The main binary is ``c2s`` + (also available as ``dpct``). + """ + + homepage = "https://oneapi-src.github.io/SYCLomatic/" + git = "https://github.com/oneapi-src/SYCLomatic.git" + + maintainers("rscohn2") + + license("Apache-2.0 WITH LLVM-exception") + + requires( + "platform=linux", + msg="Upstream SYCLomatic works on Linux and Windows, but the spack " + "package is only available on Linux", + ) + + # Daily release builds – tags are YYYYMMDD + version("SYCLomatic", branch="SYCLomatic") + version( + "20260506", + commit="119286ff2e066bc1f6e92d68a0e4359a703581d3", + submodules=False, + ) + version( + "20260429", + commit="0c5c6fb01003af342c9edac3d730218797e78650", + submodules=False, + ) + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("cmake@3.14:", type="build") + depends_on("ninja", type="build") + depends_on("python@3:", type="build") + + variant( + "targets", + default=("X86", "NVPTX"), + values=str, + multi=True, + description="LLVM targets to build", + ) + + # The CMakeLists.txt lives under the llvm/ subdirectory of the repo. + root_cmakelists_dir = "llvm" + install_targets = ["install-c2s"] + + def cmake_args(self): + targets = ";".join(self.spec.variants["targets"].value) + return [ + self.define("LLVM_ENABLE_PROJECTS", "clang"), + self.define("LLVM_TARGETS_TO_BUILD", targets), + self.define("CMAKE_BUILD_TYPE", "Release"), + ] + + def build(self, spec, prefix): + # Skip generic LLVM build; install-c2s will build only what is needed. + pass diff --git a/repos/spack_repo/builtin/packages/sys_sage/package.py b/repos/spack_repo/builtin/packages/sys_sage/package.py index fff618851dd..a95f5e6289e 100644 --- a/repos/spack_repo/builtin/packages/sys_sage/package.py +++ b/repos/spack_repo/builtin/packages/sys_sage/package.py @@ -23,11 +23,6 @@ class SysSage(CMakePackage): ) version("0.5.2", sha256="fd574170b9022a5a133cdb7d495aabbe2707882ff5d1402fe516b492fd6e2a75") version("0.5.0", sha256="044e53bf0f3873325fa4dedb510849d58b23b5a2c654d41b1389a318b2cb7ee1") - version( - "0.4.3", - sha256="e24313c4274576c1511a62e1b27c86a78cea7e4c123b8a53303cfc70de978faa", - deprecated=True, - ) version("master", branch="master") version("develop", branch="develop") diff --git a/repos/spack_repo/builtin/packages/sysbench/package.py b/repos/spack_repo/builtin/packages/sysbench/package.py index d6c542bed64..bba3b28a5e6 100644 --- a/repos/spack_repo/builtin/packages/sysbench/package.py +++ b/repos/spack_repo/builtin/packages/sysbench/package.py @@ -19,11 +19,19 @@ class Sysbench(AutotoolsPackage): version("1.0.19", sha256="39cde56b58754d97b2fe6a1688ffc0e888d80c262cf66daee19acfb2997f9bdd") version("1.0.18", sha256="c679b285e633c819d637bdafaeacc1bec13f37da5b3357c7e17d97a71bf28cb1") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + variant("mysql", default=True, description="Build with MySQL support") + + depends_on("c", type="build") depends_on("autoconf", type="build") depends_on("automake", type="build") depends_on("libtool", type="build") depends_on("m4", type="build") - depends_on("mysql-client") + depends_on("mysql-client", when="+mysql") + + def configure_args(self): + args = [] + + args.extend(self.with_or_without("mysql")) + + return args diff --git a/repos/spack_repo/builtin/packages/syscalc/package.py b/repos/spack_repo/builtin/packages/syscalc/package.py index c4842c8e3df..12605f98ad8 100644 --- a/repos/spack_repo/builtin/packages/syscalc/package.py +++ b/repos/spack_repo/builtin/packages/syscalc/package.py @@ -18,6 +18,7 @@ class Syscalc(MakefilePackage): sha256="ac73df0f9f195eb62601fafc2eede3db17a562750f7971616870d6df4abd1b6c", url="https://bazaar.launchpad.net/~mgtools/mg5amcnlo/SysCalc/tarball/17", extension=".tgz", + deprecated=True, ) depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/sysstat/package.py b/repos/spack_repo/builtin/packages/sysstat/package.py index 18418ea9296..34aecea8339 100644 --- a/repos/spack_repo/builtin/packages/sysstat/package.py +++ b/repos/spack_repo/builtin/packages/sysstat/package.py @@ -19,15 +19,6 @@ class Sysstat(AutotoolsPackage): license("GPL-2.0-or-later") version("12.7.6", sha256="dc77a08871f8e8813448ea31048833d4acbab7276dd9a456cd2526c008bd5301") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2023-33204 - # https://nvd.nist.gov/vuln/detail/CVE-2022-39377 - version( - "12.4.5", sha256="4e35abdd9eaf766ecdab55786f459093f3e1c350db23e57a15561afda417ff0d" - ) - version( - "12.2.0", sha256="614ab9fe8e7937a3edb7b2b6760792a3764ea3a7310ac540292dd0e3dfac86a6" - ) depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/systemd/package.py b/repos/spack_repo/builtin/packages/systemd/package.py index 0a3b85f3bc7..6fb54435aad 100644 --- a/repos/spack_repo/builtin/packages/systemd/package.py +++ b/repos/spack_repo/builtin/packages/systemd/package.py @@ -153,4 +153,4 @@ def symlink_internal_libs(self): for lib_path in glob.glob("lib*/systemd/lib*.so*"): lib_name = os.path.basename(lib_path) lib_dir = os.path.dirname(os.path.dirname(lib_path)) - os.symlink(os.path.relpath(lib_path, lib_dir), os.path.join(lib_dir, lib_name)) + symlink(os.path.relpath(lib_path, lib_dir), os.path.join(lib_dir, lib_name)) diff --git a/repos/spack_repo/builtin/packages/sz/package.py b/repos/spack_repo/builtin/packages/sz/package.py index 8be4b0e401b..c0dec15c0ef 100644 --- a/repos/spack_repo/builtin/packages/sz/package.py +++ b/repos/spack_repo/builtin/packages/sz/package.py @@ -106,7 +106,7 @@ def test_2d_float(self): """Run simple 2D compression/decompression""" test_data_dir = self.test_suite.current_test_data_dir - exe = which(self.prefix.bin.sz) + exe = which(self.prefix.bin.sz, required=True) if exe is None: raise SkipTest(f"sz is not installed for version {self.version}") @@ -132,7 +132,7 @@ def test_3d_float(self): """Run simple 3D compression/decompression""" test_data_dir = self.test_suite.current_test_data_dir - exe = which(self.prefix.bin.sz) + exe = which(self.prefix.bin.sz, required=True) if exe is None: raise SkipTest(f"sz is not installed for version {self.version}") diff --git a/repos/spack_repo/builtin/packages/sz3/package.py b/repos/spack_repo/builtin/packages/sz3/package.py index ce05488b478..7a6509ac3a2 100644 --- a/repos/spack_repo/builtin/packages/sz3/package.py +++ b/repos/spack_repo/builtin/packages/sz3/package.py @@ -52,7 +52,7 @@ def test_sz3_smoke_test(self): """Run sz3 smoke test""" if self.spec.satisfies("@:3.1.6"): raise SkipTest("Package must be installed as version 3.1.7 or later") - exe = which(self.prefix.bin.sz3_smoke_test) + exe = which(self.prefix.bin.sz3_smoke_test, required=True) exe() def test_mdz_smoke_test(self): @@ -61,5 +61,5 @@ def test_mdz_smoke_test(self): raise SkipTest("Package must be installed as version 3.1.7 or later") if "+mdz" not in self.spec: raise SkipTest("Package must be installed with '+mdz'") - exe = which(self.prefix.bin.mdz_smoke_test) + exe = which(self.prefix.bin.mdz_smoke_test, required=True) exe() diff --git a/repos/spack_repo/builtin/packages/talosctl/package.py b/repos/spack_repo/builtin/packages/talosctl/package.py new file mode 100644 index 00000000000..5453cf09c7f --- /dev/null +++ b/repos/spack_repo/builtin/packages/talosctl/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.go import GoPackage + +from spack.package import * + + +class Talosctl(GoPackage): + """ + A CLI for out-of-band management of Kubernetes nodes created by Talos. + """ + + homepage = "https://www.talos.dev/" + url = "https://github.com/siderolabs/talos/archive/refs/tags/v1.12.6.tar.gz" + + maintainers("RobertMaaskant") + + license("MPL-2.0", checked_by="RobertMaaskant") + + version("1.12.6", sha256="bfae01fe1db88cadde1502c552f5bae673524f4dc3512fd99e001c85a86b4515") + + depends_on("go@1.25.5:", type="build", when="@1.12.6:") + + build_directory = "cmd/talosctl" diff --git a/repos/spack_repo/builtin/packages/tamaas/package.py b/repos/spack_repo/builtin/packages/tamaas/package.py index 07e7c997091..dfd16f78788 100644 --- a/repos/spack_repo/builtin/packages/tamaas/package.py +++ b/repos/spack_repo/builtin/packages/tamaas/package.py @@ -19,6 +19,7 @@ class Tamaas(SConsPackage): maintainers("prs513rosewood") version("master", branch="master") + version("2.9.0", sha256="1218bd9fd86c0b961b47430be1b7e6ce78e523210909761b8aea11d2daaf4d94") version("2.8.1", sha256="c5fc294ae3ccdee50beeeb23b8c6621a82c2b8642cbe40cd366f751a29b19225") version("2.8.0", sha256="8ec49bf484a622c0554452416d1804eefbd545da79ced352f2ea63bbd17c83f0") version("2.7.1", sha256="d7de6db3f5532bb9c8ab7e8cca1cdb5c133050dd5720249dde07027b0d41641f") diff --git a/repos/spack_repo/builtin/packages/tandem/fix_v1.0_compilation.diff b/repos/spack_repo/builtin/packages/tandem/fix_v1.0_compilation.diff index 841e028b57e..42332b71383 100644 --- a/repos/spack_repo/builtin/packages/tandem/fix_v1.0_compilation.diff +++ b/repos/spack_repo/builtin/packages/tandem/fix_v1.0_compilation.diff @@ -27,3 +27,18 @@ index 6a2cf29..36b0be3 100644 #include "util/Combinatorics.h" namespace tndm { +diff --git a/external/doctest.h b/external/doctest.h +index c6bcafe..982da03 100644 +--- a/external/doctest.h ++++ b/external/doctest.h +@@ -4016,6 +4016,10 @@ namespace { + + #else // DOCTEST_PLATFORM_WINDOWS + ++ // glibc 2.34+ fix ++ #undef SIGSTKSZ ++ #define SIGSTKSZ 32768 ++ + struct SignalDefs + { + int id; diff --git a/repos/spack_repo/builtin/packages/tandem/fix_v1.1_compilation.diff b/repos/spack_repo/builtin/packages/tandem/fix_v1.1_compilation.diff new file mode 100644 index 00000000000..841e028b57e --- /dev/null +++ b/repos/spack_repo/builtin/packages/tandem/fix_v1.1_compilation.diff @@ -0,0 +1,29 @@ +diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt +index 515f15f..bc48092 100644 +--- a/app/CMakeLists.txt ++++ b/app/CMakeLists.txt +@@ -82,9 +82,9 @@ function(generate_code APP) + if("${YATETO_ARCH}" MATCHES "skl|naples|rome") + set(YATETO_ARCH "hsw") + endif() +- set(WITH_LIBXSMM "") ++ set(WITH_LIBXSMM "\'\'") + if(${LibxsmmGenerator_FOUND}) +- set(WITH_LIBXSMM ${LibxsmmGeneratorExecutable}) ++ set(WITH_LIBXSMM "\'${LibxsmmGeneratorExecutable}\'") + endif() + add_custom_command( + COMMAND +diff --git a/src/mesh/Simplex.h b/src/mesh/Simplex.h +index 6a2cf29..36b0be3 100644 +--- a/src/mesh/Simplex.h ++++ b/src/mesh/Simplex.h +@@ -7,7 +7,7 @@ + #include + #include + #include +- ++#include + #include "util/Combinatorics.h" + + namespace tndm { diff --git a/repos/spack_repo/builtin/packages/tandem/package.py b/repos/spack_repo/builtin/packages/tandem/package.py index de5742db29d..b0697256586 100644 --- a/repos/spack_repo/builtin/packages/tandem/package.py +++ b/repos/spack_repo/builtin/packages/tandem/package.py @@ -22,6 +22,7 @@ class Tandem(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") version("main", branch="main", submodules=True) + version("1.2.0-rc", branch="dmay/staging", submodules=True) # we cannot use the tar.gz file because it does not contains submodules version( @@ -29,6 +30,15 @@ class Tandem(CMakePackage, CudaPackage, ROCmPackage): ) version("1.0", tag="v1.0", commit="eccab10cbdf5842ed9903fac7a023be5e2779f36", submodules=True) + # Simplex.h: Added #include to ensure std::numeric_limits is available explicitly, + # as required by standard-compliant compilers like GCC. + # CMakeLists.txt: Quoted LibxsmmGeneratorExecutable in WITH_LIBXSMM to ensure correct + # command-line interpretation, especially when paths contain spaces or special characters. + patch("fix_v1.1_compilation.diff", when="@1.1") + + # same as the patch above and: + # doctest.h: Redefined SIGSTKSZ for compatibility with glibc 2.34+, where SIGSTKSZ may no + # longer be usable in preprocessor conditionals without explicit definition. patch("fix_v1.0_compilation.diff", when="@1.0") maintainers("dmay23", "Thomas-Ulrich") @@ -52,10 +62,17 @@ class Tandem(CMakePackage, CudaPackage, ROCmPackage): depends_on("cxx", type="build") # generated depends_on("mpi") - for var in ["openmpi", "mpich", "mvapich", "mvapich2", "mvapich2-gdr"]: + for var in ["openmpi", "mpich", "mvapich-plus"]: depends_on(f"{var} +cuda", when=f"+cuda ^[virtuals=mpi] {var}") - for var in ["mpich", "mvapich2-gdr"]: + for var in ["openmpi", "mpich"]: + for tgt in CudaPackage.cuda_arch_values: + depends_on( + f"{var} +cuda cuda_arch={tgt}", when=f"+cuda cuda_arch={tgt} ^[virtuals=mpi] {var}" + ) + + # these are not cuda packages + for var in ["openmpi@5:", "mpich", "mvapich-plus"]: depends_on(f"{var} +rocm", when=f"+rocm ^[virtuals=mpi] {var}") depends_on("parmetis +int64 +shared") @@ -65,7 +82,11 @@ class Tandem(CMakePackage, CudaPackage, ROCmPackage): depends_on("eigen@3.4.0") depends_on("zlib-api") - depends_on("petsc@3.16: +int64 +mumps +scalapack memalign=32") + + depends_on("petsc +int64 +mumps +scalapack memalign=32") + depends_on("petsc@3.22", when="@1.2:") + depends_on("petsc@3.16:3.19", when="@:1.1") + depends_on("petsc +knl", when="target=skylake:") with when("+cuda"): @@ -76,7 +97,9 @@ class Tandem(CMakePackage, CudaPackage, ROCmPackage): depends_on(f"petsc +rocm amdgpu_target={tgt}", when=f"+rocm amdgpu_target={tgt}") depends_on("python@3", type="build", when="+python") + depends_on("python@3.9:", type="build", when="@:1.2 +python") depends_on("py-numpy", type="build", when="+python") + depends_on("py-setuptools", type="build", when="+python") # see https://github.com/TEAR-ERC/tandem/issues/45 conflicts("%intel") diff --git a/repos/spack_repo/builtin/packages/tar/argp-pgi.patch b/repos/spack_repo/builtin/packages/tar/argp-pgi.patch deleted file mode 100644 index d4f2ccbdc9a..00000000000 --- a/repos/spack_repo/builtin/packages/tar/argp-pgi.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 8b3e22b18791f2148da46e60040fc4d9270936b5 Mon Sep 17 00:00:00 2001 -From: Paul Eggert -Date: Tue, 14 Feb 2017 08:40:23 -0800 -Subject: argp: port to PGI 16.10 - -* gnu/argp-pin.c (dummy): Declare as needed to make file nonempty. - -diff --git a/gnu/argp-pin.c b/gnu/argp-pin.c -index 261191f..64d831d 100644 ---- a/gnu/argp-pin.c -+++ b/gnu/argp-pin.c -@@ -24,3 +24,10 @@ char *program_invocation_short_name = 0; - #ifndef HAVE_PROGRAM_INVOCATION_NAME - char *program_invocation_name = 0; - #endif -+ -+#if (defined HAVE_PROGRAM_INVOCATION_SHORT_NAME \ -+ && defined HAVE_PROGRAM_INVOCATION_NAME) -+/* This declaration is solely to ensure that after preprocessing -+ this file is never empty. */ -+typedef int dummy; -+#endif --- -cgit v1.0-41-gc330 - diff --git a/repos/spack_repo/builtin/packages/tar/config-pgi.patch b/repos/spack_repo/builtin/packages/tar/config-pgi.patch deleted file mode 100644 index fb6ebd5b2ab..00000000000 --- a/repos/spack_repo/builtin/packages/tar/config-pgi.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/config.h.in -+++ b/config.h.in -@@ -2182,6 +2182,7 @@ - ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ - : (199901L <= __STDC_VERSION__ \ - && !defined __HP_cc \ -+ && !defined __PGI \ - && !(defined __SUNPRO_C && __STDC__))) \ - && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) - # define _GL_INLINE inline diff --git a/repos/spack_repo/builtin/packages/tar/gnutar-configure-xattrs.patch b/repos/spack_repo/builtin/packages/tar/gnutar-configure-xattrs.patch deleted file mode 100644 index 8b65ebab22d..00000000000 --- a/repos/spack_repo/builtin/packages/tar/gnutar-configure-xattrs.patch +++ /dev/null @@ -1,486 +0,0 @@ -Fixes major build errors on macOS - -See http://lists.gnu.org/archive/html/bug-tar/2014-08/msg00001.html - -diff --git a/Makefile.in b/Makefile.in -index f9f1d1d..b403e46 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.14 from Makefile.am. -+# Makefile.in generated by automake 1.14.1 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994-2013 Free Software Foundation, Inc. -@@ -1583,9 +1583,10 @@ distcheck: dist - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build \ -- && ../configure --srcdir=.. --prefix="$$dc_install_base" \ -+ && ../configure \ - $(AM_DISTCHECK_CONFIGURE_FLAGS) \ - $(DISTCHECK_CONFIGURE_FLAGS) \ -+ --srcdir=.. --prefix="$$dc_install_base" \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ -diff --git a/aclocal.m4 b/aclocal.m4 -index 0e09589..804c0b3 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -1,4 +1,4 @@ --# generated automatically by aclocal 1.14 -*- Autoconf -*- -+# generated automatically by aclocal 1.14.1 -*- Autoconf -*- - - # Copyright (C) 1996-2013 Free Software Foundation, Inc. - -@@ -35,7 +35,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], - [am__api_version='1.14' - dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to - dnl require some minimum version. Point them to the right macro. --m4_if([$1], [1.14], [], -+m4_if([$1], [1.14.1], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl - ]) - -@@ -51,7 +51,7 @@ m4_define([_AM_AUTOCONF_VERSION], []) - # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. - # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. - AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], --[AM_AUTOMAKE_VERSION([1.14])dnl -+[AM_AUTOMAKE_VERSION([1.14.1])dnl - m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl - _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) -diff --git a/config.h.in b/config.h.in -index 6646ea5..8571ef4 100644 ---- a/config.h.in -+++ b/config.h.in -@@ -617,7 +617,7 @@ - */ - #undef HAVE_ALLOCA_H - --/* define to 1 if we have header */ -+/* Define to 1 if you have the header file. */ - #undef HAVE_ATTR_XATTR_H - - /* Define to 1 if you have the header file. */ -@@ -924,21 +924,12 @@ - /* Define to 1 if you have the header file. */ - #undef HAVE_FEATURES_H - --/* Define to 1 if you have the `fgetxattr' function. */ --#undef HAVE_FGETXATTR -- --/* Define to 1 if you have the `flistxattr' function. */ --#undef HAVE_FLISTXATTR -- - /* Define to 1 if you have the `flockfile' function. */ - #undef HAVE_FLOCKFILE - - /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ - #undef HAVE_FSEEKO - --/* Define to 1 if you have the `fsetxattr' function. */ --#undef HAVE_FSETXATTR -- - /* Define to 1 if you have the `fstatat' function. */ - #undef HAVE_FSTATAT - -@@ -990,9 +981,6 @@ - /* Define to 1 if you have the `gettimeofday' function. */ - #undef HAVE_GETTIMEOFDAY - --/* Define to 1 if you have the `getxattr' function. */ --#undef HAVE_GETXATTR -- - /* Define to 1 if you have the `grantpt' function. */ - #undef HAVE_GRANTPT - -@@ -1045,12 +1033,6 @@ - /* Define to 1 if you have the `lchown' function. */ - #undef HAVE_LCHOWN - --/* Define to 1 if you have the `lgetxattr' function. */ --#undef HAVE_LGETXATTR -- --/* Define to 1 if you have the `attr' library (-lattr). */ --#undef HAVE_LIBATTR -- - /* Define to 1 if you have the header file. */ - #undef HAVE_LIBGEN_H - -@@ -1069,12 +1051,6 @@ - /* Define to 1 if you have the header file. */ - #undef HAVE_LINUX_FD_H - --/* Define to 1 if you have the `listxattr' function. */ --#undef HAVE_LISTXATTR -- --/* Define to 1 if you have the `llistxattr' function. */ --#undef HAVE_LLISTXATTR -- - /* Define to 1 if you have the header file. */ - #undef HAVE_LOCALE_H - -@@ -1087,9 +1063,6 @@ - /* Define to 1 if the system has the type 'long long int'. */ - #undef HAVE_LONG_LONG_INT - --/* Define to 1 if you have the `lsetxattr' function. */ --#undef HAVE_LSETXATTR -- - /* Define to 1 if you have the `lstat' function. */ - #undef HAVE_LSTAT - -@@ -1867,9 +1840,6 @@ - /* Define to 1 if you have the `setlocale' function. */ - #undef HAVE_SETLOCALE - --/* Define to 1 if you have the `setxattr' function. */ --#undef HAVE_SETXATTR -- - /* Define to 1 if you have the header file. */ - #undef HAVE_SGTTY_H - -@@ -2074,7 +2044,7 @@ - /* Define to 1 if you have the header file. */ - #undef HAVE_SYS_WAIT_H - --/* define to 1 if we have header */ -+/* Define to 1 if you have the header file. */ - #undef HAVE_SYS_XATTR_H - - /* Define if struct tm has the tm_gmtoff member. */ -diff --git a/configure b/configure -index cfdd721..8cf6e91 100755 ---- a/configure -+++ b/configure -@@ -663,8 +663,6 @@ RSH - LIBOBJS - TAR_COND_GRANTPT_FALSE - TAR_COND_GRANTPT_TRUE --TAR_LIB_ATTR_FALSE --TAR_LIB_ATTR_TRUE - TAR_COND_XATTR_H_FALSE - TAR_COND_XATTR_H_TRUE - GNULIB_TEST_WARN_CFLAGS -@@ -34994,41 +34992,6 @@ else - TAR_COND_XATTR_H_FALSE= - fi - -- if false; then -- TAR_LIB_ATTR_TRUE= -- TAR_LIB_ATTR_FALSE='#' --else -- TAR_LIB_ATTR_TRUE='#' -- TAR_LIB_ATTR_FALSE= --fi -- -- if test "$ac_cv_header_sys_xattr_h" = yes; then -- for ac_func in getxattr fgetxattr lgetxattr \ -- setxattr fsetxattr lsetxattr \ -- listxattr flistxattr llistxattr --do : -- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" --if eval test \"x\$"$as_ac_var"\" = x"yes"; then : -- cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 --_ACEOF -- # only when functions are present -- --$as_echo "#define HAVE_SYS_XATTR_H 1" >>confdefs.h -- -- if test "$with_xattrs" != no; then -- --$as_echo "#define HAVE_XATTRS /**/" >>confdefs.h -- -- fi -- --fi --done -- -- fi -- -- # If is not found, then check for - if test "$ac_cv_header_sys_xattr_h" != yes; then - for ac_header in attr/xattr.h - do : -@@ -35050,13 +35013,20 @@ else - TAR_COND_XATTR_H_FALSE= - fi - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgetxattr in -lattr" >&5 --$as_echo_n "checking for fgetxattr in -lattr... " >&6; } --if ${ac_cv_lib_attr_fgetxattr+:} false; then : -+ fi -+ -+ if test "$with_xattrs" != no; then -+ for i in getxattr fgetxattr lgetxattr \ -+ setxattr fsetxattr lsetxattr \ -+ listxattr flistxattr llistxattr -+ do -+ as_ac_Search=`$as_echo "ac_cv_search_$i" | $as_tr_sh` -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing $i" >&5 -+$as_echo_n "checking for library containing $i... " >&6; } -+if eval \${$as_ac_Search+:} false; then : - $as_echo_n "(cached) " >&6 - else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lattr $LIBS" -+ ac_func_search_save_LIBS=$LIBS - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -@@ -35066,67 +35036,56 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - #ifdef __cplusplus - extern "C" - #endif --char fgetxattr (); -+char $i (); - int - main () - { --return fgetxattr (); -+return $i (); - ; - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -- ac_cv_lib_attr_fgetxattr=yes --else -- ac_cv_lib_attr_fgetxattr=no -+for ac_lib in '' attr; do -+ if test -z "$ac_lib"; then -+ ac_res="none required" -+ else -+ ac_res=-l$ac_lib -+ LIBS="-l$ac_lib $ac_func_search_save_LIBS" -+ fi -+ if ac_fn_c_try_link "$LINENO"; then : -+ eval "$as_ac_Search=\$ac_res" - fi - rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --LIBS=$ac_check_lib_save_LIBS --fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_attr_fgetxattr" >&5 --$as_echo "$ac_cv_lib_attr_fgetxattr" >&6; } --if test "x$ac_cv_lib_attr_fgetxattr" = xyes; then : -- cat >>confdefs.h <<_ACEOF --#define HAVE_LIBATTR 1 --_ACEOF -- -- LIBS="-lattr $LIBS" -- -+ conftest$ac_exeext -+ if eval \${$as_ac_Search+:} false; then : -+ break - fi -+done -+if eval \${$as_ac_Search+:} false; then : - -- if test "$ac_cv_lib_attr_fgetxattr" = yes; then -- TAR_LIB_ATTR_TRUE= -- TAR_LIB_ATTR_FALSE='#' - else -- TAR_LIB_ATTR_TRUE='#' -- TAR_LIB_ATTR_FALSE= -+ eval "$as_ac_Search=no" -+fi -+rm conftest.$ac_ext -+LIBS=$ac_func_search_save_LIBS - fi -+eval ac_res=\$$as_ac_Search -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -+$as_echo "$ac_res" >&6; } -+eval ac_res=\$$as_ac_Search -+if test "$ac_res" != no; then : -+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -- if test "$ac_cv_header_attr_xattr_h" = yes; then -- for ac_func in getxattr fgetxattr lgetxattr \ -- setxattr fsetxattr lsetxattr \ -- listxattr flistxattr llistxattr --do : -- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" --if eval test \"x\$"$as_ac_var"\" = x"yes"; then : -- cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 --_ACEOF -- # only when functions are present -+fi - --$as_echo "#define HAVE_ATTR_XATTR_H 1" >>confdefs.h -+ eval found=\$ac_cv_search_$i -+ test "$found" = "no" && break -+ done - -- if test "$with_xattrs" != no; then -+ if test "$found" != no; then - - $as_echo "#define HAVE_XATTRS /**/" >>confdefs.h - -- fi -- --fi --done -- - fi - fi - -@@ -38187,18 +38146,10 @@ if test -z "${TAR_COND_XATTR_H_TRUE}" && test -z "${TAR_COND_XATTR_H_FALSE}"; th - as_fn_error $? "conditional \"TAR_COND_XATTR_H\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 - fi --if test -z "${TAR_LIB_ATTR_TRUE}" && test -z "${TAR_LIB_ATTR_FALSE}"; then -- as_fn_error $? "conditional \"TAR_LIB_ATTR\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi - if test -z "${TAR_COND_XATTR_H_TRUE}" && test -z "${TAR_COND_XATTR_H_FALSE}"; then - as_fn_error $? "conditional \"TAR_COND_XATTR_H\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 - fi --if test -z "${TAR_LIB_ATTR_TRUE}" && test -z "${TAR_LIB_ATTR_FALSE}"; then -- as_fn_error $? "conditional \"TAR_LIB_ATTR\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 --fi - if test -z "${TAR_COND_GRANTPT_TRUE}" && test -z "${TAR_COND_GRANTPT_FALSE}"; then - as_fn_error $? "conditional \"TAR_COND_GRANTPT\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 -diff --git a/doc/Makefile.in b/doc/Makefile.in -index ca44f1a..42a06b3 100644 ---- a/doc/Makefile.in -+++ b/doc/Makefile.in -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.14 from Makefile.am. -+# Makefile.in generated by automake 1.14.1 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994-2013 Free Software Foundation, Inc. -diff --git a/gnu/Makefile.in b/gnu/Makefile.in -index 03eed58..d908a03 100644 ---- a/gnu/Makefile.in -+++ b/gnu/Makefile.in -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.14 from Makefile.am. -+# Makefile.in generated by automake 1.14.1 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994-2013 Free Software Foundation, Inc. -diff --git a/lib/Makefile.in b/lib/Makefile.in -index 41a9aca..1254b8f 100644 ---- a/lib/Makefile.in -+++ b/lib/Makefile.in -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.14 from Makefile.am. -+# Makefile.in generated by automake 1.14.1 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994-2013 Free Software Foundation, Inc. -diff --git a/rmt/Makefile.in b/rmt/Makefile.in -index c3f2509..0f3dca4 100644 ---- a/rmt/Makefile.in -+++ b/rmt/Makefile.in -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.14 from Makefile.am. -+# Makefile.in generated by automake 1.14.1 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994-2013 Free Software Foundation, Inc. -diff --git a/scripts/Makefile.in b/scripts/Makefile.in -index 57c0d0d..bf344ed 100644 ---- a/scripts/Makefile.in -+++ b/scripts/Makefile.in -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.14 from Makefile.am. -+# Makefile.in generated by automake 1.14.1 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994-2013 Free Software Foundation, Inc. -diff --git a/src/Makefile.in b/src/Makefile.in -index 6f9a592..fc6fc87 100644 ---- a/src/Makefile.in -+++ b/src/Makefile.in -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.14 from Makefile.am. -+# Makefile.in generated by automake 1.14.1 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994-2013 Free Software Foundation, Inc. -@@ -99,7 +99,6 @@ POST_UNINSTALL = : - build_triplet = @build@ - host_triplet = @host@ - bin_PROGRAMS = tar$(EXEEXT) --@TAR_LIB_ATTR_TRUE@am__append_1 = -lattr - subdir = src - DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp $(noinst_HEADERS) -@@ -254,7 +253,7 @@ am__DEPENDENCIES_2 = ../lib/libtar.a ../gnu/libgnu.a \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) - tar_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ -- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -+ $(am__DEPENDENCIES_1) - AM_V_P = $(am__v_P_@AM_V@) - am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) - am__v_P_0 = false -@@ -1225,8 +1224,7 @@ tar_SOURCES = \ - AM_CPPFLAGS = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib -I../lib - AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) - LDADD = ../lib/libtar.a ../gnu/libgnu.a $(LIBINTL) $(LIBICONV) --tar_LDADD = $(LIBS) $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS) \ -- $(LIB_SELINUX) $(am__append_1) -+tar_LDADD = $(LIBS) $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS) $(LIB_SELINUX) - all: all-am - - .SUFFIXES: -diff --git a/tests/Makefile.in b/tests/Makefile.in -index 6807509..50d7689 100644 ---- a/tests/Makefile.in -+++ b/tests/Makefile.in -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.14 from Makefile.am. -+# Makefile.in generated by automake 1.14.1 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994-2013 Free Software Foundation, Inc. -diff --git a/lib/xattr-at.c b/lib/xattr-at.c -index 443ccae..009bde5 100644 ---- a/lib/xattr-at.c -+++ b/lib/xattr-at.c -@@ -18,6 +18,11 @@ - - #include - -+/* Temporarily don't build. We are unable to build on (probably not only) -+ darwin due to lack of l*xattr callbacks (XATTR_NOFOLLOW is alternative) and -+ different function definitions. */ -+#ifdef HAVE_XATTRS -+ - #include "xattr-at.h" - #include "openat.h" - -@@ -108,3 +113,5 @@ - #undef AT_FUNC_RESULT - #undef AT_FUNC_POST_FILE_PARAM_DECLS - #undef AT_FUNC_POST_FILE_ARGS -+ -+#endif -diff --git a/src/Makefile.am b/src/Makefile.am -index 82b2d46..42daaef 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -52,7 +52,3 @@ AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) - LDADD = ../lib/libtar.a ../gnu/libgnu.a $(LIBINTL) $(LIBICONV) - - tar_LDADD = $(LIBS) $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS) $(LIB_SELINUX) -- --if TAR_LIB_ATTR --tar_LDADD += -lattr --endif --- -1.9.3 diff --git a/repos/spack_repo/builtin/packages/tar/nvhpc-1.30.patch b/repos/spack_repo/builtin/packages/tar/nvhpc-1.30.patch deleted file mode 100644 index ecd56b72e17..00000000000 --- a/repos/spack_repo/builtin/packages/tar/nvhpc-1.30.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- a/gnu/xalloc-oversized.h 2020-08-21 06:38:16.472440800 -0700 -+++ b/gnu/xalloc-oversized.h 2020-08-21 06:39:22.717691266 -0700 -@@ -41,10 +41,10 @@ - positive and N must be nonnegative. This is a macro, not a - function, so that it works correctly even when SIZE_MAX < N. */ - --#if 7 <= __GNUC__ -+#if 7 <= __GNUC__ && !defined __NVCOMPILER - # define xalloc_oversized(n, s) \ - __builtin_mul_overflow_p (n, s, (__xalloc_count_type) 1) --#elif 5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__ -+#elif 5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__ && !defined __NVCOMPILER - # define xalloc_oversized(n, s) \ - (__builtin_constant_p (n) && __builtin_constant_p (s) \ - ? __xalloc_oversized (n, s) \ ---- a/gnu/intprops.h 2020-08-21 06:37:03.301158640 -0700 -+++ b/gnu/intprops.h 2020-08-21 06:38:01.807384249 -0700 -@@ -219,14 +219,14 @@ - : (max) >> (b) < (a)) - - /* True if __builtin_add_overflow (A, B, P) works when P is non-null. */ --#if 5 <= __GNUC__ && !defined __ICC -+#if 5 <= __GNUC__ && !defined __ICC && !defined __NVCOMPILER - # define _GL_HAS_BUILTIN_OVERFLOW 1 - #else - # define _GL_HAS_BUILTIN_OVERFLOW 0 - #endif - - /* True if __builtin_add_overflow_p (A, B, C) works. */ --#define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__) -+#define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__ && !defined __NVCOMPILER) - - /* The _GL*_OVERFLOW macros have the same restrictions as the - *_RANGE_OVERFLOW macros, except that they do not assume that operands diff --git a/repos/spack_repo/builtin/packages/tar/package.py b/repos/spack_repo/builtin/packages/tar/package.py index 179fd738af6..eb97034f55b 100644 --- a/repos/spack_repo/builtin/packages/tar/package.py +++ b/repos/spack_repo/builtin/packages/tar/package.py @@ -25,13 +25,6 @@ class Tar(AutotoolsPackage, GNUMirrorPackage): version("1.35", sha256="14d55e32063ea9526e057fbf35fcabd53378e769787eff7919c3755b02d2b57e") version("1.34", sha256="03d908cf5768cfe6b7ad588c921c6ed21acabfb2b79b788d1330453507647aed") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2019-9923 - version("1.32", sha256="b59549594d91d84ee00c99cf2541a3330fed3a42c440503326dab767f2fbb96c") - version("1.31", sha256="b471be6cb68fd13c4878297d856aebd50551646f4e3074906b1a74549c40d5a2") - version("1.30", sha256="4725cc2c2f5a274b12b39d1f78b3545ec9ebb06a6e48e8845e1995ac8513b088") - version("1.29", sha256="cae466e6e58c7292355e7080248f244db3a4cf755f33f4fa25ca7f9a7ed09af0") - version("1.28", sha256="6a6b65bac00a127a508533c604d5bf1a3d40f82707d56f20cefd38a05e8237de") variant( "zip", @@ -47,20 +40,13 @@ class Tar(AutotoolsPackage, GNUMirrorPackage): # Compression depends_on("gzip", type="run", when="zip=gzip") depends_on("pigz", type="run", when="zip=pigz") - depends_on("zstd+programs", type="run", when="@1.31:") + depends_on("zstd+programs", type="run") depends_on("xz", type="run") # for xz/lzma depends_on("bzip2", type="run") - patch("tar-pgi.patch", when="@1.29") - patch("config-pgi.patch", when="@:1.29") - patch("se-selinux.patch", when="@:1.29") - patch("argp-pgi.patch", when="@:1.29") - patch("gnutar-configure-xattrs.patch", when="@1.28") - # The NVIDIA compilers do not currently support some GNU builtins. # Detect this case and use the fallback path. with when("%nvhpc"): - patch("nvhpc-1.30.patch", when="@1.30:1.32") patch("nvhpc-1.34.patch", when="@1.34") # Workaround bug where __LONG_WIDTH__ is not defined patch("nvhpc-long-width.patch", when="@1.34:") diff --git a/repos/spack_repo/builtin/packages/tar/se-selinux.patch b/repos/spack_repo/builtin/packages/tar/se-selinux.patch deleted file mode 100644 index 1146b9838e1..00000000000 --- a/repos/spack_repo/builtin/packages/tar/se-selinux.patch +++ /dev/null @@ -1,66 +0,0 @@ -From e041ac5f63e23b20c322f2777d6330074c8a7215 Mon Sep 17 00:00:00 2001 -From: Paul Eggert -Date: Tue, 14 Feb 2017 08:46:05 -0800 -Subject: selinux-h: port to PGI 16.10 - -* gnu/se-selinux.in.h: Don't assume that include_next skips over -duplicate -I DIR options. - -diff --git a/gnu/se-selinux.in.h b/gnu/se-selinux.in.h -index cd19951..1cf7c00 100644 ---- a/gnu/se-selinux.in.h -+++ b/gnu/se-selinux.in.h -@@ -14,26 +14,25 @@ - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - --#ifndef _@GUARD_PREFIX@_SELINUX_SELINUX_H --# define _@GUARD_PREFIX@_SELINUX_SELINUX_H -- --# if __GNUC__ >= 3 -+#if __GNUC__ >= 3 - @PRAGMA_SYSTEM_HEADER@ --# endif -+#endif - @PRAGMA_COLUMNS@ - --# if HAVE_SELINUX_SELINUX_H -+#if HAVE_SELINUX_SELINUX_H - - #@INCLUDE_NEXT@ @NEXT_SELINUX_SELINUX_H@ - --# else -+#else -+# if !defined _@GUARD_PREFIX@_SELINUX_SELINUX_H -+# define _@GUARD_PREFIX@_SELINUX_SELINUX_H - - # include - # include - --#ifndef _GL_INLINE_HEADER_BEGIN -- #error "Please include config.h first." --#endif -+# ifndef _GL_INLINE_HEADER_BEGIN -+ #error "Please include config.h first." -+# endif - _GL_INLINE_HEADER_BEGIN - # ifndef SE_SELINUX_INLINE - # define SE_SELINUX_INLINE _GL_INLINE -@@ -114,10 +113,10 @@ matchpathcon_init_prefix (char const *path _GL_UNUSED_PARAMETER, - # define GNULIB_defined_security_types 1 - # endif - --#ifndef _GL_INLINE_HEADER_BEGIN -- #error "Please include config.h first." --#endif -+# ifndef _GL_INLINE_HEADER_BEGIN -+ #error "Please include config.h first." -+# endif - _GL_INLINE_HEADER_BEGIN - - # endif --#endif /* _@GUARD_PREFIX@_SELINUX_SELINUX_H */ -+#endif --- -cgit v1.0-41-gc330 - diff --git a/repos/spack_repo/builtin/packages/tar/tar-pgi.patch b/repos/spack_repo/builtin/packages/tar/tar-pgi.patch deleted file mode 100644 index 1cfed1839aa..00000000000 --- a/repos/spack_repo/builtin/packages/tar/tar-pgi.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 2be02a7c9afa5b4f01261e5b66c64217f7f3c29a Mon Sep 17 00:00:00 2001 -From: Paul Eggert -Date: Tue, 14 Feb 2017 08:55:05 -0800 -Subject: Fix incompatibility with PGI 16.10 - -* src/tar.c (options): Fix incompatibility with the C standard, -which says that arguments to macro calls cannot contain # directives. - -diff --git a/src/tar.c b/src/tar.c -index fd29cd3..ea68c82 100644 ---- a/src/tar.c -+++ b/src/tar.c -@@ -548,11 +548,11 @@ static struct argp_option options[] = { - N_("cancel the effect of --delay-directory-restore option"), GRID+1 }, - {"sort", SORT_OPTION, N_("ORDER"), 0, - #if D_INO_IN_DIRENT -- N_("directory sorting order: none (default), name or inode" -+ N_("directory sorting order: none (default), name or inode") - #else -- N_("directory sorting order: none (default) or name" -+ N_("directory sorting order: none (default) or name") - #endif -- ), GRID+1 }, -+ , GRID+1 }, - #undef GRID - - #define GRID 55 -@@ -1758,7 +1758,7 @@ parse_opt (int key, char *arg, struct argp_state *state) - case GROUP_MAP_OPTION: - group_map_read (arg); - break; -- -+ - case MODE_OPTION: - mode_option = mode_compile (arg); - if (!mode_option) -@@ -1829,7 +1829,7 @@ parse_opt (int key, char *arg, struct argp_state *state) - case OWNER_MAP_OPTION: - owner_map_read (arg); - break; -- -+ - case QUOTE_CHARS_OPTION: - for (;*arg; arg++) - set_char_quoting (NULL, *arg, 1); -@@ -2123,7 +2123,7 @@ find_argp_option (struct argp *ap, int key) - { - struct argp_option const *p = NULL; - struct argp_child const *child; -- -+ - p = find_argp_option_key (ap->options, key); - if (!p && ap->children) - { -@@ -2136,7 +2136,7 @@ find_argp_option (struct argp *ap, int key) - } - return p; - } -- -+ - static const char *tar_authors[] = { - "John Gilmore", - "Jay Fenlason", --- -cgit v1.0-41-gc330 - diff --git a/repos/spack_repo/builtin/packages/task/package.py b/repos/spack_repo/builtin/packages/task/package.py index ddee89d6a69..9d57d272cd0 100644 --- a/repos/spack_repo/builtin/packages/task/package.py +++ b/repos/spack_repo/builtin/packages/task/package.py @@ -11,15 +11,25 @@ class Task(CMakePackage): """Feature-rich console based todo list manager""" homepage = "https://www.taskwarrior.org" - url = "https://taskwarrior.org/download/task-2.4.4.tar.gz" + url = "https://github.com/GothenburgBitFactory/taskwarrior/releases/download/v2.5.2/task-2.5.2.tar.gz" license("MIT") + version("3.4.2", sha256="d302761fcd1268e4a5a545613a2b68c61abd50c0bcaade3b3e68d728dd02e716") version("3.0.0", sha256="30f397081044f5dc2e5a0ba51609223011a23281cd9947ea718df98d149fcc83") version("2.6.2", sha256="b1d3a7f000cd0fd60640670064e0e001613c9e1cb2242b9b3a9066c78862cfec") - version("2.5.1", sha256="d87bcee58106eb8a79b850e9abc153d98b79e00d50eade0d63917154984f2a15") - version("2.4.4", sha256="7ff406414e0be480f91981831507ac255297aab33d8246f98dbfd2b1b2df8e3b") - + version( + "2.5.1", + sha256="d87bcee58106eb8a79b850e9abc153d98b79e00d50eade0d63917154984f2a15", + url="https://taskwarrior.org/download/task-2.5.1.tar.gz", + ) + version( + "2.4.4", + sha256="7ff406414e0be480f91981831507ac255297aab33d8246f98dbfd2b1b2df8e3b", + url="https://taskwarrior.org/download/task-2.4.4.tar.gz", + ) + + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("cmake@2.8:", type="build") diff --git a/repos/spack_repo/builtin/packages/tasmanian/package.py b/repos/spack_repo/builtin/packages/tasmanian/package.py index b462a63343a..9e8ceb9789c 100644 --- a/repos/spack_repo/builtin/packages/tasmanian/package.py +++ b/repos/spack_repo/builtin/packages/tasmanian/package.py @@ -31,11 +31,6 @@ class Tasmanian(CMakePackage, CudaPackage, ROCmPackage): version("7.7", sha256="85fb3a7b302ea21a3b700712767a59a623d9ab93da03308fa47d4413654c3878") # when adding a new version, deprecate an old one, this gives us 3 - 4 years of support - version( - "7.5", - sha256="d621bd36dced4db86ef638693ba89b336762e7a3d7fedb3b5bcefb03390712b3", - deprecated=True, - ) variant("xsdkflags", default=False, description="enable XSDK defaults for Tasmanian") @@ -153,10 +148,10 @@ def test_make_test(self): if "+mpi" in self.spec: options.append("-DMPI_HOME=" + self.spec["mpi"].prefix) - cmake = which(self.spec["cmake"].prefix.bin.cmake) + cmake = which(self.spec["cmake"].prefix.bin.cmake, required=True) cmake(*options) - make = which("make") + make = which("make", required=True) make() make("test") diff --git a/repos/spack_repo/builtin/packages/tau/package.py b/repos/spack_repo/builtin/packages/tau/package.py index 397db461e07..695c421a2e2 100644 --- a/repos/spack_repo/builtin/packages/tau/package.py +++ b/repos/spack_repo/builtin/packages/tau/package.py @@ -19,7 +19,7 @@ class Tau(Package): Java, Python. """ - maintainers("wspear", "eugeneswalker", "khuck", "sameershende") + maintainers("wspear", "eugeneswalker", "sameershende") homepage = "https://www.cs.uoregon.edu/research/tau" url = "https://www.cs.uoregon.edu/research/tau/tau_releases/tau-2.30.tar.gz" git = "https://github.com/UO-OACISS/tau2" @@ -29,6 +29,8 @@ class Tau(Package): license("MIT") version("master", branch="master") + version("2.35.1", sha256="fee7c0ae49c370c23489b7c14b312af4611bb06cdb212464a2b0798721e9811f") + version("2.35", sha256="b13c6a0579da59853f8e6482d5f3aaed482bc1306c4eb91411c1568f647bf348") version("2.34.1", sha256="0e90726372fa1b6f726eb62b0840350070a00215144853ee07a852a99458c619") version("2.34", sha256="229ab425e0532e635a0be76d60b8aa613adf7596d15a9ced0b87e7f243bb2132") version("2.33.2", sha256="8ee81fe75507612379f70033183bed2a90e1245554b2a78196b6c5145da44f27") @@ -60,10 +62,11 @@ class Tau(Package): version("2.23.1", sha256="31a4d0019cec6ef57459a9cd18a220f0130838a5f1a0b5ea7879853f5a38cf88") # Disable some default dependencies on Darwin/OSX - darwin_default = False - if sys.platform != "darwin": - darwin_default = True + _is_darwin = sys.platform == "darwin" + darwin_default = not _is_darwin + libunwind_darwin_default = "none" if _is_darwin else "shared" + variant("julia", default=False, description="Activate Julia support", when="@2.35.1:") variant("scorep", default=False, description="Activates SCOREP support") variant("openmp", default=False, description="Use OpenMP threads") variant("pthreads", default=True, description="Use POSIX threads") @@ -73,16 +76,27 @@ class Tau(Package): variant("binutils", default=True, description="Activates support of BFD GNU Binutils") variant("libdwarf", default=darwin_default, description="Activates support of libdwarf") variant("elf", default=darwin_default, description="Activates support of elf") - variant("libunwind", default=darwin_default, description="Activates support of libunwind") + variant( + "libunwind", + default=libunwind_darwin_default, + values=("none", "shared", "static"), + description="Activates support of libunwind", + ) variant("otf2", default=True, description="Activates support of Open Trace Format (OTF)") variant("pdt", default=True, description="Use PDT for source code instrumentation") variant("comm", default=False, description=" Generate profiles with MPI communicator info") - variant("python", default=False, description="Activates Python support") + variant("python", default=False, description="Activates Python support", when="@2.31.1:") variant("likwid", default=False, description="Activates LIKWID support", when="@2.27") variant("ompt", default=False, description="Activates OMPT instrumentation") variant("opari", default=False, description="Activates Opari2 instrumentation") variant("shmem", default=False, description="Activates SHMEM support") variant("gasnet", default=False, description="Activates GASNET support") + variant( + "ittnotify", + default=False, + description="Activates Intel ITTNotify collector", + when="@2.35:", + ) variant("cuda", default=False, description="Activates CUDA support") variant("rocm", default=False, description="Activates ROCm support", when="@2.28:") variant( @@ -142,6 +156,16 @@ class Tau(Package): description="Do not add -no-pie while linking with Ubuntu.", ) variant("openacc", default=False, description="Activates OpenACC support") + variant( + "perfetto", default=True, description="Activates Perfetto tracing support", when="@2.35:" + ) + variant( + "force-legacy-l0", + default=False, + description="Use of Legacy L0 profiler. Option required for old drivers/GPU.", + when="@2.35:", + ) + depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated @@ -149,6 +173,7 @@ class Tau(Package): depends_on("gmake", type="build") depends_on("cmake@3.14:", type="build", when="%clang") depends_on("cmake@3.14:", type="build", when="%aocc") + depends_on("cmake@3.20:", type="build", when="+python ^python@3.12:") depends_on("zlib-api", type="link") depends_on("pdt", when="+pdt") # Required for TAU instrumentation depends_on("scorep", when="+scorep") @@ -162,14 +187,12 @@ class Tau(Package): depends_on("binutils+libiberty+headers+plugins", when="+binutils") with when("+python"): depends_on("python@2.7:") - # Build errors with Python 3.9 - depends_on("python@:3.8", when="@:2.31.0") # python 3.11 doesn't work in the 2.32 releases depends_on("python@:3.10", when="@:2.32.1") - depends_on("libunwind", when="+libunwind") + depends_on("libunwind libs=static +pic", when="libunwind=static") + depends_on("libunwind libs=shared", when="libunwind=shared") depends_on("mpi", when="+mpi", type=("build", "run", "link")) - # Legacy nvtx is only supported until cuda@12.8, newer cuda only provides nvtx3. - depends_on("cuda@:12.8", when="+cuda") + depends_on("cuda", when="+cuda") depends_on("gasnet", when="+gasnet") depends_on("adios2", when="+adios2") depends_on("sqlite", when="+sqlite") @@ -184,11 +207,18 @@ class Tau(Package): depends_on("hip", when="+rocprofiler-sdk") depends_on("elfutils", when="+rocprofiler-sdk") depends_on("comgr", when="+rocprofiler-sdk") - depends_on("salt", when="+salt", type="run") + depends_on("saltfm", when="+salt", type="run") depends_on("hip", when="@2.34: +roctracer") depends_on("java", type="run") # for paraprof depends_on("oneapi-level-zero", when="+level_zero") depends_on("dyninst@12.3.0:", when="+dyninst") + depends_on("julia@1.6:", when="+julia") + + conflicts( + "+julia", + when="~pthreads ~ittnotify", + msg="Julia support requires +pthreads and +ittnotify", + ) conflicts("+comm", when="@:2.34 +python", msg="Bug in +comm with +python up to @2.34") @@ -202,6 +232,7 @@ class Tau(Package): conflicts("+dyninst", when="@:2.32.1") conflicts("+disable-no-pie", when="@:2.33.2") patch("unwind.patch", when="@2.29.0") + patch("pycuda.patch", when="@2.33:2.35.0") conflicts("+rocprofiler", when="+rocprofv2", msg="Use either rocprofiler or rocprofv2") conflicts( @@ -227,6 +258,12 @@ class Tau(Package): msg="Using ROCm, select either +rocprofiler, +roctracer, +rocprofv2 or +rocprofiler-sdk", ) + requires( + "+level_zero", + when="+force-legacy-l0", + msg="Level zero needs to be enabled with +force-legacy-l0", + ) + # https://github.com/UO-OACISS/tau2/commit/1d2cb6b patch("tau-rocm-disable-llvm-plugin.patch", when="@2.33.2 +rocm") # https://github.com/UO-OACISS/tau2/commit/523df968dd17ffad74f0d944ecbb958ba0e8c6e8 @@ -291,6 +328,9 @@ def install(self, spec, prefix): # a few #peculiarities# that make this build quite hackish. options = ["-prefix=%s" % prefix] + if "+julia" in spec: + options.append("-julia") + if "+craycnl" in spec: options.append("-arch=craycnl") @@ -341,8 +381,11 @@ def install(self, spec, prefix): if "+elf" in spec: options.append("-elf=%s" % spec["elf"].prefix) - if "+libunwind" in spec: + libunwind_opt = spec.variants["libunwind"].value + if libunwind_opt != "none": options.append("-unwind=%s" % spec["libunwind"].prefix) + if libunwind_opt == "static": + options.append("-static_libunwind") if "+otf2" in spec: options.append("-otf=%s" % spec["otf2"].prefix) @@ -373,11 +416,19 @@ def install(self, spec, prefix): if "+gasnet" in spec: options.append("-gasnet=%s" % spec["gasnet"].prefix) + if "+ittnotify" in spec: + options.append("-ittnotify") + if "+cuda" in spec: options.append("-cuda=%s" % spec["cuda"].prefix) if "+level_zero" in spec: options.append("-level_zero=%s" % spec["oneapi-level-zero"].prefix) + if spec.satisfies("@2.35:"): + if "+force-legacy-l0" in spec: + options.append("-force_legacy_l0") + else: + options.append("-force_new_l0") if "+opencl" in spec: options.append("-opencl") @@ -458,6 +509,9 @@ def install(self, spec, prefix): if "+elf" not in spec: options.append("-elf=%s" % spec["elfutils"].prefix) + if "+perfetto" in spec: + options.append("-perfetto") + compiler_specific_options = self.set_compiler_options(spec) options.extend(compiler_specific_options) configure(*options) @@ -482,7 +536,7 @@ def link_tau_arch_dirs(self): src = join_path(self.prefix, subdir, d) dest = join_path(self.prefix, d) if os.path.isdir(src) and not os.path.exists(dest): - os.symlink(join_path(subdir, d), dest) + symlink(join_path(subdir, d), dest) def setup_run_environment(self, env: EnvironmentModifications) -> None: pattern = join_path(self.prefix.lib, "Makefile.*") @@ -539,13 +593,13 @@ def setup_build_tests(self): cache_extra_test_sources(self, self.python_test) def _run_python_test(self, test_name, purpose, work_dir): - tau_python = which(self.prefix.bin.tau_python) + tau_python = which(self.prefix.bin.tau_python, required=True) tau_py_inter = "-tau-python-interpreter=" + self.spec["python"].prefix.bin.python - pprof = which(self.prefix.bin.pprof) + pprof = which(self.prefix.bin.pprof, required=True) with test_part(self, f"{test_name}", purpose, work_dir): if "+mpi" in self.spec: flag = "mpi" - mpirun = which(self.spec["mpi"].prefix.bin.mpirun) + mpirun = which(self.spec["mpi"].prefix.bin.mpirun, required=True) mpirun( "-np", "4", @@ -561,13 +615,13 @@ def _run_python_test(self, test_name, purpose, work_dir): pprof() def _run_default_test(self, test_name, purpose, work_dir): - tau_exec = which(self.prefix.bin.tau_exec) - pprof = which(self.prefix.bin.pprof) + tau_exec = which(self.prefix.bin.tau_exec, required=True) + pprof = which(self.prefix.bin.pprof, required=True) with test_part(self, f"{test_name}", purpose, work_dir): make("all") if "+mpi" in self.spec: flags = ["-T", "mpi"] - mpirun = which(self.spec["mpi"].prefix.bin.mpirun) + mpirun = which(self.spec["mpi"].prefix.bin.mpirun, required=True) mpirun("-np", "4", self.prefix.bin.tau_exec, *flags, "./matmult") else: flags = ["-T", "serial"] @@ -575,13 +629,13 @@ def _run_default_test(self, test_name, purpose, work_dir): pprof() def _run_ompt_test(self, test_name, purpose, work_dir): - tau_exec = which(self.prefix.bin.tau_exec) - pprof = which(self.prefix.bin.pprof) + tau_exec = which(self.prefix.bin.tau_exec, required=True) + pprof = which(self.prefix.bin.pprof, required=True) with test_part(self, f"{test_name}", purpose, work_dir): make("all") if "+mpi" in self.spec: flags = ["-T", "mpi", "-ompt"] - mpirun = which(self.spec["mpi"].prefix.bin.mpirun) + mpirun = which(self.spec["mpi"].prefix.bin.mpirun, required=True) mpirun("-np", "4", self.prefix.bin.tau_exec, *flags, "./mandel") else: flags = ["-T", "serial", "-ompt"] @@ -589,13 +643,13 @@ def _run_ompt_test(self, test_name, purpose, work_dir): pprof() def _run_rocm_test(self, test_name, purpose, work_dir): - tau_exec = which(self.prefix.bin.tau_exec) - pprof = which(self.prefix.bin.pprof) + tau_exec = which(self.prefix.bin.tau_exec, required=True) + pprof = which(self.prefix.bin.pprof, required=True) with test_part(self, f"{test_name}", purpose, work_dir): make("all") if "+mpi" in self.spec: flags = ["-T", "mpi", "-rocm"] - mpirun = which(self.spec["mpi"].prefix.bin.mpirun) + mpirun = which(self.spec["mpi"].prefix.bin.mpirun, required=True) mpirun("-np", "4", self.prefix.bin.tau_exec, *flags, "./gpu-stream-hip") else: flags = ["-T", "serial", "-rocm"] diff --git a/repos/spack_repo/builtin/packages/tau/pycuda.patch b/repos/spack_repo/builtin/packages/tau/pycuda.patch new file mode 100644 index 00000000000..9ac013fd92f --- /dev/null +++ b/repos/spack_repo/builtin/packages/tau/pycuda.patch @@ -0,0 +1,30 @@ +--- spack-src/configure 2025-11-06 09:55:16.000000000 -0800 ++++ spack-src-patched/configure 2025-12-16 06:54:34.744812604 -0800 +@@ -11582,27 +11582,6 @@ + fi + fi + +-if [ $python = yes -a $cuda = yes ] ; then +- #We need the boost/python libraries to build the TAU's pycuda interface. +- echo "Checking for boost/python ... ${nnl}" +- cat <boost.cpp +-#include "boost/python.hpp" +-EOF +- pythoninc_cmd="$(echo $pythoninc | sed -e "s/ / -I/g")" +- #echo $cxx_compiler -I$pythoninc_cmd -c boost.cpp +- if $cxx_compiler -I$pythoninc_cmd -c boost.cpp 1>/dev/null 2>&1 ; then +- echo "yes" +- fixmakeargs="$fixmakeargs PYCUDA" +- else +- echo "boost/python libraries not found, skipping TAU's pycuda interface" +- fi +- rm -f boost.cpp boost.o +-fi +- +-if [ $python = yes -a $cuda = yes -a $boost = yes ] ; then +- fixmakeargs="$fixmakeargs PYCUDA_BOOST" +-fi +- + if [ ! $cupti = no ]; then + echo "Checking CUPTI version at ${cupti_path}/include ... ${nnl}" + cat < cupti_version.C diff --git a/repos/spack_repo/builtin/packages/tb_lmto/package.py b/repos/spack_repo/builtin/packages/tb_lmto/package.py index 3e9816c2afe..da84caebd95 100644 --- a/repos/spack_repo/builtin/packages/tb_lmto/package.py +++ b/repos/spack_repo/builtin/packages/tb_lmto/package.py @@ -11,8 +11,8 @@ class TbLmto(MakefilePackage): """ - The STUTTGART TB-LMTO program. The linear muffin-tin orbital (LMTO) method has been described in numerous publications. - Use of this software is subject to the license at + The STUTTGART TB-LMTO program. The linear muffin-tin orbital (LMTO) method has been described + in numerous publications. Use of this software is subject to the license at https://www2.fkf.mpg.de/andersen/LMTODOC/node180.html#SECTION000130000000000000000 """ diff --git a/repos/spack_repo/builtin/packages/tbl2asn/package.py b/repos/spack_repo/builtin/packages/tbl2asn/package.py index 75295851f99..201b53d58e0 100644 --- a/repos/spack_repo/builtin/packages/tbl2asn/package.py +++ b/repos/spack_repo/builtin/packages/tbl2asn/package.py @@ -17,21 +17,13 @@ class Tbl2asn(Package): version( "2022-04-26", sha256="c76481700e196ebd98a83f4174e0146569db9d6fe5753ac18691e9836d5c6a75" ) - version( - "2020-03-01", - sha256="7cc1119d3cfcbbffdbd4ecf33cef8bbdd44fc5625c72976bee08b1157625377e", - deprecated=True, - ) depends_on("libidn@1.34", type="run") - def url_for_version(self, ver): + def url_for_version(self, version): return "https://ftp.ncbi.nih.gov/toolbox/ncbi_tools/converters/by_program/tbl2asn/linux64.tbl2asn.gz" def install(self, spec, prefix): mkdirp(prefix.bin) - if spec.satisfies("@2020-03-01"): - install("../linux.tbl2asn", prefix.bin.tbl2asn) - else: - install("linux64.tbl2asn", prefix.bin.tbl2asn) + install("linux64.tbl2asn", prefix.bin.tbl2asn) set_executable(prefix.bin.tbl2asn) diff --git a/repos/spack_repo/builtin/packages/tblite/package.py b/repos/spack_repo/builtin/packages/tblite/package.py index df7188a095f..1f472c976c3 100644 --- a/repos/spack_repo/builtin/packages/tblite/package.py +++ b/repos/spack_repo/builtin/packages/tblite/package.py @@ -2,12 +2,14 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems import cmake, meson +from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.meson import MesonPackage from spack.package import * -class Tblite(MesonPackage): +class Tblite(CMakePackage, MesonPackage): """Light-weight tight-binding framework""" homepage = "https://tblite.readthedocs.io" @@ -18,8 +20,14 @@ class Tblite(MesonPackage): license("LGPL-3.0-or-later") + version("main", branch="main") + version("0.6.0", sha256="372281aedb89234168d00eb691addb303197a9462a9c55d145c835f2cf5e8b42") + version("0.5.0", sha256="e8a70b72ed0a0db0621c7958c63667a9cd008c97c868a4a417ff1bc262052ea8") + version("0.4.0", sha256="5c2249b568bfd3b987d3b28f2cbfddd5c37f675b646e17c1e750428380af464b") version("0.3.0", sha256="46d77c120501ac55ed6a64dea8778d6593b26fb0653c591f8e8c985e35884f0a") + build_system("cmake", "meson", default="meson") + variant("openmp", default=True, description="Use OpenMP parallelisation") variant("python", default=False, description="Build Python extension module") @@ -27,19 +35,29 @@ class Tblite(MesonPackage): depends_on("fortran", type="build") # generated depends_on("blas") - depends_on("dftd4@3:") depends_on("lapack") - depends_on("mctc-lib@0.3:") - depends_on("meson@0.57.2:", type="build") # mesonbuild/meson#8377 + + for build_system in ["cmake", "meson"]: + depends_on( + f"mctc-lib@0.3: build_system={build_system}", when=f"build_system={build_system}" + ) + depends_on( + f"simple-dftd3@0.3: build_system={build_system}", when=f"build_system={build_system}" + ) + depends_on(f"dftd4@3: build_system={build_system}", when=f"build_system={build_system}") + depends_on(f"toml-f build_system={build_system}", when=f"build_system={build_system}") + + depends_on("dftd4@:3.7", when="@:0.5") + depends_on("meson@0.57.2:", type="build", when="build_system=meson") # mesonbuild/meson#8377 depends_on("pkgconfig", type="build") depends_on("py-cffi", when="+python") depends_on("py-numpy", when="+python") depends_on("python@3.6:", when="+python") - depends_on("simple-dftd3") - depends_on("toml-f") extends("python", when="+python") + +class MesonBuilder(meson.MesonBuilder): def meson_args(self): lapack = self.spec["lapack"].libs.names[0] if lapack == "lapack": @@ -54,3 +72,8 @@ def meson_args(self): "-Dopenmp={0}".format(str("+openmp" in self.spec).lower()), "-Dpython={0}".format(str("+python" in self.spec).lower()), ] + + +class CMakeBuilder(cmake.CMakeBuilder): + def cmake_args(self): + return [self.define_from_variant("WITH_OpenMP", "openmp")] diff --git a/repos/spack_repo/builtin/packages/tcl/package.py b/repos/spack_repo/builtin/packages/tcl/package.py index 14e493bb70d..3659b2bc3ba 100644 --- a/repos/spack_repo/builtin/packages/tcl/package.py +++ b/repos/spack_repo/builtin/packages/tcl/package.py @@ -10,6 +10,7 @@ from spack_repo.builtin.build_systems.nmake import NMakePackage from spack_repo.builtin.build_systems.sourceforge import SourceforgePackage +import spack.util.environment as envutil from spack.package import * is_windows = sys.platform == "win32" @@ -41,6 +42,12 @@ class Tcl(AutotoolsPackage, NMakePackage, SourceforgePackage): license("TCL") + version("9.0.2", sha256="e074c6a8d9ba2cddf914ba97b6677a552d7a52a3ca102924389a05ccb249b520") + version( + "8.6.17", + sha256="a3903371efcce8a405c5c245d029e9f6850258a60fa3761c4d58995610949b31", + preferred=True, + ) version("8.6.12", sha256="26c995dd0f167e48b11961d891ee555f680c175f7173ff8cb829f4ebcde4c1a6") version("8.6.11", sha256="8c0486668586672c5693d7d95817cb05a18c5ecca2f40e2836b9578064088258") version("8.6.10", sha256="5196dbf6638e3df8d5c87b5815c8c2b758496eb6f0e41446596c9a4e638d87ed") @@ -161,7 +168,7 @@ def setup_dependent_build_environment( # where a system provided tcl is run against the standard libraries # of a Spack built tcl. See issue #7128 that relates to python but # it boils down to the same situation we have here. - if not is_system_path(self.spec.prefix.bin): + if not envutil.is_system_path(self.spec.prefix.bin): env.prepend_path("PATH", self.spec.prefix.bin) # WARNING: paths in $TCLLIBPATH must be *space* separated, diff --git a/repos/spack_repo/builtin/packages/tcl_bwidget/package.py b/repos/spack_repo/builtin/packages/tcl_bwidget/package.py new file mode 100644 index 00000000000..b4527bf7ab9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/tcl_bwidget/package.py @@ -0,0 +1,26 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.sourceforge import SourceforgePackage + +from spack.package import * + + +class TclBwidget(SourceforgePackage, Package): + """BWidget is a mega-widget package.""" + + homepage = "https://core.tcl-lang.org/bwidget/home" + sourceforge_mirror_path = "tcllib/BWidget/1.9.13/bwidget-1.9.13.tar.gz" + maintainers("gjsd2") + + license("TCL") + + version("1.9.13", sha256="76d8f42280e7160242186d12437949830eabd5009a6c14f4e7dba0f661403a81") + + depends_on("tcl@8.1:") + + extends("tcl") + + def install(self, spec, prefix): + install_tree(".", prefix.lib) diff --git a/repos/spack_repo/builtin/packages/tcl_togl/package.py b/repos/spack_repo/builtin/packages/tcl_togl/package.py new file mode 100644 index 00000000000..05e7df3f3d4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/tcl_togl/package.py @@ -0,0 +1,73 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class TclTogl(AutotoolsPackage): + """Tcl-Togl provides a platform independent Tcl/Tk widget + for using OpenGL rendering contexts""" + + homepage = "https://togl.sourceforge.net/" + url = "https://downloads.sourceforge.net/project/togl/Togl/2.0/Togl2.0-src.tar.gz" + maintainers("gjsd2") + + license("BSD") + + version("2.0", sha256="b7d4a90bbad3aca618d505ee99e7fd8fb04c829f63231dda2360f557ba3f7610") + + variant("64bit", default=False, description="Build and link with shared libraries") + variant("64bit-vis", default=False, description="Enable 64bit Sparc VIS support") + variant("load", default=True, description='Allow dynamic loading and "load" command') + variant("rpath", default=False, description="Disable rpath support") + variant("shared", default=True, description="Build and link with shared libraries") + variant("stubs", default=True, description="Build and link with stub libraries") + variant("symbols", default=True, description="Build with debugging symbols") + variant("threads", default=True, description="Build with threads") + variant("wince", default=False, description="Enable Win/CE support") + + with when("build_system=autotools"): + with default_args(type="build"): + depends_on("autoconf") + depends_on("automake") + depends_on("libtool") + + depends_on("mesa") + + depends_on("c", type="build") + depends_on("tk@8.1:") + depends_on("tcl@8.1:") + depends_on("libxmu") + + extends("tcl") + + def configure_args(self): + args = [] + + for enable_variant in ( + "64bit", + "64bit-vis", + "load", + "rpath", + "shared", + "stubs", + "symbols", + "threads", + "wince", + ): + args.extend(self.enable_or_disable(enable_variant)) + + for with_dep in ("tcl", "tk"): + args.append(f"--with-{with_dep}={self.spec[with_dep].prefix.lib}") + args.append(f"--prefix={self.prefix}") + args.append(f"--exec-prefix={self.prefix}") + + return args + + def setup_dependent_run_environment(self, env, dependent_spec): + env.prepend_path( + "LD_LIBRARY_PATH", join_path(self.prefix.lib, f"Togl{self.version.up_to(2)}") + ) diff --git a/repos/spack_repo/builtin/packages/teckit/package.py b/repos/spack_repo/builtin/packages/teckit/package.py index 14842ca9ad1..8588fc73618 100644 --- a/repos/spack_repo/builtin/packages/teckit/package.py +++ b/repos/spack_repo/builtin/packages/teckit/package.py @@ -45,5 +45,5 @@ def configure_args(self): return args def autoreconf(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("./autogen.sh") diff --git a/repos/spack_repo/builtin/packages/tecplot/package.py b/repos/spack_repo/builtin/packages/tecplot/package.py index 7e051f5d808..34429393345 100644 --- a/repos/spack_repo/builtin/packages/tecplot/package.py +++ b/repos/spack_repo/builtin/packages/tecplot/package.py @@ -20,24 +20,93 @@ class Tecplot(Package): maintainers("LRWeber") + license("LicenseRef-Tecplot-Proprietary", checked_by="alecbcs") + + redistribute(source=False, binary=False) + + # Semantic Versioning + version( + "2025.2.2", + sha256="0359d87036ff7124865aba9f0da3ca8f2dd458277ab5689e87ed7e613dcae5d6", + expand=False, + ) + version( + "2025.2.1", + sha256="2deba2be44fed96935ec07111459b2d4d22b51bcf321de32a8d0dc7460359e3d", + expand=False, + ) + version( + "2025.2.0", + sha256="640e85cf9037c437f071265a8424291096095d823ee0a2af1245747b31dcc1e1", + expand=False, + ) + version( + "2025.1.0", + sha256="1927ebe5d5ca6445940bfaa2bd55de48c75f7a339f1e3fb2d502796855ec0432", + expand=False, + ) + version( + "2024.1.1", + sha256="46012aab7e3f18d77344448d1e1a8d43a58f5e35fb0a296c593199810df4bc8e", + expand=False, + ) + version( + "2024.1.0", + sha256="709022a5d5532d46a47cfa3bf0698a4ea8428c7a0dea2feb708a5add8091a8f0", + expand=False, + ) + version( + "2023.2.0", + sha256="6e19da9d1e6b1e70b3619f0d67707019d2c35690c068c69078edcbc7b8879498", + expand=False, + ) + version( + "2023.1.0", + sha256="58e7f4de875e65047f4edd684013d0ff538df6246f00c059458989f281be4c93", + expand=False, + ) + version( + "2022.2.1", + sha256="e30cb7bf894e7cd568a2b24beb4bf667f1781ae27b59bb73410fafe12ddfdcdf", + expand=False, + deprecated=True, + ) + # Previous Versioning + version( + "2025r2", + # 2025 R2 M1 / 2025.2.1 + sha256="2deba2be44fed96935ec07111459b2d4d22b51bcf321de32a8d0dc7460359e3d", + expand=False, + deprecated=True, + ) + version( + "2025r1", + # 2025 R1 / 2025.1.0 + sha256="1927ebe5d5ca6445940bfaa2bd55de48c75f7a339f1e3fb2d502796855ec0432", + expand=False, + deprecated=True, + ) version( "2024r1", + # 2024 R1 M1 / 2024.1.1 sha256="46012aab7e3f18d77344448d1e1a8d43a58f5e35fb0a296c593199810df4bc8e", expand=False, + deprecated=True, ) version( "2023r1", + # 2023 R1 / 2023.1.0 sha256="58e7f4de875e65047f4edd684013d0ff538df6246f00c059458989f281be4c93", expand=False, + deprecated=True, ) version( "2022r2", + # 2022 R2 / 2022.2.1 (M1 not specified in download list despite patch version) sha256="e30cb7bf894e7cd568a2b24beb4bf667f1781ae27b59bb73410fafe12ddfdcdf", expand=False, + deprecated=True, ) - # Deprecated versions - version("2018r2", md5="d3cf54a7555e0259b7ba0d82fef23bc3", expand=False, deprecated=True) - version("2017r1", md5="06a8057d33a519607720d4c621cd3f50", expand=False, deprecated=True) # Licensing license_required = True @@ -45,7 +114,16 @@ class Tecplot(Package): license_files = ["tecplotlm.lic"] def url_for_version(self, version): - return "file://{0}/tecplot360ex{1}_linux64.sh".format(os.getcwd(), version) + # NOTE: Official downloads only specify major+minor (year+release) versions in filenames. + # Patch (maintenance) versions can only be verified by the hash. + if "r" in str(version): + # Parse as previous versioning + return "file://{0}/tecplot360ex{1}_linux64.sh".format(os.getcwd(), version) + else: + # Parse as semantic versioning + return "file://{0}/tecplot360ex{1}r{2}_linux64.sh".format( + os.getcwd(), version[0], version[1] + ) def install(self, spec, prefix): set_executable(self.stage.archive_file) diff --git a/repos/spack_repo/builtin/packages/tempestextremes/package.py b/repos/spack_repo/builtin/packages/tempestextremes/package.py new file mode 100644 index 00000000000..9b989a07358 --- /dev/null +++ b/repos/spack_repo/builtin/packages/tempestextremes/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 Tempestextremes(CMakePackage): + """TempestExtremes is a growing collection of detection and + characterization algorithms for large climate datasets, leveraging C++ for + rapid throughput and a command line interface that maximizes flexibility + of each kernel. The tracking kernels in this package have been already + used for tracking and characterizing tropical cyclones (TCs), extratropical + cyclones (ETCs), monsoonal depressions, atmospheric blocks, atmospheric + rivers, and mesoscale convective systems (MCSs). By considering multiple + extremes within the same framework, we can study the joint characteristics + of extremes while minimizing the total data burden. + """ + + homepage = "https://github.com/ClimateGlobalChange/tempestextremes" + url = "https://github.com/ClimateGlobalChange/tempestextremes/archive/refs/tags/v2.3.tar.gz" + + maintainers("andrewdnolan", "paullric", "xylar") + + license("BSD-2-Clause", checked_by="andrewdnolan") + + version("2.3.1", sha256="eff3564a99b0711335bd4f08e3a7dcec401c56d58fe6ef2d1ae778d7f7bf04e0") + version("2.3", sha256="1194a3825ce7754bda6bdfc97da5390c8e37895f2a41fb2f22a480df0b777564") + + variant("mpi", default=True, description="Build with MPI support") + + depends_on("cxx", type="build") + + # Required dependencies + depends_on("cmake@3.12:", type="build") + depends_on("netcdf-c") + + # Optional dependencies + depends_on("mpi", when="+mpi") + + def cmake_args(self): + args = [self.define_from_variant("ENABLE_MPI", "mpi")] + return args diff --git a/repos/spack_repo/builtin/packages/tempestremap/package.py b/repos/spack_repo/builtin/packages/tempestremap/package.py index 92800822ecf..cafc8ec3183 100644 --- a/repos/spack_repo/builtin/packages/tempestremap/package.py +++ b/repos/spack_repo/builtin/packages/tempestremap/package.py @@ -19,9 +19,16 @@ class Tempestremap(AutotoolsPackage): homepage = "https://github.com/ClimateGlobalChange/tempestremap" url = "https://github.com/ClimateGlobalChange/tempestremap/archive/v2.0.5.tar.gz" - maintainers("iulian787", "vijaysm", "paullric") + maintainers("iulian787", "vijaysm", "paullric", "xylar", "andrewdnolan") + version("2.2.0", sha256="548b902701ec7c3b6970e0c83c6b93bfb7fb38ecc30b6ef89de8182efd948fa3") version("2.1.6", sha256="d2208b5d6952eba5003ee7abcf22f46a254ba03f6b76dcc4d246068573d424e2") + version("2.1.5", sha256="1c8976b20555330294523114d18ecdd6e885df7af1887710a7a5a96e403770d3") + version("2.1.4", sha256="94e0bb4e1be9ec7282936f4d89996e0b99d89166fff14995bb7a3d3964577ebe") + version("2.1.3", sha256="f3925871b9bc19c39002665970283a6f70ec5e159f0c87c74d1ef4f7efa4c26a") + version("2.1.2", sha256="18421e1b81ecb5b2aa3bb8f3e9df084586d90c13b27960b78202d264f587934e") + version("2.1.1", sha256="f5ea21f82b358ba127550fc1f49e701cba0379d22ce030c274135109f678b980") + version("2.1.0", sha256="2dfae7d81d685eafd36da3b4a989676c0b2800b91e4fdac3e5ceb7a20eff99f2") version("2.0.5", sha256="8618f5cbde450922efa1d77e67b062c557788b0cf4304adca30237afe3ade887") version("2.0.4", sha256="8349eeb604e97b13d2ecde8626a69e579a7af70ad0e8a6925a8bb4306a4963a4") version("2.0.3", sha256="b4578c2cb101ba091a10dc914e15ac968257f5db27ca78bc9fb5dbd70bce191f") diff --git a/repos/spack_repo/builtin/packages/tempo/package.py b/repos/spack_repo/builtin/packages/tempo/package.py index c1afde7c2f5..bf012b762ba 100644 --- a/repos/spack_repo/builtin/packages/tempo/package.py +++ b/repos/spack_repo/builtin/packages/tempo/package.py @@ -19,7 +19,7 @@ class Tempo(AutotoolsPackage): # more: cannot open /...../gcc-11.3.0/tempo-master-lnizs: No such file or directory # - homepage = "http://tempo.sourceforge.net/" + homepage = "https://tempo.sourceforge.net/" git = "https://git.code.sf.net/p/tempo/tempo.git" version("master", branch="master", preferred=True) @@ -45,11 +45,10 @@ def edit(self): @run_after("install") def post_install_packages(self): - # Copy some files over needed by TEMPO, again only for the master version if "master" in str(self.version): cd(self.stage.source_path) - cp = which("cp") + cp = which("cp", required=True) cp("obsys.dat", join_path(self.prefix, "obsys.dat")) cp("tempo.hlp", join_path(self.prefix, "tempo.hlp")) diff --git a/repos/spack_repo/builtin/packages/termcap/package.py b/repos/spack_repo/builtin/packages/termcap/package.py index bcdb360d18a..aa89c036f93 100644 --- a/repos/spack_repo/builtin/packages/termcap/package.py +++ b/repos/spack_repo/builtin/packages/termcap/package.py @@ -22,3 +22,11 @@ class Termcap(AutotoolsPackage, GNUMirrorPackage): version("1.3", sha256="3eb4b98ae08408ca65dd9275f3c8e56e2feac1261fae914a9b21273db51cf000") depends_on("c", type="build") # generated + + def flag_handler(self, name, flags): + if name == "cflags": + if self.spec.satisfies("%gcc@14:"): + flags.append("-Wno-error=implicit-function-declaration") + if self.spec.satisfies("%gcc@15:"): + flags.append("-std=gnu17") + return (flags, None, None) diff --git a/repos/spack_repo/builtin/packages/terminalimageviewer/package.py b/repos/spack_repo/builtin/packages/terminalimageviewer/package.py new file mode 100644 index 00000000000..fd2a875de8e --- /dev/null +++ b/repos/spack_repo/builtin/packages/terminalimageviewer/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.makefile import MakefilePackage + +from spack.package import * + + +class Terminalimageviewer(MakefilePackage): + """ + Small C++ program to display images in a (modern) terminal + using RGB ANSI codes and unicode block graphic characters. + """ + + homepage = "https://github.com/stefanhaustein/TerminalImageViewer" + url = "https://github.com/stefanhaustein/TerminalImageViewer/archive/refs/tags/v1.2.1.tar.gz" + + license("Apache-2.0 OR GPL-3.0-or-later", checked_by="ExplorerRay") + + version("1.2.1", sha256="08d0c30e3ffa47b69d1bce07bea56f04b7deb4a8a79307ce435a4f0852fbcd5f") + version("1.2", sha256="f9b3c96554a24eccc3b4cdce2ce37fd3bade24a16a2e13038233f3b26a662542") + + depends_on("gcc", type="build") + + depends_on("imagemagick") + + build_directory = "src" + + def edit(self, spec, prefix): + makefile = FileFilter("src/Makefile") + makefile.filter(r"prefix *\?=\s*\/usr\/local", f"prefix ?= {prefix}") diff --git a/repos/spack_repo/builtin/packages/testdfsio/package.py b/repos/spack_repo/builtin/packages/testdfsio/package.py deleted file mode 100644 index 8dead882983..00000000000 --- a/repos/spack_repo/builtin/packages/testdfsio/package.py +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - - -from spack_repo.builtin.build_systems.maven import MavenPackage - -from spack.package import * - - -class Testdfsio(MavenPackage): - """A corrected and enhanced version of Apache Hadoop TestDFSIO""" - - homepage = "https://github.com/asotirov0/testdfsio" - url = "https://github.com/asotirov0/testdfsio/archive/0.0.1.tar.gz" - - version( - "0.0.1", - sha256="fe8cc47260ffb3e3ac90e0796ebfe73eb4dac64964ab77671e5d32435339dd09", - deprecated=True, - ) - - depends_on("hadoop@3.2.1:", type="run") diff --git a/repos/spack_repo/builtin/packages/tests_sos/package.py b/repos/spack_repo/builtin/packages/tests_sos/package.py index c52b1e5455b..0450d4fdee0 100644 --- a/repos/spack_repo/builtin/packages/tests_sos/package.py +++ b/repos/spack_repo/builtin/packages/tests_sos/package.py @@ -31,7 +31,7 @@ class TestsSos(AutotoolsPackage): depends_on("sos", type=("build", "run")) def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./autogen.sh") def setup_build_environment(self, env: EnvironmentModifications) -> None: diff --git a/repos/spack_repo/builtin/packages/texinfo/package.py b/repos/spack_repo/builtin/packages/texinfo/package.py index 55154a1a004..42f58451620 100644 --- a/repos/spack_repo/builtin/packages/texinfo/package.py +++ b/repos/spack_repo/builtin/packages/texinfo/package.py @@ -27,6 +27,7 @@ class Texinfo(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later") + version("7.2", sha256="e86de7dfef6b352aa1bf647de3a6213d1567c70129eccbf8977706d9c91919c8") version("7.1", sha256="dd5710b3a53ac002644677a06145748e260592a35be182dc830ebebb79c5d5a0") version("7.0.3", sha256="3cc5706fb086b895e1dc2b407aade9f95a3a233ff856273e2b659b089f117683") version("7.0", sha256="9261d4ee11cdf6b61895e213ffcd6b746a61a64fe38b9741a3aaa73125b35170") @@ -40,6 +41,8 @@ class Texinfo(AutotoolsPackage, GNUMirrorPackage): version("5.1", sha256="50e8067f9758bb2bf175b69600082ac4a27c464cb4bcd48a578edd3127216600") version("5.0", sha256="2c579345a39a2a0bb4b8c28533f0b61356504a202da6a25d17d4d866af7f5803") + variant("xs", default=False, description="Enable Perl XS") + depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -63,12 +66,23 @@ class Texinfo(AutotoolsPackage, GNUMirrorPackage): patch("nvhpc.patch", when="%nvhpc") - @property - def build_targets(self): - targets = [] - if self.spec.satisfies("@7.0:"): - targets.append(f"CFLAGS={self.compiler.c11_flag}") - return targets + def configure_args(self): + spec = self.spec + config_args = [] + + if spec.satisfies("+xs"): + config_args.append("--enable-perl-xs") + else: + config_args.append("--disable-perl-xs") + + return config_args + + def flag_handler(self, name, flags): + if name == "cflags": + if self.spec.satisfies("@7.0:7.1"): + flags.append(self.compiler.c11_flag) + + return (flags, None, None) def setup_build_environment(self, env: EnvironmentModifications) -> None: # texinfo builds Perl XS modules internally, and by default it overrides the diff --git a/repos/spack_repo/builtin/packages/texlive/package.py b/repos/spack_repo/builtin/packages/texlive/package.py index 6490317f8d7..d830a0be974 100644 --- a/repos/spack_repo/builtin/packages/texlive/package.py +++ b/repos/spack_repo/builtin/packages/texlive/package.py @@ -2,6 +2,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os import platform import re @@ -28,6 +29,18 @@ class Texlive(AutotoolsPackage): # Add information for new versions below. releases = [ + { + "version": "20260301", + "year": "2026", + "sha256_source": "cb120d314d3ceb23ac608af17ddd2c623afcf02331f400a0f25eead5b8ac1d70", + "sha256_texmf": "349eb7c5c2c15333d77490a52934b053c6dcb88834f2224978f7a4edf67940e7", + }, + { + "version": "20250308", + "year": "2025", + "sha256_source": "fffdb1a3d143c177a4398a2229a40d6a88f18098e5f6dcfd57648c9f2417490f", + "sha256_texmf": "08dcda7430bf0d2f6ebb326f1e197e1473d3f7cc0984a2adb7236df45316c7cf", + }, { "version": "20240312", "year": "2024", @@ -109,6 +122,9 @@ class Texlive(AutotoolsPackage): build_directory = "spack-build" + variant("doc", default=False, description="Install the documentation files") + variant("src", default=False, description="Install the source files") + def tex_arch(self): tex_arch = "{0}-{1}".format(platform.machine(), platform.system().lower()) return tex_arch @@ -149,7 +165,18 @@ def setup_texlive(self): with working_dir("spack-build"): make("texlinks") - copy_tree("texlive-{0}-texmf".format(self.version.string), self.prefix) + ignore_doc = "~doc" in self.spec + ignore_src = "~src" in self.spec + + ignore = lambda f: ( + len(f.split(os.sep)) > 1 + and ( + (ignore_doc and f.split(os.sep)[1] == "doc") + or (ignore_src and f.split(os.sep)[1] == "source") + ) + ) + + copy_tree("texlive-{0}-texmf".format(self.version.string), self.prefix, ignore=ignore) # Create and run setup utilities fmtutil_sys = Executable(join_path(self.prefix.bin, self.tex_arch(), "fmtutil-sys")) @@ -162,7 +189,7 @@ def setup_texlive(self): mtxrun_lua = join_path( self.prefix, "texmf-dist", "scripts", "context", "lua", "mtxrun.lua" ) - chmod = which("chmod") + chmod = which("chmod", required=True) chmod("+x", mtxrun_lua) mtxrun = Executable(mtxrun_lua) mtxrun("--generate") diff --git a/repos/spack_repo/builtin/packages/tfel/package.py b/repos/spack_repo/builtin/packages/tfel/package.py index 3b6a2856262..42a145bbc2c 100644 --- a/repos/spack_repo/builtin/packages/tfel/package.py +++ b/repos/spack_repo/builtin/packages/tfel/package.py @@ -37,6 +37,7 @@ class Tfel(CMakePackage): # development branches version("master", branch="master") + version("rliv-5.1", branch="rliv-5.1") version("rliv-5.0", branch="rliv-5.0") version("rliv-4.2", branch="rliv-4.2") version("rliv-4.1", branch="rliv-4.1") @@ -50,90 +51,128 @@ class Tfel(CMakePackage): version("rliv-1.2", branch="rliv-1.2") # released versions - version( - "5.0.1", - sha256="820b2f9d54e237b2c2d9d6f06aaf7d4a1d3f34fb373e6549bee4fd8b55ecfad1", - preferred=True, - ) - version("5.0.0", sha256="fe1ec39eba7f23571c2b0c773dab1cc274fee4512c5b2f2fc54b231da4502e87") - version("4.2.3", sha256="a4f636ff9aeb6146a2d4f4bfd261092d6aa6c89be1ca725cefa8c02a5ec5183a") - version("4.2.2", sha256="021864ad5b27ffce1915bcacc8f39f3e8a72ce6bd32e80a61ea0998a060180e5") - version("4.2.1", sha256="14f27257014a992a4e511f35390e4b9a086f6a5ed74087f891f8c00306f1758f") - version("4.2.0", sha256="cf8a309c4d19a8e36232f8540ff28aa0d6285645f8dfb1ac57dd481ba3453e02") - version("4.1.4", sha256="a7db8e997a8d8cdf0551afc0b4370c698f97def3d9afc6939fed55ff9aadcaed") - version("4.1.3", sha256="c1d47345194fcffe98ff15b454ba721432e58b1943427362af8653ee8663875a") - version("4.1.2", sha256="e9e7c2aeef7d19f92ffd83b2a7fc54186e648d25e42696b5cba7c4bfa194276a") - version("4.1.1", sha256="e0f229094e88a2d6c6a78ae60fa77d2f4b8294e9d810c21fd7df61004bf29a33") - version("4.1.0", sha256="7505c41da9df5fb3c281651ff29b58a18fd4d91b92f839322f0267269c5f1375") - version("4.0.5", sha256="e0c0f937d6b826d90897ec28d1a6f03ae8dd2e2383f0ed986771e3cc49fa8921") - version("4.0.4", sha256="cc2926387c1e948866f9e0e8f0f09b699d072cc6fd1d345631cb0038d8292817") - version("4.0.3", sha256="c21c13fbd5ad8f52e9874a7931c619b9b7e69d69a2ab003e09628a1e9945542d") - version("4.0.2", sha256="f5c8a285e00f334fd3e1a95f9a393fed393990ee827dae3766da1decfaa1074e") - version("4.0.1", sha256="f54741b7e654cb12511ca68c6494a4789ba41b5ada4cd345ad2bc7da631309d1") - version("4.0.0", sha256="7a0c32c8a9cd2fd65cbcb54fff802f303665d7cba5d46f92ff3d55f057c92845") - version("3.4.8", sha256="cd6b1493accb251378e082b305a51601b7df48a428d03f1970fbb78a900f37fd") - version("3.4.7", sha256="5b79b58b9f234169eb47358f9717e8ae7401533e4e645f442194fcefdb4bcb98") - version("3.4.6", sha256="88c3d076ca360ffbadb6ffeb6cbc1267a9da0e098e7c182407501820ba2bf6e7") - version("3.4.5", sha256="064d6926106e0052829182087a025f58fc3e98dfb69967e0795d9cdb4e1500b9") - version("3.4.4", sha256="a518a7a761fec6c92fab6dc9df5694c28aad2554c7c649d707dfdc71fe93d2ca") - version("3.4.3", sha256="e58515effe57d473385fe0b592d9e1d1286c0901496c61268d9efd92a2550849") - version("3.4.2", sha256="f39e65b2282fd3b108081388f161ba662407b192fed68fafe324c7528026a202") - version("3.4.1", sha256="04cd4257e39e1b05e02b12ad941106fff4d439934bdfe6e950c08bab23e2a4ba") - version("3.4.0", sha256="176feb4c1726d0f21f4c656b20620dce6f99ab7f5f09a66905aeb643a316bbc1") - version("3.3.7", sha256="6bb99af2a218fd712693367d3dfe62f04f78ac5cc13b7f46d9176321230cf06d") - version("3.3.6", sha256="e56e999675fe08b0efdcbdd8b4bde8ab45d249098ec8d9641104819eb930bedf") - version("3.3.5", sha256="4319a7a6363f69f7f0c78abb0741bc90b49dc777831c2886b13aca61c79bae04") - version("3.3.4", sha256="3829e0b07520a14b17a8e75f879683a0d97b04b897aeb3ad0dd96dc94c0fcd6b") - version("3.3.3", sha256="5a1fb43a8086e594e0a7234c1f227e6e005d384fd84affe3acadccb68fe2bbf6") - version("3.3.2", sha256="17127ffdf92367c10041258f70a88ac3dcb0a7d89c1766a6aa1ebaeb4d03d55d") - version("3.3.1", sha256="ad07329c25874832fbacc999b5f88d9b9ab84415bc897a6f3cae5b4afcd7661f") - version("3.3.0", sha256="884ad68b0fbbededc3a602d559433c24114ae4534dc9f0a759d31ca3589dace0") - version("3.2.12", sha256="7c0fecbf2ee603c8415ae64282b9cd2a6739d19c73fc79ab72beca29f7072dca") - version("3.2.11", sha256="3f00343e5cd66d3a95903cbd08f078d48cea75b64b444e3b48dddf3aa5a6aa02") - version("3.2.10", sha256="3fe24a2811811d68ce5735f601d12fae7b1da465ac5b2917bd0887782218f2bd") - version("3.2.9", sha256="4ee26f2b5db24dc10113100ae0165cbbe8c7960c99c0e64ec96410788774aa54") - version("3.2.8", sha256="8bc3db975a87c3f0da3a857ab45cd237ee02f4ab35094a7db28b01d92676a78c") - version("3.2.7", sha256="05a055a955dd52f0b2dbf9d518a86c58805b2b63f3766268d72cacd6126c187d") - version("3.2.6", sha256="ae80c76d92aeae207e307436aed32bbaed913a437ae57b5ee128ce4f543f20a9") - version("3.2.5", sha256="194e799ca8d2f7ffea25aa3842c48cfc12850c252d851ce03941b5e3ae533b21") - version("3.2.4", sha256="e7ac7e61fb3e02301285885bb3dc81ca1b09bd6e2929d15c755555d66088fe33") - version("3.2.3", sha256="ac429c50ad1901d9d6e518a1cf6505d7a404c21d8ad3c6e5b0acecc77f20e3f7") - version("3.2.2", sha256="69b01ae0d1f9140b619aaa9135948284ff40d4654672c335e55ab4934c02eb43") - version("3.2.1", sha256="12786480524a7fe86889120fb334fa00211dfd44ad5ec71e2279e7adf1ddc807") - version("3.2.0", sha256="089d79745e9f267a2bd03dcd8841d484e668bd27f5cc2ff7453634cb39016848") - version("3.1.15", sha256="5fcf7b56cbc01892c43361055575fcb3a464e4115c71252f6025363082cb6df6") - version("3.1.14", sha256="04a11c146dede67777b3311e838305c9f5856d56154b263dc8b23168226b51f1") - version("3.1.13", sha256="f0e5dddb5d32931dcab2d060029da31aacb47cd3251297d701b86d93c8fa0255") - version("3.1.12", sha256="770aa4680063ddd7be4f735ed1ec9402e83502d1ceb688c79cdba27490b7bf98") - version("3.1.11", sha256="578e3463db029bfed7b24bfa1226394e6998cc95959b46246ab9bf5cfb6d65f0") - version("3.1.10", sha256="635a2507f139bb6d893e0a7bb223cd1d9ddab5dfddee179a3b2e9f8b0b63e065") - version("3.1.9", sha256="8aeb020beddd125c207271e01d3e7d3985a91268dbf0bbc6132d217cc72b12a8") - version("3.1.8", sha256="8c99ef80a27b3e791d78de2ceb1111396989942424697eccbc886edc3983163f") - version("3.1.7", sha256="9cd8beab96c8f9cc5647a3452e61b06968a172f5875a72db227e6148fdbf294c") - version("3.1.6", sha256="27684884cff441a6c548ffe5d88e35e2b532ed100c97e3125e89c82985a08c50") - version("3.1.5", sha256="e22cf2110f19666f004b8acda32e87beae74721f82e7f83fd0c4fafb86812763") - version("3.1.4", sha256="8dc2904fc930636976baaf7e91ac89c0377afb1629c336343dfad8ab651cf87d") - version("3.1.3", sha256="2022fa183d2c2902ada982ec6550ebe15befafcb748fd988fc9accdde7976a42") - version("3.1.2", sha256="2eaa191f0699031786d8845ac769320a42c7e035991d82b3738289886006bfba") - version("3.1.1", sha256="a4c0c21c6c22752cc90c82295a6bafe637b3395736c66fcdfcfe4aeccb5be7af") - version("3.1.0", sha256="dd67b400b5f157aef503aa3615b9bf6b52333876a29e75966f94ee3f79ab37ad") - version("3.0.15", sha256="ff5b51f7665ec639ed10fa1aaf3370cf21d85bc3a81439ab482a82957e94eeca") - version("3.0.14", sha256="5422031c63ffbd43436bd1471e107b6821649b8f2da5db77fce363a72c1d752c") - version("3.0.13", sha256="04987d318c46294853481fa987dd09e8ca38493b8994a363d20623f9b8f009ff") - version("3.0.12", sha256="f7dae9e5a00c721445b3167ec7bc71747bab047ddb36103f232b72d3e4d3cd00") - version("3.0.11", sha256="3d2d249534563887d301f6be5c4c2e4be33258b9d712d550d4c71271b764cc2d") - version("3.0.10", sha256="1604f22948b4af6ef84839d97909f7011ce614254e1a6de092ddc61832f7d343") - version("3.0.9", sha256="461dbb9e78fb6de9eaff21e387f5441020a077bba51d47b6510f11312e5ee333") - version("3.0.8", sha256="3639f11d14278e20814e8673e097d26161e26117128289516be5b1b1e1387e57") - version("3.0.7", sha256="4f4e04a1c1f360f27bbd4f72268dd31b46e2cef676ea8d36c35f21569540c76f") - version("3.0.6", sha256="3359e928dbde0f9ddbc9cd62bd2c2dbafe38543aad68fda9f3768fcc5c219f66") - version("3.0.5", sha256="abf58f87962cf98b6129e873a841819a2a751f2ebd4e08490eb89fb933cd7887") - version("3.0.4", sha256="e832d421a0dc9f315c60c5ea23f958dcaa299913c50a4eb73bde0e053067a3cc") - version("3.0.3", sha256="3ff1c14bcc27e9b615aab5748eaf3afac349050b27b55a2b57648aba28b801ac") - version("3.0.2", sha256="edd54ac652e99621410137ea2f7f90f133067615a17840440690365e2c3906f5") - version("3.0.1", sha256="fa239ddd353431954f2ab7443cf85d86c862433e72f7685c1b933ae12dbde435") - version("3.0.0", sha256="b2cfaa3d7900b4f32f327565448bf9cb8e4242763f651bff8f231f378a278f9e") - version("2.0.4", sha256="cac078435aad73d9a795516f161b320d204d2099d6a286e786359f484355a43a") + version("5.1.0", sha256="1afd98200de332e97e86d109ce0e1aaa8f18cc6c6c81daec3218809509cdfad7") + version("5.0.2", sha256="910612fd9b76d0708a05d2b68a0d83f9f89aecd2127b097e2923083acc504c45") + version("4.2.4", sha256="6dfdaba314a9f6b3517895d056fa3a9b6aa107dda6f69dae21ca3a93982e15fb") + version("4.1.5", sha256="545fa3b91f3fe34835ea42efc7f12a384835c0964b3fa1bc739a143cfb9da206") + version("4.0.6", sha256="f7d843cdffd299220095782afc6aac698c7599ca582fc20a6605b2bbfce0db90") + version("3.4.9", sha256="cb9b337eb872f631d6bf37b20f62512f93819b39325b1ebb6840cc723a5fbbc3") + version("3.3.8", sha256="8a23d8c00e26fa7d7086dd5b8d83273fc9cc0a41f1be0a484ac1a4d56c1d7aad") + version("3.2.13", sha256="412071c243e9bcd1eeb7fb8edc209cd0fb689969af319b7553ecc7f60fa9de2e") + version("3.1.16", sha256="ec6d8d5280426dfcad9de174a2156b76ab9c99f52b4d1436b63ed4d042550efe") + version("3.0.16", sha256="3e03778ee3514304b008d40c0f7ec5c22a9ec56bc7d26d84d81ae3a32709e8e3") + + with default_args(deprecated=True): + version("5.0.1", sha256="820b2f9d54e237b2c2d9d6f06aaf7d4a1d3f34fb373e6549bee4fd8b55ecfad1") + version("5.0.0", sha256="fe1ec39eba7f23571c2b0c773dab1cc274fee4512c5b2f2fc54b231da4502e87") + version("4.2.3", sha256="a4f636ff9aeb6146a2d4f4bfd261092d6aa6c89be1ca725cefa8c02a5ec5183a") + version("4.2.2", sha256="021864ad5b27ffce1915bcacc8f39f3e8a72ce6bd32e80a61ea0998a060180e5") + version("4.2.1", sha256="14f27257014a992a4e511f35390e4b9a086f6a5ed74087f891f8c00306f1758f") + version("4.2.0", sha256="cf8a309c4d19a8e36232f8540ff28aa0d6285645f8dfb1ac57dd481ba3453e02") + version("4.1.4", sha256="a7db8e997a8d8cdf0551afc0b4370c698f97def3d9afc6939fed55ff9aadcaed") + version("4.1.3", sha256="c1d47345194fcffe98ff15b454ba721432e58b1943427362af8653ee8663875a") + version("4.1.2", sha256="e9e7c2aeef7d19f92ffd83b2a7fc54186e648d25e42696b5cba7c4bfa194276a") + version("4.1.1", sha256="e0f229094e88a2d6c6a78ae60fa77d2f4b8294e9d810c21fd7df61004bf29a33") + version("4.1.0", sha256="7505c41da9df5fb3c281651ff29b58a18fd4d91b92f839322f0267269c5f1375") + version("4.0.5", sha256="e0c0f937d6b826d90897ec28d1a6f03ae8dd2e2383f0ed986771e3cc49fa8921") + version("4.0.4", sha256="cc2926387c1e948866f9e0e8f0f09b699d072cc6fd1d345631cb0038d8292817") + version("4.0.3", sha256="c21c13fbd5ad8f52e9874a7931c619b9b7e69d69a2ab003e09628a1e9945542d") + version("4.0.2", sha256="f5c8a285e00f334fd3e1a95f9a393fed393990ee827dae3766da1decfaa1074e") + version("4.0.1", sha256="f54741b7e654cb12511ca68c6494a4789ba41b5ada4cd345ad2bc7da631309d1") + version("4.0.0", sha256="7a0c32c8a9cd2fd65cbcb54fff802f303665d7cba5d46f92ff3d55f057c92845") + version("3.4.8", sha256="cd6b1493accb251378e082b305a51601b7df48a428d03f1970fbb78a900f37fd") + version("3.4.7", sha256="5b79b58b9f234169eb47358f9717e8ae7401533e4e645f442194fcefdb4bcb98") + version("3.4.6", sha256="88c3d076ca360ffbadb6ffeb6cbc1267a9da0e098e7c182407501820ba2bf6e7") + version("3.4.5", sha256="064d6926106e0052829182087a025f58fc3e98dfb69967e0795d9cdb4e1500b9") + version("3.4.4", sha256="a518a7a761fec6c92fab6dc9df5694c28aad2554c7c649d707dfdc71fe93d2ca") + version("3.4.3", sha256="e58515effe57d473385fe0b592d9e1d1286c0901496c61268d9efd92a2550849") + version("3.4.2", sha256="f39e65b2282fd3b108081388f161ba662407b192fed68fafe324c7528026a202") + version("3.4.1", sha256="04cd4257e39e1b05e02b12ad941106fff4d439934bdfe6e950c08bab23e2a4ba") + version("3.4.0", sha256="176feb4c1726d0f21f4c656b20620dce6f99ab7f5f09a66905aeb643a316bbc1") + version("3.3.7", sha256="6bb99af2a218fd712693367d3dfe62f04f78ac5cc13b7f46d9176321230cf06d") + version("3.3.6", sha256="e56e999675fe08b0efdcbdd8b4bde8ab45d249098ec8d9641104819eb930bedf") + version("3.3.5", sha256="4319a7a6363f69f7f0c78abb0741bc90b49dc777831c2886b13aca61c79bae04") + version("3.3.4", sha256="3829e0b07520a14b17a8e75f879683a0d97b04b897aeb3ad0dd96dc94c0fcd6b") + version("3.3.3", sha256="5a1fb43a8086e594e0a7234c1f227e6e005d384fd84affe3acadccb68fe2bbf6") + version("3.3.2", sha256="17127ffdf92367c10041258f70a88ac3dcb0a7d89c1766a6aa1ebaeb4d03d55d") + version("3.3.1", sha256="ad07329c25874832fbacc999b5f88d9b9ab84415bc897a6f3cae5b4afcd7661f") + version("3.3.0", sha256="884ad68b0fbbededc3a602d559433c24114ae4534dc9f0a759d31ca3589dace0") + version( + "3.2.12", sha256="7c0fecbf2ee603c8415ae64282b9cd2a6739d19c73fc79ab72beca29f7072dca" + ) + version( + "3.2.11", sha256="3f00343e5cd66d3a95903cbd08f078d48cea75b64b444e3b48dddf3aa5a6aa02" + ) + version( + "3.2.10", sha256="3fe24a2811811d68ce5735f601d12fae7b1da465ac5b2917bd0887782218f2bd" + ) + version("3.2.9", sha256="4ee26f2b5db24dc10113100ae0165cbbe8c7960c99c0e64ec96410788774aa54") + version("3.2.8", sha256="8bc3db975a87c3f0da3a857ab45cd237ee02f4ab35094a7db28b01d92676a78c") + version("3.2.7", sha256="05a055a955dd52f0b2dbf9d518a86c58805b2b63f3766268d72cacd6126c187d") + version("3.2.6", sha256="ae80c76d92aeae207e307436aed32bbaed913a437ae57b5ee128ce4f543f20a9") + version("3.2.5", sha256="194e799ca8d2f7ffea25aa3842c48cfc12850c252d851ce03941b5e3ae533b21") + version("3.2.4", sha256="e7ac7e61fb3e02301285885bb3dc81ca1b09bd6e2929d15c755555d66088fe33") + version("3.2.3", sha256="ac429c50ad1901d9d6e518a1cf6505d7a404c21d8ad3c6e5b0acecc77f20e3f7") + version("3.2.2", sha256="69b01ae0d1f9140b619aaa9135948284ff40d4654672c335e55ab4934c02eb43") + version("3.2.1", sha256="12786480524a7fe86889120fb334fa00211dfd44ad5ec71e2279e7adf1ddc807") + version("3.2.0", sha256="089d79745e9f267a2bd03dcd8841d484e668bd27f5cc2ff7453634cb39016848") + version( + "3.1.15", sha256="5fcf7b56cbc01892c43361055575fcb3a464e4115c71252f6025363082cb6df6" + ) + version( + "3.1.14", sha256="04a11c146dede67777b3311e838305c9f5856d56154b263dc8b23168226b51f1" + ) + version( + "3.1.13", sha256="f0e5dddb5d32931dcab2d060029da31aacb47cd3251297d701b86d93c8fa0255" + ) + version( + "3.1.12", sha256="770aa4680063ddd7be4f735ed1ec9402e83502d1ceb688c79cdba27490b7bf98" + ) + version( + "3.1.11", sha256="578e3463db029bfed7b24bfa1226394e6998cc95959b46246ab9bf5cfb6d65f0" + ) + version( + "3.1.10", sha256="635a2507f139bb6d893e0a7bb223cd1d9ddab5dfddee179a3b2e9f8b0b63e065" + ) + version("3.1.9", sha256="8aeb020beddd125c207271e01d3e7d3985a91268dbf0bbc6132d217cc72b12a8") + version("3.1.8", sha256="8c99ef80a27b3e791d78de2ceb1111396989942424697eccbc886edc3983163f") + version("3.1.7", sha256="9cd8beab96c8f9cc5647a3452e61b06968a172f5875a72db227e6148fdbf294c") + version("3.1.6", sha256="27684884cff441a6c548ffe5d88e35e2b532ed100c97e3125e89c82985a08c50") + version("3.1.5", sha256="e22cf2110f19666f004b8acda32e87beae74721f82e7f83fd0c4fafb86812763") + version("3.1.4", sha256="8dc2904fc930636976baaf7e91ac89c0377afb1629c336343dfad8ab651cf87d") + version("3.1.3", sha256="2022fa183d2c2902ada982ec6550ebe15befafcb748fd988fc9accdde7976a42") + version("3.1.2", sha256="2eaa191f0699031786d8845ac769320a42c7e035991d82b3738289886006bfba") + version("3.1.1", sha256="a4c0c21c6c22752cc90c82295a6bafe637b3395736c66fcdfcfe4aeccb5be7af") + version("3.1.0", sha256="dd67b400b5f157aef503aa3615b9bf6b52333876a29e75966f94ee3f79ab37ad") + version( + "3.0.15", sha256="ff5b51f7665ec639ed10fa1aaf3370cf21d85bc3a81439ab482a82957e94eeca" + ) + version( + "3.0.14", sha256="5422031c63ffbd43436bd1471e107b6821649b8f2da5db77fce363a72c1d752c" + ) + version( + "3.0.13", sha256="04987d318c46294853481fa987dd09e8ca38493b8994a363d20623f9b8f009ff" + ) + version( + "3.0.12", sha256="f7dae9e5a00c721445b3167ec7bc71747bab047ddb36103f232b72d3e4d3cd00" + ) + version( + "3.0.11", sha256="3d2d249534563887d301f6be5c4c2e4be33258b9d712d550d4c71271b764cc2d" + ) + version( + "3.0.10", sha256="1604f22948b4af6ef84839d97909f7011ce614254e1a6de092ddc61832f7d343" + ) + version("3.0.9", sha256="461dbb9e78fb6de9eaff21e387f5441020a077bba51d47b6510f11312e5ee333") + version("3.0.8", sha256="3639f11d14278e20814e8673e097d26161e26117128289516be5b1b1e1387e57") + version("3.0.7", sha256="4f4e04a1c1f360f27bbd4f72268dd31b46e2cef676ea8d36c35f21569540c76f") + version("3.0.6", sha256="3359e928dbde0f9ddbc9cd62bd2c2dbafe38543aad68fda9f3768fcc5c219f66") + version("3.0.5", sha256="abf58f87962cf98b6129e873a841819a2a751f2ebd4e08490eb89fb933cd7887") + version("3.0.4", sha256="e832d421a0dc9f315c60c5ea23f958dcaa299913c50a4eb73bde0e053067a3cc") + version("3.0.3", sha256="3ff1c14bcc27e9b615aab5748eaf3afac349050b27b55a2b57648aba28b801ac") + version("3.0.2", sha256="edd54ac652e99621410137ea2f7f90f133067615a17840440690365e2c3906f5") + version("3.0.1", sha256="fa239ddd353431954f2ab7443cf85d86c862433e72f7685c1b933ae12dbde435") + version("3.0.0", sha256="b2cfaa3d7900b4f32f327565448bf9cb8e4242763f651bff8f231f378a278f9e") + version("2.0.4", sha256="cac078435aad73d9a795516f161b320d204d2099d6a286e786359f484355a43a") # solvers interfaces variant("castem", default=True, description="Enables Cast3M interface") @@ -165,7 +204,6 @@ class Tfel(CMakePackage): depends_on("python", when="+python", type=("build", "link", "run")) with when("+python_bindings"): - depends_on("python", type=("build", "link", "run")) depends_on("py-numpy", type=("build", "link", "run")) @@ -204,20 +242,10 @@ def cmake_args(self): "comsol", "diana-fea", ]: - if "+" + i in self.spec: - args.append("-Denable-{0}=ON".format(i)) - else: - args.append("-Denable-{0}=OFF".format(i)) + args.append(self.define_from_variant(f"enable-{i}", f"{i}")) - if "+castem" in self.spec: - args.append("-Dlocal-castem-header=ON") - else: - args.append("-Dlocal-castem-header=OFF") - - if "+python_bindings" in self.spec: - args.append("-Denable-python-bindings=ON") - else: - args.append("-Denable-python-bindings=OFF") + args.append(self.define_from_variant("local-castem-header", "castem")) + args.append(self.define_from_variant("enable-python-bindings", "python_bindings")) if ("+python" in self.spec) or ("+python_bindings" in self.spec): # Note: calls find_package(PythonLibs) before find_package(PythonInterp), so these @@ -228,7 +256,6 @@ def cmake_args(self): args.append("-DPython_ADDITIONAL_VERSIONS={0}".format(python.version.up_to(2))) if "+python_bindings" in self.spec: - if "py-pybind11" in self.spec: args.append("-Dpybind11_DIR={0}".format(self.spec["py-pybind11"].prefix)) @@ -240,6 +267,7 @@ def cmake_args(self): return args def setup_run_environment(self, env: EnvironmentModifications) -> None: + env.append_path("TFELHOME", self.prefix) env.append_path("LD_LIBRARY_PATH", self.prefix.lib) def check(self): diff --git a/repos/spack_repo/builtin/packages/the_silver_searcher/package.py b/repos/spack_repo/builtin/packages/the_silver_searcher/package.py index 27235d22f35..63cae58fccb 100644 --- a/repos/spack_repo/builtin/packages/the_silver_searcher/package.py +++ b/repos/spack_repo/builtin/packages/the_silver_searcher/package.py @@ -26,3 +26,8 @@ class TheSilverSearcher(AutotoolsPackage): depends_on("xz") depends_on("zlib-api") depends_on("pkgconfig", type="build") + + def flag_handler(self, name, flags): + if name == "cflags" and self.spec.satisfies("%c=gcc"): + flags.append("-fcommon") + return (None, None, flags) diff --git a/repos/spack_repo/builtin/packages/theia_ide/package.py b/repos/spack_repo/builtin/packages/theia_ide/package.py index d28ae51dd1b..ed6e37c1885 100644 --- a/repos/spack_repo/builtin/packages/theia_ide/package.py +++ b/repos/spack_repo/builtin/packages/theia_ide/package.py @@ -35,7 +35,7 @@ class TheiaIde(Package): depends_on("libxcb") depends_on("libxdmcp") depends_on("libxkbfile") - depends_on("pkg-config") + depends_on("pkgconfig") depends_on("xproto") depends_on("npm@10.8.2:") diff --git a/repos/spack_repo/builtin/packages/thrift/package.py b/repos/spack_repo/builtin/packages/thrift/package.py index 6939b83c935..ef9980d8ed2 100644 --- a/repos/spack_repo/builtin/packages/thrift/package.py +++ b/repos/spack_repo/builtin/packages/thrift/package.py @@ -26,6 +26,7 @@ class Thrift(CMakePackage, AutotoolsPackage): license("Apache-2.0") + version("0.22.0", sha256="794a0e455787960d9f27ab92c38e34da27e8deeda7a5db0e59dc64a00df8a1e5") version("0.21.0", sha256="9a24f3eba9a4ca493602226c16d8c228037db3b9291c6fc4019bfe3bd39fc67c") version("0.18.1", sha256="04c6f10e5d788ca78e13ee2ef0d2152c7b070c0af55483d6b942e29cff296726") version("0.17.0", sha256="b272c1788bb165d99521a2599b31b97fa69e5931d099015d91ae107a0b0cc58f") @@ -86,7 +87,7 @@ class Thrift(CMakePackage, AutotoolsPackage): depends_on("npm", when="+nodejs", type="build") with when("+python"): - extends("python") + extends("python", type=("build", "link", "run")) depends_on("py-pip", type="build") depends_on("py-setuptools", type="build") depends_on("py-six@1.7.2:", type=("build", "run")) @@ -97,6 +98,18 @@ class Thrift(CMakePackage, AutotoolsPackage): when="@0.16.0", ) + # https://github.com/spack/spack-packages/issues/1852 + conflicts( + "+python", + when="build_system=cmake", + msg="CMake build does not install python bindings correctly", + ) + conflicts( + "~openssl", + when="build_system=autotools", + msg="+openssl required with build_system=autotools", + ) + class CMakeBuilder(CMakeBuilder): def setup_build_environment(self, env: EnvironmentModifications): diff --git a/repos/spack_repo/builtin/packages/timemory/package.py b/repos/spack_repo/builtin/packages/timemory/package.py index 0e8f2190fd1..a9b86f4b392 100644 --- a/repos/spack_repo/builtin/packages/timemory/package.py +++ b/repos/spack_repo/builtin/packages/timemory/package.py @@ -40,7 +40,7 @@ class Timemory(CMakePackage, PythonExtension): variant( "python_hatchet", default=False, - description="Build Python hatchet submodule " "(does not conflict with py-hatchet)", + description="Build Python hatchet submodule (does not conflict with py-hatchet)", ) variant( "python_line_profiler", @@ -77,9 +77,7 @@ class Timemory(CMakePackage, PythonExtension): variant( "kokkos_tools", default=False, - description=( - "Build generic kokkos-tools libraries, e.g. " "kp_timemory, kp_timemory_filter" - ), + description=("Build generic kokkos-tools libraries, e.g. kp_timemory, kp_timemory_filter"), ) variant( "kokkos_build_config", @@ -122,7 +120,7 @@ class Timemory(CMakePackage, PythonExtension): variant( "cpu_target", default="auto", - description="Build for specific cpu architecture (specify " "cpu-model)", + description="Build for specific cpu architecture (specify cpu-model)", ) variant( "use_arch", @@ -143,7 +141,7 @@ class Timemory(CMakePackage, PythonExtension): variant( "statistics", default=True, - description="Build components w/ support for statistics " "(min/max/stddev)", + description="Build components w/ support for statistics (min/max/stddev)", ) variant( "extra_optimizations", @@ -179,7 +177,7 @@ class Timemory(CMakePackage, PythonExtension): variant( "require_packages", default=True, - description=("find_package(...) resulting in NOTFOUND " "generates error"), + description=("find_package(...) resulting in NOTFOUND generates error"), ) variant("compiler", default=True, description="Enable compiler instrumentation support") variant( diff --git a/repos/spack_repo/builtin/packages/timew/package.py b/repos/spack_repo/builtin/packages/timew/package.py index 00596fa39af..09ca7e39a42 100644 --- a/repos/spack_repo/builtin/packages/timew/package.py +++ b/repos/spack_repo/builtin/packages/timew/package.py @@ -18,6 +18,8 @@ class Timew(CMakePackage): license("MIT", checked_by="taliaferro") + version("1.9.1", sha256="7ad34f95c0d61d356df55149f9479f8d9aaec417e5f57f2a1cc76ae2f8a3171b") version("1.7.1", sha256="5e0817fbf092beff12598537c894ec1f34b0a21019f5a3001fe4e6d15c11bd94") + depends_on("c", type="build") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/tinker/package.py b/repos/spack_repo/builtin/packages/tinker/package.py index 960d707697f..7caf7e60acc 100644 --- a/repos/spack_repo/builtin/packages/tinker/package.py +++ b/repos/spack_repo/builtin/packages/tinker/package.py @@ -18,11 +18,6 @@ class Tinker(CMakePackage): url = "https://dasher.wustl.edu/tinker/downloads/tinker-8.7.1.tar.gz" version("8.7.2", sha256="f9e94ae0684d527cd2772a4a7a05c41864ce6246f1194f6c1c402a94598151c2") - version( - "8.7.1", - sha256="0d6eff8bbc9be0b37d62b6fd3da35bb5499958eafe67aa9c014c4648c8b46d0f", - deprecated=True, - ) patch("tinker-8.7.1-cmake.patch") diff --git a/repos/spack_repo/builtin/packages/tiny_tensor_compiler/package.py b/repos/spack_repo/builtin/packages/tiny_tensor_compiler/package.py index b5bd1ff6808..4d60ebd5668 100644 --- a/repos/spack_repo/builtin/packages/tiny_tensor_compiler/package.py +++ b/repos/spack_repo/builtin/packages/tiny_tensor_compiler/package.py @@ -14,12 +14,15 @@ class TinyTensorCompiler(CMakePackage): supporting the OpenCL, Level Zero, and SYCL runtime.""" homepage = "https://github.com/intel/tiny-tensor-compiler" - url = "https://github.com/intel/tiny-tensor-compiler/archive/refs/tags/v0.3.1.tar.gz" + url = "https://github.com/intel/tiny-tensor-compiler/archive/refs/tags/v0.5.0.tar.gz" + git = "https://github.com/intel/tiny-tensor-compiler.git" maintainers("uphoffc") license("BSD-3-Clause", checked_by="uphoffc") + version("0.5.0", sha256="14443d6ad36bd4273df494f86889c96e577809422ed5a5cb45e78cc5cd4256d0") + version("0.4.0", sha256="cf58fc61cb4948d77e10cd2fe1cdef74b92ae130174aa64a3f1d633acdbf7722") version("0.3.1", sha256="e512b92f9ef8f21362ea4a8f2655338769bc7fcf9de543e3dc7db86b696695b3") variant("shared", default=True, description="Shared library") @@ -33,7 +36,9 @@ class TinyTensorCompiler(CMakePackage): depends_on("cxx", type="build") # generated depends_on("cmake@3.23.0:", type="build") - depends_on("double-batched-fft-library ~sycl ~level_zero ~opencl@0.5.1:", type="link") + depends_on( + "double-batched-fft-library ~sycl ~level_zero ~opencl@0.5.1:", type="link", when="@:0.3.1" + ) depends_on("oneapi-level-zero@1.13:", when="+level_zero") depends_on("opencl-c-headers@2022.01.04:", when="+opencl") depends_on("opencl-icd-loader@2022.01.04:", when="+opencl", type="link") diff --git a/repos/spack_repo/builtin/packages/tixi/package.py b/repos/spack_repo/builtin/packages/tixi/package.py index d717b405269..8e865a86b9a 100644 --- a/repos/spack_repo/builtin/packages/tixi/package.py +++ b/repos/spack_repo/builtin/packages/tixi/package.py @@ -21,10 +21,23 @@ class Tixi(CMakePackage): license("Apache-2.0") + version("3.3.2", sha256="96a6909bb6920e12202545ecab8c9af8250e250cb32d19e36e32bcc0f037f5b8") version("3.3.0", sha256="988d79ccd53c815d382cff0c244c0bb8e393986377dfb45385792766adf6f6a9") - version("3.2.0", sha256="8df65c4d252d56e98c5ef2657c7aff6086a07b5686716e786891609adaca9d2d") - version("3.1.0", sha256="4547133e452f3455b5a39045a8528955dce55faf059afe652a350ecf37d709ba") - version("3.0.3", sha256="3584e0cec6ab811d74fb311a9af0663736b1d7f11b81015fcb378efaf5ad3589") + version( + "3.2.0", + sha256="8df65c4d252d56e98c5ef2657c7aff6086a07b5686716e786891609adaca9d2d", + deprecated=True, + ) + version( + "3.1.0", + sha256="4547133e452f3455b5a39045a8528955dce55faf059afe652a350ecf37d709ba", + deprecated=True, + ) + version( + "3.0.3", + sha256="3584e0cec6ab811d74fb311a9af0663736b1d7f11b81015fcb378efaf5ad3589", + deprecated=True, + ) version("2.2.4", sha256="9080d2a617b7c411b9b4086de23998ce86e261b88075f38c73d3ce25da94b21c") variant( diff --git a/repos/spack_repo/builtin/packages/tk/package.py b/repos/spack_repo/builtin/packages/tk/package.py index a03bc1d0077..ea57860738d 100644 --- a/repos/spack_repo/builtin/packages/tk/package.py +++ b/repos/spack_repo/builtin/packages/tk/package.py @@ -21,6 +21,12 @@ class Tk(AutotoolsPackage, SourceforgePackage): license("TCL") + version("9.0.2", sha256="76fb852b2f167592fe8b41aa6549ce4e486dbf3b259a269646600e3894517c76") + version( + "8.6.17", + sha256="e4982df6f969c08bf9dd858a6891059b4a3f50dc6c87c10abadbbe2fc4838946", + preferred=True, + ) version("8.6.11", sha256="5228a8187a7f70fa0791ef0f975270f068ba9557f57456f51eb02d9d4ea31282") version("8.6.10", sha256="63df418a859d0a463347f95ded5cd88a3dd3aaa1ceecaeee362194bc30f3e386") version("8.6.8", sha256="49e7bca08dde95195a27f594f7c850b088be357a7c7096e44e1158c7a5fd7b33") @@ -34,6 +40,8 @@ class Tk(AutotoolsPackage, SourceforgePackage): extends("tcl", type=("build", "link", "run")) + depends_on("c", type="build") + depends_on("tcl@8.6:", type=("build", "link", "run"), when="@8.6:") depends_on("libx11") depends_on("libxft", when="+xft") diff --git a/repos/spack_repo/builtin/packages/tl_expected/package.py b/repos/spack_repo/builtin/packages/tl_expected/package.py index 081483697b5..e933508eafa 100644 --- a/repos/spack_repo/builtin/packages/tl_expected/package.py +++ b/repos/spack_repo/builtin/packages/tl_expected/package.py @@ -18,13 +18,8 @@ class TlExpected(CMakePackage): license("CC0-1.0", checked_by="wdconinc") + version("1.2.0", sha256="f5424f5fc74e79157b9981ba2578a28e0285ac6ec2a8f075e86c41226fe33386") version("1.1.0", sha256="1db357f46dd2b24447156aaf970c4c40a793ef12a8a9c2ad9e096d9801368df6") - with default_args(deprecated=True): - # Note that the 1.0.0 has this issue: - # https://github.com/TartanLlama/expected/issues/114 - # But no new patch version has been released, - # so I will use the latest commit at the time of writing: - version("2022-11-24", commit="b74fecd4448a1a5549402d17ddc51e39faa5020c") version("1.0.0", sha256="8f5124085a124113e75e3890b4e923e3a4de5b26a973b891b3deb40e19c03cee") depends_on("cxx", type="build") diff --git a/repos/spack_repo/builtin/packages/tmalign/package.py b/repos/spack_repo/builtin/packages/tmalign/package.py index 320a132a2d8..414cbddf4d3 100644 --- a/repos/spack_repo/builtin/packages/tmalign/package.py +++ b/repos/spack_repo/builtin/packages/tmalign/package.py @@ -21,19 +21,12 @@ class Tmalign(Package): sha256="09227c46705ca8cf7c922a6e1672c34d7ed4daba32e5c7c484306808db54117a", expand=False, ) - version( - "2016-05-25", - sha256="ce7f68289f3766d525afb0a58e3acfc28ae05f538d152bd33d57f8708c60e2af", - url="http://zhanglab.ccmb.med.umich.edu/TM-align/TM-align-C/TMalignc.tar.gz", - deprecated=True, - ) - variant("fast-math", default=False, description="Enable fast math", when="@20220412:") + variant("fast-math", default=False, description="Enable fast math") depends_on("cxx", type="build") - with when("@20220412:"): - phases = ["build", "install"] + phases = ["build", "install"] def build(self, spec, prefix): cxx = Executable(self.compiler.cxx) diff --git a/repos/spack_repo/builtin/packages/tmux/package.py b/repos/spack_repo/builtin/packages/tmux/package.py index 56c39f381fe..49b80469868 100644 --- a/repos/spack_repo/builtin/packages/tmux/package.py +++ b/repos/spack_repo/builtin/packages/tmux/package.py @@ -21,6 +21,9 @@ class Tmux(AutotoolsPackage): license("ISC") + version("master", branch="master") + version("3.6a", sha256="b6d8d9c76585db8ef5fa00d4931902fa4b8cbe8166f528f44fc403961a3f3759") + version("3.6", sha256="136db80cfbfba617a103401f52874e7c64927986b65b1b700350b6058ad69607") version("3.5a", sha256="16216bd0877170dfcc64157085ba9013610b12b082548c7c9542cc0103198951") version("3.5", sha256="2fe01942e7e7d93f524a22f2c883822c06bc258a4d61dba4b407353d7081950f") version("3.4", sha256="551ab8dea0bf505c0ad6b7bb35ef567cdde0ccb84357df142c254f35a23e19aa") @@ -45,7 +48,6 @@ class Tmux(AutotoolsPackage): version("2.2", sha256="bc28541b64f99929fe8e3ae7a02291263f3c97730781201824c0f05d7c8e19e4") version("2.1", sha256="31564e7bf4bcef2defb3cb34b9e596bd43a3937cad9e5438701a81a5a9af6176") version("1.9a", sha256="c5e3b22b901cf109b20dab54a4a651f0471abd1f79f6039d79b250d21c2733f5") - version("master", branch="master") variant( "utf8proc", default=False, description="Build with UTF-8 support from utf8proc library" @@ -55,21 +57,16 @@ class Tmux(AutotoolsPackage): "jemalloc", default=False, description="Use jemalloc for memory allocation", when="@3.5:" ) - depends_on("c", type="build") # generated - - # used by configure to e.g. find libtinfo + depends_on("c", type="build") depends_on("pkgconfig", type="build") + depends_on("automake", type="build", when="@master") + depends_on("autoconf", type="build", when="@master") + depends_on("yacc", type="build", when="@3:") depends_on("libevent") depends_on("ncurses") - depends_on("utf8proc", when="+utf8proc") depends_on("jemalloc", when="+jemalloc") - depends_on("automake", when="@master") - depends_on("autoconf", when="@master") - - depends_on("yacc", type="build", when="@3:") - conflicts("+static", when="platform=darwin", msg="Static build not supported on MacOS") patch( @@ -81,14 +78,12 @@ class Tmux(AutotoolsPackage): @run_before("autoreconf") def autogen(self): if self.spec.satisfies("@master"): - sh = which("sh") + sh = which("sh", required=True) sh("autogen.sh") def configure_args(self): - options = [] - - options.extend(self.enable_or_disable("utf8proc")) - options.extend(self.enable_or_disable("static")) - options.extend(self.enable_or_disable("jemalloc")) - - return options + args = [] + args.extend(self.enable_or_disable("utf8proc")) + args.extend(self.enable_or_disable("static")) + args.extend(self.enable_or_disable("jemalloc")) + return args diff --git a/repos/spack_repo/builtin/packages/tofu_ls/package.py b/repos/spack_repo/builtin/packages/tofu_ls/package.py new file mode 100644 index 00000000000..91b78643ba2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/tofu_ls/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.go import GoPackage + +from spack.package import * + + +class TofuLs(GoPackage): + """The official OpenTofu language server, provides IDE features to any LSP-compatible editor""" + + homepage = "https://opentofu.org/" + url = "https://github.com/opentofu/tofu-ls/archive/refs/tags/v0.4.1.tar.gz" + + maintainers("taliaferro") + + license("MPL-2.0", checked_by="taliaferro") + + version("0.4.1", sha256="20a71da45069cc2e28f9f2b58f6aed9da33457760adeb037a10aef94126b77f1") + + depends_on("go@1.25.3:", type="build", when="@0.4.1:") diff --git a/repos/spack_repo/builtin/packages/tomcat/package.py b/repos/spack_repo/builtin/packages/tomcat/package.py index 81eb5eb84c4..ac4f63a6f09 100644 --- a/repos/spack_repo/builtin/packages/tomcat/package.py +++ b/repos/spack_repo/builtin/packages/tomcat/package.py @@ -28,23 +28,6 @@ class Tomcat(Package): sha256="bf4ad04955457ad663157876461015437a7479546aec9a38840d736b3d70151f", preferred=True, ) - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2023-46589 - version( - "9.0.30", sha256="43a9b268671bbd3aace427637fbf577e742b521901e111342321ae901478100b" - ) - version( - "9.0.29", sha256="1bf634413326ec96972fc1c3ac6666e8e4cab49ad3fc9f5e3228b85208d9c4b0" - ) - version( - "9.0.27", sha256="6616a150e1593ef1a622298aaef9b889db70c8ee5122d35ad52adfcda1084d10" - ) - version( - "9.0.26", sha256="b5430890d3b986d6b7ec6a6ef611f9451cbfa933b0a1a3dd48e2cd1f46a63381" - ) - version( - "9.0.24", sha256="22064138e25f7ab899802804775259a156c06770535b8ce93856beba13dfcf6d" - ) # https://tomcat.apache.org/whichversion.html depends_on("java@8:", type="run", when="@9:") diff --git a/repos/spack_repo/builtin/packages/toml_f/package.py b/repos/spack_repo/builtin/packages/toml_f/package.py index d01f4812969..412ee4be462 100644 --- a/repos/spack_repo/builtin/packages/toml_f/package.py +++ b/repos/spack_repo/builtin/packages/toml_f/package.py @@ -2,30 +2,49 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack_repo.builtin.build_systems import cmake, meson +from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.meson import MesonPackage from spack.package import * -class TomlF(MesonPackage): - """ - TOML parser implementation for data serialization and deserialization in Fortran - """ +class TomlF(MesonPackage, CMakePackage): + """TOML parser implementation for data serialization and deserialization in Fortran""" - homepage = "https://toml-f.readthedocs.io" - url = "https://github.com/toml-f/toml-f/releases/download/v0.3.1/toml-f-0.3.1.tar.xz" - git = "https://github.com/toml-f/toml-f.git" + homepage = "https://toml-f.readthedocs.io/" + url = "https://github.com/toml-f/toml-f/releases/download/v0.4.2/toml-f-0.4.2.tar.xz" + git = "https://github.com/toml-f/toml-f/" - maintainers("awvwgk") + maintainers("awvwgk", "mtaillefumier") license("Apache-2.0") + build_system("cmake", "meson", default="meson") + version("main", branch="main") + version("0.4.2", sha256="6b49013d3bcd1043494c140d7b2da6b0cedd87648e4fc5179fcfcf41226d3232") + version("0.4.1", sha256="a95ef65c7d14c1efa86df3d4755889016b6f16ae67f1b9cee7b7ee4dcbe84560") + version("0.4.0", sha256="1f0e3a75ab6d4832a60698b40f46e8d91b96c7d2ea3f6389d745438631889ceb") version("0.3.1", sha256="7f40f60c8d9ffbb1b99fb051a3e6682c7dd04d7479aa1cf770eff8174b02544f") version("0.3.0", sha256="40ceca008091607165a09961b79312abfdbbda71cbb94a9dc2625b88c93ff45a") version("0.2.4", sha256="ebfeb1e201725b98bae3e656bde4eea2db90154efa8681de758f1389fec902cf") version("0.2.3", sha256="2dca7ff6d3e35415cd92454c31560d2b656c014af8236be09c54c13452e4539c") + with when("build_system=cmake"): + variant("shared", default=True, description="Build shared libraries") + depends_on("fortran", type="build") # generated + depends_on("meson@0.57.2:", type="build", when="build_system=meson") + + depends_on("pkgconfig", type="build") + + +class CMakeBuilder(cmake.CMakeBuilder): + def cmake_args(self): + return [self.define_from_variant("BUILD_SHARED_LIBS", "shared")] + - depends_on("meson@0.57.2:", type="build") +class MesonBuilder(meson.MesonBuilder): + def meson_args(self): + return [] diff --git a/repos/spack_repo/builtin/packages/topaz/package.py b/repos/spack_repo/builtin/packages/topaz/package.py index c27e57bb718..936865496b3 100644 --- a/repos/spack_repo/builtin/packages/topaz/package.py +++ b/repos/spack_repo/builtin/packages/topaz/package.py @@ -17,6 +17,7 @@ class Topaz(PythonPackage): license("GPL-3.0-or-later") + version("0.3.18", sha256="a68a426bea0c0999a714f868694d7a5f07cfb0456098e99ac3e7b33865abcd7b") version("0.3.7", sha256="ae3c0d6ccb1e8ad2e4926421442b8cb33a4d01d1ee1dff83174949a9f91cc8a9") version( "0.2.5", @@ -25,13 +26,17 @@ class Topaz(PythonPackage): ) depends_on("py-setuptools", type="build") - depends_on("py-torch@1:2.3.1", type=("build", "run")) - depends_on("py-torchvision", type=("build", "run")) - depends_on("py-numpy@1.11:", type=("build", "run")) - depends_on("py-pandas@0.20.3:", type=("build", "run")) - depends_on("py-scikit-learn@0.19.0:", type=("build", "run")) - depends_on("py-scipy@0.17.0:", type=("build", "run")) - depends_on("py-pillow@6.2.0:", type=("build", "run")) - depends_on("py-future", type=("build", "run")) - depends_on("py-tqdm@4.65.0:", type=("build", "run"), when="@0.3.7:") - depends_on("py-h5py@3.7.0:", type=("build", "run"), when="@0.3.7:") + with default_args(type=("build", "run")): + depends_on("python@3") + depends_on("python@3.8:3.12", when="@0.3.7:") + depends_on("py-torch@1:2.3.1", when="@:0.3.7") + depends_on("py-torch@1:", when="@0.3.18:") + depends_on("py-torchvision") + depends_on("py-numpy@1.11:") + depends_on("py-pandas@0.20.3:") + depends_on("py-scikit-learn@0.19.0:") + depends_on("py-scipy@0.17.0:") + depends_on("py-pillow@6.2.0:") + depends_on("py-future") + depends_on("py-tqdm@4.65.0:", when="@0.3.7:") + depends_on("py-h5py@3.7.0:", when="@0.3.7:") diff --git a/repos/spack_repo/builtin/packages/topaz_3dem/package.py b/repos/spack_repo/builtin/packages/topaz_3dem/package.py new file mode 100644 index 00000000000..4a28d9e723b --- /dev/null +++ b/repos/spack_repo/builtin/packages/topaz_3dem/package.py @@ -0,0 +1,31 @@ +# 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 Topaz3dem(PythonPackage): + """topaz: Pipeline for particle picking in cryo-electron microscopy images using + convolutional neural networks trained from positive and unlabeled examples. Also + featuring micrograph and tomogram denoising with DNNs.""" + + homepage = "https://github.com/3dem/topaz" + git = "https://github.com/3dem/topaz.git" + + license("GPL-3.0-or-later") + + version("20220325", commit="14b2bc331768b67b3267397523de57c707fa1253") + + depends_on("py-setuptools", type="build") + depends_on("py-torch@1:2.3", type=("build", "run")) + depends_on("py-torchvision", type=("build", "run")) + depends_on("py-numpy@1.11:", type=("build", "run")) + depends_on("py-pandas", type=("build", "run")) + depends_on("py-scikit-learn@0.19.0:", type=("build", "run")) + depends_on("py-scipy@0.17.0:", type=("build", "run")) + depends_on("py-pillow@6.2.0:", type=("build", "run")) + depends_on("py-future", type=("build", "run")) + depends_on("py-scikit-image", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/topcom/package.py b/repos/spack_repo/builtin/packages/topcom/package.py new file mode 100644 index 00000000000..6d7814f5c5b --- /dev/null +++ b/repos/spack_repo/builtin/packages/topcom/package.py @@ -0,0 +1,31 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.autotools import AutotoolsPackage + +from spack.package import * + + +class Topcom(AutotoolsPackage): + """TOPCOM is a C++ package for computing triangulations of point + configurations and oriented matroids. It can enumerate all triangulations, + circuits, and cocircuits up to symmetry, using lock-free multi-threading + for efficient performance on modern multi-core systems.""" + + homepage = "https://www.wm.uni-bayreuth.de/de/team/rambau_joerg/TOPCOM/" + url = "https://www.wm.uni-bayreuth.de/de/team/rambau_joerg/TOPCOM-Downloads/TOPCOM-1_1_2.tgz" + + maintainers("d-torrance") + + license("GPL-3.0-or-later", checked_by="d-torrance") + + version("1.1.2", sha256="4fb10754ee5b76056441fea98f2c8dee5db6f2984d8c14283b49239ad4378ab6") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("gmp") + + def url_for_version(self, version): + return f"https://www.wm.uni-bayreuth.de/de/team/rambau_joerg/TOPCOM-Downloads/TOPCOM-{version.underscored}.tgz" diff --git a/repos/spack_repo/builtin/packages/tophat/package.py b/repos/spack_repo/builtin/packages/tophat/package.py index e4175151d79..c20d1baf587 100644 --- a/repos/spack_repo/builtin/packages/tophat/package.py +++ b/repos/spack_repo/builtin/packages/tophat/package.py @@ -30,7 +30,7 @@ class Tophat(AutotoolsPackage): depends_on("libtool", type="build") depends_on("m4", type="build") - depends_on("boost@1.47:+exception+chrono+system+random+atomic+thread") + depends_on("boost@1.47:+exception+chrono+system+random+atomic+thread cxxstd=98") depends_on("bowtie2", type="run") parallel = False diff --git a/repos/spack_repo/builtin/packages/torch_scatter/package.py b/repos/spack_repo/builtin/packages/torch_scatter/package.py new file mode 100644 index 00000000000..a8d2c1a4404 --- /dev/null +++ b/repos/spack_repo/builtin/packages/torch_scatter/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_repo.builtin.build_systems.cuda import CudaPackage + +from spack.package import * + + +class TorchScatter(CMakePackage, CudaPackage): + """Torch Extension Library of Optimized Scatter Operations. + + This version of the package is consumable by downstream users via CMake + """ + + homepage = "https://github.com/rusty1s/pytorch_scatter" + git = "https://github.com/rusty1s/pytorch_scatter" + url = "https://github.com/rusty1s/pytorch_scatter/archive/refs/tags/2.1.2.tar.gz" + + license("MIT") + + version("master", branch="master") + version("2.1.2", sha256="6f375dbc9cfe03f330aa29ea553e9c7432e9b040d039b041f08bf05df1a8bf37") + + variant("python", default=False, description="Also ensure python bindings are available") + + depends_on("cxx", type="build") + depends_on("c", type="build") + + depends_on("py-torch") + depends_on("py-torch +cuda", when="+cuda") + + depends_on("py-torch-scatter@master", when="@master +python") + depends_on("py-torch-scatter@2.1.2", when="@2.1.2 +python") + + conflicts("py-torch@2.1:", when="@:2.1.2") + + def cmake_args(self): + args = [ + self.define_from_variant("WITH_CUDA", "cuda"), + self.define("CMAKE_CXX_STANDARD", "20"), + self.define("WITH_PYTHON", False), + ] + return args diff --git a/repos/spack_repo/builtin/packages/totalview/package.py b/repos/spack_repo/builtin/packages/totalview/package.py index 5bdd70bcb1d..0c46d9f0247 100644 --- a/repos/spack_repo/builtin/packages/totalview/package.py +++ b/repos/spack_repo/builtin/packages/totalview/package.py @@ -23,6 +23,61 @@ class Totalview(Package): # As the install of Totalview is via multiple tarballs, the base install # will be the documentation. The architecture-specific tarballs are added # as resources dependent on the specific architecture used. + + version( + "2026.1-x86-64", + sha256="066b8911d55479f8e0904daf3259667f689d7ded8d7f7c7afb31ac23f024c1d9", + url="https://dslwuu69twiif.cloudfront.net/totalview/2026.1/totalview_2026.1.3_linux_x86-64.tar", + ) + + version( + "2026.1-powerle", + sha256="56c20f0b3a83cc6d9686d1e29cffea623f52c56a37886bae4095c0783dfabda9", + url="https://dslwuu69twiif.cloudfront.net/totalview/2026.1/totalview_2026.1.3_linux_powerle.tar", + ) + + version( + "2026.1-linux-arm64", + sha256="9e1bed78b86ec99ae97500664ec5658387e18ec9d707adea14839d5f79a39f9b", + url="https://dslwuu69twiif.cloudfront.net/totalview/2026.1/totalview_2026.1.3_linux_arm64.tar", + ) + + version( + "2025.4-x86-64", + sha256="ef4e510f73ae2fec1584d7a70552d2113a5d9827f510b96a1a8d5325b28790ac", + url="https://dslwuu69twiif.cloudfront.net/totalview/2025.4/totalview_2025.4.3_linux_x86-64.tar", + ) + + version( + "2025.4-powerle", + sha256="48dab22dc25ad1b576fbd60f0a81d498a26af713cc43ba0257f768d5e3b4880f", + url="https://dslwuu69twiif.cloudfront.net/totalview/2025.4/totalview_2025.4.3_linux_powerle.tar", + ) + + version( + "2025.4-linux-arm64", + sha256="8aa777d0795ed36a8a74e6fd1fec195d66f712539c132ba97eb0ddd633cf5d1a", + url="https://dslwuu69twiif.cloudfront.net/totalview/2025.4/totalview_2025.4.3_linux_arm64.tar", + ) + + version( + "2025.3-x86-64", + sha256="64014770970bc6cb42a4cb1455cea95d4609964a38de0ecdc6713d4d5ee8bcdc", + url="https://dslwuu69twiif.cloudfront.net/totalview/2025.3/totalview_2025.3.4_linux_x86-64.tar", + ) + + version( + "2025.3-powerle", + sha256="dfdedbe0004ae4ee5926671165a94575c575e5c1a559cb44e4720b920948667a", + url="https://dslwuu69twiif.cloudfront.net/totalview/2025.3/totalview_2025.3.4_linux_powerle.tar", + ) + + version( + "2025.3-linux-arm64", + sha256="229592fddf989857cfcab89436cec4718308d7cbd6f3c3167be26b2cbf5d411f", + url="https://dslwuu69twiif.cloudfront.net/totalview/2025.3/totalview_2025.3.4_linux_arm64.tar", + ) + version( "2025.2-x86-64", sha256="4f017ea4aad111dd118d5442c86c33e37fdd63aa368d62ba2821cbbba472b5fe", @@ -143,7 +198,7 @@ def setup_run_environment(self, env: EnvironmentModifications) -> None: def install(self, spec, prefix): # Assemble install line - install_cmd = which("./Install") + install_cmd = which("./Install", required=True) arg_list = ["-agree", "-nosymlink", "-directory", "{0}".format(prefix)] # Platform specification. @@ -159,7 +214,7 @@ def install(self, spec, prefix): install_cmd.exe.extend(arg_list) # Run install script for totalview (which automatically installs memoryscape) - install_cmd = which("./Install") + install_cmd = which("./Install", required=True) arg_list.extend(["-install", "totalview"]) install_cmd.exe.extend(arg_list) install_cmd() diff --git a/repos/spack_repo/builtin/packages/toybox/package.py b/repos/spack_repo/builtin/packages/toybox/package.py index d7f63549d1f..75abc3b32b0 100644 --- a/repos/spack_repo/builtin/packages/toybox/package.py +++ b/repos/spack_repo/builtin/packages/toybox/package.py @@ -14,8 +14,6 @@ class Toybox(MakefilePackage): url = "https://landley.net/toybox/downloads/toybox-0.8.11.tar.gz" git = "https://github.com/landley/toybox.git" - maintainers("Buldram") - license("0BSD", checked_by="Buldram") version("0.8.12", sha256="ad88a921133ae2231d9f2df875ec0bd42af4429145caea7d7db9e02208a6fd2e") diff --git a/repos/spack_repo/builtin/packages/tpm2_tss/package.py b/repos/spack_repo/builtin/packages/tpm2_tss/package.py index 5fb71a489dd..9620eeb4d63 100644 --- a/repos/spack_repo/builtin/packages/tpm2_tss/package.py +++ b/repos/spack_repo/builtin/packages/tpm2_tss/package.py @@ -42,5 +42,5 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.prepend_path("ACLOCAL_PATH", self.spec["autoconf-archive"].prefix.share.aclocal) def autoreconf(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("./bootstrap") diff --git a/repos/spack_repo/builtin/packages/transferbench/001-link-hsa-numa-6.4.2.patch b/repos/spack_repo/builtin/packages/transferbench/001-link-hsa-numa-6.4.2.patch new file mode 100644 index 00000000000..4e4abf391e5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/transferbench/001-link-hsa-numa-6.4.2.patch @@ -0,0 +1,25 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e5e0674..38e5751 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -78,11 +78,19 @@ else() + message(WARNING "Building without NIC executor support. To use the TransferBench RDMA executor, check if your system has NICs, the NIC drivers are installed, and libibverbs-dev is installed") + endif() + +-link_libraries(numa hsa-runtime64 pthread) ++find_package(hsa-runtime64 REQUIRED) ++ ++find_library(NUMA numa) ++find_path(NUMA_INCLUDE_DIR numa.h) ++ ++link_libraries(${NUMA} hsa-runtime64::hsa-runtime64 pthread) ++ + set (CMAKE_RUNTIME_OUTPUT_DIRECTORY .) + add_executable(TransferBench src/client/Client.cpp) + target_include_directories(TransferBench PRIVATE src/header src/client src/client/Presets) + ++target_include_directories(TransferBench PRIVATE ${NUMA_INCLUDE_DIR}) ++ + find_package(ROCM 0.8 REQUIRED PATHS ${ROCM_PATH}) + include(ROCMInstallTargets) + include(ROCMCreatePackage) diff --git a/repos/spack_repo/builtin/packages/transferbench/package.py b/repos/spack_repo/builtin/packages/transferbench/package.py index e466168f15a..0b2e80ec23d 100644 --- a/repos/spack_repo/builtin/packages/transferbench/package.py +++ b/repos/spack_repo/builtin/packages/transferbench/package.py @@ -3,11 +3,12 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.rocm import ROCmLibrary from spack.package import * -class Transferbench(CMakePackage): +class Transferbench(ROCmLibrary, CMakePackage): """TransferBench is a utility capable of benchmarking simultaneous copies between user-specified devices (CPUs/GPUs)""" @@ -15,9 +16,21 @@ class Transferbench(CMakePackage): url = "https://github.com/ROCm/TransferBench/archive/refs/tags/rocm-6.4.0.tar.gz" maintainers("afzpatel", "srekolam", "renjithravindrankannath") + executables = ["TransferBench"] + + tags = ["rocm"] license("MIT") + version("7.2.3", sha256="e36fb3943359f38c15a27bb692a91d669186005b70ea7d877af6a6580fc2c790") + version("7.2.1", sha256="ff0dd90869eff77e00bb748149bcfa359d9c7d503c438f4bb64a88a7e39cbc3d") + version("7.2.0", sha256="4be9d66044827d7b1950b4fd7ce50913d0926822e88e3441f472ca6a62086a15") + version("7.1.1", sha256="a02afb6130990ae3a980bb512a7d414e009801d24fce56c6f66b449d61dae9e0") + version("7.1.0", sha256="9d7386abeea5ec290b4299684a0ec810d5241a40f7bb1482e794285baa1a4805") + version("7.0.2", sha256="f4afbc00029bce5345f06786d6adab9619c1852f919f7750fd602537d5403d60") + version("7.0.0", sha256="5b4551aba424fe6467034ea2c6232f614f80504b1732578d3d66cc19d9c9d736") + version("6.4.3", sha256="fb75eb571a059c94ae082b5b8bfa751635b769a77ca40c8477a12a12c4f53ccd") + version("6.4.2", sha256="241da92846e91ac891662d5cbe560115a2749b93bd9a654a84a9d1f6eb3ca0ef") version("6.4.1", sha256="7334dc4e815e7d7e8ccc138475949618ed5dea0ccc9f6b7edac492c6f4b12762") version("6.4.0", sha256="3d2d5723278774a26f4889643bd9025a883982b111321106e4343c998b229298") version("6.3.3", sha256="b473d47ff44501d111dd13fa2e9f723967df0035219168b490a1c013a123cbf6") @@ -28,11 +41,40 @@ class Transferbench(CMakePackage): depends_on("cxx", type="build") depends_on("numactl") - for ver in ["6.3.0", "6.3.1", "6.3.2", "6.3.3", "6.4.0", "6.4.1"]: + for ver in [ + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", + "6.4.0", + "6.4.1", + "6.4.2", + "6.4.3", + "7.0.0", + "7.0.2", + "7.1.0", + "7.1.1", + "7.2.0", + "7.2.1", + "7.2.3", + ]: depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"rocm-cmake@{ver}", when=f"@{ver}") + depends_on(f"hsa-rocr-dev@{ver}", when=f"@{ver}") - patch("001-link-hsa-numa.patch") + patch("001-link-hsa-numa.patch", when="@:6.4.1") + patch("001-link-hsa-numa-6.4.2.patch", when="@6.4.2:6.4.3") def setup_build_environment(self, env): env.set("CXX", self.spec["hip"].hipcc) + + def cmake_args(self): + args = [] + if self.spec.satisfies("@7.0:"): + args.append(self.define("HSA_INCLUDE_DIR", self.spec["hsa-rocr-dev"].prefix.include)) + args.append( + self.define( + "HSA_LIBRARY", f"{self.spec['hsa-rocr-dev'].prefix.lib}/libhsa-runtime64.so" + ) + ) + return args diff --git a/repos/spack_repo/builtin/packages/tree_sitter/package.py b/repos/spack_repo/builtin/packages/tree_sitter/package.py index 5eb569781ee..ee23e31c27d 100644 --- a/repos/spack_repo/builtin/packages/tree_sitter/package.py +++ b/repos/spack_repo/builtin/packages/tree_sitter/package.py @@ -20,6 +20,8 @@ class TreeSitter(MakefilePackage): license("MIT") + version("0.26.3", sha256="7f4a7cf0a2cd217444063fe2a4d800bc9d21ed609badc2ac20c0841d67166550") + version("0.26.2", sha256="3cda4166a049fc736326941d6f20783b698518b0f80d8735c7754a6b2d173d9a") version("0.25.3", sha256="862fac52653bc7bc9d2cd0630483e6bdf3d02bcd23da956ca32663c4798a93e3") version("0.25.2", sha256="26791f69182192fef179cd58501c3226011158823557a86fe42682cb4a138523") version("0.25.1", sha256="99a2446075c2edf60e82755c48415d5f6e40f2d9aacb3423c6ca56809b70fe59") @@ -47,15 +49,53 @@ class TreeSitter(MakefilePackage): version("0.20.2", sha256="2a0445f8172bbf83db005aedb4e893d394e2b7b33251badd3c94c2c5cc37c403") version("0.20.1", sha256="12a3f7206af3028dbe8a0de50d8ebd6d7010bf762db918acae76fc7585f1258d") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + variant("cli", default=False, description="Build CLI tool") - def edit(self, spec, prefix): - env["PREFIX"] = prefix + depends_on("c", type="build") - # Starting from 0.25.0 endianness is taken into account using system headers + with when("+cli"): + depends_on("rust", type="build", when="+cli") + + # 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 + depends_on("c", type="run") + depends_on("node-js", type="run") + + # tree-sitter-cli depends on rust-bindgen, which needs libclang (transitive dependency) + # https://github.com/rust-lang/rust-bindgen/blob/main/book/src/requirements.md#clang + depends_on("llvm@9: +clang", type="build") + + patch( + "https://github.com/tree-sitter/tree-sitter/pull/5226.patch?full_index=1", + sha256="f690ba222c524f93f9dd1b679b46384ace53f184f9836d26e028ac6e4087fe8a", + when="@0.26:0.26.3", + ) + + def setup_build_environment(self, env): + env.set("PREFIX", self.prefix) + + # 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 spec.satisfies("@0.25: ^glibc@:2.19"): - filter_file("-D_DEFAULT_SOURCE", "-D_BSD_SOURCE", "Makefile") + 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 spec.satisfies("+cli"): + cargo = Executable("cargo") + cargo("build") + + def install(self, spec, prefix): + super().install(spec, prefix) + + if spec.satisfies("+cli"): + cargo = Executable("cargo") + if spec.satisfies("@0.26:"): + crate_cli_path = "crates/cli" + else: + crate_cli_path = "cli" + + cargo("install", "--root", prefix, "--path", crate_cli_path) diff --git a/repos/spack_repo/builtin/packages/trf/package.py b/repos/spack_repo/builtin/packages/trf/package.py index c06986f02da..3e536533704 100644 --- a/repos/spack_repo/builtin/packages/trf/package.py +++ b/repos/spack_repo/builtin/packages/trf/package.py @@ -2,8 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import os - from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack.package import * @@ -27,39 +25,4 @@ class Trf(AutotoolsPackage): version("4.09.1", sha256="516015b625473350c3d1c9b83cac86baea620c8418498ab64c0a67029c3fb28a") version("4.09", sha256="9332155384bef82f6c7c449c038d27f1a14b984b2e93000bfcf125f4d44d6aca") - # Beginning with version 4.09, trf is open source and available via github. - # Only version 4.07b needs to be installed as a binary. - manual_download = True - - version( - "4.07b", - sha256="a3a760c7b74c9603fbc08d95e8fa696c00f35a2f179b0bd63b2b13757ad3b471", - expand=False, - url="file://{0}/trf407b.linux64".format(os.getcwd()), - deprecated=True, - ) - depends_on("c", type="build") # generated - - @when("@4.07b") - def autoreconf(self, spec, prefix): - touch("configure") - - @when("@4.07b") - def configure(self, spec, prefix): - pass - - @when("@4.07b") - def build(self, spec, prefix): - pass - - @when("@4.07b") - def install(self, spec, prefix): - mkdirp(prefix.bin) - - trfname = "trf{0}.linux64".format(self.version.joined) - - install(trfname, prefix.bin) - chmod = which("chmod") - chmod("+x", os.path.join(prefix.bin, trfname)) - os.symlink(trfname, prefix.bin.trf) diff --git a/repos/spack_repo/builtin/packages/trident/package.py b/repos/spack_repo/builtin/packages/trident/package.py index b2f3f20f74f..c786903299e 100644 --- a/repos/spack_repo/builtin/packages/trident/package.py +++ b/repos/spack_repo/builtin/packages/trident/package.py @@ -27,7 +27,7 @@ class Trident(Package): def install(self, spec, prefix): mkdirp(prefix.bin) - go = which("go") + go = which("go", required=True) go("build", "-o", prefix.bin) with working_dir("cli"): go("build", "-o", prefix.bin.tridentctl) diff --git a/repos/spack_repo/builtin/packages/trilinos/16-2-stk_destructor_kokkos_decoration.patch b/repos/spack_repo/builtin/packages/trilinos/16-2-stk_destructor_kokkos_decoration.patch new file mode 100644 index 00000000000..c7e29b74302 --- /dev/null +++ b/repos/spack_repo/builtin/packages/trilinos/16-2-stk_destructor_kokkos_decoration.patch @@ -0,0 +1,70 @@ +diff --git a/packages/stk/stk_mesh/stk_mesh/base/ConstFieldDataBytes.hpp b/packages/stk/stk_mesh/stk_mesh/base/ConstFieldDataBytes.hpp +index 0642a3c3c85..d04e3598cd3 100644 +--- a/packages/stk/stk_mesh/stk_mesh/base/ConstFieldDataBytes.hpp ++++ b/packages/stk/stk_mesh/stk_mesh/base/ConstFieldDataBytes.hpp +@@ -123,7 +123,7 @@ public: + ConstFieldDataBytes(); + ConstFieldDataBytes(EntityRank entityRank, Ordinal fieldOrdinal, const std::string& fieldName, + const DataTraits& dataTraits, Layout dataLayout); +- virtual ~ConstFieldDataBytes() override = default; ++ KOKKOS_FUNCTION virtual ~ConstFieldDataBytes() override {} + + // The AMD ROCm compiler has an "undefined hidden symbol" link error when this copy constructor is defined + // below, along with all of the other functions. Not sure why this one is special. +diff --git a/packages/stk/stk_mesh/stk_mesh/base/FieldData.hpp b/packages/stk/stk_mesh/stk_mesh/base/FieldData.hpp +index 5bfd29af246..1ef2277eeac 100644 +--- a/packages/stk/stk_mesh/stk_mesh/base/FieldData.hpp ++++ b/packages/stk/stk_mesh/stk_mesh/base/FieldData.hpp +@@ -99,7 +99,7 @@ public: + + FieldData(); + FieldData(EntityRank entityRank, Ordinal fieldOrdinal, const std::string& fieldName, const DataTraits& dataTraits); +- KOKKOS_DEFAULTED_FUNCTION virtual ~FieldData() override = default; ++ KOKKOS_FUNCTION virtual ~FieldData() override {} + + FieldData(const FieldData& fieldData, FieldAccessTag accessTag); + KOKKOS_DEFAULTED_FUNCTION FieldData(const FieldData& fieldData) = default; +@@ -147,7 +147,7 @@ public: + + FieldData(); + FieldData(EntityRank entityRank, Ordinal fieldOrdinal, const std::string& fieldName, const DataTraits& dataTraits); +- KOKKOS_DEFAULTED_FUNCTION virtual ~FieldData() override = default; ++ KOKKOS_FUNCTION virtual ~FieldData() override {} + + FieldData(const FieldData& fieldData, FieldAccessTag accessTag); + KOKKOS_DEFAULTED_FUNCTION FieldData(const FieldData& fieldData) = default; +@@ -195,7 +195,7 @@ public: + + FieldData(); + FieldData(const FieldDataBytes& hostFieldBytes, FieldAccessTag accessTag); +- KOKKOS_DEFAULTED_FUNCTION virtual ~FieldData() override = default; ++ KOKKOS_FUNCTION virtual ~FieldData() override {} + + KOKKOS_DEFAULTED_FUNCTION FieldData(const FieldData& fieldData) = default; + KOKKOS_DEFAULTED_FUNCTION FieldData(FieldData&&) = default; +diff --git a/packages/stk/stk_mesh/stk_mesh/base/FieldDataBytes.hpp b/packages/stk/stk_mesh/stk_mesh/base/FieldDataBytes.hpp +index fcd9fe03bcc..9112cbe06c4 100644 +--- a/packages/stk/stk_mesh/stk_mesh/base/FieldDataBytes.hpp ++++ b/packages/stk/stk_mesh/stk_mesh/base/FieldDataBytes.hpp +@@ -87,7 +87,7 @@ public: + FieldDataBytes(); + FieldDataBytes(EntityRank entityRank, Ordinal fieldOrdinal, const std::string& fieldName, + const DataTraits& dataTraits, Layout dataLayout); +- virtual ~FieldDataBytes() override = default; ++ KOKKOS_FUNCTION virtual ~FieldDataBytes() override {} + + FieldDataBytes(const FieldDataBytes& fieldData) = default; + FieldDataBytes(FieldDataBytes&&) = default; +diff --git a/packages/stk/stk_mesh/stk_mesh/base/HostMesh.hpp b/packages/stk/stk_mesh/stk_mesh/base/HostMesh.hpp +index 901e3e1e9cc..eba2caceebe 100644 +--- a/packages/stk/stk_mesh/stk_mesh/base/HostMesh.hpp ++++ b/packages/stk/stk_mesh/stk_mesh/base/HostMesh.hpp +@@ -88,7 +88,7 @@ public: + require_ngp_mesh_rank_limit(bulk->mesh_meta_data()); + } + +- virtual ~HostMeshT() override = default; ++ KOKKOS_FUNCTION virtual ~HostMeshT() override {} + + HostMeshT(const HostMeshT &) = default; + HostMeshT(HostMeshT &&) = default; diff --git a/repos/spack_repo/builtin/packages/trilinos/package.py b/repos/spack_repo/builtin/packages/trilinos/package.py index b2759f9064f..f8f5d24cae4 100644 --- a/repos/spack_repo/builtin/packages/trilinos/package.py +++ b/repos/spack_repo/builtin/packages/trilinos/package.py @@ -31,7 +31,7 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): A unique design feature of Trilinos is its focus on packages. """ - homepage = "https://trilinos.org/" + homepage = "https://trilinos.github.io" url = "https://github.com/trilinos/Trilinos/archive/refs/tags/trilinos-release-12-12-1.tar.gz" git = "https://github.com/trilinos/Trilinos.git" @@ -53,6 +53,10 @@ 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") version("15.1.1", sha256="2108d633d2208ed261d09b2d6b2fbae7a9cdc455dd963c9c94412d38d8aaefe4") @@ -95,7 +99,11 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): variant("cuda_rdc", default=False, description="Turn on RDC for CUDA build") variant("rocm_rdc", default=False, description="Turn on RDC for ROCm build") variant( - "cxxstd", default="14", description="C++ standard", values=["11", "14", "17"], multi=False + "cxxstd", + default="20", + description="C++ standard", + values=["11", "14", "17", "20"], + multi=False, ) variant("debug", default=False, description="Enable runtime safety and debug checks") variant( @@ -131,35 +139,31 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): # TPLs (alphabet order) variant("adios2", default=False, description="Enable ADIOS2") variant("boost", default=False, description="Compile with Boost") + variant("cusparse", default=False, description="Enable cuSPARSE support") variant("hdf5", default=False, description="Compile with HDF5") variant("hypre", default=False, description="Compile with Hypre preconditioner") variant("mpi", default=True, description="Compile with MPI parallelism") variant("mumps", default=False, description="Compile with support for MUMPS solvers") variant("suite-sparse", default=False, description="Compile with SuiteSparse solvers") variant("superlu-dist", default=False, description="Compile with SuperluDist solvers") - variant("superlu", default=False, description="Compile with SuperLU solvers") variant("strumpack", default=False, description="Compile with STRUMPACK solvers") variant("x11", default=False, description="Compile with X11 when +exodus") # Package options (alphabet order) variant("adelus", default=False, description="Compile with Adelus") - variant("amesos", default=True, description="Compile with Amesos") variant("amesos2", default=True, description="Compile with Amesos2") variant("anasazi", default=True, description="Compile with Anasazi") - variant("aztec", default=True, description="Compile with Aztec") variant("belos", default=True, description="Compile with Belos") variant("chaco", default=False, description="Compile with Chaco from SEACAS") - variant("epetra", default=True, description="Compile with Epetra") - variant("epetraext", default=True, description="Compile with EpetraExt") variant("exodus", default=False, description="Compile with Exodus from SEACAS") - variant("ifpack", default=True, description="Compile with Ifpack") variant("ifpack2", default=True, description="Compile with Ifpack2") - variant("intrepid", default=False, description="Enable Intrepid") variant("intrepid2", default=False, description="Enable Intrepid2") - variant("isorropia", default=False, description="Compile with Isorropia") - variant("gtest", default=False, description="Build vendored Googletest") + variant( + "gtest", + default=False, + description="Build vendored Googletest (uses external Googletest for @17:)", + ) variant("kokkos", default=True, description="Compile with Kokkos") - variant("ml", default=True, description="Compile with ML") variant("minitensor", default=False, description="Compile with MiniTensor") variant("muelu", default=True, description="Compile with Muelu") variant("nox", default=False, description="Compile with NOX") @@ -168,7 +172,6 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): variant("piro", default=False, description="Compile with Piro") variant("phalanx", default=False, description="Compile with Phalanx") variant("rol", default=False, description="Compile with ROL") - variant("rythmos", default=False, description="Compile with Rythmos") variant("sacado", default=True, description="Compile with Sacado") variant("stk", default=False, description="Compile with STK") variant("shards", default=False, description="Compile with Shards") @@ -186,17 +189,38 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): # Internal package options (alphabetical order) variant("basker", default=False, description="Compile with the Basker solver in Amesos2") - variant("epetraextbtf", default=False, description="Compile with BTF in EpetraExt") - variant( - "epetraextexperimental", - default=False, - description="Compile with experimental in EpetraExt", - ) - variant( - "epetraextgraphreorderings", - default=False, - description="Compile with graph reorderings in EpetraExt", - ) + + # Deprecated packages as of v17.0.0, remove when no earlier versions are supported + with when("@:16"): + variant("amesos", default=True, description="Compile with Amesos") + variant("aztec", default=True, description="Compile with Aztec") + variant("epetra", default=True, description="Compile with Epetra") + variant("epetraext", default=True, description="Compile with EpetraExt") + variant("ifpack", default=True, description="Compile with Ifpack") + variant("intrepid", default=False, description="Enable Intrepid") + variant("isorropia", default=False, description="Compile with Isorropia") + variant("ml", default=True, description="Compile with ML") + variant( + "epetraextbtf", + default=False, + description="Compile with BTF in EpetraExt", + when="@:16", + ) + variant( + "epetraextexperimental", + default=False, + description="Compile with experimental in EpetraExt", + when="@:16", + ) + variant( + "epetraextgraphreorderings", + default=False, + description="Compile with graph reorderings in EpetraExt", + when="@:16", + ) + + # Deprecated as of v15.0.0, remove when no earlier versions are supported + variant("rythmos", default=False, description="Compile with Rythmos", when="@:14") # External package options variant("dtk", default=False, description="Enable DataTransferKit (deprecated)") @@ -286,6 +310,7 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): conflicts("+dtk") conflicts("+ifpack2") conflicts("+muelu") + conflicts("+shylu") conflicts("+teko") conflicts("+zoltan2") @@ -303,6 +328,15 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): conflicts("~mpi") conflicts("~stk") + # ShyLU_DD/core dependended on these libraries and was included with +shylu up until v17.0 + with when("@:16 +shylu"): + conflicts("~amesos") + conflicts("~aztec") + conflicts("~belos") + conflicts("~epetra") + conflicts("~ifpack") + conflicts("~isorropia") + # Panzer is not gen-2 library with when("+panzer"): conflicts("~intrepid2") @@ -335,6 +369,26 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): conflicts("+minitensor", when="~boost") conflicts("+phalanx", when="~sacado") conflicts("+stokhos", when="~kokkos") + conflicts("+muelu", when="@17: ~ifpack2") + + conflicts("+rocm~rocm_rdc", when="@:16 +stk") + conflicts("+rocm~rocm_rdc", when="@17: +stk ^hip@:6.2") + # rocm@7 conflicts with cxxstd=20 per https://github.com/llvm/llvm-project/issues/184856 + # this conflict can be updated once https://github.com/llvm/llvm-project/pull/184894 + # makes it into hip + conflicts("cxxstd=20", when="+rocm ^hip@7:") + + # TRIbits dependencies only relied on by testing are invoked regardless, + # whether +test or ~test. see https://github.com/TriBITSPub/TriBITS/issues/56 + with when("~gtest"): + conflicts("+minitensor") + conflicts("+rol") + conflicts("+stk") + # this does alleviate needing: conflicts("+test", when="@17: ~gtest") + # see https://github.com/spack/spack-packages/pull/3361 for explanation + + # stk tests require +exodus + conflicts("~exodus", when="+stk+test") # Only allow DTK with Trilinos 12.14, 12.18 conflicts("+dtk", when="~boost") @@ -348,11 +402,6 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): conflicts("+mesquite", when="@:12.10,master") # Strumpack is only available as of mid-2021 conflicts("+strumpack", when="@:13.0") - # Can only use one type of SuperLU - conflicts("+superlu-dist", when="+superlu") - # Amesos and Ifpack only support up to SuperLU 4.x.y interfaces - conflicts("+amesos", when="+superlu@5:") - conflicts("+ifpack", when="+superlu@5:") # For Trilinos v11 we need to force SuperLUDist=OFF, since only the # deprecated SuperLUDist v3.3 together with an Amesos patch is working. conflicts("+superlu-dist", when="@11.4.1:11.14.3") @@ -367,10 +416,12 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): conflicts("+adios2", when="@:12.14.1") conflicts("cxxstd=11", when="@13.2:") conflicts("cxxstd=14", when="@14:") - conflicts("cxxstd=17", when="@:12") + conflicts("cxxstd=17", when="@:12,17:") + conflicts("cxxstd=20", when="@:16") conflicts("cxxstd=11", when="+wrapper ^cuda@6.5.14") conflicts("cxxstd=14", when="+wrapper ^cuda@6.5.14:8.0.61") conflicts("cxxstd=17", when="+wrapper ^cuda@6.5.14:10.2.89") + conflicts("cxxstd=20", when="+wrapper ^cuda@:11") # Multi-value gotype only applies to trilinos through 12.14 conflicts("gotype=all", when="@12.15:") @@ -382,6 +433,7 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): msg="trilinos~wrapper+cuda can only be built with the Clang compiler", ) conflicts("+cuda_rdc", when="~cuda") + conflicts("+cusparse", when="~cuda") conflicts("+rocm_rdc", when="~rocm") conflicts("+wrapper", when="~cuda") conflicts("+wrapper", when="%clang") @@ -424,17 +476,25 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): depends_on("kokkos~rocm", when="~rocm") depends_on("kokkos+wrapper", when="+wrapper") depends_on("kokkos~wrapper", when="~wrapper") - depends_on("kokkos+cuda_relocatable_device_code~shared", when="+cuda_rdc") - depends_on("kokkos+hip_relocatable_device_code~shared", when="+rocm_rdc") - depends_on("kokkos-kernels~shared", when="+cuda_rdc") - depends_on("kokkos-kernels~shared", when="+rocm_rdc") + depends_on("kokkos+pic", when="+shared") + depends_on("kokkos+cuda_relocatable_device_code", when="+cuda_rdc") + 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@=4.6.01", 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.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@=4.6.01", 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.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") @@ -453,10 +513,12 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): depends_on("boost+graph+math+exception+stacktrace", when="+boost") depends_on("boost+graph+math+exception+stacktrace", when="@:13.4.0 +stk") depends_on("cgns", when="+exodus") + depends_on("cmake@3.27:", type="build", when="@17.0.0:") depends_on("cmake@3.23:", type="build", when="@14.0.0:") + depends_on("googletest", when="@17: +gtest") depends_on("hdf5+hl", when="+hdf5") for plat in ["darwin", "linux"]: - depends_on("hypre~internal-superlu~int64", when="+hypre platform=%s" % plat) + depends_on("hypre~int64", when="+hypre platform=%s" % plat) depends_on("hypre-cmake~int64", when="+hypre platform=windows") depends_on("kokkos-nvcc-wrapper", when="+wrapper") depends_on("lapack") @@ -481,9 +543,6 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): depends_on("strumpack+shared", when="+strumpack") depends_on("suite-sparse@:7.3.1", when="+suite-sparse") depends_on("superlu-dist", when="+superlu-dist") - depends_on("superlu@3:5.2", when="@12.18.1: +superlu") - depends_on("superlu@3:5.1.1", when="@12.14.1 +superlu") - depends_on("superlu@3:4", when="@:12.12.1 +superlu") depends_on("swig", when="@:14 +python") depends_on("zlib-api", when="+zoltan") @@ -550,7 +609,7 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): patch("13.4.1-kokkoskernel-patch2296.patch", when="@13.4.1 %oneapi@2025:") # https://github.com/kokkos/kokkos-kernels/pull/2296 - patch("14-14.2-kokkoskernel-patch2296.patch", when="@14 %oneapi@2025:") + patch("14-14.2-kokkoskernel-patch2296.patch", when="@14:15 %oneapi@2025:") # https://github.com/trilinos/Trilinos/pull/11676 patch("13.4.1-14-patch11676.patch", when="@13.4.1:14.0 %oneapi@2025:") @@ -565,6 +624,21 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): # https://github.com/trilinos/Trilinos/pull/13921 patch("16-1-0-stk-size_t.patch", when="@=16.1.0 +stk") + # https://github.com/spack/spack-packages/pull/2931#issuecomment-3756434768 + patch("16-2-stk_destructor_kokkos_decoration.patch", when="@=16.2.0 +stk") + + # https://github.com/spack/spack-packages/pull/3361 + patch( + "https://github.com/trilinos/Trilinos/commit/b36622c86f3adfef3ec4cf6e40f9645099e11a18.patch?full_index=1", + sha256="7a07f769aedf6433e440e0ce666c66d2721bfa8b99b18d8e3e95e1303878778d", + when="@=17.0.0 +stk", + ) + patch( + "https://github.com/trilinos/Trilinos/commit/cb633c33a7d77667ca71a537c6ecf3a322a69b33.patch?full_index=1", + sha256="0536a8d412ac38c3d3cf25ff9a5d22916ff6ba439cf52e59e6bd1b2815b8681e", + when="@=17.0.0 +stk", + ) + def flag_handler(self, name, flags): spec = self.spec is_cce = spec.satisfies("%cce") @@ -598,11 +672,7 @@ def flag_handler(self, name, flags): flags.append("-Wl,-undefined,dynamic_lookup") # Fortran lib (assumes clang is built with gfortran!) - if spec.satisfies("+fortran") and ( - spec.satisfies("%gcc") - or spec.satisfies("%clang") - or spec.satisfies("%apple-clang") - ): + if spec.satisfies("+fortran %fortran=gcc"): fc = Executable(self.compiler.fc) libgfortran = fc( "--print-file-name", @@ -743,6 +813,13 @@ def define_enable(suffix, value=None): options.append(define("BUILD_TESTING", True)) else: options.append(define_trilinos_enable("TESTS", False)) + if "+stk" in spec: + options.append(define_trilinos_enable("STKUnit_test_utils", False)) + options.append(define_trilinos_enable("STKUnit_tests", False)) + options.append(define_trilinos_enable("STKDoc_tests", False)) + options.append(define_trilinos_enable("STKIntegration_tests", False)) + options.append(define_trilinos_enable("STKPerformance_tests", False)) + options.append(define_trilinos_enable("STKNGP_TEST", False)) if spec.version >= Version("13"): options.append(define_from_variant("CMAKE_CXX_STANDARD", "cxxstd")) @@ -773,7 +850,6 @@ def define_enable(suffix, value=None): define_trilinos_enable("Epetra"), define_trilinos_enable("EpetraExt"), define_trilinos_enable("FEI", False), - define_trilinos_enable("Gtest"), define_trilinos_enable("Ifpack"), define_trilinos_enable("Ifpack2"), define_trilinos_enable("Intrepid"), @@ -914,12 +990,12 @@ def define_tpl(trilinos_name, spack_name, have_dep): ("ADIOS2", "adios2", "adios2"), ("Boost", "boost", "boost"), ("CUDA", "cuda", "cuda"), + ("CUSPARSE", "cusparse", "cuda"), ("HDF5", "hdf5", "hdf5"), ("HYPRE", "hypre", "hypre"), ("MUMPS", "mumps", "mumps"), ("AMD", "suite-sparse", "suite-sparse"), ("UMFPACK", "suite-sparse", "suite-sparse"), - ("SuperLU", "superlu", "superlu"), ("SuperLUDist", "superlu-dist", "superlu-dist"), ("X11", "x11", "libx11"), ] @@ -989,6 +1065,12 @@ def define_tpl(trilinos_name, spack_name, have_dep): ] ) + if spec.satisfies("@17: +gtest"): + options.append(define_tpl_enable("gtest", True)) + options.append(define("GTEST_ROOT", spec["googletest"].prefix)) + else: + options.append(define_trilinos_enable("Gtest")) + if spec.satisfies("^superlu-dist@4.0:"): options.extend([define("HAVE_SUPERLUDIST_LUSTRUCTINIT_2ARG", True)]) @@ -1051,7 +1133,7 @@ def define_tpl(trilinos_name, spack_name, have_dep): # ################# Kokkos ###################### if "+kokkos" in spec: - arch = Kokkos.get_microarch(spec.target) + arch = Kokkos.get_microarch(spec.target, spec["kokkos"] if "kokkos" in spec else None) if arch: options.append(define("Kokkos_ARCH_" + arch.upper(), True)) @@ -1074,7 +1156,7 @@ def define_tpl(trilinos_name, spack_name, have_dep): ) arch_map = Kokkos.spack_cuda_arch_map options.extend( - define("Kokkos_ARCH_" + arch_map[arch].upper(), True) + define("Kokkos_ARCH_" + arch_map[arch][0].upper(), True) for arch in spec.variants["cuda_arch"].value ) @@ -1091,7 +1173,7 @@ def define_tpl(trilinos_name, spack_name, have_dep): amdgpu_arch_map = Kokkos.amdgpu_arch_map for amd_target in spec.variants["amdgpu_target"].value: try: - arch = amdgpu_arch_map[amd_target] + arch = amdgpu_arch_map[amd_target][0] except KeyError: pass else: diff --git a/repos/spack_repo/builtin/packages/trinity/package.py b/repos/spack_repo/builtin/packages/trinity/package.py index 02c1e8ccd88..c6b0b316b1b 100644 --- a/repos/spack_repo/builtin/packages/trinity/package.py +++ b/repos/spack_repo/builtin/packages/trinity/package.py @@ -54,7 +54,7 @@ class Trinity(MakefilePackage): depends_on("java@8:", type=("build", "run")) depends_on("bowtie2") depends_on("jellyfish") - depends_on("salmon") + depends_on("salmon@:1.10.3") depends_on("perl+threads", type=("build", "run")) depends_on("autoconf", type="build") depends_on("automake", type="build") @@ -104,6 +104,12 @@ def build(self, spec, prefix): make() make("trinity_essentials") make("plugins") + # Remove recursive symlink + force_remove( + join_path( + self.build_directory, "trinity-plugins", "Trimmomatic-0.36", "Trimmomatic-0.36" + ) + ) def install(self, spec, prefix): install_tree(".", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/trinotate/package.py b/repos/spack_repo/builtin/packages/trinotate/package.py index 3e1f4dbde3b..e3ec60f7fe2 100644 --- a/repos/spack_repo/builtin/packages/trinotate/package.py +++ b/repos/spack_repo/builtin/packages/trinotate/package.py @@ -3,7 +3,6 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import glob -import os from spack_repo.builtin.build_systems.generic import Package @@ -56,11 +55,9 @@ def install(self, spec, prefix): install_tree(".", join_path(prefix.lib, "trinotate")) mkdirp(prefix.bin) - os.symlink( - join_path(prefix.lib, "trinotate/Trinotate"), join_path(prefix.bin, "Trinotate") - ) + symlink(join_path(prefix.lib, "trinotate/Trinotate"), join_path(prefix.bin, "Trinotate")) - os.symlink( + symlink( join_path(prefix.lib, "trinotate/run_TrinotateWebserver.pl"), join_path(prefix.bin, "run_TrinotateWebserver.pl"), ) diff --git a/repos/spack_repo/builtin/packages/trivy/package.py b/repos/spack_repo/builtin/packages/trivy/package.py index 40a906e92b0..2ed6edf9899 100644 --- a/repos/spack_repo/builtin/packages/trivy/package.py +++ b/repos/spack_repo/builtin/packages/trivy/package.py @@ -17,6 +17,8 @@ class Trivy(GoPackage): license("Apache-2.0", checked_by="RobertMaaskant") + version("0.70.0", sha256="ff9ac06468aab89802388f16d1d179f4680db714afbf6a8132a417d288aa008e") + version("0.69.3", sha256="3ca5fa62932273dd7eef3b6ec762625da42304ebb8f13e4be9fdd61545ca1773") version("0.64.1", sha256="9e23c90bd1afd9c369f1582712907e8e0652c8f5825e599850183af174c65666") version("0.64.0", sha256="95f958c5cf46e063660c241d022a57f99309208c9725d6031b048c9c414ecfa7") version("0.63.0", sha256="ac26dcb16072e674b8a3bffa6fbd817ec5baa125660b5c49d9ad8659e14d0800") @@ -25,24 +27,19 @@ class Trivy(GoPackage): version("0.61.1", sha256="f6ad43e008c008d67842c9e2b4af80c2e96854db8009fba48fc37b4f9b15f59b") version("0.61.0", sha256="1e97b1b67a4c3aee9c567534e60355033a58ce43a3705bdf198d7449d53b6979") + 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:") depends_on("go@1.24.2:", type="build", when="@0.62:") depends_on("go@1.24:", type="build") 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}'"] + def ldflags(self): + version_path = go("list", "../../pkg/version/app", output=str).strip() + return [f"-X {version_path}.ver=v{self.spec.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 setup_build_environment(self, env: EnvironmentModifications) -> None: + if self.spec.satisfies("@0.67.0:"): + env.set("GOEXPERIMENT", "jsonv2") diff --git a/repos/spack_repo/builtin/packages/trnascan_se/package.py b/repos/spack_repo/builtin/packages/trnascan_se/package.py index d32d8c1392e..5b3f6263757 100644 --- a/repos/spack_repo/builtin/packages/trnascan_se/package.py +++ b/repos/spack_repo/builtin/packages/trnascan_se/package.py @@ -10,8 +10,8 @@ class TrnascanSe(AutotoolsPackage): """Seaching for tRNA genes in genomic sequence""" - homepage = "http://lowelab.ucsc.edu/tRNAscan-SE/" - url = "http://trna.ucsc.edu/software/trnascan-se-2.0.0.tar.gz" + homepage = "https://lowelab.ucsc.edu/tRNAscan-SE/" + url = "https://trna.ucsc.edu/software/trnascan-se-2.0.0.tar.gz" license("GPL-3.0-or-later") diff --git a/repos/spack_repo/builtin/packages/trng/0001-Add-inline-to-comparison-operators-in-uniform_int_di.patch b/repos/spack_repo/builtin/packages/trng/0001-Add-inline-to-comparison-operators-in-uniform_int_di.patch new file mode 100644 index 00000000000..b304429c96a --- /dev/null +++ b/repos/spack_repo/builtin/packages/trng/0001-Add-inline-to-comparison-operators-in-uniform_int_di.patch @@ -0,0 +1,52 @@ +From 761184f5727ae34c4916c921d16fc1b0e5d309af Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jos=C3=A9=20=C3=81ngel=20Soler=20Ortiz?= + +Date: Tue, 30 Mar 2021 23:08:38 +0100 +Subject: [PATCH] Add inline to comparison operators in uniform_int_dist.hpp + (#22) + +* Prevent 'multiple definition of trng::operator!=' errors when including uniform_int_dist.hpp in multiple files +* fix indentation +--- + trng/uniform_int_dist.hpp | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/trng/uniform_int_dist.hpp b/trng/uniform_int_dist.hpp +index 72cb68f..c228d73 100644 +--- a/trng/uniform_int_dist.hpp ++++ b/trng/uniform_int_dist.hpp +@@ -138,13 +138,13 @@ namespace trng { + + // EqualityComparable concept + TRNG_CUDA_ENABLE +- bool operator==(const uniform_int_dist::param_type &P1, +- const uniform_int_dist::param_type &P2) { ++ inline bool operator==(const uniform_int_dist::param_type &P1, ++ const uniform_int_dist::param_type &P2) { + return P1.a() == P2.a() and P1.b() == P2.b(); + } + TRNG_CUDA_ENABLE +- bool operator!=(const uniform_int_dist::param_type &P1, +- const uniform_int_dist::param_type &P2) { ++ inline bool operator!=(const uniform_int_dist::param_type &P1, ++ const uniform_int_dist::param_type &P2) { + return not(P1 == P2); + } + +@@ -176,11 +176,11 @@ namespace trng { + + // EqualityComparable concept + TRNG_CUDA_ENABLE +- bool operator==(const uniform_int_dist &g1, const uniform_int_dist &g2) { ++ inline bool operator==(const uniform_int_dist &g1, const uniform_int_dist &g2) { + return g1.param() == g2.param(); + } + TRNG_CUDA_ENABLE +- bool operator!=(const uniform_int_dist &g1, const uniform_int_dist &g2) { ++ inline bool operator!=(const uniform_int_dist &g1, const uniform_int_dist &g2) { + return g1.param() != g2.param(); + } + +-- +2.37.3 + diff --git a/repos/spack_repo/builtin/packages/trng/0002-urng-libcxx19-yarn.patch b/repos/spack_repo/builtin/packages/trng/0002-urng-libcxx19-yarn.patch new file mode 100644 index 00000000000..cad35a8f285 --- /dev/null +++ b/repos/spack_repo/builtin/packages/trng/0002-urng-libcxx19-yarn.patch @@ -0,0 +1,142 @@ +diff --git a/trng/yarn2.hpp b/trng/yarn2.hpp +index 54b244a..6b901d5 100644 +--- a/trng/yarn2.hpp ++++ b/trng/yarn2.hpp +@@ -50,7 +50,7 @@ namespace trng { + class yarn2 { + public: + // Uniform random number generator concept +- using result_type = int32_t; ++ using result_type = uint32_t; + TRNG_CUDA_ENABLE + result_type operator()(); + +@@ -194,13 +194,13 @@ namespace trng { + #endif + if (s > 1) { + jump(n + 1ull); +- const int32_t q0{S.r[0]}; ++ const int32_t q0{static_cast(S.r[0])}; + jump(s); +- const int32_t q1{S.r[0]}; ++ const int32_t q1{static_cast(S.r[0])}; + jump(s); +- const int32_t q2{S.r[0]}; ++ const int32_t q2{static_cast(S.r[0])}; + jump(s); +- const int32_t q3{S.r[0]}; ++ const int32_t q3{static_cast(S.r[0])}; + int32_t a[2], b[4]; + a[0] = q2; + b[0] = q1; +@@ -209,10 +209,10 @@ namespace trng { + b[2] = q2; + b[3] = q1; + int_math::gauss<2>(b, a, modulus); +- P.a[0] = a[0]; +- P.a[1] = a[1]; +- S.r[0] = q1; +- S.r[1] = q0; ++ P.a[0] = static_cast(a[0]); ++ P.a[1] = static_cast(a[1]); ++ S.r[0] = static_cast(q1); ++ S.r[1] = static_cast(q0); + for (int i{0}; i < 2; ++i) + backward(); + } +@@ -220,7 +220,7 @@ namespace trng { + + TRNG_CUDA_ENABLE + inline void yarn2::jump2(unsigned int s) { +- result_type b[4], c[4]{}; ++ int32_t b[4], c[4]{}; + b[0] = P.a[0]; + b[1] = P.a[1]; + b[2] = 1; +@@ -232,8 +232,8 @@ namespace trng { + break; + int_math::matrix_mult<2>(c, c, b, modulus); + } +- const result_type r[2]{S.r[0], S.r[1]}; +- result_type d[2]; ++ const int32_t r[2]{static_cast(S.r[0]), static_cast(S.r[1])}; ++ int32_t d[2]; + if ((s & 1u) == 0) + int_math::matrix_vec_mult<2>(b, r, d, modulus); + else +diff --git a/trng/yarn3.hpp b/trng/yarn3.hpp +index 9e50dac..20b4ba7 100644 +--- a/trng/yarn3.hpp ++++ b/trng/yarn3.hpp +@@ -50,7 +50,7 @@ namespace trng { + class yarn3 { + public: + // Uniform random number generator concept +- using result_type = int32_t; ++ using result_type = uint32_t; + TRNG_CUDA_ENABLE + result_type operator()(); + +@@ -199,17 +199,17 @@ namespace trng { + #endif + if (s > 1) { + jump(n + 1ull); +- const int32_t q0{S.r[0]}; ++ const int32_t q0{static_cast(S.r[0])}; + jump(s); +- const int32_t q1{S.r[0]}; ++ const int32_t q1{static_cast(S.r[0])}; + jump(s); +- const int32_t q2{S.r[0]}; ++ const int32_t q2{static_cast(S.r[0])}; + jump(s); +- const int32_t q3{S.r[0]}; ++ const int32_t q3{static_cast(S.r[0])}; + jump(s); +- const int32_t q4{S.r[0]}; ++ const int32_t q4{static_cast(S.r[0])}; + jump(s); +- const int32_t q5{S.r[0]}; ++ const int32_t q5{static_cast(S.r[0])}; + int32_t a[3], b[9]; + a[0] = q3; + b[0] = q2; +@@ -224,12 +224,12 @@ namespace trng { + b[7] = q3; + b[8] = q2; + int_math::gauss<3>(b, a, modulus); +- P.a[0] = a[0]; +- P.a[1] = a[1]; +- P.a[2] = a[2]; +- S.r[0] = q2; +- S.r[1] = q1; +- S.r[2] = q0; ++ P.a[0] = static_cast(a[0]); ++ P.a[1] = static_cast(a[1]); ++ P.a[2] = static_cast(a[2]); ++ S.r[0] = static_cast(q2); ++ S.r[1] = static_cast(q1); ++ S.r[2] = static_cast(q0); + for (int i{0}; i < 3; ++i) + backward(); + } +@@ -237,7 +237,7 @@ namespace trng { + + TRNG_CUDA_ENABLE + inline void yarn3::jump2(unsigned int s) { +- result_type b[9], c[9]{}; ++ int32_t b[9], c[9]{}; + b[0] = P.a[0]; + b[1] = P.a[1]; + b[2] = P.a[2]; +@@ -254,8 +254,8 @@ namespace trng { + break; + int_math::matrix_mult<3>(c, c, b, modulus); + } +- const result_type r[3]{S.r[0], S.r[1], S.r[2]}; +- result_type d[3]; ++ const int32_t r[3]{static_cast(S.r[0]), static_cast(S.r[1]), static_cast(S.r[2])}; ++ int32_t d[3]; + if ((s & 1u) == 0) + int_math::matrix_vec_mult<3>(b, r, d, modulus); + else diff --git a/repos/spack_repo/builtin/packages/trng/package.py b/repos/spack_repo/builtin/packages/trng/package.py new file mode 100644 index 00000000000..cb156b08e81 --- /dev/null +++ b/repos/spack_repo/builtin/packages/trng/package.py @@ -0,0 +1,56 @@ +# 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 Trng(CMakePackage): + """Tina's Random Number Generator Library""" + + homepage = "https://www.numbercrunch.de/trng/" + git = "https://github.com/rabauke/trng4.git" + + maintainers("chapman39") + + version("4.28.1", commit="cc1b170b050b541ac481415b175394670c2a4e85", submodules=True) + version("4.24", commit="a22a32b9a285d1293b74b17b34f81af5dcec6311") + version("4.23.1", commit="610f7836610e9e01788f8461fbe83b67544ded7c") + version("4.23", commit="22a30c493eff4cb547185fa48275683751df18e0") + version("4.22", commit="d5f48c88f23af98a004ed26b4053971ace130ae6") + version("4.21", commit="9156b3aecf7543b6ef7b43c8e8719b1ebf5b1ca1") + version("4.20", commit="e14edeb978b2bc88fd3a03b5ee6b40b284ca44e3") + version("4.19", commit="5e130e97a8019941d58c59dfa221d9d4ba30a00c") + version("4.18", commit="5663e53af675c0810e20c4ba3c53940e25a3e334") + version("4.17", commit="1c8cbb0ecdc59983d5ec29c514058fdffae1effa") + version("4.16", commit="8191fd2729b88deebe094766b8e9144a7fb032f5") + + variant("tests", default=True, description="Build TRNG tests") + variant("examples", default=True, description="Build TRNG examples", when="@4.28:") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cmake@3.10:", type="build") + depends_on("cmake@3.30:", type="build", when="@4.28:") + + depends_on("boost") + + patch("0001-Add-inline-to-comparison-operators-in-uniform_int_di.patch", when="@4.23:4.24") + patch("0002-urng-libcxx19-yarn.patch", when="@4.23:4.24 %clang platform=darwin") + + def cmake_args(self): + args = [] + + if self.spec.satisfies("@4.28:"): + args.append(self.define_from_variant("TRNG_ENABLE_EXAMPLES", "examples")) + args.append(self.define_from_variant("TRNG_ENABLE_TESTS", "tests")) + else: + args.append(self.define("BUILD_TESTING", self.spec.satisfies("+tests"))) + + boost = self.spec["boost"] + args.append(self.define("Boost_DIR", boost.prefix.lib.cmake.Boost)) + + return args diff --git a/repos/spack_repo/builtin/packages/truchas/package.py b/repos/spack_repo/builtin/packages/truchas/package.py index aea4de010bf..187d202f20f 100644 --- a/repos/spack_repo/builtin/packages/truchas/package.py +++ b/repos/spack_repo/builtin/packages/truchas/package.py @@ -25,6 +25,11 @@ class Truchas(CMakePackage): maintainers("pbrady", "zjibben") version("develop", branch="master") + version("26.04", sha256="0e77ca76904e39d5dd54c96db5da95047375b86642fe089e97bc4098042114f6") + version("26.02", sha256="0e9c0faf9478b534c7c83eb31292ba238e10b73cf892f0b6bca2ef9b6f5100b8") + version("25.12", sha256="6ba1e6f4195b37057ac7dcf19fb9f7a7a86ae449c2c271b8c7e72ce5f0009366") + version("25.11", sha256="9f7ecf16a3f054fd1addb10282858b039b078cede26170501dfa08e9323dfbeb") + version("25.10", sha256="0d797a3517c7f2183409fd9c8c2e2c7fefba9cae16f86cd81f8a67e79b6daede") version("24.07", sha256="42a2e2edfaa157786bd801e889477f08c6d168690a123a8bfa6d86c222bc54e6") version("24.06", sha256="648c5c3f3c3c72fd359de91713af5feed1c1580268489c079511fa5ac2428519") version("23.06", sha256="a786caba5129d7e33ba42a06751d6c570bd3b9697e3404276a56216d27820c68") @@ -35,6 +40,7 @@ class Truchas(CMakePackage): # ------------------------------------------------------------ # variant("portage", default=False, description="use the portage data mapping tool") + variant("mumps", default=False, description="use mumps direct solvers", when="@25.10:") variant("metis", default=True, description="use metis for grid partitioning") variant("std_name", default=False, description="enable std_mod_proc_name with intel") variant("config", default=True, description="use proved truchas config files for cmake") @@ -64,9 +70,11 @@ class Truchas(CMakePackage): depends_on("scorpio") depends_on("hdf5@1.14:", when="@24.06:") depends_on("hdf5@1.10", when="@:24.05") + depends_on("fvtkhdf@0.6.0: +shared ~mpi_f08", when="@26.04:") depends_on("netcdf-c@4.9:", when="@24.06:") depends_on("netcdf-c@4.8", when="@:24.05") - depends_on("petaca@24.04: +shared", when="@24.06:") + depends_on("petaca@25.06: +shared", when="@25.10:") + depends_on("petaca@24.04: +shared", when="@24.06:24.07") depends_on("petaca@24.04: +shared +std_name", when="@24.06: +std_name") depends_on("petaca@22.03: +shared", when="@:24.05") depends_on("petaca@22.03: +shared +std_name", when="@:24.05 +std_name") @@ -89,6 +97,7 @@ class Truchas(CMakePackage): # ------------------------------------------------------------ # depends_on("hypre@2.29:", when="@24.06:") depends_on("hypre@2.20:2.28", when="@:24.05") + depends_on("mumps@5.7 ~openmp +metis", when="+mumps") depends_on("lapack") # ------------------------------------------------------------ # @@ -100,6 +109,7 @@ def cmake_args(self): # baseline config args opts = [ self.define_from_variant("USE_METIS", "metis"), + self.define_from_variant("USE_MUMPS", "mumps"), self.define_from_variant("USE_PORTAGE", "portage"), self.define_from_variant("ENABLE_STD_MOD_PROC_NAME", "std_name"), ] diff --git a/repos/spack_repo/builtin/packages/tsne_cuda/fix_cmakelists.patch b/repos/spack_repo/builtin/packages/tsne_cuda/fix_cmakelists.patch new file mode 100644 index 00000000000..33f10f0a8b4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/tsne_cuda/fix_cmakelists.patch @@ -0,0 +1,86 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 128d72a..9d70cd7 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -58,6 +58,7 @@ if(NOT DEFINED CMAKE_CUDA_STANDARD) + set(CMAKE_CUDA_STANDARD_REQUIRED ON) + endif() + ++if(NOT DEFINED CUDA_ARCH) + if(CUDAToolkit_VERSION_MAJOR EQUAL "10") + set(CUDA_ARCH + -gencode=arch=compute_30,code=sm_30 +@@ -106,7 +107,7 @@ else() + -gencode=arch=compute_61,code=sm_61 + ) + endif() +- ++endif() + + set(CUDA_OPTS + -O3 +@@ -157,6 +158,10 @@ if(NOT ${GPU_FAISS_FOUND}) + endif() + include_directories(${FAISS_INCLUDE_DIR}) + ++#------------------------------------------------------------------------------- ++# cxxopts configuration ++find_package(cxxopts CONFIG REQUIRED) ++ + # Project Setup + #------------------------------------------------------------------------------- + include_directories( +@@ -164,7 +169,6 @@ include_directories( + src/include + ${CUDA_INCLUDE_DIRS} + third_party/ +- third_party/cxxopts/include/ + ${ZMQ_INCLUDE_DIR} + ) + link_directories( +@@ -212,7 +216,7 @@ add_library(tsnecuda SHARED ${SOURCES}) + # set_property(TARGET tsnecuda PROPERTY POSITION_INDEPENDENT_CODE TRUE) + target_link_libraries(tsnecuda PRIVATE + gflags +- gtest ++ GTest::gtest + CUDA::cudart + CUDA::cublas + # CUDA::cublasLt +@@ -220,12 +224,14 @@ target_link_libraries(tsnecuda PRIVATE + CUDA::cufftw + CUDA::cusparse + OpenMP::OpenMP_CXX ++ cxxopts::cxxopts + pthread +- -Wl,--allow-multiple-definition + ${ZMQ_LIBRARIES} + ${FAISS_LIBRARIES} + ) + ++target_link_options(tsnecuda PRIVATE -Wl,--allow-multiple-definition) ++ + # BLAS configuration + #------------------------------------------------------------------------------- + find_package(MKL) +@@ -244,8 +250,19 @@ endif() + # Main executable + #------------------------------------------------------------------------------- + add_executable(tsne src/exe/main.cu) +-target_link_libraries(tsne tsnecuda) ++target_link_libraries(tsne PRIVATE ++ cxxopts::cxxopts ++ tsnecuda ++) + ++#------------------------------------------------------------------------------- ++# Install target ++#------------------------------------------------------------------------------- ++install(TARGETS tsne tsnecuda ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib/static ++) + #------------------------------------------------------------------------------- + # Python library copy and build + #------------------------------------------------------------------------------- diff --git a/repos/spack_repo/builtin/packages/tsne_cuda/package.py b/repos/spack_repo/builtin/packages/tsne_cuda/package.py new file mode 100644 index 00000000000..23e3c205275 --- /dev/null +++ b/repos/spack_repo/builtin/packages/tsne_cuda/package.py @@ -0,0 +1,65 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.python import PythonExtension + +from spack.package import * + + +class TsneCuda(CMakePackage, CudaPackage, PythonExtension): + """tsne-cuda is an optimized CUDA version of FIt-SNE algorithm with + associated python modules. Authors find that their implementation of t-SNE + can be up to 1200x faster than Sklearn, or up to 50x faster than + Multicore-TSNE when used with the right GPU.""" + + homepage = "https://github.com/CannyLab/tsne-cuda/" + url = "https://github.com/CannyLab/tsne-cuda/archive/refs/tags/3.0.1.tar.gz" + + maintainers("Markus92") + + license("BSD-3-Clause", checked_by="Markus92") + + version("3.0.1", sha256="0f778247191f483df22dc4dbed792c9a6a9152ee7404329c4d9da3fd9a8774d6") + version("3.0.0", sha256="6f5a0c5c0c54a4a74837e0e84fa37396ca6912a2031bdf6e846d5c01254e3e2c") + + patch("fix_cmakelists.patch") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("cmake@3.20:3.30", type="build") # CMake 3.31 messes a bit too much with find CUDA + + depends_on("cuda@9:") + depends_on("blas") + depends_on("lapack") + depends_on("gflags@2.2:") + depends_on("googletest@1.10:", type=("build", "link", "run")) + depends_on("faiss@1.6.5: +cuda +shared", type=("build", "link", "run")) + depends_on("cxxopts") + + variant("cuda", default=True, description="Use CUDA acceleration") + conflicts("~cuda", msg="CUDA is a hard requirement") + conflicts( + "cuda_arch=none", + when="+cuda", + msg="Must specify CUDA compute capabilities of your GPU, see " + "https://developer.nvidia.com/cuda-gpus", + ) + + variant("python", default=False, description="Install Python bindings.") + + extends("python", when="+python") + depends_on("python@3.6:", when="+python") + depends_on("py-numpy@1.14.1:", when="+python") + + def cmake_args(self): + cuda_arch = self.spec.variants["cuda_arch"].value + cuda_gencode = " ".join(self.cuda_flags(cuda_arch)) + + args = [] + args.append(self.define("FAISS_GPU_INCLUDE_DIR", self.spec["faiss"].libs)) + args.append(self.define_from_variant("BUILD_PYTHON", "python")) + args.append(self.define("CUDA_ARCH", cuda_gencode)) + return args diff --git a/repos/spack_repo/builtin/packages/turbine/package.py b/repos/spack_repo/builtin/packages/turbine/package.py index c5b2755659e..c601d7b86ec 100644 --- a/repos/spack_repo/builtin/packages/turbine/package.py +++ b/repos/spack_repo/builtin/packages/turbine/package.py @@ -30,6 +30,7 @@ class Turbine(AutotoolsPackage): depends_on("adlbx@master", when="@master") depends_on("adlbx@:0.9.2", when="@1.2.3:1.2.99") depends_on("tcl", type=("build", "run")) + depends_on("tcl@:8.6", when="@:1.3.0", type=("build", "run")) depends_on("zsh", type=("build", "run")) depends_on("swig", type="build") depends_on("python", when="+python") @@ -78,11 +79,7 @@ def configure_args(self): if "+r" in self.spec: r_location = "{0}/rlib/R".format(self.spec["r"].prefix) if not os.path.exists(r_location): - rscript = which("Rscript") - if rscript is not None: - r_location = rscript("-e", "cat(R.home())", output=str) - else: - msg = "Could not locate Rscript on your PATH!" - raise RuntimeError(msg) + rscript = which("Rscript", required=True) + r_location = rscript("-e", "cat(R.home())", output=str) args.append("--with-r={0}".format(r_location)) return args diff --git a/repos/spack_repo/builtin/packages/turbomole/package.py b/repos/spack_repo/builtin/packages/turbomole/package.py index 2cca6ba57e1..3592c90e5a6 100644 --- a/repos/spack_repo/builtin/packages/turbomole/package.py +++ b/repos/spack_repo/builtin/packages/turbomole/package.py @@ -44,7 +44,7 @@ class Turbomole(Package): def do_fetch(self, mirror_only=True): if "+mpi" in self.spec and "+smp" in self.spec: - raise InstallError("Can not have both SMP and MPI enabled in the " "same build.") + raise InstallError("Can not have both SMP and MPI enabled in the same build.") super().do_fetch(mirror_only) def get_tm_arch(self): @@ -61,7 +61,7 @@ def install(self, spec, prefix): tm_arch = self.get_tm_arch() - tar = which("tar") + tar = which("tar", required=True) dst = join_path(prefix, "TURBOMOLE") tar("-x", "-z", "-f", "thermocalc.tar.gz") diff --git a/repos/spack_repo/builtin/packages/turbovnc/package.py b/repos/spack_repo/builtin/packages/turbovnc/package.py new file mode 100644 index 00000000000..930c9973ba5 --- /dev/null +++ b/repos/spack_repo/builtin/packages/turbovnc/package.py @@ -0,0 +1,80 @@ +# Copyright 2013-2018 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 import * +from spack.package import * + + +class Turbovnc(CMakePackage): + """TurboVNC is a derivative of VNC (Virtual Network Computing) + that is tuned to provide peak performance for 3D and video workloads. + TurboVNC was originally a fork of TightVNC 1.3.x, on the surface, + the X server and Windows viewer still behave similarly to their parents.""" + + homepage = "http://www.turbovnc.org/" + url = "https://github.com/TurboVNC/turbovnc/releases/download/3.2/turbovnc-3.2.tar.gz" + + version("3.2", sha256="a4fd895ebb8a40a5962db8c38e3de61e4d22c77d64d2ea0afe8fd78c7a8aff72") + + variant("server", default=True, description="Enable server build") + variant("x11deps", default=True, description="Depends x11 depends") + + depends_on("libx11", when="+x11deps") + depends_on("libjpeg-turbo@1.5.1:", when="@2.1:") + depends_on("openssl") + + depends_on("java@17") + depends_on("libxext", when="+x11deps") + depends_on("libxdmcp", when="+x11deps") + depends_on("libxau", when="+x11deps") + depends_on("libxdamage", when="+x11deps") + depends_on("libxcursor", when="+x11deps") + depends_on("libxxf86vm", when="+x11deps") + depends_on("libxxf86misc", when="+x11deps") + depends_on("xf86vidmodeproto", when="+x11deps") + depends_on("libxi", when="+x11deps") + + depends_on("xkeyboard-config", when="+x11deps", type=("build", "run")) + depends_on("font-util fonts=font-adobe-75dpi", when="+x11deps", type="run") + depends_on("xkbcomp", when="+x11deps", type=("build", "run")) + depends_on("xauth", when="+x11deps", type=("build", "run")) + + with when("+server"): + depends_on("libxfont2") + depends_on("pixman") + depends_on("libdrm") + depends_on("libxkbfile") + depends_on("mesa+egl") + depends_on("kbproto") + depends_on("xorgproto") + depends_on("virtualgl") + + def cmake_args(self): + + options = [] + options.append("-DTVNC_BUILDJAVA:BOOL=OFF") + options.append("-DTVNC_BUILDNATIVE:BOOL=ON") + options.append("-DTVNC_BUILDSERVER:BOOL=ON") + options.append("-DTVNC_DRI3=OFF") + if "+server" in self.spec: + options.append("-DTVNC_BUILDSERVER:BOOL=ON") + if "~x11deps" in self.spec: + options.append("-DTVNC_NVCONTROL:BOOL=ON") + else: + options.append("-DTVNC_BUILDSERVER:BOOL=OFF") + if "+x11deps" in self.spec: + options.append( + "-DXKB_BASE_DIRECTORY:PATH=" + + self.spec["xkeyboard-config"].prefix + + "/share/X11/xkb" + ) + options.append("-DXKB_BIN_DIRECTORY:PATH=" + self.spec["xkbcomp"].prefix + "/bin") + + options.append( + "-DTJPEG_LIBRARY=" + self.spec["libjpeg-turbo"].prefix + "/lib/libturbojpeg.a" + ) + return options diff --git a/repos/spack_repo/builtin/packages/typos/package.py b/repos/spack_repo/builtin/packages/typos/package.py index 7f74689ae02..f7a5f9e3575 100644 --- a/repos/spack_repo/builtin/packages/typos/package.py +++ b/repos/spack_repo/builtin/packages/typos/package.py @@ -17,10 +17,15 @@ class Typos(CargoPackage): license("Apache-2.0 OR MIT", checked_by="alecbcs") + version("1.40.0", sha256="f8317b77e124f0201a47289a1d3e7a196e93cdbec3df9a0fc82d10c934c0ca85") + version("1.38.1", sha256="f7e83dfecba57d778c916bd3d554129fd6d79e0fa781f605e83c7dd89e30711d") + version("1.36.2", sha256="23229bf78a136bce3c456019d71e25b57858275c8fd947426b8a5b32d639abe3") + version("1.35.1", sha256="41e981cc763393b1374d2891f64c0ec62eb9b99320f4af6e1e3f4aa85fe1db36") version("1.32.0", sha256="11c1ac4f9427cd572ce728c20814ebd8b8769ed909b7d1309d805d9a37b81084") version("1.30.2", sha256="20a5c2354894215fb87126f1805a171808fec93c427720f873a025466114e44c") version("1.28.4", sha256="acfbaf16d61fb35532ddb91a32e720181450487f60fe60757f72c3879496955d") + depends_on("rust@1.87:", type="build", when="@1.39.1:") depends_on("rust@1.80:", type="build") build_directory = "crates/typos-cli" diff --git a/repos/spack_repo/builtin/packages/ucc/package.py b/repos/spack_repo/builtin/packages/ucc/package.py index 178743f0023..95defa1ccb9 100644 --- a/repos/spack_repo/builtin/packages/ucc/package.py +++ b/repos/spack_repo/builtin/packages/ucc/package.py @@ -18,6 +18,10 @@ class Ucc(AutotoolsPackage, CudaPackage, ROCmPackage): maintainers("zzzoom") + version("1.7.0", sha256="b40df0db75b8505844547574a3a7dad16c9033d7e1ca099ea8508bc57a62b454") + version("1.6.0", sha256="c77897cdaec2114234504fd9259d5143a6933a8ee51aad52fbc4ad1c9752114d") + version("1.5.1", sha256="7921424e4b6b756133497ab6fdfb8d038eea33f337d4c2dbce13f59e04d16e5b") + version("1.5.0", sha256="7ab61a3215616ee9a7a6f51e61cfaac9e7055a12b233aef8d4a7218d2cb3860f") version("1.4.4", sha256="e098e427c7b72b5434ae1e0da2258ab3bc271142c136b0bf4cf40ef9948b70d0") version("1.3.0", sha256="b56379abe5f1c125bfa83be305d78d81a64aa271b7b5fff0ac17b86725ff3acf") version("1.2.0", sha256="c1552797600835c0cf401b82dc89c4d27d5717f4fb805d41daca8e19f65e509d") diff --git a/repos/spack_repo/builtin/packages/ucx/package.py b/repos/spack_repo/builtin/packages/ucx/package.py index 0f40d1fb933..d3ad8314400 100644 --- a/repos/spack_repo/builtin/packages/ucx/package.py +++ b/repos/spack_repo/builtin/packages/ucx/package.py @@ -21,10 +21,15 @@ class Ucx(AutotoolsPackage, CudaPackage): license("BSD-3-Clause") + version("master", branch="master", submodules=True) + # Current - version("1.18.1", sha256="8018dd75f11b5e8d6e57dcdb5b798d2c1f000982c353efde1f3170025c6c3b4c") + version("1.20.0", sha256="7c8a6093cada179aa1d851b83625e3b25ed5658966e309de5118c27a038c7ef9") # Still supported + version("1.19.1", sha256="dea5d821fce05b6ffe175a74e6e148386dd85791409fc71242f3d1369100fd8a") + version("1.19.0", sha256="9af07d55281059542f20c5b411db668643543174e51ac71f53f7ac839164f285") + version("1.18.1", sha256="8018dd75f11b5e8d6e57dcdb5b798d2c1f000982c353efde1f3170025c6c3b4c") version("1.18.0", sha256="fa75070f5fa7442731b4ef5fc9549391e147ed3d859afeb1dad2d4513b39dc33") version("1.17.0", sha256="34658e282f99f89ce7a991c542e9727552734ac6ad408c52f22b4c2653b04276") version("1.16.0", sha256="f73770d3b583c91aba5fb07557e655ead0786e057018bfe42f0ebe8716e9d28c") @@ -175,6 +180,10 @@ def patch(self): if self.spec.satisfies("@:1.15 ^hip@6:"): filter_file("HIP_PLATFORM_HCC", "HIP_PLATFORM_AMD", "configure", string=True) + @when("@master") + def autoreconf(self, spec, prefix): + Executable("./autogen.sh")() + @when("@1.9-dev") def autoreconf(self, spec, prefix): Executable("./autogen.sh")() diff --git a/repos/spack_repo/builtin/packages/udunits/package.py b/repos/spack_repo/builtin/packages/udunits/package.py index 7861d56a3b0..9bcd5e85d35 100644 --- a/repos/spack_repo/builtin/packages/udunits/package.py +++ b/repos/spack_repo/builtin/packages/udunits/package.py @@ -11,7 +11,7 @@ class Udunits(AutotoolsPackage): """Automated units conversion""" homepage = "https://www.unidata.ucar.edu/software/udunits" - url = "https://artifacts.unidata.ucar.edu/repository/downloads-udunits/2.2.28/udunits-2.2.28.tar.gz" + url = "https://downloads.unidata.ucar.edu/udunits/2.2.28/udunits-2.2.28.tar.gz" maintainers("AlexanderRichert-NOAA") @@ -21,21 +21,6 @@ class Udunits(AutotoolsPackage): # Older 2.2 versions have been deprecated accordingly but are still # available in the build cache. version("2.2.28", sha256="590baec83161a3fd62c00efa66f6113cec8a7c461e3f61a5182167e0cc5d579e") - version( - "2.2.24", - sha256="20bac512f2656f056385429a0e44902fdf02fc7fe01c14d56f3c724336177f95", - deprecated=True, - ) - version( - "2.2.23", - sha256="b745ae10753fe82cdc7cc834e6ce471ca7c25ba2662e6ff93be147cb3d4fd380", - deprecated=True, - ) - version( - "2.2.21", - sha256="a154d1f8428c24e92723f9e50bdb5cc00827e3f5ff9cba64d33e5409f5c03455", - deprecated=True, - ) variant("shared", default=True, description="Build shared library") variant( @@ -57,3 +42,7 @@ def configure_args(self): config_args.extend(self.enable_or_disable("shared")) config_args.extend(self.with_or_without("pic")) return config_args + + def setup_run_environment(self, env: EnvironmentModifications) -> None: + # We need to set UDUNITS2_XML_PATH so that udunits can find its default units file. + env.set("UDUNITS2_XML_PATH", join_path(self.prefix.share.udunits, "udunits2.xml")) diff --git a/repos/spack_repo/builtin/packages/ufs_weather_model/package.py b/repos/spack_repo/builtin/packages/ufs_weather_model/package.py index 5966bcdb2ac..37f5420f4d6 100644 --- a/repos/spack_repo/builtin/packages/ufs_weather_model/package.py +++ b/repos/spack_repo/builtin/packages/ufs_weather_model/package.py @@ -21,18 +21,6 @@ class UfsWeatherModel(CMakePackage): maintainers("AlexanderRichert-NOAA") version("develop", branch="develop", submodules=True) - version( - "2.0.0", - tag="ufs-v2.0.0", - commit="e3cb92f1cd8941c019ee5ef7da5c9aef67d55cf8", - submodules=True, - ) - version( - "1.1.0", - tag="ufs-v1.1.0", - commit="5bea16b6d41d810dc2e45cba0fa3841f45ea7c7a", - submodules=True, - ) variant("mpi", default=True, description="Enable MPI") variant( @@ -109,8 +97,9 @@ class UfsWeatherModel(CMakePackage): variant("app", default="ATM", description="UFS application", when="@develop") - depends_on("c", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type="build") + depends_on("fortran", type="build") + depends_on("cxx", type="build") depends_on("bacio") depends_on("mpi", when="+mpi") @@ -118,10 +107,9 @@ class UfsWeatherModel(CMakePackage): depends_on("netcdf-fortran") depends_on("sp") depends_on("w3emc") - depends_on("esmf@:8.0.0", when="@:2.0.0") depends_on("nemsio", when="@:2.0.0") depends_on("w3nco", when="@:2.0.0") - depends_on("bacio@2.4.0:", when="@develop") + depends_on("bacio@2.4.0:2.4.1", when="@develop") depends_on("crtm", when="@develop") depends_on("esmf@8.3.0:", when="@develop") depends_on("fms@2022.04: +deprecated_io precision=32,64 constants=GFS", when="@develop") @@ -144,7 +132,7 @@ class UfsWeatherModel(CMakePackage): "HAFS-ALL", "LND", ]: - depends_on("parallelio@2.5.3: +fortran~pnetcdf~shared", when="@develop app=%s" % app) + depends_on("parallelio@2.5.3: +fortran~pnetcdf", when="@develop app=%s" % app) depends_on("python@3.6:", type="build", when="@develop") depends_on("sp@2.3.3:", when="@develop") depends_on("w3emc@2.9.2:", when="@develop") @@ -176,14 +164,14 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("CCPP_SUITES", ",".join([x for x in spec.variants["ccpp_suites"].value if x])) - if spec.platform == "linux" and spec.satisfies("%intel"): + if spec.platform == "linux" and (spec.satisfies("%intel") or spec.satisfies("%oneapi")): env.set("CMAKE_Platform", "linux.intel") elif spec.platform == "linux" and spec.satisfies("%gcc"): env.set("CMAKE_Platform", "linux.gnu") elif spec.platform == "darwin" and spec.satisfies("%gcc"): env.set("CMAKE_Platform", "macosx.gnu") else: - msg = "The host system {0} and compiler {0} " + msg = "The host system {0} and compiler {1} " msg += "are not supported by UFS." raise InstallError(msg.format(spec.platform, self.compiler.name)) @@ -216,6 +204,8 @@ def cmake_args(self): args.append(self.define_from_variant("CCPP", "ccpp")) args.append(self.define_from_variant("QUAD_PRECISION", "quad_precision")) + args.append(self.define("CMAKE_MODULE_PATH", self.spec["esmf"].prefix.cmake)) + return args # This patch can be removed once https://github.com/NOAA-EMC/WW3/issues/1021 diff --git a/repos/spack_repo/builtin/packages/uftrace/package.py b/repos/spack_repo/builtin/packages/uftrace/package.py index da0fb6451c9..b45b275b281 100644 --- a/repos/spack_repo/builtin/packages/uftrace/package.py +++ b/repos/spack_repo/builtin/packages/uftrace/package.py @@ -57,7 +57,7 @@ def installcheck(self): def test_uftrace(self): """Perform stand-alone/smoke tests using the installed package.""" - uftrace = which(self.prefix.bin.uftrace) + uftrace = which(self.prefix.bin.uftrace, required=True) options = (["-A", ".", "-R", ".", "-P", "main", uftrace, "-V"],) expected = [ r"dwarf", diff --git a/repos/spack_repo/builtin/packages/umoci/package.py b/repos/spack_repo/builtin/packages/umoci/package.py index 3d39cd043b7..4573b720420 100644 --- a/repos/spack_repo/builtin/packages/umoci/package.py +++ b/repos/spack_repo/builtin/packages/umoci/package.py @@ -34,7 +34,7 @@ def build(self, spec, prefix): mkdirp(join_path(self.stage.source_path, "src", provider, project)) - ln = which("ln") + ln = which("ln", required=True) ln("-s", self.stage.source_path, join_path("src", provider, project, repo)) make("GOPATH={0}".format(self.stage.source_path)) diff --git a/repos/spack_repo/builtin/packages/umpire/package.py b/repos/spack_repo/builtin/packages/umpire/package.py index 2feaf32dce2..db30c15eb8e 100644 --- a/repos/spack_repo/builtin/packages/umpire/package.py +++ b/repos/spack_repo/builtin/packages/umpire/package.py @@ -3,6 +3,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os +import re import socket from spack_repo.builtin.build_systems.cached_cmake import ( @@ -31,6 +32,24 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): license("MIT") version("develop", branch="develop", submodules=False) + version( + "2025.12.0", + tag="v2025.12.0", + commit="0372fbd6e1f17d7e6dd72693f8b857f3ec7559e9", + submodules=False, + ) + version( + "2025.09.0", + tag="v2025.09.0", + commit="6b0ea9edbbbc741c8a429768d946549cd3bd7d33", + submodules=False, + ) + version( + "2025.03.1", + tag="v2025.03.1", + commit="df47e275d538ce2337fcdd2c09875616715101db", + submodules=False, + ) version( "2025.03.0", tag="v2025.03.0", @@ -164,7 +183,7 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): # Some projects importing both camp and umpire targets end up with conflicts in BLT targets # import. This is not addressing the root cause, which will be addressed in BLT@5.4.0 and will # require adapting umpire build system. - patch("dual_blt_import_umpire_2022.10_2023.06.patch", when="@2022.10.0:2023.06.0") + patch("dual_blt_import_umpire_2022.10_2023.06.patch", when="@2023.06.0") patch("export_includes.patch", when="@2022.10.0") patch("std-filesystem-pr784.patch", when="@2022.03.1 +rocm ^blt@0.5.2:") patch("camp_target_umpire_3.0.0.patch", when="@3.0.0") @@ -231,9 +250,9 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): variant("sanitizer_tests", default=False, description="Enable address sanitizer tests") variant("fmt_header_only", default=True, description="Link to header-only fmt target") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build", when="+fortran") depends_on("cmake@3.23:", when="@2024.07.0:", type="build") depends_on("cmake@3.23:", when="@2022.10.0: +rocm", type="build") @@ -244,6 +263,7 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("cmake@3.8:", type="build") depends_on("blt", type="build") + depends_on("blt@0.7.1:", type="build", when="@2025.09.0:") depends_on("blt@0.7.0:", type="build", when="@2025.03.0:") depends_on("blt@0.6.2:", type="build", when="@2024.02.1:") depends_on("blt@0.6.1", type="build", when="@2024.02.0") @@ -259,8 +279,10 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("camp+openmp", when="+openmp") depends_on("camp~cuda", when="~cuda") depends_on("camp~rocm", when="~rocm") - depends_on("camp@main", when="@develop") - depends_on("camp@2024.07.0:", when="@2024.07.0:") + depends_on("camp@2025.12:", when="@2025.12:") + depends_on("camp@2025.09", when="@2025.09") + depends_on("camp@2025.03", when="@2025.03") + depends_on("camp@2024.07", when="@2024.07") depends_on("camp@2024.02.1", when="@2024.02.1") depends_on("camp@2024.02.0", when="@2024.02.0") depends_on("camp@2023.06.0", when="@2023.06.0") @@ -272,8 +294,9 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("sqlite", when="+sqlite_experimental") depends_on("mpi", when="+mpi") - depends_on("fmt@9.1:11.0", when="@2024.02.0:") - # For some reason, we need c++ 17 explicitly only with intel + depends_on("fmt@12.1.0", when="@2026:") + depends_on("fmt@9.1:11.0", when="@2024.02.0:2025") + # We need c++ 17 only with intel depends_on("fmt@9.1:11.0 cxxstd=17", when="@2024.02.0: %intel@19.1") with when("@5.0.0:"): @@ -302,21 +325,23 @@ 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" ) conflicts("+ipc_shmem", when="@:5.0.1") conflicts("+mpi3_shmem", when="@:2024.07.0") conflicts("+mpi3_shmem", when="~mpi") - conflicts("+ipc_shmem", when="+mpi3_shmem") + conflicts("+ipc_shmem", when="+mpi3_shmem @:2025.03.0") conflicts("+sqlite_experimental", when="@:6.0.0") conflicts("+sanitizer_tests", when="~asan") # device allocator exports device code, which requires static libs # currently only available for cuda. - conflicts("+shared", when="+cuda") + conflicts("+shared", when="+cuda +device_alloc") + + # https://github.com/LLNL/Umpire/pull/992 + conflicts("^cuda@13:", when="@:2025.09.0 +cuda") def _get_sys_type(self, spec): sys_type = spec.architecture @@ -348,7 +373,7 @@ def initconfig_compiler_entries(self): option_prefix = "UMPIRE_" if spec.satisfies("@2022.03.0:") else "" - if spec.satisfies("+fortran") and compiler.fc is not None: + if spec.satisfies("+fortran"): entries.append(cmake_cache_option("ENABLE_FORTRAN", True)) else: entries.append(cmake_cache_option("ENABLE_FORTRAN", False)) @@ -375,11 +400,51 @@ def initconfig_hardware_entries(self): entries.append(cmake_cache_option("ENABLE_CUDA", True)) # Umpire used to pick only the first architecture in the list. The shared logic in # CachedCMakePackage keeps the list of architectures. + + # CUDA configuration from cuda_for_radiuss_projects + cuda_flags = [] + if not spec.satisfies("cuda_arch=none"): + cuda_archs = ";".join(spec.variants["cuda_arch"].value) + entries.append(cmake_cache_string("CMAKE_CUDA_ARCHITECTURES", cuda_archs)) + + gcc_toolchain_regex = re.compile(".*gcc-toolchain.*") + using_toolchain = list( + filter(gcc_toolchain_regex.match, spec.compiler_flags["cxxflags"]) + ) + if using_toolchain: + cuda_flags.append("-Xcompiler {}".format(using_toolchain[0])) + + entries.append(cmake_cache_string("CMAKE_CUDA_FLAGS", " ".join(cuda_flags))) else: entries.append(cmake_cache_option("ENABLE_CUDA", False)) if spec.satisfies("+rocm"): entries.append(cmake_cache_option("ENABLE_HIP", True)) + + # HIP configuration from hip_for_radiuss_projects + rocm_root = spec["llvm-amdgpu"].prefix + hip_link_flags = "" + gcc_toolchain_regex = re.compile(".*gcc-toolchain.*") + using_toolchain = list( + filter(gcc_toolchain_regex.match, spec.compiler_flags["cxxflags"]) + ) + if using_toolchain: + gcc_prefix = using_toolchain[0] + entries.append( + cmake_cache_string("HIP_CLANG_FLAGS", "--gcc-toolchain={0}".format(gcc_prefix)) + ) + entries.append( + cmake_cache_string( + "CMAKE_EXE_LINKER_FLAGS", + hip_link_flags + " -Wl,-rpath={0}/lib64".format(gcc_prefix), + ) + ) + else: + entries.append( + cmake_cache_string( + "CMAKE_EXE_LINKER_FLAGS", "-Wl,-rpath={0}/llvm/lib/".format(rocm_root) + ) + ) else: entries.append(cmake_cache_option("ENABLE_HIP", False)) @@ -402,8 +467,8 @@ def initconfig_hardware_entries(self): def initconfig_mpi_entries(self): spec = self.spec - entries = super().initconfig_mpi_entries() + entries.append(cmake_cache_option("ENABLE_MPI", spec.satisfies("+mpi"))) entries.append( cmake_cache_option("UMPIRE_ENABLE_MPI3_SHARED_MEMORY", spec.satisfies("+mpi3_shmem")) diff --git a/repos/spack_repo/builtin/packages/unibilium/package.py b/repos/spack_repo/builtin/packages/unibilium/package.py index 8516e20299e..92f22217d3b 100644 --- a/repos/spack_repo/builtin/packages/unibilium/package.py +++ b/repos/spack_repo/builtin/packages/unibilium/package.py @@ -3,12 +3,12 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack_repo.builtin.build_systems.autotools import AutotoolsPackage -from spack_repo.builtin.build_systems.makefile import MakefilePackage +from spack_repo.builtin.build_systems.cmake import CMakePackage from spack.package import * -class Unibilium(MakefilePackage, AutotoolsPackage): +class Unibilium(CMakePackage, AutotoolsPackage): """A terminfo parsing library""" homepage = "https://github.com/neovim/unibilium/" @@ -27,7 +27,8 @@ class Unibilium(MakefilePackage, AutotoolsPackage): build_system( conditional("makefile", when="@:2.1.1"), conditional("autotools", when="@2.1.2:"), - default="autotools", + conditional("cmake", when="@2.1.2:"), + default="cmake", ) depends_on("gmake", type="build") @@ -38,7 +39,3 @@ class Unibilium(MakefilePackage, AutotoolsPackage): with when("build_system=autotools"): depends_on("autoconf", when="@2.1.2:", type="build") depends_on("automake", when="@2.1.2:", type="build") - - def install(self, spec, prefix): - make("PREFIX=" + prefix) - make("install", "PREFIX=" + prefix) diff --git a/repos/spack_repo/builtin/packages/unison/4.08-compatibility.patch b/repos/spack_repo/builtin/packages/unison/4.08-compatibility.patch deleted file mode 100644 index a6921b516f0..00000000000 --- a/repos/spack_repo/builtin/packages/unison/4.08-compatibility.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 29fa058c3127f3b47c347dcaa4a94f4c0e888308 Mon Sep 17 00:00:00 2001 -From: Jaap Boender -Date: Thu, 21 Mar 2019 12:26:51 +0000 -Subject: [PATCH] Compatibility with OCaml 4.08 - ---- - src/files.ml | 2 +- - src/recon.ml | 4 ++-- - src/system/system_generic.ml | 2 +- - 3 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/files.ml b/src/files.ml -index ba42ad57..5babf21e 100644 ---- a/src/files.ml -+++ b/src/files.ml -@@ -722,7 +722,7 @@ let get_files_in_directory dir = - with End_of_file -> - dirh.System.closedir () - end; -- Sort.list (<) !files -+ List.sort String.compare !files - - let ls dir pattern = - Util.convertUnixErrorsToTransient -diff --git a/src/recon.ml b/src/recon.ml -index 5ed358d7..0df2cfe4 100644 ---- a/src/recon.ml -+++ b/src/recon.ml -@@ -651,8 +651,8 @@ let rec reconcile - - (* Sorts the paths so that they will be displayed in order *) - let sortPaths pathUpdatesList = -- Sort.list -- (fun (p1, _) (p2, _) -> Path.compare p1 p2 <= 0) -+ List.sort -+ Path.compare - pathUpdatesList - - let rec enterPath p1 p2 t = -diff --git a/src/system/system_generic.ml b/src/system/system_generic.ml -index ed8e18f3..0e28a781 100755 ---- a/src/system/system_generic.ml -+++ b/src/system/system_generic.ml -@@ -47,7 +47,7 @@ let open_out_gen = open_out_gen - let chmod = Unix.chmod - let chown = Unix.chown - let utimes = Unix.utimes --let link = Unix.link -+let link s d = Unix.link s d - let openfile = Unix.openfile - let opendir f = - let h = Unix.opendir f in diff --git a/repos/spack_repo/builtin/packages/unison/large.patch b/repos/spack_repo/builtin/packages/unison/large.patch deleted file mode 100644 index 6dcef5265b9..00000000000 --- a/repos/spack_repo/builtin/packages/unison/large.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff -Nrua /usr/ports/net/unison/patches/patch-bytearray_stubs_c ./patches/patch-bytearray_stubs_c ---- /usr/ports/net/unison/patches/patch-bytearray_stubs_c Thu Jan 1 01:00:00 1970 -+++ ./patches/patch-bytearray_stubs_c Tue Jan 17 08:44:39 2017 -@@ -0,0 +1,45 @@ -+Fix rare SIGSEGV when transferring large replicas. -+Fix a theoretical integer overflow. -+ -+Patches from here: -+https://caml.inria.fr/mantis/view.php?id=7431#c17026 -+and here: -+https://caml.inria.fr/mantis/view.php?id=7431#c16962 -+ -+Related issue reports: -+https://github.com/bcpierce00/unison/issues/48 -+https://caml.inria.fr/mantis/view.php?id=7431 -+https://bugzilla.redhat.com/show_bug.cgi?id=1401759 -+ -+Thanks to Alex Markley and OCaml developers -+--- bytearray_stubs.c.orig Tue Jan 17 08:41:00 2017 -++++ bytearray_stubs.c Tue Jan 17 08:41:21 2017 -+@@ -5,6 +5,7 @@ -+ -+ #include "caml/intext.h" -+ #include "caml/bigarray.h" -++#include "caml/memory.h" -+ -+ CAMLprim value ml_marshal_to_bigarray(value v, value flags) -+ { -+@@ -21,15 +22,18 @@ CAMLprim value ml_marshal_to_bigarray(value v, value f -+ -+ CAMLprim value ml_unmarshal_from_bigarray(value b, value ofs) -+ { -++ CAMLparam1(b); /* Holds [b] live until unmarshalling completes. */ -++ value result; -+ struct caml_bigarray *b_arr = Bigarray_val(b); -+- return input_value_from_block (Array_data (b_arr, ofs), -++ result = input_value_from_block (Array_data (b_arr, ofs), -+ b_arr->dim[0] - Long_val(ofs)); -++ CAMLreturn(result); -+ } -+ -+ CAMLprim value ml_blit_string_to_bigarray -+ (value s, value i, value a, value j, value l) -+ { -+- char *src = String_val(s) + Int_val(i); -++ char *src = String_val(s) + Long_val(i); -+ char *dest = Array_data(Bigarray_val(a), j); -+ memcpy(dest, src, Long_val(l)); -+ return Val_unit; diff --git a/repos/spack_repo/builtin/packages/unison/package.py b/repos/spack_repo/builtin/packages/unison/package.py index 138e9895a83..3e9aa70a323 100644 --- a/repos/spack_repo/builtin/packages/unison/package.py +++ b/repos/spack_repo/builtin/packages/unison/package.py @@ -22,25 +22,11 @@ class Unison(MakefilePackage): license("GPL-3.0-or-later") version("2.53.3", sha256="aaea04fc5bc76dcfe8627683c9659ee4c194d4f992cc8aaa15bbb2820fc8de46") - version( - "2.51.2", - sha256="a2efcbeab651be6df69cc9b253011a07955ecb91fb407a219719451197849d5e", - deprecated=True, - ) - version( - "2.48.15v4", - sha256="f8c7e982634bbe1ed6510fe5b36b6c5c55c06caefddafdd9edc08812305fdeec", - deprecated=True, - ) depends_on("c", type="build") # generated depends_on("ocaml@4.10.0:~force-safe-string", type=("build", "link")) - with when("@:2.51.2"): - patch("large.patch", level=0) - patch("4.08-compatibility.patch", when="^ocaml@4.08:") - parallel = False build_targets = ["UISTYLE=text", "DEBUGGING=false", "THREADS=true"] diff --git a/repos/spack_repo/builtin/packages/units_llnl/package.py b/repos/spack_repo/builtin/packages/units_llnl/package.py new file mode 100644 index 00000000000..709604e3912 --- /dev/null +++ b/repos/spack_repo/builtin/packages/units_llnl/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 UnitsLlnl(CMakePackage): + """A C++ library for handling physical units and conversions between them.""" + + homepage = "https://github.com/LLNL/units" + git = "https://github.com/LLNL/units.git" + + maintainers("phlptp") + + license("BSD-3-Clause", checked_by="cmelone") + + version("main", branch="main") + + variant("shared", default=False, description="Build shared instead of static library") + variant("header_only", default=False, description="Expose the units library as header-only") + variant("converter", default=True, description="Build a unit converter app") + variant("non_english", default=True, description="Enable non-English unit names") + variant("extra_standards", default=True, description="Enable extra unit standards (X12, R20)") + + depends_on("cmake@3.22:", type="build") + depends_on("c", type="build") + depends_on("cxx", type="build") + + def cmake_args(self): + args = [ + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define_from_variant("UNITS_HEADER_ONLY", "header_only"), + self.define_from_variant("UNITS_BUILD_CONVERTER_APP", "converter"), + self.define( + "UNITS_DISABLE_NON_ENGLISH_UNITS", not self.spec.satisfies("+non_english") + ), + self.define( + "UNITS_DISABLE_EXTRA_UNIT_STANDARDS", not self.spec.satisfies("+extra_standards") + ), + self.define("UNITS_ENABLE_TESTS", self.run_tests), + ] + return args diff --git a/repos/spack_repo/builtin/packages/unittest_cpp/package.py b/repos/spack_repo/builtin/packages/unittest_cpp/package.py index 7c71bddfd3e..c803d092268 100644 --- a/repos/spack_repo/builtin/packages/unittest_cpp/package.py +++ b/repos/spack_repo/builtin/packages/unittest_cpp/package.py @@ -23,4 +23,5 @@ class UnittestCpp(CMakePackage): version("2.0.0", sha256="74852198877dc2fdebdc4e5e9bd074018bf8ee03a13de139bfe41f4585b2f5b9") version("1.6.0", sha256="9fa7e797816e16669d68171418b0dc41ec6b7eaf8483f782441f5f159598c3c0") + depends_on("c", type="build") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/universal_ctags/package.py b/repos/spack_repo/builtin/packages/universal_ctags/package.py index e652d87a35e..45ff2aa33bb 100644 --- a/repos/spack_repo/builtin/packages/universal_ctags/package.py +++ b/repos/spack_repo/builtin/packages/universal_ctags/package.py @@ -42,4 +42,4 @@ class UniversalCtags(AutotoolsPackage): depends_on("pkgconfig", type="build") def autoreconf(self, spec, prefix): - which("bash")("autogen.sh") + which("bash", required=True)("autogen.sh") diff --git a/repos/spack_repo/builtin/packages/unrar/package.py b/repos/spack_repo/builtin/packages/unrar/package.py index 3ebf4a78bf8..01eabe018f0 100644 --- a/repos/spack_repo/builtin/packages/unrar/package.py +++ b/repos/spack_repo/builtin/packages/unrar/package.py @@ -15,11 +15,6 @@ class Unrar(MakefilePackage): url = "https://www.rarlab.com/rar/unrarsrc-5.9.4.tar.gz" version("7.0.9", sha256="505c13f9e4c54c01546f2e29b2fcc2d7fabc856a060b81e5cdfe6012a9198326") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2022-48579 - version("5.9.4", sha256="3d010d14223e0c7a385ed740e8f046edcbe885e5c22c5ad5733d009596865300") - version("5.8.2", sha256="33386623fd3fb153b56292df4a6a69b457e69e1803b6d07b614e5fd22fb33dda") - version("5.8.1", sha256="035f1f436f0dc2aea09aec146b9cc3e47ca2442f2c62b4ad9374c7c9cc20e632") depends_on("cxx", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/unuran/package.py b/repos/spack_repo/builtin/packages/unuran/package.py index 3dc345a3465..e442309ea50 100644 --- a/repos/spack_repo/builtin/packages/unuran/package.py +++ b/repos/spack_repo/builtin/packages/unuran/package.py @@ -12,9 +12,11 @@ class Unuran(AutotoolsPackage): homepage = "https://statmath.wu.ac.at/unuran" url = "https://statmath.wu.ac.at/unuran/unuran-1.8.1.tar.gz" + git = "https://github.com/unuran/unuran.git" license("GPL-2.0-or-later") + version("1.11.0", sha256="098793854c590b4c2c7e98bc48a45408875f48c5ad47650b5fabbd3e94dd8049") version("1.8.1", sha256="c270ae96857857dbac6450043df865e0517f52856ddbe5202fd35583b13c5193") variant("shared", default=True, description="Enable the build of shared libraries") diff --git a/repos/spack_repo/builtin/packages/unzip/package.py b/repos/spack_repo/builtin/packages/unzip/package.py index e359f61d295..89b8c995f45 100644 --- a/repos/spack_repo/builtin/packages/unzip/package.py +++ b/repos/spack_repo/builtin/packages/unzip/package.py @@ -17,14 +17,120 @@ class Unzip(MakefilePackage): version("6.0", sha256="036d96991646d0449ed0aa952e4fbe21b476ce994abc276e49d30e686708bd37") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + depends_on("c", type="build") # See the logs: unzip's build only runs cc. # clang and oneapi need this patch, likely others # There is no problem with it on gcc, so make it a catch all patch("configure-cflags.patch") patch("strip.patch") + # Fixed a buffer overflow + # https://src.fedoraproject.org/rpms/unzip/c/2ee90c9b5cc4e48e4481f40f08153d1a335b701f + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/2ee90c9b5cc4e48e4481f40f08153d1a335b701f/f/unzip-6.0-attribs-overflow.patch", + sha256="74bc961e8013a4058687a3730590a709b7889203beb74a4a8369ba0301bef0e2", + ) + # Solve problem with symlink errors in archive with many files + # https://src.fedoraproject.org/rpms/unzip/c/197087d9bc61cf08b4fc8f7846695c6304ffa195 + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/197087d9bc61cf08b4fc8f7846695c6304ffa195/f/unzip-6.0-symlink.patch", + sha256="fde8f9d6dbc5e9dc59f4497de8e4e313fd74318eaf5f33421acd74442fd10706", + ) + # CVE-2014-9636 + # https://src.fedoraproject.org/rpms/unzip/c/df221ec2aca0a4c225e2c462b3a2dc7cd7a4be29 + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/df221ec2aca0a4c225e2c462b3a2dc7cd7a4be29/f/unzip-6.0-cve-2014-8140.patch", + sha256="64f64985270e026c01d2c19c6b66c218cf5bcfc7cf3d4a44e601fad41975ec73", + ) + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/df221ec2aca0a4c225e2c462b3a2dc7cd7a4be29/f/unzip-6.0-overflow.patch", + sha256="c9a863e570bdaf2637c43bf1bba3d97808a1b0504d85418f6a8550ac286788f2", + ) + # CVE-2014-8139, CVE-2014-8141 + # https://src.fedoraproject.org/rpms/unzip/c/f6883dfa8599e8b93a75c8f85f08879be28a5910 + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/f6883dfa8599e8b93a75c8f85f08879be28a5910/f/unzip-6.0-cve-2014-8139.patch", + sha256="337131428f491b7030f96ee5b8ef3d8f5963730d1619b2754c624f4616d79adb", + ) + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/f6883dfa8599e8b93a75c8f85f08879be28a5910/f/unzip-6.0-cve-2014-8141.patch", + sha256="b7a14c33db93d1e5b4fc6ce113b4b99ff7a81ed56f46c87e001f22ec085e0273", + ) + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/f6883dfa8599e8b93a75c8f85f08879be28a5910/f/unzip-6.0-overflow-long-fsize.patch", + sha256="251d5755ffb1e9701434c545fcda0fbfc2a16372f9d807fd07606b1364a1b55b", + ) + # Fix heap overflow and infinite loop when invalid input is given + # https://src.fedoraproject.org/rpms/unzip/c/36af2c8ca922dc45b55f600ffd9d0b9fcd520fd9 + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/36af2c8ca922dc45b55f600ffd9d0b9fcd520fd9/f/unzip-6.0-heap-overflow-infloop.patch", + sha256="b6f64d7b57e74ceaa794dd13a6937f063ec915343f3d5d88b0f81c919e7bf171", + ) + # CVE-2016-9844 + # https://src.fedoraproject.org/rpms/unzip/c/ee4e72f3fc47f04af21d4860cc2604cf69d37dac + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/ee4e72f3fc47f04af21d4860cc2604cf69d37dac/f/0001-Fix-CVE-2016-9844-rhbz-1404283.patch", + sha256="7d8e5c77ad99f9bf56d4cbf224b5635367feb44f81745dec84b44365f8f5eb16", + ) + # CVE-2018-1000035 + # https://src.fedoraproject.org/rpms/unzip/c/8d5c0ff1a961f1052df9b86884a8b5d4587adaa5 + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/8d5c0ff1a961f1052df9b86884a8b5d4587adaa5/f/unzip-6.0-cve-2018-1000035-heap-based-overflow.patch", + sha256="aced0f27191a67f9b8b3fdc5995938a64fd87cea64a0bbba2106e06137ef91c2", + ) + # CVE-2018-18384 + # https://src.fedoraproject.org/rpms/unzip/c/84dde352234b72fd10f5e288dee67e75199ee0c1 + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/84dde352234b72fd10f5e288dee67e75199ee0c1/f/unzip-6.0-cve-2018-18384.patch", + sha256="47e9deff12845e71de98cd19506a51c21d756a61bb67c0b17e77b84bdbe9fb84", + ) + # Fix possible zipbomb + # https://src.fedoraproject.org/rpms/unzip/c/0cde67cbab320b39c4c9d357e50c956e77b9dbf5 + # https://src.fedoraproject.org/rpms/unzip/c/a2a4f62759e625676e77436c7e5037e6fd0d9e13 + # https://src.fedoraproject.org/rpms/unzip/c/a6d716afe05ebb723d223e397945aaa437f045bc + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/0cde67cbab320b39c4c9d357e50c956e77b9dbf5/f/unzip-zipbomb-part1.patch", + sha256="24582ff3dcd926d1a46caf8506f76999d2525dd66e36f50b25dca50799695f12", + ) + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/0cde67cbab320b39c4c9d357e50c956e77b9dbf5/f/unzip-zipbomb-part2.patch", + sha256="f88b9d4119a1e256f3335a2d2c142dd95d13d7c5f9e5ecd4371e547249f3557c", + ) + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/0cde67cbab320b39c4c9d357e50c956e77b9dbf5/f/unzip-zipbomb-part3.patch", + sha256="ee9e26018190a515572b66a26118916843aa1002131a86b5c52769dc663b7acb", + ) + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/a2a4f62759e625676e77436c7e5037e6fd0d9e13/f/unzip-zipbomb-part4.patch", + sha256="179330daaf395b631025d23ec666c227707caa8859a872cc39d3ea0e2a645e97", + ) + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/a2a4f62759e625676e77436c7e5037e6fd0d9e13/f/unzip-zipbomb-part5.patch", + sha256="44599c80ea507c1fcfb8fb58b4c9d8d18f3157de453c1e0469a703322deb042a", + ) + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/a2a4f62759e625676e77436c7e5037e6fd0d9e13/f/unzip-zipbomb-part6.patch", + sha256="81ca46cfd3cf732de8cf78c57790ed7d5c73a5e8d41943b8f6313cede6004f3e", + ) + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/a6d716afe05ebb723d223e397945aaa437f045bc/f/unzip-zipbomb-switch.patch", + sha256="59c0983b53801d3080684bc616d3570ccacfe471f3a8c442916b87f2f3bfa334", + ) + patch( + "https://src.fedoraproject.org/rpms/unzip/raw/c98fc67064eee9a7437bc3dc5bce3432c3571d5c/f/unzip-zipbomb-manpage.patch", + sha256="4e5a081aa8d0ad9aa5ceeda9eaeefbb6a7e7666d6b7a5b81cb0a61a3ff99a942", + ) + + def flag_handler(self, name, flags): + if name == "cflags": + # https://src.fedoraproject.org/rpms/unzip/blob/d68244a849ae9f4e7f130a3d25156207212c5c36/f/unzip-gnu89-build.patch + # the patch does not work directly because the Makefile calls generic and not + # generic_gcc + if self.spec.satisfies("%gcc@15:"): + flags.append("-std=gnu89") + + return (flags, None, None) + def get_make_args(self): make_args = ["-f", join_path("unix", "Makefile")] diff --git a/repos/spack_repo/builtin/packages/upcxx/package.py b/repos/spack_repo/builtin/packages/upcxx/package.py index 8abc0e86add..80731861977 100644 --- a/repos/spack_repo/builtin/packages/upcxx/package.py +++ b/repos/spack_repo/builtin/packages/upcxx/package.py @@ -52,8 +52,8 @@ class Upcxx(Package, CudaPackage, ROCmPackage): homepage = "https://upcxx.lbl.gov" maintainers("bonachea") - url = "https://bitbucket.org/berkeleylab/upcxx/downloads/upcxx-2021.3.0.tar.gz" - git = "https://bitbucket.org/berkeleylab/upcxx.git" + url = "https://github.com/BerkeleyLab/upcxx/releases/download/upcxx-2025.10.0/upcxx-2025.10.0.tar.gz" + git = "https://github.com/BerkeleyLab/upcxx.git" tags = ["e4s", "ecp"] @@ -62,48 +62,25 @@ class Upcxx(Package, CudaPackage, ROCmPackage): version("develop", branch="develop") version("master", branch="master") + version("2025.10.0", sha256="bb43348d351777b7462e6bbadda358b426cd150e138ac08ee74649b91bba32ec") version("2023.9.0", sha256="6bad2976b4bfc0263b497daa967f448159c3c2259827c8376bc96c9bf9171a83") - version("2023.3.0", sha256="382af3c093decdb51f0533e19efb4cc7536b6617067b2dd89431e323704a1009") - version("2022.9.0", sha256="dbf15fd9ba38bfe2491f556b55640343d6303048a117c4e84877ceddb64e4c7c") - version("2022.3.0", sha256="72bccfc9dfab5c2351ee964232b3754957ecfdbe6b4de640e1b1387d45019496") - version( - "2021.9.0", - deprecated=True, - sha256="9299e17602bcc8c05542cdc339897a9c2dba5b5c3838d6ef2df7a02250f42177", - ) - version( - "2021.3.0", - deprecated=True, - sha256="3433714cd4162ffd8aad9a727c12dbf1c207b7d6664879fc41259a4b351595b7", - ) - version( - "2020.11.0", - deprecated=True, - sha256="f6f212760a485a9f346ca11bb4751e7095bbe748b8e5b2389ff9238e9e321317", - url="https://bitbucket.org/berkeleylab/upcxx/downloads/upcxx-2020.11.0-memory_kinds_prototype.tar.gz", - ) - version( - "2020.10.0", - deprecated=True, - sha256="623e074b512bf8cad770a04040272e1cc660d2749760398b311f9bcc9d381a37", - ) - version( - "2020.3.2", - deprecated=True, - sha256="978adc315d21089c739d5efda764b77fc9a2a7c5860f169fe5cd2ca1d840620f", - ) - version( - "2020.3.0", - deprecated=True, - sha256="01be35bef4c0cfd24e9b3d50c88866521b9cac3ad4cbb5b1fc97aea55078810f", - ) + with default_args(deprecated=True): + version( + "2023.3.0", sha256="382af3c093decdb51f0533e19efb4cc7536b6617067b2dd89431e323704a1009" + ) + version( + "2022.9.0", sha256="dbf15fd9ba38bfe2491f556b55640343d6303048a117c4e84877ceddb64e4c7c" + ) + version( + "2022.3.0", sha256="72bccfc9dfab5c2351ee964232b3754957ecfdbe6b4de640e1b1387d45019496" + ) # Do NOT add older versions here. # UPC++ releases over 2 years old are not supported. depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("gmake", type="build") - patch("fix_configure_ldflags.patch", when="@2021.9.0:master") + patch("fix_configure_ldflags.patch", when="@:2023.9.0") variant("mpi", default=False, description="Enables MPI-based spawners and mpi-conduit") @@ -112,27 +89,18 @@ class Upcxx(Package, CudaPackage, ROCmPackage): default=False, description="Enables UPC++ support for the CUDA memory kind on NVIDIA GPUs.\n" + "NOTE: Requires CUDA Driver library be present on the build system", - when="@2019.3.0:", - ) - conflicts( - "+cuda", when="@:2019.2", msg="UPC++ version 2019.3.0 or newer required for CUDA support" ) variant( "rocm", default=False, description="Enables UPC++ support for the ROCm/HIP memory kind on AMD GPUs", - when="@2022.3.0:", - ) - conflicts( - "+rocm", when="@:2022.2", msg="UPC++ version 2022.3.0 or newer required for ROCm support" ) variant( "level_zero", default=False, description="Enables UPC++ support for the Level Zero memory kind on Intel GPUs", - when="@2023.3.0:", ) variant( @@ -146,6 +114,9 @@ class Upcxx(Package, CudaPackage, ROCmPackage): when=is_CrayXC(), msg='cross=none is unacceptable on Cray XC. Please specify an appropriate "cross" value', ) + conflicts( + "@2025.10.0:", when=is_CrayXC(), msg="Cray XC support was removed in upcxx@2025.10.0" + ) # UPC++ always relies on GASNet-EX. # This variant allows overriding with a particular version of GASNet-EX sources, @@ -184,8 +155,8 @@ def setup_dependent_build_environment( ) -> None: self.set_variables(env) - def setup_dependent_package(self, module, dep_spec): - dep_spec.upcxx = self.prefix.bin.upcxx + def setup_dependent_package(self, module, dependent_spec): + dependent_spec.upcxx = self.prefix.bin.upcxx def install(self, spec, prefix): env = os.environ @@ -213,9 +184,6 @@ def install(self, spec, prefix): # the C/C++ compilers must work post-install real_cc = join_path(env["CRAYPE_DIR"], "bin", "cc") real_cxx = join_path(env["CRAYPE_DIR"], "bin", "CC") - # workaround a bug in the UPC++ installer: (issue #346) - # this can be removed once the floor version reaches 2020.10.0 - env["GASNET_CONFIGURE_ARGS"] += " --with-cc=" + real_cc + " --with-cxx=" + real_cxx if "+mpi" in spec: env["GASNET_CONFIGURE_ARGS"] += " --with-mpicc=" + real_cc else: @@ -236,17 +204,12 @@ def install(self, spec, prefix): provider = "verbs;ofi_rxm" # Append the recommended options for Cray Shasta - # This list can be pruned once the floor version reaches 2022.9.0 - options.append("--with-pmi-version=cray") if which("srun"): options.append("--with-pmi-runcmd=srun -n %N -- %C") elif which("aprun"): options.append("--with-pmi-runcmd=aprun -n %N %C") - options.append("--disable-ibv") - options.append("--enable-ofi") options.append("--with-default-network=ofi") options.append("--with-ofi-provider=" + provider) - env["GASNET_CONFIGURE_ARGS"] = "--with-ofi-spawner=pmi " + env["GASNET_CONFIGURE_ARGS"] if "+gasnet" in spec: options.append("--with-gasnet=" + spec["gasnet"].prefix.src) @@ -303,7 +266,7 @@ def check_install(self): def test_upcxx_install(self): """checking UPC++ compile+link for all installed backends""" test_install = join_path(self.prefix.bin, "test-upcxx-install.sh") - test_upcxx_install = which(test_install) + test_upcxx_install = which(test_install, required=True) out = test_upcxx_install(output=str.split, error=str.split) assert "SUCCESS" in out diff --git a/repos/spack_repo/builtin/packages/uriparser/package.py b/repos/spack_repo/builtin/packages/uriparser/package.py index 7b18791832e..2ed479670c2 100644 --- a/repos/spack_repo/builtin/packages/uriparser/package.py +++ b/repos/spack_repo/builtin/packages/uriparser/package.py @@ -9,23 +9,31 @@ class Uriparser(CMakePackage): """uriparser is a strictly RFC 3986 compliant URI parsing and handling - library written in C89 ("ANSI C").""" + library written in C99.""" homepage = "https://uriparser.github.io/" url = "https://github.com/uriparser/uriparser/releases/download/uriparser-0.9.3/uriparser-0.9.3.tar.gz" license("BSD-3-Clause") - version("0.9.7", sha256="11553b2abd2b5728a6c88e35ab08e807d0a0f23c44920df937778ce8cc4d40ff") - version("0.9.6", sha256="10e6f90d359c1087c45f907f95e527a8aca84422251081d1533231e031a084ff") version( - "0.9.5", - sha256="1987466a798becb5441a491d29e762ab1a4817a525f82ef239e3d38f85605a77", + "1.0.2", + sha256="963554c32d40fb6cba5644f1ba63e6dd7a182b2948bd71ee448c532f53b07f1e", + ) + # deprecate all releases before 1.0.2 because of various security issues + version( + "1.0.1", + sha256="5a3b7c491a1e9033d86b9c00a947bafc46407187938578daf799a4155cb7c88a", + deprecated=True, + ) + version( + "0.9.7", + sha256="11553b2abd2b5728a6c88e35ab08e807d0a0f23c44920df937778ce8cc4d40ff", deprecated=True, ) version( - "0.9.3", - sha256="6cef39d6eaf1a48504ee0264ce85f078758057dafb1edd0a898183b55ff76014", + "0.9.6", + sha256="10e6f90d359c1087c45f907f95e527a8aca84422251081d1533231e031a084ff", deprecated=True, ) @@ -34,7 +42,7 @@ class Uriparser(CMakePackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("cmake@3.3:", type="build") + depends_on("cmake@3.15:", type="build") depends_on("googletest@1.8.1", type="link") depends_on("doxygen", when="+docs", type="build") depends_on("graphviz", when="+docs", type="build") diff --git a/repos/spack_repo/builtin/packages/userspace_rcu/package.py b/repos/spack_repo/builtin/packages/userspace_rcu/package.py index 59b8c54a4fc..a28613e8faf 100644 --- a/repos/spack_repo/builtin/packages/userspace_rcu/package.py +++ b/repos/spack_repo/builtin/packages/userspace_rcu/package.py @@ -43,5 +43,5 @@ class UserspaceRcu(AutotoolsPackage): ) def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./bootstrap") diff --git a/repos/spack_repo/builtin/packages/util_macros/package.py b/repos/spack_repo/builtin/packages/util_macros/package.py index 0d67b29d39f..3edcf814ad3 100644 --- a/repos/spack_repo/builtin/packages/util_macros/package.py +++ b/repos/spack_repo/builtin/packages/util_macros/package.py @@ -20,6 +20,7 @@ class UtilMacros(AutotoolsPackage, XorgPackage): license("MIT") + version("1.20.2", sha256="9ac269eba24f672d7d7b3574e4be5f333d13f04a7712303b1821b2a51ac82e8e") version("1.20.1", sha256="0b308f62dce78ac0f4d9de6888234bf170f276b64ac7c96e99779bb4319bcef5") version("1.19.3", sha256="0f812e6e9d2786ba8f54b960ee563c0663ddbe2434bf24ff193f5feab1f31971") version("1.19.2", sha256="d7e43376ad220411499a79735020f9d145fdc159284867e99467e0d771f3e712") diff --git a/repos/spack_repo/builtin/packages/uwtools/package.py b/repos/spack_repo/builtin/packages/uwtools/package.py index ac09bed249d..ee169646434 100644 --- a/repos/spack_repo/builtin/packages/uwtools/package.py +++ b/repos/spack_repo/builtin/packages/uwtools/package.py @@ -39,7 +39,6 @@ class Uwtools(PythonPackage): depends_on("py-setuptools", type="build") depends_on("py-f90nml@1.4") depends_on("py-jinja2@3.1") - depends_on("iotaa@0.8", when="@:2.5") depends_on("iotaa@1.1", when="@2.6") depends_on("iotaa@1.2", when="@2.7") depends_on("iotaa@1.3:2.0", when="@2.8:") @@ -50,6 +49,6 @@ class Uwtools(PythonPackage): depends_on("py-lxml@5.3", when="@:2.6") depends_on("py-python-dateutil@2.9:", when="@2.8:") depends_on("py-pyyaml@6.0") - depends_on("py-requests@2.32", when="@2.6:") + depends_on("py-requests@2.32") build_directory = "src" diff --git a/repos/spack_repo/builtin/packages/vacuumms/package.py b/repos/spack_repo/builtin/packages/vacuumms/package.py index f7282a87cfc..fb790a1b9f7 100644 --- a/repos/spack_repo/builtin/packages/vacuumms/package.py +++ b/repos/spack_repo/builtin/packages/vacuumms/package.py @@ -8,14 +8,16 @@ class Vacuumms(CMakePackage): - """VACUUMMS: (Void Analysis Codes and Unix Utilities for Molecular Modeling and + """VACUUMMS: (Void Analysis Codes and Unix-like Utilities for Molecular Modeling and Simulation) is a collection of research codes for the compuational analysis of free volume in molecular structures, including the generation of code for the production of high quality ray-traced images and videos. Note that production of the images from the generated code is considered post-processing and requires POVRay and feh (on X11 systems) as post-processing dependencies. VACUUMMS has been tested - under Linux on x86_64 and ARM64. Please submit questions, pull requests, and bug - reports via github. https://dl.acm.org/doi/abs/10.1145/2335755.2335826""" + under Linux on x86_64 and ARM64. Python and JuPyter support are available from 1.3.0 + via the C++ API and library and are now the recommended way to use VACUUMMS. Command + Line Utilities are still available. Please submit questions, pull requests, and bug + reports via github. Cite: https://dl.acm.org/doi/abs/10.1145/2335755.2335826""" homepage = "https://github.com/VACUUMMS/VACUUMMS" url = "https://github.com/VACUUMMS/VACUUMMS/archive/refs/tags/v1.0.0.tar.gz" @@ -27,27 +29,11 @@ class Vacuumms(CMakePackage): # This is the main branch, for the latest functionality version("develop", branch="develop") - - version( - "1.2.0", - sha256="1836e6c29d1e83a79f9c6a9b686d1419bd72618aba7c46d3d038373808519d56", - preferred=True, - deprecated=False, - ) - version( - "1.1.4", - sha256="13052bafca8622df5f14613b3d4cddd50bae725e0c13c1df7f3cdee28a2e673a", - deprecated=False, - ) - version( - "1.0.0", - sha256="c18fe52f5041880da7f50d3808d37afb3e9c936a56f80f67838d045bf7af372f", - deprecated=True, - ) - + version("1.3.0", tag="1.3.0") variant("test", default=True, description="enable CMake testing") - variant("tiff", default=False, description="Build TIFF utilities") + variant("tiff", default=True, description="Build TIFF utilities") variant("cuda", default=False, description="Build CUDA applications and utilities") + variant("python", default=True, description="Build python bindings") variant("variational", default=False, description="Build VARIATIONAL module") variant("voronoi", default=False, description="Build VORONOI applications and utilities") variant( @@ -64,6 +50,8 @@ class Vacuumms(CMakePackage): depends_on("voropp", type=("link", "run"), when="+voronoi") depends_on("libtiff", type=("link", "run"), when="+tiff") depends_on("cuda", type=("link", "run"), when="+cuda") + depends_on("python", type=("link", "run"), when="+python") + depends_on("py-pybind11", type=("link", "run"), when="+python") depends_on("libx11", type=("link", "run")) depends_on("libxext", type=("link", "run")) depends_on("libsm", type=("link", "run")) @@ -78,3 +66,7 @@ def cmake_args(self): self.define_from_variant("BUILD_VORONOI_UTILS", "voronoi"), self.define_from_variant("VOROPP_HOME", "VOROPP_HOME"), ] + + def setup_run_environment(self, env): + if "+python" in self.spec: + env.prepend_path("PYTHONPATH", self.prefix.lib) diff --git a/repos/spack_repo/builtin/packages/vala/package.py b/repos/spack_repo/builtin/packages/vala/package.py index 2a664818b61..36cacccb565 100644 --- a/repos/spack_repo/builtin/packages/vala/package.py +++ b/repos/spack_repo/builtin/packages/vala/package.py @@ -20,6 +20,7 @@ class Vala(AutotoolsPackage): license("LGPL-2.0-or-later") + version("0.56.18", sha256="f2affe7d40ab63db8e7b9ecc3f6bdc9c2fc7e3134c84ff2d795f482fe926a382") version("0.48.25", sha256="50cb3c5eccddc7fd4368bfa96414a556045e79d2b15a68918c727b8c83b18a24") version("0.48.24", sha256="3649ef84573b6865fc3470640ee603720099eb915b39faad19b7498de1a7df24") version("0.48.23", sha256="de3cc858d995e07474219e25a3e1f0ed998070d2e206d3a313d4379a5f77a06a") @@ -38,11 +39,15 @@ class Vala(AutotoolsPackage): depends_on("c", type="build") # generated depends_on("pkgconfig", type="build") + depends_on("gobject-introspection", when="@0.56:") depends_on("glib@2.48:") depends_on("flex") depends_on("bison") depends_on("graphviz", when="+doc") + def url_for_version(self, version): + return f"https://download.gnome.org/sources/vala/{version.up_to(2)}/vala-{version}.tar.xz" + def configure_args(self): args = [] diff --git a/repos/spack_repo/builtin/packages/valgrind/package.py b/repos/spack_repo/builtin/packages/valgrind/package.py index 72c6df180c2..56a43f16a75 100644 --- a/repos/spack_repo/builtin/packages/valgrind/package.py +++ b/repos/spack_repo/builtin/packages/valgrind/package.py @@ -26,9 +26,12 @@ class Valgrind(AutotoolsPackage, SourcewarePackage): sourceware_mirror_path = "valgrind/valgrind-3.13.0.tar.bz2" git = "git://sourceware.org/git/valgrind.git" - license("GPL-2.0-or-later") + license("GPL-3.0-only", when="@3.26:") + license("GPL-2.0-or-later", when="@:3.25") version("develop", branch="master") + version("3.26.0", sha256="8d54c717029106f1644aadaf802ab9692e53d93dd015cbd19e74190eba616bd7") + version("3.25.1", sha256="61deb8d0727b45c268efdc1b3b6c9e679cd97cbf5ee4b28d1dead7c8b7a271af") version("3.24.0", sha256="71aee202bdef1ae73898ccf7e9c315134fa7db6c246063afc503aef702ec03bd") version("3.23.0", sha256="c5c34a3380457b9b75606df890102e7df2c702b9420c2ebef9540f8b5d56264d") version("3.22.0", sha256="c811db5add2c5f729944caf47c4e7a65dcaabb9461e472b578765dd7bf6d2d4c") diff --git a/repos/spack_repo/builtin/packages/vapor/package.py b/repos/spack_repo/builtin/packages/vapor/package.py index 50953d74de4..7ee94f1b6e5 100644 --- a/repos/spack_repo/builtin/packages/vapor/package.py +++ b/repos/spack_repo/builtin/packages/vapor/package.py @@ -97,7 +97,7 @@ def cmake_args(self): # packaged with the source code - need to extract and move @run_before("cmake") def extract_gte(self): - unzip = which("unzip") + unzip = which("unzip", required=True) with working_dir("buildutils"): unzip("GTE.zip") diff --git a/repos/spack_repo/builtin/packages/variorum/package.py b/repos/spack_repo/builtin/packages/variorum/package.py index 8696692bce7..819417d179d 100644 --- a/repos/spack_repo/builtin/packages/variorum/package.py +++ b/repos/spack_repo/builtin/packages/variorum/package.py @@ -14,7 +14,7 @@ class Variorum(CMakePackage): homepage = "https://variorum.readthedocs.io" git = "https://github.com/llnl/variorum.git" - url = "https://github.com/llnl/variorum/archive/v0.1.0.tar.gz" + url = "https://github.com/llnl/variorum/archive/v0.8.0.tar.gz" maintainers("slabasan", "rountree") @@ -23,7 +23,11 @@ class Variorum(CMakePackage): license("MIT") version("dev", branch="dev") - version("0.8.0", sha256="0e7288d523488b2a585af8ffeb7874721526f46df563b21fc51e8846bf65f7d8") + version( + "0.8.0", + sha256="0e7288d523488b2a585af8ffeb7874721526f46df563b21fc51e8846bf65f7d8", + preferred=True, + ) version("0.7.0", sha256="36ec0219379ea2b7c8f9770b3271335c776ff5a3de71585714c33356345b2f0c") version("0.6.0", sha256="c0928a0e6901808ee50142d1034de15edc2c90d7d1b9fbce43757226e7c04306") version("0.5.0", sha256="de331762e7945ee882d08454ff9c66436e2b6f87f761d2b31c6ab3028723bfed") @@ -32,18 +36,29 @@ class Variorum(CMakePackage): version("0.3.0", sha256="f79563f09b8fe796283c879b05f7730c36d79ca0346c12995b7bccc823653f42") version("0.2.0", sha256="b8c010b26aad8acc75d146c4461532cf5d9d3d24d6fc30ee68f6330a68e65744") version("0.1.0", tag="v0.1.0", commit="7747ee48cc60567bb3f09e732f24c041ecac894d") - ############ # Variants # ############ - variant("shared", default=True, description="Build Variorum as shared lib") - variant("docs", default=False, description="Build Variorum's documentation") variant( "build_type", default="Release", description="CMake build type", values=("Debug", "Release"), ) + variant( + "cpu", + default="intel", + description="Supported CPU architecture", + values=("intel", "ibm", "arm"), + multi=False, + ) + variant( + "gpu", + default="none", + description="Supported GPU architecture", + values=("intel", "amd", "nvidia", "none"), + multi=False, + ) ######################## # Package dependencies # @@ -53,13 +68,17 @@ class Variorum(CMakePackage): depends_on("fortran", type="build") # generated depends_on("cmake@2.8:", type="build") - depends_on("hwloc") depends_on("jansson", type="link") - ######################### - # Documentation related # - ######################### - depends_on("py-sphinx", when="+docs", type="build") + # cuda@10.1.243 works, as does 12.4.1 + + depends_on("cuda", type=("build", "link"), when="gpu=nvidia") # required for nvml + # If esmi spack package is added, then variorum will depend on it for CPU builds + # depends_on("esmi", type=("build", "link"), when="cpu=amd") # required for amd + + depends_on("hwloc +nvml", type=("build", "link"), when="gpu=nvidia") + depends_on("hwloc", type=("build", "link"), when="gpu=none") + depends_on("hwloc", type=("build", "link"), when="gpu=amd") root_cmakelists_dir = "src" @@ -69,31 +88,59 @@ def cmake_args(self): cmake_args.append("-DJANSSON_DIR={0}".format(spec["jansson"].prefix)) + # The examples remain in the build directory + cmake_args.append("-DBUILD_EXAMPLES=ON") + cmake_args.append("-DBUILD_TESTS=ON") + if spec.satisfies("%cce"): cmake_args.append("-DCMAKE_C_FLAGS=-fcommon") cmake_args.append("-DCMAKE_CCC_FLAGS=-fcommon") cmake_args.append("-DCMAKE_Fortran_FLAGS=-ef") - if "+shared" in spec: - cmake_args.append("-DBUILD_SHARED_LIBS=ON") - else: - cmake_args.append("-DBUILD_SHARED_LIBS=OFF") - - if "+docs" in spec: - cmake_args.append("-DBUILD_DOCS=ON") - sphinx_build_exe = join_path(spec["py-sphinx"].prefix.bin, "sphinx-build") - cmake_args.append("-DSPHINX_EXECUTABLE=" + sphinx_build_exe) + # CPU architecture selection. + if spec.satisfies("cpu=intel"): + cmake_args.append("-DVARIORUM_WITH_INTEL_CPU=ON") + cmake_args.append("-DVARIORUM_WITH_AMD_CPU=OFF") + cmake_args.append("-DVARIORUM_WITH_IBM_CPU=OFF") + cmake_args.append("-DVARIORUM_WITH_ARM_CPU=OFF") + elif spec.satisfies("cpu=amd"): + cmake_args.append("-DVARIORUM_WITH_INTEL_CPU=OFF") + cmake_args.append("-DVARIORUM_WITH_AMD_CPU=ON") + cmake_args.append("-DVARIORUM_WITH_IBM_CPU=OFF") + cmake_args.append("-DVARIORUM_WITH_ARM_CPU=OFF") + elif spec.satisfies("cpu=ibm"): + cmake_args.append("-DVARIORUM_WITH_INTEL_CPU=OFF") + cmake_args.append("-DVARIORUM_WITH_AMD_CPU=OFF") + cmake_args.append("-DVARIORUM_WITH_IBM_CPU=ON") + cmake_args.append("-DVARIORUM_WITH_ARM_CPU=OFF") + elif spec.satisfies("cpu=arm"): + cmake_args.append("-DVARIORUM_WITH_INTEL_CPU=OFF") + cmake_args.append("-DVARIORUM_WITH_AMD_CPU=OFF") + cmake_args.append("-DVARIORUM_WITH_IBM_CPU=OFF") + cmake_args.append("-DVARIORUM_WITH_ARM_CPU=ON") + + # GPU architecture selection. + if spec.satisfies("gpu=intel"): + cmake_args.append("-DVARIORUM_WITH_INTEL_GPU=ON") + cmake_args.append("-DVARIORUM_WITH_AMD_GPU=OFF") + cmake_args.append("-DVARIORUM_WITH_NVIDIA_GPU=OFF") + elif spec.satisfies("gpu=amd"): + cmake_args.append("-DVARIORUM_WITH_INTEL_GPU=OFF") + cmake_args.append("-DVARIORUM_WITH_AMD_GPU=ON") + cmake_args.append("-DVARIORUM_WITH_NVIDIA_GPU=OFF") + elif spec.satisfies("gpu=nvidia"): + cmake_args.append("-DVARIORUM_WITH_INTEL_GPU=OFF") + cmake_args.append("-DVARIORUM_WITH_AMD_GPU=OFF") + cmake_args.append("-DVARIORUM_WITH_NVIDIA_GPU=ON") + cmake_args.append("-DNVML_DIR={0}".format(spec["cuda"].prefix)) else: - cmake_args.append("-DBUILD_DOCS=OFF") + cmake_args.append("-DVARIORUM_WITH_INTEL_GPU=OFF") + cmake_args.append("-DVARIORUM_WITH_AMD_GPU=OFF") + cmake_args.append("-DVARIORUM_WITH_NVIDIA_GPU=OFF") if "build_type=Debug" in spec: cmake_args.append("-DVARIORUM_DEBUG=ON") else: cmake_args.append("-DVARIORUM_DEBUG=OFF") - if self.run_tests: - cmake_args.append("-DBUILD_TESTS=ON") - else: - cmake_args.append("-DBUILD_TESTS=OFF") - return cmake_args diff --git a/repos/spack_repo/builtin/packages/varnish_cache/package.py b/repos/spack_repo/builtin/packages/varnish_cache/package.py index 57a2edf29d7..0c5053a70d3 100644 --- a/repos/spack_repo/builtin/packages/varnish_cache/package.py +++ b/repos/spack_repo/builtin/packages/varnish_cache/package.py @@ -16,13 +16,6 @@ class VarnishCache(AutotoolsPackage): license("BSD-2-Clause") version("7.6.1", sha256="6cfa30d761fa5edf33322048564cda3ee99de93ee57732c10f720d98d12f1899") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2022-23959 - version("6.4.0", sha256="d9702c2c689c5d4ecd911886f769ddf22f46ac0722e275bee4033928cab09243") - version("6.3.2", sha256="e50f3dd4e26d5669c5b73657cdb0d5ddac7dcc3cfa1761a983afa24b659f3785") - version("6.3.1", sha256="8cc57360c1db36e8c77fc51304a935803a06247f6d6120fa47e8345efadf17a9") - version("6.3.0", sha256="c7170d4bc57f1d2454da046fc5e43e2d19a804448d2dd839fa5c33f76bd677bb") - version("6.2.3", sha256="64cd273aa155c78c21e74def53622be5920c8a7d952fee74f0663e57a01c9a9d") depends_on("c", type="build") # generated @@ -31,8 +24,7 @@ class VarnishCache(AutotoolsPackage): depends_on("libtool", type="build") depends_on("m4", type="build") depends_on("pkgconfig", type="build") - depends_on("pcre2", when="@7:") - depends_on("pcre", when="@:6") + depends_on("pcre2") depends_on("readline") depends_on("python", type=("build", "run")) depends_on("py-sphinx", type=("build", "run")) diff --git a/repos/spack_repo/builtin/packages/vasp/package.py b/repos/spack_repo/builtin/packages/vasp/package.py index 342b121f0ac..5bff1ff4228 100644 --- a/repos/spack_repo/builtin/packages/vasp/package.py +++ b/repos/spack_repo/builtin/packages/vasp/package.py @@ -26,52 +26,21 @@ class Vasp(MakefilePackage, CudaPackage): version("6.5.1", sha256="a53fd9dd2a66472a4aa30074dbda44634fc663ea2628377fc01d870e37136f61") version("6.5.0", sha256="7836f0fd2387a6768be578f1177e795dc625f36f19015e31cab0e81154a24196") version("6.4.3", sha256="fe30e773f2a3e909b5e0baa9654032dfbdeff7ec157bc348cee7681a7b6c24f4") + version("6.4.2", sha256="b704637f7384673f91adfbc803edc5cc7fe736d9623453461f7cdc29b123410e") version("6.3.2", sha256="f7595221b0f9236a324ea8afe170637a578cdd5a837cc7679e7f7812f6edf25a") + version("6.3.1", sha256="113db53c4346287c89982f52887a65d12d246e38de7ccd024e44499c4774dc66") version("6.3.0", sha256="adcf83bdfd98061016baae31616b54329563aa2739573f069dd9df19c2071ad3") - version( - "6.2.0", - sha256="49e7ba351bd634bc5f5f67a8ef1e38e64e772857a1c02f602828898a84197e25", - deprecated=True, - ) - version( - "6.1.1", - sha256="e37a4dfad09d3ad0410833bcd55af6b599179a085299026992c2d8e319bf6927", - deprecated=True, - ) - version( - "5.4.4.pl2", - sha256="98f75fd75399a23d76d060a6155f4416b340a1704f256a00146f89024035bc8e", - deprecated=True, - ) - version( - "5.4.4", - sha256="5bd2449462386f01e575f9adf629c08cb03a13142806ffb6a71309ca4431cfb3", - deprecated=True, - ) - resource( - name="vaspsol", - git="https://github.com/henniggroup/VASPsol.git", - tag="V1.0", - when="+vaspsol", - ) - - variant("openmp", default=False, when="@6:", description="Enable openmp build") - - variant("scalapack", default=False, when="@:5", description="Enables build with SCALAPACK") + variant("openmp", default=False, description="Enable openmp build") variant("cuda", default=False, description="Enables running on Nvidia GPUs") - variant("fftlib", default=True, when="@6.2: +openmp", description="Enables fftlib build") - - variant( - "vaspsol", - default=False, - when="@:6.2", - description="Enable VASPsol implicit solvation model\n" - "https://github.com/henniggroup/VASPsol", - ) + variant("fftlib", default=True, when="+openmp", description="Enables fftlib build") + variant("shmem", default=True, description="Enable use_shmem build flag") - variant("hdf5", default=False, when="@6.2:", description="Enabled HDF5 support") + variant("hdf5", default=False, description="Enabled HDF5 support") + variant("libbeef", default=False, description="Enable Libbeef support") + variant("libxc", default=False, description="Enable Libxc support") + variant("wannier90", default=False, description="Enable wannier90 support") depends_on("c", type="build") depends_on("cxx", type="build") @@ -89,25 +58,26 @@ class Vasp(MakefilePackage, CudaPackage): # fortran oddness requires the below depends_on("openmpi%aocc", when="%aocc ^[virtuals=mpi] openmpi") depends_on("openmpi%gcc", when="%gcc ^[virtuals=mpi] openmpi") - depends_on("scalapack", when="+scalapack") - # wiki (and makefiles) suggest scalapack is expected in 6: - depends_on("scalapack", when="@6:") - depends_on("nccl", when="@6.3: +cuda") + depends_on("scalapack") + depends_on("nccl", when="+cuda") depends_on("hdf5+fortran+mpi", when="+hdf5") + depends_on("libbeef", when="+libbeef") + depends_on("libxc~fhc+fortran", when="+libxc") + depends_on("wannier90", when="+wannier90") # at the very least the nvhpc mpi seems required requires("^nvhpc+mpi+lapack+blas", when="%nvhpc") conflicts( "%gcc@:8", msg="GFortran before 9.x does not support all features needed to build VASP" ) - conflicts("+vaspsol", when="+cuda", msg="+vaspsol only available for CPU") - requires("%nvhpc", when="@6.3: +cuda", msg="vasp requires nvhpc to build the openacc build") + requires("%nvhpc", when="+cuda", msg="vasp requires nvhpc to build the openacc build") + # intel mkl/mpi conflicts with ilp64, which is a default behaviour + requires("^intel-oneapi-mkl~ilp64", when="^intel-oneapi-mkl") + requires("^intel-oneapi-mpi~ilp64", when="^intel-oneapi-mpi") # the mpi compiler wrappers in nvhpc assume nvhpc is the underlying compiler, seemingly conflicts("^[virtuals=mpi] nvhpc", when="%gcc", msg="nvhpc mpi requires nvhpc compiler") conflicts("^[virtuals=mpi] nvhpc", when="%aocc", msg="nvhpc mpi requires nvhpc compiler") - conflicts( - "cuda_arch=none", when="@6.3: +cuda", msg="CUDA arch required when building openacc port" - ) + conflicts("cuda_arch=none", when="+cuda", msg="CUDA arch required when building openacc port") def edit(self, spec, prefix): cpp_options = [ @@ -119,6 +89,7 @@ def edit(self, spec, prefix): "-Duse_bse_te", "-Dtbdyn", "-Dfock_dblbuf", + "-Dvasp6", ] objects_lib = ["linpack_double.o"] llibs = list(self.compiler.stdcxx_libs) @@ -126,24 +97,18 @@ def edit(self, spec, prefix): fflags = ["-w"] incs = [spec["fftw-api"].headers.include_flags] - if self.spec.satisfies("@6:"): - cpp_options.append("-Dvasp6") - llibs.extend([spec["blas"].libs.ld_flags, spec["lapack"].libs.ld_flags]) fc = [spec["mpi"].mpifc] fcl = [spec["mpi"].mpifc] - include_prefix = "" omp_flag = "-fopenmp" if spec.satisfies("+shmem"): cpp_options.append("-Duse_shmem") objects_lib.append("getshmem.o") - if spec.satisfies("@:6.2"): - include_prefix = "linux_" - include_string = f"makefile.include.{include_prefix}" + include_string = "makefile.include." # gcc if spec.satisfies("%gcc"): @@ -151,6 +116,14 @@ def edit(self, spec, prefix): if spec.satisfies("+openmp"): include_string += "_omp" make_include = join_path("arch", include_string) + # oneapi + elif spec.satisfies("%oneapi"): + include_string += "oneapi" + if spec.satisfies("+openmp"): + include_string += "_omp" + make_include = join_path("arch", include_string) + filter_file("^CC_LIB[ ]{0,}=.*$", f"CC_LIB={spack_cc}", make_include) + filter_file("^CXX_PARS[ ]{0,}=.*$", f"CXX_PARS={spack_cxx}", make_include) # nvhpc elif spec.satisfies("%nvhpc"): qd_root = join_path( @@ -162,26 +135,17 @@ def edit(self, spec, prefix): "qd", ) nvroot = join_path(spec["nvhpc"].prefix, f"Linux_{spec['nvhpc'].target.family.name}") - if spec.satisfies("@6.3:"): - cpp_options.extend(['-DHOST=\\"LinuxNV\\"', "-Dqd_emulate"]) - else: - cpp_options.extend(['-DHOST=\\"LinuxPGI\\"', "-DPGI16", "-Dqd_emulate", "-Mfree"]) + cpp_options.extend(['-DHOST=\\"LinuxNV\\"', "-Dqd_emulate"]) fflags.extend(["-Mnoupcase", "-Mbackslash", "-Mlarge_arrays"]) incs.append(f"-I{join_path(qd_root, 'include', 'qd')}") llibs.extend([f"-L{join_path(qd_root, 'lib')}", "-lqdmod", "-lqd"]) - if spec.satisfies("@:6.2"): - make_include = join_path("arch", f"{include_string}pgi") - filter_file("pgcc", spack_cc, make_include) - filter_file("pgc++", spack_cxx, make_include, string=True) - filter_file("pgfortran", spack_fc, make_include) - else: - include_string += "nvhpc" - if spec.satisfies("+openmp"): - include_string += "_omp" - if spec.satisfies("+cuda"): - include_string += "_acc" + include_string += "nvhpc" + if spec.satisfies("+openmp"): + include_string += "_omp" + if spec.satisfies("+cuda"): + include_string += "_acc" make_include = join_path("arch", include_string) omp_flag = "-mp" filter_file(r"^QD[ \t]*\??=.*$", f"QD = {qd_root}", make_include) @@ -190,7 +154,7 @@ def edit(self, spec, prefix): elif spec.satisfies("%aocc"): cpp_options.extend(['-DHOST=\\"LinuxAMD\\"', "-Dshmem_bcast_buffer", "-DNGZhalf"]) fflags.extend(["-fno-fortran-main", "-Mbackslash", "-ffunc-args-alias"]) - if spec.satisfies("@6.3.0: ^amdfftw@4.0:"): + if spec.satisfies("^amdfftw@4.0:"): cpp_options.extend(["-Dfftw_cache_plans", "-Duse_fftw_plan_effort"]) if spec.satisfies("+openmp"): if spec.satisfies("@6.3.2:"): @@ -231,13 +195,11 @@ def edit(self, spec, prefix): make_include = join_path("arch", f"{include_string}{spec.compiler.name}_omp") # if the above doesn't work, fallback to gnu if not os.path.exists(make_include): - make_include = join_path("arch", f"{include_string}.gnu_omp") + make_include = join_path("arch", f"{include_string}gnu_omp") else: - make_include = join_path( - "arch", f"{include_string}{include_prefix}" + spec.compiler.name - ) + make_include = join_path("arch", include_string + spec.compiler.name) if not os.path.exists(make_include): - make_include = join_path("arch", f"{include_string}.gnu") + make_include = join_path("arch", f"{include_string}gnu") cpp_options.append('-DHOST=\\"LinuxGNU\\"') if spec.satisfies("+openmp"): @@ -256,45 +218,48 @@ def edit(self, spec, prefix): llibs.append(spec["scalapack"].libs.ld_flags) if spec.satisfies("+cuda"): - if spec.satisfies("@6.3:"): - # openacc - cpp_options.extend(["-D_OPENACC", "-DUSENCCL"]) - llibs.extend(["-cudalib=cublas,cusolver,cufft,nccl", "-cuda"]) - fc.append("-acc") - fcl.append("-acc") - cuda_flags = [f"cuda{str(spec['cuda'].version.dotted[0:2])}", "rdc"] - for f in spec.variants["cuda_arch"].value: - cuda_flags.append(f"cc{f}") - fc.append(f"-gpu={','.join(cuda_flags)}") - fcl.append(f"-gpu={','.join(cuda_flags)}") - fcl.extend(list(self.compiler.stdcxx_libs)) - cc = [spec["mpi"].mpicc, "-acc"] - if spec.satisfies("+openmp"): - cc.append(omp_flag) - filter_file("^CC[ \t]*=.*$", f"CC = {' '.join(cc)}", make_include) - + # openacc + if spec.satisfies("@6.5.0:"): + cpp_options.extend(["-DACC_OFFLOAD", "-DNVCUDA", "-DUSENCCL"]) else: - # old cuda thing - cflags.extend(["-DGPUSHMEM=300", "-DHAVE_CUBLAS"]) - filter_file(r"^CUDA_ROOT[ \t]*\?=.*$", spec["cuda"].prefix, make_include) - - if spec.satisfies("+vaspsol"): - cpp_options.append("-Dsol_compat") - copy("VASPsol/src/solvation.F", "src/") + cpp_options.extend(["-D_OPENACC", "-DUSENCCL"]) + llibs.extend(["-cudalib=cublas,cusolver,cufft,nccl", "-cuda"]) + fc.append("-acc") + fcl.append("-acc") + cuda_flags = [f"cuda{str(spec['cuda'].version.dotted[0:2])}", "rdc"] + for f in spec.variants["cuda_arch"].value: + cuda_flags.append(f"cc{f}") + fc.append(f"-gpu={','.join(cuda_flags)}") + fcl.append(f"-gpu={','.join(cuda_flags)}") + fcl.extend(list(self.compiler.stdcxx_libs)) + cc = [spec["mpi"].mpicc, "-acc"] + if spec.satisfies("+openmp"): + cc.append(omp_flag) + filter_file("^CC[ \t]*=.*$", f"CC = {' '.join(cc)}", make_include) if spec.satisfies("+hdf5"): cpp_options.append("-DVASP_HDF5") llibs.append(spec["hdf5:fortran"].libs.ld_flags) incs.append(spec["hdf5"].headers.include_flags) + if spec.satisfies("+libbeef"): + cpp_options.append("-Dlibbeef") + llibs.append(spec["libbeef"].libs.ld_flags) + + if spec.satisfies("+libxc"): + cpp_options.append("-DUSELIBXC") + llibs.append(spec["libxc:fortran"].libs.ld_flags) + incs.append(spec["libxc"].headers.include_flags) + + if spec.satisfies("+wannier90"): + cpp_options.append("-DVASP2WANNIER90") + llibs.append(spec["wannier90"].libs.ld_flags) + if spec.satisfies("%gcc@10:"): fflags.append("-fallow-argument-mismatch") filter_file(r"^VASP_TARGET_CPU[ ]{0,}\?=.*", "", make_include) - if spec.satisfies("@:5"): - filter_file("-DscaLAPACK.*$\n", "", make_include) - if spec.satisfies("+fftlib"): cxxftlib = ( f"CXX_FFTLIB = {spack_cxx} {omp_flag}" @@ -336,13 +301,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("NVHPC_CUDA_HOME", self.spec["cuda"].prefix) def build(self, spec, prefix): - if spec.satisfies("@:6.2"): - if spec.satisfies("+cuda"): - make("DEPS=1", "all") - else: - make("DEPS=1", "std", "gam", "ncl") - else: - make("DEPS=1, all") + make("DEPS=1, all") def install(self, spec, prefix): install_tree("bin/", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/vbfnlo/package.py b/repos/spack_repo/builtin/packages/vbfnlo/package.py index f03d0504e60..156add37328 100644 --- a/repos/spack_repo/builtin/packages/vbfnlo/package.py +++ b/repos/spack_repo/builtin/packages/vbfnlo/package.py @@ -21,23 +21,6 @@ class Vbfnlo(AutotoolsPackage): license("GPL-2.0-only") version("3.0", sha256="b9df02603e4f801f866360c720191a29afdb958d0bd4369ea7d810e761503e51") - with default_args(deprecated=True): - # deprecate beta versions which are such that they are preferred over 3.0 - version( - "3.0.0beta5", sha256="777a3dedb365ea9abc38848a60f30d325da3799cbad69fa308664b94a8c31a90" - ) - version( - "3.0.0beta4", sha256="511e84765e9634a75766a160eae1925812dacbb3943e7e3b4dc90e2eacac8a2c" - ) - version( - "3.0.0beta3", sha256="ab4cc3289051ab09ed94fa41d0eb1c5c4adcd9f39fa04e3c95a3867f256541bc" - ) - version( - "3.0.0beta2", sha256="33dd0781e645a5baa664fc5aa81d43c12586bf095ef25895e86cb4192c22473b" - ) - version( - "3.0.0beta1", sha256="19f0bf7e4c93b0f287d2531d6802c114a78eb46cde28ea820b2a074a5819c7ca" - ) version("2.7.1", sha256="13e33d73d8a8ef64094621f87e6f94e01712e76cc19a86298d0b52cfcb9decca") # Documentation is broken on some systems: diff --git a/repos/spack_repo/builtin/packages/vbz_compression/package.py b/repos/spack_repo/builtin/packages/vbz_compression/package.py index 911e53feb2f..9a532b77e12 100644 --- a/repos/spack_repo/builtin/packages/vbz_compression/package.py +++ b/repos/spack_repo/builtin/packages/vbz_compression/package.py @@ -10,14 +10,16 @@ class VbzCompression(CMakePackage): """ - VBZ Compression uses variable byte integer encoding to compress nanopore signal data and is built using the following libraries: + VBZ Compression uses variable byte integer encoding to compress nanopore signal data and is + built using the following libraries: https://github.com/lemire/streamvbyte https://github.com/facebook/zstd - The performance of VBZ is achieved by taking advantage of the properties of the raw signal and therefore is most effective when applied to the signal dataset. - Other datasets you may have in your Fast5 files will not be able to take advantage of the default VBZ settings for compression. - VBZ will be used as the default compression scheme in a future release of MinKNOW. + The performance of VBZ is achieved by taking advantage of the properties of the raw signal and + therefore is most effective when applied to the signal dataset. Other datasets you may have in + your Fast5 files will not be able to take advantage of the default VBZ settings for + compression. VBZ will be used as the default compression scheme in a future release of MinKNOW. """ homepage = "https://nanoporetech.com" diff --git a/repos/spack_repo/builtin/packages/vc/package.py b/repos/spack_repo/builtin/packages/vc/package.py index b2148673029..3679d887260 100644 --- a/repos/spack_repo/builtin/packages/vc/package.py +++ b/repos/spack_repo/builtin/packages/vc/package.py @@ -39,7 +39,7 @@ def fetch_additional_sources(self): to set those up only as needed. """ if self.run_tests and self.spec.satisfies("@1.4.0:"): - git = which("git") + git = which("git", required=True) with working_dir(join_path(self.stage.source_path, "tests/testdata")): git("clone", "--filter=tree:0", "https://github.com/VcDevel/vc-testdata", ".") # NOTE to maintainers: when adding new versions, diff --git a/repos/spack_repo/builtin/packages/vcftools/package.py b/repos/spack_repo/builtin/packages/vcftools/package.py index cc8e6ea2929..253d24155b8 100644 --- a/repos/spack_repo/builtin/packages/vcftools/package.py +++ b/repos/spack_repo/builtin/packages/vcftools/package.py @@ -19,6 +19,7 @@ class Vcftools(AutotoolsPackage): license("LGPL-3.0-only") + version("0.1.17", sha256="b9e0e1c3e86533178edb35e02c6c4de9764324ea0973bebfbb747018c2d2a42c") version("0.1.16", sha256="dbfc774383c106b85043daa2c42568816aa6a7b4e6abc965eeea6c47dde914e3") # this is "a pre-release" # version('0.1.15', sha256='31e47afd5be679d89ece811a227525925b6907cce4af2c86f10f465e080383e3') @@ -85,4 +86,7 @@ def filter_sbang(self): filter_file(match, substitute, *files, **kwargs) def setup_run_environment(self, env: EnvironmentModifications) -> None: - env.prepend_path("PERL5LIB", self.prefix.lib) + if self.spec.satisfies("@0.1.16:"): + env.prepend_path("PERL5LIB", f"{self.prefix.lib}/site_perl") + else: + env.prepend_path("PERL5LIB", self.prefix.lib) diff --git a/repos/spack_repo/builtin/packages/vde/package.py b/repos/spack_repo/builtin/packages/vde/package.py index 1643cf289f7..36093a61e36 100644 --- a/repos/spack_repo/builtin/packages/vde/package.py +++ b/repos/spack_repo/builtin/packages/vde/package.py @@ -27,3 +27,9 @@ class Vde(AutotoolsPackage): def autoreconf(self, spec, prefix): autoreconf("--install", "--verbose") + + def flag_handler(self, name, flags): + if name == "cflags": + if self.spec.satisfies("%gcc@15:"): + flags.append("-std=gnu17") + return (flags, None, None) diff --git a/repos/spack_repo/builtin/packages/vecgeom/package.py b/repos/spack_repo/builtin/packages/vecgeom/package.py index 8c65abc5c67..3bc05de0e46 100644 --- a/repos/spack_repo/builtin/packages/vecgeom/package.py +++ b/repos/spack_repo/builtin/packages/vecgeom/package.py @@ -32,9 +32,20 @@ class Vecgeom(CMakePackage, CudaPackage): version("master", branch="master", get_full_repo=True) version( - "2.0.0-rc.5", - url="https://gitlab.cern.ch/-/project/981/uploads/4659be05698738691ebd4b66da8d97c4/VecGeom-v2.0.0-rc.5.tar.gz", - sha256="6805cf9157b1931aac74c77386f4f94dd1966a0286749db385fd2ba469070724", + "2.0.0", + url="https://gitlab.cern.ch/-/project/981/uploads/d2ae816669e324d5828c16857b307372/VecGeom-v2.0.0.tar.gz", + sha256="f5fb455b2a2a5f386e171a621d0e95908ab6269803c4b186861849e8c88e8350", + ) + version( + "2.0.0-rc.9", + url="https://gitlab.cern.ch/-/project/981/uploads/4a8ba32606365d4be04455827ea32c51/VecGeom-v2.0.0-rc.9.tar.gz", + sha256="cfc0cb86303c1dc475a5dde9022384e2034f789a0908feb007103c1e7cd9aa65", + deprecated=True, + ) + version( + "2.0.0-rc.7", + url="https://gitlab.cern.ch/-/project/981/uploads/f1017874e9d138165f221d4b854a39a4/VecGeom-v2.0.0-rc.7.tar.gz", + sha256="f95eacd7154f7b41950161988465b5c086f80dade91dec8328085949c6f443a0", deprecated=True, ) version( @@ -48,55 +59,15 @@ class Vecgeom(CMakePackage, CudaPackage): url="https://gitlab.cern.ch/-/project/981/uploads/8e0a94013efdd1b2d4f44c3fbb10bcdf/VecGeom-v1.2.10.tar.gz", sha256="3e0934842694452e4cb4a265428cb99af1ecc45f0e2d28a32dfeaa0634c21e2a", ) - version( - "1.2.9", - url="https://gitlab.cern.ch/-/project/981/uploads/55a89cafbf48a418bec68be42867d4bf/VecGeom-v1.2.9.tar.gz", - sha256="93ee9ce6f7b2d704e9b9db22fad68f81b8eaf17453452969fc47e93dba4bfaf4", - deprecated=True, - ) - version( - "1.2.8", - url="https://gitlab.cern.ch/VecGeom/VecGeom/uploads/db11697eb81d6f369e9ded1078de946b/VecGeom-v1.2.8.tar.gz", - sha256="769f59e8377f8268e253a9b2a3eee86868a9ebc1fa66c968b96e19c31440c12b", - deprecated=True, - ) - version( - "1.2.7", - url="https://gitlab.cern.ch/VecGeom/VecGeom/uploads/e4172cca4f6f731ef15e2780ecbb1645/VecGeom-v1.2.7.tar.gz", - sha256="d264c69b78bf431b9542be1f1af087517eac629da03cf2da62eb1e433fe06021", - deprecated=True, - ) - version( - "1.2.6", - url="https://gitlab.cern.ch/VecGeom/VecGeom/uploads/0b16aed9907cea62aa5f5914bec99a90/VecGeom-v1.2.6.tar.gz", - sha256="337f8846491930f3d8bfa4b45a1589d46e5d1d87f2d38c8f7006645c3aa90df8", - deprecated=True, - ) - version( - "1.2.5", - url="https://gitlab.cern.ch/VecGeom/VecGeom/uploads/33b93e656c5bc49d81cfcba291f5be51/VecGeom-v1.2.5.tar.gz", - sha256="d79ea05125e4d03c5605e5ea232994c500841d207b4543ac3d84758adddc15a9", - deprecated=True, - ) version("1.1.20", sha256="e1c75e480fc72bca8f8072ea00320878a9ae375eed7401628b15cddd097ed7fd") - version( - "1.1.5", - sha256="da674f3bbc75c30f56c1a2d251fa8930c899f27fa64b03a36569924030d87b95", - deprecated=True, - ) - version( - "1.1.0", - sha256="e9d1ef83ff591fe4f9ef744a4d3155a3dc7e90ddb6735b24f3afe4c2dc3f7064", - deprecated=True, - ) - version( - "0.5.2", - tag="v00.05.02", - commit="a7e0828c915ff936a79e672d1dd84b087a323b51", - deprecated=True, - ) - _cxxstd_values = (conditional("11", "14", when="@:1.1"), "17", conditional("20", when="@1.2:")) + _cxxstd_values = ( + conditional("11", "14", when="@:1.1"), + "17", + conditional("20", when="@1.2:"), + # Assuming versions not supporting C++20 do not support C++23 + conditional("23", when="@1.2:"), + ) variant( "cxxstd", default="17", @@ -106,10 +77,14 @@ class Vecgeom(CMakePackage, CudaPackage): ) variant("gdml", default=True, description="Support native GDML geometry descriptions") # TODO: delete geant4/root variants since they don't affect the build - variant("geant4", default=False, description="Support Geant4 geometry construction") - variant("root", default=False, description="Support ROOT geometry construction") + variant( + "geant4", default=False, when="@:1", description="Support Geant4 geometry construction" + ) + variant("root", default=False, when="@:1", description="Support ROOT geometry construction") variant("shared", default=True, description="Build shared libraries") - variant("surface", default=False, when="@2:", description="Use surface frame representation") + variant( + "surface", default=False, when="@2:", description="Support surface frame representation" + ) depends_on("c", type="build") depends_on("cxx", type="build") @@ -117,14 +92,9 @@ class Vecgeom(CMakePackage, CudaPackage): depends_on("veccore") depends_on("veccore@0.8.1:", when="+cuda") depends_on("veccore@0.8.0:0.8", when="@1.1.18:") - depends_on("veccore@0.5.2:", when="@1.1.0:") - depends_on("veccore@0.4.2", when="@:1.0") conflicts("+cuda", when="@:1.1.5") - # NOTE: surface branch doesn't yet compile with volume - conflicts("~surface", when="@=2.0.0-surfacedev.1") - # Fix empty -Xcompiler= with nvcc patch( "https://gitlab.cern.ch/VecGeom/VecGeom/-/commit/0bf9b675ab70eb5cb9409ff73c1152fd1326dbf4.diff", @@ -198,7 +168,4 @@ def cmake_args(self): ] ) - if spec.satisfies("@:0.5.2"): - args.extend([define("USOLIDS", True), define("USOLIDS_VECGEOM", True)]) - return args diff --git a/repos/spack_repo/builtin/packages/veclibfort/package.py b/repos/spack_repo/builtin/packages/veclibfort/package.py index af09085d5fb..d669f7a3f91 100644 --- a/repos/spack_repo/builtin/packages/veclibfort/package.py +++ b/repos/spack_repo/builtin/packages/veclibfort/package.py @@ -59,7 +59,7 @@ def install(self, spec, prefix): make(*make_args) # test - fc = which("fc") + fc = which("fc", required=True) flags = ["-o", "tester", "-O", "tester.f90"] flags.extend(self.libs.ld_flags.split()) fc(*flags) diff --git a/repos/spack_repo/builtin/packages/vecmem/package.py b/repos/spack_repo/builtin/packages/vecmem/package.py index 712b6435d93..8ecfb9dfd75 100644 --- a/repos/spack_repo/builtin/packages/vecmem/package.py +++ b/repos/spack_repo/builtin/packages/vecmem/package.py @@ -19,6 +19,13 @@ class Vecmem(CMakePackage, CudaPackage): license("MPL-2.0-no-copyleft-exception") + version("1.25.0", sha256="a1dd195e154ed23a0e50c52e22fb9f986fc65cd99860020fc47a292f597fa88d") + version("1.24.0", sha256="f13ba18b923d2f6da3dc8a20b76152f7ebf4420fbebb12684e7215d178780029") + version("1.23.0", sha256="eee612fe5276d5852ccbfad1feda4b4f00391791479e08934d70cd437f376df9") + version("1.22.0", sha256="478ae60f5a64650cadb955f7fd4bb3c0b02658dd6821077a0724e58bb745cc66") + version("1.21.0", sha256="a6e30da7dcb9a792eb0f2c0ceb821f52cf867c9745a65468b2ce6f026b23a49d") + version("1.20.0", sha256="73c817b2a1a0961e357a2ca204ad610c8892b2697a6af2b1d794d0760a1009bf") + version("1.19.0", sha256="0a1c77f0cee40f0b111ceab28cc77bfae4cfee29fea0aa3f7d91d2a58ff70236") version("1.18.0", sha256="2b9e92d10f8883eafb45f48fd357ecaf7456badec11ccd375d3f2505e71aa9d2") version("1.17.0", sha256="6032279e8fc8bdb48d39c4ac19ffe561bcc53576e36f71ee2ed3ed75835f1af9") version("1.16.0", sha256="04da7077381e12c2b9bf869e1357105683596ed9105e3acff3c6d9214be04fbd") @@ -66,6 +73,13 @@ class Vecmem(CMakePackage, CudaPackage): version("0.2.0", sha256="33aea135989684e325cb097e455ff0f9d1a9e85ff32f671e3b3ed6cc036176ac") version("0.1.0", sha256="19e24e3262aa113cd4242e7b94e2de34a4b362e78553730a358f64351c6a0a01") + # CPack fix after hip -> sycl, https://github.com/acts-project/vecmem/pull/354 + patch( + "https://github.com/acts-project/vecmem/commit/f3f09938b05706522d23314d0863bb7ee78c2a21.patch?full_index=1", + sha256="41fc7cbd4fc83c4abf6be0f781a6110a63073cc088e1970fb66abcf3b6eab6ea", + when="@1.23.0", + ) + variant("hip", default=False, description="Build the vecmem::hip library") variant("sycl", default=False, description="Build the vecmem::sycl library") diff --git a/repos/spack_repo/builtin/packages/velvet/package.py b/repos/spack_repo/builtin/packages/velvet/package.py index a4a7899bc32..e5056492705 100644 --- a/repos/spack_repo/builtin/packages/velvet/package.py +++ b/repos/spack_repo/builtin/packages/velvet/package.py @@ -51,6 +51,8 @@ class Velvet(MakefilePackage): variant("openmp", default=False, description="Enable multithreading") variant("single_cov_cat", default=False, description="Per-library coverage") + depends_on("c") + depends_on("zlib-api") def edit(self, spec, prefix): @@ -59,6 +61,7 @@ def edit(self, spec, prefix): makefile.filter("-m64", "") maxkmerlength = self.spec.variants["maxkmerlength"].value categories = self.spec.variants["categories"].value + makefile.filter(r"^CFLAGS\s*=\s*", f"CFLAGS = -I{self.spec['zlib-api'].prefix.include} ") makefile.filter(r"^MAXKMERLENGTH\s*=\s*.*", f"MAXKMERLENGTH = {maxkmerlength}") makefile.filter(r"^CATEGORIES\s*=\s*.*", f"CATEGORIES = {categories}") if "+bigassembly" in self.spec: diff --git a/repos/spack_repo/builtin/packages/vep/package.py b/repos/spack_repo/builtin/packages/vep/package.py index 5b35b374fcb..817fcea7c0a 100644 --- a/repos/spack_repo/builtin/packages/vep/package.py +++ b/repos/spack_repo/builtin/packages/vep/package.py @@ -60,7 +60,7 @@ class Vep(Package): # This is a workaround for the VEP installer which downloads # and manually installs dependent packages with default_args(type=("build", "run"), when="~vep_installer"): - for ver in ["110", "111", "112"]: + for ver in ["110", "111", "112", "113"]: depends_on(f"perl-bio-ensembl@{ver}", when=f"@{ver}") depends_on(f"perl-bio-ensembl-variation@{ver}", when=f"@{ver}") depends_on(f"perl-bio-ensembl-funcgen@{ver}", when=f"@{ver}") @@ -123,7 +123,7 @@ def install(self, spec, prefix): # If we don't do this a bunch of perl libs will be missing # Run the customer VEP installer/downloader, which downloads # copies a bunch of additional perl modules - installer = which(self.vep_installer_path) + installer = which(self.vep_installer_path, required=True) installer(*self.installer_args()) # Manually install auxilary scripts if requested diff --git a/repos/spack_repo/builtin/packages/vep_cache/package.py b/repos/spack_repo/builtin/packages/vep_cache/package.py index 99121898413..3d4129cc6cd 100644 --- a/repos/spack_repo/builtin/packages/vep_cache/package.py +++ b/repos/spack_repo/builtin/packages/vep_cache/package.py @@ -50,7 +50,7 @@ class VepCache(Package): ) variant( "species", - values=vep_species.keys(), + values=tuple(vep_species.keys()), default="homo_sapiens", description="Which species to download the cache for (only one at a time)", ) @@ -143,7 +143,7 @@ def installer_args(self): def install_with_installer(self): vep = self.spec["vep"].package - installer = which(vep.vep_installer_path) + installer = which(vep.vep_installer_path, required=True) installer(*self.installer_args()) def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/verdict/package.py b/repos/spack_repo/builtin/packages/verdict/package.py index 7332928c024..b678fe0724a 100644 --- a/repos/spack_repo/builtin/packages/verdict/package.py +++ b/repos/spack_repo/builtin/packages/verdict/package.py @@ -18,9 +18,14 @@ class Verdict(CMakePackage): license("BSD-3-Clause", checked_by="rblake-llnl") + version("1.4.4", sha256="d12d1cd41c6568997df348a72cc2973a662fae1b3634a068ea2201b5f7383186") + version("1.4.3", sha256="b5f39c9e8e1fdf700f71442075d24942d6e947e15f2f2c9c9ebd000634c710b9") version("1.4.2", sha256="225c8c5318f4b02e7215cefa61b5dc3f99e05147ad3fefe6ee5a3ee5b828964b") version("1.4.1", sha256="26fa583265cb2ced2e9b30ed26260f6c9f89c3296221d96ccd5e7bfeec219de7") + variant("pic", default=False, description="Build position independent code") + variant("shared", default=False, description="Build shared libraries") + variant("doc", default=False, description="install documentation with library") variant( "mangle", @@ -35,6 +40,8 @@ class Verdict(CMakePackage): def cmake_args(self): args = [ + self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), self.define_from_variant("VERDICT_BUILD_DOCS", "doc"), self.define_from_variant("VERDICT_MANGLE", "mangle"), self.define_from_variant("VERDICT_ENABLE_TESTING", "test"), diff --git a/repos/spack_repo/builtin/packages/verible/package.py b/repos/spack_repo/builtin/packages/verible/package.py index 2eb69b43d5c..b66f954707c 100644 --- a/repos/spack_repo/builtin/packages/verible/package.py +++ b/repos/spack_repo/builtin/packages/verible/package.py @@ -37,6 +37,26 @@ class Verible(Package): version("master", branch="master") + version( + "0.0.4053", + sha256="2bc19218bae1f99e1f21f2a88dc8c85311b4117c2dfc2fe118a4744d04d56b1d", + url="https://github.com/chipsalliance/verible/archive/refs/tags/v0.0-4053-g89d4d98a.tar.gz", + ) + version( + "0.0.4051", + sha256="001dd2cfe434d18e4229f43abc3988cbefd0804cdc8574f342b4ddc46dd510cb", + url="https://github.com/chipsalliance/verible/archive/refs/tags/v0.0-4051-g9fdb4057.tar.gz", + ) + version( + "0.0.4023", + sha256="01235dc9f771bcc4996d18b89bb5f1f9f478d5be3a1a3ca7efc1406e87dad2ed", + url="https://github.com/chipsalliance/verible/archive/refs/tags/v0.0-4023-gc1271a00.tar.gz", + ) + version( + "0.0.4013", + sha256="703766302083af76eeb3e545683017643ff24e4184e3195296623992eb55e4b8", + url="https://github.com/chipsalliance/verible/archive/refs/tags/v0.0-4013-gba3dc371.tar.gz", + ) version( "0.0.3999", sha256="0b282233b91fc6884708f76232dcc3b38d47a14c783c5a0b8035bb23bcb8dbc7", @@ -118,7 +138,8 @@ class Verible(Package): url="https://github.com/chipsalliance/verible/archive/refs/tags/v0.0-3428-gcfcbb82b.tar.gz", ) - depends_on("cxx", type="build") # generated + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("flex", type="build") depends_on("bison", type="build") @@ -136,6 +157,6 @@ def install(self, spec, prefix): def install(self, spec, prefix): """Install method for versions 0.0.3841 and newer.""" mkdirp(prefix.bin) - bash = which("bash") + bash = which("bash", required=True) bazel("build", "-c", "opt", ":install-binaries") bash(".github/bin/simple-install.sh", prefix.bin) diff --git a/repos/spack_repo/builtin/packages/verilator/package.py b/repos/spack_repo/builtin/packages/verilator/package.py index 9cf01958ed7..a50015af73d 100644 --- a/repos/spack_repo/builtin/packages/verilator/package.py +++ b/repos/spack_repo/builtin/packages/verilator/package.py @@ -43,6 +43,12 @@ class Verilator(AutotoolsPackage): version("master", branch="master") + version("5.048", sha256="02d934b3f972c6d9b792350634d81eadfc9e61f347e3f3bdcaad40960b9fcb53") + version("5.046", sha256="002bc6d92b203eb8b4612e1d198d8108517d4ec9859e131ef328015352fe6d0c") + version("5.044", sha256="ded2a4a96e3b836ddc9fd5d01127999d981adee4d19133ff819b7129897d801a") + version("5.042", sha256="bec14f17de724851b110b698f3bd25e22effaaced7265b26d2bc13075dbfb4bf") + version("5.040", sha256="56c7c46314adfad06dd093b77823bfd9b49ebef72342549f790718199c3e8223") + version("5.038", sha256="f8c03105224fa034095ba6c8a06443f61f6f59e1d72f76b718f89060e905a0d4") version("5.036", sha256="4199964882d56cf6a19ce80c6a297ebe3b0c35ea81106cd4f722342594337c47") version("5.034", sha256="002da98e316ca6eee40407f5deb7d7c43a0788847d39c90d4d31ddbbc03020e8") version("5.032", sha256="5a262564b10be8bdb31ff4fb67d77bcf5f52fc1b4e6c88d5ca3264fb481f1e41") @@ -79,7 +85,6 @@ class Verilator(AutotoolsPackage): depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated depends_on("autoconf", type="build") depends_on("automake", type="build") diff --git a/repos/spack_repo/builtin/packages/verrou/package.py b/repos/spack_repo/builtin/packages/verrou/package.py index 3a37f724774..98fee30f6ee 100644 --- a/repos/spack_repo/builtin/packages/verrou/package.py +++ b/repos/spack_repo/builtin/packages/verrou/package.py @@ -90,9 +90,9 @@ def patch(self): # Once this is done, we can patch valgrind if self.spec.satisfies("@:2.0"): - which("patch")("-p0", "--input=verrou/valgrind.diff") + which("patch", required=True)("-p0", "--input=verrou/valgrind.diff") else: - which("patch")("-p1", "--input=verrou/valgrind.diff") + which("patch", required=True)("-p1", "--input=verrou/valgrind.diff") # Autogenerated perl path may be too long, need to fix this here # because these files are used during the build. @@ -101,7 +101,7 @@ def patch(self): def autoreconf(self, spec, prefix): # Needed because we patched valgrind - which("bash")("autogen.sh") + which("bash", required=True)("autogen.sh") def configure_args(self): spec = self.spec diff --git a/repos/spack_repo/builtin/packages/vgm/package.py b/repos/spack_repo/builtin/packages/vgm/package.py index c63dc017ce6..e095fe8bdd3 100644 --- a/repos/spack_repo/builtin/packages/vgm/package.py +++ b/repos/spack_repo/builtin/packages/vgm/package.py @@ -22,6 +22,9 @@ class Vgm(CMakePackage): license("GPL-3.0-or-later") version("master", branch="master") + version("5-3-1", sha256="485903ad98ae0032d4acfd73934bf46d8fb665146b664a40b6f7cfd9f73386a6") + version("5-3", sha256="fe46cb40e498f6f51eb8e9c7092b3eba0a17d6431fb2ed488063131e94758766") + version("5-2", sha256="0abdef5484b5b9cc845337bc434636ca8691b129b04c7f64350047fe7f6bbc94") version("5-0", sha256="ab929df1aa9b0cda40451f5a98982c3328901865b33e30207ee9b9fe14331344") version("4-8", sha256="4fcd607b4f100fc00a65fec7a5803575daf9d4919d1808bbd6a30be263c001dd") version("4-7", sha256="a5f5588db457dc3e6562d1f7da1707960304560fbb0a261559fa3f112a476aea") @@ -34,6 +37,7 @@ class Vgm(CMakePackage): version("4-00", sha256="c24de76f919dca7c92b3c9fce7a39142c6e61fd39f691d2e4df15fe413b5190d") version("3-06", sha256="41948869f2e4dcfa31f4bad42b938c25dd174660c427feb2f9effa9af5e59c7d") + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("cmake@3.8:", type="build") diff --git a/repos/spack_repo/builtin/packages/vim/package.py b/repos/spack_repo/builtin/packages/vim/package.py index 403400c1814..8bd2869114d 100644 --- a/repos/spack_repo/builtin/packages/vim/package.py +++ b/repos/spack_repo/builtin/packages/vim/package.py @@ -17,20 +17,19 @@ class Vim(AutotoolsPackage): """ homepage = "https://www.vim.org" - url = "https://github.com/vim/vim/archive/v8.1.0338.tar.gz" + url = "https://github.com/vim/vim/archive/v9.1.2103.tar.gz" + git = "https://github.com/vim/vim.git" maintainers("sethrj") license("Vim") + version("master", branch="master") + version("9.2.0000", sha256="875875fb5988af3db0726bef9b048a559a9563aa0ecca8240e82057e8e5941c3") + version("9.1.2103", sha256="b0fb638adc1ee6e28c53ce734dc5a73bbdda044658df1257be790c50d6ff2749") version("9.1.1194", sha256="4575b9ae81cca6a304f165d16ea3c65f4864390001ed5d7bf000e55417153f30") version("9.1.0437", sha256="7024fbf8d0e8eec2eae21d279d487b60c58dc4ba3d42146388dc3743506d1fe6") version("9.0.0045", sha256="594a31e96e3eda07a358db305de939ca749693b4684de9e027bfa70311b1994d") - version( - "9.0.0000", - sha256="1b3cd3732eb7039cf58a9321de26ab1a12d81c2f6760eb03c5d7b60d548f4587", - deprecated=True, - ) version("8.2.2541", sha256="2699dfe87b524169e7390f0b383c406cb77a9fde7431665d3b9b80964d8d5daf") version("8.2.1201", sha256="39032fe866f44724b104468038dc9ac4ff2c00a4b18c9a1e2c27064ab1f1143d") version("8.2.0752", sha256="d616945810dac5a1fab2f23b003d22bdecd34861b31f208d5d0012a609821c0f") @@ -58,12 +57,10 @@ class Vim(AutotoolsPackage): for _f in _features[1:]: conflicts("+gui", when="features=" + _f, msg="+gui requires features=huge") - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - + depends_on("c", type="build") + depends_on("cxx", type="build") depends_on("findutils", type="build") depends_on("ncurses", when="@7.4:") - depends_on("cscope", when="+cscope", type="run") depends_on("lua", when="+lua") depends_on("perl", when="+perl") @@ -81,12 +78,17 @@ class Vim(AutotoolsPackage): def configure_args(self): spec = self.spec - args = ["--enable-fail-if-missing"] + args = [ + "--enable-fail-if-missing", + "--without-wayland", + "--disable-canberra", + "--disable-libsodium", + ] def yes_or_no(variant): return "yes" if spec.variants[variant].value else "no" - if "+termlib" in spec["ncurses"]: + if spec.satisfies("%ncurses +termlib"): args.append("--with-tlib=tinfow") else: args.append("--with-tlib=ncursesw") @@ -94,12 +96,8 @@ def yes_or_no(variant): args.append("--with-features=" + spec.variants["features"].value) if "+python" in spec: - if spec["python"].version >= Version("3"): - args.append("--enable-python3interp=dynamic") - args.append("--enable-pythoninterp=no") - else: - args.append("--enable-python3interp=no") - args.append("--enable-pythoninterp=dynamic") + args.append("--enable-python3interp=dynamic") + args.append("--enable-pythoninterp=no") else: args.append("--enable-python3interp=no") diff --git a/repos/spack_repo/builtin/packages/virtuoso/package.py b/repos/spack_repo/builtin/packages/virtuoso/package.py deleted file mode 100644 index 11d417d17ef..00000000000 --- a/repos/spack_repo/builtin/packages/virtuoso/package.py +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - - -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage - -from spack.package import * - - -class Virtuoso(AutotoolsPackage): - """Virtuoso is a high-performance and scalable Multi-Model RDBMS, - Data Integration Middleware, Linked Data Deployment, and HTTP - Application Server Platform""" - - homepage = "https://github.com/openlink/virtuoso-opensource" - git = "https://github.com/openlink/virtuoso-opensource.git" - - version("7.2.5.1-dev", commit="3ff1d4b3de3977337baf909c264968b9f70b7d2c") - - variant("dbpedia-vad", default=False, description="DBpedia vad package") - variant("demo-vad", default=False, description="Demo vad package") - variant("fct-vad", default=True, description="Facet Browser vad package") - variant("ods-vad", default=True, description="ODS vad package") - variant("sparqldemo-vad", default=False, description="Sparql Demo vad package") - variant("tutorial-vad", default=False, description="Tutorial vad package") - variant("isparql-vad", default=True, description="iSPARQL vad package") - variant("rdfmappers-vad", default=True, description="RDF Mappers vad package") - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - depends_on("autoconf", type="build") - depends_on("automake", type="build") - depends_on("libtool", type="build") - depends_on("m4", type="build") - - depends_on("bison", type="build") - depends_on("flex", type="build") - depends_on("gperf") - depends_on("readline") - depends_on("openssl@0.9.8:1.1") - - def autoreconf(self, spec, prefix): - bash = which("bash") - bash("./autogen.sh") - - def configure_args(self): - readlinep = self.spec["readline"].prefix.lib - args = [ - "--with-layout=opt", - "--program-transform-name=s/isql/isql-v/", - "--with-readline={0}".format(readlinep), - ] - args.extend(self.enable_or_disable("dbpedia-vad")) - args.extend(self.enable_or_disable("demo-vad")) - args.extend(self.enable_or_disable("fct-vad")) - args.extend(self.enable_or_disable("ods-vad")) - args.extend(self.enable_or_disable("sparqldemo-vad")) - args.extend(self.enable_or_disable("tutorial-vad")) - args.extend(self.enable_or_disable("isparql-vad")) - args.extend(self.enable_or_disable("rdfmappers-vad")) - return args diff --git a/repos/spack_repo/builtin/packages/visit/package.py b/repos/spack_repo/builtin/packages/visit/package.py index 272da422480..3b379da6f1e 100644 --- a/repos/spack_repo/builtin/packages/visit/package.py +++ b/repos/spack_repo/builtin/packages/visit/package.py @@ -62,19 +62,9 @@ class Visit(CMakePackage): version("develop", branch="develop") version("3.4.1", sha256="942108cb294f4c9584a1628225b0be39c114c7e9e01805fb335d9c0b507689f5") - version( - "3.4.0", - sha256="6cfb8b190045439e39fa6014dfa797de189bd40bbb9aa6facf711ebd908229e3", - deprecated=True, - ) version("3.3.3", sha256="cc67abb7585e23b51ad576e797df4108641ae6c8c5e80e5359a279c729769187") version("3.3.2", sha256="0ae7c38287598e8d7d238cf284ea8be1096dcf13f58a7e9e444a28a32c085b56") version("3.3.1", sha256="2e969d3146b559fb833e4cdfaefa72f303d8ad368ef325f68506003f7bc317b9") - version( - "3.3.0", - sha256="1a7485146133ac5f1e330d9029697750046ef8d9e9de23a6c2a3685c1c5f4aac", - deprecated=True, - ) version("3.2.2", sha256="d19ac24c622a3bc0a71bc9cd6e5c9860e43f39e3279672129278b6ebce8d0ead") version("3.2.1", sha256="779d59564c63f31fcbfeff24b14ddd6ac941b3bb7d671d31765a770d193f02e8") version("3.1.1", sha256="0b60ac52fd00aff3cf212a310e36e32e13ae3ca0ddd1ea3f54f75e4d9b6c6cf0") @@ -121,6 +111,13 @@ class Visit(CMakePackage): # Fix missing cmath include in QvisStripChart.C patch("20270-missing-cmath-QvisStripChart.patch", when="@:3.4.2") + # Support adios2>=2.11.0 + patch( + "https://github.com/visit-dav/visit/commit/61d6166c546ebf637c743519f25c627cf121a7b5.patch?full_index=1", + sha256="3e4bda54793fc264b519760b334b04186ec2f35b677751857226c28728c6cd55", + when="@3.4: +adios2", + ) + conflicts( "+gui", when="^[virtuals=gl] osmesa", msg="GUI cannot be activated with OSMesa front-end" ) @@ -135,7 +132,7 @@ class Visit(CMakePackage): conflicts("mpi", when="~mpi") # VTK flavors - depends_on("vtk +opengl2") + depends_on("vtk +opengl2 +versioned_install") depends_on("vtk@8.1:8", when="@:3.3") depends_on("vtk@9.2.6", when="@3.4:") depends_on("vtk +qt", when="+gui") @@ -194,9 +191,14 @@ class Visit(CMakePackage): depends_on("conduit~mpi", when="+conduit~mpi") depends_on("mfem@4.4:", when="+mfem") + depends_on("mfem@:4.8", when="@:3.4.1+mfem") # mfem v4.9 requires c++17 depends_on("mfem+shared+exceptions+fms+conduit", when="+mfem") depends_on("libfms@0.2:", when="+mfem") + # The checks in the build system are not consistent + requires("+mfem", when="+conduit") + requires("+conduit", when="+mfem") + with when("+adios2"): depends_on("adios2") # adios 2.8 removed adios2_taustubs (https://github.com/visit-dav/visit/issues/19209) @@ -420,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/visit_cgns/package.py b/repos/spack_repo/builtin/packages/visit_cgns/package.py index b91386c0fe7..32a1e345925 100644 --- a/repos/spack_repo/builtin/packages/visit_cgns/package.py +++ b/repos/spack_repo/builtin/packages/visit_cgns/package.py @@ -75,7 +75,7 @@ def run_xml2cmake(self): # Regenerate the public cmake files if os.path.exists("CMakeLists.txt"): os.unlink("CMakeLists.txt") - which("xml2cmake")(*args) + which("xml2cmake", required=True)(*args) # spack extension activate : alter VISIT_PLUGIN_DIR ; # xml2cmake should have set it to visit prefix but it can # happen the directory is an alias. diff --git a/repos/spack_repo/builtin/packages/visit_ffp/package.py b/repos/spack_repo/builtin/packages/visit_ffp/package.py index e947ade0832..6665cc7e1d9 100644 --- a/repos/spack_repo/builtin/packages/visit_ffp/package.py +++ b/repos/spack_repo/builtin/packages/visit_ffp/package.py @@ -68,7 +68,7 @@ def run_xml2cmake(self): # Regenerate the public cmake files if os.path.exists("CMakeLists.txt"): os.unlink("CMakeLists.txt") - which("xml2cmake")(*args) + which("xml2cmake", required=True)(*args) # spack extension activate : alter VISIT_PLUGIN_DIR ; # xml2cmake should have set it to visit prefix but it can # happen the directory is an alias. diff --git a/repos/spack_repo/builtin/packages/visit_mfem/package.py b/repos/spack_repo/builtin/packages/visit_mfem/package.py index 5d79ac0eaeb..383e286b31e 100644 --- a/repos/spack_repo/builtin/packages/visit_mfem/package.py +++ b/repos/spack_repo/builtin/packages/visit_mfem/package.py @@ -73,7 +73,7 @@ def run_xml2cmake(self): # Regenerate the public cmake files if os.path.exists("CMakeLists.txt"): os.unlink("CMakeLists.txt") - which("xml2cmake")(*args) + which("xml2cmake", required=True)(*args) # spack extension activate : alter VISIT_PLUGIN_DIR ; # xml2cmake should have set it to visit prefix but it can # happen the directory is an alias. diff --git a/repos/spack_repo/builtin/packages/visit_silo/package.py b/repos/spack_repo/builtin/packages/visit_silo/package.py index f44a93de837..9ae889b07f5 100644 --- a/repos/spack_repo/builtin/packages/visit_silo/package.py +++ b/repos/spack_repo/builtin/packages/visit_silo/package.py @@ -78,7 +78,7 @@ def run_xml2cmake(self): # Regenerate the public cmake files if os.path.exists("CMakeLists.txt"): os.unlink("CMakeLists.txt") - which("xml2cmake")(*args) + which("xml2cmake", required=True)(*args) # spack extension activate : alter VISIT_PLUGIN_DIR ; # xml2cmake should have set it to visit prefix but it can # happen the directory is an alias. diff --git a/repos/spack_repo/builtin/packages/visit_unv/package.py b/repos/spack_repo/builtin/packages/visit_unv/package.py index 3372c627237..a1eb4b7fce1 100644 --- a/repos/spack_repo/builtin/packages/visit_unv/package.py +++ b/repos/spack_repo/builtin/packages/visit_unv/package.py @@ -70,7 +70,7 @@ def run_xml2cmake(self): # Regenerate the public cmake files if os.path.exists("CMakeLists.txt"): os.unlink("CMakeLists.txt") - which("xml2cmake")(*args) + which("xml2cmake", required=True)(*args) # spack extension activate : alter VISIT_PLUGIN_DIR ; # xml2cmake should have set it to visit prefix but it can # happen the directory is an alias. diff --git a/repos/spack_repo/builtin/packages/viskores/device-lib-private-vk11.patch b/repos/spack_repo/builtin/packages/viskores/device-lib-private-vk11.patch new file mode 100644 index 00000000000..523ae1e5898 --- /dev/null +++ b/repos/spack_repo/builtin/packages/viskores/device-lib-private-vk11.patch @@ -0,0 +1,907 @@ +diff --git a/CMake/ViskoresWrappers.cmake b/CMake/ViskoresWrappers.cmake +index e24068914..e5c53ea9e 100644 +--- a/CMake/ViskoresWrappers.cmake ++++ b/CMake/ViskoresWrappers.cmake +@@ -438,17 +438,31 @@ function(viskores_add_target_information uses_viskores_target) + endif() + endforeach() + ++ foreach(target IN LISTS targets) ++ target_compile_definitions(${target} PRIVATE VISKORES_IS_VISKORES_TARGET) ++ endforeach() ++ + if(Viskores_TI_DROP_UNUSED_SYMBOLS) + foreach(target IN LISTS targets) + viskores_add_drop_unused_function_flags(${target}) + endforeach() + endif() + +- if(TARGET viskores_cuda OR TARGET viskores::cuda OR TARGET viskores_kokkos_cuda OR TARGET viskores::kokkos_cuda) +- set_source_files_properties(${Viskores_TI_DEVICE_SOURCES} PROPERTIES LANGUAGE "CUDA") +- elseif(TARGET viskores_kokkos_hip OR TARGET viskores::kokkos_hip) +- set_source_files_properties(${Viskores_TI_DEVICE_SOURCES} PROPERTIES LANGUAGE "HIP") +- kokkos_compilation(SOURCE ${Viskores_TI_DEVICE_SOURCES}) ++ if(Viskores_TI_DEVICE_SOURCES) ++ foreach(target IN LISTS targets) ++ target_link_libraries(${target} ++ PRIVATE $ $) ++ endforeach() ++ ++ set_property(SOURCE ${Viskores_TI_DEVICE_SOURCES} ++ APPEND PROPERTY COMPILE_DEFINITIONS VISKORES_IS_DEVICE_SOURCE) ++ ++ if(TARGET viskores_cuda OR TARGET viskores::cuda OR TARGET viskores_kokkos_cuda OR TARGET viskores::kokkos_cuda) ++ set_source_files_properties(${Viskores_TI_DEVICE_SOURCES} PROPERTIES LANGUAGE "CUDA") ++ elseif(TARGET viskores_kokkos_hip OR TARGET viskores::kokkos_hip) ++ set_source_files_properties(${Viskores_TI_DEVICE_SOURCES} PROPERTIES LANGUAGE "HIP") ++ kokkos_compilation(SOURCE ${Viskores_TI_DEVICE_SOURCES}) ++ endif() + endif() + endfunction() + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6f0838151..52cb9f274 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -420,6 +420,27 @@ if (TARGET viskoresdiympi_nompi) + set(lib_args "${lib_args} \\ + -lviskoresdiympi_nompi") + endif() ++# Also add depended device libraries ++macro(_viskores_add_imported_lib_to_list target_name) ++ if(TARGET ${target_name}) ++ foreach(prop in IMPORTED_LOCATION_RELEASE IMPORTED_LOCATION IMPORTED_LOCATION_DEBUG) ++ get_target_property(libfile ${target_name} ${prop}) ++ if(libfile) ++ set(lib_args "${lib_args} \\\n ${libfile}") ++ return() ++ endif() ++ endforeach() ++ endif() ++endmacro() ++_viskores_add_imported_lib_to_list(Kokkos::kokkos) ++_viskores_add_imported_lib_to_list(TBB::tbb) ++_viskores_add_imported_lib_to_list(OpenMP::OpenMP_CXX) ++if(Viskores_ENABLE_CUDA OR TARGET viskores_kokkos_cuda) ++ find_package(CUDAToolkit) ++ _viskores_add_imported_lib_to_list(CUDA::cudart) ++ _viskores_add_imported_lib_to_list(CUDA::cudart_static) ++ _viskores_add_imported_lib_to_list(CUDA::cuda_driver) ++endif() + + configure_file(${Viskores_SOURCE_DIR}/config/viskores_config.mk.in + ${Viskores_BINARY_DIR}/config/viskores_config.mk @ONLY) +diff --git a/docs/Modules.md b/docs/Modules.md +index 1262752e5..6361dea38 100644 +--- a/docs/Modules.md ++++ b/docs/Modules.md +@@ -119,9 +119,10 @@ GROUPS + FiltersCommon + Filters + DEPENDS +- viskores_worklet + viskores_filter_core + viskores_filter_clean_grid ++PRIVATE_DEPENDS ++ viskores_worklet + TEST_DEPENDS + viskores_filter_clean_grid + viskores_filter_entity_extraction +diff --git a/docs/changelog/device-lib-private.md b/docs/changelog/device-lib-private.md +new file mode 100644 +index 000000000..ad2bf5956 +--- /dev/null ++++ b/docs/changelog/device-lib-private.md +@@ -0,0 +1,7 @@ ++## Made the device library private ++ ++Viskores no longer makes the device libraries public on its exported ++`viskores::cont` target. Previously, the device libraries were linked to ++`viskores::cont` as `PUBLIC`, which means that pretty much anything that used ++Viskores also brought in any compiler flags for the device. This sometimes ++forced downstream code to use a device compiler when it did not need to. +diff --git a/docs/users-guide/viskores.module b/docs/users-guide/viskores.module +index 348d9fc24..c794c7baa 100644 +--- a/docs/users-guide/viskores.module ++++ b/docs/users-guide/viskores.module +@@ -13,3 +13,4 @@ TEST_DEPENDS + viskores_filter_geometry_refinement + viskores_filter_mesh_info + viskores_rendering ++ viskores_worklet +diff --git a/examples/contour_tree_augmented/CMakeLists.txt b/examples/contour_tree_augmented/CMakeLists.txt +index 70315d3cc..192586f9f 100644 +--- a/examples/contour_tree_augmented/CMakeLists.txt ++++ b/examples/contour_tree_augmented/CMakeLists.txt +@@ -72,7 +72,7 @@ endif() + # Serial + #################################### + add_executable(ContourTree_Augmented ContourTreeApp.cxx) +-target_link_libraries(ContourTree_Augmented viskores::filter_scalar_topology viskores::io) ++target_link_libraries(ContourTree_Augmented PUBLIC viskores::filter_scalar_topology viskores::io viskores::worklet) + viskores_add_target_information(ContourTree_Augmented + DROP_UNUSED_SYMBOLS MODIFY_CUDA_FLAGS + DEVICE_SOURCES ContourTreeApp.cxx) +@@ -92,7 +92,7 @@ endif() + #################################### + if (Viskores_ENABLE_MPI) + add_executable(ContourTree_Augmented_MPI ContourTreeApp.cxx) +- target_link_libraries(ContourTree_Augmented_MPI viskores::filter_scalar_topology viskores::io MPI::MPI_CXX) ++ target_link_libraries(ContourTree_Augmented_MPI viskores::filter_scalar_topology viskores::io viskores::worklet MPI::MPI_CXX) + viskores_add_target_information(ContourTree_Augmented_MPI + MODIFY_CUDA_FLAGS + DEVICE_SOURCES ContourTreeApp.cxx) +diff --git a/examples/cosmotools/CMakeLists.txt b/examples/cosmotools/CMakeLists.txt +index 1885b8876..969a50914 100644 +--- a/examples/cosmotools/CMakeLists.txt ++++ b/examples/cosmotools/CMakeLists.txt +@@ -23,8 +23,8 @@ find_package(Viskores REQUIRED QUIET) + + add_executable(CosmoCenterFinder CosmoCenterFinder.cxx) + add_executable(CosmoHaloFinder CosmoHaloFinder.cxx) +-target_link_libraries(CosmoCenterFinder PRIVATE viskores::filter_core) +-target_link_libraries(CosmoHaloFinder PRIVATE viskores::filter_core) ++target_link_libraries(CosmoCenterFinder PRIVATE viskores::filter_core viskores::worklet) ++target_link_libraries(CosmoHaloFinder PRIVATE viskores::filter_core viskores::worklet) + + viskores_add_target_information(CosmoCenterFinder CosmoHaloFinder + DROP_UNUSED_SYMBOLS +diff --git a/examples/hello_worklet/CMakeLists.txt b/examples/hello_worklet/CMakeLists.txt +index 37a213823..e93782a47 100644 +--- a/examples/hello_worklet/CMakeLists.txt ++++ b/examples/hello_worklet/CMakeLists.txt +@@ -23,7 +23,8 @@ find_package(Viskores REQUIRED QUIET) + + if(TARGET viskores::io) + add_executable(HelloWorklet HelloWorklet.cxx) +- target_link_libraries(HelloWorklet PRIVATE viskores::filter_core viskores::io) ++ target_link_libraries(HelloWorklet ++ PRIVATE viskores::filter_core viskores::worklet viskores::io) + + viskores_add_target_information(HelloWorklet + DROP_UNUSED_SYMBOLS +diff --git a/examples/logistic_map/CMakeLists.txt b/examples/logistic_map/CMakeLists.txt +index fb33c5c7c..c9f2861a2 100644 +--- a/examples/logistic_map/CMakeLists.txt ++++ b/examples/logistic_map/CMakeLists.txt +@@ -22,7 +22,7 @@ find_package(Viskores REQUIRED QUIET) + + if(TARGET viskores::io) + add_executable(LogisticMap LogisticMap.cxx) +- target_link_libraries(LogisticMap PRIVATE viskores::io) ++ target_link_libraries(LogisticMap PRIVATE viskores::io viskores::worklet) + + viskores_add_target_information(LogisticMap + DROP_UNUSED_SYMBOLS +diff --git a/examples/multi_backend/CMakeLists.txt b/examples/multi_backend/CMakeLists.txt +index 093be9076..e7600b7ff 100644 +--- a/examples/multi_backend/CMakeLists.txt ++++ b/examples/multi_backend/CMakeLists.txt +@@ -36,7 +36,7 @@ set(srcs + + if(TARGET viskores::filter_vector_analysis) + add_executable(MultiBackend ${srcs} ${headers}) +- target_link_libraries(MultiBackend PRIVATE viskores::filter_vector_analysis Threads::Threads) ++ target_link_libraries(MultiBackend PRIVATE viskores::filter_vector_analysis viskores::worklet Threads::Threads) + viskores_add_target_information(MultiBackend + DROP_UNUSED_SYMBOLS + MODIFY_CUDA_FLAGS +diff --git a/examples/polyline_archimedean_helix/CMakeLists.txt b/examples/polyline_archimedean_helix/CMakeLists.txt +index 6005cd980..62de07727 100644 +--- a/examples/polyline_archimedean_helix/CMakeLists.txt ++++ b/examples/polyline_archimedean_helix/CMakeLists.txt +@@ -20,16 +20,7 @@ project(PolyLineArchimedeanHelix CXX) + + find_package(Viskores REQUIRED QUIET) + +-if (TARGET viskores::rendering) +- # TODO: This example should be changed from using the Tube worklet to using +- # the Tube filter (in the viskores::filter_geometry_refinement library). Then +- # compiling it would no longer require a device compiler and the example +- # would generally be simpler. ++if (TARGET viskores::rendering AND TARGET viskores::filter_geometry_refinement) + add_executable(PolyLineArchimedeanHelix PolyLineArchimedeanHelix.cxx) +- target_link_libraries(PolyLineArchimedeanHelix PRIVATE viskores::rendering) +- viskores_add_target_information(PolyLineArchimedeanHelix +- DROP_UNUSED_SYMBOLS +- MODIFY_CUDA_FLAGS +- DEVICE_SOURCES PolyLineArchimedeanHelix.cxx +- ) ++ target_link_libraries(PolyLineArchimedeanHelix PRIVATE viskores::rendering viskores::filter_geometry_refinement) + endif() +diff --git a/examples/polyline_archimedean_helix/PolyLineArchimedeanHelix.cxx b/examples/polyline_archimedean_helix/PolyLineArchimedeanHelix.cxx +index 86d75d230..1893e4395 100644 +--- a/examples/polyline_archimedean_helix/PolyLineArchimedeanHelix.cxx ++++ b/examples/polyline_archimedean_helix/PolyLineArchimedeanHelix.cxx +@@ -18,7 +18,7 @@ + + #include + #include +-#include ++#include + #include + + #include +@@ -66,25 +66,11 @@ void TubeThatSpiral(viskores::FloatDefault radius, + + viskores::cont::DataSet ds = dsb.Create(); + +- viskores::worklet::Tube tubeWorklet( +- /*capEnds = */ true, +- /* how smooth the cylinder is; infinitely smooth as n->infty */ numSides, +- radius); +- +- // You added lines, but you need to extend it to a tube. +- // This generates a new pointset, and new cell set. +- viskores::cont::ArrayHandle tubePoints; +- viskores::cont::CellSetSingleType<> tubeCells; +- tubeWorklet.Run(ds.GetCoordinateSystem() +- .GetData() +- .AsArrayHandle>(), +- ds.GetCellSet(), +- tubePoints, +- tubeCells); +- +- viskores::cont::DataSet tubeDataset; +- tubeDataset.AddCoordinateSystem(viskores::cont::CoordinateSystem("coords", tubePoints)); +- tubeDataset.SetCellSet(tubeCells); ++ viskores::filter::geometry_refinement::Tube tubeFilter; ++ tubeFilter.SetCapping(true); ++ tubeFilter.SetNumberOfSides(numSides); ++ tubeFilter.SetRadius(radius); ++ viskores::cont::DataSet tubeDataset = tubeFilter.Execute(ds); + + viskores::Bounds coordsBounds = tubeDataset.GetCoordinateSystem().GetBounds(); + +@@ -110,7 +96,7 @@ void TubeThatSpiral(viskores::FloatDefault radius, + viskores::rendering::Color bg(0.2f, 0.2f, 0.2f, 1.0f); + + +- std::vector v(static_cast(tubePoints.GetNumberOfValues())); ++ std::vector v(static_cast(tubeDataset.GetNumberOfPoints())); + // The first value is a cap: + v[0] = 0; + for (viskores::Id i = 1; i < viskores::Id(v.size()); i += numSides) +diff --git a/examples/redistribute_points/CMakeLists.txt b/examples/redistribute_points/CMakeLists.txt +index 65a79b424..5b116cbc3 100644 +--- a/examples/redistribute_points/CMakeLists.txt ++++ b/examples/redistribute_points/CMakeLists.txt +@@ -23,7 +23,7 @@ find_package(Viskores REQUIRED QUIET) + + if(TARGET viskores::io AND TARGET viskores::filter_entity_extraction) + add_executable(RedistributePoints RedistributePoints.cxx RedistributePoints.h main.cxx) +- target_link_libraries(RedistributePoints PRIVATE viskores::io viskores::filter_entity_extraction) ++ target_link_libraries(RedistributePoints PRIVATE viskores::io viskores::filter_entity_extraction viskores::worklet) + viskores_add_target_information(RedistributePoints + DROP_UNUSED_SYMBOLS + MODIFY_CUDA_FLAGS +diff --git a/tutorial/CMakeLists.txt b/tutorial/CMakeLists.txt +index 6ed90c34b..e205aad9c 100644 +--- a/tutorial/CMakeLists.txt ++++ b/tutorial/CMakeLists.txt +@@ -51,19 +51,19 @@ if (Viskores_ENABLE_TUTORIALS) + endif() + + add_executable(io io.cxx) +-target_link_libraries(io viskores::io) ++target_link_libraries(io PRIVATE viskores::io) + + add_executable(contour contour.cxx) +-target_link_libraries(contour viskores::filter_core viskores::filter_contour viskores::io) ++target_link_libraries(contour PRIVATE viskores::filter_core viskores::filter_contour viskores::io) + + add_executable(contour_two_fields contour_two_fields.cxx) +-target_link_libraries(contour_two_fields viskores::filter_core viskores::filter_contour viskores::io) ++target_link_libraries(contour_two_fields PRIVATE viskores::filter_core viskores::filter_contour viskores::io) + + add_executable(two_filters two_filters.cxx) +-target_link_libraries(two_filters viskores::filter_core viskores::filter_contour viskores::io) ++target_link_libraries(two_filters PRIVATE viskores::filter_core viskores::filter_contour viskores::io) + + add_executable(mag_grad mag_grad.cxx) +-target_link_libraries(mag_grad viskores::filter_core viskores::filter_vector_analysis viskores::io) ++target_link_libraries(mag_grad PRIVATE viskores::filter_core viskores::filter_vector_analysis viskores::io viskores::worklet) + # Because mag_grad.cxx creates a worklet with code that + # runs on a GPU, it needs additional information. + viskores_add_target_information(mag_grad +@@ -72,23 +72,23 @@ viskores_add_target_information(mag_grad + + if (Viskores_ENABLE_RENDERING) + add_executable(rendering rendering.cxx) +- target_link_libraries(rendering viskores::io viskores::rendering) ++ target_link_libraries(rendering PRIVATE viskores::io viskores::rendering) + endif () + + add_executable(error_handling error_handling.cxx) +-target_link_libraries(error_handling viskores::filter_core viskores::filter_contour viskores::io) ++target_link_libraries(error_handling PRIVATE viskores::filter_core viskores::filter_contour viskores::io) + + add_executable(logging logging.cxx) +-target_link_libraries(logging viskores::io) ++target_link_libraries(logging PRIVATE viskores::io) + + add_executable(point_to_cell point_to_cell.cxx) +-target_link_libraries(point_to_cell viskores::worklet viskores::filter_core viskores::io) ++target_link_libraries(point_to_cell PRIVATE viskores::worklet viskores::filter_core viskores::io) + viskores_add_target_information(point_to_cell + DROP_UNUSED_SYMBOLS MODIFY_CUDA_FLAGS + DEVICE_SOURCES point_to_cell.cxx) + + add_executable(extract_edges extract_edges.cxx) +-target_link_libraries(extract_edges viskores::cont viskores::filter_core viskores::filter_contour viskores::worklet viskores::io) ++target_link_libraries(extract_edges PRIVATE viskores::cont viskores::filter_core viskores::filter_contour viskores::worklet viskores::io) + viskores_add_target_information(extract_edges + DROP_UNUSED_SYMBOLS MODIFY_CUDA_FLAGS + DEVICE_SOURCES extract_edges.cxx) +diff --git a/viskores/cont/AtomicArray.h b/viskores/cont/AtomicArray.h +index 6a17d1d4c..6996a070a 100644 +--- a/viskores/cont/AtomicArray.h ++++ b/viskores/cont/AtomicArray.h +@@ -21,7 +21,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + +diff --git a/viskores/cont/CMakeLists.txt b/viskores/cont/CMakeLists.txt +index 76df7b491..babe63cb1 100644 +--- a/viskores/cont/CMakeLists.txt ++++ b/viskores/cont/CMakeLists.txt +@@ -307,19 +307,5 @@ target_sources(viskores_cont + add_subdirectory(internal) + add_subdirectory(arg) + +-set(backends ) +-if(TARGET viskores_tbb) +- list(APPEND backends viskores_tbb) +-endif() +-if(TARGET viskores_cuda) +- list(APPEND backends viskores_cuda) +-endif() +-if(TARGET viskores_openmp) +- list(APPEND backends viskores_openmp) +-endif() +-if(TARGET viskores_kokkos) +- list(APPEND backends viskores_kokkos) +-endif() +- +-target_link_libraries(viskores_cont PUBLIC viskores_compiler_flags ${backends}) ++target_link_libraries(viskores_cont PUBLIC viskores_compiler_flags) + target_link_libraries(viskores_cont PUBLIC Threads::Threads) +diff --git a/viskores/cont/DataSetBuilderRectilinear.h b/viskores/cont/DataSetBuilderRectilinear.h +index 82404469a..85f6be85d 100644 +--- a/viskores/cont/DataSetBuilderRectilinear.h ++++ b/viskores/cont/DataSetBuilderRectilinear.h +@@ -23,7 +23,6 @@ + #include + #include + #include +-#include + + namespace viskores + { +diff --git a/viskores/cont/DeviceAdapter.h b/viskores/cont/DeviceAdapter.h +index 077f37bcc..7c97b0983 100644 +--- a/viskores/cont/DeviceAdapter.h ++++ b/viskores/cont/DeviceAdapter.h +@@ -22,6 +22,15 @@ + // order in which the sub-files are loaded. (But the compile should still + // succeed if the order is changed.) Turn off formatting to keep the order. + ++#if defined(VISKORES_IS_VISKORES_TARGET) && !defined(VISKORES_NO_ERROR_ON_MIXED_CUDA_CXX_TAG) ++#ifndef VISKORES_IS_DEVICE_SOURCE ++#error Source file is including device code but not marked as a device source. ++#endif ++#ifndef VISKORES_DEVICE_LINKED ++#error Including device code without linking device libraries. ++#endif ++#endif ++ + // clang-format off + #include + #include +diff --git a/viskores/cont/Initialize.cxx b/viskores/cont/Initialize.cxx +index 12fef4352..074bdc54e 100644 +--- a/viskores/cont/Initialize.cxx ++++ b/viskores/cont/Initialize.cxx +@@ -216,12 +216,6 @@ InitializeResult Initialize(int& argc, char* argv[], InitializeOptions opts) + exit(1); + } + +- if (options[opt::OptionIndex::HELP]) +- { +- std::cerr << config.Usage; +- exit(0); +- } +- + // The RuntimeDeviceConfiguration must be completed before calling GetRuntimeDeviceTracker() + // for all the devices. This is because GetRuntimeDeviceTracker will construct a given + // device's DeviceAdapterRuntimeDetector to determine if it exists and this constructor may +@@ -234,6 +228,12 @@ InitializeResult Initialize(int& argc, char* argv[], InitializeOptions opts) + viskores::cont::DeviceAdapterTagAny{}, runtimeDeviceOptions, argc, argv); + } + ++ if (options[opt::OptionIndex::HELP]) ++ { ++ std::cerr << config.Usage; ++ exit(0); ++ } ++ + // Check for device on command line. + if (options[opt::OptionIndex::DEVICE]) + { +diff --git a/viskores/cont/cuda/testing/CMakeLists.txt b/viskores/cont/cuda/testing/CMakeLists.txt +index cb5c872db..a63a4e9b7 100644 +--- a/viskores/cont/cuda/testing/CMakeLists.txt ++++ b/viskores/cont/cuda/testing/CMakeLists.txt +@@ -24,4 +24,9 @@ set(unit_tests + UnitTestCudaRuntimeDeviceConfiguration.cu + ) + +-viskores_unit_tests(SOURCES ${unit_tests} LABEL "CUDA" LIBRARIES viskores_worklet BACKEND cuda) ++viskores_unit_tests( ++ LABEL "CUDA" ++ LIBRARIES viskores_worklet ++ BACKEND cuda ++ DEVICE_SOURCES ${unit_tests} ++ ) +diff --git a/viskores/cont/cuda/viskores.module b/viskores/cont/cuda/viskores.module +index 8b847cef2..c9a09716a 100644 +--- a/viskores/cont/cuda/viskores.module ++++ b/viskores/cont/cuda/viskores.module +@@ -4,6 +4,7 @@ GROUPS + Core + DEPENDS + viskores_cont ++ viskores_exec + TEST_DEPENDS + viskores_worklet + viskores_cuda +diff --git a/viskores/cont/kokkos/testing/CMakeLists.txt b/viskores/cont/kokkos/testing/CMakeLists.txt +index 38fc97ee8..a12b2b0fb 100644 +--- a/viskores/cont/kokkos/testing/CMakeLists.txt ++++ b/viskores/cont/kokkos/testing/CMakeLists.txt +@@ -21,7 +21,11 @@ set(unit_tests + UnitTestKokkosRuntimeDeviceConfiguration.cxx + ) + +-viskores_unit_tests(SOURCES ${unit_tests} LABEL "KOKKOS" LIBRARIES viskores_worklet BACKEND kokkos) ++viskores_unit_tests(DEVICE_SOURCES ${unit_tests} ++ LABEL "KOKKOS" ++ LIBRARIES viskores_worklet ++ BACKEND kokkos ++ ) + + if (TARGET viskores_kokkos_cuda) + set_source_files_properties(${unit_tests} PROPERTIES LANGUAGE CUDA) +diff --git a/viskores/cont/kokkos/viskores.module b/viskores/cont/kokkos/viskores.module +index b1a75e1a3..b25074bd0 100644 +--- a/viskores/cont/kokkos/viskores.module ++++ b/viskores/cont/kokkos/viskores.module +@@ -4,6 +4,7 @@ GROUPS + Core + DEPENDS + viskores_cont ++ viskores_exec + TEST_DEPENDS + viskores_worklet + viskores_kokkos +diff --git a/viskores/cont/openmp/testing/CMakeLists.txt b/viskores/cont/openmp/testing/CMakeLists.txt +index e07da5ea4..fb8f2f52b 100644 +--- a/viskores/cont/openmp/testing/CMakeLists.txt ++++ b/viskores/cont/openmp/testing/CMakeLists.txt +@@ -21,7 +21,7 @@ set(unit_tests + UnitTestOpenMPRuntimeDeviceConfiguration.cxx + ) + +-viskores_unit_tests(SOURCES ${unit_tests} ++viskores_unit_tests(DEVICE_SOURCES ${unit_tests} + LABEL "OPENMP" + DEFINES VISKORES_NO_ERROR_ON_MIXED_CUDA_CXX_TAG + LIBRARIES viskores_worklet +diff --git a/viskores/cont/openmp/viskores.module b/viskores/cont/openmp/viskores.module +index 5a6899e2c..e2beb6378 100644 +--- a/viskores/cont/openmp/viskores.module ++++ b/viskores/cont/openmp/viskores.module +@@ -4,6 +4,7 @@ GROUPS + Core + DEPENDS + viskores_cont ++ viskores_exec + TEST_DEPENDS + viskores_worklet + viskores_openmp +diff --git a/viskores/cont/serial/testing/CMakeLists.txt b/viskores/cont/serial/testing/CMakeLists.txt +index 946737026..3e1ea972c 100644 +--- a/viskores/cont/serial/testing/CMakeLists.txt ++++ b/viskores/cont/serial/testing/CMakeLists.txt +@@ -20,7 +20,7 @@ set(unit_tests + UnitTestSerialDeviceAdapter.cxx + ) + +-viskores_unit_tests(SOURCES ${unit_tests} ++viskores_unit_tests(DEVICE_SOURCES ${unit_tests} + LABEL "SERIAL" + DEFINES VISKORES_NO_ERROR_ON_MIXED_CUDA_CXX_TAG + LIBRARIES viskores_worklet +diff --git a/viskores/cont/tbb/testing/CMakeLists.txt b/viskores/cont/tbb/testing/CMakeLists.txt +index 670aa2b78..9b4753858 100644 +--- a/viskores/cont/tbb/testing/CMakeLists.txt ++++ b/viskores/cont/tbb/testing/CMakeLists.txt +@@ -21,7 +21,7 @@ set(unit_tests + UnitTestTBBRuntimeDeviceConfiguration.cxx + ) + +-viskores_unit_tests(SOURCES ${unit_tests} ++viskores_unit_tests(DEVICE_SOURCES ${unit_tests} + LABEL "TBB" + DEFINES VISKORES_NO_ERROR_ON_MIXED_CUDA_CXX_TAG + LIBRARIES viskores_worklet +diff --git a/viskores/cont/tbb/viskores.module b/viskores/cont/tbb/viskores.module +index 7d3fcf695..3e745b830 100644 +--- a/viskores/cont/tbb/viskores.module ++++ b/viskores/cont/tbb/viskores.module +@@ -4,6 +4,7 @@ GROUPS + Core + DEPENDS + viskores_cont ++ viskores_exec + TEST_DEPENDS + viskores_worklet + viskores_tbb +diff --git a/viskores/cont/testing/CMakeLists.txt b/viskores/cont/testing/CMakeLists.txt +index f1e70774d..ceab109a7 100644 +--- a/viskores/cont/testing/CMakeLists.txt ++++ b/viskores/cont/testing/CMakeLists.txt +@@ -40,7 +40,6 @@ set(unit_tests + UnitTestArraySetValues.cxx + UnitTestBuffer.cxx + UnitTestComputeRange.cxx +- UnitTestControlSignatureTag.cxx + UnitTestContTesting.cxx + UnitTestDataSetBuilderCurvilinear.cxx + UnitTestDataSetBuilderExplicit.cxx +@@ -50,7 +49,6 @@ set(unit_tests + UnitTestDataSetExplicit.cxx + UnitTestDataSetRectilinear.cxx + UnitTestDataSetUniform.cxx +- UnitTestDeviceAdapterAlgorithmGeneral.cxx + UnitTestDeviceSelectOnThreads.cxx + UnitTestError.cxx + UnitTestFieldRangeCompute.cxx +@@ -72,7 +70,6 @@ set(unit_tests + UnitTestTypeCheckArray.cxx + UnitTestTypeCheckCellSet.cxx + UnitTestTypeCheckExecObject.cxx +- UnitTestTypeCheckKeys.cxx + UnitTestUnknownArrayHandle.cxx + UnitTestUnknownCellSet.cxx + ) +@@ -114,9 +111,11 @@ set(unit_tests_device + UnitTestCellSetExplicit.cxx + UnitTestCellSetPermutation.cxx + UnitTestColorTable.cxx ++ UnitTestControlSignatureTag.cxx + UnitTestDataSetPermutation.cxx + UnitTestDataSetSingleType.cxx + UnitTestDeviceAdapterAlgorithmDependency.cxx ++ UnitTestDeviceAdapterAlgorithmGeneral.cxx + UnitTestHints.cxx + UnitTestImplicitFunction.cxx + UnitTestParticleArrayCopy.cxx +@@ -127,6 +126,7 @@ set(unit_tests_device + UnitTestTransportCellSetIn.cxx + UnitTestTransportExecObject.cxx + UnitTestTransportWholeArray.cxx ++ UnitTestTypeCheckKeys.cxx + ) + if(TARGET viskores_filter_field_conversion) + list(APPEND unit_tests_device +diff --git a/viskores/cont/testing/TestingDeviceAdapter.h b/viskores/cont/testing/TestingDeviceAdapter.h +index 3859488b1..cd1865371 100644 +--- a/viskores/cont/testing/TestingDeviceAdapter.h ++++ b/viskores/cont/testing/TestingDeviceAdapter.h +@@ -1265,17 +1265,17 @@ private: + + //the output of reduce and scan inclusive should be the same + std::cout << " Reduce with initial value of 0." << std::endl; +- viskores::Id reduce_sum = Algorithm::Reduce(array, 0); ++ viskores::Id reduce_sum = Algorithm::Reduce(array, viskores::Id(0)); + std::cout << " Reduce with initial value." << std::endl; + viskores::Id reduce_sum_with_intial_value = Algorithm::Reduce(array, viskores::Id(ARRAY_SIZE)); + std::cout << " Inclusive scan to check" << std::endl; + viskores::Id inclusive_sum = Algorithm::ScanInclusive(array, array); + std::cout << " Reduce with 1 value." << std::endl; + array.Allocate(1, viskores::CopyFlag::On); +- viskores::Id reduce_sum_one_value = Algorithm::Reduce(array, 0); ++ viskores::Id reduce_sum_one_value = Algorithm::Reduce(array, viskores::Id(0)); + std::cout << " Reduce with 0 values." << std::endl; + array.Allocate(0); +- viskores::Id reduce_sum_no_values = Algorithm::Reduce(array, 0); ++ viskores::Id reduce_sum_no_values = Algorithm::Reduce(array, viskores::Id(0)); + VISKORES_TEST_ASSERT(reduce_sum == OFFSET * ARRAY_SIZE, "Got bad sum from Reduce"); + VISKORES_TEST_ASSERT(reduce_sum_with_intial_value == reduce_sum + ARRAY_SIZE, + "Got bad sum from Reduce with initial value"); +diff --git a/viskores/cont/viskores.module b/viskores/cont/viskores.module +index 0c41ecc4a..c72d84eb1 100644 +--- a/viskores/cont/viskores.module ++++ b/viskores/cont/viskores.module +@@ -6,6 +6,8 @@ DEPENDS + viskores_optionparser + viskores_diy + viskores_lcl ++PRIVATE_DEPENDS ++ viskores_exec + OPTIONAL_DEPENDS + viskores_loguru + TEST_OPTIONAL_DEPENDS +@@ -13,3 +15,5 @@ TEST_OPTIONAL_DEPENDS + viskores_filter_field_conversion + TEST_DEPENDS + viskores_source ++ viskores_filter_resampling ++ viskores_worklet +diff --git a/viskores/exec/AtomicArrayExecutionObject.h b/viskores/exec/AtomicArrayExecutionObject.h +index 4e7fb9993..0fb5f61c5 100644 +--- a/viskores/exec/AtomicArrayExecutionObject.h ++++ b/viskores/exec/AtomicArrayExecutionObject.h +@@ -21,7 +21,7 @@ + #include + #include + #include +-#include ++#include + + #include + +diff --git a/viskores/exec/CMakeLists.txt b/viskores/exec/CMakeLists.txt +index 5acd83b3d..e4e18653e 100644 +--- a/viskores/exec/CMakeLists.txt ++++ b/viskores/exec/CMakeLists.txt +@@ -56,3 +56,22 @@ add_subdirectory(arg) + viskores_declare_headers(${headers} + ${header_impls} + ) ++ ++set(backends ) ++if(TARGET viskores_tbb) ++ list(APPEND backends viskores_tbb) ++endif() ++if(TARGET viskores_cuda) ++ list(APPEND backends viskores_cuda) ++endif() ++if(TARGET viskores_openmp) ++ list(APPEND backends viskores_openmp) ++endif() ++if(TARGET viskores_kokkos) ++ list(APPEND backends viskores_kokkos) ++endif() ++ ++add_library(viskores_exec INTERFACE) ++target_link_libraries(viskores_exec INTERFACE ${backends}) ++target_compile_definitions(viskores_exec INTERFACE VISKORES_DEVICE_LINKED) ++install(TARGETS viskores_exec EXPORT ${Viskores_EXPORT_NAME}) +diff --git a/viskores/exec/serial/viskores.module b/viskores/exec/serial/viskores.module +index 2f29d4da8..89ac43b6b 100644 +--- a/viskores/exec/serial/viskores.module ++++ b/viskores/exec/serial/viskores.module +@@ -4,3 +4,5 @@ GROUPS + Core + DEPENDS + viskores_exec ++TEST_DEPENDS ++ viskores_exec +diff --git a/viskores/exec/tbb/viskores.module b/viskores/exec/tbb/viskores.module +index 62d908526..725c72b1a 100644 +--- a/viskores/exec/tbb/viskores.module ++++ b/viskores/exec/tbb/viskores.module +@@ -6,3 +6,4 @@ DEPENDS + viskores_exec + TEST_DEPENDS + viskores_tbb ++ viskores_exec +diff --git a/viskores/filter/connected_components/CMakeLists.txt b/viskores/filter/connected_components/CMakeLists.txt +index 6fc1e20da..ff4c0fece 100644 +--- a/viskores/filter/connected_components/CMakeLists.txt ++++ b/viskores/filter/connected_components/CMakeLists.txt +@@ -31,7 +31,6 @@ viskores_library( + USE_VISKORES_JOB_POOL + ) + +-target_link_libraries(viskores_filter_connected_components PRIVATE viskores_worklet PUBLIC viskores_filter_core) + target_link_libraries(viskores_filter PUBLIC INTERFACE viskores_filter_connected_components) + + add_subdirectory(worklet) +diff --git a/viskores/filter/connected_components/viskores.module b/viskores/filter/connected_components/viskores.module +index 607e03a70..2f1d14f47 100644 +--- a/viskores/filter/connected_components/viskores.module ++++ b/viskores/filter/connected_components/viskores.module +@@ -10,3 +10,4 @@ TEST_DEPENDS + viskores_filter_contour + viskores_filter_connected_components + viskores_source ++ viskores_worklet +diff --git a/viskores/filter/contour/viskores.module b/viskores/filter/contour/viskores.module +index f5b5dc1ce..25cc41019 100644 +--- a/viskores/filter/contour/viskores.module ++++ b/viskores/filter/contour/viskores.module +@@ -17,6 +17,7 @@ TEST_DEPENDS + viskores_filter_geometry_refinement + viskores_io + viskores_source ++ viskores_worklet + TEST_OPTIONAL_DEPENDS + viskores_rendering_testing + viskores_rendering +diff --git a/viskores/filter/density_estimate/viskores.module b/viskores/filter/density_estimate/viskores.module +index 2d77f6580..cc0c8d6a2 100644 +--- a/viskores/filter/density_estimate/viskores.module ++++ b/viskores/filter/density_estimate/viskores.module +@@ -12,3 +12,4 @@ OPTIONAL_DEPENDS + TEST_DEPENDS + viskores_filter_density_estimate + viskores_source ++ viskores_worklet +diff --git a/viskores/filter/field_transform/CMakeLists.txt b/viskores/filter/field_transform/CMakeLists.txt +index 5b28a5a7e..a0120bb96 100644 +--- a/viskores/filter/field_transform/CMakeLists.txt ++++ b/viskores/filter/field_transform/CMakeLists.txt +@@ -52,7 +52,6 @@ viskores_library( + USE_VISKORES_JOB_POOL + ) + +-target_link_libraries(viskores_filter_field_transform PUBLIC viskores_worklet viskores_filter_core) + target_link_libraries(viskores_filter PUBLIC INTERFACE viskores_filter_field_transform) + + add_subdirectory(worklet) +diff --git a/viskores/filter/flow/viskores.module b/viskores/filter/flow/viskores.module +index a2be1f1b4..aafc3d993 100644 +--- a/viskores/filter/flow/viskores.module ++++ b/viskores/filter/flow/viskores.module +@@ -13,6 +13,7 @@ TEST_DEPENDS + viskores_filter_mesh_info + viskores_filter_flow + viskores_io ++ viskores_worklet + TEST_OPTIONAL_DEPENDS + viskores_rendering_testing + MPI::MPI_CXX +diff --git a/viskores/filter/geometry_refinement/CMakeLists.txt b/viskores/filter/geometry_refinement/CMakeLists.txt +index f1c84b5dd..8f748cda7 100644 +--- a/viskores/filter/geometry_refinement/CMakeLists.txt ++++ b/viskores/filter/geometry_refinement/CMakeLists.txt +@@ -42,7 +42,6 @@ viskores_library( + USE_VISKORES_JOB_POOL + ) + +-target_link_libraries(viskores_filter_geometry_refinement PUBLIC viskores_worklet viskores_filter_core) + target_link_libraries(viskores_filter PUBLIC INTERFACE viskores_filter_geometry_refinement) + + add_subdirectory(worklet) +diff --git a/viskores/filter/multi_block/viskores.module b/viskores/filter/multi_block/viskores.module +index ba4668657..7bda54e6c 100644 +--- a/viskores/filter/multi_block/viskores.module ++++ b/viskores/filter/multi_block/viskores.module +@@ -11,3 +11,4 @@ TEST_DEPENDS + viskores_rendering + viskores_rendering_testing + viskores_filter_geometry_refinement ++ viskores_worklet +diff --git a/viskores/filter/resampling/viskores.module b/viskores/filter/resampling/viskores.module +index f914bcbaa..83f503a9b 100644 +--- a/viskores/filter/resampling/viskores.module ++++ b/viskores/filter/resampling/viskores.module +@@ -10,3 +10,4 @@ PRIVATE_DEPENDS + viskores_worklet + TEST_DEPENDS + viskores_filter_clean_grid ++ viskores_worklet +diff --git a/viskores/filter/scalar_topology/CMakeLists.txt b/viskores/filter/scalar_topology/CMakeLists.txt +index 8c5d57ea2..3a8d87c1d 100644 +--- a/viskores/filter/scalar_topology/CMakeLists.txt ++++ b/viskores/filter/scalar_topology/CMakeLists.txt +@@ -48,7 +48,6 @@ viskores_library( + USE_VISKORES_JOB_POOL + ) + +-target_link_libraries(viskores_filter_scalar_topology PUBLIC viskores_worklet viskores_filter_core) + if (Viskores_ENABLE_MPI) + target_link_libraries(viskores_filter_scalar_topology PUBLIC MPI::MPI_CXX) + endif () +diff --git a/viskores/filter/scalar_topology/viskores.module b/viskores/filter/scalar_topology/viskores.module +index 6c44a1813..0a1fa98e0 100644 +--- a/viskores/filter/scalar_topology/viskores.module ++++ b/viskores/filter/scalar_topology/viskores.module +@@ -4,6 +4,9 @@ GROUPS + Filters + DEPENDS + viskores_filter_core ++PRIVATE_DEPENDS ++ viskores_worklet + TEST_DEPENDS + viskores_io + viskores_source ++ viskores_worklet +diff --git a/viskores/filter/viskores.module b/viskores/filter/viskores.module +index 2ad7d069d..d50329908 100644 +--- a/viskores/filter/viskores.module ++++ b/viskores/filter/viskores.module +@@ -4,11 +4,13 @@ GROUPS + Core + DEPENDS + viskores_cont ++PRIVATE_DEPENDS + viskores_worklet + TEST_DEPENDS + viskores_filter + viskores_io + viskores_source ++ viskores_worklet + TEST_OPTIONAL_DEPENDS + viskores_rendering + viskores_rendering_testing +diff --git a/viskores/rendering/viskores.module b/viskores/rendering/viskores.module +index 9caad9698..5a62fd648 100644 +--- a/viskores/rendering/viskores.module ++++ b/viskores/rendering/viskores.module +@@ -6,6 +6,8 @@ DEPENDS + viskores_filter_image_processing + viskores_filter_entity_extraction + viskores_io ++PRIVATE_DEPENDS ++ viskores_worklet + TEST_DEPENDS + viskores_rendering_testing + viskores_source +diff --git a/viskores/source/viskores.module b/viskores/source/viskores.module +index 54dcd76ba..d981696f7 100644 +--- a/viskores/source/viskores.module ++++ b/viskores/source/viskores.module +@@ -6,6 +6,8 @@ DEPENDS + viskores_cont + viskores_filter_field_conversion + viskores_filter_multi_block ++PRIVATE_DEPENDS ++ viskores_exec + TEST_DEPENDS + viskores_filter_contour + TEST_OPTIONAL_DEPENDS +diff --git a/viskores/viskores.module b/viskores/viskores.module +index ec514fe30..86176cf63 100644 +--- a/viskores/viskores.module ++++ b/viskores/viskores.module +@@ -2,3 +2,5 @@ NAME + viskores + GROUPS + Core ++TEST_DEPENDS ++ viskores_worklet +diff --git a/viskores/worklet/internal/DispatcherBase.h b/viskores/worklet/internal/DispatcherBase.h +index 3c1b1d242..bc7ce332d 100644 +--- a/viskores/worklet/internal/DispatcherBase.h ++++ b/viskores/worklet/internal/DispatcherBase.h +@@ -25,7 +25,9 @@ + #include + + #include ++#include + #include ++#include + #include + #include + +diff --git a/viskores/worklet/viskores.module b/viskores/worklet/viskores.module +index 4ff5c89c0..3aeff8134 100644 +--- a/viskores/worklet/viskores.module ++++ b/viskores/worklet/viskores.module +@@ -4,6 +4,7 @@ GROUPS + Core + DEPENDS + viskores_cont ++ viskores_exec + TEST_DEPENDS + viskores_source + viskores_worklet diff --git a/repos/spack_repo/builtin/packages/viskores/package.py b/repos/spack_repo/builtin/packages/viskores/package.py index 3aad4bd185f..569bb469f5e 100644 --- a/repos/spack_repo/builtin/packages/viskores/package.py +++ b/repos/spack_repo/builtin/packages/viskores/package.py @@ -32,12 +32,9 @@ class Viskores(CMakePackage, CudaPackage, ROCmPackage): version("master", branch="master") version("release", branch="release") - version( - "1.0.0", - sha256="5bff5bbd747b7662bb4630889960371d06fcc5e5a962d974a898d1883f196eba", - preferred=True, - ) - + version("1.1.1", sha256="2a6c7a9e036d1756f4f8a6a835a4cee91452197a22ddce755672370ccc296605") + version("1.1.0", sha256="24eb77decff0370789594a8064060d64b51ba0b9ae9d78c882daada4d8f19a20") + version("1.0.0", sha256="5bff5bbd747b7662bb4630889960371d06fcc5e5a962d974a898d1883f196eba") variant("shared", default=True, description="build shared libs") variant("doubleprecision", default=True, description="enable double precision") variant("logging", default=True, description="build logging support") @@ -94,7 +91,7 @@ class Viskores(CMakePackage, CudaPackage, ROCmPackage): when="+kokkos +rocm amdgpu_target=%s" % amdgpu_value, ) - depends_on("hip@3.7:", when="+rocm") + depends_on("hip@5.2:", when="+rocm") # CUDA thrust is already include in the CUDA pkg depends_on("rocthrust", when="+kokkos+rocm ^cmake@3.24:") @@ -111,6 +108,10 @@ class Viskores(CMakePackage, CudaPackage, ROCmPackage): conflicts("+cuda~cuda_native~kokkos", msg="Cannot have +cuda without a cuda device") conflicts("+cuda", when="cuda_arch=none", msg="viskores +cuda requires that cuda_arch be set") + # https://github.com/Viskores/viskores/pull/161 + # Must use patch file because PR has conflicts with 1.1 release. + patch("device-lib-private-vk11.patch", when="@1.1") + def cmake_args(self): spec = self.spec options = [] diff --git a/repos/spack_repo/builtin/packages/vizglow/package.py b/repos/spack_repo/builtin/packages/vizglow/package.py index a42ed7b210a..142c79e2fa3 100644 --- a/repos/spack_repo/builtin/packages/vizglow/package.py +++ b/repos/spack_repo/builtin/packages/vizglow/package.py @@ -23,6 +23,10 @@ class Vizglow(Package): homepage = "https://esgeetech.com/products/vizglow-plasma-modeling/" manual_download = True + license("LicenseRef-LamResearch-Proprietary", checked_by="alecbcs") + + redistribute(source=False, binary=False) + version( "2.2alpha20", md5="2bef890c66f3a44aaf96f7c96788c89e", @@ -82,7 +86,7 @@ def install(self, spec, prefix): installer = glob.glob("VizGlow*Install")[0] - chmod = which("chmod") + chmod = which("chmod", required=True) chmod("+x", installer) installer = Executable(installer) diff --git a/repos/spack_repo/builtin/packages/vmc/package.py b/repos/spack_repo/builtin/packages/vmc/package.py index 7608ec4bf59..db4ab098edf 100644 --- a/repos/spack_repo/builtin/packages/vmc/package.py +++ b/repos/spack_repo/builtin/packages/vmc/package.py @@ -18,17 +18,22 @@ class Vmc(CMakePackage): license("GPL-3.0-only") + version("2-1", sha256="e36a60ec977bd164d91f3a26ff1a8f777753e7bcee4bb8d047f4e380ca08301b") version("2-0", sha256="9f4c31d93eeb0e10eca22d6450bb9a1070cbe25e99eaf7e74d4e191612102d9c") version("1-1-p1", sha256="dc0d4d16c81899c0167bcd13b97e39d9ff2817d20552f61e1c0bce357ac69ee5") version("1-0-p3", sha256="46385776d7639fdf23df2a2a5426fb9a9a69836d237c1259b1a22bfb649cb47e") version("1-0-p2", sha256="46b4c82b0b7516502e88db920732fc78f06f0393ac740a17816f2eb53f80e75e") version("1-0-p1", sha256="4a20515f7de426797955cec4a271958b07afbaa330770eeefb5805c882ad9749") - depends_on("cxx", type="build") # generated - patch("dict_fixes_101.patch", when="@1-0-p1") - depends_on("root@6.18.04: ~vmc") + depends_on("c", type="build") + depends_on("cxx", type="build") + + depends_on("cmake@3.3:", type="build") + depends_on("cmake@3.16:", type="build", when="@2-1:") + + depends_on("root") def setup_build_environment(self, env: EnvironmentModifications) -> None: if self.spec.satisfies("platform=darwin"): diff --git a/repos/spack_repo/builtin/packages/vmd/package.py b/repos/spack_repo/builtin/packages/vmd/package.py index d44fb729837..81ae929f48b 100644 --- a/repos/spack_repo/builtin/packages/vmd/package.py +++ b/repos/spack_repo/builtin/packages/vmd/package.py @@ -54,7 +54,7 @@ def ensure_rpaths(self): # make sure the executable finds and uses the Spack-provided # libraries, otherwise the executable may or may not run depending # on what is installed on the host - patchelf = which("patchelf") + patchelf = which("patchelf", required=True) rpath = ":".join( self.spec[dep].libs.directories[0] for dep in ["libx11", "libxi", "libxinerama", "gl"] ) diff --git a/repos/spack_repo/builtin/packages/votca/package.py b/repos/spack_repo/builtin/packages/votca/package.py index 08d322ce7ae..41417f20ee9 100644 --- a/repos/spack_repo/builtin/packages/votca/package.py +++ b/repos/spack_repo/builtin/packages/votca/package.py @@ -21,6 +21,8 @@ class Votca(CMakePackage): maintainers("junghans") version("master", branch="master") + version("2026", sha256="1445d2a6dad8577f24c480e49decc4d8676cce4146fa751c09085f5deee9d372") + version("2025.1", sha256="f7244b3e4c531675e5d53912073b235cd310127309795fb0ed8615ffaeb27718") version("2025", sha256="6adacdae41f8737e42ca7153c0aa1c7df4e89a67fbece5e6eff32dfc0486418d") version("2024.2", sha256="aa9ea3ad54dae31d3f68685d12f3bad4910ef3034a7f51c9ddd573b3856f4bc8") version("2024.1", sha256="68669a7d09020f780d2633eb865c6c53e5fb38d155f80c9670ebf9d10d10bee6") @@ -31,7 +33,10 @@ class Votca(CMakePackage): variant("mkl", default=False, description="Build with MKL support") variant( - "new-gmx", default=False, description="Build against gromacs>2019 - no tabulated kernels" + "new-gmx", + default=False, + description="Build against gromacs>2019 - no tabulated kernels", + when="@:2025.1", ) variant("xtp", default=True, description="Build xtp parts of votca") diff --git a/repos/spack_repo/builtin/packages/votca_csg/package.py b/repos/spack_repo/builtin/packages/votca_csg/package.py deleted file mode 100644 index c6331c6bc9d..00000000000 --- a/repos/spack_repo/builtin/packages/votca_csg/package.py +++ /dev/null @@ -1,108 +0,0 @@ -# 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 VotcaCsg(CMakePackage): - """Versatile Object-oriented Toolkit for Coarse-graining - Applications (VOTCA) is a package intended to reduce the amount of - routine work when doing systematic coarse-graining of various - systems. The core is written in C++. - - This package contains the VOTCA coarse-graining engine. - """ - - homepage = "https://www.votca.org" - url = "https://github.com/votca/csg/tarball/v1.4" - git = "https://github.com/votca/csg.git" - maintainers("junghans") - - version("stable", branch="stable", deprecated=True) - version( - "2021.2", - sha256="4c58ea90cc1b7fe95f7bc00634faadba945316417e741192d715cea6aa83f4ac", - deprecated=True, - ) - version( - "2021.1", - sha256="1e9cf90ddd7539e711e795292b721a4ee130a2089e659fa068a12960b77fff14", - deprecated=True, - ) - version( - "2021", - sha256="d66c9b30ce2a56d630d5db281444447d398be643005ebea70d3735fb60357305", - deprecated=True, - ) - version( - "1.6.4", - sha256="eae771b623f3c3edb09744030d053f10c75d64bad919df26c4f9bf3bfaa1cf86", - deprecated=True, - ) - version( - "1.6.3", - sha256="35456b1f3116364b10ada37d99798294bd2d3df2e670cef3936251f88036ef88", - deprecated=True, - ) - version( - "1.6.2", - sha256="96b244b282005259832ed6ec0dc22dafe132dcfc3d73dcd8e53b62f40befb545", - deprecated=True, - ) - version( - "1.6.1", - sha256="ed12bcb1ccdf71f54e21cdcc9803add4b8ebdc6b8263cb5b0034f5db01e31dbb", - deprecated=True, - ) - version( - "1.6", - sha256="8cf6a4ac3ef7347c720a44d8a676f8cbd1462e162f6113de39f27b89354465ea", - deprecated=True, - ) - version( - "1.5.1", - sha256="7fca1261bd267bf38d2edd26259730fed3126c0c3fd91fb81940dbe17bb568fd", - deprecated=True, - ) - version( - "1.5", - sha256="160387cdc51f87dd20ff2e2eed97086beee415d48f3c92f4199f6109068c8ff4", - deprecated=True, - ) - version( - "1.4.1", - sha256="41dccaecadd0165c011bec36a113629e27745a5a133d1a042efe4356acdb5450", - deprecated=True, - ) - version( - "1.4", - sha256="c13e7febd792de8c3d426203f089bd4d33b8067f9db5e8840e4579c88b61146e", - deprecated=True, - ) - - depends_on("cxx", type="build") # generated - - depends_on("cmake@2.8:", type="build") - for v in [ - "1.4", - "1.4.1", - "1.5", - "1.5.1", - "1.6", - "1.6.1", - "1.6.2", - "1.6.3", - "1.6.4", - "2021", - "2021.1", - "2021.2", - "stable", - ]: - depends_on("votca-tools@%s" % v, when="@%s:%s.0" % (v, v)) - depends_on("boost+exception+filesystem+system+serialization+container+math+regex") - depends_on("gromacs~mpi@5.1:2019") - depends_on("hdf5~mpi") diff --git a/repos/spack_repo/builtin/packages/votca_csg_tutorials/package.py b/repos/spack_repo/builtin/packages/votca_csg_tutorials/package.py deleted file mode 100644 index 5b00bbc0896..00000000000 --- a/repos/spack_repo/builtin/packages/votca_csg_tutorials/package.py +++ /dev/null @@ -1,108 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - - -from spack_repo.builtin.build_systems.cmake import CMakePackage -from spack_repo.builtin.packages.boost.package import Boost - -from spack.package import * - - -class VotcaCsgTutorials(CMakePackage): - """Versatile Object-oriented Toolkit for Coarse-graining - Applications (VOTCA) is a package intended to reduce the amount of - routine work when doing systematic coarse-graining of various - systems. The core is written in C++. - - This package contains the VOTCA coarse-graining tutorials. - """ - - homepage = "https://www.votca.org" - url = "https://github.com/votca/csg-tutorials/tarball/v1.4" - git = "https://github.com/votca/csg-tutorials.git" - maintainers("junghans") - - version("stable", branch="stable", deprecated=True) - version( - "2021.2", - sha256="156c5ec55a288e3013d393e66a1d2f09ebf4f14056d50d081535004696e7f5ba", - deprecated=True, - ) - version( - "2021.1", - sha256="5ea1e6ca370e6e7845f9195495f5fb8bbd72d601980e123ae7852f491f03949a", - deprecated=True, - ) - version( - "2021", - sha256="2b85c69007bb7d773529020e55fd82fed65651ee21eedccca9a801ab248ece97", - deprecated=True, - ) - version( - "1.6.4", - sha256="34ef40db6b178a7f513f8a6f43e7caff6ecb498d66d7bf8bc44900bc7aea31dc", - deprecated=True, - ) - version( - "1.6.3", - sha256="709582b978d84f9de09ae6c3ba4ed28daec886d4e0431bc7d19c7246bd65f0b1", - deprecated=True, - ) - version( - "1.6.2", - sha256="7c25e76391f3ffdd15f8a91aeed2d3ce7377591f128ed4ae34b36eca20e5af8f", - deprecated=True, - ) - version( - "1.6.1", - sha256="d8428c4a03ce42d88317045ec555af3defa022fd9a61f05e07b57c5577288c8c", - deprecated=True, - ) - version( - "1.6", - sha256="54946c647724f1beb95942d47ec7f4cf7a95a59ec7268522693d5ec723585daf", - deprecated=True, - ) - version( - "1.5.1", - sha256="e35cea92df0e7d05ca7b449c1b5d84d887a3a23c7796abe3b84e4d6feec7faca", - deprecated=True, - ) - version( - "1.5", - sha256="03b841fb94129cf59781a7a5e3b71936c414aa9dfa17a50d7bc856d46274580c", - deprecated=True, - ) - version( - "1.4.1", - sha256="623724192c3a7d76b603a74a3326f181045f10f38b9f56dce754a90f1a74556e", - deprecated=True, - ) - version( - "1.4", - sha256="27d50acd68a9d8557fef18ec2b0c62841ae91c22275ab9afbd65c35e4dd5f719", - deprecated=True, - ) - - for v in [ - "1.4", - "1.4.1", - "1.5", - "1.5.1", - "1.6", - "1.6.1", - "1.6.2", - "1.6.3", - "1.6.4", - "2021", - "2021.1", - "2021.2", - "stable", - ]: - depends_on("votca-csg@%s" % v, when="@%s:%s.0" % (v, v)) - - # 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) diff --git a/repos/spack_repo/builtin/packages/votca_csgapps/package.py b/repos/spack_repo/builtin/packages/votca_csgapps/package.py deleted file mode 100644 index 3884f6d82c1..00000000000 --- a/repos/spack_repo/builtin/packages/votca_csgapps/package.py +++ /dev/null @@ -1,75 +0,0 @@ -# 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 VotcaCsgapps(CMakePackage): - """Versatile Object-oriented Toolkit for Coarse-graining - Applications (VOTCA) is a package intended to reduce the amount of - routine work when doing systematic coarse-graining of various - systems. The core is written in C++. - - This package contains the VOTCA coarse-graining extra apps. - """ - - homepage = "https://www.votca.org" - url = "https://github.com/votca/csgapps/tarball/v1.4" - git = "https://github.com/votca/csgapps.git" - maintainers("junghans") - - version( - "1.6.4", - sha256="ef3d6fbc7f2ff2f29af7d170a5351ae3c37f52ca4c2b1697b1d2e30c26ff4eb1", - deprecated=True, - ) - version( - "1.6.3", - sha256="fdb6a94eabdfe1bfae6002da16e364086d036c2dc24700a941b73d5bb1afc422", - deprecated=True, - ) - version( - "1.6.2", - sha256="f7db0bda27d4419c570f44dc60d04b1fd7b4cdcf10db6301005fca70111fcfe3", - deprecated=True, - ) - version( - "1.6.1", - sha256="03c7cef2a76e73cf953b2b5ea2cdca765ec1a2627d0a9d8869d46166e63d197c", - deprecated=True, - ) - version( - "1.6", - sha256="084bbc5b179bb7eb8f6671d2d5fa13e69e68946570c9120a7e4b10aff1866e2e", - deprecated=True, - ) - version( - "1.5.1", - sha256="b4946711e88a1745688b6cce5aad872e6e2ea200fededf38d77a864883e3750e", - deprecated=True, - ) - version( - "1.5", - sha256="18b40ce6222509bc70aa9d56b8c538cd5903edf7294d6f95530668e555206d5b", - deprecated=True, - ) - version( - "1.4.1", - sha256="095d9ee4cd49d2fd79c10e0e84e6890b755e54dec6a5cd580a2b4241ba230a2b", - deprecated=True, - ) - version( - "1.4", - sha256="4ea8348c2f7de3cc488f48fbd8652e69b52515441952766c06ff67ed1aaf69a0", - deprecated=True, - ) - - depends_on("cxx", type="build") # generated - - for v in ["1.4", "1.4.1", "1.5", "1.5.1", "1.6", "1.6.1", "1.6.2", "1.6.3", "1.6.4"]: - depends_on("votca-csg@%s" % v, when="@%s:%s.0" % (v, v)) - depends_on("boost+exception+math+serialization+container") diff --git a/repos/spack_repo/builtin/packages/votca_ctp/package.py b/repos/spack_repo/builtin/packages/votca_ctp/package.py deleted file mode 100644 index 53c4e0acc30..00000000000 --- a/repos/spack_repo/builtin/packages/votca_ctp/package.py +++ /dev/null @@ -1,41 +0,0 @@ -# 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 VotcaCtp(CMakePackage): - """Versatile Object-oriented Toolkit for Coarse-graining - Applications (VOTCA) is a package intended to reduce the amount of - routine work when doing systematic coarse-graining of various - systems. The core is written in C++. - - This package contains the VOTCA charge transport engine. - """ - - homepage = "https://www.votca.org" - url = "https://github.com/votca/ctp/tarball/v1.5" - git = "https://github.com/votca/ctp.git" - - version( - "1.5.1", - sha256="ef957c2f6b09335d0d27ecb7e1b80b55e76a100247bc0d0b3cfef7718d2a1126", - deprecated=True, - ) - version( - "1.5", - sha256="31eb6bcc9339e575116f0c91fe7a4ce7d4189f31f0640329c993fea911401d65", - deprecated=True, - ) - - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated - - depends_on("cmake@2.8:", type="build") - depends_on("votca-tools@1.5.1") - depends_on("votca-csg@1.5.1") - depends_on("gsl") diff --git a/repos/spack_repo/builtin/packages/votca_tools/package.py b/repos/spack_repo/builtin/packages/votca_tools/package.py deleted file mode 100644 index 73acd5691ff..00000000000 --- a/repos/spack_repo/builtin/packages/votca_tools/package.py +++ /dev/null @@ -1,120 +0,0 @@ -# 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 VotcaTools(CMakePackage): - """Versatile Object-oriented Toolkit for Coarse-graining - Applications (VOTCA) is a package intended to reduce the amount of - routine work when doing systematic coarse-graining of various - systems. The core is written in C++. - - This package contains the basic tools library of VOTCA. - """ - - homepage = "https://www.votca.org" - url = "https://github.com/votca/tools/tarball/v1.4" - git = "https://github.com/votca/tools.git" - maintainers("junghans") - - version("stable", branch="stable", deprecated=True) - version( - "2021.2", - sha256="2cd3175b65924803aff90dce49f60e1dda9015988a453d60358e51f0dbb4292d", - deprecated=True, - ) - version( - "2021.1", - sha256="c2fdf5ab72fc75580fb3623182fa88dd0eed856388bdc862aff42148bb0a16e7", - deprecated=True, - ) - version( - "2021", - sha256="b84f68ba4a8bfae7b06b61e1e078dcbfb3b340c516da3be39ef545152da00ccd", - deprecated=True, - ) - version( - "1.6.4", - sha256="aa79ef4617a80ba3ca063932d5ee0d5767c0285b4b613abd373ad3c986ab9f4c", - deprecated=True, - ) - version( - "1.6.3", - sha256="b4ba63861f4342070d81309992f76c4cc798dffeab894bff64799881e75b3cc2", - deprecated=True, - ) - version( - "1.6.2", - sha256="1b31e0dd7550b80b963e6714d671f3516d68ebc1e75068a5d827a6e8b4f1759a", - deprecated=True, - ) - version( - "1.6.1", - sha256="3e8f51d484cb3fdfbeb851aab387807ba4c40aecef8317c90182da68ad282dcc", - deprecated=True, - ) - version( - "1.6", - sha256="cfd0fedc80fecd009f743b5df47777508d76bf3ef294a508a9f11fbb42efe9a5", - deprecated=True, - ) - version( - "1.5.1", - sha256="4be4fe25a2910e24e1720cd9022d214001d38196033ade8f9d6e618b4f47d5c4", - deprecated=True, - ) - version( - "1.5", - sha256="a82a6596c24ff06e79eab17ca02f4405745ceeeb66369693a59023ad0b62cf22", - deprecated=True, - ) - version( - "1.4.1", - sha256="b6b87f6bec8db641a1d8660422ca44919252a69494b32ba6c8c9ac986bae9a65", - deprecated=True, - ) - version( - "1.4", - sha256="41638122e7e59852af61d391b4ab8c308fd2e16652f768077e13a99d206ec5d3", - deprecated=True, - ) - - # https://github.com/votca/tools/pull/229, fix mkl in exported target - patch( - "https://github.com/votca/tools/commit/fb80f3eb7696b81633642285d4ba0638db605df1.patch?full_index=1", - sha256="2a9ef179904d5057f36a5ce533c002d8f5880dc4b3eba569825f4a7e7f055eb1", - when="@=1.6+mkl", - ) - # https://github.com/votca/tools/pull/361, fix build with newer glibc/gcc, fixed in stable and 2021.1 - patch( - "https://github.com/votca/tools/commit/6bb7e35ba7d1a31247eafb323be2777ec0439cfe.patch?full_index=1", - sha256="5a67eaf362755412b9825558bedb53fac3204713effd60c59f14c54eb1ad52b9", - when="@2021:2021.0", - ) - - variant("mkl", default=False, description="Build with MKL support") - conflicts("+mkl", when="@1.4:1.5") - - depends_on("cxx", type="build") # generated - - depends_on("cmake@2.8:", type="build") - depends_on("expat") - depends_on("fftw-api@3") - depends_on("gsl", when="@1.4:1.4.9999") - depends_on("eigen@3.3:", when="@stable,1.5:") - depends_on("boost+exception+filesystem+system+container+math+program_options") - depends_on("sqlite", when="@1.4:1.5") - depends_on("mkl", when="+mkl") - - def cmake_args(self): - args = ["-DWITH_RC_FILES=OFF"] - - if "~mkl" in self.spec: - args.append("-DCMAKE_DISABLE_FIND_PACKAGE_MKL=ON") - - return args diff --git a/repos/spack_repo/builtin/packages/votca_xtp/package.py b/repos/spack_repo/builtin/packages/votca_xtp/package.py deleted file mode 100644 index 6ed0ed0a86b..00000000000 --- a/repos/spack_repo/builtin/packages/votca_xtp/package.py +++ /dev/null @@ -1,104 +0,0 @@ -# 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 VotcaXtp(CMakePackage): - """Versatile Object-oriented Toolkit for Coarse-graining - Applications (VOTCA) is a package intended to reduce the amount of - routine work when doing systematic coarse-graining of various - systems. The core is written in C++. - - This package contains the VOTCA exciton transport engine. - """ - - homepage = "https://www.votca.org" - url = "https://github.com/votca/xtp/tarball/v1.4.1" - git = "https://github.com/votca/xtp.git" - maintainers("junghans") - - version("stable", branch="stable", deprecated=True) - version( - "2021.2", - sha256="a13180cc05a24c441326a2b209e4d1cc6b176f1b8d7aec1aea46b627e230ff8c", - deprecated=True, - ) - version( - "2021.1", - sha256="8ce112fc40676690369133188848dfeb3875d57351286cad4c312057a4dd767b", - deprecated=True, - ) - version( - "2021", - sha256="43bb5a52fec675738f4b5896f0833a1c1090bd7e74f97769697495abf4652e40", - deprecated=True, - ) - version( - "1.6.4", - sha256="699a835954556cf6b2f20dac7942c1761c6dd6c6c3fbdde62c8bfcfd71ee075b", - deprecated=True, - ) - version( - "1.6.3", - sha256="757b9a6a470b3c356f638d62269c5b72b8ace374f006658aef8bb6afd1ad1413", - deprecated=True, - ) - version( - "1.6.2", - sha256="b51a28cddceca6998b981ad61466617ad624d577ce424c0653d92a680f460061", - deprecated=True, - ) - version( - "1.6.1", - sha256="886af50bc12457bbafb06dc927b7fd4cadc3db1b4615b24a08953f6b358debef", - deprecated=True, - ) - version( - "1.6", - sha256="695c2d9d3f924103481529f992e3723bdce10b8edfc294421a849cdf51dbbb6e", - deprecated=True, - ) - version( - "1.5.1", - sha256="17a7722e5a32d236e4f1f6f88b680da4ba5f52bcf65bca3687c6a1c731d10881", - deprecated=True, - ) - version( - "1.5", - sha256="b40b6d19e13f0650e84b8beebe86ce5c09071624f18d66df826f9d8584b4d3c8", - deprecated=True, - ) - version( - "1.4.1", - sha256="4b53d371d6cf648c9e9e9bd1f104d349cafeaf10a02866e3f1d05c574b595a21", - deprecated=True, - ) - - depends_on("cxx", type="build") # generated - - depends_on("cmake@2.8:", type="build") - for v in [ - "1.4.1", - "1.5", - "1.5.1", - "1.6", - "1.6.1", - "1.6.2", - "1.6.3", - "1.6.4", - "2021", - "2021.1", - "2021.2", - "stable", - ]: - depends_on("votca-tools@%s" % v, when="@%s:%s.0" % (v, v)) - depends_on("votca-csg@%s" % v, when="@%s:%s.0" % (v, v)) - depends_on("libxc", when="@stable,1.5:") - depends_on("ceres-solver", when="@1.5:1.5.9999") - depends_on("hdf5+cxx~mpi") - depends_on("libint@2.6.0:", when="@2021:") diff --git a/repos/spack_repo/builtin/packages/vtk/package.py b/repos/spack_repo/builtin/packages/vtk/package.py index cd4b196345c..861f111c011 100644 --- a/repos/spack_repo/builtin/packages/vtk/package.py +++ b/repos/spack_repo/builtin/packages/vtk/package.py @@ -21,16 +21,16 @@ class Vtk(CMakePackage): url = "https://www.vtk.org/files/release/9.0/VTK-9.0.0.tar.gz" list_url = "https://www.vtk.org/download/" - maintainers("chuckatkins", "danlipsa", "johnwparent") + maintainers("chuckatkins", "danlipsa", "johnwparent", "vicentebolea") license("BSD-3-Clause") version( - "9.5.0", - sha256="04ae86246b9557c6b61afbc534a6df099244fbc8f3937f82e6bc0570953af87d", + "9.5.1", + sha256="14443661c7b095d05b4e376fb3f40613f173e34fc9d4658234e9ec1d624a618f", preferred=True, ) - + version("9.5.0", sha256="04ae86246b9557c6b61afbc534a6df099244fbc8f3937f82e6bc0570953af87d") version("9.4.1", sha256="c253b0c8d002aaf98871c6d0cb76afc4936c301b72358a08d5f3f72ef8bc4529") version("9.3.1", sha256="8354ec084ea0d2dc3d23dbe4243823c4bfc270382d0ce8d658939fd50061cab8") version("9.2.6", sha256="06fc8d49c4e56f498c40fcb38a563ed8d4ec31358d0101e8988f0bb4d539dd12") @@ -39,67 +39,75 @@ class Vtk(CMakePackage): version("9.0.3", sha256="bc3eb9625b2b8dbfecb6052a2ab091fc91405de4333b0ec68f3323815154ed8a") version("9.0.1", sha256="1b39a5e191c282861e7af4101eaa8585969a2de05f5646c9199a161213a622c7") version("9.0.0", sha256="15def4e6f84d72f82386617fe595ec124dda3cbd13ea19a0dcd91583197d8715") - # v8.2.1a is a compatability version of VTK to allow VisIt to build in CI and contains - # patches that were not tested by VTK CI or for a VTK release - # - Python 3.8 compatability - # - VisIt 3.3.3 compatability - version( - "8.2.1a", - url="https://www.vtk.org/files/release/8.2/VTK-8.2.0.tar.gz", - sha256="34c3dc775261be5e45a8049155f7228b6bd668106c72a3c435d95730d17d57bb", - ) - version("8.2.0", sha256="34c3dc775261be5e45a8049155f7228b6bd668106c72a3c435d95730d17d57bb") - version("8.1.2", sha256="0995fb36857dd76ccfb8bb07350c214d9f9099e80b1e66b4a8909311f24ff0db") - version("8.1.1", sha256="71a09b4340f0a9c58559fe946dc745ab68a866cf20636a41d97b6046cb736324") - version("8.1.0", sha256="6e269f07b64fb13774f5925161fb4e1f379f4e6a0131c8408c555f6b58ef3cb7") - version("8.0.1", sha256="49107352923dea6de05a7b4c3906aaf98ef39c91ad81c383136e768dcf304069") - version("7.1.0", sha256="5f3ea001204d4f714be972a810a62c0f2277fbb9d8d2f8df39562988ca37497a") - version("7.0.0", sha256="78a990a15ead79cdc752e86b83cfab7dbf5b7ef51ba409db02570dbdd9ec32c3") - version("6.3.0", sha256="92a493354c5fa66bea73b5fc014154af5d9f3f6cee8d20a826f4cd5d4b0e8a5e") - version("6.1.0", sha256="bd7df10a479606d529a8b71f466c44a2bdd11fd534c62ce0aa44fad91883fa34") + + with default_args(deprecated=True): + # Keep the newest version of VTK-8 for compatibility with other packages in the repo + # LIGGGHTS + # SENSEI@3: + # VisIt@:3.3 + + # v8.2.1a is a compatability version of VTK to allow VisIt to build in CI and contains + # patches that were not tested by VTK CI or for a VTK release + # - Python 3.8 compatability + # - VisIt 3.3.3 compatability + version( + "8.2.1a", + url="https://www.vtk.org/files/release/8.2/VTK-8.2.0.tar.gz", + sha256="34c3dc775261be5e45a8049155f7228b6bd668106c72a3c435d95730d17d57bb", + ) + version("8.2.0", sha256="34c3dc775261be5e45a8049155f7228b6bd668106c72a3c435d95730d17d57bb") depends_on("c", type="build") depends_on("cxx", type="build") depends_on("pkgconfig", type="build", when="platform=linux") # VTK7 defaults to OpenGL2 rendering backend - variant("opengl2", default=True, description="Enable OpenGL2 backend") - variant("python", default=False, description="Enable Python support", when="@8:") + variant("opengl2", default=True, description="Enable OpenGL2 backend", when="@:9.4") + variant("python", default=False, description="Enable Python support", when="@9.0.2:") variant("qt", default=False, description="Build with support for Qt") - variant("xdmf", default=False, description="Build XDMF file support") - variant("ffmpeg", default=False, description="Build with FFMPEG support") variant("mpi", default=True, description="Enable MPI support") variant("examples", default=False, description="Enable building & installing the VTK examples") + variant("versioned_install", default=True, description="Include version in library filenames") + variant("shared", default=True, description="Builds a shared version of the library") + variant("kits", default=False, description="Use module kits") + + variant( + "io", + values=any_combination_of( + "adios2", "cgns", "exodusii", "ffmpeg", "fides", "ioss", "netcdf", "xdmf" + ).with_default("cgns,exodusii,ioss,netcdf"), + description="Enable IO modules", + ) + requires("io=adios2", when="io=fides") + + variant( + "raytracing", + values=any_combination_of("ospray").with_default("none"), + description="Enable raytracing support", + ) + variant("advanced_debug", default=False, description="Enable the VTK_DEBUG_LEAKS flag") patch("gcc.patch", when="@6.1.0") - # patches to fix some missing stl includes - # which lead to build errors on newer compilers - patch( - "https://gitlab.kitware.com/vtk/vtk/-/commit/e066c3f4fbbfe7470c6207db0fc3f3952db633c.diff", - when="@9:9.0", - sha256="0546696bd02f3a99fccb9b7c49533377bf8179df16d901cefe5abf251173716d", - ) - patch( - "https://gitlab.kitware.com/vtk/vtk/-/commit/1233ceec268d5366c66f5e79786ec784042b591.diff", - when="@9.1:9.2", - sha256="38380bd20443d94d8ce9f339b9b2fbdea03400aa9d6dbb7e3ef138a65f11c080", - ) + # Fix missing standard includes that lead to build errors on newer compilers + # Patch for + # https://gitlab.kitware.com/vtk/vtk/-/commit/e066c3f4fbbfe7470c6207db0fc3f3952db633c + patch("vtk_9_include_missing_limits.patch", when="@9:9.0") + # Patch for + # See https://gitlab.kitware.com/vtk/vtk/-/issues/18782 + + patch("vtk_9_1_2_improve_cstdint_includes.patch", when="@9.1:9.2") # Patch for paraview 5.10: +hdf5 ^hdf5@1.13.2: # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/9690 # patch seems to effectively been added to vtk@9.2.3 (e81a2fe) - patch("xdmf2-hdf51.13.2.patch", when="@9:9.2.2 +xdmf") + patch("xdmf2-hdf51.13.2.patch", when="@9:9.2.2 io=xdmf") # We cannot build with both osmesa and qt in spack conflicts("^osmesa", when="+qt") conflicts("%gcc@13", when="@9.2") - # VTK 8 vendors a heavily outdated version of CMake's GenerateExportHeader module, which - # has a bogus version check for GCC/Intel version to early exit. This drops the early exit. - patch("vtk-bogus-compiler-check.patch", when="@7.1:8") - # Based on PyPI wheel availability with when("+python"), default_args(type=("build", "link", "run")): extends("python@:3.13") @@ -107,44 +115,24 @@ class Vtk(CMakePackage): extends("python@:3.11", when="@:9.2") extends("python@:3.10", when="@:9.2.2") extends("python@:3.9", when="@:9.1") - extends("python@:3.8", when="@:9.0.1") - extends("python@:3.7", when="@:8.2.0") # We need mpi4py if buidling python wrappers and using MPI depends_on("py-mpi4py", when="+python+mpi", type="run") - # python3.7 compatibility patch backported from upstream - # https://gitlab.kitware.com/vtk/vtk/commit/706f1b397df09a27ab8981ab9464547028d0c322 - patch("python3.7-const-char.patch", when="@7.0.0:8.1.1 ^python@3.7:") - # Broken downstream FindMPI patch("vtkm-findmpi-downstream.patch", when="@9.0.0") - for plat in ["linux", "darwin", "freebsd"]: - # use internal FindHDF5 - patch("internal_findHDF5.patch", when=f"@:8 platform={plat}") - # Fix IOADIOS2 module to work with kits # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8653 patch("vtk-adios2-module-no-kit.patch", when="@9:9.0.3") - # Python 3.8 compatibility for VTK 8.2 - # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/6269 - # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/6275 - patch("vtk82_python38.patch", when="@8.2.1a") - - # Fix link error in exodusII - patch("vtk-8.2-exodusII-gcc11.patch", when="@8.2.1a") - # The use of the OpenGL2 backend requires at least OpenGL Core Profile # version 3.2 or higher. depends_on("gl@3.2:", when="+opengl2") depends_on("gl@1.2:", when="~opengl2") depends_on("xz") - patch("vtk_find_liblzma.patch", when="@8.2") - patch("vtk_movie_link_ogg.patch", when="@8.2") - patch("vtk_use_sqlite_name_vtk_expects.patch", when="@8.2") + patch("vtk_proj_include_no_strict.patch", when="@9: platform=windows") # allow proj to be detected via a CMake produced export config file # failing that, falls back on standard library detection @@ -157,6 +145,15 @@ class Vtk(CMakePackage): # a patch with the same name is also applied to paraview # the two patches are the same but for the path to the files they patch patch("vtk_alias_hdf5.patch", when="@9:") + # VTK 9.5 adds linkage to inonit when using an external IOSS + # backport that to 9.4 + # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/12279 + patch("vtk_9.4_external_ioss_linkage.patch", when="@9.4") + # Linking against an external gl2ps causes linker errors due to a lack of + # glgetdoublev on macos. Vtk provides an alias for this, us it + # Upstream issue: https://gitlab.kitware.com/vtk/vtk/-/issues/19561 + patch("vtk-alias-gldoublev.patch", when="platform=darwin @9.4:") + # VTK 9.0 on Windows uses dll instead of lib for hdf5-hl target, which fails linking. Can't # be fixed by bumping CMake lower bound, because VTK vendors FindHDF5.cmake. Various other # patches to FindHDF5.cmake are missing, so add conflict instead of a series of patches. @@ -166,22 +163,25 @@ class Vtk(CMakePackage): # VTK will need Qt5OpenGL, and qt needs '-opengl' for that depends_on("qt+opengl", when="+qt") - depends_on("boost", when="+xdmf") - depends_on("boost+mpi", when="+xdmf +mpi") + depends_on("boost", when="io=xdmf") + depends_on("boost+mpi", when="io=xdmf +mpi") # 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="+xdmf") - depends_on("ffmpeg", when="+ffmpeg") + depends_on(Boost.with_default_variants, when="io=xdmf") + depends_on("ffmpeg", when="io=ffmpeg") depends_on("mpi", when="+mpi") + depends_on("adios2+mpi", when="io=adios2 +mpi") + depends_on("adios2~mpi", when="io=adios2 ~mpi") depends_on("expat") # See for why vtk doesn't # work yet with freetype 2.10.3 (including possible patches) depends_on("freetype @:2.10.2", when="@:9.0.1") depends_on("freetype") depends_on("glew") + depends_on("hdf5+hl") depends_on("hdf5~mpi", when="~mpi") depends_on("hdf5+mpi", when="+mpi") depends_on("hdf5@1.8:", when="@8:9.0") @@ -190,29 +190,30 @@ class Vtk(CMakePackage): depends_on("jsoncpp") depends_on("libxml2") depends_on("lz4") - depends_on("netcdf-c~mpi", when="~mpi") - depends_on("netcdf-c+mpi", when="+mpi") - depends_on("netcdf-cxx4", when="@:8.1.2") + depends_on("netcdf-c@:4.9.2", when="io=exodusii") + depends_on("netcdf-c@:4.9.2~mpi", when="io=netcdf ~mpi") + depends_on("netcdf-c@:4.9.2+mpi", when="io=netcdf +mpi") depends_on("libpng") depends_on("libtiff") depends_on("zlib-api") - depends_on("eigen", when="@8.2.0:") - depends_on("double-conversion", when="@8.2.0:") - depends_on("sqlite", when="@8.2.0:") - depends_on("pugixml", when="@8.3.0:") + depends_on("eigen@:3") + depends_on("double-conversion") + depends_on("sqlite") + depends_on("pugixml", when="@9:") depends_on("libogg") depends_on("libtheora") depends_on("utf8cpp", when="@9:") - depends_on("gl2ps", when="@8.1:") depends_on("gl2ps@1.4.1:", when="@9:") - # "8.2.1a" uses an internal proj so this special cases 8.2.1a - depends_on("proj@4:7", when="@:8.2.0, 9:9.1") + depends_on("proj@4:7", when="@9:9.1") depends_on("proj@8:", when="@9.2:") - depends_on("cgns@4.1.1:+mpi", when="@9.1: +mpi") - depends_on("cgns@4.1.1:~mpi", when="@9.1: ~mpi") + depends_on("cgns@4.1.1:+mpi", when="@9.1: io=cgns +mpi") + depends_on("cgns@4.1.1:~mpi", when="@9.1: io=cgns ~mpi") + depends_on("ospray@2.1:2", when="raytracing=ospray") + depends_on("openimagedenoise", when="raytracing=ospray") + depends_on("ospray +mpi", when="raytracing=ospray +mpi") # VTK introduced Seacas IOSS dependency on 9.1 - with when("@9.1:"): + with when("@9.1: io=ioss"): depends_on("seacas+mpi", when="+mpi") depends_on("seacas~mpi", when="~mpi") depends_on("seacas@2021-05-12:2022-10-14", when="@9.1") @@ -223,44 +224,18 @@ class Vtk(CMakePackage): depends_on("nlohmann-json", when="@9.2:") - # For finding Fujitsu-MPI wrapper commands - patch("find_fujitsu_mpi.patch", when="@:8.2.0%fj") # Freetype@2.10.3 no longer exports FT_CALLBACK_DEF, this # patch replaces FT_CALLBACK_DEF with simple extern "C" # See https://gitlab.kitware.com/vtk/vtk/-/issues/18033 - patch( - "https://gitlab.kitware.com/vtk/vtk/uploads/c6fa799a1a028b8f8a728a40d26d3fec/vtk-freetype-2.10.3-replace-FT_CALLBACK_DEF.patch", - sha256="eefda851f844e8a1dfb4ebd8a9ff92d2b78efc57f205774052c5f4c049cc886a", - when="@:9.0.1 ^freetype@2.10.3:", - ) - - patch( - "https://gitlab.kitware.com/vtk/vtk/-/commit/5a1c96e12e9b4a660d326be3bed115a2ceadb573.diff", - sha256="c446a90459b108082db5b28d9aeda99d030e636325e01929beba062cafb16b76", - when="@9.1", - ) + patch("vtk_freetype_2.10.3_replace_FT_CALLBACK_DEF.patch", when="@:9.0.1 ^freetype@2.10.3:") - # vtk@9 does not compile with gcc 13 or 14 - # https://gitlab.kitware.com/vtk/vtk/-/issues/18782 - patch( - "https://gitlab.kitware.com/vtk/vtk/-/merge_requests/9996.diff", - sha256="dab51ffd0d62b00c089c1245e6b105f740106b53893305c87193d4ba03a948e0", - when="@9.1:9.2 %gcc@13:", - ) + patch("vtk_module_skip_argless_target_calls.patch", when="@9.1") # SEACAS >= 2024-06-27 needs c++17 which is already required in VTK master. - patch( - "https://gitlab.kitware.com/vtk/vtk/-/commit/00afe3ae0def6c2d0a6f7cb497c8d55874127820.diff", - sha256="1e5fb55b14ba6455a1891d27aa4a0506f47e3155014af06f97633ae1ef6e9cc2", - when="@9.4", - ) + patch("vtk_minimum_version_cpp_17.patch", when="@9.4") # Needed to build VTK with external SEACAS. - patch( - "https://gitlab.kitware.com/vtk/vtk/-/commit/e98526813691e527fff7d5df6a1641ae36c0cf4f.diff", - sha256="174930dde06828ead84c68b1a192202766f6297a60f0c54eef6cab2605a466ef", - when="@9.4", - ) + patch("vtk_ioss_transform_2d_elem_block_to_3d.patch", when="@9.4") # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280893 # incorrect member accesses fixed in 9.4 @@ -273,22 +248,45 @@ class Vtk(CMakePackage): # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280893 patch("vtk_clang19_size_t.patch", when="@9.2:9.4.2") + # Patchs for VTK-8 + # VTK 8 vendors a heavily outdated version of CMake's GenerateExportHeader module, which + # has a bogus version check for GCC/Intel version to early exit. This drops the early exit. + patch("vtk-bogus-compiler-check.patch", when="@7.1:8") + + for plat in ["linux", "darwin", "freebsd"]: + # use internal FindHDF5 + patch("internal_findHDF5.patch", when=f"@:8 platform={plat}") + + patch("vtk_find_liblzma.patch", when="@8.2") + patch("vtk_movie_link_ogg.patch", when="@8.2") + patch("vtk_use_sqlite_name_vtk_expects.patch", when="@8.2") + + # For finding Fujitsu-MPI wrapper commands + patch("find_fujitsu_mpi.patch", when="@:8.2.0%fj") + + # Python 3.8 compatibility for VTK 8.2 + # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/6269 + # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/6275 + patch("vtk82_python38.patch", when="@8.2.1a") + + # Fix link error in exodusII + patch("vtk-8.2-exodusII-gcc11.patch", when="@8.2.1a") + def patch(self): - if self.spec.satisfies("@9.2:"): + if self.spec.satisfies("@9.2: io=ioss"): # provide definition for Ioss::Init::Initializer::Initializer(), # required on macOS, as "-undefined error" is the default, # but not on Linux, as undefined symbols are tolerated filter_file("TARGETS Ioss", "TARGETS Ioss Ionit", "ThirdParty/ioss/CMakeLists.txt") - if self.spec.satisfies("@9.4:"): + if self.spec.satisfies("@9.4: io=ioss"): # Needed to build VTK with external SEACAS >= 2022-10-14 filter_file( "^.*USE_VARIABLES SEACASIoss_INCLUDE_DIRS.*$", "", "ThirdParty/ioss/CMakeLists.txt" ) def url_for_version(self, version): - url = "http://www.vtk.org/files/release/{0}/VTK-{1}.tar.gz" - return url.format(version.up_to(2), version) + return f"http://www.vtk.org/files/release/{version.up_to(2)}/VTK-{version}.tar.gz" def setup_build_environment(self, env: EnvironmentModifications) -> None: # VTK has some trouble finding freetype unless it is set in @@ -296,22 +294,19 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("FREETYPE_DIR", self.spec["freetype"].prefix) # Force API compatibility with HDF5 - if "+hdf5" in self.spec: - if "@9.1:" in self.spec: - env.append_flags("CFLAGS", "-DH5_USE_110_API") - env.append_flags("CXXFLAGS", "-DH5_USE_110_API") - elif "@8:" in self.spec: - env.append_flags("CFLAGS", "-DH5_USE_18_API") - env.append_flags("CXXFLAGS", "-DH5_USE_18_API") + if self.spec.satisfies("@9.1:"): + env.append_flags("CFLAGS", "-DH5_USE_110_API") + env.append_flags("CXXFLAGS", "-DH5_USE_110_API") + else: + env.append_flags("CFLAGS", "-DH5_USE_18_API") + env.append_flags("CXXFLAGS", "-DH5_USE_18_API") def cmake_args(self): spec = self.spec - opengl_ver = "OpenGL{0}".format("2" if "+opengl2" in spec else "") - cmake_args = [ - "-DBUILD_SHARED_LIBS=ON", - "-DVTK_RENDERING_BACKEND:STRING={0}".format(opengl_ver), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define_from_variant("VTK_ENABLE_KITS", "kits"), # prevents installation into lib64 which might not be in the path # (solves #26314) "-DCMAKE_INSTALL_LIBDIR:PATH=lib", @@ -319,6 +314,49 @@ def cmake_args(self): "-DVTK_ALL_NEW_OBJECT_FACTORY:BOOL=ON", ] + def module_variant(feature, on="YES", off="NO"): + """Ternary for spec variant to YES/NO string""" + if spec.satisfies(feature): + return on + return off + + adios2_enabled = module_variant("io=adios2") + cmake_args.append(self.define("VTK_MODULE_ENABLE_VTK_IOADIOS2", adios2_enabled)) + + cgns_enabled = module_variant("io=cgns") + cmake_args.append(self.define("VTK_MODULE_ENABLE_VTK_cgns", cgns_enabled)) + cmake_args.append(self.define("VTK_MODULE_ENABLE_VTK_IOCGNSReader", cgns_enabled)) + + exodusii_enabled = module_variant("io=exodusii") + cmake_args.append(self.define("VTK_MODULE_ENABLE_VTK_exodusII", exodusii_enabled)) + cmake_args.append(self.define("VTK_MODULE_ENABLE_VTK_IOExodus", exodusii_enabled)) + + fides_enabled = module_variant("io=fides") + cmake_args.append(self.define("VTK_MODULE_ENABLE_VTK_fides", fides_enabled)) + cmake_args.append(self.define("VTK_MODULE_ENABLE_VTK_IOFides", fides_enabled)) + + ioss_enabled = module_variant("io=ioss") + cmake_args.append(self.define("VTK_MODULE_ENABLE_VTK_ioss", ioss_enabled)) + cmake_args.append(self.define("VTK_MODULE_ENABLE_VTK_IOIOSS", ioss_enabled)) + + netcdf_enabled = module_variant("io=netcdf") + cmake_args.append(self.define("VTK_MODULE_ENABLE_VTK_IONetCDF", netcdf_enabled)) + + # Needed by netcdf and exodusii io modules + cmake_args.append( + self.define("VTK_MODULE_ENABLE_VTK_netcdf", "YES" if "netcdf-c" in spec else "NO") + ) + + if spec.satisfies("+mpi"): + cmake_args.append( + self.define("VTK_MODULE_ENABLE_VTK_IOParallelNetCDF", netcdf_enabled) + ) + + if spec.satisfies("raytracing=ospray"): + cmake_args.append(self.define("VTK_MODULE_ENABLE_VTK_RenderingRayTracing", "YES")) + cmake_args.append("-DVTK_ENABLE_OSPRAY:BOOL=ON") + cmake_args.append("-DVTKOSPRAY_ENABLE_DENOISER:BOOL=ON") + # Version 8.2.1a using internal libproj/pugixml for compatability if spec.satisfies("@8.2.1a"): cmake_args.append("-DVTK_USE_SYSTEM_LIBPROJ:BOOL=OFF") @@ -326,8 +364,6 @@ def cmake_args(self): # Disable wrappers for other languages. cmake_args.append("-DVTK_WRAP_JAVA=OFF") - if spec.satisfies("@:8.1"): - cmake_args.append("-DVTK_WRAP_TCL=OFF") # In general, we disable use of VTK "ThirdParty" libs, preferring # spack-built versions whenever possible but there are exceptions. @@ -337,6 +373,9 @@ def cmake_args(self): ) if spec.satisfies("@:8.0"): cmake_args.append("-DVTK_USE_SYSTEM_GL2PS=OFF") + + if "+mpi" in spec: + cmake_args.extend(["-DVTK_Group_MPI:BOOL=ON", "-DVTK_USE_SYSTEM_DIY2:BOOL=OFF"]) else: cmake_args.extend( [ @@ -345,40 +384,25 @@ def cmake_args(self): "-DVTK_MODULE_USE_EXTERNAL_VTK_libharu:BOOL=OFF", "-DVTK_MODULE_USE_EXTERNAL_VTK_pegtl:BOOL=OFF", "-DVTK_MODULE_USE_EXTERNAL_VTK_token:BOOL=OFF", - "-DHDF5_ROOT={0}".format(spec["hdf5"].prefix), + f"-DHDF5_ROOT={spec['hdf5'].prefix}", ] ) - if spec.satisfies("@9.1:"): - cmake_args.extend( - [ - "-DVTK_MODULE_USE_EXTERNAL_VTK_exprtk:BOOL=OFF", - # uses an unreleased version of fmt - "-DVTK_MODULE_USE_EXTERNAL_VTK_fmt:BOOL=OFF", - ] - ) - if spec.satisfies("@9.2:"): - cmake_args.append("-DVTK_MODULE_USE_EXTERNAL_VTK_verdict:BOOL=OFF") + cmake_args.append(self.define_from_variant("VTK_USE_MPI", "mpi")) - # Some variable names have changed - if spec.satisfies("@8.2.0"): - cmake_args.append("-DVTK_USE_SYSTEM_PUGIXML:BOOL=OFF") - elif spec.satisfies("@:8.1"): + if spec.satisfies("@9.1:"): cmake_args.extend( [ - "-DVTK_USE_SYSTEM_LIBPROJ4:BOOL=OFF", - "-DNETCDF_CXX_ROOT={0}".format(spec["netcdf-cxx"].prefix), + "-DVTK_MODULE_USE_EXTERNAL_VTK_exprtk:BOOL=OFF", + # uses an unreleased version of fmt + "-DVTK_MODULE_USE_EXTERNAL_VTK_fmt:BOOL=OFF", ] ) + if spec.satisfies("@9.2:"): + cmake_args.append("-DVTK_MODULE_USE_EXTERNAL_VTK_verdict:BOOL=OFF") + if spec.satisfies("@9.5:"): + cmake_args.append("-DVTK_MODULE_USE_EXTERNAL_VTK_vtkviskores:BOOL=OFF") - if "+mpi" in spec: - if spec.satisfies("@:8.2.0"): - cmake_args.extend(["-DVTK_Group_MPI:BOOL=ON", "-DVTK_USE_SYSTEM_DIY2:BOOL=OFF"]) - else: - cmake_args.extend(["-DVTK_USE_MPI=ON"]) - else: - cmake_args.append("-DVTK_USE_MPI=OFF") - - if "+ffmpeg" in spec: + if spec.satisfies("io=ffmpeg"): if spec.satisfies("@:8"): cmake_args.append("-DModule_vtkIOFFMPEG:BOOL=ON") else: @@ -387,10 +411,10 @@ def cmake_args(self): # Enable/Disable wrappers for Python. if "+python" in spec: cmake_args.append("-DVTK_WRAP_PYTHON=ON") + if spec.satisfies("@9:"): + cmake_args.append("-DVTK_PYTHON_VERSION=3") if "+mpi" in spec and spec.satisfies("@:8"): cmake_args.append("-DVTK_USE_SYSTEM_MPI4PY:BOOL=ON") - if spec.satisfies("@9.0.0: ^python@3:"): - cmake_args.append("-DVTK_PYTHON_VERSION=3") else: cmake_args.append("-DVTK_WRAP_PYTHON=OFF") @@ -398,18 +422,17 @@ def cmake_args(self): cmake_args.extend(["-DCMAKE_MACOSX_RPATH=ON"]) if "+qt" in spec: - qt_ver = spec["qt"].version.up_to(1) - qt_bin = spec["qt"].prefix.bin - qmake_exe = os.path.join(qt_bin, "qmake") - # https://github.com/martijnkoopman/Qt-VTK-viewer/blob/master/doc/Build-VTK.md # The content of the above link changes over time with versions. # Older commits have information on VTK-8. if spec.satisfies("@:8"): + qt_ver = spec["qt"].version.up_to(1) + qt_bin = spec["qt"].prefix.bin + qmake_exe = os.path.join(qt_bin, "qmake") cmake_args.extend( [ - "-DVTK_QT_VERSION:STRING={0}".format(qt_ver), - "-DQT_QMAKE_EXECUTABLE:PATH={0}".format(qmake_exe), + f"-DVTK_QT_VERSION:STRING={qt_ver}", + f"-DQT_QMAKE_EXECUTABLE:PATH={qmake_exe}", "-DVTK_Group_Qt:BOOL=ON", ] ) @@ -425,23 +448,14 @@ def cmake_args(self): # VTK to build with qt~webkit versions (see the documentation for # more info: http://www.vtk.org/Wiki/VTK/Tutorials/QtSetup). if "~webkit" in spec["qt"]: - if spec.satisfies("@:8"): - cmake_args.extend( - [ - "-DVTK_Group_Qt:BOOL=OFF", - "-DModule_vtkGUISupportQt:BOOL=ON", - "-DModule_vtkGUISupportQtOpenGL:BOOL=ON", - ] - ) - else: - cmake_args.extend( - [ - "-DVTK_GROUP_ENABLE_Qt:STRING=NO", - "-DVTK_MODULE_ENABLE_VTK_GUISupportQt:STRING=YES", - ] - ) - - if "+xdmf" in spec: + cmake_args.extend( + [ + "-DVTK_GROUP_ENABLE_Qt:STRING=NO", + "-DVTK_MODULE_ENABLE_VTK_GUISupportQt:STRING=YES", + ] + ) + + if spec.satisfies("io=xdmf"): if spec.satisfies("^cmake@3.12:"): # This policy exists only for CMake >= 3.12 cmake_args.extend(["-DCMAKE_POLICY_DEFAULT_CMP0074=NEW"]) @@ -452,9 +466,9 @@ def cmake_args(self): # Enable XDMF Support here "-DModule_vtkIOXdmf2:BOOL=ON", "-DModule_vtkIOXdmf3:BOOL=ON", - "-DBOOST_ROOT={0}".format(spec["boost"].prefix), - "-DBOOST_LIBRARY_DIR={0}".format(spec["boost"].prefix.lib), - "-DBOOST_INCLUDE_DIR={0}".format(spec["boost"].prefix.include), + f"-DBOOST_ROOT={spec['boost'].prefix}", + f"-DBOOST_LIBRARY_DIR={spec['boost'].prefix.lib}", + f"-DBOOST_INCLUDE_DIR={spec['boost'].prefix.include}", "-DBOOST_NO_SYSTEM_PATHS:BOOL=ON", # This is needed because VTK has multiple FindBoost # and they stick to system boost if there's a system boost @@ -481,7 +495,9 @@ def cmake_args(self): else: cmake_args.append("-DVTK_MODULE_ENABLE_VTK_IOParallelXdmf3:STRING=YES") - cmake_args.append("-DVTK_RENDERING_BACKEND:STRING=" + opengl_ver) + if spec.satisfies("@:9.4"): + opengl_ver = "OpenGL2" if "+opengl2" in spec else "OpenGL" + cmake_args.append(self.define("VTK_RENDERING_BACKEND", opengl_ver)) if spec.satisfies("^[virtuals=gl] osmesa"): cmake_args.extend( @@ -494,10 +510,6 @@ def cmake_args(self): else: cmake_args.append("-DVTK_OPENGL_HAS_OSMESA:BOOL=OFF") - if spec.satisfies("@:7.9.9"): - # This option is gone in VTK 8.1.2 - cmake_args.append("-DOpenGL_GL_PREFERENCE:STRING=LEGACY") - if "platform=darwin" in spec: cmake_args.extend(["-DVTK_USE_X:BOOL=OFF", "-DVTK_USE_COCOA:BOOL=ON"]) @@ -513,13 +525,14 @@ def cmake_args(self): # NETCDF_CXX_ROOT to detect NetCDF C++ bindings, so # NETCDF_CXX_INCLUDE_DIR and NETCDF_CXX_LIBRARY must be # used instead to detect these bindings - netcdf_cxx_lib = spec["netcdf-cxx"].libs.joined() - cmake_args.extend( - [ - "-DNETCDF_CXX_INCLUDE_DIR={0}".format(spec["netcdf-cxx"].prefix.include), - "-DNETCDF_CXX_LIBRARY={0}".format(netcdf_cxx_lib), - ] - ) + if spec.satisfies("io=netcdf"): + netcdf_cxx_lib = spec["netcdf-cxx"].libs.joined() + cmake_args.extend( + [ + f"NETCDF_CXX_INCLUDE_DIR={spec['netcdf-cxx'].prefix.include}", + f"NETCDF_CXX_LIBRARY={netcdf_cxx_lib}", + ] + ) # Garbage collection is unsupported in Xcode starting with # version 5.1; if the Apple clang version of the compiler @@ -536,6 +549,8 @@ def cmake_args(self): if "%intel" in spec and spec.version >= Version("8.2"): cmake_args.append("-DVTK_MODULE_ENABLE_VTK_IOMotionFX:BOOL=OFF") + cmake_args.append(self.define_from_variant("VTK_VERSIONED_INSTALL", "versioned_install")) + # -no-ipo prevents an internal compiler error from multi-file # optimization (https://github.com/spack/spack/issues/20471) if "%intel" in spec: @@ -544,17 +559,17 @@ def cmake_args(self): if compile_flags: compile_flags = " ".join(compile_flags) cmake_args.extend( - [ - "-DCMAKE_C_FLAGS={0}".format(compile_flags), - "-DCMAKE_CXX_FLAGS={0}".format(compile_flags), - ] + [f"-DCMAKE_C_FLAGS={compile_flags}", f"-DCMAKE_CXX_FLAGS={compile_flags}"] ) + if spec.satisfies("@:8"): vtk_example_arg = "BUILD_EXAMPLES" else: vtk_example_arg = "VTK_BUILD_EXAMPLES" cmake_args.append(self.define_from_variant(f"{vtk_example_arg}", "examples")) + cmake_args.append(self.define_from_variant("VTK_DEBUG_LEAKS", "advanced_debug")) + return cmake_args @when("+examples") diff --git a/repos/spack_repo/builtin/packages/vtk/python3.7-const-char.patch b/repos/spack_repo/builtin/packages/vtk/python3.7-const-char.patch deleted file mode 100644 index 80dbc78530a..00000000000 --- a/repos/spack_repo/builtin/packages/vtk/python3.7-const-char.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/Wrapping/PythonCore/vtkPythonArgs.cxx b/Wrapping/PythonCore/vtkPythonArgs.cxx -index 1a82af0802..b733458975 100644 ---- a/Wrapping/PythonCore/vtkPythonArgs.cxx -+++ b/Wrapping/PythonCore/vtkPythonArgs.cxx -@@ -95,13 +95,21 @@ bool vtkPythonGetStringValue(PyObject *o, T *&a, const char *exctext) - { - if (PyBytes_Check(o)) - { -+#if PY_VERSION_HEX >= 0x03070000 -+ a = const_cast(PyBytes_AS_STRING(o)); -+ return true; -+#else - a = PyBytes_AS_STRING(o); - return true; -+#endif - } - #ifdef Py_USING_UNICODE - else if (PyUnicode_Check(o)) - { --#if PY_VERSION_HEX >= 0x03030000 -+#if PY_VERSION_HEX >= 0x03070000 -+ a = const_cast(PyUnicode_AsUTF8(o)); -+ return true; -+#elif PY_VERSION_HEX >= 0x03030000 - a = PyUnicode_AsUTF8(o); - return true; - #else diff --git a/repos/spack_repo/builtin/packages/vtk/vtk-alias-gldoublev.patch b/repos/spack_repo/builtin/packages/vtk/vtk-alias-gldoublev.patch new file mode 100644 index 00000000000..adac8431243 --- /dev/null +++ b/repos/spack_repo/builtin/packages/vtk/vtk-alias-gldoublev.patch @@ -0,0 +1,12 @@ +diff --git a/Rendering/GL2PSOpenGL2/vtkOpenGLGL2PSHelperImpl.cxx b/Rendering/GL2PSOpenGL2/vtkOpenGLGL2PSHelperImpl.cxx +index eece0354e1..e99c67fd08 100644 +--- a/Rendering/GL2PSOpenGL2/vtkOpenGLGL2PSHelperImpl.cxx ++++ b/Rendering/GL2PSOpenGL2/vtkOpenGLGL2PSHelperImpl.cxx +@@ -21,6 +21,7 @@ + #include "vtkTextRenderer.h" + #include "vtkTransformFeedback.h" + ++#include "vtk_glad.h" + #include "vtk_gl2ps.h" + + #include diff --git a/repos/spack_repo/builtin/packages/vtk/vtk_9.4_external_ioss_linkage.patch b/repos/spack_repo/builtin/packages/vtk/vtk_9.4_external_ioss_linkage.patch new file mode 100644 index 00000000000..721d0ec34c4 --- /dev/null +++ b/repos/spack_repo/builtin/packages/vtk/vtk_9.4_external_ioss_linkage.patch @@ -0,0 +1,13 @@ +diff --git a/ThirdParty/ioss/CMakeLists.txt b/ThirdParty/ioss/CMakeLists.txt +index 3a6348e2c031f82b90b34452b097f46b24456913..764ad351806e721c4602815518de357ef853f761 100644 +--- a/ThirdParty/ioss/CMakeLists.txt ++++ b/ThirdParty/ioss/CMakeLists.txt +@@ -13,7 +13,7 @@ vtk_module_third_party( + STANDARD_INCLUDE_DIRS + EXTERNAL + PACKAGE SEACASIoss +- TARGETS Ioss ++ TARGETS Ioss Ionit + USE_VARIABLES SEACASIoss_INCLUDE_DIRS + STANDARD_INCLUDE_DIRS) + diff --git a/repos/spack_repo/builtin/packages/vtk/vtk_9_1_2_improve_cstdint_includes.patch b/repos/spack_repo/builtin/packages/vtk/vtk_9_1_2_improve_cstdint_includes.patch new file mode 100644 index 00000000000..f5c0a8b3503 --- /dev/null +++ b/repos/spack_repo/builtin/packages/vtk/vtk_9_1_2_improve_cstdint_includes.patch @@ -0,0 +1,42 @@ +diff --git a/IO/Image/vtkSEPReader.h b/IO/Image/vtkSEPReader.h +index 83d127a41e457e95240bdb335c26a54d36cd1c3a..b9110780f261e35f61dad0d93f6e206a9b9b43ba 100644 +--- a/IO/Image/vtkSEPReader.h ++++ b/IO/Image/vtkSEPReader.h +@@ -25,8 +25,9 @@ + #include "vtkImageAlgorithm.h" + #include "vtkNew.h" // for ivars + +-#include // for std::array +-#include // for std::string ++#include // for std::array ++#include // for std::uint8_t and std::uint32_t ++#include // for std::string + + namespace details + { +diff --git a/IO/PIO/PIOData.h b/IO/PIO/PIOData.h +index 98137f44c1ca30aec961e264ed4165b57176314f..03e59f7c832ed2d9f2c71c1dd0ebc675bf71d282 100644 +--- a/IO/PIO/PIOData.h ++++ b/IO/PIO/PIOData.h +@@ -1,6 +1,7 @@ + #if !defined(_PIODATA_H) + #define _PIODATA_H + ++#include + #include + #include + #include +diff --git a/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.h b/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.h +index ca5445ddf4bb4dac25d60ea87687fd1a264eab80..d0ba449a3c0d917cde563a095a6df6a8cb59f987 100644 +--- a/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.h ++++ b/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.h +@@ -49,7 +49,8 @@ + #include "vtkMathTextUtilities.h" + #include "vtkRenderingMatplotlibModule.h" // For export macro + +-#include // for std::vector ++#include // for std::uint64_t ++#include // for std::vector + + struct _object; + typedef struct _object PyObject; diff --git a/repos/spack_repo/builtin/packages/vtk/vtk_9_include_missing_limits.patch b/repos/spack_repo/builtin/packages/vtk/vtk_9_include_missing_limits.patch new file mode 100644 index 00000000000..c9975d97e99 --- /dev/null +++ b/repos/spack_repo/builtin/packages/vtk/vtk_9_include_missing_limits.patch @@ -0,0 +1,48 @@ +diff --git a/Common/Core/vtkGenericDataArrayLookupHelper.h b/Common/Core/vtkGenericDataArrayLookupHelper.h +index ab9d57248f8eb0689dd2d389f69cf74873168c65..202aaa27f4ae9a1b3a6eecfec101b81b59f8fdcf 100644 +--- a/Common/Core/vtkGenericDataArrayLookupHelper.h ++++ b/Common/Core/vtkGenericDataArrayLookupHelper.h +@@ -25,6 +25,7 @@ + #include "vtkIdList.h" + #include + #include ++#include + #include + #include + +diff --git a/Common/DataModel/vtkPiecewiseFunction.cxx b/Common/DataModel/vtkPiecewiseFunction.cxx +index 22eca0bc22e17189b37d48e483a0062d90ac035d..11086f1dc421b720d19c72326850c4f04d54cf57 100644 +--- a/Common/DataModel/vtkPiecewiseFunction.cxx ++++ b/Common/DataModel/vtkPiecewiseFunction.cxx +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + #include + #include + +diff --git a/Filters/HyperTree/vtkHyperTreeGridThreshold.cxx b/Filters/HyperTree/vtkHyperTreeGridThreshold.cxx +index a16bb27fc66850f8fd832bbb8f01c36c8a58bbd2..1052192c61635eb7a215ec66648a5fd88dd9fc6a 100644 +--- a/Filters/HyperTree/vtkHyperTreeGridThreshold.cxx ++++ b/Filters/HyperTree/vtkHyperTreeGridThreshold.cxx +@@ -27,6 +27,7 @@ + #include "vtkHyperTreeGridNonOrientedCursor.h" + + #include ++#include + + vtkStandardNewMacro(vtkHyperTreeGridThreshold); + +diff --git a/Rendering/Core/vtkColorTransferFunction.cxx b/Rendering/Core/vtkColorTransferFunction.cxx +index 55c046b4df76129611d0f6c65cdafdedb8b5b11c..1be02919ab9043472f819d8a3ff3ef68ade78e18 100644 +--- a/Rendering/Core/vtkColorTransferFunction.cxx ++++ b/Rendering/Core/vtkColorTransferFunction.cxx +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + #include + #include + diff --git a/repos/spack_repo/builtin/packages/vtk/vtk_freetype_2.10.3_replace_FT_CALLBACK_DEF.patch b/repos/spack_repo/builtin/packages/vtk/vtk_freetype_2.10.3_replace_FT_CALLBACK_DEF.patch new file mode 100644 index 00000000000..80d4932a4e9 --- /dev/null +++ b/repos/spack_repo/builtin/packages/vtk/vtk_freetype_2.10.3_replace_FT_CALLBACK_DEF.patch @@ -0,0 +1,33 @@ +--- VTK-8.2.0/Rendering/FreeType/vtkFreeTypeTools.cxx.orig 2019-01-30 18:15:13.000000000 +0100 ++++ VTK-8.2.0/Rendering/FreeType/vtkFreeTypeTools.cxx 2020-10-17 00:21:55.153442255 +0200 +@@ -387,7 +387,7 @@ FTC_CMapCache* vtkFreeTypeTools::GetCMap + } + + //---------------------------------------------------------------------------- +-FT_CALLBACK_DEF(FT_Error) ++extern "C" FT_Error + vtkFreeTypeToolsFaceRequester(FTC_FaceID face_id, + FT_Library lib, + FT_Pointer request_data, +--- VTK-8.2.0/Rendering/FreeTypeFontConfig/vtkFontConfigFreeTypeTools.cxx.orig 2019-01-30 18:15:13.000000000 +0100 ++++ VTK-8.2.0/Rendering/FreeTypeFontConfig/vtkFontConfigFreeTypeTools.cxx 2020-10-17 00:38:23.457937944 +0200 +@@ -26,10 +26,8 @@ + + vtkStandardNewMacro(vtkFontConfigFreeTypeTools) + +-namespace +-{ + // The FreeType face requester callback: +-FT_CALLBACK_DEF(FT_Error) ++extern "C" FT_Error + vtkFontConfigFreeTypeToolsFaceRequester(FTC_FaceID face_id, + FT_Library lib, + FT_Pointer request_data, +@@ -75,7 +73,6 @@ vtkFontConfigFreeTypeToolsFaceRequester( + + return static_cast(0); + } +-} // end anon namespace + + void vtkFontConfigFreeTypeTools::PrintSelf(ostream &os, vtkIndent indent) + { diff --git a/repos/spack_repo/builtin/packages/vtk/vtk_ioss_transform_2d_elem_block_to_3d.patch b/repos/spack_repo/builtin/packages/vtk/vtk_ioss_transform_2d_elem_block_to_3d.patch new file mode 100644 index 00000000000..a674d0e0250 --- /dev/null +++ b/repos/spack_repo/builtin/packages/vtk/vtk_ioss_transform_2d_elem_block_to_3d.patch @@ -0,0 +1,18 @@ +diff --git a/IO/IOSS/vtkIOSSUtilities.cxx b/IO/IOSS/vtkIOSSUtilities.cxx +index 71d9cfbe55c828b907b6f214fbff1aae7ff55480..f662a06ca6918c9eed7867ffbe3e1705b05593a1 100644 +--- a/IO/IOSS/vtkIOSSUtilities.cxx ++++ b/IO/IOSS/vtkIOSSUtilities.cxx +@@ -302,10 +302,9 @@ vtkSmartPointer GetData(const Ioss::GroupingEntity* entity, + } + + // Check for Transient 2D data that should be 3D for WarpByVector/Glyphs +- if (entity->type() == vtkioss_Ioss::NODEBLOCK && +- field.get_role() == vtkioss_Ioss::Field::RoleType::TRANSIENT && // Nodal / Elem Variables +- entity->get_property("component_degree").get_int() == 2 && // dimension 2 mesh nodeblock +- field.raw_storage()->component_count() == 2) // 2D Vector ++ bool isField2DTransientVector = field.get_role() == Ioss::Field::RoleType::TRANSIENT && ++ field.raw_storage()->component_count() == 2; ++ if (isField2DTransientVector) + { + array = ChangeComponents(array, 3); + } diff --git a/repos/spack_repo/builtin/packages/vtk/vtk_minimum_version_cpp_17.patch b/repos/spack_repo/builtin/packages/vtk/vtk_minimum_version_cpp_17.patch new file mode 100644 index 00000000000..1bd8101ec1b --- /dev/null +++ b/repos/spack_repo/builtin/packages/vtk/vtk_minimum_version_cpp_17.patch @@ -0,0 +1,63 @@ +diff --git a/CMake/vtkCompilerChecks.cmake b/CMake/vtkCompilerChecks.cmake +index c4452d6dfbd2f8c236ee68970b4c193430f8c5d0..2bef073a823a07b6403097a7f0948fb8dbd10f70 100644 +--- a/CMake/vtkCompilerChecks.cmake ++++ b/CMake/vtkCompilerChecks.cmake +@@ -1,39 +1,39 @@ +-# Minimum compiler version check: GCC >= 4.8 ++# Minimum compiler version check: GCC >= 8.0 + if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND +- CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8) +- message(FATAL_ERROR "GCC 4.8 or later is required.") ++ CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0) ++ message(FATAL_ERROR "GCC 8.0 or later is required.") + endif () + +-# Minimum compiler version check: LLVM Clang >= 3.3 ++# Minimum compiler version check: LLVM Clang >= 5.0 + if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND +- CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.3) +- message(FATAL_ERROR "LLVM Clang 3.3 or later is required.") ++ CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0) ++ message(FATAL_ERROR "LLVM Clang 5.0 or later is required.") + endif () + +-# Minimum compiler version check: Apple Clang >= 7.0 (Xcode 7.2.1) ++# Minimum compiler version check: Apple Clang >= 10.0 (Xcode 10.2.1) + if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" AND +- CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0) +- message(FATAL_ERROR "Apple Clang 7.0 or later is required.") ++ CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10.0) ++ message(FATAL_ERROR "Apple Clang 10.0 or later is required.") + endif () + +-# Minimum compiler version check: Microsoft C/C++ >= 19.0 (aka VS 2015) ++# Minimum compiler version check: Microsoft C/C++ >= 19.10 (aka VS 2017) + if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND +- CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0) +- message(FATAL_ERROR "Microsoft Visual Studio 2015 or later is required.") ++ CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.10) ++ message(FATAL_ERROR "Microsoft Visual Studio 2017 or later is required.") + endif () + +-# Minimum compiler version check: Intel C++ (ICC) >= 14 ++# Minimum compiler version check: Intel C++ (ICC) >= 19 + if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel" AND +- CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14.0) +- message(FATAL_ERROR "Intel C++ (ICC) 14.0 or later is required.") ++ CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0) ++ message(FATAL_ERROR "Intel C++ (ICC) 19.0 or later is required.") + endif () + +-# Make sure we have C++11 enabled. +-if(NOT VTK_IGNORE_CMAKE_CXX11_CHECKS) ++# Make sure we have C++17 enabled. ++if(NOT VTK_IGNORE_CMAKE_CXX17_CHECKS) + # Needed to make sure libraries and executables not built by the +- # vtkModuleMacros still have the C++11 compiler flags enabled ++ # vtkModuleMacros still have the C++17 compiler flags enabled + # Wrap this in an escape hatch for unknown compilers +- set(CMAKE_CXX_STANDARD 11) ++ set(CMAKE_CXX_STANDARD 17) + set(CMAKE_CXX_STANDARD_REQUIRED True) + set(CMAKE_CXX_EXTENSIONS False) + endif() diff --git a/repos/spack_repo/builtin/packages/vtk/vtk_module_skip_argless_target_calls.patch b/repos/spack_repo/builtin/packages/vtk/vtk_module_skip_argless_target_calls.patch new file mode 100644 index 00000000000..4141717cf1b --- /dev/null +++ b/repos/spack_repo/builtin/packages/vtk/vtk_module_skip_argless_target_calls.patch @@ -0,0 +1,82 @@ +diff --git a/CMake/vtkModule.cmake b/CMake/vtkModule.cmake +index 9f12fcf1964af3ff5c1c729f70e4abe80e73d8f0..bf21f6b3c14f8a4993083d92c3ac345ba5d19a65 100644 +--- a/CMake/vtkModule.cmake ++++ b/CMake/vtkModule.cmake +@@ -1485,6 +1485,12 @@ function (vtk_module_include module) + set(_vtk_include_system_arg SYSTEM) + endif () + ++ if (NOT _vtk_include_INTERFACE_args AND ++ NOT _vtk_include_PUBLIC_args AND ++ NOT _vtk_include_PRIVATE_args) ++ return () ++ endif () ++ + target_include_directories("${_vtk_include_target}" + ${_vtk_include_system_arg} + ${_vtk_include_INTERFACE_args} +@@ -1520,6 +1526,12 @@ function (vtk_module_definitions module) + _vtk_module_real_target(_vtk_definitions_target "${module}") + _vtk_module_target_function(_vtk_definitions) + ++ if (NOT _vtk_definitions_INTERFACE_args AND ++ NOT _vtk_definitions_PUBLIC_args AND ++ NOT _vtk_definitions_PRIVATE_args) ++ return () ++ endif () ++ + target_compile_definitions("${_vtk_definitions_target}" + ${_vtk_definitions_INTERFACE_args} + ${_vtk_definitions_PUBLIC_args} +@@ -1554,6 +1566,12 @@ function (vtk_module_compile_options module) + _vtk_module_real_target(_vtk_compile_options_target "${module}") + _vtk_module_target_function(_vtk_compile_options) + ++ if (NOT _vtk_compile_options_INTERFACE_args AND ++ NOT _vtk_compile_options_PUBLIC_args AND ++ NOT _vtk_compile_options_PRIVATE_args) ++ return () ++ endif () ++ + target_compile_options("${_vtk_compile_options_target}" + ${_vtk_compile_options_INTERFACE_args} + ${_vtk_compile_options_PUBLIC_args} +@@ -1588,6 +1606,12 @@ function (vtk_module_compile_features module) + _vtk_module_real_target(_vtk_compile_features_target "${module}") + _vtk_module_target_function(_vtk_compile_features) + ++ if (NOT _vtk_compile_features_INTERFACE_args AND ++ NOT _vtk_compile_features_PUBLIC_args AND ++ NOT _vtk_compile_features_PRIVATE_args) ++ return () ++ endif () ++ + target_compile_features("${_vtk_compile_features_target}" + ${_vtk_compile_features_INTERFACE_args} + ${_vtk_compile_features_PUBLIC_args} +@@ -1710,6 +1734,12 @@ function (vtk_module_link module) + endif () + endif () + ++ if (NOT _vtk_link_INTERFACE_args AND ++ NOT _vtk_link_PUBLIC_args AND ++ NOT _vtk_link_PRIVATE_args) ++ return () ++ endif () ++ + target_link_libraries("${_vtk_link_target}" + ${_vtk_link_INTERFACE_args} + ${_vtk_link_PUBLIC_args} +@@ -1744,6 +1774,12 @@ function (vtk_module_link_options module) + _vtk_module_real_target(_vtk_link_options_target "${module}") + _vtk_module_target_function(_vtk_link_options) + ++ if (NOT _vtk_link_options_INTERFACE_args AND ++ NOT _vtk_link_options_PUBLIC_args AND ++ NOT _vtk_link_options_PRIVATE_args) ++ return () ++ endif () ++ + target_link_options("${_vtk_link_options_target}" + ${_vtk_link_options_INTERFACE_args} + ${_vtk_link_options_PUBLIC_args} diff --git a/repos/spack_repo/builtin/packages/vtk_h/package.py b/repos/spack_repo/builtin/packages/vtk_h/package.py index 593206f667c..7bc27fc39f4 100644 --- a/repos/spack_repo/builtin/packages/vtk_h/package.py +++ b/repos/spack_repo/builtin/packages/vtk_h/package.py @@ -68,6 +68,7 @@ class VtkH(CMakePackage, CudaPackage): variant("logging", default=False, description="Build vtk-h with logging enabled") variant("contourtree", default=False, description="Enable contour tree support") + depends_on("c", type="build") depends_on("cxx", type="build") # generated depends_on("fortran", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/vtk_m/disable_flying_edges.patch b/repos/spack_repo/builtin/packages/vtk_m/disable_flying_edges.patch deleted file mode 100644 index 9b875ce5e07..00000000000 --- a/repos/spack_repo/builtin/packages/vtk_m/disable_flying_edges.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/vtkm/worklet/Contour.h b/vtkm/worklet/Contour.h -index c28c5ec09..70737777f 100644 ---- a/vtkm/worklet/Contour.h -+++ b/vtkm/worklet/Contour.h -@@ -46,7 +46,8 @@ struct DeduceCoordType - vtkm::cont::CellSetSingleType<>& result, - Args&&... args) const - { -- result = flying_edges::execute(cells, coords, std::forward(args)...); -+ result = marching_cells::execute(cells, coords, std::forward(args)...); -+ //result = flying_edges::execute(cells, coords, std::forward(args)...); - } - }; - diff --git a/repos/spack_repo/builtin/packages/vtk_m/package.py b/repos/spack_repo/builtin/packages/vtk_m/package.py index 185449abf3b..c663c57a146 100644 --- a/repos/spack_repo/builtin/packages/vtk_m/package.py +++ b/repos/spack_repo/builtin/packages/vtk_m/package.py @@ -98,7 +98,8 @@ class VtkM(CMakePackage, CudaPackage, ROCmPackage): conflicts("%gcc@:4.10", msg="vtk-m requires gcc >= 5. Please install a newer version") conflicts("%gcc@11:", when="@:1.5.2", msg="DIY has a issue building with gcc 11") - depends_on("cuda@10.1.0:", when="+cuda_native") + # See https://github.com/spack/spack-packages/pull/2059#issuecomment-3443184517 for CUDA 13 + depends_on("cuda@10.1.0:12.9", when="+cuda_native") depends_on("tbb", when="+tbb") depends_on("mpi", when="+mpi") depends_on("llvm-openmp", when="+openmp %apple-clang") @@ -106,6 +107,7 @@ class VtkM(CMakePackage, CudaPackage, ROCmPackage): # VTK-m uses the default Kokkos backend depends_on("kokkos", when="+kokkos") depends_on("kokkos@3.7:3.9", when="@2.0 +kokkos") + conflicts("^kokkos@5:", when="+kokkos", msg="vtk-m doesn't compile with C++20") # VTK-m native CUDA and Kokkos CUDA backends are not compatible depends_on("kokkos ~cuda", when="+kokkos +cuda +cuda_native") depends_on("kokkos +cuda", when="+kokkos +cuda ~cuda_native") diff --git a/repos/spack_repo/builtin/packages/vtk_m/vtkmdiy_fpic.patch b/repos/spack_repo/builtin/packages/vtk_m/vtkmdiy_fpic.patch deleted file mode 100644 index 765efe1c58b..00000000000 --- a/repos/spack_repo/builtin/packages/vtk_m/vtkmdiy_fpic.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt b/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt -index 5211330..3e991f3 100644 ---- a/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt -+++ b/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt -@@ -139,6 +139,7 @@ function(add_diy_mpi_library use_mpi) - endif() - - add_library(${lib_name} ${sources}) -+ set_property(TARGET ${lib_name} PROPERTY POSITION_INDEPENDENT_CODE ON) - target_compile_features(${lib_name} PRIVATE cxx_std_11) - target_compile_definitions(${lib_name} - PRIVATE -DVTKMDIY_HAS_MPI=${has_mpi_val} diff --git a/repos/spack_repo/builtin/packages/w3m/package.py b/repos/spack_repo/builtin/packages/w3m/package.py index 41ab3e6718e..eb6e4195e26 100644 --- a/repos/spack_repo/builtin/packages/w3m/package.py +++ b/repos/spack_repo/builtin/packages/w3m/package.py @@ -53,10 +53,6 @@ class W3m(AutotoolsPackage): depends_on("termcap", when="termlib=termcap") depends_on("ncurses+termlib", when="termlib=ncurses") - # https support - variant("https", default=True, description="support https protocol") - depends_on("openssl@:1.0.2u", when="+https") - # X11 support variant("image", default=True, description="enable image") depends_on("libx11", when="+image") diff --git a/repos/spack_repo/builtin/packages/wannier90/package.py b/repos/spack_repo/builtin/packages/wannier90/package.py index 5260678aace..7d4619a3cb8 100644 --- a/repos/spack_repo/builtin/packages/wannier90/package.py +++ b/repos/spack_repo/builtin/packages/wannier90/package.py @@ -112,19 +112,17 @@ def edit(self, spec, prefix): ) filter_file( "../../wannier90.x: .*", - "../../wannier90.x: $(OBJS) " "../wannier_prog.F90 $(LIBRARY)", + "../../wannier90.x: $(OBJS) ../wannier_prog.F90 $(LIBRARY)", join_path(self.stage.source_path, "src/Makefile.2"), ) filter_file( - "../../postw90.x: $(OBJS_POST) " "$(POSTDIR)postw90.F90", - "../../postw90.x: $(OBJS_POST) " "$(POSTDIR)postw90.F90 $(LIBRARY)", + "../../postw90.x: $(OBJS_POST) $(POSTDIR)postw90.F90", + "../../postw90.x: $(OBJS_POST) $(POSTDIR)postw90.F90 $(LIBRARY)", join_path(self.stage.source_path, "src/Makefile.2"), string=True, ) filter_file( - "$(COMPILER) ../wannier_prog.F90 " - "$(LDOPTS) $(OBJS) $(LIBS) " - "-o ../../wannier90.x", + "$(COMPILER) ../wannier_prog.F90 $(LDOPTS) $(OBJS) $(LIBS) -o ../../wannier90.x", "$(COMPILER) -I../obj ../wannier_prog.F90 " "$(LDOPTS) -L../.. -lwannier " "-o ../../wannier90.x", @@ -143,8 +141,8 @@ def edit(self, spec, prefix): string=True, ) filter_file( - "$(AR) $(ARFLAGS) " "$(LIBRARY) $(OBJS2) $(OBJS)", - "$(MPIF90) $(FCOPTS) -shared -o " "$(LIBRARY) $(OBJS2) $(OBJS) $(LIBS)", + "$(AR) $(ARFLAGS) $(LIBRARY) $(OBJS2) $(OBJS)", + "$(MPIF90) $(FCOPTS) -shared -o $(LIBRARY) $(OBJS2) $(OBJS) $(LIBS)", join_path(self.stage.source_path, "src/Makefile.2"), string=True, ) diff --git a/repos/spack_repo/builtin/packages/warpx/package.py b/repos/spack_repo/builtin/packages/warpx/package.py index 47effc316e7..24fa88de7a2 100644 --- a/repos/spack_repo/builtin/packages/warpx/package.py +++ b/repos/spack_repo/builtin/packages/warpx/package.py @@ -17,7 +17,7 @@ class Warpx(CMakePackage, PythonExtension): """ homepage = "https://ecp-warpx.github.io" - url = "https://github.com/BLAST-WarpX/warpx/archive/refs/tags/25.04.tar.gz" + url = "https://github.com/BLAST-WarpX/warpx/archive/refs/tags/26.04.tar.gz" git = "https://github.com/BLAST-WarpX/warpx.git" maintainers("ax3l", "dpgrote", "EZoni", "RemiLehe") @@ -26,20 +26,17 @@ class Warpx(CMakePackage, PythonExtension): license("BSD-3-Clause-LBNL") version("develop", branch="development") + version("26.04", sha256="484175b83b7752c2de1d947b181f2e1406d27dda95b4f51dbf7fcbc78c5a4bc4") + version("26.03", sha256="7f857a2189dc9bf428825f2c17e74c6404d73e616a59d2f94d8d3692acb5d26d") + version("26.01", sha256="c3b34a93e350e068c07e3107784885562cfa5c93ce3fd65fed002e5a6353d63d") + version("25.12", sha256="fb59497e8427cf491312f83a72b011281d0aa04f6ebbb59b20afcbe0d86b136c") + version("25.11", sha256="4e2b4636fee995ad075a907cf216fc089d1220824b8743b62c01e188fa6c23d7") version("25.04", sha256="374136fbf566d65307dfe95ae12686ccaf3e649d2f66a79cd856585986c94ac7") - with default_args(deprecated=True): - version("25.03", sha256="18155ff67b036a00db2a25303058316167192a81cfe6dc1dec65fdef0b6d9903") - version("25.02", sha256="7bdea9c1e94f82dbc3565f14f6b6ad7658a639217a10a6cf08c05a16aa26266f") - # 22.01+ requires C++17 or newer - # 20.01+ requires C++14 or newer - - for v in ["25.04", "25.03", "25.02", "develop"]: - depends_on( - f"amrex@{v} build_system=cmake +linear_solvers +pic +particles +shared +tiny_profile", - when=f"@{v}", - type=("build", "link"), - ) - depends_on("py-amrex@{0}".format(v), when="@{0} +python".format(v), type=("build", "run")) + + depends_on("amrex build_system=cmake +linear_solvers +pic +particles +shared +tiny_profile") + for v in ["develop", "26.04", "26.03", "26.01", "25.12", "25.11", "25.04"]: + depends_on(f"amrex@{v}", when=f"@{v}") + depends_on(f"py-amrex@{v}", when=f"@{v} +python", type=("build", "run")) variant("app", default=True, description="Build the WarpX executable application") variant("ascent", default=False, description="Enable Ascent in situ visualization") @@ -52,6 +49,7 @@ class Warpx(CMakePackage, PythonExtension): multi=False, description="On-node, accelerated computing backend", ) + # TODO: 25.06+ also provides RCYLINDER RSPHERE, but w/o Python support variant( "dims", default="1,2,rz,3", @@ -83,8 +81,12 @@ class Warpx(CMakePackage, PythonExtension): description="Floating point precision (single/double)", ) variant("fft", default=True, description="Enable support for FFT-based solvers") + variant( + "petsc", default=False, description="Enable PETSc linear/nonlinear solvers", when="@26.01:" + ) variant("python", default=False, description="Enable Python bindings") variant("qed", default=True, description="Enable QED support") + variant("simd", default=False, description="Enable SIMD support", when="@25.09:") variant("qedtablegen", default=False, description="QED table generation support") variant("shared", default=True, description="Build a shared version of the library") variant("tprof", default=True, description="Enable tiny profiling features") @@ -95,12 +97,12 @@ class Warpx(CMakePackage, PythonExtension): depends_on("boost@1.66.0: +math", when="+qedtablegen") depends_on("cmake@3.24.0:", type="build") with when("+ascent"): - depends_on("ascent", when="+ascent") - depends_on("ascent +cuda", when="+ascent compute=cuda") - depends_on("ascent +mpi", when="+ascent +mpi") + depends_on("ascent") + depends_on("ascent +cuda", when="compute=cuda") + depends_on("ascent +mpi", when="+mpi") depends_on("amrex +ascent +conduit") with when("+catalyst"): - depends_on("libcatalyst@2.0: +conduit") + depends_on("libcatalyst@2.0:") depends_on("libcatalyst +mpi", when="+mpi") depends_on("amrex +catalyst +conduit") with when("dims=1"): @@ -115,6 +117,13 @@ class Warpx(CMakePackage, PythonExtension): depends_on("amrex +eb") with when("+fft"): depends_on("amrex +fft") + with when("+petsc"): + depends_on("petsc") + depends_on("amrex +petsc") + with when("+simd"): + depends_on("vir-simd", type="build") + depends_on("amrex +simd") + depends_on("py-amrex +simd", when="+python") depends_on("mpi", when="+mpi") with when("+mpi"): depends_on("amrex +mpi") @@ -126,7 +135,6 @@ class Warpx(CMakePackage, PythonExtension): depends_on("amrex precision=single") with when("precision=double"): depends_on("amrex precision=double") - depends_on("py-pybind11@2.12.0:", when="+python", type=("build", "link")) depends_on("sensei@4.0.0:", when="+sensei") with when("compute=cuda"): depends_on("amrex +cuda") @@ -152,12 +160,19 @@ class Warpx(CMakePackage, PythonExtension): depends_on("pkgconfig", type="build") with when("compute=sycl"): depends_on("amrex +sycl") + depends_on("intel-oneapi-mkl", when="+fft") with when("+fft dims=rz"): depends_on("lapackpp") + depends_on("lapackpp +cuda", when="compute=cuda") + depends_on("lapackpp +rocm", when="compute=hip") + depends_on("lapackpp +sycl", when="compute=sycl") depends_on("blaspp") depends_on("blaspp +cuda", when="compute=cuda") + depends_on("blaspp +rocm", when="compute=hip") + depends_on("blaspp +sycl", when="compute=sycl") with when("+openpmd"): depends_on("openpmd-api@0.16.1:") + depends_on("openpmd-api@0.17.0:", when="@26.02:") depends_on("openpmd-api ~mpi", when="~mpi") depends_on("openpmd-api +mpi", when="+mpi") @@ -165,24 +180,20 @@ class Warpx(CMakePackage, PythonExtension): # note: in Spack, we only need the cmake package, not py-cmake with when("+python"): extends("python") - depends_on("python@3.8:", type=("build", "run")) + depends_on("python@3.9:", type=("build", "run")) + depends_on("python@3.11:", type=("build", "run"), when="@26.03:") depends_on("py-numpy@1.15.0:", type=("build", "run")) depends_on("py-mpi4py@2.1.0:", type=("build", "run"), when="+mpi") depends_on("py-periodictable@1.5:1", type=("build", "run")) - depends_on("py-picmistandard@0.33.0", type=("build", "run"), when="@25.01:") + depends_on("py-picmistandard@0.33.0", type=("build", "run"), when="@25.01:25.10") + depends_on("py-picmistandard@0.34.0", type=("build", "run"), when="@25.11:") depends_on("py-pip@23:", type="build") depends_on("py-setuptools@42:", type="build") depends_on("py-pybind11@2.12.0:", type=("build", "link")) + depends_on("py-pybind11@3.0.1:", when="@25.08:", type=("build", "link")) depends_on("py-wheel@0.40:", type="build") - conflicts("~qed +qedtablegen", msg="WarpX PICSAR QED table generation needs +qed") - - # https://github.com/BLAST-WarpX/warpx/issues/5774 - conflicts( - "compute=sycl dims=rz", - when="+fft", - msg="WarpX spectral solvers are not yet running on SYCL GPUs for RZ (GH#5774)", - ) + conflicts("~qed", when="+qedtablegen", msg="WarpX PICSAR QED table generation needs +qed") def cmake_args(self): spec = self.spec @@ -203,9 +214,11 @@ def cmake_args(self): self.define_from_variant("WarpX_MPI_THREAD_MULTIPLE", "mpithreadmultiple"), self.define_from_variant("WarpX_OPENPMD", "openpmd"), "-DWarpX_PRECISION={0}".format(spec.variants["precision"].value.upper()), + self.define_from_variant("WarpX_PETSC", "petsc"), self.define_from_variant("WarpX_PYTHON", "python"), self.define_from_variant("WarpX_QED", "qed"), self.define_from_variant("WarpX_QED_TABLE_GEN", "qedtablegen"), + self.define_from_variant("WarpX_SIMD", "simd"), ] args.append("-DWarpX_amrex_internal=OFF") @@ -243,9 +256,12 @@ def cmake_args(self): return args - def edit(self, spec, prefix): - with when("+python"): - self.build_targets.extend(["pip_wheel", "pip_install_nodeps"]) + @property + def build_targets(self): + targets = super().build_targets + if self.spec.satisfies("+python"): + targets.extend(["pip_wheel", "pip_install_nodeps"]) + return targets @property def libs(self): @@ -285,8 +301,9 @@ def _get_input_options(self, dim, post_install): # test openPMD output if compiled in if "+openpmd" in spec: cli_args.append("diag1.format=openpmd") - # RZ: thetaMode output uses different variables - cli_args.append("diag1.fields_to_plot=Er Et Ez Br Bt Bz jr jt jz rho") + if dim == "rz": + # RZ: thetaMode output uses different variables + cli_args.append("diag1.fields_to_plot=Er Et Ez Br Bt Bz jr jt jz rho") return cli_args def check(self): @@ -324,7 +341,7 @@ def run_warpx(self, dim): dim_arg = f"{dim}d" if dim.isdigit() else dim exe = find(self.prefix.bin, f"warpx.{dim_arg}.*", recursive=False)[0] cli_args = self._get_input_options(dim, True) - warpx = which(exe) + warpx = which(exe, required=True) warpx(*cli_args) def test_warpx_1d(self): diff --git a/repos/spack_repo/builtin/packages/watch/package.py b/repos/spack_repo/builtin/packages/watch/package.py index afd5584b380..3783a9352e5 100644 --- a/repos/spack_repo/builtin/packages/watch/package.py +++ b/repos/spack_repo/builtin/packages/watch/package.py @@ -28,13 +28,13 @@ class Watch(AutotoolsPackage): depends_on("automake", type="build") depends_on("libtool", type="build") depends_on("m4", type="build") - depends_on("pkgconfig@0.9.0:", type="build") + depends_on("pkgconfig", type="build") depends_on("gettext", type="build") depends_on("ncurses") # https://github.com/Homebrew/homebrew-core/blob/master/Formula/watch.rb def autoreconf(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("autogen.sh") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/wget/package.py b/repos/spack_repo/builtin/packages/wget/package.py index 2c4ca44cc61..04ebb55aef6 100644 --- a/repos/spack_repo/builtin/packages/wget/package.py +++ b/repos/spack_repo/builtin/packages/wget/package.py @@ -20,6 +20,7 @@ class Wget(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0-or-later WITH OpenSSL-Exception") + version("1.25.0", sha256="766e48423e79359ea31e41db9e5c289675947a7fcf2efdcedb726ac9d0da3784") version("1.24.5", sha256="fa2dc35bab5184ecbc46a9ef83def2aaaa3f4c9f3c97d4bd19dcb07d4da637de") version("1.21.4", sha256="81542f5cefb8faacc39bbbc6c82ded80e3e4a88505ae72ea51df27525bcde04c") version("1.21.3", sha256="5726bb8bc5ca0f6dc7110f6416e4bb7019e2d2ff5bf93d1ca2ffcc6656f220e5") diff --git a/repos/spack_repo/builtin/packages/which/package.py b/repos/spack_repo/builtin/packages/which/package.py index a16c6d9ae30..c57bac05af8 100644 --- a/repos/spack_repo/builtin/packages/which/package.py +++ b/repos/spack_repo/builtin/packages/which/package.py @@ -18,6 +18,7 @@ class Which(AutotoolsPackage, GNUMirrorPackage): license("GPL-3.0") + version("2.23", sha256="a2c558226fc4d9e4ce331bd2fd3c3f17f955115d2c00e447618a4ef9978a2a73") version("2.21", sha256="f4a245b94124b377d8b49646bf421f9155d36aa7614b6ebf83705d3ffc76eaad") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/whip/package.py b/repos/spack_repo/builtin/packages/whip/package.py index f33225a6c72..c05815a9d5d 100644 --- a/repos/spack_repo/builtin/packages/whip/package.py +++ b/repos/spack_repo/builtin/packages/whip/package.py @@ -21,6 +21,7 @@ class Whip(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") version("main", branch="main") + version("0.4.0", sha256="bdf73dfc13bada3af111a6fd65c4903cec3998b98d6676c59b1e50ebd624d82c") version("0.3.0", sha256="0c803e9453bc9c0cc8fbead507635b5c30465b6c2d46328f2a6a1140b4a8ff48") version("0.2.0", sha256="d8fec662526accbd1624922fdf01a077d6f312cf253382660e4a2f65e28e8686") version("0.1.0", sha256="5d557794f4afc8332fc660948a342f69e22bc9e5d575ffb3e3944cf526db5ec9") diff --git a/repos/spack_repo/builtin/packages/whizard/package.py b/repos/spack_repo/builtin/packages/whizard/package.py index e865304081a..2e5a91a4d7b 100644 --- a/repos/spack_repo/builtin/packages/whizard/package.py +++ b/repos/spack_repo/builtin/packages/whizard/package.py @@ -82,7 +82,7 @@ class Whizard(AutotoolsPackage): depends_on("qgraf", when="+gosam") depends_on( - "openloops@2.0.0: +compile_extra num_jobs=1 " "processes=eett,eevvjj,ppllj,tbw", + "openloops@2.0.0: +compile_extra num_jobs=1 processes=eett,eevvjj,ppllj,tbw", when="+openloops", ) depends_on("texlive", when="+latex") @@ -147,12 +147,18 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("FC", self.compiler.fc) env.set("F77", self.compiler.fc) + def setup_run_environment(self, env: EnvironmentModifications) -> None: + # Whizard creates a whizard_setup.[c]sh script that sets the + # LD_LIBRARY_PATH that is necessary because whizard builds more + # libraries on invocation, which are usually not linked via RPATH + env.prepend_path("LD_LIBRARY_PATH", self.spec["whizard"].libs.directories[0]) + @run_before("autoreconf") def prepare_whizard(self): # As described in the manual (SVN Repository version) # https://whizard.hepforge.org/manual/manual003.html#sec%3Aprerequisites if not os.path.exists("configure.ac"): - shell = which("sh") + shell = which("sh", required=True) shell("build_master.sh") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/wi4mpi/package.py b/repos/spack_repo/builtin/packages/wi4mpi/package.py index b4b3582f592..6d1dd7aae86 100644 --- a/repos/spack_repo/builtin/packages/wi4mpi/package.py +++ b/repos/spack_repo/builtin/packages/wi4mpi/package.py @@ -17,6 +17,11 @@ class Wi4mpi(CMakePackage): license("CECILL-B") + version("4.0.1", sha256="7bbbce936345058e0494e1bcf903e222dd8dc368ad50d69f00d9b5186f5958f2") + version("4.0.0", sha256="fcfd1febea92941d95f61b894cfdb8c1d915dd2574308e1f9e58590cc90b554e") + version("3.7.1", sha256="1944d012853c7fccd7245d31fbaaff00da71be9e7381350abc4fd3e2e262f927") + version("3.7.0", sha256="d7cb73c2d0f070bd20c5b6e159375bd55673eaf9135a60843cc2110d02f2a9dd") + version("3.6.5", sha256="400e45a3c611e2d9e7f9514b9b925294674ef8bdbad6e57dc3ed344e9d5852c1") version("3.6.4", sha256="be1732a1aed1e2946873951a344b572f11f2a55cd06c634580a9398b5877e22a") version("3.6.3", sha256="c327babc892cc3c2bdddfacf3011e6fcb7e00a04e814de31f5e707cba3199c5c") version("3.6.2", sha256="4b784d27decfff9cbd29f072ba75bb0f6c471d6edc7f1037df1ab7ccbcceffba") diff --git a/repos/spack_repo/builtin/packages/win_sdk/package.py b/repos/spack_repo/builtin/packages/win_sdk/package.py index 7680dbefbe4..9a914ad4e05 100644 --- a/repos/spack_repo/builtin/packages/win_sdk/package.py +++ b/repos/spack_repo/builtin/packages/win_sdk/package.py @@ -25,6 +25,7 @@ class WinSdk(Package): # The sdk has many libraries and executables. Record one for detection purposes libraries = ["rcdll.dll"] + version("10.0.26100") version("10.0.22621") version("10.0.19041") version("10.0.18362") @@ -45,6 +46,8 @@ class WinSdk(Package): # we can ensure that requirment here # WinSDK is very backwards compatible, however older # MSVC editions may have problems with newer SDKs + conflicts("%msvc@:19.16.00000", when="@10.0.26100") + conflicts("%msvc@:19.16.00000", when="@10.0.22621") conflicts("%msvc@:19.16.00000", when="@10.0.19041") conflicts("%msvc@:19.16.00000", when="@10.0.18362") conflicts("%msvc@:19.15.00000", when="@10.0.17763") diff --git a/repos/spack_repo/builtin/packages/win_wdk/package.py b/repos/spack_repo/builtin/packages/win_wdk/package.py index c4da6526ec2..cf1587dc516 100644 --- a/repos/spack_repo/builtin/packages/win_wdk/package.py +++ b/repos/spack_repo/builtin/packages/win_wdk/package.py @@ -23,46 +23,58 @@ class WinWdk(Package): # The wdk has many libraries and executables. Record one for detection purposes libraries = ["mmos.lib"] + version( + "10.0.26100", + sha256="cc3c968aca86e8ef72e178e100dc5be1290449df724139ffa94eebb99f840149", + url="https://download.microsoft.com/download/7e94e645-61e3-479b-811b-981b4c514d5d/KIT_BUNDLE_WDK_MEDIACREATION/wdksetup.exe", + expand=False, + ) + version( + "10.0.22621", + sha256="a891543c0eaf610757ee7852f515c5ce89d0202f22a15dfa31c4d49f2bafdf27", + url="https://download.microsoft.com/download/7/b/f/7bfc8dbe-00cb-47de-b856-70e696ef4f46/wdk/wdksetup.exe", + expand=False, + ) version( "10.0.19041", sha256="5f4ea0c55af099f97cb569a927c3a290c211f17edcfc65009f5b9253b9827925", - url="https://go.microsoft.com/fwlink/?linkid=2128854", + url="https://download.microsoft.com/download/c/f/8/cf80b955-d578-4635-825c-2801911f9d79/wdk/wdksetup.exe", expand=False, ) version( "10.0.18362", sha256="c35057cb294096c63bbea093e5024a5fb4120103b20c13fa755c92f227b644e5", - url="https://go.microsoft.com/fwlink/?linkid=2085767", + url="https://download.microsoft.com/download/2/9/3/29376990-B744-43C5-AE5C-99405068D58B/WDK/wdksetup.exe", expand=False, ) version( "10.0.17763", sha256="e6e5a57bf0a58242363cd6ca4762f44739f19351efc06cad382cca944b097235", - url="https://go.microsoft.com/fwlink/?linkid=2026156", + url="https://download.microsoft.com/download/1/4/0/140EBDB7-F631-4191-9DC0-31C8ECB8A11F/wdk/wdksetup.exe", expand=False, ) version( "10.0.17134", sha256="48e636117bb7bfe66b1ade793cc8e885c42c880fadaee471782d31b5c4d13e9b", - url="https://go.microsoft.com/fwlink/?linkid=873060", + url="https://download.microsoft.com/download/B/5/8/B58D625D-17D6-47A8-B3D3-668670B6D1EB/wdk/wdksetup.exe", expand=False, ) version( "10.0.16299", sha256="14efbcc849e5977417e962f1cd68357d21abf27393110b9d95983ad03fc22ef4", - url="https://go.microsoft.com/fwlink/p/?linkid=859232", + url="https://download.microsoft.com/download/7/D/D/7DD48DE6-8BDA-47C0-854A-539A800FAA90/wdk/wdksetup.exe", expand=False, ) version( "10.0.15063", sha256="489b497111bc791d9021b3573bfd93086a28b598c7325ab255e81c6f5d80a820", - url="https://go.microsoft.com/fwlink/p/?LinkID=845980", + url="https://download.microsoft.com/download/4/E/0/4E07EAAD-E394-4EA8-B2B8-D46E46A409C5/wdk/wdksetup.exe", expand=False, ) version( "10.0.14393", sha256="0bfb2ac9db446e0d98c29ef7341a8c8e8e7aa24bc72b00c5704a88b13f48b3cb", - url="https://go.microsoft.com/fwlink/p/?LinkId=526733", + url="https://download.microsoft.com/download/8/1/6/816FE939-15C7-4185-9767-42ED05524A95/wdk/wdksetup.exe", expand=False, ) @@ -73,6 +85,8 @@ class WinWdk(Package): # need one to one dep on SDK per https://github.com/MicrosoftDocs/windows-driver-docs/issues/1550 # additionally, the WDK needs to be paired with a version of the Windows SDK # as per https://learn.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk#download-icon-step-2-install-windows-11-version-22h2-sdk + depends_on("win-sdk@10.0.26100", when="@10.0.26100") + depends_on("win-sdk@10.0.22621", when="@10.0.22621") depends_on("win-sdk@10.0.19041", when="@10.0.19041") depends_on("win-sdk@10.0.18362", when="@10.0.18362") depends_on("win-sdk@10.0.17763", when="@10.0.17763") diff --git a/repos/spack_repo/builtin/packages/wireshark/package.py b/repos/spack_repo/builtin/packages/wireshark/package.py index b7ad4fc92e4..fe415bb3d9d 100644 --- a/repos/spack_repo/builtin/packages/wireshark/package.py +++ b/repos/spack_repo/builtin/packages/wireshark/package.py @@ -100,7 +100,7 @@ def cmake_args(self): @run_after("install") def symlink(self): if self.spec.satisfies("platform=darwin"): - link( + symlink( join_path(self.prefix, "Wireshark.app/Contents/MacOS/Wireshark"), self.prefix.bin.wireshark, ) diff --git a/repos/spack_repo/builtin/packages/wps/package.py b/repos/spack_repo/builtin/packages/wps/package.py index e5c0ab1dc11..9e8c69546e5 100644 --- a/repos/spack_repo/builtin/packages/wps/package.py +++ b/repos/spack_repo/builtin/packages/wps/package.py @@ -112,7 +112,7 @@ def configure(self, spec, prefix): Executable("./configure")(input=fp) def build(self, spec, prefix): - csh = which("csh") + csh = which("csh", required=True) csh("./compile") def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/wrf/package.py b/repos/spack_repo/builtin/packages/wrf/package.py index 997759888ab..9fc058d009a 100644 --- a/repos/spack_repo/builtin/packages/wrf/package.py +++ b/repos/spack_repo/builtin/packages/wrf/package.py @@ -69,6 +69,16 @@ class Wrf(Package): maintainers("MichaelLaufer", "ptooley") tags = ["windows"] + version( + "4.7.1", + sha256="11186188b033d26332e31769c1f7aff9349406920a7f72eeb256d5881f7223f4", + url="https://github.com/wrf-model/WRF/releases/download/v4.7.1/v4.7.1.tar.gz", + ) + version( + "4.7.0", + sha256="ab1267675ca0ccc8bc7f8cdf260f5868b60149edd75a67329523f6ce23a8da87", + url="https://github.com/wrf-model/WRF/releases/download/v4.7.0/v4.7.0.tar.gz", + ) version( "4.6.1", sha256="b8ec11b240a3cf1274b2bd609700191c6ec84628e4c991d3ab562ce9dc50b5f2", @@ -243,7 +253,8 @@ class Wrf(Package): depends_on("c", type="build") # generated depends_on("fortran", type="build") # generated - depends_on("pkgconfig", type=("build")) + depends_on("gmake", type="build") + depends_on("pkgconfig", type="build") depends_on("libtirpc") depends_on("mpi") @@ -345,6 +356,9 @@ def create_aocc_config(self): zen_conf = (Path(__file__).parent / "aocc_config.inc").read_text().format(**param) + if self.spec.satisfies("%aocc@5.1:"): + zen_conf = zen_conf.replace("-finline-aggressive ", "") # removed flag in AOCC 5.1+ + if self.spec.satisfies("@4.0:"): filter_file("#insert new stanza here", zen_conf, "arch/configure.defaults") else: @@ -451,7 +465,7 @@ def configure(self, spec, prefix): break if stallcounter > 300: raise InstallError( - "Output stalled for 30s, presumably an " "undetected question." + "Output stalled for 30s, presumably an undetected question." ) time.sleep(0.1) # Try to do a bit of rate limiting stallcounter += 1 @@ -472,7 +486,7 @@ def configure(self, spec, prefix): def patch_for_libmvec(self): if self.spec.satisfies("@3.9.1.1 %aocc"): fp = self.package_dir + "/patches/3.9/aocc_lmvec.patch" - which("patch")("-s", "-p1", "-i", "{0}".format(fp), "-d", ".") + which("patch", required=True)("-s", "-p1", "-i", "{0}".format(fp), "-d", ".") def run_compile_script(self): csh_bin = self.spec["tcsh"].prefix.bin.csh @@ -504,7 +518,7 @@ def build(self, spec, prefix): result = self.run_compile_script() if not result: - tty.warn("Compilation failed first time (WRF idiosyncrasies?) " "- trying again...") + tty.warn("Compilation failed first time (WRF idiosyncrasies?) - trying again...") result = self.run_compile_script() if not result: diff --git a/repos/spack_repo/builtin/packages/wsmancli/package.py b/repos/spack_repo/builtin/packages/wsmancli/package.py index ef3e2a58ef5..f599d4e3621 100644 --- a/repos/spack_repo/builtin/packages/wsmancli/package.py +++ b/repos/spack_repo/builtin/packages/wsmancli/package.py @@ -28,5 +28,5 @@ class Wsmancli(AutotoolsPackage): depends_on("openwsman") def autoreconf(self, spec, prefix): - bash = which("bash") + bash = which("bash", required=True) bash("./bootstrap") diff --git a/repos/spack_repo/builtin/packages/wt/package.py b/repos/spack_repo/builtin/packages/wt/package.py index da600e91154..e779586a987 100644 --- a/repos/spack_repo/builtin/packages/wt/package.py +++ b/repos/spack_repo/builtin/packages/wt/package.py @@ -39,9 +39,7 @@ class Wt(CMakePackage): variant("postgresql", default=False, description="create PostgreSQL DBO") # variant('firebird', default=False, description='create Firebird DBO') variant( - "pango", - default=True, - description="improved font support in PDF and raster image " "painting", + "pango", default=True, description="improved font support in PDF and raster image painting" ) variant("zlib", default=True, description="compression in the built-in httpd") # variant('fastcgi', default=False, diff --git a/repos/spack_repo/builtin/packages/wxwidgets/package.py b/repos/spack_repo/builtin/packages/wxwidgets/package.py index 8ad866687b3..2f3cbd7e382 100644 --- a/repos/spack_repo/builtin/packages/wxwidgets/package.py +++ b/repos/spack_repo/builtin/packages/wxwidgets/package.py @@ -24,6 +24,7 @@ class Wxwidgets(AutotoolsPackage): git = "https://github.com/wxWidgets/wxWidgets.git" version("develop", branch="master") + version("3.2.7", sha256="69a1722f874d91cd1c9e742b72df49e0fab02890782cf794791c3104cee868c6") version("3.2.6", sha256="939e5b77ddc5b6092d1d7d29491fe67010a2433cf9b9c0d841ee4d04acb9dce7") version("3.2.5", sha256="0ad86a3ad3e2e519b6a705248fc9226e3a09bbf069c6c692a02acf7c2d1c6b51") version("3.2.4", sha256="0640e1ab716db5af2ecb7389dbef6138d7679261fbff730d23845ba838ca133e") diff --git a/repos/spack_repo/builtin/packages/xabclib/package.py b/repos/spack_repo/builtin/packages/xabclib/package.py index d257654360d..82d232614ae 100644 --- a/repos/spack_repo/builtin/packages/xabclib/package.py +++ b/repos/spack_repo/builtin/packages/xabclib/package.py @@ -38,7 +38,7 @@ def edit(self, spec, prefix): m.filter("$(LD)", "$(LD) -mlcmain=main", string=True) def build(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("./make.all") def install(self, spec, prefix): diff --git a/repos/spack_repo/builtin/packages/xcb_proto/package.py b/repos/spack_repo/builtin/packages/xcb_proto/package.py index 0720f2634d6..09abc985bbc 100644 --- a/repos/spack_repo/builtin/packages/xcb_proto/package.py +++ b/repos/spack_repo/builtin/packages/xcb_proto/package.py @@ -26,24 +26,6 @@ class XcbProto(AutotoolsPackage, XorgPackage): version("1.15.2", sha256="7072beb1f680a2fe3f9e535b797c146d22528990c72f63ddb49d2f350a3653ed") version("1.14.1", sha256="f04add9a972ac334ea11d9d7eb4fc7f8883835da3e4859c9afa971efdf57fcc3") version("1.14", sha256="186a3ceb26f9b4a015f5a44dcc814c93033a5fc39684f36f1ecc79834416a605") - version( - "1.13", - sha256="0698e8f596e4c0dbad71d3dc754d95eb0edbb42df5464e0f782621216fa33ba7", - url="https://xcb.freedesktop.org/dist/xcb-proto-1.13.tar.gz", - deprecated=True, - ) - version( - "1.12", - sha256="cfa49e65dd390233d560ce4476575e4b76e505a0e0bacdfb5ba6f8d0af53fd59", - url="https://xcb.freedesktop.org/dist/xcb-proto-1.12.tar.gz", - deprecated=True, - ) - version( - "1.11", - sha256="d12152193bd71aabbdbb97b029717ae6d5d0477ab239614e3d6193cc0385d906", - url="https://xcb.freedesktop.org/dist/xcb-proto-1.11.tar.gz", - deprecated=True, - ) extends("python") diff --git a/repos/spack_repo/builtin/packages/xcb_util_cursor/package.py b/repos/spack_repo/builtin/packages/xcb_util_cursor/package.py index fd446639685..daf7ef37c25 100644 --- a/repos/spack_repo/builtin/packages/xcb_util_cursor/package.py +++ b/repos/spack_repo/builtin/packages/xcb_util_cursor/package.py @@ -18,19 +18,15 @@ class XcbUtilCursor(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/lib/libxcb-cursor" xorg_mirror_path = "lib/xcb-util-cursor-0.1.4.tar.xz" + git = "https://gitlab.freedesktop.org/xorg/lib/libxcb-cursor.git" license("MIT") maintainers("wdconinc") + version("0.1.6", sha256="fdeb8bd127873519be5cc70dcd0d3b5d33b667877200f9925a59fdcad8f7a933") version("0.1.5", sha256="0caf99b0d60970f81ce41c7ba694e5eaaf833227bb2cbcdb2f6dc9666a663c57") version("0.1.4", sha256="28dcfe90bcab7b3561abe0dd58eb6832aa9cc77cfe42fcdfa4ebe20d605231fb") - version( - "0.1.3", - sha256="a322332716a384c94d3cbf98f2d8fe2ce63c2fe7e2b26664b6cea1d411723df8", - url="https://xcb.freedesktop.org/dist/xcb-util-cursor-0.1.4.tar.gz", - deprecated=True, - ) depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/xcb_util_errors/package.py b/repos/spack_repo/builtin/packages/xcb_util_errors/package.py index 352381be5ce..0ae1d0c72f9 100644 --- a/repos/spack_repo/builtin/packages/xcb_util_errors/package.py +++ b/repos/spack_repo/builtin/packages/xcb_util_errors/package.py @@ -20,12 +20,6 @@ class XcbUtilErrors(AutotoolsPackage, XorgPackage): xorg_mirror_path = "lib/xcb-util-errors-1.0.1.tar.xz" version("1.0.1", sha256="5628c87b984259ad927bacd8a42958319c36bdf4b065887803c9d820fb80f357") - version( - "1.0", - sha256="7752a722e580efdbada30632cb23aed35c18757399ac3b547b59fd7257cf5e33", - url="https://xcb.freedesktop.org/dist/xcb-util-errors-1.0.tar.gz", - deprecated=True, - ) depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/xcb_util_image/package.py b/repos/spack_repo/builtin/packages/xcb_util_image/package.py index 4bfa70a79be..7b0cf8e398f 100644 --- a/repos/spack_repo/builtin/packages/xcb_util_image/package.py +++ b/repos/spack_repo/builtin/packages/xcb_util_image/package.py @@ -22,12 +22,6 @@ class XcbUtilImage(AutotoolsPackage, XorgPackage): license("MIT") version("0.4.1", sha256="ccad8ee5dadb1271fd4727ad14d9bd77a64e505608766c4e98267d9aede40d3d") - version( - "0.4.0", - sha256="cb2c86190cf6216260b7357a57d9100811bb6f78c24576a3a5bfef6ad3740a42", - url="https://xcb.freedesktop.org/dist/xcb-util-image-0.4.0.tar.gz", - deprecated=True, - ) depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/xcb_util_keysyms/package.py b/repos/spack_repo/builtin/packages/xcb_util_keysyms/package.py index 392e6d24c4b..bbb02e29a8c 100644 --- a/repos/spack_repo/builtin/packages/xcb_util_keysyms/package.py +++ b/repos/spack_repo/builtin/packages/xcb_util_keysyms/package.py @@ -22,12 +22,6 @@ class XcbUtilKeysyms(AutotoolsPackage, XorgPackage): license("MIT") version("0.4.1", sha256="7c260a5294412aed429df1da2f8afd3bd07b7cba3fec772fba15a613a6d5c638") - version( - "0.4.0", - sha256="0807cf078fbe38489a41d755095c58239e1b67299f14460dec2ec811e96caa96", - url="https://xcb.freedesktop.org/dist/xcb-util-keysyms-0.4.0.tar.gz", - deprecated=True, - ) depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/xcb_util_renderutil/package.py b/repos/spack_repo/builtin/packages/xcb_util_renderutil/package.py index fc36599a36b..a017f60c6a5 100644 --- a/repos/spack_repo/builtin/packages/xcb_util_renderutil/package.py +++ b/repos/spack_repo/builtin/packages/xcb_util_renderutil/package.py @@ -22,12 +22,6 @@ class XcbUtilRenderutil(AutotoolsPackage, XorgPackage): license("MIT") version("0.3.10", sha256="3e15d4f0e22d8ddbfbb9f5d77db43eacd7a304029bf25a6166cc63caa96d04ba") - version( - "0.3.9", - sha256="55eee797e3214fe39d0f3f4d9448cc53cffe06706d108824ea37bb79fcedcad5", - url="https://xcb.freedesktop.org/dist/xcb-util-renderutil-0.3.9.tar.gz", - deprecated=True, - ) depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/xcb_util_wm/package.py b/repos/spack_repo/builtin/packages/xcb_util_wm/package.py index 7a76461026e..036976702bd 100644 --- a/repos/spack_repo/builtin/packages/xcb_util_wm/package.py +++ b/repos/spack_repo/builtin/packages/xcb_util_wm/package.py @@ -22,12 +22,6 @@ class XcbUtilWm(AutotoolsPackage, XorgPackage): license("MIT") version("0.4.2", sha256="62c34e21d06264687faea7edbf63632c9f04d55e72114aa4a57bb95e4f888a0b") - version( - "0.4.1", - sha256="038b39c4bdc04a792d62d163ba7908f4bb3373057208c07110be73c1b04b8334", - url="https://xcb.freedesktop.org/dist/xcb-util-wm-0.4.1.tar.gz", - deprecated=True, - ) depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/xcrysden/package.py b/repos/spack_repo/builtin/packages/xcrysden/package.py new file mode 100644 index 00000000000..92e8a73ad06 --- /dev/null +++ b/repos/spack_repo/builtin/packages/xcrysden/package.py @@ -0,0 +1,84 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.makefile import MakefilePackage + +from spack.package import * + + +class Xcrysden(MakefilePackage): + """XCrySDen is a crystalline and molecular structure visualisation program aiming at display of + isosurfaces and contours, which can be superimposed on crystalline structures and interactively + rotated and manipulated. + """ + + homepage = "http://www.xcrysden.org/XCrySDen.html" + url = "http://www.xcrysden.org/download/xcrysden-1.6.2.tar.gz" + maintainers("gjsd2") + + license("GPL-2.0-or-later") + + version("1.6.3-rc2", sha256="0565f55dfb67c73a824569bd2f02875f1e15c7214b86736fce4cacc3f5a189fe") + version("1.6.2", sha256="811736ee598bec1a5b427fd10e4e063a30dd7cadae96a43a50b36ce90a4f503f") + version("1.6.1", sha256="8a9c6d83c4a9e189dbb977a04ccf1b260871e945afdf1ca75830616a6cb442c5") + version("1.6.0", sha256="9ee1d9a1113c72722f0c7c6e08e70a568b6ee7a2f81a25ac636f46b16741b0b6") + + depends_on("mesa", type=("link", "run")) + depends_on("mesa-glu", type=("link", "run")) + depends_on("tk", type=("link", "run")) + depends_on("tcl", type=("build", "link", "run")) + depends_on("tcl-togl@2:", type=("link", "run")) + depends_on("tcl-bwidget@1.9:", type=("link", "run")) + depends_on("fftw@3:", type=("link", "run")) + depends_on("libx11", type=("build", "link", "run")) + depends_on("libxmu", type=("build", "link", "run")) + + depends_on("c", type="build") + depends_on("fortran", type="build") + + parallel = False + + @run_before("edit") + def copy_system_makefile(self): + copy("system/Make.sys-shared", "Make.sys") + + def build(self, spec, prefix): + make("xcrysden") + + def edit(self, spec, prefix): + togl_lib = f"Togl{spec['tcl-togl'].version.up_to(2)}" + tcl_lib = f"tcl{spec['tcl'].version.up_to(2)}" + tk_lib = f"tk{spec['tk'].version.up_to(2)}" + + env["prefix"] = prefix + + makefile = FileFilter("Makefile") + makefile.filter("xcrysden:.*", "xcrysden: usage bindir src-C src-F src-Tcl") + + makesys = FileFilter("Make.sys") + makesys.filter( + "CFLAGS.*=.*", "CFLAGS += -fcommon -ffast-math -funroll-loops -fPIC -pedantic -Wall" + ) + makesys.filter( + "X_LIB.*=.*", + f"X_LIB = -L{spec['libx11'].prefix.lib} -lX11 -L{spec['libxmu'].prefix.lib} -lXmu", + ) + makesys.filter( + "X_INCDIR.*=.*", + f"X_INCDIR = -I{spec['libx11'].prefix.include} -I{spec['libxmu'].prefix.include}", + ) + makesys.filter("TCL_LIB.*=.*", f"TCL_LIB = -L{spec['tcl'].prefix.lib} -l{tcl_lib}") + makesys.filter( + "TOGL_LIB.*=.*", + f"TOGL_LIB = -L{join_path(spec['tcl-togl'].prefix.lib, togl_lib)} -l{togl_lib}", + ) + makesys.filter("TK_LIB.*=.*", f"TK_LIB = -L{spec['tk'].prefix.lib} -l{tk_lib}") + makesys.filter("^GL_LIB.*=.*", f"GL_LIB = -L{spec['mesa'].prefix.lib} -lGL") + makesys.filter("GLU_LIB.*=.*", f"GLU_LIB = -L{spec['mesa-glu'].prefix.lib} -lGLU") + makesys.filter("FFTW3_LIB.*=.*", f"FFTW3_LIB = -L{spec['fftw'].prefix.lib} -lfftw3") + makesys.filter("TCL_INCDIR.*=.*", f"TCL_INCDIR = -I{spec['tcl'].prefix.include}") + makesys.filter("TOGL_INCDIR.*=.*", f"TOGL_INCDIR = -I{spec['tcl-togl'].prefix.include}") + makesys.filter("TK_INCDIR.*=.*", f"TK_INCDIR = -I{spec['tk'].prefix.include}") + makesys.filter("^GL_INCDIR.*=.*", f"GL_INCDIR = -I{spec['mesa'].prefix.include}") + makesys.filter("FFTW3_INCDIR.*=.*", "FFTW3_INCDIR = -I{spec['fftw'].prefix.include}") diff --git a/repos/spack_repo/builtin/packages/xdelta/package.py b/repos/spack_repo/builtin/packages/xdelta/package.py index 3e12da1fa6f..a7c6ac259ac 100644 --- a/repos/spack_repo/builtin/packages/xdelta/package.py +++ b/repos/spack_repo/builtin/packages/xdelta/package.py @@ -32,7 +32,7 @@ class Xdelta(AutotoolsPackage): def autoreconf(self, spec, prefix): with working_dir(self.build_directory): - bash = which("bash") + bash = which("bash", required=True) bash( "-c", "aclocal && autoreconf --install && libtoolize && autoconf && " diff --git a/repos/spack_repo/builtin/packages/xerces_c/package.py b/repos/spack_repo/builtin/packages/xerces_c/package.py index 37cf16c9415..dc8c677d4ed 100644 --- a/repos/spack_repo/builtin/packages/xerces_c/package.py +++ b/repos/spack_repo/builtin/packages/xerces_c/package.py @@ -23,14 +23,6 @@ class XercesC(AutotoolsPackage): version("3.3.0", sha256="ef752578587e26013a933f16d76305c9b43ca32f869e3d3426986e03efb01d64") version("3.2.5", sha256="1db4028c9b7f1f778efbf4a9462d65e13f9938f2c22f9e9994e12c49ba97e252") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2018-1311 - version("3.2.4", sha256="74aa626fc71e729ee227602870dd29a5a01cd8c9c1c7330837a51da2eb5722cc") - version("3.2.3", sha256="45c2329e684405f2b8854ecbddfb8d5b055cdf0fe4d35736cc352c504989bbb6") - version("3.2.2", sha256="1f2a4d1dbd0086ce0f52b718ac0fa4af3dc1ce7a7ff73a581a05fbe78a82bce0") - version("3.2.1", sha256="a36b6e162913ec218cfb84772d2535d43c3365355a601d45d4b8ce11f0ece0da") - version("3.1.4", sha256="9408f12c1628ecf80730bedbe8b2caad810edd01bb4c66f77b60c873e8cc6891") - version("3.1.3", sha256="fc5e5e0247b108b8d64d75aeb124cabdee9b7fcd725a89fe2242b4637b25c1fa") # Whilst still using Autotools, can use full cxxstd with 'default' # If build is moved to CMake, then will also need a patch to Xerces-C's @@ -38,7 +30,7 @@ class XercesC(AutotoolsPackage): variant( "cxxstd", default="default", - values=("default", "98", "11", "14", "17", "20"), + values=("default", "98", "11", "14", "17", "20", "23"), multi=False, description="Use the specified C++ standard when building", ) diff --git a/repos/spack_repo/builtin/packages/xf86vidmodeproto/package.py b/repos/spack_repo/builtin/packages/xf86vidmodeproto/package.py index 85fe5e6b8be..c6ba0551315 100644 --- a/repos/spack_repo/builtin/packages/xf86vidmodeproto/package.py +++ b/repos/spack_repo/builtin/packages/xf86vidmodeproto/package.py @@ -19,5 +19,7 @@ class Xf86vidmodeproto(AutotoolsPackage, XorgPackage): version("2.3.1", sha256="c3512b11cefa7558576551f8582c6e7071c8a24d78176059d94b84b48b262979") + depends_on("c", type="build") + depends_on("pkgconfig", type="build") depends_on("util-macros", type="build") diff --git a/repos/spack_repo/builtin/packages/xictools/Makefile.in.patch b/repos/spack_repo/builtin/packages/xictools/Makefile.in.patch new file mode 100644 index 00000000000..9561ab0474e --- /dev/null +++ b/repos/spack_repo/builtin/packages/xictools/Makefile.in.patch @@ -0,0 +1,43 @@ +--- a/KLU/Makefile.in ++++ b/KLU/Makefile.in +@@ -169,19 +169,24 @@ patch: unpack + + depend: unpack patch + +-AMD/Lib/libamd.a :: ++# Ensure source is unpacked before building libraries ++AMD/Lib/libamd.a :: AMD/Lib + @$(MAKE) -C AMD/Lib CC="$(CC)" CF="$(CFLAGS)" + +-BTF/Lib/libbtf.a :: ++BTF/Lib/libbtf.a :: BTF/Lib + @$(MAKE) -C BTF/Lib CC="$(CC)" CF="$(CFLAGS)" + +-COLAMD/Lib/libcolamd.a :: ++COLAMD/Lib/libcolamd.a :: COLAMD/Lib + @$(MAKE) -C COLAMD/Lib CC="$(CC)" CF="$(CFLAGS)" + +-KLU/Lib/libklu.a :: ++KLU/Lib/libklu.a :: KLU/Lib + @$(MAKE) -C KLU/Lib CC="$(CC)" CF="$(CFLAGS)" + +-SuiteSparse_config/SuiteSparse_config.o : \ ++# These directory targets trigger unpack/patch if directories don't exist ++AMD/Lib BTF/Lib COLAMD/Lib KLU/Lib SuiteSparse_config: ++ @$(MAKE) patch ++ ++SuiteSparse_config/SuiteSparse_config.o : SuiteSparse_config \ + SuiteSparse_config/SuiteSparse_config.c + $(CC) $(CFLAGS) -c SuiteSparse_config/SuiteSparse_config.c -o $@ + +--- a/mozy/Makefile.in ++++ b/mozy/Makefile.in +@@ -222,6 +222,7 @@ install_test:: + # Settings/Update & Security/For Developers + + install_links:: ++ @$(BASE)/util/mkdirpth $(toolbin) + @if [ -n "$(EXESUFFIX)" ]; then \ + $(BASE)/util/make_link $(toolbin)/hlp2latex$(EXESUFFIX) \ + $(dst_bin)/hlp2latex$(EXESUFFIX); \ + diff --git a/repos/spack_repo/builtin/packages/xictools/README.md b/repos/spack_repo/builtin/packages/xictools/README.md new file mode 100644 index 00000000000..52b8a95518f --- /dev/null +++ b/repos/spack_repo/builtin/packages/xictools/README.md @@ -0,0 +1,81 @@ +This report provides a summary of licenses found in xictools-4.3.23, including +expanded tarball content. Short-form SPDX license identifiers are used in this +document where possible. + +## Summary + +1. The XicTools codebase is primarily released under **Apache-2.0**, with + specific exceptions for third-party components and inherited code. The + `license/header` file contains the standard **Apache-2.0** header used + throughout the codebase. +2. `xt_base/` is required when building xictools. Most files are licensed under + **Apache-2.0**. Some files are licensed under **Spencer-94 AND BSD-4-Clause-UC**, + see `xt_base/regex/COPYRIGHT`. `xt_base/miscutil/randval.cc` contains both + **Apache-2.0** and **BSD-4-Clause-UC** text. `xt_base/sparse/` contains code + derived from Berkeley's Sparse package used in SPICE3 under a historical + license similar to **HPND-UC** but with additional attribution requirements. +3. Building WRspice will include several GPL and LGPL components: + 1. `adms/` contains **GPL-3.0-or-later** licensed code. + 2. `KLU/SuiteSparse/` expanded from `KLU/SuiteSparse-4.4.6.tar.gz` contains + components with **LGPL-2.1-or-later**, **GPL-2.0-or-later**, and + **BSD-3-Clause** licenses. Only the **LGPL-2.1-or-later code** is used by + WRspice (see `KLU/Makefile.sample`). + 3. `vl/` contains code derived from UC Berkeley that requires propagating a + copyright notice. Some examples are licensed under **GPL-2.0-or-later**. + WRspice requires `vl`, xic does not. + 4. `wrspice/mmjco/` contains **GPL-3.0-or-later** licensed code. + `wrspice/mmjco/cmpfit-1.4/` contains **Minpack** licensed code. + 5. Some files contain UC Berkeley copyright notices (from SPICE3) requiring + propagation of the copyright notice, similar to `vl`. +4. `mozy/` provides the help system and viewer and contains + **LGPL-2.0-or-later** licensed code in `mozy/src/htm/`. +5. `fastcap/` and `fasthenry/` contain permissively licensed code without a SPDX + identifier. The license is identical to + https://www.rle.mit.edu/cpg/copyright_disclaimer.htm. However, `fasthenry` + depends on `KLU` and is built with **LGPL-2.1-or-later** code. +6. `mrouter/` contains **Apache-2.0** licensed code. Code in tarballs in + `mrouter/source.lefdef/` is from Cadence and also **Apache-2.0** licensed. +7. `secure/` contains **Apache-2.0** licensed code. This is legacy license + server code not built by package.py. + +## KLU/ details + +The `SuiteSparse/` directory expanded from SuiteSparse-4.4.6.tar.gz contains +multiple components with different licenses. Only the AMD, BTF, COLAMD, KLU, and +SuiteSparse_config folders are used for WRspice. No licensing restrictions apply +to SuiteSparse_config/ per SuiteSparse_config.h. + +### **LGPL-2.1-or-later** Components +- `AMD/` +- `BTF/` +- `CAMD/` +- `CCOLAMD/` +- `CHOLMOD/Check/` +- `CHOLMOD/Cholesky/` +- `CHOLMOD/Core/` +- `CHOLMOD/Partition/` +- `COLAMD/` +- `CSparse/` +- `CXSparse/` +- `CXSparse_newfiles/` +- `KLU/` +- `LDL/` + +### **GPL-2.0-or-later** Components +- `CHOLMOD/Demo/` +- `CHOLMOD/GPU/` +- `CHOLMOD/Include` +- `CHOLMOD/MatrixOps/` +- `CHOLMOD/Modify/` +- `CHOLMOD/Supernodal/` +- `GPUQREngine/` +- `RBio/` +- `SPQR/` +- `SuiteSparse_GPURuntime/` +- `UMFPACK/` + +### **BSD-3-Clause** +- `UFget/UFhelp.html` + +### No Licensing Information +- `MATLAB_Tools/` diff --git a/repos/spack_repo/builtin/packages/xictools/malloc-2.8.6.c.patch b/repos/spack_repo/builtin/packages/xictools/malloc-2.8.6.c.patch new file mode 100644 index 00000000000..4cc48119aed --- /dev/null +++ b/repos/spack_repo/builtin/packages/xictools/malloc-2.8.6.c.patch @@ -0,0 +1,11 @@ +--- a/xt_base/malloc/malloc-2.8.6.c ++++ b/xt_base/malloc/malloc-2.8.6.c +@@ -763,7 +763,7 @@ MAX_RELEASE_CHECK_RATE default: 4095 unless not HAVE_MMAP + /* #define HAVE_USR_INCLUDE_MALLOC_H */ + + #ifdef HAVE_USR_INCLUDE_MALLOC_H +-#include "/usr/include/malloc.h" ++#include + #else /* HAVE_USR_INCLUDE_MALLOC_H */ + #ifndef STRUCT_MALLINFO_DECLARED + /* HP-UX (and others?) redefines mallinfo unless _STRUCT_MALLINFO is defined */ diff --git a/repos/spack_repo/builtin/packages/xictools/package.py b/repos/spack_repo/builtin/packages/xictools/package.py new file mode 100644 index 00000000000..9524feb0582 --- /dev/null +++ b/repos/spack_repo/builtin/packages/xictools/package.py @@ -0,0 +1,133 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import shutil + +from spack_repo.builtin.build_systems.makefile import MakefilePackage + +from spack.package import * + + +class Xictools(MakefilePackage): + """ + Suite of integrated circuit design tools including Xic (graphical editor) + and WRspice (circuit simulator) for small and medium scale digital and + analog integrated circuits. (from http://wrcad.com/products.html) + """ + + homepage = "http://wrcad.com/xictools/index.html" + url = "https://github.com/wrcad/xictools/archive/refs/tags/xt-4.3.23.tar.gz" + + # See README.md for details + license( + "Apache-2.0 AND Spencer-94 AND BSD-4-Clause-UC " + "AND https://www.rle.mit.edu/cpg/copyright_disclaimer.htm AND HPND-UC", + when="~gpl", + checked_by="kllrak", + ) + license( + "Apache-2.0 AND Spencer-94 AND BSD-4-Clause-UC " + "AND https://www.rle.mit.edu/cpg/copyright_disclaimer.htm AND HPND-UC" + "AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND GPL-3.0-or-later AND Minpack", + when="+gpl", + checked_by="kllrak", + ) + + version("4.3.23", sha256="f329d71bf637ed09921de6b0f6fdc38443d1a97617ca528a4eafa1be37c99e72") + + # Set as sticky since most will expect WRspice and GUI to be included + variant( + "gpl", + default=True, + description="Build xictools with LGPL- and GPL-licensed code for WRspice and help system.", + sticky=True, + ) + variant("qt", default=True, description="Build xictools with Qt5 GUI.", sticky=True) + + depends_on("c", type="build") + depends_on("cxx", type="build") + + # Build tools + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("libtool", type="build") + depends_on("m4", type="build") + depends_on("bison", type="build") + depends_on("flex", type="build") + depends_on("git", type="build") + + # Library dependencies + depends_on("gsl") + depends_on("libjpeg") + depends_on("libtiff") + depends_on("ncurses") + depends_on("qt@5+opengl", when="+qt") + + build_targets = ["all"] + install_targets = ["install"] + + # Parallel builds seen as unreliable... + # See https://github.com/JuliaPackaging/Yggdrasil/pull/8155#discussion_r1500792779 + # and https://github.com/wrcad/xictools/issues/28 + parallel = False + + # Remove stray include that breaks building +qt~gpl + patch("qtmain.cc.patch", when="@4:") + + # Missing function stub for PopUpHelp with +qt~gpl + patch("qtinterf.cc.patch", when="@4:") + + # Avoid hardcoding path to malloc.h + patch("malloc-2.8.6.c.patch", when="@4:") + + # 1. fasthenry build assumes that KLU tarball has been unpacked and patched already. + # This probably doesn't become apparent unless you accidentally include fasthenry + # in a ~gpl build, but was found when constructing this package.py file. + # 2. xictools/bin assumed to exist before it does during a +qt+gpl build. + patch("Makefile.in.patch", when="@4:") + + def edit(self, spec: Spec, prefix: Prefix) -> None: + # Copy Makefile.sample to Makefile + shutil.copy("Makefile.sample", "Makefile") + + # Configure the Makefile + makefile = FileFilter("Makefile") + + # Set PREFIX to Spack installation prefix (command-line argument format) + makefile.filter(r"^PREFIX\s*=.*", f"PREFIX = --prefix={prefix}") + + # Enable direct installation without packaging (command-line argument format) + makefile.filter(r"^#?\s*ITOPOK\s*=.*", "ITOPOK = --enable-itopok=yes") + + # Set Qt5 graphics location using Spack's qt prefix + if spec.satisfies("+qt"): + # since we're only building Qt, just assume its our preference. + filter_file(r"grpref=GTK2", "grpref=QT5", "xic/bin/xic.sh") + filter_file(r"grpref=GTK2", "grpref=QT5", "wrspice/bin/wrspice.sh") + filter_file(r"grpref=GTK2", "grpref=QT5", "mozy/bin/mozy.sh") + filter_file(r"grpref=GTK2", "grpref=QT5", "mozy/bin/xeditor.sh") + qt_prefix = spec["qt"].prefix + makefile.filter(r"^#?\s*GFXLOC\s*=.*", f"GFXLOC = --enable-qt5={qt_prefix}") + + if spec.satisfies("~gpl"): + makefile.filter(r"^#?\s*NOMOZY\s*=.*", "NOMOZY = --enable-nomozy=yes") + + # Build SUBDIRS based on variants + subdirs = ["xt_base"] + if spec.satisfies("+gpl"): + subdirs.append("$(MOZY)") + subdirs.append("$(WRSPICE)") + subdirs.append("$(XIC)") + subdirs.append("fastcap") + + # Uses KLU, contains LGPL-2.1-or-later components + if spec.satisfies("+gpl"): + subdirs.append("fasthenry") + + makefile.filter(r"^SUBDIRS\s*=.*", f"SUBDIRS = {' '.join(subdirs)}") + + make("config") + + def setup_run_environment(self, env): + env.prepend_path("PATH", join_path(self.prefix, "xictools", "bin")) diff --git a/repos/spack_repo/builtin/packages/xictools/qtinterf.cc.patch b/repos/spack_repo/builtin/packages/xictools/qtinterf.cc.patch new file mode 100644 index 00000000000..58a099e6eff --- /dev/null +++ b/repos/spack_repo/builtin/packages/xictools/qtinterf.cc.patch @@ -0,0 +1,31 @@ +--- a/xt_base/qtinterf/qtinterf.cc ++++ b/xt_base/qtinterf/qtinterf.cc +@@ -38,6 +38,7 @@ + $Id:$ + *========================================================================*/ + ++#include "config.h" + #include "qtinterf.h" + #include "qtfile.h" + #include "qtfont.h" +@@ -1721,6 +1722,20 @@ QTbag::SetErrorLogName(const char *fname) + } + + ++#ifndef HAVE_MOZY ++ ++// Resolve help pop-up when mozy is not included. ++// ++bool ++QTbag::PopUpHelp(const char*) ++{ ++ PopUpErr(MODE_ON, "Help system is not available in this executable."); ++ return (false); ++} ++ ++#endif ++ ++ + // Static function. + // Return a QColor, initialized with the given attr color. Used + // with the QTbag popups, main color functions are in QTdev. diff --git a/repos/spack_repo/builtin/packages/xictools/qtmain.cc.patch b/repos/spack_repo/builtin/packages/xictools/qtmain.cc.patch new file mode 100644 index 00000000000..81a88b5ddf0 --- /dev/null +++ b/repos/spack_repo/builtin/packages/xictools/qtmain.cc.patch @@ -0,0 +1,10 @@ +--- a/xic/src/qtxic/qtmain.cc ++++ b/xic/src/qtxic/qtmain.cc +@@ -72,7 +72,6 @@ + #include "cd_celldb.h" + #include "miscutil/pathlist.h" + #include "miscutil/tvals.h" +-#include "help/help_context.h" + #include "qtinterf/qtidleproc.h" + #ifdef HAVE_MOZY + #include "editif.h" diff --git a/repos/spack_repo/builtin/packages/xios/bld_extern_1.0.patch b/repos/spack_repo/builtin/packages/xios/bld_extern_1.0.patch deleted file mode 100644 index cf2aeaaa4ed..00000000000 --- a/repos/spack_repo/builtin/packages/xios/bld_extern_1.0.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- a/bld.cfg 2017-12-23 11:41:14.000000000 +1100 -+++ b/bld.cfg 2017-12-23 15:34:53.914024629 +1100 -@@ -24,9 +24,6 @@ - - search_src true - src::zzz . --src::date $PWD/extern/boost/src/date_time --src::blitz $PWD/extern/blitz/src --src::netcdf $PWD/extern/netcdf4 - bld::lib xios - bld::target libxios.a - #bld::target generate_fortran_interface.exe -@@ -37,11 +34,11 @@ - bld::tool::fc %FCOMPILER - bld::tool::fpp %FPP - bld::tool::cpp %CPP --bld::tool::cppflags %CBASE_INC -I${PWD}/extern/src_netcdf -I${PWD}/extern/boost/include -I${PWD}/extern/rapidxml/include -I${PWD}/extern/blitz/include --bld::tool::fppflags %BASE_INC -I${PWD}/extern/boost/include -I${PWD}/extern/rapidxml/include -+bld::tool::cppflags %CBASE_INC -I${PWD}/extern/rapidxml/include -+bld::tool::fppflags %BASE_INC -I${PWD}/extern/rapidxml/include - bld::tool::ld %LINKER - bld::tool::ldflags %LD_FLAGS --bld::tool::cflags %CFLAGS %CBASE_INC -I${PWD}/extern/src_netcdf -I${PWD}/extern/boost/include -I${PWD}/extern/rapidxml/include -I${PWD}/extern/blitz/include -+bld::tool::cflags %CFLAGS %CBASE_INC -I${PWD}/extern/rapidxml/include - bld::tool::fflags %FFLAGS %FBASE_INC - bld::tool::cppkeys %CPP_KEY - bld::tool::fppkeys %CPP_KEY diff --git a/repos/spack_repo/builtin/packages/xios/package.py b/repos/spack_repo/builtin/packages/xios/package.py index 4d63c3165e3..d745ff2aabf 100644 --- a/repos/spack_repo/builtin/packages/xios/package.py +++ b/repos/spack_repo/builtin/packages/xios/package.py @@ -16,27 +16,9 @@ class Xios(Package): homepage = "https://forge.ipsl.jussieu.fr/ioserver/wiki" version( "2.6", - revision=2714, + revision="2714", svn="https://forge.ipsl.jussieu.fr/ioserver/svn/XIOS2/branches/xios-2.6", ) - version( - "2.5", - revision=1860, - svn="https://forge.ipsl.jussieu.fr/ioserver/svn/XIOS2/branches/xios-2.5", - deprecated=True, - ) - version( - "2.0", - revision=1627, - svn="https://forge.ipsl.jussieu.fr/ioserver/svn/XIOS2/branches/xios-2.0", - deprecated=True, - ) - version( - "1.0", - revision=910, - svn="http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/branchs/xios-1.0", - deprecated=True, - ) variant( "mode", @@ -46,10 +28,6 @@ class Xios(Package): ) # NOTE: oasis coupler could be supported with a variant - # Use spack versions of blitz and netcdf-c for compatibility - # with recent compilers and optimised platform libraries: - patch("bld_extern_1.0.patch", when="@:1.0") - # Workaround bug #17782 in llvm, where reading a double # followed by a character is broken (e.g. duration '1d') # https://bugs.llvm.org/show_bug.cgi?id=17782 @@ -169,9 +147,7 @@ def xios_fcm(self): %CPP {CC} -E %FPP {CC} -E -P -x c %MAKE make -""".format( - **param - ) +""".format(**param) elif spec.satisfies("%cce"): # In the CC compiler prior to cce/8.3.7, # optimisation must be reduced to avoid a bug, @@ -203,9 +179,7 @@ def xios_fcm(self): %CPP cpp %FPP cpp -P -CC %MAKE gmake -""".format( - **param - ) +""".format(**param) else: raise InstallError("Unsupported compiler.") diff --git a/repos/spack_repo/builtin/packages/xkbcomp/package.py b/repos/spack_repo/builtin/packages/xkbcomp/package.py index 079f0b13d33..fd562437f57 100644 --- a/repos/spack_repo/builtin/packages/xkbcomp/package.py +++ b/repos/spack_repo/builtin/packages/xkbcomp/package.py @@ -18,11 +18,13 @@ class Xkbcomp(AutotoolsPackage, XorgPackage): homepage = "https://gitlab.freedesktop.org/xorg/app/xkbcomp" xorg_mirror_path = "app/xkbcomp-1.3.1.tar.gz" + git = "https://gitlab.freedesktop.org/xorg/app/xkbcomp.git" license("MIT") maintainers("wdconinc") + version("1.5.0", sha256="d070694dd8d94714aa1da3e3590b75084a4b183da3980866aedd68835954b97c") version("1.4.7", sha256="00cecc490fcbe2f789cf13c408c459673c2c33ab758d802677321cffcda35373") version("1.4.6", sha256="b216a2c8c0eab83f3dc4a3d5ee2bdf7827b30e49c8907035d0f222138eca0987") version("1.4.5", sha256="e88a4d86b9925ea1e8685dd5ea29c815abafb8ddf19bf5f1a1e0650839252c23") diff --git a/repos/spack_repo/builtin/packages/xkeyboard_config/package.py b/repos/spack_repo/builtin/packages/xkeyboard_config/package.py index 0c3a3bfbe55..271dea9c279 100644 --- a/repos/spack_repo/builtin/packages/xkeyboard_config/package.py +++ b/repos/spack_repo/builtin/packages/xkeyboard_config/package.py @@ -21,6 +21,8 @@ class XkeyboardConfig(AutotoolsPackage, XorgPackage): version("2.34", sha256="a5882238b4199ca90428aea102790aaa847e6e214653d956bf2abba3027107ba") version("2.18", sha256="d5c511319a3bd89dc40622a33b51ba41a2c2caad33ee2bfe502363fcc4c3817d") + depends_on("c", type="build") + depends_on("libx11@1.4.3:") depends_on("libxslt", type="build") diff --git a/repos/spack_repo/builtin/packages/xmlf90/package.py b/repos/spack_repo/builtin/packages/xmlf90/package.py index 8aceb774c49..0a42905ae26 100644 --- a/repos/spack_repo/builtin/packages/xmlf90/package.py +++ b/repos/spack_repo/builtin/packages/xmlf90/package.py @@ -38,7 +38,7 @@ class Xmlf90(AutotoolsPackage): @when("@1.5.2") def autoreconf(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("autogen.sh") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/xnedit/package.py b/repos/spack_repo/builtin/packages/xnedit/package.py index 3fb3ef4404d..ab9e3518da1 100644 --- a/repos/spack_repo/builtin/packages/xnedit/package.py +++ b/repos/spack_repo/builtin/packages/xnedit/package.py @@ -47,7 +47,9 @@ class Xnedit(MakefilePackage): depends_on("cxx", type="build") depends_on("automake", type="build") + depends_on("fontconfig") depends_on("libx11") + depends_on("libxft") depends_on("libxt") depends_on("libxpm") depends_on("motif", when="+motif") diff --git a/repos/spack_repo/builtin/packages/xnnpack/package.py b/repos/spack_repo/builtin/packages/xnnpack/package.py index 0f1e8c87135..ad1707ca519 100644 --- a/repos/spack_repo/builtin/packages/xnnpack/package.py +++ b/repos/spack_repo/builtin/packages/xnnpack/package.py @@ -16,7 +16,6 @@ class Xnnpack(CMakePackage): license("BSD-3-Clause") - version("master", branch="master", deprecated=True) version("2024-02-29", commit="fcbf55af6cf28a4627bcd1f703ab7ad843f0f3a2") # py-torch@2.3: version("2022-12-22", commit="51a987591a6fc9f0fc0707077f53d763ac132cbf") # py-torch@2.0:2.2 version("2022-02-16", commit="ae108ef49aa5623b896fc93d4298c49d1750d9ba") # py-torch@1.12:1.13 diff --git a/repos/spack_repo/builtin/packages/xorg_server/package.py b/repos/spack_repo/builtin/packages/xorg_server/package.py index 9fce94b0d01..817f55cf659 100644 --- a/repos/spack_repo/builtin/packages/xorg_server/package.py +++ b/repos/spack_repo/builtin/packages/xorg_server/package.py @@ -92,8 +92,7 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: # https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/406 env.set("CPPFLAGS", "-fcommon") - gl_libs = self.spec["gl"].libs - env.set("GL_LIBS", gl_libs) + env.set("GL_LIBS", self.spec["gl"].libs.ld_flags) env.set("GL_CFLAGS", self.spec["gl"].headers.cpp_flags) def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/xpmem/package.py b/repos/spack_repo/builtin/packages/xpmem/package.py index 4cc272e70b9..93010981cc8 100644 --- a/repos/spack_repo/builtin/packages/xpmem/package.py +++ b/repos/spack_repo/builtin/packages/xpmem/package.py @@ -15,9 +15,9 @@ class Xpmem(AutotoolsPackage): # transferred to a new repository on GitLab: https://gitlab.com/hjelmn/xpmem # However, it looks like that the repository on GitHub has a more recent # version of the codebase. - homepage = "https://github.com/hjelmn/xpmem" - url = "https://github.com/hjelmn/xpmem/archive/v2.6.3.tar.gz" - git = "https://github.com/hjelmn/xpmem.git" + homepage = "https://github.com/hpc/xpmem" + url = "https://github.com/hpc/xpmem/archive/v2.6.3.tar.gz" + git = "https://github.com/hpc/xpmem.git" maintainers("skosukhin") @@ -42,13 +42,13 @@ class Xpmem(AutotoolsPackage): # Here 2.6.5-36 referes to 2.6.5 version and 36th commit id patch("xpmem_v2.6.5-36.patch", when="@2.6.5-36", level=1) patch( - "https://github.com/hjelmn/xpmem/commit/cbd6e5bd3d2a1d3823c335ddcd3c57b94474f578.patch?full_index=1", + "https://github.com/hpc/xpmem/commit/cbd6e5bd3d2a1d3823c335ddcd3c57b94474f578.patch?full_index=1", sha256="75299398b6c15546479bfbb8aa972431f58637fe2f0328196a26738bd7148140", when="@2.6.5-36", level=1, ) patch( - "https://github.com/hjelmn/xpmem/commit/7d346aaf1fdfc24d38cebb4ad107b7f5c43769e9.patch?full_index=1", + "https://github.com/hpc/xpmem/commit/7d346aaf1fdfc24d38cebb4ad107b7f5c43769e9.patch?full_index=1", sha256="6be8c5f33d55c611924d8412253740f6f4b738e6d98e32981fa300d2ccbe99cc", when="@2.6.5-36", level=1, @@ -62,7 +62,7 @@ class Xpmem(AutotoolsPackage): depends_on("m4", type="build") # It will become possible to disable the kernel module only starting 2.6.6: - # https://github.com/hjelmn/xpmem/pull/24 + # https://github.com/hpc/xpmem/pull/24 conflicts("~kernel-module", when="@:2.6.5") # Ideally, we should list all non-Linux-based platforms here: @@ -92,7 +92,7 @@ def configure_args(self): if self.spec.satisfies("@:2.6.5"): fmt = self.spec.format # The following arguments will not be needed starting 2.6.6: - # https://github.com/hjelmn/xpmem/pull/18 + # https://github.com/hpc/xpmem/pull/18 args.extend( [ fmt("--with-default-prefix={prefix}"), diff --git a/repos/spack_repo/builtin/packages/xrootd/package.py b/repos/spack_repo/builtin/packages/xrootd/package.py index 101393f4006..910dc6ce0e5 100644 --- a/repos/spack_repo/builtin/packages/xrootd/package.py +++ b/repos/spack_repo/builtin/packages/xrootd/package.py @@ -17,13 +17,18 @@ class Xrootd(CMakePackage): "https://xrootd.web.cern.ch/download/v5.7.0/xrootd-5.7.0.tar.gz", "https://github.com/xrootd/xrootd/releases/download/v5.7.0/xrootd-5.7.0.tar.gz", ] - list_url = "https://xrootd.web.cern.ch/dload.html" + list_url = "https://xrootd.org/dload.html" git = "https://github.com/xrootd/xrootd.git" maintainers("gartung", "greenc-FNAL", "marcmengel", "vitodb", "wdconinc") license("LGPL-3.0-only") + version("6.0.0", sha256="bc8d00b6c0b48f9186e3ad09e8e4e6eedf1067fad68f6d6a4f4e939bcf87007c") + version("5.9.2", sha256="e29edb755d5f728eff0c74f7bd8cec35c954239ea747975eebd9c1e2bd61edb5") + version("5.9.1", sha256="39946509a50e790ab3fcc77ba0f4c9b66abef221262756aa8bb2494f00a0e321") + version("5.8.4", sha256="d8716bf764a7e8103aab83fbf4906ea2cc157646b1a633d99f91edbf204ff632") + version("5.7.3", sha256="3a90fda99a53cb6005ebecf7d6125ce382cedb0a27fb453e44a2c13bade0a90f") version("5.7.1", sha256="c28c9dc0a2f5d0134e803981be8b1e8b1c9a6ec13b49f5fa3040889b439f4041") version("5.7.0", sha256="214599bba98bc69875b82ac74f2d4b9ac8a554a1024119d8a9802b3d8b9986f8") version("5.6.9", sha256="44196167fbcf030d113e3749dfdecab934c43ec15e38e77481e29aac191ca3a8") @@ -41,35 +46,8 @@ class Xrootd(CMakePackage): version("5.5.3", sha256="703829c2460204bd3c7ba8eaa23911c3c9a310f6d436211ba0af487ef7f6a980") version("5.5.2", sha256="ec4e0490b8ee6a3254a4ea4449342aa364bc95b78dc9a8669151be30353863c6") version("5.5.1", sha256="3556d5afcae20ed9a12c89229d515492f6c6f94f829a3d537f5880fcd2fa77e4") - version("5.3.2", sha256="e8371fb9e86769bece74b9b9d67cb695023cd6a20a1199386fddd9ed840b0875") - version("5.3.1", sha256="7ea3a112ae9d8915eb3a06616141e5a0ee366ce9a5e4d92407b846b37704ee98") - version("5.1.0", sha256="c639536f1bdc5b6b365e807f3337ed2d41012cd3df608d40e91ed05f1c568b6d") - version("5.0.3", sha256="be40a1897d6c1f153d3e23c39fe96e45063bfafc3cc073db88a1a9531db79ac5") - version("5.0.1", sha256="ff4462b0b61db4cc01dda0e26abdd78e43649ee7ac5e90f7a05b74328ff5ac83") - version("4.12.6", sha256="1a9056ab7aeeaafa586ea77e442960c71d233c9ba60c7f9db9262c1410954ac4") - version("4.12.3", sha256="6f2ca1accc8d49d605706bb556777c753860bf46d845b1ee11393a5cb5987f15") - version("4.12.2", sha256="29f7bc3ea51b9d5d310eabd177152245d4160223325933c67f938ed5120f67bb") - version("4.12.1", sha256="7350d9196a26d17719b839fd242849e3995692fda25f242e67ac6ec907218d13") - version("4.12.0", sha256="69ef4732256d9a88127de4bfdf96bbf73348e0c70ce1d756264871a0ffadd2fc") - version("4.11.3", sha256="8e7a64fd55dfb452b6d5f76a9a97c493593943227b377623a3032da9197c7f65") - version("4.11.2", sha256="4620824db97fcc37dc3dd26110da8e5c3aab1d8302e4921d4f32e83207060603") - version("4.10.0", sha256="f07f85e27d72e9e8ff124173c7b53619aed8fcd36f9d6234c33f8f7fd511995b") - version("4.8.5", sha256="42e4d2cc6f8b442135f09bcc12c7be38b1a0c623a005cb5e69ff3d27997bdf73") - version("4.8.4", sha256="f148d55b16525567c0f893edf9bb2975f7c09f87f0599463e19e1b456a9d95ba") - version("4.8.3", sha256="9cd30a343758b8f50aea4916fa7bd37de3c37c5b670fe059ae77a8b2bbabf299") - version("4.8.2", sha256="8f28ec53e799d4aa55bd0cc4ab278d9762e0e57ac40a4b02af7fc53dcd1bef39") - version("4.8.1", sha256="edee2673d941daf7a6e5c963d339d4a69b4db5c4b6f77b4548b3129b42198029") - version("4.8.0", sha256="0b59ada295341902ca01e9d23e29780fb8df99a6d2bd1c2d654e9bb70c877ad8") - version("4.7.1", sha256="90ddc7042f05667045b06e02c8d9c2064c55d9a26c02c50886254b8df85fc577") - version("4.7.0", sha256="6cc69d9a3694e8dcf2392e9c3b518bd2497a89b3a9f25ffaec62efa52170349b") - version("4.6.1", sha256="0261ce760e8788f85d68918d7702ae30ec677a8f331dae14adc979b4cc7badf5") - version("4.6.0", sha256="b50f7c64ed2a4aead987de3fdf6fce7ee082407ba9297b6851cd917db72edd1d") - version("4.5.0", sha256="27a8e4ef1e6bb6bfe076fef50afe474870edd198699d43359ef01de2f446c670") - version("4.4.1", sha256="3c295dbf750de086c04befc0d3c7045fd3976611c2e75987c1477baca37eb549") - version("4.4.0", sha256="f066e7488390c0bc50938d23f6582fb154466204209ca92681f0aa06340e77c8") - version("4.3.0", sha256="d34865772d975b5d58ad80bb05312bf49aaf124d5431e54dc8618c05a0870e3c") - variant("davix", default=True, description="Build with Davix") + variant("davix", default=True, description="Build with Davix", when="@:5") variant( "ec", default=True, @@ -83,57 +61,44 @@ class Xrootd(CMakePackage): variant( "cxxstd", - default="98", - values=("98", "11", "14", "17", "20"), - multi=False, - description="Use the specified C++ standard when building", - when="@:4.5.99", - ) - - variant( - "cxxstd", - default="11", - values=("98", "11", "14", "17", "20"), + default="14", + values=("11", "14", "17", "20"), multi=False, description="Use the specified C++ standard when building", - when="@4.6.0:5.1.99", + when="@:5.6", ) variant( "cxxstd", - default="14", - values=("98", "11", "14", "17", "20"), + default="17", + values=("11", "14", "17", "20"), multi=False, description="Use the specified C++ standard when building", - when="@5.2.0:5.6.99", + when="@5.7:5", ) variant( "cxxstd", - default="17", - values=("98", "11", "14", "17", "20"), + default="20", + values=("11", "14", "17", "20"), multi=False, description="Use the specified C++ standard when building", - when="@5.7.0:", + when="@6:", ) - variant( - "scitokens-cpp", default=False, when="@5.1.0:", description="Enable support for SciTokens" - ) + variant("scitokens-cpp", default=False, description="Enable support for SciTokens") - variant( - "client_only", default=False, description="Build and install client only", when="@4.10.0:" - ) + variant("client_only", default=False, description="Build and install client only") - conflicts("cxxstd=98", when="@4.7.0:") - # C++ standard is not honored without - # https://github.com/xrootd/xrootd/pull/1929 - # Related: C++>14 causes compilation errors with ~client_only. See - # also https://github.com/xrootd/xrootd/pull/1933. + # Before 5.7, the C++ standard was not honored. + # See https://github.com/xrootd/xrootd/pull/1929 + # and https://github.com/xrootd/xrootd/commit/9ef3a2a00b52105883613d2adb6d46a8409b2249 + # Related: C++>14 causes compilation errors with ~client_only. + # See https://github.com/xrootd/xrootd/pull/1933. conflicts("cxxstd=17", when="@5.0:5.5.2") conflicts("cxxstd=20", when="@5.0:5.5.2") - conflicts("cxxstd=17", when="@5 ~client_only") - conflicts("cxxstd=20", when="@5 ~client_only") + conflicts("cxxstd=17", when="@5:5.6 ~client_only") + conflicts("cxxstd=20", when="@5:5.6 ~client_only") conflicts("^scitokens-cpp", when="@:5.5.2 +client_only") depends_on("c", type="build") # generated @@ -142,6 +107,7 @@ class Xrootd(CMakePackage): depends_on("bzip2") depends_on("cmake@2.6:", type="build", when="@3.1.0:") depends_on("cmake@3.16:", type="build", when="@5.6:") + depends_on("cmake@3.18:", type="build", when="@6:") conflicts("^cmake@:3.0", when="@5.0.0") conflicts("^cmake@:3.15.99", when="@5.5.4:5.5") depends_on("davix", when="+davix") @@ -149,8 +115,8 @@ class Xrootd(CMakePackage): depends_on("pkgconfig", type="build", when="+davix") depends_on("libxml2", when="+http") depends_on("uuid", when="@4.11.0:") - depends_on("openssl@:1", when="@:5.4") depends_on("openssl") + depends_on("openssl@1.1.1:", when="@6:") depends_on("python", when="+python") depends_on("py-setuptools", type="build", when="@:5.5 +python") depends_on("py-pip", type="build", when="@5.6: +python") @@ -159,19 +125,14 @@ class Xrootd(CMakePackage): depends_on("zlib-api") depends_on("curl") depends_on("krb5", when="+krb5") - depends_on("json-c") depends_on("scitokens-cpp", when="+scitokens-cpp") - conflicts("^openssl@3:", when="@:5.3.99") + depends_on("libxcrypt", type="link") + depends_on("pkgconfig", when="@6:") + depends_on("libzip", when="@6:") + depends_on("nlohmann-json@3.10.2:", when="@6:") extends("python", when="+python") - # Issue with _STAT_VER not being defined, fixed in 5.0.3 - patch( - "https://github.com/xrootd/xrootd/commit/1f2d48fa23ba220ce92bf8ec6c15305ebbf19564.diff?full_index=1", - sha256="792f4cd4c80018a2d031bbdcf3afe2d8b5bc669249740d669c0eedb8096dc18f", - when="@4:5.0.2", - ) - patch("python-support.patch", level=1, when="@:4.8+python") # https://github.com/xrootd/xrootd/pull/1805 patch( "https://github.com/xrootd/xrootd/commit/c267103e3093d9fc1370d56eed7481dbc10eba7d.patch?full_index=1", @@ -195,11 +156,6 @@ class Xrootd(CMakePackage): patch("no-systemd-pre-5.5.2.patch", when="@:5.5.1") patch("no-systemd-5.5.2.patch", when="@5.5.2:") - @when("@4.7.0:5.1.99") - def patch(self): - """Remove hardcoded -std=c++0x flag""" - filter_file(r"\-std=c\+\+0x", r"", "cmake/XRootDOSDefs.cmake") - @when("@5.2.0:5 +client_only") def patch(self): """Allow CMAKE_CXX_STANDARD to be set in cache""" @@ -215,13 +171,15 @@ def cmake_args(self): define = self.define define_from_variant = self.define_from_variant options = [] - if spec.satisfies("@5.2.0: +client_only") or spec.satisfies("@6:"): + if spec.satisfies("+client_only") or spec.satisfies("@6:"): options += [ define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"), define("CMAKE_CXX_STANDARD_REQUIRED", True), ] options += [ + define("ENABLE_TESTS", self.run_tests), + define("ENABLE_SERVER_TESTS", self.run_tests and spec.satisfies("~client_only")), define_from_variant("ENABLE_HTTP", "http"), define_from_variant("ENABLE_XRDCLHTTP", "davix"), define_from_variant("ENABLE_PYTHON", "python"), @@ -231,13 +189,16 @@ def cmake_args(self): define_from_variant("ENABLE_XRDEC", "ec"), define_from_variant("XRDCL_ONLY", "client_only"), define("ENABLE_CEPH", False), - define("ENABLE_CRYPTO", True), define("ENABLE_FUSE", False), define("ENABLE_MACAROONS", False), define("ENABLE_VOMS", False), define("FORCE_ENABLED", True), - define("USE_SYSTEM_ISAL", True), ] + if spec.satisfies("@:5.7"): + options.append(define("USE_SYSTEM_ISAL", True)) + if spec.satisfies("@:5.5"): + options.append(define("ENABLE_CRYPTO", True)) + # see https://github.com/spack/spack/pull/11581 if "+python" in self.spec: options.append(define("XRD_PYTHON_REQ_VERSION", spec["python"].version.up_to(2))) @@ -246,25 +207,3 @@ def cmake_args(self): options.append("-DSCITOKENS_CPP_DIR=%s" % spec["scitokens-cpp"].prefix) return options - - @when("@:5.1.99") - def setup_build_environment(self, env: EnvironmentModifications) -> None: - cxxstdflag = "" - if self.spec.variants["cxxstd"].value == "98": - cxxstdflag = self.compiler.cxx98_flag - elif self.spec.variants["cxxstd"].value == "11": - cxxstdflag = self.compiler.cxx11_flag - elif self.spec.variants["cxxstd"].value == "14": - cxxstdflag = self.compiler.cxx14_flag - elif self.spec.variants["cxxstd"].value == "17": - cxxstdflag = self.compiler.cxx17_flag - else: - # The user has selected a (new?) legal value that we've - # forgotten to deal with here. - raise InstallError( - "INTERNAL ERROR: cannot accommodate unexpected variant ", - "cxxstd={0}".format(self.spec.variants["cxxstd"].value), - ) - - if cxxstdflag: - env.append_flags("CXXFLAGS", cxxstdflag) diff --git a/repos/spack_repo/builtin/packages/xrootd/python-support.patch b/repos/spack_repo/builtin/packages/xrootd/python-support.patch deleted file mode 100644 index eef580641ca..00000000000 --- a/repos/spack_repo/builtin/packages/xrootd/python-support.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -Naur xrootd-4.8.0/bindings/python/setup.py.in xrootd-4.8.0/bindings/python/setup.py.in ---- xrootd-4.8.0/bindings/python/setup.py.in 2017-12-13 11:28:52.000000000 -0600 -+++ xrootd-4.8.0/bindings/python/setup.py.in 2017-12-21 17:47:51.378701139 -0600 -@@ -16,6 +16,13 @@ - py_cflags = cfg_vars["PY_CFLAGS"] - cfg_vars["PY_CFLAGS"] = " ".join( flag for flag in py_cflags.split() if flag not in ['-Wstrict-prototypes' ${CLANG_PROHIBITED} ] ) - -+ccl=cfg_vars["CC"].split() -+ccl[0]="${CMAKE_C_COMPILER}" -+cfg_vars["CC"] = " ".join(ccl) -+cxxl=cfg_vars["CXX"].split() -+cxxl[0]="${CMAKE_CXX_COMPILER}" -+cfg_vars["CXX"] = " ".join(cxxl) -+cfg_vars["PY_CXXFLAGS"] = "${CMAKE_CXX_FLAGS}" - - sources = list() - depends = list() -diff -Naur xrootd-4.8.0/cmake/XRootDFindLibs.cmake xrootd-4.8.0/cmake/XRootDFindLibs.cmake ---- xrootd-4.8.0/cmake/XRootDFindLibs.cmake 2017-12-13 11:28:52.000000000 -0600 -+++ xrootd-4.8.0/cmake/XRootDFindLibs.cmake 2017-12-21 17:47:51.379701131 -0600 -@@ -85,8 +85,8 @@ - endif() - - if( ENABLE_PYTHON AND (Linux OR APPLE) ) -- find_package( PythonLibs ${XRD_PYTHON_REQ_VERSION} ) - find_package( PythonInterp ${XRD_PYTHON_REQ_VERSION} ) -+ find_package( PythonLibs ${XRD_PYTHON_REQ_VERSION} ) - if( PYTHONINTERP_FOUND AND PYTHONLIBS_FOUND ) - set( BUILD_PYTHON TRUE ) - set( PYTHON_FOUND TRUE ) diff --git a/repos/spack_repo/builtin/packages/xsdk/package.py b/repos/spack_repo/builtin/packages/xsdk/package.py index 8723447ef65..4070e34c02d 100644 --- a/repos/spack_repo/builtin/packages/xsdk/package.py +++ b/repos/spack_repo/builtin/packages/xsdk/package.py @@ -89,7 +89,6 @@ class Xsdk(BundlePackage, CudaPackage, ROCmPackage): version("1.1.0") version("1.0.0") - version("0.8.0", deprecated=True) variant("sycl", default=False, sticky=True, description="Enable sycl variant of xsdk packages") variant("trilinos", default=True, sticky=True, description="Enable trilinos package build") @@ -114,13 +113,16 @@ class Xsdk(BundlePackage, CudaPackage, ROCmPackage): variant("raja", default=(sys.platform != "darwin"), description="Enable raja for hiop, exago") variant("pflotran", default=True, when="@:1.0.0", description="Enable pflotran package build") + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("fortran", type="build") + xsdk_depends_on( "hypre@2.32.0+superlu-dist+shared", when="@1.1.0", cuda_var="cuda", rocm_var="rocm" ) xsdk_depends_on( "hypre@2.30.0+superlu-dist+shared", when="@1.0.0", cuda_var="cuda", rocm_var="rocm" ) - xsdk_depends_on("hypre@2.26.0+superlu-dist+shared", when="@0.8.0", cuda_var="cuda") xsdk_depends_on( "mfem@4.7.0+shared+mpi+superlu-dist+petsc+sundials+examples+miniapps", @@ -134,16 +136,9 @@ class Xsdk(BundlePackage, CudaPackage, ROCmPackage): cuda_var="cuda", rocm_var="rocm", ) - xsdk_depends_on( - "mfem@4.5.0+shared+mpi+superlu-dist+petsc+sundials+examples+miniapps", - when="@0.8.0", - cuda_var="cuda", - rocm_var="rocm", - ) xsdk_depends_on("superlu-dist@9.1.0", when="@1.1.0", cuda_var="cuda", rocm_var="rocm") xsdk_depends_on("superlu-dist@8.2.1", when="@1.0.0", cuda_var="cuda", rocm_var="rocm") - xsdk_depends_on("superlu-dist@8.1.2", when="@0.8.0") xsdk_depends_on("trilinos +superlu-dist", when="@1.0.0: +trilinos ~cuda ~rocm") xsdk_depends_on( @@ -160,18 +155,9 @@ class Xsdk(BundlePackage, CudaPackage, ROCmPackage): + " cxxstd=17", when="@1.0.0 +trilinos", ) - xsdk_depends_on( - "trilinos@13.4.1+hypre+superlu-dist+hdf5~mumps+boost" - + "~suite-sparse+tpetra+nox+ifpack2+zoltan+zoltan2+amesos2" - + "~exodus~dtk+intrepid2+shards+stratimikos gotype=int" - + " cxxstd=14", - when="@0.8.0 +trilinos", - ) xsdk_depends_on("datatransferkit@3.1.1", when="@1.1.0 +trilinos +datatransferkit") xsdk_depends_on("datatransferkit@3.1.1", when="@1.0.0 +trilinos +datatransferkit") - dtk7ver = "3.1-rc2" if sys.platform == "darwin" else "3.1-rc3" - xsdk_depends_on("datatransferkit@" + dtk7ver, when="@0.8.0 +trilinos +datatransferkit") xsdk_depends_on("petsc +batch", when="^cray-mpich") xsdk_depends_on("petsc +sycl +kokkos", when="@1.0.0: +sycl") @@ -187,39 +173,25 @@ class Xsdk(BundlePackage, CudaPackage, ROCmPackage): cuda_var="cuda", rocm_var="rocm", ) - xsdk_depends_on( - "petsc@3.18.1+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64", - when="@0.8.0", - cuda_var="cuda", - rocm_var="rocm", - ) xsdk_depends_on("dealii +trilinos~adol-c", when="+trilinos +dealii") xsdk_depends_on("dealii ~trilinos", when="~trilinos +dealii") xsdk_depends_on( "dealii@9.6.0~assimp~python~doc~gmsh+petsc+slepc+mpi~int64" - + "~netcdf+metis~sundials~ginkgo~symengine~simplex~arborx~cgal~oce" + + "~netcdf+metis~sundials~ginkgo~symengine~simplex~arborx~cgal" + "~opencascade~vtk~taskflow", when="@1.1.0 +dealii", ) xsdk_depends_on( "dealii@9.5.1~assimp~python~doc~gmsh+petsc+slepc+mpi~int64" - + "~netcdf+metis+sundials~ginkgo~symengine~simplex~arborx~cgal~oce" + + "~netcdf+metis+sundials~ginkgo~symengine~simplex~arborx~cgal" + "~opencascade", when="@1.0.0 +dealii", ) - xsdk_depends_on( - "dealii@9.4.0~assimp~python~doc~gmsh+petsc+slepc+mpi~int64" - + "~netcdf+metis+sundials~ginkgo~symengine~simplex~arborx~cgal~oce" - + "~opencascade", - when="@0.8.0 +dealii", - ) xsdk_depends_on("pflotran@5.0.0", when="@1.0.0 +pflotran") - xsdk_depends_on("pflotran@4.0.1", when="@0.8.0 +pflotran") xsdk_depends_on("alquimia@1.1.0", when="@1.0.0 +alquimia") - xsdk_depends_on("alquimia@1.0.10", when="@0.8.0 +alquimia") xsdk_depends_on("sundials +trilinos", when="+trilinos") xsdk_depends_on("sundials +ginkgo", when="+ginkgo @0.8.0:") @@ -236,45 +208,32 @@ class Xsdk(BundlePackage, CudaPackage, ROCmPackage): cuda_var=["cuda", "?magma"], rocm_var=["rocm", "?magma"], ) - xsdk_depends_on( - "sundials@6.4.1~int64+hypre+petsc+superlu-dist", - when="@0.8.0", - cuda_var=["cuda", "?magma"], - rocm_var=["rocm", "?magma"], - ) xsdk_depends_on("plasma@24.8.7", when="@1.1.0 %gcc@6.0:") xsdk_depends_on("plasma@23.8.2:", when="@1.0.0 %gcc@6.0:") - xsdk_depends_on("plasma@22.9.29:", when="@0.8.0 %gcc@6.0:") xsdk_depends_on("magma@2.8.0", when="@1.1.0", cuda_var="?cuda", rocm_var="?rocm") xsdk_depends_on("magma@2.7.1", when="@1.0.0", cuda_var="?cuda", rocm_var="?rocm") - xsdk_depends_on("magma@2.7.0", when="@0.8.0", cuda_var="?cuda", rocm_var="?rocm") xsdk_depends_on("amrex +sycl", when="@1.0.0: +sycl") xsdk_depends_on("amrex@24.10+sundials", when="@1.1.0 +amrex", cuda_var="cuda", rocm_var="rocm") xsdk_depends_on("amrex@23.08+sundials", when="@1.0.0 +amrex", cuda_var="cuda", rocm_var="rocm") - xsdk_depends_on("amrex@22.09+sundials", when="@0.8.0 +amrex", cuda_var="cuda", rocm_var="rocm") xsdk_depends_on("slepc@3.22.1", when="@1.1.0", cuda_var="cuda", rocm_var="rocm") xsdk_depends_on("slepc@3.20.0", when="@1.0.0", cuda_var="cuda", rocm_var="rocm") - xsdk_depends_on("slepc@3.18.1", when="@0.8.0", cuda_var="cuda", rocm_var="rocm") xsdk_depends_on("omega-h +trilinos", when="+trilinos +omega-h") xsdk_depends_on("omega-h ~trilinos", when="~trilinos +omega-h") xsdk_depends_on("omega-h@10.8.6", when="@1.1.0 +omega-h") xsdk_depends_on("omega-h@10.6.0", when="@1.0.0 +omega-h") - xsdk_depends_on("omega-h@9.34.13", when="@0.8.0 +omega-h") xsdk_depends_on("strumpack ~cuda", when="~cuda +strumpack") xsdk_depends_on("strumpack ~slate~openmp", when="~slate @0.8.0: +strumpack") xsdk_depends_on("strumpack@8.0.0", when="@1.1.0 +strumpack", cuda_var=["cuda"]) xsdk_depends_on("strumpack@7.2.0", when="@1.0.0 +strumpack", cuda_var=["cuda"]) - xsdk_depends_on("strumpack@7.0.1", when="@0.8.0 +strumpack", cuda_var=["cuda"]) xsdk_depends_on("pumi@2.2.9+shared", when="@1.1.0") xsdk_depends_on("pumi@2.2.8+shared", when="@1.0.0") - xsdk_depends_on("pumi@2.2.7+shared", when="@0.8.0") tasmanian_openmp = "~openmp" if sys.platform == "darwin" else "+openmp" xsdk_depends_on( @@ -283,16 +242,10 @@ class Xsdk(BundlePackage, CudaPackage, ROCmPackage): xsdk_depends_on( "tasmanian@8.0+mpi+blas" + tasmanian_openmp, when="@1.0.0", cuda_var=["cuda", "?magma"] ) - xsdk_depends_on( - "tasmanian@7.9+xsdkflags+mpi+blas" + tasmanian_openmp, - when="@0.8.0", - cuda_var=["cuda", "?magma"], - ) xsdk_depends_on("arborx+sycl", when="@1.0.0: +arborx +sycl") xsdk_depends_on("arborx@1.7", when="@1.1.0 +arborx") xsdk_depends_on("arborx@1.4.1", when="@1.0.0 +arborx") - xsdk_depends_on("arborx@1.2", when="@0.8.0 +arborx") # the Fortran 2003 bindings of phist require python@3:, but this # creates a conflict with other packages like petsc@main. Actually @@ -304,7 +257,6 @@ class Xsdk(BundlePackage, CudaPackage, ROCmPackage): xsdk_depends_on("phist kernel_lib=petsc", when="~trilinos +phist") xsdk_depends_on("phist@1.12.1 ~fortran ~scamac ~openmp ~host ~int64", when="@1.1.0 +phist") xsdk_depends_on("phist@1.12.0 ~fortran ~scamac ~openmp ~host ~int64", when="@1.0.0 +phist") - xsdk_depends_on("phist@1.11.2 ~fortran ~scamac ~openmp ~host ~int64", when="@0.8.0 +phist") xsdk_depends_on("ginkgo+sycl", when="@1.0.0: +ginkgo +sycl") xsdk_depends_on( @@ -313,26 +265,19 @@ class Xsdk(BundlePackage, CudaPackage, ROCmPackage): xsdk_depends_on( "ginkgo@1.7.0 +mpi ~openmp", when="@1.0.0 +ginkgo", cuda_var="cuda", rocm_var="rocm" ) - xsdk_depends_on( - "ginkgo@1.5.0 +mpi ~openmp", when="@0.8.0 +ginkgo", cuda_var="cuda", rocm_var="rocm" - ) xsdk_depends_on("py-libensemble@1.4.2+petsc4py", when="@1.1.0 +libensemble") xsdk_depends_on("py-petsc4py@3.22.1", when="@1.1.0 +libensemble") xsdk_depends_on("py-libensemble@1.0.0+petsc4py", when="@1.0.0 +libensemble") xsdk_depends_on("py-petsc4py@3.20.1", when="@1.0.0 +libensemble") - xsdk_depends_on("py-libensemble@0.9.3+petsc4py", when="@0.8.0 +libensemble") - xsdk_depends_on("py-petsc4py@3.18.1", when="@0.8.0 +libensemble") xsdk_depends_on("precice ~petsc", when="+precice ^cray-mpich") xsdk_depends_on("precice@3.1.2", when="@1.1.0 +precice") xsdk_depends_on("precice@2.5.0", when="@1.0.0 +precice") - xsdk_depends_on("precice@2.5.0", when="@0.8.0 +precice") bfpk_openmp = "~openmp" if sys.platform == "darwin" else "+openmp" xsdk_depends_on("butterflypack@3.2.0" + bfpk_openmp, when="@1.1.0 +butterflypack") xsdk_depends_on("butterflypack@2.4.0" + bfpk_openmp, when="@1.0.0 +butterflypack") - xsdk_depends_on("butterflypack@2.2.2" + bfpk_openmp, when="@0.8.0 +butterflypack") xsdk_depends_on("heffte+fftw", when="+heffte ~rocm") xsdk_depends_on( @@ -347,25 +292,14 @@ class Xsdk(BundlePackage, CudaPackage, ROCmPackage): cuda_var=["cuda", "?magma"], rocm_var=["rocm", "?magma"], ) - xsdk_depends_on( - "heffte@2.3.0", - when="@0.8.0 +heffte", - cuda_var=["cuda", "?magma"], - rocm_var=["rocm", "?magma"], - ) xsdk_depends_on("slate@2024.10.29", when="@1.1.0 +slate", cuda_var="cuda") xsdk_depends_on("slate@2023.08.25", when="@1.0.0 +slate", cuda_var="cuda") - xsdk_depends_on("slate@2022.07.00", when="@0.8.0 +slate", cuda_var="cuda") xsdk_depends_on("exago@1.6.0~ipopt~hiop~python", when="@1.0.0 +exago ~raja") xsdk_depends_on("exago@1.6.0~ipopt+hiop+raja", when="@1.0.0 +exago +raja", cuda_var="cuda") - xsdk_depends_on("exago@1.5.0~ipopt~hiop~python", when="@0.8.0 +exago ~raja") - xsdk_depends_on("exago@1.5.0~ipopt+hiop+raja", when="@0.8.0 +exago +raja", cuda_var="cuda") xsdk_depends_on("hiop@1.1.0", when="@1.1.0 +hiop ~raja") xsdk_depends_on("hiop@1.1.0+raja", when="@1.1.0 +hiop +raja", cuda_var="cuda") xsdk_depends_on("hiop@1.0.0", when="@1.0.0 +hiop ~raja") xsdk_depends_on("hiop@1.0.0+raja", when="@1.0.0 +hiop +raja", cuda_var="cuda") - xsdk_depends_on("hiop@0.7.1", when="@0.8.0 +hiop ~raja") - xsdk_depends_on("hiop@0.7.1+raja", when="@0.8.0 +hiop +raja", cuda_var="cuda") diff --git a/repos/spack_repo/builtin/packages/xsdk_examples/package.py b/repos/spack_repo/builtin/packages/xsdk_examples/package.py deleted file mode 100644 index 73abd04f1a3..00000000000 --- a/repos/spack_repo/builtin/packages/xsdk_examples/package.py +++ /dev/null @@ -1,108 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - - -from spack_repo.builtin.build_systems.cmake import CMakePackage -from spack_repo.builtin.build_systems.cuda import CudaPackage -from spack_repo.builtin.build_systems.rocm import ROCmPackage - -from spack.package import * - - -class XsdkExamples(CMakePackage, CudaPackage, ROCmPackage): - """xSDK Examples show usage of libraries in the xSDK package.""" - - homepage = "https://xsdk.info" - url = "https://github.com/xsdk-project/xsdk-examples/archive/v0.1.0.tar.gz" - git = "https://github.com/xsdk-project/xsdk-examples" - - maintainers("balay", "luszczek", "balos1", "shuds13", "v-dobrev") - - version( - "0.4.0", - sha256="de54e02e0222420976a2f4cf0a6230e4bb625b443c66500fa1441032db206df9", - deprecated=True, - ) - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - - depends_on("xsdk+cuda", when="+cuda") - depends_on("xsdk~cuda", when="~cuda") - for sm_ in CudaPackage.cuda_arch_values: - depends_on("xsdk+cuda cuda_arch={0}".format(sm_), when="+cuda cuda_arch={0}".format(sm_)) - depends_on("xsdk+rocm", when="+rocm") - depends_on("xsdk~rocm", when="~rocm") - for ac_ in ROCmPackage.amdgpu_targets: - depends_on( - "xsdk+rocm amdgpu_target={0}".format(ac_), when="+rocm amdgpu_target={0}".format(ac_) - ) - - # Use ^dealii~hdf5 because of HDF5 linking issue in deal.II 9.4.0. - # Disable 'arborx' to remove the 'kokkos' dependency which conflicts with - # the internal Kokkos used by 'trilinos': - with when("@0.4.0"): - depends_on("xsdk@0.8.0 ~arborx") - depends_on("mfem+pumi") - depends_on("dealii~hdf5") - depends_on("mfem+strumpack", when="^xsdk+strumpack") - depends_on("mfem+ginkgo", when="^xsdk+ginkgo") - depends_on("mfem+hiop", when="^xsdk+hiop") - depends_on("sundials+magma", when="+cuda") - - depends_on("mpi") - depends_on("cmake@3.21:", type="build", when="@0.3.0:") - - def cmake_args(self): - spec = self.spec - - def enabled(pkg): - if type(pkg) is not list: - return "ON" if "^" + pkg in spec else "OFF" - else: - return "ON" if all([("^" + p in spec) for p in pkg]) else "OFF" - - # Note: paths to the enabled packages are automatically added by Spack - # to the variable CMAKE_PREFIX_PATH. - args = [ - # Using the MPI wrappers for C and C++ may cause linking issues - # when CUDA is enabled. - # "-DCMAKE_C_COMPILER=%s" % spec["mpi"].mpicc, - # "-DCMAKE_CXX_COMPILER=%s" % spec["mpi"].mpicxx, - # Use the Fortran MPI wrapper as a workaround for a linking issue - # with some versions of apple-clang on Mac. - "-DCMAKE_Fortran_COMPILER=%s" % spec["mpi"].mpifc, - "-DENABLE_AMREX=" + enabled("amrex"), - "-DENABLE_DEAL_II=" + enabled("dealii"), - "-DENABLE_GINKGO=" + enabled("ginkgo"), - "-DENABLE_HEFFTE=" + enabled("heffte"), - "-DENABLE_HIOP=" + enabled("hiop"), - "-DENABLE_HYPRE=ON", - "-DENABLE_MAGMA=" + enabled("magma"), - "-DENABLE_MFEM=ON", - "-DENABLE_PETSC=ON", - # ENABLE_PLASMA also needs Slate: - "-DENABLE_PLASMA=" + enabled(["plasma", "slate"]), - "-DENABLE_PRECICE=" + enabled("precice"), - "-DENABLE_PUMI=ON", - "-DENABLE_STRUMPACK=" + enabled("strumpack"), - "-DENABLE_SUNDIALS=ON", - "-DENABLE_SUPERLU=ON", - "-DENABLE_TASMANIAN=" + enabled("tasmanian"), - "-DENABLE_TRILINOS=" + enabled("trilinos"), - ] - - if "+cuda" in spec: - archs = ";".join(spec.variants["cuda_arch"].value) - args.extend(["-DENABLE_CUDA=ON", "-DCMAKE_CUDA_ARCHITECTURES=%s" % archs]) - - if "+rocm" in spec: - archs = ";".join(spec.variants["amdgpu_target"].value) - args.extend(["-DENABLE_HIP=ON", "-DCMAKE_HIP_ARCHITECTURES=%s" % archs]) - - return args - - def check(self): - with working_dir(self.build_directory): - ctest("--output-on-failure") diff --git a/repos/spack_repo/builtin/packages/xsimd/package.py b/repos/spack_repo/builtin/packages/xsimd/package.py index c42653abecb..82b6fd565bf 100644 --- a/repos/spack_repo/builtin/packages/xsimd/package.py +++ b/repos/spack_repo/builtin/packages/xsimd/package.py @@ -19,6 +19,7 @@ class Xsimd(CMakePackage): license("BSD-3-Clause") version("develop", branch="master") + version("13.2.0", sha256="edd8cd3d548c185adc70321c53c36df41abe64c1fe2c67bc6d93c3ecda82447a") version("13.1.0", sha256="88c9dc6da677feadb40fe09f467659ba0a98e9987f7491d51919ee13d897efa4") version("12.1.1", sha256="73f94a051278ef3da4533b691d31244d12074d5d71107473a9fd8d7be15f0110") version("11.2.0", sha256="509bbfe12e78ee1a0e81711019e7c7a372dabcff566dbf15b95cc94339443242") diff --git a/repos/spack_repo/builtin/packages/xtensor/package.py b/repos/spack_repo/builtin/packages/xtensor/package.py index bb39b4a348f..78456b5e5e9 100644 --- a/repos/spack_repo/builtin/packages/xtensor/package.py +++ b/repos/spack_repo/builtin/packages/xtensor/package.py @@ -14,11 +14,16 @@ class Xtensor(CMakePackage): url = "https://github.com/QuantStack/xtensor/archive/0.13.1.tar.gz" git = "https://github.com/QuantStack/xtensor.git" - maintainers("ax3l") + maintainers("ax3l", "gouarin") license("BSD-3-Clause") version("develop", branch="master") + version("0.27.1", sha256="117c192ae3b7c37c0156dedaa88038e0599a6b264666c3c6c2553154b500fe23") + version("0.27.0", sha256="9ca1743048492edfcc841bbe01f58520ff9c595ec587c0e7dc2fc39deeef3e04") + version("0.26.0", sha256="f5f42267d850f781d71097b50567a480a82cd6875a5ec3e6238555e0ef987dc6") + version("0.25.0", sha256="32d5d9fd23998c57e746c375a544edf544b74f0a18ad6bc3c38cbba968d5e6c7") + version("0.24.7", sha256="0fbbd524dde2199b731b6af99b16063780de6cf1d0d6cb1f3f4d4ceb318f3106") version("0.24.1", sha256="dd1bf4c4eba5fbcf386abba2627fcb4a947d14a806c33fde82d0cc1194807ee4") version("0.24.0", sha256="37738aa0865350b39f048e638735c05d78b5331073b6329693e8b8f0902df713") version("0.23.10", sha256="2e770a6d636962eedc868fef4930b919e26efe783cd5d8732c11e14cf72d871c") @@ -35,13 +40,19 @@ class Xtensor(CMakePackage): depends_on("cxx", type="build") # generated depends_on("xtl", when="@develop") - depends_on("xtl@0.7.2:0.7", when="@0.23.2:") + depends_on("xtl@0.8.0:0.8", when="@0.26:") + depends_on("xtl@0.7.5:0.7", when="@0.24.5:0.25") + depends_on("xtl@0.7.2:0.7", when="@0.23") depends_on("xtl@0.6.4:0.6", when="@0.20.7") depends_on("xtl@0.4.0:0.4", when="@0.15.1") depends_on("xtl@0.3.3:0.3", when="@0.13.1") depends_on("xsimd", when="@develop") - depends_on("xsimd@8.0.5:", when="@0.24.1: +xsimd") + depends_on("xsimd@13.2.0:", when="@0.26.0: +xsimd") + depends_on("xsimd@11.0.0:", when="@0.25 +xsimd") + depends_on("xsimd@10.0.0:", when="@0.24.4:0.24 +xsimd") + depends_on("xsimd@9.0.1:", when="@0.24.3:0.24 +xsimd") + depends_on("xsimd@8.0.5:", when="@0.24.1:0.24 +xsimd") depends_on("xsimd@8.0.2:", when="@0.24.0 +xsimd") depends_on("xsimd@7.4.10:7", when="@0.23.4:0.23 +xsimd") depends_on("xsimd@7.4.9:7", when="@0.23.2 +xsimd") diff --git a/repos/spack_repo/builtin/packages/xterm/package.py b/repos/spack_repo/builtin/packages/xterm/package.py index 3cb9cca7758..1f8e97dac8c 100644 --- a/repos/spack_repo/builtin/packages/xterm/package.py +++ b/repos/spack_repo/builtin/packages/xterm/package.py @@ -17,6 +17,14 @@ class Xterm(AutotoolsPackage): license("MIT") + version("401", sha256="3da2b5e64cb49b03aa13057d85e62e1f2e64f7c744719c00d338d11cd3e6ca1a") + version("400", sha256="eed84ecc05efa63d589c5a2a3f5a947e14b798d03b5342cc6883710f648f1a06") + version("399", sha256="9db34ad0f53ddb1223d70b247c8391e52f3e4b166d6ad85426a4c47813d1b1e3") + version("398", sha256="f679bd45f97063f10a880ecf7fc1611a9a03e8c8b98f063e99e0a079e87ee968") + version("397", sha256="2e9b742b9cba44ecec58074e513237f6cd6d5923f1737cb36a4e5625f4ae8662") + version("396", sha256="43f94b6d0eecb4219a99f46352e746f2ab5558e40d922d411acff96cc778a6a5") + version("395", sha256="286e3caa5938eae38e202827621567629dfeaae689e8070b413ca11398093dc8") + version("394", sha256="a2a0cb206eb0423dedc34794f5c2d38c83390d2dd1106b66aba0960c3a976c7a") version("393", sha256="dc3abf533d66ae3db49e6783b0e1e29f0e4d045b4b3dac797a5e93be2735ec7b") version("353", sha256="e521d3ee9def61f5d5c911afc74dd5c3a56ce147c7071c74023ea24cac9bb768") version("350", sha256="aefb59eefd310268080d1a90a447368fb97a9a6737bfecfc3800bf6cc304104d") @@ -40,6 +48,8 @@ class Xterm(AutotoolsPackage): depends_on("libxcb") depends_on("libxau") depends_on("bzip2") + depends_on("ncurses") + depends_on("c", type="build") depends_on("pkgconfig", type="build") depends_on("termcap", type="link") diff --git a/repos/spack_repo/builtin/packages/xtl/package.py b/repos/spack_repo/builtin/packages/xtl/package.py index 05b87e1c4fe..38ebbcf0883 100644 --- a/repos/spack_repo/builtin/packages/xtl/package.py +++ b/repos/spack_repo/builtin/packages/xtl/package.py @@ -19,6 +19,8 @@ class Xtl(CMakePackage): license("BSD-3-Clause") version("develop", branch="master") + version("0.8.1", sha256="e69a696068ccffd2b435539d583665981b6c6abed596a72832bffbe3e13e1f49") + version("0.8.0", sha256="ee38153b7dd0ec84cee3361f5488a4e7e6ddd26392612ac8821cbc76e740273a") version("0.7.7", sha256="44fb99fbf5e56af5c43619fc8c29aa58e5fad18f3ba6e7d9c55c111b62df1fbb") version("0.7.4", sha256="3c88be0e696b64150c4de7a70f9f09c00a335186b0b0b409771ef9f56bca7d9a") version("0.7.2", sha256="95c221bdc6eaba592878090916383e5b9390a076828552256693d5d97f78357c") diff --git a/repos/spack_repo/builtin/packages/xv/package.py b/repos/spack_repo/builtin/packages/xv/package.py index 1b1725aab57..5b71a712f2b 100644 --- a/repos/spack_repo/builtin/packages/xv/package.py +++ b/repos/spack_repo/builtin/packages/xv/package.py @@ -8,10 +8,10 @@ class Xv(CMakePackage): - """ - XV image viewer. - The XV software was originally written by John Bradley. John Bradley's web site for the XV software can be found at: - http://www.trilon.com/xv + """XV image viewer. + + The XV software was originally written by John Bradley. John Bradley's web site for the XV + software can be found at: http://www.trilon.com/xv """ homepage = "https://github.com/jasper-software/xv" diff --git a/repos/spack_repo/builtin/packages/xyce/package.py b/repos/spack_repo/builtin/packages/xyce/package.py index 6595e7bbd79..59e0d738c61 100644 --- a/repos/spack_repo/builtin/packages/xyce/package.py +++ b/repos/spack_repo/builtin/packages/xyce/package.py @@ -35,33 +35,10 @@ class Xyce(CMakePackage): license("GPL-3.0-or-later") version("master", branch="master") + version("7.10.0", sha256="b5a883196f0a2b3972fd13c541fecf04735bfabc7d124d7c7e17de707204f4e2") + version("7.9.0", sha256="36ea88736b5e2012f28755588c857c88ed5dab5f4eccd3f59c6f42e6320fee4e") version("7.8.0", sha256="f763b7d5ad6defd25d2c7e5cc95155958cd12510a5e22a179daab459b21fa713") version("7.7.0", sha256="1b95450e1905c3af3c16b42c41d5ef1f8ab0e640f48086d0cb4d52961a90a175") - version( - "7.6.0", - sha256="fc25557e2edc82adbe0436a15fca2929a2f9ab08ddf91f1a47aab5e8b27ec88c", - deprecated=True, - ) - version( - "7.5.0", - sha256="854d7d5e19e0ee2138d1f20f10f8f27f2bebb94ec81c157040955cff7250dacd", - deprecated=True, - ) - version( - "7.4.0", - sha256="2d6bc1b7377834b2e0bf50131e96728c5be83dbb3548e765bb48911067c87c91", - deprecated=True, - ) - version( - "7.3.0", - sha256="43869a70967f573ff6f00451db3f4642684834bdad1fd3926380e3789016b446", - deprecated=True, - ) - version( - "7.2.0", - sha256="cf49705278ecda46373784bb24925cb97f9017b6adff49e4416de146bdd6a4b5", - deprecated=True, - ) depends_on("c", type="build") depends_on("cxx", type="build") @@ -103,6 +80,14 @@ class Xyce(CMakePackage): description="Require static blas build for PyMi", ) + variant("fftw", default=True, description="Depend on FFTW") + depends_on("fftw~mpi", type=("build", "run"), when="+fftw~mpi") + depends_on("fftw+mpi", type=("build", "run"), when="+fftw+mpi") + + # https://github.com/Xyce/Xyce/commit/ddec31a9c42c683831937be17fd6ffc3180e77a1 + # requirement because of use of std::filesystem + conflicts("@7.10:", when="%gcc@:8") + depends_on("python@3:", type=("build", "link", "run"), when="+pymi") depends_on("py-pip", type="run", when="+pymi") depends_on("py-pybind11@2.6.1:", type=("build", "link"), when="@:7.8 +pymi") @@ -118,25 +103,18 @@ class Xyce(CMakePackage): depends_on("trilinos+isorropia+zoltan", when="+mpi") # Currently supported versions of Xyce - depends_on("trilinos@15.0.0:develop", when="@7.8.0:") + depends_on("trilinos@15:16", when="@7.8.0:") depends_on("trilinos+rol", when="@7.7.0:") # tested versions of Trilinos against older versions of Xyce depends_on("trilinos@13.5.0:14.4", when="@7.6.0:7.7.0") - depends_on("trilinos@12.12.1:13.4", when="@7.5") - depends_on("trilinos@12.12.1", when="@:7.4") requires("^trilinos gotype=all cxxstd=11", when="^trilinos@:12.15") # pymi requires Kokkos/KokkosKernels >= 3.3, Trilinos 13.2 onward depends_on("trilinos@13.2.0:", when="+pymi") # Propagate variants to trilinos: - for _variant in ("mpi",): - depends_on("trilinos~" + _variant, when="~" + _variant) - depends_on("trilinos+" + _variant, when="+" + _variant) - - # The default settings for various Trilinos variants would require the - # installation of many more packages than are needed for Xyce. - depends_on("trilinos~anasazi~float~ifpack2~ml~muelu~zoltan2") + depends_on("trilinos~mpi", when="~mpi") + depends_on("trilinos+mpi", when="+mpi") # Issue #1712 forces explicitly enumerating blas packages to propagate variants with when("+pymi_static_tpls"): @@ -145,7 +123,6 @@ class Xyce(CMakePackage): depends_on("openblas~shared", when="^[virtuals=blas] openblas") depends_on("netlib-lapack~shared", when="^[virtuals=blas] netlib-lapack~external-blas") depends_on("armpl-gcc~shared", when="^[virtuals=blas] armpl-gcc") - depends_on("atlas~shared", when="^[virtuals=blas] atlas") depends_on("blis libs=static", when="^[virtuals=blas] blis+cblas") depends_on("blis libs=static", when="^[virtuals=blas] blis+blas") depends_on("clblast~shared", when="^[virtuals=blas] clblast+netlib") @@ -157,27 +134,6 @@ class Xyce(CMakePackage): conflicts("^cray-libsci", msg="cray-libsci not supported with +pymi_static_tpls") # netlib-xblas+plain_blas is always static - # fix MPI issue - patch( - "https://github.com/xyce/xyce/commit/2f95783637a5171a7f65f5d18c24d9a580a7f39e.patch?full_index=1", - sha256="1aeaac78830fbc9ae089a50ef61c6cbd89d29ead54ce7fdca258e194fa05b1a3", - when="@:7.6", - ) - - # fix RPATH issue on mac - patch( - "https://github.com/xyce/xyce/commit/40dbc0e0341a5cf9a7fa82a87313869dc284fdd9.patch?full_index=1", - sha256="3c32faeeea0bb29be44ec20e414670c9fd375f9ed921a7f6e9fd3de02c28859d", - when="@7.3:7.5 +shared", - ) - - # fix parameter merging in pymi - patch( - "https://github.com/xyce/xyce/commit/fdf457fce1b1511b8a29d134d38e515fb7149246.patch?full_index=1", - sha256="077f91d2ff0649b3f7e83c224f71a030521c6fb5a84b29acd772d5657cdb6c23", - when="@7.4:7.6 +pymi", - ) - # fix missing type patch( "https://github.com/Xyce/Xyce/commit/47d9dd04ec55cd8722cb3704a88beb228dfcf363.patch?full_index=1", @@ -194,7 +150,6 @@ class Xyce(CMakePackage): patch( "454-cmake-xyce.patch", sha256="4d47cd1f10607205e64910ac124c6dd329f1ecbf861416e9da24a1736f2149ff", - when="@7.6:", ) def cmake_args(self): @@ -204,8 +159,10 @@ def cmake_args(self): if "+mpi" in spec: options.append(self.define("CMAKE_CXX_COMPILER", spec["mpi"].mpicxx)) + options.append(self.define("CMAKE_C_COMPILER", spec["mpi"].mpicc)) else: options.append(self.define("CMAKE_CXX_COMPILER", spack_cxx)) + options.append(self.define("CMAKE_C_COMPILER", spack_cc)) options.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared")) options.append(self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd")) @@ -228,12 +185,8 @@ def flag_handler(self, name, flags): if name == "cxxflags": flags.append("-DXyce_INTRUSIVE_PCE -Wreorder") elif name == "ldflags": - # Fortran lib (assumes clang is built with gfortran!) - if ( - spec.satisfies("%gcc") - or spec.satisfies("%clang") - or spec.satisfies("%apple-clang") - ): + # Fortran lib + if spec.satisfies("+fortran %fortran=gcc"): fc = Executable(self.compiler.fc) libgfortran = fc( "--print-file-name", "libgfortran." + dso_suffix, output=str diff --git a/repos/spack_repo/builtin/packages/xz/package.py b/repos/spack_repo/builtin/packages/xz/package.py index f40331d192b..ca9aeef9b38 100644 --- a/repos/spack_repo/builtin/packages/xz/package.py +++ b/repos/spack_repo/builtin/packages/xz/package.py @@ -29,6 +29,8 @@ class Xz(MSBuildPackage, AutotoolsPackage, SourceforgePackage): license("GPL-2.0-or-later AND Public-Domain AND LGPL-2.1-or-later", checked_by="tgamblin") + version("5.8.3", sha256="33bf69c0d6c698e83a68f77e6c1f465778e418ca0b3d59860d3ab446f4ac99a6") + version("5.8.2", sha256="60345d7c0b9c8d7ffa469e96898c300def3669f5047fc76219b819340839f3d8") version("5.6.3", sha256="a95a49147b2dbb5487517acc0adcd77f9c2032cf00664eeae352405357d14a6c") version("5.6.2", sha256="e12aa03cbd200597bd4ce11d97be2d09a6e6d39a9311ce72c91ac7deacde3171") # ALERT: don't add XZ 5.6.0 or 5.6.1, https://nvd.nist.gov/vuln/detail/CVE-2024-3094 @@ -46,7 +48,7 @@ class Xz(MSBuildPackage, AutotoolsPackage, SourceforgePackage): version("5.2.1", sha256="679148f497e0bff2c1adce42dee5a23f746e71321c33ebb0f641a302e30c2a80") version("5.2.0", sha256="f7357d7455a1670229b3cca021da71dd5d13b789db62743c20624bdffc9cc4a5") - variant("pic", default=False, description="Compile with position independent code.") + variant("pic", default=False, description="Compile with position independent code") variant( "libs", @@ -56,7 +58,7 @@ class Xz(MSBuildPackage, AutotoolsPackage, SourceforgePackage): description="Build shared libs, static libs or both", ) - depends_on("c", type="build") # generated + depends_on("c", type="build") # xz-5.2.7/src/liblzma/common/common.h:56 uses attribute __symver__ instead of # __asm__(.symver) for newer GCC releases. diff --git a/repos/spack_repo/builtin/packages/yafyaml/package.py b/repos/spack_repo/builtin/packages/yafyaml/package.py index 060bc73aa98..c2630412e31 100644 --- a/repos/spack_repo/builtin/packages/yafyaml/package.py +++ b/repos/spack_repo/builtin/packages/yafyaml/package.py @@ -27,7 +27,7 @@ class Yafyaml(CMakePackage): maintainers("mathomp4", "tclune") - license("Apache-2.0") + license("Apache-2.0", checked_by="mathomp4") version("main", branch="main") diff --git a/repos/spack_repo/builtin/packages/yaksa/package.py b/repos/spack_repo/builtin/packages/yaksa/package.py index 6ee4526499f..e7a8de26f5b 100644 --- a/repos/spack_repo/builtin/packages/yaksa/package.py +++ b/repos/spack_repo/builtin/packages/yaksa/package.py @@ -29,6 +29,7 @@ class Yaksa(AutotoolsPackage, CudaPackage, ROCmPackage): url = "https://github.com/pmodels/yaksa/archive/refs/tags/v0.2.tar.gz" maintainers("raffenet", "yfguo", "hzhou") + version("0.4", sha256="380d5780c73b4d9623ed558daebf77f2497931783ed7403bab08682d6f25da86") version("0.3", sha256="c9e5291211bee8852831bb464f430ad5ba1541e31db5718a6fa2f2d3329fc2d9") version("0.2", sha256="9401cb6153dc8c34ddb9781bbabd418fd26b0a27b5da3294ecc21af7be9c86f2") @@ -50,7 +51,7 @@ class Yaksa(AutotoolsPackage, CudaPackage, ROCmPackage): ) def autoreconf(self, spec, prefix): - sh = which("sh") + sh = which("sh", required=True) sh("autogen.sh") def configure_args(self): diff --git a/repos/spack_repo/builtin/packages/yambo/package.py b/repos/spack_repo/builtin/packages/yambo/package.py index 340b8f840ea..e23baf8fd60 100644 --- a/repos/spack_repo/builtin/packages/yambo/package.py +++ b/repos/spack_repo/builtin/packages/yambo/package.py @@ -2,8 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import shutil - from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack.package import * @@ -12,12 +10,6 @@ class Yambo(AutotoolsPackage): """Yambo is a FORTRAN/C code for Many-Body calculations in solid state and molecular physics. - - Yambo relies on the Kohn-Sham wavefunctions generated by two DFT - public codes: abinit, and PWscf. The code was originally developed - in the Condensed Matter Theoretical Group of the Physics Department - at the University of Rome "Tor Vergata" by Andrea Marini. Previous - to its release under the GPL license, yambo was known as SELF. """ homepage = "https://www.yambo-code.org/index.php" @@ -27,13 +19,16 @@ class Yambo(AutotoolsPackage): license("GPL-2.0-or-later") + version("5.3.0", sha256="97b6867c28af6ea690bb02446745e817adcedf95bcd568f132ef3510abbb1cfe") version("5.2.4", sha256="7c3f2602389fc29a0d8570c2fe85fe3768d390cfcbb2d371e83e75c6c951d5fc") - version("5.2.3", sha256="a6168d1fa820af857ac51217bd6ad26dda4cc89c07e035bd7dc230038ae1ab9c") - version("5.2.1", sha256="0ac362854313927d75bbf87be98ff58447f3805f79724c38dc79df07f03a7046") version("5.1.1", sha256="c85036ca60507e627c47b6c6aee8241830349e88110e1ce9132ef03ab2c4e9f6") - version("4.2.2", sha256="86b4ebe679387233266aba49948246c85a32b1e6840d024f162962bd0112448c") - version("4.2.1", sha256="8ccd0ca75cc32d9266d4a37edd2a7396cf5038f3a68be07c0f0f77d1afc72bdc") - version("4.2.0", sha256="9f78c4237ff363ff4e9ea5eeea671b6fff783d9a6078cc31b0b1abeb1f040f4d") + + with default_args(deprecated=True): + version("5.2.3", sha256="a6168d1fa820af857ac51217bd6ad26dda4cc89c07e035bd7dc230038ae1ab9c") + version("5.2.1", sha256="0ac362854313927d75bbf87be98ff58447f3805f79724c38dc79df07f03a7046") + version("4.2.2", sha256="86b4ebe679387233266aba49948246c85a32b1e6840d024f162962bd0112448c") + version("4.2.1", sha256="8ccd0ca75cc32d9266d4a37edd2a7396cf5038f3a68be07c0f0f77d1afc72bdc") + version("4.2.0", sha256="9f78c4237ff363ff4e9ea5eeea671b6fff783d9a6078cc31b0b1abeb1f040f4d") variant("dp", default=False, description="Enable double precision") variant( @@ -46,7 +41,7 @@ class Yambo(AutotoolsPackage): default="iotk", values=("iotk", "etsf-io"), multi=True, - description="Activate support for different io formats (requires network access)", + description="Activate support for different io formats", ) # MPI + OpenMP parallelism variant("mpi", default=True, description="Enable MPI support") @@ -63,20 +58,22 @@ class Yambo(AutotoolsPackage): # Note that yambo is used as an application, and not linked as a library, # thus there will be no case where another package pulls-in e.g. # netcdf-c+mpi and wants to depend on yambo~mpi. - depends_on("mpi", when="+mpi") - depends_on("netcdf-c+mpi", when="+mpi") - depends_on("hdf5+mpi", when="+mpi") - depends_on("fftw+mpi", when="+mpi") - depends_on("scalapack", when="+mpi") - - depends_on("netcdf-c~mpi", when="~mpi") - depends_on("hdf5~mpi", when="~mpi") - depends_on("fftw~mpi", when="~mpi") + with when("+mpi"): + depends_on("mpi") + depends_on("scalapack") + depends_on("netcdf-c+mpi") + depends_on("hdf5+mpi") + depends_on("fftw+mpi") + + with when("~mpi"): + depends_on("netcdf-c~mpi") + depends_on("hdf5~mpi") + depends_on("fftw~mpi") depends_on("hdf5+fortran") depends_on("netcdf-c") depends_on("netcdf-fortran") - depends_on("libxc@2.0.3:") + depends_on("libxc@2.0.3:5") depends_on("etsf-io", when="io=etsf-io") @@ -91,8 +88,8 @@ class Yambo(AutotoolsPackage): name="ydriver", url="https://github.com/yambo-code/Ydriver/archive/refs/tags/1.4.2.tar.gz", sha256="c242f0700a224325ff59326767614a561b02ce16ddb2ce6c13ddd2d5901cc3e4", - destination="ydriver_archive", - placement="archive", + destination="lib/archive", + placement={"1.4.2.tar.gz": "Ydriver-1.4.2.tar.gz"}, expand=False, ) resource( @@ -100,36 +97,20 @@ class Yambo(AutotoolsPackage): name="ydriver", url="https://github.com/yambo-code/Ydriver/archive/refs/tags/1.2.0.tar.gz", sha256="0f29a44e9c4b49d3f6be3f159a7ef415932b2ae2f2fdba163af60a0673befe6e", - destination="ydriver_archive", - placement="archive", + destination="lib/archive", + placement={"1.2.0.tar.gz": "Ydriver-1.2.0.tar.gz"}, expand=False, ) - # iotk archive is contained inside this git repository resource( - when="@5.2", + when="@5.2:5.3", name="iotk", - git="https://github.com/yambo-code/yambo-libraries.git", - destination="yambo_libraries", + url="https://github.com/yambo-code/yambo-libraries/raw/0bb3a9c5d57fbad5a22ea2bb2e9c9e2fc04a7381/external/iotk-y1.2.2.tar.gz", + sha256="64af6a4b98f3b62fcec603e4e1b00ef994f95a0efa53ab6593ebcfe6de1739ef", + destination="lib/archive", + placement={"iotk-y1.2.2.tar.gz": "iotk-y1.2.2.tar.gz"}, expand=False, ) - # ydriver-1.1.0 is required by yambo 5.1.1 but the oldest release in - # https://github.com/yambo-code/Ydriver is 1.2.0 - # So, the air-gapped installation is only available since yambo@5.2.1 - @when("@5.2") - @run_before("autoreconf") - def setup_archives(self): - if self.spec.satisfies("@5.2.4"): - shutil.move("ydriver_archive/archive/1.4.2.tar.gz", "lib/archive/Ydriver-1.4.2.tar.gz") - if self.spec.satisfies("@5.2.1:5.2.3"): - shutil.move("ydriver_archive/archive/1.2.0.tar.gz", "lib/archive/Ydriver-1.2.0.tar.gz") - shutil.move( - "yambo_libraries/yambo-libraries/external/iotk-y1.2.2.tar.gz", - "lib/archive/iotk-y1.2.2.tar.gz", - ) - shutil.rmtree("ydriver_archive") - shutil.rmtree("yambo_libraries") - def enable_or_disable_time(self, activated): return "--enable-time-profile" if activated else "--disable-time-profile" @@ -139,13 +120,19 @@ def enable_or_disable_memory(self, activated): def enable_or_disable_openmp(self, activated): return "--enable-open-mp" if activated else "--disable-open-mp" - @when("@5") def configure_args(self): spec = self.spec args = [ f"--with-hdf5-path={spec['hdf5'].prefix}", f"--prefix={self.stage.source_path}", f"--exec-prefix={self.stage.source_path}", + f"--with-blas-libs={spec['blas'].libs}", + f"--with-lapack-libs={spec['lapack'].libs}", + f"--with-netcdf-path={spec['netcdf-c'].prefix}", + f"--with-netcdff-path={spec['netcdf-fortran'].prefix}", + f"--with-fft-path={spec['fftw'].prefix}", + f"--with-libxc-path={spec['libxc'].prefix}", + "--enable-hdf5-p2y-support", ] # Double precision args.extend(self.enable_or_disable("dp")) @@ -160,17 +147,12 @@ def configure_args(self): if spec.satisfies("+mpi"): args.append(f"--with-scalapack-libs={spec['scalapack'].libs}") - args.append(f"--with-blas-libs={spec['blas'].libs}") - args.append(f"--with-lapack-libs={spec['lapack'].libs}") - args.append(f"--with-netcdf-path={spec['netcdf-c'].prefix}") - args.append(f"--with-netcdff-path={spec['netcdf-fortran'].prefix}") - args.append(f"--with-fft-path={spec['fftw'].prefix}") - args.append(f"--with-libxc-path={spec['libxc'].prefix}") - args.append("--enable-hdf5-p2y-support") - # IO + # iotk is always needed (lib/qe_pseudo uses it regardless of io variant) + # io=iotk controls whether p2y is built / io=etsf-io adds etsf-io support + args.extend(self.enable_or_disable("io")) + if spec.satisfies("io=etsf-io"): args.append(f"--with-etsf-io-path={spec['etsf-io'].prefix}") - args.extend(self.enable_or_disable("io")) return args @@ -178,8 +160,7 @@ def configure_args(self): # hard-coded, which causes a failure at configure time due to the # current working directory in Spack. Fix this by using the absolute # path to the file. - @when("@4.2.1") - @run_before("configure") + @run_before("configure", when="@4.2.1") def filter_configure(self): report_abspath = join_path(self.build_directory, "config", "report") filter_file("config/report", report_abspath, "configure") @@ -238,8 +219,7 @@ def configure_args(self): return args def install(self, spec, prefix): - # As of version 4.2.1 an 'install' target is advertized, - # but not present + # yambo has no "make install" install_tree("bin", prefix.bin) install_tree("lib", prefix.lib) install_tree("include", prefix.include) diff --git a/repos/spack_repo/builtin/packages/yaml_cpp/package.py b/repos/spack_repo/builtin/packages/yaml_cpp/package.py index 06691a8a08c..05ca9b59b0a 100644 --- a/repos/spack_repo/builtin/packages/yaml_cpp/package.py +++ b/repos/spack_repo/builtin/packages/yaml_cpp/package.py @@ -42,6 +42,14 @@ class YamlCpp(CMakePackage): # See https://github.com/spack/spack/pull/22303 for reference depends_on(Boost.with_default_variants, when="@0.5.0:0.5.3") + # Explicitly include + # See https://github.com/jbeder/yaml-cpp/pull/1310 + patch( + "https://github.com/jbeder/yaml-cpp/commit/7b469b4220f96fb3d036cf68cd7bd30bd39e61d2.patch?full_index=1", + sha256="0bb42bea4f38ac5e9b51a46938cf7ed12c23e62c8690a166101caa00f09dd639", + when="@0.7:", + ) + conflicts("%gcc@:4.7", when="@0.6.0:", msg="versions 0.6.0: require c++11 support") conflicts("%clang@:3.3.0", when="@0.6.0:", msg="versions 0.6.0: require c++11 support") conflicts("%apple-clang@:4.0.0", when="@0.6.0:", msg="versions 0.6.0: require c++11 support") diff --git a/repos/spack_repo/builtin/packages/yamlfmt/package.py b/repos/spack_repo/builtin/packages/yamlfmt/package.py new file mode 100644 index 00000000000..ea3e4f78bc2 --- /dev/null +++ b/repos/spack_repo/builtin/packages/yamlfmt/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.go import GoPackage + +from spack.package import * + + +class Yamlfmt(GoPackage): + """yamlfmt is an extensible command line tool or library to format yaml files.""" + + homepage = "https://github.com/google/yamlfmt" + url = "https://github.com/google/yamlfmt/archive/refs/tags/v0.20.0.tar.gz" + + maintainers("ebagrenrut") + + license("Apache-2.0") + + version("0.21.0", sha256="9ec915d70e527a94171eaaf6b785d1423222b5b82e7633f80dcc6b66e6a655aa") + version("0.20.0", sha256="de6bc4373ba46c520d936dd4b60395868ec17aba338b9fd849594c1f41b6c057") + + depends_on("go@1.22:", type="build", when="@0.21:") + depends_on("go@1.21:", type="build") + + build_directory = "cmd/yamlfmt" + + @property + def ldflags(self): + return [f"-X main.version={self.spec.version}"] diff --git a/repos/spack_repo/builtin/packages/yara/package.py b/repos/spack_repo/builtin/packages/yara/package.py index ea3ef21fb5d..57ff10b97d2 100644 --- a/repos/spack_repo/builtin/packages/yara/package.py +++ b/repos/spack_repo/builtin/packages/yara/package.py @@ -17,9 +17,6 @@ class Yara(AutotoolsPackage): license("BSD-3-Clause") version("4.5.2", sha256="1f87056fcb10ee361936ee7b0548444f7974612ebb0e681734d8de7df055d1ec") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2021-3402 - version("3.9.0", sha256="ebe7fab0abadb90449a62afbd24e196e18b177efe71ffd8bf22df95c5386f64d") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated @@ -28,4 +25,4 @@ class Yara(AutotoolsPackage): depends_on("automake", type="build") depends_on("libtool", type="build") depends_on("m4", type="build") - depends_on("pkgconfig", type="build", when="@4:") + depends_on("pkgconfig", type="build") diff --git a/repos/spack_repo/builtin/packages/yarn/package.py b/repos/spack_repo/builtin/packages/yarn/package.py index 088b78520c9..286baa5999b 100644 --- a/repos/spack_repo/builtin/packages/yarn/package.py +++ b/repos/spack_repo/builtin/packages/yarn/package.py @@ -21,6 +21,8 @@ class Yarn(Package): license("BSD-2-Clause") + version("4.13.0", sha256="7ce8fd253740ea62980bca49b32bfc044810e09362cc46a4192673be9541a772") + version("4.10.3", sha256="5494c77f7c7ea067f7c58456f61af458a684802e5bb25631659b7612d14e6c84") version("4.9.2", sha256="cbcd6ab876407c0999eceb74bcdac29ae47a544339bc99b17fcbe67901ede9b3") version("4.9.1", sha256="58df07bd582586c57d250a28817a0016382458d981c8d15e292b72a0ecfcd7a7") version("4.9.0", sha256="933da2c124dd745404b996b3751481214e7cd34bd13978080111ded6ecdc5fb5") diff --git a/repos/spack_repo/builtin/packages/yasm/libyasm_bitvect_c23_bool.patch b/repos/spack_repo/builtin/packages/yasm/libyasm_bitvect_c23_bool.patch new file mode 100644 index 00000000000..4365ac13931 --- /dev/null +++ b/repos/spack_repo/builtin/packages/yasm/libyasm_bitvect_c23_bool.patch @@ -0,0 +1,36 @@ +From 64ef740eb262f329e55eebadf2ce276b146d44e9 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Tue, 22 Apr 2025 19:06:24 +0200 +Subject: [PATCH] bitvect: fix build with gcc-15 + +* fixes: +libyasm/bitvect.h:86:32: error: cannot use keyword 'false' as enumeration constant + 86 | typedef enum boolean { false = FALSE, true = TRUE } boolean; + | ^~~~~ +../git/libyasm/bitvect.h:86:32: note: 'false' is a keyword with '-std=c23' onwards + +as suggested in: +https://github.com/yasm/yasm/issues/283#issuecomment-2661108816 + +Signed-off-by: Martin Jansa +--- + libyasm/bitvect.h | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/libyasm/bitvect.h b/libyasm/bitvect.h +index 3aee3a531..a13470ada 100644 +--- a/libyasm/bitvect.h ++++ b/libyasm/bitvect.h +@@ -83,7 +83,11 @@ typedef Z_longword *Z_longwordptr; + #ifdef MACOS_TRADITIONAL + #define boolean Boolean + #else +- typedef enum boolean { false = FALSE, true = TRUE } boolean; ++ #if __STDC_VERSION__ < 202311L ++ typedef enum boolean { false = FALSE, true = TRUE } boolean; ++ #else ++ typedef bool boolean; ++ #endif + #endif + #endif + diff --git a/repos/spack_repo/builtin/packages/yasm/package.py b/repos/spack_repo/builtin/packages/yasm/package.py index 7f1c73e1124..44baaddc3df 100644 --- a/repos/spack_repo/builtin/packages/yasm/package.py +++ b/repos/spack_repo/builtin/packages/yasm/package.py @@ -22,6 +22,10 @@ class Yasm(AutotoolsPackage): version("develop", branch="master") version("1.3.0", sha256="3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f") + # Ensure C23 compliance in boolean enum + # https://github.com/yasm/yasm/pull/287 + patch("libyasm_bitvect_c23_bool.patch") + depends_on("c", type="build") # generated depends_on("autoconf", when="@develop") diff --git a/repos/spack_repo/builtin/packages/ycruncher/package.py b/repos/spack_repo/builtin/packages/ycruncher/package.py index 128c6d534e9..58e0a116ad9 100644 --- a/repos/spack_repo/builtin/packages/ycruncher/package.py +++ b/repos/spack_repo/builtin/packages/ycruncher/package.py @@ -14,8 +14,10 @@ class Ycruncher(Package): and scalable to multi-core systems """ - homepage = "http://www.numberworld.org/y-cruncher/" - url = "http://www.numberworld.org/y-cruncher/y-cruncher%20v0.7.10.9513-static.tar.xz" + homepage = "https://www.numberworld.org/y-cruncher/" + url = ( + "https://cdn.numberworld.org/y-cruncher-downloads/y-cruncher%20v0.7.10.9513-static.tar.xz" + ) maintainers("saqibkh") version( diff --git a/repos/spack_repo/builtin/packages/ycsb/package.py b/repos/spack_repo/builtin/packages/ycsb/package.py index 748c65dbf9e..1996e753b1f 100644 --- a/repos/spack_repo/builtin/packages/ycsb/package.py +++ b/repos/spack_repo/builtin/packages/ycsb/package.py @@ -40,7 +40,7 @@ class Ycsb(MavenPackage): # depends_on("mongodb-async-driver", type="build") def build(self, spec, prefix): - mvn = which("mvn") + mvn = which("mvn", required=True) # jar_name = ( # "target/mongodb-async-driver-" + spec["mongodb-async-driver"].version.string + ".jar" # ) @@ -63,5 +63,5 @@ def install(self, spec, prefix): distribution = "distribution/target/ycsb-*.tar.gz" with working_dir(self.build_directory): dist_file = glob(distribution)[0] - tar = which("tar") + tar = which("tar", required=True) tar("xf", dist_file, "-C", prefix, "--strip-components=1") diff --git a/repos/spack_repo/builtin/packages/yoda/package.py b/repos/spack_repo/builtin/packages/yoda/package.py index a7dcea4d667..80a1d438d0b 100644 --- a/repos/spack_repo/builtin/packages/yoda/package.py +++ b/repos/spack_repo/builtin/packages/yoda/package.py @@ -17,6 +17,8 @@ class Yoda(AutotoolsPackage): license("GPL-3.0-or-later") + version("2.1.2", sha256="f11c9ad00d7db5da59950c834a094eadaf886dfd9d9ccac161afd44a6a334bf1") + version("2.1.1", sha256="012f58ee682f3037842f23a2f6deb964572214a1d647258c277e0a097c39a66b") version("2.1.0", sha256="eba2efa58d407e5ca60205593339cdab12b7659255020358454b0f6502d115c2") version("2.0.3", sha256="c066b1ae723e7cc76011e134fe9d69b378670ae03aae8a2781b0606692440143") version("2.0.2", sha256="31a41413641189814ff3c6bbb96ac5d17d2b68734fe327d06794cdbd3a540399") diff --git a/repos/spack_repo/builtin/packages/yosys/package.py b/repos/spack_repo/builtin/packages/yosys/package.py index addf275c1d9..53b34fdedc3 100644 --- a/repos/spack_repo/builtin/packages/yosys/package.py +++ b/repos/spack_repo/builtin/packages/yosys/package.py @@ -30,6 +30,20 @@ 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) + version("0.61", commit="5ae48ee25f298f7b3c8c0de30bd2f85a94133031", submodules=True) + version("0.60", commit="5bafeb77dc71e054fa331ab9efa613e6fb0a1c49", submodules=True) + version("0.59.1", commit="26b51148a80ea546481cf4f0516be97e4ba251cc", submodules=True) + version("0.59", commit="03eb2206d7b8a830dd32d0e1673986318111a4c3", submodules=True) + version("0.58", commit="157aabb5831cc77d08346001c4a085f188d7c736", submodules=True) + version("0.57", commit="3aca86049e79a165932e3e7660358376f45acaed", submodules=True) + version("0.56", commit="9c447ad9d4b1ea589369364eea38b4d70da2c599", submodules=True) + version("0.55", commit="60f126cd00c94892782470192d6c9f7abebe7c05", submodules=True) + version("0.54", commit="db72ec3bde296a9512b2d1e6fabf81cfb07c2c1b", submodules=True) version("0.53", commit="53c22ab7c0ced80861c7536c5dae682c30fb5834", submodules=True) version("0.52", commit="fee39a3284c90249e1d9684cf6944ffbbcbb8f90", submodules=True) version("0.51", commit="c4b5190229616f7ebf8197f43990b4429de3e420", submodules=True) @@ -90,13 +104,13 @@ def edit(self, spec, prefix): def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("PREFIX", self.prefix) - env.set("CXXFLAGS", f'-I{self.spec["readline"].prefix.include}') + env.set("CXXFLAGS", f"-I{self.spec['readline'].prefix.include}") env.set( - "LDFLAGS", f'-L{self.spec["readline"].prefix.lib} -L{self.spec["zlib"].prefix.lib}' + "LDFLAGS", f"-L{self.spec['readline'].prefix.lib} -L{self.spec['zlib'].prefix.lib}" ) if self.spec.satisfies("+abc"): env.set("ENABLE_ABC", "1") - env.set("ABC_READLINE_INCLUDES", f'-I{self.spec["readline"].prefix.include}') + env.set("ABC_READLINE_INCLUDES", f"-I{self.spec['readline'].prefix.include}") else: env.set("ENABLE_ABC", "0") if self.spec.satisfies("+ccache"): diff --git a/repos/spack_repo/builtin/packages/yq/package.py b/repos/spack_repo/builtin/packages/yq/package.py index 3a3f0180530..aaf186d2d57 100644 --- a/repos/spack_repo/builtin/packages/yq/package.py +++ b/repos/spack_repo/builtin/packages/yq/package.py @@ -18,6 +18,9 @@ class Yq(GoPackage): license("MIT", checked_by="teaguesterling") + version("4.53.2", sha256="1bc19bb8b1029148afa3465a9383f6dcccb1ecce28a0af1d81f07c93396ce37d") + version("4.52.5", sha256="4b1d8f8d903793af62adf74f4810542cbd03515a728d1add0868072ea9aa00b8") + version("4.49.2", sha256="648d96cc490a4e08edb6bf8ff9498360b405263e202663cd9c92322b3aa557ef") version("4.45.4", sha256="e06b9b219ad885b08cf983a7ce5ff6d946587ab4ffc62de4538655bb50e39111") version("4.45.3", sha256="e3edb61a80691d05f4e6286cf68b0f9e8eba120f1f7326b80b9e17fbed25d49e") version("4.45.2", sha256="7ae8f8a4acc78dba5ab3a4bb004d390bbf6fe1cd1fc5746ff7db19f8e627b84f") @@ -31,6 +34,7 @@ class Yq(GoPackage): version("4.35.2", sha256="8b17d710c56f764e9beff06d7a7b1c77d87c4ba4219ce4ce67e7ee29670f4f13") # from go.mod + depends_on("go@1.25:", type="build", when="@4.52.5:") depends_on("go@1.24:", type="build", when="@4.45.3:") depends_on("go@1.23:", type="build", when="@4.45.2:") depends_on("go@1.21:", type="build", when="@4.40:") diff --git a/repos/spack_repo/builtin/packages/z3/fix_1016_1.patch b/repos/spack_repo/builtin/packages/z3/fix_1016_1.patch deleted file mode 100644 index 181fa960352..00000000000 --- a/repos/spack_repo/builtin/packages/z3/fix_1016_1.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- spack-src/src/util/hash.cpp.org 2019-11-14 11:12:11.233379342 +0900 -+++ spack-src/src/util/hash.cpp 2019-11-14 11:15:51.356519168 +0900 -@@ -75,8 +75,8 @@ - __fallthrough; - case 1 : - a+=str[0]; -- __fallthrough; - /* case 0: nothing left to add */ -+ break; - } - mix(a,b,c); - /*-------------------------------------------- report the result */ diff --git a/repos/spack_repo/builtin/packages/z3/package.py b/repos/spack_repo/builtin/packages/z3/package.py index 6c2ea6a0104..f955e0528f7 100644 --- a/repos/spack_repo/builtin/packages/z3/package.py +++ b/repos/spack_repo/builtin/packages/z3/package.py @@ -19,6 +19,7 @@ class Z3(CMakePackage): license("MIT") + version("4.15.4", sha256="dae526252cb0585c8c863292ebec84cace4901a014b190a73f14087dd08d252b") version("4.12.4", sha256="25e9b18d04ee22f1d872dfe0daaf4c39034744525214e34fedd206e25140e96e") version("4.11.2", sha256="e3a82431b95412408a9c994466fad7252135c8ed3f719c986cd75c8c5f234c7e") version("4.8.16", sha256="75f95e09f3f35fef746e571d5ec88a4efba27f1bc8f1a0ef1117167486ec3dc6") @@ -42,6 +43,8 @@ class Z3(CMakePackage): depends_on("cmake@3.4:", type="build") depends_on("gmp", when="+gmp", type=("build", "link")) + conflicts("%gcc@:9", when="@4.15:") + # Referenced: https://github.com/Z3Prover/z3/issues/1016 patch("fix_1016_2.patch", when="@4.5.0") diff --git a/repos/spack_repo/builtin/packages/zabbix/package.py b/repos/spack_repo/builtin/packages/zabbix/package.py index 0283559434e..458d76c5d6b 100644 --- a/repos/spack_repo/builtin/packages/zabbix/package.py +++ b/repos/spack_repo/builtin/packages/zabbix/package.py @@ -20,16 +20,6 @@ class Zabbix(AutotoolsPackage): version("7.0.4", sha256="73aa6b47bd4078587589b30f09671fb30c7743f5b57e81ea8e9bd5a7c5f221c7") version("6.0.34", sha256="e60558911230d27ffad98850e414b46e318c9d41591a6ff65a255c0810cfcb8b") version("5.0.44", sha256="f8ee86fd21f0f57e7fad68387271b995c1e5cc402d517cd7df5d5221fd6129fd") - with default_args(deprecated=True): - # https://nvd.nist.gov/vuln/detail/CVE-2023-32724 - version("5.0.3", sha256="d579c5fa4e9065e8041396ace24d7132521ef5054ce30dfd9d151cbb7f0694ec") - # https://nvd.nist.gov/vuln/detail/CVE-2019-17382 - version( - "4.0.24", sha256="c7e4962d745277d67797d90e124555ce27d198822a7e65c55d86aee45d3e93fc" - ) - version( - "4.0.23", sha256="652143614f52411cad47db64e93bf3ba1cd547d6ca9591296223b5f0528b3b61" - ) depends_on("c", type="build") depends_on("cxx", type="build") diff --git a/repos/spack_repo/builtin/packages/zfp/package.py b/repos/spack_repo/builtin/packages/zfp/package.py index b58b13a723f..b081772768c 100644 --- a/repos/spack_repo/builtin/packages/zfp/package.py +++ b/repos/spack_repo/builtin/packages/zfp/package.py @@ -86,9 +86,7 @@ class Zfp(CMakePackage, CudaPackage): "daz", default=False, when="@1.0.0:", - description="Denormals are zero: " - "Treat denormal-only blocks as containing " - "all zeroes", + description="Denormals are zero: Treat denormal-only blocks as containing all zeroes", ) variant( @@ -154,7 +152,7 @@ def cmake_args(self): if "round" in spec.variants: args.append( - "ZFP_ROUNDING_MODE=ZFP_ROUND_{0}".format(spec.variants["round"].value.upper()) + "-DZFP_ROUNDING_MODE=ZFP_ROUND_{0}".format(spec.variants["round"].value.upper()) ) if "+cuda" in spec: diff --git a/repos/spack_repo/builtin/packages/zig/package.py b/repos/spack_repo/builtin/packages/zig/package.py index b27041eda03..bba4abb9574 100644 --- a/repos/spack_repo/builtin/packages/zig/package.py +++ b/repos/spack_repo/builtin/packages/zig/package.py @@ -12,17 +12,22 @@ class Zig(CMakePackage): """ homepage = "https://ziglang.org/" - git = "https://github.com/ziglang/zig.git" + git = "https://codeberg.org/ziglang/zig.git" maintainers("alalazo") license("MIT") + 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") - 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") + + with default_args(deprecated=True): + 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") variant( "build_type", @@ -31,15 +36,20 @@ class Zig(CMakePackage): description="CMake build type", ) - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated + # See https://codeberg.org/ziglang/zig#building-from-source + depends_on("cmake@3.5:", type="build") + depends_on("cmake@3.15:", type="build", when="@0.13:") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("llvm@20", when="@0.15") + depends_on("llvm@19", when="@0.14") + depends_on("llvm@18", when="@0.13") + depends_on("llvm@17", when="@0.12") + depends_on("llvm@16", when="@0.11") + depends_on("llvm@15", when="@0.10") depends_on("llvm targets=all") - depends_on("llvm@15", when="@0.10.1") - depends_on("llvm@16", when="@0.11.0") - depends_on("llvm@17", when="@0.12.0") - depends_on("llvm@18", when="@0.13.0") - depends_on("llvm@19", when="@0.14.0") depends_on("git", type="build") depends_on("ccache") diff --git a/repos/spack_repo/builtin/packages/zip/package.py b/repos/spack_repo/builtin/packages/zip/package.py index e0cafe6037f..dd648fb5abb 100644 --- a/repos/spack_repo/builtin/packages/zip/package.py +++ b/repos/spack_repo/builtin/packages/zip/package.py @@ -41,6 +41,10 @@ class Zip(MakefilePackage): # these are not from the debian branch patch("12-gcc14-no-implicit-declarations-fix.patch", when="%gcc@14:") + # Adopt patch from Homebrew for newer clang + # https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/z/zip.rb + patch("xcode15.patch", when="%apple-clang@15:") + executables = ["^zip$"] @classmethod diff --git a/repos/spack_repo/builtin/packages/zip/xcode15.patch b/repos/spack_repo/builtin/packages/zip/xcode15.patch new file mode 100644 index 00000000000..16414e81648 --- /dev/null +++ b/repos/spack_repo/builtin/packages/zip/xcode15.patch @@ -0,0 +1,42 @@ +diff -pur zip30/unix/configure zip30-patched/unix/configure +--- zip30/unix/configure 2008-06-20 05:32:20 ++++ zip30-patched/unix/configure 2023-10-04 10:46:52 +@@ -513,13 +513,16 @@ do + do + echo Check for $func + echo "int main(){ $func(); return 0; }" > conftest.c +- $CC $BFLAG -o conftest conftest.c >/dev/null 2>/dev/null ++ $CC $BFLAG -Wno-implicit-function-declaration -o conftest conftest.c >/dev/null 2>/dev/null + [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_`echo $func | tr '[a-z]' '[A-Z]'`" + done + + + echo Check for memset +-echo "int main(){ char k; memset(&k,0,0); return 0; }" > conftest.c ++cat > conftest.c << _EOF_ ++#include ++int main(){ char k; memset(&k,0,0); return 0; } ++_EOF_ + $CC -o conftest conftest.c >/dev/null 2>/dev/null + [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DZMEM" + +@@ -556,6 +559,7 @@ cat > conftest.c << _EOF_ + + echo Check for directory libraries + cat > conftest.c << _EOF_ ++#include + int main() { return closedir(opendir(".")); } + _EOF_ + +@@ -578,7 +582,10 @@ echo Check for readlink + # Dynix/ptx 1.3 needed this + + echo Check for readlink +-echo "int main(){ return readlink(); }" > conftest.c ++cat > conftest.c << _EOF_ ++#include ++int main(){ return readlink(); } ++_EOF_ + $CC -o conftest conftest.c >/dev/null 2>/dev/null + if [ $? -ne 0 ]; then + $CC -o conftest conftest.c -lseq >/dev/null 2>/dev/null diff --git a/repos/spack_repo/builtin/packages/zlib/configure-cc.patch b/repos/spack_repo/builtin/packages/zlib/configure-cc.patch deleted file mode 100644 index 0136071eabe..00000000000 --- a/repos/spack_repo/builtin/packages/zlib/configure-cc.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 05796d3d8d5546cf1b4dfe2cd72ab746afae505d Mon Sep 17 00:00:00 2001 -From: Mark Adler -Date: Mon, 28 Mar 2022 18:34:10 -0700 -Subject: [PATCH] Fix configure issue that discarded provided CC definition. - ---- - configure | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/configure b/configure -index 52ff4a04e..3fa3e8618 100755 ---- a/configure -+++ b/configure -@@ -174,7 +174,10 @@ if test -z "$CC"; then - else - cc=${CROSS_PREFIX}cc - fi -+else -+ cc=${CC} - fi -+ - cflags=${CFLAGS-"-O3"} - # to force the asm version use: CFLAGS="-O3 -DASMV" ./configure - case "$cc" in diff --git a/repos/spack_repo/builtin/packages/zlib/package.py b/repos/spack_repo/builtin/packages/zlib/package.py index 45385d3ba94..7527b202835 100644 --- a/repos/spack_repo/builtin/packages/zlib/package.py +++ b/repos/spack_repo/builtin/packages/zlib/package.py @@ -29,29 +29,10 @@ class Zlib(MakefilePackage, Package): tags = ["core-packages"] libraries = ["libz", "zlib", "zlibstatic", "zlibd", "zlibstaticd"] + version("1.3.2", sha256="bb329a0a2cd0274d05519d61c667c062e06990d72e125ee2dfa8de64f0119d16") version("1.3.1", sha256="9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23") version("1.3", sha256="ff0ba4c292013dbc27530b3a81e1f9a813cd39de01ca5e0f8bf355702efa593e") version("1.2.13", sha256="b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30") - version( - "1.2.12", - sha256="91844808532e5ce316b3c010929493c0244f3d37593afd6de04f71821d5136d9", - deprecated=True, - ) - version( - "1.2.11", - sha256="c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1", - deprecated=True, - ) - version( - "1.2.8", - sha256="36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d", - deprecated=True, - ) - version( - "1.2.3", - sha256="1795c7d067a43174113fdf03447532f373e1c6c57c08d61d9e4e9be5e244b05e", - deprecated=True, - ) build_system("makefile", conditional("generic", when="platform=windows"), default="makefile") @@ -64,9 +45,6 @@ class Zlib(MakefilePackage, Package): conflicts("build_system=makefile", when="platform=windows") - patch("w_patch.patch", when="@1.2.11%cce") - patch("configure-cc.patch", when="@1.2.12") - provides("zlib-api") license("Zlib") @@ -79,9 +57,9 @@ def determine_version(cls, lib): pattern = re.compile(rf"{library}\.(\d+\.\d+\.\d+)\.{ext}") else: pattern = re.compile(rf"{library}\.{ext}\.(\d+\.\d+\.\d+)") - match = re.search(pattern, lib) - if match: - return match.group(1) + match = re.search(pattern, lib) + if match: + return match.group(1) @property def libs(self): @@ -148,7 +126,7 @@ def edit(self, pkg, spec, prefix): class GenericBuilder(generic.GenericBuilder, SetupEnvironment): def install(self, pkg, spec, prefix): - nmake("-f" "win32\\Makefile.msc") + nmake("-fwin32\\Makefile.msc") build_dir = pkg.stage.source_path install_tree = { "bin": glob.glob(os.path.join(build_dir, "*.dll")), diff --git a/repos/spack_repo/builtin/packages/zlib/w_patch.patch b/repos/spack_repo/builtin/packages/zlib/w_patch.patch deleted file mode 100644 index 756cff6a78b..00000000000 --- a/repos/spack_repo/builtin/packages/zlib/w_patch.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/configure b/configure -index e974d1f..ed26a63 100755 ---- a/configure -+++ b/configure -@@ -409,7 +409,7 @@ EOF - if test $shared -eq 1; then - echo Checking for shared library support... | tee -a configure.log - # we must test in two steps (cc then ld), required at least on SunOS 4.x -- if try $CC -w -c $SFLAGS $test.c && -+ if try $CC -c $SFLAGS $test.c && - try $LDSHARED $SFLAGS -o $test$shared_ext $test.o; then - echo Building shared library $SHAREDLIBV with $CC. | tee -a configure.log - elif test -z "$old_cc" -a -z "$old_cflags"; then diff --git a/repos/spack_repo/builtin/packages/zlib_ng/package.py b/repos/spack_repo/builtin/packages/zlib_ng/package.py index de8949324b4..0d8af9a147c 100644 --- a/repos/spack_repo/builtin/packages/zlib_ng/package.py +++ b/repos/spack_repo/builtin/packages/zlib_ng/package.py @@ -22,6 +22,9 @@ class ZlibNg(AutotoolsPackage, CMakePackage): license("Zlib") + version("2.3.3", sha256="f9c65aa9c852eb8255b636fd9f07ce1c406f061ec19a2e7d508b318ca0c907d1") + version("2.3.2", sha256="6a0561b50b8f5f6434a6a9e667a67026f2b2064a1ffa959c6b2dae320161c2a8") + version("2.2.5", sha256="5b3b022489f3ced82384f06db1e13ba148cbce38c7941e424d6cb414416acd18") version("2.2.4", sha256="a73343c3093e5cdc50d9377997c3815b878fd110bf6511c2c7759f2afb90f5a3") version("2.2.3", sha256="f2fb245c35082fe9ea7a22b332730f63cf1d42f04d84fe48294207d033cba4dd") version("2.2.2", sha256="fcb41dd59a3f17002aeb1bb21f04696c9b721404890bb945c5ab39d2cb69654c") @@ -102,11 +105,15 @@ def configure_args(self): class CMakeBuilder(cmake.CMakeBuilder): def cmake_args(self): - return [ + args = [ self.define_from_variant("ZLIB_COMPAT", "compat"), self.define_from_variant("WITH_OPTIM", "opt"), self.define("BUILD_SHARED_LIBS", self.spec.satisfies("+shared")), self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), self.define_from_variant("WITH_NEW_STRATEGIES", "new_strategies"), - self.define("ZLIB_ENABLE_TESTS", self.pkg.run_tests), ] + if self.spec.satisfies("@2.3:"): + args.append(self.define("BUILD_TESTING", self.pkg.run_tests)) + else: + args.append(self.define("ZLIB_ENABLE_TESTS", self.pkg.run_tests)) + return args diff --git a/repos/spack_repo/builtin/packages/zoltan/package.py b/repos/spack_repo/builtin/packages/zoltan/package.py index e6482b7914b..05fd4eeda55 100644 --- a/repos/spack_repo/builtin/packages/zoltan/package.py +++ b/repos/spack_repo/builtin/packages/zoltan/package.py @@ -42,7 +42,6 @@ class Zoltan(AutotoolsPackage): depends_on("cxx", type="build") depends_on("fortran", type="build") depends_on("m4", type="build") - depends_on("perl@:5.21", type="build", when="@:3.6") depends_on("mpi", when="+mpi") depends_on("metis", when="+parmetis") @@ -83,7 +82,7 @@ def parallel(self): return not self.spec.satisfies("@:3.6+fortran") def autoreconf(self, spec, prefix): - autoreconf = which("autoreconf") + autoreconf = which("autoreconf", required=True) with working_dir(self.configure_directory): autoreconf("-ivf") diff --git a/repos/spack_repo/builtin/packages/zookeeper/package.py b/repos/spack_repo/builtin/packages/zookeeper/package.py index 57e4b4808dc..ba0cbd95e25 100644 --- a/repos/spack_repo/builtin/packages/zookeeper/package.py +++ b/repos/spack_repo/builtin/packages/zookeeper/package.py @@ -14,20 +14,11 @@ class Zookeeper(Package): """ homepage = "https://archive.apache.org" - urls = [ - "https://archive.apache.org/dist/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz", - "https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz", - ] + url = "https://archive.apache.org/dist/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz" license("Apache-2.0") version("3.8.4", sha256="284cb4675adb64794c63d95bf202d265cebddc0cda86ac86fb0ede8049de9187") - with default_args(deprecated=True): - # 3.6 is EoL since 30th of December, 2022 - # 3.5 is EoL since 1st of June, 2022 - version( - "3.4.11", sha256="f6bd68a1c8f7c13ea4c2c99f13082d0d71ac464ffaf3bf7a365879ab6ad10e84" - ) depends_on("java") diff --git a/repos/spack_repo/builtin/packages/zookeeper_benchmark/package.py b/repos/spack_repo/builtin/packages/zookeeper_benchmark/package.py index 18c5addb805..1e427ddea3e 100644 --- a/repos/spack_repo/builtin/packages/zookeeper_benchmark/package.py +++ b/repos/spack_repo/builtin/packages/zookeeper_benchmark/package.py @@ -23,5 +23,5 @@ class ZookeeperBenchmark(MavenPackage): def build(self, spec, prefix): zookeeper_version = self.spec["zookeeper"].version.string - mvn = which("mvn") + mvn = which("mvn", required=True) mvn("-DZooKeeperVersion=" + zookeeper_version, "package") diff --git a/repos/spack_repo/builtin/packages/zoxide/package.py b/repos/spack_repo/builtin/packages/zoxide/package.py index a620ff4a2d2..cf5f62b956d 100644 --- a/repos/spack_repo/builtin/packages/zoxide/package.py +++ b/repos/spack_repo/builtin/packages/zoxide/package.py @@ -20,6 +20,12 @@ class Zoxide(CargoPackage): license("MIT") + version("0.9.8", sha256="1b276edbf328aafc86afe1ebce41f45ccba3a3125412e89c8c5d8e825b0c7407") version("0.9.6", sha256="e1811511a4a9caafa18b7d1505147d4328b39f6ec88b88097fe0dad59919f19c") version("0.9.5", sha256="1278660e671d96c5421f0910fa7d79b9e0bb0bfacf7611ff63bf383f721d7a4f") version("0.9.4", sha256="ec002bdca37917130ae34e733eb29d4baa03b130c4b11456d630a01a938e0187") + + depends_on("c", type="build") + + depends_on("rust@1.85:", type="build", when="@0.9.8:") + depends_on("rust@1.74.1:", type="build", when="@0.9.4:") diff --git a/repos/spack_repo/builtin/packages/zsh/package.py b/repos/spack_repo/builtin/packages/zsh/package.py index 6851bfc742d..6d86f3a0e1c 100644 --- a/repos/spack_repo/builtin/packages/zsh/package.py +++ b/repos/spack_repo/builtin/packages/zsh/package.py @@ -45,6 +45,8 @@ class Zsh(AutotoolsPackage): conflicts("+lmod", when="~etcdir", msg="local etc required to setup env for lmod") + patch("pointer-types.patch", when="@5.6.2:") + def configure_args(self): args = [] diff --git a/repos/spack_repo/builtin/packages/zsh/pointer-types.patch b/repos/spack_repo/builtin/packages/zsh/pointer-types.patch new file mode 100644 index 00000000000..db0607478a1 --- /dev/null +++ b/repos/spack_repo/builtin/packages/zsh/pointer-types.patch @@ -0,0 +1,57 @@ +# +# Original patch from: https://github.com/zsh-users/zsh/commit/4c89849c98172c951a9def3690e8647dae76308f.patch +# +# This patch has been modified from the original. +# +# Summary of modifications: +# - Removed hunk for Changelong +# - Removed commit hash +# + +From: Florian Weimer +Date: Fri, 8 Dec 2023 21:58:07 +0100 +Subject: [PATCH] 52383: Avoid incompatible pointer types in terminfo global + variable checks + +--- + configure.ac | 12 ++++++------ + 2 files changed, 9 insertions(+), 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 2a8221e1fb..2871dcb7c6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1768,27 +1768,27 @@ if test x$zsh_cv_path_term_header != xnone; then + fi + + AC_MSG_CHECKING(if boolcodes is available) +- AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = boolcodes; puts(*test);]])],[AC_DEFINE(HAVE_BOOLCODES) boolcodes=yes],[boolcodes=no]) ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)boolcodes; puts(*test);]])],[AC_DEFINE(HAVE_BOOLCODES) boolcodes=yes],[boolcodes=no]) + AC_MSG_RESULT($boolcodes) + + AC_MSG_CHECKING(if numcodes is available) +- AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = numcodes; puts(*test);]])],[AC_DEFINE(HAVE_NUMCODES) numcodes=yes],[numcodes=no]) ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)numcodes; puts(*test);]])],[AC_DEFINE(HAVE_NUMCODES) numcodes=yes],[numcodes=no]) + AC_MSG_RESULT($numcodes) + + AC_MSG_CHECKING(if strcodes is available) +- AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = strcodes; puts(*test);]])],[AC_DEFINE(HAVE_STRCODES) strcodes=yes],[strcodes=no]) ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)strcodes; puts(*test);]])],[AC_DEFINE(HAVE_STRCODES) strcodes=yes],[strcodes=no]) + AC_MSG_RESULT($strcodes) + + AC_MSG_CHECKING(if boolnames is available) +- AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = boolnames; puts(*test);]])],[AC_DEFINE(HAVE_BOOLNAMES) boolnames=yes],[boolnames=no]) ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)boolnames; puts(*test);]])],[AC_DEFINE(HAVE_BOOLNAMES) boolnames=yes],[boolnames=no]) + AC_MSG_RESULT($boolnames) + + AC_MSG_CHECKING(if numnames is available) +- AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = numnames; puts(*test);]])],[AC_DEFINE(HAVE_NUMNAMES) numnames=yes],[numnames=no]) ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)numnames; puts(*test);]])],[AC_DEFINE(HAVE_NUMNAMES) numnames=yes],[numnames=no]) + AC_MSG_RESULT($numnames) + + AC_MSG_CHECKING(if strnames is available) +- AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = strnames; puts(*test);]])],[AC_DEFINE(HAVE_STRNAMES) strnames=yes],[strnames=no]) ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)strnames; puts(*test);]])],[AC_DEFINE(HAVE_STRNAMES) strnames=yes],[strnames=no]) + AC_MSG_RESULT($strnames) + + dnl There are apparently defective terminal library headers on some diff --git a/repos/spack_repo/builtin/packages/zuo/package.py b/repos/spack_repo/builtin/packages/zuo/package.py index 4613dcfc9f2..c41ac44bb94 100644 --- a/repos/spack_repo/builtin/packages/zuo/package.py +++ b/repos/spack_repo/builtin/packages/zuo/package.py @@ -14,7 +14,6 @@ class Zuo(AutotoolsPackage): url = "https://github.com/racket/zuo/archive/refs/tags/v1.11.tar.gz" license("Apache-2.0 AND MIT", checked_by="Buldram") - maintainers("Buldram") version("1.12", sha256="0c8a3a86365fb10961d9a1f536b1cd0d7fcdc2779af03236a340539966b33f86") version("1.11", sha256="8404bea8ecae4576f44dece7efcab69d94c8a30ec10ea186f86823d37e74694b") diff --git a/repos/spack_repo/builtin/packages/zziplib/package.py b/repos/spack_repo/builtin/packages/zziplib/package.py index 733283242da..f549e48ad4a 100644 --- a/repos/spack_repo/builtin/packages/zziplib/package.py +++ b/repos/spack_repo/builtin/packages/zziplib/package.py @@ -18,11 +18,12 @@ class Zziplib(AutotoolsPackage, CMakePackage): homepage = "https://github.com/gdraheim/zziplib" url = "https://github.com/gdraheim/zziplib/archive/v0.13.69.tar.gz" + version("0.13.80", sha256="21f40d111c0f7a398cfee3b0a30b20c5d92124b08ea4290055fbfe7bdd53a22c") version("0.13.78", sha256="feaeee7c34f18aa27bd3da643cc6a47d04d2c41753a59369d09102d79b9b0a31") version("0.13.72", sha256="93ef44bf1f1ea24fc66080426a469df82fa631d13ca3b2e4abaeab89538518dc") version("0.13.69", sha256="846246d7cdeee405d8d21e2922c6e97f55f24ecbe3b6dcf5778073a88f120544") - depends_on("c", type="build") # generated + depends_on("c", type="build") patch("python2to3.patch", when="@:0.13.69") diff --git a/stacks/aws-pcluster-neoverse_v1/spack.yaml b/stacks/aws-pcluster-neoverse_v1/spack.yaml new file mode 100644 index 00000000000..c989ccd8b1f --- /dev/null +++ b/stacks/aws-pcluster-neoverse_v1/spack.yaml @@ -0,0 +1,103 @@ +spack: + view: false + include: + - ../../.ci/gitlab/ + + config: + shared_linking: + missing_library_policy: ignore # due to the use of externals + + definitions: + - apps: + - gromacs@2024.3 ^armpl-gcc ^openmpi + - mpas-model + - mpich + - openfoam ^scotch@6.0.9 + - quantum-espresso@6.6 ^armpl-gcc + - wrf + + packages: + all: + target: ["neoverse_v1"] + require: + - "target=neoverse_v1" + providers: + blas: [armpl-gcc, openblas] + fftw-api: [armpl-gcc, fftw] + lapack: [armpl-gcc, openblas] + mpi: [openmpi, mpich] + scalapack: [netlib-scalapack] + acfl: + require: + - "target=aarch64" + libfabric: + buildable: true + externals: + - prefix: /opt/amazon/efa/ + spec: libfabric@1.17.0 fabrics=shm,efa + require: + - fabrics=shm,efa + - target=neoverse_v1 + llvm: + variants: ~lldb + mpas-model: + require: + - precision=single ^parallelio+pnetcdf + - target=neoverse_v1 + mpich: + require: + - mpich pmi=pmi2 device=ch4 netmod=ofi +slurm + - target=neoverse_v1 + nvhpc: + require: + - "target=aarch64" + openmpi: + variants: ~atomics ~cuda ~cxx ~cxx_exceptions ~internal-hwloc ~java +legacylaunchers ~lustre ~memchecker +pmi +romio +vt +wrapper-rpath fabrics=ofi schedulers=slurm + require: + - '@4:' + - target=neoverse_v1 + # Palace does not build correctly with armpl until https://github.com/awslabs/palace/pull/207 is merged into a version. + # palace: + # require: + # - one_of: ["palace cxxflags=\"-include cstdint\" ^fmt@9.1.0"] + pmix: + require: + - "pmix@3:" + - target=neoverse_v1 + slurm: + buildable: false + externals: + - prefix: /opt/slurm + spec: slurm@22.05.8 +pmix + require: + - "+pmix" + + specs: + - group: gcc12 + specs: + - gcc@12 +strip +binutils ^binutils@2.37 + + - group: apps + needs: [gcc12] + specs: + - $apps + override: + packages: + c: {prefer: [gcc@12]} + cxx: {prefer: [gcc@12]} + fortran: {prefer: [gcc@12]} + + ci: + pipeline-gen: + - build-job: + image: {name: ghcr.io/spack/pcluster-amazonlinux-2:v2026-03-27, entrypoint: ['']} + tags: [aarch64] + - signing-job: + before_script: + # Do not distribute Intel & ARM binaries + - - export SPECS_PATH=${SPACK_BUILDCACHE_RELATIVE_SPECS_PATH} + - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/ | grep intel-oneapi | awk '{print $4}' | sed -e "s?^.*${SPECS_PATH}/??g"); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/$i; done + - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/ | grep armpl | awk '{print $4}' | sed -e "s?^.*${SPECS_PATH}/??g"); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/$i; done + + cdash: + build-group: AWS Packages diff --git a/stacks/aws-pcluster-x86_64_v4/spack.yaml b/stacks/aws-pcluster-x86_64_v4/spack.yaml new file mode 100644 index 00000000000..ebe2c3156ec --- /dev/null +++ b/stacks/aws-pcluster-x86_64_v4/spack.yaml @@ -0,0 +1,142 @@ +spack: + view: false + include: + - ../../.ci/gitlab/ + + config: + shared_linking: + missing_library_policy: ignore # due to the use of externals + + definitions: + - apps: + # earliest oneapi version with fix does not run on AmazonLinux2, see https://github.com/spack/spack/pull/46457 + - gromacs +intel_provided_gcc ^intel-oneapi-mkl + - lammps lammps_sizes=bigbig +molecule +kspace +rigid +asphere +opt +openmp +openmp-package fft=mkl ^intel-oneapi-mkl + - palace + - "openmpi@4:" + - wrf@4 build_type=dm+sm + + packages: + all: + providers: + blas: [ intel-oneapi-mkl ] + daal: [ intel-oneapi-dal ] + fftw-api: [ intel-oneapi-mkl ] + ipp: [ intel-oneapi-ipp ] + lapack: [ intel-oneapi-mkl ] + mkl: [ intel-oneapi-mkl ] + mpi: [ intel-oneapi-mpi, openmpi, mpich ] + tbb: [ intel-oneapi-tbb, intel-tbb ] + scalapack: [ intel-oneapi-mkl ] + gettext: + # Newer gettext cannot build with gcc@12 and old AL2 glibc headers + # Older gettext versions do not build correctly with oneapi. + require: + - '@:0.20 %gcc' + mpi: + require: + - intel-oneapi-mpi + intel-oneapi-mpi: + variants: +external-libfabric generic-names=True + bison: + require: + - "%gcc" + boost: + require: + - "%gcc" + mpas-model: + require: + - spec: precision=single ^parallelio+pnetcdf + when: '%oneapi' + mpich: + require: + - mpich pmi=pmi2 device=ch4 netmod=ofi +slurm + openmpi: + variants: ~atomics ~cuda ~cxx ~cxx_exceptions ~internal-hwloc ~java +legacylaunchers ~lustre ~memchecker +pmi +romio +vt +wrapper-rpath fabrics=ofi schedulers=slurm + pmix: + require: + - 'pmix@3:' + slurm: + buildable: false + externals: + - prefix: /opt/slurm + spec: slurm@22.05.8 +pmix + require: + - +pmix + + specs: + - group: gcc12 + specs: + - gcc@12 +strip +binutils ^binutils@2.37 + override: + packages: + all: + require: + - target=x86_64_v3 + + - group: oneapi2024 + needs: [gcc12] + specs: + - intel-oneapi-compilers@2024.1.0 %gcc@12 + override: + packages: + all: {require: [target=x86_64_v3]} + + - group: apps_x86_64_v3 + needs: [oneapi2024] + specs: + - $apps + override: + packages: + all: {require: [target=x86_64_v3]} + c: {prefer: [intel-oneapi-compilers]} + cxx: {prefer: [intel-oneapi-compilers]} + fortran: {require: [intel-oneapi-compilers]} + # Older gettext versions do not build correctly with oneapi. + gettext: {require:: '%oneapi'} + libfabric: + buildable: false + externals: + - prefix: /opt/amazon/efa/ + spec: libfabric@1.17.0 fabrics:=shm,efa target=x86_64_v3 + wrf: + require: + - target=x86_64_v3 + - "%c,fortran=oneapi" + + - group: apps_x86_64_v4 + needs: [oneapi2024] + specs: + - $apps + override: + packages: + # Prefer because the compiler has still `target=x86_64_v3` + all: {prefer: [target=x86_64_v4]} + c: {prefer: [intel-oneapi-compilers]} + cxx: {prefer: [intel-oneapi-compilers]} + fortran: {require: [intel-oneapi-compilers]} + # Older gettext versions do not build correctly with oneapi. + gettext: {require:: '%oneapi'} + lammps: { require: [+intel] } + libfabric: + buildable: false + externals: + - prefix: /opt/amazon/efa/ + spec: libfabric@1.17.0 fabrics:=shm,efa target=x86_64_v4 + wrf: + require: + - target=x86_64_v4 + - "%c,fortran=oneapi" + + ci: + pipeline-gen: + - build-job: + image: {name: ghcr.io/spack/pcluster-amazonlinux-2:v2026-03-27, entrypoint: ['']} + - signing-job: + before_script: + # Do not distribute Intel & ARM binaries + - - export SPECS_PATH=${SPACK_BUILDCACHE_RELATIVE_SPECS_PATH} + - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/ | grep intel-oneapi | awk '{print $4}' | sed -e "s?^.*${SPECS_PATH}/??g"); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/$i; done + - for i in $(aws s3 ls --recursive ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/ | grep armpl | awk '{print $4}' | sed -e "s?^.*${SPECS_PATH}/??g"); do aws s3 rm ${SPACK_REMOTE_MIRROR_OVERRIDE}/${SPECS_PATH}/$i; done + cdash: + build-group: AWS Packages diff --git a/stacks/bootstrap-aarch64-darwin/spack.yaml b/stacks/bootstrap-aarch64-darwin/spack.yaml new file mode 100644 index 00000000000..7b4cf369991 --- /dev/null +++ b/stacks/bootstrap-aarch64-darwin/spack.yaml @@ -0,0 +1,33 @@ +spack: + view: false + include: + - ../../.ci/gitlab/ + + packages: + all: + target: ["aarch64"] + require: target=aarch64 + + config: + deprecated: true # allow old python versions + + specs: + - clingo-bootstrap +optimized ^python@3.13 + - clingo-bootstrap +optimized ^python@3.12 + - clingo-bootstrap +optimized ^python@3.11 + - clingo-bootstrap +optimized ^python@3.10 + - clingo-bootstrap +optimized ^python@3.9 + - clingo-bootstrap +optimized ^python@3.8 + + - clingo-bootstrap@spack +optimized ^python@3.13 + - clingo-bootstrap@spack +optimized ^python@3.12 + - clingo-bootstrap@spack +optimized ^python@3.11 + - clingo-bootstrap@spack +optimized ^python@3.10 + - clingo-bootstrap@spack +optimized ^python@3.9 + - clingo-bootstrap@spack +optimized ^python@3.8 + + ci: + pipeline-gen: + - build-job: + variables: + CI_GPG_KEY_ROOT: /etc/protected-runner diff --git a/stacks/bootstrap-x86_64-linux-gnu/spack.yaml b/stacks/bootstrap-x86_64-linux-gnu/spack.yaml new file mode 100644 index 00000000000..cb3ab282eac --- /dev/null +++ b/stacks/bootstrap-x86_64-linux-gnu/spack.yaml @@ -0,0 +1,38 @@ +spack: + view: false + include: + - ../../.ci/gitlab/ + + packages: + all: + target: ["x86_64_v3"] + require: target=x86_64_v3 + + config: + deprecated: true # allow old python versions + + specs: + - clingo-bootstrap +optimized ^python@3.13 + - clingo-bootstrap +optimized ^python@3.12 + - clingo-bootstrap +optimized ^python@3.11 + - clingo-bootstrap +optimized ^python@3.10 + - clingo-bootstrap +optimized ^python@3.9 + - clingo-bootstrap +optimized ^python@3.8 + - clingo-bootstrap +optimized ^python@3.7 + - clingo-bootstrap +optimized ^python@3.6 + + - clingo-bootstrap@spack +optimized ^python@3.13 + - clingo-bootstrap@spack +optimized ^python@3.12 + - clingo-bootstrap@spack +optimized ^python@3.11 + - clingo-bootstrap@spack +optimized ^python@3.10 + - clingo-bootstrap@spack +optimized ^python@3.9 + - clingo-bootstrap@spack +optimized ^python@3.8 + - clingo-bootstrap@spack +optimized ^python@3.7 + - clingo-bootstrap@spack +optimized ^python@3.6 + + ci: + pipeline-gen: + - build-job: + image: + name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 + entrypoint: [''] diff --git a/stacks/build_systems/spack.yaml b/stacks/build_systems/spack.yaml new file mode 100644 index 00000000000..7ce1b14c5df --- /dev/null +++ b/stacks/build_systems/spack.yaml @@ -0,0 +1,27 @@ +spack: + view: false + include: + - ../../.ci/gitlab/ + + packages: + all: + target: ["x86_64_v3"] + require: + - target=x86_64_v3 + c: + require: + - gcc + + specs: + - 'uncrustify build_system=autotools' + - 'uncrustify build_system=cmake' + - lz4 # MakefilePackage + - mpich~fortran # AutotoolsPackage + - py-setuptools # PythonPackage + - openjpeg # CMakePackage + - r-rcpp # RPackage + - ruby-rake # RubyPackage + - perl-data-dumper # PerlPackage + + cdash: + build-group: Build Systems diff --git a/stacks/data-vis-sdk/spack.yaml b/stacks/data-vis-sdk/spack.yaml new file mode 100644 index 00000000000..4bbbac430f3 --- /dev/null +++ b/stacks/data-vis-sdk/spack.yaml @@ -0,0 +1,96 @@ +spack: + view: false + include: + - ../../.ci/gitlab/ + - path: https://raw.githubusercontent.com/DAV-SDK/davsdk/refs/tags/v0.2.0/spack/configs/packages.yaml + sha256: "2da821c1b275912b16fbe7870d821345254ee8daebd3e0c490d9a8e0043c40d4" + + packages: + all: + target: ["x86_64_v3"] + require: + - target=x86_64_v3 + c: + require: + - gcc@11 + cxx: + require: + - gcc@11 + fortran: + require: + - gcc@11 + + cmake: + variants: ~ownlibs + + mesa: + require: + - +glx +osmesa +opengl ~opengles +llvm + + libglx: + require: [mesa +glx] + + llvm: + require: + - "@14:" + - target=x86_64_v3 + # Minimize LLVM + variants: ~lldb~lld~lua~offload~libomptarget~polly~gold libunwind=none compiler-rt=none + + ospray: + require: [+denoiser +mpi] + + paraview: + require: ["@6:", "+raytracing +fides"] + + libllvm: + require: ["llvm"] + visit: + require: ["@3.4.1:"] + + concretizer: + unify: when_possible + + definitions: + # Test ParaView and VisIt builds with different GL backends + - paraview_specs: + - matrix: + - - paraview + - - +qt + - ~qt + - visit_specs: + - matrix: + - - visit + - - ~gui ^[virtuals=gl] glx + - ~gui ^[virtuals=gl] osmesa + - +gui ^[virtuals=gl] glx # GUI Support w/ GLX Rendering + + - hdf5_specs: + - hdf5 + - hdf5-vol-async + - hdf5-vol-cache + - hdf5-vol-log + + + specs: + # Compression + - zfp + + # IO + - adios2 + - $hdf5_specs + - parallel-netcdf + + # Visualization + - ascent + - $paraview_specs + - $visit_specs + - vtk-m + + ci: + pipeline-gen: + - build-job: + image: {name: ghcr.io/spack/ubuntu20.04-runner-x86_64:2023-01-01, entrypoint: [""]} + + cdash: + "build-group:": Data and Vis SDK diff --git a/stacks/developer-tools-aarch64-linux-gnu/spack.yaml b/stacks/developer-tools-aarch64-linux-gnu/spack.yaml new file mode 100644 index 00000000000..e80a9f0a799 --- /dev/null +++ b/stacks/developer-tools-aarch64-linux-gnu/spack.yaml @@ -0,0 +1,96 @@ +spack: + view: false + include: + - ../../.ci/gitlab/ + + packages: + all: + require: + - target=aarch64 + prefer: + - '%gcc' + + concretizer: + unify: true + reuse: false + + specs: + # editors + - neovim~no_luajit + - py-pynvim + # FIXME (compiler as nodes): recover dependency on gcc as a library when +native + - 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 + - universal-ctags # only maintained ctags, works better with c++ + - direnv + # runtimes and compilers + - python + - llvm+link_llvm_dylib~lld~offload~lldb~polly+python build_type=MinSizeRel # for clangd, clang-format + - node-js # for editor plugins etc., pyright language server + - npm + - cmake + - libtool + - go # to build fzf, gh, hub + - rust+dev # fd, ripgrep, hyperfine, exa, rust-analyzer + - binutils+ld+gold+plugins # support linking with built gcc + # styling and lints + - astyle + - cppcheck + - uncrustify + - py-fprettify + - py-fortran-language-server + - py-python-lsp-server + - py-isort + - py-mypy-extensions + - py-mypy + - py-black + - py-flake8 + # cli dev tools + - ripgrep + - gh + - fd + - bfs + - fzf + - tree + - jq + - py-yq + - hub + - ncdu + - eza + - lsd + - hyperfine + - htop + - tmux + - ccache + # ensure we can use a jobserver build and do this fast + - gmake + - ninja # should be @kitware, can't be because of meson requirement + - openssl certs=system # must be this, system external does not work + - libtree + - patchelf + - sed + - which + - elfutils + - fontconfig + - font-util + - gdb + - flex + - graphviz + - doxygen + - meson + # spack developer tools + # style + - "py-mypy@0.900: ^py-mypy-extensions@:1.0" + - py-pytest@9.0.3 + - py-ruff@0.15.0 + - py-ty@0.0.20 + + ci: + pipeline-gen: + - build-job: + image: ghcr.io/spack/aarch64-linux-gnu:v2024-12-18 + + cdash: + build-group: Developer Tools aarch64-linux-gnu diff --git a/stacks/developer-tools-darwin/spack.yaml b/stacks/developer-tools-darwin/spack.yaml new file mode 100644 index 00000000000..f6950a65761 --- /dev/null +++ b/stacks/developer-tools-darwin/spack.yaml @@ -0,0 +1,109 @@ +spack: + view: false + include: + - ../../.ci/gitlab/ + + packages: + all: + variants: + - build_type=MinSizeRel + require: + - target=aarch64 + concretizer: + unify: true + reuse: false + specs: + # editors + - emacs~native+treesitter # TODO +native not supported until gcc builds on darwin + - nano + # - neovim + - py-pynvim + + # runtimes and language compilers + - cmake + - go + - libtool + - llvm+link_llvm_dylib+lld~lldb~polly+python + - node-js + - npm + - python + - rust+dev + + # cli dev tools + - bfs + - ccache + # - difftastic # TODO investigate linker error here + - eza + - fd + - flex + - fzf + - gh + - git + - htop + - hub + - hyperfine + - jq + - libtree + - lsd + - mergiraf + - ncdu + - py-yq + - ripgrep + - sed + - tmux + - tree + - which + - zoxide + + # styling and lints + - aspell + - astyle + # - cppcheck # TODO: investigate why this is not reproducible outside of runner + - py-black + - py-codespell + - py-flake8 + - py-isort + - py-mypy-extensions + - py-fortran-language-server + - py-fprettify + - py-mypy + - py-python-lsp-ruff + - py-python-lsp-server + - typos + - uncrustify + - gopls + - goimports + + # docs tools + - graphviz + - doxygen + + # shell integration tools + - direnv + + # container tools + - lima + - podman + + # tags and scope search helpers + - universal-ctags + + # ensure we can use a jobserver build and do this fast + - gmake + - ninja + - meson + # spack developer tools + # style + - "py-mypy@0.900: ^py-mypy-extensions@:1.0" + - py-pytest@9.0.3 + - py-ruff@0.15.0 + - py-ty@0.0.20 + + ci: + pipeline-gen: + - build-job: + variables: + CI_GPG_KEY_ROOT: /etc/protected-runner + + cdash: + build-group: Developer Tools Darwin diff --git a/stacks/developer-tools-x86_64_v3-linux-gnu/spack.yaml b/stacks/developer-tools-x86_64_v3-linux-gnu/spack.yaml new file mode 100644 index 00000000000..eb709aed53e --- /dev/null +++ b/stacks/developer-tools-x86_64_v3-linux-gnu/spack.yaml @@ -0,0 +1,99 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + + packages: + all: + require: + - target=x86_64_v3 + - ~cuda + - ~rocm + prefer: + - "%gcc" + concretizer: + unify: true + reuse: false + static_analysis: true + + specs: + # editors + - neovim~no_luajit + - py-pynvim + # FIXME (compiler as nodes): recover dependency on gcc as a library when +native + - 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 + - universal-ctags # only maintained ctags, works better with c++ + - direnv + # runtimes and compilers + - python + - llvm+link_llvm_dylib~lld~offload~lldb~polly+python build_type=MinSizeRel # for clangd, clang-format + - node-js # for editor plugins etc., pyright language server + - npm + - cmake + - libtool + - go # to build fzf, gh, hub + - rust+dev # fd, ripgrep, hyperfine, exa, rust-analyzer + - binutils+ld+gold+plugins # support linking with built gcc + # styling and lints + - astyle + - cppcheck + - uncrustify + - py-fprettify + - py-fortran-language-server + - py-python-lsp-server + - py-isort + - py-mypy-extensions + - py-mypy + - py-black + - py-flake8 + # cli dev tools + - ripgrep + - gh + - fd + - bfs + - fzf + - tree + - jq + - py-yq + - hub + - ncdu + - eza + - lsd + - hyperfine + - htop + - tmux + - ccache + # ensure we can use a jobserver build and do this fast + - gmake + - ninja # should be @kitware, can't be because of meson requirement + - openssl certs=system # must be this, system external does not work + - libtree + - patchelf + - sed + - which + - elfutils + - fontconfig + - font-util + - gdb + - flex + - graphviz + - doxygen + - meson + # spack developer tools + # style + - "py-mypy@0.900: ^py-mypy-extensions@:1.0" + - py-pytest@9.0.3 + - py-ruff@0.15.0 + - py-ty@0.0.20 + + ci: + pipeline-gen: + - build-job: + image: ghcr.io/spack/x86_64_v3-linux-gnu:2024-12-12 + + cdash: + build-group: Developer Tools x86_64_v3-linux-gnu diff --git a/stacks/e4s-cray-rhel/spack.yaml b/stacks/e4s-cray-rhel/spack.yaml new file mode 100644 index 00000000000..bc159b0dbe4 --- /dev/null +++ b/stacks/e4s-cray-rhel/spack.yaml @@ -0,0 +1,203 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + + concretizer: + static_analysis: true + + config: + shared_linking: + missing_library_policy: ignore # due to use of externals + + packages: + all: + require: + - target=x86_64_v3 + providers: + blas: [cray-libsci] + c: [cce, gcc] + cxx: [cce, gcc] + fortran: [cce, gcc] + lapack: [cray-libsci] + mpi: [cray-mpich] + tbb: [intel-tbb] + scalapack: [netlib-scalapack] + variants: +mpi + + # Virtuals + blas: + require: + - cray-libsci + lapack: + require: + - cray-libsci + mpi: + require: + - cray-mpich + scalapack: + require: + - netlib-scalapack + + cce: + externals: + - spec: cce@20.0.0 + prefix: /opt/cray/pe/cce/20.0.0 + extra_attributes: + compilers: + c: /opt/cray/pe/cce/20.0.0/bin/craycc + cxx: /opt/cray/pe/cce/20.0.0/bin/crayCC + fortran: /opt/cray/pe/cce/20.0.0/bin/crayftn + gcc: + externals: + - spec: gcc@8.5.0 languages:='c,c++,fortran' + prefix: /usr + extra_attributes: + compilers: + c: /usr/bin/gcc + cxx: /usr/bin/g++ + fortran: /usr/bin/gfortran + + ncurses: + require: + - +termlib ldflags=-Wl,--undefined-version + - target=x86_64_v3 + tbb: + require: "intel-tbb" + binutils: + variants: +ld +gold +headers +libiberty ~nls + boost: + variants: +python +filesystem +iostreams +system + elfutils: + variants: ~nls + require: + - target=x86_64_v3 + - "%gcc" + hdf5: + variants: +fortran +hl +shared + libfabric: + variants: fabrics=sockets,tcp,udp,rxm + mgard: + require: + - target=x86_64_v3 + - "@compat-2023-01-10:" + paraview: + # Don't build GUI support or GLX rendering for HPC/container deployments + require: + - "~qt ^[virtuals=gl] osmesa" + - target=x86_64_v3 + petsc: + require: + - "+batch" + - target=x86_64_v3 + + specs: + # CPU + - adios + - aml + - arborx + - argobots + - boost +python +filesystem +iostreams +system + - cabana + - caliper + - chai + - conduit + - dyninst + - flecsi + - flit + - flux-core + - gasnet + - ginkgo + - globalarrays + - gmp + - gotcha + - h5bench + - hdf5-vol-async + - hdf5-vol-cache cflags=-Wno-error=incompatible-function-pointer-types + - hdf5-vol-log + - heffte +fftw + - hpctoolkit + - hpx max_cpu_count=512 networking=mpi + - hypre + - kokkos +openmp + - kokkos-fft host_backend=fftw-openmp +tests + - kokkos-kernels +openmp + - libnrm + - libquo + - libunwind + - mercury + - metall + - mfem + - mgard +serial +openmp +timing +unstructured ~cuda # mgard + - mpark-variant + - mpifileutils ~xattr cflags=-Wno-error=implicit-function-declaration + - nccmp + - netlib-scalapack cflags=-Wno-error=implicit-function-declaration + - nvhpc + - openmpi + - papi + - papyrus + - parsec ~cuda + - pdt + - petsc + - precice + - pumi + - py-h5py +mpi + - py-h5py ~mpi + - py-libensemble +mpi +nlopt + - py-petsc4py + - qthreads scheduler=distrib + - raja + - slate ~cuda + - stc + - sundials + - swig + - swig@4.0.2-fortran + - tasmanian + - tau +mpi +python + - turbine + - umap + - umpire + - upcxx + - veloc + - wannier90 + + # recently confirmed issues: + # - alquimia + # - amrex # disabled temporarily pending resolution of unreproducible CI failure + # - axom + # - bolt + # - bricks + # - butterflypack ^netlib-scalapack cflags=-Wno-error=implicit-function-declaration # cray/pe/cce/20.0.0/cce/x86_64/bin/../../../cce/x86_64/bin/optcg" was terminated due to receipt of signal 013: Segmentation fault (core dumped). + # - charliecloud # hard to pin down build error, occurs sometimes not others, requires investigation + # - cp2k +mpi + # - datatransferkit + # - dealii + # - exaworks + # - gptune + # - lammps + # - legion # bitmask.h:2894:22: error: a template argument list is expected after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw] + # - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +mgard + # - nco + # - nrm + # - omega-h + # - openpmd-api ^adios2~mgard # json-c: printbuf.c:163:15: error: call to undeclared function 'vasprintf'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] + # - phist + # - plasma + # - plumed + # - py-jupyterhub + # - quantum-espresso + # - scr + # - slepc + # - strumpack ~slate # butterflypack: build inconsistently fails: # cray/pe/cce/20.0.0/cce/x86_64/bin/../../../cce/x86_64/bin/optcg" was terminated due to receipt of signal 013: Segmentation fault (core dumped). + # - superlu # CMake Error at FORTRAN/cmake_install.cmake:111 (file): file INSTALL cannot find: spack-build-nhn6u3t/FORTRAN/superlu_mod.mod": + # - superlu-dist # ld.lld: error: undefined symbol: dgemv_ + # - sz3 # gsl: clang: /workspace/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:3642: llvm::slpvectorizer::BoUpSLP::TreeEntry* llvm::slpvectorizer::BoUpSLP::newTreeEntry(llvm::ArrayRef, llvm::slpvectorizer::BoUpSLP::TreeEntry::EntryState, std::optional, const {anonymous}::InstructionsState&, const llvm::slpvectorizer::BoUpSLP::EdgeInfo&, llvm::ArrayRef, llvm::ArrayRef): Assertion `(hasFullVectorsOrPowerOf2(*TTI, getValueType(VL.front()), VL.size()) || ReuseShuffleIndices.empty()) && "Reshuffling scalars not yet supported for nodes with padding"' failed. + # - trilinos +belos +ifpack2 +stokhos # spack-src/packages/kokkos-kernels/sparse/src/KokkosSparse_spadd_handle.hpp:81:40: error: no member named'sort_option' in 'SPADDHandle' + # - variorum + # - warpx +python + # - xyce +mpi +shared +pymi # xyce: cray-libsci not supported with +pymi_static_tpls + + cdash: + build-group: E4S Cray diff --git a/stacks/e4s-cray-sles/spack.yaml b/stacks/e4s-cray-sles/spack.yaml new file mode 100644 index 00000000000..7993e13eb70 --- /dev/null +++ b/stacks/e4s-cray-sles/spack.yaml @@ -0,0 +1,177 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + + concretizer: + reuse: false + unify: false + + config: + shared_linking: + missing_library_policy: ignore # due to use of externals + + packages: + all: + require: '%gcc' + providers: + blas: [cray-libsci] + lapack: [cray-libsci] + mpi: [cray-mpich] + tbb: [intel-tbb] + scalapack: [netlib-scalapack] + target: [zen4] + variants: +mpi + + tbb: + require: "intel-tbb" + binutils: + variants: +ld +gold +headers +libiberty ~nls + boost: + variants: +python +filesystem +iostreams +system + cuda: + version: [11.7.0] + elfutils: + variants: ~nls + require: "%gcc" + hdf5: + variants: +fortran +hl +shared + libfabric: + variants: fabrics=sockets,tcp,udp,rxm + libunwind: + variants: +pic +xz + mpich: + variants: ~wrapperrpath + ncurses: + variants: +termlib + paraview: + # Don't build GUI support or GLX rendering for HPC/container deployments + require: "@5.11 ~qt ^[virtuals=gl] osmesa" + trilinos: + require: + - one_of: [+amesos2 +anasazi +boost + +intrepid2 +kokkos +minitensor +nox +piro +phalanx + +rol +sacado +stk +shards +stratimikos +tempus +tpetra + +trilinoscouplings +zoltan] + - one_of: [gotype=long_long, gotype=all] + - one_of: [~muelu ~zoltan2 ~teko, +muelu +zoltan2 +teko] + xz: + variants: +pic + mesa: + version: [21.3.8] + unzip: + require: "%gcc" + + specs: + # CPU + - adios + - aml + - arborx + - argobots + - bolt + - butterflypack + - boost +python +filesystem +iostreams +system + - cabana + - chai + - conduit + # - cp2k +mpi # cp2k: Error: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/COMPLEX(4)). + - datatransferkit + - flecsi + - ginkgo + - globalarrays + - gmp + - gotcha + - h5bench + - hdf5-vol-async + - hdf5-vol-cache + - hdf5-vol-log + - heffte +fftw + - hypre + - kokkos +openmp + - kokkos-kernels +openmp + - kokkos-fft host_backend=fftw-openmp +tests + - lammps + - legion + - libnrm + - libquo + - libunwind + - mercury + - metall + - mfem + - mgard +serial +openmp +timing +unstructured ~cuda + - mpark-variant + - mpifileutils ~xattr + - nccmp + - nco + - netlib-scalapack + - omega-h + - openmpi + - openpmd-api + - papi + - papyrus + - pdt + - pumi + - qthreads scheduler=distrib + - raja + - slate ~cuda + - stc + - sundials + - superlu + - superlu-dist + - swig + - swig@4.0.2-fortran + - sz3 + - tasmanian + - trilinos +belos +ifpack2 +stokhos + - turbine + - umap + - umpire + - veloc + - wannier90 + + # ERRORS + # - caliper # caliper: ModuleNotFoundError: No module named 'math'; src/mpi/services/mpiwrap/CMakeFiles/caliper-mpiwrap.dir/build.make:77: src/mpi/services/mpiwrap/Wrapper.cpp] Error 1 + # - charliecloud # python: Could not find platform dependent libraries + # - flit # python: Could not find platform dependent libraries + # - flux-core # python: Could not find platform dependent libraries + # - hpx max_cpu_count=512 networking=mpi # python: Could not find platform dependent libraries + # - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +mgard # python: Could not find platform dependent libraries + # - petsc # petsc: SyntaxError: (unicode error) \N escapes not supported (can't load unicodedata module) + # - plumed # python: Could not find platform dependent libraries + # - precice # petsc: SyntaxError: (unicode error) \N escapes not supported (can't load unicodedata module) + # - py-h5py +mpi # python: Could not find platform dependent libraries + # - py-h5py ~mpi # python: Could not find platform dependent libraries + # - py-libensemble +mpi +nlopt # python: Could not find platform dependent libraries + # - py-petsc4py # python: Could not find platform dependent libraries + # - slepc # petsc: SyntaxError: (unicode error) \N escapes not supported (can't load unicodedata module) + # - tau +mpi +python # tau: ERROR: Cannot find python library (libpython*.[so|dylib] + + # HOLDING THESE BACK UNTIL CRAY SLES CAPACITY IS EXPANDED AT UO + # - alquimia + # - amrex + # - axom + # - bricks + # - dealii + # - dyninst + # - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 +paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp ^hdf5@1.14 # llvm@14.0.6: ?; + # - exaworks + # - gasnet + # - gptune + # - hpctoolkit + # - nrm + # - nvhpc + # - parsec ~cuda + # - phist + # - plasma + # - py-jupyterhub + # - quantum-espresso + # - scr + # - strumpack ~slate + # - upcxx + # - variorum + # - xyce +mpi +shared +pymi +pymi_static_tpls ^trilinos~shylu + # - warpx +python + + cdash: + build-group: E4S Cray SLES diff --git a/stacks/e4s-neoverse-v2/spack.yaml b/stacks/e4s-neoverse-v2/spack.yaml new file mode 100644 index 00000000000..7e1af774dac --- /dev/null +++ b/stacks/e4s-neoverse-v2/spack.yaml @@ -0,0 +1,249 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + + concretizer: + reuse: false + unify: false + + packages: + all: + require: + - "%gcc" + - target=neoverse_v2 + target: ["neoverse_v2"] + providers: + blas: [openblas] + mpi: [mpich] + variants: +mpi + binutils: + variants: +ld +gold +headers +libiberty ~nls + blas: + require: + - openblas + hdf5: + variants: +fortran +hl +shared + libfabric: + variants: fabrics=sockets,tcp,udp,rxm + openblas: + variants: threads=openmp + trilinos: + variants: +amesos2 +anasazi +belos +boost + +ifpack2 +intrepid2 +kokkos +minitensor +muelu + +nox +piro +phalanx +rol +sacado +stk +shards +shylu +stokhos +stratimikos + +teko +tempus +thyra +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long + mpi: + require: mpich + mpich: + require: '~wrapperrpath ~hwloc target=neoverse_v2 %gcc' + tbb: + require: intel-tbb + vtk-m: + require: "+examples target=neoverse_v2 %gcc" + paraview: + require: "+examples target=neoverse_v2 %gcc" + boost: + require: "cxxstd=17 target=neoverse_v2 %gcc" + + specs: + # CPU + # - adios + # - alquimia + # - aml + - amrex + - arborx + # - argobots + - ascent # ecp dav + - axom + # - bolt + # - boost + - butterflypack + - cabana + - caliper + - chai + # - charliecloud + - conduit + - cp2k +mpi + - datatransferkit + - dyninst + - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 ~paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp # +visit: ? + - exaworks + - fftx + - flecsi + # - flit + # - flux-core + # - gasnet + - ginkgo + # - globalarrays + # - gmp + # - gotcha + # - gptune ~mpispawn + - gromacs +cp2k ^cp2k +mpi +dlaf build_system=cmake + - h5bench + - hdf5-vol-async + - hdf5-vol-cache + - hdf5-vol-log + - heffte +fftw + - hpctoolkit + - hpx networking=mpi + - hypre + - kokkos +openmp + - kokkos-kernels +openmp + - kokkos-fft host_backend=fftw-openmp +tests + - lammps + - lbann + - legion + - libceed + - libnrm + - libquo + - libunwind + - loki + - mercury + - metall + - mfem + - mgard +serial +openmp +timing +unstructured ~cuda + - mpark-variant + - mpifileutils ~xattr + - nccmp + - nco + - netlib-scalapack + - nrm + # - nvhpc + - nwchem + - omega-h + - openfoam + # - openmpi + - openpmd-api + - papi + - papyrus + - parsec ~cuda + - pdt + - petsc + - phist + - plasma + - plumed + - precice + - pruners-ninja + - pumi + - py-amrex + - py-h5py + - py-jupyterhub + - py-libensemble + - py-petsc4py + - qthreads scheduler=distrib + - quantum-espresso + - raja + - rempi + - scr + - slate ~cuda + - slepc + - stc + - strumpack ~slate + - sundials + - superlu + - superlu-dist + # - swig@4.0.2-fortran + - sz3 + - tasmanian + - tau +mpi +python +syscall + - trilinos +amesos2 +anasazi +belos +boost +ifpack2 +intrepid2 +kokkos +minitensor +muelu +nox +piro +phalanx +rol +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long + - turbine + # - umap + - umpire + - upcxx + # - veloc + - wannier90 + - warpx +python + - xyce +mpi +shared +pymi ~pymi_static_tpls + # INCLUDED IN ECP DAV CPU + # - adios2 + # - darshan-runtime + # - darshan-util + # - faodel + # - hdf5 + # - libcatalyst + # - parallel-netcdf + # - paraview + # - py-cinemasci + # - sz + # - unifyfs + # - visit # silo: https://github.com/spack/spack/issues/39538 + # - vtk-m + # - zfp + # -- + - laghos + # - bricks ~cuda # not respecting target=aarch64? + # - dealii # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'. + # - geopm # geopm: https://github.com/spack/spack/issues/38795 + # - glvis # glvis: https://github.com/spack/spack/issues/42839 + # - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp # py-numcodecs@0.7.3: gcc: error: unrecognized command-line option '-mno-sse2' + - variorum cpu=arm gpu=none # variorum: https://github.com/spack/spack/issues/38786 + + # CUDA NOARCH + - flux-core +cuda + - hpctoolkit +cuda + - papi +cuda + - tau +mpi +cuda +syscall + # -- + # - bricks +cuda # not respecting target=aarch64? + # - legion +cuda # legion: needs NVIDIA driver + + # CUDA 90 + - amrex +cuda cuda_arch=90 + - arborx +cuda cuda_arch=90 ^kokkos +wrapper + - cabana +cuda cuda_arch=90 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=90 + - caliper +cuda cuda_arch=90 + - chai +cuda cuda_arch=90 ^umpire ~shared + - fftx +cuda cuda_arch=90 + - flecsi +cuda cuda_arch=90 + - ginkgo +cuda cuda_arch=90 + - gromacs +cuda cuda_arch=90 + - heffte +cuda cuda_arch=90 + - hpx +cuda cuda_arch=90 + - kokkos +wrapper +cuda cuda_arch=90 + - kokkos-kernels +cuda cuda_arch=90 ^kokkos +wrapper +cuda cuda_arch=90 + - kokkos-fft device_backend=cufft +tests ^kokkos +wrapper +cuda cuda_arch=90 + - libceed +cuda cuda_arch=90 + - magma +cuda cuda_arch=90 + - mfem +cuda cuda_arch=90 + - mgard +serial +openmp +timing +unstructured +cuda cuda_arch=90 + - parsec +cuda cuda_arch=90 + - petsc +cuda cuda_arch=90 + - raja +cuda cuda_arch=90 + - slate +cuda cuda_arch=90 + - strumpack ~slate +cuda cuda_arch=90 + - sundials +cuda cuda_arch=90 + - superlu-dist +cuda cuda_arch=90 + - trilinos +cuda cuda_arch=90 + - umpire ~shared +cuda cuda_arch=90 + # INCLUDED IN ECP DAV CUDA + - adios2 +cuda cuda_arch=90 + # - ascent +cuda cuda_arch=90 # ascent: https://github.com/spack/spack/issues/38045 + # - paraview +cuda cuda_arch=90 # paraview: InstallError: Incompatible cuda_arch=90 + - vtk-m +cuda cuda_arch=90 + - zfp +cuda cuda_arch=90 + # -- + # - axom +cuda cuda_arch=90 # axom: https://github.com/spack/spack/issues/29520 + # - cp2k +mpi +cuda cuda_arch=90 # cp2k: cp2k only supports cuda_arch ('35', '37', '60', '70', '80') + # - cusz +cuda cuda_arch=90 # cusz: https://github.com/spack/spack/issues/38787 + # - dealii +cuda cuda_arch=90 # dealii: https://github.com/spack/spack/issues/39532 + # - ecp-data-vis-sdk +adios2 +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=90 # embree: https://github.com/spack/spack/issues/39534 + # - hypre +cuda cuda_arch=90 # concretizer: hypre +cuda requires cuda@:11, but cuda_arch=90 requires cuda@12: + # - lammps +cuda cuda_arch=90 # lammps: needs NVIDIA driver + # - lbann +cuda cuda_arch=90 # concretizer: Cannot select a single "version" for package "lbann" + # - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf ~cusz +mgard +cuda cuda_arch=90 # libpressio: CMake Error at CMakeLists.txt:498 (find_library): Could not find CUFile_LIBRARY using the following names: cufile ; +cusz: https://github.com/spack/spack/issues/38787 + # - omega-h +cuda cuda_arch=90 # omega-h: https://github.com/spack/spack/issues/39535 + # - py-torch +cuda cuda_arch=90 # skipped, installed by other means + # - slepc +cuda cuda_arch=90 # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'. + # - tasmanian +cuda cuda_arch=90 # tasmanian: conflicts with cuda@12 + # - upcxx +cuda cuda_arch=90 # upcxx: needs NVIDIA driver + + ci: + pipeline-gen: + - build-job: + image: ghcr.io/spack/spack/ubuntu22.04-runner-arm64-gcc-11.4:2024.03.01 + + cdash: + build-group: E4S ARM Neoverse V2 diff --git a/stacks/e4s-oneapi/spack.yaml b/stacks/e4s-oneapi/spack.yaml new file mode 100644 index 00000000000..8ebca575bd3 --- /dev/null +++ b/stacks/e4s-oneapi/spack.yaml @@ -0,0 +1,232 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + + concretizer: + reuse: false + unify: false + static_analysis: false + + packages: + all: + target: [x86_64_v3] + require: + - '@:99999999' + - 'target=x86_64_v3' + providers: + c: [intel-oneapi-compilers, gcc] + cxx: [intel-oneapi-compilers, gcc] + fortran: [intel-oneapi-compilers, gcc] + blas: [openblas] + tbb: [intel-tbb] + variants: +mpi + + elfutils: + variants: ~nls + hdf5: + variants: +fortran +hl +shared + libfabric: + variants: fabrics=sockets,tcp,udp,rxm + libunwind: + variants: +pic +xz + ncurses: + variants: +termlib + openblas: + variants: threads=openmp + require: 'cppflags="-O1" target=x86_64_v3 %oneapi' + trilinos: + variants: +amesos2 +anasazi +belos +boost + +ifpack2 +intrepid2 +kokkos +minitensor +muelu + +nox +piro +phalanx +rol +sacado +stk +shards +shylu +stokhos +stratimikos + +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long + xz: + variants: +pic + gcc-runtime: + require: 'target=x86_64_v3 %gcc' + binutils: + variants: +ld +gold +headers +libiberty ~nls + rust: + require: 'target=x86_64_v3 %gcc' + bison: + require: 'target=x86_64_v3 %gcc' + raja: + variants: +plugins + paraview: + variants: +qt +examples + + # externals + mpi: + require: intel-oneapi-mpi + oneapi-igc: + buildable: false + externals: + - spec: oneapi-igc@1.0.10409 + prefix: /usr + + specs: + # CPU Specs: + - adios + - adios2 + - alquimia + - aml + - amrex + - arborx + - argobots + - ascent + - axom + - bolt + - boost + - bricks ~cuda + - butterflypack + - cabana + - caliper + - chai tests=none + - charliecloud + - conduit + - darshan-runtime + - darshan-util + - datatransferkit + - e4s-alc + - e4s-cl + - exaworks + - faodel + - flecsi + - flit + - flux-core + - gasnet + - ginkgo + - globalarrays + - gmp + - gotcha + - gromacs + - h5bench + - hdf5 + - hdf5-vol-async + - hdf5-vol-cache + - hdf5-vol-log + - heffte +fftw + - hpctoolkit + - hpx networking=mpi + - hypre + - kokkos +openmp + - kokkos-kernels +openmp + - laghos ^mfem~cuda + - lammps +amoeba +asphere +bocs +body +bpm +brownian +cg-dna +cg-spica +class2 +colloid +colvars +compress +coreshell +dielectric +diffraction +dipole +dpd-basic +dpd-meso +dpd-react +dpd-smooth +drude +eff +electrode +extra-compute +extra-dump +extra-fix +extra-molecule +extra-pair +fep +granular +interlayer +kspace +lepton +machdyn +manybody +mc +meam +mesont +misc +ml-iap +ml-pod +ml-snap +mofff +molecule +openmp-package +opt +orient +peri +phonon +plugin +poems +qeq +reaction +reaxff +replica +rigid +shock +sph +spin +srd +tally +uef +voronoi +yaff + - legion + - libcatalyst + - libceed + - libnrm + - libquo + - libunwind + - loki + - mercury + - metall + - mfem + - mgard +serial +openmp +timing +unstructured ~cuda + - mpark-variant + - mpifileutils ~xattr + - nccmp + - nekbone +mpi + - netlib-scalapack + - nwchem + - omega-h + - openfoam + - openmpi + - openpmd-api + - papi target=x86_64_v3 + - papyrus + - parallel-netcdf + - parsec ~cuda + - pdt + - petsc + - phist + - plumed + - precice + - pruners-ninja + - pumi + - py-h5py + - py-libensemble + - py-petsc4py + - qthreads scheduler=distrib + - quantum-espresso + - raja + - rempi + - scr + - slate ~cuda + - slepc + - stc + - strumpack ~slate + - sundials + - superlu + - superlu-dist + - swig@4.0.2-fortran + - sz + - sz3 + - tasmanian + - tau +mpi +python +syscall + - trilinos +amesos2 +anasazi +belos +boost +ifpack2 +intrepid2 +kokkos +minitensor +muelu +nox +piro +phalanx +rol +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long + - turbine + - umap + - umpire + - unifyfs + - upcxx + - variorum + - veloc + - vtk-m ~openmp # +openmp: https://github.com/spack/spack/issues/31830 + - wannier90 + - xyce +mpi +shared +pymi +pymi_static_tpls + - zfp + + # SYCL Specs + - aml +level_zero + - amrex +sycl + - arborx +sycl ^kokkos +sycl +openmp cxxstd=17 + - cabana +sycl ^kokkos +sycl +openmp cxxstd=17 + - ginkgo +sycl + - heffte +sycl + - hpctoolkit +level_zero + - kokkos +sycl +openmp cxxstd=17 + - kokkos-kernels ^kokkos +sycl +openmp cxxstd=17 + - sundials +sycl +examples-install cxxstd=17 + - tau +mpi +opencl +python +level_zero +syscall + - upcxx +level_zero + + # Current errors: + # - gptune ~mpispawn # py-gpy-1.13.2: GPy/kern/src/stationary_cython.c:17564:41: error: no member named 'subarray' in 'struct _PyArray_Descr' + # - hypre +sycl # Could NOT find IntelSYCL (missing: SYCL_INCLUDE_DIR SYCL_LIBRARY_DIR SYCL_LIBRARY) (found version "202012") + # - nco # hdf5-1.14.6:Fatal Error: Reading module '/home/software/spack/[padded-to-256-chars]/linux-x86_64_v3/intel-oneapi-mpi-2021.17.2-4qz7nzr4kheywlw2dln3vwbe4527tdck/mpi/2021.17/include/mpi/mpi.mod' at line 1 column 2: Unexpected EOF + # - netcdf-fortran # hdf5-1.14.6:Fatal Error: Reading module '/home/software/spack/[padded-to-256-chars]/linux-x86_64_v3/intel-oneapi-mpi-2021.17.2-4qz7nzr4kheywlw2dln3vwbe4527tdck/mpi/2021.17/include/mpi/mpi.mod' at line 1 column 2: Unexpected EOF + # - nrm # py-gevent-25.5.1: gcc: error: unrecognized command-line option '-fp-model=strict' + # - petsc +sycl # kokkos-kernels-5.0.2: batched/dense/impl/KokkosBatched_HostLevel_Gemm_DblBuf_Impl.hpp:233:24: error: 'BatchedDblBufGemm, Kokkos::MemoryTraits<1>>, Kokkos::View, Kokkos::MemoryTraits<1>>, Kokkos::View, Kokkos::MemoryTraits<1>>, KokkosBatched::BoundsCheck::No, KokkosBatched::AlphaTag::Yes, 32, 32, 8> &' cannot be used as the type of a kernel parameter + # - py-cinemasci # node-js-24.13.0: ?? + # - py-jupyterhub # node-js-24.13.0: ?? + # - slate +sycl # error: invalid LLVM IR input: Instruction operands must be first-class values! + # - wrf # hdf5-1.14.6:Fatal Error: Reading module '/home/software/spack/[padded-to-256-chars]/linux-x86_64_v3/intel-oneapi-mpi-2021.17.2-4qz7nzr4kheywlw2dln3vwbe4527tdck/mpi/2021.17/include/mpi/mpi.mod' at line 1 column 2: Unexpected EOF + + # Old errors: + # - chapel ~cuda ~rocm + # - cp2k +mpi + # - dealii + # - exago +mpi ~ipopt +hiop ~python +raja ^hiop+raja~sparse + # - fftx + # - fpm + # - geopm-runtime + # - glvis + # - lbann + # - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp + # - nek5000 +mpi ~visit + # - paraview +qt + # - plasma + # - visit + # - warpx ~qed +python ~python_ipo compute=sycl ^py-amrex ~ipo + # - wps + + ci: + pipeline-gen: + - build-job: + image: ghcr.io/spack/e4s-oneapi-base-x86_64:v2025.3-1777667538 + + cdash: + build-group: E4S OneAPI diff --git a/stacks/e4s-rocm-external/spack.yaml b/stacks/e4s-rocm-external/spack.yaml new file mode 100644 index 00000000000..1a73c8171c5 --- /dev/null +++ b/stacks/e4s-rocm-external/spack.yaml @@ -0,0 +1,284 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + + concretizer: + reuse: false + unify: false + + packages: + all: + target: [x86_64_v3] + require: + - '@:99999999' + - 'target=x86_64_v3' + providers: + blas: [openblas] + lapack: [openblas] + tbb: [intel-tbb] + variants: +mpi + tbb: + require: intel-tbb + mpi: + require: mpich + mpich: + require: '~wrapperrpath ~hwloc target=x86_64_v3 %gcc' + openblas: + variants: threads=openmp + paraview: + # Don't build GUI support or GLX rendering for HPC/container deployments + require: + - "@5.11: ~qt ^[virtuals=gl] osmesa" + - 'target=x86_64_v3' + + llvm-amdgpu: + buildable: false + externals: + - spec: llvm-amdgpu@7.2.3 + prefix: /opt/rocm/lib/llvm + extra_attributes: + compilers: + c: /opt/rocm/lib/llvm/bin/amdclang + cxx: /opt/rocm/lib/llvm/bin/amdclang++ + fortran: /opt/rocm/lib/llvm/bin/amdflang + gcc: + externals: + - spec: gcc@13.3.0 languages:='c,c++,fortran' + prefix: /usr + extra_attributes: + compilers: + c: /usr/bin/gcc + cxx: /usr/bin/g++ + fortran: /usr/bin/gfortran + + amdsmi: + buildable: false + externals: + - spec: amdsmi@7.2.3 + prefix: /opt/rocm-7.2.3/ + comgr: + buildable: false + externals: + - spec: comgr@7.2.3 + prefix: /opt/rocm-7.2.3/ + hipblas: + buildable: false + externals: + - spec: hipblas@7.2.3 + prefix: /opt/rocm-7.2.3/ + hipcub: + buildable: false + externals: + - spec: hipcub@7.2.3 + prefix: /opt/rocm-7.2.3/ + hipfft: + buildable: false + externals: + - spec: hipfft@7.2.3 + prefix: /opt/rocm-7.2.3/ + hiprand: + buildable: false + externals: + - spec: hiprand@7.2.3 + prefix: /opt/rocm-7.2.3/ + hipsparse: + buildable: false + externals: + - spec: hipsparse@7.2.3 + prefix: /opt/rocm-7.2.3/ + miopen-hip: + buildable: false + externals: + - spec: miopen-hip@7.2.3 + prefix: /opt/rocm-7.2.3/ + rccl: + buildable: false + externals: + - spec: rccl@7.2.3 + prefix: /opt/rocm-7.2.3/ + rocblas: + buildable: false + externals: + - spec: rocblas@7.2.3 + prefix: /opt/rocm-7.2.3/ + rocfft: + buildable: false + externals: + - spec: rocfft@7.2.3 + prefix: /opt/rocm-7.2.3/ + rocm-cmake: + buildable: false + externals: + - spec: rocm-cmake@7.2.3 + prefix: /opt/rocm-7.2.3/ + rocm-dbgapi: + buildable: false + externals: + - spec: rocm-dbgapi@7.2.3 + prefix: /opt/rocm-7.2.3/ + rocm-debug-agent: + buildable: false + externals: + - spec: rocm-debug-agent@7.2.3 + prefix: /opt/rocm-7.2.3/ + rocm-device-libs: + buildable: false + externals: + - spec: rocm-device-libs@7.2.3 + prefix: /opt/rocm-7.2.3/ + rocm-gdb: + buildable: false + externals: + - spec: rocm-gdb@7.2.3 + prefix: /opt/rocm-7.2.3/ + rocm-opencl: + buildable: false + externals: + - spec: rocm-opencl@7.2.3 + prefix: /opt/rocm-7.2.3/opencl + rocm-smi-lib: + buildable: false + externals: + - spec: rocm-smi-lib@7.2.3 + prefix: /opt/rocm-7.2.3/ + rocprofiler-systems: + buildable: false + externals: + - spec: rocprofiler-systems@7.2.3 + prefix: /opt/rocm-7.2.3/ + hip: + buildable: false + require: ["@7.2.3"] + externals: + - spec: hip@7.2.3 %gcc@13.3.0 + prefix: /opt/rocm-7.2.3 + hipify-clang: + buildable: false + externals: + - spec: hipify-clang@7.2.3 + prefix: /opt/rocm-7.2.3 + hsa-amd-aqlprofile: + buildable: false + externals: + - spec: hsa-amd-aqlprofile@7.2.3 + prefix: /opt/rocm-7.2.3/ + hsa-rocr-dev: + buildable: false + externals: + - spec: hsa-rocr-dev@7.2.3 + prefix: /opt/rocm-7.2.3/ + roctracer-dev-api: + buildable: false + externals: + - spec: roctracer-dev-api@7.2.3 + prefix: /opt/rocm-7.2.3 + roctracer-dev: + buildable: false + externals: + - spec: roctracer-dev@7.2.3 + prefix: /opt/rocm-7.2.3 + rocprim: + buildable: false + externals: + - spec: rocprim@7.2.3 + prefix: /opt/rocm-7.2.3 + rocrand: + buildable: false + externals: + - spec: rocrand@7.2.3 + prefix: /opt/rocm-7.2.3 + hipsolver: + buildable: false + externals: + - spec: hipsolver@7.2.3 + prefix: /opt/rocm-7.2.3 + rocsolver: + buildable: false + externals: + - spec: rocsolver@7.2.3 + prefix: /opt/rocm-7.2.3 + rocsparse: + buildable: false + externals: + - spec: rocsparse@7.2.3 + prefix: /opt/rocm-7.2.3 + rocthrust: + buildable: false + externals: + - spec: rocthrust@7.2.3 + prefix: /opt/rocm-7.2.3 + rocprofiler-dev: + buildable: false + externals: + - spec: rocprofiler-dev@7.2.3 + prefix: /opt/rocm-7.2.3 + rocprofiler-sdk: + buildable: false + externals: + - spec: rocprofiler-sdk@7.2.3 + prefix: /opt/rocm-7.2.3 + rocm-core: + buildable: false + externals: + - spec: rocm-core@7.2.3 + prefix: /opt/rocm-7.2.3 + rocm-openmp-extras: + buildable: false + externals: + - spec: rocm-openmp-extras@7.2.3 + prefix: /opt/rocm-7.2.3 + + specs: + # ROCM NOARCH + - hpctoolkit +rocm + - tau +mpi +rocm +syscall + + # ROCM gfx90a + - amrex +rocm amdgpu_target=gfx90a + - arborx +rocm amdgpu_target=gfx90a + - cabana +rocm amdgpu_target=gfx90a ^kokkos +rocm amdgpu_target=gfx90a + - caliper +rocm amdgpu_target=gfx90a + - chai tests=none +rocm amdgpu_target=gfx90a + - gasnet +rocm amdgpu_target=gfx90a + - heffte +rocm amdgpu_target=gfx90a + - kokkos +rocm amdgpu_target=gfx90a + - legion +rocm amdgpu_target=gfx90a %c,cxx=gcc + - libceed +rocm amdgpu_target=gfx90a + - mfem +rocm amdgpu_target=gfx90a + - papi +rocm amdgpu_target=gfx90a + - raja ~openmp +rocm amdgpu_target=gfx90a + - slate +rocm amdgpu_target=gfx90a + - sundials +rocm amdgpu_target=gfx90a + - superlu-dist +rocm amdgpu_target=gfx90a + - tasmanian ~openmp +rocm amdgpu_target=gfx90a + - trilinos +amesos2 +anasazi +belos +boost +ifpack2 +intrepid2 +kokkos +minitensor +muelu +nox +piro +phalanx +rol +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx90a + - umpire +rocm amdgpu_target=gfx90a + - upcxx +rocm amdgpu_target=gfx90a + - vtk-m ~openmp +rocm amdgpu_target=gfx90a + + # Errors + # - chapel +rocm amdgpu_target=gfx90a # rocm version constrained, 7.2 not allowed + # - cp2k +mpi +rocm amdgpu_target=gfx90a # /opt/rocm-7.2.3/include/hip/hip_runtime_api.h:813:29: error: expected unqualified-id before numeric constant + # - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx90a ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx90a # hiop-1.0.0: hiopVectorHip.hpp:68:10: fatal error: 'hipblas.h' file not found + # - fftx +rocm amdgpu_target=gfx90a # examples/rconv/testrconv.cpp:37:14: error: use of undeclared identifier 'strlen' + # - ginkgo +rocm amdgpu_target=gfx90a # rocm version constrained, 7.2 not allowed + # - hpx +rocm amdgpu_target=gfx90a # CMake Error at cmake/HPX_Message.cmake:51 (message): ERROR: HPX needs support for C++11 std::atomic + # - hypre +rocm amdgpu_target=gfx90a # CMake Error at config/cmake/HYPRE_SetupHIPToolkit.cmake:36 (enable_language): The CMAKE_HIP_COMPILER: /opt/rocm/bin/clang++ is not a full path to an existing compiler tool. + # - lbann ~cuda +rocm amdgpu_target=gfx90a # rocm version constrained, 7.2 not allowed + # - magma ~cuda +rocm amdgpu_target=gfx90a # rocm version constrained, 7.2 not allowed + # - paraview ~qt +rocm amdgpu_target=gfx90a ^llvm~lldb~lld~libomptarget~polly~gold libunwind=none compiler-rt=none # ?? + # - petsc +rocm amdgpu_target=gfx90a # petsc: Could not find a HIP compiler. Please set with the option --with-hipc or -HIPC and load + # - slepc +rocm amdgpu_target=gfx90a ^petsc +rocm amdgpu_target=gfx90a # petsc: Could not find a HIP compiler. Please set with the option --with-hipc or -HIPC and load + # - strumpack ~slate +rocm amdgpu_target=gfx90a # rocm version constrained, 7.2 not allowed + + ci: + pipeline-gen: + - build-job: + image: ghcr.io/spack/e4s-rocm-base-x86_64:v7.2.3-1778518886 + broken-tests-packages: + - paraview + + cdash: + build-group: E4S ROCm External diff --git a/stacks/e4s/spack.yaml b/stacks/e4s/spack.yaml new file mode 100644 index 00000000000..23b31f0922a --- /dev/null +++ b/stacks/e4s/spack.yaml @@ -0,0 +1,448 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + + concretizer: + reuse: false + unify: false + static_analysis: true + + packages: + all: + require: + - target=x86_64_v3 + variants: +mpi + c: + require: gcc + cxx: + require: gcc + fortran: + require: gcc + mpi: + require: + - mpich + blas: + require: + - openblas +shared + lapack: + require: + - openblas +shared + opengl: + buildable: false + binutils: + variants: +ld +gold +headers +libiberty ~nls + hdf5: + prefer: + - +fortran +hl +shared + libfabric: + require: + # TODO: libfabric needs to build on a GPU node with CUDA runtime available to build +cuda + # configure: error: CUDA support requested but CUDA runtime not available. + - ~cuda + - fabrics=sockets,tcp,udp,rxm + - target=x86_64_v3 + libunwind: + variants: +pic +xz + openblas: + variants: threads=openmp + rccl: + variants: amdgpu_target=gfx90a + trilinos: + prefer: + - +amesos2 +anasazi +belos +boost + +ifpack2 +intrepid2 +kokkos +minitensor +muelu + +nox +piro +phalanx +rol +sacado +stk +shards +shylu +stokhos +stratimikos + +teko +tempus +thyra +tpetra +trilinoscouplings +zoltan +zoltan2 gotype=long_long + - target=x86_64_v3 + mpich: + require: + - '~wrapperrpath ~hwloc' + - target=x86_64_v3 + suite-sparse: + require: + # TODO: CUDA build is broken as of 9be63a7775253884e12c9f3b6c0cec3ca86d252e + # make: *** SuiteSparse_GPURuntime: No such file or directory. Stop + - ~cuda + - target=x86_64_v3 + tbb: + require: + - intel-tbb + vtk-m: + require: + - +examples + - target=x86_64_v3 + visit: + require: + - "~gui" + - target=x86_64_v3 + paraview: + # Don't build GUI support or GLX rendering for HPC/container deployments + require: + - +examples + - "~qt ^[virtuals=gl] osmesa" # Headless + - target=x86_64_v3 + boost: + require: + - cxxstd=17 + - target=x86_64_v3 + + definitions: + - cuda_specs: + - amrex + - arborx ^kokkos + - axom + - cabana ^kokkos +cuda_lambda + - caliper + - chai ^umpire + - chapel + - cusz + - ddc +fft +pdi +splines + #- dealii~arborx~kokkos~vtk cxxstd=17 + - ecp-data-vis-sdk +adios2 ~ascent +hdf5 +vtkm +zfp ~paraview + # Exago still requires an old version of Raja that doesn't support the CUDA arch we want to build for + # - exago +mpi +python +raja +hiop ~ipopt ^hiop@1.0.0 ~sparse +mpi +raja ^raja~cuda + - fftx + - flecsi + - ginkgo + - gromacs + - heffte + - hpx + - hypre + - kokkos + - kokkos-kernels + - kokkos-fft device_backend=cufft +tests + - legion + - libceed + - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +cusz +mgard ^cusz + - magma + - mfem + - mgard +serial +openmp +timing +unstructured + - omega-h + - parsec + - petsc + - py-torch + - raja + - slate + - slepc + - strumpack ~slate + - sundials + - superlu-dist + - tasmanian + - trilinos + - umpire + - adios2 + - vtk-m + - zfp + specs: + # CPU + - adios + - alquimia + - aml + - amrex + - arborx + - argobots + - arkouda + - axom + - bolt + - boost + - bricks ~cuda + - butterflypack + - cabana + - caliper + - chai + - chapel ~rocm ~cuda + - charliecloud + - conduit + - cp2k +mpi + - datatransferkit + - ddc +fft +pdi +splines + #- dealii ~arborx ~kokkos ~vtk cxxstd=17 # https://github.com/spack/spack/pull/45554#issuecomment-2457255720 + - drishti + - dxt-explorer + - dyninst + - e4s-cl + - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 +paraview +pnetcdf +sz +unifyfs +veloc +visit +vtkm +zfp # + - exaworks + - fftx + - flecsi + - flit + - flux-core + - fpm + - gasnet + - libgeopm + - ginkgo + - globalarrays + - glvis + - gmp + - gotcha + # - gptune ~mpispawn + - gromacs +cp2k ^cp2k +dlaf build_system=cmake + - h5bench + - hdf5-vol-async + - hdf5-vol-cache + - hdf5-vol-log + - heffte +fftw + - hpctoolkit + - hpx networking=mpi + - hypre + - julia ^llvm ~clang ~gold ~polly targets=amdgpu,bpf,nvptx,webassembly + - kokkos +openmp + - kokkos-kernels +openmp + - kokkos-fft host_backend=fftw-openmp +tests + - laghos + - lammps +amoeba +asphere +bocs +body +bpm +brownian +cg-dna +cg-spica +class2 +colloid +colvars +compress +coreshell +dielectric +diffraction +dipole +dpd-basic +dpd-meso +dpd-react +dpd-smooth +drude +eff +electrode +extra-compute +extra-dump +extra-fix +extra-molecule +extra-pair +fep +granular +interlayer +kspace +lepton +machdyn +manybody +mc +meam +mesont +misc +ml-iap +ml-pod +ml-snap +mofff +molecule +openmp-package +opt +orient +peri +phonon +plugin +poems +qeq +reaction +reaxff +replica +rigid +shock +sph +spin +srd +tally +uef +voronoi +yaff + - lbann + - legion + - libceed + - libnrm + - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp + - libquo + - libunwind + - loki + - mercury + - metall + - mfem + - mgard +serial +openmp +timing +unstructured ~cuda + - mpark-variant + - mpifileutils ~xattr + - nccmp + - nco + - nekbone +mpi + - netcdf-fortran + - netlib-scalapack + - nrm + - nvhpc + - nwchem + - omega-h + - openfoam + - openmpi + - openpmd-api + - papi + - papyrus + - parsec ~cuda + - pdt + - petsc + - phist + - plasma + - plumed + - precice + - pruners-ninja + - pumi + - py-amrex + - py-arkouda + - py-h5py + - py-jupyterhub + - py-libensemble + - py-petsc4py + - qthreads scheduler=distrib + - quantum-espresso + - raja + - rempi + - scr + - slate ~cuda + - slepc + - stc + - strumpack ~slate + - sundials + - superlu + - superlu-dist + - swig@4.0.2-fortran + - sz3 + - tasmanian + - tau +mpi +python +syscall + - trilinos +amesos2 +anasazi +belos +boost +ifpack2 +intrepid2 +kokkos +minitensor +muelu +nox +piro +phalanx +rol +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long + - turbine + - umap + - umpire + - upcxx + - variorum cpu=intel gpu=none + - wannier90 + - wps + - wrf + - xyce +mpi +shared +pymi ~pymi_static_tpls + # INCLUDED IN ECP DAV CPU + - adios2 + - ascent + - darshan-runtime + - darshan-util + - faodel + - hdf5 + - libcatalyst + - parallel-netcdf + - paraview + - py-cinemasci + - sz + - unifyfs + - veloc + - visit # silo: https://github.com/spack/spack/issues/39538 + - vtk-m + - warpx +python + - zfp + # -- + # - nek5000 +mpi +visit # nek5000: KeyError: 'No spec with name visit in nek5000@19.0/4mtjged6gb5yqgzlpjftjxxasqwqdysh' + + # PYTHON PACKAGES + - opencv +python3 + # - py-horovod # all versions suffer from critical CVE, package is deprecated and scheduled for removal + - py-jax + - py-jupyterlab + - py-matplotlib + - py-mpi4py + - py-notebook + - py-numba + - py-numpy + - py-openai + - py-pandas + - py-plotly + - py-pooch + - py-pytest + - py-scikit-learn + - py-scipy + - py-seaborn + - py-tensorflow + - py-torch + - py-deephyper + + # CUDA NOARCH + - bricks +cuda + - flux-core +cuda + - hpctoolkit +cuda + - papi +cuda + - tau +mpi +cuda +syscall + + - group: "cuda-80" + specs: + - $cuda_specs + override: + packages: + all: + prefer: + - ~rocm + - +cuda + - cuda_arch=80 + kokkos: + require: + - ~rocm + - +cuda +wrapper + - cuda_arch=80 + - target=x86_64_v3 + flecsi: + # TODO: currently fails to build with CUDA + # /tmp/root/spack-stage/spack-stage-flecsi-2.4.1-6i3755bbt2hvmwj6soljqedj2t7jvwzm/spack-src/flecsi/exec/kernel.hh(111): error: init-captures are not allowed for extended __host__ __device__ lambdas + # [c = std::forward(c), f = std::forward(f)] __attribute__((device)) __attribute__((host))( + require: + - ~rocm + - ~cuda + - target=x86_64_v3 + trilinos: + prefer: + - ~rocm +cuda cuda_arch=80 + - ~superlu-dist + + - group: "cuda-90" + specs: + - $cuda_specs + override: + packages: + all: + prefer: + - ~rocm + - +cuda + - cuda_arch=90 + kokkos: + require: + - ~rocm + - +cuda +wrapper + - cuda_arch=90 + - target=x86_64_v3 + flecsi: + # TODO: currently fails to build with CUDA + # /tmp/root/spack-stage/spack-stage-flecsi-2.4.1-6i3755bbt2hvmwj6soljqedj2t7jvwzm/spack-src/flecsi/exec/kernel.hh(111): error: init-captures are not allowed for extended __host__ __device__ lambdas + # [c = std::forward(c), f = std::forward(f)] __attribute__((device)) __attribute__((host))( + require: + - ~rocm + - ~cuda + - target=x86_64_v3 + trilinos: + prefer: + - ~rocm +cuda cuda_arch=90 + - ~superlu-dist + + - group: rocm + specs: + # ROCM NOARCH + #- hpctoolkit +rocm + # - tau +mpi +rocm +syscall # tau: has issue with `spack env depfile` build + + + # ROCM 90a + - adios2 +kokkos + - amrex + - arborx + - cabana + # Can't build one of its dependencies (py-llvmlite) + # - caliper + - chai + - ecp-data-vis-sdk ~paraview +vtkm # +paraview: CMake Error at VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/CMakeLists.txt:272 (find_package): Could not find a package configuration file provided by "rocthrust" with any of the following names: rocthrustConfig.cmake rocthrust-config.cmake + - gasnet + - ginkgo + - heffte + - hpx + - hypre + - kokkos + - lammps + - legion + - libceed + - magma ~cuda + - mfem + - raja ~openmp + - slate + - strumpack ~slate + - sundials + - superlu-dist + - tasmanian ~openmp + - trilinos +amesos2 +anasazi +belos +boost +ifpack2 +intrepid2 +kokkos +minitensor +muelu +nox +piro +phalanx +rol +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 gotype=long_long + - umpire + - upcxx + # INCLUDED IN ECP DAV ROCM + # - hdf5 + # - hdf5-vol-async + # - hdf5-vol-cache + # - hdf5-vol-log + # - libcatalyst + # - paraview # paraview: CMake Error at VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/CMakeLists.txt:272 (find_package): Could not find a package configuration file provided by "rocthrust" with any of the following names: rocthrustConfig.cmake rocthrust-config.cmake + - vtk-m ~openmp # vtk-m: https://github.com/spack/spack/issues/40268 + # -- + # - chapel # chapel: lld: error: undefined symbol: llvm.amdgcn.readfirstlane.i32 + # - exago +mpi +python +raja +hiop ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop ~sparse +mpi +raja # hiop: CMake Error at cmake/FindHiopHipLibraries.cmake:23 (find_package); By not providing "Findhipfft.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "hipfft", but CMake did not find one. + # - fftx # fftx: https://github.com/spack/spack/issues/47034 + # - lbann ~cuda # concretize: Cannot select a single "version" for package "hiptt" + # - papi # papi: https://github.com/spack/spack/issues/27898 + # - petsc # petsc: hipblas-6.3.0-brvfa2h47yfpawguzbiac6ijtj3b6bcn/include/hipblas/hipblas.h:40:10: fatal error: 'hipblas-common/hipblas-common.h' file not found + # - slepc ^petsc # slepc: ERROR: Unable to link with PETSc + + # - cp2k +mpi +cuda cuda_arch=80 # cp2k: libxsmm_gemm.c:238: undefined reference to `sgemv_' + # - cp2k +mpi +cuda cuda_arch=90 # cp2k: libxsmm_gemm.c:238: undefined reference to `sgemv_' + # - cp2k +mpi +rocm amdgpu_target=gfx908 # cp2k: exts/build_dbcsr//Makefile:290: calculate_norms.o] Error 127 (ignored) + # - cp2k +mpi # cp2k: exts/build_dbcsr//Makefile:290: calculate_norms.o] Error 127 (ignored) + override: + packages: + all: + prefer: + - ~cuda + - +rocm + - amdgpu_target=gfx90a + trilinos: + prefer: + - +rocm amdgpu_target=gfx90a ~cuda + - ~superlu-dist + + ci: + pipeline-gen: + - build-job: + image: ghcr.io/spack/spack/ubuntu22.04-runner-amd64-gcc-11.4:2024.03.01 + + cdash: + build-group: E4S diff --git a/stacks/hep/spack.yaml b/stacks/hep/spack.yaml new file mode 100644 index 00000000000..6d7a2dc8752 --- /dev/null +++ b/stacks/hep/spack.yaml @@ -0,0 +1,163 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + + concretizer: + static_analysis: true + + config: + # ROOT fails downloads frequently + url_fetch_method: curl --continue-at - --retry 3 --retry-all-errors + + packages: + all: + target: ["x86_64_v3"] + require: + - "%gcc" + - target=x86_64_v3 + providers: + blas: [openblas] + mpi: [mpich] + tbb: [intel-tbb] + variants: +mpi + acts: + require: + - +analysis +dd4hep +edm4hep +examples +fatras +geant4 +hepmc3 +onnx +podio +pythia8 +python +svg +tgeo cxxstd=20 + - target=x86_64_v3 + celeritas: + require: + - +geant4 +hepmc3 +root +shared cxxstd=20 + - target=x86_64_v3 + geant4: + require: + - +opengl +qt +threads +x11 + - target=x86_64_v3 + hip: + require: + - '@5.7.1 +rocm' + - target=x86_64_v3 + py-iminuit: + require: + - '@2.22:' + - target=x86_64_v3 + py-numpy: + require: + - '@1.26:' + - target=x86_64_v3 + rivet: + require: + - hepmc=3 + - target=x86_64_v3 + root: + require: + - +arrow ~daos +davix +dcache +emacs +examples +fftw +fits +fortran +gdml +graphviz +gsl +http +math +minuit +mlp +opengl +pythia8 +python +r +roofit +root7 +rpath ~shadow +spectrum +sqlite +ssl +tbb +tmva +tmva-cpu +unuran ~vc +vdt ~veccore +webgui +x +xml +xrootd # cxxstd=20 + # note: root cxxstd=20 not concretizable within sherpa + # ~vc ~veccore since PCM integration broken with runtime_cxxmodules=ON + - target=x86_64_v3 + vecgeom: + require: + - +gdml +geant4 +root +shared cxxstd=20 + - target=x86_64_v3 + + # Mark geant4 data as external to prevent wasting bandwidth on GB-scale files + geant4-data: + buildable: false + externals: + - spec: geant4-data@11.3.0 + prefix: /usr + - spec: geant4-data@11.2.2 + prefix: /usr + - spec: geant4-data@11.2.0 + prefix: /usr + - spec: geant4-data@11.1.0 + prefix: /usr + - spec: geant4-data@11.0.0 + prefix: /usr + + specs: + # CPU + - acts ~cuda + #- agile # fails on c++>11 compiler + - alpgen + - ampt + - apfel +lhapdf +python + - celeritas ~cuda +openmp ~rocm +vecgeom +covfie + - cepgen + - cernlib +shared + - collier + - dd4hep +ddalign +ddcad +ddcond +dddetectors +dddigi +ddeve +ddg4 +ddrec +edm4hep +hepmc3 +lcio +utilityapps +xercesc + - delphes +pythia8 + - dpmjet + - edm4hep + - evtgen +hepmc3 +photos +pythia8 +sherpa +tauola + - fastjet plugins=all + - feynhiggs + - fjcontrib + #- garfieldpp + - gaudi +aida +examples +heppdt +xercesc + - geant4 ~vtk ^[virtuals=qmake] qt + - geant4 ~vtk ^[virtuals=qmake] qt-base + #- genie +atmo + - geomodel +examples +fullsimlight +geomodelg4 +hepmc3 +pythia +tools ~visualization + - hepmc + # hepmc3 fixed to 3.3.0 due to whizard, see https://github.com/spack/spack-packages/pull/427#issuecomment-3167516435 + - hepmc3@3.3.0 +interfaces +protobuf +python +rootio + #- herwig3 +njet +vbfnlo # Note: herwig3 fails to find evtgen + - hztool + - lcio -examples ~jar +rootdict # Note: lcio +examples ^ncurses -termlib, which leads to conflicts + - lhapdf +python + - lhapdfsets sets=default + - madgraph5amc + - njet + #- opendatadetector. # Note: gitlab.cern.ch unavailable + - openloops + - pandoramonitoring + - pandorapfa + - pandorasdk + - photos +hepmc3 + - podio +rntuple +sio + #- professor + - py-awkward + - py-boost-histogram + - py-dask-awkward ~io + - py-dask-histogram + - py-hepunits + - py-hist +dask +fit +plot + - py-histbook + - py-histoprint + - py-iminuit + - py-mplhep + - py-particle + - py-uhi + - py-uproot +lz4 +xrootd +zstd + - py-vector + - py-zfit + - pythia8 +evtgen +fastjet +hdf5 +hepmc +hepmc3 +lhapdf ~madgraph5amc +python +rivet ~root # pythia8 and root circularly depend + - rivet + - root ~cuda + - sherpa +analysis ~blackhat +gzip +hepmc3 +hepmc3root +lhapdf +lhole +openloops +pythia ~python ~recola ~rivet +root +ufo cxxstd=20 + - tauola +hepmc3 +lhapdf cxxstd=20 + - thepeg hepmc=3 ~rivet + - vecgeom ~cuda + - whizard +fastjet +gosam hepmc=3 +lcio +lhapdf +openloops +openmp +pythia8 + - xrootd +davix +http +krb5 +python +readline +scitokens-cpp + - yoda +hdf5 +highfive + + # CUDA + #- acts +cuda +traccc cuda_arch=80 + #- celeritas +cuda ~openmp +vecgeom cuda_arch=80 +covfie + - root +cuda +cudnn +tmva-gpu + - vecgeom +cuda cuda_arch=80 + + # ROCm + - celeritas +rocm amdgpu_target=gfx90a ~openmp ~vecgeom # only available with ORANGE + + ci: + pipeline-gen: + - build-job: + image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 + + cdash: + build-group: HEP diff --git a/stacks/ml-darwin-aarch64-mps/spack.yaml b/stacks/ml-darwin-aarch64-mps/spack.yaml new file mode 100644 index 00000000000..cf16740452e --- /dev/null +++ b/stacks/ml-darwin-aarch64-mps/spack.yaml @@ -0,0 +1,82 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + + packages: + all: + require: + - +mps + - ~cuda + - ~rocm + - target=m1 + mpi: + require: + - mpich + openblas: + require: + - ~fortran + - target=m1 + python: + require: + - "@3.13:" + - target=m1 + + specs: + # Hugging Face + - py-transformers + + # JAX + - py-jax + - py-jaxlib + + # Keras + - py-keras backend=tensorflow + - py-keras backend=jax + - py-keras backend=torch + + # PyTorch + - py-botorch + - py-gpytorch + - py-kornia + - py-lightning + - py-pytorch-lightning + - py-segmentation-models-pytorch + - py-timm + - py-torch + - py-torch-geometric + - py-torch-nvidia-apex + - py-torchaudio + - py-torchgeo + - py-torchmetrics + - py-torchvision + - py-vector-quantize-pytorch + + # scikit-learn + - py-scikit-learn + + # TensorBoard + - py-tensorboard + - py-tensorboardx + + # TensorFlow + - py-tensorflow + - py-tensorflow-datasets + - py-tensorflow-metadata + # - py-tensorflow-probability # conflict with macos tahoe + + # XGBoost + - py-xgboost + + ci: + pipeline-gen: + - build-job: + variables: + CI_GPG_KEY_ROOT: /etc/protected-runner + + cdash: + build-group: Machine Learning MPS + url: https://cdash.spack.io + project: Spack Testing + site: Cloud Gitlab Infrastructure diff --git a/stacks/ml-linux-aarch64/spack.yaml b/stacks/ml-linux-aarch64/spack.yaml new file mode 100644 index 00000000000..f53160a0a48 --- /dev/null +++ b/stacks/ml-linux-aarch64/spack.yaml @@ -0,0 +1,122 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + + packages: + all: + target: ["aarch64"] + require: + - target=aarch64 + mpi: + require: openmpi + python: + require: + - "@3.13: target=aarch64" + py-jaxlib: + require: + - "target=aarch64 %c,cxx=clang" + py-tensorflow: + require: + - "@2.19: target=aarch64 %c,cxx=clang" + py-torch: + require: + - "target=aarch64 %c,cxx=gcc" + + definitions: + - hugging_face_specs: + - py-transformers + - jax_specs: + - py-jax + - py-jaxlib + - keras_specs: + - py-keras backend=tensorflow + - py-keras backend=jax + - py-keras backend=torch + - torch_specs: + - py-botorch + - py-gpytorch + - py-kornia + - py-lightning + - py-pytorch-lightning + - py-segmentation-models-pytorch + - py-timm + - py-torch + - py-torch-geometric + - py-torch-nvidia-apex + - py-torchaudio + - py-torchgeo + - py-torchmetrics + - py-torchvision + - py-vector-quantize-pytorch + - scikit_learn_specs: + - py-scikit-learn + - tensorboard_specs: + - py-tensorboard + - py-tensorboardx + - tensorflow_specs: + - py-tensorflow + - py-tensorflow-datasets + - py-tensorflow-metadata + - py-tensorflow-probability + - xgboost_specs: + - py-xgboost + + specs: + - group: ml-linux-aarch64-cpu + specs: + - $hugging_face_specs + - $jax_specs + - $keras_specs + - $torch_specs + - $scikit_learn_specs + - $tensorboard_specs + - $tensorflow_specs + - $xgboost_specs + override: + packages: + all: + require: + - ~cuda + - ~rocm + + - group: ml-linux-aarch64-cuda + specs: + - $hugging_face_specs + - $jax_specs + - $keras_specs + - $torch_specs + - $scikit_learn_specs + - $tensorboard_specs + - $tensorflow_specs + # xgboost requires older cuda, which doesn't support newer GCC + # - $xgboost_specs + override: + packages: + all: + require: + - ~rocm + - +cuda + - cuda_arch=80 + llvm: + # https://github.com/spack/spack/issues/27999 + require: + - ~cuda + - target=aarch64 + py-torch: + require: + - ~rocm + - +cuda + - cuda_arch=80 + - ~flash_attention + + ci: + pipeline-gen: + - build-job: + image: + name: ghcr.io/spack/ubuntu-24.04:v2025-09-15 + entrypoint: [''] + + cdash: + build-group: Machine Learning diff --git a/stacks/ml-linux-x86_64/spack.yaml b/stacks/ml-linux-x86_64/spack.yaml new file mode 100644 index 00000000000..50a030f9d9f --- /dev/null +++ b/stacks/ml-linux-x86_64/spack.yaml @@ -0,0 +1,154 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + packages: + all: + target: ["x86_64_v3"] + require: + - target=x86_64_v3 + mpi: + require: openmpi + python: + require: "@3.13: target=x86_64_v3" + py-jaxlib: + require: "target=x86_64_v3 %c,cxx=clang" + py-tensorflow: + require: "target=x86_64_v3 %c,cxx=clang" + + definitions: + - hugging_face_specs: + - py-transformers + - jax_specs: + - py-jax + - py-jaxlib + - keras_specs: + - py-keras backend=tensorflow + - py-keras backend=jax + - py-keras backend=torch + - torch_specs: + - py-botorch + - py-gpytorch + - py-kornia + - py-lightning + - py-pytorch-lightning + - py-segmentation-models-pytorch + - py-timm + - py-torch + - py-torch-geometric + - py-torch-nvidia-apex + - py-torchaudio + - py-torchgeo + - py-torchmetrics + - py-torchvision + - py-vector-quantize-pytorch + - scikit_learn_specs: + - py-scikit-learn + - tensorboard_specs: + - py-tensorboard + - py-tensorboardx + - tensorflow_specs: + - py-tensorflow + - py-tensorflow-datasets + - py-tensorflow-metadata + - py-tensorflow-probability + - xgboost_specs: + - py-xgboost + specs: + - group: ml-linux-x86_64-cpu + specs: + - $hugging_face_specs + - $jax_specs + - $keras_specs + - $torch_specs + - $scikit_learn_specs + - $tensorboard_specs + - $tensorflow_specs + - $xgboost_specs + override: + packages: + all: + require: + - ~cuda + - ~rocm + py-torch: + require: "target=x86_64_v3 %c,cxx=gcc" + + - group: ml-linux-x86_64-cuda + specs: + - $hugging_face_specs + - $jax_specs + - $keras_specs + - $torch_specs + - $scikit_learn_specs + - $tensorboard_specs + - $tensorflow_specs + # xgboost requires older cuda, which doesn't support newer GCC + # - $xgboost_specs + override: + packages: + all: + require: + - ~rocm + - +cuda + - cuda_arch=80 + llvm: + # https://github.com/spack/spack/issues/27999 + require: + - ~cuda + - target=x86_64_v3 + py-torch: + require: + - target=x86_64_v3 + - ~rocm + - +cuda + - cuda_arch=80 + - ~flash_attention + - "%c,cxx=gcc" + + - group: ml-linux-x86_64-rocm + specs: + - $hugging_face_specs + - $jax_specs + - matrix: + - [$keras_specs] + exclude: + - py-keras backend=torch + # Does not yet support Spack-installed ROCm + # - $torch_specs + - $scikit_learn_specs + - $tensorboard_specs + - $tensorflow_specs + # Does not yet support Spack-installed ROCm + # - $xgboost_specs + override: + packages: + all: + require: + - ~cuda + - +rocm + - amdgpu_target=gfx90a + eigen: + require: + - ~rocm target=x86_64_v3 + gl: + require: "osmesa" + py-torch: + require: + - target=x86_64_v3 + - ~cuda + - +rocm + - amdgpu_target=gfx90a + - ~flash_attention + - "%c,cxx=gcc" + + ci: + pipeline-gen: + - build-job: + image: + name: ghcr.io/spack/ubuntu-24.04:v2025-09-15 + entrypoint: [''] + + cdash: + build-group: Machine Learning diff --git a/stacks/radiuss-aarch64/spack.yaml b/stacks/radiuss-aarch64/spack.yaml new file mode 100644 index 00000000000..067fa6e559e --- /dev/null +++ b/stacks/radiuss-aarch64/spack.yaml @@ -0,0 +1,38 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + + packages: + all: + require: + - target=aarch64 + - +mpi + blas: + require: + - openblas + mpi: + require: + - openmpi + + specs: + - ascent + - blt + - caliper + - camp + - chai + - mfem + - mfem +superlu-dist+petsc+sundials + - raja + - umpire + + ci: + pipeline-gen: + - build-job: + image: + name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 + entrypoint: [''] + + cdash: + build-group: RADIUSS Packages on ARM64 diff --git a/stacks/radiuss/spack.yaml b/stacks/radiuss/spack.yaml new file mode 100644 index 00000000000..f793bbd9e6c --- /dev/null +++ b/stacks/radiuss/spack.yaml @@ -0,0 +1,90 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + + packages: + all: + target: [ "x86_64_v3" ] + require: + - target=x86_64_v3 + mpi: + require: + - openmpi + + concretizer: + unify: false + reuse: false + + specs: + - group: radiuss-cpu + specs: + - ascent + - axom + - blt + - caliper + - care + - chai + - conduit + - flux-core + - hypre + - lbann + # - lvarray@develop ~tests #concretization fails for some reason + - mfem + - py-hatchet + - py-maestrowf + - py-merlin + - py-shroud + # - quandary # package needs to specify a version + - raja + - raja-perf + - samrai + - scr + - sundials + - umpire + # - visit # ^mesa-glu@9.0.0 + - xbraid + - zfp + override: + packages: + all: + require: + - ~cuda + - ~rocm + + - group: radiuss-cuda + specs: + - ascent + - blt + - caliper + - caliper +cuda + - camp + - camp +cuda + - chai + - chai +cuda +raja + - mfem + - mfem +superlu-dist+petsc+sundials + - mfem +cuda ^hypre+cuda + - raja + - raja +cuda + - umpire + - umpire +cuda + override: + packages: + all: + variants: +mpi cuda_arch=70 + blas: + require: [openblas] + mkl: + require: [intel-oneapi-mkl] + + ci: + pipeline-gen: + - build-job: + image: + name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2 + entrypoint: [''] + + cdash: + build-group: RADIUSS diff --git a/stacks/tools-sdk/spack.yaml b/stacks/tools-sdk/spack.yaml new file mode 100644 index 00000000000..f1a91856265 --- /dev/null +++ b/stacks/tools-sdk/spack.yaml @@ -0,0 +1,35 @@ +spack: + view: false + + include: + # Include the SDK package configurations + # TODO: Tag this with a release + - path: https://raw.githubusercontent.com/tools-integration/tools-sdk/96ee62feaad3936185937d10185ea17731bd1c7f/spack/configs/packages.yaml + sha256: 7e6e369f07e740e3f1cf972ed88f89da7d0c773de0ad45d80441fafed073887d + - ../../.ci/gitlab/ + + packages: + all: + require: target=x86_64_v3 + cmake: + variants: ~ownlibs + + concretizer: + unify: when_possible + + specs: + - darshan-runtime + - darshan-util + - dyninst + - hpctoolkit + - papi + - tau + + ci: + pipeline-gen: + - build-job: + image: ghcr.io/spack/ubuntu20.04-runner-x86_64:2023-01-01 + + cdash: + 'build-group:': TOOLS SDK + diff --git a/stacks/tutorial/spack.yaml b/stacks/tutorial/spack.yaml new file mode 100644 index 00000000000..53167dce4f5 --- /dev/null +++ b/stacks/tutorial/spack.yaml @@ -0,0 +1,80 @@ +spack: + view: false + + include: + - ../../.ci/gitlab/ + + packages: + all: + require: + - target=x86_64_v3 + tbb: + require: intel-tbb + + specs: + - group: compiler + specs: + - gcc@12 ~binutils + + - group: "gcc@11 specs" + specs: + - zlib-ng@2.2.4 + - zlib-ng@2.0.7 + - zlib-ng@2.0.7 cflags=-O3 + - tcl ^zlib-ng@2.2.4 + - tcl ^zlib-ng@2.0.7 cflags=-O3 + - hdf5+mpi^openmpi + - hdf5~mpi + - hdf5+hl+mpi ^mpich + - trilinos ^openmpi + - trilinos +hdf5 ^hdf5+hl+mpi ^mpich + - mpileaks + - lmod@8.7.18 + - 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 + - vim + override: + packages: + c: + prefer: [gcc@11] + cxx: + prefer: [gcc@11] + fortran: + prefer: [gcc@11] + + - group: scalapacks + needs: [compiler] + specs: + - matrix: + - [netlib-scalapack] + - [^mpich, ^openmpi] + - [^openblas, ^netlib-lapack] + - matrix: + - [py-scipy ^openblas, armadillo ^openblas, netlib-lapack, openmpi, mpich, elpa ^mpich] + override: + packages: + c: + prefer: [gcc@12] + cxx: + prefer: [gcc@12] + fortran: + prefer: [gcc@12] + # 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' ] + + concretizer: + unify: false + + ci: + pipeline-gen: + - build-job: + image: + name: ghcr.io/spack/tutorial-ubuntu-22.04:v2023-10-30 + entrypoint: [''] + + cdash: + build-group: Spack Tutorial diff --git a/stacks/windows-vis/spack.yaml b/stacks/windows-vis/spack.yaml new file mode 100644 index 00000000000..fc6519cd863 --- /dev/null +++ b/stacks/windows-vis/spack.yaml @@ -0,0 +1,18 @@ +# Windows Visualization Stack +# maintainers: +# - John Parent (@johnwparent) +# - Ryan Krattiger (@kwryankrattiger) + +spack: + view: false + include: + - ../../.ci/gitlab/ + + specs: + - "vtk@9: +mpi" + - "boost" + - "paraview@:5.13.1+mpi+qt" + - "py-numpy ^netlib-lapack" + + cdash: + build-group: Windows Visualization (Kitware) diff --git a/tests/build_systems.py b/tests/build_systems.py index fd2d7be683f..b9f78695cb5 100644 --- a/tests/build_systems.py +++ b/tests/build_systems.py @@ -2,37 +2,33 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import glob import os +import pathlib +import platform +import shutil -import _vendoring.archspec.cpu -import py.path import pytest from spack_repo.builtin.build_systems import autotools, cmake -import spack -import spack.concretize -import spack.environment -import spack.paths -import spack.platforms import spack.platforms.test -from spack.build_environment import ChildError, setup_package +from spack.build_environment import setup_package +from spack.concretize import concretize_one +from spack.environment import Environment from spack.installer import PackageInstaller from spack.package import ( FileList, InstallError, MakeExecutable, - Spec, create_builder, find, which, working_dir, ) -DATA_PATH = os.path.join(spack.paths.test_path, "data") +DATA_PATH = pathlib.Path(__file__).parent / "data" -@pytest.fixture() +@pytest.fixture def concretize_and_setup(default_mock_concretization, monkeypatch): def _func(spec_str): s = default_mock_concretization(spec_str) @@ -44,11 +40,11 @@ def _func(spec_str): return _func -@pytest.fixture() -def test_dir(tmpdir): +@pytest.fixture +def test_dir(tmp_path: pathlib.Path): def _func(dir_str): - py.path.local(dir_str).copy(tmpdir) - return str(tmpdir) + shutil.copytree(dir_str, tmp_path / "test") + return str(tmp_path / "test") return _func @@ -56,9 +52,7 @@ def _func(dir_str): @pytest.mark.not_on_windows("make not available on Windows") @pytest.mark.usefixtures("config", "mock_packages", "working_env") class TestTargets: - @pytest.mark.parametrize( - "input_dir", glob.iglob(os.path.join(DATA_PATH, "make", "affirmative", "*")) - ) + @pytest.mark.parametrize("input_dir", DATA_PATH.glob("make/affirmative/*")) def test_affirmative_make_check(self, input_dir, test_dir, concretize_and_setup): """Tests that Spack correctly detects targets in a Makefile.""" s = concretize_and_setup("mpich") @@ -66,9 +60,7 @@ def test_affirmative_make_check(self, input_dir, test_dir, concretize_and_setup) assert s.package._has_make_target("check") s.package._if_make_target_execute("check") - @pytest.mark.parametrize( - "input_dir", glob.iglob(os.path.join(DATA_PATH, "make", "negative", "*")) - ) + @pytest.mark.parametrize("input_dir", DATA_PATH.glob("make/negative/*")) @pytest.mark.regression("9067") def test_negative_make_check(self, input_dir, test_dir, concretize_and_setup): """Tests that Spack correctly ignores false positives in a Makefile.""" @@ -78,9 +70,7 @@ def test_negative_make_check(self, input_dir, test_dir, concretize_and_setup): s.package._if_make_target_execute("check") @pytest.mark.skipif(not which("ninja"), reason="ninja is not installed") - @pytest.mark.parametrize( - "input_dir", glob.iglob(os.path.join(DATA_PATH, "ninja", "affirmative", "*")) - ) + @pytest.mark.parametrize("input_dir", DATA_PATH.glob("ninja/affirmative/*")) def test_affirmative_ninja_check(self, input_dir, test_dir, concretize_and_setup): """Tests that Spack correctly detects targets in a Ninja build script.""" s = concretize_and_setup("mpich") @@ -89,9 +79,7 @@ def test_affirmative_ninja_check(self, input_dir, test_dir, concretize_and_setup s.package._if_ninja_target_execute("check") @pytest.mark.skipif(not which("ninja"), reason="ninja is not installed") - @pytest.mark.parametrize( - "input_dir", glob.iglob(os.path.join(DATA_PATH, "ninja", "negative", "*")) - ) + @pytest.mark.parametrize("input_dir", DATA_PATH.glob("ninja/negative/*")) def test_negative_ninja_check(self, input_dir, test_dir, concretize_and_setup): """Tests that Spack correctly ignores false positives in a Ninja build script. @@ -150,7 +138,7 @@ def test_none_is_allowed(self, default_mock_concretization): def test_libtool_archive_files_are_deleted_by_default(self, mutable_database): # Install a package that creates a mock libtool archive - s = spack.concretize.concretize_one("libtool-deletion") + s = concretize_one("libtool-deletion") PackageInstaller([s.package], explicit=True).install() # Assert the libtool archive is not there and we have @@ -165,7 +153,7 @@ def test_libtool_archive_files_might_be_installed_on_demand( ): # Install a package that creates a mock libtool archive, # patch its package to preserve the installation - s = spack.concretize.concretize_one("libtool-deletion") + s = concretize_one("libtool-deletion") monkeypatch.setattr(type(create_builder(s.package)), "install_libtool_archives", True) PackageInstaller([s.package], explicit=True).install() @@ -177,9 +165,7 @@ def test_autotools_gnuconfig_replacement(self, mutable_database): Tests whether only broken config.sub and config.guess are replaced with files from working alternatives from the gnuconfig package. """ - s = spack.concretize.concretize_one( - Spec("autotools-config-replacement +patch_config_files +gnuconfig") - ) + s = concretize_one("autotools-config-replacement +patch_config_files +gnuconfig") PackageInstaller([s.package]).install() with open(os.path.join(s.prefix.broken, "config.sub"), encoding="utf-8") as f: @@ -198,9 +184,7 @@ def test_autotools_gnuconfig_replacement_disabled(self, mutable_database): """ Tests whether disabling patch_config_files """ - s = spack.concretize.concretize_one( - Spec("autotools-config-replacement ~patch_config_files +gnuconfig") - ) + s = concretize_one("autotools-config-replacement ~patch_config_files +gnuconfig") PackageInstaller([s.package]).install() with open(os.path.join(s.prefix.broken, "config.sub"), encoding="utf-8") as f: @@ -217,8 +201,7 @@ def test_autotools_gnuconfig_replacement_disabled(self, mutable_database): @pytest.mark.disable_clean_stage_check @pytest.mark.skipif( - str(_vendoring.archspec.cpu.host().family) != "x86_64", - reason="test data is specific for x86_64", + platform.machine() not in ("AMD64", "x86_64"), reason="test data is specific for x86_64" ) def test_autotools_gnuconfig_replacement_no_gnuconfig(self, mutable_database, monkeypatch): """ @@ -226,27 +209,27 @@ def test_autotools_gnuconfig_replacement_no_gnuconfig(self, mutable_database, mo enabled, but gnuconfig is not listed as a direct build dependency. """ monkeypatch.setattr(spack.platforms.test.Test, "default", "x86_64") - s = spack.concretize.concretize_one( - Spec("autotools-config-replacement +patch_config_files ~gnuconfig") - ) + s = concretize_one("autotools-config-replacement +patch_config_files ~gnuconfig") msg = "Cannot patch config files: missing dependencies: gnuconfig" - with pytest.raises(ChildError, match=msg): + with pytest.raises(Exception, match=msg): PackageInstaller([s.package]).install() @pytest.mark.disable_clean_stage_check - def test_broken_external_gnuconfig(self, mutable_database, tmpdir): + def test_broken_external_gnuconfig(self, mutable_database, tmp_path: pathlib.Path): """ Tests whether we get a useful error message when gnuconfig is marked external, but the install prefix is misconfigured and no config.guess and config.sub substitute files are found in the provided prefix. """ - env_dir = str(tmpdir.ensure("env", dir=True)) - gnuconfig_dir = str(tmpdir.ensure("gnuconfig", dir=True)) # empty dir - with open(os.path.join(env_dir, "spack.yaml"), "w", encoding="utf-8") as f: - f.write( - """\ + (tmp_path / "env" / "gnuconfig").mkdir(parents=True) + (tmp_path / "env" / "spack.yaml").write_text( + f"""\ spack: + # temporarily pin to the old installer for this test since the resulting + # error messaging has changed. Coordinate with @haampie on a fix. + config: + installer: old specs: - 'autotools-config-replacement +patch_config_files +gnuconfig' packages: @@ -254,16 +237,15 @@ def test_broken_external_gnuconfig(self, mutable_database, tmpdir): buildable: false externals: - spec: gnuconfig@1.0.0 - prefix: {0} -""".format( - gnuconfig_dir - ) - ) - - msg = "Spack could not find `config.guess`.*misconfigured as an " "external package" - with spack.environment.Environment(env_dir) as e: + prefix: {tmp_path / "env" / "gnuconfig"} +""", + encoding="utf-8", + ) + + msg = "Spack could not find `config.guess`.*misconfigured as an external package" + with Environment(str(tmp_path / "env")) as e: e.concretize() - with pytest.raises(ChildError, match=msg): + with pytest.raises(Exception, match=msg): e.install_all() @@ -279,6 +261,12 @@ def test_cmake_std_args(self, default_mock_concretization): s = default_mock_concretization("mpich") assert cmake.CMakeBuilder.std_args(s.package) + def test_cmake_dependent_args(self, default_mock_concretization): + # Call the function on a CMakePackage instance + s = default_mock_concretization("cmake-client +cmake_hints") + args = cmake.CMakeBuilder.std_args(s.package) + assert '-DCMAKE_HINTS_ARG:STRING="Foo"' in args + def test_cmake_bad_generator(self, default_mock_concretization): s = default_mock_concretization("cmake-client") with pytest.raises(InstallError): @@ -304,7 +292,7 @@ def test_define(self, default_mock_concretization): assert define("SINGLE", "red") == "-DSINGLE:STRING=red" def test_define_from_variant(self): - s = spack.concretize.concretize_one("cmake-client multi=up,right ~truthy single=red") + s = concretize_one("cmake-client multi=up,right ~truthy single=red") arg = s.package.define_from_variant("MULTI") assert arg == "-DMULTI:STRING=right;up" @@ -392,57 +380,79 @@ def test_autotools_args_from_conditional_variant(default_mock_concretization): assert len(create_builder(s.package)._activate_or_not("example", "enable", "disable")) == 0 -def test_autoreconf_search_path_args_multiple(default_mock_concretization, tmpdir): +def test_autoreconf_search_path_args_multiple(default_mock_concretization, tmp_path: pathlib.Path): """autoreconf should receive the right -I flags with search paths for m4 files for build deps.""" spec = default_mock_concretization("dttop") - aclocal_fst = str(tmpdir.mkdir("fst").mkdir("share").mkdir("aclocal")) - aclocal_snd = str(tmpdir.mkdir("snd").mkdir("share").mkdir("aclocal")) + aclocal_fst = tmp_path / "fst" / "share" / "aclocal" + aclocal_snd = tmp_path / "snd" / "share" / "aclocal" + aclocal_fst.mkdir(parents=True) + aclocal_snd.mkdir(parents=True) build_dep_one, build_dep_two = spec.dependencies(deptype="build") - build_dep_one.set_prefix(str(tmpdir.join("fst"))) - build_dep_two.set_prefix(str(tmpdir.join("snd"))) - assert autotools._autoreconf_search_path_args(spec) == ["-I", aclocal_fst, "-I", aclocal_snd] - - -def test_autoreconf_search_path_args_skip_automake(default_mock_concretization, tmpdir): + build_dep_one.set_prefix(str(tmp_path / "fst")) + build_dep_two.set_prefix(str(tmp_path / "snd")) + assert autotools._autoreconf_search_path_args(spec) == [ + "-I", + str(aclocal_fst), + "-I", + str(aclocal_snd), + ] + + +def test_autoreconf_search_path_args_skip_automake( + default_mock_concretization, tmp_path: pathlib.Path +): """automake's aclocal dir should not be added as -I flag as it is a default 3rd party dir search path, and if it's a system version it usually includes m4 files shadowing spack deps.""" spec = default_mock_concretization("dttop") - tmpdir.mkdir("fst").mkdir("share").mkdir("aclocal") - aclocal_snd = str(tmpdir.mkdir("snd").mkdir("share").mkdir("aclocal")) + (tmp_path / "fst" / "share" / "aclocal").mkdir(parents=True) + aclocal_snd = tmp_path / "snd" / "share" / "aclocal" + aclocal_snd.mkdir(parents=True) build_dep_one, build_dep_two = spec.dependencies(deptype="build") build_dep_one.name = "automake" - build_dep_one.set_prefix(str(tmpdir.join("fst"))) - build_dep_two.set_prefix(str(tmpdir.join("snd"))) - assert autotools._autoreconf_search_path_args(spec) == ["-I", aclocal_snd] + build_dep_one.set_prefix(str(tmp_path / "fst")) + build_dep_two.set_prefix(str(tmp_path / "snd")) + assert autotools._autoreconf_search_path_args(spec) == ["-I", str(aclocal_snd)] -def test_autoreconf_search_path_args_external_order(default_mock_concretization, tmpdir): +def test_autoreconf_search_path_args_external_order( + default_mock_concretization, tmp_path: pathlib.Path +): """When a build dep is external, its -I flag should occur last""" spec = default_mock_concretization("dttop") - aclocal_fst = str(tmpdir.mkdir("fst").mkdir("share").mkdir("aclocal")) - aclocal_snd = str(tmpdir.mkdir("snd").mkdir("share").mkdir("aclocal")) + aclocal_fst = tmp_path / "fst" / "share" / "aclocal" + aclocal_snd = tmp_path / "snd" / "share" / "aclocal" + aclocal_fst.mkdir(parents=True) + aclocal_snd.mkdir(parents=True) build_dep_one, build_dep_two = spec.dependencies(deptype="build") - build_dep_one.external_path = str(tmpdir.join("fst")) - build_dep_two.set_prefix(str(tmpdir.join("snd"))) - assert autotools._autoreconf_search_path_args(spec) == ["-I", aclocal_snd, "-I", aclocal_fst] - - -def test_autoreconf_search_path_skip_nonexisting(default_mock_concretization, tmpdir): + build_dep_one.external_path = str(tmp_path / "fst") + build_dep_two.set_prefix(str(tmp_path / "snd")) + assert autotools._autoreconf_search_path_args(spec) == [ + "-I", + str(aclocal_snd), + "-I", + str(aclocal_fst), + ] + + +def test_autoreconf_search_path_skip_nonexisting( + default_mock_concretization, tmp_path: pathlib.Path +): """Skip -I flags for non-existing directories""" spec = default_mock_concretization("dttop") build_dep_one, build_dep_two = spec.dependencies(deptype="build") - build_dep_one.set_prefix(str(tmpdir.join("fst"))) - build_dep_two.set_prefix(str(tmpdir.join("snd"))) + build_dep_one.set_prefix(str(tmp_path / "fst")) + build_dep_two.set_prefix(str(tmp_path / "snd")) assert autotools._autoreconf_search_path_args(spec) == [] -def test_autoreconf_search_path_dont_repeat(default_mock_concretization, tmpdir): +def test_autoreconf_search_path_dont_repeat(default_mock_concretization, tmp_path: pathlib.Path): """Do not add the same -I flag twice to keep things readable for humans""" spec = default_mock_concretization("dttop") - aclocal = str(tmpdir.mkdir("prefix").mkdir("share").mkdir("aclocal")) + aclocal = tmp_path / "prefix" / "share" / "aclocal" + aclocal.mkdir(parents=True) build_dep_one, build_dep_two = spec.dependencies(deptype="build") - build_dep_one.external_path = str(tmpdir.join("prefix")) - build_dep_two.external_path = str(tmpdir.join("prefix")) - assert autotools._autoreconf_search_path_args(spec) == ["-I", aclocal] + build_dep_one.external_path = str(tmp_path / "prefix") + build_dep_two.external_path = str(tmp_path / "prefix") + assert autotools._autoreconf_search_path_args(spec) == ["-I", str(aclocal)] diff --git a/tests/conftest.py b/tests/conftest.py index a8c29e0a6e6..79438d44919 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -5,43 +5,35 @@ import collections import errno import os -import pathlib import shutil import stat import sys +from pathlib import Path +from typing import Tuple -import _vendoring.archspec.cpu import pytest -from llnl.util.filesystem import copy_tree, mkdirp, remove_linked_tree, touchp - import spack.bootstrap.core import spack.caches -import spack.compilers.config -import spack.compilers.libraries -import spack.concretize -import spack.config -import spack.environment as ev -import spack.error -import spack.modules.common import spack.package_base -import spack.paths -import spack.platforms -import spack.repo import spack.solver.asp -import spack.spec import spack.stage -import spack.store import spack.subprocess_context -import spack.util.executable -import spack.util.file_cache -import spack.util.git -import spack.util.gpg -import spack.util.parallel -import spack.util.web +from spack.concretize import concretize_one +from spack.config import ( + CONFIG_DEFAULTS, + DirectoryConfigScope, + InternalConfigScope, + use_configuration, +) from spack.enums import ConfigScopePriority from spack.installer import PackageInstaller -from spack.package import host_platform +from spack.package import copy_tree, host_platform, mkdirp, remove_linked_tree +from spack.platforms import Test as TestPlatform +from spack.platforms import use_platform +from spack.repo import from_path, use_repositories +from spack.store import use_store +from spack.vendor.archspec.cpu import host as host_cpu @pytest.fixture(autouse=True) @@ -63,7 +55,7 @@ def ensure_configuration_fixture_run_before(request): @pytest.fixture(autouse=True) def clear_recorded_monkeypatches(): yield - spack.subprocess_context.clear_patches() + spack.subprocess_context.MONKEYPATCHES.clear() @pytest.fixture(scope="session", autouse=True) @@ -73,7 +65,7 @@ def record_monkeypatch_setattr(): saved_setattr = _pytest.monkeypatch.MonkeyPatch.setattr def record_setattr(cls, target, name, value, *args, **kwargs): - spack.subprocess_context.append_patch((target, name, value)) + spack.subprocess_context.MONKEYPATCHES.append((target, name)) saved_setattr(cls, target, name, value, *args, **kwargs) _pytest.monkeypatch.MonkeyPatch.setattr = record_setattr @@ -83,27 +75,6 @@ def record_setattr(cls, target, name, value, *args, **kwargs): _pytest.monkeypatch.MonkeyPatch.setattr = saved_setattr -# -# Disable any active Spack environment BEFORE all tests -# -@pytest.fixture(scope="session", autouse=True) -def clean_user_environment(): - spack_env_value = os.environ.pop(ev.spack_env_var, None) - with ev.no_active_environment(): - yield - if spack_env_value: - os.environ[ev.spack_env_var] = spack_env_value - - -# -# Make sure global state of active env does not leak between tests. -# -@pytest.fixture(scope="function", autouse=True) -def clean_test_environment(): - yield - ev.deactivate() - - # # These fixtures are applied to all tests # @@ -135,31 +106,32 @@ def onerror(func, path, error_info): @pytest.fixture(scope="function", autouse=True) -def mock_stage(tmpdir_factory, monkeypatch, request): +def mock_stage(tmp_path_factory: pytest.TempPathFactory, monkeypatch, request): """Establish the temporary build_stage for the mock archive.""" # The approach with this autouse fixture is to set the stage root # instead of using spack.config.override() to avoid configuration # conflicts with dozens of tests that rely on other configuration # fixtures, such as config. - if "nomockstage" not in request.keywords: - # Set the build stage to the requested path - new_stage = tmpdir_factory.mktemp("mock-stage") - new_stage_path = str(new_stage) - # Ensure the source directory exists within the new stage path - source_path = os.path.join(new_stage_path, spack.stage._source_path_subdir) - mkdirp(source_path) + if "nomockstage" in request.keywords: + # Tests can opt-out with @pytest.mark.nomockstage + yield None + return - monkeypatch.setattr(spack.stage, "_stage_root", new_stage_path) + # Set the build stage to the requested path + new_stage = tmp_path_factory.mktemp("mock-stage") - yield new_stage_path + # Ensure the source directory exists within the new stage path + source_path = new_stage / spack.stage._source_path_subdir + source_path.mkdir(parents=True, exist_ok=True) - # Clean up the test stage directory - if os.path.isdir(new_stage_path): - shutil.rmtree(new_stage_path, onerror=onerror) - else: - # Must yield a path to avoid a TypeError on test teardown - yield str(tmpdir_factory) + monkeypatch.setattr(spack.stage, "_stage_root", str(new_stage)) + + yield str(new_stage) + + # Clean up the test stage directory + if new_stage.is_dir(): + shutil.rmtree(new_stage, onerror=onerror) @pytest.fixture(scope="session") @@ -239,7 +211,7 @@ def fetcher(self, target_path, digest, **kwargs): class MockCacheFetcher: def fetch(self): - raise spack.error.FetchError("Mock cache always fails for tests") + raise Exception("Mock cache always fails for tests") def __str__(self): return "[mock fetch cache]" @@ -247,23 +219,16 @@ def __str__(self): @pytest.fixture(autouse=True) def mock_fetch_cache(monkeypatch): - """Substitutes spack.paths.FETCH_CACHE with a mock object that does nothing - and raises on fetch. - """ + """Substitutes FETCH_CACHE that raises on fetch.""" monkeypatch.setattr(spack.caches, "FETCH_CACHE", MockCache()) -@pytest.fixture(scope="session") -def test_platform(): - return spack.platforms.Test() - - @pytest.fixture(autouse=True, scope="session") -def _use_test_platform(test_platform): +def _use_test_platform(): # This is the only context manager used at session scope (see note # below for more insight) since we want to use the test platform as # a default during tests. - with spack.platforms.use_platform(test_platform): + with use_platform(TestPlatform()): yield @@ -295,14 +260,16 @@ def _use_test_platform(test_platform): # @pytest.fixture(scope="session") def mock_packages_repo(): - yield spack.repo.from_path(spack.paths.mock_packages_path) + yield from_path(os.path.join(os.path.dirname(__file__), "repos", "spack_repo", "builtin_mock")) def _pkg_install_fn(pkg, spec, prefix): # sanity_check_prefix requires something in the install directory mkdirp(prefix.bin) - if not os.path.exists(spec.package.install_log_path): - touchp(spec.package.install_log_path) + path = Path(spec.package.install_log_path) + if not path.exists(): + path.parent.mkdir(parents=True, exist_ok=True) + path.touch() @pytest.fixture @@ -314,7 +281,7 @@ def mock_pkg_install(monkeypatch): def mock_packages(mock_packages_repo, mock_pkg_install, request): """Use the 'builtin_mock' repository instead of 'builtin'""" ensure_configuration_fixture_run_before(request) - with spack.repo.use_repositories(mock_packages_repo) as mock_repo: + with use_repositories(mock_packages_repo) as mock_repo: yield mock_repo @@ -333,61 +300,52 @@ def linux_os(): @pytest.fixture(scope="session") -def configuration_dir(tmpdir_factory, linux_os): +def configuration_dir(tmp_path_factory: pytest.TempPathFactory, linux_os): """Copies mock configuration files in a temporary directory. Returns the directory path. """ - tmpdir = tmpdir_factory.mktemp("configurations") - install_tree_root = tmpdir_factory.mktemp("opt") - modules_root = tmpdir_factory.mktemp("share") - tcl_root = modules_root.ensure("modules", dir=True) - lmod_root = modules_root.ensure("lmod", dir=True) + tmp_path = tmp_path_factory.mktemp("configurations") + install_tree_root = tmp_path_factory.mktemp("opt") # /data/config has mock config yaml files in it # copy these to the site config. - test_config = pathlib.Path(spack.paths.test_path) / "data" / "config" - shutil.copytree(test_config, tmpdir.join("site")) + test_config = Path(__file__).parent / "data" / "config" + shutil.copytree(test_config, tmp_path / "site") # Create temporary 'defaults', 'site' and 'user' folders - tmpdir.ensure("user", dir=True) + (tmp_path / "user").mkdir() # Fill out config.yaml, compilers.yaml and modules.yaml templates. locks = sys.platform != "win32" - config = tmpdir.join("site", "config.yaml") + config = tmp_path / "site" / "config.yaml" config_template = test_config / "config.yaml" - config.write(config_template.read_text().format(install_tree_root, locks)) + config.write_text(config_template.read_text().format(install_tree_root, locks)) - target = str(_vendoring.archspec.cpu.host().family) - compilers = tmpdir.join("site", "packages.yaml") + target = str(host_cpu().family) + compilers = tmp_path / "site" / "packages.yaml" compilers_template = test_config / "packages.yaml" - compilers.write(compilers_template.read_text().format(linux_os=linux_os, target=target)) + compilers.write_text(compilers_template.read_text().format(linux_os=linux_os, target=target)) - modules = tmpdir.join("site", "modules.yaml") - modules_template = test_config / "modules.yaml" - modules.write(modules_template.read_text().format(tcl_root, lmod_root)) - yield tmpdir + yield tmp_path def _create_mock_configuration_scopes(configuration_dir): """Create the configuration scopes used in `config` and `mutable_config`.""" return [ - ( - ConfigScopePriority.BUILTIN, - spack.config.InternalConfigScope("_builtin", spack.config.CONFIG_DEFAULTS), - ), + (ConfigScopePriority.DEFAULTS, InternalConfigScope("_builtin", CONFIG_DEFAULTS)), ( ConfigScopePriority.CONFIG_FILES, - spack.config.DirectoryConfigScope("site", str(configuration_dir.join("site"))), + DirectoryConfigScope("site", str(configuration_dir / "site")), ), ( ConfigScopePriority.CONFIG_FILES, - spack.config.DirectoryConfigScope("system", str(configuration_dir.join("system"))), + DirectoryConfigScope("system", str(configuration_dir / "system")), ), ( ConfigScopePriority.CONFIG_FILES, - spack.config.DirectoryConfigScope("user", str(configuration_dir.join("user"))), + DirectoryConfigScope("user", str(configuration_dir / "user")), ), - (ConfigScopePriority.COMMAND_LINE, spack.config.InternalConfigScope("command_line")), + (ConfigScopePriority.COMMAND_LINE, InternalConfigScope("command_line")), ] @@ -400,41 +358,25 @@ def mock_configuration_scopes(configuration_dir): @pytest.fixture(scope="function") def config(mock_configuration_scopes): """This fixture activates/deactivates the mock configuration.""" - with spack.config.use_configuration(*mock_configuration_scopes) as config: + with use_configuration(*mock_configuration_scopes) as config: yield config @pytest.fixture(scope="function") -def mutable_config(tmpdir_factory, configuration_dir): +def mutable_config(tmp_path_factory: pytest.TempPathFactory, configuration_dir): """Like config, but tests can modify the configuration.""" - mutable_dir = tmpdir_factory.mktemp("mutable_config").join("tmp") - configuration_dir.copy(mutable_dir) + mutable_dir = tmp_path_factory.mktemp("mutable_config") / "tmp" + shutil.copytree(configuration_dir, mutable_dir) scopes = _create_mock_configuration_scopes(mutable_dir) - with spack.config.use_configuration(*scopes) as cfg: + with use_configuration(*scopes) as cfg: yield cfg -# From https://github.com/pytest-dev/pytest/issues/363#issuecomment-1335631998 -# Current suggested implementation from issue compatible with pytest >= 6.2 -# this may be subject to change as new versions of Pytest are released -# and update the suggested solution -@pytest.fixture(scope="session") -def monkeypatch_session(): - with pytest.MonkeyPatch.context() as monkeypatch: - yield monkeypatch - - -@pytest.fixture(scope="session", autouse=True) -def mock_wsdk_externals(monkeypatch_session): - """Skip check for required external packages on Windows during testing - Note: In general this should cover this behavior for all tests, - however any session scoped fixture involving concretization should - include this fixture - """ - monkeypatch_session.setattr( - spack.bootstrap.core, "ensure_winsdk_external_or_raise", _return_none - ) +@pytest.fixture(autouse=True) +def mock_wsdk_externals(monkeypatch): + """Skip check for required external packages on Windows during testing.""" + monkeypatch.setattr(spack.bootstrap, "ensure_winsdk_external_or_raise", _return_none) def _populate(mock_db): @@ -460,7 +402,7 @@ def _populate(mock_db): """ def _install(spec): - s = spack.concretize.concretize_one(spec) + s = concretize_one(spec) PackageInstaller([s.package], fake=True, explicit=True).install() _install("mpileaks ^mpich") @@ -471,22 +413,22 @@ def _install(spec): @pytest.fixture(scope="session") -def _store_dir_and_cache(tmpdir_factory): +def _store_dir_and_cache(tmp_path_factory: pytest.TempPathFactory): """Returns the directory where to build the mock database and where to cache it. """ - store = tmpdir_factory.mktemp("mock_store") - cache = tmpdir_factory.mktemp("mock_store_cache") + store = tmp_path_factory.mktemp("mock_store") + cache = tmp_path_factory.mktemp("mock_store_cache") return store, cache @pytest.fixture(scope="session") def mock_store( - tmpdir_factory, - mock_wsdk_externals, + tmp_path_factory: pytest.TempPathFactory, mock_packages_repo, mock_configuration_scopes, - _store_dir_and_cache, + _store_dir_and_cache: Tuple[Path, Path], + glibc_compatibility, ): """Creates a read-only mock database with some packages installed note that the ref count for dyninst here will be 3, as it's recycled @@ -497,24 +439,29 @@ def mock_store( """ store_path, store_cache = _store_dir_and_cache + _mock_wsdk_externals = spack.bootstrap.ensure_winsdk_external_or_raise # Make the DB filesystem read-only to ensure constructors don't modify anything in it. # We want Spack to be able to point to a DB on a read-only filesystem easily. - store_path.chmod(mode=0o555, rec=1) + _recursive_chmod(store_path, 0o555) # If the cache does not exist populate the store and create it - if not os.path.exists(str(store_cache.join(".spack-db"))): - with spack.config.use_configuration(*mock_configuration_scopes): - with spack.store.use_store(str(store_path)) as store: - with spack.repo.use_repositories(mock_packages_repo): + if not os.path.exists(str(store_cache / ".spack-db")): + with use_configuration(*mock_configuration_scopes): + with use_store(str(store_path)) as store: + with use_repositories(mock_packages_repo): # make the DB filesystem writable only while we populate it - store_path.chmod(mode=0o755, rec=1) - _populate(store.db) - store_path.chmod(mode=0o555, rec=1) - - store_cache.chmod(mode=0o755, rec=1) + _recursive_chmod(store_path, 0o755) + try: + spack.bootstrap.ensure_winsdk_external_or_raise = _return_none + _populate(store.db) + finally: + spack.bootstrap.ensure_winsdk_external_or_raise = _mock_wsdk_externals + _recursive_chmod(store_path, 0o555) + + _recursive_chmod(store_cache, 0o755) copy_tree(str(store_path), str(store_cache)) - store_cache.chmod(mode=0o555, rec=1) + _recursive_chmod(store_cache, 0o555) yield store_path @@ -522,27 +469,27 @@ def mock_store( @pytest.fixture(scope="function") def database_mutable_config(mock_store, mock_packages, mutable_config, monkeypatch): """This activates the mock store, packages, AND config.""" - with spack.store.use_store(str(mock_store)) as store: + with use_store(str(mock_store)) as store: yield store.db store.db.last_seen_verifier = "" @pytest.fixture(scope="function") -def mutable_database(database_mutable_config, _store_dir_and_cache): +def mutable_database(database_mutable_config, _store_dir_and_cache: Tuple[Path, Path]): """Writeable version of the fixture, restored to its initial state after each test. """ # Make the database writeable, as we are going to modify it store_path, store_cache = _store_dir_and_cache - store_path.chmod(mode=0o755, rec=1) + _recursive_chmod(store_path, 0o755) yield database_mutable_config # Restore the initial state by copying the content of the cache back into # the store and making the database read-only - store_path.remove(rec=1) + shutil.rmtree(store_path) copy_tree(str(store_cache), str(store_path)) - store_path.chmod(mode=0o555, rec=1) + _recursive_chmod(store_path, 0o555) def _return_none(*args): @@ -567,9 +514,7 @@ def default_mock_concretization(config, mock_packages, concretized_specs_cache): def _func(spec_str, tests=False): key = spec_str, tests if key not in concretized_specs_cache: - concretized_specs_cache[key] = spack.concretize.concretize_one( - spack.spec.Spec(spec_str), tests=tests - ) + concretized_specs_cache[key] = concretize_one(spec_str, tests=tests) return concretized_specs_cache[key].copy() return _func @@ -585,3 +530,43 @@ def pytest_runtest_setup(item): only_windows_marker = item.get_closest_marker(name="only_windows") if only_windows_marker and sys.platform != "win32": pytest.skip(*only_windows_marker.args) + + +def _recursive_chmod(path: Path, mode: int): + """Recursively change permissions of a directory and all its contents.""" + path.chmod(mode) + for root, dirs, files in os.walk(path): + for file in files: + os.chmod(os.path.join(root, file), mode) + for dir in dirs: + os.chmod(os.path.join(root, dir), mode) + + +@pytest.fixture(autouse=True, scope="session") +def _c_compiler_always_exists(): + fn = spack.solver.asp.c_compiler_runs + spack.solver.asp.c_compiler_runs = _true + mthd = spack.compilers.libraries.CompilerPropertyDetector.default_libc + spack.compilers.libraries.CompilerPropertyDetector.default_libc = _libc_from_python + yield + spack.solver.asp.c_compiler_runs = fn + spack.compilers.libraries.CompilerPropertyDetector.default_libc = mthd + + +def _libc_from_python(self): + return spack.spec.Spec("glibc@=2.28", external_path="/some/path") + + +def _true(x): + return True + + +@pytest.fixture(scope="session", autouse=True) +def glibc_compatibility(): + """Selects whether we use OS compatibility for binaries, or libc 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 diff --git a/tests/data/config/bootstrap.yaml b/tests/data/config/bootstrap.yaml new file mode 100644 index 00000000000..7dd1195f0ff --- /dev/null +++ b/tests/data/config/bootstrap.yaml @@ -0,0 +1 @@ +bootstrap: {} diff --git a/tests/data/config/concretizer.yaml b/tests/data/config/concretizer.yaml new file mode 100644 index 00000000000..a89a42a9066 --- /dev/null +++ b/tests/data/config/concretizer.yaml @@ -0,0 +1,7 @@ +concretizer: + reuse: true + targets: + granularity: microarchitectures + host_compatible: false + duplicates: + strategy: minimal diff --git a/tests/data/config/config.yaml b/tests/data/config/config.yaml new file mode 100644 index 00000000000..7eb58913a1c --- /dev/null +++ b/tests/data/config/config.yaml @@ -0,0 +1,16 @@ +config: + install_tree: + root: {0} + template_dirs: + - $spack/share/spack/templates + build_stage: + - $tempdir/$user/spack-stage + source_cache: $user_cache_path/source + misc_cache: $user_cache_path/cache + verify_ssl: true + ssl_certs: $SSL_CERT_FILE + checksum: true + dirty: false + locks: {1} + concretization_cache: + enable: false diff --git a/tests/data/config/modules.yaml b/tests/data/config/modules.yaml new file mode 100644 index 00000000000..1c8038acd38 --- /dev/null +++ b/tests/data/config/modules.yaml @@ -0,0 +1,12 @@ +modules: + prefix_inspections: + ./bin: [PATH] + ./man: [MANPATH] + ./share/man: [MANPATH] + ./share/aclocal: [ACLOCAL_PATH] + ./lib/pkgconfig: [PKG_CONFIG_PATH] + ./lib64/pkgconfig: [PKG_CONFIG_PATH] + ./share/pkgconfig: [PKG_CONFIG_PATH] + ./: [CMAKE_PREFIX_PATH] + default: + enable: [] diff --git a/tests/data/config/packages.yaml b/tests/data/config/packages.yaml new file mode 100644 index 00000000000..66afc7aa537 --- /dev/null +++ b/tests/data/config/packages.yaml @@ -0,0 +1,89 @@ +packages: + all: + providers: + c: [gcc, llvm] + cxx: [gcc, llvm] + fortran: [gcc] + fortran-rt: [gcc-runtime] + libc: [glibc] + libgfortran: [gcc-runtime] + mpi: [mpich, zmpi] + lapack: [openblas-with-lapack] + blas: [openblas] + externaltool: + buildable: False + externals: + - spec: externaltool@1.0 + prefix: /path/to/external_tool + - spec: externaltool@0.9 + prefix: /usr + - spec: externaltool@0_8 + prefix: /usr + externalvirtual: + buildable: False + externals: + - spec: externalvirtual@2.0 + prefix: /path/to/external_virtual_clang + - spec: externalvirtual@1.0 + prefix: /path/to/external_virtual_gcc + externalmodule: + buildable: False + externals: + - spec: externalmodule@1.0 + modules: + - external-module + 'requires-virtual': + buildable: False + externals: + - spec: requires-virtual@2.0 + prefix: /usr + 'external-buildable-with-variant': + buildable: True + externals: + - spec: external-buildable-with-variant@1.1.special +baz + prefix: /usr + - spec: external-buildable-with-variant@0.9 +baz + prefix: /usr + 'old-external': + buildable: True + externals: + - spec: old-external@1.0.0 + prefix: /usr + 'external-non-default-variant': + buildable: True + externals: + - spec: external-non-default-variant@3.8.7~foo~bar + prefix: /usr + version-test-dependency-preferred: + version: ['5.2.5'] + + # Compilers + gcc: + externals: + - spec: "gcc@9.4.0 languages='c,c++' os={linux_os.name}{linux_os.version}" + prefix: /path + extra_attributes: + compilers: + c: /path/bin/gcc + cxx: /path/bin/g++ + - spec: "gcc@9.4.0 languages='c,c++' os=redhat6" + prefix: /path + extra_attributes: + compilers: + c: /path/bin/gcc + cxx: /path/bin/g++ + - spec: "gcc@10.2.1 languages='c,c++,fortran' os={linux_os.name}{linux_os.version}" + prefix: /path + extra_attributes: + compilers: + c: /path/bin/gcc-10 + cxx: /path/bin/g++-10 + fortran: /path/bin/gfortran-10 + llvm: + externals: + - spec: "llvm@15.0.0 +clang~flang os={linux_os.name}{linux_os.version}" + prefix: /path + extra_attributes: + compilers: + c: /path/bin/clang + cxx: /path/bin/clang++ diff --git a/tests/data/config/repos.yaml b/tests/data/config/repos.yaml new file mode 100644 index 00000000000..3e64cbb54a6 --- /dev/null +++ b/tests/data/config/repos.yaml @@ -0,0 +1,2 @@ +repos: + builtin_mock: $spack/var/spack/test_repos/spack_repo/builtin_mock diff --git a/tests/repos/spack_repo/builtin_mock/packages/callpath/package.py b/tests/repos/spack_repo/builtin_mock/packages/callpath/package.py new file mode 100644 index 00000000000..919c3d1acb1 --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/callpath/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.generic import Package + +from spack.package import * + + +class Callpath(Package): + homepage = "https://github.com/tgamblin/callpath" + url = "http://github.com/tgamblin/callpath-1.0.tar.gz" + + version("0.8", md5="0123456789abcdef0123456789abcdef") + version("0.9", md5="0123456789abcdef0123456789abcdef") + version("1.0", md5="0123456789abcdef0123456789abcdef") + + depends_on("c", type="build") + + depends_on("dyninst") + depends_on("mpi") + + def install(self, spec, prefix): + mkdirp(prefix) + touch(join_path(prefix, "dummyfile")) + + def setup_run_environment(self, env: EnvironmentModifications) -> None: + env.set("FOOBAR", self.name) diff --git a/tests/repos/spack_repo/builtin_mock/packages/cmake/package.py b/tests/repos/spack_repo/builtin_mock/packages/cmake/package.py new file mode 100644 index 00000000000..59712f88116 --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/cmake/package.py @@ -0,0 +1,76 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import os +import re +import sys + +from spack_repo.builtin.build_systems.generic import Package + +from spack.package import * + + +def check(condition, msg): + """Raise an install error if condition is False.""" + if not condition: + raise InstallError(msg) + + +class Cmake(Package): + """A dummy package for the cmake build system.""" + + homepage = "https://www.cmake.org" + url = "https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz" + + tags = ["build-tools"] + executables = ["^cmake[0-9]*$"] + + depends_on("c", type="build") + depends_on("cxx", type="build") + + version( + "3.23.1", + md5="4cb3ff35b2472aae70f542116d616e63", + url="https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz", + ) + version( + "3.4.3", + md5="4cb3ff35b2472aae70f542116d616e63", + url="https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz", + ) + + @classmethod + def determine_version(cls, exe): + output = Executable(exe)("--version", output=str, error=str) + match = re.search(r"cmake.*version\s+(\S+)", output) + return match.group(1) if match else None + + def setup_build_environment(self, env: EnvironmentModifications) -> None: + spack_cc # Ensure spack module-scope variable is available + env.set("for_install", "for_install") + + def setup_dependent_build_environment( + self, env: EnvironmentModifications, dependent_spec: Spec + ) -> None: + env.set("from_cmake", "from_cmake") + + def setup_dependent_package(self, module, dspec): + module.cmake = Executable(self.spec.prefix.bin.cmake) + module.ctest = Executable(self.spec.prefix.bin.ctest) + self.spec.from_cmake = "from_cmake" + module.from_cmake = "from_cmake" + + self.spec.link_arg = "test link arg" + + def install(self, spec, prefix): + mkdirp(prefix.bin) + + check( + os.environ["for_install"] == "for_install", + "Couldn't read env var set in compile envieonmnt", + ) + cmake_exe_ext = ".exe" if sys.platform == "win32" else "" + cmake_exe = join_path(prefix.bin, "cmake{}".format(cmake_exe_ext)) + touch(cmake_exe) + set_executable(cmake_exe) diff --git a/tests/repos/spack_repo/builtin_mock/packages/cmake_client/package.py b/tests/repos/spack_repo/builtin_mock/packages/cmake_client/package.py index 314960a32cd..33107981d62 100644 --- a/tests/repos/spack_repo/builtin_mock/packages/cmake_client/package.py +++ b/tests/repos/spack_repo/builtin_mock/packages/cmake_client/package.py @@ -30,8 +30,10 @@ class CmakeClient(CMakePackage): ) variant("single", description="", default="blue", values=("blue", "red", "green"), multi=False) variant("truthy", description="", default=True) + variant("cmake_hints", description="", default=False) depends_on("c", type="build") + depends_on("cmake-hints", when="+cmake_hints") callback_counter = 0 @@ -58,15 +60,15 @@ def do_not_execute(self): self.did_something = True def setup_build_environment(self, spack_env): - spack_cc # Ensure spack module-scope variable is avaiabl + spack_cc # Ensure spack module-scope variable is avaiable check( - from_cmake == "from_cmake", + from_cmake == "from_cmake", # noqa: F405 "setup_build_environment couldn't read global set by cmake.", ) check( self.spec["cmake"].link_arg == "test link arg", - "link arg on dependency spec not readable from " "setup_build_environment.", + "link arg on dependency spec not readable from setup_build_environment.", ) def setup_dependent_build_environment( @@ -74,25 +76,25 @@ def setup_dependent_build_environment( ) -> None: spack_cc # Ensure spack module-scope variable is avaiable check( - from_cmake == "from_cmake", + from_cmake == "from_cmake", # noqa: F405 "setup_dependent_build_environment couldn't read global set by cmake.", ) check( self.spec["cmake"].link_arg == "test link arg", - "link arg on dependency spec not readable from " "setup_dependent_build_environment.", + "link arg on dependency spec not readable from setup_dependent_build_environment.", ) def setup_dependent_package(self, module, dspec): spack_cc # Ensure spack module-scope variable is avaiable check( - from_cmake == "from_cmake", + from_cmake == "from_cmake", # noqa: F405 "setup_dependent_package couldn't read global set by cmake.", ) check( self.spec["cmake"].link_arg == "test link arg", - "link arg on dependency spec not readable from " "setup_dependent_package.", + "link arg on dependency spec not readable from setup_dependent_package.", ) def cmake(self, spec, prefix): @@ -110,7 +112,7 @@ def install(self, spec, prefix): check(cmake is not None, "No cmake was in environment!") # check that which('cmake') returns the right one. - cmake = which("cmake") + cmake = which("cmake", required=True) print(cmake) print(cmake.exe) check( @@ -118,7 +120,7 @@ def install(self, spec, prefix): "Wrong cmake was in environment: %s" % cmake, ) - check(from_cmake == "from_cmake", "Couldn't read global set by cmake.") + check(from_cmake == "from_cmake", "Couldn't read global set by cmake.") # noqa: F405 check( os.environ["from_cmake"] == "from_cmake", diff --git a/tests/repos/spack_repo/builtin_mock/packages/cmake_hints/package.py b/tests/repos/spack_repo/builtin_mock/packages/cmake_hints/package.py new file mode 100644 index 00000000000..1a5c67028a1 --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/cmake_hints/package.py @@ -0,0 +1,24 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from typing import List + +from spack.package import Package, PackageBase, version + + +def check(condition, msg): + """Raise an install error if condition is False.""" + if not condition: + raise InstallError(msg) + + +class CmakeHints(Package): + """A dummy package that uses cmake.""" + + homepage = "https://www.example.com" + url = "https://www.example.com/cmake-hints-1.0.tar.gz" + version("1.0", md5="4cb3ff35b2472aae70f542116d616e63") + + def dependent_cmake_args(self, pkg: PackageBase) -> List[str]: + return ['-DCMAKE_HINTS_ARG:STRING="Foo"'] diff --git a/tests/repos/spack_repo/builtin_mock/packages/compiler_wrapper/package.py b/tests/repos/spack_repo/builtin_mock/packages/compiler_wrapper/package.py index 83f75f7d71f..84f9464cabc 100644 --- a/tests/repos/spack_repo/builtin_mock/packages/compiler_wrapper/package.py +++ b/tests/repos/spack_repo/builtin_mock/packages/compiler_wrapper/package.py @@ -176,7 +176,7 @@ def setup_dependent_build_environment( env.set(wrapper_var_name, str(wrapper_path)) env.set(f"SPACK_{wrapper_var_name}_RPATH_ARG", compiler_pkg.rpath_arg) - isa_arg = microarchitecture_flags(self.spec, language) + isa_arg = microarchitecture_flags(dependent_spec, language) if isa_arg: env.set(f"SPACK_TARGET_ARGS_{attr_name.upper()}", isa_arg) diff --git a/tests/repos/spack_repo/builtin_mock/packages/dyninst/package.py b/tests/repos/spack_repo/builtin_mock/packages/dyninst/package.py new file mode 100644 index 00000000000..39f64fb29dd --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/dyninst/package.py @@ -0,0 +1,37 @@ +# 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 Dyninst(Package): + homepage = "https://paradyn.org" + url = "http://www.paradyn.org/release8.1/DyninstAPI-8.1.1.tgz" + + version( + "8.2", + md5="0123456789abcdef0123456789abcdef", + url="http://www.paradyn.org/release8.2/DyninstAPI-8.2.tgz", + ) + version( + "8.1.2", + md5="fedcba9876543210fedcba9876543210", + url="http://www.paradyn.org/release8.1.2/DyninstAPI-8.1.2.tgz", + ) + version( + "8.1.1", + md5="123456789abcdef0123456789abcdef0", + url="http://www.paradyn.org/release8.1/DyninstAPI-8.1.1.tgz", + ) + + depends_on("libelf") + depends_on("libdwarf") + + depends_on("c", type="build") + + def install(self, spec, prefix): + mkdirp(prefix) + touch(join_path(prefix, "dummyfile")) diff --git a/tests/repos/spack_repo/builtin_mock/packages/externaltest/package.py b/tests/repos/spack_repo/builtin_mock/packages/externaltest/package.py new file mode 100644 index 00000000000..9696b11bebc --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/externaltest/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.generic import Package + +from spack.package import * + + +class Externaltest(Package): + homepage = "http://somewhere.com" + url = "http://somewhere.com/test-1.0.tar.gz" + + version("1.0", md5="1234567890abcdef1234567890abcdef") + + depends_on("stuff") + depends_on("externaltool") + + def install(self, spec, prefix): + touch(join_path(prefix, "an_installation_file")) diff --git a/tests/repos/spack_repo/builtin_mock/packages/externaltool/package.py b/tests/repos/spack_repo/builtin_mock/packages/externaltool/package.py new file mode 100644 index 00000000000..e82ff743946 --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/externaltool/package.py @@ -0,0 +1,18 @@ +# 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 Externaltool(Package): + homepage = "http://somewhere.com" + has_code = False + + version("1.0") + version("0.9") + version("0.8.1") + + depends_on("externalprereq") diff --git a/tests/repos/spack_repo/builtin_mock/packages/externalvirtual/package.py b/tests/repos/spack_repo/builtin_mock/packages/externalvirtual/package.py new file mode 100644 index 00000000000..4c2bf411ea3 --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/externalvirtual/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.generic import Package + +from spack.package import * + + +class Externalvirtual(Package): + homepage = "http://somewhere.com" + url = "http://somewhere.com/stuff-1.0.tar.gz" + + version("1.0", md5="1234567890abcdef1234567890abcdef") + version("2.0", md5="234567890abcdef1234567890abcdef1") + version("2.1", md5="34567890abcdef1234567890abcdef12") + version("2.2", md5="4567890abcdef1234567890abcdef123") + + provides("stuff", when="@1.0:") diff --git a/tests/repos/spack_repo/builtin_mock/packages/fake/package.py b/tests/repos/spack_repo/builtin_mock/packages/fake/package.py new file mode 100644 index 00000000000..d4388991506 --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/fake/package.py @@ -0,0 +1,14 @@ +# 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 Fake(Package): + homepage = "http://www.fake-spack-example.org" + url = "http://www.fake-spack-example.org/downloads/fake-1.0.tar.gz" + + version("1.0", md5="0123456789abcdef0123456789abcdef") diff --git a/tests/repos/spack_repo/builtin_mock/packages/gnuconfig/package.py b/tests/repos/spack_repo/builtin_mock/packages/gnuconfig/package.py new file mode 100644 index 00000000000..74bc204047a --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/gnuconfig/package.py @@ -0,0 +1,36 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import os + +from spack_repo.builtin.build_systems.generic import Package + +from spack.package import * + + +class Gnuconfig(Package): + """ + The GNU config.guess and config.sub scripts versioned by timestamp. + This package can be used as a build dependency for autotools packages that + ship a tarball with outdated config.guess and config.sub files. + """ + + has_code = False + + version("2021-08-14") + + def install(self, spec, prefix): + config_sub = join_path(prefix, "config.sub") + config_guess = join_path(prefix, "config.guess") + + # Create files + with open(config_sub, "w", encoding="utf-8") as f: + f.write("#!/bin/sh\necho gnuconfig version of config.sub") + + with open(config_guess, "w", encoding="utf-8") as f: + f.write("#!/bin/sh\necho gnuconfig version of config.guess") + + # Make executable + os.chmod(config_sub, 0o775) + os.chmod(config_guess, 0o775) diff --git a/tests/repos/spack_repo/builtin_mock/packages/libdwarf/package.py b/tests/repos/spack_repo/builtin_mock/packages/libdwarf/package.py new file mode 100644 index 00000000000..88a9a364fe9 --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/libdwarf/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.generic import Package + +from spack.package import * + +# Only build certain parts of dwarf because the other ones break. +dwarf_dirs = ["libdwarf", "dwarfdump2"] + + +class Libdwarf(Package): + homepage = "http://www.prevanders.net/dwarf.html" + url = "http://www.prevanders.net/libdwarf-20130729.tar.gz" + list_url = homepage + + version("20130729", md5="64b42692e947d5180e162e46c689dfbf") + version("20130207", md5="0123456789abcdef0123456789abcdef") + version("20111030", md5="0123456789abcdef0123456789abcdef") + version("20070703", md5="0123456789abcdef0123456789abcdef") + + depends_on("libelf") + + depends_on("c", type="build") + depends_on("cxx", type="build") + + def install(self, spec, prefix): + touch(prefix.libdwarf) diff --git a/tests/repos/spack_repo/builtin_mock/packages/libelf/local.patch b/tests/repos/spack_repo/builtin_mock/packages/libelf/local.patch new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/repos/spack_repo/builtin_mock/packages/libelf/package.py b/tests/repos/spack_repo/builtin_mock/packages/libelf/package.py new file mode 100644 index 00000000000..7f9d649f4c6 --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/libelf/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.generic import Package + +from spack.package import * + + +class Libelf(Package): + homepage = "http://www.mr511.de/software/english.html" + url = "http://www.mr511.de/software/libelf-0.8.13.tar.gz" + + version("0.8.13", md5="4136d7b4c04df68b686570afa26988ac") + version("0.8.12", md5="e21f8273d9f5f6d43a59878dc274fec7") + version("0.8.10", md5="9db4d36c283d9790d8fa7df1f4d7b4d9") + + patch("local.patch", when="@0.8.10") + + depends_on("c", type="build") + + def install(self, spec, prefix): + touch(prefix.libelf) diff --git a/tests/repos/spack_repo/builtin_mock/packages/mpich/package.py b/tests/repos/spack_repo/builtin_mock/packages/mpich/package.py index e02cb9415a5..e05436f1ace 100644 --- a/tests/repos/spack_repo/builtin_mock/packages/mpich/package.py +++ b/tests/repos/spack_repo/builtin_mock/packages/mpich/package.py @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re + from spack_repo.builtin.build_systems.generic import Package from spack.package import * diff --git a/tests/repos/spack_repo/builtin_mock/packages/mpich2/package.py b/tests/repos/spack_repo/builtin_mock/packages/mpich2/package.py new file mode 100644 index 00000000000..a5db06b8cf0 --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/mpich2/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.generic import Package + +from spack.package import * + + +class Mpich2(Package): + homepage = "http://www.mpich.org" + url = "http://www.mpich.org/static/downloads/1.5/mpich2-1.5.tar.gz" + list_url = "http://www.mpich.org/static/downloads/" + list_depth = 2 + + tags = ["tag1", "tag3"] + + version("1.5", md5="9c5d5d4fe1e17dd12153f40bc5b6dbc0") + version("1.4", md5="0123456789abcdef0123456789abcdef") + version("1.3", md5="0123456789abcdef0123456789abcdef") + version("1.2", md5="0123456789abcdef0123456789abcdef") + version("1.1", md5="0123456789abcdef0123456789abcdef") + version("1.0", md5="0123456789abcdef0123456789abcdef") + + provides("mpi@:2.0") + provides("mpi@:2.1", when="@1.1:") + provides("mpi@:2.2", when="@1.2:") + + depends_on("c", type="build") + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix) + make() + make("install") diff --git a/tests/repos/spack_repo/builtin_mock/packages/mpileaks/package.py b/tests/repos/spack_repo/builtin_mock/packages/mpileaks/package.py new file mode 100644 index 00000000000..0856e5272b1 --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/mpileaks/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 Mpileaks(Package): + """Mpileaks is a mock package that passes audits""" + + homepage = "http://www.spack.llnl.gov" + url = "http://www.spack.llnl.gov/mpileaks-1.0.tar.gz" + + version("2.3", sha256="2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825") + version("2.2", sha256="2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825") + version("2.1", sha256="2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825") + version("1.0", sha256="2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825") + + variant("debug", default=False, description="Debug variant") + variant("opt", default=False, description="Optimized variant") + variant("shared", default=True, description="Build shared library") + variant("static", default=True, description="Build static library") + + depends_on("mpi") + depends_on("callpath") + + depends_on("c", type="build") + + # Will be used to try raising an exception + libs = None + + def install(self, spec, prefix): + touch(prefix.mpileaks) + mkdirp(prefix.man) + + def setup_run_environment(self, env: EnvironmentModifications) -> None: + env.set("FOOBAR", self.name) diff --git a/tests/repos/spack_repo/builtin_mock/packages/ninja/package.py b/tests/repos/spack_repo/builtin_mock/packages/ninja/package.py new file mode 100644 index 00000000000..eca0cab5c76 --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/ninja/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.generic import Package + +from spack.package import * + + +class Ninja(Package): + """Dummy Ninja Package""" + + homepage = "https://ninja-build.org/" + url = "https://github.com/ninja-build/ninja/archive/v1.7.2.tar.gz" + + version("1.10.2", sha256="ce35865411f0490368a8fc383f29071de6690cbadc27704734978221f25e2bed") + + def setup_dependent_package(self, module, dspec): + module.ninja = Executable(self.spec.prefix.bin.ninja) diff --git a/tests/repos/spack_repo/builtin_mock/packages/trivial_smoke_test/package.py b/tests/repos/spack_repo/builtin_mock/packages/trivial_smoke_test/package.py new file mode 100644 index 00000000000..77247c9a82d --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/trivial_smoke_test/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.generic import Package + +from spack.package import * + + +class TrivialSmokeTest(Package): + """This package is a stub with trivial smoke test features.""" + + homepage = "http://www.example.com/trivial_test" + url = "http://www.unit-test-should-replace-this-url/trivial_test-1.0.tar.gz" + + version("1.0", md5="0123456789abcdef0123456789abcdef") + + test_source_filename = "cached_file.in" + + def install(self, spec, prefix): + pass + + @run_before("install") + def create_extra_test_source(self): + mkdirp(install_test_root(self)) + touch(join_path(install_test_root(self), self.test_source_filename)) + + @run_after("install") + def copy_test_sources(self): + cache_extra_test_sources(self, [self.test_source_filename]) diff --git a/tests/repos/spack_repo/builtin_mock/packages/trivial_smoke_test/test/test_file.in b/tests/repos/spack_repo/builtin_mock/packages/trivial_smoke_test/test/test_file.in new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/repos/spack_repo/builtin_mock/packages/vtk_m/package.py b/tests/repos/spack_repo/builtin_mock/packages/vtk_m/package.py new file mode 100644 index 00000000000..944af752ebf --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/vtk_m/package.py @@ -0,0 +1,38 @@ +# 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 VtkM(CMakePackage): + """This is a fake vtk-m package used to demonstrate virtual package providers + with dependencies.""" + + homepage = "http://www.spack-fake-vtk-m.org" + url = "http://www.spack-fake-vtk-m.org/downloads/vtk-m-1.0.tar.gz" + + version("1.0", md5="0123456789abcdef0123456789abcdef") + + variant("cuda", default=False, description="Build with CUDA") + variant( + "cuda_arch", + description="CUDA architecture", + default="none", + values=("70", "none"), + multi=False, + when="+cuda", + ) + + variant("rocm", default=False, description="Enable ROCm support") + variant( + "amdgpu_target", + default="none", + description="AMD GPU architecture", + values=("gfx900", "none"), + multi=False, + when="+rocm", + ) + depends_on("cmake@3.18:") diff --git a/tests/repos/spack_repo/builtin_mock/packages/zmpi/package.py b/tests/repos/spack_repo/builtin_mock/packages/zmpi/package.py new file mode 100644 index 00000000000..eb6626ecd90 --- /dev/null +++ b/tests/repos/spack_repo/builtin_mock/packages/zmpi/package.py @@ -0,0 +1,22 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems.generic import Package + +from spack.package import * + + +class Zmpi(Package): + """This is a fake MPI package used to demonstrate virtual package providers + with dependencies.""" + + homepage = "http://www.spack-fake-zmpi.org" + url = "http://www.spack-fake-zmpi.org/downloads/zmpi-1.0.tar.gz" + + version("1.0", md5="0123456789abcdef0123456789abcdef") + + provides("mpi@:10.0") + + depends_on("fake") + depends_on("c", type="build")